From b250e56f205355e4b54e7ed15f1d5f106e2c28dc Mon Sep 17 00:00:00 2001 From: micio Date: Tue, 14 Aug 2012 17:55:43 +0000 Subject: [PATCH] Bazaar/DXF : convert strings to WINDOWS-1252 charset before streaming to handle special chars correctly git-svn-id: svn://ultimatepp.org/upp/trunk@5283 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- bazaar/DXF/Block.cpp | 4 ++-- bazaar/DXF/BlockRef.cpp | 2 +- bazaar/DXF/Header.cpp | 4 ++-- bazaar/DXF/Tables.cpp | 10 +++++----- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/bazaar/DXF/Block.cpp b/bazaar/DXF/Block.cpp index 395c62b11..89c050f77 100644 --- a/bazaar/DXF/Block.cpp +++ b/bazaar/DXF/Block.cpp @@ -25,10 +25,10 @@ bool DXFBlock::Write(String const &name, Stream &s) s << "100\nAcDbEntity\n"; s << "8\n0\n"; s << "100\nAcDbBlockBegin\n"; - s << "2\n" << name << "\n"; + s << "2\n" << ToCharset(CHARSET_WIN1252, name) << "\n"; s << "70\n0\n"; // attributes ??? s << "10\n0.0\n20\n0.0\n30\n0.0\n"; // shall we handle insertion base point ? - s << "3\n" << name << "\n"; + s << "3\n" << ToCharset(CHARSET_WIN1252, name) << "\n"; s << "1\n\n"; // write out entities diff --git a/bazaar/DXF/BlockRef.cpp b/bazaar/DXF/BlockRef.cpp index fbeb22233..5926f2292 100644 --- a/bazaar/DXF/BlockRef.cpp +++ b/bazaar/DXF/BlockRef.cpp @@ -18,7 +18,7 @@ bool DXFBlockRef::Write(Stream &s) // output line points s << "100\nAcDbBlockReference\n"; - s << "2\n" << name << "\n"; + s << "2\n" << ToCharset(CHARSET_WIN1252, name) << "\n"; s << "10\n" << insertPoint.x << "\n20\n" << insertPoint.y << "\n30\n" << 0.0 << "\n"; s << "41\n" << scale << "\n42\n" << scale << "\n43\n" << scale << "\n"; s << "50\n" << angle * 180.0 / M_PI << "\n"; diff --git a/bazaar/DXF/Header.cpp b/bazaar/DXF/Header.cpp index 97da1fb3c..6c3420eca 100644 --- a/bazaar/DXF/Header.cpp +++ b/bazaar/DXF/Header.cpp @@ -14,8 +14,8 @@ bool DXFHeader::Write(Stream &s) String hdr = (const char *)dxf_hdr; s << "0\nSECTION\n2\nHEADER\n"; s << hdr; - s << "9\n$CLAYER\n8\n" << dxf->layer << "\n"; - s << "9\n$CELTYPE\n6\n" << dxf->lineType << "\n"; + s << "9\n$CLAYER\n8\n" << ToCharset(CHARSET_WIN1252, dxf->layer) << "\n"; + s << "9\n$CELTYPE\n6\n" << ToCharset(CHARSET_WIN1252, dxf->lineType) << "\n"; s << "9\n$CECOLOR\n62\n" << dxf->color << "\n"; s << "9\n$CELTSCALE\n40\n1.0\n"; s << "0\nENDSEC\n"; diff --git a/bazaar/DXF/Tables.cpp b/bazaar/DXF/Tables.cpp index e6772922a..51f12d30f 100644 --- a/bazaar/DXF/Tables.cpp +++ b/bazaar/DXF/Tables.cpp @@ -14,10 +14,10 @@ bool DXFLayer::Write(Stream &s) s << "0\nLAYER\n"; s << "5\n" << Format64Hex(handle) << "\n"; s << "100\nAcDbSymbolTableRecord\n100\nAcDbLayerTableRecord\n"; - s << "2\n" << name << "\n"; + s << "2\n" << ToCharset(CHARSET_WIN1252, name) << "\n"; s << "70\n64\n"; s << "62\n" << color << "\n"; - s << "6\n" << lineType << "\n"; + s << "6\n" << ToCharset(CHARSET_WIN1252, lineType) << "\n"; s << "390\n" << tables->plotStyleHandle << "\n"; return true; @@ -66,9 +66,9 @@ bool DXFLineType::Write(Stream &s) s << "0\nLTYPE\n"; s << "5\n" << Format64Hex(handle) << "\n"; s << "100\nAcDbSymbolTableRecord\n100\nAcDbLinetypeTableRecord\n"; - s << "2\n" << name << "\n"; + s << "2\n" << ToCharset(CHARSET_WIN1252, name) << "\n"; s << "70\n64\n"; - s << "3\n" << desc << "\n"; + s << "3\n" << ToCharset(CHARSET_WIN1252, desc) << "\n"; s << "72\n65\n"; s << "73\n" << elements.GetCount() << "\n"; double patLen = 0; @@ -183,7 +183,7 @@ bool DXFTables::Write(Stream &s) s << "5\n" << Format64Hex(dxf->GetNextHandle()) << "\n"; s << "100\nAcDbSymbolTableRecord\n"; s << "100\nAcDbBlockTableRecord\n"; - s << "2\n" << blocks.GetKey(iBlock) << "\n"; + s << "2\n" << ToCharset(CHARSET_WIN1252, blocks.GetKey(iBlock)) << "\n"; } s << "0\nENDTAB\n";