Skip to content

Commit 7bc76be

Browse files
committedAug 14, 2021
Remove custom QGIS debug code and partially resync with upstream library
1 parent 44d5a15 commit 7bc76be

File tree

7 files changed

+2747
-3203
lines changed

7 files changed

+2747
-3203
lines changed
 

‎external/libdxfrw/drw_classes.cpp

Lines changed: 15 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,6 @@
1717
#include "intern/dwgbuffer.h"
1818
#include "intern/drw_dbg.h"
1919

20-
#include "qgslogger.h"
21-
22-
2320
void DRW_Class::parseCode( int code, dxfReader *reader )
2421
{
2522
switch ( code )
@@ -52,46 +49,36 @@ void DRW_Class::parseCode( int code, dxfReader *reader )
5249

5350
bool DRW_Class::parseDwg( DRW::Version version, dwgBuffer *buf, dwgBuffer *strBuf )
5451
{
55-
QgsDebugMsg( "***************************** parsing Class *********************************************" );
52+
DRW_DBG("\n***************************** parsing Class *********************************************\n");
5653

5754
classNum = buf->getBitShort();
58-
59-
QgsDebugMsg( QString( "Class number: %1" ).arg( classNum ) );
60-
55+
DRW_DBG("Class number: "); DRW_DBG(classNum);
6156
proxyFlag = buf->getBitShort(); //in dwg specs says "version"
6257

6358
appName = strBuf->getVariableText( version, false );
6459
className = strBuf->getVariableText( version, false );
6560
recName = strBuf->getVariableText( version, false );
6661

67-
QgsDebugMsg( QString( "app name:%1, class name:%2, dxf rec name:%3" )
68-
.arg( appName.c_str() ).arg( className.c_str() ).arg( recName.c_str() )
69-
);
70-
62+
DRW_DBG("\napp name: "); DRW_DBG(appName.c_str());
63+
DRW_DBG("\nclass name: "); DRW_DBG(className.c_str());
64+
DRW_DBG("\ndxf rec name: "); DRW_DBG(recName.c_str());
7165
wasaProxyFlag = buf->getBit(); //in dwg says wasazombie
7266
entityFlag = buf->getBitShort();
7367
entityFlag = entityFlag == 0x1F2 ? 1 : 0;
7468

75-
QgsDebugMsg( QString( "Proxy capabilities flag:%1, proxy flag (280): %2, entity flag:%3" )
76-
.arg( proxyFlag ).arg( wasaProxyFlag ).arg( entityFlag )
77-
);
69+
DRW_DBG("\nProxy capabilities flag: "); DRW_DBG(proxyFlag);
70+
DRW_DBG(", proxy flag (280): "); DRW_DBG(wasaProxyFlag);
71+
DRW_DBG(", entity flag: "); DRW_DBGH(entityFlag);
7872

7973
if ( version > DRW::AC1015 ) //2004+
8074
{
81-
instanceCount = buf->getBitLong();
82-
duint32 dwgVersion = buf->getBitLong();
83-
int t = buf->getBitLong();
84-
int unk0 = buf->getBitLong();
85-
int unk1 = buf->getBitLong();
86-
87-
QgsDebugMsg( QString( "Instance Count:%1, DWG version: %2, maintenance version:%3, unk0:%4, unk1:%5" )
88-
.arg( instanceCount ).arg( dwgVersion ).arg( t ).arg( unk0 ).arg( unk1 )
89-
);
90-
Q_UNUSED( instanceCount );
91-
Q_UNUSED( dwgVersion );
92-
Q_UNUSED( t );
93-
Q_UNUSED( unk0 );
94-
Q_UNUSED( unk1 );
75+
instanceCount = buf->getBitLong();
76+
DRW_DBG("\nInstance Count: "); DRW_DBG(instanceCount);
77+
duint32 dwgVersion = buf->getBitLong();
78+
DRW_DBG("\nDWG version: "); DRW_DBG(dwgVersion);
79+
DRW_DBG("\nmaintenance version: "); DRW_DBG(buf->getBitLong());
80+
DRW_DBG("\nunknown 1: "); DRW_DBG(buf->getBitLong());
81+
DRW_DBG("\nunknown 2: "); DRW_DBG(buf->getBitLong());
9582
}
9683

9784
toDwgType();

‎external/libdxfrw/drw_header.cpp

Lines changed: 2337 additions & 2660 deletions
Large diffs are not rendered by default.

‎external/libdxfrw/intern/dwgbuffer.cpp

Lines changed: 27 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -10,25 +10,11 @@
1010
** along with this program. If not, see <http://www.gnu.org/licenses/>. **
1111
******************************************************************************/
1212

13-
// uncomment to get detailed debug output on DWG read. Caution: this option makes DWG import super-slow!
14-
// #define DWGDEBUG 1
15-
1613
#include "dwgbuffer.h"
1714
#include "../libdwgr.h"
1815
#include "drw_textcodec.h"
1916
#include "drw_dbg.h"
2017

21-
#include "qgslogger.h"
22-
23-
#ifndef DWGDEBUG
24-
#undef QgsDebugCall
25-
#undef QgsDebugMsg
26-
#undef QgsDebugMsgLevel
27-
#define QgsDebugCall
28-
#define QgsDebugMsg(str)
29-
#define QgsDebugMsgLevel(str, level)
30-
#endif
31-
3218
static unsigned int crctable[256] =
3319
{
3420
0x0000, 0xC0C1, 0xC181, 0x0140, 0xC301, 0x03C0, 0x0280, 0xC241,
@@ -151,29 +137,29 @@ bool dwgCharStream::read( duint8 *s, duint64 n )
151137
return true;
152138
}
153139

154-
dwgBuffer::dwgBuffer(duint8 *buf, duint64 size, DRW_TextCodec *dc)
155-
:decoder{dc}
156-
,filestr{new dwgCharStream(buf, size)}
157-
,maxSize{size}
140+
dwgBuffer::dwgBuffer( duint8 *buf, duint64 size, DRW_TextCodec *dc )
141+
: decoder{dc}
142+
, filestr{new dwgCharStream( buf, size )}
143+
, maxSize{size}
158144
{}
159145

160-
dwgBuffer::dwgBuffer(std::ifstream *stream, DRW_TextCodec *dc)
161-
:decoder{dc}
162-
,filestr{new dwgFileStream(stream)}
163-
,maxSize{filestr->size()}
146+
dwgBuffer::dwgBuffer( std::ifstream *stream, DRW_TextCodec *dc )
147+
: decoder{dc}
148+
, filestr{new dwgFileStream( stream )}
149+
, maxSize{filestr->size()}
164150
{}
165151

166-
dwgBuffer::dwgBuffer( const dwgBuffer& org )
167-
:decoder{org.decoder}
168-
,filestr{org.filestr->clone()}
169-
,maxSize{filestr->size()}
170-
,currByte{org.currByte}
171-
,bitPos{org.bitPos}
152+
dwgBuffer::dwgBuffer( const dwgBuffer &org )
153+
: decoder{org.decoder}
154+
, filestr{org.filestr->clone()}
155+
, maxSize{filestr->size()}
156+
, currByte{org.currByte}
157+
, bitPos{org.bitPos}
172158
{}
173159

174160
dwgBuffer &dwgBuffer::operator=( const dwgBuffer &org )
175161
{
176-
filestr.reset(org.filestr->clone());
162+
filestr.reset( org.filestr->clone() );
177163
decoder = org.decoder;
178164
maxSize = filestr->size();
179165
currByte = org.currByte;
@@ -341,9 +327,9 @@ dint16 dwgBuffer::getSBitShort()
341327
{
342328
duint8 b = get2Bits();
343329
if ( b == 0 )
344-
return static_cast<dint16>(getRawShort16());
330+
return static_cast<dint16>( getRawShort16() );
345331
else if ( b == 1 )
346-
return static_cast<dint16>(getRawChar8());
332+
return static_cast<dint16>( getRawChar8() );
347333
else if ( b == 2 )
348334
return 0;
349335
else
@@ -851,21 +837,17 @@ duint32 dwgBuffer::getCmColor( DRW::Version v )
851837
duint32 rgb = getBitLong();
852838
duint8 cb = getRawChar8();
853839
duint8 type = rgb >> 24;
854-
855-
QgsDebugMsg( QString( "type COLOR:%1 index COLOR:%2 RGB COLOR:0x%3 byte COLOR:%4" )
856-
.arg( type ).arg( idx ).arg( rgb, 0, 16 ).arg( cb )
857-
);
858-
Q_UNUSED( idx );
859-
840+
DRW_DBG( "type COLOR:" ); DRW_DBG( type ); DRW_DBG( " index COLOR:" ); DRW_DBG( idx );
841+
DRW_DBG( " RGB COLOR:" ); DRW_DBGH( rgb ); DRW_DBG( " byte COLOR:" ); DRW_DBG( cb ); DRW_DBG( "\n" );
860842
if ( cb & 1 )
861843
{
862844
std::string colorName = getVariableText( v, false );
863-
QgsDebugMsg( QString( "colorName:%1" ).arg( colorName.c_str() ) );
845+
DRW_DBG( "colorName:" ); DRW_DBG( colorName ); DRW_DBG( "\n" );
864846
}
865847
if ( cb & 2 )
866848
{
867849
std::string bookName = getVariableText( v, false );
868-
QgsDebugMsg( QString( "bookName: %1" ).arg( bookName.c_str() ) );
850+
DRW_DBG( "bookName:" ); DRW_DBG( bookName ); DRW_DBG( "\n" );
869851
}
870852

871853
switch ( type )
@@ -899,31 +881,28 @@ duint32 dwgBuffer::getEnColor( DRW::Version v, int &rgb, int &transparency )
899881
transparency = 0;
900882

901883
duint16 idx = getBitShort();
902-
QgsDebugMsgLevel( QString( "idx reads COLOR: 0x%1" ).arg( idx, 0, 16 ), 4 );
884+
DRW_DBG( "idx reads COLOR: " ); DRW_DBGH( idx ); DRW_DBG( "\n" );
903885

904886
duint16 flags = idx >> 8;
905887

906888
idx = idx & 0x1FF; //RLZ: warning this is correct?
907-
908-
QgsDebugMsgLevel( QString( "flag COLOR:0x%1, index COLOR:0x%2" ).arg( flags, 0, 16 ).arg( idx, 0, 16 ), 4 );
909-
889+
DRW_DBG( "flag COLOR:" ); DRW_DBGH( flags ); DRW_DBG( ", index COLOR:" ); DRW_DBGH( idx ); DRW_DBG( "\n" );
910890
if ( flags & 0x80 )
911891
{
912892
// complex color (rgb)
913893
rgb = getBitLong() & 0xffffff;
914894

915-
QgsDebugMsgLevel( QString( "RGB COLOR:0x%1" ).arg( rgb, 0, 16 ), 4 );
916-
895+
DRW_DBG( "RGB COLOR:" ); DRW_DBGH( rgb ); DRW_DBG( "\n" );
917896
if ( flags & 0x80 )
918897
{
919-
QgsDebugMsgLevel( "acdbColor COLOR are present", 4 );
898+
DRW_DBG( "acdbColor COLOR are present\n" );
920899
}
921900
}
922901

923902
if ( flags & 0x20 )
924903
{
925904
transparency = getBitLong();
926-
QgsDebugMsgLevel( QString( "Transparency COLOR:0x%1" ).arg( transparency, 0, 16 ), 4 );
905+
DRW_DBG( "Transparency COLOR:" ); DRW_DBGH( transparency ); DRW_DBG( "\n" );
927906
}
928907

929908
return idx; //default return ByLayer
@@ -948,7 +927,7 @@ bool dwgBuffer::getBytes( unsigned char *buf, int size )
948927
filestr->read( buf, size );
949928
if ( !filestr->good() && ( int ) filestr->getPos() - pos != size )
950929
{
951-
QgsDebugMsg( QString( "short read: wanted %1; got %2 (at %3)" ).arg( size ).arg( filestr->getPos() - pos ).arg( filestr->getPos() ) );
930+
DRW_DBG( "short read: wanted " ); DRW_DBG( size ); DRW_DBG( "; got " ); DRW_DBGH( filestr->getPos() - pos ); DRW_DBG( " (at " ); DRW_DBG( filestr->getPos() ); DRW_DBG( "\n" );
952931
return false;
953932
}
954933

‎external/libdxfrw/intern/dwgreader.cpp

Lines changed: 109 additions & 163 deletions
Large diffs are not rendered by default.

‎external/libdxfrw/intern/dxfreader.cpp

Lines changed: 26 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,7 @@
2020

2121
#include "dxfreader.h"
2222
#include "drw_textcodec.h"
23-
24-
#include "qgslogger.h"
25-
26-
#ifndef DWGDEBUG
27-
#undef QgsDebugCall
28-
#undef QgsDebugMsg
29-
#undef QgsDebugMsgLevel
30-
#define QgsDebugCall
31-
#define QgsDebugMsg(str)
32-
#define QgsDebugMsgLevel(str, level)
33-
#endif
23+
#include "drw_dbg.h"
3424

3525
bool dxfReader::readRec( int *codeData )
3626
{
@@ -126,35 +116,29 @@ bool dxfReaderBinary::readCode( int *code )
126116
//exist a 32bits int (code 90) with 2 bytes???
127117
if ( ( *code == 90 ) && ( *int16p > 2000 ) )
128118
{
129-
QgsDebugMsg( QString( "%1 de 16bits" ).arg( *code ) );
130-
119+
DRW_DBG(*code); DRW_DBG(" de 16bits\n");
131120
filestr->seekg( -4, std::ios_base::cur );
132121
filestr->read( buffer, 2 );
133122
int16p = ( unsigned short * ) buffer;
134123
}
135124
*code = *int16p;
136-
QgsDebugMsg( QString( "%1" ).arg( *code ) );
137-
125+
DRW_DBG(*code); DRW_DBG("\n");
138126
return filestr->good();
139127
}
140128

141129
bool dxfReaderBinary::readString()
142130
{
143131
type = STRING;
144132
std::getline( *filestr, strData, '\0' );
145-
146-
QgsDebugMsg( QString( "%1" ).arg( strData.c_str() ) );
147-
133+
DRW_DBG(strData); DRW_DBG("\n");
148134
return filestr->good();
149135
}
150136

151137
bool dxfReaderBinary::readString( std::string *text )
152138
{
153139
type = STRING;
154140
std::getline( *filestr, *text, '\0' );
155-
156-
QgsDebugMsg( QString( "%1" ).arg( text->c_str() ) );
157-
141+
DRW_DBG(*text); DRW_DBG("\n");
158142
return filestr->good();
159143
}
160144

@@ -164,9 +148,7 @@ bool dxfReaderBinary::readInt16()
164148
char buffer[2];
165149
filestr->read( buffer, 2 );
166150
intData = ( int )( ( buffer[1] << 8 ) | buffer[0] );
167-
168-
QgsDebugMsg( QString( "%1" ).arg( intData ) );
169-
151+
DRW_DBG(intData); DRW_DBG("\n");
170152
return filestr->good();
171153
}
172154

@@ -178,9 +160,7 @@ bool dxfReaderBinary::readInt32()
178160
filestr->read( buffer, 4 );
179161
int32p = ( unsigned int * ) buffer;
180162
intData = *int32p;
181-
182-
QgsDebugMsg( QString( "%1" ).arg( intData ) );
183-
163+
DRW_DBG(intData); DRW_DBG("\n");
184164
return filestr->good();
185165
}
186166

@@ -192,19 +172,15 @@ bool dxfReaderBinary::readInt64()
192172
filestr->read( buffer, 8 );
193173
int64p = ( unsigned long long int * ) buffer;
194174
int64 = *int64p;
195-
196-
QgsDebugMsg( QString( "%1 int64" ).arg( int64 ) );
197-
175+
DRW_DBG(int64); DRW_DBG(" int64\n");
198176
return filestr->good();
199177
}
200178

201179
bool dxfReaderBinary::readDouble()
202180
{
203181
type = DOUBLE;
204182
filestr->read( ( char * ) &doubleData, sizeof doubleData );
205-
206-
QgsDebugMsg( QString( "%1" ).arg( doubleData ) );
207-
183+
DRW_DBG(doubleData); DRW_DBG("\n");
208184
return filestr->good();
209185
}
210186

@@ -214,9 +190,7 @@ bool dxfReaderBinary::readBool()
214190
char buffer;
215191
filestr->read( &buffer, 1 );
216192
intData = buffer;
217-
218-
QgsDebugMsg( QString( "%1" ).arg( intData ) );
219-
193+
DRW_DBG(intData); DRW_DBG("\n");
220194
return filestr->good();
221195
}
222196

