ncurses 5.7 - patch 20110205
authorThomas E. Dickey <dickey@invisible-island.net>
Sun, 6 Feb 2011 02:33:36 +0000 (02:33 +0000)
committerThomas E. Dickey <dickey@invisible-island.net>
Sun, 6 Feb 2011 02:33:36 +0000 (02:33 +0000)
+ add xterm-utf8 entry as a demo of the U8 feature -TD
+ add U8 feature to denote entries for terminal emulators which do not
  support VT100 SI/SO when processing UTF-8 encoding -TD
+ improve the NCURSES_NO_UTF8_ACS feature by adding a check for an
  extended terminfo capability U8 (prompted by mailing list
  discussion).

NEWS
dist.mk
man/ncurses.3x
misc/terminfo.src
ncurses/tinfo/free_ttype.c
ncurses/tinfo/lib_setup.c

diff --git a/NEWS b/NEWS
index 77f45d20dee0b0c4ee832e00816debbe3e79dc92..5002544466d7877d8a07faa6717155955ad33358 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -25,7 +25,7 @@
 -- sale, use or other dealings in this Software without prior written        --
 -- authorization.                                                            --
 -------------------------------------------------------------------------------
--- $Id: NEWS,v 1.1638 2011/01/22 21:23:29 tom Exp $
+-- $Id: NEWS,v 1.1641 2011/02/05 23:40:07 tom Exp $
 -------------------------------------------------------------------------------
 
 This is a log of changes that ncurses has gone through since Zeyd started
@@ -45,6 +45,14 @@ 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.
 
+20110205
+       + add xterm-utf8 entry as a demo of the U8 feature -TD
+       + add U8 feature to denote entries for terminal emulators which do not
+         support VT100 SI/SO when processing UTF-8 encoding -TD
+       + improve the NCURSES_NO_UTF8_ACS feature by adding a check for an
+         extended terminfo capability U8 (prompted by mailing list
+         discussion).
+
 20110122
        + start documenting interface changes for upcoming 5.8 release.
        + correct limit-checks in derwin().
diff --git a/dist.mk b/dist.mk
index c791b6a33d19561ceae33c02f878c512f46b6098..47ac7a4eccbcf98ebe89f45c27a402fa36096721 100644 (file)
--- 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.792 2011/01/22 19:47:14 tom Exp $
+# $Id: dist.mk,v 1.794 2011/02/05 17:25:08 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 = 7
-NCURSES_PATCH = 20110122
+NCURSES_PATCH = 20110205
 
 # We don't append the patch to the version, since this only applies to releases
 VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
index 9dcdcd940a4c519afdf348a8916a2aacccb7aea7..4acfc050101a3d2a42479a6567baae4cd8706446 100644 (file)
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998-2009,2010 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2010,2011 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            *
@@ -27,7 +27,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: ncurses.3x,v 1.101 2010/12/04 18:38:55 tom Exp $
+.\" $Id: ncurses.3x,v 1.103 2011/02/05 23:21:29 tom Exp $
 .hy 0
 .TH ncurses 3X ""
 .de bP
@@ -930,6 +930,28 @@ and is likely to work for terminal emulators.
 When setting this variable, you should set it to a nonzero value.
 Setting it to zero (or to a nonnumber)
 disables the special check for "linux" and "screen".
+.IP
+As an alternative to the environment variable,
+ncurses checks for an extended terminfo capability \fBU8\fP.
+This is a numeric capability which can be compiled using \fBtic\ \-x\fP.
+For example
+.RS 5
+.sp
+.nf
+# linux console, if patched to provide working
+# VT100 shift-in/shift-out, with corresponding font.
+linux-vt100|linux console with VT100 line-graphics,
+       U8#0, use=linux,
+.sp
+# uxterm with vt100Graphics resource set to false
+xterm-utf8|xterm relying on UTF-8 line-graphics,
+       U8#1, use=xterm,
+.fi
+.RE
+.IP
+The name "U8" is chosen to be two characters,
+to permit it to be used by applications that use ncurses'
+termcap interface.
 .TP 5
 NCURSES_TRACE
 During initialization, the \fBncurses\fR debugging library
index 458d473306a3e510b4f3c631f0b783f59d3c1a3f..cfe65ed9f05374d115e31dcd0db8d9ebfc6e4604 100644 (file)
@@ -6,8 +6,8 @@
 # Report bugs and new terminal descriptions to
 #      bug-ncurses@gnu.org
 #
-#      $Revision: 1.381 $
-#      $Date: 2010/12/11 23:39:36 $
+#      $Revision: 1.382 $
+#      $Date: 2011/02/05 23:41:18 $
 #
 # 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
@@ -890,7 +890,7 @@ beterm|BeOS Terminal,
 #
 linux-basic|linux console,
        am, bce, eo, mir, msgr, xenl, xon,
