Hello community,

here is the log from the commit of package tcsh for openSUSE:Factory checked in 
at 2019-05-14 13:29:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/tcsh (Old)
 and      /work/SRC/openSUSE:Factory/.tcsh.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "tcsh"

Tue May 14 13:29:28 2019 rev:63 rq:701745 version:6.21.00

Changes:
--------
--- /work/SRC/openSUSE:Factory/tcsh/tcsh.changes        2017-08-08 
11:57:47.124312527 +0200
+++ /work/SRC/openSUSE:Factory/.tcsh.new.5148/tcsh.changes      2019-05-14 
13:29:29.987205212 +0200
@@ -1,0 +2,41 @@
+Thu May  9 08:50:56 UTC 2019 - Dr. Werner Fink <[email protected]>
+
+- Update to tcsh bug fix version V6.21.00 - 20190508
+  *. Abort history loading on words and lines too long
+     https://bugzilla.redhat.com/show_bug.cgi?id=1598502
+  * Introduce GetCmdChar() to avoid open coding array access.
+  * make closem() not close sockets so as not to affect nss_ldap.
+     tcsh never creates sockets so that's ok (Miloslav Trmac)
+  * Make rmstar work with aliased rm
+  * convert match() from recursive to backtracking.
+  * Handle 8 bit characters in bindkey (Werner Fink)
+  * Look for tgetent in libtinfo as well (Werner Fink)
+  * Don't play pointer tricks that are undefined in modern c (Brooks Davis)
+  * Fix out of bounds read (Brooks Davis)
+  * Fix type of read in prompt confirmation (eg. rmstar) (David Kaspar)
+  * Delay arginp parsing
+- Drop patches now upstream
+  * tcsh-6.20-ptr-update.patch
+  * tcsh-6.20-rmstar.patch
+  * tcsh-6.20.00-8bit-cmdkeys.patch
+  * tcsh-6.20.00-postcmd.patch
+  * tcsh-closem.patch
+- Port patches
+  * tcsh-6.15.00-pipe.dif
+  * tcsh-6.16.00-norm-cmd.dif
+  * tcsh-6.17.06-dspmbyte.dif
+  * tcsh-6.18.03-catalogs.dif
+  * tcsh-6.18.03-colorls.dif
+  * tcsh-6.18.03-history-file-locking.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
+- Rename patch tcsh-6.20.00.dif which now becomes tcsh-6.21.00.dif
+
+-------------------------------------------------------------------
+Tue Apr  9 07:26:37 UTC 2019 - Dr. Werner Fink <[email protected]>
+
+- Add patch tcsh-6.20.00-postcmd.patch as workaround for bsc#1129112 
+- Modify tcsh-6.20.00.dif to fix sed syntax for test case lexical.at
+
+-------------------------------------------------------------------

Old:
----
  tcsh-6.20-ptr-update.patch
  tcsh-6.20-rmstar.patch
  tcsh-6.20.00-8bit-cmdkeys.patch
  tcsh-6.20.00.dif
  tcsh-6.20.00.tar.gz
  tcsh-closem.patch

New:
----
  tcsh-6.21.00.dif
  tcsh-6.21.00.tar.gz

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

Other differences:
------------------
++++++ tcsh.spec ++++++
--- /var/tmp/diff_new_pack.EPsDkW/_old  2019-05-14 13:29:30.931207744 +0200
+++ /var/tmp/diff_new_pack.EPsDkW/_new  2019-05-14 13:29:30.931207744 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package tcsh
 #
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -12,21 +12,21 @@
 # license that conforms to the Open Source Definition (Version 1.9)
 # published by the Open Source Initiative.
 
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
 
 Name:           tcsh
-Version:        6.20.00
+Version:        6.21.00
 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.20.00.tar.gz
+Source:         ftp.astron.com:/pub/tcsh/tcsh-6.21.00.tar.gz
 Source2:        bindkey.tcsh
 Source3:        complete.tcsh
-Patch0:         tcsh-6.20.00.dif
+Patch0:         tcsh-6.21.00.dif
 Patch1:         tcsh-6.15.00-pipe.dif
 Patch2:         tcsh-6.16.00-norm-cmd.dif
 Patch4:         tcsh-6.18.03-colorls.dif
@@ -37,16 +37,8 @@
 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-COMUNITY fix handling of rmstar
-Patch12:        tcsh-6.20-rmstar.patch
-# PATCH-FIX-COMUNITY fix updating pointers to a reallocated buffer of linked 
list elements
-Patch13:        tcsh-6.20-ptr-update.patch
-# PATCH-FIX-SUSE Do not convert current used control bytes into wide characters
-Patch14:        tcsh-6.20.00-8bit-cmdkeys.patch
-# PATCH-FIX-COMMUNITY Slightly less drastic closem() -- bsc#1028864
-Patch15:        tcsh-closem.patch
 # PATCH-FIX-SUSE Aoid dot locking as patch 9 and 11 do the job better
-Patch16:        tcsh-6.20.00-avoid-dotlock-for-fcntl.patch
+Patch12:        tcsh-6.20.00-avoid-dotlock-for-fcntl.patch
 BuildRequires:  autoconf
 BuildRequires:  fdupes
 BuildRequires:  ncurses-devel
@@ -75,11 +67,7 @@
 %patch9 -b .histlock
 %patch10 -b .histmerg
 %patch11 -b .histlckord
-%patch12 -p1 -b .rmstar
-%patch13 -p0 -b .ptrbuf
-%patch14 -p0 -b .8bit
-%patch15 -p0 -b .nss
-%patch16 -p0 -b .nodtlck
+%patch12 -p0 -b .nodtlck
 %patch0 -b .0
 
 %build
@@ -161,6 +149,11 @@
     sleep 1
     kill -TERM $pid
     rm -rf $SCREENDIR $TMPDIR
