summaryrefslogtreecommitdiff
path: root/ACE/ace/ARGV.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/ace/ARGV.cpp')
-rw-r--r--ACE/ace/ARGV.cpp5
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