Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package blame for openSUSE:Factory checked 
in at 2026-02-23 16:13:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/blame (Old)
 and      /work/SRC/openSUSE:Factory/.blame.new.1977 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "blame"

Mon Feb 23 16:13:19 2026 rev:5 rq:1334479 version:1.4+t20260222

Changes:
--------
--- /work/SRC/openSUSE:Factory/blame/blame.changes      2025-10-17 
17:26:52.468752264 +0200
+++ /work/SRC/openSUSE:Factory/.blame.new.1977/blame.changes    2026-02-23 
16:15:20.100224955 +0100
@@ -1,0 +2,8 @@
+Mon Feb 23 09:41:21 UTC 2026 - Manfred Schwarb <[email protected]>
+
+- update to version 1.4 snapshot t20260222:
+  * configure updates
+  * adjusted use of "const"
+  * regenerate parser.c and lexer.c
+
+-------------------------------------------------------------------

Old:
----
  rcs-blame-snapshots-t20251006.tar.gz

New:
----
  rcs-blame-snapshots-t20260222.tar.gz

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

Other differences:
------------------
++++++ blame.spec ++++++
--- /var/tmp/diff_new_pack.bkxHAN/_old  2026-02-23 16:15:20.628246726 +0100
+++ /var/tmp/diff_new_pack.bkxHAN/_new  2026-02-23 16:15:20.632246891 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package blame
 #
-# Copyright (c) 2025 SUSE LLC and contributors
+# Copyright (c) 2026 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
 
 
 %define origversion 1.4
-%define tversion t20251006
+%define tversion t20260222
 
 Name:           blame
 Version:        %{origversion}+%{tversion}

