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