-       it#8, ncv#18,
+       it#8, ncv#18, U8#1,
        acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
        bel=^G, clear=\E[H\E[J, cr=^M, csr=\E[%i%p1%d;%p2%dr,
        cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
@@ -2886,7 +2886,7 @@ crt|crt-vt220|CRT 2.3 emulating VT220,
 
 putty|PuTTY terminal emulator,
        am, bce, bw, ccc, hs, mir, msgr, xenl, xon, XT,
-       colors#8, it#8, ncv#22, pairs#64,
+       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,
        clear=\E[H\E[J, cnorm=\E[?25h, cr=^M,
@@ -3633,6 +3633,11 @@ xterm-24|vs100|xterms|xterm terminal emulator (X Window System),
 xterm|xterm terminal emulator (X Window System),
        use=xterm-new,
 
+# This entry assumes that xterm's handling of VT100 SI/SO is disabled by
+# setting the vt100Graphics resource to false.
+xterm-utf8|xterm with no VT100 line-drawing in UTF-8 mode,
+       U8#1, use=xterm,
+
 # These entries allow access to the X titlebar and icon name as a status line.
 # Note that twm (and possibly window managers descended from it such as tvtwm,
 # ctwm, and vtwm) track windows by icon-name; thus, you don't want to mess
@@ -4666,7 +4671,7 @@ eterm-color|Emacs term.el terminal emulator term-protocol-version 0.96,
 # tested with screen 3.09.08
 screen|VT 100/ANSI X3.64 virtual terminal,
        OTbs, OTpt, am, km, mir, msgr, xenl, G0,
-       colors#8, cols#80, it#8, lines#24, ncv@, pairs#64,
+       colors#8, cols#80, it#8, lines#24, ncv@, pairs#64, U8#1,
        acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
        bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
        clear=\E[H\E[J, cnorm=\E[34h\E[?25h, cr=^M,
@@ -22341,4 +22346,9 @@ v3220|LANPAR Vision II model 3220/3221/3222,
 #      * suppress ncv in screen entry, allowing underline -Alejandro R. Sedeno
 #      * also suppress ncv in konsole-base -TD
 #
+# 2011-02-05
+#      * add U8 feature to denote entries for terminal emulators which do not
+#        support VT100 SI/SO when processing UTF-8 encoding -TD
+#      * add xterm-utf8 as a demo of the U8 feature -TD
+#
 ######## SHANTIH!  SHANTIH!  SHANTIH!
index 7914fd55e3e5ddcdc3eb23711558fea347f9fd36..ad056ba4545b55feb9d9254ff17fe30f970d0aeb 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1999-2006,2010 Free Software Foundation, Inc.              *
+ * Copyright (c) 1999-2010,2011 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            *
@@ -42,7 +42,7 @@
 
 #include <tic.h>
 
-MODULE_ID("$Id: free_ttype.c,v 1.14 2010/01/23 17:57:43 tom Exp $")
+MODULE_ID("$Id: free_ttype.c,v 1.15 2011/02/06 01:08:31 tom Exp $")
 
 NCURSES_EXPORT(void)
 _nc_free_termtype(TERMTYPE *ptr)
@@ -69,6 +69,7 @@ use_extended_names(bool flag)
 {
     int oldflag = _nc_user_definable;
 
+    START_TRACE();
     T((T_CALLED("use_extended_names(%d)"), flag));
     _nc_user_definable = flag;
     returnBool(oldflag);
index 378fd940d04fcf7fdecfe5bcd83c655993a830a0..5fcf2ae3fc32f48c3229455978471fd6043b1249 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2010,2011 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            *
@@ -51,7 +51,7 @@
 #include <locale.h>
 #endif
 
-MODULE_ID("$Id: lib_setup.c,v 1.132 2010/12/20 00:26:35 tom Exp $")
+MODULE_ID("$Id: lib_setup.c,v 1.135 2011/02/06 01:04:21 tom Exp $")
 
 /****************************************************************************
  *
@@ -546,25 +546,31 @@ _nc_unicode_locale(void)
 NCURSES_EXPORT(int)
 _nc_locale_breaks_acs(TERMINAL * termp)
 {
+    const char *env_name = "NCURSES_NO_UTF8_ACS";
     char *env;
+    int value;
+    int result = 0;
 
-    if ((env = getenv("NCURSES_NO_UTF8_ACS")) != 0) {
-       return atoi(env);
+    if ((env = getenv(env_name)) != 0) {
+       result = _nc_getenv_num(env_name);
+    } else if ((value = tigetnum("U8")) >= 0) {
+       result = value;         /* use extension feature */
     } else if ((env = getenv("TERM")) != 0) {
-       if (strstr(env, "linux"))
-           return 1;           /* always broken */
-       if (strstr(env, "screen") != 0
-           && ((env = getenv("TERMCAP")) != 0
-               && strstr(env, "screen") != 0)
-           && strstr(env, "hhII00") != 0) {
+       if (strstr(env, "linux")) {
+           result = 1;         /* always broken */
+       } else if (strstr(env, "screen") != 0
+                  && ((env = getenv("TERMCAP")) != 0
+                      && strstr(env, "screen") != 0)
+                  && strstr(env, "hhII00") != 0) {
            if (CONTROL_N(enter_alt_charset_mode) ||
                CONTROL_O(enter_alt_charset_mode) ||
                CONTROL_N(set_attributes) ||
-               CONTROL_O(set_attributes))
-               return 1;
+               CONTROL_O(set_attributes)) {
+               result = 1;
+           }
        }
     }
-    return 0;
+    return result;
 }
 
 NCURSES_EXPORT(int)