mirror of
https://github.com/Aigor44/ncursesw-morphos.git
synced 2024-12-15 07:30:12 +08:00
ncurses 5.9 - patch 20120428
+ fix some inconsistencies between vt320/vt420, e.g., cnorm/civis -TD + add eslok flag to dec+sl -TD + dec+sl applies to vt320 and up -TD + drop wsl width from xterm+sl -TD + reuse xterm+sl in putty and nsca-m -TD + add ansi+tabs to vt520 -TD + add ansi+enq to vt220-vt520 -TD + fix a compiler warning in example in ncurses-intro.doc (Paul Waring). + added paragraph in keyname manpage telling how extended capabilities are interpreted as key definitions. + modify tic's check of conflicting key definitions to include extended capability strings in addition to the existing check on predefined keys.
This commit is contained in:
parent
a1ed68d706
commit
beb0f0c691
17
NEWS
17
NEWS
@ -25,7 +25,7 @@
|
||||
-- sale, use or other dealings in this Software without prior written --
|
||||
-- authorization. --
|
||||
-------------------------------------------------------------------------------
|
||||
-- $Id: NEWS,v 1.1896 2012/04/21 20:09:09 tom Exp $
|
||||
-- $Id: NEWS,v 1.1899 2012/04/28 22:50:44 tom Exp $
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
This is a log of changes that ncurses has gone through since Zeyd started
|
||||
@ -45,6 +45,21 @@ See the AUTHORS file for the corresponding full names.
|
||||
Changes through 1.9.9e did not credit all contributions;
|
||||
it is not possible to add this information.
|
||||
|
||||
20120428
|
||||
+ fix some inconsistencies between vt320/vt420, e.g., cnorm/civis -TD
|
||||
+ add eslok flag to dec+sl -TD
|
||||
+ dec+sl applies to vt320 and up -TD
|
||||
+ drop wsl width from xterm+sl -TD
|
||||
+ reuse xterm+sl in putty and nsca-m -TD
|
||||
+ add ansi+tabs to vt520 -TD
|
||||
+ add ansi+enq to vt220-vt520 -TD
|
||||
+ fix a compiler warning in example in ncurses-intro.doc (Paul Waring).
|
||||
+ added paragraph in keyname manpage telling how extended capabilities
|
||||
are interpreted as key definitions.
|
||||
+ modify tic's check of conflicting key definitions to include extended
|
||||
capability strings in addition to the existing check on predefined
|
||||
keys.
|
||||
|
||||
20120421
|
||||
+ improve cleanup of temporary files in tic using atexit().
|
||||
+ add msgr to vt420, similar DEC vtXXX entries -TD
|
||||
|
4
dist.mk
4
dist.mk
@ -25,7 +25,7 @@
|
||||
# use or other dealings in this Software without prior written #
|
||||
# authorization. #
|
||||
##############################################################################
|
||||
# $Id: dist.mk,v 1.870 2012/04/21 15:29:45 tom Exp $
|
||||
# $Id: dist.mk,v 1.871 2012/04/28 15:31:11 tom Exp $
|
||||
# Makefile for creating ncurses distributions.
|
||||
#
|
||||
# This only needs to be used directly as a makefile by developers, but
|
||||
@ -37,7 +37,7 @@ SHELL = /bin/sh
|
||||
# These define the major/minor/patch versions of ncurses.
|
||||
NCURSES_MAJOR = 5
|
||||
NCURSES_MINOR = 9
|
||||
NCURSES_PATCH = 20120421
|
||||
NCURSES_PATCH = 20120428
|
||||
|
||||
# We don't append the patch to the version, since this only applies to releases
|
||||
VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
|
||||
|
@ -1,8 +1,8 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<!--
|
||||
$Id: ncurses-intro.html,v 1.44 2010/12/04 16:46:22 tom Exp $
|
||||
$Id: ncurses-intro.html,v 1.45 2012/04/28 21:39:17 Paul.Waring Exp $
|
||||
****************************************************************************
|
||||
* Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. *
|
||||
* Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
|
||||
* *
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a *
|
||||
* copy of this software and associated documentation files (the *
|
||||
@ -431,6 +431,7 @@ mentioned above. <P>
|
||||
Here is a sample program to motivate the discussion:
|
||||
|
||||
<PRE>
|
||||
#include <stdlib.h>
|
||||
#include <curses.h>
|
||||
#include <signal.h>
|
||||
|
||||
|
@ -333,6 +333,7 @@ Using the Library
|
||||
|
||||
Here is a sample program to motivate the discussion:
|
||||
#include <curses.h>
|
||||
#include <curses.h>
|
||||
#include <signal.h>
|
||||
|
||||
static void finish(int sig);
|
||||
|
@ -1,5 +1,5 @@
|
||||
.\"***************************************************************************
|
||||
.\" Copyright (c) 1998-2005,2010 Free Software Foundation, Inc. *
|
||||
.\" Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
|
||||
.\" *
|
||||
.\" Permission is hereby granted, free of charge, to any person obtaining a *
|
||||
.\" copy of this software and associated documentation files (the *
|
||||
@ -26,7 +26,7 @@
|
||||
.\" authorization. *
|
||||
.\"***************************************************************************
|
||||
.\"
|
||||
.\" $Id: curs_inopts.3x,v 1.15 2010/12/04 18:40:45 tom Exp $
|
||||
.\" $Id: curs_inopts.3x,v 1.17 2012/04/28 19:09:15 tom Exp $
|
||||
.TH curs_inopts 3X ""
|
||||
.na
|
||||
.hy 0
|
||||
@ -223,6 +223,42 @@ initializes the terminal state. BSD curses differed from this slightly; it
|
||||
left the echo bit on at initialization, but the BSD \fBraw\fR call turned it
|
||||
off as a side-effect. For best portability, set echo or noecho explicitly
|
||||
just after initialization, even if your program remains in cooked mode.
|
||||
.PP
|
||||
When \fBkeypad\fP is first enabled,
|
||||
ncurses loads the key-definitions for the current terminal description.
|
||||
If the terminal description includes extended string capabilities,
|
||||
e.g., from using the \fB\-x\fP option of @TIC@,
|
||||
then ncurses also defines keys for the capabilities whose names
|
||||
begin with "k".
|
||||
The corresponding keycodes are generated and (depending on previous
|
||||
loads of terminal descriptions) may differ from one execution of a
|
||||
program to the next.
|
||||
The generated keycodes are recognized by the \fBkeyname\fP function
|
||||
(which will then return a name beginning with "k" denoting the
|
||||
terminfo capability name rather than "K", used for curses key-names).
|
||||
On the other hand, an application can use \fBdefine_key\fP to establish
|
||||
a specific keycode for a given string.
|
||||
This makes it possible for an application to check for an extended
|
||||
capability's presence with \fItigetstr\fP,
|
||||
and reassign the keycode to match its own needs.
|
||||
.PP
|
||||
Low-level applications can use \fBtigetstr\fP to obtain the definition
|
||||
of any particular string capability.
|
||||
Higher-level applications which use the curses \fBwgetch\fP
|
||||
and similar functions to return keycodes rely upon the order in which
|
||||
the strings are loaded.
|
||||
If more than one key definition has the same string value,
|
||||
then \fBwgetch\fP can return only one keycode.
|
||||
Most curses implementations (including ncurses)
|
||||
load key definitions in the order
|
||||
defined by the array of string capability names.
|
||||
The last key to be loaded determines the keycode which will be returned.
|
||||
In ncurses, you may also have extended capabilities interpreted as
|
||||
key definitions.
|
||||
These are loaded after the predefined keys,
|
||||
and if a capability's value is the same as a previously-loaded
|
||||
key definition,
|
||||
the later definition is the one used.
|
||||
.SH NOTES
|
||||
Note that \fBecho\fR, \fBnoecho\fR, \fBhalfdelay\fR, \fBintrflush\fR,
|
||||
\fBmeta\fR, \fBnodelay\fR, \fBnotimeout\fR, \fBnoqiflush\fR,
|
||||
@ -233,4 +269,9 @@ they attempt to restore to normal (`cooked') mode from raw and cbreak modes
|
||||
respectively. Mixing raw/noraw and cbreak/nocbreak calls leads to tty driver
|
||||
control states that are hard to predict or understand; it is not recommended.
|
||||
.SH SEE ALSO
|
||||
\fBcurses\fR(3X), \fBcurs_getch\fR(3X), \fBcurs_initscr\fR(3X), \fBtermio\fR(7)
|
||||
\fBcurses\fR(3X),
|
||||
\fBcurs_getch\fR(3X),
|
||||
\fBcurs_initscr\fR(3X),
|
||||
\fBcurs_util\fR(3X),
|
||||
\fBdefine_key\fR(3X),
|
||||
\fBtermio\fR(7)
|
||||
|
@ -6,8 +6,8 @@
|
||||
# Report bugs and new terminal descriptions to
|
||||
# bug-ncurses@gnu.org
|
||||
#
|
||||
# $Revision: 1.437 $
|
||||
# $Date: 2012/04/21 19:07:11 $
|
||||
# $Revision: 1.440 $
|
||||
# $Date: 2012/04/28 21:37:23 $
|
||||
#
|
||||
# The original header is preserved below for reference. It is noted that there
|
||||
# is a "newer" version which differs in some cosmetic details (but actually
|
||||
@ -2524,6 +2524,7 @@ vt220|vt200|dec vt220,
|
||||
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
|
||||
sgr0=\E[m\E(B, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h,
|
||||
smso=\E[7m, smul=\E[4m, tbc=\E[3g, use=ansi+pp,
|
||||
use=ansi+enq,
|
||||
vt220-w|vt200-w|DEC vt220 in wide mode,
|
||||
cols#132,
|
||||
rs3=\E[?3h, use=vt220,
|
||||
@ -2628,7 +2629,7 @@ vt320nam|v320n|DEC VT320 in vt100 emul. mode with NO AUTO WRAP mode,
|
||||
# From: Adam Thompson <athompso@pangea.ca> Sept 10 1995
|
||||
# (vt320: uncommented <fsl> --esr)
|
||||
vt320|vt300|dec vt320 7 bit terminal,
|
||||
am, eslok, hs, mir, msgr, xenl,
|
||||
am, hs, mir, msgr, xenl,
|
||||
cols#80, lines#24, wsl#80,
|
||||
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
|
||||
bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
|
||||
@ -2637,9 +2638,8 @@ vt320|vt300|dec vt320 7 bit terminal,
|
||||
cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
|
||||
cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
|
||||
dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
|
||||
ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, fsl=\E[0$},
|
||||
home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL,
|
||||
il1=\E[L, ind=\ED,
|
||||
ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, home=\E[H, ht=^I,
|
||||
hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
|
||||
is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
|
||||
kbs=\177, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
|
||||
kdch1=\E[3~, kel=\E[4~, kf10=\E[21~, kf11=\E[23~,
|
||||
@ -2656,7 +2656,7 @@ vt320|vt300|dec vt320 7 bit terminal,
|
||||
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
|
||||
sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
|
||||
smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
|
||||
tsl=\E[1$}\E[H\E[K, use=dec+pp, use=vt220+keypad,
|
||||
use=dec+pp, use=vt220+keypad, use=dec+sl, use=ansi+enq,
|
||||
vt320-nam|vt300-nam|dec vt320 7 bit terminal with no am to make SAS happy,
|
||||
am@,
|
||||
is2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h\E[1;24r\E[24;1H,
|
||||
@ -2766,7 +2766,7 @@ vt400|vt400-24|dec-vt400|dec vt400 24x80 column autowrap,
|
||||
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
|
||||
sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
|
||||
smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
|
||||
tsl=\E[2$~\E[1$}\E[1;%dH,
|
||||
tsl=\E[2$~\E[1$}\E[1;%dH, use=dec+sl,
|
||||
|
||||
# (vt420: I removed <kf0>, it collided with <kf10>. I also restored
|
||||
# a missing <sc> -- esr)
|
||||
@ -2775,15 +2775,15 @@ vt420|DEC VT420,
|
||||
am, mir, msgr, xenl, xon,
|
||||
cols#80, it#8, lines#24, vt#3,
|
||||
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
|
||||
bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
|
||||
clear=\E[H\E[2J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
|
||||
cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
|
||||
cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH$<10>,
|
||||
cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
|
||||
dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J$<50>,
|
||||
el=\E[K$<3>, el1=\E[1K, enacs=\E)0,
|
||||
flash=\E[?5h$<200/>\E[?5l, home=\E[H, ht=^I, hts=\EH,
|
||||
ich=\E[%p1%d@, if=/usr/share/tabset/vt300,
|
||||
bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>, civis=\E[?25l,
|
||||
clear=\E[H\E[2J$<50>, cnorm=\E[?25h, cr=^M,
|
||||
csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
|
||||
cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
|
||||
cup=\E[%i%p1%d;%p2%dH$<10>, cuu=\E[%p1%dA, cuu1=\E[A,
|
||||
dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
|
||||
ech=\E[%p1%dX, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K,
|
||||
enacs=\E)0, flash=\E[?5h$<200/>\E[?5l, home=\E[H, ht=^I,
|
||||
hts=\EH, ich=\E[%p1%d@, if=/usr/share/tabset/vt300,
|
||||
il=\E[%p1%dL, il1=\E[L, ind=\ED, is2=\E[1;24r\E[24;1H,
|
||||
is3=\E[?67h\E[64;1"p, kbs=^H, kcub1=\E[D, kcud1=\E[B,
|
||||
kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kf1=\EOP, kf10=\E[29~,
|
||||
@ -2797,7 +2797,7 @@ vt420|DEC VT420,
|
||||
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
|
||||
sgr0=\E[m\E(B$<2>, smacs=\E(0$<2>, smam=\E[?7h,
|
||||
smir=\E[4h, smkx=\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
|
||||
use=ansi+pp,
|
||||
use=ansi+pp, use=dec+sl, use=ansi+enq,
|
||||
|
||||
# DEC VT220 and up support DECUDK (user-defined keys). DECUDK (i.e., pfx)
|
||||
# takes two parameters, the key and the string. Translating the key is
|
||||
@ -2895,35 +2895,11 @@ vt520|DEC VT520,
|
||||
rmso=\E[m, rmul=\E[m, rs3=\E[?67h\E[64;1"p, sc=\E7,
|
||||
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
|
||||
sgr0=\E[m$<2>, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h,
|
||||
smso=\E[7m, smul=\E[4m,
|
||||
smso=\E[7m, smul=\E[4m, use=ansi+tabs, use=ansi+enq,
|
||||
use=dec+sl,
|
||||
|
||||
# (vt525: I added <rmam>/<smam> based on the init string;
|
||||
# removed <rmso>=\E[m, <rmul>=\E[m, added <sc> -- esr)
|
||||
# added msgr -TD
|
||||
vt525|DEC VT525,
|
||||
am, mir, msgr, xenl, xon,
|
||||
cols#80, lines#24, vt#3,
|
||||
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
|
||||
bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
|
||||
clear=\E[H\E[2J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
|
||||
cub1=^H, cud1=\E[B, cuf1=\E[C,
|
||||
cup=\E[%i%p1%d;%p2%dH$<10>, cuu1=\E[A, dch1=\E[P,
|
||||
dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I,
|
||||
if=/usr/share/tabset/vt300, il1=\E[L, ind=\ED,
|
||||
is2=\E[1;24r\E[24;1H, is3=\E[?67h\E[64;1"p, kbs=^H,
|
||||
kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
|
||||
kdch1=\E[3~, kf1=\EOP, kf10=\E[29~, kf2=\EOQ, kf3=\EOR,
|
||||
kf4=\EOS, kf5=\E[17~, kf6=\E[18~, kf7=\E[19~, kf8=\E[20~,
|
||||
kf9=\E[21~, kfnd=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
|
||||
kslt=\E[4~,
|
||||
pfx=\EP1;1|%?%{16}%p1%>%t%{0}%e%{21}%p1%>%t%{1}%e%{25}%p1%>%t%{2}%e%{27}%p1%>%t%{3}%e%{30}%p1%>%t%{4}%e%{5}%;%p1%+%d/%p2%s\E\\,
|
||||
rc=\E8, rev=\E[7m$<2>, rf=/usr/share/tabset/vt300,
|
||||
ri=\EM, rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l,
|
||||
rmsc=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
|
||||
rmso=\E[m, rmul=\E[m, rs3=\E[?67h\E[64;1"p, sc=\E7,
|
||||
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
|
||||
sgr0=\E[m$<2>, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h,
|
||||
smso=\E[7m, smul=\E[4m,
|
||||
use=vt520,
|
||||
|
||||
#### VT100 emulations
|
||||
#
|
||||
@ -2987,7 +2963,7 @@ crt|crt-vt220|CRT 2.3 emulating VT220,
|
||||
# the default behavior -TD
|
||||
|
||||
putty|PuTTY terminal emulator,
|
||||
am, bce, bw, ccc, hs, mir, msgr, xenl, xon, XT,
|
||||
am, bce, bw, ccc, mir, msgr, xenl, xon, XT,
|
||||
colors#8, it#8, ncv#22, pairs#64, U8#1,
|
||||
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
|
||||
bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
|
||||
@ -2997,11 +2973,10 @@ putty|PuTTY terminal emulator,
|
||||
cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM,
|
||||
dch=\E[%p1%dP, dch1=\E[P,
|
||||
dispc=%?%p1%{8}%=%t\E%%G\342\227\230\E%%@%e%p1%{10}%=%t\E%%G\342\227\231\E%%@%e%p1%{12}%=%t\E%%G\342\231\0\E%%@%e%p1%{13}%=%t\E%%G\342\231\252\E%%@%e%p1%{14}%=%t\E%%G\342\231\253\E%%@%e%p1%{15}%=%t\E%%G\342\230\274\E%%@%e%p1%{27}%=%t\E%%G\342\206\220\E%%@%e%p1%{155}%=%t\E%%G\340\202\242\E%%@%e%p1%c%;,
|
||||
dl=\E[%p1%dM, dl1=\E[M, dsl=\E]0;\007, ech=\E[%p1%dX,
|
||||
ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
|
||||
flash=\E[?5h\E[?5l, fsl=^G, home=\E[H, hpa=\E[%i%p1%dG,
|
||||
ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J,
|
||||
indn=\E[%p1%dS,
|
||||
dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
|
||||
el1=\E[1K, enacs=\E(B\E)0, flash=\E[?5h\E[?5l, home=\E[H,
|
||||
hpa=\E[%i%p1%dG, ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L,
|
||||
ind=^J, indn=\E[%p1%dS,
|
||||
initc=\E]P%p1%x%p2%{255}%*%{1000}%/%02x%p3%{255}%*%{1000}%/%02x%p4%{255}%*%{1000}%/%02x,
|
||||
is2=\E7\E[r\E[m\E[?7h\E[?1;4;6l\E[4l\E8\E>\E]R,
|
||||
kb2=\E[G, kbs=\177, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B,
|
||||
@ -3022,7 +2997,7 @@ putty|PuTTY terminal emulator,
|
||||
sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
|
||||
sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E[?47h,
|
||||
smir=\E[4h, smpch=\E[11m, smso=\E[7m, smul=\E[4m,
|
||||
tbc=\E[3g, tsl=\E]0;, vpa=\E[%i%p1%dd, use=vt102+enq,
|
||||
tbc=\E[3g, vpa=\E[%i%p1%dd, use=vt102+enq, use=xterm+sl,
|
||||
vt100-putty|Reset PuTTY to pure vt100,
|
||||
rs2=\E<\E["p\Ec\E[?3l\E]R\E[40"p\E[61"p\E[50;1;2"p,
|
||||
use=vt100,
|
||||
@ -3801,11 +3776,9 @@ xterm-utf8|xterm with no VT100 line-drawing in UTF-8 mode,
|
||||
# don't want to mess with icon-name when using those window managers.
|
||||
xterm+sl|access X title line and icon name,
|
||||
hs,
|
||||
wsl#40,
|
||||
dsl=\E]0;\007, fsl=^G, tsl=\E]0;,
|
||||
xterm+sl-twm|access X title line (pacify twm-descended window managers),
|
||||
hs,
|
||||
wsl#40,
|
||||
dsl=\E]2;\007, fsl=^G, tsl=\E]2;,
|
||||
|
||||
# In contrast, this block can be used for a DEC vt320 and up. There are two
|
||||
@ -3835,7 +3808,7 @@ xterm+sl-twm|access X title line (pacify twm-descended window managers),
|
||||
# can be used for this purpose is HPA, e.g., \E[5d to go to column 5.
|
||||
#
|
||||
dec+sl|DEC VTxx status line,
|
||||
hs,
|
||||
eslok, hs,
|
||||
dsl=\E[1$~, fsl=\E[0$}, tsl=\E[2$~\E[1$}\E[%i%p1%d`,
|
||||
|
||||
#
|
||||
@ -3912,6 +3885,7 @@ xtermc|xterm terminal emulator (color),
|
||||
# color stuff, I also have a status line defined as the window manager
|
||||
# title bar. [I have translated it to terminfo -- ESR]
|
||||
xterm-pcolor|xterm with color used for highlights and status line,
|
||||
wsl#40,
|
||||
bold=\E[1;43m, rev=\E[7;34m,
|
||||
sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1;43%;%?%p2%t;4;42%;%?%p1%t;7;31%;%?%p3%t;7;34%;%?%p4%t;5%;%?%p7%t;8%;m,
|
||||
smso=\E[7;31m, smul=\E[4;42m, use=xterm+sl, use=xterm-r6,
|
||||
@ -5242,18 +5216,18 @@ screen3|older VT 100/ANSI X3.64 virtual terminal,
|
||||
# sequences for setting the window-title. So you must use tsl and fsl in
|
||||
# pairs, since the latter ends the string that is loaded to the window-title.
|
||||
ncsa-m|ncsa-vt220-8|NCSA Telnet 2.6 for Macintosh in vt220-8 mode,
|
||||
am, hs, km, mir, msgr, xenl,
|
||||
am, km, mir, msgr, xenl,
|
||||
acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
|
||||
bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
|
||||
clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
|
||||
csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
|
||||
cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
|
||||
cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
|
||||
dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
|
||||
dsl=\E]0;\007, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0,
|
||||
flash=\E[?5h\E[?5l, fsl=^G, home=\E[H, ht=^I, hts=\EH,
|
||||
ich=\E[%p1%d@, if=/usr/share/tabset/vt100,
|
||||
il=\E[%p1%dL, il1=\E[L, ind=\n$<150*>,
|
||||
dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
|
||||
el=\E[K, el1=\E[1K, enacs=\E)0, flash=\E[?5h\E[?5l,
|
||||
home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
|
||||
if=/usr/share/tabset/vt100, il=\E[%p1%dL, il1=\E[L,
|
||||
ind=\n$<150*>,
|
||||
is2=\E7\E[r\E[m\E[?7h\E[?1;4;6l\E[4l\E8\E>, kbs=^H,
|
||||
kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
|
||||
kdch1=\E[4~, kend=\E[5~, kf1=\E[17~, kf10=\E[28~,
|
||||
@ -5267,8 +5241,8 @@ ncsa-m|ncsa-vt220-8|NCSA Telnet 2.6 for Macintosh in vt220-8 mode,
|
||||
rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;4;6l\E[4l\E>, sc=\E7,
|
||||
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;,
|
||||
sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smcup=\E7,
|
||||
smir=\E[4h, smso=\E[7m, smul=\E[4m, tbc=\E[3g, tsl=\E]0;,
|
||||
u8=\E[?62;1;6c, use=ansi+enq,
|
||||
smir=\E[4h, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
|
||||
u8=\E[?62;1;6c, use=xterm+sl, use=ansi+enq,
|
||||
ncsa|NCSA Telnet 2.7 for Macintosh in vt220-8 mode,
|
||||
use=ncsa-m, use=klone+color,
|
||||
ncsa-ns|NCSA Telnet 2.7 for Macintosh in vt220-8 mode,
|
||||
@ -5399,6 +5373,10 @@ sun-cgsix|sun-ss5|Sun SparcStation 5 console,
|
||||
sun|sun1|sun2|Sun Microsystems Inc. workstation console,
|
||||
use=sun-il,
|
||||
|
||||
sun+sl|Sun Workstation window status line,
|
||||
hs,
|
||||
dsl=\E]l\E\\, fsl=\E\\, tsl=\E]l,
|
||||
|
||||
# From: <john@ucbrenoir> Tue Sep 24 13:14:44 1985
|
||||
sun-s|Sun Microsystems Workstation window with status line,
|
||||
hs,
|
||||
@ -17426,6 +17404,7 @@ nsterm+mac|AppKit Terminal.app v41+ basic capabilities w/MacRoman alternate-char
|
||||
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
|
||||
sgr0=\E[m\017, smacs=^N, use=nsterm+7,
|
||||
|
||||
# compare with xterm+sl-twm
|
||||
nsterm+s|AppKit Terminal.app v41+ status-line (window titlebar) support,
|
||||
hs,
|
||||
wsl#50,
|
||||
@ -22879,4 +22858,13 @@ v3220|LANPAR Vision II model 3220/3221/3222,
|
||||
# as building-blocks -TD
|
||||
# * add dec+sl building block, as example -TD
|
||||
#
|
||||
# 2012-04-28
|
||||
# * fix some inconsistencies between vt320/vt420, e.g., cnorm/civis -TD
|
||||
# * add eslok flag to dec+sl -TD
|
||||
# * dec+sl applies to vt320 and up -TD
|
||||
# * drop wsl width from xterm+sl -TD
|
||||
# * reuse xterm+sl in putty and nsca-m -TD
|
||||
# * add ansi+tabs to vt520 -TD
|
||||
# * add ansi+enq to vt220-vt520 -TD
|
||||
#
|
||||
######## SHANTIH! SHANTIH! SHANTIH!
|
||||
|
@ -50,7 +50,7 @@
|
||||
#include <ctype.h>
|
||||
#include <tic.h>
|
||||
|
||||
MODULE_ID("$Id: comp_scan.c,v 1.99 2012/04/01 20:37:08 tom Exp $")
|
||||
MODULE_ID("$Id: comp_scan.c,v 1.100 2012/04/29 00:20:51 tom Exp $")
|
||||
|
||||
/*
|
||||
* Maximum length of string capability we'll accept before raising an error.
|
||||
@ -530,7 +530,7 @@ _nc_get_token(bool silent)
|
||||
_nc_get_hash_table(FALSE))) {
|
||||
capability = TRUE;
|
||||
}
|
||||
*s = c0;
|
||||
*s = (char) c0;
|
||||
}
|
||||
}
|
||||
if (capability) {
|
||||
|
@ -47,7 +47,7 @@
|
||||
|
||||
#include <ctype.h>
|
||||
|
||||
MODULE_ID("$Id: lib_trace.c,v 1.80 2012/02/22 22:26:58 tom Exp $")
|
||||
MODULE_ID("$Id: lib_trace.c,v 1.81 2012/04/29 00:20:43 tom Exp $")
|
||||
|
||||
NCURSES_EXPORT_VAR(unsigned) _nc_tracing = 0; /* always define this */
|
||||
|
||||
@ -229,7 +229,7 @@ NCURSES_EXPORT(char)
|
||||
_nc_retrace_char(int code)
|
||||
{
|
||||
T((T_RETURN("%c"), code));
|
||||
return code;
|
||||
return (char) code;
|
||||
}
|
||||
|
||||
/* Trace 'int' return-values */
|
||||
|
91
progs/tic.c
91
progs/tic.c
@ -46,7 +46,7 @@
|
||||
#include <hashed_db.h>
|
||||
#include <transform.h>
|
||||
|
||||
MODULE_ID("$Id: tic.c,v 1.170 2012/04/21 19:59:53 tom Exp $")
|
||||
MODULE_ID("$Id: tic.c,v 1.176 2012/04/29 00:23:38 tom Exp $")
|
||||
|
||||
#define STDIN_NAME "<stdin>"
|
||||
|
||||
@ -1790,7 +1790,7 @@ static void
|
||||
show_where(unsigned level)
|
||||
{
|
||||
if (_nc_tracing >= DEBUG_LEVEL(level)) {
|
||||
char my_name[256];
|
||||
char my_name[MAX_NAME_SIZE];
|
||||
_nc_get_type(my_name);
|
||||
_tracef("\"%s\", line %d, '%s'",
|
||||
_nc_get_source(),
|
||||
@ -1802,6 +1802,55 @@ show_where(unsigned level)
|
||||
#define show_where(level) /* nothing */
|
||||
#endif
|
||||
|
||||
typedef struct {
|
||||
int keycode;
|
||||
const char *name;
|
||||
const char *value;
|
||||
} NAME_VALUE;
|
||||
|
||||
static NAME_VALUE *
|
||||
get_fkey_list(TERMTYPE *tp)
|
||||
{
|
||||
NAME_VALUE *result = typeMalloc(NAME_VALUE, NUM_STRINGS(tp) + 1);
|
||||
const struct tinfo_fkeys *all_fkeys = _nc_tinfo_fkeys;
|
||||
int used = 0;
|
||||
int j;
|
||||
|
||||
for (j = 0; all_fkeys[j].code; j++) {
|
||||
char *a = tp->Strings[all_fkeys[j].offset];
|
||||
if (VALID_STRING(a)) {
|
||||
result[used].keycode = (int) all_fkeys[j].code;
|
||||
result[used].name = strnames[all_fkeys[j].offset];
|
||||
result[used].value = a;
|
||||
++used;
|
||||
}
|
||||
}
|
||||
#if NCURSES_XNAMES
|
||||
for (j = STRCOUNT; j < NUM_STRINGS(tp); ++j) {
|
||||
const char *name = ExtStrname(tp, j, strnames);
|
||||
if (*name == 'k') {
|
||||
result[used].keycode = -1;
|
||||
result[used].name = name;
|
||||
result[used].value = tp->Strings[j];
|
||||
++used;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
result[used].keycode = 0;
|
||||
return result;
|
||||
}
|
||||
|
||||
static void
|
||||
show_fkey_name(NAME_VALUE * data)
|
||||
{
|
||||
if (data->keycode > 0) {
|
||||
fprintf(stderr, " %s", keyname(data->keycode));
|
||||
fprintf(stderr, " (capability \"%s\")", data->name);
|
||||
} else {
|
||||
fprintf(stderr, " capability \"%s\"", data->name);
|
||||
}
|
||||
}
|
||||
|
||||
/* other sanity-checks (things that we don't want in the normal
|
||||
* logic that reads a terminfo entry)
|
||||
*/
|
||||
@ -1810,7 +1859,6 @@ check_termtype(TERMTYPE *tp, bool literal)
|
||||
{
|
||||
bool conflict = FALSE;
|
||||
unsigned j, k;
|
||||
char fkeys[STRCOUNT];
|
||||
|
||||
/*
|
||||
* A terminal entry may contain more than one keycode assigned to
|
||||
@ -1818,41 +1866,44 @@ check_termtype(TERMTYPE *tp, bool literal)
|
||||
* return one (the last one assigned).
|
||||
*/
|
||||
if (!(_nc_syntax == SYN_TERMCAP && capdump)) {
|
||||
memset(fkeys, 0, sizeof(fkeys));
|
||||
for (j = 0; _nc_tinfo_fkeys[j].code; j++) {
|
||||
char *a = tp->Strings[_nc_tinfo_fkeys[j].offset];
|
||||
char *check = calloc((size_t) (NUM_STRINGS(tp) + 1), sizeof(char));
|
||||
NAME_VALUE *given = get_fkey_list(tp);
|
||||
|
||||
for (j = 0; given[j].keycode; ++j) {
|
||||
const char *a = given[j].value;
|
||||
bool first = TRUE;
|
||||
if (!VALID_STRING(a))
|
||||
continue;
|
||||
for (k = j + 1; _nc_tinfo_fkeys[k].code; k++) {
|
||||
char *b = tp->Strings[_nc_tinfo_fkeys[k].offset];
|
||||
if (!VALID_STRING(b)
|
||||
|| fkeys[k])
|
||||
|
||||
for (k = j + 1; given[k].keycode; k++) {
|
||||
const char *b = given[k].value;
|
||||
if (check[k])
|
||||
continue;
|
||||
if (!_nc_capcmp(a, b)) {
|
||||
fkeys[j] = 1;
|
||||
fkeys[k] = 1;
|
||||
check[j] = 1;
|
||||
check[k] = 1;
|
||||
if (first) {
|
||||
if (!conflict) {
|
||||
_nc_warning("Conflicting key definitions (using the last)");
|
||||
conflict = TRUE;
|
||||
}
|
||||
fprintf(stderr, "... %s is the same as %s",
|
||||
keyname((int) _nc_tinfo_fkeys[j].code),
|
||||
keyname((int) _nc_tinfo_fkeys[k].code));
|
||||
fprintf(stderr, "...");
|
||||
show_fkey_name(given + j);
|
||||
fprintf(stderr, " is the same as");
|
||||
show_fkey_name(given + k);
|
||||
first = FALSE;
|
||||
} else {
|
||||
fprintf(stderr, ", %s",
|
||||
keyname((int) _nc_tinfo_fkeys[k].code));
|
||||
fprintf(stderr, ", ");
|
||||
show_fkey_name(given + k);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!first)
|
||||
fprintf(stderr, "\n");
|
||||
}
|
||||
free(given);
|
||||
free(check);
|
||||
}
|
||||
|
||||
for (j = 0; j < NUM_STRINGS(tp); j++) {
|
||||
for_each_string(j, tp) {
|
||||
char *a = tp->Strings[j];
|
||||
if (VALID_STRING(a))
|
||||
check_params(tp, ExtStrname(tp, (int) j, strnames), a);
|
||||
|
Loading…
Reference in New Issue
Block a user