On 06/29/2011 11:04 AM, Eric Blake wrote:
void
virTrimSpaces(char *str, char **endp)
{
char *end;
if (!endp || !*endp)
end = str + strlen(str);
else
end = *endp;
while (end > str && c_isspace(end[-1]))
end--;
if (endp) {
if (!*endp)
*end = '\0';
*endp = end;
} else {
*end = '\0';
}
}
/**
* virSkipSpacesBackwards:
* @str: start of string
* @endp: on entry, must point to a location with @str, on exit,
* will be adjusted to skip trailing spaces
*
* Returns 0 on success, -1 on error
*/
int
virSkipSpacesBackwards(const char *str, char **endp)
Actually, looking at how you used this in patch 2/2, you want to trim
all spaces up to either the newline (*endp is non-NULL) or the end of
the string (*endp is NULL), all without modifying str, so this would
need a modification:
{
if (!endp || !*endp)
return -1;
if (!endp)
return -1;
if (!*endp)
*endp = (char*)str + strlen(str);
/* Casting away const is safe, since virTrimSpaces does not
* modify string with this particular usage. */
virTrimSpaces((char *)str), endp);
return 0;
}
--
Eric Blake eblake(a)redhat.com +1-801-349-2682
Libvirt virtualization library
http://libvirt.org