summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Dubois <jand@activestate.com>2003-10-22 13:17:07 -0700
committerNicholas Clark <nick@ccl4.org>2003-10-23 19:11:24 +0000
commiteab9b6a225912b3bc8e071a6a42d75fe9b54dde5 (patch)
tree716febd005215790a824e610c28e6ff2e12098bf
parent017471c2a0096fb989b7aa58ca42ee0bdce5a768 (diff)
downloadperl-eab9b6a225912b3bc8e071a6a42d75fe9b54dde5.tar.gz
[PATCH] Update Pod::Perldoc from 3.10 to 3.11
Date: Wed, 22 Oct 2003 20:17:07 -0700 Message-ID: <mjhepvgtnifdlgrvp20urtuu058e1jrav2@4ax.com> From: Jan Dubois <jand@ActiveState.com> Subject: [PATCH] Update I18N::LangTags from 0.28 to 0.29 Date: Wed, 22 Oct 2003 20:26:56 -0700 Message-ID: <jgiepv0a8fp8ffq3lpc5ujl7j25hoo1rdt@4ax.com> p4raw-id: //depot/perl@21526
-rw-r--r--MANIFEST1
-rw-r--r--lib/I18N/LangTags.pm10
-rw-r--r--lib/I18N/LangTags/ChangeLog23
-rw-r--r--lib/I18N/LangTags/List.pm63
-rw-r--r--lib/I18N/LangTags/README2
-rw-r--r--lib/Pod/Perldoc.pm4
-rw-r--r--lib/Pod/Perldoc/ToMan.pm11
-rw-r--r--pod/perldoc.pod2
-rw-r--r--utils/perldoc.PL2
9 files changed, 98 insertions, 20 deletions
diff --git a/MANIFEST b/MANIFEST
index 031a711145..235447a80f 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -1260,6 +1260,7 @@ lib/I18N/LangTags/List.pm List of tags for human languages
lib/I18N/LangTags.pm I18N::LangTags
lib/I18N/LangTags/README I18N::LangTags
lib/I18N/LangTags/t/01test.t See whether I18N::LangTags works
+lib/I18N/LangTags/t/02decency.t See if I18N::LangTags::List::is_decent works
lib/if.pm For "use if"
lib/if.t Tests for "use if"
lib/importenv.pl Perl routine to get environment into variables
diff --git a/lib/I18N/LangTags.pm b/lib/I18N/LangTags.pm
index 5fa5692cf2..d64058fb1a 100644
--- a/lib/I18N/LangTags.pm
+++ b/lib/I18N/LangTags.pm
@@ -1,5 +1,5 @@
-# Time-stamp: "2003-07-20 07:44:42 ADT"
+# Time-stamp: "2003-10-10 17:43:04 ADT"
# Sean M. Burke <sburke@cpan.org>
require 5.000;
@@ -17,7 +17,7 @@ require Exporter;
);
%EXPORT_TAGS = ('ALL' => \@EXPORT_OK);
-$VERSION = "0.28";
+$VERSION = "0.29";
=head1 NAME
@@ -333,7 +333,7 @@ More importantly, you assume I<at your peril> that superordinates of
$lang1 are mutually intelligible with $lang1. Consider this
carefully.
-=cut
+=cut
sub super_languages {
my $lang1 = $_[0];
@@ -388,7 +388,7 @@ tags. Think REAL hard about how you use this. YOU HAVE BEEN WARNED.
The output is untainted. If you don't know what tainting is,
don't worry about it.
-=cut
+=cut
sub locale2language_tag {
my $lang =
@@ -771,7 +771,7 @@ Character Sets and Languages".
Value and Encoded Word Extensions: Character Sets, Languages, and
Continuations".
-* RFC 2482, C<ftp://ftp.isi.edu/in-notes/rfc2482.txt>,
+* RFC 2482, C<ftp://ftp.isi.edu/in-notes/rfc2482.txt>,
"Language Tagging in Unicode Plain Text".
* Locale::Codes, in
diff --git a/lib/I18N/LangTags/ChangeLog b/lib/I18N/LangTags/ChangeLog
index f3608f7125..ec76c0c9a0 100644
--- a/lib/I18N/LangTags/ChangeLog
+++ b/lib/I18N/LangTags/ChangeLog
@@ -1,6 +1,27 @@
Revision history for Perl module I18N::LangTags.
- Time-stamp: "2002-02-02 20:45:47 MST"
+ Time-stamp: "2003-10-10 17:07:55 ADT"
+2003-10-10 Sean M. Burke sburke@cpan.org
+
+ * Release 0.29
+
+ Minor bugfix to I18N::LangTags::List code. Addition of the
+ is_decent function, and the 02decency.t test for it.
+
+ Better Makefile. Thanks to everyone who told me about the
+ INSTALLDIRS trick.
+
+
+
+2003-07-20 Sean M. Burke sburke@cpan.org
+
+ * Release 0.28
+ Doc fixes in I18N::LangTags, plus a few added variances (jw/jv,
+ cre/cr, etc.)
+ Lots of updates to I18N::LangTags::List
+ Deleted rfc3066.txt from dist.
+ Moved test.pl to t/01test.t and added more tests.
+
2002-02-02 Sean M. Burke sburke@cpan.org
* Release 0.27 -- minor mods to ::List:
diff --git a/lib/I18N/LangTags/List.pm b/lib/I18N/LangTags/List.pm
index ebabbf5e39..37ded04eef 100644
--- a/lib/I18N/LangTags/List.pm
+++ b/lib/I18N/LangTags/List.pm
@@ -1,10 +1,10 @@
require 5;
package I18N::LangTags::List;
-# Time-stamp: "2003-07-20 07:31:08 ADT"
+# Time-stamp: "2003-10-10 17:39:45 ADT"
use strict;
-use vars qw(%Name $Debug $VERSION);
-$VERSION = '0.26';
+use vars qw(%Name %Is_Disrec $Debug $VERSION);
+$VERSION = '0.29';
# POD at the end.
#----------------------------------------------------------------------
@@ -12,21 +12,23 @@ $VERSION = '0.26';
# read the table out of our own POD!
my $seeking = 1;
my $count = 0;
- my($tag,$name);
+ my($disrec,$tag,$name);
my $last_name = '';
while(<I18N::LangTags::List::DATA>) {
if($seeking) {
$seeking = 0 if m/=for woohah/;
- } elsif( ($tag, $name) =
- m/\{([-0-9a-zA-Z]+)\}(?:\s*:)?\s*([^\[\]]+)/
+ } elsif( ($disrec, $tag, $name) =
+ m/(\[?)\{([-0-9a-zA-Z]+)\}(?:\s*:)?\s*([^\[\]]+)/
) {
$name =~ s/\s*[;\.]*\s*$//g;
next unless $name;
++$count;
print "<$tag> <$name>\n" if $Debug;
$last_name = $Name{$tag} = $name;
- } elsif (m/Formerly \"([-a-z0-9]+)\"/) {
+ $Is_Disrec{$tag} = 1 if $disrec;
+ } elsif (m/[Ff]ormerly \"([-a-z0-9]+)\"/) {
$Name{$1} = "$last_name (old tag)" if $last_name;
+ $Is_Disrec{$1} = 1;
}
}
die "No tags read??" unless $count;
@@ -74,6 +76,42 @@ sub name {
return "$name (Subform \"$subform\")";
}
+#--------------------------------------------------------------------------
+
+sub is_decent {
+ my $tag = lc($_[0] || return 0);
+ #require I18N::LangTags;
+
+ return 0 unless
+ $tag =~
+ /^(?: # First subtag
+ [xi] | [a-z]{2,3}
+ )
+ (?: # Subtags thereafter
+ - # separator
+ [a-z0-9]{1,8} # subtag
+ )*
+ $/xs;
+
+ my @supers = ();
+ foreach my $bit (split('-', $tag)) {
+ push @supers,
+ scalar(@supers) ? ($supers[-1] . '-' . $bit) : $bit;
+ }
+ return 0 unless @supers;
+ shift @supers if $supers[0] =~ m<^(i|x|sgn)$>s;
+ return 0 unless @supers;
+
+ foreach my $f ($tag, @supers) {
+ return 0 if $Is_Disrec{$f};
+ return 2 if $Name{$f};
+ # so that decent subforms of indecent tags are decent
+ }
+ return 2 if $Name{$tag}; # not only is it decent, it's known!
+ return 1;
+}
+
+#--------------------------------------------------------------------------
1;
__DATA__
@@ -98,7 +136,7 @@ prints:
=head1 DESCRIPTION
-This module provides a function
+This module provides a function
C<I18N::LangTags::List::name( I<langtag> ) > that takes
a language tag (see L<I18N::LangTags|I18N::LangTags>)
and returns the best attempt at an English name for it, or
@@ -106,6 +144,13 @@ undef if it can't make sense of the tag.
The function I18N::LangTags::List::name(...) is not exported.
+This module also provides a function
+C<I18N::LangTags::List::is_decent( I<langtag> )> that returns true iff
+the language tag is syntactically valid and is for general use (like
+"fr" or "fr-ca", below). That is, it returns false for tags that are
+syntactically invalid and for tags, like "aus", that are listed in
+brackets below. This function is not exported.
+
The map of tags-to-names that it uses is accessable as
%I18N::LangTags::List::Name, and it's the same as the list
that follows in this documentation, which should be useful
@@ -117,7 +162,7 @@ Internet language tags, as defined in RFC 3066, are a formalism
for denoting human languages. The two-letter ISO 639-1 language
codes are well known (as "en" for English), as are their forms
when qualified by a country code ("en-US"). Less well-known are the
-arbitrary-length non-ISO codes (like "i-mingo"), and the
+arbitrary-length non-ISO codes (like "i-mingo"), and the
recently (in 2001) introduced three-letter ISO-639-2 codes.
Remember these important facts:
diff --git a/lib/I18N/LangTags/README b/lib/I18N/LangTags/README
index fbae05f43d..2ac6053016 100644
--- a/lib/I18N/LangTags/README
+++ b/lib/I18N/LangTags/README
@@ -61,7 +61,7 @@ AVAILABILITY
The latest version of I18N::LangTags is available from the
Comprehensive Perl Archive Network (CPAN). Visit
-<http://www.cpan.org/> to find a CPAN site near you.
+<http://www.perl.com/CPAN/> to find a CPAN site near you.
COPYRIGHT
diff --git a/lib/Pod/Perldoc.pm b/lib/Pod/Perldoc.pm
index 1701a3a272..8f1bb0cb55 100644
--- a/lib/Pod/Perldoc.pm
+++ b/lib/Pod/Perldoc.pm
@@ -12,7 +12,7 @@ use File::Spec::Functions qw(catfile catdir splitdir);
use vars qw($VERSION @Pagers $Bindir $Pod2man
$Temp_Files_Created $Temp_File_Lifetime
);
-$VERSION = '3.10';
+$VERSION = '3.11';
#..........................................................................
BEGIN { # Make a DEBUG constant very first thing...
@@ -39,6 +39,8 @@ BEGIN {
*IS_Dos = $^O eq 'dos' ? \&TRUE : \&FALSE unless defined &IS_Dos;
*IS_OS2 = $^O eq 'os2' ? \&TRUE : \&FALSE unless defined &IS_OS2;
*IS_Cygwin = $^O eq 'cygwin' ? \&TRUE : \&FALSE unless defined &IS_Cygwin;
+ *IS_Linux = $^O eq 'linux' ? \&TRUE : \&FALSE unless defined &IS_Linux;
+ *IS_HPUX = $^O =~ m/hpux/ ? \&TRUE : \&FALSE unless defined &IS_HPUX;
}
$Temp_File_Lifetime ||= 60 * 60 * 24 * 5;
diff --git a/lib/Pod/Perldoc/ToMan.pm b/lib/Pod/Perldoc/ToMan.pm
index f9061b86b7..12c2a68fba 100644
--- a/lib/Pod/Perldoc/ToMan.pm
+++ b/lib/Pod/Perldoc/ToMan.pm
@@ -55,12 +55,21 @@ sub parse_from_file {
. " $switches --lax $file | $render -man"
; # no temp file, just a pipe!
+ # Thanks to Brendan O'Dea for contributing the following block
+ if(Pod::Perldoc::IS_Linux and -t STDOUT
+ and my ($cols) = `stty -a` =~ m/\bcolumns\s+(\d+)/
+ ) {
+ my $c = $cols * 39 / 40;
+ $cols = $c > $cols - 2 ? $c : $cols -2;
+ $command .= ' -rLL=' . (int $c) . 'n' if $cols > 80;
+ }
+
# I hear persistent reports that adding a -c switch to $render
# solves many people's problems. But I also hear that some mans
# don't have a -c switch, so that adding it here would presumably
# be a Bad Thing -- sburke@cpan.org
- $command .= " | col -x" if $^O =~ /hpux/;
+ $command .= " | col -x" if Pod::Perldoc::IS_HPUX;
defined(&Pod::Perldoc::DEBUG)
and Pod::Perldoc::DEBUG()
diff --git a/pod/perldoc.pod b/pod/perldoc.pod
index e25b5102a5..123dea10df 100644
--- a/pod/perldoc.pod
+++ b/pod/perldoc.pod
@@ -213,7 +213,7 @@ Current maintainer: Sean M. Burke, <sburke@cpan.org>
Past contributors are:
Kenneth Albanowski <kjahds@kjahds.com>,
-Andy Dougherty <doughera@lafayette.edu>,
+Andy Dougherty <doughera@lafcol.lafayette.edu>,
and many others.
=cut
diff --git a/utils/perldoc.PL b/utils/perldoc.PL
index a4d8872187..e201de9d91 100644
--- a/utils/perldoc.PL
+++ b/utils/perldoc.PL
@@ -44,8 +44,8 @@ $Config{startperl}
# This "$file" file was generated by "$0"
require 5;
-use Pod::Perldoc;
BEGIN { \$^W = 1 if \$ENV{'PERLDOCDEBUG'} }
+use Pod::Perldoc;
exit( Pod::Perldoc->run() );
!GROK!THIS!