isprint() vs diakriticka znamenka

Pavel Kankovsky peak na kerberos.troja.mff.cuni.cz
Pondělí Září 7 09:39:40 CEST 1998


On Mon, 7 Sep 1998, Michal Hucik wrote:

> IMHO nezadouci ... pokud dam do nejakeho labelu napr. "Nápověda" == ASCII
> "Napoveda" == po prekladu do src "N\xe1pov\xecda" (ten unsigned jsem
> samozrejme nastavil jako prvni), tak nejen ze gcc zahlasi ten warning, ale
> zobrazeny kod je: "NápovÚ"(v il2) a "NapovU" v ASCII ... coz znamena, ze si
> prekladac neporadil spravne s temi escape sequencemi (coz vlastne rikal uz
> pri kompilaci :) - proc tomu tak je netusim, ale i kdyby se ty znaky ve

BINGO! uz vim, kde je problem! (posilam cc do linux na muni.cz, protoze je
obecne uzitecna informace)

Potiz je v te druhe sekvenci ("\xec"), protoze nasleduje neco, co by
teoreticky mohlo byt pokracovanim ("da"). No, a ted prichazi ta
bestialita. V C/C++ totiz osmickova esc.sekvence konci maximalne po trech
cislicich, zatimco sestnactkova konci az na prvnim znaku mimo
[0-9A-Fa-f]!! (kdo tohle vymyslel, tomu by mela byt dana moznost, aby si
prohledl zblizka sve vlastni vnitrnosti <g>)

Takze spravny zapis je bud
	"N\373pov\236da" (tj osmickove, ty kody jsou ilustrativni) nebo
	"N\xe1""pov\xec""da" (aby se prerusil sled znaku)

Pricemz samozrejme stale plati to o tom signed/unsigned.

> vyslednem kodu zobrazovaly spravne, tak si myslim, ze by ta cestina mela byt
> ve zdrojovem kodu citelna a ne jako souhrn escape sequenci ...

Zase escape sekvence preziji konfrontaci s programy, co nebyly na 8 bitu
stavene. IMHO je to otazka osobniho vkusu.

--Pavel Kankovsky aka Peak  [ Boycott Microsoft--http://www.vcnet.com/bms ]
"You can't be truly paranoid unless you're sure they have already got you."



Další informace o konferenci Linux