automake-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Automake-commit] [SCM] GNU Automake branch, master, updated. v1.11b-24-


From: Jim Meyering
Subject: [Automake-commit] [SCM] GNU Automake branch, master, updated. v1.11b-24-g171a31b
Date: Fri, 13 Apr 2012 16:16:51 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Automake".

http://git.sv.gnu.org/gitweb/?p=automake.git;a=commitdiff;h=171a31b10048968c70c963239e40b7a6d5c648de

The branch, master has been updated
       via  171a31b10048968c70c963239e40b7a6d5c648de (commit)
      from  9414efaf789cddbb4434aad9218e2b396d8de87d (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 171a31b10048968c70c963239e40b7a6d5c648de
Author: Jim Meyering <address@hidden>
Date:   Fri Apr 13 17:58:04 2012 +0200

    build: use slightly older help2man, for improved portability
    
    Fixes automake bug#11235
    
    * doc/help2man: Downgrade to help2man-1.36.4, so that it does
    not require Locale/gettext.pm, which is not available on a
    default Fedora 16 installation.  Reported by Stefano Lattarini.

-----------------------------------------------------------------------

Summary of changes:
 doc/help2man |  201 ++++++++++++++++++++++++++-------------------------------
 1 files changed, 92 insertions(+), 109 deletions(-)

diff --git a/doc/help2man b/doc/help2man
index 96896f6..01e690b 100755
--- a/doc/help2man
+++ b/doc/help2man
@@ -1,12 +1,12 @@
 #!/usr/bin/perl -w
 
 # Generate a short man page from --help and --version output.
-# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2009
+# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
 # Free Software Foundation, Inc.
 
 # 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
-# the Free Software Foundation; either version 3, or (at your option)
+# the Free Software Foundation; either version 2, or (at your option)
 # any later version.
 
 # This program is distributed in the hope that it will be useful,
@@ -26,57 +26,54 @@ use strict;
 use Getopt::Long;
 use Text::Tabs qw(expand);
 use POSIX qw(strftime setlocale LC_ALL);
-use Locale::gettext;
-use Encode qw(decode encode);
-use I18N::Langinfo qw(langinfo CODESET);
+use locale;
 
 my $this_program = 'help2man';
-my $this_version = '1.37.1';
-my $encoding;
+my $this_version = '1.36';
 
-{
-    my $gettext = Locale::gettext->domain($this_program);
-    sub _ { $gettext->get($_[0]) }
-
-    my ($user_locale) = grep defined && length,
-       (map $ENV{$_}, qw(LANGUAGE LC_ALL LC_MESSAGES LANG)), 'C';
-
-    my $user_encoding = langinfo CODESET;
+my $have_gettext;
+BEGIN {
+    eval {
+       require Locale::gettext;
+       Locale::gettext->import;
+       $have_gettext = 1;
+    };
 
-    # Set localisation of date and executable's output.
-    sub configure_locale
+    unless ($have_gettext)
     {
-       delete @ENV{qw(LANGUAGE LC_MESSAGES LANG)};
-       setlocale LC_ALL, $ENV{LC_ALL} = shift || 'C';
-       $encoding = langinfo CODESET;
+       *gettext = sub { $_[0] };
+       *textdomain = sub {};
     }
+}
+
+sub _ { gettext @_ }
+sub N_ { $_[0] }
+
+textdomain $this_program;
+{
+    my ($user_locale) = grep defined && length,
+       (map $ENV{$_}, qw(LANGUAGE LC_ALL LC_MESSAGES LANG)), 'C';
 
-    sub dec { $encoding ? decode $encoding, $_[0] : $_[0] }
-    sub enc { $encoding ? encode $encoding, $_[0] : $_[0] }
-    sub enc_user { encode $user_encoding, $_[0] }
     sub kark # die with message formatted in the invoking user's locale
     {
        setlocale LC_ALL, $user_locale;
-       my $fmt = $gettext->get(shift);
-       my $errmsg = enc_user sprintf $fmt, @_;
-       die $errmsg, "\n";
+       my $fmt = gettext shift;
+       die +(sprintf $fmt, @_), "\n";
     }
 }
 
-sub N_ { $_[0] }
-
-my $version_info = enc_user sprintf _(<<'EOT'), $this_program, $this_version;
+my $version_info = sprintf _(<<'EOT'), $this_program, $this_version;
 GNU %s %s
 
-Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2009
-Free Software Foundation, Inc.
+Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free
+Software Foundation, Inc.
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
 Written by Brendan O'Dea <address@hidden>
 EOT
 
-my $help_info = enc_user sprintf _(<<'EOT'), $this_program, $this_program;
+my $help_info = sprintf _(<<'EOT'), $this_program, $this_program;
 `%s' generates a man page out of `--help' and `--version' output.
 
 Usage: %s [OPTION]... EXECUTABLE
@@ -94,13 +91,11 @@ Usage: %s [OPTION]... EXECUTABLE
      --help              print this help, then exit
      --version           print version number, then exit
 
-EXECUTABLE should accept `--help' and `--version' options and produce output on
-stdout although alternatives may be specified using:
+EXECUTABLE should accept `--help' and `--version' options although
+alternatives may be specified using:
 
  -h, --help-option=STRING     help option string
  -v, --version-option=STRING  version option string
- --version-string=STRING      version string
- --no-discard-stderr          include stderr when parsing option output
 
 Report bugs to <address@hidden>.
 EOT
@@ -108,35 +103,44 @@ EOT
 my $section = 1;
 my $manual = '';
 my $source = '';
+my $locale = 'C';
 my $help_option = '--help';
 my $version_option = '--version';
-my $discard_stderr = 1;
-my ($opt_name, @opt_include, $opt_output, $opt_info, $opt_no_info, 
$version_text);
+my ($opt_name, @opt_include, $opt_output, $opt_info, $opt_no_info);
 
 my %opt_def = (
     'n|name=s'          => \$opt_name,
     's|section=s'       => \$section,
     'm|manual=s'        => \$manual,
     'S|source=s'        => \$source,
-    'L|locale=s'        => sub { configure_locale pop },
+    'L|locale=s'        => \$locale,
     'i|include=s'       => sub { push @opt_include, [ pop, 1 ] },
     'I|opt-include=s'   => sub { push @opt_include, [ pop, 0 ] },
     'o|output=s'        => \$opt_output,
     'p|info-page=s'     => \$opt_info,
     'N|no-info'                 => \$opt_no_info,
-    'help'              => sub { print $help_info; exit },
-    'version'           => sub { print $version_info; exit },
     'h|help-option=s'   => \$help_option,
     'v|version-option=s' => \$version_option,
-    'version-string=s'  => \$version_text,
-    'discard-stderr!'   => \$discard_stderr,
 );
 
 # Parse options.
 Getopt::Long::config('bundling');
-die $help_info unless GetOptions %opt_def and @ARGV == 1;
+GetOptions (%opt_def,
+    help    => sub { print $help_info; exit },
+    version => sub { print $version_info; exit },
+) or die $help_info;
+
+die $help_info unless @ARGV == 1;
 
-configure_locale unless $encoding;
+die "$this_program: no locale support (Locale::gettext required)\n"
+    unless $locale eq 'C' or $have_gettext;
+
+# Add default territory to locale.
+$locale .= "_\U$locale" if $locale =~ /^[a-z]{2}$/;
+
+# Set localisation of date and executable's ouput.
+delete @ENV{qw(LANGUAGE LC_MESSAGES LANG)};
+setlocale LC_ALL, $ENV{LC_ALL} = $locale;
 
 my %include = ();
 my %append = ();
@@ -166,12 +170,8 @@ while (@opt_include)
 
     while (<INC>)
     {
-       # Convert input to internal Perl format, so that multibyte
-       # sequences are treated as single characters.
-       $_ = dec $_;
-
        # [section]
-       if (/^\[([^]]+)\]\s*$/)
+       if (/^\[([^]]+)\]/)
        {
            $key = uc $1;
            $key =~ s/^\s+//;
@@ -182,7 +182,7 @@ while (@opt_include)
        }
 
        # /pattern/
-       if (m!^/(.*)/([ims]*)\s*$!)
+       if (m!^/(.*)/([ims]*)!)
        {
            my $pat = $2 ? "(?$2)$1" : $1;
 
@@ -229,11 +229,12 @@ for my $hash (\(%include, %append))
     for (keys %$hash) { $hash->{$_} =~ s/\n+$/\n/ }
 }
 
-sub get_option_value;
-
 # Grab help and version info from executable.
-my $help_text   = get_option_value $ARGV[0], $help_option;
-$version_text ||= get_option_value $ARGV[0], $version_option;
+my ($help_text, $version_text) = map {
+    join '', map { s/ +$//; expand $_ } `$ARGV[0] $_ 2>/dev/null`
+       or kark N_("%s: can't get `%s' info from %s"), $this_program,
+           $_, $ARGV[0]
+} $help_option, $version_option;
 
 my $date = strftime "%B %Y", localtime;
 (my $program = $ARGV[0]) =~ s!.*/!!;
@@ -258,9 +259,9 @@ if ($opt_output)
 #   <program> ({GNU,Free} <package>) <version>
 #   <program> - {GNU,Free} <package> <version>
 #
-# and separated from any copyright/author details by a blank line.
+# and seperated from any copyright/author details by a blank line.
 
-($_, $version_text) = ((split /\n+/, $version_text, 2), '');
+($_, $version_text) = split /\n+/, $version_text, 2;
 
 if (/^(\S+) +\(((?:GNU|Free) +[^)]+)\) +(.*)/ or
     /^(\S+) +- *((?:GNU|Free) +\S+) +(.*)/)
@@ -371,18 +372,14 @@ s/^\./\x80/mg;
 s/^'/\x81/mg;
 s/\\/\x82/g;
 
-my $PAT_BUGS           = _('Report +(?:[\w-]* +)?bugs|Email +bug +reports 
+to');
+my $PAT_BUGS           = _('Report +bugs|Email +bug +reports +to');
 my $PAT_AUTHOR         = _('Written +by');
 my $PAT_OPTIONS                = _('Options');
 my $PAT_EXAMPLES       = _('Examples');
 my $PAT_FREE_SOFTWARE  = _('This +is +free +software');
 
 # Start a new paragraph (if required) for these.
-s/([^\n])\n($PAT_BUGS|$PAT_AUTHOR) /$1\n\n$2 /og;
-
-# Convert iso-8859-1 copyright symbol or (c) to nroff
-# character.
-s/^Copyright +(?:\xa9|\([Cc]\))/Copyright \\(co/mg;
+s/([^\n])\n($PAT_BUGS|$PAT_AUTHOR)/$1\n\n$2/og;
 
 sub convert_option;
 
@@ -401,13 +398,36 @@ while (length)
     }
 
     # Copyright section
-    if (/^Copyright /)
+    if (/^Copyright +[(\xa9]/)
     {
        $sect = _('COPYRIGHT');
+       $include{$sect} ||= '';
+       $include{$sect} .= ".PP\n" if $include{$sect};
+
+       my $copy;
+       ($copy, $_) = split /\n\n/, $_, 2;
+
+       for ($copy)
+       {
+           # Add back newline
+           s/\n*$/\n/;
+
+           # Convert iso9959-1 copyright symbol or (c) to nroff
+           # character.
+           s/^Copyright +(?:\xa9|\([Cc]\))/Copyright \\(co/mg;
+
+           # Insert line breaks before additional copyright messages
+           # and the disclaimer.
+           s/(.)\n(Copyright |$PAT_FREE_SOFTWARE)/$1\n.br\n$2/og;
+       }
+
+       $include{$sect} .= $copy;
+       $_ ||= '';
+       next;
     }
 
-    # Bug reporting section.
-    elsif (/^($PAT_BUGS) /o)
+    # Catch bug report text.
+    if (/^($PAT_BUGS) /o)
     {
        $sect = _('REPORTING BUGS');
     }
@@ -498,7 +518,7 @@ while (length)
     while ($indent ? s/^ {$indent}(\S.*)\n// : s/^(\S.*)\n//)
     {
        $matched .= $& if %append;
-       $content .= "\x84$1\n";
+       $content .= "\x84$1\n"
     }
 
     # Move to next paragraph.
@@ -516,22 +536,6 @@ while (length)
 
        # Escape remaining hyphens
        s/-/\x83/g;
-
-       if ($sect eq 'COPYRIGHT')
-       {
-           # Insert line breaks before additional copyright messages
-           # and the disclaimer.
-           s/\n(Copyright |$PAT_FREE_SOFTWARE)/\n.br\n$1/og;
-       }
-       elsif ($sect eq 'REPORTING BUGS')
-       {
-           # Handle multi-line bug reporting sections of the form:
-           #
-           #   Report <program> bugs to <addr>
-           #   GNU <package> home page: <url>
-           #   ...
-           s/\n([[:upper:]])/\n.br\n$1/g;
-       }
     }
 
     # Check if matched paragraph contains /pat/.
@@ -574,7 +578,7 @@ EOT
 }
 
 # Output header.
-print enc <<EOT;
+print <<EOT;
 .\\" DO NOT MODIFY THIS FILE!  It was generated by $this_program $this_version.
 .TH $PROGRAM "$section" "$date" "$source" "$manual"
 EOT
@@ -591,8 +595,9 @@ for my $sect (@pre, (grep ! /^($filter)$/o, @include), 
@post)
 {
     if ($include{$sect})
     {
-       my $quote = $sect =~ /\W/ ? '"' : '';
-       print enc ".SH $quote$sect$quote\n";
+       my $lsect = gettext $sect;
+       my $quote = $lsect =~ /\W/ ? '"' : '';
+       print ".SH $quote$lsect$quote\n";
 
        for ($include{$sect})
        {
@@ -606,7 +611,7 @@ for my $sect (@pre, (grep ! /^($filter)$/o, @include), 
@post)
            # Convert some latin1 chars to troff equivalents
            s/\xa0/\\ /g; # non-breaking space
 
-           print enc $_;
+           print;
        }
     }
 }
@@ -616,28 +621,6 @@ close STDOUT or kark N_("%s: error writing to %s (%s)"), 
$this_program,
 
 exit;
 
-# Call program with given option and return results.
-sub get_option_value
-{
-    my ($prog, $opt) = @_;
-    my $stderr = $discard_stderr ? '/dev/null' : '&1';
-    my $value = join '',
-       map { s/ +$//; expand $_ }
-       map { dec $_ }
-       `$prog $opt 2>$stderr`;
-
-    unless ($value)
-    {
-       my $err = N_("%s: can't get `%s' info from %s");
-       $err .= N_("\nTry `--no-discard-stderr' if option outputs to stderr")
-           if $discard_stderr;
-
-       kark $err, $this_program, $opt, $prog;
-    }
-
-    return $value;
-}
-
 # Convert option dashes to \- to stop nroff from hyphenating 'em, and
 # embolden.  Option arguments get italicised.
 sub convert_option


hooks/post-receive
-- 
GNU Automake



reply via email to

[Prev in Thread] Current Thread [Next in Thread]