From: Thomas E. Dickey Date: Sun, 27 Nov 2016 02:38:26 +0000 (+0000) Subject: ncurses 6.0 - patch 20161126 X-Git-Tag: v6.1~61 X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=commitdiff_plain;h=ee27d238caeccd1ed781a92957afbdb890e1e88f ncurses 6.0 - patch 20161126 + modify linux-16color to not mask dim, standout or reverse with the ncv capability -TD + add 0.1sec mandatory delay to flash capabilities using the VT100 reverse-video control -TD + omit selection of ISO-8859-1 for G0 in enacs capability from linux2.6 entry, to avoid conflict with the user-defined mapping. The reset feature will use ISO-8859-1 in any case (Mikulas Patocka). + improve check in tic for delays by also warning about beep/flash when a delay is not embedded, or if those use the VT100 reverse video escape without using a delay. + minor fix for syntax-check of delays from 20161119 changes. + modify trace() to avoid overwriting existing file (report by Maor Shwartz). --- diff --git a/NEWS b/NEWS index f55a70d4..3bfbfdee 100644 --- a/NEWS +++ b/NEWS @@ -25,7 +25,7 @@ -- sale, use or other dealings in this Software without prior written -- -- authorization. -- ------------------------------------------------------------------------------- --- $Id: NEWS,v 1.2698 2016/11/20 00:36:25 tom Exp $ +-- $Id: NEWS,v 1.2703 2016/11/27 01:41:10 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. +20161126 + + modify linux-16color to not mask dim, standout or reverse with the + ncv capability -TD + + add 0.1sec mandatory delay to flash capabilities using the VT100 + reverse-video control -TD + + omit selection of ISO-8859-1 for G0 in enacs capability from linux2.6 + entry, to avoid conflict with the user-defined mapping. The reset + feature will use ISO-8859-1 in any case (Mikulas Patocka). + + improve check in tic for delays by also warning about beep/flash + when a delay is not embedded, or if those use the VT100 reverse + video escape without using a delay. + + minor fix for syntax-check of delays from 20161119 changes. + + modify trace() to avoid overwriting existing file (report by Maor + Shwartz). + 20161119 + add check in tic for some syntax errors of delays, as well as use of proportional delays for non-line capabilities. diff --git a/VERSION b/VERSION index b2a81045..de15c5bb 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -5:0:9 6.0 20161119 +5:0:9 6.0 20161126 diff --git a/dist.mk b/dist.mk index 5bcb13aa..d4c654c3 100644 --- a/dist.mk +++ b/dist.mk @@ -25,7 +25,7 @@ # use or other dealings in this Software without prior written # # authorization. # ############################################################################## -# $Id: dist.mk,v 1.1133 2016/11/19 18:20:25 tom Exp $ +# $Id: dist.mk,v 1.1134 2016/11/21 22:34:14 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 = 6 NCURSES_MINOR = 0 -NCURSES_PATCH = 20161119 +NCURSES_PATCH = 20161126 # We don't append the patch to the version, since this only applies to releases VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR) diff --git a/misc/terminfo.src b/misc/terminfo.src index 5e03dac5..59f6ab05 100644 --- a/misc/terminfo.src +++ b/misc/terminfo.src @@ -6,8 +6,8 @@ # Report bugs and new terminal descriptions to # bug-ncurses@gnu.org # -# $Revision: 1.573 $ -# $Date: 2016/11/13 00:17:12 $ +# $Revision: 1.578 $ +# $Date: 2016/11/27 01:39:42 $ # # 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 @@ -1753,7 +1753,7 @@ linux2.2|linux 2.2.x console, linux2.6|linux 2.6.x console, acsc=++\,\,--..00__``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwx xyyzz{{||}c~~, - enacs=\E(B\E)0, rmacs=^O, + enacs=\E)0, rmacs=^O, sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5 %t;2%;%?%p6%t;1%;m%?%p9%t\016%e\017%;, sgr0=\E[m\017, smacs=^N, use=linux2.2, @@ -1830,7 +1830,7 @@ kon|kon2|jfbterm|Kanji ON Linux console, # you use a 512-character console font. This uses bold for bright # foreground colors and blink for bright background colors. linux-16color|linux console with 16 colors, - colors#16, ncv#63, pairs#256, + colors#16, ncv#42, pairs#256, setab=\E[4%p1%{8}%m%d%?%p1%{7}%>%t;5%e;25%;m, setaf=\E[3%p1%{8}%m%d%?%p1%{7}%>%t;1%e;21%;m, use=linux, @@ -2225,7 +2225,7 @@ scoansi|SCO Extended ANSI standard crt, # # F1-F12 generate different codes when shift or control modifiers are used. # For example: -# F1 \E[001q +# F1 \E[001q # shift F1 \E[013q # control-F1 \E[025q # @@ -2301,8 +2301,8 @@ iris-color|xwsh|IRIX ANSI with color, # identifies as vt200 with selective erase, but does not implement DECSCA # no vt52 mode # also lacks these: -# ESC # 8 DEC Screen Alignment Test (DECALN). -# CSI ? 5 h Reverse Video (DECSCNM). +# ESC # 8 DEC Screen Alignment Test (DECALN). +# CSI ? 5 h Reverse Video (DECSCNM). # pccon+keys|OpenBSD PC keyboard keys, kbs=\177, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, @@ -2545,14 +2545,14 @@ wsvt25m|NetBSD wscons in 25 line DEC VT220 mode with Meta, # Attributes do not work with color # Failed: vpa/hpa # Failed: kf1-kf4, kf13-kf48, khome, kend -# (effectively xterm-r6 for function-keys) +# (effectively xterm-r6 for function-keys) # None of the function or cursor key-modifiers are encoded. # Console hangs in the smm/rmm test if TERM=xterm, does not show test # # Testing with vttest: # ------------------- # Identifies as vt220 with selective erase -# (however, selective erase refers to DECSCA, SPA) +# (however, selective erase refers to DECSCA, SPA) # Does not implement vt52 # Uses spaces to simulate double-size characters # Does not support 8-bit controls @@ -2562,7 +2562,7 @@ wsvt25m|NetBSD wscons in 25 line DEC VT220 mode with Meta, # Does not support DECSCA # Does not support any of the ISO-6429 cursor-movement # Does not support any of the ISO-6429 miscellaneous tests -# (SL/SR also leave unexpected char on screen too) +# (SL/SR also leave unexpected char on screen too) # Background does not change in menu 11.6.9 (SGR 22-27) # None of the xterm special features tests work netbsd6|NetBSD wscons in 25 line DEC VT100 mode, @@ -3083,7 +3083,7 @@ vt100nam|vt100-nam|vt100 no automargins, am@, xenl@, rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h, use=vt100-am, vt100-vb|dec vt100 (w/advanced video) & no beep, - bel@, flash=\E[?5h\E[?5l, use=vt100, + bel@, flash=\E[?5h$<100/>\E[?5l, use=vt100, # Ordinary vt100 in 132 column ("wide") mode. vt100-w|vt100-w-am|dec vt100 132 cols (w/advanced video), @@ -3692,9 +3692,9 @@ putty|PuTTY terminal emulator, %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, 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, + el1=\E[1K, enacs=\E(B\E)0, flash=\E[?5h$<100/>\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, @@ -5277,9 +5277,9 @@ rxvt-basic|rxvt terminal base (X Window System), 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, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, - enacs=\E(B\E)0, flash=\E[?5h\E[?5l, home=\E[H, ht=^I, - hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, - ind=^J, is1=\E[?47l\E=\E[?1l, + enacs=\E(B\E)0, flash=\E[?5h$<100/>\E[?5l, home=\E[H, + ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, + il1=\E[L, ind=^J, is1=\E[?47l\E=\E[?1l, is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l, kbs=^H, kcbt=\E[Z, kmous=\E[M, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=\E>, rmso=\E[27m, @@ -5838,7 +5838,7 @@ st|stterm| simpleterm 0.4.1, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, cvvis=\E[?25h, 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, - enacs=\E)0, flash=\E[?5h\E[?5l, fsl=^G, home=\E[H, + enacs=\E)0, flash=\E[?5h$<100/>\E[?5l, fsl=^G, home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS, is2=\E[4l\E>\E[?1034l, kDC=\E[3;2~, kEND=\E[1;2F, @@ -6463,7 +6463,7 @@ tmux-256color|tmux with 256 colors, # # Other special mappings: # Apple VT220 -# HELP Find +# HELP Find # HOME Insert here # PAGEUP Remove # DEL Select @@ -6485,10 +6485,10 @@ ncsa-m|ncsa-vt220-8|NCSA Telnet 2.6 for Macintosh in vt220-8 mode, 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, 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*>, + el=\E[K, el1=\E[1K, enacs=\E)0, + flash=\E[?5h$<100/>\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~, @@ -6999,15 +6999,15 @@ ansi-emx|ANSI.SYS color, bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l, clear=\E[1;33;44m\E[H\E[J, cnorm=\E[?25h, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, - dch=\E[%p1%dp, ed=\E[J, el=\E[K, flash=\E[?5h\E[?5l, - home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, ind=^J, - kb2=\E[G, kbs=^H, kf0=\0D, kll=\0O, kspd=^Z, nel=^M^J, - rev=\E[5;37;41m, rmir=\E[4l, rmpch=\E[10m, - rmso=\E[0;44m\E[1;33m, rmul=\E[0;44m\E[1;33m, rs1=\Ec, - setab=\E[4%p1%dm, setaf=\E[3%p1%dm, - sgr0=\E[0m\E[1;33;44m, smir=\E[4h, smpch=\E[11m, - smso=\E[0;31;47m, smul=\E[1;31;44m, tbc=\E[3g, u8=\E[?6c, - u9=\E[c, use=emx-base, + dch=\E[%p1%dp, ed=\E[J, el=\E[K, + flash=\E[?5h$<100/>\E[?5l, home=\E[H, ht=^I, hts=\EH, + ich=\E[%p1%d@, ich1=\E[@, ind=^J, kb2=\E[G, kbs=^H, kf0=\0D, + kll=\0O, kspd=^Z, nel=^M^J, rev=\E[5;37;41m, rmir=\E[4l, + rmpch=\E[10m, rmso=\E[0;44m\E[1;33m, + rmul=\E[0;44m\E[1;33m, rs1=\Ec, setab=\E[4%p1%dm, + setaf=\E[3%p1%dm, sgr0=\E[0m\E[1;33;44m, smir=\E[4h, + smpch=\E[11m, smso=\E[0;31;47m, smul=\E[1;31;44m, + tbc=\E[3g, u8=\E[?6c, u9=\E[c, use=emx-base, # nice colors for Emacs (white on blue, mode line white on cyan) ansi-color-2-emx|ANSI.SYS color 2, clear=\E[0;37;44m\E[H\E[J, rev=\E[1;37;46m, @@ -7728,15 +7728,15 @@ hp2621-nt|hp 2621 w/no tabs, # NOT set up by the initialization strings. # # Port Configuration -# RecvPace=Xon/Xoff -# XmitPace=Xon/Xoff -# StripNulDel=Yes +# RecvPace=Xon/Xoff +# XmitPace=Xon/Xoff +# StripNulDel=Yes # # Terminal Configuration -# InhHndShk=Yes -# InhDC2=Yes -# XmitFnctn(A)=No -# InhEolWrp=No +# InhHndShk=Yes +# InhDC2=Yes +# XmitFnctn(A)=No +# InhEolWrp=No # # Note: the 2624 DOES have a true , believe it or not! # @@ -8031,10 +8031,10 @@ hp2397a|hp2397|hewlett packard 2397A color terminal, # PC Character Set YES # Twenty-Five Line Mode YES # XON/XOFF @128 or 64 (sc) -# Keycode Mode NO or YES (sc) +# Keycode Mode NO or YES (sc) # Backspace Key BS or BS/DEL # -# sets pcterm; autowrap; 25 lines; pc char set; prog DEL key; +# sets pcterm; autowrap; 25 lines; pc char set; prog DEL key; # \E\\? does not turn off keycode mode # sets alternate start/stop; keycode on hpansi|hp700|hewlett packard 700/44 in HP-PCterm mode, @@ -8082,7 +8082,7 @@ hpsub|hp terminals -- capability subset, # but has no padding added, so may allow runover in some terminals at high # baud rates. Will not work for hp2640a or hp2640b terminals, hp98x6 and # hp98x5 terminal emulators or hp98x6 consoles. -# Adds xy-cursor addressing, vertical cursor addressing, home, +# Adds xy-cursor addressing, vertical cursor addressing, home, # last line, and underline capabilities. # # (hpex: removed memory-lock capabilities ":ml=\El:mu=\Em:", @@ -9080,7 +9080,7 @@ tvi912cc|tvi912 at cowell college, # 10: 110 # # S2 UART/Terminal options: -# Up Down +# Up Down # 1: Not used Not allowed # 2: Alternate character set Standard character set # 3: Full duplex Half duplex @@ -9091,10 +9091,10 @@ tvi912cc|tvi912 at cowell college, # 8: Not used Not allowed on Rev E or lower # 9: Even parity Odd parity # 10: Steady cursor Blinking cursor -# (On Rev E or lower, use W25 instead of switch 10.) +# (On Rev E or lower, use W25 instead of switch 10.) # # S5 UART/Terminal options: -# Open Closed +# Open Closed # 1: P3-6 Not connected DSR received on P3-6 # 2: P3-8 Not connected DCD received on P3-8 # @@ -9104,8 +9104,8 @@ tvi912cc|tvi912 at cowell college, # 3 Closed, 4 Closed: Not allowed # # 5 Closed: HDX printer (hardware control) Rev. K with extension port off, -# all data transmitted out of the modem port (P3) will also be -# transmitted out of the printer port (P4). +# all data transmitted out of the modem port (P3) will also be +# transmitted out of the printer port (P4). # # 6 Open, 7 Open: Not allowed # 6 Open, 7 Closed: 20ma current loop input @@ -9117,12 +9117,12 @@ tvi912cc|tvi912 at cowell college, # is switched on). # # S4/W31: Enables automatic LF upon receipt of CR from -# remote or keyboard. +# remote or keyboard. # S4/W32: Enables transmission of EOT at the end of Send. If not -# installed, a carriage return is sent. +# installed, a carriage return is sent. # S4/W33: Disables automatic carriage return in column 80. # S4/W34: Selects Page Print Mode as initial condition. If not -# installed, Extension Mode is selected. +# installed, Extension Mode is selected. # # NON-STANDARD CAPABILITIES # @@ -9446,10 +9446,10 @@ tvi924|televideo tvi924, # Position Up Dn Description # -------------------------------------------- # 1 X Local edit -# X Duplex edit (transmit editing keys) +# X Duplex edit (transmit editing keys) # -------------------------------------------- # 2 X 912/920 emulation -# X 925 +# X 925 # -------------------------------------------- # 3 X # 4 X No parity @@ -9472,7 +9472,7 @@ tvi924|televideo tvi924, # 5 X # -------------------------------------------- # 6 X White on black display -# X Black on white display +# X Black on white display # -------------------------------------------- # 7 X Half Duplex # 8 X @@ -9484,17 +9484,17 @@ tvi924|televideo tvi924, # 8 X # -------------------------------------------- # 9 X 50 Hz -# X 60 Hz +# X 60 Hz # -------------------------------------------- # 10 X CR/LF (Auto LF) -# X CR only +# X CR only # # S3 (internal switch) settings: # # Position Up Dn Description # -------------------------------------------- # 1 X Keyclick off -# X Keyclick on +# X Keyclick on # -------------------------------------------- # 2 X English # 3 X @@ -9521,19 +9521,19 @@ tvi924|televideo tvi924, # 5 X # -------------------------------------------- # 6 X Screen blanking timer (ON) -# X Screen blanking timer (OFF) +# X Screen blanking timer (OFF) # -------------------------------------------- # 7 X Page attributes -# X Line attributes +# X Line attributes # -------------------------------------------- # 8 X DCD disconnected -# X DCD connected +# X DCD connected # -------------------------------------------- # 9 X DSR disconnected -# X DSR connected +# X DSR connected # -------------------------------------------- # 10 X DTR Disconnected -# X DTR connected +# X DTR connected # -------------------------------------------- # # (tvi925: BSD has . I got and from there -- esr) @@ -11427,7 +11427,8 @@ vt320-k3|MS-Kermit 3.00's vt320 emulation, 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$~, ech=\E[%p1%dX, ed=\E[J, el=\E[K, - flash=\E[?5h\E[?5l\E[?5h\E[?5l\E[?5h\E[?5l, + flash=\E[?5h$<100/>\E[?5l\E[?5h$<100/>\E[?5l\E[?5h$<100/>\E[ + ?5l, fsl=\E[0$}, home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=^J, is2=\E>\E F\E[?1h\E[?7h\E[r\E[2$~, kbs=^H, kcub1=\EOD, @@ -11456,8 +11457,9 @@ vt320-k311|dec vt320 series as defined by kermit 3.11, 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[2$~\r\E[1$}\E[K\E[$}, ed=\E[J, el=\E[K, - flash=\E[?5h\E[?5l, fsl=\E[$}, home=\E[H, ht=^I, hts=\EH, - ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L$<3/>, ind=\ED, + flash=\E[?5h$<100/>\E[?5l, fsl=\E[$}, home=\E[H, ht=^I, + hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L$<3/>, + ind=\ED, is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H, kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf6=\E[17~, @@ -11509,7 +11511,7 @@ vt320-k311|dec vt320 series as defined by kermit 3.11, # (^V^L and ^V^M set the current attribute as a side-effect.) # ^V ^Y [...] -- repeat pattern. specifies the number of bytes # in the pattern, the number of times the pattern -# should be repeated. If either value is 0, no-op. +# should be repeated. If either value is 0, no-op. # The pattern can contain Avatar console codes, # including other ^V ^Y patterns. # level 1: @@ -11662,8 +11664,8 @@ att2350|AT&T 2350 Video Information Terminal 80 column mode, # Seems upward compatible with vt100, plus ins/del line/char. # On sgr, the protection parameter is ignored. # No check is made to make sure that only 3 parameters are output. -# standout= reverse + half-intensity = 3 | 5. -# bold= reverse + underline = 2 | 3. +# standout= reverse + half-intensity = 3 | 5. +# bold= reverse + underline = 2 | 3. # note that half-bright blinking doesn't look different from normal blinking. # NOTE:you must program the function keys first, label second! # (att4410: a BSD entry has been seen with the following capabilities: @@ -11921,14 +11923,14 @@ att4420|tty4420|teletype 4420, # asynchronous keyboard-display terminal. It supports # the vi editor. The terminal must be set up as follows, # -# HIGHLIGHT DEFINITION 3-TONE -# DISPLAY FUNCTION GROUP III +# HIGHLIGHT DEFINITION 3-TONE +# DISPLAY FUNCTION GROUP III # # The second entry below provides limited (a la adm3a) # operation under GROUP II. # # This must be used with DISPLAY FUNCTION GROUP I or III -# and HIGHLIGHT DEFINITION 3-TONE +# and HIGHLIGHT DEFINITION 3-TONE # The terminal has either bold or blink, depending on options # # (att4424: commented out =\E[1m, we don't need bright locked on -- esr) @@ -12506,7 +12508,7 @@ att630-24|5630-24|5630DMD-24|630MTG-24|AT&T 630 windowing terminal 24 lines, # # Here is what's going onm in the init string: # ESC [ 50;4| set 700 native mode (really is 605) -# x ESC [ 56;ps| set lines to 24: ps=0; 40: ps=1 (plus status line) +# x ESC [ 56;ps| set lines to 24: ps=0; 40: ps=1 (plus status line) # ESC [ 53;0| set GenFlow to Xon/Xoff # ESC [ 8 ;0| set CR on NL # x ESC [ ? 3 l/h set workspace: 80 col(l); 132 col(h) @@ -13790,9 +13792,9 @@ visa50|geveke visa 50 terminal in ansi 80 character mode, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dX, dch1=\E[X, dim=\E[2m, dl=\E[%p1%dM, - dl1=\E[M, ed=\E[J, el=\E[K, flash=\E[?5h\E[?5l, home=\E[H, - hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@, ich1=\E[@, - il=\E[%p1%dL, il1=\E[L, ind=^J, invis=\E[8m, + dl1=\E[M, ed=\E[J, el=\E[K, flash=\E[?5h$<100/>\E[?5l, + home=\E[H, hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@, + ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, invis=\E[8m, is2=\E0;2m\E[1;25r\E[25;1H\E[?3l\E[?7h\E[?8h, ka1=\E[f, ka3=\EOQ, kb2=\EOP, kbs=^H, kc1=\EOR, kc3=\EOS, kcub1=\E[D, kcud1=\E[A, kcuf1=\E[C, kcuu1=\E[A, kdch1=\177, @@ -13954,7 +13956,7 @@ oc100|oconcept|c100-1p|old 1 page concept 100, # From: Walter Skorski , 16-oct-1996. # Lots of notes, originally inline, but ncurses doesn't grok that. # -# am: not available in power on mode, but turned on with \E[=107;207h in +# am: not available in power on mode, but turned on with \E[=107;207h in # is2=. Also, \E=124l in is2= could have been used to prevent needing # to specify xenl:, but that would have rendered the last space on the # last line useless. @@ -14143,7 +14145,7 @@ oc100|oconcept|c100-1p|old 1 page concept 100, # %p1%{30}%> ((key; 30) >; # %p1%{54}%< (key; 54) < # %A ) AND -# %O ) OR +# %O ) OR # [that is, "IF key < 24 OR (key > 30 AND key < 54)",] # %t\E[ THEN OUTPUT \E[ # %p1%d OUTPUT (key) as decimal @@ -15171,34 +15173,34 @@ dm3045|datamedia 3045a, use=dm3025, # Datamedia DT80 soft switches: # 1 0=Jump 1=Smooth -# Autorepeat 0=off 1=on -# Screen 0=Dark 1=light -# Cursor 0=u/l 1=block +# Autorepeat 0=off 1=on +# Screen 0=Dark 1=light +# Cursor 0=u/l 1=block # # 2 Margin Bell 0=off 1=on -# Keyclick 0=off 1=on -# Ansi/VT52 0=VT52 1=Ansi -# Xon/Xoff 0=Off 1=On +# Keyclick 0=off 1=on +# Ansi/VT52 0=VT52 1=Ansi +# Xon/Xoff 0=Off 1=On # # 3 Shift3 0=Hash 1=UK Pound -# Wrap 0=Off 1=On -# Newline 0=Off 1=On -# Interlace 0=Off 1=On +# Wrap 0=Off 1=On +# Newline 0=Off 1=On +# Interlace 0=Off 1=On # # 4 Parity 0=Odd 1=Even -# Parity 0=Off 1=On -# Bits/Char 0=7 1=8 -# Power 0=60Hz 1=50Hz +# Parity 0=Off 1=On +# Bits/Char 0=7 1=8 +# Power 0=60Hz 1=50Hz # # 5 Line Interface 0=EIA 1=Loop -# Aux Interface 0=EIA 1=Loop -# Local Copy 0=Off 1=On -# Spare +# Aux Interface 0=EIA 1=Loop +# Local Copy 0=Off 1=On +# Spare # # 6 Aux Parity 0=Odd 1=Even -# Aux Parity 0=Off 1=On -# Aux Bits/Char 0=7 1=8 -# CRT Saver 0=Off 1=On +# Aux Parity 0=Off 1=On +# Aux Bits/Char 0=7 1=8 +# CRT Saver 0=Off 1=On # dm80/1 is a vt100 lookalike, but it doesn't seem to need any padding. dm80|dmdt80|dt80|datamedia dt80/1, clear=\E[2J\E[H, cud1=^J, cuf1=\E[C, @@ -17343,7 +17345,7 @@ NCR260VT300WPP|ncr260vt300wpp|NCR 2900_260 vt300 wide mode pc+ kybd, # The capablitiy 'op' sets colors to green on black (default combination). # # NOTE: The NCR Unix System Administrator's Shell will not function properly -# if the 'pairs' capability is defined. Un-Comment the 'pairs' +# if the 'pairs' capability is defined. Un-Comment the 'pairs' # capability and recompile if you wish to have it included. # ncr260wy325pp|NCR 2900_260 wyse 325, @@ -17405,7 +17407,7 @@ ncr260wy325wpp|NCR 2900_260 wyse 325 wide mode, # are numbered 0 through 15. # # NOTE: The NCR Unix System Administrator's Shell does not function properly -# with the 'pairs' capability defined as below. If you wish to +# with the 'pairs' capability defined as below. If you wish to # have it included, Un-comment it and recompile (using 'tic'). # ncr260wy350pp|NCR 2900_260 wyse 350, @@ -17826,7 +17828,7 @@ pe1251|pe6300|pe6312|perkin elmer 1251, kf0=\ERA, kf1=\ERB, kf10=\ERK, kf2=\ERC, kf3=\ERD, kf4=\ERE, kf5=\ERF, kf6=\ERG, kf7=\ERH, kf8=\ERI, kf9=\ERJ, tbc=\E3, # (pe7000m: this had -# rmul=\E!\0, smul=\E!\040, +# rmul=\E!\0, smul=\E!\040, # which is probably wrong, it collides with kf0 pe7000m|perkin elmer 7000 series monochrome monitor, am, @@ -19009,15 +19011,15 @@ morphos, ri=\215, rin@, use=amiga-h, # Commodore B-128 microcomputer from Doug Tyrol -# I'm trying to write a termcap for a commodore b-128, and I'm +# I'm trying to write a termcap for a commodore b-128, and I'm # having a little trouble. I've had to map most of my control characters # to something that unix will accept (my delete-char is a ctrl-t, etc), # and create some functions (like cm), but thats life. -# The problem is with the arrow keys - right, and up work fine, but +# The problem is with the arrow keys - right, and up work fine, but # left deletes the previous character and down I just can't figure out. # Jove knows what I want, but I don't know what it's sending to me (it # isn't thats bound to next-line in jove). -# Anybody got any ideas? Here's my termcap. +# Anybody got any ideas? Here's my termcap. # DAG -- I changed his "^n" entries to "\n"; see if that works. # commodore|b-128|Commodore B-128 micro, @@ -19537,8 +19539,8 @@ linux-m1|Linux Minitel 1 "like" Couleurs, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)U, - flash=\E[?5h\E[?5l, home=\E[H, hpa=\E[%i%p1%d`, ht=^I, - hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J, + flash=\E[?5h$<100/>\E[?5l, home=\E[H, hpa=\E[%i%p1%d`, + ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J, initc=\E]P%p1%{15}%&%X%p2%{255}%&%02X%p3%{255}%&%02X%p4 %{255}%&%02X, is2=\E]R\E]P3FFFF80\E[?8c, ka1=\EOw, ka3=\EOy, kb2=\E[G, @@ -20273,34 +20275,34 @@ bq300-8-pc-w-rv|Questar 303 with PC keyboard full 8 bits reverse 132 columns, # CLR clear ^[` # KBU keyboard unlock (set) ^[[W # KBL keyboard lock (reset) ^[[X -# CM character mode (async.) ^[k +# CM character mode (async.) ^[k # NEP non echoplex mode (by host) ^[l -# EP echoplex mode (by host) ^[m +# EP echoplex mode (by host) ^[m # IM insert mode set ^[[I -# IM insert mode reset ^[[J -# RMS roll mode set ^[r -# RMR roll mode reset ^[q -# SM78 set mode vip7800 ^[[1q -# SD scroll up (72 lines) ^[[0s -# SD scroll down (72 lines) ^[[1s +# IM insert mode reset ^[[J +# RMS roll mode set ^[r +# RMR roll mode reset ^[q +# SM78 set mode vip7800 ^[[1q +# SD scroll up (72 lines) ^[[0s +# SD scroll down (72 lines) ^[[1s # RBM block mode reset ^[[E -# SLS status line set ^[w -# SLR status line reset ^[v -# SLL status line lock ^[O -# LGS Line-graphic mode set ^[G -# LGR Line-graphic mode reset ^[F +# SLS status line set ^[w +# SLR status line reset ^[v +# SLL status line lock ^[O +# LGS Line-graphic mode set ^[G +# LGR Line-graphic mode reset ^[F # TBC tab clear (at cursor pos.) ^[[g -# TBI tab initialize ^[[N +# TBI tab initialize ^[[N # TBS tab set (at cursor pos.) ^[p # PDS print data space ^[[0p -# PHD print host data ^[[3p +# PHD print host data ^[[3p # PDT print data terminator ^[[

