[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: LYNX-DEV Character set support 4
Re: LYNX-DEV Character set support 4
Fri, 16 May 1997 12:10:36 -0500 (CDT)
On Thu, 15 May 1997, Michael Sokolov wrote:
> I did get the latest developmental code (lynx2.7.1ac-0.23.zip), but the
> problem with high control codes is still there. I actually agree with Klaus
> on the idea that the raw mode shouldn't be absolutely raw. Klaus wrote that
> the raw mode checks whether the terminal character set uses high control
> codes and passes them unchanged if it does. I agree that this is the right
> way, but that's not what the code currently does.
It is what it does for me, when I use the "Transparent" fake "Display
Character Set". It also work by "cheating" and saying I have KOI8-R
when I don't, and forcing "raw mode", with both 2.7.1 and the development
Maybe there is something else between Lynx and you swallowing those
> I understand that you can't read Russian and your terminals don't have
> the character set in question, so the page I have given you will always
> look like garbage to you regardless of how it's rendered.
You understand wrong. I do have a console character set (for Linux) that
fits the character set of the Ogonek page you gave. I can't read Russian
anything like fluently, but I know enough to recognize words etc. It
wasn't garbage what I saw. Capital and small letters were present.
I specifically looked at some characters that might be problematic
(128+27, 160, 173), they were all there.
> However, since I
> obviously do read Russian and have that character set on my terminal, I can
> see that the page really IS rendered incorrectly.
You don't say what settings you were using. Without that, talking about
it is rather pointless :)
> Actually, I know where the problem was in the release version 2.7.1. If
> you remember, in my first message on this subject, I proposed a code change
> to Lynx v2.7.1. Well, when I applied those changes to my copy of the
> release version 2.7.1, it worked fine. In release 2.7.1, the function
> HTMLSetCharacterHandling() in src/LYCharUtils.c contained a long if
> statement with many "else if" clauses for setting special options for some
> character sets. For character sets that use high control codes, it set
> HTPassHighCtrlRaw to TRUE.
There are changes now to that code, in 2.7.1ac-0.24. Try that, it should
behave somewhat more consistent better w.r.t. raw mode. Note that -raw
is a toggle flag and that the default has changed. But that change should
only apply to people using `-assume_charset' (now also can be set in
lynx.cfg). I know only one such person, and he asked for the change :)
But anyway, it already did work before the most recent changes...
> Supposedly, in the new code the hard-coded tables and options in
> src/LYCharSets.c and src/LYCharUtils.c are replaced with the more flexible
> table-based mechanism. However, nowhere in the tables or their README*
> files I saw a description of how to mark a character set as using high
> control codes. Or maybe the old if statement in src/LYCharUtils.c is still
There is no flag for marking a character set as using high control codes.
There is, per character set, a number lowest_eightbit (or similar), which
tells, as the name implies, the lowest value with the most significant
bit set which represents a legitimate character. (So normally it would be
either 128 or 160.) There are hardwired numbers for the character sets
which have tables in LYCharSets.c, and for the additional tables from
src/chrtrans, the aux program makeuctb figures it all out...
If you look at those functions in src/LYCharUtils.c now, you will find
that there is a mixture of "old" and "new" code... Everything should fall
back to the "old" handling for either CJK character sets or if
EXP_CHARTRANS is not defined when compiling.
Note that you have to explicitly `make clean' before recompiling (after
making code changes or getting a new version), don't rely on the
dependencies in the [Mm]akefiles. Also if you tried both the auto-conf
and the tradtional Makefiles, make sure your make uses the (M or m)akefile
; To UNSUBSCRIBE: Send a mail message to address@hidden
; with "unsubscribe lynx-dev" (without the
; quotation marks) on a line by itself.