ENH: add method to escape some chars in a string
This commit is contained in:
parent
6037d1ae66
commit
7f2c1e434c
|
@ -1205,6 +1205,41 @@ int SystemTools::EstimateFormatLength(const char *format, va_list ap)
|
||||||
return length;
|
return length;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
kwsys_stl::string SystemTools::EscapeChars(
|
||||||
|
const char *str,
|
||||||
|
const char *chars_to_escape,
|
||||||
|
char escape_char)
|
||||||
|
{
|
||||||
|
kwsys_stl::string n;
|
||||||
|
if (str)
|
||||||
|
{
|
||||||
|
if (!chars_to_escape | !*chars_to_escape)
|
||||||
|
{
|
||||||
|
n.append(str);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
n.reserve(strlen(str));
|
||||||
|
while (*str)
|
||||||
|
{
|
||||||
|
const char *ptr = chars_to_escape;
|
||||||
|
while (*ptr)
|
||||||
|
{
|
||||||
|
if (*str == *ptr)
|
||||||
|
{
|
||||||
|
n += escape_char;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
++ptr;
|
||||||
|
}
|
||||||
|
n += *str;
|
||||||
|
++str;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return n;
|
||||||
|
}
|
||||||
|
|
||||||
// convert windows slashes to unix slashes
|
// convert windows slashes to unix slashes
|
||||||
void SystemTools::ConvertToUnixSlashes(kwsys_stl::string& path)
|
void SystemTools::ConvertToUnixSlashes(kwsys_stl::string& path)
|
||||||
{
|
{
|
||||||
|
|
|
@ -220,6 +220,12 @@ public:
|
||||||
*/
|
*/
|
||||||
static int EstimateFormatLength(const char *format, va_list ap);
|
static int EstimateFormatLength(const char *format, va_list ap);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Escape specific characters in 'str'.
|
||||||
|
*/
|
||||||
|
static kwsys_stl::string EscapeChars(
|
||||||
|
const char *str, const char *chars_to_escape, char escape_char = '\\');
|
||||||
|
|
||||||
/** -----------------------------------------------------------------
|
/** -----------------------------------------------------------------
|
||||||
* Filename Manipulation Routines
|
* Filename Manipulation Routines
|
||||||
* -----------------------------------------------------------------
|
* -----------------------------------------------------------------
|
||||||
|
|
Loading…
Reference in New Issue