++++++ rcs-blame-snapshots-t20251006.tar.gz -> 
rcs-blame-snapshots-t20260222.tar.gz ++++++
++++ 6556 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/rcs-blame-snapshots-t20251006/ChangeLog 
new/rcs-blame-snapshots-t20260222/ChangeLog
--- old/rcs-blame-snapshots-t20251006/ChangeLog 2025-10-07 02:15:41.000000000 
+0200
+++ new/rcs-blame-snapshots-t20260222/ChangeLog 2026-02-23 02:09:32.000000000 
+0100
@@ -1,3 +1,15 @@
+2026-02-22 Thomas E. Dickey  <[email protected]>
+
+       * add/use configure checks for some functions which were only handled
+         via replacement: mempcpy, strchrnul, strnlen, and strpbrk (Debian
+         #1128745).
+
+       * adjusted use of "const" to reduce casts which left compiler warnings.
+
+       * regen parser.c and lexer.c
+
+       * update configure script macros
+
 2025-10-06 Thomas E. Dickey  <[email protected]>
 
        * update configure script macros
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/rcs-blame-snapshots-t20251006/VERSION 
new/rcs-blame-snapshots-t20260222/VERSION
--- old/rcs-blame-snapshots-t20251006/VERSION   2025-10-07 02:15:41.000000000 
+0200
+++ new/rcs-blame-snapshots-t20260222/VERSION   2026-02-23 02:09:32.000000000 
+0100
@@ -1 +1 @@
-1.4    20251006
+1.4    20260222
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/rcs-blame-snapshots-t20251006/config.h.in 
new/rcs-blame-snapshots-t20260222/config.h.in
--- old/rcs-blame-snapshots-t20251006/config.h.in       2025-10-07 
02:15:41.000000000 +0200
+++ new/rcs-blame-snapshots-t20260222/config.h.in       2026-02-23 
02:09:32.000000000 +0100
@@ -222,6 +222,18 @@
 /* Define if cpp supports the ANSI # stringizing operator. */
 #undef HAVE_STRINGIZE
 
+/* Define if you have the mempcpy function */
+#undef HAVE_MEMPCPY
+
+/* Define if you have the strchrnul function */
+#undef HAVE_STRCHRNUL
+
+/* Define if you have the strnlen function */
+#undef HAVE_STRNLEN
+
+/* Define if you have the strpbrk function */
+#undef HAVE_STRPBRK
+
 /* Define if you have the <strings.h> header file. */
 #undef HAVE_STRINGS_H
 
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/rcs-blame-snapshots-t20251006/configure.ac 
new/rcs-blame-snapshots-t20260222/configure.ac
--- old/rcs-blame-snapshots-t20251006/configure.ac      2025-10-07 
02:15:41.000000000 +0200
+++ new/rcs-blame-snapshots-t20260222/configure.ac      2026-02-23 
02:09:32.000000000 +0100
@@ -1,5 +1,5 @@
 # Process this file with autoconf to produce a configure script.
-# $Id: configure.ac,v 1.30 2025/10/06 21:36:38 tom Exp $
+# $Id: configure.ac,v 1.31 2026/02/22 22:12:01 tom Exp $
 
 AC_INIT([blame], [1.4], [[email protected]])
 AC_CONFIG_SRCDIR([src/blame.c])
@@ -92,6 +92,7 @@
 gl_FILE_NAME_CONCAT
 gl_FUNC_STRCHRNUL
 gl_FUNC_MEMPCPY
+gl_FUNC_STRPBRK
 gl_FUNC_STRNLEN
 gl_XALLOC
 gl_XGETCWD
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/rcs-blame-snapshots-t20251006/lib/argp-fmtstream.c 
new/rcs-blame-snapshots-t20260222/lib/argp-fmtstream.c
--- old/rcs-blame-snapshots-t20251006/lib/argp-fmtstream.c      2025-10-07 
02:15:41.000000000 +0200
+++ new/rcs-blame-snapshots-t20260222/lib/argp-fmtstream.c      2026-02-23 
02:09:32.000000000 +0100
@@ -1,4 +1,5 @@
 /* Word-wrapping and line-truncating streams
+   Copyright 2025 Thomas E. Dickey
    Copyright (C) 1997-1999,2001,2002,2003,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Miles Bader <[email protected]>.
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/rcs-blame-snapshots-t20251006/lib/argp-help.c 
new/rcs-blame-snapshots-t20260222/lib/argp-help.c
--- old/rcs-blame-snapshots-t20251006/lib/argp-help.c   2025-10-07 
02:15:41.000000000 +0200
+++ new/rcs-blame-snapshots-t20260222/lib/argp-help.c   2026-02-23 
02:09:32.000000000 +0100
@@ -1,4 +1,5 @@
 /* Hierarchial argument parsing help output
+   Copyright 2024-2025,2026 Thomas E. Dickey
    Copyright (C) 1995-2003, 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Miles Bader <[email protected]>.
@@ -1487,7 +1488,7 @@
 
   if (argp->doc)
     {
-      char *vt = strchr (argp->doc, '\v');
+      const char *vt = strchr (argp->doc, '\v');
       if (vt)
        {
          if (post)
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/rcs-blame-snapshots-t20251006/lib/argp-parse.c 
new/rcs-blame-snapshots-t20260222/lib/argp-parse.c
--- old/rcs-blame-snapshots-t20251006/lib/argp-parse.c  2025-10-07 
02:15:41.000000000 +0200
+++ new/rcs-blame-snapshots-t20260222/lib/argp-parse.c  2026-02-23 
02:09:32.000000000 +0100
@@ -1,4 +1,5 @@
 /* Hierarchial argument parsing, layered over getopt
+   Copyright 2025 Thomas E. Dickey
    Copyright (C) 1995-2000, 2002, 2003, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Miles Bader <[email protected]>.
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/rcs-blame-snapshots-t20251006/lib/argp-pin.c 
new/rcs-blame-snapshots-t20260222/lib/argp-pin.c
--- old/rcs-blame-snapshots-t20251006/lib/argp-pin.c    2025-10-07 
02:15:41.000000000 +0200
+++ new/rcs-blame-snapshots-t20260222/lib/argp-pin.c    2026-02-23 
02:09:32.000000000 +0100
@@ -1,4 +1,5 @@
 /* Full and short program names for argp module
+   Copyright 2025 Thomas E. Dickey
    Copyright (C) 2005 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
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/rcs-blame-snapshots-t20251006/lib/getcwd.c 
new/rcs-blame-snapshots-t20260222/lib/getcwd.c
--- old/rcs-blame-snapshots-t20251006/lib/getcwd.c      2025-10-07 
02:15:41.000000000 +0200
+++ new/rcs-blame-snapshots-t20260222/lib/getcwd.c      2026-02-23 
02:09:32.000000000 +0100
@@ -1,4 +1,6 @@
-/* Copyright (C) 1991,92,93,94,95,96,97,98,99,2004,2005,2006 Free Software
+/*
+   Copyright 2025 Thomas E. Dickey
+   Copyright (C) 1991,92,93,94,95,96,97,98,99,2004,2005,2006 Free Software
    Foundation, Inc.
    This file is part of the GNU C Library.
 
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/rcs-blame-snapshots-t20251006/lib/getopt.c 
new/rcs-blame-snapshots-t20260222/lib/getopt.c
--- old/rcs-blame-snapshots-t20251006/lib/getopt.c      2025-10-07 
02:15:41.000000000 +0200
+++ new/rcs-blame-snapshots-t20260222/lib/getopt.c      2026-02-23 
02:09:32.000000000 +0100
@@ -2,6 +2,7 @@
    NOTE: getopt is now part of the C library, so if you don't know what
    "Keep this file name-space clean" means, talk to [email protected]
    before changing it!
+   Copyright 2024-2025,2026 Thomas E. Dickey
    Copyright (C) 
1987,88,89,90,91,92,93,94,95,96,98,99,2000,2001,2002,2003,2004,2006
        Free Software Foundation, Inc.
    This file is part of the GNU C Library.
@@ -747,7 +748,7 @@
 
   {
     char c = *d->__nextchar++;
-    char *temp = strchr (optstring, c);
+    const char *temp = strchr (optstring, c);
 
     /* Increment `optind' when we start to process its last character.  */
     if (*d->__nextchar == '\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/rcs-blame-snapshots-t20251006/lib/mempcpy.h 
new/rcs-blame-snapshots-t20260222/lib/mempcpy.h
--- old/rcs-blame-snapshots-t20251006/lib/mempcpy.h     2025-10-07 
02:15:41.000000000 +0200
+++ new/rcs-blame-snapshots-t20260222/lib/mempcpy.h     2026-02-23 
02:09:32.000000000 +0100
@@ -1,4 +1,5 @@
 /* Copy memory area and return pointer after last written byte.
+   Copyright 2024,2026 Thomas E. Dickey
    Copyright (C) 2003, 2004 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
@@ -15,10 +16,13 @@
    along with this program; if not, write to the Free Software Foundation,
    Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
 
-#ifndef mempcpy
+#if HAVE_MEMPCPY
 
-#  include <stddef.h>
+#  include <string.h>
 
+#else
+
+#  include <sys/types.h>
 /* Copy N bytes of SRC to DEST, return pointer to bytes after the
    last written byte.  */
 #define mempcpy(d,s,n) replace_mempcpy(d,s,n)
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/rcs-blame-snapshots-t20251006/lib/obstack.c 
new/rcs-blame-snapshots-t20260222/lib/obstack.c
--- old/rcs-blame-snapshots-t20251006/lib/obstack.c     2025-10-07 
02:15:41.000000000 +0200
+++ new/rcs-blame-snapshots-t20260222/lib/obstack.c     2026-02-23 
02:09:32.000000000 +0100
@@ -1,5 +1,6 @@
 /* obstack.c - subroutines used implicitly by object stack macros
 
+   Copyright 2025 Thomas E. Dickey
    Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1996, 1997,
    1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
    Foundation, Inc.
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/rcs-blame-snapshots-t20251006/lib/strchrnul.h 
new/rcs-blame-snapshots-t20260222/lib/strchrnul.h
--- old/rcs-blame-snapshots-t20251006/lib/strchrnul.h   2025-10-07 
02:15:41.000000000 +0200
+++ new/rcs-blame-snapshots-t20260222/lib/strchrnul.h   2026-02-23 
02:09:32.000000000 +0100
@@ -1,4 +1,5 @@
 /* Searching in a string.
+   Copyright 2024,2026 Thomas E. Dickey
    Copyright (C) 2003 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
@@ -16,5 +17,9 @@
    Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
 
 /* Find the first occurrence of C in S or the final NUL byte.  */
+#if HAVE_STRCHRNUL
+#include <string.h>
+#else
 #define strchrnul(s,n) replaced_strchrnul(s,n)
 extern char *strchrnul (const char *s, int c_in);
+#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/rcs-blame-snapshots-t20251006/lib/strnlen.h 
new/rcs-blame-snapshots-t20260222/lib/strnlen.h
--- old/rcs-blame-snapshots-t20251006/lib/strnlen.h     2025-10-07 
02:15:41.000000000 +0200
+++ new/rcs-blame-snapshots-t20260222/lib/strnlen.h     2026-02-23 
02:09:32.000000000 +0100
@@ -1,4 +1,5 @@
 /* Find the length of STRING, but scan at most MAXLEN characters.
+   Copyright 2024,2026 Thomas E. Dickey
    Copyright (C) 2005 Free Software Foundation, Inc.
    Written by Simon Josefsson.
 
@@ -19,6 +20,10 @@
 #ifndef STRNLEN_H
 #define STRNLEN_H
 
+#if HAVE_STRNLEN
+#include <string.h>
+#else
+
 #include <sys/types.h>
 #include <string.h>
 
@@ -28,4 +33,6 @@
 #define strnlen(s,n) replace_strnlen(s,n)
 extern size_t strnlen(const char *string, size_t maxlen);
 
+#endif /* HAVE_STRNLEN */
+
 #endif /* STRNLEN_H */
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/rcs-blame-snapshots-t20251006/m4/getcwd.m4 
new/rcs-blame-snapshots-t20260222/m4/getcwd.m4
--- old/rcs-blame-snapshots-t20251006/m4/getcwd.m4      2025-10-07 
02:15:41.000000000 +0200
+++ new/rcs-blame-snapshots-t20260222/m4/getcwd.m4      2026-02-23 
02:09:32.000000000 +0100
@@ -1,5 +1,6 @@
 # getcwd.m4 - check for working getcwd that is compatible with glibc
 
+# Copyright 2025 Thomas E. Dickey
 # Copyright (C) 2001, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
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/rcs-blame-snapshots-t20251006/m4/mempcpy.m4 
new/rcs-blame-snapshots-t20260222/m4/mempcpy.m4
--- old/rcs-blame-snapshots-t20251006/m4/mempcpy.m4     2025-10-07 
02:15:41.000000000 +0200
+++ new/rcs-blame-snapshots-t20260222/m4/mempcpy.m4     2026-02-23 
02:09:32.000000000 +0100
@@ -1,5 +1,7 @@
 AC_DEFUN([gl_FUNC_MEMPCPY],
 [
-  CF_VERBOSE(add replacement for mempcpy)
-  AC_LIBOBJ(mempcpy)
+  AC_CHECK_FUNC(mempcpy,[AC_DEFINE(HAVE_MEMPCPY,1,[Define to 1 if you have the 
function mempcpy])],[
+    CF_VERBOSE(add replacement for mempcpy)
+    AC_LIBOBJ(mempcpy)
+  ])
 ])
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/rcs-blame-snapshots-t20251006/m4/mktime.m4 
new/rcs-blame-snapshots-t20260222/m4/mktime.m4
--- old/rcs-blame-snapshots-t20251006/m4/mktime.m4      2025-10-07 
02:15:41.000000000 +0200
+++ new/rcs-blame-snapshots-t20260222/m4/mktime.m4      2026-02-23 
02:09:32.000000000 +0100
@@ -1,4 +1,5 @@
 #serial 8
+dnl Copyright 2024,2025 Thomas E. Dickey
 dnl Copyright (C) 2002, 2003, 2005, 2006 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
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/rcs-blame-snapshots-t20251006/m4/strchrnul.m4 
new/rcs-blame-snapshots-t20260222/m4/strchrnul.m4
--- old/rcs-blame-snapshots-t20251006/m4/strchrnul.m4   2025-10-07 
02:15:41.000000000 +0200
+++ new/rcs-blame-snapshots-t20260222/m4/strchrnul.m4   2026-02-23 
02:09:32.000000000 +0100
@@ -1,5 +1,6 @@
 AC_DEFUN([gl_FUNC_STRCHRNUL],
 [
-  CF_VERBOSE(add replacement for strchrnul)
-  AC_LIBOBJ(strchrnul)
+  AC_CHECK_FUNC(strchrnul,[AC_DEFINE(HAVE_STRCHRNUL,1,[Define to 1 if you have 
the function strchrnul])],[
+       CF_VERBOSE(add replacement for strchrnul)
+       AC_LIBOBJ(strchrnul)])
 ])
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/rcs-blame-snapshots-t20251006/m4/strnlen.m4 
new/rcs-blame-snapshots-t20260222/m4/strnlen.m4
--- old/rcs-blame-snapshots-t20251006/m4/strnlen.m4     2025-10-07 
02:15:41.000000000 +0200
+++ new/rcs-blame-snapshots-t20260222/m4/strnlen.m4     2026-02-23 
02:09:32.000000000 +0100
@@ -1,5 +1,6 @@
 AC_DEFUN([gl_FUNC_STRNLEN],
 [
-  CF_VERBOSE(add replacement for strnlen)
-  AC_LIBOBJ(strnlen)
+  AC_CHECK_FUNC(strnlen,[AC_DEFINE(HAVE_STRNLEN,1,[Define to 1 if you have the 
function strnlen])],[
+    CF_VERBOSE(add replacement for strnlen)
+    AC_LIBOBJ(strnlen)])
 ])
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/rcs-blame-snapshots-t20251006/m4/strpbrk.m4 
new/rcs-blame-snapshots-t20260222/m4/strpbrk.m4
--- old/rcs-blame-snapshots-t20251006/m4/strpbrk.m4     2025-10-07 
02:15:41.000000000 +0200
+++ new/rcs-blame-snapshots-t20260222/m4/strpbrk.m4     2026-02-23 
02:09:32.000000000 +0100
@@ -1,4 +1,5 @@
 # strpbrk.m4 serial 2
+dnl Copyfight 2026 Thomas E. Dickey
 dnl Copyright (C) 2002-2003 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -6,10 +7,12 @@
 
 AC_DEFUN([gl_FUNC_STRPBRK],
 [
+  AC_CHECK_FUNC(strpbrk,[AC_DEFINE(HAVE_STRPBRK,1,[Define to 1 if you have the 
function strpbrk])],[
   AC_REPLACE_FUNCS(strpbrk)
   if test $ac_cv_func_strpbrk = no; then
     gl_PREREQ_STRPBRK
   fi
+  ])
 ])
 
 # Prerequisites of lib/strpbrk.c.
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/rcs-blame-snapshots-t20251006/package/blame.spec 
new/rcs-blame-snapshots-t20260222/package/blame.spec
--- old/rcs-blame-snapshots-t20251006/package/blame.spec        2025-10-07 
02:15:41.000000000 +0200
+++ new/rcs-blame-snapshots-t20260222/package/blame.spec        2026-02-23 
02:09:32.000000000 +0100
@@ -1,6 +1,6 @@
 %define AppProgram blame
 %define AppVersion 1.4
-%define AppRelease 20251006
+%define AppRelease 20260222
 Name:  %{AppProgram}
 Version:  %{AppVersion}
 Release:  %{AppRelease}
@@ -46,8 +46,8 @@
 %changelog
 # each patch should add its ChangeLog entries here
 
-* Mon Oct 06 2025 Thomas E. Dickey
-- testing blame 1.4-20251006
+* Sun Feb 22 2026 Thomas E. Dickey
+- testing blame 1.4-20260222
 
 * Sun Feb 07 2021 Thomas Dickey
 - initial version
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/rcs-blame-snapshots-t20251006/package/debian/changelog 
new/rcs-blame-snapshots-t20260222/package/debian/changelog
--- old/rcs-blame-snapshots-t20251006/package/debian/changelog  2025-10-07 
02:15:41.000000000 +0200
+++ new/rcs-blame-snapshots-t20260222/package/debian/changelog  2026-02-23 
02:09:32.000000000 +0100
@@ -1,3 +1,9 @@
+rcs-blame (1.4+20260222) unstable; urgency=low
+
+  * maintenance updates
+
+ -- Thomas E. Dickey <[email protected]>  Sun, 22 Feb 2026 15:12:18 
-0500
+
 rcs-blame (1.4+20251006) unstable; urgency=low
 
   * maintenance updates
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/rcs-blame-snapshots-t20251006/src/blame.c 
new/rcs-blame-snapshots-t20260222/src/blame.c
--- old/rcs-blame-snapshots-t20251006/src/blame.c       2025-10-07 
02:15:41.000000000 +0200
+++ new/rcs-blame-snapshots-t20260222/src/blame.c       2026-02-23 
02:09:32.000000000 +0100
@@ -1,7 +1,7 @@
 /*
  * Blame - An RCS file annotator
+ * Copyright 2024,2025 Thomas E. Dickey
  * Copyright (C) 2004, 2005  Michael Chapman
- * Copyright 2024 Thomas E. Dickey
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
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/rcs-blame-snapshots-t20251006/src/date.c 
new/rcs-blame-snapshots-t20260222/src/date.c
--- old/rcs-blame-snapshots-t20251006/src/date.c        2025-10-07 
02:15:41.000000000 +0200
+++ new/rcs-blame-snapshots-t20260222/src/date.c        2026-02-23 
02:09:32.000000000 +0100
@@ -1,5 +1,6 @@
 /*
  * Blame - An RCS file annotator
+ * Copyright 2024,2026 Thomas E. Dickey
  * Copyright (C) 2004, 2005  Michael Chapman
  *
  * This program is free software; you can redistribute it and/or modify
@@ -1130,7 +1131,7 @@
 date_sprintf_prefix(time_t date, char *buffer, size_t len) {
        size_t result;
        char my_buffer[MAX_FORMAT_DATE + 1];
-       char *format = format_dates;
+       const char *format = format_dates;
        assert(date >= 0);
 
        if (format == NULL)
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/rcs-blame-snapshots-t20251006/src/date.h 
new/rcs-blame-snapshots-t20260222/src/date.h
--- old/rcs-blame-snapshots-t20251006/src/date.h        2025-10-07 
02:15:41.000000000 +0200
+++ new/rcs-blame-snapshots-t20260222/src/date.h        2026-02-23 
02:09:32.000000000 +0100
@@ -1,5 +1,6 @@
 /*
  * Blame - An RCS file annotator
+ * Copyright 2024,2025 Thomas E. Dickey
  * Copyright (C) 2004, 2005  Michael Chapman
  *
  * This program is free software; you can redistribute it and/or modify
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/rcs-blame-snapshots-t20251006/src/delta.c 
new/rcs-blame-snapshots-t20260222/src/delta.c
--- old/rcs-blame-snapshots-t20251006/src/delta.c       2025-10-07 
02:15:41.000000000 +0200
+++ new/rcs-blame-snapshots-t20260222/src/delta.c       2026-02-23 
02:09:32.000000000 +0100
@@ -1,5 +1,6 @@
 /*
  * Blame - An RCS file annotator
+ * Copyright 2025 Thomas E. Dickey
  * Copyright (C) 2004  Michael Chapman
  *
  * This program is free software; you can redistribute it and/or modify
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/rcs-blame-snapshots-t20251006/src/delta.h 
new/rcs-blame-snapshots-t20260222/src/delta.h
--- old/rcs-blame-snapshots-t20251006/src/delta.h       2025-10-07 
02:15:41.000000000 +0200
+++ new/rcs-blame-snapshots-t20260222/src/delta.h       2026-02-23 
02:09:32.000000000 +0100
@@ -1,5 +1,6 @@
 /*
  * Blame - An RCS file annotator
+ * Copyright 2024,2025 Thomas E. Dickey
  * Copyright (C) 2004  Michael Chapman
  *
  * This program is free software; you can redistribute it and/or modify
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/rcs-blame-snapshots-t20251006/src/hash.c 
new/rcs-blame-snapshots-t20260222/src/hash.c
--- old/rcs-blame-snapshots-t20251006/src/hash.c        2025-10-07 
02:15:41.000000000 +0200
+++ new/rcs-blame-snapshots-t20260222/src/hash.c        2026-02-23 
02:09:32.000000000 +0100
@@ -1,5 +1,6 @@
 /*
  * Blame - An RCS file annotator
+   Copyright 2024-2025,2026 Thomas E. Dickey
  * Copyright (C) 2004  Michael Chapman
  *
  * This program is free software; you can redistribute it and/or modify
@@ -215,7 +216,7 @@
  * <key> is duplicated, however.
  */
 void
-hash_insert_nocopy(hash_t *hash, const char *key, void *value) {
+hash_insert_nocopy(hash_t *hash, const char *key, const void *value) {
        hash_entry_t *entry;
 
        assert(hash);
@@ -223,7 +224,7 @@
        if (hash->count++ * 2 > hash->capacity)
                hash_expand(hash, hash->capacity * 2);
 
-       entry = _hash_entry_new(hash->dup_fn, hash->free_fn, key, value);
+       entry = _hash_entry_new(hash->dup_fn, hash->free_fn, key, (void 
*)value);
        _hash_insert_entry_nocopy(hash, entry);
 }
 
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/rcs-blame-snapshots-t20251006/src/hash.h 
new/rcs-blame-snapshots-t20260222/src/hash.h
--- old/rcs-blame-snapshots-t20251006/src/hash.h        2025-10-07 
02:15:41.000000000 +0200
+++ new/rcs-blame-snapshots-t20260222/src/hash.h        2026-02-23 
02:09:32.000000000 +0100
@@ -1,5 +1,6 @@
 /*
  * Blame - An RCS file annotator
+   Copyright 2024-2025,2026 Thomas E. Dickey
  * Copyright (C) 2004  Michael Chapman
  *
  * This program is free software; you can redistribute it and/or modify
@@ -57,7 +58,7 @@
 hash_t * hash_dup (const hash_t *);
 void hash_expand (hash_t *, unsigned int);
 
-void hash_insert_nocopy (hash_t *, const char *, void *);
+void hash_insert_nocopy (hash_t *, const char *, const void *);
 
 /*
  * Maps <key> to <value> in the hash table <hash>. <key> and <value> are
@@ -70,7 +71,7 @@
        if (hash->dup_fn)
                hash_insert_nocopy(hash, key, (hash->dup_fn)(value));
        else
-               hash_insert_nocopy(hash, key, (void *)value);
+               hash_insert_nocopy(hash, key, value);
 }
 
 void ** hash_get(hash_t *, const char *);
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/rcs-blame-snapshots-t20251006/src/keyword.c 
new/rcs-blame-snapshots-t20260222/src/keyword.c
--- old/rcs-blame-snapshots-t20251006/src/keyword.c     2025-10-07 
02:15:41.000000000 +0200
+++ new/rcs-blame-snapshots-t20260222/src/keyword.c     2026-02-23 
02:09:32.000000000 +0100
@@ -1,5 +1,6 @@
 /*
  * Blame - An RCS file annotator
+ * Copyright 2024-2025,2026 Thomas E. Dickey
  * Copyright (C) 2004, 2005  Michael Chapman
  *
  * This program is free software; you can redistribute it and/or modify
@@ -202,7 +203,7 @@
        assert(data);
 
        while (len) {
-               char *at = memchr(data, '@', len);
+               const char *at = memchr(data, '@', len);
                if (!at) break;
                fwrite(data, (size_t) VOIDP_DIFF(at, data) + 1, 1, stdout);
                if (*(const char *)VOIDP_OFFSET(at, 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/rcs-blame-snapshots-t20251006/src/lexer.c 
new/rcs-blame-snapshots-t20260222/src/lexer.c
--- old/rcs-blame-snapshots-t20251006/src/lexer.c       2025-10-07 
02:15:41.000000000 +0200
+++ new/rcs-blame-snapshots-t20260222/src/lexer.c       2026-02-23 
02:09:32.000000000 +0100
@@ -10,7 +10,7 @@
 #define YY_FLEX_MAJOR_VERSION 2
 #define YY_FLEX_MINOR_VERSION 5
 #define YY_FLEX_LOWER_VERSION 4
-#define YY_FLEX_PATCH_VERSION 20241231
+#define YY_FLEX_PATCH_VERSION 20260131
 
 #include <stdio.h>
 
@@ -273,6 +273,7 @@
 typedef unsigned char YY_CHAR;
 FILE *yyin = NULL, *yyout = NULL;
 typedef int yy_state_type;
+#define yy_state_zero 0
 extern char *yytext;
 #define yytext_ptr yytext
 
@@ -293,18 +294,18 @@
 #define YY_NUM_RULES 27
 #define YY_END_OF_BUFFER 28
 /* *INDENT-OFF* */
-static yyconst short int yy_accept[99] =
+static yyconst short int yy_accept[98] =
     {   0,
        26,   26,   23,   23,   28,   17,   26,   25,   24,   20,
        17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
-       27,   23,   21,   22,   17,   26,   25,   20,   18,   19,
+       23,   21,   22,   17,   26,   25,   20,   18,   19,   17,
        17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
-       17,   17,   17,   23,   21,   22,   23,   20,   17,   17,
-       17,   17,   17,   17,   17,   17,   17,   15,   17,   17,
-       17,   17,   17,   17,   17,   17,   17,    9,   14,   17,
-        1,   17,   13,   17,   17,   17,   16,   17,   17,   17,
-       17,   17,    5,   11,   17,   17,    3,   10,    2,   17,
-        8,    6,   17,   17,    7,    4,   12,    0
+       17,   17,   23,   21,   22,   23,   20,   17,   17,   17,
+       17,   17,   17,   17,   17,   17,   15,   17,   17,   17,
+       17,   17,   17,   17,   17,   17,    9,   14,   17,    1,
+       17,   13,   17,   17,   17,   16,   17,   17,   17,   17,
+       17,    5,   11,   17,   17,    3,   10,    2,   17,    8,
+        6,   17,   17,    7,    4,   12,    0
 
     } ;
 static yyconst int yy_ec[256] =
@@ -323,9 +324,9 @@
        10,    1,   11,   12,   13,    1,   14,   15,   16,   17,
        18,   19,    1,   20,   21,   22,   23,    1,    1,   24,
        25,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,   26,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,   26,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -338,79 +339,79 @@
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1
     } ;
-static yyconst int yy_meta[27] =
+static yyconst int yy_meta[26] =
     {   0,
         1,    2,    2,    2,    2,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    2
+        1,    1,    1,    1,    1
     } ;
-static yyconst short int yy_base[103] =
+static yyconst short int yy_base[102] =
     {   0,
-        0,    0,   24,   25,  119,    0,   29,  120,  120,   30,
-       26,   98,   99,   30,   92,  105,   96,  103,   16,  102,
-      120,   34,  120,  106,    0,   40,  120,   41,  120,  105,
-      101,   86,  101,   90,   83,   83,   84,   96,   37,   77,
-       41,   84,   75,   47,  120,   93,   48,   51,   87,   84,
-       78,   78,   83,   84,   85,   81,   75,    0,   66,   65,
-       73,   78,   62,   62,   64,   73,   70,    0,    0,   62,
-        0,   57,    0,   67,   68,   57,    0,   53,   53,   60,
-       54,   61,    0,    0,   47,   53,    0,    0,   50,   37,
-        0,    0,   37,   36,    0,    0,    0,  120,   61,   54,
+        0,    0,   23,   24,  118,    0,   28,  119,  119,   29,
+       25,   97,   98,   29,   91,  104,   95,  102,   15,  101,
+       33,  119,  105,    0,   39,  119,   40,  119,  104,  100,
+       85,  100,   89,   82,   82,   83,   95,   36,   76,   40,
+       83,   74,   46,  119,   92,   47,   50,   86,   83,   77,
+       77,   82,   83,   84,   80,   74,    0,   65,   64,   72,
+       77,   61,   61,   63,   72,   69,    0,    0,   61,    0,
+       56,    0,   66,   67,   56,    0,   52,   52,   59,   53,
+       60,    0,    0,   46,   52,    0,    0,   49,   36,    0,
+        0,   36,   35,    0,    0,    0,  119,   60,   53,   62,
 
-       63,   65
+       64
     } ;
-static yyconst short int yy_def[103] =
+static yyconst short int yy_def[102] =
     {   0,
-       98,    1,   99,   99,   98,  100,   98,   98,   98,  101,
-      100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
-       98,  102,   98,   98,  100,   98,   98,  101,   98,   98,
-      100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
-      100,  100,  100,  102,   98,   98,  102,  101,  100,  100,
-      100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
-      100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
-      100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
-      100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
-      100,  100,  100,  100,  100,  100,  100,    0,   98,   98,
+       97,    1,   98,   98,   97,   99,   97,   97,   97,  100,
+       99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
+      101,   97,   97,   99,   97,   97,  100,   97,   97,   99,
+       99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
+       99,   99,  101,   97,   97,  101,  100,   99,   99,   99,
+       99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
+       99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
+       99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
+       99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
+       99,   99,   99,   99,   99,   99,    0,   97,   97,   97,
 
-       98,   98
+       97
     } ;
-static yyconst short int yy_nxt[147] =
+static yyconst short int yy_nxt[145] =
     {   0,
         6,    7,    8,    9,   10,   11,   12,   13,   14,   15,
         6,   16,    6,    6,   17,    6,   18,    6,    6,    6,
-       19,   20,    6,    6,    6,   21,   23,   23,   24,   24,
-       26,   27,   29,   31,   30,   35,   45,   41,   46,   36,
-       42,   26,   27,   29,   57,   30,   60,   58,   32,   45,
-       45,   46,   46,   29,   25,   30,   97,   96,   95,   94,
-       61,   22,   22,   28,   28,   44,   44,   93,   92,   91,
-       90,   89,   88,   87,   86,   85,   84,   83,   82,   81,
-       80,   79,   78,   77,   76,   75,   74,   73,   72,   71,
-       70,   69,   68,   67,   66,   65,   64,   47,   63,   62,
-
-       59,   56,   55,   54,   53,   52,   51,   50,   49,   48,
-       47,   43,   40,   39,   38,   37,   34,   33,   98,    5,
-       98,   98,   98,   98,   98,   98,   98,   98,   98,   98,
-       98,   98,   98,   98,   98,   98,   98,   98,   98,   98,
-       98,   98,   98,   98,   98,   98
+       19,   20,    6,    6,    6,   22,   22,   23,   23,   25,
+       26,   28,   30,   29,   34,   44,   40,   45,   35,   41,
+       25,   26,   28,   56,   29,   59,   57,   31,   44,   44,
+       45,   45,   28,   24,   29,   96,   95,   94,   93,   60,
+       21,   21,   27,   27,   43,   43,   92,   91,   90,   89,
+       88,   87,   86,   85,   84,   83,   82,   81,   80,   79,
+       78,   77,   76,   75,   74,   73,   72,   71,   70,   69,
+       68,   67,   66,   65,   64,   63,   46,   62,   61,   58,
+
+       55,   54,   53,   52,   51,   50,   49,   48,   47,   46,
+       42,   39,   38,   37,   36,   33,   32,   97,    5,   97,
+       97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
+       97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
+       97,   97,   97,   97
     } ;
-static yyconst short int yy_chk[147] =
+static yyconst short int yy_chk[145] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    3,    4,    3,    4,
-        7,    7,   10,   11,   10,   14,   22,   19,   22,   14,
-       19,   26,   26,   28,   39,   28,   41,   39,   11,   44,
-       47,   44,   47,   48,  100,   48,   94,   93,   90,   89,
-       41,   99,   99,  101,  101,  102,  102,   86,   85,   82,
-       81,   80,   79,   78,   76,   75,   74,   72,   70,   67,
-       66,   65,   64,   63,   62,   61,   60,   59,   57,   56,
-       55,   54,   53,   52,   51,   50,   49,   46,   43,   42,
-
-       40,   38,   37,   36,   35,   34,   33,   32,   31,   30,
-       24,   20,   18,   17,   16,   15,   13,   12,    5,   98,
-       98,   98,   98,   98,   98,   98,   98,   98,   98,   98,
-       98,   98,   98,   98,   98,   98,   98,   98,   98,   98,
-       98,   98,   98,   98,   98,   98
+        1,    1,    1,    1,    1,    3,    4,    3,    4,    7,
+        7,   10,   11,   10,   14,   21,   19,   21,   14,   19,
+       25,   25,   27,   38,   27,   40,   38,   11,   43,   46,
+       43,   46,   47,   99,   47,   93,   92,   89,   88,   40,
+       98,   98,  100,  100,  101,  101,   85,   84,   81,   80,
+       79,   78,   77,   75,   74,   73,   71,   69,   66,   65,
+       64,   63,   62,   61,   60,   59,   58,   56,   55,   54,
+       53,   52,   51,   50,   49,   48,   45,   42,   41,   39,
+
+       37,   36,   35,   34,   33,   32,   31,   30,   29,   23,
+       20,   18,   17,   16,   15,   13,   12,    5,   97,   97,
+       97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
+       97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
+       97,   97,   97,   97
     } ;
 /* *INDENT-ON* */
 static yy_state_type yy_last_accepting_state;
@@ -474,7 +475,7 @@
  */
 #define SA 1
 
-#line 479 "lexer.c"
+#line 480 "lexer.c"
 
 /* Macros after this point can all be overridden by user definitions in
  * section 1.
@@ -654,7 +655,7 @@
 #line 55 "lexer.l"
 
 
-#line 659 "lexer.c"
+#line 660 "lexer.c"
 
     if (yy_init) {
        yy_init = 0;
@@ -701,13 +702,13 @@
            }
            while (yy_chk[yy_base[yy_current_state] + yy_c] != 
yy_current_state) {
                yy_current_state = (int) yy_def[yy_current_state];
-               if (yy_current_state >= 99)
+               if (yy_current_state >= 98)
                    yy_c = (YY_CHAR) yy_meta[(unsigned int) yy_c];
            }
            yy_current_state = (yy_state_type) yy_nxt[yy_base[yy_current_state] 
+ yy_c];
            ++yy_cp;
        }
-       while (yy_base[yy_current_state] != 120);
+       while (yy_base[yy_current_state] != 119);
 
        yy_find_action:
        yy_act = (int) yy_accept[yy_current_state];
@@ -938,7 +939,7 @@
 #line 157 "lexer.l"
        ECHO;
            YY_BREAK
-#line 943 "lexer.c"
+#line 944 "lexer.c"
        case YY_STATE_EOF(INITIAL):
        case YY_STATE_EOF(SA):
            yyterminate();
@@ -1196,7 +1197,7 @@
        }
        while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) {
            yy_current_state = (int) yy_def[yy_current_state];
-           if (yy_current_state >= 99)
+           if (yy_current_state >= 98)
                yy_c = (YY_CHAR) yy_meta[(unsigned int) yy_c];
        }
        yy_current_state = (yy_state_type) yy_nxt[yy_base[yy_current_state] + 
yy_c];
@@ -1224,13 +1225,13 @@
     }
     while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) {
        yy_current_state = (int) yy_def[yy_current_state];
-       if (yy_current_state >= 99)
+       if (yy_current_state >= 98)
            yy_c = (YY_CHAR) yy_meta[(unsigned int) yy_c];
     }
     yy_current_state = (yy_state_type) yy_nxt[yy_base[yy_current_state] + 
yy_c];
-    yy_is_jam = (yy_current_state == 98);
+    yy_is_jam = (yy_current_state == 97);
 
-    return yy_is_jam ? 0 : yy_current_state;
+    return yy_is_jam ? yy_state_zero : yy_current_state;
 }
 
 #ifndef YY_NO_UNPUT
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/rcs-blame-snapshots-t20251006/src/lines.c 
new/rcs-blame-snapshots-t20260222/src/lines.c
--- old/rcs-blame-snapshots-t20251006/src/lines.c       2025-10-07 
02:15:41.000000000 +0200
+++ new/rcs-blame-snapshots-t20260222/src/lines.c       2026-02-23 
02:09:32.000000000 +0100
@@ -1,5 +1,6 @@
 /*
  * Blame - An RCS file annotator
+ * Copyright 2024,2025 Thomas E. Dickey
  * Copyright (C) 2004  Michael Chapman
  *
  * This program is free software; you can redistribute it and/or modify
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/rcs-blame-snapshots-t20251006/src/lines.h 
new/rcs-blame-snapshots-t20260222/src/lines.h
--- old/rcs-blame-snapshots-t20251006/src/lines.h       2025-10-07 
02:15:41.000000000 +0200
+++ new/rcs-blame-snapshots-t20260222/src/lines.h       2026-02-23 
02:09:32.000000000 +0100
@@ -1,5 +1,6 @@
 /*
  * Blame - An RCS file annotator
+ * Copyright 2024,2025 Thomas E. Dickey
  * Copyright (C) 2004  Michael Chapman
  *
  * This program is free software; you can redistribute it and/or modify
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/rcs-blame-snapshots-t20251006/src/parser.c 
new/rcs-blame-snapshots-t20260222/src/parser.c
--- old/rcs-blame-snapshots-t20251006/src/parser.c      2025-10-07 
02:15:41.000000000 +0200
+++ new/rcs-blame-snapshots-t20260222/src/parser.c      2026-02-23 
02:09:32.000000000 +0100
@@ -71,6 +71,7 @@
 
 /*
  * Blame - An RCS file annotator
+ * Copyright 2025 Thomas E. Dickey
  * Copyright (C) 2004  Michael Chapman
  *
  * This program is free software; you can redistribute it and/or modify
@@ -109,7 +110,7 @@
 
 static unsigned int lines;
 
-#line 113 "parser.c"
+#line 114 "parser.c"
 
 # ifndef YY_CAST
 #  ifdef __cplusplus
@@ -205,7 +206,7 @@
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
 union YYSTYPE
 {
-#line 43 "parser.y"
+#line 44 "parser.y"
 
        char *s;
        unsigned int i;
@@ -220,7 +221,7 @@
        } trunk;
        expand_t expand;
 
-#line 224 "parser.c"
+#line 225 "parser.c"
 
 };
 typedef union YYSTYPE YYSTYPE;
@@ -707,13 +708,13 @@
 /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
 static const yytype_int16 yyrline[] =
 {
-       0,   101,   101,   117,   101,   159,   160,   164,   165,   166,
-     170,   174,   178,   182,   183,   187,   188,   189,   193,   194,
-     212,   215,   217,   221,   241,   253,   257,   258,   262,   263,
-     267,   272,   276,   279,   281,   285,   285,   303,   312,   313,
-     317,   325,   326,   333,   334,   338,   347,   362,   365,   373,
-     374,   384,   386,   389,   391,   395,   396,   397,   398,   402,
-     403,   407,   410,   412
+       0,   102,   102,   118,   102,   160,   161,   165,   166,   167,
+     171,   175,   179,   183,   184,   188,   189,   190,   194,   195,
+     213,   216,   218,   222,   242,   254,   258,   259,   263,   264,
+     268,   273,   277,   280,   282,   286,   286,   304,   313,   314,
+     318,   326,   327,   334,   335,   339,   348,   363,   366,   374,
+     375,   385,   387,   390,   392,   396,   397,   398,   399,   403,
+     404,   408,   411,   413
 };
 #endif
 
@@ -1732,18 +1733,18 @@
   switch (yyn)
     {
   case 2: /* $@1: %empty  */
-#line 101 "parser.y"
+#line 102 "parser.y"
                 {
                        yylloc.line = 1;
                        yylloc.off = yylloc.next = 0;
                        lines = 0;
                        rcs->delta_list = hash_new((dup_fn_t)delta_dup, 
(free_fn_t)delta_free);
                }
-#line 1743 "parser.c"
+#line 1744 "parser.c"
     break;
 
   case 3: /* @2: %empty  */
-#line 117 "parser.y"
+#line 118 "parser.y"
                 {
                        if ((yyvsp[-9].s)) {
                                int count;
@@ -1769,11 +1770,11 @@
                                (yyval.trunk).branches = NULL;
                        }
                }
-#line 1773 "parser.c"
+#line 1774 "parser.c"
     break;
 
   case 4: /* rcstext: $@1 admin_head admin_branch admin_access admin_symbols 
admin_locks admin_strict admin_comment admin_expand newphrase_list delta_list 
@2 desc deltatext_list  */
-#line 144 "parser.y"
+#line 145 "parser.y"
                 {
                        rcs->head = (yyvsp[-2].trunk).head;
                        rcs->branch = ((yyvsp[-11].s) ? strdup((yyvsp[-11].s)) 
: ((yyvsp[-12].s) ? rcs_rev_to_branch((yyvsp[-12].s)) : NULL));
@@ -1786,95 +1787,95 @@
                        rcs->expand = (yyvsp[-5].expand);
                        rcs->lines = lines;
                }
-#line 1790 "parser.c"
+#line 1791 "parser.c"
     break;
 
   case 5: /* admin_head: HEAD NUM ';'  */
-#line 159 "parser.y"
+#line 160 "parser.y"
                              { (yyval.s) = rcs->start + (yylsp[-1]).off; 
*((yyval.s) + (yyvsp[-1].i)) = '\0'; }
-#line 1796 "parser.c"
+#line 1797 "parser.c"
     break;
 
   case 6: /* admin_head: HEAD ';'  */
-#line 160 "parser.y"
+#line 161 "parser.y"
                          { (yyval.s) = NULL; }
-#line 1802 "parser.c"
+#line 1803 "parser.c"
     break;
 
   case 7: /* admin_branch: %empty  */
-#line 164 "parser.y"
+#line 165 "parser.y"
                             { (yyval.s) = NULL; }
-#line 1808 "parser.c"
+#line 1809 "parser.c"
     break;
 
   case 8: /* admin_branch: BRANCH NUM ';'  */
-#line 165 "parser.y"
+#line 166 "parser.y"
                                { (yyval.s) = rcs->start + (yylsp[-1]).off; 
*((yyval.s) + (yyvsp[-1].i)) = '\0'; }
-#line 1814 "parser.c"
+#line 1815 "parser.c"
     break;
 
   case 9: /* admin_branch: BRANCH ';'  */
-#line 166 "parser.y"
+#line 167 "parser.y"
                      { (yyval.s) = NULL; }
-#line 1820 "parser.c"
+#line 1821 "parser.c"
     break;
 
   case 10: /* admin_access: ACCESS id_list ';'  */
-#line 170 "parser.y"
+#line 171 "parser.y"
                                    { (yyval.vector) = (yyvsp[-1].vector); }
-#line 1826 "parser.c"
+#line 1827 "parser.c"
     break;
 
   case 11: /* admin_symbols: SYMBOLS sym_num_list ';'  */
-#line 174 "parser.y"
+#line 175 "parser.y"
                                          { (yyval.hash) = (yyvsp[-1].hash); }
-#line 1832 "parser.c"
+#line 1833 "parser.c"
     break;
 
   case 12: /* admin_locks: LOCKS id_num_list ';'  */
-#line 178 "parser.y"
+#line 179 "parser.y"
                                       { (yyval.hash) = (yyvsp[-1].hash); }
-#line 1838 "parser.c"
+#line 1839 "parser.c"
     break;
 
   case 13: /* admin_strict: %empty  */
-#line 182 "parser.y"
+#line 183 "parser.y"
                             { (yyval.i) = 0; }
-#line 1844 "parser.c"
+#line 1845 "parser.c"
     break;
 
   case 14: /* admin_strict: STRICT ';'  */
-#line 183 "parser.y"
+#line 184 "parser.y"
                            { (yyval.i) = 1; }
-#line 1850 "parser.c"
+#line 1851 "parser.c"
     break;
 
   case 15: /* admin_comment: %empty  */
-#line 187 "parser.y"
+#line 188 "parser.y"
                             { (yyval.s) = NULL; }
-#line 1856 "parser.c"
+#line 1857 "parser.c"
     break;
 
   case 16: /* admin_comment: COMMENT STR_FINAL ';'  */
-#line 188 "parser.y"
+#line 189 "parser.y"
                                        { (yyval.s) = rcs->start + 
(yylsp[-1]).off; *((yyval.s) + (yyvsp[-1].i)) = '\0'; }
-#line 1862 "parser.c"
+#line 1863 "parser.c"
     break;
 
   case 17: /* admin_comment: COMMENT ';'  */
-#line 189 "parser.y"
+#line 190 "parser.y"
                             { (yyval.s) = NULL; }
-#line 1868 "parser.c"
+#line 1869 "parser.c"
     break;
 
   case 18: /* admin_expand: %empty  */
-#line 193 "parser.y"
+#line 194 "parser.y"
                             { (yyval.expand) = EXPAND_UNDEFINED; }
-#line 1874 "parser.c"
+#line 1875 "parser.c"
     break;
 
   case 19: /* admin_expand: EXPAND STR_FINAL ';'  */
-#line 194 "parser.y"
+#line 195 "parser.y"
                                {
                        if (!strncmp(rcs->start + (yylsp[-1]).off, "kv", 
(yyvsp[-1].i)))
                                (yyval.expand) = EXPAND_KEY_VALUE;
@@ -1893,17 +1894,17 @@
                                YYERROR;
                        }
                }
