From: Junio C Hamano Date: Thu, 13 Oct 2005 06:49:30 GMT Subject: Re: Usage of isspace and friends Message-ID: <7vachd6hdx.fsf@assigned-by-dhcp.cox.net> In-Reply-To: <118833cc0510111840k715e1190l54ad65f821c77848@mail.gmail.com> Morten Welinder writes: > Someone needs to audit the usage of isspace, tolower, and > friends. There are things like this in the code: > > static int is_dev_null(const char *str) > { > return !memcmp("/dev/null", str, 9) && isspace(str[9]); > } > > Since str[9] is of type char it should not be used as a argument to > isspace directly, > but rather be cast to unsigned char: > > ... isspace((unsigned char)str[9]); Huh? isspace is "int isspace(int)". Presumably standard integral promotion rules applies here whether char is signed or unsigned, doesn't it? The snippet you quoted is from apply.c, and I would say what is more problematic is that we do not force C locale while parsing the diff (see another thread -- we would want to process diffs as byte streams).