diff options
Diffstat (limited to 'ACE/ace/ARGV.cpp')
-rw-r--r-- | ACE/ace/ARGV.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/ACE/ace/ARGV.cpp b/ACE/ace/ARGV.cpp index b61ef43600b..c4b64f6a38a 100644 --- a/ACE/ace/ARGV.cpp +++ b/ACE/ace/ARGV.cpp @@ -337,10 +337,11 @@ ACE_ARGV_T<CHAR_TYPE>::create_buf_from_queue (void) *ptr++ = '"'; if (ACE_OS::strchr (arg->arg_, '"') != 0) { + CHAR_TYPE prev = 0; for (const CHAR_TYPE * p = arg->arg_; *p != '\0'; ++p) { - if (*p == '"') *ptr++ = '\\'; - *ptr++ = *p; + if (*p == '"' && prev != '\\') *ptr++ = '\\'; + prev = *ptr++ = *p; } } else |