diff options
author | Gurusamy Sarathy <gsar@cpan.org> | 1999-11-13 19:13:04 +0000 |
---|---|---|
committer | Gurusamy Sarathy <gsar@cpan.org> | 1999-11-13 19:13:04 +0000 |
commit | ba973abb2167d22cf71ef30581193c3aaa1d885d (patch) | |
tree | 6082b3b31b32fb1e149feeb7235176abf69e7cea | |
parent | 73811745eab1cbdcd71a7f96d2ebef91be9e927a (diff) | |
parent | c54e8273062a87ae6b235cfa92b11d4b2da434ab (diff) | |
download | perl-ba973abb2167d22cf71ef30581193c3aaa1d885d.tar.gz |
integrate cfgperl changes into mainline
p4raw-id: //depot/perl@4573
229 files changed, 1266 insertions, 259 deletions
@@ -20,7 +20,7 @@ # $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $ # -# Generated on Fri Nov 12 01:02:11 EET 1999 [metaconfig 3.0 PL70] +# Generated on Sat Nov 13 17:55:50 EET 1999 [metaconfig 3.0 PL70] # (with additional metaconfig patches by perlbug@perl.com) cat >/tmp/c1$$ <<EOF @@ -829,7 +829,6 @@ sitelib='' sitelibexp='' siteprefix='' siteprefixexp='' -sizesize='' sizetype='' so='' sharpbang='' @@ -8582,7 +8581,7 @@ else val="$undef" echo "No, it doesn't." case "$lseeksize" in - 8) echo "(This is okay because your off_t is 64 bits wide.)" ;; + 8) echo "(Your off_t is 64 bits, so you could use that.)" ;; esac fi $rm -f try.* try @@ -8604,7 +8603,7 @@ else val="$undef" echo "No, it doesn't." case "$fpossize" in - 8) echo "(This is okay because your fpos_t is 64 bits wide.)" >&4 ;; + 8) echo "(Your fpos_t is 64 bits, so you could use that.)" ;; esac fi $rm -f try.* try @@ -8654,6 +8653,9 @@ esac : see if fseeko exists set fseeko d_fseeko eval $inlibc +case "$longsize" in +8) echo "(Your long is 64 bits, so in a pinch you could use fseek.)" ;; +esac : see if fsetpos exists set fsetpos d_fsetpos @@ -8677,6 +8679,9 @@ eval $inlibc : see if ftello exists set ftello d_ftello eval $inlibc +case "$longsize" in +8) echo "(Your long is 64 bits, so in a pinch you could use ftell.)" ;; +esac : see if getgrent exists set getgrent d_getgrent @@ -9602,7 +9607,12 @@ case "$quadtype" in esac d_quad="$undef" ;; -*) echo "We could use '$quadtype' for 64-bit integers." >&4 +*) if test X"$use64bits" = Xdefine -o X"$longsize" = X8; then + verb="will" + else + verb="could" + fi + echo "We $verb use '$quadtype' for 64-bit integers." >&4 d_quad="$define" ;; esac @@ -13003,37 +13013,6 @@ echo $sig_name | $awk \ }' $rm -f signal signal.c signal.awk signal.lst signal_cmd -echo " " -case "$sizetype" in -*_t) zzz="$sizetype" ;; -*) zzz="filesize" ;; -esac -echo "Checking the size of $zzz..." >&4 -cat > try.c <<EOCP -#include <sys/types.h> -#include <stdio.h> -int main() { - printf("%d\n", (int)sizeof($sizetype)); - exit(0); -} -EOCP -set try -if eval $compile_ok; then - yyy=`./try` - case "$yyy" in - '') sizesize=4 - echo "(I can't execute the test program--guessing $sizesize.)" >&4 - ;; - *) sizesize=$yyy - echo "Your $zzz size is $sizesize bytes." - ;; - esac -else - sizesize=4 - echo "(I can't compile the test program--guessing $sizesize.)" >&4 -fi - - : see what type is used for signed size_t set ssize_t ssizetype int stdio.h sys/types.h eval $typedef @@ -14708,7 +14687,6 @@ sitelib='$sitelib' sitelibexp='$sitelibexp' siteprefix='$siteprefix' siteprefixexp='$siteprefixexp' -sizesize='$sizesize' sizetype='$sizetype' sleep='$sleep' smail='$smail' @@ -718,13 +718,17 @@ lib/termcap.pl Perl library supporting termcap usage lib/timelocal.pl Perl library supporting inverse of localtime, gmtime lib/unicode/ArabLink.pl Unicode character database lib/unicode/ArabLnkGrp.pl Unicode character database +lib/unicode/ArabShap.txt Unicode character database lib/unicode/Bidirectional.pl Unicode character database lib/unicode/Block.pl Unicode character database +lib/unicode/Blocks.txt Unicode character database lib/unicode/Category.pl Unicode character database lib/unicode/CombiningClass.pl Unicode character database +lib/unicode/CompExcl.txt Unicode character database lib/unicode/Decomposition.pl Unicode character database -lib/unicode/Eq/Latin1 Unicode character database -lib/unicode/Eq/Unicode Unicode character database +lib/unicode/EAWidth.txt Unicode character database +lib/unicode/Eq/Latin1.pl Unicode character database +lib/unicode/Eq/Unicode.pl Unicode character database lib/unicode/In/AlphabeticPresentationForms.pl Unicode character database lib/unicode/In/Arabic.pl Unicode character database lib/unicode/In/ArabicPresentationForms-A.pl Unicode character database @@ -735,12 +739,17 @@ lib/unicode/In/BasicLatin.pl Unicode character database lib/unicode/In/Bengali.pl Unicode character database lib/unicode/In/BlockElements.pl Unicode character database lib/unicode/In/Bopomofo.pl Unicode character database +lib/unicode/In/BopomofoExtended.pl Unicode character database lib/unicode/In/BoxDrawing.pl Unicode character database +lib/unicode/In/BraillePatterns.pl Unicode character database lib/unicode/In/CJKCompatibility.pl Unicode character database lib/unicode/In/CJKCompatibilityForms.pl Unicode character database lib/unicode/In/CJKCompatibilityIdeographs.pl Unicode character database +lib/unicode/In/CJKRadicalsSupplement.pl Unicode character database lib/unicode/In/CJKSymbolsandPunctuation.pl Unicode character database lib/unicode/In/CJKUnifiedIdeographs.pl Unicode character database +lib/unicode/In/CJKUnifiedIdeographsExtensionA.pl Unicode character database +lib/unicode/In/Cherokee.pl Unicode character database lib/unicode/In/CombiningDiacriticalMarks.pl Unicode character database lib/unicode/In/CombiningHalfMarks.pl Unicode character database lib/unicode/In/CombiningMarksforSymbols.pl Unicode character database @@ -768,9 +777,12 @@ lib/unicode/In/HighPrivateUseSurrogates.pl Unicode character database lib/unicode/In/HighSurrogates.pl Unicode character database lib/unicode/In/Hiragana.pl Unicode character database lib/unicode/In/IPAExtensions.pl Unicode character database +lib/unicode/In/IdeographicDescriptionCharacters.pl Unicode character database lib/unicode/In/Kanbun.pl Unicode character database +lib/unicode/In/KangxiRadicals.pl Unicode character database lib/unicode/In/Kannada.pl Unicode character database lib/unicode/In/Katakana.pl Unicode character database +lib/unicode/In/Khmer.pl Unicode character database lib/unicode/In/Lao.pl Unicode character database lib/unicode/In/Latin-1Supplement.pl Unicode character database lib/unicode/In/LatinExtended-A.pl Unicode character database @@ -782,18 +794,29 @@ lib/unicode/In/Malayalam.pl Unicode character database lib/unicode/In/MathematicalOperators.pl Unicode character database lib/unicode/In/MiscellaneousSymbols.pl Unicode character database lib/unicode/In/MiscellaneousTechnical.pl Unicode character database +lib/unicode/In/Mongolian.pl Unicode character database +lib/unicode/In/Myanmar.pl Unicode character database lib/unicode/In/NumberForms.pl Unicode character database +lib/unicode/In/Ogham.pl Unicode character database lib/unicode/In/OpticalCharacterRecognition.pl Unicode character database lib/unicode/In/Oriya.pl Unicode character database lib/unicode/In/PrivateUse.pl Unicode character database +lib/unicode/In/Runic.pl Unicode character database +lib/unicode/In/Sinhala.pl Unicode character database lib/unicode/In/SmallFormVariants.pl Unicode character database lib/unicode/In/SpacingModifierLetters.pl Unicode character database lib/unicode/In/Specials.pl Unicode character database lib/unicode/In/SuperscriptsandSubscripts.pl Unicode character database +lib/unicode/In/Syriac.pl Unicode character database lib/unicode/In/Tamil.pl Unicode character database lib/unicode/In/Telugu.pl Unicode character database +lib/unicode/In/Thaana.pl Unicode character database lib/unicode/In/Thai.pl Unicode character database lib/unicode/In/Tibetan.pl Unicode character database +lib/unicode/In/UnifiedCanadianAboriginalSyllabics.pl Unicode character database +lib/unicode/In/YiRadicals.pl Unicode character database +lib/unicode/In/YiSyllables.pl Unicode character database +lib/unicode/Index.txt Unicode character database lib/unicode/Is/ASCII.pl Unicode character database lib/unicode/Is/Alnum.pl Unicode character database lib/unicode/Is/Alpha.pl Unicode character database @@ -862,7 +885,6 @@ lib/unicode/Is/SylA.pl Unicode character database lib/unicode/Is/SylC.pl Unicode character database lib/unicode/Is/SylE.pl Unicode character database lib/unicode/Is/SylI.pl Unicode character database -lib/unicode/Is/Syllable.pl Unicode character database lib/unicode/Is/SylO.pl Unicode character database lib/unicode/Is/SylU.pl Unicode character database lib/unicode/Is/SylV.pl Unicode character database @@ -871,6 +893,7 @@ lib/unicode/Is/SylWC.pl Unicode character database lib/unicode/Is/SylWE.pl Unicode character database lib/unicode/Is/SylWI.pl Unicode character database lib/unicode/Is/SylWV.pl Unicode character database +lib/unicode/Is/Syllable.pl Unicode character database lib/unicode/Is/Upper.pl Unicode character database lib/unicode/Is/Word.pl Unicode character database lib/unicode/Is/XDigit.pl Unicode character database @@ -878,30 +901,25 @@ lib/unicode/Is/Z.pl Unicode character database lib/unicode/Is/Zl.pl Unicode character database lib/unicode/Is/Zp.pl Unicode character database lib/unicode/Is/Zs.pl Unicode character database +lib/unicode/Jamo-2.txt Unicode character database lib/unicode/JamoShort.pl Unicode character database +lib/unicode/LineBrk.txt Unicode character database lib/unicode/Makefile Unicode character database lib/unicode/Name.pl Unicode character database +lib/unicode/Names.txt Unicode character database lib/unicode/Number.pl Unicode character database +lib/unicode/Props.txt Unicode character database lib/unicode/README.Ethiopic Unicode character database +lib/unicode/ReadMe.txt Unicode character database info +lib/unicode/SpecCase.txt Unicode character database lib/unicode/To/Digit.pl Unicode character database lib/unicode/To/Lower.pl Unicode character database lib/unicode/To/Title.pl Unicode character database lib/unicode/To/Upper.pl Unicode character database +lib/unicode/Unicode.html Unicode character database lib/unicode/UnicodeData-Latest.txt Unicode character database -lib/unicode/ArabShap.txt Unicode character database -lib/unicode/Blocks.txt Unicode character database -lib/unicode/CompExcl.txt Unicode character database -lib/unicode/EAWidth.txt Unicode character database -lib/unicode/Index.txt Unicode character database -lib/unicode/Jamo-2.txt Unicode character database -lib/unicode/LineBrk.txt Unicode character database lib/unicode/mktables.PL Unicode character database generator -lib/unicode/Names.txt Unicode character database -lib/unicode/Props.txt Unicode character database -lib/unicode/ReadMe.txt Unicode character database info -lib/unicode/SpecCase.txt Unicode character database lib/unicode/syllables.txt Unicode character database -lib/unicode/Unicode.html Unicode character database lib/utf8.pm Pragma to control Unicode support lib/utf8_heavy.pl Support routines for utf8 pragma lib/validate.pl Perl library supporting wholesale file mode validation diff --git a/Porting/Glossary b/Porting/Glossary index 3d29644d64..371a2a1335 100644 --- a/Porting/Glossary +++ b/Porting/Glossary @@ -828,7 +828,7 @@ d_inetaton (d_inetaton.U): indicates to the C program that the inet_aton() function is available to parse IP address "dotted-quad" strings. -d_int64t (i_inttypes.U): +d_int64t (d_int64t.U): This symbol will be defined if the C compiler supports int64_t. d_isascii (d_isascii.U): @@ -2676,7 +2676,7 @@ ptrsize (ptrsize.U): This variable contains the value of the PTRSIZE symbol, which indicates to the C program how many bytes there are in a pointer. -quadcase (quadtype.U): +quadkind (quadtype.U): This variable, if defined, encodes the type of a quad: 1 = int, 2 = long, 3 = long long, 4 = int64_t. diff --git a/Porting/config.sh b/Porting/config.sh index b8ac0698aa..b730743538 100644 --- a/Porting/config.sh +++ b/Porting/config.sh @@ -8,7 +8,7 @@ # Package name : perl5 # Source directory : . -# Configuration time: Thu Nov 11 21:42:49 EET 1999 +# Configuration time: Sat Nov 13 15:28:21 EET 1999 # Configured by : jhi # Target system : osf1 alpha.hut.fi v4.0 878 alpha @@ -56,7 +56,7 @@ ccflags='-pthread -std -DLANGUAGE_C' ccsymbols='LANGUAGE_C=1 SYSTYPE_BSD=1 _LONGLONG=1 __LANGUAGE_C__=1' cf_by='jhi' cf_email='yourname@yourhost.yourplace.com' -cf_time='Thu Nov 11 21:42:49 EET 1999' +cf_time='Sat Nov 13 15:28:21 EET 1999' charsize='1' chgrp='' chmod='' @@ -591,7 +591,7 @@ privlib='/opt/perl/lib/5.00563' privlibexp='/opt/perl/lib/5.00563' prototype='define' ptrsize='8' -quadcase='2' +quadkind='2' quadtype='long' randbits='48' randfunc='drand48' diff --git a/Porting/config_H b/Porting/config_H index d31265db07..313007519b 100644 --- a/Porting/config_H +++ b/Porting/config_H @@ -17,7 +17,7 @@ /* * Package name : perl5 * Source directory : . - * Configuration time: Thu Nov 11 21:42:49 EET 1999 + * Configuration time: Sat Nov 13 15:28:21 EET 1999 * Configured by : jhi * Target system : osf1 alpha.hut.fi v4.0 878 alpha */ @@ -992,10 +992,6 @@ * This symbol holds the type used for 64-bit integers. * It can be int, long, long long, int64_t etc... */ -/* QUADCASE: - * This symbol, if defined, encodes the type of a quad: - * 1 = int, 2 = long, 3 = long long, 4 = int64_t. - */ /* Uquad_t: * This symbol holds the type used for unsigned 64-bit integers. * It can be unsigned int, unsigned long, unsigned long long, @@ -1004,7 +1000,13 @@ #define HAS_QUAD /**/ #define Quad_t long /**/ #define Uquad_t unsigned long /**/ -#define QUADCASE 2 /**/ +#ifdef HAS_QUAD +# define QUADKIND 2 /**/ +# define QUAD_IS_INT 1 +# define QUAD_IS_LONG 2 +# define QUAD_IS_LONG_LONG 3 +# define QUAD_IS_INT64_T 4 +#endif /* HAS_ACCESSX: * This symbol, if defined, indicates that the accessx routine is @@ -2206,6 +2208,13 @@ */ /*#define HAS_HASMNTOPT / **/ +/* HAS_INT64_T: + * This symbol will defined if the C compiler supports int64_t. + * Usually the <inttypes.h> needs to be included, but sometimes + * <sys/types.h> is enough. + */ +/*#define HAS_INT64_T / **/ + /* HAS_LDBL_DIG: * This symbol, if defined, indicates that this system's <float.h> * or <limits.h> defines the symbol LDBL_DIG, which is the number @@ -2306,13 +2315,7 @@ * This symbol, if defined, indicates to the C program that it should * include <inttypes.h>. */ -/* HAS_INT64_T: - * This symbol will defined if the C compiler supports int64_t. - * Usually the <inttypes.h> needs to be included, but sometimes - * <sys/types.h> is enough. - */ /*#define I_INTTYPES / **/ -/*#define HAS_INT64_T / **/ /* I_MNTENT: * This symbol, if defined, indicates that <mntent.h> exists and @@ -2817,8 +2820,12 @@ /* LSEEKSIZE: * This symbol holds the number of bytes used by the Off_t. */ +/* Off_t_size: + * This symbol holds the number of bytes used by the Off_t. + */ #define Off_t off_t /* <offset> type */ #define LSEEKSIZE 8 /* <offset> size */ +#define Off_t_size 8 /* <offset> size */ /* Mode_t: * This symbol holds the type used to declare file modes diff --git a/README.vms b/README.vms index e2c0e0832e..fb13838842 100644 --- a/README.vms +++ b/README.vms @@ -1,4 +1,5 @@ -Last Revised 01-March-1999 by Dan Sugalski <sugalskd@ous.edu> +Last revised 27-October-1999 by Craig Berry <craig.berry@metamor.com> +Revised 01-March-1999 by Dan Sugalski <dan@sidhe.org> Originally by Charles Bailey <bailey@newman.upenn.edu> * Important safety tip @@ -277,7 +278,7 @@ change these, as they can cause some fairly subtle problems. On systems that are using perl quite a bit, and particularly those with minimal RAM, you can boost the performance of perl by INSTALLing it as -a known image. PERLSHR.EXE is typically larger than 1500 blocks +a known image. PERLSHR.EXE is typically larger than 2000 blocks and that is a reasonably large amount of IO to load each time perl is invoked. @@ -358,7 +359,7 @@ before you rebuild. * Dec C issues Note to DECC users: Some early versions (pre-5.2, some pre-4. If you're Dec -C 5.x or higher, with current patches if anym you're fine) of the DECCRTL +C 5.x or higher, with current patches if any, you're fine) of the DECCRTL contained a few bugs which affect Perl performance: - Newlines are lost on I/O through pipes, causing lines to run together. This shows up as RMS RTB errors when reading from a pipe. You can @@ -380,16 +381,16 @@ specific issues (including both Perl questions and installation problems) there is the VMSPERL mailing list. It's usually a low-volume (10-12 messages a week) mailing list. -The subscription address is VMSPERL-REQUEST@NEWMAN.UPENN.EDU. Send a mail -message with just the words SUBSCRIBE VMSPERL in the body of the message. - -The VMSPERL mailing list address is VMSPERL@NEWMAN.UPENN.EDU. Any mail -sent there gets echoed to all subscribers of the list. - +The subscription address is MAJORDOMO@PERL.ORG. Send a mail message with just +the words SUBSCRIBE VMSPERL in the body of the message. + +The VMSPERL mailing list address is VMSPERL@PERL.ORG. Any mail sent there +gets echoed to all subscribers of the list. There is a searchable archive of +the list at <http://www.xray.mpe.mpg.de/mailing-lists/vmsperl/>. + To unsubscribe from VMSPERL send the message UNSUBSCRIBE VMSPERL to -VMSPERL-REQUEST@NEWMAN.UPENN.EDU. Be sure to do so from the subscribed -account that you are cancelling. - +MAJORDOMO@PERL.ORG. Be sure to do so from the subscribed account that +you are cancelling. * Acknowledgements @@ -412,7 +413,7 @@ missed someone. That said, special thanks are due to the following: Peter Prymmer <pvhp@forte.com> or <pvhp@lns62.lns.cornell.edu> for extensive testing, as well as development work on configuration and documentation for VMS Perl, - Dan Sugalski <sugalskd@ous.edu> + Dan Sugalski <dan@sidhe.org> for extensive contributions to recent version support, development of VMS-specific extensions, and dissemination of information about VMS Perl, @@ -196,6 +196,7 @@ # define fstat PerlLIO_fstat # define ioctl PerlLIO_ioctl # define isatty PerlLIO_isatty +# define link PerlLIO_link # define lseek PerlLIO_lseek # define lstat PerlLIO_lstat # define mktemp PerlLIO_mktemp diff --git a/config_h.SH b/config_h.SH index 0d0d2cba17..8dca72a5c1 100644 --- a/config_h.SH +++ b/config_h.SH @@ -2473,9 +2473,6 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un- /* U64SIZE: * This symbol contains the sizeof(U64). */ -/* NVSIZE: - * This symbol contains the sizeof(NV). - */ #define IVTYPE $ivtype /**/ #define UVTYPE $uvtype /**/ #define I8TYPE $i8type /**/ @@ -2501,7 +2498,6 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un- #define I64SIZE $i64size /**/ #define U64SIZE $u64size /**/ #endif -#define NVSIZE $nvsize /**/ /* IVdf: * This symbol defines the format string used for printing a Perl IV @@ -2834,8 +2830,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un- /* LSEEKSIZE: * This symbol holds the number of bytes used by the Off_t. */ +/* Off_t_size: + * This symbol holds the number of bytes used by the Off_t. + */ #define Off_t $lseektype /* <offset> type */ #define LSEEKSIZE $lseeksize /* <offset> size */ +#define Off_t_size $lseeksize /* <offset> size */ /* Mode_t: * This symbol holds the type used to declare file modes @@ -2852,11 +2852,6 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un- */ #define Pid_t $pidtype /* PID type */ -/* Size_t_size: - * This symbol holds the size of a Size_t in bytes. - */ -#define Size_t_size $sizesize /* */ - /* Size_t: * This symbol holds the type used to declare length parameters * for string functions. It is usually size_t, but may be diff --git a/configure.com b/configure.com index a9ed05be38..cbc3bb7e32 100644 --- a/configure.com +++ b/configure.com @@ -1724,7 +1724,7 @@ $! $! Ask if they want to build with 64-bit support $ if (Archname.eqs."VMS_AXP").and.("''f$extract(1,3, f$getsyi(""version""))'".ges."7.1") $ THEN -$ echo "This version of perl has experimental support for building wtih +$ echo "This version of perl has experimental support for building with $ echo "64 bit integers and 128 bit floating point variables. This gives $ echo "a much larger range for perl's mathematical operations. (Note that $ echo "does *not* enable 64-bit fileops at the moment, as Dec C doesn't @@ -1742,26 +1742,6 @@ $ use_64bit="N" $ ENDIF $ ENDIF $! -$! Ask if they want to build with 64-bit support -$ if (Archname.eqs."VMS_AXP").and.("''f$extract(1,3, f$getsyi(""version""))'".ges."7.1") -$ THEN -$ echo "This version of perl has experimental support for building wtih -$ echo "64 bit integers and 128 bit floating point variables. This gives -$ echo "a much larger range for perl's mathematical operations. (Note that -$ echo "does *not* enable 64-bit fileops at the moment, as Dec C doesn't -$ echo "do that yet)" -$ echo "" -$ dflt = use_64bit -$ rp = "Build with 64 bits? [''dflt'] " -$ GOSUB myread -$ if ans.eqs."" then ans = dflt -$ if (f$extract(0, 1, "''ans'").eqs."Y").or.(f$extract(0, 1, "''ans'").eqs."y") -$ THEN -$ use_64bit="Y" -$ ELSE -$ use_64bit="N" -$ ENDIF -$ ENDIF $! Ask about threads, if appropriate $ if (Using_Dec_C.eqs."Yes") $ THEN diff --git a/ext/DynaLoader/DynaLoader_pm.PL b/ext/DynaLoader/DynaLoader_pm.PL index e20ab42517..a02f5bfae5 100644 --- a/ext/DynaLoader/DynaLoader_pm.PL +++ b/ext/DynaLoader/DynaLoader_pm.PL @@ -3,7 +3,7 @@ use Config; sub to_string { my ($value) = @_; - $value =~ s/\\/\\\\'/g; + $value =~ s/\\/\\\\/g; $value =~ s/'/\\'/g; return "'$value'"; } diff --git a/ext/Errno/Errno_pm.PL b/ext/Errno/Errno_pm.PL index c0598a4acd..7f884a8eed 100644 --- a/ext/Errno/Errno_pm.PL +++ b/ext/Errno/Errno_pm.PL @@ -180,8 +180,9 @@ use Exporter (); use Config; use strict; -\$Config{'myarchname'} eq "$Config{'myarchname'}" or - die "Errno architecture ($Config{'myarchname'}) does not match executable architecture (\$Config{'myarchname'})"; +"\$Config{'archname'}-\$Config{'osvers'}" eq +"$Config{'archname'}-$Config{'osvers'}" or + die "Errno architecture ($Config{'archname'}-$Config{'osvers'}) does not match executable architecture (\$Config{'archname'-\$Config{'osvers'})"; \$VERSION = "$VERSION"; \@ISA = qw(Exporter); diff --git a/ext/IO/IO.xs b/ext/IO/IO.xs index e614cffabb..e5ce83d948 100644 --- a/ext/IO/IO.xs +++ b/ext/IO/IO.xs @@ -357,8 +357,7 @@ setvbuf(handle, buf, type, size) int type int size CODE: -/* Should check HAS_SETVBUF once Configure tests for that */ -#if defined(PERLIO_IS_STDIO) && defined(_IOFBF) +#if defined(PERLIO_IS_STDIO) && defined(_IOFBF) && defined(HAS_SETVBUF) if (!handle) /* Try input stream. */ handle = IoIFP(sv_2io(ST(0))); if (handle) diff --git a/ext/IO/lib/IO/Socket.pm b/ext/IO/lib/IO/Socket.pm index 5cf9e72919..0e115a5633 100644 --- a/ext/IO/lib/IO/Socket.pm +++ b/ext/IO/lib/IO/Socket.pm @@ -169,6 +169,8 @@ sub accept { } $peer = accept($new,$sock) || undef; }; + croak "$@" + if ($@ and $fh); return wantarray ? defined $peer ? ($new, $peer) : () diff --git a/hints/solaris_2.sh b/hints/solaris_2.sh index a5d033b946..7de55f7292 100644 --- a/hints/solaris_2.sh +++ b/hints/solaris_2.sh @@ -339,7 +339,7 @@ EOCBU lflibs="`getconf LFS_LIBS 2>/dev/null|sed -e 's@^-l@@' -e 's@ -l@ @g`" case "$lfcflags$lfldflags$lflibs" in '');; -*) ccflags="$ccflags $lfcflags" +*) ccflags="$ccflags -DUSE_LONG_LONG $lfcflags" ldflags="$ldflags $ldldflags" libswanted="$libswanted $lflibs" ;; diff --git a/iperlsys.h b/iperlsys.h index d130b739d3..9404d184c8 100644 --- a/iperlsys.h +++ b/iperlsys.h @@ -682,6 +682,8 @@ typedef int (*LPLIOFileStat)(struct IPerlLIO*, int, struct stat*); typedef int (*LPLIOIOCtl)(struct IPerlLIO*, int, unsigned int, char*); typedef int (*LPLIOIsatty)(struct IPerlLIO*, int); +typedef int (*LPLIOLink)(struct IPerlLIO*, const char*, + const char *); typedef long (*LPLIOLseek)(struct IPerlLIO*, int, long, int); typedef int (*LPLIOLstat)(struct IPerlLIO*, const char*, struct stat*); @@ -714,6 +716,7 @@ struct IPerlLIO LPLIOFileStat pFileStat; LPLIOIOCtl pIOCtl; LPLIOIsatty pIsatty; + LPLIOLink pLink; LPLIOLseek pLseek; LPLIOLstat pLstat; LPLIOMktemp pMktemp; @@ -758,6 +761,8 @@ struct IPerlLIOInfo (*PL_LIO->pIOCtl)(PL_LIO, (fd), (u), (buf)) #define PerlLIO_isatty(fd) \ (*PL_LIO->pIsatty)(PL_LIO, (fd)) +#define PerlLIO_link(oldname, newname) \ + (*PL_LIO->pLink)(PL_LIO, (oldname), (newname)) #define PerlLIO_lseek(fd, offset, mode) \ (*PL_LIO->pLseek)(PL_LIO, (fd), (offset), (mode)) #define PerlLIO_lstat(name, buf) \ @@ -800,6 +805,7 @@ struct IPerlLIOInfo #define PerlLIO_fstat(fd, buf) Fstat((fd), (buf)) #define PerlLIO_ioctl(fd, u, buf) ioctl((fd), (u), (buf)) #define PerlLIO_isatty(fd) isatty((fd)) +#define PerlLIO_link(oldname, newname) link((oldname), (newname)) #define PerlLIO_lseek(fd, offset, mode) lseek((fd), (offset), (mode)) #define PerlLIO_stat(name, buf) Stat((name), (buf)) #ifdef HAS_LSTAT diff --git a/lib/Exporter/Heavy.pm b/lib/Exporter/Heavy.pm index 95ffc554be..1f9b432514 100644 --- a/lib/Exporter/Heavy.pm +++ b/lib/Exporter/Heavy.pm @@ -213,7 +213,8 @@ sub require_version { my $version = ${"${pkg}::VERSION"}; if (!$version or $version < $wanted) { $version ||= "(undef)"; - my $file = $INC{"$pkg.pm"}; + # %INC contains slashes, but $pkg contains double-colons. + my $file = (map {s,::,/,g; $INC{$_}} "$pkg.pm")[0]; $file &&= " ($file)"; require Carp; Carp::croak("$pkg $wanted required--this is only version $version$file") diff --git a/lib/unicode/ArabLink.pl b/lib/unicode/ArabLink.pl index 399fa6cf3d..ed80abae1a 100644 --- a/lib/unicode/ArabLink.pl +++ b/lib/unicode/ArabLink.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0622 0625 R 0626 D diff --git a/lib/unicode/ArabLnkGrp.pl b/lib/unicode/ArabLnkGrp.pl index e06c3744de..995bf5af9b 100644 --- a/lib/unicode/ArabLnkGrp.pl +++ b/lib/unicode/ArabLnkGrp.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0622 0623 ALEF 0624 WAW diff --git a/lib/unicode/Bidirectional.pl b/lib/unicode/Bidirectional.pl index f2ff4e67bb..6315097bd1 100644 --- a/lib/unicode/Bidirectional.pl +++ b/lib/unicode/Bidirectional.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0000 0008 BN 0009 S diff --git a/lib/unicode/Block.pl b/lib/unicode/Block.pl index 7d6990bd7f..24eb426829 100644 --- a/lib/unicode/Block.pl +++ b/lib/unicode/Block.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0000 007F Basic Latin 0080 00FF Latin-1 Supplement diff --git a/lib/unicode/Category.pl b/lib/unicode/Category.pl index 4e3e87397f..c15232a506 100644 --- a/lib/unicode/Category.pl +++ b/lib/unicode/Category.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0000 001f Cc 0020 Zs diff --git a/lib/unicode/CombiningClass.pl b/lib/unicode/CombiningClass.pl index 5b506ade02..ffa857680e 100644 --- a/lib/unicode/CombiningClass.pl +++ b/lib/unicode/CombiningClass.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0300 0314 230 0315 232 diff --git a/lib/unicode/Decomposition.pl b/lib/unicode/Decomposition.pl index ae4cbaf6ab..e06f4b6a5c 100644 --- a/lib/unicode/Decomposition.pl +++ b/lib/unicode/Decomposition.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 00a0 <noBreak> 0020 00a8 <compat> 0020 0308 diff --git a/lib/unicode/Eq/Latin1 b/lib/unicode/Eq/Latin1.pl index 89ecd763ad..feb3ee126f 100644 --- a/lib/unicode/Eq/Latin1 +++ b/lib/unicode/Eq/Latin1.pl @@ -1,3 +1,7 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! +return <<'END'; 0041 00C0 00C1 00C2 00C3 00C4 00C5 0043 00C7 0045 00C8 00C9 00CA 00CB @@ -14,3 +18,4 @@ 006F 00BA 00F2 00F3 00F4 00F5 00F6 00F8 0075 00F9 00FA 00FB 00FC 0079 00FD 00FF +END diff --git a/lib/unicode/Eq/Unicode b/lib/unicode/Eq/Unicode.pl index 29b2a1c044..dc96a0c535 100644 --- a/lib/unicode/Eq/Unicode +++ b/lib/unicode/Eq/Unicode.pl @@ -1,3 +1,7 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! +return <<'END'; 0041 00C0 00C1 00C2 00C3 00C4 00C5 0100 0102 0104 01CD 0200 0202 0226 1E00 1EA0 1EA2 FF21 0042 0181 0182 1E02 1E04 1E06 212C FF22 0043 00C7 0106 0108 010A 010C 0187 2102 212D FF23 @@ -659,3 +663,4 @@ 3163 FFDC 3164 FFA0 FB49 FB2C FB2D +END diff --git a/lib/unicode/In/AlphabeticPresentationForms.pl b/lib/unicode/In/AlphabeticPresentationForms.pl index 93ded27a55..1afc458c99 100644 --- a/lib/unicode/In/AlphabeticPresentationForms.pl +++ b/lib/unicode/In/AlphabeticPresentationForms.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; FB00 FB4F END diff --git a/lib/unicode/In/Arabic.pl b/lib/unicode/In/Arabic.pl index a9645d55a2..1c6ce8005d 100644 --- a/lib/unicode/In/Arabic.pl +++ b/lib/unicode/In/Arabic.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0600 06FF END diff --git a/lib/unicode/In/ArabicPresentationForms-A.pl b/lib/unicode/In/ArabicPresentationForms-A.pl index b87293762a..4486588ee3 100644 --- a/lib/unicode/In/ArabicPresentationForms-A.pl +++ b/lib/unicode/In/ArabicPresentationForms-A.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; FB50 FDFF END diff --git a/lib/unicode/In/ArabicPresentationForms-B.pl b/lib/unicode/In/ArabicPresentationForms-B.pl index 9e81cf9572..2308d1f5ef 100644 --- a/lib/unicode/In/ArabicPresentationForms-B.pl +++ b/lib/unicode/In/ArabicPresentationForms-B.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; FE70 FEFE END diff --git a/lib/unicode/In/Armenian.pl b/lib/unicode/In/Armenian.pl index f86fd3c58a..48b0ea8197 100644 --- a/lib/unicode/In/Armenian.pl +++ b/lib/unicode/In/Armenian.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0530 058F END diff --git a/lib/unicode/In/Arrows.pl b/lib/unicode/In/Arrows.pl index 3910c8dacd..ed214428ff 100644 --- a/lib/unicode/In/Arrows.pl +++ b/lib/unicode/In/Arrows.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 2190 21FF END diff --git a/lib/unicode/In/BasicLatin.pl b/lib/unicode/In/BasicLatin.pl index 9ce83b3d2d..eb126b6bd6 100644 --- a/lib/unicode/In/BasicLatin.pl +++ b/lib/unicode/In/BasicLatin.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0000 007F END diff --git a/lib/unicode/In/Bengali.pl b/lib/unicode/In/Bengali.pl index 0589b85d81..f1ff7e772f 100644 --- a/lib/unicode/In/Bengali.pl +++ b/lib/unicode/In/Bengali.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0980 09FF END diff --git a/lib/unicode/In/BlockElements.pl b/lib/unicode/In/BlockElements.pl index a52c848d11..8f550a76bc 100644 --- a/lib/unicode/In/BlockElements.pl +++ b/lib/unicode/In/BlockElements.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 2580 259F END diff --git a/lib/unicode/In/Bopomofo.pl b/lib/unicode/In/Bopomofo.pl index 5af1356e3e..5760e63386 100644 --- a/lib/unicode/In/Bopomofo.pl +++ b/lib/unicode/In/Bopomofo.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 3100 312F END diff --git a/lib/unicode/In/BopomofoExtended.pl b/lib/unicode/In/BopomofoExtended.pl new file mode 100644 index 0000000000..b1ce9c6cb8 --- /dev/null +++ b/lib/unicode/In/BopomofoExtended.pl @@ -0,0 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! +return <<'END'; +31A0 31BF +END diff --git a/lib/unicode/In/BoxDrawing.pl b/lib/unicode/In/BoxDrawing.pl index c9c1d1e5bc..e8636bc071 100644 --- a/lib/unicode/In/BoxDrawing.pl +++ b/lib/unicode/In/BoxDrawing.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 2500 257F END diff --git a/lib/unicode/In/BraillePatterns.pl b/lib/unicode/In/BraillePatterns.pl new file mode 100644 index 0000000000..f0c663769b --- /dev/null +++ b/lib/unicode/In/BraillePatterns.pl @@ -0,0 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! +return <<'END'; +2800 28FF +END diff --git a/lib/unicode/In/CJKCompatibility.pl b/lib/unicode/In/CJKCompatibility.pl index 66cbc545c9..bbe60d3a6d 100644 --- a/lib/unicode/In/CJKCompatibility.pl +++ b/lib/unicode/In/CJKCompatibility.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 3300 33FF END diff --git a/lib/unicode/In/CJKCompatibilityForms.pl b/lib/unicode/In/CJKCompatibilityForms.pl index e65dbd3aba..69d8a35902 100644 --- a/lib/unicode/In/CJKCompatibilityForms.pl +++ b/lib/unicode/In/CJKCompatibilityForms.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; FE30 FE4F END diff --git a/lib/unicode/In/CJKCompatibilityIdeographs.pl b/lib/unicode/In/CJKCompatibilityIdeographs.pl index b6822621e8..ebf7996c44 100644 --- a/lib/unicode/In/CJKCompatibilityIdeographs.pl +++ b/lib/unicode/In/CJKCompatibilityIdeographs.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; F900 FAFF END diff --git a/lib/unicode/In/CJKRadicalsSupplement.pl b/lib/unicode/In/CJKRadicalsSupplement.pl new file mode 100644 index 0000000000..254d3c34db --- /dev/null +++ b/lib/unicode/In/CJKRadicalsSupplement.pl @@ -0,0 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! +return <<'END'; +2E80 2EFF +END diff --git a/lib/unicode/In/CJKSymbolsandPunctuation.pl b/lib/unicode/In/CJKSymbolsandPunctuation.pl index bdf4ab90f2..616fcd848e 100644 --- a/lib/unicode/In/CJKSymbolsandPunctuation.pl +++ b/lib/unicode/In/CJKSymbolsandPunctuation.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 3000 303F END diff --git a/lib/unicode/In/CJKUnifiedIdeographs.pl b/lib/unicode/In/CJKUnifiedIdeographs.pl index 04d0a08e05..f3da86fa49 100644 --- a/lib/unicode/In/CJKUnifiedIdeographs.pl +++ b/lib/unicode/In/CJKUnifiedIdeographs.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 4E00 9FFF END diff --git a/lib/unicode/In/CJKUnifiedIdeographsExtensionA.pl b/lib/unicode/In/CJKUnifiedIdeographsExtensionA.pl new file mode 100644 index 0000000000..fb3ab5b9a4 --- /dev/null +++ b/lib/unicode/In/CJKUnifiedIdeographsExtensionA.pl @@ -0,0 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! +return <<'END'; +3400 4DB5 +END diff --git a/lib/unicode/In/Cherokee.pl b/lib/unicode/In/Cherokee.pl new file mode 100644 index 0000000000..caf90be458 --- /dev/null +++ b/lib/unicode/In/Cherokee.pl @@ -0,0 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! +return <<'END'; +13A0 13FF +END diff --git a/lib/unicode/In/CombiningDiacriticalMarks.pl b/lib/unicode/In/CombiningDiacriticalMarks.pl index 2308c52d25..cd26be1190 100644 --- a/lib/unicode/In/CombiningDiacriticalMarks.pl +++ b/lib/unicode/In/CombiningDiacriticalMarks.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0300 036F END diff --git a/lib/unicode/In/CombiningHalfMarks.pl b/lib/unicode/In/CombiningHalfMarks.pl index 004d8052a2..670da163bc 100644 --- a/lib/unicode/In/CombiningHalfMarks.pl +++ b/lib/unicode/In/CombiningHalfMarks.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; FE20 FE2F END diff --git a/lib/unicode/In/CombiningMarksforSymbols.pl b/lib/unicode/In/CombiningMarksforSymbols.pl index b80f637a56..1e404583c1 100644 --- a/lib/unicode/In/CombiningMarksforSymbols.pl +++ b/lib/unicode/In/CombiningMarksforSymbols.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 20D0 20FF END diff --git a/lib/unicode/In/ControlPictures.pl b/lib/unicode/In/ControlPictures.pl index cfaa3c545b..c7d0230b59 100644 --- a/lib/unicode/In/ControlPictures.pl +++ b/lib/unicode/In/ControlPictures.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 2400 243F END diff --git a/lib/unicode/In/CurrencySymbols.pl b/lib/unicode/In/CurrencySymbols.pl index 1a89d72a49..63c271e30c 100644 --- a/lib/unicode/In/CurrencySymbols.pl +++ b/lib/unicode/In/CurrencySymbols.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 20A0 20CF END diff --git a/lib/unicode/In/Cyrillic.pl b/lib/unicode/In/Cyrillic.pl index 657824c1b9..87833c4cbb 100644 --- a/lib/unicode/In/Cyrillic.pl +++ b/lib/unicode/In/Cyrillic.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0400 04FF END diff --git a/lib/unicode/In/Devanagari.pl b/lib/unicode/In/Devanagari.pl index 1a0bffc2aa..acb52fd776 100644 --- a/lib/unicode/In/Devanagari.pl +++ b/lib/unicode/In/Devanagari.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0900 097F END diff --git a/lib/unicode/In/Dingbats.pl b/lib/unicode/In/Dingbats.pl index 3800470f4e..b2e5381c74 100644 --- a/lib/unicode/In/Dingbats.pl +++ b/lib/unicode/In/Dingbats.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 2700 27BF END diff --git a/lib/unicode/In/EnclosedAlphanumerics.pl b/lib/unicode/In/EnclosedAlphanumerics.pl index 760ebd16e8..b8db489369 100644 --- a/lib/unicode/In/EnclosedAlphanumerics.pl +++ b/lib/unicode/In/EnclosedAlphanumerics.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 2460 24FF END diff --git a/lib/unicode/In/EnclosedCJKLettersandMonths.pl b/lib/unicode/In/EnclosedCJKLettersandMonths.pl index 96a9d75796..f580beb13b 100644 --- a/lib/unicode/In/EnclosedCJKLettersandMonths.pl +++ b/lib/unicode/In/EnclosedCJKLettersandMonths.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 3200 32FF END diff --git a/lib/unicode/In/Ethiopic.pl b/lib/unicode/In/Ethiopic.pl index 0ae7c17b0e..2319318693 100644 --- a/lib/unicode/In/Ethiopic.pl +++ b/lib/unicode/In/Ethiopic.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 1200 137F END diff --git a/lib/unicode/In/GeneralPunctuation.pl b/lib/unicode/In/GeneralPunctuation.pl index a582d1f159..ec9017f807 100644 --- a/lib/unicode/In/GeneralPunctuation.pl +++ b/lib/unicode/In/GeneralPunctuation.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 2000 206F END diff --git a/lib/unicode/In/GeometricShapes.pl b/lib/unicode/In/GeometricShapes.pl index 46086b8e8b..9a9ae24772 100644 --- a/lib/unicode/In/GeometricShapes.pl +++ b/lib/unicode/In/GeometricShapes.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 25A0 25FF END diff --git a/lib/unicode/In/Georgian.pl b/lib/unicode/In/Georgian.pl index df1230d700..7557770c66 100644 --- a/lib/unicode/In/Georgian.pl +++ b/lib/unicode/In/Georgian.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 10A0 10FF END diff --git a/lib/unicode/In/Greek.pl b/lib/unicode/In/Greek.pl index 10c1cf85ea..33c33fa7a8 100644 --- a/lib/unicode/In/Greek.pl +++ b/lib/unicode/In/Greek.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0370 03FF END diff --git a/lib/unicode/In/GreekExtended.pl b/lib/unicode/In/GreekExtended.pl index f588406f43..339c935ca9 100644 --- a/lib/unicode/In/GreekExtended.pl +++ b/lib/unicode/In/GreekExtended.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 1F00 1FFF END diff --git a/lib/unicode/In/Gujarati.pl b/lib/unicode/In/Gujarati.pl index 8a31d92571..74efa7564d 100644 --- a/lib/unicode/In/Gujarati.pl +++ b/lib/unicode/In/Gujarati.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0A80 0AFF END diff --git a/lib/unicode/In/Gurmukhi.pl b/lib/unicode/In/Gurmukhi.pl index 1b6857e181..b192bc374c 100644 --- a/lib/unicode/In/Gurmukhi.pl +++ b/lib/unicode/In/Gurmukhi.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0A00 0A7F END diff --git a/lib/unicode/In/HalfwidthandFullwidthForms.pl b/lib/unicode/In/HalfwidthandFullwidthForms.pl index d7ff603e42..cb52d149e5 100644 --- a/lib/unicode/In/HalfwidthandFullwidthForms.pl +++ b/lib/unicode/In/HalfwidthandFullwidthForms.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; FF00 FFEF END diff --git a/lib/unicode/In/HangulCompatibilityJamo.pl b/lib/unicode/In/HangulCompatibilityJamo.pl index e602d4553d..ff38b3f9a5 100644 --- a/lib/unicode/In/HangulCompatibilityJamo.pl +++ b/lib/unicode/In/HangulCompatibilityJamo.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 3130 318F END diff --git a/lib/unicode/In/HangulJamo.pl b/lib/unicode/In/HangulJamo.pl index dd5df946d8..040c454b2e 100644 --- a/lib/unicode/In/HangulJamo.pl +++ b/lib/unicode/In/HangulJamo.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 1100 11FF END diff --git a/lib/unicode/In/HangulSyllables.pl b/lib/unicode/In/HangulSyllables.pl index 95bc194dff..263f0fafee 100644 --- a/lib/unicode/In/HangulSyllables.pl +++ b/lib/unicode/In/HangulSyllables.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; AC00 D7A3 END diff --git a/lib/unicode/In/Hebrew.pl b/lib/unicode/In/Hebrew.pl index e34e6feb39..b59315bd39 100644 --- a/lib/unicode/In/Hebrew.pl +++ b/lib/unicode/In/Hebrew.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0590 05FF END diff --git a/lib/unicode/In/HighPrivateUseSurrogates.pl b/lib/unicode/In/HighPrivateUseSurrogates.pl index 000cb70d01..6cea428015 100644 --- a/lib/unicode/In/HighPrivateUseSurrogates.pl +++ b/lib/unicode/In/HighPrivateUseSurrogates.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; DB80 DBFF END diff --git a/lib/unicode/In/HighSurrogates.pl b/lib/unicode/In/HighSurrogates.pl index 95c7498511..67c4246b08 100644 --- a/lib/unicode/In/HighSurrogates.pl +++ b/lib/unicode/In/HighSurrogates.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; D800 DB7F END diff --git a/lib/unicode/In/Hiragana.pl b/lib/unicode/In/Hiragana.pl index ce8c3ed223..438f68f6c9 100644 --- a/lib/unicode/In/Hiragana.pl +++ b/lib/unicode/In/Hiragana.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 3040 309F END diff --git a/lib/unicode/In/IPAExtensions.pl b/lib/unicode/In/IPAExtensions.pl index 106d84bb83..8298b4e414 100644 --- a/lib/unicode/In/IPAExtensions.pl +++ b/lib/unicode/In/IPAExtensions.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0250 02AF END diff --git a/lib/unicode/In/IdeographicDescriptionCharacters.pl b/lib/unicode/In/IdeographicDescriptionCharacters.pl new file mode 100644 index 0000000000..71916bdd50 --- /dev/null +++ b/lib/unicode/In/IdeographicDescriptionCharacters.pl @@ -0,0 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! +return <<'END'; +2FF0 2FFF +END diff --git a/lib/unicode/In/Kanbun.pl b/lib/unicode/In/Kanbun.pl index 6d575a86bc..6c162ac468 100644 --- a/lib/unicode/In/Kanbun.pl +++ b/lib/unicode/In/Kanbun.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 3190 319F END diff --git a/lib/unicode/In/KangxiRadicals.pl b/lib/unicode/In/KangxiRadicals.pl new file mode 100644 index 0000000000..277da7a71d --- /dev/null +++ b/lib/unicode/In/KangxiRadicals.pl @@ -0,0 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! +return <<'END'; +2F00 2FDF +END diff --git a/lib/unicode/In/Kannada.pl b/lib/unicode/In/Kannada.pl index ad70ade385..b516111cad 100644 --- a/lib/unicode/In/Kannada.pl +++ b/lib/unicode/In/Kannada.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0C80 0CFF END diff --git a/lib/unicode/In/Katakana.pl b/lib/unicode/In/Katakana.pl index cb0f30e474..bae00239e2 100644 --- a/lib/unicode/In/Katakana.pl +++ b/lib/unicode/In/Katakana.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 30A0 30FF END diff --git a/lib/unicode/In/Khmer.pl b/lib/unicode/In/Khmer.pl new file mode 100644 index 0000000000..0771973fe7 --- /dev/null +++ b/lib/unicode/In/Khmer.pl @@ -0,0 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! +return <<'END'; +1780 17FF +END diff --git a/lib/unicode/In/Lao.pl b/lib/unicode/In/Lao.pl index ff2d587264..b1eac57976 100644 --- a/lib/unicode/In/Lao.pl +++ b/lib/unicode/In/Lao.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0E80 0EFF END diff --git a/lib/unicode/In/Latin-1Supplement.pl b/lib/unicode/In/Latin-1Supplement.pl index 3c8b04cac0..cc908963b4 100644 --- a/lib/unicode/In/Latin-1Supplement.pl +++ b/lib/unicode/In/Latin-1Supplement.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0080 00FF END diff --git a/lib/unicode/In/LatinExtended-A.pl b/lib/unicode/In/LatinExtended-A.pl index 872689f969..4b556737eb 100644 --- a/lib/unicode/In/LatinExtended-A.pl +++ b/lib/unicode/In/LatinExtended-A.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0100 017F END diff --git a/lib/unicode/In/LatinExtended-B.pl b/lib/unicode/In/LatinExtended-B.pl index be497d6bfb..e13b0866dd 100644 --- a/lib/unicode/In/LatinExtended-B.pl +++ b/lib/unicode/In/LatinExtended-B.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0180 024F END diff --git a/lib/unicode/In/LatinExtendedAdditional.pl b/lib/unicode/In/LatinExtendedAdditional.pl index 3f1cda1271..c2e454633d 100644 --- a/lib/unicode/In/LatinExtendedAdditional.pl +++ b/lib/unicode/In/LatinExtendedAdditional.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 1E00 1EFF END diff --git a/lib/unicode/In/LetterlikeSymbols.pl b/lib/unicode/In/LetterlikeSymbols.pl index 96ab07b446..af5d0b4810 100644 --- a/lib/unicode/In/LetterlikeSymbols.pl +++ b/lib/unicode/In/LetterlikeSymbols.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 2100 214F END diff --git a/lib/unicode/In/LowSurrogates.pl b/lib/unicode/In/LowSurrogates.pl index a30148c54e..f13e2cce20 100644 --- a/lib/unicode/In/LowSurrogates.pl +++ b/lib/unicode/In/LowSurrogates.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; DC00 DFFF END diff --git a/lib/unicode/In/Malayalam.pl b/lib/unicode/In/Malayalam.pl index 784bac9004..20109c2290 100644 --- a/lib/unicode/In/Malayalam.pl +++ b/lib/unicode/In/Malayalam.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0D00 0D7F END diff --git a/lib/unicode/In/MathematicalOperators.pl b/lib/unicode/In/MathematicalOperators.pl index b1c2db47cb..3904c720ad 100644 --- a/lib/unicode/In/MathematicalOperators.pl +++ b/lib/unicode/In/MathematicalOperators.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 2200 22FF END diff --git a/lib/unicode/In/MiscellaneousSymbols.pl b/lib/unicode/In/MiscellaneousSymbols.pl index 5c6dcd4271..bf799f7f91 100644 --- a/lib/unicode/In/MiscellaneousSymbols.pl +++ b/lib/unicode/In/MiscellaneousSymbols.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 2600 26FF END diff --git a/lib/unicode/In/MiscellaneousTechnical.pl b/lib/unicode/In/MiscellaneousTechnical.pl index 0eb7d1e34b..279a3bd167 100644 --- a/lib/unicode/In/MiscellaneousTechnical.pl +++ b/lib/unicode/In/MiscellaneousTechnical.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 2300 23FF END diff --git a/lib/unicode/In/Mongolian.pl b/lib/unicode/In/Mongolian.pl new file mode 100644 index 0000000000..3959c0fa73 --- /dev/null +++ b/lib/unicode/In/Mongolian.pl @@ -0,0 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! +return <<'END'; +1800 18AF +END diff --git a/lib/unicode/In/Myanmar.pl b/lib/unicode/In/Myanmar.pl new file mode 100644 index 0000000000..6dddbfea05 --- /dev/null +++ b/lib/unicode/In/Myanmar.pl @@ -0,0 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! +return <<'END'; +1000 109F +END diff --git a/lib/unicode/In/NumberForms.pl b/lib/unicode/In/NumberForms.pl index 7d83d317b9..9df1504ab9 100644 --- a/lib/unicode/In/NumberForms.pl +++ b/lib/unicode/In/NumberForms.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 2150 218F END diff --git a/lib/unicode/In/Ogham.pl b/lib/unicode/In/Ogham.pl new file mode 100644 index 0000000000..8b9e125b33 --- /dev/null +++ b/lib/unicode/In/Ogham.pl @@ -0,0 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! +return <<'END'; +1680 169F +END diff --git a/lib/unicode/In/OpticalCharacterRecognition.pl b/lib/unicode/In/OpticalCharacterRecognition.pl index 9168cc758b..a15b2f2eb1 100644 --- a/lib/unicode/In/OpticalCharacterRecognition.pl +++ b/lib/unicode/In/OpticalCharacterRecognition.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 2440 245F END diff --git a/lib/unicode/In/Oriya.pl b/lib/unicode/In/Oriya.pl index 4d61ed359a..7382b5bfb6 100644 --- a/lib/unicode/In/Oriya.pl +++ b/lib/unicode/In/Oriya.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0B00 0B7F END diff --git a/lib/unicode/In/PrivateUse.pl b/lib/unicode/In/PrivateUse.pl index 5b90e4d9b3..735aa4e8e7 100644 --- a/lib/unicode/In/PrivateUse.pl +++ b/lib/unicode/In/PrivateUse.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; E000 F8FF END diff --git a/lib/unicode/In/Runic.pl b/lib/unicode/In/Runic.pl new file mode 100644 index 0000000000..88189ecfd3 --- /dev/null +++ b/lib/unicode/In/Runic.pl @@ -0,0 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! +return <<'END'; +16A0 16FF +END diff --git a/lib/unicode/In/Sinhala.pl b/lib/unicode/In/Sinhala.pl new file mode 100644 index 0000000000..7fb56edb97 --- /dev/null +++ b/lib/unicode/In/Sinhala.pl @@ -0,0 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! +return <<'END'; +0D80 0DFF +END diff --git a/lib/unicode/In/SmallFormVariants.pl b/lib/unicode/In/SmallFormVariants.pl index 4153052890..3383c2ed7e 100644 --- a/lib/unicode/In/SmallFormVariants.pl +++ b/lib/unicode/In/SmallFormVariants.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; FE50 FE6F END diff --git a/lib/unicode/In/SpacingModifierLetters.pl b/lib/unicode/In/SpacingModifierLetters.pl index 69179e615d..be223d55b0 100644 --- a/lib/unicode/In/SpacingModifierLetters.pl +++ b/lib/unicode/In/SpacingModifierLetters.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 02B0 02FF END diff --git a/lib/unicode/In/Specials.pl b/lib/unicode/In/Specials.pl index 6be56a4039..f2610ba9f5 100644 --- a/lib/unicode/In/Specials.pl +++ b/lib/unicode/In/Specials.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; FFF0 FFFD END diff --git a/lib/unicode/In/SuperscriptsandSubscripts.pl b/lib/unicode/In/SuperscriptsandSubscripts.pl index c4041aae3e..9a7fab8b1c 100644 --- a/lib/unicode/In/SuperscriptsandSubscripts.pl +++ b/lib/unicode/In/SuperscriptsandSubscripts.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 2070 209F END diff --git a/lib/unicode/In/Syriac.pl b/lib/unicode/In/Syriac.pl new file mode 100644 index 0000000000..b462daa460 --- /dev/null +++ b/lib/unicode/In/Syriac.pl @@ -0,0 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! +return <<'END'; +0700 074F +END diff --git a/lib/unicode/In/Tamil.pl b/lib/unicode/In/Tamil.pl index 27f61fa3d7..3c02a8be67 100644 --- a/lib/unicode/In/Tamil.pl +++ b/lib/unicode/In/Tamil.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0B80 0BFF END diff --git a/lib/unicode/In/Telugu.pl b/lib/unicode/In/Telugu.pl index 7342ec2cb1..d43d763e08 100644 --- a/lib/unicode/In/Telugu.pl +++ b/lib/unicode/In/Telugu.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0C00 0C7F END diff --git a/lib/unicode/In/Thaana.pl b/lib/unicode/In/Thaana.pl new file mode 100644 index 0000000000..dbd223b129 --- /dev/null +++ b/lib/unicode/In/Thaana.pl @@ -0,0 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! +return <<'END'; +0780 07BF +END diff --git a/lib/unicode/In/Thai.pl b/lib/unicode/In/Thai.pl index c5c789c3e0..d3c1cf7eee 100644 --- a/lib/unicode/In/Thai.pl +++ b/lib/unicode/In/Thai.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0E00 0E7F END diff --git a/lib/unicode/In/Tibetan.pl b/lib/unicode/In/Tibetan.pl index bf2888d38d..729d5af792 100644 --- a/lib/unicode/In/Tibetan.pl +++ b/lib/unicode/In/Tibetan.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0F00 0FFF END diff --git a/lib/unicode/In/UnifiedCanadianAboriginalSyllabics.pl b/lib/unicode/In/UnifiedCanadianAboriginalSyllabics.pl new file mode 100644 index 0000000000..b6451965d6 --- /dev/null +++ b/lib/unicode/In/UnifiedCanadianAboriginalSyllabics.pl @@ -0,0 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! +return <<'END'; +1400 167F +END diff --git a/lib/unicode/In/YiRadicals.pl b/lib/unicode/In/YiRadicals.pl new file mode 100644 index 0000000000..8c8c899c9c --- /dev/null +++ b/lib/unicode/In/YiRadicals.pl @@ -0,0 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! +return <<'END'; +A490 A4CF +END diff --git a/lib/unicode/In/YiSyllables.pl b/lib/unicode/In/YiSyllables.pl new file mode 100644 index 0000000000..81d0447e04 --- /dev/null +++ b/lib/unicode/In/YiSyllables.pl @@ -0,0 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! +return <<'END'; +A000 A48F +END diff --git a/lib/unicode/Is/ASCII.pl b/lib/unicode/Is/ASCII.pl index b7843e932f..80c37e5b77 100644 --- a/lib/unicode/Is/ASCII.pl +++ b/lib/unicode/Is/ASCII.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0000 007f END diff --git a/lib/unicode/Is/Alnum.pl b/lib/unicode/Is/Alnum.pl index 18200ffdda..6b007f7990 100644 --- a/lib/unicode/Is/Alnum.pl +++ b/lib/unicode/Is/Alnum.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0030 0039 0041 005a diff --git a/lib/unicode/Is/Alpha.pl b/lib/unicode/Is/Alpha.pl index 1be8129964..0891f1085c 100644 --- a/lib/unicode/Is/Alpha.pl +++ b/lib/unicode/Is/Alpha.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0041 005a 0061 007a diff --git a/lib/unicode/Is/BidiAN.pl b/lib/unicode/Is/BidiAN.pl index e3639ba9f9..2fb0922610 100644 --- a/lib/unicode/Is/BidiAN.pl +++ b/lib/unicode/Is/BidiAN.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0660 0669 066b 066c diff --git a/lib/unicode/Is/BidiB.pl b/lib/unicode/Is/BidiB.pl index ae1ba37b10..7741fce2f4 100644 --- a/lib/unicode/Is/BidiB.pl +++ b/lib/unicode/Is/BidiB.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 000a 000d diff --git a/lib/unicode/Is/BidiCS.pl b/lib/unicode/Is/BidiCS.pl index 4c16fe7e87..739824e763 100644 --- a/lib/unicode/Is/BidiCS.pl +++ b/lib/unicode/Is/BidiCS.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 002c 002e diff --git a/lib/unicode/Is/BidiEN.pl b/lib/unicode/Is/BidiEN.pl index eb8c5e7234..1bf527d356 100644 --- a/lib/unicode/Is/BidiEN.pl +++ b/lib/unicode/Is/BidiEN.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0030 0039 00b2 00b3 diff --git a/lib/unicode/Is/BidiES.pl b/lib/unicode/Is/BidiES.pl index 50e6d27e1b..41df240ecc 100644 --- a/lib/unicode/Is/BidiES.pl +++ b/lib/unicode/Is/BidiES.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 002f ff0f diff --git a/lib/unicode/Is/BidiET.pl b/lib/unicode/Is/BidiET.pl index 201892260e..557513c3dd 100644 --- a/lib/unicode/Is/BidiET.pl +++ b/lib/unicode/Is/BidiET.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0023 0025 002b diff --git a/lib/unicode/Is/BidiL.pl b/lib/unicode/Is/BidiL.pl index ae19cbaa2b..3747ce3c54 100644 --- a/lib/unicode/Is/BidiL.pl +++ b/lib/unicode/Is/BidiL.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0041 005a 0061 007a diff --git a/lib/unicode/Is/BidiON.pl b/lib/unicode/Is/BidiON.pl index 8924a60c0d..f0d17d568e 100644 --- a/lib/unicode/Is/BidiON.pl +++ b/lib/unicode/Is/BidiON.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0021 0022 0026 002a diff --git a/lib/unicode/Is/BidiR.pl b/lib/unicode/Is/BidiR.pl index 5dbdd1b809..54db32b856 100644 --- a/lib/unicode/Is/BidiR.pl +++ b/lib/unicode/Is/BidiR.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 05be 05c0 diff --git a/lib/unicode/Is/BidiS.pl b/lib/unicode/Is/BidiS.pl index 3270482f0a..252786411c 100644 --- a/lib/unicode/Is/BidiS.pl +++ b/lib/unicode/Is/BidiS.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0009 000b diff --git a/lib/unicode/Is/BidiWS.pl b/lib/unicode/Is/BidiWS.pl index 8322155635..963a623407 100644 --- a/lib/unicode/Is/BidiWS.pl +++ b/lib/unicode/Is/BidiWS.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 000c 0020 diff --git a/lib/unicode/Is/C.pl b/lib/unicode/Is/C.pl index 837115a127..1beb44e7f6 100644 --- a/lib/unicode/Is/C.pl +++ b/lib/unicode/Is/C.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0000 001f 007f 009f diff --git a/lib/unicode/Is/Cc.pl b/lib/unicode/Is/Cc.pl index 2894c68bdb..a24f89a81b 100644 --- a/lib/unicode/Is/Cc.pl +++ b/lib/unicode/Is/Cc.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0000 001f 007f 009f diff --git a/lib/unicode/Is/Cn.pl b/lib/unicode/Is/Cn.pl index 3054fd6216..0826c0f811 100644 --- a/lib/unicode/Is/Cn.pl +++ b/lib/unicode/Is/Cn.pl @@ -1,2 +1,5 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; END diff --git a/lib/unicode/Is/Cntrl.pl b/lib/unicode/Is/Cntrl.pl index 837115a127..1beb44e7f6 100644 --- a/lib/unicode/Is/Cntrl.pl +++ b/lib/unicode/Is/Cntrl.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0000 001f 007f 009f diff --git a/lib/unicode/Is/Co.pl b/lib/unicode/Is/Co.pl index 39445370fc..62ac0a1946 100644 --- a/lib/unicode/Is/Co.pl +++ b/lib/unicode/Is/Co.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; e000 f8ff END diff --git a/lib/unicode/Is/DCcircle.pl b/lib/unicode/Is/DCcircle.pl index a9d58a44d0..ce9dcd425f 100644 --- a/lib/unicode/Is/DCcircle.pl +++ b/lib/unicode/Is/DCcircle.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 2460 2473 24b6 24ea diff --git a/lib/unicode/Is/DCcompat.pl b/lib/unicode/Is/DCcompat.pl index b6d925ba53..d8bff65d3d 100644 --- a/lib/unicode/Is/DCcompat.pl +++ b/lib/unicode/Is/DCcompat.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 00a8 00af diff --git a/lib/unicode/Is/DCfinal.pl b/lib/unicode/Is/DCfinal.pl index 091bd64c71..01c8d381ef 100644 --- a/lib/unicode/Is/DCfinal.pl +++ b/lib/unicode/Is/DCfinal.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; fb51 fb53 diff --git a/lib/unicode/Is/DCfont.pl b/lib/unicode/Is/DCfont.pl index c6d24436b3..d1ad96ada4 100644 --- a/lib/unicode/Is/DCfont.pl +++ b/lib/unicode/Is/DCfont.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 2102 210a 2113 diff --git a/lib/unicode/Is/DCinital.pl b/lib/unicode/Is/DCinital.pl index 4faba29494..469991dedc 100644 --- a/lib/unicode/Is/DCinital.pl +++ b/lib/unicode/Is/DCinital.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; fb55 fb59 diff --git a/lib/unicode/Is/DCinitial.pl b/lib/unicode/Is/DCinitial.pl index b4e2b33873..e730c3630a 100644 --- a/lib/unicode/Is/DCinitial.pl +++ b/lib/unicode/Is/DCinitial.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; fb54 fb58 diff --git a/lib/unicode/Is/DCisolated.pl b/lib/unicode/Is/DCisolated.pl index de7574214b..ec47fd8836 100644 --- a/lib/unicode/Is/DCisolated.pl +++ b/lib/unicode/Is/DCisolated.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; fb50 fb52 diff --git a/lib/unicode/Is/DCnarrow.pl b/lib/unicode/Is/DCnarrow.pl index a4f448a6ec..7f48c2f622 100644 --- a/lib/unicode/Is/DCnarrow.pl +++ b/lib/unicode/Is/DCnarrow.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; ff61 ffbe ffc2 ffc7 diff --git a/lib/unicode/Is/DCnoBreak.pl b/lib/unicode/Is/DCnoBreak.pl index 5b0e817c7d..9fa942ca07 100644 --- a/lib/unicode/Is/DCnoBreak.pl +++ b/lib/unicode/Is/DCnoBreak.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 00a0 0f0c diff --git a/lib/unicode/Is/DCsmall.pl b/lib/unicode/Is/DCsmall.pl index 2e05334032..c79d7db38e 100644 --- a/lib/unicode/Is/DCsmall.pl +++ b/lib/unicode/Is/DCsmall.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; fe50 fe52 fe54 fe66 diff --git a/lib/unicode/Is/DCsquare.pl b/lib/unicode/Is/DCsquare.pl index 76b4ad8c6f..8ace0dcd82 100644 --- a/lib/unicode/Is/DCsquare.pl +++ b/lib/unicode/Is/DCsquare.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 3300 3357 3371 3376 diff --git a/lib/unicode/Is/DCsub.pl b/lib/unicode/Is/DCsub.pl index d446ad49f7..6ea66119d4 100644 --- a/lib/unicode/Is/DCsub.pl +++ b/lib/unicode/Is/DCsub.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 2080 208e END diff --git a/lib/unicode/Is/DCsuper.pl b/lib/unicode/Is/DCsuper.pl index 8e1330ee51..f477928163 100644 --- a/lib/unicode/Is/DCsuper.pl +++ b/lib/unicode/Is/DCsuper.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 00aa 00b2 00b3 diff --git a/lib/unicode/Is/DCvertical.pl b/lib/unicode/Is/DCvertical.pl index 1c00407743..b7c0127be8 100644 --- a/lib/unicode/Is/DCvertical.pl +++ b/lib/unicode/Is/DCvertical.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; fe30 fe44 END diff --git a/lib/unicode/Is/DCwide.pl b/lib/unicode/Is/DCwide.pl index b693b21380..f51d89d334 100644 --- a/lib/unicode/Is/DCwide.pl +++ b/lib/unicode/Is/DCwide.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 3000 ff01 ff5e diff --git a/lib/unicode/Is/DecoCanon.pl b/lib/unicode/Is/DecoCanon.pl index 35a08690b7..74977a6741 100644 --- a/lib/unicode/Is/DecoCanon.pl +++ b/lib/unicode/Is/DecoCanon.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 00c0 00c5 00c7 00cf diff --git a/lib/unicode/Is/DecoCompat.pl b/lib/unicode/Is/DecoCompat.pl index 944d69155d..80c45ee7b1 100644 --- a/lib/unicode/Is/DecoCompat.pl +++ b/lib/unicode/Is/DecoCompat.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 00a0 00a8 diff --git a/lib/unicode/Is/Digit.pl b/lib/unicode/Is/Digit.pl index 2ae9c84f02..3d6267963d 100644 --- a/lib/unicode/Is/Digit.pl +++ b/lib/unicode/Is/Digit.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0030 0039 0660 0669 diff --git a/lib/unicode/Is/Graph.pl b/lib/unicode/Is/Graph.pl index 723c881dd6..4f37a1912b 100644 --- a/lib/unicode/Is/Graph.pl +++ b/lib/unicode/Is/Graph.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0021 007e 00a0 021f diff --git a/lib/unicode/Is/L.pl b/lib/unicode/Is/L.pl index 7ab2842a75..697f931296 100644 --- a/lib/unicode/Is/L.pl +++ b/lib/unicode/Is/L.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0041 005a 0061 007a diff --git a/lib/unicode/Is/Ll.pl b/lib/unicode/Is/Ll.pl index da6b7d76ac..9520f1a60b 100644 --- a/lib/unicode/Is/Ll.pl +++ b/lib/unicode/Is/Ll.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0061 007a 00aa diff --git a/lib/unicode/Is/Lm.pl b/lib/unicode/Is/Lm.pl index cc76e43f73..7cdd6951e5 100644 --- a/lib/unicode/Is/Lm.pl +++ b/lib/unicode/Is/Lm.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 02b0 02b8 02bb 02c1 diff --git a/lib/unicode/Is/Lo.pl b/lib/unicode/Is/Lo.pl index e5f4537dd9..e0d725fd89 100644 --- a/lib/unicode/Is/Lo.pl +++ b/lib/unicode/Is/Lo.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 01bb 01c0 01c3 diff --git a/lib/unicode/Is/Lower.pl b/lib/unicode/Is/Lower.pl index da6b7d76ac..9520f1a60b 100644 --- a/lib/unicode/Is/Lower.pl +++ b/lib/unicode/Is/Lower.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0061 007a 00aa diff --git a/lib/unicode/Is/Lt.pl b/lib/unicode/Is/Lt.pl index 2a6771723e..21a306cf7b 100644 --- a/lib/unicode/Is/Lt.pl +++ b/lib/unicode/Is/Lt.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 01c5 01c8 diff --git a/lib/unicode/Is/Lu.pl b/lib/unicode/Is/Lu.pl index eb8052e70d..392faa8a81 100644 --- a/lib/unicode/Is/Lu.pl +++ b/lib/unicode/Is/Lu.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0041 005a 00c0 00d6 diff --git a/lib/unicode/Is/M.pl b/lib/unicode/Is/M.pl index 0b2bf32916..1e482d3945 100644 --- a/lib/unicode/Is/M.pl +++ b/lib/unicode/Is/M.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0300 034e 0360 0362 diff --git a/lib/unicode/Is/Mc.pl b/lib/unicode/Is/Mc.pl index d707c6712e..e9a0b373ec 100644 --- a/lib/unicode/Is/Mc.pl +++ b/lib/unicode/Is/Mc.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0903 093e 0940 diff --git a/lib/unicode/Is/Mirrored.pl b/lib/unicode/Is/Mirrored.pl index b56c8357bc..c06de448c0 100644 --- a/lib/unicode/Is/Mirrored.pl +++ b/lib/unicode/Is/Mirrored.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0028 0029 003c diff --git a/lib/unicode/Is/Mn.pl b/lib/unicode/Is/Mn.pl index ffb56f9801..b0d5b5e08e 100644 --- a/lib/unicode/Is/Mn.pl +++ b/lib/unicode/Is/Mn.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0300 034e 0360 0362 diff --git a/lib/unicode/Is/N.pl b/lib/unicode/Is/N.pl index 6a8072c3de..d6ccd1616a 100644 --- a/lib/unicode/Is/N.pl +++ b/lib/unicode/Is/N.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0030 0039 00b2 00b3 diff --git a/lib/unicode/Is/Nd.pl b/lib/unicode/Is/Nd.pl index 2ae9c84f02..3d6267963d 100644 --- a/lib/unicode/Is/Nd.pl +++ b/lib/unicode/Is/Nd.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0030 0039 0660 0669 diff --git a/lib/unicode/Is/No.pl b/lib/unicode/Is/No.pl index 0b926a8dec..bdefbf3378 100644 --- a/lib/unicode/Is/No.pl +++ b/lib/unicode/Is/No.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 00b2 00b3 00b9 diff --git a/lib/unicode/Is/P.pl b/lib/unicode/Is/P.pl index 57b5e24331..873169d0da 100644 --- a/lib/unicode/Is/P.pl +++ b/lib/unicode/Is/P.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0021 0023 0025 002a diff --git a/lib/unicode/Is/Pd.pl b/lib/unicode/Is/Pd.pl index f1c1439939..c542decaf4 100644 --- a/lib/unicode/Is/Pd.pl +++ b/lib/unicode/Is/Pd.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 002d 00ad diff --git a/lib/unicode/Is/Pe.pl b/lib/unicode/Is/Pe.pl index 83a22a40c2..3decc64786 100644 --- a/lib/unicode/Is/Pe.pl +++ b/lib/unicode/Is/Pe.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0029 005d diff --git a/lib/unicode/Is/Po.pl b/lib/unicode/Is/Po.pl index 0e230d8331..29de9ec40e 100644 --- a/lib/unicode/Is/Po.pl +++ b/lib/unicode/Is/Po.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0021 0023 0025 0027 diff --git a/lib/unicode/Is/Print.pl b/lib/unicode/Is/Print.pl index 8faeea6d95..0d248eb843 100644 --- a/lib/unicode/Is/Print.pl +++ b/lib/unicode/Is/Print.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0020 007e 00a0 021f diff --git a/lib/unicode/Is/Ps.pl b/lib/unicode/Is/Ps.pl index fad4da758c..167f029096 100644 --- a/lib/unicode/Is/Ps.pl +++ b/lib/unicode/Is/Ps.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0028 005b diff --git a/lib/unicode/Is/Punct.pl b/lib/unicode/Is/Punct.pl index 57b5e24331..873169d0da 100644 --- a/lib/unicode/Is/Punct.pl +++ b/lib/unicode/Is/Punct.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0021 0023 0025 002a diff --git a/lib/unicode/Is/S.pl b/lib/unicode/Is/S.pl index 9292596053..2918ec26c3 100644 --- a/lib/unicode/Is/S.pl +++ b/lib/unicode/Is/S.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0024 002b diff --git a/lib/unicode/Is/Sc.pl b/lib/unicode/Is/Sc.pl index ab2b0d6a30..c4187872a7 100644 --- a/lib/unicode/Is/Sc.pl +++ b/lib/unicode/Is/Sc.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0024 00a2 00a5 diff --git a/lib/unicode/Is/Sm.pl b/lib/unicode/Is/Sm.pl index e68877ab80..ddab72946c 100644 --- a/lib/unicode/Is/Sm.pl +++ b/lib/unicode/Is/Sm.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 002b 003c 003e diff --git a/lib/unicode/Is/So.pl b/lib/unicode/Is/So.pl index 6e937d6b39..4f2f9b7a9a 100644 --- a/lib/unicode/Is/So.pl +++ b/lib/unicode/Is/So.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 00a6 00a7 00a9 diff --git a/lib/unicode/Is/Space.pl b/lib/unicode/Is/Space.pl index d14c3fb78b..712a820ada 100644 --- a/lib/unicode/Is/Space.pl +++ b/lib/unicode/Is/Space.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0009 000a 000c 000d diff --git a/lib/unicode/Is/SylA.pl b/lib/unicode/Is/SylA.pl index 3054fd6216..0826c0f811 100644 --- a/lib/unicode/Is/SylA.pl +++ b/lib/unicode/Is/SylA.pl @@ -1,2 +1,5 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; END diff --git a/lib/unicode/Is/SylC.pl b/lib/unicode/Is/SylC.pl index 3054fd6216..0826c0f811 100644 --- a/lib/unicode/Is/SylC.pl +++ b/lib/unicode/Is/SylC.pl @@ -1,2 +1,5 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; END diff --git a/lib/unicode/Is/SylE.pl b/lib/unicode/Is/SylE.pl index 3054fd6216..0826c0f811 100644 --- a/lib/unicode/Is/SylE.pl +++ b/lib/unicode/Is/SylE.pl @@ -1,2 +1,5 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; END diff --git a/lib/unicode/Is/SylI.pl b/lib/unicode/Is/SylI.pl index 3054fd6216..0826c0f811 100644 --- a/lib/unicode/Is/SylI.pl +++ b/lib/unicode/Is/SylI.pl @@ -1,2 +1,5 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; END diff --git a/lib/unicode/Is/SylO.pl b/lib/unicode/Is/SylO.pl index 3054fd6216..0826c0f811 100644 --- a/lib/unicode/Is/SylO.pl +++ b/lib/unicode/Is/SylO.pl @@ -1,2 +1,5 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; END diff --git a/lib/unicode/Is/SylU.pl b/lib/unicode/Is/SylU.pl index 3054fd6216..0826c0f811 100644 --- a/lib/unicode/Is/SylU.pl +++ b/lib/unicode/Is/SylU.pl @@ -1,2 +1,5 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; END diff --git a/lib/unicode/Is/SylV.pl b/lib/unicode/Is/SylV.pl index 3054fd6216..0826c0f811 100644 --- a/lib/unicode/Is/SylV.pl +++ b/lib/unicode/Is/SylV.pl @@ -1,2 +1,5 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; END diff --git a/lib/unicode/Is/SylWA.pl b/lib/unicode/Is/SylWA.pl index 3054fd6216..0826c0f811 100644 --- a/lib/unicode/Is/SylWA.pl +++ b/lib/unicode/Is/SylWA.pl @@ -1,2 +1,5 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; END diff --git a/lib/unicode/Is/SylWC.pl b/lib/unicode/Is/SylWC.pl index 3054fd6216..0826c0f811 100644 --- a/lib/unicode/Is/SylWC.pl +++ b/lib/unicode/Is/SylWC.pl @@ -1,2 +1,5 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; END diff --git a/lib/unicode/Is/SylWE.pl b/lib/unicode/Is/SylWE.pl index 3054fd6216..0826c0f811 100644 --- a/lib/unicode/Is/SylWE.pl +++ b/lib/unicode/Is/SylWE.pl @@ -1,2 +1,5 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; END diff --git a/lib/unicode/Is/SylWI.pl b/lib/unicode/Is/SylWI.pl index 3054fd6216..0826c0f811 100644 --- a/lib/unicode/Is/SylWI.pl +++ b/lib/unicode/Is/SylWI.pl @@ -1,2 +1,5 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; END diff --git a/lib/unicode/Is/SylWV.pl b/lib/unicode/Is/SylWV.pl index 3054fd6216..0826c0f811 100644 --- a/lib/unicode/Is/SylWV.pl +++ b/lib/unicode/Is/SylWV.pl @@ -1,2 +1,5 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; END diff --git a/lib/unicode/Is/Upper.pl b/lib/unicode/Is/Upper.pl index eb8052e70d..392faa8a81 100644 --- a/lib/unicode/Is/Upper.pl +++ b/lib/unicode/Is/Upper.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0041 005a 00c0 00d6 diff --git a/lib/unicode/Is/Word.pl b/lib/unicode/Is/Word.pl index f30d2f126b..e5eb70e45e 100644 --- a/lib/unicode/Is/Word.pl +++ b/lib/unicode/Is/Word.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0030 0039 0041 005a diff --git a/lib/unicode/Is/XDigit.pl b/lib/unicode/Is/XDigit.pl index f0b7044eb6..8696119eff 100644 --- a/lib/unicode/Is/XDigit.pl +++ b/lib/unicode/Is/XDigit.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0030 0039 0041 0046 diff --git a/lib/unicode/Is/Z.pl b/lib/unicode/Is/Z.pl index 42e0249273..da4edc2da5 100644 --- a/lib/unicode/Is/Z.pl +++ b/lib/unicode/Is/Z.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0020 00a0 diff --git a/lib/unicode/Is/Zl.pl b/lib/unicode/Is/Zl.pl index cdc04d65d6..3cd7bd1491 100644 --- a/lib/unicode/Is/Zl.pl +++ b/lib/unicode/Is/Zl.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 2028 END diff --git a/lib/unicode/Is/Zp.pl b/lib/unicode/Is/Zp.pl index 3a6981114d..c07cfd1651 100644 --- a/lib/unicode/Is/Zp.pl +++ b/lib/unicode/Is/Zp.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 2029 END diff --git a/lib/unicode/Is/Zs.pl b/lib/unicode/Is/Zs.pl index 067c7c33df..42ba4cac2c 100644 --- a/lib/unicode/Is/Zs.pl +++ b/lib/unicode/Is/Zs.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0020 00a0 diff --git a/lib/unicode/JamoShort.pl b/lib/unicode/JamoShort.pl index 433ee82951..f34dde7f00 100644 --- a/lib/unicode/JamoShort.pl +++ b/lib/unicode/JamoShort.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 1100 G 1101 GG diff --git a/lib/unicode/Name.pl b/lib/unicode/Name.pl index 155031cbba..caaf1c7f21 100644 --- a/lib/unicode/Name.pl +++ b/lib/unicode/Name.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0000 001f <control> 0020 SPACE diff --git a/lib/unicode/Number.pl b/lib/unicode/Number.pl index 55cc8571ff..c722467731 100644 --- a/lib/unicode/Number.pl +++ b/lib/unicode/Number.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0031 1 0032 2 diff --git a/lib/unicode/To/Digit.pl b/lib/unicode/To/Digit.pl index 1a7b88c470..8a9b183123 100644 --- a/lib/unicode/To/Digit.pl +++ b/lib/unicode/To/Digit.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0030 0039 0000 00b2 00b3 0002 diff --git a/lib/unicode/To/Lower.pl b/lib/unicode/To/Lower.pl index da8512ebb6..c3cbdf73e6 100644 --- a/lib/unicode/To/Lower.pl +++ b/lib/unicode/To/Lower.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0041 005a 0061 00c0 00d6 00e0 diff --git a/lib/unicode/To/Title.pl b/lib/unicode/To/Title.pl index cf99256802..b1b1d595a9 100644 --- a/lib/unicode/To/Title.pl +++ b/lib/unicode/To/Title.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0061 007a 0041 00b5 039c diff --git a/lib/unicode/To/Upper.pl b/lib/unicode/To/Upper.pl index 31d6eefa88..b67399f540 100644 --- a/lib/unicode/To/Upper.pl +++ b/lib/unicode/To/Upper.pl @@ -1,3 +1,6 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by mktables.PL from e.g. UnicodeData-Latest.txt. +# Any changes made here will be lost! return <<'END'; 0061 007a 0041 00b5 039c diff --git a/lib/unicode/mktables.PL b/lib/unicode/mktables.PL index 7d70b18469..a6e3a5ef3d 100755 --- a/lib/unicode/mktables.PL +++ b/lib/unicode/mktables.PL @@ -181,6 +181,11 @@ foreach $file (@todo) { else { open(OUT, ">$table.pl") or die "Can't create $table.pl: $!\n"; } + print OUT <<EOH; +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by $0 from e.g. $UnicodeData. +# Any changes made here will be lost! +EOH print OUT <<"END"; return <<'END'; END @@ -195,6 +200,11 @@ exit if @ARGV and not grep { $_ eq Block } @ARGV; print "Block\n"; open(UD, 'Blocks.txt') or die "Can't open blocks.txt: $!\n"; open(OUT, ">Block.pl") or die "Can't create $table.pl: $!\n"; +print OUT <<EOH; +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by $0 from e.g. $UnicodeData. +# Any changes made here will be lost! +EOH print OUT <<"END"; return <<'END'; END @@ -208,6 +218,11 @@ while (<UD>) { print OUT "$code $last $name\n"; $name =~ s/\s+//g; open(BLOCK, ">In/$name.pl"); + print BLOCK <<EOH; +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by $0 from e.g. $UnicodeData. +# Any changes made here will be lost! +EOH print BLOCK <<"END2"; return <<'END'; $code $last @@ -388,24 +403,38 @@ foreach my $b (@base) { @unicode = sort keys %unicode; print "EqUnicode\n"; -if (open(EQ_UNICODE, ">Eq/Unicode")) { +if (open(OUT, ">Eq/Unicode.pl")) { + print OUT <<EOH; +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by $0 from e.g. $UnicodeData. +# Any changes made here will be lost! +return <<'END'; +EOH foreach my $c (@unicode) { - print EQ_UNICODE "$c @{$unicode{$c}}\n"; + print OUT "$c @{$unicode{$c}}\n"; } - close EQ_UNICODE; + print OUT "END\n"; + close OUT; } else { die "$0: failed to open Eq/Unicode for writing: $!\n"; } print "EqLatin1\n"; -if (open(EQ_LATIN1, ">Eq/Latin1")) { +if (open(OUT, ">Eq/Latin1.pl")) { + print OUT <<EOH; +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by $0 from e.g. $UnicodeData. +# Any changes made here will be lost! +return <<'END'; +EOH foreach my $c (@unicode) { last if hex($c) > 255; my @c = grep { hex($_) < 256 } @{$unicode{$c}}; next unless @c; - print EQ_LATIN1 "$c @c\n"; + print OUT "$c @c\n"; } - close EQ_LATIN1; + print OUT "END\n"; + close OUT; } else { die "$0: failed to open Eq/Latin1 for writing: $!\n"; } diff --git a/makedef.pl b/makedef.pl index 5c38aad75a..d9e369a2b3 100644 --- a/makedef.pl +++ b/makedef.pl @@ -30,7 +30,11 @@ my %bincompat5005 = Perl_safesysmalloc => "Perl_safemalloc", Perl_safesysrealloc => "Perl_saferealloc", Perl_set_numeric_local => "perl_set_numeric_local", - Perl_set_numeric_standard => "perl_set_numeric_standard"); + Perl_set_numeric_standard => "perl_set_numeric_standard", + Perl_malloc => "malloc", + Perl_mfree => "free", + Perl_realloc => "realloc", + Perl_calloc => "calloc",); my $bincompat5005 = join("|", keys %bincompat5005); @@ -1356,18 +1356,6 @@ typedef struct svtbl SVTBL; # endif #endif -/* I couldn't find any -Ddefine or -flags in IRIX 6.5 that would - * have done the necessary symbol renaming using cpp. --jhi */ -#ifdef __sgi -#define USE_FOPEN64 -#define USE_FSEEK64 -#define USE_FTELL64 -#define USE_FSETPOS64 -#define USE_FGETPOS64 -#define USE_TMPFILE64 -#define USE_FREOPEN64 -#endif - #ifdef USE_64_BIT_RAWIO # ifdef HAS_OFF64_T # undef Off_t @@ -1860,27 +1848,6 @@ struct svtbl { #define NV_WITHIN_IV(nv) (I_V(nv) >= IV_MIN && I_V(nv) <= IV_MAX) #define NV_WITHIN_UV(nv) ((nv)>=0.0 && U_V(nv) >= UV_MIN && U_V(nv) <= UV_MAX) -/* The correct way: a Configure test where (UV)~0 is cast to NV and back. */ -/* Believe. */ -#define IV_FITS_IN_NV -/* Doubt. */ -#if defined(USE_LONG_DOUBLE) && \ - defined(LDBL_MANT_DIG) && IV_DIG >= LDBL_MANT_DIG -# undef IV_FITS_IN_NV -#else -# if defined(DBL_MANT_DIG) && IV_DIG >= DBL_MANT_DIG -# undef IV_FITS_IN_NV -# else -# if IV_DIG >= NV_DIG -# undef IV_FITS_IN_NV -# else -# if IVSIZE >= NVSIZE -# undef IV_FITS_IN_NV -# endif -# endif -# endif -#endif - /* Used with UV/IV arguments: */ /* XXXX: need to speed it up */ #define CLUMP_2UV(iv) ((iv) < 0 ? 0 : (UV)(iv)) diff --git a/pod/perlfaq9.pod b/pod/perlfaq9.pod index 3da9bc1e4d..7fc0cdc3c1 100644 --- a/pod/perlfaq9.pod +++ b/pod/perlfaq9.pod @@ -77,7 +77,9 @@ stamp prepended. =head2 How do I remove HTML from a string? The most correct way (albeit not the fastest) is to use HTML::Parser -from CPAN (part of the HTML-Tree package on CPAN). +from CPAN (part of the HTML-Tree package on CPAN). Another correct +way is to use HTML::FormatText which not only removes HTML but also +attempts to do a little simple formatting of the resulting plain text. Many folks attempt a simple-minded regular expression approach, like C<s/E<lt>.*?E<gt>//g>, but that fails in many cases because the tags @@ -1592,10 +1592,10 @@ PP(pp_send) djSP; dMARK; dORIGMARK; dTARGET; GV *gv; IO *io; - int offset; + Off_t offset; SV *bufsv; char *buffer; - int length; + Off_t length; STRLEN blen; MAGIC *mg; @@ -1618,7 +1618,11 @@ PP(pp_send) goto say_undef; bufsv = *++MARK; buffer = SvPV(bufsv, blen); +#if Off_t_SIZE > IVSIZE + length = SvNVx(*++MARK); +#else length = SvIVx(*++MARK); +#endif if (length < 0) DIE(aTHX_ "Negative length"); SETERRNO(0,0); @@ -1634,7 +1638,11 @@ PP(pp_send) } else if (PL_op->op_type == OP_SYSWRITE) { if (MARK < SP) { +#if Off_t_SIZE > IVSIZE + offset = SvNVx(*++MARK); +#else offset = SvIVx(*++MARK); +#endif if (offset < 0) { if (-offset > blen) DIE(aTHX_ "Offset outside string"); @@ -1737,7 +1745,11 @@ PP(pp_tell) RETURN; } +#if LSEEKSIZE > IVSIZE + PUSHn( do_tell(gv) ); +#else PUSHi( do_tell(gv) ); +#endif RETURN; } @@ -1751,7 +1763,11 @@ PP(pp_sysseek) djSP; GV *gv; int whence = POPi; +#if LSEEKSIZE > IVSIZE + Off_t offset = (Off_t)SvNVx(POPs); +#else Off_t offset = (Off_t)SvIVx(POPs); +#endif MAGIC *mg; gv = PL_last_in_gv = (GV*)POPs; @@ -1773,9 +1789,18 @@ PP(pp_sysseek) PUSHs(boolSV(do_seek(gv, offset, whence))); else { Off_t n = do_sysseek(gv, offset, whence); - PUSHs((n < 0) ? &PL_sv_undef - : sv_2mortal(n ? newSViv((IV)n) - : newSVpvn(zero_but_true, ZBTLEN))); + if (n < 0) + PUSHs(&PL_sv_undef); + else { + SV* sv = n ? +#if LSEEKSIZE > IVSIZE + newSVnv((NV)n) +#else + newSViv((IV)n) +#endif + : newSVpvn(zero_but_true, ZBTLEN); + PUSHs(sv_2mortal(sv)); + } } RETURN; } @@ -2478,7 +2503,7 @@ PP(pp_stat) #else PUSHs(sv_2mortal(newSVpvn("", 0))); #endif -#if Size_t_size > IVSIZE +#if Off_t_size > IVSIZE PUSHs(sv_2mortal(newSVnv(PL_statcache.st_size))); #else PUSHs(sv_2mortal(newSViv(PL_statcache.st_size))); @@ -2708,7 +2733,7 @@ PP(pp_ftsize) djSP; dTARGET; if (result < 0) RETPUSHUNDEF; -#if Size_t_size > IVSISE +#if Off_t_size > IVSIZE PUSHn(PL_statcache.st_size); #else PUSHi(PL_statcache.st_size); @@ -3175,7 +3200,7 @@ PP(pp_link) char *tmps2 = POPpx; char *tmps = SvPV(TOPs, n_a); TAINT_PROPER("link"); - SETi( link(tmps, tmps2) >= 0 ); + SETi( PerlLIO_link(tmps, tmps2) >= 0 ); #else DIE(aTHX_ PL_no_func, "Unsupported function link"); #endif @@ -12,6 +12,10 @@ use Config; $Is_Dosish = ($^O eq 'MSWin32' or $^O eq 'dos' or $^O eq 'os2' or $^O eq 'mint'); +if (defined &Win32::IsWinNT && Win32::IsWinNT()) { + $Is_Dosish = '' if Win32::FsType() eq 'NTFS'; +} + print "1..28\n"; $wd = (($^O eq 'MSWin32') ? `cd` : `pwd`); @@ -54,28 +58,35 @@ elsif (($mode & 0777) == 0666) {print "ok 5\n";} else {print "not ok 5\n";} -if ((chmod 0777,'a') == 1) {print "ok 6\n";} else {print "not ok 6\n";} +$newmode = $^O eq 'MSWin32' ? 0444 : 0777; +if ((chmod $newmode,'a') == 1) {print "ok 6\n";} else {print "not ok 6\n";} ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime, $blksize,$blocks) = stat('c'); if ($Is_Dosish) {print "ok 7 # skipped: no link\n";} -elsif (($mode & 0777) == 0777) {print "ok 7\n";} +elsif (($mode & 0777) == $newmode) {print "ok 7\n";} else {print "not ok 7\n";} +$newmode = 0700; +if ($^O eq 'MSWin32') { + chmod 0444, 'x'; + $newmode = 0666; +} + if ($Is_Dosish) {print "ok 8 # skipped: no link\n";} -elsif ((chmod 0700,'c','x') == 2) {print "ok 8\n";} +elsif ((chmod $newmode,'c','x') == 2) {print "ok 8\n";} else {print "not ok 8\n";} ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime, $blksize,$blocks) = stat('c'); if ($Is_Dosish) {print "ok 9 # skipped: no link\n";} -elsif (($mode & 0777) == 0700) {print "ok 9\n";} +elsif (($mode & 0777) == $newmode) {print "ok 9\n";} else {print "not ok 9\n";} ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime, $blksize,$blocks) = stat('x'); if ($Is_Dosish) {print "ok 10 # skipped: no link\n";} -elsif (($mode & 0777) == 0700) {print "ok 10\n";} +elsif (($mode & 0777) == $newmode) {print "ok 10\n";} else {print "not ok 10\n";} if ($Is_Dosish) {print "ok 11 # skipped: no link\n"; unlink 'b','x'; } diff --git a/t/lib/dumper.t b/t/lib/dumper.t index 9130d1c690..505051f216 100755 --- a/t/lib/dumper.t +++ b/t/lib/dumper.t @@ -9,6 +9,8 @@ BEGIN { } use Data::Dumper; +use Config; +my $Is_ebcdic = defined($Config{'ebcdic'}) && $Config{'ebcdic'} eq 'define'; $Data::Dumper::Pad = "#"; my $TMAX; @@ -238,11 +240,20 @@ EOT ############# 43 ## +if (!$Is_ebcdic) { $WANT = <<'EOT'; #$VAR1 = { # "abc\0'\efg" => "mno\0" #}; EOT +} +else { +$WANT = <<"EOT"; +#\$VAR1 = { +# "\\201\\202\\203\\340\\360'\e\\206\\207" => "\\224\\225\\226\\340\\360" +#}; +EOT +} $foo = { "abc\000\'\efg" => "mno\000" }; { @@ -277,6 +288,7 @@ EOT ############# 49 ## +if (!$Is_ebcdic) { $WANT = <<'EOT'; #$foo = \*::foo; #*::foo = \5; @@ -301,6 +313,33 @@ EOT #@bar = @{*::foo{ARRAY}}; #%baz = %{*::foo{ARRAY}->[2]}; EOT +} +else { + $WANT = <<'EOT'; +#$foo = \*::foo; +#*::foo = \5; +#*::foo = [ +# #0 +# 10, +# #1 +# '', +# #2 +# { +# 'd' => {}, +# 'a' => 1, +# 'b' => '', +# 'c' => [] +# } +# ]; +#*::foo{ARRAY}->[1] = $foo; +#*::foo{ARRAY}->[2]{'d'} = *::foo{ARRAY}->[2]; +#*::foo{ARRAY}->[2]{'b'} = *::foo{SCALAR}; +#*::foo{ARRAY}->[2]{'c'} = *::foo{ARRAY}; +#*::foo = *::foo{ARRAY}->[2]; +#@bar = @{*::foo{ARRAY}}; +#%baz = %{*::foo{ARRAY}->[2]}; +EOT +} $Data::Dumper::Purity = 1; $Data::Dumper::Indent = 3; @@ -309,6 +348,7 @@ EOT ############# 55 ## +if (!$Is_ebcdic) { $WANT = <<'EOT'; #$foo = \*::foo; #*::foo = \5; @@ -330,6 +370,30 @@ EOT #$bar = *::foo{ARRAY}; #$baz = *::foo{ARRAY}->[2]; EOT +} +else { + $WANT = <<'EOT'; +#$foo = \*::foo; +#*::foo = \5; +#*::foo = [ +# 10, +# '', +# { +# 'd' => {}, +# 'a' => 1, +# 'b' => '', +# 'c' => [] +# } +#]; +#*::foo{ARRAY}->[1] = $foo; +#*::foo{ARRAY}->[2]{'d'} = *::foo{ARRAY}->[2]; +#*::foo{ARRAY}->[2]{'b'} = *::foo{SCALAR}; +#*::foo{ARRAY}->[2]{'c'} = *::foo{ARRAY}; +#*::foo = *::foo{ARRAY}->[2]; +#$bar = *::foo{ARRAY}; +#$baz = *::foo{ARRAY}->[2]; +EOT +} $Data::Dumper::Indent = 1; TEST q(Data::Dumper->Dump([\\*foo, \\@foo, \\%foo], ['foo', 'bar', 'baz'])); @@ -337,6 +401,7 @@ EOT ############# 61 ## +if (!$Is_ebcdic) { $WANT = <<'EOT'; #@bar = ( # 10, @@ -358,12 +423,37 @@ EOT #%baz = %{*::foo{HASH}}; #$foo = $bar[1]; EOT +} +else { + $WANT = <<'EOT'; +#@bar = ( +# 10, +# \*::foo, +# {} +#); +#*::foo = \5; +#*::foo = \@bar; +#*::foo = { +# 'd' => {}, +# 'a' => 1, +# 'b' => '', +# 'c' => [] +#}; +#*::foo{HASH}->{'d'} = *::foo{HASH}; +#*::foo{HASH}->{'b'} = *::foo{SCALAR}; +#*::foo{HASH}->{'c'} = \@bar; +#$bar[2] = *::foo{HASH}; +#%baz = %{*::foo{HASH}}; +#$foo = $bar[1]; +EOT +} TEST q(Data::Dumper->Dump([\\@foo, \\%foo, \\*foo], ['*bar', '*baz', '*foo'])); TEST q(Data::Dumper->Dumpxs([\\@foo, \\%foo, \\*foo], ['*bar', '*baz', '*foo'])) if $XS; ############# 67 ## +if (!$Is_ebcdic) { $WANT = <<'EOT'; #$bar = [ # 10, @@ -385,12 +475,37 @@ EOT #$baz = *::foo{HASH}; #$foo = $bar->[1]; EOT +} +else { + $WANT = <<'EOT'; +#$bar = [ +# 10, +# \*::foo, +# {} +#]; +#*::foo = \5; +#*::foo = $bar; +#*::foo = { +# 'd' => {}, +# 'a' => 1, +# 'b' => '', +# 'c' => [] +#}; +#*::foo{HASH}->{'d'} = *::foo{HASH}; +#*::foo{HASH}->{'b'} = *::foo{SCALAR}; +#*::foo{HASH}->{'c'} = $bar; +#$bar->[2] = *::foo{HASH}; +#$baz = *::foo{HASH}; +#$foo = $bar->[1]; +EOT +} TEST q(Data::Dumper->Dump([\\@foo, \\%foo, \\*foo], ['bar', 'baz', 'foo'])); TEST q(Data::Dumper->Dumpxs([\\@foo, \\%foo, \\*foo], ['bar', 'baz', 'foo'])) if $XS; ############# 73 ## +if (!$Is_ebcdic) { $WANT = <<'EOT'; #$foo = \*::foo; #@bar = ( @@ -405,6 +520,23 @@ EOT #); #%baz = %{$bar[2]}; EOT +} +else { + $WANT = <<'EOT'; +#$foo = \*::foo; +#@bar = ( +# 10, +# $foo, +# { +# d => $bar[2], +# a => 1, +# b => \5, +# c => \@bar +# } +#); +#%baz = %{$bar[2]}; +EOT +} $Data::Dumper::Purity = 0; $Data::Dumper::Quotekeys = 0; @@ -413,6 +545,7 @@ EOT ############# 79 ## +if (!$Is_ebcdic) { $WANT = <<'EOT'; #$foo = \*::foo; #$bar = [ @@ -427,6 +560,23 @@ EOT #]; #$baz = $bar->[2]; EOT +} +else { + $WANT = <<'EOT'; +#$foo = \*::foo; +#$bar = [ +# 10, +# $foo, +# { +# d => $bar->[2], +# a => 1, +# b => \5, +# c => $bar +# } +#]; +#$baz = $bar->[2]; +EOT +} TEST q(Data::Dumper->Dump([\\*foo, \\@foo, \\%foo], ['foo', 'bar', 'baz'])); TEST q(Data::Dumper->Dumpxs([\\*foo, \\@foo, \\%foo], ['foo', 'bar', 'baz'])) if $XS; @@ -448,6 +598,7 @@ EOT ############# 85 ## +if (!$Is_ebcdic) { $WANT = <<'EOT'; #%kennels = ( # First => \'Fido', @@ -460,6 +611,21 @@ EOT #); #%mutts = %kennels; EOT +} +else { + $WANT = <<'EOT'; +#%kennels = ( +# Second => \'Wags', +# First => \'Fido' +#); +#@dogs = ( +# ${$kennels{First}}, +# ${$kennels{Second}}, +# \%kennels +#); +#%mutts = %kennels; +EOT +} TEST q( $d = Data::Dumper->new([\\%kennel, \\@dogs, $mutts], @@ -487,6 +653,7 @@ EOT ############# 97 ## +if (!$Is_ebcdic) { $WANT = <<'EOT'; #%kennels = ( # First => \'Fido', @@ -499,6 +666,21 @@ EOT #); #%mutts = %kennels; EOT +} +else { + $WANT = <<'EOT'; +#%kennels = ( +# Second => \'Wags', +# First => \'Fido' +#); +#@dogs = ( +# ${$kennels{First}}, +# ${$kennels{Second}}, +# \%kennels +#); +#%mutts = %kennels; +EOT +} TEST q($d->Reset; $d->Dump); @@ -508,6 +690,7 @@ EOT ############# 103 ## +if (!$Is_ebcdic) { $WANT = <<'EOT'; #@dogs = ( # 'Fido', @@ -520,6 +703,21 @@ EOT #%kennels = %{$dogs[2]}; #%mutts = %{$dogs[2]}; EOT +} +else { + $WANT = <<'EOT'; +#@dogs = ( +# 'Fido', +# 'Wags', +# { +# Second => \$dogs[1], +# First => \$dogs[0] +# } +#); +#%kennels = %{$dogs[2]}; +#%mutts = %{$dogs[2]}; +EOT +} TEST q( $d = Data::Dumper->new([\\@dogs, \\%kennel, $mutts], @@ -543,6 +741,7 @@ EOT ############# 115 ## +if (!$Is_ebcdic) { $WANT = <<'EOT'; #@dogs = ( # 'Fido', @@ -557,6 +756,23 @@ EOT # Second => \'Wags' #); EOT +} +else { + $WANT = <<'EOT'; +#@dogs = ( +# 'Fido', +# 'Wags', +# { +# Second => \'Wags', +# First => \'Fido' +# } +#); +#%kennels = ( +# Second => \'Wags', +# First => \'Fido' +#); +EOT +} TEST q( $d = Data::Dumper->new( [\@dogs, \%kennel], [qw(*dogs *kennels)] ); diff --git a/t/lib/syslfs.t b/t/lib/syslfs.t index ce91db6e3c..942bb4dad6 100644 --- a/t/lib/syslfs.t +++ b/t/lib/syslfs.t @@ -37,20 +37,22 @@ sub explain { EOM } +print "# checking whether we have sparse files...\n"; + # Known have-nots. if ($^O eq 'win32' || $^O eq 'vms') { - print "1..0\n# no sparse files\n"; + print "1..0\n# no sparse files (because this is $^O) \n"; bye(); } # Known haves that have problems running this test # (for example because they do not support sparse files, like UNICOS) if ($^O eq 'unicos') { - print "1..0\n# large files known to work but unable to test them here\n"; + print "1..0\n# large files known to work but unable to test them here ($^O)\n"; bye(); } -# Then try to deduce whether we have sparse files. +# Then try heuristically to deduce whether we have sparse files. # We'll start off by creating a one megabyte file which has # only three "true" bytes. If we have sparseness, we should @@ -79,24 +81,31 @@ unless (@s == 13 && bye(); } +print "# we seem to have sparse files...\n"; + # By now we better be sure that we do have sparse files: # if we are not, the following will hog 5 gigabytes of disk. Ooops. $ENV{LC_ALL} = "C"; sysopen(BIG, "big", O_WRONLY|O_CREAT|O_TRUNC) or - do { warn "sysopen failed: $!\n"; bye }; -sysseek(BIG, 5_000_000_000, SEEK_SET); + do { warn "sysopen 'big' failed: $!\n"; bye }; +my $sysseek = sysseek(BIG, 5_000_000_000, SEEK_SET); +unless (defined $sysseek && $sysseek == 5_000_000_000) { + print "1..0\n# seeking past 2GB failed: $! (sysseek returned ", + defined $sysseek ? $sysseek : 'undef', ")\n"; + explain(); + bye(); +} # The syswrite will fail if there are are filesize limitations (process or fs). -my $syswrite = syswrite(BIG, "big") == 3; -my $close = close BIG if $syswrite; +my $syswrite = syswrite(BIG, "big"); +print "# syswrite failed: $! (syswrite returned ", + defined $syswrite ? $syswrite : 'undef', ")\n" + unless defined $syswrite && $syswrite == 3; +my $close = close BIG; +print "# close failed: $!\n" unless $close; unless($syswrite && $close) { - unless ($syswrite) { - print "# syswrite failed: $!\n" - } else { - print "# close failed: $!\n" - } if ($! =~/too large/i) { print "1..0\n# writing past 2GB failed: process limits?\n"; } elsif ($! =~ /quota/i) { diff --git a/t/op/lfs.t b/t/op/lfs.t index 140846f7a2..0d6d027743 100644 --- a/t/op/lfs.t +++ b/t/op/lfs.t @@ -36,20 +36,22 @@ sub explain { EOM } +print "# checking whether we have sparse files...\n"; + # Known have-nots. if ($^O eq 'win32' || $^O eq 'vms') { - print "1..0\n# no sparse files\n"; + print "1..0\n# no sparse files (because this is $^O) \n"; bye(); } # Known haves that have problems running this test # (for example because they do not support sparse files, like UNICOS) if ($^O eq 'unicos') { - print "1..0\n# large files known to work but unable to test them here\n"; + print "1..0\n# large files known to work but unable to test them here ($^O)\n"; bye(); } -# Then try to deduce whether we have sparse files. +# Then try to heuristically deduce whether we have sparse files. # Let's not depend on Fcntl or any other extension. @@ -82,6 +84,8 @@ unless (@s == 13 && bye(); } +print "# we seem to have sparse files...\n"; + # By now we better be sure that we do have sparse files: # if we are not, the following will hog 5 gigabytes of disk. Ooops. @@ -89,18 +93,19 @@ $ENV{LC_ALL} = "C"; open(BIG, ">big") or do { warn "open failed: $!\n"; bye }; binmode BIG; -seek(BIG, 5_000_000_000, $SEEK_SET); +unless (seek(BIG, 5_000_000_000, $SEEK_SET)) { + print "1..0\n# seeking past 2GB failed: $!\n"; + explain(); + bye(); +} # Either the print or (more likely, thanks to buffering) the close will # fail if there are are filesize limitations (process or fs). my $print = print BIG "big"; -my $close = close BIG if $print; +print "# print failed: $!\n" unless $print; +my $close = close BIG; +print "# close failed: $!\n" unless $close; unless ($print && $close) { - unless ($print) { - print "# print failed: $!\n" - } else { - print "# close failed: $!\n" - } if ($! =~/too large/i) { print "1..0\n# writing past 2GB failed: process limits?\n"; } elsif ($! =~ /quota/i) { diff --git a/t/op/pack.t b/t/op/pack.t index 11ada3905d..2d34311f1f 100755 --- a/t/op/pack.t +++ b/t/op/pack.t @@ -381,7 +381,9 @@ print $@ eq '' && $x eq 'ab3456789012' ? "ok $test\n" : "not ok $test\n"; $test++; eval { ($x) = unpack 'a/a*/b*', '212ab' }; -print $@ eq '' && $x eq '100001100100' ? "ok $test\n" : "#$x,$@\nnot ok $test\n"; +my $expected_x = '100001100100'; +if ($Config{ebcdic} eq 'define') { $expected_x = '100000010100'; } +print $@ eq '' && $x eq $expected_x ? "ok $test\n" : "#$x,$@\nnot ok $test\n"; $test++; # 153..156: / with # diff --git a/t/op/regexp.t b/t/op/regexp.t index 4ffe1362c6..74ca639a8c 100755 --- a/t/op/regexp.t +++ b/t/op/regexp.t @@ -71,6 +71,8 @@ while (<TESTS>) { $skip = ($skip_amp ? ($result =~ s/B//i) : ($result =~ s/B//)); # Certain tests don't work with utf8 (the re_test should be in UTF8) $skip = 1 if ($^H &= ~0x00000008) && $pat =~ /\[:\^(alnum|print|word):\]/; + # ebcdic platforms do not do [:ascii:] + $skip = 1 if ("\t" ne "\011") && $pat =~ /\[:\^?ascii:\]/; $result =~ s/B//i unless $skip; for $study ('', 'study \$subject') { $c = $iters; diff --git a/t/pragma/locale.t b/t/pragma/locale.t index c453c47bd1..76426787ca 100755 --- a/t/pragma/locale.t +++ b/t/pragma/locale.t @@ -286,6 +286,11 @@ Turkish:tr:tr:9 turkish8 Yiddish:::1 15 EOF +if ($^O eq 'os390') { + $locales =~ s/Svenska Swedish:sv:fi se:1 15\n//; + $locales =~ s/Thai:th:th:11 tis620\n//; +} + sub in_utf8 () { $^H & 0x08 } if (in_utf8) { @@ -323,6 +328,9 @@ sub decode_encodings { push @enc, $_; } } + if ($^O eq 'os390') { + push @enc, qw(IBM-037 IBM-819 IBM-1047); + } return @enc; } diff --git a/t/pragma/overload.t b/t/pragma/overload.t index f673dce028..f9a9c59c87 100755 --- a/t/pragma/overload.t +++ b/t/pragma/overload.t @@ -759,7 +759,12 @@ else { }, 'deref'; # Hash: my @cont = sort %$deref; - test "@cont", '23 5 fake foo'; # 178 + if ("\t" eq "\011") { # ascii + test "@cont", '23 5 fake foo'; # 178 + } + else { # ebcdic alpha-numeric sort order + test "@cont", 'fake foo 23 5'; # 178 + } my @keys = sort keys %$deref; test "@keys", 'fake foo'; # 179 my @val = sort values %$deref; diff --git a/utils/perldoc.PL b/utils/perldoc.PL index e0f276af94..760a0ce770 100644 --- a/utils/perldoc.PL +++ b/utils/perldoc.PL @@ -51,7 +51,7 @@ if (@ARGV<1) { my $me = $0; # Editing $0 is unportable $me =~ s,.*/,,; die <<EOF; -Usage: $me [-h] [-r] [-i] [-v] [-t] [-u] [-m] [-l] [-F] [-X] PageName|ModuleName|ProgramName +Usage: $me [-h] [-r] [-i] [-v] [-t] [-u] [-m] [-n program] [-l] [-F] [-X] PageName|ModuleName|ProgramName $me -f PerlFunc $me -q FAQKeywords @@ -87,6 +87,7 @@ Options: (-t is the default on win32) -u Display unformatted pod text -m Display module's file in its entirety + -n Specify replacement for nroff -l Display the module's file name -F Arguments are file names, not modules -v Verbosely describe what's going on @@ -121,7 +122,7 @@ if (defined $ENV{"PERLDOC"}) { } !NO!SUBS! -my $getopts = "mhtluvriFf:Xq:"; +my $getopts = "mhtluvriFf:Xq:n:"; print OUT <<"!GET!OPTS!"; use vars qw( @{[map "\$opt_$_", ($getopts =~ /\w/g)]} ); @@ -132,6 +133,7 @@ getopts("$getopts") || usage; print OUT <<'!NO!SUBS!'; usage if $opt_h; +$opt_n = "nroff" if !$opt_n; my $podidx; if ($opt_X) { @@ -321,7 +323,7 @@ sub printout { close OUT; } elsif (not $opt_u) { - my $cmd = "pod2man --lax $file | nroff -man"; + my $cmd = "pod2man --lax $_ | $opt_n -man"; $cmd .= " | col -x" if $^O =~ /hpux/; my $rslt = `$cmd`; $rslt = filter_nroff($rslt) if $filter; diff --git a/vms/descrip_mms.template b/vms/descrip_mms.template index 3f91940900..1a37d876c0 100644 --- a/vms/descrip_mms.template +++ b/vms/descrip_mms.template @@ -1,6 +1,7 @@ !GROK!THIS! # Descrip.MMS for perl5 on VMS -# Last revised 18-Oct-1998 by Charles Bailey bailey@newman.upenn.edu +# Last revised 8-Nov-1999 by Craig Berry craig.berry@metamor.com +# Revised 18-Oct-1998 by Charles Bailey bailey@newman.upenn.edu # #: This file uses MMS syntax, and can be processed using DEC's MMS product, #: or the free MMK clone (available by ftp at ftp.spc.edu). If you want to @@ -286,16 +287,19 @@ obj0 = $(MALLOC_O) $(SOCKOBJ) av$(O) deb$(O) doio$(O) doop$(O) dump$(O) obj1 = globals$(O) gv$(O) hv$(O) mg$(O) miniperlmain$(O) op$(O) perl$(O) obj2 = perlio$(O) perly$(O) pp$(O) pp_ctl$(O) pp_hot$(O) pp_sys$(O) obj3 = regcomp$(O) regexec$(O) run$(O) scope$(O) sockadapt$(O) sv$(O) -obj4 = taint$(O) toke$(O) universal$(O) utf8$(O) util$(O) vms$(O) +obj4 = taint$(O) toke$(O) universal$(O) utf8$(O) util$(O) vms$(O) xsutils$(O) obj = $(obj0) $(obj1) $(obj2) $(obj3) $(obj4) -h0 = $(SOCKH) av.h cc_runtime.h config.h cop.h cv.h embed.h embedvar.h -h1 = extern.h $(THREADH) form.h gv.h handy.h hv.h intern.h intrpvar.h -h2 = iperlsys.h keywords.h mg.h nostdio.h op.h opcode.h patchlevel.h perl.h -h3 = perlio.h perlsdio.h perlvars.h perly.h pp.h pp_proto.h proto.h -h4 = regcomp.h regexp.h regnodes.h scope.h sv.h thrdvar.h -h5 = thread.h utf8.h util.h vmsish.h warnings.h xsub.h opnames.h +h0 = $(SOCKH) $(THREADH) av.h cc_runtime.h config.h cop.h cv.h embed.h +h1 = embedvar.h extern.h form.h gv.h handy.h hv.h intern.h intrpvar.h +h2 = iperlsys.h mg.h nostdio.h objxsub.h op.h opcode.h opnames.h +h3 = patchlevel.h perl.h perlio.h perlsdio.h perlvars.h perly.h pp.h +h4 = pp_proto.h proto.h regexp.h scope.h sv.h thrdvar.h thread.h utf8.h +h5 = util.h vmsish.h warnings.h xsub.h +h6 = regcomp.h regcomp.h +h7 = keywords.h h = $(h0) $(h1) $(h2) $(h3) $(h4) $(h5) +allh = $(h) $(h6) $(h7) ac0 = $(SOCKARCH) $(ARCHCORE)av.h $(ARCHCORE)cc_runtime.h ac1 = $(ARCHCORE)config.h $(ARCHCORE)cop.h $(ARCHCORE)cv.h $(ARCHCORE)embed.h @@ -372,7 +376,7 @@ pod8 = [.lib.pod]perltrap.pod [.lib.pod]perlvar.pod [.lib.pod]perlxs.pod [.lib.p perlpods : $(pod1) $(pod2) $(pod3) $(pod4) $(pod5) $(pod6) $(pod7) $(pod8) [.lib.pod]perlvms.pod @ $(NOOP) -archcorefiles : $(ac1) $(ac2) $(ac3) $(ac4) $(ac5) $(ac6) $(ac7) $(ac8) $(ac9) $(ac10) $(acs) $(acth) $(ARCHAUTO)time.stamp +archcorefiles : $(ac) $(acth) $(ARCHAUTO)time.stamp @ $(NOOP) miniperl : $(DBG)miniperl$(E) @@ -384,9 +388,7 @@ $(DBG)miniperl$(E) : miniperlmain$(O), $(DBG)libperl$(OLB) $(CRTL) $(DBG)libperl$(OLB) : $(obj) @ If F$Search("$(MMS$TARGET)").eqs."" Then Library/Object/Create $(MMS$TARGET) - Library/Object/Replace $(MMS$TARGET) $(obj1) - Library/Object/Replace $(MMS$TARGET) $(obj2) - Library/Object/Replace $(MMS$TARGET) $(obj3) + Library/Object/Replace $(MMS$TARGET) $(MMS$SOURCE_LIST) perlmain.c : miniperlmain.c $(MINIPERL_EXE) [.vms]writemain.pl $(MINIPERL) [.VMS]Writemain.pl "$(EXT)" @@ -414,7 +416,7 @@ $(DBG)perlshr$(E) : $(DBG)libperl$(OLB) $(extobj) $(DBG)perlshr_xtras.ts # The following files are built in one go by gen_shrfls.pl: # perlshr_attr.opt, $(DBG)perlshr_bld.opt - VAX and AXP # perlshr_gbl*.mar, perlshr_gbl*$(O) - VAX only -# The song and dance with gen_shrfls.opt accomodates DCL's 255 character +# The song and dance with gen_shrfls.opt accommodates DCL's 255 character # line length limit. .ifdef PIPES_BROKEN # This is a backup target used only with older versions of the DECCRTL which @@ -520,7 +522,7 @@ dynext : $(LIBPREREQ) $(DBG)perlshr$(E) @ If F$Search("hash$(O)").nes."" Then Rename/NoLog hash$(O),str$(O),util$(O),walk$(O) [.x2p] Link $(LINKFLAGS) /Exe=$(MMS$TARGET) $(MMS$SOURCE_LIST) $(CRTLOPTS) -# Accomodate buggy cpp in some version of DECC, which chokes on illegal +# Accommodate buggy cpp in some version of DECC, which chokes on illegal # filespec "y.tab.c", and broken gcc cpp, which doesn't start #include "" # search in same dir as source file [.x2p]a2p$(O) : [.x2p]a2p.c [.x2p]a2py.c [.x2p]INTERN.h [.x2p]a2p.h [.x2p]hash.h [.x2p]str.h config.h handy.h vmsish.h $(SOCKH) $(MINIPERL_EXE) @@ -779,7 +781,7 @@ perly.h : [.vms]perly_h.vms .ifdef LINK_ONLY .else -perly$(O) : perly.c, perly.h, $(h) +perly$(O) : perly.c, perly.h, $(allh) .endif [.t.lib]vmsfspec.t : [.vms.ext]filespec.t @@ -968,68 +970,68 @@ $(ARCHAUTO)time.stamp : # $(CC) $(CORECFLAGS) $(MMS$SOURCE) # AUTOMATICALLY GENERATED MAKE DEPENDENCIES--PUT NOTHING BELOW THIS LINE .ifdef SOCKET -$(SOCKOBJ) : $(SOCKC) extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h +$(SOCKOBJ) : $(SOCKC) $(h) $(CC) $(CORECFLAGS) $(MMS$SOURCE) .endif -av$(O) : av.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h +av$(O) : av.c $(h) $(CC) $(CORECFLAGS) $(MMS$SOURCE) -deb$(O) : deb.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h +deb$(O) : deb.c $(h) $(CC) $(CORECFLAGS) $(MMS$SOURCE) -doio$(O) : doio.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h +doio$(O) : doio.c $(h) $(CC) $(CORECFLAGS) $(MMS$SOURCE) -doop$(O) : doop.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h +doop$(O) : doop.c $(h) $(CC) $(CORECFLAGS) $(MMS$SOURCE) -dump$(O) : dump.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h regcomp.h regnodes.h +dump$(O) : dump.c $(h) $(h6) $(CC) $(CORECFLAGS) $(MMS$SOURCE) -globals$(O) : globals.c intern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h +globals$(O) : globals.c $(h) $(CC) $(CORECFLAGS) $(MMS$SOURCE) -gv$(O) : gv.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h +gv$(O) : gv.c $(h) $(CC) $(CORECFLAGS) $(MMS$SOURCE) -hv$(O) : hv.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h +hv$(O) : hv.c $(h) $(CC) $(CORECFLAGS) $(MMS$SOURCE) -mg$(O) : mg.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h +mg$(O) : mg.c $(h) $(CC) $(CORECFLAGS) $(MMS$SOURCE) -miniperlmain$(O) : miniperlmain.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h +miniperlmain$(O) : miniperlmain.c $(h) $(CC) $(CORECFLAGS) $(MMS$SOURCE) -op$(O) : op.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h +op$(O) : op.c $(h) $(CC) $(CORECFLAGS) $(MMS$SOURCE) -perl$(O) : perl.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h intrpvar.h thrdvar.h +perl$(O) : perl.c $(h) $(CC) $(CORECFLAGS) $(MMS$SOURCE) -perlio$(O) : perlio.c config.h extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h +perlio$(O) : perlio.c $(h) $(CC) $(CORECFLAGS) $(MMS$SOURCE) -perlmain$(O) : perlmain.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h +perlmain$(O) : perlmain.c $(h) $(CC) $(CORECFLAGS) $(MMS$SOURCE) -perly$(O) : perly.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h +perly$(O) : perly.c $(h) $(CC) $(CORECFLAGS) $(MMS$SOURCE) -pp$(O) : pp.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h +pp$(O) : pp.c $(h) $(CC) $(CORECFLAGS) $(MMS$SOURCE) -pp_ctl$(O) : pp_ctl.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h +pp_ctl$(O) : pp_ctl.c $(h) $(CC) $(CORECFLAGS) $(MMS$SOURCE) -pp_hot$(O) : pp_hot.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h +pp_hot$(O) : pp_hot.c $(h) $(CC) $(CORECFLAGS) $(MMS$SOURCE) -pp_sys$(O) : pp_sys.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h +pp_sys$(O) : pp_sys.c $(h) $(CC) $(CORECFLAGS) $(MMS$SOURCE) -regcomp$(O) : regcomp.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h intern.h regcomp.h regnodes.h +regcomp$(O) : regcomp.c $(h) $(h6) $(CC) $(CORECFLAGS) $(MMS$SOURCE) -regexec$(O) : regexec.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h regcomp.h regnodes.h +regexec$(O) : regexec.c $(h) $(h6) $(CC) $(CORECFLAGS) $(MMS$SOURCE) -run$(O) : run.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h +run$(O) : run.c $(h) $(CC) $(CORECFLAGS) $(MMS$SOURCE) -scope$(O) : scope.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h +scope$(O) : scope.c $(h) $(CC) $(CORECFLAGS) $(MMS$SOURCE) -sv$(O) : sv.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h +sv$(O) : sv.c $(h) $(CC) $(CORECFLAGS) $(MMS$SOURCE) -taint$(O) : taint.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h +taint$(O) : taint.c $(h) $(CC) $(CORECFLAGS) $(MMS$SOURCE) -toke$(O) : toke.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h keywords.h +toke$(O) : toke.c $(h) $(h7) $(CC) $(CORECFLAGS) $(MMS$SOURCE) -universal$(O) : universal.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h xsub.h +universal$(O) : universal.c $(h) $(CC) $(CORECFLAGS) $(MMS$SOURCE) -utf8$(O) : utf8.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h +utf8$(O) : utf8.c $(h) $(CC) $(CORECFLAGS) $(MMS$SOURCE) -util$(O) : util.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h +util$(O) : util.c $(h) $(CC) $(CORECFLAGS) $(MMS$SOURCE) -vms$(O) : vms.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h regexp.h sv.h util.h form.h gv.h cv.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h opnames.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h xsub.h +vms$(O) : vms.c $(h) $(CC) $(CORECFLAGS) $(MMS$SOURCE) [.x2p]hash$(O) : [.x2p]hash.c [.x2p]EXTERN.h [.x2p]a2p.h [.x2p]hash.h [.x2p]str.h [.x2p]util.h config.h handy.h vmsish.h $(SOCKH) diff --git a/vms/subconfigure.com b/vms/subconfigure.com index febce77ad0..c9703c2cf5 100644 --- a/vms/subconfigure.com +++ b/vms/subconfigure.com @@ -124,8 +124,12 @@ $ perl_d_cmsghdr_s = "undef" $ IF use_64bit .eqs. "Y" $ THEN $ perl_use64bits = "define" +$ perl_uselargefiles = "define" +$ perl_uselongdouble = "define" $ ELSE $ perl_use64bits = "undef" +$ perl_uselargefiles = "undef" +$ perl_uselongdouble = "undef" $ ENDIF $ perl_d_drand48proto = "define" $ perl_libpth="/sys$share /sys$library" @@ -3570,6 +3574,8 @@ $ WC "sPRIu64='" + perl_sPRIu64 + "'" $ WC "sPRIo64='" + perl_sPRIo64 + "'" $ WC "sPRIx64='" + perl_sPRIx64 + "'" $ WC "d_llseek='" + perl_d_llseek + "'" +$ WC "d_uselargefiles='" + perl_d_uselargefiles + "'" +$ WC "d_uselongdouble='" + perl_d_uselongdouble + "'" $! $! ##WRITE NEW CONSTANTS HERE## $! @@ -4401,9 +4401,9 @@ is_null_device(name) /* Do this via $Check_Access on VMS, since the CRTL stat() returns only a * subset of the applicable information. */ -/*{{{I32 cando(I32 bit, I32 effective, struct stat *statbufp)*/ +/*{{{I32 cando(I32 bit, Uid_t effective, struct stat *statbufp)*/ I32 -Perl_cando(pTHX_ I32 bit, I32 effective, Stat_t *statbufp) +Perl_cando(pTHX_ I32 bit, Uid_t effective, Stat_t *statbufp) { if (statbufp == &PL_statcache) return cando_by_name(bit,effective,namecache); else { @@ -4436,9 +4436,9 @@ Perl_cando(pTHX_ I32 bit, I32 effective, Stat_t *statbufp) /*}}}*/ -/*{{{I32 cando_by_name(I32 bit, I32 effective, char *fname)*/ +/*{{{I32 cando_by_name(I32 bit, Uid_t effective, char *fname)*/ I32 -cando_by_name(I32 bit, I32 effective, char *fname) +cando_by_name(I32 bit, Uid_t effective, char *fname) { static char usrname[L_cuserid]; static struct dsc$descriptor_s usrdsc = diff --git a/vms/vmsish.h b/vms/vmsish.h index 68ac8b9305..bc8b79fd27 100644 --- a/vms/vmsish.h +++ b/vms/vmsish.h @@ -635,7 +635,7 @@ int my_sigdelset (sigset_t *, int); int my_sigismember (sigset_t *, int); int my_sigprocmask (int, sigset_t *, sigset_t *); #endif -I32 cando_by_name (I32, I32, char *); +I32 cando_by_name (I32, Uid_t, char *); int flex_fstat (int, Stat_t *); int flex_stat (const char *, Stat_t *); int trim_unixpath (char *, char*, int); diff --git a/win32/config.bc b/win32/config.bc index f2b7d392e5..81ec602bac 100644 --- a/win32/config.bc +++ b/win32/config.bc @@ -186,7 +186,7 @@ d_isascii='define' d_killpg='undef' d_ldbl_dig='define' d_lchown='undef' -d_link='undef' +d_link='define' d_locconv='define' d_lockf='undef' d_longdbl='define' diff --git a/win32/config.gc b/win32/config.gc index 7f033dfec1..ac0345f262 100644 --- a/win32/config.gc +++ b/win32/config.gc @@ -186,7 +186,7 @@ d_isascii='define' d_killpg='undef' d_ldbl_dig='define' d_lchown='undef' -d_link='undef' +d_link='define' d_locconv='define' d_lockf='undef' d_longdbl='define' diff --git a/win32/config.vc b/win32/config.vc index 57506f7f69..a294dbcf43 100644 --- a/win32/config.vc +++ b/win32/config.vc @@ -186,7 +186,7 @@ d_isascii='define' d_killpg='undef' d_ldbl_dig='define' d_lchown='undef' -d_link='undef' +d_link='define' d_locconv='define' d_lockf='undef' d_longdbl='define' diff --git a/win32/config_H.bc b/win32/config_H.bc index 1ad81d3fb4..de0fb35bd6 100644 --- a/win32/config_H.bc +++ b/win32/config_H.bc @@ -273,7 +273,7 @@ * This symbol, if defined, indicates that the link routine is * available to create hard links. */ -/*#define HAS_LINK /**/ +#define HAS_LINK /**/ /* HAS_LOCALECONV: * This symbol, if defined, indicates that the localeconv routine is diff --git a/win32/config_H.gc b/win32/config_H.gc index 0c9f1015b9..cd4efc2a2e 100644 --- a/win32/config_H.gc +++ b/win32/config_H.gc @@ -273,7 +273,7 @@ * This symbol, if defined, indicates that the link routine is * available to create hard links. */ -/*#define HAS_LINK /**/ +#define HAS_LINK /**/ /* HAS_LOCALECONV: * This symbol, if defined, indicates that the localeconv routine is diff --git a/win32/config_H.vc b/win32/config_H.vc index d914500055..032a9c8cbc 100644 --- a/win32/config_H.vc +++ b/win32/config_H.vc @@ -273,7 +273,7 @@ * This symbol, if defined, indicates that the link routine is * available to create hard links. */ -/*#define HAS_LINK /**/ +#define HAS_LINK /**/ /* HAS_LOCALECONV: * This symbol, if defined, indicates that the localeconv routine is diff --git a/win32/perllib.c b/win32/perllib.c index 0cf21cb627..22ac61d489 100644 --- a/win32/perllib.c +++ b/win32/perllib.c @@ -548,6 +548,12 @@ PerlLIOIsatty(struct IPerlLIO *I, int fd) return isatty(fd); } +int +PerlLIOLink(struct IPerlLIO*, const char*oldname, const char *newname) +{ + return win32_link(oldname, newname); +} + long PerlLIOLseek(struct IPerlLIO *I, int handle, long offset, int origin) { @@ -652,6 +658,7 @@ struct IPerlLIO perlLIO = PerlLIOFileStat, PerlLIOIOCtl, PerlLIOIsatty, + PerlLIOLink, PerlLIOLseek, PerlLIOLstat, PerlLIOMktemp, diff --git a/win32/win32.c b/win32/win32.c index 4abb60df66..6566f9a7f4 100644 --- a/win32/win32.c +++ b/win32/win32.c @@ -966,6 +966,8 @@ win32_stat(const char *path, struct stat *buffer) int l = strlen(path); int res; WCHAR wbuffer[MAX_PATH]; + HANDLE handle; + int nlink = 1; if (l > 1) { switch(path[l - 1]) { @@ -987,13 +989,30 @@ win32_stat(const char *path, struct stat *buffer) break; } } + + /* We *must* open & close the file once; otherwise file attribute changes */ + /* might not yet have propagated to "other" hard links of the same file. */ + /* This also gives us an opportunity to determine the number of links. */ if (USING_WIDE()) { A2WHELPER(path, wbuffer, sizeof(wbuffer)); - res = _wstat(wbuffer, (struct _stat *)buffer); + handle = CreateFileW(wbuffer, 0, 0, NULL, OPEN_EXISTING, 0, NULL); } else { - res = stat(path, buffer); + handle = CreateFileA(path, 0, 0, NULL, OPEN_EXISTING, 0, NULL); } + if (handle != INVALID_HANDLE_VALUE) { + BY_HANDLE_FILE_INFORMATION bhi; + if (GetFileInformationByHandle(handle, &bhi)) + nlink = bhi.nNumberOfLinks; + CloseHandle(handle); + } + + if (USING_WIDE()) + res = _wstat(wbuffer, (struct _stat *)buffer); + else + res = stat(path, buffer); + buffer->st_nlink = nlink; + if (res < 0) { /* CRT is buggy on sharenames, so make sure it really isn't. * XXX using GetFileAttributesEx() will enable us to set @@ -2154,6 +2173,85 @@ win32_pclose(FILE *pf) #endif /* USE_RTL_POPEN */ } +static BOOL WINAPI +Nt4CreateHardLinkW( + LPCWSTR lpFileName, + LPCWSTR lpExistingFileName, + LPSECURITY_ATTRIBUTES lpSecurityAttributes) +{ + HANDLE handle; + WCHAR wFullName[MAX_PATH+1]; + LPVOID lpContext = NULL; + WIN32_STREAM_ID StreamId; + DWORD dwSize = (char*)&StreamId.cStreamName - (char*)&StreamId; + DWORD dwWritten; + DWORD dwLen; + BOOL bSuccess; + + BOOL (__stdcall *pfnBackupWrite)(HANDLE, LPBYTE, DWORD, LPDWORD, + BOOL, BOOL, LPVOID*) = + (BOOL (__stdcall *)(HANDLE, LPBYTE, DWORD, LPDWORD, + BOOL, BOOL, LPVOID*)) + GetProcAddress(GetModuleHandle("kernel32.dll"), "BackupWrite"); + if (pfnBackupWrite == NULL) + return 0; + + dwLen = GetFullPathNameW(lpFileName, MAX_PATH, wFullName, NULL); + if (dwLen == 0) + return 0; + dwLen = (dwLen+1)*sizeof(WCHAR); + + handle = CreateFileW(lpExistingFileName, FILE_WRITE_ATTRIBUTES, + FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, + NULL, OPEN_EXISTING, 0, NULL); + if (handle == INVALID_HANDLE_VALUE) + return 0; + + StreamId.dwStreamId = BACKUP_LINK; + StreamId.dwStreamAttributes = 0; + StreamId.dwStreamNameSize = 0; + StreamId.Size.HighPart = 0; + StreamId.Size.LowPart = dwLen; + + bSuccess = pfnBackupWrite(handle, (LPBYTE)&StreamId, dwSize, &dwWritten, + FALSE, FALSE, &lpContext); + if (bSuccess) { + bSuccess = pfnBackupWrite(handle, (LPBYTE)wFullName, dwLen, &dwWritten, + FALSE, FALSE, &lpContext); + pfnBackupWrite(handle, NULL, 0, &dwWritten, TRUE, FALSE, &lpContext); + } + + CloseHandle(handle); + return bSuccess; +} + +DllExport int +win32_link(const char *oldname, const char *newname) +{ + dTHXo; + BOOL (__stdcall *pfnCreateHardLinkW)(LPCWSTR,LPCWSTR,LPSECURITY_ATTRIBUTES); + WCHAR wOldName[MAX_PATH]; + WCHAR wNewName[MAX_PATH]; + + if (IsWin95()) + Perl_die(aTHX_ PL_no_func, "link"); + + pfnCreateHardLinkW = + (BOOL (__stdcall *)(LPCWSTR, LPCWSTR, LPSECURITY_ATTRIBUTES)) + GetProcAddress(GetModuleHandle("kernel32.dll"), "CreateHardLinkW"); + if (pfnCreateHardLinkW == NULL) + pfnCreateHardLinkW = Nt4CreateHardLinkW; + + if ((A2WHELPER(oldname, wOldName, sizeof(wOldName))) && + (A2WHELPER(newname, wNewName, sizeof(wNewName))) && + pfnCreateHardLinkW(wNewName, wOldName, NULL)) + { + return 0; + } + errno = (GetLastError() == ERROR_FILE_NOT_FOUND) ? ENOENT : EINVAL; + return -1; +} + DllExport int win32_rename(const char *oname, const char *newname) { diff --git a/win32/win32iop.h b/win32/win32iop.h index e23000bc60..566ed57d51 100644 --- a/win32/win32iop.h +++ b/win32/win32iop.h @@ -131,6 +131,7 @@ DllExport unsigned win32_alarm(unsigned int sec); DllExport int win32_stat(const char *path, struct stat *buf); DllExport char* win32_longpath(char *path); DllExport int win32_ioctl(int i, unsigned int u, char *data); +DllExport int win32_link(const char *oldname, const char *newname); DllExport int win32_utime(const char *f, struct utimbuf *t); DllExport int win32_uname(struct utsname *n); DllExport int win32_wait(int *status); @@ -271,6 +272,7 @@ END_EXTERN_C #define times win32_times #define alarm win32_alarm #define ioctl win32_ioctl +#define link win32_link #define utime win32_utime #define uname win32_uname #define wait win32_wait |