gitlog-to-changelog: new option --append-dot
authorDmitry V. Levin <ldv@altlinux.org>
Sun, 30 Oct 2011 22:00:00 +0000 (22:00 +0000)
committerJim Meyering <meyering@redhat.com>
Mon, 31 Oct 2011 07:54:41 +0000 (08:54 +0100)
* build-aux/gitlog-to-changelog: New option --append-dot, makes the
first non-blank line of each commit message terminated with a dot.

ChangeLog
build-aux/gitlog-to-changelog

index 4c4b7e2..a692aa9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2011-10-30  Dmitry V. Levin  <ldv@altlinux.org>
+
+       gitlog-to-changelog: new option --append-dot.
+       * build-aux/gitlog-to-changelog: New option --append-dot, makes the
+       first non-blank line of each commit message terminated with a dot.
+
 2011-10-30  Bruno Haible  <bruno@clisp.org>
 
        ffsl, ffsll: Avoid compilation error due to 'restrict'.
index a5fd80d..c3a5ef3 100755 (executable)
@@ -3,7 +3,7 @@ eval '(exit $?0)' && eval 'exec perl -wS "$0" ${1+"$@"}'
     if 0;
 # Convert git log output to ChangeLog format.
 
-my $VERSION = '2009-10-30 13:46'; # UTC
+my $VERSION = '2011-10-31 07:45'; # UTC
 # The definition above must lie within the first 8 lines in order
 # for the Emacs time-stamp write hook (at end) to update it.
 # If you change this file with Emacs, please let the write hook
@@ -65,6 +65,8 @@ OPTIONS:
    --format=FMT set format string for commit subject and body;
                   see 'man git-log' for the list of format metacharacters;
                   the default is '%s%n%b%n'
+   --append-dot append a dot to the first line of each commit message if
+                  there is no other punctuation or blank at the end.
 
    --help       display this help and exit
    --version    output version information and exit
@@ -102,12 +104,14 @@ sub quoted_cmd(@)
 {
   my $since_date = '1970-01-01 UTC';
   my $format_string = '%s%n%b%n';
+  my $append_dot = 0;
   GetOptions
     (
      help => sub { usage 0 },
      version => sub { print "$ME version $VERSION\n"; exit },
      'since=s' => \$since_date,
      'format=s' => \$format_string,
+     'append-dot' => \$append_dot,
     ) or usage 1;
 
   my @cmd = (qw (git log --log-size), "--since=$since_date",
@@ -163,6 +167,18 @@ sub quoted_cmd(@)
         }
       else
         {
+          if ($append_dot)
+            {
+              # If the first line of the message has enough room, then
+              if (length $line[0] < 72)
+                {
+                  # append a dot if there is no other punctuation or blank
+                  # at the end.
+                  $line[0] =~ /[[:punct:]\s]$/
+                    or $line[0] .= '.';
+                }
+            }
+
           # Prefix each non-empty line with a TAB.
           @line = map { length $_ ? "\t$_" : '' } @line;