+    if grep -iq failed testsuite.log
+    then
+       echo FAILED
+       exit 127
+    fi
 
 %install
     for nls in nls/*.cat ; do
@@ -188,7 +181,8 @@
     find %{buildroot}%{_datadir}/locale -name tcsh | xargs chmod 0644
     %fdupes -s %{buildroot}%{_datadir}/locale
     mkdir -p %{buildroot}%{_docdir}/tcsh
-    install -m 0444 FAQ %{buildroot}%{_docdir}/tcsh/FAQ.tcsh
+    install -m 0644 FAQ       %{buildroot}%{_docdir}/tcsh/FAQ.tcsh
+    install -m 0644 Copyright %{buildroot}%{_docdir}/tcsh/Copyright
     mkdir -p %{buildroot}%{_sysconfdir}/profile.d/
     mkdir -p %{buildroot}%{_prefix}/bin
     install -m 644 $RPM_SOURCE_DIR/bindkey.tcsh  
%{buildroot}%{_sysconfdir}/profile.d/
@@ -212,6 +206,7 @@
 %config %{_sysconfdir}/profile.d/complete.tcsh
 %{_bindir}/csh
 %{_bindir}/tcsh
+%doc %{_docdir}/tcsh/Copyright
 %doc %{_docdir}/tcsh/FAQ.tcsh
 %doc %{_mandir}/man1/csh.1.gz
 %doc %{_mandir}/man1/tcsh.1.gz

++++++ complete.tcsh ++++++
--- /var/tmp/diff_new_pack.EPsDkW/_old  2019-05-14 13:29:30.975207861 +0200
+++ /var/tmp/diff_new_pack.EPsDkW/_new  2019-05-14 13:29:30.975207861 +0200
@@ -78,6 +78,8 @@
     complete dvips     n/*/f:*.dvi/
     complete tex       n/*/f:*.{tex,TEX}/      # Only files that match *.tex
     complete latex     n/*/f:*.{tex,TEX,texi,latex,ltx}/
+    complete pdftex    n/*/f:*.{tex,TEX}/      # Only files that match *.tex
+    complete pdflatex  n/*/f:*.{tex,TEX,texi,latex,ltx}/
     complete slitex    n/*/f:*.{tex,TEX,latex,ltx}/
     complete su                c/--/"(login fast preserve-environment command 
shell \
                        help version)"/ c/-/"(f l m p c s -)"/ \
@@ -442,6 +444,8 @@
     complete acroread  'p/*/f:*.{pdf,fdf,PDF,FDF}/'
     complete xpdf      'p/*/f:*.{pdf,fdf,PDF,FDF}/'
     complete kpdf      'p/*/f:*.{pdf,fdf,PDF,FDF}/'
+    complete qpdf      'p/*/f:*.{pdf,fdf,PDF,FDF}/'
+    complete evince    'p/*/f:*.{pdf,fdf,PDF,FDF}/'
     complete apachectl  'c/*/(start stop restart fullstatus status graceful \
                        configtest help)/'
     complete appletviewer      'p/*/f:*.class/'

++++++ tcsh-6.15.00-pipe.dif ++++++
--- /var/tmp/diff_new_pack.EPsDkW/_old  2019-05-14 13:29:30.983207883 +0200
+++ /var/tmp/diff_new_pack.EPsDkW/_new  2019-05-14 13:29:30.983207883 +0200
@@ -4,7 +4,7 @@
 
 --- sh.dol.c
 +++ sh.dol.c   2016-11-25 08:00:30.455106978 +0000
-@@ -429,6 +429,8 @@ Dgetdol(void)
+@@ -426,6 +426,8 @@ Dgetdol(void)
            size_t cbp = 0;
            int old_pintr_disabled;
  

++++++ tcsh-6.16.00-norm-cmd.dif ++++++
--- /var/tmp/diff_new_pack.EPsDkW/_old  2019-05-14 13:29:30.987207894 +0200
+++ /var/tmp/diff_new_pack.EPsDkW/_new  2019-05-14 13:29:30.987207894 +0200
@@ -1,6 +1,6 @@
 --- ed.defns.c
 +++ ed.defns.c 2007-08-28 10:02:42.862588122 +0000
-@@ -1412,16 +1412,6 @@ editinit(void)
+@@ -1404,16 +1404,6 @@ editinit(void)
      f->desc = CSAVS(3, 52, "Execute command");
  
      f++;
@@ -17,7 +17,7 @@
      f->name = "normalize-path";
      f->func = F_PATH_NORM;
      f->desc = CSAVS(3, 53, 
-@@ -1788,6 +1778,16 @@ editinit(void)
+@@ -1768,6 +1758,16 @@ editinit(void)
      f->desc = CSAVS(3, 121, "(WIN32 only) Page visible console window down");
  
      f++;

++++++ tcsh-6.17.06-dspmbyte.dif ++++++
--- /var/tmp/diff_new_pack.EPsDkW/_old  2019-05-14 13:29:30.995207915 +0200
+++ /var/tmp/diff_new_pack.EPsDkW/_new  2019-05-14 13:29:30.995207915 +0200
@@ -7,7 +7,7 @@
 
 --- sh.c
 +++ sh.c       2016-11-25 08:02:39.616478025 +0000
-@@ -864,9 +864,9 @@ main(int argc, char **argv)
+@@ -862,9 +862,9 @@ main(int argc, char **argv)
      /* PATCH IDEA FROM Issei.Suzuki VERY THANKS */
  #if defined(DSPMBYTE)
  #if defined(NLS) && defined(LC_CTYPE)
@@ -21,7 +21,7 @@
        autoset_dspmbyte(str2short(tcp));
 --- sh.func.c
 +++ sh.func.c  2016-11-25 08:02:39.616478025 +0000
-@@ -1424,14 +1424,6 @@ dosetenv(Char **v, struct command *c)
+@@ -1420,14 +1420,6 @@ dosetenv(Char **v, struct command *c)
      }
  #endif /* apollo */
  