@@ -225,9 +199,7 @@ bool dxfReaderAscii::readCode( int *code )
225199
std::string text;
226200
std::getline( *filestr, text );
227201
*code = atoi( text.c_str() );
228-
229-
QgsDebugMsg( QString( "%1" ).arg( *code ) );
230-
202+
DRW_DBG(*code); DRW_DBG("\n");
231203
return filestr->good();
232204
}
233205

@@ -247,9 +219,7 @@ bool dxfReaderAscii::readString()
247219
std::getline( *filestr, strData );
248220
if ( !strData.empty() && strData.at( strData.size() - 1 ) == '\r' )
249221
strData.erase( strData.size() - 1 );
250-
251-
QgsDebugMsg( QString( "%1" ).arg( strData.c_str() ) );
252-
222+
DRW_DBG(strData); DRW_DBG("\n");
253223
return filestr->good();
254224
}
255225

@@ -260,9 +230,7 @@ bool dxfReaderAscii::readInt16()
260230
if ( readString( &text ) )
261231
{
262232
intData = atoi( text.c_str() );
263-
264-
QgsDebugMsg( QString( "%1" ).arg( intData ) );
265-
233+
DRW_DBG(intData); DRW_DBG("\n");
266234
return true;
267235
}
268236
else
@@ -288,8 +256,18 @@ bool dxfReaderAscii::readDouble()
288256
std::string text;
289257
if ( readString( &text ) )
290258
{
291-
doubleData = QString::fromStdString( text ).toDouble( &ok );
292-
QgsDebugMsg( QString( "%1" ).arg( doubleData ) );
259+
#if defined(__APPLE__)
260+
int succeeded=sscanf( & (text[0]), "%lg", &doubleData);
261+
if(succeeded != 1) {
262+
DRW_DBG("dxfReaderAscii::readDouble(): reading double error: ");
263+
DRW_DBG(text);
264+
DRW_DBG('\n');
265+
}
266+
#else
267+
std::istringstream sd(text);
268+
sd >> doubleData;
269+
DRW_DBG(doubleData); DRW_DBG('\n');
270+
#endif
293271
}
294272
return ok;
295273
}
@@ -302,7 +280,7 @@ bool dxfReaderAscii::readBool()
302280
if ( readString( &text ) )
303281
{
304282
intData = atoi( text.c_str() );
305-
QgsDebugMsg( QString( "%1" ).arg( intData ) );
283+
DRW_DBG(intData); DRW_DBG("\n");
306284
return true;
307285
}
308286
else

