Improve Perl script which adds commit links to release notes
authorBruce Momjian <[email protected]>
Thu, 19 Sep 2024 12:45:33 +0000 (08:45 -0400)
committerBruce Momjian <[email protected]>
Thu, 19 Sep 2024 12:45:33 +0000 (08:45 -0400)
Reported-by: Andrew Dunstan
Discussion: https://postgr.es/m/b2465837-56df-4794-a0b5-5e6ed44ed870@dunslane.net

Author: Andrew Dunstan

Backpatch-through: 12

src/tools/add_commit_links.pl

index ebfc97ea3282c5225252345170ab565f594d423c..64a5783297220bcc848dcd1ab578d317e9dcef53 100755 (executable)
@@ -51,9 +51,8 @@ sub process_file
    $file =~ m/-(\d+)\./;
    my $major_version = $1;
 
-   open(my $fh, '<', $file) || die "could not open file %s: $!\n", $file;
-   open(my $tfh, '>', $tmpfile) || die "could not open file %s: $!\n",
-     $tmpfile;
+   open(my $fh, '<', $file) || die "could not open file $file: $!\n";
+   open(my $tfh, '>', $tmpfile) || die "could not open file $tmpfile: $!\n";
 
    while (<$fh>)
    {
@@ -64,9 +63,9 @@ sub process_file
        # skip over commit links because we will add them below
        next
          if (!$in_comment &&
-           m{^\s*<ulink url="&commit_baseurl;[\da-f]+">&sect;</ulink>\s*$});
+           m{^\s*<ulink url="&commit_baseurl;[[:xdigit:]]+">&sect;</ulink>\s*$});
 
-       if ($in_comment && m/\[([\da-f]+)\]/)
+       if ($in_comment && m/\[([[:xdigit:]]+)\]/)
        {
            my $hash = $1;
 
@@ -88,23 +87,21 @@ sub process_file
                {
                    for my $hash (@hashes)
                    {
-                       print({$tfh}
-                             "$prev_leading_space<ulink url=\"&commit_baseurl;$hash\">&sect;</ulink>\n"
-                       );
+                       print $tfh
+                         "$prev_leading_space<ulink url=\"&commit_baseurl;$hash\">&sect;</ulink>\n";
                    }
                    @hashes = ();
                }
                else
                {
-                   printf(
-                       "hashes found but no matching text found for placement on line %s\n",
-                       $lineno);
+                   print
+                     "hashes found but no matching text found for placement on line $lineno\n";
                    exit(1);
                }
            }
        }
 
-       print({$tfh} $_);
+       print $tfh $_;
 
        $prev_line_ended_with_paren = m/\)\s*$/;