Subject: Re: isprint() and isblank()
To: <>
From: None <itojun@iijlab.net>
List: tech-userlevel
Date: 01/21/2001 04:18:50
>>: This breaks the ABI. "Binaries need to be recompiled" is not an acceptable
>>: solution for libc; old binaries must continue to work as they have been.
> IMHO the problem mainly reside in expanded isprint() macro.
> i don't think this can be fixed by versioning structure.
to be more clear.
we may be able to change include file and libc at the same time.
C locale may be okay with it (they are hardcoded in
lib/libc/gen/ctype_.c). now, what should happen for locale defintion
files outside of src/lib/libc? it looks that:
- most of old format locale defintion files (chrtbl(8)) has
incorrect isblank definition. with old #define for isprint,
it will lead to *correct* isprint behavior.
- if any of the old format locale defintion files (chrtbl(8)) have
correct isblank definition, it will make isprint behavioe
*incorrectly*.
- new format locale definition files (mklocale(8)) has correct
isblank definition. with old #define for isprint,
it will lead to *incorrect* isprint behavior.
if we try to load some locale definition file, what should happen
to old version of ctype table (_ctype_), and new version of ctype
table (_ctype_12_?)
i don't want to put any workaround in code (like tweaking
_B bit for tab char), since that would jeopadize the whole purpose
of locale defintion files.
itojun