‎external/libdxfrw/libdwgr.cpp

Lines changed: 113 additions & 113 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@
1818
#include <sstream>
1919
#include "intern/drw_dbg.h"
2020

21-
#include "qgslogger.h"
22-
2321
#include "intern/drw_textcodec.h"
2422
#include "intern/dwgreader.h"
2523
#include "intern/dwgreader15.h"
@@ -42,22 +40,24 @@ enum sections
4240
};
4341
#endif
4442

45-
dwgR::dwgR(const char* name)
46-
: fileName{ name }
43+
dwgR::dwgR( const char *name )
44+
: fileName{ name }
4745
{
48-
DRW_DBGSL(DRW_dbg::Level::None);
46+
DRW_DBGSL( DRW_dbg::Level::None );
4947
}
5048

5149
dwgR::~dwgR() = default;
5250

53-
void dwgR::setDebug(DRW::DebugLevel lvl){
54-
switch (lvl){
51+
void dwgR::setDebug( DRW::DebugLevel lvl )
52+
{
53+
switch ( lvl )
54+
{
5555
case DRW::DebugLevel::Debug:
56-
DRW_DBGSL(DRW_dbg::Level::Debug);
57-
break;
56+
DRW_DBGSL( DRW_dbg::Level::Debug );
57+
break;
5858
case DRW::DebugLevel::None:
59-
DRW_DBGSL(DRW_dbg::Level::None);
60-
}
59+
DRW_DBGSL( DRW_dbg::Level::None );
60+
}
6161
}
6262

6363
/*reads metadata and loads image preview*/
@@ -78,8 +78,9 @@ bool dwgR::getPreview()
7878
error = DRW::BAD_READ_METADATA;
7979

8080
filestr.close();
81-
if (reader) {
82-
reader.reset();
81+
if ( reader )
82+
{
83+
reader.reset();
8384
}
8485
return isOk;
8586
}
@@ -101,45 +102,38 @@ bool dwgR::testReader()
101102
fileBuf.getBytes( tmpStrData, fileBuf.size() );
102103
dwgBuffer dataBuf( tmpStrData, fileBuf.size() );
103104
fileBuf.setPosition( 0 );
104-
105-
QgsDebugMsg( QString( "filebuf size:%1, dataBuf size:%2, filebuf pos:%3, dataBuf pos:%4, filebuf bitpos:%5, dataBuf bitpos:%6, filebuf first byte:0x%7, databuf first byte:0x%8" )
106-
.arg( fileBuf.size() ).arg( dataBuf.size() )
107-
.arg( fileBuf.getPosition() ).arg( dataBuf.getPosition() )
108-
.arg( fileBuf.getBitPos() ).arg( dataBuf.getBitPos() )
109-
.arg( fileBuf.getRawChar8(), 0, 16 )
110-
.arg( dataBuf.getRawChar8(), 0, 16 )
111-
);
112-
105+
DRW_DBG("\ndwgR::testReader filebuf size: ");DRW_DBG(fileBuf.size());
106+
DRW_DBG("\ndwgR::testReader dataBuf size: ");DRW_DBG(dataBuf.size());
107+
DRW_DBG("\n filebuf pos: ");DRW_DBG(fileBuf.getPosition());
108+
DRW_DBG("\n dataBuf pos: ");DRW_DBG(dataBuf.getPosition());
109+
DRW_DBG("\n filebuf bitpos: ");DRW_DBG(fileBuf.getBitPos());
110+
DRW_DBG("\n dataBuf bitpos: ");DRW_DBG(dataBuf.getBitPos());
111+
DRW_DBG("\n filebuf first byte : ");DRW_DBGH(fileBuf.getRawChar8());
112+
DRW_DBG("\n dataBuf first byte : ");DRW_DBGH(dataBuf.getRawChar8());
113113
fileBuf.setBitPos( 4 );
114114
dataBuf.setBitPos( 4 );
115-
116-
QgsDebugMsg( QString( "filebuf first byte:0x%1, databuf first byte:0x%2, filebuf pos:%3, databuf pos:%4, filebuf bitpos:%5, databuf bitpos:%6" )
117-
.arg( fileBuf.getRawChar8(), 0, 16 )
118-
.arg( dataBuf.getRawChar8(), 0, 16 )
119-
.arg( fileBuf.getPosition() ).arg( dataBuf.getPosition() )
120-
.arg( fileBuf.getBitPos() ).arg( dataBuf.getBitPos() )
121-
);
122-
115+
DRW_DBG("\n filebuf first byte : ");DRW_DBGH(fileBuf.getRawChar8());
116+
DRW_DBG("\n dataBuf first byte : ");DRW_DBGH(dataBuf.getRawChar8());
117+
DRW_DBG("\n filebuf pos: ");DRW_DBG(fileBuf.getPosition());
118+
DRW_DBG("\n dataBuf pos: ");DRW_DBG(dataBuf.getPosition());
119+
DRW_DBG("\n filebuf bitpos: ");DRW_DBG(fileBuf.getBitPos());
120+
DRW_DBG("\n dataBuf bitpos: ");DRW_DBG(dataBuf.getBitPos());
123121
fileBuf.setBitPos( 6 );
124122
dataBuf.setBitPos( 6 );
125-
126-
QgsDebugMsg( QString( "filebuf pos:%1, databuf pos:%1, filebuf bitpos:%3, databuf bitpos:%4, filebuf first byte:%5, databuf first byte:%6" )
127-
.arg( fileBuf.getPosition() ).arg( dataBuf.getPosition() )
128-
.arg( fileBuf.getBitPos() ).arg( dataBuf.getBitPos() )
129-
.arg( fileBuf.getRawChar8(), 0, 16 )
130-
.arg( dataBuf.getRawChar8(), 0, 16 )
131-
);
132-
123+
DRW_DBG("\n filebuf pos: ");DRW_DBG(fileBuf.getPosition());
124+
DRW_DBG("\n dataBuf pos: ");DRW_DBG(dataBuf.getPosition());
125+
DRW_DBG("\n filebuf bitpos: ");DRW_DBG(fileBuf.getBitPos());
126+
DRW_DBG("\n dataBuf bitpos: ");DRW_DBG(dataBuf.getBitPos());
127+
DRW_DBG("\n filebuf first byte : ");DRW_DBGH(fileBuf.getRawChar8());
128+
DRW_DBG("\n dataBuf first byte : ");DRW_DBGH(dataBuf.getRawChar8());
133129
fileBuf.setBitPos( 0 );
134130
dataBuf.setBitPos( 0 );
135-
136-
QgsDebugMsg( QString( "filebuf first byte:0x%1, databuf first byte:0x%2, filebuf pos:%3, databuf pos:%4, filebuf bitpos:%5, databuf bitpos:%6" )
137-
.arg( fileBuf.getRawChar8(), 0, 16 )
138-
.arg( dataBuf.getRawChar8(), 0, 16 )
139-
.arg( fileBuf.getPosition() ).arg( dataBuf.getPosition() )
140-
.arg( fileBuf.getBitPos() ).arg( dataBuf.getBitPos() )
141-
);
142-
131+
DRW_DBG("\n filebuf first byte : ");DRW_DBGH(fileBuf.getRawChar8());
132+
DRW_DBG("\n dataBuf first byte : ");DRW_DBGH(dataBuf.getRawChar8());
133+
DRW_DBG("\n filebuf pos: ");DRW_DBG(fileBuf.getPosition());
134+
DRW_DBG("\n dataBuf pos: ");DRW_DBG(dataBuf.getPosition());
135+
DRW_DBG("\n filebuf bitpos: ");DRW_DBG(fileBuf.getBitPos());
136+
DRW_DBG("\n dataBuf bitpos: ");DRW_DBG(dataBuf.getBitPos());
143137
delete [] tmpStrData;
144138
filestr.close();
145139

@@ -177,78 +171,81 @@ bool dwgR::read( DRW_Interface *interface_, bool ext )
177171
error = DRW::BAD_READ_METADATA;
178172

179173
filestr.close();
180-
if (reader) {
181-
reader.reset();
174+
if ( reader )
175+
{
176+
reader.reset();
182177
}
183178

184179
return isOk;
185180
}
186181

187-
std::unordered_map< const char*, DRW::Version > dwgR::DRW_dwgVersionStrings = {
188-
{ "MC0.0", DRW::MC00 },
189-
{ "AC1.2", DRW::AC12 },
190-
{ "AC1.4", DRW::AC14 },
191-
{ "AC1.50", DRW::AC150 },
192-
{ "AC2.10", DRW::AC210 },
193-
{ "AC1002", DRW::AC1002 },
194-
{ "AC1003", DRW::AC1003 },
195-
{ "AC1004", DRW::AC1004 },
196-
{ "AC1006", DRW::AC1006 },
197-
{ "AC1009", DRW::AC1009 },
198-
{ "AC1012", DRW::AC1012 },
199-
{ "AC1014", DRW::AC1014 },
200-
{ "AC1015", DRW::AC1015 },
201-
{ "AC1018", DRW::AC1018 },
202-
{ "AC1021", DRW::AC1021 },
203-
{ "AC1024", DRW::AC1024 },
204-
{ "AC1027", DRW::AC1027 },
205-
{ "AC1032", DRW::AC1032 },
182+
std::unordered_map< const char *, DRW::Version > dwgR::DRW_dwgVersionStrings =
183+
{
184+
{ "MC0.0", DRW::MC00 },
185+
{ "AC1.2", DRW::AC12 },
186+
{ "AC1.4", DRW::AC14 },
187+
{ "AC1.50", DRW::AC150 },
188+
{ "AC2.10", DRW::AC210 },
189+
{ "AC1002", DRW::AC1002 },
190+
{ "AC1003", DRW::AC1003 },
191+
{ "AC1004", DRW::AC1004 },
192+
{ "AC1006", DRW::AC1006 },
193+
{ "AC1009", DRW::AC1009 },
194+
{ "AC1012", DRW::AC1012 },
195+
{ "AC1014", DRW::AC1014 },
196+
{ "AC1015", DRW::AC1015 },
197+
{ "AC1018", DRW::AC1018 },
198+
{ "AC1021", DRW::AC1021 },
199+
{ "AC1024", DRW::AC1024 },
200+
{ "AC1027", DRW::AC1027 },
201+
{ "AC1032", DRW::AC1032 },
206202
};
207203

208204
/**
209205
* Factory method which creates a reader for the specified DWG version.
210206
*
211207
* \returns nullptr if version is not supported.
212208
*/
213-
std::unique_ptr<dwgReader> dwgR::createReaderForVersion(DRW::Version version, std::ifstream *stream, dwgR *p )
209+
std::unique_ptr<dwgReader> dwgR::createReaderForVersion( DRW::Version version, std::ifstream *stream, dwgR *p )
214210
{
215-
switch ( version ) {
216-
// unsupported
217-
case DRW::UNKNOWNV:
218-
case DRW::MC00:
219-
case DRW::AC12:
220-
case DRW::AC14:
221-
case DRW::AC150:
222-
case DRW::AC210:
223-
case DRW::AC1002:
224-
case DRW::AC1003:
225-
case DRW::AC1004:
226-
case DRW::AC1006:
227-
case DRW::AC1009:
228-
break;
229-
230-
case DRW::AC1012:
231-
case DRW::AC1014:
232-
case DRW::AC1015:
233-
return std::unique_ptr< dwgReader >( new dwgReader15( stream, p) );
234-
235-
case DRW::AC1018:
236-
return std::unique_ptr< dwgReader >( new dwgReader18( stream, p) );
237-
238-
case DRW::AC1021:
239-
return std::unique_ptr< dwgReader >( new dwgReader21( stream, p) );
240-
241-
case DRW::AC1024:
242-
return std::unique_ptr< dwgReader >( new dwgReader24( stream, p) );
243-
244-
case DRW::AC1027:
245-
return std::unique_ptr< dwgReader >( new dwgReader27( stream, p) );
246-
247-
// unsupported
248-
case DRW::AC1032:
249-
break;
250-
}
251-
return nullptr;
211+
switch ( version )
212+
{
213+
// unsupported
214+
case DRW::UNKNOWNV:
215+
case DRW::MC00:
216+
case DRW::AC12:
217+
case DRW::AC14:
218+
case DRW::AC150:
219+
case DRW::AC210:
220+
case DRW::AC1002:
221+
case DRW::AC1003:
222+
case DRW::AC1004:
223+
case DRW::AC1006:
224+
case DRW::AC1009:
225+
break;
226+
227+
case DRW::AC1012:
228+
case DRW::AC1014:
229+
case DRW::AC1015:
230+
return std::unique_ptr< dwgReader >( new dwgReader15( stream, p ) );
231+
232+
case DRW::AC1018:
233+
return std::unique_ptr< dwgReader >( new dwgReader18( stream, p ) );
234+
235+
case DRW::AC1021:
236+
return std::unique_ptr< dwgReader >( new dwgReader21( stream, p ) );
237+
238+
case DRW::AC1024:
239+
return std::unique_ptr< dwgReader >( new dwgReader24( stream, p ) );
240+
241+
case DRW::AC1027:
242+
return std::unique_ptr< dwgReader >( new dwgReader27( stream, p ) );
243+
244+
// unsupported
245+
case DRW::AC1032:
246+
break;
247+
}
248+
return nullptr;
252249
}
253250

254251
/* Open the file and stores it in filestr, install the correct reader version.
@@ -259,8 +256,7 @@ std::unique_ptr<dwgReader> dwgR::createReaderForVersion(DRW::Version version, st
259256
*/
260257
bool dwgR::openFile( std::ifstream *filestr )
261258
{
262-
QgsDebugMsg( "Entering." );
263-
259+
DRW_DBG("dwgR::read 1\n");
264260
bool isOk = false;
265261

266262
filestr->open( fileName.c_str(), std::ios_base::in | std::ios::binary );
@@ -273,16 +269,20 @@ bool dwgR::openFile( std::ifstream *filestr )
273269
char line[7];
274270
filestr->read( line, 6 );
275271
line[6] = '\0';
272+
DRW_DBG("dwgR::read 2\n");
273+
DRW_DBG("dwgR::read line version: ");
274+
DRW_DBG(line);
275+
DRW_DBG("\n");
276276

277-
QgsDebugMsg( QString( "line version:%1" ).arg( line ) );
278277
// check version line against known version strings
279278
version = DRW::UNKNOWNV;
280279
for ( auto it = DRW_dwgVersionStrings.begin(); it != DRW_dwgVersionStrings.end(); ++it )
281280
{
282-
if ( strcmp( line, it->first ) == 0 ) {
283-
version = it->second;
284-
break;
285-
}
281+
if ( strcmp( line, it->first ) == 0 )
282+
{
283+
version = it->second;
284+
break;
285+
}
286286
}
287287

288288
reader = createReaderForVersion( version, filestr, this );
@@ -302,7 +302,7 @@ bool dwgR::openFile( std::ifstream *filestr )
302302

303303
bool dwgR::processDwg()
304304
{
305-
QgsDebugMsg( "Entering." );
305+
DRW_DBG("dwgR::processDwg() start processing dwg\n");
306306

307307
bool ret;
308308
bool ret2;

‎external/libdxfrw/libdxfrw.cpp

Lines changed: 120 additions & 143 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)
Please sign in to comment.