@@ -36,7 +36,7 @@
      if (islocale_var(vp)) {
  #ifdef NLS
        int     k;
-@@ -1456,6 +1448,13 @@ dosetenv(Char **v, struct command *c)
+@@ -1452,6 +1444,13 @@ dosetenv(Char **v, struct command *c)
        nlsclose();
        nlsinit();
  # endif /* NLS_CATALOGS */
@@ -52,7 +52,7 @@
  # endif /* SETLOCALEBUG */
 --- sh.set.c
 +++ sh.set.c   2016-11-25 08:02:39.616478025 +0000
-@@ -1168,11 +1168,11 @@ update_dspmbyte_vars(void)
+@@ -1164,11 +1164,11 @@ update_dspmbyte_vars(void)
        dstr1 = vp->vec[0];
        if(eq (dstr1, STRsjis))
            iskcode = 1;
@@ -66,7 +66,7 @@
            iskcode = 4;
        else if ((dstr1[0] - '0') >= 0 && (dstr1[0] - '0') <= 3) {
            iskcode = 0;
-@@ -1256,7 +1256,7 @@ update_dspmbyte_vars(void)
+@@ -1252,7 +1252,7 @@ update_dspmbyte_vars(void)
        _enable_mbdisp = 0;
        dspmbyte_ls = 0;
      }
@@ -75,7 +75,7 @@
      {
        Char mbmapstr[300];
        for (lp = 0; lp < 256; lp++)
-@@ -1264,7 +1264,7 @@ update_dspmbyte_vars(void)
+@@ -1260,7 +1260,7 @@ update_dspmbyte_vars(void)
        mbmapstr[lp] = 0;
        setcopy(STRmbytemap, mbmapstr, VAR_READWRITE);
      }
@@ -84,7 +84,7 @@
  }
  
  /* dspkanji/dspmbyte autosetting */
