Hello community,

here is the log from the commit of package tcsh for openSUSE:Factory checked in 
at 2019-12-07 15:12:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/tcsh (Old)
 and      /work/SRC/openSUSE:Factory/.tcsh.new.4691 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "tcsh"

Sat Dec  7 15:12:18 2019 rev:68 rq:754265 version:6.22.02

Changes:
--------
--- /work/SRC/openSUSE:Factory/tcsh/tcsh.changes        2019-10-23 
15:36:53.333753202 +0200
+++ /work/SRC/openSUSE:Factory/.tcsh.new.4691/tcsh.changes      2019-12-07 
15:13:10.971814581 +0100
@@ -1,0 +2,53 @@
+Thu Dec  5 06:46:37 UTC 2019 - Dr. Werner Fink <wer...@suse.de>
+
+- Update to tcsh bug fix version V6.22.02 - 20191204
+  * Fix version in configure.ac
+
+-------------------------------------------------------------------
+Mon Dec  2 09:47:03 UTC 2019 - Dr. Werner Fink <wer...@suse.de>
+
+- Drop patches
+  * tcsh-6.21.0-history-file-locking.patch
+    As upstream introduced its own history file locking
+  * tcsh-6.18.03-history-merge.dif
+    To respect upstream history merge handling
+  * tcsh-6.19.00-history-file-locking-order.patch
+    Not required due dropped tcsh-6.21.0-history-file-locking.patch
+  * tcsh-6.20.00-avoid-dotlock-for-fcntl.patch
+    Not required due dropped tcsh-6.21.0-history-file-locking.patch
+  * tcsh-6.18.01-history-stderror-jmp.patch
+    Not required due dropped tcsh-6.21.0-history-file-locking.patch
+
+-------------------------------------------------------------------
+Mon Dec  2 08:26:48 UTC 2019 - Dr. Werner Fink <wer...@suse.de>
+
+- Update to tcsh bug fix version V6.22.01 - 20191201
+  * undo PR/88: Preserve empty arguments in :q, since it breaks
+       $ set x=""
+       $ alias test "echo "\""$x:q"\"" is working."
+       $ alias test
+       echo "
+
+-------------------------------------------------------------------
+Fri Nov 29 14:44:02 UTC 2019 - Dr. Werner Fink <wer...@suse.de>
+
+- Update to tcsh bug fix version V6.22.00 -  20191128
+  * PR/113: Sobomax: avoid infinite loops for -c commands when stdout is
+    not a tty.
+  * Avoid infinite loops during history loads when merging, print a better
+    error for errors during history load.
+  * PR/88: Preserve empty arguments in :q
+  * PR/94: Small apple issues (SAVESIGVEC, HOSTTYPE)
+  * PR/81: Fix range matching issue where we were comparing with the
+     range character instead of the start of range. [l-z]* would match foo
+- Drop patch tcsh-6.21.00-sighup-deadlock.patch as now superfluous
+- Port patches
+  * tcsh-6.17.06-dspmbyte.dif
+  * tcsh-6.18.01-history-stderror-jmp.patch
+  * tcsh-6.19.00-history-file-locking-order.patch
+  * tcsh-6.20.00-avoid-dotlock-for-fcntl.patch
+  * tcsh-6.21.0-history-file-locking.patch
+  * tcsh-6.21.00-sighup-deadlock.patch
+  * tcsh-6.21.00.dif
+
+-------------------------------------------------------------------

Old:
----
  tcsh-6.18.01-history-stderror-jmp.patch
  tcsh-6.18.03-history-merge.dif
  tcsh-6.19.00-history-file-locking-order.patch
  tcsh-6.20.00-avoid-dotlock-for-fcntl.patch
  tcsh-6.21.0-history-file-locking.patch
  tcsh-6.21.00-sighup-deadlock.patch
  tcsh-6.21.00.tar.gz

New:
----
  tcsh-6.22.02.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ tcsh.spec ++++++
--- /var/tmp/diff_new_pack.YCMfik/_old  2019-12-07 15:13:16.687813771 +0100
+++ /var/tmp/diff_new_pack.YCMfik/_new  2019-12-07 15:13:16.687813771 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package tcsh
 #
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,13 +17,13 @@
 
 
 Name:           tcsh
-Version:        6.21.00
+Version:        6.22.02
 Release:        0
 Summary:        The C SHell
 License:        BSD-3-Clause
 Group:          System/Shells
-Url:            http://www.tcsh.org/
-Source:         ftp.astron.com:/pub/tcsh/tcsh-6.21.00.tar.gz
+URL:            http://www.tcsh.org/
+Source:         ftp.astron.com:/pub/%{name}/%{name}-%{version}.tar.gz
 Source2:        bindkey.tcsh
 Source3:        complete.tcsh
 Patch0:         tcsh-6.21.00.dif
@@ -32,17 +32,6 @@
 Patch4:         tcsh-6.18.03-colorls.dif
 Patch5:         tcsh-6.17.06-dspmbyte.dif
 Patch6:         tcsh-6.18.03-catalogs.dif
-# PATCH-FIX-UPSTREAM Do not (re)run SIGHUP handler during rewrite history
-Patch7:         tcsh-6.21.00-sighup-deadlock.patch
-# PATCH-FIX-SUSE add history file locking (bsc#901076)
-Patch9:         tcsh-6.21.0-history-file-locking.patch
-Patch10:        tcsh-6.18.03-history-merge.dif
-# PATCH-FIX-SUSE fix history file locking: first unlock then close
-Patch11:        tcsh-6.19.00-history-file-locking-order.patch
-# PATCH-FIX-SUSE Aoid dot locking as patch 9 and 11 do the job better
-Patch12:        tcsh-6.20.00-avoid-dotlock-for-fcntl.patch
-# PATCH-FIX-SUSE Restore cleaning routines in case of an error (bsc#1151630)
-Patch13:        tcsh-6.18.01-history-stderror-jmp.patch
 BuildRequires:  autoconf
 BuildRequires:  fdupes
 BuildRequires:  ncurses-devel
@@ -68,12 +57,6 @@
 %patch4      -b .colorls
 %patch5      -b .dspmbyte
 %patch6      -b .catalogs
-%patch7 -p1  -b .sighup
-%patch9      -b .histlock
-%patch10     -b .histmerg
-%patch11     -b .histlckord
-%patch12 -p0 -b .nodtlck
-%patch13 -p0 -b .histerrjmp
 %patch0      -b .0
 
 %build

++++++ tcsh-6.17.06-dspmbyte.dif ++++++
--- /var/tmp/diff_new_pack.YCMfik/_old  2019-12-07 15:13:16.731813765 +0100
+++ /var/tmp/diff_new_pack.YCMfik/_new  2019-12-07 15:13:16.735813765 +0100
@@ -7,7 +7,7 @@
 
 --- sh.c
 +++ sh.c       2016-11-25 08:02:39.616478025 +0000
-@@ -862,9 +862,9 @@ main(int argc, char **argv)
+@@ -863,9 +863,9 @@ main(int argc, char **argv)
      /* PATCH IDEA FROM Issei.Suzuki VERY THANKS */
  #if defined(DSPMBYTE)
  #if defined(NLS) && defined(LC_CTYPE)

