[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Automake-commit] [SCM] GNU Automake branch, master, updated. v1.11b-24-g171a31b,
Jim Meyering <=