Re: Usage of isspace and friends
- From
Junio C Hamano <junkio@cox.net>
- Date
- Oct 13, 2005, 06:49 UTC
- Message-ID
- <7vachd6hdx.fsf@assigned-by-dhcp.cox.net>
- In-Reply-To
- <118833cc0510111840k715e1190l54ad65f821c77848@mail.gmail.com>
Morten Welinder <mwelinder@gmail.com> writes:
Show 13 quoted lines
> 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).