pkgsrc-ng/wm/afterstep/patches/patch-libAfterBase_parse.c
2016-11-18 22:39:22 +01:00

305 lines
10 KiB
C

$NetBSD: patch-libAfterBase_parse.c,v 1.2 2016/05/01 19:26:35 dholland Exp $
- Use ctype.h correctly.
- Patch up gcc inline mess.
--- libAfterBase/parse.c.orig 2009-02-11 23:32:02.000000000 +0000
+++ libAfterBase/parse.c
@@ -119,7 +119,7 @@ const char *parse_argb_part( const char
for( i = 0 ; i < 3 ; ++i )
{
- if( !isdigit(ptr[i]) )
+ if( !isdigit((unsigned char)ptr[i]) )
break;
buf[i] = ptr[i] ;
}
@@ -279,7 +279,7 @@ const char *parse_hsv_part( const char *
for( i = 0 ; i < 3 ; ++i )
{
- if( !isdigit(ptr[i]) )
+ if( !isdigit((unsigned char)ptr[i]) )
break;
buf[i] = ptr[i] ;
}
@@ -328,7 +328,7 @@ const char *parse_argb_dec( const char *
for( k = has_alpha?0:1 ; k < 4 ; ++k )
{
- if( !isdigit(ptr[0]) )
+ if( !isdigit((unsigned char)ptr[0]) )
{
CARD32 tmp_argb = 0xFF000000 ;
const char *tmp = parse_argb_color( ptr, &tmp_argb );
@@ -350,14 +350,14 @@ const char *parse_argb_dec( const char *
{
for( i = 0 ; i < 3 ; ++i )
{
- if( !isdigit(ptr[i]) )
+ if( !isdigit((unsigned char)ptr[i]) )
break;
buf[i] = ptr[i] ;
}
buf[i] = '\0' ;
dec_val[k] = atoi( &(buf[0]) );
}
- if( !isdigit(ptr[i]) )
+ if( !isdigit((unsigned char)ptr[i]) )
{
if( ptr[i] != ',' )
break;
@@ -394,15 +394,15 @@ const char *parse_argb_color( const char
CARD32 argb = 0 ;
int len = 0 ;
register const char *ptr = color+1 ;
- while( isxdigit((int)ptr[len]) ) len++;
+ while( isxdigit((unsigned char)ptr[len]) ) len++;
if( len >= 3)
{
if( (len&0x3) == 0 && len != 12 )
{ /* we do have alpha channel !!! */
len = len>>2 ;
- argb = (hextoi((int)ptr[0])<<28)&0xF0000000 ;
+ argb = ((unsigned)hextoi((unsigned char)ptr[0])<<28)&0xF0000000 ;
if( len > 1 )
- argb |= (hextoi((int)ptr[1])<<24)&0x0F000000 ;
+ argb |= ((unsigned)hextoi((unsigned char)ptr[1])<<24)&0x0F000000 ;
else
argb |= 0x0F000000;
ptr += len ;
@@ -415,20 +415,20 @@ const char *parse_argb_color( const char
if( len == 1 )
{
argb |= 0x000F0F0F;
- argb |= (hextoi((int)ptr[0])<<20)&0x00F00000 ;
- argb |= (hextoi((int)ptr[1])<<12)&0x0000F000 ;
- argb |= (hextoi((int)ptr[2])<<4 )&0x000000F0 ;
+ argb |= ((unsigned)hextoi((unsigned char)ptr[0])<<20)&0x00F00000 ;
+ argb |= ((unsigned)hextoi((unsigned char)ptr[1])<<12)&0x0000F000 ;
+ argb |= ((unsigned)hextoi((unsigned char)ptr[2])<<4 )&0x000000F0 ;
ptr += 3 ;
}else
{
- argb |= (hextoi((int)ptr[0])<<20)&0x00F00000 ;
- argb |= (hextoi((int)ptr[1])<<16)&0x000F0000 ;
+ argb |= ((unsigned)hextoi((unsigned char)ptr[0])<<20)&0x00F00000 ;
+ argb |= ((unsigned)hextoi((unsigned char)ptr[1])<<16)&0x000F0000 ;
ptr += len ;
- argb |= (hextoi((int)ptr[0])<<12)&0x0000F000 ;
- argb |= (hextoi((int)ptr[1])<<8) &0x00000F00 ;
+ argb |= ((unsigned)hextoi((unsigned char)ptr[0])<<12)&0x0000F000 ;
+ argb |= ((unsigned)hextoi((unsigned char)ptr[1])<<8) &0x00000F00 ;
ptr += len ;
- argb |= (hextoi((int)ptr[0])<<4 )&0x000000F0 ;
- argb |= (hextoi((int)ptr[1])) &0x0000000F ;
+ argb |= ((unsigned)hextoi((unsigned char)ptr[0])<<4 )&0x000000F0 ;
+ argb |= ((unsigned)hextoi((unsigned char)ptr[1])) &0x0000000F ;
ptr += len ;
}
*pargb = argb ;
@@ -486,7 +486,7 @@ const char *parse_argb_color( const char
register int i = 0;
Bool success = True ;
- while( isalnum((int)ptr[i]) ) ++i;
+ while( isalnum((unsigned char)ptr[i]) ) ++i;
if( ptr[i] != '\0' )
ptr = mystrndup(&(color[0]), i );
@@ -514,7 +514,7 @@ const char *parse_argb_color( const char
int orig_i = i ;
ptr = (char*)&(color[0]);
- while( isalnum((int)ptr[i]) || ptr[i] == '.' || ptr[i] == '_') ++i;
+ while( isalnum((unsigned char)ptr[i]) || ptr[i] == '.' || ptr[i] == '_') ++i;
if( orig_i < i )
{
if( ptr[i] != '\0' )
@@ -590,8 +590,8 @@ stripcpy (const char *source)
if( source == NULL )
return NULL;
- for (; isspace ((int)*source); source++);
- for (ptr = source + strlen (source); ptr > source && isspace ((int)*(ptr - 1)); ptr--);
+ for (; isspace ((unsigned char)*source); source++);
+ for (ptr = source + strlen (source); ptr > source && isspace ((unsigned char)*(ptr - 1)); ptr--);
return mystrndup (source, ptr - source);
}
@@ -627,7 +627,7 @@ stripcomments2 (char *source, char **com
int start = 0, curr = 0 ;
/* remove comments from the line */
- while (isspace ((int)source[start])) ++start;
+ while (isspace ((unsigned char)source[start])) ++start;
for (curr = start; source[curr]; curr++)
{
@@ -645,9 +645,9 @@ stripcomments2 (char *source, char **com
{ /* checking if it is not a hex color code */
int i = curr;
- while(isxdigit ((int)source[++i]));
+ while(isxdigit ((unsigned char)source[++i]));
- if (i-curr < 4 || i-curr > 13 || (source[i] && !isspace ((int)source[i])))
+ if (i-curr < 4 || i-curr > 13 || (source[i] && !isspace ((unsigned char)source[i])))
{
if( comments )
*comments = mystrdup( &source[curr+1] );
@@ -657,7 +657,7 @@ stripcomments2 (char *source, char **com
curr = i - 1;
}
}
- do{ --curr ; }while( curr > start && isspace ((int)source[curr]));
+ do{ --curr ; }while( curr > start && isspace ((unsigned char)source[curr]));
source[curr+1] = '\0';
return &source[start];
}
@@ -676,10 +676,10 @@ strip_whitespace (char *str)
char *ptr;
/* strip trailing whitespace */
- for (ptr = str + strlen (str); ptr > str && isspace ((int)*(ptr - 1)); ptr--)
+ for (ptr = str + strlen (str); ptr > str && isspace ((unsigned char)*(ptr - 1)); ptr--)
*(ptr - 1) = '\0';
/* skip leading whitespace */
- for (ptr = str; isspace ((int)*ptr); ptr++);
+ for (ptr = str; isspace ((unsigned char)*ptr); ptr++);
return ptr;
}
@@ -699,7 +699,7 @@ tokenskip( const char *ptr, unsigned int
if( ptr == NULL ) return NULL ;
while( ++tok_no <= n_tokens && ptr[curr] != '\0' )
{
- while (!isspace ((int)ptr[curr]) && ptr[curr])
+ while (!isspace ((unsigned char)ptr[curr]) && ptr[curr])
{ /* we have to match doublequotes if we encounter any, to allow for spaces in filenames */
if (ptr[curr] == '"')
{
@@ -710,7 +710,7 @@ tokenskip( const char *ptr, unsigned int
++curr;
}
- while (isspace ((int)ptr[curr])) ++curr;
+ while (isspace ((unsigned char)ptr[curr])) ++curr;
}
return (char*)&ptr[curr];
}
@@ -725,12 +725,12 @@ parse_token (const char *source, char **
{
int tok_start = 0, tok_end;
char *next_tok_ptr ;
- while( isspace(source[tok_start]) ) ++tok_start;
+ while( isspace((unsigned char)source[tok_start]) ) ++tok_start;
next_tok_ptr = tokenskip( &source[tok_start], 1 );
tok_end = (int)(next_tok_ptr-source) ;
if( tok_end > tok_start )
if( source[tok_end] != '\0' ) /* then it points to beginning of the next token */
- do{ --tok_end;}while( tok_end > tok_start && isspace(source[tok_end-1]));
+ do{ --tok_end;}while( tok_end > tok_start && isspace((unsigned char)source[tok_end-1]));
if( trg )
*trg = mystrndup (&source[tok_start], tok_end - tok_start );
@@ -752,7 +752,7 @@ parse_tab_token (const char *source, cha
{
char *ptr;
- for (; isspace ((int)*source); source++);
+ for (; isspace ((unsigned char)*source); source++);
for (ptr = (char *)source; *ptr != '\t' && *ptr; ptr++);
*trg = mystrndup (source, ptr - source);
return ptr;
@@ -806,7 +806,7 @@ make_shell_str (char *dest, const char *
n--;
while (n && *src)
{
- if (!isalnum ((int)*src) && n > 1)
+ if (!isalnum ((unsigned char)*src) && n > 1)
{
*dest++ = '\\';
n--;
@@ -853,7 +853,7 @@ parse_signed_int (register char *tline,
int val = 0, sign = 0;
register int i = 0 ;
- while (isspace ((int)tline[i])) ++i;
+ while (isspace ((unsigned char)tline[i])) ++i;
switch( tline[i] )
{ /* handling constructs like --10 or -+10 which is equivalent to -0-10or -0+10 */
@@ -875,7 +875,7 @@ parse_signed_int (register char *tline,
case 'X' : sign = 4; break;
default : --i ;
}
- while (isdigit ((int)tline[++i]))
+ while (isdigit ((unsigned char)tline[++i]))
val = val * 10 + (int)(tline[i] - '0');
if( val_return )
@@ -891,7 +891,7 @@ parse_func_args (char *tline, char *unit
tline = parse_signed_int( tline, func_val, NULL );
*unit = *tline;
- if (isspace ((int)*tline))
+ if (isspace ((unsigned char)*tline))
*unit = '\0' ;
return tline[0]?tline+1:tline;
}
@@ -906,7 +906,7 @@ double parse_math(const char* str, char*
if( str == NULL )
return 0 ;
- while (isspace((int)*str)) str++;
+ while (isspace((unsigned char)*str)) str++;
if( *str == '!' )
{
logical_not = 1;
@@ -919,7 +919,7 @@ double parse_math(const char* str, char*
while (*str)
{
- while (isspace((int)*str)) str++;
+ while (isspace((unsigned char)*str)) str++;
if (!op)
{
if (*str == '+' || *str == '-' || *str == '*' || *str == '/') op = *str++;
@@ -936,7 +936,7 @@ double parse_math(const char* str, char*
num = parse_math(str + 1, &ptr, size);
else if (*str == '$')
{
- for (ptr = (char*)str + 1 ; *ptr && !isspace(*ptr) && *ptr != '+' && *ptr != '-' && *ptr != '*' && *ptr != '!' && *ptr != '/' && *ptr != ')' ; ptr++);
+ for (ptr = (char*)str + 1 ; *ptr && !isspace((unsigned char)*ptr) && *ptr != '+' && *ptr != '-' && *ptr != '*' && *ptr != '!' && *ptr != '/' && *ptr != ')' ; ptr++);
num = asxml_var_nget((char*)str + 1, ptr - (str + 1));
}else
num = strtod(str, &ptr);
@@ -1027,7 +1027,7 @@ parse_geometry (register char *tline,
static char _as_hex_to_char_table[] = "0123456789ABCDEF";
-inline int
+int
unsigned_int2buffer_end (char *buffer, int buffer_size, unsigned int val)
{
int i = buffer_size-1 ;
@@ -1174,7 +1174,7 @@ get_string_list_item (char *ptr, char **
if (ptr == NULL)
return NULL;
- while (*ptr && (isspace ((int)*ptr) || *ptr == separator))
+ while (*ptr && (isspace ((unsigned char)*ptr) || *ptr == separator))
ptr++;
if (*ptr == '\0')
return NULL;
@@ -1185,7 +1185,7 @@ get_string_list_item (char *ptr, char **
if ((*item_end = find_doublequotes (ptr)) == NULL)
return NULL;
ptr = *item_end;
- while (*ptr && !(isspace ((int)*ptr) || *ptr == separator))
+ while (*ptr && !(isspace ((unsigned char)*ptr) || *ptr == separator))
ptr++;
} else
{