Add strip_unprintable, a function that strips all unprintable characters from a string.

This commit is contained in:
B.Greenham 2010-12-09 12:02:24 -05:00
parent 5c3014d0eb
commit 87d38e8cf1

View file

@ -78,4 +78,48 @@ strip_colour(char *string)
return string;
}
static inline char *
strip_unprintable(char *string)
{
char *c = string;
char *c2 = string;
char *last_non_space = NULL;
/* c is source, c2 is target */
for(; c && *c; c++)
switch (*c)
{
case 3:
if(isdigit(c[1]))
{
c++;
if(isdigit(c[1]))
c++;
if(c[1] == ',' && isdigit(c[2]))
{
c += 2;
if(isdigit(c[1]))
c++;
}
}
break;
case 32:
*c2++ = *c;
break;
default:
if (*c < 32)
break;
*c2++ = *c;
last_non_space = c2;
break;
}
*c2 = '\0';
if(last_non_space)
*last_non_space = '\0';
return string;
}
#endif