nanogui: Re: nterm source code.
Subject:
RE: nterm source code.
From:
Greg Haerr ####@####.####
Date:
16 Aug 1999 18:44:05 -0000
Message-Id: <01BEE7E5.6C9AE490.greg@censoft.com>
:
: I am quite frankly amazed that it works with Linux ptys. All it did under
: ELKS was display unwrapped output from the shell, until it scrolled off the
: bottom. Sounds like it could be included in the next distribution once you
: have tweaked it.
:
Yeah, I'm definitely going to include it. I suppose I ought to send you a copy
first. The text draw code is definitely too slow, and we need a couple advancements
to speed it up, it's not just the low level nano-X stuff. I've been working on some other
projects, but I'll get back into this at some point.
The two advancements required are: 1) an X-like "RegisterInput" api
that allows an fd to be included into the main select with a callback on i/o (this
rids the need for the polling checknextevent, instead we use getnext event.
and 2) the terminal emulator needs to be re-written to buffer lines of text. Since
I write terminal emulators for a living, I know exactly the algorithm we need there.
Greg
Greg Haerr writes:
>
>
> : The nterm code was written concurrently with my very naive ptty code in
> : ELKS. I didn't even look at the specs for real UNIX ptys. nterm does work
> : on ELKS, but I don't expect it to work on any other system.
> :
> Well, you would'nt believe it probably, but with very little effort
> I compiled nterm on Linux, and it ran! The pty code is completely compatible.
>
> BTW, there were two major bugs in the code you passed me. One,
> for some reason the compiler didn't complain, but the GrGetGCFontInfo call
> takes a string, not a character, to get the width and height. This core dumps
> if you use anything other than font #2 (the default FONT_OEM_FIXED in device.h)
>
> Also, I'm not sure what version of nano-X you're running, but MicroWindows
> v0.8x has re-done color model, and you can't use si.white or si.black as COLORVALs,
> only PIXELVALs. So, you must use the device.h values WHITE, BLACK, which
> aren't simple low-numbered integers. I'm still not sure how it ran on your system.
>
> Anyway, I'm going to fix it up, and make it work with an added GrRegisterInput()
> to add the file descriptor for the pty read to the main select(), which will allow
> it to run w/o polling...
>