++++++ tcsh-6.21.00.dif ++++++
--- /var/tmp/diff_new_pack.YCMfik/_old  2019-12-07 15:13:16.743813764 +0100
+++ /var/tmp/diff_new_pack.YCMfik/_new  2019-12-07 15:13:16.743813764 +0100
@@ -14,7 +14,7 @@
 
 --- config/linux
 +++ config/linux       2019-05-09 08:41:54.237060106 +0000
-@@ -92,6 +92,9 @@
+@@ -99,6 +99,9 @@
  #ifndef _SVID_SOURCE
  # define _SVID_SOURCE
  #endif
@@ -24,7 +24,7 @@
  #ifndef _POSIX_SOURCE
  # define _POSIX_SOURCE
  #endif
-@@ -132,4 +135,11 @@
+@@ -139,4 +142,11 @@
  # define POSIX
  #endif
  

++++++ tcsh-6.21.00.tar.gz -> tcsh-6.22.02.tar.gz ++++++
++++ 5076 lines of diff (skipped)
++++    retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/tcsh-6.21.00/.travis.yml new/tcsh-6.22.02/.travis.yml
--- old/tcsh-6.21.00/.travis.yml        2019-05-08 20:39:28.000000000 +0200
+++ new/tcsh-6.22.02/.travis.yml        2019-12-04 18:51:54.000000000 +0100
@@ -1,11 +1,14 @@
 language: c
 compiler:
- - gcc
- - clang
-before_install:
- - sudo apt-get update -q=2
- - sudo apt-get install -q=2 automake libtinfo-dev make
+- gcc
+- clang
+addons:
+  apt:
+    packages:
+    - automake
+    - libtinfo-dev
+    - make
 script:
- - ./configure
- - make -j4
- - make check
+- ./configure
+- make -j4
+- make check
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/tcsh-6.21.00/Announce-6.21.00 new/tcsh-6.22.02/Announce-6.21.00
--- old/tcsh-6.21.00/Announce-6.21.00   1970-01-01 01:00:00.000000000 +0100
+++ new/tcsh-6.22.02/Announce-6.21.00   2019-12-04 18:51:54.000000000 +0100
@@ -0,0 +1,29 @@
+Hello,
+
+I am pleased to announce that tcsh-6.21 is now available; this is a bug
+fix release (after 2.5 years) with no new features.
+
+Please consult the Fixes files for a complete list of changes.
+
+Tcsh is an enhanced version of the Berkeley C-shell that offers command
+line editing and completion plus many other little things that preserve
+the length of your fingers.
+
+Tcsh runs on most UNIX machines, as well as Windows
+
+You can get tcsh from ftp://ftp.astron.com/pub/tcsh/tcsh-6.21.00.tar.gz
+The latest source is on github: https://github.com/tcsh-org/tcsh
+
+RMD160 (tcsh-6.21.00.tar.gz) = 665d522ded31e3fa23b71a5726d2d52e1c60e085
+
+This is a gzip (GNU zip) tar archive. If you don't have GNU zip you can
+get it from ftp.gnu.org or other GNU mirrors.
+
+I would like to thank:
+
+    * everyone who sent bug reports
+    * the beta team for all their help, bug fixes, and suggestions
+
+Best,
+
+christos
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/tcsh-6.21.00/Announce-6.22.00 new/tcsh-6.22.02/Announce-6.22.00
--- old/tcsh-6.21.00/Announce-6.22.00   1970-01-01 01:00:00.000000000 +0100
+++ new/tcsh-6.22.02/Announce-6.22.00   2019-12-04 18:51:54.000000000 +0100
@@ -0,0 +1,29 @@
+Hello,
+
+I am pleased to announce that tcsh-6.22 is now available; this is a bug
+fix release with no new features.
+
+Please consult the Fixes file for a complete list of changes.
+
+Tcsh is an enhanced version of the Berkeley C-shell that offers command
+line editing and completion plus many other little things that preserve
+the length of your fingers.
+
+Tcsh runs on most UNIX machines, as well as Windows
+
+You can get tcsh from ftp://ftp.astron.com/pub/tcsh/tcsh-6.22.00.tar.gz
+The latest source is on github: https://github.com/tcsh-org/tcsh
+
+RMD160 (tcsh-6.22.00.tar.gz) = 18e13da1601ffee536a11ef22391cad978380fbc
+
+This is a gzip (GNU zip) tar archive. If you don't have GNU zip you can
+get it from ftp.gnu.org or other GNU mirrors.
+
+I would like to thank:
+
+    * everyone who sent bug reports
+    * the beta team for all their help, bug fixes, and suggestions
+
+Best,
+
+christos
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/tcsh-6.21.00/BUILDING new/tcsh-6.22.02/BUILDING
--- old/tcsh-6.21.00/BUILDING   2019-05-08 20:39:28.000000000 +0200
+++ new/tcsh-6.22.02/BUILDING   2019-12-04 18:51:54.000000000 +0100
@@ -28,8 +28,7 @@
        Try the following:
        apt-get install \
        build-essential \
-       libncurses5-dev \
-       libncursesw5-dev \
+       libncurses-dev \
        ;
 
 2)  If you have imake running on your machine, you may try building with
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/tcsh-6.21.00/Fixes new/tcsh-6.22.02/Fixes
--- old/tcsh-6.21.00/Fixes      2019-05-08 20:39:28.000000000 +0200
+++ new/tcsh-6.22.02/Fixes      2019-12-04 18:51:54.000000000 +0100
@@ -1,3 +1,22 @@
+  4. V6.22.02 - 20191204
+  3. Fix version in configure.ac
+  2. V6.22.01 - 20191201
+  1. undo PR/88: Preserve empty arguments in :q, since it breaks
+       $ set x=""
+       $ alias test "echo "\""$x:q"\"" is working."
+       $ alias test
+       echo "
+
+  6. V6.22.00 - 20191128
+  5. PR/113: Sobomax: avoid infinite loops for -c commands when stdout is
+     not a tty.
+  4. Avoid infinite loops during history loads when merging, print a better
+     error for errors during history load.
+  3. PR/88: Preserve empty arguments in :q
+  2. PR/94: Small apple issues (SAVESIGVEC, HOSTTYPE)
+  1. PR/81: Fix range matching issue where we were comparing with the
+     range character instead of the start of range. [l-z]* would match foo
+
  12. V6.21.00 - 20190508
  11. Abort history loading on words and lines too long
      https://bugzilla.redhat.com/show_bug.cgi?id=1598502
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/tcsh-6.21.00/README.md new/tcsh-6.22.02/README.md
--- old/tcsh-6.21.00/README.md  2019-05-08 20:39:28.000000000 +0200
+++ new/tcsh-6.22.02/README.md  2019-12-04 18:51:54.000000000 +0100
@@ -1,4 +1,4 @@
-# Tcsh
+# TCSH
 
 *C shell with file name completion and command line editing*
 
@@ -14,10 +14,10 @@
 > https://bugs.astron.com/
 
 Comments, questions, etc. (even flames) are welcome via email to
-the Tcsh Bugs mailing list:
+the tcsh mailing list:
 