-#line 1897 "parser.c"
+#line 1898 "parser.c"
     break;
 
   case 20: /* admin_expand: EXPAND ';'  */
-#line 212 "parser.y"
+#line 213 "parser.y"
                      { (yyval.expand) = EXPAND_UNDEFINED; }
-#line 1903 "parser.c"
+#line 1904 "parser.c"
     break;
 
   case 23: /* delta: NUM delta_date delta_author delta_state delta_branches 
delta_next newphrase_list  */
-#line 228 "parser.y"
+#line 229 "parser.y"
                 {
                        char *num = rcs->start + (yylsp[-6]).off;
                        *(num + (yyvsp[-6].i)) = '\0';
@@ -1914,11 +1915,11 @@
                        }
                        delta_complete_template_nocopy((yyval.delta), 
(yyvsp[-5].date), (yyvsp[-4].s), (yyvsp[-3].s), (yyvsp[-2].hash), 
(yyvsp[-1].delta));
                }
-#line 1918 "parser.c"
+#line 1919 "parser.c"
     break;
 
   case 24: /* delta_date: DATE NUM ';'  */
-#line 241 "parser.y"
+#line 242 "parser.y"
                              {
                        char *num = rcs->start + (yylsp[-1]).off;
                        *(num + (yyvsp[-1].i)) = '\0';
@@ -1928,57 +1929,57 @@
                                YYERROR;
                        }
                }
