/*}}}*/
// ProcessEscapeSequences /*{{{*/
// ---------------------------------------------------------------------
-/* */
+/* unescape (\0XX and \xXX) from a string */
string DeEscapeString(string &input)
{
- char tmp[5];
+ char tmp[3];
string::const_iterator it, escape_start;
string output, octal, hex;
for (it = input.begin(); it != input.end(); it++)
switch (*it)
{
case '0':
- if (it + 3 <= input.end()) {
+ if (it + 2 <= input.end()) {
tmp[0] = it[1];
tmp[1] = it[2];
- tmp[2] = it[3];
- tmp[3] = 0;
+ tmp[2] = 0;
output += (char)strtol(tmp, 0, 8);
it += 2;
}
string DeQuoteString(const string &Str);
string DeQuoteString(string::const_iterator const &begin, string::const_iterator const &end);
-// unescape (\0XXX and \xXX) from a string
+// unescape (\0XX and \xXX) from a string
string DeEscapeString(string &input);
string SizeToStr(double Bytes);
output = DeEscapeString(input);
equals(output, expected);
+ // the string that we actually need it for
+ input = "/media/Ubuntu\\04011.04\\040amd64";
+ expected = "/media/Ubuntu 11.04 amd64";
+ output = DeEscapeString(input);
+ equals(output, expected);
+
return 0;
}