-> tcsh-b...@astron.com
-> https://mailman.astron.com/
+> t...@astron.com  
+> https://mailman.astron.com/mailman/listinfo/tcsh
 
 [![Build Status][status]][travis]
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/tcsh-6.21.00/RELEASE-PROCEDURE new/tcsh-6.22.02/RELEASE-PROCEDURE
--- old/tcsh-6.21.00/RELEASE-PROCEDURE  2019-05-08 20:39:28.000000000 +0200
+++ new/tcsh-6.22.02/RELEASE-PROCEDURE  2019-12-04 18:51:54.000000000 +0100
@@ -36,11 +36,6 @@
     - Set the "Date Order" to 2030-01-01 (i.e. far in the future)
     - Click on "Update Version"
 8)  Update the version on http://www.tcsh.org/MostRecentRelease
-9)  Update the online manual page http://www.tcsh.org/tcsh.man/top.html
-    - Login to the webhost (huru)
-    - cd ~/src/tcsh && git pull
-    - cd ~/.www/sites/tcsh.org/man \
-       && cp -p ~/src/tcsh/tcsh.man \
-       && make clean \
-       && make
+9)  Update the online manual page http://www.tcsh.org/
+    - See instructions at https://github.com/tcsh-org/www
 10) Mail an announcement to t...@astron.com
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/tcsh-6.21.00/config/linux new/tcsh-6.22.02/config/linux
--- old/tcsh-6.21.00/config/linux       2019-05-08 20:39:28.000000000 +0200
+++ new/tcsh-6.22.02/config/linux       2019-12-04 18:51:54.000000000 +0100
@@ -83,9 +83,16 @@
  *
  * The more recent defaults for gcc (e.g. on Red Hat 7.0)
  * also define _POSIX_C_SOURCE, which throws our code off.
+ *
+ * _BSD_SOURCE and _SVID_SOURCE have become deprecated
+ * aliases for _DEFAULT_SOURCE. _DEFAULT_SOURCE overrides
+ * __STRICT_ANSI__ also. [gcc 8.3.0 on Debian 10]
  */
 
 #define __STRICT_ANSI__
+#ifndef _DEFAULT_SOURCE
+# define _DEFAULT_SOURCE
+#endif
 #ifndef _BSD_SOURCE
 # define _BSD_SOURCE
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/tcsh-6.21.00/configure.ac new/tcsh-6.22.02/configure.ac
--- old/tcsh-6.21.00/configure.ac       2019-05-08 20:39:28.000000000 +0200
+++ new/tcsh-6.22.02/configure.ac       2019-12-04 18:51:54.000000000 +0100
@@ -8,7 +8,7 @@
 dnl Written by Kaveh Ghazi (gh...@caip.rutgers.edu) 5/11/96.
 
 AC_PREREQ([2.59])dnl Minimum Autoconf version required.
