return false;
}
/*}}}*/
-// ProcessEscapeSequences /*{{{*/
+// DeEscapeString - unescape (\0XX and \xXX) from a string /*{{{*/
// ---------------------------------------------------------------------
-/* */
-string DeEscapeString(string &input)
+/* */
+string DeEscapeString(const 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;
}
break;
default:
// FIXME: raise exception here?
- std::cerr << "lala" << *it << endl;
break;
}
}