summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Ing-Simmons <nik@tiuk.ti.com>2002-02-20 18:15:00 +0000
committerNick Ing-Simmons <nik@tiuk.ti.com>2002-02-20 18:15:00 +0000
commit330216fa481220e86690473ac66ba6e2733da390 (patch)
tree4046e429d2d3d34cf0b687331c64b32453f40eb1
parentd4c5e247eddf7e1336aa871df96b4b6d87130564 (diff)
parent90ce97f4f5d366cfac19d02c078f23d191b8e0d8 (diff)
downloadperl-330216fa481220e86690473ac66ba6e2733da390.tar.gz
Integrate mainline
p4raw-id: //depot/perlio@14796
-rw-r--r--Changes2267
-rw-r--r--MANIFEST13
-rw-r--r--README.os3907
-rw-r--r--doio.c43
-rw-r--r--ext/Encode/lib/Encode/JP/JIS.pm4
-rw-r--r--ext/Encode/t/JP.t15
-rw-r--r--ext/IO/lib/IO/Poll.pm12
-rwxr-xr-xext/IO/lib/IO/t/io_poll.t10
-rw-r--r--gv.c3
-rw-r--r--lib/Locale/Codes/ChangeLog94
-rw-r--r--lib/Locale/Codes/README47
-rw-r--r--lib/Locale/Codes/t/all.t221
-rw-r--r--lib/Locale/Codes/t/country.t24
-rw-r--r--lib/Locale/Codes/t/script.t106
-rw-r--r--lib/Locale/Constants.pm83
-rw-r--r--lib/Locale/Constants.pod76
-rw-r--r--lib/Locale/Country.pm386
-rw-r--r--lib/Locale/Country.pod273
-rw-r--r--lib/Locale/Currency.pm228
-rw-r--r--lib/Locale/Currency.pod191
-rw-r--r--lib/Locale/Language.pm197
-rw-r--r--lib/Locale/Language.pod158
-rw-r--r--lib/Locale/Script.pm291
-rw-r--r--lib/Locale/Script.pod253
-rw-r--r--lib/Tie/Hash.pm2
-rw-r--r--lib/Tie/Memoize.pm2
-rw-r--r--lib/Time/Local.pm9
-rw-r--r--lib/unicore/To/Lower.pl102
-rw-r--r--lib/unicore/To/Title.pl54
-rw-r--r--lib/unicore/To/Upper.pl27
-rw-r--r--lib/unicore/mktables13
-rw-r--r--patchlevel.h2
-rw-r--r--pod/buildtoc.PL2
-rw-r--r--pod/perlapi.pod84
-rw-r--r--pod/perlfaq4.pod2
-rw-r--r--pod/perlop.pod11
-rw-r--r--pod/perlsub.pod9
-rw-r--r--pod/perltoc.pod182
-rw-r--r--pod/perlunicode.pod30
-rw-r--r--pp.c8
-rw-r--r--pp_ctl.c2
-rw-r--r--regcomp.c5
-rw-r--r--sv.h20
-rw-r--r--t/op/alarm.t5
-rwxr-xr-xt/op/do.t5
-rwxr-xr-xt/op/glob.t12
-rw-r--r--t/uni/case.pl80
-rw-r--r--t/uni/lower.t8
-rw-r--r--t/uni/title.t8
-rw-r--r--t/uni/upper.t8
-rw-r--r--utf8.c65
-rw-r--r--utf8.h6
-rw-r--r--vms/vms.c60
53 files changed, 4593 insertions, 1232 deletions
diff --git a/Changes b/Changes
index e41648403c..c12cf39201 100644
--- a/Changes
+++ b/Changes
@@ -31,6 +31,313 @@ or any other branch.
Version v5.7.2 Development release working toward v5.8
--------------
____________________________________________________________________________
+[ 14754] By: ams on 2002/02/18 19:01:09
+ Log: Subject: [PATCH] VMS cando_by_name and current process privs
+ From: "Craig A. Berry" <craigberry@mac.com>
+ Date: Mon, 18 Feb 2002 14:03:30 -0600
+ Message-Id: <5.1.0.14.2.20020218132536.01b7a0b8@exchi01>
+ Branch: perl
+ ! vms/vms.c
+____________________________________________________________________________
+[ 14753] By: jhi on 2002/02/18 17:58:39
+ Log: Update Changes.
+ Branch: perl
+ ! Changes patchlevel.h
+____________________________________________________________________________
+[ 14752] By: jhi on 2002/02/18 17:54:44
+ Log: What do you know; these tests unearthed nasty problems.
+ Will resolve those first.
+ Branch: perl
+ - t/uni/case.pl t/uni/lower.t t/uni/title.t t/uni/upper.t
+ ! MANIFEST
+____________________________________________________________________________
+[ 14751] By: jhi on 2002/02/18 17:52:23
+ Log: Update Changes.
+ Branch: perl
+ ! Changes patchlevel.h
+____________________________________________________________________________
+[ 14750] By: ams on 2002/02/18 17:36:05
+ Log: Subject: Re: IO::Poll: Removing Handles
+ From: Matthew Sachs <matthewg@zevils.com>
+ Date: Mon, 18 Feb 2002 13:19:01 -0500
+ Message-Id: <20020218181901.GA19377@allevil.dhcp.zevils.com>
+ Branch: perl
+ ! ext/IO/lib/IO/t/io_poll.t
+____________________________________________________________________________
+[ 14749] By: jhi on 2002/02/18 16:49:51
+ Log: Subject: VMS test fix-ups (alarm.t and glob.t)
+ From: "Craig A. Berry" <craigberry@mac.com>
+ Date: Mon, 18 Feb 2002 11:52:21 -0600
+ Message-Id: <5.1.0.14.2.20020218114540.01b2b458@exchi01>
+ Branch: perl
+ ! t/op/alarm.t t/op/glob.t
+____________________________________________________________________________
+[ 14748] By: ams on 2002/02/18 15:53:36
+ Log: s/load_module/Perl_load_module/
+ Branch: perl
+ ! gv.c
+____________________________________________________________________________
+[ 14747] By: jhi on 2002/02/18 15:43:06
+ Log: Unused in ASCII, used in EBCDIC.
+ Branch: perl
+ ! utf8.c
+____________________________________________________________________________
+[ 14746] By: jhi on 2002/02/18 15:26:32
+ Log: Upgrade to Locale::Codes 2.00.
+ Branch: perl
+ + lib/Locale/Codes/ChangeLog lib/Locale/Codes/README
+ + lib/Locale/Codes/t/script.t lib/Locale/Script.pm
+ ! MANIFEST lib/Locale/Codes/t/all.t lib/Locale/Codes/t/country.t
+ ! lib/Locale/Constants.pm lib/Locale/Country.pm
+ ! lib/Locale/Currency.pm lib/Locale/Language.pm
+____________________________________________________________________________
+[ 14745] By: ams on 2002/02/18 15:20:44
+ Log: Subject: Re: [ID 20020213.001] "Unknown error" as a message from compilation
+ From: Rafael Garcia-Suarez <rgarciasuarez@free.fr>
+ Date: Sat, 16 Feb 2002 00:06:01 +0100
+ Message-Id: <20020216000601.A17249@rafael>
+ Branch: perl
+ ! gv.c
+____________________________________________________________________________
+[ 14744] By: jhi on 2002/02/18 14:54:47
+ Log: More Unicode casing checks.
+ Branch: perl
+ + t/uni/case.pl t/uni/lower.t t/uni/title.t t/uni/upper.t
+ ! MANIFEST
+____________________________________________________________________________
+[ 14743] By: ams on 2002/02/18 14:35:38
+ Log: Subject: IO::Poll: Removing Handles
+ From: Matthew Sachs <matthewg@zevils.com>
+ Date: Sun, 17 Feb 2002 04:49:46 -0500
+ Message-Id: <20020217094946.GA13130@allevil.dhcp.zevils.com>
+ Branch: perl
+ ! ext/IO/lib/IO/Poll.pm
+____________________________________________________________________________
+[ 14741] By: ams on 2002/02/18 13:59:48
+ Log: Subject: [PATCH pp_ctl.c] bug on "do NUMBER"
+ From: Rafael Garcia-Suarez <rgarciasuarez@free.fr>
+ Date: Mon, 18 Feb 2002 15:41:26 +0100
+ Message-Id: <20020218154126.A692@rafael>
+ Branch: perl
+ ! pp_ctl.c t/op/do.t
+____________________________________________________________________________
+[ 14740] By: nick on 2002/02/18 09:09:23
+ Log: Integrate mainline
+ Branch: perlio
+ +> ext/Encode/CN/CN.pm ext/Encode/CN/Makefile.PL
+ +> ext/Encode/JP/JP.pm ext/Encode/JP/Makefile.PL
+ +> ext/Encode/KR/KR.pm ext/Encode/KR/Makefile.PL
+ +> ext/Encode/TW/Makefile.PL ext/Encode/TW/TW.pm
+ +> ext/Encode/lib/Encode/JP/Constants.pm
+ +> ext/Encode/lib/Encode/JP/H2Z.pm
+ +> ext/Encode/lib/Encode/JP/ISO_2022_JP.pm
+ +> ext/Encode/lib/Encode/JP/JIS.pm ext/Encode/lib/Encode/JP/Tr.pm
+ +> ext/Encode/t/JP.t ext/Encode/t/japanese.pl
+ +> os2/OS2/Process/t/os2_process.t
+ +> os2/OS2/Process/t/os2_process_kid.t
+ +> os2/OS2/Process/t/os2_process_text.t
+ - ext/Encode/EUC_JP/Japanese.pm ext/Encode/EUC_JP/Makefile.PL
+ - ext/Encode/t/Japanese.t
+ !> (integrate 47 files)
+____________________________________________________________________________
+[ 14739] By: jhi on 2002/02/18 05:02:47
+ Log: EBCDIC: now the worst seems to be over for
+ the "Malformed" warnings. Still a few of them,
+ and plenty of test failures, but getting better.
+ Branch: perl
+ ! regcomp.c utf8.c
+____________________________________________________________________________
+[ 14738] By: jhi on 2002/02/18 02:31:05
+ Log: Upgrade to Net::Ping 2.12.
+ Branch: perl
+ ! lib/Net/Ping.pm lib/Net/Ping/CHANGES lib/Net/Ping/README
+ ! lib/Net/Ping/t/110_icmp_inst.t
+____________________________________________________________________________
+[ 14737] By: jhi on 2002/02/18 02:24:31
+ Log: After much rewriting we are now pretty much
+ back to where we started.
+ Branch: perl
+ ! utf8.c
+____________________________________________________________________________
+[ 14736] By: ams on 2002/02/18 01:23:00
+ Log: Subject: [PATCH B::Deparse] two fixes
+ From: Rafael Garcia-Suarez <rgarciasuarez@free.fr>
+ Date: Sun, 17 Feb 2002 23:58:59 +0100
+ Message-Id: <20020217235859.A32513@rafael>
+ Branch: perl
+ ! ext/B/B/Deparse.pm
+____________________________________________________________________________
+[ 14735] By: jhi on 2002/02/17 21:24:26
+ Log: Buglet.
+ Branch: perl
+ ! ext/Encode/lib/Encode/JP/JIS.pm
+____________________________________________________________________________
+[ 14734] By: jhi on 2002/02/17 20:44:59
+ Log: Clearing up to_utf8_case() continues: this time use
+ a single return, and EBCDICification for all paths.
+ Branch: perl
+ ! utf8.c
+____________________________________________________________________________
+[ 14733] By: jhi on 2002/02/17 19:51:01
+ Log: Small tweaks to get the test running (fix @INC and
+ do not overwrite the table.utf8 and table.rnd).
+ Branch: perl
+ ! ext/Encode/t/JP.t
+____________________________________________________________________________
+[ 14732] By: jhi on 2002/02/17 18:40:24
+ Log: Tiny tweak.
+ Branch: perl
+ ! utf8.c
+____________________________________________________________________________
+[ 14731] By: jhi on 2002/02/17 16:56:17
+ Log: Redundant casts.
+ Branch: perl
+ ! utf8.c
+____________________________________________________________________________
+[ 14730] By: jhi on 2002/02/17 16:50:34
+ Log: More filename portability tips.
+ Branch: perl
+ ! pod/perlport.pod
+____________________________________________________________________________
+[ 14729] By: jhi on 2002/02/17 16:25:06
+ Log: FAQ sync.
+ Branch: perl
+ ! pod/perlfaq3.pod pod/perlfaq5.pod
+____________________________________________________________________________
+[ 14728] By: ams on 2002/02/17 16:15:09
+ Log: Subject: podlators 1.21 released
+ From: Russ Allbery <rra@stanford.edu>
+ Date: Sat, 16 Feb 2002 21:42:56 -0800
+ Message-Id: <yladu8irz3.fsf@windlord.stanford.edu>
+ Branch: perl
+ ! lib/Pod/Text/Overstrike.pm
+____________________________________________________________________________
+[ 14727] By: sky on 2002/02/17 11:36:52
+ Log: Subject: [PATCH] Tied STDERR should catch messages from warn() and die()
+ From: Autrijus Tang <autrijus@autrijus.org>
+ Date: Sun, 17 Feb 2002 19:46:47 +0800
+ Message-ID: <20020217194647.A1410@not.autrijus.org>
+ Branch: perl
+ ! pp_ctl.c t/op/tiehandle.t util.c
+____________________________________________________________________________
+[ 14726] By: jhi on 2002/02/17 03:13:30
+ Log: EBCDIC: to_utf8_case() is supposed to get its low 256
+ input in native code points, not Unicode.
+ Branch: perl
+ ! utf8.c
+____________________________________________________________________________
+[ 14725] By: jhi on 2002/02/17 01:43:42
+ Log: Regen Glossary.
+ Branch: perl
+ ! Porting/Glossary Porting/config.sh Porting/config_H
+____________________________________________________________________________
+[ 14724] By: jhi on 2002/02/17 01:12:37
+ Log: The #14715 and #14716 were okay: they just revealed
+ a bug in the EXACTF matching.
+ Branch: perl
+ ! regexec.c utf8.c
+____________________________________________________________________________
+[ 14723] By: jhi on 2002/02/16 16:14:19
+ Log: Retreat, retreat! (retract #14715 and #14716)
+ Branch: perl
+ ! utf8.c
+____________________________________________________________________________
+[ 14722] By: jhi on 2002/02/16 16:06:00
+ Log: Encode 0.40, from Dan Kogai.
+ Branch: perl
+ + ext/Encode/CN/CN.pm ext/Encode/CN/Makefile.PL
+ + ext/Encode/JP/JP.pm ext/Encode/JP/Makefile.PL
+ + ext/Encode/KR/KR.pm ext/Encode/KR/Makefile.PL
+ + ext/Encode/TW/Makefile.PL ext/Encode/TW/TW.pm
+ + ext/Encode/lib/Encode/JP/Constants.pm
+ + ext/Encode/lib/Encode/JP/H2Z.pm
+ + ext/Encode/lib/Encode/JP/ISO_2022_JP.pm
+ + ext/Encode/lib/Encode/JP/JIS.pm ext/Encode/lib/Encode/JP/Tr.pm
+ + ext/Encode/t/JP.t ext/Encode/t/japanese.pl
+ + ext/Encode/t/table.rnd ext/Encode/t/table.utf8
+ - ext/Encode/EUC_JP/Japanese.pm ext/Encode/EUC_JP/Makefile.PL
+ - ext/Encode/t/Japanese.t
+ ! MANIFEST ext/Encode/Encode.pm ext/Encode/MANIFEST
+ ! ext/Encode/t/Encode.t
+____________________________________________________________________________
+[ 14721] By: jhi on 2002/02/16 15:37:40
+ Log: metaconfig unit change for #14720.
+ Branch: perl
+ ! Configure
+____________________________________________________________________________
+[ 14720] By: jhi on 2002/02/16 15:36:42
+ Log: Regenerate Configure (small tweaks on Yitzchak's,
+ main difference being that the preference variables are
+ called gconvert_...).
+ Branch: metaconfig
+ ! U/compline/d_gconvert.U
+____________________________________________________________________________
+[ 14719] By: ams on 2002/02/16 14:11:01
+ Log: Subject: Re: [proof-of-concept PATCH] d_Gconvert and Configure
+ From: sthoenna@efn.org (Yitzchak Scott-Thoennes)
+ Date: Thu, 14 Feb 2002 22:27:33 -0800
+ Message-Id: <VpKb8gzkgCdK092yn@efn.org>
+ (Applied by hand.)
+ Branch: perl
+ ! Configure
+____________________________________________________________________________
+[ 14718] By: ams on 2002/02/16 13:45:28
+ Log: Subject: [DOC PATCH perlport.pod] Typo fix and three-arg open
+ From: Philip Newton <Philip.Newton@gmx.net>
+ Date: Sat, 16 Feb 2002 10:05:05 +0100
+ Message-Id: <558s6u4djrbk46q44fvqs5mfviq9311lj1@4ax.com>
+ (Applied by hand.)
+ Branch: perl
+ ! pod/perlport.pod
+____________________________________________________________________________
+[ 14717] By: ams on 2002/02/16 04:30:23
+ Log: Remove dubious test.
+ Branch: perl
+ ! t/io/open.t
+____________________________________________________________________________
+[ 14716] By: jhi on 2002/02/16 04:24:45
+ Log: Tiny tweak.
+ Branch: perl
+ ! utf8.c
+____________________________________________________________________________
+[ 14715] By: jhi on 2002/02/16 03:49:14
+ Log: Restructure to_utf8_case() for simpler execution paths.
+ Branch: perl
+ ! utf8.c
+____________________________________________________________________________
+[ 14714] By: ams on 2002/02/16 02:43:59
+ Log: Absorb #14701 by Sarathy from maint-5.6.
+ Branch: perl
+ ! doio.c t/io/open.t
+____________________________________________________________________________
+[ 14713] By: ams on 2002/02/16 01:51:27
+ Log: Subject: [PATCH] VOS patches for perl 5.8
+ From: Paul_GreenVOS@vos.stratus.com
+ Date: Fri, 15 Feb 02 17:41 est
+ Message-Id: <200202152243.RAA01195@mailhub1.stratus.com>
+ Branch: perl
+ ! README.vos vos/Changes vos/build.cm vos/config.alpha.def
+ ! vos/config.alpha.h vos/config.ga.def vos/config.ga.h
+ ! vos/install_perl.cm
+____________________________________________________________________________
+[ 14712] By: jhi on 2002/02/15 21:08:13
+ Log: Subject: [PATCH B::Deparse] Fix another bug introduced by #14615
+ From: Rafael Garcia-Suarez <rgarciasuarez@free.fr>
+ Date: Fri, 15 Feb 2002 23:05:44 +0100
+ Message-ID: <20020215230544.A690@rafael>
+ Branch: perl
+ ! ext/B/B/Deparse.pm
+____________________________________________________________________________
+[ 14711] By: jhi on 2002/02/15 19:26:07
+ Log: Add $VERSION.
+ Branch: perl
+ ! lib/Tie/Memoize.pm
+____________________________________________________________________________
+[ 14710] By: jhi on 2002/02/15 15:40:30
+ Log: Update Changes.
+ Branch: perl
+ ! Changes patchlevel.h
+____________________________________________________________________________
[ 14709] By: jhi on 2002/02/15 15:01:54
Log: Subject: [PATCH hints/solaris_2.sh]; was Re: [PATCH Configure] Interaction of cc.cbu and checkcc
From: Robin Barker <rmb1@cise.npl.co.uk>
@@ -41,6 +348,13 @@ ____________________________________________________________________________
Branch: perl
! hints/solaris_2.sh
____________________________________________________________________________
+[ 14708] By: jhi on 2002/02/15 15:00:27
+ Log: metaconfig unit changes for #14707.
+ Branch: metaconfig
+ ! U/modified/cc.U
+ Branch: metaconfig/U/perl
+ ! Checkcc.U
+____________________________________________________________________________
[ 14707] By: jhi on 2002/02/15 15:00:01
Log: Subject: Re: [PATCH hints/solaris_2.sh]; was Re: [PATCH Configure] Interaction of cc.cbu and checkcc
From: Robin Barker <rmb1@cise.npl.co.uk>
@@ -73,6 +387,36 @@ ____________________________________________________________________________
! os2/OS2/Process/Process.xs os2/os2.c os2/os2_base.t
! os2/os2ish.h
____________________________________________________________________________
+[ 14704] By: gsar on 2002/02/15 08:42:48
+ Log: don't Safefree() PerlIO pointers we didn't allocate to begin with;
+ avoid wasteful PL_fdpid fiddling where that is not warranted;
+ mostly whitespace fixes
+
+ these were longstanding todo items from:
+ http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/1998-04/msg01019.html
+ Branch: maint-5.6/perl
+ ! doio.c
+____________________________________________________________________________
+[ 14702] By: nick on 2002/02/15 08:31:41
+ Log: Integrate mainline
+ Branch: perlio
+ +> lib/if.pm lib/if.t
+ !> Configure MANIFEST ext/B/B/Deparse.pm ext/B/t/deparse.t
+ !> lib/Net/Ping.pm lib/Net/Ping/CHANGES lib/Net/Ping/README
+ !> lib/Net/Ping/t/110_icmp_inst.t lib/Net/Ping/t/120_udp_inst.t
+ !> lib/Net/Ping/t/130_tcp_inst.t lib/Net/Ping/t/140_stream_inst.t
+ !> lib/Net/Ping/t/200_ping_tcp.t lib/Net/Ping/t/300_ping_stream.t
+ !> lib/Pod/Html.pm lib/Tie/Handle.pm lib/charnames.pm
+ !> lib/charnames.t pod/perluniintro.pod pp_sys.c
+ !> t/lib/warnings/pp_sys
+____________________________________________________________________________
+[ 14701] By: gsar on 2002/02/15 08:04:58
+ Log: open(STDOUT, ">&=FOO") leaks PerlIO pointers badly on all platforms
+ (and also dies quickly on Windows); this bug crept in as
+ change#610, a.k.a change#646
+ Branch: maint-5.6/perl
+ ! doio.c t/io/open.t
+____________________________________________________________________________
[ 14700] By: jhi on 2002/02/15 02:51:13
Log: Subject: [ID 20020213.015] Pod::Html XHTML update for 5.7.2
From: Ville "Skyttä" <ville.skytta@iki.fi>
@@ -86,6 +430,11 @@ ____________________________________________________________________________
Branch: perl
! lib/charnames.pm lib/charnames.t
____________________________________________________________________________
+[ 14698] By: jhi on 2002/02/14 22:21:55
+ Log: metaconfig unit change for #14697.
+ Branch: metaconfig
+ ! U/modified/Init.U
+____________________________________________________________________________
[ 14697] By: jhi on 2002/02/14 22:21:20
Log: Also OS/2 seems to need exe set early.
Branch: perl
@@ -132,6 +481,16 @@ ____________________________________________________________________________
Branch: perl
! lib/Tie/Handle.pm
____________________________________________________________________________
+[ 14690] By: nick on 2002/02/14 16:30:56
+ Log: Integrate mainline
+ Branch: perlio
+ +> ext/threads/t/end.t lib/Tie/Memoize.pm lib/Tie/Memoize.t
+ !> Changes MANIFEST Makefile.SH ext/threads/threads.pm
+ !> ext/threads/threads.xs lib/ExtUtils/Installed.pm
+ !> lib/ExtUtils/t/Installed.t lib/File/Spec/t/rel2abs2rel.t
+ !> lib/Tie/Hash.pm patchlevel.h pod/perltie.pod t/op/groups.t
+ !> utf8.c
+____________________________________________________________________________
[ 14689] By: jhi on 2002/02/14 16:03:50
Log: Upgrade to Net::Ping 2.11.
Branch: perl
@@ -164,6 +523,11 @@ ____________________________________________________________________________
+ lib/Tie/Memoize.pm lib/Tie/Memoize.t
! MANIFEST
____________________________________________________________________________
+[ 14685] By: nick on 2002/02/14 14:20:20
+ Log: Make dependencies more precise (for nmake)
+ Branch: perlio
+ ! ext/Encode/EUC_JP/Makefile.PL
+____________________________________________________________________________
[ 14684] By: jhi on 2002/02/14 14:09:10
Log: Subject: [PATCH @13746] tied hashes
From: Ilya Zakharevich <ilya@math.ohio-state.edu>
@@ -210,6 +574,11 @@ ____________________________________________________________________________
Branch: perl
! ext/threads/threads.pm ext/threads/threads.xs
____________________________________________________________________________
+[ 14677] By: nick on 2002/02/13 09:30:42
+ Log: Do not lc() the file names before doing dirname() or they don't match.
+ Branch: perlio
+ ! lib/ExtUtils/t/Installed.t
+____________________________________________________________________________
[ 14676] By: sky on 2002/02/13 09:03:37
Log: Subject: [PATCH] Re: File/Spec/t/rel2abs2rel2whatever broken again
From: Michael G Schwern <schwern@pobox.com>
@@ -224,6 +593,19 @@ ____________________________________________________________________________
+ ext/threads/t/end.t
! MANIFEST ext/threads/threads.xs
____________________________________________________________________________
+[ 14674] By: nick on 2002/02/13 08:34:55
+ Log: Integrate mainline
+ Branch: perlio
+ +> ext/threads/t/join.t
+ !> Configure MANIFEST ext/threads/threads.xs hints/solaris_2.sh
+ !> lib/dumpvar.pl lib/perl5db.pl pod/perldebug.pod pp_pack.c
+ !> t/op/lc.t t/op/length.t t/uni/fold.t utf8.c
+____________________________________________________________________________
+[ 14673] By: jhi on 2002/02/13 05:17:26
+ Log: metaconfig unit change for #14672.
+ Branch: metaconfig
+ ! U/modified/lns.U
+____________________________________________________________________________
[ 14672] By: jhi on 2002/02/13 05:17:07
Log: $ln is supposed to be already set to $ln + executable suffix
on platforms that need it, from Paul Green.
@@ -309,6 +691,13 @@ ____________________________________________________________________________
+ ext/threads/t/join.t
! MANIFEST ext/threads/threads.xs
____________________________________________________________________________
+[ 14658] By: nick on 2002/02/12 13:54:06
+ Log: Integrate mainline
+ Branch: perlio
+ !> lib/ExtUtils/Installed.pm lib/ExtUtils/t/Embed.t
+ !> lib/File/Spec/t/rel2abs2rel.t lib/Win32.pod t/op/each.t
+ !> t/op/length.t t/test.pl toke.c win32/win32.c win32/win32.h
+____________________________________________________________________________
[ 14657] By: jhi on 2002/02/12 13:44:34
Log: Subject: Re: [PATCH 5.6.1] Win32: Give user control over window creation behavior of system() function
From: Jan Dubois <JanD@ActiveState.com>
@@ -369,6 +758,14 @@ ____________________________________________________________________________
Branch: perl
! t/op/each.t
____________________________________________________________________________
+[ 14648] By: nick on 2002/02/11 16:14:50
+ Log: Integrate mainline
+ Branch: perlio
+ !> Changes Configure Makefile.SH autodoc.pl
+ !> ext/Socket/socketpair.t hints/os2.sh lib/ExtUtils/Embed.pm
+ !> lib/ExtUtils/t/Embed.t opcode.pl os2/Makefile.SHs os2/os2.c
+ !> os2/os2ish.h patchlevel.h pod/perltoc.pod
+____________________________________________________________________________
[ 14647] By: jhi on 2002/02/11 15:11:14
Log: Update Changes.
Branch: perl
@@ -384,6 +781,18 @@ ____________________________________________________________________________
Branch: perl
! lib/ExtUtils/t/Embed.t
____________________________________________________________________________
+[ 14644] By: jhi on 2002/02/11 14:49:14
+ Log: A forgotten metaconfig unit.
+ Branch: metaconfig/U/perl
+ + i_features.U
+____________________________________________________________________________
+[ 14643] By: jhi on 2002/02/11 14:47:11
+ Log: metaconfig unit changes for #14642.
+ Branch: metaconfig
+ + U/modified/lns.U
+ Branch: metaconfig/U/perl
+ ! issymlink.U
+____________________________________________________________________________
[ 14642] By: jhi on 2002/02/11 14:46:39
Log: -Dmksymlinks was broken by #14628.
Branch: perl
@@ -422,6 +831,42 @@ ____________________________________________________________________________
- ext/Encode/EUC_JP/EUC_JP.pm
!> MANIFEST ext/Encode/EUC_JP/Makefile.PL ext/Encode/Encode.xs
____________________________________________________________________________
+[ 14639] By: nick on 2002/02/11 11:59:18
+ Log: Patch up the failing multi-byte write case, and un-skip
+ the test.
+ Branch: perlio
+ ! ext/Encode/Encode.xs ext/Encode/t/Japanese.t
+____________________________________________________________________________
+[ 14638] By: nick on 2002/02/11 10:55:39
+ Log: Add test for Japanese encoding (well euc-jp anyway).
+ Fix one bug shown by above
+ Skip test which does not pass yet.
+ Branch: perlio
+ + ext/Encode/t/Japanese.t ext/Encode/t/table.euc
+ + ext/Encode/t/table.ref
+ ! MANIFEST ext/Encode/Encode.xs
+____________________________________________________________________________
+[ 14637] By: nick on 2002/02/11 09:07:04
+ Log: Split Japanese encodings - part 2
+ - build separate .c files with separate 'compile' steps
+ - overall Japanese.xs / Japanese.pm which loads them
+ Branch: perlio
+ ! ext/Encode/EUC_JP/Japanese.pm ext/Encode/EUC_JP/Makefile.PL
+____________________________________________________________________________
+[ 14636] By: nick on 2002/02/11 08:15:42
+ Log: Re-structure Japanese encodings - part 1
+ Branch: perlio
+ +> ext/Encode/EUC_JP/Japanese.pm
+ - ext/Encode/EUC_JP/EUC_JP.pm
+ ! MANIFEST ext/Encode/EUC_JP/Makefile.PL
+____________________________________________________________________________
+[ 14635] By: nick on 2002/02/11 08:05:12
+ Log: Integrate mainline
+ Branch: perlio
+ !> Configure djgpp/djgpp.c lib/ExtUtils/t/Installed.t
+ !> lib/File/Spec.pm lib/perl5db.pl pod/perldiag.pod
+ !> pod/perlport.pod pp_pack.c regcomp.c t/op/arith.t t/op/pack.t
+____________________________________________________________________________
[ 14634] By: jhi on 2002/02/11 03:40:01
Log: Subject: Re: [PATCH] Re: Modulus operator inconsistency
From: Mike Guy <mjtg@cam.ac.uk>
@@ -463,6 +908,11 @@ ____________________________________________________________________________
Branch: perl
! pp_pack.c t/op/pack.t
____________________________________________________________________________
+[ 14629] By: jhi on 2002/02/10 21:56:17
+ Log: metaconfig unit changes for #14628.
+ Branch: metaconfig/U/perl
+ ! d_u32align.U issymlink.U
+____________________________________________________________________________
[ 14628] By: jhi on 2002/02/10 21:55:45
Log: Two Configure tweaks; the u32align test was trying
to write into a string literal, the ln -s test was
@@ -475,6 +925,16 @@ ____________________________________________________________________________
Branch: perl
! djgpp/djgpp.c lib/File/Spec.pm
____________________________________________________________________________
+[ 14626] By: nick on 2002/02/10 18:36:47
+ Log: Move PerlIO_perlio to layer_syms where it belongs?
+ Branch: perlio
+ ! makedef.pl
+____________________________________________________________________________
+[ 14625] By: nick on 2002/02/10 18:02:21
+ Log: Borland/Win32 tuning
+ Branch: perlio
+ ! makedef.pl perlio.sym t/op/stat.t win32/config_H.bc
+____________________________________________________________________________
[ 14624] By: jhi on 2002/02/10 15:33:40
Log: Additional explanation for the [:...:] failure.
Branch: perl
@@ -511,6 +971,26 @@ ____________________________________________________________________________
Branch: perl
! pod/perlport.pod
____________________________________________________________________________
+[ 14619] By: nick on 2002/02/10 11:06:05
+ Log: Integrate mainline
+ Branch: perlio
+ ! ext/Encode/Encode.pm
+ !> Configure cop.h deb.c ext/B/B/Deparse.pm hints/bsdos.sh
+ !> hints/os390.sh lib/ExtUtils/Embed.pm lib/perl5db.pl
+ !> lib/unicore/Name.pl lib/unicore/mktables op.c pod/perlfaq2.pod
+ !> pod/perlfaq3.pod pod/perlfaq4.pod pp_ctl.c
+ !> t/lib/warnings/pp_hot t/op/arith.t toke.c util.c
+____________________________________________________________________________
+[ 14618] By: nick on 2002/02/10 10:48:15
+ Log: Nick Clark's tweaks to Encode compile process
+ 1. Use decimal constants to unit string arrays rather than
+ very long string litterals (latter having possible "\0"
+ on end issues, and needing ANSI C line splicing).
+ 2. Replace tail-recursion during insert process with itteration.
+ Nick C sees 12% speedup from these.
+ Branch: perlio
+ ! ext/Encode/compile
+____________________________________________________________________________
[ 14617] By: jhi on 2002/02/10 02:56:54
Log: Use the "Unicode 1.0" name field for control characters,
as suggested by Mark Davis. Note that Unicode 3.2 will
@@ -577,6 +1057,16 @@ ____________________________________________________________________________
Branch: perl
! cop.h deb.c pp_ctl.c toke.c util.c
____________________________________________________________________________
+[ 14607] By: pudge on 2002/02/08 19:21:04
+ Log: Redo CopFILE / MacPerl_MPWFIleName patch
+ Branch: maint-5.6/macperl
+ ! cop.h deb.c pp_ctl.c toke.c util.c
+____________________________________________________________________________
+[ 14606] By: jhi on 2002/02/08 19:18:41
+ Log: The metaconfig unit change to go with #14605.
+ Branch: metaconfig/U/perl
+ ! libperl.U
+____________________________________________________________________________
[ 14605] By: jhi on 2002/02/08 19:18:17
Log: The Configure change to go with #14604.
Branch: perl
@@ -590,6 +1080,13 @@ ____________________________________________________________________________
Branch: perl
! hints/bsdos.sh
____________________________________________________________________________
+[ 14603] By: nick on 2002/02/08 18:16:09
+ Log: Integrate mainline
+ Branch: perlio
+ +> ext/threads/t/libc.t
+ !> Configure MANIFEST djgpp/djgppsed.sh doio.c perl.c pp_sys.c
+ !> t/io/argv.t t/op/taint.t t/run/fresh_perl.t
+____________________________________________________________________________
[ 14602] By: sky on 2002/02/08 15:19:15
Log: Start testing for safe localtime functions, TODO, test more functions.
Branch: perl
@@ -621,6 +1118,13 @@ ____________________________________________________________________________
Branch: perl
!> cv.h pod/perlapi.pod pod/perlintern.pod
____________________________________________________________________________
+[ 14598] By: jhi on 2002/02/08 14:01:28
+ Log: metaconfig unit changes for #14597.
+ Branch: metaconfig
+ ! U/modified/Loc.U
+ Branch: metaconfig/U/perl
+ ! libperl.U
+____________________________________________________________________________
[ 14597] By: jhi on 2002/02/08 14:01:01
Log: Configure DJGPP tweak from Laszlo Molnar.
Branch: perl
@@ -631,6 +1135,23 @@ ____________________________________________________________________________
Branch: perl
! djgpp/djgppsed.sh perl.c
____________________________________________________________________________
+[ 14595] By: nick on 2002/02/08 09:19:29
+ Log: Extract something from yesterdays effort - convert my mail on pad
+ data structures (incoporating Sarathy's corrections/clarifications)
+ into POD in cv.h which gets autodoc.pl'ed into pod/perlintern.pod.
+ Branch: perlio
+ ! cv.h pod/perlapi.pod pod/perlintern.pod
+____________________________________________________________________________
+[ 14594] By: nick on 2002/02/08 08:34:49
+ Log: Integrate mainline
+ Branch: perlio
+ +> NetWare/bat/BldNWExt-Exist.bat NetWare/t/NWModify-Exist.pl
+ +> NetWare/t/NWScripts-Exist.pl t/base/num.t
+ !> Changes MANIFEST ext/Encode/Encode.xs ext/Encode/Makefile.PL
+ !> ext/Unicode/Normalize/t/norm.t ext/Unicode/Normalize/t/test.t
+ !> hints/os390.sh lib/Benchmark.t lib/encoding.pm lib/encoding.t
+ !> op.c patchlevel.h t/run/fresh_perl.t utf8.c
+____________________________________________________________________________
[ 14593] By: jhi on 2002/02/08 03:08:20
Log: To really skip the test an exit() is needed.
Branch: perl
@@ -646,6 +1167,51 @@ ____________________________________________________________________________
Branch: perl
! t/base/num.t
____________________________________________________________________________
+[ 14590] By: pudge on 2002/02/07 19:29:03
+ Log: Update Changes
+ Branch: maint-5.6/macperl
+ ! macos/Changes
+____________________________________________________________________________
+[ 14589] By: pudge on 2002/02/07 19:26:55
+ Log: Merge AEGizmos library into PPC binary
+ Branch: maint-5.6/macperl
+ ! macos/Makefile.mk
+____________________________________________________________________________
+[ 14588] By: pudge on 2002/02/07 18:51:05
+ Log: Add -ansifor for MrCpp options
+ Branch: maint-5.6/macperl
+ ! macos/BuildRules.mk
+____________________________________________________________________________
+[ 14587] By: pudge on 2002/02/07 18:46:28
+ Log: Check ownership of CatInfos (MacPerl Bug #494482)
+ Branch: maint-5.6/macperl
+ ! macos/ext/Mac/Files/Files.xs
+____________________________________________________________________________
+[ 14586] By: pudge on 2002/02/07 18:40:21
+ Log: Resource updates
+ Branch: maint-5.6/macperl
+ ! macos/macperl/MacPerl.r macos/macperl/MacPerl.rsrc
+____________________________________________________________________________
+[ 14585] By: pudge on 2002/02/07 18:38:44
+ Log: Empty path is ENOENT (MacPerl Bug #512351)
+ Branch: maint-5.6/macperl
+ ! macos/macperl/MPAppleEvents.c
+____________________________________________________________________________
+[ 14584] By: pudge on 2002/02/07 18:38:03
+ Log: Fix horrible list maintencance bugs (MacPerl Bug #443568)
+ Branch: maint-5.6/macperl
+ ! macos/macperl/MPAEVTStream.cp
+____________________________________________________________________________
+[ 14583] By: pudge on 2002/02/07 18:36:29
+ Log: macify(ABSTRACT_FROM)
+ Branch: maint-5.6/macperl
+ ! macos/lib/ExtUtils/MM_MacOS.pm
+____________________________________________________________________________
+[ 14582] By: pudge on 2002/02/07 18:35:20
+ Log: Use correct Mac filenames in error messages, caller()
+ Branch: maint-5.6/macperl
+ ! deb.c pp_ctl.c toke.c util.c
+____________________________________________________________________________
[ 14581] By: jhi on 2002/02/07 17:10:06
Log: Sanity checks to see that the IV/NV and the PV of numeric
scalars stay in sync (unearthed this via the OS/390 gcvt()
@@ -686,6 +1252,11 @@ ____________________________________________________________________________
Branch: perl
! Changes patchlevel.h
____________________________________________________________________________
+[ 14575] By: nick on 2002/02/06 15:23:24
+ Log: One way to avoid OS390 winge about #line directives.
+ Branch: perlio
+ ! ext/Encode/EUC_JP/Makefile.PL
+____________________________________________________________________________
[ 14574] By: jhi on 2002/02/06 15:11:05
Log: s/Netware/NetWare/
Branch: perl
@@ -720,6 +1291,16 @@ ____________________________________________________________________________
Branch: perl
! utf8.c
____________________________________________________________________________
+[ 14569] By: nick on 2002/02/06 09:52:23
+ Log: Integrate mainline
+ Branch: perlio
+ !> NetWare/Makefile NetWare/bat/BldNWExt.bat
+ !> NetWare/dl_netware.xs NetWare/interface.c NetWare/interface.h
+ !> NetWare/iperlhost.h NetWare/nw5.c NetWare/nw5sck.c
+ !> NetWare/nw5sck.h NetWare/nw5thread.h NetWare/t/NWModify.pl
+ !> NetWare/t/NWScripts.pl ext/Encode/t/Encode.t
+ !> lib/File/Spec/t/rel2abs2rel.t makedef.pl
+____________________________________________________________________________
[ 14568] By: jhi on 2002/02/06 04:44:33
Log: EBCDIC: 0x41 is not cricket.
Branch: perl
@@ -742,6 +1323,13 @@ ____________________________________________________________________________
Branch: perl
! lib/File/Spec/t/rel2abs2rel.t
____________________________________________________________________________
+[ 14565] By: nick on 2002/02/05 17:31:24
+ Log: Integrate mainline
+ Branch: perlio
+ !> ext/DynaLoader/dl_dyld.xs ext/POSIX/t/posix.t hints/darwin.sh
+ !> lib/File/Spec/t/rel2abs2rel.t perl.h regexec.c t/op/filetest.t
+ !> utf8.h
+____________________________________________________________________________
[ 14564] By: jhi on 2002/02/05 17:05:40
Log: Integrate perlio;
@@ -755,6 +1343,17 @@ ____________________________________________________________________________
!> MANIFEST ext/Encode/EUC_JP/Makefile.PL ext/Encode/Makefile.PL
!> ext/Encode/compile
____________________________________________________________________________
+[ 14563] By: nick on 2002/02/05 16:01:15
+ Log: More Encode tweaks:
+ - make expensive and marginal substring search optional (-O)
+ - enable -O for ASCII-oid encodings (search space is small)
+ - add ASCII-oid jis0201 to basic Encode.so
+ - add some other Japanese encodings to EUC_JP bundle (without -O)
+ Branch: perlio
+ + ext/Encode/Encode/jis0201.ucm
+ ! MANIFEST ext/Encode/EUC_JP/Makefile.PL ext/Encode/Makefile.PL
+ ! ext/Encode/compile
+____________________________________________________________________________
[ 14562] By: sky on 2002/02/05 14:50:36
Log: Add in change for Apple/Darwin Bug: 2785519 to fix memory leaks.
Branch: perl
@@ -771,7 +1370,8 @@ ____________________________________________________________________________
! t/op/filetest.t
____________________________________________________________________________
[ 14559] By: sky on 2002/02/05 11:39:24
- Log: Add . first to the PATH enviroment to test that we realy get ./perl and not some other older perl.
+ Log: Add . first to the PATH environment to test that we really
+ get ./perl and not some other older perl.
Branch: perl
! lib/File/Spec/t/rel2abs2rel.t
____________________________________________________________________________
@@ -785,6 +1385,18 @@ ____________________________________________________________________________
Branch: perl
! hints/darwin.sh perl.h
____________________________________________________________________________
+[ 14556] By: nick on 2002/02/05 06:58:52
+ Log: Integrate mainline
+ Branch: perlio
+ !> MANIFEST configure.com ext/Encode/EUC_JP/Makefile.PL
+ !> ext/Encode/Encode.xs lib/File/Find/t/find.t
+ !> lib/File/Find/t/taint.t
+____________________________________________________________________________
+[ 14555] By: pudge on 2002/02/05 02:20:45
+ Log: Integrate change #14439 from maintperl
+ Branch: maint-5.6/macperl
+ !> op.c
+____________________________________________________________________________
[ 14554] By: jhi on 2002/02/04 23:22:28
Log: Subject: [PATCH] File::Find tests not cleaning up properly
From: Rafael Garcia-Suarez <rgarciasuarez@free.fr>
@@ -807,6 +1419,13 @@ ____________________________________________________________________________
! MANIFEST configure.com ext/Encode/EUC_JP/Makefile.PL
! ext/Encode/Encode.xs
____________________________________________________________________________
+[ 14551] By: nick on 2002/02/04 16:00:31
+ Log: Integrate mainline
+ Branch: perlio
+ !> Changes lib/CPAN.pm lib/h2xs.t lib/locale.t
+ !> lib/unicore/mktables patchlevel.h pod/perluniintro.pod
+ !> regcomp.c
+____________________________________________________________________________
[ 14550] By: jhi on 2002/02/04 14:47:00
Log: Update Changes.
Branch: perl
@@ -843,6 +1462,16 @@ ____________________________________________________________________________
Branch: perl
!> ext/Encode/Encode.xs
____________________________________________________________________________
+[ 14545] By: nick on 2002/02/03 20:03:38
+ Log: Remove debugging warning, be consistent about API fails.
+ Branch: perlio
+ ! ext/Encode/Encode.xs
+____________________________________________________________________________
+[ 14544] By: nick on 2002/02/03 19:47:48
+ Log: Carry on where we left off if we have to grow destination SV during XS encode/decode
+ Branch: perlio
+ ! ext/Encode/Encode.xs
+____________________________________________________________________________
[ 14543] By: jhi on 2002/02/03 19:06:06
Log: Subject: PATCH CPAN.pm
From: Mark-Jason Dominus <mjd@plover.com>
@@ -856,6 +1485,11 @@ ____________________________________________________________________________
Branch: perl
! lib/h2xs.t
____________________________________________________________________________
+[ 14541] By: nick on 2002/02/03 18:52:09
+ Log: Integrate mainline
+ Branch: perlio
+ !> (integrate 29 files)
+____________________________________________________________________________
[ 14540] By: jhi on 2002/02/03 18:33:53
Log: EBCDIC: more natification.
Branch: perl
@@ -881,6 +1515,14 @@ ____________________________________________________________________________
Branch: perl
! lib/unicore/mktables
____________________________________________________________________________
+[ 14536] By: nick on 2002/02/03 17:32:03
+ Log: Stable intermediate point in Encode cleanup.
+ :encode(euc-jp) works on Dan's table.euc
+ Much buffer copying and other silliness remains.
+ Branch: perlio
+ ! ext/Encode/Encode.pm ext/Encode/Encode.xs
+ ! ext/Encode/lib/Encode/Encoding.pm
+____________________________________________________________________________
[ 14535] By: jhi on 2002/02/03 17:29:57
Log: EBCDIC: it's much nicer to compare Unicode code points
to Unicode code points.
@@ -957,6 +1599,12 @@ ____________________________________________________________________________
Branch: perl
! utils/h2xs.PL
____________________________________________________________________________
+[ 14526] By: nick on 2002/02/03 14:54:18
+ Log: Fix SvGROW on an SV with SvLEN == 0 - copy in any existing data.
+ (Mis-feature discovered by Encode.)
+ Branch: perlio
+ ! sv.c
+____________________________________________________________________________
[ 14525] By: jhi on 2002/02/02 16:44:58
Log: EBCDIC: since #14519 made \N{...} to remap,
the test cannot expect an ASCII code point.
@@ -999,6 +1647,22 @@ ____________________________________________________________________________
Branch: perl
! toke.c
____________________________________________________________________________
+[ 14518] By: nick on 2002/02/01 18:32:03
+ Log: indent -kr -nce and some manual tweaks to match perl style.
+ Branch: perlio
+ ! ext/Encode/Encode.xs
+____________________________________________________________________________
+[ 14517] By: nick on 2002/02/01 18:20:46
+ Log: Integrate mainline
+ Branch: perlio
+ !> Changes MANIFEST configpm doio.c lib/Attribute/Handlers.pm
+ !> lib/Attribute/Handlers/t/multi.t lib/CPAN.pm
+ !> lib/Math/Complex.pm lib/Math/Complex.t lib/open.pm
+ !> patchlevel.h pod/perldiag.pod pod/perlfunc.pod
+ !> pod/perluniintro.pod pp.c pp_sys.c regexec.c t/io/utf8.t
+ !> t/lib/warnings/pp_sys t/lib/warnings/utf8 t/op/inccode.t
+ !> t/op/lc.t t/op/stat.t t/run/switches.t utf8.c
+____________________________________________________________________________
[ 14516] By: jhi on 2002/02/01 16:46:16
Log: Integrate perlio;
@@ -1010,6 +1674,16 @@ ____________________________________________________________________________
!> ext/Encode/EUC_JP/Makefile.PL ext/Encode/Encode.xs
!> ext/Encode/Makefile.PL ext/Encode/compile
____________________________________________________________________________
+[ 14515] By: nick on 2002/02/01 16:27:59
+ Log: Minor Encode tweaks:
+ - move Encode.pm back to top of Encode like normal XS extension
+ - avoid .def as a file extension (Win32 builds)
+ Branch: perlio
+ +> ext/Encode/Encode.pm
+ - ext/Encode/lib/Encode.pm
+ ! MANIFEST ext/Encode/EUC_JP/Makefile.PL ext/Encode/Encode.xs
+ ! ext/Encode/Makefile.PL ext/Encode/compile
+____________________________________________________________________________
[ 14514] By: jhi on 2002/02/01 14:45:26
Log: Subject: [PATCH utf8.t] temp file not cleaned up
From: Rafael Garcia-Suarez <rgarciasuarez@free.fr>
@@ -1126,6 +1800,20 @@ ____________________________________________________________________________
!> ext/Encode/EUC_JP/Makefile.PL ext/Encode/compile
!> ext/Encode/encode.h
____________________________________________________________________________
+[ 14499] By: nick on 2002/01/30 09:57:47
+ Log: Collect some stats during compile process.
+ Experiment with effect of bundling all EUC-JP, EUC-CN, EUC-KR
+ as one XS - inconclusive - marginal win?
+ Add some comments to encode.h
+ Branch: perlio
+ ! ext/Encode/EUC_JP/Makefile.PL ext/Encode/compile
+ ! ext/Encode/encode.h
+____________________________________________________________________________
+[ 14498] By: nick on 2002/01/30 07:27:55
+ Log: Integrate Jarkko's path/INC tweaks
+ Branch: perlio
+ !> ext/Encode/compile
+____________________________________________________________________________
[ 14497] By: jhi on 2002/01/30 04:40:56
Log: Subject: [PATCH] perl -V: (was: Re: Inline::C and Perl objects with C API's)
From: sthoenna@efn.org (Yitzchak Scott-Thoennes)
@@ -1172,6 +1860,34 @@ ____________________________________________________________________________
Branch: perl
! utf8.c
____________________________________________________________________________
+[ 14490] By: nick on 2002/01/29 21:20:57
+ Log: Basics of a compiled Encode XS extension
+ Branch: perlio
+ + ext/Encode/EUC_JP/EUC_JP.pm ext/Encode/EUC_JP/Makefile.PL
+ + ext/Encode/Encode/euc-jp.ucm
+ ! MANIFEST ext/Encode/Encode.xs ext/Encode/compile
+ ! ext/Encode/encode.h
+____________________________________________________________________________
+[ 14489] By: nick on 2002/01/29 18:40:54
+ Log: Integrate mainline
+ Branch: perlio
+ +> ext/Encode/MANIFEST ext/Encode/README ext/Encode/lib/Encode.pm
+ +> ext/Encode/lib/Encode/Encoding.pm
+ +> ext/Encode/lib/Encode/Internal.pm ext/Encode/lib/Encode/Tcl.pm
+ +> ext/Encode/lib/Encode/Tcl/Escape.pm
+ +> ext/Encode/lib/Encode/Tcl/Extended.pm
+ +> ext/Encode/lib/Encode/Tcl/HanZi.pm
+ +> ext/Encode/lib/Encode/Tcl/Table.pm
+ +> ext/Encode/lib/Encode/Unicode.pm ext/Encode/lib/Encode/XS.pm
+ +> ext/Encode/lib/Encode/iso10646_1.pm
+ +> ext/Encode/lib/Encode/ucs2_le.pm ext/Encode/lib/Encode/utf8.pm
+ +> ext/Encode/lib/EncodeFormat.pod ext/Encode/t/Encode.t
+ +> ext/Encode/t/Tcl.t
+ - ext/Encode.t ext/Encode/Encode.pm
+ - ext/Encode/Encode/EncodeFormat.pod ext/Encode/Encode/Tcl.pm
+ - ext/Encode/Encode/Tcl.t ext/Encode/Todo
+ !> (integrate 33 files)
+____________________________________________________________________________
[ 14488] By: jhi on 2002/01/29 16:38:58
Log: Subject: Re: [PATCH] Attribute::Handlers lexical refcount skew (was Re: lexical with attribute, refcount high)
From: Richard Clamp <richardc@unixbeard.net>
@@ -1241,6 +1957,11 @@ ____________________________________________________________________________
Branch: perl
! ext/B/t/assembler.t
____________________________________________________________________________
+[ 14481] By: jhi on 2002/01/28 21:58:44
+ Log: metaconfig unit change for #14480.
+ Branch: metaconfig
+ ! U/modified/Init.U
+____________________________________________________________________________
[ 14480] By: jhi on 2002/01/28 21:57:37
Log: DJGPP needs to know its exe soon, too.
Branch: perl
@@ -1259,6 +1980,28 @@ ____________________________________________________________________________
Branch: perl
!> win32/config.bc win32/makefile.mk
____________________________________________________________________________
+[ 14477] By: nick on 2002/01/28 20:12:31
+ Log: Set makefile.mk CCHOME etc. for default locations of MinGW and free
+ Borland compilers. (Borland builds one or two oddities.)
+ Branch: perlio
+ ! win32/config.bc win32/makefile.mk
+____________________________________________________________________________
+[ 14476] By: nick on 2002/01/28 18:43:47
+ Log: Integrate mainline
+ Branch: perlio
+ !> Configure hints/hpux.sh
+____________________________________________________________________________
+[ 14475] By: nick on 2002/01/28 17:15:12
+ Log: Integrate mainline
+ Branch: perlio
+ !> Changes Configure ext/B/B.xs hints/hpux.sh lib/warnings.t
+ !> patchlevel.h pp_sys.c t/lib/warnings/perl
+____________________________________________________________________________
+[ 14474] By: jhi on 2002/01/28 17:12:51
+ Log: metaconfig unit change for #14472.
+ Branch: metaconfig/U/perl
+ ! d_u32align.U
+____________________________________________________________________________
[ 14473] By: jhi on 2002/01/28 17:12:27
Log: Misunderstood Merijn's patch.
Branch: perl
@@ -1279,6 +2022,11 @@ ____________________________________________________________________________
Branch: perl
! pp_sys.c
____________________________________________________________________________
+[ 14469] By: jhi on 2002/01/28 14:04:44
+ Log: metaconfig unit change for #14467.
+ Branch: metaconfig/U/perl
+ ! d_u32align.U
+____________________________________________________________________________
[ 14468] By: jhi on 2002/01/28 14:03:01
Log: For some strange reason under the smoke harness the alignment
test hangs in HP-UX 10.20. So hint it to avoid the test.
@@ -1308,6 +2056,21 @@ ____________________________________________________________________________
Branch: perl
!> ext/threads/shared/t/0nothread.t
____________________________________________________________________________
+[ 14463] By: nick on 2002/01/28 08:22:36
+ Log: Integrate mainline
+ Branch: perlio
+ !> (integrate 37 files)
+____________________________________________________________________________
+[ 14462] By: nick on 2002/01/28 08:09:53
+ Log: 1st attempt at skipping broke threads case.
+ Branch: perlio
+ ! ext/threads/shared/t/0nothread.t
+____________________________________________________________________________
+[ 14461] By: nick on 2002/01/28 07:25:58
+ Log: Skip new threads::shared test unless -Duseithreads
+ Branch: perlio
+ ! ext/threads/shared/t/0nothread.t
+____________________________________________________________________________
[ 14460] By: jhi on 2002/01/28 03:37:30
Log: FAQ sync.
Branch: perl
@@ -1346,6 +2109,11 @@ ____________________________________________________________________________
Branch: perl
! lib/locale.t
____________________________________________________________________________
+[ 14454] By: jhi on 2002/01/27 22:37:48
+ Log: metaconfig unit change for #14453.
+ Branch: metaconfig/U/perl
+ ! libperl.U
+____________________________________________________________________________
[ 14453] By: jhi on 2002/01/27 22:36:08
Log: Subject: Bleadperl on Cygwin today
From: "Gerrit P. Haase" <gp@familiehaase.de>
@@ -1438,6 +2206,13 @@ ____________________________________________________________________________
Branch: perl
! ext/B/B/Deparse.pm
____________________________________________________________________________
+[ 14439] By: gsar on 2002/01/27 00:02:48
+ Log: integrate change#14431 from perlio branch (Nick's fix for
+ change#13474 to be more defensive about looking at pad entries
+ that may not exist yet)
+ Branch: maint-5.6/perl
+ ! op.c
+____________________________________________________________________________
[ 14438] By: jhi on 2002/01/26 23:56:53
Log: Comment to avoid later "cleanups."
Branch: perl
@@ -1464,6 +2239,13 @@ ____________________________________________________________________________
!> win32/config.vc win32/config_H.bc win32/config_H.gc
!> win32/config_H.vc
____________________________________________________________________________
+[ 14434] By: nick on 2002/01/26 22:27:08
+ Log: "All tests successful" VC6.0 Win32
+ (Update config.vc to need cppstdin so those tests are skipped...)
+ Branch: perlio
+ ! win32/config.vc win32/config_H.bc win32/config_H.gc
+ ! win32/config_H.vc
+____________________________________________________________________________
[ 14433] By: jhi on 2002/01/26 21:38:56
Log: Integrate perlio;
@@ -1492,6 +2274,18 @@ ____________________________________________________________________________
!> lib/File/Find/t/taint.t lib/Filter/Simple.pm mg.c op.c
!> win32/perlhost.h win32/win32.c win32/win32.h win32/win32iop.h
____________________________________________________________________________
+[ 14432] By: nick on 2002/01/26 21:10:38
+ Log: Gurusamy Sarathy <gsar@ActiveState.com>'s patch to Filter::Simple
+ for CRLF line endings.
+ Branch: perlio
+ ! lib/Filter/Simple.pm
+____________________________________________________________________________
+[ 14431] By: nick on 2002/01/26 21:08:35
+ Log: Fix/band-aid for op.c's anon CV leak fix co-existing with threads.
+ Should really be looked at by someone that knows about pads.
+ Branch: perlio
+ ! op.c
+____________________________________________________________________________
[ 14430] By: jhi on 2002/01/26 20:54:16
Log: Subject: Re: [PATCH @14417] vmsify Pod::Usage and its test
From: "Craig A. Berry" <craigberry@mac.com>
@@ -1500,6 +2294,40 @@ ____________________________________________________________________________
Branch: perl
! lib/Pod/Usage.pm lib/Pod/t/Usage.t
____________________________________________________________________________
+[ 14429] By: nick on 2002/01/26 18:04:22
+ Log: Tinkering with thread cleanup mutex-ing - not the problem
+ (op.c is) but could have been...
+ Branch: perlio
+ ! ext/threads/threads.xs
+____________________________________________________________________________
+[ 14428] By: nick on 2002/01/26 18:03:13
+ Log: Win32 signal emulation cleanup.
+ Branch: perlio
+ ! win32/perlhost.h win32/win32.c win32/win32.h win32/win32iop.h
+____________________________________________________________________________
+[ 14427] By: nick on 2002/01/26 13:59:33
+ Log: If we get to sighandler by mistake (no perl handler set) then
+ warn() and exit() rather than die() - should never happen
+ but if it does context needed to die is likely to be trashed
+ as well.
+ Branch: perlio
+ ! mg.c
+____________________________________________________________________________
+[ 14426] By: nick on 2002/01/26 13:56:23
+ Log: Integrate mainline
+ Branch: perlio
+ !> Changes NetWare/config_H.wc config_h.SH ext/Encode/Encode.xs
+ !> op.c patchlevel.h pod/perldebguts.pod t/op/universal.t
+ !> t/run/fresh_perl.t
+____________________________________________________________________________
+[ 14425] By: nick on 2002/01/26 08:11:33
+ Log: 1st two tests of File/Find/t/find.t and taint.t were run after
+ calling cleanup(). If previous fail had left for_find directory,
+ but no content in it then cleanup() returned cd'ed to that directory.
+ So tests failed. Fixed cleanup()-s.
+ Branch: perlio
+ ! lib/File/Find/t/find.t lib/File/Find/t/taint.t
+____________________________________________________________________________
[ 14424] By: jhi on 2002/01/25 22:10:11
Log: Integrate perlio;
@@ -1524,6 +2352,25 @@ ____________________________________________________________________________
Branch: perl
! t/op/universal.t
____________________________________________________________________________
+[ 14422] By: nick on 2002/01/25 21:37:03
+ Log: Save $! so that other syscalls don't disturb it before
+ we test it.
+ Branch: perlio
+ ! ext/Socket/socketpair.t
+____________________________________________________________________________
+[ 14421] By: nick on 2002/01/25 19:05:57
+ Log: More Win32 tuning
+ Branch: perlio
+ ! t/op/stat.t t/op/taint.t
+____________________________________________________________________________
+[ 14420] By: nick on 2002/01/25 18:21:42
+ Log: Fix winsystem.t's attempt to build showav.exe to work
+ with gcc (which writes a.exe unless told with -o ).
+ Also put in a few more fail-safes to check .exe got
+ built somehow.
+ Branch: perlio
+ ! t/op/winsystem.t
+____________________________________________________________________________
[ 14419] By: jhi on 2002/01/25 17:25:05
Log: Subject: [Patch Encode.xs] calculation of need overflows
From: SADAHIRO Tomoyuki <bqw10602@nifty.com>
@@ -1602,11 +2449,52 @@ ____________________________________________________________________________
Branch: perl
! pod/perldebguts.pod
____________________________________________________________________________
+[ 14414] By: jhi on 2002/01/25 14:08:17
+ Log: metaconfig unit change for #14413.
+ Branch: metaconfig
+ ! U/modified/prototype.U
+____________________________________________________________________________
[ 14413] By: jhi on 2002/01/25 14:05:49
Log: Okay, you can come home now, _().
Branch: perl
! config_h.SH
____________________________________________________________________________
+[ 14412] By: nick on 2002/01/25 11:01:49
+ Log: Integrate mainline
+ All but ../lib/Unicode/UCD.t pass.
+ Branch: perlio
+ +> lib/unicore/ArabicShaping.txt lib/unicore/BidiMirroring.txt
+ +> lib/unicore/CaseFolding.txt
+ +> lib/unicore/CompositionExclusions.txt
+ +> lib/unicore/EastAsianWidth.txt lib/unicore/LineBreak.txt
+ +> lib/unicore/SpecialCasing.txt lib/unicore/UnicodeData.txt
+ +> vos/vos.c
+ - lib/unicore/ArabShap.txt lib/unicore/BidiMirr.txt
+ - lib/unicore/CaseFold.txt lib/unicore/CompExcl.txt
+ - lib/unicore/EAWidth.txt lib/unicore/LineBrk.txt
+ - lib/unicore/NamesList.html lib/unicore/PropList.html
+ - lib/unicore/SpecCase.txt lib/unicore/UCD.html
+ - lib/unicore/Unicode.html lib/unicore/Unicode.txt
+ - lib/unicore/rename
+ !> (integrate 424 files)
+____________________________________________________________________________
+[ 14411] By: nick on 2002/01/25 09:45:13
+ Log: Linux/NFS hackery was not faking right number of passes.
+ Branch: perlio
+ ! t/io/fs.t
+____________________________________________________________________________
+[ 14410] By: nick on 2002/01/25 09:35:07
+ Log: threads::shared tidy up:
+ - Add _id() function to shared.xs so we can test refs point at same thing.
+ - Use that rather that comparing stringified ref in shared/t/hv_refs.t
+ - Allow no_share to pass if sharing to works despite mis-ordering.
+ - Change docs of threads to document ->create() (as used in tests),
+ and not mention "new".
+ Branch: perlio
+ ! ext/threads/shared/shared.pm ext/threads/shared/shared.xs
+ ! ext/threads/shared/t/hv_refs.t ext/threads/shared/t/no_share.t
+ ! ext/threads/threads.pm
+____________________________________________________________________________
[ 14409] By: jhi on 2002/01/24 21:08:35
Log: Subject: perldebguts minor tweaks
From: Joe McMahon <mcmahon@metalab.unc.edu>
@@ -1649,6 +2537,11 @@ ____________________________________________________________________________
Branch: perl
! pod/perldiag.pod pp_hot.c
____________________________________________________________________________
+[ 14404] By: jhi on 2002/01/24 13:13:55
+ Log: metaconfig unit change for #14403.
+ Branch: metaconfig/U/perl
+ ! d_u32align.U
+____________________________________________________________________________
[ 14403] By: jhi on 2002/01/24 13:13:29
Log: Pacify picky compilers (this time Sun Workshop).
Branch: perl
@@ -1662,6 +2555,11 @@ ____________________________________________________________________________
Branch: perl
! lib/dumpvar.pl
____________________________________________________________________________
+[ 14401] By: nick on 2002/01/24 07:50:38
+ Log: Expand command line test globs on Win32.
+ Branch: perlio
+ ! t/harness
+____________________________________________________________________________
[ 14400] By: jhi on 2002/01/24 02:49:05
Log: Sprinkle some copyrights (use the oldest timestamp to
be found in the repository, which is most often not right,
@@ -1675,6 +2573,69 @@ ____________________________________________________________________________
! scope.h sharedsv.h taint.c thrdvar.h thread.h universal.c
! unixish.h xsutils.c
____________________________________________________________________________
+[ 14399] By: pudge on 2002/01/23 21:00:29
+ Log: Don't crash on Help for long text (bug #506672)
+ Branch: maint-5.6/macperl
+ ! macos/macperl/MPHelp.c
+____________________________________________________________________________
+[ 14398] By: pudge on 2002/01/23 20:03:38
+ Log: Fix minor path problem
+ Branch: maint-5.6/macperl
+ ! macos/macperl/Droplets/tarzipme.plx
+____________________________________________________________________________
+[ 14397] By: pudge on 2002/01/23 20:03:19
+ Log: Minor text changes
+ Branch: maint-5.6/macperl
+ ! macos/Perl.r
+____________________________________________________________________________
+[ 14396] By: pudge on 2002/01/23 20:02:45
+ Log: Bump versions, dates, etc.
+ Branch: maint-5.6/macperl
+ ! macos/MPVersion.r macos/macperl/MPPreferences.c perl.c
+____________________________________________________________________________
+[ 14395] By: pudge on 2002/01/23 20:01:43
+ Log: coderefs in @INC and absolute paths
+ Branch: maint-5.6/macperl
+ ! embed.h pp_ctl.c proto.h
+____________________________________________________________________________
+[ 14394] By: pudge on 2002/01/23 20:00:35
+ Log: Minor module thingys
+ Branch: maint-5.6/macperl
+ ! macos/ext/Mac/Controls/Controls.xs
+ ! macos/ext/Mac/Files/Files.xs macos/ext/Mac/Gestalt/Gestalt.pm
+ ! macos/ext/Mac/ImageCompression/ImageCompression.xs
+ ! macos/ext/Mac/InternetConfig/InternetConfig.pm
+ ! macos/ext/Mac/InternetConfig/InternetConfig.xs
+ ! macos/ext/Mac/Memory/Memory.pm macos/ext/Mac/Memory/Memory.xs
+ ! macos/ext/Mac/Menus/Menus.pm macos/ext/Mac/MoreFiles/MF.xs
+ ! macos/ext/Mac/MoreFiles/MoreFiles.pm
+ ! macos/ext/Mac/Movies/Movies.xs
+ ! macos/ext/Mac/Navigation/Navigation.pm
+ ! macos/ext/Mac/Navigation/Navigation.xs
+ ! macos/ext/Mac/Notification/Notification.xs
+ ! macos/ext/Mac/OSA/OSA.pm macos/ext/Mac/Processes/Processes.pm
+ ! macos/ext/Mac/Processes/Processes.xs
+ ! macos/ext/Mac/QDOffscreen/QDOffscreen.xs
+ ! macos/ext/Mac/QuickDraw/QuickDraw.pm
+ ! macos/ext/Mac/QuickDraw/QuickDraw.xs
+ ! macos/ext/Mac/QuickTimeVR/QuickTimeVR.xs
+ ! macos/ext/Mac/Resources/Resources.pm
+ ! macos/ext/Mac/Resources/Resources.xs macos/ext/Mac/SAT/SAT.pm
+ ! macos/ext/Mac/SAT/SAT.xs macos/ext/Mac/Sound/Sound.pm
+ ! macos/ext/Mac/Sound/Sound.xs macos/ext/Mac/Speech/Speech.pm
+ ! macos/ext/Mac/SpeechRecognition/SpeechRecognition.pm
+ ! macos/lib/Mac/Glue.pm macos/lib/Mac/OSA/Simple.pm
+____________________________________________________________________________
+[ 14393] By: nick on 2002/01/23 19:52:19
+ Log: Except Win32 from echo tests. (Alarm does not break into connect)
+ Branch: perlio
+ ! ext/Socket/Socket.t
+____________________________________________________________________________
+[ 14392] By: nick on 2002/01/23 19:31:57
+ Log: SvTEMP_off to stop private PV's being stolen and stored in shared space
+ Branch: perlio
+ ! ext/threads/shared/shared.xs
+____________________________________________________________________________
[ 14391] By: jhi on 2002/01/23 18:48:45
Log: Copyright++. (Not all the toplevel *.h have one, it seems.)
Branch: perl
@@ -1705,6 +2666,19 @@ ____________________________________________________________________________
Branch: perl
! pod/perltodo.pod
____________________________________________________________________________
+[ 14387] By: nick on 2002/01/23 14:19:30
+ Log: thread::shared nearly working again - remaining issue
+ is references withing shared space.
+ Added bulk test with no threads involved (for debugging)
+ Tuned tests to skip those needing _thrcnt
+ Branch: perlio
+ + ext/threads/shared/t/0nothread.t
+ ! MANIFEST ext/threads/shared/shared.pm
+ ! ext/threads/shared/shared.xs ext/threads/shared/t/av_simple.t
+ ! ext/threads/shared/t/hv_refs.t
+ ! ext/threads/shared/t/hv_simple.t
+ ! ext/threads/shared/t/sv_simple.t
+____________________________________________________________________________
[ 14386] By: jhi on 2002/01/23 14:19:01
Log: Subject: [ID 20020121.003] perldata doco bug
From: John Stumbles <jstumbles@bluearc.com>
@@ -1737,6 +2711,11 @@ ____________________________________________________________________________
Branch: perl
! t/run/fresh_perl.t
____________________________________________________________________________
+[ 14382] By: jhi on 2002/01/23 03:47:35
+ Log: metaconfig unit change for #14381.
+ Branch: metaconfig/U/perl
+ ! d_u32align.U
+____________________________________________________________________________
[ 14381] By: jhi on 2002/01/23 03:47:05
Log: HP-UX 10.20 cc pacifying from Merijn.
Branch: perl
@@ -1760,6 +2739,21 @@ ____________________________________________________________________________
Branch: perl
! utf8.h
____________________________________________________________________________
+[ 14378] By: nick on 2002/01/22 20:33:15
+ Log: Implement recursive lock and use of scope for PL_sharedsv_space,
+ so now croak() from asserts does not leave locks.
+ Make hv_simple compile (new prototype for debugging probe).
+ Branch: perlio
+ ! ext/threads/shared/shared.pm ext/threads/shared/shared.xs
+ ! ext/threads/shared/t/hv_simple.t
+____________________________________________________________________________
+[ 14377] By: nick on 2002/01/22 17:32:21
+ Log: Shared scalars working, some shared array ops working.
+ Branch: perlio
+ ! ext/threads/shared/shared.pm ext/threads/shared/shared.xs
+ ! ext/threads/shared/t/sv_refs.t
+ ! ext/threads/shared/t/sv_simple.t ext/threads/threads.xs perl.h
+____________________________________________________________________________
[ 14376] By: jhi on 2002/01/22 16:46:48
Log: Subject: [PATCH] Support truncate() in VOS port
From: Paul_GreenVOS@vos.stratus.com
@@ -1769,6 +2763,16 @@ ____________________________________________________________________________
+ vos/vos.c
! MANIFEST hints/vos.sh vos/vosish.h
____________________________________________________________________________
+[ 14375] By: jhi on 2002/01/22 16:38:06
+ Log: metaconfig unit changes for #14374. Couldn't figure
+ how to get completely rid of _() (some weird dependency
+ pulling it in?) so renamed it as PROTO_().
+ Branch: metaconfig
+ + U/modified/d_shmat.U U/modified/prototype.U
+ ! U/protos/d_drand48proto.U
+ Branch: metaconfig/U/perl
+ ! d_sbrkproto.U d_sockatmarkproto.U d_telldirproto.U
+____________________________________________________________________________
[ 14374] By: jhi on 2002/01/22 16:36:41
Log: Get rid of the _() macro since (1) we require ANSI anyway
(2) Other software (GNU) seems to use it and we don't need it,
@@ -1781,6 +2785,20 @@ ____________________________________________________________________________
! win32/config_H.gc win32/config_H.vc win32/config_H.win64
! wince/config.h wince/config_H.ce
____________________________________________________________________________
+[ 14373] By: nick on 2002/01/22 10:10:48
+ Log: Miss mg_len == 0 meaning don't Safefree
+ Branch: perlio
+ ! mg.c
+____________________________________________________________________________
+[ 14372] By: nick on 2002/01/21 22:34:06
+ Log: XS side of new threads::shared designed, coded and compiles,
+ and mostly commented but is totaly untested.
+ submit in case anyone wants a preview.
+ Branch: perlio
+ + ext/threads/shared/typemap
+ ! MANIFEST ext/threads/shared/shared.pm
+ ! ext/threads/shared/shared.xs
+____________________________________________________________________________
[ 14371] By: jhi on 2002/01/21 19:36:04
Log: Subject: [BUG] /\_/ an unrecognized escape?
From: Michael G Schwern <schwern@pobox.com>
@@ -1857,6 +2875,28 @@ ____________________________________________________________________________
Branch: perl
! lib/ExtUtils/MakeMaker.pm
____________________________________________________________________________
+[ 14363] By: nick on 2002/01/20 20:38:23
+ Log: Add new threads/typemap to MANIFEST
+ Branch: perlio
+ ! MANIFEST
+____________________________________________________________________________
+[ 14362] By: nick on 2002/01/20 20:34:36
+ Log: Integrate mainline
+ Branch: perlio
+ +> lib/Pod/t/Usage.t
+ !> Configure ext/Cwd/t/cwd.t ext/Devel/DProf/DProf.t
+ !> ext/File/Glob/t/basic.t ext/SDBM_File/sdbm.t
+ !> lib/ExtUtils/MM_BeOS.pm pod/perl5004delta.pod
+ !> pod/perl5005delta.pod pod/perl561delta.pod pod/perl56delta.pod
+ !> pod/perlfaq1.pod pod/perlfaq2.pod pod/perltoc.pod pp.c
+ !> t/comp/script.t t/op/oct.t t/op/stat.t t/run/fresh_perl.t
+ !> util.c
+____________________________________________________________________________
+[ 14361] By: nick on 2002/01/20 18:51:47
+ Log: Integrate MANIFEST
+ Branch: perlio
+ !> MANIFEST
+____________________________________________________________________________
[ 14360] By: jhi on 2002/01/20 17:11:12
Log: Subject: [PATCH] lib/ExtUtils/t/Command.t -- VOS Fixes
From: Paul_GreenVOS@vos.stratus.com
@@ -1886,6 +2926,23 @@ ____________________________________________________________________________
Branch: perl
! ext/File/Glob/t/basic.t
____________________________________________________________________________
+[ 14357] By: jhi on 2002/01/20 16:44:29
+ Log: #14352 deleted ext/threads/threads.h
+ Branch: perlio
+ ! MANIFEST
+____________________________________________________________________________
+[ 14356] By: jhi on 2002/01/20 16:40:34
+ Log: Eradicate sharedsv.*
+ Branch: perlio
+ ! NetWare/Makefile vos/build.cm win32/Makefile wince/Makefile.ce
+____________________________________________________________________________
+[ 14355] By: nick on 2002/01/20 11:50:22
+ Log: threads work again on Win32. (Not threads::shared yet)
+ Submit to see if they do on Linux.
+ Branch: perlio
+ ! ext/threads/shared/shared.xs ext/threads/threads.xs
+ ! win32/makefile.mk
+____________________________________________________________________________
[ 14354] By: jhi on 2002/01/20 06:35:54
Log: Make also hex() and oct() to croak if their arguments
cannot be downgraded (that is, if they contain wide
@@ -1894,6 +2951,24 @@ ____________________________________________________________________________
Branch: perl
! pp.c t/op/oct.t
____________________________________________________________________________
+[ 14353] By: nick on 2002/01/19 22:20:09
+ Log: Integrate Time/Local and its test
+ Branch: perlio
+ !> lib/Time/Local.pm lib/Time/Local.t
+____________________________________________________________________________
+[ 14352] By: nick on 2002/01/19 22:17:07
+ Log: Nearly-working threads re-structuring. Do not integrate,
+ submit-ing to get to Win32, and as "off site" backup.
+ Branch: perlio
+ + ext/threads/typemap
+ - ext/threads/threads.h sharedsv.c sharedsv.h
+ ! MANIFEST Makefile.SH Makefile.micro embed.fnc embed.h
+ ! embedvar.h ext/threads/shared/shared.pm
+ ! ext/threads/shared/shared.xs ext/threads/threads.pm
+ ! ext/threads/threads.xs global.sym intrpvar.h mg.c mg.h perl.h
+ ! perlapi.c perlapi.h perlvars.h pod/perlapi.pod
+ ! pod/perlintern.pod pp.c proto.h sv.c sv.h util.c
+____________________________________________________________________________
[ 14351] By: jhi on 2002/01/19 21:06:58
Log: Regen toc.
Branch: perl
@@ -1937,7 +3012,7 @@ ____________________________________________________________________________
!> pod/perlapi.pod pod/perlintern.pod proto.h sv.c util.c
____________________________________________________________________________
[ 14345] By: gbarr on 2002/01/19 16:51:23
- Log: Alternative Time::Local algorithm that uses matematical formula
+ Log: Alternative Time::Local algorithm that uses matemathical formula
for timegm instead of progressive guessing
Branch: perl
! lib/Time/Local.pm
@@ -1995,17 +3070,53 @@ ____________________________________________________________________________
Branch: perl
! lib/ExtUtils/MM_BeOS.pm
____________________________________________________________________________
+[ 14337] By: jhi on 2002/01/19 02:48:15
+ Log: metaconfig unit change for #14336.
+ Branch: metaconfig
+ ! U/modified/myhostname.U
+____________________________________________________________________________
[ 14336] By: jhi on 2002/01/19 02:47:50
Log: Avoid bare "set", and kiss .uucp goodbye.
Branch: perl
! Configure
____________________________________________________________________________
+[ 14335] By: nick on 2002/01/18 22:11:42
+ Log: Split out core of sv_magic() into sv_magicext().
+ sv_magic provides the extra restictions (no READONLY, only
+ one of each type, canned set of vtables), and sv_magicext()
+ does the actual data twiddling.
+ Also enhances semantics of ->mg_ptr setting via name/namlen
+ to allow either an uncopied ptr (namlen == 0), or a Newz()ed
+ scratch area (namlen > 0 && name == NULL).
+ sv_magicext also returns the MAGIC * it added.
+ sv_magicext is intended mainly for PERL_MAGIC_ext (~) magic.
+
+ To come sv_unmagicext() - which will remove just one magic
+ of particular type, and additionaly match against ->mg_ptr,
+ or the MAGIC * (need to experiment as to which is more natural).
+ Branch: perlio
+ ! embed.fnc embed.h embedvar.h global.sym perlapi.c perlapi.h
+ ! pod/perlapi.pod pod/perlintern.pod proto.h sv.c util.c
+____________________________________________________________________________
[ 14334] By: jhi on 2002/01/18 21:16:08
Log: Retract #14327 for now, going to the limit seems
to be too much for many platforms.
Branch: perl
! lib/Time/Local.t
____________________________________________________________________________
+[ 14333] By: nick on 2002/01/18 18:58:33
+ Log: Integrate mainline
+ Branch: perlio
+ !> Changes patchlevel.h
+____________________________________________________________________________
+[ 14332] By: nick on 2002/01/18 16:19:06
+ Log: Integrate mainline
+ Branch: perlio
+ +> lib/ExtUtils/Changes lib/ExtUtils/instmodsh
+ +> lib/ExtUtils/t/hints.t t/lib/TieOut.pm
+ - lib/ExtUtils/inst
+ !> (integrate 32 files)
+____________________________________________________________________________
[ 14331] By: jhi on 2002/01/18 16:09:38
Log: Update Changes.
Branch: perl
@@ -2130,6 +3241,11 @@ ____________________________________________________________________________
Branch: perl
! lib/ExtUtils/MakeMaker.pm
____________________________________________________________________________
+[ 14316] By: jhi on 2002/01/17 22:14:56
+ Log: metaconfig unit change for #14315.
+ Branch: metaconfig/U/perl
+ ! uselongdbl.U
+____________________________________________________________________________
[ 14315] By: jhi on 2002/01/17 22:13:44
Log: Subject: [PATCH] long doubles
From: Nicholas Clark <nick@unfortu.net>
@@ -2138,6 +3254,11 @@ ____________________________________________________________________________
Branch: perl
! Configure
____________________________________________________________________________
+[ 14314] By: jhi on 2002/01/17 21:52:03
+ Log: metaconfig unit change for #14313.
+ Branch: metaconfig
+ ! U/modified/i_ndbm.U
+____________________________________________________________________________
[ 14313] By: jhi on 2002/01/17 21:51:05
Log: Subject: [PATCH] Trivial Configure patch (really i_ndbm.U)
From: Andy Dougherty <doughera@lafayette.edu>
@@ -2146,6 +3267,19 @@ ____________________________________________________________________________
Branch: perl
! Configure
____________________________________________________________________________
+[ 14312] By: nick on 2002/01/17 21:38:38
+ Log: Integrate mainline (for ndbm fixes etc.)
+ Branch: perlio
+ +> t/run/fresh_perl.t
+ - t/run/kill_perl.t
+ !> Changes MANIFEST ext/Opcode/Opcode.xs
+ !> ext/SDBM_File/sdbm/Makefile.PL
+ !> ext/Unicode/Normalize/Normalize.pm lib/Attribute/Handlers.pm
+ !> lib/Attribute/Handlers/t/multi.t lib/ExtUtils/MM_Unix.pm
+ !> lib/ExtUtils/MakeMaker.pm lib/ExtUtils/t/MM_Unix.t
+ !> lib/Text/Tabs.pm mg.c patchlevel.h scope.c t/io/fs.t
+ !> t/lib/warnings/mg t/op/crypt.t t/test.pl
+____________________________________________________________________________
[ 14311] By: sky on 2002/01/17 21:01:00
Log: Simplify the code that duplicates the threads
init function and the parameters to the thread by using sv_dup.
@@ -2262,6 +3396,18 @@ ____________________________________________________________________________
Branch: perl
!> ext/Socket/Socket.xs
____________________________________________________________________________
+[ 14296] By: nick on 2002/01/16 13:02:29
+ Log: offsetof() is in <stddef.h>
+ Branch: perlio
+ ! ext/Socket/Socket.xs
+____________________________________________________________________________
+[ 14295] By: nick on 2002/01/16 07:25:29
+ Log: Integrate mainline
+ Branch: perlio
+ +> (branch 262 files)
+ - (delete 285 files)
+ !> (integrate 34 files)
+____________________________________________________________________________
[ 14294] By: jhi on 2002/01/16 05:37:29
Log: Jeffrey's Unicode adventure continues: unify the In/*.pl
and Is/*.pl to lib/*.pl, remove In.pl and Is.pl, introduce
@@ -2359,6 +3505,14 @@ ____________________________________________________________________________
- lib/unicore/Is/IDStart.pl
! (edit 200 files)
____________________________________________________________________________
+[ 14288] By: jhi on 2002/01/15 17:56:29
+ Log: metaconfig unit changes for #14287.
+ Branch: metaconfig
+ + U/modified/Chk_MANI.U
+ ! U/modified/Extract.U U/modified/Finish.U
+ Branch: metaconfig/U/perl
+ ! Extensions.U dlsrc.U
+____________________________________________________________________________
[ 14287] By: jhi on 2002/01/15 17:55:54
Log: Some protection against spaces in directory names.
(Tru64 still has some makedepend problems in such
@@ -2405,6 +3559,150 @@ ____________________________________________________________________________
Branch: perl
!> (integrate 28 files)
____________________________________________________________________________
+[ 14283] By: pudge on 2002/01/15 15:21:30
+ Log: Add Shuck URL
+ Branch: maint-5.6/macperl
+ ! macos/macperl/MacPerl.podhelp
+____________________________________________________________________________
+[ 14282] By: pudge on 2002/01/15 15:21:18
+ Log: Remove obsolete docs
+ Branch: maint-5.6/macperl
+ ! ext/File/Glob/Glob.pm
+____________________________________________________________________________
+[ 14281] By: nick on 2002/01/15 15:08:43
+ Log: Correct slab allocator for case where sizeof(IV) > sizeof(IV *)
+ e.g. -Duse64bitint on a 32-bit platform.
+ Now uses I32 for use-count and is more careful with its casts.
+ Branch: perlio
+ ! intrpvar.h op.c
+____________________________________________________________________________
+[ 14280] By: pudge on 2002/01/15 14:55:25
+ Log: Update bundled modules. Yow!
+ Branch: maint-5.6/macperl
+ + macos/bundled_ext/Compress/Zlib/constants.h
+ + macos/bundled_ext/Compress/Zlib/constants.xs
+ + macos/bundled_ext/Filter/Util/Call/ppport.h
+ + macos/bundled_ext/Storable/t/compat-0.6.t
+ + macos/bundled_ext/Storable/t/dump.pl
+ + macos/bundled_lib/blib/lib/Mail/Mailer/qmail.pm
+ + macos/bundled_lib/blib/lib/Net/HTTP/Methods.pm
+ + macos/bundled_lib/blib/lib/Net/HTTPS.pm
+ + macos/bundled_lib/blib/lib/URI/ssh.pm
+ + macos/bundled_lib/t/Filter/Simple/ExportTest.pm
+ + macos/bundled_lib/t/Filter/Simple/FilterOnlyTest.pm
+ + macos/bundled_lib/t/Filter/Simple/FilterTest.pm
+ + macos/bundled_lib/t/Filter/Simple/ImportTest.pm
+ + macos/bundled_lib/t/Filter/Simple/data.t
+ + macos/bundled_lib/t/Filter/Simple/export.t
+ + macos/bundled_lib/t/Filter/Simple/filter_only.t
+ + macos/bundled_lib/t/Filter/Simple/import.t
+ + macos/bundled_lib/t/NEXT/actual.t
+ + macos/bundled_lib/t/NEXT/actuns.t
+ + macos/bundled_lib/t/NEXT/next.t
+ + macos/bundled_lib/t/NEXT/unseen.t
+ + macos/bundled_lib/t/libnet/netrc.t
+ + macos/bundled_lib/t/libwww-perl/base/http.t
+ + macos/bundled_lib/t/libwww-perl/live/activestate.t
+ - macos/bundled_ext/Filter/t/FilterTest.pm
+ - macos/bundled_ext/Storable/t/compat06.t
+ - macos/bundled_ext/Storable/t/st-dump.pl
+ - macos/bundled_lib/t/NEXT/test.pl
+ - macos/bundled_lib/t/libwww-perl/live/google.t
+ ! macos/bundled_ext/Compress/Zlib/ANNOUNCE
+ ! macos/bundled_ext/Compress/Zlib/Makefile.PL
+ ! macos/bundled_ext/Compress/Zlib/Makefile.mk
+ ! macos/bundled_ext/Compress/Zlib/README
+ ! macos/bundled_ext/Compress/Zlib/Zlib.pm
+ ! macos/bundled_ext/Compress/Zlib/Zlib.xs
+ ! macos/bundled_ext/Compress/Zlib/t/examples.t
+ ! macos/bundled_ext/Filter/Util/Call/Call.pm
+ ! macos/bundled_ext/Filter/Util/Call/Call.xs
+ ! macos/bundled_ext/Filter/Util/Call/Makefile.PL
+ ! macos/bundled_ext/Filter/t/call.t
+ ! macos/bundled_ext/Filter/t/filter-util.pl
+ ! macos/bundled_ext/Storable/ChangeLog
+ ! macos/bundled_ext/Storable/README
+ ! macos/bundled_ext/Storable/Storable.pm
+ ! macos/bundled_ext/Storable/t/blessed.t
+ ! macos/bundled_ext/Storable/t/canonical.t
+ ! macos/bundled_ext/Storable/t/dclone.t
+ ! macos/bundled_ext/Storable/t/forgive.t
+ ! macos/bundled_ext/Storable/t/freeze.t
+ ! macos/bundled_ext/Storable/t/lock.t
+ ! macos/bundled_ext/Storable/t/overload.t
+ ! macos/bundled_ext/Storable/t/recurse.t
+ ! macos/bundled_ext/Storable/t/retrieve.t
+ ! macos/bundled_ext/Storable/t/store.t
+ ! macos/bundled_ext/Storable/t/tied.t
+ ! macos/bundled_ext/Storable/t/tied_hook.t
+ ! macos/bundled_ext/Storable/t/tied_items.t
+ ! macos/bundled_ext/Storable/t/utf8.t
+ ! macos/bundled_lib/blib/lib/File/Sort.pm
+ ! macos/bundled_lib/blib/lib/Filter/Simple.pm
+ ! macos/bundled_lib/blib/lib/HTTP/Headers.pm
+ ! macos/bundled_lib/blib/lib/HTTP/Message.pm
+ ! macos/bundled_lib/blib/lib/HTTP/Negotiate.pm
+ ! macos/bundled_lib/blib/lib/HTTP/Request.pm
+ ! macos/bundled_lib/blib/lib/HTTP/Response.pm
+ ! macos/bundled_lib/blib/lib/LWP.pm
+ ! macos/bundled_lib/blib/lib/LWP/Authen/Digest.pm
+ ! macos/bundled_lib/blib/lib/LWP/Protocol/http.pm
+ ! macos/bundled_lib/blib/lib/LWP/Protocol/https.pm
+ ! macos/bundled_lib/blib/lib/LWP/UserAgent.pm
+ ! macos/bundled_lib/blib/lib/Mail/Address.pm
+ ! macos/bundled_lib/blib/lib/Mail/Cap.pm
+ ! macos/bundled_lib/blib/lib/Mail/Field.pm
+ ! macos/bundled_lib/blib/lib/Mail/Field/AddrList.pm
+ ! macos/bundled_lib/blib/lib/Mail/Field/Date.pm
+ ! macos/bundled_lib/blib/lib/Mail/Filter.pm
+ ! macos/bundled_lib/blib/lib/Mail/Header.pm
+ ! macos/bundled_lib/blib/lib/Mail/Internet.pm
+ ! macos/bundled_lib/blib/lib/Mail/Mailer.pm
+ ! macos/bundled_lib/blib/lib/Mail/Mailer/test.pm
+ ! macos/bundled_lib/blib/lib/Mail/Send.pm
+ ! macos/bundled_lib/blib/lib/Mail/Util.pm
+ ! macos/bundled_lib/blib/lib/NEXT.pm
+ ! macos/bundled_lib/blib/lib/Net/Config.pm
+ ! macos/bundled_lib/blib/lib/Net/Domain.pm
+ ! macos/bundled_lib/blib/lib/Net/FTP.pm
+ ! macos/bundled_lib/blib/lib/Net/FTP/E.pm
+ ! macos/bundled_lib/blib/lib/Net/FTP/L.pm
+ ! macos/bundled_lib/blib/lib/Net/HTTP.pm
+ ! macos/bundled_lib/blib/lib/Net/NNTP.pm
+ ! macos/bundled_lib/blib/lib/Net/POP3.pm
+ ! macos/bundled_lib/blib/lib/Net/SMTP.pm
+ ! macos/bundled_lib/blib/lib/Net/libnetFAQ.pod
+ ! macos/bundled_lib/blib/lib/Switch.pm
+ ! macos/bundled_lib/blib/lib/Text/Balanced.pm
+ ! macos/bundled_lib/blib/lib/URI/Escape.pm
+ ! macos/bundled_lib/blib/lib/URI/ftp.pm
+ ! macos/bundled_lib/blib/lib/lwpcook.pod
+ ! macos/bundled_lib/t/Filter/Simple/filter.t
+ ! macos/bundled_lib/t/Switch/t/nested.t
+ ! macos/bundled_lib/t/Text/Balanced/t/extbrk.t
+ ! macos/bundled_lib/t/Text/Balanced/t/extcbk.t
+ ! macos/bundled_lib/t/Text/Balanced/t/extdel.t
+ ! macos/bundled_lib/t/Text/Balanced/t/extmul.t
+ ! macos/bundled_lib/t/Text/Balanced/t/extqlk.t
+ ! macos/bundled_lib/t/Text/Balanced/t/exttag.t
+ ! macos/bundled_lib/t/Text/Balanced/t/extvar.t
+ ! macos/bundled_lib/t/Text/Balanced/t/gentag.t
+ ! macos/bundled_lib/t/libnet/config.t
+ ! macos/bundled_lib/t/libnet/ftp.t
+ ! macos/bundled_lib/t/libnet/hostname.t
+ ! macos/bundled_lib/t/libnet/nntp.t
+ ! macos/bundled_lib/t/libnet/require.t
+ ! macos/bundled_lib/t/libnet/smtp.t
+ ! macos/bundled_lib/t/libwww-perl/base/headers.t
+ ! macos/bundled_lib/t/libwww-perl/base/negotiate.t
+ ! macos/bundled_lib/t/libwww-perl/live/jigsaw-auth-b.t
+ ! macos/bundled_lib/t/libwww-perl/live/jigsaw-auth-d.t
+ ! macos/bundled_lib/t/libwww-perl/live/jigsaw-chunk.t
+ ! macos/bundled_lib/t/libwww-perl/live/jigsaw-md5.t
+ ! macos/bundled_lib/t/libwww-perl/live/jigsaw-te.t
+ ! macos/bundled_lib/t/libwww-perl/live/validator.t
+ ! macos/lib/Mac/AppleEvents/Simple.pm macos/lib/Mac/Glue.pm
+____________________________________________________________________________
[ 14279] By: jhi on 2002/01/15 14:43:04
Log: Subject: [PATCH] Socket::sockaddr_family
From: Gisle Aas <gisle@ActiveState.com>
@@ -2421,6 +3719,11 @@ ____________________________________________________________________________
Branch: perl
! pod/perldiag.pod
____________________________________________________________________________
+[ 14277] By: nick on 2002/01/15 14:30:51
+ Log: Correct name of PL_OP_SLAB_ALLOC
+ Branch: perlio
+ ! perl.h
+____________________________________________________________________________
[ 14276] By: jhi on 2002/01/15 14:22:38
Log: NetWare tweak from Ananth Kesari.
Branch: perl
@@ -2456,6 +3759,44 @@ ____________________________________________________________________________
Branch: perl
! lib/utf8_heavy.pl
____________________________________________________________________________
+[ 14271] By: nick on 2002/01/15 11:29:47
+ Log: Regen embed enable slab for PERL_IMPLICIT_SYS
+ Branch: perlio
+ ! embed.h embedvar.h global.sym perl.h perlapi.c perlapi.h
+ ! pod/perlapi.pod pod/perlintern.pod proto.h toke.c
+____________________________________________________________________________
+[ 14270] By: nick on 2002/01/15 08:19:08
+ Log: Integrate rest of mainline
+ Branch: perlio
+ !> (integrate 28 files)
+____________________________________________________________________________
+[ 14269] By: nick on 2002/01/15 08:02:44
+ Log: Typo in #else branch of PL_SLAB_ALLOC
+ Branch: perlio
+ ! op.c
+____________________________________________________________________________
+[ 14268] By: nick on 2002/01/15 07:57:47
+ Log: const-ness fix in savepv's passing of NULL
+ Branch: perlio
+ ! util.c
+____________________________________________________________________________
+[ 14267] By: nick on 2002/01/15 07:42:17
+ Log: Hand merge of non slab allocator stuff
+ Branch: perlio
+ ! op.c
+____________________________________________________________________________
+[ 14266] By: nick on 2002/01/15 07:39:33
+ Log: Slab allocator submit after resolve -ay to keep it!
+ Branch: perlio
+ !> op.c
+____________________________________________________________________________
+[ 14265] By: nick on 2002/01/15 07:05:06
+ Log: Blind integrate of bulk of mainline.
+ Branch: perlio
+ +> (branch 173 files)
+ - (delete 184 files)
+ !> (integrate 146 files)
+____________________________________________________________________________
[ 14264] By: jhi on 2002/01/15 04:19:11
Log: Pod nits.
Branch: perl
@@ -2493,6 +3834,35 @@ ____________________________________________________________________________
Branch: perl
! pod/perlsub.pod t/op/override.t toke.c
____________________________________________________________________________
+[ 14259] By: nick on 2002/01/14 22:02:49
+ Log: Use PerlMemShared for CopSTASHPV and CopFILE. MUCH harder than it sounds!
+ Need to use CopXXXXX macros everywhere and add CopSTASH_free
+ Add new scope type and add support for it to scope.c and scope stack
+ dup-er in sv.c. Add savesharedpv().
+ Also zealous version of Win32's vmem.h to catch all the abuses.
+ With this t/op/fork.t passes even with zealous checking and
+ checker is point a finger at various threads/shared issues.
+
+ PL_curcop->cop_io is still an issue.
+ Branch: perlio
+ ! cop.h embed.fnc embed.h embedvar.h global.sym op.c op.h perl.c
+ ! perlapi.c perlapi.h pod/perlapi.pod pod/perlintern.pod proto.h
+ ! scope.c scope.h sv.c toke.c util.c win32/config_H.vc
+ ! win32/config_h.PL win32/perlhost.h win32/perllib.c
+ ! win32/vmem.h win32/win32.c win32/win32.h
+____________________________________________________________________________
+[ 14258] By: nick on 2002/01/14 20:24:28
+ Log: Integrate build parts of mainline
+ Branch: perlio
+ !> lib/ExtUtils/MM_Unix.pm lib/ExtUtils/t/MM_Unix.t
+ !> lib/ExtUtils/t/MM_Win32.t
+____________________________________________________________________________
+[ 14257] By: nick on 2002/01/14 16:10:54
+ Log: Inverted sense of special-ness of specialCopIO - supposed to
+ be true if value is "special" i.e. NOT an SV.
+ Branch: perlio
+ ! perlio.h
+____________________________________________________________________________
[ 14256] By: jhi on 2002/01/14 14:42:12
Log: Update Changes.
Branch: perl
@@ -2542,6 +3912,15 @@ ____________________________________________________________________________
!> embed.fnc embed.h embedvar.h global.sym intrpvar.h op.c perl.h
!> perlapi.c perlapi.h proto.h
____________________________________________________________________________
+[ 14250] By: nick on 2002/01/13 23:22:34
+ Log: Slab allocator for ops
+ - moved the statics to intrpvar.h
+ - implemented Slab_Free()
+ - uses PerlMemShared (for now) if distinction exists.
+ Branch: perlio
+ ! embed.fnc embed.h embedvar.h global.sym intrpvar.h op.c perl.h
+ ! perlapi.c perlapi.h proto.h
+____________________________________________________________________________
[ 14249] By: jhi on 2002/01/13 19:55:10
Log: Start a new test category: uni. Much of t/op/pat
should probably be moved here, but holding on that
@@ -2676,6 +4055,19 @@ ____________________________________________________________________________
Branch: perl
! ext/Socket/socketpair.t
____________________________________________________________________________
+[ 14233] By: nick on 2002/01/13 16:29:30
+ Log: Integrate mainline
+ Branch: perlio
+ +> ext/B/C/C.xs ext/B/C/Makefile.PL t/op/unisprintf.t
+ !> (integrate 46 files)
+____________________________________________________________________________
+[ 14232] By: nick on 2002/01/13 15:37:48
+ Log: Win32 fixes:
+ - vmem.h hack to handle free-by-wrong-thread after eval "".
+ - Initialize timerid
+ Branch: perlio
+ ! win32/perlhost.h win32/perllib.c win32/vmem.h win32/win32.c
+____________________________________________________________________________
[ 14231] By: jhi on 2002/01/13 05:15:01
Log: *groan*
Branch: perl
@@ -2702,6 +4094,11 @@ ____________________________________________________________________________
Branch: perl
! Changes patchlevel.h
____________________________________________________________________________
+[ 14226] By: jhi on 2002/01/12 20:28:23
+ Log: metaconfig unit change for #14225.
+ Branch: metaconfig
+ + U/modified/i_ndbm.U
+____________________________________________________________________________
[ 14225] By: jhi on 2002/01/12 20:28:05
Log: Subject: [PATCH 2] Re: [PATCH Configure ext/NDBM_File/hints/linux.pl] Support for linux systems with gdbm
From: Jonathan Stowe <gellyfish@gellyfish.com>
@@ -2783,6 +4180,19 @@ ____________________________________________________________________________
Branch: perl
! ext/B/t/concise.t
____________________________________________________________________________
+[ 14214] By: nick on 2002/01/12 12:31:12
+ Log: Win32-ize socketpair test
+ - Win32 can fork even though $Config{d_fork} is undef
+ - SOCK_DGRAM does not work - skip those tests.
+ Branch: perlio
+ ! ext/Socket/socketpair.t
+____________________________________________________________________________
+[ 14213] By: nick on 2002/01/12 11:46:28
+ Log: Abstract out the cloning of SvPVX and handle shared pv in a
+ safe (if suboptimal) manner. Does not fix op/fork.t :-(
+ Branch: perlio
+ ! sv.c
+____________________________________________________________________________
[ 14212] By: ams on 2002/01/12 06:10:52
Log: Subject: [PATCH] More fixes for Stratus VOS
From: "Green, Paul" <Paul.Green@stratus.com>
@@ -2891,6 +4301,14 @@ ____________________________________________________________________________
Branch: perl
!> win32/win32.c
____________________________________________________________________________
+[ 14196] By: nick on 2002/01/11 20:58:20
+ Log: Install dummy signal() handlers for Win32's SIGINT and SIGBREAK
+ as C runtime seems to get its hands on them even though we said
+ they were handled.
+ Still an issue with "die" out of signal handler - get panic: pp_iter
+ Branch: perlio
+ ! win32/win32.c
+____________________________________________________________________________
[ 14195] By: jhi on 2002/01/11 20:07:35
Log: Integrate perlio;
A mostly-stable version of "new" Win32 signal/kill support.
@@ -2914,6 +4332,29 @@ ____________________________________________________________________________
Branch: perl
! doop.c sv.c
____________________________________________________________________________
+[ 14193] By: nick on 2002/01/11 18:25:34
+ Log: Integrate mainline (on Win32 - risky) for vmem.h stuff
+ Builds and passes a few tests.
+ Branch: perlio
+ +> ext/B/t/concise.t lib/Test/Harness/Assert.pm
+ +> lib/Test/Harness/Iterator.pm lib/Test/Harness/Straps.pm
+ +> lib/Test/Harness/t/00compile.t lib/Test/Harness/t/assert.t
+ +> lib/Test/Harness/t/callback.t lib/Test/Harness/t/nonumbers.t
+ +> lib/Test/Harness/t/strap-analyze.t lib/Test/Harness/t/strap.t
+ +> lib/Test/Simple/t/buffer.t lib/Test/Simple/t/diag.t
+ +> t/lib/sample-tests/lone_not_bug
+ +> t/lib/sample-tests/out_of_order t/lib/sample-tests/taint
+ +> t/lib/sample-tests/vms_nit
+ !> (integrate 63 files)
+____________________________________________________________________________
+[ 14192] By: nick on 2002/01/11 17:49:39
+ Log: A mostly-stable version of "new" Win32 signal/kill support.
+ Branch: perlio
+ ! XSUB.h mg.c win32/config.bc win32/config.gc win32/config.vc
+ ! win32/config_H.bc win32/config_H.gc win32/config_H.vc
+ ! win32/config_h.PL win32/makefile.mk win32/win32.c
+ ! win32/win32.h
+____________________________________________________________________________
[ 14191] By: jhi on 2002/01/11 15:34:53
Log: Update Changes.
Branch: perl
@@ -3113,6 +4554,23 @@ ____________________________________________________________________________
Branch: perl
! ext/Encode/Encode.pm
____________________________________________________________________________
+[ 14168] By: nick on 2002/01/10 17:33:31
+ Log: Integrate mainline
+ Branch: perlio
+ - ext/Unicode/Normalize/Normalize.pod
+ !> MANIFEST ext/B/B/Concise.pm ext/B/B/Deparse.pm ext/B/O.pm
+ !> ext/Unicode/Normalize/Makefile.PL
+ !> ext/Unicode/Normalize/Normalize.pm
+ !> ext/Unicode/Normalize/Normalize.xs
+ !> ext/Unicode/Normalize/mkheader hints/linux.sh pod/perlrun.pod
+ !> pod/perlunicode.pod regexec.c t/lib/strict/vars t/op/readdir.t
+ !> t/run/kill_perl.t toke.c
+____________________________________________________________________________
+[ 14167] By: nick on 2002/01/10 17:08:35
+ Log: More signal hackery
+ Branch: perlio
+ ! win32/win32.c
+____________________________________________________________________________
[ 14166] By: jhi on 2002/01/10 15:24:41
Log: I think we can claim to be supporting Unicode
"loose matching" now.
@@ -3156,6 +4614,11 @@ ____________________________________________________________________________
Branch: perl
! t/lib/strict/vars toke.c
____________________________________________________________________________
+[ 14160] By: nick on 2002/01/09 21:29:39
+ Log: Skeleton coding of more kill() support on Win32.
+ Branch: perlio
+ ! win32/win32.c
+____________________________________________________________________________
[ 14159] By: jhi on 2002/01/09 21:28:13
Log: Subject: [PATCH] B::Deparse : support for \[...] prototypes
From: Rafael Garcia-Suarez <rgarciasuarez@free.fr>
@@ -3206,11 +4669,26 @@ ____________________________________________________________________________
Branch: perl
! t/op/readdir.t
____________________________________________________________________________
+[ 14153] By: nick on 2002/01/09 16:18:57
+ Log: Integrate mainline
+ Branch: perlio
+ +> ext/threads/t/stress_re.t t/op/unifold.t
+ - lib/unifold.t
+ !> Changes MANIFEST Makefile.SH ext/B/B/Deparse.pm op.c
+ !> patchlevel.h pod/perldebug.pod regcomp.c regexec.c scope.c
+ !> t/op/pat.t t/op/re_tests t/run/kill_perl.t utf8.c
+____________________________________________________________________________
[ 14152] By: jhi on 2002/01/09 14:37:01
Log: Update Changes.
Branch: perl
! Changes patchlevel.h
____________________________________________________________________________
+[ 14151] By: nick on 2002/01/09 14:27:36
+ Log: (Re-)implement alarm() for Win32.
+ Branch: perlio
+ ! win32/config.vc win32/config_H.vc win32/win32.c win32/win32.h
+ ! win32/win32iop.h
+____________________________________________________________________________
[ 14150] By: jhi on 2002/01/09 14:27:23
Log: Thinko.
Branch: perl
@@ -3254,7 +4732,8 @@ ____________________________________________________________________________
! MANIFEST
____________________________________________________________________________
[ 14144] By: jhi on 2002/01/09 02:28:33
- Log: Subject: Re: [ID 20010912.007] substr reference core dump
+ Log: (retracted by #14307)
+ Subject: Re: [ID 20010912.007] substr reference core dump
From: Hugo van der Sanden <hv@crypt.compulink.co.uk>
Date: Tue, 08 Jan 2002 19:17:50 +0000
Message-Id: <200201081917.g08JHoE15793@crypt.compulink.co.uk>
@@ -3315,6 +4794,13 @@ ____________________________________________________________________________
Branch: perl
! regcomp.c
____________________________________________________________________________
+[ 14136] By: nick on 2002/01/08 16:11:55
+ Log: Integrate mainline
+ Branch: perlio
+ +> lib/Math/BigInt/t/mbimbf.inc lib/Math/BigInt/t/require.t
+ +> lib/Math/BigInt/t/sub_mif.t lib/Math/BigInt/t/use.t
+ !> (integrate 37 files)
+____________________________________________________________________________
[ 14135] By: jhi on 2002/01/08 15:12:38
Log: Subject: Not OK 13843
From: andreas.koenig@anima.de (Andreas J. Koenig)
@@ -3376,6 +4862,16 @@ ____________________________________________________________________________
! ext/Opcode/Opcode.xs ext/Unicode/Normalize/Normalize.xs
! ext/Unicode/Normalize/mkheader x2p/str.c
____________________________________________________________________________
+[ 14127] By: pudge on 2002/01/07 22:25:55
+ Log: Sync up Changes etc.
+ Branch: maint-5.6/macperl
+ ! macos/Changes macos/MPVersion.r macos/ext/Mac/Memory/Memory.xs
+____________________________________________________________________________
+[ 14126] By: pudge on 2002/01/07 22:23:06
+ Log: Eliminate nested calls to exit() (MacPerl bug #469132)
+ Branch: maint-5.6/macperl
+ ! macos/macperl/MPFile.c macos/macperl/MPMain.c
+____________________________________________________________________________
[ 14125] By: ams on 2002/01/07 22:03:22
Log: Subject: [PATCH] better Exporter docs (Re: [PATCH @13746] Leaner exporter)
From: Nicholas Clark (sans From field in mail header)
@@ -3392,13 +4888,21 @@ ____________________________________________________________________________
Branch: perl
! ext/Errno/Errno_pm.PL perl.h t/TEST t/test.pl vos/vosish.h
____________________________________________________________________________
+[ 14123] By: nick on 2002/01/07 18:49:55
+ Log: Integrate mainline
+ Branch: perlio
+ !> AUTHORS Changes dump.c ext/Storable/Storable.pm lib/sort.pm
+ !> patchlevel.h pod/perl561delta.pod pod/perl56delta.pod
+ !> pod/perlapi.pod pod/perldelta.pod pod/perltoc.pod regcomp.c
+ !> regexec.c t/op/re_tests utf8.c utf8.h
+____________________________________________________________________________
[ 14122] By: jhi on 2002/01/07 16:09:50
Log: Update Changes.
Branch: perl
! Changes patchlevel.h
____________________________________________________________________________
[ 14121] By: jhi on 2002/01/07 16:03:34
- Log: Subject: [PATCH] Correct module name in perldelta*
+ Log: Subject: [PATCH] Correct module name in perldelta*
From: Mike Guy <mjtg@cam.ac.uk>
Date: Mon, 07 Jan 2002 17:02:43 +0000
Message-Id: <E16NdAZ-0001SW-00@draco.cus.cam.ac.uk>
@@ -3458,6 +4962,15 @@ ____________________________________________________________________________
Branch: perl
! lib/sort.pm
____________________________________________________________________________
+[ 14110] By: nick on 2002/01/06 22:05:19
+ Log: Integrate mainline - threads mended, DB_File sick?
+ Branch: perlio
+ !> Changes ext/B/B.xs ext/B/B/C.pm ext/B/defsubs_h.PL
+ !> ext/DB_File/Changes ext/DB_File/DB_File.pm
+ !> ext/DB_File/DB_File.xs ext/DB_File/dbinfo
+ !> ext/DB_File/t/db-recno.t ext/DB_File/version.c lib/sort.pm
+ !> patchlevel.h pp_sys.c sv.c t/TEST t/op/lc.t utils/perlcc.PL
+____________________________________________________________________________
[ 14109] By: jhi on 2002/01/06 20:51:32
Log: No need to overqualify.
Branch: perl
@@ -3503,6 +5016,12 @@ ____________________________________________________________________________
Branch: perl
! t/op/lc.t
____________________________________________________________________________
+[ 14102] By: nick on 2002/01/06 11:33:55
+ Log: Integrate mainline (PPPort still multi-building).
+ Branch: perlio
+ +> lib/unifold.t
+ !> (integrate 30 files)
+____________________________________________________________________________
[ 14101] By: ams on 2002/01/06 04:52:50
Log: Subject: [PATCH] Bad prototype detection now an optional warning
From: Sam Tregar <sam@tregar.com>
@@ -3590,6 +5109,24 @@ ____________________________________________________________________________
Branch: perl
!> op.c
____________________________________________________________________________
+[ 14088] By: nick on 2002/01/05 12:35:01
+ Log: One missing aTHX_
+ Branch: perlio
+ ! op.c
+____________________________________________________________________________
+[ 14087] By: nick on 2002/01/05 12:00:48
+ Log: Raw integrate of mainline - op.c looks dodgy.
+ Branch: perlio
+ +> lib/Pod/t/Functions.t t/op/winsystem.t
+ - lib/File/Spec/NW5.pm t/op/system.t
+ !> (integrate 77 files)
+____________________________________________________________________________
+[ 14086] By: gsar on 2002/01/05 00:19:01
+ Log: integrate changes from maint-5.6/macperl branch
+ Branch: maint-5.6/perl
+ !> ext/IO/IO.xs lib/File/Find.pm lib/File/Spec/Mac.pm
+ !> lib/Pod/Html.pm pod/perlmodinstall.pod pod/perlport.pod
+____________________________________________________________________________
[ 14085] By: jhi on 2002/01/04 23:36:23
Log: In the UTF-8 branch of crypt() the extra \0 byte is required,
found by Marc Lehmann.
@@ -3626,6 +5163,23 @@ ____________________________________________________________________________
Branch: perl
!> ext/IO/IO.xs
____________________________________________________________________________
+[ 14080] By: pudge on 2002/01/04 21:21:22
+ Log: Bump version, update Changes
+ Branch: maint-5.6/macperl
+ ! macos/Changes macos/MPVersion.r
+____________________________________________________________________________
+[ 14079] By: pudge on 2002/01/04 21:09:40
+ Log: Add more droplets
+ Branch: maint-5.6/macperl
+ + macos/macperl/Droplets/gluedialect.plx
+ + macos/macperl/Droplets/glueedit.plx
+ + macos/macperl/Droplets/gluemac.plx
+ + macos/macperl/Droplets/gluescriptadds.plx
+ + macos/macperl/Droplets/installme.plx
+ + macos/macperl/Droplets/show_glue_pods.plx
+ + macos/macperl/Droplets/tarzipme.plx
+ + macos/macperl/Droplets/untarzipme.plx
+____________________________________________________________________________
[ 14078] By: jhi on 2002/01/04 21:07:05
Log: Display the native pwd command.
Branch: perl
@@ -3638,6 +5192,69 @@ ____________________________________________________________________________
Branch: perl
! t/op/stat.t
____________________________________________________________________________
+[ 14076] By: pudge on 2002/01/04 20:44:23
+ Log: First go at fixing Mac::Memory::_open (MacPerl Bug #494481)
+ Branch: maint-5.6/macperl
+ + macos/HandleSocket.cp
+ ! macos/ext/Mac/Memory/Memory.xs macos/ext/Mac/Memory/t/Memory.t
+ ! macos/macperl.sym
+____________________________________________________________________________
+[ 14075] By: pudge on 2002/01/04 20:42:06
+ Log: Doc updates
+ Branch: maint-5.6/macperl
+ ! macos/ext/MacPerl/MacPerl.pm macos/ext/MacPerl/OSA.xs
+____________________________________________________________________________
+[ 14074] By: pudge on 2002/01/04 20:41:26
+ Log: Update libraries
+ Branch: maint-5.6/macperl
+ ! macos/macperl/Makefile.mk
+____________________________________________________________________________
+[ 14073] By: pudge on 2002/01/04 20:40:11
+ Log: Update tests to Mac::StandardFile from StandardFile.pl,
+ plus other fixes
+ Branch: maint-5.6/macperl
+ ! macos/ext/Mac/Menus/t/MenuBar.t
+ ! macos/ext/Mac/Movies/t/PlayMacMovie.t
+ ! macos/ext/Mac/Movies/t/PlayMovie.t
+ ! macos/ext/Mac/QuickTimeVR/t/QTVRControl.t
+ ! macos/ext/Mac/QuickTimeVR/t/QTVRInterceptor.t
+ ! macos/ext/Mac/QuickTimeVR/t/QTVRotator.t
+ ! macos/ext/Mac/Resources/t/Resources.t
+____________________________________________________________________________
+[ 14072] By: pudge on 2002/01/04 20:37:44
+ Log: Mistakenly used dXSARGS instead of dSP (MacPerl Bug #494482)
+ Branch: maint-5.6/macperl
+ ! macos/ext/Mac/Lists/Lists.xs macos/ext/Mac/Menus/Menus.xs
+ ! macos/ext/Mac/Movies/Movies.xs
+ ! macos/ext/Mac/QuickTimeVR/QuickTimeVR.xs
+ ! macos/ext/Mac/StandardFile/StandardFile.xs
+ ! macos/ext/Mac/Windows/Windows.xs
+____________________________________________________________________________
+[ 14071] By: pudge on 2002/01/04 20:35:52
+ Log: Updates for Universal Headers 3.4 (forgot one)
+ Branch: maint-5.6/macperl
+ ! macos/macperl/MPConsole.cp
+____________________________________________________________________________
+[ 14070] By: pudge on 2002/01/04 20:32:57
+ Log: Updates for Universal Headers 3.4
+ Branch: maint-5.6/macperl
+ ! macos/SubLaunch.c macos/ext/Mac/Navigation/Navigation.xs
+ ! macos/ext/Mac/Navigation/typemap macos/macperl/MPAEUtils.c
+ ! macos/macperl/MPAEVTStream.cp macos/macperl/MPAppleEvents.c
+ ! macos/macperl/MPEditions.c macos/macperl/MPEditor.c
+ ! macos/macperl/MPFile.c macos/macperl/MPGlobals.c
+ ! macos/macperl/MPHelp.c macos/macperl/MPMain.c
+ ! macos/macperl/MPPreferences.c macos/macperl/MPPseudoFile.cp
+ ! macos/macperl/MPSave.c macos/macperl/MPScript.c
+ ! macos/macperl/MPUtils.c macos/macperl/MPWindow.c
+____________________________________________________________________________
+[ 14069] By: pudge on 2002/01/04 20:28:20
+ Log: Change AddEmulationProc to MacPerl_AddEmulationProc
+ from <200112112327.JAA25434@gpo.metropolis.net.au>;
+ don't crash on quit for 68K (MacPerl Bug #490013)
+ Branch: maint-5.6/macperl
+ ! macos/macish.c macos/macperl/MPConsole.cp
+____________________________________________________________________________
[ 14068] By: jhi on 2002/01/04 20:24:59
Log: If we do have socketpair(), make my_socketpair()
just call the real socketpair(). This way we always
@@ -3646,6 +5263,42 @@ ____________________________________________________________________________
Branch: perl
! embed.fnc embed.h makedef.pl proto.h util.c
____________________________________________________________________________
+[ 14067] By: pudge on 2002/01/04 20:19:18
+ Log: Disable sigaction (MacPerl Bug #470321)
+ Branch: maint-5.6/macperl
+ ! macos/config.h macos/config.sh
+____________________________________________________________________________
+[ 14066] By: pudge on 2002/01/04 20:16:47
+ Log: Make GUSI resource work (MacPerl Bug #464638)
+ Branch: maint-5.6/macperl
+ ! macos/PerlGUSIConfig.cp macos/macperl/MacPerl.r
+ ! macos/macperl/MacPerl.rsrc
+____________________________________________________________________________
+[ 14065] By: pudge on 2002/01/04 20:14:26
+ Log: Make AutoSplit go a little deeper
+ Branch: maint-5.6/macperl
+ ! macos/Makefile.mk
+____________________________________________________________________________
+[ 14064] By: pudge on 2002/01/04 20:13:36
+ Log: A few doc updates from bleadperl
+ Branch: maint-5.6/macperl
+ ! pod/perlmodinstall.pod pod/perlport.pod
+____________________________________________________________________________
+[ 14063] By: pudge on 2002/01/04 20:12:11
+ Log: Sync up to latest changes from bleadperl
+ Branch: maint-5.6/macperl
+ ! lib/File/Find.pm
+____________________________________________________________________________
+[ 14062] By: pudge on 2002/01/04 20:09:20
+ Log: Define setbuf, setvbuf for Mac OS
+ Branch: maint-5.6/macperl
+ ! ext/IO/IO.xs
+____________________________________________________________________________
+[ 14061] By: pudge on 2002/01/04 20:07:38
+ Log: Delete by request of Mark-Jason Dominus (change #13676)
+ Branch: maint-5.6/macperl
+ - macos/bundled_lib/blib/lib/Memoize/Saves.pm
+____________________________________________________________________________
[ 14060] By: jhi on 2002/01/04 20:06:58
Log: Spread the good word of "env".
Branch: perl
@@ -3813,6 +5466,18 @@ ____________________________________________________________________________
Branch: perl
! pod/perldiag.pod
____________________________________________________________________________
+[ 14035] By: nick on 2002/01/03 09:22:42
+ Log: More strange perlio != mainline differences where
+ I have not been.
+ Branch: perlio
+ !> hints/unicos.sh hints/unicosmk.sh
+____________________________________________________________________________
+[ 14034] By: nick on 2002/01/03 09:19:37
+ Log: Integrate mainline (including force integrate of
+ lib/charnames.pm which had got out-of-step)
+ Branch: perlio
+ !> ext/Devel/PPPort/Makefile.PL lib/charnames.pm
+____________________________________________________________________________
[ 14033] By: ams on 2002/01/03 08:24:24
Log: Subject: Not ok 14031: PPPort Makefile.PL
From: andreas.koenig@anima.de (Andreas J. Koenig)
@@ -3821,6 +5486,13 @@ ____________________________________________________________________________
Branch: perl
! ext/Devel/PPPort/Makefile.PL
____________________________________________________________________________
+[ 14032] By: nick on 2002/01/03 08:24:00
+ Log: Integrate mainline.
+ Branch: perlio
+ +> autodoc.pl embed.fnc ext/threads/shared/t/no_share.t
+ +> lib/Pod/t/man.t lib/Pod/t/text-errors.t
+ !> (integrate 31 files)
+____________________________________________________________________________
[ 14031] By: jhi on 2002/01/03 01:52:04
Log: Off-by-one is my middle name.
Branch: perl
@@ -3886,6 +5558,19 @@ ____________________________________________________________________________
Branch: perl
! lib/Cwd.pm
____________________________________________________________________________
+[ 14022] By: nick on 2002/01/02 18:01:21
+ Log: More PPPort Makefile source dependence removal
+ Branch: perlio
+ ! ext/Devel/PPPort/Makefile.PL
+____________________________________________________________________________
+[ 14021] By: nick on 2002/01/02 17:44:36
+ Log: Sort out muddle of editing on three machines ...
+ Branch: perlio
+ !> Changes MANIFEST cygwin/Makefile.SHs
+ !> ext/Devel/PPPort/Makefile.PL ext/I18N/Langinfo/Langinfo.t
+ !> ext/IO/lib/IO/Socket/INET.pm lib/Pod/t/basic.t
+ !> lib/User/grent.t patchlevel.h perl.h regcomp.c regexec.c
+____________________________________________________________________________
[ 14020] By: ams on 2002/01/02 17:06:27
Log: Fix misplaced application of #14016.
Branch: perl
@@ -3901,6 +5586,11 @@ ____________________________________________________________________________
Branch: perl
! makedepend.SH
____________________________________________________________________________
+[ 14017] By: nick on 2002/01/02 16:09:43
+ Log: Avoid un-init perl_debug_pad in clones
+ Branch: perlio
+ ! sv.c
+____________________________________________________________________________
[ 14016] By: ams on 2002/01/02 15:58:11
Log: Subject: [PATCH] random crash in B::LISTOP::last
From: "Mattia Barbon" <mbarbon@dsi.unive.it>
@@ -3937,6 +5627,11 @@ ____________________________________________________________________________
Branch: perl
! lib/Pod/Usage.pm
____________________________________________________________________________
+[ 14011] By: nick on 2002/01/02 08:38:18
+ Log: Integrate mainline
+ Branch: perlio
+ !> (integrate 28 files)
+____________________________________________________________________________
[ 14010] By: jhi on 2002/01/02 03:59:22
Log: Make ibcmp_utf8() optionally progress in either string for
as long as it takes and optionally record how far it got.
@@ -4062,6 +5757,11 @@ ____________________________________________________________________________
Branch: perl
! regexec.c t/op/pat.t utf8.c
____________________________________________________________________________
+[ 13991] By: nick on 2001/12/31 18:08:55
+ Log: Experimental binmode() re-coding (UNIX okay - but it would be...)
+ Branch: perlio
+ ! perlio.c
+____________________________________________________________________________
[ 13990] By: jhi on 2001/12/31 17:13:12
Log: Update Changes.
Branch: perl
@@ -4148,6 +5848,17 @@ ____________________________________________________________________________
Branch: perl
! ext/IO/lib/IO/Socket/INET.pm
____________________________________________________________________________
+[ 13976] By: nick on 2001/12/31 13:56:11
+ Log: Integrate mainline
+ Branch: perlio
+ !> (integrate 29 files)
+____________________________________________________________________________
+[ 13975] By: nick on 2001/12/31 12:40:50
+ Log: perlio.c cleanup - in particular avoid accidental PerlIO_flush(NULL)
+ if PerlIONext is NULL.
+ Branch: perlio
+ ! perlio.c perliol.h
+____________________________________________________________________________
[ 13974] By: jhi on 2001/12/31 04:59:53
Log: Subject: Re: [PATCH] Basic bad prototype detection
From: Sam Tregar <sam@tregar.com>
@@ -4223,6 +5934,14 @@ ____________________________________________________________________________
! lib/unicore/To/Fold.pl lib/unicore/mktables regcomp.c
! regexec.c utf8.c
____________________________________________________________________________
+[ 13962] By: nick on 2001/12/30 18:33:41
+ Log: Integrate 8.3 fix for PPPort fix
+ Branch: perlio
+ +> ext/Devel/PPPort/ppport_h.PL
+ - ext/Devel/PPPort/ppport.h.PL
+ ! ext/Devel/PPPort/MANIFEST
+ !> ext/Devel/PPPort/Makefile.PL
+____________________________________________________________________________
[ 13961] By: jhi on 2001/12/30 17:35:45
Log: Integrate perlio; more win32 stuff:
@@ -4242,6 +5961,15 @@ ____________________________________________________________________________
- ext/Devel/PPPort/ppport.h.PL
! MANIFEST ext/Devel/PPPort/Makefile.PL
____________________________________________________________________________
+[ 13959] By: nick on 2001/12/30 16:53:42
+ Log: Win32 stuff:
+ A. Use Perl_my_socketpair()
+ B. Use PerlSock_xxxx() rather than raw xxxx() so we get to load winsock.
+ C. (In passing) work round fact that $$ is now SvREADONLY so we need to
+ take special measures to set it during pseudo-fork.
+ Branch: perlio
+ ! util.c win32/perlhost.h
+____________________________________________________________________________
[ 13958] By: jhi on 2001/12/30 16:33:58
Log: Integrate perlio; win32 kicking.
Branch: perl
@@ -4250,6 +5978,11 @@ ____________________________________________________________________________
!> ext/Devel/PPPort/t/test.t ext/Errno/Errno_pm.PL global.sym
!> proto.h
____________________________________________________________________________
+[ 13957] By: jhi on 2001/12/30 16:32:33
+ Log: metaconfig unit change for #13956.
+ Branch: metaconfig
+ ! U/modified/spitshell.U
+____________________________________________________________________________
[ 13956] By: jhi on 2001/12/30 16:32:11
Log: Must look for cat also in $PATH (noticed by Philip Newton).
Branch: perl
@@ -4293,6 +6026,22 @@ ____________________________________________________________________________
Branch: perl
! win32/perlhost.h win32/vmem.h
____________________________________________________________________________
+[ 13950] By: nick on 2001/12/30 14:30:02
+ Log: Win32 hides some errno-oid constants in <winsock.h> under assumed names.
+ This gets them into Errno.pm - yet to prove they end up in $!.
+ Branch: perlio
+ ! ext/Errno/Errno_pm.PL
+____________________________________________________________________________
+[ 13949] By: nick on 2001/12/30 12:02:21
+ Log: Integrate Cwd muddle
+ Branch: perlio
+ !> MANIFEST installperl lib/Cwd.pm
+____________________________________________________________________________
+[ 13948] By: nick on 2001/12/30 11:51:40
+ Log: remove embed.pl duplicates
+ Branch: perlio
+ ! embed.h embed.pl global.sym proto.h
+____________________________________________________________________________
[ 13947] By: nick on 2001/12/30 11:35:51
Log: More Cwd tidy up
Branch: perl
@@ -4304,6 +6053,24 @@ ____________________________________________________________________________
+ lib/Cwd.pm
- ext/Cwd/Cwd.pm
____________________________________________________________________________
+[ 13945] By: nick on 2001/12/30 10:03:43
+ Log: Integrate mainline
+ Branch: perl
+ +> ext/Cwd/Cwd.pm
+ - lib/Cwd.pm
+ ! MANIFEST
+ Branch: perlio
+ !> (integrate 45 files)
+____________________________________________________________________________
+[ 13944] By: nick on 2001/12/30 09:27:16
+ Log: "Port" Devel::PPPort to Win32:
+ - need to set @INC before use in the test
+ - {} are special to dmake, so use ppport.h.PL
+ rather than commandline
+ Branch: perlio
+ + ext/Devel/PPPort/ppport.h.PL
+ ! ext/Devel/PPPort/Makefile.PL ext/Devel/PPPort/t/test.t
+____________________________________________________________________________
[ 13943] By: jhi on 2001/12/29 21:30:48
Log: Update Changes.
Branch: perl
@@ -4356,12 +6123,23 @@ ____________________________________________________________________________
! wince/win32iop.h wince/win32thread.c wince/win32thread.h
! wince/wince.c wince/wince.h wince/wincesck.c x2p/a2py.c
____________________________________________________________________________
+[ 13938] By: nick on 2001/12/29 19:23:32
+ Log: Integrate mainline (ok linux)
+ Branch: perlio
+ +> lib/ExtUtils/t/MM_Win32.t lib/Pod/t/InputObjects.t
+ !> (integrate 33 files)
+____________________________________________________________________________
[ 13937] By: jhi on 2001/12/29 18:28:36
Log: Give up on serious testing of langinfo(). Leave the old
code in place, though.
Branch: perl
! ext/I18N/Langinfo/Langinfo.t
____________________________________________________________________________
+[ 13936] By: nick on 2001/12/29 18:20:33
+ Log: Routine regen_config_h - no real differences other than order of crypt
+ Branch: perlio
+ ! win32/config_H.bc win32/config_H.gc win32/config_H.vc
+____________________________________________________________________________
[ 13935] By: jhi on 2001/12/29 17:36:08
Log: Integrate perlio;
@@ -4371,6 +6149,17 @@ ____________________________________________________________________________
Branch: perl
!> win32/FindExt.pm win32/win32.h
____________________________________________________________________________
+[ 13934] By: nick on 2001/12/29 17:27:50
+ Log: Fudge Config.pm so File::Spec does not croak.
+ Branch: perlio
+ ! win32/FindExt.pm
+____________________________________________________________________________
+[ 13933] By: jhi on 2001/12/29 17:24:45
+ Log: metaconfig unit changes for #13932.
+ Branch: metaconfig
+ + U/modified/Init.U
+ ! U/compline/nblock_io.U U/modified/Head.U U/modified/Loc.U
+____________________________________________________________________________
[ 13932] By: jhi on 2001/12/29 17:24:24
Log: VOS tweaks from Paul Green.
@@ -4382,6 +6171,12 @@ ____________________________________________________________________________
! vos/config.alpha.def vos/config.alpha.h vos/config.ga.def
! vos/config.ga.h vos/vosish.h
____________________________________________________________________________
+[ 13931] By: nick on 2001/12/29 17:00:38
+ Log: Define the two socket error numbers in terms of WSAEXXXXX equivalents
+ (just to get util.c to compile)
+ Branch: perlio
+ ! win32/win32.h
+____________________________________________________________________________
[ 13930] By: jhi on 2001/12/29 15:35:00
Log: Subject: [PATCH] Pod whitespace cleanup, round 0.
From: coral@eekeek.org
@@ -4416,6 +6211,11 @@ ____________________________________________________________________________
Branch: perl
!> embed.h embed.pl global.sym pod/perlapi.pod pp_sys.c proto.h
____________________________________________________________________________
+[ 13926] By: nick on 2001/12/29 15:23:21
+ Log: Nick Clark's embed.pl fix for my_socketpair
+ Branch: perlio
+ ! embed.h embed.pl global.sym pod/perlapi.pod proto.h
+____________________________________________________________________________
[ 13925] By: jhi on 2001/12/29 15:21:53
Log: Slight tweaks on the MM_Win32.t.
Branch: perl
@@ -4430,6 +6230,12 @@ ____________________________________________________________________________
+ lib/ExtUtils/t/MM_Win32.t
! MANIFEST
____________________________________________________________________________
+[ 13923] By: nick on 2001/12/29 15:12:07
+ Log: Quick fix (after couple of clever fixes failed) for
+ "accept leaks memory" fail [ID 20011223.001]
+ Branch: perlio
+ ! pp_sys.c
+____________________________________________________________________________
[ 13922] By: jhi on 2001/12/29 15:09:00
Log: Subject: [PATCH] Module names and other nits
From: Autrijus Tang <autrijus@autrijus.org>
@@ -4447,6 +6253,17 @@ ____________________________________________________________________________
Branch: perl
! ext/Socket/socketpair.t util.c
____________________________________________________________________________
+[ 13920] By: nick on 2001/12/29 12:36:21
+ Log: Integrate mainline
+ Branch: perlio
+ !> Changes Configure doop.c ext/B/B.pm ext/IO/lib/IO/t/io_dir.t
+ !> ext/POSIX/POSIX.xs ext/Socket/socketpair.t
+ !> lib/ExtUtils/MM_Unix.pm lib/ExtUtils/MM_VMS.pm
+ !> lib/ExtUtils/t/Embed.t lib/ExtUtils/t/MM_Cygwin.t
+ !> lib/warnings.t patchlevel.h pod/perlfunc.pod pod/perlport.pod
+ !> pod/perluniintro.pod t/base/rs.t t/cmd/subval.t t/io/fflush.t
+ !> t/op/sysio.t
+____________________________________________________________________________
[ 13919] By: jhi on 2001/12/28 17:01:39
Log: Retract #13917.
Branch: perl
@@ -4465,6 +6282,11 @@ ____________________________________________________________________________
Branch: perl
! doop.c
____________________________________________________________________________
+[ 13916] By: jhi on 2001/12/28 01:17:04
+ Log: metaconfig unit change for #13915.
+ Branch: metaconfig/U/perl
+ ! d_u32align.U
+____________________________________________________________________________
[ 13915] By: jhi on 2001/12/28 01:16:45
Log: Remove debris in any case.
Branch: perl
@@ -4501,6 +6323,11 @@ ____________________________________________________________________________
Branch: perl
! ext/POSIX/POSIX.xs
____________________________________________________________________________
+[ 13909] By: jhi on 2001/12/27 14:15:49
+ Log: metaconfig unit change for #13908.
+ Branch: metaconfig/U/perl
+ ! d_u32align.U
+____________________________________________________________________________
[ 13908] By: jhi on 2001/12/27 14:15:27
Log: Try to catch the SIGBUS, as suggested by Nicholas Clark.
Branch: perl
@@ -4578,6 +6405,13 @@ ____________________________________________________________________________
Branch: perl
! lib/ExtUtils/t/MM_Cygwin.t
____________________________________________________________________________
+[ 13900] By: nick on 2001/12/27 11:11:51
+ Log: Integrate mainline
+ Branch: perlio
+ +> ext/Socket/socketpair.t lib/File/Spec/Cygwin.pm
+ +> lib/File/Spec/NW5.pm
+ !> (integrate 52 files)
+____________________________________________________________________________
[ 13899] By: jhi on 2001/12/26 21:30:13
Log: Replace the awful (most likely generated and not very persistent)
URL with something tangible.
@@ -4652,6 +6486,11 @@ ____________________________________________________________________________
! lib/Net/Ping/t/140_stream_inst.t lib/Net/Ping/t/200_ping_tcp.t
! lib/Net/Ping/t/300_ping_stream.t
____________________________________________________________________________
+[ 13889] By: jhi on 2001/12/26 17:19:18
+ Log: metaconfig unit change for #13888.
+ Branch: metaconfig
+ ! U/modified/Oldconfig.U
+____________________________________________________________________________
[ 13888] By: jhi on 2001/12/26 17:18:59
Log: test -d /system is a bit too generic test for VOS
(false hit in BeOS)
@@ -4724,6 +6563,11 @@ ____________________________________________________________________________
Branch: perl
! t/op/pat.t
____________________________________________________________________________
+[ 13878] By: jhi on 2001/12/24 17:16:10
+ Log: metaconfig unit change for #13877.
+ Branch: metaconfig
+ ! U/modified/Unix.U
+____________________________________________________________________________
[ 13877] By: jhi on 2001/12/24 17:13:53
Log: No-op.
Branch: perl
@@ -4766,6 +6610,11 @@ ____________________________________________________________________________
Branch: perl
! taint.c
____________________________________________________________________________
+[ 13870] By: jhi on 2001/12/24 01:14:52
+ Log: metaconfig unit change for #13869.
+ Branch: metaconfig/U/perl
+ ! d_u32align.U
+____________________________________________________________________________
[ 13869] By: jhi on 2001/12/24 01:14:06
Log: The U32 alignment test wasn't really working, noticed
by Paul Green. Now the test works, but this means that
@@ -4774,6 +6623,12 @@ ____________________________________________________________________________
Branch: perl
! Configure
____________________________________________________________________________
+[ 13868] By: jhi on 2001/12/23 23:46:54
+ Log: metaconfig unit changes for #13867.
+ Branch: metaconfig
+ ! U/compline/nblock_io.U U/modified/Unix.U
+ ! U/modified/spitshell.U
+____________________________________________________________________________
[ 13867] By: jhi on 2001/12/23 23:46:18
Log: More VOS tweaks.
Branch: perl
@@ -4859,6 +6714,28 @@ ____________________________________________________________________________
Branch: perl
! regexec.c t/op/pat.t
____________________________________________________________________________
+[ 13854] By: nick on 2001/12/22 20:01:27
+ Log: Win32 and makedef.pl fall-out of PerlIO/pTHX stuff
+ Branch: perlio
+ ! makedef.pl perlio.h perlio.sym win32/win32.c
+____________________________________________________________________________
+[ 13853] By: nick on 2001/12/22 19:58:53
+ Log: Put PerlIO stuff inside EXTERN C
+ Branch: perlio
+ ! embed.pl proto.h
+____________________________________________________________________________
+[ 13852] By: nick on 2001/12/22 18:04:34
+ Log: Add at least the "important" PerlIO_xxxx functions to embed.pl
+ so that they get implicit pTHX_ and we can avoid slow dTHX.
+ Branch: perlio
+ ! embed.h embed.pl ext/IO/IO.xs global.sym globals.c perlio.c
+ ! perlio.h pod/perlapi.pod proto.h
+____________________________________________________________________________
+[ 13851] By: jhi on 2001/12/22 17:42:10
+ Log: metaconfig unit change for #13850.
+ Branch: metaconfig
+ ! U/modified/Loc.U
+____________________________________________________________________________
[ 13850] By: jhi on 2001/12/22 17:41:40
Log: Rework the make logic (again).
Branch: perl
@@ -4873,6 +6750,34 @@ ____________________________________________________________________________
! regexec.c
!> ext/POSIX/POSIX.pm perlio.c sv.c
____________________________________________________________________________
+[ 13848] By: nick on 2001/12/22 15:11:17
+ Log: The CR at EOF fix earlier broke CR at end-of-buffer.
+ This should be okay for both?
+ Branch: perlio
+ ! perlio.c
+____________________________________________________________________________
+[ 13847] By: nick on 2001/12/22 12:26:32
+ Log: Correct checking code which Ilya spotted was tripped by CR at EOF.
+ Also tone down perl -DP tracing of sv_gets.
+ Branch: perlio
+ ! perlio.c sv.c
+____________________________________________________________________________
+[ 13846] By: nick on 2001/12/22 10:49:27
+ Log: Fix mis-parse of autoloaded usage code by declaring the sub
+ Branch: perlio
+ ! ext/POSIX/POSIX.pm
+____________________________________________________________________________
+[ 13845] By: nick on 2001/12/22 10:44:11
+ Log: Integrate mainline - some fails:
+ Failed Test Stat Wstat Total Fail Failed List of Failed
+ -------------------------------------------------------------------------------
+ ../ext/POSIX/t/posix.t 255 65280 38 9 23.68% 30-38
+ ../lib/encoding.t 19 2 10.53% 17-18
+ op/pat.t 770 3 0.39% 754-755 757
+ Branch: perlio
+ +> ext/re/re.t lib/ExtUtils/t/MM_OS2.t
+ !> (integrate 36 files)
+____________________________________________________________________________
[ 13844] By: jhi on 2001/12/22 04:27:46
Log: More Unicode casing fixes.
Branch: perl
@@ -4928,6 +6833,12 @@ ____________________________________________________________________________
Branch: perl
! pod/perltie.pod
____________________________________________________________________________
+[ 13836] By: jhi on 2001/12/21 19:47:52
+ Log: metaconfig unit changes for #13835
+ Branch: metaconfig
+ ! U/modified/Head.U U/modified/Loc.U U/modified/Unix.U
+ ! U/modified/sh.U
+____________________________________________________________________________
[ 13835] By: jhi on 2001/12/21 19:47:03
Log: Further VOS tweaks: the _exe needs to be introduced
in the very beginning, and the make/gmake needs special
@@ -4940,6 +6851,11 @@ ____________________________________________________________________________
Branch: perl
! Changes patchlevel.h
____________________________________________________________________________
+[ 13833] By: jhi on 2001/12/21 14:46:45
+ Log: metaconfig unit change for #13832.
+ Branch: metaconfig
+ ! U/modified/spitshell.U
+____________________________________________________________________________
[ 13832] By: jhi on 2001/12/21 14:46:24
Log: Also the search for cat needs to be _exe-aware.
Branch: perl
@@ -5058,6 +6974,26 @@ ____________________________________________________________________________
Branch: perl
! lib/Carp.t lib/Carp/Heavy.pm
____________________________________________________________________________
+[ 13815] By: nick on 2001/12/20 10:23:42
+ Log: pTHX_ fixes for :win32 layer
+ Branch: perlio
+ ! win32/win32io.c
+____________________________________________________________________________
+[ 13814] By: nick on 2001/12/20 08:20:11
+ Log: Integrate mainline (mostly) utf8.c does not compile.
+ Branch: perlio
+ +> lib/Net/Ping/CHANGES lib/Net/Ping/README
+ +> lib/Net/Ping/t/100_load.t lib/Net/Ping/t/110_icmp_inst.t
+ +> lib/Net/Ping/t/120_udp_inst.t lib/Net/Ping/t/130_tcp_inst.t
+ +> lib/Net/Ping/t/140_stream_inst.t lib/Net/Ping/t/200_ping_tcp.t
+ +> lib/Net/Ping/t/300_ping_stream.t
+ !> Changes MANIFEST embed.h embed.pl embedvar.h
+ !> ext/B/B/Assembler.pm lib/English.t lib/ExtUtils/t/Embed.t
+ !> lib/File/stat.t lib/Net/Ping.pm lib/Shell.t os2/Makefile.SHs
+ !> os2/OS2/REXX/DLL/Makefile.PL os2/os2.c os2/perlrexx.c
+ !> patchlevel.h perlapi.h pod/perlfunc.pod pod/perlre.pod pp.c
+ !> proto.h t/op/alarm.t thrdvar.h util.c wince/perldll.def
+____________________________________________________________________________
[ 13813] By: jhi on 2001/12/19 21:29:49
Log: Some bincompat clawbacks.
Branch: perl
@@ -5093,6 +7029,13 @@ ____________________________________________________________________________
!> ext/Encode/Encode.xs ext/PerlIO/Scalar/Scalar.xs
!> ext/PerlIO/Via/Via.xs perlio.c perliol.h
____________________________________________________________________________
+[ 13808] By: nick on 2001/12/19 16:08:27
+ Log: Add pTHX to all vtable functions for future-proofing and
+ consistency of PerlIO layers.
+ Branch: perlio
+ ! ext/Encode/Encode.xs ext/PerlIO/Scalar/Scalar.xs
+ ! ext/PerlIO/Via/Via.xs perlio.c perliol.h
+____________________________________________________________________________
[ 13807] By: jhi on 2001/12/19 15:59:02
Log: One more embedded (?sx) de-embedded, from Wolfgang Laun.
Branch: perl
@@ -5125,6 +7068,13 @@ ____________________________________________________________________________
+ lib/Net/Ping/t/300_ping_stream.t
! MANIFEST lib/Net/Ping.pm
____________________________________________________________________________
+[ 13803] By: nick on 2001/12/19 14:43:24
+ Log: Integrate mainline
+ Branch: perlio
+ +> ext/B/t/assembler.t lib/lib.t
+ !> MANIFEST ext/B/B/Assembler.pm ext/B/B/Disassembler.pm
+ !> lib/lib_pm.PL t/op/glob.t utf8.c
+____________________________________________________________________________
[ 13802] By: jhi on 2001/12/19 14:25:27
Log: B::Assembler/B::Disassembler patches and test;
from Wolfgang Laun.
@@ -5163,6 +7113,35 @@ ____________________________________________________________________________
Branch: perl
!> hv.c hv.h scope.c util.c
____________________________________________________________________________
+[ 13797] By: nick on 2001/12/19 12:03:21
+ Log: Remove the sometimes-lvalue cast
+ Branch: perlio
+ ! hv.h
+____________________________________________________________________________
+[ 13796] By: nick on 2001/12/19 11:02:27
+ Log: alarm.t with -Uuseperlio fix
+ - SA_RESTART should only be function of PERL_OLD_SIGNALS
+ not USE_PERLIO
+ Branch: perlio
+ ! util.c
+____________________________________________________________________________
+[ 13795] By: nick on 2001/12/19 10:19:40
+ Log: Fix READONLY hashes:
+ 1. Discovered need for disabled scope.c part of Jeff's patch.
+ 2. Corrected hv_delete* - entry was being de-linked from
+ chain (patch program not smart enough?)
+ Branch: perlio
+ ! hv.c scope.c
+____________________________________________________________________________
+[ 13794] By: nick on 2001/12/19 09:35:13
+ Log: Integrate mainline
+ Branch: perlio
+ !> Configure Porting/checkURL.pl config_h.SH dump.c hints/vos.sh
+ !> lib/Benchmark.t lib/Exporter.pm lib/ExtUtils/t/MM_Unix.t
+ !> lib/utf8.t pod/perlfaq5.pod pod/perltoc.pod
+ !> pod/perlunicode.pod pod/perluniintro.pod pp.c sv.c
+ !> t/lib/warnings/utf8 utf8.c x2p/a2p.h x2p/str.c
+____________________________________________________________________________
[ 13793] By: jhi on 2001/12/19 04:58:51
Log: Regen toc.
Branch: perl
@@ -5223,6 +7202,11 @@ ____________________________________________________________________________
Branch: perl
! Porting/checkURL.pl
____________________________________________________________________________
+[ 13784] By: jhi on 2001/12/19 01:05:25
+ Log: metaconfig unit change for #13783.
+ Branch: metaconfig
+ ! U/modified/Loc.U
+____________________________________________________________________________
[ 13783] By: jhi on 2001/12/19 00:26:34
Log: A bit too oversweeping matching in #13778.
Branch: perl
@@ -5233,6 +7217,94 @@ ____________________________________________________________________________
Branch: perl
! Configure config_h.SH
____________________________________________________________________________
+[ 13781] By: jhi on 2001/12/18 23:59:59
+ Log: First assume that crypt() can live happy normal life in
+ the libc or the moral equivalent; only then try magic.
+ Branch: metaconfig
+ + U/modified/d_crypt.U
+____________________________________________________________________________
+[ 13780] By: jhi on 2001/12/18 23:52:03
+ Log: In VOS ACLs confuse the testing.
+ Branch: metaconfig
+ ! U/modified/Findhdr.U
+____________________________________________________________________________
+[ 13779] By: jhi on 2001/12/18 23:47:39
+ Log: Either make or gmake.
+ Branch: metaconfig
+ ! U/modified/Loc.U
+____________________________________________________________________________
+[ 13778] By: jhi on 2001/12/18 23:44:56
+ Log: If your _exe is different from .exe and your test -f $foo
+ doesn't do magic to recognize $foo$_exe, you will need to
+ specify -D_exe=... on command line-- and this patch.
+ Branch: metaconfig
+ + U/modified/sh.U
+ ! U/modified/Loc.U
+____________________________________________________________________________
+[ 13777] By: jhi on 2001/12/18 23:28:37
+ Log: Fix the bugs in #13768..13776, and regen Configure.
+ Branch: metaconfig
+ ! U/compline/nblock_io.U U/modified/Findhdr.U
+ ! U/modified/spitshell.U
+ Branch: metaconfig/U/perl
+ ! issymlink.U perlpath.U
+ Branch: perl
+ ! Configure config_h.SH
+____________________________________________________________________________
+[ 13776] By: jhi on 2001/12/18 23:02:42
+ Log: Must test with $_exe. (There are plenty of similar
+ spots earlier but they are a tad more complex to fix
+ since they come before the hints are run.)
+ Branch: metaconfig
+ + U/modified/yacc.U
+____________________________________________________________________________
+[ 13775] By: jhi on 2001/12/18 22:59:04
+ Log: F_SETFL might require <fcntl.h>
+ Branch: metaconfig
+ ! U/compline/nblock_io.U
+____________________________________________________________________________
+[ 13774] By: jhi on 2001/12/18 22:53:41
+ Log: Don't require make; have both make and gmake optional.
+ (Maybe have a check that at least one of them is available?)
+ Branch: metaconfig
+ ! U/modified/Loc.U
+____________________________________________________________________________
+[ 13773] By: jhi on 2001/12/18 22:49:56
+ Log: cat might be farther than /bin or /usr/bin.
+ Branch: metaconfig
+ ! U/modified/spitshell.U
+____________________________________________________________________________
+[ 13772] By: jhi on 2001/12/18 22:44:45
+ Log: In VOS the path component separator is >, not /.
+ Branch: metaconfig
+ ! U/modified/Findhdr.U
+____________________________________________________________________________
+[ 13771] By: jhi on 2001/12/18 22:35:40
+ Log: The VOS shell doesn't implement the ? wildcard
+ (? is used for other purposes, I assume); but
+ it does implement the * wildcard, and that works
+ in the general case just fine.
+ Branch: metaconfig/U/perl
+ ! d_dlsymun.U
+____________________________________________________________________________
+[ 13770] By: jhi on 2001/12/18 22:28:41
+ Log: VOS detection.
+ Branch: metaconfig
+ ! U/modified/Oldconfig.U
+____________________________________________________________________________
+[ 13769] By: jhi on 2001/12/18 22:23:25
+ Log: Proper path for VOS.
+ Branch: metaconfig
+ ! U/modified/Head.U
+____________________________________________________________________________
+[ 13768] By: jhi on 2001/12/18 22:21:00
+ Log: Change s/>& 4/>&4/g for consistency.
+ Branch: metaconfig
+ + U/modified/d_dosuid.U
+ ! U/modified/d_socket.U
+ Branch: metaconfig/U/perl
+ ! issymlink.U perlxvf.U
+____________________________________________________________________________
[ 13767] By: jhi on 2001/12/18 22:13:14
Log: Subject: Re: Benchmark.t failure on Linux
From: Nicholas Clark <nick@ccl4.org>
@@ -5280,6 +7352,13 @@ ____________________________________________________________________________
Branch: perl
!> ext/Devel/Peek/Peek.t hv.c hv.h scope.c sv.c t/lib/access.t
____________________________________________________________________________
+[ 13760] By: nick on 2001/12/18 15:55:22
+ Log: Tidied version of Jeffrey Friedl's <jfriedl@yahoo.com> restricted hashes
+ - added delete of READONLY value inhibit & test for same
+ - re-tabbed
+ Branch: perlio
+ ! ext/Devel/Peek/Peek.t hv.c hv.h scope.c sv.c t/lib/access.t
+____________________________________________________________________________
[ 13759] By: jhi on 2001/12/18 15:54:19
Log: (Undone by #13766.)
Retract #13752.
@@ -5296,6 +7375,22 @@ ____________________________________________________________________________
Branch: perl
! lib/utf8.t utf8.c
____________________________________________________________________________
+[ 13756] By: nick on 2001/12/18 14:43:58
+ Log: Integrate mainline
+ Branch: perlio
+ +> lib/ExtUtils/t/Command.t lib/ExtUtils/t/Embed.t
+ +> lib/ExtUtils/t/ExtUtils.t lib/ExtUtils/t/Installed.t
+ +> lib/ExtUtils/t/MM_Cygwin.t lib/ExtUtils/t/MM_Unix.t
+ +> lib/ExtUtils/t/MM_VMS.t lib/ExtUtils/t/Manifest.t
+ +> lib/ExtUtils/t/Mkbootstrap.t lib/ExtUtils/t/Packlist.t
+ +> lib/ExtUtils/t/testlib.t t/op/alarm.t
+ - lib/ExtUtils.t lib/ExtUtils/Command.t lib/ExtUtils/Embed.t
+ - lib/ExtUtils/Installed.t lib/ExtUtils/MM_Cygwin.t
+ - lib/ExtUtils/MM_VMS.t lib/ExtUtils/Manifest.t
+ - lib/ExtUtils/Mkbootstrap.t lib/ExtUtils/Packlist.t
+ - lib/ExtUtils/testlib.t
+ !> (integrate 28 files)
+____________________________________________________________________________
[ 13755] By: jhi on 2001/12/18 14:05:26
Log: README.aix updates from Jens-Uwe Mager.
Branch: perl
@@ -5539,6 +7634,19 @@ ____________________________________________________________________________
Branch: perl
!> util.c
____________________________________________________________________________
+[ 13724] By: nick on 2001/12/17 09:16:50
+ Log: Fix for alarm() breaking into wait*().
+ Call PERL_ASYNC_CHECK() on EINTR in Perl_wait4pid(), to dispatch
+ signal handler before caller re-does the system call.
+ Branch: perlio
+ ! util.c
+____________________________________________________________________________
+[ 13723] By: nick on 2001/12/17 07:45:13
+ Log: Integrate mainline
+ Branch: perlio
+ +> (branch 26 files)
+ !> (integrate 47 files)
+____________________________________________________________________________
[ 13722] By: jhi on 2001/12/16 16:12:57
Log: Disallow also Unicode ranges 0xFDD0..0xFDEF and
0xFFFE..0xFFFF. Ranges 0x...FFFE..0x...FFFF in general,
@@ -5813,6 +7921,13 @@ ____________________________________________________________________________
+ lib/Attribute/Handlers/t/multi.t
! MANIFEST pod/perldelta.pod pod/perlmodlib.pod pod/perltoc.pod
____________________________________________________________________________
+[ 13685] By: nick on 2001/12/14 15:57:00
+ Log: Integrate mainline
+ Branch: perlio
+ +> t/run/switcht.t
+ !> MANIFEST embedvar.h intrpvar.h lib/Test/Harness.pm perl.c
+ !> perlapi.h pod/perlrun.pod t/TEST taint.c
+____________________________________________________________________________
[ 13684] By: jhi on 2001/12/14 14:43:40
Log: Subject: [PATCH taint.c intrpvar.h perl.c ...] -t taint warnings
From: Michael G Schwern <schwern@pobox.com>
@@ -5827,6 +7942,30 @@ ____________________________________________________________________________
! MANIFEST embedvar.h intrpvar.h lib/Test/Harness.pm perl.c
! perlapi.h pod/perlrun.pod t/TEST taint.c
____________________________________________________________________________
+[ 13683] By: nick on 2001/12/14 12:29:41
+ Log: Integrate mainline
+ Branch: perlio
+ +> beos/beos.c beos/beosish.h ext/POSIX/t/waitpid.t
+ +> lib/Term/ReadLine.t t/op/hashassign.t
+ - lib/Attribute/Handlers.pm lib/Attribute/Handlers/Changes
+ - lib/Attribute/Handlers/README
+ - lib/Attribute/Handlers/demo/Demo.pm
+ - lib/Attribute/Handlers/demo/Descriptions.pm
+ - lib/Attribute/Handlers/demo/MyClass.pm
+ - lib/Attribute/Handlers/demo/demo.pl
+ - lib/Attribute/Handlers/demo/demo2.pl
+ - lib/Attribute/Handlers/demo/demo3.pl
+ - lib/Attribute/Handlers/demo/demo4.pl
+ - lib/Attribute/Handlers/demo/demo_call.pl
+ - lib/Attribute/Handlers/demo/demo_chain.pl
+ - lib/Attribute/Handlers/demo/demo_cycle.pl
+ - lib/Attribute/Handlers/demo/demo_hashdir.pl
+ - lib/Attribute/Handlers/demo/demo_phases.pl
+ - lib/Attribute/Handlers/demo/demo_range.pl
+ - lib/Attribute/Handlers/demo/demo_rawdata.pl
+ - lib/Attribute/Handlers/t/multi.t lib/Memoize/Saves.pm
+ !> (integrate 101 files)
+____________________________________________________________________________
[ 13682] By: jhi on 2001/12/14 04:10:37
Log: Detypo.
Branch: perl
@@ -5993,6 +8132,11 @@ ____________________________________________________________________________
Branch: perl
! perlio.c regcomp.c taint.c toke.c
____________________________________________________________________________
+[ 13658] By: jhi on 2001/12/12 14:09:09
+ Log: metaconfig unit change for #13657.
+ Branch: metaconfig
+ ! U/modified/nis.U
+____________________________________________________________________________
[ 13657] By: jhi on 2001/12/12 14:08:49
Log: Try YP/NIS also from /usr/lib/yp.
Branch: perl
@@ -6139,6 +8283,11 @@ ____________________________________________________________________________
Branch: perl
! configure.com
____________________________________________________________________________
+[ 13633] By: jhi on 2001/12/11 21:48:57
+ Log: metaconfig unit change for #13632.
+ Branch: metaconfig/U/perl
+ ! perlpath.U
+____________________________________________________________________________
[ 13632] By: jhi on 2001/12/11 21:48:26
Log: Subject: $Config{perlpath} and -Dversiononly
From: Rafael Garcia-Suarez <rgarciasuarez@free.fr>
@@ -6233,6 +8382,11 @@ ____________________________________________________________________________
Branch: perl
! perlio.c
____________________________________________________________________________
+[ 13618] By: jhi on 2001/12/11 05:22:39
+ Log: metaconfig unit change for #13617.
+ Branch: metaconfig/U/perl
+ ! Extensions.U
+____________________________________________________________________________
[ 13617] By: jhi on 2001/12/11 05:22:08
Log: BeOS has socket() but not enough to build a working Socket.
Go figure. ("BONE" (BeOS NEtworking?) is some sort of rumored
@@ -6243,6 +8397,32 @@ ____________________________________________________________________________
Branch: perl
! Configure
____________________________________________________________________________
+[ 13616] By: pudge on 2001/12/11 05:11:44
+ Log: Update changes
+ Branch: maint-5.6/macperl
+ ! macos/Changes
+____________________________________________________________________________
+[ 13615] By: pudge on 2001/12/11 05:09:34
+ Log: Add extra pod to help
+ Branch: maint-5.6/macperl
+ ! macos/macperl/MacPerl.podhelp
+____________________________________________________________________________
+[ 13614] By: pudge on 2001/12/11 05:08:51
+ Log: Return DoAppleScript errors in $@
+ Branch: maint-5.6/macperl
+ ! macos/ext/MacPerl/OSA.xs
+____________________________________________________________________________
+[ 13613] By: pudge on 2001/12/11 05:08:19
+ Log: Clear out $^E before each script run
+ Branch: maint-5.6/macperl
+ ! macos/macperl/MPScript.c
+____________________________________________________________________________
+[ 13612] By: pudge on 2001/12/11 04:58:52
+ Log: Integrate various changes from maint-5.6/perl/.
+ Branch: maint-5.6/macperl
+ !> op.c pp.c pp_hot.c t/io/pipe.t t/op/cmp.t t/op/misc.t
+ !> t/op/system_tests util.c win32/perlhost.h win32/win32.c
+____________________________________________________________________________
[ 13611] By: jhi on 2001/12/11 04:29:32
Log: Subject: Exporter's documentation shouldn't lie
From: "Benjamin J. Tilly" <ben_tilly@operamail.com>
@@ -6452,6 +8632,18 @@ ____________________________________________________________________________
Branch: perl
! hints/netbsd.sh
____________________________________________________________________________
+[ 13584] By: gsar on 2001/12/10 02:04:58
+ Log: restrict change#13474 to eval"" CVs instead of any CV (avoids
+ potential performance hit and change in semantics of closure
+ lookups after C<undef &foo>)
+ Branch: maint-5.6/perl
+ ! op.c
+____________________________________________________________________________
+[ 13583] By: jhi on 2001/12/10 02:01:49
+ Log: metaconfig unit change for #13582.
+ Branch: metaconfig
+ ! U/threads/usethreads.U
+____________________________________________________________________________
[ 13582] By: jhi on 2001/12/10 02:01:26
Log: Update the ithreads selection info in Configure,
as suggested by Michael Schwern.
@@ -6575,6 +8767,11 @@ ____________________________________________________________________________
Branch: perl
! hints/netbsd.sh
____________________________________________________________________________
+[ 13562] By: jhi on 2001/12/09 20:31:38
+ Log: metaconfig unit changes for #13560.
+ Branch: metaconfig/U/perl
+ ! dlsrc.U i_ieeefp.U libperl.U
+____________________________________________________________________________
[ 13561] By: jhi on 2001/12/09 20:31:14
Log: NetBSD has <ieeefp.h> but hidden.
Branch: perl
@@ -6992,7 +9189,7 @@ ____________________________________________________________________________
! t/lib/Math/BigFloat/Subclass.pm t/lib/Math/BigInt/Subclass.pm
____________________________________________________________________________
[ 13504] By: jhi on 2001/12/07 00:56:58
- Log: Mention also perl56delta in case somone is upgrading from
+ Log: Mention also perl56delta in case someone is upgrading from
Perl 5.005_03.
Branch: perl
! pod/perldelta.pod
@@ -7668,7 +9865,9 @@ ____________________________________________________________________________
! doio.c
____________________________________________________________________________
[ 13408] By: jhi on 2001/12/01 18:18:34
- Log: If we are inside an eval, let's be silent about
+ Log: (replaced by #13556)
+
+ If we are inside an eval, let's be silent about
separate symbols and just croak() in the end.
Branch: perl
! lib/Exporter/Heavy.pm
@@ -8772,7 +10971,7 @@ ____________________________________________________________________________
____________________________________________________________________________
[ 13251] By: jhi on 2001/11/25 02:48:04
Log: In the MakeMaker pm_to_blib target don't copy all
- the files in one fell swppo, deal with them hunkwise,
+ the files in one fell swoop, deal with them hunkwise,
helps for CLIs with limited line lengths.
(This seems to help for DJGPP building Encode,
where there are dozens of files to copy.)
@@ -9026,7 +11225,7 @@ ____________________________________________________________________________
! d_procselfexe.U
____________________________________________________________________________
[ 13213] By: jhi on 2001/11/23 18:31:13
- Log: Add probing for BSD-like /proc/curpoc/file.
+ Log: Add probing for BSD-like /proc/curproc/file.
Branch: perl
! Configure config_h.SH
____________________________________________________________________________
@@ -10143,7 +12342,7 @@ ____________________________________________________________________________
! MANIFEST pod/buildtoc.PL pod/perl.pod pod/perltoc.pod
____________________________________________________________________________
[ 13046] By: jhi on 2001/11/16 14:14:38
- Log: Document the negated lookeahead trick to emulate
+ Log: Document the negated lookahead trick to emulate
character class subtraction.
Branch: perl
! pod/perlunicode.pod
@@ -15698,7 +17897,7 @@ ____________________________________________________________________________
Log: Fixes obscure bug that manifests itself by.
local $!=0;undef*STDOUT;#segfaults
Has been around for a while. Possible other magic IO vars are
- possibly affected aswell. Reported by Jos Boumans.
+ possibly affected as well. Reported by Jos Boumans.
Branch: perl
! mg.c
____________________________________________________________________________
@@ -24341,7 +26540,7 @@ ____________________________________________________________________________
[ 11115] By: jhi on 2001/07/02 23:06:27
Log: Whitespace allowed at the ends of /lib/syscalls.exp lines
(from Richard Hatch) (this was the cause of pipes() and
- times() myeteriously not being found)
+ times() mysteriously not being found)
Branch: perl
! Configure
____________________________________________________________________________
@@ -25864,7 +28063,7 @@ ____________________________________________________________________________
Message-ID: <20010624173240.A16293@blackstar.co.uk>
Document (well, mention) shortmess() and longmess()
- to rob people of their fun of reinventing the weel.
+ to rob people of their fun of reinventing the wheel.
Branch: perl
! lib/Carp.pm
____________________________________________________________________________
@@ -27189,7 +29388,7 @@ ____________________________________________________________________________
! ext/DynaLoader/DynaLoader_pm.PL
____________________________________________________________________________
[ 10714] By: jhi on 2001/06/19 10:48:19
- Log: Revert #10656 for perfomance reasons but leave in the
+ Log: Revert #10656 for performance reasons but leave in the
use of Hv*() macros -- in comments, so that grepping the
source is easier, from Abhijit. (Also add the ENV_HV_NAME speedup
suggested by Sarathy, also by Abhijit.)
@@ -30035,7 +32234,7 @@ ____________________________________________________________________________
! perlio.c
____________________________________________________________________________
[ 10345] By: nick on 2001/05/31 10:01:57
- Log: Conditionaly put back some "unused" dTHX which are used
+ Log: Conditionally put back some "unused" dTHX which are used
with PERL_IMPLICIT_SYS
Branch: perlio
! perlio.c
@@ -35524,7 +37723,7 @@ ____________________________________________________________________________
! hints/hpux.sh
____________________________________________________________________________
[ 9595] By: gsar on 2001/04/06 14:57:17
- Log: add a low-impact fix to accomodate darwin-ism
+ Log: add a low-impact fix to accommodate darwin-ism
Branch: maint-5.6/perl
! ext/Errno/Errno_pm.PL
____________________________________________________________________________
@@ -36204,7 +38403,7 @@ ____________________________________________________________________________
! README.win32
____________________________________________________________________________
[ 9510] By: jhi on 2001/04/01 20:45:10
- Log: An ambiguosity warning.
+ Log: An ambiguousity warning.
Branch: perl
! t/lib/trig.t
____________________________________________________________________________
@@ -38540,7 +40739,7 @@ ____________________________________________________________________________
- Add some more macros to comprehend different shift amounts and
possible swizzle in UTF-EBCDIC vs UTF-8. Change utf8.c to use them.
- add utfebcdic.h which provides UTF-EBCDIC versions of the macros,
- and conditionaly #include it.
+ and conditionally #include it.
EBCDIC build as yet untested. ASCII still fails the one test.
Branch: perlio
@@ -39631,7 +41830,7 @@ ____________________________________________________________________________
Log: Long-standing "defined but not used" SvPVbyte*() are about to get used
for auto-downgrade hooks in gethostbyaddr() etc. (as per Camel-III).
- Make SvPVbyte*() symetric with respect to SvPVutf8*() in that:
+ Make SvPVbyte*() symmetric with respect to SvPVutf8*() in that:
- it does a sv_utf8_downgrade (c.f. SvPVutf8's sv_utf8_upgrade())
- uses SvPV() rather than sv_2pv() in case it isn't a string.
Branch: perlio
@@ -40609,7 +42808,7 @@ ____________________________________________________________________________
[ 8930] By: jhi on 2001/02/25 17:25:47
Log: (Retracted by #8395.)
- Attempt to fix the EBCDIC character range problwm with //.
+ Attempt to fix the EBCDIC character range problem with //.
Branch: perl
! regcomp.c
____________________________________________________________________________
@@ -42241,7 +44440,7 @@ ____________________________________________________________________________
! perl.c
____________________________________________________________________________
[ 8720] By: bailey on 2001/02/08 20:59:22
- Log: Convert frwite()s to sockets to write()s, since some socket stacks
+ Log: Convert fwrite()s to sockets to write()s, since some socket stacks
don't take kindly to stdio.
Ignore "expected" SS$_NOLOGNAM when doing internal LNM lookups
(for often optional LNMs)
@@ -44075,7 +46274,7 @@ ____________________________________________________________________________
____________________________________________________________________________
[ 8522] By: jhi on 2001/01/23 13:51:28
Log: print() instead of warn() so that stderr doesn't get
- unncessarily polluted.
+ unnecessarily polluted.
Branch: perl
! ext/Encode/compile
____________________________________________________________________________
@@ -44223,7 +46422,7 @@ ____________________________________________________________________________
Message-Id: <200101192101.QAA11911@spotter.yi.org>
Date: Fri, 19 Jan 2001 16:01:13 -0500
- with a nit from Philip Netwon.
+ with a nit from Philip Newton.
Branch: perl
! pod/perlfaq2.pod
____________________________________________________________________________
@@ -44751,7 +46950,7 @@ ____________________________________________________________________________
I can use pack"U0a*" but it requires more typing and has
runtime overhead.
- Fix pp_regcomp bug uncovered by "0x00-0xff always produce bytes"
- change, the bug apears if a pm has PMdf_UTF8 flag but interpolated
+ change, the bug appears if a pm has PMdf_UTF8 flag but interpolated
string is not UTF8_on and has char 0x80-0xff.
TODO: document and test qu.
@@ -45310,7 +47509,7 @@ ____________________________________________________________________________
Date: Sun, 7 Jan 2001 03:16:55 +0200 (EET)
Message-ID: <14935.50055.838449.408835@ix.netsoft.ro>
- No need for the potentially unportable $SIG{CHLD}.
+ No need for the potentially nonportable $SIG{CHLD}.
Branch: perl
! t/io/pipe.t
____________________________________________________________________________
@@ -45636,7 +47835,7 @@ ____________________________________________________________________________
! INSTALL ext/NDBM_File/NDBM_File.xs ext/ODBM_File/ODBM_File.xs
____________________________________________________________________________
[ 8319] By: jhi on 2001/01/04 20:46:17
- Log: Typo in #8312 when manually appying a problematic patch fragment.
+ Log: Typo in #8312 when manually applying a problematic patch fragment.
Branch: perl
! ext/Storable/Storable.xs
____________________________________________________________________________
@@ -51429,7 +53628,7 @@ ____________________________________________________________________________
[ 7853] By: nick on 2000/11/24 22:24:33
Log: Re-arrange crlf vs binary for platforms that care.
crlf layer is now "the" buffer layer and can turn its behaviour on/off.
- Lip-service to making stdio layer work on such platfroms (untested).
+ Lip-service to making stdio layer work on such platforms (untested).
Now fails 3 tests rather than one, checkin to see if I can debug
the issue under linux. (Do not merge.)
Branch: perlio
@@ -58277,7 +60476,7 @@ ____________________________________________________________________________
! regexec.c sv.c toke.c utf8.c
____________________________________________________________________________
[ 7095] By: nick on 2000/09/15 16:55:59
- Log: Mutliplicity & ithreads fix for sv.c/Encode.xs
+ Log: Multiplicity & ithreads fix for sv.c/Encode.xs
Subject: [ID 20000915.004] Not OK: perl v5.7.1 +devel-7094 on alpha-dec_osf-thread-multi 4.0f (UNINSTALLED)
From: Spider Boardman <spider@Orb.Nashua.NH.US>
@@ -58349,7 +60548,7 @@ ____________________________________________________________________________
____________________________________________________________________________
[ 7084] By: jhi on 2000/09/14 20:03:34
Log: UTF8-encoded version of 256 is 0xc4 0x80; test that a char is
- convertable to bytes by checking it doesn't go above 0xc3
+ convertible to bytes by checking it doesn't go above 0xc3
Subject: Re: perl@7078
From: Simon Cozens <simon@cozens.net>
@@ -59131,7 +61330,7 @@ ____________________________________________________________________________
____________________________________________________________________________
[ 6981] By: nick on 2000/09/01 17:21:57
Log: Document UNTIE. Also tweak implementation to suppress the 'inner references'
- warning when UNTIE exists and instead pass the cound of extra references to
+ warning when UNTIE exists and instead pass the count of extra references to
the UNTIE method.
Branch: perl
! pod/perltie.pod pp_sys.c
@@ -63013,8 +65212,8 @@ ____________________________________________________________________________
Message-Id: <20000721043729.30081.qmail@othersideofthe.earth.li>
Exercise for the kind reader: should we or should we not
- cache the utf8 conversion alonside the SV? (as magic,
- as thestrxfrm()ed version is cached under use locale)
+ cache the utf8 conversion alongside the SV? (as magic,
+ as the strxfrm()ed version is cached under use locale)
Argue both for and against.
Branch: perl
! sv.c
@@ -64180,7 +66379,7 @@ ____________________________________________________________________________
____________________________________________________________________________
[ 6319] By: jhi on 2000/07/06 03:11:46
Log: Autogenerate pod/Makefile and pod/buildtoc.
- buildtoc also checks whether the existin pods are
+ buildtoc also checks whether the existing pods are
mentioned in MANIFEST and perl.pod, and vice versa.
(None of the thusly found discrepancies fixed yet.)
roffitall also needs to be autogenerated similarly but it
@@ -66069,7 +68268,7 @@ ____________________________________________________________________________
! pod/perlop.pod
____________________________________________________________________________
[ 6047] By: jhi on 2000/05/02 17:41:24
- Log: Call getspnam() only iff needd.
+ Log: Call getspnam() only iff needed.
Branch: cfgperl
! pp_sys.c
____________________________________________________________________________
@@ -66470,7 +68669,7 @@ ____________________________________________________________________________
! Configure
____________________________________________________________________________
[ 5979] By: gsar on 2000/04/28 03:07:54
- Log: under useithreads, constant pad entries could inadvertantly be
+ Log: under useithreads, constant pad entries could inadvertently be
shared across threads (from Eric Blood <eblood@xmission.com>);
added Eric's test case to testsuite
Branch: perl
diff --git a/MANIFEST b/MANIFEST
index 5154679b5c..b922e729f9 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -1105,22 +1105,31 @@ lib/lib.t For "use lib" testing
lib/lib_pm.PL For "use lib", produces lib/lib.pm
lib/locale.pm For "use locale"
lib/locale.t See if locale support works
+lib/Locale/Codes/ChangeLog Locale::Codes
+lib/Locale/Codes/README Locale::Codes
lib/Locale/Codes/t/all.t See if Locale::Codes work
lib/Locale/Codes/t/constants.t See if Locale::Codes work
lib/Locale/Codes/t/country.t See if Locale::Codes work
lib/Locale/Codes/t/currency.t See if Locale::Codes work
lib/Locale/Codes/t/languages.t See if Locale::Codes work
+lib/Locale/Codes/t/script.t See if Locale::Codes work
lib/Locale/Codes/t/uk.t See if Locale::Codes work
lib/Locale/Constants.pm Locale::Codes
+lib/Locale/Constants.pod Locale::Codes documentation
lib/Locale/Country.pm Locale::Codes
+lib/Locale/Country.pod Locale::Codes documentation
lib/Locale/Currency.pm Locale::Codes
+lib/Locale/Currency.pod Locale::Codes documentation
lib/Locale/Language.pm Locale::Codes
+lib/Locale/Language.pod Locale::Codes documentation
lib/Locale/Maketext.pm Locale::Maketext
lib/Locale/Maketext.pod Locale::Maketext documentation
lib/Locale/Maketext/ChangeLog Locale::Maketext
lib/Locale/Maketext/README Locale::Maketext
lib/Locale/Maketext/test.pl See if Locale::Maketext works
lib/Locale/Maketext/TPJ13.pod Locale::Maketext documentation article
+lib/Locale/Script.pm Locale::Codes
+lib/Locale/Script.pod Locale::Codes documentation
lib/look.pl A "look" equivalent
lib/Math/BigFloat.pm An arbitrary precision floating-point arithmetic package
lib/Math/BigInt.pm An arbitrary precision integer arithmetic package
@@ -2405,8 +2414,12 @@ t/run/switchx.t Test the -x switch
t/TEST The regression tester
t/test.pl Simple testing library
t/TestInit.pm Preamble library for core tests
+t/uni/case.pl See if Unicode casing works
t/uni/fold.t See if Unicode folding works
+t/uni/lower.t See if Unicode casing works
t/uni/sprintf.t See if Unicode sprintf works
+t/uni/title.t See if Unicode casing works
+t/uni/upper.t See if Unicode casing works
taint.c Tainting code
thrdvar.h Per-thread variables
thread.h Threading header
diff --git a/README.os390 b/README.os390
index 3011ad63fe..eaf8f4d4ce 100644
--- a/README.os390
+++ b/README.os390
@@ -39,6 +39,13 @@ to extract an ASCII tar archive on OS/390, try this:
pax -o to=IBM-1047,from=ISO8859-1 -r < latest.tar
+If you get errors of the form
+
+ tar: FSUM7171 ...: cannot set uid/gid: EDC5139I Operation not permitted.
+ tar: FSUM7148 cannot create file "...": EDC5111I Permission denied.
+
+you didn't read the above and tried to use tar instead of pax.
+
=head2 Setup and utilities for Perl on OS/390
Be sure that your yacc installation is in place including any necessary
diff --git a/doio.c b/doio.c
index 395553d1e8..eeb97203f5 100644
--- a/doio.c
+++ b/doio.c
@@ -572,8 +572,6 @@ Perl_do_openn(pTHX_ GV *gv, register char *name, I32 len, int as_raw,
}
}
if (savefd != fd) {
- Pid_t pid;
- SV *sv;
/* Still a small can-of-worms here if (say) PerlIO::Scalar
is assigned to (say) STDOUT - for now let dup2() fail
and provide the error
@@ -584,22 +582,35 @@ Perl_do_openn(pTHX_ GV *gv, register char *name, I32 len, int as_raw,
}
#ifdef VMS
if (savefd != PerlIO_fileno(PerlIO_stdin())) {
- char newname[FILENAME_MAX+1];
- if (PerlIO_getname(fp, newname)) {
- if (fd == PerlIO_fileno(PerlIO_stdout())) Perl_vmssetuserlnm(aTHX_ "SYS$OUTPUT", newname);
- if (fd == PerlIO_fileno(PerlIO_stderr())) Perl_vmssetuserlnm(aTHX_ "SYS$ERROR", newname);
- }
+ char newname[FILENAME_MAX+1];
+ if (PerlIO_getname(fp, newname)) {
+ if (fd == PerlIO_fileno(PerlIO_stdout()))
+ Perl_vmssetuserlnm(aTHX_ "SYS$OUTPUT", newname);
+ if (fd == PerlIO_fileno(PerlIO_stderr()))
+ Perl_vmssetuserlnm(aTHX_ "SYS$ERROR", newname);
+ }
}
#endif
- LOCK_FDPID_MUTEX;
- sv = *av_fetch(PL_fdpid,fd,TRUE);
- (void)SvUPGRADE(sv, SVt_IV);
- pid = SvIVX(sv);
- SvIVX(sv) = 0;
- sv = *av_fetch(PL_fdpid,savefd,TRUE);
- UNLOCK_FDPID_MUTEX;
- (void)SvUPGRADE(sv, SVt_IV);
- SvIVX(sv) = pid;
+
+#if !defined(WIN32)
+ /* PL_fdpid isn't used on Windows, so avoid this useless work.
+ * XXX Probably the same for a lot of other places. */
+ {
+ Pid_t pid;
+ SV *sv;
+
+ LOCK_FDPID_MUTEX;
+ sv = *av_fetch(PL_fdpid,fd,TRUE);
+ (void)SvUPGRADE(sv, SVt_IV);
+ pid = SvIVX(sv);
+ SvIVX(sv) = 0;
+ sv = *av_fetch(PL_fdpid,savefd,TRUE);
+ (void)SvUPGRADE(sv, SVt_IV);
+ SvIVX(sv) = pid;
+ UNLOCK_FDPID_MUTEX;
+ }
+#endif
+
if (was_fdopen) {
/* need to close fp without closing underlying fd */
int ofd = PerlIO_fileno(fp);
diff --git a/ext/Encode/lib/Encode/JP/JIS.pm b/ext/Encode/lib/Encode/JP/JIS.pm
index 6ee3c84549..394a7e62d3 100644
--- a/ext/Encode/lib/Encode/JP/JIS.pm
+++ b/ext/Encode/lib/Encode/JP/JIS.pm
@@ -2,6 +2,8 @@ package Encode::JP::JIS;
use Encode::JP;
use base 'Encode::Encoding';
+use strict;
+
# Just for the time being, we implement jis-7bit
# encoding via EUC
@@ -14,7 +16,7 @@ sub decode
my ($obj,$str,$chk) = @_;
my $res = $str;
jis_euc(\$res);
- return Encode::decode('euc-jp', $euc, $chk);
+ return Encode::decode('euc-jp', $res, $chk);
}
sub encode
diff --git a/ext/Encode/t/JP.t b/ext/Encode/t/JP.t
index e9799dab11..2e38936773 100644
--- a/ext/Encode/t/JP.t
+++ b/ext/Encode/t/JP.t
@@ -1,11 +1,15 @@
BEGIN {
-# chdir 't' if -d 't';
-# @INC = (-d '../../lib' ? '../lib';
+ chdir 't' if -d 't';
+ @INC = '../lib';
require Config; import Config;
if ($Config{'extensions'} !~ /\bEncode\b/) {
print "1..0 # Skip: Encode was not built\n";
exit 0;
}
+ unless (find PerlIO::Layer 'perlio') {
+ print "1..0 # Skip: PerlIO was not built\n";
+ exit 0;
+ }
$| = 1;
}
use strict;
@@ -23,9 +27,9 @@ ok($enc->isa('Encode::XS'));
is($enc->name,'euc-jp');
my $dir = dirname(__FILE__);
my $euc = File::Spec->catfile($dir,"table.euc");
-my $utf = File::Spec->catfile($dir,"table.utf8");
+my $utf = File::Spec->catfile($dir,"$$.utf8");
my $ref = File::Spec->catfile($dir,"table.ref");
-my $rnd = File::Spec->catfile($dir,"table.rnd");
+my $rnd = File::Spec->catfile($dir,"$$.rnd");
print "# Basic decode test\n";
open($src,"<",$euc) || die "Cannot open $euc:$!";
ok(defined($src) && fileno($src));
@@ -92,6 +96,5 @@ SKIP:
is($enc->name,'euc-jp');
END {
-# unlink($utf,$rnd);
-
+ 1 while unlink($utf,$rnd);
}
diff --git a/ext/IO/lib/IO/Poll.pm b/ext/IO/lib/IO/Poll.pm
index 70a3469edb..89b89d4d13 100644
--- a/ext/IO/lib/IO/Poll.pm
+++ b/ext/IO/lib/IO/Poll.pm
@@ -13,7 +13,7 @@ use Exporter ();
our(@ISA, @EXPORT_OK, @EXPORT, $VERSION);
@ISA = qw(Exporter);
-$VERSION = "0.05";
+$VERSION = "0.06";
@EXPORT = qw( POLLIN
POLLOUT
@@ -53,9 +53,13 @@ sub mask {
$self->[1]{$fd} = 0; # output mask
$self->[2]{$io} = $io; # remember handle
} else {
- delete $self->[0]{$fd}{$io};
- delete $self->[1]{$fd} unless %{$self->[0]{$fd}};
- delete $self->[2]{$io};
+ delete $self->[0]{$fd}{$io};
+ unless(%{$self->[0]{$fd}}) {
+ # We no longer have any handles for this FD
+ delete $self->[1]{$fd};
+ delete $self->[0]{$fd};
+ }
+ delete $self->[2]{$io};
}
}
diff --git a/ext/IO/lib/IO/t/io_poll.t b/ext/IO/lib/IO/t/io_poll.t
index f987d9905f..d1c5caa19d 100755
--- a/ext/IO/lib/IO/t/io_poll.t
+++ b/ext/IO/lib/IO/t/io_poll.t
@@ -15,7 +15,7 @@ if ($^O eq 'mpeix') {
select(STDERR); $| = 1;
select(STDOUT); $| = 1;
-print "1..9\n";
+print "1..10\n";
use IO::Handle;
use IO::Poll qw(/POLL/);
@@ -80,3 +80,11 @@ $poll->remove($dupout);
print "not "
if $poll->handles;
print "ok 9\n";
+
+my $stdin = \*STDIN;
+$poll->mask($stdin => POLLIN);
+$poll->remove($stdin);
+close STDIN;
+print "not "
+ if $poll->poll(0.1);
+print "ok 10\n";
diff --git a/gv.c b/gv.c
index 90d415276c..a67b36f786 100644
--- a/gv.c
+++ b/gv.c
@@ -498,7 +498,8 @@ S_require_errno(pTHX_ GV *gv)
PUTBACK;
ENTER;
save_scalar(gv); /* keep the value of $! */
- require_pv("Errno.pm");
+ Perl_load_module(aTHX_ PERL_LOADMOD_NOIMPORT,
+ newSVpvn("Errno",5), Nullsv);
LEAVE;
SPAGAIN;
stash = gv_stashpvn("Errno",5,FALSE);
diff --git a/lib/Locale/Codes/ChangeLog b/lib/Locale/Codes/ChangeLog
new file mode 100644
index 0000000000..639e6319b3
--- /dev/null
+++ b/lib/Locale/Codes/ChangeLog
@@ -0,0 +1,94 @@
+
+ ChangeLog for Locale-Codes Distribution
+
+2.01 2002-02-18 neilb
+
+ * Split the documentation for all modules into separate pod files.
+ * Made sure all =over were =over 4; some were other values.
+ * The code2code() methods had one more shift than was needed.
+
+2.00 2002-02-17 neilb
+
+ * Created Locale::Script which provides an interface to the
+ ISO codes for identification of scripts (writing scripts,
+ rather than perl style scripts). The codes are defined
+ by ISO 15924, which is currently in final draft.
+ Thanks to Jarkko for pointing out this new standard.
+ All three code sets are supported, and a test-suite added.
+
+ * Added support for country name variants to Locale::Country,
+ so that
+ country2code('USA')
+ country2code('United States')
+ country2code('United States of America')
+ will all return 'us'.
+ This had been in the LIMITATIONS section since the first version.
+ Patch from TJ Mather <tjmather@tjmather.com> with additional
+ variants from me. Added test-cases for these.
+
+ * Added VERSION to Locale::Constants. Thanks to Jarkko for
+ pointing that it was missing.
+
+ * Should really have bumped major version with previous release,
+ since there was a change to the API.
+
+1.06 2001-03-04 neilb
+
+ Added Locale::Constants, which defines three symbols
+ for identifying which codeset is being used:
+
+ LOCALE_CODE_ALPHA_2
+ LOCALE_CODE_ALPHA_3
+ LOCALE_CODE_NUMERIC
+
+ Updated Locale::Country to support all three code sets
+ defined by ISO 3166. This was requested by Keith Wall.
+ I haven't added multiple codeset support to the other
+ modules yet - I'll wait until someone asks for them.
+
+1.05 Feb 2001
+
+ Added Locale::Currency, contribution from Michael Hennecke.
+ Added testsuite for it (t/currency.t) and added testcases
+ to t/all.t for the all_* functions.
+
+1.04 Dec 2000
+
+ Fixed very minor typos from 1.03!
+
+1.03 Dec 2000
+
+ Updated Locale::Country:
+ - fixed spelling of a few countries
+ - added link to a relevant page from CIA world factbook
+
+ Updated Locale::Language:
+ - fixed typo in the documentation (ISO 939 should be 639)
+
+1.02 May 2000
+
+ Updated Locale::Country and Locale::Language to reflect changes
+ in the relevant ISO standards. These mainly reflect languages
+ which are new to the relevant standard, and changes in the
+ spelling of some country names.
+
+ Added official URLs for the standards to the SEE ALSO sections
+ of the doc for each module.
+
+ Thanks to Jarkko Hietaniemi for pointing me at the pages
+ with latest versions of ISO 3166 and 639.
+
+1.00 March 1998
+
+ Added Locale::Country::_alias_code() so that 'uk' can be added
+ as the code for "United Kingdom", if you want it.
+ This was prompted by Ed Jordan <ed@chronos.net>
+
+ Added a new testsuite for handling this case, and extended the
+ existing test-suite to include testing of the case where
+ 'uk' hasn't been defined as a valid code.
+
+0.003 May 1997
+
+ First public release to CPAN
+
diff --git a/lib/Locale/Codes/README b/lib/Locale/Codes/README
new file mode 100644
index 0000000000..917b2c5b02
--- /dev/null
+++ b/lib/Locale/Codes/README
@@ -0,0 +1,47 @@
+
+ Locale-Codes Distribution
+ v2.01
+
+This distribution contains four Perl modules which can be used to process
+ISO codes for identifying languages, countries, scripts,
+and currencies & funds.
+
+ Locale::Language
+ Two letter codes for language identification (ISO 639).
+ For example, 'en' is the code for 'English'.
+
+ Locale::Country
+ Codes for country identification (ISO 3166). This module
+ supports the three different code sets defined by the
+ standard: alpha-2, alpha-3, and numeric codes.
+ For example, 'bo' is the code for 'Bolivia'.
+
+ Locale::Currency
+ Three letter codes for currency and fund identification (ISO 4217).
+ For example, 'sek' is the code for 'Swedish Krona'.
+
+ Locale::Script
+ Codes for script identification (ISO 15924). This module supports
+ the three different code sets defined by the standard:
+ alpha-2, alpha-3, and numeric codes.
+
+To install these modules, you should just have to run the following:
+
+ % perl Makefile.PL
+ % make
+ % make test
+ % make install
+
+The modules are documented using pod. When you "make install", you
+will get four man-pages: Locale::Language, Locale::Country,
+Locale::Currency, Locale::Script.
+
+The first version of Locale::Currency was written by Michael Hennecke,
+with modifications for inclusion by me. Kudos to Michael.
+
+Please let me know if you experience any problems with these modules,
+or have any ideas for additions.
+
+
+Neil Bowers
+<neil@bowers.com>
diff --git a/lib/Locale/Codes/t/all.t b/lib/Locale/Codes/t/all.t
index ed93c5a856..6c751aacaa 100644
--- a/lib/Locale/Codes/t/all.t
+++ b/lib/Locale/Codes/t/all.t
@@ -4,6 +4,7 @@
# Locale::Country
# Locale::Language
# Locale::Currency
+# Locale::Script
#
# There are four tests. We get a list of all codes, convert to
# language/country/currency, # convert back to code,
@@ -19,8 +20,9 @@ BEGIN {
use Locale::Country;
use Locale::Language;
use Locale::Currency;
+use Locale::Script;
-print "1..12\n";
+print "1..20\n";
my $code;
my $language;
@@ -28,6 +30,7 @@ my $country;
my $ok;
my $reverse;
my $currency;
+my $script;
#-----------------------------------------------------------------------
@@ -364,3 +367,219 @@ foreach $currency (all_currency_names())
}
}
print ($ok ? "ok 12\n" : "not ok 12\n");
+
+#=======================================================================
+#
+# Locale::Script tests
+#
+#=======================================================================
+
+#-----------------------------------------------------------------------
+# Old API - without codeset specified, default to ALPHA_2
+#-----------------------------------------------------------------------
+$ok = 1;
+foreach $code (all_script_codes())
+{
+ $script = code2script($code);
+ if (!defined $script)
+ {
+ $ok = 0;
+ last;
+ }
+ $reverse = script2code($script);
+ if (!defined $reverse)
+ {
+ $ok = 0;
+ last;
+ }
+ if ($reverse ne $code)
+ {
+ $ok = 0;
+ last;
+ }
+}
+print ($ok ? "ok 13\n" : "not ok 13\n");
+
+#-----------------------------------------------------------------------
+# code to script, back to code, for ALPHA2
+#-----------------------------------------------------------------------
+$ok = 1;
+foreach $code (all_script_codes(LOCALE_CODE_ALPHA_2))
+{
+ $script = code2script($code, LOCALE_CODE_ALPHA_2);
+ if (!defined $script)
+ {
+ $ok = 0;
+ last;
+ }
+ $reverse = script2code($script, LOCALE_CODE_ALPHA_2);
+ if (!defined $reverse)
+ {
+ $ok = 0;
+ last;
+ }
+ if ($reverse ne $code)
+ {
+ $ok = 0;
+ last;
+ }
+}
+print ($ok ? "ok 14\n" : "not ok 14\n");
+
+#-----------------------------------------------------------------------
+# code to script, back to code, for ALPHA3
+#-----------------------------------------------------------------------
+$ok = 1;
+foreach $code (all_script_codes(LOCALE_CODE_ALPHA_3))
+{
+ $script = code2script($code, LOCALE_CODE_ALPHA_3);
+ if (!defined $script)
+ {
+ $ok = 0;
+ last;
+ }
+ $reverse = script2code($script, LOCALE_CODE_ALPHA_3);
+ if (!defined $reverse)
+ {
+ $ok = 0;
+ last;
+ }
+ if ($reverse ne $code)
+ {
+ $ok = 0;
+ last;
+ }
+}
+print ($ok ? "ok 15\n" : "not ok 15\n");
+
+#-----------------------------------------------------------------------
+# code to script, back to code, for NUMERIC
+#-----------------------------------------------------------------------
+$ok = 1;
+foreach $code (all_script_codes(LOCALE_CODE_NUMERIC))
+{
+ $script = code2script($code, LOCALE_CODE_NUMERIC);
+ if (!defined $script)
+ {
+ $ok = 0;
+ last;
+ }
+ $reverse = script2code($script, LOCALE_CODE_NUMERIC);
+ if (!defined $reverse)
+ {
+ $ok = 0;
+ last;
+ }
+ if ($reverse ne $code)
+ {
+ $ok = 0;
+ last;
+ }
+}
+print ($ok ? "ok 16\n" : "not ok 16\n");
+
+
+#-----------------------------------------------------------------------
+# Old API - script to code, back to script, using default of ALPHA_2
+#-----------------------------------------------------------------------
+$ok = 1;
+foreach $script (all_script_names())
+{
+ $code = script2code($script);
+ if (!defined $code)
+ {
+ $ok = 0;
+ last;
+ }
+ $reverse = code2script($code);
+ if (!defined $reverse)
+ {
+ $ok = 0;
+ last;
+ }
+ if ($reverse ne $script)
+ {
+ $ok = 0;
+ last;
+ }
+}
+print ($ok ? "ok 17\n" : "not ok 17\n");
+
+#-----------------------------------------------------------------------
+# script to code, back to script, using LOCALE_CODE_ALPHA_2
+#-----------------------------------------------------------------------
+$ok = 1;
+foreach $script (all_script_names())
+{
+ $code = script2code($script, LOCALE_CODE_ALPHA_2);
+ if (!defined $code)
+ {
+ $ok = 0;
+ last;
+ }
+ $reverse = code2script($code, LOCALE_CODE_ALPHA_2);
+ if (!defined $reverse)
+ {
+ $ok = 0;
+ last;
+ }
+ if ($reverse ne $script)
+ {
+ $ok = 0;
+ last;
+ }
+}
+print ($ok ? "ok 18\n" : "not ok 18\n");
+
+#-----------------------------------------------------------------------
+# script to code, back to script, using LOCALE_CODE_ALPHA_3
+#-----------------------------------------------------------------------
+$ok = 1;
+foreach $script (all_script_names())
+{
+ $code = script2code($script, LOCALE_CODE_ALPHA_3);
+ if (!defined $code)
+ {
+ $ok = 0;
+ last;
+ }
+ $reverse = code2script($code, LOCALE_CODE_ALPHA_3);
+ if (!defined $reverse)
+ {
+ $ok = 0;
+ last;
+ }
+ if ($reverse ne $script)
+ {
+ $ok = 0;
+ last;
+ }
+}
+print ($ok ? "ok 19\n" : "not ok 19\n");
+
+#-----------------------------------------------------------------------
+# script to code, back to script, using LOCALE_CODE_NUMERIC
+#-----------------------------------------------------------------------
+$ok = 1;
+foreach $script (all_script_names())
+{
+ $code = script2code($script, LOCALE_CODE_NUMERIC);
+ if (!defined $code)
+ {
+ $ok = 0;
+ last;
+ }
+ $reverse = code2script($code, LOCALE_CODE_NUMERIC);
+ if (!defined $reverse)
+ {
+ $ok = 0;
+ last;
+ }
+ if ($reverse ne $script)
+ {
+ $ok = 0;
+ last;
+ }
+}
+print ($ok ? "ok 20\n" : "not ok 20\n");
+
diff --git a/lib/Locale/Codes/t/country.t b/lib/Locale/Codes/t/country.t
index 4234d1e6a7..0953da1e8a 100644
--- a/lib/Locale/Codes/t/country.t
+++ b/lib/Locale/Codes/t/country.t
@@ -60,13 +60,23 @@ use Locale::Country;
['!defined country2code("Banana")', 0], # illegal country name
#---- some successful examples -----------------------------------------
- ['country2code("japan") eq "jp"', 0],
- ['country2code("japan") ne "ja"', 0],
- ['country2code("Japan") eq "jp"', 0],
- ['country2code("United States") eq "us"', 0],
- ['country2code("United Kingdom") eq "gb"', 0],
- ['country2code("Andorra") eq "ad"', 0], # first in DATA segment
- ['country2code("Zimbabwe") eq "zw"', 0], # last in DATA segment
+ ['country2code("japan") eq "jp"', 0],
+ ['country2code("japan") ne "ja"', 0],
+ ['country2code("Japan") eq "jp"', 0],
+ ['country2code("United States") eq "us"', 0],
+ ['country2code("United Kingdom") eq "gb"', 0],
+ ['country2code("Andorra") eq "ad"', 0], # first in DATA
+ ['country2code("Zimbabwe") eq "zw"', 0], # last in DATA
+ ['country2code("Iran") eq "ir"', 0], # alias
+ ['country2code("North Korea") eq "kp"', 0], # alias
+ ['country2code("South Korea") eq "kr"', 0], # alias
+ ['country2code("Libya") eq "ly"', 0], # alias
+ ['country2code("Syria") eq "sy"', 0], # alias
+ ['country2code("Svalbard") eq "sj"', 0], # alias
+ ['country2code("Jan Mayen") eq "sj"', 0], # alias
+ ['country2code("USA") eq "us"', 0], # alias
+ ['country2code("United States of America") eq "us"', 0], # alias
+ ['country2code("Great Britain") eq "gb"', 0], # alias
#================================================
# TESTS FOR country_code2code
diff --git a/lib/Locale/Codes/t/script.t b/lib/Locale/Codes/t/script.t
new file mode 100644
index 0000000000..989b778f82
--- /dev/null
+++ b/lib/Locale/Codes/t/script.t
@@ -0,0 +1,106 @@
+#!./perl
+#
+# script.t - tests for Locale::Script
+#
+
+use Locale::Script;
+
+#-----------------------------------------------------------------------
+# This is an array of tests specs. Each spec is [TEST, OK_TO_DIE]
+# Each TEST is eval'd as an expression.
+# If it evaluates to FALSE, then "not ok N" is printed for the test,
+# otherwise "ok N". If the eval dies, then the OK_TO_DIE flag is checked.
+# If it is true (1), the test is treated as passing, otherwise it failed.
+#-----------------------------------------------------------------------
+@TESTS =
+(
+ #================================================
+ # TESTS FOR code2script
+ #================================================
+
+ #---- selection of examples which should all result in undef -----------
+ ['!defined code2script()', 0], # no argument
+ ['!defined code2script(undef)', 0], # undef argument
+ ['!defined code2script("aa")', 0], # illegal code
+ ['!defined code2script("aa", LOCALE_CODE_ALPHA_2)', 0], # illegal code
+ ['!defined code2script("aa", LOCALE_CODE_ALPHA_3)', 0], # illegal code
+ ['!defined code2script("aa", LOCALE_CODE_NUMERIC)', 0], # illegal code
+
+ #---- some successful examples -----------------------------------------
+ ['code2script("BO") eq "Tibetan"', 0],
+ ['code2script("Bo") eq "Tibetan"', 0],
+ ['code2script("bo") eq "Tibetan"', 0],
+ ['code2script("bo", LOCALE_CODE_ALPHA_2) eq "Tibetan"', 0],
+ ['code2script("bod", LOCALE_CODE_ALPHA_3) eq "Tibetan"', 0],
+ ['code2script("330", LOCALE_CODE_NUMERIC) eq "Tibetan"', 0],
+
+ ['code2script("yi", LOCALE_CODE_ALPHA_2) eq "Yi"', 0], # last in DATA
+ ['code2script("Yii", LOCALE_CODE_ALPHA_3) eq "Yi"', 0],
+ ['code2script("460", LOCALE_CODE_NUMERIC) eq "Yi"', 0],
+
+ ['code2script("am") eq "Aramaic"', 0], # first in DATA segment
+
+
+ #================================================
+ # TESTS FOR script2code
+ #================================================
+
+ #---- selection of examples which should all result in undef -----------
+ ['!defined code2script("BO", LOCALE_CODE_ALPHA_3)', 0],
+ ['!defined code2script("BO", LOCALE_CODE_NUMERIC)', 0],
+ ['!defined script2code()', 0], # no argument
+ ['!defined script2code(undef)', 0], # undef argument
+ ['!defined script2code("Banana")', 0], # illegal script name
+
+ #---- some successful examples -----------------------------------------
+ ['script2code("meroitic") eq "me"', 0],
+ ['script2code("burmese") eq "my"', 0],
+ ['script2code("Pahlavi") eq "ph"', 0],
+ ['script2code("Vai", LOCALE_CODE_ALPHA_3) eq "vai"', 0],
+ ['script2code("Tamil", LOCALE_CODE_NUMERIC) eq "346"', 0],
+ ['script2code("Latin") eq "la"', 0],
+ ['script2code("Latin", LOCALE_CODE_ALPHA_3) eq "lat"', 0],
+
+ #================================================
+ # TESTS FOR script_code2code
+ #================================================
+
+ #---- selection of examples which should all result in undef -----------
+ ['!defined script_code2code("bo", LOCALE_CODE_ALPHA_3, LOCALE_CODE_ALPHA_3)', 0],
+ ['!defined script_code2code("aa", LOCALE_CODE_ALPHA_2, LOCALE_CODE_ALPHA_3)', 0],
+ ['!defined script_code2code("aa", LOCALE_CODE_ALPHA_3, LOCALE_CODE_ALPHA_3)', 0],
+ ['!defined script_code2code("aa", LOCALE_CODE_ALPHA_2)', 1],
+ ['!defined script_code2code()', 1], # no argument
+ ['!defined script_code2code(undef)', 1], # undef argument
+
+ #---- some successful examples -----------------------------------------
+ ['script_code2code("BO", LOCALE_CODE_ALPHA_2, LOCALE_CODE_ALPHA_3) eq "bod"', 0],
+ ['script_code2code("bod", LOCALE_CODE_ALPHA_3, LOCALE_CODE_ALPHA_2) eq "bo"', 0],
+ ['script_code2code("Phx", LOCALE_CODE_ALPHA_3, LOCALE_CODE_ALPHA_2) eq "ph"', 0],
+ ['script_code2code("295", LOCALE_CODE_NUMERIC, LOCALE_CODE_ALPHA_3) eq "pqd"', 0],
+ ['script_code2code(170, LOCALE_CODE_NUMERIC, LOCALE_CODE_ALPHA_3) eq "tna"', 0],
+ ['script_code2code("rr", LOCALE_CODE_ALPHA_2, LOCALE_CODE_NUMERIC) eq "620"', 0],
+
+);
+
+print "1..", int(@TESTS), "\n";
+
+$testid = 1;
+foreach $test (@TESTS)
+{
+ eval "print (($test->[0]) ? \"ok $testid\\n\" : \"not ok $testid\\n\" )";
+ if ($@)
+ {
+ if (!$test->[1])
+ {
+ print "not ok $testid\n";
+ }
+ else
+ {
+ print "ok $testid\n";
+ }
+ }
+ ++$testid;
+}
+
+exit 0;
diff --git a/lib/Locale/Constants.pm b/lib/Locale/Constants.pm
index 9dfe1dbcbb..c16d45efde 100644
--- a/lib/Locale/Constants.pm
+++ b/lib/Locale/Constants.pm
@@ -1,96 +1,31 @@
-package Locale::Constants;
#
# Locale::Constants - defined constants for identifying codesets
#
-# $Id: Constants.pm,v 1.1 2001/03/04 17:58:15 neilb Exp $
+# $Id: Constants.pm,v 2.1 2002/02/06 04:07:09 neilb Exp $
#
+package Locale::Constants;
use strict;
require Exporter;
+#-----------------------------------------------------------------------
+# Public Global Variables
+#-----------------------------------------------------------------------
use vars qw($VERSION @ISA @EXPORT);
+$VERSION = sprintf("%d.%02d", q$Revision: 2.1 $ =~ /(\d+)\.(\d+)/);
@ISA = qw(Exporter);
@EXPORT = qw(LOCALE_CODE_ALPHA_2 LOCALE_CODE_ALPHA_3 LOCALE_CODE_NUMERIC
LOCALE_CODE_DEFAULT);
+#-----------------------------------------------------------------------
+# Constants
+#-----------------------------------------------------------------------
use constant LOCALE_CODE_ALPHA_2 => 1;
use constant LOCALE_CODE_ALPHA_3 => 2;
use constant LOCALE_CODE_NUMERIC => 3;
-$VERSION = '1.00';
-
use constant LOCALE_CODE_DEFAULT => LOCALE_CODE_ALPHA_2;
1;
-__END__
-
-=head1 NAME
-
-Locale::Constants - constants for Locale codes
-
-=head1 SYNOPSIS
-
- use Locale::Constants;
-
- $codeset = LOCALE_CODE_ALPHA_2;
-
-=head1 DESCRIPTION
-
-B<Locale::Constants> defines symbols which are used in
-the three modules from the Locale-Codes distribution:
-
- Locale::Language
- Locale::Country
- Locale::Currency
-
-B<Note:> at the moment only Locale::Country supports
-more than one code set.
-
-The symbols defined are used to specify which codes you
-want to be used:
-
- LOCALE_CODE_ALPHA_2
- LOCALE_CODE_ALPHA_3
- LOCALE_CODE_NUMERIC
-
-You shouldn't have to C<use> this module directly yourself -
-it is used by the three Locale modules, which in turn export
-the symbols.
-
-=head1 KNOWN BUGS AND LIMITATIONS
-
-None at the moment.
-
-=head1 SEE ALSO
-
-=over 4
-
-=item Locale::Language
-
-Codes for identification of languages.
-
-=item Locale::Country
-
-Codes for identification of countries.
-
-=item Locale::Currency
-
-Codes for identification of currencies and funds.
-
-=back
-
-=head1 AUTHOR
-
-Neil Bowers E<lt>neilb@cre.canon.co.ukE<gt>
-
-=head1 COPYRIGHT
-
-Copyright (C) 2001, Canon Research Centre Europe (CRE).
-
-This module is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=cut
-
diff --git a/lib/Locale/Constants.pod b/lib/Locale/Constants.pod
new file mode 100644
index 0000000000..68d33587f1
--- /dev/null
+++ b/lib/Locale/Constants.pod
@@ -0,0 +1,76 @@
+
+=head1 NAME
+
+Locale::Constants - constants for Locale codes
+
+=head1 SYNOPSIS
+
+ use Locale::Constants;
+
+ $codeset = LOCALE_CODE_ALPHA_2;
+
+=head1 DESCRIPTION
+
+B<Locale::Constants> defines symbols which are used in
+the four modules from the Locale-Codes distribution:
+
+ Locale::Language
+ Locale::Country
+ Locale::Currency
+ Locale::Script
+
+B<Note:> at the moment only Locale::Country and Locale::Script
+support more than one code set.
+
+The symbols defined are used to specify which codes you
+want to be used:
+
+ LOCALE_CODE_ALPHA_2
+ LOCALE_CODE_ALPHA_3
+ LOCALE_CODE_NUMERIC
+
+You shouldn't have to C<use> this module directly yourself -
+it is used by the three Locale modules, which in turn export
+the symbols.
+
+=head1 KNOWN BUGS AND LIMITATIONS
+
+None at the moment.
+
+=head1 SEE ALSO
+
+=over 4
+
+=item Locale::Language
+
+Codes for identification of languages.
+
+=item Locale::Country
+
+Codes for identification of countries.
+
+=item Locale::Script
+
+Codes for identification of scripts.
+
+=item Locale::Currency
+
+Codes for identification of currencies and funds.
+
+=back
+
+=head1 AUTHOR
+
+Neil Bowers E<lt>neil@bowers.comE<gt>
+
+=head1 COPYRIGHT
+
+Copyright (C) 2002, Neil Bowers.
+
+Copyright (C) 2001, Canon Research Centre Europe (CRE).
+
+This module is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+=cut
+
diff --git a/lib/Locale/Country.pm b/lib/Locale/Country.pm
index f60b1352b2..48cb47795b 100644
--- a/lib/Locale/Country.pm
+++ b/lib/Locale/Country.pm
@@ -1,78 +1,13 @@
-#-----------------------------------------------------------------------
-
-=head1 NAME
-
-Locale::Country - ISO codes for country identification (ISO 3166)
-
-=head1 SYNOPSIS
-
- use Locale::Country;
-
- $country = code2country('jp'); # $country gets 'Japan'
- $code = country2code('Norway'); # $code gets 'no'
-
- @codes = all_country_codes();
- @names = all_country_names();
-
- # add "uk" as a pseudo country code for United Kingdom
- Locale::Country::_alias_code('uk' => 'gb');
-
-=cut
-
-#-----------------------------------------------------------------------
+#
+# Locale::Country - ISO codes for country identification (ISO 3166)
+#
+# $Id: Country.pm,v 2.1 2002/02/06 04:07:09 neilb Exp $
+#
package Locale::Country;
use strict;
require 5.002;
-#-----------------------------------------------------------------------
-
-=head1 DESCRIPTION
-
-The C<Locale::Country> module provides access to the ISO
-codes for identifying countries, as defined in ISO 3166.
-You can either access the codes via the L<conversion routines>
-(described below), or with the two functions which return lists
-of all country codes or all country names.
-
-There are three different code sets you can use for identifying
-countries:
-
-=over 4
-
-=item B<alpha-2>
-
-Two letter codes, such as 'tv' for Tuvalu.
-This code set is identified with the symbol C<LOCALE_CODE_ALPHA_2>.
-
-=item B<alpha-3>
-
-Three letter codes, such as 'brb' for Barbados.
-This code set is identified with the symbol C<LOCALE_CODE_ALPHA_3>.
-
-=item B<numeric>
-
-Numeric codes, such as 064 for Bhutan.
-This code set is identified with the symbol C<LOCALE_CODE_NUMERIC>.
-
-=back
-
-All of the routines take an optional additional argument
-which specifies the code set to use.
-If not specified, it defaults to the two-letter codes.
-This is partly for backwards compatibility (previous versions
-of this module only supported the alpha-2 codes), and
-partly because they are the most widely used codes.
-
-The alpha-2 and alpha-3 codes are not case-dependent,
-so you can use 'BO', 'Bo', 'bO' or 'bo' for Bolivia.
-When a code is returned by one of the functions in
-this module, it will always be lower-case.
-
-=cut
-
-#-----------------------------------------------------------------------
-
require Exporter;
use Carp;
use Locale::Constants;
@@ -82,7 +17,7 @@ use Locale::Constants;
# Public Global Variables
#-----------------------------------------------------------------------
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK);
-$VERSION = sprintf("%d.%02d", q$Revision: 1.7 $ =~ /(\d+)\.(\d+)/);
+$VERSION = sprintf("%d.%02d", q$Revision: 2.1 $ =~ /(\d+)\.(\d+)/);
@ISA = qw(Exporter);
@EXPORT = qw(code2country country2code
all_country_codes all_country_names
@@ -97,54 +32,9 @@ my $COUNTRIES = [];
#=======================================================================
-
-=head1 CONVERSION ROUTINES
-
-There are three conversion routines: C<code2country()>, C<country2code()>,
-and C<country_code2code()>.
-
-=over 8
-
-=item code2country( CODE, [ CODESET ] )
-
-This function takes a country code and returns a string
-which contains the name of the country identified.
-If the code is not a valid country code, as defined by ISO 3166,
-then C<undef> will be returned:
-
- $country = code2country('fi');
-
-=item country2code( STRING, [ CODESET ] )
-
-This function takes a country name and returns the corresponding
-country code, if such exists.
-If the argument could not be identified as a country name,
-then C<undef> will be returned:
-
- $code = country2code('Norway', LOCALE_CODE_ALPHA_3);
- # $code will now be 'nor'
-
-The case of the country name is not important.
-See the section L<KNOWN BUGS AND LIMITATIONS> below.
-
-=item country_code2code( CODE, CODESET, CODESET )
-
-This function takes a country code from one code set,
-and returns the corresponding code from another code set.
-
- $alpha2 = country_code2code('fin',
- LOCALE_CODE_ALPHA_3 => LOCALE_CODE_ALPHA_2);
- # $alpha2 will now be 'fi'
-
-If the code passed is not a valid country code in
-the first code set, or if there isn't a code for the
-corresponding country in the second code set,
-then C<undef> will be returned.
-
-=back
-
-=cut
-
+#
+# code2country ( CODE [, CODESET ] )
+#
#=======================================================================
sub code2country
{
@@ -183,6 +73,12 @@ sub code2country
}
}
+
+#=======================================================================
+#
+# country2code ( NAME [, CODESET ] )
+#
+#=======================================================================
sub country2code
{
my $country = shift;
@@ -204,6 +100,12 @@ sub country2code
}
}
+
+#=======================================================================
+#
+# country_code2code ( NAME [, CODESET ] )
+#
+#=======================================================================
sub country_code2code
{
(@_ == 3) or croak "country_code2code() takes 3 arguments!";
@@ -211,7 +113,7 @@ sub country_code2code
my $code = shift;
my $inset = shift;
my $outset = shift;
- my $outcode = shift;
+ my $outcode;
my $country;
@@ -222,37 +124,12 @@ sub country_code2code
return $outcode;
}
-#=======================================================================
-
-=head1 QUERY ROUTINES
-
-There are two function which can be used to obtain a list of all codes,
-or all country names:
-
-=over 8
-
-=item C<all_country_codes( [ CODESET ] )>
-
-Returns a list of all two-letter country codes.
-The codes are guaranteed to be all lower-case,
-and not in any particular order.
-
-=item C<all_country_names( [ CODESET ] )>
-
-Returns a list of all country names for which there is a corresponding
-country code in the specified code set.
-The names are capitalised, and not returned in any particular order.
-
-Not all countries have alpha-3 and numeric codes -
-some just have an alpha-2 code,
-so you'll get a different number of countries
-depending on which code set you specify.
-
-=back
-
-=cut
#=======================================================================
+#
+# all_country_codes ( [ CODESET ] )
+#
+#=======================================================================
sub all_country_codes
{
my $codeset = @_ > 0 ? shift : LOCALE_CODE_DEFAULT;
@@ -260,6 +137,12 @@ sub all_country_codes
return keys %{ $CODES->[$codeset] };
}
+
+#=======================================================================
+#
+# all_country_names ( [ CODESET ] )
+#
+#=======================================================================
sub all_country_names
{
my $codeset = @_ > 0 ? shift : LOCALE_CODE_DEFAULT;
@@ -267,34 +150,17 @@ sub all_country_names
return values %{ $CODES->[$codeset] };
}
-#-----------------------------------------------------------------------
-
-=head1 CODE ALIASING
-
-This module supports a semi-private routine for specifying two letter
-code aliases.
-
- Locale::Country::_alias_code( ALIAS => CODE [, CODESET ] )
-
-This feature was added as a mechanism for handling
-a "uk" code. The ISO standard says that the two-letter code for
-"United Kingdom" is "gb", whereas domain names are all .uk.
-
-By default the module does not understand "uk", since it is implementing
-an ISO standard. If you would like 'uk' to work as the two-letter
-code for United Kingdom, use the following:
-
- use Locale::Country;
-
- Locale::Country::_alias_code('uk' => 'gb');
-
-With this code, both "uk" and "gb" are valid codes for United Kingdom,
-with the reverse lookup returning "uk" rather than the usual "gb".
-
-=cut
-
-#-----------------------------------------------------------------------
+#=======================================================================
+#
+# _alias_code ( ALIAS => CODE [ , CODESET ] )
+#
+# Add an alias for an existing code. If the CODESET isn't specified,
+# then we use the default (currently the alpha-2 codeset).
+#
+# Locale::Country::_alias_code('uk' => 'gb');
+#
+#=======================================================================
sub _alias_code
{
my $alias = shift;
@@ -316,141 +182,45 @@ sub _alias_code
return $alias;
}
-#-----------------------------------------------------------------------
-
-=head1 EXAMPLES
-
-The following example illustrates use of the C<code2country()> function.
-The user is prompted for a country code, and then told the corresponding
-country name:
-
- $| = 1; # turn off buffering
-
- print "Enter country code: ";
- chop($code = <STDIN>);
- $country = code2country($code, LOCALE_CODE_ALPHA_2);
- if (defined $country)
- {
- print "$code = $country\n";
- }
- else
- {
- print "'$code' is not a valid country code!\n";
- }
-
-=head1 DOMAIN NAMES
-
-Most top-level domain names are based on these codes,
-but there are certain codes which aren't.
-If you are using this module to identify country from hostname,
-your best bet is to preprocess the country code.
-
-For example, B<edu>, B<com>, B<gov> and friends would map to B<us>;
-B<uk> would map to B<gb>. Any others?
-
-=head1 KNOWN BUGS AND LIMITATIONS
-
-=over 4
-
-=item *
-
-When using C<country2code()>, the country name must currently appear
-exactly as it does in the source of the module. For example,
-
- country2code('United States')
-
-will return B<us>, as expected. But the following will all return C<undef>:
-
- country2code('United States of America')
- country2code('Great Britain')
- country2code('U.S.A.')
-
-If there's need for it, a future version could have variants
-for country names.
-
-=item *
-
-In the current implementation, all data is read in when the
-module is loaded, and then held in memory.
-A lazy implementation would be more memory friendly.
-
-=back
-
-=head1 SEE ALSO
-
-=over 4
-
-=item Locale::Language
-
-ISO two letter codes for identification of language (ISO 639).
-
-=item Locale::Currency
-
-ISO three letter codes for identification of currencies
-and funds (ISO 4217).
-
-=item ISO 3166
-
-The ISO standard which defines these codes.
-
-=item http://www.din.de/gremien/nas/nabd/iso3166ma/
-
-Official home page for ISO 3166
-
-=item http://www.egt.ie/standards/iso3166/iso3166-1-en.html
-
-Another useful, but not official, home page.
-
-=item http://www.cia.gov/cia/publications/factbook/docs/app-f.html
-
-An appendix in the CIA world fact book which lists country codes
-as defined by ISO 3166, FIPS 10-4, and internet domain names.
-
-=back
-
-
-=head1 AUTHOR
-
-Neil Bowers E<lt>neilb@cre.canon.co.ukE<gt>
-
-=head1 COPYRIGHT
-
-Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
-
-This module is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=cut
-
-#-----------------------------------------------------------------------
#=======================================================================
+#
# initialisation code - stuff the DATA into the ALPHA2 hash
+#
#=======================================================================
{
my ($alpha2, $alpha3, $numeric);
- my $country;
+ my ($country, @countries);
while (<DATA>)
{
next unless /\S/;
chop;
- ($alpha2, $alpha3, $numeric, $country) = split(/:/, $_, 4);
+ ($alpha2, $alpha3, $numeric, @countries) = split(/:/, $_);
- $CODES->[LOCALE_CODE_ALPHA_2]->{$alpha2} = $country;
- $COUNTRIES->[LOCALE_CODE_ALPHA_2]->{"\L$country"} = $alpha2;
+ $CODES->[LOCALE_CODE_ALPHA_2]->{$alpha2} = $countries[0];
+ foreach $country (@countries)
+ {
+ $COUNTRIES->[LOCALE_CODE_ALPHA_2]->{"\L$country"} = $alpha2;
+ }
if ($alpha3)
{
- $CODES->[LOCALE_CODE_ALPHA_3]->{$alpha3} = $country;
- $COUNTRIES->[LOCALE_CODE_ALPHA_3]->{"\L$country"} = $alpha3;
+ $CODES->[LOCALE_CODE_ALPHA_3]->{$alpha3} = $countries[0];
+ foreach $country (@countries)
+ {
+ $COUNTRIES->[LOCALE_CODE_ALPHA_3]->{"\L$country"} = $alpha3;
+ }
}
if ($numeric)
{
- $CODES->[LOCALE_CODE_NUMERIC]->{$numeric} = $country;
- $COUNTRIES->[LOCALE_CODE_NUMERIC]->{"\L$country"} = $numeric;
+ $CODES->[LOCALE_CODE_NUMERIC]->{$numeric} = $countries[0];
+ foreach $country (@countries)
+ {
+ $COUNTRIES->[LOCALE_CODE_NUMERIC]->{"\L$country"} = $numeric;
+ }
}
}
@@ -496,7 +266,7 @@ by:blr:112:Belarus
bz:blz:084:Belize
ca:can:124:Canada
cc:::Cocos (Keeling) Islands
-cd:cod:180:Congo, The Democratic Republic of the
+cd:cod:180:Congo, The Democratic Republic of the:Congo, Democratic Republic of the
cf:caf:140:Central African Republic
cg:cog:178:Congo
ch:che:756:Switzerland
@@ -527,13 +297,13 @@ es:esp:724:Spain
et:eth:231:Ethiopia
fi:fin:246:Finland
fj:fji:242:Fiji
-fk:flk:238:Falkland Islands (Malvinas)
+fk:flk:238:Falkland Islands (Malvinas):Falkland Islands (Islas Malvinas)
fm:fsm:583:Micronesia, Federated States of
fo:fro:234:Faroe Islands
fr:fra:250:France
fx:::France, Metropolitan
ga:gab:266:Gabon
-gb:gbr:826:United Kingdom
+gb:gbr:826:United Kingdom:Great Britain
gd:grd:308:Grenada
ge:geo:268:Georgia
gf:guf:254:French Guiana
@@ -562,7 +332,7 @@ il:isr:376:Israel
in:ind:356:India
io:::British Indian Ocean Territory
iq:irq:368:Iraq
-ir:irn:364:Iran, Islamic Republic of
+ir:irn:364:Iran, Islamic Republic of:Iran
is:isl:352:Iceland
it:ita:380:Italy
jm:jam:388:Jamaica
@@ -574,8 +344,8 @@ kh:khm:116:Cambodia
ki:kir:296:Kiribati
km:com:174:Comoros
kn:kna:659:Saint Kitts and Nevis
-kp:prk:408:Korea, Democratic People's Republic of
-kr:kor:410:Korea, Republic of
+kp:prk:408:Korea, Democratic People's Republic of:Korea, North:North Korea
+kr:kor:410:Korea, Republic of:Korea, South:South Korea
kw:kwt:414:Kuwait
ky:cym:136:Cayman Islands
kz:kaz:398:Kazakstan
@@ -589,13 +359,13 @@ ls:lso:426:Lesotho
lt:ltu:440:Lithuania
lu:lux:442:Luxembourg
lv:lva:428:Latvia
-ly:lby:434:Libyan Arab Jamahiriya
+ly:lby:434:Libyan Arab Jamahiriya:Libya
ma:mar:504:Morocco
mc:mco:492:Monaco
md:mda:498:Moldova, Republic of
mg:mdg:450:Madagascar
mh:mhl:584:Marshall Islands
-mk:mkd:807:Macedonia, the Former Yugoslav Republic of
+mk:mkd:807:Macedonia, the Former Yugoslav Republic of:Macedonia, Former Yugoslav Republic of:Macedonia
ml:mli:466:Mali
mm:mmr:104:Myanmar
mn:mng:496:Mongolia
@@ -632,7 +402,7 @@ ph:phl:608:Philippines
pk:pak:586:Pakistan
pl:pol:616:Poland
pm:spm:666:Saint Pierre and Miquelon
-pn:pcn:612:Pitcairn
+pn:pcn:612:Pitcairn:Pitcairn Island
pr:pri:630:Puerto Rico
ps:pse:275:Palestinian Territory, Occupied
pt:prt:620:Portugal
@@ -641,7 +411,7 @@ py:pry:600:Paraguay
qa:qat:634:Qatar
re:reu:638:Reunion
ro:rom:642:Romania
-ru:rus:643:Russian Federation
+ru:rus:643:Russian Federation:Russia
rw:rwa:646:Rwanda
sa:sau:682:Saudi Arabia
sb:slb:090:Solomon Islands
@@ -651,7 +421,7 @@ se:swe:752:Sweden
sg:sgp:702:Singapore
sh:shn:654:Saint Helena
si:svn:705:Slovenia
-sj:sjm:744:Svalbard and Jan Mayen
+sj:sjm:744:Svalbard and Jan Mayen:Jan Mayen:Svalbard
sk:svk:703:Slovakia
sl:sle:694:Sierra Leone
sm:smr:674:San Marino
@@ -660,7 +430,7 @@ so:som:706:Somalia
sr:sur:740:Suriname
st:stp:678:Sao Tome and Principe
sv:slv:222:El Salvador
-sy:syr:760:Syrian Arab Republic
+sy:syr:760:Syrian Arab Republic:Syria
sz:swz:748:Swaziland
tc:tca:796:Turks and Caicos Islands
td:tcd:148:Chad
@@ -676,18 +446,18 @@ tp:tmp:626:East Timor
tr:tur:792:Turkey
tt:tto:780:Trinidad and Tobago
tv:tuv:798:Tuvalu
-tw:twn:158:Taiwan, Province of China
-tz:tza:834:Tanzania, United Republic of
+tw:twn:158:Taiwan, Province of China:Taiwan
+tz:tza:834:Tanzania, United Republic of:Tanzania
ua:ukr:804:Ukraine
ug:uga:800:Uganda
um:::United States Minor Outlying Islands
-us:usa:840:United States
+us:usa:840:United States:USA:United States of America
uy:ury:858:Uruguay
uz:uzb:860:Uzbekistan
-va:vat:336:Holy See (Vatican City State)
+va:vat:336:Holy See (Vatican City State):Hole See (Vatican City)
vc:vct:670:Saint Vincent and the Grenadines
ve:ven:862:Venezuela
-vg:vgb:092:Virgin Islands, British
+vg:vgb:092:Virgin Islands, British:British Virgin Islands
vi:vir:850:Virgin Islands, U.S.
vn:vnm:704:Vietnam
vu:vut:548:Vanuatu
diff --git a/lib/Locale/Country.pod b/lib/Locale/Country.pod
new file mode 100644
index 0000000000..bfa5bd5807
--- /dev/null
+++ b/lib/Locale/Country.pod
@@ -0,0 +1,273 @@
+
+=head1 NAME
+
+Locale::Country - ISO codes for country identification (ISO 3166)
+
+=head1 SYNOPSIS
+
+ use Locale::Country;
+
+ $country = code2country('jp'); # $country gets 'Japan'
+ $code = country2code('Norway'); # $code gets 'no'
+
+ @codes = all_country_codes();
+ @names = all_country_names();
+
+ # add "uk" as a pseudo country code for United Kingdom
+ Locale::Country::_alias_code('uk' => 'gb');
+
+
+=head1 DESCRIPTION
+
+The C<Locale::Country> module provides access to the ISO
+codes for identifying countries, as defined in ISO 3166.
+You can either access the codes via the L<conversion routines>
+(described below), or with the two functions which return lists
+of all country codes or all country names.
+
+There are three different code sets you can use for identifying
+countries:
+
+=over 4
+
+=item B<alpha-2>
+
+Two letter codes, such as 'tv' for Tuvalu.
+This code set is identified with the symbol C<LOCALE_CODE_ALPHA_2>.
+
+=item B<alpha-3>
+
+Three letter codes, such as 'brb' for Barbados.
+This code set is identified with the symbol C<LOCALE_CODE_ALPHA_3>.
+
+=item B<numeric>
+
+Numeric codes, such as 064 for Bhutan.
+This code set is identified with the symbol C<LOCALE_CODE_NUMERIC>.
+
+=back
+
+All of the routines take an optional additional argument
+which specifies the code set to use.
+If not specified, it defaults to the two-letter codes.
+This is partly for backwards compatibility (previous versions
+of this module only supported the alpha-2 codes), and
+partly because they are the most widely used codes.
+
+The alpha-2 and alpha-3 codes are not case-dependent,
+so you can use 'BO', 'Bo', 'bO' or 'bo' for Bolivia.
+When a code is returned by one of the functions in
+this module, it will always be lower-case.
+
+As of version 2.00, Locale::Country supports variant
+names for countries. So, for example, the country code for "United States"
+is "us", so country2code('United States') returns 'us'.
+Now the following will also return 'us':
+
+ country2code('United States of America')
+ country2code('USA')
+
+
+=head1 CONVERSION ROUTINES
+
+There are three conversion routines: C<code2country()>, C<country2code()>,
+and C<country_code2code()>.
+
+=over 4
+
+=item code2country( CODE, [ CODESET ] )
+
+This function takes a country code and returns a string
+which contains the name of the country identified.
+If the code is not a valid country code, as defined by ISO 3166,
+then C<undef> will be returned:
+
+ $country = code2country('fi');
+
+=item country2code( STRING, [ CODESET ] )
+
+This function takes a country name and returns the corresponding
+country code, if such exists.
+If the argument could not be identified as a country name,
+then C<undef> will be returned:
+
+ $code = country2code('Norway', LOCALE_CODE_ALPHA_3);
+ # $code will now be 'nor'
+
+The case of the country name is not important.
+See the section L<KNOWN BUGS AND LIMITATIONS> below.
+
+=item country_code2code( CODE, CODESET, CODESET )
+
+This function takes a country code from one code set,
+and returns the corresponding code from another code set.
+
+ $alpha2 = country_code2code('fin',
+ LOCALE_CODE_ALPHA_3 => LOCALE_CODE_ALPHA_2);
+ # $alpha2 will now be 'fi'
+
+If the code passed is not a valid country code in
+the first code set, or if there isn't a code for the
+corresponding country in the second code set,
+then C<undef> will be returned.
+
+=back
+
+
+=head1 QUERY ROUTINES
+
+There are two function which can be used to obtain a list of all codes,
+or all country names:
+
+=over 4
+
+=item C<all_country_codes( [ CODESET ] )>
+
+Returns a list of all two-letter country codes.
+The codes are guaranteed to be all lower-case,
+and not in any particular order.
+
+=item C<all_country_names( [ CODESET ] )>
+
+Returns a list of all country names for which there is a corresponding
+country code in the specified code set.
+The names are capitalised, and not returned in any particular order.
+
+Not all countries have alpha-3 and numeric codes -
+some just have an alpha-2 code,
+so you'll get a different number of countries
+depending on which code set you specify.
+
+=back
+
+
+=head1 CODE ALIASING
+
+This module supports a semi-private routine for specifying two letter
+code aliases.
+
+ Locale::Country::_alias_code( ALIAS => CODE [, CODESET ] )
+
+This feature was added as a mechanism for handling
+a "uk" code. The ISO standard says that the two-letter code for
+"United Kingdom" is "gb", whereas domain names are all .uk.
+
+By default the module does not understand "uk", since it is implementing
+an ISO standard. If you would like 'uk' to work as the two-letter
+code for United Kingdom, use the following:
+
+ use Locale::Country;
+
+ Locale::Country::_alias_code('uk' => 'gb');
+
+With this code, both "uk" and "gb" are valid codes for United Kingdom,
+with the reverse lookup returning "uk" rather than the usual "gb".
+
+
+=head1 EXAMPLES
+
+The following example illustrates use of the C<code2country()> function.
+The user is prompted for a country code, and then told the corresponding
+country name:
+
+ $| = 1; # turn off buffering
+
+ print "Enter country code: ";
+ chop($code = <STDIN>);
+ $country = code2country($code, LOCALE_CODE_ALPHA_2);
+ if (defined $country)
+ {
+ print "$code = $country\n";
+ }
+ else
+ {
+ print "'$code' is not a valid country code!\n";
+ }
+
+=head1 DOMAIN NAMES
+
+Most top-level domain names are based on these codes,
+but there are certain codes which aren't.
+If you are using this module to identify country from hostname,
+your best bet is to preprocess the country code.
+
+For example, B<edu>, B<com>, B<gov> and friends would map to B<us>;
+B<uk> would map to B<gb>. Any others?
+
+=head1 KNOWN BUGS AND LIMITATIONS
+
+=over 4
+
+=item *
+
+When using C<country2code()>, the country name must currently appear
+exactly as it does in the source of the module. The module now supports
+a small number of variants.
+
+Possible extensions to this are: an interface for getting at the
+list of variant names, and regular expression matches.
+
+=item *
+
+In the current implementation, all data is read in when the
+module is loaded, and then held in memory.
+A lazy implementation would be more memory friendly.
+
+=item *
+
+Support for country names in different languages.
+
+=back
+
+=head1 SEE ALSO
+
+=over 4
+
+=item Locale::Language
+
+ISO two letter codes for identification of language (ISO 639).
+
+=item Locale::Script
+
+ISO codes for identification of scripts (ISO 15924).
+
+=item Locale::Currency
+
+ISO three letter codes for identification of currencies
+and funds (ISO 4217).
+
+=item ISO 3166
+
+The ISO standard which defines these codes.
+
+=item http://www.din.de/gremien/nas/nabd/iso3166ma/
+
+Official home page for ISO 3166
+
+=item http://www.egt.ie/standards/iso3166/iso3166-1-en.html
+
+Another useful, but not official, home page.
+
+=item http://www.cia.gov/cia/publications/factbook/docs/app-f.html
+
+An appendix in the CIA world fact book which lists country codes
+as defined by ISO 3166, FIPS 10-4, and internet domain names.
+
+=back
+
+
+=head1 AUTHOR
+
+Neil Bowers E<lt>neil@bowers.comE<gt>
+
+=head1 COPYRIGHT
+
+Copyright (C) 2002, Neil Bowers.
+
+Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
+
+This module is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+=cut
+
diff --git a/lib/Locale/Currency.pm b/lib/Locale/Currency.pm
index 054ac1b59d..f8efffbe85 100644
--- a/lib/Locale/Currency.pm
+++ b/lib/Locale/Currency.pm
@@ -1,64 +1,21 @@
-#-----------------------------------------------------------------------
-
-=head1 NAME
-
-Locale::Currency - ISO three letter codes for currency identification (ISO 4217)
-
-=head1 SYNOPSIS
-
- use Locale::Currency;
-
- $curr = code2currency('usd'); # $curr gets 'US Dollar'
- $code = currency2code('Euro'); # $code gets 'eur'
-
- @codes = all_currency_codes();
- @names = all_currency_names();
-
-=cut
-
-#-----------------------------------------------------------------------
+#
+# Locale::Currency - ISO three letter codes for currency identification
+# (ISO 4217)
+#
+# $Id: Currency.pm,v 2.1 2002/02/06 04:07:10 neilb Exp $
+#
package Locale::Currency;
use strict;
require 5.002;
-#-----------------------------------------------------------------------
-
-=head1 DESCRIPTION
-
-The C<Locale::Currency> module provides access to the ISO three-letter
-codes for identifying currencies and funds, as defined in ISO 4217.
-You can either access the codes via the L<conversion routines>
-(described below),
-or with the two functions which return lists of all currency codes or
-all currency names.
-
-There are two special codes defined by the standard which aren't
-understood by this module:
-
-=over 4
-
-=item XTS
-
-Specifically reserved for testing purposes.
-
-=item XXX
-
-For transactions where no currency is involved.
-
-=back
-
-=cut
-
-#-----------------------------------------------------------------------
-
require Exporter;
#-----------------------------------------------------------------------
# Public Global Variables
#-----------------------------------------------------------------------
use vars qw($VERSION @ISA @EXPORT);
-$VERSION = sprintf("%d.%02d", q$Revision: 1.3 $ =~ /(\d+)\.(\d+)/);
+$VERSION = sprintf("%d.%02d", q$Revision: 2.1 $ =~ /(\d+)\.(\d+)/);
@ISA = qw(Exporter);
@EXPORT = qw(&code2currency &currency2code
&all_currency_codes &all_currency_names );
@@ -71,38 +28,9 @@ my %CURRENCIES = ();
#=======================================================================
-
-=head1 CONVERSION ROUTINES
-
-There are two conversion routines: C<code2currency()> and C<currency2code()>.
-
-=over 8
-
-=item code2currency()
-
-This function takes a three letter currency code and returns a string
-which contains the name of the currency identified. If the code is
-not a valid currency code, as defined by ISO 4217, then C<undef>
-will be returned.
-
- $curr = code2currency($code);
-
-=item currency2code()
-
-This function takes a currency name and returns the corresponding
-three letter currency code, if such exists.
-If the argument could not be identified as a currency name,
-then C<undef> will be returned.
-
- $code = currency2code('French Franc');
-
-The case of the currency name is not important.
-See the section L<KNOWN BUGS AND LIMITATIONS> below.
-
-=back
-
-=cut
-
+#
+# code2currency( CODE )
+#
#=======================================================================
sub code2currency
{
@@ -124,6 +52,12 @@ sub code2currency
}
}
+
+#=======================================================================
+#
+# currency2code ( CURRENCY )
+#
+#=======================================================================
sub currency2code
{
my $curr = shift;
@@ -144,138 +78,28 @@ sub currency2code
}
}
-#=======================================================================
-
-=head1 QUERY ROUTINES
-
-There are two function which can be used to obtain a list of all
-currency codes, or all currency names:
-
-=over 8
-
-=item C<all_currency_codes()>
-
-Returns a list of all three-letter currency codes.
-The codes are guaranteed to be all lower-case,
-and not in any particular order.
-
-=item C<all_currency_names()>
-
-Returns a list of all currency names for which there is a corresponding
-three-letter currency code. The names are capitalised, and not returned
-in any particular order.
-
-=back
-
-=cut
#=======================================================================
+#
+# all_currency_codes()
+#
+#=======================================================================
sub all_currency_codes
{
return keys %CODES;
}
+
+#=======================================================================
+#
+# all_currency_names()
+#
+#=======================================================================
sub all_currency_names
{
return values %CODES;
}
-#-----------------------------------------------------------------------
-
-=head1 EXAMPLES
-
-The following example illustrates use of the C<code2currency()> function.
-The user is prompted for a currency code, and then told the corresponding
-currency name:
-
- $| = 1; # turn off buffering
-
- print "Enter currency code: ";
- chop($code = <STDIN>);
- $curr = code2currency($code);
- if (defined $curr)
- {
- print "$code = $curr\n";
- }
- else
- {
- print "'$code' is not a valid currency code!\n";
- }
-
-=head1 KNOWN BUGS AND LIMITATIONS
-
-=over 4
-
-=item *
-
-In the current implementation, all data is read in when the
-module is loaded, and then held in memory.
-A lazy implementation would be more memory friendly.
-
-=item *
-
-This module also includes the special codes which are
-not for a currency, such as Gold, Platinum, etc.
-This might cause a problem if you're using this module
-to display a list of currencies.
-Let Neil know if this does cause a problem, and we can
-do something about it.
-
-=item *
-
-ISO 4217 also defines a numeric code for each currency.
-Currency codes are not currently supported by this module.
-
-=item *
-
-There are three cases where there is more than one
-code for the same currency name.
-Kwacha has two codes: mwk for Malawi, and zmk for Zambia.
-The Russian Ruble has two codes: rub and rur.
-The Belarussian Ruble has two codes: byr and byb.
-The currency2code() function only returns one code, so
-you might not get back the code you expected.
-
-=back
-
-=head1 SEE ALSO
-
-=over 4
-
-=item Locale::Country
-
-ISO codes for identification of country (ISO 3166).
-Supports alpha-2, alpha-3, and numeric codes.
-The currency codes use the alpha-2 codeset.
-
-=item ISO 4217:1995
-
-Code for the representation of currencies and funds.
-
-=item http://www.bsi-global.com/iso4217currency
-
-Official web page for the ISO 4217 maintenance agency.
-This has the latest list of codes, in MS Word format. Boo.
-
-=back
-
-=head1 AUTHOR
-
-Michael Hennecke E<lt>hennecke@rz.uni-karlsruhe.deE<gt>
-and
-Neil Bowers E<lt>neilb@cre.canon.co.ukE<gt>
-
-=head1 COPYRIGHT
-
-Copyright (c) 2001 Michael Hennecke and
-Canon Research Centre Europe (CRE).
-
-This module is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=cut
-
-#-----------------------------------------------------------------------
#=======================================================================
# initialisation code - stuff the DATA into the CODES hash
diff --git a/lib/Locale/Currency.pod b/lib/Locale/Currency.pod
new file mode 100644
index 0000000000..4678d3e80d
--- /dev/null
+++ b/lib/Locale/Currency.pod
@@ -0,0 +1,191 @@
+
+=head1 NAME
+
+Locale::Currency - ISO three letter codes for currency identification (ISO 4217)
+
+=head1 SYNOPSIS
+
+ use Locale::Currency;
+
+ $curr = code2currency('usd'); # $curr gets 'US Dollar'
+ $code = currency2code('Euro'); # $code gets 'eur'
+
+ @codes = all_currency_codes();
+ @names = all_currency_names();
+
+
+=head1 DESCRIPTION
+
+The C<Locale::Currency> module provides access to the ISO three-letter
+codes for identifying currencies and funds, as defined in ISO 4217.
+You can either access the codes via the L<conversion routines>
+(described below),
+or with the two functions which return lists of all currency codes or
+all currency names.
+
+There are two special codes defined by the standard which aren't
+understood by this module:
+
+=over 4
+
+=item XTS
+
+Specifically reserved for testing purposes.
+
+=item XXX
+
+For transactions where no currency is involved.
+
+=back
+
+
+=head1 CONVERSION ROUTINES
+
+There are two conversion routines: C<code2currency()> and C<currency2code()>.
+
+=over 4
+
+=item code2currency()
+
+This function takes a three letter currency code and returns a string
+which contains the name of the currency identified. If the code is
+not a valid currency code, as defined by ISO 4217, then C<undef>
+will be returned.
+
+ $curr = code2currency($code);
+
+=item currency2code()
+
+This function takes a currency name and returns the corresponding
+three letter currency code, if such exists.
+If the argument could not be identified as a currency name,
+then C<undef> will be returned.
+
+ $code = currency2code('French Franc');
+
+The case of the currency name is not important.
+See the section L<KNOWN BUGS AND LIMITATIONS> below.
+
+=back
+
+
+=head1 QUERY ROUTINES
+
+There are two function which can be used to obtain a list of all
+currency codes, or all currency names:
+
+=over 4
+
+=item C<all_currency_codes()>
+
+Returns a list of all three-letter currency codes.
+The codes are guaranteed to be all lower-case,
+and not in any particular order.
+
+=item C<all_currency_names()>
+
+Returns a list of all currency names for which there is a corresponding
+three-letter currency code. The names are capitalised, and not returned
+in any particular order.
+
+=back
+
+
+=head1 EXAMPLES
+
+The following example illustrates use of the C<code2currency()> function.
+The user is prompted for a currency code, and then told the corresponding
+currency name:
+
+ $| = 1; # turn off buffering
+
+ print "Enter currency code: ";
+ chop($code = <STDIN>);
+ $curr = code2currency($code);
+ if (defined $curr)
+ {
+ print "$code = $curr\n";
+ }
+ else
+ {
+ print "'$code' is not a valid currency code!\n";
+ }
+
+=head1 KNOWN BUGS AND LIMITATIONS
+
+=over 4
+
+=item *
+
+In the current implementation, all data is read in when the
+module is loaded, and then held in memory.
+A lazy implementation would be more memory friendly.
+
+=item *
+
+This module also includes the special codes which are
+not for a currency, such as Gold, Platinum, etc.
+This might cause a problem if you're using this module
+to display a list of currencies.
+Let Neil know if this does cause a problem, and we can
+do something about it.
+
+=item *
+
+ISO 4217 also defines a numeric code for each currency.
+Currency codes are not currently supported by this module,
+in the same way Locale::Country supports multiple codesets.
+
+=item *
+
+There are three cases where there is more than one
+code for the same currency name.
+Kwacha has two codes: mwk for Malawi, and zmk for Zambia.
+The Russian Ruble has two codes: rub and rur.
+The Belarussian Ruble has two codes: byr and byb.
+The currency2code() function only returns one code, so
+you might not get back the code you expected.
+
+=back
+
+=head1 SEE ALSO
+
+=over 4
+
+=item Locale::Country
+
+ISO codes for identification of country (ISO 3166).
+
+=item Locale::Script
+
+ISO codes for identification of written scripts (ISO 15924).
+
+=item ISO 4217:1995
+
+Code for the representation of currencies and funds.
+
+=item http://www.bsi-global.com/iso4217currency
+
+Official web page for the ISO 4217 maintenance agency.
+This has the latest list of codes, in MS Word format. Boo.
+
+=back
+
+=head1 AUTHOR
+
+Michael Hennecke E<lt>hennecke@rz.uni-karlsruhe.deE<gt>
+and
+Neil Bowers E<lt>neil@bowers.comE<gt>
+
+=head1 COPYRIGHT
+
+Copyright (C) 2002, Neil Bowers.
+
+Copyright (c) 2001 Michael Hennecke and
+Canon Research Centre Europe (CRE).
+
+This module is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+=cut
+
diff --git a/lib/Locale/Language.pm b/lib/Locale/Language.pm
index 9e0cf19541..70f118af27 100644
--- a/lib/Locale/Language.pm
+++ b/lib/Locale/Language.pm
@@ -1,48 +1,20 @@
-#-----------------------------------------------------------------------
-
-=head1 NAME
-
-Locale::Language - ISO two letter codes for language identification (ISO 639)
-
-=head1 SYNOPSIS
-
- use Locale::Language;
-
- $lang = code2language('en'); # $lang gets 'English'
- $code = language2code('French'); # $code gets 'fr'
-
- @codes = all_language_codes();
- @names = all_language_names();
-
-=cut
-
-#-----------------------------------------------------------------------
+#
+# Locale::Language - ISO two letter codes for language identification (ISO 639)
+#
+# $Id: Language.pm,v 2.1 2002/02/06 04:07:10 neilb Exp $
+#
package Locale::Language;
use strict;
require 5.002;
-#-----------------------------------------------------------------------
-
-=head1 DESCRIPTION
-
-The C<Locale::Language> module provides access to the ISO two-letter
-codes for identifying languages, as defined in ISO 639. You can either
-access the codes via the L<conversion routines> (described below),
-or with the two functions which return lists of all language codes or
-all language names.
-
-=cut
-
-#-----------------------------------------------------------------------
-
require Exporter;
#-----------------------------------------------------------------------
# Public Global Variables
#-----------------------------------------------------------------------
use vars qw($VERSION @ISA @EXPORT);
-$VERSION = sprintf("%d.%02d", q$Revision: 1.6 $ =~ /(\d+)\.(\d+)/);
+$VERSION = sprintf("%d.%02d", q$Revision: 2.1 $ =~ /(\d+)\.(\d+)/);
@ISA = qw(Exporter);
@EXPORT = qw(&code2language &language2code
&all_language_codes &all_language_names );
@@ -55,38 +27,9 @@ my %LANGUAGES = ();
#=======================================================================
-
-=head1 CONVERSION ROUTINES
-
-There are two conversion routines: C<code2language()> and C<language2code()>.
-
-=over 8
-
-=item code2language()
-
-This function takes a two letter language code and returns a string
-which contains the name of the language identified. If the code is
-not a valid language code, as defined by ISO 639, then C<undef>
-will be returned.
-
- $lang = code2language($code);
-
-=item language2code()
-
-This function takes a language name and returns the corresponding
-two letter language code, if such exists.
-If the argument could not be identified as a language name,
-then C<undef> will be returned.
-
- $code = language2code('French');
-
-The case of the language name is not important.
-See the section L<KNOWN BUGS AND LIMITATIONS> below.
-
-=back
-
-=cut
-
+#
+# code2language ( CODE )
+#
#=======================================================================
sub code2language
{
@@ -108,6 +51,12 @@ sub code2language
}
}
+
+#=======================================================================
+#
+# language2code ( LANGUAGE )
+#
+#=======================================================================
sub language2code
{
my $lang = shift;
@@ -128,134 +77,40 @@ sub language2code
}
}
-#=======================================================================
-
-=head1 QUERY ROUTINES
-
-There are two function which can be used to obtain a list of all
-language codes, or all language names:
-
-=over 8
-
-=item C<all_language_codes()>
-
-Returns a list of all two-letter language codes.
-The codes are guaranteed to be all lower-case,
-and not in any particular order.
-
-=item C<all_language_names()>
-
-Returns a list of all language names for which there is a corresponding
-two-letter language code. The names are capitalised, and not returned
-in any particular order.
-
-=back
-
-=cut
#=======================================================================
+#
+# all_language_codes()
+#
+#=======================================================================
sub all_language_codes
{
return keys %CODES;
}
+
+#=======================================================================
+#
+# all_language_names()
+#
+#=======================================================================
sub all_language_names
{
return values %CODES;
}
-#-----------------------------------------------------------------------
-
-=head1 EXAMPLES
-
-The following example illustrates use of the C<code2language()> function.
-The user is prompted for a language code, and then told the corresponding
-language name:
-
- $| = 1; # turn off buffering
-
- print "Enter language code: ";
- chop($code = <STDIN>);
- $lang = code2language($code);
- if (defined $lang)
- {
- print "$code = $lang\n";
- }
- else
- {
- print "'$code' is not a valid language code!\n";
- }
-
-=head1 KNOWN BUGS AND LIMITATIONS
-
-=over 4
-
-=item *
-
-In the current implementation, all data is read in when the
-module is loaded, and then held in memory.
-A lazy implementation would be more memory friendly.
-
-=item *
-
-Currently just supports the two letter language codes -
-there are also three-letter codes, and numbers.
-Would these be of any use to anyone?
-
-=back
-
-=head1 SEE ALSO
-
-=over 4
-
-=item Locale::Country
-
-ISO codes for identification of country (ISO 3166).
-Supports 2-letter, 3-letter, and numeric country codes.
-
-=item Locale::Currency
-
-ISO three letter codes for identification of currencies and funds (ISO 4217).
-
-=item ISO 639:1988 (E/F)
-
-Code for the representation of names of languages.
-
-=item http://lcweb.loc.gov/standards/iso639-2/langhome.html
-
-Home page for ISO 639-2
-
-=back
-
-
-=head1 AUTHOR
-
-Neil Bowers E<lt>neilb@cre.canon.co.ukE<gt>
-
-=head1 COPYRIGHT
-
-Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
-
-This module is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=cut
-
-#-----------------------------------------------------------------------
#=======================================================================
# initialisation code - stuff the DATA into the CODES hash
#=======================================================================
{
- no utf8; # __DATA__ contains Latin-1
-
my $code;
my $language;
while (<DATA>)
{
- next unless /\S/;
+ next unless /\S/;
chop;
($code, $language) = split(/:/, $_, 2);
$CODES{$code} = $language;
diff --git a/lib/Locale/Language.pod b/lib/Locale/Language.pod
new file mode 100644
index 0000000000..07ce4bafab
--- /dev/null
+++ b/lib/Locale/Language.pod
@@ -0,0 +1,158 @@
+
+=head1 NAME
+
+Locale::Language - ISO two letter codes for language identification (ISO 639)
+
+=head1 SYNOPSIS
+
+ use Locale::Language;
+
+ $lang = code2language('en'); # $lang gets 'English'
+ $code = language2code('French'); # $code gets 'fr'
+
+ @codes = all_language_codes();
+ @names = all_language_names();
+
+
+=head1 DESCRIPTION
+
+The C<Locale::Language> module provides access to the ISO two-letter
+codes for identifying languages, as defined in ISO 639. You can either
+access the codes via the L<conversion routines> (described below),
+or via the two functions which return lists of all language codes or
+all language names.
+
+
+=head1 CONVERSION ROUTINES
+
+There are two conversion routines: C<code2language()> and C<language2code()>.
+
+=over 4
+
+=item code2language()
+
+This function takes a two letter language code and returns a string
+which contains the name of the language identified. If the code is
+not a valid language code, as defined by ISO 639, then C<undef>
+will be returned.
+
+ $lang = code2language($code);
+
+=item language2code()
+
+This function takes a language name and returns the corresponding
+two letter language code, if such exists.
+If the argument could not be identified as a language name,
+then C<undef> will be returned.
+
+ $code = language2code('French');
+
+The case of the language name is not important.
+See the section L<KNOWN BUGS AND LIMITATIONS> below.
+
+=back
+
+
+=head1 QUERY ROUTINES
+
+There are two function which can be used to obtain a list of all
+language codes, or all language names:
+
+=over 4
+
+=item C<all_language_codes()>
+
+Returns a list of all two-letter language codes.
+The codes are guaranteed to be all lower-case,
+and not in any particular order.
+
+=item C<all_language_names()>
+
+Returns a list of all language names for which there is a corresponding
+two-letter language code. The names are capitalised, and not returned
+in any particular order.
+
+=back
+
+
+=head1 EXAMPLES
+
+The following example illustrates use of the C<code2language()> function.
+The user is prompted for a language code, and then told the corresponding
+language name:
+
+ $| = 1; # turn off buffering
+
+ print "Enter language code: ";
+ chop($code = <STDIN>);
+ $lang = code2language($code);
+ if (defined $lang)
+ {
+ print "$code = $lang\n";
+ }
+ else
+ {
+ print "'$code' is not a valid language code!\n";
+ }
+
+=head1 KNOWN BUGS AND LIMITATIONS
+
+=over 4
+
+=item *
+
+In the current implementation, all data is read in when the
+module is loaded, and then held in memory.
+A lazy implementation would be more memory friendly.
+
+=item *
+
+Currently just supports the two letter language codes -
+there are also three-letter codes, and numbers.
+Would these be of any use to anyone?
+
+=back
+
+=head1 SEE ALSO
+
+=over 4
+
+=item Locale::Country
+
+ISO codes for identification of country (ISO 3166).
+Supports 2-letter, 3-letter, and numeric country codes.
+
+=item Locale::Script
+
+ISO codes for identification of written scripts (ISO 15924).
+
+=item Locale::Currency
+
+ISO three letter codes for identification of currencies and funds (ISO 4217).
+
+=item ISO 639:1988 (E/F)
+
+Code for the representation of names of languages.
+
+=item http://lcweb.loc.gov/standards/iso639-2/langhome.html
+
+Home page for ISO 639-2.
+
+=back
+
+
+=head1 AUTHOR
+
+Neil Bowers E<lt>neil@bowers.comE<gt>
+
+=head1 COPYRIGHT
+
+Copyright (C) 2002, Neil Bowers.
+
+Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
+
+This module is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+=cut
+
diff --git a/lib/Locale/Script.pm b/lib/Locale/Script.pm
new file mode 100644
index 0000000000..6b75afbc07
--- /dev/null
+++ b/lib/Locale/Script.pm
@@ -0,0 +1,291 @@
+#
+# Locale::Script - ISO codes for script identification (ISO 15924)
+#
+# $Id: Script.pm,v 2.1 2002/02/06 04:07:10 neilb Exp $
+#
+
+package Locale::Script;
+use strict;
+require 5.002;
+
+require Exporter;
+use Carp;
+use Locale::Constants;
+
+
+#-----------------------------------------------------------------------
+# Public Global Variables
+#-----------------------------------------------------------------------
+use vars qw($VERSION @ISA @EXPORT @EXPORT_OK);
+$VERSION = sprintf("%d.%02d", q$Revision: 2.1 $ =~ /(\d+)\.(\d+)/);
+@ISA = qw(Exporter);
+@EXPORT = qw(code2script script2code
+ all_script_codes all_script_names
+ script_code2code
+ LOCALE_CODE_ALPHA_2 LOCALE_CODE_ALPHA_3 LOCALE_CODE_NUMERIC);
+
+#-----------------------------------------------------------------------
+# Private Global Variables
+#-----------------------------------------------------------------------
+my $CODES = [];
+my $COUNTRIES = [];
+
+
+#=======================================================================
+#
+# code2script ( CODE [, CODESET ] )
+#
+#=======================================================================
+sub code2script
+{
+ my $code = shift;
+ my $codeset = @_ > 0 ? shift : LOCALE_CODE_DEFAULT;
+
+
+ return undef unless defined $code;
+
+ #-------------------------------------------------------------------
+ # Make sure the code is in the right form before we use it
+ # to look up the corresponding script.
+ # We have to sprintf because the codes are given as 3-digits,
+ # with leading 0's. Eg 070 for Egyptian demotic.
+ #-------------------------------------------------------------------
+ if ($codeset == LOCALE_CODE_NUMERIC)
+ {
+ return undef if ($code =~ /\D/);
+ $code = sprintf("%.3d", $code);
+ }
+ else
+ {
+ $code = lc($code);
+ }
+
+ if (exists $CODES->[$codeset]->{$code})
+ {
+ return $CODES->[$codeset]->{$code};
+ }
+ else
+ {
+ #---------------------------------------------------------------
+ # no such script code!
+ #---------------------------------------------------------------
+ return undef;
+ }
+}
+
+
+#=======================================================================
+#
+# script2code ( SCRIPT [, CODESET ] )
+#
+#=======================================================================
+sub script2code
+{
+ my $script = shift;
+ my $codeset = @_ > 0 ? shift : LOCALE_CODE_DEFAULT;
+
+
+ return undef unless defined $script;
+ $script = lc($script);
+ if (exists $COUNTRIES->[$codeset]->{$script})
+ {
+ return $COUNTRIES->[$codeset]->{$script};
+ }
+ else
+ {
+ #---------------------------------------------------------------
+ # no such script!
+ #---------------------------------------------------------------
+ return undef;
+ }
+}
+
+
+#=======================================================================
+#
+# script_code2code ( CODE, IN-CODESET, OUT-CODESET )
+#
+#=======================================================================
+sub script_code2code
+{
+ (@_ == 3) or croak "script_code2code() takes 3 arguments!";
+
+ my $code = shift;
+ my $inset = shift;
+ my $outset = shift;
+ my $outcode;
+ my $script;
+
+
+ return undef if $inset == $outset;
+ $script = code2script($code, $inset);
+ return undef if not defined $script;
+ $outcode = script2code($script, $outset);
+ return $outcode;
+}
+
+
+#=======================================================================
+#
+# all_script_codes()
+#
+#=======================================================================
+sub all_script_codes
+{
+ my $codeset = @_ > 0 ? shift : LOCALE_CODE_DEFAULT;
+
+ return keys %{ $CODES->[$codeset] };
+}
+
+
+#=======================================================================
+#
+# all_script_names()
+#
+#=======================================================================
+sub all_script_names
+{
+ my $codeset = @_ > 0 ? shift : LOCALE_CODE_DEFAULT;
+
+ return values %{ $CODES->[$codeset] };
+}
+
+
+#=======================================================================
+#
+# initialisation code - stuff the DATA into the ALPHA2 hash
+#
+#=======================================================================
+{
+ my ($alpha2, $alpha3, $numeric);
+ my $script;
+
+
+ while (<DATA>)
+ {
+ next unless /\S/;
+ chop;
+ ($alpha2, $alpha3, $numeric, $script) = split(/:/, $_, 4);
+
+ $CODES->[LOCALE_CODE_ALPHA_2]->{$alpha2} = $script;
+ $COUNTRIES->[LOCALE_CODE_ALPHA_2]->{"\L$script"} = $alpha2;
+
+ if ($alpha3)
+ {
+ $CODES->[LOCALE_CODE_ALPHA_3]->{$alpha3} = $script;
+ $COUNTRIES->[LOCALE_CODE_ALPHA_3]->{"\L$script"} = $alpha3;
+ }
+
+ if ($numeric)
+ {
+ $CODES->[LOCALE_CODE_NUMERIC]->{$numeric} = $script;
+ $COUNTRIES->[LOCALE_CODE_NUMERIC]->{"\L$script"} = $numeric;
+ }
+
+ }
+}
+
+1;
+
+__DATA__
+am:ama:130:Aramaic
+ar:ara:160:Arabic
+av:ave:151:Avestan
+bh:bhm:300:Brahmi (Ashoka)
+bi:bid:372:Buhid
+bn:ben:325:Bengali
+bo:bod:330:Tibetan
+bp:bpm:285:Bopomofo
+br:brl:570:Braille
+bt:btk:365:Batak
+bu:bug:367:Buginese (Makassar)
+by:bys:550:Blissymbols
+ca:cam:358:Cham
+ch:chu:221:Old Church Slavonic
+ci:cir:291:Cirth
+cm:cmn:402:Cypro-Minoan
+co:cop:205:Coptic
+cp:cpr:403:Cypriote syllabary
+cy:cyr:220:Cyrillic
+ds:dsr:250:Deserel (Mormon)
+dv:dvn:315:Devanagari (Nagari)
+ed:egd:070:Egyptian demotic
+eg:egy:050:Egyptian hieroglyphs
+eh:egh:060:Egyptian hieratic
+el:ell:200:Greek
+eo:eos:210:Etruscan and Oscan
+et:eth:430:Ethiopic
+gl:glg:225:Glagolitic
+gm:gmu:310:Gurmukhi
+gt:gth:206:Gothic
+gu:guj:320:Gujarati
+ha:han:500:Han ideographs
+he:heb:125:Hebrew
+hg:hgl:420:Hangul
+hm:hmo:450:Pahawh Hmong
+ho:hoo:371:Hanunoo
+hr:hrg:410:Hiragana
+hu:hun:176:Old Hungarian runic
+hv:hvn:175:Kok Turki runic
+hy:hye:230:Armenian
+iv:ivl:610:Indus Valley
+ja:jap:930:(alias for Han + Hiragana + Katakana)
+jl:jlg:445:Cherokee syllabary
+jw:jwi:360:Javanese
+ka:kam:241:Georgian (Mxedruli)
+kh:khn:931:(alias for Hangul + Han)
+kk:kkn:411:Katakana
+km:khm:354:Khmer
+kn:kan:345:Kannada
+kr:krn:357:Karenni (Kayah Li)
+ks:kst:305:Kharoshthi
+kx:kax:240:Georgian (Xucuri)
+la:lat:217:Latin
+lf:laf:215:Latin (Fraktur variant)
+lg:lag:216:Latin (Gaelic variant)
+lo:lao:356:Lao
+lp:lpc:335:Lepcha (Rong)
+md:mda:140:Mandaean
+me:mer:100:Meroitic
+mh:may:090:Mayan hieroglyphs
+ml:mlm:347:Malayalam
+mn:mon:145:Mongolian
+my:mya:350:Burmese
+na:naa:400:Linear A
+nb:nbb:401:Linear B
+og:ogm:212:Ogham
+or:ory:327:Oriya
+os:osm:260:Osmanya
+ph:phx:115:Phoenician
+ph:pah:150:Pahlavi
+pl:pld:282:Pollard Phonetic
+pq:pqd:295:Klingon plQaD
+pr:prm:227:Old Permic
+ps:pst:600:Phaistos Disk
+rn:rnr:211:Runic (Germanic)
+rr:rro:620:Rongo-rongo
+sa:sar:110:South Arabian
+si:sin:348:Sinhala
+sj:syj:137:Syriac (Jacobite variant)
+sl:slb:440:Unified Canadian Aboriginal Syllabics
+sn:syn:136:Syriac (Nestorian variant)
+sw:sww:281:Shavian (Shaw)
+sy:syr:135:Syriac (Estrangelo)
+ta:tam:346:Tamil
+tb:tbw:373:Tagbanwa
+te:tel:340:Telugu
+tf:tfn:120:Tifnagh
+tg:tag:370:Tagalog
+th:tha:352:Thai
+tn:tna:170:Thaana
+tw:twr:290:Tengwar
+va:vai:470:Vai
+vs:vsp:280:Visible Speech
+xa:xas:000:Cuneiform, Sumero-Akkadian
+xf:xfa:105:Cuneiform, Old Persian
+xk:xkn:412:(alias for Hiragana + Katakana)
+xu:xug:106:Cuneiform, Ugaritic
+yi:yii:460:Yi
+zx:zxx:997:Unwritten language
+zy:zyy:998:Undetermined script
+zz:zzz:999:Uncoded script
diff --git a/lib/Locale/Script.pod b/lib/Locale/Script.pod
new file mode 100644
index 0000000000..8cc981edff
--- /dev/null
+++ b/lib/Locale/Script.pod
@@ -0,0 +1,253 @@
+
+=head1 NAME
+
+Locale::Script - ISO codes for script identification (ISO 15924)
+
+=head1 SYNOPSIS
+
+ use Locale::Script;
+ use Locale::Constants;
+
+ $script = code2script('ph'); # 'Phoenician'
+ $code = script2code('Tibetan'); # 'bo'
+ $code3 = script2code('Tibetan',
+ LOCALE_CODE_ALPHA_3); # 'bod'
+ $codeN = script2code('Tibetan',
+ LOCALE_CODE_ALPHA_NUMERIC); # 330
+
+ @codes = all_script_codes();
+ @scripts = all_script_names();
+
+
+=head1 DESCRIPTION
+
+The C<Locale::Script> module provides access to the ISO
+codes for identifying scripts, as defined in ISO 15924.
+For example, Egyptian hieroglyphs are denoted by the two-letter
+code 'eg', the three-letter code 'egy', and the numeric code 050.
+
+You can either access the codes via the conversion routines
+(described below), or with the two functions which return lists
+of all script codes or all script names.
+
+There are three different code sets you can use for identifying
+scripts:
+
+=over 4
+
+=item B<alpha-2>
+
+Two letter codes, such as 'bo' for Tibetan.
+This code set is identified with the symbol C<LOCALE_CODE_ALPHA_2>.
+
+=item B<alpha-3>
+
+Three letter codes, such as 'ell' for Greek.
+This code set is identified with the symbol C<LOCALE_CODE_ALPHA_3>.
+
+=item B<numeric>
+
+Numeric codes, such as 410 for Hiragana.
+This code set is identified with the symbol C<LOCALE_CODE_NUMERIC>.
+
+=back
+
+All of the routines take an optional additional argument
+which specifies the code set to use.
+If not specified, it defaults to the two-letter codes.
+This is partly for backwards compatibility (previous versions
+of Locale modules only supported the alpha-2 codes), and
+partly because they are the most widely used codes.
+
+The alpha-2 and alpha-3 codes are not case-dependent,
+so you can use 'BO', 'Bo', 'bO' or 'bo' for Tibetan.
+When a code is returned by one of the functions in
+this module, it will always be lower-case.
+
+=head2 SPECIAL CODES
+
+The standard defines various special codes.
+
+=over 4
+
+=item *
+
+The standard reserves codes in the ranges B<qa> - B<qt>,
+B<qaa> - B<qat>, and B<900> - B<919>, for private use.
+
+=item *
+
+B<zx>, B<zxx>, and B<997>, are the codes for unwritten languages.
+
+=item *
+
+B<zy>, B<zyy>, and B<998>, are the codes for an undetermined script.
+
+=item *
+
+B<zz>, B<zzz>, and B<999>, are the codes for an uncoded script.
+
+=back
+
+The private codes are not recognised by Locale::Script,
+but the others are.
+
+
+=head1 CONVERSION ROUTINES
+
+There are three conversion routines: C<code2script()>, C<script2code()>,
+and C<script_code2code()>.
+
+=over 4
+
+=item code2script( CODE, [ CODESET ] )
+
+This function takes a script code and returns a string
+which contains the name of the script identified.
+If the code is not a valid script code, as defined by ISO 15924,
+then C<undef> will be returned:
+
+ $script = code2script('cy'); # Cyrillic
+
+=item script2code( STRING, [ CODESET ] )
+
+This function takes a script name and returns the corresponding
+script code, if such exists.
+If the argument could not be identified as a script name,
+then C<undef> will be returned:
+
+ $code = script2code('Gothic', LOCALE_CODE_ALPHA_3);
+ # $code will now be 'gth'
+
+The case of the script name is not important.
+See the section L<KNOWN BUGS AND LIMITATIONS> below.
+
+=item script_code2code( CODE, CODESET, CODESET )
+
+This function takes a script code from one code set,
+and returns the corresponding code from another code set.
+
+ $alpha2 = script_code2code('jwi',
+ LOCALE_CODE_ALPHA_3 => LOCALE_CODE_ALPHA_2);
+ # $alpha2 will now be 'jw' (Javanese)
+
+If the code passed is not a valid script code in
+the first code set, or if there isn't a code for the
+corresponding script in the second code set,
+then C<undef> will be returned.
+
+=back
+
+
+=head1 QUERY ROUTINES
+
+There are two function which can be used to obtain a list of all codes,
+or all script names:
+
+=over 4
+
+=item C<all_script_codes ( [ CODESET ] )>
+
+Returns a list of all two-letter script codes.
+The codes are guaranteed to be all lower-case,
+and not in any particular order.
+
+=item C<all_script_names ( [ CODESET ] )>
+
+Returns a list of all script names for which there is a corresponding
+script code in the specified code set.
+The names are capitalised, and not returned in any particular order.
+
+=back
+
+
+=head1 EXAMPLES
+
+The following example illustrates use of the C<code2script()> function.
+The user is prompted for a script code, and then told the corresponding
+script name:
+
+ $| = 1; # turn off buffering
+
+ print "Enter script code: ";
+ chop($code = <STDIN>);
+ $script = code2script($code, LOCALE_CODE_ALPHA_2);
+ if (defined $script)
+ {
+ print "$code = $script\n";
+ }
+ else
+ {
+ print "'$code' is not a valid script code!\n";
+ }
+
+
+=head1 KNOWN BUGS AND LIMITATIONS
+
+=over 4
+
+=item *
+
+When using C<script2code()>, the script name must currently appear
+exactly as it does in the source of the module. For example,
+
+ script2code('Egyptian hieroglyphs')
+
+will return B<eg>, as expected. But the following will all return C<undef>:
+
+ script2code('hieroglyphs')
+ script2code('Egyptian Hieroglypics')
+
+If there's need for it, a future version could have variants
+for script names.
+
+=item *
+
+In the current implementation, all data is read in when the
+module is loaded, and then held in memory.
+A lazy implementation would be more memory friendly.
+
+=back
+
+=head1 SEE ALSO
+
+=over 4
+
+=item Locale::Language
+
+ISO two letter codes for identification of language (ISO 639).
+
+=item Locale::Currency
+
+ISO three letter codes for identification of currencies
+and funds (ISO 4217).
+
+=item Locale::Country
+
+ISO three letter codes for identification of countries (ISO 3166)
+
+=item ISO 15924
+
+The ISO standard which defines these codes.
+
+=item http://www.evertype.com/standards/iso15924/
+
+Home page for ISO 15924.
+
+
+=back
+
+
+=head1 AUTHOR
+
+Neil Bowers E<lt>neil@bowers.comE<gt>
+
+=head1 COPYRIGHT
+
+Copyright (c) 2002 Neil Bowers.
+
+This module is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+=cut
+
diff --git a/lib/Tie/Hash.pm b/lib/Tie/Hash.pm
index c97e9d078f..282006984b 100644
--- a/lib/Tie/Hash.pm
+++ b/lib/Tie/Hash.pm
@@ -133,7 +133,7 @@ The accessor methods assume that the actual storage for the data in the tied
hash is in the hash referenced by C<(tied(%tiedhash))[0]>. Thus overwritten
C<TIEHANDLE> method should return an array reference with the first
element being a hash reference, and the remaining methods should operate on the
-hash C<< %{ $_[0]->[0] }>>:
+hash C<< %{ $_[0]->[0] } >>:
package ReportHash;
our @ISA = 'Tie::StdHash';
diff --git a/lib/Tie/Memoize.pm b/lib/Tie/Memoize.pm
index 3059f3c900..2793a04590 100644
--- a/lib/Tie/Memoize.pm
+++ b/lib/Tie/Memoize.pm
@@ -51,7 +51,7 @@ sub TIEHASH {
=head1 NAME
-Tiel::Memoize - add data to hash when needed
+Tie::Memoize - add data to hash when needed
=head1 SYNOPSIS
diff --git a/lib/Time/Local.pm b/lib/Time/Local.pm
index 126c3657ea..686a3d855e 100644
--- a/lib/Time/Local.pm
+++ b/lib/Time/Local.pm
@@ -2,10 +2,11 @@ package Time::Local;
use 5.006;
require Exporter;
use Carp;
+use Config;
use strict;
use integer;
-our $VERSION = '1.03';
+our $VERSION = '1.04';
our @ISA = qw( Exporter );
our @EXPORT = qw( timegm timelocal );
our @EXPORT_OK = qw( timegm_nocheck timelocal_nocheck );
@@ -25,10 +26,8 @@ my (%Options, %Cheat);
my $Epoc = 0; $Epoc = _daygm(gmtime(0));
%Cheat=(); # clear the cache as epoc has changed
-my $MaxDay = do {
- no integer;
- int((~0>>1-43200)/86400)-1;
-};
+my $MaxInt = ((1<<(8 * $Config{intsize} - 2))-1)*2 + 1;
+my $MaxDay = int(($MaxInt-43200)/86400)-1;
sub _daygm {
diff --git a/lib/unicore/To/Lower.pl b/lib/unicore/To/Lower.pl
index 521d3a29ab..a3d67fa4d4 100644
--- a/lib/unicore/To/Lower.pl
+++ b/lib/unicore/To/Lower.pl
@@ -5,29 +5,6 @@
%utf8::ToSpecLower =
(
-'00DF' => "\x{00DF}",
-'0149' => "\x{0149}",
-'01F0' => "\x{01F0}",
-'0390' => "\x{0390}",
-'03B0' => "\x{03B0}",
-'0587' => "\x{0587}",
-'1E96' => "\x{1E96}",
-'1E97' => "\x{1E97}",
-'1E98' => "\x{1E98}",
-'1E99' => "\x{1E99}",
-'1E9A' => "\x{1E9A}",
-'1F50' => "\x{1F50}",
-'1F52' => "\x{1F52}",
-'1F54' => "\x{1F54}",
-'1F56' => "\x{1F56}",
-'1F80' => "\x{1F80}",
-'1F81' => "\x{1F81}",
-'1F82' => "\x{1F82}",
-'1F83' => "\x{1F83}",
-'1F84' => "\x{1F84}",
-'1F85' => "\x{1F85}",
-'1F86' => "\x{1F86}",
-'1F87' => "\x{1F87}",
'1F88' => "\x{1F80}",
'1F89' => "\x{1F81}",
'1F8A' => "\x{1F82}",
@@ -36,14 +13,6 @@
'1F8D' => "\x{1F85}",
'1F8E' => "\x{1F86}",
'1F8F' => "\x{1F87}",
-'1F90' => "\x{1F90}",
-'1F91' => "\x{1F91}",
-'1F92' => "\x{1F92}",
-'1F93' => "\x{1F93}",
-'1F94' => "\x{1F94}",
-'1F95' => "\x{1F95}",
-'1F96' => "\x{1F96}",
-'1F97' => "\x{1F97}",
'1F98' => "\x{1F90}",
'1F99' => "\x{1F91}",
'1F9A' => "\x{1F92}",
@@ -52,14 +21,6 @@
'1F9D' => "\x{1F95}",
'1F9E' => "\x{1F96}",
'1F9F' => "\x{1F97}",
-'1FA0' => "\x{1FA0}",
-'1FA1' => "\x{1FA1}",
-'1FA2' => "\x{1FA2}",
-'1FA3' => "\x{1FA3}",
-'1FA4' => "\x{1FA4}",
-'1FA5' => "\x{1FA5}",
-'1FA6' => "\x{1FA6}",
-'1FA7' => "\x{1FA7}",
'1FA8' => "\x{1FA0}",
'1FA9' => "\x{1FA1}",
'1FAA' => "\x{1FA2}",
@@ -68,45 +29,9 @@
'1FAD' => "\x{1FA5}",
'1FAE' => "\x{1FA6}",
'1FAF' => "\x{1FA7}",
-'1FB2' => "\x{1FB2}",
-'1FB3' => "\x{1FB3}",
-'1FB4' => "\x{1FB4}",
-'1FB6' => "\x{1FB6}",
-'1FB7' => "\x{1FB7}",
'1FBC' => "\x{1FB3}",
-'1FC2' => "\x{1FC2}",
-'1FC3' => "\x{1FC3}",
-'1FC4' => "\x{1FC4}",
-'1FC6' => "\x{1FC6}",
-'1FC7' => "\x{1FC7}",
'1FCC' => "\x{1FC3}",
-'1FD2' => "\x{1FD2}",
-'1FD3' => "\x{1FD3}",
-'1FD6' => "\x{1FD6}",
-'1FD7' => "\x{1FD7}",
-'1FE2' => "\x{1FE2}",
-'1FE3' => "\x{1FE3}",
-'1FE4' => "\x{1FE4}",
-'1FE6' => "\x{1FE6}",
-'1FE7' => "\x{1FE7}",
-'1FF2' => "\x{1FF2}",
-'1FF3' => "\x{1FF3}",
-'1FF4' => "\x{1FF4}",
-'1FF6' => "\x{1FF6}",
-'1FF7' => "\x{1FF7}",
'1FFC' => "\x{1FF3}",
-'FB00' => "\x{FB00}",
-'FB01' => "\x{FB01}",
-'FB02' => "\x{FB02}",
-'FB03' => "\x{FB03}",
-'FB04' => "\x{FB04}",
-'FB05' => "\x{FB05}",
-'FB06' => "\x{FB06}",
-'FB13' => "\x{FB13}",
-'FB14' => "\x{FB14}",
-'FB15' => "\x{FB15}",
-'FB16' => "\x{FB16}",
-'FB17' => "\x{FB17}",
);
return <<'END';
@@ -688,40 +613,14 @@ return <<'END';
1F6D 1F65
1F6E 1F66
1F6F 1F67
-1F88 1F80
-1F89 1F81
-1F8A 1F82
-1F8B 1F83
-1F8C 1F84
-1F8D 1F85
-1F8E 1F86
-1F8F 1F87
-1F98 1F90
-1F99 1F91
-1F9A 1F92
-1F9B 1F93
-1F9C 1F94
-1F9D 1F95
-1F9E 1F96
-1F9F 1F97
-1FA8 1FA0
-1FA9 1FA1
-1FAA 1FA2
-1FAB 1FA3
-1FAC 1FA4
-1FAD 1FA5
-1FAE 1FA6
-1FAF 1FA7
1FB8 1FB0
1FB9 1FB1
1FBA 1F70
1FBB 1F71
-1FBC 1FB3
1FC8 1F72
1FC9 1F73
1FCA 1F74
1FCB 1F75
-1FCC 1FC3
1FD8 1FD0
1FD9 1FD1
1FDA 1F76
@@ -735,7 +634,6 @@ return <<'END';
1FF9 1F79
1FFA 1F7C
1FFB 1F7D
-1FFC 1FF3
2126 03C9
212A 006B
212B 00E5
diff --git a/lib/unicore/To/Title.pl b/lib/unicore/To/Title.pl
index fa8401bdcc..37fefb2053 100644
--- a/lib/unicore/To/Title.pl
+++ b/lib/unicore/To/Title.pl
@@ -28,14 +28,6 @@
'1F85' => "\x{1F8D}",
'1F86' => "\x{1F8E}",
'1F87' => "\x{1F8F}",
-'1F88' => "\x{1F88}",
-'1F89' => "\x{1F89}",
-'1F8A' => "\x{1F8A}",
-'1F8B' => "\x{1F8B}",
-'1F8C' => "\x{1F8C}",
-'1F8D' => "\x{1F8D}",
-'1F8E' => "\x{1F8E}",
-'1F8F' => "\x{1F8F}",
'1F90' => "\x{1F98}",
'1F91' => "\x{1F99}",
'1F92' => "\x{1F9A}",
@@ -44,14 +36,6 @@
'1F95' => "\x{1F9D}",
'1F96' => "\x{1F9E}",
'1F97' => "\x{1F9F}",
-'1F98' => "\x{1F98}",
-'1F99' => "\x{1F99}",
-'1F9A' => "\x{1F9A}",
-'1F9B' => "\x{1F9B}",
-'1F9C' => "\x{1F9C}",
-'1F9D' => "\x{1F9D}",
-'1F9E' => "\x{1F9E}",
-'1F9F' => "\x{1F9F}",
'1FA0' => "\x{1FA8}",
'1FA1' => "\x{1FA9}",
'1FA2' => "\x{1FAA}",
@@ -60,26 +44,16 @@
'1FA5' => "\x{1FAD}",
'1FA6' => "\x{1FAE}",
'1FA7' => "\x{1FAF}",
-'1FA8' => "\x{1FA8}",
-'1FA9' => "\x{1FA9}",
-'1FAA' => "\x{1FAA}",
-'1FAB' => "\x{1FAB}",
-'1FAC' => "\x{1FAC}",
-'1FAD' => "\x{1FAD}",
-'1FAE' => "\x{1FAE}",
-'1FAF' => "\x{1FAF}",
'1FB2' => "\x{1FBA}\x{0345}",
'1FB3' => "\x{1FBC}",
'1FB4' => "\x{0386}\x{0345}",
'1FB6' => "\x{0391}\x{0342}",
'1FB7' => "\x{0391}\x{0342}\x{0345}",
-'1FBC' => "\x{1FBC}",
'1FC2' => "\x{1FCA}\x{0345}",
'1FC3' => "\x{1FCC}",
'1FC4' => "\x{0389}\x{0345}",
'1FC6' => "\x{0397}\x{0342}",
'1FC7' => "\x{0397}\x{0342}\x{0345}",
-'1FCC' => "\x{1FCC}",
'1FD2' => "\x{0399}\x{0308}\x{0300}",
'1FD3' => "\x{0399}\x{0308}\x{0301}",
'1FD6' => "\x{0399}\x{0342}",
@@ -94,7 +68,6 @@
'1FF4' => "\x{038F}\x{0345}",
'1FF6' => "\x{03A9}\x{0342}",
'1FF7' => "\x{03A9}\x{0342}\x{0345}",
-'1FFC' => "\x{1FFC}",
'FB00' => "\x{0046}\x{0066}",
'FB01' => "\x{0046}\x{0069}",
'FB02' => "\x{0046}\x{006C}",
@@ -714,41 +687,14 @@ return <<'END';
1F7B 1FEB
1F7C 1FFA
1F7D 1FFB
-1F80 1F88
-1F81 1F89
-1F82 1F8A
-1F83 1F8B
-1F84 1F8C
-1F85 1F8D
-1F86 1F8E
-1F87 1F8F
-1F90 1F98
-1F91 1F99
-1F92 1F9A
-1F93 1F9B
-1F94 1F9C
-1F95 1F9D
-1F96 1F9E
-1F97 1F9F
-1FA0 1FA8
-1FA1 1FA9
-1FA2 1FAA
-1FA3 1FAB
-1FA4 1FAC
-1FA5 1FAD
-1FA6 1FAE
-1FA7 1FAF
1FB0 1FB8
1FB1 1FB9
-1FB3 1FBC
1FBE 0399
-1FC3 1FCC
1FD0 1FD8
1FD1 1FD9
1FE0 1FE8
1FE1 1FE9
1FE5 1FEC
-1FF3 1FFC
2170 2160
2171 2161
2172 2162
diff --git a/lib/unicore/To/Upper.pl b/lib/unicore/To/Upper.pl
index decd6a833f..575ab3f978 100644
--- a/lib/unicore/To/Upper.pl
+++ b/lib/unicore/To/Upper.pl
@@ -714,41 +714,14 @@ return <<'END';
1F7B 1FEB
1F7C 1FFA
1F7D 1FFB
-1F80 1F88
-1F81 1F89
-1F82 1F8A
-1F83 1F8B
-1F84 1F8C
-1F85 1F8D
-1F86 1F8E
-1F87 1F8F
-1F90 1F98
-1F91 1F99
-1F92 1F9A
-1F93 1F9B
-1F94 1F9C
-1F95 1F9D
-1F96 1F9E
-1F97 1F9F
-1FA0 1FA8
-1FA1 1FA9
-1FA2 1FAA
-1FA3 1FAB
-1FA4 1FAC
-1FA5 1FAD
-1FA6 1FAE
-1FA7 1FAF
1FB0 1FB8
1FB1 1FB9
-1FB3 1FBC
1FBE 0399
-1FC3 1FCC
1FD0 1FD8
1FD1 1FD9
1FE0 1FE8
1FE1 1FE9
1FE5 1FEC
-1FF3 1FFC
2170 2160
2171 2161
2172 2162
diff --git a/lib/unicore/mktables b/lib/unicore/mktables
index 0ca6dcdaf0..654301eeb4 100644
--- a/lib/unicore/mktables
+++ b/lib/unicore/mktables
@@ -1635,9 +1635,12 @@ sub SpecialCasing_txt()
# Wait until all the special cases have been read since
# they are not listed in numeric order.
my $ix = hex($code);
- push @{$CaseInfo{Lower}}, [ $ix, $code, $lower ];
- push @{$CaseInfo{Title}}, [ $ix, $code, $title ];
- push @{$CaseInfo{Upper}}, [ $ix, $code, $upper ];
+ push @{$CaseInfo{Lower}}, [ $ix, $code, $lower ]
+ unless $code eq $lower;
+ push @{$CaseInfo{Title}}, [ $ix, $code, $title ]
+ unless $code eq $title;
+ push @{$CaseInfo{Upper}}, [ $ix, $code, $upper ]
+ unless $code eq $upper;
}
close IN;
@@ -1658,6 +1661,10 @@ sub SpecialCasing_txt()
my $tostr =
join "", map { sprintf "\\x{%s}", $_ } split ' ', $to;
push @OUT, sprintf qq['%04X' => "$tostr",\n], $ix;
+ # Remove any single-character mappings for
+ # the same character since we are going for
+ # the special casing rules.
+ $NormalCase =~ s/^$code\t\t\w+\n//m;
}
push @OUT, (
");\n\n",
diff --git a/patchlevel.h b/patchlevel.h
index 4586af5dd1..4270b109f0 100644
--- a/patchlevel.h
+++ b/patchlevel.h
@@ -79,7 +79,7 @@
#if !defined(PERL_PATCHLEVEL_H_IMPLICIT) && !defined(LOCAL_PATCH_COUNT)
static char *local_patches[] = {
NULL
- ,"DEVEL14709"
+ ,"DEVEL14752"
,NULL
};
diff --git a/pod/buildtoc.PL b/pod/buildtoc.PL
index 47972b7abf..b38bec57a0 100644
--- a/pod/buildtoc.PL
+++ b/pod/buildtoc.PL
@@ -286,8 +286,6 @@ find \&getpods => qw(../lib ../ext);
sub getpods {
if (/\.p(od|m)$/) {
- # Skip .pm files that have corresponding .pod files, and Functions.pm.
- return if /(.*)\.pm$/ && -f "$1.pod";
my $file = $File::Find::name;
return if $file eq '../lib/Pod/Functions.pm'; # Used only by pod itself
return if $file =~ m!lib/Attribute/Handlers/demo/!;
diff --git a/pod/perlapi.pod b/pod/perlapi.pod
index dc52664ef7..af5bf36a24 100644
--- a/pod/perlapi.pod
+++ b/pod/perlapi.pod
@@ -2544,22 +2544,22 @@ version which guarantees to evaluate sv only once.
=for hackers
Found in file sv.h
-=item SvIVx
+=item SvIVX
-Coerces the given SV to an integer and returns it. Guarantees to evaluate
-sv only once. Use the more efficient C<SvIV> otherwise.
+Returns the raw value in the SV's IV slot, without checks or conversions.
+Only use when you are sure SvIOK is true. See also C<SvIV()>.
- IV SvIVx(SV* sv)
+ IV SvIVX(SV* sv)
=for hackers
Found in file sv.h
-=item SvIVX
+=item SvIVx
-Returns the raw value in the SV's IV slot, without checks or conversions.
-Only use when you are sure SvIOK is true. See also C<SvIV()>.
+Coerces the given SV to an integer and returns it. Guarantees to evaluate
+sv only once. Use the more efficient C<SvIV> otherwise.
- IV SvIVX(SV* sv)
+ IV SvIVx(SV* sv)
=for hackers
Found in file sv.h
@@ -2659,22 +2659,22 @@ which guarantees to evaluate sv only once.
=for hackers
Found in file sv.h
-=item SvNVX
+=item SvNVx
-Returns the raw value in the SV's NV slot, without checks or conversions.
-Only use when you are sure SvNOK is true. See also C<SvNV()>.
+Coerces the given SV to a double and returns it. Guarantees to evaluate
+sv only once. Use the more efficient C<SvNV> otherwise.
- NV SvNVX(SV* sv)
+ NV SvNVx(SV* sv)
=for hackers
Found in file sv.h
-=item SvNVx
+=item SvNVX
-Coerces the given SV to a double and returns it. Guarantees to evaluate
-sv only once. Use the more efficient C<SvNV> otherwise.
+Returns the raw value in the SV's NV slot, without checks or conversions.
+Only use when you are sure SvNOK is true. See also C<SvNV()>.
- NV SvNVx(SV* sv)
+ NV SvNVX(SV* sv)
=for hackers
Found in file sv.h
@@ -2760,8 +2760,9 @@ Found in file sv.h
=item SvPV
-Returns a pointer to the string in the SV, or a stringified form of the SV
-if the SV does not contain a string. Handles 'get' magic. See also
+Returns a pointer to the string in the SV, or a stringified form of
+the SV if the SV does not contain a string. The SV may cache the
+stringified version becoming C<SvPOK>. Handles 'get' magic. See also
C<SvPVx> for a version which guarantees to evaluate sv only once.
char* SvPV(SV* sv, STRLEN len)
@@ -2868,29 +2869,30 @@ Like C<SvPV_nolen>, but converts sv to utf8 first if necessary.
=for hackers
Found in file sv.h
-=item SvPVx
+=item SvPVX
-A version of C<SvPV> which guarantees to evaluate sv only once.
+Returns a pointer to the physical string in the SV. The SV must contain a
+string.
- char* SvPVx(SV* sv, STRLEN len)
+ char* SvPVX(SV* sv)
=for hackers
Found in file sv.h
-=item SvPVX
+=item SvPVx
-Returns a pointer to the physical string in the SV. The SV must contain a
-string.
+A version of C<SvPV> which guarantees to evaluate sv only once.
- char* SvPVX(SV* sv)
+ char* SvPVx(SV* sv, STRLEN len)
=for hackers
Found in file sv.h
=item SvPV_force
-Like <SvPV> but will force the SV into becoming a string (SvPOK). You want
-force if you are going to update the SvPVX directly.
+Like C<SvPV> but will force the SV into containing just a string
+(C<SvPOK_only>). You want force if you are going to update the C<SvPVX>
+directly.
char* SvPV_force(SV* sv, STRLEN len)
@@ -2899,8 +2901,9 @@ Found in file sv.h
=item SvPV_force_nomg
-Like <SvPV> but will force the SV into becoming a string (SvPOK). You want
-force if you are going to update the SvPVX directly. Doesn't process magic.
+Like C<SvPV> but will force the SV into containing just a string
+(C<SvPOK_only>). You want force if you are going to update the C<SvPVX>
+directly. Doesn't process magic.
char* SvPV_force_nomg(SV* sv, STRLEN len)
@@ -2909,8 +2912,9 @@ Found in file sv.h
=item SvPV_nolen
-Returns a pointer to the string in the SV, or a stringified form of the SV
-if the SV does not contain a string. Handles 'get' magic.
+Returns a pointer to the string in the SV, or a stringified form of
+the SV if the SV does not contain a string. The SV may cache the
+stringified form becoming C<SvPOK>. Handles 'get' magic.
char* SvPV_nolen(SV* sv)
@@ -4554,16 +4558,18 @@ The "ustrp" is a pointer to the character buffer to put the
conversion result to. The "lenp" is a pointer to the length
of the result.
-The "swash" is a pointer to the swash to use.
+The "swashp" is a pointer to the swash to use.
-The "normal" is a string like "ToLower" which means the swash
-$utf8::ToLower, which is stored in lib/unicore/To/Lower.pl,
-and loaded by SWASHGET, using lib/utf8_heavy.pl.
+Both the special and normal mappings are stored lib/unicore/To/Foo.pl,
+and loaded by SWASHGET, using lib/utf8_heavy.pl. The special (usually,
+but not always, a multicharacter mapping), is tried first.
+
+The "special" is a string like "utf8::ToSpecLower", which means the
+hash %utf8::ToSpecLower. The access to the hash is through
+Perl_to_utf8_case().
-The "special" is a string like "utf8::ToSpecLower", which means
-the hash %utf8::ToSpecLower, which is stored in the same file,
-lib/unicore/To/Lower.pl, and also loaded by SWASHGET. The access
-to the hash is by Perl_to_utf8_case().
+The "normal" is a string like "ToLower" which means the swash
+%utf8::ToLower.
UV to_utf8_case(U8 *p, U8* ustrp, STRLEN *lenp, SV **swash, char *normal, char *special)
diff --git a/pod/perlfaq4.pod b/pod/perlfaq4.pod
index 3b9cac69a3..8df3c8281d 100644
--- a/pod/perlfaq4.pod
+++ b/pod/perlfaq4.pod
@@ -581,7 +581,7 @@ really does work:
@( = ('(','');
@) = (')','');
($re=$_)=~s/((BEGIN)|(END)|.)/$)[!$3]\Q$1\E$([!$2]/gs;
- @$ = (eval{/$re/},$@!~/unmatched/);
+ @$ = (eval{/$re/},$@!~/unmatched/i);
print join("\n",@$[0..$#$]) if( $$[-1] );
=head2 How do I reverse a string?
diff --git a/pod/perlop.pod b/pod/perlop.pod
index 1b5d3e7152..73564ef1ed 100644
--- a/pod/perlop.pod
+++ b/pod/perlop.pod
@@ -709,7 +709,7 @@ and in transliterations.
\x1b hex char (ESC)
\x{263a} wide hex char (SMILEY)
\c[ control char (ESC)
- \N{name} named char
+ \N{name} named Unicode character
The following escape sequences are available in constructs that interpolate
but not in transliterations.
@@ -721,9 +721,12 @@ but not in transliterations.
\E end case modification
\Q quote non-word characters till \E
-If C<use locale> is in effect, the case map used by C<\l>, C<\L>, C<\u>
-and C<\U> is taken from the current locale. See L<perllocale>. For
-documentation of C<\N{name}>, see L<charnames>.
+If C<use locale> is in effect, the case map used by C<\l>, C<\L>,
+C<\u> and C<\U> is taken from the current locale. See L<perllocale>.
+If Unicode (for example, C<\N{}> or wide hex characters of 0x100 or
+beyond) is being used, the case map used by C<\l>, C<\L>, C<\u> and
+C<\U> is as defined by Unicode. For documentation of C<\N{name}>,
+see L<charnames>.
All systems use the virtual C<"\n"> to represent a line terminator,
called a "newline". There is no such thing as an unvarying, physical
diff --git a/pod/perlsub.pod b/pod/perlsub.pod
index 8ec39e35b9..b929c988d6 100644
--- a/pod/perlsub.pod
+++ b/pod/perlsub.pod
@@ -327,9 +327,12 @@ the scope of $answer extends from its declaration through the rest
of that conditional, including any C<elsif> and C<else> clauses,
but not beyond it.
-None of the foregoing text applies to C<if/unless> or C<while/until>
-modifiers appended to simple statements. Such modifiers are not
-control structures and have no effect on scoping.
+B<NOTE:> None of the foregoing text applies to C<if/unless>,
+C<while/until> or C<for> modifiers appended to simple statements. Such
+modifiers are not control structures and have no effect on scoping. The
+use of such modifiers in conjunction with C<my> is best avoided, as it may
+have unexpected effects. A future release of Perl may define precise
+semantics for constructs such as C<my $foo = 1 if $bar>.
The C<foreach> loop defaults to scoping its index variable dynamically
in the manner of C<local>. However, if the index variable is
diff --git a/pod/perltoc.pod b/pod/perltoc.pod
index 95a0fee2a6..806e12f77a 100644
--- a/pod/perltoc.pod
+++ b/pod/perltoc.pod
@@ -944,10 +944,10 @@ B<-w>, B<-W>, B<-X>
=item Debugger Commands
-h [command], p expr, x expr, V [pkg [vars]], X [vars], T, s [expr], n
-[expr], r, <CR>, c [line|sub], l, l min+incr, l min-max, l line, l subname,
--, w [line], f filename, /pattern/, ?pattern?, L, S [[!]regex], t, t expr,
-b [line] [condition], b subname [condition], b postpone subname
+h [command], p expr, x [maxdepth] expr, V [pkg [vars]], X [vars], T, s
+[expr], n [expr], r, <CR>, c [line|sub], l, l min+incr, l min-max, l line,
+l subname, -, w [line], f filename, /pattern/, ?pattern?, L, S [[!]regex],
+t, t expr, b [line] [condition], b subname [condition], b postpone subname
[condition], b load filename, b compile subname, d [line], D, a [line]
command, a [line], A, W expr, W, O booloption .., O anyoption? .., O
option=value .., < ?, < [ command ], << command, > ?, > command, >>
@@ -960,9 +960,10 @@ cmd, @ file, H -number, q or ^D, R, |dbcmd, ||dbcmd, command, m expr, man
C<recallCommand>, C<ShellBang>, C<pager>, C<tkRunning>, C<signalLevel>,
C<warnLevel>, C<dieLevel>, C<AutoTrace>, C<LineInfo>, C<inhibit_exit>,
C<PrintRet>, C<ornaments>, C<frame>, C<maxTraceLen>, C<windowSize>,
-C<arrayDepth>, C<hashDepth>, C<compactDump>, C<veryCompact>, C<globPrint>,
-C<DumpDBFiles>, C<DumpPackages>, C<DumpReused>, C<quote>, C<HighBit>,
-C<undefPrint>, C<UsageOnly>, C<TTY>, C<noTTY>, C<ReadLine>, C<NonStop>
+C<arrayDepth>, C<hashDepth>, C<dumpDepth>, C<compactDump>, C<veryCompact>,
+C<globPrint>, C<DumpDBFiles>, C<DumpPackages>, C<DumpReused>, C<quote>,
+C<HighBit>, C<undefPrint>, C<UsageOnly>, C<TTY>, C<noTTY>, C<ReadLine>,
+C<NonStop>
=item Debugger input/output
@@ -2817,8 +2818,8 @@ References, Tutorials, Task-Oriented, Special Topics
=back
-=head2 perlfaq3 - Programming Tools ($Revision: 1.13 $, $Date: 2002/02/08
-22:32:47 $)
+=head2 perlfaq3 - Programming Tools ($Revision: 1.15 $, $Date: 2002/02/11
+19:29:52 $)
=over 4
@@ -3117,8 +3118,8 @@ array of hashes or arrays?
=back
-=head2 perlfaq5 - Files and Formats ($Revision: 1.8 $, $Date: 2002/01/28
-04:17:26 $)
+=head2 perlfaq5 - Files and Formats ($Revision: 1.9 $, $Date: 2002/02/11
+19:30:21 $)
=over 4
@@ -4372,12 +4373,12 @@ svtype, SVt_IV, SVt_NV, SVt_PV, SVt_PVAV, SVt_PVCV, SVt_PVHV, SVt_PVMG
get_sv, looks_like_number, newRV_inc, newRV_noinc, newSV, newSViv, newSVnv,
newSVpv, newSVpvf, newSVpvn, newSVpvn_share, newSVrv, newSVsv, newSVuv,
new_vstring, SvCUR, SvCUR_set, SvEND, SvGROW, SvIOK, SvIOKp, SvIOK_notUV,
-SvIOK_off, SvIOK_on, SvIOK_only, SvIOK_only_UV, SvIOK_UV, SvIV, SvIVx,
-SvIVX, SvLEN, SvNIOK, SvNIOKp, SvNIOK_off, SvNOK, SvNOKp, SvNOK_off,
-SvNOK_on, SvNOK_only, SvNV, SvNVX, SvNVx, SvOK, SvOOK, SvPOK, SvPOKp,
+SvIOK_off, SvIOK_on, SvIOK_only, SvIOK_only_UV, SvIOK_UV, SvIV, SvIVX,
+SvIVx, SvLEN, SvNIOK, SvNIOKp, SvNIOK_off, SvNOK, SvNOKp, SvNOK_off,
+SvNOK_on, SvNOK_only, SvNV, SvNVx, SvNVX, SvOK, SvOOK, SvPOK, SvPOKp,
SvPOK_off, SvPOK_on, SvPOK_only, SvPOK_only_UTF8, SvPV, SvPVbyte,
SvPVbytex, SvPVbytex_force, SvPVbyte_force, SvPVbyte_nolen, SvPVutf8,
-SvPVutf8x, SvPVutf8x_force, SvPVutf8_force, SvPVutf8_nolen, SvPVx, SvPVX,
+SvPVutf8x, SvPVutf8x_force, SvPVutf8_force, SvPVutf8_nolen, SvPVX, SvPVx,
SvPV_force, SvPV_force_nomg, SvPV_nolen, SvREFCNT, SvREFCNT_dec,
SvREFCNT_inc, SvROK, SvROK_off, SvROK_on, SvRV, SvSTASH, SvTAINT,
SvTAINTED, SvTAINTED_off, SvTAINTED_on, SvTRUE, SvTYPE, SvUNLOCK, SvUOK,
@@ -7944,6 +7945,8 @@ LIST, waitpid PID,FLAGS
=over 4
+=item Multiple methods to build perl for VOS
+
=item Stratus POSIX Support
=back
@@ -8332,6 +8335,20 @@ new, phash
=back
+=head2 if - C<use> a Perl module if a condition holds
+
+=over 4
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=item BUGS
+
+=item AUTHOR
+
+=back
+
=head2 integer - Perl pragma to use integer arithmetic instead of floating
point
@@ -13599,7 +13616,7 @@ EXPR, tainted EXPR, weaken REF
=item SEE ALSO
-Locale::Language, Locale::Country, Locale::Currency
+Locale::Language, Locale::Country, Locale::Script, Locale::Currency
=item AUTHOR
@@ -13613,41 +13630,21 @@ Locale::Language, Locale::Country, Locale::Currency
=item SYNOPSIS
-=back
-
-=over 4
-
=item DESCRIPTION
B<alpha-2>, B<alpha-3>, B<numeric>
-=back
-
-=over 4
-
=item CONVERSION ROUTINES
code2country( CODE, [ CODESET ] ), country2code( STRING, [ CODESET ] ),
country_code2code( CODE, CODESET, CODESET )
-=back
-
-=over 4
-
=item QUERY ROUTINES
C<all_country_codes( [ CODESET ] )>, C<all_country_names( [ CODESET ] )>
-=back
-
-=over 4
-
=item CODE ALIASING
-=back
-
-=over 4
-
=item EXAMPLES
=item DOMAIN NAMES
@@ -13656,7 +13653,7 @@ C<all_country_codes( [ CODESET ] )>, C<all_country_names( [ CODESET ] )>
=item SEE ALSO
-Locale::Language, Locale::Currency, ISO 3166,
+Locale::Language, Locale::Script, Locale::Currency, ISO 3166,
http://www.din.de/gremien/nas/nabd/iso3166ma/,
http://www.egt.ie/standards/iso3166/iso3166-1-en.html,
http://www.cia.gov/cia/publications/factbook/docs/app-f.html
@@ -13674,41 +13671,26 @@ identification (ISO 4217)
=item SYNOPSIS
-=back
-
-=over 4
-
=item DESCRIPTION
XTS, XXX
-=back
-
-=over 4
-
=item CONVERSION ROUTINES
code2currency(), currency2code()
-=back
-
-=over 4
-
=item QUERY ROUTINES
C<all_currency_codes()>, C<all_currency_names()>
-=back
-
-=over 4
-
=item EXAMPLES
=item KNOWN BUGS AND LIMITATIONS
=item SEE ALSO
-Locale::Country, ISO 4217:1995, http://www.bsi-global.com/iso4217currency
+Locale::Country, Locale::Script, ISO 4217:1995,
+http://www.bsi-global.com/iso4217currency
=item AUTHOR
@@ -13723,39 +13705,23 @@ Locale::Country, ISO 4217:1995, http://www.bsi-global.com/iso4217currency
=item SYNOPSIS
-=back
-
-=over 4
-
=item DESCRIPTION
-=back
-
-=over 4
-
=item CONVERSION ROUTINES
code2language(), language2code()
-=back
-
-=over 4
-
=item QUERY ROUTINES
C<all_language_codes()>, C<all_language_names()>
-=back
-
-=over 4
-
=item EXAMPLES
=item KNOWN BUGS AND LIMITATIONS
=item SEE ALSO
-Locale::Country, Locale::Currency, ISO 639:1988 (E/F),
+Locale::Country, Locale::Script, Locale::Currency, ISO 639:1988 (E/F),
http://lcweb.loc.gov/standards/iso639-2/langhome.html
=item AUTHOR
@@ -13853,6 +13819,46 @@ $language->language_tag(), $language->encoding()
=back
+=head2 Locale::Script - ISO codes for script identification (ISO 15924)
+
+=over 4
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+B<alpha-2>, B<alpha-3>, B<numeric>
+
+=over 4
+
+=item SPECIAL CODES
+
+=back
+
+=item CONVERSION ROUTINES
+
+code2script( CODE, [ CODESET ] ), script2code( STRING, [ CODESET ] ),
+script_code2code( CODE, CODESET, CODESET )
+
+=item QUERY ROUTINES
+
+C<all_script_codes ( [ CODESET ] )>, C<all_script_names ( [ CODESET ] )>
+
+=item EXAMPLES
+
+=item KNOWN BUGS AND LIMITATIONS
+
+=item SEE ALSO
+
+Locale::Language, Locale::Currency, Locale::Country, ISO 15924,
+http://www.evertype.com/standards/iso15924/
+
+=item AUTHOR
+
+=item COPYRIGHT
+
+=back
+
=head2 MIME::Base64 - Encoding and decoding of base64 strings
=over 4
@@ -17472,7 +17478,8 @@ EOF this, TELL this, SEEK this, offset, whence, DESTROY this
=back
-=head2 Tie::Hash, Tie::StdHash - base class definitions for tied hashes
+=head2 Tie::Hash, Tie::StdHash, Tie::ExtraHash - base class definitions for
+tied hashes
=over 4
@@ -17483,12 +17490,34 @@ EOF this, TELL this, SEEK this, offset, whence, DESTROY this
TIEHASH classname, LIST, STORE this, key, value, FETCH this, key, FIRSTKEY
this, NEXTKEY this, lastkey, EXISTS this, key, DELETE this, key, CLEAR this
-=item CAVEATS
+=item Inheriting from B<Tie::StdHash>
+
+=item Inheriting from B<Tie::ExtraHash>
+
+=item C<UNTIE> and C<DESTROY>
=item MORE INFORMATION
=back
+=head2 Tie::Memoize - add data to hash when needed
+
+=over 4
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=item Inheriting from B<Tie::Memoize>
+
+=item EXAMPLE
+
+=item BUGS
+
+=item AUTHOR
+
+=back
+
=head2 Tie::RefHash - use references as hash keys
=over 4
@@ -17860,9 +17889,10 @@ Win32::IsWinNT(), Win32::IsWin95(), Win32::LoadLibrary(LIBNAME),
Win32::LoginName(), Win32::LookupAccountName(SYSTEM, ACCOUNT, DOMAIN, SID,
SIDTYPE), Win32::LookupAccountSID(SYSTEM, SID, ACCOUNT, DOMAIN, SIDTYPE),
Win32::MsgBox(MESSAGE [, FLAGS [, TITLE]]), Win32::NodeName(),
-Win32::RegisterServer(LIBRARYNAME), Win32::SetCwd(NEWDIRECTORY),
-Win32::SetLastError(ERROR), Win32::Sleep(TIME), Win32::Spawn(COMMAND, ARGS,
-PID), Win32::UnregisterServer(LIBRARYNAME)
+Win32::RegisterServer(LIBRARYNAME), Win32::SetChildShowWindow(SHOWWINDOW),
+Win32::SetCwd(NEWDIRECTORY), Win32::SetLastError(ERROR),
+Win32::Sleep(TIME), Win32::Spawn(COMMAND, ARGS, PID),
+Win32::UnregisterServer(LIBRARYNAME)
=back
diff --git a/pod/perlunicode.pod b/pod/perlunicode.pod
index 484f356dc0..1accda426b 100644
--- a/pod/perlunicode.pod
+++ b/pod/perlunicode.pod
@@ -825,7 +825,7 @@ for more discussion of the issues.
=head2 Using Unicode in XS
If you want to handle Perl Unicode in XS extensions, you may find
-the following C APIs useful:
+the following C APIs useful (see perlapi for details):
=over 4
@@ -856,8 +856,8 @@ the UTF-8 byte sequence).
=item *
-utf8_length(s, len) returns the length of the UTF-8 encoded buffer in
-characters. sv_len_utf8(sv) returns the length of the UTF-8 encoded
+utf8_length(start, end) returns the length of the UTF-8 encoded buffer
+in characters. sv_len_utf8(sv) returns the length of the UTF-8 encoded
scalar.
=item *
@@ -869,7 +869,8 @@ get turned on. sv_utf8_decode() does the opposite of sv_utf8_encode().
=item *
-is_utf8_char(buf) returns true if the buffer points to valid UTF-8.
+is_utf8_char(s) returns true if the pointer points to a valid UTF-8
+character.
=item *
@@ -880,7 +881,10 @@ are valid UTF-8.
UTF8SKIP(buf) will return the number of bytes in the UTF-8 encoded
character in the buffer. UNISKIP(chr) will return the number of bytes
-required to UTF-8-encode the Unicode character code point.
+required to UTF-8-encode the Unicode character code point. UTF8SKIP()
+is useful for example for iterating over the characters of a UTF-8
+encoded buffer; UNISKIP() is useful for example in computing
+the size required for a UTF-8 encoded buffer.
=item *
@@ -891,20 +895,24 @@ two pointers pointing to the same UTF-8 encoded buffer.
utf8_hop(s, off) will return a pointer to an UTF-8 encoded buffer that
is C<off> (positive or negative) Unicode characters displaced from the
-UTF-8 buffer C<s>.
+UTF-8 buffer C<s>. Be careful not to overstep the buffer: utf8_hop()
+will merrily run off the end or the beginning if told to do so.
=item *
pv_uni_display(dsv, spv, len, pvlim, flags) and sv_uni_display(dsv,
ssv, pvlim, flags) are useful for debug output of Unicode strings and
-scalars (only for debug: they display B<all> characters as hexadecimal
-code points).
+scalars. By default they are useful only for debug: they display
+B<all> characters as hexadecimal code points, but with the flags
+UNI_DISPLAY_ISPRINT and UNI_DISPLAY_BACKSLASH you can make the output
+more readable.
=item *
-ibcmp_utf8(s1, u1, len1, s2, u2, len2) can be used to compare two
-strings case-insensitively in Unicode. (For case-sensitive
-comparisons you can just use memEQ() and memNE() as usual.)
+ibcmp_utf8(s1, pe1, u1, l1, u1, s2, pe2, l2, u2) can be used to
+compare two strings case-insensitively in Unicode.
+(For case-sensitive comparisons you can just use memEQ() and memNE()
+as usual.)
=back
diff --git a/pp.c b/pp.c
index 51facc0730..f856ea6612 100644
--- a/pp.c
+++ b/pp.c
@@ -3350,8 +3350,10 @@ PP(pp_uc)
SETs(TARG);
}
else {
+ STRLEN nchar = utf8_length(s, s + len);
+
(void)SvUPGRADE(TARG, SVt_PV);
- SvGROW(TARG, (len * 2) + 1);
+ SvGROW(TARG, (nchar * UTF8_MAXLEN_UCLC) + 1);
(void)SvPOK_only(TARG);
d = (U8*)SvPVX(TARG);
send = s + len;
@@ -3417,8 +3419,10 @@ PP(pp_lc)
SETs(TARG);
}
else {
+ STRLEN nchar = utf8_length(s, s + len);
+
(void)SvUPGRADE(TARG, SVt_PV);
- SvGROW(TARG, (len * 2) + 1);
+ SvGROW(TARG, (nchar * UTF8_MAXLEN_UCLC) + 1);
(void)SvPOK_only(TARG);
d = (U8*)SvPVX(TARG);
send = s + len;
diff --git a/pp_ctl.c b/pp_ctl.c
index 14a48c653d..c60f7dc4ea 100644
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -2870,7 +2870,7 @@ PP(pp_require)
OP *op;
sv = POPs;
- if (SvNIOKp(sv)) {
+ if (SvNIOKp(sv) && PL_op->op_type != OP_DOFILE) {
if (SvPOK(sv) && SvNOK(sv) && SvNV(sv)) { /* require v5.6.1 */
UV rev = 0, ver = 0, sver = 0;
STRLEN len;
diff --git a/regcomp.c b/regcomp.c
index 53b1698a47..b453116e5c 100644
--- a/regcomp.c
+++ b/regcomp.c
@@ -3450,8 +3450,7 @@ S_regpposixcc(pTHX_ RExC_state_t *pRExC_state, I32 value)
STATIC void
S_checkposixcc(pTHX_ RExC_state_t *pRExC_state)
{
- if (!SIZE_ONLY && ckWARN(WARN_REGEXP) &&
- POSIXCC(UCHARAT(RExC_parse))) {
+ if (!SIZE_ONLY && POSIXCC(UCHARAT(RExC_parse))) {
char *s = RExC_parse;
char c = *s++;
@@ -3516,7 +3515,7 @@ S_regclass(pTHX_ RExC_state_t *pRExC_state)
nextvalue = RExC_parse < RExC_end ? UCHARAT(RExC_parse) : 0;
- if (!SIZE_ONLY && ckWARN(WARN_REGEXP) && POSIXCC(nextvalue))
+ if (!SIZE_ONLY && POSIXCC(nextvalue))
checkposixcc(pRExC_state);
/* allow 1st char to be ] (allowing it to be - is dealt with later) */
diff --git a/sv.h b/sv.h
index 0a79b2adbe..d925421b20 100644
--- a/sv.h
+++ b/sv.h
@@ -834,24 +834,28 @@ Taints an SV if tainting is enabled
/*
=for apidoc Am|char*|SvPV_force|SV* sv|STRLEN len
-Like <SvPV> but will force the SV into becoming a string (SvPOK). You want
-force if you are going to update the SvPVX directly.
+Like C<SvPV> but will force the SV into containing just a string
+(C<SvPOK_only>). You want force if you are going to update the C<SvPVX>
+directly.
=for apidoc Am|char*|SvPV_force_nomg|SV* sv|STRLEN len
-Like <SvPV> but will force the SV into becoming a string (SvPOK). You want
-force if you are going to update the SvPVX directly. Doesn't process magic.
+Like C<SvPV> but will force the SV into containing just a string
+(C<SvPOK_only>). You want force if you are going to update the C<SvPVX>
+directly. Doesn't process magic.
=for apidoc Am|char*|SvPV|SV* sv|STRLEN len
-Returns a pointer to the string in the SV, or a stringified form of the SV
-if the SV does not contain a string. Handles 'get' magic. See also
+Returns a pointer to the string in the SV, or a stringified form of
+the SV if the SV does not contain a string. The SV may cache the
+stringified version becoming C<SvPOK>. Handles 'get' magic. See also
C<SvPVx> for a version which guarantees to evaluate sv only once.
=for apidoc Am|char*|SvPVx|SV* sv|STRLEN len
A version of C<SvPV> which guarantees to evaluate sv only once.
=for apidoc Am|char*|SvPV_nolen|SV* sv
-Returns a pointer to the string in the SV, or a stringified form of the SV
-if the SV does not contain a string. Handles 'get' magic.
+Returns a pointer to the string in the SV, or a stringified form of
+the SV if the SV does not contain a string. The SV may cache the
+stringified form becoming C<SvPOK>. Handles 'get' magic.
=for apidoc Am|IV|SvIV|SV* sv
Coerces the given SV to an integer and returns it. See C<SvIVx> for a
diff --git a/t/op/alarm.t b/t/op/alarm.t
index 907c385264..c008737dff 100644
--- a/t/op/alarm.t
+++ b/t/op/alarm.t
@@ -44,4 +44,7 @@ $diff = time - $start_time;
# alarm time might be one second less than you said.
is( $@, "ALARM!\n", 'alarm w/$SIG{ALRM} vs system()' );
-ok( abs($diff - 3) <= 1, ' right time' );
+{
+ local $TODO = 'Why does system() block alarm() on VMS?' if $^O eq 'VMS';
+ ok( abs($diff - 3) <= 1, " right time (waited $diff secs for 3-sec alarm)" );
+}
diff --git a/t/op/do.t b/t/op/do.t
index 744a62b3c3..a92a9183bf 100755
--- a/t/op/do.t
+++ b/t/op/do.t
@@ -31,7 +31,7 @@ sub ok {
return $ok;
}
-print "1..20\n";
+print "1..21\n";
# Test do &sub and proper @_ handling.
$_[0] = 0;
@@ -87,6 +87,9 @@ ok( !$@, "do on a non-existing file, first try" );
eval qq{ do uc qq(a file that does not exist); };
ok( !$@, "do on a non-existing file, second try" );
+# 6 must be interpreted as a file name here
+ok( (!defined do 6) && $!, "'do 6' : $!" );
+
END {
1 while unlink("$$.16", "$$.17", "$$.18");
}
diff --git a/t/op/glob.t b/t/op/glob.t
index 079919deca..89263aac18 100755
--- a/t/op/glob.t
+++ b/t/op/glob.t
@@ -55,9 +55,15 @@ print $i == 2 ? "ok 7\n" : "not ok 7\n";
# ... while ($var = glob(...)) should test definedness not truth
-my $ok = "not ok 8\n";
-$ok = "ok 8\n" while my $var = glob("0");
-print $ok;
+if( $INC{'File/Glob.pm'} ) {
+ my $ok = "not ok 8\n";
+ $ok = "ok 8\n" while my $var = glob("0");
+ print $ok;
+}
+else {
+ print "ok 8 # skip: File::Glob emulated Unixism\n";
+}
+
# The formerly-broken test for the situation above would accidentally
# test definedness for an assignment with a LOGOP on the right:
diff --git a/t/uni/case.pl b/t/uni/case.pl
new file mode 100644
index 0000000000..f5c4f7888a
--- /dev/null
+++ b/t/uni/case.pl
@@ -0,0 +1,80 @@
+use File::Spec;
+
+require "test.pl";
+
+sub casetest {
+ my ($base, $spec, $func) = @_;
+ my $file = File::Spec->catfile(File::Spec->catdir(File::Spec->updir,
+ "lib", "unicore", "To"),
+ "$base.pl");
+ my $simple = do $file;
+ my %simple;
+ for my $i (split(/\n/, $simple)) {
+ my ($k, $v) = split(' ', $i);
+ $simple{$k} = $v;
+ }
+ my %seen;
+
+ for my $i (sort keys %simple) {
+ $seen{hex $i}++;
+ }
+ print "# ", scalar keys %simple, " simple mappings\n";
+
+ my $both;
+
+ for my $i (sort keys %$spec) {
+ if (++$seen{hex $i} == 2) {
+ warn "$base: $i seen twice\n";
+ $both++;
+ }
+ }
+ print "# ", scalar keys %$spec, " special mappings\n";
+
+ exit(1) if $both;
+
+ my %none;
+ for my $i (map { ord } split //,
+ "\e !\"#\$%&'()+,-./0123456789:;<=>?\@[\\]^_{|}~\b") {
+ next if pack("U0U", $i) =~ /\w/;
+ $none{$i}++ unless $seen{$i};
+ }
+ print "# ", scalar keys %none, " noncase mappings\n";
+
+ my $tests =
+ (scalar keys %simple) +
+ (scalar keys %$spec) +
+ (scalar keys %none);
+ print "1..$tests\n";
+
+ my $test = 1;
+
+ for my $i (sort { hex $a <=> hex $b } keys %simple) {
+ my $w = "$i -> $simple{$i}";
+ my $c = pack "U0U", hex $i;
+ my $d = $func->($c);
+ print $d eq pack("U0U", hex $simple{$i}) ?
+ "ok $test # $w\n" : "not ok $test # $w\n";
+ $test++;
+ }
+
+ for my $i (sort { hex $a <=> hex $b } keys %$spec) {
+ my $w = qq[$i -> "] . display($spec->{$i}) . qq["];
+ my $c = pack "U0U", hex $i;
+ my $d = $func->($c);
+ print $d eq $spec->{$i} ?
+ "ok $test # $w\n" : "not ok $test # $w\n";
+ $test++;
+ }
+
+
+ for my $i (sort { $a <=> $b } keys %none) {
+ my $w = sprintf "%04X -> %04X", $i, $i;
+ my $c = pack "U0U", $i;
+ my $d = $func->($c);
+ print $d eq $c ?
+ "ok $test # $w\n" : "not ok $test # $w\n";
+ $test++;
+ }
+}
+
+1;
diff --git a/t/uni/lower.t b/t/uni/lower.t
new file mode 100644
index 0000000000..4420d0b165
--- /dev/null
+++ b/t/uni/lower.t
@@ -0,0 +1,8 @@
+BEGIN {
+ chdir 't' if -d 't';
+ @INC = qw(../lib uni .);
+ require "case.pl";
+}
+
+casetest("Lower", \%utf8::ToSpecLower, sub { lc $_[0] });
+
diff --git a/t/uni/title.t b/t/uni/title.t
new file mode 100644
index 0000000000..c0b7e3a016
--- /dev/null
+++ b/t/uni/title.t
@@ -0,0 +1,8 @@
+BEGIN {
+ chdir 't' if -d 't';
+ @INC = qw(../lib uni .);
+ require "case.pl";
+}
+
+casetest("Title", \%utf8::ToSpecTitle, sub { ucfirst $_[0] });
+
diff --git a/t/uni/upper.t b/t/uni/upper.t
new file mode 100644
index 0000000000..5694c26f22
--- /dev/null
+++ b/t/uni/upper.t
@@ -0,0 +1,8 @@
+BEGIN {
+ chdir 't' if -d 't';
+ @INC = qw(../lib uni .);
+ require "case.pl";
+}
+
+casetest("Upper", \%utf8::ToSpecUpper, sub { uc $_[0] });
+
diff --git a/utf8.c b/utf8.c
index b1bdeb6892..7dbb71f7df 100644
--- a/utf8.c
+++ b/utf8.c
@@ -1270,44 +1270,40 @@ The "ustrp" is a pointer to the character buffer to put the
conversion result to. The "lenp" is a pointer to the length
of the result.
-The "swash" is a pointer to the swash to use.
+The "swashp" is a pointer to the swash to use.
-The "normal" is a string like "ToLower" which means the swash
-$utf8::ToLower, which is stored in lib/unicore/To/Lower.pl,
-and loaded by SWASHGET, using lib/utf8_heavy.pl.
+Both the special and normal mappings are stored lib/unicore/To/Foo.pl,
+and loaded by SWASHGET, using lib/utf8_heavy.pl. The special (usually,
+but not always, a multicharacter mapping), is tried first.
-The "special" is a string like "utf8::ToSpecLower", which means
-the hash %utf8::ToSpecLower, which is stored in the same file,
-lib/unicore/To/Lower.pl, and also loaded by SWASHGET. The access
-to the hash is by Perl_to_utf8_case().
+The "special" is a string like "utf8::ToSpecLower", which means the
+hash %utf8::ToSpecLower. The access to the hash is through
+Perl_to_utf8_case().
-=cut
- */
+The "normal" is a string like "ToLower" which means the swash
+%utf8::ToLower.
+
+=cut */
UV
Perl_to_utf8_case(pTHX_ U8 *p, U8* ustrp, STRLEN *lenp, SV **swashp, char *normal, char *special)
{
- UV uv0, uv1, uv2;
+ UV uv0, uv1;
U8 tmpbuf[UTF8_MAXLEN_FOLD+1];
- STRLEN len;
+ STRLEN len = 0;
- if (!*swashp)
- *swashp = swash_init("utf8", normal, &PL_sv_undef, 4, 0);
uv0 = utf8_to_uvchr(p, 0);
/* The NATIVE_TO_UNI() and UNI_TO_NATIVE() mappings
* are necessary in EBCDIC, they are redundant no-ops
* in ASCII-ish platforms, and hopefully optimized away. */
uv1 = NATIVE_TO_UNI(uv0);
uvuni_to_utf8(tmpbuf, uv1);
- uv2 = swash_fetch(*swashp, tmpbuf, TRUE);
- if (uv2) {
- /* It was "normal" (a single character mapping). */
- UV uv3 = UNI_TO_NATIVE(uv2);
-
- len = uvuni_to_utf8(ustrp, uv3) - ustrp;
- }
- else {
- /* It might be "special" (sometimes, but not always,
+
+ if (!*swashp) /* load on-demand */
+ *swashp = swash_init("utf8", normal, &PL_sv_undef, 4, 0);
+
+ if (special) {
+ /* It might be "special" (sometimes, but not always,
* a multicharacter mapping) */
HV *hv;
SV *keysv;
@@ -1319,7 +1315,6 @@ Perl_to_utf8_case(pTHX_ U8 *p, U8* ustrp, STRLEN *lenp, SV **swashp, char *norma
(he = hv_fetch_ent(hv, keysv, FALSE, 0)) &&
(val = HeVAL(he))) {
char *s;
- U8 *d;
s = SvPV(val, len);
if (len == 1)
@@ -1329,7 +1324,7 @@ Perl_to_utf8_case(pTHX_ U8 *p, U8* ustrp, STRLEN *lenp, SV **swashp, char *norma
/* If we have EBCDIC we need to remap the characters
* since any characters in the low 256 are Unicode
* code points, not EBCDIC. */
- U8 *t = (U8*)s, *tend = t + len;
+ U8 *t = (U8*)s, *tend = t + len, *d;
d = tmpbuf;
if (SvUTF8(val)) {
@@ -1353,19 +1348,29 @@ Perl_to_utf8_case(pTHX_ U8 *p, U8* ustrp, STRLEN *lenp, SV **swashp, char *norma
Copy(tmpbuf, ustrp, len, U8);
#else
Copy(s, ustrp, len, U8);
- }
#endif
+ }
}
- else {
- /* It was not "special", either. */
- len = uvchr_to_utf8(ustrp, uv0) - ustrp;
+ }
+
+ if (!len && *swashp) {
+ UV uv2 = swash_fetch(*swashp, tmpbuf, TRUE);
+
+ if (uv2) {
+ /* It was "normal" (a single character mapping). */
+ UV uv3 = UNI_TO_NATIVE(uv2);
+
+ len = uvchr_to_utf8(ustrp, uv3) - ustrp;
}
}
+ if (!len) /* Neither: just copy. */
+ len = uvchr_to_utf8(ustrp, uv0) - ustrp;
+
if (lenp)
*lenp = len;
- return utf8_to_uvchr(ustrp, 0);
+ return len ? utf8_to_uvchr(ustrp, 0) : 0;
}
/*
diff --git a/utf8.h b/utf8.h
index 49531a99ef..feff1b4696 100644
--- a/utf8.h
+++ b/utf8.h
@@ -138,9 +138,11 @@ END_EXTERN_C
/* how wide can a single UTF8 encoded character become */
#define UTF8_MAXLEN 13
/* how wide a character can become when upper/lowercased */
-#define UTF8_MAXLEN_UCLC (UTF8_MAXLEN*2)
+#define UTF8_MAXLEN_UCLC_MULT 3
+#define UTF8_MAXLEN_UCLC (UTF8_MAXLEN*UTF8_MAXLEN_UCLC_MULT)
/* how wide a character can become when casefolded */
-#define UTF8_MAXLEN_FOLD (UTF8_MAXLEN*3)
+#define UTF8_MAXLEN_FOLD_MULT 3
+#define UTF8_MAXLEN_FOLD (UTF8_MAXLEN*UTF8_MAXLEN_FOLD_MULT)
#define IN_BYTES (PL_curcop->op_private & HINT_BYTES)
#define DO_UTF8(sv) (SvUTF8(sv) && !IN_BYTES)
diff --git a/vms/vms.c b/vms/vms.c
index 445b183bcc..52bea49af6 100644
--- a/vms/vms.c
+++ b/vms/vms.c
@@ -4705,15 +4705,18 @@ Perl_opendir(pTHX_ char *name)
if (do_tovmspath(name,dir,0) == NULL) {
return NULL;
}
+ /* Check access before stat; otherwise stat does not
+ * accurately report whether it's a directory.
+ */
+ if (!cando_by_name(S_IRUSR,0,dir)) {
+ set_errno(EACCES); set_vaxc_errno(RMS$_PRV);
+ return NULL;
+ }
if (flex_stat(dir,&sb) == -1) return NULL;
if (!S_ISDIR(sb.st_mode)) {
set_errno(ENOTDIR); set_vaxc_errno(RMS$_DIR);
return NULL;
}
- if (!cando_by_name(S_IRUSR,0,dir)) {
- set_errno(EACCES); set_vaxc_errno(RMS$_PRV);
- return NULL;
- }
/* Get memory for the handle, and the pattern. */
New(1306,dd,1,DIR);
New(1307,dd->pattern,strlen(dir)+sizeof "*.*" + 1,char);
@@ -6579,8 +6582,12 @@ Perl_cando_by_name(pTHX_ I32 bit, Uid_t effective, char *fname)
union prvdef curprv;
struct itmlst_3 armlst[3] = {{sizeof access, CHP$_ACCESS, &access, &retlen},
{sizeof privused, CHP$_PRIVUSED, &privused, &retlen},{0,0,0,0}};
- struct itmlst_3 jpilst[2] = {{sizeof curprv, JPI$_CURPRIV, &curprv, &retlen},
+ struct itmlst_3 jpilst[3] = {{sizeof curprv, JPI$_CURPRIV, &curprv, &retlen},
+ {sizeof usrname, JPI$_USERNAME, &usrname, &usrdsc.dsc$w_length},
+ {0,0,0,0}};
+ struct itmlst_3 usrprolst[2] = {{sizeof curprv, CHP$_PRIV, &curprv, &retlen},
{0,0,0,0}};
+ struct dsc$descriptor_s usrprodsc = {0, DSC$K_DTYPE_T, DSC$K_CLASS_S, 0};
if (!fname || !*fname) return FALSE;
/* Make sure we expand logical names, since sys$check_access doesn't */
@@ -6599,11 +6606,6 @@ Perl_cando_by_name(pTHX_ I32 bit, Uid_t effective, char *fname)
namdsc.dsc$a_pointer = fileified;
}
- if (!usrdsc.dsc$w_length) {
- cuserid(usrname);
- usrdsc.dsc$w_length = strlen(usrname);
- }
-
switch (bit) {
case S_IXUSR: case S_IXGRP: case S_IXOTH:
access = ARM$M_EXECUTE; break;
@@ -6617,7 +6619,28 @@ Perl_cando_by_name(pTHX_ I32 bit, Uid_t effective, char *fname)
return FALSE;
}
- retsts = sys$check_access(&objtyp,&namdsc,&usrdsc,armlst);
+ /* Before we call $check_access, create a user profile with the current
+ * process privs since otherwise it just uses the default privs from the
+ * UAF and might give false positives or negatives.
+ */
+
+ /* get current process privs and username */
+ _ckvmssts(sys$getjpiw(0,0,0,jpilst,iosb,0,0));
+ _ckvmssts(iosb[0]);
+
+ /* find out the space required for the profile */
+ _ckvmssts(sys$create_user_profile(&usrdsc,&usrprolst,0,0,
+ &usrprodsc.dsc$w_length,0));
+
+ /* allocate space for the profile and get it filled in */
+ New(1330,usrprodsc.dsc$a_pointer,usrprodsc.dsc$w_length,char);
+ _ckvmssts(sys$create_user_profile(&usrdsc,&usrprolst,0,usrprodsc.dsc$a_pointer,
+ &usrprodsc.dsc$w_length,0));
+
+ /* use the profile to check access to the file; free profile & analyze results */
+ retsts = sys$check_access(&objtyp,&namdsc,0,armlst,0,0,0,&usrprodsc);
+ Safefree(usrprodsc.dsc$a_pointer);
+ if (retsts == SS$_NOCALLPRIV) retsts = SS$_NOPRIV; /* not really 3rd party */
if (retsts == SS$_NOPRIV || retsts == SS$_NOSUCHOBJECT ||
retsts == SS$_INVFILFOROP || retsts == RMS$_FNF || retsts == RMS$_SYN ||
retsts == RMS$_DIR || retsts == RMS$_DEV || retsts == RMS$_DNF) {
@@ -6627,20 +6650,7 @@ Perl_cando_by_name(pTHX_ I32 bit, Uid_t effective, char *fname)
else set_errno(ENOENT);
return FALSE;
}
- if (retsts == SS$_NORMAL) {
- if (!privused) return TRUE;
- /* We can get access, but only by using privs. Do we have the
- necessary privs currently enabled? */
- _ckvmssts(sys$getjpiw(0,0,0,jpilst,iosb,0,0));
- if ((privused & CHP$M_BYPASS) && !curprv.prv$v_bypass) return FALSE;
- if ((privused & CHP$M_SYSPRV) && !curprv.prv$v_sysprv &&
- !curprv.prv$v_bypass) return FALSE;
- if ((privused & CHP$M_GRPPRV) && !curprv.prv$v_grpprv &&
- !curprv.prv$v_sysprv && !curprv.prv$v_bypass) return FALSE;
- if ((privused & CHP$M_READALL) && !curprv.prv$v_readall) return FALSE;
- return TRUE;
- }
- if (retsts == SS$_ACCONFLICT) {
+ if (retsts == SS$_NORMAL || retsts == SS$_ACCONFLICT) {
return TRUE;
}
_ckvmssts(retsts);