fix warnings on NetBSD
PATCH 1/1 fix warnings on NetBSD
Hi!
Attached patch fixes a series of this warning
when compiling on NetBSD:
warning: array subscript has type 'char'
Christoph
Signature · 12 lines
AMD Saxony, Dresden, Germany Operating System Research Center Legal Information: AMD Saxony Limited Liability Company & Co. KG Sitz (Geschäftsanschrift): Wilschdorfer Landstr. 101, 01109 Dresden, Deutschland Registergericht Dresden: HRA 4896 vertretungsberechtigter Komplementär: AMD Saxony LLC (Sitz Wilmington, Delaware, USA) Geschäftsführer der AMD Saxony LLC: Dr. Hans-R. Deppe, Thomas McCoy
readline.c +2 -2
@@ -169,7 +169,7 @@/* find first word (backwards) */ while (start >0 ) { -if (!isspace (term_cmd_buf[start])) { +if (!isspace ((uint8_t )term_cmd_buf[start])) {break ; }
@@ -178,7 +178,7 @@/* find first space (backwards) */ while (start >0 ) { -if (isspace (term_cmd_buf[start])) { +if (isspace ((uint8_t )term_cmd_buf[start])) { ++start;break ; }
block-vvfat.c +1 -1
@@ -1056,7 +1056,7 @@ i =strrchr (dirname,':' ) - dirname;assert (i >=3 ); -if (dirname[i-2 ] ==':' &&isalpha (dirname[i-1 ])) +if (dirname[i-2 ] ==':' &&isalpha ((uint8_t )dirname[i-1 ]))/* workaround for DOS drive names */ dirname += i-1 ;else
translate_init.c +1 -1
@@ -9458,7 +9458,7 @@ p = name; check_pvr:for (i =0 ; i <8 ; i++) { -if (!isxdigit (*p++)) +if (!isxdigit ((uint8_t )*p++))break ; }if (i ==8 )
net.c +1 -1
@@ -279,7 +279,7 @@if (buf[0 ] =='\0' ) { saddr->sin_addr.s_addr =0 ; }else { -if (isdigit (buf[0 ])) { +if (isdigit ((uint8_t )buf[0 ])) {if (!inet_aton (buf, &saddr->sin_addr))return -1 ; }else {
cutils.c +1 -1
@@ -72,7 +72,7 @@ p = str; q = val;while (*q !='\0' ) { -if (toupper (*p) !=toupper (*q)) +if (toupper ((uint8_t )*p) !=toupper ((uint8_t )*q))return 0 ; p++; q++;
audio.c +2 -2
@@ -215,7 +215,7 @@pstrcat (r, len +sizeof (qemu_prefix), s);for (i =0 ; i < len; ++i) { - u[i] =toupper (u[i]); + u[i] =toupper ((uint8_t )u[i]); } }return r;
@@ -470,7 +470,7 @@/* copy while upper-casing, including trailing zero */ for (i =0 ; i <= preflen; ++i) { - optname[i +sizeof (qemu_prefix) -1 ] =toupper (prefix[i]); + optname[i +sizeof (qemu_prefix) -1 ] =toupper ((uint8_t )prefix[i]); }pstrcat (optname, optlen,"_" );pstrcat (optname, optlen, opt->name);
monitor.c +19 -19
@@ -1933,7 +1933,7 @@ {if (pch !='\0' ) { pch++; -while (isspace (*pch)) +while (isspace ((uint8_t )*pch)) pch++; } }
@@ -1992,7 +1992,7 @@ *q++ = *pch; pch++; } -while (isspace (*pch)) +while (isspace ((uint8_t )*pch)) pch++; *q =0 ; ret =get_monitor_def (®, buf);
@@ -2017,7 +2017,7 @@expr_error ("invalid char in expression" ); } pch = p; -while (isspace (*pch)) +while (isspace ((uint8_t )*pch)) pch++;break ; }
@@ -2111,7 +2111,7 @@ *pp = pch;return -1 ; } -while (isspace (*pch)) +while (isspace ((uint8_t )*pch)) pch++; *pval =expr_sum (); *pp = pch;
@@ -2126,7 +2126,7 @@ q = buf; p = *pp; -while (isspace (*p)) +while (isspace ((uint8_t )*p)) p++;if (*p =='\0' ) { fail:
@@ -2171,7 +2171,7 @@ } p++; }else { -while (*p !='\0' && !isspace (*p)) { +while (*p !='\0' && !isspace ((uint8_t )*p)) {if ((q - buf) < buf_size -1 ) { *q++ = *p; }
@@ -2217,12 +2217,12 @@/* extract the command name */ p = cmdline; q = cmdname; -while (isspace (*p)) +while (isspace ((uint8_t )*p)) p++;if (*p =='\0' )return ; pstart = p; -while (*p !='\0' && *p !='/' && !isspace (*p)) +while (*p !='\0' && *p !='/' && !isspace ((uint8_t )*p)) p++; len = p - pstart;if (len >sizeof (cmdname) -1 )
@@ -2258,7 +2258,7 @@int ret;char *str; -while (isspace (*p)) +while (isspace ((uint8_t )*p)) p++;if (*typestr =='?' ) { typestr++;
@@ -2299,15 +2299,15 @@ {int count, format, size; -while (isspace (*p)) +while (isspace ((uint8_t )*p)) p++;if (*p =='/' ) {/* format found */ p++; count =1 ; -if (isdigit (*p)) { +if (isdigit ((uint8_t )*p)) { count =0 ; -while (isdigit (*p)) { +while (isdigit ((uint8_t )*p)) { count = count *10 + (*p -'0' ); p++; }
@@ -2346,7 +2346,7 @@ } } next: -if (*p !='\0' && !isspace (*p)) { +if (*p !='\0' && !isspace ((uint8_t )*p)) {term_printf ("invalid char in format: '%c'\n" , *p); goto fail; }
@@ -2380,7 +2380,7 @@ {int64_t val; -while (isspace (*p)) +while (isspace ((uint8_t )*p)) p++;if (*typestr =='?' || *typestr =='.' ) {if (*typestr =='?' ) {
@@ -2391,7 +2391,7 @@ }else {if (*p =='.' ) { p++; -while (isspace (*p)) +while (isspace ((uint8_t )*p)) p++; has_arg =1 ; }else {
@@ -2436,7 +2436,7 @@ c = *typestr++;if (c =='\0' ) goto bad_type; -while (isspace (*p)) +while (isspace ((uint8_t )*p)) p++; has_option =0 ;if (*p =='-' ) {
@@ -2461,7 +2461,7 @@ } }/* check that all arguments were parsed */ -while (isspace (*p)) +while (isspace ((uint8_t )*p)) p++;if (*p !='\0' ) { term_printf("%s: extraneous characters at the end of line\n",
@@ -2609,7 +2609,7 @@ p = cmdline; nb_args =0 ;for (;;) { -while (isspace (*p)) +while (isspace ((uint8_t )*p)) p++;if (*p =='\0' )break ;
@@ -2643,7 +2643,7 @@/* if the line ends with a space, it means we want to complete the next arg */ len =strlen (cmdline); -if (len >0 &&isspace (cmdline[len -1 ])) { +if (len >0 &&isspace ((uint8_t )cmdline[len -1 ])) {if (nb_args >=MAX_ARGS )return ; args[nb_args++] =qemu_strdup ("" );
Quoted 7 lines · Christoph Egger
Hi!
Attached patch fixes a series of this warning
when compiling on NetBSD:warning: array subscript has type 'char'
There has been some discussion on ctype.h macro problems, please see:
http://lists.gnu.org/archive/html/qemu-devel/2008-08/msg01239.html
I'd vote for introducing qemu_isfoobar and qemu_towombat instead of casts.
Quoted 6 lines · On Monday 10 November 2008 17:03:27 Blue Swirl wrote:
Quoted 5 lines · Christoph Egger
Hi!
Attached patch fixes a series of this warning
when compiling on NetBSD:
Quoted 6 lines
Quoted 1 line
warning: array subscript has type 'char'
There has been some discussion on
ctype.hmacro problems, please see:
http://lists.gnu.org/archive/html/qemu-devel/2008-08/msg01239.htmlI'd vote for introducing
qemu_isfoobarandqemu_towombatinstead of casts.
Attached patch introduces a CTYPE macro as mentioned on this mail. The diff in qemu-common.h has been taken from xen ioemu.
Signature · 12 lines
AMD Saxony, Dresden, Germany Operating System Research Center Legal Information: AMD Saxony Limited Liability Company & Co. KG Sitz (Geschäftsanschrift): Wilschdorfer Landstr. 101, 01109 Dresden, Deutschland Registergericht Dresden: HRA 4896 vertretungsberechtigter Komplementär: AMD Saxony LLC (Sitz Wilmington, Delaware, USA) Geschäftsführer der AMD Saxony LLC: Dr. Hans-R. Deppe, Thomas McCoy
readline.c +2 -2
@@ -169,7 +169,7 @@/* find first word (backwards) */ while (start >0 ) { -if (!isspace (term_cmd_buf[start])) { +if (!CTYPE (isspace, term_cmd_buf[start])) {break ; }
@@ -178,7 +178,7 @@/* find first space (backwards) */ while (start >0 ) { -if (isspace (term_cmd_buf[start])) { +if (CTYPE (isspace, term_cmd_buf[start])) { ++start;break ; }
block-vvfat.c +1 -1
@@ -1056,7 +1056,7 @@ i =strrchr (dirname,':' ) - dirname;assert (i >=3 ); -if (dirname[i-2 ] ==':' &&isalpha (dirname[i-1 ])) +if (dirname[i-2 ] ==':' &&CTYPE (isalpha, dirname[i-1 ]))/* workaround for DOS drive names */ dirname += i-1 ;else
translate_init.c +1 -1
@@ -9458,7 +9458,7 @@ p = name; check_pvr:for (i =0 ; i <8 ; i++) { -if (!isxdigit (*p++)) +if (!CTYPE (isxdigit, *p++))break ; }if (i ==8 )
net.c +1 -1
@@ -279,7 +279,7 @@if (buf[0 ] =='\0' ) { saddr->sin_addr.s_addr =0 ; }else { -if (isdigit (buf[0 ])) { +if (CTYPE (isdigit, buf[0 ])) {if (!inet_aton (buf, &saddr->sin_addr))return -1 ; }else {
cutils.c +1 -1
@@ -72,7 +72,7 @@ p = str; q = val;while (*q !='\0' ) { -if (toupper (*p) !=toupper (*q)) +if (CTYPE (toupper, *p) !=CTYPE (toupper, *q))return 0 ; p++; q++;
audio.c +2 -2
@@ -215,7 +215,7 @@pstrcat (r, len +sizeof (qemu_prefix), s);for (i =0 ; i < len; ++i) { - u[i] =toupper (u[i]); + u[i] =CTYPE (toupper, u[i]); } }return r;
@@ -470,7 +470,7 @@/* copy while upper-casing, including trailing zero */ for (i =0 ; i <= preflen; ++i) { - optname[i +sizeof (qemu_prefix) -1 ] =toupper (prefix[i]); + optname[i +sizeof (qemu_prefix) -1 ] =CTYPE (toupper, prefix[i]); }pstrcat (optname, optlen,"_" );pstrcat (optname, optlen, opt->name);
qemu-common.h +11 -0
@@ -93,6 +93,17 @@int stristart (const char *str,const char *val,const char **ptr);time_t mktimegm (struct tm *tm); +#define CTYPE (isfoobar,argumentchar) (isfoobar((unsigned char)(argumentchar))) +/* One must not pass a plain `char' to isupper, toupper, et al. If +* it has the top bit set (ie, is negative if your chars are +* signed), undefined behaviour results. The <ctype.h> functions +* are defined to take the value of an unsigned char, as an int. +* So use this macro. You may pass toupper et al for isfoobar. +* Do not pass EOF as a character to this macro. If you might have +* EOF then you ought to have it in an int representing an unsigned +* char, which is safe for the ctype macros directly. Or test separately. +* Obviously don't use this for floating point things like isnan! */ +void *qemu_malloc (size_t size);void *qemu_realloc (void *ptr,size_t size);void *qemu_mallocz (size_t size);
monitor.c +19 -19
@@ -1933,7 +1933,7 @@ {if (pch !='\0' ) { pch++; -while (isspace (*pch)) +while (CTYPE (isspace, *pch)) pch++; } }
@@ -1992,7 +1992,7 @@ *q++ = *pch; pch++; } -while (isspace (*pch)) +while (CTYPE (isspace, *pch)) pch++; *q =0 ; ret =get_monitor_def (®, buf);
@@ -2017,7 +2017,7 @@expr_error ("invalid char in expression" ); } pch = p; -while (isspace (*pch)) +while (CTYPE (isspace, *pch)) pch++;break ; }
@@ -2111,7 +2111,7 @@ *pp = pch;return -1 ; } -while (isspace (*pch)) +while (CTYPE (isspace, *pch)) pch++; *pval =expr_sum (); *pp = pch;
@@ -2126,7 +2126,7 @@ q = buf; p = *pp; -while (isspace (*p)) +while (CTYPE (isspace, *p)) p++;if (*p =='\0' ) { fail:
@@ -2171,7 +2171,7 @@ } p++; }else { -while (*p !='\0' && !isspace (*p)) { +while (*p !='\0' && !CTYPE (isspace, *p)) {if ((q - buf) < buf_size -1 ) { *q++ = *p; }
@@ -2217,12 +2217,12 @@/* extract the command name */ p = cmdline; q = cmdname; -while (isspace (*p)) +while (CTYPE (isspace, *p)) p++;if (*p =='\0' )return ; pstart = p; -while (*p !='\0' && *p !='/' && !isspace (*p)) +while (*p !='\0' && *p !='/' && !CTYPE (isspace, *p)) p++; len = p - pstart;if (len >sizeof (cmdname) -1 )
@@ -2258,7 +2258,7 @@int ret;char *str; -while (isspace (*p)) +while (CTYPE (isspace, *p)) p++;if (*typestr =='?' ) { typestr++;
@@ -2299,15 +2299,15 @@ {int count, format, size; -while (isspace (*p)) +while (CTYPE (isspace, *p)) p++;if (*p =='/' ) {/* format found */ p++; count =1 ; -if (isdigit (*p)) { +if (CTYPE (isdigit, *p)) { count =0 ; -while (isdigit (*p)) { +while (CTYPE (isdigit, *p)) { count = count *10 + (*p -'0' ); p++; }
@@ -2346,7 +2346,7 @@ } } next: -if (*p !='\0' && !isspace (*p)) { +if (*p !='\0' && !CTYPE (isspace, *p)) {term_printf ("invalid char in format: '%c'\n" , *p); goto fail; }
@@ -2380,7 +2380,7 @@ {int64_t val; -while (isspace (*p)) +while (CTYPE (isspace, *p)) p++;if (*typestr =='?' || *typestr =='.' ) {if (*typestr =='?' ) {
@@ -2391,7 +2391,7 @@ }else {if (*p =='.' ) { p++; -while (isspace (*p)) +while (CTYPE (isspace, *p)) p++; has_arg =1 ; }else {
@@ -2436,7 +2436,7 @@ c = *typestr++;if (c =='\0' ) goto bad_type; -while (isspace (*p)) +while (CTYPE (isspace, *p)) p++; has_option =0 ;if (*p =='-' ) {
@@ -2461,7 +2461,7 @@ } }/* check that all arguments were parsed */ -while (isspace (*p)) +while (CTYPE (isspace, *p)) p++;if (*p !='\0' ) { term_printf("%s: extraneous characters at the end of line\n",
@@ -2609,7 +2609,7 @@ p = cmdline; nb_args =0 ;for (;;) { -while (isspace (*p)) +while (CTYPE (isspace, *p)) p++;if (*p =='\0' )break ;
@@ -2643,7 +2643,7 @@/* if the line ends with a space, it means we want to complete the next arg */ len =strlen (cmdline); -if (len >0 &&isspace (cmdline[len -1 ])) { +if (len >0 &&CTYPE (isspace, cmdline[len -1 ])) {if (nb_args >=MAX_ARGS )return ; args[nb_args++] =qemu_strdup ("" );
Quoted 9 lines · Christoph Egger
Quoted 8 lines · On Monday 10 November 2008 17:03:27 Blue Swirl wrote:
Quoted 6 lines · Christoph Egger
Hi!
Attached patch fixes a series of this warning
when compiling on NetBSD:warning: array subscript has type 'char'
Quoted 8 lines
Quoted 4 lines
There has been some discussion on
ctype.hmacro problems, please see:
http://lists.gnu.org/archive/html/qemu-devel/2008-08/msg01239.htmlI'd vote for introducing
qemu_isfoobarandqemu_towombatinstead of casts.Attached patch introduces a CTYPE macro as mentioned on this mail.
The diff inqemu-common.hhas been taken from xen ioemu.
Sorry, you must have missed the two follow-up messages:
http://lists.gnu.org/archive/html/qemu-devel/2008-08/msg01252.html
http://lists.gnu.org/archive/html/qemu-devel/2008-08/msg01292.html
So instead of CTYPE macro, there should be qemu_toupper, qemu_isalpha etc. which handle char arguments correctly even when sign extension happens.
Quoted 19 lines · On Monday 10 November 2008 17:56:58 Blue Swirl wrote:
Quoted 9 lines · Christoph Egger
Quoted 8 lines · On Monday 10 November 2008 17:03:27 Blue Swirl wrote:
Quoted 6 lines · Christoph Egger
Hi!
Attached patch fixes a series of this warning
when compiling on NetBSD:warning: array subscript has type 'char'
Quoted 8 lines
Quoted 5 lines
There has been some discussion on
ctype.hmacro problems, please see:
http://lists.gnu.org/archive/html/qemu-devel/2008-08/msg01239.htmlI'd vote for introducing
qemu_isfoobarandqemu_towombatinstead of casts.Attached patch introduces a CTYPE macro as mentioned on this mail.
The diff inqemu-common.hhas been taken from xen ioemu.
Quoted 7 lines
Sorry, you must have missed the two follow-up messages:
http://lists.gnu.org/archive/html/qemu-devel/2008-08/msg01252.html
http://lists.gnu.org/archive/html/qemu-devel/2008-08/msg01292.htmlSo instead of CTYPE macro, there should be
qemu_toupper,qemu_isalphaetc. which handle char arguments correctly even when sign extension happens.
New patch attached. Better now ?
Signature · 12 lines
AMD Saxony, Dresden, Germany Operating System Research Center Legal Information: AMD Saxony Limited Liability Company & Co. KG Sitz (Geschäftsanschrift): Wilschdorfer Landstr. 101, 01109 Dresden, Deutschland Registergericht Dresden: HRA 4896 vertretungsberechtigter Komplementär: AMD Saxony LLC (Sitz Wilmington, Delaware, USA) Geschäftsführer der AMD Saxony LLC: Dr. Hans-R. Deppe, Thomas McCoy
readline.c +2 -2
@@ -169,7 +169,7 @@/* find first word (backwards) */ while (start >0 ) { -if (!isspace (term_cmd_buf[start])) { +if (!qemu_isspace (term_cmd_buf[start])) {break ; }
@@ -178,7 +178,7 @@/* find first space (backwards) */ while (start >0 ) { -if (isspace (term_cmd_buf[start])) { +if (qemu_isspace (term_cmd_buf[start])) { ++start;break ; }
block-vvfat.c +1 -1
@@ -1056,7 +1056,7 @@ i =strrchr (dirname,':' ) - dirname;assert (i >=3 ); -if (dirname[i-2 ] ==':' &&isalpha (dirname[i-1 ])) +if (dirname[i-2 ] ==':' &&qemu_isalpha (dirname[i-1 ]))/* workaround for DOS drive names */ dirname += i-1 ;else
translate_init.c +1 -1
@@ -9458,7 +9458,7 @@ p = name; check_pvr:for (i =0 ; i <8 ; i++) { -if (!isxdigit (*p++)) +if (!qemu_isxdigit (*p++))break ; }if (i ==8 )
net.c +1 -1
@@ -279,7 +279,7 @@if (buf[0 ] =='\0' ) { saddr->sin_addr.s_addr =0 ; }else { -if (isdigit (buf[0 ])) { +if (qemu_isdigit (buf[0 ])) {if (!inet_aton (buf, &saddr->sin_addr))return -1 ; }else {
cutils.c +1 -1
@@ -72,7 +72,7 @@ p = str; q = val;while (*q !='\0' ) { -if (toupper (*p) !=toupper (*q)) +if (qemu_toupper (*p) !=qemu_toupper (*q))return 0 ; p++; q++;
audio.c +2 -2
@@ -215,7 +215,7 @@pstrcat (r, len +sizeof (qemu_prefix), s);for (i =0 ; i < len; ++i) { - u[i] =toupper (u[i]); + u[i] =qemu_toupper (u[i]); } }return r;
@@ -470,7 +470,7 @@/* copy while upper-casing, including trailing zero */ for (i =0 ; i <= preflen; ++i) { - optname[i +sizeof (qemu_prefix) -1 ] =toupper (prefix[i]); + optname[i +sizeof (qemu_prefix) -1 ] =qemu_toupper (prefix[i]); }pstrcat (optname, optlen,"_" );pstrcat (optname, optlen, opt->name);
qemu-common.h +16 -0
@@ -93,6 +93,22 @@int stristart (const char *str,const char *val,const char **ptr);time_t mktimegm (struct tm *tm); +#define qemu_isalnum (c) isalnum((unsigned char)(c)) +#define qemu_isalpha (c) isalpha((unsigned char)(c)) +#define qemu_iscntrl (c) iscntrl((unsigned char)(c)) +#define qemu_isdigit (c) isdigit((unsigned char)(c)) +#define qemu_isgraph (c) isgraph((unsigned char)(c)) +#define qemu_islower (c) islower((unsigned char)(c)) +#define qemu_isprint (c) isprint((unsigned char)(c)) +#define qemu_ispunct (c) ispunct((unsigned char)(c)) +#define qemu_isspace (c) isspace((unsigned char)(c)) +#define qemu_isupper (c) isupper((unsigned char)(c)) +#define qemu_isxdigit (c) isxdigit((unsigned char)(c)) +#define qemu_tolower (c) tolower((unsigned char)(c)) +#define qemu_toupper (c) toupper((unsigned char)(c)) +#define qemu_isascii (c) isascii((unsigned char)(c)) +#define qemu_toascii (c) toascii((unsigned char)(c)) +void *qemu_malloc (size_t size);void *qemu_realloc (void *ptr,size_t size);void *qemu_mallocz (size_t size);
monitor.c +19 -19
@@ -1933,7 +1933,7 @@ {if (pch !='\0' ) { pch++; -while (isspace (*pch)) +while (qemu_isspace (*pch)) pch++; } }
@@ -1992,7 +1992,7 @@ *q++ = *pch; pch++; } -while (isspace (*pch)) +while (qemu_isspace (*pch)) pch++; *q =0 ; ret =get_monitor_def (®, buf);
@@ -2017,7 +2017,7 @@expr_error ("invalid char in expression" ); } pch = p; -while (isspace (*pch)) +while (qemu_isspace (*pch)) pch++;break ; }
@@ -2111,7 +2111,7 @@ *pp = pch;return -1 ; } -while (isspace (*pch)) +while (qemu_isspace (*pch)) pch++; *pval =expr_sum (); *pp = pch;
@@ -2126,7 +2126,7 @@ q = buf; p = *pp; -while (isspace (*p)) +while (qemu_isspace (*p)) p++;if (*p =='\0' ) { fail:
@@ -2171,7 +2171,7 @@ } p++; }else { -while (*p !='\0' && !isspace (*p)) { +while (*p !='\0' && !qemu_isspace (*p)) {if ((q - buf) < buf_size -1 ) { *q++ = *p; }
@@ -2217,12 +2217,12 @@/* extract the command name */ p = cmdline; q = cmdname; -while (isspace (*p)) +while (qemu_isspace (*p)) p++;if (*p =='\0' )return ; pstart = p; -while (*p !='\0' && *p !='/' && !isspace (*p)) +while (*p !='\0' && *p !='/' && !qemu_isspace (*p)) p++; len = p - pstart;if (len >sizeof (cmdname) -1 )
@@ -2258,7 +2258,7 @@int ret;char *str; -while (isspace (*p)) +while (qemu_isspace (*p)) p++;if (*typestr =='?' ) { typestr++;
@@ -2299,15 +2299,15 @@ {int count, format, size; -while (isspace (*p)) +while (qemu_isspace (*p)) p++;if (*p =='/' ) {/* format found */ p++; count =1 ; -if (isdigit (*p)) { +if (qemu_isdigit (*p)) { count =0 ; -while (isdigit (*p)) { +while (qemu_isdigit (*p)) { count = count *10 + (*p -'0' ); p++; }
@@ -2346,7 +2346,7 @@ } } next: -if (*p !='\0' && !isspace (*p)) { +if (*p !='\0' && !qemu_isspace (*p)) {term_printf ("invalid char in format: '%c'\n" , *p); goto fail; }
@@ -2380,7 +2380,7 @@ {int64_t val; -while (isspace (*p)) +while (qemu_isspace (*p)) p++;if (*typestr =='?' || *typestr =='.' ) {if (*typestr =='?' ) {
@@ -2391,7 +2391,7 @@ }else {if (*p =='.' ) { p++; -while (isspace (*p)) +while (qemu_isspace (*p)) p++; has_arg =1 ; }else {
@@ -2436,7 +2436,7 @@ c = *typestr++;if (c =='\0' ) goto bad_type; -while (isspace (*p)) +while (qemu_isspace (*p)) p++; has_option =0 ;if (*p =='-' ) {
@@ -2461,7 +2461,7 @@ } }/* check that all arguments were parsed */ -while (isspace (*p)) +while (qemu_isspace (*p)) p++;if (*p !='\0' ) { term_printf("%s: extraneous characters at the end of line\n",
@@ -2609,7 +2609,7 @@ p = cmdline; nb_args =0 ;for (;;) { -while (isspace (*p)) +while (qemu_isspace (*p)) p++;if (*p =='\0' )break ;
@@ -2643,7 +2643,7 @@/* if the line ends with a space, it means we want to complete the next arg */ len =strlen (cmdline); -if (len >0 &&isspace (cmdline[len -1 ])) { +if (len >0 &&qemu_isspace (cmdline[len -1 ])) {if (nb_args >=MAX_ARGS )return ; args[nb_args++] =qemu_strdup ("" );
Quoted 29 lines · Christoph Egger
Quoted 19 lines · On Monday 10 November 2008 17:56:58 Blue Swirl wrote:
Quoted 9 lines · Christoph Egger
Quoted 8 lines · On Monday 10 November 2008 17:03:27 Blue Swirl wrote:
Quoted 6 lines · Christoph Egger
Hi!
Attached patch fixes a series of this warning
when compiling on NetBSD:warning: array subscript has type 'char'
Quoted 8 lines
Quoted 5 lines
There has been some discussion on
ctype.hmacro problems, please see:
http://lists.gnu.org/archive/html/qemu-devel/2008-08/msg01239.htmlI'd vote for introducing
qemu_isfoobarandqemu_towombatinstead of casts.Attached patch introduces a CTYPE macro as mentioned on this mail.
The diff inqemu-common.hhas been taken from xen ioemu.Quoted 7 lines
Sorry, you must have missed the two follow-up messages:
http://lists.gnu.org/archive/html/qemu-devel/2008-08/msg01252.html
http://lists.gnu.org/archive/html/qemu-devel/2008-08/msg01292.htmlSo instead of CTYPE macro, there should be
qemu_toupper,qemu_isalphaetc. which handle char arguments correctly even when sign extension happens.
Quoted 4 lines
New patch attached. Better now ?
Signed-off-by Christoph Egger <[email protected]>
Looks good to me. Anybody mind if I commit it? Anthony, happy with this version?
Quoted 6 lines · Blue Swirl
Quoted 3 lines
Signed-off-by Christoph Egger <[email protected]>Looks good to me. Anybody mind if I commit it? Anthony, happy with this version?
Looks good to me.
Regards,
Anthony Liguori
Blue Swirl
AppliedQuoted 24 lines · Christoph Egger
Quoted 23 lines · On Monday 10 November 2008 17:56:58 Blue Swirl wrote:
Quoted 9 lines · Christoph Egger
Quoted 8 lines · On Monday 10 November 2008 17:03:27 Blue Swirl wrote:
Quoted 6 lines · Christoph Egger
Hi!
Attached patch fixes a series of this warning
when compiling on NetBSD:warning: array subscript has type 'char'
Quoted 8 lines
Quoted 5 lines
There has been some discussion on
ctype.hmacro problems, please see:
http://lists.gnu.org/archive/html/qemu-devel/2008-08/msg01239.htmlI'd vote for introducing
qemu_isfoobarandqemu_towombatinstead of casts.Attached patch introduces a CTYPE macro as mentioned on this mail.
The diff inqemu-common.hhas been taken from xen ioemu.Sorry, you must have missed the two follow-up messages:
http://lists.gnu.org/archive/html/qemu-devel/2008-08/msg01252.html
http://lists.gnu.org/archive/html/qemu-devel/2008-08/msg01292.html
Quoted 6 lines
Quoted 3 lines
So instead of CTYPE macro, there should be
qemu_toupper,qemu_isalphaetc. which handle char arguments correctly even when sign extension happens.New patch attached. Better now ?
Thanks, applied as r5727.