To avoid a newline in multi-line strings
Nick Sabalausky
a at a.a
Sat Jul 23 13:23:29 PDT 2011
"bearophile" <bearophileHUGS at lycos.com> wrote in message
news:j0enh7$tec$1 at digitalmars.com...
> After a short discussion in D.learn I have created a tiny enhancement
> request:
> http://d.puremagic.com/issues/show_bug.cgi?id=6361
>
> I show its text here too. It's not essential, it's a minor thing.
>
Since this is re-posted here, I'll repost my response. Please note that this
does properly handle bearophile's original problem, in addition to
indenting. Also, individual parts of the functionality are available a la
carte' as stripTop/Bottom/Right, and unindent:
I created a (CTFEable) function normalize() (maybe could use a better
name?):
http://www.dsource.org/projects/semitwist/browser/trunk/src/semitwist/util/text.d#L630
void foo()
{
if(blah)
{
// Works properly:
writeln("
- First item: 150
- Second item: 200
-- Subitem 1
-- Subitem 2
- Third item: 105
".normalize());
}
}
Another example:
Do this:
--------------------
void foo()
{
enum codeStr = q{
// Written in the D Programming Langauge
// by John Doe
int main()
{
return 0;
}
}.normalize();
}
--------------------
Instead of this:
--------------------
void foo()
{
enum codeStr =
q{// Written in the D Programming Langauge
// by John Doe
int main()
{
return 0;
}};
}
--------------------
The resulting string is exactly the same.
I'd be happy to work it into something appropriate for Phobos if people are
intersted.
More information about the Digitalmars-d
mailing list