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
This commit is contained in:
micio 2012-08-14 17:55:43 +00:00
parent e8b04cb7e7
commit b250e56f20
4 changed files with 10 additions and 10 deletions

View file

@ -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

View file

@ -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";

View file

@ -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";

View file

@ -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";