-AC_INIT([tcsh], [6.21.00], [https://bugs.astron.com/])
+AC_INIT([tcsh], [6.22.02], [https://bugs.astron.com/])
 AC_CONFIG_MACRO_DIR([m4])
 AC_CONFIG_SRCDIR([tc.vers.c])
 AC_CONFIG_HEADERS([config.h])
@@ -17,6 +17,8 @@
 AC_PROG_INSTALL
 AC_CANONICAL_HOST
 
+AM_ICONV
+
 AC_MSG_CHECKING([cached host tuple])
 if { test x"${ac_cv_host_system_type+set}" = x"set" &&
      test x"$ac_cv_host_system_type" != x"$host"; }; then
@@ -321,7 +323,6 @@
 AC_SEARCH_LIBS(gethostbyname, nsl)
 AC_SEARCH_LIBS(connect, socket)
 AC_SEARCH_LIBS(catgets, catgets)
-AM_ICONV
 
 dnl Checks for header files
 AC_CHECK_HEADERS([auth.h crypt.h features.h inttypes.h paths.h] dnl
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/tcsh-6.21.00/glob.c new/tcsh-6.22.02/glob.c
--- old/tcsh-6.21.00/glob.c     2019-05-08 20:39:28.000000000 +0200
+++ new/tcsh-6.22.02/glob.c     2019-12-04 18:51:54.000000000 +0100
@@ -100,7 +100,7 @@
 static int      Stat           (const char *, struct stat *sb);
 static         Char    *Strchr         (Char *, int);
 #ifdef DEBUG
-static void     qprintf        (const Char *);
+static void     qprintf        (const char *, const Char *);
 #endif
 
 #define        DOLLAR          '$'
@@ -254,19 +254,20 @@
 
 #ifdef DEBUG
 static void
-qprintf(const Char *s)
+qprintf(const char *pre, const Char *s)
 {
     const Char *p;
-
+       
+    xprintf("%s", pre);
     for (p = s; *p; p++)
-       printf("%c", *p & 0xff);
-    printf("\n");
+       xprintf("%c", *p & 0xff);
+    xprintf("\n%s", pre);
     for (p = s; *p; p++)
-       printf("%c", *p & M_PROTECT ? '"' : ' ');
-    printf("\n");
+       xprintf("%c", *p & M_PROTECT ? '"' : ' ');
+    xprintf("\n%s", pre);
     for (p = s; *p; p++)
-       printf("%c", *p & M_META ? '_' : ' ');
-    printf("\n");
+       xprintf("%c", *p & M_META ? '_' : ' ');
+    xprintf("\n");
 }
 #endif /* DEBUG */
 
@@ -410,7 +411,7 @@
     }
     *bufnext = EOS;
 #ifdef DEBUG
-    qprintf(patbuf);
+    qprintf("patbuf=", patbuf);
 #endif
 
     if ((err = glob1(patbuf, pglob, no_match)) != 0) {
@@ -707,7 +708,7 @@
 
     while (pat < patend || *name) {
        size_t lwk, pwk;
-       __Char wc, wk;
+       __Char wc, wk, wc1;
 
        c = *pat; /* Only for M_MASK bits */
        if (*name == EOS)
@@ -742,18 +743,20 @@
                pat += pwk;
                pwk = One_Char_mbtowc(&wc, pat, MB_LEN_MAX);
            }
+           wc1 = wc;
            while ((*pat & M_MASK) != M_END) {
                if ((*pat & M_MASK) == M_RNG) {
                    __Char wc2;
 
                    pat += pwk;
                    pwk = One_Char_mbtowc(&wc2, pat, MB_LEN_MAX);
-                   if (globcharcoll(wc, wk, 0) <= 0 &&
+                   if (globcharcoll(wc1, wk, 0) <= 0 &&
                        globcharcoll(wk, wc2, 0) <= 0)
                        ok = 1;
                } else if (wc == wk)
                    ok = 1;
                pat += pwk;
+               wc1 = wc;
                pwk = One_Char_mbtowc(&wc, pat, MB_LEN_MAX);
            }
            pat += pwk;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/tcsh-6.21.00/host.defs new/tcsh-6.22.02/host.defs
--- old/tcsh-6.21.00/host.defs  2019-05-08 20:39:28.000000000 +0200
+++ new/tcsh-6.22.02/host.defs  2019-12-04 18:51:54.000000000 +0100
@@ -851,12 +851,12 @@
 enddef :
 
 
-newdef : defined(APPLE) && defined(MACH)
+newdef : defined(APPLE)
 comment : OS X
 vendor :                                               : "apple"
-hosttype: defined(i386)                                        : "intel-pc"
+hosttype: defined(i386)                                        : "intel-mac"
 hosttype: defined(ppc)                                 : "powermac"
-hosttype: defined(M_amd64)                             : "amd"
+hosttype: defined(M_amd64)                             : "intel-mac"
 ostype :                                               : "darwin"
 machtype: defined(i386)                                        : "i386"
 machtype: defined(M_amd64)                             : "x86_64"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/tcsh-6.21.00/patchlevel.h new/tcsh-6.22.02/patchlevel.h
--- old/tcsh-6.21.00/patchlevel.h       2019-05-08 20:39:28.000000000 +0200
+++ new/tcsh-6.22.02/patchlevel.h       2019-12-04 18:51:54.000000000 +0100
@@ -6,8 +6,8 @@
 
 #define ORIGIN "Astron"
 #define REV 6
-#define VERS 21
-#define PATCHLEVEL 00
-#define DATE "2019-05-08"
+#define VERS 22
+#define PATCHLEVEL 02
+#define DATE "2019-12-04"
 
 #endif /* _h_patchlevel */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/tcsh-6.21.00/sh.c new/tcsh-6.22.02/sh.c
--- old/tcsh-6.21.00/sh.c       2019-05-08 20:39:28.000000000 +0200
+++ new/tcsh-6.22.02/sh.c       2019-12-04 18:51:54.000000000 +0100
@@ -237,6 +237,7 @@
     int nofile = 0;
     volatile int nverbose = 0;
     volatile int rdirs = 0;
+    volatile int exitcode = 0;
     int quitit = 0;
     Char *cp;
 #ifdef AUTOLOGOUT
@@ -1390,6 +1391,12 @@
     
 
     if (targinp) {
+       /* If this -c command caused an error before, skip processing */
+       if (reenter && arginp) {
+           exitcode = 1;
+           goto done;
+       }
+
        arginp = SAVE(targinp);
        /*
         * we put the command into a variable
@@ -1422,6 +1429,7 @@
      */
     process(setintr);
 
+done:
     /*
      * Mop-up.
      */
@@ -1443,7 +1451,7 @@
     }
     record();
     exitstat();
-    return (0);
+    return exitcode;
 }
 
 void
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/tcsh-6.21.00/sh.err.c new/tcsh-6.22.02/sh.err.c
--- old/tcsh-6.21.00/sh.err.c   2019-05-08 20:39:28.000000000 +0200
+++ new/tcsh-6.22.02/sh.err.c   2019-12-04 18:51:54.000000000 +0100
@@ -43,6 +43,7 @@
 #endif
 
 char   *seterr = NULL; /* Holds last error if there was one */
+extern int enterhist;
 
 #define ERR_FLAGS      0xf0000000
 #define ERR_NAME       0x10000000
@@ -630,6 +631,8 @@
         */
        flush();/*FIXRESET*/
        haderr = 1;             /* Now to diagnostic output */
+       if (enterhist)
+           xprintf("Can't load history: ");/*FIXRESET*/
        if (flags & ERR_NAME)
            xprintf("%s: ", bname);/*FIXRESET*/
        if ((flags & ERR_OLD)) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/tcsh-6.21.00/sh.h new/tcsh-6.22.02/sh.h
--- old/tcsh-6.21.00/sh.h       2019-05-08 20:39:28.000000000 +0200
+++ new/tcsh-6.22.02/sh.h       2019-12-04 18:51:54.000000000 +0100
@@ -682,13 +682,23 @@
  */
 
 #ifdef SIGSETJMP
-   typedef struct { sigjmp_buf j; } jmp_buf_t;
-# define setexit()  sigsetjmp(reslab.j, 1)
-# define _reset()    siglongjmp(reslab.j, 1)
+   typedef struct { const char *f; size_t l; sigjmp_buf j; } jmp_buf_t;
+# define tcsh_setjmp() sigsetjmp(reslab.j, 1)
+# define tcsh_longjmp()   siglongjmp(reslab.j, 1)
 #else
-   typedef struct { jmp_buf j; } jmp_buf_t;
-# define setexit()  setjmp(reslab.j)
-# define _reset()    longjmp(reslab.j, 1)
+   typedef struct { const char *f; size_t l; jmp_buf j; } jmp_buf_t;
+# define tcsh_setjmp() setjmp(reslab.j)
+# define tcsh_longjmp()   longjmp(reslab.j, 1)
+#endif
+
+#define setexit()  (reslab.f = __func__, \
+                   reslab.l = __LINE__, \
+                   tcsh_setjmp())
+#ifdef SETJMP_DEBUG
+# define _reset()   xprintf("reset %s %zu\n", reslab.f, reslab.l), \
+                   flush(), tcsh_longjmp()
+#else
+# define _reset()   tcsh_longjmp()
 #endif
 
 #define getexit(a) (void) ((a) = reslab)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/tcsh-6.21.00/sh.hist.c new/tcsh-6.22.02/sh.hist.c
--- old/tcsh-6.21.00/sh.hist.c  2019-05-08 20:39:28.000000000 +0200
+++ new/tcsh-6.22.02/sh.hist.c  2019-12-04 18:51:54.000000000 +0100
@@ -1281,6 +1281,7 @@
        }
 
        if (merge) {
+           jmp_buf_t osetexit;
            if (lock) {
 #ifndef WINNT_NATIVE
                char *lockpath = strsave(short2str(fname));
@@ -1290,7 +1291,10 @@
                    cleanup_push(lockpath, dotlock_cleanup);
 #endif
            }
-           loadhist(fname, 1);
+           getexit(osetexit);
+           if (setexit())
+               loadhist(fname, 1);
+           resexit(osetexit);
        }
     }
     rs = randsuf();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/tcsh-6.21.00/sh.lex.c new/tcsh-6.22.02/sh.lex.c
--- old/tcsh-6.21.00/sh.lex.c   2019-05-08 20:39:28.000000000 +0200
+++ new/tcsh-6.22.02/sh.lex.c   2019-12-04 18:51:54.000000000 +0100
@@ -1020,8 +1020,8 @@
 
     switch (type) {
 
-    case 'x':
     case 'q':
+    case 'x':
        wp = Strsave(cp);
        for (xp = wp; (c = *xp) != 0; xp++)
            if ((c != ' ' && c != '\t') || type == 'q')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/tcsh-6.21.00/tc.const.c new/tcsh-6.22.02/tc.const.c
--- old/tcsh-6.21.00/tc.const.c 2019-05-08 20:39:28.000000000 +0200
+++ new/tcsh-6.22.02/tc.const.c 2019-12-04 18:51:54.000000000 +0100
@@ -253,10 +253,10 @@
 Char STRsldtlogout[]   = { '/', '.', 'l', 'o', 'g', 'o', 'u', 't', '\0' };
 Char STRjobs[]         = { 'j', 'o', 'b', 's', '\0' };
 Char STRdefprompt[]    = { '%', '#', ' ', '\0' };
-Char STRmquestion[]    = { '%', 'R', '?' | QUOTE, ' ', '\0' };
+Char STRmquestion[]    = { '%', 'R', (Char)('?' | QUOTE), ' ', '\0' };
 Char STRKCORRECT[]     = { 'C', 'O', 'R', 'R', 'E', 'C', 'T', '>', '%', 'R', 
                            ' ', '(', 'y', '|', 'n', '|', 'e', '|', 'a', ')', 
-                           '?' | QUOTE, ' ', '\0' };
+                           (Char)('?' | QUOTE), ' ', '\0' };
 Char STRunalias[]      = { 'u', 'n', 'a', 'l', 'i', 'a', 's', '\0' };
 Char STRalias[]                = { 'a', 'l', 'i', 'a', 's', '\0' };
 Char STRprecmd[]       = { 'p', 'r', 'e', 'c', 'm', 'd', '\0' };
@@ -380,7 +380,7 @@
 Char STRlistmax[]      = { 'l', 'i', 's', 't', 'm', 'a', 'x', '\0' };
 Char STRlistlinks[]    = { 'l', 'i', 's', 't', 'l', 'i', 'n', 'k', 's', '\0' };
 Char STRDING[]         = { 'D', 'I', 'N', 'G', '!', '\0' };
-Char STRQNULL[]                = { '\0' | QUOTE, '\0' };
+Char STRQNULL[]                = { (Char)('\0' | QUOTE), '\0' };
 Char STRcorrect[]      = { 'c', 'o', 'r', 'r', 'e', 'c', 't', '\0' };
 Char STRcmd[]          = { 'c', 'm', 'd', '\0' };
 Char STRall[]          = { 'a', 'l', 'l', '\0' };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/tcsh-6.21.00/tc.sig.h new/tcsh-6.22.02/tc.sig.h
--- old/tcsh-6.21.00/tc.sig.h   2019-05-08 20:39:28.000000000 +0200
+++ new/tcsh-6.22.02/tc.sig.h   2019-12-04 18:51:54.000000000 +0100
@@ -42,7 +42,7 @@
 # include <sys/signal.h>
 #endif /* SYSVREL > 0 */
 
-#if defined(__APPLE__) || defined(SUNOS4) || defined(DGUX) || defined(hp800) 
|| (SYSVREL > 3 && defined(VFORK))
+#if defined(SUNOS4) || defined(DGUX) || defined(hp800) || (SYSVREL > 3 && 
defined(VFORK))
 # define SAVESIGVEC
 #endif /* SUNOS4 || DGUX || hp800 || SVR4 & VFORK */
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/tcsh-6.21.00/tcsh.man new/tcsh-6.22.02/tcsh.man
--- old/tcsh-6.21.00/tcsh.man   2019-05-08 20:39:28.000000000 +0200
+++ new/tcsh-6.22.02/tcsh.man   2019-12-04 18:51:54.000000000 +0100
@@ -77,7 +77,7 @@
 .\"   used here if you can. In particular, please don't use nroff commands
 .\"   which aren't already used herein.
 .\" 
-.TH TCSH 1 "8 May 2019" "Astron 6.21.00"
+.TH TCSH 1 "4 Dec 2019" "Astron 6.22.02"
 .SH NAME
 tcsh \- C shell with file name completion and command line editing
 .SH SYNOPSIS
@@ -5338,7 +5338,7 @@
 malloc(3), setlocale(3), tty(4), a.out(5), termcap(5), environ(7),
 termio(7), Introduction to the C Shell
 .SH VERSION
-This manual documents tcsh 6.21.00 (Astron) 2019-05-08.
+This manual documents tcsh 6.22.02 (Astron) 2019-12-04.
 .SH AUTHORS
 .PD 0
 .TP 2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/tcsh-6.21.00/tcsh.man.new new/tcsh-6.22.02/tcsh.man.new
--- old/tcsh-6.21.00/tcsh.man.new       2019-05-08 20:39:28.000000000 +0200
+++ new/tcsh-6.22.02/tcsh.man.new       2019-12-04 18:51:54.000000000 +0100
@@ -64,9 +64,9 @@
 .\"   used here if you can. In particular, please don't use nroff commands
 .\"   which aren't already used herein.
 .\"
-.Dd May 8, 2019
+.Dd Dec 4, 2019
 .Dt TCSH 1
-.Os Astron 6.21.00
+.Os Astron 6.22.02
 .Sh NAME
 .Nm tcsh
 .Nd C shell with file name completion and command line editing
@@ -391,7 +391,7 @@
 .Sx FILES .
 .Ss Editing
 We first describe
-.Sx The command-line editor" 
+.Sx The command-line editor
 The
 .Sx Completion and listing
 and
@@ -402,7 +402,7 @@
 .Sx Editor commands
 lists and describes
 the editor commands specific to the shell and their default bindings.
-.It Sx The command-line editor (+)
+.Ss The command-line editor (+)
 Command-line input can be edited using key sequences much like those used in
 .Xr emacs 1
 or
@@ -684,9 +684,8 @@
 .Va complete
 shell variable is set to
 .Sq enhance ,
-completion
-1) ignores case and 2) considers periods, hyphens and underscores
-.Sq ( . ,
+completion 1) ignores case and 2) considers periods, hyphens and underscores
+.Sq ( \&. ,
 .Sq \&-
 and
 .Sq _ )