-#line 1932 "parser.c"
+#line 1933 "parser.c"
     break;
 
   case 25: /* delta_author: AUTHOR id_or_sym ';'  */
-#line 253 "parser.y"
+#line 254 "parser.y"
                                      { (yyval.s) = (yyvsp[-1].s); }
-#line 1938 "parser.c"
+#line 1939 "parser.c"
     break;
 
   case 26: /* delta_state: STATE id_or_sym ';'  */
-#line 257 "parser.y"
+#line 258 "parser.y"
                                     { (yyval.s) = (yyvsp[-1].s); }
-#line 1944 "parser.c"
+#line 1945 "parser.c"
     break;
 
   case 27: /* delta_state: STATE ';'  */
-#line 258 "parser.y"
+#line 259 "parser.y"
                     { (yyval.s) = NULL; }
-#line 1950 "parser.c"
+#line 1951 "parser.c"
     break;
 
   case 28: /* delta_branches: BRANCHES num_list ';'  */
-#line 262 "parser.y"
+#line 263 "parser.y"
                                       { (yyval.hash) = (yyvsp[-1].hash); }
-#line 1956 "parser.c"
+#line 1957 "parser.c"
     break;
 
   case 29: /* delta_branches: BRANCHES ';'  */
-#line 263 "parser.y"
+#line 264 "parser.y"
                              { (yyval.hash) = NULL; }
