[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: international alnum characters not part of words even with locale se
Re: international alnum characters not part of words even with locale set
Mon, 6 Jan 2003 13:45:51 +0100
On Thursday, January 02, 2003 at 10:34, Chet Ramey wrote:
> > #define NON_NEGATIVE(c) (_rl_meta_flag || (unsigned char)(c) == (c))
> > (I haven't tested it though.)
> The intent of NON_NEGATIVE is to prevent buffer overflows and potential
> core dumps with the ctype.h macros.
> Consider a system where chars are signed, and the is* ctype.h macros are
> implemented using table lookups. isprint('\200') is therefore equivalent
> to isprint(-128), which is undefined and will potentially cause a core
> Your patch, while it may solve your particular problem, re-exposes the
> problem NON_NEGATIVE was intended to solve.
Ok, I see now the reason for NON_NEGATIVE.
But surely it must be possible to write a simple test in configure.in
to see if these ctype functions can handle (char)x where 128 <= x <= 255.