texlive[65694] trunk: urlbst (30jan23)

commits+karl at tug.org commits+karl at tug.org
Mon Jan 30 23:07:37 CET 2023


Revision: 65694
          http://tug.org/svn/texlive?view=revision&revision=65694
Author:   karl
Date:     2023-01-30 23:07:37 +0100 (Mon, 30 Jan 2023)
Log Message:
-----------
urlbst (30jan23)

Modified Paths:
--------------
    trunk/Build/source/texk/texlive/linked_scripts/urlbst/urlbst
    trunk/Master/texmf-dist/bibtex/bst/urlbst/abbrvurl.bst
    trunk/Master/texmf-dist/bibtex/bst/urlbst/alphaurl.bst
    trunk/Master/texmf-dist/bibtex/bst/urlbst/plainurl.bst
    trunk/Master/texmf-dist/bibtex/bst/urlbst/unsrturl.bst
    trunk/Master/texmf-dist/doc/bibtex/urlbst/README
    trunk/Master/texmf-dist/doc/bibtex/urlbst/VERSION
    trunk/Master/texmf-dist/doc/bibtex/urlbst/urlbst.bib
    trunk/Master/texmf-dist/doc/bibtex/urlbst/urlbst.html
    trunk/Master/texmf-dist/doc/bibtex/urlbst/urlbst.in
    trunk/Master/texmf-dist/doc/bibtex/urlbst/urlbst.pdf
    trunk/Master/texmf-dist/doc/bibtex/urlbst/urlbst.tex
    trunk/Master/texmf-dist/scripts/urlbst/urlbst
    trunk/Master/texmf-dist/source/bibtex/urlbst/configure
    trunk/Master/texmf-dist/source/bibtex/urlbst/configure.ac

Modified: trunk/Build/source/texk/texlive/linked_scripts/urlbst/urlbst
===================================================================
--- trunk/Build/source/texk/texlive/linked_scripts/urlbst/urlbst	2023-01-30 20:53:31 UTC (rev 65693)
+++ trunk/Build/source/texk/texlive/linked_scripts/urlbst/urlbst	2023-01-30 22:07:37 UTC (rev 65694)
@@ -8,16 +8,16 @@
 #
 # See https://purl.org/nxg/dist/urlbst for documentation
 #
-# Copyright 2002-03, 2005-12, 2014, 2019, 2022, Norman Gray <https://nxg.me.uk>
+# Copyright 2002–23, Norman Gray <https://nxg.me.uk>
 #
 # This program is distributed under the terms of the
 # GNU General Public Licence, v2.0.
-# The modifications to the input .bst files are asserted as Copyright 2002-03, 2005-12, 2014, 2019, 2022, Norman Gray,
+# The modifications to the input .bst files are asserted as Copyright 2002–23, Norman Gray,
 # and distributed under the terms of the LaTeX Project Public Licence.
 # See the package README for further dicussion of licences.
 
-$version = '0.9';
-$releasedate = '2022 December 1';
+$version = '0.9.1';
+$releasedate = '2023 January 30';
 ($progname = $0) =~ s/.*\///;
 $mymarker = "% $progname";
 $mymarkerend = "% ...$progname to here";
@@ -253,7 +253,7 @@
 
 print OUT "%%% Modification of BibTeX style file ", ($infile eq '-' ? '<stdin>' : $infile), "\n";
 print OUT "%%% ... by $progname, version $version (marked with \"$mymarker\")\n%%% See <$homepageurl> and repository <$repourl>\n";
-print OUT "%%% Modifications Copyright 2002-03, 2005-12, 2014, 2019, 2022, Norman Gray,\n";
+print OUT "%%% Modifications Copyright 2002–23, Norman Gray,\n";
 print OUT "%%% and distributed under the terms of the LPPL; see README for discussion.\n";
 print OUT "%%%\n";
 print OUT "%%% Added webpage entry type, and url and lastchecked fields.\n";
@@ -501,6 +501,19 @@
     print OUT "$mymarker...\n";
 
     print OUT <<'EOD';
+% Minimal DOI parsing.
+% Given a DOI on the stack, check whether it starts with 'doiurl' or not.
+% In either case, leave on the stack first a DOI with, and then a DOI without, the URL prefix.
+FUNCTION {parse.doi}
+{
+  #1 doiurl text.length$ substring$
+  doiurl =
+    { doi
+      doi doiurl text.length$ #1 + #999 substring$ }
+    { doiurl doi *
+      doi }
+  if$
+}
 % The following three functions are for handling inlinelink.  They wrap
 % a block of text which is potentially output with write$ by multiple
 % other functions, so we don't know the content a priori.
@@ -527,7 +540,12 @@
               if$ }
             { pubmedurl pubmed * }
           if$ }
-        { doiurl doi * }
+%        { doiurl doi * }
+        { doi empty$
+            { "XXX" }
+            { doi parse.doi pop$ }
+          if$
+        }
       if$
       % an appropriately-formatted URL is now on the stack
       hrefform #1 = % hypertex
