Added. Thanks for the patch. 73 de Jeff
On Nov 3, 2007, at 12:21 PM, Emanuele Giaquinta wrote:
Index: poptconfig.c =================================================================== RCS file: /v/rpm/cvs/popt/poptconfig.c,v retrieving revision 1.31 diff -u -r1.31 poptconfig.c --- poptconfig.c 6 Oct 2007 02:14:42 -0000 1.31 +++ poptconfig.c 3 Nov 2007 16:14:42 -0000 @@ -33,20 +33,20 @@ if (strncmp(line, con->appName, nameLength)) return; line += nameLength; - if (*line == '\0' || !isspace(*line)) return; + if (*line == '\0' || !_isspaceptr(line)) return; - while (*line != '\0' && isspace(*line)) line++; + while (*line != '\0' && _isspaceptr(line)) line++; entryType = line; - while (*line == '\0' || !isspace(*line)) line++; + while (*line == '\0' || !_isspaceptr(line)) line++; *line++ = '\0'; - while (*line != '\0' && isspace(*line)) line++; + while (*line != '\0' && _isspaceptr(line)) line++; if (*line == '\0') return; opt = line; - while (*line == '\0' || !isspace(*line)) line++; + while (*line == '\0' || !_isspaceptr(line)) line++; *line++ = '\0'; - while (*line != '\0' && isspace(*line)) line++; + while (*line != '\0' && _isspaceptr(line)) line++; if (*line == '\0') return; /[EMAIL PROTECTED]@*/ /* FIX: line alias is saved */ @@ -139,7 +139,7 @@ case '\n': *dst = '\0'; dst = buf; - while (*dst && isspace(*dst)) dst++; + while (*dst && _isspaceptr(dst)) dst++; if (*dst && *dst != '#') configLine(con, dst); chptr++; Index: popthelp.c =================================================================== RCS file: /v/rpm/cvs/popt/popthelp.c,v retrieving revision 1.64 diff -u -r1.64 popthelp.c --- popthelp.c 25 Aug 2007 00:54:57 -0000 1.64 +++ popthelp.c 3 Nov 2007 16:14:42 -0000 @@ -24,9 +24,6 @@ /[EMAIL PROTECTED] [EMAIL PROTECTED]/ -/* XXX isspace(3) has i18n encoding signednesss issues on Solaris. */ -#define _isspaceptr(_chp) isspace((int)(*(unsigned char *)(_chp))) - /** * Display arguments. * @param con context Index: poptparse.c =================================================================== RCS file: /v/rpm/cvs/popt/poptparse.c,v retrieving revision 1.25 diff -u -r1.25 poptparse.c --- poptparse.c 13 Jul 2007 12:24:00 -0000 1.25 +++ poptparse.c 3 Nov 2007 16:14:42 -0000 @@ -86,7 +86,7 @@ if (*src != quote) *buf++ = '\\'; } *buf++ = *src; - } else if (isspace(*src)) { + } else if (_isspaceptr(src)) { if (*argv[argc] != '\0') { buf++, argc++; if (argc == argvAlloced) { @@ -161,7 +161,7 @@ p = line; /* loop until first non-space char or EOL */ - while( *p != '\0' && isspace(*p) ) + while( *p != '\0' && _isspaceptr(p) ) p++; linelen = strlen(p); @@ -175,13 +175,13 @@ q = p; - while (*q != '\0' && (!isspace(*q)) && *q != '=') + while (*q != '\0' && (!_isspaceptr(q)) && *q != '=') q++; - if (isspace(*q)) { + if (_isspaceptr(q)) { /* a space after the name, find next non space */ *q++='\0'; - while( *q != '\0' && isspace((int)*q) ) q++; + while( *q != '\0' && _isspaceptr(q) ) q++; } if (*q == '\0') { /* single command line option (ie, no name=val, just name) */ @@ -203,14 +203,14 @@ *q++ = '\0'; /* find next non-space letter of value */ - while (*q != '\0' && isspace(*q)) + while (*q != '\0' && _isspaceptr(q)) q++; if (*q == '\0') continue; /* XXX silently ignore missing value */ /* now, loop and strip all ending whitespace */ x = p + linelen; - while (isspace(*--x)) + while (_isspaceptr(--x))*x = '\0'; /* null out last char if space (including fgets() NL) *//* rest of line accept */ Index: system.h =================================================================== RCS file: /v/rpm/cvs/popt/system.h,v retrieving revision 1.10 diff -u -r1.10 system.h --- system.h 14 Jun 2007 13:31:10 -0000 1.10 +++ system.h 3 Nov 2007 16:14:42 -0000 @@ -17,6 +17,9 @@ #include <ctype.h> +/* XXX isspace(3) has i18n encoding signednesss issues on Solaris. */ +#define _isspaceptr(_chp) isspace((int)(*(unsigned char *)(_chp))) + #include <errno.h> #include <fcntl.h> #include <limits.h>
