One problem I see immediately that doesn't really affect correctness is that the argument is passed by value, so if you printed a large static char array, it would copy all the data in order to print it.
But I think the real problem is this. From DMC++ docs: If the field_width is the character *, the actual field_width value is taken from the next int arg. If the field_width is negative, it is treated as if the - flag were given and the absolute value of the field_width is used. **** If there are more characters than allowed for by the field_width, then the width is expanded appropriately. **** I think this means, the width passed is not the number of characters you want to print, but the *minimum* number of characters you want to print (with padding). -Steve ----- Original Message ---- > From: Andrei Alexandrescu <[email protected]> > To: Discuss the dmd beta releases for D <[email protected]> > Cc: Richard Webb <[email protected]> > Sent: Thu, June 10, 2010 2:08:00 PM > Subject: Re: [dmd-beta] dmd 1.062 and 2.047 beta > > I can't reproduce the bug, code works for me with 2.047 on Linux. Here's the > relevant code: void writeln(T...)(T args) if (T.length == 1 && > is(typeof(args[0]) : const(char)[])) { > enforce(fprintf(.stdout.p.handle, "%*s\n", > args[0].length, args[0].ptr) >= 0); } What is wrong with > it? Andrei On 06/10/2010 07:45 AM, Richard Webb > wrote: > > Using 2.047 on Windows 2008, i see the > code > > char[3] tmp = ['a', 'b', 'c']; > > writeln(tmp); > > print > abc<randombytes> (in debug builds at least). > > > possibly because the change in > > http://www.dsource.org/projects/phobos/changeset/1611 doesn't handle > non-null > terminated character arrays? > > > > _______________________________________________ > dmd-beta mailing > list > > href="mailto:[email protected]">[email protected] > > http://lists.puremagic.com/mailman/listinfo/dmd-beta _______________________________________________ dmd-beta > mailing list > href="mailto:[email protected]">[email protected] > href="http://lists.puremagic.com/mailman/listinfo/dmd-beta" target=_blank > >http://lists.puremagic.com/mailman/listinfo/dmd-beta _______________________________________________ dmd-beta mailing list [email protected] http://lists.puremagic.com/mailman/listinfo/dmd-beta
