Merge pull request #1873 from lionello/bug4483

Preparation for issue 4483, specifying foreach char iteration type
This commit is contained in:
Daniel Murphy 2014-07-16 21:59:26 +10:00
commit e3cdb418ea

View file

@ -2420,7 +2420,7 @@ private char[] escapeWindowsArgumentImpl(alias allocator)(in char[] arg)
// backslash for each escaped character. // backslash for each escaped character.
size_t size = 1 + arg.length + 1; size_t size = 1 + arg.length + 1;
foreach_reverse (c; arg) foreach_reverse (char c; arg)
{ {
if (c == '"') if (c == '"')
{ {
@ -2443,7 +2443,7 @@ private char[] escapeWindowsArgumentImpl(alias allocator)(in char[] arg)
size_t p = size; size_t p = size;
buf[--p] = '"'; buf[--p] = '"';
escaping = true; escaping = true;
foreach_reverse (c; arg) foreach_reverse (char c; arg)
{ {
if (c == '"') if (c == '"')
escaping = true; escaping = true;
@ -2525,14 +2525,14 @@ private char[] escapePosixArgumentImpl(alias allocator)(in char[] arg)
// return `'` ~ std.array.replace(arg, `'`, `'\''`) ~ `'`; // return `'` ~ std.array.replace(arg, `'`, `'\''`) ~ `'`;
size_t size = 1 + arg.length + 1; size_t size = 1 + arg.length + 1;
foreach (c; arg) foreach (char c; arg)
if (c == '\'') if (c == '\'')
size += 3; size += 3;
auto buf = allocator(size); auto buf = allocator(size);
size_t p = 0; size_t p = 0;
buf[p++] = '\''; buf[p++] = '\'';
foreach (c; arg) foreach (char c; arg)
if (c == '\'') if (c == '\'')
{ {
buf[p..p+4] = `'\''`; buf[p..p+4] = `'\''`;