@@ -727,7 +726,7 @@
 If the
 .Va complete
 shell variable is set to
-.Sq enhance ,
+.Sq Enhance ,
 completion
 ignores case and differences between a hyphen and an underscore word
 separator only when the user types a lowercase character or a hyphen.
@@ -1093,17 +1092,20 @@
 single character for this to work) or one of the following special characters
 may be typed:
 .Pp
-.Sq ^W
+.Bl -tag -width indent -compact
+.It ^W
 Appends the rest of the word under the cursor to the search pattern.
-delete (or any character bound to
+.It delete
+(or any character bound to
 .Ic backward-delete-char )
 Undoes the effect of the last character typed and deletes a character
 from the search pattern if appropriate.
-.Sq ^G
+.It ^G
 If the previous search was successful, aborts the entire search.
 If not, goes back to the last successful search.
-escape
+.It escape
 Ends the search, leaving the current line in the input buffer.
+.El
 .Pp
 Any other character not bound to
 .Ic self-insert-command
@@ -1664,6 +1666,7 @@
 numbered from 0, the first (usually command) word being 0, the second word
 (first argument) being 1, etc.
 The basic word designators are:
+.Pp
 .Bl -tag -width XXXX -offset indent -compact
 .It Ar 0
 The first (command) word
@@ -2021,7 +2024,7 @@
 .Pp
 Some aliases are referred to by the shell; see
 .Va Special aliases
-.Sx Variable substitution
+.Ss Variable substitution
 The shell maintains a list of variables, each of which has as value a list of
 zero or more words.
 The values of shell variables can be displayed and changed with the
@@ -2219,7 +2222,7 @@
 .Sq \&:
 modifiers.
 .Pp
-.Bl -tag -width XXXXXXXX -offset indent -compact
+.Bl -tag -width XXXXXXXXXX -offset indent -compact
 .It Ar $?name
 .It Ar ${?name}
 Substitutes the string
@@ -2238,27 +2241,21 @@
 Always
 .Sq 0
 in interactive shells.
-.It Ar
-$#name
-${#name}
+.It Ar $#name
+.It Ar ${#name}
 Substitutes the number of words in
 .Va name
-.It Ar
-$#
+.It Ar $#
 Equivalent to
 .Sq $#argv
 (+)
-.It Ar
-$%
-.Va name
+.It Ar $%name
 .It Ar ${%name}
 Substitutes the number of characters in
 .Va name
 (+)
 .Pp
-$%
-.Va number
-.TP 8
+.It Ar $%number
 .It Ar ${%number}
 Substitutes the number of characters in
 .Va $argv[number] .
@@ -2749,7 +2746,7 @@
 The standard input and standard output of a command may be redirected with the
 following syntax:
 .Pp
-.Bl -tag -width XXXXXX -offset indent -compact
+.Bl -tag -width XXXXXXXXX -offset indent -compact
 .It Ar < name
 Open file
 .Va name
@@ -3143,63 +3140,47 @@
 .Va op
 may be one of
 .Pp
-.PD 0
-.RS +4
-.TP 8
-.B A
+.Bl -tag -width XXX -offset indent -compact
+.It Ar A
 Last file access time, as the number of seconds since the epoch
-.TP 8
-.B A:
+.It Ar A:
 Like
-.Va A
+.Va Ar A
 , but in timestamp format, e.g.,
 .Sq Fri May 14 16:36:10 1993
-.TP 8
-.B M
+.It Ar M
 Last file modification time
-.TP 8
-.B M:
+.It Ar M:
 Like
 .Va M
 , but in timestamp format
-.TP 8
-.B C
+.It Ar C
 Last inode modification time
-.TP 8
-.B C:
+.It Ar C:
 Like
 .Va C
 , but in timestamp format
-.TP 8
-.B D
+.It Ar D
 Device number
-.TP 8
-.B I
+.It Ar I
 Inode number
-.TP 8
-.B F
+.It Ar F
 Composite
 .Va f
 ile identifier, in the form
-.Va device
-:
+.Va device :
 .Va inode
-.TP 8
-.B L
+.It Ar L
 The name of the file pointed to by a symbolic link
-.TP 8
-.B N
+.It Ar N
 Number of (hard) links
-.TP 8
-.B P
+.It Ar P
 Permissions, in octal, without leading zero
-.TP 8
-.B P:
+.It Ar P:
 Like
 .Va P
 , with leading zero
-.TP 8
-.B P\fImode
+.It Ar P<mode>
 Equivalent to
 .Sq \-P
 .Va file
@@ -3217,28 +3198,22 @@
 and
 .Sq 0
 if by neither
-.TP 8
-.B P\fImode\fB:
-Like \fBP
+.It Ar P<mode>:
+Like 
+.Ar BP
 .Va mode
 , with leading zero
-.TP 8
-.B U
+.It Ar U
 Numeric userid
-.TP 8
-.B U:
+.It Ar U:
 Username, or the numeric userid if the username is unknown
-.TP 8
-.B G
+.It Ar G
 Numeric groupid
-.TP 8
-.B G:
+.It Ar G:
 Groupname, or the numeric groupid if the groupname is unknown
-.TP 8
-.B Z
+.It Ar Z
 Size, in bytes
-.RE
-.PD
+.El
 .Pp
 Only one of these operators may appear in a multiple-operator test, and it
 must be the last.
@@ -3791,45 +3766,24 @@
 and
 .Va Special shell variables
 .Ss "Builtin commands"
-.TP 8
-.B %\fIjob
+.Bl -tag -width XXXXXXX -offset indent
+.It Ar %job
 A synonym for the
 .Va fg
 builtin command.
-.TP 8
-.B %\fIjob \fB&
+.It Ar %job \&&
 A synonym for the
 .Va bg
 builtin command.
-.TP 8
-.B :
+.It Ar \&:
 Does nothing, successfully.
 .Pp
-.B @
-.br
-.B @ \fIname\fB = \fIexpr
-.br
-.B @
-.Va name
-[
-.Va index
-]\fB = \fIexpr
-.br
-.B @ \fIname
-.Va ++
-|\fB--
-.PD 0
-.TP 8
-.B @
-.Va name
-[
-.Va index
-]
-.Va ++
-|\fB--
+.It Ar @
+.It Ar @ name = expr
+.It Ar @ name[index] = expr
+.It Ar @ name++|--
+.It Ar @name[index]++|--
 The first form prints the values of all shell variables.
-.PD
-.RS +8
 .Pp
 The second form assigns the value of
 .Va expr
@@ -3875,7 +3829,10 @@
 under
 .Va Expressions
 .Pp
-The fourth and fifth forms increment (`++') or decrement (`\-\-')
+The fourth and fifth forms increment (
+.Sq ++ )
+or decrement 
+.Sq ( -- )
 .Va name
 or its
 .Va index
@@ -3898,14 +3855,7 @@
 Components of
 .Va expr
 must be separated by spaces.
-.RE
-.PD
-.TP 8
-.B alias \fR[
-.Va name
-[
-.Va wordlist
-]]
+.It Ar alias[name[wordlist]]
 Without arguments, prints all aliases.
 With
 .Va name
@@ -3928,8 +3878,7 @@
 See also the
 .Va unalias
 builtin command.
-.TP 8
-.B alloc
+.It Ar alloc
 Shows the amount of dynamic memory acquired, broken down into used and free
 memory.
 With an argument shows the number of free and used blocks in each size
@@ -3939,9 +3888,7 @@
 command's output may vary across system types, because systems other than the 
VAX
 may use a different memory allocator.
 .TP 8
-.B bg \fR[\fB%
-.Va job
-...]
+.It Ar bg[%job...]
 Puts the specified jobs (or, without arguments, the current job)
 into the background, continuing each if it is stopped.
 .Va job
@@ -3957,35 +3904,10 @@
 under
 .Va Jobs
 .Pp
-.B bindkey \fR[
-.Fl l\fR|
-.Fl d\fR|
-.Fl e\fR|
-.Fl v\fR|
-.Fl u\fR] (+)
-.br
-.Va bindkey
-[
-.Fl a\fR] [
-.Fl b\fR] [
-.Fl k\fR] [
-.Fl r\fR] [
-.Fl \-\fR]
-.Va key
-(+)
-.PD 0
-.TP 8
-.Va bindkey
-[
-.Fl a\fR] [
-.Fl b\fR] [
-.Fl k\fR] [
-.Fl c\fR|
-.Fl s\fR] [
-.Fl \-\fR]
-.Va key command
-(+)
-.\" .B macro can't take too many words, so I used \fB in the previous tags
+.It Ar bindkey Oo Fl l Ns | Ns Fl d Ns | Ns Fl e Ns | Ns Fl v Ns | Ns Fl u Oc 
(+)
+.It Ar bindkey Oo Fl a Oc Oo Fl b Oc Oo Fl k Oc Oo Fl r Oc Oo Fl Fl Oc Ar key 
(+)
+.It Ar bindkey Oo Fl a Oc Oo Fl b Oc Oo Fl k Oc Oo Fl c Ns | Ns Fl s Oc Oo Fl 
Fl Oc Ar key command (+)
+.\" .It Ar macro can't take too many words, so I used \fB in the previous tags
 Without options, the first form lists all bound keys and the editor command to 
which each is bound,
 the second form lists the editor command to which
 .Va key
@@ -3995,43 +3917,35 @@
 to
 .Va key
 Options include:
-.PD
 .Pp
-.PD 0
-.RS +8
-.TP 4
-.Fl l
+.Bl -tag -width XXX -compact
+.It Fl l
 Lists all editor commands and a short description of each.
-.TP 4
-.Fl d
+.It Fl d
 Binds all keys to the standard bindings for the default editor,
 as per
 .Va -e
 and
 .Va -v
 below.
-.TP 4
-.Fl e
+.It Fl e
 Binds all keys to
 .Va emacs
 (1)\-style bindings.
 Unsets
 .Va vimode
-.TP 4
-.Fl v
+.It Fl v
 Binds all keys to
 .Va vi
 (1)\-style bindings.
 Sets
 .Va vimode
-.TP 4
-.Fl a
+.It Fl a
 Lists or changes key-bindings in the alternative key map.
 This is the key map used in
 .Va vimode
 command mode.
-.TP 4
-.Fl b
+.It Fl b
 .Va key
 is interpreted as
 a control character written ^
@@ -4059,8 +3973,7 @@
 (e.g.,
 .Sq X-A
 ).
-.TP 4
-.Fl k
+.It Fl k
 .Va key
 is interpreted as a symbolic arrow key name, which may be one of
 `down',
@@ -4069,8 +3982,7 @@
 .Sq left
 or
 .Sq right
-.TP 4
-.Fl r
+.It Fl r
 Removes
 .Va key
 's binding.
@@ -4085,13 +3997,11 @@
 (q.v.), it unbinds
 .Va key
 completely.
-.TP 4
-.Fl c
+.It Fl c
 .Va command
 is interpreted as a builtin or external command instead of an
 editor command.
-.TP 4
-.Fl s
+.It Fl s
 .Va command
 is taken as a literal string and treated as terminal input
 when
@@ -4101,15 +4011,14 @@
 .Va command
 are themselves
 reinterpreted, and this continues for ten levels of interpretation.
-.TP 4
-.Fl \-
+.It Fl \&-
 Forces a break from option processing, so the next word is taken as
 .Va key
-even if it begins with '\-'.
-.TP 4
-.Fl u \fR(or any invalid option)
+even if it begins with '\&-'.
+.It Fl u 
+(or any invalid option)
 Prints a usage message.
-.PD
+.El
 .Pp
 .Va key
 may be a single character or a string.
@@ -4137,48 +4046,35 @@
 escape sequences (in the style of System V
 .Va echo
 (1)) as follows:
-.RS +4
-.TP 8
-.PD 0
-.B \ea
+.Pp
+.Bl -tag -width XXXX -compact -offset indent
+.It \ea
 Bell
-.TP 8
-.B \eb
+.It \eb
 Backspace
-.TP 8
-.B \ee
+.It \ee
 Escape
-.TP 8
-.B \ef
+.It \ef
 Form feed
-.TP 8
-.B \en
+.It \en
 Newline
-.TP 8
-.B \er
+.It \er
 Carriage return
-.TP 8
-.B \et
+.It \et
 Horizontal tab
-.TP 8
-.B \ev
+.It \ev
 Vertical tab
-.TP 8
-.B \e\fInnn
+.It \e\fInnn
 The ASCII character corresponding to the octal number
 .Va nnn
-.PD
-.RE
+.El
 .Pp
 `\e' nullifies the special meaning of the following character, if it has
 any, notably
 .Sq \e
 and
 .Sq ^
-.RE
-.TP 8
-.B bs2cmd
-.Va bs2000-command
+.It bs2cmd Va bs2000-command
 (+)
 Passes
 .Va bs2000-command
@@ -4186,8 +4082,7 @@
 execution. Only non-interactive commands can be executed, and it is
 not possible to execute any command that would overlay the image
 of the current process, like /EXECUTE or /CALL-PROCEDURE. (BS2000 only)
-.TP 8
-.B break
+.It break
 Causes execution to resume after the
 .Va end
 of the nearest
@@ -4199,17 +4094,16 @@
 current line are executed.
 Multi-level breaks are thus
 possible by writing them all on one line.
-.TP 8
-.B breaksw
+.It breaksw
 Causes a break from a
 .Va switch
 , resuming after the
 .Va endsw
-.TP 8
-.B builtins \fR(+)
+
+.It builtins \fR(+)
 Prints the names of all builtin commands.
-.TP 8
-.B bye \fR(+)
+
+.It bye \fR(+)
 A synonym for the
 .Va logout
 builtin command.
@@ -4217,13 +4111,13 @@
 see the
 .Va version
 shell variable.
-.TP 8
-.B case \fIlabel\fB:
+
+.It case \fIlabel\fB:
 A label in a
 .Va switch
 statement as discussed below.
-.TP 8
-.B cd \fR[
+
+.It cd \fR[
 .Fl p\fR] [
 .Fl l\fR] [
 .Fl n\fR|
@@ -4300,13 +4194,13 @@
 .Va cdtohome
 shell variables.
 .RE
-.TP 8
-.B chdir
+
+.It chdir
 A synonym for the
 .Va cd
 builtin command.
-.TP 8
-.B complete \fR[
+
+.It complete \fR[
 .Va command
 [\fIword\fB/\fIpattern\fB/
 .Va list
@@ -4350,7 +4244,7 @@
 .PD 0
 .RS +4
 .TP 4
-.B c
+.It c
 Current-word completion.
 .Va pattern
 is a glob-pattern which must match the beginning of the current word on
@@ -4358,25 +4252,25 @@
 .Va pattern
 is ignored when completing the current word.
 .TP 4
-.B C
+.It C
 Like
 .Va c
 , but includes
 .Va pattern
 when completing the current word.
 .TP 4
-.B n
+.It n
 Next-word completion.
 .Va pattern
 is a glob-pattern which must match the beginning of the previous word on
 the command line.
 .TP 4
-.B N
+.It N
 Like
 .Va n
 , but must match the beginning of the word two before the current word.
 .TP 4
-.B p
+.It p
 Position-dependent completion.
 .Va pattern
 is a numeric range, with the same syntax used to index shell
@@ -4387,71 +4281,50 @@
 .Va list
 , the list of possible completions, may be one of the following:
 .Pp
-.PD 0
-.RS +4
-.TP 8
-.B a
+.Bl -tag
+.It a
 Aliases
-.TP 8
-.B b
+.It b
 Bindings (editor commands)
-.TP 8
-.B c
+.It c
 Commands (builtin or external commands)
-.TP 8
-.B C
+.It C
 External commands which begin with the supplied path prefix
-.TP 8
-.B d
+.It d
 Directories
-.TP 8
-.B D
+.It D
 Directories which begin with the supplied path prefix
-.TP 8
-.B e
+.It e
 Environment variables
-.TP 8
-.B f
+.It f
 Filenames
-.TP 8
-.B F
+.It F
 Filenames which begin with the supplied path prefix
-.TP 8
-.B g
+.It g
 Groupnames
-.TP 8
-.B j
+.It j
 Jobs
-.TP 8
-.B l
+.It l
 Limits
-.TP 8
-.B n
+.It n
 Nothing
-.TP 8
-.B s
+.It s
 Shell variables
-.TP 8
-.B S
+.It S
 Signals
-.TP 8
-.B t
+.It t
 Plain (
 .Dq text )
 files
-.TP 8
-.B T
+.It T
 Plain (
 .Dq text )
 files which begin with the supplied path prefix
-.TP 8
-.B v
+.It v
 Any variables
-.TP 8
-.B u
+.It u
 Usernames
-.TP 8
-.B x
+.It x
 Like
 .Va n ,
 but prints
@@ -4459,22 +4332,17 @@
 when
 .Va list-choices
 is used.
-.TP 8
-.B X
+.It X
 Completions
-.TP 8
 $
 .Va var
 Words from the variable
 .Va var
-.TP 8
 (...)
 Words from the given list
-.TP 8
 \`...\`
 Words from the output of command
-.PD
-.RE
+.El
 .Pp
 .Va select
 is an optional glob-pattern.
@@ -9650,7 +9518,7 @@
 malloc(3), setlocale(3), tty(4), a.out(5), termcap(5), environ(7),
 termio(7), Introduction to the C Shell
 .Sh VERSION
-This manual documents tcsh 6.21.00 (Astron) 2019-05-08.
+This manual documents tcsh 6.22.02 (Astron) 2019-12-04.
 .Sh AUTHORS
 .PD 0
 .TP 2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/tcsh-6.21.00/tests/lexical.at new/tcsh-6.22.02/tests/lexical.at
--- old/tcsh-6.21.00/tests/lexical.at   2019-05-08 20:39:28.000000000 +0200
+++ new/tcsh-6.22.02/tests/lexical.at   2019-12-04 18:51:54.000000000 +0100
@@ -572,7 +572,7 @@
 
 cat batchsystem.properties | grep '^jdbc_url' | sed -ne 
's/^[^=]*=[^@]*@[[:blank:]]*\([^$]*\)$/\1/p' | perl -pe 's/\s//g'  |  perl -pe 
's/\)/\\\)/g' | perl -pe 's/\(/\\\(/g' > ./output2
 
-diff -uprN ./output1 ./output2 >& /dev/null
+diff -ur ./output1 ./output2 >& /dev/null
 
 if ( $? != 0 ) then
   echo -n 'FAIL: tcsh does not have uniform output when `...` is used!'
@@ -591,7 +591,7 @@
 
 echo "$SERVICE_NAME_LOG" > ./actual_result
 
-diff -uprN ./expected_result ./actual_result >& /dev/null
+diff -ur ./expected_result ./actual_result >& /dev/null
 
 if ( $? != 0 ) then
   echo -n 'FAIL: tcsh has unexpected result when `...` is used!'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/tcsh-6.21.00/tests/subst.at new/tcsh-6.22.02/tests/subst.at
--- old/tcsh-6.21.00/tests/subst.at     2019-05-08 20:39:28.000000000 +0200
+++ new/tcsh-6.22.02/tests/subst.at     2019-12-04 18:51:54.000000000 +0100
@@ -50,11 +50,11 @@
 foo* ab{c,d} ^fo*
 ])
 
-AT_CHECK([echo 'echo ~; echo "$HOME"' | tcsh -f | uniq | wc -l | tr -d ' \t'],
+AT_CHECK([export HOME=$(getent passwd $(id -un) | awk -F: '{ print $(NF - 1) 
}'); echo 'echo ~; echo "$HOME"' | tcsh -f | uniq | wc -l | tr -d ' \t'],
 , [1
 ])
 
-AT_CHECK([echo "echo ~$(id -un)/foo; echo \"$HOME/foo\"" | tcsh -f | uniq dnl
+AT_CHECK([export HOME=$(getent passwd $(id -un) | awk -F: '{ print $(NF - 1) 
}'); echo "echo ~$(id -un)/foo; echo \"\$HOME/foo\"" | tcsh -f | uniq dnl
          | wc -l | tr -d ' \t'], , [1
 ])
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/tcsh-6.21.00/tests/syntax.at new/tcsh-6.22.02/tests/syntax.at
--- old/tcsh-6.21.00/tests/syntax.at    2019-05-08 20:39:28.000000000 +0200
+++ new/tcsh-6.22.02/tests/syntax.at    2019-12-04 18:51:54.000000000 +0100
@@ -2,6 +2,10 @@
 
 AT_SETUP([Command combinations])
 
+# False on OpenSolaris returns 255
+echo 'exit 1' > myfalse
+chmod +x myfalse
+
 AT_CHECK([tcsh -f -c 'echo ok|tr ok OK'], ,
 [OK
 ])
@@ -21,7 +25,7 @@
 [OK
 ])
 
-AT_CHECK([tcsh -f -c 'false && echo fail'], 1)
+AT_CHECK([tcsh -f -c './myfalse && echo fail'], 1)
 
 AT_CHECK([[tcsh -f -c '(sleep 1; echo async) & echo sync; wait' \
 | sed 's/ [0123456789]*$/ /']], ,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/tcsh-6.21.00/tests/variables.at new/tcsh-6.22.02/tests/variables.at
--- old/tcsh-6.21.00/tests/variables.at 2019-05-08 20:39:28.000000000 +0200
+++ new/tcsh-6.22.02/tests/variables.at 2019-12-04 18:51:54.000000000 +0100
@@ -41,13 +41,16 @@
 
 AT_SETUP([$ anyerror])
 
+echo 'exit 1' > myfalse
+chmod +x myfalse
+
 AT_DATA([exit_status.csh],
 [[echo $?anyerror $anyerror
-false | true ; echo $?
+./myfalse | true ; echo $?
 unset anyerror ; echo $?anyerror
-false | true ; echo $?
+./myfalse | true ; echo $?
 set anyerror
-false | true ; echo $?
+./myfalse | true ; echo $?
 ]])
 
 AT_CHECK([tcsh -f exit_status.csh],,
@@ -588,7 +591,7 @@
 setenv HOME /bar
 echo $home
 ]])
-AT_CHECK([tcsh -f home.csh], ,
+AT_CHECK([export HOME=$(getent passwd $(id -nu) | awk -F: '{ print $(NF - 1) 
}'); tcsh -f home.csh], ,
 [1
 1
 /foo
@@ -705,7 +708,7 @@
 
 
 AT_SETUP([$ cdtohome])
-AT_CHECK([tcsh -f -c 'cd'], 0)
+AT_CHECK([export HOME=$(getent passwd $(id -nu) | awk -F: '{ print $(NF - 1) 
}'); tcsh -f -c 'cd'], 0)
 AT_CLEANUP
 AT_SETUP([$ noimplicithome])
 AT_CHECK([tcsh -f -c 'unset cdtohome; cd'], 1, , [cd: Too few arguments.
@@ -781,10 +784,13 @@
 
 AT_SETUP([$ printexitvalue])
 
+echo 'exit 1' > myfalse
+chmod +x myfalse
+
 AT_DATA([printexitvalue.csh],
 [[echo $?printexitvalue
 set printexitvalue
-false
+./myfalse
 (exit 3 >/dev/null)
 :
 ]])


Reply via email to