-#line 1962 "parser.c"
+#line 1963 "parser.c"
     break;
 
   case 30: /* delta_next: NEXT NUM ';'  */
-#line 267 "parser.y"
+#line 268 "parser.y"
                              {
                        char *num = rcs->start + (yylsp[-1]).off;
                        *(num + (yyvsp[-1].i)) = '\0';
                        (yyval.delta) = rcs_get_delta_template(rcs, num);
                }
-#line 1972 "parser.c"
+#line 1973 "parser.c"
     break;
 
   case 31: /* delta_next: NEXT ';'  */
-#line 272 "parser.y"
+#line 273 "parser.y"
                    { (yyval.delta) = NULL; }
-#line 1978 "parser.c"
+#line 1979 "parser.c"
     break;
 
   case 35: /* @3: %empty  */
-#line 285 "parser.y"
+#line 286 "parser.y"
                     {
                        const delta_t *delta;
                        char *num = rcs->start + (yylsp[0]).off;
@@ -1991,77 +1992,77 @@
                                YYERROR;
                        }
                }
-#line 1995 "parser.c"
+#line 1996 "parser.c"
     break;
 
   case 36: /* deltatext: NUM @3 deltatext_log newphrase_list deltatext_text  */
-#line 299 "parser.y"
+#line 300 "parser.y"
                                { delta_complete_text_nocopy((yyvsp[-3].delta), 
(yyvsp[-2].s), (yyvsp[0].lines)); }
-#line 2001 "parser.c"
+#line 2002 "parser.c"
     break;
 
   case 37: /* deltatext_log: LOG deltatext_log_bit STR_FINAL  */
