Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package dxflib for openSUSE:Factory checked in at 2021-09-20 23:33:02 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/dxflib (Old) and /work/SRC/openSUSE:Factory/.dxflib.new.1899 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "dxflib" Mon Sep 20 23:33:02 2021 rev:11 rq:920134 version:3.26.4 Changes: -------- --- /work/SRC/openSUSE:Factory/dxflib/dxflib.changes 2018-04-20 17:30:33.588167739 +0200 +++ /work/SRC/openSUSE:Factory/.dxflib.new.1899/dxflib.changes 2021-09-20 23:34:40.695286622 +0200 @@ -1,0 +2,11 @@ +Sun Sep 19 08:36:44 UTC 2021 - Jan Engelhardt <[email protected]> + +- Update to release 3.26.4 + * fix LWPOLYLINE without Z values + * fix DL_POLYLINE3D flag definition + * add dimscale support for leaders + * add support for flipped dimension arrows to dxflib + * check vertexIndex which might be -1 for broken DXF + [boo#1190345, CVE-2021-21897] + +------------------------------------------------------------------- Old: ---- dxflib-3.17.0-src.tar.gz New: ---- dxflib-3.26.4-src.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ dxflib.spec ++++++ --- /var/tmp/diff_new_pack.bIAE6G/_old 2021-09-20 23:34:41.163287200 +0200 +++ /var/tmp/diff_new_pack.bIAE6G/_new 2021-09-20 23:34:41.167287204 +0200 @@ -1,7 +1,7 @@ # # spec file for package dxflib # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2021 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -12,19 +12,20 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # # Patch1 needs update on version change -%define lname libdxflib-3_17_0-1 +%define lname libdxflib-3_26_4-1 Name: dxflib -Version: 3.17.0 +Version: 3.26.4 Release: 0 Summary: Parser library for the Drawing Exchange Format (DXF) License: GPL-2.0-or-later Group: Development/Libraries/C and C++ -Url: https://qcad.org/en/dxflib-downloads +#Git-Clone: https://github.com/qcad/qcad +URL: https://qcad.org/en/dxflib-downloads Source: https://qcad.org/archives/dxflib/%name-%version-src.tar.gz Patch1: dxflib-versioning.diff BuildRequires: gcc-c++ @@ -54,12 +55,11 @@ files. %prep -%setup -qn %name-%version-src -%patch -P 1 -p1 +%autosetup -n %name-%version-src -p1 %build %qmake5 %name.pro -make %{?_smp_mflags} +%make_build %install # `make install` does not do anything. @@ -70,7 +70,7 @@ ln -Tsfv "libdxflib-%version.so.1" "$b/%_libdir/libdxflib.so" %check -make check %{?_smp_mflags} +%make_build check %post -n %lname -p /sbin/ldconfig %postun -n %lname -p /sbin/ldconfig ++++++ dxflib-3.17.0-src.tar.gz -> dxflib-3.26.4-src.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dxflib-3.17.0-src/dxflib.pro new/dxflib-3.26.4-src/dxflib.pro --- old/dxflib-3.17.0-src/dxflib.pro 2017-05-18 10:17:32.000000000 +0200 +++ new/dxflib-3.26.4-src/dxflib.pro 2021-08-23 21:21:41.000000000 +0200 @@ -26,4 +26,6 @@ TARGET = dxflib TEMPLATE = lib CONFIG += staticlib +CONFIG -= qt DEFINES += DXFLIB_LIBRARY +RC_FILE = dxflib.rc diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dxflib-3.17.0-src/dxflib.rc new/dxflib-3.26.4-src/dxflib.rc --- old/dxflib-3.17.0-src/dxflib.rc 1970-01-01 01:00:00.000000000 +0100 +++ new/dxflib-3.26.4-src/dxflib.rc 2021-08-23 21:21:41.000000000 +0200 @@ -0,0 +1,53 @@ +#ifndef DXFLIB_RC +#define DXFLIB_RC + +#include <windows.h> +#include "src/dl_dxf.h" +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US + +#define VER_FILEVERSION DL_VERSION_MAJOR,DL_VERSION_MINOR,DL_VERSION_REV,DL_VERSION_BUILD +#define VER_FILEVERSION_STR DL_VERSION + +#define VER_PRODUCTVERSION DL_VERSION_MAJOR,DL_VERSION_MINOR,DL_VERSION_REV,DL_VERSION_BUILD +#define VER_PRODUCTVERSION_STR DL_VERSION + +#define VER_COMPANYNAME_STR "RibbonSoft, GmbH" +#define VER_FILEDESCRIPTION_STR "QCAD" +#define VER_INTERNALNAME_STR "QCAD" +#define VER_LEGALCOPYRIGHT_STR "Copyright (c) 2017 RibbonSoft, GmbH" +#define VER_LEGALTRADEMARKS1_STR "All Rights Reserved" +#define VER_LEGALTRADEMARKS2_STR VER_LEGALTRADEMARKS1_STR +#define VER_ORIGINALFILENAME_STR "dxflib.dll" +#define VER_PRODUCTNAME_STR "QCAD" + +#define VER_COMPANYDOMAIN_STR "https://qcad.org" + +VS_VERSION_INFO VERSIONINFO +FILEVERSION VER_FILEVERSION +PRODUCTVERSION VER_PRODUCTVERSION +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904E4" + BEGIN + VALUE "CompanyName", VER_COMPANYNAME_STR + VALUE "FileDescription", VER_FILEDESCRIPTION_STR + VALUE "FileVersion", VER_FILEVERSION_STR + VALUE "InternalName", VER_INTERNALNAME_STR + VALUE "LegalCopyright", VER_LEGALCOPYRIGHT_STR + VALUE "LegalTrademarks1", VER_LEGALTRADEMARKS1_STR + VALUE "LegalTrademarks2", VER_LEGALTRADEMARKS2_STR + VALUE "OriginalFilename", VER_ORIGINALFILENAME_STR + VALUE "ProductName", VER_PRODUCTNAME_STR + VALUE "ProductVersion", VER_PRODUCTVERSION_STR + //VALUE "Rev", I_SVNREV + //VALUE "Date", I_SVN_CLOCKDATE + END + END + + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1252 + END +END +#endif // DXFLIB_RC diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dxflib-3.17.0-src/examples/writehatch/hatch.dxf new/dxflib-3.26.4-src/examples/writehatch/hatch.dxf --- old/dxflib-3.17.0-src/examples/writehatch/hatch.dxf 2017-05-18 10:17:32.000000000 +0200 +++ new/dxflib-3.26.4-src/examples/writehatch/hatch.dxf 2021-08-23 21:21:41.000000000 +0200 @@ -1,5 +1,5 @@ 999 -dxflib 3.12.2.0 +dxflib 3.17.0.0 0 SECTION 2 @@ -572,6 +572,8 @@ HATCH 5 32 +100 +AcDbEntity 8 0 62 @@ -585,8 +587,6 @@ 6 BYLAYER 100 -AcDbEntity -100 AcDbHatch 10 0.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dxflib-3.17.0-src/src/dl_codes.h new/dxflib-3.26.4-src/src/dl_codes.h --- old/dxflib-3.17.0-src/src/dl_codes.h 2017-05-18 10:17:32.000000000 +0200 +++ new/dxflib-3.26.4-src/src/dl_codes.h 2021-08-23 21:21:41.000000000 +0200 @@ -501,7 +501,7 @@ // Flags #define DL_OPEN_PLINE 0x00 #define DL_CLOSED_PLINE 0x01 -#define DL_POLYLINE3D 0x80 +#define DL_POLYLINE3D 0x08 #define DL_PFACE_MESH 0x40 #define DL_PGON_MESH 0x10 // Vertices follow entity, required in POLYLINES diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dxflib-3.17.0-src/src/dl_creationadapter.h new/dxflib-3.26.4-src/src/dl_creationadapter.h --- old/dxflib-3.17.0-src/src/dl_creationadapter.h 2017-05-18 10:17:32.000000000 +0200 +++ new/dxflib-3.26.4-src/src/dl_creationadapter.h 2021-08-23 21:21:41.000000000 +0200 @@ -82,7 +82,7 @@ virtual void addDimDiametric(const DL_DimensionData&, const DL_DimDiametricData&) {} virtual void addDimAngular(const DL_DimensionData&, - const DL_DimAngularData&) {} + const DL_DimAngular2LData&) {} virtual void addDimAngular3P(const DL_DimensionData&, const DL_DimAngular3PData&) {} virtual void addDimOrdinate(const DL_DimensionData&, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dxflib-3.17.0-src/src/dl_creationinterface.h new/dxflib-3.26.4-src/src/dl_creationinterface.h --- old/dxflib-3.17.0-src/src/dl_creationinterface.h 2017-05-18 10:17:32.000000000 +0200 +++ new/dxflib-3.26.4-src/src/dl_creationinterface.h 2021-08-23 21:21:41.000000000 +0200 @@ -191,7 +191,7 @@ * Called for every angular dimension (2 lines version) entity. */ virtual void addDimAngular(const DL_DimensionData& data, - const DL_DimAngularData& edata) = 0; + const DL_DimAngular2LData& edata) = 0; /** * Called for every angular dimension (3 points version) entity. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dxflib-3.17.0-src/src/dl_dxf.cpp new/dxflib-3.26.4-src/src/dl_dxf.cpp --- old/dxflib-3.17.0-src/src/dl_dxf.cpp 2017-05-18 10:17:32.000000000 +0200 +++ new/dxflib-3.26.4-src/src/dl_dxf.cpp 2021-08-23 21:21:41.000000000 +0200 @@ -129,14 +129,14 @@ /** * Reads a DXF file from an existing stream. * - * @param stream The string stream. + * @param stream The input stream. * @param creationInterface * Pointer to the class which takes care of the entities in the file. * * @retval true If \p file could be opened. * @retval false If \p file could not be opened. */ -bool DL_Dxf::in(std::stringstream& stream, +bool DL_Dxf::in(std::istream& stream, DL_CreationInterface* creationInterface) { if (stream.good()) { @@ -193,9 +193,9 @@ /** - * Same as above but for stringstreams. + * Same as above but for input streams. */ -bool DL_Dxf::readDxfGroups(std::stringstream& stream, +bool DL_Dxf::readDxfGroups(std::istream& stream, DL_CreationInterface* creationInterface) { static int line = 1; @@ -263,10 +263,10 @@ /** - * Same as above but for stringstreams. + * Same as above but for input streams. */ bool DL_Dxf::getStrippedLine(std::string &s, unsigned int size, - std::stringstream& stream, bool stripSpace) { + std::istream& stream, bool stripSpace) { if (!stream.eof()) { // Only the useful part of the line @@ -1448,10 +1448,10 @@ } if (groupCode<=30) { - if (vertexIndex>=0 && vertexIndex<maxVertices) { + if (vertexIndex>=0 && vertexIndex<maxVertices && vertexIndex>=0) { vertices[4*vertexIndex + (groupCode/10-1)] = toReal(groupValue); } - } else if (groupCode==42 && vertexIndex<maxVertices) { + } else if (groupCode==42 && vertexIndex<maxVertices && vertexIndex>=0) { vertices[4*vertexIndex + 3] = toReal(groupValue); } return true; @@ -1735,7 +1735,7 @@ */ DL_DimensionData DL_Dxf::getDimData() { // generic dimension data: - return DL_DimensionData( + DL_DimensionData ret( // def point getRealValue(10, 0.0), getRealValue(20, 0.0), @@ -1758,6 +1758,9 @@ getStringValue(3, ""), // angle getRealValue(53, 0.0)); + ret.arrow1Flipped = getIntValue(74, 0)==1; + ret.arrow2Flipped = getIntValue(75, 0)==1; + return ret; } @@ -1852,7 +1855,7 @@ DL_DimensionData d = getDimData(); // angular dimension: - DL_DimAngularData da( + DL_DimAngular2LData da( // definition point 1 getRealValue(13, 0.0), getRealValue(23, 0.0), @@ -2505,7 +2508,6 @@ if (version==DL_VERSION_2000) { dw.dxfReal(10, data.x); dw.dxfReal(20, data.y); - dw.dxfReal(30, data.z); if (fabs(data.bulge)>1.0e-10) { dw.dxfReal(42, data.bulge); } @@ -2964,6 +2966,11 @@ dw.dxfString(1001, "ACAD"); dw.dxfString(1000, "DSTYLE"); dw.dxfString(1002, "{"); + if (data.type&128) { + // custom text position: + dw.dxfInt(1070, 279); + dw.dxfInt(1070, 2); + } dw.dxfInt(1070, 144); dw.dxfReal(1040, data.linearFactor); dw.dxfInt(1070,40); @@ -3008,6 +3015,8 @@ if (version>DL_VERSION_R12) { dw.dxfInt(71, data.attachmentPoint); dw.dxfInt(72, data.lineSpacingStyle); // opt + dw.dxfInt(74, data.arrow1Flipped); + dw.dxfInt(75, data.arrow2Flipped); dw.dxfReal(41, data.lineSpacingFactor); // opt } @@ -3069,6 +3078,8 @@ if (version>DL_VERSION_R12) { dw.dxfInt(71, data.attachmentPoint); dw.dxfInt(72, data.lineSpacingStyle); // opt + dw.dxfInt(74, data.arrow1Flipped); + dw.dxfInt(75, data.arrow2Flipped); dw.dxfReal(41, data.lineSpacingFactor); // opt } @@ -3136,6 +3147,8 @@ if (version>DL_VERSION_R12) { dw.dxfInt(71, data.attachmentPoint); dw.dxfInt(72, data.lineSpacingStyle); // opt + dw.dxfInt(74, data.arrow1Flipped); + //dw.dxfInt(75, data.arrow2Flipped); dw.dxfReal(41, data.lineSpacingFactor); // opt } @@ -3195,6 +3208,8 @@ if (version>DL_VERSION_R12) { dw.dxfInt(71, data.attachmentPoint); dw.dxfInt(72, data.lineSpacingStyle); // opt + dw.dxfInt(74, data.arrow1Flipped); + dw.dxfInt(75, data.arrow2Flipped); dw.dxfReal(41, data.lineSpacingFactor); // opt } @@ -3227,9 +3242,9 @@ * @param data Specific angular dimension data from the file * @param attrib Attributes */ -void DL_Dxf::writeDimAngular(DL_WriterA& dw, +void DL_Dxf::writeDimAngular2L(DL_WriterA& dw, const DL_DimensionData& data, - const DL_DimAngularData& edata, + const DL_DimAngular2LData& edata, const DL_Attributes& attrib) { dw.entity("DIMENSION"); @@ -3254,6 +3269,8 @@ if (version>DL_VERSION_R12) { dw.dxfInt(71, data.attachmentPoint); dw.dxfInt(72, data.lineSpacingStyle); // opt + dw.dxfInt(74, data.arrow1Flipped); + dw.dxfInt(75, data.arrow2Flipped); dw.dxfReal(41, data.lineSpacingFactor); // opt } @@ -3321,6 +3338,8 @@ if (version>DL_VERSION_R12) { dw.dxfInt(71, data.attachmentPoint); dw.dxfInt(72, data.lineSpacingStyle); // opt + dw.dxfInt(74, data.arrow1Flipped); + dw.dxfInt(75, data.arrow2Flipped); dw.dxfReal(41, data.lineSpacingFactor); // opt } @@ -3390,6 +3409,8 @@ if (version>DL_VERSION_R12) { dw.dxfInt(71, data.attachmentPoint); dw.dxfInt(72, data.lineSpacingStyle); // opt + //dw.dxfInt(74, data.arrow1Flipped); + //dw.dxfInt(75, data.arrow2Flipped); dw.dxfReal(41, data.lineSpacingFactor); // opt } @@ -3460,6 +3481,18 @@ } } +void DL_Dxf::writeLeaderEnd(DL_WriterA& dw, + const DL_LeaderData& data) { + if (version==DL_VERSION_2000) { + dw.dxfString(1001, "ACAD"); + dw.dxfString(1000, "DSTYLE"); + dw.dxfString(1002, "{"); + dw.dxfInt(1070,40); + dw.dxfReal(1040, data.dimScale); + dw.dxfString(1002, "}"); + } +} + /** @@ -3664,7 +3697,7 @@ * * @return IMAGEDEF handle. Needed for the IMAGEDEF counterpart. */ -int DL_Dxf::writeImage(DL_WriterA& dw, +unsigned long DL_Dxf::writeImage(DL_WriterA& dw, const DL_ImageData& data, const DL_Attributes& attrib) { @@ -3704,8 +3737,7 @@ dw.dxfReal(23, data.height); // handle of IMAGEDEF object - int handle = dw.incHandle(); - dw.dxfHex(340, handle); + unsigned long handle = dw.handle(340); // flags dw.dxfInt(70, 15); @@ -4353,7 +4385,6 @@ dw.dxfString( 0, "SECTION"); dw.dxfString( 2, "OBJECTS"); - dw.dxfString( 0, "DICTIONARY"); dw.dxfHex(5, 0xC); dw.dxfString(100, "AcDbDictionary"); @@ -4703,12 +4734,9 @@ dw.dxfInt(281, 1); } -int DL_Dxf::writeDictionaryEntry(DL_WriterA& dw, const std::string& name) { +unsigned long DL_Dxf::writeDictionaryEntry(DL_WriterA& dw, const std::string& name) { dw.dxfString( 3, name); - int handle = dw.getNextHandle(); - dw.dxfHex(350, handle); - dw.incHandle(); - return handle; + return dw.handle(350); } void DL_Dxf::writeXRecord(DL_WriterA& dw, int handle, int value) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dxflib-3.17.0-src/src/dl_dxf.h new/dxflib-3.26.4-src/src/dl_dxf.h --- old/dxflib-3.17.0-src/src/dl_dxf.h 2017-05-18 10:17:32.000000000 +0200 +++ new/dxflib-3.26.4-src/src/dl_dxf.h 2021-08-23 21:21:41.000000000 +0200 @@ -57,11 +57,11 @@ class DL_WriterA; -#define DL_VERSION "3.17.0.0" +#define DL_VERSION "3.26.4.0" #define DL_VERSION_MAJOR 3 -#define DL_VERSION_MINOR 17 -#define DL_VERSION_REV 0 +#define DL_VERSION_MINOR 26 +#define DL_VERSION_REV 4 #define DL_VERSION_BUILD 0 #define DL_UNKNOWN 0 @@ -131,12 +131,12 @@ static bool getStrippedLine(std::string& s, unsigned int size, FILE* stream, bool stripSpace = true); - bool readDxfGroups(std::stringstream& stream, + bool readDxfGroups(std::istream& stream, DL_CreationInterface* creationInterface); - bool in(std::stringstream &stream, + bool in(std::istream &stream, DL_CreationInterface* creationInterface); static bool getStrippedLine(std::string& s, unsigned int size, - std::stringstream& stream, bool stripSpace = true); + std::istream& stream, bool stripSpace = true); static bool stripWhiteSpace(char** s, bool stripSpaces = true); @@ -294,9 +294,9 @@ const DL_DimensionData& data, const DL_DimDiametricData& edata, const DL_Attributes& attrib); - void writeDimAngular(DL_WriterA& dw, + void writeDimAngular2L(DL_WriterA& dw, const DL_DimensionData& data, - const DL_DimAngularData& edata, + const DL_DimAngular2LData& edata, const DL_Attributes& attrib); void writeDimAngular3P(DL_WriterA& dw, const DL_DimensionData& data, @@ -311,6 +311,8 @@ const DL_Attributes& attrib); void writeLeaderVertex(DL_WriterA& dw, const DL_LeaderVertexData& data); + void writeLeaderEnd(DL_WriterA& dw, + const DL_LeaderData& data); void writeHatch1(DL_WriterA& dw, const DL_HatchData& data, const DL_Attributes& attrib); @@ -324,7 +326,7 @@ void writeHatchEdge(DL_WriterA& dw, const DL_HatchEdgeData& data); - int writeImage(DL_WriterA& dw, + unsigned long writeImage(DL_WriterA& dw, const DL_ImageData& data, const DL_Attributes& attrib); @@ -355,7 +357,7 @@ void writeBlockRecord(DL_WriterA& dw, const std::string& name); void writeObjects(DL_WriterA& dw, const std::string& appDictionaryName = ""); void writeAppDictionary(DL_WriterA& dw); - int writeDictionaryEntry(DL_WriterA& dw, const std::string& name); + unsigned long writeDictionaryEntry(DL_WriterA& dw, const std::string& name); void writeXRecord(DL_WriterA& dw, int handle, int value); void writeXRecord(DL_WriterA& dw, int handle, double value); void writeXRecord(DL_WriterA& dw, int handle, bool value); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dxflib-3.17.0-src/src/dl_entities.h new/dxflib-3.26.4-src/src/dl_entities.h --- old/dxflib-3.17.0-src/src/dl_entities.h 2017-05-18 10:17:32.000000000 +0200 +++ new/dxflib-3.26.4-src/src/dl_entities.h 2021-08-23 21:21:41.000000000 +0200 @@ -1090,6 +1090,8 @@ * Dimension scale (dimscale) style override. */ double dimScale; + bool arrow1Flipped; + bool arrow2Flipped; }; @@ -1238,12 +1240,12 @@ /** * Angular Dimension Data. */ -struct DXFLIB_EXPORT DL_DimAngularData { +struct DXFLIB_EXPORT DL_DimAngular2LData { /** * Constructor. * Parameters: see member variables. */ - DL_DimAngularData(double ddpx1, double ddpy1, double ddpz1, + DL_DimAngular2LData(double ddpx1, double ddpy1, double ddpz1, double ddpx2, double ddpy2, double ddpz2, double ddpx3, double ddpy3, double ddpz3, double ddpx4, double ddpy4, double ddpz4) { @@ -1320,21 +1322,21 @@ dpz3 = ddpz3; } - /*! X Coordinate of definition point 1. */ + /*! X Coordinate of definition point 1 (extension line 1 end). */ double dpx1; /*! Y Coordinate of definition point 1. */ double dpy1; /*! Z Coordinate of definition point 1. */ double dpz1; - /*! X Coordinate of definition point 2. */ + /*! X Coordinate of definition point 2 (extension line 2 end). */ double dpx2; /*! Y Coordinate of definition point 2. */ double dpy2; /*! Z Coordinate of definition point 2. */ double dpz2; - /*! X Coordinate of definition point 3. */ + /*! X Coordinate of definition point 3 (center). */ double dpx3; /*! Y Coordinate of definition point 3. */ double dpy3; @@ -1395,23 +1397,25 @@ * Constructor. * Parameters: see member variables. */ - DL_LeaderData(int lArrowHeadFlag, - int lLeaderPathType, - int lLeaderCreationFlag, - int lHooklineDirectionFlag, - int lHooklineFlag, - double lTextAnnotationHeight, - double lTextAnnotationWidth, - int lNumber) { - - arrowHeadFlag = lArrowHeadFlag; - leaderPathType = lLeaderPathType; - leaderCreationFlag = lLeaderCreationFlag; - hooklineDirectionFlag = lHooklineDirectionFlag; - hooklineFlag = lHooklineFlag; - textAnnotationHeight = lTextAnnotationHeight; - textAnnotationWidth = lTextAnnotationWidth; - number = lNumber; + DL_LeaderData(int arrowHeadFlag, + int leaderPathType, + int leaderCreationFlag, + int hooklineDirectionFlag, + int hooklineFlag, + double textAnnotationHeight, + double textAnnotationWidth, + int number, + double dimScale = 1.0) : + arrowHeadFlag(arrowHeadFlag), + leaderPathType(leaderPathType), + leaderCreationFlag(leaderCreationFlag), + hooklineDirectionFlag(hooklineDirectionFlag), + hooklineFlag(hooklineFlag), + textAnnotationHeight(textAnnotationHeight), + textAnnotationWidth(textAnnotationWidth), + number(number), + dimScale(dimScale) { + } /*! Arrow head flag (71). */ @@ -1430,6 +1434,8 @@ double textAnnotationWidth; /*! Number of vertices in leader (76). */ int number; + /*! Dimension scale (dimscale) style override. */ + double dimScale; }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dxflib-3.17.0-src/src/dl_writer.h new/dxflib-3.26.4-src/src/dl_writer.h --- old/dxflib-3.17.0-src/src/dl_writer.h 2017-05-18 10:17:32.000000000 +0200 +++ new/dxflib-3.26.4-src/src/dl_writer.h 2021-08-23 21:21:41.000000000 +0200 @@ -36,6 +36,7 @@ #pragma once #endif // _MSC_VER > 1000 +#include <cstring> #include <iostream> #include <algorithm> @@ -540,49 +541,6 @@ } /** - * Increases handle, so that the handle returned remains available. - */ - unsigned long incHandle() const { - return m_handle++; - } - - /** - * Sets the handle of the model space. Entities refer to - * this handle. - */ - void setModelSpaceHandle(unsigned long h) { - modelSpaceHandle = h; - } - - unsigned long getModelSpaceHandle() { - return modelSpaceHandle; - } - - /** - * Sets the handle of the paper space. Some special blocks refer to - * this handle. - */ - void setPaperSpaceHandle(unsigned long h) { - paperSpaceHandle = h; - } - - unsigned long getPaperSpaceHandle() { - return paperSpaceHandle; - } - - /** - * Sets the handle of the paper space 0. Some special blocks refer to - * this handle. - */ - void setPaperSpace0Handle(unsigned long h) { - paperSpace0Handle = h; - } - - unsigned long getPaperSpace0Handle() { - return paperSpace0Handle; - } - - /** * Must be overwritten by the implementing class to write a * real value to the file. * ++++++ dxflib-versioning.diff ++++++ --- /var/tmp/diff_new_pack.bIAE6G/_old 2021-09-20 23:34:41.247287304 +0200 +++ /var/tmp/diff_new_pack.bIAE6G/_new 2021-09-20 23:34:41.251287308 +0200 @@ -3,25 +3,23 @@ dxflib by default does not build a shared library, and does not track its ABI either. So we have to do that. - -1: dxflib-3.7.5 -suse2: dxflib-3.12.2: class DL_DimensionData gained new member - --- dxflib.pro | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -Index: dxflib-3.17.0-src/dxflib.pro +Index: dxflib-3.26.4-src/dxflib.pro =================================================================== ---- dxflib-3.17.0-src.orig/dxflib.pro -+++ dxflib-3.17.0-src/dxflib.pro -@@ -23,7 +23,7 @@ SOURCES = \ +--- dxflib-3.26.4-src.orig/dxflib.pro ++++ dxflib-3.26.4-src/dxflib.pro +@@ -23,9 +23,9 @@ SOURCES = \ src/dl_dxf.cpp \ src/dl_writer_ascii.cpp -TARGET = dxflib -+TARGET = dxflib-3.17.0 ++TARGET = dxflib-3.26.4 TEMPLATE = lib -CONFIG += staticlib +CONFIG += sharedlib + CONFIG -= qt DEFINES += DXFLIB_LIBRARY + RC_FILE = dxflib.rc