u # SSP0 partition 0 set ^[[00u -# SSP1 partition n format 1 ^[[PnPnSTRINGu -# SSP2 partition n format 2 ^[[PnPnSTRINGu -# SSP3 partition n format 3 ^[[PnPnu +# SSP1 partition n format 1 ^[[PnPnSTRINGu +# SSP2 partition n format 2 ^[[PnPnSTRINGu +# SSP3 partition n format 3 ^[[PnPnu # ATR attribute (visual) # blink : ^[sB # dim : ^[sL @@ -20541,7 +20543,7 @@ dw2|decwriter|dw|decwriter II, bel=^G, cr=^M, cub1=^H, cud1=^J, ind=^J, kbs=^H, # \E(B Use U.S. character set (otherwise # => british pound !) # \E[20l Disable "linefeed newline" mode (else puts \r after \n,\f,\v) -# \E[w 10 char/in pitch +# \E[w 10 char/in pitch # \E[1;132 full width horizontal margins # \E[2g clear all tab stops # \E[z 6 lines/in @@ -21766,7 +21768,7 @@ pc6300plus|AT&T 6300 plus, # * cfont(1) in the PC 7300 documentation. # */ # -# struct altfdata /* structure for alt font data */ +# struct altfdata /* structure for alt font data */ # { # short altf_slot; /* memory slot number */ # char altf_name[FNSIZE]; /* font name (file name) */ @@ -22872,10 +22874,10 @@ v3220|LANPAR Vision II model 3220/3221/3222, # terminfo entry are followed with the corresponding capability in parens: # # CSI k disable (n=0) or enable (n=1) keyclick -# CSI 2h lock keyboard -# CSI 2i send screen as input -# CSI 2l unlock keyboard -# CSI 6m enable background color intensity +# CSI 2h lock keyboard +# CSI 2i send screen as input +# CSI 2l unlock keyboard +# CSI 6m enable background color intensity # CSI <0-2>c reserved # CSI <0-59>m select graphic rendition # CSI ;H (cup) cursor to line n and column m @@ -22902,10 +22904,10 @@ v3220|LANPAR Vision II model 3220/3221/3222, # CSI e cursor down n lines and in first column # CSI g (cbt) clear all tabs # CSI z make virtual terminal n active -# CSI ?7h (smam) turn automargin on -# CSI ?7l (rmam) turn automargin off -# CSI s save cursor position -# CSI u restore cursor position to saved value +# CSI ?7h (smam) turn automargin on +# CSI ?7l (rmam) turn automargin off +# CSI s save cursor position +# CSI u restore cursor position to saved value # CSI =A set overscan color # CSI =F set normal foreground color # CSI =G set normal background color @@ -22918,12 +22920,12 @@ v3220|LANPAR Vision II model 3220/3221/3222, # CSI =;C set cursor parameters # CSI =D enable/disable intensity of background color # CSI =E set/clear blink vs. bold background -# CSI 7 (sc) (sc) save cursor position -# CSI 8 (rc) (rc) restore cursor position to saved value +# CSI 7 (sc) (sc) save cursor position +# CSI 8 (rc) (rc) restore cursor position to saved value # CSI H (hts) (hts) set tab stop # CSI Q define function key string # (string must begin and end with delimiter char) -# CSI c (clear) clear screen +# CSI c (clear) clear screen # # The lack of any specification for attributes in SGR (among other things) # makes this a wretchedly weak standard. The table above is literally @@ -22949,22 +22951,22 @@ v3220|LANPAR Vision II model 3220/3221/3222, # CL key_char_left # CR key_char_right # CW key_change_window create_window -# EN key_end kend +# EN key_end kend # HM key_home khome # HP ?? -# LD key_delete_line kdl1 -# LF key_linefeed label_off +# LD key_delete_line kdl1 +# LF key_linefeed label_off # NU key_next_unlocked_cell -# PD key_page_down knp +# PD key_page_down knp # PL ?? # PN start_print mc5 # PR ?? # PS stop_print mc4 -# PU key_page_up kpp pulse +# PU key_page_up kpp pulse # RC key_recalc remove_clock # RF key_toggle_ref req_for_input -# RT key_return kent -# UP key_up_arrow kcuu1 parm_up_cursor +# RT key_return kent +# UP key_up_arrow kcuu1 parm_up_cursor # WL key_word_left # WR key_word_right # @@ -23534,7 +23536,7 @@ v3220|LANPAR Vision II model 3220/3221/3222, # 9.13.0 (Sun Mar 10 00:13:08 EST 1996): # * Another sweep through the Shuford archive looking for new info. # * Added dg100 alias to dg6053 based on a comp.terminals posting. -# * Added st52 from Per Persson. +# * Added st52 from Per Persson. # * Added eterm from the GNU Emacs 19.30 distribution. # * Freeze for 1.9.9. # 9.13.1 (Fri Mar 29 14:06:46 EST 1996): @@ -24855,4 +24857,13 @@ v3220|LANPAR Vision II model 3220/3221/3222, # + add linux-m1 minitel entries (patch by Alexandre Montaron). # + correct rs2 string for vt100-nam -TD # +# 2016-11-26 +# + modify linux-16color to not mask dim, standout or reverse with the +# ncv capability -TD +# + add 0.1sec mandatory delay to flash capabilities using the VT100 +# reverse-video control -TD +# + omit selection of ISO-8859-1 for G0 in enacs capability from linux2.6 +# entry, to avoid conflict with the user-defined mapping. The reset +# feature will use ISO-8859-1 in any case (Mikulas Patocka). +# ######## SHANTIH! SHANTIH! SHANTIH! diff --git a/ncurses/curses.priv.h b/ncurses/curses.priv.h index 18ac674b..d60e6ad9 100644 --- a/ncurses/curses.priv.h +++ b/ncurses/curses.priv.h @@ -34,7 +34,7 @@ ****************************************************************************/ /* - * $Id: curses.priv.h,v 1.553 2016/09/10 21:52:52 Rich.Coe Exp $ + * $Id: curses.priv.h,v 1.554 2016/11/21 23:28:54 tom Exp $ * * curses.priv.h * @@ -901,10 +901,10 @@ typedef struct { #endif #ifdef TRACE - bool init_trace; char trace_fname[PATH_MAX]; int trace_level; FILE *trace_fp; + int trace_fd; char *tracearg_buf; size_t tracearg_used; diff --git a/ncurses/tinfo/lib_data.c b/ncurses/tinfo/lib_data.c index 3a848b52..bd973e54 100644 --- a/ncurses/tinfo/lib_data.c +++ b/ncurses/tinfo/lib_data.c @@ -42,7 +42,7 @@ #include -MODULE_ID("$Id: lib_data.c,v 1.67 2016/09/04 00:15:54 tom Exp $") +MODULE_ID("$Id: lib_data.c,v 1.68 2016/11/21 23:29:14 tom Exp $") /* * OS/2's native linker complains if we don't initialize public data when @@ -168,10 +168,10 @@ NCURSES_EXPORT_VAR(NCURSES_GLOBALS) _nc_globals = { #endif #ifdef TRACE - FALSE, /* init_trace */ CHARS_0s, /* trace_fname */ 0, /* trace_level */ NULL, /* trace_fp */ + -1, /* trace_fd */ NULL, /* tracearg_buf */ 0, /* tracearg_used */ diff --git a/ncurses/trace/lib_trace.c b/ncurses/trace/lib_trace.c index cec01de5..140d8e54 100644 --- a/ncurses/trace/lib_trace.c +++ b/ncurses/trace/lib_trace.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. * + * Copyright (c) 1998-2013,2016 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 * @@ -47,7 +47,7 @@ #include -MODULE_ID("$Id: lib_trace.c,v 1.82 2013/07/06 19:42:09 tom Exp $") +MODULE_ID("$Id: lib_trace.c,v 1.84 2016/11/27 02:35:17 tom Exp $") NCURSES_EXPORT_VAR(unsigned) _nc_tracing = 0; /* always define this */ @@ -85,54 +85,59 @@ NCURSES_EXPORT_VAR(const char *) _nc_tputs_trace = ""; NCURSES_EXPORT_VAR(long) _nc_outchars = 0; #endif -#define TraceFP _nc_globals.trace_fp -#define TracePath _nc_globals.trace_fname -#define TraceLevel _nc_globals.trace_level +#define MyFP _nc_globals.trace_fp +#define MyFD _nc_globals.trace_fd +#define MyPath _nc_globals.trace_fname +#define MyLevel _nc_globals.trace_level +#define MyNested _nc_globals.nested_tracef NCURSES_EXPORT(void) trace(const unsigned int tracelevel) { - if ((TraceFP == 0) && tracelevel) { - const char *mode = _nc_globals.init_trace ? "ab" : "wb"; - - if (TracePath[0] == '\0') { - size_t size = sizeof(TracePath) - 12; - if (getcwd(TracePath, size) == 0) { - perror("curses: Can't get working directory"); - exit(EXIT_FAILURE); + if ((MyFP == 0) && tracelevel) { + if (MyFD >= 0) { + MyFP = fdopen(MyFD, "wb"); + } else { + if (MyPath[0] == '\0') { + size_t size = sizeof(MyPath) - 12; + if (getcwd(MyPath, size) == 0) { + perror("curses: Can't get working directory"); + exit(EXIT_FAILURE); + } + MyPath[size] = '\0'; + assert(strlen(MyPath) <= size); + _nc_STRCAT(MyPath, "/trace", sizeof(MyPath)); + if (_nc_is_dir_path(MyPath)) { + _nc_STRCAT(MyPath, ".log", sizeof(MyPath)); + } } - TracePath[size] = '\0'; - assert(strlen(TracePath) <= size); - _nc_STRCAT(TracePath, "/trace", sizeof(TracePath)); - if (_nc_is_dir_path(TracePath)) { - _nc_STRCAT(TracePath, ".log", sizeof(TracePath)); + if (_nc_access(MyPath, W_OK) < 0 + || (MyFD = open(MyPath, O_CREAT | O_EXCL | O_RDWR, 0600)) < 0 + || (MyFP = fdopen(MyFD, "wb")) == 0) { + ; /* EMPTY */ } } - - _nc_globals.init_trace = TRUE; _nc_tracing = tracelevel; - if (_nc_access(TracePath, W_OK) < 0 - || (TraceFP = fopen(TracePath, mode)) == 0) { - perror("curses: Can't open 'trace' file"); - exit(EXIT_FAILURE); - } /* Try to set line-buffered mode, or (failing that) unbuffered, * so that the trace-output gets flushed automatically at the * end of each line. This is useful in case the program dies. */ + if (MyFP != 0) { #if HAVE_SETVBUF /* ANSI */ - (void) setvbuf(TraceFP, (char *) 0, _IOLBF, (size_t) 0); + (void) setvbuf(MyFP, (char *) 0, _IOLBF, (size_t) 0); #elif HAVE_SETBUF /* POSIX */ - (void) setbuffer(TraceFP, (char *) 0); + (void) setbuffer(MyFP, (char *) 0); #endif + } _tracef("TRACING NCURSES version %s.%d (tracelevel=%#x)", NCURSES_VERSION, NCURSES_VERSION_PATCH, tracelevel); } else if (tracelevel == 0) { - if (TraceFP != 0) { - fclose(TraceFP); - TraceFP = 0; + if (MyFP != 0) { + MyFD = dup(MyFD); /* allow reopen of same file */ + fclose(MyFP); + MyFP = 0; } _nc_tracing = tracelevel; } else if (_nc_tracing != tracelevel) { @@ -155,12 +160,12 @@ _nc_va_tracef(const char *fmt, va_list ap) if (strlen(fmt) >= sizeof(Called) - 1) { if (!strncmp(fmt, Called, sizeof(Called) - 1)) { before = TRUE; - TraceLevel++; + MyLevel++; } else if (!strncmp(fmt, Return, sizeof(Return) - 1)) { after = TRUE; } if (before || after) { - if ((TraceLevel <= 1) + if ((MyLevel <= 1) || (doit & TRACE_ICALLS) != 0) doit &= (TRACE_CALLS | TRACE_CCALLS); else @@ -168,9 +173,7 @@ _nc_va_tracef(const char *fmt, va_list ap) } } - if (doit != 0) { - if (TraceFP == 0) - TraceFP = stderr; + if (doit != 0 && MyFP != 0) { #ifdef USE_PTHREADS /* * TRACE_ICALLS is "really" needed to show normal use with threaded @@ -185,23 +188,23 @@ _nc_va_tracef(const char *fmt, va_list ap) if ((pthread_self)) # endif #ifdef __MINGW32__ - fprintf(TraceFP, "%#lx:", (long) (intptr_t) pthread_self().p); + fprintf(MyFP, "%#lx:", (long) (intptr_t) pthread_self().p); #else - fprintf(TraceFP, "%#lx:", (long) (intptr_t) pthread_self()); + fprintf(MyFP, "%#lx:", (long) (intptr_t) pthread_self()); #endif #endif if (before || after) { int n; - for (n = 1; n < TraceLevel; n++) - fputs("+ ", TraceFP); + for (n = 1; n < MyLevel; n++) + fputs("+ ", MyFP); } - vfprintf(TraceFP, fmt, ap); - fputc('\n', TraceFP); - fflush(TraceFP); + vfprintf(MyFP, fmt, ap); + fputc('\n', MyFP); + fflush(MyFP); } - if (after && TraceLevel) - TraceLevel--; + if (after && MyLevel) + MyLevel--; errno = save_err; } @@ -310,13 +313,13 @@ _nc_use_tracef(unsigned mask) bool result = FALSE; _nc_lock_global(tst_tracef); - if (!_nc_globals.nested_tracef++) { + if (!MyNested++) { if ((result = (_nc_tracing & (mask))) != 0 && _nc_try_global(tracef) == 0) { /* we will call _nc_locked_tracef(), no nesting so far */ } else { /* we will not call _nc_locked_tracef() */ - _nc_globals.nested_tracef = 0; + MyNested = 0; } } else { /* we may call _nc_locked_tracef(), but with nested_tracef > 0 */ @@ -339,7 +342,7 @@ _nc_locked_tracef(const char *fmt,...) _nc_va_tracef(fmt, ap); va_end(ap); - if (--(_nc_globals.nested_tracef) == 0) { + if (--(MyNested) == 0) { _nc_unlock_global(tracef); } } diff --git a/package/debian-mingw/changelog b/package/debian-mingw/changelog index 68690de8..948672cd 100644 --- a/package/debian-mingw/changelog +++ b/package/debian-mingw/changelog @@ -1,8 +1,8 @@ -ncurses6 (6.0+20161119) unstable; urgency=low +ncurses6 (6.0+20161126) unstable; urgency=low * latest weekly patch - -- Thomas E. Dickey Sat, 19 Nov 2016 13:20:25 -0500 + -- Thomas E. Dickey Mon, 21 Nov 2016 17:34:14 -0500 ncurses6 (5.9-20131005) unstable; urgency=low diff --git a/package/debian-mingw64/changelog b/package/debian-mingw64/changelog index 68690de8..948672cd 100644 --- a/package/debian-mingw64/changelog +++ b/package/debian-mingw64/changelog @@ -1,8 +1,8 @@ -ncurses6 (6.0+20161119) unstable; urgency=low +ncurses6 (6.0+20161126) unstable; urgency=low * latest weekly patch - -- Thomas E. Dickey Sat, 19 Nov 2016 13:20:25 -0500 + -- Thomas E. Dickey Mon, 21 Nov 2016 17:34:14 -0500 ncurses6 (5.9-20131005) unstable; urgency=low diff --git a/package/debian/changelog b/package/debian/changelog index 8b8a5a64..ee8c9005 100644 --- a/package/debian/changelog +++ b/package/debian/changelog @@ -1,8 +1,8 @@ -ncurses6 (6.0+20161119) unstable; urgency=low +ncurses6 (6.0+20161126) unstable; urgency=low * latest weekly patch - -- Thomas E. Dickey Sat, 19 Nov 2016 13:20:25 -0500 + -- Thomas E. Dickey Mon, 21 Nov 2016 17:34:14 -0500 ncurses6 (5.9-20120608) unstable; urgency=low diff --git a/package/mingw-ncurses.nsi b/package/mingw-ncurses.nsi index d7352351..35863b27 100644 --- a/package/mingw-ncurses.nsi +++ b/package/mingw-ncurses.nsi @@ -1,4 +1,4 @@ -; $Id: mingw-ncurses.nsi,v 1.185 2016/11/19 18:20:25 tom Exp $ +; $Id: mingw-ncurses.nsi,v 1.186 2016/11/21 22:34:14 tom Exp $ ; TODO add examples ; TODO bump ABI to 6 @@ -10,7 +10,7 @@ !define VERSION_MAJOR "6" !define VERSION_MINOR "0" !define VERSION_YYYY "2016" -!define VERSION_MMDD "1119" +!define VERSION_MMDD "1126" !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD} !define MY_ABI "5" diff --git a/package/mingw-ncurses.spec b/package/mingw-ncurses.spec index 89c6bb1f..0d0a7cb0 100644 --- a/package/mingw-ncurses.spec +++ b/package/mingw-ncurses.spec @@ -3,7 +3,7 @@ Summary: shared libraries for terminal handling Name: mingw32-ncurses6 Version: 6.0 -Release: 20161119 +Release: 20161126 License: X11 Group: Development/Libraries Source: ncurses-%{version}-%{release}.tgz diff --git a/package/ncurses.spec b/package/ncurses.spec index f545574e..84af698e 100644 --- a/package/ncurses.spec +++ b/package/ncurses.spec @@ -1,7 +1,7 @@ Summary: shared libraries for terminal handling Name: ncurses6 Version: 6.0 -Release: 20161119 +Release: 20161126 License: X11 Group: Development/Libraries Source: ncurses-%{version}-%{release}.tgz diff --git a/progs/tic.c b/progs/tic.c index c315c276..4285d1a4 100644 --- a/progs/tic.c +++ b/progs/tic.c @@ -48,7 +48,7 @@ #include #include -MODULE_ID("$Id: tic.c,v 1.225 2016/11/20 00:34:58 tom Exp $") +MODULE_ID("$Id: tic.c,v 1.228 2016/11/26 22:01:41 tom Exp $") #define STDIN_NAME "" @@ -1172,6 +1172,19 @@ check_colors(TERMTYPE *tp) } } +static int +csi_length(const char *value) +{ + int result = 0; + + if (value[0] == '\033' && value[1] == '[') { + result = 2; + } else if (UChar(value[0]) == 0x9a) { + result = 1; + } + return result; +} + static char keypad_final(const char *string) { @@ -1214,7 +1227,6 @@ check_ansi_cursor(char *list[4]) { int j, k; int want; - size_t prefix = 0; size_t suffix; bool skip[4]; bool repeated = FALSE; @@ -1232,16 +1244,8 @@ check_ansi_cursor(char *list[4]) } if (!repeated) { char *up = list[1]; + size_t prefix = csi_length(up); - if (UChar(up[0]) == '\033') { - if (up[1] == '[') { - prefix = 2; - } else { - prefix = 1; - } - } else if (UChar(up[0]) == UChar('\233')) { - prefix = 1; - } if (prefix) { suffix = prefix; while (up[suffix] && isdigit(UChar(up[suffix]))) @@ -1813,20 +1817,48 @@ line_capability(const char *name) return result; } +/* + * Check for DEC VT100 private mode for reverse video. + */ +static const char * +skip_DECSCNM(const char *value, int *flag) +{ + *flag = -1; + if (value != 0) { + int skip = csi_length(value); + fprintf(stderr, "test %d:%s\n", skip, value); + if (skip > 0 && + value[skip++] == '?' && + value[skip++] == '5') { + if (value[skip] == 'h') { + *flag = 1; + } else if (value[skip] == 'l') { + *flag = 0; + } + value += skip + 1; + } + } + return value; +} + static void check_delays(const char *name, const char *value) { const char *p, *q; - const char *mark = 0; + const char *first = 0; + const char *last = 0; for (p = value; *p != '\0'; ++p) { if (p[0] == '$' && p[1] == '<') { const char *base = p + 2; + const char *mark = 0; bool maybe = TRUE; bool mixed = FALSE; int proportional = 0; int mandatory = 0; + first = p; + for (q = base; *q != '\0'; ++q) { if (*q == '>') { if (mark == 0) @@ -1846,6 +1878,7 @@ check_delays(const char *name, const char *value) mixed = TRUE; } } + last = *q ? (q + 1) : q; if (*q == '\0') { maybe = FALSE; /* just an isolated "$<" */ } else if (maybe) { @@ -1865,6 +1898,32 @@ check_delays(const char *name, const char *value) } } } + + if (!strcmp(name, "flash") || + !strcmp(name, "beep")) { + + if (first != 0) { + if (first == value || *last == 0) { + /* + * Delay is on one end or the other. + */ + _nc_warning("expected delay embedded within %s", name); + } + } else { + int flag; + + /* + * Check for missing delay when using VT100 reverse-video. + * A real VT100 might not need this, but terminal emulators do. + */ + if ((p = skip_DECSCNM(value, &flag)) != 0 && + flag > 0 && + (q = skip_DECSCNM(p, &flag)) != 0 && + flag == 0) { + _nc_warning("expected a delay in %s", name); + } + } + } } static char * @@ -2399,15 +2458,13 @@ is_sgr_string(char *value) bool result = FALSE; if (VALID_STRING(value)) { - if (value[0] == '\033' && value[1] == '[') { - result = TRUE; - value += 2; - } else if (UChar(value[0]) == 0x9a) { - result = TRUE; - value += 1; - } - if (result) { + int skip = csi_length(value); + + if (skip) { int ch; + + result = TRUE; + value += skip; while ((ch = UChar(*value++)) != '\0') { if (isdigit(ch) || ch == ';') { ;