-#line 303 "parser.y"
+#line 304 "parser.y"
                                                 {
                        /* Sigh... Can't rely on @2 because the empty rule below
                         * screws up the location stack. */
                        rcs->start[(yylsp[0]).off + (yyvsp[0].i)] = '\0';
                        (yyval.s) = rcs->start + (yylsp[0]).off - (yyvsp[-1].i);
                }
-#line 2012 "parser.c"
+#line 2013 "parser.c"
     break;
 
   case 38: /* deltatext_log_bit: %empty  */
-#line 312 "parser.y"
+#line 313 "parser.y"
                             { (yyval.i) = 0; }
-#line 2018 "parser.c"
+#line 2019 "parser.c"
     break;
 
   case 39: /* deltatext_log_bit: deltatext_log_bit STR  */
-#line 313 "parser.y"
+#line 314 "parser.y"
                                       { (yyval.i) = (yyvsp[-1].i) + 
(yyvsp[0].i); }
-#line 2024 "parser.c"
+#line 2025 "parser.c"
     break;
 
   case 40: /* deltatext_text: TEXT deltatext_text_string STR_FINAL  */
-#line 317 "parser.y"
+#line 318 "parser.y"
                                                      {
                        (yyval.lines) = (yyvsp[-1].lines);
                        lines_append_nocopy((yyval.lines), rcs->start + 
(yylsp[0]).off, (yyvsp[0].i));
                        lines++;
                }
