Index: src/slice2cpp/Gen.cpp =================================================================== RCS file: /home/cvsroot/ice/src/slice2cpp/Gen.cpp,v retrieving revision 1.253 diff -c -r1.253 Gen.cpp *** src/slice2cpp/Gen.cpp 6 Jun 2005 15:04:52 -0000 1.253 --- src/slice2cpp/Gen.cpp 8 Jun 2005 05:30:57 -0000 *************** *** 1132,1157 **** static const string basicSourceChars = "abcdefghijklmnopqrstuvwxyz" "ABCDEFGHIJKLMNOPQRSTUVWXYZ" "0123456789" ! "_{}[]#()<>%:;,?*+=/^&|~!=,\\\"' \t"; static const set charSet(basicSourceChars.begin(), basicSourceChars.end()); H << "\""; // Opening " - ios_base::fmtflags originalFlags = H.flags(); // Save stream state - streamsize originalWidth = H.width(); - ostream::char_type originalFill = H.fill(); - const string val = p->value(); for(string::const_iterator c = val.begin(); c != val.end(); ++c) { if(charSet.find(*c) == charSet.end()) { unsigned char uc = *c; // char may be signed, so make it positive ! H << "\\"; // Print as octal if not in basic source character set ! H.flags(ios_base::oct); ! H.width(3); ! H.fill('0'); ! H << static_cast(uc); } else { --- 1132,1155 ---- static const string basicSourceChars = "abcdefghijklmnopqrstuvwxyz" "ABCDEFGHIJKLMNOPQRSTUVWXYZ" "0123456789" ! "_{}[]#()<>%:;.?*+-/^&|~!=,\\\"' "; static const set charSet(basicSourceChars.begin(), basicSourceChars.end()); H << "\""; // Opening " const string val = p->value(); for(string::const_iterator c = val.begin(); c != val.end(); ++c) { if(charSet.find(*c) == charSet.end()) { unsigned char uc = *c; // char may be signed, so make it positive ! ostringstream s; ! s << "\\"; // Print as octal if not in basic source character set ! s.width(3); ! s.fill('0'); ! s << oct; ! s << static_cast(uc); ! H << s.str(); } else { *************** *** 1159,1168 **** } } - H.fill(originalFill); // Restore stream state - H.width(originalWidth); - H.flags(originalFlags); - H << "\""; // Closing " } else if(bp && bp->kind() == Builtin::KindLong) --- 1157,1162 ---- *************** *** 3065,3071 **** else if(DictionaryPtr d = DictionaryPtr::dynamicCast(p)) { string scoped = fixKwd(d->scoped()); ! stringstream tmp; tmp << "_i" << level; string iterName = tmp.str(); C << sb; --- 3059,3065 ---- else if(DictionaryPtr d = DictionaryPtr::dynamicCast(p)) { string scoped = fixKwd(d->scoped()); ! ostringstream tmp; tmp << "_i" << level; string iterName = tmp.str(); C << sb; *************** *** 3079,3085 **** else if(SequencePtr s = SequencePtr::dynamicCast(p)) { string scoped = fixKwd(s->scoped()); ! stringstream tmp; tmp << "_i" << level; string iterName = tmp.str(); C << sb; --- 3073,3079 ---- else if(SequencePtr s = SequencePtr::dynamicCast(p)) { string scoped = fixKwd(s->scoped()); ! ostringstream tmp; tmp << "_i" << level; string iterName = tmp.str(); C << sb; *************** *** 3118,3124 **** else if(DictionaryPtr d = DictionaryPtr::dynamicCast(p)) { string scoped = fixKwd(d->scoped()); ! stringstream tmp; tmp << "_i" << level; string iterName = tmp.str(); C << sb; --- 3112,3118 ---- else if(DictionaryPtr d = DictionaryPtr::dynamicCast(p)) { string scoped = fixKwd(d->scoped()); ! ostringstream tmp; tmp << "_i" << level; string iterName = tmp.str(); C << sb; *************** *** 3132,3138 **** else if(SequencePtr s = SequencePtr::dynamicCast(p)) { string scoped = fixKwd(s->scoped()); ! stringstream tmp; tmp << "_i" << level; string iterName = tmp.str(); C << sb; --- 3126,3132 ---- else if(SequencePtr s = SequencePtr::dynamicCast(p)) { string scoped = fixKwd(s->scoped()); ! ostringstream tmp; tmp << "_i" << level; string iterName = tmp.str(); C << sb; Index: src/slice2cs/Gen.cpp =================================================================== RCS file: /home/cvsroot/ice/src/slice2cs/Gen.cpp,v retrieving revision 1.75 diff -c -r1.75 Gen.cpp *** src/slice2cs/Gen.cpp 31 May 2005 17:12:06 -0000 1.75 --- src/slice2cs/Gen.cpp 8 Jun 2005 05:30:59 -0000 *************** *** 2783,2808 **** static const string basicSourceChars = "abcdefghijklmnopqrstuvwxyz" "ABCDEFGHIJKLMNOPQRSTUVWXYZ" "0123456789" ! "_{}[]#()<>%:;,?*+=/^&|~!=,\\\"' \t"; static const set charSet(basicSourceChars.begin(), basicSourceChars.end()); _out << "\""; // Opening " - ios_base::fmtflags originalFlags = _out.flags(); // Save stream state - streamsize originalWidth = _out.width(); - ostream::char_type originalFill = _out.fill(); - const string val = p->value(); for(string::const_iterator c = val.begin(); c != val.end(); ++c) { if(charSet.find(*c) == charSet.end()) { unsigned char uc = *c; // char may be signed, so make it positive ! _out << "\\u"; // Print as unicode if not in basic source character set ! _out.flags(ios_base::hex); ! _out.width(4); ! _out.fill('0'); ! _out << static_cast(uc); } else { --- 2783,2806 ---- static const string basicSourceChars = "abcdefghijklmnopqrstuvwxyz" "ABCDEFGHIJKLMNOPQRSTUVWXYZ" "0123456789" ! "_{}[]#()<>%:;.?*+-/^&|~!=,\\\"' "; static const set charSet(basicSourceChars.begin(), basicSourceChars.end()); _out << "\""; // Opening " const string val = p->value(); for(string::const_iterator c = val.begin(); c != val.end(); ++c) { if(charSet.find(*c) == charSet.end()) { unsigned char uc = *c; // char may be signed, so make it positive ! ostringstream s; ! s << "\\u"; // Print as unicode if not in basic source character set ! s << hex; ! s.width(4); ! s.fill('0'); ! s << static_cast(uc); ! _out << s.str(); } else { *************** *** 2810,2819 **** } } - _out.fill(originalFill); // Restore stream state - _out.width(originalWidth); - _out.flags(originalFlags); - _out << "\""; // Closing " } else if(bp && bp->kind() == Builtin::KindLong) --- 2808,2813 ---- Index: src/slice2java/Gen.cpp =================================================================== RCS file: /home/cvsroot/ice/src/slice2java/Gen.cpp,v retrieving revision 1.170 diff -c -r1.170 Gen.cpp *** src/slice2java/Gen.cpp 13 May 2005 07:36:10 -0000 1.170 --- src/slice2java/Gen.cpp 8 Jun 2005 05:31:01 -0000 *************** *** 2536,2546 **** default: { unsigned char uc = *c; ! out << "\\u"; ! out.flags(ios_base::hex); ! out.width(4); ! out.fill('0'); ! out << static_cast(uc); break; } } --- 2536,2548 ---- default: { unsigned char uc = *c; ! ostringstream s; ! s << "\\u"; ! s.flags(ios_base::hex); ! s.width(4); ! s.fill('0'); ! s << static_cast(uc); ! out << s.str(); break; } } Index: src/slice2vb/Gen.cpp =================================================================== RCS file: /home/cvsroot/ice/src/slice2vb/Gen.cpp,v retrieving revision 1.21 diff -c -r1.21 Gen.cpp *** src/slice2vb/Gen.cpp 1 Jun 2005 21:41:33 -0000 1.21 --- src/slice2vb/Gen.cpp 8 Jun 2005 05:31:02 -0000 *************** *** 3084,3090 **** static const string basicStringChars = "abcdefghijklmnopqrstuvwxyz" "ABCDEFGHIJKLMNOPQRSTUVWXYZ" "0123456789" ! "_{}[]#()<>%:;,?*+=/^&|~!=,\\'\" \t"; static const set charSet(basicStringChars.begin(), basicStringChars.end()); enum Position { Beginning, InString, NotInString }; --- 3084,3090 ---- static const string basicStringChars = "abcdefghijklmnopqrstuvwxyz" "ABCDEFGHIJKLMNOPQRSTUVWXYZ" "0123456789" ! "_{}[]#()<>%:;.?*+-/^&|~!=,\\\"' "; static const set charSet(basicStringChars.begin(), basicStringChars.end()); enum Position { Beginning, InString, NotInString };