-@@ -1273,6 +1273,7 @@ void
+@@ -1269,6 +1269,7 @@ void
  autoset_dspmbyte(const Char *pcp)
  {
      int i;
@@ -92,7 +92,7 @@
      static const struct dspm_autoset_Table {
        Char *n;
        Char *v;
-@@ -1295,13 +1296,18 @@ autoset_dspmbyte(const Char *pcp)
+@@ -1291,13 +1292,18 @@ autoset_dspmbyte(const Char *pcp)
  #if defined(HAVE_NL_LANGINFO) && defined(CODESET)
      static const struct dspm_autoset_Table dspmc[] = {
        { STRstarutfstar8, STRutf8 },
@@ -113,7 +113,7 @@
        for (i = 0; dspmc[i].n; i++) {
 --- tc.const.c
 +++ tc.const.c 2016-11-25 08:02:39.616478025 +0000
-@@ -133,10 +133,12 @@ Char STRmmliteral[]      = { '-', 'G', '\0' }
+@@ -130,10 +130,12 @@ Char STRmmliteral[]      = { '-', 'G', '\0' }
  Char STRmmliteral[]   = { '-', '-', 'l', 'i', 't', 'e', 'r', 'a', 'l', '\0' };
  # endif
  Char STReuc[]         = { 'e', 'u', 'c', '\0' };
@@ -126,7 +126,7 @@
  Char STRGB2312[]      = { 'g', 'b', '2', '3', '1', '2', '\0' };
  #  ifdef MBYTEDEBUG   /* Sorry, use for beta testing */
  Char STRmbytemap[]    = { 'm', 'b', 'y', 't', 'e', 'm', 'a', 'p', '\0' };
-@@ -443,7 +445,7 @@ Char STRkilldup[]  = { 'k', 'i', 'l', 'l
+@@ -440,7 +442,7 @@ Char STRkilldup[]  = { 'k', 'i', 'l', 'l
  Char STRshlvl[]               = { 's', 'h', 'l', 'v', 'l', '\0' };
  Char STRKSHLVL[]      = { 'S', 'H', 'L', 'V', 'L', '\0' };
  Char STRLANG[]                = { 'L', 'A', 'N', 'G', '\0' };

++++++ tcsh-6.18.03-catalogs.dif ++++++
--- /var/tmp/diff_new_pack.EPsDkW/_old  2019-05-14 13:29:31.003207937 +0200
+++ /var/tmp/diff_new_pack.EPsDkW/_new  2019-05-14 13:29:31.003207937 +0200
@@ -128,7 +128,7 @@
  
 --- sh.c
 +++ sh.c       2011-11-17 08:28:47.000000000 +0000
-@@ -169,8 +169,8 @@ static     void              st_restore    (void *);
+@@ -166,8 +166,8 @@ static     void              st_restore    (void *);
  static void
  add_localedir_to_nlspath(const char *path)
  {
@@ -139,7 +139,7 @@
      char *old;
      char *new, *new_p;
      size_t len;
-@@ -182,7 +182,7 @@ add_localedir_to_nlspath(const char *pat
+@@ -179,7 +179,7 @@ add_localedir_to_nlspath(const char *pat
      if (path == NULL)
          return;
  

++++++ tcsh-6.18.03-colorls.dif ++++++
--- /var/tmp/diff_new_pack.EPsDkW/_old  2019-05-14 13:29:31.011207958 +0200
+++ /var/tmp/diff_new_pack.EPsDkW/_new  2019-05-14 13:29:31.011207958 +0200
@@ -4,7 +4,7 @@
 
 --- tw.color.c
 +++ tw.color.c 2016-11-25 08:02:01.645250915 +0000
-@@ -89,6 +89,7 @@ static Variable variables[] = {
+@@ -85,6 +85,7 @@ static Variable variables[] = {
      VAR(NOS, "hl", "44;37"),    /* Reg file extra hard links, obsolete? */
      VAR(NOS, "mh", "44;37"),    /* Reg file extra hard links */
      VAR(NOS, "ca", "30;41"),    /* File with capability */
@@ -12,7 +12,7 @@
  };
  
  #define nvariables (sizeof(variables)/sizeof(variables[0]))
-@@ -325,7 +326,7 @@ parseLS_COLORS(const Char *value)
+@@ -321,7 +322,7 @@ parseLS_COLORS(const Char *value)
      size_t  i, len;
      const Char         *v;            /* pointer in value */
      char   *c;                        /* pointer in colors */
@@ -21,7 +21,7 @@
      jmp_buf_t osetexit;
      size_t omark;
  
-@@ -382,13 +383,10 @@ parseLS_COLORS(const Char *value)
+@@ -378,13 +379,10 @@ parseLS_COLORS(const Char *value)
                        if ((Char)variables[i].variable[0] == (v[0] & CHAR) &&
                            (Char)variables[i].variable[1] == (v[1] & CHAR))
                            break;
@@ -38,7 +38,7 @@
                }
                break;
            }
-@@ -447,12 +445,13 @@ print_color(const Char *fname, size_t le
+@@ -443,12 +441,13 @@ print_color(const Char *fname, size_t le
                break;
            }
        if (i == nvariables) {

++++++ tcsh-6.18.03-history-file-locking.patch ++++++
--- /var/tmp/diff_new_pack.EPsDkW/_old  2019-05-14 13:29:31.015207969 +0200
+++ /var/tmp/diff_new_pack.EPsDkW/_new  2019-05-14 13:29:31.019207980 +0200
@@ -14,19 +14,19 @@
 Changes by Fridolin Pokorny <[email protected]>
 
 ---
- sh.c       |  102 +++++++++++++++++++++++++++++++++++++--------------
- sh.decls.h |    4 +-
- sh.dol.c   |    2 -
- sh.err.c   |   16 ++++++++
- sh.h       |   18 +++++++++
- sh.hist.c  |  122 
++++++++++++++++++++++++++++++-------------------------------
- sh.lex.c   |    8 ++--
- sh.sem.c   |    2 -
- 8 files changed, 178 insertions(+), 96 deletions(-)
+ sh.c       |  102 ++++++++++++++++++++++++++++++++++++-------------
+ sh.decls.h |    4 +
+ sh.dol.c   |    2 
+ sh.err.c   |   16 +++++++
+ sh.h       |   18 ++++++++
+ sh.hist.c  |  126 
+++++++++++++++++++++++++++++--------------------------------
+ sh.lex.c   |    8 +--
+ sh.sem.c   |    2 
+ 8 files changed, 178 insertions(+), 100 deletions(-)
 
 --- sh.c
-+++ sh.c       2016-11-25 08:03:43.567176291 +0000
-@@ -141,6 +141,7 @@ struct saved_state {
++++ sh.c       2019-05-09 08:16:41.673852638 +0000
+@@ -138,6 +138,7 @@ struct saved_state {
      int         cantell;
      struct Bin          B;
      int                 justpr;
@@ -34,7 +34,7 @@
  };
  
  static        int               srccat        (Char *, Char *);
-@@ -1384,7 +1385,7 @@ main(int argc, char **argv)
+@@ -1359,7 +1360,7 @@ main(int argc, char **argv)
        /*
         * Source history before .login so that it is available in .login
         */
@@ -43,7 +43,7 @@
  #ifndef LOGINFIRST
        if (loginsh)
            (void) srccat(varval(STRhome), STRsldotlogin);
-@@ -1507,7 +1508,7 @@ static int
+@@ -1508,7 +1509,7 @@ static int
  srccat(Char *cp, Char *dp)
  {
      if (cp[0] == '/' && cp[1] == '\0') 
@@ -52,7 +52,7 @@
      else {
        Char *ep;
        char   *ptr;
-@@ -1523,7 +1524,7 @@ srccat(Char *cp, Char *dp)
+@@ -1524,7 +1525,7 @@ srccat(Char *cp, Char *dp)
        cleanup_push(ep, xfree);
        ptr = short2str(ep);
  
@@ -61,7 +61,7 @@
        cleanup_until(ep);
        return rv;
      }
-@@ -1537,20 +1538,49 @@ static int
+@@ -1538,20 +1539,49 @@ static int
  #else
  int
  #endif /*WINNT_NATIVE*/
@@ -123,7 +123,7 @@
  }
  
  
-@@ -1559,7 +1589,7 @@ srcfile(const char *f, int onlyown, int
+@@ -1560,7 +1590,7 @@ srcfile(const char *f, int onlyown, int
   * fd.
   */
  static void
@@ -132,7 +132,7 @@
  {
      st->insource      = insource;
      st->SHIN          = SHIN;
-@@ -1608,10 +1638,14 @@ st_save(struct saved_state *st, int unit
+@@ -1609,10 +1639,14 @@ st_save(struct saved_state *st, int unit
      st->onelflg               = onelflg;
      st->enterhist     = enterhist;
      st->justpr                = justpr;
@@ -148,7 +148,7 @@
      st->cantell               = cantell;
      cpybin(st->B, B);
  
-@@ -1650,7 +1684,7 @@ st_save(struct saved_state *st, int unit
+@@ -1651,7 +1685,7 @@ st_save(struct saved_state *st, int unit
      evalp     = 0;
      alvec     = al;
      alvecp    = 0;
@@ -157,7 +157,7 @@
      if (enterhist)
        HIST    = '\0';
      insource  = 1;
-@@ -1683,7 +1717,8 @@ st_restore(void *xst)
+@@ -1684,7 +1718,8 @@ st_restore(void *xst)
      }
      cpybin(B, st->B);
  
@@ -167,7 +167,7 @@
  
      insource  = st->insource;
      SHIN      = st->SHIN;
-@@ -1719,7 +1754,7 @@ st_restore(void *xst)
+@@ -1720,7 +1755,7 @@ st_restore(void *xst)
   * we don't chance it.        This occurs on ".cshrc"s and the like.
   */
  static void
@@ -176,7 +176,7 @@
  {
      struct saved_state st;
  
-@@ -1745,7 +1780,7 @@ srcunit(int unit, int onlyown, int hflg,
+@@ -1746,7 +1781,7 @@ srcunit(int unit, int onlyown, int hflg,
      }
  
      /* Save the current state and move us to a new state */
@@ -185,7 +185,7 @@
  
      /*
       * Now if we are allowing commands to be interrupted, we let ourselves be
-@@ -2087,7 +2122,7 @@ process(int catch)
+@@ -2088,7 +2123,7 @@ process(int catch)
         * elsewhere...
         */
        if (enterhist || (catch && intty && !whyles && !tellwhat && !arun))
@@ -194,7 +194,7 @@
  
        if (Expand && seterr)
            Expand = 0;
-@@ -2174,21 +2209,28 @@ process(int catch)
+@@ -2175,21 +2210,28 @@ process(int catch)
  void
  dosource(Char **t, struct command *c)
  {
@@ -226,7 +226,7 @@
      }
  
      f = globone(*t++, G_ERROR);
-@@ -2197,9 +2239,15 @@ dosource(Char **t, struct command *c)
+@@ -2198,9 +2240,15 @@ dosource(Char **t, struct command *c)
      xfree(f);
      t = glob_all_or_error(t);
      cleanup_push(t, blk_cleanup);
@@ -245,8 +245,8 @@
  
  /*
 --- sh.decls.h
-+++ sh.decls.h 2016-11-25 08:03:43.567176291 +0000
-@@ -38,6 +38,7 @@
++++ sh.decls.h 2019-05-09 08:16:41.673852638 +0000
+@@ -37,6 +37,7 @@
   */
  extern        Char             *gethdir       (const Char *);
  extern        void              dosource      (Char **, struct command *);
@@ -254,7 +254,7 @@
  extern        void              exitstat      (void);
  extern        void              goodbye       (Char **, struct command *);
  extern        void              importpath    (Char *);
-@@ -99,6 +100,7 @@ extern      void              cleanup_until_mark(void);
+@@ -98,6 +99,7 @@ extern       void              cleanup_until_mark(void);
  extern        size_t            cleanup_push_mark(void);
  extern        void              cleanup_pop_mark(size_t);
  extern        void              open_cleanup(void *);
@@ -262,7 +262,7 @@
  extern        void              opendir_cleanup(void *);
  extern        void              sigint_cleanup(void *);
  extern        void              sigprocmask_cleanup(void *);
-@@ -221,7 +223,7 @@ extern  struct Hist         *enthist       (int, str
+@@ -220,7 +222,7 @@ extern  struct Hist         *enthist       (int, str
  extern        void              savehist      (struct wordent *, int);
  extern        char             *fmthist       (int, ptr_t);
  extern        void              rechist       (Char *, int);
@@ -272,8 +272,8 @@
  extern        void              sethistory    (int);
  
 --- sh.dol.c
-+++ sh.dol.c   2016-11-25 08:03:43.571176209 +0000
-@@ -1120,6 +1120,6 @@ again:
++++ sh.dol.c   2019-05-09 08:16:41.673852638 +0000
+@@ -1117,6 +1117,6 @@ again:
      *obp = 0;
      tmp = short2str(obuf);
      (void) xwrite(0, tmp, strlen (tmp));
@@ -282,8 +282,8 @@
      cleanup_until(&inheredoc);
  }
 --- sh.err.c
-+++ sh.err.c   2016-11-25 08:03:43.571176209 +0000
-@@ -514,6 +514,22 @@ open_cleanup(void *xptr)
++++ sh.err.c   2019-05-09 08:16:41.677852563 +0000
+@@ -511,6 +511,22 @@ open_cleanup(void *xptr)
  }
  
  void
@@ -307,8 +307,8 @@
  {
      DIR *dir;
 --- sh.h
-+++ sh.h       2016-11-25 08:03:43.571176209 +0000
-@@ -50,6 +50,24 @@
++++ sh.h       2019-05-09 08:16:41.677852563 +0000
+@@ -49,6 +49,24 @@
  # include <inttypes.h>
  #endif
  
@@ -334,9 +334,9 @@
  typedef unsigned long intptr_t;
  #endif
 --- sh.hist.c
-+++ sh.hist.c  2016-11-25 08:03:43.571176209 +0000
-@@ -36,6 +36,8 @@ RCSID("$tcsh: sh.hist.c,v 3.61 2015/06/0
- 
++++ sh.hist.c  2019-05-09 08:36:00.679789483 +0000
+@@ -32,6 +32,8 @@
+ #include "sh.h"
  #include <stdio.h>    /* for rename(2), grr. */
  #include <assert.h>
 +#include <unistd.h>
@@ -344,7 +344,7 @@
  #include "tc.h"
  #include "dotlock.h"
  
-@@ -46,14 +48,6 @@ Char HistLit = 0;
+@@ -42,14 +44,6 @@ Char HistLit = 0;
  static        int     heq     (const struct wordent *, const struct wordent 
*);
  static        void    hfree   (struct Hist *);
  
@@ -359,7 +359,7 @@
  /*
   * C shell
   */
-@@ -145,13 +139,13 @@ discardExcess(int hlen)
+@@ -141,13 +135,13 @@ discardExcess(int hlen)
  void
  savehist(
    struct wordent *sp,
@@ -375,7 +375,7 @@
      discardExcess(histlen);
  }
  
-@@ -923,7 +917,7 @@ enthist(
+@@ -919,7 +913,7 @@ enthist(
    int event,                          /* newly incremented global eventno */
    struct wordent *lp,
    int docopy,
@@ -384,7 +384,7 @@
    int hlen)                           /* -1 if unknown */
  {
      struct Hist *p = NULL, *pp = &Histlist, *pTime = NULL;
-@@ -943,7 +937,7 @@ enthist(
+@@ -939,7 +933,7 @@ enthist(
                    Htime = p->Htime;
                  /* If we are merging, and the old entry is at the place we 
want
                   * to insert the new entry, then remember the place. */
@@ -393,7 +393,7 @@
                      pTime = p->Hprev;
                if (!fastMergeErase)
                    renumberHist(p);    /* Reset Href of subsequent entries */
-@@ -1002,7 +996,7 @@ enthist(
+@@ -998,7 +992,7 @@ enthist(
      /* The head of history list is the default insertion point.
         If merging, advance insertion point, in pp, according to Htime. */
      /* XXX -- In histdup=all, Htime values can be non-monotonic. */
@@ -402,7 +402,7 @@
          pp = mergeInsertionPoint(np, pTime);
          for (p = pp->Hnext; p && p->Htime == np->Htime; pp = p, p = p->Hnext) 
{
              if (heq(&p->Hlex, &np->Hlex)) {
-@@ -1041,11 +1035,11 @@ hfree(struct Hist *hp)
+@@ -1037,11 +1031,11 @@ hfree(struct Hist *hp)
  }
  
  PG_STATIC void
@@ -416,7 +416,7 @@
        int old_output_raw;
  
         /*
-@@ -1057,7 +1051,7 @@ phist(struct Hist *hp, int hflg)
+@@ -1053,7 +1047,7 @@ phist(struct Hist *hp, int hflg)
        old_output_raw = output_raw;
          output_raw = 1;
        cleanup_push(&old_output_raw, output_raw_restore);
@@ -425,7 +425,7 @@
            /* 
             * Make file entry with history time in format:
             * "+NNNNNNNNNN" (10 digits, left padded with ascii '0') 
-@@ -1088,7 +1082,7 @@ phist(struct Hist *hp, int hflg)
+@@ -1084,7 +1078,7 @@ phist(struct Hist *hp, int hflg)
  }
  
  PG_STATIC void
@@ -434,7 +434,7 @@
  {
      struct Hist *hp;
      if (setintr) {
-@@ -1097,7 +1091,7 @@ dophist(int n, int hflg)
+@@ -1093,7 +1087,7 @@ dophist(int n, int hflg)
        pintr_push_enable(&old_pintr_disabled);
        cleanup_until(&old_pintr_disabled);
      }
@@ -443,7 +443,7 @@
        /* Since the history list is stored most recent first, non-reversing
         * print needs to print (backwards) up the list. */
        if ((unsigned)n >= histCount)
-@@ -1111,10 +1105,10 @@ dophist(int n, int hflg)
+@@ -1107,10 +1101,10 @@ dophist(int n, int hflg)
        if (hp == NULL)
            return;                     /* nothing to print */
        for (; hp != &Histlist; hp = hp->Hprev)
@@ -456,7 +456,7 @@
      }
  }
  
-@@ -1122,7 +1116,7 @@ dophist(int n, int hflg)
+@@ -1118,7 +1112,7 @@ dophist(int n, int hflg)
  void
  dohist(Char **vp, struct command *c)
  {
@@ -465,7 +465,7 @@
  
      USE(c);
      if (getn(varval(STRhistory)) == 0)
-@@ -1133,40 +1127,40 @@ dohist(Char **vp, struct command *c)
+@@ -1129,40 +1123,40 @@ dohist(Char **vp, struct command *c)
        while (*++vp2)
            switch (*vp2) {
            case 'c':
@@ -517,7 +517,7 @@
        rechist(*vp, 1);
      else {
        if (*vp)
-@@ -1174,7 +1168,7 @@ dohist(Char **vp, struct command *c)
+@@ -1170,7 +1164,7 @@ dohist(Char **vp, struct command *c)
        else {
            n = getn(varval(STRhistory));
        }
@@ -526,7 +526,7 @@
      }
  }
  
-@@ -1222,10 +1216,9 @@ dotlock_cleanup(void* lockpath)
+@@ -1218,10 +1212,9 @@ dotlock_cleanup(void* lockpath)
  void
  rechist(Char *fname, int ref)
  {
@@ -539,7 +539,7 @@
      struct stat st;
      static Char   *dumphist[] = {STRhistory, STRmhT, 0, 0};
  
-@@ -1294,46 +1287,49 @@ rechist(Char *fname, int ref)
+@@ -1290,50 +1283,49 @@ rechist(Char *fname, int ref)
                    cleanup_push(lockpath, dotlock_cleanup);
  #endif
            }
@@ -593,7 +593,11 @@
 +      SHOUT = ftmp;
 +    }
      didfds = oldidfds;
+-#ifndef WINNT_NATIVE
 -    (void)rename(path, short2str(fname));
+-#else
+-    (void)ReplaceFile( short2str(fname),path,NULL,0,NULL,NULL);
+-#endif
      cleanup_until(fname);
  }
  
@@ -611,7 +615,7 @@
  
      if (fname != NULL)
        loadhist_cmd[2] = fname;
-@@ -1342,17 +1338,19 @@ loadhist(Char *fname, int mflg)
+@@ -1342,17 +1334,19 @@ loadhist(Char *fname, int mflg)
      else
        loadhist_cmd[2] = STRtildothist;
  
@@ -636,8 +640,8 @@
  
  void
 --- sh.lex.c
-+++ sh.lex.c   2016-11-25 08:03:43.571176209 +0000
-@@ -1602,7 +1602,7 @@ wide_read(int fildes, Char *buf, size_t
++++ sh.lex.c   2019-05-09 08:16:41.677852563 +0000
+@@ -1608,7 +1608,7 @@ wide_read(int fildes, Char *buf, size_t
      /* Throwing away possible partial multibyte characters on error if the
         stream is not seekable */
      err = errno;
@@ -646,7 +650,7 @@
      errno = err;
      return res != 0 ? res : r;
  }
-@@ -1617,7 +1617,7 @@ bgetc(void)
+@@ -1623,7 +1623,7 @@ bgetc(void)
      if (cantell) {
        if (fseekp < fbobp || fseekp > feobp) {
            fbobp = feobp = fseekp;
@@ -655,7 +659,7 @@
        }
        if (fseekp == feobp) {
  #ifdef WIDE_STRINGS
-@@ -1821,7 +1821,7 @@ btell(struct Ain *l)
+@@ -1827,7 +1827,7 @@ btell(struct Ain *l)
  void
  btoeof(void)
  {
@@ -664,7 +668,7 @@
      aret = TCSH_F_SEEK;
      fseekp = feobp;
      alvec = NULL;
-@@ -1839,7 +1839,7 @@ settell(void)
+@@ -1845,7 +1845,7 @@ settell(void)
      cantell = 0;
      if (arginp || onelflg || intty)
        return;
@@ -674,8 +678,8 @@
      fbuf = xcalloc(2, sizeof(Char **));
      fblocks = 1;
 --- sh.sem.c
-+++ sh.sem.c   2016-11-25 08:03:43.571176209 +0000
-@@ -909,7 +909,7 @@ doio(struct command *t, int *pipein, int
++++ sh.sem.c   2019-05-09 08:16:41.677852563 +0000
+@@ -905,7 +905,7 @@ doio(struct command *t, int *pipein, int
            fd = xopen(tmp, O_WRONLY|O_APPEND|O_LARGEFILE);
  #else /* !O_APPEND */
            fd = xopen(tmp, O_WRONLY|O_LARGEFILE);

++++++ tcsh-6.18.03-history-merge.dif ++++++
--- /var/tmp/diff_new_pack.EPsDkW/_old  2019-05-14 13:29:31.023207990 +0200
+++ /var/tmp/diff_new_pack.EPsDkW/_new  2019-05-14 13:29:31.023207990 +0200
@@ -4,7 +4,7 @@
 
 --- sh.hist.c
 +++ sh.hist.c  2015-05-05 07:16:26.382084939 +0000
-@@ -103,7 +103,7 @@ hremove(struct Hist *hp)
+@@ -99,7 +99,7 @@ hremove(struct Hist *hp)
  
  /* Prune length of history list to specified size by history variable. */
  PG_STATIC void
@@ -13,7 +13,7 @@
  {
      struct Hist *hp, *np;
      if (histTail == NULL) {
-@@ -114,7 +114,7 @@ discardExcess(int hlen)
+@@ -110,7 +110,7 @@ discardExcess(int hlen)
       * the list is still too long scan the whole list as before.  But only do 
a
       * full scan if the list is more than 6% (1/16th) too long. */
      while (histCount > (unsigned)hlen && (np = Histlist.Hnext)) {
@@ -22,7 +22,7 @@
              hremove(np), hfree(np);
          else
              break;
-@@ -129,7 +129,7 @@ discardExcess(int hlen)
+@@ -125,7 +125,7 @@ discardExcess(int hlen)
        return;                         /* don't bother doing the full scan */
      for (hp = &Histlist; histCount > (unsigned)hlen &&
        (np = hp->Hnext) != NULL;)
@@ -31,7 +31,7 @@
              hremove(np), hfree(np);
          else
              hp = np;
-@@ -146,7 +146,7 @@ savehist(
+@@ -142,7 +142,7 @@ savehist(
        return;
      if (sp)
          (void) enthist(++eventno, sp, 1, flg, histlen);
@@ -40,7 +40,7 @@
  }
  
  #define USE_JENKINS_HASH 1
-@@ -1357,5 +1357,16 @@ void
+@@ -1353,5 +1353,16 @@ void
  sethistory(int n)
  {
      histlen = n;

++++++ tcsh-6.19.00-history-file-locking-order.patch ++++++
--- /var/tmp/diff_new_pack.EPsDkW/_old  2019-05-14 13:29:31.031208012 +0200
+++ /var/tmp/diff_new_pack.EPsDkW/_new  2019-05-14 13:29:31.031208012 +0200
@@ -4,7 +4,7 @@
 
 --- sh.c
 +++ sh.c       2016-11-25 08:05:00.501610199 +0000
-@@ -1540,18 +1540,18 @@ int
+@@ -1541,18 +1541,18 @@ int
  #endif /*WINNT_NATIVE*/
  srcfile(const char *f, int onlyown, int flg, Char **av)
  {
@@ -31,7 +31,7 @@
  
      if (flg & (HIST_FILE_WRLCK | HIST_FILE_RDLCK)) {
        struct flock fl;
-@@ -1561,26 +1561,35 @@ srcfile(const char *f, int onlyown, int
+@@ -1562,26 +1562,35 @@ srcfile(const char *f, int onlyown, int
        fl.l_start = 0;
        fl.l_len = 0;
  

++++++ tcsh-6.20.00-avoid-dotlock-for-fcntl.patch ++++++
--- /var/tmp/diff_new_pack.EPsDkW/_old  2019-05-14 13:29:31.039208033 +0200
+++ /var/tmp/diff_new_pack.EPsDkW/_new  2019-05-14 13:29:31.039208033 +0200
@@ -4,7 +4,7 @@
 
 --- sh.hist.c
 +++ sh.hist.c  2017-07-19 10:01:20.795354927 +0000
-@@ -1278,6 +1278,11 @@ rechist(Char *fname, int ref)
+@@ -1274,6 +1274,11 @@ rechist(Char *fname, int ref)
        }
  
        if (merge) {
@@ -16,7 +16,7 @@
            if (lock) {
  #ifndef WINNT_NATIVE
                char *lockpath = strsave(short2str(fname));
-@@ -1287,6 +1292,7 @@ rechist(Char *fname, int ref)
+@@ -1283,6 +1288,7 @@ rechist(Char *fname, int ref)
                    cleanup_push(lockpath, dotlock_cleanup);
  #endif
            }

++++++ tcsh-6.20.00.dif -> tcsh-6.21.00.dif ++++++
--- /work/SRC/openSUSE:Factory/tcsh/tcsh-6.20.00.dif    2016-12-02 
16:36:38.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.tcsh.new.5148/tcsh-6.21.00.dif  2019-05-14 
13:29:29.911205008 +0200
@@ -1,8 +1,6 @@
 ---
  config/linux |   10 ++++++++++
- config_f.h   |   11 ++++++++---
- configure    |    2 +-
- configure.ac |    2 +-
+ config_f.h   |    9 +++++++--
  glob.h       |    3 ++-
  pathnames.h  |    2 +-
  sh.c         |    3 +++
@@ -12,10 +10,10 @@
  tc.who.c     |    3 +++
  tcsh.man     |    2 +-
  tw.h         |    4 ++++
- 13 files changed, 47 insertions(+), 15 deletions(-)
+ 11 files changed, 44 insertions(+), 12 deletions(-)
 
 --- config/linux
-+++ config/linux       2016-11-25 09:07:12.893851835 +0000
++++ config/linux       2019-05-09 08:41:54.237060106 +0000
 @@ -92,6 +92,9 @@
  #ifndef _SVID_SOURCE
  # define _SVID_SOURCE
@@ -39,8 +37,8 @@
 +
  #endif /* _h_config */
 --- config_f.h
-+++ config_f.h 2016-11-25 08:18:00.925719793 +0000
-@@ -64,7 +64,12 @@
++++ config_f.h 2019-05-09 08:41:54.237060106 +0000
+@@ -63,7 +63,12 @@
  /*
   * LOGINFIRST   Source ~/.login before ~/.cshrc
   */
@@ -54,7 +52,7 @@
  
  /*
   * VIDEFAULT    Make the VI mode editor the default
-@@ -158,7 +163,7 @@
+@@ -157,7 +162,7 @@
   *            successful, set $REMOTEHOST to the name or address of the
   *            host
   */
@@ -63,39 +61,8 @@
  
  /*
   * COLOR_LS_F Do you want to use builtin color ls-F ?
-@@ -181,7 +186,7 @@
-  * RCSID      This defines if we want rcs strings in the binary or not
-  *
-  */
--#if !defined(lint) && !defined(SABER) && !defined(__CLCC__)
-+#if !defined(lint) && !defined(SABER) && !defined(__CLCC__) && 
!defined(__linux__)
- # ifndef __GNUC__
- #  define RCSID(id) static char *rcsid = (id);
- # else
---- configure
-+++ configure  2016-11-25 08:18:00.925719793 +0000
-@@ -4284,7 +4284,7 @@ return tgetent ();
-   return 0;
- }
- _ACEOF
--for ac_lib in '' termlib termcap curses ncurses; do
-+for ac_lib in '' termlib termcap tinfo curses ncurses; do
-   if test -z "$ac_lib"; then
-     ac_res="none required"
-   else
---- configure.ac
-+++ configure.ac       2016-11-25 08:20:19.034907025 +0000
-@@ -317,7 +317,7 @@ esac
- dnl Checks for libraries
- AC_SEARCH_LIBS(crypt, crypt)
- AC_SEARCH_LIBS(getspnam, sec)
--AC_SEARCH_LIBS([tgetent], [termlib termcap curses ncurses], [], [
-+AC_SEARCH_LIBS([tgetent], [termlib termcap tinfo curses ncurses], [], [
-    AC_MSG_ERROR([unable to find the tgetent() function])
- ])
- AC_SEARCH_LIBS(gethostbyname, nsl)
 --- glob.h
-+++ glob.h     2016-11-25 08:18:00.925719793 +0000
++++ glob.h     2019-05-09 08:41:54.237060106 +0000
 @@ -72,6 +72,7 @@ typedef struct {
  #define       GLOB_NOSYS      (-4)    /* Implementation does not support 
function. */
  
@@ -114,8 +81,8 @@
  int   glob (const char *, int, int (*)(const char *, int), glob_t *);
  void  globfree (glob_t *);
 --- pathnames.h
-+++ pathnames.h        2016-11-25 08:18:00.925719793 +0000
-@@ -84,7 +84,7 @@
++++ pathnames.h        2019-05-09 08:41:54.237060106 +0000
+@@ -83,7 +83,7 @@
  # endif /* !_PATH_DOTLOGIN */
  #endif /* sgi || OREO || cray || AMIX || CDC */
  
@@ -125,8 +92,8 @@
  #endif /* _CRAYCOM && !_PATH_TCSHELL */
  
 --- sh.c
-+++ sh.c       2016-11-25 08:18:00.925719793 +0000
-@@ -1371,6 +1371,9 @@ main(int argc, char **argv)
++++ sh.c       2019-05-09 08:41:54.237060106 +0000
+@@ -1346,6 +1346,9 @@ main(int argc, char **argv)
            setintr = osetintr;
            parintr = oparintr;
        }
@@ -137,8 +104,8 @@
        if (loginsh)
            (void) srccat(varval(STRhome), STRsldotlogin);
 --- tc.alloc.c
-+++ tc.alloc.c 2016-11-25 08:18:00.929719710 +0000
-@@ -521,7 +521,7 @@ smalloc(size_t n)
++++ tc.alloc.c 2019-05-09 08:41:54.237060106 +0000
+@@ -518,7 +518,7 @@ smalloc(size_t n)
  {
      ptr_t   ptr;
  
@@ -147,7 +114,7 @@
  
  #ifdef USE_SBRK
      if (membot == NULL)
-@@ -544,7 +544,7 @@ srealloc(ptr_t p, size_t n)
+@@ -541,7 +541,7 @@ srealloc(ptr_t p, size_t n)
  {
      ptr_t   ptr;
  
@@ -156,7 +123,7 @@
  
  #ifdef USE_SBRK
      if (membot == NULL)
-@@ -568,7 +568,7 @@ scalloc(size_t s, size_t n)
+@@ -565,7 +565,7 @@ scalloc(size_t s, size_t n)
      ptr_t   ptr;
  
      n *= s;
@@ -165,7 +132,7 @@
  
  #ifdef USE_SBRK
      if (membot == NULL)
-@@ -593,8 +593,10 @@ scalloc(size_t s, size_t n)
+@@ -590,8 +590,10 @@ scalloc(size_t s, size_t n)
  void
  sfree(ptr_t p)
  {
@@ -178,8 +145,8 @@
  
  #endif /* SYSMALLOC */
 --- tc.func.c
-+++ tc.func.c  2016-11-25 08:18:00.929719710 +0000
-@@ -725,9 +725,13 @@ auto_lock(void)
++++ tc.func.c  2019-05-09 08:41:54.237060106 +0000
+@@ -721,9 +721,13 @@ auto_lock(void)
            handle_pending_signals();
            errno = 0;
        }
@@ -194,7 +161,7 @@
  
  #else
  
-@@ -1934,7 +1938,7 @@ getremotehost(int dest_fd)
+@@ -1937,7 +1941,7 @@ getremotehost(int dest_fd)
             * have not caught up yet.
             */
            addr.s_addr = inet_addr(name);
@@ -204,8 +171,8 @@
            else {
                if (sptr != name) {
 --- tc.str.c
-+++ tc.str.c   2016-11-25 08:18:00.929719710 +0000
-@@ -350,7 +350,7 @@ s_strlen(const Char *str)
++++ tc.str.c   2019-05-09 08:41:54.241060031 +0000
+@@ -347,7 +347,7 @@ s_strlen(const Char *str)
  {
      size_t n;
  
@@ -215,8 +182,8 @@
      return (n);
  }
 --- tc.who.c
-+++ tc.who.c   2016-11-25 08:18:00.929719710 +0000
-@@ -280,6 +280,9 @@ watch_login(int force)
++++ tc.who.c   2019-05-09 08:41:54.241060031 +0000
+@@ -259,6 +259,9 @@ watch_login(int force)
      }
      stlast = sta.st_mtime;
  #if defined(HAVE_GETUTENT) || defined(HAVE_GETUTXENT)
@@ -227,8 +194,8 @@
  #else
      if ((utmpfd = xopen(TCSH_PATH_UTMP, O_RDONLY|O_LARGEFILE)) < 0) {
 --- tcsh.man
-+++ tcsh.man   2016-11-25 08:21:43.605184550 +0000
-@@ -603,7 +603,7 @@ Repeating \fIdabbrev-expand\fR without a
++++ tcsh.man   2019-05-09 08:41:54.241060031 +0000
+@@ -602,7 +602,7 @@ Repeating \fIdabbrev-expand\fR without a
  changes to the next previous word etc., skipping identical matches
  much like \fIhistory-search-backward\fR does.
  .TP 8
@@ -238,8 +205,8 @@
  See also \fIdelete-char-or-list-or-eof\fR.
  Cursor behavior modified by \fBvimode\fR.
 --- tw.h
-+++ tw.h       2016-11-25 08:18:00.929719710 +0000
-@@ -33,6 +33,10 @@
++++ tw.h       2019-05-09 08:41:54.241060031 +0000
+@@ -32,6 +32,10 @@
  #ifndef _h_tw
  #define _h_tw
  

++++++ tcsh-6.20.00.tar.gz -> tcsh-6.21.00.tar.gz ++++++
++++ 7984 lines of diff (skipped)


Reply via email to