Print unicode as default in Python 2.x when CO_FUTURE_UNICODE_LITERALS

is set.

Fixes #141.
This commit is contained in:
Michael Hansen
2019-10-06 14:34:24 -07:00
parent 892616b560
commit 8014ac2b14
7 changed files with 37 additions and 18 deletions

View File

@@ -129,12 +129,12 @@ void output_object(PycRef<PycObject> obj, PycModule* mod, int indent)
break;
case PycObject::TYPE_STRING:
iputs(indent, "");
OutputString(obj.cast<PycString>(), (mod->majorVer() == 3) ? 'b' : 0);
OutputString(obj.cast<PycString>(), mod->strIsUnicode() ? 'b' : 0);
fputs("\n", pyc_output);
break;
case PycObject::TYPE_UNICODE:
iputs(indent, "");
OutputString(obj.cast<PycString>(), (mod->majorVer() == 3) ? 0 : 'u');
OutputString(obj.cast<PycString>(), mod->strIsUnicode() ? 0 : 'u');
fputs("\n", pyc_output);
break;
case PycObject::TYPE_STRINGREF:
@@ -144,7 +144,10 @@ void output_object(PycRef<PycObject> obj, PycModule* mod, int indent)
case PycObject::TYPE_SHORT_ASCII:
case PycObject::TYPE_SHORT_ASCII_INTERNED:
iputs(indent, "");
OutputString(obj.cast<PycString>(), 0);
if (mod->majorVer() >= 3)
OutputString(obj.cast<PycString>(), 0);
else
OutputString(obj.cast<PycString>(), mod->strIsUnicode() ? 'b' : 0);
fputs("\n", pyc_output);
break;
case PycObject::TYPE_TUPLE: