digitalmars.D.bugs - [Issue 3018] New: linefeed ignored after positional parameter in std.format
- d-bugmail puremagic.com (39/39) May 22 2009 http://d.puremagic.com/issues/show_bug.cgi?id=3018
- d-bugmail puremagic.com (10/10) Oct 11 2009 http://d.puremagic.com/issues/show_bug.cgi?id=3018
- d-bugmail puremagic.com (7/7) Aug 15 2010 http://d.puremagic.com/issues/show_bug.cgi?id=3018
- d-bugmail puremagic.com (40/40) Aug 15 2010 http://d.puremagic.com/issues/show_bug.cgi?id=3018
http://d.puremagic.com/issues/show_bug.cgi?id=3018
Summary: linefeed ignored after positional parameter in
std.format
Product: D
Version: 2.030
Platform: PC
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P2
Component: Phobos
AssignedTo: bugzilla digitalmars.com
ReportedBy: ghaecker idworld.net
In std.format, a linefeed after a positional parameter is ignored. A format
string ending with a positional parameter throws RangeError.
--------------------------------------------------------------
// Demo code
string line1 = "line 1";
string line2 = "line 2";
writefln("With %%s parameters... ok");
writefln(" %s\n %s\n %s", line1, line2, line1);
writefln("\nWith positional parameters... ignores linefeed");
writefln(" %1$\n %2$\n %1$\n", line1, line2);
writefln("\nWithout trailing linefeed... throws RangeError");
writefln(" %1$\n %2$\n %1$", line1, line2);
--------------------------------------------------------------
Output:
With %s parameters... ok
line 1
line 2
line 1
With positional parameters... ignores linefeed
line 1 line 2 line 1
Without trailing linefeed... throws RangeError
core.exception.RangeError std.format(1578): Range violation
line 1 line 2
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
May 22 2009
http://d.puremagic.com/issues/show_bug.cgi?id=3018
Andrei Alexandrescu <andrei metalanguage.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
CC| |andrei metalanguage.com
AssignedTo|nobody puremagic.com |andrei metalanguage.com
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Oct 11 2009
http://d.puremagic.com/issues/show_bug.cgi?id=3018 PDT --- This issue still persists in 2.048, although the exception thrown now is FormatError, not RangeError. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Aug 15 2010
http://d.puremagic.com/issues/show_bug.cgi?id=3018
Glenn Haecker <ghaecker idworld.net> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution| |INVALID
PDT ---
You'd think that sometime in the 15-month period since I first reported this
"bug" someone would say, "No, you're an idiot. It works just fine when used
correctly." Obviously, this is not a bug. My apologies.
--------------------------------------------------------------
// Demo code
string line1 = "line 1";
string line2 = "line 2";
string line3 = "line 3";
writeln("With explicit parameters... ok");
writefln(" %s\n %s\n %s\n %s\n %s", line1, line2, line3, line2, line1);
writeln("(complete)");
writeln("\nWith positional parameters... works fine.");
writefln(" %1$s\n %2$s\n %3$s\n %2$s\n %1$s", line1, line2, line3);
writeln("(complete)");
--------------------------------------------------------------
Output:
With explicit parameters... ok
line 1
line 2
line 3
line 2
line 1
(complete)
With positional parameters... works fine.
line 1
line 2
line 3
line 2
line 1
(complete)
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Aug 15 2010









d-bugmail puremagic.com 