-#line 2034 "parser.c"
+#line 2035 "parser.c"
     break;
 
   case 41: /* deltatext_text_string: %empty  */
-#line 325 "parser.y"
+#line 326 "parser.y"
                             { (yyval.lines) = lines_new(); }
-#line 2040 "parser.c"
+#line 2041 "parser.c"
     break;
 
   case 42: /* deltatext_text_string: deltatext_text_string STR  */
-#line 326 "parser.y"
+#line 327 "parser.y"
                                           {
                        lines_append_nocopy((yyval.lines), rcs->start + 
(yylsp[0]).off, (yyvsp[0].i));
                        lines++;
                }
-#line 2049 "parser.c"
+#line 2050 "parser.c"
     break;
 
   case 43: /* id_list: %empty  */
-#line 333 "parser.y"
+#line 334 "parser.y"
                             { (yyval.vector) = vector_new(NULL, NULL); }
-#line 2055 "parser.c"
+#line 2056 "parser.c"
     break;
 
   case 44: /* id_list: id_list id_or_sym  */
-#line 334 "parser.y"
+#line 335 "parser.y"
                                   { vector_append_nocopy((yyval.vector), 
(yyvsp[0].s)); }
-#line 2061 "parser.c"
+#line 2062 "parser.c"
     break;
 
   case 45: /* num_list: NUM  */
-#line 338 "parser.y"
+#line 339 "parser.y"
                     {
                        char *branch, *num;
                        (yyval.hash) = hash_new(NULL, NULL);
@@ -2071,11 +2072,11 @@
                        hash_insert_nocopy((yyval.hash), branch, 
rcs_get_delta_template(rcs, num));
                        FREE(branch);
                }
-#line 2075 "parser.c"
+#line 2076 "parser.c"
     break;
 
   case 46: /* num_list: num_list NUM  */
-#line 347 "parser.y"
+#line 348 "parser.y"
                        {
                        char *branch, *num;
                        num = rcs->start + (yylsp[0]).off;
@@ -2088,35 +2089,35 @@
                        hash_insert_nocopy((yyval.hash), branch, 
rcs_get_delta_template(rcs, num));
                        FREE(branch);
                }
