diff --git a/bazaar/SysExec/ArgEnv.cpp b/bazaar/SysExec/ArgEnv.cpp index cf038af8e..30d6e0d69 100644 --- a/bazaar/SysExec/ArgEnv.cpp +++ b/bazaar/SysExec/ArgEnv.cpp @@ -29,12 +29,32 @@ char **BuildArgs(String const &command, String const &argline) c = argline[++pos]; while (c && c != '"') { - s << c; - c = argline[++pos]; + if(c == '\\') + { + c = argline[++pos]; + if(!c) + break; + s << c; + c = argline[++pos]; + } + else + { + s << c; + c = argline[++pos]; + } } if (c) c = argline[++pos]; } + // read escaped characters + else if(c == '\\') + { + c = argline[++pos]; + if(!c) + break; + s << c; + c = argline[++pos]; + } else { s << c;