Comments (4)
The termlib
is the terminal control library. Generally curses
or ncurses
these days. I believe it dives into plain termcap
/ terminfo
if it can't use curses
.
from trn.
The
termlib
is the terminal control library. Generallycurses
orncurses
these days. I believe it dives into plaintermcap
/terminfo
if it can't usecurses
.
Hmm. Interesting. Thanks for the info. I’ll try to dig deeper into the code, my understanding of it still very superficial.
from trn.
In your "whiteboard" you describe this as have a "Perl-style" configure. I think the truth is Perl has an "rn-style" configure. This code is old and was designed to compile on a lot of diverse environments. The configure script to figure things out was I think introduced with rn, and it (among other things) figures out what code is needed for the terminal.
It's pretty effective. I got Perl 1.0.0 running last year on Centos using the configure script. If I had had to find a period automake or the like, I'd probably have been screwed.
from trn.
termlib is a lower-level library than curses. Curses provides refreshable screen regions as buffers that the application updates and then commands curses to refresh the screen from the buffers. Curses examines the changes to the buffers and attempts to emit the smallest possible set of control sequences to the terminal in order to make the screen match the appearance of the buffers.
termlib is the library that obtains the terminal capabilities from the termcap/terminfo database. It has rudimentary facilities for constructing the proper ESC sequences for sequences that are parameterized, or for sequences where additional buffering characters (depending on the baud rate) are needed in order to allow a terminal sufficient time to complete the requested operation. While the operation is pending, the terminal generally isn't listening to the host interface, so commands (like clearing the screen) that take a long time to execute in the terminal are generally followed by a series of NUL pad bytes in order to give the terminal time to process the request.
curses uses termlib in order to obtain the appropriate ESC sequences for a given terminal type as described by the termcap/terminfo database. In term.h the variables tc_BC
, etc., all refer to the named terminal capabilities in termcap/terminfo by the name of the capability, e.g. the bc
capability describes the backspace character used by the terminal.
from trn.
Related Issues (20)
- /usr/sbin/sendmail: No such file or directory HOT 1
- Consecutive spaces in HTML not collapsed
- Sometimes v followed by ^R causes interpreted and raw headers to be both displayed HOT 2
- Alternate text not honoured
- util.c has external dependencies
- KILL files do not seem to work HOT 1
- Names can get “shortened” to mojibake HOT 2
- Subjects not aligned in article selector
- Compressed name not properly terminated
- Posting creates 8bit articles with no QP or MIME headers HOT 3
- Posting creates posts with no User-Agent header HOT 1
- “Connecting” message not preceded by newline in rn mode HOT 1
- Articles sometimes displayed with wrong encoding
- ctrl-g broken HOT 2
- Are all unit tests passing? HOT 10
- filter_html() (in mime.c) segfaults while reading inline HTML
- Subjects with MIME continuation lines have spurious spaces inserted HOT 2
- Unicode corrupted in HTML posts
- Intermittent missed tags HOT 1
- Need to support at least a few other character sets such as ISO-8859-15 HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from trn.