summaryrefslogtreecommitdiff
path: root/emfio
AgeCommit message (Collapse)Author
2021-10-26Update emfio documentationHossein
* Added information about dumping metaactions using mtfdemo * 'sax' dependency was removed in d49900e5a3aae75a4c673f593e99fbc296f67cee * Listing indirect dependencies from 'emfio/Library_emfio.mk' Change-Id: I5ee7e20c872aff388424930a23c9a17614b5e3c0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124180 Tested-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org> Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
2021-10-25Replacing std::unique_ptr<char[]>Hossein
* Replacing std::unique_ptr<char[]> with std::vector<char> * The data bytes are read into the vector internal storage * Modification of the internal storage of the vector using the pointer returned by data() is allowed by the standard C++ Standard, revision n4830, section 2.3.11.4 Data [vector.data] Returns: A pointer such that [data(), data() + size()) is a valid range. For a non-emptyvector, data() == addressof(front()). https://github.com/cplusplus/draft/blob/main/papers/n4835.pdf * It could be replaced with std::string when data is not modified Example: 6c13e5a92ed4b6a10458cd5d5741ddb3d816df4e * std::vector<char> is useful when working with C functions that get "char *" for writing data. In this case, std::string is not usable, because data() method for it returns "const char *". Change-Id: Ife6013b16a1803c3ad7b0c64aa0cb4c8cf4373ed Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123764 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-10-22Improve emfio module documentationHossein
* Describe how it works * Fix the example * Better formatting * Fix typos Change-Id: Ia568ca522453a6c3da1502bd2e7c3a8ce3a29fc2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123987 Tested-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org> Tested-by: Jenkins Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
2021-10-22Remove sax dependency from emfioHossein
Module 'sax' was one of the dependencies of 'emfio'. This is also mentioned in: https://wiki.documentfoundation.org/Development/Build_System Previously, module 'emfio' was directly depending on 'drawinglayer' and 'sax'. But the build is fine when 'sax' is removed from 'emfio/Library_emfio.mk'. Also there is no mention of sax when invoking 'git grep sax' inside emfio folder. With this patch, the 'emfio' dependency on 'sax' is removed. Change-Id: Ib6f9dc3df33865b6fc912d02b27b01232a6a3fb8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123988 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-10-21Fix typosAndrea Gelmini
Change-Id: I7e249b2fd01dac96afb03dc0ddca6a1080f190f5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124035 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2021-10-21Add documentation for the 'emfio' moduleHossein
The module 'emfio' is used to read and write WMF/EMF/EMF+. This is the list of topics discussed in the 'emfio' documentation: * Introduction * EMF+ Specifics * Limitations * Known Bugs * Dependencies * Tools * Related Software * References Change-Id: Iccd1269f62b8099b823d755c84e0ea51a545fae9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123846 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-10-19emfio: remove unused fileXisco Fauli
Added in e179e53e3c703153bb0bb3155c1c6e2d25577fe0 <EMF: tdf#138467 Fix MapMode translation> Change-Id: I4f326c95f279e4e1925f3e4324f904f81a361fcf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123823 Tested-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2021-10-15CppunitTest_emfio_emf: add some tolerance in TestPdfInEmfIlmari Lauhakangas
Change-Id: I1fc1b3863fd5b5472e700a5432fb4f9d353a054f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123650 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-10-03drop 'using namespace std' in desktop, e*, f*Julien Nabet
Change-Id: I277dc957798093001f9a3935f97db8ac0314e6a7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123022 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2021-10-03ofz#39528 Integer-overflowCaolán McNamara
Change-Id: If50af8538e31e4fb1ee1486ec2b91963c094e7e6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123007 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-09-28vcl: rename OutDevState to StackChris Sherlock
I have moved the header file to include/vcl/rendercontext as this will eventually be part of the RenderContext split from OutputDevice. State and associated enums have also been moved to the vcl namespace. I have also moved ComplexTextLayoutFlags into the vcl::text namespace. Change-Id: I0abbf560e75b45a272854b267e948c240cd69091 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121524 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2021-09-27tdf#88163 Fix font size for placeable wmf filesHossein
The problems in tdf#88163 can be categorized into two parts, as described in d25906087918c085239aac30fd72cb65aa7b9eb4: First, the problem with the wmf files without the placeable header. Second, the problem with the wmf files with the placeable header. The above mentioned patch fixed the first part, and this patch fixes the second part. The problem was that upon seeing 22-byte placeable header, the records related to the size of the wmf like META_SETWINDOWORG (0x20b) and META_SETWINDOWEXT (0x20c) and others were ignored. These records were read in WmfReader::GetPlaceableBound() for the wmf files without placeable header. Adding this method for the wmf files with placeable header fixed the wrong calculation of bounds, which previously lead to wrong size of text. It should be noted that the scale in the placeable header is used, but the bounds are ignored for now. A new test named testTdf88163PlaceableWmf() is added that can be checked with: make CPPUNIT_TEST_NAME="testTdf88163PlaceableWmf" -sr \ CppunitTest_emfio_wmf Change-Id: I820c2e5922972cb5d555d98ef70c7581cd9f02d5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122095 Tested-by: Jenkins Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
2021-09-26Removing unneeded checkHossein
The condition nPlanes != 1 is checked in the previous if statement and if it the content of nPlanes is anything other than 1, it would have used the break to exit the switch case. Thus, there is no need to check nPlanes == 1 again. Change-Id: I1e07b48af16de40d39eabb6f2b666e41b0b0432e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122451 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-09-16ofz: MemorySanitizer: use-of-uninitialized-valueCaolán McNamara
Change-Id: Ib65191933b91b74c6dd03ae3cfaa6e6cf8dd2434 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122210 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-09-12ofz: MemorySanitizer: use-of-uninitialized-valueCaolán McNamara
Change-Id: I6dc1f110054eefefffd7b58cafa8240a69bb176e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121995 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-09-08ofz: MemorySanitizer: use-of-uninitialized-valueCaolán McNamara
sidestep the resize behaviour of SvMemoryStream by using an honest std::vector and make it use that buffer Change-Id: Ic5e405010ac076fc04e1ca8dc6dbb495162101ce Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121832 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-09-07ofz: MemorySanitizer: use-of-uninitialized-valueCaolán McNamara
Change-Id: I4c88389de1a7f6cf4ceac278b264a0ec71fba86d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121747 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-09-06ofz: MemorySanitizer: use-of-uninitialized-valueCaolán McNamara
Change-Id: I4a96b4e687f57ee38686dc03d87ba29de3ec0e98 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121708 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-09-05ofz: MemorySanitizer: use-of-uninitialized-valueCaolán McNamara
Change-Id: Ib8b337609afa4f588878a1e08eb74fca28fc0534 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121666 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-09-05Simplify a bit nOldROP management (emfio/wmfreader)Julien Nabet
Change-Id: Ia50f9def88e8435fb5ce3267cbd3fdfcaa72ef4b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121646 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2021-09-04ofz: MemorySanitizer: use-of-uninitialized-valueCaolán McNamara
Change-Id: I53383a71b4a362409773f8f1123982e8d2c5a324 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121631 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-09-04use std::vector for fetching DX array dataNoel Grandin
because I'm trying to track down a related heap corruption, and that is much easier if the access to the array is checked by the std::vector debug runtime Change-Id: Ia665f5cebb7f14d88942e88b4b400ad3c28ef5d9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121527 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-03ofz: MemorySanitizer: use-of-uninitialized-valueCaolán McNamara
Change-Id: I6546ef38c6e84193c00ea5fcac621fdec93e0ab7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121593 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-09-03ofz: MemorySanitizer: use-of-uninitialized-valueCaolán McNamara
Change-Id: I626eb1847484f7bc6af7eed45b891307718c5263 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121596 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-09-03ofz: MemorySanitizer: use-of-uninitialized-valueCaolán McNamara
Change-Id: I6cd0e9b518bf6f40e0221fd2e9f3c5fb6199e14f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121574 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-09-03ofz: MemorySanitizer: use-of-uninitialized-valueCaolán McNamara
Change-Id: I71d3b07c7ca2467b7bc1db5350dbdeb1f8910cb0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121478 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-09-03ofz: MemorySanitizer: use-of-uninitialized-valueCaolán McNamara
Change-Id: I3eaf680052ada10b6a6e8fded6e806d6045d0fac Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121538 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-09-03ofz: MemorySanitizer: use-of-uninitialized-valueCaolán McNamara
Change-Id: I7cd46af148471de516860046c04f71b6ae5fea89 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121522 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-09-03tdf#88163 Fix WMF font sizeHossein
The problems in tdf#88163 can be categorized into two parts: 1. A regression which is caused by the commit a9020e461803964a206d5551884b70717eed165c. The font size for text is wrongly calculated for wmf files WITHOUT the placeable header. 2. A long-lasting bug that has existed from LO 3.5 (tested with various LibreOffice versions from 3.5 to master). The font size for text is wrongly calculated for wmf files WITH the placeable header. This patch solves the first part. In this patch the way wmf is scaled is changed using mnUnitsPerInch as a variable that controls the scale. The previous method was dividing the left/right/top/bottom fields of aPlaceableBound which caused the bad scaling of text. The second problem still remains, and possibly can be solved by usign the old scaling method that was previously used here (dividing pos values of aPlaceableBound), but the scaling factor should be calculated, which varies in different wmf files. More study should be done to solve this part. Values used for the example "visio_import_source.wmf" used in the test WmfTest::testNonPlaceableWmf() are slightly changed, but the rendering should not noticeably change, except the fix for the text font size. A new test WmfTest::testTdf88163NonPlaceableWmf() is added which checks for both font height and text boxes' positions. Font height can depend on the exact font that is used for Roman in the platform, so it vary between Linux, Windows and macOS. Thus, a range is used for ensuring that the font height is correct. By visual inspection, it is confirmed that this fix does not affect fdo#74336 and the fix for it still works for attachment 93188. Change-Id: I55bf38ba4345a0aa48c3e522976a2a5c32f7ec8c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121272 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-09-03no need to allocate BSaveStruct separatelyNoel Grandin
Change-Id: Id14f525e84c22caa8f974f2f1d9f398f8d8e2df8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121532 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-01ofz: MemorySanitizer: use-of-uninitialized-valueCaolán McNamara
Change-Id: Idaeb060e54fcb401f483abeb17e4f40dfd7ae20d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121374 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-09-01ofz: MemorySanitizer: use-of-uninitialized-valueCaolán McNamara
Change-Id: Ia1e6d4c71d4bd228f2a9bb5fd2f5dbf54b94700d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121396 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-09-01ofz: MemorySanitizer: use-of-uninitialized-valueCaolán McNamara
Change-Id: I9e7be23fd8a52cfd0976ca358d848cbe11e84c2b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121355 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-08-31ofz: MemorySanitizer: use-of-uninitialized-valueCaolán McNamara
Change-Id: I40ab9dc8b320990abcf89630984892e040a8544d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121380 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-08-31ofz: MemorySanitizer: use-of-uninitialized-valueCaolán McNamara
test for eof condition before comparing the uninit val Change-Id: Ie27c80f6c8103af4283181c522794eb878ccf588 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121373 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-08-31ofz: MemorySanitizer: use-of-uninitialized-valueCaolán McNamara
Change-Id: Ie08cae55b638be5756d801b10b4546eb6c985f7a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121379 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-08-31clang-tidy:readability-redundant-member-initNoel Grandin
Change-Id: Icaef0cca9ca7bce76a7eb7ecd54c492f9ffcaad6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121376 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-31ofz: MemorySanitizer: use-of-uninitialized-valueCaolán McNamara
Change-Id: I3244f5c83a02f41ec379188b1fedbdd9e511967c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121318 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-08-30ofz: MemorySanitizer: use-of-uninitialized-valueCaolán McNamara
Change-Id: Iccdfb92beae8d79863d1bca3dc44c1a13bf30a67 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121299 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-08-30ofz: MemorySanitizer: use-of-uninitialized-valueCaolán McNamara
Change-Id: Ibeeef815afea9bee3cdf6b6de17de4f836b00351 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121223 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-08-29ofz: MemorySanitizer: use-of-uninitialized-valueCaolán McNamara
Change-Id: I6d01c819766520eb5c0a8190fa2e9f6f99006548 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121220 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-08-29ofz: MemorySanitizer: use-of-uninitialized-valueCaolán McNamara
Change-Id: I4a34981e6597743f9f3a9ad6ca063cb347a68d14 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121212 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-08-18loplugin:constparamsNoel Grandin
Change-Id: Ic7410f836e584df45101e78e345c8b3c8d355e09 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120680 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-18undo changes to TextAlignCaolán McNamara
revert commit 8689bd5490b473a7ffb149bbe5f7f0683f679c72 Author: Caolán McNamara <caolanm@redhat.com> Date: Thu Jul 29 20:49:29 2021 +0100 convert TextAlign to scoped enum lets leave this as it always was Change-Id: Id4d2a5644974cdd2b0ed6d361d5c52629674d057 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120626 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-07-30convert TextAlign to scoped enumCaolán McNamara
Change-Id: Id2c466eacb44f0ea6adba75a0ac0be8be8e7ed4c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119682 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-07-25ofz#36481 TimeoutCaolán McNamara
Change-Id: I0de9bf0a8b83af83ba31bdb75497e13ada4f7f4c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119480 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-07-13Enable automatic code style formatting for EmfImportTest.cxxBartosz Kosiorek
As EmfImportTest.cxx code style is follow the recommended code style (except too long lines), the code is used only for testing and it is rarely modified, I decided to enable automatic code formatting. It is one step closed to migrate to common code style. Change-Id: I1b7f980b9e68e121ba981b8a8222daa31424ac53 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118864 Tested-by: Jenkins Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
2021-07-13Decrease line length of EmfImportTest.cxx by introducing const stringBartosz Kosiorek
Change-Id: Ie30d0246d6ca54821f00fe516ab67f803ef0d804 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118863 Tested-by: Jenkins Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
2021-07-06CppunitTest_emfio_emf: add some tolerance in TestDrawStringAlignMiklos Vajna
Commit 574dc1e8ff6ea4214fefd91216fca5146a4ff13e (EMF+ tdf#142995 tdf#142997 tdf#143076 Add alignment support for DrawString, 2021-06-24) added this test, it seems the result depends on what fonts are installed, so add some tolerance. Probably it fails for me (and not on Jenkins) as I have lots of additional fonts installed, e.g. Arial (and not only Liberation Sans). Change-Id: Ie93d1f1efe1fbbf1851ad46f33f5f83c8812e6d3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118470 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2021-07-03EMF+ tdf#142941 Fixes for SrcRect in DrawImagePointsBartosz Kosiorek
The SrcRect could be specified outside of source bitmap. In such cases the Destination bitmap should be displayed as shifted (eg. if position is negative), and scaled properly. Change-Id: Ied6d339703999faaae061802ef6a28e190d5a176 Change-Id: Ia9772ced282684c2c94a261d97d30b53921d6171 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118345 Tested-by: Jenkins Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>