File: escape.cc

package info (click to toggle)
bobcat 1.11.0-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 3,344 kB
  • ctags: 473
  • sloc: makefile: 12,078; cpp: 5,121; ansic: 63; sh: 14
file content (23 lines) | stat: -rw-r--r-- 527 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "string.ih"

String String::escape(char const *series) const
{
    String ret;
    size_type left = 0;

    while (true)
    {
        size_type right = find_first_of(series, left);

        ret += substr(left, right - left);  // append until separator

        if (right == npos)                  // done when all copied
            return ret;

        ret += "\\";                        // append backslash
        ret += (*this)[right];              // append the special char
        left = right + 1;
    }
}