-#line 2092 "parser.c"
+#line 2093 "parser.c"
     break;
 
   case 47: /* id_num_list: %empty  */
-#line 362 "parser.y"
+#line 363 "parser.y"
                             {
                        (yyval.hash) = hash_new(NULL, NULL);
                }
-#line 2100 "parser.c"
+#line 2101 "parser.c"
     break;
 
   case 48: /* id_num_list: id_num_list id_or_sym ':' NUM  */
-#line 365 "parser.y"
+#line 366 "parser.y"
                                         {
                        char *num = rcs->start + (yylsp[0]).off;
                        *(num + (yyvsp[0].i)) = '\0';
                        hash_insert_nocopy((yyval.hash), (yyvsp[-2].s), 
rcs_get_delta_template(rcs, num));
                }
-#line 2110 "parser.c"
+#line 2111 "parser.c"
     break;
 
   case 49: /* sym_num_list: %empty  */
-#line 373 "parser.y"
+#line 374 "parser.y"
                             { (yyval.hash) = hash_new(NULL, NULL); }
-#line 2116 "parser.c"
+#line 2117 "parser.c"
     break;
 
   case 50: /* sym_num_list: sym_num_list SYM ':' NUM  */
-#line 374 "parser.y"
+#line 375 "parser.y"
                                    {
                char *sym, *num;
                sym = rcs->start + (yylsp[-2]).off;
@@ -2125,23 +2126,23 @@
                *(num + (yyvsp[0].i)) = '\0';
                hash_insert_nocopy((yyval.hash), sym, num);
        }
-#line 2129 "parser.c"
+#line 2130 "parser.c"
     break;
 
   case 59: /* id_or_sym: ID  */
-#line 402 "parser.y"
+#line 403 "parser.y"
                    { (yyval.s) = rcs->start + (yylsp[0]).off; *((yyval.s) + 
(yyvsp[0].i)) = '\0'; }
-#line 2135 "parser.c"
+#line 2136 "parser.c"
     break;
 
   case 60: /* id_or_sym: SYM  */
-#line 403 "parser.y"
+#line 404 "parser.y"
                     { (yyval.s) = rcs->start + (yylsp[0]).off; *((yyval.s) + 
(yyvsp[0].i)) = '\0'; }
-#line 2141 "parser.c"
+#line 2142 "parser.c"
     break;
 
 
-#line 2145 "parser.c"
+#line 2146 "parser.c"
 
       default: break;
     }
@@ -2370,7 +2371,7 @@
   return yyresult;
 }
 
-#line 415 "parser.y"
+#line 416 "parser.y"
 
 
 static 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/rcs-blame-snapshots-t20251006/src/parser.y 
new/rcs-blame-snapshots-t20260222/src/parser.y
--- old/rcs-blame-snapshots-t20251006/src/parser.y      2025-10-07 
02:15:41.000000000 +0200
+++ new/rcs-blame-snapshots-t20260222/src/parser.y      2026-02-23 
02:09:32.000000000 +0100
@@ -1,6 +1,7 @@
 %{
 /*
  * Blame - An RCS file annotator
+ * Copyright 2025 Thomas E. Dickey
  * Copyright (C) 2004  Michael Chapman
  *
  * This program is free software; you can redistribute it and/or modify
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/rcs-blame-snapshots-t20251006/src/rcs.c 
new/rcs-blame-snapshots-t20260222/src/rcs.c
--- old/rcs-blame-snapshots-t20251006/src/rcs.c 2025-10-07 02:15:41.000000000 
+0200
+++ new/rcs-blame-snapshots-t20260222/src/rcs.c 2026-02-23 02:09:32.000000000 
+0100
@@ -1,5 +1,6 @@
 /*
  * Blame - An RCS file annotator
+ * Copyright 2024,2025 Thomas E. Dickey
  * Copyright (C) 2004, 2005  Michael Chapman
  *
  * This program is free software; you can redistribute it and/or modify
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/rcs-blame-snapshots-t20251006/src/rcs.h 
new/rcs-blame-snapshots-t20260222/src/rcs.h
--- old/rcs-blame-snapshots-t20251006/src/rcs.h 2025-10-07 02:15:41.000000000 
+0200
+++ new/rcs-blame-snapshots-t20260222/src/rcs.h 2026-02-23 02:09:32.000000000 
+0100
@@ -1,5 +1,6 @@
 /*
  * Blame - An RCS file annotator
+ * Copyright 2024,2025 Thomas E. Dickey
  * Copyright (C) 2004  Michael Chapman
  *
  * This program is free software; you can redistribute it and/or modify
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/rcs-blame-snapshots-t20251006/src/util.c 
new/rcs-blame-snapshots-t20260222/src/util.c
--- old/rcs-blame-snapshots-t20251006/src/util.c        2025-10-07 
02:15:41.000000000 +0200
+++ new/rcs-blame-snapshots-t20260222/src/util.c        2026-02-23 
02:09:32.000000000 +0100
@@ -1,7 +1,7 @@
 /*
  * Blame - An RCS file annotator
+ * Copyright 2024,2025 Thomas E. Dickey
  * Copyright (C) 2004  Michael Chapman
- * Copyright 2024  Thomas E. Dickey
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
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/rcs-blame-snapshots-t20251006/src/vector.c 
new/rcs-blame-snapshots-t20260222/src/vector.c
--- old/rcs-blame-snapshots-t20251006/src/vector.c      2025-10-07 
02:15:41.000000000 +0200
+++ new/rcs-blame-snapshots-t20260222/src/vector.c      2026-02-23 
02:09:32.000000000 +0100
@@ -1,5 +1,6 @@
 /*
  * Blame - An RCS file annotator
+   Copyright 2025,2026 Thomas E. Dickey
  * Copyright (C) 2004  Michael Chapman
  *
  * This program is free software; you can redistribute it and/or modify
@@ -84,12 +85,12 @@
  * Appends <x> to <vector> without duplicating.
  */
 void
-vector_append_nocopy(vector_t *vector, void *x) {
+vector_append_nocopy(vector_t *vector, const void *x) {
        assert(vector);
 
        if (vector->count == vector->capacity)
                vector_expand(vector, 2 * vector->count);
-       vector->data[vector->count] = x;
+       vector->data[vector->count] = (void *) x;
        vector->count++;
 }
 
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/rcs-blame-snapshots-t20251006/src/vector.h 
new/rcs-blame-snapshots-t20260222/src/vector.h
--- old/rcs-blame-snapshots-t20251006/src/vector.h      2025-10-07 
02:15:41.000000000 +0200
+++ new/rcs-blame-snapshots-t20260222/src/vector.h      2026-02-23 
02:09:32.000000000 +0100
@@ -1,5 +1,6 @@
 /*
  * Blame - An RCS file annotator
+ * Copyright 2024-2025,2026 Thomas E. Dickey
  * Copyright (C) 2004  Michael Chapman
  *
  * This program is free software; you can redistribute it and/or modify
@@ -40,7 +41,7 @@
 vector_t * vector_new (dup_fn_t, free_fn_t);
 vector_t * vector_dup (const vector_t *);
 void vector_expand (vector_t *, unsigned int);
-void vector_append_nocopy (vector_t *, void *);
+void vector_append_nocopy (vector_t *, const void *);
 
 /*
  * Appends a duplication of <x> to <vector>.
@@ -52,7 +53,7 @@
        if (vector->dup_fn)
                vector_append_nocopy(vector, (vector->dup_fn)(x));
        else
-               vector_append_nocopy(vector, (void *)x);
+               vector_append_nocopy(vector, x);
 }
 
 void vector_free (vector_t *);
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/rcs-blame-snapshots-t20251006/src/working.c 
new/rcs-blame-snapshots-t20260222/src/working.c
--- old/rcs-blame-snapshots-t20251006/src/working.c     2025-10-07 
02:15:41.000000000 +0200
+++ new/rcs-blame-snapshots-t20260222/src/working.c     2026-02-23 
02:09:32.000000000 +0100
@@ -1,5 +1,6 @@
 /*
  * Blame - An RCS file annotator
+ * Copyright 2024,2025 Thomas E. Dickey
  * Copyright (C) 2004  Michael Chapman
  *
  * This program is free software; you can redistribute it and/or modify

Reply via email to