[comp.windows.x] Xterm , 8 bit international fonts and font editor

petri@digiw.UUCP (Petri Alhola) (10/19/89)

 I like to use Xterm with international ( or scandinavian )fonts .
 It seems that xterm as default supports only 7 bit character sets and
 so it does not allow to use 8 bit international character sets.
 I hacked xterm for supporting 8 bit codes. largest work was just
 to expand all vt100 ? control code tables for 256 bytes long.
 now it prints out 8 bit charactes. The only problem is that 
 now i have my special xterm. Is there any plans or some
 general international xterm for european languages. If there
 is others that are intrested european xterm, i can send diffs for it.
 But still i think that i am not first one that has made this.

 Second problem appears when i try to find 8 bit fonts. Most of X11.3
 fonts are only 7 bit ones. I need to have few international 
 characted more ( like a and o with two dots in top) .
 So is there any public domain font editor for X11.3 or is there 
 any 8 bit ( latin1 , dos ) fonts . The only one that i have is
 ega font.
                                                   

 petri@digiw.fi
 petri@digiw.uucp

prc@erbe.se (Robert Claeson) (10/19/89)

In article <927@digiw.UUCP> petri@digiw.UUCP (Petri Alhola) writes:

> I like to use Xterm with international ( or scandinavian )fonts .
...
> The only problem is that now i have my special xterm. Is there any
> plans or some general international xterm for european languages.

The problem with an 8-bit xterm (as shipped in X11R3) is that it is an
VT102 emulator. And VT102's doesn't support 8-bit character sets, but
rather various 7-bit national character sets (ASCII being just one of
them). So you should really map back and forth between 7- and 8-bit
characters and add a "language" selection to one of the menus and to
the resource if you want to retain VT102 compatibility.

The *real* way to support true Latin 1 would be to write a VT3xx-
emulator (don't bother trying to extend xterm anymore). VT3xx terminals
uses, among others, ISO 8859/1.

> Second problem appears when i try to find 8 bit fonts. Most of X11.3
> fonts are only 7 bit ones. I need to have few international characted
> more ( like a and o with two dots in top) . So is there any public domain
> font editor for X11.3 or is there any 8 bit ( latin1 , dos ) fonts . The
> only one that i have is ega font.

In the core X11R3 distribution, there are several ISO 8859/1 fonts. Try
using one of the Courier fonts that Adobe have donated. Or the "terminal"
font from Bitstream.

-- 
          Robert Claeson      E-mail: rclaeson@erbe.se
	  ERBE DATA AB

tml@hemuli.atk.vtt.fi (Tor Lillqvist) (10/19/89)

Another problem if you try to extend xterm to 8-bit character sets is
that it uses isprint in charproc.c:
	...
		switch(pstate) {
		 case CASE_PRINT:
			/* printable characters */
			top = bcnt > TEXT_BUF_SIZE ? TEXT_BUF_SIZE : bcnt;
			cp = bptr;
			*--bptr = c;
			while(top > 0 && isprint(*cp)) {
				top--;
				bcnt--;
				cp++;
			}
	...

I don't know what this code exactly does, but clearly xterm shouldn't
use isprint, as the printability of a char depends on the font in use.
It needs a way to know what character set the current font represents,
so that it can decide if a certain character is printable or not.  And
this of course affects the tables in VTPrsTbl.c, too.  Oh, this really
is a mess.  What if you would like to use xterm with a IBM PC font,
where *all* characters are printable, for instance when telnetting to
an AT running VP/ix or some other DOS-on-UNIX emulator.  Or what if
you need the HP Roman8 character set, or DEC's eight-bit character set
(does DEC have their own?).

In article <965@maxim.erbe.se> prc@erbe.se (Robert Claeson) writes:
>The *real* way to support true Latin 1 would be to write a VT3xx-
>emulator (don't bother trying to extend xterm anymore). VT3xx terminals
>uses, among others, ISO 8859/1.

This sounds like a good idea. (But don't ask me to do it...)  But is
it necessary to emulate a real terminal at all?
-- 
Tor Lillqvist, VTT/ATK

mouse@LARRY.MCRCIM.MCGILL.EDU (der Mouse) (11/14/89)

> [xterm and 8-bit character sets]

>> The *real* way to support true Latin 1 would be to write a VT3xx
>> emulator (don't bother trying to extend xterm anymore).  VT3xx
>> terminals uses, among others, ISO 8859/1.

> This sounds like a good idea.  (But don't ask me to do it...)  But is
> it necessary to emulate a real terminal at all?

Not at all.  I wrote an xterm substitute which does things more the way
I want and it bears only philosophical resemblance to any real terminal
I've heard of.  Works just fine.  (Want it?  Send mail.)

Think about it for a minute.  What's the difference between emulating
an obscure but real terminal and "emulating" a nonexistent terminal?

The only advantage to (say) VT3xx emulation is that some software
already exists with knowledge of VT3xx characteristics.  But on modern
systems with terminfo, termcap, or whatever the analog is on your
favorite system, the exact sequences are irrelevant.

For that matter, xterm does only partial VT100 emulation.  To pick a
mismatch that has caused me a little trouble recently, you can't resize
a VT100.

					der Mouse

			old: mcgill-vision!mouse
			new: mouse@larry.mcrcim.mcgill.edu

guy@auspex.auspex.com (Guy Harris) (11/17/89)

>Think about it for a minute.  What's the difference between emulating
>an obscure but real terminal and "emulating" a nonexistent terminal?

The first may be in the "termcap"/"terminfo"/whatever database on some
remote system you log into, while the second may not be - and you may
not have control over the remote system.

This is more "what's the difference between emulating something
commonly found in 'termcap' and something you've just invented", as you
could emulate some non-existent terminal that may be fairly commonly
available in "term*" (e.g., "xterm") or some terminal that exists but
that nobody who bothers to make "term*" entries has ever heard of.

Yes, this has bitten me; it's a nuisance to rlogin from within a
"termulator" window, since none of the machines around here have "tm19"
in their "term*" databases.  (Yes, in this particular case, you can
probably chalk the problems off to laziness on my part, but I don't
think you can generalize that to all cases - were I at a big company
with lots of machines, it might not be possible to get everybody to
upgrade their "term*" databases, and were we on the Internet, it might
not be possible to get some remote site to upgrade their databases. 
There are workarounds, but I *am* fundamentally lazy and prefer having
the computer do things automagically for me whenever possible....)