@@ -683,9 +701,11 @@
 FUNCTION {format.doi}
 { doi empty$
     { "" }
-    { doiform #1 =
-        { "\doi{" doi * "}" * }
-        { doiprefix doi * doiurl doi * make.href }
+    { doi parse.doi % leaves "https://doi.org/DOI" DOI on the stack
+      's := 't :=
+      doiform #1 =
+        { "\doi{" s * "}" * }
+        { doiprefix s * t make.href }
       if$
     }
   if$
@@ -731,10 +751,11 @@
   inlinelinks
     'skip$ % links were inline -- don't repeat them
     { % If the generated DOI will be the same as the URL,
-      % then don't print the URL (thanks to Joseph Wright for this code,
+      % then don't print the URL (thanks to Joseph Wright
+      % for (the original version of) this code,
       % at http://tex.stackexchange.com/questions/5660)
       adddoi
-          doiurl doi empty$ { "X" } { doi } if$ * % DOI URL to be generated
+          doi empty$ { "X" } { doi parse.doi pop$ } if$ % DOI URL to be generated
           url empty$ { "Y" } { url } if$          % the URL, or "Y" if empty
           =                                       % are the strings equal?
           and

Modified: trunk/Master/texmf-dist/bibtex/bst/urlbst/abbrvurl.bst
===================================================================
--- trunk/Master/texmf-dist/bibtex/bst/urlbst/abbrvurl.bst	2023-01-30 20:53:31 UTC (rev 65693)
+++ trunk/Master/texmf-dist/bibtex/bst/urlbst/abbrvurl.bst	2023-01-30 22:07:37 UTC (rev 65694)
@@ -1,7 +1,7 @@
 %%% Modification of BibTeX style file /usr/local/texlive/2022/texmf-dist/bibtex/bst/base/abbrv.bst
-%%% ... by urlbst, version 0.9 (marked with "% urlbst")
+%%% ... by urlbst, version 0.9.1 (marked with "% urlbst")
 %%% See <https://purl.org/nxg/dist/urlbst> and repository <https://heptapod.host/nxg/urlbst>
-%%% Modifications Copyright 2002-03, 2005-12, 2014, 2019, 2022, Norman Gray,
+%%% Modifications Copyright 2002–23, Norman Gray,
 %%% and distributed under the terms of the LPPL; see README for discussion.
 %%%
 %%% Added webpage entry type, and url and lastchecked fields.
@@ -68,24 +68,24 @@
   % The following constants may be adjusted by hand, if desired
 
   % The first set allow you to enable or disable certain functionality.
+  #2 'hrefform :=	% 0=no crossrefs; 1=hypertex hrefs; 2=hyperref hrefs
+  #1 'adddoi :=	% 0=no DOI resolver; 1=include it
   #1 'addeprints :=	% 0=no eprints; 1=include eprints
-  #1 'adddoi :=	% 0=no DOI resolver; 1=include it
-  #2 'hrefform :=	% 0=no crossrefs; 1=hypertex hrefs; 2=hyperref hrefs
-  #0 'doiform :=	% 0=with href; 1=with \doi{}
   #1 'addpubmed :=	% 0=no PUBMED resolver; 1=include it
   #0 'inlinelinks :=	% 0=URLs explicit; 1=URLs attached to titles
+  #0 'doiform :=	% 0=with href; 1=with \doi{}
 
   % String constants, which you _might_ want to tweak.
+  "PMID:" 'pubmedprefix :=	% text prefix printed before PUBMED ref
+  "cited " 'citedstring :=	% label in "lastchecked" remark
+  "https://doi.org/" 'doiurl :=	% prefix to make URL from DOI
+  "URL: " 'urlintro :=	% text prefix before URL
   "[link]" 'linktextstring :=	% anonymous link text
-  "cited " 'citedstring :=	% label in "lastchecked" remark
+  "http://www.ncbi.nlm.nih.gov/pubmed/" 'pubmedurl :=	% prefix to make URL from PUBMED
+  "arXiv:" 'eprintprefix :=	% text prefix printed before eprint ref
+  "doi:" 'doiprefix :=	% printed text to introduce DOI
   "online" 'onlinestring :=	% label that a resource is online
-  "doi:" 'doiprefix :=	% printed text to introduce DOI
-  "arXiv:" 'eprintprefix :=	% text prefix printed before eprint ref
-  "http://www.ncbi.nlm.nih.gov/pubmed/" 'pubmedurl :=	% prefix to make URL from PUBMED
-  "PMID:" 'pubmedprefix :=	% text prefix printed before PUBMED ref
   "https://arxiv.org/abs/" 'eprinturl :=	% prefix to make URL from eprint ref
-  "https://doi.org/" 'doiurl :=	% prefix to make URL from DOI
-  "URL: " 'urlintro :=	% text prefix before URL
 
   % The following are internal state variables, not configuration constants,
   % so they shouldn't be fiddled with.
@@ -138,6 +138,19 @@
 }
 
 % urlbst...
+% Minimal DOI parsing.
+% Given a DOI on the stack, check whether it starts with 'doiurl' or not.
+% In either case, leave on the stack first a DOI with, and then a DOI without, the URL prefix.
+FUNCTION {parse.doi}
+{
+  #1 doiurl text.length$ substring$
+  doiurl =
+    { doi
+      doi doiurl text.length$ #1 + #999 substring$ }
+    { doiurl doi *
+      doi }
+  if$
+}
 % The following three functions are for handling inlinelink.  They wrap
 % a block of text which is potentially output with write$ by multiple
 % other functions, so we don't know the content a priori.
@@ -164,7 +177,12 @@
               if$ }
             { pubmedurl pubmed * }
           if$ }
-        { doiurl doi * }
+%        { doiurl doi * }
+        { doi empty$
+            { "XXX" }
+            { doi parse.doi pop$ }
+          if$
+        }
       if$
       % an appropriately-formatted URL is now on the stack
       hrefform #1 = % hypertex
@@ -761,9 +779,11 @@
 FUNCTION {format.doi}
 { doi empty$
     { "" }
-    { doiform #1 =
-        { "\doi{" doi * "}" * }
-        { doiprefix doi * doiurl doi * make.href }
+    { doi parse.doi % leaves "https://doi.org/DOI" DOI on the stack
+      's := 't :=
+      doiform #1 =
+        { "\doi{" s * "}" * }
+        { doiprefix s * t make.href }
       if$
     }
   if$
@@ -797,10 +817,11 @@
   inlinelinks
     'skip$ % links were inline -- don't repeat them
     { % If the generated DOI will be the same as the URL,
-      % then don't print the URL (thanks to Joseph Wright for this code,
+      % then don't print the URL (thanks to Joseph Wright
+      % for (the original version of) this code,
       % at http://tex.stackexchange.com/questions/5660)
       adddoi
-          doiurl doi empty$ { "X" } { doi } if$ * % DOI URL to be generated
+          doi empty$ { "X" } { doi parse.doi pop$ } if$ % DOI URL to be generated
           url empty$ { "Y" } { url } if$          % the URL, or "Y" if empty
           =                                       % are the strings equal?
           and

Modified: trunk/Master/texmf-dist/bibtex/bst/urlbst/alphaurl.bst
===================================================================
--- trunk/Master/texmf-dist/bibtex/bst/urlbst/alphaurl.bst	2023-01-30 20:53:31 UTC (rev 65693)
+++ trunk/Master/texmf-dist/bibtex/bst/urlbst/alphaurl.bst	2023-01-30 22:07:37 UTC (rev 65694)
@@ -1,7 +1,7 @@
 %%% Modification of BibTeX style file /usr/local/texlive/2022/texmf-dist/bibtex/bst/base/alpha.bst
-%%% ... by urlbst, version 0.9 (marked with "% urlbst")
+%%% ... by urlbst, version 0.9.1 (marked with "% urlbst")
 %%% See <https://purl.org/nxg/dist/urlbst> and repository <https://heptapod.host/nxg/urlbst>
-%%% Modifications Copyright 2002-03, 2005-12, 2014, 2019, 2022, Norman Gray,
+%%% Modifications Copyright 2002–23, Norman Gray,
 %%% and distributed under the terms of the LPPL; see README for discussion.
 %%%
 %%% Added webpage entry type, and url and lastchecked fields.
@@ -69,23 +69,23 @@
 
   % The first set allow you to enable or disable certain functionality.
   #1 'addeprints :=	% 0=no eprints; 1=include eprints
-  #2 'hrefform :=	% 0=no crossrefs; 1=hypertex hrefs; 2=hyperref hrefs
   #0 'inlinelinks :=	% 0=URLs explicit; 1=URLs attached to titles
+  #1 'addpubmed :=	% 0=no PUBMED resolver; 1=include it
   #1 'adddoi :=	% 0=no DOI resolver; 1=include it
+  #2 'hrefform :=	% 0=no crossrefs; 1=hypertex hrefs; 2=hyperref hrefs
   #0 'doiform :=	% 0=with href; 1=with \doi{}
-  #1 'addpubmed :=	% 0=no PUBMED resolver; 1=include it
 
   % String constants, which you _might_ want to tweak.
+  "doi:" 'doiprefix :=	% printed text to introduce DOI
+  "arXiv:" 'eprintprefix :=	% text prefix printed before eprint ref
+  "PMID:" 'pubmedprefix :=	% text prefix printed before PUBMED ref
+  "[link]" 'linktextstring :=	% anonymous link text
   "cited " 'citedstring :=	% label in "lastchecked" remark
-  "URL: " 'urlintro :=	% text prefix before URL
-  "[link]" 'linktextstring :=	% anonymous link text
-  "arXiv:" 'eprintprefix :=	% text prefix printed before eprint ref
   "http://www.ncbi.nlm.nih.gov/pubmed/" 'pubmedurl :=	% prefix to make URL from PUBMED
-  "PMID:" 'pubmedprefix :=	% text prefix printed before PUBMED ref
+  "https://arxiv.org/abs/" 'eprinturl :=	% prefix to make URL from eprint ref
   "online" 'onlinestring :=	% label that a resource is online
-  "https://arxiv.org/abs/" 'eprinturl :=	% prefix to make URL from eprint ref
-  "doi:" 'doiprefix :=	% printed text to introduce DOI
   "https://doi.org/" 'doiurl :=	% prefix to make URL from DOI
+  "URL: " 'urlintro :=	% text prefix before URL
 
   % The following are internal state variables, not configuration constants,
   % so they shouldn't be fiddled with.
@@ -138,6 +138,19 @@
 }
 
 % urlbst...
+% Minimal DOI parsing.
+% Given a DOI on the stack, check whether it starts with 'doiurl' or not.
+% In either case, leave on the stack first a DOI with, and then a DOI without, the URL prefix.
+FUNCTION {parse.doi}
+{
+  #1 doiurl text.length$ substring$
+  doiurl =
+    { doi
+      doi doiurl text.length$ #1 + #999 substring$ }
+    { doiurl doi *
+      doi }
+  if$
+}
 % The following three functions are for handling inlinelink.  They wrap
 % a block of text which is potentially output with write$ by multiple
 % other functions, so we don't know the content a priori.
@@ -164,7 +177,12 @@
               if$ }
             { pubmedurl pubmed * }
           if$ }
-        { doiurl doi * }
+%        { doiurl doi * }
+        { doi empty$
+            { "XXX" }
+            { doi parse.doi pop$ }
+          if$
+        }
       if$
       % an appropriately-formatted URL is now on the stack
       hrefform #1 = % hypertex
@@ -763,9 +781,11 @@
 FUNCTION {format.doi}
 { doi empty$
     { "" }
-    { doiform #1 =
-        { "\doi{" doi * "}" * }
-        { doiprefix doi * doiurl doi * make.href }
+    { doi parse.doi % leaves "https://doi.org/DOI" DOI on the stack
+      's := 't :=
+      doiform #1 =
+        { "\doi{" s * "}" * }
+        { doiprefix s * t make.href }
       if$
     }
   if$
@@ -799,10 +819,11 @@
   inlinelinks
     'skip$ % links were inline -- don't repeat them
     { % If the generated DOI will be the same as the URL,
-      % then don't print the URL (thanks to Joseph Wright for this code,
+      % then don't print the URL (thanks to Joseph Wright
+      % for (the original version of) this code,
       % at http://tex.stackexchange.com/questions/5660)
       adddoi
-          doiurl doi empty$ { "X" } { doi } if$ * % DOI URL to be generated
+          doi empty$ { "X" } { doi parse.doi pop$ } if$ % DOI URL to be generated
           url empty$ { "Y" } { url } if$          % the URL, or "Y" if empty
           =                                       % are the strings equal?
           and

Modified: trunk/Master/texmf-dist/bibtex/bst/urlbst/plainurl.bst
===================================================================
--- trunk/Master/texmf-dist/bibtex/bst/urlbst/plainurl.bst	2023-01-30 20:53:31 UTC (rev 65693)
+++ trunk/Master/texmf-dist/bibtex/bst/urlbst/plainurl.bst	2023-01-30 22:07:37 UTC (rev 65694)
@@ -1,7 +1,7 @@
 %%% Modification of BibTeX style file /usr/local/texlive/2022/texmf-dist/bibtex/bst/base/plain.bst
-%%% ... by urlbst, version 0.9 (marked with "% urlbst")
+%%% ... by urlbst, version 0.9.1 (marked with "% urlbst")
 %%% See <https://purl.org/nxg/dist/urlbst> and repository <https://heptapod.host/nxg/urlbst>
-%%% Modifications Copyright 2002-03, 2005-12, 2014, 2019, 2022, Norman Gray,
+%%% Modifications Copyright 2002–23, Norman Gray,
 %%% and distributed under the terms of the LPPL; see README for discussion.
 %%%
 %%% Added webpage entry type, and url and lastchecked fields.
@@ -68,24 +68,24 @@
   % The following constants may be adjusted by hand, if desired
 
   % The first set allow you to enable or disable certain functionality.
-  #1 'addpubmed :=	% 0=no PUBMED resolver; 1=include it
-  #1 'addeprints :=	% 0=no eprints; 1=include eprints
+  #1 'adddoi :=	% 0=no DOI resolver; 1=include it
   #0 'inlinelinks :=	% 0=URLs explicit; 1=URLs attached to titles
-  #1 'adddoi :=	% 0=no DOI resolver; 1=include it
   #2 'hrefform :=	% 0=no crossrefs; 1=hypertex hrefs; 2=hyperref hrefs
+  #1 'addeprints :=	% 0=no eprints; 1=include eprints
   #0 'doiform :=	% 0=with href; 1=with \doi{}
+  #1 'addpubmed :=	% 0=no PUBMED resolver; 1=include it
 
   % String constants, which you _might_ want to tweak.
-  "cited " 'citedstring :=	% label in "lastchecked" remark
-  "[link]" 'linktextstring :=	% anonymous link text
-  "https://arxiv.org/abs/" 'eprinturl :=	% prefix to make URL from eprint ref
+  "https://doi.org/" 'doiurl :=	% prefix to make URL from DOI
+  "arXiv:" 'eprintprefix :=	% text prefix printed before eprint ref
   "online" 'onlinestring :=	% label that a resource is online
+  "URL: " 'urlintro :=	% text prefix before URL
   "doi:" 'doiprefix :=	% printed text to introduce DOI
-  "https://doi.org/" 'doiurl :=	% prefix to make URL from DOI
   "http://www.ncbi.nlm.nih.gov/pubmed/" 'pubmedurl :=	% prefix to make URL from PUBMED
-  "URL: " 'urlintro :=	% text prefix before URL
+  "[link]" 'linktextstring :=	% anonymous link text
+  "https://arxiv.org/abs/" 'eprinturl :=	% prefix to make URL from eprint ref
   "PMID:" 'pubmedprefix :=	% text prefix printed before PUBMED ref
-  "arXiv:" 'eprintprefix :=	% text prefix printed before eprint ref
+  "cited " 'citedstring :=	% label in "lastchecked" remark
 
   % The following are internal state variables, not configuration constants,
   % so they shouldn't be fiddled with.
@@ -138,6 +138,19 @@
 }
 
 % urlbst...
+% Minimal DOI parsing.
+% Given a DOI on the stack, check whether it starts with 'doiurl' or not.
+% In either case, leave on the stack first a DOI with, and then a DOI without, the URL prefix.
+FUNCTION {parse.doi}
+{
+  #1 doiurl text.length$ substring$
+  doiurl =
+    { doi
+      doi doiurl text.length$ #1 + #999 substring$ }
+    { doiurl doi *
+      doi }
+  if$
+}
 % The following three functions are for handling inlinelink.  They wrap
 % a block of text which is potentially output with write$ by multiple
 % other functions, so we don't know the content a priori.
@@ -164,7 +177,12 @@
               if$ }
             { pubmedurl pubmed * }
           if$ }
-        { doiurl doi * }
+%        { doiurl doi * }
+        { doi empty$
+            { "XXX" }
+            { doi parse.doi pop$ }
+          if$
+        }
       if$
       % an appropriately-formatted URL is now on the stack
       hrefform #1 = % hypertex
@@ -761,9 +779,11 @@
 FUNCTION {format.doi}
 { doi empty$
     { "" }
-    { doiform #1 =
-        { "\doi{" doi * "}" * }
-        { doiprefix doi * doiurl doi * make.href }
+    { doi parse.doi % leaves "https://doi.org/DOI" DOI on the stack
+      's := 't :=
+      doiform #1 =
+        { "\doi{" s * "}" * }
+        { doiprefix s * t make.href }
       if$
     }
   if$
@@ -797,10 +817,11 @@
   inlinelinks
     'skip$ % links were inline -- don't repeat them
     { % If the generated DOI will be the same as the URL,
-      % then don't print the URL (thanks to Joseph Wright for this code,
+      % then don't print the URL (thanks to Joseph Wright
+      % for (the original version of) this code,
       % at http://tex.stackexchange.com/questions/5660)
       adddoi
-          doiurl doi empty$ { "X" } { doi } if$ * % DOI URL to be generated
+          doi empty$ { "X" } { doi parse.doi pop$ } if$ % DOI URL to be generated
           url empty$ { "Y" } { url } if$          % the URL, or "Y" if empty
           =                                       % are the strings equal?
           and

Modified: trunk/Master/texmf-dist/bibtex/bst/urlbst/unsrturl.bst
===================================================================
--- trunk/Master/texmf-dist/bibtex/bst/urlbst/unsrturl.bst	2023-01-30 20:53:31 UTC (rev 65693)
+++ trunk/Master/texmf-dist/bibtex/bst/urlbst/unsrturl.bst	2023-01-30 22:07:37 UTC (rev 65694)
@@ -1,7 +1,7 @@
 %%% Modification of BibTeX style file /usr/local/texlive/2022/texmf-dist/bibtex/bst/base/unsrt.bst
-%%% ... by urlbst, version 0.9 (marked with "% urlbst")
+%%% ... by urlbst, version 0.9.1 (marked with "% urlbst")
 %%% See <https://purl.org/nxg/dist/urlbst> and repository <https://heptapod.host/nxg/urlbst>
-%%% Modifications Copyright 2002-03, 2005-12, 2014, 2019, 2022, Norman Gray,
+%%% Modifications Copyright 2002–23, Norman Gray,
 %%% and distributed under the terms of the LPPL; see README for discussion.
 %%%
 %%% Added webpage entry type, and url and lastchecked fields.
@@ -68,24 +68,24 @@
   % The following constants may be adjusted by hand, if desired
 
   % The first set allow you to enable or disable certain functionality.
-  #0 'inlinelinks :=	% 0=URLs explicit; 1=URLs attached to titles
+  #1 'addpubmed :=	% 0=no PUBMED resolver; 1=include it
+  #0 'doiform :=	% 0=with href; 1=with \doi{}
   #1 'adddoi :=	% 0=no DOI resolver; 1=include it
-  #0 'doiform :=	% 0=with href; 1=with \doi{}
   #1 'addeprints :=	% 0=no eprints; 1=include eprints
-  #1 'addpubmed :=	% 0=no PUBMED resolver; 1=include it
+  #0 'inlinelinks :=	% 0=URLs explicit; 1=URLs attached to titles
   #2 'hrefform :=	% 0=no crossrefs; 1=hypertex hrefs; 2=hyperref hrefs
 
   % String constants, which you _might_ want to tweak.
+  "https://arxiv.org/abs/" 'eprinturl :=	% prefix to make URL from eprint ref
   "http://www.ncbi.nlm.nih.gov/pubmed/" 'pubmedurl :=	% prefix to make URL from PUBMED
-  "PMID:" 'pubmedprefix :=	% text prefix printed before PUBMED ref
   "[link]" 'linktextstring :=	% anonymous link text
-  "online" 'onlinestring :=	% label that a resource is online
+  "URL: " 'urlintro :=	% text prefix before URL
   "https://doi.org/" 'doiurl :=	% prefix to make URL from DOI
+  "cited " 'citedstring :=	% label in "lastchecked" remark
   "doi:" 'doiprefix :=	% printed text to introduce DOI
-  "URL: " 'urlintro :=	% text prefix before URL
-  "https://arxiv.org/abs/" 'eprinturl :=	% prefix to make URL from eprint ref
-  "cited " 'citedstring :=	% label in "lastchecked" remark
   "arXiv:" 'eprintprefix :=	% text prefix printed before eprint ref
+  "PMID:" 'pubmedprefix :=	% text prefix printed before PUBMED ref
+  "online" 'onlinestring :=	% label that a resource is online
 
   % The following are internal state variables, not configuration constants,
   % so they shouldn't be fiddled with.
@@ -138,6 +138,19 @@
 }
 
 % urlbst...
+% Minimal DOI parsing.
+% Given a DOI on the stack, check whether it starts with 'doiurl' or not.
+% In either case, leave on the stack first a DOI with, and then a DOI without, the URL prefix.
+FUNCTION {parse.doi}
+{
+  #1 doiurl text.length$ substring$
+  doiurl =
+    { doi
+      doi doiurl text.length$ #1 + #999 substring$ }
+    { doiurl doi *
+      doi }
+  if$
+}
 % The following three functions are for handling inlinelink.  They wrap
 % a block of text which is potentially output with write$ by multiple
 % other functions, so we don't know the content a priori.
@@ -164,7 +177,12 @@
               if$ }
             { pubmedurl pubmed * }
           if$ }
-        { doiurl doi * }
+%        { doiurl doi * }
+        { doi empty$
+            { "XXX" }
+            { doi parse.doi pop$ }
+          if$
+        }
       if$
       % an appropriately-formatted URL is now on the stack
       hrefform #1 = % hypertex
@@ -760,9 +778,11 @@
 FUNCTION {format.doi}
 { doi empty$
     { "" }
-    { doiform #1 =
-        { "\doi{" doi * "}" * }
-        { doiprefix doi * doiurl doi * make.href }
+    { doi parse.doi % leaves "https://doi.org/DOI" DOI on the stack
+      's := 't :=
+      doiform #1 =
+        { "\doi{" s * "}" * }
+        { doiprefix s * t make.href }
       if$
     }
   if$
@@ -796,10 +816,11 @@
   inlinelinks
     'skip$ % links were inline -- don't repeat them
     { % If the generated DOI will be the same as the URL,
-      % then don't print the URL (thanks to Joseph Wright for this code,
+      % then don't print the URL (thanks to Joseph Wright
+      % for (the original version of) this code,
       % at http://tex.stackexchange.com/questions/5660)
       adddoi
-          doiurl doi empty$ { "X" } { doi } if$ * % DOI URL to be generated
+          doi empty$ { "X" } { doi parse.doi pop$ } if$ % DOI URL to be generated
           url empty$ { "Y" } { url } if$          % the URL, or "Y" if empty
           =                                       % are the strings equal?
           and

Modified: trunk/Master/texmf-dist/doc/bibtex/urlbst/README
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/urlbst/README	2023-01-30 20:53:31 UTC (rev 65693)
+++ trunk/Master/texmf-dist/doc/bibtex/urlbst/README	2023-01-30 22:07:37 UTC (rev 65694)
@@ -1,7 +1,7 @@
 urlbst -- add @webpage entry and url/doi/eprint/pubmed fields to BibTeX
 =======================================================================
 
-Version 0.9, 2022 December 1.
+Version 0.9.1, 2023 January 30.
 
 The urlbst package consists of a Perl script which edits BibTeX style
 files (.bst) to add a `@webpage` entry type, and which adds a few new
@@ -30,7 +30,7 @@
 The copyright and licence position for the modified `.bst` files seems
 slightly muddy to me.  On the grounds that any licence is better than
 no licence, I therefore assert that the _modifications_ which the
-`urlbst` program makes to these files are copyright 2002-03, 2005-12, 2014, 2019, 2022,
+`urlbst` program makes to these files are copyright 2002–23,
 Norman Gray, and that these modifications are available for
 distribution under the terms of the LaTeX Project Public Licence.
 

Modified: trunk/Master/texmf-dist/doc/bibtex/urlbst/VERSION
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/urlbst/VERSION	2023-01-30 20:53:31 UTC (rev 65693)
+++ trunk/Master/texmf-dist/doc/bibtex/urlbst/VERSION	2023-01-30 22:07:37 UTC (rev 65694)
@@ -1 +1 @@
-urlbst-0.9
+urlbst-0.9.1

Modified: trunk/Master/texmf-dist/doc/bibtex/urlbst/urlbst.bib
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/urlbst/urlbst.bib	2023-01-30 20:53:31 UTC (rev 65693)
+++ trunk/Master/texmf-dist/doc/bibtex/urlbst/urlbst.bib	2023-01-30 22:07:37 UTC (rev 65694)
@@ -162,7 +162,7 @@
   year =         2002,
   doi =          {10.1090/S0025-5718-01-01333-3}
 }
-                  
+
 % Article with a DOI and a URL which refers to the same resource as the DOI
 % (we shouldn't get both in the output)
 @Article{test:doi2,
@@ -170,10 +170,21 @@
   title =        {Fun with {DOIs}},
   journal =      {Journal of Indirection},
   year =         1999,
-  doi =          {10.1234/5678},
-  url =          {https://doi.org/10.1234/5678}
+  doi =          {10.1234/5678-without},
+  url =          {https://doi.org/10.1234/5678-without}
 }
 
+% An article which includes a DOI which includes the doi.org prefix.
+% We shouldn't add a second one.
+ at Article{test:doi3,
+  author =       {A N Other},
+  title =        {More Fun with {DOIs}},
+  journal =      {Journal of Indirection (over there)},
+  year =         2000,
+  doi =          {https://doi.org/10.1234/5678-with},
+  url =          {https://doi.org/10.1234/5678-with}
+}
+
 % Article with a PUBMED reference
 
 
@@ -218,4 +229,3 @@
   year =         2007,
   url =          {http://cs.jhu.edu/~jason/papers/#icassp07}
 }
-

Modified: trunk/Master/texmf-dist/doc/bibtex/urlbst/urlbst.html
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/urlbst/urlbst.html	2023-01-30 20:53:31 UTC (rev 65693)
+++ trunk/Master/texmf-dist/doc/bibtex/urlbst/urlbst.html	2023-01-30 22:07:37 UTC (rev 65694)
@@ -24,7 +24,7 @@
 The code (and bugparade) is
 <a href='https://heptapod.host/nxg/urlbst'>online</a>.</p>
 
-<p>Version 0.9, 2022 December 1.</p>
+<p>Version 0.9.1, 2023 January 30.</p>
 </div>
 
 <p>Contents</p>
@@ -206,9 +206,9 @@
 <h2><a name='download'>Download and installation</a></h2>
 
 <p>Download the file as a
-<a href="urlbst-0.9.tar.gz" >tarball</a>
+<a href="urlbst-0.9.1.tar.gz" >tarball</a>
 or
-<a href="urlbst-0.9.zip" >zip file</a>
+<a href="urlbst-0.9.1.zip" >zip file</a>
 and unpack it.  Or you can clone the source repository
 <a href='https://heptapod.host/nxg/urlbst'>online</a>.</p>
 
@@ -315,7 +315,7 @@
 <p>The copyright and licence position for the modified <code>.bst</code> files seems
 slightly muddy to me.  On the grounds that any licence is better than
 no licence, I therefore assert that the <em>modifications</em> which the
-<code>urlbst</code> program makes to these files are copyright 2002-03, 2005-12, 2014, 2019, 2022,
+<code>urlbst</code> program makes to these files are copyright 2002–23,
 Norman Gray, and that these modifications are available for
 distribution under the terms of the LaTeX Project Public Licence.</p>
 
@@ -365,6 +365,12 @@
 references.</p>
 
 <dl>
+<dt><strong>0.9.1, 2023 January 30</strong></dt>
+<dd>
+  Added code to spot and wrangle the <code>https://doi.org/</code> URL
+  prefix – the code now behaves correctly whether this is present or not.
+</dd>
+
 <dt><strong>0.9, 2022 December 1</strong></dt>
 <dd><ul>
   <li>Changed repository location to <a href='https://heptapod.host/nxg/urlbst'>heptapod</a>
@@ -379,7 +385,7 @@
 </ul>
 </dd>
 
-<dt><strong>0.8, 2019 July 1</strong></dt>
+<dt>0.8, 2019 July 1</dt>
 <dd><ul>
 <li>The presence of a preexisting <code>format.doi</code>,
 <code>format.eprint</code> or <code>format.pubmed</code> function is
@@ -481,13 +487,13 @@
 </dl>
 </div>
 
-<p>Copyright 2002-03, 2005-12, 2014, 2019, 2022, Norman Gray.  Released under the terms of the GNU
+<p>Copyright 2002–23, Norman Gray.  Released under the terms of the GNU
 General Public Licence.</p>
 
 <div class="signature">
 <a href="https://nxg.me.uk"
 	>Norman Gray</a><br/>
-2022 December 1
+2023 January 30
 </div>
 
 </body>

Modified: trunk/Master/texmf-dist/doc/bibtex/urlbst/urlbst.in
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/urlbst/urlbst.in	2023-01-30 20:53:31 UTC (rev 65693)
+++ trunk/Master/texmf-dist/doc/bibtex/urlbst/urlbst.in	2023-01-30 22:07:37 UTC (rev 65694)
@@ -501,6 +501,19 @@
     print OUT "$mymarker...\n";
 
     print OUT <<'EOD';
+% Minimal DOI parsing.
+% Given a DOI on the stack, check whether it starts with 'doiurl' or not.
+% In either case, leave on the stack first a DOI with, and then a DOI without, the URL prefix.
+FUNCTION {parse.doi}
+{
+  #1 doiurl text.length$ substring$
+  doiurl =
+    { doi
+      doi doiurl text.length$ #1 + #999 substring$ }
+    { doiurl doi *
+      doi }
+  if$
+}
 % The following three functions are for handling inlinelink.  They wrap
 % a block of text which is potentially output with write$ by multiple
 % other functions, so we don't know the content a priori.
@@ -527,7 +540,12 @@
               if$ }
             { pubmedurl pubmed * }
           if$ }
-        { doiurl doi * }
+%        { doiurl doi * }
+        { doi empty$
+            { "XXX" }
+            { doi parse.doi pop$ }
+          if$
+        }
       if$
       % an appropriately-formatted URL is now on the stack
       hrefform #1 = % hypertex
@@ -683,9 +701,11 @@
 FUNCTION {format.doi}
 { doi empty$
     { "" }
-    { doiform #1 =
-        { "\doi{" doi * "}" * }
-        { doiprefix doi * doiurl doi * make.href }
+    { doi parse.doi % leaves "https://doi.org/DOI" DOI on the stack
+      's := 't :=
+      doiform #1 =
+        { "\doi{" s * "}" * }
+        { doiprefix s * t make.href }
       if$
     }
   if$
@@ -731,10 +751,11 @@
   inlinelinks
     'skip$ % links were inline -- don't repeat them
     { % If the generated DOI will be the same as the URL,
-      % then don't print the URL (thanks to Joseph Wright for this code,
+      % then don't print the URL (thanks to Joseph Wright
+      % for (the original version of) this code,
       % at http://tex.stackexchange.com/questions/5660)
       adddoi
-          doiurl doi empty$ { "X" } { doi } if$ * % DOI URL to be generated
+          doi empty$ { "X" } { doi parse.doi pop$ } if$ % DOI URL to be generated
           url empty$ { "Y" } { url } if$          % the URL, or "Y" if empty
           =                                       % are the strings equal?
           and

Modified: trunk/Master/texmf-dist/doc/bibtex/urlbst/urlbst.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/bibtex/urlbst/urlbst.tex
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/urlbst/urlbst.tex	2023-01-30 20:53:31 UTC (rev 65693)
+++ trunk/Master/texmf-dist/doc/bibtex/urlbst/urlbst.tex	2023-01-30 22:07:37 UTC (rev 65694)
@@ -2,7 +2,7 @@
 
 \title{The \texttt{urlbst} package}
 \author{Norman Gray\\\texttt{<https://nxg.me.uk>}}
-\date{Version 0.9, 2022 December 1}
+\date{Version 0.9.1, 2023 January 30}
 
 %\usepackage{times}
 \usepackage{url}
@@ -210,6 +210,14 @@
 generate DOIs wrapped in the macro |\doi{...}|.  This allows you to
 supply a generic |\doi| macro to format them as you desire.
 
+The \btfield{doi} field may include the \texttt{https://doi.org/}, or
+it may omit it; the stylefile adds or removes the prefix as
+appropriate.  Note that this parsing is rudimentary: it won't detect
+any of the variants of this prefix, meaning \texttt{http:} or
+\texttt{dx.doi.org}, both of which are now deprecated.
+% Note that this string is configured in configure.ac, but changing it
+% there wouldn't change it here (I could, but... Makefile)
+
 The \ub\ script works by spotting patterns and characteristic function
 names in the input |.bst| file.  It works as-is in the case of the
 four standard \BibTeX\ style files |plain.bst|, |unsrt.bst|,
@@ -333,14 +341,6 @@
 See also the URL entry in the UK \TeX\ FAQ~\cite{texfaq}, and
 references therein.
 
-%% \textbf{Acknowledgements:} Thanks
-%% to Jason Eisner for suggesting the |--inlinelinks| option;
-%% to `ijvm' for code contributions in the |urlbst| script;
-%% to Pawe\l{} Widera for the suggestion to use |\path| when formatting DOIs;
-%% to Michael Giffin for the suggestion to include PubMed URLs;
-%% to Katrin Leinweber for the pull request which fixed the format of DOI
-%% references.
-
 \section{Acknowledgements, and release notes}
 
 %%% include:release-notes.tex
@@ -355,6 +355,12 @@
 references.
 
 \begin{description}
+\item[\textbf{0.9.1, 2023 January 30}]\relax 
+
+  Added code to spot and wrangle the |https://doi.org/| URL
+  prefix – the code now behaves correctly whether this is present or not.
+
+
 \item[\textbf{0.9, 2022 December 1}]\relax 
 \begin{itemize}
   \item Changed repository location to heptapod\footnote{\url{https://heptapod.host/nxg/urlbst}}
@@ -369,7 +375,7 @@
 \end{itemize}
 
 
-\item[\textbf{0.8, 2019 July 1}]\relax 
+\item[0.8, 2019 July 1]\relax 
 \begin{itemize}
 \item The presence of a preexisting |format.doi|,
 |format.eprint| or |format.pubmed| function is

Modified: trunk/Master/texmf-dist/scripts/urlbst/urlbst
===================================================================
--- trunk/Master/texmf-dist/scripts/urlbst/urlbst	2023-01-30 20:53:31 UTC (rev 65693)
+++ trunk/Master/texmf-dist/scripts/urlbst/urlbst	2023-01-30 22:07:37 UTC (rev 65694)
@@ -8,16 +8,16 @@
 #
 # See https://purl.org/nxg/dist/urlbst for documentation
 #
-# Copyright 2002-03, 2005-12, 2014, 2019, 2022, Norman Gray <https://nxg.me.uk>
+# Copyright 2002–23, Norman Gray <https://nxg.me.uk>
 #
 # This program is distributed under the terms of the
 # GNU General Public Licence, v2.0.
-# The modifications to the input .bst files are asserted as Copyright 2002-03, 2005-12, 2014, 2019, 2022, Norman Gray,
+# The modifications to the input .bst files are asserted as Copyright 2002–23, Norman Gray,
 # and distributed under the terms of the LaTeX Project Public Licence.
 # See the package README for further dicussion of licences.
 
-$version = '0.9';
-$releasedate = '2022 December 1';
+$version = '0.9.1';
+$releasedate = '2023 January 30';
 ($progname = $0) =~ s/.*\///;
 $mymarker = "% $progname";
 $mymarkerend = "% ...$progname to here";
@@ -253,7 +253,7 @@
 
 print OUT "%%% Modification of BibTeX style file ", ($infile eq '-' ? '<stdin>' : $infile), "\n";
 print OUT "%%% ... by $progname, version $version (marked with \"$mymarker\")\n%%% See <$homepageurl> and repository <$repourl>\n";
-print OUT "%%% Modifications Copyright 2002-03, 2005-12, 2014, 2019, 2022, Norman Gray,\n";
+print OUT "%%% Modifications Copyright 2002–23, Norman Gray,\n";
 print OUT "%%% and distributed under the terms of the LPPL; see README for discussion.\n";
 print OUT "%%%\n";
 print OUT "%%% Added webpage entry type, and url and lastchecked fields.\n";
@@ -501,6 +501,19 @@
     print OUT "$mymarker...\n";
 
     print OUT <<'EOD';
+% Minimal DOI parsing.
+% Given a DOI on the stack, check whether it starts with 'doiurl' or not.
+% In either case, leave on the stack first a DOI with, and then a DOI without, the URL prefix.
+FUNCTION {parse.doi}
+{
+  #1 doiurl text.length$ substring$
+  doiurl =
+    { doi
+      doi doiurl text.length$ #1 + #999 substring$ }
+    { doiurl doi *
+      doi }
+  if$
+}
 % The following three functions are for handling inlinelink.  They wrap
 % a block of text which is potentially output with write$ by multiple
 % other functions, so we don't know the content a priori.
@@ -527,7 +540,12 @@
               if$ }
             { pubmedurl pubmed * }
           if$ }
-        { doiurl doi * }
+%        { doiurl doi * }
+        { doi empty$
+            { "XXX" }
+            { doi parse.doi pop$ }
+          if$
+        }
       if$
       % an appropriately-formatted URL is now on the stack
       hrefform #1 = % hypertex
@@ -683,9 +701,11 @@
 FUNCTION {format.doi}
 { doi empty$
     { "" }
-    { doiform #1 =
-        { "\doi{" doi * "}" * }
-        { doiprefix doi * doiurl doi * make.href }
+    { doi parse.doi % leaves "https://doi.org/DOI" DOI on the stack
+      's := 't :=
+      doiform #1 =
+        { "\doi{" s * "}" * }
+        { doiprefix s * t make.href }
       if$
     }
   if$
@@ -731,10 +751,11 @@
   inlinelinks
     'skip$ % links were inline -- don't repeat them
     { % If the generated DOI will be the same as the URL,
-      % then don't print the URL (thanks to Joseph Wright for this code,
+      % then don't print the URL (thanks to Joseph Wright
+      % for (the original version of) this code,
       % at http://tex.stackexchange.com/questions/5660)
       adddoi
-          doiurl doi empty$ { "X" } { doi } if$ * % DOI URL to be generated
+          doi empty$ { "X" } { doi parse.doi pop$ } if$ % DOI URL to be generated
           url empty$ { "Y" } { url } if$          % the URL, or "Y" if empty
           =                                       % are the strings equal?
           and

Modified: trunk/Master/texmf-dist/source/bibtex/urlbst/configure
===================================================================
--- trunk/Master/texmf-dist/source/bibtex/urlbst/configure	2023-01-30 20:53:31 UTC (rev 65693)
+++ trunk/Master/texmf-dist/source/bibtex/urlbst/configure	2023-01-30 22:07:37 UTC (rev 65694)
@@ -1,7 +1,7 @@
 #! /bin/sh
 # From configure.ac @PACKAGE_VERSION at .
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for urlbst 0.9.
+# Generated by GNU Autoconf 2.71 for urlbst 0.9.1.
 #
 # Report bugs to <gray at nxg.name>.
 #
@@ -611,8 +611,8 @@
 # Identity of this package.
 PACKAGE_NAME='urlbst'
 PACKAGE_TARNAME='urlbst'
-PACKAGE_VERSION='0.9'
-PACKAGE_STRING='urlbst 0.9'
+PACKAGE_VERSION='0.9.1'
+PACKAGE_STRING='urlbst 0.9.1'
 PACKAGE_BUGREPORT='gray at nxg.name'
 PACKAGE_URL=''
 
@@ -1229,7 +1229,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures urlbst 0.9 to adapt to many kinds of systems.
+\`configure' configures urlbst 0.9.1 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1291,7 +1291,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of urlbst 0.9:";;
+     short | recursive ) echo "Configuration of urlbst 0.9.1:";;
    esac
   cat <<\_ACEOF
 
@@ -1367,7 +1367,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-urlbst configure 0.9
+urlbst configure 0.9.1
 generated by GNU Autoconf 2.71
 
 Copyright (C) 2021 Free Software Foundation, Inc.
@@ -1404,7 +1404,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by urlbst $as_me 0.9, which was
+It was created by urlbst $as_me 0.9.1, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   $ $0$ac_configure_args_raw
@@ -1744,7 +1744,7 @@
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
-RELEASEDATE="2022 December 1"
+RELEASEDATE="2023 January 30"
 
 
 REPOURL=https://heptapod.host/nxg/urlbst
@@ -1754,7 +1754,7 @@
 
 
 
-COPYRIGHTYEARS="2002-03, 2005-12, 2014, 2019, 2022"
+COPYRIGHTYEARS="2002–23"
 
 
 
@@ -2427,7 +2427,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by urlbst $as_me 0.9, which was
+This file was extended by urlbst $as_me 0.9.1, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -2482,7 +2482,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config='$ac_cs_config_escaped'
 ac_cs_version="\\
-urlbst config.status 0.9
+urlbst config.status 0.9.1
 configured by $0, generated by GNU Autoconf 2.71,
   with options \\"\$ac_cs_config\\"
 

Modified: trunk/Master/texmf-dist/source/bibtex/urlbst/configure.ac
===================================================================
--- trunk/Master/texmf-dist/source/bibtex/urlbst/configure.ac	2023-01-30 20:53:31 UTC (rev 65693)
+++ trunk/Master/texmf-dist/source/bibtex/urlbst/configure.ac	2023-01-30 22:07:37 UTC (rev 65694)
@@ -1,6 +1,6 @@
 dnl  Process this file with autoconf to produce a configure script
-AC_INIT(urlbst, 0.9, gray at nxg.name)
-RELEASEDATE="2022 December 1"
+AC_INIT(urlbst, 0.9.1, gray at nxg.name)
+RELEASEDATE="2023 January 30"
 AC_SUBST(RELEASEDATE)
 
 AC_SUBST(REPOURL, [https://heptapod.host/nxg/urlbst])
@@ -8,7 +8,9 @@
 
 AC_REVISION(@PACKAGE_VERSION@)
 
-COPYRIGHTYEARS="2002-03, 2005-12, 2014, 2019, 2022"
+dnl  COPYRIGHTYEARS="2002-03, 2005-12, 2014, 2019, 2022, 2023"
+dnl  simpler...
+COPYRIGHTYEARS="2002–23"
 AC_SUBST(COPYRIGHTYEARS)
 
 AC_PREREQ(2.50)



More information about the tex-live-commits mailing list.