digitalmars.D.bugs - [Issue 8600] New: "writeln" one parameter garbled
- d-bugmail puremagic.com (53/53) Aug 30 2012 http://d.puremagic.com/issues/show_bug.cgi?id=8600
http://d.puremagic.com/issues/show_bug.cgi?id=8600
Summary: "writeln" one parameter garbled
Product: D
Version: unspecified
Platform: All
OS/Version: All
Status: NEW
Severity: normal
Priority: P2
Component: Phobos
AssignedTo: nobody puremagic.com
ReportedBy: vi vi-li.com
import core.stdc.wchar_,core.stdc.locale;
example code:
extern(C) int setlocale(int, char*);
static this()
{
fwide(core.stdc.stdio.stdout, 1);
setlocale(0, cast(char*)"china");
}
int main(string[] argv)
{
writeln("1δΈͺ");
return 0;
}
Temporary fix:
void writeln(T...)(T args)
{
static if (T.length == 0)
{
enforce(fputc('\n', .stdout.p.handle) == '\n');
}
else static if (T.length == 1 &&
isSomeString!(typeof(args[0])) && is(typeof(args[0]) :
const(char)[]) &&
!isAggregateType!(typeof(args[0])))
{
// error: not Transformation coding
// Specialization for strings - a very frequent case
//enforce(fprintf(.stdout.p.handle, "%.*s\n",
// cast(int) args[0].length, args[0].ptr) >= 0);
stdout.write(args, '\n');
}
else
{
// Most general instance
stdout.write(args, '\n');
}
}
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Aug 30 2012








d-bugmail puremagic.com