From: Oswald Buddenhagen Date: Tue, 26 Apr 2011 08:31:28 +0000 (+0200) Subject: fix quoting of strings with spaces and backslashes at the end X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=6c5647c18d81233fbc9737e89ba8eb696be4726e;p=qt-creator-jp%2Fqt-creator-jp.git fix quoting of strings with spaces and backslashes at the end the regexp would match twice at the end, and thus insert a stray quote. so use a discrete loop instead. fixed the same thing in proparser/ioutils before ... Task-number: QTCREATORBUG-4291 --- diff --git a/src/libs/utils/abstractprocess_win.cpp b/src/libs/utils/abstractprocess_win.cpp index 194c67e222..4bc7c08952 100644 --- a/src/libs/utils/abstractprocess_win.cpp +++ b/src/libs/utils/abstractprocess_win.cpp @@ -81,7 +81,10 @@ static QString quoteWinArgument(const QString &arg) // The argument must not end with a \ since this would be interpreted // as escaping the quote -- rather put the \ behind the quote: e.g. // rather use "foo"\ than "foo\" - ret.replace(QRegExp(QLatin1String("(\\\\*)$")), QLatin1String("\"\\1")); + int i = ret.length(); + while (i > 0 && ret.at(i - 1) == QLatin1Char('\\')) + --i; + ret.insert(i, QLatin1Char('"')); ret.prepend(QLatin1Char('"')); } return ret;