ENH: add method to escape some chars in a string

This commit is contained in:
Sebastien Barre 2005-06-13 18:03:53 -04:00
parent 6037d1ae66
commit 7f2c1e434c
2 changed files with 41 additions and 0 deletions

View File

@ -1205,6 +1205,41 @@ int SystemTools::EstimateFormatLength(const char *format, va_list ap)
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
void SystemTools::ConvertToUnixSlashes(kwsys_stl::string& path)
{

View File

@ -220,6 +220,12 @@ public:
*/
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
* -----------------------------------------------------------------