From 56d68f1e19ff848c889ecfa71d3a06340ff64892 Mon Sep 17 00:00:00 2001 From: afresh1 Date: Mon, 1 Mar 2021 23:19:42 +0000 Subject: [PATCH] Fix merge issues, remove excess files - match perl-5.32.1 dist OK sthen@ --- gnu/usr.bin/perl/AUTHORS | 2473 +- gnu/usr.bin/perl/Configure | 216 +- gnu/usr.bin/perl/Cross/config.sh-arm-linux | 45 +- .../perl/Cross/config.sh-arm-linux-n770 | 45 +- gnu/usr.bin/perl/EXTERN.h | 2 +- gnu/usr.bin/perl/INSTALL | 120 +- gnu/usr.bin/perl/MANIFEST | 975 +- gnu/usr.bin/perl/META.json | 11 +- gnu/usr.bin/perl/META.yml | 9 +- gnu/usr.bin/perl/Makefile.SH | 53 +- gnu/usr.bin/perl/NetWare/Makefile | 6 +- gnu/usr.bin/perl/NetWare/config.wc | 3 + gnu/usr.bin/perl/NetWare/config_H.wc | 10 +- gnu/usr.bin/perl/Porting/Glossary | 10 +- gnu/usr.bin/perl/Porting/Maintainers.pl | 141 +- gnu/usr.bin/perl/Porting/README.pod | 7 +- gnu/usr.bin/perl/Porting/bench.pl | 2 +- gnu/usr.bin/perl/Porting/bisect-runner.pl | 170 +- gnu/usr.bin/perl/Porting/bump-perl-version | 10 +- gnu/usr.bin/perl/Porting/checkAUTHORS.pl | 448 +- gnu/usr.bin/perl/Porting/checkURL.pl | 22 + gnu/usr.bin/perl/Porting/checkcfgvar.pl | 1 - gnu/usr.bin/perl/Porting/config.sh | 47 +- gnu/usr.bin/perl/Porting/config_H | 24 +- gnu/usr.bin/perl/Porting/corelist.pl | 2 +- gnu/usr.bin/perl/Porting/epigraphs.pod | 134 +- gnu/usr.bin/perl/Porting/exec-bit.txt | 1 - gnu/usr.bin/perl/Porting/makemeta | 4 +- gnu/usr.bin/perl/Porting/makerel | 6 +- .../perl/Porting/perldelta_template.pod | 2 +- gnu/usr.bin/perl/Porting/pod_lib.pl | 2 + gnu/usr.bin/perl/Porting/pumpkin.pod | 21 +- .../Porting/release_announcement_template.txt | 4 +- .../perl/Porting/release_managers_guide.pod | 64 +- gnu/usr.bin/perl/Porting/release_schedule.pod | 55 +- gnu/usr.bin/perl/Porting/sync-with-cpan | 2 +- gnu/usr.bin/perl/Porting/todo.pod | 27 +- gnu/usr.bin/perl/README | 6 +- gnu/usr.bin/perl/README.android | 26 +- gnu/usr.bin/perl/README.bs2000 | 5 +- gnu/usr.bin/perl/README.ce | 453 - gnu/usr.bin/perl/README.cygwin | 8 +- gnu/usr.bin/perl/README.haiku | 4 +- gnu/usr.bin/perl/README.hurd | 2 +- gnu/usr.bin/perl/README.linux | 23 +- gnu/usr.bin/perl/README.macosx | 16 +- gnu/usr.bin/perl/README.os2 | 12 +- gnu/usr.bin/perl/README.os390 | 88 +- gnu/usr.bin/perl/README.synology | 8 +- gnu/usr.bin/perl/README.vms | 13 +- gnu/usr.bin/perl/README.win32 | 46 +- gnu/usr.bin/perl/TestInit.pm | 3 +- gnu/usr.bin/perl/XSUB.h | 46 +- gnu/usr.bin/perl/amigaos4/amigaio.c | 2 +- gnu/usr.bin/perl/autodoc.pl | 395 +- gnu/usr.bin/perl/av.c | 18 +- gnu/usr.bin/perl/av.h | 6 +- gnu/usr.bin/perl/caretx.c | 2 +- gnu/usr.bin/perl/cflags.SH | 16 +- gnu/usr.bin/perl/charclass_invlists.h | 42577 ++++++++++++---- gnu/usr.bin/perl/config_h.SH | 22 +- gnu/usr.bin/perl/configpm | 18 +- gnu/usr.bin/perl/configure.com | 222 +- gnu/usr.bin/perl/cop.h | 106 +- .../perl/cpan/Archive-Tar/lib/Archive/Tar.pm | 72 +- .../Archive-Tar/lib/Archive/Tar/Constant.pm | 13 +- .../cpan/Archive-Tar/lib/Archive/Tar/File.pm | 2 +- gnu/usr.bin/perl/cpan/CPAN/lib/App/Cpan.pm | 43 +- gnu/usr.bin/perl/cpan/CPAN/lib/CPAN.pm | 109 +- gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Bundle.pm | 16 +- .../perl/cpan/CPAN/lib/CPAN/Distribution.pm | 415 +- gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/FTP.pm | 19 +- .../perl/cpan/CPAN/lib/CPAN/FirstTime.pm | 83 +- .../perl/cpan/CPAN/lib/CPAN/HandleConfig.pm | 12 +- .../perl/cpan/CPAN/lib/CPAN/Mirrors.pm | 119 +- gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Queue.pm | 13 +- gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Shell.pm | 9 +- gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Tarzip.pm | 21 +- gnu/usr.bin/perl/cpan/CPAN/scripts/cpan | 7 +- .../cpan/Compress-Raw-Bzip2/bzip2-src/bzlib.c | 4 + .../Compress-Raw-Bzip2/bzip2-src/compress.c | 1 + .../Compress-Raw-Bzip2/bzip2-src/decompress.c | 1 + .../lib/Compress/Raw/Bzip2.pm | 2 +- .../Compress-Raw-Bzip2/private/MakeUtil.pm | 3 +- .../cpan/Compress-Raw-Bzip2/t/000prereq.t | 2 +- .../lib/Compress/Raw/Zlib.pm | 8 +- .../Compress-Raw-Zlib/private/MakeUtil.pm | 3 +- .../cpan/Compress-Raw-Zlib/zlib-src/deflate.c | 7 +- gnu/usr.bin/perl/cpan/DB_File/DB_File.pm | 396 +- gnu/usr.bin/perl/cpan/DB_File/DB_File.xs | 1861 +- gnu/usr.bin/perl/cpan/DB_File/Makefile.PL | 194 +- gnu/usr.bin/perl/cpan/Digest-MD5/MD5.pm | 2 +- gnu/usr.bin/perl/cpan/Digest-MD5/MD5.xs | 369 +- gnu/usr.bin/perl/cpan/Digest-MD5/Makefile.PL | 114 - gnu/usr.bin/perl/cpan/Digest-MD5/t/files.t | 2 +- gnu/usr.bin/perl/cpan/Encode/Encode.pm | 6 +- gnu/usr.bin/perl/cpan/Encode/Encode.xs | 6 +- gnu/usr.bin/perl/cpan/Encode/bin/enc2xs | 22 +- gnu/usr.bin/perl/cpan/Encode/encoding.pm | 4 +- .../perl/cpan/Encode/lib/Encode/Guess.pm | 4 +- gnu/usr.bin/perl/cpan/Encode/t/enc_utf8.t | 15 +- .../perl/cpan/Encode/t/whatwg-aliases.json | 455 - .../perl/cpan/Encode/t/whatwg-aliases.t | 66 - .../ExtUtils-Install/lib/ExtUtils/Install.pm | 11 +- .../lib/ExtUtils/Command.pm | 4 +- .../lib/ExtUtils/Command/MM.pm | 4 +- .../lib/ExtUtils/Liblist.pm | 4 +- .../lib/ExtUtils/Liblist/Kid.pm | 18 +- .../ExtUtils-MakeMaker/lib/ExtUtils/MM.pm | 8 +- .../ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm | 12 +- .../ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm | 21 +- .../lib/ExtUtils/MM_BeOS.pm | 8 +- .../lib/ExtUtils/MM_Cygwin.pm | 22 +- .../ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm | 8 +- .../lib/ExtUtils/MM_Darwin.pm | 6 +- .../lib/ExtUtils/MM_MacOS.pm | 4 +- .../ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm | 8 +- .../ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm | 6 +- .../ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm | 8 +- .../lib/ExtUtils/MM_UWIN.pm | 8 +- .../lib/ExtUtils/MM_Unix.pm | 152 +- .../ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm | 26 +- .../ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm | 8 +- .../lib/ExtUtils/MM_Win32.pm | 22 +- .../lib/ExtUtils/MM_Win95.pm | 6 +- .../ExtUtils-MakeMaker/lib/ExtUtils/MY.pm | 6 +- .../lib/ExtUtils/MakeMaker.pm | 70 +- .../lib/ExtUtils/MakeMaker/Config.pm | 4 +- .../lib/ExtUtils/MakeMaker/FAQ.pod | 32 +- .../lib/ExtUtils/MakeMaker/Locale.pm | 16 +- .../lib/ExtUtils/MakeMaker/Tutorial.pod | 7 +- .../lib/ExtUtils/MakeMaker/version.pm | 6 +- .../lib/ExtUtils/MakeMaker/version/regex.pm | 4 +- .../lib/ExtUtils/Mkbootstrap.pm | 6 +- .../lib/ExtUtils/Mksymlists.pm | 6 +- .../lib/ExtUtils/testlib.pm | 4 +- .../perl/cpan/ExtUtils-MakeMaker/t/MM_Unix.t | 16 +- .../perl/cpan/ExtUtils-MakeMaker/t/PL_FILES.t | 20 +- .../perl/cpan/ExtUtils-MakeMaker/t/basic.t | 8 +- .../cpan/ExtUtils-MakeMaker/t/build_man.t | 91 +- .../t/lib/MakeMaker/Test/Utils.pm | 2 +- .../cpan/ExtUtils-MakeMaker/t/parse_version.t | 6 +- .../perl/cpan/ExtUtils-MakeMaker/t/unicode.t | 4 +- .../perl/cpan/ExtUtils-MakeMaker/t/vstrings.t | 2 +- .../perl/cpan/Getopt-Long/lib/Getopt/Long.pm | 33 +- gnu/usr.bin/perl/cpan/IO-Compress/Makefile.PL | 36 +- .../perl/cpan/IO-Compress/bin/zipdetails | 33 +- .../cpan/IO-Compress/lib/Compress/Zlib.pm | 20 +- .../lib/IO/Compress/Adapter/Bzip2.pm | 6 +- .../lib/IO/Compress/Adapter/Deflate.pm | 6 +- .../lib/IO/Compress/Adapter/Identity.pm | 4 +- .../cpan/IO-Compress/lib/IO/Compress/Base.pm | 10 +- .../lib/IO/Compress/Base/Common.pm | 2 +- .../cpan/IO-Compress/lib/IO/Compress/Bzip2.pm | 52 +- .../IO-Compress/lib/IO/Compress/Deflate.pm | 50 +- .../cpan/IO-Compress/lib/IO/Compress/FAQ.pod | 6 + .../cpan/IO-Compress/lib/IO/Compress/Gzip.pm | 52 +- .../lib/IO/Compress/Gzip/Constants.pm | 2 +- .../IO-Compress/lib/IO/Compress/RawDeflate.pm | 52 +- .../cpan/IO-Compress/lib/IO/Compress/Zip.pm | 460 +- .../lib/IO/Compress/Zip/Constants.pm | 2 +- .../lib/IO/Compress/Zlib/Constants.pm | 2 +- .../IO-Compress/lib/IO/Compress/Zlib/Extra.pm | 4 +- .../lib/IO/Uncompress/Adapter/Bunzip2.pm | 6 +- .../lib/IO/Uncompress/Adapter/Identity.pm | 8 +- .../lib/IO/Uncompress/Adapter/Inflate.pm | 6 +- .../lib/IO/Uncompress/AnyInflate.pm | 35 +- .../lib/IO/Uncompress/AnyUncompress.pm | 67 +- .../IO-Compress/lib/IO/Uncompress/Base.pm | 17 +- .../IO-Compress/lib/IO/Uncompress/Bunzip2.pm | 27 +- .../IO-Compress/lib/IO/Uncompress/Gunzip.pm | 29 +- .../IO-Compress/lib/IO/Uncompress/Inflate.pm | 25 +- .../lib/IO/Uncompress/RawInflate.pm | 27 +- .../IO-Compress/lib/IO/Uncompress/Unzip.pm | 64 +- .../perl/cpan/IO-Compress/private/MakeUtil.pm | 3 +- .../perl/cpan/IO-Compress/t/000prereq.t | 5 +- gnu/usr.bin/perl/cpan/IPC-Cmd/lib/IPC/Cmd.pm | 4 +- gnu/usr.bin/perl/cpan/JSON-PP/bin/json_pp | 19 +- gnu/usr.bin/perl/cpan/JSON-PP/lib/JSON/PP.pm | 4 +- .../lib/Math/BigInt/FastCalc.pm | 2 +- .../cpan/Math-BigInt/lib/Math/BigFloat.pm | 471 +- .../perl/cpan/Math-BigInt/lib/Math/BigInt.pm | 399 +- .../cpan/Math-BigInt/lib/Math/BigInt/Calc.pm | 609 +- .../cpan/Math-BigInt/t/Math/BigInt/Scalar.pm | 2 - .../perl/cpan/Math-BigInt/t/bare_mbf.t | 2 +- .../perl/cpan/Math-BigInt/t/bare_mbi.t | 2 +- .../perl/cpan/Math-BigInt/t/bigfltpm.inc | 18 +- .../perl/cpan/Math-BigInt/t/bigfltpm.t | 2 +- gnu/usr.bin/perl/cpan/Math-BigInt/t/bigintc.t | 23 +- .../perl/cpan/Math-BigInt/t/bigintpm.inc | 65 +- .../perl/cpan/Math-BigInt/t/bigintpm.t | 2 +- gnu/usr.bin/perl/cpan/Math-BigInt/t/calling.t | 2 +- gnu/usr.bin/perl/cpan/Math-BigInt/t/sub_mbf.t | 2 +- gnu/usr.bin/perl/cpan/Math-BigInt/t/sub_mbi.t | 2 +- .../perl/cpan/Math-BigInt/t/upgrade.inc | 18 +- gnu/usr.bin/perl/cpan/Math-BigInt/t/upgrade.t | 2 +- .../perl/cpan/Math-BigInt/t/with_sub.t | 2 +- .../lib/Module/Load/Conditional.pm | 18 +- .../Module-Metadata/lib/Module/Metadata.pm | 46 +- .../perl/cpan/Module-Metadata/t/metadata.t | 16 +- .../perl/cpan/Pod-Parser/lib/Pod/Find.pm | 553 - .../cpan/Pod-Parser/lib/Pod/InputObjects.pm | 946 - .../cpan/Pod-Parser/lib/Pod/ParseUtils.pm | 861 - .../perl/cpan/Pod-Parser/lib/Pod/Parser.pm | 1836 - .../perl/cpan/Pod-Parser/lib/Pod/PlainText.pm | 761 - .../perl/cpan/Pod-Parser/lib/Pod/Select.pm | 756 - .../perl/cpan/Pod-Parser/scripts/podselect.PL | 143 - .../cpan/Pod-Parser/t/pod/contains_bad_pod.xr | 5 - .../perl/cpan/Pod-Parser/t/pod/contains_pod.t | 19 - .../cpan/Pod-Parser/t/pod/contains_pod.xr | 5 - .../perl/cpan/Pod-Parser/t/pod/empty.xr | 0 .../perl/cpan/Pod-Parser/t/pod/emptycmd.t | 21 - .../perl/cpan/Pod-Parser/t/pod/emptycmd.xr | 2 - gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/find.t | 107 - gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/for.t | 59 - gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/for.xr | 21 - .../perl/cpan/Pod-Parser/t/pod/headings.t | 140 - .../perl/cpan/Pod-Parser/t/pod/headings.xr | 26 - .../perl/cpan/Pod-Parser/t/pod/include.t | 36 - .../perl/cpan/Pod-Parser/t/pod/include.xr | 22 - .../perl/cpan/Pod-Parser/t/pod/included.t | 35 - .../perl/cpan/Pod-Parser/t/pod/included.xr | 3 - gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/lref.t | 66 - .../perl/cpan/Pod-Parser/t/pod/lref.xr | 40 - .../cpan/Pod-Parser/t/pod/multiline_items.t | 31 - .../cpan/Pod-Parser/t/pod/multiline_items.xr | 6 - .../perl/cpan/Pod-Parser/t/pod/nested_items.t | 64 - .../cpan/Pod-Parser/t/pod/nested_items.xr | 19 - .../perl/cpan/Pod-Parser/t/pod/nested_seqs.t | 23 - .../perl/cpan/Pod-Parser/t/pod/nested_seqs.xr | 3 - .../perl/cpan/Pod-Parser/t/pod/oneline_cmds.t | 46 - .../cpan/Pod-Parser/t/pod/oneline_cmds.xr | 26 - .../perl/cpan/Pod-Parser/t/pod/podselect.t | 18 - .../perl/cpan/Pod-Parser/t/pod/podselect.xr | 44 - .../perl/cpan/Pod-Parser/t/pod/selfcheck.t | 53 - .../perl/cpan/Pod-Parser/t/pod/special_seqs.t | 46 - .../cpan/Pod-Parser/t/pod/special_seqs.xr | 25 - .../perl/cpan/Pod-Parser/t/pod/testcmp.pl | 94 - .../perl/cpan/Pod-Parser/t/pod/testp2pt.pl | 192 - .../perl/cpan/Pod-Parser/t/pod/testpchk.pl | 130 - .../t/pod/testpods/lib/Pod/Stuff.pm | 20 - .../perl/cpan/Pod-Parser/t/pod/twice.t | 36 - .../perl/cpan/Pod-Parser/t/unbalanced.t | 51 - .../perl/cpan/Pod-Perldoc/lib/Pod/Perldoc.pm | 2 - .../cpan/Pod-Perldoc/lib/Pod/Perldoc/ToMan.pm | 18 +- .../perl/cpan/Pod-Simple/lib/Pod/Simple.pm | 40 +- .../perl/cpan/Pod-Simple/lib/Pod/Simple.pod | 27 +- .../Pod-Simple/lib/Pod/Simple/BlackBox.pm | 732 +- .../cpan/Pod-Simple/lib/Pod/Simple/Checker.pm | 6 +- .../cpan/Pod-Simple/lib/Pod/Simple/Debug.pm | 2 +- .../Pod-Simple/lib/Pod/Simple/DumpAsText.pm | 2 +- .../Pod-Simple/lib/Pod/Simple/DumpAsXML.pm | 2 +- .../cpan/Pod-Simple/lib/Pod/Simple/HTML.pm | 4 +- .../Pod-Simple/lib/Pod/Simple/HTMLBatch.pm | 30 +- .../Pod-Simple/lib/Pod/Simple/LinkSection.pm | 4 +- .../cpan/Pod-Simple/lib/Pod/Simple/Methody.pm | 2 +- .../Pod-Simple/lib/Pod/Simple/Progress.pm | 2 +- .../Pod-Simple/lib/Pod/Simple/PullParser.pm | 2 +- .../lib/Pod/Simple/PullParserEndToken.pm | 2 +- .../lib/Pod/Simple/PullParserStartToken.pm | 2 +- .../lib/Pod/Simple/PullParserTextToken.pm | 2 +- .../lib/Pod/Simple/PullParserToken.pm | 2 +- .../cpan/Pod-Simple/lib/Pod/Simple/RTF.pm | 179 +- .../cpan/Pod-Simple/lib/Pod/Simple/Search.pm | 35 +- .../Pod-Simple/lib/Pod/Simple/SimpleTree.pm | 2 +- .../Pod-Simple/lib/Pod/Simple/Subclassing.pod | 14 +- .../cpan/Pod-Simple/lib/Pod/Simple/Text.pm | 2 +- .../Pod-Simple/lib/Pod/Simple/TextContent.pm | 2 +- .../Pod-Simple/lib/Pod/Simple/TiedOutFH.pm | 2 +- .../Pod-Simple/lib/Pod/Simple/Transcode.pm | 2 +- .../lib/Pod/Simple/TranscodeDumb.pm | 2 +- .../lib/Pod/Simple/TranscodeSmart.pm | 2 +- .../cpan/Pod-Simple/lib/Pod/Simple/XHTML.pm | 10 +- .../Pod-Simple/lib/Pod/Simple/XMLOutStream.pm | 2 +- gnu/usr.bin/perl/cpan/Pod-Simple/t/encod04.t | 79 +- gnu/usr.bin/perl/cpan/Pod-Simple/t/html01.t | 12 +- gnu/usr.bin/perl/cpan/Pod-Simple/t/search20.t | 12 +- gnu/usr.bin/perl/cpan/Pod-Simple/t/search22.t | 18 +- gnu/usr.bin/perl/cpan/Pod-Simple/t/search50.t | 1 + gnu/usr.bin/perl/cpan/Pod-Simple/t/whine.t | 22 +- gnu/usr.bin/perl/cpan/Pod-Simple/t/xhtml01.t | 12 +- .../perl/cpan/Pod-Usage/t/pod/testp2pt.pl | 2 +- .../perl/cpan/Scalar-List-Utils/ListUtil.xs | 517 +- .../cpan/Scalar-List-Utils/lib/List/Util.pm | 105 +- .../Scalar-List-Utils/lib/List/Util/XS.pm | 4 +- .../cpan/Scalar-List-Utils/lib/Scalar/Util.pm | 13 +- .../cpan/Scalar-List-Utils/lib/Sub/Util.pm | 10 +- .../perl/cpan/Scalar-List-Utils/t/blessed.t | 28 +- .../perl/cpan/Scalar-List-Utils/t/dualvar.t | 42 +- .../perl/cpan/Scalar-List-Utils/t/first.t | 17 +- .../perl/cpan/Scalar-List-Utils/t/isvstring.t | 10 +- .../perl/cpan/Scalar-List-Utils/t/lln.t | 24 +- .../perl/cpan/Scalar-List-Utils/t/pair.t | 7 +- .../perl/cpan/Scalar-List-Utils/t/readonly.t | 18 +- .../perl/cpan/Scalar-List-Utils/t/reduce.t | 38 +- .../perl/cpan/Scalar-List-Utils/t/refaddr.t | 29 +- .../perl/cpan/Scalar-List-Utils/t/reftype.t | 24 +- .../perl/cpan/Scalar-List-Utils/t/shuffle.t | 25 +- .../perl/cpan/Scalar-List-Utils/t/sum.t | 2 +- .../perl/cpan/Scalar-List-Utils/t/tainted.t | 4 +- .../perl/cpan/Scalar-List-Utils/t/weak.t | 4 +- gnu/usr.bin/perl/cpan/Socket/Makefile.PL | 12 +- gnu/usr.bin/perl/cpan/Socket/Socket.pm | 2 +- gnu/usr.bin/perl/cpan/Socket/Socket.xs | 23 +- gnu/usr.bin/perl/cpan/Sys-Syslog/Makefile.PL | 2 +- gnu/usr.bin/perl/cpan/Sys-Syslog/Syslog.pm | 4 +- .../cpan/Term-ANSIColor/lib/Term/ANSIColor.pm | 354 +- .../cpan/Term-ANSIColor/t/lib/Test/RRA.pm | 89 +- .../Term-ANSIColor/t/lib/Test/RRA/Config.pm | 22 +- .../cpan/Term-ANSIColor/t/module/basic256.t | 19 +- gnu/usr.bin/perl/cpan/Term-ReadKey/META.yml | 29 - .../perl/cpan/Test-Simple/lib/Test/Builder.pm | 9 +- .../Test-Simple/lib/Test/Builder/Module.pm | 9 +- .../Test-Simple/lib/Test/Builder/Tester.pm | 2 +- .../lib/Test/Builder/Tester/Color.pm | 2 +- .../perl/cpan/Test-Simple/lib/Test/More.pm | 6 +- .../perl/cpan/Test-Simple/lib/Test/Simple.pm | 2 +- .../perl/cpan/Test-Simple/lib/Test/Tester.pm | 4 +- .../Test-Simple/lib/Test/Tester/Capture.pm | 16 +- .../lib/Test/Tester/CaptureRunner.pm | 2 +- .../Test-Simple/lib/Test/Tester/Delegate.pm | 2 +- .../perl/cpan/Test-Simple/lib/Test/use/ok.pm | 2 +- gnu/usr.bin/perl/cpan/Test-Simple/lib/ok.pm | 2 +- .../cpan/Text-Balanced/lib/Text/Balanced.pm | 2 +- gnu/usr.bin/perl/cpan/Time-Piece/Piece.pm | 23 +- gnu/usr.bin/perl/cpan/Time-Piece/Seconds.pm | 2 +- .../perl/cpan/Time-Piece/t/02core_dst.t | 11 +- gnu/usr.bin/perl/cpan/Win32/Win32.pm | 2 +- gnu/usr.bin/perl/cpan/Win32/Win32.xs | 88 +- gnu/usr.bin/perl/cpan/Win32API-File/File.pm | 2 +- gnu/usr.bin/perl/cpan/Win32API-File/File.xs | 1 + gnu/usr.bin/perl/cpan/autodie/lib/Fatal.pm | 34 +- gnu/usr.bin/perl/cpan/autodie/lib/autodie.pm | 38 +- .../cpan/autodie/lib/autodie/exception.pm | 2 +- .../autodie/lib/autodie/exception/system.pm | 2 +- .../perl/cpan/autodie/lib/autodie/hints.pm | 4 +- .../perl/cpan/autodie/lib/autodie/skip.pm | 2 +- gnu/usr.bin/perl/cpan/autodie/t/version.t | 7 + gnu/usr.bin/perl/cpan/parent/lib/parent.pm | 12 +- gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq.pm | 2 +- gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq.pod | 6 +- .../perl/cpan/perlfaq/lib/perlfaq1.pod | 41 +- .../perl/cpan/perlfaq/lib/perlfaq2.pod | 9 +- .../perl/cpan/perlfaq/lib/perlfaq3.pod | 19 +- .../perl/cpan/perlfaq/lib/perlfaq4.pod | 39 +- .../perl/cpan/perlfaq/lib/perlfaq5.pod | 2 +- .../perl/cpan/perlfaq/lib/perlfaq6.pod | 2 +- .../perl/cpan/perlfaq/lib/perlfaq7.pod | 2 +- .../perl/cpan/perlfaq/lib/perlfaq8.pod | 8 +- .../perl/cpan/perlfaq/lib/perlfaq9.pod | 104 +- .../perl/cpan/perlfaq/lib/perlglossary.pod | 2 +- gnu/usr.bin/perl/cpan/podlators/Makefile.PL | 11 +- .../perl/cpan/podlators/lib/Pod/Man.pm | 27 +- .../perl/cpan/podlators/lib/Pod/ParseLink.pm | 8 +- .../perl/cpan/podlators/lib/Pod/Text.pm | 35 +- .../perl/cpan/podlators/lib/Pod/Text/Color.pm | 9 +- .../cpan/podlators/lib/Pod/Text/Overstrike.pm | 6 +- .../cpan/podlators/lib/Pod/Text/Termcap.pm | 72 +- .../perl/cpan/podlators/scripts/pod2man.PL | 28 +- .../perl/cpan/podlators/scripts/pod2text.PL | 4 +- .../perl/cpan/podlators/t/docs/pod-spelling.t | 6 +- gnu/usr.bin/perl/cpan/podlators/t/docs/pod.t | 6 +- .../perl/cpan/podlators/t/docs/synopsis.t | 6 +- gnu/usr.bin/perl/cpan/podlators/t/docs/urls.t | 95 - .../perl/cpan/podlators/t/general/basic.t | 4 +- .../cpan/podlators/t/general/filehandle.t | 4 +- .../cpan/podlators/t/general/pod-parser.t | 4 +- .../cpan/podlators/t/lib/Test/Podlators.pm | 78 +- .../perl/cpan/podlators/t/lib/Test/RRA.pm | 83 +- .../cpan/podlators/t/lib/Test/RRA/Config.pm | 16 +- .../podlators/t/lib/Test/RRA/ModuleVersion.pm | 36 +- .../perl/cpan/podlators/t/man/devise-date.t | 6 +- .../perl/cpan/podlators/t/man/devise-title.t | 4 +- gnu/usr.bin/perl/cpan/podlators/t/man/empty.t | 4 +- .../perl/cpan/podlators/t/man/heading.t | 4 +- .../perl/cpan/podlators/t/man/no-encode.t | 13 +- .../perl/cpan/podlators/t/man/utf8-io.t | 17 +- .../perl/cpan/podlators/t/parselink/basic.t | 212 +- .../cpan/podlators/t/style/minimum-version.t | 6 +- .../cpan/podlators/t/style/module-version.t | 7 +- .../perl/cpan/podlators/t/style/strict.t | 50 +- .../perl/cpan/podlators/t/text/basic.t | 157 - .../perl/cpan/podlators/t/text/color.t | 4 +- .../perl/cpan/podlators/t/text/empty.t | 54 - .../perl/cpan/podlators/t/text/encoding.t | 158 - .../perl/cpan/podlators/t/text/options.t | 368 - .../perl/cpan/podlators/t/text/overstrike.t | 108 +- .../perl/cpan/podlators/t/text/perlio.t | 129 - .../perl/cpan/podlators/t/text/termcap.t | 24 +- gnu/usr.bin/perl/cpan/podlators/t/text/utf8.t | 128 - gnu/usr.bin/perl/cv.h | 8 +- gnu/usr.bin/perl/cygwin/cygwin.c | 10 +- gnu/usr.bin/perl/dist/Data-Dumper/Dumper.pm | 4 +- gnu/usr.bin/perl/dist/Data-Dumper/Dumper.xs | 65 +- gnu/usr.bin/perl/dist/Data-Dumper/t/dumper.t | 12 +- .../perl/dist/Devel-PPPort/PPPort_xs.PL | 128 - .../perl/dist/Devel-PPPort/devel/mkapidoc.sh | 81 - .../perl/dist/Devel-PPPort/parts/base/5003070 | 42 - .../perl/dist/Devel-PPPort/parts/base/5004010 | 1 - .../perl/dist/Devel-PPPort/parts/base/5004020 | 1 - .../perl/dist/Devel-PPPort/parts/base/5004030 | 1 - .../perl/dist/Devel-PPPort/parts/base/5004040 | 1 - .../perl/dist/Devel-PPPort/parts/base/5004050 | 42 - .../perl/dist/Devel-PPPort/parts/base/5005010 | 1 - .../perl/dist/Devel-PPPort/parts/base/5005020 | 1 - .../perl/dist/Devel-PPPort/parts/base/5005030 | 4 - .../perl/dist/Devel-PPPort/parts/base/5005040 | 1 - .../perl/dist/Devel-PPPort/parts/todo/5003070 | 21 - .../perl/dist/Devel-PPPort/parts/todo/5004010 | 1 - .../perl/dist/Devel-PPPort/parts/todo/5004020 | 1 - .../perl/dist/Devel-PPPort/parts/todo/5004030 | 1 - .../perl/dist/Devel-PPPort/parts/todo/5004040 | 1 - .../perl/dist/Devel-PPPort/parts/todo/5004050 | 7 - .../perl/dist/Devel-PPPort/parts/todo/5005010 | 1 - .../perl/dist/Devel-PPPort/parts/todo/5005020 | 1 - .../perl/dist/Devel-PPPort/parts/todo/5005030 | 4 - .../perl/dist/Devel-PPPort/parts/todo/5005040 | 1 - .../perl/dist/Dumpvalue/lib/Dumpvalue.pm | 19 +- gnu/usr.bin/perl/dist/Dumpvalue/t/Dumpvalue.t | 20 +- .../perl/dist/Exporter/lib/Exporter.pm | 2 +- .../perl/dist/ExtUtils-CBuilder/Changes | 6 + .../perl/dist/ExtUtils-CBuilder/LICENSE | 6 +- .../perl/dist/ExtUtils-CBuilder/Makefile.PL | 4 +- .../lib/ExtUtils/CBuilder.pm | 6 +- .../lib/ExtUtils/CBuilder/Base.pm | 2 +- .../lib/ExtUtils/CBuilder/Platform/Unix.pm | 2 +- .../lib/ExtUtils/CBuilder/Platform/VMS.pm | 2 +- .../lib/ExtUtils/CBuilder/Platform/Windows.pm | 2 +- .../ExtUtils/CBuilder/Platform/Windows/BCC.pm | 2 +- .../ExtUtils/CBuilder/Platform/Windows/GCC.pm | 2 +- .../CBuilder/Platform/Windows/MSVC.pm | 2 +- .../lib/ExtUtils/CBuilder/Platform/aix.pm | 2 +- .../lib/ExtUtils/CBuilder/Platform/android.pm | 2 +- .../lib/ExtUtils/CBuilder/Platform/cygwin.pm | 2 +- .../lib/ExtUtils/CBuilder/Platform/darwin.pm | 2 +- .../lib/ExtUtils/CBuilder/Platform/dec_osf.pm | 2 +- .../lib/ExtUtils/CBuilder/Platform/os2.pm | 2 +- .../perl/dist/ExtUtils-ParseXS/lib/perlxs.pod | 25 +- .../dist/ExtUtils-ParseXS/lib/perlxstut.pod | 4 +- .../dist/Filter-Simple/lib/Filter/Simple.pm | 3 +- .../dist/I18N-LangTags/lib/I18N/LangTags.pm | 16 +- .../I18N-LangTags/lib/I18N/LangTags/Detect.pm | 8 +- gnu/usr.bin/perl/dist/IO/IO.pm | 4 +- gnu/usr.bin/perl/dist/IO/IO.xs | 93 +- gnu/usr.bin/perl/dist/IO/lib/IO/Dir.pm | 2 +- gnu/usr.bin/perl/dist/IO/lib/IO/File.pm | 2 +- gnu/usr.bin/perl/dist/IO/lib/IO/Handle.pm | 22 +- gnu/usr.bin/perl/dist/IO/lib/IO/Pipe.pm | 2 +- gnu/usr.bin/perl/dist/IO/lib/IO/Poll.pm | 2 +- gnu/usr.bin/perl/dist/IO/lib/IO/Seekable.pm | 2 +- gnu/usr.bin/perl/dist/IO/lib/IO/Select.pm | 18 +- gnu/usr.bin/perl/dist/IO/lib/IO/Socket.pm | 572 +- .../perl/dist/IO/lib/IO/Socket/INET.pm | 2 +- .../perl/dist/IO/lib/IO/Socket/UNIX.pm | 2 +- .../perl/dist/IO/t/cachepropagate-unix.t | 23 +- gnu/usr.bin/perl/dist/IO/t/io_poll.t | 5 - gnu/usr.bin/perl/dist/IO/t/io_sock.t | 1 + gnu/usr.bin/perl/dist/IO/t/io_utf8argv.t | 18 +- .../perl/dist/Locale-Maketext/ChangeLog | 10 +- gnu/usr.bin/perl/dist/Module-CoreList/Changes | 33 + .../perl/dist/Module-CoreList/corelist | 8 + .../Module-CoreList/lib/Module/CoreList.pm | 1020 +- .../lib/Module/CoreList/Utils.pm | 72 +- .../perl/dist/Net-Ping/lib/Net/Ping.pm | 2 +- .../perl/dist/Net-Ping/t/450_service.t | 15 +- .../dist/PathTools/lib/File/Spec/Win32.pm | 4 +- gnu/usr.bin/perl/dist/Safe/Safe.pm | 11 +- .../perl/dist/SelfLoader/lib/SelfLoader.pm | 4 +- gnu/usr.bin/perl/dist/Storable/ChangeLog | 33 +- gnu/usr.bin/perl/dist/Storable/Makefile.PL | 59 +- .../Storable/{__Storable__.pm => Storable.pm} | 23 +- gnu/usr.bin/perl/dist/Storable/Storable.pm.PL | 35 - gnu/usr.bin/perl/dist/Storable/Storable.xs | 50 +- gnu/usr.bin/perl/dist/Storable/stacksize | 2 +- .../perl/dist/Storable/t/attach_errors.t | 2 +- gnu/usr.bin/perl/dist/Storable/t/recurse.t | 4 +- .../dist/Thread-Queue/lib/Thread/Queue.pm | 6 +- .../perl/dist/Tie-File/lib/Tie/File.pm | 41 +- gnu/usr.bin/perl/dist/Tie-File/t/00_version.t | 22 - gnu/usr.bin/perl/dist/Time-HiRes/Changes | 4 +- gnu/usr.bin/perl/dist/Time-HiRes/HiRes.pm | 141 +- gnu/usr.bin/perl/dist/Time-HiRes/HiRes.xs | 1721 +- gnu/usr.bin/perl/dist/Time-HiRes/Makefile.PL | 689 +- .../perl/dist/Time-HiRes/t/Watchdog.pm | 54 +- gnu/usr.bin/perl/dist/Time-HiRes/t/alarm.t | 204 +- gnu/usr.bin/perl/dist/Time-HiRes/t/clock.t | 62 +- .../perl/dist/Time-HiRes/t/gettimeofday.t | 6 +- gnu/usr.bin/perl/dist/Time-HiRes/t/itimer.t | 18 +- .../perl/dist/Time-HiRes/t/nanosleep.t | 6 +- gnu/usr.bin/perl/dist/Time-HiRes/t/sleep.t | 6 +- gnu/usr.bin/perl/dist/Time-HiRes/t/stat.t | 20 +- gnu/usr.bin/perl/dist/Time-HiRes/t/time.t | 6 +- gnu/usr.bin/perl/dist/Time-HiRes/t/ualarm.t | 60 +- gnu/usr.bin/perl/dist/Time-HiRes/t/usleep.t | 14 +- gnu/usr.bin/perl/dist/Time-HiRes/t/utime.t | 304 +- gnu/usr.bin/perl/dist/Time-HiRes/typemap | 454 +- gnu/usr.bin/perl/dist/XSLoader/Makefile.PL | 18 +- .../dist/threads-shared/lib/threads/shared.pm | 4 +- .../perl/dist/threads-shared/shared.xs | 15 +- .../perl/dist/threads-shared/t/stress.t | 6 +- gnu/usr.bin/perl/dist/threads/lib/threads.pm | 22 +- gnu/usr.bin/perl/dist/threads/threads.xs | 2 +- gnu/usr.bin/perl/doio.c | 35 +- gnu/usr.bin/perl/doop.c | 733 +- gnu/usr.bin/perl/dosish.h | 5 +- gnu/usr.bin/perl/dquote.c | 436 +- gnu/usr.bin/perl/dquote_inline.h | 67 - gnu/usr.bin/perl/dump.c | 47 +- gnu/usr.bin/perl/ebcdic_tables.h | 20 +- gnu/usr.bin/perl/embed.fnc | 3287 +- gnu/usr.bin/perl/embed.h | 502 +- gnu/usr.bin/perl/embedvar.h | 117 +- gnu/usr.bin/perl/ext/B/B.pm | 2 +- gnu/usr.bin/perl/ext/B/B.xs | 32 +- gnu/usr.bin/perl/ext/B/t/b.t | 15 +- gnu/usr.bin/perl/ext/B/t/optree_concise.t | 12 +- gnu/usr.bin/perl/ext/B/t/optree_misc.t | 4 +- gnu/usr.bin/perl/ext/B/t/optree_samples.t | 8 +- gnu/usr.bin/perl/ext/B/t/optree_sort.t | 16 +- gnu/usr.bin/perl/ext/B/t/optree_varinit.t | 40 +- gnu/usr.bin/perl/ext/Devel-Peek/t/Peek.t | 4 +- .../perl/ext/DynaLoader/DynaLoader_pm.PL | 21 +- gnu/usr.bin/perl/ext/DynaLoader/dl_aix.xs | 2 +- gnu/usr.bin/perl/ext/DynaLoader/dl_dlopen.xs | 14 +- .../perl/ext/DynaLoader/t/DynaLoader.t | 2 +- .../perl/ext/File-Find/lib/File/Find.pm | 2 +- gnu/usr.bin/perl/ext/File-Find/t/find.t | 85 +- gnu/usr.bin/perl/ext/File-Glob/Glob.pm | 9 +- gnu/usr.bin/perl/ext/File-Glob/bsd_glob.c | 4 +- .../perl/ext/Hash-Util/lib/Hash/Util.pm | 4 +- .../perl/ext/I18N-Langinfo/Langinfo.pm | 4 +- .../perl/ext/IPC-Open3/lib/IPC/Open3.pm | 69 +- gnu/usr.bin/perl/ext/NDBM_File/Makefile.PL | 2 +- gnu/usr.bin/perl/ext/Opcode/Opcode.pm | 14 +- gnu/usr.bin/perl/ext/Opcode/Opcode.xs | 2 +- gnu/usr.bin/perl/ext/POSIX/POSIX.xs | 252 +- gnu/usr.bin/perl/ext/POSIX/lib/POSIX.pm | 2 +- gnu/usr.bin/perl/ext/POSIX/lib/POSIX.pod | 151 +- gnu/usr.bin/perl/ext/POSIX/t/time.t | 14 +- .../perl/ext/PerlIO-encoding/encoding.pm | 2 +- .../perl/ext/PerlIO-encoding/encoding.xs | 2 +- .../perl/ext/PerlIO-encoding/t/encoding.t | 7 +- gnu/usr.bin/perl/ext/PerlIO-via/via.pm | 2 +- gnu/usr.bin/perl/ext/PerlIO-via/via.xs | 4 +- gnu/usr.bin/perl/ext/Pod-Html/lib/Pod/Html.pm | 27 +- gnu/usr.bin/perl/ext/Sys-Hostname/Hostname.pm | 4 +- .../ext/Tie-Hash-NamedCapture/NamedCapture.xs | 131 - gnu/usr.bin/perl/ext/XS-APItest/APItest.pm | 4 +- gnu/usr.bin/perl/ext/XS-APItest/APItest.xs | 849 +- gnu/usr.bin/perl/ext/XS-APItest/Makefile.PL | 2 +- gnu/usr.bin/perl/ext/XS-APItest/t/call.t | 31 +- gnu/usr.bin/perl/ext/XS-APItest/t/multicall.t | 2 +- gnu/usr.bin/perl/ext/XS-APItest/t/printf.t | 14 +- gnu/usr.bin/perl/ext/mro/mro.pm | 24 +- gnu/usr.bin/perl/ext/re/Makefile.PL | 5 + gnu/usr.bin/perl/ext/re/re.pm | 124 +- gnu/usr.bin/perl/ext/re/re.xs | 26 +- gnu/usr.bin/perl/ext/re/t/re.t | 6 +- gnu/usr.bin/perl/feature.h | 208 +- gnu/usr.bin/perl/globvar.sym | 1 + gnu/usr.bin/perl/gv.c | 62 +- gnu/usr.bin/perl/handy.h | 967 +- gnu/usr.bin/perl/hints/README.hints | 2 +- gnu/usr.bin/perl/hints/bsdos.sh | 2 +- gnu/usr.bin/perl/hints/catamount.sh | 4 +- gnu/usr.bin/perl/hints/darwin.sh | 13 +- gnu/usr.bin/perl/hints/freebsd.sh | 4 +- gnu/usr.bin/perl/hints/hpux.sh | 8 +- gnu/usr.bin/perl/hints/linux-android.sh | 72 +- gnu/usr.bin/perl/hints/linux.sh | 5 +- gnu/usr.bin/perl/hints/netbsd.sh | 35 + gnu/usr.bin/perl/hints/openbsd.sh | 52 +- gnu/usr.bin/perl/hints/os390.sh | 25 +- gnu/usr.bin/perl/hints/solaris_2.sh | 5 +- gnu/usr.bin/perl/hv.c | 44 +- gnu/usr.bin/perl/hv.h | 18 +- gnu/usr.bin/perl/hv_func.h | 91 +- gnu/usr.bin/perl/inline.h | 411 +- gnu/usr.bin/perl/install_lib.pl | 18 +- gnu/usr.bin/perl/installperl | 70 +- gnu/usr.bin/perl/intrpvar.h | 167 +- gnu/usr.bin/perl/invlist_inline.h | 158 +- gnu/usr.bin/perl/iperlsys.h | 38 +- gnu/usr.bin/perl/keywords.c | 30 +- gnu/usr.bin/perl/keywords.h | 293 +- gnu/usr.bin/perl/l1_char_class_tab.h | 408 +- gnu/usr.bin/perl/lib/AnyDBM_File.pm | 2 + gnu/usr.bin/perl/lib/B/Deparse-core.t | 9 +- gnu/usr.bin/perl/lib/B/Deparse.pm | 346 +- gnu/usr.bin/perl/lib/B/Deparse.t | 59 +- gnu/usr.bin/perl/lib/B/Op_private.pm | 31 +- gnu/usr.bin/perl/lib/Benchmark.pm | 4 +- gnu/usr.bin/perl/lib/Class/Struct.pm | 4 +- gnu/usr.bin/perl/lib/DBM_Filter/t/encode.t | 5 +- gnu/usr.bin/perl/lib/English.pm | 4 +- gnu/usr.bin/perl/lib/ExtUtils/t/Embed.t | 5 + gnu/usr.bin/perl/lib/File/stat.pm | 5 +- gnu/usr.bin/perl/lib/File/stat.t | 6 +- gnu/usr.bin/perl/lib/FindBin.pm | 170 - gnu/usr.bin/perl/lib/FindBin.t | 20 - gnu/usr.bin/perl/lib/Pod/t/InputObjects.t | 127 - gnu/usr.bin/perl/lib/Pod/t/Select.t | 116 - gnu/usr.bin/perl/lib/Pod/t/utils.t | 81 - gnu/usr.bin/perl/lib/Tie/Scalar.pm | 4 +- gnu/usr.bin/perl/lib/Unicode/UCD.pm | 745 +- gnu/usr.bin/perl/lib/Unicode/UCD.t | 114 +- gnu/usr.bin/perl/lib/_charnames.pm | 110 +- gnu/usr.bin/perl/lib/charnames.pm | 4 +- gnu/usr.bin/perl/lib/charnames.t | 109 +- gnu/usr.bin/perl/lib/diagnostics.pm | 8 +- gnu/usr.bin/perl/lib/feature.pm | 66 +- gnu/usr.bin/perl/lib/overload.pm | 30 +- gnu/usr.bin/perl/lib/overload.t | 2 +- gnu/usr.bin/perl/lib/perl5db.pl | 9 +- gnu/usr.bin/perl/lib/perl5db.t | 25 + .../perl/lib/unicore/ArabicShaping.txt | 69 +- gnu/usr.bin/perl/lib/unicore/BidiBrackets.txt | 4 +- .../perl/lib/unicore/BidiMirroring.txt | 6 +- gnu/usr.bin/perl/lib/unicore/Blocks.txt | 12 +- gnu/usr.bin/perl/lib/unicore/CJKRadicals.txt | 4 +- gnu/usr.bin/perl/lib/unicore/CaseFolding.txt | 7 +- .../lib/unicore/CompositionExclusions.txt | 17 +- gnu/usr.bin/perl/lib/unicore/DAge.txt | 72 +- .../perl/lib/unicore/DCoreProperties.txt | 421 +- .../perl/lib/unicore/DNormalizationProps.txt | 52 +- .../perl/lib/unicore/EastAsianWidth.txt | 115 +- gnu/usr.bin/perl/lib/unicore/EmojiData.txt | 770 - gnu/usr.bin/perl/lib/unicore/EmojiSources.txt | 4 +- .../perl/lib/unicore/HangulSyllableType.txt | 4 +- gnu/usr.bin/perl/lib/unicore/Heavy.pl | 7393 --- gnu/usr.bin/perl/lib/unicore/Index.txt | 20 +- .../lib/unicore/IndicPositionalCategory.txt | 61 +- .../lib/unicore/IndicSyllabicCategory.txt | 46 +- gnu/usr.bin/perl/lib/unicore/Jamo.txt | 6 +- gnu/usr.bin/perl/lib/unicore/LineBreak.txt | 148 +- gnu/usr.bin/perl/lib/unicore/NameAliases.txt | 4 +- .../perl/lib/unicore/NamedSequences.txt | 44 +- gnu/usr.bin/perl/lib/unicore/NamedSqProv.txt | 35 +- gnu/usr.bin/perl/lib/unicore/NamesList.txt | 1916 +- .../lib/unicore/NormalizationCorrections.txt | 4 +- gnu/usr.bin/perl/lib/unicore/PropList.txt | 75 +- .../perl/lib/unicore/PropValueAliases.txt | 57 +- .../perl/lib/unicore/PropertyAliases.txt | 14 +- gnu/usr.bin/perl/lib/unicore/README.perl | 2 + gnu/usr.bin/perl/lib/unicore/ReadMe.txt | 11 +- .../perl/lib/unicore/ScriptExtensions.txt | 61 +- gnu/usr.bin/perl/lib/unicore/Scripts.txt | 156 +- .../perl/lib/unicore/SpecialCasing.txt | 4 +- .../perl/lib/unicore/StandardizedVariants.txt | 6 +- gnu/usr.bin/perl/lib/unicore/UnicodeData.txt | 962 +- .../perl/lib/unicore/auxiliary/GCBTest.txt | 4 +- .../auxiliary/GraphemeBreakProperty.txt | 31 +- .../perl/lib/unicore/auxiliary/LBTest.txt | 1996 +- .../perl/lib/unicore/auxiliary/SBTest.txt | 4 +- .../auxiliary/SentenceBreakProperty.txt | 79 +- .../perl/lib/unicore/auxiliary/WBTest.txt | 4 +- .../unicore/auxiliary/WordBreakProperty.txt | 67 +- .../perl/lib/unicore/extracted/DBidiClass.txt | 123 +- .../unicore/extracted/DBinaryProperties.txt | 4 +- .../lib/unicore/extracted/DCombiningClass.txt | 119 +- .../unicore/extracted/DDecompositionType.txt | 13 +- .../lib/unicore/extracted/DEastAsianWidth.txt | 117 +- .../unicore/extracted/DGeneralCategory.txt | 223 +- .../perl/lib/unicore/extracted/DJoinGroup.txt | 23 +- .../perl/lib/unicore/extracted/DJoinType.txt | 42 +- .../perl/lib/unicore/extracted/DLineBreak.txt | 161 +- .../perl/lib/unicore/extracted/DNumType.txt | 11 +- .../perl/lib/unicore/extracted/DNumValues.txt | 57 +- gnu/usr.bin/perl/lib/unicore/lib/Lb/EB.pl | 86 - .../perl/lib/unicore/lib/Perl/_PerlNon.pl | 52 - gnu/usr.bin/perl/lib/unicore/lib/Sc/Armn.pl | 24 - gnu/usr.bin/perl/lib/unicore/mktables | 1745 +- gnu/usr.bin/perl/lib/unicore/version | 2 +- gnu/usr.bin/perl/lib/utf8_heavy.pl | 623 - gnu/usr.bin/perl/lib/warnings.pm | 23 +- gnu/usr.bin/perl/locale.c | 104 +- gnu/usr.bin/perl/make_ext.pl | 28 +- gnu/usr.bin/perl/make_patchnum.pl | 29 + gnu/usr.bin/perl/makedef.pl | 373 +- gnu/usr.bin/perl/malloc.c | 28 +- gnu/usr.bin/perl/mathoms.c | 616 +- gnu/usr.bin/perl/metaconfig.h | 15 +- gnu/usr.bin/perl/mg.c | 280 +- gnu/usr.bin/perl/mkppport | 20 +- gnu/usr.bin/perl/mro_core.c | 12 +- gnu/usr.bin/perl/numeric.c | 838 +- gnu/usr.bin/perl/op.c | 3994 +- gnu/usr.bin/perl/op.h | 121 +- gnu/usr.bin/perl/opcode.h | 175 +- gnu/usr.bin/perl/opnames.h | 5 +- gnu/usr.bin/perl/os2/Changes | 2 +- gnu/usr.bin/perl/os2/dl_os2.c | 2 +- gnu/usr.bin/perl/os2/os2.c | 2 +- gnu/usr.bin/perl/os2/os2ish.h | 2 +- gnu/usr.bin/perl/pad.c | 98 +- gnu/usr.bin/perl/pad.h | 48 +- gnu/usr.bin/perl/parser.h | 12 +- gnu/usr.bin/perl/patchlevel.h | 6 +- gnu/usr.bin/perl/perl.c | 212 +- gnu/usr.bin/perl/perl.h | 856 +- gnu/usr.bin/perl/perlapi.h | 72 +- gnu/usr.bin/perl/perlio.c | 39 +- gnu/usr.bin/perl/perlio.h | 3 + gnu/usr.bin/perl/perlvars.h | 78 +- gnu/usr.bin/perl/perly.act | 1117 +- gnu/usr.bin/perl/perly.h | 171 +- gnu/usr.bin/perl/perly.tab | 1937 +- gnu/usr.bin/perl/perly.y | 103 +- gnu/usr.bin/perl/plan9/config.plan9 | 30 +- gnu/usr.bin/perl/plan9/config_sh.sample | 43 +- gnu/usr.bin/perl/plan9/mkfile | 2 +- gnu/usr.bin/perl/plan9/plan9ish.h | 8 +- gnu/usr.bin/perl/pod/perl.pod | 20 +- gnu/usr.bin/perl/pod/perl5240delta.pod | 8 +- gnu/usr.bin/perl/pod/perlapio.pod | 48 +- gnu/usr.bin/perl/pod/perlbook.pod | 64 +- gnu/usr.bin/perl/pod/perlcall.pod | 2 + gnu/usr.bin/perl/pod/perlcheat.pod | 8 +- gnu/usr.bin/perl/pod/perlclib.pod | 6 +- gnu/usr.bin/perl/pod/perlcommunity.pod | 76 +- gnu/usr.bin/perl/pod/perldata.pod | 4 +- gnu/usr.bin/perl/pod/perldebguts.pod | 114 +- gnu/usr.bin/perl/pod/perldelta.pod | 216 +- gnu/usr.bin/perl/pod/perldiag.pod | 371 +- gnu/usr.bin/perl/pod/perldtrace.pod | 2 +- gnu/usr.bin/perl/pod/perlebcdic.pod | 6 +- gnu/usr.bin/perl/pod/perlembed.pod | 2 +- gnu/usr.bin/perl/pod/perlexperiment.pod | 55 +- gnu/usr.bin/perl/pod/perlfilter.pod | 5 +- gnu/usr.bin/perl/pod/perlfunc.pod | 585 +- gnu/usr.bin/perl/pod/perlgit.pod | 2 +- gnu/usr.bin/perl/pod/perlguts.pod | 503 +- gnu/usr.bin/perl/pod/perlhack.pod | 48 +- gnu/usr.bin/perl/pod/perlhacktips.pod | 76 +- gnu/usr.bin/perl/pod/perlhist.pod | 42 +- gnu/usr.bin/perl/pod/perlintro.pod | 6 +- gnu/usr.bin/perl/pod/perliol.pod | 2 +- gnu/usr.bin/perl/pod/perlipc.pod | 546 +- gnu/usr.bin/perl/pod/perllocale.pod | 34 +- gnu/usr.bin/perl/pod/perlmodinstall.pod | 22 +- gnu/usr.bin/perl/pod/perlmodlib.PL | 11 +- gnu/usr.bin/perl/pod/perlmodstyle.pod | 8 +- gnu/usr.bin/perl/pod/perlmroapi.pod | 4 + gnu/usr.bin/perl/pod/perlnewmod.pod | 2 +- gnu/usr.bin/perl/pod/perlootut.pod | 2 +- gnu/usr.bin/perl/pod/perlop.pod | 232 +- gnu/usr.bin/perl/pod/perlpacktut.pod | 9 +- gnu/usr.bin/perl/pod/perlpod.pod | 41 +- gnu/usr.bin/perl/pod/perlpodspec.pod | 19 +- gnu/usr.bin/perl/pod/perlpolicy.pod | 75 +- gnu/usr.bin/perl/pod/perlport.pod | 26 +- gnu/usr.bin/perl/pod/perlre.pod | 33 +- gnu/usr.bin/perl/pod/perlrebackslash.pod | 22 +- gnu/usr.bin/perl/pod/perlrecharclass.pod | 4 +- gnu/usr.bin/perl/pod/perlref.pod | 30 +- gnu/usr.bin/perl/pod/perlreref.pod | 28 +- gnu/usr.bin/perl/pod/perlretut.pod | 80 +- gnu/usr.bin/perl/pod/perlrun.pod | 320 +- gnu/usr.bin/perl/pod/perlsec.pod | 46 +- gnu/usr.bin/perl/pod/perlsource.pod | 14 +- gnu/usr.bin/perl/pod/perlstyle.pod | 21 +- gnu/usr.bin/perl/pod/perlsub.pod | 7 +- gnu/usr.bin/perl/pod/perlsyn.pod | 25 +- gnu/usr.bin/perl/pod/perlthrtut.pod | 8 +- gnu/usr.bin/perl/pod/perltie.pod | 28 +- gnu/usr.bin/perl/pod/perltrap.pod | 2 +- gnu/usr.bin/perl/pod/perlunicode.pod | 246 +- gnu/usr.bin/perl/pod/perlunicook.pod | 7 + gnu/usr.bin/perl/pod/perlunifaq.pod | 2 +- gnu/usr.bin/perl/pod/perluniintro.pod | 22 +- gnu/usr.bin/perl/pod/perlutil.pod | 10 +- gnu/usr.bin/perl/pod/perlvar.pod | 86 +- gnu/usr.bin/perl/pp.c | 196 +- gnu/usr.bin/perl/pp.h | 28 +- gnu/usr.bin/perl/pp_ctl.c | 73 +- gnu/usr.bin/perl/pp_hot.c | 74 +- gnu/usr.bin/perl/pp_pack.c | 13 +- gnu/usr.bin/perl/pp_proto.h | 8 +- gnu/usr.bin/perl/pp_sort.c | 1383 +- gnu/usr.bin/perl/pp_sys.c | 29 +- gnu/usr.bin/perl/proto.h | 2127 +- gnu/usr.bin/perl/reentr.c | 732 +- gnu/usr.bin/perl/regcharclass.h | 458 +- gnu/usr.bin/perl/regcomp.c | 4552 +- gnu/usr.bin/perl/regcomp.h | 287 +- gnu/usr.bin/perl/regcomp.sym | 103 +- gnu/usr.bin/perl/regen/ebcdic.pl | 38 +- gnu/usr.bin/perl/regen/embed.pl | 83 +- gnu/usr.bin/perl/regen/embed_lib.pl | 3 +- gnu/usr.bin/perl/regen/feature.pl | 171 +- gnu/usr.bin/perl/regen/keywords.pl | 2 + gnu/usr.bin/perl/regen/lib_cleanup.pl | 6 - gnu/usr.bin/perl/regen/mg_vtable.pl | 7 +- gnu/usr.bin/perl/regen/mk_PL_charclass.pl | 12 +- gnu/usr.bin/perl/regen/mk_invlists.pl | 520 +- gnu/usr.bin/perl/regen/op_private | 12 +- gnu/usr.bin/perl/regen/opcode.pl | 25 +- gnu/usr.bin/perl/regen/opcodes | 10 +- gnu/usr.bin/perl/regen/reentr.pl | 725 +- gnu/usr.bin/perl/regen/regcharclass.pl | 32 +- .../regen/regcharclass_multi_char_folds.pl | 72 +- gnu/usr.bin/perl/regen/regcomp.pl | 46 +- gnu/usr.bin/perl/regen/unicode_constants.pl | 4 +- gnu/usr.bin/perl/regen/warnings.pl | 32 +- gnu/usr.bin/perl/regen_perly.pl | 4 +- gnu/usr.bin/perl/regexec.c | 488 +- gnu/usr.bin/perl/regexp.h | 30 +- gnu/usr.bin/perl/regnodes.h | 426 +- gnu/usr.bin/perl/scope.c | 12 +- gnu/usr.bin/perl/scope.h | 12 +- gnu/usr.bin/perl/sv.c | 389 +- gnu/usr.bin/perl/sv.h | 173 +- gnu/usr.bin/perl/symbian/config.sh | 3 + gnu/usr.bin/perl/symbian/symbianish.h | 2 +- gnu/usr.bin/perl/t/TEST | 32 +- gnu/usr.bin/perl/t/base/cond.t | 16 +- gnu/usr.bin/perl/t/base/if.t | 4 +- gnu/usr.bin/perl/t/base/lex.t | 2 +- gnu/usr.bin/perl/t/base/pat.t | 4 +- .../rt26188-speed-up-keys-on-empty-hash.t | 84 - gnu/usr.bin/perl/t/charset_tools.pl | 37 +- gnu/usr.bin/perl/t/harness | 6 +- gnu/usr.bin/perl/t/io/errno.t | 2 +- gnu/usr.bin/perl/t/io/pipe.t | 32 +- gnu/usr.bin/perl/t/lib/charnames/alias | 2 +- gnu/usr.bin/perl/t/lib/croak/toke | 71 + gnu/usr.bin/perl/t/lib/h2ph.pht | 4 + gnu/usr.bin/perl/t/lib/overload_nomethod.t | 10 +- gnu/usr.bin/perl/t/lib/strict/subs | 8 + gnu/usr.bin/perl/t/lib/warnings/9uninit | 10 + gnu/usr.bin/perl/t/lib/warnings/doop | 14 - gnu/usr.bin/perl/t/lib/warnings/op | 44 +- gnu/usr.bin/perl/t/lib/warnings/regcomp | 20 +- gnu/usr.bin/perl/t/lib/warnings/toke | 74 +- gnu/usr.bin/perl/t/loc_tools.pl | 7 +- gnu/usr.bin/perl/t/mro/next_edgecases.t | 2 +- gnu/usr.bin/perl/t/mro/next_edgecases_utf8.t | 2 +- gnu/usr.bin/perl/t/op/aassign.t | 20 +- gnu/usr.bin/perl/t/op/attrs.t | 3 + gnu/usr.bin/perl/t/op/bop.t | 137 +- gnu/usr.bin/perl/t/op/concat2.t | 18 +- gnu/usr.bin/perl/t/op/cond.t | 15 + gnu/usr.bin/perl/t/op/const-optree.t | 44 +- gnu/usr.bin/perl/t/op/coreamp.t | 18 +- gnu/usr.bin/perl/t/op/coresubs.t | 2 +- gnu/usr.bin/perl/t/op/die.t | 8 +- gnu/usr.bin/perl/t/op/die_unwind.t | 4 + gnu/usr.bin/perl/t/op/exec.t | 2 + gnu/usr.bin/perl/t/op/fork.t | 2 +- gnu/usr.bin/perl/t/op/getppid.t | 2 +- gnu/usr.bin/perl/t/op/goto.t | 19 +- gnu/usr.bin/perl/t/op/groups.t | 2 +- gnu/usr.bin/perl/t/op/gv.t | 2 +- gnu/usr.bin/perl/t/op/hexfp.t | 18 +- gnu/usr.bin/perl/t/op/index.t | 28 +- gnu/usr.bin/perl/t/op/int.t | 5 +- gnu/usr.bin/perl/t/op/lc.t | 4 +- gnu/usr.bin/perl/t/op/list.t | 9 +- gnu/usr.bin/perl/t/op/lvref.t | 15 +- gnu/usr.bin/perl/t/op/magic.t | 12 +- gnu/usr.bin/perl/t/op/qr.t | 2 +- gnu/usr.bin/perl/t/op/range.t | 23 +- gnu/usr.bin/perl/t/op/readdir.t | 6 +- gnu/usr.bin/perl/t/op/ref.t | 2 +- gnu/usr.bin/perl/t/op/require_errors.t | 14 +- gnu/usr.bin/perl/t/op/reverse.t | 11 +- gnu/usr.bin/perl/t/op/signatures.t | 40 +- gnu/usr.bin/perl/t/op/sort.t | 23 +- gnu/usr.bin/perl/t/op/split.t | 2 +- gnu/usr.bin/perl/t/op/sprintf.t | 2 +- gnu/usr.bin/perl/t/op/sprintf2.t | 16 + gnu/usr.bin/perl/t/op/stat.t | 18 +- gnu/usr.bin/perl/t/op/sub.t | 2 +- gnu/usr.bin/perl/t/op/sub_lval.t | 2 +- gnu/usr.bin/perl/t/op/svleak.t | 2 +- gnu/usr.bin/perl/t/op/taint.t | 29 +- gnu/usr.bin/perl/t/op/threads-dirh.t | 1 + gnu/usr.bin/perl/t/op/tr.t | 68 +- gnu/usr.bin/perl/t/op/universal.t | 3 +- gnu/usr.bin/perl/t/op/utftaint.t | 2 +- gnu/usr.bin/perl/t/op/vec.t | 25 +- gnu/usr.bin/perl/t/op/write.t | 2 +- gnu/usr.bin/perl/t/perf/benchmarks | 6 + gnu/usr.bin/perl/t/perf/opcount.t | 14 +- gnu/usr.bin/perl/t/porting/args_assert.t | 4 +- gnu/usr.bin/perl/t/porting/bench.t | 2 +- gnu/usr.bin/perl/t/porting/customized.dat | 24 +- gnu/usr.bin/perl/t/porting/diag.t | 6 +- gnu/usr.bin/perl/t/porting/dual-life.t | 6 - .../perl/t/porting/known_pod_issues.dat | 34 +- gnu/usr.bin/perl/t/porting/libperl.t | 2 +- gnu/usr.bin/perl/t/porting/manifest.t | 4 + gnu/usr.bin/perl/t/porting/podcheck.t | 68 +- gnu/usr.bin/perl/t/re/bigfuzzy_not_utf8.t | Bin 36399 -> 36462 bytes gnu/usr.bin/perl/t/re/pat.t | 184 +- gnu/usr.bin/perl/t/re/pat_advanced.t | 58 +- gnu/usr.bin/perl/t/re/pat_re_eval.t | 8 +- gnu/usr.bin/perl/t/re/re_tests | 10 +- gnu/usr.bin/perl/t/re/recompile.t | 2 +- gnu/usr.bin/perl/t/re/reg_mesg.t | 102 +- gnu/usr.bin/perl/t/re/regex_sets.t | 6 + gnu/usr.bin/perl/t/re/regexp.t | 76 +- gnu/usr.bin/perl/t/re/regexp_unicode_prop.t | 11 +- gnu/usr.bin/perl/t/re/rt122747.t | 2 +- gnu/usr.bin/perl/t/re/script_run.t | 5 +- gnu/usr.bin/perl/t/re/speed.t | 7 +- gnu/usr.bin/perl/t/run/fresh_perl.t | 2 +- gnu/usr.bin/perl/t/run/switches.t | 63 +- gnu/usr.bin/perl/t/test.pl | 56 +- gnu/usr.bin/perl/t/uni/cache.t | 35 - gnu/usr.bin/perl/t/uni/gv.t | 2 +- gnu/usr.bin/perl/t/uni/variables.t | 4 +- gnu/usr.bin/perl/taint.c | 7 +- gnu/usr.bin/perl/time64.c | 228 +- gnu/usr.bin/perl/time64.h | 13 - gnu/usr.bin/perl/toke.c | 8676 ++-- gnu/usr.bin/perl/uconfig.h | 42 +- gnu/usr.bin/perl/uconfig.sh | 19 +- gnu/usr.bin/perl/uconfig64.sh | 19 +- gnu/usr.bin/perl/unicode_constants.h | 10 +- gnu/usr.bin/perl/universal.c | 360 +- gnu/usr.bin/perl/unixish.h | 4 +- gnu/usr.bin/perl/utf8.c | 1336 +- gnu/usr.bin/perl/utf8.h | 366 +- gnu/usr.bin/perl/utfebcdic.h | 73 +- gnu/usr.bin/perl/util.c | 237 +- gnu/usr.bin/perl/util.h | 30 +- gnu/usr.bin/perl/utils.lst | 10 +- gnu/usr.bin/perl/utils/Makefile.PL | 20 +- gnu/usr.bin/perl/utils/h2ph.PL | 13 +- gnu/usr.bin/perl/utils/h2xs.PL | 2 +- gnu/usr.bin/perl/utils/perlbug.PL | 183 +- gnu/usr.bin/perl/utils/perlivp.PL | 2 +- gnu/usr.bin/perl/utils/pl2pm.PL | 7 +- gnu/usr.bin/perl/utils/splain.PL | 9 +- gnu/usr.bin/perl/vms/descrip_mms.template | 13 +- gnu/usr.bin/perl/vms/gen_shrfls.pl | 9 +- gnu/usr.bin/perl/vms/vms.c | 14 +- gnu/usr.bin/perl/vms/vmsish.h | 3 +- gnu/usr.bin/perl/vutil.c | 12 +- gnu/usr.bin/perl/vxs.inc | 2 +- gnu/usr.bin/perl/warnings.h | 96 + gnu/usr.bin/perl/win32/GNUmakefile | 113 +- gnu/usr.bin/perl/win32/Makefile | 88 +- gnu/usr.bin/perl/win32/Makefile.ce | 1077 - gnu/usr.bin/perl/win32/bin/search.pl | 4 +- .../perl/win32/ce-helpers/cecopy-lib.pl | 207 - gnu/usr.bin/perl/win32/ce-helpers/comp.pl | 84 - .../perl/win32/ce-helpers/compile-all.bat | 62 - gnu/usr.bin/perl/win32/ce-helpers/compile.bat | 42 - gnu/usr.bin/perl/win32/ce-helpers/makedist.pl | 297 - .../perl/win32/ce-helpers/registry.bat | 28 - .../perl/win32/ce-helpers/sdsdkenv.bat | 3 - gnu/usr.bin/perl/win32/config.ce | 1137 - gnu/usr.bin/perl/win32/config.gc | 3 + gnu/usr.bin/perl/win32/config.vc | 3 + gnu/usr.bin/perl/win32/config_H.ce | 4206 -- gnu/usr.bin/perl/win32/config_H.gc | 6 +- gnu/usr.bin/perl/win32/config_H.vc | 6 +- gnu/usr.bin/perl/win32/config_sh.PL | 4 +- gnu/usr.bin/perl/win32/include/sys/socket.h | 157 +- gnu/usr.bin/perl/win32/makefile.mk | 111 +- gnu/usr.bin/perl/win32/perl.rc | 36 - gnu/usr.bin/perl/win32/perlglob.c | 11 +- gnu/usr.bin/perl/win32/perlhost.h | 13 +- gnu/usr.bin/perl/win32/perllib.c | 40 - gnu/usr.bin/perl/win32/perlmaince.c | 40 - gnu/usr.bin/perl/win32/pod.mak | 20 + gnu/usr.bin/perl/win32/vdir.h | 8 +- gnu/usr.bin/perl/win32/vmem.h | 2 - gnu/usr.bin/perl/win32/win32.c | 20 +- gnu/usr.bin/perl/win32/win32.h | 29 +- gnu/usr.bin/perl/win32/win32ceio.c | 379 - gnu/usr.bin/perl/win32/win32io.c | 2 +- gnu/usr.bin/perl/win32/win32iop-o.h | 327 - gnu/usr.bin/perl/win32/win32iop.h | 155 +- gnu/usr.bin/perl/win32/win32sck.c | 1 + gnu/usr.bin/perl/win32/wince.c | 2877 -- gnu/usr.bin/perl/win32/wince.h | 146 - gnu/usr.bin/perl/win32/wincesck.c | 495 - gnu/usr.bin/perl/write_buildcustomize.pl | 6 +- 981 files changed, 87739 insertions(+), 75180 deletions(-) delete mode 100644 gnu/usr.bin/perl/README.ce delete mode 100644 gnu/usr.bin/perl/cpan/Encode/t/whatwg-aliases.json delete mode 100644 gnu/usr.bin/perl/cpan/Encode/t/whatwg-aliases.t delete mode 100644 gnu/usr.bin/perl/cpan/Pod-Parser/lib/Pod/Find.pm delete mode 100644 gnu/usr.bin/perl/cpan/Pod-Parser/lib/Pod/InputObjects.pm delete mode 100644 gnu/usr.bin/perl/cpan/Pod-Parser/lib/Pod/ParseUtils.pm delete mode 100644 gnu/usr.bin/perl/cpan/Pod-Parser/lib/Pod/Parser.pm delete mode 100644 gnu/usr.bin/perl/cpan/Pod-Parser/lib/Pod/PlainText.pm delete mode 100644 gnu/usr.bin/perl/cpan/Pod-Parser/lib/Pod/Select.pm delete mode 100644 gnu/usr.bin/perl/cpan/Pod-Parser/scripts/podselect.PL delete mode 100644 gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/contains_bad_pod.xr delete mode 100755 gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/contains_pod.t delete mode 100644 gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/contains_pod.xr delete mode 100644 gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/empty.xr delete mode 100755 gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/emptycmd.t delete mode 100644 gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/emptycmd.xr delete mode 100755 gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/find.t delete mode 100755 gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/for.t delete mode 100644 gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/for.xr delete mode 100755 gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/headings.t delete mode 100644 gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/headings.xr delete mode 100755 gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/include.t delete mode 100644 gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/include.xr delete mode 100755 gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/included.t delete mode 100644 gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/included.xr delete mode 100755 gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/lref.t delete mode 100644 gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/lref.xr delete mode 100755 gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/multiline_items.t delete mode 100644 gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/multiline_items.xr delete mode 100755 gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/nested_items.t delete mode 100644 gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/nested_items.xr delete mode 100755 gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/nested_seqs.t delete mode 100644 gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/nested_seqs.xr delete mode 100755 gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/oneline_cmds.t delete mode 100644 gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/oneline_cmds.xr delete mode 100755 gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/podselect.t delete mode 100644 gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/podselect.xr delete mode 100644 gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/selfcheck.t delete mode 100755 gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/special_seqs.t delete mode 100644 gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/special_seqs.xr delete mode 100644 gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/testcmp.pl delete mode 100644 gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/testp2pt.pl delete mode 100644 gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/testpchk.pl delete mode 100644 gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/testpods/lib/Pod/Stuff.pm delete mode 100755 gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/twice.t delete mode 100644 gnu/usr.bin/perl/cpan/Pod-Parser/t/unbalanced.t delete mode 100644 gnu/usr.bin/perl/cpan/Term-ReadKey/META.yml delete mode 100644 gnu/usr.bin/perl/cpan/podlators/t/docs/urls.t delete mode 100644 gnu/usr.bin/perl/cpan/podlators/t/text/basic.t delete mode 100644 gnu/usr.bin/perl/cpan/podlators/t/text/empty.t delete mode 100644 gnu/usr.bin/perl/cpan/podlators/t/text/encoding.t delete mode 100644 gnu/usr.bin/perl/cpan/podlators/t/text/options.t delete mode 100644 gnu/usr.bin/perl/cpan/podlators/t/text/perlio.t delete mode 100644 gnu/usr.bin/perl/cpan/podlators/t/text/utf8.t delete mode 100644 gnu/usr.bin/perl/dist/Devel-PPPort/PPPort_xs.PL delete mode 100644 gnu/usr.bin/perl/dist/Devel-PPPort/devel/mkapidoc.sh delete mode 100644 gnu/usr.bin/perl/dist/Devel-PPPort/parts/base/5003070 delete mode 100644 gnu/usr.bin/perl/dist/Devel-PPPort/parts/base/5004010 delete mode 100644 gnu/usr.bin/perl/dist/Devel-PPPort/parts/base/5004020 delete mode 100644 gnu/usr.bin/perl/dist/Devel-PPPort/parts/base/5004030 delete mode 100644 gnu/usr.bin/perl/dist/Devel-PPPort/parts/base/5004040 delete mode 100644 gnu/usr.bin/perl/dist/Devel-PPPort/parts/base/5004050 delete mode 100644 gnu/usr.bin/perl/dist/Devel-PPPort/parts/base/5005010 delete mode 100644 gnu/usr.bin/perl/dist/Devel-PPPort/parts/base/5005020 delete mode 100644 gnu/usr.bin/perl/dist/Devel-PPPort/parts/base/5005030 delete mode 100644 gnu/usr.bin/perl/dist/Devel-PPPort/parts/base/5005040 delete mode 100644 gnu/usr.bin/perl/dist/Devel-PPPort/parts/todo/5003070 delete mode 100644 gnu/usr.bin/perl/dist/Devel-PPPort/parts/todo/5004010 delete mode 100644 gnu/usr.bin/perl/dist/Devel-PPPort/parts/todo/5004020 delete mode 100644 gnu/usr.bin/perl/dist/Devel-PPPort/parts/todo/5004030 delete mode 100644 gnu/usr.bin/perl/dist/Devel-PPPort/parts/todo/5004040 delete mode 100644 gnu/usr.bin/perl/dist/Devel-PPPort/parts/todo/5004050 delete mode 100644 gnu/usr.bin/perl/dist/Devel-PPPort/parts/todo/5005010 delete mode 100644 gnu/usr.bin/perl/dist/Devel-PPPort/parts/todo/5005020 delete mode 100644 gnu/usr.bin/perl/dist/Devel-PPPort/parts/todo/5005030 delete mode 100644 gnu/usr.bin/perl/dist/Devel-PPPort/parts/todo/5005040 rename gnu/usr.bin/perl/dist/Storable/{__Storable__.pm => Storable.pm} (99%) delete mode 100644 gnu/usr.bin/perl/dist/Storable/Storable.pm.PL delete mode 100644 gnu/usr.bin/perl/dist/Tie-File/t/00_version.t delete mode 100644 gnu/usr.bin/perl/dquote_inline.h delete mode 100644 gnu/usr.bin/perl/ext/Tie-Hash-NamedCapture/NamedCapture.xs delete mode 100644 gnu/usr.bin/perl/lib/FindBin.pm delete mode 100644 gnu/usr.bin/perl/lib/FindBin.t delete mode 100644 gnu/usr.bin/perl/lib/Pod/t/InputObjects.t delete mode 100644 gnu/usr.bin/perl/lib/Pod/t/Select.t delete mode 100644 gnu/usr.bin/perl/lib/Pod/t/utils.t delete mode 100644 gnu/usr.bin/perl/lib/unicore/EmojiData.txt delete mode 100644 gnu/usr.bin/perl/lib/unicore/Heavy.pl delete mode 100644 gnu/usr.bin/perl/lib/unicore/lib/Lb/EB.pl delete mode 100644 gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlNon.pl delete mode 100644 gnu/usr.bin/perl/lib/unicore/lib/Sc/Armn.pl delete mode 100644 gnu/usr.bin/perl/lib/utf8_heavy.pl delete mode 100755 gnu/usr.bin/perl/t/benchmark/rt26188-speed-up-keys-on-empty-hash.t delete mode 100644 gnu/usr.bin/perl/t/lib/warnings/doop delete mode 100644 gnu/usr.bin/perl/t/uni/cache.t delete mode 100644 gnu/usr.bin/perl/win32/Makefile.ce delete mode 100644 gnu/usr.bin/perl/win32/ce-helpers/cecopy-lib.pl delete mode 100644 gnu/usr.bin/perl/win32/ce-helpers/comp.pl delete mode 100644 gnu/usr.bin/perl/win32/ce-helpers/compile-all.bat delete mode 100644 gnu/usr.bin/perl/win32/ce-helpers/compile.bat delete mode 100644 gnu/usr.bin/perl/win32/ce-helpers/makedist.pl delete mode 100644 gnu/usr.bin/perl/win32/ce-helpers/registry.bat delete mode 100644 gnu/usr.bin/perl/win32/ce-helpers/sdsdkenv.bat delete mode 100644 gnu/usr.bin/perl/win32/config.ce delete mode 100644 gnu/usr.bin/perl/win32/config_H.ce delete mode 100644 gnu/usr.bin/perl/win32/perl.rc delete mode 100644 gnu/usr.bin/perl/win32/perlmaince.c delete mode 100644 gnu/usr.bin/perl/win32/win32ceio.c delete mode 100644 gnu/usr.bin/perl/win32/win32iop-o.h delete mode 100644 gnu/usr.bin/perl/win32/wince.c delete mode 100644 gnu/usr.bin/perl/win32/wince.h delete mode 100644 gnu/usr.bin/perl/win32/wincesck.c diff --git a/gnu/usr.bin/perl/AUTHORS b/gnu/usr.bin/perl/AUTHORS index 3d80ae64135..2136fb21047 100644 --- a/gnu/usr.bin/perl/AUTHORS +++ b/gnu/usr.bin/perl/AUTHORS @@ -15,1303 +15,1326 @@ # This should contain the preferred addresses. Alternate addresses are in # Porting/checkAUTHORS.pl. # -# After editing, please run: make test_porting +# updated_by: ./Porting/checkAUTHORS.pl --update --from=v5.30.0 -- -A. C. Yardley -A. Sinan Unur -Aaron B. Dossett -Aaron Crane -Aaron J. Mackey -Aaron Priven -Aaron Trevena -Abe Timmerman -Abhijit Menon-Sen -Abigail -Abir Viqar -Achim Bohnet -Achim Gratz -Adam Flott -Adam Kennedy -Adam Krolnik -Adam Milner -Adam Russell +A. C. Yardley +A. Sinan Unur +Aaron B. Dossett +Aaron Crane +Aaron J. Mackey +Aaron Priven +Aaron Trevena +Abe Timmerman +Abhijit Menon-Sen +Abigail +Abir Viqar +Achim Bohnet +Achim Gratz +Adam Flott +Adam Hartley @BytesGuy +Adam Kennedy +Adam Krolnik +Adam Milner +Adam Russell Adam Spiers -Adrian M. Enache -Adriano Ferreira -Akim Demaille -Alain Barbet -Alan Burlison -Alan Champion -Alan Ferrency -Alan Grover -Alan Grow -Alan Haggai Alavi -Alan Harder -Alan Hourihane +Adrian M. Enache +Adriano Ferreira +Akim Demaille +Alain Barbet +Alan Burlison +Alan Champion +Alan Ferrency +Alan Grover +Alan Grow +Alan Haggai Alavi +Alan Harder +Alan Hourihane Alan Modra -Alastair Douglas -Albert Chin-A-Young -Albert Dvornik -Alberto Simões -Alessandro Forghieri -Alex Davies -Alex Gough -Alex Solovey -Alex Vandiver -Alex Waugh -Alexander Alekseev -Alexander Bluhm -Alexander D'Archangel -Alexander Gernler -Alexander Gough -Alexander Hartmaier -Alexander Klimov -Alexander Smishlajev -Alexander Voronov -Alexandr Ciornii -Alexandr Savca -Alexandre (Midnite) Jousset -Alexei Alexandrov -Alexey Mahotkin -Alexey Toptygin -Alexey Tourbin -Alexey V. Barantsev -Ali Polatel -Allen Smith +Alastair Douglas +Albert Chin-A-Young +Albert Dvornik +Alberto Simões +Alessandro Forghieri +Alex Davies +Alex Gough +Alex Solovey +Alex Vandiver +Alex Waugh +Alexander Alekseev +Alexander Bluhm +Alexander D'Archangel +Alexander Gernler +Alexander Gough +Alexander Hartmaier +Alexander Klimov +Alexander Smishlajev +Alexander Voronov +Alexandr Ciornii +Alexandr Savca +Alexandre (Midnite) Jousset +Alexei Alexandrov +Alexey Mahotkin +Alexey Toptygin +Alexey Tourbin +Alexey V. Barantsev +Ali Polatel +Allen Smith Ambrose Kofi Laing -Ammon Riley -Ananth Kesari -Anders Johnson -Andreas Guðmundsson -Andreas Karrer -Andreas Klussmann -Andreas König -Andreas Marienborg -Andreas Schwab -Andreas Voegele -Andrei Yelistratov -Andrej Borsenkow -Andrew Bettison -Andrew Burt -Andrew Cohen -andrew deryabin -Andrew Fresh -Andrew Hamm -Andrew M. Langmead -Andrew Pimlott -Andrew Rodland -Andrew Savige -Andrew Tam -Andrew Vignaux -Andrew Wilcox -Andrey Sapozhnikov -Andy Armstrong -Andy Broad -Andy Bussey -Andy Dougherty -Andy Lester -Anno Siegel -Anthony David -Anthony Heading -Anton Berezin -Anton Nikishaev -Anton Tagunov -Archer Sully -Aristotle Pagaltzis -Arjen Laarhoven -Arkturuz -Arne Ahrend -Arnold D. Robbins -Art Green -Art Haas -Arthur Axel 'fREW' Schmidt -Artiom Morozov -Artur Bergman -Arvan -Ash Berlin -Ask Bjørn Hansen -Audrey Tang -Augustina Blair +Ammon Riley +Ananth Kesari +Anders Johnson +Andreas Guðmundsson +Andreas Karrer +Andreas Klussmann +Andreas König +Andreas Marienborg +Andreas Schwab +Andreas Voegele +Andrei Yelistratov +Andrej Borsenkow +Andrew Bettison +Andrew Burt +Andrew Cohen +andrew deryabin +Andrew Fresh +Andrew Hamm +Andrew M. Langmead +Andrew Pimlott +Andrew Rodland +Andrew Savige +Andrew Tam +Andrew Vignaux +Andrew Wilcox +Andrey Sapozhnikov +Andy Armstrong +Andy Broad +Andy Bussey +Andy Dougherty +Andy Lester +Anno Siegel +Anthony David +Anthony Heading +Anton Berezin +Anton Nikishaev +Anton Tagunov +Archer Sully +Aristotle Pagaltzis +Arjen Laarhoven +Arkturuz +Arne Ahrend +Arnold D. Robbins +Art Green +Art Haas +Arthur Axel 'fREW' Schmidt +Artiom Morozov +Artur Bergman +Arvan +Ash Berlin +Ask Bjørn Hansen +Atsushi Sugawara +Audrey Tang +Augustina Blair Axel Boldt -Barrie Slaymaker +Barrie Slaymaker Barry Friedman -Bart Kedryna -Bas van Sisseren +Bart Kedryna +Bas van Sisseren Beau Cox -Ben Carter -Ben Hengst -Ben Morrow -Ben Okopnik -Ben Tilly -Benjamin Goldberg -Benjamin Holzman -Benjamin Low -Benjamin Smith -Benjamin Stuhl -Benjamin Sugars -Bernard Quatermass -Bill Campbell -Bill Glicker -Billy Constantine -Blair Zajac -Bo Borgerson -Bo Johansson -Bo Lindbergh -Bob Dalgleish -Bob Ernst -Bob Wilkinson -Boris Ratner -Boris Zentner -Boyd Gerber -Brad Appleton -Brad Gilbert -Brad Howerter -Brad Hughes -Brad Lanam -Bradley Dean -Bram -Brandon Black -Brendan Byrd -Brendan O'Dea -Breno G. de Oliveira -Brent B. Powers -Brent Dax -Brian Callaghan -Brian Carlson -Brian Childs -Brian Clarke -brian d foy -Brian Fraser -Brian Gottreu -Brian Greenfield +Ben Carter +Ben Hengst +Ben Morrow +Ben Okopnik +Ben Tilly +Benjamin Goldberg +Benjamin Holzman +Benjamin Low +Benjamin Smith +Benjamin Stuhl +Benjamin Sugars +Bernard Quatermass +Bernhard M. Wiedemann +Bill Campbell +Bill Glicker +Billy Constantine +Blair Zajac +Bo Borgerson +Bo Johansson +Bo Lindbergh +Bob Dalgleish +Bob Ernst +Bob Wilkinson +Boris Ratner +Boris Zentner +Boyd Gerber +Brad Appleton +Brad Gilbert +Brad Howerter +Brad Hughes +Brad Lanam +Bradley Dean +Bram +Brandon Black +Brendan Byrd +Brendan O'Dea +Breno G. de Oliveira +Brent B. Powers +Brent Dax +Brian Callaghan +Brian Carlson +Brian Childs +Brian Clarke +brian d foy +Brian Fraser +Brian Gottreu +Brian Greenfield Brian Grossman -Brian Harrison -Brian Jepson +Brian Harrison +Brian Jepson Brian Katzung -Brian McCauley -Brian Phillips -Brian Reichert -Brian S. Cashman -Brian Strand +Brian McCauley +Brian Phillips +Brian Reichert +Brian S. Cashman +Brian Strand Brooks D Boyd -Bruce Barnett -Bruce J. Keeler -Bruce P. Schuck -Bud Huff -Byron Brummer -C Aditya -Calle Dybedahl -Campo Weijerman -Carl Eklof -Carl Hayter -Carl M. Fongheiser -Carl Witty -Cary D. Renzema -Casey R. Tweten -Casey West +Bruce Barnett +Bruce J. Keeler +Bruce P. Schuck +Bryan Stenson +Bud Huff +Byron Brummer +C Aditya +Calle Dybedahl +Campo Weijerman +Carl Eklof +Carl Hayter +Carl M. Fongheiser +Carl Witty +Cary D. Renzema +Casey R. Tweten +Casey West Castor Fu -Chad Granum -Chaim Frenkel -Charles Bailey -Charles F. Randall -Charles Lane -Charles Randall -Charles Wilson -Charlie Gonzalez -Chas. Owens -Chase Whitener +Chad Granum +Chaim Frenkel +Charles Bailey +Charles F. Randall +Charles Lane +Charles Randall +Charles Wilson +Charlie Gonzalez +Chas. Owens +Chase Whitener Chaskiel M Grundman -Chia-liang Kao -Chip Salzenberg -Chip Turner -chocolateboy -Chris Ball -Chris 'BinGOs' Williams -Chris Bongaarts -Chris Dolan -Chris Faylor -Chris Heath -Chris Lamb -Chris Lightfoot -Chris Nandor +Chia-liang Kao +Chip Salzenberg +Chip Turner +chocolateboy +Chris 'BinGOs' Williams +Chris Ball +Chris Bongaarts +Chris Dolan +Chris Faylor +Chris Heath +Chris Lamb +Chris Lightfoot +Chris Nandor Chris Pepper -Chris R. Donnelly -Chris Travers -Chris Tubutis -Chris Wick -Chris Williams -Christian Burger -Christian Hansen -Christian Kirsch -Christian Millour -Christian Winter -Christoph Lamprecht -Christophe Grosjean -Christopher Chavez -Christopher Chan-Nui -Christopher Davis -Christopher J. Madsen -chromatic -Chuck Phillips -Chun Bing Ge -Chunhui Teng -Claes Jacobsson -Clark Cooper -Claudio Ramirez -Clinton A. Pierce -Colin Kuskie -Colin McMillen -Colin Meyer -Colin Newell -Colin Watson +Chris R. Donnelly +Chris Travers +Chris Tubutis +Chris Wick +Chris Williams +Christian Burger +Christian Hansen +Christian Kirsch +Christian Millour +Christian Winter +Christoph Lamprecht +Christophe Grosjean +Christopher Chan-Nui +Christopher Chavez +Christopher Davis +Christopher J. Madsen +chromatic +Chuck Phillips +Chun Bing Ge +Chunhui Teng +Claes Jacobsson +Clark Cooper +Claudio Ramirez +Clinton A. Pierce +Colin Kuskie +Colin McMillen +Colin Meyer +Colin Newell +Colin Watson Conrad Augustin -Conrad E. Kimball -Craig A. Berry -Craig DeForest -Craig Milo Rogers -Curtis Jewell -Curtis Poe -Dabrien 'Dabe' Murphy -Dagfinn Ilmari Mannsåker -Dale Amon -Damian Conway -Damon Atkins -Dan Book -Dan Boorstein -Dan Brook -Dan Collins -Dan Dascalescu -Dan Dedrick -Dan Hale -Dan Jacobson -Dan Kogai -Dan Schmidt -Dan Sugalski -Daniel Berger -Daniel Chetlin -Daniel Dragan -Daniel Frederick Crisman -Daniel Grisinger -Daniel Kahn Gillmor -Daniel Lieberman -Daniel Muiño -Daniel P. Berrange -Daniel Perrett -Daniel S. Lewart -Daniel Yacob -Danny R. Faught -Danny Sadinoff -Darin McBride -Darrell Kindred -Darrell Schiebel -Darren/Torin/Who Ever... +Conrad E. Kimball +Craig A. Berry +Craig DeForest +Craig Milo Rogers +Curtis Jewell +Curtis Poe +Dabrien 'Dabe' Murphy +Dagfinn Ilmari Mannsåker +Dale Amon +Damian Conway +Damon Atkins +Dan Book +Dan Boorstein +Dan Brook +Dan Collins +Dan Dascalescu +Dan Dedrick +Dan Hale +Dan Jacobson +Dan Kogai +Dan Schmidt +Dan Sugalski +Daniel Berger +Daniel Chetlin +Daniel Dragan +Daniel Frederick Crisman +Daniel Grisinger +Daniel Kahn Gillmor +Daniel Lieberman +Daniel Muiño +Daniel P. Berrange +Daniel Perrett +Daniel S. Lewart +Daniel Yacob +Danny R. Faught +Danny Sadinoff +Darin McBride +Darrell Kindred +Darrell Schiebel +Darren/Torin/Who Ever... Dave Bianchi -Dave Cross -Dave Hartnoll -Dave Liney -Dave Nelson +Dave Cross +Dave Hartnoll +Dave Liney +Dave Nelson Dave Paris -Dave Rolsky -Dave Schweisguth -Dave Shariff Yadallee -David Billinghurst -David Caldwell +Dave Rolsky +Dave Schweisguth +Dave Shariff Yadallee +David Billinghurst +David Caldwell David Campbell -David Cannings -David Cantrell +David Cannings +David Cantrell David Couture -David D. Kilzer -David Denholm -David Dyck -David F. Haertig -David Favor -David Feldman -David Fifield +David D. Kilzer +David Denholm +David Dyck +David F. Haertig +David Favor +David Feldman +David Fifield David Filo -David Formosa -David Gay -David Glasser -David Golden -David H. Adler -David H. Gutteridge -David Hammen -David J. Fiander -David Kerry -David Landgren -David Leadbeater -David M. Syzdek -David Manura -David McLean -David Mitchell -David Muir Sharnoff -David Nicol -David R. Favor -David Sparks -David Starks-Browning -David Steinbrunner -David Sundstrom -David Wheeler -Davin Milun -Dean Roehrich -Dee Newcum -deekoo -Dennis Kaarsemaker -Dennis Marsa -Devin Heitmueller -DH -Diab Jerius -dLux -Dmitri Tikhonov -Dmitry Karasik -Dmitry Ulanov -Dominic Dunlop -Dominic Hargreaves -Dominique Dumont +David Formosa +David Gay +David Glasser +David Golden +David H. Adler +David H. Gutteridge +David Hammen +David J. Fiander +David Kerry +David Landgren +David Leadbeater +David M. Syzdek +David Manura +David McLean +David Mitchell +David Muir Sharnoff +David Nicol +David R. Favor +David Sparks +David Starks-Browning +David Steinbrunner +David Sundstrom +David Wheeler +Davin Milun +Dean Roehrich +Dee Newcum +deekoo +Dennis Kaarsemaker +Dennis Marsa +Devin Heitmueller +DH +Diab Jerius +dLux +Dmitri Tikhonov +Dmitry Karasik +Dmitry Ulanov +Dominic Dunlop +Dominic Hargreaves +Dominique Dumont Dominique Quatravaux -Doug Bell -Doug Campbell -Doug MacEachern -Douglas Christopher Wilson -Douglas E. Wegscheid -Douglas Lankshear -Douglas Wilson -Dov Grobgeld -Dr.Ruud -Drago Goricanec -Drew Stephens -Duke Leto -Duncan Findlay -E. Choroba -Ed Avis -Ed J -Ed Mooring -Ed Santiago -Eddy Tan -Edgar Bering +Doug Bell +Doug Campbell +Doug MacEachern +Douglas Christopher Wilson +Douglas E. Wegscheid +Douglas Lankshear +Douglas Wilson +Dov Grobgeld +Dr.Ruud +Drago Goricanec +Drew Stephens +Duke Leto +Duncan Findlay +E. Choroba +Ed Avis +Ed J +Ed Mooring +Ed Santiago +Eddy Tan +Edgar Bering Edmund Bacon -Edward Avis -Edward Moy -Edward Peschko -Elaine -HFB- Ashton -Elizabeth Mattijsen -Enrico Sorcinelli +Edward Avis +Edward Moy +Edward Peschko +Elaine -HFB- Ashton +Elizabeth Mattijsen +Enrico Sorcinelli Eric Amick -Eric Arnold -Eric Bartley -Eric Brine -Eric E. Coe -Eric Fifer -Eric Herman +Eric Arnold +Eric Bartley +Eric Brine +Eric E. Coe +Eric Fifer +Eric Herman Eric Melville -Eric Promislow +Eric Promislow Erich Rickheit -Eryq -Etienne Grossman -Eugen Konkov -Eugene Alterman -Evan Miller -Evan Zacks -Fabien Tassin -Father Chrysostomos -Felipe Gasper -Felix Gallo -Fergal Daly -Fingle Nark +Eryq +Etienne Grossman +Eugen Konkov +Eugene Alterman +Evan Miller +Evan Zacks +Fabien Tassin +Father Chrysostomos +Felipe Gasper +Felix Gallo +Fergal Daly +Fingle Nark Florent Guillaume -Florian Ragwitz -François Désarménien -François Perrad +Florian Ragwitz +Florian Weimer Frank Crawford -Frank Ridderbusch -Frank Tobin -Frank Wiegand -Franklin Chen -Franz Fasching -Frederic Briere -Fréderic Chauveau -Fyodor Krasnov -G. Del Merritt +Frank Ridderbusch +Frank Tobin +Frank Wiegand +Franklin Chen +Franz Fasching +François Désarménien +François Perrad +Frederic Briere +Fréderic Chauveau +Fyodor Krasnov +G. Del Merritt Gabe Schaffer -Gabor Szabo -Garry T. Williams -Gary Clark +Gabor Szabo +Garry T. Williams +Gary Clark Gary L. Armstrong -Gary Ng <71564.1743@compuserve.com> -Gavin Shelley -Gene Sullivan -Geoffrey F. Green -Geoffrey T. Dairiki -Georg Schwarz -George Greer -George Hartzell -George Necula -Geraint A Edwards -Gerard Goossen -Gerben Wierda -Gerd Knops -Gerrit P. Haase -Gideon Israel Dsouza -Giles Lean -Gisle Aas -Glenn D. Golden -Glenn Linderman -Gordon J. Miller -Gordon Lack -Goro Fuji -Grace Lee -Graham Barr -Graham Knop -Graham TerMarsch -Grant McLean -Greg Bacon -Greg Chapman +Gary Ng <71564.1743@compuserve.com> +Gavin Shelley +Gene Sullivan +Geoffrey F. Green +Geoffrey T. Dairiki +Georg Schwarz +George Greer +George Hartzell +George Necula +Geraint A Edwards +Gerard Goossen +Gerben Wierda +Gerd Knops +Gerrit P. Haase +Gideon Israel Dsouza +Giles Lean +Gisle Aas +Glenn D. Golden +Glenn Linderman +Gordon J. Miller +Gordon Lack +Goro Fuji +Grace Lee +Graham Barr +Graham Knop +Graham Ollis +Graham TerMarsch +Grant McLean +Greg Bacon +Greg Chapman Greg Earle Greg Kuperberg -Greg Matheson -Greg Seibert -Greg Ward -Gregor Chrupala -gregor herrmann -Gregory Martin Pfeil -Guenter Schmidt -Guido Flohr -Guruprasad S -Gurusamy Sarathy +Greg Matheson +Greg Seibert +Greg Ward +Gregor Chrupala +gregor herrmann +Gregory Martin Pfeil +Guenter Schmidt +Guido Flohr +Guruprasad S +Gurusamy Sarathy Gustaf Neumann -Guy Decoux -Gwyn Judd -H.J. Lu -H.Merijn Brand -Hal Morris -Hal Pomeranz -Hallvard B Furuseth -Hannu Napari -Hans de Graaff -Hans Dieter Pearcey -Hans Ginzel -Hans Mulder -Hans Ranke -Harald Jörg -Harmen -Harmon S. Nine -Harri Pasanen -Harry Edmon -Hauke D -Heiko Eissfeldt -Helmut Jarausch -Henrik Tougaard -Herbert Breunung -Hernan Perez Masci -Hershel Walters -Hio -Hiroo Hayashi -Hojung Youn +Guy Decoux +Gwyn Judd +H.J. Lu +H.Merijn Brand +Hal Morris +Hal Pomeranz +Hallvard B Furuseth +Hannu Napari +Hans de Graaff +Hans Dieter Pearcey +Hans Ginzel +Hans Mulder +Hans Ranke +Harald Jörg +Harmen +Harmon S. Nine +Harri Pasanen +Harry Edmon +Hauke D +Heiko Eissfeldt +Helmut Jarausch +Henrik Tougaard +Herbert Breunung +Hernan Perez Masci +Hershel Walters +Hiroo Hayashi +Hojung Youn Holger Bechtold -Hongwen Qiu -Horst von Brand +Hongwen Qiu +Horst von Brand Hrunting Jonhson -Hubert Feyrer -Hugo van der Sanden -Hunter Kelly -Huw Rogers +Hubert Feyrer +Hugo van der Sanden +Hunter Kelly +Huw Rogers +Håkon Hægland Iain Truskett -Ian Goodacre -Ian Maloney -Ian Phillipps -Ignasi Roca Carrió -Igor Sutton -Igor Zaytsev -Ilmari Karonen -Ilya Martynov -Ilya N. Golubev -Ilya Sandler -Ilya Zakharevich -Inaba Hiroto -Indy Singh -Ingo Weinhold -Ingy döt Net -insecure -Irving Reid -Ivan Kurmanov -Ivan Pozdeev -Ivan Tubert-Brohman -J. David Blackstone -J. Nick Koston -J. van Krieken -Jacinta Richardson -Jack Shirazi -Jacques Germishuys -Jacqui Caren -Jake Hamby -Jakub Wilk -James -James A. Duncan -James Clarke -James E Keenan -James FitzGibbon -James Jurach -James Mastros -James McCoy -James Raspass +Ian Goodacre +Ian Maloney +Ian Phillipps +Ichinose Shogo +Ignasi Roca Carrió +Igor Sutton +Igor Zaytsev +Ilmari Karonen +Ilya Martynov +Ilya N. Golubev +Ilya Sandler +Ilya Zakharevich +Inaba Hiroto +Indy Singh +Ingo Weinhold +Ingy döt Net +insecure +Irving Reid +Ivan Kurmanov +Ivan Pozdeev +Ivan Tubert-Brohman +J. David Blackstone +J. Nick Koston +J. van Krieken +Jacinta Richardson +Jack Shirazi +Jacques Germishuys +Jacqui Caren +Jake Hamby +Jakub Wilk +James +James A. Duncan +James Clarke +James E Keenan +James FitzGibbon +James Jurach +James Mastros +James McCoy +James Raspass Jamshid Afshar -Jan D. -Jan Dubois -Jan Pazdziora -Jan Starzynski -Jan-Erik Karlsson -Jan-Pieter Cornet -Jared Rhine -Jari Aalto -Jarkko Hietaniemi -Jasmine Ahuja -Jasmine Ngan -Jason A. Smith -Jason E. Stewart +Jan D. +Jan Dubois +Jan Pazdziora +Jan Starzynski +Jan-Erik Karlsson +Jan-Pieter Cornet +Jared Rhine +Jari Aalto +Jarkko Hietaniemi +Jasmine Ahuja +Jasmine Ngan +Jason A. Smith +Jason E. Stewart +Jason McIntosh Jason Shirk -Jason Stewart -Jason Varsoke -Jay Hannah -Jay Rogers -JD Laub +Jason Stewart +Jason Varsoke +Jay Hannah +Jay Rogers +JD Laub Jeff Bouis -Jeff McDougal -Jeff Okamoto -Jeff Pinyan -Jeff Siegal -Jeff Urlwin -Jeffrey Friedl -Jeffrey S. Haemer -Jens Hamisch -Jens Stavnstrup -Jens T. Berger Thielemann -Jens Thomsen -Jens-Uwe Mager -Jeremy D. Zawodny -Jeremy H. Brown -Jeremy Madea -Jerome Abela -Jerrad Pierce -Jerry D. Hedden -Jess Robinson -Jesse Glick -Jesse Luehrs -Jesse Vincent -Jesús Quiroga -Jilles Tjoelker -Jim Anderson -Jim Avera +Jeff McDougal +Jeff Okamoto +Jeff Pinyan +Jeff Siegal +Jeff Urlwin +Jeffrey Friedl +Jeffrey S. Haemer +Jens Hamisch +Jens Stavnstrup +Jens T. Berger Thielemann +Jens Thomsen +Jens-Uwe Mager +Jeremy D. Zawodny +Jeremy H. Brown +Jeremy Madea +Jerome Abela +Jerome Duval +Jerrad Pierce +Jerry D. Hedden +Jess Robinson +Jesse Glick +Jesse Luehrs +Jesse Vincent +Jesús Quiroga +Jilles Tjoelker +Jim Anderson +Jim Avera Jim Balter -Jim Cromie -Jim Meyering -Jim Miner +Jim Cromie +Jim Meyering +Jim Miner Jim Richardson -Jim Schneider -Jirka Hruška +Jim Schneider +Jirka Hruška Joachim Huober -Joaquin Ferrero -Jochen Wiedmann -Jody Belka -Joe Buehler -Joe McMahon -Joe Orton -Joe Schaefer -Joe Smith -Joel Berger -Joel Rosi-Schwartz -Joerg Porath +Joaquin Ferrero +Jochen Wiedmann +Jody Belka +Joe Buehler +Joe McMahon +Joe Orton +Joe Schaefer +Joe Smith +Joel Berger +Joel Rosi-Schwartz +Joerg Porath Joergen Haegg Johan Holtman -Johan Vromans -Johann Klasek -Johann 'Myrkraverk' Oskarsson -Johannes Plunien -John Bley -John Borwick -John Cerney -John D Groenveld -John E. Malmberg -John Gardiner Myers -John Goodyear -John Hasstedt -John Hawkinson -John Heidemann -John Holdsworth -John Hughes -John Kristian -John L. Allen -John Lightsey -John Macdonald -John Malmberg -John Nolan -John P. Linderman -John Peacock -John Pfuntner -John Poltorak -John Q. Linux -John Redford +Johan Vromans +Johann 'Myrkraverk' Oskarsson +Johann Klasek +Johannes Plunien +John Bley +John Borwick +John Cerney +John D Groenveld +John E. Malmberg +John Gardiner Myers +John Goodyear +John Hasstedt +John Hawkinson +John Heidemann +John Holdsworth +John Hughes +John Kristian +John L. Allen +John Lightsey +John Macdonald +John Malmberg +John Nolan +John P. Linderman +John Paul Adrian Glaubitz +John Peacock +John Pfuntner +John Poltorak +John Q. Linux +John Redford John Rowe -John Salinas -John SJ Anderson -John Stoffel -John Stumbles -John Tobey -John Wright -Johnny Lam -Jon Eveland -Jon Gunnip -Jon Orwant -Jonathan Biggar -Jonathan D Johnston -Jonathan Fine -Jonathan Hudson -Jonathan I. Kamens -Jonathan Roy -Jonathan Stowe -Joost van Baal -Jörg Walter -Jos I. Boumans -Jose Auguste-Etienne -José Pedro Oliveira -Joseph N. Hall -Joseph S. Myers -Joshua ben Jore -Joshua Juran -Joshua Pritikin -Joshua Rodd -JT McDuffie -Juan Gallego -Juerd Waalboer <#####@juerd.nl> -Juha Laiho -Julian Yip -juna -Jungshik Shin -Justin Banks -Ka-Ping Yee -kafka -Kang-min Liu -Kaoru Maeda -Karen Etheridge -Karl Glazebrook -Karl Heuer -Karl Simon Berg -Karl Williamson -Karsten Sperling -Karthik Rajagopalan -Kaveh Ghazi -KAWAI Takanori -Kay Röpke -Keedi Kim -Keith Neufeld -Keith Thompson -Ken Brown -Ken Cotterill -Ken Estes -Ken Fox -Ken Hirsch -Ken MacLeod +John Salinas +John SJ Anderson +John Stoffel +John Stumbles +John Tobey +John Wright +Johnny Lam +Jon Eveland +Jon Gunnip +Jon Orwant +Jonathan Biggar +Jonathan D Johnston +Jonathan Fine +Jonathan Hudson +Jonathan I. Kamens +Jonathan Roy +Jonathan Stowe +Joost van Baal +Jos I. Boumans +Jose Auguste-Etienne +Joseph N. Hall +Joseph S. Myers +Joshua ben Jore +Joshua Juran +Joshua Pritikin +Joshua Rodd +José Pedro Oliveira +JT McDuffie +Juan Gallego +Juerd Waalboer <#####@juerd.nl> +Juha Laiho +Julian Yip +juna +Jungshik Shin +Justin Banks +Jörg Walter +Ka-Ping Yee +kafka +Kang-min Liu +Kaoru Maeda +Karen Etheridge +Karl Glazebrook +Karl Heuer +Karl Simon Berg +Karl Williamson +Karsten Sperling +Karthik Rajagopalan +Kaveh Ghazi +KAWAI Takanori +Kay Röpke +Keedi Kim +Keith Neufeld +Keith Thompson +Ken Brown +Ken Cotterill +Ken Estes +Ken Fox +Ken Hirsch +Ken MacLeod Ken Neighbors -Ken Shan -Ken Williams -Kenichi Ishigaki -Kenneth Albanowski -Kenneth Duda -Kent Fredric -Keong Lim -Kevin Brintnall -Kevin Chase -kevin dawson -Kevin Falcone -Kevin J. Woolley -Kevin O'Gorman -Kevin Ruscoe -Kevin Ryde -Kevin White +Ken Shan +Ken Williams +Kenichi Ishigaki +Kenneth Albanowski +Kenneth Duda +Kent Fredric +Keong Lim +Kevin Brintnall +Kevin Chase +kevin dawson +Kevin Falcone +Kevin J. Woolley +Kevin O'Gorman +Kevin Ruscoe +Kevin Ryde +Kevin White Kim Frutiger -Kingpin -Kirrily Robert -Kiyotaka Sakai -kmx -Kragen Sitaker -Krishna Sethuraman -Kriton Kyrimis -Kurt D. Starsinic +Kingpin +Kirrily Robert +Kiyotaka Sakai +kmx +Kragen Sitaker +Krishna Sethuraman +Kriton Kyrimis +Kurt D. Starsinic Kyriakos Georgiou -Lajos Veres -Larry Parmelee +Lajos Veres +Larry Parmelee Larry Schuler -Larry Schwimmer -Larry Shatzer -Larry W. Virden -Larry Wall -Lars Dɪᴇᴄᴋᴏᴡ 迪拉斯 -Lars Hecking -Larwan Berke -Laszlo Molnar -Laurent Dami -Leif Huhn -Len Johnson -Leo Lapworth -Leon Brocard -Leon Timmermans -Les Peters -Lesley Binks -Lincoln D. Stein -Lionel Cons -Louis Strous -Lubomir Rintel -Luc St-Louis +Larry Schwimmer +Larry Shatzer +Larry W. Virden +Larry Wall +Lars Dɪᴇᴄᴋᴏᴡ 迪拉斯 +Lars Hecking +Larwan Berke +Laszlo Molnar +Laurent Dami +Leif Huhn +Len Johnson +Leo Lapworth +Leon Brocard +Leon Timmermans +Les Peters +Lesley Binks +Lincoln D. Stein +Lionel Cons +Louis Strous +Lubomir Rintel +Luc St-Louis Luca Fini -Lucas Holt -Ludovic E. R. Tolhurst-Cleaver -Lukas Mai -Luke Closs -Luke Ross -Lupe Christoph -Luther Huffman -Maik Hentsche -Major Sébastien -Makoto MATSUSHITA -Malcolm Beattie -Manuel Mausz -Manuel Valente -Marc Green -Marc Lehmann -Marc Paquette -Marc Simpson -Marc-Philip Werner -Marcel Grünauer -Marco Fontani -Marco Peereboom -Marcus Holland-Moritz -Marek Rouchal -Mark A Biggar -Mark A. Hershberger -Mark A. Stratman -Mark Aufflick -Mark Bixby -Mark Dickinson -Mark Dootson -Mark Fowler +Lucas Holt +Ludovic E. R. Tolhurst-Cleaver +Lukas Mai +Luke Closs +Luke Ross +Lupe Christoph +Luther Huffman +Maik Hentsche +Major Sébastien +Makoto MATSUSHITA +Malcolm Beattie +Manuel Mausz +Manuel Valente +Marc Green +Marc Lehmann +Marc Paquette +Marc Simpson +Marc-Philip Werner +Marcel Grünauer +Marco Fontani +Marco Peereboom +Marcus Holland-Moritz +Marek Rouchal +Mark A Biggar +Mark A. Hershberger +Mark A. Stratman +Mark Aufflick +Mark Bixby +Mark Dickinson +Mark Dootson +Mark Fowler Mark Hanson -Mark J. Reed -Mark Jason Dominus -Mark K Trettin -Mark Kaehny -Mark Kettenis -Mark Klein -Mark Knutsen -Mark Kvale -Mark Leighton Fisher -Mark Mielke -Mark Murray -Mark Overmeer -Mark P. Lutz -Mark Pease -Mark Pizzolato -Mark R. Levinson -Mark Stosberg -Marko Asplund -Markus Jansen -Marnix van Ammers -Martien Verbruggen -Martijn Koster -Martijn Lievaart -Martin Hasch -Martin Husemann -Martin J. Bligh -Martin Jost -Martin Lichtin -Martin McGrath -Martin Plechsmid -Martin Pool -Martti Rahkila -Marty Lucich -Marty Pauley -Martyn Pearce -Marvin Humphrey -Masahiro KAJIURA -Mashrab Kuvatov -Matthias Bethke -Mathias Koerber -Mathieu Arnold -Mats Peterson -Matsumoto Yasuhiro -Matt Johnson +Mark J. Reed +Mark Jason Dominus +Mark K Trettin +Mark Kaehny +Mark Kettenis +Mark Klein +Mark Knutsen +Mark Kvale +Mark Leighton Fisher +Mark Mielke +Mark Murray +Mark Overmeer +Mark P. Lutz +Mark Pease +Mark Pizzolato +Mark R. Levinson +Mark Stosberg +Marko Asplund +Markus Jansen +Marnix van Ammers +Martien Verbruggen +Martijn Koster +Martijn Lievaart +Martin Hasch +Martin Husemann +Martin J. Bligh +Martin Jost +Martin Lichtin +Martin McGrath +Martin Plechsmid +Martin Pool +Martti Rahkila +Marty Lucich +Marty Pauley +Martyn Pearce +Marvin Humphrey +Masahiro KAJIURA +Mashrab Kuvatov +Mathias Koerber +Mathieu Arnold +Mats Peterson +Matsumoto Yasuhiro +Matt Johnson Matt Kimball -Matt Kraai -Matt S Trout -Matt Sergeant -Matt Taggart -Matthew Black -Matthew Green -Matthew Horsfall -Matthew Sachs -Matthew T Harden -Matthias Ulrich Neeracher -Matthias Urlichs -Matthijs van Duin -Mattia Barbon -Maurizio Loreti -Max Baker -Max Maischein -Maxwell Carey -Merijn Broeren -Michael A Chase -Michael Breen -Michael Bunk -Michael Carman -Michael Cook -Michael Cummings -Michael De La Rue -Michael Engel -Michael Fig -Michael G Schwern -Michael H. Moran -Michael King -Michael Lemke -Michael Mahan -Michael Parker -Michael Schroeder -Michael Somos -Michael Stevens -Michael van Elst -Michael Witten +Matt Kraai +Matt S Trout +Matt Sergeant +Matt Taggart +Matt Turner +Matthew Black +Matthew Green +Matthew Horsfall +Matthew Sachs +Matthew T Harden +Matthias Bethke +Matthias Ulrich Neeracher +Matthias Urlichs +Matthijs van Duin +Mattia Barbon +Maurizio Loreti +Max Baker +Max Maischein +Maxwell Carey +Merijn Broeren +Michael A Chase +Michael Breen +Michael Bunk +Michael Carman +Michael Cook +Michael Cummings +Michael De La Rue +Michael Engel +Michael Fig +Michael G Schwern +Michael H. Moran +Michael Haardt +Michael King +Michael Lemke +Michael Mahan +Michael Parker +Michael Schroeder +Michael Somos +Michael Stevens +Michael van Elst +Michael Witten Michele Sardo -Mik Firestone -Mike Doherty -Mike Fletcher -Mike Giroux -Mike Guy -Mike Heins -Mike Hopkirk -Mike Kelly -Mike Mestnik -Mike Pomraning +Mik Firestone +Mike Doherty +Mike Fletcher +Mike Giroux +Mike Guy +Mike Heins +Mike Hopkirk +Mike Kelly +Mike Mestnik +Mike Pomraning Mike Rogers -Mike Schilli -Mike Sheldrake -Mike Stok -Mike W Ellwood -Mikhail Zabaluev -Milosz Tanski -Milton L. Hankins -Misty De Meo -Mohammed El-Afifi -Moritz Lenz -Moshe Kaminsky -Mottaqui Karim -Mr. Nobody -Murray Nesbitt -Nathan Glenn -Nathan Kurz -Nathan Torkington -Nathan Trapuzzano -Neale Ferguson -Neil Bowers -Neil Watkiss -Neil Williams -Nicholas Clark +Mike Schilli +Mike Sheldrake +Mike Stok +Mike W Ellwood +Mikhail Zabaluev +Milosz Tanski +Milton L. Hankins +Misty De Meo +Mohammed El-Afifi +Moritz Lenz +Moshe Kaminsky +Mottaqui Karim +Mr. Nobody +Murray Nesbitt +Nathan Glenn +Nathan Kurz +Nathan Torkington +Nathan Trapuzzano +Neale Ferguson +Neil Bowers +Neil Watkiss +Neil Williams +Nicholas Clark Nicholas Oxhøj -Nicholas Perez -Nick Cleaton +Nicholas Perez +Nick Cleaton Nick Duffek Nick Gianniotis Nick Ing-Simmons -Nick Johnston -Nick Logan -Nick Williams -Nicolas Kaiser -Nicolas R. -Niels Thykier -Nigel Sandever -Niko Tyni -Nikola Knezevic +Nick Johnston +Nick Logan +Nick Williams +Nicolas Kaiser +Nicolas R. @atoomic +Niels Thykier +Nigel Sandever +Niko Tyni +Nikola Knezevic Nikola Milutinovic -Nikolai Eipel -Noah +Nikolai Eipel +Noah Nobuhiro Iwamatsu -Noirin Shirley -Norbert Pueschel -Norio Suzuki -Norman Koch -Norton T. Allen -Nuno Carvalho -Offer Kaye -Olaf Flebbe -Olaf Titz -Oleg Nesterov -Olivier Blin -Olivier Mengué -Olivier Thauvin +Noirin Shirley +Norbert Pueschel +Norio Suzuki +Norman Koch +Norton T. Allen +Nuno Carvalho +Offer Kaye +Olaf Flebbe +Olaf Titz +Oleg Nesterov +Olivier Blin +Olivier Mengué +Olivier Thauvin Olli Savia -Ollivier Robert -Osvaldo Villalon -Owain G. Ainsworth -Owen Taylor -Pali -Papp Zoltan -parv -Pascal Rigaux -Patrick Donelan -Patrick Dugnolle -Patrick Hayes -Patrick O'Brien -Patrik Hägglund -Pau Amma -Paul A Sand -Paul Boven -Paul David Fardy -Paul Eggert -Paul Evans -Paul Fenwick -Paul Gaborit -Paul Green -Paul Hoffman -Paul Holser -Paul Johnson -Paul Lindner -Paul Marquess -Paul Moore -Paul Rogers -Paul Saab -Paul Schinder -Paul Szabo -Pavel Kaňkovský -Pavel Zakouril -Pedro Felipe Horrillo Guerra -Per Einar Ellefsen -Perlover -Pete Peterson -Peter Avalos +Ollivier Robert +Osvaldo Villalon +Owain G. Ainsworth +Owen Taylor +Pali +Papp Zoltan +parv +Pascal Rigaux +Patrick Donelan +Patrick Dugnolle +Patrick Hayes +Patrick O'Brien +Patrik Hägglund +Pau Amma +Paul A Sand +Paul Boven +Paul David Fardy +Paul Eggert +Paul Evans +Paul Fenwick +Paul Gaborit +Paul Green +Paul Hoffman +Paul Holser +Paul Johnson +Paul Lindner +Paul Marquess +Paul Moore +Paul Rogers +Paul Saab +Paul Schinder +Paul Szabo +Pavel Kaňkovský +Pavel Zakouril +Pedro Felipe Horrillo Guerra +Per Einar Ellefsen +Perlover +Pete Peterson +Peter Avalos Peter BARABAS -Peter Chines -Peter Dintelmann -Peter E. Yee -Peter Gessner -Peter Gordon -Peter Haworth -Peter J. Farley III -Peter J. Holzer +Peter Chines +Peter Dintelmann +Peter E. Yee +Peter Eisentraut +Peter Gessner +Peter Gordon +Peter Haworth +Peter J. Farley III +Peter J. Holzer Peter Jaspers-Fayer -Peter John Acklam -Peter Martini -Peter O'Gorman -Peter Prymmer -Peter Rabbitson -Peter Scott -Peter Valdemar Mørch -Peter van Heusden -Peter Wolfe -Petr Písař -Petter Reinholdtsen -Phil Lobbes -Phil Monsen -Phil Pearl (Lobbes) -Philip Boulain -Philip Guenther -Philip Hazel -Philip M. Gollucci -Philip Newton -Philippe Bruhat (BooK) -Philippe M. Chiasson -Pierre Bogossian -Piers Cawley -Pino Toscano -Piotr Fusik -Piotr Klaban -Piotr Roszatycki -Pip Cet -Pradeep Hodigere -Prymmer/Kahn -Quentin Fennessy -Radu Greab -Rafael Garcia-Suarez -Rainer Keuchel -Rainer Orth -Rainer Tammer -Rajesh Mandalemula -Rajesh Vaidheeswarran -Ralf S. Engelschall -Randal L. Schwartz -Randall Gellens -Randolf Werner -Randy J. Ray -Randy Stauner +Peter John Acklam +Peter Liscovius +Peter Martini +Peter O'Gorman +Peter Oliver +Peter Prymmer +Peter Rabbitson +Peter Scott +Peter Valdemar Mørch +Peter van Heusden +Peter Wolfe +Petr Písař +Petter Reinholdtsen +Phil Lobbes +Phil Monsen +Phil Pearl (Lobbes) +Philip Boulain +Philip Guenther +Philip Hazel +Philip M. Gollucci +Philip Newton +Philippe Bruhat (BooK) +Philippe M. Chiasson +Pierre Bogossian +Piers Cawley +Pino Toscano +Piotr Fusik +Piotr Klaban +Piotr Roszatycki +Pip Cet +Pradeep Hodigere +Prymmer/Kahn +Quentin Fennessy +Radu Greab +Rafael Garcia-Suarez +Rainer Keuchel +Rainer Orth +Rainer Tammer +Rajesh Mandalemula +Rajesh Vaidheeswarran +Ralf S. Engelschall +Randal L. Schwartz +Randall Gellens +Randolf Werner +Randy J. Ray +Randy Stauner Randy W. Sims -Raphael Manfredi -Raul Dias -Raymund Will -Redvers Davies -Reini Urban -Renee Baecker -Reuben Thomas -Rex Dieter -Rhesa Rozendaal -Ricardo Signes -Rich Morin -Rich Rauenzahn -Rich Salz -Richard A. Wells -Richard Clamp -Richard Foley -Richard Hatch -Richard Hitt -Richard Kandarian -Richard L. England -Richard L. Maus, Jr. -Richard Leach -Richard Levitte -Richard Möhn -Richard Ohnemus -Richard Soderberg -Richard Yeh -Rick Delaney +Raphael Manfredi +Raul Dias +Raymund Will +Redvers Davies +Reini Urban +Renee Baecker +Reuben Thomas +Rex Dieter +Rhesa Rozendaal +Ricardo Signes +Rich Morin +Rich Rauenzahn +Rich Salz +Richard A. Wells +Richard Clamp +Richard Foley +Richard Hatch +Richard Hitt +Richard Kandarian +Richard L. England +Richard L. Maus, Jr. +Richard Leach +Richard Levitte +Richard Möhn +Richard Ohnemus +Richard Soderberg +Richard Yeh +Rick Delaney Rick Pluta -Rick Smith +Rick Smith Rickard Westman -Rob Brown -Rob Henderson -Rob Hoelz -Rob Napier -Robert May -Robert Millan -Robert Partington -Robert Sanders -Robert Sebastian Gerus -Robert Spier -Roberto C. Sanchez -Robin Barker -Robin Houston -Rocco Caputo -Roderick Schertler -Rodger Anderson -Rodolfo Carvalho -Ronald F. Guilmette -Ronald J. Kimball -Ronald Schmidt -Rostislav Skudnov -Ruben Schattevoy -Rudolph Todd Maceyko -Rujith S. de Silva -Ruslan Zakirov -Russ Allbery -Russel O'Connor -Russell Fulton -Russell Mosemann -Ryan Herbert -Ryan Voots -Salvador Fandiño -Salvador Ortiz Garcia -Sam Kimbrel -Sam Tregar -Sam Vilain -Samuel Thibault -Samuli Kärkkäinen -Sawyer X -Schuyler Erle -Scott A Crosby -Scott Bronson -Scott Gifford -Scott Henry -Scott L. Miller -Scott Lanning -Scott Wiersdorf -Sean Boudreau -Sean Dague -Sean Davis -Sean M. Burke -Sean Robinson -Sean Sheedy -Sebastian Schmidt -Sebastian Steinlechner -Sebastian Wittmeier -Sébastien Aperghis-Tramoni -Sebastien Barre -Sergey Alekseev -Sergey Aleynikov -Sérgio Durigan Júnior -Shawn -Shawn M Moore -Sherm Pendley -Shigeya Suzuki -Shimpei Yamashita -Shinya Hayakawa -Shirakata Kentaro -Shishir Gundavaram -Shlomi Fish -Shoichi Kaji -Simon Cozens -Simon Glover +Rob Brown +Rob Henderson +Rob Hoelz +Rob Napier +Robert May +Robert Millan +Robert Partington +Robert Sanders +Robert Sebastian Gerus +Robert Spier +Roberto C. Sanchez +Robin Barker +Robin Houston +Rocco Caputo +Roderick Schertler +Rodger Anderson +Rodolfo Carvalho +Ronald F. Guilmette +Ronald J. Kimball +Ronald Schmidt +Rostislav Skudnov +Ruben Schattevoy +Rudolph Todd Maceyko +Rujith S. de Silva +Ruslan Zakirov +Russ Allbery +Russel O'Connor +Russell Fulton +Russell Mosemann +Ryan Herbert +Ryan Voots +Salvador Fandiño +Salvador Ortiz Garcia +Sam Kimbrel +Sam Tregar +Sam Vilain +Samuel Smith +Samuel Thibault +Samuli Kärkkäinen +Santtu Ojanperä +Sawyer X +Schuyler Erle +Scott A Crosby +Scott Bronson +Scott Gifford +Scott Henry +Scott L. Miller +Scott Lanning +Scott Wiersdorf +Sean Boudreau +Sean Dague +Sean Davis +Sean M. Burke +Sean Robinson +Sean Sheedy +Sebastian Schmidt +Sebastian Steinlechner +Sebastian Wittmeier +Sebastien Barre +Sergey Alekseev +Sergey Aleynikov +Sergiy Borodych +Sevan Janiyan +Shawn +Shawn M Moore +Sherm Pendley +Shigeya Suzuki +Shimpei Yamashita +Shinya Hayakawa +Shirakata Kentaro +Shishir Gundavaram +Shlomi Fish +Shoichi Kaji +Simon Cozens +Simon Glover Simon Leinen -Simon Parsons -Simon Schubert -Sinan Unur -Sisyphus -Slaven Rezic -Smylers -Solar Designer -Spider Boardman -Spiros Denaxas -Sreeji K Das -Stanislaw Pusep -Stas Bekman -Stefan Seifert -Steffen Müller -Steffen Schwigon -Steffen Ullrich -Stepan Kasal -Stéphane Payrard -Stephanie Beals -Stephen Bennett -Stephen Clouse -Stephen McCamant -Stephen O. Lidie -Stephen Oberholtzer -Stephen P. Potter -Stephen Zander -Stevan Little -Steve A Fink -Steve Grazzini -Steve Hay -Steve Kelem -Steve McDougall -Steve Nielsen +Simon Parsons +Simon Schubert +Sinan Unur +Sisyphus +Slaven Rezic +Smylers +Solar Designer +Spider Boardman +Spiros Denaxas +Sreeji K Das +Stanislaw Pusep +Stas Bekman +Stefan Seifert +Steffen Müller +Steffen Schwigon +Steffen Ullrich +Stepan Kasal +Stephanie Beals +Stephen Bennett +Stephen Clouse +Stephen McCamant +Stephen O. Lidie +Stephen Oberholtzer +Stephen P. Potter +Stephen Zander +Stevan Little +Steve A Fink +Steve Grazzini +Steve Hay +Steve Kelem +Steve McDougall +Steve Nielsen Steve Pearlmutter -Steve Peters -Steve Purkis +Steve Peters +Steve Purkis Steve Vinoski -Steven Hirsch -Steven Humphrey -Steven Knight -Steven Morlock -Steven N. Hirsch -Steven Parkes -Steven Schubiger -Stian Seeberg -Sullivan Beck -Sven Strickroth -Sven Verdoolaege -syber -SynaptiCAD, Inc. -Tadeusz Sośnierz -Takis Psarogiannakopoulos +Steven Hirsch +Steven Humphrey +Steven Knight +Steven Morlock +Steven N. Hirsch +Steven Parkes +Steven Schubiger +Stian Seeberg +Stéphane Payrard +Sullivan Beck +Sven Strickroth +Sven Verdoolaege +Svyatoslav +syber +SynaptiCAD, Inc. +Sébastien Aperghis-Tramoni +Sérgio Durigan Júnior +Tadeusz Sośnierz +Takis Psarogiannakopoulos Taro KAWAGISHI -Tassilo von Parseval -Tatsuhiko Miyagawa -Ted Ashton -Ted Law -Tels -Teun Burgers -Thad Floryan -Theo Buehler -Thomas Bowditch -Thomas Conté -Thomas Dorner +Tassilo von Parseval +Tatsuhiko Miyagawa +Ted Ashton +Ted Law +Tels +Teun Burgers +Thad Floryan +Theo Buehler +Thibault Duponchelle +Thomas Bowditch +Thomas Conté +Thomas Dorner Thomas Kofler Thomas König -Thomas Pfau -Thomas Sibley -Thomas Wegner -Thorsten Glaser -Tim Adye -Tim Ayers -Tim Bunce -Tim Conrow -Tim Freeman -Tim Jenness -Tim Mooney -Tim Sweetman -Tim Witham -Timothe Litt -Timur I. Bakeyev -Tina Müller -Tkil -Tobias Leich -Toby Inkster -Todd C. Miller -Todd Rinaldo -Todd T. Fries -Todd Vierling -Tokuhiro Matsuno -Tom Bates -Tom Brown -Tom Christiansen +Thomas Pfau +Thomas Sibley +Thomas Wegner +Thorsten Glaser +Tim Adye +Tim Ayers +Tim Bunce +Tim Conrow +Tim Freeman +Tim Jenness +Tim Mooney +Tim Sweetman +Tim Witham +Timothe Litt +Timur I. Bakeyev +Tina Müller +Tkil +Tobias Leich +Toby Inkster +Todd C. Miller +Todd Rinaldo +Todd T. Fries +Todd Vierling +Tokuhiro Matsuno +Tom Bates +Tom Brown +Tom Christiansen Tom Dinger -Tom Horsley -Tom Hughes -Tom Hukins -Tom Phoenix -Tom Spindler -Tom Wyant -Tomasz Konojacki -Tomoyuki Sadahiro -Ton Hospel -Tony Bowden +Tom Horsley +Tom Hughes +Tom Hukins +Tom Phoenix +Tom Spindler +Tom Wyant +Tomasz Konojacki +Tomoyuki Sadahiro +Ton Hospel +Tony Bowden Tony Camas -Tony Cook -Tony Sanders -Tor Lillqvist -Torsten Foertsch -Torsten Schönfeld -Trevor Blackwell -Tsutomu IKEGAMI -Tuomas J. Lukka -Tye McQueen -Ulrich Habel -Ulrich Kunitz -Ulrich Pfeifer -Unicode Consortium -Vadim Konovalov -Valeriy E. Ushakov -Vernon Lyon -Victor Adam -Victor Efimov -Viktor Turskyi -Ville Skyttä -Vincent Pit -Vishal Bhatia -Vitali Peil -Vlad Harchev -Vladimir Alexiev -Vladimir Marek -Vladimir Timofeev -Volker Schatz -W. Geoffrey Rommel -W. Phillip Moore -Wallace Reis -Walt Mankowski -Walter Briscoe -Warren Hyde -Warren Jones -Wayne Berke -Wayne Scott -Wayne Thompson -Wilfredo Sánchez -William J. Middleton -William Mann -William Middleton -William R Ward -William Setzer -William Williams -William Yardley -Winfried König -Wolfgang Laun -Wolfram Humann -Xavier Noria -YAMASHINA Hio -Yaroslav Kuzmin +Tony Cook +Tony Sanders +Tor Lillqvist +Torsten Foertsch +Torsten Schönfeld +Trevor Blackwell +Tsutomu IKEGAMI +Tuomas J. Lukka +Tye McQueen +Ulrich Habel +Ulrich Kunitz +Ulrich Pfeifer +Unicode Consortium +Vadim Konovalov +Valeriy E. Ushakov +VanL +Vernon Lyon +Vickenty Fesunov +Victor Adam +Victor Efimov +Viktor Turskyi +Ville Skyttä +Vincent Pit +Vishal Bhatia +Vitali Peil +Vlad Harchev +Vladimir Alexiev +Vladimir Marek +Vladimir Timofeev +Volker Schatz +W. Geoffrey Rommel +W. Phillip Moore +Wallace Reis +Walt Mankowski +Walter Briscoe +Warren Hyde +Warren Jones +Wayne Berke +Wayne Scott +Wayne Thompson +Wilfredo Sánchez +William J. Middleton +William Mann +William Middleton +William R Ward +William Setzer +William Williams +William Yardley +Winfried König +Wolfgang Laun +Wolfram Humann +Xavier Noria +YAMASHINA Hio +Yaroslav Kuzmin Yary Hluchan -Yasushi Nakajima -Yitzchak Scott-Thoennes -Yutaka OIWA +Yasushi Nakajima +Yitzchak Scott-Thoennes +Yutaka OIWA Yutaka OKAIE Yutao Feng -Yuval Kogman -Yves Orton -Zachary Miller -Zachary Storer -Zak B. Elep -Zbynek Vyskovsky -Zefram -Zsbán Ambrus -Ævar Arnfjörð Bjarmason +Yuval Kogman +Yves Orton +Zachary Miller +Zachary Storer +Zak B. Elep +Zbynek Vyskovsky +Zefram +Zsbán Ambrus +Ævar Arnfjörð Bjarmason diff --git a/gnu/usr.bin/perl/Configure b/gnu/usr.bin/perl/Configure index 0ea2897d863..fbc225822a4 100644 --- a/gnu/usr.bin/perl/Configure +++ b/gnu/usr.bin/perl/Configure @@ -28,7 +28,7 @@ # Porting/pumpkin.pod. # Generated using [metaconfig 3.5 PL0] -# (with additional metaconfig patches by perlbug@perl.org) +# with additional metaconfig patches from https://github.com/Perl/metaconfig cat >c1$$ <&1 - echo 'int main(void) { return 0; }' > gcctest.c - if $cc -O2 -fno-delete-null-pointer-checks -o gcctest gcctest.c; then - echo "Yes, it does." 2>&1 - case "$ccflags" in - *delete-null-pointer-checks*) - echo "Leaving current flags $ccflags alone." 2>&1 - ;; - *) dflt="$dflt -fno-delete-null-pointer-checks" ;; - esac - else - echo "Nope, it doesn't, but that's ok." 2>&1 - fi - ;; - esac # For gcc, adding -pipe speeds up compilations for some, but apparently # some assemblers can't read from stdin. (It also slows down compilations # in other cases, but those are apparently rarer these days.) AD 5/2004. @@ -7275,7 +7264,7 @@ prefixit='case "$3" in none) eval "tp=\"\$$2\""; case "$tp" in - ""|" ") eval "$1=\"\$$2\"";; + ""|" "|none) eval "$1=\"\$$2\"";; *) eval "$1=";; esac;; esac;; @@ -8129,6 +8118,10 @@ while $test 1 ; do $define|true|[yY]*) dflt='y' ;; + $undef|false|[nN]*) + dflt='n' + dflt_dtrace="" + ;; ?*) dflt='y' dflt_dtrace=$usedtrace @@ -8565,7 +8558,7 @@ EOM if $test "X$sysroot" != X; then case "$gccversion" in '') ;; - *) dflt="$dflt --sysroot $sysroot" ;; + *) dflt="$dflt --sysroot=$sysroot" ;; esac fi @@ -9626,16 +9619,12 @@ prefixvar=sitescript set backtrace d_backtrace eval $inlibc -: add flags if using c backtrace +: Check if C backtrace is actually supported. case "$usecbacktrace" in "") usecbacktrace=$undef ;; [yY]*|true|$define) case "$d_backtrace" in [yY]*|true|$define) - case " $ccflags " in - *" -DUSE_C_BACKTRACE "*) ;; # Already there. - *) ccflags="$ccflags -DUSE_C_BACKTRACE -g" ;; - esac ;; *) echo "This system does not support backtrace" >&4 @@ -10397,15 +10386,15 @@ esac $cat >>try.c < -int checkit(char *expect, char *got) +void checkit(const char *expect, char *got) { if (strcmp(expect, got)) { printf("%s oddity: Expected %s, got %s\n", @@ -10586,6 +10575,7 @@ for xxx_convert in $xxx_list; do fi else echo "$xxx_convert NOT found." >&4 + xxx_convert='' fi done @@ -11263,6 +11253,34 @@ set d_attribute_warn_unused_result eval $setvar $rm -f attrib* +: Look for GCC-style attribute always_inline +case "$d_attribute_always_inline" in +'') +echo " " +echo "Checking whether your compiler can handle __attribute__((always_inline)) ..." >&4 +$cat >attrib.c <<'EOCP' +#include +static __inline__ __attribute__((always_inline)) int I_will_always_be_inlined(void); +EOCP +if $cc $ccflags -c attrib.c >attrib.out 2>&1 ; then + if $contains 'warning' attrib.out >/dev/null 2>&1; then + echo "Your C compiler doesn't support __attribute__((always_inline))." + val="$undef" + else + echo "Your C compiler supports __attribute__((always_inline))." + val="$define" + fi +else + echo "Your C compiler doesn't seem to understand __attribute__ at all." + val="$undef" +fi +;; +*) val="$d_attribute_always_inline" ;; +esac +set d_attribute_always_inline +eval $setvar +$rm -f attrib* + : see if getpgrp exists set getpgrp d_getpgrp eval $inlibc @@ -11272,6 +11290,7 @@ case "$d_getpgrp" in echo " " echo "Checking to see which flavor of getpgrp is in use..." $cat >try.c < #$i_unistd I_UNISTD #include #ifdef I_UNISTD @@ -11338,6 +11357,7 @@ case "$d_setpgrp" in echo " " echo "Checking to see which flavor of setpgrp is in use..." $cat >try.c < #$i_unistd I_UNISTD #include #ifdef I_UNISTD @@ -11920,7 +11940,6 @@ set socketpair d_sockpair eval $inlibc -echo " " echo "Checking the availability sa_len in the sock struct ..." >&4 $cat >try.c < @@ -11937,7 +11956,6 @@ fi set d_sockaddr_sa_len; eval $setvar $rm_try -echo " " echo "Checking the availability struct sockaddr_in6 ..." >&4 $cat >try.c < @@ -11955,7 +11973,23 @@ fi set d_sockaddr_in6; eval $setvar $rm_try -echo " " +echo "Checking the availability struct sockaddr_storage ..." >&4 +$cat >try.c < +#include +#include +int main() { +struct sockaddr_storage sastor; +return (sastor.ss_family); +} +EOF +val="$undef" +set try; if eval $compile; then + val="$define" +fi +set d_sockaddr_storage; eval $setvar +$rm_try + echo "Checking the availability sin6_scope_id in struct sockaddr_in6 ..." >&4 $cat >try.c < @@ -11973,7 +12007,6 @@ fi set d_sin6_scope_id; eval $setvar $rm_try -echo " " echo "Checking the availability struct ip_mreq ..." >&4 $cat >try.c < @@ -11991,7 +12024,6 @@ fi set d_ip_mreq; eval $setvar $rm_try -echo " " echo "Checking the availability struct ip_mreq_source ..." >&4 $cat >try.c < @@ -12009,7 +12041,6 @@ fi set d_ip_mreq_source; eval $setvar $rm_try -echo " " echo "Checking the availability struct ipv6_mreq ..." >&4 $cat >try.c < @@ -12027,7 +12058,6 @@ fi set d_ipv6_mreq; eval $setvar $rm_try -echo " " echo "Checking the availability struct ipv6_mreq_source ..." >&4 $cat >try.c < @@ -12045,7 +12075,6 @@ fi set d_ipv6_mreq_source; eval $setvar $rm_try -echo " " echo "Checking the availability of certain socket constants..." >&4 for ENUM in MSG_CTRUNC MSG_DONTROUTE MSG_OOB MSG_PEEK MSG_PROXY SCM_RIGHTS; do enum=`$echo $ENUM|./tr '[A-Z]' '[a-z]'` @@ -14098,9 +14127,11 @@ echo " " echo "Checking if you have a working futimes()" >&4 $cat >try.c < +#include #include #include #include +#include int main () { @@ -15793,7 +15824,7 @@ eval $inlibc echo "Checking to see if you have isless..." >&4 $cat >try.c < -int main() { return isless(0.0); } +int main() { return isless(2.0, 1.0); } EOCP set try if eval $compile; then @@ -15886,27 +15917,24 @@ esac : see if lchown exists echo " " -$cat > try.c <<'EOCP' -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char lchown(); below. */ -#include -/* Override any gcc2 internal prototype to avoid an error. */ -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char lchown(); -int main() { - /* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_lchown) || defined (__stub___lchown) -choke me -#else -lchown(); +$cat > try.c < +#include +#include +#$i_unistd I_UNISTD +#ifdef I_UNISTD +# include #endif -; return 0; } +int main(int argc, char *argv[]) +{ + if (lchown("./try.c", -1, getgid()) == -1) { + exit(EXIT_FAILURE); + } + exit(EXIT_SUCCESS); +} EOCP set try -if eval $compile; then +if eval $compile && ./try; then $echo "lchown() found." >&4 val="$define" else @@ -15915,6 +15943,7 @@ else fi set d_lchown eval $setvar +$rm_try : See if number of significant digits in a double precision number is known echo " " @@ -16159,6 +16188,10 @@ eval $inlibc set malloc_good_size d_malloc_good_size eval $inlibc +: see if malloc_usable_size exists +set malloc_usable_size d_malloc_usable_size +eval $inlibc + : see if mblen exists set mblen d_mblen eval $inlibc @@ -19085,9 +19118,9 @@ EOM #define strtoll _strtoll #endif #include -extern long long int strtoll(char *s, char **, int); +#include static int bad = 0; -int check(char *s, long long ell, int een) { +void check(const char *s, long long ell, int een) { long long gll; errno = 0; gll = strtoll(s, 0, 10); @@ -19140,11 +19173,11 @@ case "$d_strtoul" in Checking whether your strtoul() works okay... EOM $cat >try.c <<'EOCP' +#include #include #include -extern unsigned long int strtoul(char *s, char **, int); static int bad = 0; -void check(char *s, unsigned long eul, int een) { +void check(const char *s, unsigned long eul, int een) { unsigned long gul; errno = 0; gul = strtoul(s, 0, 10); @@ -19220,14 +19253,14 @@ case "$d_longlong-$d_strtoull" in Checking whether your strtoull() works okay... EOM $cat >try.c <<'EOCP' +#include #include #ifdef __hpux #define strtoull __strtoull #endif #include -extern unsigned long long int strtoull(char *s, char **, int); static int bad = 0; -int check(char *s, long long eull, int een) { +void check(const char *s, long long eull, int een) { long long gull; errno = 0; gull = strtoull(s, 0, 10); @@ -19277,11 +19310,11 @@ case "$d_strtouq" in Checking whether your strtouq() works okay... EOM $cat >try.c <<'EOCP' +#include #include #include -extern unsigned long long int strtouq(char *s, char **, int); static int bad = 0; -void check(char *s, unsigned long long eull, int een) { +void check(const char *s, unsigned long long eull, int een) { unsigned long long gull; errno = 0; gull = strtouq(s, 0, 10); @@ -19902,6 +19935,10 @@ eval $inlibc set waitpid d_waitpid eval $inlibc +: see if wcrtomb exists +set wcrtomb d_wcrtomb +eval $inlibc + : look for wcscmp echo " " $cat >try.c <<'EOCP' @@ -20593,9 +20630,9 @@ case "$ccflags" in ;; esac -randfunc=drand48 -drand01="drand48()" -seedfunc="srand48" +randfunc=Perl_drand48 +drand01="Perl_drand48()" +seedfunc="Perl_drand48_init" randbits=48 randseedtype=U32 @@ -21440,7 +21477,9 @@ int main(int ac, char **av) { signal(SIGSEGV, exit); - signal(SIGBUS, exit); +#ifdef SIGBUS + signal(SIGBUS, exit); +#endif myprintf("%s%cs all right, then\n", "that", '\''); exit(0); @@ -23009,7 +23048,7 @@ M68000 m68k m88100 m88k M88KBCS_TARGET MACH machine MachTen MATH_HAS_NO_SIDE_EFFECTS mc300 mc500 mc68000 mc68010 mc68020 mc68030 mc68040 mc68060 mc68k mc68k32 mc700 mc88000 mc88100 merlin mert MiNT mips MIPSEB MIPSEL MIPS_FPSET MIPS_ISA MIPS_SIM -MIPS_SZINT MIPS_SZLONG MIPS_SZPTR MODERN_C motorola mpeix MSDOS +MIPS_SZINT MIPS_SZLONG MIPS_SZPTR MODERN_C motorola MSDOS MTXINU MULTIMAX MVS mvs M_AMD64 M_ARM M_ARMT M_COFF M_I186 M_I286 M_I386 M_I8086 M_I86 M_I86SM M_IA64 M_IX86 M_PPC M_SYS3 M_SYS5 M_SYSIII M_SYSV M_UNIX M_X86 M_XENIX @@ -23447,7 +23486,6 @@ xs_extensions='' find_extensions=' for xxx in *; do case "$xxx" in - CVS) ;; DynaLoader|dynaload) ;; *) this_ext=`echo "$xxx" | $sed -e s/-/\\\//g`; @@ -23685,8 +23723,6 @@ esac nonxs_ext='' for xxx in $nonxs_extensions ; do case "$xxx" in - CVS|RCS|SCCS|.svn) - ;; VMS*) ;; *) nonxs_ext="$nonxs_ext $xxx" @@ -24056,6 +24092,7 @@ d_asinh='$d_asinh' d_atanh='$d_atanh' d_atolf='$d_atolf' d_atoll='$d_atoll' +d_attribute_always_inline='$d_attribute_always_inline' d_attribute_deprecated='$d_attribute_deprecated' d_attribute_format='$d_attribute_format' d_attribute_malloc='$d_attribute_malloc' @@ -24313,6 +24350,7 @@ d_lstat='$d_lstat' d_madvise='$d_madvise' d_malloc_good_size='$d_malloc_good_size' d_malloc_size='$d_malloc_size' +d_malloc_usable_size='$d_malloc_usable_size' d_mblen='$d_mblen' d_mbrlen='$d_mbrlen' d_mbrtowc='$d_mbrtowc' @@ -24480,6 +24518,7 @@ d_sitearch='$d_sitearch' d_snprintf='$d_snprintf' d_sockaddr_in6='$d_sockaddr_in6' d_sockaddr_sa_len='$d_sockaddr_sa_len' +d_sockaddr_storage='$d_sockaddr_storage' d_sockatmark='$d_sockatmark' d_sockatmarkproto='$d_sockatmarkproto' d_socket='$d_socket' @@ -24572,6 +24611,7 @@ d_voidtty='$d_voidtty' d_vsnprintf='$d_vsnprintf' d_wait4='$d_wait4' d_waitpid='$d_waitpid' +d_wcrtomb='$d_wcrtomb' d_wcscmp='$d_wcscmp' d_wcstombs='$d_wcstombs' d_wcsxfrm='$d_wcsxfrm' diff --git a/gnu/usr.bin/perl/Cross/config.sh-arm-linux b/gnu/usr.bin/perl/Cross/config.sh-arm-linux index a6e585259d4..d97a69809b1 100644 --- a/gnu/usr.bin/perl/Cross/config.sh-arm-linux +++ b/gnu/usr.bin/perl/Cross/config.sh-arm-linux @@ -32,11 +32,11 @@ alignbytes='4' aphostname='/bin/hostname' api_revision='5' api_subversion='0' -api_version='30' -api_versionstring='5.30.0' +api_version='32' +api_versionstring='5.32.0' ar='ar' -archlib='/usr/lib/perl5/5.30.3/armv4l-linux' -archlibexp='/usr/lib/perl5/5.30.3/armv4l-linux' +archlib='/usr/lib/perl5/5.32.1/armv4l-linux' +archlibexp='/usr/lib/perl5/5.32.1/armv4l-linux' archname64='' archname='armv4l-linux' archobjs='' @@ -55,7 +55,7 @@ castflags='0' cat='cat' cc='cc' cccdlflags='-fpic' -ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.30.3/armv4l-linux/CORE' +ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.32.1/armv4l-linux/CORE' ccflags='-fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64' ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64' ccname='arm-linux-gcc' @@ -116,6 +116,7 @@ d_asinh='undef' d_atanh='undef' d_atolf='undef' d_atoll='define' +d_attribute_always_inline='undef' d_attribute_deprecated='undef' d_attribute_format='undef' d_attribute_malloc='undef' @@ -537,6 +538,7 @@ d_sitearch='define' d_snprintf='undef' d_sockaddr_in6='undef' d_sockaddr_sa_len='undef' +d_sockaddr_storage='undef' d_sockatmark='undef' d_sockatmarkproto='undef' d_socket='define' @@ -629,6 +631,7 @@ d_voidtty='' d_vsnprintf='define' d_wait4='define' d_waitpid='define' +d_wcrtomb='undef' d_wcscmp='undef' d_wcstombs='define' d_wcsxfrm='undef' @@ -821,7 +824,7 @@ inc_version_list=' ' inc_version_list_init='0' incpath='' inews='' -installarchlib='./install_me_here/usr/lib/perl5/5.30.3/armv4l-linux' +installarchlib='./install_me_here/usr/lib/perl5/5.32.1/armv4l-linux' installbin='./install_me_here/usr/bin' installhtml1dir='' installhtml3dir='' @@ -829,13 +832,13 @@ installman1dir='./install_me_here/usr/share/man/man1' installman3dir='./install_me_here/usr/share/man/man3' installprefix='./install_me_here/usr' installprefixexp='./install_me_here/usr' -installprivlib='./install_me_here/usr/lib/perl5/5.30.3' +installprivlib='./install_me_here/usr/lib/perl5/5.32.1' installscript='./install_me_here/usr/bin' -installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.30.3/armv4l-linux' +installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.32.1/armv4l-linux' installsitebin='./install_me_here/usr/bin' installsitehtml1dir='' installsitehtml3dir='' -installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.30.3' +installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.32.1' installsiteman1dir='./install_me_here/usr/share/man/man1' installsiteman3dir='./install_me_here/usr/share/man/man3' installsitescript='./install_me_here/usr/bin' @@ -969,8 +972,8 @@ pmake='' pr='' prefix='/usr' prefixexp='/usr' -privlib='/usr/lib/perl5/5.30.3' -privlibexp='/usr/lib/perl5/5.30.3' +privlib='/usr/lib/perl5/5.32.1' +privlibexp='/usr/lib/perl5/5.32.1' procselfexe='"/proc/self/exe"' prototype='define' ptrsize='4' @@ -1035,17 +1038,17 @@ sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 6, 17, 29, 31, 0' sig_size='68' signal_t='void' -sitearch='/usr/lib/perl5/site_perl/5.30.3/armv4l-linux' -sitearchexp='/usr/lib/perl5/site_perl/5.30.3/armv4l-linux' +sitearch='/usr/lib/perl5/site_perl/5.32.1/armv4l-linux' +sitearchexp='/usr/lib/perl5/site_perl/5.32.1/armv4l-linux' sitebin='/usr/bin' sitebinexp='/usr/bin' sitehtml1dir='' sitehtml1direxp='' sitehtml3dir='' sitehtml3direxp='' -sitelib='/usr/lib/perl5/site_perl/5.30.3' +sitelib='/usr/lib/perl5/site_perl/5.32.1' sitelib_stem='/usr/lib/perl5/site_perl' -sitelibexp='/usr/lib/perl5/site_perl/5.30.3' +sitelibexp='/usr/lib/perl5/site_perl/5.32.1' siteman1dir='/usr/share/man/man1' siteman1direxp='/usr/share/man/man1' siteman3dir='/usr/share/man/man3' @@ -1084,7 +1087,7 @@ stdio_stream_array='' strerror_r_proto='0' strings='/usr/include/string.h' submit='' -subversion='3' +subversion='1' sysman='/usr/share/man/man1' tail='' tar='' @@ -1175,8 +1178,8 @@ vendorprefix='' vendorprefixexp='' vendorscript='' vendorscriptexp='' -version='5.30.3' -version_patchlevel_string='version 30 subversion 3' +version='5.32.1' +version_patchlevel_string='version 32 subversion 1' versiononly='undef' vi='' xlibpth='/usr/lib/386 /lib/386' @@ -1189,10 +1192,10 @@ config_arg0='Configure' config_args='' config_argc=0 PERL_REVISION=5 -PERL_VERSION=30 -PERL_SUBVERSION=3 +PERL_VERSION=32 +PERL_SUBVERSION=1 PERL_API_REVISION=5 -PERL_API_VERSION=30 +PERL_API_VERSION=32 PERL_API_SUBVERSION=0 PERL_PATCHLEVEL= PERL_CONFIG_SH=true diff --git a/gnu/usr.bin/perl/Cross/config.sh-arm-linux-n770 b/gnu/usr.bin/perl/Cross/config.sh-arm-linux-n770 index f4d3aa9883c..3ad709f938f 100644 --- a/gnu/usr.bin/perl/Cross/config.sh-arm-linux-n770 +++ b/gnu/usr.bin/perl/Cross/config.sh-arm-linux-n770 @@ -32,11 +32,11 @@ alignbytes='4' aphostname='/bin/hostname' api_revision='5' api_subversion='0' -api_version='30' -api_versionstring='5.30.0' +api_version='32' +api_versionstring='5.32.0' ar='ar' -archlib='/usr/lib/perl5/5.30.3/armv4l-linux' -archlibexp='/usr/lib/perl5/5.30.3/armv4l-linux' +archlib='/usr/lib/perl5/5.32.1/armv4l-linux' +archlibexp='/usr/lib/perl5/5.32.1/armv4l-linux' archname64='' archname='armv4l-linux' archobjs='' @@ -54,7 +54,7 @@ castflags='0' cat='cat' cc='arm-none-linux-gnueabi-gcc' cccdlflags='-fpic' -ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.30.3/armv4l-linux/CORE' +ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.32.1/armv4l-linux/CORE' ccflags='-fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64' ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64' ccname='arm-linux-gcc' @@ -115,6 +115,7 @@ d_asinh='undef' d_atanh='undef' d_atolf='undef' d_atoll='define' +d_attribute_always_inline='undef' d_attribute_deprecated='undef' d_attribute_format='undef' d_attribute_malloc='undef' @@ -536,6 +537,7 @@ d_sitearch='define' d_snprintf='undef' d_sockaddr_in6='undef' d_sockaddr_sa_len='undef' +d_sockaddr_storage='undef' d_sockatmark='undef' d_sockatmarkproto='undef' d_socket='define' @@ -628,6 +630,7 @@ d_voidtty='' d_vsnprintf='define' d_wait4='define' d_waitpid='define' +d_wcrtomb='undef' d_wcscmp='undef' d_wcstombs='define' d_wcsxfrm='undef' @@ -819,7 +822,7 @@ inc_version_list=' ' inc_version_list_init='0' incpath='' inews='' -installarchlib='./install_me_here/usr/lib/perl5/5.30.3/armv4l-linux' +installarchlib='./install_me_here/usr/lib/perl5/5.32.1/armv4l-linux' installbin='./install_me_here/usr/bin' installhtml1dir='' installhtml3dir='' @@ -827,13 +830,13 @@ installman1dir='./install_me_here/usr/share/man/man1' installman3dir='./install_me_here/usr/share/man/man3' installprefix='./install_me_here/usr' installprefixexp='./install_me_here/usr' -installprivlib='./install_me_here/usr/lib/perl5/5.30.3' +installprivlib='./install_me_here/usr/lib/perl5/5.32.1' installscript='./install_me_here/usr/bin' -installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.30.3/armv4l-linux' +installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.32.1/armv4l-linux' installsitebin='./install_me_here/usr/bin' installsitehtml1dir='' installsitehtml3dir='' -installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.30.3' +installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.32.1' installsiteman1dir='./install_me_here/usr/share/man/man1' installsiteman3dir='./install_me_here/usr/share/man/man3' installsitescript='./install_me_here/usr/bin' @@ -967,8 +970,8 @@ pmake='' pr='' prefix='/usr' prefixexp='/usr' -privlib='/usr/lib/perl5/5.30.3' -privlibexp='/usr/lib/perl5/5.30.3' +privlib='/usr/lib/perl5/5.32.1' +privlibexp='/usr/lib/perl5/5.32.1' procselfexe='"/proc/self/exe"' prototype='define' ptrsize='4' @@ -1033,17 +1036,17 @@ sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 6, 17, 29, 31, 0' sig_size='68' signal_t='void' -sitearch='/usr/lib/perl5/site_perl/5.30.3/armv4l-linux' -sitearchexp='/usr/lib/perl5/site_perl/5.30.3/armv4l-linux' +sitearch='/usr/lib/perl5/site_perl/5.32.1/armv4l-linux' +sitearchexp='/usr/lib/perl5/site_perl/5.32.1/armv4l-linux' sitebin='/usr/bin' sitebinexp='/usr/bin' sitehtml1dir='' sitehtml1direxp='' sitehtml3dir='' sitehtml3direxp='' -sitelib='/usr/lib/perl5/site_perl/5.30.3' +sitelib='/usr/lib/perl5/site_perl/5.32.1' sitelib_stem='/usr/lib/perl5/site_perl' -sitelibexp='/usr/lib/perl5/site_perl/5.30.3' +sitelibexp='/usr/lib/perl5/site_perl/5.32.1' siteman1dir='/usr/share/man/man1' siteman1direxp='/usr/share/man/man1' siteman3dir='/usr/share/man/man3' @@ -1082,7 +1085,7 @@ stdio_stream_array='' strerror_r_proto='0' strings='/usr/include/string.h' submit='' -subversion='3' +subversion='1' sysman='/usr/share/man/man1' tail='' tar='' @@ -1173,8 +1176,8 @@ vendorprefix='' vendorprefixexp='' vendorscript='' vendorscriptexp='' -version='5.30.3' -version_patchlevel_string='version 30 subversion 3' +version='5.32.1' +version_patchlevel_string='version 32 subversion 1' versiononly='undef' vi='' xlibpth='/usr/lib/386 /lib/386' @@ -1187,10 +1190,10 @@ config_arg0='Configure' config_args='' config_argc=0 PERL_REVISION=5 -PERL_VERSION=30 -PERL_SUBVERSION=3 +PERL_VERSION=32 +PERL_SUBVERSION=1 PERL_API_REVISION=5 -PERL_API_VERSION=30 +PERL_API_VERSION=32 PERL_API_SUBVERSION=0 PERL_PATCHLEVEL= PERL_CONFIG_SH=true diff --git a/gnu/usr.bin/perl/EXTERN.h b/gnu/usr.bin/perl/EXTERN.h index 558f762a3f1..4406b297521 100644 --- a/gnu/usr.bin/perl/EXTERN.h +++ b/gnu/usr.bin/perl/EXTERN.h @@ -21,7 +21,7 @@ # if (defined(WIN32) || defined(__SYMBIAN32__)) && !defined(PERL_STATIC_SYMS) /* miniperl should not export anything */ -# if defined(PERL_IS_MINIPERL) && !defined(UNDER_CE) +# if defined(PERL_IS_MINIPERL) # define EXT extern # define dEXT # define EXTCONST extern const diff --git a/gnu/usr.bin/perl/INSTALL b/gnu/usr.bin/perl/INSTALL index e3e320ec1d3..76edeec6a21 100644 --- a/gnu/usr.bin/perl/INSTALL +++ b/gnu/usr.bin/perl/INSTALL @@ -1,5 +1,5 @@ If you read this file _as_is_, just ignore the funny characters you see. -It is written in the POD format (see pod/perlpod.pod) which is specially +It is written in the POD format (see F) which is specially designed to be readable as is. =head1 NAME @@ -10,7 +10,7 @@ INSTALL - Build and Installation guide for perl 5. First, make sure you have an up-to-date version of Perl. If you didn't get your Perl source from CPAN, check the latest version at -http://www.cpan.org/src/. Perl uses a version scheme where even-numbered +L. Perl uses a version scheme where even-numbered subreleases (like 5.8.x and 5.10.x) are stable maintenance releases and odd-numbered subreleases (like 5.7.x and 5.9.x) are unstable development releases. Development releases should not be used in @@ -28,11 +28,11 @@ the defaults are to run, from a freshly unpacked source tree: Each of these is explained in further detail below. -The above commands will install Perl to /usr/local (or some other -platform-specific directory -- see the appropriate file in hints/.) +The above commands will install Perl to F (or some other +platform-specific directory -- see the appropriate file in F.) If that's not okay with you, you can run Configure interactively, by just typing "sh Configure" (without the -de args). You can also specify -any prefix location by adding "-Dprefix='/some/dir'" to Configure's args. +any prefix location by adding C<"-Dprefix='/some/dir'"> to Configure's args. To explicitly name the perl binary, use the command "make install PERLNAME=myperl". @@ -44,20 +44,20 @@ rely on anything more than C89. These options, and many more, are explained in further detail below. If you're building perl from a git repository, you should also consult -the documentation in pod/perlgit.pod for information on that special +the documentation in F for information on that special circumstance. If you have problems, corrections, or questions, please see L<"Reporting Problems"> below. For information on what's new in this release, see the -pod/perldelta.pod file. For more information about how to find more +F file. For more information about how to find more specific detail about changes, see the Changes file. =head1 DESCRIPTION This document is written in pod format as an easy way to indicate its -structure. The pod format is described in pod/perlpod.pod, but you can +structure. The pod format is described in F, but you can read it as is with any pager or editor. Headings and items are marked by lines beginning with '='. The other mark-up used is @@ -73,24 +73,24 @@ proceeding. In addition to this file, check if there is a README file specific to your operating system, since it may provide additional or different instructions for building Perl. If there is a hint file for your -system (in the hints/ directory) you might also want to read it +system (in the F directory) you might also want to read it for even more information. For additional information about porting Perl, see the section on -L<"Porting information"> below, and look at the files in the Porting/ +L<"Porting information"> below, and look at the files in the F directory. =head1 PRELIMINARIES =head2 Changes and Incompatibilities -Please see pod/perldelta.pod for a description of the changes and +Please see F for a description of the changes and potential incompatibilities introduced with this release. A few of the most important issues are listed below, but you should refer -to pod/perldelta.pod for more detailed information. +to F for more detailed information. B This version is not binary compatible with versions of Perl -earlier than 5.30.0. If you have built extensions (i.e. modules that +earlier than 5.32.0. If you have built extensions (i.e. modules that include C code) using an earlier version of Perl, you will need to rebuild and reinstall those extensions. @@ -102,7 +102,7 @@ The standard extensions supplied with Perl will be handled automatically. On a related issue, old modules may possibly be affected by the changes in the Perl language in the current release. Please see -pod/perldelta.pod for a description of what's changed. See your +F for a description of what's changed. See your installed copy of the perllocal.pod file for a (possibly incomplete) list of locally installed modules. Also see the L module's C function for one way to make a "bundle" of your currently @@ -132,7 +132,7 @@ Configure supports a number of useful options. Run Configure -h -to get a listing. See the Porting/Glossary file for a complete list of +to get a listing. See the F file for a complete list of Configure variables you can set and their definitions. =over 4 @@ -150,32 +150,32 @@ compiler) so that the hints files can set appropriate defaults. =item Installation prefix By default, for most systems, perl will be installed in -/usr/local/{bin, lib, man}. (See L<"Installation Directories"> +F{F, F, F}. (See L<"Installation Directories"> and L<"Coexistence with earlier versions of perl 5"> below for further details.) You can specify a different 'prefix' for the default installation directory when Configure prompts you, or by using the Configure command -line option -Dprefix='/some/directory', e.g. +line option C<-Dprefix='/some/directory'>, e.g. sh Configure -Dprefix=/opt/perl If your prefix contains the string "perl", then the suggested directory structure is simplified. For example, if you use -prefix=/opt/perl, then Configure will suggest /opt/perl/lib instead of -/opt/perl/lib/perl5/. Again, see L<"Installation Directories"> below -for more details. Do not include a trailing slash, (i.e. /opt/perl/) +C, then Configure will suggest F instead of +F. Again, see L<"Installation Directories"> below +for more details. Do not include a trailing slash, (i.e. F) or you may experience odd test failures. NOTE: You must not specify an installation directory that is the same as or below your perl source directory. If you do, installperl will attempt infinite recursion. -=item /usr/bin/perl +=item F It may seem obvious, but Perl is useful only when users can easily -find it. It's often a good idea to have both /usr/bin/perl and -/usr/local/bin/perl be symlinks to the actual binary. Be especially +find it. It's often a good idea to have both F and +F be symlinks to the actual binary. Be especially careful, however, not to overwrite a version of perl supplied by your vendor unless you are sure you know what you are doing. If you insist on replacing your vendor's perl, useful information on how it was @@ -187,7 +187,7 @@ configured may be found with spaces in arguments to Configure. For that, you have to look carefully at config_arg1, config_arg2, etc.) -By default, Configure will not try to link /usr/bin/perl to the current +By default, Configure will not try to link F to the current version of perl. You can turn on that behavior by running Configure -Dinstallusrbinperl @@ -458,7 +458,7 @@ TCP/IP proxy protocol library. SOCKS is used to give applications access to transport layer network proxies. Perl supports only SOCKS Version 5. The corresponding Configure option is -Dusesocks. You can find more about SOCKS from wikipedia at -L. +L. =head3 Dynamic Loading @@ -584,6 +584,12 @@ variables for C compiler switches etc.">. You can force an embedded perl to use direct manipulation by setting C after the C call. +=head3 External glob + +Before File::Glob entered core in 5.6.0 globbing was implemented by shelling +out. If the environmental variable PERL_EXTERNAL_GLOB is defined and if the +F shell is available, perl will still do this the old way. + =head2 Installation Directories The installation directories can all be changed by answering the @@ -609,7 +615,7 @@ The directories set up by Configure fall into three broad categories. =item Directories for the perl distribution -By default, Configure will use the following directories for 5.30.3. +By default, Configure will use the following directories for 5.32.1. $version is the full perl version number, including subversion, e.g. 5.12.3, and $archname is a string like sun4-sunos, determined by Configure. The full definitions of all Configure @@ -764,7 +770,7 @@ run-time methods: $PERLLIB, $PERL5LIB, -I, use lib, etc. =item default_inc_excludes_dot Since version 5.26.0, default perl builds no longer includes C<'.'> as the -last element of @INC. The old behaviour can restored using +last element of @INC. The old behaviour can restored using sh Configure -Udefault_inc_excludes_dot @@ -1019,7 +1025,7 @@ Removes -g from optimize, and -DDEBUGGING from ccflags. =back If you are using a shared libperl, see the warnings about multiple -versions of perl under L. +versions of perl under L. Note that a perl built with -DDEBUGGING will be much bigger and will run much, much more slowly than a standard perl. @@ -1040,7 +1046,7 @@ simple D script that uses them: =head2 Extensions Perl ships with a number of standard extensions. These are contained -in the ext/ subdirectory. +in the F subdirectory. By default, Configure will offer to build every extension which appears to be supported. For example, Configure will offer to build GDBM_File @@ -1415,7 +1421,7 @@ including a glossary of all those config.sh variables, is in the Porting subdirectory. Porting/Glossary should especially come in handy. Ports for other systems may also be available. You should check out -http://www.cpan.org/ports for current information on ports to +L for current information on ports to various other operating systems. If you plan to port Perl to a new architecture, study carefully the @@ -1659,7 +1665,7 @@ If you still have missing routines or undefined symbols, you probably need to add some library or other, make a symbolic link like described above, or you need to undefine some feature that Configure thought was there but is defective or incomplete. If you used a hint file, see if -it has any relevant advice. You can also look through through config.h +it has any relevant advice. You can also look through config.h for likely suspects. =item toke.c @@ -1806,8 +1812,8 @@ to avoid the BIND. Perl can be cross-compiled. It is just not trivial, cross-compilation rarely is. Perl is routinely cross-compiled for several platforms: as of -January 2014, these include Android, Blackberry 10, PocketPC aka -WinCE, ARM Linux, and Solaris. Previous versions of +June 2019, these include Android, Blackberry 10, +ARM Linux, and Solaris. Previous versions of Perl also provided support for Open Zaurus, Symbian, and the IBM OS/400, but it's unknown if those ports are still functional. These platforms are known as the B platforms, while the systems @@ -1826,10 +1832,6 @@ the particular platforms: =over 4 -=item WinCE/PocketPC - -L - =item Android L<"Cross-compilation" in README.android or @@ -1854,11 +1856,11 @@ Packaging and transferring either the core Perl modules or CPAN modules to the target platform is also left up to the each cross-compilation environment. Often the cross-compilation target platforms are somewhat limited in diskspace: see the section -L to learn more of the minimal set +L to learn more of the minimal set of files required for a functional Perl installation. For some cross-compilation environments the Configure option -C<-Dinstallprefix=...> might be handy, see L might be handy, see L. About the cross-compilation support of Configure: There's two forms. @@ -1866,7 +1868,7 @@ The more common one requires some way of transferring and running executables in the target system, such as an ssh connection; this is the C<./Configure -Dusecrosscompile -Dtargethost=...> route. The second method doesn't need access to the target system, but requires you to -provide a config.sh, and and a canned Makefile; the rest of this section +provide a config.sh, and a canned Makefile; the rest of this section describes the former. This cross-compilation setup of Configure has successfully been used in @@ -2431,16 +2433,16 @@ for details of how to report the issue. If you are unsure what makes a good bug report please read "How to report Bugs Effectively" by Simon Tatham: -http://www.chiark.greenend.org.uk/~sgtatham/bugs.html +L =head1 Coexistence with earlier versions of perl 5 -Perl 5.30.3 is not binary compatible with versions of Perl earlier than -5.30.0. +Perl 5.32.1 is not binary compatible with versions of Perl earlier than +5.32.0. In other words, you will have to recompile your XS modules. -In general, you can usually safely upgrade from one version of Perl -(e.g. 5.X.Y) to another similar minor version (e.g. 5.X.(Y+1))) without +In general, you can usually safely upgrade from one stable version of Perl +(e.g. 5.30.0) to another similar minor version (e.g. 5.30.1) without re-compiling all of your extensions. You can also safely leave the old version around in case the new version causes you problems for some reason. @@ -2511,9 +2513,9 @@ won't interfere with another version. (The defaults guarantee this for libraries after 5.6.0, but not for executables. TODO?) One convenient way to do this is by using a separate prefix for each version, such as - sh Configure -Dprefix=/opt/perl5.30.3 + sh Configure -Dprefix=/opt/perl5.32.1 -and adding /opt/perl5.30.3/bin to the shell PATH variable. Such users +and adding /opt/perl5.32.1/bin to the shell PATH variable. Such users may also wish to add a symbolic link /usr/local/bin/perl so that scripts can still start with #!/usr/local/bin/perl. @@ -2526,13 +2528,13 @@ seriously consider using a separate directory, since development subversions may not have all the compatibility wrinkles ironed out yet. -=head2 Upgrading from 5.29.10 or earlier +=head2 Upgrading from 5.31.11 or earlier -B Perl modules having binary parts (meaning that a C compiler is used) will have to be recompiled to be -used with 5.30.3. If you find you do need to rebuild an extension with -5.30.3, you may safely do so without disturbing the older +used with 5.32.1. If you find you do need to rebuild an extension with +5.32.1, you may safely do so without disturbing the older installations. (See L<"Coexistence with earlier versions of perl 5"> above.) @@ -2565,15 +2567,15 @@ Firstly, the bare minimum to run this script print("$f\n"); } -in Linux with perl-5.30.3 is as follows (under $Config{prefix}): +in Linux with perl-5.32.1 is as follows (under $Config{prefix}): ./bin/perl - ./lib/perl5/5.30.3/strict.pm - ./lib/perl5/5.30.3/warnings.pm - ./lib/perl5/5.30.3/i686-linux/File/Glob.pm - ./lib/perl5/5.30.3/feature.pm - ./lib/perl5/5.30.3/XSLoader.pm - ./lib/perl5/5.30.3/i686-linux/auto/File/Glob/Glob.so + ./lib/perl5/5.32.1/strict.pm + ./lib/perl5/5.32.1/warnings.pm + ./lib/perl5/5.32.1/i686-linux/File/Glob.pm + ./lib/perl5/5.32.1/feature.pm + ./lib/perl5/5.32.1/XSLoader.pm + ./lib/perl5/5.32.1/i686-linux/auto/File/Glob/Glob.so Secondly, for perl-5.10.1, the Debian perl-base package contains 591 files, (of which 510 are for lib/unicore) totaling about 3.5MB in its @@ -2694,7 +2696,7 @@ perl will ignore the C environment variable. =head1 DOCUMENTATION Read the manual entries before running perl. The main documentation -is in the pod/ subdirectory and should have been installed during the +is in the F subdirectory and should have been installed during the build process. Type B to get started. Alternatively, you can type B to use the supplied perldoc script. This is sometimes useful for finding things in the library modules. diff --git a/gnu/usr.bin/perl/MANIFEST b/gnu/usr.bin/perl/MANIFEST index f513112a7aa..6fac691f4de 100644 --- a/gnu/usr.bin/perl/MANIFEST +++ b/gnu/usr.bin/perl/MANIFEST @@ -17,7 +17,6 @@ caretx.c C file to create $^X cflags.SH A script that emits C compilation flags per file Changes Describe how to peruse changes between releases charclass_invlists.h Compiled-in inversion lists -config.over Site-specific overrides for Configure defaults config_h.SH Produces config.h configpm Produces lib/Config.pm Configure Portability tool @@ -117,6 +116,7 @@ cpan/autodie/t/lib/pujHa/ghach.pm autodie - Like a Klingon cpan/autodie/t/lib/pujHa/ghach/Dotlh.pm autodie - With Klingon honour cpan/autodie/t/lib/Some/Module.pm autodie - blog_hints.t helper cpan/autodie/t/mkdir.t autodie - filesystem tests +cpan/autodie/t/no-default.t cpan/autodie/t/no_carp.t cpan/autodie/t/open.t autodie - Testing open cpan/autodie/t/read.t @@ -633,8 +633,6 @@ cpan/Encode/t/use-Encode-Alias.t cpan/Encode/t/utf8ref.t test script cpan/Encode/t/utf8strict.t test script cpan/Encode/t/utf8warnings.t -cpan/Encode/t/whatwg-aliases.json -cpan/Encode/t/whatwg-aliases.t cpan/Encode/t/xml.t cpan/Encode/TW/Makefile.PL Encode extension cpan/Encode/TW/TW.pm Encode extension @@ -869,6 +867,7 @@ cpan/ExtUtils-MakeMaker/t/test_boilerplate.t MakeMaker test cpan/ExtUtils-MakeMaker/t/testdata/reallylongdirectoryname/arch1/Config.pm test data for MakeMaker cpan/ExtUtils-MakeMaker/t/testdata/reallylongdirectoryname/arch2/Config.pm test data for MakeMaker cpan/ExtUtils-MakeMaker/t/testlib.t See if ExtUtils::testlib works +cpan/ExtUtils-MakeMaker/t/testrules.yml cpan/ExtUtils-MakeMaker/t/unicode.t cpan/ExtUtils-MakeMaker/t/VERSION_FROM.t See if MakeMaker's VERSION_FROM works cpan/ExtUtils-MakeMaker/t/vstrings.t @@ -1008,6 +1007,7 @@ cpan/HTTP-Tiny/t/170_keepalive.t cpan/HTTP-Tiny/t/BrokenCookieJar.pm cpan/HTTP-Tiny/t/SimpleCookieJar.pm cpan/HTTP-Tiny/t/Util.pm +cpan/IO-Compress/bin/streamzip cpan/IO-Compress/bin/zipdetails IO::Compress cpan/IO-Compress/lib/Compress/Zlib.pm IO::Compress cpan/IO-Compress/lib/File/GlobMapper.pm IO::Compress @@ -1053,6 +1053,7 @@ cpan/IO-Compress/t/002any-zip.t IO::Compress cpan/IO-Compress/t/004gziphdr.t IO::Compress cpan/IO-Compress/t/005defhdr.t IO::Compress cpan/IO-Compress/t/006zip.t IO::Compress +cpan/IO-Compress/t/011-streamzip.t cpan/IO-Compress/t/01misc.t IO::Compress cpan/IO-Compress/t/020isize.t IO::Compress cpan/IO-Compress/t/050interop-gzip.t IO::Compress @@ -1100,6 +1101,7 @@ cpan/IO-Compress/t/107multi-deflate.t IO::Compress cpan/IO-Compress/t/107multi-gzip.t IO::Compress cpan/IO-Compress/t/107multi-rawdeflate.t IO::Compress cpan/IO-Compress/t/107multi-zip.t IO::Compress +cpan/IO-Compress/t/107multi-zip-only.t cpan/IO-Compress/t/108anyunc-bzip2.t IO::Compress cpan/IO-Compress/t/108anyunc-deflate.t IO::Compress cpan/IO-Compress/t/108anyunc-gzip.t IO::Compress @@ -1116,6 +1118,7 @@ cpan/IO-Compress/t/110encode-gzip.t IO::Compress cpan/IO-Compress/t/110encode-rawdeflate.t IO::Compress cpan/IO-Compress/t/110encode-zip.t IO::Compress cpan/IO-Compress/t/111const-deflate.t IO::Compress +cpan/IO-Compress/t/112utf8-zip.t cpan/IO-Compress/t/999pod.t IO::Compress cpan/IO-Compress/t/compress/any.pl Compress::Zlib cpan/IO-Compress/t/compress/anyunc.pl Compress::Zlib @@ -1136,6 +1139,10 @@ cpan/IO-Compress/t/cz-03zlib-v1.t IO::Compress cpan/IO-Compress/t/cz-06gzsetp.t IO::Compress cpan/IO-Compress/t/cz-08encoding.t IO::Compress cpan/IO-Compress/t/cz-14gzopen.t IO::Compress +cpan/IO-Compress/t/files/bad-efs.zip +cpan/IO-Compress/t/files/encrypt-aes.zip +cpan/IO-Compress/t/files/encrypt-standard.zip +cpan/IO-Compress/t/files/jar.zip cpan/IO-Compress/t/files/meta.xml cpan/IO-Compress/t/files/test.ods cpan/IO-Compress/t/globmapper.t IO::Compress @@ -1292,9 +1299,11 @@ cpan/Math-BigInt/lib/Math/BigInt/Calc.pm Pure Perl module to support Math::BigIn cpan/Math-BigInt/lib/Math/BigInt/Lib.pm cpan/Math-BigInt/t/_e_math.t Helper routine in BigFloat for _e math cpan/Math-BigInt/t/alias.inc Support for BigInt tests +cpan/Math-BigInt/t/backermann-mbi.t Test Math::BigInt cpan/Math-BigInt/t/bare_mbf.t Test MBF under Math::BigInt::BareCalc cpan/Math-BigInt/t/bare_mbi.t Test MBI under Math::BigInt::BareCalc cpan/Math-BigInt/t/bare_mif.t Rounding tests under BareCalc +cpan/Math-BigInt/t/bdigitsum-mbi.t Test Math::BigInt cpan/Math-BigInt/t/bdstr-mbf.t Test Math::BigInt cpan/Math-BigInt/t/bdstr-mbi.t Test Math::BigInt cpan/Math-BigInt/t/bestr-mbf.t Test Math::BigInt @@ -1316,6 +1325,7 @@ cpan/Math-BigInt/t/bnstr-mbf.t Test Math::BigInt cpan/Math-BigInt/t/bnstr-mbi.t Test Math::BigInt cpan/Math-BigInt/t/bsstr-mbf.t Test Math::BigInt cpan/Math-BigInt/t/bsstr-mbi.t Test Math::BigInt +cpan/Math-BigInt/t/buparrow-mbi.t Test Math::BigInt cpan/Math-BigInt/t/calling.t Test calling conventions cpan/Math-BigInt/t/calling-class-methods.t Test Math::BigInt cpan/Math-BigInt/t/calling-instance-methods.t Test Math::BigInt @@ -1332,6 +1342,7 @@ cpan/Math-BigInt/t/from_bin-mbf.t Test Math::BigInt cpan/Math-BigInt/t/from_bin-mbi.t cpan/Math-BigInt/t/from_hex-mbf.t Test Math::BigInt cpan/Math-BigInt/t/from_hex-mbi.t +cpan/Math-BigInt/t/from_ieee754-mbf.t Test Math::BigInt cpan/Math-BigInt/t/from_oct-mbf.t Test Math::BigInt cpan/Math-BigInt/t/from_oct-mbi.t cpan/Math-BigInt/t/inf_nan.t Special tests for inf and *NaN* handling @@ -1371,6 +1382,7 @@ cpan/Math-BigInt/t/sub_mbf.t Empty subclass test of BigFloat cpan/Math-BigInt/t/sub_mbi.t Empty subclass test of BigInt cpan/Math-BigInt/t/sub_mif.t Test A & P with subclasses using mbimbf.inc cpan/Math-BigInt/t/to_base-mbi.t +cpan/Math-BigInt/t/to_ieee754-mbf.t Test Math::BigInt cpan/Math-BigInt/t/trap.t Test whether trap_nan and trap_inf work cpan/Math-BigInt/t/upgrade.inc Actual tests for upgrade.t cpan/Math-BigInt/t/upgrade.t Test if use Math::BigInt(); under upgrade works @@ -1459,6 +1471,7 @@ cpan/Module-Load-Conditional/t/test_lib/a/X.pm Module::Conditional tests cpan/Module-Load-Conditional/t/test_lib/b/X.pm Module::Conditional tests cpan/Module-Load-Conditional/t/to_load/AutoLoad.pm Module::Conditional tests cpan/Module-Load-Conditional/t/to_load/Commented.pm Module::Conditional tests +cpan/Module-Load-Conditional/t/to_load/HereDoc.pm cpan/Module-Load-Conditional/t/to_load/InPod.pm Module::Load::Conditional tests cpan/Module-Load-Conditional/t/to_load/LoadIt.pm Module::Conditional tests cpan/Module-Load-Conditional/t/to_load/LoadMe.pl Module::Conditional tests @@ -1492,16 +1505,6 @@ cpan/NEXT/t/dynamically_scoped_regex_vars.t NEXT cpan/NEXT/t/next.t NEXT cpan/NEXT/t/stringify.t NEXT cpan/NEXT/t/unseen.t NEXT -cpan/OpenBSD-MkTemp/lib/OpenBSD/MkTemp.pm OpenBSD::MkTemp -cpan/OpenBSD-MkTemp/MkTemp.xs OpenBSD::MkTemp -cpan/OpenBSD-MkTemp/README OpenBSD::MkTemp Readme -cpan/OpenBSD-MkTemp/t/OpenBSD-MkTemp.t OpenBSD::MkTemp test file -cpan/OpenBSD-Pledge/lib/OpenBSD/Pledge.pm OpenBSD::Pledge -cpan/OpenBSD-Pledge/Pledge.xs OpenBSD::Pledge -cpan/OpenBSD-Pledge/t/OpenBSD-Pledge.t OpenBSD::Pledge test file -cpan/OpenBSD-Unveil/lib/OpenBSD/Unveil.pm OpenBSD::Unveil -cpan/OpenBSD-Unveil/t/OpenBSD-Unveil.t OpenBSD::Unveil test file -cpan/OpenBSD-Unveil/Unveil.xs OpenBSD::Unveil cpan/Params-Check/lib/Params/Check.pm Params::Check cpan/Params-Check/t/01_Params-Check.t Params::Check tests cpan/parent/lib/parent.pm Establish an ISA relationship with base classes at compile time @@ -1550,48 +1553,6 @@ cpan/Pod-Escapes/lib/Pod/Escapes.pm Pod::Escapes cpan/Pod-Escapes/t/01_about_verbose.t test Pod::Escapes cpan/Pod-Escapes/t/10_main.t test Pod::Escapes cpan/Pod-Escapes/t/15_name2charnum.t test Pod::Escapes -cpan/Pod-Parser/lib/Pod/Find.pm find POD documents in directory trees -cpan/Pod-Parser/lib/Pod/InputObjects.pm Pod-Parser - define objects for input streams -cpan/Pod-Parser/lib/Pod/Parser.pm Pod-Parser - define base class for parsing POD -cpan/Pod-Parser/lib/Pod/ParseUtils.pm Pod-Parser - pod utility functions -cpan/Pod-Parser/lib/Pod/PlainText.pm Convert POD data to formatted ASCII text -cpan/Pod-Parser/lib/Pod/Select.pm Pod-Parser - select portions of POD docs -cpan/Pod-Parser/scripts/podselect.PL Pod-Parser - Pod::Select::podselect() CLI -cpan/Pod-Parser/t/pod/contains_bad_pod.xr Pod-Parser test file -cpan/Pod-Parser/t/pod/contains_pod.t Pod-Parser test -cpan/Pod-Parser/t/pod/contains_pod.xr Pod-Parser test file -cpan/Pod-Parser/t/pod/empty.xr -cpan/Pod-Parser/t/pod/emptycmd.t Test empty pod directives -cpan/Pod-Parser/t/pod/emptycmd.xr Expected results for emptycmd.t -cpan/Pod-Parser/t/pod/find.t See if Pod::Find works -cpan/Pod-Parser/t/pod/for.t Test =for directive -cpan/Pod-Parser/t/pod/for.xr Expected results for for.t -cpan/Pod-Parser/t/pod/headings.t Test =head directives -cpan/Pod-Parser/t/pod/headings.xr Expected results for headings.t -cpan/Pod-Parser/t/pod/include.t Test =include directive -cpan/Pod-Parser/t/pod/include.xr Expected results for include.t -cpan/Pod-Parser/t/pod/included.t Test =include directive -cpan/Pod-Parser/t/pod/included.xr Expected results for included.t -cpan/Pod-Parser/t/pod/lref.t Test L<...> sequences -cpan/Pod-Parser/t/pod/lref.xr Expected results for lref.t -cpan/Pod-Parser/t/pod/multiline_items.t Test multiline =items -cpan/Pod-Parser/t/pod/multiline_items.xr Expected results for multiline_items.t -cpan/Pod-Parser/t/pod/nested_items.t Test nested =items -cpan/Pod-Parser/t/pod/nested_items.xr Expected results for nested_items.t -cpan/Pod-Parser/t/pod/nested_seqs.t Test nested interior sequences -cpan/Pod-Parser/t/pod/nested_seqs.xr Expected results for nested_seqs.t -cpan/Pod-Parser/t/pod/oneline_cmds.t Test single paragraph ==cmds -cpan/Pod-Parser/t/pod/oneline_cmds.xr Expected results for oneline_cmds.t -cpan/Pod-Parser/t/pod/podselect.t Test Pod::Select -cpan/Pod-Parser/t/pod/podselect.xr Expected results for podselect.t -cpan/Pod-Parser/t/pod/selfcheck.t -cpan/Pod-Parser/t/pod/special_seqs.t Test "special" interior sequences -cpan/Pod-Parser/t/pod/special_seqs.xr Expected results for special_seqs.t -cpan/Pod-Parser/t/pod/testcmp.pl Module to compare output against expected results -cpan/Pod-Parser/t/pod/testp2pt.pl Module to test Pod::PlainText for a given file -cpan/Pod-Parser/t/pod/testpchk.pl Module to test Pod::Checker for a given file -cpan/Pod-Parser/t/pod/testpods/lib/Pod/Stuff.pm Sample data for t/pod/find.t -cpan/Pod-Parser/t/pod/twice.t Test Pod::Parser cpan/Pod-Perldoc/corpus/no-head.pod test file for Pod-Perldoc cpan/Pod-Perldoc/corpus/perlfunc.pod test file for Pod-Perldoc cpan/Pod-Perldoc/corpus/utf8.pod test file for Pod-Perldoc @@ -1624,6 +1585,7 @@ cpan/Pod-Simple/lib/Pod/Simple/DumpAsXML.pm turn Pod into XML cpan/Pod-Simple/lib/Pod/Simple/HTML.pm convert Pod to HTML cpan/Pod-Simple/lib/Pod/Simple/HTMLBatch.pm convert several Pod files to several HTML files cpan/Pod-Simple/lib/Pod/Simple/HTMLLegacy.pm Pod::Simple::HTMLLegacy +cpan/Pod-Simple/lib/Pod/Simple/JustPod.pm cpan/Pod-Simple/lib/Pod/Simple/LinkSection.pm represent "section" attributes of L codes cpan/Pod-Simple/lib/Pod/Simple/Methody.pm turn Pod::Simple events into method calls cpan/Pod-Simple/lib/Pod/Simple/Progress.pm Pod::Simple::Progress @@ -1655,6 +1617,7 @@ cpan/Pod-Simple/t/begin.t Pod::Simple test file cpan/Pod-Simple/t/cbacks.t Pod::Simple test file cpan/Pod-Simple/t/chunking.t Pod::Simple test file cpan/Pod-Simple/t/closeys.t Pod::Simple test file +cpan/Pod-Simple/t/content_seen.t Pod::Simple test file cpan/Pod-Simple/t/corpus.t Pod::Simple test file cpan/Pod-Simple/t/corpus/2202jp.txt Pod::Simple test file cpan/Pod-Simple/t/corpus/2202jp.xml Pod::Simple test file @@ -1742,6 +1705,7 @@ cpan/Pod-Simple/t/fcodes_l.t Pod::Simple test file cpan/Pod-Simple/t/fcodes_s.t Pod::Simple test file cpan/Pod-Simple/t/for.t Pod::Simple test file cpan/Pod-Simple/t/fornot.t Pod::Simple test file +cpan/Pod-Simple/t/github_issue_79.t cpan/Pod-Simple/t/heads.t Pod::Simple test file cpan/Pod-Simple/t/html01.t Pod::Simple test file cpan/Pod-Simple/t/html02.t Pod::Simple test file @@ -1754,6 +1718,9 @@ cpan/Pod-Simple/t/junk1.pod Pod::Simple test file cpan/Pod-Simple/t/junk1o.txt Pod::Simple test file cpan/Pod-Simple/t/junk2.pod Pod::Simple test file cpan/Pod-Simple/t/junk2o.txt Pod::Simple test file +cpan/Pod-Simple/t/JustPod01.t +cpan/Pod-Simple/t/JustPod02.t +cpan/Pod-Simple/t/JustPod_corpus.t cpan/Pod-Simple/t/linkclas.t Pod::Simple test file cpan/Pod-Simple/t/output.t Pod::Simple test file cpan/Pod-Simple/t/perlcyg.pod Pod::Simple test file @@ -1766,6 +1733,7 @@ cpan/Pod-Simple/t/puller.t Pod::Simple test file cpan/Pod-Simple/t/pulltitl.t Pod::Simple test file cpan/Pod-Simple/t/reinit.t Pod::Simple test file cpan/Pod-Simple/t/render.t Pod::Simple test file +cpan/Pod-Simple/t/rtf_utf8.t cpan/Pod-Simple/t/search05.t Pod::Simple test file cpan/Pod-Simple/t/search10.t Pod::Simple test file cpan/Pod-Simple/t/search12.t Pod::Simple test file @@ -1777,6 +1745,9 @@ cpan/Pod-Simple/t/search27.t Pod::Simple test file cpan/Pod-Simple/t/search28.t Pod::Simple test file cpan/Pod-Simple/t/search29.t Pod::Simple test file cpan/Pod-Simple/t/search50.t Pod::Simple test file +cpan/Pod-Simple/t/search60.t Pod::Simple test file +cpan/Pod-Simple/t/search60/A/x.pod Pod::Simple test file +cpan/Pod-Simple/t/search60/B/X.pod Pod::Simple test file cpan/Pod-Simple/t/stree.t Pod::Simple test file cpan/Pod-Simple/t/strpvbtm.t Pod::Simple test file cpan/Pod-Simple/t/testlib1/Blorm.pm Pod::Simple test file @@ -1797,6 +1768,7 @@ cpan/Pod-Simple/t/testlib2/hinkhonk/readme.txt Pod::Simple test file cpan/Pod-Simple/t/testlib2/hinkhonk/Vliff.pm Pod::Simple test file cpan/Pod-Simple/t/testlib2/pod/perlthng.pod Pod::Simple test file cpan/Pod-Simple/t/testlib2/pod/perlzuk.pod Pod::Simple test file +cpan/Pod-Simple/t/testlib2/pods/perlzoned.pod Pod::Simple test file cpan/Pod-Simple/t/testlib2/squaa/Vliff.pm Pod::Simple test file cpan/Pod-Simple/t/testlib2/squaa/Wowo.pod Pod::Simple test file cpan/Pod-Simple/t/testlib2/Suzzle.pm Pod::Simple test file @@ -1901,19 +1873,46 @@ cpan/podlators/t/data/snippets/man/utf8-nonbreaking cpan/podlators/t/data/snippets/man/utf8-verbatim cpan/podlators/t/data/snippets/man/x-whitespace cpan/podlators/t/data/snippets/man/x-whitespace-entry +cpan/podlators/t/data/snippets/overstrike/tag-width +cpan/podlators/t/data/snippets/overstrike/wrapping cpan/podlators/t/data/snippets/README podlators test cpan/podlators/t/data/snippets/termcap/escape-wrapping cpan/podlators/t/data/snippets/termcap/tag-width cpan/podlators/t/data/snippets/termcap/tag-wrapping +cpan/podlators/t/data/snippets/termcap/term-unknown cpan/podlators/t/data/snippets/termcap/width cpan/podlators/t/data/snippets/termcap/wrapping +cpan/podlators/t/data/snippets/text/alt +cpan/podlators/t/data/snippets/text/c-with-spaces +cpan/podlators/t/data/snippets/text/code cpan/podlators/t/data/snippets/text/cpp podlators test +cpan/podlators/t/data/snippets/text/empty +cpan/podlators/t/data/snippets/text/error-die +cpan/podlators/t/data/snippets/text/error-none +cpan/podlators/t/data/snippets/text/error-normal +cpan/podlators/t/data/snippets/text/error-pod +cpan/podlators/t/data/snippets/text/error-stderr +cpan/podlators/t/data/snippets/text/error-stderr-opt +cpan/podlators/t/data/snippets/text/for +cpan/podlators/t/data/snippets/text/iso-8859-1 +cpan/podlators/t/data/snippets/text/late-encoding +cpan/podlators/t/data/snippets/text/link-rt +cpan/podlators/t/data/snippets/text/link-url +cpan/podlators/t/data/snippets/text/margin +cpan/podlators/t/data/snippets/text/nonbreaking-space +cpan/podlators/t/data/snippets/text/nourls +cpan/podlators/t/data/snippets/text/periods +cpan/podlators/t/data/snippets/text/quotes-opt +cpan/podlators/t/data/snippets/text/s-whitespace +cpan/podlators/t/data/snippets/text/sentence-spacing +cpan/podlators/t/data/snippets/text/utf8 +cpan/podlators/t/data/snippets/text/utf8-iso +cpan/podlators/t/data/snippets/text/verbatim cpan/podlators/t/data/termcap podlators test cpan/podlators/t/docs/pod.t podlators test cpan/podlators/t/docs/pod-spelling.t podlators test cpan/podlators/t/docs/spdx-license.t podlators test cpan/podlators/t/docs/synopsis.t podlators test -cpan/podlators/t/docs/urls.t podlators test cpan/podlators/t/general/basic.t podlators test cpan/podlators/t/general/filehandle.t podlators test cpan/podlators/t/general/pod-parser.t podlators test @@ -1932,16 +1931,15 @@ cpan/podlators/t/man/utf8-io.t podlators test cpan/podlators/t/parselink/basic.t podlators test cpan/podlators/t/style/minimum-version.t podlators test cpan/podlators/t/style/module-version.t podlators test +cpan/podlators/t/style/obsolete-strings.t cpan/podlators/t/style/strict.t podlators test -cpan/podlators/t/text/basic.t podlators test cpan/podlators/t/text/color.t podlators test -cpan/podlators/t/text/empty.t podlators test -cpan/podlators/t/text/encoding.t podlators test -cpan/podlators/t/text/options.t podlators test +cpan/podlators/t/text/invalid.t +cpan/podlators/t/text/iso-8859-1.t cpan/podlators/t/text/overstrike.t podlators test -cpan/podlators/t/text/perlio.t podlators test +cpan/podlators/t/text/snippets.t cpan/podlators/t/text/termcap.t podlators test -cpan/podlators/t/text/utf8.t podlators test +cpan/podlators/t/text/utf8-io.t cpan/Scalar-List-Utils/lib/List/Util.pm List::Util cpan/Scalar-List-Utils/lib/List/Util/XS.pm List::Util cpan/Scalar-List-Utils/lib/Scalar/Util.pm Scalar::Util @@ -1969,9 +1967,11 @@ cpan/Scalar-List-Utils/t/product.t List::Util cpan/Scalar-List-Utils/t/prototype.t cpan/Scalar-List-Utils/t/readonly.t Scalar::Util cpan/Scalar-List-Utils/t/reduce.t List::Util +cpan/Scalar-List-Utils/t/reductions.t cpan/Scalar-List-Utils/t/refaddr.t Scalar::Util cpan/Scalar-List-Utils/t/reftype.t Scalar::Util cpan/Scalar-List-Utils/t/rt-96343.t Scalar::Util +cpan/Scalar-List-Utils/t/sample.t cpan/Scalar-List-Utils/t/scalarutil-proto.t cpan/Scalar-List-Utils/t/shuffle.t List::Util cpan/Scalar-List-Utils/t/stack-corruption.t List::Util @@ -1980,6 +1980,7 @@ cpan/Scalar-List-Utils/t/sum.t List::Util cpan/Scalar-List-Utils/t/sum0.t cpan/Scalar-List-Utils/t/tainted.t Scalar::Util cpan/Scalar-List-Utils/t/uniq.t Scalar::Util +cpan/Scalar-List-Utils/t/uniqnum.t cpan/Scalar-List-Utils/t/weak.t Scalar::Util cpan/Socket/Makefile.PL Socket extension makefile writer cpan/Socket/Socket.pm Socket extension Perl module @@ -2000,8 +2001,15 @@ cpan/Sys-Syslog/Syslog.pm Sys::Syslog extension Perl module cpan/Sys-Syslog/Syslog.xs Sys::Syslog extension external subroutines cpan/Sys-Syslog/t/00-load.t test for Sys::Syslog cpan/Sys-Syslog/t/constants.t test for Sys::Syslog +cpan/Sys-Syslog/t/cpan-rt-21516.t +cpan/Sys-Syslog/t/cpan-rt-21866.t +cpan/Sys-Syslog/t/cpan-rt-25488.t +cpan/Sys-Syslog/t/cpan-rt-49877.pl +cpan/Sys-Syslog/t/cpan-rt-55151.t +cpan/Sys-Syslog/t/cpan-rt-64287.t cpan/Sys-Syslog/t/facilities-routing.t test for Sys::Syslog cpan/Sys-Syslog/t/syslog.t See if Sys::Syslog works +cpan/Sys-Syslog/t/syslog-inet-udp.t cpan/Sys-Syslog/win32/compile.pl Sys::Syslog extension Win32 related file cpan/Sys-Syslog/win32/PerlLog.mc Sys::Syslog extension Win32 related file cpan/Sys-Syslog/win32/PerlLog_dll.uu Sys::Syslog extension Win32 related file @@ -2015,20 +2023,10 @@ cpan/Term-ANSIColor/t/module/basic.t cpan/Term-ANSIColor/t/module/basic256.t cpan/Term-ANSIColor/t/module/eval.t cpan/Term-ANSIColor/t/module/stringify.t +cpan/Term-ANSIColor/t/module/true-color.t cpan/Term-ANSIColor/t/taint/basic.t cpan/Term-Cap/Cap.pm Perl module supporting termcap usage cpan/Term-Cap/test.pl See if Term::Cap works -cpan/Term-ReadKey/Changes Term::ReadKey -cpan/Term-ReadKey/Configure.pm Term::ReadKey -cpan/Term-ReadKey/example/test.pl Term::ReadKey -cpan/Term-ReadKey/genchars.pl Term::ReadKey -cpan/Term-ReadKey/Makefile.PL Term::ReadKey -cpan/Term-ReadKey/ppport.h Term::ReadKey -cpan/Term-ReadKey/ReadKey.xs Term::ReadKey -cpan/Term-ReadKey/ReadKey.pm.PL Term::ReadKey -cpan/Term-ReadKey/README Term::ReadKey -cpan/Term-ReadKey/t/01_basic.t Term::ReadKey -cpan/Term-ReadKey/t/02_terminal_functions.t Term::ReadKey cpan/Test-Harness/bin/prove The prove harness utility cpan/Test-Harness/lib/App/Prove.pm Gubbins for the prove utility cpan/Test-Harness/lib/App/Prove/State.pm Gubbins for the prove utility @@ -2603,8 +2601,13 @@ cpan/Time-Piece/t/02core_dst.t cpan/Time-Piece/t/03compare.t Test for Time::Piece cpan/Time-Piece/t/04mjd.t Test for Time::Piece cpan/Time-Piece/t/05overload.t Test for Time::Piece +cpan/Time-Piece/t/06large.t cpan/Time-Piece/t/06subclass.t Test for Time::Piece cpan/Time-Piece/t/07arith.t Test for Time::Piece +cpan/Time-Piece/t/08truncate.t +cpan/Time-Piece/t/09locales.t +cpan/Time-Piece/t/10overload.t +cpan/Time-Piece/t/99legacy.t cpan/Time-Piece/t/lib/Time/Piece/Twin.pm cpan/Unicode-Collate/Collate.pm Unicode::Collate cpan/Unicode-Collate/Collate.xs Unicode::Collate @@ -3015,7 +3018,8 @@ dist/Devel-PPPort/apicheck_c.PL Devel::PPPort apicheck generator dist/Devel-PPPort/Changes Devel::PPPort Changes file dist/Devel-PPPort/devel/buildperl.pl Devel::PPPort perl version builder dist/Devel-PPPort/devel/devtools.pl Devel::PPPort development utilities -dist/Devel-PPPort/devel/mkapidoc.sh Devel::PPPort apidoc collector +dist/Devel-PPPort/devel/mkapidoc.pl Devel::PPPort apidoc collector +dist/Devel-PPPort/devel/mkppport_fnc.pl Devel::PPPort dist/Devel-PPPort/devel/mktodo Devel::PPPort baseline/todo generator dist/Devel-PPPort/devel/mktodo.pl Devel::PPPort baseline/todo generator dist/Devel-PPPort/devel/regenerate Devel::PPPort API re-generator @@ -3028,18 +3032,18 @@ dist/Devel-PPPort/module2.c Devel::PPPort test file dist/Devel-PPPort/module3.c Devel::PPPort test file dist/Devel-PPPort/parts/apicheck.pl Devel::PPPort apicheck generator dist/Devel-PPPort/parts/apidoc.fnc Devel::PPPort Perl API listing -dist/Devel-PPPort/parts/base/5003070 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5003007 Devel::PPPort baseline todo file dist/Devel-PPPort/parts/base/5004000 Devel::PPPort baseline todo file -dist/Devel-PPPort/parts/base/5004010 Devel::PPPort baseline todo file -dist/Devel-PPPort/parts/base/5004020 Devel::PPPort baseline todo file -dist/Devel-PPPort/parts/base/5004030 Devel::PPPort baseline todo file -dist/Devel-PPPort/parts/base/5004040 Devel::PPPort baseline todo file -dist/Devel-PPPort/parts/base/5004050 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5004001 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5004002 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5004003 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5004004 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5004005 Devel::PPPort baseline todo file dist/Devel-PPPort/parts/base/5005000 Devel::PPPort baseline todo file -dist/Devel-PPPort/parts/base/5005010 Devel::PPPort baseline todo file -dist/Devel-PPPort/parts/base/5005020 Devel::PPPort baseline todo file -dist/Devel-PPPort/parts/base/5005030 Devel::PPPort baseline todo file -dist/Devel-PPPort/parts/base/5005040 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5005001 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5005002 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5005003 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5005004 Devel::PPPort baseline todo file dist/Devel-PPPort/parts/base/5006000 Devel::PPPort baseline todo file dist/Devel-PPPort/parts/base/5006001 Devel::PPPort baseline todo file dist/Devel-PPPort/parts/base/5006002 Devel::PPPort baseline todo file @@ -3144,6 +3148,7 @@ dist/Devel-PPPort/parts/base/5020003 Devel::PPPort baseline todo file dist/Devel-PPPort/parts/base/5021000 Devel::PPPort baseline todo file dist/Devel-PPPort/parts/base/5021001 Devel::PPPort baseline todo file dist/Devel-PPPort/parts/base/5021002 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5021003 Devel::PPPort baseline todo file dist/Devel-PPPort/parts/base/5021004 Devel::PPPort baseline todo file dist/Devel-PPPort/parts/base/5021005 Devel::PPPort baseline todo file dist/Devel-PPPort/parts/base/5021006 Devel::PPPort baseline todo file @@ -3154,6 +3159,9 @@ dist/Devel-PPPort/parts/base/5021010 Devel::PPPort baseline todo file dist/Devel-PPPort/parts/base/5021011 Devel::PPPort baseline todo file dist/Devel-PPPort/parts/base/5022000 Devel::PPPort baseline todo file dist/Devel-PPPort/parts/base/5022001 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5022002 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5022003 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5022004 Devel::PPPort baseline todo file dist/Devel-PPPort/parts/base/5023000 Devel::PPPort baseline todo file dist/Devel-PPPort/parts/base/5023001 Devel::PPPort baseline todo file dist/Devel-PPPort/parts/base/5023002 Devel::PPPort baseline todo file @@ -3165,7 +3173,63 @@ dist/Devel-PPPort/parts/base/5023007 Devel::PPPort baseline todo file dist/Devel-PPPort/parts/base/5023008 Devel::PPPort baseline todo file dist/Devel-PPPort/parts/base/5023009 Devel::PPPort baseline todo file dist/Devel-PPPort/parts/base/5024000 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5024001 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5024002 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5024003 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5024004 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5025000 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5025001 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5025002 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5025003 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5025004 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5025005 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5025006 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5025007 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5025008 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5025009 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5025010 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5025011 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5025012 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5026000 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5026001 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5026002 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5026003 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5027000 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5027001 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5027002 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5027003 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5027004 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5027005 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5027006 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5027007 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5027008 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5027009 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5027010 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5027011 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5028000 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5028001 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5029000 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5029001 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5029002 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5029003 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5029004 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5029005 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5029006 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5029007 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5029008 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5029009 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5029010 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5030000 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5031001 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5031002 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5031003 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5031004 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5031005 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5031006 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5031007 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/base/5031008 dist/Devel-PPPort/parts/embed.fnc Devel::PPPort Perl API listing +dist/Devel-PPPort/parts/inc/01_test Devel::PPPort include dist/Devel-PPPort/parts/inc/call Devel::PPPort include dist/Devel-PPPort/parts/inc/cop Devel::PPPort include dist/Devel-PPPort/parts/inc/exception Devel::PPPort include @@ -3173,7 +3237,9 @@ dist/Devel-PPPort/parts/inc/format Devel::PPPort include dist/Devel-PPPort/parts/inc/grok Devel::PPPort include dist/Devel-PPPort/parts/inc/gv Devel::PPPort include dist/Devel-PPPort/parts/inc/HvNAME Devel::PPPort include +dist/Devel-PPPort/parts/inc/inctools dist/Devel-PPPort/parts/inc/limits Devel::PPPort include +dist/Devel-PPPort/parts/inc/locale dist/Devel-PPPort/parts/inc/magic Devel::PPPort include dist/Devel-PPPort/parts/inc/magic_defs Devel::PPPort include dist/Devel-PPPort/parts/inc/memory Devel::PPPort include @@ -3195,29 +3261,31 @@ dist/Devel-PPPort/parts/inc/shared_pv Devel::PPPort include dist/Devel-PPPort/parts/inc/snprintf Devel::PPPort include dist/Devel-PPPort/parts/inc/sprintf Devel::PPPort include dist/Devel-PPPort/parts/inc/strlfuncs Devel::PPPort include +dist/Devel-PPPort/parts/inc/subparse dist/Devel-PPPort/parts/inc/Sv_set Devel::PPPort include dist/Devel-PPPort/parts/inc/sv_xpvf Devel::PPPort include dist/Devel-PPPort/parts/inc/SvPV Devel::PPPort include dist/Devel-PPPort/parts/inc/SvREFCNT Devel::PPPort include dist/Devel-PPPort/parts/inc/threads Devel::PPPort include +dist/Devel-PPPort/parts/inc/utf8 dist/Devel-PPPort/parts/inc/uv Devel::PPPort include dist/Devel-PPPort/parts/inc/variables Devel::PPPort include dist/Devel-PPPort/parts/inc/version Devel::PPPort include dist/Devel-PPPort/parts/inc/warn Devel::PPPort include dist/Devel-PPPort/parts/ppport.fnc Devel::PPPort API listing dist/Devel-PPPort/parts/ppptools.pl Devel::PPPort various utilities -dist/Devel-PPPort/parts/todo/5003070 Devel::PPPort todo file +dist/Devel-PPPort/parts/todo/5003007 Devel::PPPort baseline todo file dist/Devel-PPPort/parts/todo/5004000 Devel::PPPort todo file -dist/Devel-PPPort/parts/todo/5004010 Devel::PPPort todo file -dist/Devel-PPPort/parts/todo/5004020 Devel::PPPort todo file -dist/Devel-PPPort/parts/todo/5004030 Devel::PPPort todo file -dist/Devel-PPPort/parts/todo/5004040 Devel::PPPort todo file -dist/Devel-PPPort/parts/todo/5004050 Devel::PPPort todo file +dist/Devel-PPPort/parts/todo/5004001 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5004002 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5004003 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5004004 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5004005 Devel::PPPort baseline todo file dist/Devel-PPPort/parts/todo/5005000 Devel::PPPort todo file -dist/Devel-PPPort/parts/todo/5005010 Devel::PPPort todo file -dist/Devel-PPPort/parts/todo/5005020 Devel::PPPort todo file -dist/Devel-PPPort/parts/todo/5005030 Devel::PPPort todo file -dist/Devel-PPPort/parts/todo/5005040 Devel::PPPort todo file +dist/Devel-PPPort/parts/todo/5005001 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5005002 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5005003 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5005004 Devel::PPPort baseline todo file dist/Devel-PPPort/parts/todo/5006000 Devel::PPPort todo file dist/Devel-PPPort/parts/todo/5006001 Devel::PPPort todo file dist/Devel-PPPort/parts/todo/5006002 Devel::PPPort todo file @@ -3322,6 +3390,7 @@ dist/Devel-PPPort/parts/todo/5020003 Devel::PPPort todo file dist/Devel-PPPort/parts/todo/5021000 Devel::PPPort todo file dist/Devel-PPPort/parts/todo/5021001 Devel::PPPort todo file dist/Devel-PPPort/parts/todo/5021002 Devel::PPPort todo file +dist/Devel-PPPort/parts/todo/5021003 Devel::PPPort baseline todo file dist/Devel-PPPort/parts/todo/5021004 Devel::PPPort todo file dist/Devel-PPPort/parts/todo/5021005 Devel::PPPort todo file dist/Devel-PPPort/parts/todo/5021006 Devel::PPPort todo file @@ -3332,6 +3401,9 @@ dist/Devel-PPPort/parts/todo/5021010 Devel::PPPort todo file dist/Devel-PPPort/parts/todo/5021011 Devel::PPPort todo file dist/Devel-PPPort/parts/todo/5022000 Devel::PPPort todo file dist/Devel-PPPort/parts/todo/5022001 Devel::PPPort todo file +dist/Devel-PPPort/parts/todo/5022002 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5022003 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5022004 Devel::PPPort baseline todo file dist/Devel-PPPort/parts/todo/5023000 Devel::PPPort todo file dist/Devel-PPPort/parts/todo/5023001 Devel::PPPort todo file dist/Devel-PPPort/parts/todo/5023002 Devel::PPPort todo file @@ -3343,11 +3415,67 @@ dist/Devel-PPPort/parts/todo/5023007 Devel::PPPort todo file dist/Devel-PPPort/parts/todo/5023008 Devel::PPPort todo file dist/Devel-PPPort/parts/todo/5023009 Devel::PPPort todo file dist/Devel-PPPort/parts/todo/5024000 Devel::PPPort todo file +dist/Devel-PPPort/parts/todo/5024001 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5024002 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5024003 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5024004 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5025000 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5025001 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5025002 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5025003 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5025004 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5025005 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5025006 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5025007 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5025008 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5025009 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5025010 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5025011 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5025012 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5026000 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5026001 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5026002 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5026003 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5027000 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5027001 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5027002 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5027003 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5027004 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5027005 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5027006 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5027007 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5027008 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5027009 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5027010 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5027011 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5028000 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5028001 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5029000 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5029001 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5029002 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5029003 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5029004 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5029005 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5029006 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5029007 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5029008 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5029009 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5029010 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5030000 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5031001 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5031002 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5031003 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5031004 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5031005 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5031006 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5031007 Devel::PPPort baseline todo file +dist/Devel-PPPort/parts/todo/5031008 dist/Devel-PPPort/PPPort.xs Devel::PPPort dummy PPPort.xs dist/Devel-PPPort/ppport_h.PL Devel::PPPort ppport.h writer dist/Devel-PPPort/PPPort_pm.PL Devel::PPPort PPPort.pm writer -dist/Devel-PPPort/PPPort_xs.PL Devel::PPPort RealPPPort.xs writer +dist/Devel-PPPort/RealPPPort_xs.PL Devel::PPPort RealPPPort.xs writer dist/Devel-PPPort/soak Devel::PPPort Test Harness to run under various Perls +dist/Devel-PPPort/t/01_test.t Devel::PPPort test file dist/Devel-PPPort/t/call.t Devel::PPPort test file dist/Devel-PPPort/t/cop.t Devel::PPPort test file dist/Devel-PPPort/t/exception.t Devel::PPPort test file @@ -3356,6 +3484,7 @@ dist/Devel-PPPort/t/grok.t Devel::PPPort test file dist/Devel-PPPort/t/gv.t Devel::PPPort test file dist/Devel-PPPort/t/HvNAME.t Devel::PPPort test file dist/Devel-PPPort/t/limits.t Devel::PPPort test file +dist/Devel-PPPort/t/locale.t dist/Devel-PPPort/t/magic.t Devel::PPPort test file dist/Devel-PPPort/t/memory.t Devel::PPPort test file dist/Devel-PPPort/t/mess.t Devel::PPPort test file @@ -3380,14 +3509,19 @@ dist/Devel-PPPort/t/SvPV.t Devel::PPPort test file dist/Devel-PPPort/t/SvREFCNT.t Devel::PPPort test file dist/Devel-PPPort/t/testutil.pl Devel::PPPort test utilities dist/Devel-PPPort/t/threads.t Devel::PPPort test file +dist/Devel-PPPort/t/utf8.t dist/Devel-PPPort/t/uv.t Devel::PPPort test file dist/Devel-PPPort/t/variables.t Devel::PPPort test file dist/Devel-PPPort/t/warn.t Devel::PPPort test file +dist/Devel-PPPort/TODO Devel::PPPort developer notes dist/Devel-PPPort/typemap Devel::PPPort Typemap dist/Devel-SelfStubber/lib/Devel/SelfStubber.pm Generate stubs for SelfLoader.pm dist/Devel-SelfStubber/t/Devel-SelfStubber.t See if Devel::SelfStubber works dist/Dumpvalue/lib/Dumpvalue.pm Screen dump of perl values dist/Dumpvalue/t/Dumpvalue.t See if Dumpvalue works +dist/Dumpvalue/t/extend-coverage.t Extend Dumpvalue's test coverage +dist/Dumpvalue/t/lib/TieOut.pm Helper module for Dumpvalue tests +dist/Dumpvalue/t/rt-134441-dumpvalue.t See if Dumpvalue works dist/encoding-warnings/lib/encoding/warnings.pm warn on implicit encoding conversions dist/encoding-warnings/t/1-warning.t tests for encoding::warnings dist/encoding-warnings/t/2-fatal.t tests for encoding::warnings @@ -3496,11 +3630,14 @@ dist/Filter-Simple/t/filter.t See if Filter::Simple works dist/Filter-Simple/t/filter_only.t See if Filter::Simple works dist/Filter-Simple/t/import.t See if Filter::Simple works dist/Filter-Simple/t/lib/Filter/Simple/CodeNoComments.pm Helper file for Filter::Simple tests +dist/Filter-Simple/t/lib/Filter/Simple/ExeNoComments.pm Helper file for Filter::Simple tests dist/Filter-Simple/t/lib/Filter/Simple/ExportTest.pm Helper file for Filter::Simple tests dist/Filter-Simple/t/lib/Filter/Simple/FilterOnlyTest.pm Helper file for Filter::Simple tests dist/Filter-Simple/t/lib/Filter/Simple/FilterTest.pm Helper file for Filter::Simple tests dist/Filter-Simple/t/lib/Filter/Simple/ImportTest.pm Helper file for Filter::Simple tests dist/Filter-Simple/t/no.t See if Filter::Simple works +dist/FindBin/lib/FindBin.pm Find name of currently executing program +dist/FindBin/t/FindBin.t See if FindBin works dist/I18N-Collate/lib/I18N/Collate.pm Routines to do strxfrm-based collation dist/I18N-Collate/t/I18N-Collate.t See if I18N::Collate works dist/I18N-LangTags/ChangeLog I18N::LangTags @@ -3543,12 +3680,14 @@ dist/IO/README IO extension maintenance notice dist/IO/t/cachepropagate-tcp.t See if IO::Socket duplication works dist/IO/t/cachepropagate-udp.t See if IO::Socket duplication works dist/IO/t/cachepropagate-unix.t See if IO::Socket duplication works +dist/IO/t/gh17447.t Tests fix for #17447 dist/IO/t/IO.t See if IO works dist/IO/t/io_const.t See if constants from IO work dist/IO/t/io_dir.t See if directory-related methods from IO work dist/IO/t/io_dup.t See if dup()-related methods from IO work dist/IO/t/io_file.t See if binmode()-related methods on IO::File work dist/IO/t/io_file_export.t Test IO::File exports +dist/IO/t/io_getline.t Test getline and getlines dist/IO/t/io_leak.t See if IO leaks SVs (only run in core) dist/IO/t/io_linenum.t See if I/O line numbers are tracked correctly dist/IO/t/io_multihomed.t See if INET sockets work with multi-homed hosts @@ -3682,7 +3821,6 @@ dist/SelfLoader/lib/SelfLoader.pm Load functions only on demand dist/SelfLoader/t/01SelfLoader.t See if SelfLoader works dist/SelfLoader/t/02SelfLoader-buggy.t See if SelfLoader works dist/SelfLoader/t/03taint.t See if SelfLoader works under taint -dist/Storable/__Storable__.pm Template to generate Storable.pm dist/Storable/ChangeLog Storable extension dist/Storable/hints/gnukfreebsd.pl Hint for Storable for named architecture dist/Storable/hints/gnuknetbsd.pl Hint for Storable for named architecture @@ -3692,8 +3830,8 @@ dist/Storable/Makefile.PL Storable extension dist/Storable/MANIFEST Storable MANIFEST file dist/Storable/README Storable extension dist/Storable/stacksize compute stack sizes +dist/Storable/Storable.pm Storable perl module dist/Storable/Storable.xs Storable extension -dist/Storable/Storable.pm.PL perl script to generate Storable.pm from template dist/Storable/t/attach.t Check STORABLE_attach doesn't create objects unnecessarily dist/Storable/t/attach_errors.t Trigger and test STORABLE_attach errors dist/Storable/t/attach_singleton.t Test STORABLE_attach for the Singleton pattern @@ -3835,8 +3973,8 @@ dist/threads-shared/t/sv_simple.t thread shared variables dist/threads-shared/t/utf8.t Test UTF-8 keys in shared hashes dist/threads-shared/t/wait.t Test cond_wait and cond_timedwait dist/threads-shared/t/waithires.t Test sub-second cond_timedwait +dist/Tie-File/ChangeLog Tie::File dist/Tie-File/lib/Tie/File.pm Files as tied arrays -dist/Tie-File/t/00_version.t Trivial test for Tie::File dist/Tie-File/t/01_gen.t Generic read/write tests for Tie::File dist/Tie-File/t/02_fetchsize.t File length fetch test for Tie::File dist/Tie-File/t/03_longfetch.t Past-the-end-of-the-array tests for Tie::File @@ -3874,6 +4012,7 @@ dist/Tie-File/t/33_defer_vs.t Like 30_defer.t, but with varying-length records dist/Tie-File/t/40_abs_cache.t Unit tests for Tie::File::Cache dist/Tie-File/t/41_heap.t Unit tests for Tie::File::Heap dist/Tie-File/t/42_offset.t Unit tests for the offset method +dist/Tie-File/t/43_synopsis.t Demonstrate correctness of Tie::File synopsis dist/Time-HiRes/Changes Time::HiRes extension dist/Time-HiRes/fallback/const-c.inc Time::HiRes extension dist/Time-HiRes/fallback/const-xs.inc Time::HiRes extension @@ -3932,7 +4071,6 @@ doio.c I/O operations doop.c Support code for various operations dosish.h Some defines for MS/DOSish machines dquote.c Functions for double quotish contexts -dquote_inline.h Inline functions for double quotish contexts dump.c Debugging output ebcdic_tables.h Generated tables included in utfebcdic.h embed.fnc Database used by embed.pl @@ -3961,6 +4099,7 @@ ext/B/B/Showlex.pm Compiler Showlex backend ext/B/B/Terse.pm Compiler Terse backend ext/B/B/Xref.pm Compiler Xref backend ext/B/hints/darwin.pl Hints for named architecture +ext/B/hints/openbsd.pl Hints for named architecture ext/B/Makefile.PL Compiler backend makefile writer ext/B/O.pm Compiler front-end module (-MO=...) ext/B/t/b.t See if B works @@ -3980,6 +4119,7 @@ ext/B/t/optree_sort.t inplace sort optimization regression ext/B/t/optree_specials.t BEGIN, END, etc code ext/B/t/optree_varinit.t my,our,local var init optimization ext/B/t/OptreeCheck.pm optree comparison tool +ext/B/t/perlstring.t See if B::perlstring output roundtrips properly ext/B/t/pragma.t See if user pragmas work. ext/B/t/showlex.t See if B::ShowLex works ext/B/t/strict.t See if B works with strict and warnings. @@ -4263,7 +4403,6 @@ ext/Sys-Hostname/Hostname.pm Sys::Hostname extension Perl module ext/Sys-Hostname/Hostname.xs Sys::Hostname extension external subroutines ext/Sys-Hostname/t/Hostname.t See if Sys::Hostname works ext/Tie-Hash-NamedCapture/NamedCapture.pm Implements %- and %+ behaviour -ext/Tie-Hash-NamedCapture/NamedCapture.xs Implements %- and %+ behaviour ext/Tie-Hash-NamedCapture/t/tiehash.t Tests TIEHASH ext/Tie-Memoize/lib/Tie/Memoize.pm Base class for memoized tied hashes ext/Tie-Memoize/t/Tie-Memoize.t Test for Tie::Memoize @@ -4339,6 +4478,7 @@ ext/XS-APItest/t/handy08.t XS::APItest: tests for handy.h ext/XS-APItest/t/handy09.t XS::APItest: tests for handy.h ext/XS-APItest/t/handy_base.pl XS::APItest: tests for handy.h ext/XS-APItest/t/hash.t XS::APItest: tests for hash related APIs +ext/XS-APItest/t/hv_macro.t XS::APItest: tests for low level macros used in hashing ext/XS-APItest/t/join_with_space.t test op_convert_list ext/XS-APItest/t/keyword_multiline.t test keyword plugin parsing across lines ext/XS-APItest/t/keyword_plugin.t test keyword plugin mechanism @@ -4384,6 +4524,7 @@ ext/XS-APItest/t/stmtsasexpr.t test recursive descent statement-sequence parsing ext/XS-APItest/t/stuff_modify_bug.t test for eval side-effecting source string ext/XS-APItest/t/stuff_svcur_bug.t test for a bug in lex_stuff_pvn ext/XS-APItest/t/subcall.t Test XSUB calls +ext/XS-APItest/t/subsignature.t Test parse_subsignature() ext/XS-APItest/t/svcat.t Test sv_catpvn ext/XS-APItest/t/svcatpvf.t Test sv_catpvf argument reordering ext/XS-APItest/t/sviscow.t Test SvIsCOW @@ -4432,7 +4573,6 @@ fakesdio.h stdio in terms of PerlIO feature.h Feature header form.h Public declarations for formats generate_uudmap.c Generate uudmap.h, the uuencode decoding map -git_version.h Pre-generated git_version.h for OpenBSD globals.c File to declare global symbols (for shared library) globvar.sym Global variables that need hiding when embedded gv.c Glob value code @@ -4578,7 +4718,6 @@ lib/Class/Struct.t See if Class::Struct works lib/Config.t See if Config works lib/Config/Extensions.pm Convenient hash lookup for built extensions lib/Config/Extensions.t See if Config::Extensions works -lib/Config_git.pl Pre-generated Config_git.pl for OpenBSD lib/CORE.pod document the CORE namespace lib/DB.pm Debugger API (draft) lib/DB.t See if DB works @@ -4625,8 +4764,6 @@ lib/FileHandle.pm Backward-compatible front end to IO extension lib/FileHandle.t See if FileHandle works lib/filetest.pm For "use filetest" lib/filetest.t See if filetest works -lib/FindBin.pm Find name of currently executing program -lib/FindBin.t See if FindBin works lib/Getopt/Std.pm Fetch command options (getopt, getopts) lib/Getopt/Std.t See if Getopt::Std and Getopt::Long work lib/h2ph.t See if h2ph works like it should @@ -4669,6 +4806,7 @@ lib/perl5db/t/EnableModule.pm Tests for the Perl debugger lib/perl5db/t/eval-line-bug Tests for the Perl debugger lib/perl5db/t/fact Tests for the Perl debugger lib/perl5db/t/filename-line-breakpoint Tests for the Perl debugger +lib/perl5db/t/gh-17660 Tests for the Perl debugger lib/perl5db/t/load-modules Tests for the Perl debugger lib/perl5db/t/lsub-n Test script used by perl5db.t lib/perl5db/t/lvalue-bug Tests for the Perl debugger @@ -4701,10 +4839,7 @@ lib/perl5db/t/uncalled-subroutine Tests for the Perl debugger lib/perl5db/t/with-subroutine Tests for the Perl debugger lib/perlbug.t Tests for the Perl bug reporter lib/PerlIO.pm PerlIO support module -lib/Pod/t/InputObjects.t See if Pod::InputObjects works -lib/Pod/t/Select.t See if Pod::Select works lib/Pod/t/Usage.t See if Pod::Usage works -lib/Pod/t/utils.t Test for Pod::ParseUtils lib/SelectSaver.pm Enforce proper select scoping lib/SelectSaver.t See if SelectSaver works lib/sigtrap.pm For trapping an abort and giving traceback @@ -4744,582 +4879,65 @@ lib/Unicode/README Explanation what happened to lib/unicode. lib/Unicode/UCD.pm Unicode character database lib/Unicode/UCD.t See if Unicode character database works lib/unicore/ArabicShaping.txt Unicode character database -lib/unicore/auxiliary/GCBTest.txt Unicode character database -lib/unicore/auxiliary/GraphemeBreakProperty.txt Unicode character database -lib/unicore/auxiliary/LBTest.txt Unicode character database -lib/unicore/auxiliary/SBTest.txt Unicode character database -lib/unicore/auxiliary/SentenceBreakProperty.txt Unicode character database -lib/unicore/auxiliary/WBTest.txt Unicode character database -lib/unicore/auxiliary/WordBreakProperty.txt Unicode character database +lib/unicore/auxiliary/GCBTest.txt Unicode character database +lib/unicore/auxiliary/GraphemeBreakProperty.txt Unicode character database +lib/unicore/auxiliary/LBTest.txt Unicode character database +lib/unicore/auxiliary/SBTest.txt Unicode character database +lib/unicore/auxiliary/SentenceBreakProperty.txt Unicode character database +lib/unicore/auxiliary/WBTest.txt Unicode character database +lib/unicore/auxiliary/WordBreakProperty.txt Unicode character database lib/unicore/BidiBrackets.txt Unicode character database lib/unicore/BidiMirroring.txt Unicode character database lib/unicore/Blocks.txt Unicode character database lib/unicore/CaseFolding.txt Unicode character database lib/unicore/CJKRadicals.txt Unicode character database -lib/unicore/CombiningClass.pl Unicode character database -lib/unicore/CompositionExclusions.txt Unicode character database +lib/unicore/CompositionExclusions.txt Unicode character database lib/unicore/DAge.txt Unicode character database lib/unicore/DCoreProperties.txt Unicode character database -lib/unicore/Decomposition.pl Unicode character database -lib/unicore/DNormalizationProps.txt Unicode character database +lib/unicore/DNormalizationProps.txt Unicode character database lib/unicore/EastAsianWidth.txt Unicode character database -lib/unicore/EmojiData.txt Unicode character database +lib/unicore/emoji/emoji.txt Unicode character database lib/unicore/EmojiSources.txt Unicode character database -lib/unicore/EquivalentUnifiedIdeograph.txt Unicode character database -lib/unicore/extracted/DBidiClass.txt Unicode character database -lib/unicore/extracted/DBinaryProperties.txt Unicode character database -lib/unicore/extracted/DCombiningClass.txt Unicode character database -lib/unicore/extracted/DDecompositionType.txt Unicode character database -lib/unicore/extracted/DEastAsianWidth.txt Unicode character database -lib/unicore/extracted/DGeneralCategory.txt Unicode character database -lib/unicore/extracted/DJoinGroup.txt Unicode character database -lib/unicore/extracted/DJoinType.txt Unicode character database -lib/unicore/extracted/DLineBreak.txt Unicode character database -lib/unicore/extracted/DNumType.txt Unicode character database -lib/unicore/extracted/DNumValues.txt Unicode character database -lib/unicore/HangulSyllableType.txt Unicode character database -lib/unicore/Heavy.pl Unicode character database +lib/unicore/EquivalentUnifiedIdeograph.txt Unicode character database +lib/unicore/extracted/DBidiClass.txt Unicode character database +lib/unicore/extracted/DBinaryProperties.txt Unicode character database +lib/unicore/extracted/DCombiningClass.txt Unicode character database +lib/unicore/extracted/DDecompositionType.txt Unicode character database +lib/unicore/extracted/DEastAsianWidth.txt Unicode character database +lib/unicore/extracted/DGeneralCategory.txt Unicode character database +lib/unicore/extracted/DJoinGroup.txt Unicode character database +lib/unicore/extracted/DJoinType.txt Unicode character database +lib/unicore/extracted/DLineBreak.txt Unicode character database +lib/unicore/extracted/DNumType.txt Unicode character database +lib/unicore/extracted/DNumValues.txt Unicode character database +lib/unicore/HangulSyllableType.txt Unicode character database +lib/unicore/IdStatus.txt Unicode UTS 39 database +lib/unicore/IdType.txt Unicode UTS 39 database lib/unicore/Index.txt Unicode character database -lib/unicore/IndicPositionalCategory.txt Unicode character database -lib/unicore/IndicSyllabicCategory.txt Unicode character database +lib/unicore/IndicPositionalCategory.txt Unicode character database +lib/unicore/IndicSyllabicCategory.txt Unicode character database lib/unicore/Jamo.txt Unicode character database -lib/unicore/lib/Age/NA.pl Unicode character database -lib/unicore/lib/Age/V100.pl Unicode character database -lib/unicore/lib/Age/V11.pl Unicode character database -lib/unicore/lib/Age/V110.pl Unicode character database -lib/unicore/lib/Age/V120.pl Unicode character database -lib/unicore/lib/Age/V20.pl Unicode character database -lib/unicore/lib/Age/V30.pl Unicode character database -lib/unicore/lib/Age/V31.pl Unicode character database -lib/unicore/lib/Age/V32.pl Unicode character database -lib/unicore/lib/Age/V40.pl Unicode character database -lib/unicore/lib/Age/V41.pl Unicode character database -lib/unicore/lib/Age/V50.pl Unicode character database -lib/unicore/lib/Age/V51.pl Unicode character database -lib/unicore/lib/Age/V52.pl Unicode character database -lib/unicore/lib/Age/V60.pl Unicode character database -lib/unicore/lib/Age/V61.pl Unicode character database -lib/unicore/lib/Age/V70.pl Unicode character database -lib/unicore/lib/Age/V80.pl Unicode character database -lib/unicore/lib/Age/V90.pl Unicode character database -lib/unicore/lib/Alpha/Y.pl Unicode character database -lib/unicore/lib/Bc/AL.pl Unicode character database -lib/unicore/lib/Bc/AN.pl Unicode character database -lib/unicore/lib/Bc/B.pl Unicode character database -lib/unicore/lib/Bc/BN.pl Unicode character database -lib/unicore/lib/Bc/CS.pl Unicode character database -lib/unicore/lib/Bc/EN.pl Unicode character database -lib/unicore/lib/Bc/ES.pl Unicode character database -lib/unicore/lib/Bc/ET.pl Unicode character database -lib/unicore/lib/Bc/L.pl Unicode character database -lib/unicore/lib/Bc/NSM.pl Unicode character database -lib/unicore/lib/Bc/ON.pl Unicode character database -lib/unicore/lib/Bc/R.pl Unicode character database -lib/unicore/lib/Bc/WS.pl Unicode character database -lib/unicore/lib/BidiC/Y.pl Unicode character database -lib/unicore/lib/BidiM/Y.pl Unicode character database -lib/unicore/lib/Blk/NB.pl Unicode character database -lib/unicore/lib/Bpt/C.pl Unicode character database -lib/unicore/lib/Bpt/N.pl Unicode character database -lib/unicore/lib/Bpt/O.pl Unicode character database -lib/unicore/lib/Cased/Y.pl Unicode character database -lib/unicore/lib/Ccc/A.pl Unicode character database -lib/unicore/lib/Ccc/AL.pl Unicode character database -lib/unicore/lib/Ccc/AR.pl Unicode character database -lib/unicore/lib/Ccc/ATAR.pl Unicode character database -lib/unicore/lib/Ccc/B.pl Unicode character database -lib/unicore/lib/Ccc/BR.pl Unicode character database -lib/unicore/lib/Ccc/DB.pl Unicode character database -lib/unicore/lib/Ccc/NK.pl Unicode character database -lib/unicore/lib/Ccc/NR.pl Unicode character database -lib/unicore/lib/Ccc/OV.pl Unicode character database -lib/unicore/lib/Ccc/VR.pl Unicode character database -lib/unicore/lib/CE/Y.pl Unicode character database -lib/unicore/lib/CI/Y.pl Unicode character database -lib/unicore/lib/CompEx/Y.pl Unicode character database -lib/unicore/lib/CWCF/Y.pl Unicode character database -lib/unicore/lib/CWCM/Y.pl Unicode character database -lib/unicore/lib/CWKCF/Y.pl Unicode character database -lib/unicore/lib/CWL/Y.pl Unicode character database -lib/unicore/lib/CWT/Y.pl Unicode character database -lib/unicore/lib/CWU/Y.pl Unicode character database -lib/unicore/lib/Dash/Y.pl Unicode character database -lib/unicore/lib/Dep/Y.pl Unicode character database -lib/unicore/lib/DI/Y.pl Unicode character database -lib/unicore/lib/Dia/Y.pl Unicode character database -lib/unicore/lib/Dt/Com.pl Unicode character database -lib/unicore/lib/Dt/Enc.pl Unicode character database -lib/unicore/lib/Dt/Fin.pl Unicode character database -lib/unicore/lib/Dt/Font.pl Unicode character database -lib/unicore/lib/Dt/Init.pl Unicode character database -lib/unicore/lib/Dt/Iso.pl Unicode character database -lib/unicore/lib/Dt/Med.pl Unicode character database -lib/unicore/lib/Dt/Nar.pl Unicode character database -lib/unicore/lib/Dt/Nb.pl Unicode character database -lib/unicore/lib/Dt/NonCanon.pl Unicode character database -lib/unicore/lib/Dt/Sqr.pl Unicode character database -lib/unicore/lib/Dt/Sub.pl Unicode character database -lib/unicore/lib/Dt/Sup.pl Unicode character database -lib/unicore/lib/Dt/Vert.pl Unicode character database -lib/unicore/lib/Ea/A.pl Unicode character database -lib/unicore/lib/Ea/H.pl Unicode character database -lib/unicore/lib/Ea/N.pl Unicode character database -lib/unicore/lib/Ea/Na.pl Unicode character database -lib/unicore/lib/Ea/W.pl Unicode character database -lib/unicore/lib/Ext/Y.pl Unicode character database -lib/unicore/lib/Gc/C.pl Unicode character database -lib/unicore/lib/Gc/Cf.pl Unicode character database -lib/unicore/lib/Gc/Cn.pl Unicode character database -lib/unicore/lib/Gc/L.pl Unicode character database -lib/unicore/lib/Gc/LC.pl Unicode character database -lib/unicore/lib/Gc/Ll.pl Unicode character database -lib/unicore/lib/Gc/Lm.pl Unicode character database -lib/unicore/lib/Gc/Lo.pl Unicode character database -lib/unicore/lib/Gc/Lu.pl Unicode character database -lib/unicore/lib/Gc/M.pl Unicode character database -lib/unicore/lib/Gc/Mc.pl Unicode character database -lib/unicore/lib/Gc/Me.pl Unicode character database -lib/unicore/lib/Gc/Mn.pl Unicode character database -lib/unicore/lib/Gc/N.pl Unicode character database -lib/unicore/lib/Gc/Nd.pl Unicode character database -lib/unicore/lib/Gc/Nl.pl Unicode character database -lib/unicore/lib/Gc/No.pl Unicode character database -lib/unicore/lib/Gc/P.pl Unicode character database -lib/unicore/lib/Gc/Pc.pl Unicode character database -lib/unicore/lib/Gc/Pd.pl Unicode character database -lib/unicore/lib/Gc/Pe.pl Unicode character database -lib/unicore/lib/Gc/Pf.pl Unicode character database -lib/unicore/lib/Gc/Pi.pl Unicode character database -lib/unicore/lib/Gc/Po.pl Unicode character database -lib/unicore/lib/Gc/Ps.pl Unicode character database -lib/unicore/lib/Gc/S.pl Unicode character database -lib/unicore/lib/Gc/Sc.pl Unicode character database -lib/unicore/lib/Gc/Sk.pl Unicode character database -lib/unicore/lib/Gc/Sm.pl Unicode character database -lib/unicore/lib/Gc/So.pl Unicode character database -lib/unicore/lib/Gc/Z.pl Unicode character database -lib/unicore/lib/Gc/Zs.pl Unicode character database -lib/unicore/lib/GCB/CN.pl Unicode character database -lib/unicore/lib/GCB/EX.pl Unicode character database -lib/unicore/lib/GCB/LV.pl Unicode character database -lib/unicore/lib/GCB/LVT.pl Unicode character database -lib/unicore/lib/GCB/PP.pl Unicode character database -lib/unicore/lib/GCB/SM.pl Unicode character database -lib/unicore/lib/GCB/XX.pl Unicode character database -lib/unicore/lib/GrBase/Y.pl Unicode character database -lib/unicore/lib/GrExt/Y.pl Unicode character database -lib/unicore/lib/Hex/Y.pl Unicode character database -lib/unicore/lib/Hst/NA.pl Unicode character database -lib/unicore/lib/Hyphen/T.pl Unicode character database -lib/unicore/lib/IDC/Y.pl Unicode character database -lib/unicore/lib/Ideo/Y.pl Unicode character database -lib/unicore/lib/IDS/Y.pl Unicode character database -lib/unicore/lib/In/10_0.pl Unicode character database -lib/unicore/lib/In/11_0.pl Unicode character database -lib/unicore/lib/In/12_0.pl Unicode character database -lib/unicore/lib/In/12_1.pl Unicode character database -lib/unicore/lib/In/2_0.pl Unicode character database -lib/unicore/lib/In/2_1.pl Unicode character database -lib/unicore/lib/In/3_0.pl Unicode character database -lib/unicore/lib/In/3_1.pl Unicode character database -lib/unicore/lib/In/3_2.pl Unicode character database -lib/unicore/lib/In/4_0.pl Unicode character database -lib/unicore/lib/In/4_1.pl Unicode character database -lib/unicore/lib/In/5_0.pl Unicode character database -lib/unicore/lib/In/5_1.pl Unicode character database -lib/unicore/lib/In/5_2.pl Unicode character database -lib/unicore/lib/In/6_0.pl Unicode character database -lib/unicore/lib/In/6_1.pl Unicode character database -lib/unicore/lib/In/6_2.pl Unicode character database -lib/unicore/lib/In/6_3.pl Unicode character database -lib/unicore/lib/In/7_0.pl Unicode character database -lib/unicore/lib/In/8_0.pl Unicode character database -lib/unicore/lib/In/9_0.pl Unicode character database -lib/unicore/lib/InPC/Bottom.pl Unicode character database -lib/unicore/lib/InPC/Left.pl Unicode character database -lib/unicore/lib/InPC/LeftAndR.pl Unicode character database -lib/unicore/lib/InPC/NA.pl Unicode character database -lib/unicore/lib/InPC/Overstru.pl Unicode character database -lib/unicore/lib/InPC/Right.pl Unicode character database -lib/unicore/lib/InPC/Top.pl Unicode character database -lib/unicore/lib/InPC/TopAndBo.pl Unicode character database -lib/unicore/lib/InPC/TopAndL2.pl Unicode character database -lib/unicore/lib/InPC/TopAndLe.pl Unicode character database -lib/unicore/lib/InPC/TopAndRi.pl Unicode character database -lib/unicore/lib/InPC/VisualOr.pl Unicode character database -lib/unicore/lib/InSC/Avagraha.pl Unicode character database -lib/unicore/lib/InSC/Bindu.pl Unicode character database -lib/unicore/lib/InSC/Cantilla.pl Unicode character database -lib/unicore/lib/InSC/Consona2.pl Unicode character database -lib/unicore/lib/InSC/Consona3.pl Unicode character database -lib/unicore/lib/InSC/Consona4.pl Unicode character database -lib/unicore/lib/InSC/Consona5.pl Unicode character database -lib/unicore/lib/InSC/Consona6.pl Unicode character database -lib/unicore/lib/InSC/Consona7.pl Unicode character database -lib/unicore/lib/InSC/Consonan.pl Unicode character database -lib/unicore/lib/InSC/Invisibl.pl Unicode character database -lib/unicore/lib/InSC/Nukta.pl Unicode character database -lib/unicore/lib/InSC/Number.pl Unicode character database -lib/unicore/lib/InSC/Other.pl Unicode character database -lib/unicore/lib/InSC/PureKill.pl Unicode character database -lib/unicore/lib/InSC/Syllable.pl Unicode character database -lib/unicore/lib/InSC/ToneMark.pl Unicode character database -lib/unicore/lib/InSC/Virama.pl Unicode character database -lib/unicore/lib/InSC/Visarga.pl Unicode character database -lib/unicore/lib/InSC/Vowel.pl Unicode character database -lib/unicore/lib/InSC/VowelDep.pl Unicode character database -lib/unicore/lib/InSC/VowelInd.pl Unicode character database -lib/unicore/lib/Jg/Ain.pl Unicode character database -lib/unicore/lib/Jg/Alef.pl Unicode character database -lib/unicore/lib/Jg/Beh.pl Unicode character database -lib/unicore/lib/Jg/Dal.pl Unicode character database -lib/unicore/lib/Jg/FarsiYeh.pl Unicode character database -lib/unicore/lib/Jg/Feh.pl Unicode character database -lib/unicore/lib/Jg/Gaf.pl Unicode character database -lib/unicore/lib/Jg/Hah.pl Unicode character database -lib/unicore/lib/Jg/HanifiRo.pl Unicode character database -lib/unicore/lib/Jg/Kaf.pl Unicode character database -lib/unicore/lib/Jg/Lam.pl Unicode character database -lib/unicore/lib/Jg/NoJoinin.pl Unicode character database -lib/unicore/lib/Jg/Qaf.pl Unicode character database -lib/unicore/lib/Jg/Reh.pl Unicode character database -lib/unicore/lib/Jg/Sad.pl Unicode character database -lib/unicore/lib/Jg/Seen.pl Unicode character database -lib/unicore/lib/Jg/Waw.pl Unicode character database -lib/unicore/lib/Jg/Yeh.pl Unicode character database -lib/unicore/lib/Jt/C.pl Unicode character database -lib/unicore/lib/Jt/D.pl Unicode character database -lib/unicore/lib/Jt/L.pl Unicode character database -lib/unicore/lib/Jt/R.pl Unicode character database -lib/unicore/lib/Jt/T.pl Unicode character database -lib/unicore/lib/Jt/U.pl Unicode character database -lib/unicore/lib/Lb/AI.pl Unicode character database -lib/unicore/lib/Lb/AL.pl Unicode character database -lib/unicore/lib/Lb/BA.pl Unicode character database -lib/unicore/lib/Lb/BB.pl Unicode character database -lib/unicore/lib/Lb/CJ.pl Unicode character database -lib/unicore/lib/Lb/CL.pl Unicode character database -lib/unicore/lib/Lb/CM.pl Unicode character database -lib/unicore/lib/Lb/EB.pl Unicode character database -lib/unicore/lib/Lb/EX.pl Unicode character database -lib/unicore/lib/Lb/GL.pl Unicode character database -lib/unicore/lib/Lb/ID.pl Unicode character database -lib/unicore/lib/Lb/IN.pl Unicode character database -lib/unicore/lib/Lb/IS.pl Unicode character database -lib/unicore/lib/Lb/NS.pl Unicode character database -lib/unicore/lib/Lb/NU.pl Unicode character database -lib/unicore/lib/Lb/OP.pl Unicode character database -lib/unicore/lib/Lb/PO.pl Unicode character database -lib/unicore/lib/Lb/PR.pl Unicode character database -lib/unicore/lib/Lb/QU.pl Unicode character database -lib/unicore/lib/Lb/SA.pl Unicode character database -lib/unicore/lib/Lb/XX.pl Unicode character database -lib/unicore/lib/Lower/Y.pl Unicode character database -lib/unicore/lib/Math/Y.pl Unicode character database -lib/unicore/lib/NFCQC/M.pl Unicode character database -lib/unicore/lib/NFCQC/Y.pl Unicode character database -lib/unicore/lib/NFDQC/N.pl Unicode character database -lib/unicore/lib/NFDQC/Y.pl Unicode character database -lib/unicore/lib/NFKCQC/N.pl Unicode character database -lib/unicore/lib/NFKCQC/Y.pl Unicode character database -lib/unicore/lib/NFKDQC/N.pl Unicode character database -lib/unicore/lib/NFKDQC/Y.pl Unicode character database -lib/unicore/lib/Nt/Di.pl Unicode character database -lib/unicore/lib/Nt/None.pl Unicode character database -lib/unicore/lib/Nt/Nu.pl Unicode character database -lib/unicore/lib/Nv/0.pl Unicode character database -lib/unicore/lib/Nv/1.pl Unicode character database -lib/unicore/lib/Nv/10.pl Unicode character database -lib/unicore/lib/Nv/100.pl Unicode character database -lib/unicore/lib/Nv/1000.pl Unicode character database -lib/unicore/lib/Nv/10000.pl Unicode character database -lib/unicore/lib/Nv/100000.pl Unicode character database -lib/unicore/lib/Nv/11.pl Unicode character database -lib/unicore/lib/Nv/12.pl Unicode character database -lib/unicore/lib/Nv/13.pl Unicode character database -lib/unicore/lib/Nv/14.pl Unicode character database -lib/unicore/lib/Nv/15.pl Unicode character database -lib/unicore/lib/Nv/16.pl Unicode character database -lib/unicore/lib/Nv/17.pl Unicode character database -lib/unicore/lib/Nv/18.pl Unicode character database -lib/unicore/lib/Nv/19.pl Unicode character database -lib/unicore/lib/Nv/1_16.pl Unicode character database -lib/unicore/lib/Nv/1_2.pl Unicode character database -lib/unicore/lib/Nv/1_3.pl Unicode character database -lib/unicore/lib/Nv/1_4.pl Unicode character database -lib/unicore/lib/Nv/1_6.pl Unicode character database -lib/unicore/lib/Nv/1_8.pl Unicode character database -lib/unicore/lib/Nv/2.pl Unicode character database -lib/unicore/lib/Nv/20.pl Unicode character database -lib/unicore/lib/Nv/200.pl Unicode character database -lib/unicore/lib/Nv/2000.pl Unicode character database -lib/unicore/lib/Nv/20000.pl Unicode character database -lib/unicore/lib/Nv/2_3.pl Unicode character database -lib/unicore/lib/Nv/3.pl Unicode character database -lib/unicore/lib/Nv/30.pl Unicode character database -lib/unicore/lib/Nv/300.pl Unicode character database -lib/unicore/lib/Nv/3000.pl Unicode character database -lib/unicore/lib/Nv/30000.pl Unicode character database -lib/unicore/lib/Nv/3_16.pl Unicode character database -lib/unicore/lib/Nv/3_4.pl Unicode character database -lib/unicore/lib/Nv/4.pl Unicode character database -lib/unicore/lib/Nv/40.pl Unicode character database -lib/unicore/lib/Nv/400.pl Unicode character database -lib/unicore/lib/Nv/4000.pl Unicode character database -lib/unicore/lib/Nv/40000.pl Unicode character database -lib/unicore/lib/Nv/5.pl Unicode character database -lib/unicore/lib/Nv/50.pl Unicode character database -lib/unicore/lib/Nv/500.pl Unicode character database -lib/unicore/lib/Nv/5000.pl Unicode character database -lib/unicore/lib/Nv/50000.pl Unicode character database -lib/unicore/lib/Nv/6.pl Unicode character database -lib/unicore/lib/Nv/60.pl Unicode character database -lib/unicore/lib/Nv/600.pl Unicode character database -lib/unicore/lib/Nv/6000.pl Unicode character database -lib/unicore/lib/Nv/60000.pl Unicode character database -lib/unicore/lib/Nv/7.pl Unicode character database -lib/unicore/lib/Nv/70.pl Unicode character database -lib/unicore/lib/Nv/700.pl Unicode character database -lib/unicore/lib/Nv/7000.pl Unicode character database -lib/unicore/lib/Nv/70000.pl Unicode character database -lib/unicore/lib/Nv/8.pl Unicode character database -lib/unicore/lib/Nv/80.pl Unicode character database -lib/unicore/lib/Nv/800.pl Unicode character database -lib/unicore/lib/Nv/8000.pl Unicode character database -lib/unicore/lib/Nv/80000.pl Unicode character database -lib/unicore/lib/Nv/9.pl Unicode character database -lib/unicore/lib/Nv/90.pl Unicode character database -lib/unicore/lib/Nv/900.pl Unicode character database -lib/unicore/lib/Nv/9000.pl Unicode character database -lib/unicore/lib/Nv/90000.pl Unicode character database -lib/unicore/lib/PatSyn/Y.pl Unicode character database -lib/unicore/lib/PCM/Y.pl Unicode character database -lib/unicore/lib/Perl/_PerlAny.pl Unicode character database -lib/unicore/lib/Perl/_PerlCh2.pl Unicode character database -lib/unicore/lib/Perl/_PerlCha.pl Unicode character database -lib/unicore/lib/Perl/_PerlFol.pl Unicode character database -lib/unicore/lib/Perl/_PerlIDC.pl Unicode character database -lib/unicore/lib/Perl/_PerlIDS.pl Unicode character database -lib/unicore/lib/Perl/_PerlIsI.pl Unicode character database -lib/unicore/lib/Perl/_PerlNch.pl Unicode character database -lib/unicore/lib/Perl/_PerlNon.pl Unicode character database -lib/unicore/lib/Perl/_PerlPat.pl Unicode character database -lib/unicore/lib/Perl/_PerlPr2.pl Unicode character database -lib/unicore/lib/Perl/_PerlPro.pl Unicode character database -lib/unicore/lib/Perl/_PerlQuo.pl Unicode character database -lib/unicore/lib/Perl/Alnum.pl Unicode character database -lib/unicore/lib/Perl/Assigned.pl Unicode character database -lib/unicore/lib/Perl/Blank.pl Unicode character database -lib/unicore/lib/Perl/Graph.pl Unicode character database -lib/unicore/lib/Perl/PerlWord.pl Unicode character database -lib/unicore/lib/Perl/PosixPun.pl Unicode character database -lib/unicore/lib/Perl/Print.pl Unicode character database -lib/unicore/lib/Perl/SpacePer.pl Unicode character database -lib/unicore/lib/Perl/Title.pl Unicode character database -lib/unicore/lib/Perl/Word.pl Unicode character database -lib/unicore/lib/Perl/XPosixPu.pl Unicode character database -lib/unicore/lib/QMark/Y.pl Unicode character database -lib/unicore/lib/SB/AT.pl Unicode character database -lib/unicore/lib/SB/CL.pl Unicode character database -lib/unicore/lib/SB/EX.pl Unicode character database -lib/unicore/lib/SB/FO.pl Unicode character database -lib/unicore/lib/SB/LE.pl Unicode character database -lib/unicore/lib/SB/LO.pl Unicode character database -lib/unicore/lib/SB/NU.pl Unicode character database -lib/unicore/lib/SB/SC.pl Unicode character database -lib/unicore/lib/SB/Sp.pl Unicode character database -lib/unicore/lib/SB/ST.pl Unicode character database -lib/unicore/lib/SB/UP.pl Unicode character database -lib/unicore/lib/SB/XX.pl Unicode character database -lib/unicore/lib/Sc/Arab.pl Unicode character database -lib/unicore/lib/Sc/Armn.pl Unicode character database -lib/unicore/lib/Sc/Beng.pl Unicode character database -lib/unicore/lib/Sc/Cprt.pl Unicode character database -lib/unicore/lib/Sc/Cyrl.pl Unicode character database -lib/unicore/lib/Sc/Deva.pl Unicode character database -lib/unicore/lib/Sc/Dupl.pl Unicode character database -lib/unicore/lib/Sc/Geor.pl Unicode character database -lib/unicore/lib/Sc/Glag.pl Unicode character database -lib/unicore/lib/Sc/Gong.pl Unicode character database -lib/unicore/lib/Sc/Gonm.pl Unicode character database -lib/unicore/lib/Sc/Gran.pl Unicode character database -lib/unicore/lib/Sc/Grek.pl Unicode character database -lib/unicore/lib/Sc/Gujr.pl Unicode character database -lib/unicore/lib/Sc/Guru.pl Unicode character database -lib/unicore/lib/Sc/Han.pl Unicode character database -lib/unicore/lib/Sc/Hang.pl Unicode character database -lib/unicore/lib/Sc/Hira.pl Unicode character database -lib/unicore/lib/Sc/Kana.pl Unicode character database -lib/unicore/lib/Sc/Knda.pl Unicode character database -lib/unicore/lib/Sc/Latn.pl Unicode character database -lib/unicore/lib/Sc/Limb.pl Unicode character database -lib/unicore/lib/Sc/Linb.pl Unicode character database -lib/unicore/lib/Sc/Mlym.pl Unicode character database -lib/unicore/lib/Sc/Mong.pl Unicode character database -lib/unicore/lib/Sc/Mult.pl Unicode character database -lib/unicore/lib/Sc/Orya.pl Unicode character database -lib/unicore/lib/Sc/Sinh.pl Unicode character database -lib/unicore/lib/Sc/Syrc.pl Unicode character database -lib/unicore/lib/Sc/Taml.pl Unicode character database -lib/unicore/lib/Sc/Telu.pl Unicode character database -lib/unicore/lib/Sc/Zinh.pl Unicode character database -lib/unicore/lib/Sc/Zyyy.pl Unicode character database -lib/unicore/lib/Scx/Adlm.pl Unicode character database -lib/unicore/lib/Scx/Arab.pl Unicode character database -lib/unicore/lib/Scx/Armn.pl Unicode character database -lib/unicore/lib/Scx/Beng.pl Unicode character database -lib/unicore/lib/Scx/Bhks.pl Unicode character database -lib/unicore/lib/Scx/Bopo.pl Unicode character database -lib/unicore/lib/Scx/Cakm.pl Unicode character database -lib/unicore/lib/Scx/Cham.pl Unicode character database -lib/unicore/lib/Scx/Copt.pl Unicode character database -lib/unicore/lib/Scx/Cprt.pl Unicode character database -lib/unicore/lib/Scx/Cyrl.pl Unicode character database -lib/unicore/lib/Scx/Deva.pl Unicode character database -lib/unicore/lib/Scx/Dupl.pl Unicode character database -lib/unicore/lib/Scx/Ethi.pl Unicode character database -lib/unicore/lib/Scx/Geor.pl Unicode character database -lib/unicore/lib/Scx/Glag.pl Unicode character database -lib/unicore/lib/Scx/Gong.pl Unicode character database -lib/unicore/lib/Scx/Gonm.pl Unicode character database -lib/unicore/lib/Scx/Gran.pl Unicode character database -lib/unicore/lib/Scx/Grek.pl Unicode character database -lib/unicore/lib/Scx/Gujr.pl Unicode character database -lib/unicore/lib/Scx/Guru.pl Unicode character database -lib/unicore/lib/Scx/Han.pl Unicode character database -lib/unicore/lib/Scx/Hang.pl Unicode character database -lib/unicore/lib/Scx/Hebr.pl Unicode character database -lib/unicore/lib/Scx/Hira.pl Unicode character database -lib/unicore/lib/Scx/Hmng.pl Unicode character database -lib/unicore/lib/Scx/Hmnp.pl Unicode character database -lib/unicore/lib/Scx/Kana.pl Unicode character database -lib/unicore/lib/Scx/Khar.pl Unicode character database -lib/unicore/lib/Scx/Khmr.pl Unicode character database -lib/unicore/lib/Scx/Khoj.pl Unicode character database -lib/unicore/lib/Scx/Knda.pl Unicode character database -lib/unicore/lib/Scx/Kthi.pl Unicode character database -lib/unicore/lib/Scx/Lana.pl Unicode character database -lib/unicore/lib/Scx/Lao.pl Unicode character database -lib/unicore/lib/Scx/Latn.pl Unicode character database -lib/unicore/lib/Scx/Limb.pl Unicode character database -lib/unicore/lib/Scx/Lina.pl Unicode character database -lib/unicore/lib/Scx/Linb.pl Unicode character database -lib/unicore/lib/Scx/Mlym.pl Unicode character database -lib/unicore/lib/Scx/Mong.pl Unicode character database -lib/unicore/lib/Scx/Mult.pl Unicode character database -lib/unicore/lib/Scx/Mymr.pl Unicode character database -lib/unicore/lib/Scx/Nand.pl Unicode character database -lib/unicore/lib/Scx/Orya.pl Unicode character database -lib/unicore/lib/Scx/Phlp.pl Unicode character database -lib/unicore/lib/Scx/Rohg.pl Unicode character database -lib/unicore/lib/Scx/Shrd.pl Unicode character database -lib/unicore/lib/Scx/Sind.pl Unicode character database -lib/unicore/lib/Scx/Sinh.pl Unicode character database -lib/unicore/lib/Scx/Syrc.pl Unicode character database -lib/unicore/lib/Scx/Tagb.pl Unicode character database -lib/unicore/lib/Scx/Takr.pl Unicode character database -lib/unicore/lib/Scx/Talu.pl Unicode character database -lib/unicore/lib/Scx/Taml.pl Unicode character database -lib/unicore/lib/Scx/Telu.pl Unicode character database -lib/unicore/lib/Scx/Thaa.pl Unicode character database -lib/unicore/lib/Scx/Tibt.pl Unicode character database -lib/unicore/lib/Scx/Tirh.pl Unicode character database -lib/unicore/lib/Scx/Xsux.pl Unicode character database -lib/unicore/lib/Scx/Yi.pl Unicode character database -lib/unicore/lib/Scx/Zinh.pl Unicode character database -lib/unicore/lib/Scx/Zyyy.pl Unicode character database -lib/unicore/lib/Scx/Zzzz.pl Unicode character database -lib/unicore/lib/SD/Y.pl Unicode character database -lib/unicore/lib/STerm/Y.pl Unicode character database -lib/unicore/lib/Term/Y.pl Unicode character database -lib/unicore/lib/UIdeo/Y.pl Unicode character database -lib/unicore/lib/Upper/Y.pl Unicode character database -lib/unicore/lib/Vo/R.pl Unicode character database -lib/unicore/lib/Vo/Tr.pl Unicode character database -lib/unicore/lib/Vo/Tu.pl Unicode character database -lib/unicore/lib/Vo/U.pl Unicode character database -lib/unicore/lib/WB/EX.pl Unicode character database -lib/unicore/lib/WB/Extend.pl Unicode character database -lib/unicore/lib/WB/FO.pl Unicode character database -lib/unicore/lib/WB/HL.pl Unicode character database -lib/unicore/lib/WB/KA.pl Unicode character database -lib/unicore/lib/WB/LE.pl Unicode character database -lib/unicore/lib/WB/MB.pl Unicode character database -lib/unicore/lib/WB/ML.pl Unicode character database -lib/unicore/lib/WB/MN.pl Unicode character database -lib/unicore/lib/WB/NU.pl Unicode character database -lib/unicore/lib/WB/WSegSpac.pl Unicode character database -lib/unicore/lib/WB/XX.pl Unicode character database -lib/unicore/lib/XIDC/Y.pl Unicode character database -lib/unicore/lib/XIDS/Y.pl Unicode character database lib/unicore/LineBreak.txt Unicode character database lib/unicore/Makefile Unicode character database lib/unicore/mktables Unicode character database generator -lib/unicore/mktables.lst Unicode character database -lib/unicore/Name.pl Unicode character database -lib/unicore/Name.pm Unicode character database lib/unicore/NameAliases.txt Unicode character database lib/unicore/NamedSequences.txt Unicode character database lib/unicore/NamedSqProv.txt Unicode character database lib/unicore/NamesList.txt Unicode character database -lib/unicore/NormalizationCorrections.txt Unicode character database +lib/unicore/NormalizationCorrections.txt Unicode character database lib/unicore/PropertyAliases.txt Unicode character database lib/unicore/PropList.txt Unicode character database -lib/unicore/PropValueAliases.txt Unicode character database +lib/unicore/PropValueAliases.txt Unicode character database lib/unicore/README.perl Unicode character database lib/unicore/ReadMe.txt Unicode character database info -lib/unicore/ScriptExtensions.txt Unicode character database +lib/unicore/ScriptExtensions.txt Unicode character database lib/unicore/Scripts.txt Unicode character database lib/unicore/SpecialCasing.txt Unicode character database -lib/unicore/StandardizedVariants.txt Unicode character database -lib/unicore/TestProp.pl Unicode character database -lib/unicore/To/_PerlLB.pl Unicode character database -lib/unicore/To/_PerlSCX.pl Unicode character database -lib/unicore/To/Age.pl Unicode character database -lib/unicore/To/Bc.pl Unicode character database -lib/unicore/To/Bmg.pl Unicode character database -lib/unicore/To/Bpb.pl Unicode character database -lib/unicore/To/Bpt.pl Unicode character database -lib/unicore/To/Cf.pl Unicode character database -lib/unicore/To/Digit.pl Unicode character database -lib/unicore/To/Ea.pl Unicode character database -lib/unicore/To/EqUIdeo.pl Unicode character database -lib/unicore/To/Fold.pl Unicode character database -lib/unicore/To/Gc.pl Unicode character database -lib/unicore/To/GCB.pl Unicode character database -lib/unicore/To/Hst.pl Unicode character database -lib/unicore/To/InPC.pl Unicode character database -lib/unicore/To/InSC.pl Unicode character database -lib/unicore/To/Isc.pl Unicode character database -lib/unicore/To/Jg.pl Unicode character database -lib/unicore/To/Jt.pl Unicode character database -lib/unicore/To/Lb.pl Unicode character database -lib/unicore/To/Lc.pl Unicode character database -lib/unicore/To/Lower.pl Unicode character database -lib/unicore/To/Na1.pl Unicode character database -lib/unicore/To/NameAlia.pl Unicode character database -lib/unicore/To/NFCQC.pl Unicode character database -lib/unicore/To/NFDQC.pl Unicode character database -lib/unicore/To/NFKCCF.pl Unicode character database -lib/unicore/To/NFKCQC.pl Unicode character database -lib/unicore/To/NFKDQC.pl Unicode character database -lib/unicore/To/Nt.pl Unicode character database -lib/unicore/To/Nv.pl Unicode character database -lib/unicore/To/PerlDeci.pl Unicode character database -lib/unicore/To/SB.pl Unicode character database -lib/unicore/To/Sc.pl Unicode character database -lib/unicore/To/Scx.pl Unicode character database -lib/unicore/To/Tc.pl Unicode character database -lib/unicore/To/Title.pl Unicode character database -lib/unicore/To/Uc.pl Unicode character database -lib/unicore/To/Upper.pl Unicode character database -lib/unicore/To/Vo.pl Unicode character database -lib/unicore/To/WB.pl Unicode character database -lib/unicore/UCD.pl Unicode character database +lib/unicore/StandardizedVariants.txt Unicode character database lib/unicore/uni_keywords.pl Indices into array in charclass_invlists.h lib/unicore/UnicodeData.txt Unicode character database lib/unicore/version The version of the Unicode -lib/unicore/VerticalOrientation.txt Unicode character database +lib/unicore/VerticalOrientation.txt Unicode character database lib/UNIVERSAL.pm Base class for ALL classes lib/User/grent.pm By-name interface to Perl's builtin getgr* lib/User/grent.t See if User::grwent works @@ -5327,7 +4945,6 @@ lib/User/pwent.pm By-name interface to Perl's builtin getpw* lib/User/pwent.t See if User::pwent works lib/utf8.pm Pragma to control Unicode support lib/utf8.t See if utf8 operations work -lib/utf8_heavy.pl Support routines for utf8 pragma lib/vars.pm Declare pseudo-imported global variables lib/vars.t See if "use vars" works lib/vars_carp.t See if "use vars" doesn't load Carp.pm per default @@ -5571,9 +5188,12 @@ pod/perl5263delta.pod Perl changes in version 5.26.3 pod/perl5280delta.pod Perl changes in version 5.28.0 pod/perl5281delta.pod Perl changes in version 5.28.1 pod/perl5282delta.pod Perl changes in version 5.28.2 +pod/perl5283delta.pod Perl changes in version 5.28.3 pod/perl5300delta.pod Perl changes in version 5.30.0 pod/perl5301delta.pod Perl changes in version 5.30.1 pod/perl5302delta.pod Perl changes in version 5.30.2 +pod/perl5303delta.pod Perl changes in version 5.30.3 +pod/perl5320delta.pod Perl changes in version 5.32.0 pod/perl561delta.pod Perl changes in version 5.6.1 pod/perl56delta.pod Perl changes in version 5.6 pod/perl581delta.pod Perl changes in version 5.8.1 @@ -5613,6 +5233,7 @@ pod/perlfork.pod Perl fork() information pod/perlform.pod Perl formats pod/perlfunc.pod Perl built-in functions pod/perlgit.pod Using git with the Perl repository +pod/perlgov.pod Perl Rules of Governance pod/perlgpl.pod GNU General Public License pod/perlguts.pod Perl internal functions for those doing extensions pod/perlhack.pod Perl hackers guide @@ -5658,6 +5279,7 @@ pod/perlreref.pod Perl regular expressions quick reference pod/perlretut.pod Perl regular expressions tutorial pod/perlrun.pod Perl execution and options pod/perlsec.pod Perl security +pod/perlsecpolicy.pod Perl security report handling policy pod/perlsource.pod Guide to the Perl source tree pod/perlstyle.pod Perl style guide pod/perlsub.pod Perl subroutines @@ -5672,7 +5294,6 @@ pod/perlunicode.pod Perl Unicode support pod/perlunicook.pod Perl Unicode cookbook pod/perlunifaq.pod Perl Unicode FAQ pod/perluniintro.pod Perl Unicode introduction -pod/perluniprops.pod Index of Unicode properties in Perl pod/perlunitut.pod Perl Unicode tutorial pod/perlutil.pod utilities packaged with the Perl distribution pod/perlvar.pod Perl predefined variables @@ -5748,6 +5369,7 @@ Porting/release_announcement_template.txt Porting/release_managers_guide.pod Release Manager's Guide Porting/release_schedule.pod Schedule for future releases Porting/rt_list_patches A tool to help you apply patches from RT +Porting/security_template.pod Template for vulnerability announcements Porting/sort_perldiag.pl Keep our diagnostics orderly Porting/sync-with-cpan Sync with CPAN Porting/timecheck.c Test program for the 2038 fix @@ -5771,7 +5393,6 @@ README.aix Perl notes for AIX README.amiga Perl notes for AmigaOS README.android Perl notes for Android README.bs2000 Perl notes for POSIX-BC BS2000 -README.ce Perl notes for WinCE README.cn Perl for Simplified Chinese (in EUC-CN) README.cygwin Perl notes for Cygwin README.dos Perl notes for DOS @@ -5843,6 +5464,7 @@ runtests.SH A script that generates runtests sbox32_hash.h SBox hash code (32 Bit SBOX based hash function) scope.c Scope entry and exit code scope.h Scope entry and exit header +SECURITY.md Add Security Policy for GitHub stadtx_hash.h StadtX hash code (64 Bit fast hash function) sv.c Scalar value code sv.h Scalar value header @@ -5905,7 +5527,7 @@ t/base/rs.t See if record-read works t/base/term.t See if various terms work t/base/translate.t See if character set translation works t/base/while.t See if while work -t/benchmark/rt26188-speed-up-keys-on-empty-hash.t Benchmark if keys on empty hashes is fast enough +t/benchmark/gh7094-speed-up-keys-on-empty-hash.t Benchmark if keys on empty hashes is fast enough t/bigmem/hash.t Check hashing too large strings throws an exception t/bigmem/index.t Check that index() handles large offsets t/bigmem/pos.t Check that pos() handles large offsets @@ -5989,6 +5611,7 @@ t/io/tell.t See if file seeking works t/io/through.t See if pipe passes data intact t/io/utf8.t See if file seeking works t/japh/abigail.t Obscure tests +t/lib/CannotParse.pm For test case in op/require_errors.t t/lib/charnames/alias Tests of "use charnames" with aliases. t/lib/Cname.pm Test charnames in regexes (op/pat.t) t/lib/common.pl Helper for lib/{warnings,feature}.t @@ -6014,8 +5637,10 @@ t/lib/Devel/nodb.pm Module for t/run/switchd.t t/lib/Devel/switchd.pm Module for t/run/switchd.t t/lib/Devel/switchd_empty.pm Module for t/run/switchd.t t/lib/Devel/switchd_goto.pm Module for t/run/switchd.t +t/lib/feature/bits Tests for feature bit handling t/lib/feature/bundle Tests for feature bundles t/lib/feature/implicit Tests for implicit loading of feature.pm +t/lib/feature/indirect Tests for enabling/disabling indirect method calls t/lib/feature/nonesuch Tests for enabling/disabling nonexistent feature t/lib/feature/removed Tests for enabling/disabling removed feature t/lib/feature/say Tests for enabling/disabling say feature @@ -6051,7 +5676,6 @@ t/lib/warnings/9enabled Tests warnings t/lib/warnings/9uninit Tests "Use of uninitialized" warnings t/lib/warnings/av Tests for av.c for warnings.t t/lib/warnings/doio Tests for doio.c for warnings.t -t/lib/warnings/doop Tests for doop.c for warnings.t t/lib/warnings/gv Tests for gv.c for warnings.t t/lib/warnings/hv Tests for hv.c for warnings.t t/lib/warnings/malloc Tests for malloc.c for warnings.t @@ -6174,6 +5798,7 @@ t/op/chop.t See if chop works t/op/chr.t See if chr works t/op/closure.t See if closures work t/op/closure_test.pl Extra file for closure.t +t/op/cmpchain.t See if comparison chaining works t/op/concat2.t Tests too complex for concat.t t/op/cond.t See if conditional expressions work t/op/const-optree.t Tests for sub(){...} becoming constant @@ -6204,7 +5829,7 @@ t/op/exec.t See if exec, system and qx work t/op/exists_sub.t See if exists(&sub) works t/op/exp.t See if math functions work t/op/fh.t See if filehandles work -t/op/filehandle.t Tests for http://rt.perl.org/rt3/Ticket/Display.html?id=72586 +t/op/filehandle.t Tests for https://github.com/Perl/perl5/issues/10133 t/op/filetest.t See if file tests work t/op/filetest_stack_ok.t See if file tests leave their argument on the stack t/op/filetest_t.t See if -t file test works @@ -6236,6 +5861,7 @@ t/op/index.t See if index works t/op/index_thr.t See if index works in another thread t/op/infnan.t See if inf/nan work t/op/int.t See if int works +t/op/isa.t See if isa works t/op/join.t See if join works t/op/kill0.t See if kill works t/op/kill0_child Process tree script that is kill()ed @@ -6300,6 +5926,7 @@ t/op/runlevel.t See if die() works from perl_call_*() t/op/select.t See if 0- and 1-argument select works t/op/setpgrpstack.t See if setpgrp works t/op/sigdispatch.t See if signals are always dispatched +t/op/signame_canonical.t See if duplicate signal names always use the canonical name when the handler is invoked. t/op/signatures.t See if sub signatures work t/op/sigsystem.t See if system and SIGCHLD handlers play together nicely t/op/sleep.t See if sleep works @@ -6414,6 +6041,7 @@ t/porting/test_bootstrap.t Test that the instructions for test bootstrapping are t/porting/utils.t Check that utility scripts still compile t/re/alpha_assertions.t See if things like '(*postive_lookahed:...) work properly t/re/anyof.t See if bracketed char classes [...] compile properly +t/re/begin-once.t Checking that /o freeze a variable in a RegExp t/re/bigfuzzy_not_utf8.t Big and ugly tests not storable as UTF-8 t/re/charset.t See if regex modifiers like /d, /u work properly t/re/fold_grind.pl Core file to see if regex case folding works properly @@ -6531,7 +6159,6 @@ t/test_pl/tempfile.t Tests for the simple testing library t/thread_it.pl Run regression tests in a new thread t/uni/attrs.t See if Unicode attributes work t/uni/bless.t See if Unicode bless works -t/uni/cache.t See if Unicode swash caching works t/uni/caller.t See if Unicode doesn't get mangled in caller() t/uni/case.pl See if Unicode casing works t/uni/chomp.t See if Unicode chomp works @@ -6610,6 +6237,7 @@ utils/ptardiff.PL The ptardiff utility utils/ptargrep.PL The ptargrep utility utils/shasum.PL filter for computing SHA digests (analogous to md5sum) utils/splain.PL Stand-alone version of diagnostics.pm +utils/streamzip.PL utils/xsubpp.PL External subroutine preprocessor utils/zipdetails.PL display the internal structure of zip files vms/descrip_mms.template Template MM[SK] description file for build @@ -6638,17 +6266,8 @@ win32/bin/perlglob.pl Win32 globbing win32/bin/pl2bat.pl wrap perl scripts into batch files win32/bin/runperl.pl run perl script via batch file namesake win32/bin/search.pl Win32 port -win32/ce-helpers/cecopy-lib.pl WinCE port -win32/ce-helpers/comp.pl WinCE port -win32/ce-helpers/compile.bat WinCE port -win32/ce-helpers/compile-all.bat WinCE port -win32/ce-helpers/makedist.pl WinCE port -win32/ce-helpers/registry.bat WinCE port -win32/ce-helpers/sdsdkenv.bat WinCE port -win32/config.ce WinCE port win32/config.gc Win32 base line config.sh (MinGW build) win32/config.vc Win32 base line config.sh (Visual C++ build) -win32/config_H.ce WinCE port win32/config_H.gc Win32 config header (MinGW build) win32/config_h.PL Perl code to convert Win32 config.sh to config.h win32/config_H.vc Win32 config header (Visual C++ build) @@ -6665,32 +6284,24 @@ win32/include/sys/errno2.h Win32 port win32/include/sys/socket.h Win32 port win32/list_static_libs.pl prints libraries for static linking win32/Makefile Win32 makefile for NMAKE (Visual C++ build) -win32/Makefile.ce WinCE port win32/makefile.mk Win32 makefile for DMAKE (BC++, VC++ builds) -win32/perl.rc WinCE port win32/perlexe.ico perlexe.ico image file win32/perlexe.manifest Assembly manifest file win32/perlexe.rc associated perl binary with icon win32/perlglob.c Win32 port win32/perlhost.h Perl "host" implementation win32/perllib.c Win32 port -win32/perlmaince.c WinCE port win32/pod.mak Win32 port win32/runperl.c Win32 port -win32/vdir.h Perl "host" virtual directory manager for CE -win32/vmem.h Perl "host" memory manager for CE +win32/vdir.h Perl "host" virtual directory manager for Win32 +win32/vmem.h Perl "host" memory manager for Win32 win32/win32.c Win32 port win32/win32.h Win32 port -win32/win32ceio.c Win32/WinCE PerlIO layer support win32/win32io.c Win32 PerlIO layer support win32/win32iop.h Win32 port -win32/win32iop-o.h WinCE port win32/win32sck.c Win32 port win32/win32thread.c Win32 functions for threads win32/win32thread.h Win32 port mapping to threads -win32/wince.c WinCE port -win32/wince.h WinCE port -win32/wincesck.c WinCE port write_buildcustomize.pl Generate lib/buildcustomize.pl XSUB.h Include file for extension subroutines zaphod32_hash.h Zaphod32 hash code (32 bit fast hash function) diff --git a/gnu/usr.bin/perl/META.json b/gnu/usr.bin/perl/META.json index eb02af46b33..7ecc883b3fa 100644 --- a/gnu/usr.bin/perl/META.json +++ b/gnu/usr.bin/perl/META.json @@ -30,6 +30,7 @@ "dist/ExtUtils-CBuilder", "dist/ExtUtils-ParseXS", "dist/Filter-Simple", + "dist/FindBin", "dist/I18N-Collate", "dist/if", "dist/IO/", @@ -80,12 +81,14 @@ "dist/IO/t/cachepropagate-tcp.t", "dist/IO/t/cachepropagate-udp.t", "dist/IO/t/cachepropagate-unix.t", + "dist/IO/t/gh17447.t", "dist/IO/t/IO.t", "dist/IO/t/io_const.t", "dist/IO/t/io_dir.t", "dist/IO/t/io_dup.t", "dist/IO/t/io_file.t", "dist/IO/t/io_file_export.t", + "dist/IO/t/io_getline.t", "dist/IO/t/io_leak.t", "dist/IO/t/io_linenum.t", "dist/IO/t/io_multihomed.t", @@ -119,14 +122,14 @@ "bugtracker" : { "web" : "https://github.com/Perl/perl5/issues" }, - "homepage" : "http://www.perl.org/", + "homepage" : "https://www.perl.org/", "license" : [ - "http://dev.perl.org/licenses/" + "https://dev.perl.org/licenses/" ], "repository" : { "url" : "https://github.com/Perl/perl5" } }, - "version" : "5.030003", - "x_serialization_backend" : "JSON::PP version 4.02" + "version" : "5.032001", + "x_serialization_backend" : "JSON::PP version 4.04" } diff --git a/gnu/usr.bin/perl/META.yml b/gnu/usr.bin/perl/META.yml index 6fe3b2ce170..e6c80560faa 100644 --- a/gnu/usr.bin/perl/META.yml +++ b/gnu/usr.bin/perl/META.yml @@ -28,6 +28,7 @@ no_index: - dist/ExtUtils-CBuilder - dist/ExtUtils-ParseXS - dist/Filter-Simple + - dist/FindBin - dist/I18N-Collate - dist/if - dist/IO/ @@ -77,12 +78,14 @@ no_index: - dist/IO/t/cachepropagate-tcp.t - dist/IO/t/cachepropagate-udp.t - dist/IO/t/cachepropagate-unix.t + - dist/IO/t/gh17447.t - dist/IO/t/IO.t - dist/IO/t/io_const.t - dist/IO/t/io_dir.t - dist/IO/t/io_dup.t - dist/IO/t/io_file.t - dist/IO/t/io_file_export.t + - dist/IO/t/io_getline.t - dist/IO/t/io_leak.t - dist/IO/t/io_linenum.t - dist/IO/t/io_multihomed.t @@ -111,8 +114,8 @@ no_index: - vxs.inc resources: bugtracker: https://github.com/Perl/perl5/issues - homepage: http://www.perl.org/ - license: http://dev.perl.org/licenses/ + homepage: https://www.perl.org/ + license: https://dev.perl.org/licenses/ repository: https://github.com/Perl/perl5 -version: '5.030003' +version: '5.032001' x_serialization_backend: 'CPAN::Meta::YAML version 0.018' diff --git a/gnu/usr.bin/perl/Makefile.SH b/gnu/usr.bin/perl/Makefile.SH index 2a550ff706e..124db32a131 100644 --- a/gnu/usr.bin/perl/Makefile.SH +++ b/gnu/usr.bin/perl/Makefile.SH @@ -192,13 +192,14 @@ for f in $dynamic_ext; do esac done -: Prepare dependency lists for Makefile. +: Prepare dependency lists for Makefile. Non-Unix systems likely will also +: require changes in make_ext.pl dynamic_list=' ' dynamic_ext_re="lib/auto/re/re.$dlext" extra_dep=' +cpan/Pod-Simple/pm_to_blib: dist/if/pm_to_blib ext/Pod-Functions/pm_to_blib: cpan/Pod-Simple/pm_to_blib cpan/Pod-Escapes/pm_to_blib pod/perlfunc.pod cpan/IO-Compress/pm_to_blib: dist/lib/pm_to_blib -lib/auto/Term/ReadKey/ReadKey.so: lib/auto/Cwd/Cwd.so ' for f in $dynamic_ext; do : the dependency named here will never exist @@ -488,7 +489,7 @@ shextract=`SH_to_target $SH` ## In the following dollars and backticks do not need the extra backslash. $spitshell >>$Makefile <>$Makefile <<'!NO!SUBS!' -perltoc_pod_prereqs = extra.pods pod/perl5303delta.pod pod/perlapi.pod pod/perlintern.pod pod/perlmodlib.pod +perltoc_pod_prereqs = extra.pods pod/perl5321delta.pod pod/perlapi.pod pod/perlintern.pod pod/perlmodlib.pod pod/perluniprops.pod generated_pods = pod/perltoc.pod $(perltoc_pod_prereqs) generated_headers = uudmap.h bitcount.h mg_data.h @@ -647,16 +648,15 @@ $(MANIFEST_SRT): MANIFEST $(PERL_EXE) .PHONY: all utilities -# OpenBSD uses pre-generated lib/Config_git.pl and git_version.h files # Both git_version.h and lib/Config_git.pl are built # by make_patchnum.pl. -#git_version.h: lib/Config_git.pl -# -#lib/Config_git.pl: $(MINIPERL_EXE) make_patchnum.pl -# $(MINIPERL) make_patchnum.pl -# -## make sure that we recompile perl.c if the git version changes -#perl$(OBJ_EXT): git_version.h +git_version.h: lib/Config_git.pl + +lib/Config_git.pl: $(MINIPERL_EXE) make_patchnum.pl + $(MINIPERL) make_patchnum.pl + +# make sure that we recompile perl.c if the git version changes +perl$(OBJ_EXT): git_version.h !NO!SUBS! @@ -1105,7 +1105,7 @@ catamount) $spitshell >>$Makefile < { - 'DISTRIBUTION' => 'BINGOS/Archive-Tar-2.32.tar.gz', + 'DISTRIBUTION' => 'BINGOS/Archive-Tar-2.36.tar.gz', 'FILES' => q[cpan/Archive-Tar], 'BUGS' => 'bug-archive-tar@rt.cpan.org', 'EXCLUDED' => [ qw(t/07_ptardiff.t), + qr{t/src/(long|short)/foo.txz}, ], }, @@ -137,11 +138,12 @@ use File::Glob qw(:case); }, 'autodie' => { - 'DISTRIBUTION' => 'PJF/autodie-2.29.tar.gz', + 'DISTRIBUTION' => 'TODDR/autodie-2.32.tar.gz', 'FILES' => q[cpan/autodie], 'EXCLUDED' => [ qr{benchmarks}, qr{README\.md}, + qr{^xt/}, # All these tests depend upon external # modules that don't exist when we're # building the core. Hence, they can @@ -157,19 +159,9 @@ use File::Glob qw(:case); t/release-pod-syntax.t t/socket.t t/system.t + t/no-all.t ) ], - 'CUSTOMIZED' => [ - # CPAN RT 105344 - 't/mkdir.t', - # smartmatch changes - 'lib/autodie/exception.pm', - 'lib/autodie/hints.pm', - 't/exceptions.t', - 't/lib/Hints_pod_examples.pm', - # CPAN RT#127762 - 't/recv.t', - ], }, 'AutoLoader' => { @@ -207,10 +199,11 @@ use File::Glob qw(:case); }, 'Compress::Raw::Bzip2' => { - 'DISTRIBUTION' => 'PMQS/Compress-Raw-Bzip2-2.089.tar.gz', + 'DISTRIBUTION' => 'PMQS/Compress-Raw-Bzip2-2.093.tar.gz', 'FILES' => q[cpan/Compress-Raw-Bzip2], 'EXCLUDED' => [ qr{^t/Test/}, + qr{^t/meta}, 'bzip2-src/bzip2-const.patch', 'bzip2-src/bzip2-cpp.patch', 'bzip2-src/bzip2-unsigned.patch', @@ -218,11 +211,12 @@ use File::Glob qw(:case); }, 'Compress::Raw::Zlib' => { - 'DISTRIBUTION' => 'PMQS/Compress-Raw-Zlib-2.084.tar.gz', + 'DISTRIBUTION' => 'PMQS/Compress-Raw-Zlib-2.093.tar.gz', 'FILES' => q[cpan/Compress-Raw-Zlib], 'EXCLUDED' => [ qr{^examples/}, qr{^t/Test/}, + qr{^t/meta}, qw( t/000prereq.t t/99pod.t ), @@ -235,6 +229,7 @@ use File::Glob qw(:case); 'EXCLUDED' => [qw( examples/show-v.pl )], + 'CUSTOMIZED' => [ qw(V.pm) ], }, 'constant' => { @@ -251,7 +246,7 @@ use File::Glob qw(:case); }, 'CPAN' => { - 'DISTRIBUTION' => 'ANDK/CPAN-2.22.tar.gz', + 'DISTRIBUTION' => 'ANDK/CPAN-2.27.tar.gz', 'FILES' => q[cpan/CPAN], 'EXCLUDED' => [ qr{^distroprefs/}, @@ -330,11 +325,13 @@ use File::Glob qw(:case); }, 'DB_File' => { - 'DISTRIBUTION' => 'PMQS/DB_File-1.843.tar.gz', + 'DISTRIBUTION' => 'PMQS/DB_File-1.853.tar.gz', 'FILES' => q[cpan/DB_File], 'EXCLUDED' => [ qr{^patches/}, + qr{^t/meta}, qw( t/pod.t + t/000prereq.t fallback.h fallback.xs ), @@ -342,7 +339,7 @@ use File::Glob qw(:case); }, 'Devel::PPPort' => { - 'DISTRIBUTION' => 'ATOOMIC/Devel-PPPort-3.52.tar.gz', + 'DISTRIBUTION' => 'ATOOMIC/Devel-PPPort-3.57.tar.gz', 'FILES' => q[dist/Devel-PPPort], 'EXCLUDED' => [ 'PPPort.pm', # we use PPPort_pm.PL instead @@ -369,6 +366,11 @@ use File::Glob qw(:case); 'DISTRIBUTION' => 'GAAS/Digest-MD5-2.55.tar.gz', 'FILES' => q[cpan/Digest-MD5], 'EXCLUDED' => ['rfc1321.txt'], + 'CUSTOMIZED' => [ + # RT #133495 + qw(MD5.xs MD5.pm), + qw(Makefile.PL t/files.t) + ], }, 'Digest::SHA' => { @@ -389,8 +391,13 @@ use File::Glob qw(:case); }, 'Encode' => { - 'DISTRIBUTION' => 'DANKOGAI/Encode-3.01.tar.gz', + 'DISTRIBUTION' => 'DANKOGAI/Encode-3.06.tar.gz', 'FILES' => q[cpan/Encode], + 'EXCLUDED' => [ + qw( t/whatwg-aliases.json + t/whatwg-aliases.t + ), + ], }, 'encoding::warnings' => { @@ -419,7 +426,7 @@ use File::Glob qw(:case); }, 'Exporter' => { - 'DISTRIBUTION' => 'TODDR/Exporter-5.73.tar.gz', + 'DISTRIBUTION' => 'TODDR/Exporter-5.74.tar.gz', 'FILES' => q[dist/Exporter], 'EXCLUDED' => [ qw( t/pod.t @@ -429,7 +436,7 @@ use File::Glob qw(:case); }, 'ExtUtils::CBuilder' => { - 'DISTRIBUTION' => 'AMBS/ExtUtils-CBuilder-0.280231.tar.gz', + 'DISTRIBUTION' => 'AMBS/ExtUtils-CBuilder-0.280234.tar.gz', 'FILES' => q[dist/ExtUtils-CBuilder], 'EXCLUDED' => [ qw(README.mkdn), @@ -464,7 +471,7 @@ use File::Glob qw(:case); }, 'ExtUtils::MakeMaker' => { - 'DISTRIBUTION' => 'BINGOS/ExtUtils-MakeMaker-7.34.tar.gz', + 'DISTRIBUTION' => 'BINGOS/ExtUtils-MakeMaker-7.44.tar.gz', 'FILES' => q[cpan/ExtUtils-MakeMaker], 'EXCLUDED' => [ qr{^t/lib/Test/}, @@ -564,10 +571,18 @@ use File::Glob qw(:case); 'perlfilter.pod' => 'pod/perlfilter.pod', '' => 'cpan/Filter-Util-Call/', }, + 'CUSTOMIZED' => [ + qw(pod/perlfilter.pod) + ], + }, + + 'FindBin' => { + 'DISTRIBUTION' => 'XSAWYERX/FindBin-0.000.tar.gz', + 'FILES' => q[dist/FindBin], }, 'Getopt::Long' => { - 'DISTRIBUTION' => 'JV/Getopt-Long-2.50.tar.gz', + 'DISTRIBUTION' => 'JV/Getopt-Long-2.51.tar.gz', 'FILES' => q[cpan/Getopt-Long], 'EXCLUDED' => [ qr{^examples/}, @@ -608,17 +623,18 @@ use File::Glob qw(:case); }, 'IO' => { - 'DISTRIBUTION' => 'TODDR/IO-1.39.tar.gz', + 'DISTRIBUTION' => 'TODDR/IO-1.42.tar.gz', 'FILES' => q[dist/IO/], 'EXCLUDED' => ['t/test.pl'], }, 'IO-Compress' => { - 'DISTRIBUTION' => 'PMQS/IO-Compress-2.084.tar.gz', + 'DISTRIBUTION' => 'PMQS/IO-Compress-2.093.tar.gz', 'FILES' => q[cpan/IO-Compress], 'EXCLUDED' => [ qr{^examples/}, qr{^t/Test/}, + qr{^t/999meta-}, 't/010examples-bzip2.t', 't/010examples-zlib.t', 't/cz-05examples.t', @@ -639,7 +655,7 @@ use File::Glob qw(:case); }, 'IPC::Cmd' => { - 'DISTRIBUTION' => 'BINGOS/IPC-Cmd-1.02.tar.gz', + 'DISTRIBUTION' => 'BINGOS/IPC-Cmd-1.04.tar.gz', 'FILES' => q[cpan/IPC-Cmd], }, @@ -654,7 +670,7 @@ use File::Glob qw(:case); }, 'JSON::PP' => { - 'DISTRIBUTION' => 'ISHIGAKI/JSON-PP-4.02.tar.gz', + 'DISTRIBUTION' => 'ISHIGAKI/JSON-PP-4.04.tar.gz', 'FILES' => q[cpan/JSON-PP], }, @@ -684,7 +700,7 @@ use File::Glob qw(:case); }, 'Locale::Maketext' => { - 'DISTRIBUTION' => 'TODDR/Locale-Maketext-1.28.tar.gz', + 'DISTRIBUTION' => 'TODDR/Locale-Maketext-1.29.tar.gz', 'FILES' => q[dist/Locale-Maketext], 'EXCLUDED' => [ qw( @@ -705,7 +721,7 @@ use File::Glob qw(:case); }, 'Math::BigInt' => { - 'DISTRIBUTION' => 'PJACKLAM/Math-BigInt-1.999816.tar.gz', + 'DISTRIBUTION' => 'PJACKLAM/Math-BigInt-1.999818.tar.gz', 'FILES' => q[cpan/Math-BigInt], 'EXCLUDED' => [ qr{^examples/}, @@ -718,7 +734,7 @@ use File::Glob qw(:case); }, 'Math::BigInt::FastCalc' => { - 'DISTRIBUTION' => 'PJACKLAM/Math-BigInt-FastCalc-0.5008.tar.gz', + 'DISTRIBUTION' => 'PJACKLAM/Math-BigInt-FastCalc-0.5009.tar.gz', 'FILES' => q[cpan/Math-BigInt-FastCalc], 'EXCLUDED' => [ qr{^t/author-}, @@ -784,7 +800,7 @@ use File::Glob qw(:case); }, 'Module::CoreList' => { - 'DISTRIBUTION' => 'BINGOS/Module-CoreList-5.20190420.tar.gz', + 'DISTRIBUTION' => 'BINGOS/Module-CoreList-5.20200428.tar.gz', 'FILES' => q[dist/Module-CoreList], }, @@ -794,7 +810,7 @@ use File::Glob qw(:case); }, 'Module::Load::Conditional' => { - 'DISTRIBUTION' => 'BINGOS/Module-Load-Conditional-0.68.tar.gz', + 'DISTRIBUTION' => 'BINGOS/Module-Load-Conditional-0.70.tar.gz', 'FILES' => q[cpan/Module-Load-Conditional], }, @@ -804,7 +820,7 @@ use File::Glob qw(:case); }, 'Module::Metadata' => { - 'DISTRIBUTION' => 'ETHER/Module-Metadata-1.000036.tar.gz', + 'DISTRIBUTION' => 'ETHER/Module-Metadata-1.000037.tar.gz', 'FILES' => q[cpan/Module-Metadata], 'EXCLUDED' => [ qw(t/00-report-prereqs.t), @@ -815,7 +831,7 @@ use File::Glob qw(:case); }, 'Net::Ping' => { - 'DISTRIBUTION' => 'RURBAN/Net-Ping-2.71.tar.gz', + 'DISTRIBUTION' => 'RURBAN/Net-Ping-2.72.tar.gz', 'FILES' => q[dist/Net-Ping], 'EXCLUDED' => [ qw(README.md.PL), @@ -823,15 +839,6 @@ use File::Glob qw(:case); qw(t/600_pod.t), qw(t/601_pod-coverage.t), ], - 'CUSTOMIZED' => [ - qw( - lib/Net/Ping.pm - t/000_load.t - t/500_ping_icmp.t - t/501_ping_icmpv6.t - ), - ], - }, 'NEXT' => { @@ -847,7 +854,7 @@ use File::Glob qw(:case); }, 'parent' => { - 'DISTRIBUTION' => 'CORION/parent-0.237.tar.gz', + 'DISTRIBUTION' => 'CORION/parent-0.238.tar.gz', 'FILES' => q[cpan/parent], 'EXCLUDED' => [ qr{^xt} @@ -870,7 +877,7 @@ use File::Glob qw(:case); }, 'perlfaq' => { - 'DISTRIBUTION' => 'ETHER/perlfaq-5.20190126.tar.gz', + 'DISTRIBUTION' => 'ETHER/perlfaq-5.20200523.tar.gz', 'FILES' => q[cpan/perlfaq], 'EXCLUDED' => [ qr/^inc/, qr/^xt/, qr{^t/00-} ], }, @@ -896,11 +903,6 @@ use File::Glob qw(:case); 'FILES' => q[cpan/Pod-Escapes], }, - 'Pod::Parser' => { - 'DISTRIBUTION' => 'MAREKR/Pod-Parser-1.63.tar.gz', - 'FILES' => q[cpan/Pod-Parser], - }, - 'Pod::Perldoc' => { 'DISTRIBUTION' => 'MALLEN/Pod-Perldoc-3.28.tar.gz', 'FILES' => q[cpan/Pod-Perldoc], @@ -926,17 +928,20 @@ use File::Glob qw(:case); }, 'Pod::Simple' => { - 'DISTRIBUTION' => 'KHW/Pod-Simple-3.35.tar.gz', + 'DISTRIBUTION' => 'KHW/Pod-Simple-3.40.tar.gz', 'FILES' => q[cpan/Pod-Simple], }, 'Pod::Usage' => { 'DISTRIBUTION' => 'MAREKR/Pod-Usage-1.69.tar.gz', 'FILES' => q[cpan/Pod-Usage], + 'CUSTOMIZED' => [ + 't/pod/testp2pt.pl', + ], }, 'podlators' => { - 'DISTRIBUTION' => 'RRA/podlators-4.11.tar.gz', + 'DISTRIBUTION' => 'RRA/podlators-4.14.tar.gz', 'FILES' => q[cpan/podlators pod/perlpodstyle.pod], 'EXCLUDED' => [ qr{^docs/metadata/}, @@ -955,7 +960,7 @@ use File::Glob qw(:case); }, 'Scalar::Util' => { - 'DISTRIBUTION' => 'PEVANS/Scalar-List-Utils-1.50.tar.gz', + 'DISTRIBUTION' => 'PEVANS/Scalar-List-Utils-1.55.tar.gz', 'FILES' => q[cpan/Scalar-List-Utils], }, @@ -971,7 +976,7 @@ use File::Glob qw(:case); }, 'Socket' => { - 'DISTRIBUTION' => 'PEVANS/Socket-2.027.tar.gz', + 'DISTRIBUTION' => 'PEVANS/Socket-2.029.tar.gz', 'FILES' => q[cpan/Socket], }, @@ -984,7 +989,7 @@ use File::Glob qw(:case); }, 'Sys::Syslog' => { - 'DISTRIBUTION' => 'SAPER/Sys-Syslog-0.35.tar.gz', + 'DISTRIBUTION' => 'SAPER/Sys-Syslog-0.36.tar.gz', 'FILES' => q[cpan/Sys-Syslog], 'EXCLUDED' => [ qr{^eg/}, @@ -1001,7 +1006,7 @@ use File::Glob qw(:case); }, 'Term::ANSIColor' => { - 'DISTRIBUTION' => 'RRA/Term-ANSIColor-4.06.tar.gz', + 'DISTRIBUTION' => 'RRA/Term-ANSIColor-5.01.tar.gz', 'FILES' => q[cpan/Term-ANSIColor], 'EXCLUDED' => [ qr{^docs/}, @@ -1052,7 +1057,7 @@ use File::Glob qw(:case); }, 'Test::Simple' => { - 'DISTRIBUTION' => 'EXODIST/Test-Simple-1.302162.tar.gz', + 'DISTRIBUTION' => 'EXODIST/Test-Simple-1.302175.tar.gz', 'FILES' => q[cpan/Test-Simple], 'EXCLUDED' => [ qr{^examples/}, @@ -1154,7 +1159,7 @@ use File::Glob qw(:case); }, 'Tie::File' => { - 'DISTRIBUTION' => 'TODDR/Tie-File-1.00.tar.gz', + 'DISTRIBUTION' => 'TODDR/Tie-File-1.05.tar.gz', 'FILES' => q[dist/Tie-File], }, @@ -1184,7 +1189,7 @@ use File::Glob qw(:case); }, 'Time::Piece' => { - 'DISTRIBUTION' => 'ESAYM/Time-Piece-1.33.tar.gz', + 'DISTRIBUTION' => 'ESAYM/Time-Piece-1.3401.tar.gz', 'FILES' => q[cpan/Time-Piece], 'EXCLUDED' => [ qw[reverse_deps.txt] ], }, @@ -1253,7 +1258,7 @@ use File::Glob qw(:case); }, 'Win32' => { - 'DISTRIBUTION' => "JDB/Win32-0.52.tar.gz", + 'DISTRIBUTION' => "JDB/Win32-0.53.tar.gz", 'FILES' => q[cpan/Win32], }, @@ -1263,6 +1268,12 @@ use File::Glob qw(:case); 'EXCLUDED' => [ qr{^ex/}, ], + # https://rt.cpan.org/Ticket/Display.html?id=127837 + 'CUSTOMIZED' => [ + qw( File.pm + File.xs + ), + ], }, 'XSLoader' => { @@ -1353,7 +1364,6 @@ use File::Glob qw(:case); lib/File/Copy.{pm,t} lib/File/stat{.pm,.t,-7896.t} lib/FileHandle.{pm,t} - lib/FindBin.{pm,t} lib/Getopt/Std.{pm,t} lib/Internals.pod lib/Internals.t @@ -1363,10 +1373,7 @@ use File::Glob qw(:case); lib/Net/protoent.{pm,t} lib/Net/servent.{pm,t} lib/PerlIO.pm - lib/Pod/t/InputObjects.t - lib/Pod/t/Select.t lib/Pod/t/Usage.t - lib/Pod/t/utils.t lib/SelectSaver.{pm,t} lib/Symbol.{pm,t} lib/Thread.{pm,t} @@ -1418,14 +1425,10 @@ use File::Glob qw(:case); lib/subs.{pm,t} lib/unicore/ lib/utf8.{pm,t} - lib/utf8_heavy.pl lib/vars{.pm,.t,_carp.t} lib/vmsish.{pm,t} ], }, - 'openbsd' => { - 'FILES' => q[lib/Config_git.pl], - }, ); # legacy CPAN flag diff --git a/gnu/usr.bin/perl/Porting/README.pod b/gnu/usr.bin/perl/Porting/README.pod index bc4c50d8e70..b02a4da85e4 100644 --- a/gnu/usr.bin/perl/Porting/README.pod +++ b/gnu/usr.bin/perl/Porting/README.pod @@ -317,7 +317,7 @@ and that every file is listed. The y2038 implementation for perl. This is an implementation of POSIX time.h which solves the year 2038 bug on systems where time_t is only 32 bits. It is implemented in bog-standard ANSI C. The latest version can be found at -L. +L. =head2 F @@ -339,6 +339,11 @@ Pumpking. Shell script to list patches in RT. +=head1 F + +Template to guide writers of a perl 5 security vulnerability +announcement. + =head2 F This is a script for sorting the warning and error messages in diff --git a/gnu/usr.bin/perl/Porting/bench.pl b/gnu/usr.bin/perl/Porting/bench.pl index 6087dca1388..5b240968187 100755 --- a/gnu/usr.bin/perl/Porting/bench.pl +++ b/gnu/usr.bin/perl/Porting/bench.pl @@ -1726,7 +1726,7 @@ sub grind_print_compact { @fields = grep exists $OPTS{fields}{$_}, @fields; } - # calculate the the max width of the test names + # calculate the max width of the test names my $name_width = 0; for (@test_names) { diff --git a/gnu/usr.bin/perl/Porting/bisect-runner.pl b/gnu/usr.bin/perl/Porting/bisect-runner.pl index 00319211c97..b6c75a9ad4f 100644 --- a/gnu/usr.bin/perl/Porting/bisect-runner.pl +++ b/gnu/usr.bin/perl/Porting/bisect-runner.pl @@ -440,7 +440,9 @@ as exiting with a signal or a core dump.) -A I -Arguments (C<-A>, C<-D>, C<-U>) to pass to F. For example, +Arguments (C<-A>, C<-D>, C<-U>) to pass to F. The C<-D>, C<-A> and +C<-U> switches should be spelled as if you were normally giving them to +F<./Configure>. For example, -Dnoextensions=Encode -Uusedevel @@ -535,6 +537,12 @@ always exits with zero. If you require more flexibility than this, either specify your C invocation explicitly as part of the test case, or use a wrapper script to control the command line or massage the exit codes. +In order for the test program to be seen as a perl script to valgrind +(rather than a shell script), the first line must be one of the following + + #!./perl + #!./miniperl + =item * --test-build @@ -836,6 +844,164 @@ Display the usage information and exit. =back +=head1 EXAMPLES + +=head2 Code has started to crash under C + +=over 4 + +=item * Problem + +Under C (but not under C), F was +failing to compile. What was the first commit at which that compilation +failure could be observed? + +=item * Solution + +Extract code from the test file at the point where C<./miniperl -Ilib -c> was +showing a compilation failure. Use that in bisection with the C +target. + + .../Porting/bisect.pl --target=miniperl --start=2ec4590e \ + -e 'q|ace| =~ /c(?=.$)/; $#{^CAPTURE} == -1); exit 0;' + +=item * Reference + +L + +=back + +=head2 Blead breaks CPAN on threaded builds only + +=over 4 + +=item * Problem + +Tests in CPAN module XML::Parser's test suite had begun to fail when tested +against blead in threaded builds only. + +=item * Solution + +Provide F-style switch to bisection program. Straightforward use +of the C<--module> switch. + + .../Porting/bisect.pl -Duseithreads \ + --start=6256cf2c \ + --end=f6f85064 \ + --module=XML::Parser + +=item * Reference + +L + +=back + +=head2 Point in time where code started to segfault is unknown + +=over 4 + +=item * Problem + +User submitted code sample which when run caused F to segfault, but did +not claim that this was a recent change. + +=item * Solution + +Used locally installed production releases of perl (previously created by +F) to identify the first production release at which the code would +not compile. Used that information to shorten bisection time. + + .../perl Porting/bisect.pl \ + --start=v5.14.4 \ + --end=v5.16.3 \ + --crash -- ./perl -Ilib /tmp/gh-17333-map.pl + + $ cat gh-17333-map.pl + + @N = 1..5; + map { pop @N } @N; + +=item * Reference + +L + +=back + +=head2 When did perl start failing to build on a certain platform using C as the C-compiler? + +=over 4 + +=item * Problem + +On NetBSD-8.0, C had never been smoke-tested using C as the +C-compiler. Once this was done, it became evident that changes in that +version of the operating system's code were incompatible with some C +source written long before that OS version was ever released! + +=item * Solution + +Bisection range was first narrowed using existing builds at release tags. +Then, bisection specified the C-compiler via C-style switch and +used C<--test-build> to identify the commit which "broke" the build. + + .../perl Porting/bisect.pl \ + -Dcc=g++ \ + --test-build \ + --start=v5.21.6 \ + --end=v5.21.7 + +Then, problem was discussed with knowledgeable NetBSD user. + +=item * Reference + +L + +=back + +=head2 When did a test file start to emit warnings? + +=over 4 + +=item * Problem + +When F was run as part of C, we +observed warnings not previously seen. At what commit were those warnings +first emitted? + +=item * Solution + +We know that when this test file was first committed to blead, no warnings +were observed and there was no output to C. So that commit becomes +the value for C<--start>. + +Since the test file in question is for a CPAN distribution maintained by core, +we must prepare to run that test by including C<--target=test_prep> in the +bisection invocation. We then run the test file in a way that captures +C in a file. If that file has non-zero size, then we have presumably +captured the newly seen warnings. + + export ERR="/tmp/err" + + .../perl Porting/bisect.pl \ + --start=507614678018ae1abd55a22e9941778c65741ba3 \ + --end=d34b46d077dcfc479c36f65b196086abd7941c76 \ + --target=test_prep \ + -e 'chdir("t"); + system( + "./perl harness ../dist/Tie-File/t/43_synopsis.t + 2>$ENV{ERR}" + ); + -s $ENV{ERR} and die "See $ENV{ERR} for warnings thrown";' + +Bisection pointed to a commit where strictures and warnings were first turned +on throughout the F directory. + +=item * Reference + +L + +=back + =cut # Ensure we always exit with 255, to cause git bisect to abort. @@ -2659,7 +2825,7 @@ lib/Config_git.pl:}m; lib/Config_git.pl: $1}m; - # This emulates commits 0f13ebd5d71f8177 and + # This emulates commits 0f13ebd5d71f8177 # and a04d4598adc57886. It ensures that # lib/Config_git.pl is built before configpm, # and that configpm is run exactly once. diff --git a/gnu/usr.bin/perl/Porting/bump-perl-version b/gnu/usr.bin/perl/Porting/bump-perl-version index 17ac9669845..fcc5eb2ab71 100644 --- a/gnu/usr.bin/perl/Porting/bump-perl-version +++ b/gnu/usr.bin/perl/Porting/bump-perl-version @@ -78,7 +78,7 @@ EOF my %opts; getopts('csui', \%opts) or usage; if ($opts{u}) { - @ARGV == 0 or usage('no version version numbers should be specified'); + @ARGV == 0 or usage('no version numbers should be specified'); # fake to stop warnings when calculating $oldx etc @ARGV = qw(99.99.99 99.99.99); } @@ -196,14 +196,6 @@ my @maps = ( "$oldx.$oldy", qr/uconfig/, ], - - # win32/Makefile.ce - [ - qr/(PV\s*=\s*)(\d\d{2})\b$/, - sub { $2, "$1$newx$newy" }, - "$oldx$oldy", - qr/Makefile\.ce/, - ], ); diff --git a/gnu/usr.bin/perl/Porting/checkAUTHORS.pl b/gnu/usr.bin/perl/Porting/checkAUTHORS.pl index a00d89da46b..2263f9a7f45 100755 --- a/gnu/usr.bin/perl/Porting/checkAUTHORS.pl +++ b/gnu/usr.bin/perl/Porting/checkAUTHORS.pl @@ -1,5 +1,9 @@ #!/usr/bin/perl -w use strict; +use warnings; + +use v5.026; + my ($committer, $patch, $author); use utf8; use Getopt::Long; @@ -7,9 +11,10 @@ use Unicode::Collate; use Text::Wrap; $Text::Wrap::columns = 80; -my ($rank, $ta, $ack, $who, $tap) = (0) x 5; +my ($rank, $ta, $ack, $who, $tap, $update) = (0) x 6; my ($author_file, $percentage, $cumulative, $reverse); my (%authors, %untraced, %patchers, %committers, %real_names); +my ( $from_commit, $to_commit ); my $result = GetOptions ( # modes @@ -18,15 +23,25 @@ my $result = GetOptions ( "thanks-applied" => \$ta, "missing" => \$ack , "tap" => \$tap, + "update" => \$update, # modifiers "authors=s" => \$author_file, "percentage" => \$percentage, # show as %age "cumulative" => \$cumulative, "reverse" => \$reverse, + "from=s" => \$from_commit, + "to=s" => \$to_commit, + ); -if (!$result or ( $rank + $ta + $who + $ack + $tap != 1 ) or !@ARGV) { + +my $has_from_commit = defined $from_commit ? 1 : 0; + +if ( !$result # GetOptions failed + or ( $rank + $ta + $who + $ack + $tap + $update != 1 ) # use one and one exactly 'mode' + or !( scalar @ARGV + $has_from_commit ) # gitlog provided from --from or stdin + ) { usage(); } @@ -34,26 +49,30 @@ $author_file ||= './AUTHORS'; die "Can't locate '$author_file'. Specify it with '--authors '." unless -f $author_file; -my $map = generate_known_author_map(); - -read_authors_files($author_file); +my ( $map, $preferred_email_or_github ) = generate_known_author_map(); +my $preserve_case = $update ? 1 : 0; +my $AUTHORS_header = read_authors_file($author_file, $preserve_case); if ($rank) { - parse_commits_from_stdin(); + parse_commits(); display_ordered(\%patchers); } elsif ($ta) { - parse_commits_from_stdin(); + parse_commits(); display_ordered(\%committers); } elsif ($tap) { - parse_commits_from_stdin_authors(); + parse_commits_authors(); display_test_output(\%patchers, \%authors, \%real_names); } elsif ($ack) { - parse_commits_from_stdin(); + parse_commits(); display_missing_authors(\%patchers, \%authors, \%real_names); } elsif ($who) { - parse_commits_from_stdin(); + parse_commits(); list_authors(\%patchers, \%authors); +} elsif ( $update ) { + update_authors_files( \%authors, $map, $preferred_email_or_github, $author_file ); +} else { + die "unknown mode"; } exit(0); @@ -69,17 +88,33 @@ Modes (use only one): --thanks-applied # ranks committers of others' patches --missing # display authors not in AUTHORS --tap # show authors present/missing as TAP + --update # update the AUTHORS file with missing Modifiers: --authors # path to authors file (default: ./AUTHORS) --percentage # show rankings as percentages --cumulative # show rankings cumulatively --reverse # show rankings in reverse + --from # git commit ID used for 'git log' source (use file from STDIN when missing) + --to[=HEAD] # git commit ID used for 'git log' destination, default to HEAD. + +Sample Usages: + + \$ perl Porting/checkAUTHORS.pl --who --from=v5.31.6 --to=v5.31.7 + \$ perl Porting/checkAUTHORS.pl --rank --percentage --from=v5.31.6 + \$ perl Porting/checkAUTHORS.pl --thanks-applied --from=v5.31.6 + \$ perl Porting/checkAUTHORS.pl --missing --from=v5.31.6 + \$ perl Porting/checkAUTHORS.pl --tap --from=v5.31.6 + \$ perl Porting/checkAUTHORS.pl --update --from=v5.31.6 + +or the split int two and generate your own git log output Generate git-log-output-file with git log --pretty=fuller rev1..rev2 (or pipe by specifying '-' for stdin). For example: - \$ git log --pretty=fuller v5.12.0..v5.12.1 > gitlog + \$ git log --pretty=fuller v5.31.6..v5.31.7 > gitlog \$ perl Porting/checkAUTHORS.pl --rank --percentage gitlog + + EOS } @@ -88,12 +123,33 @@ sub list_authors { binmode(STDOUT, ":utf8"); print wrap '', '', join(', ', Unicode::Collate->new(level => 1)->sort( map { $authors->{$_} } + grep { length $_ > 1 } # skip the exception '!' and '?' keys %$patchers)) . ".\n"; } -sub parse_commits_from_stdin { - my @lines = split( /^commit\s*/sm, join( '', <> ) ); - for (@lines) { +# use --from [and --to] if provided +# otherwise fallback to stdin for backward compatibility +sub _git_log { + if ( length $from_commit ) { + my ( $from, $to ) = ( $from_commit, $to_commit ); + $to //= 'HEAD'; + my $gitlog = [ qx{git log --pretty=fuller $from..$to} ]; + die "git log failed: $!" unless $? == 0; + return $gitlog; + } + + return [ <> ]; +} + +sub parse_commits { + my ( $process ) = @_; + + $process //= \&process; # default processor + + my $git_log = _git_log(); + + my @lines = split( /^commit\s*/sm, join( '', $git_log->@* ) ); + foreach (@lines) { next if m/^$/; next if m/^(\S*?)^Merge:/ism; # skip merge commits if (m/^(.*?)^Author:\s*(.*?)^AuthorDate:\s*.*?^Commit:\s*(.*?)^(.*)$/gism) { @@ -104,39 +160,70 @@ sub parse_commits_from_stdin { unless ($author) { die $_ } chomp($committer); unless ($committer) { die $_ } - process( $committer, $patch, $author ); + + $process->( $committer, $patch, $author ); } else { die "XXX $_ did not match"; } } + return; } -# just grab authors. Quicker than parse_commits_from_stdin +# just grab authors. Quicker than parse_commits + +sub parse_commits_authors { + + my $git_log = _git_log(); -sub parse_commits_from_stdin_authors { - while (<>) { + foreach ($git_log->@*) { next unless /^Author:\s*(.*)$/; - my $author = $1; - $author = _raw_address($author); - $patchers{$author}++; + my $author = $1; + $author = _raw_address($author); + $patchers{$author}++; } -} + return; +} sub generate_known_author_map { my %map; - my $prev = ""; + my %preferred_email_or_github; + + my $previous_name = ""; + my $previous_preferred_contact = ""; while () { + next if m{^\s*#}; + chomp; s/\\100/\@/g; + $_ = lc; - if ( my ( $correct, $alias ) = /^\s*([^#\s]\S*)\s+(.*\S)/ ) { - $correct =~ s/^\\043/#/; - if ( $correct eq '+' ) { $correct = $prev } - else { $prev = $correct } - $map{$alias} = $correct; + if ( my ( $name, $contact ) = /^\s*([^#\s]\S*)\s+(.*\S)/ ) { + + $name =~ s/^\\043/#/; + # use the previous stored email if the line starts by a '+' + if ( $name eq '+' ) { + $name = $previous_name; + } + else { + $previous_name = $name; + $previous_preferred_contact = $contact; + if ( index($name, '@' ) > 0 ) { + # if name is an email, then this is our preferred email... legacy list + $previous_preferred_contact = $name; + } + } + + $map{$contact} = $name; + + if ( $contact ne $previous_preferred_contact ) { + $preferred_email_or_github{$contact} = $previous_preferred_contact; + } + if ( $name ne '+' ) { + $preferred_email_or_github{$name} = $previous_preferred_contact; + } } } @@ -210,25 +297,34 @@ sub generate_known_author_map { "(none)", ; - return \%map; + return ( \%map, \%preferred_email_or_github ); } -sub read_authors_files { - my @authors = (@_); - return unless (@authors); +sub read_authors_file { + my ( $filename, $preserve_case ) = @_; + return unless defined $filename; + + my @headers; + my (%count, %raw); - foreach my $filename (@authors) { - open FH, '<', $filename or die "Can't open $filename: $!"; - binmode FH, ':encoding(UTF-8)'; - while () { + { + open my $fh, '<', $filename or die "Can't open $filename: $!"; + binmode $fh, ':encoding(UTF-8)'; + my $in_header = 1; + while (<$fh>) { next if /^\#/; - next if /^-- /; + do { $in_header = 0; next } if /^-- /; if (/^([^<]+)<([^>]+)>/) { # Easy line. my ($name, $email) = ($1, $2); $name =~ s/\s*\z//; $raw{$email} = $name; $count{$email}++; + } elsif ( /^([^@]+)\s+(\@\S+)\s*$/ ) { + my ($name, $github) = ($1, $2); + $name =~ s/\s*\z//; + $raw{$github} = $name; + $count{$github}++; } elsif (/^([- .'\w]+)[\t\n]/) { # Name only @@ -240,31 +336,186 @@ sub read_authors_files { next; } } + continue { + push @headers, $_ if $in_header; + } } - foreach ( keys %raw ) { - print "E-mail $_ occurs $count{$_} times\n" if $count{$_} > 1; - my $lc = lc $_; - $authors{ $map->{$lc} || $lc } = $raw{$_}; + foreach my $contact ( sort keys %raw ) { + print "E-mail $contact occurs $count{$contact} times\n" if $count{$contact} > 1; + my $lc = lc $contact; + my $key = $preserve_case ? $contact : $lc; + $authors{ $map->{$lc} || $key } = $raw{$contact}; } $authors{$_} = $_ for qw(? !); + + push @headers, '-- ', "\n"; + + return join( '', @headers ); +} + +sub update_authors_files { + my ( $authors, $known_authors, $preferred_email_or_github, $author_file ) = @_; + + die qq[Cannot find AUTHORS file '$author_file'] unless -f $author_file; + binmode(STDOUT, ":utf8"); + + # add missing authors from the recent commits + _detect_new_authors_from_recent_commit( $authors, $known_authors ); + + my @author_names = sort { $a cmp $b } values %$authors; + my $maxlen = length [ sort { length $b <=> length $a } @author_names ]->[0]; + + my @list; + foreach my $github_or_email ( sort keys %authors ) { + + next if length $github_or_email == 1; + + my $name = $authors{$github_or_email}; + $name =~ s{\s+$}{}; + + #$github_or_email = $known_authors->{ $github_or_email } // $github_or_email; + $github_or_email = $preferred_email_or_github->{ $github_or_email } // $github_or_email; + + if ( index( $github_or_email, '@' ) != 0 ) { # preserve '<>' for unicode consortium + $github_or_email = '<' . $github_or_email . '>'; + } + + push @list, sprintf( "%-${maxlen}s %s\n", $name, $github_or_email); + } + + # preserve the untraced authors :-) [without email or GitHub account] + push @list, map { "$_\n" } keys %untraced; + + { + open my $fh, '>', $author_file or die "Can't open $author_file: $!"; + binmode $fh, ':encoding(UTF-8)'; + + print {$fh} $AUTHORS_header; + + map { print {$fh} $_ } sort { lc $a cmp lc $b } @list; + + close $fh; + + } + + return; } +# read all recent commits and check if the author email is known +# if the email is unknown add the author's GitHub account if possible or his email +sub _detect_new_authors_from_recent_commit { + my ( $authors, $known_authors ) = @_; + + my $check_if_email_known = sub { + my ( $email ) = @_; + + my $preferred = $map->{$email} // $map->{lc $email} + // $preferred_email_or_github->{$email} + // $preferred_email_or_github->{lc $email} + // $email; + + return $authors{$preferred} || $authors{ lc $preferred } ? 1 : 0; + }; + + my $already_checked = {}; + my $process = sub { + my ( $committer, $patch, $author ) = @_; + + foreach my $person ( $author, $committer ) { + next unless length $person; + next if $already_checked->{$person}; + $already_checked->{$person} = 1; + + my $is_author = $person eq $author; + + if ( $person =~ m{^(.+)\s+<(.+)>$} ) { + my ( $name, $email ) = ( $1, $2 ); + + # skip unicode consortium and bad emails + if ( index( $email, '@' ) <= 0 ) { + warn "# Skipping new author: $person - bad email"; + next; + } + + next if $check_if_email_known->( $email ); + + # for new users we would prefer using the GitHub account + my $github_or_email = _commit_to_github_id( $patch, $is_author ) // $email; + + next if $check_if_email_known->( $github_or_email ); + + print "# Detected a new author: $name using email $email [ $github_or_email ]\n"; + $authors{$github_or_email} = $name; # add it to the list of authors + } else { + warn "Fail to parse author: $person"; + } + } + }; + + parse_commits( $process ); + + return; +} + +sub _commit_to_github_id { + my ( $commit, $is_author ) = @_; + + chomp $commit if defined $commit; + return unless length $commit; + + eval { require HTTP::Tiny; 1 } or do { + warn "HTTP::Tiny is missing, cannot detect GitHub account from commit id."; + no warnings; + *_commit_to_github_id = sub {}; + return; + }; + + my $github_url_for_commit = q[https://github.com/Perl/perl5/commit/] . $commit; + my $response = HTTP::Tiny->new->get( $github_url_for_commit ); + + if ( ! $response->{success} ) { + warn "HTTP Request Failed: '$github_url_for_commit'"; + return; + } + + my $content = $response->{content} // ''; + + # poor man scrapping - probably have to be improved over time + # try to parse something like: 2; + + return $github_ids[0] if $is_author; + if ( !$is_author && scalar @github_ids >= 2 ) { + return $github_ids[1]; # committer is the second entry + } + + return $github_ids[0]; +} + + sub display_test_output { my $patchers = shift; my $authors = shift; my $real_names = shift; my $count = 0; printf "1..%d\n", scalar keys %$patchers; - foreach ( sort keys %$patchers ) { + + foreach my $email ( sort keys %$patchers ) { $count++; - if ($authors->{$_}) { - print "ok $count - ".$real_names->{$_} ." $_\n"; + if ($authors->{$email}) { + print "ok $count - ".$real_names->{$email} ." $email\n"; } else { - print "not ok $count - Contributor not found in AUTHORS: $_ ".($real_names->{$_} || '???' )."\n"; - print STDERR ($real_names->{$_} || '???' )." <$_> not found in AUTHORS\n"; + print "not ok $count - Contributor not found in AUTHORS: $email ".($real_names->{$email} || '???' )."\n"; + print STDERR ($real_names->{$email} || '???' )." <$email> not found in AUTHORS\n"; } - } + + return; } sub display_missing_authors { @@ -286,6 +537,8 @@ sub display_missing_authors { print "" . ( $real_names->{$author} || $author ) . "\t\t\t<" . $xauthor . ">\n"; } } + + return; } sub display_ordered { @@ -315,6 +568,8 @@ sub display_ordered { } print wrap ( $prefix, "\t", join( " ", sort @{ $sorted[$i] } ), "\n" ); } + + return; } sub process { @@ -331,6 +586,8 @@ sub process { # separate commit credit only if committing someone else's patch $committers{$committer}++; } + + return; } sub _raw_address { @@ -367,6 +624,7 @@ sub _raw_address { $addr =~ s/\\100/@/g; # Sometimes, there are encoded @ signs in the git log. if ($real_name) { $real_names{$addr} = $real_name } + return $addr; } @@ -374,8 +632,8 @@ sub _raw_address { __DATA__ # -# List of mappings. First entry the "correct" email address, as appears -# in the AUTHORS file. Second is any "alias" mapped to it. +# List of mappings. First entry the "correct" email address or GitHub account, +# as appears in the AUTHORS file. Other lines are "alias" mapped to it. # # If the "correct" email address is a '+', the entry above it is reused; # this for addresses with more than one alias. @@ -386,12 +644,19 @@ __DATA__ # # Committers. # +adamh \100BytesGuy ++ bytesguy\100users.noreply.github.com ++ git\100ahartley.com adi enache\100rdslink.ro alanbur alan.burlison\100sun.com + alan.burlison\100uk.sun.com + aburlison\100cix.compulink.co.uk ams ams\100toroid.org + ams\100wiw.org +atoomic \100atoomic ++ atoomic\100cpan.org ++ cpan\100atoomic.org ++ nicolas\100atoomic.org chip chip\100pobox.com + chip\100perl.com + salzench\100nielsenmedia.com @@ -399,14 +664,14 @@ chip chip\100pobox.com + chip\100rio.atlantic.net + salzench\100dun.nielsen.com + chip\100ci005.sv2.upperbeyond.com -craigb craig.berry\100psinetcs.com +craigb craigberry\100mac.com + craig.berry\100metamorgs.com + craig.berry\100signaltreesolutions.com -+ craigberry\100mac.com ++ craig.berry\100psinetcs.com + craig.a.berry\100gmail.com + craig a. berry) -davem davem\100fdgroup.com -+ davem\100iabyn.nospamdeletethisbit.com +davem davem\100iabyn.nospamdeletethisbit.com ++ davem\100fdgroup.com + davem\100iabyn.com + davem\100fdgroup.co.uk + davem\100fdisolutions.com @@ -430,15 +695,15 @@ gbarr gbarr\100pobox.com + gbarr\100ti.com + graham.barr\100tiuk.ti.com + gbarr\100monty.mutatus.co.uk -gisle gisle\100activestate.com -+ gisle\100aas.no +gisle gisle\100aas.no ++ gisle\100activestate.com + aas\100aas.no + aas\100bergen.sn.no -gsar gsar\100activestate.com -+ gsar\100cpan.org +gsar gsar\100cpan.org ++ gsar\100activestate.com + gsar\100engin.umich.edu -hv hv\100crypt.compulink.co.uk -+ hv\100crypt.org +hv hv\100crypt.org ++ hv\100crypt.compulink.co.uk + hv\100iii.co.uk jhi jhi\100iki.fi + jhietaniemi\100gmail.com @@ -449,8 +714,8 @@ jhi jhi\100iki.fi + jarkko.hietaniemi\100nokia.com + jarkko.hietaniemi\100cc.hut.fi + jarkko.hietaniemi\100booking.com -jesse jesse\100bestpractical.com -+ jesse\100fsck.com +jesse jesse\100fsck.com ++ jesse\100bestpractical.com + jesse\100perl.org merijn h.m.brand\100xs4all.nl + h.m.brand\100procura.nl @@ -458,12 +723,13 @@ merijn h.m.brand\100xs4all.nl + h.m.brand\100hccnet.nl + merijn\100l1.procura.nl + merijn\100a5.(none) ++ perl5\100tux.freedom.nl mhx mhx-perl\100gmx.net + mhx\100r2d2.(none) mst mst\100shadowcat.co.uk + matthewt\100hercule.scsys.co.uk -nicholas nick\100unfortu.net -+ nick\100ccl4.org +nicholas nick\100ccl4.org ++ nick\100unfortu.net + nick\100talking.bollo.cx + nick\100plum.flirble.org + nick\100babyhippo.co.uk @@ -472,21 +738,21 @@ nicholas nick\100unfortu.net + nicholas\100dromedary.ams6.corp.booking.com + Nicholas Clark (sans From field in mail header) pudge pudge\100pobox.com -rgs rgarciasuarez\100free.fr +rgs rgs@consttype.org ++ rgarciasuarez\100free.fr + rgarciasuarez\100mandrakesoft.com + rgarciasuarez\100mandriva.com + rgarciasuarez\100gmail.com + raphel.garcia-suarez\100hexaflux.com -+ rgs@consttype.org -sky sky\100nanisky.com -+ artur\100contiller.se +sky artur\100contiller.se ++ sky\100nanisky.com + arthur\100contiller.se -smueller 7k8lrvf02\100sneakemail.com +smueller smueller\100cpan.org ++ 7k8lrvf02\100sneakemail.com + kjx9zthh3001\100sneakemail.com + dtr8sin02\100sneakemail.com + rt8363b02\100sneakemail.com + o6hhmk002\100sneakemail.com -+ smueller\100cpan.org + l2ot9pa02\100sneakemail.com + wyp3rlx02\100sneakemail.com + 0mgwtfbbq\100sneakemail.com @@ -530,7 +796,9 @@ allen\100huarp.harvard.edu nort\100bottesini.harvard.edu allens\100cpan.org easmith\100beatrice.rutgers.edu + root\100dogberry.rutgers.edu ambs\100cpan.org hashashin\100gmail.com -andreas.koenig\100anima.de andreas.koenig.gmwojprw\100franz.ak.mind.de +andrea a.koenig@mind.de ++ andreas.koenig\100anima.de ++ andreas.koenig.gmwojprw\100franz.ak.mind.de + andreas.koenig.7os6vvqr\100franz.ak.mind.de + a.koenig\100mind.de + k\100anna.in-berlin.de @@ -551,8 +819,8 @@ arnold\100gnu.ai.mit.edu arnold\100emoryu2.arpa arodland\100cpan.org andrew\100hbslabs.com arussell\100cs.uml.edu adam\100adam-pc.(none) ash\100cpan.org ash_cpan\100firemirror.com -avarab\100gmail.com avar\100cpan.org - +avar avar\100cpan.org ++ avarab\100gmail.com bailey\100newman.upenn.edu bailey\100hmivax.humgen.upenn.edu + bailey\100genetics.upenn.edu + bailey.charles\100gmail.com @@ -575,12 +843,14 @@ bulk88\100hotmail.com bulk88 chad.granum\100dreamhost.com exodist7\100gmail.com choroba\100cpan.org choroba\100weed.(none) ++ choroba\100matfyz.cz chromatic\100wgz.org chromatic\100rmci.net ckuskie\100cadence.com colink\100perldreamer.com claes\100surfar.nu claes\100versed.se clintp\100geeksalad.org cpierce1\100ford.com clkao\100clkao.org clkao\100bestpractical.com corion\100corion.net corion\100cpan.org ++ github@corion.net cp\100onsitetech.com publiustemp-p5p\100yahoo.com + publiustemp-p5p3\100yahoo.com cpan\100audreyt.org autrijus\100egb.elixus.org @@ -668,9 +938,11 @@ jari.aalto\100poboxes.com jari.aalto\100cante.net jarausch\100numa1.igpm.rwth-aachen.de helmutjarausch\100unknown jasons\100cs.unm.edu jasons\100sandy-home.arc.unm.edu jbuehler\100hekimian.com jhpb\100hekimian.com -jcromie\100100divsol.com jcromie\100cpan.org +jcromie\100cpan.org jcromie\100100divsol.com + jim.cromie\100gmail.com jd\100cpanel.net lightsey\100debian.org ++ john\10004755.net ++ john\100nixnuts.net jdhedden\100cpan.org jerry\100hedden.us + jdhedden\1001979.usna.com + jdhedden\100gmail.com @@ -786,7 +1058,7 @@ ilya\100math.berkeley.edu ilya\100math.ohio-state.edu + [9]ilya\100math.ohio-state.edu ilya\100martynov.org ilya\100juil.nonet -joshua.pritikin\100db.com joshua\100paloalto.com +joshua\100paloalto.com joshua.pritikin\100db.com litt\100acm.org tlhackque\100yahoo.com @@ -803,7 +1075,9 @@ p5-authors\100crystalflame.net perl\100crystalflame.net + rs\100topsy.com paul.green\100stratus.com paul_greenvos\100vos.stratus.com + pgreen\100seussnt.stratus.com -paul.marquess\100btinternet.com paul_marquess\100yahoo.co.uk +pmqs pmqs\100cpan.org ++ paul.marquess\100btinternet.com ++ paul_marquess\100yahoo.co.uk + paul.marquess\100ntlworld.com + paul.marquess\100openwave.com + pmarquess\100bfsec.bt.co.uk @@ -820,9 +1094,11 @@ Peter.Dintelmann\100Dresdner-Bank.com peter.dintelmann\100dresdner-bank.com # NOTE: There is an intentional trailing space in the line above pfeifer\100wait.de pfeifer\100charly.informatik.uni-dortmund.de + upf\100de.uu.net +pjacklam\100online.no pjacklam\100gmail.com ribasushi@cpan.org rabbit\100rabbit.us + rabbit+bugs\100rabbit.us -perl\100aaroncrane.co.uk arc\100cpan.org +arc\100cpan.org perl\100aaroncrane.co.uk ++ arc@users.noreply.github.com phil\100perkpartners.com phil\100finchcomputer.com pimlott\100idiomtech.com andrew\100pimlott.net + pimlott\100abel.math.harvard.edu @@ -838,13 +1114,14 @@ khw\100cpan.org khw\100karl.(none) radu\100netsoft.ro rgreab\100fx.ro rajagopa\100pauline.schrodinger.com rajagopa\100schrodinger.com raphael.manfredi\100pobox.com raphael_manfredi\100grenoble.hp.com -module@renee-baecker.de renee.baecker\100smart-websolutions.de +module\100renee-baecker.de renee.baecker\100smart-websolutions.de + reneeb\100reneeb-desktop.(none) -+ github@renee-baecker.de ++ github\100renee-baecker.de + otrs\100ubuntu.(none) + perl\100renee-baecker.de + reb\100perl-services.de + info\100perl-services.de +rich+perl\100hyphen-dash-hyphen.info richardleach\100users.noreply.github.com richard.foley\100rfi.net richard.foley\100t-online.de + richard.foley\100ubs.com + richard.foley\100ubsw.com @@ -854,6 +1131,7 @@ rick\100consumercontact.com rick\100bort.ca + rick.delaney\100home.com rjbs\100cpan.org rjbs-perl-p5p\100lists.manxome.org + perl.p5p\100rjbs.manxome.org ++ rjbs\100semiotic.systems rjk\100linguist.dartmouth.edu rjk\100linguist.thayer.dartmouth.edu + rjk-perl-p5p\100tamias.net + rjk\100tamias.net @@ -874,12 +1152,13 @@ roderick\100argon.org roderick\100gate.net argrath\100ub32.org root\100ub32.org rootbeer\100teleport.com rootbeer\100redcat.com + tomphoenix\100unknown -rurban\100x-ray.at rurban\100cpan.org +rra\100stanford.edu rra\100cpan.org +rurban\100cpan.org rurban\100x-ray.at + rurban\100cpanel.net rvtol+news\100isolution.nl rvtol\100isolution.nl -sartak\100bestpractical.com sartak\100gmail.com +sartak\100gmail.com sartak\100bestpractical.com + code\100sartak.org -sadinoff\100olf.com danny-cpan\100sadinoff.com +danny-cpan\100sadinoff.com sadinoff\100olf.com schubiger\100cpan.org steven\100accognoscere.org + sts\100accognoscere.org + schubiger\100gmail.com @@ -900,11 +1179,12 @@ shlomif\100cpan.org shlomif\100vipe.technion.ac.il + shlomif\100iglu.org.il + shlomif+processed-by-perl\100gmail.com + shlomif\100shlomifish.org -simon\100simon-cozens.org simon\100pembro4.pmb.ox.ac.uk +simon\100netthink.co.uk simon\100simon-cozens.org ++ simon\100pembro4.pmb.ox.ac.uk + simon\100brecon.co.uk + simon\100othersideofthe.earth.li + simon\100cozens.net -+ simon\100netthink.co.uk ++ sisyphus\100cpan.org sisyphus1\100optusnet.com.au + sisyphus359\100gmail.com lannings\100who.int lannings\100gmail.com @@ -926,7 +1206,7 @@ spider\100orb.nashua.nh.us spider\100web.zk3.dec.com + spidb\100cpan.org + spider.boardman\100orb.nashua.nh.us + root\100peano.zk3.dec.com -spiros\100lokku.com s.denaxas\100gmail.com +s.denaxas\100gmail.com spiros\100lokku.com spp\100ds.net spp\100psa.pencom.com + spp\100psasolar.colltech.com + spp\100spotter.yi.org diff --git a/gnu/usr.bin/perl/Porting/checkURL.pl b/gnu/usr.bin/perl/Porting/checkURL.pl index 0a2c2d211ab..2d92ff3c110 100644 --- a/gnu/usr.bin/perl/Porting/checkURL.pl +++ b/gnu/usr.bin/perl/Porting/checkURL.pl @@ -233,6 +233,28 @@ http://aspn.activestate.com/ASPN/Mail/Message/perl6-internals/2746631 http://my.smithmicro.com/mac/stuffit/ http://www.wg.omron.co.jp/cgi-bin/j-e/jfriedl.html http://persephone.cps.unizar.es/general/gente/spd/gzip/gzip.html +http://www.openzaurus.org/ +http://Casbah.org/ +http://download.microsoft.com/download/vc15/Patch/1.52/W95/EN-US/nmake15.exe +http://www.pvhp.com/~pvhp/ +http://www.pvhp.com/%7Epvhp/ +http://www.pvhp.com/%7epvhp/ +http://www.leo.org +http://www.madgoat.com +http://www.mks.com/s390/gnu/ +http://www.research.att.com/sw/tools/uwin/ +http://www.tpj.com/ +http://safaribooksonline.com/ +http://use.perl.org/~autrijus/journal/25768 +http://www.s390.ibm.com/products/oe/bpxqp1.html +http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/1998-02/msg01396.html +http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/1998-02/msg01489.html +http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/1998-02/msg01491.html +http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/1998-02/msg01608.html +http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/1998-02/msg02144.html +http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/1998-02/msg02998.html +http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/1999-03/msg00520.html +http://www.w3.org/Security/Faq/ # these are URI extraction bugs http://www.perl.org/E diff --git a/gnu/usr.bin/perl/Porting/checkcfgvar.pl b/gnu/usr.bin/perl/Porting/checkcfgvar.pl index ce72fe56af3..101f12d8682 100755 --- a/gnu/usr.bin/perl/Porting/checkcfgvar.pl +++ b/gnu/usr.bin/perl/Porting/checkcfgvar.pl @@ -56,7 +56,6 @@ my @CFG = ( "plan9/config_sh.sample", "win32/config.gc", "win32/config.vc", - "win32/config.ce", "configure.com", "Porting/config.sh", ); diff --git a/gnu/usr.bin/perl/Porting/config.sh b/gnu/usr.bin/perl/Porting/config.sh index 129bf6e10b9..2d2287cf2a7 100644 --- a/gnu/usr.bin/perl/Porting/config.sh +++ b/gnu/usr.bin/perl/Porting/config.sh @@ -45,11 +45,11 @@ alignbytes='8' aphostname='' api_revision='5' api_subversion='0' -api_version='30' -api_versionstring='5.30.0' +api_version='32' +api_versionstring='5.32.0' ar='ar' -archlib='/opt/perl/lib/5.30.3/x86_64-linux' -archlibexp='/opt/perl/lib/5.30.3/x86_64-linux' +archlib='/opt/perl/lib/5.32.1/x86_64-linux' +archlibexp='/opt/perl/lib/5.32.1/x86_64-linux' archname64='' archname='x86_64-linux' archobjs='' @@ -130,6 +130,7 @@ d_asinh='define' d_atanh='define' d_atolf='undef' d_atoll='define' +d_attribute_always_inline='undef' d_attribute_deprecated='define' d_attribute_format='define' d_attribute_malloc='define' @@ -553,6 +554,7 @@ d_sitearch='define' d_snprintf='define' d_sockaddr_in6='define' d_sockaddr_sa_len='undef' +d_sockaddr_storage='undef' d_sockatmark='define' d_sockatmarkproto='define' d_socket='define' @@ -645,6 +647,7 @@ d_voidtty='' d_vsnprintf='define' d_wait4='define' d_waitpid='define' +d_wcrtomb='undef' d_wcscmp='define' d_wcstombs='define' d_wcsxfrm='define' @@ -845,7 +848,7 @@ incpath='' incpth='/usr/lib/gcc/x86_64-linux-gnu/4.9/include /usr/local/include /usr/lib/gcc/x86_64-linux-gnu/4.9/include-fixed /usr/include/x86_64-linux-gnu /usr/include' inews='' initialinstalllocation='/opt/perl/bin' -installarchlib='/opt/perl/lib/5.30.3/x86_64-linux' +installarchlib='/opt/perl/lib/5.32.1/x86_64-linux' installbin='/opt/perl/bin' installhtml1dir='' installhtml3dir='' @@ -853,13 +856,13 @@ installman1dir='/opt/perl/man/man1' installman3dir='/opt/perl/man/man3' installprefix='/opt/perl' installprefixexp='/opt/perl' -installprivlib='/opt/perl/lib/5.30.3' +installprivlib='/opt/perl/lib/5.32.1' installscript='/opt/perl/bin' -installsitearch='/opt/perl/lib/site_perl/5.30.3/x86_64-linux' +installsitearch='/opt/perl/lib/site_perl/5.32.1/x86_64-linux' installsitebin='/opt/perl/bin' installsitehtml1dir='' installsitehtml3dir='' -installsitelib='/opt/perl/lib/site_perl/5.30.3' +installsitelib='/opt/perl/lib/site_perl/5.32.1' installsiteman1dir='/opt/perl/man/man1' installsiteman3dir='/opt/perl/man/man3' installsitescript='/opt/perl/bin' @@ -984,7 +987,7 @@ perl_patchlevel='' perl_static_inline='static __inline__' perladmin='yourname@yourhost.yourplace.com' perllibs='-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc' -perlpath='/opt/perl/bin/perl5.30.3' +perlpath='/opt/perl/bin/perl5.32.1' pg='pg' phostname='' pidtype='pid_t' @@ -993,8 +996,8 @@ pmake='' pr='' prefix='/opt/perl' prefixexp='/opt/perl' -privlib='/opt/perl/lib/5.30.3' -privlibexp='/opt/perl/lib/5.30.3' +privlib='/opt/perl/lib/5.32.1' +privlibexp='/opt/perl/lib/5.32.1' procselfexe='"/proc/self/exe"' ptrsize='8' quadkind='2' @@ -1059,17 +1062,17 @@ sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 6, 17, 29, 31, 0' sig_size='69' signal_t='void' -sitearch='/opt/perl/lib/site_perl/5.30.3/x86_64-linux' -sitearchexp='/opt/perl/lib/site_perl/5.30.3/x86_64-linux' +sitearch='/opt/perl/lib/site_perl/5.32.1/x86_64-linux' +sitearchexp='/opt/perl/lib/site_perl/5.32.1/x86_64-linux' sitebin='/opt/perl/bin' sitebinexp='/opt/perl/bin' sitehtml1dir='' sitehtml1direxp='' sitehtml3dir='' sitehtml3direxp='' -sitelib='/opt/perl/lib/site_perl/5.30.3' +sitelib='/opt/perl/lib/site_perl/5.32.1' sitelib_stem='/opt/perl/lib/site_perl' -sitelibexp='/opt/perl/lib/site_perl/5.30.3' +sitelibexp='/opt/perl/lib/site_perl/5.32.1' siteman1dir='/opt/perl/man/man1' siteman1direxp='/opt/perl/man/man1' siteman3dir='/opt/perl/man/man3' @@ -1095,7 +1098,7 @@ src='.' ssizetype='ssize_t' st_ino_sign='1' st_ino_size='8' -startperl='#!/opt/perl/bin/perl5.30.3' +startperl='#!/opt/perl/bin/perl5.32.1' startsh='#!/bin/sh' static_ext=' ' stdchar='char' @@ -1107,7 +1110,7 @@ stdio_ptr='((fp)->_IO_read_ptr)' stdio_stream_array='' strerror_r_proto='0' submit='' -subversion='3' +subversion='1' sysman='/usr/share/man/man1' sysroot='' tail='' @@ -1205,8 +1208,8 @@ vendorprefix='' vendorprefixexp='' vendorscript='' vendorscriptexp='' -version='5.30.3' -version_patchlevel_string='version 30 subversion 3' +version='5.32.1' +version_patchlevel_string='version 32 subversion 1' versiononly='define' vi='' xlibpth='/usr/lib/386 /lib/386' @@ -1215,10 +1218,10 @@ yaccflags='' zcat='' zip='zip' PERL_REVISION=5 -PERL_VERSION=30 -PERL_SUBVERSION=3 +PERL_VERSION=32 +PERL_SUBVERSION=1 PERL_API_REVISION=5 -PERL_API_VERSION=30 +PERL_API_VERSION=32 PERL_API_SUBVERSION=0 PERL_PATCHLEVEL='' PERL_CONFIG_SH=true diff --git a/gnu/usr.bin/perl/Porting/config_H b/gnu/usr.bin/perl/Porting/config_H index cd0b9848aa3..f9d56917f18 100644 --- a/gnu/usr.bin/perl/Porting/config_H +++ b/gnu/usr.bin/perl/Porting/config_H @@ -350,7 +350,7 @@ /* HAS_REGCOMP: * This symbol, if defined, indicates that the regcomp() routine is - * available to do some regular patern matching (usually on POSIX.2 + * available to do some regular pattern matching (usually on POSIX.2 * conforming systems). */ #define HAS_REGCOMP /* POSIX.2 */ @@ -1239,8 +1239,8 @@ * This symbol contains the ~name expanded version of ARCHLIB, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define ARCHLIB "/opt/perl/lib/5.30.3/x86_64-linux" /**/ -#define ARCHLIB_EXP "/opt/perl/lib/5.30.3/x86_64-linux" /**/ +#define ARCHLIB "/opt/perl/lib/5.32.1/x86_64-linux" /**/ +#define ARCHLIB_EXP "/opt/perl/lib/5.32.1/x86_64-linux" /**/ /* BIN: * This symbol holds the path of the bin directory where the package will @@ -1293,8 +1293,8 @@ * This symbol contains the ~name expanded version of PRIVLIB, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define PRIVLIB "/opt/perl/lib/5.30.3" /**/ -#define PRIVLIB_EXP "/opt/perl/lib/5.30.3" /**/ +#define PRIVLIB "/opt/perl/lib/5.32.1" /**/ +#define PRIVLIB_EXP "/opt/perl/lib/5.32.1" /**/ /* SITEARCH: * This symbol contains the name of the private library for this package. @@ -1311,8 +1311,8 @@ * This symbol contains the ~name expanded version of SITEARCH, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define SITEARCH "/opt/perl/lib/site_perl/5.30.3/x86_64-linux" /**/ -#define SITEARCH_EXP "/opt/perl/lib/site_perl/5.30.3/x86_64-linux" /**/ +#define SITEARCH "/opt/perl/lib/site_perl/5.32.1/x86_64-linux" /**/ +#define SITEARCH_EXP "/opt/perl/lib/site_perl/5.32.1/x86_64-linux" /**/ /* SITELIB: * This symbol contains the name of the private library for this package. @@ -1334,8 +1334,8 @@ * removed. The elements in inc_version_list (inc_version_list.U) can * be tacked onto this variable to generate a list of directories to search. */ -#define SITELIB "/opt/perl/lib/site_perl/5.30.3" /**/ -#define SITELIB_EXP "/opt/perl/lib/site_perl/5.30.3" /**/ +#define SITELIB "/opt/perl/lib/site_perl/5.32.1" /**/ +#define SITELIB_EXP "/opt/perl/lib/site_perl/5.32.1" /**/ #define SITELIB_STEM "/opt/perl/lib/site_perl" /**/ /* PERL_VENDORARCH: @@ -4109,7 +4109,7 @@ * script to make sure (one hopes) that it runs with perl and not * some shell. */ -#define STARTPERL "#!/opt/perl/bin/perl5.30.3" /**/ +#define STARTPERL "#!/opt/perl/bin/perl5.32.1" /**/ /* HAS_STDIO_STREAM_ARRAY: * This symbol, if defined, tells that there is an array @@ -4170,11 +4170,11 @@ #define USE_64_BIT_ALL /**/ #endif -/* USE_CBACKTRACE: +/* USE_C_BACKTRACE: * This symbol, if defined, indicates that Perl should * be built with support for backtrace. */ -/*#define USE_CBACKTRACE / **/ +/*#define USE_C_BACKTRACE / **/ /* USE_DTRACE: * This symbol, if defined, indicates that Perl should diff --git a/gnu/usr.bin/perl/Porting/corelist.pl b/gnu/usr.bin/perl/Porting/corelist.pl index 57d09a085c2..2f2e61c52e2 100755 --- a/gnu/usr.bin/perl/Porting/corelist.pl +++ b/gnu/usr.bin/perl/Porting/corelist.pl @@ -98,7 +98,6 @@ find( sub { /(\.pm|_pm\.PL)$/ or return; /PPPort\.pm$/ and return; - /__Storable__\.pm$/ and return; my $module = $File::Find::name; $module =~ /\b(demo|t|private|corpus)\b/ and return; # demo or test modules my $version = MM->parse_version($_); @@ -294,6 +293,7 @@ foreach my $module ( sort keys %module_to_upstream ) { $bug_tracker = defined $bug_tracker ? quote($bug_tracker) : 'undef'; next if $bug_tracker eq "'https://github.com/Perl/perl5/issues'"; next if $bug_tracker eq "'http://rt.perl.org/perlbug/'"; + next if $bug_tracker eq "'https://rt.perl.org/perlbug/'"; $tracker .= sprintf " %-24s=> %s,\n", "'$module'", $bug_tracker; } $tracker .= ");"; diff --git a/gnu/usr.bin/perl/Porting/epigraphs.pod b/gnu/usr.bin/perl/Porting/epigraphs.pod index 111819c6b2b..7686f8aac30 100644 --- a/gnu/usr.bin/perl/Porting/epigraphs.pod +++ b/gnu/usr.bin/perl/Porting/epigraphs.pod @@ -17,11 +17,122 @@ Consult your favorite dictionary for details. =head1 EPIGRAPHS +=head2 v5.33.6 - Edward R. Murrow + +L + +This instrument can teach, it can illuminate; yes, and it can even +inspire. But it can do so only to the extent that humans are determined +to use it to those ends. Otherwise it is merely wires and lights in a box. + +=head2 v5.33.5 - Max Weber, (from "Understanding Administration", by Wolfgang Seibel) + +L + +Authority is primarily: Administration + -- Max Weber + +=head2 v5.33.4 - George Eliot, "Adam Bede" + +L + +It was more than two o'clock in the afternoon when Adam came in sight of +the grey town on the hill-side and looked searchingly towards the green +valley below, for the first glimpse of the old thatched roof near the +ugly red mill. + +=head2 v5.33.3 - Ludwig van Beethoven, "Heiligenstadt Testament"; translated and quoted in: Maynard Solomon, "Beethoven" + +L + +Oh you men who think or say that I am malevolent, stubborn, or +misanthropic, how greatly do you wrong me. You do not know the secret +cause which makes me seem that way to you. From childhood on, my +heart and soul have been full of the tender feeling of goodwill, and I +was ever inclined to accomplish great things. But, think that for six +years now I have been hopelessly afflicted, made worse by senseless +physicians, from year to year deceived with hopes of improvement, +finally compelled to face the prospect of a lasting malady (whose cure +will take years or, perhaps, be impossible). Though born with a +fiery, active temperament, even susceptible to the diversions of +society, I was soon compelled to withdraw myself, to live life alone. +[...] I endured this wretched existence--truly wretched for so +susceptible a body, which can be thrown by a sudden change from the +best condition to the very worst.--Patience, they say, is what I must +now choose for my guide, and I have done so--I hope my determination +will remain firm to endure until it pleases the inexorable Parcae to +break the thread. [...] Recommend virtue to your children; it alone, +not money, can make them happy. I speak from experience; this was +what upheld me in time of misery. [...] Do not wholly forget me when I +am dead; I deserve this from you, for during my lifetime I was +thinking of you often and of ways to make you happy--please be so-- + +=head2 v5.33.2 - Elizabeth Warren + +L + + What I've learned is that real change is very, very hard. But I've + also learned that change is possible - if you fight for it. + +=head2 v5.33.1 - Aleksandr Solzhenitsyn, The Gulag Archipelago 1918-1956 (1973) + +L + + If only there were evil people somewhere insidiously committing evil deeds, + and it were necessary only to separate them from the rest of us and destroy + them. But the line dividing good and evil cuts through the heart of every + human being. And who is willing to destroy a piece of his own heart? + +=head2 v5.33.0 - Confucius, "Confucius: The Analects" + +L + + The man who moves a mountain begins by carrying away small stones. + +=head2 v5.32.1-RC1 - Mikhail Bulgakov, trans. Michael Glenny, "The Heart of a Dog" + +L + +Why bother to learn to read when you can smell meat a mile away? If you +live in Moscow, though, and if you've got an ounce of brain in your head +you can't help learning to read - and without going to night-school +either. There are forty-thousand dogs in Moscow and I'll bet there's +not one of them so stupid he can't spell out the word 'sausage'. + +=head2 v5.32.0 - Bob Dylan, "The Times They Are A Changing" + +L + + Come gather 'round, people + Wherever you roam + And admit that the waters + Around you have grown + And accept it that soon + You'll be drenched to the bone + If your time to you is worth savin' + And you better start swimmin' + Or you'll sink like a stone + For the times they are a-changin' + +=head2 v5.32.0-RC1 - Coretta Scott King + +L + + Struggle is a never ending process. Freedom is never really won, + you earn it and win it in every generation. + +=head2 v5.32.0-RC0 - Franz Kafka + +L + + There are some things one can only achieve by a deliberate leap + in the opposite direction. + =head2 v5.31.11 - John F. Kennedy, National Committee for a Sane Nuclear Policy L -Mankind must put an end to war, or war will put an end to mankind. + Mankind must put an end to war, or war will put an end to mankind. =head2 v5.31.10 - Christina Rossetti, "Remember" @@ -244,6 +355,17 @@ L + +Trewsbury Mead [...] According to the Ordnance Survey, this is where the +Thames first rises 130 straight-line kilometres west of London. Just to +the north is the site either of an Iron Age hill fort or a Roman +encampment, the exact nature of which is awaiting an episode of Time +Team. Apparently there is a soggy field, a stone to mark the spot and a +chance, after a particularly wet winter, that you might see some water. + =head2 v5.30.2 - Francesco Maria Piave, trans. Deutsche Grammophon GmbH, "La traviata", Act II, Scene 2 L @@ -635,6 +757,16 @@ L + +The north end of the London Borough of Camden is dominated by two hills, +Hampstead on the west, Highgate on the east, with the Heath, one of the +largest parks in London, slung between them like a green saddle. From +these heights the land slopes down towards the River Thames and the +floodplains that lurk below the built-up centre of London. + =head2 v5.28.2 - Edward Lear, ed. Vivien Noakes, "The Complete Nonsense and Other Verse": The Jumblies L diff --git a/gnu/usr.bin/perl/Porting/exec-bit.txt b/gnu/usr.bin/perl/Porting/exec-bit.txt index bb0daee7336..d5c727ce36f 100644 --- a/gnu/usr.bin/perl/Porting/exec-bit.txt +++ b/gnu/usr.bin/perl/Porting/exec-bit.txt @@ -14,7 +14,6 @@ cpan/autodie/t/chmod.t cpan/CPAN-Meta-YAML/t/tml cpan/Test-Harness/t/source_tests/source.sh cpan/Test-Harness/t/source_tests/source_args.sh -dist/Devel-PPPort/devel/mkapidoc.sh dist/Devel-PPPort/devel/mktodo dist/Devel-PPPort/devel/regenerate dist/Devel-PPPort/devel/scanprov diff --git a/gnu/usr.bin/perl/Porting/makemeta b/gnu/usr.bin/perl/Porting/makemeta index f4c249079b0..760377e060e 100644 --- a/gnu/usr.bin/perl/Porting/makemeta +++ b/gnu/usr.bin/perl/Porting/makemeta @@ -49,12 +49,12 @@ my $distmeta = { 'repository' => { 'url' => 'https://github.com/Perl/perl5' }, - 'homepage' => 'http://www.perl.org/', + 'homepage' => 'https://www.perl.org/', 'bugtracker' => { 'web' => 'https://github.com/Perl/perl5/issues' }, 'license' => [ - 'http://dev.perl.org/licenses/' + 'https://dev.perl.org/licenses/' ], }, }; diff --git a/gnu/usr.bin/perl/Porting/makerel b/gnu/usr.bin/perl/Porting/makerel index bf4569bf98f..165c8cd32ab 100644 --- a/gnu/usr.bin/perl/Porting/makerel +++ b/gnu/usr.bin/perl/Porting/makerel @@ -31,7 +31,7 @@ sub usage { die < 1) } qw(Pod::Functions XS::APItest XS::Typemap); + $do_not_install{"ExtUtils::XSSymSet"} = 1 + unless $^O eq "VMS"; my (%done, %found); diff --git a/gnu/usr.bin/perl/Porting/pumpkin.pod b/gnu/usr.bin/perl/Porting/pumpkin.pod index 6f4ef812bc5..e952fb2b2da 100644 --- a/gnu/usr.bin/perl/Porting/pumpkin.pod +++ b/gnu/usr.bin/perl/Porting/pumpkin.pod @@ -35,15 +35,13 @@ interested in all the latest developments, you should definitely subscribe. The list is high volume, but generally has a fairly low noise level. -Subscribe by sending the message (in the body of your letter) +To subscribe to perl5-porters, send an email to - subscribe perl5-porters - -to perl5-porters-request@perl.org . + perl5-porters-subscribe@perl.org Archives of the list are held at: - http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/ + https://lists.perl.org/list/perl5-porters.html =head1 How are Perl Releases Numbered? @@ -318,7 +316,8 @@ changes pre-approved by the metaconfig maintainers =back -Such changes should also be notified to the metaconfig maintainers. +Such changes should also be notified to the metaconfig maintainers by +creating an issue at . Alternatively, do consider if the F<*ish.h> files or the hint files might be a better place for your changes. @@ -330,9 +329,9 @@ and F files in the metaconfig repository containing Perl's metaconfig units: # anonymous clone - git clone https://github.com/perl5-metaconfig/metaconfig.git + git clone https://github.com/Perl/metaconfig.git # or using a registered github.com identity with ssh - git clone github.com:perl5-metaconfig/metaconfig metaconfig + git clone github.com:Perl/metaconfig.git Since metaconfig is hard to change, running correction scripts after this generation is sometimes needed. Configure gained complexity over @@ -524,7 +523,7 @@ It is courteous to update that if necessary. I find the F utility quite handy for making patches. You can obtain it from any CPAN archive under -L. There are a couple +L. There are a couple of differences between my version and the standard one. I have mine do a @@ -544,9 +543,9 @@ Here's how I generate a new patch. I'll use the hypothetical 5.004_07 to 5.004_08 patch as an example. # unpack perl5.004_07/ - gzip -d -c perl5.004_07.tar.gz | tar -xf - + gzip -d -c perl5.004_07.tar.gz | tar -xof - # unpack perl5.004_08/ - gzip -d -c perl5.004_08.tar.gz | tar -xf - + gzip -d -c perl5.004_08.tar.gz | tar -xof - makepatch perl5.004_07 perl5.004_08 > perl5.004_08.pat Makepatch will automatically generate appropriate B commands to remove diff --git a/gnu/usr.bin/perl/Porting/release_announcement_template.txt b/gnu/usr.bin/perl/Porting/release_announcement_template.txt index 7efbe15e6b9..55b62674bff 100644 --- a/gnu/usr.bin/perl/Porting/release_announcement_template.txt +++ b/gnu/usr.bin/perl/Porting/release_announcement_template.txt @@ -23,7 +23,7 @@ https://metacpan.org/pod/release/[AUTHOR]/perl-5.[VERSION.SUBVERSION]/pod/perlde [ACKNOWLEDGEMENTS SECTION FROM PERLDELTA] We expect to release version [NEXT BLEAD VERSION.SUBVERSION] on [FUTURE -DATE]. The next major stable release of Perl 5, version 30.0, should -appear in May 2019. +DATE]. The next major stable release of Perl 5, version 32.0, should +appear in May 2020. [YOUR SALUTATION HERE] diff --git a/gnu/usr.bin/perl/Porting/release_managers_guide.pod b/gnu/usr.bin/perl/Porting/release_managers_guide.pod index 2e725d17d50..c9f729f4eb7 100644 --- a/gnu/usr.bin/perl/Porting/release_managers_guide.pod +++ b/gnu/usr.bin/perl/Porting/release_managers_guide.pod @@ -141,23 +141,17 @@ Andreas' email address at: https://pause.perl.org/pause/query?ACTION=pause_04imprint -=head3 GitHub issue management access - -Make sure you have permission to close tickets on L -so you can respond to bug reports as necessary during your stint. If you -don't, make a GitHub account (if you don't have one) and contact the pumpking -with your username to get ticket-closing permission. - -=head3 git checkout and commit bit +=head3 GitHub access You will need a working C installation, checkout of the perl git repository and perl commit bit. For information about working with perl and git, see F. If you are not yet a perl committer, you won't be able to make a -release. Have a chat with whichever evil perl porter tried to talk -you into the idea in the first place to figure out the best way to -resolve the issue. +release. You will need to have a GitHub account (if you don't have one) +and contact the pumpking with your username to get membership of the L<< +Perl-Release-Managers|https://github.com/orgs/Perl/teams/perl-release-managers +>> team. =head3 web-based file share @@ -166,10 +160,6 @@ pre-release testing, and you may wish to upload to PAUSE via URL. Make sure you have a way of sharing files, such as a web server or file-sharing service. -Porters have access to the "dromedary" server (users.perl5.git.perl.org), -which has a F directory to share files with. -(L) - If you use Dropbox, you can append "raw=1" as a parameter to their usual sharing link to allow direct download (albeit with redirects). @@ -374,6 +364,10 @@ the raw reports. Similarly, monitor the smoking of perl for compiler warnings, and try to fix. +Additionally both L and +L smokers run +automatically. + =for checklist skip BLEAD-POINT =head3 monitor CPAN testers for failures @@ -388,14 +382,6 @@ colon-delimited versions to use for comparison. For example: L -=head3 Monitor Continuous Integration smokers - -Currently both "Travis CI" and "GitHub Actions" smokers are setup. -Their current status is available at: - -L -L - =head3 update perldelta Get perldelta in a mostly finished state. @@ -508,6 +494,33 @@ release (so for 5.15.3 this would be 5.15.2). If the last release manager followed instructions, this should have already been done after the last blead release, so you may find nothing to do here. +=head3 update AUTHORS + +The AUTHORS file can be updated by running C +The script detects missing authors or committers since the last release using +a known tag provided by the C<--from=v5.X.Y> argument, and will add missing +entries to the AUTHORS file. + + $ perl Porting/checkAUTHORS.pl --update --from=v5.X.Y + +For MAINT and BLEAD-FINAL releases, C needs to refer to the last +release in the previous development cycle (so for example, for a 5.14.x +release, this would be 5.13.11). + +For BLEAD-POINT releases, it needs to refer to the previous BLEAD-POINT +release (so for 5.15.3 this would be 5.15.2). + +Note: It should not be harmful to use a wider range. + +Note: If you have uncommitted changes this could cause some warnings, +and you might like to use the addtional argument C<--to=upstream/blead> +to use the last known git commit by GitHub. + +Review the changes to the AUTHORS file, be sure you are not adding duplicate +entries or removing any entries, then commit your changes. + + $ git commit -a AUTHORS -m 'Update AUTHORS list for 5.x.y' + =head3 Check copyright years Check that the copyright years are up to date by running: @@ -1149,11 +1162,6 @@ eliminate anxious gnashing of teeth while you wait to see if your 15 megabyte HTTP upload successfully completes across your slow, twitchy cable modem. -You can make use of your home directory on dromedary for -this purpose: F maps to -F, where F is your login account -on dromedary. - I: if your upload is partially successful, you may need to contact a PAUSE administrator or even bump the version of perl. diff --git a/gnu/usr.bin/perl/Porting/release_schedule.pod b/gnu/usr.bin/perl/Porting/release_schedule.pod index b815ec17f8e..939baddafe3 100644 --- a/gnu/usr.bin/perl/Porting/release_schedule.pod +++ b/gnu/usr.bin/perl/Porting/release_schedule.pod @@ -13,35 +13,15 @@ deemed necessary by the Pumpking. =head2 Perl 5.32 -Code freezes (which happen in the 5.31.X series) - - 2020-01-20 5.31.8 ✓ Contentious changes freeze - 2020-02-20 5.31.9 ✓ User-visible changes to correctly - functioning programs freeze - 2020-03-20 5.31.10 ✓ Full code freeze - 2020-04-28 5.31.11 ✓ Full code freeze (clearing BBCs) - 2020-05-20 5.32.0 Stable release! (Hopefully) + 2020-06-20 5.32.0 ✓ Sawyer X + 2021-01-23 5.32.1 Steve Hay =head2 Perl 5.30 2019-05-22 5.30.0 ✓ Sawyer X 2019-11-10 5.30.1 ✓ Steve Hay 2020-03-14 5.30.2 ✓ Steve Hay - 2020-06-01 5.30.3 Steve Hay - -=head2 Perl 5.28 - - 2018-05-20 5.28.0 ✓ Sawyer X - 2018-11-29 5.28.1 ✓ Steve Hay - 2019-04-19 5.28.2 ✓ Steve Hay - 2020-06-01 5.28.3 Steve Hay - -=head2 Perl 5.26 - - 2017-05-30 5.26.0 ✓ Sawyer X - 2017-09-22 5.26.1 ✓ Steve Hay - 2018-04-14 5.26.2 ✓ Steve Hay - 2018-11-29 5.26.3 ✓ Steve Hay + 2020-06-01 5.30.3 ✓ Steve Hay =head1 DEVELOPMENT RELEASE SCHEDULE @@ -57,23 +37,18 @@ When shipping a release, you should include the schedule for (at least) the next four releases. If a stable version of Perl is released, you should reset the version numbers to the next blead series. -=head2 Perl 5.31 - - 2019-05-23 5.31.0 ✓ Sawyer X - 2019-06-20 5.31.1 ✓ Karen Etheridge - 2019-07-20 5.31.2 ✓ Steve Hay - 2019-08-20 5.31.3 ✓ Tom Hukins - 2019-09-20 5.31.4 ✓ Max Maischein - 2019-10-20 5.31.5 ✓ Steve Hay - 2019-11-20 5.31.6 ✓ BinGOs - 2019-12-20 5.31.7 ✓ Atoomic - 2020-01-20 5.31.8 ✓ Matthew Horsfall - 2020-02-20 5.31.9 ✓ Renee Bäcker - 2020-03-20 5.31.10 ✓ Sawyer X - 2020-04-28 5.31.11 ✓ Sawyer X - -(RC0 for 5.32.0 will be released once we think that all the blockers have been -addressed. This typically means some time in April or May.) +=head2 Perl 5.33 + + 2020-07-17 5.33.0 ✓ Sawyer X + 2020-08-20 5.33.1 ✓ Karen Etheridge + 2020-09-20 5.33.2 ✓ Sawyer X + 2020-10-20 5.33.3 ✓ Steve Hay + 2020-11-20 5.33.4 ✓ Tom Hukins + 2020-12-20 5.33.5 ✓ Max Maischein + 2021-01-20 5.33.6 ✓ Richard Leach + 2021-02-20 5.33.7 Renee Backer + 2021-03-20 5.33.8 Atoomic + 2021-04-20 5.33.9 Todd Rinaldo =head1 VICTIMS diff --git a/gnu/usr.bin/perl/Porting/sync-with-cpan b/gnu/usr.bin/perl/Porting/sync-with-cpan index bde97a4ac78..4b3a18b5e87 100644 --- a/gnu/usr.bin/perl/Porting/sync-with-cpan +++ b/gnu/usr.bin/perl/Porting/sync-with-cpan @@ -589,7 +589,7 @@ unlink "cpan/$new_file" unless $tarball; # # Run the tests. First the test belonging to the module, followed by the -# the tests in t/porting +# tests in t/porting # chdir "t"; say "Running module tests"; diff --git a/gnu/usr.bin/perl/Porting/todo.pod b/gnu/usr.bin/perl/Porting/todo.pod index 30f47ba5c14..493fe19788d 100644 --- a/gnu/usr.bin/perl/Porting/todo.pod +++ b/gnu/usr.bin/perl/Porting/todo.pod @@ -486,7 +486,7 @@ Natively 64-bit systems need neither -Duse64bitint nor -Duse64bitall. On these systems, it might be the default compilation mode, and there is currently no guarantee that passing no use64bitall option to the Configure process will build a 32bit perl. Implementing -Duse32bit* -options would be nice for perl 5.26.0. +options would be nice for perl 5.32.1. =head2 Profile Perl - am I hot or not? @@ -508,12 +508,6 @@ suggest evictions and promotions to achieve a better F. One piece of Perl code that might make a good testbed is F. -=head2 Improve win32/wince.c - -Currently, numerous functions look virtually, if not completely, -identical in both F and F files, which can't -be good. - =head2 Use secure CRT functions when building with VC8 on Win32 Visual C++ 2005 (VC++ 8.x) deprecated a number of CRT functions on the basis @@ -545,7 +539,7 @@ read-only attribute). Furthermore, POSIX::access() behaves differently for directories having the read-only attribute set depending on what CRT library is being used. For -example, the _access() function in the VC6 and VC7 CRTs (wrongly) claim that +example, the _access() function in the VC7 CRT (wrongly) claims that such directories are not writable, whereas in fact all directories are writable unless access is denied by DACLs. (In the case of directories, the read-only attribute actually only means that the directory cannot be deleted.) This CRT @@ -952,26 +946,15 @@ Logically all lexicals used only once should warn, if the user asks for warnings. An unworked RT ticket (#5087) has been open for almost seven years for this discrepancy. -=head2 UTF-8 revamp - -The handling of Unicode is unclean in many places. In the regex engine -there are especially many problems. The swash data structure could be -replaced my something better. Inversion lists and maps are likely -candidates. The whole Unicode database could be placed in-core for a -huge speed-up. Only minimal work was done on the optimizer when utf8 -was added, with the result that the synthetic start class often will -fail to narrow down the possible choices when given non-Latin1 input. -Karl Williamson has been working on this - talk to him. - =head2 state variable initialization in list context Currently this is illegal: state ($a, $b) = foo(); -In Perl 6, C and C<(state $a) = foo();> have different +In Raku, C and C<(state $a) = foo();> have different semantics, which is tricky to implement in Perl 5 as currently they produce -the same opcode trees. The Perl 6 design is firm, so it would be good to +the same opcode trees. The Raku design is firm, so it would be good to implement the necessary code in Perl 5. There are comments in C that show the code paths taken by various assignment constructions involving state variables. @@ -1206,7 +1189,7 @@ L =head1 Big projects Tasks that will get your name mentioned in the description of the "Highlights -of 5.26.0" +of 5.32.1" =head2 make ithreads more robust diff --git a/gnu/usr.bin/perl/README b/gnu/usr.bin/perl/README index 93840d24043..859122434fa 100644 --- a/gnu/usr.bin/perl/README +++ b/gnu/usr.bin/perl/README @@ -1,6 +1,6 @@ Perl is Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, -2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 by Larry Wall and others. +2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 by Larry Wall and others. All rights reserved. @@ -68,7 +68,7 @@ and there may be a more recent version that fixes bugs you've run into or adds new features that you might find useful. You can always find the latest version of perl on a CPAN (Comprehensive Perl -Archive Network) site near you at http://www.cpan.org/src/ +Archive Network) site near you at https://www.cpan.org/src/ If you want to submit a simple patch to the perl source, see the "SUPER QUICK PATCH GUIDE" in pod/perlhack.pod. @@ -104,7 +104,7 @@ You should also have received a copy of the GNU General Public License along with this program in the file named "Copying". If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA or visit their web page on the internet at -http://www.gnu.org/copyleft/gpl.html. +https://www.gnu.org/copyleft/gpl.html. For those of you that choose to use the GNU General Public License, my interpretation of the GNU General Public License is that no Perl diff --git a/gnu/usr.bin/perl/README.android b/gnu/usr.bin/perl/README.android index defcd959992..c9be849cb32 100644 --- a/gnu/usr.bin/perl/README.android +++ b/gnu/usr.bin/perl/README.android @@ -8,9 +8,9 @@ perlandroid - Perl under Android =head1 SYNOPSIS -The first portions of this documents contains instructions +The first portions of this document contains instructions to cross-compile Perl for Android 2.0 and later, using the -binaries provided by Google. The latter portion describes how to build +binaries provided by Google. The latter portions describe how to build perl native using one of the toolchains available on the Play Store. =head1 DESCRIPTION @@ -181,10 +181,13 @@ itself off once, and then back on again. =head1 Native Builds While Google doesn't provide a native toolchain for Android, -you can still get one from the Play Store; for example, there's the CCTools -app which you can get for free. -Keep in mind that you want a full -toolchain; some apps tend to default to installing only a barebones +you can still get one from the Play Store. + +=head2 CCTools + +You may be able to get the CCTools app, which is free. +Keep in mind that you want a full toolchain; +some apps tend to default to installing only a barebones version without some important utilities, like ar or nm. Once you have the toolchain set up properly, the only @@ -197,6 +200,17 @@ compiling perl is little more than: export LD_LIBRARY_PATH="$SYSROOT/lib:`pwd`:`pwd`/lib:`pwd`/lib/auto:$LD_LIBRARY_PATH" sh Configure -des -Dsysroot=$SYSROOT -Alibpth="/system/lib /vendor/lib" +=head2 Termux + +L provides an Android terminal emulator and Linux environment. +It comes with a cross-compiled perl already installed. + +Natively compiling perl 5.30 or later should be as straightforward as: + + sh Configure -des -Alibpth="/system/lib /vendor/lib" + +This certainly works on Android 8.1 (Oreo) at least... + =head1 AUTHOR Brian Fraser diff --git a/gnu/usr.bin/perl/README.bs2000 b/gnu/usr.bin/perl/README.bs2000 index 57b3eb4bf00..bfed5d5e487 100644 --- a/gnu/usr.bin/perl/README.bs2000 +++ b/gnu/usr.bin/perl/README.bs2000 @@ -227,12 +227,11 @@ To subscribe, send an empty message to perl-mvs-subscribe@perl.org. See also: - http://lists.perl.org/list/perl-mvs.html + https://lists.perl.org/list/perl-mvs.html There are web archives of the mailing list at: - http://www.xray.mpe.mpg.de/mailing-lists/perl-mvs/ - http://archive.develooper.com/perl-mvs@perl.org/ + https://www.nntp.perl.org/group/perl.mvs/ =head1 HISTORY diff --git a/gnu/usr.bin/perl/README.ce b/gnu/usr.bin/perl/README.ce deleted file mode 100644 index fdf636f8f06..00000000000 --- a/gnu/usr.bin/perl/README.ce +++ /dev/null @@ -1,453 +0,0 @@ -If you read this file _as_is_, just ignore the funny characters you -see. It is written in the POD format (see pod/perlpod.pod) which is -specifically designed to be readable as is. - -=head1 NAME - -perlce - Perl for WinCE - -=head1 Building Perl for WinCE - -=head2 WARNING - -B<< Much of this document has become very out of date and needs updating, -rewriting or deleting. The build process was overhauled during the 5.19 -development track and the current instructions as of that time are given -in L; the previous build instructions, which -are largely superseded but may still contain some useful information, are -left in L but really need removing after anything -of use has been extracted from them. >> - -=head2 DESCRIPTION - -This file gives the instructions for building Perl5.8 and above for -WinCE. Please read and understand the terms under which this -software is distributed. - -=head2 General explanations on cross-compiling WinCE - -=over - -=item * - -F is built. This is a single executable (without DLL), intended -to run on Win32, and it will facilitate remaining build process; all binaries -built after it are foreign and should not run locally. - -F is built using F<./win32/Makefile>; this is part of normal -build process invoked as dependency from wince/Makefile.ce - -=item * - -After F is built, F is invoked to create right F -in right place and its corresponding Cross.pm. - -Unlike Win32 build, miniperl will not have F of host within reach; -it rather will use F from within cross-compilation directories. - -File F is dead simple: for given cross-architecture places in @INC -a path where perl modules are, and right F in that place. - -That said, C should report an error, because -it can not find F. If it does not give an error -- wrong F -is substituted, and resulting binaries will be a mess. - -C should run okay, and it will provide right -F for further compilations. - -=item * - -During extensions build phase, a script F<./win32/buildext.pl> is invoked, -which in turn steps in F<./ext> subdirectories and performs a build of -each extension in turn. - -All invokes of F are provided with C<-MCross> so to enable cross- -compile. - -=back - -=head2 CURRENT BUILD INSTRUCTIONS - -(These instructions assume the host is 32-bit Windows. If you're on 64-bit -Windows then change "C:\Program Files" to "C:\Program Files (x86)" throughout.) - -1. Install EVC4 from - - http://download.microsoft.com/download/c/3/f/c3f8b58b-9753-4c2e-8b96-2dfe3476a2f7/eVC4.exe - -Use the key mentioned at - - http://download.cnet.com/Microsoft-eMbedded-Visual-C/3000-2212_4-10108490.html?tag=bc - -The installer is ancient and has a few bugs on the paths it uses. You -will have to fix them later. Basically, some things go into "C:/Program -Files/Windows CE Tools", others go into "C:/Windows CE Tools" regardless -of the path you gave to the installer (the default will be "C:/Windows -CE Tools"). Reboots will be required for the installer to proceed. Also -.c and .h associations with Visual Studio might get overridden when -installing EVC4. You have been warned. - -2. Download celib from GitHub (using "Download ZIP") at - - https://github.com/bulk88/celib - -Extract it to a spaceless path but not into the perl build source. -I call this directory "celib-palm-3.0" but in the GitHub -snapshot it will be called "celib-master". Make a copy of the -"wince-arm-pocket-wce300-release" folder and rename the copy to -"wince-arm-pocket-wce400". This is a hack so we can build a CE 4.0 -binary by linking in CE 3.0 ARM asm; the linker doesn't care. Windows -Mobile/WinCE are backwards compatible with machine code like Desktop Windows. - -3. Download console-1.3-src.tar.gz from - - http://sourceforge.net/projects/perlce/files/PerlCE%20support%20files/console/ - -Extract it to a spaceless path but not into the perl build source. -Don't extract it into the same directory as celib. Make a copy of the -"wince-arm-pocket-wce300" folder and rename the copy to -"wince-arm-pocket-wce400". This is a hack so we can build a CE 4.0 -binary by linking in CE 3.0 ARM asm; the linker doesn't care. Windows -Mobile/WinCE are backwards compatible with machine code like Desktop Windows. - -4. Open a command prompt, run your regular batch file to set the environment -for desktop Visual C building, goto the perl source directory, cd into win32/, -fill out Makefile, and do a "nmake all" to build a Desktop Perl. - -5. Open win32/Makefile.ce in a text editor and do something similar to the -following patch. - - -CELIBDLLDIR = h:\src\wince\celib-palm-3.0 - -CECONSOLEDIR = h:\src\wince\w32console - +CELIBDLLDIR = C:\sources\celib-palm-3.0 - +CECONSOLEDIR = C:\sources\w32console - -Also change - - !if "$(MACHINE)" == "" - MACHINE=wince-arm-hpc-wce300 - #MACHINE=wince-arm-hpc-wce211 - #MACHINE=wince-sh3-hpc-wce211 - #MACHINE=wince-mips-hpc-wce211 - #MACHINE=wince-sh3-hpc-wce200 - #MACHINE=wince-mips-hpc-wce200 - #MACHINE=wince-arm-pocket-wce300 - #MACHINE=wince-mips-pocket-wce300 - #MACHINE=wince-sh3-pocket-wce300 - #MACHINE=wince-x86em-pocket-wce300 - #MACHINE=wince-mips-palm-wce211 - #MACHINE=wince-sh3-palm-wce211 - #MACHINE=wince-x86em-palm-wce211 - #MACHINE=wince-x86-hpc-wce300 - #MACHINE=wince-arm-pocket-wce400 - !endif - -to - - !if "$(MACHINE)" == "" - #MACHINE=wince-arm-hpc-wce300 - #MACHINE=wince-arm-hpc-wce211 - #MACHINE=wince-sh3-hpc-wce211 - #MACHINE=wince-mips-hpc-wce211 - #MACHINE=wince-sh3-hpc-wce200 - #MACHINE=wince-mips-hpc-wce200 - #MACHINE=wince-arm-pocket-wce300 - #MACHINE=wince-mips-pocket-wce300 - #MACHINE=wince-sh3-pocket-wce300 - #MACHINE=wince-x86em-pocket-wce300 - #MACHINE=wince-mips-palm-wce211 - #MACHINE=wince-sh3-palm-wce211 - #MACHINE=wince-x86em-palm-wce211 - #MACHINE=wince-x86-hpc-wce300 - MACHINE=wince-arm-pocket-wce400 - !endif - -so wince-arm-pocket-wce400 is the MACHINE type. - -6. Use a text editor to open "C:\Program Files\Microsoft eMbedded C++ -4.0\EVC\WCE400\BIN\WCEARMV4.BAT". Look for - - if "%SDKROOT%"=="" set SDKROOT=... - -On a new install it is "C:\Windows CE Tools". Goto -"C:\Windows CE Tools" in a file manager and see if "C:\Windows CE -Tools\wce400\STANDARDSDK\Include\Armv4" exists on your disk. If not -the SDKROOT need to be changed to "C:\Program Files\Windows CE Tools". - -Goto celib-palm-3.0\inc\cewin32.h, search for - - typedef struct _ABC { - -and uncomment the struct. - -7. Open another command prompt, ensure PLATFORM is not set to anything -already unless you know what you're doing (so that the correct default -value is set by the next command), and run "C:\Program Files\Microsoft -eMbedded C++ 4.0\EVC\WCE400\BIN\WCEARMV4.BAT" - -8. In the WinCE command prompt you made with WCEARMV4.BAT, goto the perl -source directory, cd into win32/ and run "nmake -f Makefile.ce". - -9. The ARM perl interpreter (perl519.dll and perl.exe) will be in something -like "C:\perl519\src\win32\wince-arm-pocket-wce400", with the XS DLLs in -"C:\perl519\src\xlib\wince-arm-hpc-wce400\auto". - -To prove success on the host machine, run -"dumpbin /headers wince-arm-pocket-wce400\perl.exe" from the win32/ folder -and look for "machine (ARM)" in the FILE HEADER VALUES and -"subsystem (Windows CE GUI)" in the OPTIONAL HEADER VALUES. - -=head2 OLD BUILD INSTRUCTIONS - -This section describes the steps to be performed to build PerlCE. -You may find additional information about building perl for WinCE -at L and some pre-built binaries. - -=head3 Tools & SDK - -For compiling, you need following: - -=over 4 - -=item * Microsoft Embedded Visual Tools - -=item * Microsoft Visual C++ - -=item * Rainer Keuchel's celib-sources - -=item * Rainer Keuchel's console-sources - -=back - -Needed source files can be downloaded at -L - -=head3 Make - -Normally you only need to edit F<./win32/ce-helpers/compile.bat> -to reflect your system and run it. - -File F<./win32/ce-helpers/compile.bat> is actually a wrapper to call -C with appropriate parameters and it accepts extra -parameters and forwards them to C command as additional -arguments. You should pass target this way. - -To prepare distribution you need to do following: - -=over 4 - -=item * go to F<./win32> subdirectory - -=item * edit file F<./win32/ce-helpers/compile.bat> - -=item * run - compile.bat - -=item * run - compile.bat dist - -=back - -F has C macro, and it is used further to refer to -your cross-compilation scheme. You could assign a name to it, but this -is not necessary, because by default it is assigned after your machine -configuration name, such as "wince-sh3-hpc-wce211", and this is enough -to distinguish different builds at the same time. This option could be -handy for several different builds on same platform to perform, say, -threaded build. In a following example we assume that all required -environment variables are set properly for C cross-compiler (a special -*.bat file could fit perfectly to this purpose) and your F -has proper "MACHINE" parameter set, to, say, C. - - compile.bat - compile.bat dist - compile.bat CROSS_NAME=mips-wce300-thr "USE_ITHREADS=define" ^ - "USE_IMP_SYS=define" "USE_MULTI=define" - compile.bat CROSS_NAME=mips-wce300-thr "USE_ITHREADS=define" ^ - "USE_IMP_SYS=define" "USE_MULTI=define" dist - -If all goes okay and no errors during a build, you'll get two independent -distributions: C and C. - -Target C prepares distribution file set. Target C performs -same as C but additionally compresses distribution files into zip -archive. - -NOTE: during a build there could be created a number (or one) of F -for cross-compilation ("foreign" F) and those are hidden inside -F<../xlib/$(CROSS_NAME)> with other auxiliary files, but, and this is important to -note, there should be B F for host miniperl. -If you'll get an error that perl could not find Config.pm somewhere in building -process this means something went wrong. Most probably you forgot to -specify a cross-compilation when invoking miniperl.exe to Makefile.PL -When building an extension for cross-compilation your command line should -look like - - ..\miniperl.exe -I..\lib -MCross=mips-wce300-thr Makefile.PL - -or just - - ..\miniperl.exe -I..\lib -MCross Makefile.PL - -to refer a cross-compilation that was created last time. - -All questions related to building for WinCE devices could be asked in -F mailing list. - -=head1 Using Perl on WinCE - -=head2 DESCRIPTION - -PerlCE is currently linked with a simple console window, so it also -works on non-hpc devices. - -The simple stdio implementation creates the files F, -F and F, so you might examine them if your -console has only a limited number of cols. - -When exitcode is non-zero, a message box appears, otherwise the -console closes, so you might have to catch an exit with -status 0 in your program to see any output. - -stdout/stderr now go into the files F and -F - -PerlIDE is handy to deal with perlce. - -=head2 LIMITATIONS - -No fork(), pipe(), popen() etc. - -=head2 ENVIRONMENT - -All environment vars must be stored in HKLM\Environment as -strings. They are read at process startup. - -=over - -=item PERL5LIB - -Usual perl lib path (semi-list). - -=item PATH - -Semi-list for executables. - -=item TMP - -- Tempdir. - -=item UNIXROOTPATH - -- Root for accessing some special files, i.e. F, F. - -=item ROWS/COLS - -- Rows/cols for console. - -=item HOME - -- Home directory. - -=item CONSOLEFONTSIZE - -- Size for console font. - -=back - -You can set these with cereg.exe, a (remote) registry editor -or via the PerlIDE. - -=head2 REGISTRY - -To start perl by clicking on a perl source file, you have -to make the according entries in HKCR (see F). -cereg.exe (which must be executed on a desktop pc with -ActiveSync) is reported not to work on some devices. -You have to create the registry entries by hand using a -registry editor. - -=head2 XS - -The following Win32-Methods are built-in: - - newXS("Win32::GetCwd", w32_GetCwd, file); - newXS("Win32::SetCwd", w32_SetCwd, file); - newXS("Win32::GetTickCount", w32_GetTickCount, file); - newXS("Win32::GetOSVersion", w32_GetOSVersion, file); - newXS("Win32::IsWinNT", w32_IsWinNT, file); - newXS("Win32::IsWin95", w32_IsWin95, file); - newXS("Win32::IsWinCE", w32_IsWinCE, file); - newXS("Win32::CopyFile", w32_CopyFile, file); - newXS("Win32::Sleep", w32_Sleep, file); - newXS("Win32::MessageBox", w32_MessageBox, file); - newXS("Win32::GetPowerStatus", w32_GetPowerStatus, file); - newXS("Win32::GetOemInfo", w32_GetOemInfo, file); - newXS("Win32::ShellEx", w32_ShellEx, file); - -=head2 BUGS - -Opening files for read-write is currently not supported if -they use stdio (normal perl file handles). - -If you find bugs or if it does not work at all on your -device, send mail to the address below. Please report -the details of your device (processor, ceversion, -devicetype (hpc/palm/pocket)) and the date of the downloaded -files. - -=head2 INSTALLATION - -Currently installation instructions are at L. - -After installation & testing processes will stabilize, information will -be more precise. - -=head1 ACKNOWLEDGEMENTS - -The port for Win32 was used as a reference. - -=head1 History of WinCE port - -=over - -=item 5.6.0 - -Initial port of perl to WinCE. It was performed in separate directory -named F. This port was based on contents of F<./win32> directory. -F was not built, user must have HOST perl and properly edit -F to reflect this. - -=item 5.8.0 - -wince port was kept in the same F<./wince> directory, and F -was used to invoke native compiler to create HOST miniperl, which then -facilitates cross-compiling process. -Extension building support was added. - -=item 5.9.4 - -Two directories F<./win32> and F<./wince> were merged, so perlce build -process comes in F<./win32> directory. - -=back - -=head1 AUTHORS - -=over - -=item Rainer Keuchel - -provided initial port of Perl, which appears to be most essential work, as -it was a breakthrough on having Perl ported at all. -Many thanks and obligations to Rainer! - -=item Vadim Konovalov - -made further support of WinCE port. - -=item Daniel Dragan - -updated the build process during the 5.19 development track. - -=back diff --git a/gnu/usr.bin/perl/README.cygwin b/gnu/usr.bin/perl/README.cygwin index 90fb14ba15c..5885ac5f694 100644 --- a/gnu/usr.bin/perl/README.cygwin +++ b/gnu/usr.bin/perl/README.cygwin @@ -27,7 +27,7 @@ platforms. They run thanks to the Cygwin library which provides the UNIX system calls and environment these programs expect. More information about this project can be found at: -L +L A recent net or commercial release of Cygwin is required. @@ -419,13 +419,13 @@ or: as parent(0x6FB30000) != 0x6FE60000 46 [main] perl 3488 fork: child 3588 - died waiting for dll loading, errno11 -See L +See L It helps if not too many DLLs are loaded in memory so the available address space is larger, e.g. stopping the MS Internet Explorer might help. Use the perlrebase or rebase utilities to resolve the conflicting dll addresses. The rebase package is included in the Cygwin setup. Use F -from L to install it. +from L to install it. 1. kill all perl processes and run C or @@ -523,7 +523,7 @@ path is mounted in textmode. =item C Cygwin does not initialize all original Win32 environment variables. -See the bottom of this page L +See the bottom of this page L for "Restricted Win32 environment". Certain Win32 programs called from cygwin programs might need some environment diff --git a/gnu/usr.bin/perl/README.haiku b/gnu/usr.bin/perl/README.haiku index a7913cdd271..784eadc473d 100644 --- a/gnu/usr.bin/perl/README.haiku +++ b/gnu/usr.bin/perl/README.haiku @@ -22,9 +22,9 @@ The build procedure is completely standard: Make perl executable and create a symlink for libperl: chmod a+x /boot/common/bin/perl - cd /boot/common/lib; ln -s perl5/5.30.3/BePC-haiku/CORE/libperl.so . + cd /boot/common/lib; ln -s perl5/5.32.1/BePC-haiku/CORE/libperl.so . -Replace C<5.30.3> with your respective version of Perl. +Replace C<5.32.1> with your respective version of Perl. =head1 KNOWN PROBLEMS diff --git a/gnu/usr.bin/perl/README.hurd b/gnu/usr.bin/perl/README.hurd index 8cb05634248..6ce3c2ee06f 100644 --- a/gnu/usr.bin/perl/README.hurd +++ b/gnu/usr.bin/perl/README.hurd @@ -9,7 +9,7 @@ perlhurd - Perl version 5 on Hurd =head1 DESCRIPTION If you want to use Perl on the Hurd, I recommend using the Debian -GNU/Hurd distribution ( see L ), even if an +GNU/Hurd distribution ( see L ), even if an official, stable release has not yet been made. The old "gnu-0.2" binary distribution will most certainly have additional problems. diff --git a/gnu/usr.bin/perl/README.linux b/gnu/usr.bin/perl/README.linux index ab9e2d5f5cd..4e8fd69f5a8 100644 --- a/gnu/usr.bin/perl/README.linux +++ b/gnu/usr.bin/perl/README.linux @@ -11,19 +11,30 @@ perllinux - Perl version 5 on Linux systems This document describes various features of Linux that will affect how Perl version 5 (hereafter just Perl) is compiled and/or runs. +=head2 Deploying Perl on Linux + +Normally one can install F on Linux using your distribution's +package manager (e.g: C, or +C). Note that sometimes one needs to install some +extra system packages in order to be able to use CPAN frontends, and that +messing with the system's perl is not always recommended. One can use +L to avoid such issues. + +Otherwise, perl should build fine on Linux using the mainstream compilers +GCC and clang, while following the usual instructions. + =head2 Experimental Support for Sun Studio Compilers for Linux OS Sun Microsystems has released a port of their Sun Studio compilers for -Linux. As of November 2005, only an alpha version has been released. -Until a release of these compilers is made, support for compiling Perl with -these compiler experimental. +Linux. As of May 2019, the last stable release took place on 2017, and one can +buy support contracts for them. -Also, some special instructions for building Perl with Sun Studio on Linux. -Following the normal C, you have to run make as follows: +There are some special instructions for building Perl with Sun Studio on +Linux. Following the normal C, you have to run make as follows: LDLOADLIBS=-lc make -C is an environment variable used by the linker to link modules +C is an environment variable used by the linker to link C modules to glibc. Currently, that environment variable is not getting populated by a combination of C entries and C. While there may be a bug somewhere in Perl's configuration or diff --git a/gnu/usr.bin/perl/README.macosx b/gnu/usr.bin/perl/README.macosx index 242c4975cca..3ebfc6df16d 100644 --- a/gnu/usr.bin/perl/README.macosx +++ b/gnu/usr.bin/perl/README.macosx @@ -10,9 +10,9 @@ perlmacosx - Perl under Mac OS X This document briefly describes Perl under Mac OS X. - curl -O http://www.cpan.org/src/perl-5.30.3.tar.gz - tar -xzf perl-5.30.3.tar.gz - cd perl-5.30.3 + curl -O https://www.cpan.org/src/perl-5.32.1.tar.gz + tar -xzf perl-5.32.1.tar.gz + cd perl-5.32.1 ./Configure -des -Dprefix=/usr/local/ make make test @@ -20,7 +20,7 @@ This document briefly describes Perl under Mac OS X. =head1 DESCRIPTION -The latest Perl release (5.30.3 as of this writing) builds without changes +The latest Perl release (5.32.1 as of this writing) builds without changes under all versions of Mac OS X from 10.3 "Panther" onwards. In order to build your own version of Perl you will need 'make', @@ -141,8 +141,8 @@ modules (C), as the required Apple frameworks do not provide PPC64 support. Similarly, downloads from Fink or Darwinports are unlikely to provide 64-bit support; the libraries must be rebuilt from source with the appropriate compiler and linker flags. For further information, see Apple's -I<64-Bit Transition Guide> at -L. +I<64-Bit Transition Guide> at +L. =head2 libperl and Prebinding @@ -223,7 +223,7 @@ access Foundation (i.e. non-GUI) classes and objects. An alternative is CamelBones, a framework that allows access to both Foundation and AppKit classes and objects, so that full GUI applications can be built in Perl. CamelBones can be found on SourceForge, at -L. +L. =head1 Starting From Scratch @@ -258,7 +258,7 @@ or rebuild Perl from the source code with C) is a nice +"Pacifist" from CharlesSoft (L) is a nice way to extract the Perl binaries from the OS media, without having to reinstall the entire OS. diff --git a/gnu/usr.bin/perl/README.os2 b/gnu/usr.bin/perl/README.os2 index d43c6e3c4c6..1c7cd661ddc 100644 --- a/gnu/usr.bin/perl/README.os2 +++ b/gnu/usr.bin/perl/README.os2 @@ -300,7 +300,7 @@ with perl ../../blah/foo.cmd arg1 arg2 arg3 (note that the argument C<-my_opts> is taken care of by the C line -in your script, see L on the first line>). +in your script, see L on the first line>). To understand what the above I does, read perl docs about C<-S> switch - see L, and cmdref about C: @@ -436,7 +436,7 @@ managed to goof. C<;-)> =item * Did you run your programs with C<-w> switch? See -L2 (and DOS) programs under Perl>. +L2 (and DOS) programs under Perl>. =item * @@ -619,7 +619,7 @@ C in F, see L">. =item Additional Perl modules - unzip perl_ste.zip -d f:/perllib/lib/site_perl/5.30.3/ + unzip perl_ste.zip -d f:/perllib/lib/site_perl/5.32.1/ Same remark as above applies. Additionally, if this directory is not one of directories on @INC (and @INC is influenced by C), you @@ -1225,7 +1225,7 @@ necessary external C libraries from F<.lib> format to F<.a> format: run one of emximp -o foo.a foo.lib whichever is appropriate.) Also, make sure that the DLLs for external -libraries are usable with with executables compiled without C<-Zmtd> options. +libraries are usable with executables compiled without C<-Zmtd> options. When you are sure that only a few subdirectories lead to failures, you may want to add C<-j4> option to C to speed up @@ -2666,8 +2666,8 @@ I will include it into distribution. I have no need for such a module, so cannot test it. For the details of the current situation with calling external programs, -see L2 (and DOS) programs under Perl>. Set us mention a couple -of features: +see L2 (and DOS) programs under Perl>. Set us +mention a couple of features: =over 4 diff --git a/gnu/usr.bin/perl/README.os390 b/gnu/usr.bin/perl/README.os390 index 4de4e900384..a06e93f9564 100644 --- a/gnu/usr.bin/perl/README.os390 +++ b/gnu/usr.bin/perl/README.os390 @@ -1,5 +1,5 @@ This document is written in pod format hence there are punctuation -characters in odd places. Do not worry, you've apparently got the +characters in odd places. Do not worry, you have apparently got the ASCII->EBCDIC translation worked out correctly. You can read more about pod in pod/perlpod.pod or the short summary in the INSTALL file. @@ -19,7 +19,7 @@ Please submit comments to L.> This is a fully ported Perl for OS/390 Version 2 Release 3, 5, 6, 7, 8, and 9. It may work on other versions or releases, but those are -the ones we've tested it on. +the ones we have tested it on. You may need to carry out some system configuration tasks before running the Configure script for Perl. @@ -52,7 +52,7 @@ If you get lots of errors of the form tar: FSUM7171 ...: cannot set uid/gid: EDC5139I Operation not permitted -you didn't read the above and tried to use tar instead of pax, you'll +you did not read the above and tried to use tar instead of pax, you'll first have to remove the (now corrupt) perl directory rm -rf perl-... @@ -114,24 +114,21 @@ world readable /tmp directory if you have not already done so (see man chmod). =head2 Configure Perl on OS/390 -Once you've unpacked the distribution, run "sh Configure" (see INSTALL +Once you have unpacked the distribution, run "sh Configure" (see INSTALL for a full discussion of the Configure options). There is a "hints" file for os390 that specifies the correct values for most things. Some things to watch out for include: -=over 4 - -=item * +=head3 Shell A message of the form: - (I see you are using the Korn shell. Some ksh's blow up on - Configure, mainly on older exotic systems. If yours does, try the - Bourne shell instead.) + (I see you are using the Korn shell. Some ksh's blow up on Configure, + mainly on older exotic systems. If yours does, try the Bourne shell instead.) is nothing to worry about at all. -=item * +=head3 Samples Some of the parser default template files in /samples are needed in /etc. In particular be sure that you at least copy /samples/yyparse.c to /etc @@ -143,7 +140,12 @@ misconfigured build root and re-extract the source from the tar ball. Then you must ensure that /etc/yyparse.c is properly in place before attempting to re-run Configure. -=item * +=head3 Dynamic loading + +Dynamic loading is required if you want to use XS modules from CPAN (like +DBI (and DBD's), JSON::XS, and Text::CSV_XS) or update CORE modules from +CPAN with newer versions (like Encode) without rebuilding all of the perl +binary. This port will support dynamic loading, but it is not selected by default. If you would like to experiment with dynamic loading then @@ -162,13 +164,24 @@ then your LIBPATH does not have the location of libperl.x and either libperl.dll or libperl.so in it. Add that directory to your LIBPATH and proceed. -=item * +In hints/os390.sh, selecting -Dusedl will default to *also* select +-Duseshrplib. Having a shared plib not only requires LIBPATH to be set to +the correct location of libperl.so but also makes it close to impossible +to run more than one different perl that was built this way at the same +time. + +All objects that are involved in -Dusedl builds should be compiled for +this, probably by adding to all ccflags + + -qexportall -qxplink -qdll -Wc,XPLINK,dll,EXPORTALL -Wl,XPLINK,dll + +=head3 Optimizing Do not turn on the compiler optimization flag "-O". There is a bug in either the optimizer or perl that causes perl to not work correctly when the optimizer is on. -=item * +=head3 Config files Some of the configuration files in /etc used by the networking APIs are either missing or have the wrong @@ -181,8 +194,6 @@ You may have to look for things like HOSTNAME and DOMAINORIGIN in the "//'SYS1.TCPPARMS(TCPDATA)'" PDS member in order to properly set up your /etc networking files. -=back - =head2 Build, Test, Install Perl on OS/390 Simply put: @@ -204,6 +215,9 @@ or not you have write access to the directories you specified. "Out of memory!" messages during the build of Perl are most often fixed by re building the GNU make utility for OS/390 from a source code kit. +Building debugging-enabled binaries (with -g or -g3) will increase the +chance of getting these errors. Prevent -g if possible. + Another memory limiting item to check is your MAXASSIZE parameter in your 'SYS1.PARMLIB(BPXPRMxx)' data set (note too that as of V2R8 address space limits can be set on a per user ID basis in the USS segment of a RACF @@ -230,9 +244,7 @@ installation. You might encounter STDERR messages even during a successful run of "make test". Here is a guide to some of the more commonly seen anomalies: -=over 4 - -=item * +=head3 Signals A message of the form: @@ -244,7 +256,7 @@ A message of the form: indicates that the t/io/openpid.t test of Perl has passed but done so with extraneous messages on stderr from CEE. -=item * +=head3 File::Temp A message of the form: @@ -258,13 +270,11 @@ A message of the form: indicates a problem with the permissions on your /tmp directory within the HFS. To correct that problem issue the command: - chmod a+t /tmp + chmod a+t /tmp from an account with write access to the directory entry for /tmp. -=item * - -Out of Memory! +=head3 Out of Memory! Recent perl test suite is quite memory hungry. In addition to the comments above on memory limitations it is also worth checking for _CEE_RUNOPTS @@ -290,9 +300,6 @@ case something like: is needed to get through the test suite. - -=back - =head2 Installation Anomalies with Perl on OS/390 The installman script will try to run on OS/390. There will be fewer errors @@ -357,7 +364,7 @@ The problem can be further examined in a roughly equivalent C program: =head2 Modules and Extensions for Perl on OS/390 -Pure pure (that is non xs) modules may be installed via the usual: +Pure Perl (that is non XS) modules may be installed via the usual: perl Makefile.PL make @@ -365,11 +372,11 @@ Pure pure (that is non xs) modules may be installed via the usual: make install If you built perl with dynamic loading capability then that would also -be the way to build xs based extensions. However, if you built perl with -the default static linking you can still build xs based extensions for OS/390 +be the way to build XS based extensions. However, if you built perl with +the default static linking you can still build XS based extensions for OS/390 but you will need to follow the instructions in ExtUtils::MakeMaker for building statically linked perl binaries. In the simplest configurations -building a static perl + xs extension boils down to: +building a static perl + XS extension boils down to: perl Makefile.PL make @@ -380,7 +387,7 @@ building a static perl + xs extension boils down to: In most cases people have reported better results with GNU make rather than the system's /bin/make program, whether for plain modules or for -xs based extensions. +XS based extensions. If the make process encounters trouble with either compilation or linking then try setting the _C89_CCMODE to 1. Assuming sh is your @@ -422,12 +429,11 @@ To subscribe, send an empty message to perl-mvs-subscribe@perl.org. See also: - http://lists.perl.org/list/perl-mvs.html + https://lists.perl.org/list/perl-mvs.html There are web archives of the mailing list at: - http://www.xray.mpe.mpg.de/mailing-lists/perl-mvs/ - http://archive.develooper.com/perl-mvs@perl.org/ + https://www.nntp.perl.org/group/perl.mvs/ =head1 HISTORY @@ -436,15 +442,17 @@ release of Perl. This document was podified for the 5.005_03 release of Perl 11 March 1999. -Updated 28 November 2001 for broken URLs. - Updated 12 November 2000 for the 5.7.1 release of Perl. -Updated 15 January 2001 for the 5.7.1 release of Perl. +Updated 15 January 2001 for the 5.7.1 release of Perl. + +Updated 24 January 2001 to mention dynamic loading. -Updated 24 January 2001 to mention dynamic loading. +Updated 12 March 2001 to mention //'SYS1.TCPPARMS(TCPDATA)'. + +Updated 28 November 2001 for broken URLs. -Updated 12 March 2001 to mention //'SYS1.TCPPARMS(TCPDATA)'. +Updated 03 October 2019 for perl-5.32.0+ =cut diff --git a/gnu/usr.bin/perl/README.synology b/gnu/usr.bin/perl/README.synology index b1b9d8811c0..1fde18cca01 100644 --- a/gnu/usr.bin/perl/README.synology +++ b/gnu/usr.bin/perl/README.synology @@ -18,7 +18,7 @@ which is a trimmed-down Linux system enhanced with several tools for managing the NAS. There are several flavours of hardware: Marvell Armada (ARMv5tel, ARMv7l), Intel Atom (i686, x86_64), Freescale QorIQ (PPC), and more. For a full list see the -L. +L. Since it is based on Linux, the NAS can run many popular Linux software packages, including Perl. In fact, Synology provides a @@ -42,7 +42,7 @@ H.Merijn Brand (DS213, ARMv5tel and RS815, Intel Atom x64). As DSM is a trimmed-down Linux system, it lacks many of the tools and libraries commonly found on Linux. The basic tools like sh, cp, rm, etc. are implemented using -L. +L. =over 4 @@ -59,7 +59,7 @@ If you want to smoke test Perl, install C. In Settings, add the following Package Sources: - http://www.cphub.net + https://www.cphub.net http://packages.quadrat4.de =item * @@ -139,7 +139,7 @@ L for supported platforms. +Check L for supported platforms. Entware-ng comes with a precompiled 5.24.1 (June 2017) that allowes building shared XS code. Note that this installation does B use diff --git a/gnu/usr.bin/perl/README.vms b/gnu/usr.bin/perl/README.vms index 039638b0af3..90136b1d1f3 100644 --- a/gnu/usr.bin/perl/README.vms +++ b/gnu/usr.bin/perl/README.vms @@ -142,11 +142,11 @@ You may need to set up a foreign symbol for the unpacking utility of choice. Once you have done so, use a command like the following to unpack the archive: - vmstar -xvf perl-5^.30^.3.tar + vmstar -xvf perl-5^.32^.1.tar Then set default to the top-level source directory like so: - set default [.perl-5^.30^.3] + set default [.perl-5^.32^.1] and proceed with configuration as described in the next section. @@ -540,10 +540,10 @@ messages a week) mailing list. To subscribe, send a mail message to VMSPERL-SUBSCRIBE@PERL.ORG. 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 +to all subscribers of the list. There is an archive of the list on the web at: - L + L To unsubscribe from VMSPERL send a message to VMSPERL-UNSUBSCRIBE@PERL.ORG. Be sure to do so from the subscribed account that you are canceling. @@ -553,9 +553,8 @@ Be sure to do so from the subscribed account that you are canceling. Vmsperl pages on the web include: L - L - L - L + L + L L =head1 SEE ALSO diff --git a/gnu/usr.bin/perl/README.win32 b/gnu/usr.bin/perl/README.win32 index faac3fe73ea..cc3b6b868ca 100644 --- a/gnu/usr.bin/perl/README.win32 +++ b/gnu/usr.bin/perl/README.win32 @@ -74,7 +74,7 @@ This port can also be built on IA64/AMD64 using: Microsoft Platform SDK Nov 2001 (64-bit compiler and tools) MinGW64 compiler (gcc version 4.4.3 or later) -The Windows SDK can be downloaded from L. +The Windows SDK can be downloaded from L. The MinGW64 compiler is available at L. The latter is actually a cross-compiler targeting Win64. There's also a trimmed down compiler (no java, or gfortran) suitable for building perl available at: @@ -125,15 +125,16 @@ build usually works in this circumstance, but some tests will fail. =item Microsoft Visual C++ -The nmake that comes with Visual C++ will suffice for building. Visual C -requires that certain things be set up in the console before Visual C will +The nmake that comes with Visual C++ will suffice for building. Visual C++ +requires that certain things be set up in the console before Visual C++ will sucessfully run. To make a console box be able to run the C compiler, you will -need to beforehand, run the C file to compile for x86-32 and for -x86-64 C or C. On a typical install of a -Microsoft C compiler product, these batch files will already be in your C +need to beforehand, run C to compile for x86-32 and for +x86-64 C. On a typical install of a Microsoft C++ +compiler product, these batch files will already be in your C environment variable so you may just type them without an absolute path into your console. If you need to find the absolute path to the batch file, it is -usually found somewhere like C:\Program Files\Microsoft Visual Studio\VC98\Bin. +usually found somewhere like +C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC. With some newer Micrsoft C products (released after ~2004), the installer will put a shortcut in the start menu to launch a new console window with the console already set up for your target architecture (x86-32 or x86-64 or IA64). @@ -148,7 +149,7 @@ everything necessary to build Perl, rather than requiring a separate download of the Windows SDK like previous versions did. These packages can be downloaded by searching in the Download Center at -L. (Providing exact +L. (Providing exact links to these packages has proven a pointless task because the links keep on changing so often.) @@ -220,7 +221,7 @@ Framework Redistributable" to be installed first. This can be downloaded and installed separately, but is included in the "Visual C++ Toolkit 2003" anyway. These packages can all be downloaded by searching in the Download Center at -L. (Providing exact +L. (Providing exact links to these packages has proven a pointless task because the links keep on changing so often.) @@ -388,16 +389,9 @@ The default value for CCHOME in the makefiles for Visual C++ may not be correct for some versions. Make sure the default exists and is valid. -You may also need to comment out the C line in the -Makefile if you're using VC++ 6.0 without the latest service pack and -the linker reports an internal error. - If you want build some core extensions statically into perl's dll, specify them in the STATIC_EXT macro. -NOTE: The USE_64_BIT_INT build option is not supported with the 32-bit -Visual C++ 6.0 compiler. - Be sure to read the instructions near the top of the makefiles carefully. =item * @@ -405,7 +399,7 @@ Be sure to read the instructions near the top of the makefiles carefully. Type "dmake" ("gmake" for GNU make, or "nmake" if you are using that make). This should build everything. Specifically, it will create perl.exe, -perl530.dll at the perl toplevel, and various other extension dll's +perl532.dll at the perl toplevel, and various other extension dll's under the lib\auto directory. If the build fails for any reason, make sure you have done the previous steps correctly. @@ -449,7 +443,7 @@ in the May 2019 Update, as explained here: L may fail test 17 due to a known bug in those gcc builds: -see L. +see L. Some test failures may occur if you use a command shell other than the native "cmd.exe", or if you are building from a path that contains @@ -566,9 +560,9 @@ character is the double quote ("). It can be used to protect spaces and other special characters in arguments. The Windows documentation describes the shell parsing rules here: -L +L and the C runtime parsing rules here: -L. +L. Here are some further observations based on experiments: The C runtime breaks arguments at spaces and passes them to programs in argc/argv. @@ -637,11 +631,11 @@ quoted. The Comprehensive Perl Archive Network (CPAN) offers a wealth of extensions, some of which require a C compiler to build. -Look in L for more information on CPAN. +Look in L for more information on CPAN. Note that not all of the extensions available from CPAN may work in the Windows environment; you should check the information at -L before investing too much effort into +L before investing too much effort into porting modules that don't readily build. Most extensions (whether they require a C compiler or not) can @@ -667,7 +661,7 @@ L Another option is to use the make written in Perl, available from CPAN. -L +L You may also use dmake or gmake. See L above on how to get it. @@ -888,7 +882,7 @@ L. Norton AntiVirus interferes with the build process, particularly if set to "AutoProtect, All Files, when Opened". Unlike large applications the perl build process opens and modifies a lot of files. Having the -the AntiVirus scan each and every one slows build the process significantly. +AntiVirus scan each and every one slows build the process significantly. Worse, with PERLIO=stdio the build process fails with peculiar messages as the virus checker interacts badly with miniperl.exe writing configure files (it seems to either catch file part written and treat it as suspicious, @@ -928,8 +922,8 @@ Thus, signals may work only for simple things like setting a flag variable in the handler. Using signals under this port should currently be considered unsupported. -Please send detailed descriptions of any problems and solutions that -you may find to ELE, +Please report detailed descriptions of any problems and solutions that +you may find at ELE, along with the output produced by C. =head1 ACKNOWLEDGEMENTS diff --git a/gnu/usr.bin/perl/TestInit.pm b/gnu/usr.bin/perl/TestInit.pm index bab5aea5123..7f53664e279 100644 --- a/gnu/usr.bin/perl/TestInit.pm +++ b/gnu/usr.bin/perl/TestInit.pm @@ -43,7 +43,8 @@ $VERSION = 1.04; # which live dual lives on CPAN. # Don't interfere with the taintedness of %ENV, this could perturbate tests. # This feels like a better solution than the original, from -# http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2003-07/msg00154.html +# Message-ID: 20030703145818.5bdd2873.rgarciasuarez@free.fr +# https://www.nntp.perl.org/group/perl.perl5.porters/2003/07/msg77533.html $ENV{PERL_CORE} = $^X; $0 =~ s/\.dp$//; # for the test.deparse make target diff --git a/gnu/usr.bin/perl/XSUB.h b/gnu/usr.bin/perl/XSUB.h index 796a13aae3d..94e9dade6af 100644 --- a/gnu/usr.bin/perl/XSUB.h +++ b/gnu/usr.bin/perl/XSUB.h @@ -47,7 +47,7 @@ XSUB's aliases was used to invoke it. See L. =for apidoc Am|SV*|ST|int ix Used to access elements on the XSUB's stack. -=for apidoc AmU||XS +=for apidoc AmnU||XS Macro to declare an XSUB and its C parameter list. This is handled by C. It is the same as using the more explicit C macro. @@ -56,36 +56,36 @@ Macro to declare an XSUB and its C parameter list without exporting the symbols. This is handled by C and generally preferable over exporting the XSUB symbols unnecessarily. -=for apidoc AmU||XS_EXTERNAL +=for apidoc AmnU||XS_EXTERNAL Macro to declare an XSUB and its C parameter list explicitly exporting the symbols. -=for apidoc Ams||dAX +=for apidoc Amns||dAX Sets up the C variable. This is usually handled automatically by C by calling C. -=for apidoc Ams||dAXMARK +=for apidoc Amns||dAXMARK Sets up the C variable and stack marker variable C. This is usually handled automatically by C by calling C. -=for apidoc Ams||dITEMS +=for apidoc Amns||dITEMS Sets up the C variable. This is usually handled automatically by C by calling C. -=for apidoc Ams||dXSARGS +=for apidoc Amns||dXSARGS Sets up stack and mark pointers for an XSUB, calling C and C. Sets up the C and C variables by calling C and C. This is usually handled automatically by C. -=for apidoc Ams||dXSI32 +=for apidoc Amns||dXSI32 Sets up the C variable for an XSUB which has aliases. This is usually handled automatically by C. -=for apidoc Ams||dUNDERBAR +=for apidoc Amns||dUNDERBAR Sets up any variable needed by the C macro. It used to define C, but it is currently a noop. However, it is strongly advised to still use it for ensuring past and future compatibility. -=for apidoc AmU||UNDERBAR +=for apidoc AmnU||UNDERBAR The SV* corresponding to the C<$_> variable. Works even if there is a lexical C<$_> in scope. @@ -217,6 +217,10 @@ is stored in a new mortal SV. Place a copy of a string into the specified position C on the stack. The value is stored in a new mortal SV. +=for apidoc Am|void|XST_mUV|int pos|UV uv +Place an unsigned integer into the specified position C on the stack. The +value is stored in a new mortal SV. + =for apidoc Am|void|XST_mNO|int pos Place C<&PL_sv_no> into the specified position C on the stack. @@ -245,16 +249,16 @@ Return a double from an XSUB immediately. Uses C. =for apidoc Am|void|XSRETURN_PV|char* str Return a copy of a string from an XSUB immediately. Uses C. -=for apidoc Ams||XSRETURN_NO +=for apidoc Amns||XSRETURN_NO Return C<&PL_sv_no> from an XSUB immediately. Uses C. -=for apidoc Ams||XSRETURN_YES +=for apidoc Amns||XSRETURN_YES Return C<&PL_sv_yes> from an XSUB immediately. Uses C. -=for apidoc Ams||XSRETURN_UNDEF +=for apidoc Amns||XSRETURN_UNDEF Return C<&PL_sv_undef> from an XSUB immediately. Uses C. -=for apidoc Ams||XSRETURN_EMPTY +=for apidoc Amns||XSRETURN_EMPTY Return an empty list from an XSUB immediately. =head1 Variables created by C and C internal functions @@ -263,36 +267,36 @@ Return an empty list from an XSUB immediately. Used by C to hook up XSUBs as Perl subs. Adds Perl prototypes to the subs. -=for apidoc AmU||XS_VERSION +=for apidoc AmnU||XS_VERSION The version identifier for an XS module. This is usually handled automatically by C. See C>. -=for apidoc Ams||XS_VERSION_BOOTCHECK +=for apidoc Amns||XS_VERSION_BOOTCHECK Macro to verify that a PM module's C<$VERSION> variable matches the XS module's C variable. This is usually handled automatically by C. See L. -=for apidoc Ams||XS_APIVERSION_BOOTCHECK +=for apidoc Amns||XS_APIVERSION_BOOTCHECK Macro to verify that the perl api version an XS module has been compiled against matches the api version of the perl interpreter it's being loaded into. =head1 Exception Handling (simple) Macros -=for apidoc Ams||dXCPT +=for apidoc Amns||dXCPT Set up necessary local variables for exception handling. See L. -=for apidoc AmU||XCPT_TRY_START +=for apidoc AmnU||XCPT_TRY_START Starts a try block. See L. -=for apidoc AmU||XCPT_TRY_END +=for apidoc AmnU||XCPT_TRY_END Ends a try block. See L. -=for apidoc AmU||XCPT_CATCH +=for apidoc AmnU||XCPT_CATCH Introduces a catch block. See L. -=for apidoc Ams||XCPT_RETHROW +=for apidoc Amns||XCPT_RETHROW Rethrows a previously caught exception. See L. =cut diff --git a/gnu/usr.bin/perl/amigaos4/amigaio.c b/gnu/usr.bin/perl/amigaos4/amigaio.c index edc237a033c..58964f955b5 100644 --- a/gnu/usr.bin/perl/amigaos4/amigaio.c +++ b/gnu/usr.bin/perl/amigaos4/amigaio.c @@ -682,7 +682,7 @@ static I32 S_do_amigaos_exec3(pTHX_ const char *incmd, int fd, int do_report) for (s = cmd; *s; s++) { if (*s != ' ' && !isALPHA(*s) && - strchr("$&*(){}[]'\";\\|?<>~`\n", *s)) + memCHRs("$&*(){}[]'\";\\|?<>~`\n", *s)) { if (*s == '\n' && !s[1]) { diff --git a/gnu/usr.bin/perl/autodoc.pl b/gnu/usr.bin/perl/autodoc.pl index 788dc359fdf..8bf557e64ab 100644 --- a/gnu/usr.bin/perl/autodoc.pl +++ b/gnu/usr.bin/perl/autodoc.pl @@ -22,6 +22,9 @@ # indented. The next input line that is a pod directive terminates this # heading-level documentation. +# The meanings of the flags fields in embed.fnc and the source code is +# documented at the top of embed.fnc. + use strict; if (@ARGV) { @@ -32,6 +35,29 @@ if (@ARGV) { require './regen/regen_lib.pl'; require './regen/embed_lib.pl'; +my @specialized_docs = sort qw( perlguts + perlxs + perlxstut + perlclib + warnings + perlapio + perlcall + perlfilter + perlmroapi + config.h + ); +sub name_in_pod($) { + my $name = shift; + return "F<$name>" if $name =~ /\./; + return "L<$name>"; +} +my $other_places_api = join " ", map { name_in_pod($_) } sort @specialized_docs, 'perlintern'; +my $other_places_intern = join " ", map { name_in_pod($_) } sort @specialized_docs, 'perlapi'; + +@specialized_docs = map { name_in_pod($_) } sort @specialized_docs; +$specialized_docs[-1] =~ s/^/and /; +my $specialized_docs = join ", ", @specialized_docs; + # # See database of global and static function prototypes in embed.fnc # This is used to generate prototype headers under various configurations, @@ -40,13 +66,8 @@ require './regen/embed_lib.pl'; # my %docs; +my %seen; my %funcflags; -my %macro = ( - ax => 1, - items => 1, - ix => 1, - svtype => 1, - ); my %missing; my $curheader = "Unknown section"; @@ -60,17 +81,12 @@ sub autodoc ($$) { # parse a file and extract documentation info FUNC: while (defined($in = $get_next_line->())) { - if ($in =~ /^#\s*define\s+([A-Za-z_][A-Za-z_0-9]+)\(/ && - ($file ne 'embed.h' || $file ne 'proto.h')) { - $macro{$1} = $file; - next FUNC; - } if ($in=~ /^=head1 (.*)/) { $curheader = $1; # If the next non-space line begins with a word char, then it is - # the start of heading-ldevel documentation. - if (defined($doc = $get_next_line->())) { + # the start of heading-level documentation. + if (defined($doc = $get_next_line->())) { # Skip over empty lines while ($doc =~ /^\s+$/) { if (! defined($doc = $get_next_line->())) { @@ -103,88 +119,112 @@ HDR_DOC: } next FUNC; } - if ($in =~ /^=for\s+apidoc\s+(.*?)\s*\n/) { - my $proto = $1; - $proto = "||$proto" unless $proto =~ /\|/; - my($flags, $ret, $name, @args) = split /\|/, $proto; - my $docs = ""; + + # Parentheses are used to accept anything that looks like 'for + # apidoc', and later verify that things are the actual correct syntax. + my $apidoc_re = qr/^(\s*)(=?)(\s*)for(\s*)apidoc(\s*)(.*?)\s*\n/; + + if ($in =~ /^=for comment/) { + $in = $get_next_line->(); + if ($in =~ /skip apidoc/) { # Skips the next apidoc-like line + while (defined($in = $get_next_line->())) { + last if $in =~ $apidoc_re; + } + } + next FUNC; + } + + if ($in =~ $apidoc_re) { + my $is_in_proper_form = length $1 == 0 + && length $2 > 0 + && length $3 == 0 + && length $4 > 0 + && length $5 > 0 + && length $6 > 0; + my $proto_in_file = $6; + my $proto = $proto_in_file; + $proto = "||$proto" unless $proto =~ /\|/; + my($flags, $ret, $name, @args) = split /\s*\|\s*/, $proto; + $name && $is_in_proper_form or die <())) { + while (defined($doc = $get_next_line->())) { # Other pod commands are considered part of the current # function's docs, so can have lists, etc. last DOC if $doc =~ /^=(cut|for\s+apidoc|head)/; - if ($doc =~ m:^\*/$:) { - warn "=cut missing? $file:$line:$doc";; - last DOC; + if ($doc =~ m:^\*/$:) { + warn "=cut missing? $file:$line:$doc";; + last DOC; } - $docs .= $doc; - } - $docs = "\n$docs" if $docs and $docs !~ /^\n/; - - # Check the consistency of the flags - my ($embed_where, $inline_where); - my ($embed_may_change, $inline_may_change); - - my $docref = delete $funcflags{$name}; - if ($docref and %$docref) { - $embed_where = $docref->{flags} =~ /A/ ? 'api' : 'guts'; - $embed_may_change = $docref->{flags} =~ /M/; - $flags .= 'D' if $docref->{flags} =~ /D/; - } else { - $missing{$name} = $file; - } - if ($flags =~ /m/) { - $inline_where = $flags =~ /A/ ? 'api' : 'guts'; - $inline_may_change = $flags =~ /x/; - - if (defined $embed_where && $inline_where ne $embed_where) { - warn "Function '$name' inconsistency: embed.fnc says $embed_where, Pod says $inline_where"; - } - - if (defined $embed_may_change - && $inline_may_change ne $embed_may_change) { - my $message = "Function '$name' inconsistency: "; - if ($embed_may_change) { - $message .= "embed.fnc says 'may change', Pod does not"; - } else { - $message .= "Pod says 'may change', embed.fnc does not"; - } - warn $message; - } - } elsif (!defined $embed_where) { - warn "Unable to place $name!\n"; - next; - } else { - $inline_where = $embed_where; - $flags .= 'x' if $embed_may_change; - @args = @{$docref->{args}}; - $ret = $docref->{retval}; - } - - if (exists $docs{$inline_where}{$curheader}{$name}) { + $docs .= $doc; + } + $docs = "\n$docs" if $docs and $docs !~ /^\n/; + + # If the entry is also in embed.fnc, it should be defined + # completely there, but not here + my $embed_docref = delete $funcflags{$name}; + if ($embed_docref and %$embed_docref) { + warn "embed.fnc entry overrides redundant information in" + . " '$proto_in_file' in $file" if $flags || $ret || @args; + $flags = $embed_docref->{'flags'}; + warn "embed.fnc entry '$name' missing 'd' flag" + unless $flags =~ /d/; + next FUNC if $flags =~ /h/; + $ret = $embed_docref->{'retval'}; + @args = @{$embed_docref->{args}}; + } elsif ($flags !~ /m/) { # Not in embed.fnc, is missing if not a + # macro + $missing{$name} = $file; + } + + my $inline_where = $flags =~ /A/ ? 'api' : 'guts'; + + if (exists $docs{$inline_where}{$curheader}{$name}) { warn "$0: duplicate API entry for '$name' in $inline_where/$curheader\n"; next; } - $docs{$inline_where}{$curheader}{$name} - = [$flags, $docs, $ret, $file, @args]; + $docs{$inline_where}{$curheader}{$name} + = [$flags, $docs, $ret, $file, @args]; # Create a special entry with an empty-string name for the # heading-level documentation. - if (defined $header_doc) { + if (defined $header_doc) { $docs{$inline_where}{$curheader}{""} = $header_doc; undef $header_doc; } - if (defined $doc) { - if ($doc =~ /^=(?:for|head)/) { - $in = $doc; - redo FUNC; - } - } else { - warn "$file:$line:$in"; - } - } + if (defined $doc) { + if ($doc =~ /^=(?:for|head)/) { + $in = $doc; + redo FUNC; + } + } else { + warn "$file:$line:$in"; + } + } } } @@ -202,63 +242,74 @@ existing code.\n\n$docs"; $docs = "\n\nNOTE: this function is experimental and may change or be removed without notice.\n\n$docs" if $flags =~ /x/; } + + # Is Perl_, but no #define foo # Perl_foo + my $p = $flags =~ /p/ && $flags =~ /o/ && $flags !~ /M/; + $docs .= "NOTE: the perl_ form of this function is deprecated.\n\n" - if $flags =~ /p/; - $docs .= "NOTE: this function must be explicitly called as Perl_$name with an aTHX_ parameter.\n\n" - if $flags =~ /o/; + if $flags =~ /O/; + if ($p) { + $docs .= "NOTE: this function must be explicitly called as Perl_$name"; + $docs .= " with an aTHX_ parameter" if $flags !~ /T/; + $docs .= ".\n\n" + } print $fh "=item $name\nX<$name>\n$docs"; if ($flags =~ /U/) { # no usage - # nothing - } elsif ($flags =~ /s/) { # semicolon ("dTHR;") - print $fh "\t\t$name;\n\n"; - } elsif ($flags =~ /n/) { # no args - print $fh "\t$ret\t$name\n\n"; - } else { # full usage - my $p = $flags =~ /o/; # no #define foo Perl_foo - my $n = "Perl_"x$p . $name; - my $large_ret = length $ret > 7; - my $indent_size = 7+8 # nroff: 7 under =head + 8 under =item - +8+($large_ret ? 1 + length $ret : 8) - +length($n) + 1; - my $indent; - print $fh "\t$ret" . ($large_ret ? ' ' : "\t") . "$n("; - my $long_args; - for (@args) { - if ($indent_size + 2 + length > 79) { - $long_args=1; - $indent_size -= length($n) - 3; - last; - } - } - my $args = ''; - if ($p) { - $args = @args ? "pTHX_ " : "pTHX"; - if ($long_args) { print $fh $args; $args = '' } - } - $long_args and print $fh "\n"; - my $first = !$long_args; - while () { - if (!@args or - length $args - && $indent_size + 3 + length($args[0]) + length $args > 79 - ) { - print $fh - $first ? '' : ( - $indent //= - "\t".($large_ret ? " " x (1+length $ret) : "\t") - ." "x($long_args ? 4 : 1 + length $n) - ), - $args, (","x($args ne 'pTHX_ ') . "\n")x!!@args; - $args = $first = ''; - } - @args or last; - $args .= ", "x!!(length $args && $args ne 'pTHX_ ') - . shift @args; - } - if ($long_args) { print $fh "\n", substr $indent, 0, -4 } - print $fh ")\n\n"; + warn("U and s flags are incompatible") if $flags =~ /s/; + # nothing + } else { + if ($flags =~ /n/) { # no args + warn("n flag without m") unless $flags =~ /m/; + warn("n flag but apparently has args") if @args; + print $fh "\t$ret\t$name"; + } else { # full usage + my $n = "Perl_"x$p . $name; + my $large_ret = length $ret > 7; + my $indent_size = 7+8 # nroff: 7 under =head + 8 under =item + +8+($large_ret ? 1 + length $ret : 8) + +length($n) + 1; + my $indent; + print $fh "\t$ret" . ($large_ret ? ' ' : "\t") . "$n("; + my $long_args; + for (@args) { + if ($indent_size + 2 + length > 79) { + $long_args=1; + $indent_size -= length($n) - 3; + last; + } + } + my $args = ''; + if ($flags !~ /T/ && ($p || ($flags =~ /m/ && $name =~ /^Perl_/))) { + $args = @args ? "pTHX_ " : "pTHX"; + if ($long_args) { print $fh $args; $args = '' } + } + $long_args and print $fh "\n"; + my $first = !$long_args; + while () { + if (!@args or + length $args + && $indent_size + 3 + length($args[0]) + length $args > 79 + ) { + print $fh + $first ? '' : ( + $indent //= + "\t".($large_ret ? " " x (1+length $ret) : "\t") + ." "x($long_args ? 4 : 1 + length $n) + ), + $args, (","x($args ne 'pTHX_ ') . "\n")x!!@args; + $args = $first = ''; + } + @args or last; + $args .= ", "x!!(length $args && $args ne 'pTHX_ ') + . shift @args; + } + if ($long_args) { print $fh "\n", substr $indent, 0, -4 } + print $fh ")"; + } + print $fh ";" if $flags =~ /s/; # semicolon "dTHR;" + print $fh "\n\n"; } print $fh "=for hackers\nFound in file $file\n\n"; } @@ -279,15 +330,15 @@ sub output { s/^\|//gm for $header, $footer; my $fh = open_new("pod/$podname.pod", undef, - {by => "$0 extracting documentation", + {by => "$0 extracting documentation", from => 'the C source files'}, 1); print $fh $header; my $key; for $key (sort sort_helper keys %$dochash) { - my $section = $dochash->{$key}; - print $fh "\n=head1 $key\n\n"; + my $section = $dochash->{$key}; + print $fh "\n=head1 $key\n\n"; # Output any heading-level documentation and delete so won't get in # the way later @@ -295,12 +346,12 @@ sub output { print $fh $section->{""} . "\n"; delete $section->{""}; } - print $fh "=over 8\n\n"; + print $fh "=over 8\n\n"; - for my $key (sort sort_helper keys %$section) { - docout($fh, $key, $section->{$key}); - } - print $fh "\n=back\n"; + for my $key (sort sort_helper keys %$section) { + docout($fh, $key, $section->{$key}); + } + print $fh "\n=back\n"; } if (@$missing) { @@ -343,10 +394,10 @@ foreach (@{(setup_embed())[0]}) { s/\b(?:NN|NULLOK)\b\s+//g for @args; $funcflags{$func} = { - flags => $flags, - retval => $retval, - args => \@args, - }; + flags => $flags, + retval => $retval, + args => \@args, + }; } # glob() picks up docs from extra .c or .h files that may be in unclean @@ -354,7 +405,7 @@ foreach (@{(setup_embed())[0]}) { open my $fh, '<', 'MANIFEST' or die "Can't open MANIFEST: $!"; while (my $line = <$fh>) { - next unless my ($file) = $line =~ /^(\S+\.[ch])\t/; + next unless my ($file) = $line =~ /^(\S+\.(?:[ch]|pod))\t/; open F, '<', $file or die "Cannot open $file for docs: $!\n"; $curheader = "Functions in file $file\n"; @@ -365,25 +416,23 @@ close $fh or die "Error whilst reading MANIFEST: $!"; for (sort keys %funcflags) { next unless $funcflags{$_}{flags} =~ /d/; + next if $funcflags{$_}{flags} =~ /h/; warn "no docs for $_\n" } foreach (sort keys %missing) { - next if $macro{$_}; - # Heuristics for known not-a-function macros: - next if /^[A-Z]/; - next if /^dj?[A-Z]/; - warn "Function '$_', documented in $missing{$_}, not listed in embed.fnc"; } # walk table providing an array of components in each line to # subroutine, printing the result -# List of funcs in the public API that aren't also marked as experimental nor -# deprecated. -my @missing_api = grep $funcflags{$_}{flags} =~ /A/ && $funcflags{$_}{flags} !~ /[MD]/ && !$docs{api}{$_}, keys %funcflags; -output('perlapi', <<'_EOB_', $docs{api}, \@missing_api, <<'_EOE_'); +# List of funcs in the public API that aren't also marked as core-only, +# experimental nor deprecated. +my @missing_api = grep $funcflags{$_}{flags} =~ /A/ + && $funcflags{$_}{flags} !~ /[xD]/ + && !$docs{api}{$_}, keys %funcflags; +output('perlapi', <<"_EOB_", $docs{api}, \@missing_api, <<"_EOE_"); |=encoding UTF-8 | |=head1 NAME @@ -393,14 +442,18 @@ output('perlapi', <<'_EOB_', $docs{api}, \@missing_api, <<'_EOE_'); |=head1 DESCRIPTION |X X X | -|This file contains the documentation of the perl public API generated by -|F, specifically a listing of functions, macros, flags, and variables -|that may be used by extension writers. L -|is a list of functions which have yet to be documented. The interfaces of -|those are subject to change without notice. Anything not listed here is -|not part of the public API, and should not be used by extension writers at -|all. For these reasons, blindly using functions listed in proto.h is to be -|avoided when writing extensions. +|This file contains most of the documentation of the perl public API, as +|generated by F. Specifically, it is a listing of functions, +|macros, flags, and variables that may be used by extension writers. Some +|specialized items are instead documented in $specialized_docs. +| +|L is a list of functions which have yet +|to be documented. Patches welcome! The interfaces of these are subject to +|change without notice. +| +|Anything not listed here is not part of the public API, and should not be +|used by extension writers at all. For these reasons, blindly using functions +|listed in proto.h is to be avoided when writing extensions. | |In Perl, unlike C, a string of characters may generally contain embedded |C characters. Sometimes in the documentation a Perl string is referred @@ -446,32 +499,31 @@ _EOB_ |=head1 AUTHORS | |Until May 1997, this document was maintained by Jeff Okamoto -|. It is now maintained as part of Perl itself. +|. It is now maintained as part of Perl itself. | |With lots of help and suggestions from Dean Roehrich, Malcolm Beattie, |Andreas Koenig, Paul Hudson, Ilya Zakharevich, Paul Marquess, Neil |Bowers, Matthew Green, Tim Bunce, Spider Boardman, Ulrich Pfeifer, |Stephen McCamant, and Gurusamy Sarathy. | -|API Listing originally by Dean Roehrich . +|API Listing originally by Dean Roehrich . | |Updated to be autogenerated from comments in the source by Benjamin Stuhl. | |=head1 SEE ALSO | -|L, L, L, L -| +$other_places_api _EOE_ # List of non-static internal functions my @missing_guts = - grep $funcflags{$_}{flags} !~ /[As]/ && !$docs{guts}{$_}, keys %funcflags; + grep $funcflags{$_}{flags} !~ /[AS]/ && !$docs{guts}{$_}, keys %funcflags; -output('perlintern', <<'END', $docs{guts}, \@missing_guts, <<'END'); +output('perlintern', <<'_EOB_', $docs{guts}, \@missing_guts, <<"_EOE_"); |=head1 NAME | |perlintern - autogenerated documentation of purely B -| Perl functions +|Perl functions | |=head1 DESCRIPTION |X X @@ -481,7 +533,7 @@ output('perlintern', <<'END', $docs{guts}, \@missing_guts, <<'END'); |format but are not marked as part of the Perl API. In other words, |B! | -END +_EOB_ | |=head1 AUTHORS | @@ -491,6 +543,5 @@ END | |=head1 SEE ALSO | -|L, L -| -END +$other_places_intern +_EOE_ diff --git a/gnu/usr.bin/perl/av.c b/gnu/usr.bin/perl/av.c index 918844c3761..27b2f12032b 100644 --- a/gnu/usr.bin/perl/av.c +++ b/gnu/usr.bin/perl/av.c @@ -55,8 +55,13 @@ Perl_av_reify(pTHX_ AV *av) /* =for apidoc av_extend -Pre-extend an array. The C is the index to which the array should be -extended. +Pre-extend an array so that it is capable of storing values at indexes +C<0..key>. Thus C guarantees that the array can store 100 +elements, i.e. that C through C +on a plain array will work without any further memory allocation. + +If the av argument is a tied array then will call the C tied +array method with an argument of C<(key+1)>. =cut */ @@ -72,6 +77,15 @@ Perl_av_extend(pTHX_ AV *av, SSize_t key) mg = SvTIED_mg((const SV *)av, PERL_MAGIC_tied); if (mg) { SV *arg1 = sv_newmortal(); + /* NOTE: the API for av_extend() is NOT the same as the tie method EXTEND. + * + * The C function takes an *index* (assumes 0 indexed arrays) and ensures + * that the array is at least as large as the index provided. + * + * The tied array method EXTEND takes a *count* and ensures that the array + * is at least that many elements large. Thus we have to +1 the key when + * we call the tied method. + */ sv_setiv(arg1, (IV)(key + 1)); Perl_magic_methcall(aTHX_ MUTABLE_SV(av), mg, SV_CONST(EXTEND), G_DISCARD, 1, arg1); diff --git a/gnu/usr.bin/perl/av.h b/gnu/usr.bin/perl/av.h index 6b2b14ce8f2..5e39c42ea12 100644 --- a/gnu/usr.bin/perl/av.h +++ b/gnu/usr.bin/perl/av.h @@ -39,7 +39,7 @@ struct xpvav { /* =head1 Handy Values -=for apidoc AmU||Nullav +=for apidoc ADmnU||Nullav Null AV pointer. (deprecated - use C<(AV *)NULL> instead) @@ -49,9 +49,11 @@ Null AV pointer. =for apidoc Am|int|AvFILL|AV* av Same as C or C. -=for apidoc Am|int|av_tindex|AV* av +=for apidoc av_tindex Same as C. +=for apidoc m|int|AvFILLp|AV* av + =cut */ diff --git a/gnu/usr.bin/perl/caretx.c b/gnu/usr.bin/perl/caretx.c index 247708de8ce..fc5ff93c257 100644 --- a/gnu/usr.bin/perl/caretx.c +++ b/gnu/usr.bin/perl/caretx.c @@ -77,7 +77,7 @@ Perl_set_caret_X(pTHX) { mib[3] = -1; if (sysctl(mib, 4, NULL, &size, NULL, 0) == 0 - && size > 0 && size < MAXPATHLEN * MAXPATHLEN) { + && inRANGE(size, 1, -1 + MAXPATHLEN * MAXPATHLEN)) { sv_grow(caret_x, size); if (sysctl(mib, 4, SvPVX(caret_x), &size, NULL, 0) == 0 diff --git a/gnu/usr.bin/perl/cflags.SH b/gnu/usr.bin/perl/cflags.SH index f1bcd6c38eb..96bfcd928bc 100644 --- a/gnu/usr.bin/perl/cflags.SH +++ b/gnu/usr.bin/perl/cflags.SH @@ -178,11 +178,17 @@ Intel*) ;; # # Is that you, Intel C++? # -std=c89 before -ansi # -pedantic* before -Werror=d-a-s # -*) for opt in -std=c89 -ansi $pedantic \ - -Werror=declaration-after-statement \ - -Werror=pointer-arith \ - -Wextra -W \ - -Wc++-compat -Wwrite-strings +*) warns="-std=c89 -ansi $pedantic \ + -Werror=pointer-arith \ + -Wextra -W \ + -Wc++-compat -Wwrite-strings" + # declaration after statement is normal in C++ rather than an + # extension and compilers complain if we try to warn about it + case "$d_cplusplus" in + define) ;; + *) warns="$warns -Werror=declaration-after-statement" ;; + esac + for opt in $warns do case " $ccflags " in *" $opt "*) ;; # Skip if already there. diff --git a/gnu/usr.bin/perl/charclass_invlists.h b/gnu/usr.bin/perl/charclass_invlists.h index cf5cc3f27dd..9a6a9cf789c 100644 --- a/gnu/usr.bin/perl/charclass_invlists.h +++ b/gnu/usr.bin/perl/charclass_invlists.h @@ -6,6 +6,24 @@ /* See the generating file for comments */ +/* This gives the number of code points that can be in the bitmap of an ANYOF + * node. The shift number must currently be one of: 8..12. It can't be less + * than 8 (256) because some code relies on it being at least that. Above 12 + * (4096), and you start running into warnings that some data structure widths + * have been exceeded, though the test suite as of this writing still passes + * for up through 16, which is as high as anyone would ever want to go, + * encompassing all of the Unicode BMP, and thus including all the economically + * important world scripts. At 12 most of them are: including Arabic, + * Cyrillic, Greek, Hebrew, Indian subcontinent, Latin, and Thai; but not Han, + * Japanese, nor Korean. (The regarglen structure in regnodes.h is a U8, and + * the trie types TRIEC and AHOCORASICKC are larger than U8 for shift values + * above 12.) Be sure to benchmark before changing, as larger sizes do + * significantly slow down the test suite */ + +#define NUM_ANYOF_CODE_POINTS (1 << 8) + +/* The precision to use in "%.*e" formats */ +#define PL_E_FORMAT_PRECISION 2 #if (defined(PERL_IN_REGCOMP_C) && ! defined(PERL_IN_XSUB_RE)) @@ -27,6 +45,8 @@ static const UV AboveLatin1_invlist[] = { 0x100 }; +static const UV * const InBitmap_invlist = Latin1_invlist; + #endif /* (defined(PERL_IN_REGCOMP_C) && ! defined(PERL_IN_XSUB_RE)) */ #if (defined(PERL_IN_REGCOMP_C) && ! defined(PERL_IN_XSUB_RE)) @@ -34,7 +54,7 @@ static const UV AboveLatin1_invlist[] = { # if 'A' == 65 /* ASCII/Latin1 */ static const UV Case_Folding_invlist[] = { /* for ASCII/Latin1 */ - 1393, /* Number of elements */ + 1398, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -1402,6 +1422,11 @@ static const UV Case_Folding_invlist[] = { /* for ASCII/Latin1 */ 0xA7C5, 0xA7C6, 0xA7C7, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7F5, + 0xA7F6, 0xAB70, 0xABC0, 0xFB00, @@ -1524,386 +1549,386 @@ typedef enum { #define HAS_CF_AUX_TABLES -static const unsigned int CF_AUX_TABLE_1[] = { +static const U32 CF_AUX_TABLE_1[] = { 0x73, 0x73 }; -static const unsigned int CF_AUX_TABLE_2[] = { +static const U32 CF_AUX_TABLE_2[] = { 0x69, 0x307 }; -static const unsigned int CF_AUX_TABLE_3[] = { +static const U32 CF_AUX_TABLE_3[] = { 0x2BC, 0x6E }; -static const unsigned int CF_AUX_TABLE_4[] = { +static const U32 CF_AUX_TABLE_4[] = { 0x6A, 0x30C }; -static const unsigned int CF_AUX_TABLE_5[] = { +static const U32 CF_AUX_TABLE_5[] = { 0x3B9, 0x308, 0x301 }; -static const unsigned int CF_AUX_TABLE_6[] = { +static const U32 CF_AUX_TABLE_6[] = { 0x3C5, 0x308, 0x301 }; -static const unsigned int CF_AUX_TABLE_7[] = { +static const U32 CF_AUX_TABLE_7[] = { 0x565, 0x582 }; -static const unsigned int CF_AUX_TABLE_8[] = { +static const U32 CF_AUX_TABLE_8[] = { 0x68, 0x331 }; -static const unsigned int CF_AUX_TABLE_9[] = { +static const U32 CF_AUX_TABLE_9[] = { 0x74, 0x308 }; -static const unsigned int CF_AUX_TABLE_10[] = { +static const U32 CF_AUX_TABLE_10[] = { 0x77, 0x30A }; -static const unsigned int CF_AUX_TABLE_11[] = { +static const U32 CF_AUX_TABLE_11[] = { 0x79, 0x30A }; -static const unsigned int CF_AUX_TABLE_12[] = { +static const U32 CF_AUX_TABLE_12[] = { 0x61, 0x2BE }; -static const unsigned int CF_AUX_TABLE_13[] = { +static const U32 CF_AUX_TABLE_13[] = { 0x3C5, 0x313 }; -static const unsigned int CF_AUX_TABLE_14[] = { +static const U32 CF_AUX_TABLE_14[] = { 0x3C5, 0x313, 0x300 }; -static const unsigned int CF_AUX_TABLE_15[] = { +static const U32 CF_AUX_TABLE_15[] = { 0x3C5, 0x313, 0x301 }; -static const unsigned int CF_AUX_TABLE_16[] = { +static const U32 CF_AUX_TABLE_16[] = { 0x3C5, 0x313, 0x342 }; -static const unsigned int CF_AUX_TABLE_17[] = { +static const U32 CF_AUX_TABLE_17[] = { 0x1F00, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_18[] = { +static const U32 CF_AUX_TABLE_18[] = { 0x1F01, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_19[] = { +static const U32 CF_AUX_TABLE_19[] = { 0x1F02, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_20[] = { +static const U32 CF_AUX_TABLE_20[] = { 0x1F03, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_21[] = { +static const U32 CF_AUX_TABLE_21[] = { 0x1F04, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_22[] = { +static const U32 CF_AUX_TABLE_22[] = { 0x1F05, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_23[] = { +static const U32 CF_AUX_TABLE_23[] = { 0x1F06, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_24[] = { +static const U32 CF_AUX_TABLE_24[] = { 0x1F07, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_25[] = { +static const U32 CF_AUX_TABLE_25[] = { 0x1F20, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_26[] = { +static const U32 CF_AUX_TABLE_26[] = { 0x1F21, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_27[] = { +static const U32 CF_AUX_TABLE_27[] = { 0x1F22, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_28[] = { +static const U32 CF_AUX_TABLE_28[] = { 0x1F23, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_29[] = { +static const U32 CF_AUX_TABLE_29[] = { 0x1F24, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_30[] = { +static const U32 CF_AUX_TABLE_30[] = { 0x1F25, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_31[] = { +static const U32 CF_AUX_TABLE_31[] = { 0x1F26, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_32[] = { +static const U32 CF_AUX_TABLE_32[] = { 0x1F27, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_33[] = { +static const U32 CF_AUX_TABLE_33[] = { 0x1F60, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_34[] = { +static const U32 CF_AUX_TABLE_34[] = { 0x1F61, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_35[] = { +static const U32 CF_AUX_TABLE_35[] = { 0x1F62, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_36[] = { +static const U32 CF_AUX_TABLE_36[] = { 0x1F63, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_37[] = { +static const U32 CF_AUX_TABLE_37[] = { 0x1F64, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_38[] = { +static const U32 CF_AUX_TABLE_38[] = { 0x1F65, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_39[] = { +static const U32 CF_AUX_TABLE_39[] = { 0x1F66, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_40[] = { +static const U32 CF_AUX_TABLE_40[] = { 0x1F67, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_41[] = { +static const U32 CF_AUX_TABLE_41[] = { 0x1F70, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_42[] = { +static const U32 CF_AUX_TABLE_42[] = { 0x3B1, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_43[] = { +static const U32 CF_AUX_TABLE_43[] = { 0x3AC, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_44[] = { +static const U32 CF_AUX_TABLE_44[] = { 0x3B1, 0x342 }; -static const unsigned int CF_AUX_TABLE_45[] = { +static const U32 CF_AUX_TABLE_45[] = { 0x3B1, 0x342, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_46[] = { +static const U32 CF_AUX_TABLE_46[] = { 0x1F74, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_47[] = { +static const U32 CF_AUX_TABLE_47[] = { 0x3B7, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_48[] = { +static const U32 CF_AUX_TABLE_48[] = { 0x3AE, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_49[] = { +static const U32 CF_AUX_TABLE_49[] = { 0x3B7, 0x342 }; -static const unsigned int CF_AUX_TABLE_50[] = { +static const U32 CF_AUX_TABLE_50[] = { 0x3B7, 0x342, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_51[] = { +static const U32 CF_AUX_TABLE_51[] = { 0x3B9, 0x308, 0x300 }; -static const unsigned int CF_AUX_TABLE_52[] = { +static const U32 CF_AUX_TABLE_52[] = { 0x3B9, 0x342 }; -static const unsigned int CF_AUX_TABLE_53[] = { +static const U32 CF_AUX_TABLE_53[] = { 0x3B9, 0x308, 0x342 }; -static const unsigned int CF_AUX_TABLE_54[] = { +static const U32 CF_AUX_TABLE_54[] = { 0x3C5, 0x308, 0x300 }; -static const unsigned int CF_AUX_TABLE_55[] = { +static const U32 CF_AUX_TABLE_55[] = { 0x3C1, 0x313 }; -static const unsigned int CF_AUX_TABLE_56[] = { +static const U32 CF_AUX_TABLE_56[] = { 0x3C5, 0x342 }; -static const unsigned int CF_AUX_TABLE_57[] = { +static const U32 CF_AUX_TABLE_57[] = { 0x3C5, 0x308, 0x342 }; -static const unsigned int CF_AUX_TABLE_58[] = { +static const U32 CF_AUX_TABLE_58[] = { 0x1F7C, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_59[] = { +static const U32 CF_AUX_TABLE_59[] = { 0x3C9, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_60[] = { +static const U32 CF_AUX_TABLE_60[] = { 0x3CE, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_61[] = { +static const U32 CF_AUX_TABLE_61[] = { 0x3C9, 0x342 }; -static const unsigned int CF_AUX_TABLE_62[] = { +static const U32 CF_AUX_TABLE_62[] = { 0x3C9, 0x342, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_63[] = { +static const U32 CF_AUX_TABLE_63[] = { 0x66, 0x66 }; -static const unsigned int CF_AUX_TABLE_64[] = { +static const U32 CF_AUX_TABLE_64[] = { 0x66, 0x69 }; -static const unsigned int CF_AUX_TABLE_65[] = { +static const U32 CF_AUX_TABLE_65[] = { 0x66, 0x6C }; -static const unsigned int CF_AUX_TABLE_66[] = { +static const U32 CF_AUX_TABLE_66[] = { 0x66, 0x66, 0x69 }; -static const unsigned int CF_AUX_TABLE_67[] = { +static const U32 CF_AUX_TABLE_67[] = { 0x66, 0x66, 0x6C }; -static const unsigned int CF_AUX_TABLE_68[] = { +static const U32 CF_AUX_TABLE_68[] = { 0x73, 0x74 }; -static const unsigned int CF_AUX_TABLE_69[] = { +static const U32 CF_AUX_TABLE_69[] = { 0x574, 0x576 }; -static const unsigned int CF_AUX_TABLE_70[] = { +static const U32 CF_AUX_TABLE_70[] = { 0x574, 0x565 }; -static const unsigned int CF_AUX_TABLE_71[] = { +static const U32 CF_AUX_TABLE_71[] = { 0x574, 0x56B }; -static const unsigned int CF_AUX_TABLE_72[] = { +static const U32 CF_AUX_TABLE_72[] = { 0x57E, 0x576 }; -static const unsigned int CF_AUX_TABLE_73[] = { +static const U32 CF_AUX_TABLE_73[] = { 0x574, 0x56D }; -static const unsigned int * const CF_AUX_TABLE_ptrs[] = { +static const U32 * const CF_AUX_TABLE_ptrs[] = { NULL, /* Placeholder */ CF_AUX_TABLE_1, CF_AUX_TABLE_2, @@ -2060,7 +2085,7 @@ static const U8 CF_AUX_TABLE_lengths[] = { 2 /* CF_AUX_TABLE_73 */ }; -static const int Case_Folding_invmap[] = { /* for ASCII/Latin1 */ +static const I32 Case_Folding_invmap[] = { /* for ASCII/Latin1 */ 0, 0x61, 0, @@ -3424,6 +3449,11 @@ static const int Case_Folding_invmap[] = { /* for ASCII/Latin1 */ 0xA794, 0x282, 0x1D8E, + 0xA7C8, + 0, + 0xA7CA, + 0, + 0xA7F6, 0, 0x13A0, 0, @@ -3468,7 +3498,7 @@ static const int Case_Folding_invmap[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV Case_Folding_invlist[] = { /* for EBCDIC 1047 */ - 1412, /* Number of elements */ + 1417, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -4855,6 +4885,11 @@ static const UV Case_Folding_invlist[] = { /* for EBCDIC 1047 */ 0xA7C5, 0xA7C6, 0xA7C7, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7F5, + 0xA7F6, 0xAB70, 0xABC0, 0xFB00, @@ -4980,386 +5015,386 @@ typedef enum { #define HAS_CF_AUX_TABLES -static const unsigned int CF_AUX_TABLE_1[] = { +static const U32 CF_AUX_TABLE_1[] = { 0xA2, 0xA2 }; -static const unsigned int CF_AUX_TABLE_2[] = { +static const U32 CF_AUX_TABLE_2[] = { 0x89, 0x307 }; -static const unsigned int CF_AUX_TABLE_3[] = { +static const U32 CF_AUX_TABLE_3[] = { 0x2BC, 0x95 }; -static const unsigned int CF_AUX_TABLE_4[] = { +static const U32 CF_AUX_TABLE_4[] = { 0x91, 0x30C }; -static const unsigned int CF_AUX_TABLE_5[] = { +static const U32 CF_AUX_TABLE_5[] = { 0x3B9, 0x308, 0x301 }; -static const unsigned int CF_AUX_TABLE_6[] = { +static const U32 CF_AUX_TABLE_6[] = { 0x3C5, 0x308, 0x301 }; -static const unsigned int CF_AUX_TABLE_7[] = { +static const U32 CF_AUX_TABLE_7[] = { 0x565, 0x582 }; -static const unsigned int CF_AUX_TABLE_8[] = { +static const U32 CF_AUX_TABLE_8[] = { 0x88, 0x331 }; -static const unsigned int CF_AUX_TABLE_9[] = { +static const U32 CF_AUX_TABLE_9[] = { 0xA3, 0x308 }; -static const unsigned int CF_AUX_TABLE_10[] = { +static const U32 CF_AUX_TABLE_10[] = { 0xA6, 0x30A }; -static const unsigned int CF_AUX_TABLE_11[] = { +static const U32 CF_AUX_TABLE_11[] = { 0xA8, 0x30A }; -static const unsigned int CF_AUX_TABLE_12[] = { +static const U32 CF_AUX_TABLE_12[] = { 0x81, 0x2BE }; -static const unsigned int CF_AUX_TABLE_13[] = { +static const U32 CF_AUX_TABLE_13[] = { 0x3C5, 0x313 }; -static const unsigned int CF_AUX_TABLE_14[] = { +static const U32 CF_AUX_TABLE_14[] = { 0x3C5, 0x313, 0x300 }; -static const unsigned int CF_AUX_TABLE_15[] = { +static const U32 CF_AUX_TABLE_15[] = { 0x3C5, 0x313, 0x301 }; -static const unsigned int CF_AUX_TABLE_16[] = { +static const U32 CF_AUX_TABLE_16[] = { 0x3C5, 0x313, 0x342 }; -static const unsigned int CF_AUX_TABLE_17[] = { +static const U32 CF_AUX_TABLE_17[] = { 0x1F00, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_18[] = { +static const U32 CF_AUX_TABLE_18[] = { 0x1F01, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_19[] = { +static const U32 CF_AUX_TABLE_19[] = { 0x1F02, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_20[] = { +static const U32 CF_AUX_TABLE_20[] = { 0x1F03, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_21[] = { +static const U32 CF_AUX_TABLE_21[] = { 0x1F04, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_22[] = { +static const U32 CF_AUX_TABLE_22[] = { 0x1F05, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_23[] = { +static const U32 CF_AUX_TABLE_23[] = { 0x1F06, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_24[] = { +static const U32 CF_AUX_TABLE_24[] = { 0x1F07, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_25[] = { +static const U32 CF_AUX_TABLE_25[] = { 0x1F20, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_26[] = { +static const U32 CF_AUX_TABLE_26[] = { 0x1F21, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_27[] = { +static const U32 CF_AUX_TABLE_27[] = { 0x1F22, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_28[] = { +static const U32 CF_AUX_TABLE_28[] = { 0x1F23, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_29[] = { +static const U32 CF_AUX_TABLE_29[] = { 0x1F24, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_30[] = { +static const U32 CF_AUX_TABLE_30[] = { 0x1F25, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_31[] = { +static const U32 CF_AUX_TABLE_31[] = { 0x1F26, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_32[] = { +static const U32 CF_AUX_TABLE_32[] = { 0x1F27, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_33[] = { +static const U32 CF_AUX_TABLE_33[] = { 0x1F60, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_34[] = { +static const U32 CF_AUX_TABLE_34[] = { 0x1F61, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_35[] = { +static const U32 CF_AUX_TABLE_35[] = { 0x1F62, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_36[] = { +static const U32 CF_AUX_TABLE_36[] = { 0x1F63, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_37[] = { +static const U32 CF_AUX_TABLE_37[] = { 0x1F64, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_38[] = { +static const U32 CF_AUX_TABLE_38[] = { 0x1F65, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_39[] = { +static const U32 CF_AUX_TABLE_39[] = { 0x1F66, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_40[] = { +static const U32 CF_AUX_TABLE_40[] = { 0x1F67, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_41[] = { +static const U32 CF_AUX_TABLE_41[] = { 0x1F70, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_42[] = { +static const U32 CF_AUX_TABLE_42[] = { 0x3B1, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_43[] = { +static const U32 CF_AUX_TABLE_43[] = { 0x3AC, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_44[] = { +static const U32 CF_AUX_TABLE_44[] = { 0x3B1, 0x342 }; -static const unsigned int CF_AUX_TABLE_45[] = { +static const U32 CF_AUX_TABLE_45[] = { 0x3B1, 0x342, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_46[] = { +static const U32 CF_AUX_TABLE_46[] = { 0x1F74, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_47[] = { +static const U32 CF_AUX_TABLE_47[] = { 0x3B7, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_48[] = { +static const U32 CF_AUX_TABLE_48[] = { 0x3AE, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_49[] = { +static const U32 CF_AUX_TABLE_49[] = { 0x3B7, 0x342 }; -static const unsigned int CF_AUX_TABLE_50[] = { +static const U32 CF_AUX_TABLE_50[] = { 0x3B7, 0x342, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_51[] = { +static const U32 CF_AUX_TABLE_51[] = { 0x3B9, 0x308, 0x300 }; -static const unsigned int CF_AUX_TABLE_52[] = { +static const U32 CF_AUX_TABLE_52[] = { 0x3B9, 0x342 }; -static const unsigned int CF_AUX_TABLE_53[] = { +static const U32 CF_AUX_TABLE_53[] = { 0x3B9, 0x308, 0x342 }; -static const unsigned int CF_AUX_TABLE_54[] = { +static const U32 CF_AUX_TABLE_54[] = { 0x3C5, 0x308, 0x300 }; -static const unsigned int CF_AUX_TABLE_55[] = { +static const U32 CF_AUX_TABLE_55[] = { 0x3C1, 0x313 }; -static const unsigned int CF_AUX_TABLE_56[] = { +static const U32 CF_AUX_TABLE_56[] = { 0x3C5, 0x342 }; -static const unsigned int CF_AUX_TABLE_57[] = { +static const U32 CF_AUX_TABLE_57[] = { 0x3C5, 0x308, 0x342 }; -static const unsigned int CF_AUX_TABLE_58[] = { +static const U32 CF_AUX_TABLE_58[] = { 0x1F7C, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_59[] = { +static const U32 CF_AUX_TABLE_59[] = { 0x3C9, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_60[] = { +static const U32 CF_AUX_TABLE_60[] = { 0x3CE, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_61[] = { +static const U32 CF_AUX_TABLE_61[] = { 0x3C9, 0x342 }; -static const unsigned int CF_AUX_TABLE_62[] = { +static const U32 CF_AUX_TABLE_62[] = { 0x3C9, 0x342, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_63[] = { +static const U32 CF_AUX_TABLE_63[] = { 0x86, 0x86 }; -static const unsigned int CF_AUX_TABLE_64[] = { +static const U32 CF_AUX_TABLE_64[] = { 0x86, 0x89 }; -static const unsigned int CF_AUX_TABLE_65[] = { +static const U32 CF_AUX_TABLE_65[] = { 0x86, 0x93 }; -static const unsigned int CF_AUX_TABLE_66[] = { +static const U32 CF_AUX_TABLE_66[] = { 0x86, 0x86, 0x89 }; -static const unsigned int CF_AUX_TABLE_67[] = { +static const U32 CF_AUX_TABLE_67[] = { 0x86, 0x86, 0x93 }; -static const unsigned int CF_AUX_TABLE_68[] = { +static const U32 CF_AUX_TABLE_68[] = { 0xA2, 0xA3 }; -static const unsigned int CF_AUX_TABLE_69[] = { +static const U32 CF_AUX_TABLE_69[] = { 0x574, 0x576 }; -static const unsigned int CF_AUX_TABLE_70[] = { +static const U32 CF_AUX_TABLE_70[] = { 0x574, 0x565 }; -static const unsigned int CF_AUX_TABLE_71[] = { +static const U32 CF_AUX_TABLE_71[] = { 0x574, 0x56B }; -static const unsigned int CF_AUX_TABLE_72[] = { +static const U32 CF_AUX_TABLE_72[] = { 0x57E, 0x576 }; -static const unsigned int CF_AUX_TABLE_73[] = { +static const U32 CF_AUX_TABLE_73[] = { 0x574, 0x56D }; -static const unsigned int * const CF_AUX_TABLE_ptrs[] = { +static const U32 * const CF_AUX_TABLE_ptrs[] = { NULL, /* Placeholder */ CF_AUX_TABLE_1, CF_AUX_TABLE_2, @@ -5516,7 +5551,7 @@ static const U8 CF_AUX_TABLE_lengths[] = { 2 /* CF_AUX_TABLE_73 */ }; -static const int Case_Folding_invmap[] = { /* for EBCDIC 1047 */ +static const I32 Case_Folding_invmap[] = { /* for EBCDIC 1047 */ 0, CF_use_AUX_TABLE_1, 0, @@ -6899,6 +6934,11 @@ static const int Case_Folding_invmap[] = { /* for EBCDIC 1047 */ 0xA794, 0x282, 0x1D8E, + 0xA7C8, + 0, + 0xA7CA, + 0, + 0xA7F6, 0, 0x13A0, 0, @@ -6943,7 +6983,7 @@ static const int Case_Folding_invmap[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV Case_Folding_invlist[] = { /* for EBCDIC 037 */ - 1408, /* Number of elements */ + 1413, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -8326,6 +8366,11 @@ static const UV Case_Folding_invlist[] = { /* for EBCDIC 037 */ 0xA7C5, 0xA7C6, 0xA7C7, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7F5, + 0xA7F6, 0xAB70, 0xABC0, 0xFB00, @@ -8451,386 +8496,386 @@ typedef enum { #define HAS_CF_AUX_TABLES -static const unsigned int CF_AUX_TABLE_1[] = { +static const U32 CF_AUX_TABLE_1[] = { 0xA2, 0xA2 }; -static const unsigned int CF_AUX_TABLE_2[] = { +static const U32 CF_AUX_TABLE_2[] = { 0x89, 0x307 }; -static const unsigned int CF_AUX_TABLE_3[] = { +static const U32 CF_AUX_TABLE_3[] = { 0x2BC, 0x95 }; -static const unsigned int CF_AUX_TABLE_4[] = { +static const U32 CF_AUX_TABLE_4[] = { 0x91, 0x30C }; -static const unsigned int CF_AUX_TABLE_5[] = { +static const U32 CF_AUX_TABLE_5[] = { 0x3B9, 0x308, 0x301 }; -static const unsigned int CF_AUX_TABLE_6[] = { +static const U32 CF_AUX_TABLE_6[] = { 0x3C5, 0x308, 0x301 }; -static const unsigned int CF_AUX_TABLE_7[] = { +static const U32 CF_AUX_TABLE_7[] = { 0x565, 0x582 }; -static const unsigned int CF_AUX_TABLE_8[] = { +static const U32 CF_AUX_TABLE_8[] = { 0x88, 0x331 }; -static const unsigned int CF_AUX_TABLE_9[] = { +static const U32 CF_AUX_TABLE_9[] = { 0xA3, 0x308 }; -static const unsigned int CF_AUX_TABLE_10[] = { +static const U32 CF_AUX_TABLE_10[] = { 0xA6, 0x30A }; -static const unsigned int CF_AUX_TABLE_11[] = { +static const U32 CF_AUX_TABLE_11[] = { 0xA8, 0x30A }; -static const unsigned int CF_AUX_TABLE_12[] = { +static const U32 CF_AUX_TABLE_12[] = { 0x81, 0x2BE }; -static const unsigned int CF_AUX_TABLE_13[] = { +static const U32 CF_AUX_TABLE_13[] = { 0x3C5, 0x313 }; -static const unsigned int CF_AUX_TABLE_14[] = { +static const U32 CF_AUX_TABLE_14[] = { 0x3C5, 0x313, 0x300 }; -static const unsigned int CF_AUX_TABLE_15[] = { +static const U32 CF_AUX_TABLE_15[] = { 0x3C5, 0x313, 0x301 }; -static const unsigned int CF_AUX_TABLE_16[] = { +static const U32 CF_AUX_TABLE_16[] = { 0x3C5, 0x313, 0x342 }; -static const unsigned int CF_AUX_TABLE_17[] = { +static const U32 CF_AUX_TABLE_17[] = { 0x1F00, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_18[] = { +static const U32 CF_AUX_TABLE_18[] = { 0x1F01, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_19[] = { +static const U32 CF_AUX_TABLE_19[] = { 0x1F02, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_20[] = { +static const U32 CF_AUX_TABLE_20[] = { 0x1F03, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_21[] = { +static const U32 CF_AUX_TABLE_21[] = { 0x1F04, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_22[] = { +static const U32 CF_AUX_TABLE_22[] = { 0x1F05, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_23[] = { +static const U32 CF_AUX_TABLE_23[] = { 0x1F06, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_24[] = { +static const U32 CF_AUX_TABLE_24[] = { 0x1F07, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_25[] = { +static const U32 CF_AUX_TABLE_25[] = { 0x1F20, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_26[] = { +static const U32 CF_AUX_TABLE_26[] = { 0x1F21, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_27[] = { +static const U32 CF_AUX_TABLE_27[] = { 0x1F22, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_28[] = { +static const U32 CF_AUX_TABLE_28[] = { 0x1F23, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_29[] = { +static const U32 CF_AUX_TABLE_29[] = { 0x1F24, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_30[] = { +static const U32 CF_AUX_TABLE_30[] = { 0x1F25, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_31[] = { +static const U32 CF_AUX_TABLE_31[] = { 0x1F26, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_32[] = { +static const U32 CF_AUX_TABLE_32[] = { 0x1F27, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_33[] = { +static const U32 CF_AUX_TABLE_33[] = { 0x1F60, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_34[] = { +static const U32 CF_AUX_TABLE_34[] = { 0x1F61, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_35[] = { +static const U32 CF_AUX_TABLE_35[] = { 0x1F62, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_36[] = { +static const U32 CF_AUX_TABLE_36[] = { 0x1F63, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_37[] = { +static const U32 CF_AUX_TABLE_37[] = { 0x1F64, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_38[] = { +static const U32 CF_AUX_TABLE_38[] = { 0x1F65, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_39[] = { +static const U32 CF_AUX_TABLE_39[] = { 0x1F66, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_40[] = { +static const U32 CF_AUX_TABLE_40[] = { 0x1F67, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_41[] = { +static const U32 CF_AUX_TABLE_41[] = { 0x1F70, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_42[] = { +static const U32 CF_AUX_TABLE_42[] = { 0x3B1, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_43[] = { +static const U32 CF_AUX_TABLE_43[] = { 0x3AC, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_44[] = { +static const U32 CF_AUX_TABLE_44[] = { 0x3B1, 0x342 }; -static const unsigned int CF_AUX_TABLE_45[] = { +static const U32 CF_AUX_TABLE_45[] = { 0x3B1, 0x342, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_46[] = { +static const U32 CF_AUX_TABLE_46[] = { 0x1F74, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_47[] = { +static const U32 CF_AUX_TABLE_47[] = { 0x3B7, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_48[] = { +static const U32 CF_AUX_TABLE_48[] = { 0x3AE, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_49[] = { +static const U32 CF_AUX_TABLE_49[] = { 0x3B7, 0x342 }; -static const unsigned int CF_AUX_TABLE_50[] = { +static const U32 CF_AUX_TABLE_50[] = { 0x3B7, 0x342, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_51[] = { +static const U32 CF_AUX_TABLE_51[] = { 0x3B9, 0x308, 0x300 }; -static const unsigned int CF_AUX_TABLE_52[] = { +static const U32 CF_AUX_TABLE_52[] = { 0x3B9, 0x342 }; -static const unsigned int CF_AUX_TABLE_53[] = { +static const U32 CF_AUX_TABLE_53[] = { 0x3B9, 0x308, 0x342 }; -static const unsigned int CF_AUX_TABLE_54[] = { +static const U32 CF_AUX_TABLE_54[] = { 0x3C5, 0x308, 0x300 }; -static const unsigned int CF_AUX_TABLE_55[] = { +static const U32 CF_AUX_TABLE_55[] = { 0x3C1, 0x313 }; -static const unsigned int CF_AUX_TABLE_56[] = { +static const U32 CF_AUX_TABLE_56[] = { 0x3C5, 0x342 }; -static const unsigned int CF_AUX_TABLE_57[] = { +static const U32 CF_AUX_TABLE_57[] = { 0x3C5, 0x308, 0x342 }; -static const unsigned int CF_AUX_TABLE_58[] = { +static const U32 CF_AUX_TABLE_58[] = { 0x1F7C, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_59[] = { +static const U32 CF_AUX_TABLE_59[] = { 0x3C9, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_60[] = { +static const U32 CF_AUX_TABLE_60[] = { 0x3CE, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_61[] = { +static const U32 CF_AUX_TABLE_61[] = { 0x3C9, 0x342 }; -static const unsigned int CF_AUX_TABLE_62[] = { +static const U32 CF_AUX_TABLE_62[] = { 0x3C9, 0x342, 0x3B9 }; -static const unsigned int CF_AUX_TABLE_63[] = { +static const U32 CF_AUX_TABLE_63[] = { 0x86, 0x86 }; -static const unsigned int CF_AUX_TABLE_64[] = { +static const U32 CF_AUX_TABLE_64[] = { 0x86, 0x89 }; -static const unsigned int CF_AUX_TABLE_65[] = { +static const U32 CF_AUX_TABLE_65[] = { 0x86, 0x93 }; -static const unsigned int CF_AUX_TABLE_66[] = { +static const U32 CF_AUX_TABLE_66[] = { 0x86, 0x86, 0x89 }; -static const unsigned int CF_AUX_TABLE_67[] = { +static const U32 CF_AUX_TABLE_67[] = { 0x86, 0x86, 0x93 }; -static const unsigned int CF_AUX_TABLE_68[] = { +static const U32 CF_AUX_TABLE_68[] = { 0xA2, 0xA3 }; -static const unsigned int CF_AUX_TABLE_69[] = { +static const U32 CF_AUX_TABLE_69[] = { 0x574, 0x576 }; -static const unsigned int CF_AUX_TABLE_70[] = { +static const U32 CF_AUX_TABLE_70[] = { 0x574, 0x565 }; -static const unsigned int CF_AUX_TABLE_71[] = { +static const U32 CF_AUX_TABLE_71[] = { 0x574, 0x56B }; -static const unsigned int CF_AUX_TABLE_72[] = { +static const U32 CF_AUX_TABLE_72[] = { 0x57E, 0x576 }; -static const unsigned int CF_AUX_TABLE_73[] = { +static const U32 CF_AUX_TABLE_73[] = { 0x574, 0x56D }; -static const unsigned int * const CF_AUX_TABLE_ptrs[] = { +static const U32 * const CF_AUX_TABLE_ptrs[] = { NULL, /* Placeholder */ CF_AUX_TABLE_1, CF_AUX_TABLE_2, @@ -8987,7 +9032,7 @@ static const U8 CF_AUX_TABLE_lengths[] = { 2 /* CF_AUX_TABLE_73 */ }; -static const int Case_Folding_invmap[] = { /* for EBCDIC 037 */ +static const I32 Case_Folding_invmap[] = { /* for EBCDIC 037 */ 0, CF_use_AUX_TABLE_1, 0, @@ -10366,6 +10411,11 @@ static const int Case_Folding_invmap[] = { /* for EBCDIC 037 */ 0xA794, 0x282, 0x1D8E, + 0xA7C8, + 0, + 0xA7CA, + 0, + 0xA7F6, 0, 0x13A0, 0, @@ -10407,7 +10457,7 @@ static const int Case_Folding_invmap[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV Lowercase_Mapping_invlist[] = { /* for ASCII/Latin1 */ - 1257, /* Number of elements */ + 1262, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -11654,6 +11704,11 @@ static const UV Lowercase_Mapping_invlist[] = { /* for ASCII/Latin1 */ 0xA7C5, 0xA7C6, 0xA7C7, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7F5, + 0xA7F6, 0xFF21, 0xFF3B, 0x10400, @@ -11689,12 +11744,12 @@ typedef enum { #define HAS_LC_AUX_TABLES -static const unsigned int LC_AUX_TABLE_1[] = { +static const U32 LC_AUX_TABLE_1[] = { 0x69, 0x307 }; -static const unsigned int * const LC_AUX_TABLE_ptrs[] = { +static const U32 * const LC_AUX_TABLE_ptrs[] = { NULL, /* Placeholder */ LC_AUX_TABLE_1 }; @@ -11707,7 +11762,7 @@ static const U8 LC_AUX_TABLE_lengths[] = { 2 /* LC_AUX_TABLE_1 */ }; -static const int Lowercase_Mapping_invmap[] = { /* for ASCII/Latin1 */ +static const I32 Lowercase_Mapping_invmap[] = { /* for ASCII/Latin1 */ 0, 0x61, 0, @@ -12950,6 +13005,11 @@ static const int Lowercase_Mapping_invmap[] = { /* for ASCII/Latin1 */ 0xA794, 0x282, 0x1D8E, + 0xA7C8, + 0, + 0xA7CA, + 0, + 0xA7F6, 0, 0xFF41, 0, @@ -12979,7 +13039,7 @@ static const int Lowercase_Mapping_invmap[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV Lowercase_Mapping_invlist[] = { /* for EBCDIC 1047 */ - 1275, /* Number of elements */ + 1280, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -14244,6 +14304,11 @@ static const UV Lowercase_Mapping_invlist[] = { /* for EBCDIC 1047 */ 0xA7C5, 0xA7C6, 0xA7C7, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7F5, + 0xA7F6, 0xFF21, 0xFF3B, 0x10400, @@ -14282,12 +14347,12 @@ typedef enum { #define HAS_LC_AUX_TABLES -static const unsigned int LC_AUX_TABLE_1[] = { +static const U32 LC_AUX_TABLE_1[] = { 0x89, 0x307 }; -static const unsigned int * const LC_AUX_TABLE_ptrs[] = { +static const U32 * const LC_AUX_TABLE_ptrs[] = { NULL, /* Placeholder */ LC_AUX_TABLE_1 }; @@ -14300,7 +14365,7 @@ static const U8 LC_AUX_TABLE_lengths[] = { 2 /* LC_AUX_TABLE_1 */ }; -static const int Lowercase_Mapping_invmap[] = { /* for EBCDIC 1047 */ +static const I32 Lowercase_Mapping_invmap[] = { /* for EBCDIC 1047 */ 0, 0x42, 0, @@ -15561,6 +15626,11 @@ static const int Lowercase_Mapping_invmap[] = { /* for EBCDIC 1047 */ 0xA794, 0x282, 0x1D8E, + 0xA7C8, + 0, + 0xA7CA, + 0, + 0xA7F6, 0, 0xFF41, 0, @@ -15590,7 +15660,7 @@ static const int Lowercase_Mapping_invmap[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV Lowercase_Mapping_invlist[] = { /* for EBCDIC 037 */ - 1271, /* Number of elements */ + 1276, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -16851,6 +16921,11 @@ static const UV Lowercase_Mapping_invlist[] = { /* for EBCDIC 037 */ 0xA7C5, 0xA7C6, 0xA7C7, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7F5, + 0xA7F6, 0xFF21, 0xFF3B, 0x10400, @@ -16889,12 +16964,12 @@ typedef enum { #define HAS_LC_AUX_TABLES -static const unsigned int LC_AUX_TABLE_1[] = { +static const U32 LC_AUX_TABLE_1[] = { 0x89, 0x307 }; -static const unsigned int * const LC_AUX_TABLE_ptrs[] = { +static const U32 * const LC_AUX_TABLE_ptrs[] = { NULL, /* Placeholder */ LC_AUX_TABLE_1 }; @@ -16907,7 +16982,7 @@ static const U8 LC_AUX_TABLE_lengths[] = { 2 /* LC_AUX_TABLE_1 */ }; -static const int Lowercase_Mapping_invmap[] = { /* for EBCDIC 037 */ +static const I32 Lowercase_Mapping_invmap[] = { /* for EBCDIC 037 */ 0, 0x42, 0, @@ -18164,6 +18239,11 @@ static const int Lowercase_Mapping_invmap[] = { /* for EBCDIC 037 */ 0xA794, 0x282, 0x1D8E, + 0xA7C8, + 0, + 0xA7CA, + 0, + 0xA7F6, 0, 0xFF41, 0, @@ -18188,7 +18268,7 @@ static const int Lowercase_Mapping_invmap[] = { /* for EBCDIC 037 */ #if (defined(PERL_IN_REGCOMP_C) && ! defined(PERL_IN_XSUB_RE)) static const UV _Perl_CCC_non0_non230_invlist[] = { /* for all charsets */ - 349, /* Number of elements */ + 359, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -18381,6 +18461,8 @@ static const UV _Perl_CCC_non0_non230_invlist[] = { /* for all charsets */ 0x1ABB, 0x1ABD, 0x1ABE, + 0x1ABF, + 0x1AC1, 0x1B34, 0x1B35, 0x1B44, @@ -18433,6 +18515,8 @@ static const UV _Perl_CCC_non0_non230_invlist[] = { /* for all charsets */ 0x309B, 0xA806, 0xA807, + 0xA82C, + 0xA82D, 0xA8C4, 0xA8C5, 0xA92B, @@ -18509,6 +18593,10 @@ static const UV _Perl_CCC_non0_non230_invlist[] = { /* for all charsets */ 0x1172C, 0x11839, 0x1183B, + 0x1193D, + 0x1193F, + 0x11943, + 0x11944, 0x119E0, 0x119E1, 0x11A34, @@ -18527,6 +18615,8 @@ static const UV _Perl_CCC_non0_non230_invlist[] = { /* for all charsets */ 0x11D98, 0x16AF0, 0x16AF5, + 0x16FF0, + 0x16FF2, 0x1BC9E, 0x1BC9F, 0x1D165, @@ -18546,7 +18636,7 @@ static const UV _Perl_CCC_non0_non230_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV _Perl_GCB_invlist[] = { /* for ASCII/Latin1 */ - 1777, /* Number of elements */ + 1805, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -18707,7 +18797,7 @@ static const UV _Perl_GCB_invlist[] = { /* for ASCII/Latin1 */ 0xB4B, 0xB4D, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB62, 0xB64, @@ -18780,6 +18870,7 @@ static const UV _Perl_GCB_invlist[] = { /* for ASCII/Latin1 */ 0xD58, 0xD62, 0xD64, + 0xD81, 0xD82, 0xD84, 0xDCA, @@ -18916,7 +19007,7 @@ static const UV _Perl_GCB_invlist[] = { /* for ASCII/Latin1 */ 0x1A7F, 0x1A80, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B04, 0x1B05, @@ -19104,6 +19195,8 @@ static const UV _Perl_GCB_invlist[] = { /* for ASCII/Latin1 */ 0xA825, 0xA827, 0xA828, + 0xA82C, + 0xA82D, 0xA880, 0xA882, 0xA8B4, @@ -20006,6 +20099,8 @@ static const UV _Perl_GCB_invlist[] = { /* for ASCII/Latin1 */ 0x10AE7, 0x10D24, 0x10D28, + 0x10EAB, + 0x10EAD, 0x10F46, 0x10F51, 0x11000, @@ -20047,6 +20142,9 @@ static const UV _Perl_GCB_invlist[] = { /* for ASCII/Latin1 */ 0x111C4, 0x111C9, 0x111CD, + 0x111CE, + 0x111CF, + 0x111D0, 0x1122C, 0x1122F, 0x11232, @@ -20140,6 +20238,20 @@ static const UV _Perl_GCB_invlist[] = { /* for ASCII/Latin1 */ 0x11838, 0x11839, 0x1183B, + 0x11930, + 0x11931, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x1193D, + 0x1193E, + 0x1193F, + 0x11940, + 0x11941, + 0x11942, + 0x11943, + 0x11944, 0x119D1, 0x119D4, 0x119D8, @@ -20217,6 +20329,10 @@ static const UV _Perl_GCB_invlist[] = { /* for ASCII/Latin1 */ 0x16F88, 0x16F8F, 0x16F93, + 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x1BC9D, 0x1BC9F, 0x1BCA0, @@ -20320,6 +20436,8 @@ static const UV _Perl_GCB_invlist[] = { /* for ASCII/Latin1 */ 0x1F93C, 0x1F946, 0x1F947, + 0x1FB00, + 0x1FC00, 0x1FFFE, 0xE0000, 0xE0020, @@ -20339,21 +20457,21 @@ static const UV _Perl_GCB_invlist[] = { /* for ASCII/Latin1 */ typedef enum { GCB_Other = 0, - GCB_CR = 1, - GCB_Control = 2, - GCB_Extend = 3, - GCB_L = 4, - GCB_LF = 5, - GCB_LV = 6, - GCB_LVT = 7, - GCB_Prepend = 8, - GCB_Regional_Indicator = 9, - GCB_SpacingMark = 10, - GCB_T = 11, - GCB_V = 12, - GCB_XPG_XX = 13, - GCB_ZWJ = 14, - GCB_EDGE = 15, + GCB_Control = 1, + GCB_CR = 2, + GCB_EDGE = 3, + GCB_ExtPict_XX = 4, + GCB_Extend = 5, + GCB_L = 6, + GCB_LF = 7, + GCB_LV = 8, + GCB_LVT = 9, + GCB_Prepend = 10, + GCB_Regional_Indicator = 11, + GCB_SpacingMark = 12, + GCB_T = 13, + GCB_V = 14, + GCB_ZWJ = 15, GCB_E_Base = 16, GCB_E_Base_GAZ = 16, GCB_E_Modifier = 16, @@ -20369,10 +20487,10 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for ASCII/Latin1 */ GCB_Other, GCB_Control, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, GCB_Control, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, GCB_Extend, GCB_Other, @@ -20591,6 +20709,7 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for ASCII/Latin1 */ GCB_Other, GCB_Extend, GCB_Other, + GCB_Extend, GCB_SpacingMark, GCB_Other, GCB_Extend, @@ -20788,97 +20907,97 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for ASCII/Latin1 */ GCB_Other, GCB_Control, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, GCB_Control, GCB_Other, GCB_Extend, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, GCB_Extend, GCB_Other, @@ -20887,15 +21006,15 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for ASCII/Latin1 */ GCB_Extend, GCB_Other, GCB_Extend, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, GCB_Extend, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, GCB_Extend, GCB_Other, @@ -20915,6 +21034,8 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for ASCII/Latin1 */ GCB_Extend, GCB_SpacingMark, GCB_Other, + GCB_Extend, + GCB_Other, GCB_SpacingMark, GCB_Other, GCB_SpacingMark, @@ -21819,6 +21940,8 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for ASCII/Latin1 */ GCB_Other, GCB_Extend, GCB_Other, + GCB_Extend, + GCB_Other, GCB_SpacingMark, GCB_Extend, GCB_SpacingMark, @@ -21860,6 +21983,9 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for ASCII/Latin1 */ GCB_Other, GCB_SpacingMark, GCB_Extend, + GCB_Other, + GCB_SpacingMark, + GCB_Extend, GCB_SpacingMark, GCB_Extend, GCB_SpacingMark, @@ -21951,6 +22077,20 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for ASCII/Latin1 */ GCB_SpacingMark, GCB_Extend, GCB_Other, + GCB_Extend, + GCB_SpacingMark, + GCB_Other, + GCB_SpacingMark, + GCB_Other, + GCB_Extend, + GCB_SpacingMark, + GCB_Extend, + GCB_Prepend, + GCB_SpacingMark, + GCB_Prepend, + GCB_SpacingMark, + GCB_Extend, + GCB_Other, GCB_SpacingMark, GCB_Extend, GCB_Other, @@ -22030,6 +22170,10 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for ASCII/Latin1 */ GCB_Other, GCB_Extend, GCB_Other, + GCB_SpacingMark, + GCB_Other, + GCB_Extend, + GCB_Other, GCB_Control, GCB_Other, GCB_Extend, @@ -22077,60 +22221,62 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for ASCII/Latin1 */ GCB_Other, GCB_Extend, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Regional_Indicator, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Extend, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, + GCB_Other, + GCB_ExtPict_XX, GCB_Other, GCB_Control, GCB_Extend, @@ -22152,7 +22298,7 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 1047 */ - 1778, /* Number of elements */ + 1806, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -22314,7 +22460,7 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 1047 */ 0xB4B, 0xB4D, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB62, 0xB64, @@ -22387,6 +22533,7 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 1047 */ 0xD58, 0xD62, 0xD64, + 0xD81, 0xD82, 0xD84, 0xDCA, @@ -22523,7 +22670,7 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 1047 */ 0x1A7F, 0x1A80, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B04, 0x1B05, @@ -22711,6 +22858,8 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 1047 */ 0xA825, 0xA827, 0xA828, + 0xA82C, + 0xA82D, 0xA880, 0xA882, 0xA8B4, @@ -23613,6 +23762,8 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 1047 */ 0x10AE7, 0x10D24, 0x10D28, + 0x10EAB, + 0x10EAD, 0x10F46, 0x10F51, 0x11000, @@ -23654,6 +23805,9 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 1047 */ 0x111C4, 0x111C9, 0x111CD, + 0x111CE, + 0x111CF, + 0x111D0, 0x1122C, 0x1122F, 0x11232, @@ -23747,6 +23901,20 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 1047 */ 0x11838, 0x11839, 0x1183B, + 0x11930, + 0x11931, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x1193D, + 0x1193E, + 0x1193F, + 0x11940, + 0x11941, + 0x11942, + 0x11943, + 0x11944, 0x119D1, 0x119D4, 0x119D8, @@ -23824,6 +23992,10 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 1047 */ 0x16F88, 0x16F8F, 0x16F93, + 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x1BC9D, 0x1BC9F, 0x1BCA0, @@ -23927,6 +24099,8 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 1047 */ 0x1F93C, 0x1F946, 0x1F947, + 0x1FB00, + 0x1FC00, 0x1FFFE, 0xE0000, 0xE0020, @@ -23949,21 +24123,21 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 1047 */ typedef enum { GCB_Other = 0, - GCB_CR = 1, - GCB_Control = 2, - GCB_Extend = 3, - GCB_L = 4, - GCB_LF = 5, - GCB_LV = 6, - GCB_LVT = 7, - GCB_Prepend = 8, - GCB_Regional_Indicator = 9, - GCB_SpacingMark = 10, - GCB_T = 11, - GCB_V = 12, - GCB_XPG_XX = 13, - GCB_ZWJ = 14, - GCB_EDGE = 15, + GCB_Control = 1, + GCB_CR = 2, + GCB_EDGE = 3, + GCB_ExtPict_XX = 4, + GCB_Extend = 5, + GCB_L = 6, + GCB_LF = 7, + GCB_LV = 8, + GCB_LVT = 9, + GCB_Prepend = 10, + GCB_Regional_Indicator = 11, + GCB_SpacingMark = 12, + GCB_T = 13, + GCB_V = 14, + GCB_ZWJ = 15, GCB_E_Base = 16, GCB_E_Base_GAZ = 16, GCB_E_Modifier = 16, @@ -23977,9 +24151,9 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 1047 */ GCB_LF, GCB_Control, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, GCB_Control, GCB_Other, @@ -24202,6 +24376,7 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 1047 */ GCB_Other, GCB_Extend, GCB_Other, + GCB_Extend, GCB_SpacingMark, GCB_Other, GCB_Extend, @@ -24399,97 +24574,97 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 1047 */ GCB_Other, GCB_Control, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, GCB_Control, GCB_Other, GCB_Extend, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, GCB_Extend, GCB_Other, @@ -24498,15 +24673,15 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 1047 */ GCB_Extend, GCB_Other, GCB_Extend, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, GCB_Extend, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, GCB_Extend, GCB_Other, @@ -24526,6 +24701,8 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 1047 */ GCB_Extend, GCB_SpacingMark, GCB_Other, + GCB_Extend, + GCB_Other, GCB_SpacingMark, GCB_Other, GCB_SpacingMark, @@ -25430,6 +25607,8 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 1047 */ GCB_Other, GCB_Extend, GCB_Other, + GCB_Extend, + GCB_Other, GCB_SpacingMark, GCB_Extend, GCB_SpacingMark, @@ -25471,6 +25650,9 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 1047 */ GCB_Other, GCB_SpacingMark, GCB_Extend, + GCB_Other, + GCB_SpacingMark, + GCB_Extend, GCB_SpacingMark, GCB_Extend, GCB_SpacingMark, @@ -25562,6 +25744,20 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 1047 */ GCB_SpacingMark, GCB_Extend, GCB_Other, + GCB_Extend, + GCB_SpacingMark, + GCB_Other, + GCB_SpacingMark, + GCB_Other, + GCB_Extend, + GCB_SpacingMark, + GCB_Extend, + GCB_Prepend, + GCB_SpacingMark, + GCB_Prepend, + GCB_SpacingMark, + GCB_Extend, + GCB_Other, GCB_SpacingMark, GCB_Extend, GCB_Other, @@ -25641,6 +25837,10 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 1047 */ GCB_Other, GCB_Extend, GCB_Other, + GCB_SpacingMark, + GCB_Other, + GCB_Extend, + GCB_Other, GCB_Control, GCB_Other, GCB_Extend, @@ -25688,60 +25888,62 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 1047 */ GCB_Other, GCB_Extend, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Regional_Indicator, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Extend, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, + GCB_Other, + GCB_ExtPict_XX, GCB_Other, GCB_Control, GCB_Extend, @@ -25763,7 +25965,7 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 037 */ - 1778, /* Number of elements */ + 1806, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -25925,7 +26127,7 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 037 */ 0xB4B, 0xB4D, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB62, 0xB64, @@ -25998,6 +26200,7 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 037 */ 0xD58, 0xD62, 0xD64, + 0xD81, 0xD82, 0xD84, 0xDCA, @@ -26134,7 +26337,7 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 037 */ 0x1A7F, 0x1A80, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B04, 0x1B05, @@ -26322,6 +26525,8 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 037 */ 0xA825, 0xA827, 0xA828, + 0xA82C, + 0xA82D, 0xA880, 0xA882, 0xA8B4, @@ -27224,6 +27429,8 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 037 */ 0x10AE7, 0x10D24, 0x10D28, + 0x10EAB, + 0x10EAD, 0x10F46, 0x10F51, 0x11000, @@ -27265,6 +27472,9 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 037 */ 0x111C4, 0x111C9, 0x111CD, + 0x111CE, + 0x111CF, + 0x111D0, 0x1122C, 0x1122F, 0x11232, @@ -27358,6 +27568,20 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 037 */ 0x11838, 0x11839, 0x1183B, + 0x11930, + 0x11931, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x1193D, + 0x1193E, + 0x1193F, + 0x11940, + 0x11941, + 0x11942, + 0x11943, + 0x11944, 0x119D1, 0x119D4, 0x119D8, @@ -27435,6 +27659,10 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 037 */ 0x16F88, 0x16F8F, 0x16F93, + 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x1BC9D, 0x1BC9F, 0x1BCA0, @@ -27538,6 +27766,8 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 037 */ 0x1F93C, 0x1F946, 0x1F947, + 0x1FB00, + 0x1FC00, 0x1FFFE, 0xE0000, 0xE0020, @@ -27560,21 +27790,21 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 037 */ typedef enum { GCB_Other = 0, - GCB_CR = 1, - GCB_Control = 2, - GCB_Extend = 3, - GCB_L = 4, - GCB_LF = 5, - GCB_LV = 6, - GCB_LVT = 7, - GCB_Prepend = 8, - GCB_Regional_Indicator = 9, - GCB_SpacingMark = 10, - GCB_T = 11, - GCB_V = 12, - GCB_XPG_XX = 13, - GCB_ZWJ = 14, - GCB_EDGE = 15, + GCB_Control = 1, + GCB_CR = 2, + GCB_EDGE = 3, + GCB_ExtPict_XX = 4, + GCB_Extend = 5, + GCB_L = 6, + GCB_LF = 7, + GCB_LV = 8, + GCB_LVT = 9, + GCB_Prepend = 10, + GCB_Regional_Indicator = 11, + GCB_SpacingMark = 12, + GCB_T = 13, + GCB_V = 14, + GCB_ZWJ = 15, GCB_E_Base = 16, GCB_E_Base_GAZ = 16, GCB_E_Modifier = 16, @@ -27588,9 +27818,9 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 037 */ GCB_LF, GCB_Control, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, GCB_Control, GCB_Other, @@ -27813,6 +28043,7 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 037 */ GCB_Other, GCB_Extend, GCB_Other, + GCB_Extend, GCB_SpacingMark, GCB_Other, GCB_Extend, @@ -28010,97 +28241,97 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 037 */ GCB_Other, GCB_Control, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, GCB_Control, GCB_Other, GCB_Extend, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, GCB_Extend, GCB_Other, @@ -28109,15 +28340,15 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 037 */ GCB_Extend, GCB_Other, GCB_Extend, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, GCB_Extend, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, GCB_Extend, GCB_Other, @@ -28137,6 +28368,8 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 037 */ GCB_Extend, GCB_SpacingMark, GCB_Other, + GCB_Extend, + GCB_Other, GCB_SpacingMark, GCB_Other, GCB_SpacingMark, @@ -29041,6 +29274,8 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 037 */ GCB_Other, GCB_Extend, GCB_Other, + GCB_Extend, + GCB_Other, GCB_SpacingMark, GCB_Extend, GCB_SpacingMark, @@ -29082,6 +29317,9 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 037 */ GCB_Other, GCB_SpacingMark, GCB_Extend, + GCB_Other, + GCB_SpacingMark, + GCB_Extend, GCB_SpacingMark, GCB_Extend, GCB_SpacingMark, @@ -29173,6 +29411,20 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 037 */ GCB_SpacingMark, GCB_Extend, GCB_Other, + GCB_Extend, + GCB_SpacingMark, + GCB_Other, + GCB_SpacingMark, + GCB_Other, + GCB_Extend, + GCB_SpacingMark, + GCB_Extend, + GCB_Prepend, + GCB_SpacingMark, + GCB_Prepend, + GCB_SpacingMark, + GCB_Extend, + GCB_Other, GCB_SpacingMark, GCB_Extend, GCB_Other, @@ -29252,6 +29504,10 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 037 */ GCB_Other, GCB_Extend, GCB_Other, + GCB_SpacingMark, + GCB_Other, + GCB_Extend, + GCB_Other, GCB_Control, GCB_Other, GCB_Extend, @@ -29299,60 +29555,62 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 037 */ GCB_Other, GCB_Extend, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Regional_Indicator, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Extend, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, GCB_Other, - GCB_XPG_XX, + GCB_ExtPict_XX, + GCB_Other, + GCB_ExtPict_XX, GCB_Other, GCB_Control, GCB_Extend, @@ -29371,7 +29629,7 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV _Perl_IVCF_invlist[] = { /* for ASCII/Latin1 */ - 1309, /* Number of elements */ + 1316, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -30666,6 +30924,12 @@ static const UV _Perl_IVCF_invlist[] = { /* for ASCII/Latin1 */ 0xA7C0, 0xA7C3, 0xA7C4, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7CB, + 0xA7F6, + 0xA7F7, 0xAB53, 0xAB54, 0xFB05, @@ -30683,7 +30947,8 @@ static const UV _Perl_IVCF_invlist[] = { /* for ASCII/Latin1 */ 0x118E0, 0x16E60, 0x16E80, - 0x1E922 + 0x1E922, + 0x1E944 }; # endif /* ASCII/Latin1 */ @@ -30731,145 +30996,145 @@ typedef enum { #define HAS_IVCF_AUX_TABLES -static const unsigned int IVCF_AUX_TABLE_1[] = { +static const U32 IVCF_AUX_TABLE_1[] = { 0x4B, 0x212A }; -static const unsigned int IVCF_AUX_TABLE_2[] = { +static const U32 IVCF_AUX_TABLE_2[] = { 0x53, 0x17F }; -static const unsigned int IVCF_AUX_TABLE_3[] = { +static const U32 IVCF_AUX_TABLE_3[] = { 0xC5, 0x212B }; -static const unsigned int IVCF_AUX_TABLE_4[] = { +static const U32 IVCF_AUX_TABLE_4[] = { 0x1C4, 0x1C5 }; -static const unsigned int IVCF_AUX_TABLE_5[] = { +static const U32 IVCF_AUX_TABLE_5[] = { 0x1C7, 0x1C8 }; -static const unsigned int IVCF_AUX_TABLE_6[] = { +static const U32 IVCF_AUX_TABLE_6[] = { 0x1CA, 0x1CB }; -static const unsigned int IVCF_AUX_TABLE_7[] = { +static const U32 IVCF_AUX_TABLE_7[] = { 0x1F1, 0x1F2 }; -static const unsigned int IVCF_AUX_TABLE_8[] = { +static const U32 IVCF_AUX_TABLE_8[] = { 0x392, 0x3D0 }; -static const unsigned int IVCF_AUX_TABLE_9[] = { +static const U32 IVCF_AUX_TABLE_9[] = { 0x395, 0x3F5 }; -static const unsigned int IVCF_AUX_TABLE_10[] = { +static const U32 IVCF_AUX_TABLE_10[] = { 0x398, 0x3D1, 0x3F4 }; -static const unsigned int IVCF_AUX_TABLE_11[] = { +static const U32 IVCF_AUX_TABLE_11[] = { 0x345, 0x399, 0x1FBE }; -static const unsigned int IVCF_AUX_TABLE_12[] = { +static const U32 IVCF_AUX_TABLE_12[] = { 0x39A, 0x3F0 }; -static const unsigned int IVCF_AUX_TABLE_13[] = { +static const U32 IVCF_AUX_TABLE_13[] = { 0xB5, 0x39C }; -static const unsigned int IVCF_AUX_TABLE_14[] = { +static const U32 IVCF_AUX_TABLE_14[] = { 0x3A0, 0x3D6 }; -static const unsigned int IVCF_AUX_TABLE_15[] = { +static const U32 IVCF_AUX_TABLE_15[] = { 0x3A1, 0x3F1 }; -static const unsigned int IVCF_AUX_TABLE_16[] = { +static const U32 IVCF_AUX_TABLE_16[] = { 0x3A3, 0x3C2 }; -static const unsigned int IVCF_AUX_TABLE_17[] = { +static const U32 IVCF_AUX_TABLE_17[] = { 0x3A6, 0x3D5 }; -static const unsigned int IVCF_AUX_TABLE_18[] = { +static const U32 IVCF_AUX_TABLE_18[] = { 0x3A9, 0x2126 }; -static const unsigned int IVCF_AUX_TABLE_19[] = { +static const U32 IVCF_AUX_TABLE_19[] = { 0x412, 0x1C80 }; -static const unsigned int IVCF_AUX_TABLE_20[] = { +static const U32 IVCF_AUX_TABLE_20[] = { 0x414, 0x1C81 }; -static const unsigned int IVCF_AUX_TABLE_21[] = { +static const U32 IVCF_AUX_TABLE_21[] = { 0x41E, 0x1C82 }; -static const unsigned int IVCF_AUX_TABLE_22[] = { +static const U32 IVCF_AUX_TABLE_22[] = { 0x421, 0x1C83 }; -static const unsigned int IVCF_AUX_TABLE_23[] = { +static const U32 IVCF_AUX_TABLE_23[] = { 0x422, 0x1C84, 0x1C85 }; -static const unsigned int IVCF_AUX_TABLE_24[] = { +static const U32 IVCF_AUX_TABLE_24[] = { 0x42A, 0x1C86 }; -static const unsigned int IVCF_AUX_TABLE_25[] = { +static const U32 IVCF_AUX_TABLE_25[] = { 0x462, 0x1C87 }; -static const unsigned int IVCF_AUX_TABLE_26[] = { +static const U32 IVCF_AUX_TABLE_26[] = { 0x1E60, 0x1E9B }; -static const unsigned int IVCF_AUX_TABLE_27[] = { +static const U32 IVCF_AUX_TABLE_27[] = { 0x1C88, 0xA64A }; -static const unsigned int * const IVCF_AUX_TABLE_ptrs[] = { +static const U32 * const IVCF_AUX_TABLE_ptrs[] = { NULL, /* Placeholder */ IVCF_AUX_TABLE_1, IVCF_AUX_TABLE_2, @@ -30934,7 +31199,7 @@ static const U8 IVCF_AUX_TABLE_lengths[] = { 2 /* IVCF_AUX_TABLE_27 */ }; -static const int _Perl_IVCF_invmap[] = { /* for ASCII/Latin1 */ +static const I32 _Perl_IVCF_invmap[] = { /* for ASCII/Latin1 */ 0, 0x41, IVCF_use_AUX_TABLE_1, @@ -32226,6 +32491,12 @@ static const int _Perl_IVCF_invmap[] = { /* for ASCII/Latin1 */ 0, 0xA7C2, 0, + 0xA7C7, + 0, + 0xA7C9, + 0, + 0xA7F5, + 0, 0xA7B3, 0, 0xFB06, @@ -32243,7 +32514,8 @@ static const int _Perl_IVCF_invmap[] = { /* for ASCII/Latin1 */ 0, 0x16E40, 0, - 0x1E900 + 0x1E900, + 0 }; # endif /* ASCII/Latin1 */ @@ -32258,7 +32530,7 @@ static const int _Perl_IVCF_invmap[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV _Perl_IVCF_invlist[] = { /* for EBCDIC 1047 */ - 1323, /* Number of elements */ + 1331, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -32276,6 +32548,7 @@ static const UV _Perl_IVCF_invlist[] = { /* for EBCDIC 1047 */ 0x8A, 0x8C, 0x8D, + 0x8E, 0x8F, 0x91, 0x92, @@ -33567,6 +33840,12 @@ static const UV _Perl_IVCF_invlist[] = { /* for EBCDIC 1047 */ 0xA7C0, 0xA7C3, 0xA7C4, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7CB, + 0xA7F6, + 0xA7F7, 0xAB53, 0xAB54, 0xFB05, @@ -33584,7 +33863,8 @@ static const UV _Perl_IVCF_invlist[] = { /* for EBCDIC 1047 */ 0x118E0, 0x16E60, 0x16E80, - 0x1E922 + 0x1E922, + 0x1E944 }; # endif /* EBCDIC 1047 */ @@ -33635,145 +33915,145 @@ typedef enum { #define HAS_IVCF_AUX_TABLES -static const unsigned int IVCF_AUX_TABLE_1[] = { +static const U32 IVCF_AUX_TABLE_1[] = { 0x67, 0x212B }; -static const unsigned int IVCF_AUX_TABLE_2[] = { +static const U32 IVCF_AUX_TABLE_2[] = { 0xD2, 0x212A }; -static const unsigned int IVCF_AUX_TABLE_3[] = { +static const U32 IVCF_AUX_TABLE_3[] = { 0xE2, 0x17F }; -static const unsigned int IVCF_AUX_TABLE_4[] = { +static const U32 IVCF_AUX_TABLE_4[] = { 0x1C4, 0x1C5 }; -static const unsigned int IVCF_AUX_TABLE_5[] = { +static const U32 IVCF_AUX_TABLE_5[] = { 0x1C7, 0x1C8 }; -static const unsigned int IVCF_AUX_TABLE_6[] = { +static const U32 IVCF_AUX_TABLE_6[] = { 0x1CA, 0x1CB }; -static const unsigned int IVCF_AUX_TABLE_7[] = { +static const U32 IVCF_AUX_TABLE_7[] = { 0x1F1, 0x1F2 }; -static const unsigned int IVCF_AUX_TABLE_8[] = { +static const U32 IVCF_AUX_TABLE_8[] = { 0x392, 0x3D0 }; -static const unsigned int IVCF_AUX_TABLE_9[] = { +static const U32 IVCF_AUX_TABLE_9[] = { 0x395, 0x3F5 }; -static const unsigned int IVCF_AUX_TABLE_10[] = { +static const U32 IVCF_AUX_TABLE_10[] = { 0x398, 0x3D1, 0x3F4 }; -static const unsigned int IVCF_AUX_TABLE_11[] = { +static const U32 IVCF_AUX_TABLE_11[] = { 0x345, 0x399, 0x1FBE }; -static const unsigned int IVCF_AUX_TABLE_12[] = { +static const U32 IVCF_AUX_TABLE_12[] = { 0x39A, 0x3F0 }; -static const unsigned int IVCF_AUX_TABLE_13[] = { - 0xB5, +static const U32 IVCF_AUX_TABLE_13[] = { + 0xA0, 0x39C }; -static const unsigned int IVCF_AUX_TABLE_14[] = { +static const U32 IVCF_AUX_TABLE_14[] = { 0x3A0, 0x3D6 }; -static const unsigned int IVCF_AUX_TABLE_15[] = { +static const U32 IVCF_AUX_TABLE_15[] = { 0x3A1, 0x3F1 }; -static const unsigned int IVCF_AUX_TABLE_16[] = { +static const U32 IVCF_AUX_TABLE_16[] = { 0x3A3, 0x3C2 }; -static const unsigned int IVCF_AUX_TABLE_17[] = { +static const U32 IVCF_AUX_TABLE_17[] = { 0x3A6, 0x3D5 }; -static const unsigned int IVCF_AUX_TABLE_18[] = { +static const U32 IVCF_AUX_TABLE_18[] = { 0x3A9, 0x2126 }; -static const unsigned int IVCF_AUX_TABLE_19[] = { +static const U32 IVCF_AUX_TABLE_19[] = { 0x412, 0x1C80 }; -static const unsigned int IVCF_AUX_TABLE_20[] = { +static const U32 IVCF_AUX_TABLE_20[] = { 0x414, 0x1C81 }; -static const unsigned int IVCF_AUX_TABLE_21[] = { +static const U32 IVCF_AUX_TABLE_21[] = { 0x41E, 0x1C82 }; -static const unsigned int IVCF_AUX_TABLE_22[] = { +static const U32 IVCF_AUX_TABLE_22[] = { 0x421, 0x1C83 }; -static const unsigned int IVCF_AUX_TABLE_23[] = { +static const U32 IVCF_AUX_TABLE_23[] = { 0x422, 0x1C84, 0x1C85 }; -static const unsigned int IVCF_AUX_TABLE_24[] = { +static const U32 IVCF_AUX_TABLE_24[] = { 0x42A, 0x1C86 }; -static const unsigned int IVCF_AUX_TABLE_25[] = { +static const U32 IVCF_AUX_TABLE_25[] = { 0x462, 0x1C87 }; -static const unsigned int IVCF_AUX_TABLE_26[] = { +static const U32 IVCF_AUX_TABLE_26[] = { 0x1E60, 0x1E9B }; -static const unsigned int IVCF_AUX_TABLE_27[] = { +static const U32 IVCF_AUX_TABLE_27[] = { 0x1C88, 0xA64A }; -static const unsigned int * const IVCF_AUX_TABLE_ptrs[] = { +static const U32 * const IVCF_AUX_TABLE_ptrs[] = { NULL, /* Placeholder */ IVCF_AUX_TABLE_1, IVCF_AUX_TABLE_2, @@ -33838,34 +34118,35 @@ static const U8 IVCF_AUX_TABLE_lengths[] = { 2 /* IVCF_AUX_TABLE_27 */ }; -static const int _Perl_IVCF_invmap[] = { /* for EBCDIC 1047 */ +static const I32 _Perl_IVCF_invmap[] = { /* for EBCDIC 1047 */ 0, - 0xC0, + 0x62, IVCF_use_AUX_TABLE_1, - 0xC6, + 0x68, 0, - 0xC6, + 0x71, 0x1E9E, 0, - 0xD8, + 0x80, 0, - 0x41, + 0xC1, 0, - 0xC6, - 0xD8, + 0xAC, + 0xBA, + 0xAE, 0, - 0x41, + 0xD1, IVCF_use_AUX_TABLE_2, - 0x4C, + 0xD3, 0, - 0xC6, + 0x9E, 0, IVCF_use_AUX_TABLE_3, - 0x54, + 0xE3, 0, - 0xC6, + 0xEB, 0, - 0xD8, + 0xFB, 0x178, 0, 0x100, @@ -34648,7 +34929,7 @@ static const int _Perl_IVCF_invmap[] = { /* for EBCDIC 1047 */ 0, 0x1E94, 0, - 0xDF, + 0x59, 0, 0x1EA0, 0, @@ -35144,6 +35425,12 @@ static const int _Perl_IVCF_invmap[] = { /* for EBCDIC 1047 */ 0, 0xA7C2, 0, + 0xA7C7, + 0, + 0xA7C9, + 0, + 0xA7F5, + 0, 0xA7B3, 0, 0xFB06, @@ -35161,7 +35448,8 @@ static const int _Perl_IVCF_invmap[] = { /* for EBCDIC 1047 */ 0, 0x16E40, 0, - 0x1E900 + 0x1E900, + 0 }; # endif /* EBCDIC 1047 */ @@ -35176,7 +35464,7 @@ static const int _Perl_IVCF_invmap[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV _Perl_IVCF_invlist[] = { /* for EBCDIC 037 */ - 1323, /* Number of elements */ + 1329, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -35193,7 +35481,6 @@ static const UV _Perl_IVCF_invlist[] = { /* for EBCDIC 037 */ 0x81, 0x8A, 0x8C, - 0x8D, 0x8F, 0x91, 0x92, @@ -36485,6 +36772,12 @@ static const UV _Perl_IVCF_invlist[] = { /* for EBCDIC 037 */ 0xA7C0, 0xA7C3, 0xA7C4, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7CB, + 0xA7F6, + 0xA7F7, 0xAB53, 0xAB54, 0xFB05, @@ -36502,7 +36795,8 @@ static const UV _Perl_IVCF_invlist[] = { /* for EBCDIC 037 */ 0x118E0, 0x16E60, 0x16E80, - 0x1E922 + 0x1E922, + 0x1E944 }; # endif /* EBCDIC 037 */ @@ -36553,145 +36847,145 @@ typedef enum { #define HAS_IVCF_AUX_TABLES -static const unsigned int IVCF_AUX_TABLE_1[] = { +static const U32 IVCF_AUX_TABLE_1[] = { 0x67, 0x212B }; -static const unsigned int IVCF_AUX_TABLE_2[] = { +static const U32 IVCF_AUX_TABLE_2[] = { 0xD2, 0x212A }; -static const unsigned int IVCF_AUX_TABLE_3[] = { +static const U32 IVCF_AUX_TABLE_3[] = { 0xE2, 0x17F }; -static const unsigned int IVCF_AUX_TABLE_4[] = { +static const U32 IVCF_AUX_TABLE_4[] = { 0x1C4, 0x1C5 }; -static const unsigned int IVCF_AUX_TABLE_5[] = { +static const U32 IVCF_AUX_TABLE_5[] = { 0x1C7, 0x1C8 }; -static const unsigned int IVCF_AUX_TABLE_6[] = { +static const U32 IVCF_AUX_TABLE_6[] = { 0x1CA, 0x1CB }; -static const unsigned int IVCF_AUX_TABLE_7[] = { +static const U32 IVCF_AUX_TABLE_7[] = { 0x1F1, 0x1F2 }; -static const unsigned int IVCF_AUX_TABLE_8[] = { +static const U32 IVCF_AUX_TABLE_8[] = { 0x392, 0x3D0 }; -static const unsigned int IVCF_AUX_TABLE_9[] = { +static const U32 IVCF_AUX_TABLE_9[] = { 0x395, 0x3F5 }; -static const unsigned int IVCF_AUX_TABLE_10[] = { +static const U32 IVCF_AUX_TABLE_10[] = { 0x398, 0x3D1, 0x3F4 }; -static const unsigned int IVCF_AUX_TABLE_11[] = { +static const U32 IVCF_AUX_TABLE_11[] = { 0x345, 0x399, 0x1FBE }; -static const unsigned int IVCF_AUX_TABLE_12[] = { +static const U32 IVCF_AUX_TABLE_12[] = { 0x39A, 0x3F0 }; -static const unsigned int IVCF_AUX_TABLE_13[] = { - 0xB5, +static const U32 IVCF_AUX_TABLE_13[] = { + 0xA0, 0x39C }; -static const unsigned int IVCF_AUX_TABLE_14[] = { +static const U32 IVCF_AUX_TABLE_14[] = { 0x3A0, 0x3D6 }; -static const unsigned int IVCF_AUX_TABLE_15[] = { +static const U32 IVCF_AUX_TABLE_15[] = { 0x3A1, 0x3F1 }; -static const unsigned int IVCF_AUX_TABLE_16[] = { +static const U32 IVCF_AUX_TABLE_16[] = { 0x3A3, 0x3C2 }; -static const unsigned int IVCF_AUX_TABLE_17[] = { +static const U32 IVCF_AUX_TABLE_17[] = { 0x3A6, 0x3D5 }; -static const unsigned int IVCF_AUX_TABLE_18[] = { +static const U32 IVCF_AUX_TABLE_18[] = { 0x3A9, 0x2126 }; -static const unsigned int IVCF_AUX_TABLE_19[] = { +static const U32 IVCF_AUX_TABLE_19[] = { 0x412, 0x1C80 }; -static const unsigned int IVCF_AUX_TABLE_20[] = { +static const U32 IVCF_AUX_TABLE_20[] = { 0x414, 0x1C81 }; -static const unsigned int IVCF_AUX_TABLE_21[] = { +static const U32 IVCF_AUX_TABLE_21[] = { 0x41E, 0x1C82 }; -static const unsigned int IVCF_AUX_TABLE_22[] = { +static const U32 IVCF_AUX_TABLE_22[] = { 0x421, 0x1C83 }; -static const unsigned int IVCF_AUX_TABLE_23[] = { +static const U32 IVCF_AUX_TABLE_23[] = { 0x422, 0x1C84, 0x1C85 }; -static const unsigned int IVCF_AUX_TABLE_24[] = { +static const U32 IVCF_AUX_TABLE_24[] = { 0x42A, 0x1C86 }; -static const unsigned int IVCF_AUX_TABLE_25[] = { +static const U32 IVCF_AUX_TABLE_25[] = { 0x462, 0x1C87 }; -static const unsigned int IVCF_AUX_TABLE_26[] = { +static const U32 IVCF_AUX_TABLE_26[] = { 0x1E60, 0x1E9B }; -static const unsigned int IVCF_AUX_TABLE_27[] = { +static const U32 IVCF_AUX_TABLE_27[] = { 0x1C88, 0xA64A }; -static const unsigned int * const IVCF_AUX_TABLE_ptrs[] = { +static const U32 * const IVCF_AUX_TABLE_ptrs[] = { NULL, /* Placeholder */ IVCF_AUX_TABLE_1, IVCF_AUX_TABLE_2, @@ -36756,34 +37050,33 @@ static const U8 IVCF_AUX_TABLE_lengths[] = { 2 /* IVCF_AUX_TABLE_27 */ }; -static const int _Perl_IVCF_invmap[] = { /* for EBCDIC 037 */ +static const I32 _Perl_IVCF_invmap[] = { /* for EBCDIC 037 */ 0, - 0xC0, + 0x62, IVCF_use_AUX_TABLE_1, - 0xC6, + 0x68, 0, - 0xC6, + 0x71, 0x1E9E, 0, - 0xD8, + 0x80, 0, - 0x41, + 0xC1, 0, - 0xC6, - 0xD8, + 0xAC, 0, - 0x41, + 0xD1, IVCF_use_AUX_TABLE_2, - 0x4C, + 0xD3, 0, - 0xC6, + 0x9E, 0, IVCF_use_AUX_TABLE_3, - 0x54, + 0xE3, 0, - 0xC6, + 0xEB, 0, - 0xD8, + 0xFB, 0x178, 0, 0x100, @@ -37566,7 +37859,7 @@ static const int _Perl_IVCF_invmap[] = { /* for EBCDIC 037 */ 0, 0x1E94, 0, - 0xDF, + 0x59, 0, 0x1EA0, 0, @@ -38062,6 +38355,12 @@ static const int _Perl_IVCF_invmap[] = { /* for EBCDIC 037 */ 0, 0xA7C2, 0, + 0xA7C7, + 0, + 0xA7C9, + 0, + 0xA7F5, + 0, 0xA7B3, 0, 0xFB06, @@ -38079,7 +38378,8 @@ static const int _Perl_IVCF_invmap[] = { /* for EBCDIC 037 */ 0, 0x16E40, 0, - 0x1E900 + 0x1E900, + 0 }; # endif /* EBCDIC 037 */ @@ -38091,7 +38391,7 @@ static const int _Perl_IVCF_invmap[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */ - 2388, /* Number of elements */ + 2416, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -38323,7 +38623,7 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB62, 0xB64, @@ -38394,7 +38694,7 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */ 0xD70, 0xD79, 0xD7A, - 0xD82, + 0xD81, 0xD84, 0xDCA, 0xDCB, @@ -38571,7 +38871,7 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */ 0x1A90, 0x1A9A, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B05, 0x1B34, @@ -38953,8 +39253,6 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */ 0x3131, 0x318F, 0x3190, - 0x31BB, - 0x31C0, 0x31E4, 0x31F0, 0x3200, @@ -38995,6 +39293,8 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */ 0xA80C, 0xA823, 0xA828, + 0xA82C, + 0xA82D, 0xA838, 0xA839, 0xA874, @@ -40037,6 +40337,9 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */ 0x10D28, 0x10D30, 0x10D3A, + 0x10EAB, + 0x10EAD, + 0x10EAE, 0x10F46, 0x10F51, 0x11000, @@ -40076,6 +40379,7 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */ 0x111C8, 0x111C9, 0x111CD, + 0x111CE, 0x111D0, 0x111DA, 0x111DB, @@ -40119,7 +40423,6 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */ 0x1144F, 0x11450, 0x1145A, - 0x1145B, 0x1145C, 0x1145E, 0x1145F, @@ -40159,6 +40462,19 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */ 0x1183B, 0x118E0, 0x118EA, + 0x11930, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x1193F, + 0x11940, + 0x11941, + 0x11942, + 0x11944, + 0x11947, + 0x11950, + 0x1195A, 0x119D1, 0x119D8, 0x119DA, @@ -40274,10 +40590,15 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */ 0x16F93, 0x16FE0, 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18B00, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -40450,6 +40771,7 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */ 0x1F8AE, 0x1F900, 0x1F90C, + 0x1F90D, 0x1F90F, 0x1F910, 0x1F918, @@ -40460,6 +40782,8 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */ 0x1F93A, 0x1F93C, 0x1F93F, + 0x1F977, + 0x1F978, 0x1F9B5, 0x1F9B7, 0x1F9B8, @@ -40472,6 +40796,10 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */ 0x1F9DE, 0x1FA00, 0x1FA54, + 0x1FB00, + 0x1FBF0, + 0x1FBFA, + 0x1FC00, 0x1FFFE, 0x20000, 0x2FFFE, @@ -40495,44 +40823,46 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */ typedef enum { LB_Alphabetic = 0, - LB_Break_After = 1, - LB_Break_Before = 2, - LB_Break_Both = 3, - LB_Break_Symbols = 4, - LB_Carriage_Return = 5, - LB_Close_Parenthesis = 6, - LB_Close_Punctuation = 7, - LB_Combining_Mark = 8, - LB_Contingent_Break = 9, - LB_E_Base = 10, - LB_E_Modifier = 11, - LB_Exclamation = 12, - LB_Glue = 13, - LB_H2 = 14, - LB_H3 = 15, - LB_Hebrew_Letter = 16, - LB_Hyphen = 17, - LB_Ideographic = 18, - LB_Infix_Numeric = 19, - LB_Inseparable = 20, - LB_JL = 21, - LB_JT = 22, - LB_JV = 23, - LB_Line_Feed = 24, - LB_Mandatory_Break = 25, - LB_Next_Line = 26, - LB_Nonstarter = 27, - LB_Numeric = 28, - LB_Open_Punctuation = 29, - LB_Postfix_Numeric = 30, - LB_Prefix_Numeric = 31, - LB_Quotation = 32, - LB_Regional_Indicator = 33, - LB_Space = 34, - LB_Word_Joiner = 35, - LB_ZWJ = 36, - LB_ZWSpace = 37, - LB_EDGE = 38 + LB_Break_Both = 1, + LB_Break_After = 2, + LB_Break_Before = 3, + LB_Mandatory_Break = 4, + LB_Contingent_Break = 5, + LB_Close_Punctuation = 6, + LB_Combining_Mark = 7, + LB_Close_Parenthesis = 8, + LB_Carriage_Return = 9, + LB_East_Asian_OP = 10, + LB_E_Base = 11, + LB_EDGE = 12, + LB_E_Modifier = 13, + LB_Exclamation = 14, + LB_Glue = 15, + LB_H2 = 16, + LB_H3 = 17, + LB_Hebrew_Letter = 18, + LB_Hyphen = 19, + LB_Ideographic = 20, + LB_Inseparable = 21, + LB_Infix_Numeric = 22, + LB_JL = 23, + LB_JT = 24, + LB_JV = 25, + LB_Line_Feed = 26, + LB_Next_Line = 27, + LB_Nonstarter = 28, + LB_Numeric = 29, + LB_Open_Punctuation = 30, + LB_Postfix_Numeric = 31, + LB_Prefix_Numeric = 32, + LB_Quotation = 33, + LB_Regional_Indicator = 34, + LB_Space = 35, + LB_Break_Symbols = 36, + LB_Word_Joiner = 37, + LB_ZWSpace = 38, + LB_ZWJ = 39, + LB_East_Asian_CP = 40 } LB_enum; static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */ @@ -41134,7 +41464,7 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */ LB_Alphabetic, LB_Ideographic, LB_Alphabetic, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, LB_Alphabetic, LB_Ideographic, @@ -41309,27 +41639,27 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */ LB_Ideographic, LB_Nonstarter, LB_Ideographic, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, LB_Ideographic, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, LB_Nonstarter, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, LB_Ideographic, LB_Combining_Mark, @@ -41395,8 +41725,6 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */ LB_Alphabetic, LB_Ideographic, LB_Alphabetic, - LB_Ideographic, - LB_Alphabetic, LB_Nonstarter, LB_Ideographic, LB_Alphabetic, @@ -41436,6 +41764,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */ LB_Alphabetic, LB_Combining_Mark, LB_Alphabetic, + LB_Combining_Mark, + LB_Alphabetic, LB_Postfix_Numeric, LB_Alphabetic, LB_Break_Before, @@ -42338,30 +42668,30 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */ LB_Close_Punctuation, LB_Infix_Numeric, LB_Exclamation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, LB_Inseparable, LB_Alphabetic, LB_Combining_Mark, LB_Ideographic, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, LB_Ideographic, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, LB_Ideographic, LB_Close_Punctuation, @@ -42371,11 +42701,11 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */ LB_Nonstarter, LB_Exclamation, LB_Ideographic, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, LB_Ideographic, LB_Alphabetic, @@ -42391,7 +42721,7 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */ LB_Prefix_Numeric, LB_Postfix_Numeric, LB_Ideographic, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, LB_Ideographic, LB_Close_Punctuation, @@ -42402,17 +42732,17 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */ LB_Ideographic, LB_Exclamation, LB_Ideographic, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Ideographic, LB_Close_Punctuation, LB_Ideographic, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Ideographic, LB_Close_Punctuation, LB_Ideographic, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, LB_Nonstarter, LB_Ideographic, @@ -42479,6 +42809,9 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */ LB_Numeric, LB_Alphabetic, LB_Combining_Mark, + LB_Break_After, + LB_Alphabetic, + LB_Combining_Mark, LB_Alphabetic, LB_Combining_Mark, LB_Alphabetic, @@ -42517,6 +42850,7 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */ LB_Break_After, LB_Combining_Mark, LB_Alphabetic, + LB_Combining_Mark, LB_Numeric, LB_Alphabetic, LB_Break_Before, @@ -42559,7 +42893,6 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */ LB_Break_After, LB_Alphabetic, LB_Numeric, - LB_Alphabetic, LB_Break_After, LB_Alphabetic, LB_Combining_Mark, @@ -42604,6 +42937,19 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */ LB_Alphabetic, LB_Combining_Mark, LB_Alphabetic, + LB_Combining_Mark, + LB_Alphabetic, + LB_Combining_Mark, + LB_Alphabetic, + LB_Combining_Mark, + LB_Break_After, + LB_Alphabetic, + LB_Numeric, + LB_Alphabetic, + LB_Combining_Mark, + LB_Alphabetic, + LB_Combining_Mark, + LB_Alphabetic, LB_Break_Before, LB_Alphabetic, LB_Combining_Mark, @@ -42714,6 +43060,11 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */ LB_Combining_Mark, LB_Alphabetic, LB_Nonstarter, + LB_Glue, + LB_Alphabetic, + LB_Combining_Mark, + LB_Alphabetic, + LB_Ideographic, LB_Alphabetic, LB_Ideographic, LB_Alphabetic, @@ -42890,6 +43241,9 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */ LB_Alphabetic, LB_Ideographic, LB_Alphabetic, + LB_E_Base, + LB_Ideographic, + LB_E_Base, LB_Ideographic, LB_E_Base, LB_Ideographic, @@ -42914,6 +43268,10 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */ LB_Alphabetic, LB_Ideographic, LB_Alphabetic, + LB_Numeric, + LB_Alphabetic, + LB_Ideographic, + LB_Alphabetic, LB_Ideographic, LB_Alphabetic, LB_Ideographic, @@ -42938,7 +43296,7 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */ - 2400, /* Number of elements */ + 2428, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -43182,7 +43540,7 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB62, 0xB64, @@ -43253,7 +43611,7 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */ 0xD70, 0xD79, 0xD7A, - 0xD82, + 0xD81, 0xD84, 0xDCA, 0xDCB, @@ -43430,7 +43788,7 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */ 0x1A90, 0x1A9A, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B05, 0x1B34, @@ -43812,8 +44170,6 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */ 0x3131, 0x318F, 0x3190, - 0x31BB, - 0x31C0, 0x31E4, 0x31F0, 0x3200, @@ -43854,6 +44210,8 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */ 0xA80C, 0xA823, 0xA828, + 0xA82C, + 0xA82D, 0xA838, 0xA839, 0xA874, @@ -44896,6 +45254,9 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */ 0x10D28, 0x10D30, 0x10D3A, + 0x10EAB, + 0x10EAD, + 0x10EAE, 0x10F46, 0x10F51, 0x11000, @@ -44935,6 +45296,7 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */ 0x111C8, 0x111C9, 0x111CD, + 0x111CE, 0x111D0, 0x111DA, 0x111DB, @@ -44978,7 +45340,6 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */ 0x1144F, 0x11450, 0x1145A, - 0x1145B, 0x1145C, 0x1145E, 0x1145F, @@ -45018,6 +45379,19 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */ 0x1183B, 0x118E0, 0x118EA, + 0x11930, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x1193F, + 0x11940, + 0x11941, + 0x11942, + 0x11944, + 0x11947, + 0x11950, + 0x1195A, 0x119D1, 0x119D8, 0x119DA, @@ -45133,10 +45507,15 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */ 0x16F93, 0x16FE0, 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18B00, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -45309,6 +45688,7 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */ 0x1F8AE, 0x1F900, 0x1F90C, + 0x1F90D, 0x1F90F, 0x1F910, 0x1F918, @@ -45319,6 +45699,8 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */ 0x1F93A, 0x1F93C, 0x1F93F, + 0x1F977, + 0x1F978, 0x1F9B5, 0x1F9B7, 0x1F9B8, @@ -45331,6 +45713,10 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */ 0x1F9DE, 0x1FA00, 0x1FA54, + 0x1FB00, + 0x1FBF0, + 0x1FBFA, + 0x1FC00, 0x1FFFE, 0x20000, 0x2FFFE, @@ -45357,44 +45743,46 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */ typedef enum { LB_Alphabetic = 0, - LB_Break_After = 1, - LB_Break_Before = 2, - LB_Break_Both = 3, - LB_Break_Symbols = 4, - LB_Carriage_Return = 5, - LB_Close_Parenthesis = 6, - LB_Close_Punctuation = 7, - LB_Combining_Mark = 8, - LB_Contingent_Break = 9, - LB_E_Base = 10, - LB_E_Modifier = 11, - LB_Exclamation = 12, - LB_Glue = 13, - LB_H2 = 14, - LB_H3 = 15, - LB_Hebrew_Letter = 16, - LB_Hyphen = 17, - LB_Ideographic = 18, - LB_Infix_Numeric = 19, - LB_Inseparable = 20, - LB_JL = 21, - LB_JT = 22, - LB_JV = 23, - LB_Line_Feed = 24, - LB_Mandatory_Break = 25, - LB_Next_Line = 26, - LB_Nonstarter = 27, - LB_Numeric = 28, - LB_Open_Punctuation = 29, - LB_Postfix_Numeric = 30, - LB_Prefix_Numeric = 31, - LB_Quotation = 32, - LB_Regional_Indicator = 33, - LB_Space = 34, - LB_Word_Joiner = 35, - LB_ZWJ = 36, - LB_ZWSpace = 37, - LB_EDGE = 38 + LB_Break_Both = 1, + LB_Break_After = 2, + LB_Break_Before = 3, + LB_Mandatory_Break = 4, + LB_Contingent_Break = 5, + LB_Close_Punctuation = 6, + LB_Combining_Mark = 7, + LB_Close_Parenthesis = 8, + LB_Carriage_Return = 9, + LB_East_Asian_OP = 10, + LB_E_Base = 11, + LB_EDGE = 12, + LB_E_Modifier = 13, + LB_Exclamation = 14, + LB_Glue = 15, + LB_H2 = 16, + LB_H3 = 17, + LB_Hebrew_Letter = 18, + LB_Hyphen = 19, + LB_Ideographic = 20, + LB_Inseparable = 21, + LB_Infix_Numeric = 22, + LB_JL = 23, + LB_JT = 24, + LB_JV = 25, + LB_Line_Feed = 26, + LB_Next_Line = 27, + LB_Nonstarter = 28, + LB_Numeric = 29, + LB_Open_Punctuation = 30, + LB_Postfix_Numeric = 31, + LB_Prefix_Numeric = 32, + LB_Quotation = 33, + LB_Regional_Indicator = 34, + LB_Space = 35, + LB_Break_Symbols = 36, + LB_Word_Joiner = 37, + LB_ZWSpace = 38, + LB_ZWJ = 39, + LB_East_Asian_CP = 40 } LB_enum; static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */ @@ -46008,7 +46396,7 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */ LB_Alphabetic, LB_Ideographic, LB_Alphabetic, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, LB_Alphabetic, LB_Ideographic, @@ -46183,27 +46571,27 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */ LB_Ideographic, LB_Nonstarter, LB_Ideographic, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, LB_Ideographic, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, LB_Nonstarter, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, LB_Ideographic, LB_Combining_Mark, @@ -46269,8 +46657,6 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */ LB_Alphabetic, LB_Ideographic, LB_Alphabetic, - LB_Ideographic, - LB_Alphabetic, LB_Nonstarter, LB_Ideographic, LB_Alphabetic, @@ -46310,6 +46696,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */ LB_Alphabetic, LB_Combining_Mark, LB_Alphabetic, + LB_Combining_Mark, + LB_Alphabetic, LB_Postfix_Numeric, LB_Alphabetic, LB_Break_Before, @@ -47212,30 +47600,30 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */ LB_Close_Punctuation, LB_Infix_Numeric, LB_Exclamation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, LB_Inseparable, LB_Alphabetic, LB_Combining_Mark, LB_Ideographic, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, LB_Ideographic, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, LB_Ideographic, LB_Close_Punctuation, @@ -47245,11 +47633,11 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */ LB_Nonstarter, LB_Exclamation, LB_Ideographic, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, LB_Ideographic, LB_Alphabetic, @@ -47265,7 +47653,7 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */ LB_Prefix_Numeric, LB_Postfix_Numeric, LB_Ideographic, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, LB_Ideographic, LB_Close_Punctuation, @@ -47276,17 +47664,17 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */ LB_Ideographic, LB_Exclamation, LB_Ideographic, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Ideographic, LB_Close_Punctuation, LB_Ideographic, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Ideographic, LB_Close_Punctuation, LB_Ideographic, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, LB_Nonstarter, LB_Ideographic, @@ -47353,6 +47741,9 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */ LB_Numeric, LB_Alphabetic, LB_Combining_Mark, + LB_Break_After, + LB_Alphabetic, + LB_Combining_Mark, LB_Alphabetic, LB_Combining_Mark, LB_Alphabetic, @@ -47391,6 +47782,7 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */ LB_Break_After, LB_Combining_Mark, LB_Alphabetic, + LB_Combining_Mark, LB_Numeric, LB_Alphabetic, LB_Break_Before, @@ -47433,7 +47825,6 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */ LB_Break_After, LB_Alphabetic, LB_Numeric, - LB_Alphabetic, LB_Break_After, LB_Alphabetic, LB_Combining_Mark, @@ -47478,6 +47869,19 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */ LB_Alphabetic, LB_Combining_Mark, LB_Alphabetic, + LB_Combining_Mark, + LB_Alphabetic, + LB_Combining_Mark, + LB_Alphabetic, + LB_Combining_Mark, + LB_Break_After, + LB_Alphabetic, + LB_Numeric, + LB_Alphabetic, + LB_Combining_Mark, + LB_Alphabetic, + LB_Combining_Mark, + LB_Alphabetic, LB_Break_Before, LB_Alphabetic, LB_Combining_Mark, @@ -47588,6 +47992,11 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */ LB_Combining_Mark, LB_Alphabetic, LB_Nonstarter, + LB_Glue, + LB_Alphabetic, + LB_Combining_Mark, + LB_Alphabetic, + LB_Ideographic, LB_Alphabetic, LB_Ideographic, LB_Alphabetic, @@ -47764,6 +48173,9 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */ LB_Alphabetic, LB_Ideographic, LB_Alphabetic, + LB_E_Base, + LB_Ideographic, + LB_E_Base, LB_Ideographic, LB_E_Base, LB_Ideographic, @@ -47788,6 +48200,10 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */ LB_Alphabetic, LB_Ideographic, LB_Alphabetic, + LB_Numeric, + LB_Alphabetic, + LB_Ideographic, + LB_Alphabetic, LB_Ideographic, LB_Alphabetic, LB_Ideographic, @@ -47812,7 +48228,7 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */ - 2400, /* Number of elements */ + 2428, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -48056,7 +48472,7 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB62, 0xB64, @@ -48127,7 +48543,7 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */ 0xD70, 0xD79, 0xD7A, - 0xD82, + 0xD81, 0xD84, 0xDCA, 0xDCB, @@ -48304,7 +48720,7 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */ 0x1A90, 0x1A9A, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B05, 0x1B34, @@ -48686,8 +49102,6 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */ 0x3131, 0x318F, 0x3190, - 0x31BB, - 0x31C0, 0x31E4, 0x31F0, 0x3200, @@ -48728,6 +49142,8 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */ 0xA80C, 0xA823, 0xA828, + 0xA82C, + 0xA82D, 0xA838, 0xA839, 0xA874, @@ -49770,6 +50186,9 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */ 0x10D28, 0x10D30, 0x10D3A, + 0x10EAB, + 0x10EAD, + 0x10EAE, 0x10F46, 0x10F51, 0x11000, @@ -49809,6 +50228,7 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */ 0x111C8, 0x111C9, 0x111CD, + 0x111CE, 0x111D0, 0x111DA, 0x111DB, @@ -49852,7 +50272,6 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */ 0x1144F, 0x11450, 0x1145A, - 0x1145B, 0x1145C, 0x1145E, 0x1145F, @@ -49892,6 +50311,19 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */ 0x1183B, 0x118E0, 0x118EA, + 0x11930, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x1193F, + 0x11940, + 0x11941, + 0x11942, + 0x11944, + 0x11947, + 0x11950, + 0x1195A, 0x119D1, 0x119D8, 0x119DA, @@ -50007,10 +50439,15 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */ 0x16F93, 0x16FE0, 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18B00, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -50183,6 +50620,7 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */ 0x1F8AE, 0x1F900, 0x1F90C, + 0x1F90D, 0x1F90F, 0x1F910, 0x1F918, @@ -50193,6 +50631,8 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */ 0x1F93A, 0x1F93C, 0x1F93F, + 0x1F977, + 0x1F978, 0x1F9B5, 0x1F9B7, 0x1F9B8, @@ -50205,6 +50645,10 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */ 0x1F9DE, 0x1FA00, 0x1FA54, + 0x1FB00, + 0x1FBF0, + 0x1FBFA, + 0x1FC00, 0x1FFFE, 0x20000, 0x2FFFE, @@ -50231,44 +50675,46 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */ typedef enum { LB_Alphabetic = 0, - LB_Break_After = 1, - LB_Break_Before = 2, - LB_Break_Both = 3, - LB_Break_Symbols = 4, - LB_Carriage_Return = 5, - LB_Close_Parenthesis = 6, - LB_Close_Punctuation = 7, - LB_Combining_Mark = 8, - LB_Contingent_Break = 9, - LB_E_Base = 10, - LB_E_Modifier = 11, - LB_Exclamation = 12, - LB_Glue = 13, - LB_H2 = 14, - LB_H3 = 15, - LB_Hebrew_Letter = 16, - LB_Hyphen = 17, - LB_Ideographic = 18, - LB_Infix_Numeric = 19, - LB_Inseparable = 20, - LB_JL = 21, - LB_JT = 22, - LB_JV = 23, - LB_Line_Feed = 24, - LB_Mandatory_Break = 25, - LB_Next_Line = 26, - LB_Nonstarter = 27, - LB_Numeric = 28, - LB_Open_Punctuation = 29, - LB_Postfix_Numeric = 30, - LB_Prefix_Numeric = 31, - LB_Quotation = 32, - LB_Regional_Indicator = 33, - LB_Space = 34, - LB_Word_Joiner = 35, - LB_ZWJ = 36, - LB_ZWSpace = 37, - LB_EDGE = 38 + LB_Break_Both = 1, + LB_Break_After = 2, + LB_Break_Before = 3, + LB_Mandatory_Break = 4, + LB_Contingent_Break = 5, + LB_Close_Punctuation = 6, + LB_Combining_Mark = 7, + LB_Close_Parenthesis = 8, + LB_Carriage_Return = 9, + LB_East_Asian_OP = 10, + LB_E_Base = 11, + LB_EDGE = 12, + LB_E_Modifier = 13, + LB_Exclamation = 14, + LB_Glue = 15, + LB_H2 = 16, + LB_H3 = 17, + LB_Hebrew_Letter = 18, + LB_Hyphen = 19, + LB_Ideographic = 20, + LB_Inseparable = 21, + LB_Infix_Numeric = 22, + LB_JL = 23, + LB_JT = 24, + LB_JV = 25, + LB_Line_Feed = 26, + LB_Next_Line = 27, + LB_Nonstarter = 28, + LB_Numeric = 29, + LB_Open_Punctuation = 30, + LB_Postfix_Numeric = 31, + LB_Prefix_Numeric = 32, + LB_Quotation = 33, + LB_Regional_Indicator = 34, + LB_Space = 35, + LB_Break_Symbols = 36, + LB_Word_Joiner = 37, + LB_ZWSpace = 38, + LB_ZWJ = 39, + LB_East_Asian_CP = 40 } LB_enum; static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */ @@ -50882,7 +51328,7 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */ LB_Alphabetic, LB_Ideographic, LB_Alphabetic, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, LB_Alphabetic, LB_Ideographic, @@ -51057,27 +51503,27 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */ LB_Ideographic, LB_Nonstarter, LB_Ideographic, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, LB_Ideographic, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, LB_Nonstarter, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, LB_Ideographic, LB_Combining_Mark, @@ -51143,8 +51589,6 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */ LB_Alphabetic, LB_Ideographic, LB_Alphabetic, - LB_Ideographic, - LB_Alphabetic, LB_Nonstarter, LB_Ideographic, LB_Alphabetic, @@ -51184,6 +51628,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */ LB_Alphabetic, LB_Combining_Mark, LB_Alphabetic, + LB_Combining_Mark, + LB_Alphabetic, LB_Postfix_Numeric, LB_Alphabetic, LB_Break_Before, @@ -52086,30 +52532,30 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */ LB_Close_Punctuation, LB_Infix_Numeric, LB_Exclamation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, LB_Inseparable, LB_Alphabetic, LB_Combining_Mark, LB_Ideographic, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, LB_Ideographic, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, LB_Ideographic, LB_Close_Punctuation, @@ -52119,11 +52565,11 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */ LB_Nonstarter, LB_Exclamation, LB_Ideographic, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, LB_Ideographic, LB_Alphabetic, @@ -52139,7 +52585,7 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */ LB_Prefix_Numeric, LB_Postfix_Numeric, LB_Ideographic, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, LB_Ideographic, LB_Close_Punctuation, @@ -52150,17 +52596,17 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */ LB_Ideographic, LB_Exclamation, LB_Ideographic, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Ideographic, LB_Close_Punctuation, LB_Ideographic, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Ideographic, LB_Close_Punctuation, LB_Ideographic, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, - LB_Open_Punctuation, + LB_East_Asian_OP, LB_Close_Punctuation, LB_Nonstarter, LB_Ideographic, @@ -52227,6 +52673,9 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */ LB_Numeric, LB_Alphabetic, LB_Combining_Mark, + LB_Break_After, + LB_Alphabetic, + LB_Combining_Mark, LB_Alphabetic, LB_Combining_Mark, LB_Alphabetic, @@ -52265,6 +52714,7 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */ LB_Break_After, LB_Combining_Mark, LB_Alphabetic, + LB_Combining_Mark, LB_Numeric, LB_Alphabetic, LB_Break_Before, @@ -52307,7 +52757,6 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */ LB_Break_After, LB_Alphabetic, LB_Numeric, - LB_Alphabetic, LB_Break_After, LB_Alphabetic, LB_Combining_Mark, @@ -52352,6 +52801,19 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */ LB_Alphabetic, LB_Combining_Mark, LB_Alphabetic, + LB_Combining_Mark, + LB_Alphabetic, + LB_Combining_Mark, + LB_Alphabetic, + LB_Combining_Mark, + LB_Break_After, + LB_Alphabetic, + LB_Numeric, + LB_Alphabetic, + LB_Combining_Mark, + LB_Alphabetic, + LB_Combining_Mark, + LB_Alphabetic, LB_Break_Before, LB_Alphabetic, LB_Combining_Mark, @@ -52462,6 +52924,11 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */ LB_Combining_Mark, LB_Alphabetic, LB_Nonstarter, + LB_Glue, + LB_Alphabetic, + LB_Combining_Mark, + LB_Alphabetic, + LB_Ideographic, LB_Alphabetic, LB_Ideographic, LB_Alphabetic, @@ -52638,6 +53105,9 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */ LB_Alphabetic, LB_Ideographic, LB_Alphabetic, + LB_E_Base, + LB_Ideographic, + LB_E_Base, LB_Ideographic, LB_E_Base, LB_Ideographic, @@ -52662,6 +53132,10 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */ LB_Alphabetic, LB_Ideographic, LB_Alphabetic, + LB_Numeric, + LB_Alphabetic, + LB_Ideographic, + LB_Alphabetic, LB_Ideographic, LB_Alphabetic, LB_Ideographic, @@ -52683,7 +53157,7 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */ - 3097, /* Number of elements */ + 3146, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -53400,7 +53874,7 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x8E2, 0x8E3, @@ -53542,7 +54016,7 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -53645,7 +54119,6 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */ 0xCF3, 0xD00, 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -53669,7 +54142,7 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */ 0xD70, 0xD7A, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -53927,7 +54400,7 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */ 0x1AA8, 0x1AAC, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B05, 0x1B34, @@ -54592,13 +55065,13 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA4D0, @@ -54840,7 +55313,12 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */ 0xA7C2, 0xA7C3, 0xA7C4, - 0xA7C7, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7CB, + 0xA7F5, + 0xA7F6, 0xA7F7, 0xA7F8, 0xA7FB, @@ -54852,6 +55330,8 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */ 0xA80C, 0xA823, 0xA828, + 0xA82C, + 0xA82D, 0xA840, 0xA874, 0xA876, @@ -54943,7 +55423,8 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */ 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB69, + 0xAB6A, 0xAB70, 0xABC0, 0xABE3, @@ -55196,6 +55677,12 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */ 0x10D28, 0x10D30, 0x10D3A, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAD, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, @@ -55205,6 +55692,8 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */ 0x10F51, 0x10F55, 0x10F5A, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11000, @@ -55237,6 +55726,7 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */ 0x11144, 0x11145, 0x11147, + 0x11148, 0x11150, 0x11173, 0x11174, @@ -55326,7 +55816,7 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */ 0x1145A, 0x1145E, 0x1145F, - 0x11460, + 0x11462, 0x11480, 0x114B0, 0x114C4, @@ -55376,7 +55866,29 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */ 0x118E0, 0x118EA, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11930, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x1193F, + 0x11940, + 0x11941, + 0x11942, + 0x11944, + 0x11945, + 0x11946, + 0x11947, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -55461,6 +55973,8 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */ 0x11EF3, 0x11EF7, 0x11EF9, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12400, @@ -55517,10 +56031,15 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */ 0x16FE2, 0x16FE3, 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -55766,8 +56285,10 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */ 0x1F18A, 0x1F676, 0x1F679, + 0x1FBF0, + 0x1FBFA, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -55778,6 +56299,8 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */ 0x2EBE1, 0x2F800, 0x2FA1E, + 0x30000, + 0x3134B, 0xE0001, 0xE0002, 0xE0020, @@ -55797,20 +56320,20 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */ typedef enum { SB_Other = 0, SB_ATerm = 1, - SB_CR = 2, - SB_Close = 3, - SB_Extend = 4, - SB_Format = 5, - SB_LF = 6, - SB_Lower = 7, - SB_Numeric = 8, - SB_OLetter = 9, - SB_SContinue = 10, - SB_STerm = 11, + SB_Close = 2, + SB_CR = 3, + SB_EDGE = 4, + SB_Extend = 5, + SB_Format = 6, + SB_LF = 7, + SB_Lower = 8, + SB_Numeric = 9, + SB_OLetter = 10, + SB_SContinue = 11, SB_Sep = 12, SB_Sp = 13, - SB_Upper = 14, - SB_EDGE = 15 + SB_STerm = 14, + SB_Upper = 15 } SB_enum; static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */ @@ -56771,7 +57294,6 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */ SB_OLetter, SB_Other, SB_Extend, - SB_Other, SB_OLetter, SB_Other, SB_OLetter, @@ -57967,7 +58489,12 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */ SB_Upper, SB_Lower, SB_Upper, + SB_Lower, + SB_Upper, + SB_Lower, SB_Other, + SB_Upper, + SB_Lower, SB_OLetter, SB_Lower, SB_OLetter, @@ -57979,6 +58506,8 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */ SB_OLetter, SB_Extend, SB_Other, + SB_Extend, + SB_Other, SB_OLetter, SB_Other, SB_STerm, @@ -58070,6 +58599,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */ SB_Lower, SB_Other, SB_Lower, + SB_OLetter, SB_Other, SB_Lower, SB_OLetter, @@ -58325,6 +58855,12 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */ SB_Other, SB_OLetter, SB_Other, + SB_Extend, + SB_Other, + SB_OLetter, + SB_Other, + SB_OLetter, + SB_Other, SB_OLetter, SB_Other, SB_OLetter, @@ -58334,6 +58870,8 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */ SB_Other, SB_OLetter, SB_Other, + SB_OLetter, + SB_Other, SB_Extend, SB_OLetter, SB_Extend, @@ -58363,6 +58901,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */ SB_STerm, SB_OLetter, SB_Extend, + SB_OLetter, SB_Other, SB_OLetter, SB_Extend, @@ -58377,7 +58916,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */ SB_Other, SB_Extend, SB_STerm, - SB_Other, + SB_Extend, SB_Numeric, SB_OLetter, SB_Other, @@ -58507,6 +59046,28 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */ SB_OLetter, SB_Other, SB_OLetter, + SB_Other, + SB_OLetter, + SB_Other, + SB_OLetter, + SB_Extend, + SB_Other, + SB_Extend, + SB_Other, + SB_Extend, + SB_OLetter, + SB_Extend, + SB_OLetter, + SB_Extend, + SB_STerm, + SB_Other, + SB_STerm, + SB_Other, + SB_Numeric, + SB_Other, + SB_OLetter, + SB_Other, + SB_OLetter, SB_Extend, SB_Other, SB_Extend, @@ -58596,6 +59157,8 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */ SB_Other, SB_OLetter, SB_Other, + SB_OLetter, + SB_Other, SB_Format, SB_Other, SB_OLetter, @@ -58643,6 +59206,11 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */ SB_OLetter, SB_Other, SB_OLetter, + SB_Extend, + SB_Other, + SB_Extend, + SB_Other, + SB_OLetter, SB_Other, SB_OLetter, SB_Other, @@ -58893,6 +59461,10 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */ SB_Other, SB_Close, SB_Other, + SB_Numeric, + SB_Other, + SB_OLetter, + SB_Other, SB_OLetter, SB_Other, SB_OLetter, @@ -58925,7 +59497,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */ - 3121, /* Number of elements */ + 3170, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -59666,7 +60238,7 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x8E2, 0x8E3, @@ -59808,7 +60380,7 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -59911,7 +60483,6 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */ 0xCF3, 0xD00, 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -59935,7 +60506,7 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */ 0xD70, 0xD7A, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -60193,7 +60764,7 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */ 0x1AA8, 0x1AAC, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B05, 0x1B34, @@ -60858,13 +61429,13 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA4D0, @@ -61106,7 +61677,12 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */ 0xA7C2, 0xA7C3, 0xA7C4, - 0xA7C7, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7CB, + 0xA7F5, + 0xA7F6, 0xA7F7, 0xA7F8, 0xA7FB, @@ -61118,6 +61694,8 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */ 0xA80C, 0xA823, 0xA828, + 0xA82C, + 0xA82D, 0xA840, 0xA874, 0xA876, @@ -61209,7 +61787,8 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */ 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB69, + 0xAB6A, 0xAB70, 0xABC0, 0xABE3, @@ -61462,6 +62041,12 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */ 0x10D28, 0x10D30, 0x10D3A, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAD, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, @@ -61471,6 +62056,8 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */ 0x10F51, 0x10F55, 0x10F5A, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11000, @@ -61503,6 +62090,7 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */ 0x11144, 0x11145, 0x11147, + 0x11148, 0x11150, 0x11173, 0x11174, @@ -61592,7 +62180,7 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */ 0x1145A, 0x1145E, 0x1145F, - 0x11460, + 0x11462, 0x11480, 0x114B0, 0x114C4, @@ -61642,7 +62230,29 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */ 0x118E0, 0x118EA, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11930, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x1193F, + 0x11940, + 0x11941, + 0x11942, + 0x11944, + 0x11945, + 0x11946, + 0x11947, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -61727,6 +62337,8 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */ 0x11EF3, 0x11EF7, 0x11EF9, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12400, @@ -61783,10 +62395,15 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */ 0x16FE2, 0x16FE3, 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -62032,8 +62649,10 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */ 0x1F18A, 0x1F676, 0x1F679, + 0x1FBF0, + 0x1FBFA, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -62044,6 +62663,8 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */ 0x2EBE1, 0x2F800, 0x2FA1E, + 0x30000, + 0x3134B, 0xE0001, 0xE0002, 0xE0020, @@ -62066,20 +62687,20 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */ typedef enum { SB_Other = 0, SB_ATerm = 1, - SB_CR = 2, - SB_Close = 3, - SB_Extend = 4, - SB_Format = 5, - SB_LF = 6, - SB_Lower = 7, - SB_Numeric = 8, - SB_OLetter = 9, - SB_SContinue = 10, - SB_STerm = 11, + SB_Close = 2, + SB_CR = 3, + SB_EDGE = 4, + SB_Extend = 5, + SB_Format = 6, + SB_LF = 7, + SB_Lower = 8, + SB_Numeric = 9, + SB_OLetter = 10, + SB_SContinue = 11, SB_Sep = 12, SB_Sp = 13, - SB_Upper = 14, - SB_EDGE = 15 + SB_STerm = 14, + SB_Upper = 15 } SB_enum; static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */ @@ -63064,7 +63685,6 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */ SB_OLetter, SB_Other, SB_Extend, - SB_Other, SB_OLetter, SB_Other, SB_OLetter, @@ -64260,7 +64880,12 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */ SB_Upper, SB_Lower, SB_Upper, + SB_Lower, + SB_Upper, + SB_Lower, SB_Other, + SB_Upper, + SB_Lower, SB_OLetter, SB_Lower, SB_OLetter, @@ -64272,6 +64897,8 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */ SB_OLetter, SB_Extend, SB_Other, + SB_Extend, + SB_Other, SB_OLetter, SB_Other, SB_STerm, @@ -64363,6 +64990,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */ SB_Lower, SB_Other, SB_Lower, + SB_OLetter, SB_Other, SB_Lower, SB_OLetter, @@ -64618,6 +65246,12 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */ SB_Other, SB_OLetter, SB_Other, + SB_Extend, + SB_Other, + SB_OLetter, + SB_Other, + SB_OLetter, + SB_Other, SB_OLetter, SB_Other, SB_OLetter, @@ -64627,6 +65261,8 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */ SB_Other, SB_OLetter, SB_Other, + SB_OLetter, + SB_Other, SB_Extend, SB_OLetter, SB_Extend, @@ -64656,6 +65292,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */ SB_STerm, SB_OLetter, SB_Extend, + SB_OLetter, SB_Other, SB_OLetter, SB_Extend, @@ -64670,7 +65307,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */ SB_Other, SB_Extend, SB_STerm, - SB_Other, + SB_Extend, SB_Numeric, SB_OLetter, SB_Other, @@ -64800,6 +65437,28 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */ SB_OLetter, SB_Other, SB_OLetter, + SB_Other, + SB_OLetter, + SB_Other, + SB_OLetter, + SB_Extend, + SB_Other, + SB_Extend, + SB_Other, + SB_Extend, + SB_OLetter, + SB_Extend, + SB_OLetter, + SB_Extend, + SB_STerm, + SB_Other, + SB_STerm, + SB_Other, + SB_Numeric, + SB_Other, + SB_OLetter, + SB_Other, + SB_OLetter, SB_Extend, SB_Other, SB_Extend, @@ -64889,6 +65548,8 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */ SB_Other, SB_OLetter, SB_Other, + SB_OLetter, + SB_Other, SB_Format, SB_Other, SB_OLetter, @@ -64936,207 +65597,212 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */ SB_OLetter, SB_Other, SB_OLetter, - SB_Other, - SB_OLetter, - SB_Other, - SB_OLetter, - SB_Other, - SB_OLetter, - SB_Other, - SB_OLetter, - SB_Other, - SB_OLetter, - SB_Other, - SB_OLetter, - SB_Other, - SB_OLetter, - SB_Other, - SB_OLetter, - SB_Other, - SB_OLetter, - SB_Other, - SB_OLetter, - SB_Other, - SB_Extend, - SB_STerm, - SB_Format, - SB_Other, - SB_Extend, - SB_Other, - SB_Extend, - SB_Format, - SB_Extend, - SB_Other, - SB_Extend, - SB_Other, - SB_Extend, - SB_Other, - SB_Extend, - SB_Other, - SB_Upper, - SB_Lower, - SB_Upper, - SB_Lower, - SB_Other, - SB_Lower, - SB_Upper, - SB_Lower, - SB_Upper, - SB_Other, - SB_Upper, - SB_Other, - SB_Upper, - SB_Other, - SB_Upper, - SB_Other, - SB_Upper, - SB_Other, - SB_Upper, - SB_Lower, - SB_Other, - SB_Lower, - SB_Other, - SB_Lower, - SB_Other, - SB_Lower, - SB_Upper, - SB_Lower, - SB_Upper, - SB_Other, - SB_Upper, - SB_Other, - SB_Upper, - SB_Other, - SB_Upper, - SB_Other, - SB_Lower, - SB_Upper, - SB_Other, - SB_Upper, - SB_Other, - SB_Upper, - SB_Other, - SB_Upper, - SB_Other, - SB_Upper, - SB_Other, - SB_Lower, - SB_Upper, - SB_Lower, - SB_Upper, - SB_Lower, - SB_Upper, - SB_Lower, - SB_Upper, - SB_Lower, - SB_Upper, - SB_Lower, - SB_Upper, - SB_Lower, - SB_Other, - SB_Upper, - SB_Other, - SB_Lower, - SB_Other, - SB_Lower, - SB_Upper, - SB_Other, - SB_Lower, - SB_Other, - SB_Lower, - SB_Upper, - SB_Other, - SB_Lower, - SB_Other, - SB_Lower, - SB_Upper, - SB_Other, - SB_Lower, - SB_Other, - SB_Lower, - SB_Upper, - SB_Other, - SB_Lower, - SB_Other, - SB_Lower, - SB_Upper, - SB_Lower, - SB_Other, - SB_Numeric, - SB_Other, - SB_Extend, - SB_Other, - SB_Extend, - SB_Other, - SB_Extend, - SB_Other, - SB_Extend, - SB_Other, - SB_STerm, - SB_Other, - SB_Extend, - SB_Other, - SB_Extend, - SB_Other, - SB_Extend, - SB_Other, - SB_Extend, - SB_Other, - SB_Extend, - SB_Other, - SB_Extend, - SB_Other, - SB_Extend, - SB_Other, - SB_OLetter, - SB_Other, - SB_Extend, - SB_OLetter, - SB_Other, - SB_Numeric, - SB_Other, - SB_OLetter, - SB_Other, - SB_OLetter, - SB_Extend, - SB_Numeric, - SB_Other, - SB_OLetter, - SB_Other, SB_Extend, SB_Other, - SB_Upper, - SB_Lower, SB_Extend, - SB_OLetter, - SB_Other, - SB_Numeric, - SB_Other, - SB_OLetter, - SB_Other, - SB_OLetter, - SB_Other, - SB_OLetter, - SB_Other, - SB_OLetter, - SB_Other, - SB_OLetter, - SB_Other, - SB_OLetter, - SB_Other, - SB_OLetter, - SB_Other, - SB_OLetter, - SB_Other, - SB_OLetter, - SB_Other, - SB_OLetter, - SB_Other, - SB_OLetter, - SB_Other, - SB_OLetter, - SB_Other, - SB_OLetter, + SB_Other, + SB_OLetter, + SB_Other, + SB_OLetter, + SB_Other, + SB_OLetter, + SB_Other, + SB_OLetter, + SB_Other, + SB_OLetter, + SB_Other, + SB_OLetter, + SB_Other, + SB_OLetter, + SB_Other, + SB_OLetter, + SB_Other, + SB_OLetter, + SB_Other, + SB_OLetter, + SB_Other, + SB_OLetter, + SB_Other, + SB_Extend, + SB_STerm, + SB_Format, + SB_Other, + SB_Extend, + SB_Other, + SB_Extend, + SB_Format, + SB_Extend, + SB_Other, + SB_Extend, + SB_Other, + SB_Extend, + SB_Other, + SB_Extend, + SB_Other, + SB_Upper, + SB_Lower, + SB_Upper, + SB_Lower, + SB_Other, + SB_Lower, + SB_Upper, + SB_Lower, + SB_Upper, + SB_Other, + SB_Upper, + SB_Other, + SB_Upper, + SB_Other, + SB_Upper, + SB_Other, + SB_Upper, + SB_Other, + SB_Upper, + SB_Lower, + SB_Other, + SB_Lower, + SB_Other, + SB_Lower, + SB_Other, + SB_Lower, + SB_Upper, + SB_Lower, + SB_Upper, + SB_Other, + SB_Upper, + SB_Other, + SB_Upper, + SB_Other, + SB_Upper, + SB_Other, + SB_Lower, + SB_Upper, + SB_Other, + SB_Upper, + SB_Other, + SB_Upper, + SB_Other, + SB_Upper, + SB_Other, + SB_Upper, + SB_Other, + SB_Lower, + SB_Upper, + SB_Lower, + SB_Upper, + SB_Lower, + SB_Upper, + SB_Lower, + SB_Upper, + SB_Lower, + SB_Upper, + SB_Lower, + SB_Upper, + SB_Lower, + SB_Other, + SB_Upper, + SB_Other, + SB_Lower, + SB_Other, + SB_Lower, + SB_Upper, + SB_Other, + SB_Lower, + SB_Other, + SB_Lower, + SB_Upper, + SB_Other, + SB_Lower, + SB_Other, + SB_Lower, + SB_Upper, + SB_Other, + SB_Lower, + SB_Other, + SB_Lower, + SB_Upper, + SB_Other, + SB_Lower, + SB_Other, + SB_Lower, + SB_Upper, + SB_Lower, + SB_Other, + SB_Numeric, + SB_Other, + SB_Extend, + SB_Other, + SB_Extend, + SB_Other, + SB_Extend, + SB_Other, + SB_Extend, + SB_Other, + SB_STerm, + SB_Other, + SB_Extend, + SB_Other, + SB_Extend, + SB_Other, + SB_Extend, + SB_Other, + SB_Extend, + SB_Other, + SB_Extend, + SB_Other, + SB_Extend, + SB_Other, + SB_Extend, + SB_Other, + SB_OLetter, + SB_Other, + SB_Extend, + SB_OLetter, + SB_Other, + SB_Numeric, + SB_Other, + SB_OLetter, + SB_Other, + SB_OLetter, + SB_Extend, + SB_Numeric, + SB_Other, + SB_OLetter, + SB_Other, + SB_Extend, + SB_Other, + SB_Upper, + SB_Lower, + SB_Extend, + SB_OLetter, + SB_Other, + SB_Numeric, + SB_Other, + SB_OLetter, + SB_Other, + SB_OLetter, + SB_Other, + SB_OLetter, + SB_Other, + SB_OLetter, + SB_Other, + SB_OLetter, + SB_Other, + SB_OLetter, + SB_Other, + SB_OLetter, + SB_Other, + SB_OLetter, + SB_Other, + SB_OLetter, + SB_Other, + SB_OLetter, + SB_Other, + SB_OLetter, + SB_Other, + SB_OLetter, + SB_Other, + SB_OLetter, SB_Other, SB_OLetter, SB_Other, @@ -65186,6 +65852,10 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */ SB_Other, SB_Close, SB_Other, + SB_Numeric, + SB_Other, + SB_OLetter, + SB_Other, SB_OLetter, SB_Other, SB_OLetter, @@ -65218,7 +65888,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */ - 3117, /* Number of elements */ + 3166, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -65955,7 +66625,7 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x8E2, 0x8E3, @@ -66097,7 +66767,7 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -66200,7 +66870,6 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */ 0xCF3, 0xD00, 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -66224,7 +66893,7 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */ 0xD70, 0xD7A, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -66482,7 +67151,7 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */ 0x1AA8, 0x1AAC, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B05, 0x1B34, @@ -67147,13 +67816,13 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA4D0, @@ -67395,7 +68064,12 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */ 0xA7C2, 0xA7C3, 0xA7C4, - 0xA7C7, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7CB, + 0xA7F5, + 0xA7F6, 0xA7F7, 0xA7F8, 0xA7FB, @@ -67407,6 +68081,8 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */ 0xA80C, 0xA823, 0xA828, + 0xA82C, + 0xA82D, 0xA840, 0xA874, 0xA876, @@ -67498,7 +68174,8 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */ 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB69, + 0xAB6A, 0xAB70, 0xABC0, 0xABE3, @@ -67751,6 +68428,12 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */ 0x10D28, 0x10D30, 0x10D3A, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAD, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, @@ -67760,6 +68443,8 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */ 0x10F51, 0x10F55, 0x10F5A, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11000, @@ -67792,6 +68477,7 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */ 0x11144, 0x11145, 0x11147, + 0x11148, 0x11150, 0x11173, 0x11174, @@ -67881,7 +68567,7 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */ 0x1145A, 0x1145E, 0x1145F, - 0x11460, + 0x11462, 0x11480, 0x114B0, 0x114C4, @@ -67931,7 +68617,29 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */ 0x118E0, 0x118EA, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11930, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x1193F, + 0x11940, + 0x11941, + 0x11942, + 0x11944, + 0x11945, + 0x11946, + 0x11947, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -68016,6 +68724,8 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */ 0x11EF3, 0x11EF7, 0x11EF9, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12400, @@ -68072,10 +68782,15 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */ 0x16FE2, 0x16FE3, 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -68321,8 +69036,10 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */ 0x1F18A, 0x1F676, 0x1F679, + 0x1FBF0, + 0x1FBFA, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -68333,6 +69050,8 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */ 0x2EBE1, 0x2F800, 0x2FA1E, + 0x30000, + 0x3134B, 0xE0001, 0xE0002, 0xE0020, @@ -68355,20 +69074,20 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */ typedef enum { SB_Other = 0, SB_ATerm = 1, - SB_CR = 2, - SB_Close = 3, - SB_Extend = 4, - SB_Format = 5, - SB_LF = 6, - SB_Lower = 7, - SB_Numeric = 8, - SB_OLetter = 9, - SB_SContinue = 10, - SB_STerm = 11, + SB_Close = 2, + SB_CR = 3, + SB_EDGE = 4, + SB_Extend = 5, + SB_Format = 6, + SB_LF = 7, + SB_Lower = 8, + SB_Numeric = 9, + SB_OLetter = 10, + SB_SContinue = 11, SB_Sep = 12, SB_Sp = 13, - SB_Upper = 14, - SB_EDGE = 15 + SB_STerm = 14, + SB_Upper = 15 } SB_enum; static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */ @@ -69349,7 +70068,6 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */ SB_OLetter, SB_Other, SB_Extend, - SB_Other, SB_OLetter, SB_Other, SB_OLetter, @@ -70545,7 +71263,12 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */ SB_Upper, SB_Lower, SB_Upper, + SB_Lower, + SB_Upper, + SB_Lower, SB_Other, + SB_Upper, + SB_Lower, SB_OLetter, SB_Lower, SB_OLetter, @@ -70557,6 +71280,8 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */ SB_OLetter, SB_Extend, SB_Other, + SB_Extend, + SB_Other, SB_OLetter, SB_Other, SB_STerm, @@ -70648,6 +71373,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */ SB_Lower, SB_Other, SB_Lower, + SB_OLetter, SB_Other, SB_Lower, SB_OLetter, @@ -70903,6 +71629,12 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */ SB_Other, SB_OLetter, SB_Other, + SB_Extend, + SB_Other, + SB_OLetter, + SB_Other, + SB_OLetter, + SB_Other, SB_OLetter, SB_Other, SB_OLetter, @@ -70912,6 +71644,8 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */ SB_Other, SB_OLetter, SB_Other, + SB_OLetter, + SB_Other, SB_Extend, SB_OLetter, SB_Extend, @@ -70941,6 +71675,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */ SB_STerm, SB_OLetter, SB_Extend, + SB_OLetter, SB_Other, SB_OLetter, SB_Extend, @@ -70955,7 +71690,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */ SB_Other, SB_Extend, SB_STerm, - SB_Other, + SB_Extend, SB_Numeric, SB_OLetter, SB_Other, @@ -71085,6 +71820,28 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */ SB_OLetter, SB_Other, SB_OLetter, + SB_Other, + SB_OLetter, + SB_Other, + SB_OLetter, + SB_Extend, + SB_Other, + SB_Extend, + SB_Other, + SB_Extend, + SB_OLetter, + SB_Extend, + SB_OLetter, + SB_Extend, + SB_STerm, + SB_Other, + SB_STerm, + SB_Other, + SB_Numeric, + SB_Other, + SB_OLetter, + SB_Other, + SB_OLetter, SB_Extend, SB_Other, SB_Extend, @@ -71174,6 +71931,8 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */ SB_Other, SB_OLetter, SB_Other, + SB_OLetter, + SB_Other, SB_Format, SB_Other, SB_OLetter, @@ -71221,6 +71980,11 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */ SB_OLetter, SB_Other, SB_OLetter, + SB_Extend, + SB_Other, + SB_Extend, + SB_Other, + SB_OLetter, SB_Other, SB_OLetter, SB_Other, @@ -71471,6 +72235,10 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */ SB_Other, SB_Close, SB_Other, + SB_Numeric, + SB_Other, + SB_OLetter, + SB_Other, SB_OLetter, SB_Other, SB_OLetter, @@ -71500,7 +72268,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */ - 1644, /* Number of elements */ + 1673, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -71560,8 +72328,6 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */ 0x531, 0x557, 0x559, - 0x589, - 0x58A, 0x58B, 0x58D, 0x590, @@ -71618,7 +72384,7 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x8E2, 0x8E3, @@ -71742,7 +72508,7 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -71833,8 +72599,6 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */ 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -71848,7 +72612,7 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */ 0xD64, 0xD66, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -72043,7 +72807,7 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */ 0x1AA0, 0x1AAE, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B4C, 0x1B50, @@ -72106,6 +72870,8 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */ 0x1D79, 0x1DBF, 0x1DC2, + 0x1DF8, + 0x1DF9, 0x1DFA, 0x1DFB, 0x1E00, @@ -72183,7 +72949,7 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */ 0x2B74, 0x2B76, 0x2B96, - 0x2B98, + 0x2B97, 0x2C00, 0x2C2F, 0x2C30, @@ -72225,7 +72991,7 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */ 0x2E00, 0x2E43, 0x2E44, - 0x2E50, + 0x2E53, 0x2E80, 0x2E9A, 0x2E9B, @@ -72272,7 +73038,6 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */ 0x318F, 0x3190, 0x31A0, - 0x31BB, 0x31C0, 0x31E4, 0x31F0, @@ -72296,10 +73061,9 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */ 0x33E0, 0x33FF, 0x3400, - 0x4DB6, 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA490, @@ -72313,15 +73077,16 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */ 0xA6A0, 0xA6F8, 0xA700, + 0xA708, 0xA722, 0xA788, 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA800, - 0xA82C, + 0xA82D, 0xA830, 0xA833, 0xA836, @@ -72381,7 +73146,8 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */ 0xAB5C, 0xAB65, 0xAB66, - 0xAB68, + 0xAB6A, + 0xAB6C, 0xAB70, 0xABC0, 0xABEE, @@ -72493,7 +73259,7 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */ 0x10140, 0x1018F, 0x10190, - 0x1019C, + 0x1019D, 0x101A0, 0x101A1, 0x101D0, @@ -72629,10 +73395,18 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */ 0x10D3A, 0x10E60, 0x10E7F, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAE, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F28, 0x10F30, 0x10F5A, + 0x10FB0, + 0x10FCC, 0x10FE0, 0x10FF7, 0x11000, @@ -72651,12 +73425,10 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */ 0x11100, 0x11135, 0x11136, - 0x11147, + 0x11148, 0x11150, 0x11177, 0x11180, - 0x111CE, - 0x111D0, 0x111E0, 0x111E1, 0x111F5, @@ -72713,11 +73485,9 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */ 0x11370, 0x11375, 0x11400, - 0x1145A, - 0x1145B, 0x1145C, 0x1145D, - 0x11460, + 0x11462, 0x11480, 0x114C8, 0x114D0, @@ -72748,6 +73518,21 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */ 0x118F3, 0x118FF, 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11947, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -72802,6 +73587,8 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */ 0x11DAA, 0x11EE0, 0x11EF9, + 0x11FB0, + 0x11FB1, 0x11FC0, 0x11FD0, 0x11FD2, @@ -72857,10 +73644,16 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */ 0x16FE1, 0x16FE2, 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18B00, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B001, 0x1B11F, @@ -73067,11 +73860,7 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */ 0x1F0D1, 0x1F0F6, 0x1F100, - 0x1F10D, - 0x1F110, - 0x1F16D, - 0x1F170, - 0x1F1AD, + 0x1F1AE, 0x1F1E6, 0x1F200, 0x1F201, @@ -73085,11 +73874,11 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */ 0x1F260, 0x1F266, 0x1F300, - 0x1F6D6, + 0x1F6D8, 0x1F6E0, 0x1F6ED, 0x1F6F0, - 0x1F6FB, + 0x1F6FD, 0x1F700, 0x1F774, 0x1F780, @@ -73106,32 +73895,38 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */ 0x1F888, 0x1F890, 0x1F8AE, + 0x1F8B0, + 0x1F8B2, 0x1F900, - 0x1F90C, - 0x1F90D, - 0x1F972, - 0x1F973, - 0x1F977, + 0x1F979, 0x1F97A, - 0x1F9A3, - 0x1F9A5, - 0x1F9AB, - 0x1F9AE, - 0x1F9CB, + 0x1F9CC, 0x1F9CD, 0x1FA54, 0x1FA60, 0x1FA6E, 0x1FA70, - 0x1FA74, + 0x1FA75, 0x1FA78, 0x1FA7B, 0x1FA80, - 0x1FA83, + 0x1FA87, 0x1FA90, - 0x1FA96, + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB, + 0x1FBF0, + 0x1FBFA, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -73142,6 +73937,8 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */ 0x2EBE1, 0x2F800, 0x2FA1E, + 0x30000, + 0x3134B, 0xE0001, 0xE0002, 0xE0020, @@ -73185,139 +73982,143 @@ typedef enum { SCX_Chakma = 21, SCX_Cham = 22, SCX_Cherokee = 23, - SCX_Common = 24, - SCX_Coptic = 25, - SCX_Cuneiform = 26, - SCX_Cypriot = 27, - SCX_Cyrillic = 28, - SCX_Deseret = 29, - SCX_Devanagari = 30, - SCX_Dogra = 31, - SCX_Duployan = 32, - SCX_Egyptian_Hieroglyphs = 33, - SCX_Elbasan = 34, - SCX_Elymaic = 35, - SCX_Ethiopic = 36, - SCX_Georgian = 37, - SCX_Glagolitic = 38, - SCX_Gothic = 39, - SCX_Grantha = 40, - SCX_Greek = 41, - SCX_Gujarati = 42, - SCX_Gunjala_Gondi = 43, - SCX_Gurmukhi = 44, - SCX_Han = 45, - SCX_Hanb = 46, - SCX_Hangul = 47, - SCX_Hanifi_Rohingya = 48, - SCX_Hanunoo = 49, - SCX_Hatran = 50, - SCX_Hebrew = 51, - SCX_Hiragana = 52, - SCX_Imperial_Aramaic = 53, - SCX_Inherited = 54, - SCX_Inscriptional_Pahlavi = 55, - SCX_Inscriptional_Parthian = 56, - SCX_Javanese = 57, - SCX_Jpan = 58, - SCX_Kaithi = 59, - SCX_Kannada = 60, - SCX_Katakana = 61, - SCX_Kayah_Li = 62, - SCX_Kharoshthi = 63, - SCX_Khmer = 64, - SCX_Khojki = 65, - SCX_Khudawadi = 66, - SCX_Kore = 67, - SCX_Lao = 68, - SCX_Latin = 69, - SCX_Lepcha = 70, - SCX_Limbu = 71, - SCX_Linear_A = 72, - SCX_Linear_B = 73, - SCX_Lisu = 74, - SCX_Lycian = 75, - SCX_Lydian = 76, - SCX_Mahajani = 77, - SCX_Makasar = 78, - SCX_Malayalam = 79, - SCX_Mandaic = 80, - SCX_Manichaean = 81, - SCX_Marchen = 82, - SCX_Masaram_Gondi = 83, - SCX_Medefaidrin = 84, - SCX_Meetei_Mayek = 85, - SCX_Mende_Kikakui = 86, - SCX_Meroitic_Cursive = 87, - SCX_Meroitic_Hieroglyphs = 88, - SCX_Miao = 89, - SCX_Modi = 90, - SCX_Mongolian = 91, - SCX_Mro = 92, - SCX_Multani = 93, - SCX_Myanmar = 94, - SCX_Nabataean = 95, - SCX_Nandinagari = 96, - SCX_New_Tai_Lue = 97, - SCX_Newa = 98, - SCX_Nko = 99, - SCX_Nushu = 100, - SCX_Nyiakeng_Puachue_Hmong = 101, - SCX_Ogham = 102, - SCX_Ol_Chiki = 103, - SCX_Old_Hungarian = 104, - SCX_Old_Italic = 105, - SCX_Old_North_Arabian = 106, - SCX_Old_Permic = 107, - SCX_Old_Persian = 108, - SCX_Old_Sogdian = 109, - SCX_Old_South_Arabian = 110, - SCX_Old_Turkic = 111, - SCX_Oriya = 112, - SCX_Osage = 113, - SCX_Osmanya = 114, - SCX_Pahawh_Hmong = 115, - SCX_Palmyrene = 116, - SCX_Pau_Cin_Hau = 117, - SCX_Phags_Pa = 118, - SCX_Phoenician = 119, - SCX_Psalter_Pahlavi = 120, - SCX_Rejang = 121, - SCX_Runic = 122, - SCX_Samaritan = 123, - SCX_Saurashtra = 124, - SCX_Sharada = 125, - SCX_Shavian = 126, - SCX_Siddham = 127, - SCX_SignWriting = 128, - SCX_Sinhala = 129, - SCX_Sogdian = 130, - SCX_Sora_Sompeng = 131, - SCX_Soyombo = 132, - SCX_Sundanese = 133, - SCX_Syloti_Nagri = 134, - SCX_Syriac = 135, - SCX_Tagalog = 136, - SCX_Tagbanwa = 137, - SCX_Tai_Le = 138, - SCX_Tai_Tham = 139, - SCX_Tai_Viet = 140, - SCX_Takri = 141, - SCX_Tamil = 142, - SCX_Tangut = 143, - SCX_Telugu = 144, - SCX_Thaana = 145, - SCX_Thai = 146, - SCX_Tibetan = 147, - SCX_Tifinagh = 148, - SCX_Tirhuta = 149, - SCX_Ugaritic = 150, - SCX_Vai = 151, - SCX_Wancho = 152, - SCX_Warang_Citi = 153, - SCX_Yi = 154, - SCX_Zanabazar_Square = 155, - SCX_INVALID = 156, + SCX_Chorasmian = 24, + SCX_Common = 25, + SCX_Coptic = 26, + SCX_Cuneiform = 27, + SCX_Cypriot = 28, + SCX_Cyrillic = 29, + SCX_Deseret = 30, + SCX_Devanagari = 31, + SCX_Dives_Akuru = 32, + SCX_Dogra = 33, + SCX_Duployan = 34, + SCX_Egyptian_Hieroglyphs = 35, + SCX_Elbasan = 36, + SCX_Elymaic = 37, + SCX_Ethiopic = 38, + SCX_Georgian = 39, + SCX_Glagolitic = 40, + SCX_Gothic = 41, + SCX_Grantha = 42, + SCX_Greek = 43, + SCX_Gujarati = 44, + SCX_Gunjala_Gondi = 45, + SCX_Gurmukhi = 46, + SCX_Han = 47, + SCX_Hanb = 48, + SCX_Hangul = 49, + SCX_Hanifi_Rohingya = 50, + SCX_Hanunoo = 51, + SCX_Hatran = 52, + SCX_Hebrew = 53, + SCX_Hiragana = 54, + SCX_Imperial_Aramaic = 55, + SCX_Inherited = 56, + SCX_Inscriptional_Pahlavi = 57, + SCX_Inscriptional_Parthian = 58, + SCX_INVALID = 59, + SCX_Javanese = 60, + SCX_Jpan = 61, + SCX_Kaithi = 62, + SCX_Kannada = 63, + SCX_Katakana = 64, + SCX_Kayah_Li = 65, + SCX_Kharoshthi = 66, + SCX_Khitan_Small_Script = 67, + SCX_Khmer = 68, + SCX_Khojki = 69, + SCX_Khudawadi = 70, + SCX_Kore = 71, + SCX_Lao = 72, + SCX_Latin = 73, + SCX_Lepcha = 74, + SCX_Limbu = 75, + SCX_Linear_A = 76, + SCX_Linear_B = 77, + SCX_Lisu = 78, + SCX_Lycian = 79, + SCX_Lydian = 80, + SCX_Mahajani = 81, + SCX_Makasar = 82, + SCX_Malayalam = 83, + SCX_Mandaic = 84, + SCX_Manichaean = 85, + SCX_Marchen = 86, + SCX_Masaram_Gondi = 87, + SCX_Medefaidrin = 88, + SCX_Meetei_Mayek = 89, + SCX_Mende_Kikakui = 90, + SCX_Meroitic_Cursive = 91, + SCX_Meroitic_Hieroglyphs = 92, + SCX_Miao = 93, + SCX_Modi = 94, + SCX_Mongolian = 95, + SCX_Mro = 96, + SCX_Multani = 97, + SCX_Myanmar = 98, + SCX_Nabataean = 99, + SCX_Nandinagari = 100, + SCX_New_Tai_Lue = 101, + SCX_Newa = 102, + SCX_Nko = 103, + SCX_Nushu = 104, + SCX_Nyiakeng_Puachue_Hmong = 105, + SCX_Ogham = 106, + SCX_Ol_Chiki = 107, + SCX_Old_Hungarian = 108, + SCX_Old_Italic = 109, + SCX_Old_North_Arabian = 110, + SCX_Old_Permic = 111, + SCX_Old_Persian = 112, + SCX_Old_Sogdian = 113, + SCX_Old_South_Arabian = 114, + SCX_Old_Turkic = 115, + SCX_Oriya = 116, + SCX_Osage = 117, + SCX_Osmanya = 118, + SCX_Pahawh_Hmong = 119, + SCX_Palmyrene = 120, + SCX_Pau_Cin_Hau = 121, + SCX_Phags_Pa = 122, + SCX_Phoenician = 123, + SCX_Psalter_Pahlavi = 124, + SCX_Rejang = 125, + SCX_Runic = 126, + SCX_Samaritan = 127, + SCX_Saurashtra = 128, + SCX_Sharada = 129, + SCX_Shavian = 130, + SCX_Siddham = 131, + SCX_SignWriting = 132, + SCX_Sinhala = 133, + SCX_Sogdian = 134, + SCX_Sora_Sompeng = 135, + SCX_Soyombo = 136, + SCX_Sundanese = 137, + SCX_Syloti_Nagri = 138, + SCX_Syriac = 139, + SCX_Tagalog = 140, + SCX_Tagbanwa = 141, + SCX_Tai_Le = 142, + SCX_Tai_Tham = 143, + SCX_Tai_Viet = 144, + SCX_Takri = 145, + SCX_Tamil = 146, + SCX_Tangut = 147, + SCX_Telugu = 148, + SCX_Thaana = 149, + SCX_Thai = 150, + SCX_Tibetan = 151, + SCX_Tifinagh = 152, + SCX_Tirhuta = 153, + SCX_Ugaritic = 154, + SCX_Vai = 155, + SCX_Wancho = 156, + SCX_Warang_Citi = 157, + SCX_Yezidi = 158, + SCX_Yi = 159, + SCX_Zanabazar_Square = 160, SCX_use_AUX_TABLE_1 = -1, SCX_use_AUX_TABLE_2 = -2, SCX_use_AUX_TABLE_3 = -3, @@ -73370,7 +74171,9 @@ typedef enum { SCX_use_AUX_TABLE_50 = -50, SCX_use_AUX_TABLE_51 = -51, SCX_use_AUX_TABLE_52 = -52, - SCX_use_AUX_TABLE_53 = -53 + SCX_use_AUX_TABLE_53 = -53, + SCX_use_AUX_TABLE_54 = -54, + SCX_use_AUX_TABLE_55 = -55 } SCX_enum; # endif /* ASCII/Latin1 */ @@ -73402,24 +74205,20 @@ static const SCX_enum SCX_AUX_TABLE_4[] = { }; static const SCX_enum SCX_AUX_TABLE_5[] = { - SCX_Armenian, - SCX_Georgian -}; - -static const SCX_enum SCX_AUX_TABLE_6[] = { SCX_Arabic, SCX_Hanifi_Rohingya, SCX_Syriac, - SCX_Thaana + SCX_Thaana, + SCX_Yezidi }; -static const SCX_enum SCX_AUX_TABLE_7[] = { +static const SCX_enum SCX_AUX_TABLE_6[] = { SCX_Arabic, SCX_Syriac, SCX_Thaana }; -static const SCX_enum SCX_AUX_TABLE_8[] = { +static const SCX_enum SCX_AUX_TABLE_7[] = { SCX_Adlam, SCX_Arabic, SCX_Hanifi_Rohingya, @@ -73430,22 +74229,23 @@ static const SCX_enum SCX_AUX_TABLE_8[] = { SCX_Syriac }; -static const SCX_enum SCX_AUX_TABLE_9[] = { +static const SCX_enum SCX_AUX_TABLE_8[] = { SCX_Arabic, SCX_Syriac }; -static const SCX_enum SCX_AUX_TABLE_10[] = { +static const SCX_enum SCX_AUX_TABLE_9[] = { SCX_Arabic, - SCX_Thaana + SCX_Thaana, + SCX_Yezidi }; -static const SCX_enum SCX_AUX_TABLE_11[] = { +static const SCX_enum SCX_AUX_TABLE_10[] = { SCX_Arabic, SCX_Hanifi_Rohingya }; -static const SCX_enum SCX_AUX_TABLE_12[] = { +static const SCX_enum SCX_AUX_TABLE_11[] = { SCX_Bengali, SCX_Devanagari, SCX_Grantha, @@ -73461,7 +74261,7 @@ static const SCX_enum SCX_AUX_TABLE_12[] = { SCX_Tirhuta }; -static const SCX_enum SCX_AUX_TABLE_13[] = { +static const SCX_enum SCX_AUX_TABLE_12[] = { SCX_Bengali, SCX_Devanagari, SCX_Grantha, @@ -73476,7 +74276,7 @@ static const SCX_enum SCX_AUX_TABLE_13[] = { SCX_Tirhuta }; -static const SCX_enum SCX_AUX_TABLE_14[] = { +static const SCX_enum SCX_AUX_TABLE_13[] = { SCX_Bengali, SCX_Devanagari, SCX_Dogra, @@ -73499,7 +74299,7 @@ static const SCX_enum SCX_AUX_TABLE_14[] = { SCX_Tirhuta }; -static const SCX_enum SCX_AUX_TABLE_15[] = { +static const SCX_enum SCX_AUX_TABLE_14[] = { SCX_Bengali, SCX_Devanagari, SCX_Dogra, @@ -73523,90 +74323,90 @@ static const SCX_enum SCX_AUX_TABLE_15[] = { SCX_Tirhuta }; -static const SCX_enum SCX_AUX_TABLE_16[] = { +static const SCX_enum SCX_AUX_TABLE_15[] = { SCX_Devanagari, SCX_Dogra, SCX_Kaithi, SCX_Mahajani }; -static const SCX_enum SCX_AUX_TABLE_17[] = { +static const SCX_enum SCX_AUX_TABLE_16[] = { SCX_Bengali, SCX_Chakma, SCX_Syloti_Nagri }; -static const SCX_enum SCX_AUX_TABLE_18[] = { +static const SCX_enum SCX_AUX_TABLE_17[] = { SCX_Gurmukhi, SCX_Multani }; -static const SCX_enum SCX_AUX_TABLE_19[] = { +static const SCX_enum SCX_AUX_TABLE_18[] = { SCX_Gujarati, SCX_Khojki }; -static const SCX_enum SCX_AUX_TABLE_20[] = { +static const SCX_enum SCX_AUX_TABLE_19[] = { SCX_Grantha, SCX_Tamil }; -static const SCX_enum SCX_AUX_TABLE_21[] = { +static const SCX_enum SCX_AUX_TABLE_20[] = { SCX_Kannada, SCX_Nandinagari }; -static const SCX_enum SCX_AUX_TABLE_22[] = { +static const SCX_enum SCX_AUX_TABLE_21[] = { SCX_Chakma, SCX_Myanmar, SCX_Tai_Le }; -static const SCX_enum SCX_AUX_TABLE_23[] = { +static const SCX_enum SCX_AUX_TABLE_22[] = { SCX_Georgian, SCX_Latin }; -static const SCX_enum SCX_AUX_TABLE_24[] = { +static const SCX_enum SCX_AUX_TABLE_23[] = { SCX_Hangul, SCX_Kore }; -static const SCX_enum SCX_AUX_TABLE_25[] = { +static const SCX_enum SCX_AUX_TABLE_24[] = { SCX_Buhid, SCX_Hanunoo, SCX_Tagalog, SCX_Tagbanwa }; -static const SCX_enum SCX_AUX_TABLE_26[] = { +static const SCX_enum SCX_AUX_TABLE_25[] = { SCX_Mongolian, SCX_Phags_Pa }; -static const SCX_enum SCX_AUX_TABLE_27[] = { +static const SCX_enum SCX_AUX_TABLE_26[] = { SCX_Bengali, SCX_Devanagari, SCX_Grantha, SCX_Kannada }; -static const SCX_enum SCX_AUX_TABLE_28[] = { +static const SCX_enum SCX_AUX_TABLE_27[] = { SCX_Devanagari, SCX_Grantha }; -static const SCX_enum SCX_AUX_TABLE_29[] = { +static const SCX_enum SCX_AUX_TABLE_28[] = { SCX_Bengali, SCX_Devanagari }; -static const SCX_enum SCX_AUX_TABLE_30[] = { +static const SCX_enum SCX_AUX_TABLE_29[] = { SCX_Devanagari, SCX_Sharada }; -static const SCX_enum SCX_AUX_TABLE_31[] = { +static const SCX_enum SCX_AUX_TABLE_30[] = { SCX_Devanagari, SCX_Kannada, SCX_Malayalam, @@ -73615,12 +74415,12 @@ static const SCX_enum SCX_AUX_TABLE_31[] = { SCX_Telugu }; -static const SCX_enum SCX_AUX_TABLE_32[] = { +static const SCX_enum SCX_AUX_TABLE_31[] = { SCX_Devanagari, SCX_Nandinagari }; -static const SCX_enum SCX_AUX_TABLE_33[] = { +static const SCX_enum SCX_AUX_TABLE_32[] = { SCX_Bengali, SCX_Devanagari, SCX_Grantha, @@ -73631,12 +74431,17 @@ static const SCX_enum SCX_AUX_TABLE_33[] = { SCX_Tirhuta }; -static const SCX_enum SCX_AUX_TABLE_34[] = { +static const SCX_enum SCX_AUX_TABLE_33[] = { SCX_Devanagari, SCX_Grantha, SCX_Kannada }; +static const SCX_enum SCX_AUX_TABLE_34[] = { + SCX_Cyrillic, + SCX_Syriac +}; + static const SCX_enum SCX_AUX_TABLE_35[] = { SCX_Latin, SCX_Mongolian @@ -73712,6 +74517,14 @@ static const SCX_enum SCX_AUX_TABLE_44[] = { }; static const SCX_enum SCX_AUX_TABLE_45[] = { + SCX_Han, + SCX_Hanb, + SCX_Jpan, + SCX_Kore, + SCX_Latin +}; + +static const SCX_enum SCX_AUX_TABLE_46[] = { SCX_Devanagari, SCX_Dogra, SCX_Gujarati, @@ -73728,7 +74541,7 @@ static const SCX_enum SCX_AUX_TABLE_45[] = { SCX_Tirhuta }; -static const SCX_enum SCX_AUX_TABLE_46[] = { +static const SCX_enum SCX_AUX_TABLE_47[] = { SCX_Devanagari, SCX_Dogra, SCX_Gujarati, @@ -73744,7 +74557,7 @@ static const SCX_enum SCX_AUX_TABLE_46[] = { SCX_Tirhuta }; -static const SCX_enum SCX_AUX_TABLE_47[] = { +static const SCX_enum SCX_AUX_TABLE_48[] = { SCX_Devanagari, SCX_Dogra, SCX_Gujarati, @@ -73758,34 +74571,39 @@ static const SCX_enum SCX_AUX_TABLE_47[] = { SCX_Tirhuta }; -static const SCX_enum SCX_AUX_TABLE_48[] = { +static const SCX_enum SCX_AUX_TABLE_49[] = { SCX_Devanagari, SCX_Tamil }; -static const SCX_enum SCX_AUX_TABLE_49[] = { +static const SCX_enum SCX_AUX_TABLE_50[] = { SCX_Kayah_Li, SCX_Latin, SCX_Myanmar }; -static const SCX_enum SCX_AUX_TABLE_50[] = { +static const SCX_enum SCX_AUX_TABLE_51[] = { SCX_Buginese, SCX_Javanese }; -static const SCX_enum SCX_AUX_TABLE_51[] = { +static const SCX_enum SCX_AUX_TABLE_52[] = { + SCX_Arabic, + SCX_Thaana +}; + +static const SCX_enum SCX_AUX_TABLE_53[] = { SCX_Cypriot, SCX_Linear_B }; -static const SCX_enum SCX_AUX_TABLE_52[] = { +static const SCX_enum SCX_AUX_TABLE_54[] = { SCX_Cypriot, SCX_Linear_A, SCX_Linear_B }; -static const SCX_enum SCX_AUX_TABLE_53[] = { +static const SCX_enum SCX_AUX_TABLE_55[] = { SCX_Arabic, SCX_Coptic }; @@ -73844,7 +74662,9 @@ static const SCX_enum * const SCX_AUX_TABLE_ptrs[] = { SCX_AUX_TABLE_50, SCX_AUX_TABLE_51, SCX_AUX_TABLE_52, - SCX_AUX_TABLE_53 + SCX_AUX_TABLE_53, + SCX_AUX_TABLE_54, + SCX_AUX_TABLE_55 }; /* Parallel table to the above, giving the number of elements in each table @@ -73856,36 +74676,36 @@ static const U8 SCX_AUX_TABLE_lengths[] = { 2 /* SCX_AUX_TABLE_2 */, 2 /* SCX_AUX_TABLE_3 */, 2 /* SCX_AUX_TABLE_4 */, - 2 /* SCX_AUX_TABLE_5 */, - 4 /* SCX_AUX_TABLE_6 */, - 3 /* SCX_AUX_TABLE_7 */, - 8 /* SCX_AUX_TABLE_8 */, - 2 /* SCX_AUX_TABLE_9 */, + 5 /* SCX_AUX_TABLE_5 */, + 3 /* SCX_AUX_TABLE_6 */, + 8 /* SCX_AUX_TABLE_7 */, + 2 /* SCX_AUX_TABLE_8 */, + 3 /* SCX_AUX_TABLE_9 */, 2 /* SCX_AUX_TABLE_10 */, - 2 /* SCX_AUX_TABLE_11 */, - 13 /* SCX_AUX_TABLE_12 */, - 12 /* SCX_AUX_TABLE_13 */, - 20 /* SCX_AUX_TABLE_14 */, - 21 /* SCX_AUX_TABLE_15 */, - 4 /* SCX_AUX_TABLE_16 */, - 3 /* SCX_AUX_TABLE_17 */, + 13 /* SCX_AUX_TABLE_11 */, + 12 /* SCX_AUX_TABLE_12 */, + 20 /* SCX_AUX_TABLE_13 */, + 21 /* SCX_AUX_TABLE_14 */, + 4 /* SCX_AUX_TABLE_15 */, + 3 /* SCX_AUX_TABLE_16 */, + 2 /* SCX_AUX_TABLE_17 */, 2 /* SCX_AUX_TABLE_18 */, 2 /* SCX_AUX_TABLE_19 */, 2 /* SCX_AUX_TABLE_20 */, - 2 /* SCX_AUX_TABLE_21 */, - 3 /* SCX_AUX_TABLE_22 */, + 3 /* SCX_AUX_TABLE_21 */, + 2 /* SCX_AUX_TABLE_22 */, 2 /* SCX_AUX_TABLE_23 */, - 2 /* SCX_AUX_TABLE_24 */, - 4 /* SCX_AUX_TABLE_25 */, - 2 /* SCX_AUX_TABLE_26 */, - 4 /* SCX_AUX_TABLE_27 */, + 4 /* SCX_AUX_TABLE_24 */, + 2 /* SCX_AUX_TABLE_25 */, + 4 /* SCX_AUX_TABLE_26 */, + 2 /* SCX_AUX_TABLE_27 */, 2 /* SCX_AUX_TABLE_28 */, 2 /* SCX_AUX_TABLE_29 */, - 2 /* SCX_AUX_TABLE_30 */, - 6 /* SCX_AUX_TABLE_31 */, - 2 /* SCX_AUX_TABLE_32 */, - 8 /* SCX_AUX_TABLE_33 */, - 3 /* SCX_AUX_TABLE_34 */, + 6 /* SCX_AUX_TABLE_30 */, + 2 /* SCX_AUX_TABLE_31 */, + 8 /* SCX_AUX_TABLE_32 */, + 3 /* SCX_AUX_TABLE_33 */, + 2 /* SCX_AUX_TABLE_34 */, 2 /* SCX_AUX_TABLE_35 */, 3 /* SCX_AUX_TABLE_36 */, 4 /* SCX_AUX_TABLE_37 */, @@ -73896,15 +74716,17 @@ static const U8 SCX_AUX_TABLE_lengths[] = { 6 /* SCX_AUX_TABLE_42 */, 2 /* SCX_AUX_TABLE_43 */, 2 /* SCX_AUX_TABLE_44 */, - 14 /* SCX_AUX_TABLE_45 */, - 13 /* SCX_AUX_TABLE_46 */, - 11 /* SCX_AUX_TABLE_47 */, - 2 /* SCX_AUX_TABLE_48 */, - 3 /* SCX_AUX_TABLE_49 */, - 2 /* SCX_AUX_TABLE_50 */, + 5 /* SCX_AUX_TABLE_45 */, + 14 /* SCX_AUX_TABLE_46 */, + 13 /* SCX_AUX_TABLE_47 */, + 11 /* SCX_AUX_TABLE_48 */, + 2 /* SCX_AUX_TABLE_49 */, + 3 /* SCX_AUX_TABLE_50 */, 2 /* SCX_AUX_TABLE_51 */, - 3 /* SCX_AUX_TABLE_52 */, - 2 /* SCX_AUX_TABLE_53 */ + 2 /* SCX_AUX_TABLE_52 */, + 2 /* SCX_AUX_TABLE_53 */, + 3 /* SCX_AUX_TABLE_54 */, + 2 /* SCX_AUX_TABLE_55 */ }; /* This table, indexed by the script enum, gives the zero code point for that @@ -73936,6 +74758,7 @@ static const UV script_zeros[] = { 0, /* Chakma */ 0xaa50, /* Cham */ '0', /* Cherokee */ + '0', /* Chorasmian */ 0, /* Common */ '0', /* Coptic */ '0', /* Cuneiform */ @@ -73943,6 +74766,7 @@ static const UV script_zeros[] = { '0', /* Cyrillic */ '0', /* Deseret */ 0x966, /* Devanagari */ + 0x11950, /* Dives_Akuru */ 0x966, /* Dogra */ '0', /* Duployan */ '0', /* Egyptian_Hieroglyphs */ @@ -73969,6 +74793,7 @@ static const UV script_zeros[] = { 0, /* Inherited */ '0', /* Inscriptional_Pahlavi */ '0', /* Inscriptional_Parthian */ + '0', /* INVALID */ 0xa9d0, /* Javanese */ '0', /* Jpan */ 0x966, /* Kaithi */ @@ -73976,6 +74801,7 @@ static const UV script_zeros[] = { '0', /* Katakana */ 0xa900, /* Kayah_Li */ '0', /* Kharoshthi */ + '0', /* Khitan_Small_Script */ 0x17e0, /* Khmer */ 0xae6, /* Khojki */ 0x112f0, /* Khudawadi */ @@ -74065,7 +74891,8 @@ static const UV script_zeros[] = { '0', /* Ugaritic */ 0xa620, /* Vai */ 0x1e2f0, /* Wancho */ - 0x118e0 /* Warang_Citi */ + 0x118e0, /* Warang_Citi */ + 0x660 /* Yezidi */ }; static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */ @@ -74125,8 +74952,6 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */ SCX_Armenian, SCX_Unknown, SCX_Armenian, - SCX_use_AUX_TABLE_5, - SCX_Armenian, SCX_Unknown, SCX_Armenian, SCX_Unknown, @@ -74139,23 +74964,23 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */ SCX_Arabic, SCX_Common, SCX_Arabic, - SCX_use_AUX_TABLE_6, + SCX_use_AUX_TABLE_5, SCX_Arabic, + SCX_use_AUX_TABLE_5, SCX_use_AUX_TABLE_6, - SCX_use_AUX_TABLE_7, SCX_Unknown, SCX_Arabic, - SCX_use_AUX_TABLE_6, + SCX_use_AUX_TABLE_5, + SCX_Arabic, + SCX_use_AUX_TABLE_7, SCX_Arabic, SCX_use_AUX_TABLE_8, SCX_Arabic, SCX_use_AUX_TABLE_9, SCX_Arabic, - SCX_use_AUX_TABLE_10, - SCX_Arabic, - SCX_use_AUX_TABLE_9, + SCX_use_AUX_TABLE_8, SCX_Arabic, - SCX_use_AUX_TABLE_11, + SCX_use_AUX_TABLE_10, SCX_Arabic, SCX_Common, SCX_Arabic, @@ -74188,13 +75013,13 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */ SCX_Common, SCX_Arabic, SCX_Devanagari, + SCX_use_AUX_TABLE_11, SCX_use_AUX_TABLE_12, - SCX_use_AUX_TABLE_13, SCX_Inherited, SCX_Devanagari, + SCX_use_AUX_TABLE_13, SCX_use_AUX_TABLE_14, SCX_use_AUX_TABLE_15, - SCX_use_AUX_TABLE_16, SCX_Devanagari, SCX_Bengali, SCX_Unknown, @@ -74222,7 +75047,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */ SCX_Unknown, SCX_Bengali, SCX_Unknown, - SCX_use_AUX_TABLE_17, + SCX_use_AUX_TABLE_16, SCX_Bengali, SCX_Unknown, SCX_Gurmukhi, @@ -74255,7 +75080,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */ SCX_Unknown, SCX_Gurmukhi, SCX_Unknown, - SCX_use_AUX_TABLE_18, + SCX_use_AUX_TABLE_17, SCX_Gurmukhi, SCX_Unknown, SCX_Gujarati, @@ -74282,7 +75107,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */ SCX_Unknown, SCX_Gujarati, SCX_Unknown, - SCX_use_AUX_TABLE_19, + SCX_use_AUX_TABLE_18, SCX_Gujarati, SCX_Unknown, SCX_Gujarati, @@ -74345,7 +75170,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */ SCX_Unknown, SCX_Tamil, SCX_Unknown, - SCX_use_AUX_TABLE_20, + SCX_use_AUX_TABLE_19, SCX_Tamil, SCX_Unknown, SCX_Telugu, @@ -74393,7 +75218,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */ SCX_Unknown, SCX_Kannada, SCX_Unknown, - SCX_use_AUX_TABLE_21, + SCX_use_AUX_TABLE_20, SCX_Unknown, SCX_Kannada, SCX_Unknown, @@ -74411,8 +75236,6 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */ SCX_Unknown, SCX_Malayalam, SCX_Unknown, - SCX_Malayalam, - SCX_Unknown, SCX_Sinhala, SCX_Unknown, SCX_Sinhala, @@ -74479,7 +75302,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */ SCX_Tibetan, SCX_Unknown, SCX_Myanmar, - SCX_use_AUX_TABLE_22, + SCX_use_AUX_TABLE_21, SCX_Myanmar, SCX_Georgian, SCX_Unknown, @@ -74488,9 +75311,9 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */ SCX_Georgian, SCX_Unknown, SCX_Georgian, - SCX_use_AUX_TABLE_23, + SCX_use_AUX_TABLE_22, SCX_Georgian, - SCX_use_AUX_TABLE_24, + SCX_use_AUX_TABLE_23, SCX_Ethiopic, SCX_Unknown, SCX_Ethiopic, @@ -74543,7 +75366,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */ SCX_Tagalog, SCX_Unknown, SCX_Hanunoo, - SCX_use_AUX_TABLE_25, + SCX_use_AUX_TABLE_24, SCX_Unknown, SCX_Buhid, SCX_Unknown, @@ -74560,9 +75383,9 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */ SCX_Khmer, SCX_Unknown, SCX_Mongolian, - SCX_use_AUX_TABLE_26, + SCX_use_AUX_TABLE_25, SCX_Mongolian, - SCX_use_AUX_TABLE_26, + SCX_use_AUX_TABLE_25, SCX_Mongolian, SCX_Unknown, SCX_Mongolian, @@ -74630,33 +75453,33 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */ SCX_Georgian, SCX_Sundanese, SCX_Unknown, - SCX_use_AUX_TABLE_27, + SCX_use_AUX_TABLE_26, SCX_Devanagari, + SCX_use_AUX_TABLE_26, SCX_use_AUX_TABLE_27, - SCX_use_AUX_TABLE_28, SCX_Devanagari, + SCX_use_AUX_TABLE_28, SCX_use_AUX_TABLE_29, - SCX_use_AUX_TABLE_30, + SCX_use_AUX_TABLE_28, SCX_use_AUX_TABLE_29, SCX_use_AUX_TABLE_30, - SCX_use_AUX_TABLE_31, - SCX_Devanagari, - SCX_use_AUX_TABLE_30, SCX_Devanagari, - SCX_use_AUX_TABLE_30, SCX_use_AUX_TABLE_29, SCX_Devanagari, - SCX_use_AUX_TABLE_32, SCX_use_AUX_TABLE_29, + SCX_use_AUX_TABLE_28, SCX_Devanagari, - SCX_use_AUX_TABLE_29, + SCX_use_AUX_TABLE_31, + SCX_use_AUX_TABLE_28, SCX_Devanagari, + SCX_use_AUX_TABLE_28, + SCX_Devanagari, + SCX_use_AUX_TABLE_32, + SCX_use_AUX_TABLE_27, SCX_use_AUX_TABLE_33, SCX_use_AUX_TABLE_28, - SCX_use_AUX_TABLE_34, - SCX_use_AUX_TABLE_29, SCX_Bengali, - SCX_use_AUX_TABLE_28, + SCX_use_AUX_TABLE_27, SCX_Nandinagari, SCX_Unknown, SCX_Latin, @@ -74671,6 +75494,8 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */ SCX_Latin, SCX_Greek, SCX_Inherited, + SCX_use_AUX_TABLE_34, + SCX_Inherited, SCX_Unknown, SCX_Inherited, SCX_Latin, @@ -74812,7 +75637,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */ SCX_Common, SCX_use_AUX_TABLE_37, SCX_use_AUX_TABLE_40, - SCX_use_AUX_TABLE_24, + SCX_use_AUX_TABLE_23, SCX_use_AUX_TABLE_39, SCX_use_AUX_TABLE_41, SCX_Common, @@ -74833,19 +75658,18 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */ SCX_Unknown, SCX_use_AUX_TABLE_1, SCX_Unknown, - SCX_use_AUX_TABLE_24, + SCX_use_AUX_TABLE_23, SCX_Unknown, SCX_use_AUX_TABLE_37, SCX_use_AUX_TABLE_1, - SCX_Unknown, SCX_use_AUX_TABLE_37, SCX_Unknown, SCX_use_AUX_TABLE_44, - SCX_use_AUX_TABLE_24, + SCX_use_AUX_TABLE_23, SCX_Unknown, SCX_use_AUX_TABLE_37, SCX_Common, - SCX_use_AUX_TABLE_24, + SCX_use_AUX_TABLE_23, SCX_Common, SCX_use_AUX_TABLE_37, SCX_Common, @@ -74861,7 +75685,6 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */ SCX_use_AUX_TABLE_37, SCX_Common, SCX_use_AUX_TABLE_37, - SCX_Unknown, SCX_Common, SCX_use_AUX_TABLE_37, SCX_Unknown, @@ -74877,6 +75700,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */ SCX_Cyrillic, SCX_Bamum, SCX_Unknown, + SCX_use_AUX_TABLE_45, SCX_Common, SCX_Latin, SCX_Common, @@ -74887,9 +75711,9 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */ SCX_Latin, SCX_Syloti_Nagri, SCX_Unknown, - SCX_use_AUX_TABLE_45, SCX_use_AUX_TABLE_46, SCX_use_AUX_TABLE_47, + SCX_use_AUX_TABLE_48, SCX_Unknown, SCX_Phags_Pa, SCX_Unknown, @@ -74898,21 +75722,21 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */ SCX_Saurashtra, SCX_Unknown, SCX_Devanagari, - SCX_use_AUX_TABLE_29, + SCX_use_AUX_TABLE_28, SCX_Devanagari, - SCX_use_AUX_TABLE_48, + SCX_use_AUX_TABLE_49, SCX_Devanagari, SCX_Kayah_Li, - SCX_use_AUX_TABLE_49, + SCX_use_AUX_TABLE_50, SCX_Kayah_Li, SCX_Rejang, SCX_Unknown, SCX_Rejang, - SCX_use_AUX_TABLE_24, + SCX_use_AUX_TABLE_23, SCX_Unknown, SCX_Javanese, SCX_Unknown, - SCX_use_AUX_TABLE_50, + SCX_use_AUX_TABLE_51, SCX_Javanese, SCX_Unknown, SCX_Javanese, @@ -74946,17 +75770,18 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */ SCX_Latin, SCX_Greek, SCX_Latin, + SCX_Common, SCX_Unknown, SCX_Cherokee, SCX_Meetei_Mayek, SCX_Unknown, SCX_Meetei_Mayek, SCX_Unknown, - SCX_use_AUX_TABLE_24, + SCX_use_AUX_TABLE_23, SCX_Unknown, - SCX_use_AUX_TABLE_24, + SCX_use_AUX_TABLE_23, SCX_Unknown, - SCX_use_AUX_TABLE_24, + SCX_use_AUX_TABLE_23, SCX_Unknown, SCX_use_AUX_TABLE_37, SCX_Unknown, @@ -74987,9 +75812,9 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */ SCX_Arabic, SCX_Unknown, SCX_Arabic, - SCX_use_AUX_TABLE_10, + SCX_use_AUX_TABLE_52, SCX_Arabic, - SCX_use_AUX_TABLE_10, + SCX_use_AUX_TABLE_52, SCX_Unknown, SCX_Inherited, SCX_Common, @@ -75020,15 +75845,15 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */ SCX_use_AUX_TABLE_41, SCX_use_AUX_TABLE_44, SCX_use_AUX_TABLE_41, - SCX_use_AUX_TABLE_24, + SCX_use_AUX_TABLE_23, SCX_Unknown, - SCX_use_AUX_TABLE_24, + SCX_use_AUX_TABLE_23, SCX_Unknown, - SCX_use_AUX_TABLE_24, + SCX_use_AUX_TABLE_23, SCX_Unknown, - SCX_use_AUX_TABLE_24, + SCX_use_AUX_TABLE_23, SCX_Unknown, - SCX_use_AUX_TABLE_24, + SCX_use_AUX_TABLE_23, SCX_Unknown, SCX_Common, SCX_Unknown, @@ -75050,11 +75875,11 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */ SCX_Unknown, SCX_Linear_B, SCX_Unknown, - SCX_use_AUX_TABLE_51, + SCX_use_AUX_TABLE_53, SCX_Unknown, - SCX_use_AUX_TABLE_52, + SCX_use_AUX_TABLE_54, SCX_Unknown, - SCX_use_AUX_TABLE_51, + SCX_use_AUX_TABLE_53, SCX_Greek, SCX_Unknown, SCX_Common, @@ -75068,7 +75893,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */ SCX_Unknown, SCX_Carian, SCX_Unknown, - SCX_use_AUX_TABLE_53, + SCX_use_AUX_TABLE_55, SCX_Unknown, SCX_Old_Italic, SCX_Unknown, @@ -75194,10 +76019,18 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */ SCX_Unknown, SCX_Arabic, SCX_Unknown, + SCX_Yezidi, + SCX_Unknown, + SCX_Yezidi, + SCX_Unknown, + SCX_Yezidi, + SCX_Unknown, SCX_Old_Sogdian, SCX_Unknown, SCX_Sogdian, SCX_Unknown, + SCX_Chorasmian, + SCX_Unknown, SCX_Elymaic, SCX_Unknown, SCX_Brahmi, @@ -75221,8 +76054,6 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */ SCX_Unknown, SCX_Sharada, SCX_Unknown, - SCX_Sharada, - SCX_Unknown, SCX_Sinhala, SCX_Unknown, SCX_Khojki, @@ -75244,9 +76075,9 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */ SCX_Khudawadi, SCX_Unknown, SCX_Grantha, - SCX_use_AUX_TABLE_20, + SCX_use_AUX_TABLE_19, SCX_Grantha, - SCX_use_AUX_TABLE_20, + SCX_use_AUX_TABLE_19, SCX_Unknown, SCX_Grantha, SCX_Unknown, @@ -75260,7 +76091,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */ SCX_Unknown, SCX_Grantha, SCX_Unknown, - SCX_use_AUX_TABLE_20, + SCX_use_AUX_TABLE_19, SCX_Grantha, SCX_Unknown, SCX_Grantha, @@ -75281,8 +76112,6 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */ SCX_Unknown, SCX_Newa, SCX_Unknown, - SCX_Newa, - SCX_Unknown, SCX_Tirhuta, SCX_Unknown, SCX_Tirhuta, @@ -75312,6 +76141,21 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */ SCX_Warang_Citi, SCX_Unknown, SCX_Warang_Citi, + SCX_Dives_Akuru, + SCX_Unknown, + SCX_Dives_Akuru, + SCX_Unknown, + SCX_Dives_Akuru, + SCX_Unknown, + SCX_Dives_Akuru, + SCX_Unknown, + SCX_Dives_Akuru, + SCX_Unknown, + SCX_Dives_Akuru, + SCX_Unknown, + SCX_Dives_Akuru, + SCX_Unknown, + SCX_Dives_Akuru, SCX_Unknown, SCX_Nandinagari, SCX_Unknown, @@ -75367,10 +76211,12 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */ SCX_Unknown, SCX_Makasar, SCX_Unknown, + SCX_Lisu, + SCX_Unknown, SCX_Tamil, - SCX_use_AUX_TABLE_20, + SCX_use_AUX_TABLE_19, SCX_Tamil, - SCX_use_AUX_TABLE_20, + SCX_use_AUX_TABLE_19, SCX_Tamil, SCX_Unknown, SCX_Tamil, @@ -75421,10 +76267,16 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */ SCX_Tangut, SCX_Nushu, SCX_Common, + SCX_Khitan_Small_Script, + SCX_Unknown, + SCX_use_AUX_TABLE_37, SCX_Unknown, SCX_Tangut, SCX_Unknown, SCX_Tangut, + SCX_Khitan_Small_Script, + SCX_Unknown, + SCX_Tangut, SCX_Unknown, SCX_use_AUX_TABLE_44, SCX_use_AUX_TABLE_43, @@ -75634,18 +76486,20 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */ SCX_Common, SCX_Unknown, SCX_Common, - SCX_Unknown, + SCX_use_AUX_TABLE_43, SCX_Common, SCX_Unknown, SCX_Common, - SCX_use_AUX_TABLE_43, + SCX_Unknown, SCX_Common, SCX_Unknown, + SCX_use_AUX_TABLE_37, + SCX_Unknown, SCX_Common, SCX_Unknown, SCX_Common, SCX_Unknown, - SCX_use_AUX_TABLE_37, + SCX_Common, SCX_Unknown, SCX_Common, SCX_Unknown, @@ -75707,6 +76561,8 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */ SCX_Unknown, SCX_use_AUX_TABLE_37, SCX_Unknown, + SCX_use_AUX_TABLE_37, + SCX_Unknown, SCX_Common, SCX_Unknown, SCX_Common, @@ -75727,7 +76583,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */ - 1670, /* Number of elements */ + 1699, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -75813,8 +76669,6 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */ 0x531, 0x557, 0x559, - 0x589, - 0x58A, 0x58B, 0x58D, 0x590, @@ -75871,7 +76725,7 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x8E2, 0x8E3, @@ -75995,7 +76849,7 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -76086,8 +76940,6 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */ 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -76101,7 +76953,7 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */ 0xD64, 0xD66, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -76296,7 +77148,7 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */ 0x1AA0, 0x1AAE, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B4C, 0x1B50, @@ -76359,6 +77211,8 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */ 0x1D79, 0x1DBF, 0x1DC2, + 0x1DF8, + 0x1DF9, 0x1DFA, 0x1DFB, 0x1E00, @@ -76436,7 +77290,7 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */ 0x2B74, 0x2B76, 0x2B96, - 0x2B98, + 0x2B97, 0x2C00, 0x2C2F, 0x2C30, @@ -76478,7 +77332,7 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */ 0x2E00, 0x2E43, 0x2E44, - 0x2E50, + 0x2E53, 0x2E80, 0x2E9A, 0x2E9B, @@ -76525,7 +77379,6 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */ 0x318F, 0x3190, 0x31A0, - 0x31BB, 0x31C0, 0x31E4, 0x31F0, @@ -76549,10 +77402,9 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */ 0x33E0, 0x33FF, 0x3400, - 0x4DB6, 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA490, @@ -76566,15 +77418,16 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */ 0xA6A0, 0xA6F8, 0xA700, + 0xA708, 0xA722, 0xA788, 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA800, - 0xA82C, + 0xA82D, 0xA830, 0xA833, 0xA836, @@ -76634,7 +77487,8 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */ 0xAB5C, 0xAB65, 0xAB66, - 0xAB68, + 0xAB6A, + 0xAB6C, 0xAB70, 0xABC0, 0xABEE, @@ -76746,7 +77600,7 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */ 0x10140, 0x1018F, 0x10190, - 0x1019C, + 0x1019D, 0x101A0, 0x101A1, 0x101D0, @@ -76882,10 +77736,18 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */ 0x10D3A, 0x10E60, 0x10E7F, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAE, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F28, 0x10F30, 0x10F5A, + 0x10FB0, + 0x10FCC, 0x10FE0, 0x10FF7, 0x11000, @@ -76904,12 +77766,10 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */ 0x11100, 0x11135, 0x11136, - 0x11147, + 0x11148, 0x11150, 0x11177, 0x11180, - 0x111CE, - 0x111D0, 0x111E0, 0x111E1, 0x111F5, @@ -76966,11 +77826,9 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */ 0x11370, 0x11375, 0x11400, - 0x1145A, - 0x1145B, 0x1145C, 0x1145D, - 0x11460, + 0x11462, 0x11480, 0x114C8, 0x114D0, @@ -77001,6 +77859,21 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */ 0x118F3, 0x118FF, 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11947, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -77055,6 +77928,8 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */ 0x11DAA, 0x11EE0, 0x11EF9, + 0x11FB0, + 0x11FB1, 0x11FC0, 0x11FD0, 0x11FD2, @@ -77110,10 +77985,16 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */ 0x16FE1, 0x16FE2, 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18B00, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B001, 0x1B11F, @@ -77320,11 +78201,7 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */ 0x1F0D1, 0x1F0F6, 0x1F100, - 0x1F10D, - 0x1F110, - 0x1F16D, - 0x1F170, - 0x1F1AD, + 0x1F1AE, 0x1F1E6, 0x1F200, 0x1F201, @@ -77338,11 +78215,11 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */ 0x1F260, 0x1F266, 0x1F300, - 0x1F6D6, + 0x1F6D8, 0x1F6E0, 0x1F6ED, 0x1F6F0, - 0x1F6FB, + 0x1F6FD, 0x1F700, 0x1F774, 0x1F780, @@ -77359,32 +78236,38 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */ 0x1F888, 0x1F890, 0x1F8AE, + 0x1F8B0, + 0x1F8B2, 0x1F900, - 0x1F90C, - 0x1F90D, - 0x1F972, - 0x1F973, - 0x1F977, + 0x1F979, 0x1F97A, - 0x1F9A3, - 0x1F9A5, - 0x1F9AB, - 0x1F9AE, - 0x1F9CB, + 0x1F9CC, 0x1F9CD, 0x1FA54, 0x1FA60, 0x1FA6E, 0x1FA70, - 0x1FA74, + 0x1FA75, 0x1FA78, 0x1FA7B, 0x1FA80, - 0x1FA83, + 0x1FA87, 0x1FA90, - 0x1FA96, + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB, + 0x1FBF0, + 0x1FBFA, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -77395,6 +78278,8 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */ 0x2EBE1, 0x2F800, 0x2FA1E, + 0x30000, + 0x3134B, 0xE0001, 0xE0002, 0xE0020, @@ -77441,139 +78326,143 @@ typedef enum { SCX_Chakma = 21, SCX_Cham = 22, SCX_Cherokee = 23, - SCX_Common = 24, - SCX_Coptic = 25, - SCX_Cuneiform = 26, - SCX_Cypriot = 27, - SCX_Cyrillic = 28, - SCX_Deseret = 29, - SCX_Devanagari = 30, - SCX_Dogra = 31, - SCX_Duployan = 32, - SCX_Egyptian_Hieroglyphs = 33, - SCX_Elbasan = 34, - SCX_Elymaic = 35, - SCX_Ethiopic = 36, - SCX_Georgian = 37, - SCX_Glagolitic = 38, - SCX_Gothic = 39, - SCX_Grantha = 40, - SCX_Greek = 41, - SCX_Gujarati = 42, - SCX_Gunjala_Gondi = 43, - SCX_Gurmukhi = 44, - SCX_Han = 45, - SCX_Hanb = 46, - SCX_Hangul = 47, - SCX_Hanifi_Rohingya = 48, - SCX_Hanunoo = 49, - SCX_Hatran = 50, - SCX_Hebrew = 51, - SCX_Hiragana = 52, - SCX_Imperial_Aramaic = 53, - SCX_Inherited = 54, - SCX_Inscriptional_Pahlavi = 55, - SCX_Inscriptional_Parthian = 56, - SCX_Javanese = 57, - SCX_Jpan = 58, - SCX_Kaithi = 59, - SCX_Kannada = 60, - SCX_Katakana = 61, - SCX_Kayah_Li = 62, - SCX_Kharoshthi = 63, - SCX_Khmer = 64, - SCX_Khojki = 65, - SCX_Khudawadi = 66, - SCX_Kore = 67, - SCX_Lao = 68, - SCX_Latin = 69, - SCX_Lepcha = 70, - SCX_Limbu = 71, - SCX_Linear_A = 72, - SCX_Linear_B = 73, - SCX_Lisu = 74, - SCX_Lycian = 75, - SCX_Lydian = 76, - SCX_Mahajani = 77, - SCX_Makasar = 78, - SCX_Malayalam = 79, - SCX_Mandaic = 80, - SCX_Manichaean = 81, - SCX_Marchen = 82, - SCX_Masaram_Gondi = 83, - SCX_Medefaidrin = 84, - SCX_Meetei_Mayek = 85, - SCX_Mende_Kikakui = 86, - SCX_Meroitic_Cursive = 87, - SCX_Meroitic_Hieroglyphs = 88, - SCX_Miao = 89, - SCX_Modi = 90, - SCX_Mongolian = 91, - SCX_Mro = 92, - SCX_Multani = 93, - SCX_Myanmar = 94, - SCX_Nabataean = 95, - SCX_Nandinagari = 96, - SCX_New_Tai_Lue = 97, - SCX_Newa = 98, - SCX_Nko = 99, - SCX_Nushu = 100, - SCX_Nyiakeng_Puachue_Hmong = 101, - SCX_Ogham = 102, - SCX_Ol_Chiki = 103, - SCX_Old_Hungarian = 104, - SCX_Old_Italic = 105, - SCX_Old_North_Arabian = 106, - SCX_Old_Permic = 107, - SCX_Old_Persian = 108, - SCX_Old_Sogdian = 109, - SCX_Old_South_Arabian = 110, - SCX_Old_Turkic = 111, - SCX_Oriya = 112, - SCX_Osage = 113, - SCX_Osmanya = 114, - SCX_Pahawh_Hmong = 115, - SCX_Palmyrene = 116, - SCX_Pau_Cin_Hau = 117, - SCX_Phags_Pa = 118, - SCX_Phoenician = 119, - SCX_Psalter_Pahlavi = 120, - SCX_Rejang = 121, - SCX_Runic = 122, - SCX_Samaritan = 123, - SCX_Saurashtra = 124, - SCX_Sharada = 125, - SCX_Shavian = 126, - SCX_Siddham = 127, - SCX_SignWriting = 128, - SCX_Sinhala = 129, - SCX_Sogdian = 130, - SCX_Sora_Sompeng = 131, - SCX_Soyombo = 132, - SCX_Sundanese = 133, - SCX_Syloti_Nagri = 134, - SCX_Syriac = 135, - SCX_Tagalog = 136, - SCX_Tagbanwa = 137, - SCX_Tai_Le = 138, - SCX_Tai_Tham = 139, - SCX_Tai_Viet = 140, - SCX_Takri = 141, - SCX_Tamil = 142, - SCX_Tangut = 143, - SCX_Telugu = 144, - SCX_Thaana = 145, - SCX_Thai = 146, - SCX_Tibetan = 147, - SCX_Tifinagh = 148, - SCX_Tirhuta = 149, - SCX_Ugaritic = 150, - SCX_Vai = 151, - SCX_Wancho = 152, - SCX_Warang_Citi = 153, - SCX_Yi = 154, - SCX_Zanabazar_Square = 155, - SCX_INVALID = 156, + SCX_Chorasmian = 24, + SCX_Common = 25, + SCX_Coptic = 26, + SCX_Cuneiform = 27, + SCX_Cypriot = 28, + SCX_Cyrillic = 29, + SCX_Deseret = 30, + SCX_Devanagari = 31, + SCX_Dives_Akuru = 32, + SCX_Dogra = 33, + SCX_Duployan = 34, + SCX_Egyptian_Hieroglyphs = 35, + SCX_Elbasan = 36, + SCX_Elymaic = 37, + SCX_Ethiopic = 38, + SCX_Georgian = 39, + SCX_Glagolitic = 40, + SCX_Gothic = 41, + SCX_Grantha = 42, + SCX_Greek = 43, + SCX_Gujarati = 44, + SCX_Gunjala_Gondi = 45, + SCX_Gurmukhi = 46, + SCX_Han = 47, + SCX_Hanb = 48, + SCX_Hangul = 49, + SCX_Hanifi_Rohingya = 50, + SCX_Hanunoo = 51, + SCX_Hatran = 52, + SCX_Hebrew = 53, + SCX_Hiragana = 54, + SCX_Imperial_Aramaic = 55, + SCX_Inherited = 56, + SCX_Inscriptional_Pahlavi = 57, + SCX_Inscriptional_Parthian = 58, + SCX_INVALID = 59, + SCX_Javanese = 60, + SCX_Jpan = 61, + SCX_Kaithi = 62, + SCX_Kannada = 63, + SCX_Katakana = 64, + SCX_Kayah_Li = 65, + SCX_Kharoshthi = 66, + SCX_Khitan_Small_Script = 67, + SCX_Khmer = 68, + SCX_Khojki = 69, + SCX_Khudawadi = 70, + SCX_Kore = 71, + SCX_Lao = 72, + SCX_Latin = 73, + SCX_Lepcha = 74, + SCX_Limbu = 75, + SCX_Linear_A = 76, + SCX_Linear_B = 77, + SCX_Lisu = 78, + SCX_Lycian = 79, + SCX_Lydian = 80, + SCX_Mahajani = 81, + SCX_Makasar = 82, + SCX_Malayalam = 83, + SCX_Mandaic = 84, + SCX_Manichaean = 85, + SCX_Marchen = 86, + SCX_Masaram_Gondi = 87, + SCX_Medefaidrin = 88, + SCX_Meetei_Mayek = 89, + SCX_Mende_Kikakui = 90, + SCX_Meroitic_Cursive = 91, + SCX_Meroitic_Hieroglyphs = 92, + SCX_Miao = 93, + SCX_Modi = 94, + SCX_Mongolian = 95, + SCX_Mro = 96, + SCX_Multani = 97, + SCX_Myanmar = 98, + SCX_Nabataean = 99, + SCX_Nandinagari = 100, + SCX_New_Tai_Lue = 101, + SCX_Newa = 102, + SCX_Nko = 103, + SCX_Nushu = 104, + SCX_Nyiakeng_Puachue_Hmong = 105, + SCX_Ogham = 106, + SCX_Ol_Chiki = 107, + SCX_Old_Hungarian = 108, + SCX_Old_Italic = 109, + SCX_Old_North_Arabian = 110, + SCX_Old_Permic = 111, + SCX_Old_Persian = 112, + SCX_Old_Sogdian = 113, + SCX_Old_South_Arabian = 114, + SCX_Old_Turkic = 115, + SCX_Oriya = 116, + SCX_Osage = 117, + SCX_Osmanya = 118, + SCX_Pahawh_Hmong = 119, + SCX_Palmyrene = 120, + SCX_Pau_Cin_Hau = 121, + SCX_Phags_Pa = 122, + SCX_Phoenician = 123, + SCX_Psalter_Pahlavi = 124, + SCX_Rejang = 125, + SCX_Runic = 126, + SCX_Samaritan = 127, + SCX_Saurashtra = 128, + SCX_Sharada = 129, + SCX_Shavian = 130, + SCX_Siddham = 131, + SCX_SignWriting = 132, + SCX_Sinhala = 133, + SCX_Sogdian = 134, + SCX_Sora_Sompeng = 135, + SCX_Soyombo = 136, + SCX_Sundanese = 137, + SCX_Syloti_Nagri = 138, + SCX_Syriac = 139, + SCX_Tagalog = 140, + SCX_Tagbanwa = 141, + SCX_Tai_Le = 142, + SCX_Tai_Tham = 143, + SCX_Tai_Viet = 144, + SCX_Takri = 145, + SCX_Tamil = 146, + SCX_Tangut = 147, + SCX_Telugu = 148, + SCX_Thaana = 149, + SCX_Thai = 150, + SCX_Tibetan = 151, + SCX_Tifinagh = 152, + SCX_Tirhuta = 153, + SCX_Ugaritic = 154, + SCX_Vai = 155, + SCX_Wancho = 156, + SCX_Warang_Citi = 157, + SCX_Yezidi = 158, + SCX_Yi = 159, + SCX_Zanabazar_Square = 160, SCX_use_AUX_TABLE_1 = -1, SCX_use_AUX_TABLE_2 = -2, SCX_use_AUX_TABLE_3 = -3, @@ -77626,7 +78515,9 @@ typedef enum { SCX_use_AUX_TABLE_50 = -50, SCX_use_AUX_TABLE_51 = -51, SCX_use_AUX_TABLE_52 = -52, - SCX_use_AUX_TABLE_53 = -53 + SCX_use_AUX_TABLE_53 = -53, + SCX_use_AUX_TABLE_54 = -54, + SCX_use_AUX_TABLE_55 = -55 } SCX_enum; # endif /* EBCDIC 1047 */ @@ -77661,24 +78552,20 @@ static const SCX_enum SCX_AUX_TABLE_4[] = { }; static const SCX_enum SCX_AUX_TABLE_5[] = { - SCX_Armenian, - SCX_Georgian -}; - -static const SCX_enum SCX_AUX_TABLE_6[] = { SCX_Arabic, SCX_Hanifi_Rohingya, SCX_Syriac, - SCX_Thaana + SCX_Thaana, + SCX_Yezidi }; -static const SCX_enum SCX_AUX_TABLE_7[] = { +static const SCX_enum SCX_AUX_TABLE_6[] = { SCX_Arabic, SCX_Syriac, SCX_Thaana }; -static const SCX_enum SCX_AUX_TABLE_8[] = { +static const SCX_enum SCX_AUX_TABLE_7[] = { SCX_Adlam, SCX_Arabic, SCX_Hanifi_Rohingya, @@ -77689,22 +78576,23 @@ static const SCX_enum SCX_AUX_TABLE_8[] = { SCX_Syriac }; -static const SCX_enum SCX_AUX_TABLE_9[] = { +static const SCX_enum SCX_AUX_TABLE_8[] = { SCX_Arabic, SCX_Syriac }; -static const SCX_enum SCX_AUX_TABLE_10[] = { +static const SCX_enum SCX_AUX_TABLE_9[] = { SCX_Arabic, - SCX_Thaana + SCX_Thaana, + SCX_Yezidi }; -static const SCX_enum SCX_AUX_TABLE_11[] = { +static const SCX_enum SCX_AUX_TABLE_10[] = { SCX_Arabic, SCX_Hanifi_Rohingya }; -static const SCX_enum SCX_AUX_TABLE_12[] = { +static const SCX_enum SCX_AUX_TABLE_11[] = { SCX_Bengali, SCX_Devanagari, SCX_Grantha, @@ -77720,7 +78608,7 @@ static const SCX_enum SCX_AUX_TABLE_12[] = { SCX_Tirhuta }; -static const SCX_enum SCX_AUX_TABLE_13[] = { +static const SCX_enum SCX_AUX_TABLE_12[] = { SCX_Bengali, SCX_Devanagari, SCX_Grantha, @@ -77735,7 +78623,7 @@ static const SCX_enum SCX_AUX_TABLE_13[] = { SCX_Tirhuta }; -static const SCX_enum SCX_AUX_TABLE_14[] = { +static const SCX_enum SCX_AUX_TABLE_13[] = { SCX_Bengali, SCX_Devanagari, SCX_Dogra, @@ -77758,7 +78646,7 @@ static const SCX_enum SCX_AUX_TABLE_14[] = { SCX_Tirhuta }; -static const SCX_enum SCX_AUX_TABLE_15[] = { +static const SCX_enum SCX_AUX_TABLE_14[] = { SCX_Bengali, SCX_Devanagari, SCX_Dogra, @@ -77782,90 +78670,90 @@ static const SCX_enum SCX_AUX_TABLE_15[] = { SCX_Tirhuta }; -static const SCX_enum SCX_AUX_TABLE_16[] = { +static const SCX_enum SCX_AUX_TABLE_15[] = { SCX_Devanagari, SCX_Dogra, SCX_Kaithi, SCX_Mahajani }; -static const SCX_enum SCX_AUX_TABLE_17[] = { +static const SCX_enum SCX_AUX_TABLE_16[] = { SCX_Bengali, SCX_Chakma, SCX_Syloti_Nagri }; -static const SCX_enum SCX_AUX_TABLE_18[] = { +static const SCX_enum SCX_AUX_TABLE_17[] = { SCX_Gurmukhi, SCX_Multani }; -static const SCX_enum SCX_AUX_TABLE_19[] = { +static const SCX_enum SCX_AUX_TABLE_18[] = { SCX_Gujarati, SCX_Khojki }; -static const SCX_enum SCX_AUX_TABLE_20[] = { +static const SCX_enum SCX_AUX_TABLE_19[] = { SCX_Grantha, SCX_Tamil }; -static const SCX_enum SCX_AUX_TABLE_21[] = { +static const SCX_enum SCX_AUX_TABLE_20[] = { SCX_Kannada, SCX_Nandinagari }; -static const SCX_enum SCX_AUX_TABLE_22[] = { +static const SCX_enum SCX_AUX_TABLE_21[] = { SCX_Chakma, SCX_Myanmar, SCX_Tai_Le }; -static const SCX_enum SCX_AUX_TABLE_23[] = { +static const SCX_enum SCX_AUX_TABLE_22[] = { SCX_Georgian, SCX_Latin }; -static const SCX_enum SCX_AUX_TABLE_24[] = { +static const SCX_enum SCX_AUX_TABLE_23[] = { SCX_Hangul, SCX_Kore }; -static const SCX_enum SCX_AUX_TABLE_25[] = { +static const SCX_enum SCX_AUX_TABLE_24[] = { SCX_Buhid, SCX_Hanunoo, SCX_Tagalog, SCX_Tagbanwa }; -static const SCX_enum SCX_AUX_TABLE_26[] = { +static const SCX_enum SCX_AUX_TABLE_25[] = { SCX_Mongolian, SCX_Phags_Pa }; -static const SCX_enum SCX_AUX_TABLE_27[] = { +static const SCX_enum SCX_AUX_TABLE_26[] = { SCX_Bengali, SCX_Devanagari, SCX_Grantha, SCX_Kannada }; -static const SCX_enum SCX_AUX_TABLE_28[] = { +static const SCX_enum SCX_AUX_TABLE_27[] = { SCX_Devanagari, SCX_Grantha }; -static const SCX_enum SCX_AUX_TABLE_29[] = { +static const SCX_enum SCX_AUX_TABLE_28[] = { SCX_Bengali, SCX_Devanagari }; -static const SCX_enum SCX_AUX_TABLE_30[] = { +static const SCX_enum SCX_AUX_TABLE_29[] = { SCX_Devanagari, SCX_Sharada }; -static const SCX_enum SCX_AUX_TABLE_31[] = { +static const SCX_enum SCX_AUX_TABLE_30[] = { SCX_Devanagari, SCX_Kannada, SCX_Malayalam, @@ -77874,12 +78762,12 @@ static const SCX_enum SCX_AUX_TABLE_31[] = { SCX_Telugu }; -static const SCX_enum SCX_AUX_TABLE_32[] = { +static const SCX_enum SCX_AUX_TABLE_31[] = { SCX_Devanagari, SCX_Nandinagari }; -static const SCX_enum SCX_AUX_TABLE_33[] = { +static const SCX_enum SCX_AUX_TABLE_32[] = { SCX_Bengali, SCX_Devanagari, SCX_Grantha, @@ -77890,12 +78778,17 @@ static const SCX_enum SCX_AUX_TABLE_33[] = { SCX_Tirhuta }; -static const SCX_enum SCX_AUX_TABLE_34[] = { +static const SCX_enum SCX_AUX_TABLE_33[] = { SCX_Devanagari, SCX_Grantha, SCX_Kannada }; +static const SCX_enum SCX_AUX_TABLE_34[] = { + SCX_Cyrillic, + SCX_Syriac +}; + static const SCX_enum SCX_AUX_TABLE_35[] = { SCX_Latin, SCX_Mongolian @@ -77971,6 +78864,14 @@ static const SCX_enum SCX_AUX_TABLE_44[] = { }; static const SCX_enum SCX_AUX_TABLE_45[] = { + SCX_Han, + SCX_Hanb, + SCX_Jpan, + SCX_Kore, + SCX_Latin +}; + +static const SCX_enum SCX_AUX_TABLE_46[] = { SCX_Devanagari, SCX_Dogra, SCX_Gujarati, @@ -77987,7 +78888,7 @@ static const SCX_enum SCX_AUX_TABLE_45[] = { SCX_Tirhuta }; -static const SCX_enum SCX_AUX_TABLE_46[] = { +static const SCX_enum SCX_AUX_TABLE_47[] = { SCX_Devanagari, SCX_Dogra, SCX_Gujarati, @@ -78003,7 +78904,7 @@ static const SCX_enum SCX_AUX_TABLE_46[] = { SCX_Tirhuta }; -static const SCX_enum SCX_AUX_TABLE_47[] = { +static const SCX_enum SCX_AUX_TABLE_48[] = { SCX_Devanagari, SCX_Dogra, SCX_Gujarati, @@ -78017,34 +78918,39 @@ static const SCX_enum SCX_AUX_TABLE_47[] = { SCX_Tirhuta }; -static const SCX_enum SCX_AUX_TABLE_48[] = { +static const SCX_enum SCX_AUX_TABLE_49[] = { SCX_Devanagari, SCX_Tamil }; -static const SCX_enum SCX_AUX_TABLE_49[] = { +static const SCX_enum SCX_AUX_TABLE_50[] = { SCX_Kayah_Li, SCX_Latin, SCX_Myanmar }; -static const SCX_enum SCX_AUX_TABLE_50[] = { +static const SCX_enum SCX_AUX_TABLE_51[] = { SCX_Buginese, SCX_Javanese }; -static const SCX_enum SCX_AUX_TABLE_51[] = { +static const SCX_enum SCX_AUX_TABLE_52[] = { + SCX_Arabic, + SCX_Thaana +}; + +static const SCX_enum SCX_AUX_TABLE_53[] = { SCX_Cypriot, SCX_Linear_B }; -static const SCX_enum SCX_AUX_TABLE_52[] = { +static const SCX_enum SCX_AUX_TABLE_54[] = { SCX_Cypriot, SCX_Linear_A, SCX_Linear_B }; -static const SCX_enum SCX_AUX_TABLE_53[] = { +static const SCX_enum SCX_AUX_TABLE_55[] = { SCX_Arabic, SCX_Coptic }; @@ -78103,7 +79009,9 @@ static const SCX_enum * const SCX_AUX_TABLE_ptrs[] = { SCX_AUX_TABLE_50, SCX_AUX_TABLE_51, SCX_AUX_TABLE_52, - SCX_AUX_TABLE_53 + SCX_AUX_TABLE_53, + SCX_AUX_TABLE_54, + SCX_AUX_TABLE_55 }; /* Parallel table to the above, giving the number of elements in each table @@ -78115,36 +79023,36 @@ static const U8 SCX_AUX_TABLE_lengths[] = { 2 /* SCX_AUX_TABLE_2 */, 2 /* SCX_AUX_TABLE_3 */, 2 /* SCX_AUX_TABLE_4 */, - 2 /* SCX_AUX_TABLE_5 */, - 4 /* SCX_AUX_TABLE_6 */, - 3 /* SCX_AUX_TABLE_7 */, - 8 /* SCX_AUX_TABLE_8 */, - 2 /* SCX_AUX_TABLE_9 */, + 5 /* SCX_AUX_TABLE_5 */, + 3 /* SCX_AUX_TABLE_6 */, + 8 /* SCX_AUX_TABLE_7 */, + 2 /* SCX_AUX_TABLE_8 */, + 3 /* SCX_AUX_TABLE_9 */, 2 /* SCX_AUX_TABLE_10 */, - 2 /* SCX_AUX_TABLE_11 */, - 13 /* SCX_AUX_TABLE_12 */, - 12 /* SCX_AUX_TABLE_13 */, - 20 /* SCX_AUX_TABLE_14 */, - 21 /* SCX_AUX_TABLE_15 */, - 4 /* SCX_AUX_TABLE_16 */, - 3 /* SCX_AUX_TABLE_17 */, + 13 /* SCX_AUX_TABLE_11 */, + 12 /* SCX_AUX_TABLE_12 */, + 20 /* SCX_AUX_TABLE_13 */, + 21 /* SCX_AUX_TABLE_14 */, + 4 /* SCX_AUX_TABLE_15 */, + 3 /* SCX_AUX_TABLE_16 */, + 2 /* SCX_AUX_TABLE_17 */, 2 /* SCX_AUX_TABLE_18 */, 2 /* SCX_AUX_TABLE_19 */, 2 /* SCX_AUX_TABLE_20 */, - 2 /* SCX_AUX_TABLE_21 */, - 3 /* SCX_AUX_TABLE_22 */, + 3 /* SCX_AUX_TABLE_21 */, + 2 /* SCX_AUX_TABLE_22 */, 2 /* SCX_AUX_TABLE_23 */, - 2 /* SCX_AUX_TABLE_24 */, - 4 /* SCX_AUX_TABLE_25 */, - 2 /* SCX_AUX_TABLE_26 */, - 4 /* SCX_AUX_TABLE_27 */, + 4 /* SCX_AUX_TABLE_24 */, + 2 /* SCX_AUX_TABLE_25 */, + 4 /* SCX_AUX_TABLE_26 */, + 2 /* SCX_AUX_TABLE_27 */, 2 /* SCX_AUX_TABLE_28 */, 2 /* SCX_AUX_TABLE_29 */, - 2 /* SCX_AUX_TABLE_30 */, - 6 /* SCX_AUX_TABLE_31 */, - 2 /* SCX_AUX_TABLE_32 */, - 8 /* SCX_AUX_TABLE_33 */, - 3 /* SCX_AUX_TABLE_34 */, + 6 /* SCX_AUX_TABLE_30 */, + 2 /* SCX_AUX_TABLE_31 */, + 8 /* SCX_AUX_TABLE_32 */, + 3 /* SCX_AUX_TABLE_33 */, + 2 /* SCX_AUX_TABLE_34 */, 2 /* SCX_AUX_TABLE_35 */, 3 /* SCX_AUX_TABLE_36 */, 4 /* SCX_AUX_TABLE_37 */, @@ -78155,15 +79063,17 @@ static const U8 SCX_AUX_TABLE_lengths[] = { 6 /* SCX_AUX_TABLE_42 */, 2 /* SCX_AUX_TABLE_43 */, 2 /* SCX_AUX_TABLE_44 */, - 14 /* SCX_AUX_TABLE_45 */, - 13 /* SCX_AUX_TABLE_46 */, - 11 /* SCX_AUX_TABLE_47 */, - 2 /* SCX_AUX_TABLE_48 */, - 3 /* SCX_AUX_TABLE_49 */, - 2 /* SCX_AUX_TABLE_50 */, + 5 /* SCX_AUX_TABLE_45 */, + 14 /* SCX_AUX_TABLE_46 */, + 13 /* SCX_AUX_TABLE_47 */, + 11 /* SCX_AUX_TABLE_48 */, + 2 /* SCX_AUX_TABLE_49 */, + 3 /* SCX_AUX_TABLE_50 */, 2 /* SCX_AUX_TABLE_51 */, - 3 /* SCX_AUX_TABLE_52 */, - 2 /* SCX_AUX_TABLE_53 */ + 2 /* SCX_AUX_TABLE_52 */, + 2 /* SCX_AUX_TABLE_53 */, + 3 /* SCX_AUX_TABLE_54 */, + 2 /* SCX_AUX_TABLE_55 */ }; /* This table, indexed by the script enum, gives the zero code point for that @@ -78195,6 +79105,7 @@ static const UV script_zeros[] = { 0, /* Chakma */ 0xaa50, /* Cham */ '0', /* Cherokee */ + '0', /* Chorasmian */ 0, /* Common */ '0', /* Coptic */ '0', /* Cuneiform */ @@ -78202,6 +79113,7 @@ static const UV script_zeros[] = { '0', /* Cyrillic */ '0', /* Deseret */ 0x966, /* Devanagari */ + 0x11950, /* Dives_Akuru */ 0x966, /* Dogra */ '0', /* Duployan */ '0', /* Egyptian_Hieroglyphs */ @@ -78228,6 +79140,7 @@ static const UV script_zeros[] = { 0, /* Inherited */ '0', /* Inscriptional_Pahlavi */ '0', /* Inscriptional_Parthian */ + '0', /* INVALID */ 0xa9d0, /* Javanese */ '0', /* Jpan */ 0x966, /* Kaithi */ @@ -78235,6 +79148,7 @@ static const UV script_zeros[] = { '0', /* Katakana */ 0xa900, /* Kayah_Li */ '0', /* Kharoshthi */ + '0', /* Khitan_Small_Script */ 0x17e0, /* Khmer */ 0xae6, /* Khojki */ 0x112f0, /* Khudawadi */ @@ -78324,7 +79238,8 @@ static const UV script_zeros[] = { '0', /* Ugaritic */ 0xa620, /* Vai */ 0x1e2f0, /* Wancho */ - 0x118e0 /* Warang_Citi */ + 0x118e0, /* Warang_Citi */ + 0x660 /* Yezidi */ }; static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */ @@ -78410,8 +79325,6 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */ SCX_Armenian, SCX_Unknown, SCX_Armenian, - SCX_use_AUX_TABLE_5, - SCX_Armenian, SCX_Unknown, SCX_Armenian, SCX_Unknown, @@ -78424,23 +79337,23 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */ SCX_Arabic, SCX_Common, SCX_Arabic, - SCX_use_AUX_TABLE_6, + SCX_use_AUX_TABLE_5, SCX_Arabic, + SCX_use_AUX_TABLE_5, SCX_use_AUX_TABLE_6, - SCX_use_AUX_TABLE_7, SCX_Unknown, SCX_Arabic, - SCX_use_AUX_TABLE_6, + SCX_use_AUX_TABLE_5, + SCX_Arabic, + SCX_use_AUX_TABLE_7, SCX_Arabic, SCX_use_AUX_TABLE_8, SCX_Arabic, SCX_use_AUX_TABLE_9, SCX_Arabic, - SCX_use_AUX_TABLE_10, - SCX_Arabic, - SCX_use_AUX_TABLE_9, + SCX_use_AUX_TABLE_8, SCX_Arabic, - SCX_use_AUX_TABLE_11, + SCX_use_AUX_TABLE_10, SCX_Arabic, SCX_Common, SCX_Arabic, @@ -78473,13 +79386,13 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */ SCX_Common, SCX_Arabic, SCX_Devanagari, + SCX_use_AUX_TABLE_11, SCX_use_AUX_TABLE_12, - SCX_use_AUX_TABLE_13, SCX_Inherited, SCX_Devanagari, + SCX_use_AUX_TABLE_13, SCX_use_AUX_TABLE_14, SCX_use_AUX_TABLE_15, - SCX_use_AUX_TABLE_16, SCX_Devanagari, SCX_Bengali, SCX_Unknown, @@ -78507,7 +79420,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */ SCX_Unknown, SCX_Bengali, SCX_Unknown, - SCX_use_AUX_TABLE_17, + SCX_use_AUX_TABLE_16, SCX_Bengali, SCX_Unknown, SCX_Gurmukhi, @@ -78540,7 +79453,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */ SCX_Unknown, SCX_Gurmukhi, SCX_Unknown, - SCX_use_AUX_TABLE_18, + SCX_use_AUX_TABLE_17, SCX_Gurmukhi, SCX_Unknown, SCX_Gujarati, @@ -78567,7 +79480,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */ SCX_Unknown, SCX_Gujarati, SCX_Unknown, - SCX_use_AUX_TABLE_19, + SCX_use_AUX_TABLE_18, SCX_Gujarati, SCX_Unknown, SCX_Gujarati, @@ -78630,7 +79543,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */ SCX_Unknown, SCX_Tamil, SCX_Unknown, - SCX_use_AUX_TABLE_20, + SCX_use_AUX_TABLE_19, SCX_Tamil, SCX_Unknown, SCX_Telugu, @@ -78678,7 +79591,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */ SCX_Unknown, SCX_Kannada, SCX_Unknown, - SCX_use_AUX_TABLE_21, + SCX_use_AUX_TABLE_20, SCX_Unknown, SCX_Kannada, SCX_Unknown, @@ -78696,8 +79609,6 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */ SCX_Unknown, SCX_Malayalam, SCX_Unknown, - SCX_Malayalam, - SCX_Unknown, SCX_Sinhala, SCX_Unknown, SCX_Sinhala, @@ -78764,7 +79675,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */ SCX_Tibetan, SCX_Unknown, SCX_Myanmar, - SCX_use_AUX_TABLE_22, + SCX_use_AUX_TABLE_21, SCX_Myanmar, SCX_Georgian, SCX_Unknown, @@ -78773,9 +79684,9 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */ SCX_Georgian, SCX_Unknown, SCX_Georgian, - SCX_use_AUX_TABLE_23, + SCX_use_AUX_TABLE_22, SCX_Georgian, - SCX_use_AUX_TABLE_24, + SCX_use_AUX_TABLE_23, SCX_Ethiopic, SCX_Unknown, SCX_Ethiopic, @@ -78828,7 +79739,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */ SCX_Tagalog, SCX_Unknown, SCX_Hanunoo, - SCX_use_AUX_TABLE_25, + SCX_use_AUX_TABLE_24, SCX_Unknown, SCX_Buhid, SCX_Unknown, @@ -78845,9 +79756,9 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */ SCX_Khmer, SCX_Unknown, SCX_Mongolian, - SCX_use_AUX_TABLE_26, + SCX_use_AUX_TABLE_25, SCX_Mongolian, - SCX_use_AUX_TABLE_26, + SCX_use_AUX_TABLE_25, SCX_Mongolian, SCX_Unknown, SCX_Mongolian, @@ -78915,33 +79826,33 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */ SCX_Georgian, SCX_Sundanese, SCX_Unknown, - SCX_use_AUX_TABLE_27, + SCX_use_AUX_TABLE_26, SCX_Devanagari, + SCX_use_AUX_TABLE_26, SCX_use_AUX_TABLE_27, - SCX_use_AUX_TABLE_28, SCX_Devanagari, + SCX_use_AUX_TABLE_28, SCX_use_AUX_TABLE_29, - SCX_use_AUX_TABLE_30, + SCX_use_AUX_TABLE_28, SCX_use_AUX_TABLE_29, SCX_use_AUX_TABLE_30, - SCX_use_AUX_TABLE_31, - SCX_Devanagari, - SCX_use_AUX_TABLE_30, SCX_Devanagari, - SCX_use_AUX_TABLE_30, SCX_use_AUX_TABLE_29, SCX_Devanagari, - SCX_use_AUX_TABLE_32, SCX_use_AUX_TABLE_29, + SCX_use_AUX_TABLE_28, SCX_Devanagari, - SCX_use_AUX_TABLE_29, + SCX_use_AUX_TABLE_31, + SCX_use_AUX_TABLE_28, + SCX_Devanagari, + SCX_use_AUX_TABLE_28, SCX_Devanagari, + SCX_use_AUX_TABLE_32, + SCX_use_AUX_TABLE_27, SCX_use_AUX_TABLE_33, SCX_use_AUX_TABLE_28, - SCX_use_AUX_TABLE_34, - SCX_use_AUX_TABLE_29, SCX_Bengali, - SCX_use_AUX_TABLE_28, + SCX_use_AUX_TABLE_27, SCX_Nandinagari, SCX_Unknown, SCX_Latin, @@ -78956,6 +79867,8 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */ SCX_Latin, SCX_Greek, SCX_Inherited, + SCX_use_AUX_TABLE_34, + SCX_Inherited, SCX_Unknown, SCX_Inherited, SCX_Latin, @@ -79097,7 +80010,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */ SCX_Common, SCX_use_AUX_TABLE_37, SCX_use_AUX_TABLE_40, - SCX_use_AUX_TABLE_24, + SCX_use_AUX_TABLE_23, SCX_use_AUX_TABLE_39, SCX_use_AUX_TABLE_41, SCX_Common, @@ -79118,19 +80031,18 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */ SCX_Unknown, SCX_use_AUX_TABLE_1, SCX_Unknown, - SCX_use_AUX_TABLE_24, + SCX_use_AUX_TABLE_23, SCX_Unknown, SCX_use_AUX_TABLE_37, SCX_use_AUX_TABLE_1, - SCX_Unknown, SCX_use_AUX_TABLE_37, SCX_Unknown, SCX_use_AUX_TABLE_44, - SCX_use_AUX_TABLE_24, + SCX_use_AUX_TABLE_23, SCX_Unknown, SCX_use_AUX_TABLE_37, SCX_Common, - SCX_use_AUX_TABLE_24, + SCX_use_AUX_TABLE_23, SCX_Common, SCX_use_AUX_TABLE_37, SCX_Common, @@ -79146,7 +80058,6 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */ SCX_use_AUX_TABLE_37, SCX_Common, SCX_use_AUX_TABLE_37, - SCX_Unknown, SCX_Common, SCX_use_AUX_TABLE_37, SCX_Unknown, @@ -79162,6 +80073,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */ SCX_Cyrillic, SCX_Bamum, SCX_Unknown, + SCX_use_AUX_TABLE_45, SCX_Common, SCX_Latin, SCX_Common, @@ -79172,9 +80084,9 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */ SCX_Latin, SCX_Syloti_Nagri, SCX_Unknown, - SCX_use_AUX_TABLE_45, SCX_use_AUX_TABLE_46, SCX_use_AUX_TABLE_47, + SCX_use_AUX_TABLE_48, SCX_Unknown, SCX_Phags_Pa, SCX_Unknown, @@ -79183,21 +80095,21 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */ SCX_Saurashtra, SCX_Unknown, SCX_Devanagari, - SCX_use_AUX_TABLE_29, + SCX_use_AUX_TABLE_28, SCX_Devanagari, - SCX_use_AUX_TABLE_48, + SCX_use_AUX_TABLE_49, SCX_Devanagari, SCX_Kayah_Li, - SCX_use_AUX_TABLE_49, + SCX_use_AUX_TABLE_50, SCX_Kayah_Li, SCX_Rejang, SCX_Unknown, SCX_Rejang, - SCX_use_AUX_TABLE_24, + SCX_use_AUX_TABLE_23, SCX_Unknown, SCX_Javanese, SCX_Unknown, - SCX_use_AUX_TABLE_50, + SCX_use_AUX_TABLE_51, SCX_Javanese, SCX_Unknown, SCX_Javanese, @@ -79231,17 +80143,18 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */ SCX_Latin, SCX_Greek, SCX_Latin, + SCX_Common, SCX_Unknown, SCX_Cherokee, SCX_Meetei_Mayek, SCX_Unknown, SCX_Meetei_Mayek, SCX_Unknown, - SCX_use_AUX_TABLE_24, + SCX_use_AUX_TABLE_23, SCX_Unknown, - SCX_use_AUX_TABLE_24, + SCX_use_AUX_TABLE_23, SCX_Unknown, - SCX_use_AUX_TABLE_24, + SCX_use_AUX_TABLE_23, SCX_Unknown, SCX_use_AUX_TABLE_37, SCX_Unknown, @@ -79272,9 +80185,9 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */ SCX_Arabic, SCX_Unknown, SCX_Arabic, - SCX_use_AUX_TABLE_10, + SCX_use_AUX_TABLE_52, SCX_Arabic, - SCX_use_AUX_TABLE_10, + SCX_use_AUX_TABLE_52, SCX_Unknown, SCX_Inherited, SCX_Common, @@ -79305,15 +80218,15 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */ SCX_use_AUX_TABLE_41, SCX_use_AUX_TABLE_44, SCX_use_AUX_TABLE_41, - SCX_use_AUX_TABLE_24, + SCX_use_AUX_TABLE_23, SCX_Unknown, - SCX_use_AUX_TABLE_24, + SCX_use_AUX_TABLE_23, SCX_Unknown, - SCX_use_AUX_TABLE_24, + SCX_use_AUX_TABLE_23, SCX_Unknown, - SCX_use_AUX_TABLE_24, + SCX_use_AUX_TABLE_23, SCX_Unknown, - SCX_use_AUX_TABLE_24, + SCX_use_AUX_TABLE_23, SCX_Unknown, SCX_Common, SCX_Unknown, @@ -79335,11 +80248,11 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */ SCX_Unknown, SCX_Linear_B, SCX_Unknown, - SCX_use_AUX_TABLE_51, + SCX_use_AUX_TABLE_53, SCX_Unknown, - SCX_use_AUX_TABLE_52, + SCX_use_AUX_TABLE_54, SCX_Unknown, - SCX_use_AUX_TABLE_51, + SCX_use_AUX_TABLE_53, SCX_Greek, SCX_Unknown, SCX_Common, @@ -79353,7 +80266,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */ SCX_Unknown, SCX_Carian, SCX_Unknown, - SCX_use_AUX_TABLE_53, + SCX_use_AUX_TABLE_55, SCX_Unknown, SCX_Old_Italic, SCX_Unknown, @@ -79479,10 +80392,18 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */ SCX_Unknown, SCX_Arabic, SCX_Unknown, + SCX_Yezidi, + SCX_Unknown, + SCX_Yezidi, + SCX_Unknown, + SCX_Yezidi, + SCX_Unknown, SCX_Old_Sogdian, SCX_Unknown, SCX_Sogdian, SCX_Unknown, + SCX_Chorasmian, + SCX_Unknown, SCX_Elymaic, SCX_Unknown, SCX_Brahmi, @@ -79506,8 +80427,6 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */ SCX_Unknown, SCX_Sharada, SCX_Unknown, - SCX_Sharada, - SCX_Unknown, SCX_Sinhala, SCX_Unknown, SCX_Khojki, @@ -79529,9 +80448,9 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */ SCX_Khudawadi, SCX_Unknown, SCX_Grantha, - SCX_use_AUX_TABLE_20, + SCX_use_AUX_TABLE_19, SCX_Grantha, - SCX_use_AUX_TABLE_20, + SCX_use_AUX_TABLE_19, SCX_Unknown, SCX_Grantha, SCX_Unknown, @@ -79545,7 +80464,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */ SCX_Unknown, SCX_Grantha, SCX_Unknown, - SCX_use_AUX_TABLE_20, + SCX_use_AUX_TABLE_19, SCX_Grantha, SCX_Unknown, SCX_Grantha, @@ -79566,8 +80485,6 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */ SCX_Unknown, SCX_Newa, SCX_Unknown, - SCX_Newa, - SCX_Unknown, SCX_Tirhuta, SCX_Unknown, SCX_Tirhuta, @@ -79597,6 +80514,21 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */ SCX_Warang_Citi, SCX_Unknown, SCX_Warang_Citi, + SCX_Dives_Akuru, + SCX_Unknown, + SCX_Dives_Akuru, + SCX_Unknown, + SCX_Dives_Akuru, + SCX_Unknown, + SCX_Dives_Akuru, + SCX_Unknown, + SCX_Dives_Akuru, + SCX_Unknown, + SCX_Dives_Akuru, + SCX_Unknown, + SCX_Dives_Akuru, + SCX_Unknown, + SCX_Dives_Akuru, SCX_Unknown, SCX_Nandinagari, SCX_Unknown, @@ -79652,10 +80584,12 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */ SCX_Unknown, SCX_Makasar, SCX_Unknown, + SCX_Lisu, + SCX_Unknown, SCX_Tamil, - SCX_use_AUX_TABLE_20, + SCX_use_AUX_TABLE_19, SCX_Tamil, - SCX_use_AUX_TABLE_20, + SCX_use_AUX_TABLE_19, SCX_Tamil, SCX_Unknown, SCX_Tamil, @@ -79706,8 +80640,14 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */ SCX_Tangut, SCX_Nushu, SCX_Common, + SCX_Khitan_Small_Script, + SCX_Unknown, + SCX_use_AUX_TABLE_37, + SCX_Unknown, + SCX_Tangut, SCX_Unknown, SCX_Tangut, + SCX_Khitan_Small_Script, SCX_Unknown, SCX_Tangut, SCX_Unknown, @@ -79919,18 +80859,20 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */ SCX_Common, SCX_Unknown, SCX_Common, - SCX_Unknown, + SCX_use_AUX_TABLE_43, SCX_Common, SCX_Unknown, SCX_Common, - SCX_use_AUX_TABLE_43, + SCX_Unknown, SCX_Common, SCX_Unknown, + SCX_use_AUX_TABLE_37, + SCX_Unknown, SCX_Common, SCX_Unknown, SCX_Common, SCX_Unknown, - SCX_use_AUX_TABLE_37, + SCX_Common, SCX_Unknown, SCX_Common, SCX_Unknown, @@ -79992,6 +80934,8 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */ SCX_Unknown, SCX_use_AUX_TABLE_37, SCX_Unknown, + SCX_use_AUX_TABLE_37, + SCX_Unknown, SCX_Common, SCX_Unknown, SCX_Common, @@ -80012,7 +80956,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */ - 1666, /* Number of elements */ + 1695, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -80094,8 +81038,6 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */ 0x531, 0x557, 0x559, - 0x589, - 0x58A, 0x58B, 0x58D, 0x590, @@ -80152,7 +81094,7 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x8E2, 0x8E3, @@ -80276,7 +81218,7 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -80367,8 +81309,6 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */ 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -80382,7 +81322,7 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */ 0xD64, 0xD66, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -80577,7 +81517,7 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */ 0x1AA0, 0x1AAE, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B4C, 0x1B50, @@ -80640,6 +81580,8 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */ 0x1D79, 0x1DBF, 0x1DC2, + 0x1DF8, + 0x1DF9, 0x1DFA, 0x1DFB, 0x1E00, @@ -80717,7 +81659,7 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */ 0x2B74, 0x2B76, 0x2B96, - 0x2B98, + 0x2B97, 0x2C00, 0x2C2F, 0x2C30, @@ -80759,7 +81701,7 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */ 0x2E00, 0x2E43, 0x2E44, - 0x2E50, + 0x2E53, 0x2E80, 0x2E9A, 0x2E9B, @@ -80806,7 +81748,6 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */ 0x318F, 0x3190, 0x31A0, - 0x31BB, 0x31C0, 0x31E4, 0x31F0, @@ -80830,10 +81771,9 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */ 0x33E0, 0x33FF, 0x3400, - 0x4DB6, 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA490, @@ -80847,15 +81787,16 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */ 0xA6A0, 0xA6F8, 0xA700, + 0xA708, 0xA722, 0xA788, 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA800, - 0xA82C, + 0xA82D, 0xA830, 0xA833, 0xA836, @@ -80915,7 +81856,8 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */ 0xAB5C, 0xAB65, 0xAB66, - 0xAB68, + 0xAB6A, + 0xAB6C, 0xAB70, 0xABC0, 0xABEE, @@ -81027,7 +81969,7 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */ 0x10140, 0x1018F, 0x10190, - 0x1019C, + 0x1019D, 0x101A0, 0x101A1, 0x101D0, @@ -81163,10 +82105,18 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */ 0x10D3A, 0x10E60, 0x10E7F, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAE, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F28, 0x10F30, 0x10F5A, + 0x10FB0, + 0x10FCC, 0x10FE0, 0x10FF7, 0x11000, @@ -81185,12 +82135,10 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */ 0x11100, 0x11135, 0x11136, - 0x11147, + 0x11148, 0x11150, 0x11177, 0x11180, - 0x111CE, - 0x111D0, 0x111E0, 0x111E1, 0x111F5, @@ -81247,11 +82195,9 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */ 0x11370, 0x11375, 0x11400, - 0x1145A, - 0x1145B, 0x1145C, 0x1145D, - 0x11460, + 0x11462, 0x11480, 0x114C8, 0x114D0, @@ -81282,6 +82228,21 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */ 0x118F3, 0x118FF, 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11947, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -81336,6 +82297,8 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */ 0x11DAA, 0x11EE0, 0x11EF9, + 0x11FB0, + 0x11FB1, 0x11FC0, 0x11FD0, 0x11FD2, @@ -81391,10 +82354,16 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */ 0x16FE1, 0x16FE2, 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18B00, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B001, 0x1B11F, @@ -81601,11 +82570,7 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */ 0x1F0D1, 0x1F0F6, 0x1F100, - 0x1F10D, - 0x1F110, - 0x1F16D, - 0x1F170, - 0x1F1AD, + 0x1F1AE, 0x1F1E6, 0x1F200, 0x1F201, @@ -81619,11 +82584,11 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */ 0x1F260, 0x1F266, 0x1F300, - 0x1F6D6, + 0x1F6D8, 0x1F6E0, 0x1F6ED, 0x1F6F0, - 0x1F6FB, + 0x1F6FD, 0x1F700, 0x1F774, 0x1F780, @@ -81640,32 +82605,38 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */ 0x1F888, 0x1F890, 0x1F8AE, + 0x1F8B0, + 0x1F8B2, 0x1F900, - 0x1F90C, - 0x1F90D, - 0x1F972, - 0x1F973, - 0x1F977, + 0x1F979, 0x1F97A, - 0x1F9A3, - 0x1F9A5, - 0x1F9AB, - 0x1F9AE, - 0x1F9CB, + 0x1F9CC, 0x1F9CD, 0x1FA54, 0x1FA60, 0x1FA6E, 0x1FA70, - 0x1FA74, + 0x1FA75, 0x1FA78, 0x1FA7B, 0x1FA80, - 0x1FA83, + 0x1FA87, 0x1FA90, - 0x1FA96, + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB, + 0x1FBF0, + 0x1FBFA, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -81676,6 +82647,8 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */ 0x2EBE1, 0x2F800, 0x2FA1E, + 0x30000, + 0x3134B, 0xE0001, 0xE0002, 0xE0020, @@ -81722,139 +82695,143 @@ typedef enum { SCX_Chakma = 21, SCX_Cham = 22, SCX_Cherokee = 23, - SCX_Common = 24, - SCX_Coptic = 25, - SCX_Cuneiform = 26, - SCX_Cypriot = 27, - SCX_Cyrillic = 28, - SCX_Deseret = 29, - SCX_Devanagari = 30, - SCX_Dogra = 31, - SCX_Duployan = 32, - SCX_Egyptian_Hieroglyphs = 33, - SCX_Elbasan = 34, - SCX_Elymaic = 35, - SCX_Ethiopic = 36, - SCX_Georgian = 37, - SCX_Glagolitic = 38, - SCX_Gothic = 39, - SCX_Grantha = 40, - SCX_Greek = 41, - SCX_Gujarati = 42, - SCX_Gunjala_Gondi = 43, - SCX_Gurmukhi = 44, - SCX_Han = 45, - SCX_Hanb = 46, - SCX_Hangul = 47, - SCX_Hanifi_Rohingya = 48, - SCX_Hanunoo = 49, - SCX_Hatran = 50, - SCX_Hebrew = 51, - SCX_Hiragana = 52, - SCX_Imperial_Aramaic = 53, - SCX_Inherited = 54, - SCX_Inscriptional_Pahlavi = 55, - SCX_Inscriptional_Parthian = 56, - SCX_Javanese = 57, - SCX_Jpan = 58, - SCX_Kaithi = 59, - SCX_Kannada = 60, - SCX_Katakana = 61, - SCX_Kayah_Li = 62, - SCX_Kharoshthi = 63, - SCX_Khmer = 64, - SCX_Khojki = 65, - SCX_Khudawadi = 66, - SCX_Kore = 67, - SCX_Lao = 68, - SCX_Latin = 69, - SCX_Lepcha = 70, - SCX_Limbu = 71, - SCX_Linear_A = 72, - SCX_Linear_B = 73, - SCX_Lisu = 74, - SCX_Lycian = 75, - SCX_Lydian = 76, - SCX_Mahajani = 77, - SCX_Makasar = 78, - SCX_Malayalam = 79, - SCX_Mandaic = 80, - SCX_Manichaean = 81, - SCX_Marchen = 82, - SCX_Masaram_Gondi = 83, - SCX_Medefaidrin = 84, - SCX_Meetei_Mayek = 85, - SCX_Mende_Kikakui = 86, - SCX_Meroitic_Cursive = 87, - SCX_Meroitic_Hieroglyphs = 88, - SCX_Miao = 89, - SCX_Modi = 90, - SCX_Mongolian = 91, - SCX_Mro = 92, - SCX_Multani = 93, - SCX_Myanmar = 94, - SCX_Nabataean = 95, - SCX_Nandinagari = 96, - SCX_New_Tai_Lue = 97, - SCX_Newa = 98, - SCX_Nko = 99, - SCX_Nushu = 100, - SCX_Nyiakeng_Puachue_Hmong = 101, - SCX_Ogham = 102, - SCX_Ol_Chiki = 103, - SCX_Old_Hungarian = 104, - SCX_Old_Italic = 105, - SCX_Old_North_Arabian = 106, - SCX_Old_Permic = 107, - SCX_Old_Persian = 108, - SCX_Old_Sogdian = 109, - SCX_Old_South_Arabian = 110, - SCX_Old_Turkic = 111, - SCX_Oriya = 112, - SCX_Osage = 113, - SCX_Osmanya = 114, - SCX_Pahawh_Hmong = 115, - SCX_Palmyrene = 116, - SCX_Pau_Cin_Hau = 117, - SCX_Phags_Pa = 118, - SCX_Phoenician = 119, - SCX_Psalter_Pahlavi = 120, - SCX_Rejang = 121, - SCX_Runic = 122, - SCX_Samaritan = 123, - SCX_Saurashtra = 124, - SCX_Sharada = 125, - SCX_Shavian = 126, - SCX_Siddham = 127, - SCX_SignWriting = 128, - SCX_Sinhala = 129, - SCX_Sogdian = 130, - SCX_Sora_Sompeng = 131, - SCX_Soyombo = 132, - SCX_Sundanese = 133, - SCX_Syloti_Nagri = 134, - SCX_Syriac = 135, - SCX_Tagalog = 136, - SCX_Tagbanwa = 137, - SCX_Tai_Le = 138, - SCX_Tai_Tham = 139, - SCX_Tai_Viet = 140, - SCX_Takri = 141, - SCX_Tamil = 142, - SCX_Tangut = 143, - SCX_Telugu = 144, - SCX_Thaana = 145, - SCX_Thai = 146, - SCX_Tibetan = 147, - SCX_Tifinagh = 148, - SCX_Tirhuta = 149, - SCX_Ugaritic = 150, - SCX_Vai = 151, - SCX_Wancho = 152, - SCX_Warang_Citi = 153, - SCX_Yi = 154, - SCX_Zanabazar_Square = 155, - SCX_INVALID = 156, + SCX_Chorasmian = 24, + SCX_Common = 25, + SCX_Coptic = 26, + SCX_Cuneiform = 27, + SCX_Cypriot = 28, + SCX_Cyrillic = 29, + SCX_Deseret = 30, + SCX_Devanagari = 31, + SCX_Dives_Akuru = 32, + SCX_Dogra = 33, + SCX_Duployan = 34, + SCX_Egyptian_Hieroglyphs = 35, + SCX_Elbasan = 36, + SCX_Elymaic = 37, + SCX_Ethiopic = 38, + SCX_Georgian = 39, + SCX_Glagolitic = 40, + SCX_Gothic = 41, + SCX_Grantha = 42, + SCX_Greek = 43, + SCX_Gujarati = 44, + SCX_Gunjala_Gondi = 45, + SCX_Gurmukhi = 46, + SCX_Han = 47, + SCX_Hanb = 48, + SCX_Hangul = 49, + SCX_Hanifi_Rohingya = 50, + SCX_Hanunoo = 51, + SCX_Hatran = 52, + SCX_Hebrew = 53, + SCX_Hiragana = 54, + SCX_Imperial_Aramaic = 55, + SCX_Inherited = 56, + SCX_Inscriptional_Pahlavi = 57, + SCX_Inscriptional_Parthian = 58, + SCX_INVALID = 59, + SCX_Javanese = 60, + SCX_Jpan = 61, + SCX_Kaithi = 62, + SCX_Kannada = 63, + SCX_Katakana = 64, + SCX_Kayah_Li = 65, + SCX_Kharoshthi = 66, + SCX_Khitan_Small_Script = 67, + SCX_Khmer = 68, + SCX_Khojki = 69, + SCX_Khudawadi = 70, + SCX_Kore = 71, + SCX_Lao = 72, + SCX_Latin = 73, + SCX_Lepcha = 74, + SCX_Limbu = 75, + SCX_Linear_A = 76, + SCX_Linear_B = 77, + SCX_Lisu = 78, + SCX_Lycian = 79, + SCX_Lydian = 80, + SCX_Mahajani = 81, + SCX_Makasar = 82, + SCX_Malayalam = 83, + SCX_Mandaic = 84, + SCX_Manichaean = 85, + SCX_Marchen = 86, + SCX_Masaram_Gondi = 87, + SCX_Medefaidrin = 88, + SCX_Meetei_Mayek = 89, + SCX_Mende_Kikakui = 90, + SCX_Meroitic_Cursive = 91, + SCX_Meroitic_Hieroglyphs = 92, + SCX_Miao = 93, + SCX_Modi = 94, + SCX_Mongolian = 95, + SCX_Mro = 96, + SCX_Multani = 97, + SCX_Myanmar = 98, + SCX_Nabataean = 99, + SCX_Nandinagari = 100, + SCX_New_Tai_Lue = 101, + SCX_Newa = 102, + SCX_Nko = 103, + SCX_Nushu = 104, + SCX_Nyiakeng_Puachue_Hmong = 105, + SCX_Ogham = 106, + SCX_Ol_Chiki = 107, + SCX_Old_Hungarian = 108, + SCX_Old_Italic = 109, + SCX_Old_North_Arabian = 110, + SCX_Old_Permic = 111, + SCX_Old_Persian = 112, + SCX_Old_Sogdian = 113, + SCX_Old_South_Arabian = 114, + SCX_Old_Turkic = 115, + SCX_Oriya = 116, + SCX_Osage = 117, + SCX_Osmanya = 118, + SCX_Pahawh_Hmong = 119, + SCX_Palmyrene = 120, + SCX_Pau_Cin_Hau = 121, + SCX_Phags_Pa = 122, + SCX_Phoenician = 123, + SCX_Psalter_Pahlavi = 124, + SCX_Rejang = 125, + SCX_Runic = 126, + SCX_Samaritan = 127, + SCX_Saurashtra = 128, + SCX_Sharada = 129, + SCX_Shavian = 130, + SCX_Siddham = 131, + SCX_SignWriting = 132, + SCX_Sinhala = 133, + SCX_Sogdian = 134, + SCX_Sora_Sompeng = 135, + SCX_Soyombo = 136, + SCX_Sundanese = 137, + SCX_Syloti_Nagri = 138, + SCX_Syriac = 139, + SCX_Tagalog = 140, + SCX_Tagbanwa = 141, + SCX_Tai_Le = 142, + SCX_Tai_Tham = 143, + SCX_Tai_Viet = 144, + SCX_Takri = 145, + SCX_Tamil = 146, + SCX_Tangut = 147, + SCX_Telugu = 148, + SCX_Thaana = 149, + SCX_Thai = 150, + SCX_Tibetan = 151, + SCX_Tifinagh = 152, + SCX_Tirhuta = 153, + SCX_Ugaritic = 154, + SCX_Vai = 155, + SCX_Wancho = 156, + SCX_Warang_Citi = 157, + SCX_Yezidi = 158, + SCX_Yi = 159, + SCX_Zanabazar_Square = 160, SCX_use_AUX_TABLE_1 = -1, SCX_use_AUX_TABLE_2 = -2, SCX_use_AUX_TABLE_3 = -3, @@ -81907,7 +82884,9 @@ typedef enum { SCX_use_AUX_TABLE_50 = -50, SCX_use_AUX_TABLE_51 = -51, SCX_use_AUX_TABLE_52 = -52, - SCX_use_AUX_TABLE_53 = -53 + SCX_use_AUX_TABLE_53 = -53, + SCX_use_AUX_TABLE_54 = -54, + SCX_use_AUX_TABLE_55 = -55 } SCX_enum; # endif /* EBCDIC 037 */ @@ -81942,24 +82921,20 @@ static const SCX_enum SCX_AUX_TABLE_4[] = { }; static const SCX_enum SCX_AUX_TABLE_5[] = { - SCX_Armenian, - SCX_Georgian -}; - -static const SCX_enum SCX_AUX_TABLE_6[] = { SCX_Arabic, SCX_Hanifi_Rohingya, SCX_Syriac, - SCX_Thaana + SCX_Thaana, + SCX_Yezidi }; -static const SCX_enum SCX_AUX_TABLE_7[] = { +static const SCX_enum SCX_AUX_TABLE_6[] = { SCX_Arabic, SCX_Syriac, SCX_Thaana }; -static const SCX_enum SCX_AUX_TABLE_8[] = { +static const SCX_enum SCX_AUX_TABLE_7[] = { SCX_Adlam, SCX_Arabic, SCX_Hanifi_Rohingya, @@ -81970,22 +82945,23 @@ static const SCX_enum SCX_AUX_TABLE_8[] = { SCX_Syriac }; -static const SCX_enum SCX_AUX_TABLE_9[] = { +static const SCX_enum SCX_AUX_TABLE_8[] = { SCX_Arabic, SCX_Syriac }; -static const SCX_enum SCX_AUX_TABLE_10[] = { +static const SCX_enum SCX_AUX_TABLE_9[] = { SCX_Arabic, - SCX_Thaana + SCX_Thaana, + SCX_Yezidi }; -static const SCX_enum SCX_AUX_TABLE_11[] = { +static const SCX_enum SCX_AUX_TABLE_10[] = { SCX_Arabic, SCX_Hanifi_Rohingya }; -static const SCX_enum SCX_AUX_TABLE_12[] = { +static const SCX_enum SCX_AUX_TABLE_11[] = { SCX_Bengali, SCX_Devanagari, SCX_Grantha, @@ -82001,7 +82977,7 @@ static const SCX_enum SCX_AUX_TABLE_12[] = { SCX_Tirhuta }; -static const SCX_enum SCX_AUX_TABLE_13[] = { +static const SCX_enum SCX_AUX_TABLE_12[] = { SCX_Bengali, SCX_Devanagari, SCX_Grantha, @@ -82016,7 +82992,7 @@ static const SCX_enum SCX_AUX_TABLE_13[] = { SCX_Tirhuta }; -static const SCX_enum SCX_AUX_TABLE_14[] = { +static const SCX_enum SCX_AUX_TABLE_13[] = { SCX_Bengali, SCX_Devanagari, SCX_Dogra, @@ -82039,7 +83015,7 @@ static const SCX_enum SCX_AUX_TABLE_14[] = { SCX_Tirhuta }; -static const SCX_enum SCX_AUX_TABLE_15[] = { +static const SCX_enum SCX_AUX_TABLE_14[] = { SCX_Bengali, SCX_Devanagari, SCX_Dogra, @@ -82063,90 +83039,90 @@ static const SCX_enum SCX_AUX_TABLE_15[] = { SCX_Tirhuta }; -static const SCX_enum SCX_AUX_TABLE_16[] = { +static const SCX_enum SCX_AUX_TABLE_15[] = { SCX_Devanagari, SCX_Dogra, SCX_Kaithi, SCX_Mahajani }; -static const SCX_enum SCX_AUX_TABLE_17[] = { +static const SCX_enum SCX_AUX_TABLE_16[] = { SCX_Bengali, SCX_Chakma, SCX_Syloti_Nagri }; -static const SCX_enum SCX_AUX_TABLE_18[] = { +static const SCX_enum SCX_AUX_TABLE_17[] = { SCX_Gurmukhi, SCX_Multani }; -static const SCX_enum SCX_AUX_TABLE_19[] = { +static const SCX_enum SCX_AUX_TABLE_18[] = { SCX_Gujarati, SCX_Khojki }; -static const SCX_enum SCX_AUX_TABLE_20[] = { +static const SCX_enum SCX_AUX_TABLE_19[] = { SCX_Grantha, SCX_Tamil }; -static const SCX_enum SCX_AUX_TABLE_21[] = { +static const SCX_enum SCX_AUX_TABLE_20[] = { SCX_Kannada, SCX_Nandinagari }; -static const SCX_enum SCX_AUX_TABLE_22[] = { +static const SCX_enum SCX_AUX_TABLE_21[] = { SCX_Chakma, SCX_Myanmar, SCX_Tai_Le }; -static const SCX_enum SCX_AUX_TABLE_23[] = { +static const SCX_enum SCX_AUX_TABLE_22[] = { SCX_Georgian, SCX_Latin }; -static const SCX_enum SCX_AUX_TABLE_24[] = { +static const SCX_enum SCX_AUX_TABLE_23[] = { SCX_Hangul, SCX_Kore }; -static const SCX_enum SCX_AUX_TABLE_25[] = { +static const SCX_enum SCX_AUX_TABLE_24[] = { SCX_Buhid, SCX_Hanunoo, SCX_Tagalog, SCX_Tagbanwa }; -static const SCX_enum SCX_AUX_TABLE_26[] = { +static const SCX_enum SCX_AUX_TABLE_25[] = { SCX_Mongolian, SCX_Phags_Pa }; -static const SCX_enum SCX_AUX_TABLE_27[] = { +static const SCX_enum SCX_AUX_TABLE_26[] = { SCX_Bengali, SCX_Devanagari, SCX_Grantha, SCX_Kannada }; -static const SCX_enum SCX_AUX_TABLE_28[] = { +static const SCX_enum SCX_AUX_TABLE_27[] = { SCX_Devanagari, SCX_Grantha }; -static const SCX_enum SCX_AUX_TABLE_29[] = { +static const SCX_enum SCX_AUX_TABLE_28[] = { SCX_Bengali, SCX_Devanagari }; -static const SCX_enum SCX_AUX_TABLE_30[] = { +static const SCX_enum SCX_AUX_TABLE_29[] = { SCX_Devanagari, SCX_Sharada }; -static const SCX_enum SCX_AUX_TABLE_31[] = { +static const SCX_enum SCX_AUX_TABLE_30[] = { SCX_Devanagari, SCX_Kannada, SCX_Malayalam, @@ -82155,12 +83131,12 @@ static const SCX_enum SCX_AUX_TABLE_31[] = { SCX_Telugu }; -static const SCX_enum SCX_AUX_TABLE_32[] = { +static const SCX_enum SCX_AUX_TABLE_31[] = { SCX_Devanagari, SCX_Nandinagari }; -static const SCX_enum SCX_AUX_TABLE_33[] = { +static const SCX_enum SCX_AUX_TABLE_32[] = { SCX_Bengali, SCX_Devanagari, SCX_Grantha, @@ -82171,12 +83147,17 @@ static const SCX_enum SCX_AUX_TABLE_33[] = { SCX_Tirhuta }; -static const SCX_enum SCX_AUX_TABLE_34[] = { +static const SCX_enum SCX_AUX_TABLE_33[] = { SCX_Devanagari, SCX_Grantha, SCX_Kannada }; +static const SCX_enum SCX_AUX_TABLE_34[] = { + SCX_Cyrillic, + SCX_Syriac +}; + static const SCX_enum SCX_AUX_TABLE_35[] = { SCX_Latin, SCX_Mongolian @@ -82252,6 +83233,14 @@ static const SCX_enum SCX_AUX_TABLE_44[] = { }; static const SCX_enum SCX_AUX_TABLE_45[] = { + SCX_Han, + SCX_Hanb, + SCX_Jpan, + SCX_Kore, + SCX_Latin +}; + +static const SCX_enum SCX_AUX_TABLE_46[] = { SCX_Devanagari, SCX_Dogra, SCX_Gujarati, @@ -82268,7 +83257,7 @@ static const SCX_enum SCX_AUX_TABLE_45[] = { SCX_Tirhuta }; -static const SCX_enum SCX_AUX_TABLE_46[] = { +static const SCX_enum SCX_AUX_TABLE_47[] = { SCX_Devanagari, SCX_Dogra, SCX_Gujarati, @@ -82284,7 +83273,7 @@ static const SCX_enum SCX_AUX_TABLE_46[] = { SCX_Tirhuta }; -static const SCX_enum SCX_AUX_TABLE_47[] = { +static const SCX_enum SCX_AUX_TABLE_48[] = { SCX_Devanagari, SCX_Dogra, SCX_Gujarati, @@ -82298,34 +83287,39 @@ static const SCX_enum SCX_AUX_TABLE_47[] = { SCX_Tirhuta }; -static const SCX_enum SCX_AUX_TABLE_48[] = { +static const SCX_enum SCX_AUX_TABLE_49[] = { SCX_Devanagari, SCX_Tamil }; -static const SCX_enum SCX_AUX_TABLE_49[] = { +static const SCX_enum SCX_AUX_TABLE_50[] = { SCX_Kayah_Li, SCX_Latin, SCX_Myanmar }; -static const SCX_enum SCX_AUX_TABLE_50[] = { +static const SCX_enum SCX_AUX_TABLE_51[] = { SCX_Buginese, SCX_Javanese }; -static const SCX_enum SCX_AUX_TABLE_51[] = { +static const SCX_enum SCX_AUX_TABLE_52[] = { + SCX_Arabic, + SCX_Thaana +}; + +static const SCX_enum SCX_AUX_TABLE_53[] = { SCX_Cypriot, SCX_Linear_B }; -static const SCX_enum SCX_AUX_TABLE_52[] = { +static const SCX_enum SCX_AUX_TABLE_54[] = { SCX_Cypriot, SCX_Linear_A, SCX_Linear_B }; -static const SCX_enum SCX_AUX_TABLE_53[] = { +static const SCX_enum SCX_AUX_TABLE_55[] = { SCX_Arabic, SCX_Coptic }; @@ -82384,7 +83378,9 @@ static const SCX_enum * const SCX_AUX_TABLE_ptrs[] = { SCX_AUX_TABLE_50, SCX_AUX_TABLE_51, SCX_AUX_TABLE_52, - SCX_AUX_TABLE_53 + SCX_AUX_TABLE_53, + SCX_AUX_TABLE_54, + SCX_AUX_TABLE_55 }; /* Parallel table to the above, giving the number of elements in each table @@ -82396,36 +83392,36 @@ static const U8 SCX_AUX_TABLE_lengths[] = { 2 /* SCX_AUX_TABLE_2 */, 2 /* SCX_AUX_TABLE_3 */, 2 /* SCX_AUX_TABLE_4 */, - 2 /* SCX_AUX_TABLE_5 */, - 4 /* SCX_AUX_TABLE_6 */, - 3 /* SCX_AUX_TABLE_7 */, - 8 /* SCX_AUX_TABLE_8 */, - 2 /* SCX_AUX_TABLE_9 */, + 5 /* SCX_AUX_TABLE_5 */, + 3 /* SCX_AUX_TABLE_6 */, + 8 /* SCX_AUX_TABLE_7 */, + 2 /* SCX_AUX_TABLE_8 */, + 3 /* SCX_AUX_TABLE_9 */, 2 /* SCX_AUX_TABLE_10 */, - 2 /* SCX_AUX_TABLE_11 */, - 13 /* SCX_AUX_TABLE_12 */, - 12 /* SCX_AUX_TABLE_13 */, - 20 /* SCX_AUX_TABLE_14 */, - 21 /* SCX_AUX_TABLE_15 */, - 4 /* SCX_AUX_TABLE_16 */, - 3 /* SCX_AUX_TABLE_17 */, + 13 /* SCX_AUX_TABLE_11 */, + 12 /* SCX_AUX_TABLE_12 */, + 20 /* SCX_AUX_TABLE_13 */, + 21 /* SCX_AUX_TABLE_14 */, + 4 /* SCX_AUX_TABLE_15 */, + 3 /* SCX_AUX_TABLE_16 */, + 2 /* SCX_AUX_TABLE_17 */, 2 /* SCX_AUX_TABLE_18 */, 2 /* SCX_AUX_TABLE_19 */, 2 /* SCX_AUX_TABLE_20 */, - 2 /* SCX_AUX_TABLE_21 */, - 3 /* SCX_AUX_TABLE_22 */, + 3 /* SCX_AUX_TABLE_21 */, + 2 /* SCX_AUX_TABLE_22 */, 2 /* SCX_AUX_TABLE_23 */, - 2 /* SCX_AUX_TABLE_24 */, - 4 /* SCX_AUX_TABLE_25 */, - 2 /* SCX_AUX_TABLE_26 */, - 4 /* SCX_AUX_TABLE_27 */, + 4 /* SCX_AUX_TABLE_24 */, + 2 /* SCX_AUX_TABLE_25 */, + 4 /* SCX_AUX_TABLE_26 */, + 2 /* SCX_AUX_TABLE_27 */, 2 /* SCX_AUX_TABLE_28 */, 2 /* SCX_AUX_TABLE_29 */, - 2 /* SCX_AUX_TABLE_30 */, - 6 /* SCX_AUX_TABLE_31 */, - 2 /* SCX_AUX_TABLE_32 */, - 8 /* SCX_AUX_TABLE_33 */, - 3 /* SCX_AUX_TABLE_34 */, + 6 /* SCX_AUX_TABLE_30 */, + 2 /* SCX_AUX_TABLE_31 */, + 8 /* SCX_AUX_TABLE_32 */, + 3 /* SCX_AUX_TABLE_33 */, + 2 /* SCX_AUX_TABLE_34 */, 2 /* SCX_AUX_TABLE_35 */, 3 /* SCX_AUX_TABLE_36 */, 4 /* SCX_AUX_TABLE_37 */, @@ -82436,15 +83432,17 @@ static const U8 SCX_AUX_TABLE_lengths[] = { 6 /* SCX_AUX_TABLE_42 */, 2 /* SCX_AUX_TABLE_43 */, 2 /* SCX_AUX_TABLE_44 */, - 14 /* SCX_AUX_TABLE_45 */, - 13 /* SCX_AUX_TABLE_46 */, - 11 /* SCX_AUX_TABLE_47 */, - 2 /* SCX_AUX_TABLE_48 */, - 3 /* SCX_AUX_TABLE_49 */, - 2 /* SCX_AUX_TABLE_50 */, + 5 /* SCX_AUX_TABLE_45 */, + 14 /* SCX_AUX_TABLE_46 */, + 13 /* SCX_AUX_TABLE_47 */, + 11 /* SCX_AUX_TABLE_48 */, + 2 /* SCX_AUX_TABLE_49 */, + 3 /* SCX_AUX_TABLE_50 */, 2 /* SCX_AUX_TABLE_51 */, - 3 /* SCX_AUX_TABLE_52 */, - 2 /* SCX_AUX_TABLE_53 */ + 2 /* SCX_AUX_TABLE_52 */, + 2 /* SCX_AUX_TABLE_53 */, + 3 /* SCX_AUX_TABLE_54 */, + 2 /* SCX_AUX_TABLE_55 */ }; /* This table, indexed by the script enum, gives the zero code point for that @@ -82476,6 +83474,7 @@ static const UV script_zeros[] = { 0, /* Chakma */ 0xaa50, /* Cham */ '0', /* Cherokee */ + '0', /* Chorasmian */ 0, /* Common */ '0', /* Coptic */ '0', /* Cuneiform */ @@ -82483,6 +83482,7 @@ static const UV script_zeros[] = { '0', /* Cyrillic */ '0', /* Deseret */ 0x966, /* Devanagari */ + 0x11950, /* Dives_Akuru */ 0x966, /* Dogra */ '0', /* Duployan */ '0', /* Egyptian_Hieroglyphs */ @@ -82509,6 +83509,7 @@ static const UV script_zeros[] = { 0, /* Inherited */ '0', /* Inscriptional_Pahlavi */ '0', /* Inscriptional_Parthian */ + '0', /* INVALID */ 0xa9d0, /* Javanese */ '0', /* Jpan */ 0x966, /* Kaithi */ @@ -82516,6 +83517,7 @@ static const UV script_zeros[] = { '0', /* Katakana */ 0xa900, /* Kayah_Li */ '0', /* Kharoshthi */ + '0', /* Khitan_Small_Script */ 0x17e0, /* Khmer */ 0xae6, /* Khojki */ 0x112f0, /* Khudawadi */ @@ -82605,7 +83607,8 @@ static const UV script_zeros[] = { '0', /* Ugaritic */ 0xa620, /* Vai */ 0x1e2f0, /* Wancho */ - 0x118e0 /* Warang_Citi */ + 0x118e0, /* Warang_Citi */ + 0x660 /* Yezidi */ }; static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */ @@ -82687,8 +83690,6 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */ SCX_Armenian, SCX_Unknown, SCX_Armenian, - SCX_use_AUX_TABLE_5, - SCX_Armenian, SCX_Unknown, SCX_Armenian, SCX_Unknown, @@ -82701,23 +83702,23 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */ SCX_Arabic, SCX_Common, SCX_Arabic, - SCX_use_AUX_TABLE_6, + SCX_use_AUX_TABLE_5, SCX_Arabic, + SCX_use_AUX_TABLE_5, SCX_use_AUX_TABLE_6, - SCX_use_AUX_TABLE_7, SCX_Unknown, SCX_Arabic, - SCX_use_AUX_TABLE_6, + SCX_use_AUX_TABLE_5, + SCX_Arabic, + SCX_use_AUX_TABLE_7, SCX_Arabic, SCX_use_AUX_TABLE_8, SCX_Arabic, SCX_use_AUX_TABLE_9, SCX_Arabic, - SCX_use_AUX_TABLE_10, - SCX_Arabic, - SCX_use_AUX_TABLE_9, + SCX_use_AUX_TABLE_8, SCX_Arabic, - SCX_use_AUX_TABLE_11, + SCX_use_AUX_TABLE_10, SCX_Arabic, SCX_Common, SCX_Arabic, @@ -82750,13 +83751,13 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */ SCX_Common, SCX_Arabic, SCX_Devanagari, + SCX_use_AUX_TABLE_11, SCX_use_AUX_TABLE_12, - SCX_use_AUX_TABLE_13, SCX_Inherited, SCX_Devanagari, + SCX_use_AUX_TABLE_13, SCX_use_AUX_TABLE_14, SCX_use_AUX_TABLE_15, - SCX_use_AUX_TABLE_16, SCX_Devanagari, SCX_Bengali, SCX_Unknown, @@ -82784,7 +83785,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */ SCX_Unknown, SCX_Bengali, SCX_Unknown, - SCX_use_AUX_TABLE_17, + SCX_use_AUX_TABLE_16, SCX_Bengali, SCX_Unknown, SCX_Gurmukhi, @@ -82817,7 +83818,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */ SCX_Unknown, SCX_Gurmukhi, SCX_Unknown, - SCX_use_AUX_TABLE_18, + SCX_use_AUX_TABLE_17, SCX_Gurmukhi, SCX_Unknown, SCX_Gujarati, @@ -82844,7 +83845,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */ SCX_Unknown, SCX_Gujarati, SCX_Unknown, - SCX_use_AUX_TABLE_19, + SCX_use_AUX_TABLE_18, SCX_Gujarati, SCX_Unknown, SCX_Gujarati, @@ -82907,7 +83908,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */ SCX_Unknown, SCX_Tamil, SCX_Unknown, - SCX_use_AUX_TABLE_20, + SCX_use_AUX_TABLE_19, SCX_Tamil, SCX_Unknown, SCX_Telugu, @@ -82955,7 +83956,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */ SCX_Unknown, SCX_Kannada, SCX_Unknown, - SCX_use_AUX_TABLE_21, + SCX_use_AUX_TABLE_20, SCX_Unknown, SCX_Kannada, SCX_Unknown, @@ -82973,8 +83974,6 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */ SCX_Unknown, SCX_Malayalam, SCX_Unknown, - SCX_Malayalam, - SCX_Unknown, SCX_Sinhala, SCX_Unknown, SCX_Sinhala, @@ -83041,7 +84040,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */ SCX_Tibetan, SCX_Unknown, SCX_Myanmar, - SCX_use_AUX_TABLE_22, + SCX_use_AUX_TABLE_21, SCX_Myanmar, SCX_Georgian, SCX_Unknown, @@ -83050,9 +84049,9 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */ SCX_Georgian, SCX_Unknown, SCX_Georgian, - SCX_use_AUX_TABLE_23, + SCX_use_AUX_TABLE_22, SCX_Georgian, - SCX_use_AUX_TABLE_24, + SCX_use_AUX_TABLE_23, SCX_Ethiopic, SCX_Unknown, SCX_Ethiopic, @@ -83105,7 +84104,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */ SCX_Tagalog, SCX_Unknown, SCX_Hanunoo, - SCX_use_AUX_TABLE_25, + SCX_use_AUX_TABLE_24, SCX_Unknown, SCX_Buhid, SCX_Unknown, @@ -83122,9 +84121,9 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */ SCX_Khmer, SCX_Unknown, SCX_Mongolian, - SCX_use_AUX_TABLE_26, + SCX_use_AUX_TABLE_25, SCX_Mongolian, - SCX_use_AUX_TABLE_26, + SCX_use_AUX_TABLE_25, SCX_Mongolian, SCX_Unknown, SCX_Mongolian, @@ -83192,33 +84191,33 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */ SCX_Georgian, SCX_Sundanese, SCX_Unknown, - SCX_use_AUX_TABLE_27, + SCX_use_AUX_TABLE_26, SCX_Devanagari, + SCX_use_AUX_TABLE_26, SCX_use_AUX_TABLE_27, - SCX_use_AUX_TABLE_28, SCX_Devanagari, + SCX_use_AUX_TABLE_28, SCX_use_AUX_TABLE_29, - SCX_use_AUX_TABLE_30, + SCX_use_AUX_TABLE_28, SCX_use_AUX_TABLE_29, SCX_use_AUX_TABLE_30, - SCX_use_AUX_TABLE_31, - SCX_Devanagari, - SCX_use_AUX_TABLE_30, SCX_Devanagari, - SCX_use_AUX_TABLE_30, SCX_use_AUX_TABLE_29, SCX_Devanagari, - SCX_use_AUX_TABLE_32, SCX_use_AUX_TABLE_29, + SCX_use_AUX_TABLE_28, SCX_Devanagari, - SCX_use_AUX_TABLE_29, + SCX_use_AUX_TABLE_31, + SCX_use_AUX_TABLE_28, + SCX_Devanagari, + SCX_use_AUX_TABLE_28, SCX_Devanagari, + SCX_use_AUX_TABLE_32, + SCX_use_AUX_TABLE_27, SCX_use_AUX_TABLE_33, SCX_use_AUX_TABLE_28, - SCX_use_AUX_TABLE_34, - SCX_use_AUX_TABLE_29, SCX_Bengali, - SCX_use_AUX_TABLE_28, + SCX_use_AUX_TABLE_27, SCX_Nandinagari, SCX_Unknown, SCX_Latin, @@ -83233,6 +84232,8 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */ SCX_Latin, SCX_Greek, SCX_Inherited, + SCX_use_AUX_TABLE_34, + SCX_Inherited, SCX_Unknown, SCX_Inherited, SCX_Latin, @@ -83374,7 +84375,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */ SCX_Common, SCX_use_AUX_TABLE_37, SCX_use_AUX_TABLE_40, - SCX_use_AUX_TABLE_24, + SCX_use_AUX_TABLE_23, SCX_use_AUX_TABLE_39, SCX_use_AUX_TABLE_41, SCX_Common, @@ -83395,19 +84396,18 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */ SCX_Unknown, SCX_use_AUX_TABLE_1, SCX_Unknown, - SCX_use_AUX_TABLE_24, + SCX_use_AUX_TABLE_23, SCX_Unknown, SCX_use_AUX_TABLE_37, SCX_use_AUX_TABLE_1, - SCX_Unknown, SCX_use_AUX_TABLE_37, SCX_Unknown, SCX_use_AUX_TABLE_44, - SCX_use_AUX_TABLE_24, + SCX_use_AUX_TABLE_23, SCX_Unknown, SCX_use_AUX_TABLE_37, SCX_Common, - SCX_use_AUX_TABLE_24, + SCX_use_AUX_TABLE_23, SCX_Common, SCX_use_AUX_TABLE_37, SCX_Common, @@ -83423,7 +84423,6 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */ SCX_use_AUX_TABLE_37, SCX_Common, SCX_use_AUX_TABLE_37, - SCX_Unknown, SCX_Common, SCX_use_AUX_TABLE_37, SCX_Unknown, @@ -83439,6 +84438,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */ SCX_Cyrillic, SCX_Bamum, SCX_Unknown, + SCX_use_AUX_TABLE_45, SCX_Common, SCX_Latin, SCX_Common, @@ -83449,9 +84449,9 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */ SCX_Latin, SCX_Syloti_Nagri, SCX_Unknown, - SCX_use_AUX_TABLE_45, SCX_use_AUX_TABLE_46, SCX_use_AUX_TABLE_47, + SCX_use_AUX_TABLE_48, SCX_Unknown, SCX_Phags_Pa, SCX_Unknown, @@ -83460,21 +84460,21 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */ SCX_Saurashtra, SCX_Unknown, SCX_Devanagari, - SCX_use_AUX_TABLE_29, + SCX_use_AUX_TABLE_28, SCX_Devanagari, - SCX_use_AUX_TABLE_48, + SCX_use_AUX_TABLE_49, SCX_Devanagari, SCX_Kayah_Li, - SCX_use_AUX_TABLE_49, + SCX_use_AUX_TABLE_50, SCX_Kayah_Li, SCX_Rejang, SCX_Unknown, SCX_Rejang, - SCX_use_AUX_TABLE_24, + SCX_use_AUX_TABLE_23, SCX_Unknown, SCX_Javanese, SCX_Unknown, - SCX_use_AUX_TABLE_50, + SCX_use_AUX_TABLE_51, SCX_Javanese, SCX_Unknown, SCX_Javanese, @@ -83508,17 +84508,18 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */ SCX_Latin, SCX_Greek, SCX_Latin, + SCX_Common, SCX_Unknown, SCX_Cherokee, SCX_Meetei_Mayek, SCX_Unknown, SCX_Meetei_Mayek, SCX_Unknown, - SCX_use_AUX_TABLE_24, + SCX_use_AUX_TABLE_23, SCX_Unknown, - SCX_use_AUX_TABLE_24, + SCX_use_AUX_TABLE_23, SCX_Unknown, - SCX_use_AUX_TABLE_24, + SCX_use_AUX_TABLE_23, SCX_Unknown, SCX_use_AUX_TABLE_37, SCX_Unknown, @@ -83549,9 +84550,9 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */ SCX_Arabic, SCX_Unknown, SCX_Arabic, - SCX_use_AUX_TABLE_10, + SCX_use_AUX_TABLE_52, SCX_Arabic, - SCX_use_AUX_TABLE_10, + SCX_use_AUX_TABLE_52, SCX_Unknown, SCX_Inherited, SCX_Common, @@ -83582,15 +84583,15 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */ SCX_use_AUX_TABLE_41, SCX_use_AUX_TABLE_44, SCX_use_AUX_TABLE_41, - SCX_use_AUX_TABLE_24, + SCX_use_AUX_TABLE_23, SCX_Unknown, - SCX_use_AUX_TABLE_24, + SCX_use_AUX_TABLE_23, SCX_Unknown, - SCX_use_AUX_TABLE_24, + SCX_use_AUX_TABLE_23, SCX_Unknown, - SCX_use_AUX_TABLE_24, + SCX_use_AUX_TABLE_23, SCX_Unknown, - SCX_use_AUX_TABLE_24, + SCX_use_AUX_TABLE_23, SCX_Unknown, SCX_Common, SCX_Unknown, @@ -83612,11 +84613,11 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */ SCX_Unknown, SCX_Linear_B, SCX_Unknown, - SCX_use_AUX_TABLE_51, + SCX_use_AUX_TABLE_53, SCX_Unknown, - SCX_use_AUX_TABLE_52, + SCX_use_AUX_TABLE_54, SCX_Unknown, - SCX_use_AUX_TABLE_51, + SCX_use_AUX_TABLE_53, SCX_Greek, SCX_Unknown, SCX_Common, @@ -83630,7 +84631,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */ SCX_Unknown, SCX_Carian, SCX_Unknown, - SCX_use_AUX_TABLE_53, + SCX_use_AUX_TABLE_55, SCX_Unknown, SCX_Old_Italic, SCX_Unknown, @@ -83756,10 +84757,18 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */ SCX_Unknown, SCX_Arabic, SCX_Unknown, + SCX_Yezidi, + SCX_Unknown, + SCX_Yezidi, + SCX_Unknown, + SCX_Yezidi, + SCX_Unknown, SCX_Old_Sogdian, SCX_Unknown, SCX_Sogdian, SCX_Unknown, + SCX_Chorasmian, + SCX_Unknown, SCX_Elymaic, SCX_Unknown, SCX_Brahmi, @@ -83783,8 +84792,6 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */ SCX_Unknown, SCX_Sharada, SCX_Unknown, - SCX_Sharada, - SCX_Unknown, SCX_Sinhala, SCX_Unknown, SCX_Khojki, @@ -83806,9 +84813,9 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */ SCX_Khudawadi, SCX_Unknown, SCX_Grantha, - SCX_use_AUX_TABLE_20, + SCX_use_AUX_TABLE_19, SCX_Grantha, - SCX_use_AUX_TABLE_20, + SCX_use_AUX_TABLE_19, SCX_Unknown, SCX_Grantha, SCX_Unknown, @@ -83822,7 +84829,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */ SCX_Unknown, SCX_Grantha, SCX_Unknown, - SCX_use_AUX_TABLE_20, + SCX_use_AUX_TABLE_19, SCX_Grantha, SCX_Unknown, SCX_Grantha, @@ -83843,8 +84850,6 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */ SCX_Unknown, SCX_Newa, SCX_Unknown, - SCX_Newa, - SCX_Unknown, SCX_Tirhuta, SCX_Unknown, SCX_Tirhuta, @@ -83874,6 +84879,21 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */ SCX_Warang_Citi, SCX_Unknown, SCX_Warang_Citi, + SCX_Dives_Akuru, + SCX_Unknown, + SCX_Dives_Akuru, + SCX_Unknown, + SCX_Dives_Akuru, + SCX_Unknown, + SCX_Dives_Akuru, + SCX_Unknown, + SCX_Dives_Akuru, + SCX_Unknown, + SCX_Dives_Akuru, + SCX_Unknown, + SCX_Dives_Akuru, + SCX_Unknown, + SCX_Dives_Akuru, SCX_Unknown, SCX_Nandinagari, SCX_Unknown, @@ -83929,10 +84949,12 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */ SCX_Unknown, SCX_Makasar, SCX_Unknown, + SCX_Lisu, + SCX_Unknown, SCX_Tamil, - SCX_use_AUX_TABLE_20, + SCX_use_AUX_TABLE_19, SCX_Tamil, - SCX_use_AUX_TABLE_20, + SCX_use_AUX_TABLE_19, SCX_Tamil, SCX_Unknown, SCX_Tamil, @@ -83983,8 +85005,14 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */ SCX_Tangut, SCX_Nushu, SCX_Common, + SCX_Khitan_Small_Script, + SCX_Unknown, + SCX_use_AUX_TABLE_37, + SCX_Unknown, + SCX_Tangut, SCX_Unknown, SCX_Tangut, + SCX_Khitan_Small_Script, SCX_Unknown, SCX_Tangut, SCX_Unknown, @@ -84196,18 +85224,20 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */ SCX_Common, SCX_Unknown, SCX_Common, - SCX_Unknown, + SCX_use_AUX_TABLE_43, SCX_Common, SCX_Unknown, SCX_Common, - SCX_use_AUX_TABLE_43, + SCX_Unknown, SCX_Common, SCX_Unknown, + SCX_use_AUX_TABLE_37, + SCX_Unknown, SCX_Common, SCX_Unknown, SCX_Common, SCX_Unknown, - SCX_use_AUX_TABLE_37, + SCX_Common, SCX_Unknown, SCX_Common, SCX_Unknown, @@ -84269,6 +85299,8 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */ SCX_Unknown, SCX_use_AUX_TABLE_37, SCX_Unknown, + SCX_use_AUX_TABLE_37, + SCX_Unknown, SCX_Common, SCX_Unknown, SCX_Common, @@ -84286,7 +85318,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */ - 1848, /* Number of elements */ + 1884, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -84339,8 +85371,6 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */ 0xF8, 0x2D8, 0x2DE, - 0x2E5, - 0x2EC, 0x300, 0x370, 0x375, @@ -84368,14 +85398,13 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */ 0x531, 0x557, 0x559, - 0x55A, - 0x55B, 0x55D, 0x55E, 0x55F, 0x560, 0x589, 0x58A, + 0x58B, 0x591, 0x5BE, 0x5BF, @@ -84464,7 +85493,7 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x8E2, 0x8E3, @@ -84606,7 +85635,7 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -84709,7 +85738,6 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */ 0xCF3, 0xD00, 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -84733,7 +85761,7 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */ 0xD70, 0xD7A, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -84939,7 +85967,7 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */ 0x1A90, 0x1A9A, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B05, 0x1B34, @@ -85242,7 +86270,7 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3297, @@ -85273,11 +86301,11 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */ 0xA6A0, 0xA6F0, 0xA6F2, - 0xA717, + 0xA708, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA802, 0xA803, 0xA806, @@ -85286,6 +86314,8 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */ 0xA80C, 0xA823, 0xA828, + 0xA82C, + 0xA82D, 0xA840, 0xA874, 0xA880, @@ -85360,7 +86390,7 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */ 0xAB28, 0xAB2F, 0xAB30, - 0xAB68, + 0xAB6A, 0xAB70, 0xABE3, 0xABEB, @@ -85586,6 +86616,12 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */ 0x10D28, 0x10D30, 0x10D3A, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAD, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, @@ -85593,6 +86629,8 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */ 0x10F30, 0x10F46, 0x10F51, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11000, @@ -85622,6 +86660,7 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */ 0x11144, 0x11145, 0x11147, + 0x11148, 0x11150, 0x11173, 0x11174, @@ -85634,6 +86673,7 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */ 0x111C5, 0x111C9, 0x111CD, + 0x111CE, 0x111D0, 0x111DA, 0x111DB, @@ -85702,7 +86742,7 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */ 0x1145A, 0x1145E, 0x1145F, - 0x11460, + 0x11462, 0x11480, 0x114B0, 0x114C4, @@ -85743,7 +86783,26 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */ 0x118E0, 0x118EA, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11930, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x1193F, + 0x11940, + 0x11941, + 0x11942, + 0x11944, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -85823,6 +86882,8 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */ 0x11EE0, 0x11EF3, 0x11EF7, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12400, @@ -85871,6 +86932,9 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */ 0x16FE2, 0x16FE3, 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x1B000, 0x1B001, 0x1B164, @@ -86131,6 +87195,10 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */ 0x1F93C, 0x1F946, 0x1F947, + 0x1FB00, + 0x1FBF0, + 0x1FBFA, + 0x1FC00, 0x1FFFE, 0xE0001, 0xE0002, @@ -86150,27 +87218,27 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */ typedef enum { WB_Other = 0, - WB_ALetter = 1, - WB_CR = 2, - WB_Double_Quote = 3, - WB_Extend = 4, - WB_ExtendNumLet = 5, - WB_Format = 6, - WB_Hebrew_Letter = 7, - WB_Katakana = 8, - WB_LF = 9, - WB_MidLetter = 10, - WB_MidNum = 11, - WB_MidNumLet = 12, - WB_Newline = 13, - WB_Numeric = 14, - WB_Perl_Tailored_HSpace = 15, - WB_Regional_Indicator = 16, - WB_Single_Quote = 17, - WB_XPG_LE = 18, - WB_XPG_XX = 19, - WB_ZWJ = 20, - WB_EDGE = 21, + WB_CR = 1, + WB_Double_Quote = 2, + WB_EDGE = 3, + WB_ExtPict_LE = 4, + WB_ExtPict_XX = 5, + WB_ExtendNumLet = 6, + WB_Extend = 7, + WB_Format = 8, + WB_Hebrew_Letter = 9, + WB_Perl_Tailored_HSpace = 10, + WB_Katakana = 11, + WB_ALetter = 12, + WB_LF = 13, + WB_MidNumLet = 14, + WB_MidLetter = 15, + WB_MidNum = 16, + WB_Newline = 17, + WB_Numeric = 18, + WB_Regional_Indicator = 19, + WB_Single_Quote = 20, + WB_ZWJ = 21, WB_E_Base = 22, WB_E_Base_GAZ = 22, WB_E_Modifier = 22, @@ -86209,11 +87277,11 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */ WB_Other, WB_Perl_Tailored_HSpace, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_ALetter, WB_Other, WB_Format, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, WB_ALetter, WB_Other, @@ -86228,8 +87296,6 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */ WB_ALetter, WB_Other, WB_ALetter, - WB_Other, - WB_ALetter, WB_Extend, WB_ALetter, WB_Other, @@ -86259,11 +87325,10 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */ WB_ALetter, WB_Other, WB_ALetter, - WB_Other, - WB_ALetter, - WB_Other, + WB_MidLetter, WB_ALetter, WB_MidNum, + WB_ALetter, WB_Other, WB_Extend, WB_Other, @@ -86597,7 +87662,6 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */ WB_ALetter, WB_Other, WB_Extend, - WB_Other, WB_ALetter, WB_Other, WB_ALetter, @@ -86929,13 +87993,13 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */ WB_Format, WB_ExtendNumLet, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, WB_ExtendNumLet, WB_Other, WB_MidNum, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, WB_ExtendNumLet, WB_Other, @@ -86962,7 +88026,7 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */ WB_Other, WB_ALetter, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, WB_ALetter, WB_Other, @@ -86973,7 +88037,7 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */ WB_ALetter, WB_Other, WB_ALetter, - WB_XPG_LE, + WB_ExtPict_LE, WB_Other, WB_ALetter, WB_Other, @@ -86983,87 +88047,87 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */ WB_Other, WB_ALetter, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, WB_ALetter, - WB_XPG_LE, + WB_ExtPict_LE, WB_ALetter, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, WB_ALetter, WB_Other, @@ -87113,11 +88177,11 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */ WB_ALetter, WB_Other, WB_Extend, - WB_XPG_XX, + WB_ExtPict_XX, WB_Katakana, WB_Other, WB_ALetter, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, WB_Extend, WB_Katakana, @@ -87134,9 +88198,9 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */ WB_Other, WB_Katakana, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, WB_Katakana, WB_Other, @@ -87175,6 +88239,8 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */ WB_ALetter, WB_Extend, WB_Other, + WB_Extend, + WB_Other, WB_ALetter, WB_Other, WB_Extend, @@ -87477,6 +88543,12 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */ WB_Other, WB_ALetter, WB_Other, + WB_Extend, + WB_Other, + WB_ALetter, + WB_Other, + WB_ALetter, + WB_Other, WB_ALetter, WB_Other, WB_ALetter, @@ -87484,6 +88556,8 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */ WB_Other, WB_ALetter, WB_Other, + WB_ALetter, + WB_Other, WB_Extend, WB_ALetter, WB_Extend, @@ -87510,6 +88584,7 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */ WB_Other, WB_ALetter, WB_Extend, + WB_ALetter, WB_Other, WB_ALetter, WB_Extend, @@ -87523,6 +88598,7 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */ WB_Other, WB_Extend, WB_Other, + WB_Extend, WB_Numeric, WB_ALetter, WB_Other, @@ -87636,6 +88712,25 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */ WB_ALetter, WB_Other, WB_ALetter, + WB_Other, + WB_ALetter, + WB_Other, + WB_ALetter, + WB_Extend, + WB_Other, + WB_Extend, + WB_Other, + WB_Extend, + WB_ALetter, + WB_Extend, + WB_ALetter, + WB_Extend, + WB_Other, + WB_Numeric, + WB_Other, + WB_ALetter, + WB_Other, + WB_ALetter, WB_Extend, WB_Other, WB_Extend, @@ -87720,6 +88815,8 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */ WB_Other, WB_ALetter, WB_Other, + WB_ALetter, + WB_Other, WB_Format, WB_Other, WB_ALetter, @@ -87759,6 +88856,9 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */ WB_ALetter, WB_Other, WB_ALetter, + WB_Extend, + WB_Other, + WB_Extend, WB_Other, WB_Katakana, WB_Other, @@ -87961,65 +89061,69 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */ WB_Other, WB_ALetter, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_ALetter, WB_Other, WB_ALetter, WB_Other, - WB_XPG_XX, - WB_XPG_LE, + WB_ExtPict_XX, + WB_ExtPict_LE, WB_ALetter, - WB_XPG_LE, + WB_ExtPict_LE, WB_ALetter, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Regional_Indicator, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Extend, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, + WB_Other, + WB_Numeric, + WB_Other, + WB_ExtPict_XX, WB_Other, WB_Format, WB_Other, @@ -88041,7 +89145,7 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */ - 1871, /* Number of elements */ + 1907, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -88117,8 +89221,6 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */ 0x100, 0x2D8, 0x2DE, - 0x2E5, - 0x2EC, 0x300, 0x370, 0x375, @@ -88146,14 +89248,13 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */ 0x531, 0x557, 0x559, - 0x55A, - 0x55B, 0x55D, 0x55E, 0x55F, 0x560, 0x589, 0x58A, + 0x58B, 0x591, 0x5BE, 0x5BF, @@ -88242,7 +89343,7 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x8E2, 0x8E3, @@ -88384,7 +89485,7 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -88487,7 +89588,6 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */ 0xCF3, 0xD00, 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -88511,7 +89611,7 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */ 0xD70, 0xD7A, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -88717,7 +89817,7 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */ 0x1A90, 0x1A9A, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B05, 0x1B34, @@ -89020,7 +90120,7 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3297, @@ -89051,11 +90151,11 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */ 0xA6A0, 0xA6F0, 0xA6F2, - 0xA717, + 0xA708, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA802, 0xA803, 0xA806, @@ -89064,6 +90164,8 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */ 0xA80C, 0xA823, 0xA828, + 0xA82C, + 0xA82D, 0xA840, 0xA874, 0xA880, @@ -89138,7 +90240,7 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */ 0xAB28, 0xAB2F, 0xAB30, - 0xAB68, + 0xAB6A, 0xAB70, 0xABE3, 0xABEB, @@ -89364,6 +90466,12 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */ 0x10D28, 0x10D30, 0x10D3A, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAD, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, @@ -89371,6 +90479,8 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */ 0x10F30, 0x10F46, 0x10F51, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11000, @@ -89400,6 +90510,7 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */ 0x11144, 0x11145, 0x11147, + 0x11148, 0x11150, 0x11173, 0x11174, @@ -89412,6 +90523,7 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */ 0x111C5, 0x111C9, 0x111CD, + 0x111CE, 0x111D0, 0x111DA, 0x111DB, @@ -89480,7 +90592,7 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */ 0x1145A, 0x1145E, 0x1145F, - 0x11460, + 0x11462, 0x11480, 0x114B0, 0x114C4, @@ -89521,7 +90633,26 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */ 0x118E0, 0x118EA, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11930, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x1193F, + 0x11940, + 0x11941, + 0x11942, + 0x11944, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -89601,6 +90732,8 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */ 0x11EE0, 0x11EF3, 0x11EF7, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12400, @@ -89649,6 +90782,9 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */ 0x16FE2, 0x16FE3, 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x1B000, 0x1B001, 0x1B164, @@ -89909,6 +91045,10 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */ 0x1F93C, 0x1F946, 0x1F947, + 0x1FB00, + 0x1FBF0, + 0x1FBFA, + 0x1FC00, 0x1FFFE, 0xE0001, 0xE0002, @@ -89931,27 +91071,27 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */ typedef enum { WB_Other = 0, - WB_ALetter = 1, - WB_CR = 2, - WB_Double_Quote = 3, - WB_Extend = 4, - WB_ExtendNumLet = 5, - WB_Format = 6, - WB_Hebrew_Letter = 7, - WB_Katakana = 8, - WB_LF = 9, - WB_MidLetter = 10, - WB_MidNum = 11, - WB_MidNumLet = 12, - WB_Newline = 13, - WB_Numeric = 14, - WB_Perl_Tailored_HSpace = 15, - WB_Regional_Indicator = 16, - WB_Single_Quote = 17, - WB_XPG_LE = 18, - WB_XPG_XX = 19, - WB_ZWJ = 20, - WB_EDGE = 21, + WB_CR = 1, + WB_Double_Quote = 2, + WB_EDGE = 3, + WB_ExtPict_LE = 4, + WB_ExtPict_XX = 5, + WB_ExtendNumLet = 6, + WB_Extend = 7, + WB_Format = 8, + WB_Hebrew_Letter = 9, + WB_Perl_Tailored_HSpace = 10, + WB_Katakana = 11, + WB_ALetter = 12, + WB_LF = 13, + WB_MidNumLet = 14, + WB_MidLetter = 15, + WB_MidNum = 16, + WB_Newline = 17, + WB_Numeric = 18, + WB_Regional_Indicator = 19, + WB_Single_Quote = 20, + WB_ZWJ = 21, WB_E_Base = 22, WB_E_Base_GAZ = 22, WB_E_Modifier = 22, @@ -90007,10 +91147,10 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */ WB_ALetter, WB_Other, WB_ALetter, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, WB_MidLetter, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, WB_ALetter, WB_Other, @@ -90032,8 +91172,6 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */ WB_ALetter, WB_Other, WB_ALetter, - WB_Other, - WB_ALetter, WB_Extend, WB_ALetter, WB_Other, @@ -90063,11 +91201,10 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */ WB_ALetter, WB_Other, WB_ALetter, - WB_Other, - WB_ALetter, - WB_Other, + WB_MidLetter, WB_ALetter, WB_MidNum, + WB_ALetter, WB_Other, WB_Extend, WB_Other, @@ -90401,7 +91538,6 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */ WB_ALetter, WB_Other, WB_Extend, - WB_Other, WB_ALetter, WB_Other, WB_ALetter, @@ -90733,13 +91869,13 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */ WB_Format, WB_ExtendNumLet, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, WB_ExtendNumLet, WB_Other, WB_MidNum, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, WB_ExtendNumLet, WB_Other, @@ -90766,7 +91902,7 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */ WB_Other, WB_ALetter, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, WB_ALetter, WB_Other, @@ -90777,7 +91913,7 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */ WB_ALetter, WB_Other, WB_ALetter, - WB_XPG_LE, + WB_ExtPict_LE, WB_Other, WB_ALetter, WB_Other, @@ -90787,87 +91923,87 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */ WB_Other, WB_ALetter, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, WB_ALetter, - WB_XPG_LE, + WB_ExtPict_LE, WB_ALetter, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, WB_ALetter, WB_Other, @@ -90917,11 +92053,11 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */ WB_ALetter, WB_Other, WB_Extend, - WB_XPG_XX, + WB_ExtPict_XX, WB_Katakana, WB_Other, WB_ALetter, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, WB_Extend, WB_Katakana, @@ -90938,9 +92074,9 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */ WB_Other, WB_Katakana, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, WB_Katakana, WB_Other, @@ -90979,6 +92115,8 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */ WB_ALetter, WB_Extend, WB_Other, + WB_Extend, + WB_Other, WB_ALetter, WB_Other, WB_Extend, @@ -91281,6 +92419,12 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */ WB_Other, WB_ALetter, WB_Other, + WB_Extend, + WB_Other, + WB_ALetter, + WB_Other, + WB_ALetter, + WB_Other, WB_ALetter, WB_Other, WB_ALetter, @@ -91288,6 +92432,8 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */ WB_Other, WB_ALetter, WB_Other, + WB_ALetter, + WB_Other, WB_Extend, WB_ALetter, WB_Extend, @@ -91314,6 +92460,7 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */ WB_Other, WB_ALetter, WB_Extend, + WB_ALetter, WB_Other, WB_ALetter, WB_Extend, @@ -91327,6 +92474,7 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */ WB_Other, WB_Extend, WB_Other, + WB_Extend, WB_Numeric, WB_ALetter, WB_Other, @@ -91440,6 +92588,25 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */ WB_ALetter, WB_Other, WB_ALetter, + WB_Other, + WB_ALetter, + WB_Other, + WB_ALetter, + WB_Extend, + WB_Other, + WB_Extend, + WB_Other, + WB_Extend, + WB_ALetter, + WB_Extend, + WB_ALetter, + WB_Extend, + WB_Other, + WB_Numeric, + WB_Other, + WB_ALetter, + WB_Other, + WB_ALetter, WB_Extend, WB_Other, WB_Extend, @@ -91524,6 +92691,8 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */ WB_Other, WB_ALetter, WB_Other, + WB_ALetter, + WB_Other, WB_Format, WB_Other, WB_ALetter, @@ -91563,6 +92732,9 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */ WB_ALetter, WB_Other, WB_ALetter, + WB_Extend, + WB_Other, + WB_Extend, WB_Other, WB_Katakana, WB_Other, @@ -91765,65 +92937,69 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */ WB_Other, WB_ALetter, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_ALetter, WB_Other, WB_ALetter, WB_Other, - WB_XPG_XX, - WB_XPG_LE, + WB_ExtPict_XX, + WB_ExtPict_LE, WB_ALetter, - WB_XPG_LE, + WB_ExtPict_LE, WB_ALetter, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Regional_Indicator, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Extend, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, + WB_Other, + WB_Numeric, + WB_Other, + WB_ExtPict_XX, WB_Other, WB_Format, WB_Other, @@ -91845,7 +93021,7 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */ - 1867, /* Number of elements */ + 1903, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -91917,8 +93093,6 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */ 0x100, 0x2D8, 0x2DE, - 0x2E5, - 0x2EC, 0x300, 0x370, 0x375, @@ -91946,14 +93120,13 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */ 0x531, 0x557, 0x559, - 0x55A, - 0x55B, 0x55D, 0x55E, 0x55F, 0x560, 0x589, 0x58A, + 0x58B, 0x591, 0x5BE, 0x5BF, @@ -92042,7 +93215,7 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x8E2, 0x8E3, @@ -92184,7 +93357,7 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -92287,7 +93460,6 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */ 0xCF3, 0xD00, 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -92311,7 +93483,7 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */ 0xD70, 0xD7A, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -92517,7 +93689,7 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */ 0x1A90, 0x1A9A, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B05, 0x1B34, @@ -92820,7 +93992,7 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3297, @@ -92851,11 +94023,11 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */ 0xA6A0, 0xA6F0, 0xA6F2, - 0xA717, + 0xA708, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA802, 0xA803, 0xA806, @@ -92864,6 +94036,8 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */ 0xA80C, 0xA823, 0xA828, + 0xA82C, + 0xA82D, 0xA840, 0xA874, 0xA880, @@ -92938,7 +94112,7 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */ 0xAB28, 0xAB2F, 0xAB30, - 0xAB68, + 0xAB6A, 0xAB70, 0xABE3, 0xABEB, @@ -93164,6 +94338,12 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */ 0x10D28, 0x10D30, 0x10D3A, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAD, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, @@ -93171,6 +94351,8 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */ 0x10F30, 0x10F46, 0x10F51, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11000, @@ -93200,6 +94382,7 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */ 0x11144, 0x11145, 0x11147, + 0x11148, 0x11150, 0x11173, 0x11174, @@ -93212,6 +94395,7 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */ 0x111C5, 0x111C9, 0x111CD, + 0x111CE, 0x111D0, 0x111DA, 0x111DB, @@ -93280,7 +94464,7 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */ 0x1145A, 0x1145E, 0x1145F, - 0x11460, + 0x11462, 0x11480, 0x114B0, 0x114C4, @@ -93321,7 +94505,26 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */ 0x118E0, 0x118EA, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11930, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x1193F, + 0x11940, + 0x11941, + 0x11942, + 0x11944, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -93401,6 +94604,8 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */ 0x11EE0, 0x11EF3, 0x11EF7, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12400, @@ -93449,6 +94654,9 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */ 0x16FE2, 0x16FE3, 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x1B000, 0x1B001, 0x1B164, @@ -93709,6 +94917,10 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */ 0x1F93C, 0x1F946, 0x1F947, + 0x1FB00, + 0x1FBF0, + 0x1FBFA, + 0x1FC00, 0x1FFFE, 0xE0001, 0xE0002, @@ -93731,27 +94943,27 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */ typedef enum { WB_Other = 0, - WB_ALetter = 1, - WB_CR = 2, - WB_Double_Quote = 3, - WB_Extend = 4, - WB_ExtendNumLet = 5, - WB_Format = 6, - WB_Hebrew_Letter = 7, - WB_Katakana = 8, - WB_LF = 9, - WB_MidLetter = 10, - WB_MidNum = 11, - WB_MidNumLet = 12, - WB_Newline = 13, - WB_Numeric = 14, - WB_Perl_Tailored_HSpace = 15, - WB_Regional_Indicator = 16, - WB_Single_Quote = 17, - WB_XPG_LE = 18, - WB_XPG_XX = 19, - WB_ZWJ = 20, - WB_EDGE = 21, + WB_CR = 1, + WB_Double_Quote = 2, + WB_EDGE = 3, + WB_ExtPict_LE = 4, + WB_ExtPict_XX = 5, + WB_ExtendNumLet = 6, + WB_Extend = 7, + WB_Format = 8, + WB_Hebrew_Letter = 9, + WB_Perl_Tailored_HSpace = 10, + WB_Katakana = 11, + WB_ALetter = 12, + WB_LF = 13, + WB_MidNumLet = 14, + WB_MidLetter = 15, + WB_MidNum = 16, + WB_Newline = 17, + WB_Numeric = 18, + WB_Regional_Indicator = 19, + WB_Single_Quote = 20, + WB_ZWJ = 21, WB_E_Base = 22, WB_E_Base_GAZ = 22, WB_E_Modifier = 22, @@ -93805,10 +95017,10 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */ WB_ALetter, WB_Other, WB_ALetter, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, WB_MidLetter, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, WB_ALetter, WB_Format, @@ -93828,8 +95040,6 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */ WB_ALetter, WB_Other, WB_ALetter, - WB_Other, - WB_ALetter, WB_Extend, WB_ALetter, WB_Other, @@ -93859,11 +95069,10 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */ WB_ALetter, WB_Other, WB_ALetter, - WB_Other, - WB_ALetter, - WB_Other, + WB_MidLetter, WB_ALetter, WB_MidNum, + WB_ALetter, WB_Other, WB_Extend, WB_Other, @@ -94197,7 +95406,6 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */ WB_ALetter, WB_Other, WB_Extend, - WB_Other, WB_ALetter, WB_Other, WB_ALetter, @@ -94529,13 +95737,13 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */ WB_Format, WB_ExtendNumLet, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, WB_ExtendNumLet, WB_Other, WB_MidNum, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, WB_ExtendNumLet, WB_Other, @@ -94562,7 +95770,7 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */ WB_Other, WB_ALetter, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, WB_ALetter, WB_Other, @@ -94573,7 +95781,7 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */ WB_ALetter, WB_Other, WB_ALetter, - WB_XPG_LE, + WB_ExtPict_LE, WB_Other, WB_ALetter, WB_Other, @@ -94583,87 +95791,87 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */ WB_Other, WB_ALetter, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, WB_ALetter, - WB_XPG_LE, + WB_ExtPict_LE, WB_ALetter, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, WB_ALetter, WB_Other, @@ -94713,11 +95921,11 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */ WB_ALetter, WB_Other, WB_Extend, - WB_XPG_XX, + WB_ExtPict_XX, WB_Katakana, WB_Other, WB_ALetter, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, WB_Extend, WB_Katakana, @@ -94734,9 +95942,9 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */ WB_Other, WB_Katakana, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, WB_Katakana, WB_Other, @@ -94775,6 +95983,8 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */ WB_ALetter, WB_Extend, WB_Other, + WB_Extend, + WB_Other, WB_ALetter, WB_Other, WB_Extend, @@ -95077,6 +96287,12 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */ WB_Other, WB_ALetter, WB_Other, + WB_Extend, + WB_Other, + WB_ALetter, + WB_Other, + WB_ALetter, + WB_Other, WB_ALetter, WB_Other, WB_ALetter, @@ -95084,6 +96300,8 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */ WB_Other, WB_ALetter, WB_Other, + WB_ALetter, + WB_Other, WB_Extend, WB_ALetter, WB_Extend, @@ -95110,6 +96328,7 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */ WB_Other, WB_ALetter, WB_Extend, + WB_ALetter, WB_Other, WB_ALetter, WB_Extend, @@ -95123,6 +96342,7 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */ WB_Other, WB_Extend, WB_Other, + WB_Extend, WB_Numeric, WB_ALetter, WB_Other, @@ -95236,6 +96456,25 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */ WB_ALetter, WB_Other, WB_ALetter, + WB_Other, + WB_ALetter, + WB_Other, + WB_ALetter, + WB_Extend, + WB_Other, + WB_Extend, + WB_Other, + WB_Extend, + WB_ALetter, + WB_Extend, + WB_ALetter, + WB_Extend, + WB_Other, + WB_Numeric, + WB_Other, + WB_ALetter, + WB_Other, + WB_ALetter, WB_Extend, WB_Other, WB_Extend, @@ -95320,6 +96559,8 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */ WB_Other, WB_ALetter, WB_Other, + WB_ALetter, + WB_Other, WB_Format, WB_Other, WB_ALetter, @@ -95359,6 +96600,9 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */ WB_ALetter, WB_Other, WB_ALetter, + WB_Extend, + WB_Other, + WB_Extend, WB_Other, WB_Katakana, WB_Other, @@ -95561,65 +96805,69 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */ WB_Other, WB_ALetter, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_ALetter, WB_Other, WB_ALetter, WB_Other, - WB_XPG_XX, - WB_XPG_LE, + WB_ExtPict_XX, + WB_ExtPict_LE, WB_ALetter, - WB_XPG_LE, + WB_ExtPict_LE, WB_ALetter, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Regional_Indicator, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Extend, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, WB_Other, - WB_XPG_XX, + WB_ExtPict_XX, + WB_Other, + WB_Numeric, + WB_Other, + WB_ExtPict_XX, WB_Other, WB_Format, WB_Other, @@ -95638,7 +96886,7 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV Simple_Case_Folding_invlist[] = { /* for ASCII/Latin1 */ - 1286, /* Number of elements */ + 1291, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -96912,6 +98160,11 @@ static const UV Simple_Case_Folding_invlist[] = { /* for ASCII/Latin1 */ 0xA7C5, 0xA7C6, 0xA7C7, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7F5, + 0xA7F6, 0xAB70, 0xABC0, 0xFF21, @@ -96938,7 +98191,7 @@ static const UV Simple_Case_Folding_invlist[] = { /* for ASCII/Latin1 */ # if 'A' == 65 /* ASCII/Latin1 */ -static const int Simple_Case_Folding_invmap[] = { /* for ASCII/Latin1 */ +static const I32 Simple_Case_Folding_invmap[] = { /* for ASCII/Latin1 */ 0, 0x61, 0, @@ -98208,6 +99461,11 @@ static const int Simple_Case_Folding_invmap[] = { /* for ASCII/Latin1 */ 0xA794, 0x282, 0x1D8E, + 0xA7C8, + 0, + 0xA7CA, + 0, + 0xA7F6, 0, 0x13A0, 0, @@ -98239,7 +99497,7 @@ static const int Simple_Case_Folding_invmap[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV Simple_Case_Folding_invlist[] = { /* for EBCDIC 1047 */ - 1304, /* Number of elements */ + 1309, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -99531,6 +100789,11 @@ static const UV Simple_Case_Folding_invlist[] = { /* for EBCDIC 1047 */ 0xA7C5, 0xA7C6, 0xA7C7, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7F5, + 0xA7F6, 0xAB70, 0xABC0, 0xFF21, @@ -99560,7 +100823,7 @@ static const UV Simple_Case_Folding_invlist[] = { /* for EBCDIC 1047 */ && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 -static const int Simple_Case_Folding_invmap[] = { /* for EBCDIC 1047 */ +static const I32 Simple_Case_Folding_invmap[] = { /* for EBCDIC 1047 */ 0, 0x42, 0, @@ -100848,6 +102111,11 @@ static const int Simple_Case_Folding_invmap[] = { /* for EBCDIC 1047 */ 0xA794, 0x282, 0x1D8E, + 0xA7C8, + 0, + 0xA7CA, + 0, + 0xA7F6, 0, 0x13A0, 0, @@ -100879,7 +102147,7 @@ static const int Simple_Case_Folding_invmap[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV Simple_Case_Folding_invlist[] = { /* for EBCDIC 037 */ - 1300, /* Number of elements */ + 1305, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -102167,6 +103435,11 @@ static const UV Simple_Case_Folding_invlist[] = { /* for EBCDIC 037 */ 0xA7C5, 0xA7C6, 0xA7C7, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7F5, + 0xA7F6, 0xAB70, 0xABC0, 0xFF21, @@ -102196,7 +103469,7 @@ static const UV Simple_Case_Folding_invlist[] = { /* for EBCDIC 037 */ && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 -static const int Simple_Case_Folding_invmap[] = { /* for EBCDIC 037 */ +static const I32 Simple_Case_Folding_invmap[] = { /* for EBCDIC 037 */ 0, 0x42, 0, @@ -103480,6 +104753,11 @@ static const int Simple_Case_Folding_invmap[] = { /* for EBCDIC 037 */ 0xA794, 0x282, 0x1D8E, + 0xA7C8, + 0, + 0xA7CA, + 0, + 0xA7F6, 0, 0x13A0, 0, @@ -103508,7 +104786,7 @@ static const int Simple_Case_Folding_invmap[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV Titlecase_Mapping_invlist[] = { /* for ASCII/Latin1 */ - 1334, /* Number of elements */ + 1340, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -104815,6 +106093,12 @@ static const UV Titlecase_Mapping_invlist[] = { /* for ASCII/Latin1 */ 0xA7C0, 0xA7C3, 0xA7C4, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7CB, + 0xA7F6, + 0xA7F7, 0xAB53, 0xAB54, 0xAB70, @@ -104911,246 +106195,246 @@ typedef enum { #define HAS_TC_AUX_TABLES -static const unsigned int TC_AUX_TABLE_1[] = { +static const U32 TC_AUX_TABLE_1[] = { 0x53, 0x73 }; -static const unsigned int TC_AUX_TABLE_2[] = { +static const U32 TC_AUX_TABLE_2[] = { 0x2BC, 0x4E }; -static const unsigned int TC_AUX_TABLE_3[] = { +static const U32 TC_AUX_TABLE_3[] = { 0x4A, 0x30C }; -static const unsigned int TC_AUX_TABLE_4[] = { +static const U32 TC_AUX_TABLE_4[] = { 0x399, 0x308, 0x301 }; -static const unsigned int TC_AUX_TABLE_5[] = { +static const U32 TC_AUX_TABLE_5[] = { 0x3A5, 0x308, 0x301 }; -static const unsigned int TC_AUX_TABLE_6[] = { +static const U32 TC_AUX_TABLE_6[] = { 0x535, 0x582 }; -static const unsigned int TC_AUX_TABLE_7[] = { +static const U32 TC_AUX_TABLE_7[] = { 0x48, 0x331 }; -static const unsigned int TC_AUX_TABLE_8[] = { +static const U32 TC_AUX_TABLE_8[] = { 0x54, 0x308 }; -static const unsigned int TC_AUX_TABLE_9[] = { +static const U32 TC_AUX_TABLE_9[] = { 0x57, 0x30A }; -static const unsigned int TC_AUX_TABLE_10[] = { +static const U32 TC_AUX_TABLE_10[] = { 0x59, 0x30A }; -static const unsigned int TC_AUX_TABLE_11[] = { +static const U32 TC_AUX_TABLE_11[] = { 0x41, 0x2BE }; -static const unsigned int TC_AUX_TABLE_12[] = { +static const U32 TC_AUX_TABLE_12[] = { 0x3A5, 0x313 }; -static const unsigned int TC_AUX_TABLE_13[] = { +static const U32 TC_AUX_TABLE_13[] = { 0x3A5, 0x313, 0x300 }; -static const unsigned int TC_AUX_TABLE_14[] = { +static const U32 TC_AUX_TABLE_14[] = { 0x3A5, 0x313, 0x301 }; -static const unsigned int TC_AUX_TABLE_15[] = { +static const U32 TC_AUX_TABLE_15[] = { 0x3A5, 0x313, 0x342 }; -static const unsigned int TC_AUX_TABLE_16[] = { +static const U32 TC_AUX_TABLE_16[] = { 0x1FBA, 0x345 }; -static const unsigned int TC_AUX_TABLE_17[] = { +static const U32 TC_AUX_TABLE_17[] = { 0x386, 0x345 }; -static const unsigned int TC_AUX_TABLE_18[] = { +static const U32 TC_AUX_TABLE_18[] = { 0x391, 0x342 }; -static const unsigned int TC_AUX_TABLE_19[] = { +static const U32 TC_AUX_TABLE_19[] = { 0x391, 0x342, 0x345 }; -static const unsigned int TC_AUX_TABLE_20[] = { +static const U32 TC_AUX_TABLE_20[] = { 0x1FCA, 0x345 }; -static const unsigned int TC_AUX_TABLE_21[] = { +static const U32 TC_AUX_TABLE_21[] = { 0x389, 0x345 }; -static const unsigned int TC_AUX_TABLE_22[] = { +static const U32 TC_AUX_TABLE_22[] = { 0x397, 0x342 }; -static const unsigned int TC_AUX_TABLE_23[] = { +static const U32 TC_AUX_TABLE_23[] = { 0x397, 0x342, 0x345 }; -static const unsigned int TC_AUX_TABLE_24[] = { +static const U32 TC_AUX_TABLE_24[] = { 0x399, 0x308, 0x300 }; -static const unsigned int TC_AUX_TABLE_25[] = { +static const U32 TC_AUX_TABLE_25[] = { 0x399, 0x342 }; -static const unsigned int TC_AUX_TABLE_26[] = { +static const U32 TC_AUX_TABLE_26[] = { 0x399, 0x308, 0x342 }; -static const unsigned int TC_AUX_TABLE_27[] = { +static const U32 TC_AUX_TABLE_27[] = { 0x3A5, 0x308, 0x300 }; -static const unsigned int TC_AUX_TABLE_28[] = { +static const U32 TC_AUX_TABLE_28[] = { 0x3A1, 0x313 }; -static const unsigned int TC_AUX_TABLE_29[] = { +static const U32 TC_AUX_TABLE_29[] = { 0x3A5, 0x342 }; -static const unsigned int TC_AUX_TABLE_30[] = { +static const U32 TC_AUX_TABLE_30[] = { 0x3A5, 0x308, 0x342 }; -static const unsigned int TC_AUX_TABLE_31[] = { +static const U32 TC_AUX_TABLE_31[] = { 0x1FFA, 0x345 }; -static const unsigned int TC_AUX_TABLE_32[] = { +static const U32 TC_AUX_TABLE_32[] = { 0x38F, 0x345 }; -static const unsigned int TC_AUX_TABLE_33[] = { +static const U32 TC_AUX_TABLE_33[] = { 0x3A9, 0x342 }; -static const unsigned int TC_AUX_TABLE_34[] = { +static const U32 TC_AUX_TABLE_34[] = { 0x3A9, 0x342, 0x345 }; -static const unsigned int TC_AUX_TABLE_35[] = { +static const U32 TC_AUX_TABLE_35[] = { 0x46, 0x66 }; -static const unsigned int TC_AUX_TABLE_36[] = { +static const U32 TC_AUX_TABLE_36[] = { 0x46, 0x69 }; -static const unsigned int TC_AUX_TABLE_37[] = { +static const U32 TC_AUX_TABLE_37[] = { 0x46, 0x6C }; -static const unsigned int TC_AUX_TABLE_38[] = { +static const U32 TC_AUX_TABLE_38[] = { 0x46, 0x66, 0x69 }; -static const unsigned int TC_AUX_TABLE_39[] = { +static const U32 TC_AUX_TABLE_39[] = { 0x46, 0x66, 0x6C }; -static const unsigned int TC_AUX_TABLE_40[] = { +static const U32 TC_AUX_TABLE_40[] = { 0x53, 0x74 }; -static const unsigned int TC_AUX_TABLE_41[] = { +static const U32 TC_AUX_TABLE_41[] = { 0x544, 0x576 }; -static const unsigned int TC_AUX_TABLE_42[] = { +static const U32 TC_AUX_TABLE_42[] = { 0x544, 0x565 }; -static const unsigned int TC_AUX_TABLE_43[] = { +static const U32 TC_AUX_TABLE_43[] = { 0x544, 0x56B }; -static const unsigned int TC_AUX_TABLE_44[] = { +static const U32 TC_AUX_TABLE_44[] = { 0x54E, 0x576 }; -static const unsigned int TC_AUX_TABLE_45[] = { +static const U32 TC_AUX_TABLE_45[] = { 0x544, 0x56D }; -static const unsigned int * const TC_AUX_TABLE_ptrs[] = { +static const U32 * const TC_AUX_TABLE_ptrs[] = { NULL, /* Placeholder */ TC_AUX_TABLE_1, TC_AUX_TABLE_2, @@ -105251,7 +106535,7 @@ static const U8 TC_AUX_TABLE_lengths[] = { 2 /* TC_AUX_TABLE_45 */ }; -static const int Titlecase_Mapping_invmap[] = { /* for ASCII/Latin1 */ +static const I32 Titlecase_Mapping_invmap[] = { /* for ASCII/Latin1 */ 0, 0x41, 0, @@ -106555,6 +107839,12 @@ static const int Titlecase_Mapping_invmap[] = { /* for ASCII/Latin1 */ 0, 0xA7C2, 0, + 0xA7C7, + 0, + 0xA7C9, + 0, + 0xA7F5, + 0, 0xA7B3, 0, 0x13A0, @@ -106600,7 +107890,7 @@ static const int Titlecase_Mapping_invmap[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV Titlecase_Mapping_invlist[] = { /* for EBCDIC 1047 */ - 1350, /* Number of elements */ + 1356, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -107923,6 +109213,12 @@ static const UV Titlecase_Mapping_invlist[] = { /* for EBCDIC 1047 */ 0xA7C0, 0xA7C3, 0xA7C4, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7CB, + 0xA7F6, + 0xA7F7, 0xAB53, 0xAB54, 0xAB70, @@ -108022,246 +109318,246 @@ typedef enum { #define HAS_TC_AUX_TABLES -static const unsigned int TC_AUX_TABLE_1[] = { +static const U32 TC_AUX_TABLE_1[] = { 0xE2, 0xA2 }; -static const unsigned int TC_AUX_TABLE_2[] = { +static const U32 TC_AUX_TABLE_2[] = { 0x2BC, 0xD5 }; -static const unsigned int TC_AUX_TABLE_3[] = { +static const U32 TC_AUX_TABLE_3[] = { 0xD1, 0x30C }; -static const unsigned int TC_AUX_TABLE_4[] = { +static const U32 TC_AUX_TABLE_4[] = { 0x399, 0x308, 0x301 }; -static const unsigned int TC_AUX_TABLE_5[] = { +static const U32 TC_AUX_TABLE_5[] = { 0x3A5, 0x308, 0x301 }; -static const unsigned int TC_AUX_TABLE_6[] = { +static const U32 TC_AUX_TABLE_6[] = { 0x535, 0x582 }; -static const unsigned int TC_AUX_TABLE_7[] = { +static const U32 TC_AUX_TABLE_7[] = { 0xC8, 0x331 }; -static const unsigned int TC_AUX_TABLE_8[] = { +static const U32 TC_AUX_TABLE_8[] = { 0xE3, 0x308 }; -static const unsigned int TC_AUX_TABLE_9[] = { +static const U32 TC_AUX_TABLE_9[] = { 0xE6, 0x30A }; -static const unsigned int TC_AUX_TABLE_10[] = { +static const U32 TC_AUX_TABLE_10[] = { 0xE8, 0x30A }; -static const unsigned int TC_AUX_TABLE_11[] = { +static const U32 TC_AUX_TABLE_11[] = { 0xC1, 0x2BE }; -static const unsigned int TC_AUX_TABLE_12[] = { +static const U32 TC_AUX_TABLE_12[] = { 0x3A5, 0x313 }; -static const unsigned int TC_AUX_TABLE_13[] = { +static const U32 TC_AUX_TABLE_13[] = { 0x3A5, 0x313, 0x300 }; -static const unsigned int TC_AUX_TABLE_14[] = { +static const U32 TC_AUX_TABLE_14[] = { 0x3A5, 0x313, 0x301 }; -static const unsigned int TC_AUX_TABLE_15[] = { +static const U32 TC_AUX_TABLE_15[] = { 0x3A5, 0x313, 0x342 }; -static const unsigned int TC_AUX_TABLE_16[] = { +static const U32 TC_AUX_TABLE_16[] = { 0x1FBA, 0x345 }; -static const unsigned int TC_AUX_TABLE_17[] = { +static const U32 TC_AUX_TABLE_17[] = { 0x386, 0x345 }; -static const unsigned int TC_AUX_TABLE_18[] = { +static const U32 TC_AUX_TABLE_18[] = { 0x391, 0x342 }; -static const unsigned int TC_AUX_TABLE_19[] = { +static const U32 TC_AUX_TABLE_19[] = { 0x391, 0x342, 0x345 }; -static const unsigned int TC_AUX_TABLE_20[] = { +static const U32 TC_AUX_TABLE_20[] = { 0x1FCA, 0x345 }; -static const unsigned int TC_AUX_TABLE_21[] = { +static const U32 TC_AUX_TABLE_21[] = { 0x389, 0x345 }; -static const unsigned int TC_AUX_TABLE_22[] = { +static const U32 TC_AUX_TABLE_22[] = { 0x397, 0x342 }; -static const unsigned int TC_AUX_TABLE_23[] = { +static const U32 TC_AUX_TABLE_23[] = { 0x397, 0x342, 0x345 }; -static const unsigned int TC_AUX_TABLE_24[] = { +static const U32 TC_AUX_TABLE_24[] = { 0x399, 0x308, 0x300 }; -static const unsigned int TC_AUX_TABLE_25[] = { +static const U32 TC_AUX_TABLE_25[] = { 0x399, 0x342 }; -static const unsigned int TC_AUX_TABLE_26[] = { +static const U32 TC_AUX_TABLE_26[] = { 0x399, 0x308, 0x342 }; -static const unsigned int TC_AUX_TABLE_27[] = { +static const U32 TC_AUX_TABLE_27[] = { 0x3A5, 0x308, 0x300 }; -static const unsigned int TC_AUX_TABLE_28[] = { +static const U32 TC_AUX_TABLE_28[] = { 0x3A1, 0x313 }; -static const unsigned int TC_AUX_TABLE_29[] = { +static const U32 TC_AUX_TABLE_29[] = { 0x3A5, 0x342 }; -static const unsigned int TC_AUX_TABLE_30[] = { +static const U32 TC_AUX_TABLE_30[] = { 0x3A5, 0x308, 0x342 }; -static const unsigned int TC_AUX_TABLE_31[] = { +static const U32 TC_AUX_TABLE_31[] = { 0x1FFA, 0x345 }; -static const unsigned int TC_AUX_TABLE_32[] = { +static const U32 TC_AUX_TABLE_32[] = { 0x38F, 0x345 }; -static const unsigned int TC_AUX_TABLE_33[] = { +static const U32 TC_AUX_TABLE_33[] = { 0x3A9, 0x342 }; -static const unsigned int TC_AUX_TABLE_34[] = { +static const U32 TC_AUX_TABLE_34[] = { 0x3A9, 0x342, 0x345 }; -static const unsigned int TC_AUX_TABLE_35[] = { +static const U32 TC_AUX_TABLE_35[] = { 0xC6, 0x86 }; -static const unsigned int TC_AUX_TABLE_36[] = { +static const U32 TC_AUX_TABLE_36[] = { 0xC6, 0x89 }; -static const unsigned int TC_AUX_TABLE_37[] = { +static const U32 TC_AUX_TABLE_37[] = { 0xC6, 0x93 }; -static const unsigned int TC_AUX_TABLE_38[] = { +static const U32 TC_AUX_TABLE_38[] = { 0xC6, 0x86, 0x89 }; -static const unsigned int TC_AUX_TABLE_39[] = { +static const U32 TC_AUX_TABLE_39[] = { 0xC6, 0x86, 0x93 }; -static const unsigned int TC_AUX_TABLE_40[] = { +static const U32 TC_AUX_TABLE_40[] = { 0xE2, 0xA3 }; -static const unsigned int TC_AUX_TABLE_41[] = { +static const U32 TC_AUX_TABLE_41[] = { 0x544, 0x576 }; -static const unsigned int TC_AUX_TABLE_42[] = { +static const U32 TC_AUX_TABLE_42[] = { 0x544, 0x565 }; -static const unsigned int TC_AUX_TABLE_43[] = { +static const U32 TC_AUX_TABLE_43[] = { 0x544, 0x56B }; -static const unsigned int TC_AUX_TABLE_44[] = { +static const U32 TC_AUX_TABLE_44[] = { 0x54E, 0x576 }; -static const unsigned int TC_AUX_TABLE_45[] = { +static const U32 TC_AUX_TABLE_45[] = { 0x544, 0x56D }; -static const unsigned int * const TC_AUX_TABLE_ptrs[] = { +static const U32 * const TC_AUX_TABLE_ptrs[] = { NULL, /* Placeholder */ TC_AUX_TABLE_1, TC_AUX_TABLE_2, @@ -108362,7 +109658,7 @@ static const U8 TC_AUX_TABLE_lengths[] = { 2 /* TC_AUX_TABLE_45 */ }; -static const int Titlecase_Mapping_invmap[] = { /* for EBCDIC 1047 */ +static const I32 Titlecase_Mapping_invmap[] = { /* for EBCDIC 1047 */ 0, 0x62, 0, @@ -109682,6 +110978,12 @@ static const int Titlecase_Mapping_invmap[] = { /* for EBCDIC 1047 */ 0, 0xA7C2, 0, + 0xA7C7, + 0, + 0xA7C9, + 0, + 0xA7F5, + 0, 0xA7B3, 0, 0x13A0, @@ -109727,7 +111029,7 @@ static const int Titlecase_Mapping_invmap[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV Titlecase_Mapping_invlist[] = { /* for EBCDIC 037 */ - 1348, /* Number of elements */ + 1354, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -111048,6 +112350,12 @@ static const UV Titlecase_Mapping_invlist[] = { /* for EBCDIC 037 */ 0xA7C0, 0xA7C3, 0xA7C4, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7CB, + 0xA7F6, + 0xA7F7, 0xAB53, 0xAB54, 0xAB70, @@ -111147,246 +112455,246 @@ typedef enum { #define HAS_TC_AUX_TABLES -static const unsigned int TC_AUX_TABLE_1[] = { +static const U32 TC_AUX_TABLE_1[] = { 0xE2, 0xA2 }; -static const unsigned int TC_AUX_TABLE_2[] = { +static const U32 TC_AUX_TABLE_2[] = { 0x2BC, 0xD5 }; -static const unsigned int TC_AUX_TABLE_3[] = { +static const U32 TC_AUX_TABLE_3[] = { 0xD1, 0x30C }; -static const unsigned int TC_AUX_TABLE_4[] = { +static const U32 TC_AUX_TABLE_4[] = { 0x399, 0x308, 0x301 }; -static const unsigned int TC_AUX_TABLE_5[] = { +static const U32 TC_AUX_TABLE_5[] = { 0x3A5, 0x308, 0x301 }; -static const unsigned int TC_AUX_TABLE_6[] = { +static const U32 TC_AUX_TABLE_6[] = { 0x535, 0x582 }; -static const unsigned int TC_AUX_TABLE_7[] = { +static const U32 TC_AUX_TABLE_7[] = { 0xC8, 0x331 }; -static const unsigned int TC_AUX_TABLE_8[] = { +static const U32 TC_AUX_TABLE_8[] = { 0xE3, 0x308 }; -static const unsigned int TC_AUX_TABLE_9[] = { +static const U32 TC_AUX_TABLE_9[] = { 0xE6, 0x30A }; -static const unsigned int TC_AUX_TABLE_10[] = { +static const U32 TC_AUX_TABLE_10[] = { 0xE8, 0x30A }; -static const unsigned int TC_AUX_TABLE_11[] = { +static const U32 TC_AUX_TABLE_11[] = { 0xC1, 0x2BE }; -static const unsigned int TC_AUX_TABLE_12[] = { +static const U32 TC_AUX_TABLE_12[] = { 0x3A5, 0x313 }; -static const unsigned int TC_AUX_TABLE_13[] = { +static const U32 TC_AUX_TABLE_13[] = { 0x3A5, 0x313, 0x300 }; -static const unsigned int TC_AUX_TABLE_14[] = { +static const U32 TC_AUX_TABLE_14[] = { 0x3A5, 0x313, 0x301 }; -static const unsigned int TC_AUX_TABLE_15[] = { +static const U32 TC_AUX_TABLE_15[] = { 0x3A5, 0x313, 0x342 }; -static const unsigned int TC_AUX_TABLE_16[] = { +static const U32 TC_AUX_TABLE_16[] = { 0x1FBA, 0x345 }; -static const unsigned int TC_AUX_TABLE_17[] = { +static const U32 TC_AUX_TABLE_17[] = { 0x386, 0x345 }; -static const unsigned int TC_AUX_TABLE_18[] = { +static const U32 TC_AUX_TABLE_18[] = { 0x391, 0x342 }; -static const unsigned int TC_AUX_TABLE_19[] = { +static const U32 TC_AUX_TABLE_19[] = { 0x391, 0x342, 0x345 }; -static const unsigned int TC_AUX_TABLE_20[] = { +static const U32 TC_AUX_TABLE_20[] = { 0x1FCA, 0x345 }; -static const unsigned int TC_AUX_TABLE_21[] = { +static const U32 TC_AUX_TABLE_21[] = { 0x389, 0x345 }; -static const unsigned int TC_AUX_TABLE_22[] = { +static const U32 TC_AUX_TABLE_22[] = { 0x397, 0x342 }; -static const unsigned int TC_AUX_TABLE_23[] = { +static const U32 TC_AUX_TABLE_23[] = { 0x397, 0x342, 0x345 }; -static const unsigned int TC_AUX_TABLE_24[] = { +static const U32 TC_AUX_TABLE_24[] = { 0x399, 0x308, 0x300 }; -static const unsigned int TC_AUX_TABLE_25[] = { +static const U32 TC_AUX_TABLE_25[] = { 0x399, 0x342 }; -static const unsigned int TC_AUX_TABLE_26[] = { +static const U32 TC_AUX_TABLE_26[] = { 0x399, 0x308, 0x342 }; -static const unsigned int TC_AUX_TABLE_27[] = { +static const U32 TC_AUX_TABLE_27[] = { 0x3A5, 0x308, 0x300 }; -static const unsigned int TC_AUX_TABLE_28[] = { +static const U32 TC_AUX_TABLE_28[] = { 0x3A1, 0x313 }; -static const unsigned int TC_AUX_TABLE_29[] = { +static const U32 TC_AUX_TABLE_29[] = { 0x3A5, 0x342 }; -static const unsigned int TC_AUX_TABLE_30[] = { +static const U32 TC_AUX_TABLE_30[] = { 0x3A5, 0x308, 0x342 }; -static const unsigned int TC_AUX_TABLE_31[] = { +static const U32 TC_AUX_TABLE_31[] = { 0x1FFA, 0x345 }; -static const unsigned int TC_AUX_TABLE_32[] = { +static const U32 TC_AUX_TABLE_32[] = { 0x38F, 0x345 }; -static const unsigned int TC_AUX_TABLE_33[] = { +static const U32 TC_AUX_TABLE_33[] = { 0x3A9, 0x342 }; -static const unsigned int TC_AUX_TABLE_34[] = { +static const U32 TC_AUX_TABLE_34[] = { 0x3A9, 0x342, 0x345 }; -static const unsigned int TC_AUX_TABLE_35[] = { +static const U32 TC_AUX_TABLE_35[] = { 0xC6, 0x86 }; -static const unsigned int TC_AUX_TABLE_36[] = { +static const U32 TC_AUX_TABLE_36[] = { 0xC6, 0x89 }; -static const unsigned int TC_AUX_TABLE_37[] = { +static const U32 TC_AUX_TABLE_37[] = { 0xC6, 0x93 }; -static const unsigned int TC_AUX_TABLE_38[] = { +static const U32 TC_AUX_TABLE_38[] = { 0xC6, 0x86, 0x89 }; -static const unsigned int TC_AUX_TABLE_39[] = { +static const U32 TC_AUX_TABLE_39[] = { 0xC6, 0x86, 0x93 }; -static const unsigned int TC_AUX_TABLE_40[] = { +static const U32 TC_AUX_TABLE_40[] = { 0xE2, 0xA3 }; -static const unsigned int TC_AUX_TABLE_41[] = { +static const U32 TC_AUX_TABLE_41[] = { 0x544, 0x576 }; -static const unsigned int TC_AUX_TABLE_42[] = { +static const U32 TC_AUX_TABLE_42[] = { 0x544, 0x565 }; -static const unsigned int TC_AUX_TABLE_43[] = { +static const U32 TC_AUX_TABLE_43[] = { 0x544, 0x56B }; -static const unsigned int TC_AUX_TABLE_44[] = { +static const U32 TC_AUX_TABLE_44[] = { 0x54E, 0x576 }; -static const unsigned int TC_AUX_TABLE_45[] = { +static const U32 TC_AUX_TABLE_45[] = { 0x544, 0x56D }; -static const unsigned int * const TC_AUX_TABLE_ptrs[] = { +static const U32 * const TC_AUX_TABLE_ptrs[] = { NULL, /* Placeholder */ TC_AUX_TABLE_1, TC_AUX_TABLE_2, @@ -111487,7 +112795,7 @@ static const U8 TC_AUX_TABLE_lengths[] = { 2 /* TC_AUX_TABLE_45 */ }; -static const int Titlecase_Mapping_invmap[] = { /* for EBCDIC 037 */ +static const I32 Titlecase_Mapping_invmap[] = { /* for EBCDIC 037 */ 0, 0x62, 0, @@ -112805,6 +114113,12 @@ static const int Titlecase_Mapping_invmap[] = { /* for EBCDIC 037 */ 0, 0xA7C2, 0, + 0xA7C7, + 0, + 0xA7C9, + 0, + 0xA7F5, + 0, 0xA7B3, 0, 0x13A0, @@ -112847,7 +114161,7 @@ static const int Titlecase_Mapping_invmap[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV Uppercase_Mapping_invlist[] = { /* for ASCII/Latin1 */ - 1385, /* Number of elements */ + 1391, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -114205,6 +115519,12 @@ static const UV Uppercase_Mapping_invlist[] = { /* for ASCII/Latin1 */ 0xA7C0, 0xA7C3, 0xA7C4, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7CB, + 0xA7F6, + 0xA7F7, 0xAB53, 0xAB54, 0xAB70, @@ -114328,381 +115648,381 @@ typedef enum { #define HAS_UC_AUX_TABLES -static const unsigned int UC_AUX_TABLE_1[] = { +static const U32 UC_AUX_TABLE_1[] = { 0x53, 0x53 }; -static const unsigned int UC_AUX_TABLE_2[] = { +static const U32 UC_AUX_TABLE_2[] = { 0x2BC, 0x4E }; -static const unsigned int UC_AUX_TABLE_3[] = { +static const U32 UC_AUX_TABLE_3[] = { 0x4A, 0x30C }; -static const unsigned int UC_AUX_TABLE_4[] = { +static const U32 UC_AUX_TABLE_4[] = { 0x399, 0x308, 0x301 }; -static const unsigned int UC_AUX_TABLE_5[] = { +static const U32 UC_AUX_TABLE_5[] = { 0x3A5, 0x308, 0x301 }; -static const unsigned int UC_AUX_TABLE_6[] = { +static const U32 UC_AUX_TABLE_6[] = { 0x535, 0x552 }; -static const unsigned int UC_AUX_TABLE_7[] = { +static const U32 UC_AUX_TABLE_7[] = { 0x48, 0x331 }; -static const unsigned int UC_AUX_TABLE_8[] = { +static const U32 UC_AUX_TABLE_8[] = { 0x54, 0x308 }; -static const unsigned int UC_AUX_TABLE_9[] = { +static const U32 UC_AUX_TABLE_9[] = { 0x57, 0x30A }; -static const unsigned int UC_AUX_TABLE_10[] = { +static const U32 UC_AUX_TABLE_10[] = { 0x59, 0x30A }; -static const unsigned int UC_AUX_TABLE_11[] = { +static const U32 UC_AUX_TABLE_11[] = { 0x41, 0x2BE }; -static const unsigned int UC_AUX_TABLE_12[] = { +static const U32 UC_AUX_TABLE_12[] = { 0x3A5, 0x313 }; -static const unsigned int UC_AUX_TABLE_13[] = { +static const U32 UC_AUX_TABLE_13[] = { 0x3A5, 0x313, 0x300 }; -static const unsigned int UC_AUX_TABLE_14[] = { +static const U32 UC_AUX_TABLE_14[] = { 0x3A5, 0x313, 0x301 }; -static const unsigned int UC_AUX_TABLE_15[] = { +static const U32 UC_AUX_TABLE_15[] = { 0x3A5, 0x313, 0x342 }; -static const unsigned int UC_AUX_TABLE_16[] = { +static const U32 UC_AUX_TABLE_16[] = { 0x1F08, 0x399 }; -static const unsigned int UC_AUX_TABLE_17[] = { +static const U32 UC_AUX_TABLE_17[] = { 0x1F09, 0x399 }; -static const unsigned int UC_AUX_TABLE_18[] = { +static const U32 UC_AUX_TABLE_18[] = { 0x1F0A, 0x399 }; -static const unsigned int UC_AUX_TABLE_19[] = { +static const U32 UC_AUX_TABLE_19[] = { 0x1F0B, 0x399 }; -static const unsigned int UC_AUX_TABLE_20[] = { +static const U32 UC_AUX_TABLE_20[] = { 0x1F0C, 0x399 }; -static const unsigned int UC_AUX_TABLE_21[] = { +static const U32 UC_AUX_TABLE_21[] = { 0x1F0D, 0x399 }; -static const unsigned int UC_AUX_TABLE_22[] = { +static const U32 UC_AUX_TABLE_22[] = { 0x1F0E, 0x399 }; -static const unsigned int UC_AUX_TABLE_23[] = { +static const U32 UC_AUX_TABLE_23[] = { 0x1F0F, 0x399 }; -static const unsigned int UC_AUX_TABLE_24[] = { +static const U32 UC_AUX_TABLE_24[] = { 0x1F28, 0x399 }; -static const unsigned int UC_AUX_TABLE_25[] = { +static const U32 UC_AUX_TABLE_25[] = { 0x1F29, 0x399 }; -static const unsigned int UC_AUX_TABLE_26[] = { +static const U32 UC_AUX_TABLE_26[] = { 0x1F2A, 0x399 }; -static const unsigned int UC_AUX_TABLE_27[] = { +static const U32 UC_AUX_TABLE_27[] = { 0x1F2B, 0x399 }; -static const unsigned int UC_AUX_TABLE_28[] = { +static const U32 UC_AUX_TABLE_28[] = { 0x1F2C, 0x399 }; -static const unsigned int UC_AUX_TABLE_29[] = { +static const U32 UC_AUX_TABLE_29[] = { 0x1F2D, 0x399 }; -static const unsigned int UC_AUX_TABLE_30[] = { +static const U32 UC_AUX_TABLE_30[] = { 0x1F2E, 0x399 }; -static const unsigned int UC_AUX_TABLE_31[] = { +static const U32 UC_AUX_TABLE_31[] = { 0x1F2F, 0x399 }; -static const unsigned int UC_AUX_TABLE_32[] = { +static const U32 UC_AUX_TABLE_32[] = { 0x1F68, 0x399 }; -static const unsigned int UC_AUX_TABLE_33[] = { +static const U32 UC_AUX_TABLE_33[] = { 0x1F69, 0x399 }; -static const unsigned int UC_AUX_TABLE_34[] = { +static const U32 UC_AUX_TABLE_34[] = { 0x1F6A, 0x399 }; -static const unsigned int UC_AUX_TABLE_35[] = { +static const U32 UC_AUX_TABLE_35[] = { 0x1F6B, 0x399 }; -static const unsigned int UC_AUX_TABLE_36[] = { +static const U32 UC_AUX_TABLE_36[] = { 0x1F6C, 0x399 }; -static const unsigned int UC_AUX_TABLE_37[] = { +static const U32 UC_AUX_TABLE_37[] = { 0x1F6D, 0x399 }; -static const unsigned int UC_AUX_TABLE_38[] = { +static const U32 UC_AUX_TABLE_38[] = { 0x1F6E, 0x399 }; -static const unsigned int UC_AUX_TABLE_39[] = { +static const U32 UC_AUX_TABLE_39[] = { 0x1F6F, 0x399 }; -static const unsigned int UC_AUX_TABLE_40[] = { +static const U32 UC_AUX_TABLE_40[] = { 0x1FBA, 0x399 }; -static const unsigned int UC_AUX_TABLE_41[] = { +static const U32 UC_AUX_TABLE_41[] = { 0x391, 0x399 }; -static const unsigned int UC_AUX_TABLE_42[] = { +static const U32 UC_AUX_TABLE_42[] = { 0x386, 0x399 }; -static const unsigned int UC_AUX_TABLE_43[] = { +static const U32 UC_AUX_TABLE_43[] = { 0x391, 0x342 }; -static const unsigned int UC_AUX_TABLE_44[] = { +static const U32 UC_AUX_TABLE_44[] = { 0x391, 0x342, 0x399 }; -static const unsigned int UC_AUX_TABLE_45[] = { +static const U32 UC_AUX_TABLE_45[] = { 0x1FCA, 0x399 }; -static const unsigned int UC_AUX_TABLE_46[] = { +static const U32 UC_AUX_TABLE_46[] = { 0x397, 0x399 }; -static const unsigned int UC_AUX_TABLE_47[] = { +static const U32 UC_AUX_TABLE_47[] = { 0x389, 0x399 }; -static const unsigned int UC_AUX_TABLE_48[] = { +static const U32 UC_AUX_TABLE_48[] = { 0x397, 0x342 }; -static const unsigned int UC_AUX_TABLE_49[] = { +static const U32 UC_AUX_TABLE_49[] = { 0x397, 0x342, 0x399 }; -static const unsigned int UC_AUX_TABLE_50[] = { +static const U32 UC_AUX_TABLE_50[] = { 0x399, 0x308, 0x300 }; -static const unsigned int UC_AUX_TABLE_51[] = { +static const U32 UC_AUX_TABLE_51[] = { 0x399, 0x342 }; -static const unsigned int UC_AUX_TABLE_52[] = { +static const U32 UC_AUX_TABLE_52[] = { 0x399, 0x308, 0x342 }; -static const unsigned int UC_AUX_TABLE_53[] = { +static const U32 UC_AUX_TABLE_53[] = { 0x3A5, 0x308, 0x300 }; -static const unsigned int UC_AUX_TABLE_54[] = { +static const U32 UC_AUX_TABLE_54[] = { 0x3A1, 0x313 }; -static const unsigned int UC_AUX_TABLE_55[] = { +static const U32 UC_AUX_TABLE_55[] = { 0x3A5, 0x342 }; -static const unsigned int UC_AUX_TABLE_56[] = { +static const U32 UC_AUX_TABLE_56[] = { 0x3A5, 0x308, 0x342 }; -static const unsigned int UC_AUX_TABLE_57[] = { +static const U32 UC_AUX_TABLE_57[] = { 0x1FFA, 0x399 }; -static const unsigned int UC_AUX_TABLE_58[] = { +static const U32 UC_AUX_TABLE_58[] = { 0x3A9, 0x399 }; -static const unsigned int UC_AUX_TABLE_59[] = { +static const U32 UC_AUX_TABLE_59[] = { 0x38F, 0x399 }; -static const unsigned int UC_AUX_TABLE_60[] = { +static const U32 UC_AUX_TABLE_60[] = { 0x3A9, 0x342 }; -static const unsigned int UC_AUX_TABLE_61[] = { +static const U32 UC_AUX_TABLE_61[] = { 0x3A9, 0x342, 0x399 }; -static const unsigned int UC_AUX_TABLE_62[] = { +static const U32 UC_AUX_TABLE_62[] = { 0x46, 0x46 }; -static const unsigned int UC_AUX_TABLE_63[] = { +static const U32 UC_AUX_TABLE_63[] = { 0x46, 0x49 }; -static const unsigned int UC_AUX_TABLE_64[] = { +static const U32 UC_AUX_TABLE_64[] = { 0x46, 0x4C }; -static const unsigned int UC_AUX_TABLE_65[] = { +static const U32 UC_AUX_TABLE_65[] = { 0x46, 0x46, 0x49 }; -static const unsigned int UC_AUX_TABLE_66[] = { +static const U32 UC_AUX_TABLE_66[] = { 0x46, 0x46, 0x4C }; -static const unsigned int UC_AUX_TABLE_67[] = { +static const U32 UC_AUX_TABLE_67[] = { 0x53, 0x54 }; -static const unsigned int UC_AUX_TABLE_68[] = { +static const U32 UC_AUX_TABLE_68[] = { 0x544, 0x546 }; -static const unsigned int UC_AUX_TABLE_69[] = { +static const U32 UC_AUX_TABLE_69[] = { 0x544, 0x535 }; -static const unsigned int UC_AUX_TABLE_70[] = { +static const U32 UC_AUX_TABLE_70[] = { 0x544, 0x53B }; -static const unsigned int UC_AUX_TABLE_71[] = { +static const U32 UC_AUX_TABLE_71[] = { 0x54E, 0x546 }; -static const unsigned int UC_AUX_TABLE_72[] = { +static const U32 UC_AUX_TABLE_72[] = { 0x544, 0x53D }; -static const unsigned int * const UC_AUX_TABLE_ptrs[] = { +static const U32 * const UC_AUX_TABLE_ptrs[] = { NULL, /* Placeholder */ UC_AUX_TABLE_1, UC_AUX_TABLE_2, @@ -114857,7 +116177,7 @@ static const U8 UC_AUX_TABLE_lengths[] = { 2 /* UC_AUX_TABLE_72 */ }; -static const int Uppercase_Mapping_invmap[] = { /* for ASCII/Latin1 */ +static const I32 Uppercase_Mapping_invmap[] = { /* for ASCII/Latin1 */ 0, 0x41, 0, @@ -116212,6 +117532,12 @@ static const int Uppercase_Mapping_invmap[] = { /* for ASCII/Latin1 */ 0, 0xA7C2, 0, + 0xA7C7, + 0, + 0xA7C9, + 0, + 0xA7F5, + 0, 0xA7B3, 0, 0x13A0, @@ -116257,7 +117583,7 @@ static const int Uppercase_Mapping_invmap[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV Uppercase_Mapping_invlist[] = { /* for EBCDIC 1047 */ - 1401, /* Number of elements */ + 1407, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -117631,6 +118957,12 @@ static const UV Uppercase_Mapping_invlist[] = { /* for EBCDIC 1047 */ 0xA7C0, 0xA7C3, 0xA7C4, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7CB, + 0xA7F6, + 0xA7F7, 0xAB53, 0xAB54, 0xAB70, @@ -117757,381 +119089,381 @@ typedef enum { #define HAS_UC_AUX_TABLES -static const unsigned int UC_AUX_TABLE_1[] = { +static const U32 UC_AUX_TABLE_1[] = { 0xE2, 0xE2 }; -static const unsigned int UC_AUX_TABLE_2[] = { +static const U32 UC_AUX_TABLE_2[] = { 0x2BC, 0xD5 }; -static const unsigned int UC_AUX_TABLE_3[] = { +static const U32 UC_AUX_TABLE_3[] = { 0xD1, 0x30C }; -static const unsigned int UC_AUX_TABLE_4[] = { +static const U32 UC_AUX_TABLE_4[] = { 0x399, 0x308, 0x301 }; -static const unsigned int UC_AUX_TABLE_5[] = { +static const U32 UC_AUX_TABLE_5[] = { 0x3A5, 0x308, 0x301 }; -static const unsigned int UC_AUX_TABLE_6[] = { +static const U32 UC_AUX_TABLE_6[] = { 0x535, 0x552 }; -static const unsigned int UC_AUX_TABLE_7[] = { +static const U32 UC_AUX_TABLE_7[] = { 0xC8, 0x331 }; -static const unsigned int UC_AUX_TABLE_8[] = { +static const U32 UC_AUX_TABLE_8[] = { 0xE3, 0x308 }; -static const unsigned int UC_AUX_TABLE_9[] = { +static const U32 UC_AUX_TABLE_9[] = { 0xE6, 0x30A }; -static const unsigned int UC_AUX_TABLE_10[] = { +static const U32 UC_AUX_TABLE_10[] = { 0xE8, 0x30A }; -static const unsigned int UC_AUX_TABLE_11[] = { +static const U32 UC_AUX_TABLE_11[] = { 0xC1, 0x2BE }; -static const unsigned int UC_AUX_TABLE_12[] = { +static const U32 UC_AUX_TABLE_12[] = { 0x3A5, 0x313 }; -static const unsigned int UC_AUX_TABLE_13[] = { +static const U32 UC_AUX_TABLE_13[] = { 0x3A5, 0x313, 0x300 }; -static const unsigned int UC_AUX_TABLE_14[] = { +static const U32 UC_AUX_TABLE_14[] = { 0x3A5, 0x313, 0x301 }; -static const unsigned int UC_AUX_TABLE_15[] = { +static const U32 UC_AUX_TABLE_15[] = { 0x3A5, 0x313, 0x342 }; -static const unsigned int UC_AUX_TABLE_16[] = { +static const U32 UC_AUX_TABLE_16[] = { 0x1F08, 0x399 }; -static const unsigned int UC_AUX_TABLE_17[] = { +static const U32 UC_AUX_TABLE_17[] = { 0x1F09, 0x399 }; -static const unsigned int UC_AUX_TABLE_18[] = { +static const U32 UC_AUX_TABLE_18[] = { 0x1F0A, 0x399 }; -static const unsigned int UC_AUX_TABLE_19[] = { +static const U32 UC_AUX_TABLE_19[] = { 0x1F0B, 0x399 }; -static const unsigned int UC_AUX_TABLE_20[] = { +static const U32 UC_AUX_TABLE_20[] = { 0x1F0C, 0x399 }; -static const unsigned int UC_AUX_TABLE_21[] = { +static const U32 UC_AUX_TABLE_21[] = { 0x1F0D, 0x399 }; -static const unsigned int UC_AUX_TABLE_22[] = { +static const U32 UC_AUX_TABLE_22[] = { 0x1F0E, 0x399 }; -static const unsigned int UC_AUX_TABLE_23[] = { +static const U32 UC_AUX_TABLE_23[] = { 0x1F0F, 0x399 }; -static const unsigned int UC_AUX_TABLE_24[] = { +static const U32 UC_AUX_TABLE_24[] = { 0x1F28, 0x399 }; -static const unsigned int UC_AUX_TABLE_25[] = { +static const U32 UC_AUX_TABLE_25[] = { 0x1F29, 0x399 }; -static const unsigned int UC_AUX_TABLE_26[] = { +static const U32 UC_AUX_TABLE_26[] = { 0x1F2A, 0x399 }; -static const unsigned int UC_AUX_TABLE_27[] = { +static const U32 UC_AUX_TABLE_27[] = { 0x1F2B, 0x399 }; -static const unsigned int UC_AUX_TABLE_28[] = { +static const U32 UC_AUX_TABLE_28[] = { 0x1F2C, 0x399 }; -static const unsigned int UC_AUX_TABLE_29[] = { +static const U32 UC_AUX_TABLE_29[] = { 0x1F2D, 0x399 }; -static const unsigned int UC_AUX_TABLE_30[] = { +static const U32 UC_AUX_TABLE_30[] = { 0x1F2E, 0x399 }; -static const unsigned int UC_AUX_TABLE_31[] = { +static const U32 UC_AUX_TABLE_31[] = { 0x1F2F, 0x399 }; -static const unsigned int UC_AUX_TABLE_32[] = { +static const U32 UC_AUX_TABLE_32[] = { 0x1F68, 0x399 }; -static const unsigned int UC_AUX_TABLE_33[] = { +static const U32 UC_AUX_TABLE_33[] = { 0x1F69, 0x399 }; -static const unsigned int UC_AUX_TABLE_34[] = { +static const U32 UC_AUX_TABLE_34[] = { 0x1F6A, 0x399 }; -static const unsigned int UC_AUX_TABLE_35[] = { +static const U32 UC_AUX_TABLE_35[] = { 0x1F6B, 0x399 }; -static const unsigned int UC_AUX_TABLE_36[] = { +static const U32 UC_AUX_TABLE_36[] = { 0x1F6C, 0x399 }; -static const unsigned int UC_AUX_TABLE_37[] = { +static const U32 UC_AUX_TABLE_37[] = { 0x1F6D, 0x399 }; -static const unsigned int UC_AUX_TABLE_38[] = { +static const U32 UC_AUX_TABLE_38[] = { 0x1F6E, 0x399 }; -static const unsigned int UC_AUX_TABLE_39[] = { +static const U32 UC_AUX_TABLE_39[] = { 0x1F6F, 0x399 }; -static const unsigned int UC_AUX_TABLE_40[] = { +static const U32 UC_AUX_TABLE_40[] = { 0x1FBA, 0x399 }; -static const unsigned int UC_AUX_TABLE_41[] = { +static const U32 UC_AUX_TABLE_41[] = { 0x391, 0x399 }; -static const unsigned int UC_AUX_TABLE_42[] = { +static const U32 UC_AUX_TABLE_42[] = { 0x386, 0x399 }; -static const unsigned int UC_AUX_TABLE_43[] = { +static const U32 UC_AUX_TABLE_43[] = { 0x391, 0x342 }; -static const unsigned int UC_AUX_TABLE_44[] = { +static const U32 UC_AUX_TABLE_44[] = { 0x391, 0x342, 0x399 }; -static const unsigned int UC_AUX_TABLE_45[] = { +static const U32 UC_AUX_TABLE_45[] = { 0x1FCA, 0x399 }; -static const unsigned int UC_AUX_TABLE_46[] = { +static const U32 UC_AUX_TABLE_46[] = { 0x397, 0x399 }; -static const unsigned int UC_AUX_TABLE_47[] = { +static const U32 UC_AUX_TABLE_47[] = { 0x389, 0x399 }; -static const unsigned int UC_AUX_TABLE_48[] = { +static const U32 UC_AUX_TABLE_48[] = { 0x397, 0x342 }; -static const unsigned int UC_AUX_TABLE_49[] = { +static const U32 UC_AUX_TABLE_49[] = { 0x397, 0x342, 0x399 }; -static const unsigned int UC_AUX_TABLE_50[] = { +static const U32 UC_AUX_TABLE_50[] = { 0x399, 0x308, 0x300 }; -static const unsigned int UC_AUX_TABLE_51[] = { +static const U32 UC_AUX_TABLE_51[] = { 0x399, 0x342 }; -static const unsigned int UC_AUX_TABLE_52[] = { +static const U32 UC_AUX_TABLE_52[] = { 0x399, 0x308, 0x342 }; -static const unsigned int UC_AUX_TABLE_53[] = { +static const U32 UC_AUX_TABLE_53[] = { 0x3A5, 0x308, 0x300 }; -static const unsigned int UC_AUX_TABLE_54[] = { +static const U32 UC_AUX_TABLE_54[] = { 0x3A1, 0x313 }; -static const unsigned int UC_AUX_TABLE_55[] = { +static const U32 UC_AUX_TABLE_55[] = { 0x3A5, 0x342 }; -static const unsigned int UC_AUX_TABLE_56[] = { +static const U32 UC_AUX_TABLE_56[] = { 0x3A5, 0x308, 0x342 }; -static const unsigned int UC_AUX_TABLE_57[] = { +static const U32 UC_AUX_TABLE_57[] = { 0x1FFA, 0x399 }; -static const unsigned int UC_AUX_TABLE_58[] = { +static const U32 UC_AUX_TABLE_58[] = { 0x3A9, 0x399 }; -static const unsigned int UC_AUX_TABLE_59[] = { +static const U32 UC_AUX_TABLE_59[] = { 0x38F, 0x399 }; -static const unsigned int UC_AUX_TABLE_60[] = { +static const U32 UC_AUX_TABLE_60[] = { 0x3A9, 0x342 }; -static const unsigned int UC_AUX_TABLE_61[] = { +static const U32 UC_AUX_TABLE_61[] = { 0x3A9, 0x342, 0x399 }; -static const unsigned int UC_AUX_TABLE_62[] = { +static const U32 UC_AUX_TABLE_62[] = { 0xC6, 0xC6 }; -static const unsigned int UC_AUX_TABLE_63[] = { +static const U32 UC_AUX_TABLE_63[] = { 0xC6, 0xC9 }; -static const unsigned int UC_AUX_TABLE_64[] = { +static const U32 UC_AUX_TABLE_64[] = { 0xC6, 0xD3 }; -static const unsigned int UC_AUX_TABLE_65[] = { +static const U32 UC_AUX_TABLE_65[] = { 0xC6, 0xC6, 0xC9 }; -static const unsigned int UC_AUX_TABLE_66[] = { +static const U32 UC_AUX_TABLE_66[] = { 0xC6, 0xC6, 0xD3 }; -static const unsigned int UC_AUX_TABLE_67[] = { +static const U32 UC_AUX_TABLE_67[] = { 0xE2, 0xE3 }; -static const unsigned int UC_AUX_TABLE_68[] = { +static const U32 UC_AUX_TABLE_68[] = { 0x544, 0x546 }; -static const unsigned int UC_AUX_TABLE_69[] = { +static const U32 UC_AUX_TABLE_69[] = { 0x544, 0x535 }; -static const unsigned int UC_AUX_TABLE_70[] = { +static const U32 UC_AUX_TABLE_70[] = { 0x544, 0x53B }; -static const unsigned int UC_AUX_TABLE_71[] = { +static const U32 UC_AUX_TABLE_71[] = { 0x54E, 0x546 }; -static const unsigned int UC_AUX_TABLE_72[] = { +static const U32 UC_AUX_TABLE_72[] = { 0x544, 0x53D }; -static const unsigned int * const UC_AUX_TABLE_ptrs[] = { +static const U32 * const UC_AUX_TABLE_ptrs[] = { NULL, /* Placeholder */ UC_AUX_TABLE_1, UC_AUX_TABLE_2, @@ -118286,7 +119618,7 @@ static const U8 UC_AUX_TABLE_lengths[] = { 2 /* UC_AUX_TABLE_72 */ }; -static const int Uppercase_Mapping_invmap[] = { /* for EBCDIC 1047 */ +static const I32 Uppercase_Mapping_invmap[] = { /* for EBCDIC 1047 */ 0, 0x62, 0, @@ -119657,6 +120989,12 @@ static const int Uppercase_Mapping_invmap[] = { /* for EBCDIC 1047 */ 0, 0xA7C2, 0, + 0xA7C7, + 0, + 0xA7C9, + 0, + 0xA7F5, + 0, 0xA7B3, 0, 0x13A0, @@ -119702,7 +121040,7 @@ static const int Uppercase_Mapping_invmap[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV Uppercase_Mapping_invlist[] = { /* for EBCDIC 037 */ - 1399, /* Number of elements */ + 1405, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -121074,6 +122412,12 @@ static const UV Uppercase_Mapping_invlist[] = { /* for EBCDIC 037 */ 0xA7C0, 0xA7C3, 0xA7C4, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7CB, + 0xA7F6, + 0xA7F7, 0xAB53, 0xAB54, 0xAB70, @@ -121200,381 +122544,381 @@ typedef enum { #define HAS_UC_AUX_TABLES -static const unsigned int UC_AUX_TABLE_1[] = { +static const U32 UC_AUX_TABLE_1[] = { 0xE2, 0xE2 }; -static const unsigned int UC_AUX_TABLE_2[] = { +static const U32 UC_AUX_TABLE_2[] = { 0x2BC, 0xD5 }; -static const unsigned int UC_AUX_TABLE_3[] = { +static const U32 UC_AUX_TABLE_3[] = { 0xD1, 0x30C }; -static const unsigned int UC_AUX_TABLE_4[] = { +static const U32 UC_AUX_TABLE_4[] = { 0x399, 0x308, 0x301 }; -static const unsigned int UC_AUX_TABLE_5[] = { +static const U32 UC_AUX_TABLE_5[] = { 0x3A5, 0x308, 0x301 }; -static const unsigned int UC_AUX_TABLE_6[] = { +static const U32 UC_AUX_TABLE_6[] = { 0x535, 0x552 }; -static const unsigned int UC_AUX_TABLE_7[] = { +static const U32 UC_AUX_TABLE_7[] = { 0xC8, 0x331 }; -static const unsigned int UC_AUX_TABLE_8[] = { +static const U32 UC_AUX_TABLE_8[] = { 0xE3, 0x308 }; -static const unsigned int UC_AUX_TABLE_9[] = { +static const U32 UC_AUX_TABLE_9[] = { 0xE6, 0x30A }; -static const unsigned int UC_AUX_TABLE_10[] = { +static const U32 UC_AUX_TABLE_10[] = { 0xE8, 0x30A }; -static const unsigned int UC_AUX_TABLE_11[] = { +static const U32 UC_AUX_TABLE_11[] = { 0xC1, 0x2BE }; -static const unsigned int UC_AUX_TABLE_12[] = { +static const U32 UC_AUX_TABLE_12[] = { 0x3A5, 0x313 }; -static const unsigned int UC_AUX_TABLE_13[] = { +static const U32 UC_AUX_TABLE_13[] = { 0x3A5, 0x313, 0x300 }; -static const unsigned int UC_AUX_TABLE_14[] = { +static const U32 UC_AUX_TABLE_14[] = { 0x3A5, 0x313, 0x301 }; -static const unsigned int UC_AUX_TABLE_15[] = { +static const U32 UC_AUX_TABLE_15[] = { 0x3A5, 0x313, 0x342 }; -static const unsigned int UC_AUX_TABLE_16[] = { +static const U32 UC_AUX_TABLE_16[] = { 0x1F08, 0x399 }; -static const unsigned int UC_AUX_TABLE_17[] = { +static const U32 UC_AUX_TABLE_17[] = { 0x1F09, 0x399 }; -static const unsigned int UC_AUX_TABLE_18[] = { +static const U32 UC_AUX_TABLE_18[] = { 0x1F0A, 0x399 }; -static const unsigned int UC_AUX_TABLE_19[] = { +static const U32 UC_AUX_TABLE_19[] = { 0x1F0B, 0x399 }; -static const unsigned int UC_AUX_TABLE_20[] = { +static const U32 UC_AUX_TABLE_20[] = { 0x1F0C, 0x399 }; -static const unsigned int UC_AUX_TABLE_21[] = { +static const U32 UC_AUX_TABLE_21[] = { 0x1F0D, 0x399 }; -static const unsigned int UC_AUX_TABLE_22[] = { +static const U32 UC_AUX_TABLE_22[] = { 0x1F0E, 0x399 }; -static const unsigned int UC_AUX_TABLE_23[] = { +static const U32 UC_AUX_TABLE_23[] = { 0x1F0F, 0x399 }; -static const unsigned int UC_AUX_TABLE_24[] = { +static const U32 UC_AUX_TABLE_24[] = { 0x1F28, 0x399 }; -static const unsigned int UC_AUX_TABLE_25[] = { +static const U32 UC_AUX_TABLE_25[] = { 0x1F29, 0x399 }; -static const unsigned int UC_AUX_TABLE_26[] = { +static const U32 UC_AUX_TABLE_26[] = { 0x1F2A, 0x399 }; -static const unsigned int UC_AUX_TABLE_27[] = { +static const U32 UC_AUX_TABLE_27[] = { 0x1F2B, 0x399 }; -static const unsigned int UC_AUX_TABLE_28[] = { +static const U32 UC_AUX_TABLE_28[] = { 0x1F2C, 0x399 }; -static const unsigned int UC_AUX_TABLE_29[] = { +static const U32 UC_AUX_TABLE_29[] = { 0x1F2D, 0x399 }; -static const unsigned int UC_AUX_TABLE_30[] = { +static const U32 UC_AUX_TABLE_30[] = { 0x1F2E, 0x399 }; -static const unsigned int UC_AUX_TABLE_31[] = { +static const U32 UC_AUX_TABLE_31[] = { 0x1F2F, 0x399 }; -static const unsigned int UC_AUX_TABLE_32[] = { +static const U32 UC_AUX_TABLE_32[] = { 0x1F68, 0x399 }; -static const unsigned int UC_AUX_TABLE_33[] = { +static const U32 UC_AUX_TABLE_33[] = { 0x1F69, 0x399 }; -static const unsigned int UC_AUX_TABLE_34[] = { +static const U32 UC_AUX_TABLE_34[] = { 0x1F6A, 0x399 }; -static const unsigned int UC_AUX_TABLE_35[] = { +static const U32 UC_AUX_TABLE_35[] = { 0x1F6B, 0x399 }; -static const unsigned int UC_AUX_TABLE_36[] = { +static const U32 UC_AUX_TABLE_36[] = { 0x1F6C, 0x399 }; -static const unsigned int UC_AUX_TABLE_37[] = { +static const U32 UC_AUX_TABLE_37[] = { 0x1F6D, 0x399 }; -static const unsigned int UC_AUX_TABLE_38[] = { +static const U32 UC_AUX_TABLE_38[] = { 0x1F6E, 0x399 }; -static const unsigned int UC_AUX_TABLE_39[] = { +static const U32 UC_AUX_TABLE_39[] = { 0x1F6F, 0x399 }; -static const unsigned int UC_AUX_TABLE_40[] = { +static const U32 UC_AUX_TABLE_40[] = { 0x1FBA, 0x399 }; -static const unsigned int UC_AUX_TABLE_41[] = { +static const U32 UC_AUX_TABLE_41[] = { 0x391, 0x399 }; -static const unsigned int UC_AUX_TABLE_42[] = { +static const U32 UC_AUX_TABLE_42[] = { 0x386, 0x399 }; -static const unsigned int UC_AUX_TABLE_43[] = { +static const U32 UC_AUX_TABLE_43[] = { 0x391, 0x342 }; -static const unsigned int UC_AUX_TABLE_44[] = { +static const U32 UC_AUX_TABLE_44[] = { 0x391, 0x342, 0x399 }; -static const unsigned int UC_AUX_TABLE_45[] = { +static const U32 UC_AUX_TABLE_45[] = { 0x1FCA, 0x399 }; -static const unsigned int UC_AUX_TABLE_46[] = { +static const U32 UC_AUX_TABLE_46[] = { 0x397, 0x399 }; -static const unsigned int UC_AUX_TABLE_47[] = { +static const U32 UC_AUX_TABLE_47[] = { 0x389, 0x399 }; -static const unsigned int UC_AUX_TABLE_48[] = { +static const U32 UC_AUX_TABLE_48[] = { 0x397, 0x342 }; -static const unsigned int UC_AUX_TABLE_49[] = { +static const U32 UC_AUX_TABLE_49[] = { 0x397, 0x342, 0x399 }; -static const unsigned int UC_AUX_TABLE_50[] = { +static const U32 UC_AUX_TABLE_50[] = { 0x399, 0x308, 0x300 }; -static const unsigned int UC_AUX_TABLE_51[] = { +static const U32 UC_AUX_TABLE_51[] = { 0x399, 0x342 }; -static const unsigned int UC_AUX_TABLE_52[] = { +static const U32 UC_AUX_TABLE_52[] = { 0x399, 0x308, 0x342 }; -static const unsigned int UC_AUX_TABLE_53[] = { +static const U32 UC_AUX_TABLE_53[] = { 0x3A5, 0x308, 0x300 }; -static const unsigned int UC_AUX_TABLE_54[] = { +static const U32 UC_AUX_TABLE_54[] = { 0x3A1, 0x313 }; -static const unsigned int UC_AUX_TABLE_55[] = { +static const U32 UC_AUX_TABLE_55[] = { 0x3A5, 0x342 }; -static const unsigned int UC_AUX_TABLE_56[] = { +static const U32 UC_AUX_TABLE_56[] = { 0x3A5, 0x308, 0x342 }; -static const unsigned int UC_AUX_TABLE_57[] = { +static const U32 UC_AUX_TABLE_57[] = { 0x1FFA, 0x399 }; -static const unsigned int UC_AUX_TABLE_58[] = { +static const U32 UC_AUX_TABLE_58[] = { 0x3A9, 0x399 }; -static const unsigned int UC_AUX_TABLE_59[] = { +static const U32 UC_AUX_TABLE_59[] = { 0x38F, 0x399 }; -static const unsigned int UC_AUX_TABLE_60[] = { +static const U32 UC_AUX_TABLE_60[] = { 0x3A9, 0x342 }; -static const unsigned int UC_AUX_TABLE_61[] = { +static const U32 UC_AUX_TABLE_61[] = { 0x3A9, 0x342, 0x399 }; -static const unsigned int UC_AUX_TABLE_62[] = { +static const U32 UC_AUX_TABLE_62[] = { 0xC6, 0xC6 }; -static const unsigned int UC_AUX_TABLE_63[] = { +static const U32 UC_AUX_TABLE_63[] = { 0xC6, 0xC9 }; -static const unsigned int UC_AUX_TABLE_64[] = { +static const U32 UC_AUX_TABLE_64[] = { 0xC6, 0xD3 }; -static const unsigned int UC_AUX_TABLE_65[] = { +static const U32 UC_AUX_TABLE_65[] = { 0xC6, 0xC6, 0xC9 }; -static const unsigned int UC_AUX_TABLE_66[] = { +static const U32 UC_AUX_TABLE_66[] = { 0xC6, 0xC6, 0xD3 }; -static const unsigned int UC_AUX_TABLE_67[] = { +static const U32 UC_AUX_TABLE_67[] = { 0xE2, 0xE3 }; -static const unsigned int UC_AUX_TABLE_68[] = { +static const U32 UC_AUX_TABLE_68[] = { 0x544, 0x546 }; -static const unsigned int UC_AUX_TABLE_69[] = { +static const U32 UC_AUX_TABLE_69[] = { 0x544, 0x535 }; -static const unsigned int UC_AUX_TABLE_70[] = { +static const U32 UC_AUX_TABLE_70[] = { 0x544, 0x53B }; -static const unsigned int UC_AUX_TABLE_71[] = { +static const U32 UC_AUX_TABLE_71[] = { 0x54E, 0x546 }; -static const unsigned int UC_AUX_TABLE_72[] = { +static const U32 UC_AUX_TABLE_72[] = { 0x544, 0x53D }; -static const unsigned int * const UC_AUX_TABLE_ptrs[] = { +static const U32 * const UC_AUX_TABLE_ptrs[] = { NULL, /* Placeholder */ UC_AUX_TABLE_1, UC_AUX_TABLE_2, @@ -121729,7 +123073,7 @@ static const U8 UC_AUX_TABLE_lengths[] = { 2 /* UC_AUX_TABLE_72 */ }; -static const int Uppercase_Mapping_invmap[] = { /* for EBCDIC 037 */ +static const I32 Uppercase_Mapping_invmap[] = { /* for EBCDIC 037 */ 0, 0x62, 0, @@ -123098,6 +124442,12 @@ static const int Uppercase_Mapping_invmap[] = { /* for EBCDIC 037 */ 0, 0xA7C2, 0, + 0xA7C7, + 0, + 0xA7C9, + 0, + 0xA7F5, + 0, 0xA7B3, 0, 0x13A0, @@ -123443,7 +124793,7 @@ static const UV UNI_ASCII_invlist[] = { /* for EBCDIC 037 */ # endif /* EBCDIC 037 */ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */ - 1332, /* Number of elements */ + 1354, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -123494,7 +124844,7 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x984, 0x985, @@ -123603,7 +124953,7 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -123692,8 +125042,6 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */ 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -123707,7 +125055,7 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */ 0xD64, 0xD66, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -123880,7 +125228,7 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */ 0x1AA0, 0x1AAE, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B4C, 0x1B50, @@ -123955,7 +125303,7 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */ 0x2B74, 0x2B76, 0x2B96, - 0x2B98, + 0x2B97, 0x2C2F, 0x2C30, 0x2C5F, @@ -123990,7 +125338,7 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */ 0x2DD8, 0x2DDF, 0x2DE0, - 0x2E50, + 0x2E53, 0x2E80, 0x2E9A, 0x2E9B, @@ -124010,15 +125358,11 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */ 0x3131, 0x318F, 0x3190, - 0x31BB, - 0x31C0, 0x31E4, 0x31F0, 0x321F, 0x3220, - 0x4DB6, - 0x4DC0, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA490, @@ -124030,9 +125374,9 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */ 0xA700, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, - 0xA82C, + 0xA7CB, + 0xA7F5, + 0xA82D, 0xA830, 0xA83A, 0xA840, @@ -124072,7 +125416,7 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */ 0xAB28, 0xAB2F, 0xAB30, - 0xAB68, + 0xAB6C, 0xAB70, 0xABEE, 0xABF0, @@ -124162,7 +125506,7 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */ 0x10137, 0x1018F, 0x10190, - 0x1019C, + 0x1019D, 0x101A0, 0x101A1, 0x101D0, @@ -124281,10 +125625,18 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */ 0x10D3A, 0x10E60, 0x10E7F, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAE, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F28, 0x10F30, 0x10F5A, + 0x10FB0, + 0x10FCC, 0x10FE0, 0x10FF7, 0x11000, @@ -124302,12 +125654,10 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */ 0x11100, 0x11135, 0x11136, - 0x11147, + 0x11148, 0x11150, 0x11177, 0x11180, - 0x111CE, - 0x111D0, 0x111E0, 0x111E1, 0x111F5, @@ -124360,11 +125710,9 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */ 0x11370, 0x11375, 0x11400, - 0x1145A, - 0x1145B, 0x1145C, 0x1145D, - 0x11460, + 0x11462, 0x11480, 0x114C8, 0x114D0, @@ -124394,7 +125742,21 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */ 0x118A0, 0x118F3, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11947, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -124449,6 +125811,8 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */ 0x11DAA, 0x11EE0, 0x11EF9, + 0x11FB0, + 0x11FB1, 0x11FC0, 0x11FF2, 0x11FFF, @@ -124496,11 +125860,15 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */ 0x16F8F, 0x16FA0, 0x16FE0, - 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -124696,11 +126064,7 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */ 0x1F0D1, 0x1F0F6, 0x1F100, - 0x1F10D, - 0x1F110, - 0x1F16D, - 0x1F170, - 0x1F1AD, + 0x1F1AE, 0x1F1E6, 0x1F203, 0x1F210, @@ -124712,11 +126076,11 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */ 0x1F260, 0x1F266, 0x1F300, - 0x1F6D6, + 0x1F6D8, 0x1F6E0, 0x1F6ED, 0x1F6F0, - 0x1F6FB, + 0x1F6FD, 0x1F700, 0x1F774, 0x1F780, @@ -124733,32 +126097,38 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */ 0x1F888, 0x1F890, 0x1F8AE, + 0x1F8B0, + 0x1F8B2, 0x1F900, - 0x1F90C, - 0x1F90D, - 0x1F972, - 0x1F973, - 0x1F977, + 0x1F979, 0x1F97A, - 0x1F9A3, - 0x1F9A5, - 0x1F9AB, - 0x1F9AE, - 0x1F9CB, + 0x1F9CC, 0x1F9CD, 0x1FA54, 0x1FA60, 0x1FA6E, 0x1FA70, - 0x1FA74, + 0x1FA75, 0x1FA78, 0x1FA7B, 0x1FA80, - 0x1FA83, + 0x1FA87, 0x1FA90, - 0x1FA96, + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB, + 0x1FBF0, + 0x1FBFA, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -124769,6 +126139,8 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */ 0x2EBE1, 0x2F800, 0x2FA1E, + 0x30000, + 0x3134B, 0xE0001, 0xE0002, 0xE0020, @@ -124784,7 +126156,7 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_CASED_invlist[] = { /* for ASCII/Latin1 */ - 281, /* Number of elements */ + 283, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -124970,13 +126342,15 @@ static const UV UNI_CASED_invlist[] = { /* for ASCII/Latin1 */ 0xA790, 0xA7C0, 0xA7C2, - 0xA7C7, + 0xA7CB, + 0xA7F5, + 0xA7F7, 0xA7F8, 0xA7FB, 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB69, 0xAB70, 0xABC0, 0xFB00, @@ -125079,7 +126453,7 @@ static const UV UNI_CASED_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_CASED_invlist[] = { /* for EBCDIC 1047 */ - 307, /* Number of elements */ + 309, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -125291,13 +126665,15 @@ static const UV UNI_CASED_invlist[] = { /* for EBCDIC 1047 */ 0xA790, 0xA7C0, 0xA7C2, - 0xA7C7, + 0xA7CB, + 0xA7F5, + 0xA7F7, 0xA7F8, 0xA7FB, 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB69, 0xAB70, 0xABC0, 0xFB00, @@ -125400,7 +126776,7 @@ static const UV UNI_CASED_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_CASED_invlist[] = { /* for EBCDIC 037 */ - 303, /* Number of elements */ + 305, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -125608,13 +126984,15 @@ static const UV UNI_CASED_invlist[] = { /* for EBCDIC 037 */ 0xA790, 0xA7C0, 0xA7C2, - 0xA7C7, + 0xA7CB, + 0xA7F5, + 0xA7F7, 0xA7F8, 0xA7FB, 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB69, 0xAB70, 0xABC0, 0xFB00, @@ -125714,7 +127092,7 @@ static const UV UNI_CASED_invlist[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_CASEDLETTER_invlist[] = { /* for ASCII/Latin1 */ - 263, /* Number of elements */ + 265, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -125888,13 +127266,15 @@ static const UV UNI_CASEDLETTER_invlist[] = { /* for ASCII/Latin1 */ 0xA790, 0xA7C0, 0xA7C2, - 0xA7C7, + 0xA7CB, + 0xA7F5, + 0xA7F7, 0xA7FA, 0xA7FB, 0xAB30, 0xAB5B, 0xAB60, - 0xAB68, + 0xAB69, 0xAB70, 0xABC0, 0xFB00, @@ -125991,7 +127371,7 @@ static const UV UNI_CASEDLETTER_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_CASEDLETTER_invlist[] = { /* for EBCDIC 1047 */ - 295, /* Number of elements */ + 297, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -126197,13 +127577,15 @@ static const UV UNI_CASEDLETTER_invlist[] = { /* for EBCDIC 1047 */ 0xA790, 0xA7C0, 0xA7C2, - 0xA7C7, + 0xA7CB, + 0xA7F5, + 0xA7F7, 0xA7FA, 0xA7FB, 0xAB30, 0xAB5B, 0xAB60, - 0xAB68, + 0xAB69, 0xAB70, 0xABC0, 0xFB00, @@ -126300,7 +127682,7 @@ static const UV UNI_CASEDLETTER_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_CASEDLETTER_invlist[] = { /* for EBCDIC 037 */ - 291, /* Number of elements */ + 293, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -126502,13 +127884,15 @@ static const UV UNI_CASEDLETTER_invlist[] = { /* for EBCDIC 037 */ 0xA790, 0xA7C0, 0xA7C2, - 0xA7C7, + 0xA7CB, + 0xA7F5, + 0xA7F7, 0xA7FA, 0xA7FB, 0xAB30, 0xAB5B, 0xAB60, - 0xAB68, + 0xAB69, 0xAB70, 0xABC0, 0xFB00, @@ -126602,7 +127986,7 @@ static const UV UNI_CASEDLETTER_invlist[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_LOWERCASELETTER_invlist[] = { /* for ASCII/Latin1 */ - 1285, /* Number of elements */ + 1291, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -127809,12 +129193,18 @@ static const UV UNI_LOWERCASELETTER_invlist[] = { /* for ASCII/Latin1 */ 0xA7C0, 0xA7C3, 0xA7C4, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7CB, + 0xA7F6, + 0xA7F7, 0xA7FA, 0xA7FB, 0xAB30, 0xAB5B, 0xAB60, - 0xAB68, + 0xAB69, 0xAB70, 0xABC0, 0xFB00, @@ -127901,7 +129291,7 @@ static const UV UNI_LOWERCASELETTER_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_LOWERCASELETTER_invlist[] = { /* for EBCDIC 1047 */ - 1299, /* Number of elements */ + 1305, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -129122,12 +130512,18 @@ static const UV UNI_LOWERCASELETTER_invlist[] = { /* for EBCDIC 1047 */ 0xA7C0, 0xA7C3, 0xA7C4, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7CB, + 0xA7F6, + 0xA7F7, 0xA7FA, 0xA7FB, 0xAB30, 0xAB5B, 0xAB60, - 0xAB68, + 0xAB69, 0xAB70, 0xABC0, 0xFB00, @@ -129214,7 +130610,7 @@ static const UV UNI_LOWERCASELETTER_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_LOWERCASELETTER_invlist[] = { /* for EBCDIC 037 */ - 1299, /* Number of elements */ + 1305, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -130435,12 +131831,18 @@ static const UV UNI_LOWERCASELETTER_invlist[] = { /* for EBCDIC 037 */ 0xA7C0, 0xA7C3, 0xA7C4, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7CB, + 0xA7F6, + 0xA7F7, 0xA7FA, 0xA7FB, 0xAB30, 0xAB5B, 0xAB60, - 0xAB68, + 0xAB69, 0xAB70, 0xABC0, 0xFB00, @@ -131511,7 +132913,7 @@ static const UV UNI_TITLE_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_UPPERCASELETTER_invlist[] = { /* for ASCII/Latin1 */ - 1273, /* Number of elements */ + 1277, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -132711,7 +134113,11 @@ static const UV UNI_UPPERCASELETTER_invlist[] = { /* for ASCII/Latin1 */ 0xA7C2, 0xA7C3, 0xA7C4, - 0xA7C7, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7F5, + 0xA7F6, 0xFF21, 0xFF3B, 0x10400, @@ -132798,7 +134204,7 @@ static const UV UNI_UPPERCASELETTER_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_UPPERCASELETTER_invlist[] = { /* for EBCDIC 1047 */ - 1291, /* Number of elements */ + 1295, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -134016,7 +135422,11 @@ static const UV UNI_UPPERCASELETTER_invlist[] = { /* for EBCDIC 1047 */ 0xA7C2, 0xA7C3, 0xA7C4, - 0xA7C7, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7F5, + 0xA7F6, 0xFF21, 0xFF3B, 0x10400, @@ -134103,7 +135513,7 @@ static const UV UNI_UPPERCASELETTER_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_UPPERCASELETTER_invlist[] = { /* for EBCDIC 037 */ - 1287, /* Number of elements */ + 1291, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -135317,7 +136727,11 @@ static const UV UNI_UPPERCASELETTER_invlist[] = { /* for EBCDIC 037 */ 0xA7C2, 0xA7C3, 0xA7C4, - 0xA7C7, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7F5, + 0xA7F6, 0xFF21, 0xFF3B, 0x10400, @@ -135465,7 +136879,7 @@ static const UV UNI_VERTSPACE_invlist[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for ASCII/Latin1 */ - 1431, /* Number of elements */ + 1465, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -135577,7 +136991,7 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for ASCII/Latin1 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D4, 0x8E0, 0x8E3, @@ -135797,8 +137211,6 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for ASCII/Latin1 */ 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -135820,7 +137232,7 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for ASCII/Latin1 */ 0xD70, 0xD7A, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -136012,6 +137424,8 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for ASCII/Latin1 */ 0x1A9A, 0x1AA7, 0x1AA8, + 0x1ABF, + 0x1AC1, 0x1B00, 0x1B34, 0x1B35, @@ -136187,13 +137601,13 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for ASCII/Latin1 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA4D0, @@ -136215,8 +137629,8 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for ASCII/Latin1 */ 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA806, 0xA807, 0xA828, @@ -136279,7 +137693,7 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for ASCII/Latin1 */ 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB6A, 0xAB70, 0xABEB, 0xABF0, @@ -136456,12 +137870,20 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for ASCII/Latin1 */ 0x10D28, 0x10D30, 0x10D3A, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAD, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, 0x10F28, 0x10F30, 0x10F46, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11000, @@ -136479,7 +137901,7 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for ASCII/Latin1 */ 0x11136, 0x11140, 0x11144, - 0x11147, + 0x11148, 0x11150, 0x11173, 0x11176, @@ -136488,7 +137910,7 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for ASCII/Latin1 */ 0x111C0, 0x111C1, 0x111C5, - 0x111D0, + 0x111CE, 0x111DB, 0x111DC, 0x111DD, @@ -136549,7 +137971,7 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for ASCII/Latin1 */ 0x11450, 0x1145A, 0x1145F, - 0x11460, + 0x11462, 0x11480, 0x114C2, 0x114C4, @@ -136589,7 +138011,23 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for ASCII/Latin1 */ 0x118A0, 0x118EA, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x1193D, + 0x1193F, + 0x11943, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -136660,6 +138098,8 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for ASCII/Latin1 */ 0x11DAA, 0x11EE0, 0x11EF7, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12400, @@ -136700,10 +138140,14 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for ASCII/Latin1 */ 0x16FE2, 0x16FE3, 0x16FE4, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -136888,8 +138332,10 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for ASCII/Latin1 */ 0x1F16A, 0x1F170, 0x1F18A, + 0x1FBF0, + 0x1FBFA, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -136899,7 +138345,9 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for ASCII/Latin1 */ 0x2CEB0, 0x2EBE1, 0x2F800, - 0x2FA1E + 0x2FA1E, + 0x30000, + 0x3134B }; # endif /* ASCII/Latin1 */ @@ -136910,7 +138358,7 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 1047 */ - 1455, /* Number of elements */ + 1489, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -137046,7 +138494,7 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 1047 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D4, 0x8E0, 0x8E3, @@ -137266,8 +138714,6 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 1047 */ 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -137289,7 +138735,7 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 1047 */ 0xD70, 0xD7A, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -137481,6 +138927,8 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 1047 */ 0x1A9A, 0x1AA7, 0x1AA8, + 0x1ABF, + 0x1AC1, 0x1B00, 0x1B34, 0x1B35, @@ -137656,13 +139104,13 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 1047 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA4D0, @@ -137684,8 +139132,8 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 1047 */ 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA806, 0xA807, 0xA828, @@ -137748,7 +139196,7 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 1047 */ 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB6A, 0xAB70, 0xABEB, 0xABF0, @@ -137925,12 +139373,20 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 1047 */ 0x10D28, 0x10D30, 0x10D3A, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAD, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, 0x10F28, 0x10F30, 0x10F46, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11000, @@ -137948,7 +139404,7 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 1047 */ 0x11136, 0x11140, 0x11144, - 0x11147, + 0x11148, 0x11150, 0x11173, 0x11176, @@ -137957,7 +139413,7 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 1047 */ 0x111C0, 0x111C1, 0x111C5, - 0x111D0, + 0x111CE, 0x111DB, 0x111DC, 0x111DD, @@ -138018,7 +139474,7 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 1047 */ 0x11450, 0x1145A, 0x1145F, - 0x11460, + 0x11462, 0x11480, 0x114C2, 0x114C4, @@ -138058,7 +139514,23 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 1047 */ 0x118A0, 0x118EA, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x1193D, + 0x1193F, + 0x11943, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -138129,6 +139601,8 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 1047 */ 0x11DAA, 0x11EE0, 0x11EF7, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12400, @@ -138169,10 +139643,14 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 1047 */ 0x16FE2, 0x16FE3, 0x16FE4, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -138357,8 +139835,10 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 1047 */ 0x1F16A, 0x1F170, 0x1F18A, + 0x1FBF0, + 0x1FBFA, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -138368,7 +139848,9 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 1047 */ 0x2CEB0, 0x2EBE1, 0x2F800, - 0x2FA1E + 0x2FA1E, + 0x30000, + 0x3134B }; # endif /* EBCDIC 1047 */ @@ -138379,7 +139861,7 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 037 */ - 1451, /* Number of elements */ + 1485, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -138511,7 +139993,7 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 037 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D4, 0x8E0, 0x8E3, @@ -138731,8 +140213,6 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 037 */ 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -138754,7 +140234,7 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 037 */ 0xD70, 0xD7A, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -138946,6 +140426,8 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 037 */ 0x1A9A, 0x1AA7, 0x1AA8, + 0x1ABF, + 0x1AC1, 0x1B00, 0x1B34, 0x1B35, @@ -139121,13 +140603,13 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 037 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA4D0, @@ -139149,8 +140631,8 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 037 */ 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA806, 0xA807, 0xA828, @@ -139213,7 +140695,7 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 037 */ 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB6A, 0xAB70, 0xABEB, 0xABF0, @@ -139390,12 +140872,20 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 037 */ 0x10D28, 0x10D30, 0x10D3A, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAD, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, 0x10F28, 0x10F30, 0x10F46, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11000, @@ -139413,7 +140903,7 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 037 */ 0x11136, 0x11140, 0x11144, - 0x11147, + 0x11148, 0x11150, 0x11173, 0x11176, @@ -139422,7 +140912,7 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 037 */ 0x111C0, 0x111C1, 0x111C5, - 0x111D0, + 0x111CE, 0x111DB, 0x111DC, 0x111DD, @@ -139483,7 +140973,7 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 037 */ 0x11450, 0x1145A, 0x1145F, - 0x11460, + 0x11462, 0x11480, 0x114C2, 0x114C4, @@ -139523,7 +141013,23 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 037 */ 0x118A0, 0x118EA, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x1193D, + 0x1193F, + 0x11943, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -139594,6 +141100,8 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 037 */ 0x11DAA, 0x11EE0, 0x11EF7, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12400, @@ -139634,10 +141142,14 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 037 */ 0x16FE2, 0x16FE3, 0x16FE4, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -139822,8 +141334,10 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 037 */ 0x1F16A, 0x1F170, 0x1F18A, + 0x1FBF0, + 0x1FBFA, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -139833,7 +141347,9 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 037 */ 0x2CEB0, 0x2EBE1, 0x2F800, - 0x2FA1E + 0x2FA1E, + 0x30000, + 0x3134B }; # endif /* EBCDIC 037 */ @@ -139841,7 +141357,7 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for ASCII/Latin1 */ - 1359, /* Number of elements */ + 1391, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -139953,7 +141469,7 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for ASCII/Latin1 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D4, 0x8E0, 0x8E3, @@ -140161,8 +141677,6 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for ASCII/Latin1 */ 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -140182,7 +141696,7 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for ASCII/Latin1 */ 0xD64, 0xD7A, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -140358,6 +141872,8 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for ASCII/Latin1 */ 0x1A75, 0x1AA7, 0x1AA8, + 0x1ABF, + 0x1AC1, 0x1B00, 0x1B34, 0x1B35, @@ -140533,13 +142049,13 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for ASCII/Latin1 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA4D0, @@ -140563,8 +142079,8 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for ASCII/Latin1 */ 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA806, 0xA807, 0xA828, @@ -140627,7 +142143,7 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for ASCII/Latin1 */ 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB6A, 0xAB70, 0xABEB, 0xAC00, @@ -140796,12 +142312,20 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for ASCII/Latin1 */ 0x10CF3, 0x10D00, 0x10D28, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAD, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, 0x10F28, 0x10F30, 0x10F46, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11000, @@ -140813,7 +142337,7 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for ASCII/Latin1 */ 0x11100, 0x11133, 0x11144, - 0x11147, + 0x11148, 0x11150, 0x11173, 0x11176, @@ -140822,6 +142346,8 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for ASCII/Latin1 */ 0x111C0, 0x111C1, 0x111C5, + 0x111CE, + 0x111D0, 0x111DA, 0x111DB, 0x111DC, @@ -140879,7 +142405,7 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for ASCII/Latin1 */ 0x11447, 0x1144B, 0x1145F, - 0x11460, + 0x11462, 0x11480, 0x114C2, 0x114C4, @@ -140911,7 +142437,21 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for ASCII/Latin1 */ 0x118A0, 0x118E0, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x1193D, + 0x1193F, + 0x11943, 0x119A0, 0x119A8, 0x119AA, @@ -140976,6 +142516,8 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for ASCII/Latin1 */ 0x11D99, 0x11EE0, 0x11EF7, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12400, @@ -141012,10 +142554,14 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for ASCII/Latin1 */ 0x16FE2, 0x16FE3, 0x16FE4, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -141193,7 +142739,7 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for ASCII/Latin1 */ 0x1F170, 0x1F18A, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -141203,7 +142749,9 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for ASCII/Latin1 */ 0x2CEB0, 0x2EBE1, 0x2F800, - 0x2FA1E + 0x2FA1E, + 0x30000, + 0x3134B }; # endif /* ASCII/Latin1 */ @@ -141214,7 +142762,7 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 1047 */ - 1385, /* Number of elements */ + 1417, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -141352,7 +142900,7 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 1047 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D4, 0x8E0, 0x8E3, @@ -141560,8 +143108,6 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 1047 */ 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -141581,7 +143127,7 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 1047 */ 0xD64, 0xD7A, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -141757,6 +143303,8 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 1047 */ 0x1A75, 0x1AA7, 0x1AA8, + 0x1ABF, + 0x1AC1, 0x1B00, 0x1B34, 0x1B35, @@ -141932,13 +143480,13 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 1047 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA4D0, @@ -141962,8 +143510,8 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 1047 */ 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA806, 0xA807, 0xA828, @@ -142026,7 +143574,7 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 1047 */ 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB6A, 0xAB70, 0xABEB, 0xAC00, @@ -142195,12 +143743,20 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 1047 */ 0x10CF3, 0x10D00, 0x10D28, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAD, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, 0x10F28, 0x10F30, 0x10F46, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11000, @@ -142212,7 +143768,7 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 1047 */ 0x11100, 0x11133, 0x11144, - 0x11147, + 0x11148, 0x11150, 0x11173, 0x11176, @@ -142221,6 +143777,8 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 1047 */ 0x111C0, 0x111C1, 0x111C5, + 0x111CE, + 0x111D0, 0x111DA, 0x111DB, 0x111DC, @@ -142278,7 +143836,7 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 1047 */ 0x11447, 0x1144B, 0x1145F, - 0x11460, + 0x11462, 0x11480, 0x114C2, 0x114C4, @@ -142310,7 +143868,21 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 1047 */ 0x118A0, 0x118E0, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x1193D, + 0x1193F, + 0x11943, 0x119A0, 0x119A8, 0x119AA, @@ -142375,6 +143947,8 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 1047 */ 0x11D99, 0x11EE0, 0x11EF7, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12400, @@ -142411,10 +143985,14 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 1047 */ 0x16FE2, 0x16FE3, 0x16FE4, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -142592,7 +144170,7 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 1047 */ 0x1F170, 0x1F18A, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -142602,7 +144180,9 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 1047 */ 0x2CEB0, 0x2EBE1, 0x2F800, - 0x2FA1E + 0x2FA1E, + 0x30000, + 0x3134B }; # endif /* EBCDIC 1047 */ @@ -142613,7 +144193,7 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 037 */ - 1381, /* Number of elements */ + 1413, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -142747,7 +144327,7 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 037 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D4, 0x8E0, 0x8E3, @@ -142955,8 +144535,6 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 037 */ 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -142976,7 +144554,7 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 037 */ 0xD64, 0xD7A, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -143152,6 +144730,8 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 037 */ 0x1A75, 0x1AA7, 0x1AA8, + 0x1ABF, + 0x1AC1, 0x1B00, 0x1B34, 0x1B35, @@ -143327,13 +144907,13 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 037 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA4D0, @@ -143357,8 +144937,8 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 037 */ 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA806, 0xA807, 0xA828, @@ -143421,7 +145001,7 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 037 */ 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB6A, 0xAB70, 0xABEB, 0xAC00, @@ -143590,12 +145170,20 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 037 */ 0x10CF3, 0x10D00, 0x10D28, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAD, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, 0x10F28, 0x10F30, 0x10F46, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11000, @@ -143607,7 +145195,7 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 037 */ 0x11100, 0x11133, 0x11144, - 0x11147, + 0x11148, 0x11150, 0x11173, 0x11176, @@ -143616,6 +145204,8 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 037 */ 0x111C0, 0x111C1, 0x111C5, + 0x111CE, + 0x111D0, 0x111DA, 0x111DB, 0x111DC, @@ -143673,7 +145263,7 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 037 */ 0x11447, 0x1144B, 0x1145F, - 0x11460, + 0x11462, 0x11480, 0x114C2, 0x114C4, @@ -143705,7 +145295,21 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 037 */ 0x118A0, 0x118E0, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x1193D, + 0x1193F, + 0x11943, 0x119A0, 0x119A8, 0x119AA, @@ -143770,6 +145374,8 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 037 */ 0x11D99, 0x11EE0, 0x11EF7, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12400, @@ -143806,10 +145412,14 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 037 */ 0x16FE2, 0x16FE3, 0x16FE4, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -143987,7 +145597,7 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 037 */ 0x1F170, 0x1F18A, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -143997,7 +145607,9 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 037 */ 0x2CEB0, 0x2EBE1, 0x2F800, - 0x2FA1E + 0x2FA1E, + 0x30000, + 0x3134B }; # endif /* EBCDIC 037 */ @@ -144142,7 +145754,7 @@ static const UV UNI_XPOSIXCNTRL_invlist[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_XPOSIXDIGIT_invlist[] = { /* for ASCII/Latin1 */ - 119, /* Number of elements */ + 123, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -144247,6 +145859,8 @@ static const UV UNI_XPOSIXDIGIT_invlist[] = { /* for ASCII/Latin1 */ 0x1173A, 0x118E0, 0x118EA, + 0x11950, + 0x1195A, 0x11C50, 0x11C5A, 0x11D50, @@ -144264,7 +145878,9 @@ static const UV UNI_XPOSIXDIGIT_invlist[] = { /* for ASCII/Latin1 */ 0x1E2F0, 0x1E2FA, 0x1E950, - 0x1E95A + 0x1E95A, + 0x1FBF0, + 0x1FBFA }; # endif /* ASCII/Latin1 */ @@ -144275,7 +145891,7 @@ static const UV UNI_XPOSIXDIGIT_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_XPOSIXDIGIT_invlist[] = { /* for EBCDIC 1047 */ - 119, /* Number of elements */ + 123, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -144380,6 +145996,8 @@ static const UV UNI_XPOSIXDIGIT_invlist[] = { /* for EBCDIC 1047 */ 0x1173A, 0x118E0, 0x118EA, + 0x11950, + 0x1195A, 0x11C50, 0x11C5A, 0x11D50, @@ -144397,7 +146015,9 @@ static const UV UNI_XPOSIXDIGIT_invlist[] = { /* for EBCDIC 1047 */ 0x1E2F0, 0x1E2FA, 0x1E950, - 0x1E95A + 0x1E95A, + 0x1FBF0, + 0x1FBFA }; # endif /* EBCDIC 1047 */ @@ -144408,7 +146028,7 @@ static const UV UNI_XPOSIXDIGIT_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_XPOSIXDIGIT_invlist[] = { /* for EBCDIC 037 */ - 119, /* Number of elements */ + 123, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -144513,6 +146133,8 @@ static const UV UNI_XPOSIXDIGIT_invlist[] = { /* for EBCDIC 037 */ 0x1173A, 0x118E0, 0x118EA, + 0x11950, + 0x1195A, 0x11C50, 0x11C5A, 0x11D50, @@ -144530,7 +146152,9 @@ static const UV UNI_XPOSIXDIGIT_invlist[] = { /* for EBCDIC 037 */ 0x1E2F0, 0x1E2FA, 0x1E950, - 0x1E95A + 0x1E95A, + 0x1FBF0, + 0x1FBFA }; # endif /* EBCDIC 037 */ @@ -144538,7 +146162,7 @@ static const UV UNI_XPOSIXDIGIT_invlist[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */ - 1343, /* Number of elements */ + 1365, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -144592,7 +146216,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x984, 0x985, @@ -144701,7 +146325,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -144790,8 +146414,6 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */ 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -144805,7 +146427,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */ 0xD64, 0xD66, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -144980,7 +146602,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */ 0x1AA0, 0x1AAE, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B4C, 0x1B50, @@ -145061,7 +146683,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */ 0x2B74, 0x2B76, 0x2B96, - 0x2B98, + 0x2B97, 0x2C2F, 0x2C30, 0x2C5F, @@ -145096,7 +146718,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */ 0x2DD8, 0x2DDF, 0x2DE0, - 0x2E50, + 0x2E53, 0x2E80, 0x2E9A, 0x2E9B, @@ -145116,15 +146738,11 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */ 0x3131, 0x318F, 0x3190, - 0x31BB, - 0x31C0, 0x31E4, 0x31F0, 0x321F, 0x3220, - 0x4DB6, - 0x4DC0, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA490, @@ -145136,9 +146754,9 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */ 0xA700, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, - 0xA82C, + 0xA7CB, + 0xA7F5, + 0xA82D, 0xA830, 0xA83A, 0xA840, @@ -145178,7 +146796,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */ 0xAB28, 0xAB2F, 0xAB30, - 0xAB68, + 0xAB6C, 0xAB70, 0xABEE, 0xABF0, @@ -145268,7 +146886,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */ 0x10137, 0x1018F, 0x10190, - 0x1019C, + 0x1019D, 0x101A0, 0x101A1, 0x101D0, @@ -145387,10 +147005,18 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */ 0x10D3A, 0x10E60, 0x10E7F, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAE, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F28, 0x10F30, 0x10F5A, + 0x10FB0, + 0x10FCC, 0x10FE0, 0x10FF7, 0x11000, @@ -145408,12 +147034,10 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */ 0x11100, 0x11135, 0x11136, - 0x11147, + 0x11148, 0x11150, 0x11177, 0x11180, - 0x111CE, - 0x111D0, 0x111E0, 0x111E1, 0x111F5, @@ -145466,11 +147090,9 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */ 0x11370, 0x11375, 0x11400, - 0x1145A, - 0x1145B, 0x1145C, 0x1145D, - 0x11460, + 0x11462, 0x11480, 0x114C8, 0x114D0, @@ -145500,7 +147122,21 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */ 0x118A0, 0x118F3, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11947, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -145555,6 +147191,8 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */ 0x11DAA, 0x11EE0, 0x11EF9, + 0x11FB0, + 0x11FB1, 0x11FC0, 0x11FF2, 0x11FFF, @@ -145602,11 +147240,15 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */ 0x16F8F, 0x16FA0, 0x16FE0, - 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -145802,11 +147444,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */ 0x1F0D1, 0x1F0F6, 0x1F100, - 0x1F10D, - 0x1F110, - 0x1F16D, - 0x1F170, - 0x1F1AD, + 0x1F1AE, 0x1F1E6, 0x1F203, 0x1F210, @@ -145818,11 +147456,11 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */ 0x1F260, 0x1F266, 0x1F300, - 0x1F6D6, + 0x1F6D8, 0x1F6E0, 0x1F6ED, 0x1F6F0, - 0x1F6FB, + 0x1F6FD, 0x1F700, 0x1F774, 0x1F780, @@ -145839,32 +147477,38 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */ 0x1F888, 0x1F890, 0x1F8AE, + 0x1F8B0, + 0x1F8B2, 0x1F900, - 0x1F90C, - 0x1F90D, - 0x1F972, - 0x1F973, - 0x1F977, + 0x1F979, 0x1F97A, - 0x1F9A3, - 0x1F9A5, - 0x1F9AB, - 0x1F9AE, - 0x1F9CB, + 0x1F9CC, 0x1F9CD, 0x1FA54, 0x1FA60, 0x1FA6E, 0x1FA70, - 0x1FA74, + 0x1FA75, 0x1FA78, 0x1FA7B, 0x1FA80, - 0x1FA83, + 0x1FA87, 0x1FA90, - 0x1FA96, + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB, + 0x1FBF0, + 0x1FBFA, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -145875,6 +147519,8 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */ 0x2EBE1, 0x2F800, 0x2FA1E, + 0x30000, + 0x3134B, 0xE0001, 0xE0002, 0xE0020, @@ -145895,7 +147541,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */ - 1343, /* Number of elements */ + 1365, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -145949,7 +147595,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x984, 0x985, @@ -146058,7 +147704,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -146147,8 +147793,6 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */ 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -146162,7 +147806,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */ 0xD64, 0xD66, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -146337,7 +147981,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */ 0x1AA0, 0x1AAE, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B4C, 0x1B50, @@ -146418,7 +148062,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */ 0x2B74, 0x2B76, 0x2B96, - 0x2B98, + 0x2B97, 0x2C2F, 0x2C30, 0x2C5F, @@ -146453,7 +148097,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */ 0x2DD8, 0x2DDF, 0x2DE0, - 0x2E50, + 0x2E53, 0x2E80, 0x2E9A, 0x2E9B, @@ -146473,15 +148117,11 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */ 0x3131, 0x318F, 0x3190, - 0x31BB, - 0x31C0, 0x31E4, 0x31F0, 0x321F, 0x3220, - 0x4DB6, - 0x4DC0, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA490, @@ -146493,9 +148133,9 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */ 0xA700, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, - 0xA82C, + 0xA7CB, + 0xA7F5, + 0xA82D, 0xA830, 0xA83A, 0xA840, @@ -146535,7 +148175,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */ 0xAB28, 0xAB2F, 0xAB30, - 0xAB68, + 0xAB6C, 0xAB70, 0xABEE, 0xABF0, @@ -146625,7 +148265,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */ 0x10137, 0x1018F, 0x10190, - 0x1019C, + 0x1019D, 0x101A0, 0x101A1, 0x101D0, @@ -146744,10 +148384,18 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */ 0x10D3A, 0x10E60, 0x10E7F, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAE, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F28, 0x10F30, 0x10F5A, + 0x10FB0, + 0x10FCC, 0x10FE0, 0x10FF7, 0x11000, @@ -146765,12 +148413,10 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */ 0x11100, 0x11135, 0x11136, - 0x11147, + 0x11148, 0x11150, 0x11177, 0x11180, - 0x111CE, - 0x111D0, 0x111E0, 0x111E1, 0x111F5, @@ -146823,11 +148469,9 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */ 0x11370, 0x11375, 0x11400, - 0x1145A, - 0x1145B, 0x1145C, 0x1145D, - 0x11460, + 0x11462, 0x11480, 0x114C8, 0x114D0, @@ -146857,7 +148501,21 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */ 0x118A0, 0x118F3, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11947, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -146912,6 +148570,8 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */ 0x11DAA, 0x11EE0, 0x11EF9, + 0x11FB0, + 0x11FB1, 0x11FC0, 0x11FF2, 0x11FFF, @@ -146959,11 +148619,15 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */ 0x16F8F, 0x16FA0, 0x16FE0, - 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -147159,11 +148823,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */ 0x1F0D1, 0x1F0F6, 0x1F100, - 0x1F10D, - 0x1F110, - 0x1F16D, - 0x1F170, - 0x1F1AD, + 0x1F1AE, 0x1F1E6, 0x1F203, 0x1F210, @@ -147175,11 +148835,11 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */ 0x1F260, 0x1F266, 0x1F300, - 0x1F6D6, + 0x1F6D8, 0x1F6E0, 0x1F6ED, 0x1F6F0, - 0x1F6FB, + 0x1F6FD, 0x1F700, 0x1F774, 0x1F780, @@ -147196,32 +148856,38 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */ 0x1F888, 0x1F890, 0x1F8AE, + 0x1F8B0, + 0x1F8B2, 0x1F900, - 0x1F90C, - 0x1F90D, - 0x1F972, - 0x1F973, - 0x1F977, + 0x1F979, 0x1F97A, - 0x1F9A3, - 0x1F9A5, - 0x1F9AB, - 0x1F9AE, - 0x1F9CB, + 0x1F9CC, 0x1F9CD, 0x1FA54, 0x1FA60, 0x1FA6E, 0x1FA70, - 0x1FA74, + 0x1FA75, 0x1FA78, 0x1FA7B, 0x1FA80, - 0x1FA83, + 0x1FA87, 0x1FA90, - 0x1FA96, + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB, + 0x1FBF0, + 0x1FBFA, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -147232,6 +148898,8 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */ 0x2EBE1, 0x2F800, 0x2FA1E, + 0x30000, + 0x3134B, 0xE0001, 0xE0002, 0xE0020, @@ -147252,7 +148920,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */ - 1343, /* Number of elements */ + 1365, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -147306,7 +148974,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x984, 0x985, @@ -147415,7 +149083,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -147504,8 +149172,6 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */ 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -147519,7 +149185,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */ 0xD64, 0xD66, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -147694,7 +149360,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */ 0x1AA0, 0x1AAE, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B4C, 0x1B50, @@ -147775,7 +149441,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */ 0x2B74, 0x2B76, 0x2B96, - 0x2B98, + 0x2B97, 0x2C2F, 0x2C30, 0x2C5F, @@ -147810,7 +149476,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */ 0x2DD8, 0x2DDF, 0x2DE0, - 0x2E50, + 0x2E53, 0x2E80, 0x2E9A, 0x2E9B, @@ -147830,15 +149496,11 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */ 0x3131, 0x318F, 0x3190, - 0x31BB, - 0x31C0, 0x31E4, 0x31F0, 0x321F, 0x3220, - 0x4DB6, - 0x4DC0, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA490, @@ -147850,9 +149512,9 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */ 0xA700, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, - 0xA82C, + 0xA7CB, + 0xA7F5, + 0xA82D, 0xA830, 0xA83A, 0xA840, @@ -147892,7 +149554,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */ 0xAB28, 0xAB2F, 0xAB30, - 0xAB68, + 0xAB6C, 0xAB70, 0xABEE, 0xABF0, @@ -147982,7 +149644,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */ 0x10137, 0x1018F, 0x10190, - 0x1019C, + 0x1019D, 0x101A0, 0x101A1, 0x101D0, @@ -148101,10 +149763,18 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */ 0x10D3A, 0x10E60, 0x10E7F, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAE, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F28, 0x10F30, 0x10F5A, + 0x10FB0, + 0x10FCC, 0x10FE0, 0x10FF7, 0x11000, @@ -148122,12 +149792,10 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */ 0x11100, 0x11135, 0x11136, - 0x11147, + 0x11148, 0x11150, 0x11177, 0x11180, - 0x111CE, - 0x111D0, 0x111E0, 0x111E1, 0x111F5, @@ -148180,11 +149848,9 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */ 0x11370, 0x11375, 0x11400, - 0x1145A, - 0x1145B, 0x1145C, 0x1145D, - 0x11460, + 0x11462, 0x11480, 0x114C8, 0x114D0, @@ -148214,7 +149880,21 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */ 0x118A0, 0x118F3, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11947, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -148269,6 +149949,8 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */ 0x11DAA, 0x11EE0, 0x11EF9, + 0x11FB0, + 0x11FB1, 0x11FC0, 0x11FF2, 0x11FFF, @@ -148316,11 +149998,15 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */ 0x16F8F, 0x16FA0, 0x16FE0, - 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -148516,11 +150202,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */ 0x1F0D1, 0x1F0F6, 0x1F100, - 0x1F10D, - 0x1F110, - 0x1F16D, - 0x1F170, - 0x1F1AD, + 0x1F1AE, 0x1F1E6, 0x1F203, 0x1F210, @@ -148532,11 +150214,11 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */ 0x1F260, 0x1F266, 0x1F300, - 0x1F6D6, + 0x1F6D8, 0x1F6E0, 0x1F6ED, 0x1F6F0, - 0x1F6FB, + 0x1F6FD, 0x1F700, 0x1F774, 0x1F780, @@ -148553,32 +150235,38 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */ 0x1F888, 0x1F890, 0x1F8AE, + 0x1F8B0, + 0x1F8B2, 0x1F900, - 0x1F90C, - 0x1F90D, - 0x1F972, - 0x1F973, - 0x1F977, + 0x1F979, 0x1F97A, - 0x1F9A3, - 0x1F9A5, - 0x1F9AB, - 0x1F9AE, - 0x1F9CB, + 0x1F9CC, 0x1F9CD, 0x1FA54, 0x1FA60, 0x1FA6E, 0x1FA70, - 0x1FA74, + 0x1FA75, 0x1FA78, 0x1FA7B, 0x1FA80, - 0x1FA83, + 0x1FA87, 0x1FA90, - 0x1FA96, + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB, + 0x1FBF0, + 0x1FBFA, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -148589,6 +150277,8 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */ 0x2EBE1, 0x2F800, 0x2FA1E, + 0x30000, + 0x3134B, 0xE0001, 0xE0002, 0xE0020, @@ -148606,7 +150296,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_XPOSIXLOWER_invlist[] = { /* for ASCII/Latin1 */ - 1299, /* Number of elements */ + 1305, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -149827,12 +151517,18 @@ static const UV UNI_XPOSIXLOWER_invlist[] = { /* for ASCII/Latin1 */ 0xA7C0, 0xA7C3, 0xA7C4, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7CB, + 0xA7F6, + 0xA7F7, 0xA7F8, 0xA7FB, 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB69, 0xAB70, 0xABC0, 0xFB00, @@ -149919,7 +151615,7 @@ static const UV UNI_XPOSIXLOWER_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_XPOSIXLOWER_invlist[] = { /* for EBCDIC 1047 */ - 1307, /* Number of elements */ + 1313, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -151148,12 +152844,18 @@ static const UV UNI_XPOSIXLOWER_invlist[] = { /* for EBCDIC 1047 */ 0xA7C0, 0xA7C3, 0xA7C4, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7CB, + 0xA7F6, + 0xA7F7, 0xA7F8, 0xA7FB, 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB69, 0xAB70, 0xABC0, 0xFB00, @@ -151240,7 +152942,7 @@ static const UV UNI_XPOSIXLOWER_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_XPOSIXLOWER_invlist[] = { /* for EBCDIC 037 */ - 1307, /* Number of elements */ + 1313, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -152469,12 +154171,18 @@ static const UV UNI_XPOSIXLOWER_invlist[] = { /* for EBCDIC 037 */ 0xA7C0, 0xA7C3, 0xA7C4, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7CB, + 0xA7F6, + 0xA7F7, 0xA7F8, 0xA7FB, 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB69, 0xAB70, 0xABC0, 0xFB00, @@ -152558,7 +154266,7 @@ static const UV UNI_XPOSIXLOWER_invlist[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */ - 1337, /* Number of elements */ + 1359, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -152612,7 +154320,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x984, 0x985, @@ -152721,7 +154429,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -152810,8 +154518,6 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */ 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -152825,7 +154531,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */ 0xD64, 0xD66, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -152998,7 +154704,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */ 0x1AA0, 0x1AAE, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B4C, 0x1B50, @@ -153075,7 +154781,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */ 0x2B74, 0x2B76, 0x2B96, - 0x2B98, + 0x2B97, 0x2C2F, 0x2C30, 0x2C5F, @@ -153110,7 +154816,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */ 0x2DD8, 0x2DDF, 0x2DE0, - 0x2E50, + 0x2E53, 0x2E80, 0x2E9A, 0x2E9B, @@ -153130,15 +154836,11 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */ 0x3131, 0x318F, 0x3190, - 0x31BB, - 0x31C0, 0x31E4, 0x31F0, 0x321F, 0x3220, - 0x4DB6, - 0x4DC0, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA490, @@ -153150,9 +154852,9 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */ 0xA700, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, - 0xA82C, + 0xA7CB, + 0xA7F5, + 0xA82D, 0xA830, 0xA83A, 0xA840, @@ -153192,7 +154894,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */ 0xAB28, 0xAB2F, 0xAB30, - 0xAB68, + 0xAB6C, 0xAB70, 0xABEE, 0xABF0, @@ -153282,7 +154984,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */ 0x10137, 0x1018F, 0x10190, - 0x1019C, + 0x1019D, 0x101A0, 0x101A1, 0x101D0, @@ -153401,10 +155103,18 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */ 0x10D3A, 0x10E60, 0x10E7F, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAE, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F28, 0x10F30, 0x10F5A, + 0x10FB0, + 0x10FCC, 0x10FE0, 0x10FF7, 0x11000, @@ -153422,12 +155132,10 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */ 0x11100, 0x11135, 0x11136, - 0x11147, + 0x11148, 0x11150, 0x11177, 0x11180, - 0x111CE, - 0x111D0, 0x111E0, 0x111E1, 0x111F5, @@ -153480,11 +155188,9 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */ 0x11370, 0x11375, 0x11400, - 0x1145A, - 0x1145B, 0x1145C, 0x1145D, - 0x11460, + 0x11462, 0x11480, 0x114C8, 0x114D0, @@ -153514,7 +155220,21 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */ 0x118A0, 0x118F3, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11947, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -153569,6 +155289,8 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */ 0x11DAA, 0x11EE0, 0x11EF9, + 0x11FB0, + 0x11FB1, 0x11FC0, 0x11FF2, 0x11FFF, @@ -153616,11 +155338,15 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */ 0x16F8F, 0x16FA0, 0x16FE0, - 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -153816,11 +155542,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */ 0x1F0D1, 0x1F0F6, 0x1F100, - 0x1F10D, - 0x1F110, - 0x1F16D, - 0x1F170, - 0x1F1AD, + 0x1F1AE, 0x1F1E6, 0x1F203, 0x1F210, @@ -153832,11 +155554,11 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */ 0x1F260, 0x1F266, 0x1F300, - 0x1F6D6, + 0x1F6D8, 0x1F6E0, 0x1F6ED, 0x1F6F0, - 0x1F6FB, + 0x1F6FD, 0x1F700, 0x1F774, 0x1F780, @@ -153853,32 +155575,38 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */ 0x1F888, 0x1F890, 0x1F8AE, + 0x1F8B0, + 0x1F8B2, 0x1F900, - 0x1F90C, - 0x1F90D, - 0x1F972, - 0x1F973, - 0x1F977, + 0x1F979, 0x1F97A, - 0x1F9A3, - 0x1F9A5, - 0x1F9AB, - 0x1F9AE, - 0x1F9CB, + 0x1F9CC, 0x1F9CD, 0x1FA54, 0x1FA60, 0x1FA6E, 0x1FA70, - 0x1FA74, + 0x1FA75, 0x1FA78, 0x1FA7B, 0x1FA80, - 0x1FA83, + 0x1FA87, 0x1FA90, - 0x1FA96, + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB, + 0x1FBF0, + 0x1FBFA, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -153889,6 +155617,8 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */ 0x2EBE1, 0x2F800, 0x2FA1E, + 0x30000, + 0x3134B, 0xE0001, 0xE0002, 0xE0020, @@ -153909,7 +155639,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */ - 1337, /* Number of elements */ + 1359, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -153963,7 +155693,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x984, 0x985, @@ -154072,7 +155802,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -154161,8 +155891,6 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */ 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -154176,7 +155904,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */ 0xD64, 0xD66, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -154349,7 +156077,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */ 0x1AA0, 0x1AAE, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B4C, 0x1B50, @@ -154426,7 +156154,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */ 0x2B74, 0x2B76, 0x2B96, - 0x2B98, + 0x2B97, 0x2C2F, 0x2C30, 0x2C5F, @@ -154461,7 +156189,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */ 0x2DD8, 0x2DDF, 0x2DE0, - 0x2E50, + 0x2E53, 0x2E80, 0x2E9A, 0x2E9B, @@ -154481,15 +156209,11 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */ 0x3131, 0x318F, 0x3190, - 0x31BB, - 0x31C0, 0x31E4, 0x31F0, 0x321F, 0x3220, - 0x4DB6, - 0x4DC0, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA490, @@ -154501,9 +156225,9 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */ 0xA700, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, - 0xA82C, + 0xA7CB, + 0xA7F5, + 0xA82D, 0xA830, 0xA83A, 0xA840, @@ -154543,7 +156267,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */ 0xAB28, 0xAB2F, 0xAB30, - 0xAB68, + 0xAB6C, 0xAB70, 0xABEE, 0xABF0, @@ -154633,7 +156357,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */ 0x10137, 0x1018F, 0x10190, - 0x1019C, + 0x1019D, 0x101A0, 0x101A1, 0x101D0, @@ -154752,10 +156476,18 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */ 0x10D3A, 0x10E60, 0x10E7F, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAE, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F28, 0x10F30, 0x10F5A, + 0x10FB0, + 0x10FCC, 0x10FE0, 0x10FF7, 0x11000, @@ -154773,12 +156505,10 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */ 0x11100, 0x11135, 0x11136, - 0x11147, + 0x11148, 0x11150, 0x11177, 0x11180, - 0x111CE, - 0x111D0, 0x111E0, 0x111E1, 0x111F5, @@ -154831,11 +156561,9 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */ 0x11370, 0x11375, 0x11400, - 0x1145A, - 0x1145B, 0x1145C, 0x1145D, - 0x11460, + 0x11462, 0x11480, 0x114C8, 0x114D0, @@ -154865,7 +156593,21 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */ 0x118A0, 0x118F3, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11947, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -154920,6 +156662,8 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */ 0x11DAA, 0x11EE0, 0x11EF9, + 0x11FB0, + 0x11FB1, 0x11FC0, 0x11FF2, 0x11FFF, @@ -154967,11 +156711,15 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */ 0x16F8F, 0x16FA0, 0x16FE0, - 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -155167,11 +156915,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */ 0x1F0D1, 0x1F0F6, 0x1F100, - 0x1F10D, - 0x1F110, - 0x1F16D, - 0x1F170, - 0x1F1AD, + 0x1F1AE, 0x1F1E6, 0x1F203, 0x1F210, @@ -155183,11 +156927,11 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */ 0x1F260, 0x1F266, 0x1F300, - 0x1F6D6, + 0x1F6D8, 0x1F6E0, 0x1F6ED, 0x1F6F0, - 0x1F6FB, + 0x1F6FD, 0x1F700, 0x1F774, 0x1F780, @@ -155204,32 +156948,38 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */ 0x1F888, 0x1F890, 0x1F8AE, + 0x1F8B0, + 0x1F8B2, 0x1F900, - 0x1F90C, - 0x1F90D, - 0x1F972, - 0x1F973, - 0x1F977, + 0x1F979, 0x1F97A, - 0x1F9A3, - 0x1F9A5, - 0x1F9AB, - 0x1F9AE, - 0x1F9CB, + 0x1F9CC, 0x1F9CD, 0x1FA54, 0x1FA60, 0x1FA6E, 0x1FA70, - 0x1FA74, + 0x1FA75, 0x1FA78, 0x1FA7B, 0x1FA80, - 0x1FA83, + 0x1FA87, 0x1FA90, - 0x1FA96, + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB, + 0x1FBF0, + 0x1FBFA, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -155240,6 +156990,8 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */ 0x2EBE1, 0x2F800, 0x2FA1E, + 0x30000, + 0x3134B, 0xE0001, 0xE0002, 0xE0020, @@ -155260,7 +157012,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */ - 1337, /* Number of elements */ + 1359, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -155314,7 +157066,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x984, 0x985, @@ -155423,7 +157175,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -155512,8 +157264,6 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */ 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -155527,7 +157277,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */ 0xD64, 0xD66, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -155700,7 +157450,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */ 0x1AA0, 0x1AAE, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B4C, 0x1B50, @@ -155777,7 +157527,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */ 0x2B74, 0x2B76, 0x2B96, - 0x2B98, + 0x2B97, 0x2C2F, 0x2C30, 0x2C5F, @@ -155812,7 +157562,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */ 0x2DD8, 0x2DDF, 0x2DE0, - 0x2E50, + 0x2E53, 0x2E80, 0x2E9A, 0x2E9B, @@ -155832,15 +157582,11 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */ 0x3131, 0x318F, 0x3190, - 0x31BB, - 0x31C0, 0x31E4, 0x31F0, 0x321F, 0x3220, - 0x4DB6, - 0x4DC0, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA490, @@ -155852,9 +157598,9 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */ 0xA700, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, - 0xA82C, + 0xA7CB, + 0xA7F5, + 0xA82D, 0xA830, 0xA83A, 0xA840, @@ -155894,7 +157640,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */ 0xAB28, 0xAB2F, 0xAB30, - 0xAB68, + 0xAB6C, 0xAB70, 0xABEE, 0xABF0, @@ -155984,7 +157730,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */ 0x10137, 0x1018F, 0x10190, - 0x1019C, + 0x1019D, 0x101A0, 0x101A1, 0x101D0, @@ -156103,10 +157849,18 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */ 0x10D3A, 0x10E60, 0x10E7F, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAE, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F28, 0x10F30, 0x10F5A, + 0x10FB0, + 0x10FCC, 0x10FE0, 0x10FF7, 0x11000, @@ -156124,12 +157878,10 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */ 0x11100, 0x11135, 0x11136, - 0x11147, + 0x11148, 0x11150, 0x11177, 0x11180, - 0x111CE, - 0x111D0, 0x111E0, 0x111E1, 0x111F5, @@ -156182,11 +157934,9 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */ 0x11370, 0x11375, 0x11400, - 0x1145A, - 0x1145B, 0x1145C, 0x1145D, - 0x11460, + 0x11462, 0x11480, 0x114C8, 0x114D0, @@ -156216,7 +157966,21 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */ 0x118A0, 0x118F3, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11947, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -156271,6 +158035,8 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */ 0x11DAA, 0x11EE0, 0x11EF9, + 0x11FB0, + 0x11FB1, 0x11FC0, 0x11FF2, 0x11FFF, @@ -156318,11 +158084,15 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */ 0x16F8F, 0x16FA0, 0x16FE0, - 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -156518,11 +158288,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */ 0x1F0D1, 0x1F0F6, 0x1F100, - 0x1F10D, - 0x1F110, - 0x1F16D, - 0x1F170, - 0x1F1AD, + 0x1F1AE, 0x1F1E6, 0x1F203, 0x1F210, @@ -156534,11 +158300,11 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */ 0x1F260, 0x1F266, 0x1F300, - 0x1F6D6, + 0x1F6D8, 0x1F6E0, 0x1F6ED, 0x1F6F0, - 0x1F6FB, + 0x1F6FD, 0x1F700, 0x1F774, 0x1F780, @@ -156555,32 +158321,38 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */ 0x1F888, 0x1F890, 0x1F8AE, + 0x1F8B0, + 0x1F8B2, 0x1F900, - 0x1F90C, - 0x1F90D, - 0x1F972, - 0x1F973, - 0x1F977, + 0x1F979, 0x1F97A, - 0x1F9A3, - 0x1F9A5, - 0x1F9AB, - 0x1F9AE, - 0x1F9CB, + 0x1F9CC, 0x1F9CD, 0x1FA54, 0x1FA60, 0x1FA6E, 0x1FA70, - 0x1FA74, + 0x1FA75, 0x1FA78, 0x1FA7B, 0x1FA80, - 0x1FA83, + 0x1FA87, 0x1FA90, - 0x1FA96, + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB, + 0x1FBF0, + 0x1FBFA, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -156591,6 +158363,8 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */ 0x2EBE1, 0x2F800, 0x2FA1E, + 0x30000, + 0x3134B, 0xE0001, 0xE0002, 0xE0020, @@ -156608,7 +158382,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_XPOSIXPUNCT_invlist[] = { /* for ASCII/Latin1 */ - 355, /* Number of elements */ + 361, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -156783,6 +158557,8 @@ static const UV UNI_XPOSIXPUNCT_invlist[] = { /* for ASCII/Latin1 */ 0x2E2F, 0x2E30, 0x2E50, + 0x2E52, + 0x2E53, 0x3001, 0x3004, 0x3008, @@ -156889,6 +158665,8 @@ static const UV UNI_XPOSIXPUNCT_invlist[] = { /* for ASCII/Latin1 */ 0x10B40, 0x10B99, 0x10B9D, + 0x10EAD, + 0x10EAE, 0x10F55, 0x10F5A, 0x11047, @@ -156915,7 +158693,7 @@ static const UV UNI_XPOSIXPUNCT_invlist[] = { /* for ASCII/Latin1 */ 0x112AA, 0x1144B, 0x11450, - 0x1145B, + 0x1145A, 0x1145C, 0x1145D, 0x1145E, @@ -156931,6 +158709,8 @@ static const UV UNI_XPOSIXPUNCT_invlist[] = { /* for ASCII/Latin1 */ 0x1173F, 0x1183B, 0x1183C, + 0x11944, + 0x11947, 0x119E2, 0x119E3, 0x11A3F, @@ -156977,7 +158757,7 @@ static const UV UNI_XPOSIXPUNCT_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_XPOSIXPUNCT_invlist[] = { /* for EBCDIC 1047 */ - 363, /* Number of elements */ + 369, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -157160,6 +158940,8 @@ static const UV UNI_XPOSIXPUNCT_invlist[] = { /* for EBCDIC 1047 */ 0x2E2F, 0x2E30, 0x2E50, + 0x2E52, + 0x2E53, 0x3001, 0x3004, 0x3008, @@ -157266,6 +159048,8 @@ static const UV UNI_XPOSIXPUNCT_invlist[] = { /* for EBCDIC 1047 */ 0x10B40, 0x10B99, 0x10B9D, + 0x10EAD, + 0x10EAE, 0x10F55, 0x10F5A, 0x11047, @@ -157292,7 +159076,7 @@ static const UV UNI_XPOSIXPUNCT_invlist[] = { /* for EBCDIC 1047 */ 0x112AA, 0x1144B, 0x11450, - 0x1145B, + 0x1145A, 0x1145C, 0x1145D, 0x1145E, @@ -157308,6 +159092,8 @@ static const UV UNI_XPOSIXPUNCT_invlist[] = { /* for EBCDIC 1047 */ 0x1173F, 0x1183B, 0x1183C, + 0x11944, + 0x11947, 0x119E2, 0x119E3, 0x11A3F, @@ -157354,7 +159140,7 @@ static const UV UNI_XPOSIXPUNCT_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_XPOSIXPUNCT_invlist[] = { /* for EBCDIC 037 */ - 365, /* Number of elements */ + 371, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -157539,6 +159325,8 @@ static const UV UNI_XPOSIXPUNCT_invlist[] = { /* for EBCDIC 037 */ 0x2E2F, 0x2E30, 0x2E50, + 0x2E52, + 0x2E53, 0x3001, 0x3004, 0x3008, @@ -157645,6 +159433,8 @@ static const UV UNI_XPOSIXPUNCT_invlist[] = { /* for EBCDIC 037 */ 0x10B40, 0x10B99, 0x10B9D, + 0x10EAD, + 0x10EAE, 0x10F55, 0x10F5A, 0x11047, @@ -157671,7 +159461,7 @@ static const UV UNI_XPOSIXPUNCT_invlist[] = { /* for EBCDIC 037 */ 0x112AA, 0x1144B, 0x11450, - 0x1145B, + 0x1145A, 0x1145C, 0x1145D, 0x1145E, @@ -157687,6 +159477,8 @@ static const UV UNI_XPOSIXPUNCT_invlist[] = { /* for EBCDIC 037 */ 0x1173F, 0x1183B, 0x1183C, + 0x11944, + 0x11947, 0x119E2, 0x119E3, 0x11A3F, @@ -157836,7 +159628,7 @@ static const UV UNI_XPOSIXSPACE_invlist[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_XPOSIXUPPER_invlist[] = { /* for ASCII/Latin1 */ - 1283, /* Number of elements */ + 1287, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -159040,7 +160832,11 @@ static const UV UNI_XPOSIXUPPER_invlist[] = { /* for ASCII/Latin1 */ 0xA7C2, 0xA7C3, 0xA7C4, - 0xA7C7, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7F5, + 0xA7F6, 0xFF21, 0xFF3B, 0x10400, @@ -159133,7 +160929,7 @@ static const UV UNI_XPOSIXUPPER_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_XPOSIXUPPER_invlist[] = { /* for EBCDIC 1047 */ - 1301, /* Number of elements */ + 1305, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -160355,7 +162151,11 @@ static const UV UNI_XPOSIXUPPER_invlist[] = { /* for EBCDIC 1047 */ 0xA7C2, 0xA7C3, 0xA7C4, - 0xA7C7, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7F5, + 0xA7F6, 0xFF21, 0xFF3B, 0x10400, @@ -160448,7 +162248,7 @@ static const UV UNI_XPOSIXUPPER_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_XPOSIXUPPER_invlist[] = { /* for EBCDIC 037 */ - 1297, /* Number of elements */ + 1301, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -161666,7 +163466,11 @@ static const UV UNI_XPOSIXUPPER_invlist[] = { /* for EBCDIC 037 */ 0xA7C2, 0xA7C3, 0xA7C4, - 0xA7C7, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7F5, + 0xA7F6, 0xFF21, 0xFF3B, 0x10400, @@ -161756,7 +163560,7 @@ static const UV UNI_XPOSIXUPPER_invlist[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */ - 1435, /* Number of elements */ + 1467, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -161864,7 +163668,7 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x8E2, 0x8E3, @@ -161983,7 +163787,7 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -162076,8 +163880,6 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */ 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -162095,7 +163897,7 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */ 0xD70, 0xD7A, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -162294,7 +164096,7 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */ 0x1AA7, 0x1AA8, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B4C, 0x1B50, @@ -162466,13 +164268,13 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA4D0, @@ -162494,9 +164296,11 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */ 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA828, + 0xA82C, + 0xA82D, 0xA840, 0xA874, 0xA880, @@ -162548,7 +164352,7 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */ 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB6A, 0xAB70, 0xABEB, 0xABEC, @@ -162745,12 +164549,20 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */ 0x10D28, 0x10D30, 0x10D3A, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAD, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, 0x10F28, 0x10F30, 0x10F51, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11000, @@ -162768,7 +164580,7 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */ 0x11136, 0x11140, 0x11144, - 0x11147, + 0x11148, 0x11150, 0x11174, 0x11176, @@ -162777,7 +164589,7 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */ 0x111C5, 0x111C9, 0x111CD, - 0x111D0, + 0x111CE, 0x111DB, 0x111DC, 0x111DD, @@ -162836,7 +164648,7 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */ 0x11450, 0x1145A, 0x1145E, - 0x11460, + 0x11462, 0x11480, 0x114C6, 0x114C7, @@ -162870,7 +164682,21 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */ 0x118A0, 0x118EA, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11944, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -162931,6 +164757,8 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */ 0x11DAA, 0x11EE0, 0x11EF7, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12400, @@ -162972,11 +164800,15 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */ 0x16FE0, 0x16FE2, 0x16FE3, - 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -163181,8 +165013,10 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */ 0x1F16A, 0x1F170, 0x1F18A, + 0x1FBF0, + 0x1FBFA, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -163193,6 +165027,8 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */ 0x2EBE1, 0x2F800, 0x2FA1E, + 0x30000, + 0x3134B, 0xE0100, 0xE01F0 }; @@ -163205,7 +165041,7 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */ - 1459, /* Number of elements */ + 1491, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -163337,7 +165173,7 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x8E2, 0x8E3, @@ -163456,7 +165292,7 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -163549,8 +165385,6 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */ 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -163568,7 +165402,7 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */ 0xD70, 0xD7A, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -163767,7 +165601,7 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */ 0x1AA7, 0x1AA8, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B4C, 0x1B50, @@ -163939,13 +165773,13 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA4D0, @@ -163967,9 +165801,11 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */ 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA828, + 0xA82C, + 0xA82D, 0xA840, 0xA874, 0xA880, @@ -164021,7 +165857,7 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */ 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB6A, 0xAB70, 0xABEB, 0xABEC, @@ -164218,12 +166054,20 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */ 0x10D28, 0x10D30, 0x10D3A, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAD, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, 0x10F28, 0x10F30, 0x10F51, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11000, @@ -164241,7 +166085,7 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */ 0x11136, 0x11140, 0x11144, - 0x11147, + 0x11148, 0x11150, 0x11174, 0x11176, @@ -164250,7 +166094,7 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */ 0x111C5, 0x111C9, 0x111CD, - 0x111D0, + 0x111CE, 0x111DB, 0x111DC, 0x111DD, @@ -164309,7 +166153,7 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */ 0x11450, 0x1145A, 0x1145E, - 0x11460, + 0x11462, 0x11480, 0x114C6, 0x114C7, @@ -164343,7 +166187,21 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */ 0x118A0, 0x118EA, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11944, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -164404,6 +166262,8 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */ 0x11DAA, 0x11EE0, 0x11EF7, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12400, @@ -164445,11 +166305,15 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */ 0x16FE0, 0x16FE2, 0x16FE3, - 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -164654,8 +166518,10 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */ 0x1F16A, 0x1F170, 0x1F18A, + 0x1FBF0, + 0x1FBFA, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -164666,6 +166532,8 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */ 0x2EBE1, 0x2F800, 0x2FA1E, + 0x30000, + 0x3134B, 0xE0100, 0xE01F0 }; @@ -164678,7 +166546,7 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */ - 1455, /* Number of elements */ + 1487, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -164806,7 +166674,7 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x8E2, 0x8E3, @@ -164925,7 +166793,7 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -165018,8 +166886,6 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */ 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -165037,7 +166903,7 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */ 0xD70, 0xD7A, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -165236,7 +167102,7 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */ 0x1AA7, 0x1AA8, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B4C, 0x1B50, @@ -165408,13 +167274,13 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA4D0, @@ -165436,9 +167302,11 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */ 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA828, + 0xA82C, + 0xA82D, 0xA840, 0xA874, 0xA880, @@ -165490,7 +167358,7 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */ 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB6A, 0xAB70, 0xABEB, 0xABEC, @@ -165687,12 +167555,20 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */ 0x10D28, 0x10D30, 0x10D3A, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAD, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, 0x10F28, 0x10F30, 0x10F51, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11000, @@ -165710,7 +167586,7 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */ 0x11136, 0x11140, 0x11144, - 0x11147, + 0x11148, 0x11150, 0x11174, 0x11176, @@ -165719,7 +167595,7 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */ 0x111C5, 0x111C9, 0x111CD, - 0x111D0, + 0x111CE, 0x111DB, 0x111DC, 0x111DD, @@ -165778,7 +167654,7 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */ 0x11450, 0x1145A, 0x1145E, - 0x11460, + 0x11462, 0x11480, 0x114C6, 0x114C7, @@ -165812,7 +167688,21 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */ 0x118A0, 0x118EA, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11944, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -165873,6 +167763,8 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */ 0x11DAA, 0x11EE0, 0x11EF7, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12400, @@ -165914,11 +167806,15 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */ 0x16FE0, 0x16FE2, 0x16FE3, - 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -166123,8 +168019,10 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */ 0x1F16A, 0x1F170, 0x1F18A, + 0x1FBF0, + 0x1FBFA, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -166135,6 +168033,8 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */ 0x2EBE1, 0x2F800, 0x2FA1E, + 0x30000, + 0x3134B, 0xE0100, 0xE01F0 }; @@ -166222,7 +168122,7 @@ static const UV UNI_XPOSIXXDIGIT_invlist[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI__PERL_ANY_FOLDS_invlist[] = { /* for ASCII/Latin1 */ - 267, /* Number of elements */ + 269, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -166464,7 +168364,9 @@ static const UV UNI__PERL_ANY_FOLDS_invlist[] = { /* for ASCII/Latin1 */ 0xA7B0, 0xA7C0, 0xA7C2, - 0xA7C7, + 0xA7CB, + 0xA7F5, + 0xA7F7, 0xAB53, 0xAB54, 0xAB70, @@ -166503,7 +168405,7 @@ static const UV UNI__PERL_ANY_FOLDS_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI__PERL_ANY_FOLDS_invlist[] = { /* for EBCDIC 1047 */ - 299, /* Number of elements */ + 301, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -166777,7 +168679,9 @@ static const UV UNI__PERL_ANY_FOLDS_invlist[] = { /* for EBCDIC 1047 */ 0xA7B0, 0xA7C0, 0xA7C2, - 0xA7C7, + 0xA7CB, + 0xA7F5, + 0xA7F7, 0xAB53, 0xAB54, 0xAB70, @@ -166816,7 +168720,7 @@ static const UV UNI__PERL_ANY_FOLDS_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI__PERL_ANY_FOLDS_invlist[] = { /* for EBCDIC 037 */ - 295, /* Number of elements */ + 297, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -167086,7 +168990,9 @@ static const UV UNI__PERL_ANY_FOLDS_invlist[] = { /* for EBCDIC 037 */ 0xA7B0, 0xA7C0, 0xA7C2, - 0xA7C7, + 0xA7CB, + 0xA7F5, + 0xA7F7, 0xAB53, 0xAB54, 0xAB70, @@ -167122,7 +169028,7 @@ static const UV UNI__PERL_ANY_FOLDS_invlist[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for ASCII/Latin1 */ - 1231, /* Number of elements */ + 1257, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -167228,7 +169134,7 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for ASCII/Latin1 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x904, 0x93A, 0x93D, @@ -167379,7 +169285,7 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for ASCII/Latin1 */ 0xCE2, 0xCF1, 0xCF3, - 0xD05, + 0xD04, 0xD0D, 0xD0E, 0xD11, @@ -167720,13 +169626,13 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for ASCII/Latin1 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA4D0, @@ -167750,8 +169656,8 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for ASCII/Latin1 */ 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA802, 0xA803, 0xA806, @@ -167826,7 +169732,7 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for ASCII/Latin1 */ 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB6A, 0xAB70, 0xABE3, 0xAC00, @@ -168007,12 +169913,18 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for ASCII/Latin1 */ 0x10CF3, 0x10D00, 0x10D24, + 0x10E80, + 0x10EAA, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, 0x10F28, 0x10F30, 0x10F46, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11003, @@ -168025,6 +169937,8 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for ASCII/Latin1 */ 0x11127, 0x11144, 0x11145, + 0x11147, + 0x11148, 0x11150, 0x11173, 0x11176, @@ -168076,7 +169990,7 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for ASCII/Latin1 */ 0x11447, 0x1144B, 0x1145F, - 0x11460, + 0x11462, 0x11480, 0x114B0, 0x114C4, @@ -168102,7 +170016,19 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for ASCII/Latin1 */ 0x118A0, 0x118E0, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11930, + 0x1193F, + 0x11940, + 0x11941, + 0x11942, 0x119A0, 0x119A8, 0x119AA, @@ -168151,6 +170077,8 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for ASCII/Latin1 */ 0x11D99, 0x11EE0, 0x11EF3, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12480, @@ -168188,7 +170116,9 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for ASCII/Latin1 */ 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -168346,7 +170276,7 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for ASCII/Latin1 */ 0x1EEAB, 0x1EEBC, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -168356,7 +170286,9 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for ASCII/Latin1 */ 0x2CEB0, 0x2EBE1, 0x2F800, - 0x2FA1E + 0x2FA1E, + 0x30000, + 0x3134B }; # endif /* ASCII/Latin1 */ @@ -168367,7 +170299,7 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 1047 */ - 1257, /* Number of elements */ + 1283, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -168499,7 +170431,7 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 1047 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x904, 0x93A, 0x93D, @@ -168650,7 +170582,7 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 1047 */ 0xCE2, 0xCF1, 0xCF3, - 0xD05, + 0xD04, 0xD0D, 0xD0E, 0xD11, @@ -168991,13 +170923,13 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 1047 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA4D0, @@ -169021,8 +170953,8 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 1047 */ 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA802, 0xA803, 0xA806, @@ -169097,7 +171029,7 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 1047 */ 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB6A, 0xAB70, 0xABE3, 0xAC00, @@ -169278,12 +171210,18 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 1047 */ 0x10CF3, 0x10D00, 0x10D24, + 0x10E80, + 0x10EAA, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, 0x10F28, 0x10F30, 0x10F46, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11003, @@ -169296,6 +171234,8 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 1047 */ 0x11127, 0x11144, 0x11145, + 0x11147, + 0x11148, 0x11150, 0x11173, 0x11176, @@ -169347,7 +171287,7 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 1047 */ 0x11447, 0x1144B, 0x1145F, - 0x11460, + 0x11462, 0x11480, 0x114B0, 0x114C4, @@ -169373,7 +171313,19 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 1047 */ 0x118A0, 0x118E0, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11930, + 0x1193F, + 0x11940, + 0x11941, + 0x11942, 0x119A0, 0x119A8, 0x119AA, @@ -169422,6 +171374,8 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 1047 */ 0x11D99, 0x11EE0, 0x11EF3, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12480, @@ -169459,7 +171413,9 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 1047 */ 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -169617,7 +171573,7 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 1047 */ 0x1EEAB, 0x1EEBC, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -169627,7 +171583,9 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 1047 */ 0x2CEB0, 0x2EBE1, 0x2F800, - 0x2FA1E + 0x2FA1E, + 0x30000, + 0x3134B }; # endif /* EBCDIC 1047 */ @@ -169638,7 +171596,7 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 037 */ - 1253, /* Number of elements */ + 1279, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -169766,7 +171724,7 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 037 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x904, 0x93A, 0x93D, @@ -169917,7 +171875,7 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 037 */ 0xCE2, 0xCF1, 0xCF3, - 0xD05, + 0xD04, 0xD0D, 0xD0E, 0xD11, @@ -170258,13 +172216,13 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 037 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA4D0, @@ -170288,8 +172246,8 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 037 */ 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA802, 0xA803, 0xA806, @@ -170364,7 +172322,7 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 037 */ 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB6A, 0xAB70, 0xABE3, 0xAC00, @@ -170545,12 +172503,18 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 037 */ 0x10CF3, 0x10D00, 0x10D24, + 0x10E80, + 0x10EAA, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, 0x10F28, 0x10F30, 0x10F46, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11003, @@ -170563,6 +172527,8 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 037 */ 0x11127, 0x11144, 0x11145, + 0x11147, + 0x11148, 0x11150, 0x11173, 0x11176, @@ -170614,7 +172580,7 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 037 */ 0x11447, 0x1144B, 0x1145F, - 0x11460, + 0x11462, 0x11480, 0x114B0, 0x114C4, @@ -170640,7 +172606,19 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 037 */ 0x118A0, 0x118E0, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11930, + 0x1193F, + 0x11940, + 0x11941, + 0x11942, 0x119A0, 0x119A8, 0x119AA, @@ -170689,6 +172667,8 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 037 */ 0x11D99, 0x11EE0, 0x11EF3, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12480, @@ -170726,7 +172706,9 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 037 */ 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -170884,7 +172866,7 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 037 */ 0x1EEAB, 0x1EEBC, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -170894,7 +172876,9 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 037 */ 0x2CEB0, 0x2EBE1, 0x2F800, - 0x2FA1E + 0x2FA1E, + 0x30000, + 0x3134B }; # endif /* EBCDIC 037 */ @@ -170902,7 +172886,7 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 */ - 1447, /* Number of elements */ + 1481, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -171018,7 +173002,7 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 * 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x8E2, 0x8E3, @@ -171137,7 +173121,7 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 * 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -171230,8 +173214,6 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 * 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -171249,7 +173231,7 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 * 0xD70, 0xD7A, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -171449,6 +173431,8 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 * 0x1AA8, 0x1AB0, 0x1ABE, + 0x1ABF, + 0x1AC1, 0x1B00, 0x1B4C, 0x1B50, @@ -171618,13 +173602,13 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 * 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA4D0, @@ -171646,9 +173630,11 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 * 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA828, + 0xA82C, + 0xA82D, 0xA840, 0xA874, 0xA880, @@ -171700,7 +173686,7 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 * 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB6A, 0xAB70, 0xABEB, 0xABEC, @@ -171909,12 +173895,20 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 * 0x10D28, 0x10D30, 0x10D3A, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAD, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, 0x10F28, 0x10F30, 0x10F51, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11000, @@ -171932,7 +173926,7 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 * 0x11136, 0x11140, 0x11144, - 0x11147, + 0x11148, 0x11150, 0x11174, 0x11176, @@ -171941,7 +173935,7 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 * 0x111C5, 0x111C9, 0x111CD, - 0x111D0, + 0x111CE, 0x111DB, 0x111DC, 0x111DD, @@ -172000,7 +173994,7 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 * 0x11450, 0x1145A, 0x1145E, - 0x11460, + 0x11462, 0x11480, 0x114C6, 0x114C7, @@ -172034,7 +174028,21 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 * 0x118A0, 0x118EA, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11944, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -172095,6 +174103,8 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 * 0x11DAA, 0x11EE0, 0x11EF7, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12400, @@ -172136,11 +174146,15 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 * 0x16FE0, 0x16FE2, 0x16FE3, - 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -172339,8 +174353,10 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 * 0x1EEAA, 0x1EEAB, 0x1EEBC, + 0x1FBF0, + 0x1FBFA, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -172351,6 +174367,8 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 * 0x2EBE1, 0x2F800, 0x2FA1E, + 0x30000, + 0x3134B, 0xE0100, 0xE01F0 }; @@ -172363,7 +174381,7 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 * && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */ - 1473, /* Number of elements */ + 1507, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -172505,7 +174523,7 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x8E2, 0x8E3, @@ -172624,7 +174642,7 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -172717,8 +174735,6 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */ 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -172736,7 +174752,7 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */ 0xD70, 0xD7A, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -172936,6 +174952,8 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */ 0x1AA8, 0x1AB0, 0x1ABE, + 0x1ABF, + 0x1AC1, 0x1B00, 0x1B4C, 0x1B50, @@ -173105,13 +175123,13 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA4D0, @@ -173133,9 +175151,11 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */ 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA828, + 0xA82C, + 0xA82D, 0xA840, 0xA874, 0xA880, @@ -173187,7 +175207,7 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */ 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB6A, 0xAB70, 0xABEB, 0xABEC, @@ -173396,12 +175416,20 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */ 0x10D28, 0x10D30, 0x10D3A, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAD, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, 0x10F28, 0x10F30, 0x10F51, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11000, @@ -173419,7 +175447,7 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */ 0x11136, 0x11140, 0x11144, - 0x11147, + 0x11148, 0x11150, 0x11174, 0x11176, @@ -173428,7 +175456,7 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */ 0x111C5, 0x111C9, 0x111CD, - 0x111D0, + 0x111CE, 0x111DB, 0x111DC, 0x111DD, @@ -173487,7 +175515,7 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */ 0x11450, 0x1145A, 0x1145E, - 0x11460, + 0x11462, 0x11480, 0x114C6, 0x114C7, @@ -173521,7 +175549,21 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */ 0x118A0, 0x118EA, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11944, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -173582,6 +175624,8 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */ 0x11DAA, 0x11EE0, 0x11EF7, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12400, @@ -173623,11 +175667,15 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */ 0x16FE0, 0x16FE2, 0x16FE3, - 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -173826,8 +175874,10 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */ 0x1EEAA, 0x1EEAB, 0x1EEBC, + 0x1FBF0, + 0x1FBFA, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -173838,6 +175888,8 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */ 0x2EBE1, 0x2F800, 0x2FA1E, + 0x30000, + 0x3134B, 0xE0100, 0xE01F0 }; @@ -173850,7 +175902,7 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */ - 1469, /* Number of elements */ + 1503, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -173988,7 +176040,7 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x8E2, 0x8E3, @@ -174107,7 +176159,7 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -174200,8 +176252,6 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */ 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -174219,7 +176269,7 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */ 0xD70, 0xD7A, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -174419,6 +176469,8 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */ 0x1AA8, 0x1AB0, 0x1ABE, + 0x1ABF, + 0x1AC1, 0x1B00, 0x1B4C, 0x1B50, @@ -174588,13 +176640,13 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA4D0, @@ -174616,9 +176668,11 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */ 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA828, + 0xA82C, + 0xA82D, 0xA840, 0xA874, 0xA880, @@ -174670,7 +176724,7 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */ 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB6A, 0xAB70, 0xABEB, 0xABEC, @@ -174879,12 +176933,20 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */ 0x10D28, 0x10D30, 0x10D3A, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAD, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, 0x10F28, 0x10F30, 0x10F51, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11000, @@ -174902,7 +176964,7 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */ 0x11136, 0x11140, 0x11144, - 0x11147, + 0x11148, 0x11150, 0x11174, 0x11176, @@ -174911,7 +176973,7 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */ 0x111C5, 0x111C9, 0x111CD, - 0x111D0, + 0x111CE, 0x111DB, 0x111DC, 0x111DD, @@ -174970,7 +177032,7 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */ 0x11450, 0x1145A, 0x1145E, - 0x11460, + 0x11462, 0x11480, 0x114C6, 0x114C7, @@ -175004,7 +177066,21 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */ 0x118A0, 0x118EA, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11944, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -175065,6 +177141,8 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */ 0x11DAA, 0x11EE0, 0x11EF7, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12400, @@ -175106,11 +177184,15 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */ 0x16FE0, 0x16FE2, 0x16FE3, - 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -175309,8 +177391,10 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */ 0x1EEAA, 0x1EEAB, 0x1EEBC, + 0x1FBF0, + 0x1FBFA, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -175321,6 +177405,8 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */ 0x2EBE1, 0x2F800, 0x2FA1E, + 0x30000, + 0x3134B, 0xE0100, 0xE01F0 }; @@ -175546,7 +177632,7 @@ static const UV UNI__PERL_FOLDS_TO_MULTI_CHAR_invlist[] = { /* for EBCDIC 037 * # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */ - 1441, /* Number of elements */ + 1475, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -175656,7 +177742,7 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x8E2, 0x8E3, @@ -175775,7 +177861,7 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -175868,8 +177954,6 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */ 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -175887,7 +177971,7 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */ 0xD70, 0xD7A, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -176087,6 +178171,8 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */ 0x1AA8, 0x1AB0, 0x1ABE, + 0x1ABF, + 0x1AC1, 0x1B00, 0x1B4C, 0x1B50, @@ -176256,13 +178342,13 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA4D0, @@ -176284,9 +178370,11 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */ 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA828, + 0xA82C, + 0xA82D, 0xA840, 0xA874, 0xA880, @@ -176338,7 +178426,7 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */ 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB6A, 0xAB70, 0xABEB, 0xABEC, @@ -176547,12 +178635,20 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */ 0x10D28, 0x10D30, 0x10D3A, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAD, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, 0x10F28, 0x10F30, 0x10F51, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11000, @@ -176570,7 +178666,7 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */ 0x11136, 0x11140, 0x11144, - 0x11147, + 0x11148, 0x11150, 0x11174, 0x11176, @@ -176579,7 +178675,7 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */ 0x111C5, 0x111C9, 0x111CD, - 0x111D0, + 0x111CE, 0x111DB, 0x111DC, 0x111DD, @@ -176638,7 +178734,7 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */ 0x11450, 0x1145A, 0x1145E, - 0x11460, + 0x11462, 0x11480, 0x114C6, 0x114C7, @@ -176672,7 +178768,21 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */ 0x118A0, 0x118EA, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11944, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -176733,6 +178843,8 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */ 0x11DAA, 0x11EE0, 0x11EF7, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12400, @@ -176774,11 +178886,15 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */ 0x16FE0, 0x16FE2, 0x16FE3, - 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -176977,8 +179093,10 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */ 0x1EEAA, 0x1EEAB, 0x1EEBC, + 0x1FBF0, + 0x1FBFA, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -176989,6 +179107,8 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */ 0x2EBE1, 0x2F800, 0x2FA1E, + 0x30000, + 0x3134B, 0xE0100, 0xE01F0 }; @@ -177001,7 +179121,7 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */ - 1465, /* Number of elements */ + 1499, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -177135,7 +179255,7 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x8E2, 0x8E3, @@ -177254,7 +179374,7 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -177347,8 +179467,6 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */ 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -177366,7 +179484,7 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */ 0xD70, 0xD7A, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -177566,6 +179684,8 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */ 0x1AA8, 0x1AB0, 0x1ABE, + 0x1ABF, + 0x1AC1, 0x1B00, 0x1B4C, 0x1B50, @@ -177735,13 +179855,13 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA4D0, @@ -177763,9 +179883,11 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */ 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA828, + 0xA82C, + 0xA82D, 0xA840, 0xA874, 0xA880, @@ -177817,7 +179939,7 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */ 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB6A, 0xAB70, 0xABEB, 0xABEC, @@ -178026,12 +180148,20 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */ 0x10D28, 0x10D30, 0x10D3A, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAD, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, 0x10F28, 0x10F30, 0x10F51, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11000, @@ -178049,7 +180179,7 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */ 0x11136, 0x11140, 0x11144, - 0x11147, + 0x11148, 0x11150, 0x11174, 0x11176, @@ -178058,7 +180188,7 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */ 0x111C5, 0x111C9, 0x111CD, - 0x111D0, + 0x111CE, 0x111DB, 0x111DC, 0x111DD, @@ -178117,7 +180247,7 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */ 0x11450, 0x1145A, 0x1145E, - 0x11460, + 0x11462, 0x11480, 0x114C6, 0x114C7, @@ -178151,7 +180281,21 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */ 0x118A0, 0x118EA, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11944, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -178212,6 +180356,8 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */ 0x11DAA, 0x11EE0, 0x11EF7, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12400, @@ -178253,11 +180399,15 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */ 0x16FE0, 0x16FE2, 0x16FE3, - 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -178456,8 +180606,10 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */ 0x1EEAA, 0x1EEAB, 0x1EEBC, + 0x1FBF0, + 0x1FBFA, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -178468,6 +180620,8 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */ 0x2EBE1, 0x2F800, 0x2FA1E, + 0x30000, + 0x3134B, 0xE0100, 0xE01F0 }; @@ -178480,7 +180634,7 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */ - 1461, /* Number of elements */ + 1495, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -178610,7 +180764,7 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x8E2, 0x8E3, @@ -178729,7 +180883,7 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -178822,8 +180976,6 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */ 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -178841,7 +180993,7 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */ 0xD70, 0xD7A, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -179041,6 +181193,8 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */ 0x1AA8, 0x1AB0, 0x1ABE, + 0x1ABF, + 0x1AC1, 0x1B00, 0x1B4C, 0x1B50, @@ -179210,13 +181364,13 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA4D0, @@ -179238,9 +181392,11 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */ 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA828, + 0xA82C, + 0xA82D, 0xA840, 0xA874, 0xA880, @@ -179292,7 +181448,7 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */ 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB6A, 0xAB70, 0xABEB, 0xABEC, @@ -179501,12 +181657,20 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */ 0x10D28, 0x10D30, 0x10D3A, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAD, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, 0x10F28, 0x10F30, 0x10F51, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11000, @@ -179524,7 +181688,7 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */ 0x11136, 0x11140, 0x11144, - 0x11147, + 0x11148, 0x11150, 0x11174, 0x11176, @@ -179533,7 +181697,7 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */ 0x111C5, 0x111C9, 0x111CD, - 0x111D0, + 0x111CE, 0x111DB, 0x111DC, 0x111DD, @@ -179592,7 +181756,7 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */ 0x11450, 0x1145A, 0x1145E, - 0x11460, + 0x11462, 0x11480, 0x114C6, 0x114C7, @@ -179626,7 +181790,21 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */ 0x118A0, 0x118EA, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11944, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -179687,6 +181865,8 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */ 0x11DAA, 0x11EE0, 0x11EF7, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12400, @@ -179728,11 +181908,15 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */ 0x16FE0, 0x16FE2, 0x16FE3, - 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -179931,8 +182115,10 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */ 0x1EEAA, 0x1EEAB, 0x1EEBC, + 0x1FBF0, + 0x1FBFA, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -179943,6 +182129,8 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */ 0x2EBE1, 0x2F800, 0x2FA1E, + 0x30000, + 0x3134B, 0xE0100, 0xE01F0 }; @@ -179952,7 +182140,7 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI__PERL_IDSTART_invlist[] = { /* for ASCII/Latin1 */ - 1237, /* Number of elements */ + 1263, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -180060,7 +182248,7 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for ASCII/Latin1 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x904, 0x93A, 0x93D, @@ -180211,7 +182399,7 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for ASCII/Latin1 */ 0xCE2, 0xCF1, 0xCF3, - 0xD05, + 0xD04, 0xD0D, 0xD0E, 0xD11, @@ -180552,13 +182740,13 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for ASCII/Latin1 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA4D0, @@ -180582,8 +182770,8 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for ASCII/Latin1 */ 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA802, 0xA803, 0xA806, @@ -180658,7 +182846,7 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for ASCII/Latin1 */ 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB6A, 0xAB70, 0xABE3, 0xAC00, @@ -180841,12 +183029,18 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for ASCII/Latin1 */ 0x10CF3, 0x10D00, 0x10D24, + 0x10E80, + 0x10EAA, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, 0x10F28, 0x10F30, 0x10F46, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11003, @@ -180859,6 +183053,8 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for ASCII/Latin1 */ 0x11127, 0x11144, 0x11145, + 0x11147, + 0x11148, 0x11150, 0x11173, 0x11176, @@ -180910,7 +183106,7 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for ASCII/Latin1 */ 0x11447, 0x1144B, 0x1145F, - 0x11460, + 0x11462, 0x11480, 0x114B0, 0x114C4, @@ -180936,7 +183132,19 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for ASCII/Latin1 */ 0x118A0, 0x118E0, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11930, + 0x1193F, + 0x11940, + 0x11941, + 0x11942, 0x119A0, 0x119A8, 0x119AA, @@ -180985,6 +183193,8 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for ASCII/Latin1 */ 0x11D99, 0x11EE0, 0x11EF3, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12400, @@ -181024,7 +183234,9 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for ASCII/Latin1 */ 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -181182,7 +183394,7 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for ASCII/Latin1 */ 0x1EEAB, 0x1EEBC, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -181192,7 +183404,9 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for ASCII/Latin1 */ 0x2CEB0, 0x2EBE1, 0x2F800, - 0x2FA1E + 0x2FA1E, + 0x30000, + 0x3134B }; # endif /* ASCII/Latin1 */ @@ -181203,7 +183417,7 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 1047 */ - 1263, /* Number of elements */ + 1289, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -181337,7 +183551,7 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 1047 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x904, 0x93A, 0x93D, @@ -181488,7 +183702,7 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 1047 */ 0xCE2, 0xCF1, 0xCF3, - 0xD05, + 0xD04, 0xD0D, 0xD0E, 0xD11, @@ -181829,13 +184043,13 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 1047 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA4D0, @@ -181859,8 +184073,8 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 1047 */ 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA802, 0xA803, 0xA806, @@ -181935,7 +184149,7 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 1047 */ 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB6A, 0xAB70, 0xABE3, 0xAC00, @@ -182118,12 +184332,18 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 1047 */ 0x10CF3, 0x10D00, 0x10D24, + 0x10E80, + 0x10EAA, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, 0x10F28, 0x10F30, 0x10F46, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11003, @@ -182136,6 +184356,8 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 1047 */ 0x11127, 0x11144, 0x11145, + 0x11147, + 0x11148, 0x11150, 0x11173, 0x11176, @@ -182187,7 +184409,7 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 1047 */ 0x11447, 0x1144B, 0x1145F, - 0x11460, + 0x11462, 0x11480, 0x114B0, 0x114C4, @@ -182213,7 +184435,19 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 1047 */ 0x118A0, 0x118E0, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11930, + 0x1193F, + 0x11940, + 0x11941, + 0x11942, 0x119A0, 0x119A8, 0x119AA, @@ -182262,6 +184496,8 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 1047 */ 0x11D99, 0x11EE0, 0x11EF3, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12400, @@ -182301,7 +184537,9 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 1047 */ 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -182459,7 +184697,7 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 1047 */ 0x1EEAB, 0x1EEBC, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -182469,7 +184707,9 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 1047 */ 0x2CEB0, 0x2EBE1, 0x2F800, - 0x2FA1E + 0x2FA1E, + 0x30000, + 0x3134B }; # endif /* EBCDIC 1047 */ @@ -182480,7 +184720,7 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 037 */ - 1259, /* Number of elements */ + 1285, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -182610,7 +184850,7 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 037 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x904, 0x93A, 0x93D, @@ -182761,7 +185001,7 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 037 */ 0xCE2, 0xCF1, 0xCF3, - 0xD05, + 0xD04, 0xD0D, 0xD0E, 0xD11, @@ -183102,13 +185342,13 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 037 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA4D0, @@ -183132,8 +185372,8 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 037 */ 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA802, 0xA803, 0xA806, @@ -183208,7 +185448,7 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 037 */ 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB6A, 0xAB70, 0xABE3, 0xAC00, @@ -183391,12 +185631,18 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 037 */ 0x10CF3, 0x10D00, 0x10D24, + 0x10E80, + 0x10EAA, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, 0x10F28, 0x10F30, 0x10F46, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11003, @@ -183409,6 +185655,8 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 037 */ 0x11127, 0x11144, 0x11145, + 0x11147, + 0x11148, 0x11150, 0x11173, 0x11176, @@ -183460,7 +185708,7 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 037 */ 0x11447, 0x1144B, 0x1145F, - 0x11460, + 0x11462, 0x11480, 0x114B0, 0x114C4, @@ -183486,7 +185734,19 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 037 */ 0x118A0, 0x118E0, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11930, + 0x1193F, + 0x11940, + 0x11941, + 0x11942, 0x119A0, 0x119A8, 0x119AA, @@ -183535,6 +185795,8 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 037 */ 0x11D99, 0x11EE0, 0x11EF3, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12400, @@ -183574,7 +185836,9 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 037 */ 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -183732,7 +185996,7 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 037 */ 0x1EEAB, 0x1EEBC, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -183742,7 +186006,9 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 037 */ 0x2CEB0, 0x2EBE1, 0x2F800, - 0x2FA1E + 0x2FA1E, + 0x30000, + 0x3134B }; # endif /* EBCDIC 037 */ @@ -184027,162 +186293,6 @@ static const UV UNI__PERL_IS_IN_MULTI_CHAR_FOLD_invlist[] = { /* for EBCDIC 037 # endif /* EBCDIC 037 */ -# if 'A' == 65 /* ASCII/Latin1 */ - -static const UV UNI__PERL_NON_FINAL_FOLDS_invlist[] = { /* for ASCII/Latin1 */ - 39, /* Number of elements */ - 148565664, /* Version and data structure type */ - 1, /* 0 if the list starts at 0; - 1 if it starts at the element beyond 0 */ - 0x0, - 0x66, - 0x67, - 0x69, - 0x6A, - 0x6C, - 0x6D, - 0x6E, - 0x6F, - 0x73, - 0x75, - 0x2BE, - 0x2BF, - 0x300, - 0x302, - 0x307, - 0x309, - 0x30A, - 0x30B, - 0x30C, - 0x30D, - 0x313, - 0x314, - 0x331, - 0x332, - 0x342, - 0x343, - 0x3B9, - 0x3BA, - 0x565, - 0x566, - 0x56B, - 0x56C, - 0x56D, - 0x56E, - 0x576, - 0x577, - 0x582, - 0x583 -}; - -# endif /* ASCII/Latin1 */ - -# if 'A' == 193 /* EBCDIC 1047 */ \ - && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \ - && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \ - && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 - -static const UV UNI__PERL_NON_FINAL_FOLDS_invlist[] = { /* for EBCDIC 1047 */ - 39, /* Number of elements */ - 148565664, /* Version and data structure type */ - 1, /* 0 if the list starts at 0; - 1 if it starts at the element beyond 0 */ - 0x0, - 0x86, - 0x87, - 0x89, - 0x8A, - 0x93, - 0x94, - 0x95, - 0x96, - 0xA2, - 0xA4, - 0x2BE, - 0x2BF, - 0x300, - 0x302, - 0x307, - 0x309, - 0x30A, - 0x30B, - 0x30C, - 0x30D, - 0x313, - 0x314, - 0x331, - 0x332, - 0x342, - 0x343, - 0x3B9, - 0x3BA, - 0x565, - 0x566, - 0x56B, - 0x56C, - 0x56D, - 0x56E, - 0x576, - 0x577, - 0x582, - 0x583 -}; - -# endif /* EBCDIC 1047 */ - -# if 'A' == 193 /* EBCDIC 037 */ \ - && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \ - && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \ - && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 - -static const UV UNI__PERL_NON_FINAL_FOLDS_invlist[] = { /* for EBCDIC 037 */ - 39, /* Number of elements */ - 148565664, /* Version and data structure type */ - 1, /* 0 if the list starts at 0; - 1 if it starts at the element beyond 0 */ - 0x0, - 0x86, - 0x87, - 0x89, - 0x8A, - 0x93, - 0x94, - 0x95, - 0x96, - 0xA2, - 0xA4, - 0x2BE, - 0x2BF, - 0x300, - 0x302, - 0x307, - 0x309, - 0x30A, - 0x30B, - 0x30C, - 0x30D, - 0x313, - 0x314, - 0x331, - 0x332, - 0x342, - 0x343, - 0x3B9, - 0x3BA, - 0x565, - 0x566, - 0x56B, - 0x56C, - 0x56D, - 0x56E, - 0x576, - 0x577, - 0x582, - 0x583 -}; - -# endif /* EBCDIC 037 */ - static const UV UNI__PERL_PROBLEMATIC_LOCALE_FOLDEDS_START_invlist[] = { /* for all charsets */ 26, /* Number of elements */ 148565664, /* Version and data structure type */ @@ -184926,6 +187036,132 @@ static const UV UNI_AGE__12_DOT_1_invlist[] = { /* for all charsets */ 0x3300 }; +static const UV UNI_AGE__13_invlist[] = { /* for all charsets */ + 119, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x8BE, + 0x8C8, + 0xB55, + 0xB56, + 0xD04, + 0xD05, + 0xD81, + 0xD82, + 0x1ABF, + 0x1AC1, + 0x2B97, + 0x2B98, + 0x2E50, + 0x2E53, + 0x31BB, + 0x31C0, + 0x4DB6, + 0x4DC0, + 0x9FF0, + 0x9FFD, + 0xA7C7, + 0xA7CB, + 0xA7F5, + 0xA7F7, + 0xA82C, + 0xA82D, + 0xAB68, + 0xAB6C, + 0x1019C, + 0x1019D, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAE, + 0x10EB0, + 0x10EB2, + 0x10FB0, + 0x10FCC, + 0x11147, + 0x11148, + 0x111CE, + 0x111D0, + 0x1145A, + 0x1145B, + 0x11460, + 0x11462, + 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11947, + 0x11950, + 0x1195A, + 0x11FB0, + 0x11FB1, + 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, + 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, + 0x1F10D, + 0x1F110, + 0x1F16D, + 0x1F170, + 0x1F1AD, + 0x1F1AE, + 0x1F6D6, + 0x1F6D8, + 0x1F6FB, + 0x1F6FD, + 0x1F8B0, + 0x1F8B2, + 0x1F90C, + 0x1F90D, + 0x1F972, + 0x1F973, + 0x1F977, + 0x1F979, + 0x1F9A3, + 0x1F9A5, + 0x1F9AB, + 0x1F9AE, + 0x1F9CB, + 0x1F9CC, + 0x1FA74, + 0x1FA75, + 0x1FA83, + 0x1FA87, + 0x1FA96, + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB, + 0x1FBF0, + 0x1FBFA, + 0x2A6D7, + 0x2A6DE, + 0x30000, + 0x3134B +}; + static const UV UNI_AGE__2_invlist[] = { /* for all charsets */ 59, /* Number of elements */ 148565664, /* Version and data structure type */ @@ -187211,7 +189447,7 @@ static const UV UNI_AGE__9_invlist[] = { /* for all charsets */ }; static const UV UNI_AGE__NA_invlist[] = { /* for all charsets */ - 1352, /* Number of elements */ + 1372, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -187262,7 +189498,7 @@ static const UV UNI_AGE__NA_invlist[] = { /* for all charsets */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x984, 0x985, @@ -187371,7 +189607,7 @@ static const UV UNI_AGE__NA_invlist[] = { /* for all charsets */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -187460,8 +189696,6 @@ static const UV UNI_AGE__NA_invlist[] = { /* for all charsets */ 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -187475,7 +189709,7 @@ static const UV UNI_AGE__NA_invlist[] = { /* for all charsets */ 0xD64, 0xD66, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -187648,7 +189882,7 @@ static const UV UNI_AGE__NA_invlist[] = { /* for all charsets */ 0x1AA0, 0x1AAE, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B4C, 0x1B50, @@ -187723,7 +189957,7 @@ static const UV UNI_AGE__NA_invlist[] = { /* for all charsets */ 0x2B74, 0x2B76, 0x2B96, - 0x2B98, + 0x2B97, 0x2C2F, 0x2C30, 0x2C5F, @@ -187758,7 +189992,7 @@ static const UV UNI_AGE__NA_invlist[] = { /* for all charsets */ 0x2DD8, 0x2DDF, 0x2DE0, - 0x2E50, + 0x2E53, 0x2E80, 0x2E9A, 0x2E9B, @@ -187778,15 +190012,11 @@ static const UV UNI_AGE__NA_invlist[] = { /* for all charsets */ 0x3131, 0x318F, 0x3190, - 0x31BB, - 0x31C0, 0x31E4, 0x31F0, 0x321F, 0x3220, - 0x4DB6, - 0x4DC0, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA490, @@ -187798,9 +190028,9 @@ static const UV UNI_AGE__NA_invlist[] = { /* for all charsets */ 0xA700, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, - 0xA82C, + 0xA7CB, + 0xA7F5, + 0xA82D, 0xA830, 0xA83A, 0xA840, @@ -187840,7 +190070,7 @@ static const UV UNI_AGE__NA_invlist[] = { /* for all charsets */ 0xAB28, 0xAB2F, 0xAB30, - 0xAB68, + 0xAB6C, 0xAB70, 0xABEE, 0xABF0, @@ -187928,7 +190158,7 @@ static const UV UNI_AGE__NA_invlist[] = { /* for all charsets */ 0x10137, 0x1018F, 0x10190, - 0x1019C, + 0x1019D, 0x101A0, 0x101A1, 0x101D0, @@ -188047,10 +190277,18 @@ static const UV UNI_AGE__NA_invlist[] = { /* for all charsets */ 0x10D3A, 0x10E60, 0x10E7F, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAE, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F28, 0x10F30, 0x10F5A, + 0x10FB0, + 0x10FCC, 0x10FE0, 0x10FF7, 0x11000, @@ -188068,12 +190306,10 @@ static const UV UNI_AGE__NA_invlist[] = { /* for all charsets */ 0x11100, 0x11135, 0x11136, - 0x11147, + 0x11148, 0x11150, 0x11177, 0x11180, - 0x111CE, - 0x111D0, 0x111E0, 0x111E1, 0x111F5, @@ -188126,11 +190362,9 @@ static const UV UNI_AGE__NA_invlist[] = { /* for all charsets */ 0x11370, 0x11375, 0x11400, - 0x1145A, - 0x1145B, 0x1145C, 0x1145D, - 0x11460, + 0x11462, 0x11480, 0x114C8, 0x114D0, @@ -188160,7 +190394,21 @@ static const UV UNI_AGE__NA_invlist[] = { /* for all charsets */ 0x118A0, 0x118F3, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11947, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -188215,6 +190463,8 @@ static const UV UNI_AGE__NA_invlist[] = { /* for all charsets */ 0x11DAA, 0x11EE0, 0x11EF9, + 0x11FB0, + 0x11FB1, 0x11FC0, 0x11FF2, 0x11FFF, @@ -188262,11 +190512,15 @@ static const UV UNI_AGE__NA_invlist[] = { /* for all charsets */ 0x16F8F, 0x16FA0, 0x16FE0, - 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -188462,11 +190716,7 @@ static const UV UNI_AGE__NA_invlist[] = { /* for all charsets */ 0x1F0D1, 0x1F0F6, 0x1F100, - 0x1F10D, - 0x1F110, - 0x1F16D, - 0x1F170, - 0x1F1AD, + 0x1F1AE, 0x1F1E6, 0x1F203, 0x1F210, @@ -188478,11 +190728,11 @@ static const UV UNI_AGE__NA_invlist[] = { /* for all charsets */ 0x1F260, 0x1F266, 0x1F300, - 0x1F6D6, + 0x1F6D8, 0x1F6E0, 0x1F6ED, 0x1F6F0, - 0x1F6FB, + 0x1F6FD, 0x1F700, 0x1F774, 0x1F780, @@ -188499,32 +190749,38 @@ static const UV UNI_AGE__NA_invlist[] = { /* for all charsets */ 0x1F888, 0x1F890, 0x1F8AE, + 0x1F8B0, + 0x1F8B2, 0x1F900, - 0x1F90C, - 0x1F90D, - 0x1F972, - 0x1F973, - 0x1F977, + 0x1F979, 0x1F97A, - 0x1F9A3, - 0x1F9A5, - 0x1F9AB, - 0x1F9AE, - 0x1F9CB, + 0x1F9CC, 0x1F9CD, 0x1FA54, 0x1FA60, 0x1FA6E, 0x1FA70, - 0x1FA74, + 0x1FA75, 0x1FA78, 0x1FA7B, 0x1FA80, - 0x1FA83, + 0x1FA87, 0x1FA90, - 0x1FA96, + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB, + 0x1FBF0, + 0x1FBFA, 0x1FFFE, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -188536,7 +190792,7 @@ static const UV UNI_AGE__NA_invlist[] = { /* for all charsets */ 0x2F800, 0x2FA1E, 0x2FFFE, - 0x30000, + 0x3134B, 0x3FFFE, 0x40000, 0x4FFFE, @@ -188681,7 +190937,7 @@ static const UV UNI_ARAB_invlist[] = { /* for all charsets */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x8E2, 0x8E3, @@ -189460,7 +191716,7 @@ static const UV UNI_BC__CS_invlist[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_BC__EN_invlist[] = { /* for ASCII/Latin1 */ - 25, /* Number of elements */ + 27, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -189488,7 +191744,9 @@ static const UV UNI_BC__EN_invlist[] = { /* for ASCII/Latin1 */ 0x1D7CE, 0x1D800, 0x1F100, - 0x1F10B + 0x1F10B, + 0x1FBF0, + 0x1FBFA }; # endif /* ASCII/Latin1 */ @@ -189499,7 +191757,7 @@ static const UV UNI_BC__EN_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_BC__EN_invlist[] = { /* for EBCDIC 1047 */ - 25, /* Number of elements */ + 27, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -189527,7 +191785,9 @@ static const UV UNI_BC__EN_invlist[] = { /* for EBCDIC 1047 */ 0x1D7CE, 0x1D800, 0x1F100, - 0x1F10B + 0x1F10B, + 0x1FBF0, + 0x1FBFA }; # endif /* EBCDIC 1047 */ @@ -189538,7 +191798,7 @@ static const UV UNI_BC__EN_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_BC__EN_invlist[] = { /* for EBCDIC 037 */ - 25, /* Number of elements */ + 27, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -189566,7 +191826,9 @@ static const UV UNI_BC__EN_invlist[] = { /* for EBCDIC 037 */ 0x1D7CE, 0x1D800, 0x1F100, - 0x1F10B + 0x1F10B, + 0x1FBF0, + 0x1FBFA }; # endif /* EBCDIC 037 */ @@ -189882,7 +192144,7 @@ static const UV UNI_BC__FSI_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_BC__L_invlist[] = { /* for ASCII/Latin1 */ - 904, /* Number of elements */ + 926, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -189998,7 +192260,7 @@ static const UV UNI_BC__L_invlist[] = { /* for ASCII/Latin1 */ 0xB45, 0xB4D, 0xB4E, - 0xB56, + 0xB55, 0xB57, 0xB62, 0xB64, @@ -190044,6 +192306,8 @@ static const UV UNI_BC__L_invlist[] = { /* for ASCII/Latin1 */ 0xD4E, 0xD62, 0xD64, + 0xD81, + 0xD82, 0xDCA, 0xDCB, 0xDD2, @@ -190177,7 +192441,7 @@ static const UV UNI_BC__L_invlist[] = { /* for ASCII/Latin1 */ 0x1A7F, 0x1A80, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B04, 0x1B34, @@ -190296,7 +192560,7 @@ static const UV UNI_BC__L_invlist[] = { /* for ASCII/Latin1 */ 0x2B74, 0x2B76, 0x2B96, - 0x2B98, + 0x2B97, 0x2C00, 0x2CE5, 0x2CEB, @@ -190307,7 +192571,7 @@ static const UV UNI_BC__L_invlist[] = { /* for ASCII/Latin1 */ 0x2D7F, 0x2D80, 0x2DE0, - 0x2E50, + 0x2E53, 0x2E80, 0x2E9A, 0x2E9B, @@ -190377,7 +192641,7 @@ static const UV UNI_BC__L_invlist[] = { /* for ASCII/Latin1 */ 0xA825, 0xA827, 0xA828, - 0xA82C, + 0xA82D, 0xA838, 0xA83A, 0xA874, @@ -190428,6 +192692,8 @@ static const UV UNI_BC__L_invlist[] = { /* for ASCII/Latin1 */ 0xAAEE, 0xAAF6, 0xAAF7, + 0xAB6A, + 0xAB6C, 0xABE5, 0xABE6, 0xABE8, @@ -190461,7 +192727,7 @@ static const UV UNI_BC__L_invlist[] = { /* for ASCII/Latin1 */ 0x10140, 0x1018D, 0x10190, - 0x1019C, + 0x1019D, 0x101A0, 0x101A1, 0x101FD, @@ -190498,6 +192764,8 @@ static const UV UNI_BC__L_invlist[] = { /* for ASCII/Latin1 */ 0x111BF, 0x111C9, 0x111CD, + 0x111CF, + 0x111D0, 0x1122F, 0x11232, 0x11234, @@ -190570,6 +192838,12 @@ static const UV UNI_BC__L_invlist[] = { /* for ASCII/Latin1 */ 0x11838, 0x11839, 0x1183B, + 0x1193B, + 0x1193D, + 0x1193E, + 0x1193F, + 0x11943, + 0x11944, 0x119D4, 0x119D8, 0x119DA, @@ -190636,6 +192910,8 @@ static const UV UNI_BC__L_invlist[] = { /* for ASCII/Latin1 */ 0x16F93, 0x16FE2, 0x16FE3, + 0x16FE4, + 0x16FE5, 0x1BC9D, 0x1BC9F, 0x1BCA0, @@ -190705,19 +192981,21 @@ static const UV UNI_BC__L_invlist[] = { /* for ASCII/Latin1 */ 0x1F0D1, 0x1F0F6, 0x1F100, - 0x1F10D, + 0x1F110, 0x1F12F, 0x1F130, 0x1F16A, - 0x1F16D, + 0x1F170, + 0x1F1AD, + 0x1F1AE, 0x1F260, 0x1F266, 0x1F300, - 0x1F6D6, + 0x1F6D8, 0x1F6E0, 0x1F6ED, 0x1F6F0, - 0x1F6FB, + 0x1F6FD, 0x1F700, 0x1F774, 0x1F780, @@ -190734,30 +193012,36 @@ static const UV UNI_BC__L_invlist[] = { /* for ASCII/Latin1 */ 0x1F888, 0x1F890, 0x1F8AE, + 0x1F8B0, + 0x1F8B2, 0x1F900, - 0x1F90C, - 0x1F90D, - 0x1F972, - 0x1F973, - 0x1F977, + 0x1F979, 0x1F97A, - 0x1F9A3, - 0x1F9A5, - 0x1F9AB, - 0x1F9AE, - 0x1F9CB, + 0x1F9CC, 0x1F9CD, 0x1FA54, 0x1FA60, 0x1FA6E, 0x1FA70, - 0x1FA74, + 0x1FA75, 0x1FA78, 0x1FA7B, 0x1FA80, - 0x1FA83, + 0x1FA87, 0x1FA90, - 0x1FA96, + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB, + 0x1FBF0, + 0x1FBFA, 0x1FFFE, 0x20000, 0x2FFFE, @@ -190800,7 +193084,7 @@ static const UV UNI_BC__L_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 1047 */ - 930, /* Number of elements */ + 952, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -190942,7 +193226,7 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 1047 */ 0xB45, 0xB4D, 0xB4E, - 0xB56, + 0xB55, 0xB57, 0xB62, 0xB64, @@ -190988,6 +193272,8 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 1047 */ 0xD4E, 0xD62, 0xD64, + 0xD81, + 0xD82, 0xDCA, 0xDCB, 0xDD2, @@ -191121,7 +193407,7 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 1047 */ 0x1A7F, 0x1A80, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B04, 0x1B34, @@ -191240,7 +193526,7 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 1047 */ 0x2B74, 0x2B76, 0x2B96, - 0x2B98, + 0x2B97, 0x2C00, 0x2CE5, 0x2CEB, @@ -191251,7 +193537,7 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 1047 */ 0x2D7F, 0x2D80, 0x2DE0, - 0x2E50, + 0x2E53, 0x2E80, 0x2E9A, 0x2E9B, @@ -191321,7 +193607,7 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 1047 */ 0xA825, 0xA827, 0xA828, - 0xA82C, + 0xA82D, 0xA838, 0xA83A, 0xA874, @@ -191372,6 +193658,8 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 1047 */ 0xAAEE, 0xAAF6, 0xAAF7, + 0xAB6A, + 0xAB6C, 0xABE5, 0xABE6, 0xABE8, @@ -191405,7 +193693,7 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 1047 */ 0x10140, 0x1018D, 0x10190, - 0x1019C, + 0x1019D, 0x101A0, 0x101A1, 0x101FD, @@ -191442,6 +193730,8 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 1047 */ 0x111BF, 0x111C9, 0x111CD, + 0x111CF, + 0x111D0, 0x1122F, 0x11232, 0x11234, @@ -191514,6 +193804,12 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 1047 */ 0x11838, 0x11839, 0x1183B, + 0x1193B, + 0x1193D, + 0x1193E, + 0x1193F, + 0x11943, + 0x11944, 0x119D4, 0x119D8, 0x119DA, @@ -191580,6 +193876,8 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 1047 */ 0x16F93, 0x16FE2, 0x16FE3, + 0x16FE4, + 0x16FE5, 0x1BC9D, 0x1BC9F, 0x1BCA0, @@ -191649,19 +193947,21 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 1047 */ 0x1F0D1, 0x1F0F6, 0x1F100, - 0x1F10D, + 0x1F110, 0x1F12F, 0x1F130, 0x1F16A, - 0x1F16D, + 0x1F170, + 0x1F1AD, + 0x1F1AE, 0x1F260, 0x1F266, 0x1F300, - 0x1F6D6, + 0x1F6D8, 0x1F6E0, 0x1F6ED, 0x1F6F0, - 0x1F6FB, + 0x1F6FD, 0x1F700, 0x1F774, 0x1F780, @@ -191678,30 +193978,36 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 1047 */ 0x1F888, 0x1F890, 0x1F8AE, + 0x1F8B0, + 0x1F8B2, 0x1F900, - 0x1F90C, - 0x1F90D, - 0x1F972, - 0x1F973, - 0x1F977, + 0x1F979, 0x1F97A, - 0x1F9A3, - 0x1F9A5, - 0x1F9AB, - 0x1F9AE, - 0x1F9CB, + 0x1F9CC, 0x1F9CD, 0x1FA54, 0x1FA60, 0x1FA6E, 0x1FA70, - 0x1FA74, + 0x1FA75, 0x1FA78, 0x1FA7B, 0x1FA80, - 0x1FA83, + 0x1FA87, 0x1FA90, - 0x1FA96, + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB, + 0x1FBF0, + 0x1FBFA, 0x1FFFE, 0x20000, 0x2FFFE, @@ -191744,7 +194050,7 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 037 */ - 926, /* Number of elements */ + 948, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -191882,7 +194188,7 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 037 */ 0xB45, 0xB4D, 0xB4E, - 0xB56, + 0xB55, 0xB57, 0xB62, 0xB64, @@ -191928,6 +194234,8 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 037 */ 0xD4E, 0xD62, 0xD64, + 0xD81, + 0xD82, 0xDCA, 0xDCB, 0xDD2, @@ -192061,7 +194369,7 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 037 */ 0x1A7F, 0x1A80, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B04, 0x1B34, @@ -192180,7 +194488,7 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 037 */ 0x2B74, 0x2B76, 0x2B96, - 0x2B98, + 0x2B97, 0x2C00, 0x2CE5, 0x2CEB, @@ -192191,7 +194499,7 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 037 */ 0x2D7F, 0x2D80, 0x2DE0, - 0x2E50, + 0x2E53, 0x2E80, 0x2E9A, 0x2E9B, @@ -192261,7 +194569,7 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 037 */ 0xA825, 0xA827, 0xA828, - 0xA82C, + 0xA82D, 0xA838, 0xA83A, 0xA874, @@ -192312,6 +194620,8 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 037 */ 0xAAEE, 0xAAF6, 0xAAF7, + 0xAB6A, + 0xAB6C, 0xABE5, 0xABE6, 0xABE8, @@ -192345,7 +194655,7 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 037 */ 0x10140, 0x1018D, 0x10190, - 0x1019C, + 0x1019D, 0x101A0, 0x101A1, 0x101FD, @@ -192382,6 +194692,8 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 037 */ 0x111BF, 0x111C9, 0x111CD, + 0x111CF, + 0x111D0, 0x1122F, 0x11232, 0x11234, @@ -192454,6 +194766,12 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 037 */ 0x11838, 0x11839, 0x1183B, + 0x1193B, + 0x1193D, + 0x1193E, + 0x1193F, + 0x11943, + 0x11944, 0x119D4, 0x119D8, 0x119DA, @@ -192520,6 +194838,8 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 037 */ 0x16F93, 0x16FE2, 0x16FE3, + 0x16FE4, + 0x16FE5, 0x1BC9D, 0x1BC9F, 0x1BCA0, @@ -192589,19 +194909,21 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 037 */ 0x1F0D1, 0x1F0F6, 0x1F100, - 0x1F10D, + 0x1F110, 0x1F12F, 0x1F130, 0x1F16A, - 0x1F16D, + 0x1F170, + 0x1F1AD, + 0x1F1AE, 0x1F260, 0x1F266, 0x1F300, - 0x1F6D6, + 0x1F6D8, 0x1F6E0, 0x1F6ED, 0x1F6F0, - 0x1F6FB, + 0x1F6FD, 0x1F700, 0x1F774, 0x1F780, @@ -192618,30 +194940,36 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 037 */ 0x1F888, 0x1F890, 0x1F8AE, + 0x1F8B0, + 0x1F8B2, 0x1F900, - 0x1F90C, - 0x1F90D, - 0x1F972, - 0x1F973, - 0x1F977, + 0x1F979, 0x1F97A, - 0x1F9A3, - 0x1F9A5, - 0x1F9AB, - 0x1F9AE, - 0x1F9CB, + 0x1F9CC, 0x1F9CD, 0x1FA54, 0x1FA60, 0x1FA6E, 0x1FA70, - 0x1FA74, + 0x1FA75, 0x1FA78, 0x1FA7B, 0x1FA80, - 0x1FA83, + 0x1FA87, 0x1FA90, - 0x1FA96, + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB, + 0x1FBF0, + 0x1FBFA, 0x1FFFE, 0x20000, 0x2FFFE, @@ -192709,7 +195037,7 @@ static const UV UNI_BC__LRO_invlist[] = { /* for all charsets */ }; static const UV UNI_BC__NSM_invlist[] = { /* for all charsets */ - 629, /* Number of elements */ + 645, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -192830,7 +195158,7 @@ static const UV UNI_BC__NSM_invlist[] = { /* for all charsets */ 0xB45, 0xB4D, 0xB4E, - 0xB56, + 0xB55, 0xB57, 0xB62, 0xB64, @@ -192872,6 +195200,8 @@ static const UV UNI_BC__NSM_invlist[] = { /* for all charsets */ 0xD4E, 0xD62, 0xD64, + 0xD81, + 0xD82, 0xDCA, 0xDCB, 0xDD2, @@ -192985,7 +195315,7 @@ static const UV UNI_BC__NSM_invlist[] = { /* for all charsets */ 0x1A7F, 0x1A80, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B04, 0x1B34, @@ -193062,6 +195392,8 @@ static const UV UNI_BC__NSM_invlist[] = { /* for all charsets */ 0xA80C, 0xA825, 0xA827, + 0xA82C, + 0xA82D, 0xA8C4, 0xA8C6, 0xA8E0, @@ -193140,6 +195472,8 @@ static const UV UNI_BC__NSM_invlist[] = { /* for all charsets */ 0x10AE7, 0x10D24, 0x10D28, + 0x10EAB, + 0x10EAD, 0x10F46, 0x10F51, 0x11001, @@ -193166,6 +195500,8 @@ static const UV UNI_BC__NSM_invlist[] = { /* for all charsets */ 0x111BF, 0x111C9, 0x111CD, + 0x111CF, + 0x111D0, 0x1122F, 0x11232, 0x11234, @@ -193236,6 +195572,12 @@ static const UV UNI_BC__NSM_invlist[] = { /* for all charsets */ 0x11838, 0x11839, 0x1183B, + 0x1193B, + 0x1193D, + 0x1193E, + 0x1193F, + 0x11943, + 0x11944, 0x119D4, 0x119D8, 0x119DA, @@ -193298,6 +195640,8 @@ static const UV UNI_BC__NSM_invlist[] = { /* for all charsets */ 0x16F50, 0x16F8F, 0x16F93, + 0x16FE4, + 0x16FE5, 0x1BC9D, 0x1BC9F, 0x1D167, @@ -193347,7 +195691,7 @@ static const UV UNI_BC__NSM_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_BC__ON_invlist[] = { /* for ASCII/Latin1 */ - 369, /* Number of elements */ + 377, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -193508,14 +195852,14 @@ static const UV UNI_BC__ON_invlist[] = { /* for ASCII/Latin1 */ 0x2B74, 0x2B76, 0x2B96, - 0x2B98, + 0x2B97, 0x2C00, 0x2CE5, 0x2CEB, 0x2CF9, 0x2D00, 0x2E00, - 0x2E50, + 0x2E53, 0x2E80, 0x2E9A, 0x2E9B, @@ -193576,6 +195920,8 @@ static const UV UNI_BC__ON_invlist[] = { /* for ASCII/Latin1 */ 0xA82C, 0xA874, 0xA878, + 0xAB6A, + 0xAB6C, 0xFD3E, 0xFD40, 0xFDFD, @@ -193619,7 +195965,7 @@ static const UV UNI_BC__ON_invlist[] = { /* for ASCII/Latin1 */ 0x10140, 0x1018D, 0x10190, - 0x1019C, + 0x1019D, 0x101A0, 0x101A1, 0x1091F, @@ -193667,19 +196013,21 @@ static const UV UNI_BC__ON_invlist[] = { /* for ASCII/Latin1 */ 0x1F0D1, 0x1F0F6, 0x1F10B, - 0x1F10D, + 0x1F110, 0x1F12F, 0x1F130, 0x1F16A, - 0x1F16D, + 0x1F170, + 0x1F1AD, + 0x1F1AE, 0x1F260, 0x1F266, 0x1F300, - 0x1F6D6, + 0x1F6D8, 0x1F6E0, 0x1F6ED, 0x1F6F0, - 0x1F6FB, + 0x1F6FD, 0x1F700, 0x1F774, 0x1F780, @@ -193696,30 +196044,34 @@ static const UV UNI_BC__ON_invlist[] = { /* for ASCII/Latin1 */ 0x1F888, 0x1F890, 0x1F8AE, + 0x1F8B0, + 0x1F8B2, 0x1F900, - 0x1F90C, - 0x1F90D, - 0x1F972, - 0x1F973, - 0x1F977, + 0x1F979, 0x1F97A, - 0x1F9A3, - 0x1F9A5, - 0x1F9AB, - 0x1F9AE, - 0x1F9CB, + 0x1F9CC, 0x1F9CD, 0x1FA54, 0x1FA60, 0x1FA6E, 0x1FA70, - 0x1FA74, + 0x1FA75, 0x1FA78, 0x1FA7B, 0x1FA80, - 0x1FA83, + 0x1FA87, 0x1FA90, - 0x1FA96 + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB }; # endif /* ASCII/Latin1 */ @@ -193730,7 +196082,7 @@ static const UV UNI_BC__ON_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_BC__ON_invlist[] = { /* for EBCDIC 1047 */ - 377, /* Number of elements */ + 385, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -193899,14 +196251,14 @@ static const UV UNI_BC__ON_invlist[] = { /* for EBCDIC 1047 */ 0x2B74, 0x2B76, 0x2B96, - 0x2B98, + 0x2B97, 0x2C00, 0x2CE5, 0x2CEB, 0x2CF9, 0x2D00, 0x2E00, - 0x2E50, + 0x2E53, 0x2E80, 0x2E9A, 0x2E9B, @@ -193967,6 +196319,8 @@ static const UV UNI_BC__ON_invlist[] = { /* for EBCDIC 1047 */ 0xA82C, 0xA874, 0xA878, + 0xAB6A, + 0xAB6C, 0xFD3E, 0xFD40, 0xFDFD, @@ -194010,7 +196364,7 @@ static const UV UNI_BC__ON_invlist[] = { /* for EBCDIC 1047 */ 0x10140, 0x1018D, 0x10190, - 0x1019C, + 0x1019D, 0x101A0, 0x101A1, 0x1091F, @@ -194058,19 +196412,21 @@ static const UV UNI_BC__ON_invlist[] = { /* for EBCDIC 1047 */ 0x1F0D1, 0x1F0F6, 0x1F10B, - 0x1F10D, + 0x1F110, 0x1F12F, 0x1F130, 0x1F16A, - 0x1F16D, + 0x1F170, + 0x1F1AD, + 0x1F1AE, 0x1F260, 0x1F266, 0x1F300, - 0x1F6D6, + 0x1F6D8, 0x1F6E0, 0x1F6ED, 0x1F6F0, - 0x1F6FB, + 0x1F6FD, 0x1F700, 0x1F774, 0x1F780, @@ -194087,30 +196443,34 @@ static const UV UNI_BC__ON_invlist[] = { /* for EBCDIC 1047 */ 0x1F888, 0x1F890, 0x1F8AE, + 0x1F8B0, + 0x1F8B2, 0x1F900, - 0x1F90C, - 0x1F90D, - 0x1F972, - 0x1F973, - 0x1F977, + 0x1F979, 0x1F97A, - 0x1F9A3, - 0x1F9A5, - 0x1F9AB, - 0x1F9AE, - 0x1F9CB, + 0x1F9CC, 0x1F9CD, 0x1FA54, 0x1FA60, 0x1FA6E, 0x1FA70, - 0x1FA74, + 0x1FA75, 0x1FA78, 0x1FA7B, 0x1FA80, - 0x1FA83, + 0x1FA87, 0x1FA90, - 0x1FA96 + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB }; # endif /* EBCDIC 1047 */ @@ -194121,7 +196481,7 @@ static const UV UNI_BC__ON_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_BC__ON_invlist[] = { /* for EBCDIC 037 */ - 373, /* Number of elements */ + 381, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -194286,14 +196646,14 @@ static const UV UNI_BC__ON_invlist[] = { /* for EBCDIC 037 */ 0x2B74, 0x2B76, 0x2B96, - 0x2B98, + 0x2B97, 0x2C00, 0x2CE5, 0x2CEB, 0x2CF9, 0x2D00, 0x2E00, - 0x2E50, + 0x2E53, 0x2E80, 0x2E9A, 0x2E9B, @@ -194354,6 +196714,8 @@ static const UV UNI_BC__ON_invlist[] = { /* for EBCDIC 037 */ 0xA82C, 0xA874, 0xA878, + 0xAB6A, + 0xAB6C, 0xFD3E, 0xFD40, 0xFDFD, @@ -194397,7 +196759,7 @@ static const UV UNI_BC__ON_invlist[] = { /* for EBCDIC 037 */ 0x10140, 0x1018D, 0x10190, - 0x1019C, + 0x1019D, 0x101A0, 0x101A1, 0x1091F, @@ -194445,19 +196807,21 @@ static const UV UNI_BC__ON_invlist[] = { /* for EBCDIC 037 */ 0x1F0D1, 0x1F0F6, 0x1F10B, - 0x1F10D, + 0x1F110, 0x1F12F, 0x1F130, 0x1F16A, - 0x1F16D, + 0x1F170, + 0x1F1AD, + 0x1F1AE, 0x1F260, 0x1F266, 0x1F300, - 0x1F6D6, + 0x1F6D8, 0x1F6E0, 0x1F6ED, 0x1F6F0, - 0x1F6FB, + 0x1F6FD, 0x1F700, 0x1F774, 0x1F780, @@ -194474,30 +196838,34 @@ static const UV UNI_BC__ON_invlist[] = { /* for EBCDIC 037 */ 0x1F888, 0x1F890, 0x1F8AE, + 0x1F8B0, + 0x1F8B2, 0x1F900, - 0x1F90C, - 0x1F90D, - 0x1F972, - 0x1F973, - 0x1F977, + 0x1F979, 0x1F97A, - 0x1F9A3, - 0x1F9A5, - 0x1F9AB, - 0x1F9AE, - 0x1F9CB, + 0x1F9CC, 0x1F9CD, 0x1FA54, 0x1FA60, 0x1FA6E, 0x1FA70, - 0x1FA74, + 0x1FA75, 0x1FA78, 0x1FA7B, 0x1FA80, - 0x1FA83, + 0x1FA87, 0x1FA90, - 0x1FA96 + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB }; # endif /* EBCDIC 037 */ @@ -194523,7 +196891,7 @@ static const UV UNI_BC__PDI_invlist[] = { /* for all charsets */ }; static const UV UNI_BC__R_invlist[] = { /* for all charsets */ - 77, /* Number of elements */ + 79, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -194589,6 +196957,8 @@ static const UV UNI_BC__R_invlist[] = { /* for all charsets */ 0x10D40, 0x10E60, 0x10E7F, + 0x10EAB, + 0x10EAD, 0x10F30, 0x10F70, 0x11000, @@ -195621,7 +197991,7 @@ static const UV UNI_BOPO_invlist[] = { /* for all charsets */ 0x3105, 0x3130, 0x31A0, - 0x31BB, + 0x31C0, 0xFE45, 0xFE47, 0xFF61, @@ -196733,7 +199103,7 @@ static const UV UNI_BYZANTINEMUSIC_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */ - 1335, /* Number of elements */ + 1357, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -196791,7 +199161,7 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x8E2, 0x8E3, @@ -196902,7 +199272,7 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -196991,8 +199361,6 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */ 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -197006,7 +199374,7 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */ 0xD64, 0xD66, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -197179,7 +199547,7 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */ 0x1AA0, 0x1AAE, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B4C, 0x1B50, @@ -197258,7 +199626,7 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */ 0x2B74, 0x2B76, 0x2B96, - 0x2B98, + 0x2B97, 0x2C2F, 0x2C30, 0x2C5F, @@ -197293,7 +199661,7 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */ 0x2DD8, 0x2DDF, 0x2DE0, - 0x2E50, + 0x2E53, 0x2E80, 0x2E9A, 0x2E9B, @@ -197313,15 +199681,11 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */ 0x3131, 0x318F, 0x3190, - 0x31BB, - 0x31C0, 0x31E4, 0x31F0, 0x321F, 0x3220, - 0x4DB6, - 0x4DC0, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA490, @@ -197333,9 +199697,9 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */ 0xA700, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, - 0xA82C, + 0xA7CB, + 0xA7F5, + 0xA82D, 0xA830, 0xA83A, 0xA840, @@ -197375,7 +199739,7 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */ 0xAB28, 0xAB2F, 0xAB30, - 0xAB68, + 0xAB6C, 0xAB70, 0xABEE, 0xABF0, @@ -197463,7 +199827,7 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */ 0x10137, 0x1018F, 0x10190, - 0x1019C, + 0x1019D, 0x101A0, 0x101A1, 0x101D0, @@ -197582,10 +199946,18 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */ 0x10D3A, 0x10E60, 0x10E7F, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAE, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F28, 0x10F30, 0x10F5A, + 0x10FB0, + 0x10FCC, 0x10FE0, 0x10FF7, 0x11000, @@ -197603,12 +199975,10 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */ 0x11100, 0x11135, 0x11136, - 0x11147, + 0x11148, 0x11150, 0x11177, 0x11180, - 0x111CE, - 0x111D0, 0x111E0, 0x111E1, 0x111F5, @@ -197661,11 +200031,9 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */ 0x11370, 0x11375, 0x11400, - 0x1145A, - 0x1145B, 0x1145C, 0x1145D, - 0x11460, + 0x11462, 0x11480, 0x114C8, 0x114D0, @@ -197695,7 +200063,21 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */ 0x118A0, 0x118F3, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11947, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -197750,6 +200132,8 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */ 0x11DAA, 0x11EE0, 0x11EF9, + 0x11FB0, + 0x11FB1, 0x11FC0, 0x11FF2, 0x11FFF, @@ -197795,11 +200179,15 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */ 0x16F8F, 0x16FA0, 0x16FE0, - 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -197997,11 +200385,7 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */ 0x1F0D1, 0x1F0F6, 0x1F100, - 0x1F10D, - 0x1F110, - 0x1F16D, - 0x1F170, - 0x1F1AD, + 0x1F1AE, 0x1F1E6, 0x1F203, 0x1F210, @@ -198013,11 +200397,11 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */ 0x1F260, 0x1F266, 0x1F300, - 0x1F6D6, + 0x1F6D8, 0x1F6E0, 0x1F6ED, 0x1F6F0, - 0x1F6FB, + 0x1F6FD, 0x1F700, 0x1F774, 0x1F780, @@ -198034,32 +200418,38 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */ 0x1F888, 0x1F890, 0x1F8AE, + 0x1F8B0, + 0x1F8B2, 0x1F900, - 0x1F90C, - 0x1F90D, - 0x1F972, - 0x1F973, - 0x1F977, + 0x1F979, 0x1F97A, - 0x1F9A3, - 0x1F9A5, - 0x1F9AB, - 0x1F9AE, - 0x1F9CB, + 0x1F9CC, 0x1F9CD, 0x1FA54, 0x1FA60, 0x1FA6E, 0x1FA70, - 0x1FA74, + 0x1FA75, 0x1FA78, 0x1FA7B, 0x1FA80, - 0x1FA83, + 0x1FA87, 0x1FA90, - 0x1FA96, + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB, + 0x1FBF0, + 0x1FBFA, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -198070,6 +200460,8 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */ 0x2EBE1, 0x2F800, 0x2FA1E, + 0x30000, + 0x3134B, 0xE0100, 0xE01F0 }; @@ -198082,7 +200474,7 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */ - 1335, /* Number of elements */ + 1357, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -198140,7 +200532,7 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x8E2, 0x8E3, @@ -198251,7 +200643,7 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -198340,8 +200732,6 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */ 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -198355,7 +200745,7 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */ 0xD64, 0xD66, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -198528,7 +200918,7 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */ 0x1AA0, 0x1AAE, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B4C, 0x1B50, @@ -198607,7 +200997,7 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */ 0x2B74, 0x2B76, 0x2B96, - 0x2B98, + 0x2B97, 0x2C2F, 0x2C30, 0x2C5F, @@ -198642,7 +201032,7 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */ 0x2DD8, 0x2DDF, 0x2DE0, - 0x2E50, + 0x2E53, 0x2E80, 0x2E9A, 0x2E9B, @@ -198662,15 +201052,11 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */ 0x3131, 0x318F, 0x3190, - 0x31BB, - 0x31C0, 0x31E4, 0x31F0, 0x321F, 0x3220, - 0x4DB6, - 0x4DC0, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA490, @@ -198682,9 +201068,9 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */ 0xA700, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, - 0xA82C, + 0xA7CB, + 0xA7F5, + 0xA82D, 0xA830, 0xA83A, 0xA840, @@ -198724,7 +201110,7 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */ 0xAB28, 0xAB2F, 0xAB30, - 0xAB68, + 0xAB6C, 0xAB70, 0xABEE, 0xABF0, @@ -198812,7 +201198,7 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */ 0x10137, 0x1018F, 0x10190, - 0x1019C, + 0x1019D, 0x101A0, 0x101A1, 0x101D0, @@ -198931,10 +201317,18 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */ 0x10D3A, 0x10E60, 0x10E7F, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAE, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F28, 0x10F30, 0x10F5A, + 0x10FB0, + 0x10FCC, 0x10FE0, 0x10FF7, 0x11000, @@ -198952,12 +201346,10 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */ 0x11100, 0x11135, 0x11136, - 0x11147, + 0x11148, 0x11150, 0x11177, 0x11180, - 0x111CE, - 0x111D0, 0x111E0, 0x111E1, 0x111F5, @@ -199010,11 +201402,9 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */ 0x11370, 0x11375, 0x11400, - 0x1145A, - 0x1145B, 0x1145C, 0x1145D, - 0x11460, + 0x11462, 0x11480, 0x114C8, 0x114D0, @@ -199044,7 +201434,21 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */ 0x118A0, 0x118F3, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11947, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -199099,6 +201503,8 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */ 0x11DAA, 0x11EE0, 0x11EF9, + 0x11FB0, + 0x11FB1, 0x11FC0, 0x11FF2, 0x11FFF, @@ -199144,11 +201550,15 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */ 0x16F8F, 0x16FA0, 0x16FE0, - 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -199346,11 +201756,7 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */ 0x1F0D1, 0x1F0F6, 0x1F100, - 0x1F10D, - 0x1F110, - 0x1F16D, - 0x1F170, - 0x1F1AD, + 0x1F1AE, 0x1F1E6, 0x1F203, 0x1F210, @@ -199362,11 +201768,11 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */ 0x1F260, 0x1F266, 0x1F300, - 0x1F6D6, + 0x1F6D8, 0x1F6E0, 0x1F6ED, 0x1F6F0, - 0x1F6FB, + 0x1F6FD, 0x1F700, 0x1F774, 0x1F780, @@ -199383,32 +201789,38 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */ 0x1F888, 0x1F890, 0x1F8AE, + 0x1F8B0, + 0x1F8B2, 0x1F900, - 0x1F90C, - 0x1F90D, - 0x1F972, - 0x1F973, - 0x1F977, + 0x1F979, 0x1F97A, - 0x1F9A3, - 0x1F9A5, - 0x1F9AB, - 0x1F9AE, - 0x1F9CB, + 0x1F9CC, 0x1F9CD, 0x1FA54, 0x1FA60, 0x1FA6E, 0x1FA70, - 0x1FA74, + 0x1FA75, 0x1FA78, 0x1FA7B, 0x1FA80, - 0x1FA83, + 0x1FA87, 0x1FA90, - 0x1FA96, + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB, + 0x1FBF0, + 0x1FBFA, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -199419,6 +201831,8 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */ 0x2EBE1, 0x2F800, 0x2FA1E, + 0x30000, + 0x3134B, 0xE0100, 0xE01F0 }; @@ -199431,7 +201845,7 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */ - 1335, /* Number of elements */ + 1357, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -199489,7 +201903,7 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x8E2, 0x8E3, @@ -199600,7 +202014,7 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -199689,8 +202103,6 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */ 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -199704,7 +202116,7 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */ 0xD64, 0xD66, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -199877,7 +202289,7 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */ 0x1AA0, 0x1AAE, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B4C, 0x1B50, @@ -199956,7 +202368,7 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */ 0x2B74, 0x2B76, 0x2B96, - 0x2B98, + 0x2B97, 0x2C2F, 0x2C30, 0x2C5F, @@ -199991,7 +202403,7 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */ 0x2DD8, 0x2DDF, 0x2DE0, - 0x2E50, + 0x2E53, 0x2E80, 0x2E9A, 0x2E9B, @@ -200011,15 +202423,11 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */ 0x3131, 0x318F, 0x3190, - 0x31BB, - 0x31C0, 0x31E4, 0x31F0, 0x321F, 0x3220, - 0x4DB6, - 0x4DC0, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA490, @@ -200031,9 +202439,9 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */ 0xA700, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, - 0xA82C, + 0xA7CB, + 0xA7F5, + 0xA82D, 0xA830, 0xA83A, 0xA840, @@ -200073,7 +202481,7 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */ 0xAB28, 0xAB2F, 0xAB30, - 0xAB68, + 0xAB6C, 0xAB70, 0xABEE, 0xABF0, @@ -200161,7 +202569,7 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */ 0x10137, 0x1018F, 0x10190, - 0x1019C, + 0x1019D, 0x101A0, 0x101A1, 0x101D0, @@ -200280,10 +202688,18 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */ 0x10D3A, 0x10E60, 0x10E7F, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAE, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F28, 0x10F30, 0x10F5A, + 0x10FB0, + 0x10FCC, 0x10FE0, 0x10FF7, 0x11000, @@ -200301,12 +202717,10 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */ 0x11100, 0x11135, 0x11136, - 0x11147, + 0x11148, 0x11150, 0x11177, 0x11180, - 0x111CE, - 0x111D0, 0x111E0, 0x111E1, 0x111F5, @@ -200359,11 +202773,9 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */ 0x11370, 0x11375, 0x11400, - 0x1145A, - 0x1145B, 0x1145C, 0x1145D, - 0x11460, + 0x11462, 0x11480, 0x114C8, 0x114D0, @@ -200393,7 +202805,21 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */ 0x118A0, 0x118F3, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11947, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -200448,6 +202874,8 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */ 0x11DAA, 0x11EE0, 0x11EF9, + 0x11FB0, + 0x11FB1, 0x11FC0, 0x11FF2, 0x11FFF, @@ -200493,11 +202921,15 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */ 0x16F8F, 0x16FA0, 0x16FE0, - 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -200695,11 +203127,7 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */ 0x1F0D1, 0x1F0F6, 0x1F100, - 0x1F10D, - 0x1F110, - 0x1F16D, - 0x1F170, - 0x1F1AD, + 0x1F1AE, 0x1F1E6, 0x1F203, 0x1F210, @@ -200711,11 +203139,11 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */ 0x1F260, 0x1F266, 0x1F300, - 0x1F6D6, + 0x1F6D8, 0x1F6E0, 0x1F6ED, 0x1F6F0, - 0x1F6FB, + 0x1F6FD, 0x1F700, 0x1F774, 0x1F780, @@ -200732,32 +203160,38 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */ 0x1F888, 0x1F890, 0x1F8AE, + 0x1F8B0, + 0x1F8B2, 0x1F900, - 0x1F90C, - 0x1F90D, - 0x1F972, - 0x1F973, - 0x1F977, + 0x1F979, 0x1F97A, - 0x1F9A3, - 0x1F9A5, - 0x1F9AB, - 0x1F9AE, - 0x1F9CB, + 0x1F9CC, 0x1F9CD, 0x1FA54, 0x1FA60, 0x1FA6E, 0x1FA70, - 0x1FA74, + 0x1FA75, 0x1FA78, 0x1FA7B, 0x1FA80, - 0x1FA83, + 0x1FA87, 0x1FA90, - 0x1FA96, + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB, + 0x1FBF0, + 0x1FBFA, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -200768,6 +203202,8 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */ 0x2EBE1, 0x2F800, 0x2FA1E, + 0x30000, + 0x3134B, 0xE0100, 0xE01F0 }; @@ -200787,7 +203223,7 @@ static const UV UNI_CAKM_invlist[] = { /* for all charsets */ 0x11100, 0x11135, 0x11136, - 0x11147 + 0x11148 }; static const UV UNI_CANS_invlist[] = { /* for all charsets */ @@ -200813,7 +203249,7 @@ static const UV UNI_CARI_invlist[] = { /* for all charsets */ }; static const UV UNI_CCC__0_invlist[] = { /* for all charsets */ - 357, /* Number of elements */ + 369, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -200970,6 +203406,8 @@ static const UV UNI_CCC__0_invlist[] = { /* for all charsets */ 0x1A80, 0x1AB0, 0x1ABE, + 0x1ABF, + 0x1AC1, 0x1B34, 0x1B35, 0x1B44, @@ -201026,6 +203464,8 @@ static const UV UNI_CCC__0_invlist[] = { /* for all charsets */ 0xA6F2, 0xA806, 0xA807, + 0xA82C, + 0xA82D, 0xA8C4, 0xA8C5, 0xA8E0, @@ -201074,6 +203514,8 @@ static const UV UNI_CCC__0_invlist[] = { /* for all charsets */ 0x10AE7, 0x10D24, 0x10D28, + 0x10EAB, + 0x10EAD, 0x10F46, 0x10F51, 0x11046, @@ -201122,6 +203564,10 @@ static const UV UNI_CCC__0_invlist[] = { /* for all charsets */ 0x1172C, 0x11839, 0x1183B, + 0x1193D, + 0x1193F, + 0x11943, + 0x11944, 0x119E0, 0x119E1, 0x11A34, @@ -201142,6 +203588,8 @@ static const UV UNI_CCC__0_invlist[] = { /* for all charsets */ 0x16AF5, 0x16B30, 0x16B37, + 0x16FF0, + 0x16FF2, 0x1BC9E, 0x1BC9F, 0x1D165, @@ -201604,8 +204052,18 @@ static const UV UNI_CCC__36_invlist[] = { /* for all charsets */ 0x712 }; +static const UV UNI_CCC__6_invlist[] = { /* for all charsets */ + 3, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x16FF0, + 0x16FF2 +}; + static const UV UNI_CCC__7_invlist[] = { /* for all charsets */ - 49, /* Number of elements */ + 51, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -201654,6 +204112,8 @@ static const UV UNI_CCC__7_invlist[] = { /* for all charsets */ 0x116B8, 0x1183A, 0x1183B, + 0x11943, + 0x11944, 0x11D42, 0x11D43, 0x1E94A, @@ -201681,7 +204141,7 @@ static const UV UNI_CCC__84_invlist[] = { /* for all charsets */ }; static const UV UNI_CCC__9_invlist[] = { /* for all charsets */ - 105, /* Number of elements */ + 109, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -201734,6 +204194,8 @@ static const UV UNI_CCC__9_invlist[] = { /* for all charsets */ 0x2D80, 0xA806, 0xA807, + 0xA82C, + 0xA82D, 0xA8C4, 0xA8C5, 0xA953, @@ -201776,6 +204238,8 @@ static const UV UNI_CCC__9_invlist[] = { /* for all charsets */ 0x1172C, 0x11839, 0x1183A, + 0x1193D, + 0x1193F, 0x119E0, 0x119E1, 0x11A34, @@ -201803,7 +204267,7 @@ static const UV UNI_CCC__91_invlist[] = { /* for all charsets */ }; static const UV UNI_CCC__A_invlist[] = { /* for all charsets */ - 235, /* Number of elements */ + 237, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -202006,6 +204470,8 @@ static const UV UNI_CCC__A_invlist[] = { /* for all charsets */ 0x10AE6, 0x10D24, 0x10D28, + 0x10EAB, + 0x10EAD, 0x10F48, 0x10F4B, 0x10F4C, @@ -202079,7 +204545,7 @@ static const UV UNI_CCC__AR_invlist[] = { /* for all charsets */ }; static const UV UNI_CCC__B_invlist[] = { /* for all charsets */ - 155, /* Number of elements */ + 157, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -202186,6 +204652,8 @@ static const UV UNI_CCC__B_invlist[] = { /* for all charsets */ 0x1ABB, 0x1ABD, 0x1ABE, + 0x1ABF, + 0x1AC1, 0x1B6C, 0x1B6D, 0x1CD5, @@ -202612,10 +205080,20 @@ static const UV UNI_CHESSSYMBOLS_invlist[] = { /* for all charsets */ 0x1FA70 }; +static const UV UNI_CHRS_invlist[] = { /* for all charsets */ + 3, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x10FB0, + 0x10FCC +}; + # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_CI_invlist[] = { /* for ASCII/Latin1 */ - 803, /* Number of elements */ + 821, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -202654,6 +205132,8 @@ static const UV UNI_CI_invlist[] = { /* for ASCII/Latin1 */ 0x48A, 0x559, 0x55A, + 0x55F, + 0x560, 0x591, 0x5BE, 0x5BF, @@ -202770,7 +205250,7 @@ static const UV UNI_CI_invlist[] = { /* for ASCII/Latin1 */ 0xB45, 0xB4D, 0xB4E, - 0xB56, + 0xB55, 0xB57, 0xB62, 0xB64, @@ -202816,6 +205296,8 @@ static const UV UNI_CI_invlist[] = { /* for ASCII/Latin1 */ 0xD4E, 0xD62, 0xD64, + 0xD81, + 0xD82, 0xDCA, 0xDCB, 0xDD2, @@ -202939,7 +205421,7 @@ static const UV UNI_CI_invlist[] = { /* for ASCII/Latin1 */ 0x1AA7, 0x1AA8, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B04, 0x1B34, @@ -203084,6 +205566,8 @@ static const UV UNI_CI_invlist[] = { /* for ASCII/Latin1 */ 0xA80C, 0xA825, 0xA827, + 0xA82C, + 0xA82D, 0xA8C4, 0xA8C6, 0xA8E0, @@ -203140,6 +205624,8 @@ static const UV UNI_CI_invlist[] = { /* for ASCII/Latin1 */ 0xAAF7, 0xAB5B, 0xAB60, + 0xAB69, + 0xAB6C, 0xABE5, 0xABE6, 0xABE8, @@ -203200,6 +205686,8 @@ static const UV UNI_CI_invlist[] = { /* for ASCII/Latin1 */ 0x10AE7, 0x10D24, 0x10D28, + 0x10EAB, + 0x10EAD, 0x10F46, 0x10F51, 0x11001, @@ -203230,6 +205718,8 @@ static const UV UNI_CI_invlist[] = { /* for ASCII/Latin1 */ 0x111BF, 0x111C9, 0x111CD, + 0x111CF, + 0x111D0, 0x1122F, 0x11232, 0x11234, @@ -203300,6 +205790,12 @@ static const UV UNI_CI_invlist[] = { /* for ASCII/Latin1 */ 0x11838, 0x11839, 0x1183B, + 0x1193B, + 0x1193D, + 0x1193E, + 0x1193F, + 0x11943, + 0x11944, 0x119D4, 0x119D8, 0x119DA, @@ -203369,7 +205865,7 @@ static const UV UNI_CI_invlist[] = { /* for ASCII/Latin1 */ 0x16FE0, 0x16FE2, 0x16FE3, - 0x16FE4, + 0x16FE5, 0x1BC9D, 0x1BC9F, 0x1BCA0, @@ -203432,7 +205928,7 @@ static const UV UNI_CI_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_CI_invlist[] = { /* for EBCDIC 1047 */ - 801, /* Number of elements */ + 819, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -203469,6 +205965,8 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 1047 */ 0x48A, 0x559, 0x55A, + 0x55F, + 0x560, 0x591, 0x5BE, 0x5BF, @@ -203585,7 +206083,7 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 1047 */ 0xB45, 0xB4D, 0xB4E, - 0xB56, + 0xB55, 0xB57, 0xB62, 0xB64, @@ -203631,6 +206129,8 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 1047 */ 0xD4E, 0xD62, 0xD64, + 0xD81, + 0xD82, 0xDCA, 0xDCB, 0xDD2, @@ -203754,7 +206254,7 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 1047 */ 0x1AA7, 0x1AA8, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B04, 0x1B34, @@ -203899,6 +206399,8 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 1047 */ 0xA80C, 0xA825, 0xA827, + 0xA82C, + 0xA82D, 0xA8C4, 0xA8C6, 0xA8E0, @@ -203955,6 +206457,8 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 1047 */ 0xAAF7, 0xAB5B, 0xAB60, + 0xAB69, + 0xAB6C, 0xABE5, 0xABE6, 0xABE8, @@ -204015,6 +206519,8 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 1047 */ 0x10AE7, 0x10D24, 0x10D28, + 0x10EAB, + 0x10EAD, 0x10F46, 0x10F51, 0x11001, @@ -204045,6 +206551,8 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 1047 */ 0x111BF, 0x111C9, 0x111CD, + 0x111CF, + 0x111D0, 0x1122F, 0x11232, 0x11234, @@ -204115,6 +206623,12 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 1047 */ 0x11838, 0x11839, 0x1183B, + 0x1193B, + 0x1193D, + 0x1193E, + 0x1193F, + 0x11943, + 0x11944, 0x119D4, 0x119D8, 0x119DA, @@ -204184,7 +206698,7 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 1047 */ 0x16FE0, 0x16FE2, 0x16FE3, - 0x16FE4, + 0x16FE5, 0x1BC9D, 0x1BC9F, 0x1BCA0, @@ -204247,7 +206761,7 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_CI_invlist[] = { /* for EBCDIC 037 */ - 799, /* Number of elements */ + 817, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -204282,6 +206796,8 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 037 */ 0x48A, 0x559, 0x55A, + 0x55F, + 0x560, 0x591, 0x5BE, 0x5BF, @@ -204398,7 +206914,7 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 037 */ 0xB45, 0xB4D, 0xB4E, - 0xB56, + 0xB55, 0xB57, 0xB62, 0xB64, @@ -204444,6 +206960,8 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 037 */ 0xD4E, 0xD62, 0xD64, + 0xD81, + 0xD82, 0xDCA, 0xDCB, 0xDD2, @@ -204567,7 +207085,7 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 037 */ 0x1AA7, 0x1AA8, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B04, 0x1B34, @@ -204712,6 +207230,8 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 037 */ 0xA80C, 0xA825, 0xA827, + 0xA82C, + 0xA82D, 0xA8C4, 0xA8C6, 0xA8E0, @@ -204768,6 +207288,8 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 037 */ 0xAAF7, 0xAB5B, 0xAB60, + 0xAB69, + 0xAB6C, 0xABE5, 0xABE6, 0xABE8, @@ -204828,6 +207350,8 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 037 */ 0x10AE7, 0x10D24, 0x10D28, + 0x10EAB, + 0x10EAD, 0x10F46, 0x10F51, 0x11001, @@ -204858,6 +207382,8 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 037 */ 0x111BF, 0x111C9, 0x111CD, + 0x111CF, + 0x111D0, 0x1122F, 0x11232, 0x11234, @@ -204928,6 +207454,12 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 037 */ 0x11838, 0x11839, 0x1183B, + 0x1193B, + 0x1193D, + 0x1193E, + 0x1193F, + 0x11943, + 0x11944, 0x119D4, 0x119D8, 0x119DA, @@ -204997,7 +207529,7 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 037 */ 0x16FE0, 0x16FE2, 0x16FE3, - 0x16FE4, + 0x16FE5, 0x1BC9D, 0x1BC9F, 0x1BCA0, @@ -205164,6 +207696,16 @@ static const UV UNI_CJKEXTF_invlist[] = { /* for all charsets */ 0x2EBF0 }; +static const UV UNI_CJKEXTG_invlist[] = { /* for all charsets */ + 3, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x30000, + 0x31350 +}; + static const UV UNI_CJKRADICALSSUP_invlist[] = { /* for all charsets */ 3, /* Number of elements */ 148565664, /* Version and data structure type */ @@ -205195,7 +207737,7 @@ static const UV UNI_CJKSYMBOLS_invlist[] = { /* for all charsets */ }; static const UV UNI_CN_invlist[] = { /* for all charsets */ - 1332, /* Number of elements */ + 1354, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -205246,7 +207788,7 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x984, 0x985, @@ -205355,7 +207897,7 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -205444,8 +207986,6 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */ 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -205459,7 +207999,7 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */ 0xD64, 0xD66, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -205632,7 +208172,7 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */ 0x1AA0, 0x1AAE, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B4C, 0x1B50, @@ -205707,7 +208247,7 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */ 0x2B74, 0x2B76, 0x2B96, - 0x2B98, + 0x2B97, 0x2C2F, 0x2C30, 0x2C5F, @@ -205742,7 +208282,7 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */ 0x2DD8, 0x2DDF, 0x2DE0, - 0x2E50, + 0x2E53, 0x2E80, 0x2E9A, 0x2E9B, @@ -205762,15 +208302,11 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */ 0x3131, 0x318F, 0x3190, - 0x31BB, - 0x31C0, 0x31E4, 0x31F0, 0x321F, 0x3220, - 0x4DB6, - 0x4DC0, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA490, @@ -205782,9 +208318,9 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */ 0xA700, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, - 0xA82C, + 0xA7CB, + 0xA7F5, + 0xA82D, 0xA830, 0xA83A, 0xA840, @@ -205824,7 +208360,7 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */ 0xAB28, 0xAB2F, 0xAB30, - 0xAB68, + 0xAB6C, 0xAB70, 0xABEE, 0xABF0, @@ -205914,7 +208450,7 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */ 0x10137, 0x1018F, 0x10190, - 0x1019C, + 0x1019D, 0x101A0, 0x101A1, 0x101D0, @@ -206033,10 +208569,18 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */ 0x10D3A, 0x10E60, 0x10E7F, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAE, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F28, 0x10F30, 0x10F5A, + 0x10FB0, + 0x10FCC, 0x10FE0, 0x10FF7, 0x11000, @@ -206054,12 +208598,10 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */ 0x11100, 0x11135, 0x11136, - 0x11147, + 0x11148, 0x11150, 0x11177, 0x11180, - 0x111CE, - 0x111D0, 0x111E0, 0x111E1, 0x111F5, @@ -206112,11 +208654,9 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */ 0x11370, 0x11375, 0x11400, - 0x1145A, - 0x1145B, 0x1145C, 0x1145D, - 0x11460, + 0x11462, 0x11480, 0x114C8, 0x114D0, @@ -206146,7 +208686,21 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */ 0x118A0, 0x118F3, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11947, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -206201,6 +208755,8 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */ 0x11DAA, 0x11EE0, 0x11EF9, + 0x11FB0, + 0x11FB1, 0x11FC0, 0x11FF2, 0x11FFF, @@ -206248,11 +208804,15 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */ 0x16F8F, 0x16FA0, 0x16FE0, - 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -206448,11 +209008,7 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */ 0x1F0D1, 0x1F0F6, 0x1F100, - 0x1F10D, - 0x1F110, - 0x1F16D, - 0x1F170, - 0x1F1AD, + 0x1F1AE, 0x1F1E6, 0x1F203, 0x1F210, @@ -206464,11 +209020,11 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */ 0x1F260, 0x1F266, 0x1F300, - 0x1F6D6, + 0x1F6D8, 0x1F6E0, 0x1F6ED, 0x1F6F0, - 0x1F6FB, + 0x1F6FD, 0x1F700, 0x1F774, 0x1F780, @@ -206485,32 +209041,38 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */ 0x1F888, 0x1F890, 0x1F8AE, + 0x1F8B0, + 0x1F8B2, 0x1F900, - 0x1F90C, - 0x1F90D, - 0x1F972, - 0x1F973, - 0x1F977, + 0x1F979, 0x1F97A, - 0x1F9A3, - 0x1F9A5, - 0x1F9AB, - 0x1F9AE, - 0x1F9CB, + 0x1F9CC, 0x1F9CD, 0x1FA54, 0x1FA60, 0x1FA6E, 0x1FA70, - 0x1FA74, + 0x1FA75, 0x1FA78, 0x1FA7B, 0x1FA80, - 0x1FA83, + 0x1FA87, 0x1FA90, - 0x1FA96, + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB, + 0x1FBF0, + 0x1FBFA, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -206521,6 +209083,8 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */ 0x2EBE1, 0x2F800, 0x2FA1E, + 0x30000, + 0x3134B, 0xE0001, 0xE0002, 0xE0020, @@ -206806,7 +209370,7 @@ static const UV UNI_CURRENCYSYMBOLS_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_CWCF_invlist[] = { /* for ASCII/Latin1 */ - 1225, /* Number of elements */ + 1229, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -208014,7 +210578,11 @@ static const UV UNI_CWCF_invlist[] = { /* for ASCII/Latin1 */ 0xA7C2, 0xA7C3, 0xA7C4, - 0xA7C7, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7F5, + 0xA7F6, 0xAB70, 0xABC0, 0xFB00, @@ -208045,7 +210613,7 @@ static const UV UNI_CWCF_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_CWCF_invlist[] = { /* for EBCDIC 1047 */ - 1245, /* Number of elements */ + 1249, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -209273,7 +211841,11 @@ static const UV UNI_CWCF_invlist[] = { /* for EBCDIC 1047 */ 0xA7C2, 0xA7C3, 0xA7C4, - 0xA7C7, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7F5, + 0xA7F6, 0xAB70, 0xABC0, 0xFB00, @@ -209304,7 +211876,7 @@ static const UV UNI_CWCF_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_CWCF_invlist[] = { /* for EBCDIC 037 */ - 1241, /* Number of elements */ + 1245, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -210528,7 +213100,11 @@ static const UV UNI_CWCF_invlist[] = { /* for EBCDIC 037 */ 0xA7C2, 0xA7C3, 0xA7C4, - 0xA7C7, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7F5, + 0xA7F6, 0xAB70, 0xABC0, 0xFB00, @@ -210556,7 +213132,7 @@ static const UV UNI_CWCF_invlist[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_CWCM_invlist[] = { /* for ASCII/Latin1 */ - 247, /* Number of elements */ + 249, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -210778,7 +213354,9 @@ static const UV UNI_CWCM_invlist[] = { /* for ASCII/Latin1 */ 0xA7B0, 0xA7C0, 0xA7C2, - 0xA7C7, + 0xA7CB, + 0xA7F5, + 0xA7F7, 0xAB53, 0xAB54, 0xAB70, @@ -210817,7 +213395,7 @@ static const UV UNI_CWCM_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_CWCM_invlist[] = { /* for EBCDIC 1047 */ - 279, /* Number of elements */ + 281, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -211071,7 +213649,9 @@ static const UV UNI_CWCM_invlist[] = { /* for EBCDIC 1047 */ 0xA7B0, 0xA7C0, 0xA7C2, - 0xA7C7, + 0xA7CB, + 0xA7F5, + 0xA7F7, 0xAB53, 0xAB54, 0xAB70, @@ -211110,7 +213690,7 @@ static const UV UNI_CWCM_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_CWCM_invlist[] = { /* for EBCDIC 037 */ - 275, /* Number of elements */ + 277, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -211360,7 +213940,9 @@ static const UV UNI_CWCM_invlist[] = { /* for EBCDIC 037 */ 0xA7B0, 0xA7C0, 0xA7C2, - 0xA7C7, + 0xA7CB, + 0xA7F5, + 0xA7F7, 0xAB53, 0xAB54, 0xAB70, @@ -211396,7 +213978,7 @@ static const UV UNI_CWCM_invlist[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_CWKCF_invlist[] = { /* for ASCII/Latin1 */ - 1647, /* Number of elements */ + 1655, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -212812,11 +215394,17 @@ static const UV UNI_CWKCF_invlist[] = { /* for ASCII/Latin1 */ 0xA7C2, 0xA7C3, 0xA7C4, - 0xA7C7, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7F5, + 0xA7F6, 0xA7F8, 0xA7FA, 0xAB5C, 0xAB60, + 0xAB69, + 0xAB6A, 0xAB70, 0xABC0, 0xF900, @@ -213043,6 +215631,8 @@ static const UV UNI_CWKCF_invlist[] = { /* for ASCII/Latin1 */ 0x1F249, 0x1F250, 0x1F252, + 0x1FBF0, + 0x1FBFA, 0x2F800, 0x2FA1E, 0xE0000, @@ -213057,7 +215647,7 @@ static const UV UNI_CWKCF_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_CWKCF_invlist[] = { /* for EBCDIC 1047 */ - 1657, /* Number of elements */ + 1665, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -214483,11 +217073,17 @@ static const UV UNI_CWKCF_invlist[] = { /* for EBCDIC 1047 */ 0xA7C2, 0xA7C3, 0xA7C4, - 0xA7C7, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7F5, + 0xA7F6, 0xA7F8, 0xA7FA, 0xAB5C, 0xAB60, + 0xAB69, + 0xAB6A, 0xAB70, 0xABC0, 0xF900, @@ -214714,6 +217310,8 @@ static const UV UNI_CWKCF_invlist[] = { /* for EBCDIC 1047 */ 0x1F249, 0x1F250, 0x1F252, + 0x1FBF0, + 0x1FBFA, 0x2F800, 0x2FA1E, 0xE0000, @@ -214728,7 +217326,7 @@ static const UV UNI_CWKCF_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_CWKCF_invlist[] = { /* for EBCDIC 037 */ - 1655, /* Number of elements */ + 1663, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -216152,11 +218750,17 @@ static const UV UNI_CWKCF_invlist[] = { /* for EBCDIC 037 */ 0xA7C2, 0xA7C3, 0xA7C4, - 0xA7C7, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7F5, + 0xA7F6, 0xA7F8, 0xA7FA, 0xAB5C, 0xAB60, + 0xAB69, + 0xAB6A, 0xAB70, 0xABC0, 0xF900, @@ -216383,6 +218987,8 @@ static const UV UNI_CWKCF_invlist[] = { /* for EBCDIC 037 */ 0x1F249, 0x1F250, 0x1F252, + 0x1FBF0, + 0x1FBFA, 0x2F800, 0x2FA1E, 0xE0000, @@ -216394,7 +219000,7 @@ static const UV UNI_CWKCF_invlist[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_CWL_invlist[] = { /* for ASCII/Latin1 */ - 1199, /* Number of elements */ + 1203, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -217582,7 +220188,11 @@ static const UV UNI_CWL_invlist[] = { /* for ASCII/Latin1 */ 0xA7C2, 0xA7C3, 0xA7C4, - 0xA7C7, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7F5, + 0xA7F6, 0xFF21, 0xFF3B, 0x10400, @@ -217607,7 +220217,7 @@ static const UV UNI_CWL_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_CWL_invlist[] = { /* for EBCDIC 1047 */ - 1217, /* Number of elements */ + 1221, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -218813,7 +221423,11 @@ static const UV UNI_CWL_invlist[] = { /* for EBCDIC 1047 */ 0xA7C2, 0xA7C3, 0xA7C4, - 0xA7C7, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7F5, + 0xA7F6, 0xFF21, 0xFF3B, 0x10400, @@ -218838,7 +221452,7 @@ static const UV UNI_CWL_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_CWL_invlist[] = { /* for EBCDIC 037 */ - 1213, /* Number of elements */ + 1217, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -220040,7 +222654,11 @@ static const UV UNI_CWL_invlist[] = { /* for EBCDIC 037 */ 0xA7C2, 0xA7C3, 0xA7C4, - 0xA7C7, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7F5, + 0xA7F6, 0xFF21, 0xFF3B, 0x10400, @@ -220062,7 +222680,7 @@ static const UV UNI_CWL_invlist[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_CWT_invlist[] = { /* for ASCII/Latin1 */ - 1231, /* Number of elements */ + 1237, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -221275,6 +223893,12 @@ static const UV UNI_CWT_invlist[] = { /* for ASCII/Latin1 */ 0xA7C0, 0xA7C3, 0xA7C4, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7CB, + 0xA7F6, + 0xA7F7, 0xAB53, 0xAB54, 0xAB70, @@ -221307,7 +223931,7 @@ static const UV UNI_CWT_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_CWT_invlist[] = { /* for EBCDIC 1047 */ - 1245, /* Number of elements */ + 1251, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -222534,6 +225158,12 @@ static const UV UNI_CWT_invlist[] = { /* for EBCDIC 1047 */ 0xA7C0, 0xA7C3, 0xA7C4, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7CB, + 0xA7F6, + 0xA7F7, 0xAB53, 0xAB54, 0xAB70, @@ -222566,7 +225196,7 @@ static const UV UNI_CWT_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_CWT_invlist[] = { /* for EBCDIC 037 */ - 1245, /* Number of elements */ + 1251, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -223793,6 +226423,12 @@ static const UV UNI_CWT_invlist[] = { /* for EBCDIC 037 */ 0xA7C0, 0xA7C3, 0xA7C4, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7CB, + 0xA7F6, + 0xA7F7, 0xAB53, 0xAB54, 0xAB70, @@ -223822,7 +226458,7 @@ static const UV UNI_CWT_invlist[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_CWU_invlist[] = { /* for ASCII/Latin1 */ - 1233, /* Number of elements */ + 1239, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -225037,6 +227673,12 @@ static const UV UNI_CWU_invlist[] = { /* for ASCII/Latin1 */ 0xA7C0, 0xA7C3, 0xA7C4, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7CB, + 0xA7F6, + 0xA7F7, 0xAB53, 0xAB54, 0xAB70, @@ -225069,7 +227711,7 @@ static const UV UNI_CWU_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_CWU_invlist[] = { /* for EBCDIC 1047 */ - 1247, /* Number of elements */ + 1253, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -226298,6 +228940,12 @@ static const UV UNI_CWU_invlist[] = { /* for EBCDIC 1047 */ 0xA7C0, 0xA7C3, 0xA7C4, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7CB, + 0xA7F6, + 0xA7F7, 0xAB53, 0xAB54, 0xAB70, @@ -226330,7 +228978,7 @@ static const UV UNI_CWU_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_CWU_invlist[] = { /* for EBCDIC 037 */ - 1247, /* Number of elements */ + 1253, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -227559,6 +230207,12 @@ static const UV UNI_CWU_invlist[] = { /* for EBCDIC 037 */ 0xA7C0, 0xA7C3, 0xA7C4, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7CB, + 0xA7F6, + 0xA7F7, 0xAB53, 0xAB54, 0xAB70, @@ -227636,7 +230290,7 @@ static const UV UNI_CYRILLICSUP_invlist[] = { /* for all charsets */ }; static const UV UNI_CYRL_invlist[] = { /* for all charsets */ - 17, /* Number of elements */ + 19, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -227649,6 +230303,8 @@ static const UV UNI_CYRL_invlist[] = { /* for all charsets */ 0x1D2C, 0x1D78, 0x1D79, + 0x1DF8, + 0x1DF9, 0x2DE0, 0x2E00, 0x2E43, @@ -227662,7 +230318,7 @@ static const UV UNI_CYRL_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_DASH_invlist[] = { /* for ASCII/Latin1 */ - 43, /* Number of elements */ + 45, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -227708,7 +230364,9 @@ static const UV UNI_DASH_invlist[] = { /* for ASCII/Latin1 */ 0xFE63, 0xFE64, 0xFF0D, - 0xFF0E + 0xFF0E, + 0x10EAD, + 0x10EAE }; # endif /* ASCII/Latin1 */ @@ -227719,7 +230377,7 @@ static const UV UNI_DASH_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_DASH_invlist[] = { /* for EBCDIC 1047 */ - 43, /* Number of elements */ + 45, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -227765,7 +230423,9 @@ static const UV UNI_DASH_invlist[] = { /* for EBCDIC 1047 */ 0xFE63, 0xFE64, 0xFF0D, - 0xFF0E + 0xFF0E, + 0x10EAD, + 0x10EAE }; # endif /* EBCDIC 1047 */ @@ -227776,7 +230436,7 @@ static const UV UNI_DASH_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_DASH_invlist[] = { /* for EBCDIC 037 */ - 43, /* Number of elements */ + 45, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -227822,7 +230482,9 @@ static const UV UNI_DASH_invlist[] = { /* for EBCDIC 037 */ 0xFE63, 0xFE64, 0xFF0D, - 0xFF0E + 0xFF0E, + 0x10EAD, + 0x10EAE }; # endif /* EBCDIC 037 */ @@ -228030,7 +230692,7 @@ static const UV UNI_DI_invlist[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_DIA_invlist[] = { /* for ASCII/Latin1 */ - 343, /* Number of elements */ + 353, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -228119,6 +230781,8 @@ static const UV UNI_DIA_invlist[] = { /* for ASCII/Latin1 */ 0xB3D, 0xB4D, 0xB4E, + 0xB55, + 0xB56, 0xBCD, 0xBCE, 0xC4D, @@ -228273,6 +230937,8 @@ static const UV UNI_DIA_invlist[] = { /* for ASCII/Latin1 */ 0xAAF7, 0xAB5B, 0xAB60, + 0xAB69, + 0xAB6C, 0xABEC, 0xABEE, 0xFB1E, @@ -228335,6 +231001,10 @@ static const UV UNI_DIA_invlist[] = { /* for ASCII/Latin1 */ 0x1172C, 0x11839, 0x1183B, + 0x1193D, + 0x1193F, + 0x11943, + 0x11944, 0x119E0, 0x119E1, 0x11A34, @@ -228357,6 +231027,8 @@ static const UV UNI_DIA_invlist[] = { /* for ASCII/Latin1 */ 0x16B37, 0x16F8F, 0x16FA0, + 0x16FF0, + 0x16FF2, 0x1D167, 0x1D16A, 0x1D16D, @@ -228387,7 +231059,7 @@ static const UV UNI_DIA_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_DIA_invlist[] = { /* for EBCDIC 1047 */ - 343, /* Number of elements */ + 353, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -228476,6 +231148,8 @@ static const UV UNI_DIA_invlist[] = { /* for EBCDIC 1047 */ 0xB3D, 0xB4D, 0xB4E, + 0xB55, + 0xB56, 0xBCD, 0xBCE, 0xC4D, @@ -228630,6 +231304,8 @@ static const UV UNI_DIA_invlist[] = { /* for EBCDIC 1047 */ 0xAAF7, 0xAB5B, 0xAB60, + 0xAB69, + 0xAB6C, 0xABEC, 0xABEE, 0xFB1E, @@ -228692,6 +231368,10 @@ static const UV UNI_DIA_invlist[] = { /* for EBCDIC 1047 */ 0x1172C, 0x11839, 0x1183B, + 0x1193D, + 0x1193F, + 0x11943, + 0x11944, 0x119E0, 0x119E1, 0x11A34, @@ -228714,6 +231394,8 @@ static const UV UNI_DIA_invlist[] = { /* for EBCDIC 1047 */ 0x16B37, 0x16F8F, 0x16FA0, + 0x16FF0, + 0x16FF2, 0x1D167, 0x1D16A, 0x1D16D, @@ -228744,7 +231426,7 @@ static const UV UNI_DIA_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_DIA_invlist[] = { /* for EBCDIC 037 */ - 341, /* Number of elements */ + 351, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -228831,6 +231513,8 @@ static const UV UNI_DIA_invlist[] = { /* for EBCDIC 037 */ 0xB3D, 0xB4D, 0xB4E, + 0xB55, + 0xB56, 0xBCD, 0xBCE, 0xC4D, @@ -228985,6 +231669,8 @@ static const UV UNI_DIA_invlist[] = { /* for EBCDIC 037 */ 0xAAF7, 0xAB5B, 0xAB60, + 0xAB69, + 0xAB6C, 0xABEC, 0xABEE, 0xFB1E, @@ -229047,6 +231733,10 @@ static const UV UNI_DIA_invlist[] = { /* for EBCDIC 037 */ 0x1172C, 0x11839, 0x1183B, + 0x1193D, + 0x1193F, + 0x11943, + 0x11944, 0x119E0, 0x119E1, 0x11A34, @@ -229069,6 +231759,8 @@ static const UV UNI_DIA_invlist[] = { /* for EBCDIC 037 */ 0x16B37, 0x16F8F, 0x16FA0, + 0x16FF0, + 0x16FF2, 0x1D167, 0x1D16A, 0x1D16D, @@ -229133,6 +231825,30 @@ static const UV UNI_DIACRITICALSSUP_invlist[] = { /* for all charsets */ 0x1E00 }; +static const UV UNI_DIAK_invlist[] = { /* for all charsets */ + 17, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11947, + 0x11950, + 0x1195A +}; + static const UV UNI_DINGBATS_invlist[] = { /* for all charsets */ 3, /* Number of elements */ 148565664, /* Version and data structure type */ @@ -229180,7 +231896,7 @@ static const UV UNI_DSRT_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_DT__CAN_invlist[] = { /* for ASCII/Latin1 */ - 463, /* Number of elements */ + 465, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -229641,6 +232357,8 @@ static const UV UNI_DT__CAN_invlist[] = { /* for ASCII/Latin1 */ 0x114BF, 0x115BA, 0x115BC, + 0x11938, + 0x11939, 0x1D15E, 0x1D165, 0x1D1BB, @@ -229657,7 +232375,7 @@ static const UV UNI_DT__CAN_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_DT__CAN_invlist[] = { /* for EBCDIC 1047 */ - 467, /* Number of elements */ + 469, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -230122,6 +232840,8 @@ static const UV UNI_DT__CAN_invlist[] = { /* for EBCDIC 1047 */ 0x114BF, 0x115BA, 0x115BC, + 0x11938, + 0x11939, 0x1D15E, 0x1D165, 0x1D1BB, @@ -230138,7 +232858,7 @@ static const UV UNI_DT__CAN_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_DT__CAN_invlist[] = { /* for EBCDIC 037 */ - 467, /* Number of elements */ + 469, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -230603,6 +233323,8 @@ static const UV UNI_DT__CAN_invlist[] = { /* for EBCDIC 037 */ 0x114BF, 0x115BA, 0x115BC, + 0x11938, + 0x11939, 0x1D15E, 0x1D165, 0x1D1BB, @@ -231356,7 +234078,7 @@ static const UV UNI_DT__FIN_invlist[] = { /* for all charsets */ }; static const UV UNI_DT__FONT_invlist[] = { /* for all charsets */ - 135, /* Number of elements */ + 137, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -231494,7 +234216,9 @@ static const UV UNI_DT__FONT_invlist[] = { /* for all charsets */ 0x1EEA5, 0x1EEAA, 0x1EEAB, - 0x1EEBC + 0x1EEBC, + 0x1FBF0, + 0x1FBFA }; # if 'A' == 65 /* ASCII/Latin1 */ @@ -232130,7 +234854,7 @@ static const UV UNI_DT__NB_invlist[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_DT__NONCANON_invlist[] = { /* for ASCII/Latin1 */ - 371, /* Number of elements */ + 375, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -232333,6 +235057,8 @@ static const UV UNI_DT__NONCANON_invlist[] = { /* for ASCII/Latin1 */ 0xA7FA, 0xAB5C, 0xAB60, + 0xAB69, + 0xAB6A, 0xFB00, 0xFB07, 0xFB13, @@ -232504,7 +235230,9 @@ static const UV UNI_DT__NONCANON_invlist[] = { /* for ASCII/Latin1 */ 0x1F240, 0x1F249, 0x1F250, - 0x1F252 + 0x1F252, + 0x1FBF0, + 0x1FBFA }; # endif /* ASCII/Latin1 */ @@ -232515,7 +235243,7 @@ static const UV UNI_DT__NONCANON_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_DT__NONCANON_invlist[] = { /* for EBCDIC 1047 */ - 377, /* Number of elements */ + 381, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -232724,6 +235452,8 @@ static const UV UNI_DT__NONCANON_invlist[] = { /* for EBCDIC 1047 */ 0xA7FA, 0xAB5C, 0xAB60, + 0xAB69, + 0xAB6A, 0xFB00, 0xFB07, 0xFB13, @@ -232895,7 +235625,9 @@ static const UV UNI_DT__NONCANON_invlist[] = { /* for EBCDIC 1047 */ 0x1F240, 0x1F249, 0x1F250, - 0x1F252 + 0x1F252, + 0x1FBF0, + 0x1FBFA }; # endif /* EBCDIC 1047 */ @@ -232906,7 +235638,7 @@ static const UV UNI_DT__NONCANON_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_DT__NONCANON_invlist[] = { /* for EBCDIC 037 */ - 375, /* Number of elements */ + 379, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -233113,6 +235845,8 @@ static const UV UNI_DT__NONCANON_invlist[] = { /* for EBCDIC 037 */ 0xA7FA, 0xAB5C, 0xAB60, + 0xAB69, + 0xAB6A, 0xFB00, 0xFB07, 0xFB13, @@ -233284,7 +236018,9 @@ static const UV UNI_DT__NONCANON_invlist[] = { /* for EBCDIC 037 */ 0x1F240, 0x1F249, 0x1F250, - 0x1F252 + 0x1F252, + 0x1FBF0, + 0x1FBFA }; # endif /* EBCDIC 037 */ @@ -233292,7 +236028,7 @@ static const UV UNI_DT__NONCANON_invlist[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_DT__NONE_invlist[] = { /* for ASCII/Latin1 */ - 779, /* Number of elements */ + 785, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -233851,6 +236587,8 @@ static const UV UNI_DT__NONE_invlist[] = { /* for ASCII/Latin1 */ 0xA7FA, 0xAB5C, 0xAB60, + 0xAB69, + 0xAB6A, 0xAC00, 0xD7A4, 0xF900, @@ -233943,6 +236681,8 @@ static const UV UNI_DT__NONE_invlist[] = { /* for ASCII/Latin1 */ 0x114BF, 0x115BA, 0x115BC, + 0x11938, + 0x11939, 0x1D15E, 0x1D165, 0x1D1BB, @@ -234073,6 +236813,8 @@ static const UV UNI_DT__NONE_invlist[] = { /* for ASCII/Latin1 */ 0x1F249, 0x1F250, 0x1F252, + 0x1FBF0, + 0x1FBFA, 0x2F800, 0x2FA1E }; @@ -234085,7 +236827,7 @@ static const UV UNI_DT__NONE_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_DT__NONE_invlist[] = { /* for EBCDIC 1047 */ - 777, /* Number of elements */ + 783, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -234642,6 +237384,8 @@ static const UV UNI_DT__NONE_invlist[] = { /* for EBCDIC 1047 */ 0xA7FA, 0xAB5C, 0xAB60, + 0xAB69, + 0xAB6A, 0xAC00, 0xD7A4, 0xF900, @@ -234734,6 +237478,8 @@ static const UV UNI_DT__NONE_invlist[] = { /* for EBCDIC 1047 */ 0x114BF, 0x115BA, 0x115BC, + 0x11938, + 0x11939, 0x1D15E, 0x1D165, 0x1D1BB, @@ -234864,6 +237610,8 @@ static const UV UNI_DT__NONE_invlist[] = { /* for EBCDIC 1047 */ 0x1F249, 0x1F250, 0x1F252, + 0x1FBF0, + 0x1FBFA, 0x2F800, 0x2FA1E }; @@ -234876,7 +237624,7 @@ static const UV UNI_DT__NONE_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_DT__NONE_invlist[] = { /* for EBCDIC 037 */ - 779, /* Number of elements */ + 785, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -235435,6 +238183,8 @@ static const UV UNI_DT__NONE_invlist[] = { /* for EBCDIC 037 */ 0xA7FA, 0xAB5C, 0xAB60, + 0xAB69, + 0xAB6A, 0xAC00, 0xD7A4, 0xF900, @@ -235527,6 +238277,8 @@ static const UV UNI_DT__NONE_invlist[] = { /* for EBCDIC 037 */ 0x114BF, 0x115BA, 0x115BC, + 0x11938, + 0x11939, 0x1D15E, 0x1D165, 0x1D1BB, @@ -235657,6 +238409,8 @@ static const UV UNI_DT__NONE_invlist[] = { /* for EBCDIC 037 */ 0x1F249, 0x1F250, 0x1F252, + 0x1FBF0, + 0x1FBFA, 0x2F800, 0x2FA1E }; @@ -235722,7 +238476,7 @@ static const UV UNI_DT__SUB_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_DT__SUP_invlist[] = { /* for ASCII/Latin1 */ - 49, /* Number of elements */ + 51, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -235773,6 +238527,8 @@ static const UV UNI_DT__SUP_invlist[] = { /* for ASCII/Latin1 */ 0xA7FA, 0xAB5C, 0xAB60, + 0xAB69, + 0xAB6A, 0x1F16A, 0x1F16D }; @@ -235785,7 +238541,7 @@ static const UV UNI_DT__SUP_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_DT__SUP_invlist[] = { /* for EBCDIC 1047 */ - 51, /* Number of elements */ + 53, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -235838,6 +238594,8 @@ static const UV UNI_DT__SUP_invlist[] = { /* for EBCDIC 1047 */ 0xA7FA, 0xAB5C, 0xAB60, + 0xAB69, + 0xAB6A, 0x1F16A, 0x1F16D }; @@ -235850,7 +238608,7 @@ static const UV UNI_DT__SUP_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_DT__SUP_invlist[] = { /* for EBCDIC 037 */ - 51, /* Number of elements */ + 53, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -235903,6 +238661,8 @@ static const UV UNI_DT__SUP_invlist[] = { /* for EBCDIC 037 */ 0xA7FA, 0xAB5C, 0xAB60, + 0xAB69, + 0xAB6A, 0x1F16A, 0x1F16D }; @@ -237106,7 +239866,7 @@ static const UV UNI_EA__H_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_EA__N_invlist[] = { /* for ASCII/Latin1 */ - 547, /* Number of elements */ + 553, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -237500,8 +240260,6 @@ static const UV UNI_EA__N_invlist[] = { /* for ASCII/Latin1 */ 0x3131, 0x318F, 0x3190, - 0x31BB, - 0x31C0, 0x31E4, 0x31F0, 0x321F, @@ -237542,11 +240300,15 @@ static const UV UNI_EA__N_invlist[] = { /* for ASCII/Latin1 */ 0xFFFD, 0xFFFE, 0x16FE0, - 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -237620,33 +240382,37 @@ static const UV UNI_EA__N_invlist[] = { /* for ASCII/Latin1 */ 0x1F6D0, 0x1F6D3, 0x1F6D5, - 0x1F6D6, + 0x1F6D8, 0x1F6EB, 0x1F6ED, 0x1F6F4, - 0x1F6FB, + 0x1F6FD, 0x1F7E0, 0x1F7EC, - 0x1F90D, - 0x1F972, - 0x1F973, - 0x1F977, + 0x1F90C, + 0x1F93B, + 0x1F93C, + 0x1F946, + 0x1F947, + 0x1F979, 0x1F97A, - 0x1F9A3, - 0x1F9A5, - 0x1F9AB, - 0x1F9AE, - 0x1F9CB, + 0x1F9CC, 0x1F9CD, 0x1FA00, 0x1FA70, - 0x1FA74, + 0x1FA75, 0x1FA78, 0x1FA7B, 0x1FA80, - 0x1FA83, + 0x1FA87, 0x1FA90, - 0x1FA96, + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, 0x20000, 0x2FFFE, 0x30000, @@ -237667,7 +240433,7 @@ static const UV UNI_EA__N_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_EA__N_invlist[] = { /* for EBCDIC 1047 */ - 545, /* Number of elements */ + 551, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -238059,8 +240825,6 @@ static const UV UNI_EA__N_invlist[] = { /* for EBCDIC 1047 */ 0x3131, 0x318F, 0x3190, - 0x31BB, - 0x31C0, 0x31E4, 0x31F0, 0x321F, @@ -238101,11 +240865,15 @@ static const UV UNI_EA__N_invlist[] = { /* for EBCDIC 1047 */ 0xFFFD, 0xFFFE, 0x16FE0, - 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -238179,33 +240947,37 @@ static const UV UNI_EA__N_invlist[] = { /* for EBCDIC 1047 */ 0x1F6D0, 0x1F6D3, 0x1F6D5, - 0x1F6D6, + 0x1F6D8, 0x1F6EB, 0x1F6ED, 0x1F6F4, - 0x1F6FB, + 0x1F6FD, 0x1F7E0, 0x1F7EC, - 0x1F90D, - 0x1F972, - 0x1F973, - 0x1F977, + 0x1F90C, + 0x1F93B, + 0x1F93C, + 0x1F946, + 0x1F947, + 0x1F979, 0x1F97A, - 0x1F9A3, - 0x1F9A5, - 0x1F9AB, - 0x1F9AE, - 0x1F9CB, + 0x1F9CC, 0x1F9CD, 0x1FA00, 0x1FA70, - 0x1FA74, + 0x1FA75, 0x1FA78, 0x1FA7B, 0x1FA80, - 0x1FA83, + 0x1FA87, 0x1FA90, - 0x1FA96, + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, 0x20000, 0x2FFFE, 0x30000, @@ -238226,7 +240998,7 @@ static const UV UNI_EA__N_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_EA__N_invlist[] = { /* for EBCDIC 037 */ - 545, /* Number of elements */ + 551, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -238618,8 +241390,6 @@ static const UV UNI_EA__N_invlist[] = { /* for EBCDIC 037 */ 0x3131, 0x318F, 0x3190, - 0x31BB, - 0x31C0, 0x31E4, 0x31F0, 0x321F, @@ -238660,11 +241430,15 @@ static const UV UNI_EA__N_invlist[] = { /* for EBCDIC 037 */ 0xFFFD, 0xFFFE, 0x16FE0, - 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -238738,33 +241512,37 @@ static const UV UNI_EA__N_invlist[] = { /* for EBCDIC 037 */ 0x1F6D0, 0x1F6D3, 0x1F6D5, - 0x1F6D6, + 0x1F6D8, 0x1F6EB, 0x1F6ED, 0x1F6F4, - 0x1F6FB, + 0x1F6FD, 0x1F7E0, 0x1F7EC, - 0x1F90D, - 0x1F972, - 0x1F973, - 0x1F977, + 0x1F90C, + 0x1F93B, + 0x1F93C, + 0x1F946, + 0x1F947, + 0x1F979, 0x1F97A, - 0x1F9A3, - 0x1F9A5, - 0x1F9AB, - 0x1F9AE, - 0x1F9CB, + 0x1F9CC, 0x1F9CD, 0x1FA00, 0x1FA70, - 0x1FA74, + 0x1FA75, 0x1FA78, 0x1FA7B, 0x1FA80, - 0x1FA83, + 0x1FA87, 0x1FA90, - 0x1FA96, + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, 0x20000, 0x2FFFE, 0x30000, @@ -238906,7 +241684,7 @@ static const UV UNI_EA__NA_invlist[] = { /* for EBCDIC 037 */ # endif /* EBCDIC 037 */ static const UV UNI_EA__W_invlist[] = { /* for all charsets */ - 223, /* Number of elements */ + 229, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -239000,8 +241778,6 @@ static const UV UNI_EA__W_invlist[] = { /* for all charsets */ 0x3131, 0x318F, 0x3190, - 0x31BB, - 0x31C0, 0x31E4, 0x31F0, 0x321F, @@ -239028,11 +241804,15 @@ static const UV UNI_EA__W_invlist[] = { /* for all charsets */ 0xFE68, 0xFE6C, 0x16FE0, - 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -239102,33 +241882,37 @@ static const UV UNI_EA__W_invlist[] = { /* for all charsets */ 0x1F6D0, 0x1F6D3, 0x1F6D5, - 0x1F6D6, + 0x1F6D8, 0x1F6EB, 0x1F6ED, 0x1F6F4, - 0x1F6FB, + 0x1F6FD, 0x1F7E0, 0x1F7EC, - 0x1F90D, - 0x1F972, - 0x1F973, - 0x1F977, + 0x1F90C, + 0x1F93B, + 0x1F93C, + 0x1F946, + 0x1F947, + 0x1F979, 0x1F97A, - 0x1F9A3, - 0x1F9A5, - 0x1F9AB, - 0x1F9AE, - 0x1F9CB, + 0x1F9CC, 0x1F9CD, 0x1FA00, 0x1FA70, - 0x1FA74, + 0x1FA75, 0x1FA78, 0x1FA7B, 0x1FA80, - 0x1FA83, + 0x1FA87, 0x1FA90, - 0x1FA96, + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, 0x20000, 0x2FFFE, 0x30000, @@ -239145,6 +241929,192 @@ static const UV UNI_EARLYDYNASTICCUNEIFORM_invlist[] = { /* for all charsets */ 0x12550 }; +static const UV UNI_EBASE_invlist[] = { /* for all charsets */ + 77, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x261D, + 0x261E, + 0x26F9, + 0x26FA, + 0x270A, + 0x270E, + 0x1F385, + 0x1F386, + 0x1F3C2, + 0x1F3C5, + 0x1F3C7, + 0x1F3C8, + 0x1F3CA, + 0x1F3CD, + 0x1F442, + 0x1F444, + 0x1F446, + 0x1F451, + 0x1F466, + 0x1F479, + 0x1F47C, + 0x1F47D, + 0x1F481, + 0x1F484, + 0x1F485, + 0x1F488, + 0x1F48F, + 0x1F490, + 0x1F491, + 0x1F492, + 0x1F4AA, + 0x1F4AB, + 0x1F574, + 0x1F576, + 0x1F57A, + 0x1F57B, + 0x1F590, + 0x1F591, + 0x1F595, + 0x1F597, + 0x1F645, + 0x1F648, + 0x1F64B, + 0x1F650, + 0x1F6A3, + 0x1F6A4, + 0x1F6B4, + 0x1F6B7, + 0x1F6C0, + 0x1F6C1, + 0x1F6CC, + 0x1F6CD, + 0x1F90C, + 0x1F90D, + 0x1F90F, + 0x1F910, + 0x1F918, + 0x1F920, + 0x1F926, + 0x1F927, + 0x1F930, + 0x1F93A, + 0x1F93C, + 0x1F93F, + 0x1F977, + 0x1F978, + 0x1F9B5, + 0x1F9B7, + 0x1F9B8, + 0x1F9BA, + 0x1F9BB, + 0x1F9BC, + 0x1F9CD, + 0x1F9D0, + 0x1F9D1, + 0x1F9DE +}; + +# if 'A' == 65 /* ASCII/Latin1 */ + +static const UV UNI_ECOMP_invlist[] = { /* for ASCII/Latin1 */ + 21, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x23, + 0x24, + 0x2A, + 0x2B, + 0x30, + 0x3A, + 0x200D, + 0x200E, + 0x20E3, + 0x20E4, + 0xFE0F, + 0xFE10, + 0x1F1E6, + 0x1F200, + 0x1F3FB, + 0x1F400, + 0x1F9B0, + 0x1F9B4, + 0xE0020, + 0xE0080 +}; + +# endif /* ASCII/Latin1 */ + +# if 'A' == 193 /* EBCDIC 1047 */ \ + && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \ + && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \ + && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 + +static const UV UNI_ECOMP_invlist[] = { /* for EBCDIC 1047 */ + 21, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x5C, + 0x5D, + 0x7B, + 0x7C, + 0xF0, + 0xFA, + 0x200D, + 0x200E, + 0x20E3, + 0x20E4, + 0xFE0F, + 0xFE10, + 0x1F1E6, + 0x1F200, + 0x1F3FB, + 0x1F400, + 0x1F9B0, + 0x1F9B4, + 0xE0020, + 0xE0080 +}; + +# endif /* EBCDIC 1047 */ + +# if 'A' == 193 /* EBCDIC 037 */ \ + && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \ + && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \ + && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 + +static const UV UNI_ECOMP_invlist[] = { /* for EBCDIC 037 */ + 21, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x5C, + 0x5D, + 0x7B, + 0x7C, + 0xF0, + 0xFA, + 0x200D, + 0x200E, + 0x20E3, + 0x20E4, + 0xFE0F, + 0xFE10, + 0x1F1E6, + 0x1F200, + 0x1F3FB, + 0x1F400, + 0x1F9B0, + 0x1F9B4, + 0xE0020, + 0xE0080 +}; + +# endif /* EBCDIC 037 */ + static const UV UNI_EGYP_invlist[] = { /* for all charsets */ 5, /* Number of elements */ 148565664, /* Version and data structure type */ @@ -239187,6 +242157,970 @@ static const UV UNI_ELYM_invlist[] = { /* for all charsets */ 0x10FF7 }; +static const UV UNI_EMOD_invlist[] = { /* for all charsets */ + 3, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x1F3FB, + 0x1F400 +}; + +# if 'A' == 65 /* ASCII/Latin1 */ + +static const UV UNI_EMOJI_invlist[] = { /* for ASCII/Latin1 */ + 305, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x23, + 0x24, + 0x2A, + 0x2B, + 0x30, + 0x3A, + 0xA9, + 0xAA, + 0xAE, + 0xAF, + 0x203C, + 0x203D, + 0x2049, + 0x204A, + 0x2122, + 0x2123, + 0x2139, + 0x213A, + 0x2194, + 0x219A, + 0x21A9, + 0x21AB, + 0x231A, + 0x231C, + 0x2328, + 0x2329, + 0x23CF, + 0x23D0, + 0x23E9, + 0x23F4, + 0x23F8, + 0x23FB, + 0x24C2, + 0x24C3, + 0x25AA, + 0x25AC, + 0x25B6, + 0x25B7, + 0x25C0, + 0x25C1, + 0x25FB, + 0x25FF, + 0x2600, + 0x2605, + 0x260E, + 0x260F, + 0x2611, + 0x2612, + 0x2614, + 0x2616, + 0x2618, + 0x2619, + 0x261D, + 0x261E, + 0x2620, + 0x2621, + 0x2622, + 0x2624, + 0x2626, + 0x2627, + 0x262A, + 0x262B, + 0x262E, + 0x2630, + 0x2638, + 0x263B, + 0x2640, + 0x2641, + 0x2642, + 0x2643, + 0x2648, + 0x2654, + 0x265F, + 0x2661, + 0x2663, + 0x2664, + 0x2665, + 0x2667, + 0x2668, + 0x2669, + 0x267B, + 0x267C, + 0x267E, + 0x2680, + 0x2692, + 0x2698, + 0x2699, + 0x269A, + 0x269B, + 0x269D, + 0x26A0, + 0x26A2, + 0x26A7, + 0x26A8, + 0x26AA, + 0x26AC, + 0x26B0, + 0x26B2, + 0x26BD, + 0x26BF, + 0x26C4, + 0x26C6, + 0x26C8, + 0x26C9, + 0x26CE, + 0x26D0, + 0x26D1, + 0x26D2, + 0x26D3, + 0x26D5, + 0x26E9, + 0x26EB, + 0x26F0, + 0x26F6, + 0x26F7, + 0x26FB, + 0x26FD, + 0x26FE, + 0x2702, + 0x2703, + 0x2705, + 0x2706, + 0x2708, + 0x270E, + 0x270F, + 0x2710, + 0x2712, + 0x2713, + 0x2714, + 0x2715, + 0x2716, + 0x2717, + 0x271D, + 0x271E, + 0x2721, + 0x2722, + 0x2728, + 0x2729, + 0x2733, + 0x2735, + 0x2744, + 0x2745, + 0x2747, + 0x2748, + 0x274C, + 0x274D, + 0x274E, + 0x274F, + 0x2753, + 0x2756, + 0x2757, + 0x2758, + 0x2763, + 0x2765, + 0x2795, + 0x2798, + 0x27A1, + 0x27A2, + 0x27B0, + 0x27B1, + 0x27BF, + 0x27C0, + 0x2934, + 0x2936, + 0x2B05, + 0x2B08, + 0x2B1B, + 0x2B1D, + 0x2B50, + 0x2B51, + 0x2B55, + 0x2B56, + 0x3030, + 0x3031, + 0x303D, + 0x303E, + 0x3297, + 0x3298, + 0x3299, + 0x329A, + 0x1F004, + 0x1F005, + 0x1F0CF, + 0x1F0D0, + 0x1F170, + 0x1F172, + 0x1F17E, + 0x1F180, + 0x1F18E, + 0x1F18F, + 0x1F191, + 0x1F19B, + 0x1F1E6, + 0x1F200, + 0x1F201, + 0x1F203, + 0x1F21A, + 0x1F21B, + 0x1F22F, + 0x1F230, + 0x1F232, + 0x1F23B, + 0x1F250, + 0x1F252, + 0x1F300, + 0x1F322, + 0x1F324, + 0x1F394, + 0x1F396, + 0x1F398, + 0x1F399, + 0x1F39C, + 0x1F39E, + 0x1F3F1, + 0x1F3F3, + 0x1F3F6, + 0x1F3F7, + 0x1F4FE, + 0x1F4FF, + 0x1F53E, + 0x1F549, + 0x1F54F, + 0x1F550, + 0x1F568, + 0x1F56F, + 0x1F571, + 0x1F573, + 0x1F57B, + 0x1F587, + 0x1F588, + 0x1F58A, + 0x1F58E, + 0x1F590, + 0x1F591, + 0x1F595, + 0x1F597, + 0x1F5A4, + 0x1F5A6, + 0x1F5A8, + 0x1F5A9, + 0x1F5B1, + 0x1F5B3, + 0x1F5BC, + 0x1F5BD, + 0x1F5C2, + 0x1F5C5, + 0x1F5D1, + 0x1F5D4, + 0x1F5DC, + 0x1F5DF, + 0x1F5E1, + 0x1F5E2, + 0x1F5E3, + 0x1F5E4, + 0x1F5E8, + 0x1F5E9, + 0x1F5EF, + 0x1F5F0, + 0x1F5F3, + 0x1F5F4, + 0x1F5FA, + 0x1F650, + 0x1F680, + 0x1F6C6, + 0x1F6CB, + 0x1F6D3, + 0x1F6D5, + 0x1F6D8, + 0x1F6E0, + 0x1F6E6, + 0x1F6E9, + 0x1F6EA, + 0x1F6EB, + 0x1F6ED, + 0x1F6F0, + 0x1F6F1, + 0x1F6F3, + 0x1F6FD, + 0x1F7E0, + 0x1F7EC, + 0x1F90C, + 0x1F93B, + 0x1F93C, + 0x1F946, + 0x1F947, + 0x1F979, + 0x1F97A, + 0x1F9CC, + 0x1F9CD, + 0x1FA00, + 0x1FA70, + 0x1FA75, + 0x1FA78, + 0x1FA7B, + 0x1FA80, + 0x1FA87, + 0x1FA90, + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7 +}; + +# endif /* ASCII/Latin1 */ + +# if 'A' == 193 /* EBCDIC 1047 */ \ + && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \ + && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \ + && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 + +static const UV UNI_EMOJI_invlist[] = { /* for EBCDIC 1047 */ + 305, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x5C, + 0x5D, + 0x7B, + 0x7C, + 0xAF, + 0xB0, + 0xB4, + 0xB5, + 0xF0, + 0xFA, + 0x203C, + 0x203D, + 0x2049, + 0x204A, + 0x2122, + 0x2123, + 0x2139, + 0x213A, + 0x2194, + 0x219A, + 0x21A9, + 0x21AB, + 0x231A, + 0x231C, + 0x2328, + 0x2329, + 0x23CF, + 0x23D0, + 0x23E9, + 0x23F4, + 0x23F8, + 0x23FB, + 0x24C2, + 0x24C3, + 0x25AA, + 0x25AC, + 0x25B6, + 0x25B7, + 0x25C0, + 0x25C1, + 0x25FB, + 0x25FF, + 0x2600, + 0x2605, + 0x260E, + 0x260F, + 0x2611, + 0x2612, + 0x2614, + 0x2616, + 0x2618, + 0x2619, + 0x261D, + 0x261E, + 0x2620, + 0x2621, + 0x2622, + 0x2624, + 0x2626, + 0x2627, + 0x262A, + 0x262B, + 0x262E, + 0x2630, + 0x2638, + 0x263B, + 0x2640, + 0x2641, + 0x2642, + 0x2643, + 0x2648, + 0x2654, + 0x265F, + 0x2661, + 0x2663, + 0x2664, + 0x2665, + 0x2667, + 0x2668, + 0x2669, + 0x267B, + 0x267C, + 0x267E, + 0x2680, + 0x2692, + 0x2698, + 0x2699, + 0x269A, + 0x269B, + 0x269D, + 0x26A0, + 0x26A2, + 0x26A7, + 0x26A8, + 0x26AA, + 0x26AC, + 0x26B0, + 0x26B2, + 0x26BD, + 0x26BF, + 0x26C4, + 0x26C6, + 0x26C8, + 0x26C9, + 0x26CE, + 0x26D0, + 0x26D1, + 0x26D2, + 0x26D3, + 0x26D5, + 0x26E9, + 0x26EB, + 0x26F0, + 0x26F6, + 0x26F7, + 0x26FB, + 0x26FD, + 0x26FE, + 0x2702, + 0x2703, + 0x2705, + 0x2706, + 0x2708, + 0x270E, + 0x270F, + 0x2710, + 0x2712, + 0x2713, + 0x2714, + 0x2715, + 0x2716, + 0x2717, + 0x271D, + 0x271E, + 0x2721, + 0x2722, + 0x2728, + 0x2729, + 0x2733, + 0x2735, + 0x2744, + 0x2745, + 0x2747, + 0x2748, + 0x274C, + 0x274D, + 0x274E, + 0x274F, + 0x2753, + 0x2756, + 0x2757, + 0x2758, + 0x2763, + 0x2765, + 0x2795, + 0x2798, + 0x27A1, + 0x27A2, + 0x27B0, + 0x27B1, + 0x27BF, + 0x27C0, + 0x2934, + 0x2936, + 0x2B05, + 0x2B08, + 0x2B1B, + 0x2B1D, + 0x2B50, + 0x2B51, + 0x2B55, + 0x2B56, + 0x3030, + 0x3031, + 0x303D, + 0x303E, + 0x3297, + 0x3298, + 0x3299, + 0x329A, + 0x1F004, + 0x1F005, + 0x1F0CF, + 0x1F0D0, + 0x1F170, + 0x1F172, + 0x1F17E, + 0x1F180, + 0x1F18E, + 0x1F18F, + 0x1F191, + 0x1F19B, + 0x1F1E6, + 0x1F200, + 0x1F201, + 0x1F203, + 0x1F21A, + 0x1F21B, + 0x1F22F, + 0x1F230, + 0x1F232, + 0x1F23B, + 0x1F250, + 0x1F252, + 0x1F300, + 0x1F322, + 0x1F324, + 0x1F394, + 0x1F396, + 0x1F398, + 0x1F399, + 0x1F39C, + 0x1F39E, + 0x1F3F1, + 0x1F3F3, + 0x1F3F6, + 0x1F3F7, + 0x1F4FE, + 0x1F4FF, + 0x1F53E, + 0x1F549, + 0x1F54F, + 0x1F550, + 0x1F568, + 0x1F56F, + 0x1F571, + 0x1F573, + 0x1F57B, + 0x1F587, + 0x1F588, + 0x1F58A, + 0x1F58E, + 0x1F590, + 0x1F591, + 0x1F595, + 0x1F597, + 0x1F5A4, + 0x1F5A6, + 0x1F5A8, + 0x1F5A9, + 0x1F5B1, + 0x1F5B3, + 0x1F5BC, + 0x1F5BD, + 0x1F5C2, + 0x1F5C5, + 0x1F5D1, + 0x1F5D4, + 0x1F5DC, + 0x1F5DF, + 0x1F5E1, + 0x1F5E2, + 0x1F5E3, + 0x1F5E4, + 0x1F5E8, + 0x1F5E9, + 0x1F5EF, + 0x1F5F0, + 0x1F5F3, + 0x1F5F4, + 0x1F5FA, + 0x1F650, + 0x1F680, + 0x1F6C6, + 0x1F6CB, + 0x1F6D3, + 0x1F6D5, + 0x1F6D8, + 0x1F6E0, + 0x1F6E6, + 0x1F6E9, + 0x1F6EA, + 0x1F6EB, + 0x1F6ED, + 0x1F6F0, + 0x1F6F1, + 0x1F6F3, + 0x1F6FD, + 0x1F7E0, + 0x1F7EC, + 0x1F90C, + 0x1F93B, + 0x1F93C, + 0x1F946, + 0x1F947, + 0x1F979, + 0x1F97A, + 0x1F9CC, + 0x1F9CD, + 0x1FA00, + 0x1FA70, + 0x1FA75, + 0x1FA78, + 0x1FA7B, + 0x1FA80, + 0x1FA87, + 0x1FA90, + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7 +}; + +# endif /* EBCDIC 1047 */ + +# if 'A' == 193 /* EBCDIC 037 */ \ + && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \ + && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \ + && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 + +static const UV UNI_EMOJI_invlist[] = { /* for EBCDIC 037 */ + 305, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x5C, + 0x5D, + 0x7B, + 0x7C, + 0xAF, + 0xB0, + 0xB4, + 0xB5, + 0xF0, + 0xFA, + 0x203C, + 0x203D, + 0x2049, + 0x204A, + 0x2122, + 0x2123, + 0x2139, + 0x213A, + 0x2194, + 0x219A, + 0x21A9, + 0x21AB, + 0x231A, + 0x231C, + 0x2328, + 0x2329, + 0x23CF, + 0x23D0, + 0x23E9, + 0x23F4, + 0x23F8, + 0x23FB, + 0x24C2, + 0x24C3, + 0x25AA, + 0x25AC, + 0x25B6, + 0x25B7, + 0x25C0, + 0x25C1, + 0x25FB, + 0x25FF, + 0x2600, + 0x2605, + 0x260E, + 0x260F, + 0x2611, + 0x2612, + 0x2614, + 0x2616, + 0x2618, + 0x2619, + 0x261D, + 0x261E, + 0x2620, + 0x2621, + 0x2622, + 0x2624, + 0x2626, + 0x2627, + 0x262A, + 0x262B, + 0x262E, + 0x2630, + 0x2638, + 0x263B, + 0x2640, + 0x2641, + 0x2642, + 0x2643, + 0x2648, + 0x2654, + 0x265F, + 0x2661, + 0x2663, + 0x2664, + 0x2665, + 0x2667, + 0x2668, + 0x2669, + 0x267B, + 0x267C, + 0x267E, + 0x2680, + 0x2692, + 0x2698, + 0x2699, + 0x269A, + 0x269B, + 0x269D, + 0x26A0, + 0x26A2, + 0x26A7, + 0x26A8, + 0x26AA, + 0x26AC, + 0x26B0, + 0x26B2, + 0x26BD, + 0x26BF, + 0x26C4, + 0x26C6, + 0x26C8, + 0x26C9, + 0x26CE, + 0x26D0, + 0x26D1, + 0x26D2, + 0x26D3, + 0x26D5, + 0x26E9, + 0x26EB, + 0x26F0, + 0x26F6, + 0x26F7, + 0x26FB, + 0x26FD, + 0x26FE, + 0x2702, + 0x2703, + 0x2705, + 0x2706, + 0x2708, + 0x270E, + 0x270F, + 0x2710, + 0x2712, + 0x2713, + 0x2714, + 0x2715, + 0x2716, + 0x2717, + 0x271D, + 0x271E, + 0x2721, + 0x2722, + 0x2728, + 0x2729, + 0x2733, + 0x2735, + 0x2744, + 0x2745, + 0x2747, + 0x2748, + 0x274C, + 0x274D, + 0x274E, + 0x274F, + 0x2753, + 0x2756, + 0x2757, + 0x2758, + 0x2763, + 0x2765, + 0x2795, + 0x2798, + 0x27A1, + 0x27A2, + 0x27B0, + 0x27B1, + 0x27BF, + 0x27C0, + 0x2934, + 0x2936, + 0x2B05, + 0x2B08, + 0x2B1B, + 0x2B1D, + 0x2B50, + 0x2B51, + 0x2B55, + 0x2B56, + 0x3030, + 0x3031, + 0x303D, + 0x303E, + 0x3297, + 0x3298, + 0x3299, + 0x329A, + 0x1F004, + 0x1F005, + 0x1F0CF, + 0x1F0D0, + 0x1F170, + 0x1F172, + 0x1F17E, + 0x1F180, + 0x1F18E, + 0x1F18F, + 0x1F191, + 0x1F19B, + 0x1F1E6, + 0x1F200, + 0x1F201, + 0x1F203, + 0x1F21A, + 0x1F21B, + 0x1F22F, + 0x1F230, + 0x1F232, + 0x1F23B, + 0x1F250, + 0x1F252, + 0x1F300, + 0x1F322, + 0x1F324, + 0x1F394, + 0x1F396, + 0x1F398, + 0x1F399, + 0x1F39C, + 0x1F39E, + 0x1F3F1, + 0x1F3F3, + 0x1F3F6, + 0x1F3F7, + 0x1F4FE, + 0x1F4FF, + 0x1F53E, + 0x1F549, + 0x1F54F, + 0x1F550, + 0x1F568, + 0x1F56F, + 0x1F571, + 0x1F573, + 0x1F57B, + 0x1F587, + 0x1F588, + 0x1F58A, + 0x1F58E, + 0x1F590, + 0x1F591, + 0x1F595, + 0x1F597, + 0x1F5A4, + 0x1F5A6, + 0x1F5A8, + 0x1F5A9, + 0x1F5B1, + 0x1F5B3, + 0x1F5BC, + 0x1F5BD, + 0x1F5C2, + 0x1F5C5, + 0x1F5D1, + 0x1F5D4, + 0x1F5DC, + 0x1F5DF, + 0x1F5E1, + 0x1F5E2, + 0x1F5E3, + 0x1F5E4, + 0x1F5E8, + 0x1F5E9, + 0x1F5EF, + 0x1F5F0, + 0x1F5F3, + 0x1F5F4, + 0x1F5FA, + 0x1F650, + 0x1F680, + 0x1F6C6, + 0x1F6CB, + 0x1F6D3, + 0x1F6D5, + 0x1F6D8, + 0x1F6E0, + 0x1F6E6, + 0x1F6E9, + 0x1F6EA, + 0x1F6EB, + 0x1F6ED, + 0x1F6F0, + 0x1F6F1, + 0x1F6F3, + 0x1F6FD, + 0x1F7E0, + 0x1F7EC, + 0x1F90C, + 0x1F93B, + 0x1F93C, + 0x1F946, + 0x1F947, + 0x1F979, + 0x1F97A, + 0x1F9CC, + 0x1F9CD, + 0x1FA00, + 0x1FA70, + 0x1FA75, + 0x1FA78, + 0x1FA7B, + 0x1FA80, + 0x1FA87, + 0x1FA90, + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7 +}; + +# endif /* EBCDIC 037 */ + static const UV UNI_EMOTICONS_invlist[] = { /* for all charsets */ 3, /* Number of elements */ 148565664, /* Version and data structure type */ @@ -239237,6 +243171,176 @@ static const UV UNI_ENCLOSEDIDEOGRAPHICSUP_invlist[] = { /* for all charsets */ 0x1F300 }; +static const UV UNI_EPRES_invlist[] = { /* for all charsets */ + 163, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x231A, + 0x231C, + 0x23E9, + 0x23ED, + 0x23F0, + 0x23F1, + 0x23F3, + 0x23F4, + 0x25FD, + 0x25FF, + 0x2614, + 0x2616, + 0x2648, + 0x2654, + 0x267F, + 0x2680, + 0x2693, + 0x2694, + 0x26A1, + 0x26A2, + 0x26AA, + 0x26AC, + 0x26BD, + 0x26BF, + 0x26C4, + 0x26C6, + 0x26CE, + 0x26CF, + 0x26D4, + 0x26D5, + 0x26EA, + 0x26EB, + 0x26F2, + 0x26F4, + 0x26F5, + 0x26F6, + 0x26FA, + 0x26FB, + 0x26FD, + 0x26FE, + 0x2705, + 0x2706, + 0x270A, + 0x270C, + 0x2728, + 0x2729, + 0x274C, + 0x274D, + 0x274E, + 0x274F, + 0x2753, + 0x2756, + 0x2757, + 0x2758, + 0x2795, + 0x2798, + 0x27B0, + 0x27B1, + 0x27BF, + 0x27C0, + 0x2B1B, + 0x2B1D, + 0x2B50, + 0x2B51, + 0x2B55, + 0x2B56, + 0x1F004, + 0x1F005, + 0x1F0CF, + 0x1F0D0, + 0x1F18E, + 0x1F18F, + 0x1F191, + 0x1F19B, + 0x1F1E6, + 0x1F200, + 0x1F201, + 0x1F202, + 0x1F21A, + 0x1F21B, + 0x1F22F, + 0x1F230, + 0x1F232, + 0x1F237, + 0x1F238, + 0x1F23B, + 0x1F250, + 0x1F252, + 0x1F300, + 0x1F321, + 0x1F32D, + 0x1F336, + 0x1F337, + 0x1F37D, + 0x1F37E, + 0x1F394, + 0x1F3A0, + 0x1F3CB, + 0x1F3CF, + 0x1F3D4, + 0x1F3E0, + 0x1F3F1, + 0x1F3F4, + 0x1F3F5, + 0x1F3F8, + 0x1F43F, + 0x1F440, + 0x1F441, + 0x1F442, + 0x1F4FD, + 0x1F4FF, + 0x1F53E, + 0x1F54B, + 0x1F54F, + 0x1F550, + 0x1F568, + 0x1F57A, + 0x1F57B, + 0x1F595, + 0x1F597, + 0x1F5A4, + 0x1F5A5, + 0x1F5FB, + 0x1F650, + 0x1F680, + 0x1F6C6, + 0x1F6CC, + 0x1F6CD, + 0x1F6D0, + 0x1F6D3, + 0x1F6D5, + 0x1F6D8, + 0x1F6EB, + 0x1F6ED, + 0x1F6F4, + 0x1F6FD, + 0x1F7E0, + 0x1F7EC, + 0x1F90C, + 0x1F93B, + 0x1F93C, + 0x1F946, + 0x1F947, + 0x1F979, + 0x1F97A, + 0x1F9CC, + 0x1F9CD, + 0x1FA00, + 0x1FA70, + 0x1FA75, + 0x1FA78, + 0x1FA7B, + 0x1FA80, + 0x1FA87, + 0x1FA90, + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7 +}; + static const UV UNI_ETHI_invlist[] = { /* for all charsets */ 65, /* Number of elements */ 148565664, /* Version and data structure type */ @@ -239342,7 +243446,7 @@ static const UV UNI_ETHIOPICSUP_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_EXT_invlist[] = { /* for ASCII/Latin1 */ - 63, /* Number of elements */ + 65, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -239355,6 +243459,8 @@ static const UV UNI_EXT_invlist[] = { /* for ASCII/Latin1 */ 0x641, 0x7FA, 0x7FB, + 0xB55, + 0xB56, 0xE46, 0xE47, 0xEC6, @@ -239419,7 +243525,7 @@ static const UV UNI_EXT_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_EXT_invlist[] = { /* for EBCDIC 1047 */ - 63, /* Number of elements */ + 65, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -239432,6 +243538,8 @@ static const UV UNI_EXT_invlist[] = { /* for EBCDIC 1047 */ 0x641, 0x7FA, 0x7FB, + 0xB55, + 0xB56, 0xE46, 0xE47, 0xEC6, @@ -239496,7 +243604,7 @@ static const UV UNI_EXT_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_EXT_invlist[] = { /* for EBCDIC 037 */ - 63, /* Number of elements */ + 65, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -239509,6 +243617,8 @@ static const UV UNI_EXT_invlist[] = { /* for EBCDIC 037 */ 0x641, 0x7FA, 0x7FB, + 0xB55, + 0xB56, 0xE46, 0xE47, 0xEC6, @@ -239569,189 +243679,699 @@ static const UV UNI_EXT_invlist[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ -static const UV UNI_GCB__CN_invlist[] = { /* for ASCII/Latin1 */ - 38, /* Number of elements */ - 148565664, /* Version and data structure type */ - 0, /* 0 if the list starts at 0; - 1 if it starts at the element beyond 0 */ - 0x0, - 0xA, - 0xB, - 0xD, - 0xE, - 0x20, - 0x7F, - 0xA0, - 0xAD, - 0xAE, - 0x61C, - 0x61D, - 0x180E, - 0x180F, - 0x200B, - 0x200C, - 0x200E, - 0x2010, - 0x2028, - 0x202F, - 0x2060, - 0x2070, - 0xFEFF, - 0xFF00, - 0xFFF0, - 0xFFFC, - 0x13430, - 0x13439, - 0x1BCA0, - 0x1BCA4, - 0x1D173, - 0x1D17B, - 0xE0000, - 0xE0020, - 0xE0080, - 0xE0100, - 0xE01F0, - 0xE1000 -}; - -# endif /* ASCII/Latin1 */ - -# if 'A' == 193 /* EBCDIC 1047 */ \ - && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \ - && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \ - && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 - -static const UV UNI_GCB__CN_invlist[] = { /* for EBCDIC 1047 */ - 38, /* Number of elements */ - 148565664, /* Version and data structure type */ - 0, /* 0 if the list starts at 0; - 1 if it starts at the element beyond 0 */ - 0x0, - 0xD, - 0xE, - 0x15, - 0x16, - 0x40, - 0xCA, - 0xCB, - 0xFF, - 0x100, - 0x61C, - 0x61D, - 0x180E, - 0x180F, - 0x200B, - 0x200C, - 0x200E, - 0x2010, - 0x2028, - 0x202F, - 0x2060, - 0x2070, - 0xFEFF, - 0xFF00, - 0xFFF0, - 0xFFFC, - 0x13430, - 0x13439, - 0x1BCA0, - 0x1BCA4, - 0x1D173, - 0x1D17B, - 0xE0000, - 0xE0020, - 0xE0080, - 0xE0100, - 0xE01F0, - 0xE1000 -}; - -# endif /* EBCDIC 1047 */ - -# if 'A' == 193 /* EBCDIC 037 */ \ - && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \ - && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \ - && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 - -static const UV UNI_GCB__CN_invlist[] = { /* for EBCDIC 037 */ - 38, /* Number of elements */ - 148565664, /* Version and data structure type */ - 0, /* 0 if the list starts at 0; - 1 if it starts at the element beyond 0 */ - 0x0, - 0xD, - 0xE, - 0x25, - 0x26, - 0x40, - 0xCA, - 0xCB, - 0xFF, - 0x100, - 0x61C, - 0x61D, - 0x180E, - 0x180F, - 0x200B, - 0x200C, - 0x200E, - 0x2010, - 0x2028, - 0x202F, - 0x2060, - 0x2070, - 0xFEFF, - 0xFF00, - 0xFFF0, - 0xFFFC, - 0x13430, - 0x13439, - 0x1BCA0, - 0x1BCA4, - 0x1D173, - 0x1D17B, - 0xE0000, - 0xE0020, - 0xE0080, - 0xE0100, - 0xE01F0, - 0xE1000 -}; - -# endif /* EBCDIC 037 */ - -static const UV UNI_GCB__EX_invlist[] = { /* for all charsets */ - 673, /* Number of elements */ +static const UV UNI_EXTPICT_invlist[] = { /* for ASCII/Latin1 */ + 157, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ 0x0, - 0x300, - 0x370, - 0x483, - 0x48A, - 0x591, - 0x5BE, - 0x5BF, - 0x5C0, - 0x5C1, - 0x5C3, - 0x5C4, - 0x5C6, - 0x5C7, - 0x5C8, - 0x610, - 0x61B, - 0x64B, - 0x660, - 0x670, - 0x671, - 0x6D6, - 0x6DD, - 0x6DF, - 0x6E5, - 0x6E7, - 0x6E9, + 0xA9, + 0xAA, + 0xAE, + 0xAF, + 0x203C, + 0x203D, + 0x2049, + 0x204A, + 0x2122, + 0x2123, + 0x2139, + 0x213A, + 0x2194, + 0x219A, + 0x21A9, + 0x21AB, + 0x231A, + 0x231C, + 0x2328, + 0x2329, + 0x2388, + 0x2389, + 0x23CF, + 0x23D0, + 0x23E9, + 0x23F4, + 0x23F8, + 0x23FB, + 0x24C2, + 0x24C3, + 0x25AA, + 0x25AC, + 0x25B6, + 0x25B7, + 0x25C0, + 0x25C1, + 0x25FB, + 0x25FF, + 0x2600, + 0x2606, + 0x2607, + 0x2613, + 0x2614, + 0x2686, + 0x2690, + 0x2706, + 0x2708, + 0x2713, + 0x2714, + 0x2715, + 0x2716, + 0x2717, + 0x271D, + 0x271E, + 0x2721, + 0x2722, + 0x2728, + 0x2729, + 0x2733, + 0x2735, + 0x2744, + 0x2745, + 0x2747, + 0x2748, + 0x274C, + 0x274D, + 0x274E, + 0x274F, + 0x2753, + 0x2756, + 0x2757, + 0x2758, + 0x2763, + 0x2768, + 0x2795, + 0x2798, + 0x27A1, + 0x27A2, + 0x27B0, + 0x27B1, + 0x27BF, + 0x27C0, + 0x2934, + 0x2936, + 0x2B05, + 0x2B08, + 0x2B1B, + 0x2B1D, + 0x2B50, + 0x2B51, + 0x2B55, + 0x2B56, + 0x3030, + 0x3031, + 0x303D, + 0x303E, + 0x3297, + 0x3298, + 0x3299, + 0x329A, + 0x1F000, + 0x1F100, + 0x1F10D, + 0x1F110, + 0x1F12F, + 0x1F130, + 0x1F16C, + 0x1F172, + 0x1F17E, + 0x1F180, + 0x1F18E, + 0x1F18F, + 0x1F191, + 0x1F19B, + 0x1F1AD, + 0x1F1E6, + 0x1F201, + 0x1F210, + 0x1F21A, + 0x1F21B, + 0x1F22F, + 0x1F230, + 0x1F232, + 0x1F23B, + 0x1F23C, + 0x1F240, + 0x1F249, + 0x1F3FB, + 0x1F400, + 0x1F53E, + 0x1F546, + 0x1F650, + 0x1F680, + 0x1F700, + 0x1F774, + 0x1F780, + 0x1F7D5, + 0x1F800, + 0x1F80C, + 0x1F810, + 0x1F848, + 0x1F850, + 0x1F85A, + 0x1F860, + 0x1F888, + 0x1F890, + 0x1F8AE, + 0x1F900, + 0x1F90C, + 0x1F93B, + 0x1F93C, + 0x1F946, + 0x1F947, + 0x1FB00, + 0x1FC00, + 0x1FFFE +}; + +# endif /* ASCII/Latin1 */ + +# if 'A' == 193 /* EBCDIC 1047 */ \ + && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \ + && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \ + && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 + +static const UV UNI_EXTPICT_invlist[] = { /* for EBCDIC 1047 */ + 157, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0xAF, + 0xB0, + 0xB4, + 0xB5, + 0x203C, + 0x203D, + 0x2049, + 0x204A, + 0x2122, + 0x2123, + 0x2139, + 0x213A, + 0x2194, + 0x219A, + 0x21A9, + 0x21AB, + 0x231A, + 0x231C, + 0x2328, + 0x2329, + 0x2388, + 0x2389, + 0x23CF, + 0x23D0, + 0x23E9, + 0x23F4, + 0x23F8, + 0x23FB, + 0x24C2, + 0x24C3, + 0x25AA, + 0x25AC, + 0x25B6, + 0x25B7, + 0x25C0, + 0x25C1, + 0x25FB, + 0x25FF, + 0x2600, + 0x2606, + 0x2607, + 0x2613, + 0x2614, + 0x2686, + 0x2690, + 0x2706, + 0x2708, + 0x2713, + 0x2714, + 0x2715, + 0x2716, + 0x2717, + 0x271D, + 0x271E, + 0x2721, + 0x2722, + 0x2728, + 0x2729, + 0x2733, + 0x2735, + 0x2744, + 0x2745, + 0x2747, + 0x2748, + 0x274C, + 0x274D, + 0x274E, + 0x274F, + 0x2753, + 0x2756, + 0x2757, + 0x2758, + 0x2763, + 0x2768, + 0x2795, + 0x2798, + 0x27A1, + 0x27A2, + 0x27B0, + 0x27B1, + 0x27BF, + 0x27C0, + 0x2934, + 0x2936, + 0x2B05, + 0x2B08, + 0x2B1B, + 0x2B1D, + 0x2B50, + 0x2B51, + 0x2B55, + 0x2B56, + 0x3030, + 0x3031, + 0x303D, + 0x303E, + 0x3297, + 0x3298, + 0x3299, + 0x329A, + 0x1F000, + 0x1F100, + 0x1F10D, + 0x1F110, + 0x1F12F, + 0x1F130, + 0x1F16C, + 0x1F172, + 0x1F17E, + 0x1F180, + 0x1F18E, + 0x1F18F, + 0x1F191, + 0x1F19B, + 0x1F1AD, + 0x1F1E6, + 0x1F201, + 0x1F210, + 0x1F21A, + 0x1F21B, + 0x1F22F, + 0x1F230, + 0x1F232, + 0x1F23B, + 0x1F23C, + 0x1F240, + 0x1F249, + 0x1F3FB, + 0x1F400, + 0x1F53E, + 0x1F546, + 0x1F650, + 0x1F680, + 0x1F700, + 0x1F774, + 0x1F780, + 0x1F7D5, + 0x1F800, + 0x1F80C, + 0x1F810, + 0x1F848, + 0x1F850, + 0x1F85A, + 0x1F860, + 0x1F888, + 0x1F890, + 0x1F8AE, + 0x1F900, + 0x1F90C, + 0x1F93B, + 0x1F93C, + 0x1F946, + 0x1F947, + 0x1FB00, + 0x1FC00, + 0x1FFFE +}; + +# endif /* EBCDIC 1047 */ + +# if 'A' == 193 /* EBCDIC 037 */ \ + && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \ + && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \ + && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 + +static const UV UNI_EXTPICT_invlist[] = { /* for EBCDIC 037 */ + 157, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0xAF, + 0xB0, + 0xB4, + 0xB5, + 0x203C, + 0x203D, + 0x2049, + 0x204A, + 0x2122, + 0x2123, + 0x2139, + 0x213A, + 0x2194, + 0x219A, + 0x21A9, + 0x21AB, + 0x231A, + 0x231C, + 0x2328, + 0x2329, + 0x2388, + 0x2389, + 0x23CF, + 0x23D0, + 0x23E9, + 0x23F4, + 0x23F8, + 0x23FB, + 0x24C2, + 0x24C3, + 0x25AA, + 0x25AC, + 0x25B6, + 0x25B7, + 0x25C0, + 0x25C1, + 0x25FB, + 0x25FF, + 0x2600, + 0x2606, + 0x2607, + 0x2613, + 0x2614, + 0x2686, + 0x2690, + 0x2706, + 0x2708, + 0x2713, + 0x2714, + 0x2715, + 0x2716, + 0x2717, + 0x271D, + 0x271E, + 0x2721, + 0x2722, + 0x2728, + 0x2729, + 0x2733, + 0x2735, + 0x2744, + 0x2745, + 0x2747, + 0x2748, + 0x274C, + 0x274D, + 0x274E, + 0x274F, + 0x2753, + 0x2756, + 0x2757, + 0x2758, + 0x2763, + 0x2768, + 0x2795, + 0x2798, + 0x27A1, + 0x27A2, + 0x27B0, + 0x27B1, + 0x27BF, + 0x27C0, + 0x2934, + 0x2936, + 0x2B05, + 0x2B08, + 0x2B1B, + 0x2B1D, + 0x2B50, + 0x2B51, + 0x2B55, + 0x2B56, + 0x3030, + 0x3031, + 0x303D, + 0x303E, + 0x3297, + 0x3298, + 0x3299, + 0x329A, + 0x1F000, + 0x1F100, + 0x1F10D, + 0x1F110, + 0x1F12F, + 0x1F130, + 0x1F16C, + 0x1F172, + 0x1F17E, + 0x1F180, + 0x1F18E, + 0x1F18F, + 0x1F191, + 0x1F19B, + 0x1F1AD, + 0x1F1E6, + 0x1F201, + 0x1F210, + 0x1F21A, + 0x1F21B, + 0x1F22F, + 0x1F230, + 0x1F232, + 0x1F23B, + 0x1F23C, + 0x1F240, + 0x1F249, + 0x1F3FB, + 0x1F400, + 0x1F53E, + 0x1F546, + 0x1F650, + 0x1F680, + 0x1F700, + 0x1F774, + 0x1F780, + 0x1F7D5, + 0x1F800, + 0x1F80C, + 0x1F810, + 0x1F848, + 0x1F850, + 0x1F85A, + 0x1F860, + 0x1F888, + 0x1F890, + 0x1F8AE, + 0x1F900, + 0x1F90C, + 0x1F93B, + 0x1F93C, + 0x1F946, + 0x1F947, + 0x1FB00, + 0x1FC00, + 0x1FFFE +}; + +# endif /* EBCDIC 037 */ + +# if 'A' == 65 /* ASCII/Latin1 */ + +static const UV UNI_GCB__CN_invlist[] = { /* for ASCII/Latin1 */ + 38, /* Number of elements */ + 148565664, /* Version and data structure type */ + 0, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0xA, + 0xB, + 0xD, + 0xE, + 0x20, + 0x7F, + 0xA0, + 0xAD, + 0xAE, + 0x61C, + 0x61D, + 0x180E, + 0x180F, + 0x200B, + 0x200C, + 0x200E, + 0x2010, + 0x2028, + 0x202F, + 0x2060, + 0x2070, + 0xFEFF, + 0xFF00, + 0xFFF0, + 0xFFFC, + 0x13430, + 0x13439, + 0x1BCA0, + 0x1BCA4, + 0x1D173, + 0x1D17B, + 0xE0000, + 0xE0020, + 0xE0080, + 0xE0100, + 0xE01F0, + 0xE1000 +}; + +# endif /* ASCII/Latin1 */ + +# if 'A' == 193 /* EBCDIC 1047 */ \ + && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \ + && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \ + && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 + +static const UV UNI_GCB__CN_invlist[] = { /* for EBCDIC 1047 */ + 38, /* Number of elements */ + 148565664, /* Version and data structure type */ + 0, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0xD, + 0xE, + 0x15, + 0x16, + 0x40, + 0xCA, + 0xCB, + 0xFF, + 0x100, + 0x61C, + 0x61D, + 0x180E, + 0x180F, + 0x200B, + 0x200C, + 0x200E, + 0x2010, + 0x2028, + 0x202F, + 0x2060, + 0x2070, + 0xFEFF, + 0xFF00, + 0xFFF0, + 0xFFFC, + 0x13430, + 0x13439, + 0x1BCA0, + 0x1BCA4, + 0x1D173, + 0x1D17B, + 0xE0000, + 0xE0020, + 0xE0080, + 0xE0100, + 0xE01F0, + 0xE1000 +}; + +# endif /* EBCDIC 1047 */ + +# if 'A' == 193 /* EBCDIC 037 */ \ + && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \ + && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \ + && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 + +static const UV UNI_GCB__CN_invlist[] = { /* for EBCDIC 037 */ + 38, /* Number of elements */ + 148565664, /* Version and data structure type */ + 0, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0xD, + 0xE, + 0x25, + 0x26, + 0x40, + 0xCA, + 0xCB, + 0xFF, + 0x100, + 0x61C, + 0x61D, + 0x180E, + 0x180F, + 0x200B, + 0x200C, + 0x200E, + 0x2010, + 0x2028, + 0x202F, + 0x2060, + 0x2070, + 0xFEFF, + 0xFF00, + 0xFFF0, + 0xFFFC, + 0x13430, + 0x13439, + 0x1BCA0, + 0x1BCA4, + 0x1D173, + 0x1D17B, + 0xE0000, + 0xE0020, + 0xE0080, + 0xE0100, + 0xE01F0, + 0xE1000 +}; + +# endif /* EBCDIC 037 */ + +static const UV UNI_GCB__EX_invlist[] = { /* for all charsets */ + 691, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x300, + 0x370, + 0x483, + 0x48A, + 0x591, + 0x5BE, + 0x5BF, + 0x5C0, + 0x5C1, + 0x5C3, + 0x5C4, + 0x5C6, + 0x5C7, + 0x5C8, + 0x610, + 0x61B, + 0x64B, + 0x660, + 0x670, + 0x671, + 0x6D6, + 0x6DD, + 0x6DF, + 0x6E5, + 0x6E7, + 0x6E9, 0x6EA, 0x6EE, 0x711, @@ -239846,7 +244466,7 @@ static const UV UNI_GCB__EX_invlist[] = { /* for all charsets */ 0xB45, 0xB4D, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB62, 0xB64, @@ -239904,6 +244524,8 @@ static const UV UNI_GCB__EX_invlist[] = { /* for all charsets */ 0xD58, 0xD62, 0xD64, + 0xD81, + 0xD82, 0xDCA, 0xDCB, 0xDCF, @@ -240021,7 +244643,7 @@ static const UV UNI_GCB__EX_invlist[] = { /* for all charsets */ 0x1A7F, 0x1A80, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B04, 0x1B34, @@ -240098,6 +244720,8 @@ static const UV UNI_GCB__EX_invlist[] = { /* for all charsets */ 0xA80C, 0xA825, 0xA827, + 0xA82C, + 0xA82D, 0xA8C4, 0xA8C6, 0xA8E0, @@ -240178,6 +244802,8 @@ static const UV UNI_GCB__EX_invlist[] = { /* for all charsets */ 0x10AE7, 0x10D24, 0x10D28, + 0x10EAB, + 0x10EAD, 0x10F46, 0x10F51, 0x11001, @@ -240204,6 +244830,8 @@ static const UV UNI_GCB__EX_invlist[] = { /* for all charsets */ 0x111BF, 0x111C9, 0x111CD, + 0x111CF, + 0x111D0, 0x1122F, 0x11232, 0x11234, @@ -240284,6 +244912,14 @@ static const UV UNI_GCB__EX_invlist[] = { /* for all charsets */ 0x11838, 0x11839, 0x1183B, + 0x11930, + 0x11931, + 0x1193B, + 0x1193D, + 0x1193E, + 0x1193F, + 0x11943, + 0x11944, 0x119D4, 0x119D8, 0x119DA, @@ -240346,6 +244982,8 @@ static const UV UNI_GCB__EX_invlist[] = { /* for all charsets */ 0x16F50, 0x16F8F, 0x16F93, + 0x16FE4, + 0x16FE5, 0x1BC9D, 0x1BC9F, 0x1D165, @@ -240413,7 +245051,7 @@ static const UV UNI_GCB__L_invlist[] = { /* for all charsets */ }; static const UV UNI_GCB__PP_invlist[] = { /* for all charsets */ - 23, /* Number of elements */ + 27, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -240434,6 +245072,10 @@ static const UV UNI_GCB__PP_invlist[] = { /* for all charsets */ 0x110CE, 0x111C2, 0x111C4, + 0x1193F, + 0x11940, + 0x11941, + 0x11942, 0x11A3A, 0x11A3B, 0x11A84, @@ -240443,7 +245085,7 @@ static const UV UNI_GCB__PP_invlist[] = { /* for all charsets */ }; static const UV UNI_GCB__SM_invlist[] = { /* for all charsets */ - 305, /* Number of elements */ + 319, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -240654,6 +245296,8 @@ static const UV UNI_GCB__SM_invlist[] = { /* for all charsets */ 0x111B6, 0x111BF, 0x111C1, + 0x111CE, + 0x111CF, 0x1122C, 0x1122F, 0x11232, @@ -240716,6 +245360,16 @@ static const UV UNI_GCB__SM_invlist[] = { /* for all charsets */ 0x1182F, 0x11838, 0x11839, + 0x11931, + 0x11936, + 0x11937, + 0x11939, + 0x1193D, + 0x1193E, + 0x11940, + 0x11941, + 0x11942, + 0x11943, 0x119D1, 0x119D4, 0x119DC, @@ -240748,6 +245402,8 @@ static const UV UNI_GCB__SM_invlist[] = { /* for all charsets */ 0x11EF7, 0x16F51, 0x16F88, + 0x16FF0, + 0x16FF2, 0x1D166, 0x1D167, 0x1D16D, @@ -240781,7 +245437,7 @@ static const UV UNI_GCB__V_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_GCB__XX_invlist[] = { /* for ASCII/Latin1 */ - 604, /* Number of elements */ + 620, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -240911,7 +245567,7 @@ static const UV UNI_GCB__XX_invlist[] = { /* for ASCII/Latin1 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB62, 0xB64, @@ -240965,7 +245621,7 @@ static const UV UNI_GCB__XX_invlist[] = { /* for ASCII/Latin1 */ 0xD58, 0xD62, 0xD64, - 0xD82, + 0xD81, 0xD84, 0xDCA, 0xDCB, @@ -241066,7 +245722,7 @@ static const UV UNI_GCB__XX_invlist[] = { /* for ASCII/Latin1 */ 0x1A7F, 0x1A80, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B05, 0x1B34, @@ -241129,6 +245785,8 @@ static const UV UNI_GCB__XX_invlist[] = { /* for ASCII/Latin1 */ 0xA80C, 0xA823, 0xA828, + 0xA82C, + 0xA82D, 0xA880, 0xA882, 0xA8B4, @@ -241213,6 +245871,8 @@ static const UV UNI_GCB__XX_invlist[] = { /* for ASCII/Latin1 */ 0x10AE7, 0x10D24, 0x10D28, + 0x10EAB, + 0x10EAD, 0x10F46, 0x10F51, 0x11000, @@ -241243,6 +245903,8 @@ static const UV UNI_GCB__XX_invlist[] = { /* for ASCII/Latin1 */ 0x111C4, 0x111C9, 0x111CD, + 0x111CE, + 0x111D0, 0x1122C, 0x11238, 0x1123E, @@ -241287,6 +245949,12 @@ static const UV UNI_GCB__XX_invlist[] = { /* for ASCII/Latin1 */ 0x1172C, 0x1182C, 0x1183B, + 0x11930, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11944, 0x119D1, 0x119D8, 0x119DA, @@ -241339,6 +246007,10 @@ static const UV UNI_GCB__XX_invlist[] = { /* for ASCII/Latin1 */ 0x16F88, 0x16F8F, 0x16F93, + 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x1BC9D, 0x1BC9F, 0x1BCA0, @@ -241399,7 +246071,7 @@ static const UV UNI_GCB__XX_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 1047 */ - 604, /* Number of elements */ + 620, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -241529,7 +246201,7 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 1047 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB62, 0xB64, @@ -241583,7 +246255,7 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 1047 */ 0xD58, 0xD62, 0xD64, - 0xD82, + 0xD81, 0xD84, 0xDCA, 0xDCB, @@ -241684,7 +246356,7 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 1047 */ 0x1A7F, 0x1A80, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B05, 0x1B34, @@ -241747,6 +246419,8 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 1047 */ 0xA80C, 0xA823, 0xA828, + 0xA82C, + 0xA82D, 0xA880, 0xA882, 0xA8B4, @@ -241831,6 +246505,8 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 1047 */ 0x10AE7, 0x10D24, 0x10D28, + 0x10EAB, + 0x10EAD, 0x10F46, 0x10F51, 0x11000, @@ -241861,6 +246537,8 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 1047 */ 0x111C4, 0x111C9, 0x111CD, + 0x111CE, + 0x111D0, 0x1122C, 0x11238, 0x1123E, @@ -241905,6 +246583,12 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 1047 */ 0x1172C, 0x1182C, 0x1183B, + 0x11930, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11944, 0x119D1, 0x119D8, 0x119DA, @@ -241957,6 +246641,10 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 1047 */ 0x16F88, 0x16F8F, 0x16F93, + 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x1BC9D, 0x1BC9F, 0x1BCA0, @@ -242017,7 +246705,7 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 037 */ - 604, /* Number of elements */ + 620, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -242147,7 +246835,7 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 037 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB62, 0xB64, @@ -242201,7 +246889,7 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 037 */ 0xD58, 0xD62, 0xD64, - 0xD82, + 0xD81, 0xD84, 0xDCA, 0xDCB, @@ -242302,7 +246990,7 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 037 */ 0x1A7F, 0x1A80, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B05, 0x1B34, @@ -242365,6 +247053,8 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 037 */ 0xA80C, 0xA823, 0xA828, + 0xA82C, + 0xA82D, 0xA880, 0xA882, 0xA8B4, @@ -242449,6 +247139,8 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 037 */ 0x10AE7, 0x10D24, 0x10D28, + 0x10EAB, + 0x10EAD, 0x10F46, 0x10F51, 0x11000, @@ -242479,6 +247171,8 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 037 */ 0x111C4, 0x111C9, 0x111CD, + 0x111CE, + 0x111D0, 0x1122C, 0x11238, 0x1123E, @@ -242523,6 +247217,12 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 037 */ 0x1172C, 0x1182C, 0x1183B, + 0x11930, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11944, 0x119D1, 0x119D8, 0x119DA, @@ -242575,6 +247275,10 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 037 */ 0x16F88, 0x16F8F, 0x16F93, + 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x1BC9D, 0x1BC9F, 0x1BCA0, @@ -242650,13 +247354,11 @@ static const UV UNI_GEOMETRICSHAPESEXT_invlist[] = { /* for all charsets */ }; static const UV UNI_GEOR_invlist[] = { /* for all charsets */ - 21, /* Number of elements */ + 19, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ 0x0, - 0x589, - 0x58A, 0x10A0, 0x10C6, 0x10C7, @@ -242854,7 +247556,7 @@ static const UV UNI_GRAN_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */ - 1639, /* Number of elements */ + 1669, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -242946,7 +247648,7 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x903, 0x93A, 0x93B, @@ -243158,8 +247860,6 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */ 0xCF1, 0xCF3, 0xD02, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -243523,7 +248223,7 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */ 0x2B74, 0x2B76, 0x2B96, - 0x2B98, + 0x2B97, 0x2C2F, 0x2C30, 0x2C5F, @@ -243560,7 +248260,7 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */ 0x2DD8, 0x2DDF, 0x2E00, - 0x2E50, + 0x2E53, 0x2E80, 0x2E9A, 0x2E9B, @@ -243582,15 +248282,11 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */ 0x3131, 0x318F, 0x3190, - 0x31BB, - 0x31C0, 0x31E4, 0x31F0, 0x321F, 0x3220, - 0x4DB6, - 0x4DC0, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA490, @@ -243610,8 +248306,8 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */ 0xA700, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA802, 0xA803, 0xA806, @@ -243696,7 +248392,7 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */ 0xAB28, 0xAB2F, 0xAB30, - 0xAB68, + 0xAB6C, 0xAB70, 0xABE5, 0xABE6, @@ -243792,7 +248488,7 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */ 0x10137, 0x1018F, 0x10190, - 0x1019C, + 0x1019D, 0x101A0, 0x101A1, 0x101D0, @@ -243907,12 +248603,20 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */ 0x10D3A, 0x10E60, 0x10E7F, + 0x10E80, + 0x10EAA, + 0x10EAD, + 0x10EAE, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F28, 0x10F30, 0x10F46, 0x10F51, 0x10F5A, + 0x10FB0, + 0x10FCC, 0x10FE0, 0x10FF7, 0x11000, @@ -243940,7 +248644,7 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */ 0x1112C, 0x1112D, 0x11136, - 0x11147, + 0x11148, 0x11150, 0x11173, 0x11174, @@ -243950,7 +248654,7 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */ 0x111BF, 0x111C9, 0x111CD, - 0x111CE, + 0x111CF, 0x111D0, 0x111E0, 0x111E1, @@ -244016,13 +248720,11 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */ 0x11445, 0x11446, 0x11447, - 0x1145A, - 0x1145B, 0x1145C, 0x1145D, 0x1145E, 0x1145F, - 0x11460, + 0x11462, 0x11480, 0x114B0, 0x114B1, @@ -244090,7 +248792,27 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */ 0x118A0, 0x118F3, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11930, + 0x11931, + 0x11936, + 0x11937, + 0x11939, + 0x1193D, + 0x1193E, + 0x1193F, + 0x11943, + 0x11944, + 0x11947, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -244165,6 +248887,8 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */ 0x11EF3, 0x11EF5, 0x11EF9, + 0x11FB0, + 0x11FB1, 0x11FC0, 0x11FF2, 0x11FFF, @@ -244213,10 +248937,14 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */ 0x16FA0, 0x16FE0, 0x16FE4, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -244424,11 +249152,7 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */ 0x1F0D1, 0x1F0F6, 0x1F100, - 0x1F10D, - 0x1F110, - 0x1F16D, - 0x1F170, - 0x1F1AD, + 0x1F1AE, 0x1F1E6, 0x1F203, 0x1F210, @@ -244440,11 +249164,11 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */ 0x1F260, 0x1F266, 0x1F300, - 0x1F6D6, + 0x1F6D8, 0x1F6E0, 0x1F6ED, 0x1F6F0, - 0x1F6FB, + 0x1F6FD, 0x1F700, 0x1F774, 0x1F780, @@ -244461,32 +249185,38 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */ 0x1F888, 0x1F890, 0x1F8AE, + 0x1F8B0, + 0x1F8B2, 0x1F900, - 0x1F90C, - 0x1F90D, - 0x1F972, - 0x1F973, - 0x1F977, + 0x1F979, 0x1F97A, - 0x1F9A3, - 0x1F9A5, - 0x1F9AB, - 0x1F9AE, - 0x1F9CB, + 0x1F9CC, 0x1F9CD, 0x1FA54, 0x1FA60, 0x1FA6E, 0x1FA70, - 0x1FA74, + 0x1FA75, 0x1FA78, 0x1FA7B, 0x1FA80, - 0x1FA83, + 0x1FA87, 0x1FA90, - 0x1FA96, + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB, + 0x1FBF0, + 0x1FBFA, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -244496,7 +249226,9 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */ 0x2CEB0, 0x2EBE1, 0x2F800, - 0x2FA1E + 0x2FA1E, + 0x30000, + 0x3134B }; # endif /* ASCII/Latin1 */ @@ -244507,7 +249239,7 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */ - 1639, /* Number of elements */ + 1669, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -244599,7 +249331,7 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x903, 0x93A, 0x93B, @@ -244811,8 +249543,6 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */ 0xCF1, 0xCF3, 0xD02, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -245176,7 +249906,7 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */ 0x2B74, 0x2B76, 0x2B96, - 0x2B98, + 0x2B97, 0x2C2F, 0x2C30, 0x2C5F, @@ -245213,7 +249943,7 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */ 0x2DD8, 0x2DDF, 0x2E00, - 0x2E50, + 0x2E53, 0x2E80, 0x2E9A, 0x2E9B, @@ -245235,15 +249965,11 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */ 0x3131, 0x318F, 0x3190, - 0x31BB, - 0x31C0, 0x31E4, 0x31F0, 0x321F, 0x3220, - 0x4DB6, - 0x4DC0, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA490, @@ -245263,8 +249989,8 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */ 0xA700, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA802, 0xA803, 0xA806, @@ -245349,7 +250075,7 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */ 0xAB28, 0xAB2F, 0xAB30, - 0xAB68, + 0xAB6C, 0xAB70, 0xABE5, 0xABE6, @@ -245445,7 +250171,7 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */ 0x10137, 0x1018F, 0x10190, - 0x1019C, + 0x1019D, 0x101A0, 0x101A1, 0x101D0, @@ -245560,12 +250286,20 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */ 0x10D3A, 0x10E60, 0x10E7F, + 0x10E80, + 0x10EAA, + 0x10EAD, + 0x10EAE, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F28, 0x10F30, 0x10F46, 0x10F51, 0x10F5A, + 0x10FB0, + 0x10FCC, 0x10FE0, 0x10FF7, 0x11000, @@ -245593,7 +250327,7 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */ 0x1112C, 0x1112D, 0x11136, - 0x11147, + 0x11148, 0x11150, 0x11173, 0x11174, @@ -245603,7 +250337,7 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */ 0x111BF, 0x111C9, 0x111CD, - 0x111CE, + 0x111CF, 0x111D0, 0x111E0, 0x111E1, @@ -245669,13 +250403,11 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */ 0x11445, 0x11446, 0x11447, - 0x1145A, - 0x1145B, 0x1145C, 0x1145D, 0x1145E, 0x1145F, - 0x11460, + 0x11462, 0x11480, 0x114B0, 0x114B1, @@ -245743,7 +250475,27 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */ 0x118A0, 0x118F3, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11930, + 0x11931, + 0x11936, + 0x11937, + 0x11939, + 0x1193D, + 0x1193E, + 0x1193F, + 0x11943, + 0x11944, + 0x11947, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -245818,6 +250570,8 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */ 0x11EF3, 0x11EF5, 0x11EF9, + 0x11FB0, + 0x11FB1, 0x11FC0, 0x11FF2, 0x11FFF, @@ -245866,10 +250620,14 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */ 0x16FA0, 0x16FE0, 0x16FE4, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -246077,11 +250835,7 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */ 0x1F0D1, 0x1F0F6, 0x1F100, - 0x1F10D, - 0x1F110, - 0x1F16D, - 0x1F170, - 0x1F1AD, + 0x1F1AE, 0x1F1E6, 0x1F203, 0x1F210, @@ -246093,11 +250847,11 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */ 0x1F260, 0x1F266, 0x1F300, - 0x1F6D6, + 0x1F6D8, 0x1F6E0, 0x1F6ED, 0x1F6F0, - 0x1F6FB, + 0x1F6FD, 0x1F700, 0x1F774, 0x1F780, @@ -246114,32 +250868,38 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */ 0x1F888, 0x1F890, 0x1F8AE, + 0x1F8B0, + 0x1F8B2, 0x1F900, - 0x1F90C, - 0x1F90D, - 0x1F972, - 0x1F973, - 0x1F977, + 0x1F979, 0x1F97A, - 0x1F9A3, - 0x1F9A5, - 0x1F9AB, - 0x1F9AE, - 0x1F9CB, + 0x1F9CC, 0x1F9CD, 0x1FA54, 0x1FA60, 0x1FA6E, 0x1FA70, - 0x1FA74, + 0x1FA75, 0x1FA78, 0x1FA7B, 0x1FA80, - 0x1FA83, + 0x1FA87, 0x1FA90, - 0x1FA96, + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB, + 0x1FBF0, + 0x1FBFA, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -246149,7 +250909,9 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */ 0x2CEB0, 0x2EBE1, 0x2F800, - 0x2FA1E + 0x2FA1E, + 0x30000, + 0x3134B }; # endif /* EBCDIC 1047 */ @@ -246160,7 +250922,7 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */ - 1639, /* Number of elements */ + 1669, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -246252,7 +251014,7 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x903, 0x93A, 0x93B, @@ -246464,8 +251226,6 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */ 0xCF1, 0xCF3, 0xD02, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -246829,7 +251589,7 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */ 0x2B74, 0x2B76, 0x2B96, - 0x2B98, + 0x2B97, 0x2C2F, 0x2C30, 0x2C5F, @@ -246866,7 +251626,7 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */ 0x2DD8, 0x2DDF, 0x2E00, - 0x2E50, + 0x2E53, 0x2E80, 0x2E9A, 0x2E9B, @@ -246888,15 +251648,11 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */ 0x3131, 0x318F, 0x3190, - 0x31BB, - 0x31C0, 0x31E4, 0x31F0, 0x321F, 0x3220, - 0x4DB6, - 0x4DC0, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA490, @@ -246916,8 +251672,8 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */ 0xA700, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA802, 0xA803, 0xA806, @@ -247002,7 +251758,7 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */ 0xAB28, 0xAB2F, 0xAB30, - 0xAB68, + 0xAB6C, 0xAB70, 0xABE5, 0xABE6, @@ -247098,7 +251854,7 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */ 0x10137, 0x1018F, 0x10190, - 0x1019C, + 0x1019D, 0x101A0, 0x101A1, 0x101D0, @@ -247213,12 +251969,20 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */ 0x10D3A, 0x10E60, 0x10E7F, + 0x10E80, + 0x10EAA, + 0x10EAD, + 0x10EAE, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F28, 0x10F30, 0x10F46, 0x10F51, 0x10F5A, + 0x10FB0, + 0x10FCC, 0x10FE0, 0x10FF7, 0x11000, @@ -247246,7 +252010,7 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */ 0x1112C, 0x1112D, 0x11136, - 0x11147, + 0x11148, 0x11150, 0x11173, 0x11174, @@ -247256,7 +252020,7 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */ 0x111BF, 0x111C9, 0x111CD, - 0x111CE, + 0x111CF, 0x111D0, 0x111E0, 0x111E1, @@ -247322,13 +252086,11 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */ 0x11445, 0x11446, 0x11447, - 0x1145A, - 0x1145B, 0x1145C, 0x1145D, 0x1145E, 0x1145F, - 0x11460, + 0x11462, 0x11480, 0x114B0, 0x114B1, @@ -247396,7 +252158,27 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */ 0x118A0, 0x118F3, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11930, + 0x11931, + 0x11936, + 0x11937, + 0x11939, + 0x1193D, + 0x1193E, + 0x1193F, + 0x11943, + 0x11944, + 0x11947, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -247471,6 +252253,8 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */ 0x11EF3, 0x11EF5, 0x11EF9, + 0x11FB0, + 0x11FB1, 0x11FC0, 0x11FF2, 0x11FFF, @@ -247519,10 +252303,14 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */ 0x16FA0, 0x16FE0, 0x16FE4, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -247730,11 +252518,7 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */ 0x1F0D1, 0x1F0F6, 0x1F100, - 0x1F10D, - 0x1F110, - 0x1F16D, - 0x1F170, - 0x1F1AD, + 0x1F1AE, 0x1F1E6, 0x1F203, 0x1F210, @@ -247746,11 +252530,11 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */ 0x1F260, 0x1F266, 0x1F300, - 0x1F6D6, + 0x1F6D8, 0x1F6E0, 0x1F6ED, 0x1F6F0, - 0x1F6FB, + 0x1F6FD, 0x1F700, 0x1F774, 0x1F780, @@ -247767,32 +252551,38 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */ 0x1F888, 0x1F890, 0x1F8AE, + 0x1F8B0, + 0x1F8B2, 0x1F900, - 0x1F90C, - 0x1F90D, - 0x1F972, - 0x1F973, - 0x1F977, + 0x1F979, 0x1F97A, - 0x1F9A3, - 0x1F9A5, - 0x1F9AB, - 0x1F9AE, - 0x1F9CB, + 0x1F9CC, 0x1F9CD, 0x1FA54, 0x1FA60, 0x1FA6E, 0x1FA70, - 0x1FA74, + 0x1FA75, 0x1FA78, 0x1FA7B, 0x1FA80, - 0x1FA83, + 0x1FA87, 0x1FA90, - 0x1FA96, + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB, + 0x1FBF0, + 0x1FBFA, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -247802,7 +252592,9 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */ 0x2CEB0, 0x2EBE1, 0x2F800, - 0x2FA1E + 0x2FA1E, + 0x30000, + 0x3134B }; # endif /* EBCDIC 037 */ @@ -247902,7 +252694,7 @@ static const UV UNI_GREK_invlist[] = { /* for all charsets */ }; static const UV UNI_GREXT_invlist[] = { /* for all charsets */ - 671, /* Number of elements */ + 689, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -248027,7 +252819,7 @@ static const UV UNI_GREXT_invlist[] = { /* for all charsets */ 0xB45, 0xB4D, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB62, 0xB64, @@ -248085,6 +252877,8 @@ static const UV UNI_GREXT_invlist[] = { /* for all charsets */ 0xD58, 0xD62, 0xD64, + 0xD81, + 0xD82, 0xDCA, 0xDCB, 0xDCF, @@ -248202,7 +252996,7 @@ static const UV UNI_GREXT_invlist[] = { /* for all charsets */ 0x1A7F, 0x1A80, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B04, 0x1B34, @@ -248279,6 +253073,8 @@ static const UV UNI_GREXT_invlist[] = { /* for all charsets */ 0xA80C, 0xA825, 0xA827, + 0xA82C, + 0xA82D, 0xA8C4, 0xA8C6, 0xA8E0, @@ -248359,6 +253155,8 @@ static const UV UNI_GREXT_invlist[] = { /* for all charsets */ 0x10AE7, 0x10D24, 0x10D28, + 0x10EAB, + 0x10EAD, 0x10F46, 0x10F51, 0x11001, @@ -248385,6 +253183,8 @@ static const UV UNI_GREXT_invlist[] = { /* for all charsets */ 0x111BF, 0x111C9, 0x111CD, + 0x111CF, + 0x111D0, 0x1122F, 0x11232, 0x11234, @@ -248465,6 +253265,14 @@ static const UV UNI_GREXT_invlist[] = { /* for all charsets */ 0x11838, 0x11839, 0x1183B, + 0x11930, + 0x11931, + 0x1193B, + 0x1193D, + 0x1193E, + 0x1193F, + 0x11943, + 0x11944, 0x119D4, 0x119D8, 0x119DA, @@ -248527,6 +253335,8 @@ static const UV UNI_GREXT_invlist[] = { /* for all charsets */ 0x16F50, 0x16F8F, 0x16F93, + 0x16FE4, + 0x16FE5, 0x1BC9D, 0x1BC9F, 0x1D165, @@ -248688,7 +253498,7 @@ static const UV UNI_HALFMARKS_invlist[] = { /* for all charsets */ }; static const UV UNI_HAN_invlist[] = { /* for all charsets */ - 67, /* Number of elements */ + 73, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -248732,9 +253542,11 @@ static const UV UNI_HAN_invlist[] = { /* for all charsets */ 0x33E0, 0x33FF, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, + 0xA700, + 0xA708, 0xF900, 0xFA6E, 0xFA70, @@ -248743,12 +253555,14 @@ static const UV UNI_HAN_invlist[] = { /* for all charsets */ 0xFE47, 0xFF61, 0xFF66, + 0x16FF0, + 0x16FF2, 0x1D360, 0x1D372, 0x1F250, 0x1F252, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -248758,7 +253572,9 @@ static const UV UNI_HAN_invlist[] = { /* for all charsets */ 0x2CEB0, 0x2EBE1, 0x2F800, - 0x2FA1E + 0x2FA1E, + 0x30000, + 0x3134B }; static const UV UNI_HANG_invlist[] = { /* for all charsets */ @@ -249102,7 +253918,7 @@ static const UV UNI_HYPHEN_invlist[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */ - 1427, /* Number of elements */ + 1461, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -249212,7 +254028,7 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x8E2, 0x8E3, @@ -249331,7 +254147,7 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -249424,8 +254240,6 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */ 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -249443,7 +254257,7 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */ 0xD70, 0xD7A, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -249645,6 +254459,8 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */ 0x1AA8, 0x1AB0, 0x1ABE, + 0x1ABF, + 0x1AC1, 0x1B00, 0x1B4C, 0x1B50, @@ -249810,13 +254626,13 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA4D0, @@ -249838,9 +254654,11 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */ 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA828, + 0xA82C, + 0xA82D, 0xA840, 0xA874, 0xA880, @@ -249892,7 +254710,7 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */ 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB6A, 0xAB70, 0xABEB, 0xABEC, @@ -250089,12 +254907,20 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */ 0x10D28, 0x10D30, 0x10D3A, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAD, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, 0x10F28, 0x10F30, 0x10F51, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11000, @@ -250112,7 +254938,7 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */ 0x11136, 0x11140, 0x11144, - 0x11147, + 0x11148, 0x11150, 0x11174, 0x11176, @@ -250121,7 +254947,7 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */ 0x111C5, 0x111C9, 0x111CD, - 0x111D0, + 0x111CE, 0x111DB, 0x111DC, 0x111DD, @@ -250180,7 +255006,7 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */ 0x11450, 0x1145A, 0x1145E, - 0x11460, + 0x11462, 0x11480, 0x114C6, 0x114C7, @@ -250214,7 +255040,21 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */ 0x118A0, 0x118EA, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11944, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -250275,6 +255115,8 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */ 0x11DAA, 0x11EE0, 0x11EF7, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12400, @@ -250316,11 +255158,15 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */ 0x16FE0, 0x16FE2, 0x16FE3, - 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -250519,8 +255365,10 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */ 0x1EEAA, 0x1EEAB, 0x1EEBC, + 0x1FBF0, + 0x1FBFA, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -250531,6 +255379,8 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */ 0x2EBE1, 0x2F800, 0x2FA1E, + 0x30000, + 0x3134B, 0xE0100, 0xE01F0 }; @@ -250543,7 +255393,7 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */ - 1451, /* Number of elements */ + 1485, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -250600,91 +255450,18274 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */ 0x2E5, 0x2EC, 0x2ED, - 0x2EE, - 0x2EF, + 0x2EE, + 0x2EF, + 0x300, + 0x375, + 0x376, + 0x378, + 0x37A, + 0x37E, + 0x37F, + 0x380, + 0x386, + 0x38B, + 0x38C, + 0x38D, + 0x38E, + 0x3A2, + 0x3A3, + 0x3F6, + 0x3F7, + 0x482, + 0x483, + 0x488, + 0x48A, + 0x530, + 0x531, + 0x557, + 0x559, + 0x55A, + 0x560, + 0x589, + 0x591, + 0x5BE, + 0x5BF, + 0x5C0, + 0x5C1, + 0x5C3, + 0x5C4, + 0x5C6, + 0x5C7, + 0x5C8, + 0x5D0, + 0x5EB, + 0x5EF, + 0x5F3, + 0x610, + 0x61B, + 0x620, + 0x66A, + 0x66E, + 0x6D4, + 0x6D5, + 0x6DD, + 0x6DF, + 0x6E9, + 0x6EA, + 0x6FD, + 0x6FF, + 0x700, + 0x710, + 0x74B, + 0x74D, + 0x7B2, + 0x7C0, + 0x7F6, + 0x7FA, + 0x7FB, + 0x7FD, + 0x7FE, + 0x800, + 0x82E, + 0x840, + 0x85C, + 0x860, + 0x86B, + 0x8A0, + 0x8B5, + 0x8B6, + 0x8C8, + 0x8D3, + 0x8E2, + 0x8E3, + 0x964, + 0x966, + 0x970, + 0x971, + 0x984, + 0x985, + 0x98D, + 0x98F, + 0x991, + 0x993, + 0x9A9, + 0x9AA, + 0x9B1, + 0x9B2, + 0x9B3, + 0x9B6, + 0x9BA, + 0x9BC, + 0x9C5, + 0x9C7, + 0x9C9, + 0x9CB, + 0x9CF, + 0x9D7, + 0x9D8, + 0x9DC, + 0x9DE, + 0x9DF, + 0x9E4, + 0x9E6, + 0x9F2, + 0x9FC, + 0x9FD, + 0x9FE, + 0x9FF, + 0xA01, + 0xA04, + 0xA05, + 0xA0B, + 0xA0F, + 0xA11, + 0xA13, + 0xA29, + 0xA2A, + 0xA31, + 0xA32, + 0xA34, + 0xA35, + 0xA37, + 0xA38, + 0xA3A, + 0xA3C, + 0xA3D, + 0xA3E, + 0xA43, + 0xA47, + 0xA49, + 0xA4B, + 0xA4E, + 0xA51, + 0xA52, + 0xA59, + 0xA5D, + 0xA5E, + 0xA5F, + 0xA66, + 0xA76, + 0xA81, + 0xA84, + 0xA85, + 0xA8E, + 0xA8F, + 0xA92, + 0xA93, + 0xAA9, + 0xAAA, + 0xAB1, + 0xAB2, + 0xAB4, + 0xAB5, + 0xABA, + 0xABC, + 0xAC6, + 0xAC7, + 0xACA, + 0xACB, + 0xACE, + 0xAD0, + 0xAD1, + 0xAE0, + 0xAE4, + 0xAE6, + 0xAF0, + 0xAF9, + 0xB00, + 0xB01, + 0xB04, + 0xB05, + 0xB0D, + 0xB0F, + 0xB11, + 0xB13, + 0xB29, + 0xB2A, + 0xB31, + 0xB32, + 0xB34, + 0xB35, + 0xB3A, + 0xB3C, + 0xB45, + 0xB47, + 0xB49, + 0xB4B, + 0xB4E, + 0xB55, + 0xB58, + 0xB5C, + 0xB5E, + 0xB5F, + 0xB64, + 0xB66, + 0xB70, + 0xB71, + 0xB72, + 0xB82, + 0xB84, + 0xB85, + 0xB8B, + 0xB8E, + 0xB91, + 0xB92, + 0xB96, + 0xB99, + 0xB9B, + 0xB9C, + 0xB9D, + 0xB9E, + 0xBA0, + 0xBA3, + 0xBA5, + 0xBA8, + 0xBAB, + 0xBAE, + 0xBBA, + 0xBBE, + 0xBC3, + 0xBC6, + 0xBC9, + 0xBCA, + 0xBCE, + 0xBD0, + 0xBD1, + 0xBD7, + 0xBD8, + 0xBE6, + 0xBF0, + 0xC00, + 0xC0D, + 0xC0E, + 0xC11, + 0xC12, + 0xC29, + 0xC2A, + 0xC3A, + 0xC3D, + 0xC45, + 0xC46, + 0xC49, + 0xC4A, + 0xC4E, + 0xC55, + 0xC57, + 0xC58, + 0xC5B, + 0xC60, + 0xC64, + 0xC66, + 0xC70, + 0xC80, + 0xC84, + 0xC85, + 0xC8D, + 0xC8E, + 0xC91, + 0xC92, + 0xCA9, + 0xCAA, + 0xCB4, + 0xCB5, + 0xCBA, + 0xCBC, + 0xCC5, + 0xCC6, + 0xCC9, + 0xCCA, + 0xCCE, + 0xCD5, + 0xCD7, + 0xCDE, + 0xCDF, + 0xCE0, + 0xCE4, + 0xCE6, + 0xCF0, + 0xCF1, + 0xCF3, + 0xD00, + 0xD0D, + 0xD0E, + 0xD11, + 0xD12, + 0xD45, + 0xD46, + 0xD49, + 0xD4A, + 0xD4F, + 0xD54, + 0xD58, + 0xD5F, + 0xD64, + 0xD66, + 0xD70, + 0xD7A, + 0xD80, + 0xD81, + 0xD84, + 0xD85, + 0xD97, + 0xD9A, + 0xDB2, + 0xDB3, + 0xDBC, + 0xDBD, + 0xDBE, + 0xDC0, + 0xDC7, + 0xDCA, + 0xDCB, + 0xDCF, + 0xDD5, + 0xDD6, + 0xDD7, + 0xDD8, + 0xDE0, + 0xDE6, + 0xDF0, + 0xDF2, + 0xDF4, + 0xE01, + 0xE3B, + 0xE40, + 0xE4F, + 0xE50, + 0xE5A, + 0xE81, + 0xE83, + 0xE84, + 0xE85, + 0xE86, + 0xE8B, + 0xE8C, + 0xEA4, + 0xEA5, + 0xEA6, + 0xEA7, + 0xEBE, + 0xEC0, + 0xEC5, + 0xEC6, + 0xEC7, + 0xEC8, + 0xECE, + 0xED0, + 0xEDA, + 0xEDC, + 0xEE0, + 0xF00, + 0xF01, + 0xF18, + 0xF1A, + 0xF20, + 0xF2A, + 0xF35, + 0xF36, + 0xF37, + 0xF38, + 0xF39, + 0xF3A, + 0xF3E, + 0xF48, + 0xF49, + 0xF6D, + 0xF71, + 0xF85, + 0xF86, + 0xF98, + 0xF99, + 0xFBD, + 0xFC6, + 0xFC7, + 0x1000, + 0x104A, + 0x1050, + 0x109E, + 0x10A0, + 0x10C6, + 0x10C7, + 0x10C8, + 0x10CD, + 0x10CE, + 0x10D0, + 0x10FB, + 0x10FC, + 0x1249, + 0x124A, + 0x124E, + 0x1250, + 0x1257, + 0x1258, + 0x1259, + 0x125A, + 0x125E, + 0x1260, + 0x1289, + 0x128A, + 0x128E, + 0x1290, + 0x12B1, + 0x12B2, + 0x12B6, + 0x12B8, + 0x12BF, + 0x12C0, + 0x12C1, + 0x12C2, + 0x12C6, + 0x12C8, + 0x12D7, + 0x12D8, + 0x1311, + 0x1312, + 0x1316, + 0x1318, + 0x135B, + 0x135D, + 0x1360, + 0x1369, + 0x1372, + 0x1380, + 0x1390, + 0x13A0, + 0x13F6, + 0x13F8, + 0x13FE, + 0x1401, + 0x166D, + 0x166F, + 0x1680, + 0x1681, + 0x169B, + 0x16A0, + 0x16EB, + 0x16EE, + 0x16F9, + 0x1700, + 0x170D, + 0x170E, + 0x1715, + 0x1720, + 0x1735, + 0x1740, + 0x1754, + 0x1760, + 0x176D, + 0x176E, + 0x1771, + 0x1772, + 0x1774, + 0x1780, + 0x17D4, + 0x17D7, + 0x17D8, + 0x17DC, + 0x17DE, + 0x17E0, + 0x17EA, + 0x180B, + 0x180E, + 0x1810, + 0x181A, + 0x1820, + 0x1879, + 0x1880, + 0x18AB, + 0x18B0, + 0x18F6, + 0x1900, + 0x191F, + 0x1920, + 0x192C, + 0x1930, + 0x193C, + 0x1946, + 0x196E, + 0x1970, + 0x1975, + 0x1980, + 0x19AC, + 0x19B0, + 0x19CA, + 0x19D0, + 0x19DB, + 0x1A00, + 0x1A1C, + 0x1A20, + 0x1A5F, + 0x1A60, + 0x1A7D, + 0x1A7F, + 0x1A8A, + 0x1A90, + 0x1A9A, + 0x1AA7, + 0x1AA8, + 0x1AB0, + 0x1ABE, + 0x1ABF, + 0x1AC1, + 0x1B00, + 0x1B4C, + 0x1B50, + 0x1B5A, + 0x1B6B, + 0x1B74, + 0x1B80, + 0x1BF4, + 0x1C00, + 0x1C38, + 0x1C40, + 0x1C4A, + 0x1C4D, + 0x1C7E, + 0x1C80, + 0x1C89, + 0x1C90, + 0x1CBB, + 0x1CBD, + 0x1CC0, + 0x1CD0, + 0x1CD3, + 0x1CD4, + 0x1CFB, + 0x1D00, + 0x1DFA, + 0x1DFB, + 0x1F16, + 0x1F18, + 0x1F1E, + 0x1F20, + 0x1F46, + 0x1F48, + 0x1F4E, + 0x1F50, + 0x1F58, + 0x1F59, + 0x1F5A, + 0x1F5B, + 0x1F5C, + 0x1F5D, + 0x1F5E, + 0x1F5F, + 0x1F7E, + 0x1F80, + 0x1FB5, + 0x1FB6, + 0x1FBD, + 0x1FBE, + 0x1FBF, + 0x1FC2, + 0x1FC5, + 0x1FC6, + 0x1FCD, + 0x1FD0, + 0x1FD4, + 0x1FD6, + 0x1FDC, + 0x1FE0, + 0x1FED, + 0x1FF2, + 0x1FF5, + 0x1FF6, + 0x1FFD, + 0x203F, + 0x2041, + 0x2054, + 0x2055, + 0x2071, + 0x2072, + 0x207F, + 0x2080, + 0x2090, + 0x209D, + 0x20D0, + 0x20DD, + 0x20E1, + 0x20E2, + 0x20E5, + 0x20F1, + 0x2102, + 0x2103, + 0x2107, + 0x2108, + 0x210A, + 0x2114, + 0x2115, + 0x2116, + 0x2118, + 0x211E, + 0x2124, + 0x2125, + 0x2126, + 0x2127, + 0x2128, + 0x2129, + 0x212A, + 0x213A, + 0x213C, + 0x2140, + 0x2145, + 0x214A, + 0x214E, + 0x214F, + 0x2160, + 0x2189, + 0x2C00, + 0x2C2F, + 0x2C30, + 0x2C5F, + 0x2C60, + 0x2CE5, + 0x2CEB, + 0x2CF4, + 0x2D00, + 0x2D26, + 0x2D27, + 0x2D28, + 0x2D2D, + 0x2D2E, + 0x2D30, + 0x2D68, + 0x2D6F, + 0x2D70, + 0x2D7F, + 0x2D97, + 0x2DA0, + 0x2DA7, + 0x2DA8, + 0x2DAF, + 0x2DB0, + 0x2DB7, + 0x2DB8, + 0x2DBF, + 0x2DC0, + 0x2DC7, + 0x2DC8, + 0x2DCF, + 0x2DD0, + 0x2DD7, + 0x2DD8, + 0x2DDF, + 0x2DE0, + 0x2E00, + 0x3005, + 0x3008, + 0x3021, + 0x3030, + 0x3031, + 0x3036, + 0x3038, + 0x303D, + 0x3041, + 0x3097, + 0x3099, + 0x30A0, + 0x30A1, + 0x30FB, + 0x30FC, + 0x3100, + 0x3105, + 0x3130, + 0x3131, + 0x318F, + 0x31A0, + 0x31C0, + 0x31F0, + 0x3200, + 0x3400, + 0x4DC0, + 0x4E00, + 0x9FFD, + 0xA000, + 0xA48D, + 0xA4D0, + 0xA4FE, + 0xA500, + 0xA60D, + 0xA610, + 0xA62C, + 0xA640, + 0xA670, + 0xA674, + 0xA67E, + 0xA67F, + 0xA6F2, + 0xA717, + 0xA720, + 0xA722, + 0xA789, + 0xA78B, + 0xA7C0, + 0xA7C2, + 0xA7CB, + 0xA7F5, + 0xA828, + 0xA82C, + 0xA82D, + 0xA840, + 0xA874, + 0xA880, + 0xA8C6, + 0xA8D0, + 0xA8DA, + 0xA8E0, + 0xA8F8, + 0xA8FB, + 0xA8FC, + 0xA8FD, + 0xA92E, + 0xA930, + 0xA954, + 0xA960, + 0xA97D, + 0xA980, + 0xA9C1, + 0xA9CF, + 0xA9DA, + 0xA9E0, + 0xA9FF, + 0xAA00, + 0xAA37, + 0xAA40, + 0xAA4E, + 0xAA50, + 0xAA5A, + 0xAA60, + 0xAA77, + 0xAA7A, + 0xAAC3, + 0xAADB, + 0xAADE, + 0xAAE0, + 0xAAF0, + 0xAAF2, + 0xAAF7, + 0xAB01, + 0xAB07, + 0xAB09, + 0xAB0F, + 0xAB11, + 0xAB17, + 0xAB20, + 0xAB27, + 0xAB28, + 0xAB2F, + 0xAB30, + 0xAB5B, + 0xAB5C, + 0xAB6A, + 0xAB70, + 0xABEB, + 0xABEC, + 0xABEE, + 0xABF0, + 0xABFA, + 0xAC00, + 0xD7A4, + 0xD7B0, + 0xD7C7, + 0xD7CB, + 0xD7FC, + 0xF900, + 0xFA6E, + 0xFA70, + 0xFADA, + 0xFB00, + 0xFB07, + 0xFB13, + 0xFB18, + 0xFB1D, + 0xFB29, + 0xFB2A, + 0xFB37, + 0xFB38, + 0xFB3D, + 0xFB3E, + 0xFB3F, + 0xFB40, + 0xFB42, + 0xFB43, + 0xFB45, + 0xFB46, + 0xFBB2, + 0xFBD3, + 0xFD3E, + 0xFD50, + 0xFD90, + 0xFD92, + 0xFDC8, + 0xFDF0, + 0xFDFC, + 0xFE00, + 0xFE10, + 0xFE20, + 0xFE30, + 0xFE33, + 0xFE35, + 0xFE4D, + 0xFE50, + 0xFE70, + 0xFE75, + 0xFE76, + 0xFEFD, + 0xFF10, + 0xFF1A, + 0xFF21, + 0xFF3B, + 0xFF3F, + 0xFF40, + 0xFF41, + 0xFF5B, + 0xFF66, + 0xFFBF, + 0xFFC2, + 0xFFC8, + 0xFFCA, + 0xFFD0, + 0xFFD2, + 0xFFD8, + 0xFFDA, + 0xFFDD, + 0x10000, + 0x1000C, + 0x1000D, + 0x10027, + 0x10028, + 0x1003B, + 0x1003C, + 0x1003E, + 0x1003F, + 0x1004E, + 0x10050, + 0x1005E, + 0x10080, + 0x100FB, + 0x10140, + 0x10175, + 0x101FD, + 0x101FE, + 0x10280, + 0x1029D, + 0x102A0, + 0x102D1, + 0x102E0, + 0x102E1, + 0x10300, + 0x10320, + 0x1032D, + 0x1034B, + 0x10350, + 0x1037B, + 0x10380, + 0x1039E, + 0x103A0, + 0x103C4, + 0x103C8, + 0x103D0, + 0x103D1, + 0x103D6, + 0x10400, + 0x1049E, + 0x104A0, + 0x104AA, + 0x104B0, + 0x104D4, + 0x104D8, + 0x104FC, + 0x10500, + 0x10528, + 0x10530, + 0x10564, + 0x10600, + 0x10737, + 0x10740, + 0x10756, + 0x10760, + 0x10768, + 0x10800, + 0x10806, + 0x10808, + 0x10809, + 0x1080A, + 0x10836, + 0x10837, + 0x10839, + 0x1083C, + 0x1083D, + 0x1083F, + 0x10856, + 0x10860, + 0x10877, + 0x10880, + 0x1089F, + 0x108E0, + 0x108F3, + 0x108F4, + 0x108F6, + 0x10900, + 0x10916, + 0x10920, + 0x1093A, + 0x10980, + 0x109B8, + 0x109BE, + 0x109C0, + 0x10A00, + 0x10A04, + 0x10A05, + 0x10A07, + 0x10A0C, + 0x10A14, + 0x10A15, + 0x10A18, + 0x10A19, + 0x10A36, + 0x10A38, + 0x10A3B, + 0x10A3F, + 0x10A40, + 0x10A60, + 0x10A7D, + 0x10A80, + 0x10A9D, + 0x10AC0, + 0x10AC8, + 0x10AC9, + 0x10AE7, + 0x10B00, + 0x10B36, + 0x10B40, + 0x10B56, + 0x10B60, + 0x10B73, + 0x10B80, + 0x10B92, + 0x10C00, + 0x10C49, + 0x10C80, + 0x10CB3, + 0x10CC0, + 0x10CF3, + 0x10D00, + 0x10D28, + 0x10D30, + 0x10D3A, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAD, + 0x10EB0, + 0x10EB2, + 0x10F00, + 0x10F1D, + 0x10F27, + 0x10F28, + 0x10F30, + 0x10F51, + 0x10FB0, + 0x10FC5, + 0x10FE0, + 0x10FF7, + 0x11000, + 0x11047, + 0x11066, + 0x11070, + 0x1107F, + 0x110BB, + 0x110D0, + 0x110E9, + 0x110F0, + 0x110FA, + 0x11100, + 0x11135, + 0x11136, + 0x11140, + 0x11144, + 0x11148, + 0x11150, + 0x11174, + 0x11176, + 0x11177, + 0x11180, + 0x111C5, + 0x111C9, + 0x111CD, + 0x111CE, + 0x111DB, + 0x111DC, + 0x111DD, + 0x11200, + 0x11212, + 0x11213, + 0x11238, + 0x1123E, + 0x1123F, + 0x11280, + 0x11287, + 0x11288, + 0x11289, + 0x1128A, + 0x1128E, + 0x1128F, + 0x1129E, + 0x1129F, + 0x112A9, + 0x112B0, + 0x112EB, + 0x112F0, + 0x112FA, + 0x11300, + 0x11304, + 0x11305, + 0x1130D, + 0x1130F, + 0x11311, + 0x11313, + 0x11329, + 0x1132A, + 0x11331, + 0x11332, + 0x11334, + 0x11335, + 0x1133A, + 0x1133B, + 0x11345, + 0x11347, + 0x11349, + 0x1134B, + 0x1134E, + 0x11350, + 0x11351, + 0x11357, + 0x11358, + 0x1135D, + 0x11364, + 0x11366, + 0x1136D, + 0x11370, + 0x11375, + 0x11400, + 0x1144B, + 0x11450, + 0x1145A, + 0x1145E, + 0x11462, + 0x11480, + 0x114C6, + 0x114C7, + 0x114C8, + 0x114D0, + 0x114DA, + 0x11580, + 0x115B6, + 0x115B8, + 0x115C1, + 0x115D8, + 0x115DE, + 0x11600, + 0x11641, + 0x11644, + 0x11645, + 0x11650, + 0x1165A, + 0x11680, + 0x116B9, + 0x116C0, + 0x116CA, + 0x11700, + 0x1171B, + 0x1171D, + 0x1172C, + 0x11730, + 0x1173A, + 0x11800, + 0x1183B, + 0x118A0, + 0x118EA, + 0x118FF, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11944, + 0x11950, + 0x1195A, + 0x119A0, + 0x119A8, + 0x119AA, + 0x119D8, + 0x119DA, + 0x119E2, + 0x119E3, + 0x119E5, + 0x11A00, + 0x11A3F, + 0x11A47, + 0x11A48, + 0x11A50, + 0x11A9A, + 0x11A9D, + 0x11A9E, + 0x11AC0, + 0x11AF9, + 0x11C00, + 0x11C09, + 0x11C0A, + 0x11C37, + 0x11C38, + 0x11C41, + 0x11C50, + 0x11C5A, + 0x11C72, + 0x11C90, + 0x11C92, + 0x11CA8, + 0x11CA9, + 0x11CB7, + 0x11D00, + 0x11D07, + 0x11D08, + 0x11D0A, + 0x11D0B, + 0x11D37, + 0x11D3A, + 0x11D3B, + 0x11D3C, + 0x11D3E, + 0x11D3F, + 0x11D48, + 0x11D50, + 0x11D5A, + 0x11D60, + 0x11D66, + 0x11D67, + 0x11D69, + 0x11D6A, + 0x11D8F, + 0x11D90, + 0x11D92, + 0x11D93, + 0x11D99, + 0x11DA0, + 0x11DAA, + 0x11EE0, + 0x11EF7, + 0x11FB0, + 0x11FB1, + 0x12000, + 0x1239A, + 0x12400, + 0x1246F, + 0x12480, + 0x12544, + 0x13000, + 0x1342F, + 0x14400, + 0x14647, + 0x16800, + 0x16A39, + 0x16A40, + 0x16A5F, + 0x16A60, + 0x16A6A, + 0x16AD0, + 0x16AEE, + 0x16AF0, + 0x16AF5, + 0x16B00, + 0x16B37, + 0x16B40, + 0x16B44, + 0x16B50, + 0x16B5A, + 0x16B63, + 0x16B78, + 0x16B7D, + 0x16B90, + 0x16E40, + 0x16E80, + 0x16F00, + 0x16F4B, + 0x16F4F, + 0x16F88, + 0x16F8F, + 0x16FA0, + 0x16FE0, + 0x16FE2, + 0x16FE3, + 0x16FE5, + 0x16FF0, + 0x16FF2, + 0x17000, + 0x187F8, + 0x18800, + 0x18CD6, + 0x18D00, + 0x18D09, + 0x1B000, + 0x1B11F, + 0x1B150, + 0x1B153, + 0x1B164, + 0x1B168, + 0x1B170, + 0x1B2FC, + 0x1BC00, + 0x1BC6B, + 0x1BC70, + 0x1BC7D, + 0x1BC80, + 0x1BC89, + 0x1BC90, + 0x1BC9A, + 0x1BC9D, + 0x1BC9F, + 0x1D165, + 0x1D16A, + 0x1D16D, + 0x1D173, + 0x1D17B, + 0x1D183, + 0x1D185, + 0x1D18C, + 0x1D1AA, + 0x1D1AE, + 0x1D242, + 0x1D245, + 0x1D400, + 0x1D455, + 0x1D456, + 0x1D49D, + 0x1D49E, + 0x1D4A0, + 0x1D4A2, + 0x1D4A3, + 0x1D4A5, + 0x1D4A7, + 0x1D4A9, + 0x1D4AD, + 0x1D4AE, + 0x1D4BA, + 0x1D4BB, + 0x1D4BC, + 0x1D4BD, + 0x1D4C4, + 0x1D4C5, + 0x1D506, + 0x1D507, + 0x1D50B, + 0x1D50D, + 0x1D515, + 0x1D516, + 0x1D51D, + 0x1D51E, + 0x1D53A, + 0x1D53B, + 0x1D53F, + 0x1D540, + 0x1D545, + 0x1D546, + 0x1D547, + 0x1D54A, + 0x1D551, + 0x1D552, + 0x1D6A6, + 0x1D6A8, + 0x1D6C1, + 0x1D6C2, + 0x1D6DB, + 0x1D6DC, + 0x1D6FB, + 0x1D6FC, + 0x1D715, + 0x1D716, + 0x1D735, + 0x1D736, + 0x1D74F, + 0x1D750, + 0x1D76F, + 0x1D770, + 0x1D789, + 0x1D78A, + 0x1D7A9, + 0x1D7AA, + 0x1D7C3, + 0x1D7C4, + 0x1D7CC, + 0x1D7CE, + 0x1D800, + 0x1DA00, + 0x1DA37, + 0x1DA3B, + 0x1DA6D, + 0x1DA75, + 0x1DA76, + 0x1DA84, + 0x1DA85, + 0x1DA9B, + 0x1DAA0, + 0x1DAA1, + 0x1DAB0, + 0x1E000, + 0x1E007, + 0x1E008, + 0x1E019, + 0x1E01B, + 0x1E022, + 0x1E023, + 0x1E025, + 0x1E026, + 0x1E02B, + 0x1E100, + 0x1E12D, + 0x1E130, + 0x1E13E, + 0x1E140, + 0x1E14A, + 0x1E14E, + 0x1E14F, + 0x1E2C0, + 0x1E2FA, + 0x1E800, + 0x1E8C5, + 0x1E8D0, + 0x1E8D7, + 0x1E900, + 0x1E94C, + 0x1E950, + 0x1E95A, + 0x1EE00, + 0x1EE04, + 0x1EE05, + 0x1EE20, + 0x1EE21, + 0x1EE23, + 0x1EE24, + 0x1EE25, + 0x1EE27, + 0x1EE28, + 0x1EE29, + 0x1EE33, + 0x1EE34, + 0x1EE38, + 0x1EE39, + 0x1EE3A, + 0x1EE3B, + 0x1EE3C, + 0x1EE42, + 0x1EE43, + 0x1EE47, + 0x1EE48, + 0x1EE49, + 0x1EE4A, + 0x1EE4B, + 0x1EE4C, + 0x1EE4D, + 0x1EE50, + 0x1EE51, + 0x1EE53, + 0x1EE54, + 0x1EE55, + 0x1EE57, + 0x1EE58, + 0x1EE59, + 0x1EE5A, + 0x1EE5B, + 0x1EE5C, + 0x1EE5D, + 0x1EE5E, + 0x1EE5F, + 0x1EE60, + 0x1EE61, + 0x1EE63, + 0x1EE64, + 0x1EE65, + 0x1EE67, + 0x1EE6B, + 0x1EE6C, + 0x1EE73, + 0x1EE74, + 0x1EE78, + 0x1EE79, + 0x1EE7D, + 0x1EE7E, + 0x1EE7F, + 0x1EE80, + 0x1EE8A, + 0x1EE8B, + 0x1EE9C, + 0x1EEA1, + 0x1EEA4, + 0x1EEA5, + 0x1EEAA, + 0x1EEAB, + 0x1EEBC, + 0x1FBF0, + 0x1FBFA, + 0x20000, + 0x2A6DE, + 0x2A700, + 0x2B735, + 0x2B740, + 0x2B81E, + 0x2B820, + 0x2CEA2, + 0x2CEB0, + 0x2EBE1, + 0x2F800, + 0x2FA1E, + 0x30000, + 0x3134B, + 0xE0100, + 0xE01F0 +}; + +# endif /* EBCDIC 1047 */ + +# if 'A' == 193 /* EBCDIC 037 */ \ + && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \ + && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \ + && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 + +static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */ + 1481, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x42, + 0x4A, + 0x51, + 0x5A, + 0x62, + 0x6A, + 0x6D, + 0x6E, + 0x70, + 0x79, + 0x80, + 0x8A, + 0x8C, + 0x8F, + 0x91, + 0x9D, + 0x9E, + 0x9F, + 0xA0, + 0xA1, + 0xA2, + 0xAA, + 0xAC, + 0xAF, + 0xB3, + 0xB4, + 0xC1, + 0xCA, + 0xCB, + 0xD0, + 0xD1, + 0xDA, + 0xDB, + 0xE0, + 0xE2, + 0xEA, + 0xEB, + 0xFA, + 0xFB, + 0xFF, + 0x100, + 0x2C2, + 0x2C6, + 0x2D2, + 0x2E0, + 0x2E5, + 0x2EC, + 0x2ED, + 0x2EE, + 0x2EF, + 0x300, + 0x375, + 0x376, + 0x378, + 0x37A, + 0x37E, + 0x37F, + 0x380, + 0x386, + 0x38B, + 0x38C, + 0x38D, + 0x38E, + 0x3A2, + 0x3A3, + 0x3F6, + 0x3F7, + 0x482, + 0x483, + 0x488, + 0x48A, + 0x530, + 0x531, + 0x557, + 0x559, + 0x55A, + 0x560, + 0x589, + 0x591, + 0x5BE, + 0x5BF, + 0x5C0, + 0x5C1, + 0x5C3, + 0x5C4, + 0x5C6, + 0x5C7, + 0x5C8, + 0x5D0, + 0x5EB, + 0x5EF, + 0x5F3, + 0x610, + 0x61B, + 0x620, + 0x66A, + 0x66E, + 0x6D4, + 0x6D5, + 0x6DD, + 0x6DF, + 0x6E9, + 0x6EA, + 0x6FD, + 0x6FF, + 0x700, + 0x710, + 0x74B, + 0x74D, + 0x7B2, + 0x7C0, + 0x7F6, + 0x7FA, + 0x7FB, + 0x7FD, + 0x7FE, + 0x800, + 0x82E, + 0x840, + 0x85C, + 0x860, + 0x86B, + 0x8A0, + 0x8B5, + 0x8B6, + 0x8C8, + 0x8D3, + 0x8E2, + 0x8E3, + 0x964, + 0x966, + 0x970, + 0x971, + 0x984, + 0x985, + 0x98D, + 0x98F, + 0x991, + 0x993, + 0x9A9, + 0x9AA, + 0x9B1, + 0x9B2, + 0x9B3, + 0x9B6, + 0x9BA, + 0x9BC, + 0x9C5, + 0x9C7, + 0x9C9, + 0x9CB, + 0x9CF, + 0x9D7, + 0x9D8, + 0x9DC, + 0x9DE, + 0x9DF, + 0x9E4, + 0x9E6, + 0x9F2, + 0x9FC, + 0x9FD, + 0x9FE, + 0x9FF, + 0xA01, + 0xA04, + 0xA05, + 0xA0B, + 0xA0F, + 0xA11, + 0xA13, + 0xA29, + 0xA2A, + 0xA31, + 0xA32, + 0xA34, + 0xA35, + 0xA37, + 0xA38, + 0xA3A, + 0xA3C, + 0xA3D, + 0xA3E, + 0xA43, + 0xA47, + 0xA49, + 0xA4B, + 0xA4E, + 0xA51, + 0xA52, + 0xA59, + 0xA5D, + 0xA5E, + 0xA5F, + 0xA66, + 0xA76, + 0xA81, + 0xA84, + 0xA85, + 0xA8E, + 0xA8F, + 0xA92, + 0xA93, + 0xAA9, + 0xAAA, + 0xAB1, + 0xAB2, + 0xAB4, + 0xAB5, + 0xABA, + 0xABC, + 0xAC6, + 0xAC7, + 0xACA, + 0xACB, + 0xACE, + 0xAD0, + 0xAD1, + 0xAE0, + 0xAE4, + 0xAE6, + 0xAF0, + 0xAF9, + 0xB00, + 0xB01, + 0xB04, + 0xB05, + 0xB0D, + 0xB0F, + 0xB11, + 0xB13, + 0xB29, + 0xB2A, + 0xB31, + 0xB32, + 0xB34, + 0xB35, + 0xB3A, + 0xB3C, + 0xB45, + 0xB47, + 0xB49, + 0xB4B, + 0xB4E, + 0xB55, + 0xB58, + 0xB5C, + 0xB5E, + 0xB5F, + 0xB64, + 0xB66, + 0xB70, + 0xB71, + 0xB72, + 0xB82, + 0xB84, + 0xB85, + 0xB8B, + 0xB8E, + 0xB91, + 0xB92, + 0xB96, + 0xB99, + 0xB9B, + 0xB9C, + 0xB9D, + 0xB9E, + 0xBA0, + 0xBA3, + 0xBA5, + 0xBA8, + 0xBAB, + 0xBAE, + 0xBBA, + 0xBBE, + 0xBC3, + 0xBC6, + 0xBC9, + 0xBCA, + 0xBCE, + 0xBD0, + 0xBD1, + 0xBD7, + 0xBD8, + 0xBE6, + 0xBF0, + 0xC00, + 0xC0D, + 0xC0E, + 0xC11, + 0xC12, + 0xC29, + 0xC2A, + 0xC3A, + 0xC3D, + 0xC45, + 0xC46, + 0xC49, + 0xC4A, + 0xC4E, + 0xC55, + 0xC57, + 0xC58, + 0xC5B, + 0xC60, + 0xC64, + 0xC66, + 0xC70, + 0xC80, + 0xC84, + 0xC85, + 0xC8D, + 0xC8E, + 0xC91, + 0xC92, + 0xCA9, + 0xCAA, + 0xCB4, + 0xCB5, + 0xCBA, + 0xCBC, + 0xCC5, + 0xCC6, + 0xCC9, + 0xCCA, + 0xCCE, + 0xCD5, + 0xCD7, + 0xCDE, + 0xCDF, + 0xCE0, + 0xCE4, + 0xCE6, + 0xCF0, + 0xCF1, + 0xCF3, + 0xD00, + 0xD0D, + 0xD0E, + 0xD11, + 0xD12, + 0xD45, + 0xD46, + 0xD49, + 0xD4A, + 0xD4F, + 0xD54, + 0xD58, + 0xD5F, + 0xD64, + 0xD66, + 0xD70, + 0xD7A, + 0xD80, + 0xD81, + 0xD84, + 0xD85, + 0xD97, + 0xD9A, + 0xDB2, + 0xDB3, + 0xDBC, + 0xDBD, + 0xDBE, + 0xDC0, + 0xDC7, + 0xDCA, + 0xDCB, + 0xDCF, + 0xDD5, + 0xDD6, + 0xDD7, + 0xDD8, + 0xDE0, + 0xDE6, + 0xDF0, + 0xDF2, + 0xDF4, + 0xE01, + 0xE3B, + 0xE40, + 0xE4F, + 0xE50, + 0xE5A, + 0xE81, + 0xE83, + 0xE84, + 0xE85, + 0xE86, + 0xE8B, + 0xE8C, + 0xEA4, + 0xEA5, + 0xEA6, + 0xEA7, + 0xEBE, + 0xEC0, + 0xEC5, + 0xEC6, + 0xEC7, + 0xEC8, + 0xECE, + 0xED0, + 0xEDA, + 0xEDC, + 0xEE0, + 0xF00, + 0xF01, + 0xF18, + 0xF1A, + 0xF20, + 0xF2A, + 0xF35, + 0xF36, + 0xF37, + 0xF38, + 0xF39, + 0xF3A, + 0xF3E, + 0xF48, + 0xF49, + 0xF6D, + 0xF71, + 0xF85, + 0xF86, + 0xF98, + 0xF99, + 0xFBD, + 0xFC6, + 0xFC7, + 0x1000, + 0x104A, + 0x1050, + 0x109E, + 0x10A0, + 0x10C6, + 0x10C7, + 0x10C8, + 0x10CD, + 0x10CE, + 0x10D0, + 0x10FB, + 0x10FC, + 0x1249, + 0x124A, + 0x124E, + 0x1250, + 0x1257, + 0x1258, + 0x1259, + 0x125A, + 0x125E, + 0x1260, + 0x1289, + 0x128A, + 0x128E, + 0x1290, + 0x12B1, + 0x12B2, + 0x12B6, + 0x12B8, + 0x12BF, + 0x12C0, + 0x12C1, + 0x12C2, + 0x12C6, + 0x12C8, + 0x12D7, + 0x12D8, + 0x1311, + 0x1312, + 0x1316, + 0x1318, + 0x135B, + 0x135D, + 0x1360, + 0x1369, + 0x1372, + 0x1380, + 0x1390, + 0x13A0, + 0x13F6, + 0x13F8, + 0x13FE, + 0x1401, + 0x166D, + 0x166F, + 0x1680, + 0x1681, + 0x169B, + 0x16A0, + 0x16EB, + 0x16EE, + 0x16F9, + 0x1700, + 0x170D, + 0x170E, + 0x1715, + 0x1720, + 0x1735, + 0x1740, + 0x1754, + 0x1760, + 0x176D, + 0x176E, + 0x1771, + 0x1772, + 0x1774, + 0x1780, + 0x17D4, + 0x17D7, + 0x17D8, + 0x17DC, + 0x17DE, + 0x17E0, + 0x17EA, + 0x180B, + 0x180E, + 0x1810, + 0x181A, + 0x1820, + 0x1879, + 0x1880, + 0x18AB, + 0x18B0, + 0x18F6, + 0x1900, + 0x191F, + 0x1920, + 0x192C, + 0x1930, + 0x193C, + 0x1946, + 0x196E, + 0x1970, + 0x1975, + 0x1980, + 0x19AC, + 0x19B0, + 0x19CA, + 0x19D0, + 0x19DB, + 0x1A00, + 0x1A1C, + 0x1A20, + 0x1A5F, + 0x1A60, + 0x1A7D, + 0x1A7F, + 0x1A8A, + 0x1A90, + 0x1A9A, + 0x1AA7, + 0x1AA8, + 0x1AB0, + 0x1ABE, + 0x1ABF, + 0x1AC1, + 0x1B00, + 0x1B4C, + 0x1B50, + 0x1B5A, + 0x1B6B, + 0x1B74, + 0x1B80, + 0x1BF4, + 0x1C00, + 0x1C38, + 0x1C40, + 0x1C4A, + 0x1C4D, + 0x1C7E, + 0x1C80, + 0x1C89, + 0x1C90, + 0x1CBB, + 0x1CBD, + 0x1CC0, + 0x1CD0, + 0x1CD3, + 0x1CD4, + 0x1CFB, + 0x1D00, + 0x1DFA, + 0x1DFB, + 0x1F16, + 0x1F18, + 0x1F1E, + 0x1F20, + 0x1F46, + 0x1F48, + 0x1F4E, + 0x1F50, + 0x1F58, + 0x1F59, + 0x1F5A, + 0x1F5B, + 0x1F5C, + 0x1F5D, + 0x1F5E, + 0x1F5F, + 0x1F7E, + 0x1F80, + 0x1FB5, + 0x1FB6, + 0x1FBD, + 0x1FBE, + 0x1FBF, + 0x1FC2, + 0x1FC5, + 0x1FC6, + 0x1FCD, + 0x1FD0, + 0x1FD4, + 0x1FD6, + 0x1FDC, + 0x1FE0, + 0x1FED, + 0x1FF2, + 0x1FF5, + 0x1FF6, + 0x1FFD, + 0x203F, + 0x2041, + 0x2054, + 0x2055, + 0x2071, + 0x2072, + 0x207F, + 0x2080, + 0x2090, + 0x209D, + 0x20D0, + 0x20DD, + 0x20E1, + 0x20E2, + 0x20E5, + 0x20F1, + 0x2102, + 0x2103, + 0x2107, + 0x2108, + 0x210A, + 0x2114, + 0x2115, + 0x2116, + 0x2118, + 0x211E, + 0x2124, + 0x2125, + 0x2126, + 0x2127, + 0x2128, + 0x2129, + 0x212A, + 0x213A, + 0x213C, + 0x2140, + 0x2145, + 0x214A, + 0x214E, + 0x214F, + 0x2160, + 0x2189, + 0x2C00, + 0x2C2F, + 0x2C30, + 0x2C5F, + 0x2C60, + 0x2CE5, + 0x2CEB, + 0x2CF4, + 0x2D00, + 0x2D26, + 0x2D27, + 0x2D28, + 0x2D2D, + 0x2D2E, + 0x2D30, + 0x2D68, + 0x2D6F, + 0x2D70, + 0x2D7F, + 0x2D97, + 0x2DA0, + 0x2DA7, + 0x2DA8, + 0x2DAF, + 0x2DB0, + 0x2DB7, + 0x2DB8, + 0x2DBF, + 0x2DC0, + 0x2DC7, + 0x2DC8, + 0x2DCF, + 0x2DD0, + 0x2DD7, + 0x2DD8, + 0x2DDF, + 0x2DE0, + 0x2E00, + 0x3005, + 0x3008, + 0x3021, + 0x3030, + 0x3031, + 0x3036, + 0x3038, + 0x303D, + 0x3041, + 0x3097, + 0x3099, + 0x30A0, + 0x30A1, + 0x30FB, + 0x30FC, + 0x3100, + 0x3105, + 0x3130, + 0x3131, + 0x318F, + 0x31A0, + 0x31C0, + 0x31F0, + 0x3200, + 0x3400, + 0x4DC0, + 0x4E00, + 0x9FFD, + 0xA000, + 0xA48D, + 0xA4D0, + 0xA4FE, + 0xA500, + 0xA60D, + 0xA610, + 0xA62C, + 0xA640, + 0xA670, + 0xA674, + 0xA67E, + 0xA67F, + 0xA6F2, + 0xA717, + 0xA720, + 0xA722, + 0xA789, + 0xA78B, + 0xA7C0, + 0xA7C2, + 0xA7CB, + 0xA7F5, + 0xA828, + 0xA82C, + 0xA82D, + 0xA840, + 0xA874, + 0xA880, + 0xA8C6, + 0xA8D0, + 0xA8DA, + 0xA8E0, + 0xA8F8, + 0xA8FB, + 0xA8FC, + 0xA8FD, + 0xA92E, + 0xA930, + 0xA954, + 0xA960, + 0xA97D, + 0xA980, + 0xA9C1, + 0xA9CF, + 0xA9DA, + 0xA9E0, + 0xA9FF, + 0xAA00, + 0xAA37, + 0xAA40, + 0xAA4E, + 0xAA50, + 0xAA5A, + 0xAA60, + 0xAA77, + 0xAA7A, + 0xAAC3, + 0xAADB, + 0xAADE, + 0xAAE0, + 0xAAF0, + 0xAAF2, + 0xAAF7, + 0xAB01, + 0xAB07, + 0xAB09, + 0xAB0F, + 0xAB11, + 0xAB17, + 0xAB20, + 0xAB27, + 0xAB28, + 0xAB2F, + 0xAB30, + 0xAB5B, + 0xAB5C, + 0xAB6A, + 0xAB70, + 0xABEB, + 0xABEC, + 0xABEE, + 0xABF0, + 0xABFA, + 0xAC00, + 0xD7A4, + 0xD7B0, + 0xD7C7, + 0xD7CB, + 0xD7FC, + 0xF900, + 0xFA6E, + 0xFA70, + 0xFADA, + 0xFB00, + 0xFB07, + 0xFB13, + 0xFB18, + 0xFB1D, + 0xFB29, + 0xFB2A, + 0xFB37, + 0xFB38, + 0xFB3D, + 0xFB3E, + 0xFB3F, + 0xFB40, + 0xFB42, + 0xFB43, + 0xFB45, + 0xFB46, + 0xFBB2, + 0xFBD3, + 0xFD3E, + 0xFD50, + 0xFD90, + 0xFD92, + 0xFDC8, + 0xFDF0, + 0xFDFC, + 0xFE00, + 0xFE10, + 0xFE20, + 0xFE30, + 0xFE33, + 0xFE35, + 0xFE4D, + 0xFE50, + 0xFE70, + 0xFE75, + 0xFE76, + 0xFEFD, + 0xFF10, + 0xFF1A, + 0xFF21, + 0xFF3B, + 0xFF3F, + 0xFF40, + 0xFF41, + 0xFF5B, + 0xFF66, + 0xFFBF, + 0xFFC2, + 0xFFC8, + 0xFFCA, + 0xFFD0, + 0xFFD2, + 0xFFD8, + 0xFFDA, + 0xFFDD, + 0x10000, + 0x1000C, + 0x1000D, + 0x10027, + 0x10028, + 0x1003B, + 0x1003C, + 0x1003E, + 0x1003F, + 0x1004E, + 0x10050, + 0x1005E, + 0x10080, + 0x100FB, + 0x10140, + 0x10175, + 0x101FD, + 0x101FE, + 0x10280, + 0x1029D, + 0x102A0, + 0x102D1, + 0x102E0, + 0x102E1, + 0x10300, + 0x10320, + 0x1032D, + 0x1034B, + 0x10350, + 0x1037B, + 0x10380, + 0x1039E, + 0x103A0, + 0x103C4, + 0x103C8, + 0x103D0, + 0x103D1, + 0x103D6, + 0x10400, + 0x1049E, + 0x104A0, + 0x104AA, + 0x104B0, + 0x104D4, + 0x104D8, + 0x104FC, + 0x10500, + 0x10528, + 0x10530, + 0x10564, + 0x10600, + 0x10737, + 0x10740, + 0x10756, + 0x10760, + 0x10768, + 0x10800, + 0x10806, + 0x10808, + 0x10809, + 0x1080A, + 0x10836, + 0x10837, + 0x10839, + 0x1083C, + 0x1083D, + 0x1083F, + 0x10856, + 0x10860, + 0x10877, + 0x10880, + 0x1089F, + 0x108E0, + 0x108F3, + 0x108F4, + 0x108F6, + 0x10900, + 0x10916, + 0x10920, + 0x1093A, + 0x10980, + 0x109B8, + 0x109BE, + 0x109C0, + 0x10A00, + 0x10A04, + 0x10A05, + 0x10A07, + 0x10A0C, + 0x10A14, + 0x10A15, + 0x10A18, + 0x10A19, + 0x10A36, + 0x10A38, + 0x10A3B, + 0x10A3F, + 0x10A40, + 0x10A60, + 0x10A7D, + 0x10A80, + 0x10A9D, + 0x10AC0, + 0x10AC8, + 0x10AC9, + 0x10AE7, + 0x10B00, + 0x10B36, + 0x10B40, + 0x10B56, + 0x10B60, + 0x10B73, + 0x10B80, + 0x10B92, + 0x10C00, + 0x10C49, + 0x10C80, + 0x10CB3, + 0x10CC0, + 0x10CF3, + 0x10D00, + 0x10D28, + 0x10D30, + 0x10D3A, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAD, + 0x10EB0, + 0x10EB2, + 0x10F00, + 0x10F1D, + 0x10F27, + 0x10F28, + 0x10F30, + 0x10F51, + 0x10FB0, + 0x10FC5, + 0x10FE0, + 0x10FF7, + 0x11000, + 0x11047, + 0x11066, + 0x11070, + 0x1107F, + 0x110BB, + 0x110D0, + 0x110E9, + 0x110F0, + 0x110FA, + 0x11100, + 0x11135, + 0x11136, + 0x11140, + 0x11144, + 0x11148, + 0x11150, + 0x11174, + 0x11176, + 0x11177, + 0x11180, + 0x111C5, + 0x111C9, + 0x111CD, + 0x111CE, + 0x111DB, + 0x111DC, + 0x111DD, + 0x11200, + 0x11212, + 0x11213, + 0x11238, + 0x1123E, + 0x1123F, + 0x11280, + 0x11287, + 0x11288, + 0x11289, + 0x1128A, + 0x1128E, + 0x1128F, + 0x1129E, + 0x1129F, + 0x112A9, + 0x112B0, + 0x112EB, + 0x112F0, + 0x112FA, + 0x11300, + 0x11304, + 0x11305, + 0x1130D, + 0x1130F, + 0x11311, + 0x11313, + 0x11329, + 0x1132A, + 0x11331, + 0x11332, + 0x11334, + 0x11335, + 0x1133A, + 0x1133B, + 0x11345, + 0x11347, + 0x11349, + 0x1134B, + 0x1134E, + 0x11350, + 0x11351, + 0x11357, + 0x11358, + 0x1135D, + 0x11364, + 0x11366, + 0x1136D, + 0x11370, + 0x11375, + 0x11400, + 0x1144B, + 0x11450, + 0x1145A, + 0x1145E, + 0x11462, + 0x11480, + 0x114C6, + 0x114C7, + 0x114C8, + 0x114D0, + 0x114DA, + 0x11580, + 0x115B6, + 0x115B8, + 0x115C1, + 0x115D8, + 0x115DE, + 0x11600, + 0x11641, + 0x11644, + 0x11645, + 0x11650, + 0x1165A, + 0x11680, + 0x116B9, + 0x116C0, + 0x116CA, + 0x11700, + 0x1171B, + 0x1171D, + 0x1172C, + 0x11730, + 0x1173A, + 0x11800, + 0x1183B, + 0x118A0, + 0x118EA, + 0x118FF, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11944, + 0x11950, + 0x1195A, + 0x119A0, + 0x119A8, + 0x119AA, + 0x119D8, + 0x119DA, + 0x119E2, + 0x119E3, + 0x119E5, + 0x11A00, + 0x11A3F, + 0x11A47, + 0x11A48, + 0x11A50, + 0x11A9A, + 0x11A9D, + 0x11A9E, + 0x11AC0, + 0x11AF9, + 0x11C00, + 0x11C09, + 0x11C0A, + 0x11C37, + 0x11C38, + 0x11C41, + 0x11C50, + 0x11C5A, + 0x11C72, + 0x11C90, + 0x11C92, + 0x11CA8, + 0x11CA9, + 0x11CB7, + 0x11D00, + 0x11D07, + 0x11D08, + 0x11D0A, + 0x11D0B, + 0x11D37, + 0x11D3A, + 0x11D3B, + 0x11D3C, + 0x11D3E, + 0x11D3F, + 0x11D48, + 0x11D50, + 0x11D5A, + 0x11D60, + 0x11D66, + 0x11D67, + 0x11D69, + 0x11D6A, + 0x11D8F, + 0x11D90, + 0x11D92, + 0x11D93, + 0x11D99, + 0x11DA0, + 0x11DAA, + 0x11EE0, + 0x11EF7, + 0x11FB0, + 0x11FB1, + 0x12000, + 0x1239A, + 0x12400, + 0x1246F, + 0x12480, + 0x12544, + 0x13000, + 0x1342F, + 0x14400, + 0x14647, + 0x16800, + 0x16A39, + 0x16A40, + 0x16A5F, + 0x16A60, + 0x16A6A, + 0x16AD0, + 0x16AEE, + 0x16AF0, + 0x16AF5, + 0x16B00, + 0x16B37, + 0x16B40, + 0x16B44, + 0x16B50, + 0x16B5A, + 0x16B63, + 0x16B78, + 0x16B7D, + 0x16B90, + 0x16E40, + 0x16E80, + 0x16F00, + 0x16F4B, + 0x16F4F, + 0x16F88, + 0x16F8F, + 0x16FA0, + 0x16FE0, + 0x16FE2, + 0x16FE3, + 0x16FE5, + 0x16FF0, + 0x16FF2, + 0x17000, + 0x187F8, + 0x18800, + 0x18CD6, + 0x18D00, + 0x18D09, + 0x1B000, + 0x1B11F, + 0x1B150, + 0x1B153, + 0x1B164, + 0x1B168, + 0x1B170, + 0x1B2FC, + 0x1BC00, + 0x1BC6B, + 0x1BC70, + 0x1BC7D, + 0x1BC80, + 0x1BC89, + 0x1BC90, + 0x1BC9A, + 0x1BC9D, + 0x1BC9F, + 0x1D165, + 0x1D16A, + 0x1D16D, + 0x1D173, + 0x1D17B, + 0x1D183, + 0x1D185, + 0x1D18C, + 0x1D1AA, + 0x1D1AE, + 0x1D242, + 0x1D245, + 0x1D400, + 0x1D455, + 0x1D456, + 0x1D49D, + 0x1D49E, + 0x1D4A0, + 0x1D4A2, + 0x1D4A3, + 0x1D4A5, + 0x1D4A7, + 0x1D4A9, + 0x1D4AD, + 0x1D4AE, + 0x1D4BA, + 0x1D4BB, + 0x1D4BC, + 0x1D4BD, + 0x1D4C4, + 0x1D4C5, + 0x1D506, + 0x1D507, + 0x1D50B, + 0x1D50D, + 0x1D515, + 0x1D516, + 0x1D51D, + 0x1D51E, + 0x1D53A, + 0x1D53B, + 0x1D53F, + 0x1D540, + 0x1D545, + 0x1D546, + 0x1D547, + 0x1D54A, + 0x1D551, + 0x1D552, + 0x1D6A6, + 0x1D6A8, + 0x1D6C1, + 0x1D6C2, + 0x1D6DB, + 0x1D6DC, + 0x1D6FB, + 0x1D6FC, + 0x1D715, + 0x1D716, + 0x1D735, + 0x1D736, + 0x1D74F, + 0x1D750, + 0x1D76F, + 0x1D770, + 0x1D789, + 0x1D78A, + 0x1D7A9, + 0x1D7AA, + 0x1D7C3, + 0x1D7C4, + 0x1D7CC, + 0x1D7CE, + 0x1D800, + 0x1DA00, + 0x1DA37, + 0x1DA3B, + 0x1DA6D, + 0x1DA75, + 0x1DA76, + 0x1DA84, + 0x1DA85, + 0x1DA9B, + 0x1DAA0, + 0x1DAA1, + 0x1DAB0, + 0x1E000, + 0x1E007, + 0x1E008, + 0x1E019, + 0x1E01B, + 0x1E022, + 0x1E023, + 0x1E025, + 0x1E026, + 0x1E02B, + 0x1E100, + 0x1E12D, + 0x1E130, + 0x1E13E, + 0x1E140, + 0x1E14A, + 0x1E14E, + 0x1E14F, + 0x1E2C0, + 0x1E2FA, + 0x1E800, + 0x1E8C5, + 0x1E8D0, + 0x1E8D7, + 0x1E900, + 0x1E94C, + 0x1E950, + 0x1E95A, + 0x1EE00, + 0x1EE04, + 0x1EE05, + 0x1EE20, + 0x1EE21, + 0x1EE23, + 0x1EE24, + 0x1EE25, + 0x1EE27, + 0x1EE28, + 0x1EE29, + 0x1EE33, + 0x1EE34, + 0x1EE38, + 0x1EE39, + 0x1EE3A, + 0x1EE3B, + 0x1EE3C, + 0x1EE42, + 0x1EE43, + 0x1EE47, + 0x1EE48, + 0x1EE49, + 0x1EE4A, + 0x1EE4B, + 0x1EE4C, + 0x1EE4D, + 0x1EE50, + 0x1EE51, + 0x1EE53, + 0x1EE54, + 0x1EE55, + 0x1EE57, + 0x1EE58, + 0x1EE59, + 0x1EE5A, + 0x1EE5B, + 0x1EE5C, + 0x1EE5D, + 0x1EE5E, + 0x1EE5F, + 0x1EE60, + 0x1EE61, + 0x1EE63, + 0x1EE64, + 0x1EE65, + 0x1EE67, + 0x1EE6B, + 0x1EE6C, + 0x1EE73, + 0x1EE74, + 0x1EE78, + 0x1EE79, + 0x1EE7D, + 0x1EE7E, + 0x1EE7F, + 0x1EE80, + 0x1EE8A, + 0x1EE8B, + 0x1EE9C, + 0x1EEA1, + 0x1EEA4, + 0x1EEA5, + 0x1EEAA, + 0x1EEAB, + 0x1EEBC, + 0x1FBF0, + 0x1FBFA, + 0x20000, + 0x2A6DE, + 0x2A700, + 0x2B735, + 0x2B740, + 0x2B81E, + 0x2B820, + 0x2CEA2, + 0x2CEB0, + 0x2EBE1, + 0x2F800, + 0x2FA1E, + 0x30000, + 0x3134B, + 0xE0100, + 0xE01F0 +}; + +# endif /* EBCDIC 037 */ + +# if 'A' == 65 /* ASCII/Latin1 */ + +static const UV UNI_IDENTIFIERSTATUS__ALLOWED_invlist[] = { /* for ASCII/Latin1 */ + 749, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x27, + 0x28, + 0x2D, + 0x2F, + 0x30, + 0x3B, + 0x41, + 0x5B, + 0x5F, + 0x60, + 0x61, + 0x7B, + 0xB7, + 0xB8, + 0xC0, + 0xD7, + 0xD8, + 0xF7, + 0xF8, + 0x132, + 0x134, + 0x13F, + 0x141, + 0x149, + 0x14A, + 0x17F, + 0x18F, + 0x190, + 0x1A0, + 0x1A2, + 0x1AF, + 0x1B1, + 0x1CD, + 0x1DD, + 0x1DE, + 0x1E4, + 0x1E6, + 0x1F1, + 0x1F4, + 0x1F6, + 0x1F8, + 0x21C, + 0x21E, + 0x220, + 0x226, + 0x234, + 0x259, + 0x25A, + 0x2BB, + 0x2BD, + 0x2EC, + 0x2ED, + 0x300, + 0x305, + 0x306, + 0x30D, + 0x30F, + 0x312, + 0x313, + 0x315, + 0x31B, + 0x31C, + 0x323, + 0x329, + 0x32D, + 0x32F, + 0x330, + 0x332, + 0x335, + 0x336, + 0x338, + 0x33A, + 0x342, + 0x343, + 0x345, + 0x346, + 0x375, + 0x376, + 0x37B, + 0x37E, + 0x386, + 0x387, + 0x388, + 0x38B, + 0x38C, + 0x38D, + 0x38E, + 0x3A2, + 0x3A3, + 0x3CF, + 0x3FC, + 0x460, + 0x48A, + 0x500, + 0x510, + 0x52A, + 0x52E, + 0x530, + 0x531, + 0x557, + 0x559, + 0x55A, + 0x561, + 0x587, + 0x58A, + 0x58B, + 0x5B4, + 0x5B5, + 0x5D0, + 0x5EB, + 0x5EF, + 0x5F5, + 0x620, + 0x640, + 0x641, + 0x656, + 0x660, + 0x66A, + 0x670, + 0x673, + 0x674, + 0x675, + 0x679, + 0x68E, + 0x68F, + 0x6A1, + 0x6A2, + 0x6D4, + 0x6D5, + 0x6D6, + 0x6E5, + 0x6E7, + 0x6EE, + 0x700, + 0x750, + 0x7B2, + 0x8A0, + 0x8AD, + 0x8B2, + 0x8B3, + 0x8B6, + 0x8C8, + 0x901, + 0x94E, + 0x94F, + 0x951, + 0x956, + 0x958, + 0x960, + 0x964, + 0x966, + 0x970, + 0x971, + 0x978, + 0x979, + 0x980, + 0x981, + 0x984, + 0x985, + 0x98D, + 0x98F, + 0x991, + 0x993, + 0x9A9, + 0x9AA, + 0x9B1, + 0x9B2, + 0x9B3, + 0x9B6, + 0x9BA, + 0x9BC, + 0x9C5, + 0x9C7, + 0x9C9, + 0x9CB, + 0x9CF, + 0x9D7, + 0x9D8, + 0x9E0, + 0x9E4, + 0x9E6, + 0x9F2, + 0x9FE, + 0x9FF, + 0xA01, + 0xA04, + 0xA05, + 0xA0B, + 0xA0F, + 0xA11, + 0xA13, + 0xA29, + 0xA2A, + 0xA31, + 0xA32, + 0xA33, + 0xA35, + 0xA36, + 0xA38, + 0xA3A, + 0xA3C, + 0xA3D, + 0xA3E, + 0xA43, + 0xA47, + 0xA49, + 0xA4B, + 0xA4E, + 0xA5C, + 0xA5D, + 0xA66, + 0xA75, + 0xA81, + 0xA84, + 0xA85, + 0xA8E, + 0xA8F, + 0xA92, + 0xA93, + 0xAA9, + 0xAAA, + 0xAB1, + 0xAB2, + 0xAB4, + 0xAB5, + 0xABA, + 0xABC, + 0xAC6, + 0xAC7, + 0xACA, + 0xACB, + 0xACE, + 0xAD0, + 0xAD1, + 0xAE0, + 0xAE4, + 0xAE6, + 0xAF0, + 0xAFA, + 0xB00, + 0xB01, + 0xB04, + 0xB05, + 0xB0D, + 0xB0F, + 0xB11, + 0xB13, + 0xB29, + 0xB2A, + 0xB31, + 0xB32, + 0xB34, + 0xB35, + 0xB3A, + 0xB3C, + 0xB44, + 0xB47, + 0xB49, + 0xB4B, + 0xB4E, + 0xB55, + 0xB58, + 0xB5F, + 0xB62, + 0xB66, + 0xB70, + 0xB71, + 0xB72, + 0xB82, + 0xB84, + 0xB85, + 0xB8B, + 0xB8E, + 0xB91, + 0xB92, + 0xB96, + 0xB99, + 0xB9B, + 0xB9C, + 0xB9D, + 0xB9E, + 0xBA0, + 0xBA3, + 0xBA5, + 0xBA8, + 0xBAB, + 0xBAE, + 0xBBA, + 0xBBE, + 0xBC3, + 0xBC6, + 0xBC9, + 0xBCA, + 0xBCE, + 0xBD0, + 0xBD1, + 0xBD7, + 0xBD8, + 0xBE6, + 0xBF0, + 0xC01, + 0xC0D, + 0xC0E, + 0xC11, + 0xC12, + 0xC29, + 0xC2A, + 0xC34, + 0xC35, + 0xC3A, + 0xC3D, + 0xC45, + 0xC46, + 0xC49, + 0xC4A, + 0xC4E, + 0xC55, + 0xC57, + 0xC60, + 0xC62, + 0xC66, + 0xC70, + 0xC80, + 0xC81, + 0xC82, + 0xC84, + 0xC85, + 0xC8D, + 0xC8E, + 0xC91, + 0xC92, + 0xCA9, + 0xCAA, + 0xCB4, + 0xCB5, + 0xCBA, + 0xCBC, + 0xCC5, + 0xCC6, + 0xCC9, + 0xCCA, + 0xCCE, + 0xCD5, + 0xCD7, + 0xCE0, + 0xCE4, + 0xCE6, + 0xCF0, + 0xCF1, + 0xCF3, + 0xD00, + 0xD01, + 0xD02, + 0xD04, + 0xD05, + 0xD0D, + 0xD0E, + 0xD11, + 0xD12, + 0xD3B, + 0xD3D, + 0xD44, + 0xD46, + 0xD49, + 0xD4A, + 0xD4F, + 0xD54, + 0xD58, + 0xD60, + 0xD62, + 0xD66, + 0xD70, + 0xD7A, + 0xD80, + 0xD82, + 0xD84, + 0xD85, + 0xD8F, + 0xD91, + 0xD97, + 0xD9A, + 0xDA6, + 0xDA7, + 0xDB2, + 0xDB3, + 0xDBC, + 0xDBD, + 0xDBE, + 0xDC0, + 0xDC7, + 0xDCA, + 0xDCB, + 0xDCF, + 0xDD5, + 0xDD6, + 0xDD7, + 0xDD8, + 0xDDF, + 0xDF2, + 0xDF3, + 0xE01, + 0xE33, + 0xE34, + 0xE3B, + 0xE40, + 0xE4F, + 0xE50, + 0xE5A, + 0xE81, + 0xE83, + 0xE84, + 0xE85, + 0xE86, + 0xE8B, + 0xE8C, + 0xEA4, + 0xEA5, + 0xEA6, + 0xEA7, + 0xEB3, + 0xEB4, + 0xEBE, + 0xEC0, + 0xEC5, + 0xEC6, + 0xEC7, + 0xEC8, + 0xECE, + 0xED0, + 0xEDA, + 0xEDE, + 0xEE0, + 0xF00, + 0xF01, + 0xF0B, + 0xF0C, + 0xF20, + 0xF2A, + 0xF35, + 0xF36, + 0xF37, + 0xF38, + 0xF3E, + 0xF43, + 0xF44, + 0xF48, + 0xF49, + 0xF4D, + 0xF4E, + 0xF52, + 0xF53, + 0xF57, + 0xF58, + 0xF5C, + 0xF5D, + 0xF69, + 0xF6A, + 0xF6D, + 0xF71, + 0xF73, + 0xF74, + 0xF75, + 0xF7A, + 0xF81, + 0xF82, + 0xF85, + 0xF86, + 0xF93, + 0xF94, + 0xF98, + 0xF99, + 0xF9D, + 0xF9E, + 0xFA2, + 0xFA3, + 0xFA7, + 0xFA8, + 0xFAC, + 0xFAD, + 0xFB9, + 0xFBA, + 0xFBD, + 0xFC6, + 0xFC7, + 0x1000, + 0x104A, + 0x1050, + 0x109E, + 0x10C7, + 0x10C8, + 0x10CD, + 0x10CE, + 0x10D0, + 0x10F1, + 0x10F7, + 0x10FB, + 0x10FD, + 0x1100, + 0x1200, + 0x1249, + 0x124A, + 0x124E, + 0x1250, + 0x1257, + 0x1258, + 0x1259, + 0x125A, + 0x125E, + 0x1260, + 0x1289, + 0x128A, + 0x128E, + 0x1290, + 0x12B1, + 0x12B2, + 0x12B6, + 0x12B8, + 0x12BF, + 0x12C0, + 0x12C1, + 0x12C2, + 0x12C6, + 0x12C8, + 0x12D7, + 0x12D8, + 0x1311, + 0x1312, + 0x1316, + 0x1318, + 0x135B, + 0x135D, + 0x1360, + 0x1380, + 0x1390, + 0x1780, + 0x17A3, + 0x17A5, + 0x17A8, + 0x17A9, + 0x17B4, + 0x17B6, + 0x17CB, + 0x17D2, + 0x17D3, + 0x17D7, + 0x17D8, + 0x17DC, + 0x17DD, + 0x17E0, + 0x17EA, + 0x1C90, + 0x1CBB, + 0x1CBD, + 0x1CC0, + 0x1E00, + 0x1E9A, + 0x1E9E, + 0x1E9F, + 0x1EA0, + 0x1EFA, + 0x1F00, + 0x1F16, + 0x1F18, + 0x1F1E, + 0x1F20, + 0x1F46, + 0x1F48, + 0x1F4E, + 0x1F50, + 0x1F58, + 0x1F59, + 0x1F5A, + 0x1F5B, + 0x1F5C, + 0x1F5D, + 0x1F5E, + 0x1F5F, + 0x1F71, + 0x1F72, + 0x1F73, + 0x1F74, + 0x1F75, + 0x1F76, + 0x1F77, + 0x1F78, + 0x1F79, + 0x1F7A, + 0x1F7B, + 0x1F7C, + 0x1F7D, + 0x1F80, + 0x1FB5, + 0x1FB6, + 0x1FBB, + 0x1FBC, + 0x1FBD, + 0x1FC2, + 0x1FC5, + 0x1FC6, + 0x1FC9, + 0x1FCA, + 0x1FCB, + 0x1FCC, + 0x1FCD, + 0x1FD0, + 0x1FD3, + 0x1FD6, + 0x1FDB, + 0x1FE0, + 0x1FE3, + 0x1FE4, + 0x1FEB, + 0x1FEC, + 0x1FED, + 0x1FF2, + 0x1FF5, + 0x1FF6, + 0x1FF9, + 0x1FFA, + 0x1FFB, + 0x1FFC, + 0x1FFD, + 0x200C, + 0x200E, + 0x2010, + 0x2011, + 0x2019, + 0x201A, + 0x2027, + 0x2028, + 0x2D27, + 0x2D28, + 0x2D2D, + 0x2D2E, + 0x2D80, + 0x2D97, + 0x2DA0, + 0x2DA7, + 0x2DA8, + 0x2DAF, + 0x2DB0, + 0x2DB7, + 0x2DB8, + 0x2DBF, + 0x2DC0, + 0x2DC7, + 0x2DC8, + 0x2DCF, + 0x2DD0, + 0x2DD7, + 0x2DD8, + 0x2DDF, + 0x3005, + 0x3008, + 0x3041, + 0x3097, + 0x3099, + 0x309B, + 0x309D, + 0x309F, + 0x30A0, + 0x30FF, + 0x3105, + 0x312E, + 0x312F, + 0x3130, + 0x31A0, + 0x31C0, + 0x3400, + 0x4DC0, + 0x4E00, + 0x9FFD, + 0xA67F, + 0xA680, + 0xA717, + 0xA720, + 0xA788, + 0xA789, + 0xA78D, + 0xA78E, + 0xA792, + 0xA794, + 0xA7AA, + 0xA7AB, + 0xA7AE, + 0xA7AF, + 0xA7B8, + 0xA7BA, + 0xA7C2, + 0xA7CB, + 0xA9E7, + 0xA9FF, + 0xAA60, + 0xAA77, + 0xAA7A, + 0xAA80, + 0xAB01, + 0xAB07, + 0xAB09, + 0xAB0F, + 0xAB11, + 0xAB17, + 0xAB20, + 0xAB27, + 0xAB28, + 0xAB2F, + 0xAB66, + 0xAB68, + 0xAC00, + 0xD7A4, + 0xFA0E, + 0xFA10, + 0xFA11, + 0xFA12, + 0xFA13, + 0xFA15, + 0xFA1F, + 0xFA20, + 0xFA21, + 0xFA22, + 0xFA23, + 0xFA25, + 0xFA27, + 0xFA2A, + 0x11301, + 0x11302, + 0x11303, + 0x11304, + 0x1133B, + 0x1133D, + 0x16FF0, + 0x16FF2, + 0x1B150, + 0x1B153, + 0x1B164, + 0x1B168, + 0x20000, + 0x2A6DE, + 0x2A700, + 0x2B735, + 0x2B740, + 0x2B81E, + 0x2B820, + 0x2CEA2, + 0x2CEB0, + 0x2EBE1, + 0x30000, + 0x3134B +}; + +# endif /* ASCII/Latin1 */ + +# if 'A' == 193 /* EBCDIC 1047 */ \ + && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \ + && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \ + && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 + +static const UV UNI_IDENTIFIERSTATUS__ALLOWED_invlist[] = { /* for EBCDIC 1047 */ + 783, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x42, + 0x4A, + 0x4B, + 0x4C, + 0x51, + 0x5A, + 0x60, + 0x61, + 0x62, + 0x6A, + 0x6D, + 0x6E, + 0x70, + 0x79, + 0x7A, + 0x7B, + 0x7D, + 0x7E, + 0x80, + 0x8A, + 0x8C, + 0x8F, + 0x91, + 0x9A, + 0x9C, + 0x9D, + 0x9E, + 0x9F, + 0xA2, + 0xAA, + 0xAC, + 0xAD, + 0xAE, + 0xAF, + 0xB3, + 0xB4, + 0xBA, + 0xBB, + 0xC1, + 0xCA, + 0xCB, + 0xD0, + 0xD1, + 0xDA, + 0xDB, + 0xE0, + 0xE2, + 0xEA, + 0xEB, + 0xFA, + 0xFB, + 0xFF, + 0x100, + 0x132, + 0x134, + 0x13F, + 0x141, + 0x149, + 0x14A, + 0x17F, + 0x18F, + 0x190, + 0x1A0, + 0x1A2, + 0x1AF, + 0x1B1, + 0x1CD, + 0x1DD, + 0x1DE, + 0x1E4, + 0x1E6, + 0x1F1, + 0x1F4, + 0x1F6, + 0x1F8, + 0x21C, + 0x21E, + 0x220, + 0x226, + 0x234, + 0x259, + 0x25A, + 0x2BB, + 0x2BD, + 0x2EC, + 0x2ED, + 0x300, + 0x305, + 0x306, + 0x30D, + 0x30F, + 0x312, + 0x313, + 0x315, + 0x31B, + 0x31C, + 0x323, + 0x329, + 0x32D, + 0x32F, + 0x330, + 0x332, + 0x335, + 0x336, + 0x338, + 0x33A, + 0x342, + 0x343, + 0x345, + 0x346, + 0x375, + 0x376, + 0x37B, + 0x37E, + 0x386, + 0x387, + 0x388, + 0x38B, + 0x38C, + 0x38D, + 0x38E, + 0x3A2, + 0x3A3, + 0x3CF, + 0x3FC, + 0x460, + 0x48A, + 0x500, + 0x510, + 0x52A, + 0x52E, + 0x530, + 0x531, + 0x557, + 0x559, + 0x55A, + 0x561, + 0x587, + 0x58A, + 0x58B, + 0x5B4, + 0x5B5, + 0x5D0, + 0x5EB, + 0x5EF, + 0x5F5, + 0x620, + 0x640, + 0x641, + 0x656, + 0x660, + 0x66A, + 0x670, + 0x673, + 0x674, + 0x675, + 0x679, + 0x68E, + 0x68F, + 0x6A1, + 0x6A2, + 0x6D4, + 0x6D5, + 0x6D6, + 0x6E5, + 0x6E7, + 0x6EE, + 0x700, + 0x750, + 0x7B2, + 0x8A0, + 0x8AD, + 0x8B2, + 0x8B3, + 0x8B6, + 0x8C8, + 0x901, + 0x94E, + 0x94F, + 0x951, + 0x956, + 0x958, + 0x960, + 0x964, + 0x966, + 0x970, + 0x971, + 0x978, + 0x979, + 0x980, + 0x981, + 0x984, + 0x985, + 0x98D, + 0x98F, + 0x991, + 0x993, + 0x9A9, + 0x9AA, + 0x9B1, + 0x9B2, + 0x9B3, + 0x9B6, + 0x9BA, + 0x9BC, + 0x9C5, + 0x9C7, + 0x9C9, + 0x9CB, + 0x9CF, + 0x9D7, + 0x9D8, + 0x9E0, + 0x9E4, + 0x9E6, + 0x9F2, + 0x9FE, + 0x9FF, + 0xA01, + 0xA04, + 0xA05, + 0xA0B, + 0xA0F, + 0xA11, + 0xA13, + 0xA29, + 0xA2A, + 0xA31, + 0xA32, + 0xA33, + 0xA35, + 0xA36, + 0xA38, + 0xA3A, + 0xA3C, + 0xA3D, + 0xA3E, + 0xA43, + 0xA47, + 0xA49, + 0xA4B, + 0xA4E, + 0xA5C, + 0xA5D, + 0xA66, + 0xA75, + 0xA81, + 0xA84, + 0xA85, + 0xA8E, + 0xA8F, + 0xA92, + 0xA93, + 0xAA9, + 0xAAA, + 0xAB1, + 0xAB2, + 0xAB4, + 0xAB5, + 0xABA, + 0xABC, + 0xAC6, + 0xAC7, + 0xACA, + 0xACB, + 0xACE, + 0xAD0, + 0xAD1, + 0xAE0, + 0xAE4, + 0xAE6, + 0xAF0, + 0xAFA, + 0xB00, + 0xB01, + 0xB04, + 0xB05, + 0xB0D, + 0xB0F, + 0xB11, + 0xB13, + 0xB29, + 0xB2A, + 0xB31, + 0xB32, + 0xB34, + 0xB35, + 0xB3A, + 0xB3C, + 0xB44, + 0xB47, + 0xB49, + 0xB4B, + 0xB4E, + 0xB55, + 0xB58, + 0xB5F, + 0xB62, + 0xB66, + 0xB70, + 0xB71, + 0xB72, + 0xB82, + 0xB84, + 0xB85, + 0xB8B, + 0xB8E, + 0xB91, + 0xB92, + 0xB96, + 0xB99, + 0xB9B, + 0xB9C, + 0xB9D, + 0xB9E, + 0xBA0, + 0xBA3, + 0xBA5, + 0xBA8, + 0xBAB, + 0xBAE, + 0xBBA, + 0xBBE, + 0xBC3, + 0xBC6, + 0xBC9, + 0xBCA, + 0xBCE, + 0xBD0, + 0xBD1, + 0xBD7, + 0xBD8, + 0xBE6, + 0xBF0, + 0xC01, + 0xC0D, + 0xC0E, + 0xC11, + 0xC12, + 0xC29, + 0xC2A, + 0xC34, + 0xC35, + 0xC3A, + 0xC3D, + 0xC45, + 0xC46, + 0xC49, + 0xC4A, + 0xC4E, + 0xC55, + 0xC57, + 0xC60, + 0xC62, + 0xC66, + 0xC70, + 0xC80, + 0xC81, + 0xC82, + 0xC84, + 0xC85, + 0xC8D, + 0xC8E, + 0xC91, + 0xC92, + 0xCA9, + 0xCAA, + 0xCB4, + 0xCB5, + 0xCBA, + 0xCBC, + 0xCC5, + 0xCC6, + 0xCC9, + 0xCCA, + 0xCCE, + 0xCD5, + 0xCD7, + 0xCE0, + 0xCE4, + 0xCE6, + 0xCF0, + 0xCF1, + 0xCF3, + 0xD00, + 0xD01, + 0xD02, + 0xD04, + 0xD05, + 0xD0D, + 0xD0E, + 0xD11, + 0xD12, + 0xD3B, + 0xD3D, + 0xD44, + 0xD46, + 0xD49, + 0xD4A, + 0xD4F, + 0xD54, + 0xD58, + 0xD60, + 0xD62, + 0xD66, + 0xD70, + 0xD7A, + 0xD80, + 0xD82, + 0xD84, + 0xD85, + 0xD8F, + 0xD91, + 0xD97, + 0xD9A, + 0xDA6, + 0xDA7, + 0xDB2, + 0xDB3, + 0xDBC, + 0xDBD, + 0xDBE, + 0xDC0, + 0xDC7, + 0xDCA, + 0xDCB, + 0xDCF, + 0xDD5, + 0xDD6, + 0xDD7, + 0xDD8, + 0xDDF, + 0xDF2, + 0xDF3, + 0xE01, + 0xE33, + 0xE34, + 0xE3B, + 0xE40, + 0xE4F, + 0xE50, + 0xE5A, + 0xE81, + 0xE83, + 0xE84, + 0xE85, + 0xE86, + 0xE8B, + 0xE8C, + 0xEA4, + 0xEA5, + 0xEA6, + 0xEA7, + 0xEB3, + 0xEB4, + 0xEBE, + 0xEC0, + 0xEC5, + 0xEC6, + 0xEC7, + 0xEC8, + 0xECE, + 0xED0, + 0xEDA, + 0xEDE, + 0xEE0, + 0xF00, + 0xF01, + 0xF0B, + 0xF0C, + 0xF20, + 0xF2A, + 0xF35, + 0xF36, + 0xF37, + 0xF38, + 0xF3E, + 0xF43, + 0xF44, + 0xF48, + 0xF49, + 0xF4D, + 0xF4E, + 0xF52, + 0xF53, + 0xF57, + 0xF58, + 0xF5C, + 0xF5D, + 0xF69, + 0xF6A, + 0xF6D, + 0xF71, + 0xF73, + 0xF74, + 0xF75, + 0xF7A, + 0xF81, + 0xF82, + 0xF85, + 0xF86, + 0xF93, + 0xF94, + 0xF98, + 0xF99, + 0xF9D, + 0xF9E, + 0xFA2, + 0xFA3, + 0xFA7, + 0xFA8, + 0xFAC, + 0xFAD, + 0xFB9, + 0xFBA, + 0xFBD, + 0xFC6, + 0xFC7, + 0x1000, + 0x104A, + 0x1050, + 0x109E, + 0x10C7, + 0x10C8, + 0x10CD, + 0x10CE, + 0x10D0, + 0x10F1, + 0x10F7, + 0x10FB, + 0x10FD, + 0x1100, + 0x1200, + 0x1249, + 0x124A, + 0x124E, + 0x1250, + 0x1257, + 0x1258, + 0x1259, + 0x125A, + 0x125E, + 0x1260, + 0x1289, + 0x128A, + 0x128E, + 0x1290, + 0x12B1, + 0x12B2, + 0x12B6, + 0x12B8, + 0x12BF, + 0x12C0, + 0x12C1, + 0x12C2, + 0x12C6, + 0x12C8, + 0x12D7, + 0x12D8, + 0x1311, + 0x1312, + 0x1316, + 0x1318, + 0x135B, + 0x135D, + 0x1360, + 0x1380, + 0x1390, + 0x1780, + 0x17A3, + 0x17A5, + 0x17A8, + 0x17A9, + 0x17B4, + 0x17B6, + 0x17CB, + 0x17D2, + 0x17D3, + 0x17D7, + 0x17D8, + 0x17DC, + 0x17DD, + 0x17E0, + 0x17EA, + 0x1C90, + 0x1CBB, + 0x1CBD, + 0x1CC0, + 0x1E00, + 0x1E9A, + 0x1E9E, + 0x1E9F, + 0x1EA0, + 0x1EFA, + 0x1F00, + 0x1F16, + 0x1F18, + 0x1F1E, + 0x1F20, + 0x1F46, + 0x1F48, + 0x1F4E, + 0x1F50, + 0x1F58, + 0x1F59, + 0x1F5A, + 0x1F5B, + 0x1F5C, + 0x1F5D, + 0x1F5E, + 0x1F5F, + 0x1F71, + 0x1F72, + 0x1F73, + 0x1F74, + 0x1F75, + 0x1F76, + 0x1F77, + 0x1F78, + 0x1F79, + 0x1F7A, + 0x1F7B, + 0x1F7C, + 0x1F7D, + 0x1F80, + 0x1FB5, + 0x1FB6, + 0x1FBB, + 0x1FBC, + 0x1FBD, + 0x1FC2, + 0x1FC5, + 0x1FC6, + 0x1FC9, + 0x1FCA, + 0x1FCB, + 0x1FCC, + 0x1FCD, + 0x1FD0, + 0x1FD3, + 0x1FD6, + 0x1FDB, + 0x1FE0, + 0x1FE3, + 0x1FE4, + 0x1FEB, + 0x1FEC, + 0x1FED, + 0x1FF2, + 0x1FF5, + 0x1FF6, + 0x1FF9, + 0x1FFA, + 0x1FFB, + 0x1FFC, + 0x1FFD, + 0x200C, + 0x200E, + 0x2010, + 0x2011, + 0x2019, + 0x201A, + 0x2027, + 0x2028, + 0x2D27, + 0x2D28, + 0x2D2D, + 0x2D2E, + 0x2D80, + 0x2D97, + 0x2DA0, + 0x2DA7, + 0x2DA8, + 0x2DAF, + 0x2DB0, + 0x2DB7, + 0x2DB8, + 0x2DBF, + 0x2DC0, + 0x2DC7, + 0x2DC8, + 0x2DCF, + 0x2DD0, + 0x2DD7, + 0x2DD8, + 0x2DDF, + 0x3005, + 0x3008, + 0x3041, + 0x3097, + 0x3099, + 0x309B, + 0x309D, + 0x309F, + 0x30A0, + 0x30FF, + 0x3105, + 0x312E, + 0x312F, + 0x3130, + 0x31A0, + 0x31C0, + 0x3400, + 0x4DC0, + 0x4E00, + 0x9FFD, + 0xA67F, + 0xA680, + 0xA717, + 0xA720, + 0xA788, + 0xA789, + 0xA78D, + 0xA78E, + 0xA792, + 0xA794, + 0xA7AA, + 0xA7AB, + 0xA7AE, + 0xA7AF, + 0xA7B8, + 0xA7BA, + 0xA7C2, + 0xA7CB, + 0xA9E7, + 0xA9FF, + 0xAA60, + 0xAA77, + 0xAA7A, + 0xAA80, + 0xAB01, + 0xAB07, + 0xAB09, + 0xAB0F, + 0xAB11, + 0xAB17, + 0xAB20, + 0xAB27, + 0xAB28, + 0xAB2F, + 0xAB66, + 0xAB68, + 0xAC00, + 0xD7A4, + 0xFA0E, + 0xFA10, + 0xFA11, + 0xFA12, + 0xFA13, + 0xFA15, + 0xFA1F, + 0xFA20, + 0xFA21, + 0xFA22, + 0xFA23, + 0xFA25, + 0xFA27, + 0xFA2A, + 0x11301, + 0x11302, + 0x11303, + 0x11304, + 0x1133B, + 0x1133D, + 0x16FF0, + 0x16FF2, + 0x1B150, + 0x1B153, + 0x1B164, + 0x1B168, + 0x20000, + 0x2A6DE, + 0x2A700, + 0x2B735, + 0x2B740, + 0x2B81E, + 0x2B820, + 0x2CEA2, + 0x2CEB0, + 0x2EBE1, + 0x30000, + 0x3134B +}; + +# endif /* EBCDIC 1047 */ + +# if 'A' == 193 /* EBCDIC 037 */ \ + && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \ + && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \ + && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 + +static const UV UNI_IDENTIFIERSTATUS__ALLOWED_invlist[] = { /* for EBCDIC 037 */ + 779, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x42, + 0x4A, + 0x4B, + 0x4C, + 0x51, + 0x5A, + 0x60, + 0x61, + 0x62, + 0x6A, + 0x6D, + 0x6E, + 0x70, + 0x79, + 0x7A, + 0x7B, + 0x7D, + 0x7E, + 0x80, + 0x8A, + 0x8C, + 0x8F, + 0x91, + 0x9A, + 0x9C, + 0x9D, + 0x9E, + 0x9F, + 0xA2, + 0xAA, + 0xAC, + 0xAF, + 0xB3, + 0xB4, + 0xC1, + 0xCA, + 0xCB, + 0xD0, + 0xD1, + 0xDA, + 0xDB, + 0xE0, + 0xE2, + 0xEA, + 0xEB, + 0xFA, + 0xFB, + 0xFF, + 0x100, + 0x132, + 0x134, + 0x13F, + 0x141, + 0x149, + 0x14A, + 0x17F, + 0x18F, + 0x190, + 0x1A0, + 0x1A2, + 0x1AF, + 0x1B1, + 0x1CD, + 0x1DD, + 0x1DE, + 0x1E4, + 0x1E6, + 0x1F1, + 0x1F4, + 0x1F6, + 0x1F8, + 0x21C, + 0x21E, + 0x220, + 0x226, + 0x234, + 0x259, + 0x25A, + 0x2BB, + 0x2BD, + 0x2EC, + 0x2ED, + 0x300, + 0x305, + 0x306, + 0x30D, + 0x30F, + 0x312, + 0x313, + 0x315, + 0x31B, + 0x31C, + 0x323, + 0x329, + 0x32D, + 0x32F, + 0x330, + 0x332, + 0x335, + 0x336, + 0x338, + 0x33A, + 0x342, + 0x343, + 0x345, + 0x346, + 0x375, + 0x376, + 0x37B, + 0x37E, + 0x386, + 0x387, + 0x388, + 0x38B, + 0x38C, + 0x38D, + 0x38E, + 0x3A2, + 0x3A3, + 0x3CF, + 0x3FC, + 0x460, + 0x48A, + 0x500, + 0x510, + 0x52A, + 0x52E, + 0x530, + 0x531, + 0x557, + 0x559, + 0x55A, + 0x561, + 0x587, + 0x58A, + 0x58B, + 0x5B4, + 0x5B5, + 0x5D0, + 0x5EB, + 0x5EF, + 0x5F5, + 0x620, + 0x640, + 0x641, + 0x656, + 0x660, + 0x66A, + 0x670, + 0x673, + 0x674, + 0x675, + 0x679, + 0x68E, + 0x68F, + 0x6A1, + 0x6A2, + 0x6D4, + 0x6D5, + 0x6D6, + 0x6E5, + 0x6E7, + 0x6EE, + 0x700, + 0x750, + 0x7B2, + 0x8A0, + 0x8AD, + 0x8B2, + 0x8B3, + 0x8B6, + 0x8C8, + 0x901, + 0x94E, + 0x94F, + 0x951, + 0x956, + 0x958, + 0x960, + 0x964, + 0x966, + 0x970, + 0x971, + 0x978, + 0x979, + 0x980, + 0x981, + 0x984, + 0x985, + 0x98D, + 0x98F, + 0x991, + 0x993, + 0x9A9, + 0x9AA, + 0x9B1, + 0x9B2, + 0x9B3, + 0x9B6, + 0x9BA, + 0x9BC, + 0x9C5, + 0x9C7, + 0x9C9, + 0x9CB, + 0x9CF, + 0x9D7, + 0x9D8, + 0x9E0, + 0x9E4, + 0x9E6, + 0x9F2, + 0x9FE, + 0x9FF, + 0xA01, + 0xA04, + 0xA05, + 0xA0B, + 0xA0F, + 0xA11, + 0xA13, + 0xA29, + 0xA2A, + 0xA31, + 0xA32, + 0xA33, + 0xA35, + 0xA36, + 0xA38, + 0xA3A, + 0xA3C, + 0xA3D, + 0xA3E, + 0xA43, + 0xA47, + 0xA49, + 0xA4B, + 0xA4E, + 0xA5C, + 0xA5D, + 0xA66, + 0xA75, + 0xA81, + 0xA84, + 0xA85, + 0xA8E, + 0xA8F, + 0xA92, + 0xA93, + 0xAA9, + 0xAAA, + 0xAB1, + 0xAB2, + 0xAB4, + 0xAB5, + 0xABA, + 0xABC, + 0xAC6, + 0xAC7, + 0xACA, + 0xACB, + 0xACE, + 0xAD0, + 0xAD1, + 0xAE0, + 0xAE4, + 0xAE6, + 0xAF0, + 0xAFA, + 0xB00, + 0xB01, + 0xB04, + 0xB05, + 0xB0D, + 0xB0F, + 0xB11, + 0xB13, + 0xB29, + 0xB2A, + 0xB31, + 0xB32, + 0xB34, + 0xB35, + 0xB3A, + 0xB3C, + 0xB44, + 0xB47, + 0xB49, + 0xB4B, + 0xB4E, + 0xB55, + 0xB58, + 0xB5F, + 0xB62, + 0xB66, + 0xB70, + 0xB71, + 0xB72, + 0xB82, + 0xB84, + 0xB85, + 0xB8B, + 0xB8E, + 0xB91, + 0xB92, + 0xB96, + 0xB99, + 0xB9B, + 0xB9C, + 0xB9D, + 0xB9E, + 0xBA0, + 0xBA3, + 0xBA5, + 0xBA8, + 0xBAB, + 0xBAE, + 0xBBA, + 0xBBE, + 0xBC3, + 0xBC6, + 0xBC9, + 0xBCA, + 0xBCE, + 0xBD0, + 0xBD1, + 0xBD7, + 0xBD8, + 0xBE6, + 0xBF0, + 0xC01, + 0xC0D, + 0xC0E, + 0xC11, + 0xC12, + 0xC29, + 0xC2A, + 0xC34, + 0xC35, + 0xC3A, + 0xC3D, + 0xC45, + 0xC46, + 0xC49, + 0xC4A, + 0xC4E, + 0xC55, + 0xC57, + 0xC60, + 0xC62, + 0xC66, + 0xC70, + 0xC80, + 0xC81, + 0xC82, + 0xC84, + 0xC85, + 0xC8D, + 0xC8E, + 0xC91, + 0xC92, + 0xCA9, + 0xCAA, + 0xCB4, + 0xCB5, + 0xCBA, + 0xCBC, + 0xCC5, + 0xCC6, + 0xCC9, + 0xCCA, + 0xCCE, + 0xCD5, + 0xCD7, + 0xCE0, + 0xCE4, + 0xCE6, + 0xCF0, + 0xCF1, + 0xCF3, + 0xD00, + 0xD01, + 0xD02, + 0xD04, + 0xD05, + 0xD0D, + 0xD0E, + 0xD11, + 0xD12, + 0xD3B, + 0xD3D, + 0xD44, + 0xD46, + 0xD49, + 0xD4A, + 0xD4F, + 0xD54, + 0xD58, + 0xD60, + 0xD62, + 0xD66, + 0xD70, + 0xD7A, + 0xD80, + 0xD82, + 0xD84, + 0xD85, + 0xD8F, + 0xD91, + 0xD97, + 0xD9A, + 0xDA6, + 0xDA7, + 0xDB2, + 0xDB3, + 0xDBC, + 0xDBD, + 0xDBE, + 0xDC0, + 0xDC7, + 0xDCA, + 0xDCB, + 0xDCF, + 0xDD5, + 0xDD6, + 0xDD7, + 0xDD8, + 0xDDF, + 0xDF2, + 0xDF3, + 0xE01, + 0xE33, + 0xE34, + 0xE3B, + 0xE40, + 0xE4F, + 0xE50, + 0xE5A, + 0xE81, + 0xE83, + 0xE84, + 0xE85, + 0xE86, + 0xE8B, + 0xE8C, + 0xEA4, + 0xEA5, + 0xEA6, + 0xEA7, + 0xEB3, + 0xEB4, + 0xEBE, + 0xEC0, + 0xEC5, + 0xEC6, + 0xEC7, + 0xEC8, + 0xECE, + 0xED0, + 0xEDA, + 0xEDE, + 0xEE0, + 0xF00, + 0xF01, + 0xF0B, + 0xF0C, + 0xF20, + 0xF2A, + 0xF35, + 0xF36, + 0xF37, + 0xF38, + 0xF3E, + 0xF43, + 0xF44, + 0xF48, + 0xF49, + 0xF4D, + 0xF4E, + 0xF52, + 0xF53, + 0xF57, + 0xF58, + 0xF5C, + 0xF5D, + 0xF69, + 0xF6A, + 0xF6D, + 0xF71, + 0xF73, + 0xF74, + 0xF75, + 0xF7A, + 0xF81, + 0xF82, + 0xF85, + 0xF86, + 0xF93, + 0xF94, + 0xF98, + 0xF99, + 0xF9D, + 0xF9E, + 0xFA2, + 0xFA3, + 0xFA7, + 0xFA8, + 0xFAC, + 0xFAD, + 0xFB9, + 0xFBA, + 0xFBD, + 0xFC6, + 0xFC7, + 0x1000, + 0x104A, + 0x1050, + 0x109E, + 0x10C7, + 0x10C8, + 0x10CD, + 0x10CE, + 0x10D0, + 0x10F1, + 0x10F7, + 0x10FB, + 0x10FD, + 0x1100, + 0x1200, + 0x1249, + 0x124A, + 0x124E, + 0x1250, + 0x1257, + 0x1258, + 0x1259, + 0x125A, + 0x125E, + 0x1260, + 0x1289, + 0x128A, + 0x128E, + 0x1290, + 0x12B1, + 0x12B2, + 0x12B6, + 0x12B8, + 0x12BF, + 0x12C0, + 0x12C1, + 0x12C2, + 0x12C6, + 0x12C8, + 0x12D7, + 0x12D8, + 0x1311, + 0x1312, + 0x1316, + 0x1318, + 0x135B, + 0x135D, + 0x1360, + 0x1380, + 0x1390, + 0x1780, + 0x17A3, + 0x17A5, + 0x17A8, + 0x17A9, + 0x17B4, + 0x17B6, + 0x17CB, + 0x17D2, + 0x17D3, + 0x17D7, + 0x17D8, + 0x17DC, + 0x17DD, + 0x17E0, + 0x17EA, + 0x1C90, + 0x1CBB, + 0x1CBD, + 0x1CC0, + 0x1E00, + 0x1E9A, + 0x1E9E, + 0x1E9F, + 0x1EA0, + 0x1EFA, + 0x1F00, + 0x1F16, + 0x1F18, + 0x1F1E, + 0x1F20, + 0x1F46, + 0x1F48, + 0x1F4E, + 0x1F50, + 0x1F58, + 0x1F59, + 0x1F5A, + 0x1F5B, + 0x1F5C, + 0x1F5D, + 0x1F5E, + 0x1F5F, + 0x1F71, + 0x1F72, + 0x1F73, + 0x1F74, + 0x1F75, + 0x1F76, + 0x1F77, + 0x1F78, + 0x1F79, + 0x1F7A, + 0x1F7B, + 0x1F7C, + 0x1F7D, + 0x1F80, + 0x1FB5, + 0x1FB6, + 0x1FBB, + 0x1FBC, + 0x1FBD, + 0x1FC2, + 0x1FC5, + 0x1FC6, + 0x1FC9, + 0x1FCA, + 0x1FCB, + 0x1FCC, + 0x1FCD, + 0x1FD0, + 0x1FD3, + 0x1FD6, + 0x1FDB, + 0x1FE0, + 0x1FE3, + 0x1FE4, + 0x1FEB, + 0x1FEC, + 0x1FED, + 0x1FF2, + 0x1FF5, + 0x1FF6, + 0x1FF9, + 0x1FFA, + 0x1FFB, + 0x1FFC, + 0x1FFD, + 0x200C, + 0x200E, + 0x2010, + 0x2011, + 0x2019, + 0x201A, + 0x2027, + 0x2028, + 0x2D27, + 0x2D28, + 0x2D2D, + 0x2D2E, + 0x2D80, + 0x2D97, + 0x2DA0, + 0x2DA7, + 0x2DA8, + 0x2DAF, + 0x2DB0, + 0x2DB7, + 0x2DB8, + 0x2DBF, + 0x2DC0, + 0x2DC7, + 0x2DC8, + 0x2DCF, + 0x2DD0, + 0x2DD7, + 0x2DD8, + 0x2DDF, + 0x3005, + 0x3008, + 0x3041, + 0x3097, + 0x3099, + 0x309B, + 0x309D, + 0x309F, + 0x30A0, + 0x30FF, + 0x3105, + 0x312E, + 0x312F, + 0x3130, + 0x31A0, + 0x31C0, + 0x3400, + 0x4DC0, + 0x4E00, + 0x9FFD, + 0xA67F, + 0xA680, + 0xA717, + 0xA720, + 0xA788, + 0xA789, + 0xA78D, + 0xA78E, + 0xA792, + 0xA794, + 0xA7AA, + 0xA7AB, + 0xA7AE, + 0xA7AF, + 0xA7B8, + 0xA7BA, + 0xA7C2, + 0xA7CB, + 0xA9E7, + 0xA9FF, + 0xAA60, + 0xAA77, + 0xAA7A, + 0xAA80, + 0xAB01, + 0xAB07, + 0xAB09, + 0xAB0F, + 0xAB11, + 0xAB17, + 0xAB20, + 0xAB27, + 0xAB28, + 0xAB2F, + 0xAB66, + 0xAB68, + 0xAC00, + 0xD7A4, + 0xFA0E, + 0xFA10, + 0xFA11, + 0xFA12, + 0xFA13, + 0xFA15, + 0xFA1F, + 0xFA20, + 0xFA21, + 0xFA22, + 0xFA23, + 0xFA25, + 0xFA27, + 0xFA2A, + 0x11301, + 0x11302, + 0x11303, + 0x11304, + 0x1133B, + 0x1133D, + 0x16FF0, + 0x16FF2, + 0x1B150, + 0x1B153, + 0x1B164, + 0x1B168, + 0x20000, + 0x2A6DE, + 0x2A700, + 0x2B735, + 0x2B740, + 0x2B81E, + 0x2B820, + 0x2CEA2, + 0x2CEB0, + 0x2EBE1, + 0x30000, + 0x3134B +}; + +# endif /* EBCDIC 037 */ + +# if 'A' == 65 /* ASCII/Latin1 */ + +static const UV UNI_IDENTIFIERSTATUS__RESTRICTED_invlist[] = { /* for ASCII/Latin1 */ + 749, /* Number of elements */ + 148565664, /* Version and data structure type */ + 0, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x27, + 0x28, + 0x2D, + 0x2F, + 0x30, + 0x3B, + 0x41, + 0x5B, + 0x5F, + 0x60, + 0x61, + 0x7B, + 0xB7, + 0xB8, + 0xC0, + 0xD7, + 0xD8, + 0xF7, + 0xF8, + 0x132, + 0x134, + 0x13F, + 0x141, + 0x149, + 0x14A, + 0x17F, + 0x18F, + 0x190, + 0x1A0, + 0x1A2, + 0x1AF, + 0x1B1, + 0x1CD, + 0x1DD, + 0x1DE, + 0x1E4, + 0x1E6, + 0x1F1, + 0x1F4, + 0x1F6, + 0x1F8, + 0x21C, + 0x21E, + 0x220, + 0x226, + 0x234, + 0x259, + 0x25A, + 0x2BB, + 0x2BD, + 0x2EC, + 0x2ED, + 0x300, + 0x305, + 0x306, + 0x30D, + 0x30F, + 0x312, + 0x313, + 0x315, + 0x31B, + 0x31C, + 0x323, + 0x329, + 0x32D, + 0x32F, + 0x330, + 0x332, + 0x335, + 0x336, + 0x338, + 0x33A, + 0x342, + 0x343, + 0x345, + 0x346, + 0x375, + 0x376, + 0x37B, + 0x37E, + 0x386, + 0x387, + 0x388, + 0x38B, + 0x38C, + 0x38D, + 0x38E, + 0x3A2, + 0x3A3, + 0x3CF, + 0x3FC, + 0x460, + 0x48A, + 0x500, + 0x510, + 0x52A, + 0x52E, + 0x530, + 0x531, + 0x557, + 0x559, + 0x55A, + 0x561, + 0x587, + 0x58A, + 0x58B, + 0x5B4, + 0x5B5, + 0x5D0, + 0x5EB, + 0x5EF, + 0x5F5, + 0x620, + 0x640, + 0x641, + 0x656, + 0x660, + 0x66A, + 0x670, + 0x673, + 0x674, + 0x675, + 0x679, + 0x68E, + 0x68F, + 0x6A1, + 0x6A2, + 0x6D4, + 0x6D5, + 0x6D6, + 0x6E5, + 0x6E7, + 0x6EE, + 0x700, + 0x750, + 0x7B2, + 0x8A0, + 0x8AD, + 0x8B2, + 0x8B3, + 0x8B6, + 0x8C8, + 0x901, + 0x94E, + 0x94F, + 0x951, + 0x956, + 0x958, + 0x960, + 0x964, + 0x966, + 0x970, + 0x971, + 0x978, + 0x979, + 0x980, + 0x981, + 0x984, + 0x985, + 0x98D, + 0x98F, + 0x991, + 0x993, + 0x9A9, + 0x9AA, + 0x9B1, + 0x9B2, + 0x9B3, + 0x9B6, + 0x9BA, + 0x9BC, + 0x9C5, + 0x9C7, + 0x9C9, + 0x9CB, + 0x9CF, + 0x9D7, + 0x9D8, + 0x9E0, + 0x9E4, + 0x9E6, + 0x9F2, + 0x9FE, + 0x9FF, + 0xA01, + 0xA04, + 0xA05, + 0xA0B, + 0xA0F, + 0xA11, + 0xA13, + 0xA29, + 0xA2A, + 0xA31, + 0xA32, + 0xA33, + 0xA35, + 0xA36, + 0xA38, + 0xA3A, + 0xA3C, + 0xA3D, + 0xA3E, + 0xA43, + 0xA47, + 0xA49, + 0xA4B, + 0xA4E, + 0xA5C, + 0xA5D, + 0xA66, + 0xA75, + 0xA81, + 0xA84, + 0xA85, + 0xA8E, + 0xA8F, + 0xA92, + 0xA93, + 0xAA9, + 0xAAA, + 0xAB1, + 0xAB2, + 0xAB4, + 0xAB5, + 0xABA, + 0xABC, + 0xAC6, + 0xAC7, + 0xACA, + 0xACB, + 0xACE, + 0xAD0, + 0xAD1, + 0xAE0, + 0xAE4, + 0xAE6, + 0xAF0, + 0xAFA, + 0xB00, + 0xB01, + 0xB04, + 0xB05, + 0xB0D, + 0xB0F, + 0xB11, + 0xB13, + 0xB29, + 0xB2A, + 0xB31, + 0xB32, + 0xB34, + 0xB35, + 0xB3A, + 0xB3C, + 0xB44, + 0xB47, + 0xB49, + 0xB4B, + 0xB4E, + 0xB55, + 0xB58, + 0xB5F, + 0xB62, + 0xB66, + 0xB70, + 0xB71, + 0xB72, + 0xB82, + 0xB84, + 0xB85, + 0xB8B, + 0xB8E, + 0xB91, + 0xB92, + 0xB96, + 0xB99, + 0xB9B, + 0xB9C, + 0xB9D, + 0xB9E, + 0xBA0, + 0xBA3, + 0xBA5, + 0xBA8, + 0xBAB, + 0xBAE, + 0xBBA, + 0xBBE, + 0xBC3, + 0xBC6, + 0xBC9, + 0xBCA, + 0xBCE, + 0xBD0, + 0xBD1, + 0xBD7, + 0xBD8, + 0xBE6, + 0xBF0, + 0xC01, + 0xC0D, + 0xC0E, + 0xC11, + 0xC12, + 0xC29, + 0xC2A, + 0xC34, + 0xC35, + 0xC3A, + 0xC3D, + 0xC45, + 0xC46, + 0xC49, + 0xC4A, + 0xC4E, + 0xC55, + 0xC57, + 0xC60, + 0xC62, + 0xC66, + 0xC70, + 0xC80, + 0xC81, + 0xC82, + 0xC84, + 0xC85, + 0xC8D, + 0xC8E, + 0xC91, + 0xC92, + 0xCA9, + 0xCAA, + 0xCB4, + 0xCB5, + 0xCBA, + 0xCBC, + 0xCC5, + 0xCC6, + 0xCC9, + 0xCCA, + 0xCCE, + 0xCD5, + 0xCD7, + 0xCE0, + 0xCE4, + 0xCE6, + 0xCF0, + 0xCF1, + 0xCF3, + 0xD00, + 0xD01, + 0xD02, + 0xD04, + 0xD05, + 0xD0D, + 0xD0E, + 0xD11, + 0xD12, + 0xD3B, + 0xD3D, + 0xD44, + 0xD46, + 0xD49, + 0xD4A, + 0xD4F, + 0xD54, + 0xD58, + 0xD60, + 0xD62, + 0xD66, + 0xD70, + 0xD7A, + 0xD80, + 0xD82, + 0xD84, + 0xD85, + 0xD8F, + 0xD91, + 0xD97, + 0xD9A, + 0xDA6, + 0xDA7, + 0xDB2, + 0xDB3, + 0xDBC, + 0xDBD, + 0xDBE, + 0xDC0, + 0xDC7, + 0xDCA, + 0xDCB, + 0xDCF, + 0xDD5, + 0xDD6, + 0xDD7, + 0xDD8, + 0xDDF, + 0xDF2, + 0xDF3, + 0xE01, + 0xE33, + 0xE34, + 0xE3B, + 0xE40, + 0xE4F, + 0xE50, + 0xE5A, + 0xE81, + 0xE83, + 0xE84, + 0xE85, + 0xE86, + 0xE8B, + 0xE8C, + 0xEA4, + 0xEA5, + 0xEA6, + 0xEA7, + 0xEB3, + 0xEB4, + 0xEBE, + 0xEC0, + 0xEC5, + 0xEC6, + 0xEC7, + 0xEC8, + 0xECE, + 0xED0, + 0xEDA, + 0xEDE, + 0xEE0, + 0xF00, + 0xF01, + 0xF0B, + 0xF0C, + 0xF20, + 0xF2A, + 0xF35, + 0xF36, + 0xF37, + 0xF38, + 0xF3E, + 0xF43, + 0xF44, + 0xF48, + 0xF49, + 0xF4D, + 0xF4E, + 0xF52, + 0xF53, + 0xF57, + 0xF58, + 0xF5C, + 0xF5D, + 0xF69, + 0xF6A, + 0xF6D, + 0xF71, + 0xF73, + 0xF74, + 0xF75, + 0xF7A, + 0xF81, + 0xF82, + 0xF85, + 0xF86, + 0xF93, + 0xF94, + 0xF98, + 0xF99, + 0xF9D, + 0xF9E, + 0xFA2, + 0xFA3, + 0xFA7, + 0xFA8, + 0xFAC, + 0xFAD, + 0xFB9, + 0xFBA, + 0xFBD, + 0xFC6, + 0xFC7, + 0x1000, + 0x104A, + 0x1050, + 0x109E, + 0x10C7, + 0x10C8, + 0x10CD, + 0x10CE, + 0x10D0, + 0x10F1, + 0x10F7, + 0x10FB, + 0x10FD, + 0x1100, + 0x1200, + 0x1249, + 0x124A, + 0x124E, + 0x1250, + 0x1257, + 0x1258, + 0x1259, + 0x125A, + 0x125E, + 0x1260, + 0x1289, + 0x128A, + 0x128E, + 0x1290, + 0x12B1, + 0x12B2, + 0x12B6, + 0x12B8, + 0x12BF, + 0x12C0, + 0x12C1, + 0x12C2, + 0x12C6, + 0x12C8, + 0x12D7, + 0x12D8, + 0x1311, + 0x1312, + 0x1316, + 0x1318, + 0x135B, + 0x135D, + 0x1360, + 0x1380, + 0x1390, + 0x1780, + 0x17A3, + 0x17A5, + 0x17A8, + 0x17A9, + 0x17B4, + 0x17B6, + 0x17CB, + 0x17D2, + 0x17D3, + 0x17D7, + 0x17D8, + 0x17DC, + 0x17DD, + 0x17E0, + 0x17EA, + 0x1C90, + 0x1CBB, + 0x1CBD, + 0x1CC0, + 0x1E00, + 0x1E9A, + 0x1E9E, + 0x1E9F, + 0x1EA0, + 0x1EFA, + 0x1F00, + 0x1F16, + 0x1F18, + 0x1F1E, + 0x1F20, + 0x1F46, + 0x1F48, + 0x1F4E, + 0x1F50, + 0x1F58, + 0x1F59, + 0x1F5A, + 0x1F5B, + 0x1F5C, + 0x1F5D, + 0x1F5E, + 0x1F5F, + 0x1F71, + 0x1F72, + 0x1F73, + 0x1F74, + 0x1F75, + 0x1F76, + 0x1F77, + 0x1F78, + 0x1F79, + 0x1F7A, + 0x1F7B, + 0x1F7C, + 0x1F7D, + 0x1F80, + 0x1FB5, + 0x1FB6, + 0x1FBB, + 0x1FBC, + 0x1FBD, + 0x1FC2, + 0x1FC5, + 0x1FC6, + 0x1FC9, + 0x1FCA, + 0x1FCB, + 0x1FCC, + 0x1FCD, + 0x1FD0, + 0x1FD3, + 0x1FD6, + 0x1FDB, + 0x1FE0, + 0x1FE3, + 0x1FE4, + 0x1FEB, + 0x1FEC, + 0x1FED, + 0x1FF2, + 0x1FF5, + 0x1FF6, + 0x1FF9, + 0x1FFA, + 0x1FFB, + 0x1FFC, + 0x1FFD, + 0x200C, + 0x200E, + 0x2010, + 0x2011, + 0x2019, + 0x201A, + 0x2027, + 0x2028, + 0x2D27, + 0x2D28, + 0x2D2D, + 0x2D2E, + 0x2D80, + 0x2D97, + 0x2DA0, + 0x2DA7, + 0x2DA8, + 0x2DAF, + 0x2DB0, + 0x2DB7, + 0x2DB8, + 0x2DBF, + 0x2DC0, + 0x2DC7, + 0x2DC8, + 0x2DCF, + 0x2DD0, + 0x2DD7, + 0x2DD8, + 0x2DDF, + 0x3005, + 0x3008, + 0x3041, + 0x3097, + 0x3099, + 0x309B, + 0x309D, + 0x309F, + 0x30A0, + 0x30FF, + 0x3105, + 0x312E, + 0x312F, + 0x3130, + 0x31A0, + 0x31C0, + 0x3400, + 0x4DC0, + 0x4E00, + 0x9FFD, + 0xA67F, + 0xA680, + 0xA717, + 0xA720, + 0xA788, + 0xA789, + 0xA78D, + 0xA78E, + 0xA792, + 0xA794, + 0xA7AA, + 0xA7AB, + 0xA7AE, + 0xA7AF, + 0xA7B8, + 0xA7BA, + 0xA7C2, + 0xA7CB, + 0xA9E7, + 0xA9FF, + 0xAA60, + 0xAA77, + 0xAA7A, + 0xAA80, + 0xAB01, + 0xAB07, + 0xAB09, + 0xAB0F, + 0xAB11, + 0xAB17, + 0xAB20, + 0xAB27, + 0xAB28, + 0xAB2F, + 0xAB66, + 0xAB68, + 0xAC00, + 0xD7A4, + 0xFA0E, + 0xFA10, + 0xFA11, + 0xFA12, + 0xFA13, + 0xFA15, + 0xFA1F, + 0xFA20, + 0xFA21, + 0xFA22, + 0xFA23, + 0xFA25, + 0xFA27, + 0xFA2A, + 0x11301, + 0x11302, + 0x11303, + 0x11304, + 0x1133B, + 0x1133D, + 0x16FF0, + 0x16FF2, + 0x1B150, + 0x1B153, + 0x1B164, + 0x1B168, + 0x20000, + 0x2A6DE, + 0x2A700, + 0x2B735, + 0x2B740, + 0x2B81E, + 0x2B820, + 0x2CEA2, + 0x2CEB0, + 0x2EBE1, + 0x30000, + 0x3134B +}; + +# endif /* ASCII/Latin1 */ + +# if 'A' == 193 /* EBCDIC 1047 */ \ + && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \ + && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \ + && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 + +static const UV UNI_IDENTIFIERSTATUS__RESTRICTED_invlist[] = { /* for EBCDIC 1047 */ + 783, /* Number of elements */ + 148565664, /* Version and data structure type */ + 0, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x42, + 0x4A, + 0x4B, + 0x4C, + 0x51, + 0x5A, + 0x60, + 0x61, + 0x62, + 0x6A, + 0x6D, + 0x6E, + 0x70, + 0x79, + 0x7A, + 0x7B, + 0x7D, + 0x7E, + 0x80, + 0x8A, + 0x8C, + 0x8F, + 0x91, + 0x9A, + 0x9C, + 0x9D, + 0x9E, + 0x9F, + 0xA2, + 0xAA, + 0xAC, + 0xAD, + 0xAE, + 0xAF, + 0xB3, + 0xB4, + 0xBA, + 0xBB, + 0xC1, + 0xCA, + 0xCB, + 0xD0, + 0xD1, + 0xDA, + 0xDB, + 0xE0, + 0xE2, + 0xEA, + 0xEB, + 0xFA, + 0xFB, + 0xFF, + 0x100, + 0x132, + 0x134, + 0x13F, + 0x141, + 0x149, + 0x14A, + 0x17F, + 0x18F, + 0x190, + 0x1A0, + 0x1A2, + 0x1AF, + 0x1B1, + 0x1CD, + 0x1DD, + 0x1DE, + 0x1E4, + 0x1E6, + 0x1F1, + 0x1F4, + 0x1F6, + 0x1F8, + 0x21C, + 0x21E, + 0x220, + 0x226, + 0x234, + 0x259, + 0x25A, + 0x2BB, + 0x2BD, + 0x2EC, + 0x2ED, + 0x300, + 0x305, + 0x306, + 0x30D, + 0x30F, + 0x312, + 0x313, + 0x315, + 0x31B, + 0x31C, + 0x323, + 0x329, + 0x32D, + 0x32F, + 0x330, + 0x332, + 0x335, + 0x336, + 0x338, + 0x33A, + 0x342, + 0x343, + 0x345, + 0x346, + 0x375, + 0x376, + 0x37B, + 0x37E, + 0x386, + 0x387, + 0x388, + 0x38B, + 0x38C, + 0x38D, + 0x38E, + 0x3A2, + 0x3A3, + 0x3CF, + 0x3FC, + 0x460, + 0x48A, + 0x500, + 0x510, + 0x52A, + 0x52E, + 0x530, + 0x531, + 0x557, + 0x559, + 0x55A, + 0x561, + 0x587, + 0x58A, + 0x58B, + 0x5B4, + 0x5B5, + 0x5D0, + 0x5EB, + 0x5EF, + 0x5F5, + 0x620, + 0x640, + 0x641, + 0x656, + 0x660, + 0x66A, + 0x670, + 0x673, + 0x674, + 0x675, + 0x679, + 0x68E, + 0x68F, + 0x6A1, + 0x6A2, + 0x6D4, + 0x6D5, + 0x6D6, + 0x6E5, + 0x6E7, + 0x6EE, + 0x700, + 0x750, + 0x7B2, + 0x8A0, + 0x8AD, + 0x8B2, + 0x8B3, + 0x8B6, + 0x8C8, + 0x901, + 0x94E, + 0x94F, + 0x951, + 0x956, + 0x958, + 0x960, + 0x964, + 0x966, + 0x970, + 0x971, + 0x978, + 0x979, + 0x980, + 0x981, + 0x984, + 0x985, + 0x98D, + 0x98F, + 0x991, + 0x993, + 0x9A9, + 0x9AA, + 0x9B1, + 0x9B2, + 0x9B3, + 0x9B6, + 0x9BA, + 0x9BC, + 0x9C5, + 0x9C7, + 0x9C9, + 0x9CB, + 0x9CF, + 0x9D7, + 0x9D8, + 0x9E0, + 0x9E4, + 0x9E6, + 0x9F2, + 0x9FE, + 0x9FF, + 0xA01, + 0xA04, + 0xA05, + 0xA0B, + 0xA0F, + 0xA11, + 0xA13, + 0xA29, + 0xA2A, + 0xA31, + 0xA32, + 0xA33, + 0xA35, + 0xA36, + 0xA38, + 0xA3A, + 0xA3C, + 0xA3D, + 0xA3E, + 0xA43, + 0xA47, + 0xA49, + 0xA4B, + 0xA4E, + 0xA5C, + 0xA5D, + 0xA66, + 0xA75, + 0xA81, + 0xA84, + 0xA85, + 0xA8E, + 0xA8F, + 0xA92, + 0xA93, + 0xAA9, + 0xAAA, + 0xAB1, + 0xAB2, + 0xAB4, + 0xAB5, + 0xABA, + 0xABC, + 0xAC6, + 0xAC7, + 0xACA, + 0xACB, + 0xACE, + 0xAD0, + 0xAD1, + 0xAE0, + 0xAE4, + 0xAE6, + 0xAF0, + 0xAFA, + 0xB00, + 0xB01, + 0xB04, + 0xB05, + 0xB0D, + 0xB0F, + 0xB11, + 0xB13, + 0xB29, + 0xB2A, + 0xB31, + 0xB32, + 0xB34, + 0xB35, + 0xB3A, + 0xB3C, + 0xB44, + 0xB47, + 0xB49, + 0xB4B, + 0xB4E, + 0xB55, + 0xB58, + 0xB5F, + 0xB62, + 0xB66, + 0xB70, + 0xB71, + 0xB72, + 0xB82, + 0xB84, + 0xB85, + 0xB8B, + 0xB8E, + 0xB91, + 0xB92, + 0xB96, + 0xB99, + 0xB9B, + 0xB9C, + 0xB9D, + 0xB9E, + 0xBA0, + 0xBA3, + 0xBA5, + 0xBA8, + 0xBAB, + 0xBAE, + 0xBBA, + 0xBBE, + 0xBC3, + 0xBC6, + 0xBC9, + 0xBCA, + 0xBCE, + 0xBD0, + 0xBD1, + 0xBD7, + 0xBD8, + 0xBE6, + 0xBF0, + 0xC01, + 0xC0D, + 0xC0E, + 0xC11, + 0xC12, + 0xC29, + 0xC2A, + 0xC34, + 0xC35, + 0xC3A, + 0xC3D, + 0xC45, + 0xC46, + 0xC49, + 0xC4A, + 0xC4E, + 0xC55, + 0xC57, + 0xC60, + 0xC62, + 0xC66, + 0xC70, + 0xC80, + 0xC81, + 0xC82, + 0xC84, + 0xC85, + 0xC8D, + 0xC8E, + 0xC91, + 0xC92, + 0xCA9, + 0xCAA, + 0xCB4, + 0xCB5, + 0xCBA, + 0xCBC, + 0xCC5, + 0xCC6, + 0xCC9, + 0xCCA, + 0xCCE, + 0xCD5, + 0xCD7, + 0xCE0, + 0xCE4, + 0xCE6, + 0xCF0, + 0xCF1, + 0xCF3, + 0xD00, + 0xD01, + 0xD02, + 0xD04, + 0xD05, + 0xD0D, + 0xD0E, + 0xD11, + 0xD12, + 0xD3B, + 0xD3D, + 0xD44, + 0xD46, + 0xD49, + 0xD4A, + 0xD4F, + 0xD54, + 0xD58, + 0xD60, + 0xD62, + 0xD66, + 0xD70, + 0xD7A, + 0xD80, + 0xD82, + 0xD84, + 0xD85, + 0xD8F, + 0xD91, + 0xD97, + 0xD9A, + 0xDA6, + 0xDA7, + 0xDB2, + 0xDB3, + 0xDBC, + 0xDBD, + 0xDBE, + 0xDC0, + 0xDC7, + 0xDCA, + 0xDCB, + 0xDCF, + 0xDD5, + 0xDD6, + 0xDD7, + 0xDD8, + 0xDDF, + 0xDF2, + 0xDF3, + 0xE01, + 0xE33, + 0xE34, + 0xE3B, + 0xE40, + 0xE4F, + 0xE50, + 0xE5A, + 0xE81, + 0xE83, + 0xE84, + 0xE85, + 0xE86, + 0xE8B, + 0xE8C, + 0xEA4, + 0xEA5, + 0xEA6, + 0xEA7, + 0xEB3, + 0xEB4, + 0xEBE, + 0xEC0, + 0xEC5, + 0xEC6, + 0xEC7, + 0xEC8, + 0xECE, + 0xED0, + 0xEDA, + 0xEDE, + 0xEE0, + 0xF00, + 0xF01, + 0xF0B, + 0xF0C, + 0xF20, + 0xF2A, + 0xF35, + 0xF36, + 0xF37, + 0xF38, + 0xF3E, + 0xF43, + 0xF44, + 0xF48, + 0xF49, + 0xF4D, + 0xF4E, + 0xF52, + 0xF53, + 0xF57, + 0xF58, + 0xF5C, + 0xF5D, + 0xF69, + 0xF6A, + 0xF6D, + 0xF71, + 0xF73, + 0xF74, + 0xF75, + 0xF7A, + 0xF81, + 0xF82, + 0xF85, + 0xF86, + 0xF93, + 0xF94, + 0xF98, + 0xF99, + 0xF9D, + 0xF9E, + 0xFA2, + 0xFA3, + 0xFA7, + 0xFA8, + 0xFAC, + 0xFAD, + 0xFB9, + 0xFBA, + 0xFBD, + 0xFC6, + 0xFC7, + 0x1000, + 0x104A, + 0x1050, + 0x109E, + 0x10C7, + 0x10C8, + 0x10CD, + 0x10CE, + 0x10D0, + 0x10F1, + 0x10F7, + 0x10FB, + 0x10FD, + 0x1100, + 0x1200, + 0x1249, + 0x124A, + 0x124E, + 0x1250, + 0x1257, + 0x1258, + 0x1259, + 0x125A, + 0x125E, + 0x1260, + 0x1289, + 0x128A, + 0x128E, + 0x1290, + 0x12B1, + 0x12B2, + 0x12B6, + 0x12B8, + 0x12BF, + 0x12C0, + 0x12C1, + 0x12C2, + 0x12C6, + 0x12C8, + 0x12D7, + 0x12D8, + 0x1311, + 0x1312, + 0x1316, + 0x1318, + 0x135B, + 0x135D, + 0x1360, + 0x1380, + 0x1390, + 0x1780, + 0x17A3, + 0x17A5, + 0x17A8, + 0x17A9, + 0x17B4, + 0x17B6, + 0x17CB, + 0x17D2, + 0x17D3, + 0x17D7, + 0x17D8, + 0x17DC, + 0x17DD, + 0x17E0, + 0x17EA, + 0x1C90, + 0x1CBB, + 0x1CBD, + 0x1CC0, + 0x1E00, + 0x1E9A, + 0x1E9E, + 0x1E9F, + 0x1EA0, + 0x1EFA, + 0x1F00, + 0x1F16, + 0x1F18, + 0x1F1E, + 0x1F20, + 0x1F46, + 0x1F48, + 0x1F4E, + 0x1F50, + 0x1F58, + 0x1F59, + 0x1F5A, + 0x1F5B, + 0x1F5C, + 0x1F5D, + 0x1F5E, + 0x1F5F, + 0x1F71, + 0x1F72, + 0x1F73, + 0x1F74, + 0x1F75, + 0x1F76, + 0x1F77, + 0x1F78, + 0x1F79, + 0x1F7A, + 0x1F7B, + 0x1F7C, + 0x1F7D, + 0x1F80, + 0x1FB5, + 0x1FB6, + 0x1FBB, + 0x1FBC, + 0x1FBD, + 0x1FC2, + 0x1FC5, + 0x1FC6, + 0x1FC9, + 0x1FCA, + 0x1FCB, + 0x1FCC, + 0x1FCD, + 0x1FD0, + 0x1FD3, + 0x1FD6, + 0x1FDB, + 0x1FE0, + 0x1FE3, + 0x1FE4, + 0x1FEB, + 0x1FEC, + 0x1FED, + 0x1FF2, + 0x1FF5, + 0x1FF6, + 0x1FF9, + 0x1FFA, + 0x1FFB, + 0x1FFC, + 0x1FFD, + 0x200C, + 0x200E, + 0x2010, + 0x2011, + 0x2019, + 0x201A, + 0x2027, + 0x2028, + 0x2D27, + 0x2D28, + 0x2D2D, + 0x2D2E, + 0x2D80, + 0x2D97, + 0x2DA0, + 0x2DA7, + 0x2DA8, + 0x2DAF, + 0x2DB0, + 0x2DB7, + 0x2DB8, + 0x2DBF, + 0x2DC0, + 0x2DC7, + 0x2DC8, + 0x2DCF, + 0x2DD0, + 0x2DD7, + 0x2DD8, + 0x2DDF, + 0x3005, + 0x3008, + 0x3041, + 0x3097, + 0x3099, + 0x309B, + 0x309D, + 0x309F, + 0x30A0, + 0x30FF, + 0x3105, + 0x312E, + 0x312F, + 0x3130, + 0x31A0, + 0x31C0, + 0x3400, + 0x4DC0, + 0x4E00, + 0x9FFD, + 0xA67F, + 0xA680, + 0xA717, + 0xA720, + 0xA788, + 0xA789, + 0xA78D, + 0xA78E, + 0xA792, + 0xA794, + 0xA7AA, + 0xA7AB, + 0xA7AE, + 0xA7AF, + 0xA7B8, + 0xA7BA, + 0xA7C2, + 0xA7CB, + 0xA9E7, + 0xA9FF, + 0xAA60, + 0xAA77, + 0xAA7A, + 0xAA80, + 0xAB01, + 0xAB07, + 0xAB09, + 0xAB0F, + 0xAB11, + 0xAB17, + 0xAB20, + 0xAB27, + 0xAB28, + 0xAB2F, + 0xAB66, + 0xAB68, + 0xAC00, + 0xD7A4, + 0xFA0E, + 0xFA10, + 0xFA11, + 0xFA12, + 0xFA13, + 0xFA15, + 0xFA1F, + 0xFA20, + 0xFA21, + 0xFA22, + 0xFA23, + 0xFA25, + 0xFA27, + 0xFA2A, + 0x11301, + 0x11302, + 0x11303, + 0x11304, + 0x1133B, + 0x1133D, + 0x16FF0, + 0x16FF2, + 0x1B150, + 0x1B153, + 0x1B164, + 0x1B168, + 0x20000, + 0x2A6DE, + 0x2A700, + 0x2B735, + 0x2B740, + 0x2B81E, + 0x2B820, + 0x2CEA2, + 0x2CEB0, + 0x2EBE1, + 0x30000, + 0x3134B +}; + +# endif /* EBCDIC 1047 */ + +# if 'A' == 193 /* EBCDIC 037 */ \ + && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \ + && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \ + && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 + +static const UV UNI_IDENTIFIERSTATUS__RESTRICTED_invlist[] = { /* for EBCDIC 037 */ + 779, /* Number of elements */ + 148565664, /* Version and data structure type */ + 0, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x42, + 0x4A, + 0x4B, + 0x4C, + 0x51, + 0x5A, + 0x60, + 0x61, + 0x62, + 0x6A, + 0x6D, + 0x6E, + 0x70, + 0x79, + 0x7A, + 0x7B, + 0x7D, + 0x7E, + 0x80, + 0x8A, + 0x8C, + 0x8F, + 0x91, + 0x9A, + 0x9C, + 0x9D, + 0x9E, + 0x9F, + 0xA2, + 0xAA, + 0xAC, + 0xAF, + 0xB3, + 0xB4, + 0xC1, + 0xCA, + 0xCB, + 0xD0, + 0xD1, + 0xDA, + 0xDB, + 0xE0, + 0xE2, + 0xEA, + 0xEB, + 0xFA, + 0xFB, + 0xFF, + 0x100, + 0x132, + 0x134, + 0x13F, + 0x141, + 0x149, + 0x14A, + 0x17F, + 0x18F, + 0x190, + 0x1A0, + 0x1A2, + 0x1AF, + 0x1B1, + 0x1CD, + 0x1DD, + 0x1DE, + 0x1E4, + 0x1E6, + 0x1F1, + 0x1F4, + 0x1F6, + 0x1F8, + 0x21C, + 0x21E, + 0x220, + 0x226, + 0x234, + 0x259, + 0x25A, + 0x2BB, + 0x2BD, + 0x2EC, + 0x2ED, + 0x300, + 0x305, + 0x306, + 0x30D, + 0x30F, + 0x312, + 0x313, + 0x315, + 0x31B, + 0x31C, + 0x323, + 0x329, + 0x32D, + 0x32F, + 0x330, + 0x332, + 0x335, + 0x336, + 0x338, + 0x33A, + 0x342, + 0x343, + 0x345, + 0x346, + 0x375, + 0x376, + 0x37B, + 0x37E, + 0x386, + 0x387, + 0x388, + 0x38B, + 0x38C, + 0x38D, + 0x38E, + 0x3A2, + 0x3A3, + 0x3CF, + 0x3FC, + 0x460, + 0x48A, + 0x500, + 0x510, + 0x52A, + 0x52E, + 0x530, + 0x531, + 0x557, + 0x559, + 0x55A, + 0x561, + 0x587, + 0x58A, + 0x58B, + 0x5B4, + 0x5B5, + 0x5D0, + 0x5EB, + 0x5EF, + 0x5F5, + 0x620, + 0x640, + 0x641, + 0x656, + 0x660, + 0x66A, + 0x670, + 0x673, + 0x674, + 0x675, + 0x679, + 0x68E, + 0x68F, + 0x6A1, + 0x6A2, + 0x6D4, + 0x6D5, + 0x6D6, + 0x6E5, + 0x6E7, + 0x6EE, + 0x700, + 0x750, + 0x7B2, + 0x8A0, + 0x8AD, + 0x8B2, + 0x8B3, + 0x8B6, + 0x8C8, + 0x901, + 0x94E, + 0x94F, + 0x951, + 0x956, + 0x958, + 0x960, + 0x964, + 0x966, + 0x970, + 0x971, + 0x978, + 0x979, + 0x980, + 0x981, + 0x984, + 0x985, + 0x98D, + 0x98F, + 0x991, + 0x993, + 0x9A9, + 0x9AA, + 0x9B1, + 0x9B2, + 0x9B3, + 0x9B6, + 0x9BA, + 0x9BC, + 0x9C5, + 0x9C7, + 0x9C9, + 0x9CB, + 0x9CF, + 0x9D7, + 0x9D8, + 0x9E0, + 0x9E4, + 0x9E6, + 0x9F2, + 0x9FE, + 0x9FF, + 0xA01, + 0xA04, + 0xA05, + 0xA0B, + 0xA0F, + 0xA11, + 0xA13, + 0xA29, + 0xA2A, + 0xA31, + 0xA32, + 0xA33, + 0xA35, + 0xA36, + 0xA38, + 0xA3A, + 0xA3C, + 0xA3D, + 0xA3E, + 0xA43, + 0xA47, + 0xA49, + 0xA4B, + 0xA4E, + 0xA5C, + 0xA5D, + 0xA66, + 0xA75, + 0xA81, + 0xA84, + 0xA85, + 0xA8E, + 0xA8F, + 0xA92, + 0xA93, + 0xAA9, + 0xAAA, + 0xAB1, + 0xAB2, + 0xAB4, + 0xAB5, + 0xABA, + 0xABC, + 0xAC6, + 0xAC7, + 0xACA, + 0xACB, + 0xACE, + 0xAD0, + 0xAD1, + 0xAE0, + 0xAE4, + 0xAE6, + 0xAF0, + 0xAFA, + 0xB00, + 0xB01, + 0xB04, + 0xB05, + 0xB0D, + 0xB0F, + 0xB11, + 0xB13, + 0xB29, + 0xB2A, + 0xB31, + 0xB32, + 0xB34, + 0xB35, + 0xB3A, + 0xB3C, + 0xB44, + 0xB47, + 0xB49, + 0xB4B, + 0xB4E, + 0xB55, + 0xB58, + 0xB5F, + 0xB62, + 0xB66, + 0xB70, + 0xB71, + 0xB72, + 0xB82, + 0xB84, + 0xB85, + 0xB8B, + 0xB8E, + 0xB91, + 0xB92, + 0xB96, + 0xB99, + 0xB9B, + 0xB9C, + 0xB9D, + 0xB9E, + 0xBA0, + 0xBA3, + 0xBA5, + 0xBA8, + 0xBAB, + 0xBAE, + 0xBBA, + 0xBBE, + 0xBC3, + 0xBC6, + 0xBC9, + 0xBCA, + 0xBCE, + 0xBD0, + 0xBD1, + 0xBD7, + 0xBD8, + 0xBE6, + 0xBF0, + 0xC01, + 0xC0D, + 0xC0E, + 0xC11, + 0xC12, + 0xC29, + 0xC2A, + 0xC34, + 0xC35, + 0xC3A, + 0xC3D, + 0xC45, + 0xC46, + 0xC49, + 0xC4A, + 0xC4E, + 0xC55, + 0xC57, + 0xC60, + 0xC62, + 0xC66, + 0xC70, + 0xC80, + 0xC81, + 0xC82, + 0xC84, + 0xC85, + 0xC8D, + 0xC8E, + 0xC91, + 0xC92, + 0xCA9, + 0xCAA, + 0xCB4, + 0xCB5, + 0xCBA, + 0xCBC, + 0xCC5, + 0xCC6, + 0xCC9, + 0xCCA, + 0xCCE, + 0xCD5, + 0xCD7, + 0xCE0, + 0xCE4, + 0xCE6, + 0xCF0, + 0xCF1, + 0xCF3, + 0xD00, + 0xD01, + 0xD02, + 0xD04, + 0xD05, + 0xD0D, + 0xD0E, + 0xD11, + 0xD12, + 0xD3B, + 0xD3D, + 0xD44, + 0xD46, + 0xD49, + 0xD4A, + 0xD4F, + 0xD54, + 0xD58, + 0xD60, + 0xD62, + 0xD66, + 0xD70, + 0xD7A, + 0xD80, + 0xD82, + 0xD84, + 0xD85, + 0xD8F, + 0xD91, + 0xD97, + 0xD9A, + 0xDA6, + 0xDA7, + 0xDB2, + 0xDB3, + 0xDBC, + 0xDBD, + 0xDBE, + 0xDC0, + 0xDC7, + 0xDCA, + 0xDCB, + 0xDCF, + 0xDD5, + 0xDD6, + 0xDD7, + 0xDD8, + 0xDDF, + 0xDF2, + 0xDF3, + 0xE01, + 0xE33, + 0xE34, + 0xE3B, + 0xE40, + 0xE4F, + 0xE50, + 0xE5A, + 0xE81, + 0xE83, + 0xE84, + 0xE85, + 0xE86, + 0xE8B, + 0xE8C, + 0xEA4, + 0xEA5, + 0xEA6, + 0xEA7, + 0xEB3, + 0xEB4, + 0xEBE, + 0xEC0, + 0xEC5, + 0xEC6, + 0xEC7, + 0xEC8, + 0xECE, + 0xED0, + 0xEDA, + 0xEDE, + 0xEE0, + 0xF00, + 0xF01, + 0xF0B, + 0xF0C, + 0xF20, + 0xF2A, + 0xF35, + 0xF36, + 0xF37, + 0xF38, + 0xF3E, + 0xF43, + 0xF44, + 0xF48, + 0xF49, + 0xF4D, + 0xF4E, + 0xF52, + 0xF53, + 0xF57, + 0xF58, + 0xF5C, + 0xF5D, + 0xF69, + 0xF6A, + 0xF6D, + 0xF71, + 0xF73, + 0xF74, + 0xF75, + 0xF7A, + 0xF81, + 0xF82, + 0xF85, + 0xF86, + 0xF93, + 0xF94, + 0xF98, + 0xF99, + 0xF9D, + 0xF9E, + 0xFA2, + 0xFA3, + 0xFA7, + 0xFA8, + 0xFAC, + 0xFAD, + 0xFB9, + 0xFBA, + 0xFBD, + 0xFC6, + 0xFC7, + 0x1000, + 0x104A, + 0x1050, + 0x109E, + 0x10C7, + 0x10C8, + 0x10CD, + 0x10CE, + 0x10D0, + 0x10F1, + 0x10F7, + 0x10FB, + 0x10FD, + 0x1100, + 0x1200, + 0x1249, + 0x124A, + 0x124E, + 0x1250, + 0x1257, + 0x1258, + 0x1259, + 0x125A, + 0x125E, + 0x1260, + 0x1289, + 0x128A, + 0x128E, + 0x1290, + 0x12B1, + 0x12B2, + 0x12B6, + 0x12B8, + 0x12BF, + 0x12C0, + 0x12C1, + 0x12C2, + 0x12C6, + 0x12C8, + 0x12D7, + 0x12D8, + 0x1311, + 0x1312, + 0x1316, + 0x1318, + 0x135B, + 0x135D, + 0x1360, + 0x1380, + 0x1390, + 0x1780, + 0x17A3, + 0x17A5, + 0x17A8, + 0x17A9, + 0x17B4, + 0x17B6, + 0x17CB, + 0x17D2, + 0x17D3, + 0x17D7, + 0x17D8, + 0x17DC, + 0x17DD, + 0x17E0, + 0x17EA, + 0x1C90, + 0x1CBB, + 0x1CBD, + 0x1CC0, + 0x1E00, + 0x1E9A, + 0x1E9E, + 0x1E9F, + 0x1EA0, + 0x1EFA, + 0x1F00, + 0x1F16, + 0x1F18, + 0x1F1E, + 0x1F20, + 0x1F46, + 0x1F48, + 0x1F4E, + 0x1F50, + 0x1F58, + 0x1F59, + 0x1F5A, + 0x1F5B, + 0x1F5C, + 0x1F5D, + 0x1F5E, + 0x1F5F, + 0x1F71, + 0x1F72, + 0x1F73, + 0x1F74, + 0x1F75, + 0x1F76, + 0x1F77, + 0x1F78, + 0x1F79, + 0x1F7A, + 0x1F7B, + 0x1F7C, + 0x1F7D, + 0x1F80, + 0x1FB5, + 0x1FB6, + 0x1FBB, + 0x1FBC, + 0x1FBD, + 0x1FC2, + 0x1FC5, + 0x1FC6, + 0x1FC9, + 0x1FCA, + 0x1FCB, + 0x1FCC, + 0x1FCD, + 0x1FD0, + 0x1FD3, + 0x1FD6, + 0x1FDB, + 0x1FE0, + 0x1FE3, + 0x1FE4, + 0x1FEB, + 0x1FEC, + 0x1FED, + 0x1FF2, + 0x1FF5, + 0x1FF6, + 0x1FF9, + 0x1FFA, + 0x1FFB, + 0x1FFC, + 0x1FFD, + 0x200C, + 0x200E, + 0x2010, + 0x2011, + 0x2019, + 0x201A, + 0x2027, + 0x2028, + 0x2D27, + 0x2D28, + 0x2D2D, + 0x2D2E, + 0x2D80, + 0x2D97, + 0x2DA0, + 0x2DA7, + 0x2DA8, + 0x2DAF, + 0x2DB0, + 0x2DB7, + 0x2DB8, + 0x2DBF, + 0x2DC0, + 0x2DC7, + 0x2DC8, + 0x2DCF, + 0x2DD0, + 0x2DD7, + 0x2DD8, + 0x2DDF, + 0x3005, + 0x3008, + 0x3041, + 0x3097, + 0x3099, + 0x309B, + 0x309D, + 0x309F, + 0x30A0, + 0x30FF, + 0x3105, + 0x312E, + 0x312F, + 0x3130, + 0x31A0, + 0x31C0, + 0x3400, + 0x4DC0, + 0x4E00, + 0x9FFD, + 0xA67F, + 0xA680, + 0xA717, + 0xA720, + 0xA788, + 0xA789, + 0xA78D, + 0xA78E, + 0xA792, + 0xA794, + 0xA7AA, + 0xA7AB, + 0xA7AE, + 0xA7AF, + 0xA7B8, + 0xA7BA, + 0xA7C2, + 0xA7CB, + 0xA9E7, + 0xA9FF, + 0xAA60, + 0xAA77, + 0xAA7A, + 0xAA80, + 0xAB01, + 0xAB07, + 0xAB09, + 0xAB0F, + 0xAB11, + 0xAB17, + 0xAB20, + 0xAB27, + 0xAB28, + 0xAB2F, + 0xAB66, + 0xAB68, + 0xAC00, + 0xD7A4, + 0xFA0E, + 0xFA10, + 0xFA11, + 0xFA12, + 0xFA13, + 0xFA15, + 0xFA1F, + 0xFA20, + 0xFA21, + 0xFA22, + 0xFA23, + 0xFA25, + 0xFA27, + 0xFA2A, + 0x11301, + 0x11302, + 0x11303, + 0x11304, + 0x1133B, + 0x1133D, + 0x16FF0, + 0x16FF2, + 0x1B150, + 0x1B153, + 0x1B164, + 0x1B168, + 0x20000, + 0x2A6DE, + 0x2A700, + 0x2B735, + 0x2B740, + 0x2B81E, + 0x2B820, + 0x2CEA2, + 0x2CEB0, + 0x2EBE1, + 0x30000, + 0x3134B +}; + +# endif /* EBCDIC 037 */ + +# if 'A' == 65 /* ASCII/Latin1 */ + +static const UV UNI_IDENTIFIERTYPE__DEFAULTIGNORABLE_invlist[] = { /* for ASCII/Latin1 */ + 39, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0xAD, + 0xAE, + 0x34F, + 0x350, + 0x61C, + 0x61D, + 0x115F, + 0x1161, + 0x17B4, + 0x17B6, + 0x180B, + 0x180F, + 0x200B, + 0x200C, + 0x200E, + 0x2010, + 0x202A, + 0x202F, + 0x2060, + 0x2065, + 0x2066, + 0x206A, + 0x3164, + 0x3165, + 0xFE00, + 0xFE10, + 0xFEFF, + 0xFF00, + 0xFFA0, + 0xFFA1, + 0x1BCA0, + 0x1BCA4, + 0x1D173, + 0x1D17B, + 0xE0020, + 0xE0080, + 0xE0100, + 0xE01F0 +}; + +# endif /* ASCII/Latin1 */ + +# if 'A' == 193 /* EBCDIC 1047 */ \ + && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \ + && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \ + && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 + +static const UV UNI_IDENTIFIERTYPE__DEFAULTIGNORABLE_invlist[] = { /* for EBCDIC 1047 */ + 39, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0xCA, + 0xCB, + 0x34F, + 0x350, + 0x61C, + 0x61D, + 0x115F, + 0x1161, + 0x17B4, + 0x17B6, + 0x180B, + 0x180F, + 0x200B, + 0x200C, + 0x200E, + 0x2010, + 0x202A, + 0x202F, + 0x2060, + 0x2065, + 0x2066, + 0x206A, + 0x3164, + 0x3165, + 0xFE00, + 0xFE10, + 0xFEFF, + 0xFF00, + 0xFFA0, + 0xFFA1, + 0x1BCA0, + 0x1BCA4, + 0x1D173, + 0x1D17B, + 0xE0020, + 0xE0080, + 0xE0100, + 0xE01F0 +}; + +# endif /* EBCDIC 1047 */ + +# if 'A' == 193 /* EBCDIC 037 */ \ + && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \ + && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \ + && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 + +static const UV UNI_IDENTIFIERTYPE__DEFAULTIGNORABLE_invlist[] = { /* for EBCDIC 037 */ + 39, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0xCA, + 0xCB, + 0x34F, + 0x350, + 0x61C, + 0x61D, + 0x115F, + 0x1161, + 0x17B4, + 0x17B6, + 0x180B, + 0x180F, + 0x200B, + 0x200C, + 0x200E, + 0x2010, + 0x202A, + 0x202F, + 0x2060, + 0x2065, + 0x2066, + 0x206A, + 0x3164, + 0x3165, + 0xFE00, + 0xFE10, + 0xFEFF, + 0xFF00, + 0xFFA0, + 0xFFA1, + 0x1BCA0, + 0x1BCA4, + 0x1D173, + 0x1D17B, + 0xE0020, + 0xE0080, + 0xE0100, + 0xE01F0 +}; + +# endif /* EBCDIC 037 */ + +static const UV UNI_IDENTIFIERTYPE__EXCLUSION_invlist[] = { /* for all charsets */ + 425, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x3E2, + 0x3F0, + 0x800, + 0x82E, + 0x830, + 0x83F, + 0x1680, + 0x169D, + 0x16A0, + 0x16EB, + 0x16EE, + 0x16F9, + 0x1700, + 0x170D, + 0x170E, + 0x1715, + 0x1720, + 0x1737, + 0x1740, + 0x1754, + 0x1760, + 0x176D, + 0x176E, + 0x1771, + 0x1772, + 0x1774, + 0x1800, + 0x180B, + 0x1810, + 0x181A, + 0x1820, + 0x1879, + 0x1880, + 0x18AB, + 0x1A00, + 0x1A1C, + 0x1A1E, + 0x1A20, + 0x1CFA, + 0x1CFB, + 0x2C00, + 0x2C2F, + 0x2C30, + 0x2C5F, + 0x2C80, + 0x2CF4, + 0x2CF9, + 0x2D00, + 0xA840, + 0xA878, + 0xA930, + 0xA954, + 0xA95F, + 0xA960, + 0xA9CF, + 0xA9D0, + 0x10000, + 0x1000C, + 0x1000D, + 0x10027, + 0x10028, + 0x1003B, + 0x1003C, + 0x1003E, + 0x1003F, + 0x1004E, + 0x10050, + 0x1005E, + 0x10080, + 0x100FB, + 0x10100, + 0x10103, + 0x10107, + 0x10134, + 0x10137, + 0x10140, + 0x10280, + 0x1029D, + 0x102A0, + 0x102D1, + 0x10300, + 0x10324, + 0x1032D, + 0x1034B, + 0x10350, + 0x1037B, + 0x10380, + 0x1039E, + 0x1039F, + 0x103C4, + 0x103C8, + 0x103D6, + 0x10400, + 0x1049E, + 0x104A0, + 0x104AA, + 0x10500, + 0x10528, + 0x10530, + 0x10564, + 0x1056F, + 0x10570, + 0x10600, + 0x10737, + 0x10740, + 0x10756, + 0x10760, + 0x10768, + 0x10800, + 0x10806, + 0x10808, + 0x10809, + 0x1080A, + 0x10836, + 0x10837, + 0x10839, + 0x1083C, + 0x1083D, + 0x1083F, + 0x10856, + 0x10857, + 0x1089F, + 0x108A7, + 0x108B0, + 0x108E0, + 0x108F3, + 0x108F4, + 0x108F6, + 0x108FB, + 0x1091C, + 0x1091F, + 0x1093A, + 0x1093F, + 0x10940, + 0x10980, + 0x109B8, + 0x109BC, + 0x109D0, + 0x109D2, + 0x10A04, + 0x10A05, + 0x10A07, + 0x10A0C, + 0x10A14, + 0x10A15, + 0x10A18, + 0x10A19, + 0x10A36, + 0x10A38, + 0x10A3B, + 0x10A3F, + 0x10A49, + 0x10A50, + 0x10A59, + 0x10A60, + 0x10AA0, + 0x10AC0, + 0x10AE7, + 0x10AEB, + 0x10AF7, + 0x10B00, + 0x10B36, + 0x10B39, + 0x10B56, + 0x10B58, + 0x10B73, + 0x10B78, + 0x10B92, + 0x10B99, + 0x10B9D, + 0x10BA9, + 0x10BB0, + 0x10C00, + 0x10C49, + 0x10C80, + 0x10CB3, + 0x10CC0, + 0x10CF3, + 0x10CFA, + 0x10D00, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAE, + 0x10EB0, + 0x10EB2, + 0x10F00, + 0x10F28, + 0x10F30, + 0x10F5A, + 0x10FB0, + 0x10FCC, + 0x10FE0, + 0x10FF7, + 0x11000, + 0x1104E, + 0x11052, + 0x11070, + 0x1107F, + 0x110C2, + 0x110CD, + 0x110CE, + 0x110D0, + 0x110E9, + 0x110F0, + 0x110FA, + 0x11150, + 0x11177, + 0x11180, + 0x111E0, + 0x11200, + 0x11212, + 0x11213, + 0x1123F, + 0x11280, + 0x11287, + 0x11288, + 0x11289, + 0x1128A, + 0x1128E, + 0x1128F, + 0x1129E, + 0x1129F, + 0x112AA, + 0x112B0, + 0x112EB, + 0x112F0, + 0x112FA, + 0x11300, + 0x11301, + 0x11302, + 0x11303, + 0x11305, + 0x1130D, + 0x1130F, + 0x11311, + 0x11313, + 0x11329, + 0x1132A, + 0x11331, + 0x11332, + 0x11334, + 0x11335, + 0x1133A, + 0x1133D, + 0x11345, + 0x11347, + 0x11349, + 0x1134B, + 0x1134E, + 0x11350, + 0x11351, + 0x11357, + 0x11358, + 0x1135D, + 0x11364, + 0x11366, + 0x1136D, + 0x11370, + 0x11375, + 0x11480, + 0x114C8, + 0x114D0, + 0x114DA, + 0x11580, + 0x115B6, + 0x115B8, + 0x115DE, + 0x11600, + 0x11645, + 0x11650, + 0x1165A, + 0x11660, + 0x1166D, + 0x11680, + 0x116B9, + 0x116C0, + 0x116CA, + 0x11700, + 0x1171B, + 0x1171D, + 0x1172C, + 0x11730, + 0x11740, + 0x11800, + 0x1183C, + 0x118A0, + 0x118F3, + 0x118FF, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11947, + 0x11950, + 0x1195A, + 0x119A0, + 0x119A8, + 0x119AA, + 0x119D8, + 0x119DA, + 0x119E5, + 0x11A00, + 0x11A48, + 0x11A50, + 0x11AA3, + 0x11AC0, + 0x11AF9, + 0x11C00, + 0x11C09, + 0x11C0A, + 0x11C37, + 0x11C38, + 0x11C46, + 0x11C50, + 0x11C6D, + 0x11C70, + 0x11C90, + 0x11C92, + 0x11CA8, + 0x11CA9, + 0x11CB7, + 0x11D00, + 0x11D07, + 0x11D08, + 0x11D0A, + 0x11D0B, + 0x11D37, + 0x11D3A, + 0x11D3B, + 0x11D3C, + 0x11D3E, + 0x11D3F, + 0x11D48, + 0x11D50, + 0x11D5A, + 0x11EE0, + 0x11EF9, + 0x12000, + 0x1239A, + 0x12400, + 0x1246F, + 0x12470, + 0x12475, + 0x12480, + 0x12544, + 0x13000, + 0x1342F, + 0x13430, + 0x13439, + 0x14400, + 0x14647, + 0x16A40, + 0x16A5F, + 0x16A60, + 0x16A6A, + 0x16A6E, + 0x16A70, + 0x16AD0, + 0x16AEE, + 0x16AF0, + 0x16AF6, + 0x16B00, + 0x16B46, + 0x16B50, + 0x16B5A, + 0x16B5B, + 0x16B62, + 0x16B63, + 0x16B78, + 0x16B7D, + 0x16B90, + 0x16E40, + 0x16E9B, + 0x16FE0, + 0x16FE2, + 0x16FE4, + 0x16FE5, + 0x17000, + 0x187F8, + 0x18800, + 0x18CD6, + 0x18D00, + 0x18D09, + 0x1B170, + 0x1B2FC, + 0x1BC00, + 0x1BC6B, + 0x1BC70, + 0x1BC7D, + 0x1BC80, + 0x1BC89, + 0x1BC90, + 0x1BC9A, + 0x1BC9C, + 0x1BCA0, + 0x1D800, + 0x1DA8C, + 0x1DA9B, + 0x1DAA0, + 0x1DAA1, + 0x1DAB0, + 0x1E000, + 0x1E007, + 0x1E008, + 0x1E019, + 0x1E01B, + 0x1E022, + 0x1E023, + 0x1E025, + 0x1E026, + 0x1E02B, + 0x1E800, + 0x1E8C5, + 0x1E8C7, + 0x1E8D7 +}; + +# if 'A' == 65 /* ASCII/Latin1 */ + +static const UV UNI_IDENTIFIERTYPE__INCLUSION_invlist[] = { /* for ASCII/Latin1 */ + 31, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x27, + 0x28, + 0x2D, + 0x2F, + 0x3A, + 0x3B, + 0xB7, + 0xB8, + 0x375, + 0x376, + 0x58A, + 0x58B, + 0x5F3, + 0x5F5, + 0x6FD, + 0x6FF, + 0xF0B, + 0xF0C, + 0x200C, + 0x200E, + 0x2010, + 0x2011, + 0x2019, + 0x201A, + 0x2027, + 0x2028, + 0x30A0, + 0x30A1, + 0x30FB, + 0x30FC +}; + +# endif /* ASCII/Latin1 */ + +# if 'A' == 193 /* EBCDIC 1047 */ \ + && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \ + && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \ + && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 + +static const UV UNI_IDENTIFIERTYPE__INCLUSION_invlist[] = { /* for EBCDIC 1047 */ + 33, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x4B, + 0x4C, + 0x60, + 0x61, + 0x7A, + 0x7B, + 0x7D, + 0x7E, + 0xB3, + 0xB4, + 0x375, + 0x376, + 0x58A, + 0x58B, + 0x5F3, + 0x5F5, + 0x6FD, + 0x6FF, + 0xF0B, + 0xF0C, + 0x200C, + 0x200E, + 0x2010, + 0x2011, + 0x2019, + 0x201A, + 0x2027, + 0x2028, + 0x30A0, + 0x30A1, + 0x30FB, + 0x30FC +}; + +# endif /* EBCDIC 1047 */ + +# if 'A' == 193 /* EBCDIC 037 */ \ + && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \ + && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \ + && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 + +static const UV UNI_IDENTIFIERTYPE__INCLUSION_invlist[] = { /* for EBCDIC 037 */ + 33, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x4B, + 0x4C, + 0x60, + 0x61, + 0x7A, + 0x7B, + 0x7D, + 0x7E, + 0xB3, + 0xB4, + 0x375, + 0x376, + 0x58A, + 0x58B, + 0x5F3, + 0x5F5, + 0x6FD, + 0x6FF, + 0xF0B, + 0xF0C, + 0x200C, + 0x200E, + 0x2010, + 0x2011, + 0x2019, + 0x201A, + 0x2027, + 0x2028, + 0x30A0, + 0x30A1, + 0x30FB, + 0x30FC +}; + +# endif /* EBCDIC 037 */ + +static const UV UNI_IDENTIFIERTYPE__LIMITEDUSE_invlist[] = { /* for all charsets */ + 171, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x700, + 0x70E, + 0x70F, + 0x74B, + 0x74D, + 0x750, + 0x7C0, + 0x7FB, + 0x7FD, + 0x800, + 0x840, + 0x85C, + 0x85E, + 0x85F, + 0x860, + 0x86B, + 0x13A0, + 0x13F6, + 0x13F8, + 0x13FE, + 0x1400, + 0x1680, + 0x18B0, + 0x18F6, + 0x1900, + 0x191F, + 0x1920, + 0x192C, + 0x1930, + 0x193C, + 0x1940, + 0x1941, + 0x1944, + 0x196E, + 0x1970, + 0x1975, + 0x1980, + 0x19AC, + 0x19B0, + 0x19CA, + 0x19D0, + 0x19DB, + 0x19DE, + 0x19E0, + 0x1A20, + 0x1A5F, + 0x1A60, + 0x1A7D, + 0x1A7F, + 0x1A8A, + 0x1A90, + 0x1A9A, + 0x1AA0, + 0x1AAE, + 0x1B00, + 0x1B4C, + 0x1B50, + 0x1B7D, + 0x1B80, + 0x1BF4, + 0x1BFC, + 0x1C38, + 0x1C3B, + 0x1C4A, + 0x1C4D, + 0x1C80, + 0x1CC0, + 0x1CC8, + 0x2D30, + 0x2D68, + 0x2D70, + 0x2D71, + 0x2D7F, + 0x2D80, + 0xA000, + 0xA48D, + 0xA490, + 0xA4C7, + 0xA4D0, + 0xA62C, + 0xA6A0, + 0xA6F8, + 0xA800, + 0xA82D, + 0xA880, + 0xA8C6, + 0xA8CE, + 0xA8DA, + 0xA900, + 0xA92E, + 0xA92F, + 0xA930, + 0xA980, + 0xA9CE, + 0xA9CF, + 0xA9DA, + 0xA9DE, + 0xA9E0, + 0xAA00, + 0xAA37, + 0xAA40, + 0xAA4E, + 0xAA50, + 0xAA5A, + 0xAA5C, + 0xAA60, + 0xAA80, + 0xAAC3, + 0xAADB, + 0xAAF7, + 0xAB70, + 0xABEE, + 0xABF0, + 0xABFA, + 0x104B0, + 0x104D4, + 0x104D8, + 0x104FC, + 0x10D00, + 0x10D28, + 0x10D30, + 0x10D3A, + 0x11100, + 0x11135, + 0x11136, + 0x11148, + 0x11400, + 0x1145C, + 0x1145D, + 0x11462, + 0x11D60, + 0x11D66, + 0x11D67, + 0x11D69, + 0x11D6A, + 0x11D8F, + 0x11D90, + 0x11D92, + 0x11D93, + 0x11D99, + 0x11DA0, + 0x11DAA, + 0x11FB0, + 0x11FB1, + 0x16800, + 0x16A39, + 0x16F00, + 0x16F4B, + 0x16F4F, + 0x16F88, + 0x16F8F, + 0x16FA0, + 0x1E100, + 0x1E12D, + 0x1E130, + 0x1E13E, + 0x1E140, + 0x1E14A, + 0x1E14E, + 0x1E150, + 0x1E2C0, + 0x1E2FA, + 0x1E2FF, + 0x1E300, + 0x1E900, + 0x1E94C, + 0x1E950, + 0x1E95A, + 0x1E95E, + 0x1E960 +}; + +# if 'A' == 65 /* ASCII/Latin1 */ + +static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for ASCII/Latin1 */ + 1357, /* Number of elements */ + 148565664, /* Version and data structure type */ + 0, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x9, + 0xE, + 0x20, + 0x7F, + 0x85, + 0x86, + 0xA0, + 0x378, + 0x37A, + 0x380, + 0x384, + 0x38B, + 0x38C, + 0x38D, + 0x38E, + 0x3A2, + 0x3A3, + 0x530, + 0x531, + 0x557, + 0x559, + 0x58B, + 0x58D, + 0x590, + 0x591, + 0x5C8, + 0x5D0, + 0x5EB, + 0x5EF, + 0x5F5, + 0x600, + 0x61D, + 0x61E, + 0x70E, + 0x70F, + 0x74B, + 0x74D, + 0x7B2, + 0x7C0, + 0x7FB, + 0x7FD, + 0x82E, + 0x830, + 0x83F, + 0x840, + 0x85C, + 0x85E, + 0x85F, + 0x860, + 0x86B, + 0x8A0, + 0x8B5, + 0x8B6, + 0x8C8, + 0x8D3, + 0x984, + 0x985, + 0x98D, + 0x98F, + 0x991, + 0x993, + 0x9A9, + 0x9AA, + 0x9B1, + 0x9B2, + 0x9B3, + 0x9B6, + 0x9BA, + 0x9BC, + 0x9C5, + 0x9C7, + 0x9C9, + 0x9CB, + 0x9CF, + 0x9D7, + 0x9D8, + 0x9DC, + 0x9DE, + 0x9DF, + 0x9E4, + 0x9E6, + 0x9FF, + 0xA01, + 0xA04, + 0xA05, + 0xA0B, + 0xA0F, + 0xA11, + 0xA13, + 0xA29, + 0xA2A, + 0xA31, + 0xA32, + 0xA34, + 0xA35, + 0xA37, + 0xA38, + 0xA3A, + 0xA3C, + 0xA3D, + 0xA3E, + 0xA43, + 0xA47, + 0xA49, + 0xA4B, + 0xA4E, + 0xA51, + 0xA52, + 0xA59, + 0xA5D, + 0xA5E, + 0xA5F, + 0xA66, + 0xA77, + 0xA81, + 0xA84, + 0xA85, + 0xA8E, + 0xA8F, + 0xA92, + 0xA93, + 0xAA9, + 0xAAA, + 0xAB1, + 0xAB2, + 0xAB4, + 0xAB5, + 0xABA, + 0xABC, + 0xAC6, + 0xAC7, + 0xACA, + 0xACB, + 0xACE, + 0xAD0, + 0xAD1, + 0xAE0, + 0xAE4, + 0xAE6, + 0xAF2, + 0xAF9, + 0xB00, + 0xB01, + 0xB04, + 0xB05, + 0xB0D, + 0xB0F, + 0xB11, + 0xB13, + 0xB29, + 0xB2A, + 0xB31, + 0xB32, + 0xB34, + 0xB35, + 0xB3A, + 0xB3C, + 0xB45, + 0xB47, + 0xB49, + 0xB4B, + 0xB4E, + 0xB55, + 0xB58, + 0xB5C, + 0xB5E, + 0xB5F, + 0xB64, + 0xB66, + 0xB78, + 0xB82, + 0xB84, + 0xB85, + 0xB8B, + 0xB8E, + 0xB91, + 0xB92, + 0xB96, + 0xB99, + 0xB9B, + 0xB9C, + 0xB9D, + 0xB9E, + 0xBA0, + 0xBA3, + 0xBA5, + 0xBA8, + 0xBAB, + 0xBAE, + 0xBBA, + 0xBBE, + 0xBC3, + 0xBC6, + 0xBC9, + 0xBCA, + 0xBCE, + 0xBD0, + 0xBD1, + 0xBD7, + 0xBD8, + 0xBE6, + 0xBFB, + 0xC00, + 0xC0D, + 0xC0E, + 0xC11, + 0xC12, + 0xC29, + 0xC2A, + 0xC3A, + 0xC3D, + 0xC45, + 0xC46, + 0xC49, + 0xC4A, + 0xC4E, + 0xC55, + 0xC57, + 0xC58, + 0xC5B, + 0xC60, + 0xC64, + 0xC66, + 0xC70, + 0xC77, + 0xC8D, + 0xC8E, + 0xC91, + 0xC92, + 0xCA9, + 0xCAA, + 0xCB4, + 0xCB5, + 0xCBA, + 0xCBC, + 0xCC5, + 0xCC6, + 0xCC9, + 0xCCA, + 0xCCE, + 0xCD5, + 0xCD7, + 0xCDE, + 0xCDF, + 0xCE0, + 0xCE4, + 0xCE6, + 0xCF0, + 0xCF1, + 0xCF3, + 0xD00, + 0xD0D, + 0xD0E, + 0xD11, + 0xD12, + 0xD45, + 0xD46, + 0xD49, + 0xD4A, + 0xD50, + 0xD54, + 0xD64, + 0xD66, + 0xD80, + 0xD81, + 0xD84, + 0xD85, + 0xD97, + 0xD9A, + 0xDB2, + 0xDB3, + 0xDBC, + 0xDBD, + 0xDBE, + 0xDC0, + 0xDC7, + 0xDCA, + 0xDCB, + 0xDCF, + 0xDD5, + 0xDD6, + 0xDD7, + 0xDD8, + 0xDE0, + 0xDE6, + 0xDF0, + 0xDF2, + 0xDF5, + 0xE01, + 0xE3B, + 0xE3F, + 0xE5C, + 0xE81, + 0xE83, + 0xE84, + 0xE85, + 0xE86, + 0xE8B, + 0xE8C, + 0xEA4, + 0xEA5, + 0xEA6, + 0xEA7, + 0xEBE, + 0xEC0, + 0xEC5, + 0xEC6, + 0xEC7, + 0xEC8, + 0xECE, + 0xED0, + 0xEDA, + 0xEDC, + 0xEE0, + 0xF00, + 0xF48, + 0xF49, + 0xF6D, + 0xF71, + 0xF98, + 0xF99, + 0xFBD, + 0xFBE, + 0xFCD, + 0xFCE, + 0xFDB, + 0x1000, + 0x10C6, + 0x10C7, + 0x10C8, + 0x10CD, + 0x10CE, + 0x10D0, + 0x1249, + 0x124A, + 0x124E, + 0x1250, + 0x1257, + 0x1258, + 0x1259, + 0x125A, + 0x125E, + 0x1260, + 0x1289, + 0x128A, + 0x128E, + 0x1290, + 0x12B1, + 0x12B2, + 0x12B6, + 0x12B8, + 0x12BF, + 0x12C0, + 0x12C1, + 0x12C2, + 0x12C6, + 0x12C8, + 0x12D7, + 0x12D8, + 0x1311, + 0x1312, + 0x1316, + 0x1318, + 0x135B, + 0x135D, + 0x137D, + 0x1380, + 0x139A, + 0x13A0, + 0x13F6, + 0x13F8, + 0x13FE, + 0x1400, + 0x169D, + 0x16A0, + 0x16F9, + 0x1700, + 0x170D, + 0x170E, + 0x1715, + 0x1720, + 0x1737, + 0x1740, + 0x1754, + 0x1760, + 0x176D, + 0x176E, + 0x1771, + 0x1772, + 0x1774, + 0x1780, + 0x17DE, + 0x17E0, + 0x17EA, + 0x17F0, + 0x17FA, + 0x1800, + 0x180F, + 0x1810, + 0x181A, + 0x1820, + 0x1879, + 0x1880, + 0x18AB, + 0x18B0, + 0x18F6, + 0x1900, + 0x191F, + 0x1920, + 0x192C, + 0x1930, + 0x193C, + 0x1940, + 0x1941, + 0x1944, + 0x196E, + 0x1970, + 0x1975, + 0x1980, + 0x19AC, + 0x19B0, + 0x19CA, + 0x19D0, + 0x19DB, + 0x19DE, + 0x1A1C, + 0x1A1E, + 0x1A5F, + 0x1A60, + 0x1A7D, + 0x1A7F, + 0x1A8A, + 0x1A90, + 0x1A9A, + 0x1AA0, + 0x1AAE, + 0x1AB0, + 0x1AC1, + 0x1B00, + 0x1B4C, + 0x1B50, + 0x1B7D, + 0x1B80, + 0x1BF4, + 0x1BFC, + 0x1C38, + 0x1C3B, + 0x1C4A, + 0x1C4D, + 0x1C89, + 0x1C90, + 0x1CBB, + 0x1CBD, + 0x1CC8, + 0x1CD0, + 0x1CFB, + 0x1D00, + 0x1DFA, + 0x1DFB, + 0x1F16, + 0x1F18, + 0x1F1E, + 0x1F20, + 0x1F46, + 0x1F48, + 0x1F4E, + 0x1F50, + 0x1F58, + 0x1F59, + 0x1F5A, + 0x1F5B, + 0x1F5C, + 0x1F5D, + 0x1F5E, + 0x1F5F, + 0x1F7E, + 0x1F80, + 0x1FB5, + 0x1FB6, + 0x1FC5, + 0x1FC6, + 0x1FD4, + 0x1FD6, + 0x1FDC, + 0x1FDD, + 0x1FF0, + 0x1FF2, + 0x1FF5, + 0x1FF6, + 0x1FFF, + 0x2000, + 0x2065, + 0x2066, + 0x2072, + 0x2074, + 0x208F, + 0x2090, + 0x209D, + 0x20A0, + 0x20C0, + 0x20D0, + 0x20F1, + 0x2100, + 0x218C, + 0x2190, + 0x2427, + 0x2440, + 0x244B, + 0x2460, + 0x2B74, + 0x2B76, + 0x2B96, + 0x2B97, + 0x2C2F, + 0x2C30, + 0x2C5F, + 0x2C60, + 0x2CF4, + 0x2CF9, + 0x2D26, + 0x2D27, + 0x2D28, + 0x2D2D, + 0x2D2E, + 0x2D30, + 0x2D68, + 0x2D6F, + 0x2D71, + 0x2D7F, + 0x2D97, + 0x2DA0, + 0x2DA7, + 0x2DA8, + 0x2DAF, + 0x2DB0, + 0x2DB7, + 0x2DB8, + 0x2DBF, + 0x2DC0, + 0x2DC7, + 0x2DC8, + 0x2DCF, + 0x2DD0, + 0x2DD7, + 0x2DD8, + 0x2DDF, + 0x2DE0, + 0x2E53, + 0x2E80, + 0x2E9A, + 0x2E9B, + 0x2EF4, + 0x2F00, + 0x2FD6, + 0x2FF0, + 0x2FFC, + 0x3000, + 0x3040, + 0x3041, + 0x3097, + 0x3099, + 0x3100, + 0x3105, + 0x3130, + 0x3131, + 0x318F, + 0x3190, + 0x31E4, + 0x31F0, + 0x321F, + 0x3220, + 0x9FFD, + 0xA000, + 0xA48D, + 0xA490, + 0xA4C7, + 0xA4D0, + 0xA62C, + 0xA640, + 0xA6F8, + 0xA700, + 0xA7C0, + 0xA7C2, + 0xA7CB, + 0xA7F5, + 0xA82D, + 0xA830, + 0xA83A, + 0xA840, + 0xA878, + 0xA880, + 0xA8C6, + 0xA8CE, + 0xA8DA, + 0xA8E0, + 0xA954, + 0xA95F, + 0xA97D, + 0xA980, + 0xA9CE, + 0xA9CF, + 0xA9DA, + 0xA9DE, + 0xA9FF, + 0xAA00, + 0xAA37, + 0xAA40, + 0xAA4E, + 0xAA50, + 0xAA5A, + 0xAA5C, + 0xAAC3, + 0xAADB, + 0xAAF7, + 0xAB01, + 0xAB07, + 0xAB09, + 0xAB0F, + 0xAB11, + 0xAB17, + 0xAB20, + 0xAB27, + 0xAB28, + 0xAB2F, + 0xAB30, + 0xAB6C, + 0xAB70, + 0xABEE, + 0xABF0, + 0xABFA, + 0xAC00, + 0xD7A4, + 0xD7B0, + 0xD7C7, + 0xD7CB, + 0xD7FC, + 0xF900, + 0xFA6E, + 0xFA70, + 0xFADA, + 0xFB00, + 0xFB07, + 0xFB13, + 0xFB18, + 0xFB1D, + 0xFB37, + 0xFB38, + 0xFB3D, + 0xFB3E, + 0xFB3F, + 0xFB40, + 0xFB42, + 0xFB43, + 0xFB45, + 0xFB46, + 0xFBC2, + 0xFBD3, + 0xFD40, + 0xFD50, + 0xFD90, + 0xFD92, + 0xFDC8, + 0xFDF0, + 0xFDFE, + 0xFE00, + 0xFE1A, + 0xFE20, + 0xFE53, + 0xFE54, + 0xFE67, + 0xFE68, + 0xFE6C, + 0xFE70, + 0xFE75, + 0xFE76, + 0xFEFD, + 0xFEFF, + 0xFF00, + 0xFF01, + 0xFFBF, + 0xFFC2, + 0xFFC8, + 0xFFCA, + 0xFFD0, + 0xFFD2, + 0xFFD8, + 0xFFDA, + 0xFFDD, + 0xFFE0, + 0xFFE7, + 0xFFE8, + 0xFFEF, + 0xFFF9, + 0xFFFE, + 0x10000, + 0x1000C, + 0x1000D, + 0x10027, + 0x10028, + 0x1003B, + 0x1003C, + 0x1003E, + 0x1003F, + 0x1004E, + 0x10050, + 0x1005E, + 0x10080, + 0x100FB, + 0x10100, + 0x10103, + 0x10107, + 0x10134, + 0x10137, + 0x1018F, + 0x10190, + 0x1019D, + 0x101A0, + 0x101A1, + 0x101D0, + 0x101FE, + 0x10280, + 0x1029D, + 0x102A0, + 0x102D1, + 0x102E0, + 0x102FC, + 0x10300, + 0x10324, + 0x1032D, + 0x1034B, + 0x10350, + 0x1037B, + 0x10380, + 0x1039E, + 0x1039F, + 0x103C4, + 0x103C8, + 0x103D6, + 0x10400, + 0x1049E, + 0x104A0, + 0x104AA, + 0x104B0, + 0x104D4, + 0x104D8, + 0x104FC, + 0x10500, + 0x10528, + 0x10530, + 0x10564, + 0x1056F, + 0x10570, + 0x10600, + 0x10737, + 0x10740, + 0x10756, + 0x10760, + 0x10768, + 0x10800, + 0x10806, + 0x10808, + 0x10809, + 0x1080A, + 0x10836, + 0x10837, + 0x10839, + 0x1083C, + 0x1083D, + 0x1083F, + 0x10856, + 0x10857, + 0x1089F, + 0x108A7, + 0x108B0, + 0x108E0, + 0x108F3, + 0x108F4, + 0x108F6, + 0x108FB, + 0x1091C, + 0x1091F, + 0x1093A, + 0x1093F, + 0x10940, + 0x10980, + 0x109B8, + 0x109BC, + 0x109D0, + 0x109D2, + 0x10A04, + 0x10A05, + 0x10A07, + 0x10A0C, + 0x10A14, + 0x10A15, + 0x10A18, + 0x10A19, + 0x10A36, + 0x10A38, + 0x10A3B, + 0x10A3F, + 0x10A49, + 0x10A50, + 0x10A59, + 0x10A60, + 0x10AA0, + 0x10AC0, + 0x10AE7, + 0x10AEB, + 0x10AF7, + 0x10B00, + 0x10B36, + 0x10B39, + 0x10B56, + 0x10B58, + 0x10B73, + 0x10B78, + 0x10B92, + 0x10B99, + 0x10B9D, + 0x10BA9, + 0x10BB0, + 0x10C00, + 0x10C49, + 0x10C80, + 0x10CB3, + 0x10CC0, + 0x10CF3, + 0x10CFA, + 0x10D28, + 0x10D30, + 0x10D3A, + 0x10E60, + 0x10E7F, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAE, + 0x10EB0, + 0x10EB2, + 0x10F00, + 0x10F28, + 0x10F30, + 0x10F5A, + 0x10FB0, + 0x10FCC, + 0x10FE0, + 0x10FF7, + 0x11000, + 0x1104E, + 0x11052, + 0x11070, + 0x1107F, + 0x110C2, + 0x110CD, + 0x110CE, + 0x110D0, + 0x110E9, + 0x110F0, + 0x110FA, + 0x11100, + 0x11135, + 0x11136, + 0x11148, + 0x11150, + 0x11177, + 0x11180, + 0x111E0, + 0x111E1, + 0x111F5, + 0x11200, + 0x11212, + 0x11213, + 0x1123F, + 0x11280, + 0x11287, + 0x11288, + 0x11289, + 0x1128A, + 0x1128E, + 0x1128F, + 0x1129E, + 0x1129F, + 0x112AA, + 0x112B0, + 0x112EB, + 0x112F0, + 0x112FA, + 0x11300, + 0x11304, + 0x11305, + 0x1130D, + 0x1130F, + 0x11311, + 0x11313, + 0x11329, + 0x1132A, + 0x11331, + 0x11332, + 0x11334, + 0x11335, + 0x1133A, + 0x1133B, + 0x11345, + 0x11347, + 0x11349, + 0x1134B, + 0x1134E, + 0x11350, + 0x11351, + 0x11357, + 0x11358, + 0x1135D, + 0x11364, + 0x11366, + 0x1136D, + 0x11370, + 0x11375, + 0x11400, + 0x1145C, + 0x1145D, + 0x11462, + 0x11480, + 0x114C8, + 0x114D0, + 0x114DA, + 0x11580, + 0x115B6, + 0x115B8, + 0x115DE, + 0x11600, + 0x11645, + 0x11650, + 0x1165A, + 0x11660, + 0x1166D, + 0x11680, + 0x116B9, + 0x116C0, + 0x116CA, + 0x11700, + 0x1171B, + 0x1171D, + 0x1172C, + 0x11730, + 0x11740, + 0x11800, + 0x1183C, + 0x118A0, + 0x118F3, + 0x118FF, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11947, + 0x11950, + 0x1195A, + 0x119A0, + 0x119A8, + 0x119AA, + 0x119D8, + 0x119DA, + 0x119E5, + 0x11A00, + 0x11A48, + 0x11A50, + 0x11AA3, + 0x11AC0, + 0x11AF9, + 0x11C00, + 0x11C09, + 0x11C0A, + 0x11C37, + 0x11C38, + 0x11C46, + 0x11C50, + 0x11C6D, + 0x11C70, + 0x11C90, + 0x11C92, + 0x11CA8, + 0x11CA9, + 0x11CB7, + 0x11D00, + 0x11D07, + 0x11D08, + 0x11D0A, + 0x11D0B, + 0x11D37, + 0x11D3A, + 0x11D3B, + 0x11D3C, + 0x11D3E, + 0x11D3F, + 0x11D48, + 0x11D50, + 0x11D5A, + 0x11D60, + 0x11D66, + 0x11D67, + 0x11D69, + 0x11D6A, + 0x11D8F, + 0x11D90, + 0x11D92, + 0x11D93, + 0x11D99, + 0x11DA0, + 0x11DAA, + 0x11EE0, + 0x11EF9, + 0x11FB0, + 0x11FB1, + 0x11FC0, + 0x11FF2, + 0x11FFF, + 0x1239A, + 0x12400, + 0x1246F, + 0x12470, + 0x12475, + 0x12480, + 0x12544, + 0x13000, + 0x1342F, + 0x13430, + 0x13439, + 0x14400, + 0x14647, + 0x16800, + 0x16A39, + 0x16A40, + 0x16A5F, + 0x16A60, + 0x16A6A, + 0x16A6E, + 0x16A70, + 0x16AD0, + 0x16AEE, + 0x16AF0, + 0x16AF6, + 0x16B00, + 0x16B46, + 0x16B50, + 0x16B5A, + 0x16B5B, + 0x16B62, + 0x16B63, + 0x16B78, + 0x16B7D, + 0x16B90, + 0x16E40, + 0x16E9B, + 0x16F00, + 0x16F4B, + 0x16F4F, + 0x16F88, + 0x16F8F, + 0x16FA0, + 0x16FE0, + 0x16FE5, + 0x16FF0, + 0x16FF2, + 0x17000, + 0x187F8, + 0x18800, + 0x18CD6, + 0x18D00, + 0x18D09, + 0x1B000, + 0x1B11F, + 0x1B150, + 0x1B153, + 0x1B164, + 0x1B168, + 0x1B170, + 0x1B2FC, + 0x1BC00, + 0x1BC6B, + 0x1BC70, + 0x1BC7D, + 0x1BC80, + 0x1BC89, + 0x1BC90, + 0x1BC9A, + 0x1BC9C, + 0x1BCA4, + 0x1D000, + 0x1D0F6, + 0x1D100, + 0x1D127, + 0x1D129, + 0x1D1E9, + 0x1D200, + 0x1D246, + 0x1D2E0, + 0x1D2F4, + 0x1D300, + 0x1D357, + 0x1D360, + 0x1D379, + 0x1D400, + 0x1D455, + 0x1D456, + 0x1D49D, + 0x1D49E, + 0x1D4A0, + 0x1D4A2, + 0x1D4A3, + 0x1D4A5, + 0x1D4A7, + 0x1D4A9, + 0x1D4AD, + 0x1D4AE, + 0x1D4BA, + 0x1D4BB, + 0x1D4BC, + 0x1D4BD, + 0x1D4C4, + 0x1D4C5, + 0x1D506, + 0x1D507, + 0x1D50B, + 0x1D50D, + 0x1D515, + 0x1D516, + 0x1D51D, + 0x1D51E, + 0x1D53A, + 0x1D53B, + 0x1D53F, + 0x1D540, + 0x1D545, + 0x1D546, + 0x1D547, + 0x1D54A, + 0x1D551, + 0x1D552, + 0x1D6A6, + 0x1D6A8, + 0x1D7CC, + 0x1D7CE, + 0x1DA8C, + 0x1DA9B, + 0x1DAA0, + 0x1DAA1, + 0x1DAB0, + 0x1E000, + 0x1E007, + 0x1E008, + 0x1E019, + 0x1E01B, + 0x1E022, + 0x1E023, + 0x1E025, + 0x1E026, + 0x1E02B, + 0x1E100, + 0x1E12D, + 0x1E130, + 0x1E13E, + 0x1E140, + 0x1E14A, + 0x1E14E, + 0x1E150, + 0x1E2C0, + 0x1E2FA, + 0x1E2FF, + 0x1E300, + 0x1E800, + 0x1E8C5, + 0x1E8C7, + 0x1E8D7, + 0x1E900, + 0x1E94C, + 0x1E950, + 0x1E95A, + 0x1E95E, + 0x1E960, + 0x1EC71, + 0x1ECB5, + 0x1ED01, + 0x1ED3E, + 0x1EE00, + 0x1EE04, + 0x1EE05, + 0x1EE20, + 0x1EE21, + 0x1EE23, + 0x1EE24, + 0x1EE25, + 0x1EE27, + 0x1EE28, + 0x1EE29, + 0x1EE33, + 0x1EE34, + 0x1EE38, + 0x1EE39, + 0x1EE3A, + 0x1EE3B, + 0x1EE3C, + 0x1EE42, + 0x1EE43, + 0x1EE47, + 0x1EE48, + 0x1EE49, + 0x1EE4A, + 0x1EE4B, + 0x1EE4C, + 0x1EE4D, + 0x1EE50, + 0x1EE51, + 0x1EE53, + 0x1EE54, + 0x1EE55, + 0x1EE57, + 0x1EE58, + 0x1EE59, + 0x1EE5A, + 0x1EE5B, + 0x1EE5C, + 0x1EE5D, + 0x1EE5E, + 0x1EE5F, + 0x1EE60, + 0x1EE61, + 0x1EE63, + 0x1EE64, + 0x1EE65, + 0x1EE67, + 0x1EE6B, + 0x1EE6C, + 0x1EE73, + 0x1EE74, + 0x1EE78, + 0x1EE79, + 0x1EE7D, + 0x1EE7E, + 0x1EE7F, + 0x1EE80, + 0x1EE8A, + 0x1EE8B, + 0x1EE9C, + 0x1EEA1, + 0x1EEA4, + 0x1EEA5, + 0x1EEAA, + 0x1EEAB, + 0x1EEBC, + 0x1EEF0, + 0x1EEF2, + 0x1F000, + 0x1F02C, + 0x1F030, + 0x1F094, + 0x1F0A0, + 0x1F0AF, + 0x1F0B1, + 0x1F0C0, + 0x1F0C1, + 0x1F0D0, + 0x1F0D1, + 0x1F0F6, + 0x1F100, + 0x1F1AE, + 0x1F1E6, + 0x1F203, + 0x1F210, + 0x1F23C, + 0x1F240, + 0x1F249, + 0x1F250, + 0x1F252, + 0x1F260, + 0x1F266, + 0x1F300, + 0x1F6D8, + 0x1F6E0, + 0x1F6ED, + 0x1F6F0, + 0x1F6FD, + 0x1F700, + 0x1F774, + 0x1F780, + 0x1F7D9, + 0x1F7E0, + 0x1F7EC, + 0x1F800, + 0x1F80C, + 0x1F810, + 0x1F848, + 0x1F850, + 0x1F85A, + 0x1F860, + 0x1F888, + 0x1F890, + 0x1F8AE, + 0x1F8B0, + 0x1F8B2, + 0x1F900, + 0x1F979, + 0x1F97A, + 0x1F9CC, + 0x1F9CD, + 0x1FA54, + 0x1FA60, + 0x1FA6E, + 0x1FA70, + 0x1FA75, + 0x1FA78, + 0x1FA7B, + 0x1FA80, + 0x1FA87, + 0x1FA90, + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB, + 0x1FBF0, + 0x1FBFA, + 0x20000, + 0x2A6DE, + 0x2A700, + 0x2B735, + 0x2B740, + 0x2B81E, + 0x2B820, + 0x2CEA2, + 0x2CEB0, + 0x2EBE1, + 0x2F800, + 0x2FA1E, + 0x30000, + 0x3134B, + 0xE0001, + 0xE0002, + 0xE0020, + 0xE0080, + 0xE0100, + 0xE01F0 +}; + +# endif /* ASCII/Latin1 */ + +# if 'A' == 193 /* EBCDIC 1047 */ \ + && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \ + && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \ + && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 + +static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 1047 */ + 1361, /* Number of elements */ + 148565664, /* Version and data structure type */ + 0, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x5, + 0x6, + 0xB, + 0xE, + 0x15, + 0x16, + 0x25, + 0x26, + 0x40, + 0xFF, + 0x100, + 0x378, + 0x37A, + 0x380, + 0x384, + 0x38B, + 0x38C, + 0x38D, + 0x38E, + 0x3A2, + 0x3A3, + 0x530, + 0x531, + 0x557, + 0x559, + 0x58B, + 0x58D, + 0x590, + 0x591, + 0x5C8, + 0x5D0, + 0x5EB, + 0x5EF, + 0x5F5, + 0x600, + 0x61D, + 0x61E, + 0x70E, + 0x70F, + 0x74B, + 0x74D, + 0x7B2, + 0x7C0, + 0x7FB, + 0x7FD, + 0x82E, + 0x830, + 0x83F, + 0x840, + 0x85C, + 0x85E, + 0x85F, + 0x860, + 0x86B, + 0x8A0, + 0x8B5, + 0x8B6, + 0x8C8, + 0x8D3, + 0x984, + 0x985, + 0x98D, + 0x98F, + 0x991, + 0x993, + 0x9A9, + 0x9AA, + 0x9B1, + 0x9B2, + 0x9B3, + 0x9B6, + 0x9BA, + 0x9BC, + 0x9C5, + 0x9C7, + 0x9C9, + 0x9CB, + 0x9CF, + 0x9D7, + 0x9D8, + 0x9DC, + 0x9DE, + 0x9DF, + 0x9E4, + 0x9E6, + 0x9FF, + 0xA01, + 0xA04, + 0xA05, + 0xA0B, + 0xA0F, + 0xA11, + 0xA13, + 0xA29, + 0xA2A, + 0xA31, + 0xA32, + 0xA34, + 0xA35, + 0xA37, + 0xA38, + 0xA3A, + 0xA3C, + 0xA3D, + 0xA3E, + 0xA43, + 0xA47, + 0xA49, + 0xA4B, + 0xA4E, + 0xA51, + 0xA52, + 0xA59, + 0xA5D, + 0xA5E, + 0xA5F, + 0xA66, + 0xA77, + 0xA81, + 0xA84, + 0xA85, + 0xA8E, + 0xA8F, + 0xA92, + 0xA93, + 0xAA9, + 0xAAA, + 0xAB1, + 0xAB2, + 0xAB4, + 0xAB5, + 0xABA, + 0xABC, + 0xAC6, + 0xAC7, + 0xACA, + 0xACB, + 0xACE, + 0xAD0, + 0xAD1, + 0xAE0, + 0xAE4, + 0xAE6, + 0xAF2, + 0xAF9, + 0xB00, + 0xB01, + 0xB04, + 0xB05, + 0xB0D, + 0xB0F, + 0xB11, + 0xB13, + 0xB29, + 0xB2A, + 0xB31, + 0xB32, + 0xB34, + 0xB35, + 0xB3A, + 0xB3C, + 0xB45, + 0xB47, + 0xB49, + 0xB4B, + 0xB4E, + 0xB55, + 0xB58, + 0xB5C, + 0xB5E, + 0xB5F, + 0xB64, + 0xB66, + 0xB78, + 0xB82, + 0xB84, + 0xB85, + 0xB8B, + 0xB8E, + 0xB91, + 0xB92, + 0xB96, + 0xB99, + 0xB9B, + 0xB9C, + 0xB9D, + 0xB9E, + 0xBA0, + 0xBA3, + 0xBA5, + 0xBA8, + 0xBAB, + 0xBAE, + 0xBBA, + 0xBBE, + 0xBC3, + 0xBC6, + 0xBC9, + 0xBCA, + 0xBCE, + 0xBD0, + 0xBD1, + 0xBD7, + 0xBD8, + 0xBE6, + 0xBFB, + 0xC00, + 0xC0D, + 0xC0E, + 0xC11, + 0xC12, + 0xC29, + 0xC2A, + 0xC3A, + 0xC3D, + 0xC45, + 0xC46, + 0xC49, + 0xC4A, + 0xC4E, + 0xC55, + 0xC57, + 0xC58, + 0xC5B, + 0xC60, + 0xC64, + 0xC66, + 0xC70, + 0xC77, + 0xC8D, + 0xC8E, + 0xC91, + 0xC92, + 0xCA9, + 0xCAA, + 0xCB4, + 0xCB5, + 0xCBA, + 0xCBC, + 0xCC5, + 0xCC6, + 0xCC9, + 0xCCA, + 0xCCE, + 0xCD5, + 0xCD7, + 0xCDE, + 0xCDF, + 0xCE0, + 0xCE4, + 0xCE6, + 0xCF0, + 0xCF1, + 0xCF3, + 0xD00, + 0xD0D, + 0xD0E, + 0xD11, + 0xD12, + 0xD45, + 0xD46, + 0xD49, + 0xD4A, + 0xD50, + 0xD54, + 0xD64, + 0xD66, + 0xD80, + 0xD81, + 0xD84, + 0xD85, + 0xD97, + 0xD9A, + 0xDB2, + 0xDB3, + 0xDBC, + 0xDBD, + 0xDBE, + 0xDC0, + 0xDC7, + 0xDCA, + 0xDCB, + 0xDCF, + 0xDD5, + 0xDD6, + 0xDD7, + 0xDD8, + 0xDE0, + 0xDE6, + 0xDF0, + 0xDF2, + 0xDF5, + 0xE01, + 0xE3B, + 0xE3F, + 0xE5C, + 0xE81, + 0xE83, + 0xE84, + 0xE85, + 0xE86, + 0xE8B, + 0xE8C, + 0xEA4, + 0xEA5, + 0xEA6, + 0xEA7, + 0xEBE, + 0xEC0, + 0xEC5, + 0xEC6, + 0xEC7, + 0xEC8, + 0xECE, + 0xED0, + 0xEDA, + 0xEDC, + 0xEE0, + 0xF00, + 0xF48, + 0xF49, + 0xF6D, + 0xF71, + 0xF98, + 0xF99, + 0xFBD, + 0xFBE, + 0xFCD, + 0xFCE, + 0xFDB, + 0x1000, + 0x10C6, + 0x10C7, + 0x10C8, + 0x10CD, + 0x10CE, + 0x10D0, + 0x1249, + 0x124A, + 0x124E, + 0x1250, + 0x1257, + 0x1258, + 0x1259, + 0x125A, + 0x125E, + 0x1260, + 0x1289, + 0x128A, + 0x128E, + 0x1290, + 0x12B1, + 0x12B2, + 0x12B6, + 0x12B8, + 0x12BF, + 0x12C0, + 0x12C1, + 0x12C2, + 0x12C6, + 0x12C8, + 0x12D7, + 0x12D8, + 0x1311, + 0x1312, + 0x1316, + 0x1318, + 0x135B, + 0x135D, + 0x137D, + 0x1380, + 0x139A, + 0x13A0, + 0x13F6, + 0x13F8, + 0x13FE, + 0x1400, + 0x169D, + 0x16A0, + 0x16F9, + 0x1700, + 0x170D, + 0x170E, + 0x1715, + 0x1720, + 0x1737, + 0x1740, + 0x1754, + 0x1760, + 0x176D, + 0x176E, + 0x1771, + 0x1772, + 0x1774, + 0x1780, + 0x17DE, + 0x17E0, + 0x17EA, + 0x17F0, + 0x17FA, + 0x1800, + 0x180F, + 0x1810, + 0x181A, + 0x1820, + 0x1879, + 0x1880, + 0x18AB, + 0x18B0, + 0x18F6, + 0x1900, + 0x191F, + 0x1920, + 0x192C, + 0x1930, + 0x193C, + 0x1940, + 0x1941, + 0x1944, + 0x196E, + 0x1970, + 0x1975, + 0x1980, + 0x19AC, + 0x19B0, + 0x19CA, + 0x19D0, + 0x19DB, + 0x19DE, + 0x1A1C, + 0x1A1E, + 0x1A5F, + 0x1A60, + 0x1A7D, + 0x1A7F, + 0x1A8A, + 0x1A90, + 0x1A9A, + 0x1AA0, + 0x1AAE, + 0x1AB0, + 0x1AC1, + 0x1B00, + 0x1B4C, + 0x1B50, + 0x1B7D, + 0x1B80, + 0x1BF4, + 0x1BFC, + 0x1C38, + 0x1C3B, + 0x1C4A, + 0x1C4D, + 0x1C89, + 0x1C90, + 0x1CBB, + 0x1CBD, + 0x1CC8, + 0x1CD0, + 0x1CFB, + 0x1D00, + 0x1DFA, + 0x1DFB, + 0x1F16, + 0x1F18, + 0x1F1E, + 0x1F20, + 0x1F46, + 0x1F48, + 0x1F4E, + 0x1F50, + 0x1F58, + 0x1F59, + 0x1F5A, + 0x1F5B, + 0x1F5C, + 0x1F5D, + 0x1F5E, + 0x1F5F, + 0x1F7E, + 0x1F80, + 0x1FB5, + 0x1FB6, + 0x1FC5, + 0x1FC6, + 0x1FD4, + 0x1FD6, + 0x1FDC, + 0x1FDD, + 0x1FF0, + 0x1FF2, + 0x1FF5, + 0x1FF6, + 0x1FFF, + 0x2000, + 0x2065, + 0x2066, + 0x2072, + 0x2074, + 0x208F, + 0x2090, + 0x209D, + 0x20A0, + 0x20C0, + 0x20D0, + 0x20F1, + 0x2100, + 0x218C, + 0x2190, + 0x2427, + 0x2440, + 0x244B, + 0x2460, + 0x2B74, + 0x2B76, + 0x2B96, + 0x2B97, + 0x2C2F, + 0x2C30, + 0x2C5F, + 0x2C60, + 0x2CF4, + 0x2CF9, + 0x2D26, + 0x2D27, + 0x2D28, + 0x2D2D, + 0x2D2E, + 0x2D30, + 0x2D68, + 0x2D6F, + 0x2D71, + 0x2D7F, + 0x2D97, + 0x2DA0, + 0x2DA7, + 0x2DA8, + 0x2DAF, + 0x2DB0, + 0x2DB7, + 0x2DB8, + 0x2DBF, + 0x2DC0, + 0x2DC7, + 0x2DC8, + 0x2DCF, + 0x2DD0, + 0x2DD7, + 0x2DD8, + 0x2DDF, + 0x2DE0, + 0x2E53, + 0x2E80, + 0x2E9A, + 0x2E9B, + 0x2EF4, + 0x2F00, + 0x2FD6, + 0x2FF0, + 0x2FFC, + 0x3000, + 0x3040, + 0x3041, + 0x3097, + 0x3099, + 0x3100, + 0x3105, + 0x3130, + 0x3131, + 0x318F, + 0x3190, + 0x31E4, + 0x31F0, + 0x321F, + 0x3220, + 0x9FFD, + 0xA000, + 0xA48D, + 0xA490, + 0xA4C7, + 0xA4D0, + 0xA62C, + 0xA640, + 0xA6F8, + 0xA700, + 0xA7C0, + 0xA7C2, + 0xA7CB, + 0xA7F5, + 0xA82D, + 0xA830, + 0xA83A, + 0xA840, + 0xA878, + 0xA880, + 0xA8C6, + 0xA8CE, + 0xA8DA, + 0xA8E0, + 0xA954, + 0xA95F, + 0xA97D, + 0xA980, + 0xA9CE, + 0xA9CF, + 0xA9DA, + 0xA9DE, + 0xA9FF, + 0xAA00, + 0xAA37, + 0xAA40, + 0xAA4E, + 0xAA50, + 0xAA5A, + 0xAA5C, + 0xAAC3, + 0xAADB, + 0xAAF7, + 0xAB01, + 0xAB07, + 0xAB09, + 0xAB0F, + 0xAB11, + 0xAB17, + 0xAB20, + 0xAB27, + 0xAB28, + 0xAB2F, + 0xAB30, + 0xAB6C, + 0xAB70, + 0xABEE, + 0xABF0, + 0xABFA, + 0xAC00, + 0xD7A4, + 0xD7B0, + 0xD7C7, + 0xD7CB, + 0xD7FC, + 0xF900, + 0xFA6E, + 0xFA70, + 0xFADA, + 0xFB00, + 0xFB07, + 0xFB13, + 0xFB18, + 0xFB1D, + 0xFB37, + 0xFB38, + 0xFB3D, + 0xFB3E, + 0xFB3F, + 0xFB40, + 0xFB42, + 0xFB43, + 0xFB45, + 0xFB46, + 0xFBC2, + 0xFBD3, + 0xFD40, + 0xFD50, + 0xFD90, + 0xFD92, + 0xFDC8, + 0xFDF0, + 0xFDFE, + 0xFE00, + 0xFE1A, + 0xFE20, + 0xFE53, + 0xFE54, + 0xFE67, + 0xFE68, + 0xFE6C, + 0xFE70, + 0xFE75, + 0xFE76, + 0xFEFD, + 0xFEFF, + 0xFF00, + 0xFF01, + 0xFFBF, + 0xFFC2, + 0xFFC8, + 0xFFCA, + 0xFFD0, + 0xFFD2, + 0xFFD8, + 0xFFDA, + 0xFFDD, + 0xFFE0, + 0xFFE7, + 0xFFE8, + 0xFFEF, + 0xFFF9, + 0xFFFE, + 0x10000, + 0x1000C, + 0x1000D, + 0x10027, + 0x10028, + 0x1003B, + 0x1003C, + 0x1003E, + 0x1003F, + 0x1004E, + 0x10050, + 0x1005E, + 0x10080, + 0x100FB, + 0x10100, + 0x10103, + 0x10107, + 0x10134, + 0x10137, + 0x1018F, + 0x10190, + 0x1019D, + 0x101A0, + 0x101A1, + 0x101D0, + 0x101FE, + 0x10280, + 0x1029D, + 0x102A0, + 0x102D1, + 0x102E0, + 0x102FC, + 0x10300, + 0x10324, + 0x1032D, + 0x1034B, + 0x10350, + 0x1037B, + 0x10380, + 0x1039E, + 0x1039F, + 0x103C4, + 0x103C8, + 0x103D6, + 0x10400, + 0x1049E, + 0x104A0, + 0x104AA, + 0x104B0, + 0x104D4, + 0x104D8, + 0x104FC, + 0x10500, + 0x10528, + 0x10530, + 0x10564, + 0x1056F, + 0x10570, + 0x10600, + 0x10737, + 0x10740, + 0x10756, + 0x10760, + 0x10768, + 0x10800, + 0x10806, + 0x10808, + 0x10809, + 0x1080A, + 0x10836, + 0x10837, + 0x10839, + 0x1083C, + 0x1083D, + 0x1083F, + 0x10856, + 0x10857, + 0x1089F, + 0x108A7, + 0x108B0, + 0x108E0, + 0x108F3, + 0x108F4, + 0x108F6, + 0x108FB, + 0x1091C, + 0x1091F, + 0x1093A, + 0x1093F, + 0x10940, + 0x10980, + 0x109B8, + 0x109BC, + 0x109D0, + 0x109D2, + 0x10A04, + 0x10A05, + 0x10A07, + 0x10A0C, + 0x10A14, + 0x10A15, + 0x10A18, + 0x10A19, + 0x10A36, + 0x10A38, + 0x10A3B, + 0x10A3F, + 0x10A49, + 0x10A50, + 0x10A59, + 0x10A60, + 0x10AA0, + 0x10AC0, + 0x10AE7, + 0x10AEB, + 0x10AF7, + 0x10B00, + 0x10B36, + 0x10B39, + 0x10B56, + 0x10B58, + 0x10B73, + 0x10B78, + 0x10B92, + 0x10B99, + 0x10B9D, + 0x10BA9, + 0x10BB0, + 0x10C00, + 0x10C49, + 0x10C80, + 0x10CB3, + 0x10CC0, + 0x10CF3, + 0x10CFA, + 0x10D28, + 0x10D30, + 0x10D3A, + 0x10E60, + 0x10E7F, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAE, + 0x10EB0, + 0x10EB2, + 0x10F00, + 0x10F28, + 0x10F30, + 0x10F5A, + 0x10FB0, + 0x10FCC, + 0x10FE0, + 0x10FF7, + 0x11000, + 0x1104E, + 0x11052, + 0x11070, + 0x1107F, + 0x110C2, + 0x110CD, + 0x110CE, + 0x110D0, + 0x110E9, + 0x110F0, + 0x110FA, + 0x11100, + 0x11135, + 0x11136, + 0x11148, + 0x11150, + 0x11177, + 0x11180, + 0x111E0, + 0x111E1, + 0x111F5, + 0x11200, + 0x11212, + 0x11213, + 0x1123F, + 0x11280, + 0x11287, + 0x11288, + 0x11289, + 0x1128A, + 0x1128E, + 0x1128F, + 0x1129E, + 0x1129F, + 0x112AA, + 0x112B0, + 0x112EB, + 0x112F0, + 0x112FA, + 0x11300, + 0x11304, + 0x11305, + 0x1130D, + 0x1130F, + 0x11311, + 0x11313, + 0x11329, + 0x1132A, + 0x11331, + 0x11332, + 0x11334, + 0x11335, + 0x1133A, + 0x1133B, + 0x11345, + 0x11347, + 0x11349, + 0x1134B, + 0x1134E, + 0x11350, + 0x11351, + 0x11357, + 0x11358, + 0x1135D, + 0x11364, + 0x11366, + 0x1136D, + 0x11370, + 0x11375, + 0x11400, + 0x1145C, + 0x1145D, + 0x11462, + 0x11480, + 0x114C8, + 0x114D0, + 0x114DA, + 0x11580, + 0x115B6, + 0x115B8, + 0x115DE, + 0x11600, + 0x11645, + 0x11650, + 0x1165A, + 0x11660, + 0x1166D, + 0x11680, + 0x116B9, + 0x116C0, + 0x116CA, + 0x11700, + 0x1171B, + 0x1171D, + 0x1172C, + 0x11730, + 0x11740, + 0x11800, + 0x1183C, + 0x118A0, + 0x118F3, + 0x118FF, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11947, + 0x11950, + 0x1195A, + 0x119A0, + 0x119A8, + 0x119AA, + 0x119D8, + 0x119DA, + 0x119E5, + 0x11A00, + 0x11A48, + 0x11A50, + 0x11AA3, + 0x11AC0, + 0x11AF9, + 0x11C00, + 0x11C09, + 0x11C0A, + 0x11C37, + 0x11C38, + 0x11C46, + 0x11C50, + 0x11C6D, + 0x11C70, + 0x11C90, + 0x11C92, + 0x11CA8, + 0x11CA9, + 0x11CB7, + 0x11D00, + 0x11D07, + 0x11D08, + 0x11D0A, + 0x11D0B, + 0x11D37, + 0x11D3A, + 0x11D3B, + 0x11D3C, + 0x11D3E, + 0x11D3F, + 0x11D48, + 0x11D50, + 0x11D5A, + 0x11D60, + 0x11D66, + 0x11D67, + 0x11D69, + 0x11D6A, + 0x11D8F, + 0x11D90, + 0x11D92, + 0x11D93, + 0x11D99, + 0x11DA0, + 0x11DAA, + 0x11EE0, + 0x11EF9, + 0x11FB0, + 0x11FB1, + 0x11FC0, + 0x11FF2, + 0x11FFF, + 0x1239A, + 0x12400, + 0x1246F, + 0x12470, + 0x12475, + 0x12480, + 0x12544, + 0x13000, + 0x1342F, + 0x13430, + 0x13439, + 0x14400, + 0x14647, + 0x16800, + 0x16A39, + 0x16A40, + 0x16A5F, + 0x16A60, + 0x16A6A, + 0x16A6E, + 0x16A70, + 0x16AD0, + 0x16AEE, + 0x16AF0, + 0x16AF6, + 0x16B00, + 0x16B46, + 0x16B50, + 0x16B5A, + 0x16B5B, + 0x16B62, + 0x16B63, + 0x16B78, + 0x16B7D, + 0x16B90, + 0x16E40, + 0x16E9B, + 0x16F00, + 0x16F4B, + 0x16F4F, + 0x16F88, + 0x16F8F, + 0x16FA0, + 0x16FE0, + 0x16FE5, + 0x16FF0, + 0x16FF2, + 0x17000, + 0x187F8, + 0x18800, + 0x18CD6, + 0x18D00, + 0x18D09, + 0x1B000, + 0x1B11F, + 0x1B150, + 0x1B153, + 0x1B164, + 0x1B168, + 0x1B170, + 0x1B2FC, + 0x1BC00, + 0x1BC6B, + 0x1BC70, + 0x1BC7D, + 0x1BC80, + 0x1BC89, + 0x1BC90, + 0x1BC9A, + 0x1BC9C, + 0x1BCA4, + 0x1D000, + 0x1D0F6, + 0x1D100, + 0x1D127, + 0x1D129, + 0x1D1E9, + 0x1D200, + 0x1D246, + 0x1D2E0, + 0x1D2F4, + 0x1D300, + 0x1D357, + 0x1D360, + 0x1D379, + 0x1D400, + 0x1D455, + 0x1D456, + 0x1D49D, + 0x1D49E, + 0x1D4A0, + 0x1D4A2, + 0x1D4A3, + 0x1D4A5, + 0x1D4A7, + 0x1D4A9, + 0x1D4AD, + 0x1D4AE, + 0x1D4BA, + 0x1D4BB, + 0x1D4BC, + 0x1D4BD, + 0x1D4C4, + 0x1D4C5, + 0x1D506, + 0x1D507, + 0x1D50B, + 0x1D50D, + 0x1D515, + 0x1D516, + 0x1D51D, + 0x1D51E, + 0x1D53A, + 0x1D53B, + 0x1D53F, + 0x1D540, + 0x1D545, + 0x1D546, + 0x1D547, + 0x1D54A, + 0x1D551, + 0x1D552, + 0x1D6A6, + 0x1D6A8, + 0x1D7CC, + 0x1D7CE, + 0x1DA8C, + 0x1DA9B, + 0x1DAA0, + 0x1DAA1, + 0x1DAB0, + 0x1E000, + 0x1E007, + 0x1E008, + 0x1E019, + 0x1E01B, + 0x1E022, + 0x1E023, + 0x1E025, + 0x1E026, + 0x1E02B, + 0x1E100, + 0x1E12D, + 0x1E130, + 0x1E13E, + 0x1E140, + 0x1E14A, + 0x1E14E, + 0x1E150, + 0x1E2C0, + 0x1E2FA, + 0x1E2FF, + 0x1E300, + 0x1E800, + 0x1E8C5, + 0x1E8C7, + 0x1E8D7, + 0x1E900, + 0x1E94C, + 0x1E950, + 0x1E95A, + 0x1E95E, + 0x1E960, + 0x1EC71, + 0x1ECB5, + 0x1ED01, + 0x1ED3E, + 0x1EE00, + 0x1EE04, + 0x1EE05, + 0x1EE20, + 0x1EE21, + 0x1EE23, + 0x1EE24, + 0x1EE25, + 0x1EE27, + 0x1EE28, + 0x1EE29, + 0x1EE33, + 0x1EE34, + 0x1EE38, + 0x1EE39, + 0x1EE3A, + 0x1EE3B, + 0x1EE3C, + 0x1EE42, + 0x1EE43, + 0x1EE47, + 0x1EE48, + 0x1EE49, + 0x1EE4A, + 0x1EE4B, + 0x1EE4C, + 0x1EE4D, + 0x1EE50, + 0x1EE51, + 0x1EE53, + 0x1EE54, + 0x1EE55, + 0x1EE57, + 0x1EE58, + 0x1EE59, + 0x1EE5A, + 0x1EE5B, + 0x1EE5C, + 0x1EE5D, + 0x1EE5E, + 0x1EE5F, + 0x1EE60, + 0x1EE61, + 0x1EE63, + 0x1EE64, + 0x1EE65, + 0x1EE67, + 0x1EE6B, + 0x1EE6C, + 0x1EE73, + 0x1EE74, + 0x1EE78, + 0x1EE79, + 0x1EE7D, + 0x1EE7E, + 0x1EE7F, + 0x1EE80, + 0x1EE8A, + 0x1EE8B, + 0x1EE9C, + 0x1EEA1, + 0x1EEA4, + 0x1EEA5, + 0x1EEAA, + 0x1EEAB, + 0x1EEBC, + 0x1EEF0, + 0x1EEF2, + 0x1F000, + 0x1F02C, + 0x1F030, + 0x1F094, + 0x1F0A0, + 0x1F0AF, + 0x1F0B1, + 0x1F0C0, + 0x1F0C1, + 0x1F0D0, + 0x1F0D1, + 0x1F0F6, + 0x1F100, + 0x1F1AE, + 0x1F1E6, + 0x1F203, + 0x1F210, + 0x1F23C, + 0x1F240, + 0x1F249, + 0x1F250, + 0x1F252, + 0x1F260, + 0x1F266, + 0x1F300, + 0x1F6D8, + 0x1F6E0, + 0x1F6ED, + 0x1F6F0, + 0x1F6FD, + 0x1F700, + 0x1F774, + 0x1F780, + 0x1F7D9, + 0x1F7E0, + 0x1F7EC, + 0x1F800, + 0x1F80C, + 0x1F810, + 0x1F848, + 0x1F850, + 0x1F85A, + 0x1F860, + 0x1F888, + 0x1F890, + 0x1F8AE, + 0x1F8B0, + 0x1F8B2, + 0x1F900, + 0x1F979, + 0x1F97A, + 0x1F9CC, + 0x1F9CD, + 0x1FA54, + 0x1FA60, + 0x1FA6E, + 0x1FA70, + 0x1FA75, + 0x1FA78, + 0x1FA7B, + 0x1FA80, + 0x1FA87, + 0x1FA90, + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB, + 0x1FBF0, + 0x1FBFA, + 0x20000, + 0x2A6DE, + 0x2A700, + 0x2B735, + 0x2B740, + 0x2B81E, + 0x2B820, + 0x2CEA2, + 0x2CEB0, + 0x2EBE1, + 0x2F800, + 0x2FA1E, + 0x30000, + 0x3134B, + 0xE0001, + 0xE0002, + 0xE0020, + 0xE0080, + 0xE0100, + 0xE01F0 +}; + +# endif /* EBCDIC 1047 */ + +# if 'A' == 193 /* EBCDIC 037 */ \ + && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \ + && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \ + && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 + +static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 037 */ + 1361, /* Number of elements */ + 148565664, /* Version and data structure type */ + 0, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x5, + 0x6, + 0xB, + 0xE, + 0x15, + 0x16, + 0x25, + 0x26, + 0x40, + 0xFF, + 0x100, + 0x378, + 0x37A, + 0x380, + 0x384, + 0x38B, + 0x38C, + 0x38D, + 0x38E, + 0x3A2, + 0x3A3, + 0x530, + 0x531, + 0x557, + 0x559, + 0x58B, + 0x58D, + 0x590, + 0x591, + 0x5C8, + 0x5D0, + 0x5EB, + 0x5EF, + 0x5F5, + 0x600, + 0x61D, + 0x61E, + 0x70E, + 0x70F, + 0x74B, + 0x74D, + 0x7B2, + 0x7C0, + 0x7FB, + 0x7FD, + 0x82E, + 0x830, + 0x83F, + 0x840, + 0x85C, + 0x85E, + 0x85F, + 0x860, + 0x86B, + 0x8A0, + 0x8B5, + 0x8B6, + 0x8C8, + 0x8D3, + 0x984, + 0x985, + 0x98D, + 0x98F, + 0x991, + 0x993, + 0x9A9, + 0x9AA, + 0x9B1, + 0x9B2, + 0x9B3, + 0x9B6, + 0x9BA, + 0x9BC, + 0x9C5, + 0x9C7, + 0x9C9, + 0x9CB, + 0x9CF, + 0x9D7, + 0x9D8, + 0x9DC, + 0x9DE, + 0x9DF, + 0x9E4, + 0x9E6, + 0x9FF, + 0xA01, + 0xA04, + 0xA05, + 0xA0B, + 0xA0F, + 0xA11, + 0xA13, + 0xA29, + 0xA2A, + 0xA31, + 0xA32, + 0xA34, + 0xA35, + 0xA37, + 0xA38, + 0xA3A, + 0xA3C, + 0xA3D, + 0xA3E, + 0xA43, + 0xA47, + 0xA49, + 0xA4B, + 0xA4E, + 0xA51, + 0xA52, + 0xA59, + 0xA5D, + 0xA5E, + 0xA5F, + 0xA66, + 0xA77, + 0xA81, + 0xA84, + 0xA85, + 0xA8E, + 0xA8F, + 0xA92, + 0xA93, + 0xAA9, + 0xAAA, + 0xAB1, + 0xAB2, + 0xAB4, + 0xAB5, + 0xABA, + 0xABC, + 0xAC6, + 0xAC7, + 0xACA, + 0xACB, + 0xACE, + 0xAD0, + 0xAD1, + 0xAE0, + 0xAE4, + 0xAE6, + 0xAF2, + 0xAF9, + 0xB00, + 0xB01, + 0xB04, + 0xB05, + 0xB0D, + 0xB0F, + 0xB11, + 0xB13, + 0xB29, + 0xB2A, + 0xB31, + 0xB32, + 0xB34, + 0xB35, + 0xB3A, + 0xB3C, + 0xB45, + 0xB47, + 0xB49, + 0xB4B, + 0xB4E, + 0xB55, + 0xB58, + 0xB5C, + 0xB5E, + 0xB5F, + 0xB64, + 0xB66, + 0xB78, + 0xB82, + 0xB84, + 0xB85, + 0xB8B, + 0xB8E, + 0xB91, + 0xB92, + 0xB96, + 0xB99, + 0xB9B, + 0xB9C, + 0xB9D, + 0xB9E, + 0xBA0, + 0xBA3, + 0xBA5, + 0xBA8, + 0xBAB, + 0xBAE, + 0xBBA, + 0xBBE, + 0xBC3, + 0xBC6, + 0xBC9, + 0xBCA, + 0xBCE, + 0xBD0, + 0xBD1, + 0xBD7, + 0xBD8, + 0xBE6, + 0xBFB, + 0xC00, + 0xC0D, + 0xC0E, + 0xC11, + 0xC12, + 0xC29, + 0xC2A, + 0xC3A, + 0xC3D, + 0xC45, + 0xC46, + 0xC49, + 0xC4A, + 0xC4E, + 0xC55, + 0xC57, + 0xC58, + 0xC5B, + 0xC60, + 0xC64, + 0xC66, + 0xC70, + 0xC77, + 0xC8D, + 0xC8E, + 0xC91, + 0xC92, + 0xCA9, + 0xCAA, + 0xCB4, + 0xCB5, + 0xCBA, + 0xCBC, + 0xCC5, + 0xCC6, + 0xCC9, + 0xCCA, + 0xCCE, + 0xCD5, + 0xCD7, + 0xCDE, + 0xCDF, + 0xCE0, + 0xCE4, + 0xCE6, + 0xCF0, + 0xCF1, + 0xCF3, + 0xD00, + 0xD0D, + 0xD0E, + 0xD11, + 0xD12, + 0xD45, + 0xD46, + 0xD49, + 0xD4A, + 0xD50, + 0xD54, + 0xD64, + 0xD66, + 0xD80, + 0xD81, + 0xD84, + 0xD85, + 0xD97, + 0xD9A, + 0xDB2, + 0xDB3, + 0xDBC, + 0xDBD, + 0xDBE, + 0xDC0, + 0xDC7, + 0xDCA, + 0xDCB, + 0xDCF, + 0xDD5, + 0xDD6, + 0xDD7, + 0xDD8, + 0xDE0, + 0xDE6, + 0xDF0, + 0xDF2, + 0xDF5, + 0xE01, + 0xE3B, + 0xE3F, + 0xE5C, + 0xE81, + 0xE83, + 0xE84, + 0xE85, + 0xE86, + 0xE8B, + 0xE8C, + 0xEA4, + 0xEA5, + 0xEA6, + 0xEA7, + 0xEBE, + 0xEC0, + 0xEC5, + 0xEC6, + 0xEC7, + 0xEC8, + 0xECE, + 0xED0, + 0xEDA, + 0xEDC, + 0xEE0, + 0xF00, + 0xF48, + 0xF49, + 0xF6D, + 0xF71, + 0xF98, + 0xF99, + 0xFBD, + 0xFBE, + 0xFCD, + 0xFCE, + 0xFDB, + 0x1000, + 0x10C6, + 0x10C7, + 0x10C8, + 0x10CD, + 0x10CE, + 0x10D0, + 0x1249, + 0x124A, + 0x124E, + 0x1250, + 0x1257, + 0x1258, + 0x1259, + 0x125A, + 0x125E, + 0x1260, + 0x1289, + 0x128A, + 0x128E, + 0x1290, + 0x12B1, + 0x12B2, + 0x12B6, + 0x12B8, + 0x12BF, + 0x12C0, + 0x12C1, + 0x12C2, + 0x12C6, + 0x12C8, + 0x12D7, + 0x12D8, + 0x1311, + 0x1312, + 0x1316, + 0x1318, + 0x135B, + 0x135D, + 0x137D, + 0x1380, + 0x139A, + 0x13A0, + 0x13F6, + 0x13F8, + 0x13FE, + 0x1400, + 0x169D, + 0x16A0, + 0x16F9, + 0x1700, + 0x170D, + 0x170E, + 0x1715, + 0x1720, + 0x1737, + 0x1740, + 0x1754, + 0x1760, + 0x176D, + 0x176E, + 0x1771, + 0x1772, + 0x1774, + 0x1780, + 0x17DE, + 0x17E0, + 0x17EA, + 0x17F0, + 0x17FA, + 0x1800, + 0x180F, + 0x1810, + 0x181A, + 0x1820, + 0x1879, + 0x1880, + 0x18AB, + 0x18B0, + 0x18F6, + 0x1900, + 0x191F, + 0x1920, + 0x192C, + 0x1930, + 0x193C, + 0x1940, + 0x1941, + 0x1944, + 0x196E, + 0x1970, + 0x1975, + 0x1980, + 0x19AC, + 0x19B0, + 0x19CA, + 0x19D0, + 0x19DB, + 0x19DE, + 0x1A1C, + 0x1A1E, + 0x1A5F, + 0x1A60, + 0x1A7D, + 0x1A7F, + 0x1A8A, + 0x1A90, + 0x1A9A, + 0x1AA0, + 0x1AAE, + 0x1AB0, + 0x1AC1, + 0x1B00, + 0x1B4C, + 0x1B50, + 0x1B7D, + 0x1B80, + 0x1BF4, + 0x1BFC, + 0x1C38, + 0x1C3B, + 0x1C4A, + 0x1C4D, + 0x1C89, + 0x1C90, + 0x1CBB, + 0x1CBD, + 0x1CC8, + 0x1CD0, + 0x1CFB, + 0x1D00, + 0x1DFA, + 0x1DFB, + 0x1F16, + 0x1F18, + 0x1F1E, + 0x1F20, + 0x1F46, + 0x1F48, + 0x1F4E, + 0x1F50, + 0x1F58, + 0x1F59, + 0x1F5A, + 0x1F5B, + 0x1F5C, + 0x1F5D, + 0x1F5E, + 0x1F5F, + 0x1F7E, + 0x1F80, + 0x1FB5, + 0x1FB6, + 0x1FC5, + 0x1FC6, + 0x1FD4, + 0x1FD6, + 0x1FDC, + 0x1FDD, + 0x1FF0, + 0x1FF2, + 0x1FF5, + 0x1FF6, + 0x1FFF, + 0x2000, + 0x2065, + 0x2066, + 0x2072, + 0x2074, + 0x208F, + 0x2090, + 0x209D, + 0x20A0, + 0x20C0, + 0x20D0, + 0x20F1, + 0x2100, + 0x218C, + 0x2190, + 0x2427, + 0x2440, + 0x244B, + 0x2460, + 0x2B74, + 0x2B76, + 0x2B96, + 0x2B97, + 0x2C2F, + 0x2C30, + 0x2C5F, + 0x2C60, + 0x2CF4, + 0x2CF9, + 0x2D26, + 0x2D27, + 0x2D28, + 0x2D2D, + 0x2D2E, + 0x2D30, + 0x2D68, + 0x2D6F, + 0x2D71, + 0x2D7F, + 0x2D97, + 0x2DA0, + 0x2DA7, + 0x2DA8, + 0x2DAF, + 0x2DB0, + 0x2DB7, + 0x2DB8, + 0x2DBF, + 0x2DC0, + 0x2DC7, + 0x2DC8, + 0x2DCF, + 0x2DD0, + 0x2DD7, + 0x2DD8, + 0x2DDF, + 0x2DE0, + 0x2E53, + 0x2E80, + 0x2E9A, + 0x2E9B, + 0x2EF4, + 0x2F00, + 0x2FD6, + 0x2FF0, + 0x2FFC, + 0x3000, + 0x3040, + 0x3041, + 0x3097, + 0x3099, + 0x3100, + 0x3105, + 0x3130, + 0x3131, + 0x318F, + 0x3190, + 0x31E4, + 0x31F0, + 0x321F, + 0x3220, + 0x9FFD, + 0xA000, + 0xA48D, + 0xA490, + 0xA4C7, + 0xA4D0, + 0xA62C, + 0xA640, + 0xA6F8, + 0xA700, + 0xA7C0, + 0xA7C2, + 0xA7CB, + 0xA7F5, + 0xA82D, + 0xA830, + 0xA83A, + 0xA840, + 0xA878, + 0xA880, + 0xA8C6, + 0xA8CE, + 0xA8DA, + 0xA8E0, + 0xA954, + 0xA95F, + 0xA97D, + 0xA980, + 0xA9CE, + 0xA9CF, + 0xA9DA, + 0xA9DE, + 0xA9FF, + 0xAA00, + 0xAA37, + 0xAA40, + 0xAA4E, + 0xAA50, + 0xAA5A, + 0xAA5C, + 0xAAC3, + 0xAADB, + 0xAAF7, + 0xAB01, + 0xAB07, + 0xAB09, + 0xAB0F, + 0xAB11, + 0xAB17, + 0xAB20, + 0xAB27, + 0xAB28, + 0xAB2F, + 0xAB30, + 0xAB6C, + 0xAB70, + 0xABEE, + 0xABF0, + 0xABFA, + 0xAC00, + 0xD7A4, + 0xD7B0, + 0xD7C7, + 0xD7CB, + 0xD7FC, + 0xF900, + 0xFA6E, + 0xFA70, + 0xFADA, + 0xFB00, + 0xFB07, + 0xFB13, + 0xFB18, + 0xFB1D, + 0xFB37, + 0xFB38, + 0xFB3D, + 0xFB3E, + 0xFB3F, + 0xFB40, + 0xFB42, + 0xFB43, + 0xFB45, + 0xFB46, + 0xFBC2, + 0xFBD3, + 0xFD40, + 0xFD50, + 0xFD90, + 0xFD92, + 0xFDC8, + 0xFDF0, + 0xFDFE, + 0xFE00, + 0xFE1A, + 0xFE20, + 0xFE53, + 0xFE54, + 0xFE67, + 0xFE68, + 0xFE6C, + 0xFE70, + 0xFE75, + 0xFE76, + 0xFEFD, + 0xFEFF, + 0xFF00, + 0xFF01, + 0xFFBF, + 0xFFC2, + 0xFFC8, + 0xFFCA, + 0xFFD0, + 0xFFD2, + 0xFFD8, + 0xFFDA, + 0xFFDD, + 0xFFE0, + 0xFFE7, + 0xFFE8, + 0xFFEF, + 0xFFF9, + 0xFFFE, + 0x10000, + 0x1000C, + 0x1000D, + 0x10027, + 0x10028, + 0x1003B, + 0x1003C, + 0x1003E, + 0x1003F, + 0x1004E, + 0x10050, + 0x1005E, + 0x10080, + 0x100FB, + 0x10100, + 0x10103, + 0x10107, + 0x10134, + 0x10137, + 0x1018F, + 0x10190, + 0x1019D, + 0x101A0, + 0x101A1, + 0x101D0, + 0x101FE, + 0x10280, + 0x1029D, + 0x102A0, + 0x102D1, + 0x102E0, + 0x102FC, + 0x10300, + 0x10324, + 0x1032D, + 0x1034B, + 0x10350, + 0x1037B, + 0x10380, + 0x1039E, + 0x1039F, + 0x103C4, + 0x103C8, + 0x103D6, + 0x10400, + 0x1049E, + 0x104A0, + 0x104AA, + 0x104B0, + 0x104D4, + 0x104D8, + 0x104FC, + 0x10500, + 0x10528, + 0x10530, + 0x10564, + 0x1056F, + 0x10570, + 0x10600, + 0x10737, + 0x10740, + 0x10756, + 0x10760, + 0x10768, + 0x10800, + 0x10806, + 0x10808, + 0x10809, + 0x1080A, + 0x10836, + 0x10837, + 0x10839, + 0x1083C, + 0x1083D, + 0x1083F, + 0x10856, + 0x10857, + 0x1089F, + 0x108A7, + 0x108B0, + 0x108E0, + 0x108F3, + 0x108F4, + 0x108F6, + 0x108FB, + 0x1091C, + 0x1091F, + 0x1093A, + 0x1093F, + 0x10940, + 0x10980, + 0x109B8, + 0x109BC, + 0x109D0, + 0x109D2, + 0x10A04, + 0x10A05, + 0x10A07, + 0x10A0C, + 0x10A14, + 0x10A15, + 0x10A18, + 0x10A19, + 0x10A36, + 0x10A38, + 0x10A3B, + 0x10A3F, + 0x10A49, + 0x10A50, + 0x10A59, + 0x10A60, + 0x10AA0, + 0x10AC0, + 0x10AE7, + 0x10AEB, + 0x10AF7, + 0x10B00, + 0x10B36, + 0x10B39, + 0x10B56, + 0x10B58, + 0x10B73, + 0x10B78, + 0x10B92, + 0x10B99, + 0x10B9D, + 0x10BA9, + 0x10BB0, + 0x10C00, + 0x10C49, + 0x10C80, + 0x10CB3, + 0x10CC0, + 0x10CF3, + 0x10CFA, + 0x10D28, + 0x10D30, + 0x10D3A, + 0x10E60, + 0x10E7F, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAE, + 0x10EB0, + 0x10EB2, + 0x10F00, + 0x10F28, + 0x10F30, + 0x10F5A, + 0x10FB0, + 0x10FCC, + 0x10FE0, + 0x10FF7, + 0x11000, + 0x1104E, + 0x11052, + 0x11070, + 0x1107F, + 0x110C2, + 0x110CD, + 0x110CE, + 0x110D0, + 0x110E9, + 0x110F0, + 0x110FA, + 0x11100, + 0x11135, + 0x11136, + 0x11148, + 0x11150, + 0x11177, + 0x11180, + 0x111E0, + 0x111E1, + 0x111F5, + 0x11200, + 0x11212, + 0x11213, + 0x1123F, + 0x11280, + 0x11287, + 0x11288, + 0x11289, + 0x1128A, + 0x1128E, + 0x1128F, + 0x1129E, + 0x1129F, + 0x112AA, + 0x112B0, + 0x112EB, + 0x112F0, + 0x112FA, + 0x11300, + 0x11304, + 0x11305, + 0x1130D, + 0x1130F, + 0x11311, + 0x11313, + 0x11329, + 0x1132A, + 0x11331, + 0x11332, + 0x11334, + 0x11335, + 0x1133A, + 0x1133B, + 0x11345, + 0x11347, + 0x11349, + 0x1134B, + 0x1134E, + 0x11350, + 0x11351, + 0x11357, + 0x11358, + 0x1135D, + 0x11364, + 0x11366, + 0x1136D, + 0x11370, + 0x11375, + 0x11400, + 0x1145C, + 0x1145D, + 0x11462, + 0x11480, + 0x114C8, + 0x114D0, + 0x114DA, + 0x11580, + 0x115B6, + 0x115B8, + 0x115DE, + 0x11600, + 0x11645, + 0x11650, + 0x1165A, + 0x11660, + 0x1166D, + 0x11680, + 0x116B9, + 0x116C0, + 0x116CA, + 0x11700, + 0x1171B, + 0x1171D, + 0x1172C, + 0x11730, + 0x11740, + 0x11800, + 0x1183C, + 0x118A0, + 0x118F3, + 0x118FF, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11947, + 0x11950, + 0x1195A, + 0x119A0, + 0x119A8, + 0x119AA, + 0x119D8, + 0x119DA, + 0x119E5, + 0x11A00, + 0x11A48, + 0x11A50, + 0x11AA3, + 0x11AC0, + 0x11AF9, + 0x11C00, + 0x11C09, + 0x11C0A, + 0x11C37, + 0x11C38, + 0x11C46, + 0x11C50, + 0x11C6D, + 0x11C70, + 0x11C90, + 0x11C92, + 0x11CA8, + 0x11CA9, + 0x11CB7, + 0x11D00, + 0x11D07, + 0x11D08, + 0x11D0A, + 0x11D0B, + 0x11D37, + 0x11D3A, + 0x11D3B, + 0x11D3C, + 0x11D3E, + 0x11D3F, + 0x11D48, + 0x11D50, + 0x11D5A, + 0x11D60, + 0x11D66, + 0x11D67, + 0x11D69, + 0x11D6A, + 0x11D8F, + 0x11D90, + 0x11D92, + 0x11D93, + 0x11D99, + 0x11DA0, + 0x11DAA, + 0x11EE0, + 0x11EF9, + 0x11FB0, + 0x11FB1, + 0x11FC0, + 0x11FF2, + 0x11FFF, + 0x1239A, + 0x12400, + 0x1246F, + 0x12470, + 0x12475, + 0x12480, + 0x12544, + 0x13000, + 0x1342F, + 0x13430, + 0x13439, + 0x14400, + 0x14647, + 0x16800, + 0x16A39, + 0x16A40, + 0x16A5F, + 0x16A60, + 0x16A6A, + 0x16A6E, + 0x16A70, + 0x16AD0, + 0x16AEE, + 0x16AF0, + 0x16AF6, + 0x16B00, + 0x16B46, + 0x16B50, + 0x16B5A, + 0x16B5B, + 0x16B62, + 0x16B63, + 0x16B78, + 0x16B7D, + 0x16B90, + 0x16E40, + 0x16E9B, + 0x16F00, + 0x16F4B, + 0x16F4F, + 0x16F88, + 0x16F8F, + 0x16FA0, + 0x16FE0, + 0x16FE5, + 0x16FF0, + 0x16FF2, + 0x17000, + 0x187F8, + 0x18800, + 0x18CD6, + 0x18D00, + 0x18D09, + 0x1B000, + 0x1B11F, + 0x1B150, + 0x1B153, + 0x1B164, + 0x1B168, + 0x1B170, + 0x1B2FC, + 0x1BC00, + 0x1BC6B, + 0x1BC70, + 0x1BC7D, + 0x1BC80, + 0x1BC89, + 0x1BC90, + 0x1BC9A, + 0x1BC9C, + 0x1BCA4, + 0x1D000, + 0x1D0F6, + 0x1D100, + 0x1D127, + 0x1D129, + 0x1D1E9, + 0x1D200, + 0x1D246, + 0x1D2E0, + 0x1D2F4, + 0x1D300, + 0x1D357, + 0x1D360, + 0x1D379, + 0x1D400, + 0x1D455, + 0x1D456, + 0x1D49D, + 0x1D49E, + 0x1D4A0, + 0x1D4A2, + 0x1D4A3, + 0x1D4A5, + 0x1D4A7, + 0x1D4A9, + 0x1D4AD, + 0x1D4AE, + 0x1D4BA, + 0x1D4BB, + 0x1D4BC, + 0x1D4BD, + 0x1D4C4, + 0x1D4C5, + 0x1D506, + 0x1D507, + 0x1D50B, + 0x1D50D, + 0x1D515, + 0x1D516, + 0x1D51D, + 0x1D51E, + 0x1D53A, + 0x1D53B, + 0x1D53F, + 0x1D540, + 0x1D545, + 0x1D546, + 0x1D547, + 0x1D54A, + 0x1D551, + 0x1D552, + 0x1D6A6, + 0x1D6A8, + 0x1D7CC, + 0x1D7CE, + 0x1DA8C, + 0x1DA9B, + 0x1DAA0, + 0x1DAA1, + 0x1DAB0, + 0x1E000, + 0x1E007, + 0x1E008, + 0x1E019, + 0x1E01B, + 0x1E022, + 0x1E023, + 0x1E025, + 0x1E026, + 0x1E02B, + 0x1E100, + 0x1E12D, + 0x1E130, + 0x1E13E, + 0x1E140, + 0x1E14A, + 0x1E14E, + 0x1E150, + 0x1E2C0, + 0x1E2FA, + 0x1E2FF, + 0x1E300, + 0x1E800, + 0x1E8C5, + 0x1E8C7, + 0x1E8D7, + 0x1E900, + 0x1E94C, + 0x1E950, + 0x1E95A, + 0x1E95E, + 0x1E960, + 0x1EC71, + 0x1ECB5, + 0x1ED01, + 0x1ED3E, + 0x1EE00, + 0x1EE04, + 0x1EE05, + 0x1EE20, + 0x1EE21, + 0x1EE23, + 0x1EE24, + 0x1EE25, + 0x1EE27, + 0x1EE28, + 0x1EE29, + 0x1EE33, + 0x1EE34, + 0x1EE38, + 0x1EE39, + 0x1EE3A, + 0x1EE3B, + 0x1EE3C, + 0x1EE42, + 0x1EE43, + 0x1EE47, + 0x1EE48, + 0x1EE49, + 0x1EE4A, + 0x1EE4B, + 0x1EE4C, + 0x1EE4D, + 0x1EE50, + 0x1EE51, + 0x1EE53, + 0x1EE54, + 0x1EE55, + 0x1EE57, + 0x1EE58, + 0x1EE59, + 0x1EE5A, + 0x1EE5B, + 0x1EE5C, + 0x1EE5D, + 0x1EE5E, + 0x1EE5F, + 0x1EE60, + 0x1EE61, + 0x1EE63, + 0x1EE64, + 0x1EE65, + 0x1EE67, + 0x1EE6B, + 0x1EE6C, + 0x1EE73, + 0x1EE74, + 0x1EE78, + 0x1EE79, + 0x1EE7D, + 0x1EE7E, + 0x1EE7F, + 0x1EE80, + 0x1EE8A, + 0x1EE8B, + 0x1EE9C, + 0x1EEA1, + 0x1EEA4, + 0x1EEA5, + 0x1EEAA, + 0x1EEAB, + 0x1EEBC, + 0x1EEF0, + 0x1EEF2, + 0x1F000, + 0x1F02C, + 0x1F030, + 0x1F094, + 0x1F0A0, + 0x1F0AF, + 0x1F0B1, + 0x1F0C0, + 0x1F0C1, + 0x1F0D0, + 0x1F0D1, + 0x1F0F6, + 0x1F100, + 0x1F1AE, + 0x1F1E6, + 0x1F203, + 0x1F210, + 0x1F23C, + 0x1F240, + 0x1F249, + 0x1F250, + 0x1F252, + 0x1F260, + 0x1F266, + 0x1F300, + 0x1F6D8, + 0x1F6E0, + 0x1F6ED, + 0x1F6F0, + 0x1F6FD, + 0x1F700, + 0x1F774, + 0x1F780, + 0x1F7D9, + 0x1F7E0, + 0x1F7EC, + 0x1F800, + 0x1F80C, + 0x1F810, + 0x1F848, + 0x1F850, + 0x1F85A, + 0x1F860, + 0x1F888, + 0x1F890, + 0x1F8AE, + 0x1F8B0, + 0x1F8B2, + 0x1F900, + 0x1F979, + 0x1F97A, + 0x1F9CC, + 0x1F9CD, + 0x1FA54, + 0x1FA60, + 0x1FA6E, + 0x1FA70, + 0x1FA75, + 0x1FA78, + 0x1FA7B, + 0x1FA80, + 0x1FA87, + 0x1FA90, + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB, + 0x1FBF0, + 0x1FBFA, + 0x20000, + 0x2A6DE, + 0x2A700, + 0x2B735, + 0x2B740, + 0x2B81E, + 0x2B820, + 0x2CEA2, + 0x2CEB0, + 0x2EBE1, + 0x2F800, + 0x2FA1E, + 0x30000, + 0x3134B, + 0xE0001, + 0xE0002, + 0xE0020, + 0xE0080, + 0xE0100, + 0xE01F0 +}; + +# endif /* EBCDIC 037 */ + +# if 'A' == 65 /* ASCII/Latin1 */ + +static const UV UNI_IDENTIFIERTYPE__NOTNFKC_invlist[] = { /* for ASCII/Latin1 */ + 503, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0xA0, + 0xA1, + 0xA8, + 0xA9, + 0xAA, + 0xAB, + 0xAF, + 0xB0, + 0xB2, + 0xB6, + 0xB8, + 0xBB, + 0xBC, + 0xBF, + 0x132, + 0x134, + 0x13F, + 0x141, + 0x17F, + 0x180, + 0x1C4, + 0x1CD, + 0x1F1, + 0x1F4, + 0x2B0, + 0x2B9, + 0x2D8, + 0x2DE, + 0x2E0, + 0x2E5, + 0x340, + 0x342, + 0x343, + 0x345, + 0x374, + 0x375, + 0x37A, + 0x37B, + 0x37E, + 0x37F, + 0x384, + 0x386, + 0x387, + 0x388, + 0x3D0, + 0x3D7, + 0x3F0, + 0x3F3, + 0x3F4, + 0x3F6, + 0x3F9, + 0x3FA, + 0x587, + 0x588, + 0x675, + 0x679, + 0x958, + 0x960, + 0x9DC, + 0x9DE, + 0x9DF, + 0x9E0, + 0xA33, + 0xA34, + 0xA36, + 0xA37, + 0xA59, + 0xA5C, + 0xA5E, + 0xA5F, + 0xB5C, + 0xB5E, + 0xE33, + 0xE34, + 0xEB3, + 0xEB4, + 0xEDC, + 0xEDE, + 0xF0C, + 0xF0D, + 0xF43, + 0xF44, + 0xF4D, + 0xF4E, + 0xF52, + 0xF53, + 0xF57, + 0xF58, + 0xF5C, + 0xF5D, + 0xF69, + 0xF6A, + 0xF73, + 0xF74, + 0xF75, + 0xF77, + 0xF78, + 0xF79, + 0xF81, + 0xF82, + 0xF93, + 0xF94, + 0xF9D, + 0xF9E, + 0xFA2, + 0xFA3, + 0xFA7, + 0xFA8, + 0xFAC, + 0xFAD, + 0xFB9, + 0xFBA, + 0x10FC, + 0x10FD, + 0x1D2C, + 0x1D2F, + 0x1D30, + 0x1D3B, + 0x1D3C, + 0x1D4E, + 0x1D4F, + 0x1D6B, + 0x1D78, + 0x1D79, + 0x1D9B, + 0x1DC0, + 0x1E9A, + 0x1E9C, + 0x1F71, + 0x1F72, + 0x1F73, + 0x1F74, + 0x1F75, + 0x1F76, + 0x1F77, + 0x1F78, + 0x1F79, + 0x1F7A, + 0x1F7B, + 0x1F7C, + 0x1F7D, + 0x1F7E, + 0x1FBB, + 0x1FBC, + 0x1FBD, + 0x1FC2, + 0x1FC9, + 0x1FCA, + 0x1FCB, + 0x1FCC, + 0x1FCD, + 0x1FD0, + 0x1FD3, + 0x1FD4, + 0x1FDB, + 0x1FDC, + 0x1FDD, + 0x1FE0, + 0x1FE3, + 0x1FE4, + 0x1FEB, + 0x1FEC, + 0x1FED, + 0x1FF0, + 0x1FF9, + 0x1FFA, + 0x1FFB, + 0x1FFC, + 0x1FFD, + 0x1FFF, + 0x2000, + 0x200B, + 0x2011, + 0x2012, + 0x2017, + 0x2018, + 0x2024, + 0x2027, + 0x202F, + 0x2030, + 0x2033, + 0x2035, + 0x2036, + 0x2038, + 0x203C, + 0x203D, + 0x203E, + 0x203F, + 0x2047, + 0x204A, + 0x2057, + 0x2058, + 0x205F, + 0x2060, + 0x2070, + 0x2072, + 0x2074, + 0x208F, + 0x2090, + 0x209D, + 0x20A8, + 0x20A9, + 0x2100, + 0x2104, + 0x2105, + 0x2108, + 0x2109, + 0x2114, + 0x2115, + 0x2117, + 0x2119, + 0x211E, + 0x2120, + 0x2123, + 0x2124, + 0x2125, + 0x2126, + 0x2127, + 0x2128, + 0x2129, + 0x212A, + 0x212E, + 0x212F, + 0x2132, + 0x2133, + 0x213A, + 0x213B, + 0x2141, + 0x2145, + 0x214A, + 0x2150, + 0x2180, + 0x2189, + 0x218A, + 0x222C, + 0x222E, + 0x222F, + 0x2231, + 0x2460, + 0x24EB, + 0x2A0C, + 0x2A0D, + 0x2A74, + 0x2A77, + 0x2ADC, + 0x2ADD, + 0x2C7C, + 0x2C7E, + 0x2D6F, + 0x2D70, + 0x2E9F, + 0x2EA0, + 0x2EF3, + 0x2EF4, + 0x2F00, + 0x2FD6, + 0x3000, + 0x3001, + 0x3036, + 0x3037, + 0x3038, + 0x303B, + 0x309B, + 0x309D, + 0x309F, + 0x30A0, + 0x30FF, + 0x3100, + 0x3131, + 0x3164, + 0x3165, + 0x318F, + 0x3192, + 0x31A0, + 0x3200, + 0x321F, + 0x3220, + 0x3248, + 0x3250, + 0x327F, + 0x3280, + 0x3400, + 0xA69C, + 0xA69E, + 0xA770, + 0xA771, + 0xA7F8, + 0xA7FA, + 0xAB5C, + 0xAB60, + 0xAB69, + 0xAB6A, + 0xF900, + 0xFA0E, + 0xFA10, + 0xFA11, + 0xFA12, + 0xFA13, + 0xFA15, + 0xFA1F, + 0xFA20, + 0xFA21, + 0xFA22, + 0xFA23, + 0xFA25, + 0xFA27, + 0xFA2A, + 0xFA6E, + 0xFA70, + 0xFADA, + 0xFB00, + 0xFB07, + 0xFB13, + 0xFB18, + 0xFB1D, + 0xFB1E, + 0xFB1F, + 0xFB37, + 0xFB38, + 0xFB3D, + 0xFB3E, + 0xFB3F, + 0xFB40, + 0xFB42, + 0xFB43, + 0xFB45, + 0xFB46, + 0xFBB2, + 0xFBD3, + 0xFD3E, + 0xFD50, + 0xFD90, + 0xFD92, + 0xFDC8, + 0xFDF0, + 0xFDFD, + 0xFE10, + 0xFE1A, + 0xFE30, + 0xFE45, + 0xFE47, + 0xFE53, + 0xFE54, + 0xFE67, + 0xFE68, + 0xFE6C, + 0xFE70, + 0xFE73, + 0xFE74, + 0xFE75, + 0xFE76, + 0xFEFD, + 0xFF01, + 0xFFA0, + 0xFFA1, + 0xFFBF, + 0xFFC2, + 0xFFC8, + 0xFFCA, + 0xFFD0, + 0xFFD2, + 0xFFD8, + 0xFFDA, + 0xFFDD, + 0xFFE0, + 0xFFE7, + 0xFFE8, + 0xFFEF, + 0x1D15E, + 0x1D165, + 0x1D1BB, + 0x1D1C1, + 0x1D400, + 0x1D455, + 0x1D456, + 0x1D49D, + 0x1D49E, + 0x1D4A0, + 0x1D4A2, + 0x1D4A3, + 0x1D4A5, + 0x1D4A7, + 0x1D4A9, + 0x1D4AD, + 0x1D4AE, + 0x1D4BA, + 0x1D4BB, + 0x1D4BC, + 0x1D4BD, + 0x1D4C4, + 0x1D4C5, + 0x1D506, + 0x1D507, + 0x1D50B, + 0x1D50D, + 0x1D515, + 0x1D516, + 0x1D51D, + 0x1D51E, + 0x1D53A, + 0x1D53B, + 0x1D53F, + 0x1D540, + 0x1D545, + 0x1D546, + 0x1D547, + 0x1D54A, + 0x1D551, + 0x1D552, + 0x1D6A6, + 0x1D6A8, + 0x1D7CC, + 0x1D7CE, + 0x1D800, + 0x1EE00, + 0x1EE04, + 0x1EE05, + 0x1EE20, + 0x1EE21, + 0x1EE23, + 0x1EE24, + 0x1EE25, + 0x1EE27, + 0x1EE28, + 0x1EE29, + 0x1EE33, + 0x1EE34, + 0x1EE38, + 0x1EE39, + 0x1EE3A, + 0x1EE3B, + 0x1EE3C, + 0x1EE42, + 0x1EE43, + 0x1EE47, + 0x1EE48, + 0x1EE49, + 0x1EE4A, + 0x1EE4B, + 0x1EE4C, + 0x1EE4D, + 0x1EE50, + 0x1EE51, + 0x1EE53, + 0x1EE54, + 0x1EE55, + 0x1EE57, + 0x1EE58, + 0x1EE59, + 0x1EE5A, + 0x1EE5B, + 0x1EE5C, + 0x1EE5D, + 0x1EE5E, + 0x1EE5F, + 0x1EE60, + 0x1EE61, + 0x1EE63, + 0x1EE64, + 0x1EE65, + 0x1EE67, + 0x1EE6B, + 0x1EE6C, + 0x1EE73, + 0x1EE74, + 0x1EE78, + 0x1EE79, + 0x1EE7D, + 0x1EE7E, + 0x1EE7F, + 0x1EE80, + 0x1EE8A, + 0x1EE8B, + 0x1EE9C, + 0x1EEA1, + 0x1EEA4, + 0x1EEA5, + 0x1EEAA, + 0x1EEAB, + 0x1EEBC, + 0x1F100, + 0x1F10B, + 0x1F110, + 0x1F12F, + 0x1F130, + 0x1F150, + 0x1F16A, + 0x1F16D, + 0x1F190, + 0x1F191, + 0x1F200, + 0x1F203, + 0x1F210, + 0x1F23C, + 0x1F240, + 0x1F249, + 0x1F250, + 0x1F252, + 0x1FBF0, + 0x1FBFA, + 0x2F800, + 0x2FA1E +}; + +# endif /* ASCII/Latin1 */ + +# if 'A' == 193 /* EBCDIC 1047 */ \ + && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \ + && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \ + && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 + +static const UV UNI_IDENTIFIERTYPE__NOTNFKC_invlist[] = { /* for EBCDIC 1047 */ + 509, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x41, + 0x42, + 0x9A, + 0x9C, + 0x9D, + 0x9E, + 0xA0, + 0xA1, + 0xB7, + 0xBA, + 0xBB, + 0xBD, + 0xBE, + 0xBF, + 0xDA, + 0xDB, + 0xEA, + 0xEB, + 0xFA, + 0xFB, + 0x132, + 0x134, + 0x13F, + 0x141, + 0x17F, + 0x180, + 0x1C4, + 0x1CD, + 0x1F1, + 0x1F4, + 0x2B0, + 0x2B9, + 0x2D8, + 0x2DE, + 0x2E0, + 0x2E5, + 0x340, + 0x342, + 0x343, + 0x345, + 0x374, + 0x375, + 0x37A, + 0x37B, + 0x37E, + 0x37F, + 0x384, + 0x386, + 0x387, + 0x388, + 0x3D0, + 0x3D7, + 0x3F0, + 0x3F3, + 0x3F4, + 0x3F6, + 0x3F9, + 0x3FA, + 0x587, + 0x588, + 0x675, + 0x679, + 0x958, + 0x960, + 0x9DC, + 0x9DE, + 0x9DF, + 0x9E0, + 0xA33, + 0xA34, + 0xA36, + 0xA37, + 0xA59, + 0xA5C, + 0xA5E, + 0xA5F, + 0xB5C, + 0xB5E, + 0xE33, + 0xE34, + 0xEB3, + 0xEB4, + 0xEDC, + 0xEDE, + 0xF0C, + 0xF0D, + 0xF43, + 0xF44, + 0xF4D, + 0xF4E, + 0xF52, + 0xF53, + 0xF57, + 0xF58, + 0xF5C, + 0xF5D, + 0xF69, + 0xF6A, + 0xF73, + 0xF74, + 0xF75, + 0xF77, + 0xF78, + 0xF79, + 0xF81, + 0xF82, + 0xF93, + 0xF94, + 0xF9D, + 0xF9E, + 0xFA2, + 0xFA3, + 0xFA7, + 0xFA8, + 0xFAC, + 0xFAD, + 0xFB9, + 0xFBA, + 0x10FC, + 0x10FD, + 0x1D2C, + 0x1D2F, + 0x1D30, + 0x1D3B, + 0x1D3C, + 0x1D4E, + 0x1D4F, + 0x1D6B, + 0x1D78, + 0x1D79, + 0x1D9B, + 0x1DC0, + 0x1E9A, + 0x1E9C, + 0x1F71, + 0x1F72, + 0x1F73, + 0x1F74, + 0x1F75, + 0x1F76, + 0x1F77, + 0x1F78, + 0x1F79, + 0x1F7A, + 0x1F7B, + 0x1F7C, + 0x1F7D, + 0x1F7E, + 0x1FBB, + 0x1FBC, + 0x1FBD, + 0x1FC2, + 0x1FC9, + 0x1FCA, + 0x1FCB, + 0x1FCC, + 0x1FCD, + 0x1FD0, + 0x1FD3, + 0x1FD4, + 0x1FDB, + 0x1FDC, + 0x1FDD, + 0x1FE0, + 0x1FE3, + 0x1FE4, + 0x1FEB, + 0x1FEC, + 0x1FED, + 0x1FF0, + 0x1FF9, + 0x1FFA, + 0x1FFB, + 0x1FFC, + 0x1FFD, + 0x1FFF, + 0x2000, + 0x200B, + 0x2011, + 0x2012, + 0x2017, + 0x2018, + 0x2024, + 0x2027, + 0x202F, + 0x2030, + 0x2033, + 0x2035, + 0x2036, + 0x2038, + 0x203C, + 0x203D, + 0x203E, + 0x203F, + 0x2047, + 0x204A, + 0x2057, + 0x2058, + 0x205F, + 0x2060, + 0x2070, + 0x2072, + 0x2074, + 0x208F, + 0x2090, + 0x209D, + 0x20A8, + 0x20A9, + 0x2100, + 0x2104, + 0x2105, + 0x2108, + 0x2109, + 0x2114, + 0x2115, + 0x2117, + 0x2119, + 0x211E, + 0x2120, + 0x2123, + 0x2124, + 0x2125, + 0x2126, + 0x2127, + 0x2128, + 0x2129, + 0x212A, + 0x212E, + 0x212F, + 0x2132, + 0x2133, + 0x213A, + 0x213B, + 0x2141, + 0x2145, + 0x214A, + 0x2150, + 0x2180, + 0x2189, + 0x218A, + 0x222C, + 0x222E, + 0x222F, + 0x2231, + 0x2460, + 0x24EB, + 0x2A0C, + 0x2A0D, + 0x2A74, + 0x2A77, + 0x2ADC, + 0x2ADD, + 0x2C7C, + 0x2C7E, + 0x2D6F, + 0x2D70, + 0x2E9F, + 0x2EA0, + 0x2EF3, + 0x2EF4, + 0x2F00, + 0x2FD6, + 0x3000, + 0x3001, + 0x3036, + 0x3037, + 0x3038, + 0x303B, + 0x309B, + 0x309D, + 0x309F, + 0x30A0, + 0x30FF, + 0x3100, + 0x3131, + 0x3164, + 0x3165, + 0x318F, + 0x3192, + 0x31A0, + 0x3200, + 0x321F, + 0x3220, + 0x3248, + 0x3250, + 0x327F, + 0x3280, + 0x3400, + 0xA69C, + 0xA69E, + 0xA770, + 0xA771, + 0xA7F8, + 0xA7FA, + 0xAB5C, + 0xAB60, + 0xAB69, + 0xAB6A, + 0xF900, + 0xFA0E, + 0xFA10, + 0xFA11, + 0xFA12, + 0xFA13, + 0xFA15, + 0xFA1F, + 0xFA20, + 0xFA21, + 0xFA22, + 0xFA23, + 0xFA25, + 0xFA27, + 0xFA2A, + 0xFA6E, + 0xFA70, + 0xFADA, + 0xFB00, + 0xFB07, + 0xFB13, + 0xFB18, + 0xFB1D, + 0xFB1E, + 0xFB1F, + 0xFB37, + 0xFB38, + 0xFB3D, + 0xFB3E, + 0xFB3F, + 0xFB40, + 0xFB42, + 0xFB43, + 0xFB45, + 0xFB46, + 0xFBB2, + 0xFBD3, + 0xFD3E, + 0xFD50, + 0xFD90, + 0xFD92, + 0xFDC8, + 0xFDF0, + 0xFDFD, + 0xFE10, + 0xFE1A, + 0xFE30, + 0xFE45, + 0xFE47, + 0xFE53, + 0xFE54, + 0xFE67, + 0xFE68, + 0xFE6C, + 0xFE70, + 0xFE73, + 0xFE74, + 0xFE75, + 0xFE76, + 0xFEFD, + 0xFF01, + 0xFFA0, + 0xFFA1, + 0xFFBF, + 0xFFC2, + 0xFFC8, + 0xFFCA, + 0xFFD0, + 0xFFD2, + 0xFFD8, + 0xFFDA, + 0xFFDD, + 0xFFE0, + 0xFFE7, + 0xFFE8, + 0xFFEF, + 0x1D15E, + 0x1D165, + 0x1D1BB, + 0x1D1C1, + 0x1D400, + 0x1D455, + 0x1D456, + 0x1D49D, + 0x1D49E, + 0x1D4A0, + 0x1D4A2, + 0x1D4A3, + 0x1D4A5, + 0x1D4A7, + 0x1D4A9, + 0x1D4AD, + 0x1D4AE, + 0x1D4BA, + 0x1D4BB, + 0x1D4BC, + 0x1D4BD, + 0x1D4C4, + 0x1D4C5, + 0x1D506, + 0x1D507, + 0x1D50B, + 0x1D50D, + 0x1D515, + 0x1D516, + 0x1D51D, + 0x1D51E, + 0x1D53A, + 0x1D53B, + 0x1D53F, + 0x1D540, + 0x1D545, + 0x1D546, + 0x1D547, + 0x1D54A, + 0x1D551, + 0x1D552, + 0x1D6A6, + 0x1D6A8, + 0x1D7CC, + 0x1D7CE, + 0x1D800, + 0x1EE00, + 0x1EE04, + 0x1EE05, + 0x1EE20, + 0x1EE21, + 0x1EE23, + 0x1EE24, + 0x1EE25, + 0x1EE27, + 0x1EE28, + 0x1EE29, + 0x1EE33, + 0x1EE34, + 0x1EE38, + 0x1EE39, + 0x1EE3A, + 0x1EE3B, + 0x1EE3C, + 0x1EE42, + 0x1EE43, + 0x1EE47, + 0x1EE48, + 0x1EE49, + 0x1EE4A, + 0x1EE4B, + 0x1EE4C, + 0x1EE4D, + 0x1EE50, + 0x1EE51, + 0x1EE53, + 0x1EE54, + 0x1EE55, + 0x1EE57, + 0x1EE58, + 0x1EE59, + 0x1EE5A, + 0x1EE5B, + 0x1EE5C, + 0x1EE5D, + 0x1EE5E, + 0x1EE5F, + 0x1EE60, + 0x1EE61, + 0x1EE63, + 0x1EE64, + 0x1EE65, + 0x1EE67, + 0x1EE6B, + 0x1EE6C, + 0x1EE73, + 0x1EE74, + 0x1EE78, + 0x1EE79, + 0x1EE7D, + 0x1EE7E, + 0x1EE7F, + 0x1EE80, + 0x1EE8A, + 0x1EE8B, + 0x1EE9C, + 0x1EEA1, + 0x1EEA4, + 0x1EEA5, + 0x1EEAA, + 0x1EEAB, + 0x1EEBC, + 0x1F100, + 0x1F10B, + 0x1F110, + 0x1F12F, + 0x1F130, + 0x1F150, + 0x1F16A, + 0x1F16D, + 0x1F190, + 0x1F191, + 0x1F200, + 0x1F203, + 0x1F210, + 0x1F23C, + 0x1F240, + 0x1F249, + 0x1F250, + 0x1F252, + 0x1FBF0, + 0x1FBFA, + 0x2F800, + 0x2FA1E +}; + +# endif /* EBCDIC 1047 */ + +# if 'A' == 193 /* EBCDIC 037 */ \ + && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \ + && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \ + && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 + +static const UV UNI_IDENTIFIERTYPE__NOTNFKC_invlist[] = { /* for EBCDIC 037 */ + 507, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x41, + 0x42, + 0x9A, + 0x9C, + 0x9D, + 0x9E, + 0xA0, + 0xA1, + 0xB7, + 0xBA, + 0xBC, + 0xBF, + 0xDA, + 0xDB, + 0xEA, + 0xEB, + 0xFA, + 0xFB, + 0x132, + 0x134, + 0x13F, + 0x141, + 0x17F, + 0x180, + 0x1C4, + 0x1CD, + 0x1F1, + 0x1F4, + 0x2B0, + 0x2B9, + 0x2D8, + 0x2DE, + 0x2E0, + 0x2E5, + 0x340, + 0x342, + 0x343, + 0x345, + 0x374, + 0x375, + 0x37A, + 0x37B, + 0x37E, + 0x37F, + 0x384, + 0x386, + 0x387, + 0x388, + 0x3D0, + 0x3D7, + 0x3F0, + 0x3F3, + 0x3F4, + 0x3F6, + 0x3F9, + 0x3FA, + 0x587, + 0x588, + 0x675, + 0x679, + 0x958, + 0x960, + 0x9DC, + 0x9DE, + 0x9DF, + 0x9E0, + 0xA33, + 0xA34, + 0xA36, + 0xA37, + 0xA59, + 0xA5C, + 0xA5E, + 0xA5F, + 0xB5C, + 0xB5E, + 0xE33, + 0xE34, + 0xEB3, + 0xEB4, + 0xEDC, + 0xEDE, + 0xF0C, + 0xF0D, + 0xF43, + 0xF44, + 0xF4D, + 0xF4E, + 0xF52, + 0xF53, + 0xF57, + 0xF58, + 0xF5C, + 0xF5D, + 0xF69, + 0xF6A, + 0xF73, + 0xF74, + 0xF75, + 0xF77, + 0xF78, + 0xF79, + 0xF81, + 0xF82, + 0xF93, + 0xF94, + 0xF9D, + 0xF9E, + 0xFA2, + 0xFA3, + 0xFA7, + 0xFA8, + 0xFAC, + 0xFAD, + 0xFB9, + 0xFBA, + 0x10FC, + 0x10FD, + 0x1D2C, + 0x1D2F, + 0x1D30, + 0x1D3B, + 0x1D3C, + 0x1D4E, + 0x1D4F, + 0x1D6B, + 0x1D78, + 0x1D79, + 0x1D9B, + 0x1DC0, + 0x1E9A, + 0x1E9C, + 0x1F71, + 0x1F72, + 0x1F73, + 0x1F74, + 0x1F75, + 0x1F76, + 0x1F77, + 0x1F78, + 0x1F79, + 0x1F7A, + 0x1F7B, + 0x1F7C, + 0x1F7D, + 0x1F7E, + 0x1FBB, + 0x1FBC, + 0x1FBD, + 0x1FC2, + 0x1FC9, + 0x1FCA, + 0x1FCB, + 0x1FCC, + 0x1FCD, + 0x1FD0, + 0x1FD3, + 0x1FD4, + 0x1FDB, + 0x1FDC, + 0x1FDD, + 0x1FE0, + 0x1FE3, + 0x1FE4, + 0x1FEB, + 0x1FEC, + 0x1FED, + 0x1FF0, + 0x1FF9, + 0x1FFA, + 0x1FFB, + 0x1FFC, + 0x1FFD, + 0x1FFF, + 0x2000, + 0x200B, + 0x2011, + 0x2012, + 0x2017, + 0x2018, + 0x2024, + 0x2027, + 0x202F, + 0x2030, + 0x2033, + 0x2035, + 0x2036, + 0x2038, + 0x203C, + 0x203D, + 0x203E, + 0x203F, + 0x2047, + 0x204A, + 0x2057, + 0x2058, + 0x205F, + 0x2060, + 0x2070, + 0x2072, + 0x2074, + 0x208F, + 0x2090, + 0x209D, + 0x20A8, + 0x20A9, + 0x2100, + 0x2104, + 0x2105, + 0x2108, + 0x2109, + 0x2114, + 0x2115, + 0x2117, + 0x2119, + 0x211E, + 0x2120, + 0x2123, + 0x2124, + 0x2125, + 0x2126, + 0x2127, + 0x2128, + 0x2129, + 0x212A, + 0x212E, + 0x212F, + 0x2132, + 0x2133, + 0x213A, + 0x213B, + 0x2141, + 0x2145, + 0x214A, + 0x2150, + 0x2180, + 0x2189, + 0x218A, + 0x222C, + 0x222E, + 0x222F, + 0x2231, + 0x2460, + 0x24EB, + 0x2A0C, + 0x2A0D, + 0x2A74, + 0x2A77, + 0x2ADC, + 0x2ADD, + 0x2C7C, + 0x2C7E, + 0x2D6F, + 0x2D70, + 0x2E9F, + 0x2EA0, + 0x2EF3, + 0x2EF4, + 0x2F00, + 0x2FD6, + 0x3000, + 0x3001, + 0x3036, + 0x3037, + 0x3038, + 0x303B, + 0x309B, + 0x309D, + 0x309F, + 0x30A0, + 0x30FF, + 0x3100, + 0x3131, + 0x3164, + 0x3165, + 0x318F, + 0x3192, + 0x31A0, + 0x3200, + 0x321F, + 0x3220, + 0x3248, + 0x3250, + 0x327F, + 0x3280, + 0x3400, + 0xA69C, + 0xA69E, + 0xA770, + 0xA771, + 0xA7F8, + 0xA7FA, + 0xAB5C, + 0xAB60, + 0xAB69, + 0xAB6A, + 0xF900, + 0xFA0E, + 0xFA10, + 0xFA11, + 0xFA12, + 0xFA13, + 0xFA15, + 0xFA1F, + 0xFA20, + 0xFA21, + 0xFA22, + 0xFA23, + 0xFA25, + 0xFA27, + 0xFA2A, + 0xFA6E, + 0xFA70, + 0xFADA, + 0xFB00, + 0xFB07, + 0xFB13, + 0xFB18, + 0xFB1D, + 0xFB1E, + 0xFB1F, + 0xFB37, + 0xFB38, + 0xFB3D, + 0xFB3E, + 0xFB3F, + 0xFB40, + 0xFB42, + 0xFB43, + 0xFB45, + 0xFB46, + 0xFBB2, + 0xFBD3, + 0xFD3E, + 0xFD50, + 0xFD90, + 0xFD92, + 0xFDC8, + 0xFDF0, + 0xFDFD, + 0xFE10, + 0xFE1A, + 0xFE30, + 0xFE45, + 0xFE47, + 0xFE53, + 0xFE54, + 0xFE67, + 0xFE68, + 0xFE6C, + 0xFE70, + 0xFE73, + 0xFE74, + 0xFE75, + 0xFE76, + 0xFEFD, + 0xFF01, + 0xFFA0, + 0xFFA1, + 0xFFBF, + 0xFFC2, + 0xFFC8, + 0xFFCA, + 0xFFD0, + 0xFFD2, + 0xFFD8, + 0xFFDA, + 0xFFDD, + 0xFFE0, + 0xFFE7, + 0xFFE8, + 0xFFEF, + 0x1D15E, + 0x1D165, + 0x1D1BB, + 0x1D1C1, + 0x1D400, + 0x1D455, + 0x1D456, + 0x1D49D, + 0x1D49E, + 0x1D4A0, + 0x1D4A2, + 0x1D4A3, + 0x1D4A5, + 0x1D4A7, + 0x1D4A9, + 0x1D4AD, + 0x1D4AE, + 0x1D4BA, + 0x1D4BB, + 0x1D4BC, + 0x1D4BD, + 0x1D4C4, + 0x1D4C5, + 0x1D506, + 0x1D507, + 0x1D50B, + 0x1D50D, + 0x1D515, + 0x1D516, + 0x1D51D, + 0x1D51E, + 0x1D53A, + 0x1D53B, + 0x1D53F, + 0x1D540, + 0x1D545, + 0x1D546, + 0x1D547, + 0x1D54A, + 0x1D551, + 0x1D552, + 0x1D6A6, + 0x1D6A8, + 0x1D7CC, + 0x1D7CE, + 0x1D800, + 0x1EE00, + 0x1EE04, + 0x1EE05, + 0x1EE20, + 0x1EE21, + 0x1EE23, + 0x1EE24, + 0x1EE25, + 0x1EE27, + 0x1EE28, + 0x1EE29, + 0x1EE33, + 0x1EE34, + 0x1EE38, + 0x1EE39, + 0x1EE3A, + 0x1EE3B, + 0x1EE3C, + 0x1EE42, + 0x1EE43, + 0x1EE47, + 0x1EE48, + 0x1EE49, + 0x1EE4A, + 0x1EE4B, + 0x1EE4C, + 0x1EE4D, + 0x1EE50, + 0x1EE51, + 0x1EE53, + 0x1EE54, + 0x1EE55, + 0x1EE57, + 0x1EE58, + 0x1EE59, + 0x1EE5A, + 0x1EE5B, + 0x1EE5C, + 0x1EE5D, + 0x1EE5E, + 0x1EE5F, + 0x1EE60, + 0x1EE61, + 0x1EE63, + 0x1EE64, + 0x1EE65, + 0x1EE67, + 0x1EE6B, + 0x1EE6C, + 0x1EE73, + 0x1EE74, + 0x1EE78, + 0x1EE79, + 0x1EE7D, + 0x1EE7E, + 0x1EE7F, + 0x1EE80, + 0x1EE8A, + 0x1EE8B, + 0x1EE9C, + 0x1EEA1, + 0x1EEA4, + 0x1EEA5, + 0x1EEAA, + 0x1EEAB, + 0x1EEBC, + 0x1F100, + 0x1F10B, + 0x1F110, + 0x1F12F, + 0x1F130, + 0x1F150, + 0x1F16A, + 0x1F16D, + 0x1F190, + 0x1F191, + 0x1F200, + 0x1F203, + 0x1F210, + 0x1F23C, + 0x1F240, + 0x1F249, + 0x1F250, + 0x1F252, + 0x1FBF0, + 0x1FBFA, + 0x2F800, + 0x2FA1E +}; + +# endif /* EBCDIC 037 */ + +# if 'A' == 65 /* ASCII/Latin1 */ + +static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for ASCII/Latin1 */ + 691, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x9, + 0xE, + 0x20, + 0x27, + 0x28, + 0x2D, + 0x2F, + 0x30, + 0x3B, + 0x41, + 0x5B, + 0x5F, + 0x60, + 0x61, + 0x7B, + 0x7F, + 0x85, + 0x86, + 0xA1, + 0xA8, + 0xA9, + 0xAA, + 0xAB, + 0xAD, + 0xAE, + 0xAF, + 0xB0, + 0xB2, + 0xB6, + 0xB7, + 0xBB, + 0xBC, + 0xBF, + 0xC0, + 0xD7, + 0xD8, + 0xF7, + 0xF8, + 0x2C2, + 0x2C6, + 0x2D2, + 0x2D8, + 0x2DE, + 0x2E0, + 0x2E5, + 0x2EC, + 0x2ED, + 0x2EE, + 0x2EF, + 0x300, + 0x3F6, + 0x3F7, + 0x482, + 0x483, + 0x488, + 0x48A, + 0x55A, + 0x560, + 0x589, + 0x58A, + 0x58D, + 0x590, + 0x5BE, + 0x5BF, + 0x5C0, + 0x5C1, + 0x5C3, + 0x5C4, + 0x5C6, + 0x5C7, + 0x600, + 0x610, + 0x61B, + 0x61C, + 0x61E, + 0x620, + 0x66A, + 0x66E, + 0x6D4, + 0x6D5, + 0x6DD, + 0x6DF, + 0x6E9, + 0x6EA, + 0x700, + 0x70E, + 0x70F, + 0x710, + 0x7F6, + 0x7FA, + 0x7FE, + 0x800, + 0x830, + 0x83F, + 0x85E, + 0x85F, + 0x8E2, + 0x8E3, + 0x964, + 0x966, + 0x970, + 0x971, + 0x9F2, + 0x9FC, + 0x9FD, + 0x9FE, + 0xA76, + 0xA77, + 0xAF0, + 0xAF2, + 0xB70, + 0xB71, + 0xB72, + 0xB78, + 0xBF0, + 0xBFB, + 0xC77, + 0xC80, + 0xC84, + 0xC85, + 0xD4F, + 0xD50, + 0xD58, + 0xD5F, + 0xD70, + 0xD7A, + 0xDF4, + 0xDF5, + 0xE3F, + 0xE40, + 0xE4F, + 0xE50, + 0xE5A, + 0xE5C, + 0xF01, + 0xF0B, + 0xF0D, + 0xF18, + 0xF1A, + 0xF20, + 0xF2A, + 0xF35, + 0xF36, + 0xF37, + 0xF38, + 0xF39, + 0xF3A, + 0xF3E, + 0xF85, + 0xF86, + 0xFBE, + 0xFC6, + 0xFC7, + 0xFCD, + 0xFCE, + 0xFDB, + 0x104A, + 0x1050, + 0x109E, + 0x10A0, + 0x10FB, + 0x10FC, + 0x1360, + 0x1369, + 0x1372, + 0x137D, + 0x1390, + 0x139A, + 0x1400, + 0x1401, + 0x166D, + 0x166F, + 0x1680, + 0x1681, + 0x169B, + 0x169D, + 0x16EB, + 0x16EE, + 0x1735, + 0x1737, + 0x17D4, + 0x17D7, + 0x17D8, + 0x17DC, + 0x17F0, + 0x17FA, + 0x1800, + 0x180B, + 0x1940, + 0x1941, + 0x1944, + 0x1946, + 0x19DE, + 0x1A00, + 0x1A1E, + 0x1A20, + 0x1AA0, + 0x1AA7, + 0x1AA8, + 0x1AAE, + 0x1ABE, + 0x1ABF, + 0x1B5A, + 0x1B6B, + 0x1B74, + 0x1B7D, + 0x1BFC, + 0x1C00, + 0x1C3B, + 0x1C40, + 0x1C7E, + 0x1C80, + 0x1CC0, + 0x1CC8, + 0x1CD3, + 0x1CD4, + 0x2012, + 0x2017, + 0x2018, + 0x2019, + 0x201A, + 0x2024, + 0x2028, + 0x202A, + 0x2030, + 0x2033, + 0x2035, + 0x2036, + 0x2038, + 0x203C, + 0x203D, + 0x203E, + 0x2041, + 0x2047, + 0x204A, + 0x2054, + 0x2055, + 0x2057, + 0x2058, + 0x205F, + 0x20A0, + 0x20A8, + 0x20A9, + 0x20C0, + 0x20DD, + 0x20E1, + 0x20E2, + 0x20E5, + 0x2104, + 0x2105, + 0x2108, + 0x2109, + 0x2114, + 0x2115, + 0x2117, + 0x2118, + 0x211E, + 0x2120, + 0x2123, + 0x2124, + 0x2125, + 0x2126, + 0x2127, + 0x2128, + 0x2129, + 0x212A, + 0x213A, + 0x213B, + 0x2141, + 0x2145, + 0x214A, + 0x214E, + 0x214F, + 0x2150, + 0x218A, + 0x218C, + 0x2190, + 0x222C, + 0x222E, + 0x222F, + 0x2231, + 0x2329, + 0x232B, + 0x2427, + 0x2440, + 0x244B, + 0x24EB, + 0x2A0C, + 0x2A0D, + 0x2A74, + 0x2A77, + 0x2ADC, + 0x2ADD, + 0x2B74, + 0x2B76, + 0x2B96, + 0x2B97, + 0x2C00, + 0x2CE5, + 0x2CEB, + 0x2CF9, + 0x2D00, + 0x2D70, + 0x2D71, + 0x2E00, + 0x2E53, + 0x2E80, + 0x2E9A, + 0x2E9B, + 0x2E9F, + 0x2EA0, + 0x2EF3, + 0x2FF0, + 0x2FFC, + 0x3001, + 0x3005, + 0x3008, + 0x3021, + 0x3030, + 0x3031, + 0x3037, + 0x3038, + 0x303D, + 0x3040, + 0x3190, + 0x3192, + 0x31C0, + 0x31E4, + 0x3248, + 0x3250, + 0x327F, + 0x3280, + 0x4DC0, + 0x4E00, + 0xA490, + 0xA4C7, + 0xA4FE, + 0xA500, + 0xA60D, + 0xA610, + 0xA670, + 0xA674, + 0xA67E, + 0xA67F, + 0xA6F2, + 0xA6F8, + 0xA700, + 0xA717, + 0xA720, + 0xA722, + 0xA789, + 0xA78B, + 0xA828, + 0xA82C, + 0xA830, + 0xA83A, + 0xA874, + 0xA878, + 0xA8CE, + 0xA8D0, + 0xA8F8, + 0xA8FB, + 0xA8FC, + 0xA8FD, + 0xA92E, + 0xA930, + 0xA95F, + 0xA960, + 0xA9C1, + 0xA9CE, + 0xA9DE, + 0xA9E0, + 0xAA5C, + 0xAA60, + 0xAA77, + 0xAA7A, + 0xAADE, + 0xAAE0, + 0xAAF0, + 0xAAF2, + 0xAB5B, + 0xAB5C, + 0xAB6A, + 0xAB6C, + 0xABEB, + 0xABEC, + 0xFBB2, + 0xFBC2, + 0xFD3E, + 0xFD40, + 0xFDFD, + 0xFDFE, + 0xFE45, + 0xFE47, + 0xFFF9, + 0xFFFE, + 0x10100, + 0x10103, + 0x10107, + 0x10134, + 0x10137, + 0x10140, + 0x10175, + 0x1018F, + 0x10190, + 0x1019D, + 0x101A0, + 0x101A1, + 0x101D0, + 0x101FD, + 0x102E1, + 0x102FC, + 0x10320, + 0x10324, + 0x1039F, + 0x103A0, + 0x103D0, + 0x103D1, + 0x1056F, + 0x10570, + 0x10857, + 0x10860, + 0x10877, + 0x10880, + 0x108A7, + 0x108B0, + 0x108FB, + 0x10900, + 0x10916, + 0x1091C, + 0x1091F, + 0x10920, + 0x1093F, + 0x10940, + 0x109BC, + 0x109BE, + 0x109C0, + 0x109D0, + 0x109D2, + 0x10A00, + 0x10A40, + 0x10A49, + 0x10A50, + 0x10A59, + 0x10A7D, + 0x10A80, + 0x10A9D, + 0x10AA0, + 0x10AC8, + 0x10AC9, + 0x10AEB, + 0x10AF7, + 0x10B39, + 0x10B40, + 0x10B58, + 0x10B60, + 0x10B78, + 0x10B80, + 0x10B99, + 0x10B9D, + 0x10BA9, + 0x10BB0, + 0x10CFA, + 0x10D00, + 0x10E60, + 0x10E7F, + 0x10EAD, + 0x10EAE, + 0x10F1D, + 0x10F27, + 0x10F51, + 0x10F5A, + 0x10FC5, + 0x10FCC, + 0x11047, + 0x1104E, + 0x11052, + 0x11066, + 0x110BB, + 0x110C2, + 0x110CD, + 0x110CE, + 0x11140, + 0x11144, + 0x11174, + 0x11176, + 0x111C5, + 0x111C9, + 0x111CD, + 0x111CE, + 0x111DB, + 0x111DC, + 0x111DD, + 0x111E0, + 0x111E1, + 0x111F5, + 0x11238, + 0x1123E, + 0x112A9, + 0x112AA, + 0x1144B, + 0x11450, + 0x1145A, + 0x1145C, + 0x1145D, + 0x1145E, + 0x114C6, + 0x114C7, + 0x115C1, + 0x115D8, + 0x11641, + 0x11644, + 0x11660, + 0x1166D, + 0x1173A, + 0x11740, + 0x1183B, + 0x1183C, + 0x118EA, + 0x118F3, + 0x11944, + 0x11947, + 0x119E2, + 0x119E3, + 0x11A3F, + 0x11A47, + 0x11A9A, + 0x11A9D, + 0x11A9E, + 0x11AA3, + 0x11C41, + 0x11C46, + 0x11C5A, + 0x11C6D, + 0x11C70, + 0x11C72, + 0x11EF7, + 0x11EF9, + 0x11FC0, + 0x11FF2, + 0x11FFF, + 0x12000, + 0x12470, + 0x12475, + 0x13430, + 0x13439, + 0x16A6E, + 0x16A70, + 0x16AF5, + 0x16AF6, + 0x16B37, + 0x16B40, + 0x16B44, + 0x16B46, + 0x16B5B, + 0x16B62, + 0x16E80, + 0x16E9B, + 0x16FE2, + 0x16FE3, + 0x1BC9C, + 0x1BC9D, + 0x1BC9F, + 0x1BCA0, + 0x1D000, + 0x1D0F6, + 0x1D100, + 0x1D127, + 0x1D129, + 0x1D15E, + 0x1D16A, + 0x1D16D, + 0x1D183, + 0x1D185, + 0x1D18C, + 0x1D1AA, + 0x1D1AE, + 0x1D1BB, + 0x1D1C1, + 0x1D1E9, + 0x1D200, + 0x1D242, + 0x1D245, + 0x1D246, + 0x1D2E0, + 0x1D2F4, + 0x1D300, + 0x1D357, + 0x1D360, + 0x1D379, + 0x1D800, + 0x1DA00, + 0x1DA37, + 0x1DA3B, + 0x1DA6D, + 0x1DA75, + 0x1DA76, + 0x1DA84, + 0x1DA85, + 0x1DA8C, + 0x1E14F, + 0x1E150, + 0x1E2FF, + 0x1E300, + 0x1E8C7, + 0x1E8D0, + 0x1E95E, + 0x1E960, + 0x1EC71, + 0x1ECB5, + 0x1ED01, + 0x1ED3E, + 0x1EEF0, + 0x1EEF2, + 0x1F000, + 0x1F02C, + 0x1F030, + 0x1F094, + 0x1F0A0, + 0x1F0AF, + 0x1F0B1, + 0x1F0C0, + 0x1F0C1, + 0x1F0D0, + 0x1F0D1, + 0x1F0F6, + 0x1F10B, + 0x1F110, + 0x1F12F, + 0x1F130, + 0x1F150, + 0x1F16A, + 0x1F16D, + 0x1F190, + 0x1F191, + 0x1F1AE, + 0x1F1E6, + 0x1F200, + 0x1F260, + 0x1F266, + 0x1F300, + 0x1F6D8, + 0x1F6E0, + 0x1F6ED, + 0x1F6F0, + 0x1F6FD, + 0x1F700, + 0x1F774, + 0x1F780, + 0x1F7D9, + 0x1F7E0, + 0x1F7EC, + 0x1F800, + 0x1F80C, + 0x1F810, + 0x1F848, + 0x1F850, + 0x1F85A, + 0x1F860, + 0x1F888, + 0x1F890, + 0x1F8AE, + 0x1F8B0, + 0x1F8B2, + 0x1F900, + 0x1F979, + 0x1F97A, + 0x1F9CC, + 0x1F9CD, + 0x1FA54, + 0x1FA60, + 0x1FA6E, + 0x1FA70, + 0x1FA75, + 0x1FA78, + 0x1FA7B, + 0x1FA80, + 0x1FA87, + 0x1FA90, + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB +}; + +# endif /* ASCII/Latin1 */ + +# if 'A' == 193 /* EBCDIC 1047 */ \ + && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \ + && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \ + && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 + +static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for EBCDIC 1047 */ + 705, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x5, + 0x6, + 0xB, + 0xE, + 0x15, + 0x16, + 0x25, + 0x26, + 0x40, + 0x41, + 0x4A, + 0x4B, + 0x4C, + 0x51, + 0x5A, + 0x60, + 0x61, + 0x62, + 0x6A, + 0x6D, + 0x6E, + 0x70, + 0x79, + 0x7A, + 0x7B, + 0x7D, + 0x7E, + 0x80, + 0x8A, + 0x8C, + 0x8F, + 0x91, + 0x9F, + 0xA0, + 0xA1, + 0xA2, + 0xAA, + 0xAC, + 0xAD, + 0xAE, + 0xAF, + 0xB3, + 0xB4, + 0xB7, + 0xBD, + 0xBE, + 0xBF, + 0xC1, + 0xD0, + 0xD1, + 0xE0, + 0xE2, + 0x2C2, + 0x2C6, + 0x2D2, + 0x2D8, + 0x2DE, + 0x2E0, + 0x2E5, + 0x2EC, + 0x2ED, + 0x2EE, + 0x2EF, + 0x300, + 0x3F6, + 0x3F7, + 0x482, + 0x483, + 0x488, + 0x48A, + 0x55A, + 0x560, + 0x589, + 0x58A, + 0x58D, + 0x590, + 0x5BE, + 0x5BF, + 0x5C0, + 0x5C1, + 0x5C3, + 0x5C4, + 0x5C6, + 0x5C7, + 0x600, + 0x610, + 0x61B, + 0x61C, + 0x61E, + 0x620, + 0x66A, + 0x66E, + 0x6D4, + 0x6D5, + 0x6DD, + 0x6DF, + 0x6E9, + 0x6EA, + 0x700, + 0x70E, + 0x70F, + 0x710, + 0x7F6, + 0x7FA, + 0x7FE, + 0x800, + 0x830, + 0x83F, + 0x85E, + 0x85F, + 0x8E2, + 0x8E3, + 0x964, + 0x966, + 0x970, + 0x971, + 0x9F2, + 0x9FC, + 0x9FD, + 0x9FE, + 0xA76, + 0xA77, + 0xAF0, + 0xAF2, + 0xB70, + 0xB71, + 0xB72, + 0xB78, + 0xBF0, + 0xBFB, + 0xC77, + 0xC80, + 0xC84, + 0xC85, + 0xD4F, + 0xD50, + 0xD58, + 0xD5F, + 0xD70, + 0xD7A, + 0xDF4, + 0xDF5, + 0xE3F, + 0xE40, + 0xE4F, + 0xE50, + 0xE5A, + 0xE5C, + 0xF01, + 0xF0B, + 0xF0D, + 0xF18, + 0xF1A, + 0xF20, + 0xF2A, + 0xF35, + 0xF36, + 0xF37, + 0xF38, + 0xF39, + 0xF3A, + 0xF3E, + 0xF85, + 0xF86, + 0xFBE, + 0xFC6, + 0xFC7, + 0xFCD, + 0xFCE, + 0xFDB, + 0x104A, + 0x1050, + 0x109E, + 0x10A0, + 0x10FB, + 0x10FC, + 0x1360, + 0x1369, + 0x1372, + 0x137D, + 0x1390, + 0x139A, + 0x1400, + 0x1401, + 0x166D, + 0x166F, + 0x1680, + 0x1681, + 0x169B, + 0x169D, + 0x16EB, + 0x16EE, + 0x1735, + 0x1737, + 0x17D4, + 0x17D7, + 0x17D8, + 0x17DC, + 0x17F0, + 0x17FA, + 0x1800, + 0x180B, + 0x1940, + 0x1941, + 0x1944, + 0x1946, + 0x19DE, + 0x1A00, + 0x1A1E, + 0x1A20, + 0x1AA0, + 0x1AA7, + 0x1AA8, + 0x1AAE, + 0x1ABE, + 0x1ABF, + 0x1B5A, + 0x1B6B, + 0x1B74, + 0x1B7D, + 0x1BFC, + 0x1C00, + 0x1C3B, + 0x1C40, + 0x1C7E, + 0x1C80, + 0x1CC0, + 0x1CC8, + 0x1CD3, + 0x1CD4, + 0x2012, + 0x2017, + 0x2018, + 0x2019, + 0x201A, + 0x2024, + 0x2028, + 0x202A, + 0x2030, + 0x2033, + 0x2035, + 0x2036, + 0x2038, + 0x203C, + 0x203D, + 0x203E, + 0x2041, + 0x2047, + 0x204A, + 0x2054, + 0x2055, + 0x2057, + 0x2058, + 0x205F, + 0x20A0, + 0x20A8, + 0x20A9, + 0x20C0, + 0x20DD, + 0x20E1, + 0x20E2, + 0x20E5, + 0x2104, + 0x2105, + 0x2108, + 0x2109, + 0x2114, + 0x2115, + 0x2117, + 0x2118, + 0x211E, + 0x2120, + 0x2123, + 0x2124, + 0x2125, + 0x2126, + 0x2127, + 0x2128, + 0x2129, + 0x212A, + 0x213A, + 0x213B, + 0x2141, + 0x2145, + 0x214A, + 0x214E, + 0x214F, + 0x2150, + 0x218A, + 0x218C, + 0x2190, + 0x222C, + 0x222E, + 0x222F, + 0x2231, + 0x2329, + 0x232B, + 0x2427, + 0x2440, + 0x244B, + 0x24EB, + 0x2A0C, + 0x2A0D, + 0x2A74, + 0x2A77, + 0x2ADC, + 0x2ADD, + 0x2B74, + 0x2B76, + 0x2B96, + 0x2B97, + 0x2C00, + 0x2CE5, + 0x2CEB, + 0x2CF9, + 0x2D00, + 0x2D70, + 0x2D71, + 0x2E00, + 0x2E53, + 0x2E80, + 0x2E9A, + 0x2E9B, + 0x2E9F, + 0x2EA0, + 0x2EF3, + 0x2FF0, + 0x2FFC, + 0x3001, + 0x3005, + 0x3008, + 0x3021, + 0x3030, + 0x3031, + 0x3037, + 0x3038, + 0x303D, + 0x3040, + 0x3190, + 0x3192, + 0x31C0, + 0x31E4, + 0x3248, + 0x3250, + 0x327F, + 0x3280, + 0x4DC0, + 0x4E00, + 0xA490, + 0xA4C7, + 0xA4FE, + 0xA500, + 0xA60D, + 0xA610, + 0xA670, + 0xA674, + 0xA67E, + 0xA67F, + 0xA6F2, + 0xA6F8, + 0xA700, + 0xA717, + 0xA720, + 0xA722, + 0xA789, + 0xA78B, + 0xA828, + 0xA82C, + 0xA830, + 0xA83A, + 0xA874, + 0xA878, + 0xA8CE, + 0xA8D0, + 0xA8F8, + 0xA8FB, + 0xA8FC, + 0xA8FD, + 0xA92E, + 0xA930, + 0xA95F, + 0xA960, + 0xA9C1, + 0xA9CE, + 0xA9DE, + 0xA9E0, + 0xAA5C, + 0xAA60, + 0xAA77, + 0xAA7A, + 0xAADE, + 0xAAE0, + 0xAAF0, + 0xAAF2, + 0xAB5B, + 0xAB5C, + 0xAB6A, + 0xAB6C, + 0xABEB, + 0xABEC, + 0xFBB2, + 0xFBC2, + 0xFD3E, + 0xFD40, + 0xFDFD, + 0xFDFE, + 0xFE45, + 0xFE47, + 0xFFF9, + 0xFFFE, + 0x10100, + 0x10103, + 0x10107, + 0x10134, + 0x10137, + 0x10140, + 0x10175, + 0x1018F, + 0x10190, + 0x1019D, + 0x101A0, + 0x101A1, + 0x101D0, + 0x101FD, + 0x102E1, + 0x102FC, + 0x10320, + 0x10324, + 0x1039F, + 0x103A0, + 0x103D0, + 0x103D1, + 0x1056F, + 0x10570, + 0x10857, + 0x10860, + 0x10877, + 0x10880, + 0x108A7, + 0x108B0, + 0x108FB, + 0x10900, + 0x10916, + 0x1091C, + 0x1091F, + 0x10920, + 0x1093F, + 0x10940, + 0x109BC, + 0x109BE, + 0x109C0, + 0x109D0, + 0x109D2, + 0x10A00, + 0x10A40, + 0x10A49, + 0x10A50, + 0x10A59, + 0x10A7D, + 0x10A80, + 0x10A9D, + 0x10AA0, + 0x10AC8, + 0x10AC9, + 0x10AEB, + 0x10AF7, + 0x10B39, + 0x10B40, + 0x10B58, + 0x10B60, + 0x10B78, + 0x10B80, + 0x10B99, + 0x10B9D, + 0x10BA9, + 0x10BB0, + 0x10CFA, + 0x10D00, + 0x10E60, + 0x10E7F, + 0x10EAD, + 0x10EAE, + 0x10F1D, + 0x10F27, + 0x10F51, + 0x10F5A, + 0x10FC5, + 0x10FCC, + 0x11047, + 0x1104E, + 0x11052, + 0x11066, + 0x110BB, + 0x110C2, + 0x110CD, + 0x110CE, + 0x11140, + 0x11144, + 0x11174, + 0x11176, + 0x111C5, + 0x111C9, + 0x111CD, + 0x111CE, + 0x111DB, + 0x111DC, + 0x111DD, + 0x111E0, + 0x111E1, + 0x111F5, + 0x11238, + 0x1123E, + 0x112A9, + 0x112AA, + 0x1144B, + 0x11450, + 0x1145A, + 0x1145C, + 0x1145D, + 0x1145E, + 0x114C6, + 0x114C7, + 0x115C1, + 0x115D8, + 0x11641, + 0x11644, + 0x11660, + 0x1166D, + 0x1173A, + 0x11740, + 0x1183B, + 0x1183C, + 0x118EA, + 0x118F3, + 0x11944, + 0x11947, + 0x119E2, + 0x119E3, + 0x11A3F, + 0x11A47, + 0x11A9A, + 0x11A9D, + 0x11A9E, + 0x11AA3, + 0x11C41, + 0x11C46, + 0x11C5A, + 0x11C6D, + 0x11C70, + 0x11C72, + 0x11EF7, + 0x11EF9, + 0x11FC0, + 0x11FF2, + 0x11FFF, + 0x12000, + 0x12470, + 0x12475, + 0x13430, + 0x13439, + 0x16A6E, + 0x16A70, + 0x16AF5, + 0x16AF6, + 0x16B37, + 0x16B40, + 0x16B44, + 0x16B46, + 0x16B5B, + 0x16B62, + 0x16E80, + 0x16E9B, + 0x16FE2, + 0x16FE3, + 0x1BC9C, + 0x1BC9D, + 0x1BC9F, + 0x1BCA0, + 0x1D000, + 0x1D0F6, + 0x1D100, + 0x1D127, + 0x1D129, + 0x1D15E, + 0x1D16A, + 0x1D16D, + 0x1D183, + 0x1D185, + 0x1D18C, + 0x1D1AA, + 0x1D1AE, + 0x1D1BB, + 0x1D1C1, + 0x1D1E9, + 0x1D200, + 0x1D242, + 0x1D245, + 0x1D246, + 0x1D2E0, + 0x1D2F4, + 0x1D300, + 0x1D357, + 0x1D360, + 0x1D379, + 0x1D800, + 0x1DA00, + 0x1DA37, + 0x1DA3B, + 0x1DA6D, + 0x1DA75, + 0x1DA76, + 0x1DA84, + 0x1DA85, + 0x1DA8C, + 0x1E14F, + 0x1E150, + 0x1E2FF, + 0x1E300, + 0x1E8C7, + 0x1E8D0, + 0x1E95E, + 0x1E960, + 0x1EC71, + 0x1ECB5, + 0x1ED01, + 0x1ED3E, + 0x1EEF0, + 0x1EEF2, + 0x1F000, + 0x1F02C, + 0x1F030, + 0x1F094, + 0x1F0A0, + 0x1F0AF, + 0x1F0B1, + 0x1F0C0, + 0x1F0C1, + 0x1F0D0, + 0x1F0D1, + 0x1F0F6, + 0x1F10B, + 0x1F110, + 0x1F12F, + 0x1F130, + 0x1F150, + 0x1F16A, + 0x1F16D, + 0x1F190, + 0x1F191, + 0x1F1AE, + 0x1F1E6, + 0x1F200, + 0x1F260, + 0x1F266, + 0x1F300, + 0x1F6D8, + 0x1F6E0, + 0x1F6ED, + 0x1F6F0, + 0x1F6FD, + 0x1F700, + 0x1F774, + 0x1F780, + 0x1F7D9, + 0x1F7E0, + 0x1F7EC, + 0x1F800, + 0x1F80C, + 0x1F810, + 0x1F848, + 0x1F850, + 0x1F85A, + 0x1F860, + 0x1F888, + 0x1F890, + 0x1F8AE, + 0x1F8B0, + 0x1F8B2, + 0x1F900, + 0x1F979, + 0x1F97A, + 0x1F9CC, + 0x1F9CD, + 0x1FA54, + 0x1FA60, + 0x1FA6E, + 0x1FA70, + 0x1FA75, + 0x1FA78, + 0x1FA7B, + 0x1FA80, + 0x1FA87, + 0x1FA90, + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB +}; + +# endif /* EBCDIC 1047 */ + +# if 'A' == 193 /* EBCDIC 037 */ \ + && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \ + && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \ + && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 + +static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for EBCDIC 037 */ + 703, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x5, + 0x6, + 0xB, + 0xE, + 0x15, + 0x16, + 0x25, + 0x26, + 0x40, + 0x41, + 0x4A, + 0x4B, + 0x4C, + 0x51, + 0x5A, + 0x60, + 0x61, + 0x62, + 0x6A, + 0x6D, + 0x6E, + 0x70, + 0x79, + 0x7A, + 0x7B, + 0x7D, + 0x7E, + 0x80, + 0x8A, + 0x8C, + 0x8F, + 0x91, + 0x9F, + 0xA0, + 0xA1, + 0xA2, + 0xAA, + 0xAC, + 0xAF, + 0xB3, + 0xB4, + 0xB7, + 0xBA, + 0xBC, + 0xBF, + 0xC1, + 0xD0, + 0xD1, + 0xE0, + 0xE2, + 0x2C2, + 0x2C6, + 0x2D2, + 0x2D8, + 0x2DE, + 0x2E0, + 0x2E5, + 0x2EC, + 0x2ED, + 0x2EE, + 0x2EF, + 0x300, + 0x3F6, + 0x3F7, + 0x482, + 0x483, + 0x488, + 0x48A, + 0x55A, + 0x560, + 0x589, + 0x58A, + 0x58D, + 0x590, + 0x5BE, + 0x5BF, + 0x5C0, + 0x5C1, + 0x5C3, + 0x5C4, + 0x5C6, + 0x5C7, + 0x600, + 0x610, + 0x61B, + 0x61C, + 0x61E, + 0x620, + 0x66A, + 0x66E, + 0x6D4, + 0x6D5, + 0x6DD, + 0x6DF, + 0x6E9, + 0x6EA, + 0x700, + 0x70E, + 0x70F, + 0x710, + 0x7F6, + 0x7FA, + 0x7FE, + 0x800, + 0x830, + 0x83F, + 0x85E, + 0x85F, + 0x8E2, + 0x8E3, + 0x964, + 0x966, + 0x970, + 0x971, + 0x9F2, + 0x9FC, + 0x9FD, + 0x9FE, + 0xA76, + 0xA77, + 0xAF0, + 0xAF2, + 0xB70, + 0xB71, + 0xB72, + 0xB78, + 0xBF0, + 0xBFB, + 0xC77, + 0xC80, + 0xC84, + 0xC85, + 0xD4F, + 0xD50, + 0xD58, + 0xD5F, + 0xD70, + 0xD7A, + 0xDF4, + 0xDF5, + 0xE3F, + 0xE40, + 0xE4F, + 0xE50, + 0xE5A, + 0xE5C, + 0xF01, + 0xF0B, + 0xF0D, + 0xF18, + 0xF1A, + 0xF20, + 0xF2A, + 0xF35, + 0xF36, + 0xF37, + 0xF38, + 0xF39, + 0xF3A, + 0xF3E, + 0xF85, + 0xF86, + 0xFBE, + 0xFC6, + 0xFC7, + 0xFCD, + 0xFCE, + 0xFDB, + 0x104A, + 0x1050, + 0x109E, + 0x10A0, + 0x10FB, + 0x10FC, + 0x1360, + 0x1369, + 0x1372, + 0x137D, + 0x1390, + 0x139A, + 0x1400, + 0x1401, + 0x166D, + 0x166F, + 0x1680, + 0x1681, + 0x169B, + 0x169D, + 0x16EB, + 0x16EE, + 0x1735, + 0x1737, + 0x17D4, + 0x17D7, + 0x17D8, + 0x17DC, + 0x17F0, + 0x17FA, + 0x1800, + 0x180B, + 0x1940, + 0x1941, + 0x1944, + 0x1946, + 0x19DE, + 0x1A00, + 0x1A1E, + 0x1A20, + 0x1AA0, + 0x1AA7, + 0x1AA8, + 0x1AAE, + 0x1ABE, + 0x1ABF, + 0x1B5A, + 0x1B6B, + 0x1B74, + 0x1B7D, + 0x1BFC, + 0x1C00, + 0x1C3B, + 0x1C40, + 0x1C7E, + 0x1C80, + 0x1CC0, + 0x1CC8, + 0x1CD3, + 0x1CD4, + 0x2012, + 0x2017, + 0x2018, + 0x2019, + 0x201A, + 0x2024, + 0x2028, + 0x202A, + 0x2030, + 0x2033, + 0x2035, + 0x2036, + 0x2038, + 0x203C, + 0x203D, + 0x203E, + 0x2041, + 0x2047, + 0x204A, + 0x2054, + 0x2055, + 0x2057, + 0x2058, + 0x205F, + 0x20A0, + 0x20A8, + 0x20A9, + 0x20C0, + 0x20DD, + 0x20E1, + 0x20E2, + 0x20E5, + 0x2104, + 0x2105, + 0x2108, + 0x2109, + 0x2114, + 0x2115, + 0x2117, + 0x2118, + 0x211E, + 0x2120, + 0x2123, + 0x2124, + 0x2125, + 0x2126, + 0x2127, + 0x2128, + 0x2129, + 0x212A, + 0x213A, + 0x213B, + 0x2141, + 0x2145, + 0x214A, + 0x214E, + 0x214F, + 0x2150, + 0x218A, + 0x218C, + 0x2190, + 0x222C, + 0x222E, + 0x222F, + 0x2231, + 0x2329, + 0x232B, + 0x2427, + 0x2440, + 0x244B, + 0x24EB, + 0x2A0C, + 0x2A0D, + 0x2A74, + 0x2A77, + 0x2ADC, + 0x2ADD, + 0x2B74, + 0x2B76, + 0x2B96, + 0x2B97, + 0x2C00, + 0x2CE5, + 0x2CEB, + 0x2CF9, + 0x2D00, + 0x2D70, + 0x2D71, + 0x2E00, + 0x2E53, + 0x2E80, + 0x2E9A, + 0x2E9B, + 0x2E9F, + 0x2EA0, + 0x2EF3, + 0x2FF0, + 0x2FFC, + 0x3001, + 0x3005, + 0x3008, + 0x3021, + 0x3030, + 0x3031, + 0x3037, + 0x3038, + 0x303D, + 0x3040, + 0x3190, + 0x3192, + 0x31C0, + 0x31E4, + 0x3248, + 0x3250, + 0x327F, + 0x3280, + 0x4DC0, + 0x4E00, + 0xA490, + 0xA4C7, + 0xA4FE, + 0xA500, + 0xA60D, + 0xA610, + 0xA670, + 0xA674, + 0xA67E, + 0xA67F, + 0xA6F2, + 0xA6F8, + 0xA700, + 0xA717, + 0xA720, + 0xA722, + 0xA789, + 0xA78B, + 0xA828, + 0xA82C, + 0xA830, + 0xA83A, + 0xA874, + 0xA878, + 0xA8CE, + 0xA8D0, + 0xA8F8, + 0xA8FB, + 0xA8FC, + 0xA8FD, + 0xA92E, + 0xA930, + 0xA95F, + 0xA960, + 0xA9C1, + 0xA9CE, + 0xA9DE, + 0xA9E0, + 0xAA5C, + 0xAA60, + 0xAA77, + 0xAA7A, + 0xAADE, + 0xAAE0, + 0xAAF0, + 0xAAF2, + 0xAB5B, + 0xAB5C, + 0xAB6A, + 0xAB6C, + 0xABEB, + 0xABEC, + 0xFBB2, + 0xFBC2, + 0xFD3E, + 0xFD40, + 0xFDFD, + 0xFDFE, + 0xFE45, + 0xFE47, + 0xFFF9, + 0xFFFE, + 0x10100, + 0x10103, + 0x10107, + 0x10134, + 0x10137, + 0x10140, + 0x10175, + 0x1018F, + 0x10190, + 0x1019D, + 0x101A0, + 0x101A1, + 0x101D0, + 0x101FD, + 0x102E1, + 0x102FC, + 0x10320, + 0x10324, + 0x1039F, + 0x103A0, + 0x103D0, + 0x103D1, + 0x1056F, + 0x10570, + 0x10857, + 0x10860, + 0x10877, + 0x10880, + 0x108A7, + 0x108B0, + 0x108FB, + 0x10900, + 0x10916, + 0x1091C, + 0x1091F, + 0x10920, + 0x1093F, + 0x10940, + 0x109BC, + 0x109BE, + 0x109C0, + 0x109D0, + 0x109D2, + 0x10A00, + 0x10A40, + 0x10A49, + 0x10A50, + 0x10A59, + 0x10A7D, + 0x10A80, + 0x10A9D, + 0x10AA0, + 0x10AC8, + 0x10AC9, + 0x10AEB, + 0x10AF7, + 0x10B39, + 0x10B40, + 0x10B58, + 0x10B60, + 0x10B78, + 0x10B80, + 0x10B99, + 0x10B9D, + 0x10BA9, + 0x10BB0, + 0x10CFA, + 0x10D00, + 0x10E60, + 0x10E7F, + 0x10EAD, + 0x10EAE, + 0x10F1D, + 0x10F27, + 0x10F51, + 0x10F5A, + 0x10FC5, + 0x10FCC, + 0x11047, + 0x1104E, + 0x11052, + 0x11066, + 0x110BB, + 0x110C2, + 0x110CD, + 0x110CE, + 0x11140, + 0x11144, + 0x11174, + 0x11176, + 0x111C5, + 0x111C9, + 0x111CD, + 0x111CE, + 0x111DB, + 0x111DC, + 0x111DD, + 0x111E0, + 0x111E1, + 0x111F5, + 0x11238, + 0x1123E, + 0x112A9, + 0x112AA, + 0x1144B, + 0x11450, + 0x1145A, + 0x1145C, + 0x1145D, + 0x1145E, + 0x114C6, + 0x114C7, + 0x115C1, + 0x115D8, + 0x11641, + 0x11644, + 0x11660, + 0x1166D, + 0x1173A, + 0x11740, + 0x1183B, + 0x1183C, + 0x118EA, + 0x118F3, + 0x11944, + 0x11947, + 0x119E2, + 0x119E3, + 0x11A3F, + 0x11A47, + 0x11A9A, + 0x11A9D, + 0x11A9E, + 0x11AA3, + 0x11C41, + 0x11C46, + 0x11C5A, + 0x11C6D, + 0x11C70, + 0x11C72, + 0x11EF7, + 0x11EF9, + 0x11FC0, + 0x11FF2, + 0x11FFF, + 0x12000, + 0x12470, + 0x12475, + 0x13430, + 0x13439, + 0x16A6E, + 0x16A70, + 0x16AF5, + 0x16AF6, + 0x16B37, + 0x16B40, + 0x16B44, + 0x16B46, + 0x16B5B, + 0x16B62, + 0x16E80, + 0x16E9B, + 0x16FE2, + 0x16FE3, + 0x1BC9C, + 0x1BC9D, + 0x1BC9F, + 0x1BCA0, + 0x1D000, + 0x1D0F6, + 0x1D100, + 0x1D127, + 0x1D129, + 0x1D15E, + 0x1D16A, + 0x1D16D, + 0x1D183, + 0x1D185, + 0x1D18C, + 0x1D1AA, + 0x1D1AE, + 0x1D1BB, + 0x1D1C1, + 0x1D1E9, + 0x1D200, + 0x1D242, + 0x1D245, + 0x1D246, + 0x1D2E0, + 0x1D2F4, + 0x1D300, + 0x1D357, + 0x1D360, + 0x1D379, + 0x1D800, + 0x1DA00, + 0x1DA37, + 0x1DA3B, + 0x1DA6D, + 0x1DA75, + 0x1DA76, + 0x1DA84, + 0x1DA85, + 0x1DA8C, + 0x1E14F, + 0x1E150, + 0x1E2FF, + 0x1E300, + 0x1E8C7, + 0x1E8D0, + 0x1E95E, + 0x1E960, + 0x1EC71, + 0x1ECB5, + 0x1ED01, + 0x1ED3E, + 0x1EEF0, + 0x1EEF2, + 0x1F000, + 0x1F02C, + 0x1F030, + 0x1F094, + 0x1F0A0, + 0x1F0AF, + 0x1F0B1, + 0x1F0C0, + 0x1F0C1, + 0x1F0D0, + 0x1F0D1, + 0x1F0F6, + 0x1F10B, + 0x1F110, + 0x1F12F, + 0x1F130, + 0x1F150, + 0x1F16A, + 0x1F16D, + 0x1F190, + 0x1F191, + 0x1F1AE, + 0x1F1E6, + 0x1F200, + 0x1F260, + 0x1F266, + 0x1F300, + 0x1F6D8, + 0x1F6E0, + 0x1F6ED, + 0x1F6F0, + 0x1F6FD, + 0x1F700, + 0x1F774, + 0x1F780, + 0x1F7D9, + 0x1F7E0, + 0x1F7EC, + 0x1F800, + 0x1F80C, + 0x1F810, + 0x1F848, + 0x1F850, + 0x1F85A, + 0x1F860, + 0x1F888, + 0x1F890, + 0x1F8AE, + 0x1F8B0, + 0x1F8B2, + 0x1F900, + 0x1F979, + 0x1F97A, + 0x1F9CC, + 0x1F9CD, + 0x1FA54, + 0x1FA60, + 0x1FA6E, + 0x1FA70, + 0x1FA75, + 0x1FA78, + 0x1FA7B, + 0x1FA80, + 0x1FA87, + 0x1FA90, + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB +}; + +# endif /* EBCDIC 037 */ + +static const UV UNI_IDENTIFIERTYPE__OBSOLETE_invlist[] = { /* for all charsets */ + 207, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x18D, + 0x18E, + 0x1AA, + 0x1AC, + 0x1B9, + 0x1BC, + 0x1BE, + 0x1C0, + 0x1F6, + 0x1F8, + 0x21C, + 0x21E, + 0x277, + 0x278, + 0x27C, + 0x27D, + 0x29E, + 0x29F, + 0x363, + 0x374, + 0x376, + 0x378, + 0x37F, + 0x380, + 0x3D8, + 0x3E2, + 0x3F3, + 0x3F4, + 0x3F7, + 0x3F9, + 0x3FA, + 0x3FC, + 0x460, + 0x48A, + 0x500, + 0x510, + 0x52A, + 0x52E, + 0x5A2, + 0x5A3, + 0x5C5, + 0x5C7, + 0x640, + 0x641, + 0x66E, + 0x670, + 0x68E, + 0x68F, + 0x6A1, + 0x6A2, + 0x7E8, + 0x7EB, + 0x7FA, + 0x7FB, + 0x8AD, + 0x8B2, + 0x94E, + 0x94F, + 0x951, + 0x953, + 0x978, + 0x979, + 0x980, + 0x981, + 0x9FC, + 0x9FD, + 0xC00, + 0xC01, + 0xC34, + 0xC35, + 0xC58, + 0xC5A, + 0xC81, + 0xC82, + 0xCDE, + 0xCDF, + 0xD01, + 0xD02, + 0xD04, + 0xD05, + 0xD3B, + 0xD3D, + 0xD5F, + 0xD60, + 0xDE6, + 0xDF0, + 0x10A0, + 0x10C6, + 0x10F1, + 0x10F7, + 0x1100, + 0x115F, + 0x1161, + 0x1200, + 0x1369, + 0x1372, + 0x17A8, + 0x17A9, + 0x17D1, + 0x17D2, + 0x17D3, + 0x17D4, + 0x17D8, + 0x17D9, + 0x17DD, + 0x17DE, + 0x1AB0, + 0x1ABE, + 0x1C80, + 0x1C89, + 0x1CD0, + 0x1CFA, + 0x1DC0, + 0x1DC4, + 0x1DCE, + 0x1DCF, + 0x1DD1, + 0x1DE7, + 0x2056, + 0x2057, + 0x2058, + 0x205F, + 0x2127, + 0x2128, + 0x2132, + 0x2133, + 0x214E, + 0x2150, + 0x2180, + 0x2189, + 0x2C6D, + 0x2C77, + 0x2C7E, + 0x2C80, + 0x2D00, + 0x2D26, + 0x2DE0, + 0x2E17, + 0x2E2A, + 0x2E33, + 0x2E35, + 0x2E36, + 0x2E39, + 0x2E3A, + 0x301E, + 0x301F, + 0x302E, + 0x3030, + 0x312E, + 0x312F, + 0xA610, + 0xA613, + 0xA62A, + 0xA62C, + 0xA640, + 0xA66F, + 0xA670, + 0xA67C, + 0xA680, + 0xA69C, + 0xA69E, + 0xA6A0, + 0xA700, + 0xA708, + 0xA722, + 0xA770, + 0xA771, + 0xA788, + 0xA790, + 0xA792, + 0xA794, + 0xA7AA, + 0xA7AB, + 0xA7AE, + 0xA7B0, + 0xA7B2, + 0xA7F5, + 0xA7F8, + 0xA7FB, + 0xA800, + 0xA8E0, + 0xA900, + 0xA960, + 0xA97D, + 0xA9E0, + 0xA9E7, + 0xAB30, + 0xAB5B, + 0xAB64, + 0xAB66, + 0xD7B0, + 0xD7C7, + 0xD7CB, + 0xD7FC, + 0x10140, + 0x10175, + 0x101D0, + 0x101FE, + 0x102E0, + 0x102FC, + 0x16FE3, + 0x16FE4, + 0x1B000, + 0x1B11F, + 0x1D200, + 0x1D246 +}; + +# if 'A' == 65 /* ASCII/Latin1 */ + +static const UV UNI_IDENTIFIERTYPE__RECOMMENDED_invlist[] = { /* for ASCII/Latin1 */ + 733, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x30, + 0x3A, + 0x41, + 0x5B, + 0x5F, + 0x60, + 0x61, + 0x7B, + 0xC0, + 0xD7, + 0xD8, + 0xF7, + 0xF8, + 0x132, + 0x134, + 0x13F, + 0x141, + 0x149, + 0x14A, + 0x17F, + 0x18F, + 0x190, + 0x1A0, + 0x1A2, + 0x1AF, + 0x1B1, + 0x1CD, + 0x1DD, + 0x1DE, + 0x1E4, + 0x1E6, + 0x1F1, + 0x1F4, + 0x1F6, + 0x1F8, + 0x21C, + 0x21E, + 0x220, + 0x226, + 0x234, + 0x259, + 0x25A, + 0x2BB, + 0x2BD, + 0x2EC, + 0x2ED, + 0x300, + 0x305, + 0x306, + 0x30D, + 0x30F, + 0x312, + 0x313, + 0x315, + 0x31B, + 0x31C, + 0x323, + 0x329, + 0x32D, + 0x32F, + 0x330, + 0x332, + 0x335, + 0x336, + 0x338, + 0x33A, + 0x342, + 0x343, + 0x345, + 0x346, + 0x37B, + 0x37E, + 0x386, + 0x387, + 0x388, + 0x38B, + 0x38C, + 0x38D, + 0x38E, + 0x3A2, + 0x3A3, + 0x3CF, + 0x3FC, + 0x460, + 0x48A, + 0x500, + 0x510, + 0x52A, + 0x52E, + 0x530, + 0x531, + 0x557, + 0x559, + 0x55A, + 0x561, + 0x587, + 0x5B4, + 0x5B5, + 0x5D0, + 0x5EB, + 0x5EF, + 0x5F3, + 0x620, + 0x640, + 0x641, + 0x656, + 0x660, + 0x66A, + 0x670, + 0x673, + 0x674, + 0x675, + 0x679, + 0x68E, + 0x68F, + 0x6A1, + 0x6A2, + 0x6D4, + 0x6D5, + 0x6D6, + 0x6E5, + 0x6E7, + 0x6EE, + 0x6FD, + 0x6FF, + 0x700, + 0x750, + 0x7B2, + 0x8A0, + 0x8AD, + 0x8B2, + 0x8B3, + 0x8B6, + 0x8C8, + 0x901, + 0x94E, + 0x94F, + 0x951, + 0x956, + 0x958, + 0x960, + 0x964, + 0x966, + 0x970, + 0x971, + 0x978, + 0x979, + 0x980, + 0x981, + 0x984, + 0x985, + 0x98D, + 0x98F, + 0x991, + 0x993, + 0x9A9, + 0x9AA, + 0x9B1, + 0x9B2, + 0x9B3, + 0x9B6, + 0x9BA, + 0x9BC, + 0x9C5, + 0x9C7, + 0x9C9, + 0x9CB, + 0x9CF, + 0x9D7, + 0x9D8, + 0x9E0, + 0x9E4, + 0x9E6, + 0x9F2, + 0x9FE, + 0x9FF, + 0xA01, + 0xA04, + 0xA05, + 0xA0B, + 0xA0F, + 0xA11, + 0xA13, + 0xA29, + 0xA2A, + 0xA31, + 0xA32, + 0xA33, + 0xA35, + 0xA36, + 0xA38, + 0xA3A, + 0xA3C, + 0xA3D, + 0xA3E, + 0xA43, + 0xA47, + 0xA49, + 0xA4B, + 0xA4E, + 0xA5C, + 0xA5D, + 0xA66, + 0xA75, + 0xA81, + 0xA84, + 0xA85, + 0xA8E, + 0xA8F, + 0xA92, + 0xA93, + 0xAA9, + 0xAAA, + 0xAB1, + 0xAB2, + 0xAB4, + 0xAB5, + 0xABA, + 0xABC, + 0xAC6, + 0xAC7, + 0xACA, + 0xACB, + 0xACE, + 0xAD0, + 0xAD1, + 0xAE0, + 0xAE4, + 0xAE6, + 0xAF0, + 0xAFA, + 0xB00, + 0xB01, + 0xB04, + 0xB05, + 0xB0D, + 0xB0F, + 0xB11, + 0xB13, + 0xB29, + 0xB2A, + 0xB31, + 0xB32, + 0xB34, + 0xB35, + 0xB3A, + 0xB3C, + 0xB44, + 0xB47, + 0xB49, + 0xB4B, + 0xB4E, + 0xB55, + 0xB58, + 0xB5F, + 0xB62, + 0xB66, + 0xB70, + 0xB71, + 0xB72, + 0xB82, + 0xB84, + 0xB85, + 0xB8B, + 0xB8E, + 0xB91, + 0xB92, + 0xB96, + 0xB99, + 0xB9B, + 0xB9C, + 0xB9D, + 0xB9E, + 0xBA0, + 0xBA3, + 0xBA5, + 0xBA8, + 0xBAB, + 0xBAE, + 0xBBA, + 0xBBE, + 0xBC3, + 0xBC6, + 0xBC9, + 0xBCA, + 0xBCE, + 0xBD0, + 0xBD1, + 0xBD7, + 0xBD8, + 0xBE6, + 0xBF0, + 0xC01, + 0xC0D, + 0xC0E, + 0xC11, + 0xC12, + 0xC29, + 0xC2A, + 0xC34, + 0xC35, + 0xC3A, + 0xC3D, + 0xC45, + 0xC46, + 0xC49, + 0xC4A, + 0xC4E, + 0xC55, + 0xC57, + 0xC60, + 0xC62, + 0xC66, + 0xC70, + 0xC80, + 0xC81, + 0xC82, + 0xC84, + 0xC85, + 0xC8D, + 0xC8E, + 0xC91, + 0xC92, + 0xCA9, + 0xCAA, + 0xCB4, + 0xCB5, + 0xCBA, + 0xCBC, + 0xCC5, + 0xCC6, + 0xCC9, + 0xCCA, + 0xCCE, + 0xCD5, + 0xCD7, + 0xCE0, + 0xCE4, + 0xCE6, + 0xCF0, + 0xCF1, + 0xCF3, + 0xD00, + 0xD01, + 0xD02, + 0xD04, + 0xD05, + 0xD0D, + 0xD0E, + 0xD11, + 0xD12, + 0xD3B, + 0xD3D, + 0xD44, + 0xD46, + 0xD49, + 0xD4A, + 0xD4F, + 0xD54, + 0xD58, + 0xD60, + 0xD62, + 0xD66, + 0xD70, + 0xD7A, + 0xD80, + 0xD82, + 0xD84, + 0xD85, + 0xD8F, + 0xD91, + 0xD97, + 0xD9A, + 0xDA6, + 0xDA7, + 0xDB2, + 0xDB3, + 0xDBC, + 0xDBD, + 0xDBE, + 0xDC0, + 0xDC7, + 0xDCA, + 0xDCB, + 0xDCF, + 0xDD5, + 0xDD6, + 0xDD7, + 0xDD8, + 0xDDF, + 0xDF2, + 0xDF3, + 0xE01, + 0xE33, + 0xE34, + 0xE3B, + 0xE40, + 0xE4F, + 0xE50, + 0xE5A, + 0xE81, + 0xE83, + 0xE84, + 0xE85, + 0xE86, + 0xE8B, + 0xE8C, + 0xEA4, + 0xEA5, + 0xEA6, + 0xEA7, + 0xEB3, + 0xEB4, + 0xEBE, + 0xEC0, + 0xEC5, + 0xEC6, + 0xEC7, + 0xEC8, + 0xECE, + 0xED0, + 0xEDA, + 0xEDE, + 0xEE0, + 0xF00, + 0xF01, + 0xF20, + 0xF2A, + 0xF35, + 0xF36, + 0xF37, + 0xF38, + 0xF3E, + 0xF43, + 0xF44, + 0xF48, + 0xF49, + 0xF4D, + 0xF4E, + 0xF52, + 0xF53, + 0xF57, + 0xF58, + 0xF5C, + 0xF5D, + 0xF69, + 0xF6A, + 0xF6D, + 0xF71, + 0xF73, + 0xF74, + 0xF75, + 0xF7A, + 0xF81, + 0xF82, + 0xF85, + 0xF86, + 0xF93, + 0xF94, + 0xF98, + 0xF99, + 0xF9D, + 0xF9E, + 0xFA2, + 0xFA3, + 0xFA7, + 0xFA8, + 0xFAC, + 0xFAD, + 0xFB9, + 0xFBA, + 0xFBD, + 0xFC6, + 0xFC7, + 0x1000, + 0x104A, + 0x1050, + 0x109E, + 0x10C7, + 0x10C8, + 0x10CD, + 0x10CE, + 0x10D0, + 0x10F1, + 0x10F7, + 0x10FB, + 0x10FD, + 0x1100, + 0x1200, + 0x1249, + 0x124A, + 0x124E, + 0x1250, + 0x1257, + 0x1258, + 0x1259, + 0x125A, + 0x125E, + 0x1260, + 0x1289, + 0x128A, + 0x128E, + 0x1290, + 0x12B1, + 0x12B2, + 0x12B6, + 0x12B8, + 0x12BF, + 0x12C0, + 0x12C1, + 0x12C2, + 0x12C6, + 0x12C8, + 0x12D7, + 0x12D8, + 0x1311, + 0x1312, + 0x1316, + 0x1318, + 0x135B, + 0x135D, + 0x1360, + 0x1380, + 0x1390, + 0x1780, + 0x17A3, + 0x17A5, + 0x17A8, + 0x17A9, + 0x17B4, + 0x17B6, + 0x17CB, + 0x17D2, + 0x17D3, + 0x17D7, + 0x17D8, + 0x17DC, + 0x17DD, + 0x17E0, + 0x17EA, + 0x1C90, + 0x1CBB, + 0x1CBD, + 0x1CC0, + 0x1E00, + 0x1E9A, + 0x1E9E, + 0x1E9F, + 0x1EA0, + 0x1EFA, + 0x1F00, + 0x1F16, + 0x1F18, + 0x1F1E, + 0x1F20, + 0x1F46, + 0x1F48, + 0x1F4E, + 0x1F50, + 0x1F58, + 0x1F59, + 0x1F5A, + 0x1F5B, + 0x1F5C, + 0x1F5D, + 0x1F5E, + 0x1F5F, + 0x1F71, + 0x1F72, + 0x1F73, + 0x1F74, + 0x1F75, + 0x1F76, + 0x1F77, + 0x1F78, + 0x1F79, + 0x1F7A, + 0x1F7B, + 0x1F7C, + 0x1F7D, + 0x1F80, + 0x1FB5, + 0x1FB6, + 0x1FBB, + 0x1FBC, + 0x1FBD, + 0x1FC2, + 0x1FC5, + 0x1FC6, + 0x1FC9, + 0x1FCA, + 0x1FCB, + 0x1FCC, + 0x1FCD, + 0x1FD0, + 0x1FD3, + 0x1FD6, + 0x1FDB, + 0x1FE0, + 0x1FE3, + 0x1FE4, + 0x1FEB, + 0x1FEC, + 0x1FED, + 0x1FF2, + 0x1FF5, + 0x1FF6, + 0x1FF9, + 0x1FFA, + 0x1FFB, + 0x1FFC, + 0x1FFD, + 0x2D27, + 0x2D28, + 0x2D2D, + 0x2D2E, + 0x2D80, + 0x2D97, + 0x2DA0, + 0x2DA7, + 0x2DA8, + 0x2DAF, + 0x2DB0, + 0x2DB7, + 0x2DB8, + 0x2DBF, + 0x2DC0, + 0x2DC7, + 0x2DC8, + 0x2DCF, + 0x2DD0, + 0x2DD7, + 0x2DD8, + 0x2DDF, + 0x3005, + 0x3008, + 0x3041, + 0x3097, + 0x3099, + 0x309B, + 0x309D, + 0x309F, + 0x30A1, + 0x30FB, + 0x30FC, + 0x30FF, + 0x3105, + 0x312E, + 0x312F, + 0x3130, + 0x31A0, + 0x31C0, + 0x3400, + 0x4DC0, + 0x4E00, + 0x9FFD, + 0xA67F, + 0xA680, + 0xA717, + 0xA720, + 0xA788, + 0xA789, + 0xA78D, + 0xA78E, + 0xA792, + 0xA794, + 0xA7AA, + 0xA7AB, + 0xA7AE, + 0xA7AF, + 0xA7B8, + 0xA7BA, + 0xA7C2, + 0xA7CB, + 0xA9E7, + 0xA9FF, + 0xAA60, + 0xAA77, + 0xAA7A, + 0xAA80, + 0xAB01, + 0xAB07, + 0xAB09, + 0xAB0F, + 0xAB11, + 0xAB17, + 0xAB20, + 0xAB27, + 0xAB28, + 0xAB2F, + 0xAB66, + 0xAB68, + 0xAC00, + 0xD7A4, + 0xFA0E, + 0xFA10, + 0xFA11, + 0xFA12, + 0xFA13, + 0xFA15, + 0xFA1F, + 0xFA20, + 0xFA21, + 0xFA22, + 0xFA23, + 0xFA25, + 0xFA27, + 0xFA2A, + 0x11301, + 0x11302, + 0x11303, + 0x11304, + 0x1133B, + 0x1133D, + 0x16FF0, + 0x16FF2, + 0x1B150, + 0x1B153, + 0x1B164, + 0x1B168, + 0x20000, + 0x2A6DE, + 0x2A700, + 0x2B735, + 0x2B740, + 0x2B81E, + 0x2B820, + 0x2CEA2, + 0x2CEB0, + 0x2EBE1, + 0x30000, + 0x3134B +}; + +# endif /* ASCII/Latin1 */ + +# if 'A' == 193 /* EBCDIC 1047 */ \ + && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \ + && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \ + && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 + +static const UV UNI_IDENTIFIERTYPE__RECOMMENDED_invlist[] = { /* for EBCDIC 1047 */ + 763, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x42, + 0x4A, + 0x51, + 0x5A, + 0x62, + 0x6A, + 0x6D, + 0x6E, + 0x70, + 0x79, + 0x80, + 0x8A, + 0x8C, + 0x8F, + 0x91, + 0x9A, + 0x9C, + 0x9D, + 0x9E, + 0x9F, + 0xA2, + 0xAA, + 0xAC, + 0xAD, + 0xAE, + 0xAF, + 0xBA, + 0xBB, + 0xC1, + 0xCA, + 0xCB, + 0xD0, + 0xD1, + 0xDA, + 0xDB, + 0xE0, + 0xE2, + 0xEA, + 0xEB, + 0xFA, + 0xFB, + 0xFF, + 0x100, + 0x132, + 0x134, + 0x13F, + 0x141, + 0x149, + 0x14A, + 0x17F, + 0x18F, + 0x190, + 0x1A0, + 0x1A2, + 0x1AF, + 0x1B1, + 0x1CD, + 0x1DD, + 0x1DE, + 0x1E4, + 0x1E6, + 0x1F1, + 0x1F4, + 0x1F6, + 0x1F8, + 0x21C, + 0x21E, + 0x220, + 0x226, + 0x234, + 0x259, + 0x25A, + 0x2BB, + 0x2BD, + 0x2EC, + 0x2ED, + 0x300, + 0x305, + 0x306, + 0x30D, + 0x30F, + 0x312, + 0x313, + 0x315, + 0x31B, + 0x31C, + 0x323, + 0x329, + 0x32D, + 0x32F, + 0x330, + 0x332, + 0x335, + 0x336, + 0x338, + 0x33A, + 0x342, + 0x343, + 0x345, + 0x346, + 0x37B, + 0x37E, + 0x386, + 0x387, + 0x388, + 0x38B, + 0x38C, + 0x38D, + 0x38E, + 0x3A2, + 0x3A3, + 0x3CF, + 0x3FC, + 0x460, + 0x48A, + 0x500, + 0x510, + 0x52A, + 0x52E, + 0x530, + 0x531, + 0x557, + 0x559, + 0x55A, + 0x561, + 0x587, + 0x5B4, + 0x5B5, + 0x5D0, + 0x5EB, + 0x5EF, + 0x5F3, + 0x620, + 0x640, + 0x641, + 0x656, + 0x660, + 0x66A, + 0x670, + 0x673, + 0x674, + 0x675, + 0x679, + 0x68E, + 0x68F, + 0x6A1, + 0x6A2, + 0x6D4, + 0x6D5, + 0x6D6, + 0x6E5, + 0x6E7, + 0x6EE, + 0x6FD, + 0x6FF, + 0x700, + 0x750, + 0x7B2, + 0x8A0, + 0x8AD, + 0x8B2, + 0x8B3, + 0x8B6, + 0x8C8, + 0x901, + 0x94E, + 0x94F, + 0x951, + 0x956, + 0x958, + 0x960, + 0x964, + 0x966, + 0x970, + 0x971, + 0x978, + 0x979, + 0x980, + 0x981, + 0x984, + 0x985, + 0x98D, + 0x98F, + 0x991, + 0x993, + 0x9A9, + 0x9AA, + 0x9B1, + 0x9B2, + 0x9B3, + 0x9B6, + 0x9BA, + 0x9BC, + 0x9C5, + 0x9C7, + 0x9C9, + 0x9CB, + 0x9CF, + 0x9D7, + 0x9D8, + 0x9E0, + 0x9E4, + 0x9E6, + 0x9F2, + 0x9FE, + 0x9FF, + 0xA01, + 0xA04, + 0xA05, + 0xA0B, + 0xA0F, + 0xA11, + 0xA13, + 0xA29, + 0xA2A, + 0xA31, + 0xA32, + 0xA33, + 0xA35, + 0xA36, + 0xA38, + 0xA3A, + 0xA3C, + 0xA3D, + 0xA3E, + 0xA43, + 0xA47, + 0xA49, + 0xA4B, + 0xA4E, + 0xA5C, + 0xA5D, + 0xA66, + 0xA75, + 0xA81, + 0xA84, + 0xA85, + 0xA8E, + 0xA8F, + 0xA92, + 0xA93, + 0xAA9, + 0xAAA, + 0xAB1, + 0xAB2, + 0xAB4, + 0xAB5, + 0xABA, + 0xABC, + 0xAC6, + 0xAC7, + 0xACA, + 0xACB, + 0xACE, + 0xAD0, + 0xAD1, + 0xAE0, + 0xAE4, + 0xAE6, + 0xAF0, + 0xAFA, + 0xB00, + 0xB01, + 0xB04, + 0xB05, + 0xB0D, + 0xB0F, + 0xB11, + 0xB13, + 0xB29, + 0xB2A, + 0xB31, + 0xB32, + 0xB34, + 0xB35, + 0xB3A, + 0xB3C, + 0xB44, + 0xB47, + 0xB49, + 0xB4B, + 0xB4E, + 0xB55, + 0xB58, + 0xB5F, + 0xB62, + 0xB66, + 0xB70, + 0xB71, + 0xB72, + 0xB82, + 0xB84, + 0xB85, + 0xB8B, + 0xB8E, + 0xB91, + 0xB92, + 0xB96, + 0xB99, + 0xB9B, + 0xB9C, + 0xB9D, + 0xB9E, + 0xBA0, + 0xBA3, + 0xBA5, + 0xBA8, + 0xBAB, + 0xBAE, + 0xBBA, + 0xBBE, + 0xBC3, + 0xBC6, + 0xBC9, + 0xBCA, + 0xBCE, + 0xBD0, + 0xBD1, + 0xBD7, + 0xBD8, + 0xBE6, + 0xBF0, + 0xC01, + 0xC0D, + 0xC0E, + 0xC11, + 0xC12, + 0xC29, + 0xC2A, + 0xC34, + 0xC35, + 0xC3A, + 0xC3D, + 0xC45, + 0xC46, + 0xC49, + 0xC4A, + 0xC4E, + 0xC55, + 0xC57, + 0xC60, + 0xC62, + 0xC66, + 0xC70, + 0xC80, + 0xC81, + 0xC82, + 0xC84, + 0xC85, + 0xC8D, + 0xC8E, + 0xC91, + 0xC92, + 0xCA9, + 0xCAA, + 0xCB4, + 0xCB5, + 0xCBA, + 0xCBC, + 0xCC5, + 0xCC6, + 0xCC9, + 0xCCA, + 0xCCE, + 0xCD5, + 0xCD7, + 0xCE0, + 0xCE4, + 0xCE6, + 0xCF0, + 0xCF1, + 0xCF3, + 0xD00, + 0xD01, + 0xD02, + 0xD04, + 0xD05, + 0xD0D, + 0xD0E, + 0xD11, + 0xD12, + 0xD3B, + 0xD3D, + 0xD44, + 0xD46, + 0xD49, + 0xD4A, + 0xD4F, + 0xD54, + 0xD58, + 0xD60, + 0xD62, + 0xD66, + 0xD70, + 0xD7A, + 0xD80, + 0xD82, + 0xD84, + 0xD85, + 0xD8F, + 0xD91, + 0xD97, + 0xD9A, + 0xDA6, + 0xDA7, + 0xDB2, + 0xDB3, + 0xDBC, + 0xDBD, + 0xDBE, + 0xDC0, + 0xDC7, + 0xDCA, + 0xDCB, + 0xDCF, + 0xDD5, + 0xDD6, + 0xDD7, + 0xDD8, + 0xDDF, + 0xDF2, + 0xDF3, + 0xE01, + 0xE33, + 0xE34, + 0xE3B, + 0xE40, + 0xE4F, + 0xE50, + 0xE5A, + 0xE81, + 0xE83, + 0xE84, + 0xE85, + 0xE86, + 0xE8B, + 0xE8C, + 0xEA4, + 0xEA5, + 0xEA6, + 0xEA7, + 0xEB3, + 0xEB4, + 0xEBE, + 0xEC0, + 0xEC5, + 0xEC6, + 0xEC7, + 0xEC8, + 0xECE, + 0xED0, + 0xEDA, + 0xEDE, + 0xEE0, + 0xF00, + 0xF01, + 0xF20, + 0xF2A, + 0xF35, + 0xF36, + 0xF37, + 0xF38, + 0xF3E, + 0xF43, + 0xF44, + 0xF48, + 0xF49, + 0xF4D, + 0xF4E, + 0xF52, + 0xF53, + 0xF57, + 0xF58, + 0xF5C, + 0xF5D, + 0xF69, + 0xF6A, + 0xF6D, + 0xF71, + 0xF73, + 0xF74, + 0xF75, + 0xF7A, + 0xF81, + 0xF82, + 0xF85, + 0xF86, + 0xF93, + 0xF94, + 0xF98, + 0xF99, + 0xF9D, + 0xF9E, + 0xFA2, + 0xFA3, + 0xFA7, + 0xFA8, + 0xFAC, + 0xFAD, + 0xFB9, + 0xFBA, + 0xFBD, + 0xFC6, + 0xFC7, + 0x1000, + 0x104A, + 0x1050, + 0x109E, + 0x10C7, + 0x10C8, + 0x10CD, + 0x10CE, + 0x10D0, + 0x10F1, + 0x10F7, + 0x10FB, + 0x10FD, + 0x1100, + 0x1200, + 0x1249, + 0x124A, + 0x124E, + 0x1250, + 0x1257, + 0x1258, + 0x1259, + 0x125A, + 0x125E, + 0x1260, + 0x1289, + 0x128A, + 0x128E, + 0x1290, + 0x12B1, + 0x12B2, + 0x12B6, + 0x12B8, + 0x12BF, + 0x12C0, + 0x12C1, + 0x12C2, + 0x12C6, + 0x12C8, + 0x12D7, + 0x12D8, + 0x1311, + 0x1312, + 0x1316, + 0x1318, + 0x135B, + 0x135D, + 0x1360, + 0x1380, + 0x1390, + 0x1780, + 0x17A3, + 0x17A5, + 0x17A8, + 0x17A9, + 0x17B4, + 0x17B6, + 0x17CB, + 0x17D2, + 0x17D3, + 0x17D7, + 0x17D8, + 0x17DC, + 0x17DD, + 0x17E0, + 0x17EA, + 0x1C90, + 0x1CBB, + 0x1CBD, + 0x1CC0, + 0x1E00, + 0x1E9A, + 0x1E9E, + 0x1E9F, + 0x1EA0, + 0x1EFA, + 0x1F00, + 0x1F16, + 0x1F18, + 0x1F1E, + 0x1F20, + 0x1F46, + 0x1F48, + 0x1F4E, + 0x1F50, + 0x1F58, + 0x1F59, + 0x1F5A, + 0x1F5B, + 0x1F5C, + 0x1F5D, + 0x1F5E, + 0x1F5F, + 0x1F71, + 0x1F72, + 0x1F73, + 0x1F74, + 0x1F75, + 0x1F76, + 0x1F77, + 0x1F78, + 0x1F79, + 0x1F7A, + 0x1F7B, + 0x1F7C, + 0x1F7D, + 0x1F80, + 0x1FB5, + 0x1FB6, + 0x1FBB, + 0x1FBC, + 0x1FBD, + 0x1FC2, + 0x1FC5, + 0x1FC6, + 0x1FC9, + 0x1FCA, + 0x1FCB, + 0x1FCC, + 0x1FCD, + 0x1FD0, + 0x1FD3, + 0x1FD6, + 0x1FDB, + 0x1FE0, + 0x1FE3, + 0x1FE4, + 0x1FEB, + 0x1FEC, + 0x1FED, + 0x1FF2, + 0x1FF5, + 0x1FF6, + 0x1FF9, + 0x1FFA, + 0x1FFB, + 0x1FFC, + 0x1FFD, + 0x2D27, + 0x2D28, + 0x2D2D, + 0x2D2E, + 0x2D80, + 0x2D97, + 0x2DA0, + 0x2DA7, + 0x2DA8, + 0x2DAF, + 0x2DB0, + 0x2DB7, + 0x2DB8, + 0x2DBF, + 0x2DC0, + 0x2DC7, + 0x2DC8, + 0x2DCF, + 0x2DD0, + 0x2DD7, + 0x2DD8, + 0x2DDF, + 0x3005, + 0x3008, + 0x3041, + 0x3097, + 0x3099, + 0x309B, + 0x309D, + 0x309F, + 0x30A1, + 0x30FB, + 0x30FC, + 0x30FF, + 0x3105, + 0x312E, + 0x312F, + 0x3130, + 0x31A0, + 0x31C0, + 0x3400, + 0x4DC0, + 0x4E00, + 0x9FFD, + 0xA67F, + 0xA680, + 0xA717, + 0xA720, + 0xA788, + 0xA789, + 0xA78D, + 0xA78E, + 0xA792, + 0xA794, + 0xA7AA, + 0xA7AB, + 0xA7AE, + 0xA7AF, + 0xA7B8, + 0xA7BA, + 0xA7C2, + 0xA7CB, + 0xA9E7, + 0xA9FF, + 0xAA60, + 0xAA77, + 0xAA7A, + 0xAA80, + 0xAB01, + 0xAB07, + 0xAB09, + 0xAB0F, + 0xAB11, + 0xAB17, + 0xAB20, + 0xAB27, + 0xAB28, + 0xAB2F, + 0xAB66, + 0xAB68, + 0xAC00, + 0xD7A4, + 0xFA0E, + 0xFA10, + 0xFA11, + 0xFA12, + 0xFA13, + 0xFA15, + 0xFA1F, + 0xFA20, + 0xFA21, + 0xFA22, + 0xFA23, + 0xFA25, + 0xFA27, + 0xFA2A, + 0x11301, + 0x11302, + 0x11303, + 0x11304, + 0x1133B, + 0x1133D, + 0x16FF0, + 0x16FF2, + 0x1B150, + 0x1B153, + 0x1B164, + 0x1B168, + 0x20000, + 0x2A6DE, + 0x2A700, + 0x2B735, + 0x2B740, + 0x2B81E, + 0x2B820, + 0x2CEA2, + 0x2CEB0, + 0x2EBE1, + 0x30000, + 0x3134B +}; + +# endif /* EBCDIC 1047 */ + +# if 'A' == 193 /* EBCDIC 037 */ \ + && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \ + && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \ + && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 + +static const UV UNI_IDENTIFIERTYPE__RECOMMENDED_invlist[] = { /* for EBCDIC 037 */ + 759, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x42, + 0x4A, + 0x51, + 0x5A, + 0x62, + 0x6A, + 0x6D, + 0x6E, + 0x70, + 0x79, + 0x80, + 0x8A, + 0x8C, + 0x8F, + 0x91, + 0x9A, + 0x9C, + 0x9D, + 0x9E, + 0x9F, + 0xA2, + 0xAA, + 0xAC, + 0xAF, + 0xC1, + 0xCA, + 0xCB, + 0xD0, + 0xD1, + 0xDA, + 0xDB, + 0xE0, + 0xE2, + 0xEA, + 0xEB, + 0xFA, + 0xFB, + 0xFF, + 0x100, + 0x132, + 0x134, + 0x13F, + 0x141, + 0x149, + 0x14A, + 0x17F, + 0x18F, + 0x190, + 0x1A0, + 0x1A2, + 0x1AF, + 0x1B1, + 0x1CD, + 0x1DD, + 0x1DE, + 0x1E4, + 0x1E6, + 0x1F1, + 0x1F4, + 0x1F6, + 0x1F8, + 0x21C, + 0x21E, + 0x220, + 0x226, + 0x234, + 0x259, + 0x25A, + 0x2BB, + 0x2BD, + 0x2EC, + 0x2ED, 0x300, - 0x375, - 0x376, - 0x378, - 0x37A, + 0x305, + 0x306, + 0x30D, + 0x30F, + 0x312, + 0x313, + 0x315, + 0x31B, + 0x31C, + 0x323, + 0x329, + 0x32D, + 0x32F, + 0x330, + 0x332, + 0x335, + 0x336, + 0x338, + 0x33A, + 0x342, + 0x343, + 0x345, + 0x346, + 0x37B, 0x37E, - 0x37F, - 0x380, 0x386, + 0x387, + 0x388, 0x38B, 0x38C, 0x38D, 0x38E, 0x3A2, 0x3A3, - 0x3F6, - 0x3F7, - 0x482, - 0x483, - 0x488, + 0x3CF, + 0x3FC, + 0x460, 0x48A, + 0x500, + 0x510, + 0x52A, + 0x52E, 0x530, 0x531, 0x557, 0x559, 0x55A, - 0x560, - 0x589, - 0x591, - 0x5BE, - 0x5BF, - 0x5C0, - 0x5C1, - 0x5C3, - 0x5C4, - 0x5C6, - 0x5C7, - 0x5C8, + 0x561, + 0x587, + 0x5B4, + 0x5B5, 0x5D0, 0x5EB, 0x5EF, 0x5F3, - 0x610, - 0x61B, 0x620, + 0x640, + 0x641, + 0x656, + 0x660, 0x66A, - 0x66E, + 0x670, + 0x673, + 0x674, + 0x675, + 0x679, + 0x68E, + 0x68F, + 0x6A1, + 0x6A2, 0x6D4, 0x6D5, - 0x6DD, - 0x6DF, - 0x6E9, - 0x6EA, + 0x6D6, + 0x6E5, + 0x6E7, + 0x6EE, 0x6FD, 0x6FF, 0x700, - 0x710, - 0x74B, - 0x74D, + 0x750, 0x7B2, - 0x7C0, - 0x7F6, - 0x7FA, - 0x7FB, - 0x7FD, - 0x7FE, - 0x800, - 0x82E, - 0x840, - 0x85C, - 0x860, - 0x86B, 0x8A0, - 0x8B5, + 0x8AD, + 0x8B2, + 0x8B3, 0x8B6, - 0x8BE, - 0x8D3, - 0x8E2, - 0x8E3, + 0x8C8, + 0x901, + 0x94E, + 0x94F, + 0x951, + 0x956, + 0x958, + 0x960, 0x964, 0x966, 0x970, 0x971, + 0x978, + 0x979, + 0x980, + 0x981, 0x984, 0x985, 0x98D, @@ -250706,14 +273739,10 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */ 0x9CF, 0x9D7, 0x9D8, - 0x9DC, - 0x9DE, - 0x9DF, + 0x9E0, 0x9E4, 0x9E6, 0x9F2, - 0x9FC, - 0x9FD, 0x9FE, 0x9FF, 0xA01, @@ -250727,9 +273756,9 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */ 0xA2A, 0xA31, 0xA32, - 0xA34, + 0xA33, 0xA35, - 0xA37, + 0xA36, 0xA38, 0xA3A, 0xA3C, @@ -250740,14 +273769,10 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */ 0xA49, 0xA4B, 0xA4E, - 0xA51, - 0xA52, - 0xA59, + 0xA5C, 0xA5D, - 0xA5E, - 0xA5F, 0xA66, - 0xA76, + 0xA75, 0xA81, 0xA84, 0xA85, @@ -250774,7 +273799,7 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */ 0xAE4, 0xAE6, 0xAF0, - 0xAF9, + 0xAFA, 0xB00, 0xB01, 0xB04, @@ -250791,17 +273816,15 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */ 0xB35, 0xB3A, 0xB3C, - 0xB45, + 0xB44, 0xB47, 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, - 0xB5C, - 0xB5E, 0xB5F, - 0xB64, + 0xB62, 0xB66, 0xB70, 0xB71, @@ -250838,13 +273861,15 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */ 0xBD8, 0xBE6, 0xBF0, - 0xC00, + 0xC01, 0xC0D, 0xC0E, 0xC11, 0xC12, 0xC29, 0xC2A, + 0xC34, + 0xC35, 0xC3A, 0xC3D, 0xC45, @@ -250854,13 +273879,13 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */ 0xC4E, 0xC55, 0xC57, - 0xC58, - 0xC5B, 0xC60, - 0xC64, + 0xC62, 0xC66, 0xC70, 0xC80, + 0xC81, + 0xC82, 0xC84, 0xC85, 0xC8D, @@ -250880,8 +273905,6 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */ 0xCCE, 0xCD5, 0xCD7, - 0xCDE, - 0xCDF, 0xCE0, 0xCE4, 0xCE6, @@ -250889,21 +273912,25 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */ 0xCF1, 0xCF3, 0xD00, + 0xD01, + 0xD02, 0xD04, 0xD05, 0xD0D, 0xD0E, 0xD11, 0xD12, - 0xD45, + 0xD3B, + 0xD3D, + 0xD44, 0xD46, 0xD49, 0xD4A, 0xD4F, 0xD54, 0xD58, - 0xD5F, - 0xD64, + 0xD60, + 0xD62, 0xD66, 0xD70, 0xD7A, @@ -250911,8 +273938,12 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */ 0xD82, 0xD84, 0xD85, + 0xD8F, + 0xD91, 0xD97, 0xD9A, + 0xDA6, + 0xDA7, 0xDB2, 0xDB3, 0xDBC, @@ -250927,12 +273958,12 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */ 0xDD6, 0xDD7, 0xDD8, - 0xDE0, - 0xDE6, - 0xDF0, + 0xDDF, 0xDF2, - 0xDF4, + 0xDF3, 0xE01, + 0xE33, + 0xE34, 0xE3B, 0xE40, 0xE4F, @@ -250949,6 +273980,8 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */ 0xEA5, 0xEA6, 0xEA7, + 0xEB3, + 0xEB4, 0xEBE, 0xEC0, 0xEC5, @@ -250958,29 +273991,55 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */ 0xECE, 0xED0, 0xEDA, - 0xEDC, + 0xEDE, 0xEE0, 0xF00, 0xF01, - 0xF18, - 0xF1A, 0xF20, 0xF2A, 0xF35, 0xF36, 0xF37, 0xF38, - 0xF39, - 0xF3A, 0xF3E, + 0xF43, + 0xF44, 0xF48, 0xF49, + 0xF4D, + 0xF4E, + 0xF52, + 0xF53, + 0xF57, + 0xF58, + 0xF5C, + 0xF5D, + 0xF69, + 0xF6A, 0xF6D, 0xF71, + 0xF73, + 0xF74, + 0xF75, + 0xF7A, + 0xF81, + 0xF82, 0xF85, 0xF86, + 0xF93, + 0xF94, 0xF98, 0xF99, + 0xF9D, + 0xF9E, + 0xFA2, + 0xFA3, + 0xFA7, + 0xFA8, + 0xFAC, + 0xFAD, + 0xFB9, + 0xFBA, 0xFBD, 0xFC6, 0xFC7, @@ -250988,15 +274047,17 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */ 0x104A, 0x1050, 0x109E, - 0x10A0, - 0x10C6, 0x10C7, 0x10C8, 0x10CD, 0x10CE, 0x10D0, + 0x10F1, + 0x10F7, 0x10FB, - 0x10FC, + 0x10FD, + 0x1100, + 0x1200, 0x1249, 0x124A, 0x124E, @@ -251030,113 +274091,35 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */ 0x135B, 0x135D, 0x1360, - 0x1369, - 0x1372, 0x1380, 0x1390, - 0x13A0, - 0x13F6, - 0x13F8, - 0x13FE, - 0x1401, - 0x166D, - 0x166F, - 0x1680, - 0x1681, - 0x169B, - 0x16A0, - 0x16EB, - 0x16EE, - 0x16F9, - 0x1700, - 0x170D, - 0x170E, - 0x1715, - 0x1720, - 0x1735, - 0x1740, - 0x1754, - 0x1760, - 0x176D, - 0x176E, - 0x1771, - 0x1772, - 0x1774, 0x1780, - 0x17D4, + 0x17A3, + 0x17A5, + 0x17A8, + 0x17A9, + 0x17B4, + 0x17B6, + 0x17CB, + 0x17D2, + 0x17D3, 0x17D7, 0x17D8, 0x17DC, - 0x17DE, + 0x17DD, 0x17E0, 0x17EA, - 0x180B, - 0x180E, - 0x1810, - 0x181A, - 0x1820, - 0x1879, - 0x1880, - 0x18AB, - 0x18B0, - 0x18F6, - 0x1900, - 0x191F, - 0x1920, - 0x192C, - 0x1930, - 0x193C, - 0x1946, - 0x196E, - 0x1970, - 0x1975, - 0x1980, - 0x19AC, - 0x19B0, - 0x19CA, - 0x19D0, - 0x19DB, - 0x1A00, - 0x1A1C, - 0x1A20, - 0x1A5F, - 0x1A60, - 0x1A7D, - 0x1A7F, - 0x1A8A, - 0x1A90, - 0x1A9A, - 0x1AA7, - 0x1AA8, - 0x1AB0, - 0x1ABE, - 0x1B00, - 0x1B4C, - 0x1B50, - 0x1B5A, - 0x1B6B, - 0x1B74, - 0x1B80, - 0x1BF4, - 0x1C00, - 0x1C38, - 0x1C40, - 0x1C4A, - 0x1C4D, - 0x1C7E, - 0x1C80, - 0x1C89, 0x1C90, 0x1CBB, 0x1CBD, 0x1CC0, - 0x1CD0, - 0x1CD3, - 0x1CD4, - 0x1CFB, - 0x1D00, - 0x1DFA, - 0x1DFB, + 0x1E00, + 0x1E9A, + 0x1E9E, + 0x1E9F, + 0x1EA0, + 0x1EFA, + 0x1F00, 0x1F16, 0x1F18, 0x1F1E, @@ -251153,88 +274136,56 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */ 0x1F5D, 0x1F5E, 0x1F5F, - 0x1F7E, + 0x1F71, + 0x1F72, + 0x1F73, + 0x1F74, + 0x1F75, + 0x1F76, + 0x1F77, + 0x1F78, + 0x1F79, + 0x1F7A, + 0x1F7B, + 0x1F7C, + 0x1F7D, 0x1F80, 0x1FB5, 0x1FB6, + 0x1FBB, + 0x1FBC, 0x1FBD, - 0x1FBE, - 0x1FBF, 0x1FC2, 0x1FC5, 0x1FC6, + 0x1FC9, + 0x1FCA, + 0x1FCB, + 0x1FCC, 0x1FCD, 0x1FD0, - 0x1FD4, + 0x1FD3, 0x1FD6, - 0x1FDC, + 0x1FDB, 0x1FE0, + 0x1FE3, + 0x1FE4, + 0x1FEB, + 0x1FEC, 0x1FED, 0x1FF2, 0x1FF5, 0x1FF6, + 0x1FF9, + 0x1FFA, + 0x1FFB, + 0x1FFC, 0x1FFD, - 0x203F, - 0x2041, - 0x2054, - 0x2055, - 0x2071, - 0x2072, - 0x207F, - 0x2080, - 0x2090, - 0x209D, - 0x20D0, - 0x20DD, - 0x20E1, - 0x20E2, - 0x20E5, - 0x20F1, - 0x2102, - 0x2103, - 0x2107, - 0x2108, - 0x210A, - 0x2114, - 0x2115, - 0x2116, - 0x2118, - 0x211E, - 0x2124, - 0x2125, - 0x2126, - 0x2127, - 0x2128, - 0x2129, - 0x212A, - 0x213A, - 0x213C, - 0x2140, - 0x2145, - 0x214A, - 0x214E, - 0x214F, - 0x2160, - 0x2189, - 0x2C00, - 0x2C2F, - 0x2C30, - 0x2C5F, - 0x2C60, - 0x2CE5, - 0x2CEB, - 0x2CF4, - 0x2D00, - 0x2D26, 0x2D27, 0x2D28, 0x2D2D, 0x2D2E, - 0x2D30, - 0x2D68, - 0x2D6F, - 0x2D70, - 0x2D7F, + 0x2D80, 0x2D97, 0x2DA0, 0x2DA7, @@ -251252,98 +274203,52 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */ 0x2DD7, 0x2DD8, 0x2DDF, - 0x2DE0, - 0x2E00, 0x3005, 0x3008, - 0x3021, - 0x3030, - 0x3031, - 0x3036, - 0x3038, - 0x303D, 0x3041, 0x3097, 0x3099, - 0x30A0, + 0x309B, + 0x309D, + 0x309F, 0x30A1, 0x30FB, 0x30FC, - 0x3100, + 0x30FF, 0x3105, + 0x312E, + 0x312F, 0x3130, - 0x3131, - 0x318F, 0x31A0, - 0x31BB, - 0x31F0, - 0x3200, + 0x31C0, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, - 0xA000, - 0xA48D, - 0xA4D0, - 0xA4FE, - 0xA500, - 0xA60D, - 0xA610, - 0xA62C, - 0xA640, - 0xA670, - 0xA674, - 0xA67E, + 0x9FFD, 0xA67F, - 0xA6F2, + 0xA680, 0xA717, 0xA720, - 0xA722, + 0xA788, 0xA789, - 0xA78B, - 0xA7C0, + 0xA78D, + 0xA78E, + 0xA792, + 0xA794, + 0xA7AA, + 0xA7AB, + 0xA7AE, + 0xA7AF, + 0xA7B8, + 0xA7BA, 0xA7C2, - 0xA7C7, - 0xA7F7, - 0xA828, - 0xA840, - 0xA874, - 0xA880, - 0xA8C6, - 0xA8D0, - 0xA8DA, - 0xA8E0, - 0xA8F8, - 0xA8FB, - 0xA8FC, - 0xA8FD, - 0xA92E, - 0xA930, - 0xA954, - 0xA960, - 0xA97D, - 0xA980, - 0xA9C1, - 0xA9CF, - 0xA9DA, - 0xA9E0, + 0xA7CB, + 0xA9E7, 0xA9FF, - 0xAA00, - 0xAA37, - 0xAA40, - 0xAA4E, - 0xAA50, - 0xAA5A, 0xAA60, 0xAA77, 0xAA7A, - 0xAAC3, - 0xAADB, - 0xAADE, - 0xAAE0, - 0xAAF0, - 0xAAF2, - 0xAAF7, + 0xAA80, 0xAB01, 0xAB07, 0xAB09, @@ -251354,638 +274259,442 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */ 0xAB27, 0xAB28, 0xAB2F, - 0xAB30, - 0xAB5B, - 0xAB5C, + 0xAB66, 0xAB68, - 0xAB70, - 0xABEB, - 0xABEC, - 0xABEE, - 0xABF0, - 0xABFA, 0xAC00, 0xD7A4, - 0xD7B0, - 0xD7C7, - 0xD7CB, - 0xD7FC, - 0xF900, - 0xFA6E, - 0xFA70, - 0xFADA, - 0xFB00, - 0xFB07, - 0xFB13, - 0xFB18, - 0xFB1D, - 0xFB29, - 0xFB2A, - 0xFB37, - 0xFB38, - 0xFB3D, - 0xFB3E, - 0xFB3F, - 0xFB40, - 0xFB42, - 0xFB43, - 0xFB45, - 0xFB46, - 0xFBB2, - 0xFBD3, - 0xFD3E, - 0xFD50, - 0xFD90, - 0xFD92, - 0xFDC8, - 0xFDF0, - 0xFDFC, - 0xFE00, - 0xFE10, - 0xFE20, - 0xFE30, - 0xFE33, - 0xFE35, - 0xFE4D, - 0xFE50, - 0xFE70, - 0xFE75, - 0xFE76, - 0xFEFD, - 0xFF10, - 0xFF1A, - 0xFF21, - 0xFF3B, - 0xFF3F, - 0xFF40, - 0xFF41, - 0xFF5B, - 0xFF66, - 0xFFBF, - 0xFFC2, - 0xFFC8, - 0xFFCA, - 0xFFD0, - 0xFFD2, - 0xFFD8, - 0xFFDA, - 0xFFDD, - 0x10000, - 0x1000C, - 0x1000D, - 0x10027, - 0x10028, - 0x1003B, - 0x1003C, - 0x1003E, - 0x1003F, - 0x1004E, - 0x10050, - 0x1005E, - 0x10080, - 0x100FB, - 0x10140, - 0x10175, - 0x101FD, - 0x101FE, - 0x10280, - 0x1029D, - 0x102A0, - 0x102D1, - 0x102E0, - 0x102E1, - 0x10300, - 0x10320, - 0x1032D, - 0x1034B, - 0x10350, - 0x1037B, - 0x10380, - 0x1039E, - 0x103A0, - 0x103C4, - 0x103C8, - 0x103D0, - 0x103D1, - 0x103D6, - 0x10400, - 0x1049E, - 0x104A0, - 0x104AA, - 0x104B0, - 0x104D4, - 0x104D8, - 0x104FC, - 0x10500, - 0x10528, - 0x10530, - 0x10564, - 0x10600, - 0x10737, - 0x10740, - 0x10756, - 0x10760, - 0x10768, - 0x10800, - 0x10806, - 0x10808, - 0x10809, - 0x1080A, - 0x10836, - 0x10837, - 0x10839, - 0x1083C, - 0x1083D, - 0x1083F, - 0x10856, - 0x10860, - 0x10877, - 0x10880, - 0x1089F, - 0x108E0, - 0x108F3, - 0x108F4, - 0x108F6, - 0x10900, - 0x10916, - 0x10920, - 0x1093A, - 0x10980, - 0x109B8, - 0x109BE, - 0x109C0, - 0x10A00, - 0x10A04, - 0x10A05, - 0x10A07, - 0x10A0C, - 0x10A14, - 0x10A15, - 0x10A18, - 0x10A19, - 0x10A36, - 0x10A38, - 0x10A3B, - 0x10A3F, - 0x10A40, - 0x10A60, - 0x10A7D, - 0x10A80, - 0x10A9D, - 0x10AC0, - 0x10AC8, - 0x10AC9, - 0x10AE7, - 0x10B00, - 0x10B36, - 0x10B40, - 0x10B56, - 0x10B60, - 0x10B73, - 0x10B80, - 0x10B92, - 0x10C00, - 0x10C49, - 0x10C80, - 0x10CB3, - 0x10CC0, - 0x10CF3, - 0x10D00, - 0x10D28, - 0x10D30, - 0x10D3A, - 0x10F00, - 0x10F1D, - 0x10F27, - 0x10F28, - 0x10F30, - 0x10F51, - 0x10FE0, - 0x10FF7, - 0x11000, - 0x11047, - 0x11066, - 0x11070, - 0x1107F, - 0x110BB, - 0x110D0, - 0x110E9, - 0x110F0, - 0x110FA, - 0x11100, - 0x11135, - 0x11136, - 0x11140, - 0x11144, - 0x11147, - 0x11150, - 0x11174, - 0x11176, - 0x11177, - 0x11180, - 0x111C5, - 0x111C9, - 0x111CD, - 0x111D0, - 0x111DB, - 0x111DC, - 0x111DD, - 0x11200, - 0x11212, - 0x11213, - 0x11238, - 0x1123E, - 0x1123F, - 0x11280, - 0x11287, - 0x11288, - 0x11289, - 0x1128A, - 0x1128E, - 0x1128F, - 0x1129E, - 0x1129F, - 0x112A9, - 0x112B0, - 0x112EB, - 0x112F0, - 0x112FA, - 0x11300, + 0xFA0E, + 0xFA10, + 0xFA11, + 0xFA12, + 0xFA13, + 0xFA15, + 0xFA1F, + 0xFA20, + 0xFA21, + 0xFA22, + 0xFA23, + 0xFA25, + 0xFA27, + 0xFA2A, + 0x11301, + 0x11302, + 0x11303, 0x11304, - 0x11305, - 0x1130D, - 0x1130F, - 0x11311, - 0x11313, - 0x11329, - 0x1132A, - 0x11331, - 0x11332, - 0x11334, - 0x11335, - 0x1133A, 0x1133B, - 0x11345, - 0x11347, - 0x11349, - 0x1134B, - 0x1134E, - 0x11350, - 0x11351, - 0x11357, - 0x11358, - 0x1135D, - 0x11364, - 0x11366, - 0x1136D, - 0x11370, - 0x11375, - 0x11400, - 0x1144B, - 0x11450, - 0x1145A, - 0x1145E, - 0x11460, - 0x11480, - 0x114C6, - 0x114C7, - 0x114C8, - 0x114D0, - 0x114DA, - 0x11580, - 0x115B6, - 0x115B8, - 0x115C1, - 0x115D8, - 0x115DE, - 0x11600, - 0x11641, - 0x11644, - 0x11645, - 0x11650, - 0x1165A, - 0x11680, - 0x116B9, - 0x116C0, - 0x116CA, - 0x11700, - 0x1171B, - 0x1171D, - 0x1172C, - 0x11730, - 0x1173A, - 0x11800, - 0x1183B, - 0x118A0, - 0x118EA, - 0x118FF, - 0x11900, - 0x119A0, - 0x119A8, - 0x119AA, - 0x119D8, - 0x119DA, - 0x119E2, - 0x119E3, - 0x119E5, - 0x11A00, - 0x11A3F, - 0x11A47, - 0x11A48, - 0x11A50, - 0x11A9A, - 0x11A9D, - 0x11A9E, - 0x11AC0, - 0x11AF9, - 0x11C00, - 0x11C09, - 0x11C0A, - 0x11C37, - 0x11C38, - 0x11C41, - 0x11C50, - 0x11C5A, - 0x11C72, - 0x11C90, - 0x11C92, - 0x11CA8, - 0x11CA9, - 0x11CB7, - 0x11D00, - 0x11D07, - 0x11D08, - 0x11D0A, - 0x11D0B, - 0x11D37, - 0x11D3A, - 0x11D3B, - 0x11D3C, - 0x11D3E, - 0x11D3F, - 0x11D48, - 0x11D50, - 0x11D5A, - 0x11D60, - 0x11D66, - 0x11D67, - 0x11D69, - 0x11D6A, - 0x11D8F, - 0x11D90, - 0x11D92, - 0x11D93, - 0x11D99, - 0x11DA0, - 0x11DAA, - 0x11EE0, - 0x11EF7, - 0x12000, - 0x1239A, - 0x12400, - 0x1246F, - 0x12480, - 0x12544, - 0x13000, - 0x1342F, - 0x14400, - 0x14647, - 0x16800, - 0x16A39, + 0x1133D, + 0x16FF0, + 0x16FF2, + 0x1B150, + 0x1B153, + 0x1B164, + 0x1B168, + 0x20000, + 0x2A6DE, + 0x2A700, + 0x2B735, + 0x2B740, + 0x2B81E, + 0x2B820, + 0x2CEA2, + 0x2CEB0, + 0x2EBE1, + 0x30000, + 0x3134B +}; + +# endif /* EBCDIC 037 */ + +static const UV UNI_IDENTIFIERTYPE__TECHNICAL_invlist[] = { /* for all charsets */ + 191, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x180, + 0x181, + 0x18D, + 0x18E, + 0x1AA, + 0x1AC, + 0x1BA, + 0x1BC, + 0x1BE, + 0x1BF, + 0x1C0, + 0x1C4, + 0x234, + 0x237, + 0x250, + 0x259, + 0x25A, + 0x2B0, + 0x2B9, + 0x2BB, + 0x2BD, + 0x2C2, + 0x2C6, + 0x2D2, + 0x2EE, + 0x2EF, + 0x30E, + 0x30F, + 0x312, + 0x313, + 0x315, + 0x316, + 0x317, + 0x31B, + 0x31C, + 0x321, + 0x329, + 0x32D, + 0x32F, + 0x330, + 0x333, + 0x334, + 0x337, + 0x338, + 0x33A, + 0x340, + 0x346, + 0x34F, + 0x350, + 0x358, + 0x359, + 0x363, + 0x3CF, + 0x3D0, + 0x3D7, + 0x3D8, + 0x3F3, + 0x3F4, + 0x484, + 0x488, + 0x560, + 0x561, + 0x588, + 0x589, + 0x5C7, + 0x5C8, + 0x740, + 0x74B, + 0x953, + 0x955, + 0xD04, + 0xD05, + 0xD81, + 0xD82, + 0xD8F, + 0xD91, + 0xDA6, + 0xDA7, + 0xDDF, + 0xDE0, + 0xDF3, + 0xDF4, + 0xF18, + 0xF1A, + 0x17CB, + 0x17D2, + 0x17DD, + 0x17DE, + 0x1ABF, + 0x1AC1, + 0x1D00, + 0x1D2C, + 0x1D2F, + 0x1D30, + 0x1D3B, + 0x1D3C, + 0x1D4E, + 0x1D4F, + 0x1D6B, + 0x1D78, + 0x1D79, + 0x1D9B, + 0x1DC0, + 0x1DFA, + 0x1DFB, + 0x1E00, + 0x1E9C, + 0x1E9E, + 0x1E9F, + 0x1EA0, + 0x1EFA, + 0x1F00, + 0x203F, + 0x2041, + 0x20D0, + 0x20F1, + 0x2118, + 0x2119, + 0x212E, + 0x212F, + 0x2180, + 0x2184, + 0x24EB, + 0x2500, + 0x2800, + 0x2900, + 0x2C60, + 0x2C68, + 0x2C77, + 0x2C7C, + 0x2CF0, + 0x2CF2, + 0x2E00, + 0x2E0E, + 0x3021, + 0x3030, + 0x3031, + 0x3036, + 0x303B, + 0x303D, + 0x31F0, + 0x3200, + 0x327F, + 0x3280, + 0x4DC0, + 0x4E00, + 0xA708, + 0xA717, + 0xA722, + 0xA730, + 0xA78E, + 0xA78F, + 0xA7AF, + 0xA7B0, + 0xA7BA, + 0xA7C0, + 0xA7FA, + 0xA7FB, + 0xAB68, + 0xAB69, + 0xFB1E, + 0xFB1F, + 0xFBB2, + 0xFBC2, + 0xFD3E, + 0xFD40, + 0xFDFD, + 0xFDFE, + 0xFE20, + 0xFE30, + 0xFE45, + 0xFE47, + 0xFE73, + 0xFE74, + 0x1D000, + 0x1D0F6, + 0x1D100, + 0x1D127, + 0x1D129, + 0x1D15E, + 0x1D165, + 0x1D173, + 0x1D17B, + 0x1D1BB, + 0x1D1C1, + 0x1D1E9, + 0x1D242, + 0x1D245, + 0x1D300, + 0x1D357 +}; + +static const UV UNI_IDENTIFIERTYPE__UNCOMMONUSE_invlist[] = { /* for all charsets */ + 153, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x181, + 0x18D, + 0x18E, + 0x18F, + 0x190, + 0x1A0, + 0x1A2, + 0x1AA, + 0x1AC, + 0x1AF, + 0x1B1, + 0x1B9, + 0x1BC, + 0x1BE, + 0x1DD, + 0x1DE, + 0x1E4, + 0x1E6, + 0x220, + 0x226, + 0x237, + 0x250, + 0x253, + 0x255, + 0x256, + 0x258, + 0x25B, + 0x25C, + 0x263, + 0x264, + 0x268, + 0x26A, + 0x272, + 0x273, + 0x289, + 0x28A, + 0x292, + 0x293, + 0x305, + 0x306, + 0x30D, + 0x30E, + 0x316, + 0x317, + 0x321, + 0x323, + 0x332, + 0x333, + 0x334, + 0x335, + 0x336, + 0x337, + 0x358, + 0x359, + 0x591, + 0x5B4, + 0x5B5, + 0x5BE, + 0x5BF, + 0x5C0, + 0x5C1, + 0x5C3, + 0x5C4, + 0x5C6, + 0x5C7, + 0x5C8, + 0x610, + 0x61B, + 0x656, + 0x660, + 0x6D6, + 0x6DD, + 0x6DF, + 0x6E5, + 0x6E7, + 0x6E9, + 0x6EA, + 0x6EE, + 0x8B3, + 0x8B5, + 0x8D3, + 0x8E2, + 0x8E3, + 0x901, + 0x955, + 0x956, + 0xA51, + 0xA52, + 0xA75, + 0xA76, + 0xAF9, + 0xAFA, + 0xB44, + 0xB45, + 0xB62, + 0xB64, + 0xC5A, + 0xC5B, + 0xC62, + 0xC64, + 0xD44, + 0xD45, + 0xD62, + 0xD64, + 0xD8F, + 0xD91, + 0xDA6, + 0xDA7, + 0xDDF, + 0xDE0, + 0xDF3, + 0xDF4, + 0xF39, + 0xF3A, + 0x18A9, + 0x18AA, + 0x2054, + 0x2055, + 0x218A, + 0x218C, + 0x2BEC, + 0x2BF0, + 0x2C68, + 0x2C6D, + 0xA66F, + 0xA670, + 0xA67C, + 0xA67E, + 0xA69E, + 0xA69F, + 0xA78B, + 0xA78D, + 0xA78F, + 0xA790, + 0xA7B2, + 0xA7B8, + 0xA8FC, + 0xA8FE, + 0xAB60, + 0xAB64, + 0xFB1E, + 0xFB1F, + 0xFE2E, + 0xFE30, 0x16A40, 0x16A5F, 0x16A60, 0x16A6A, - 0x16AD0, - 0x16AEE, - 0x16AF0, - 0x16AF5, - 0x16B00, - 0x16B37, - 0x16B40, - 0x16B44, - 0x16B50, - 0x16B5A, - 0x16B63, - 0x16B78, - 0x16B7D, - 0x16B90, - 0x16E40, - 0x16E80, - 0x16F00, - 0x16F4B, - 0x16F4F, - 0x16F88, - 0x16F8F, - 0x16FA0, - 0x16FE0, - 0x16FE2, - 0x16FE3, + 0x1D1DE, + 0x1D1E9, + 0x1F54F, + 0x1F550 +}; + +static const UV UNI_IDEO_invlist[] = { /* for all charsets */ + 39, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x3006, + 0x3008, + 0x3021, + 0x302A, + 0x3038, + 0x303B, + 0x3400, + 0x4DC0, + 0x4E00, + 0x9FFD, + 0xF900, + 0xFA6E, + 0xFA70, + 0xFADA, 0x16FE4, + 0x16FE5, 0x17000, 0x187F8, 0x18800, - 0x18AF3, - 0x1B000, - 0x1B11F, - 0x1B150, - 0x1B153, - 0x1B164, - 0x1B168, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B170, 0x1B2FC, - 0x1BC00, - 0x1BC6B, - 0x1BC70, - 0x1BC7D, - 0x1BC80, - 0x1BC89, - 0x1BC90, - 0x1BC9A, - 0x1BC9D, - 0x1BC9F, - 0x1D165, - 0x1D16A, - 0x1D16D, - 0x1D173, - 0x1D17B, - 0x1D183, - 0x1D185, - 0x1D18C, - 0x1D1AA, - 0x1D1AE, - 0x1D242, - 0x1D245, - 0x1D400, - 0x1D455, - 0x1D456, - 0x1D49D, - 0x1D49E, - 0x1D4A0, - 0x1D4A2, - 0x1D4A3, - 0x1D4A5, - 0x1D4A7, - 0x1D4A9, - 0x1D4AD, - 0x1D4AE, - 0x1D4BA, - 0x1D4BB, - 0x1D4BC, - 0x1D4BD, - 0x1D4C4, - 0x1D4C5, - 0x1D506, - 0x1D507, - 0x1D50B, - 0x1D50D, - 0x1D515, - 0x1D516, - 0x1D51D, - 0x1D51E, - 0x1D53A, - 0x1D53B, - 0x1D53F, - 0x1D540, - 0x1D545, - 0x1D546, - 0x1D547, - 0x1D54A, - 0x1D551, - 0x1D552, - 0x1D6A6, - 0x1D6A8, - 0x1D6C1, - 0x1D6C2, - 0x1D6DB, - 0x1D6DC, - 0x1D6FB, - 0x1D6FC, - 0x1D715, - 0x1D716, - 0x1D735, - 0x1D736, - 0x1D74F, - 0x1D750, - 0x1D76F, - 0x1D770, - 0x1D789, - 0x1D78A, - 0x1D7A9, - 0x1D7AA, - 0x1D7C3, - 0x1D7C4, - 0x1D7CC, - 0x1D7CE, - 0x1D800, - 0x1DA00, - 0x1DA37, - 0x1DA3B, - 0x1DA6D, - 0x1DA75, - 0x1DA76, - 0x1DA84, - 0x1DA85, - 0x1DA9B, - 0x1DAA0, - 0x1DAA1, - 0x1DAB0, - 0x1E000, - 0x1E007, - 0x1E008, - 0x1E019, - 0x1E01B, - 0x1E022, - 0x1E023, - 0x1E025, - 0x1E026, - 0x1E02B, - 0x1E100, - 0x1E12D, - 0x1E130, - 0x1E13E, - 0x1E140, - 0x1E14A, - 0x1E14E, - 0x1E14F, - 0x1E2C0, - 0x1E2FA, - 0x1E800, - 0x1E8C5, - 0x1E8D0, - 0x1E8D7, - 0x1E900, - 0x1E94C, - 0x1E950, - 0x1E95A, - 0x1EE00, - 0x1EE04, - 0x1EE05, - 0x1EE20, - 0x1EE21, - 0x1EE23, - 0x1EE24, - 0x1EE25, - 0x1EE27, - 0x1EE28, - 0x1EE29, - 0x1EE33, - 0x1EE34, - 0x1EE38, - 0x1EE39, - 0x1EE3A, - 0x1EE3B, - 0x1EE3C, - 0x1EE42, - 0x1EE43, - 0x1EE47, - 0x1EE48, - 0x1EE49, - 0x1EE4A, - 0x1EE4B, - 0x1EE4C, - 0x1EE4D, - 0x1EE50, - 0x1EE51, - 0x1EE53, - 0x1EE54, - 0x1EE55, - 0x1EE57, - 0x1EE58, - 0x1EE59, - 0x1EE5A, - 0x1EE5B, - 0x1EE5C, - 0x1EE5D, - 0x1EE5E, - 0x1EE5F, - 0x1EE60, - 0x1EE61, - 0x1EE63, - 0x1EE64, - 0x1EE65, - 0x1EE67, - 0x1EE6B, - 0x1EE6C, - 0x1EE73, - 0x1EE74, - 0x1EE78, - 0x1EE79, - 0x1EE7D, - 0x1EE7E, - 0x1EE7F, - 0x1EE80, - 0x1EE8A, - 0x1EE8B, - 0x1EE9C, - 0x1EEA1, - 0x1EEA4, - 0x1EEA5, - 0x1EEAA, - 0x1EEAB, - 0x1EEBC, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -251996,64 +274705,43 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */ 0x2EBE1, 0x2F800, 0x2FA1E, - 0xE0100, - 0xE01F0 + 0x30000, + 0x3134B }; -# endif /* EBCDIC 1047 */ +static const UV UNI_IDEOGRAPHICSYMBOLS_invlist[] = { /* for all charsets */ + 3, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x16FE0, + 0x17000 +}; -# if 'A' == 193 /* EBCDIC 037 */ \ - && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \ - && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \ - && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 +# if 'A' == 65 /* ASCII/Latin1 */ -static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */ - 1447, /* Number of elements */ +static const UV UNI_IDS_invlist[] = { /* for ASCII/Latin1 */ + 1245, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ 0x0, - 0x42, - 0x4A, - 0x51, - 0x5A, - 0x62, - 0x6A, - 0x6D, - 0x6E, - 0x70, - 0x79, - 0x80, - 0x8A, - 0x8C, - 0x8F, - 0x91, - 0x9D, - 0x9E, - 0x9F, - 0xA0, - 0xA1, - 0xA2, + 0x41, + 0x5B, + 0x61, + 0x7B, 0xAA, - 0xAC, - 0xAF, - 0xB3, - 0xB4, - 0xC1, - 0xCA, - 0xCB, - 0xD0, - 0xD1, - 0xDA, - 0xDB, - 0xE0, - 0xE2, - 0xEA, - 0xEB, - 0xFA, - 0xFB, - 0xFF, - 0x100, + 0xAB, + 0xB5, + 0xB6, + 0xBA, + 0xBB, + 0xC0, + 0xD7, + 0xD8, + 0xF7, + 0xF8, 0x2C2, 0x2C6, 0x2D2, @@ -252063,7 +274751,7 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */ 0x2ED, 0x2EE, 0x2EF, - 0x300, + 0x370, 0x375, 0x376, 0x378, @@ -252072,6 +274760,8 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */ 0x37F, 0x380, 0x386, + 0x387, + 0x388, 0x38B, 0x38C, 0x38D, @@ -252081,8 +274771,6 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */ 0x3F6, 0x3F7, 0x482, - 0x483, - 0x488, 0x48A, 0x530, 0x531, @@ -252091,62 +274779,66 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */ 0x55A, 0x560, 0x589, - 0x591, - 0x5BE, - 0x5BF, - 0x5C0, - 0x5C1, - 0x5C3, - 0x5C4, - 0x5C6, - 0x5C7, - 0x5C8, 0x5D0, 0x5EB, 0x5EF, 0x5F3, - 0x610, - 0x61B, 0x620, - 0x66A, + 0x64B, 0x66E, + 0x670, + 0x671, 0x6D4, 0x6D5, - 0x6DD, - 0x6DF, - 0x6E9, - 0x6EA, + 0x6D6, + 0x6E5, + 0x6E7, + 0x6EE, + 0x6F0, + 0x6FA, 0x6FD, 0x6FF, 0x700, 0x710, - 0x74B, + 0x711, + 0x712, + 0x730, 0x74D, + 0x7A6, + 0x7B1, 0x7B2, - 0x7C0, + 0x7CA, + 0x7EB, + 0x7F4, 0x7F6, 0x7FA, 0x7FB, - 0x7FD, - 0x7FE, 0x800, - 0x82E, + 0x816, + 0x81A, + 0x81B, + 0x824, + 0x825, + 0x828, + 0x829, 0x840, - 0x85C, + 0x859, 0x860, 0x86B, 0x8A0, 0x8B5, 0x8B6, - 0x8BE, - 0x8D3, - 0x8E2, - 0x8E3, - 0x964, - 0x966, - 0x970, + 0x8C8, + 0x904, + 0x93A, + 0x93D, + 0x93E, + 0x950, + 0x951, + 0x958, + 0x962, 0x971, - 0x984, + 0x981, 0x985, 0x98D, 0x98F, @@ -252159,26 +274851,18 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */ 0x9B3, 0x9B6, 0x9BA, - 0x9BC, - 0x9C5, - 0x9C7, - 0x9C9, - 0x9CB, + 0x9BD, + 0x9BE, + 0x9CE, 0x9CF, - 0x9D7, - 0x9D8, 0x9DC, 0x9DE, 0x9DF, - 0x9E4, - 0x9E6, + 0x9E2, + 0x9F0, 0x9F2, 0x9FC, 0x9FD, - 0x9FE, - 0x9FF, - 0xA01, - 0xA04, 0xA05, 0xA0B, 0xA0F, @@ -252193,24 +274877,12 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */ 0xA37, 0xA38, 0xA3A, - 0xA3C, - 0xA3D, - 0xA3E, - 0xA43, - 0xA47, - 0xA49, - 0xA4B, - 0xA4E, - 0xA51, - 0xA52, 0xA59, 0xA5D, 0xA5E, 0xA5F, - 0xA66, - 0xA76, - 0xA81, - 0xA84, + 0xA72, + 0xA75, 0xA85, 0xA8E, 0xA8F, @@ -252223,22 +274895,14 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */ 0xAB4, 0xAB5, 0xABA, - 0xABC, - 0xAC6, - 0xAC7, - 0xACA, - 0xACB, - 0xACE, + 0xABD, + 0xABE, 0xAD0, 0xAD1, 0xAE0, - 0xAE4, - 0xAE6, - 0xAF0, + 0xAE2, 0xAF9, - 0xB00, - 0xB01, - 0xB04, + 0xAFA, 0xB05, 0xB0D, 0xB0F, @@ -252251,23 +274915,15 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */ 0xB34, 0xB35, 0xB3A, - 0xB3C, - 0xB45, - 0xB47, - 0xB49, - 0xB4B, - 0xB4E, - 0xB56, - 0xB58, + 0xB3D, + 0xB3E, 0xB5C, 0xB5E, 0xB5F, - 0xB64, - 0xB66, - 0xB70, + 0xB62, 0xB71, 0xB72, - 0xB82, + 0xB83, 0xB84, 0xB85, 0xB8B, @@ -252287,19 +274943,9 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */ 0xBAB, 0xBAE, 0xBBA, - 0xBBE, - 0xBC3, - 0xBC6, - 0xBC9, - 0xBCA, - 0xBCE, 0xBD0, 0xBD1, - 0xBD7, - 0xBD8, - 0xBE6, - 0xBF0, - 0xC00, + 0xC05, 0xC0D, 0xC0E, 0xC11, @@ -252308,21 +274954,13 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */ 0xC2A, 0xC3A, 0xC3D, - 0xC45, - 0xC46, - 0xC49, - 0xC4A, - 0xC4E, - 0xC55, - 0xC57, + 0xC3E, 0xC58, 0xC5B, 0xC60, - 0xC64, - 0xC66, - 0xC70, + 0xC62, 0xC80, - 0xC84, + 0xC81, 0xC85, 0xC8D, 0xC8E, @@ -252333,44 +274971,30 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */ 0xCB4, 0xCB5, 0xCBA, - 0xCBC, - 0xCC5, - 0xCC6, - 0xCC9, - 0xCCA, - 0xCCE, - 0xCD5, - 0xCD7, + 0xCBD, + 0xCBE, 0xCDE, 0xCDF, 0xCE0, - 0xCE4, - 0xCE6, - 0xCF0, + 0xCE2, 0xCF1, 0xCF3, - 0xD00, 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, 0xD12, - 0xD45, - 0xD46, - 0xD49, - 0xD4A, + 0xD3B, + 0xD3D, + 0xD3E, + 0xD4E, 0xD4F, 0xD54, - 0xD58, + 0xD57, 0xD5F, - 0xD64, - 0xD66, - 0xD70, + 0xD62, 0xD7A, 0xD80, - 0xD82, - 0xD84, 0xD85, 0xD97, 0xD9A, @@ -252381,24 +275005,12 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */ 0xDBE, 0xDC0, 0xDC7, - 0xDCA, - 0xDCB, - 0xDCF, - 0xDD5, - 0xDD6, - 0xDD7, - 0xDD8, - 0xDE0, - 0xDE6, - 0xDF0, - 0xDF2, - 0xDF4, 0xE01, - 0xE3B, + 0xE31, + 0xE32, + 0xE34, 0xE40, - 0xE4F, - 0xE50, - 0xE5A, + 0xE47, 0xE81, 0xE83, 0xE84, @@ -252410,45 +275022,43 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */ 0xEA5, 0xEA6, 0xEA7, + 0xEB1, + 0xEB2, + 0xEB4, + 0xEBD, 0xEBE, 0xEC0, 0xEC5, 0xEC6, 0xEC7, - 0xEC8, - 0xECE, - 0xED0, - 0xEDA, 0xEDC, 0xEE0, 0xF00, 0xF01, - 0xF18, - 0xF1A, - 0xF20, - 0xF2A, - 0xF35, - 0xF36, - 0xF37, - 0xF38, - 0xF39, - 0xF3A, - 0xF3E, + 0xF40, 0xF48, 0xF49, 0xF6D, - 0xF71, - 0xF85, - 0xF86, - 0xF98, - 0xF99, - 0xFBD, - 0xFC6, - 0xFC7, + 0xF88, + 0xF8D, 0x1000, - 0x104A, + 0x102B, + 0x103F, + 0x1040, 0x1050, - 0x109E, + 0x1056, + 0x105A, + 0x105E, + 0x1061, + 0x1062, + 0x1065, + 0x1067, + 0x106E, + 0x1071, + 0x1075, + 0x1082, + 0x108E, + 0x108F, 0x10A0, 0x10C6, 0x10C7, @@ -252489,10 +275099,6 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */ 0x1316, 0x1318, 0x135B, - 0x135D, - 0x1360, - 0x1369, - 0x1372, 0x1380, 0x1390, 0x13A0, @@ -252512,42 +275118,32 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */ 0x1700, 0x170D, 0x170E, - 0x1715, + 0x1712, 0x1720, - 0x1735, + 0x1732, 0x1740, - 0x1754, + 0x1752, 0x1760, 0x176D, 0x176E, 0x1771, - 0x1772, - 0x1774, 0x1780, - 0x17D4, + 0x17B4, 0x17D7, 0x17D8, 0x17DC, - 0x17DE, - 0x17E0, - 0x17EA, - 0x180B, - 0x180E, - 0x1810, - 0x181A, + 0x17DD, 0x1820, 0x1879, 0x1880, + 0x18A9, + 0x18AA, 0x18AB, 0x18B0, 0x18F6, 0x1900, 0x191F, - 0x1920, - 0x192C, - 0x1930, - 0x193C, - 0x1946, + 0x1950, 0x196E, 0x1970, 0x1975, @@ -252555,35 +275151,27 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */ 0x19AC, 0x19B0, 0x19CA, - 0x19D0, - 0x19DB, 0x1A00, - 0x1A1C, + 0x1A17, 0x1A20, - 0x1A5F, - 0x1A60, - 0x1A7D, - 0x1A7F, - 0x1A8A, - 0x1A90, - 0x1A9A, + 0x1A55, 0x1AA7, 0x1AA8, - 0x1AB0, - 0x1ABE, - 0x1B00, + 0x1B05, + 0x1B34, + 0x1B45, 0x1B4C, - 0x1B50, - 0x1B5A, - 0x1B6B, - 0x1B74, - 0x1B80, - 0x1BF4, + 0x1B83, + 0x1BA1, + 0x1BAE, + 0x1BB0, + 0x1BBA, + 0x1BE6, 0x1C00, - 0x1C38, - 0x1C40, - 0x1C4A, + 0x1C24, 0x1C4D, + 0x1C50, + 0x1C5A, 0x1C7E, 0x1C80, 0x1C89, @@ -252591,13 +275179,17 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */ 0x1CBB, 0x1CBD, 0x1CC0, - 0x1CD0, - 0x1CD3, - 0x1CD4, + 0x1CE9, + 0x1CED, + 0x1CEE, + 0x1CF4, + 0x1CF5, + 0x1CF7, + 0x1CFA, 0x1CFB, 0x1D00, - 0x1DFA, - 0x1DFB, + 0x1DC0, + 0x1E00, 0x1F16, 0x1F18, 0x1F1E, @@ -252635,22 +275227,12 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */ 0x1FF5, 0x1FF6, 0x1FFD, - 0x203F, - 0x2041, - 0x2054, - 0x2055, 0x2071, 0x2072, 0x207F, 0x2080, 0x2090, 0x209D, - 0x20D0, - 0x20DD, - 0x20E1, - 0x20E2, - 0x20E5, - 0x20F1, 0x2102, 0x2103, 0x2107, @@ -252684,6 +275266,8 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */ 0x2C60, 0x2CE5, 0x2CEB, + 0x2CEF, + 0x2CF2, 0x2CF4, 0x2D00, 0x2D26, @@ -252695,7 +275279,7 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */ 0x2D68, 0x2D6F, 0x2D70, - 0x2D7F, + 0x2D80, 0x2D97, 0x2DA0, 0x2DA7, @@ -252713,19 +275297,17 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */ 0x2DD7, 0x2DD8, 0x2DDF, - 0x2DE0, - 0x2E00, 0x3005, 0x3008, 0x3021, - 0x3030, + 0x302A, 0x3031, 0x3036, 0x3038, 0x303D, 0x3041, 0x3097, - 0x3099, + 0x309B, 0x30A0, 0x30A1, 0x30FB, @@ -252736,13 +275318,13 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA4D0, @@ -252750,13 +275332,15 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */ 0xA500, 0xA60D, 0xA610, + 0xA620, + 0xA62A, 0xA62C, 0xA640, - 0xA670, - 0xA674, - 0xA67E, + 0xA66F, 0xA67F, - 0xA6F2, + 0xA69E, + 0xA6A0, + 0xA6F0, 0xA717, 0xA720, 0xA722, @@ -252764,47 +275348,69 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */ 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, - 0xA828, + 0xA7CB, + 0xA7F5, + 0xA802, + 0xA803, + 0xA806, + 0xA807, + 0xA80B, + 0xA80C, + 0xA823, 0xA840, 0xA874, - 0xA880, - 0xA8C6, - 0xA8D0, - 0xA8DA, - 0xA8E0, + 0xA882, + 0xA8B4, + 0xA8F2, 0xA8F8, 0xA8FB, 0xA8FC, 0xA8FD, - 0xA92E, + 0xA8FF, + 0xA90A, + 0xA926, 0xA930, - 0xA954, + 0xA947, 0xA960, 0xA97D, - 0xA980, - 0xA9C1, + 0xA984, + 0xA9B3, 0xA9CF, - 0xA9DA, + 0xA9D0, 0xA9E0, + 0xA9E5, + 0xA9E6, + 0xA9F0, + 0xA9FA, 0xA9FF, 0xAA00, - 0xAA37, + 0xAA29, 0xAA40, - 0xAA4E, - 0xAA50, - 0xAA5A, + 0xAA43, + 0xAA44, + 0xAA4C, 0xAA60, 0xAA77, 0xAA7A, + 0xAA7B, + 0xAA7E, + 0xAAB0, + 0xAAB1, + 0xAAB2, + 0xAAB5, + 0xAAB7, + 0xAAB9, + 0xAABE, + 0xAAC0, + 0xAAC1, + 0xAAC2, 0xAAC3, 0xAADB, 0xAADE, 0xAAE0, - 0xAAF0, + 0xAAEB, 0xAAF2, - 0xAAF7, + 0xAAF5, 0xAB01, 0xAB07, 0xAB09, @@ -252818,13 +275424,9 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */ 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB6A, 0xAB70, - 0xABEB, - 0xABEC, - 0xABEE, - 0xABF0, - 0xABFA, + 0xABE3, 0xAC00, 0xD7A4, 0xD7B0, @@ -252840,6 +275442,8 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */ 0xFB13, 0xFB18, 0xFB1D, + 0xFB1E, + 0xFB1F, 0xFB29, 0xFB2A, 0xFB37, @@ -252861,24 +275465,12 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */ 0xFDC8, 0xFDF0, 0xFDFC, - 0xFE00, - 0xFE10, - 0xFE20, - 0xFE30, - 0xFE33, - 0xFE35, - 0xFE4D, - 0xFE50, 0xFE70, 0xFE75, 0xFE76, 0xFEFD, - 0xFF10, - 0xFF1A, 0xFF21, 0xFF3B, - 0xFF3F, - 0xFF40, 0xFF41, 0xFF5B, 0xFF66, @@ -252907,20 +275499,16 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */ 0x100FB, 0x10140, 0x10175, - 0x101FD, - 0x101FE, 0x10280, 0x1029D, 0x102A0, 0x102D1, - 0x102E0, - 0x102E1, 0x10300, 0x10320, 0x1032D, 0x1034B, 0x10350, - 0x1037B, + 0x10376, 0x10380, 0x1039E, 0x103A0, @@ -252931,8 +275519,6 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */ 0x103D6, 0x10400, 0x1049E, - 0x104A0, - 0x104AA, 0x104B0, 0x104D4, 0x104D8, @@ -252976,19 +275562,13 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */ 0x109BE, 0x109C0, 0x10A00, - 0x10A04, - 0x10A05, - 0x10A07, - 0x10A0C, + 0x10A01, + 0x10A10, 0x10A14, 0x10A15, 0x10A18, 0x10A19, 0x10A36, - 0x10A38, - 0x10A3B, - 0x10A3F, - 0x10A40, 0x10A60, 0x10A7D, 0x10A80, @@ -252996,7 +275576,7 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */ 0x10AC0, 0x10AC8, 0x10AC9, - 0x10AE7, + 0x10AE5, 0x10B00, 0x10B36, 0x10B40, @@ -253012,51 +275592,49 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */ 0x10CC0, 0x10CF3, 0x10D00, - 0x10D28, - 0x10D30, - 0x10D3A, + 0x10D24, + 0x10E80, + 0x10EAA, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, 0x10F28, 0x10F30, - 0x10F51, + 0x10F46, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, - 0x11000, - 0x11047, - 0x11066, - 0x11070, - 0x1107F, - 0x110BB, + 0x11003, + 0x11038, + 0x11083, + 0x110B0, 0x110D0, 0x110E9, - 0x110F0, - 0x110FA, - 0x11100, - 0x11135, - 0x11136, - 0x11140, + 0x11103, + 0x11127, 0x11144, + 0x11145, 0x11147, + 0x11148, 0x11150, - 0x11174, + 0x11173, 0x11176, 0x11177, - 0x11180, + 0x11183, + 0x111B3, + 0x111C1, 0x111C5, - 0x111C9, - 0x111CD, - 0x111D0, + 0x111DA, 0x111DB, 0x111DC, 0x111DD, 0x11200, 0x11212, 0x11213, - 0x11238, - 0x1123E, - 0x1123F, + 0x1122C, 0x11280, 0x11287, 0x11288, @@ -253068,11 +275646,7 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */ 0x1129F, 0x112A9, 0x112B0, - 0x112EB, - 0x112F0, - 0x112FA, - 0x11300, - 0x11304, + 0x112DF, 0x11305, 0x1130D, 0x1130F, @@ -253085,76 +275659,74 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */ 0x11334, 0x11335, 0x1133A, - 0x1133B, - 0x11345, - 0x11347, - 0x11349, - 0x1134B, - 0x1134E, + 0x1133D, + 0x1133E, 0x11350, 0x11351, - 0x11357, - 0x11358, 0x1135D, - 0x11364, - 0x11366, - 0x1136D, - 0x11370, - 0x11375, + 0x11362, 0x11400, + 0x11435, + 0x11447, 0x1144B, - 0x11450, - 0x1145A, - 0x1145E, - 0x11460, + 0x1145F, + 0x11462, 0x11480, + 0x114B0, + 0x114C4, 0x114C6, 0x114C7, 0x114C8, - 0x114D0, - 0x114DA, 0x11580, - 0x115B6, - 0x115B8, - 0x115C1, + 0x115AF, 0x115D8, - 0x115DE, + 0x115DC, 0x11600, - 0x11641, + 0x11630, 0x11644, 0x11645, - 0x11650, - 0x1165A, 0x11680, + 0x116AB, + 0x116B8, 0x116B9, - 0x116C0, - 0x116CA, 0x11700, 0x1171B, - 0x1171D, - 0x1172C, - 0x11730, - 0x1173A, 0x11800, - 0x1183B, + 0x1182C, 0x118A0, - 0x118EA, + 0x118E0, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11930, + 0x1193F, + 0x11940, + 0x11941, + 0x11942, 0x119A0, 0x119A8, 0x119AA, - 0x119D8, - 0x119DA, + 0x119D1, + 0x119E1, 0x119E2, 0x119E3, - 0x119E5, + 0x119E4, 0x11A00, - 0x11A3F, - 0x11A47, - 0x11A48, + 0x11A01, + 0x11A0B, + 0x11A33, + 0x11A3A, + 0x11A3B, 0x11A50, - 0x11A9A, + 0x11A51, + 0x11A5C, + 0x11A8A, 0x11A9D, 0x11A9E, 0x11AC0, @@ -253162,45 +275734,31 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */ 0x11C00, 0x11C09, 0x11C0A, - 0x11C37, - 0x11C38, + 0x11C2F, + 0x11C40, 0x11C41, - 0x11C50, - 0x11C5A, 0x11C72, 0x11C90, - 0x11C92, - 0x11CA8, - 0x11CA9, - 0x11CB7, 0x11D00, 0x11D07, 0x11D08, 0x11D0A, 0x11D0B, - 0x11D37, - 0x11D3A, - 0x11D3B, - 0x11D3C, - 0x11D3E, - 0x11D3F, - 0x11D48, - 0x11D50, - 0x11D5A, + 0x11D31, + 0x11D46, + 0x11D47, 0x11D60, 0x11D66, 0x11D67, 0x11D69, 0x11D6A, - 0x11D8F, - 0x11D90, - 0x11D92, - 0x11D93, + 0x11D8A, + 0x11D98, 0x11D99, - 0x11DA0, - 0x11DAA, 0x11EE0, - 0x11EF7, + 0x11EF3, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12400, @@ -253215,18 +275773,12 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */ 0x16A39, 0x16A40, 0x16A5F, - 0x16A60, - 0x16A6A, 0x16AD0, 0x16AEE, - 0x16AF0, - 0x16AF5, 0x16B00, - 0x16B37, + 0x16B30, 0x16B40, 0x16B44, - 0x16B50, - 0x16B5A, 0x16B63, 0x16B78, 0x16B7D, @@ -253235,9 +275787,9 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */ 0x16E80, 0x16F00, 0x16F4B, - 0x16F4F, - 0x16F88, - 0x16F8F, + 0x16F50, + 0x16F51, + 0x16F93, 0x16FA0, 0x16FE0, 0x16FE2, @@ -253246,7 +275798,9 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */ 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -253263,20 +275817,6 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */ 0x1BC89, 0x1BC90, 0x1BC9A, - 0x1BC9D, - 0x1BC9F, - 0x1D165, - 0x1D16A, - 0x1D16D, - 0x1D173, - 0x1D17B, - 0x1D183, - 0x1D185, - 0x1D18C, - 0x1D1AA, - 0x1D1AE, - 0x1D242, - 0x1D245, 0x1D400, 0x1D455, 0x1D456, @@ -253337,48 +275877,20 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */ 0x1D7C3, 0x1D7C4, 0x1D7CC, - 0x1D7CE, - 0x1D800, - 0x1DA00, - 0x1DA37, - 0x1DA3B, - 0x1DA6D, - 0x1DA75, - 0x1DA76, - 0x1DA84, - 0x1DA85, - 0x1DA9B, - 0x1DAA0, - 0x1DAA1, - 0x1DAB0, - 0x1E000, - 0x1E007, - 0x1E008, - 0x1E019, - 0x1E01B, - 0x1E022, - 0x1E023, - 0x1E025, - 0x1E026, - 0x1E02B, 0x1E100, 0x1E12D, - 0x1E130, + 0x1E137, 0x1E13E, - 0x1E140, - 0x1E14A, 0x1E14E, 0x1E14F, 0x1E2C0, - 0x1E2FA, + 0x1E2EC, 0x1E800, 0x1E8C5, - 0x1E8D0, - 0x1E8D7, 0x1E900, + 0x1E944, + 0x1E94B, 0x1E94C, - 0x1E950, - 0x1E95A, 0x1EE00, 0x1EE04, 0x1EE05, @@ -253446,7 +275958,7 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */ 0x1EEAB, 0x1EEBC, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -253457,85 +275969,64 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */ 0x2EBE1, 0x2F800, 0x2FA1E, - 0xE0100, - 0xE01F0 -}; - -# endif /* EBCDIC 037 */ - -static const UV UNI_IDEO_invlist[] = { /* for all charsets */ - 33, /* Number of elements */ - 148565664, /* Version and data structure type */ - 1, /* 0 if the list starts at 0; - 1 if it starts at the element beyond 0 */ - 0x0, - 0x3006, - 0x3008, - 0x3021, - 0x302A, - 0x3038, - 0x303B, - 0x3400, - 0x4DB6, - 0x4E00, - 0x9FF0, - 0xF900, - 0xFA6E, - 0xFA70, - 0xFADA, - 0x17000, - 0x187F8, - 0x18800, - 0x18AF3, - 0x1B170, - 0x1B2FC, - 0x20000, - 0x2A6D7, - 0x2A700, - 0x2B735, - 0x2B740, - 0x2B81E, - 0x2B820, - 0x2CEA2, - 0x2CEB0, - 0x2EBE1, - 0x2F800, - 0x2FA1E + 0x30000, + 0x3134B }; -static const UV UNI_IDEOGRAPHICSYMBOLS_invlist[] = { /* for all charsets */ - 3, /* Number of elements */ - 148565664, /* Version and data structure type */ - 1, /* 0 if the list starts at 0; - 1 if it starts at the element beyond 0 */ - 0x0, - 0x16FE0, - 0x17000 -}; +# endif /* ASCII/Latin1 */ -# if 'A' == 65 /* ASCII/Latin1 */ +# if 'A' == 193 /* EBCDIC 1047 */ \ + && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \ + && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \ + && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 -static const UV UNI_IDS_invlist[] = { /* for ASCII/Latin1 */ - 1219, /* Number of elements */ +static const UV UNI_IDS_invlist[] = { /* for EBCDIC 1047 */ + 1271, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ 0x0, - 0x41, - 0x5B, - 0x61, - 0x7B, + 0x42, + 0x4A, + 0x51, + 0x5A, + 0x62, + 0x6A, + 0x70, + 0x79, + 0x80, + 0x8A, + 0x8C, + 0x8F, + 0x91, + 0x9D, + 0x9E, + 0x9F, + 0xA0, + 0xA1, + 0xA2, 0xAA, - 0xAB, - 0xB5, - 0xB6, + 0xAC, + 0xAD, + 0xAE, + 0xAF, 0xBA, 0xBB, - 0xC0, - 0xD7, - 0xD8, - 0xF7, - 0xF8, + 0xC1, + 0xCA, + 0xCB, + 0xD0, + 0xD1, + 0xDA, + 0xDB, + 0xE0, + 0xE2, + 0xEA, + 0xEB, + 0xF0, + 0xFB, + 0xFF, + 0x100, 0x2C2, 0x2C6, 0x2D2, @@ -253622,7 +276113,7 @@ static const UV UNI_IDS_invlist[] = { /* for ASCII/Latin1 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x904, 0x93A, 0x93D, @@ -253773,7 +276264,7 @@ static const UV UNI_IDS_invlist[] = { /* for ASCII/Latin1 */ 0xCE2, 0xCF1, 0xCF3, - 0xD05, + 0xD04, 0xD0D, 0xD0E, 0xD11, @@ -254112,13 +276603,13 @@ static const UV UNI_IDS_invlist[] = { /* for ASCII/Latin1 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA4D0, @@ -254142,8 +276633,8 @@ static const UV UNI_IDS_invlist[] = { /* for ASCII/Latin1 */ 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA802, 0xA803, 0xA806, @@ -254218,7 +276709,7 @@ static const UV UNI_IDS_invlist[] = { /* for ASCII/Latin1 */ 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB6A, 0xAB70, 0xABE3, 0xAC00, @@ -254387,12 +276878,18 @@ static const UV UNI_IDS_invlist[] = { /* for ASCII/Latin1 */ 0x10CF3, 0x10D00, 0x10D24, + 0x10E80, + 0x10EAA, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, 0x10F28, 0x10F30, 0x10F46, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11003, @@ -254405,6 +276902,8 @@ static const UV UNI_IDS_invlist[] = { /* for ASCII/Latin1 */ 0x11127, 0x11144, 0x11145, + 0x11147, + 0x11148, 0x11150, 0x11173, 0x11176, @@ -254456,7 +276955,7 @@ static const UV UNI_IDS_invlist[] = { /* for ASCII/Latin1 */ 0x11447, 0x1144B, 0x1145F, - 0x11460, + 0x11462, 0x11480, 0x114B0, 0x114C4, @@ -254482,7 +276981,19 @@ static const UV UNI_IDS_invlist[] = { /* for ASCII/Latin1 */ 0x118A0, 0x118E0, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11930, + 0x1193F, + 0x11940, + 0x11941, + 0x11942, 0x119A0, 0x119A8, 0x119AA, @@ -254531,6 +277042,8 @@ static const UV UNI_IDS_invlist[] = { /* for ASCII/Latin1 */ 0x11D99, 0x11EE0, 0x11EF3, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12400, @@ -254570,7 +277083,9 @@ static const UV UNI_IDS_invlist[] = { /* for ASCII/Latin1 */ 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -254728,7 +277243,7 @@ static const UV UNI_IDS_invlist[] = { /* for ASCII/Latin1 */ 0x1EEAB, 0x1EEBC, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -254738,18 +277253,20 @@ static const UV UNI_IDS_invlist[] = { /* for ASCII/Latin1 */ 0x2CEB0, 0x2EBE1, 0x2F800, - 0x2FA1E + 0x2FA1E, + 0x30000, + 0x3134B }; -# endif /* ASCII/Latin1 */ +# endif /* EBCDIC 1047 */ -# if 'A' == 193 /* EBCDIC 1047 */ \ - && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \ - && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \ - && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 +# if 'A' == 193 /* EBCDIC 037 */ \ + && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \ + && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \ + && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 -static const UV UNI_IDS_invlist[] = { /* for EBCDIC 1047 */ - 1245, /* Number of elements */ +static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */ + 1267, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -254775,11 +277292,7 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 1047 */ 0xA2, 0xAA, 0xAC, - 0xAD, - 0xAE, 0xAF, - 0xBA, - 0xBB, 0xC1, 0xCA, 0xCB, @@ -254881,7 +277394,7 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 1047 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x904, 0x93A, 0x93D, @@ -255032,7 +277545,7 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 1047 */ 0xCE2, 0xCF1, 0xCF3, - 0xD05, + 0xD04, 0xD0D, 0xD0E, 0xD11, @@ -255371,13 +277884,13 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 1047 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA4D0, @@ -255401,8 +277914,8 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 1047 */ 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA802, 0xA803, 0xA806, @@ -255477,7 +277990,7 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 1047 */ 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB6A, 0xAB70, 0xABE3, 0xAC00, @@ -255646,12 +278159,18 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 1047 */ 0x10CF3, 0x10D00, 0x10D24, + 0x10E80, + 0x10EAA, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, 0x10F28, 0x10F30, 0x10F46, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11003, @@ -255664,6 +278183,8 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 1047 */ 0x11127, 0x11144, 0x11145, + 0x11147, + 0x11148, 0x11150, 0x11173, 0x11176, @@ -255715,7 +278236,7 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 1047 */ 0x11447, 0x1144B, 0x1145F, - 0x11460, + 0x11462, 0x11480, 0x114B0, 0x114C4, @@ -255741,7 +278262,19 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 1047 */ 0x118A0, 0x118E0, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11930, + 0x1193F, + 0x11940, + 0x11941, + 0x11942, 0x119A0, 0x119A8, 0x119AA, @@ -255790,6 +278323,8 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 1047 */ 0x11D99, 0x11EE0, 0x11EF3, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12400, @@ -255829,7 +278364,9 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 1047 */ 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -255987,7 +278524,7 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 1047 */ 0x1EEAB, 0x1EEBC, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -255997,156 +278534,677 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 1047 */ 0x2CEB0, 0x2EBE1, 0x2F800, - 0x2FA1E + 0x2FA1E, + 0x30000, + 0x3134B }; -# endif /* EBCDIC 1047 */ +# endif /* EBCDIC 037 */ -# if 'A' == 193 /* EBCDIC 037 */ \ - && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \ - && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \ - && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 +static const UV UNI_IDSB_invlist[] = { /* for all charsets */ + 5, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x2FF0, + 0x2FF2, + 0x2FF4, + 0x2FFC +}; -static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */ - 1241, /* Number of elements */ +static const UV UNI_IDST_invlist[] = { /* for all charsets */ + 3, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ 0x0, - 0x42, - 0x4A, - 0x51, - 0x5A, - 0x62, - 0x6A, - 0x70, - 0x79, - 0x80, - 0x8A, - 0x8C, - 0x8F, - 0x91, - 0x9D, - 0x9E, - 0x9F, - 0xA0, - 0xA1, - 0xA2, - 0xAA, - 0xAC, - 0xAF, - 0xC1, - 0xCA, - 0xCB, - 0xD0, - 0xD1, - 0xDA, - 0xDB, - 0xE0, - 0xE2, - 0xEA, - 0xEB, - 0xF0, - 0xFB, - 0xFF, - 0x100, - 0x2C2, - 0x2C6, - 0x2D2, + 0x2FF2, + 0x2FF4 +}; + +static const UV UNI_IN__1_DOT_1_invlist[] = { /* for all charsets */ + 576, /* Number of elements */ + 148565664, /* Version and data structure type */ + 0, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x1F6, + 0x1FA, + 0x218, + 0x250, + 0x2A9, + 0x2B0, + 0x2DF, 0x2E0, - 0x2E5, - 0x2EC, - 0x2ED, - 0x2EE, - 0x2EF, - 0x370, - 0x375, + 0x2EA, + 0x300, + 0x346, + 0x360, + 0x362, + 0x374, 0x376, + 0x37A, + 0x37B, + 0x37E, + 0x37F, + 0x384, + 0x38B, + 0x38C, + 0x38D, + 0x38E, + 0x3A2, + 0x3A3, + 0x3CF, + 0x3D0, + 0x3D7, + 0x3DA, + 0x3DB, + 0x3DC, + 0x3DD, + 0x3DE, + 0x3DF, + 0x3E0, + 0x3E1, + 0x3E2, + 0x3F4, + 0x401, + 0x40D, + 0x40E, + 0x450, + 0x451, + 0x45D, + 0x45E, + 0x487, + 0x490, + 0x4C5, + 0x4C7, + 0x4C9, + 0x4CB, + 0x4CD, + 0x4D0, + 0x4EC, + 0x4EE, + 0x4F6, + 0x4F8, + 0x4FA, + 0x531, + 0x557, + 0x559, + 0x560, + 0x561, + 0x588, + 0x589, + 0x58A, + 0x5B0, + 0x5BA, + 0x5BB, + 0x5C4, + 0x5D0, + 0x5EB, + 0x5F0, + 0x5F5, + 0x60C, + 0x60D, + 0x61B, + 0x61C, + 0x61F, + 0x620, + 0x621, + 0x63B, + 0x640, + 0x653, + 0x660, + 0x66E, + 0x670, + 0x6B8, + 0x6BA, + 0x6BF, + 0x6C0, + 0x6CF, + 0x6D0, + 0x6EE, + 0x6F0, + 0x6FA, + 0x901, + 0x904, + 0x905, + 0x93A, + 0x93C, + 0x94E, + 0x950, + 0x955, + 0x958, + 0x971, + 0x981, + 0x984, + 0x985, + 0x98D, + 0x98F, + 0x991, + 0x993, + 0x9A9, + 0x9AA, + 0x9B1, + 0x9B2, + 0x9B3, + 0x9B6, + 0x9BA, + 0x9BC, + 0x9BD, + 0x9BE, + 0x9C5, + 0x9C7, + 0x9C9, + 0x9CB, + 0x9CE, + 0x9D7, + 0x9D8, + 0x9DC, + 0x9DE, + 0x9DF, + 0x9E4, + 0x9E6, + 0x9FB, + 0xA02, + 0xA03, + 0xA05, + 0xA0B, + 0xA0F, + 0xA11, + 0xA13, + 0xA29, + 0xA2A, + 0xA31, + 0xA32, + 0xA34, + 0xA35, + 0xA37, + 0xA38, + 0xA3A, + 0xA3C, + 0xA3D, + 0xA3E, + 0xA43, + 0xA47, + 0xA49, + 0xA4B, + 0xA4E, + 0xA59, + 0xA5D, + 0xA5E, + 0xA5F, + 0xA66, + 0xA75, + 0xA81, + 0xA84, + 0xA85, + 0xA8C, + 0xA8D, + 0xA8E, + 0xA8F, + 0xA92, + 0xA93, + 0xAA9, + 0xAAA, + 0xAB1, + 0xAB2, + 0xAB4, + 0xAB5, + 0xABA, + 0xABC, + 0xAC6, + 0xAC7, + 0xACA, + 0xACB, + 0xACE, + 0xAD0, + 0xAD1, + 0xAE0, + 0xAE1, + 0xAE6, + 0xAF0, + 0xB01, + 0xB04, + 0xB05, + 0xB0D, + 0xB0F, + 0xB11, + 0xB13, + 0xB29, + 0xB2A, + 0xB31, + 0xB32, + 0xB34, + 0xB36, + 0xB3A, + 0xB3C, + 0xB44, + 0xB47, + 0xB49, + 0xB4B, + 0xB4E, + 0xB56, + 0xB58, + 0xB5C, + 0xB5E, + 0xB5F, + 0xB62, + 0xB66, + 0xB71, + 0xB82, + 0xB84, + 0xB85, + 0xB8B, + 0xB8E, + 0xB91, + 0xB92, + 0xB96, + 0xB99, + 0xB9B, + 0xB9C, + 0xB9D, + 0xB9E, + 0xBA0, + 0xBA3, + 0xBA5, + 0xBA8, + 0xBAB, + 0xBAE, + 0xBB6, + 0xBB7, + 0xBBA, + 0xBBE, + 0xBC3, + 0xBC6, + 0xBC9, + 0xBCA, + 0xBCE, + 0xBD7, + 0xBD8, + 0xBE7, + 0xBF3, + 0xC01, + 0xC04, + 0xC05, + 0xC0D, + 0xC0E, + 0xC11, + 0xC12, + 0xC29, + 0xC2A, + 0xC34, + 0xC35, + 0xC3A, + 0xC3E, + 0xC45, + 0xC46, + 0xC49, + 0xC4A, + 0xC4E, + 0xC55, + 0xC57, + 0xC60, + 0xC62, + 0xC66, + 0xC70, + 0xC82, + 0xC84, + 0xC85, + 0xC8D, + 0xC8E, + 0xC91, + 0xC92, + 0xCA9, + 0xCAA, + 0xCB4, + 0xCB5, + 0xCBA, + 0xCBE, + 0xCC5, + 0xCC6, + 0xCC9, + 0xCCA, + 0xCCE, + 0xCD5, + 0xCD7, + 0xCDE, + 0xCDF, + 0xCE0, + 0xCE2, + 0xCE6, + 0xCF0, + 0xD02, + 0xD04, + 0xD05, + 0xD0D, + 0xD0E, + 0xD11, + 0xD12, + 0xD29, + 0xD2A, + 0xD3A, + 0xD3E, + 0xD44, + 0xD46, + 0xD49, + 0xD4A, + 0xD4E, + 0xD57, + 0xD58, + 0xD60, + 0xD62, + 0xD66, + 0xD70, + 0xE01, + 0xE3B, + 0xE3F, + 0xE5C, + 0xE81, + 0xE83, + 0xE84, + 0xE85, + 0xE87, + 0xE89, + 0xE8A, + 0xE8B, + 0xE8D, + 0xE8E, + 0xE94, + 0xE98, + 0xE99, + 0xEA0, + 0xEA1, + 0xEA4, + 0xEA5, + 0xEA6, + 0xEA7, + 0xEA8, + 0xEAA, + 0xEAC, + 0xEAD, + 0xEBA, + 0xEBB, + 0xEBE, + 0xEC0, + 0xEC5, + 0xEC6, + 0xEC7, + 0xEC8, + 0xECE, + 0xED0, + 0xEDA, + 0xEDC, + 0xEDE, + 0x10A0, + 0x10C6, + 0x10D0, + 0x10F7, + 0x10FB, + 0x10FC, + 0x1100, + 0x115A, + 0x115F, + 0x11A3, + 0x11A8, + 0x11FA, + 0x1E00, + 0x1E9B, + 0x1EA0, + 0x1EFA, + 0x1F00, + 0x1F16, + 0x1F18, + 0x1F1E, + 0x1F20, + 0x1F46, + 0x1F48, + 0x1F4E, + 0x1F50, + 0x1F58, + 0x1F59, + 0x1F5A, + 0x1F5B, + 0x1F5C, + 0x1F5D, + 0x1F5E, + 0x1F5F, + 0x1F7E, + 0x1F80, + 0x1FB5, + 0x1FB6, + 0x1FC5, + 0x1FC6, + 0x1FD4, + 0x1FD6, + 0x1FDC, + 0x1FDD, + 0x1FF0, + 0x1FF2, + 0x1FF5, + 0x1FF6, + 0x1FFF, + 0x2000, + 0x202F, + 0x2030, + 0x2047, + 0x206A, + 0x2071, + 0x2074, + 0x208F, + 0x20A0, + 0x20AB, + 0x20D0, + 0x20E2, + 0x2100, + 0x2139, + 0x2153, + 0x2183, + 0x2190, + 0x21EB, + 0x2200, + 0x22F2, + 0x2300, + 0x2301, + 0x2302, + 0x237B, + 0x2400, + 0x2425, + 0x2440, + 0x244B, + 0x2460, + 0x24EB, + 0x2500, + 0x2596, + 0x25A0, + 0x25F0, + 0x2600, + 0x2614, + 0x261A, + 0x2670, + 0x2701, + 0x2705, + 0x2706, + 0x270A, + 0x270C, + 0x2728, + 0x2729, + 0x274C, + 0x274D, + 0x274E, + 0x274F, + 0x2753, + 0x2756, + 0x2757, + 0x2758, + 0x275F, + 0x2761, + 0x2768, + 0x2776, + 0x2795, + 0x2798, + 0x27B0, + 0x27B1, + 0x27BF, + 0x3000, + 0x3038, + 0x303F, + 0x3040, + 0x3041, + 0x3095, + 0x3099, + 0x309F, + 0x30A1, + 0x30FF, + 0x3105, + 0x312D, + 0x3131, + 0x318F, + 0x3190, + 0x31A0, + 0x3200, + 0x321D, + 0x3220, + 0x3244, + 0x3260, + 0x327C, + 0x327F, + 0x32B1, + 0x32C0, + 0x32CC, + 0x32D0, + 0x32FF, + 0x3300, + 0x3377, + 0x337B, + 0x33DE, + 0x33E0, + 0x33FF, + 0x4E00, + 0x9FA6, + 0xE000, + 0xFA2E, + 0xFB00, + 0xFB07, + 0xFB13, + 0xFB18, + 0xFB1E, + 0xFB37, + 0xFB38, + 0xFB3D, + 0xFB3E, + 0xFB3F, + 0xFB40, + 0xFB42, + 0xFB43, + 0xFB45, + 0xFB46, + 0xFBB2, + 0xFBD3, + 0xFD40, + 0xFD50, + 0xFD90, + 0xFD92, + 0xFDC8, + 0xFDF0, + 0xFDFC, + 0xFE20, + 0xFE24, + 0xFE30, + 0xFE45, + 0xFE49, + 0xFE53, + 0xFE54, + 0xFE67, + 0xFE68, + 0xFE6C, + 0xFE70, + 0xFE73, + 0xFE74, + 0xFE75, + 0xFE76, + 0xFEFD, + 0xFEFF, + 0xFF00, + 0xFF01, + 0xFF5F, + 0xFF61, + 0xFFBF, + 0xFFC2, + 0xFFC8, + 0xFFCA, + 0xFFD0, + 0xFFD2, + 0xFFD8, + 0xFFDA, + 0xFFDD, + 0xFFE0, + 0xFFE7, + 0xFFE8, + 0xFFEF, + 0xFFFD, + 0x10000 +}; + +static const UV UNI_IN__10_invlist[] = { /* for all charsets */ + 1318, /* Number of elements */ + 148565664, /* Version and data structure type */ + 0, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, 0x378, 0x37A, - 0x37E, - 0x37F, 0x380, - 0x386, - 0x387, - 0x388, + 0x384, 0x38B, 0x38C, 0x38D, 0x38E, 0x3A2, 0x3A3, - 0x3F6, - 0x3F7, - 0x482, - 0x48A, 0x530, 0x531, 0x557, 0x559, - 0x55A, 0x560, + 0x561, + 0x588, 0x589, + 0x58B, + 0x58D, + 0x590, + 0x591, + 0x5C8, 0x5D0, 0x5EB, - 0x5EF, - 0x5F3, - 0x620, - 0x64B, - 0x66E, - 0x670, - 0x671, - 0x6D4, - 0x6D5, - 0x6D6, - 0x6E5, - 0x6E7, - 0x6EE, - 0x6F0, - 0x6FA, - 0x6FD, - 0x6FF, - 0x700, - 0x710, - 0x711, - 0x712, - 0x730, + 0x5F0, + 0x5F5, + 0x600, + 0x61D, + 0x61E, + 0x70E, + 0x70F, + 0x74B, 0x74D, - 0x7A6, - 0x7B1, 0x7B2, - 0x7CA, - 0x7EB, - 0x7F4, - 0x7F6, - 0x7FA, + 0x7C0, 0x7FB, 0x800, - 0x816, - 0x81A, - 0x81B, - 0x824, - 0x825, - 0x828, - 0x829, + 0x82E, + 0x830, + 0x83F, 0x840, - 0x859, + 0x85C, + 0x85E, + 0x85F, 0x860, 0x86B, 0x8A0, 0x8B5, 0x8B6, 0x8BE, - 0x904, - 0x93A, - 0x93D, - 0x93E, - 0x950, - 0x951, - 0x958, - 0x962, - 0x971, - 0x981, + 0x8D4, + 0x984, 0x985, 0x98D, 0x98F, @@ -256159,18 +279217,22 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */ 0x9B3, 0x9B6, 0x9BA, - 0x9BD, - 0x9BE, - 0x9CE, + 0x9BC, + 0x9C5, + 0x9C7, + 0x9C9, + 0x9CB, 0x9CF, + 0x9D7, + 0x9D8, 0x9DC, 0x9DE, 0x9DF, - 0x9E2, - 0x9F0, - 0x9F2, - 0x9FC, - 0x9FD, + 0x9E4, + 0x9E6, + 0x9FE, + 0xA01, + 0xA04, 0xA05, 0xA0B, 0xA0F, @@ -256185,12 +279247,24 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */ 0xA37, 0xA38, 0xA3A, + 0xA3C, + 0xA3D, + 0xA3E, + 0xA43, + 0xA47, + 0xA49, + 0xA4B, + 0xA4E, + 0xA51, + 0xA52, 0xA59, 0xA5D, 0xA5E, 0xA5F, - 0xA72, - 0xA75, + 0xA66, + 0xA76, + 0xA81, + 0xA84, 0xA85, 0xA8E, 0xA8F, @@ -256203,14 +279277,22 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */ 0xAB4, 0xAB5, 0xABA, - 0xABD, - 0xABE, + 0xABC, + 0xAC6, + 0xAC7, + 0xACA, + 0xACB, + 0xACE, 0xAD0, 0xAD1, 0xAE0, - 0xAE2, + 0xAE4, + 0xAE6, + 0xAF2, 0xAF9, - 0xAFA, + 0xB00, + 0xB01, + 0xB04, 0xB05, 0xB0D, 0xB0F, @@ -256223,15 +279305,21 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */ 0xB34, 0xB35, 0xB3A, - 0xB3D, - 0xB3E, + 0xB3C, + 0xB45, + 0xB47, + 0xB49, + 0xB4B, + 0xB4E, + 0xB56, + 0xB58, 0xB5C, 0xB5E, 0xB5F, - 0xB62, - 0xB71, - 0xB72, - 0xB83, + 0xB64, + 0xB66, + 0xB78, + 0xB82, 0xB84, 0xB85, 0xB8B, @@ -256251,8 +279339,20 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */ 0xBAB, 0xBAE, 0xBBA, + 0xBBE, + 0xBC3, + 0xBC6, + 0xBC9, + 0xBCA, + 0xBCE, 0xBD0, 0xBD1, + 0xBD7, + 0xBD8, + 0xBE6, + 0xBFB, + 0xC00, + 0xC04, 0xC05, 0xC0D, 0xC0E, @@ -256262,13 +279362,21 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */ 0xC2A, 0xC3A, 0xC3D, - 0xC3E, + 0xC45, + 0xC46, + 0xC49, + 0xC4A, + 0xC4E, + 0xC55, + 0xC57, 0xC58, 0xC5B, 0xC60, - 0xC62, - 0xC80, - 0xC81, + 0xC64, + 0xC66, + 0xC70, + 0xC78, + 0xC84, 0xC85, 0xC8D, 0xC8E, @@ -256279,30 +279387,40 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */ 0xCB4, 0xCB5, 0xCBA, - 0xCBD, - 0xCBE, + 0xCBC, + 0xCC5, + 0xCC6, + 0xCC9, + 0xCCA, + 0xCCE, + 0xCD5, + 0xCD7, 0xCDE, 0xCDF, 0xCE0, - 0xCE2, + 0xCE4, + 0xCE6, + 0xCF0, 0xCF1, 0xCF3, + 0xD00, + 0xD04, 0xD05, 0xD0D, 0xD0E, 0xD11, 0xD12, - 0xD3B, - 0xD3D, - 0xD3E, - 0xD4E, - 0xD4F, + 0xD45, + 0xD46, + 0xD49, + 0xD4A, + 0xD50, 0xD54, - 0xD57, - 0xD5F, - 0xD62, - 0xD7A, + 0xD64, + 0xD66, 0xD80, + 0xD82, + 0xD84, 0xD85, 0xD97, 0xD9A, @@ -256313,69 +279431,77 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */ 0xDBE, 0xDC0, 0xDC7, + 0xDCA, + 0xDCB, + 0xDCF, + 0xDD5, + 0xDD6, + 0xDD7, + 0xDD8, + 0xDE0, + 0xDE6, + 0xDF0, + 0xDF2, + 0xDF5, 0xE01, - 0xE31, - 0xE32, - 0xE34, - 0xE40, - 0xE47, + 0xE3B, + 0xE3F, + 0xE5C, 0xE81, 0xE83, 0xE84, 0xE85, - 0xE86, + 0xE87, + 0xE89, + 0xE8A, 0xE8B, - 0xE8C, + 0xE8D, + 0xE8E, + 0xE94, + 0xE98, + 0xE99, + 0xEA0, + 0xEA1, 0xEA4, 0xEA5, 0xEA6, 0xEA7, - 0xEB1, - 0xEB2, - 0xEB4, - 0xEBD, + 0xEA8, + 0xEAA, + 0xEAC, + 0xEAD, + 0xEBA, + 0xEBB, 0xEBE, 0xEC0, 0xEC5, 0xEC6, 0xEC7, + 0xEC8, + 0xECE, + 0xED0, + 0xEDA, 0xEDC, 0xEE0, 0xF00, - 0xF01, - 0xF40, 0xF48, 0xF49, 0xF6D, - 0xF88, - 0xF8D, + 0xF71, + 0xF98, + 0xF99, + 0xFBD, + 0xFBE, + 0xFCD, + 0xFCE, + 0xFDB, 0x1000, - 0x102B, - 0x103F, - 0x1040, - 0x1050, - 0x1056, - 0x105A, - 0x105E, - 0x1061, - 0x1062, - 0x1065, - 0x1067, - 0x106E, - 0x1071, - 0x1075, - 0x1082, - 0x108E, - 0x108F, - 0x10A0, 0x10C6, 0x10C7, 0x10C8, 0x10CD, 0x10CE, 0x10D0, - 0x10FB, - 0x10FC, 0x1249, 0x124A, 0x124E, @@ -256407,51 +279533,57 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */ 0x1316, 0x1318, 0x135B, + 0x135D, + 0x137D, 0x1380, - 0x1390, + 0x139A, 0x13A0, 0x13F6, 0x13F8, 0x13FE, - 0x1401, - 0x166D, - 0x166F, - 0x1680, - 0x1681, - 0x169B, + 0x1400, + 0x169D, 0x16A0, - 0x16EB, - 0x16EE, 0x16F9, 0x1700, 0x170D, 0x170E, - 0x1712, + 0x1715, 0x1720, - 0x1732, + 0x1737, 0x1740, - 0x1752, + 0x1754, 0x1760, 0x176D, 0x176E, 0x1771, + 0x1772, + 0x1774, 0x1780, - 0x17B4, - 0x17D7, - 0x17D8, - 0x17DC, - 0x17DD, + 0x17DE, + 0x17E0, + 0x17EA, + 0x17F0, + 0x17FA, + 0x1800, + 0x180F, + 0x1810, + 0x181A, 0x1820, - 0x1879, + 0x1878, 0x1880, - 0x18A9, - 0x18AA, 0x18AB, 0x18B0, 0x18F6, 0x1900, 0x191F, - 0x1950, + 0x1920, + 0x192C, + 0x1930, + 0x193C, + 0x1940, + 0x1941, + 0x1944, 0x196E, 0x1970, 0x1975, @@ -256459,45 +279591,41 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */ 0x19AC, 0x19B0, 0x19CA, - 0x1A00, - 0x1A17, - 0x1A20, - 0x1A55, - 0x1AA7, - 0x1AA8, - 0x1B05, - 0x1B34, - 0x1B45, + 0x19D0, + 0x19DB, + 0x19DE, + 0x1A1C, + 0x1A1E, + 0x1A5F, + 0x1A60, + 0x1A7D, + 0x1A7F, + 0x1A8A, + 0x1A90, + 0x1A9A, + 0x1AA0, + 0x1AAE, + 0x1AB0, + 0x1ABF, + 0x1B00, 0x1B4C, - 0x1B83, - 0x1BA1, - 0x1BAE, - 0x1BB0, - 0x1BBA, - 0x1BE6, - 0x1C00, - 0x1C24, + 0x1B50, + 0x1B7D, + 0x1B80, + 0x1BF4, + 0x1BFC, + 0x1C38, + 0x1C3B, + 0x1C4A, 0x1C4D, - 0x1C50, - 0x1C5A, - 0x1C7E, - 0x1C80, 0x1C89, - 0x1C90, - 0x1CBB, - 0x1CBD, 0x1CC0, - 0x1CE9, - 0x1CED, - 0x1CEE, - 0x1CF4, - 0x1CF5, - 0x1CF7, + 0x1CC8, + 0x1CD0, 0x1CFA, - 0x1CFB, 0x1D00, - 0x1DC0, - 0x1E00, + 0x1DFA, + 0x1DFB, 0x1F16, 0x1F18, 0x1F1E, @@ -256518,66 +279646,54 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */ 0x1F80, 0x1FB5, 0x1FB6, - 0x1FBD, - 0x1FBE, - 0x1FBF, - 0x1FC2, 0x1FC5, 0x1FC6, - 0x1FCD, - 0x1FD0, 0x1FD4, 0x1FD6, 0x1FDC, - 0x1FE0, - 0x1FED, + 0x1FDD, + 0x1FF0, 0x1FF2, 0x1FF5, 0x1FF6, - 0x1FFD, - 0x2071, + 0x1FFF, + 0x2000, + 0x2065, + 0x2066, 0x2072, - 0x207F, - 0x2080, + 0x2074, + 0x208F, 0x2090, 0x209D, - 0x2102, - 0x2103, - 0x2107, - 0x2108, - 0x210A, - 0x2114, - 0x2115, - 0x2116, - 0x2118, - 0x211E, - 0x2124, - 0x2125, - 0x2126, - 0x2127, - 0x2128, - 0x2129, - 0x212A, - 0x213A, - 0x213C, - 0x2140, - 0x2145, - 0x214A, - 0x214E, - 0x214F, - 0x2160, - 0x2189, + 0x20A0, + 0x20C0, + 0x20D0, + 0x20F1, + 0x2100, + 0x218C, + 0x2190, + 0x2427, + 0x2440, + 0x244B, + 0x2460, + 0x2B74, + 0x2B76, + 0x2B96, + 0x2B98, + 0x2BBA, + 0x2BBD, + 0x2BC9, + 0x2BCA, + 0x2BD3, + 0x2BEC, + 0x2BF0, 0x2C00, 0x2C2F, 0x2C30, 0x2C5F, 0x2C60, - 0x2CE5, - 0x2CEB, - 0x2CEF, - 0x2CF2, 0x2CF4, - 0x2D00, + 0x2CF9, 0x2D26, 0x2D27, 0x2D28, @@ -256586,8 +279702,8 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */ 0x2D30, 0x2D68, 0x2D6F, - 0x2D70, - 0x2D80, + 0x2D71, + 0x2D7F, 0x2D97, 0x2DA0, 0x2DA7, @@ -256605,120 +279721,82 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */ 0x2DD7, 0x2DD8, 0x2DDF, - 0x3005, - 0x3008, - 0x3021, - 0x302A, - 0x3031, - 0x3036, - 0x3038, - 0x303D, + 0x2DE0, + 0x2E4A, + 0x2E80, + 0x2E9A, + 0x2E9B, + 0x2EF4, + 0x2F00, + 0x2FD6, + 0x2FF0, + 0x2FFC, + 0x3000, + 0x3040, 0x3041, 0x3097, - 0x309B, - 0x30A0, - 0x30A1, - 0x30FB, - 0x30FC, + 0x3099, 0x3100, 0x3105, - 0x3130, + 0x312F, 0x3131, 0x318F, - 0x31A0, + 0x3190, 0x31BB, + 0x31C0, + 0x31E4, 0x31F0, - 0x3200, - 0x3400, + 0x321F, + 0x3220, + 0x32FF, + 0x3300, 0x4DB6, - 0x4E00, - 0x9FF0, + 0x4DC0, + 0x9FEB, 0xA000, 0xA48D, + 0xA490, + 0xA4C7, 0xA4D0, - 0xA4FE, - 0xA500, - 0xA60D, - 0xA610, - 0xA620, - 0xA62A, 0xA62C, 0xA640, - 0xA66F, - 0xA67F, - 0xA69E, - 0xA6A0, - 0xA6F0, - 0xA717, - 0xA720, - 0xA722, - 0xA789, - 0xA78B, - 0xA7C0, - 0xA7C2, - 0xA7C7, + 0xA6F8, + 0xA700, + 0xA7AF, + 0xA7B0, + 0xA7B8, 0xA7F7, - 0xA802, - 0xA803, - 0xA806, - 0xA807, - 0xA80B, - 0xA80C, - 0xA823, + 0xA82C, + 0xA830, + 0xA83A, 0xA840, - 0xA874, - 0xA882, - 0xA8B4, - 0xA8F2, - 0xA8F8, - 0xA8FB, - 0xA8FC, - 0xA8FD, - 0xA8FF, - 0xA90A, - 0xA926, - 0xA930, - 0xA947, - 0xA960, + 0xA878, + 0xA880, + 0xA8C6, + 0xA8CE, + 0xA8DA, + 0xA8E0, + 0xA8FE, + 0xA900, + 0xA954, + 0xA95F, 0xA97D, - 0xA984, - 0xA9B3, + 0xA980, + 0xA9CE, 0xA9CF, - 0xA9D0, - 0xA9E0, - 0xA9E5, - 0xA9E6, - 0xA9F0, - 0xA9FA, + 0xA9DA, + 0xA9DE, 0xA9FF, 0xAA00, - 0xAA29, + 0xAA37, 0xAA40, - 0xAA43, - 0xAA44, - 0xAA4C, - 0xAA60, - 0xAA77, - 0xAA7A, - 0xAA7B, - 0xAA7E, - 0xAAB0, - 0xAAB1, - 0xAAB2, - 0xAAB5, - 0xAAB7, - 0xAAB9, - 0xAABE, - 0xAAC0, - 0xAAC1, - 0xAAC2, + 0xAA4E, + 0xAA50, + 0xAA5A, + 0xAA5C, 0xAAC3, 0xAADB, - 0xAADE, - 0xAAE0, - 0xAAEB, - 0xAAF2, - 0xAAF5, + 0xAAF7, 0xAB01, 0xAB07, 0xAB09, @@ -256730,18 +279808,18 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */ 0xAB28, 0xAB2F, 0xAB30, - 0xAB5B, - 0xAB5C, - 0xAB68, + 0xAB66, 0xAB70, - 0xABE3, + 0xABEE, + 0xABF0, + 0xABFA, 0xAC00, 0xD7A4, 0xD7B0, 0xD7C7, 0xD7CB, 0xD7FC, - 0xF900, + 0xD800, 0xFA6E, 0xFA70, 0xFADA, @@ -256750,10 +279828,6 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */ 0xFB13, 0xFB18, 0xFB1D, - 0xFB1E, - 0xFB1F, - 0xFB29, - 0xFB2A, 0xFB37, 0xFB38, 0xFB3D, @@ -256764,24 +279838,30 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */ 0xFB43, 0xFB45, 0xFB46, - 0xFBB2, + 0xFBC2, 0xFBD3, - 0xFD3E, + 0xFD40, 0xFD50, 0xFD90, 0xFD92, 0xFDC8, - 0xFDF0, - 0xFDFC, + 0xFDD0, + 0xFDFE, + 0xFE00, + 0xFE1A, + 0xFE20, + 0xFE53, + 0xFE54, + 0xFE67, + 0xFE68, + 0xFE6C, 0xFE70, 0xFE75, 0xFE76, 0xFEFD, - 0xFF21, - 0xFF3B, - 0xFF41, - 0xFF5B, - 0xFF66, + 0xFEFF, + 0xFF00, + 0xFF01, 0xFFBF, 0xFFC2, 0xFFC8, @@ -256791,7 +279871,11 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */ 0xFFD8, 0xFFDA, 0xFFDD, - 0x10000, + 0xFFE0, + 0xFFE7, + 0xFFE8, + 0xFFEF, + 0xFFF9, 0x1000C, 0x1000D, 0x10027, @@ -256805,28 +279889,40 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */ 0x1005E, 0x10080, 0x100FB, - 0x10140, - 0x10175, + 0x10100, + 0x10103, + 0x10107, + 0x10134, + 0x10137, + 0x1018F, + 0x10190, + 0x1019C, + 0x101A0, + 0x101A1, + 0x101D0, + 0x101FE, 0x10280, 0x1029D, 0x102A0, 0x102D1, + 0x102E0, + 0x102FC, 0x10300, - 0x10320, + 0x10324, 0x1032D, 0x1034B, 0x10350, - 0x10376, + 0x1037B, 0x10380, 0x1039E, - 0x103A0, + 0x1039F, 0x103C4, 0x103C8, - 0x103D0, - 0x103D1, 0x103D6, 0x10400, 0x1049E, + 0x104A0, + 0x104AA, 0x104B0, 0x104D4, 0x104D8, @@ -256835,6 +279931,8 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */ 0x10528, 0x10530, 0x10564, + 0x1056F, + 0x10570, 0x10600, 0x10737, 0x10740, @@ -256853,88 +279951,94 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */ 0x1083D, 0x1083F, 0x10856, - 0x10860, - 0x10877, - 0x10880, + 0x10857, 0x1089F, + 0x108A7, + 0x108B0, 0x108E0, 0x108F3, 0x108F4, 0x108F6, - 0x10900, - 0x10916, - 0x10920, + 0x108FB, + 0x1091C, + 0x1091F, 0x1093A, + 0x1093F, + 0x10940, 0x10980, 0x109B8, - 0x109BE, - 0x109C0, - 0x10A00, - 0x10A01, - 0x10A10, + 0x109BC, + 0x109D0, + 0x109D2, + 0x10A04, + 0x10A05, + 0x10A07, + 0x10A0C, 0x10A14, 0x10A15, 0x10A18, 0x10A19, - 0x10A36, + 0x10A34, + 0x10A38, + 0x10A3B, + 0x10A3F, + 0x10A48, + 0x10A50, + 0x10A59, 0x10A60, - 0x10A7D, - 0x10A80, - 0x10A9D, + 0x10AA0, 0x10AC0, - 0x10AC8, - 0x10AC9, - 0x10AE5, + 0x10AE7, + 0x10AEB, + 0x10AF7, 0x10B00, 0x10B36, - 0x10B40, + 0x10B39, 0x10B56, - 0x10B60, + 0x10B58, 0x10B73, - 0x10B80, + 0x10B78, 0x10B92, + 0x10B99, + 0x10B9D, + 0x10BA9, + 0x10BB0, 0x10C00, 0x10C49, 0x10C80, 0x10CB3, 0x10CC0, 0x10CF3, + 0x10CFA, 0x10D00, - 0x10D24, - 0x10F00, - 0x10F1D, - 0x10F27, - 0x10F28, - 0x10F30, - 0x10F46, - 0x10FE0, - 0x10FF7, - 0x11003, - 0x11038, - 0x11083, - 0x110B0, + 0x10E60, + 0x10E7F, + 0x11000, + 0x1104E, + 0x11052, + 0x11070, + 0x1107F, + 0x110C2, 0x110D0, 0x110E9, - 0x11103, - 0x11127, + 0x110F0, + 0x110FA, + 0x11100, + 0x11135, + 0x11136, 0x11144, - 0x11145, 0x11150, - 0x11173, - 0x11176, 0x11177, - 0x11183, - 0x111B3, - 0x111C1, - 0x111C5, - 0x111DA, - 0x111DB, - 0x111DC, - 0x111DD, + 0x11180, + 0x111CE, + 0x111D0, + 0x111E0, + 0x111E1, + 0x111F5, 0x11200, 0x11212, 0x11213, - 0x1122C, + 0x1123F, 0x11280, 0x11287, 0x11288, @@ -256944,9 +280048,13 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */ 0x1128F, 0x1129E, 0x1129F, - 0x112A9, + 0x112AA, 0x112B0, - 0x112DF, + 0x112EB, + 0x112F0, + 0x112FA, + 0x11300, + 0x11304, 0x11305, 0x1130D, 0x1130F, @@ -256959,96 +280067,100 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */ 0x11334, 0x11335, 0x1133A, - 0x1133D, - 0x1133E, + 0x1133C, + 0x11345, + 0x11347, + 0x11349, + 0x1134B, + 0x1134E, 0x11350, 0x11351, + 0x11357, + 0x11358, 0x1135D, - 0x11362, + 0x11364, + 0x11366, + 0x1136D, + 0x11370, + 0x11375, 0x11400, - 0x11435, - 0x11447, - 0x1144B, - 0x1145F, - 0x11460, + 0x1145A, + 0x1145B, + 0x1145C, + 0x1145D, + 0x1145E, 0x11480, - 0x114B0, - 0x114C4, - 0x114C6, - 0x114C7, 0x114C8, + 0x114D0, + 0x114DA, 0x11580, - 0x115AF, - 0x115D8, - 0x115DC, + 0x115B6, + 0x115B8, + 0x115DE, 0x11600, - 0x11630, - 0x11644, 0x11645, + 0x11650, + 0x1165A, + 0x11660, + 0x1166D, 0x11680, - 0x116AB, 0x116B8, - 0x116B9, + 0x116C0, + 0x116CA, 0x11700, - 0x1171B, - 0x11800, - 0x1182C, + 0x1171A, + 0x1171D, + 0x1172C, + 0x11730, + 0x11740, 0x118A0, - 0x118E0, + 0x118F3, 0x118FF, 0x11900, - 0x119A0, - 0x119A8, - 0x119AA, - 0x119D1, - 0x119E1, - 0x119E2, - 0x119E3, - 0x119E4, 0x11A00, - 0x11A01, - 0x11A0B, - 0x11A33, - 0x11A3A, - 0x11A3B, + 0x11A48, 0x11A50, - 0x11A51, - 0x11A5C, - 0x11A8A, + 0x11A84, + 0x11A86, 0x11A9D, 0x11A9E, + 0x11AA3, 0x11AC0, 0x11AF9, 0x11C00, 0x11C09, 0x11C0A, - 0x11C2F, - 0x11C40, - 0x11C41, - 0x11C72, + 0x11C37, + 0x11C38, + 0x11C46, + 0x11C50, + 0x11C6D, + 0x11C70, 0x11C90, + 0x11C92, + 0x11CA8, + 0x11CA9, + 0x11CB7, 0x11D00, 0x11D07, 0x11D08, 0x11D0A, 0x11D0B, - 0x11D31, - 0x11D46, - 0x11D47, - 0x11D60, - 0x11D66, - 0x11D67, - 0x11D69, - 0x11D6A, - 0x11D8A, - 0x11D98, - 0x11D99, - 0x11EE0, - 0x11EF3, + 0x11D37, + 0x11D3A, + 0x11D3B, + 0x11D3C, + 0x11D3E, + 0x11D3F, + 0x11D48, + 0x11D50, + 0x11D5A, 0x12000, 0x1239A, 0x12400, 0x1246F, + 0x12470, + 0x12475, 0x12480, 0x12544, 0x13000, @@ -257059,38 +280171,38 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */ 0x16A39, 0x16A40, 0x16A5F, + 0x16A60, + 0x16A6A, + 0x16A6E, + 0x16A70, 0x16AD0, 0x16AEE, + 0x16AF0, + 0x16AF6, 0x16B00, - 0x16B30, - 0x16B40, - 0x16B44, + 0x16B46, + 0x16B50, + 0x16B5A, + 0x16B5B, + 0x16B62, 0x16B63, 0x16B78, 0x16B7D, 0x16B90, - 0x16E40, - 0x16E80, 0x16F00, - 0x16F4B, + 0x16F45, 0x16F50, - 0x16F51, - 0x16F93, + 0x16F7F, + 0x16F8F, 0x16FA0, 0x16FE0, 0x16FE2, - 0x16FE3, - 0x16FE4, 0x17000, - 0x187F8, + 0x187ED, 0x18800, 0x18AF3, 0x1B000, 0x1B11F, - 0x1B150, - 0x1B153, - 0x1B164, - 0x1B168, 0x1B170, 0x1B2FC, 0x1BC00, @@ -257101,6 +280213,20 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */ 0x1BC89, 0x1BC90, 0x1BC9A, + 0x1BC9C, + 0x1BCA4, + 0x1D000, + 0x1D0F6, + 0x1D100, + 0x1D127, + 0x1D129, + 0x1D1E9, + 0x1D200, + 0x1D246, + 0x1D300, + 0x1D357, + 0x1D360, + 0x1D372, 0x1D400, 0x1D455, 0x1D456, @@ -257140,41 +280266,33 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */ 0x1D552, 0x1D6A6, 0x1D6A8, - 0x1D6C1, - 0x1D6C2, - 0x1D6DB, - 0x1D6DC, - 0x1D6FB, - 0x1D6FC, - 0x1D715, - 0x1D716, - 0x1D735, - 0x1D736, - 0x1D74F, - 0x1D750, - 0x1D76F, - 0x1D770, - 0x1D789, - 0x1D78A, - 0x1D7A9, - 0x1D7AA, - 0x1D7C3, - 0x1D7C4, 0x1D7CC, - 0x1E100, - 0x1E12D, - 0x1E137, - 0x1E13E, - 0x1E14E, - 0x1E14F, - 0x1E2C0, - 0x1E2EC, + 0x1D7CE, + 0x1DA8C, + 0x1DA9B, + 0x1DAA0, + 0x1DAA1, + 0x1DAB0, + 0x1E000, + 0x1E007, + 0x1E008, + 0x1E019, + 0x1E01B, + 0x1E022, + 0x1E023, + 0x1E025, + 0x1E026, + 0x1E02B, 0x1E800, 0x1E8C5, + 0x1E8C7, + 0x1E8D7, 0x1E900, - 0x1E944, 0x1E94B, - 0x1E94C, + 0x1E950, + 0x1E95A, + 0x1E95E, + 0x1E960, 0x1EE00, 0x1EE04, 0x1EE05, @@ -257241,7 +280359,73 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */ 0x1EEAA, 0x1EEAB, 0x1EEBC, - 0x20000, + 0x1EEF0, + 0x1EEF2, + 0x1F000, + 0x1F02C, + 0x1F030, + 0x1F094, + 0x1F0A0, + 0x1F0AF, + 0x1F0B1, + 0x1F0C0, + 0x1F0C1, + 0x1F0D0, + 0x1F0D1, + 0x1F0F6, + 0x1F100, + 0x1F10D, + 0x1F110, + 0x1F12F, + 0x1F130, + 0x1F16C, + 0x1F170, + 0x1F1AD, + 0x1F1E6, + 0x1F203, + 0x1F210, + 0x1F23C, + 0x1F240, + 0x1F249, + 0x1F250, + 0x1F252, + 0x1F260, + 0x1F266, + 0x1F300, + 0x1F6D5, + 0x1F6E0, + 0x1F6ED, + 0x1F6F0, + 0x1F6F9, + 0x1F700, + 0x1F774, + 0x1F780, + 0x1F7D5, + 0x1F800, + 0x1F80C, + 0x1F810, + 0x1F848, + 0x1F850, + 0x1F85A, + 0x1F860, + 0x1F888, + 0x1F890, + 0x1F8AE, + 0x1F900, + 0x1F90C, + 0x1F910, + 0x1F93F, + 0x1F940, + 0x1F94D, + 0x1F950, + 0x1F96C, + 0x1F980, + 0x1F998, + 0x1F9C0, + 0x1F9C1, + 0x1F9D0, + 0x1F9E7, + 0x1FFFE, 0x2A6D7, 0x2A700, 0x2B735, @@ -257252,618 +280436,43 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */ 0x2CEB0, 0x2EBE1, 0x2F800, - 0x2FA1E -}; - -# endif /* EBCDIC 037 */ - -static const UV UNI_IDSB_invlist[] = { /* for all charsets */ - 5, /* Number of elements */ - 148565664, /* Version and data structure type */ - 1, /* 0 if the list starts at 0; - 1 if it starts at the element beyond 0 */ - 0x0, - 0x2FF0, - 0x2FF2, - 0x2FF4, - 0x2FFC -}; - -static const UV UNI_IDST_invlist[] = { /* for all charsets */ - 3, /* Number of elements */ - 148565664, /* Version and data structure type */ - 1, /* 0 if the list starts at 0; - 1 if it starts at the element beyond 0 */ - 0x0, - 0x2FF2, - 0x2FF4 -}; - -static const UV UNI_IN__1_DOT_1_invlist[] = { /* for all charsets */ - 576, /* Number of elements */ - 148565664, /* Version and data structure type */ - 0, /* 0 if the list starts at 0; - 1 if it starts at the element beyond 0 */ - 0x0, - 0x1F6, - 0x1FA, - 0x218, - 0x250, - 0x2A9, - 0x2B0, - 0x2DF, - 0x2E0, - 0x2EA, - 0x300, - 0x346, - 0x360, - 0x362, - 0x374, - 0x376, - 0x37A, - 0x37B, - 0x37E, - 0x37F, - 0x384, - 0x38B, - 0x38C, - 0x38D, - 0x38E, - 0x3A2, - 0x3A3, - 0x3CF, - 0x3D0, - 0x3D7, - 0x3DA, - 0x3DB, - 0x3DC, - 0x3DD, - 0x3DE, - 0x3DF, - 0x3E0, - 0x3E1, - 0x3E2, - 0x3F4, - 0x401, - 0x40D, - 0x40E, - 0x450, - 0x451, - 0x45D, - 0x45E, - 0x487, - 0x490, - 0x4C5, - 0x4C7, - 0x4C9, - 0x4CB, - 0x4CD, - 0x4D0, - 0x4EC, - 0x4EE, - 0x4F6, - 0x4F8, - 0x4FA, - 0x531, - 0x557, - 0x559, - 0x560, - 0x561, - 0x588, - 0x589, - 0x58A, - 0x5B0, - 0x5BA, - 0x5BB, - 0x5C4, - 0x5D0, - 0x5EB, - 0x5F0, - 0x5F5, - 0x60C, - 0x60D, - 0x61B, - 0x61C, - 0x61F, - 0x620, - 0x621, - 0x63B, - 0x640, - 0x653, - 0x660, - 0x66E, - 0x670, - 0x6B8, - 0x6BA, - 0x6BF, - 0x6C0, - 0x6CF, - 0x6D0, - 0x6EE, - 0x6F0, - 0x6FA, - 0x901, - 0x904, - 0x905, - 0x93A, - 0x93C, - 0x94E, - 0x950, - 0x955, - 0x958, - 0x971, - 0x981, - 0x984, - 0x985, - 0x98D, - 0x98F, - 0x991, - 0x993, - 0x9A9, - 0x9AA, - 0x9B1, - 0x9B2, - 0x9B3, - 0x9B6, - 0x9BA, - 0x9BC, - 0x9BD, - 0x9BE, - 0x9C5, - 0x9C7, - 0x9C9, - 0x9CB, - 0x9CE, - 0x9D7, - 0x9D8, - 0x9DC, - 0x9DE, - 0x9DF, - 0x9E4, - 0x9E6, - 0x9FB, - 0xA02, - 0xA03, - 0xA05, - 0xA0B, - 0xA0F, - 0xA11, - 0xA13, - 0xA29, - 0xA2A, - 0xA31, - 0xA32, - 0xA34, - 0xA35, - 0xA37, - 0xA38, - 0xA3A, - 0xA3C, - 0xA3D, - 0xA3E, - 0xA43, - 0xA47, - 0xA49, - 0xA4B, - 0xA4E, - 0xA59, - 0xA5D, - 0xA5E, - 0xA5F, - 0xA66, - 0xA75, - 0xA81, - 0xA84, - 0xA85, - 0xA8C, - 0xA8D, - 0xA8E, - 0xA8F, - 0xA92, - 0xA93, - 0xAA9, - 0xAAA, - 0xAB1, - 0xAB2, - 0xAB4, - 0xAB5, - 0xABA, - 0xABC, - 0xAC6, - 0xAC7, - 0xACA, - 0xACB, - 0xACE, - 0xAD0, - 0xAD1, - 0xAE0, - 0xAE1, - 0xAE6, - 0xAF0, - 0xB01, - 0xB04, - 0xB05, - 0xB0D, - 0xB0F, - 0xB11, - 0xB13, - 0xB29, - 0xB2A, - 0xB31, - 0xB32, - 0xB34, - 0xB36, - 0xB3A, - 0xB3C, - 0xB44, - 0xB47, - 0xB49, - 0xB4B, - 0xB4E, - 0xB56, - 0xB58, - 0xB5C, - 0xB5E, - 0xB5F, - 0xB62, - 0xB66, - 0xB71, - 0xB82, - 0xB84, - 0xB85, - 0xB8B, - 0xB8E, - 0xB91, - 0xB92, - 0xB96, - 0xB99, - 0xB9B, - 0xB9C, - 0xB9D, - 0xB9E, - 0xBA0, - 0xBA3, - 0xBA5, - 0xBA8, - 0xBAB, - 0xBAE, - 0xBB6, - 0xBB7, - 0xBBA, - 0xBBE, - 0xBC3, - 0xBC6, - 0xBC9, - 0xBCA, - 0xBCE, - 0xBD7, - 0xBD8, - 0xBE7, - 0xBF3, - 0xC01, - 0xC04, - 0xC05, - 0xC0D, - 0xC0E, - 0xC11, - 0xC12, - 0xC29, - 0xC2A, - 0xC34, - 0xC35, - 0xC3A, - 0xC3E, - 0xC45, - 0xC46, - 0xC49, - 0xC4A, - 0xC4E, - 0xC55, - 0xC57, - 0xC60, - 0xC62, - 0xC66, - 0xC70, - 0xC82, - 0xC84, - 0xC85, - 0xC8D, - 0xC8E, - 0xC91, - 0xC92, - 0xCA9, - 0xCAA, - 0xCB4, - 0xCB5, - 0xCBA, - 0xCBE, - 0xCC5, - 0xCC6, - 0xCC9, - 0xCCA, - 0xCCE, - 0xCD5, - 0xCD7, - 0xCDE, - 0xCDF, - 0xCE0, - 0xCE2, - 0xCE6, - 0xCF0, - 0xD02, - 0xD04, - 0xD05, - 0xD0D, - 0xD0E, - 0xD11, - 0xD12, - 0xD29, - 0xD2A, - 0xD3A, - 0xD3E, - 0xD44, - 0xD46, - 0xD49, - 0xD4A, - 0xD4E, - 0xD57, - 0xD58, - 0xD60, - 0xD62, - 0xD66, - 0xD70, - 0xE01, - 0xE3B, - 0xE3F, - 0xE5C, - 0xE81, - 0xE83, - 0xE84, - 0xE85, - 0xE87, - 0xE89, - 0xE8A, - 0xE8B, - 0xE8D, - 0xE8E, - 0xE94, - 0xE98, - 0xE99, - 0xEA0, - 0xEA1, - 0xEA4, - 0xEA5, - 0xEA6, - 0xEA7, - 0xEA8, - 0xEAA, - 0xEAC, - 0xEAD, - 0xEBA, - 0xEBB, - 0xEBE, - 0xEC0, - 0xEC5, - 0xEC6, - 0xEC7, - 0xEC8, - 0xECE, - 0xED0, - 0xEDA, - 0xEDC, - 0xEDE, - 0x10A0, - 0x10C6, - 0x10D0, - 0x10F7, - 0x10FB, - 0x10FC, - 0x1100, - 0x115A, - 0x115F, - 0x11A3, - 0x11A8, - 0x11FA, - 0x1E00, - 0x1E9B, - 0x1EA0, - 0x1EFA, - 0x1F00, - 0x1F16, - 0x1F18, - 0x1F1E, - 0x1F20, - 0x1F46, - 0x1F48, - 0x1F4E, - 0x1F50, - 0x1F58, - 0x1F59, - 0x1F5A, - 0x1F5B, - 0x1F5C, - 0x1F5D, - 0x1F5E, - 0x1F5F, - 0x1F7E, - 0x1F80, - 0x1FB5, - 0x1FB6, - 0x1FC5, - 0x1FC6, - 0x1FD4, - 0x1FD6, - 0x1FDC, - 0x1FDD, - 0x1FF0, - 0x1FF2, - 0x1FF5, - 0x1FF6, - 0x1FFF, - 0x2000, - 0x202F, - 0x2030, - 0x2047, - 0x206A, - 0x2071, - 0x2074, - 0x208F, - 0x20A0, - 0x20AB, - 0x20D0, - 0x20E2, - 0x2100, - 0x2139, - 0x2153, - 0x2183, - 0x2190, - 0x21EB, - 0x2200, - 0x22F2, - 0x2300, - 0x2301, - 0x2302, - 0x237B, - 0x2400, - 0x2425, - 0x2440, - 0x244B, - 0x2460, - 0x24EB, - 0x2500, - 0x2596, - 0x25A0, - 0x25F0, - 0x2600, - 0x2614, - 0x261A, - 0x2670, - 0x2701, - 0x2705, - 0x2706, - 0x270A, - 0x270C, - 0x2728, - 0x2729, - 0x274C, - 0x274D, - 0x274E, - 0x274F, - 0x2753, - 0x2756, - 0x2757, - 0x2758, - 0x275F, - 0x2761, - 0x2768, - 0x2776, - 0x2795, - 0x2798, - 0x27B0, - 0x27B1, - 0x27BF, - 0x3000, - 0x3038, - 0x303F, - 0x3040, - 0x3041, - 0x3095, - 0x3099, - 0x309F, - 0x30A1, - 0x30FF, - 0x3105, - 0x312D, - 0x3131, - 0x318F, - 0x3190, - 0x31A0, - 0x3200, - 0x321D, - 0x3220, - 0x3244, - 0x3260, - 0x327C, - 0x327F, - 0x32B1, - 0x32C0, - 0x32CC, - 0x32D0, - 0x32FF, - 0x3300, - 0x3377, - 0x337B, - 0x33DE, - 0x33E0, - 0x33FF, - 0x4E00, - 0x9FA6, - 0xE000, - 0xFA2E, - 0xFB00, - 0xFB07, - 0xFB13, - 0xFB18, - 0xFB1E, - 0xFB37, - 0xFB38, - 0xFB3D, - 0xFB3E, - 0xFB3F, - 0xFB40, - 0xFB42, - 0xFB43, - 0xFB45, - 0xFB46, - 0xFBB2, - 0xFBD3, - 0xFD40, - 0xFD50, - 0xFD90, - 0xFD92, - 0xFDC8, - 0xFDF0, - 0xFDFC, - 0xFE20, - 0xFE24, - 0xFE30, - 0xFE45, - 0xFE49, - 0xFE53, - 0xFE54, - 0xFE67, - 0xFE68, - 0xFE6C, - 0xFE70, - 0xFE73, - 0xFE74, - 0xFE75, - 0xFE76, - 0xFEFD, - 0xFEFF, - 0xFF00, - 0xFF01, - 0xFF5F, - 0xFF61, - 0xFFBF, - 0xFFC2, - 0xFFC8, - 0xFFCA, - 0xFFD0, - 0xFFD2, - 0xFFD8, - 0xFFDA, - 0xFFDD, - 0xFFE0, - 0xFFE7, - 0xFFE8, - 0xFFEF, - 0xFFFD, - 0x10000 + 0x2FA1E, + 0x2FFFE, + 0x30000, + 0x3FFFE, + 0x40000, + 0x4FFFE, + 0x50000, + 0x5FFFE, + 0x60000, + 0x6FFFE, + 0x70000, + 0x7FFFE, + 0x80000, + 0x8FFFE, + 0x90000, + 0x9FFFE, + 0xA0000, + 0xAFFFE, + 0xB0000, + 0xBFFFE, + 0xC0000, + 0xCFFFE, + 0xD0000, + 0xDFFFE, + 0xE0000, + 0xE0001, + 0xE0002, + 0xE0020, + 0xE0080, + 0xE0100, + 0xE01F0, + 0xEFFFE, + 0x110000 }; -static const UV UNI_IN__10_invlist[] = { /* for all charsets */ - 1318, /* Number of elements */ +static const UV UNI_IN__11_invlist[] = { /* for all charsets */ + 1336, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -257882,10 +280491,6 @@ static const UV UNI_IN__10_invlist[] = { /* for all charsets */ 0x531, 0x557, 0x559, - 0x560, - 0x561, - 0x588, - 0x589, 0x58B, 0x58D, 0x590, @@ -257893,7 +280498,7 @@ static const UV UNI_IN__10_invlist[] = { /* for all charsets */ 0x5C8, 0x5D0, 0x5EB, - 0x5F0, + 0x5EF, 0x5F5, 0x600, 0x61D, @@ -257905,7 +280510,7 @@ static const UV UNI_IN__10_invlist[] = { /* for all charsets */ 0x7B2, 0x7C0, 0x7FB, - 0x800, + 0x7FD, 0x82E, 0x830, 0x83F, @@ -257919,7 +280524,7 @@ static const UV UNI_IN__10_invlist[] = { /* for all charsets */ 0x8B5, 0x8B6, 0x8BE, - 0x8D4, + 0x8D3, 0x984, 0x985, 0x98D, @@ -257946,7 +280551,7 @@ static const UV UNI_IN__10_invlist[] = { /* for all charsets */ 0x9DF, 0x9E4, 0x9E6, - 0x9FE, + 0x9FF, 0xA01, 0xA04, 0xA05, @@ -257978,7 +280583,7 @@ static const UV UNI_IN__10_invlist[] = { /* for all charsets */ 0xA5E, 0xA5F, 0xA66, - 0xA76, + 0xA77, 0xA81, 0xA84, 0xA85, @@ -258068,8 +280673,6 @@ static const UV UNI_IN__10_invlist[] = { /* for all charsets */ 0xBE6, 0xBFB, 0xC00, - 0xC04, - 0xC05, 0xC0D, 0xC0E, 0xC11, @@ -258092,8 +280695,6 @@ static const UV UNI_IN__10_invlist[] = { /* for all charsets */ 0xC66, 0xC70, 0xC78, - 0xC84, - 0xC85, 0xC8D, 0xC8E, 0xC91, @@ -258286,7 +280887,7 @@ static const UV UNI_IN__10_invlist[] = { /* for all charsets */ 0x1810, 0x181A, 0x1820, - 0x1878, + 0x1879, 0x1880, 0x18AB, 0x18B0, @@ -258335,7 +280936,9 @@ static const UV UNI_IN__10_invlist[] = { /* for all charsets */ 0x1C4A, 0x1C4D, 0x1C89, - 0x1CC0, + 0x1C90, + 0x1CBB, + 0x1CBD, 0x1CC8, 0x1CD0, 0x1CFA, @@ -258396,13 +280999,9 @@ static const UV UNI_IN__10_invlist[] = { /* for all charsets */ 0x2B76, 0x2B96, 0x2B98, - 0x2BBA, - 0x2BBD, 0x2BC9, 0x2BCA, - 0x2BD3, - 0x2BEC, - 0x2BF0, + 0x2BFF, 0x2C00, 0x2C2F, 0x2C30, @@ -258438,7 +281037,7 @@ static const UV UNI_IN__10_invlist[] = { /* for all charsets */ 0x2DD8, 0x2DDF, 0x2DE0, - 0x2E4A, + 0x2E4F, 0x2E80, 0x2E9A, 0x2E9B, @@ -258454,7 +281053,7 @@ static const UV UNI_IN__10_invlist[] = { /* for all charsets */ 0x3099, 0x3100, 0x3105, - 0x312F, + 0x3130, 0x3131, 0x318F, 0x3190, @@ -258468,7 +281067,7 @@ static const UV UNI_IN__10_invlist[] = { /* for all charsets */ 0x3300, 0x4DB6, 0x4DC0, - 0x9FEB, + 0x9FF0, 0xA000, 0xA48D, 0xA490, @@ -258478,9 +281077,7 @@ static const UV UNI_IN__10_invlist[] = { /* for all charsets */ 0xA640, 0xA6F8, 0xA700, - 0xA7AF, - 0xA7B0, - 0xA7B8, + 0xA7BA, 0xA7F7, 0xA82C, 0xA830, @@ -258492,8 +281089,6 @@ static const UV UNI_IN__10_invlist[] = { /* for all charsets */ 0xA8CE, 0xA8DA, 0xA8E0, - 0xA8FE, - 0xA900, 0xA954, 0xA95F, 0xA97D, @@ -258694,11 +281289,11 @@ static const UV UNI_IN__10_invlist[] = { /* for all charsets */ 0x10A15, 0x10A18, 0x10A19, - 0x10A34, + 0x10A36, 0x10A38, 0x10A3B, 0x10A3F, - 0x10A48, + 0x10A49, 0x10A50, 0x10A59, 0x10A60, @@ -258726,15 +281321,23 @@ static const UV UNI_IN__10_invlist[] = { /* for all charsets */ 0x10CC0, 0x10CF3, 0x10CFA, - 0x10D00, + 0x10D28, + 0x10D30, + 0x10D3A, 0x10E60, 0x10E7F, + 0x10F00, + 0x10F28, + 0x10F30, + 0x10F5A, 0x11000, 0x1104E, 0x11052, 0x11070, 0x1107F, 0x110C2, + 0x110CD, + 0x110CE, 0x110D0, 0x110E9, 0x110F0, @@ -258742,7 +281345,7 @@ static const UV UNI_IN__10_invlist[] = { /* for all charsets */ 0x11100, 0x11135, 0x11136, - 0x11144, + 0x11147, 0x11150, 0x11177, 0x11180, @@ -258783,7 +281386,7 @@ static const UV UNI_IN__10_invlist[] = { /* for all charsets */ 0x11334, 0x11335, 0x1133A, - 0x1133C, + 0x1133B, 0x11345, 0x11347, 0x11349, @@ -258804,7 +281407,7 @@ static const UV UNI_IN__10_invlist[] = { /* for all charsets */ 0x1145B, 0x1145C, 0x1145D, - 0x1145E, + 0x1145F, 0x11480, 0x114C8, 0x114D0, @@ -258824,11 +281427,13 @@ static const UV UNI_IN__10_invlist[] = { /* for all charsets */ 0x116C0, 0x116CA, 0x11700, - 0x1171A, + 0x1171B, 0x1171D, 0x1172C, 0x11730, 0x11740, + 0x11800, + 0x1183C, 0x118A0, 0x118F3, 0x118FF, @@ -258838,8 +281443,6 @@ static const UV UNI_IN__10_invlist[] = { /* for all charsets */ 0x11A50, 0x11A84, 0x11A86, - 0x11A9D, - 0x11A9E, 0x11AA3, 0x11AC0, 0x11AF9, @@ -258871,6 +281474,20 @@ static const UV UNI_IN__10_invlist[] = { /* for all charsets */ 0x11D48, 0x11D50, 0x11D5A, + 0x11D60, + 0x11D66, + 0x11D67, + 0x11D69, + 0x11D6A, + 0x11D8F, + 0x11D90, + 0x11D92, + 0x11D93, + 0x11D99, + 0x11DA0, + 0x11DAA, + 0x11EE0, + 0x11EF9, 0x12000, 0x1239A, 0x12400, @@ -258905,6 +281522,8 @@ static const UV UNI_IN__10_invlist[] = { /* for all charsets */ 0x16B78, 0x16B7D, 0x16B90, + 0x16E40, + 0x16E9B, 0x16F00, 0x16F45, 0x16F50, @@ -258914,7 +281533,7 @@ static const UV UNI_IN__10_invlist[] = { /* for all charsets */ 0x16FE0, 0x16FE2, 0x17000, - 0x187ED, + 0x187F2, 0x18800, 0x18AF3, 0x1B000, @@ -258939,10 +281558,12 @@ static const UV UNI_IN__10_invlist[] = { /* for all charsets */ 0x1D1E9, 0x1D200, 0x1D246, + 0x1D2E0, + 0x1D2F4, 0x1D300, 0x1D357, 0x1D360, - 0x1D372, + 0x1D379, 0x1D400, 0x1D455, 0x1D456, @@ -259009,6 +281630,8 @@ static const UV UNI_IN__10_invlist[] = { /* for all charsets */ 0x1E95A, 0x1E95E, 0x1E960, + 0x1EC71, + 0x1ECB5, 0x1EE00, 0x1EE04, 0x1EE05, @@ -259092,8 +281715,6 @@ static const UV UNI_IN__10_invlist[] = { /* for all charsets */ 0x1F100, 0x1F10D, 0x1F110, - 0x1F12F, - 0x1F130, 0x1F16C, 0x1F170, 0x1F1AD, @@ -259112,11 +281733,11 @@ static const UV UNI_IN__10_invlist[] = { /* for all charsets */ 0x1F6E0, 0x1F6ED, 0x1F6F0, - 0x1F6F9, + 0x1F6FA, 0x1F700, 0x1F774, 0x1F780, - 0x1F7D5, + 0x1F7D9, 0x1F800, 0x1F80C, 0x1F810, @@ -259132,15 +281753,21 @@ static const UV UNI_IN__10_invlist[] = { /* for all charsets */ 0x1F910, 0x1F93F, 0x1F940, - 0x1F94D, - 0x1F950, - 0x1F96C, - 0x1F980, - 0x1F998, + 0x1F971, + 0x1F973, + 0x1F977, + 0x1F97A, + 0x1F97B, + 0x1F97C, + 0x1F9A3, + 0x1F9B0, + 0x1F9BA, 0x1F9C0, - 0x1F9C1, + 0x1F9C3, 0x1F9D0, - 0x1F9E7, + 0x1FA00, + 0x1FA60, + 0x1FA6E, 0x1FFFE, 0x2A6D7, 0x2A700, @@ -259187,8 +281814,8 @@ static const UV UNI_IN__10_invlist[] = { /* for all charsets */ 0x110000 }; -static const UV UNI_IN__11_invlist[] = { /* for all charsets */ - 1336, /* Number of elements */ +static const UV UNI_IN__12_invlist[] = { /* for all charsets */ + 1354, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -259410,7 +282037,7 @@ static const UV UNI_IN__11_invlist[] = { /* for all charsets */ 0xC64, 0xC66, 0xC70, - 0xC78, + 0xC77, 0xC8D, 0xC8E, 0xC91, @@ -259484,27 +282111,13 @@ static const UV UNI_IN__11_invlist[] = { /* for all charsets */ 0xE83, 0xE84, 0xE85, - 0xE87, - 0xE89, - 0xE8A, + 0xE86, 0xE8B, - 0xE8D, - 0xE8E, - 0xE94, - 0xE98, - 0xE99, - 0xEA0, - 0xEA1, + 0xE8C, 0xEA4, 0xEA5, 0xEA6, 0xEA7, - 0xEA8, - 0xEAA, - 0xEAC, - 0xEAD, - 0xEBA, - 0xEBB, 0xEBE, 0xEC0, 0xEC5, @@ -259657,7 +282270,7 @@ static const UV UNI_IN__11_invlist[] = { /* for all charsets */ 0x1CBD, 0x1CC8, 0x1CD0, - 0x1CFA, + 0x1CFB, 0x1D00, 0x1DFA, 0x1DFB, @@ -259715,10 +282328,6 @@ static const UV UNI_IN__11_invlist[] = { /* for all charsets */ 0x2B76, 0x2B96, 0x2B98, - 0x2BC9, - 0x2BCA, - 0x2BFF, - 0x2C00, 0x2C2F, 0x2C30, 0x2C5F, @@ -259753,7 +282362,7 @@ static const UV UNI_IN__11_invlist[] = { /* for all charsets */ 0x2DD8, 0x2DDF, 0x2DE0, - 0x2E4F, + 0x2E50, 0x2E80, 0x2E9A, 0x2E9B, @@ -259793,7 +282402,9 @@ static const UV UNI_IN__11_invlist[] = { /* for all charsets */ 0xA640, 0xA6F8, 0xA700, - 0xA7BA, + 0xA7C0, + 0xA7C2, + 0xA7C7, 0xA7F7, 0xA82C, 0xA830, @@ -259835,7 +282446,7 @@ static const UV UNI_IN__11_invlist[] = { /* for all charsets */ 0xAB28, 0xAB2F, 0xAB30, - 0xAB66, + 0xAB68, 0xAB70, 0xABEE, 0xABF0, @@ -260046,6 +282657,8 @@ static const UV UNI_IN__11_invlist[] = { /* for all charsets */ 0x10F28, 0x10F30, 0x10F5A, + 0x10FE0, + 0x10FF7, 0x11000, 0x1104E, 0x11052, @@ -260123,7 +282736,7 @@ static const UV UNI_IN__11_invlist[] = { /* for all charsets */ 0x1145B, 0x1145C, 0x1145D, - 0x1145F, + 0x11460, 0x11480, 0x114C8, 0x114D0, @@ -260139,7 +282752,7 @@ static const UV UNI_IN__11_invlist[] = { /* for all charsets */ 0x11660, 0x1166D, 0x11680, - 0x116B8, + 0x116B9, 0x116C0, 0x116CA, 0x11700, @@ -260154,11 +282767,15 @@ static const UV UNI_IN__11_invlist[] = { /* for all charsets */ 0x118F3, 0x118FF, 0x11900, + 0x119A0, + 0x119A8, + 0x119AA, + 0x119D8, + 0x119DA, + 0x119E5, 0x11A00, 0x11A48, 0x11A50, - 0x11A84, - 0x11A86, 0x11AA3, 0x11AC0, 0x11AF9, @@ -260204,7 +282821,9 @@ static const UV UNI_IN__11_invlist[] = { /* for all charsets */ 0x11DAA, 0x11EE0, 0x11EF9, - 0x12000, + 0x11FC0, + 0x11FF2, + 0x11FFF, 0x1239A, 0x12400, 0x1246F, @@ -260214,6 +282833,8 @@ static const UV UNI_IN__11_invlist[] = { /* for all charsets */ 0x12544, 0x13000, 0x1342F, + 0x13430, + 0x13439, 0x14400, 0x14647, 0x16800, @@ -260241,19 +282862,23 @@ static const UV UNI_IN__11_invlist[] = { /* for all charsets */ 0x16E40, 0x16E9B, 0x16F00, - 0x16F45, - 0x16F50, - 0x16F7F, + 0x16F4B, + 0x16F4F, + 0x16F88, 0x16F8F, 0x16FA0, 0x16FE0, - 0x16FE2, + 0x16FE4, 0x17000, - 0x187F2, + 0x187F8, 0x18800, 0x18AF3, 0x1B000, 0x1B11F, + 0x1B150, + 0x1B153, + 0x1B164, + 0x1B168, 0x1B170, 0x1B2FC, 0x1BC00, @@ -260336,18 +282961,32 @@ static const UV UNI_IN__11_invlist[] = { /* for all charsets */ 0x1E025, 0x1E026, 0x1E02B, + 0x1E100, + 0x1E12D, + 0x1E130, + 0x1E13E, + 0x1E140, + 0x1E14A, + 0x1E14E, + 0x1E150, + 0x1E2C0, + 0x1E2FA, + 0x1E2FF, + 0x1E300, 0x1E800, 0x1E8C5, 0x1E8C7, 0x1E8D7, 0x1E900, - 0x1E94B, + 0x1E94C, 0x1E950, 0x1E95A, 0x1E95E, 0x1E960, 0x1EC71, 0x1ECB5, + 0x1ED01, + 0x1ED3E, 0x1EE00, 0x1EE04, 0x1EE05, @@ -260431,7 +283070,7 @@ static const UV UNI_IN__11_invlist[] = { /* for all charsets */ 0x1F100, 0x1F10D, 0x1F110, - 0x1F16C, + 0x1F16D, 0x1F170, 0x1F1AD, 0x1F1E6, @@ -260445,15 +283084,17 @@ static const UV UNI_IN__11_invlist[] = { /* for all charsets */ 0x1F260, 0x1F266, 0x1F300, - 0x1F6D5, + 0x1F6D6, 0x1F6E0, 0x1F6ED, 0x1F6F0, - 0x1F6FA, + 0x1F6FB, 0x1F700, 0x1F774, 0x1F780, 0x1F7D9, + 0x1F7E0, + 0x1F7EC, 0x1F800, 0x1F80C, 0x1F810, @@ -260466,24 +283107,28 @@ static const UV UNI_IN__11_invlist[] = { /* for all charsets */ 0x1F8AE, 0x1F900, 0x1F90C, - 0x1F910, - 0x1F93F, - 0x1F940, - 0x1F971, + 0x1F90D, + 0x1F972, 0x1F973, 0x1F977, 0x1F97A, - 0x1F97B, - 0x1F97C, 0x1F9A3, - 0x1F9B0, - 0x1F9BA, - 0x1F9C0, - 0x1F9C3, - 0x1F9D0, - 0x1FA00, + 0x1F9A5, + 0x1F9AB, + 0x1F9AE, + 0x1F9CB, + 0x1F9CD, + 0x1FA54, 0x1FA60, 0x1FA6E, + 0x1FA70, + 0x1FA74, + 0x1FA78, + 0x1FA7B, + 0x1FA80, + 0x1FA83, + 0x1FA90, + 0x1FA96, 0x1FFFE, 0x2A6D7, 0x2A700, @@ -260530,8 +283175,8 @@ static const UV UNI_IN__11_invlist[] = { /* for all charsets */ 0x110000 }; -static const UV UNI_IN__12_invlist[] = { /* for all charsets */ - 1354, /* Number of elements */ +static const UV UNI_IN__12_DOT_1_invlist[] = { /* for all charsets */ + 1352, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -261104,8 +283749,6 @@ static const UV UNI_IN__12_invlist[] = { /* for all charsets */ 0x31F0, 0x321F, 0x3220, - 0x32FF, - 0x3300, 0x4DB6, 0x4DC0, 0x9FF0, @@ -261891,8 +284534,8 @@ static const UV UNI_IN__12_invlist[] = { /* for all charsets */ 0x110000 }; -static const UV UNI_IN__12_DOT_1_invlist[] = { /* for all charsets */ - 1352, /* Number of elements */ +static const UV UNI_IN__13_invlist[] = { /* for all charsets */ + 1372, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -261943,7 +284586,7 @@ static const UV UNI_IN__12_DOT_1_invlist[] = { /* for all charsets */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x984, 0x985, @@ -262052,7 +284695,7 @@ static const UV UNI_IN__12_DOT_1_invlist[] = { /* for all charsets */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -262141,8 +284784,6 @@ static const UV UNI_IN__12_DOT_1_invlist[] = { /* for all charsets */ 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -262156,7 +284797,7 @@ static const UV UNI_IN__12_DOT_1_invlist[] = { /* for all charsets */ 0xD64, 0xD66, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -262329,7 +284970,7 @@ static const UV UNI_IN__12_DOT_1_invlist[] = { /* for all charsets */ 0x1AA0, 0x1AAE, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B4C, 0x1B50, @@ -262404,7 +285045,7 @@ static const UV UNI_IN__12_DOT_1_invlist[] = { /* for all charsets */ 0x2B74, 0x2B76, 0x2B96, - 0x2B98, + 0x2B97, 0x2C2F, 0x2C30, 0x2C5F, @@ -262439,7 +285080,7 @@ static const UV UNI_IN__12_DOT_1_invlist[] = { /* for all charsets */ 0x2DD8, 0x2DDF, 0x2DE0, - 0x2E50, + 0x2E53, 0x2E80, 0x2E9A, 0x2E9B, @@ -262459,15 +285100,11 @@ static const UV UNI_IN__12_DOT_1_invlist[] = { /* for all charsets */ 0x3131, 0x318F, 0x3190, - 0x31BB, - 0x31C0, 0x31E4, 0x31F0, 0x321F, 0x3220, - 0x4DB6, - 0x4DC0, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA490, @@ -262479,9 +285116,9 @@ static const UV UNI_IN__12_DOT_1_invlist[] = { /* for all charsets */ 0xA700, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, - 0xA82C, + 0xA7CB, + 0xA7F5, + 0xA82D, 0xA830, 0xA83A, 0xA840, @@ -262521,7 +285158,7 @@ static const UV UNI_IN__12_DOT_1_invlist[] = { /* for all charsets */ 0xAB28, 0xAB2F, 0xAB30, - 0xAB68, + 0xAB6C, 0xAB70, 0xABEE, 0xABF0, @@ -262609,7 +285246,7 @@ static const UV UNI_IN__12_DOT_1_invlist[] = { /* for all charsets */ 0x10137, 0x1018F, 0x10190, - 0x1019C, + 0x1019D, 0x101A0, 0x101A1, 0x101D0, @@ -262728,10 +285365,18 @@ static const UV UNI_IN__12_DOT_1_invlist[] = { /* for all charsets */ 0x10D3A, 0x10E60, 0x10E7F, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAE, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F28, 0x10F30, 0x10F5A, + 0x10FB0, + 0x10FCC, 0x10FE0, 0x10FF7, 0x11000, @@ -262749,12 +285394,10 @@ static const UV UNI_IN__12_DOT_1_invlist[] = { /* for all charsets */ 0x11100, 0x11135, 0x11136, - 0x11147, + 0x11148, 0x11150, 0x11177, 0x11180, - 0x111CE, - 0x111D0, 0x111E0, 0x111E1, 0x111F5, @@ -262807,11 +285450,9 @@ static const UV UNI_IN__12_DOT_1_invlist[] = { /* for all charsets */ 0x11370, 0x11375, 0x11400, - 0x1145A, - 0x1145B, 0x1145C, 0x1145D, - 0x11460, + 0x11462, 0x11480, 0x114C8, 0x114D0, @@ -262841,7 +285482,21 @@ static const UV UNI_IN__12_DOT_1_invlist[] = { /* for all charsets */ 0x118A0, 0x118F3, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11947, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -262896,6 +285551,8 @@ static const UV UNI_IN__12_DOT_1_invlist[] = { /* for all charsets */ 0x11DAA, 0x11EE0, 0x11EF9, + 0x11FB0, + 0x11FB1, 0x11FC0, 0x11FF2, 0x11FFF, @@ -262943,11 +285600,15 @@ static const UV UNI_IN__12_DOT_1_invlist[] = { /* for all charsets */ 0x16F8F, 0x16FA0, 0x16FE0, - 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -263143,11 +285804,7 @@ static const UV UNI_IN__12_DOT_1_invlist[] = { /* for all charsets */ 0x1F0D1, 0x1F0F6, 0x1F100, - 0x1F10D, - 0x1F110, - 0x1F16D, - 0x1F170, - 0x1F1AD, + 0x1F1AE, 0x1F1E6, 0x1F203, 0x1F210, @@ -263159,11 +285816,11 @@ static const UV UNI_IN__12_DOT_1_invlist[] = { /* for all charsets */ 0x1F260, 0x1F266, 0x1F300, - 0x1F6D6, + 0x1F6D8, 0x1F6E0, 0x1F6ED, 0x1F6F0, - 0x1F6FB, + 0x1F6FD, 0x1F700, 0x1F774, 0x1F780, @@ -263180,32 +285837,38 @@ static const UV UNI_IN__12_DOT_1_invlist[] = { /* for all charsets */ 0x1F888, 0x1F890, 0x1F8AE, + 0x1F8B0, + 0x1F8B2, 0x1F900, - 0x1F90C, - 0x1F90D, - 0x1F972, - 0x1F973, - 0x1F977, + 0x1F979, 0x1F97A, - 0x1F9A3, - 0x1F9A5, - 0x1F9AB, - 0x1F9AE, - 0x1F9CB, + 0x1F9CC, 0x1F9CD, 0x1FA54, 0x1FA60, 0x1FA6E, 0x1FA70, - 0x1FA74, + 0x1FA75, 0x1FA78, 0x1FA7B, 0x1FA80, - 0x1FA83, + 0x1FA87, 0x1FA90, - 0x1FA96, + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB, + 0x1FBF0, + 0x1FBFA, 0x1FFFE, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -263217,7 +285880,7 @@ static const UV UNI_IN__12_DOT_1_invlist[] = { /* for all charsets */ 0x2F800, 0x2FA1E, 0x2FFFE, - 0x30000, + 0x3134B, 0x3FFFE, 0x40000, 0x4FFFE, @@ -279705,6 +302368,16 @@ static const UV UNI_INCHEROKEE_invlist[] = { /* for all charsets */ 0x1400 }; +static const UV UNI_INCHORASMIAN_invlist[] = { /* for all charsets */ + 3, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x10FB0, + 0x10FE0 +}; + static const UV UNI_INCOPTIC_invlist[] = { /* for all charsets */ 3, /* Number of elements */ 148565664, /* Version and data structure type */ @@ -279765,6 +302438,16 @@ static const UV UNI_INDICSIYAQNUMBERS_invlist[] = { /* for all charsets */ 0x1ECC0 }; +static const UV UNI_INDIVESAKURU_invlist[] = { /* for all charsets */ + 3, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x11900, + 0x11960 +}; + static const UV UNI_INDOGRA_invlist[] = { /* for all charsets */ 3, /* Number of elements */ 148565664, /* Version and data structure type */ @@ -280055,6 +302738,16 @@ static const UV UNI_INKHAROSHTHI_invlist[] = { /* for all charsets */ 0x10A60 }; +static const UV UNI_INKHITANSMALLSCRIPT_invlist[] = { /* for all charsets */ + 3, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x18B00, + 0x18D00 +}; + static const UV UNI_INKHMER_invlist[] = { /* for all charsets */ 3, /* Number of elements */ 148565664, /* Version and data structure type */ @@ -280125,6 +302818,16 @@ static const UV UNI_INLINEARA_invlist[] = { /* for all charsets */ 0x10780 }; +static const UV UNI_INLISU_invlist[] = { /* for all charsets */ + 3, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0xA4D0, + 0xA500 +}; + static const UV UNI_INLYCIAN_invlist[] = { /* for all charsets */ 3, /* Number of elements */ 148565664, /* Version and data structure type */ @@ -280506,7 +303209,7 @@ static const UV UNI_INPAUCINHAU_invlist[] = { /* for all charsets */ }; static const UV UNI_INPC__BOTTOM_invlist[] = { /* for all charsets */ - 283, /* Number of elements */ + 287, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -280663,6 +303366,8 @@ static const UV UNI_INPC__BOTTOM_invlist[] = { /* for all charsets */ 0x1CEE, 0xA825, 0xA826, + 0xA82C, + 0xA82D, 0xA8C4, 0xA8C5, 0xA92B, @@ -280755,6 +303460,8 @@ static const UV UNI_INPC__BOTTOM_invlist[] = { /* for all charsets */ 0x11833, 0x11839, 0x1183B, + 0x11943, + 0x11944, 0x119D4, 0x119D8, 0x119E0, @@ -280806,19 +303513,23 @@ static const UV UNI_INPC__BOTTOMANDLEFT_invlist[] = { /* for all charsets */ }; static const UV UNI_INPC__BOTTOMANDRIGHT_invlist[] = { /* for all charsets */ - 5, /* Number of elements */ + 9, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ 0x0, 0x1B3B, 0x1B3C, + 0xA9BE, + 0xA9BF, 0xA9C0, - 0xA9C1 + 0xA9C1, + 0x11942, + 0x11943 }; static const UV UNI_INPC__LEFT_invlist[] = { /* for all charsets */ - 89, /* Number of elements */ + 95, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -280883,6 +303594,8 @@ static const UV UNI_INPC__LEFT_invlist[] = { /* for all charsets */ 0x1112D, 0x111B4, 0x111B5, + 0x111CE, + 0x111CF, 0x112E1, 0x112E2, 0x11347, @@ -280903,6 +303616,10 @@ static const UV UNI_INPC__LEFT_invlist[] = { /* for all charsets */ 0x11727, 0x1182D, 0x1182E, + 0x11935, + 0x11936, + 0x11937, + 0x11938, 0x119D2, 0x119D3, 0x119E4, @@ -280914,7 +303631,7 @@ static const UV UNI_INPC__LEFT_invlist[] = { /* for all charsets */ }; static const UV UNI_INPC__LEFTANDRIGHT_invlist[] = { /* for all charsets */ - 27, /* Number of elements */ + 29, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -280944,11 +303661,13 @@ static const UV UNI_INPC__LEFTANDRIGHT_invlist[] = { /* for all charsets */ 0x114BE, 0x114BF, 0x115BA, - 0x115BB + 0x115BB, + 0x11938, + 0x11939 }; static const UV UNI_INPC__NA_invlist[] = { /* for all charsets */ - 413, /* Number of elements */ + 421, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -281019,7 +303738,7 @@ static const UV UNI_INPC__NA_invlist[] = { /* for all charsets */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB62, 0xB64, @@ -281068,12 +303787,12 @@ static const UV UNI_INPC__NA_invlist[] = { /* for all charsets */ 0xD46, 0xD49, 0xD4A, - 0xD4E, + 0xD4F, 0xD57, 0xD58, 0xD62, 0xD64, - 0xD82, + 0xD81, 0xD84, 0xDCA, 0xDCB, @@ -281120,8 +303839,6 @@ static const UV UNI_INPC__NA_invlist[] = { /* for all charsets */ 0x102B, 0x1039, 0x103A, - 0x103C, - 0x103D, 0x103F, 0x1056, 0x105A, @@ -281207,6 +303924,8 @@ static const UV UNI_INPC__NA_invlist[] = { /* for all charsets */ 0xA80C, 0xA823, 0xA828, + 0xA82C, + 0xA82D, 0xA880, 0xA882, 0xA8B4, @@ -281275,8 +303994,12 @@ static const UV UNI_INPC__NA_invlist[] = { /* for all charsets */ 0x11183, 0x111B3, 0x111C1, + 0x111C2, + 0x111C4, 0x111C9, 0x111CD, + 0x111CE, + 0x111D0, 0x1122C, 0x11238, 0x1123E, @@ -281318,11 +304041,17 @@ static const UV UNI_INPC__NA_invlist[] = { /* for all charsets */ 0x116AB, 0x116B8, 0x1171D, - 0x1171E, - 0x1171F, 0x1172C, 0x1182C, 0x1183B, + 0x11930, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x1193E, + 0x1193F, + 0x11944, 0x119D1, 0x119D8, 0x119DA, @@ -281332,12 +304061,10 @@ static const UV UNI_INPC__NA_invlist[] = { /* for all charsets */ 0x11A01, 0x11A0B, 0x11A33, - 0x11A3A, - 0x11A3B, 0x11A3F, 0x11A51, 0x11A5C, - 0x11A8A, + 0x11A84, 0x11A99, 0x11C2F, 0x11C37, @@ -281355,7 +304082,7 @@ static const UV UNI_INPC__NA_invlist[] = { /* for all charsets */ 0x11D3E, 0x11D3F, 0x11D45, - 0x11D47, + 0x11D46, 0x11D48, 0x11D8A, 0x11D8F, @@ -281384,7 +304111,7 @@ static const UV UNI_INPC__OVERSTRUCK_invlist[] = { /* for all charsets */ }; static const UV UNI_INPC__RIGHT_invlist[] = { /* for all charsets */ - 323, /* Number of elements */ + 329, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -281571,8 +304298,6 @@ static const UV UNI_INPC__RIGHT_invlist[] = { /* for all charsets */ 0xA984, 0xA9B4, 0xA9B6, - 0xA9BE, - 0xA9BF, 0xAA33, 0xAA34, 0xAA4D, @@ -281683,6 +304408,12 @@ static const UV UNI_INPC__RIGHT_invlist[] = { /* for all charsets */ 0x1182F, 0x11838, 0x11839, + 0x11930, + 0x11935, + 0x1193D, + 0x1193E, + 0x11940, + 0x11941, 0x119D1, 0x119D2, 0x119D3, @@ -281703,6 +304434,8 @@ static const UV UNI_INPC__RIGHT_invlist[] = { /* for all charsets */ 0x11CAA, 0x11CB4, 0x11CB5, + 0x11D46, + 0x11D47, 0x11D8A, 0x11D8F, 0x11D93, @@ -281714,7 +304447,7 @@ static const UV UNI_INPC__RIGHT_invlist[] = { /* for all charsets */ }; static const UV UNI_INPC__TOP_invlist[] = { /* for all charsets */ - 371, /* Number of elements */ + 387, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -281753,7 +304486,7 @@ static const UV UNI_INPC__TOP_invlist[] = { /* for all charsets */ 0xB02, 0xB3F, 0xB40, - 0xB56, + 0xB55, 0xB57, 0xB82, 0xB83, @@ -281786,7 +304519,9 @@ static const UV UNI_INPC__TOP_invlist[] = { /* for all charsets */ 0xD3B, 0xD3D, 0xD4D, - 0xD4E, + 0xD4F, + 0xD81, + 0xD82, 0xDCA, 0xDCB, 0xDD2, @@ -281993,8 +304728,12 @@ static const UV UNI_INPC__TOP_invlist[] = { /* for all charsets */ 0x11182, 0x111BC, 0x111BF, + 0x111C2, + 0x111C4, 0x111CB, 0x111CC, + 0x111CF, + 0x111D0, 0x11230, 0x11232, 0x11234, @@ -282049,6 +304788,12 @@ static const UV UNI_INPC__TOP_invlist[] = { /* for all charsets */ 0x1172C, 0x11833, 0x11838, + 0x1193B, + 0x1193D, + 0x1193F, + 0x11940, + 0x11941, + 0x11942, 0x119DA, 0x119DC, 0x11A01, @@ -282057,10 +304802,14 @@ static const UV UNI_INPC__TOP_invlist[] = { /* for all charsets */ 0x11A0A, 0x11A35, 0x11A39, + 0x11A3A, + 0x11A3B, 0x11A51, 0x11A52, 0x11A54, 0x11A57, + 0x11A84, + 0x11A8A, 0x11A96, 0x11A97, 0x11A98, @@ -282111,6 +304860,18 @@ static const UV UNI_INPC__TOPANDBOTTOM_invlist[] = { /* for all charsets */ 0x11130 }; +static const UV UNI_INPC__TOPANDBOTTOMANDLEFT_invlist[] = { /* for all charsets */ + 5, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x103C, + 0x103D, + 0x1171E, + 0x1171F +}; + static const UV UNI_INPC__TOPANDBOTTOMANDRIGHT_invlist[] = { /* for all charsets */ 3, /* Number of elements */ 148565664, /* Version and data structure type */ @@ -282306,7 +305067,7 @@ static const UV UNI_INSC__AVAGRAHA_invlist[] = { /* for all charsets */ }; static const UV UNI_INSC__BINDU_invlist[] = { /* for all charsets */ - 107, /* Number of elements */ + 113, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -282335,7 +305096,9 @@ static const UV UNI_INSC__BINDU_invlist[] = { /* for all charsets */ 0xC83, 0xD00, 0xD03, - 0xD82, + 0xD04, + 0xD05, + 0xD81, 0xD83, 0xE4D, 0xE4E, @@ -282381,6 +305144,8 @@ static const UV UNI_INSC__BINDU_invlist[] = { /* for all charsets */ 0x11102, 0x11180, 0x11182, + 0x111CF, + 0x111D0, 0x11234, 0x11235, 0x112DF, @@ -282403,6 +305168,8 @@ static const UV UNI_INSC__BINDU_invlist[] = { /* for all charsets */ 0x116AC, 0x11837, 0x11838, + 0x1193B, + 0x1193D, 0x119DE, 0x119DF, 0x11A35, @@ -282462,7 +305229,7 @@ static const UV UNI_INSC__CANTILLATIONMARK_invlist[] = { /* for all charsets */ }; static const UV UNI_INSC__CONSONANT_invlist[] = { /* for all charsets */ - 299, /* Number of elements */ + 307, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -282705,6 +305472,8 @@ static const UV UNI_INSC__CONSONANT_invlist[] = { /* for all charsets */ 0x11127, 0x11144, 0x11145, + 0x11147, + 0x11148, 0x11155, 0x11173, 0x11191, @@ -282749,6 +305518,12 @@ static const UV UNI_INSC__CONSONANT_invlist[] = { /* for all charsets */ 0x1171B, 0x1180A, 0x1182C, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11930, 0x119AE, 0x119D1, 0x11A0B, @@ -282846,7 +305621,7 @@ static const UV UNI_INSC__CONSONANTKILLER_invlist[] = { /* for all charsets */ }; static const UV UNI_INSC__CONSONANTMEDIAL_invlist[] = { /* for all charsets */ - 25, /* Number of elements */ + 29, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -282871,6 +305646,10 @@ static const UV UNI_INSC__CONSONANTMEDIAL_invlist[] = { /* for all charsets */ 0xAA37, 0x1171D, 0x11720, + 0x11940, + 0x11941, + 0x11942, + 0x11943, 0x11A3B, 0x11A3F, 0x11D47, @@ -283010,25 +305789,29 @@ static const UV UNI_INSC__CONSONANTPLACEHOLDER_invlist[] = { /* for EBCDIC 037 # endif /* EBCDIC 037 */ static const UV UNI_INSC__CONSONANTPRECEDINGREPHA_invlist[] = { /* for all charsets */ - 5, /* Number of elements */ + 7, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ 0x0, 0xD4E, 0xD4F, + 0x11941, + 0x11942, 0x11D46, 0x11D47 }; static const UV UNI_INSC__CONSONANTPREFIXED_invlist[] = { /* for all charsets */ - 7, /* Number of elements */ + 9, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ 0x0, 0x111C2, 0x111C4, + 0x1193F, + 0x11940, 0x11A3A, 0x11A3B, 0x11A84, @@ -283084,7 +305867,7 @@ static const UV UNI_INSC__CONSONANTSUCCEEDINGREPHA_invlist[] = { /* for all cha }; static const UV UNI_INSC__CONSONANTWITHSTACKER_invlist[] = { /* for all charsets */ - 7, /* Number of elements */ + 9, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -283094,7 +305877,9 @@ static const UV UNI_INSC__CONSONANTWITHSTACKER_invlist[] = { /* for all charset 0x1CF5, 0x1CF7, 0x11003, - 0x11005 + 0x11005, + 0x11460, + 0x11462 }; static const UV UNI_INSC__GEMINATIONMARK_invlist[] = { /* for all charsets */ @@ -283112,7 +305897,7 @@ static const UV UNI_INSC__GEMINATIONMARK_invlist[] = { /* for all charsets */ }; static const UV UNI_INSC__INVISIBLESTACKER_invlist[] = { /* for all charsets */ - 23, /* Number of elements */ + 25, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -283131,6 +305916,8 @@ static const UV UNI_INSC__INVISIBLESTACKER_invlist[] = { /* for all charsets */ 0x10A40, 0x11133, 0x11134, + 0x1193E, + 0x1193F, 0x11A47, 0x11A48, 0x11A99, @@ -283162,7 +305949,7 @@ static const UV UNI_INSC__NONJOINER_invlist[] = { /* for all charsets */ }; static const UV UNI_INSC__NUKTA_invlist[] = { /* for all charsets */ - 51, /* Number of elements */ + 53, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -283215,6 +306002,8 @@ static const UV UNI_INSC__NUKTA_invlist[] = { /* for all charsets */ 0x116B8, 0x1183A, 0x1183B, + 0x11943, + 0x11944, 0x11D42, 0x11D43 }; @@ -283222,7 +306011,7 @@ static const UV UNI_INSC__NUKTA_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_INSC__NUMBER_invlist[] = { /* for ASCII/Latin1 */ - 89, /* Number of elements */ + 91, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -283309,6 +306098,8 @@ static const UV UNI_INSC__NUMBER_invlist[] = { /* for ASCII/Latin1 */ 0x116CA, 0x11730, 0x1173C, + 0x11950, + 0x1195A, 0x11C50, 0x11C6D, 0x11D50, @@ -283325,7 +306116,7 @@ static const UV UNI_INSC__NUMBER_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_INSC__NUMBER_invlist[] = { /* for EBCDIC 1047 */ - 89, /* Number of elements */ + 91, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -283412,6 +306203,8 @@ static const UV UNI_INSC__NUMBER_invlist[] = { /* for EBCDIC 1047 */ 0x116CA, 0x11730, 0x1173C, + 0x11950, + 0x1195A, 0x11C50, 0x11C6D, 0x11D50, @@ -283428,7 +306221,7 @@ static const UV UNI_INSC__NUMBER_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_INSC__NUMBER_invlist[] = { /* for EBCDIC 037 */ - 89, /* Number of elements */ + 91, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -283515,6 +306308,8 @@ static const UV UNI_INSC__NUMBER_invlist[] = { /* for EBCDIC 037 */ 0x116CA, 0x11730, 0x1173C, + 0x11950, + 0x1195A, 0x11C50, 0x11C6D, 0x11D50, @@ -283538,7 +306333,7 @@ static const UV UNI_INSC__NUMBERJOINER_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_INSC__OTHER_invlist[] = { /* for ASCII/Latin1 */ - 627, /* Number of elements */ + 643, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -283673,7 +306468,7 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for ASCII/Latin1 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -283764,8 +306559,6 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for ASCII/Latin1 */ 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -283783,7 +306576,7 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for ASCII/Latin1 */ 0xD70, 0xD7A, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -283951,6 +306744,8 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for ASCII/Latin1 */ 0x25CD, 0xA800, 0xA828, + 0xA82C, + 0xA82D, 0xA840, 0xA874, 0xA880, @@ -284018,14 +306813,14 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for ASCII/Latin1 */ 0x11136, 0x11140, 0x11144, - 0x11147, + 0x11148, 0x11150, 0x11174, 0x11180, 0x111C4, 0x111C9, 0x111CD, - 0x111D0, + 0x111CE, 0x111DA, 0x111E1, 0x111F5, @@ -284082,7 +306877,7 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for ASCII/Latin1 */ 0x11450, 0x1145A, 0x1145E, - 0x11460, + 0x11462, 0x11481, 0x114C5, 0x114D0, @@ -284109,6 +306904,22 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for ASCII/Latin1 */ 0x1173C, 0x11800, 0x1183B, + 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11944, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -284179,7 +306990,7 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_INSC__OTHER_invlist[] = { /* for EBCDIC 1047 */ - 627, /* Number of elements */ + 643, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -284314,7 +307125,7 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for EBCDIC 1047 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -284405,8 +307216,6 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for EBCDIC 1047 */ 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -284424,7 +307233,7 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for EBCDIC 1047 */ 0xD70, 0xD7A, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -284592,6 +307401,8 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for EBCDIC 1047 */ 0x25CD, 0xA800, 0xA828, + 0xA82C, + 0xA82D, 0xA840, 0xA874, 0xA880, @@ -284659,14 +307470,14 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for EBCDIC 1047 */ 0x11136, 0x11140, 0x11144, - 0x11147, + 0x11148, 0x11150, 0x11174, 0x11180, 0x111C4, 0x111C9, 0x111CD, - 0x111D0, + 0x111CE, 0x111DA, 0x111E1, 0x111F5, @@ -284723,7 +307534,7 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for EBCDIC 1047 */ 0x11450, 0x1145A, 0x1145E, - 0x11460, + 0x11462, 0x11481, 0x114C5, 0x114D0, @@ -284750,6 +307561,22 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for EBCDIC 1047 */ 0x1173C, 0x11800, 0x1183B, + 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11944, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -284820,7 +307647,7 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_INSC__OTHER_invlist[] = { /* for EBCDIC 037 */ - 627, /* Number of elements */ + 643, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -284955,7 +307782,7 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for EBCDIC 037 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -285046,8 +307873,6 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for EBCDIC 037 */ 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -285065,7 +307890,7 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for EBCDIC 037 */ 0xD70, 0xD7A, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -285233,6 +308058,8 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for EBCDIC 037 */ 0x25CD, 0xA800, 0xA828, + 0xA82C, + 0xA82D, 0xA840, 0xA874, 0xA880, @@ -285300,14 +308127,14 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for EBCDIC 037 */ 0x11136, 0x11140, 0x11144, - 0x11147, + 0x11148, 0x11150, 0x11174, 0x11180, 0x111C4, 0x111C9, 0x111CD, - 0x111D0, + 0x111CE, 0x111DA, 0x111E1, 0x111F5, @@ -285364,7 +308191,7 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for EBCDIC 037 */ 0x11450, 0x1145A, 0x1145E, - 0x11460, + 0x11462, 0x11481, 0x114C5, 0x114D0, @@ -285391,6 +308218,22 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for EBCDIC 037 */ 0x1173C, 0x11800, 0x1183B, + 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11944, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -285456,7 +308299,7 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for EBCDIC 037 */ # endif /* EBCDIC 037 */ static const UV UNI_INSC__PUREKILLER_invlist[] = { /* for all charsets */ - 39, /* Number of elements */ + 43, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -285485,6 +308328,8 @@ static const UV UNI_INSC__PUREKILLER_invlist[] = { /* for all charsets */ 0x1BAB, 0x1BF2, 0x1BF4, + 0xA82C, + 0xA82D, 0xA953, 0xA954, 0xABED, @@ -285495,6 +308340,8 @@ static const UV UNI_INSC__PUREKILLER_invlist[] = { /* for all charsets */ 0x112EB, 0x1172B, 0x1172C, + 0x1193D, + 0x1193E, 0x11A34, 0x11A35, 0x11D44, @@ -285882,7 +308729,7 @@ static const UV UNI_INSC__VOWEL_invlist[] = { /* for all charsets */ }; static const UV UNI_INSC__VOWELDEPENDENT_invlist[] = { /* for all charsets */ - 259, /* Number of elements */ + 265, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -285927,7 +308774,7 @@ static const UV UNI_INSC__VOWELDEPENDENT_invlist[] = { /* for all charsets */ 0xB49, 0xB4B, 0xB4D, - 0xB56, + 0xB55, 0xB58, 0xB62, 0xB64, @@ -286077,6 +308924,8 @@ static const UV UNI_INSC__VOWELDEPENDENT_invlist[] = { /* for all charsets */ 0x111C0, 0x111CB, 0x111CD, + 0x111CE, + 0x111CF, 0x1122C, 0x11234, 0x112E0, @@ -286111,6 +308960,10 @@ static const UV UNI_INSC__VOWELDEPENDENT_invlist[] = { /* for all charsets */ 0x1172B, 0x1182C, 0x11837, + 0x11930, + 0x11936, + 0x11937, + 0x11939, 0x119D1, 0x119D8, 0x119DA, @@ -286148,7 +309001,7 @@ static const UV UNI_INSC__VOWELDEPENDENT_invlist[] = { /* for all charsets */ }; static const UV UNI_INSC__VOWELINDEPENDENT_invlist[] = { /* for all charsets */ - 171, /* Number of elements */ + 175, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -286299,6 +309152,10 @@ static const UV UNI_INSC__VOWELINDEPENDENT_invlist[] = { /* for all charsets */ 0x1168A, 0x11800, 0x1180A, + 0x11900, + 0x11907, + 0x11909, + 0x1190A, 0x119A0, 0x119A8, 0x119AA, @@ -286325,16 +309182,6 @@ static const UV UNI_INSC__VOWELINDEPENDENT_invlist[] = { /* for all charsets */ 0x11D6C }; -static const UV UNI_INSHARADA_invlist[] = { /* for all charsets */ - 3, /* Number of elements */ - 148565664, /* Version and data structure type */ - 1, /* 0 if the list starts at 0; - 1 if it starts at the element beyond 0 */ - 0x0, - 0x11180, - 0x111E0 -}; - static const UV UNI_INSIDDHAM_invlist[] = { /* for all charsets */ 3, /* Number of elements */ 148565664, /* Version and data structure type */ @@ -286605,6 +309452,16 @@ static const UV UNI_INWARANGCITI_invlist[] = { /* for all charsets */ 0x11900 }; +static const UV UNI_INYEZIDI_invlist[] = { /* for all charsets */ + 3, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x10E80, + 0x10EC0 +}; + static const UV UNI_INZANABAZARSQUARE_invlist[] = { /* for all charsets */ 3, /* Number of elements */ 148565664, /* Version and data structure type */ @@ -286702,17 +309559,19 @@ static const UV UNI_JG__AFRICANNOON_invlist[] = { /* for all charsets */ }; static const UV UNI_JG__AFRICANQAF_invlist[] = { /* for all charsets */ - 3, /* Number of elements */ + 5, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ 0x0, 0x8BC, - 0x8BD + 0x8BD, + 0x8C4, + 0x8C5 }; static const UV UNI_JG__AIN_invlist[] = { /* for all charsets */ - 11, /* Number of elements */ + 13, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -286726,7 +309585,9 @@ static const UV UNI_JG__AIN_invlist[] = { /* for all charsets */ 0x75D, 0x760, 0x8B3, - 0x8B4 + 0x8B4, + 0x8C3, + 0x8C4 }; static const UV UNI_JG__ALAPH_invlist[] = { /* for all charsets */ @@ -286760,7 +309621,7 @@ static const UV UNI_JG__ALEF_invlist[] = { /* for all charsets */ }; static const UV UNI_JG__BEH_invlist[] = { /* for all charsets */ - 15, /* Number of elements */ + 17, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -286778,7 +309639,9 @@ static const UV UNI_JG__BEH_invlist[] = { /* for all charsets */ 0x8A0, 0x8A2, 0x8B6, - 0x8B9 + 0x8B9, + 0x8BE, + 0x8C1 }; static const UV UNI_JG__BETH_invlist[] = { /* for all charsets */ @@ -286898,7 +309761,7 @@ static const UV UNI_JG__FINALSEMKATH_invlist[] = { /* for all charsets */ }; static const UV UNI_JG__GAF_invlist[] = { /* for all charsets */ - 13, /* Number of elements */ + 15, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -286914,7 +309777,9 @@ static const UV UNI_JG__GAF_invlist[] = { /* for all charsets */ 0x762, 0x765, 0x8B0, - 0x8B1 + 0x8B1, + 0x8C2, + 0x8C3 }; static const UV UNI_JG__GAMAL_invlist[] = { /* for all charsets */ @@ -286930,7 +309795,7 @@ static const UV UNI_JG__GAMAL_invlist[] = { /* for all charsets */ }; static const UV UNI_JG__HAH_invlist[] = { /* for all charsets */ - 17, /* Number of elements */ + 21, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -286950,7 +309815,11 @@ static const UV UNI_JG__HAH_invlist[] = { /* for all charsets */ 0x77C, 0x77D, 0x8A2, - 0x8A3 + 0x8A3, + 0x8C1, + 0x8C2, + 0x8C5, + 0x8C7 }; static const UV UNI_JG__HAMZAONHEHGOAL_invlist[] = { /* for all charsets */ @@ -287082,7 +309951,7 @@ static const UV UNI_JG__KNOTTEDHEH_invlist[] = { /* for all charsets */ }; static const UV UNI_JG__LAM_invlist[] = { /* for all charsets */ - 9, /* Number of elements */ + 11, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -287094,7 +309963,9 @@ static const UV UNI_JG__LAM_invlist[] = { /* for all charsets */ 0x76A, 0x76B, 0x8A6, - 0x8A7 + 0x8A7, + 0x8C7, + 0x8C8 }; static const UV UNI_JG__LAMADH_invlist[] = { /* for all charsets */ @@ -287550,7 +310421,7 @@ static const UV UNI_JG__NOJOININGGROUP_invlist[] = { /* for all charsets */ 0x8AE, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x10AC0, 0x10AC6, 0x10AC7, @@ -287974,7 +310845,7 @@ static const UV UNI_JT__C_invlist[] = { /* for all charsets */ }; static const UV UNI_JT__D_invlist[] = { /* for all charsets */ - 129, /* Number of elements */ + 145, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -288060,7 +310931,7 @@ static const UV UNI_JT__D_invlist[] = { /* for all charsets */ 0x8B6, 0x8B9, 0x8BA, - 0x8BE, + 0x8C8, 0x1807, 0x1808, 0x1820, @@ -288105,12 +310976,28 @@ static const UV UNI_JT__D_invlist[] = { /* for all charsets */ 0x10F45, 0x10F51, 0x10F54, + 0x10FB0, + 0x10FB1, + 0x10FB2, + 0x10FB4, + 0x10FB8, + 0x10FB9, + 0x10FBB, + 0x10FBD, + 0x10FBE, + 0x10FC0, + 0x10FC1, + 0x10FC2, + 0x10FC4, + 0x10FC5, + 0x10FCA, + 0x10FCB, 0x1E900, 0x1E944 }; static const UV UNI_JT__L_invlist[] = { /* for all charsets */ - 9, /* Number of elements */ + 11, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -288122,11 +311009,13 @@ static const UV UNI_JT__L_invlist[] = { /* for all charsets */ 0x10AD7, 0x10AD8, 0x10D00, - 0x10D01 + 0x10D01, + 0x10FCB, + 0x10FCC }; static const UV UNI_JT__R_invlist[] = { /* for all charsets */ - 113, /* Number of elements */ + 125, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -288195,6 +311084,8 @@ static const UV UNI_JT__R_invlist[] = { /* for all charsets */ 0x84A, 0x854, 0x855, + 0x856, + 0x859, 0x867, 0x868, 0x869, @@ -288242,13 +311133,23 @@ static const UV UNI_JT__R_invlist[] = { /* for all charsets */ 0x10F33, 0x10F34, 0x10F54, - 0x10F55 + 0x10F55, + 0x10FB4, + 0x10FB7, + 0x10FB9, + 0x10FBB, + 0x10FBD, + 0x10FBE, + 0x10FC2, + 0x10FC4, + 0x10FC9, + 0x10FCA }; # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_JT__T_invlist[] = { /* for ASCII/Latin1 */ - 661, /* Number of elements */ + 677, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -288375,7 +311276,7 @@ static const UV UNI_JT__T_invlist[] = { /* for ASCII/Latin1 */ 0xB45, 0xB4D, 0xB4E, - 0xB56, + 0xB55, 0xB57, 0xB62, 0xB64, @@ -288421,6 +311322,8 @@ static const UV UNI_JT__T_invlist[] = { /* for ASCII/Latin1 */ 0xD4E, 0xD62, 0xD64, + 0xD81, + 0xD82, 0xDCA, 0xDCB, 0xDD2, @@ -288534,7 +311437,7 @@ static const UV UNI_JT__T_invlist[] = { /* for ASCII/Latin1 */ 0x1A7F, 0x1A80, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B04, 0x1B34, @@ -288621,6 +311524,8 @@ static const UV UNI_JT__T_invlist[] = { /* for ASCII/Latin1 */ 0xA80C, 0xA825, 0xA827, + 0xA82C, + 0xA82D, 0xA8C4, 0xA8C6, 0xA8E0, @@ -288703,6 +311608,8 @@ static const UV UNI_JT__T_invlist[] = { /* for ASCII/Latin1 */ 0x10AE7, 0x10D24, 0x10D28, + 0x10EAB, + 0x10EAD, 0x10F46, 0x10F51, 0x11001, @@ -288729,6 +311636,8 @@ static const UV UNI_JT__T_invlist[] = { /* for ASCII/Latin1 */ 0x111BF, 0x111C9, 0x111CD, + 0x111CF, + 0x111D0, 0x1122F, 0x11232, 0x11234, @@ -288799,6 +311708,12 @@ static const UV UNI_JT__T_invlist[] = { /* for ASCII/Latin1 */ 0x11838, 0x11839, 0x1183B, + 0x1193B, + 0x1193D, + 0x1193E, + 0x1193F, + 0x11943, + 0x11944, 0x119D4, 0x119D8, 0x119DA, @@ -288863,6 +311778,8 @@ static const UV UNI_JT__T_invlist[] = { /* for ASCII/Latin1 */ 0x16F50, 0x16F8F, 0x16F93, + 0x16FE4, + 0x16FE5, 0x1BC9D, 0x1BC9F, 0x1BCA0, @@ -288923,7 +311840,7 @@ static const UV UNI_JT__T_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 1047 */ - 661, /* Number of elements */ + 677, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -289050,7 +311967,7 @@ static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 1047 */ 0xB45, 0xB4D, 0xB4E, - 0xB56, + 0xB55, 0xB57, 0xB62, 0xB64, @@ -289096,6 +312013,8 @@ static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 1047 */ 0xD4E, 0xD62, 0xD64, + 0xD81, + 0xD82, 0xDCA, 0xDCB, 0xDD2, @@ -289209,7 +312128,7 @@ static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 1047 */ 0x1A7F, 0x1A80, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B04, 0x1B34, @@ -289296,6 +312215,8 @@ static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 1047 */ 0xA80C, 0xA825, 0xA827, + 0xA82C, + 0xA82D, 0xA8C4, 0xA8C6, 0xA8E0, @@ -289378,6 +312299,8 @@ static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 1047 */ 0x10AE7, 0x10D24, 0x10D28, + 0x10EAB, + 0x10EAD, 0x10F46, 0x10F51, 0x11001, @@ -289404,6 +312327,8 @@ static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 1047 */ 0x111BF, 0x111C9, 0x111CD, + 0x111CF, + 0x111D0, 0x1122F, 0x11232, 0x11234, @@ -289474,6 +312399,12 @@ static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 1047 */ 0x11838, 0x11839, 0x1183B, + 0x1193B, + 0x1193D, + 0x1193E, + 0x1193F, + 0x11943, + 0x11944, 0x119D4, 0x119D8, 0x119DA, @@ -289538,6 +312469,8 @@ static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 1047 */ 0x16F50, 0x16F8F, 0x16F93, + 0x16FE4, + 0x16FE5, 0x1BC9D, 0x1BC9F, 0x1BCA0, @@ -289598,7 +312531,7 @@ static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 037 */ - 661, /* Number of elements */ + 677, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -289725,7 +312658,7 @@ static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 037 */ 0xB45, 0xB4D, 0xB4E, - 0xB56, + 0xB55, 0xB57, 0xB62, 0xB64, @@ -289771,6 +312704,8 @@ static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 037 */ 0xD4E, 0xD62, 0xD64, + 0xD81, + 0xD82, 0xDCA, 0xDCB, 0xDD2, @@ -289884,7 +312819,7 @@ static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 037 */ 0x1A7F, 0x1A80, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B04, 0x1B34, @@ -289971,6 +312906,8 @@ static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 037 */ 0xA80C, 0xA825, 0xA827, + 0xA82C, + 0xA82D, 0xA8C4, 0xA8C6, 0xA8E0, @@ -290053,6 +312990,8 @@ static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 037 */ 0x10AE7, 0x10D24, 0x10D28, + 0x10EAB, + 0x10EAD, 0x10F46, 0x10F51, 0x11001, @@ -290079,6 +313018,8 @@ static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 037 */ 0x111BF, 0x111C9, 0x111CD, + 0x111CF, + 0x111D0, 0x1122F, 0x11232, 0x11234, @@ -290149,6 +313090,12 @@ static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 037 */ 0x11838, 0x11839, 0x1183B, + 0x1193B, + 0x1193D, + 0x1193E, + 0x1193F, + 0x11943, + 0x11944, 0x119D4, 0x119D8, 0x119DA, @@ -290213,6 +313160,8 @@ static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 037 */ 0x16F50, 0x16F8F, 0x16F93, + 0x16FE4, + 0x16FE5, 0x1BC9D, 0x1BC9F, 0x1BCA0, @@ -290270,7 +313219,7 @@ static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_JT__U_invlist[] = { /* for ASCII/Latin1 */ - 703, /* Number of elements */ + 727, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -290336,8 +313285,6 @@ static const UV UNI_JT__U_invlist[] = { /* for ASCII/Latin1 */ 0x829, 0x82E, 0x840, - 0x856, - 0x859, 0x85C, 0x860, 0x861, @@ -290350,7 +313297,7 @@ static const UV UNI_JT__U_invlist[] = { /* for ASCII/Latin1 */ 0x8AE, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x8E2, 0x8E3, @@ -290419,7 +313366,7 @@ static const UV UNI_JT__U_invlist[] = { /* for ASCII/Latin1 */ 0xB45, 0xB4D, 0xB4E, - 0xB56, + 0xB55, 0xB57, 0xB62, 0xB64, @@ -290465,6 +313412,8 @@ static const UV UNI_JT__U_invlist[] = { /* for ASCII/Latin1 */ 0xD4E, 0xD62, 0xD64, + 0xD81, + 0xD82, 0xDCA, 0xDCB, 0xDD2, @@ -290580,7 +313529,7 @@ static const UV UNI_JT__U_invlist[] = { /* for ASCII/Latin1 */ 0x1A7F, 0x1A80, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B04, 0x1B34, @@ -290667,6 +313616,8 @@ static const UV UNI_JT__U_invlist[] = { /* for ASCII/Latin1 */ 0xA80C, 0xA825, 0xA827, + 0xA82C, + 0xA82D, 0xA840, 0xA873, 0xA8C4, @@ -290765,10 +313716,22 @@ static const UV UNI_JT__U_invlist[] = { /* for ASCII/Latin1 */ 0x10BAF, 0x10D00, 0x10D28, + 0x10EAB, + 0x10EAD, 0x10F30, 0x10F45, 0x10F46, 0x10F55, + 0x10FB0, + 0x10FB1, + 0x10FB2, + 0x10FB7, + 0x10FB8, + 0x10FC0, + 0x10FC1, + 0x10FC5, + 0x10FC9, + 0x10FCC, 0x11001, 0x11002, 0x11038, @@ -290793,6 +313756,8 @@ static const UV UNI_JT__U_invlist[] = { /* for ASCII/Latin1 */ 0x111BF, 0x111C9, 0x111CD, + 0x111CF, + 0x111D0, 0x1122F, 0x11232, 0x11234, @@ -290863,6 +313828,12 @@ static const UV UNI_JT__U_invlist[] = { /* for ASCII/Latin1 */ 0x11838, 0x11839, 0x1183B, + 0x1193B, + 0x1193D, + 0x1193E, + 0x1193F, + 0x11943, + 0x11944, 0x119D4, 0x119D8, 0x119DA, @@ -290927,6 +313898,8 @@ static const UV UNI_JT__U_invlist[] = { /* for ASCII/Latin1 */ 0x16F50, 0x16F8F, 0x16F93, + 0x16FE4, + 0x16FE5, 0x1BC9D, 0x1BC9F, 0x1BCA0, @@ -290987,7 +313960,7 @@ static const UV UNI_JT__U_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 1047 */ - 703, /* Number of elements */ + 727, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -291053,8 +314026,6 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 1047 */ 0x829, 0x82E, 0x840, - 0x856, - 0x859, 0x85C, 0x860, 0x861, @@ -291067,7 +314038,7 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 1047 */ 0x8AE, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x8E2, 0x8E3, @@ -291136,7 +314107,7 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 1047 */ 0xB45, 0xB4D, 0xB4E, - 0xB56, + 0xB55, 0xB57, 0xB62, 0xB64, @@ -291182,6 +314153,8 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 1047 */ 0xD4E, 0xD62, 0xD64, + 0xD81, + 0xD82, 0xDCA, 0xDCB, 0xDD2, @@ -291297,7 +314270,7 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 1047 */ 0x1A7F, 0x1A80, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B04, 0x1B34, @@ -291384,6 +314357,8 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 1047 */ 0xA80C, 0xA825, 0xA827, + 0xA82C, + 0xA82D, 0xA840, 0xA873, 0xA8C4, @@ -291482,10 +314457,22 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 1047 */ 0x10BAF, 0x10D00, 0x10D28, + 0x10EAB, + 0x10EAD, 0x10F30, 0x10F45, 0x10F46, 0x10F55, + 0x10FB0, + 0x10FB1, + 0x10FB2, + 0x10FB7, + 0x10FB8, + 0x10FC0, + 0x10FC1, + 0x10FC5, + 0x10FC9, + 0x10FCC, 0x11001, 0x11002, 0x11038, @@ -291510,6 +314497,8 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 1047 */ 0x111BF, 0x111C9, 0x111CD, + 0x111CF, + 0x111D0, 0x1122F, 0x11232, 0x11234, @@ -291580,6 +314569,12 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 1047 */ 0x11838, 0x11839, 0x1183B, + 0x1193B, + 0x1193D, + 0x1193E, + 0x1193F, + 0x11943, + 0x11944, 0x119D4, 0x119D8, 0x119DA, @@ -291644,6 +314639,8 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 1047 */ 0x16F50, 0x16F8F, 0x16F93, + 0x16FE4, + 0x16FE5, 0x1BC9D, 0x1BC9F, 0x1BCA0, @@ -291704,7 +314701,7 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 037 */ - 703, /* Number of elements */ + 727, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -291770,8 +314767,6 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 037 */ 0x829, 0x82E, 0x840, - 0x856, - 0x859, 0x85C, 0x860, 0x861, @@ -291784,7 +314779,7 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 037 */ 0x8AE, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x8E2, 0x8E3, @@ -291853,7 +314848,7 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 037 */ 0xB45, 0xB4D, 0xB4E, - 0xB56, + 0xB55, 0xB57, 0xB62, 0xB64, @@ -291899,6 +314894,8 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 037 */ 0xD4E, 0xD62, 0xD64, + 0xD81, + 0xD82, 0xDCA, 0xDCB, 0xDD2, @@ -292014,7 +315011,7 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 037 */ 0x1A7F, 0x1A80, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B04, 0x1B34, @@ -292101,6 +315098,8 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 037 */ 0xA80C, 0xA825, 0xA827, + 0xA82C, + 0xA82D, 0xA840, 0xA873, 0xA8C4, @@ -292199,10 +315198,22 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 037 */ 0x10BAF, 0x10D00, 0x10D28, + 0x10EAB, + 0x10EAD, 0x10F30, 0x10F45, 0x10F46, 0x10F55, + 0x10FB0, + 0x10FB1, + 0x10FB2, + 0x10FB7, + 0x10FB8, + 0x10FC0, + 0x10FC1, + 0x10FC5, + 0x10FC9, + 0x10FCC, 0x11001, 0x11002, 0x11038, @@ -292227,6 +315238,8 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 037 */ 0x111BF, 0x111C9, 0x111CD, + 0x111CF, + 0x111D0, 0x1122F, 0x11232, 0x11234, @@ -292297,6 +315310,12 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 037 */ 0x11838, 0x11839, 0x1183B, + 0x1193B, + 0x1193D, + 0x1193E, + 0x1193F, + 0x11943, + 0x11944, 0x119D4, 0x119D8, 0x119DA, @@ -292361,6 +315380,8 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 037 */ 0x16F50, 0x16F8F, 0x16F93, + 0x16FE4, + 0x16FE5, 0x1BC9D, 0x1BC9F, 0x1BCA0, @@ -292579,6 +315600,18 @@ static const UV UNI_KHOJ_invlist[] = { /* for all charsets */ 0x1123F }; +static const UV UNI_KITS_invlist[] = { /* for all charsets */ + 5, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x16FE4, + 0x16FE5, + 0x18B00, + 0x18CD6 +}; + static const UV UNI_KNDA_invlist[] = { /* for all charsets */ 43, /* Number of elements */ 148565664, /* Version and data structure type */ @@ -292648,7 +315681,7 @@ static const UV UNI_KTHI_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_L_invlist[] = { /* for ASCII/Latin1 */ - 1219, /* Number of elements */ + 1245, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -292754,7 +315787,7 @@ static const UV UNI_L_invlist[] = { /* for ASCII/Latin1 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x904, 0x93A, 0x93D, @@ -292905,7 +315938,7 @@ static const UV UNI_L_invlist[] = { /* for ASCII/Latin1 */ 0xCE2, 0xCF1, 0xCF3, - 0xD05, + 0xD04, 0xD0D, 0xD0E, 0xD11, @@ -293248,13 +316281,13 @@ static const UV UNI_L_invlist[] = { /* for ASCII/Latin1 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA4D0, @@ -293278,8 +316311,8 @@ static const UV UNI_L_invlist[] = { /* for ASCII/Latin1 */ 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA802, 0xA803, 0xA806, @@ -293354,7 +316387,7 @@ static const UV UNI_L_invlist[] = { /* for ASCII/Latin1 */ 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB6A, 0xAB70, 0xABE3, 0xAC00, @@ -293521,12 +316554,18 @@ static const UV UNI_L_invlist[] = { /* for ASCII/Latin1 */ 0x10CF3, 0x10D00, 0x10D24, + 0x10E80, + 0x10EAA, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, 0x10F28, 0x10F30, 0x10F46, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11003, @@ -293539,6 +316578,8 @@ static const UV UNI_L_invlist[] = { /* for ASCII/Latin1 */ 0x11127, 0x11144, 0x11145, + 0x11147, + 0x11148, 0x11150, 0x11173, 0x11176, @@ -293590,7 +316631,7 @@ static const UV UNI_L_invlist[] = { /* for ASCII/Latin1 */ 0x11447, 0x1144B, 0x1145F, - 0x11460, + 0x11462, 0x11480, 0x114B0, 0x114C4, @@ -293616,7 +316657,19 @@ static const UV UNI_L_invlist[] = { /* for ASCII/Latin1 */ 0x118A0, 0x118E0, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11930, + 0x1193F, + 0x11940, + 0x11941, + 0x11942, 0x119A0, 0x119A8, 0x119AA, @@ -293665,6 +316718,8 @@ static const UV UNI_L_invlist[] = { /* for ASCII/Latin1 */ 0x11D99, 0x11EE0, 0x11EF3, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12480, @@ -293702,7 +316757,9 @@ static const UV UNI_L_invlist[] = { /* for ASCII/Latin1 */ 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -293860,7 +316917,7 @@ static const UV UNI_L_invlist[] = { /* for ASCII/Latin1 */ 0x1EEAB, 0x1EEBC, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -293870,7 +316927,9 @@ static const UV UNI_L_invlist[] = { /* for ASCII/Latin1 */ 0x2CEB0, 0x2EBE1, 0x2F800, - 0x2FA1E + 0x2FA1E, + 0x30000, + 0x3134B }; # endif /* ASCII/Latin1 */ @@ -293881,7 +316940,7 @@ static const UV UNI_L_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_L_invlist[] = { /* for EBCDIC 1047 */ - 1245, /* Number of elements */ + 1271, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -294013,7 +317072,7 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 1047 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x904, 0x93A, 0x93D, @@ -294164,7 +317223,7 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 1047 */ 0xCE2, 0xCF1, 0xCF3, - 0xD05, + 0xD04, 0xD0D, 0xD0E, 0xD11, @@ -294507,13 +317566,13 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 1047 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA4D0, @@ -294537,8 +317596,8 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 1047 */ 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA802, 0xA803, 0xA806, @@ -294613,7 +317672,7 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 1047 */ 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB6A, 0xAB70, 0xABE3, 0xAC00, @@ -294780,12 +317839,18 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 1047 */ 0x10CF3, 0x10D00, 0x10D24, + 0x10E80, + 0x10EAA, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, 0x10F28, 0x10F30, 0x10F46, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11003, @@ -294798,6 +317863,8 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 1047 */ 0x11127, 0x11144, 0x11145, + 0x11147, + 0x11148, 0x11150, 0x11173, 0x11176, @@ -294849,7 +317916,7 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 1047 */ 0x11447, 0x1144B, 0x1145F, - 0x11460, + 0x11462, 0x11480, 0x114B0, 0x114C4, @@ -294875,7 +317942,19 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 1047 */ 0x118A0, 0x118E0, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11930, + 0x1193F, + 0x11940, + 0x11941, + 0x11942, 0x119A0, 0x119A8, 0x119AA, @@ -294924,6 +318003,8 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 1047 */ 0x11D99, 0x11EE0, 0x11EF3, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12480, @@ -294961,7 +318042,9 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 1047 */ 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -295119,7 +318202,7 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 1047 */ 0x1EEAB, 0x1EEBC, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -295129,7 +318212,9 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 1047 */ 0x2CEB0, 0x2EBE1, 0x2F800, - 0x2FA1E + 0x2FA1E, + 0x30000, + 0x3134B }; # endif /* EBCDIC 1047 */ @@ -295140,7 +318225,7 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_L_invlist[] = { /* for EBCDIC 037 */ - 1241, /* Number of elements */ + 1267, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -295268,7 +318353,7 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 037 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x904, 0x93A, 0x93D, @@ -295419,7 +318504,7 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 037 */ 0xCE2, 0xCF1, 0xCF3, - 0xD05, + 0xD04, 0xD0D, 0xD0E, 0xD11, @@ -295762,13 +318847,13 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 037 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA4D0, @@ -295792,8 +318877,8 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 037 */ 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA802, 0xA803, 0xA806, @@ -295868,7 +318953,7 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 037 */ 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB6A, 0xAB70, 0xABE3, 0xAC00, @@ -296035,12 +319120,18 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 037 */ 0x10CF3, 0x10D00, 0x10D24, + 0x10E80, + 0x10EAA, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, 0x10F28, 0x10F30, 0x10F46, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11003, @@ -296053,6 +319144,8 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 037 */ 0x11127, 0x11144, 0x11145, + 0x11147, + 0x11148, 0x11150, 0x11173, 0x11176, @@ -296104,7 +319197,7 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 037 */ 0x11447, 0x1144B, 0x1145F, - 0x11460, + 0x11462, 0x11480, 0x114B0, 0x114C4, @@ -296130,7 +319223,19 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 037 */ 0x118A0, 0x118E0, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11930, + 0x1193F, + 0x11940, + 0x11941, + 0x11942, 0x119A0, 0x119A8, 0x119AA, @@ -296179,6 +319284,8 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 037 */ 0x11D99, 0x11EE0, 0x11EF3, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12480, @@ -296216,7 +319323,9 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 037 */ 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -296374,7 +319483,7 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 037 */ 0x1EEAB, 0x1EEBC, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -296384,7 +319493,9 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 037 */ 0x2CEB0, 0x2EBE1, 0x2F800, - 0x2FA1E + 0x2FA1E, + 0x30000, + 0x3134B }; # endif /* EBCDIC 037 */ @@ -296654,7 +319765,7 @@ static const UV UNI_LATINEXTE_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_LATN_invlist[] = { /* for ASCII/Latin1 */ - 79, /* Number of elements */ + 81, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -296715,13 +319826,15 @@ static const UV UNI_LATN_invlist[] = { /* for ASCII/Latin1 */ 0x2189, 0x2C60, 0x2C80, + 0xA700, + 0xA708, 0xA722, 0xA788, 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA800, 0xA92E, 0xA92F, @@ -296730,7 +319843,7 @@ static const UV UNI_LATN_invlist[] = { /* for ASCII/Latin1 */ 0xAB5C, 0xAB65, 0xAB66, - 0xAB68, + 0xAB6A, 0xFB00, 0xFB07, 0xFF21, @@ -296747,7 +319860,7 @@ static const UV UNI_LATN_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_LATN_invlist[] = { /* for EBCDIC 1047 */ - 105, /* Number of elements */ + 107, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -296834,13 +319947,15 @@ static const UV UNI_LATN_invlist[] = { /* for EBCDIC 1047 */ 0x2189, 0x2C60, 0x2C80, + 0xA700, + 0xA708, 0xA722, 0xA788, 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA800, 0xA92E, 0xA92F, @@ -296849,7 +319964,7 @@ static const UV UNI_LATN_invlist[] = { /* for EBCDIC 1047 */ 0xAB5C, 0xAB65, 0xAB66, - 0xAB68, + 0xAB6A, 0xFB00, 0xFB07, 0xFF21, @@ -296866,7 +319981,7 @@ static const UV UNI_LATN_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_LATN_invlist[] = { /* for EBCDIC 037 */ - 101, /* Number of elements */ + 103, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -296949,13 +320064,15 @@ static const UV UNI_LATN_invlist[] = { /* for EBCDIC 037 */ 0x2189, 0x2C60, 0x2C80, + 0xA700, + 0xA708, 0xA722, 0xA788, 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA800, 0xA92E, 0xA92F, @@ -296964,7 +320081,7 @@ static const UV UNI_LATN_invlist[] = { /* for EBCDIC 037 */ 0xAB5C, 0xAB65, 0xAB66, - 0xAB68, + 0xAB6A, 0xFB00, 0xFB07, 0xFF21, @@ -297686,7 +320803,7 @@ static const UV UNI_LB__AI_invlist[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_LB__AL_invlist[] = { /* for ASCII/Latin1 */ - 1511, /* Number of elements */ + 1541, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -297814,7 +320931,7 @@ static const UV UNI_LB__AL_invlist[] = { /* for ASCII/Latin1 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8E2, 0x8E3, 0x904, @@ -297979,7 +321096,7 @@ static const UV UNI_LB__AL_invlist[] = { /* for ASCII/Latin1 */ 0xCE2, 0xCF1, 0xCF3, - 0xD05, + 0xD04, 0xD0D, 0xD0E, 0xD11, @@ -298441,7 +321558,7 @@ static const UV UNI_LB__AL_invlist[] = { /* for ASCII/Latin1 */ 0x2B74, 0x2B76, 0x2B96, - 0x2B98, + 0x2B97, 0x2C2F, 0x2C30, 0x2C5F, @@ -298497,6 +321614,8 @@ static const UV UNI_LB__AL_invlist[] = { /* for ASCII/Latin1 */ 0x2E4C, 0x2E4D, 0x2E4E, + 0x2E50, + 0x2E53, 0x4DC0, 0x4E00, 0xA4D0, @@ -298520,8 +321639,8 @@ static const UV UNI_LB__AL_invlist[] = { /* for ASCII/Latin1 */ 0xA700, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA802, 0xA803, 0xA806, @@ -298582,7 +321701,7 @@ static const UV UNI_LB__AL_invlist[] = { /* for ASCII/Latin1 */ 0xAB28, 0xAB2F, 0xAB30, - 0xAB68, + 0xAB6C, 0xAB70, 0xABE3, 0xFB00, @@ -298628,7 +321747,7 @@ static const UV UNI_LB__AL_invlist[] = { /* for ASCII/Latin1 */ 0x10137, 0x1018F, 0x10190, - 0x1019C, + 0x1019D, 0x101A0, 0x101A1, 0x101D0, @@ -298741,12 +321860,18 @@ static const UV UNI_LB__AL_invlist[] = { /* for ASCII/Latin1 */ 0x10D24, 0x10E60, 0x10E7F, + 0x10E80, + 0x10EAA, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F28, 0x10F30, 0x10F46, 0x10F51, 0x10F5A, + 0x10FB0, + 0x10FCC, 0x10FE0, 0x10FF7, 0x11003, @@ -298767,6 +321892,8 @@ static const UV UNI_LB__AL_invlist[] = { /* for ASCII/Latin1 */ 0x11127, 0x11144, 0x11145, + 0x11147, + 0x11148, 0x11150, 0x11173, 0x11174, @@ -298834,7 +321961,7 @@ static const UV UNI_LB__AL_invlist[] = { /* for ASCII/Latin1 */ 0x1145D, 0x1145E, 0x1145F, - 0x11460, + 0x11462, 0x11480, 0x114B0, 0x114C4, @@ -298862,7 +321989,19 @@ static const UV UNI_LB__AL_invlist[] = { /* for ASCII/Latin1 */ 0x118EA, 0x118F3, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11930, + 0x1193F, + 0x11940, + 0x11941, + 0x11942, 0x119A0, 0x119A8, 0x119AA, @@ -298919,6 +322058,8 @@ static const UV UNI_LB__AL_invlist[] = { /* for ASCII/Latin1 */ 0x11EF3, 0x11EF7, 0x11EF9, + 0x11FB0, + 0x11FB1, 0x11FC0, 0x11FDD, 0x11FE1, @@ -298971,6 +322112,8 @@ static const UV UNI_LB__AL_invlist[] = { /* for ASCII/Latin1 */ 0x16F51, 0x16F93, 0x16FA0, + 0x18B00, + 0x18CD6, 0x1BC00, 0x1BC6B, 0x1BC70, @@ -299200,7 +322343,11 @@ static const UV UNI_LB__AL_invlist[] = { /* for ASCII/Latin1 */ 0x1F900, 0x1F90C, 0x1FA00, - 0x1FA54 + 0x1FA54, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB }; # endif /* ASCII/Latin1 */ @@ -299211,7 +322358,7 @@ static const UV UNI_LB__AL_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 1047 */ - 1539, /* Number of elements */ + 1569, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -299367,7 +322514,7 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 1047 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8E2, 0x8E3, 0x904, @@ -299532,7 +322679,7 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 1047 */ 0xCE2, 0xCF1, 0xCF3, - 0xD05, + 0xD04, 0xD0D, 0xD0E, 0xD11, @@ -299994,7 +323141,7 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 1047 */ 0x2B74, 0x2B76, 0x2B96, - 0x2B98, + 0x2B97, 0x2C2F, 0x2C30, 0x2C5F, @@ -300050,6 +323197,8 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 1047 */ 0x2E4C, 0x2E4D, 0x2E4E, + 0x2E50, + 0x2E53, 0x4DC0, 0x4E00, 0xA4D0, @@ -300073,8 +323222,8 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 1047 */ 0xA700, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA802, 0xA803, 0xA806, @@ -300135,7 +323284,7 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 1047 */ 0xAB28, 0xAB2F, 0xAB30, - 0xAB68, + 0xAB6C, 0xAB70, 0xABE3, 0xFB00, @@ -300181,7 +323330,7 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 1047 */ 0x10137, 0x1018F, 0x10190, - 0x1019C, + 0x1019D, 0x101A0, 0x101A1, 0x101D0, @@ -300294,12 +323443,18 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 1047 */ 0x10D24, 0x10E60, 0x10E7F, + 0x10E80, + 0x10EAA, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F28, 0x10F30, 0x10F46, 0x10F51, 0x10F5A, + 0x10FB0, + 0x10FCC, 0x10FE0, 0x10FF7, 0x11003, @@ -300320,6 +323475,8 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 1047 */ 0x11127, 0x11144, 0x11145, + 0x11147, + 0x11148, 0x11150, 0x11173, 0x11174, @@ -300387,7 +323544,7 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 1047 */ 0x1145D, 0x1145E, 0x1145F, - 0x11460, + 0x11462, 0x11480, 0x114B0, 0x114C4, @@ -300415,7 +323572,19 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 1047 */ 0x118EA, 0x118F3, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11930, + 0x1193F, + 0x11940, + 0x11941, + 0x11942, 0x119A0, 0x119A8, 0x119AA, @@ -300472,6 +323641,8 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 1047 */ 0x11EF3, 0x11EF7, 0x11EF9, + 0x11FB0, + 0x11FB1, 0x11FC0, 0x11FDD, 0x11FE1, @@ -300524,6 +323695,8 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 1047 */ 0x16F51, 0x16F93, 0x16FA0, + 0x18B00, + 0x18CD6, 0x1BC00, 0x1BC6B, 0x1BC70, @@ -300753,7 +323926,11 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 1047 */ 0x1F900, 0x1F90C, 0x1FA00, - 0x1FA54 + 0x1FA54, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB }; # endif /* EBCDIC 1047 */ @@ -300764,7 +323941,7 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 037 */ - 1535, /* Number of elements */ + 1565, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -300916,7 +324093,7 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 037 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8E2, 0x8E3, 0x904, @@ -301081,7 +324258,7 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 037 */ 0xCE2, 0xCF1, 0xCF3, - 0xD05, + 0xD04, 0xD0D, 0xD0E, 0xD11, @@ -301543,7 +324720,7 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 037 */ 0x2B74, 0x2B76, 0x2B96, - 0x2B98, + 0x2B97, 0x2C2F, 0x2C30, 0x2C5F, @@ -301599,6 +324776,8 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 037 */ 0x2E4C, 0x2E4D, 0x2E4E, + 0x2E50, + 0x2E53, 0x4DC0, 0x4E00, 0xA4D0, @@ -301622,8 +324801,8 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 037 */ 0xA700, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA802, 0xA803, 0xA806, @@ -301684,7 +324863,7 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 037 */ 0xAB28, 0xAB2F, 0xAB30, - 0xAB68, + 0xAB6C, 0xAB70, 0xABE3, 0xFB00, @@ -301730,7 +324909,7 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 037 */ 0x10137, 0x1018F, 0x10190, - 0x1019C, + 0x1019D, 0x101A0, 0x101A1, 0x101D0, @@ -301843,12 +325022,18 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 037 */ 0x10D24, 0x10E60, 0x10E7F, + 0x10E80, + 0x10EAA, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F28, 0x10F30, 0x10F46, 0x10F51, 0x10F5A, + 0x10FB0, + 0x10FCC, 0x10FE0, 0x10FF7, 0x11003, @@ -301869,6 +325054,8 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 037 */ 0x11127, 0x11144, 0x11145, + 0x11147, + 0x11148, 0x11150, 0x11173, 0x11174, @@ -301936,7 +325123,7 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 037 */ 0x1145D, 0x1145E, 0x1145F, - 0x11460, + 0x11462, 0x11480, 0x114B0, 0x114C4, @@ -301964,7 +325151,19 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 037 */ 0x118EA, 0x118F3, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11930, + 0x1193F, + 0x11940, + 0x11941, + 0x11942, 0x119A0, 0x119A8, 0x119AA, @@ -302021,6 +325220,8 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 037 */ 0x11EF3, 0x11EF7, 0x11EF9, + 0x11FB0, + 0x11FB1, 0x11FC0, 0x11FDD, 0x11FE1, @@ -302073,6 +325274,8 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 037 */ 0x16F51, 0x16F93, 0x16FA0, + 0x18B00, + 0x18CD6, 0x1BC00, 0x1BC6B, 0x1BC70, @@ -302302,7 +325505,11 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 037 */ 0x1F900, 0x1F90C, 0x1FA00, - 0x1FA54 + 0x1FA54, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB }; # endif /* EBCDIC 037 */ @@ -302322,7 +325529,7 @@ static const UV UNI_LB__B2_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_LB__BA_invlist[] = { /* for ASCII/Latin1 */ - 193, /* Number of elements */ + 197, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -302463,6 +325670,8 @@ static const UV UNI_LB__BA_invlist[] = { /* for ASCII/Latin1 */ 0x10AF6, 0x10B39, 0x10B40, + 0x10EAD, + 0x10EAE, 0x11047, 0x11049, 0x110BE, @@ -302483,7 +325692,7 @@ static const UV UNI_LB__BA_invlist[] = { /* for ASCII/Latin1 */ 0x112AA, 0x1144B, 0x1144F, - 0x1145B, + 0x1145A, 0x1145C, 0x115C2, 0x115C4, @@ -302493,6 +325702,8 @@ static const UV UNI_LB__BA_invlist[] = { /* for ASCII/Latin1 */ 0x11643, 0x1173C, 0x1173F, + 0x11944, + 0x11947, 0x11A41, 0x11A45, 0x11A9A, @@ -302529,7 +325740,7 @@ static const UV UNI_LB__BA_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_LB__BA_invlist[] = { /* for EBCDIC 1047 */ - 193, /* Number of elements */ + 197, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -302670,6 +325881,8 @@ static const UV UNI_LB__BA_invlist[] = { /* for EBCDIC 1047 */ 0x10AF6, 0x10B39, 0x10B40, + 0x10EAD, + 0x10EAE, 0x11047, 0x11049, 0x110BE, @@ -302690,7 +325903,7 @@ static const UV UNI_LB__BA_invlist[] = { /* for EBCDIC 1047 */ 0x112AA, 0x1144B, 0x1144F, - 0x1145B, + 0x1145A, 0x1145C, 0x115C2, 0x115C4, @@ -302700,6 +325913,8 @@ static const UV UNI_LB__BA_invlist[] = { /* for EBCDIC 1047 */ 0x11643, 0x1173C, 0x1173F, + 0x11944, + 0x11947, 0x11A41, 0x11A45, 0x11A9A, @@ -302736,7 +325951,7 @@ static const UV UNI_LB__BA_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_LB__BA_invlist[] = { /* for EBCDIC 037 */ - 193, /* Number of elements */ + 197, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -302877,6 +326092,8 @@ static const UV UNI_LB__BA_invlist[] = { /* for EBCDIC 037 */ 0x10AF6, 0x10B39, 0x10B40, + 0x10EAD, + 0x10EAE, 0x11047, 0x11049, 0x110BE, @@ -302897,7 +326114,7 @@ static const UV UNI_LB__BA_invlist[] = { /* for EBCDIC 037 */ 0x112AA, 0x1144B, 0x1144F, - 0x1145B, + 0x1145A, 0x1145C, 0x115C2, 0x115C4, @@ -302907,6 +326124,8 @@ static const UV UNI_LB__BA_invlist[] = { /* for EBCDIC 037 */ 0x11643, 0x1173C, 0x1173F, + 0x11944, + 0x11947, 0x11A41, 0x11A45, 0x11A9A, @@ -303792,7 +327011,7 @@ static const UV UNI_LB__CL_invlist[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_LB__CM_invlist[] = { /* for ASCII/Latin1 */ - 538, /* Number of elements */ + 556, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -303926,7 +327145,7 @@ static const UV UNI_LB__CM_invlist[] = { /* for ASCII/Latin1 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB62, 0xB64, @@ -303980,7 +327199,7 @@ static const UV UNI_LB__CM_invlist[] = { /* for ASCII/Latin1 */ 0xD58, 0xD62, 0xD64, - 0xD82, + 0xD81, 0xD84, 0xDCA, 0xDCB, @@ -304039,7 +327258,7 @@ static const UV UNI_LB__CM_invlist[] = { /* for ASCII/Latin1 */ 0x1A7F, 0x1A80, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B05, 0x1B34, @@ -304106,6 +327325,8 @@ static const UV UNI_LB__CM_invlist[] = { /* for ASCII/Latin1 */ 0xA80C, 0xA823, 0xA828, + 0xA82C, + 0xA82D, 0xA880, 0xA882, 0xA8B4, @@ -304164,6 +327385,8 @@ static const UV UNI_LB__CM_invlist[] = { /* for ASCII/Latin1 */ 0x10AE7, 0x10D24, 0x10D28, + 0x10EAB, + 0x10EAD, 0x10F46, 0x10F51, 0x11000, @@ -304188,6 +327411,8 @@ static const UV UNI_LB__CM_invlist[] = { /* for ASCII/Latin1 */ 0x111C1, 0x111C9, 0x111CD, + 0x111CE, + 0x111D0, 0x1122C, 0x11238, 0x1123E, @@ -304230,6 +327455,16 @@ static const UV UNI_LB__CM_invlist[] = { /* for ASCII/Latin1 */ 0x116B8, 0x1182C, 0x1183B, + 0x11930, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x1193F, + 0x11940, + 0x11941, + 0x11942, + 0x11944, 0x119D1, 0x119D8, 0x119DA, @@ -304284,6 +327519,8 @@ static const UV UNI_LB__CM_invlist[] = { /* for ASCII/Latin1 */ 0x16F88, 0x16F8F, 0x16F93, + 0x16FF0, + 0x16FF2, 0x1BC9D, 0x1BC9F, 0x1BCA0, @@ -304344,7 +327581,7 @@ static const UV UNI_LB__CM_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 1047 */ - 542, /* Number of elements */ + 560, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -304482,7 +327719,7 @@ static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 1047 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB62, 0xB64, @@ -304536,7 +327773,7 @@ static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 1047 */ 0xD58, 0xD62, 0xD64, - 0xD82, + 0xD81, 0xD84, 0xDCA, 0xDCB, @@ -304595,7 +327832,7 @@ static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 1047 */ 0x1A7F, 0x1A80, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B05, 0x1B34, @@ -304662,6 +327899,8 @@ static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 1047 */ 0xA80C, 0xA823, 0xA828, + 0xA82C, + 0xA82D, 0xA880, 0xA882, 0xA8B4, @@ -304720,6 +327959,8 @@ static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 1047 */ 0x10AE7, 0x10D24, 0x10D28, + 0x10EAB, + 0x10EAD, 0x10F46, 0x10F51, 0x11000, @@ -304744,6 +327985,8 @@ static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 1047 */ 0x111C1, 0x111C9, 0x111CD, + 0x111CE, + 0x111D0, 0x1122C, 0x11238, 0x1123E, @@ -304786,6 +328029,16 @@ static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 1047 */ 0x116B8, 0x1182C, 0x1183B, + 0x11930, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x1193F, + 0x11940, + 0x11941, + 0x11942, + 0x11944, 0x119D1, 0x119D8, 0x119DA, @@ -304840,6 +328093,8 @@ static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 1047 */ 0x16F88, 0x16F8F, 0x16F93, + 0x16FF0, + 0x16FF2, 0x1BC9D, 0x1BC9F, 0x1BCA0, @@ -304900,7 +328155,7 @@ static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 037 */ - 542, /* Number of elements */ + 560, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -305038,7 +328293,7 @@ static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 037 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB62, 0xB64, @@ -305092,7 +328347,7 @@ static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 037 */ 0xD58, 0xD62, 0xD64, - 0xD82, + 0xD81, 0xD84, 0xDCA, 0xDCB, @@ -305151,7 +328406,7 @@ static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 037 */ 0x1A7F, 0x1A80, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B05, 0x1B34, @@ -305218,6 +328473,8 @@ static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 037 */ 0xA80C, 0xA823, 0xA828, + 0xA82C, + 0xA82D, 0xA880, 0xA882, 0xA8B4, @@ -305276,6 +328533,8 @@ static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 037 */ 0x10AE7, 0x10D24, 0x10D28, + 0x10EAB, + 0x10EAD, 0x10F46, 0x10F51, 0x11000, @@ -305300,6 +328559,8 @@ static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 037 */ 0x111C1, 0x111C9, 0x111CD, + 0x111CE, + 0x111D0, 0x1122C, 0x11238, 0x1123E, @@ -305342,6 +328603,16 @@ static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 037 */ 0x116B8, 0x1182C, 0x1183B, + 0x11930, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x1193F, + 0x11940, + 0x11941, + 0x11942, + 0x11944, 0x119D1, 0x119D8, 0x119DA, @@ -305396,6 +328667,8 @@ static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 037 */ 0x16F88, 0x16F8F, 0x16F93, + 0x16FF0, + 0x16FF2, 0x1BC9D, 0x1BC9F, 0x1BCA0, @@ -305552,96 +328825,6 @@ static const UV UNI_LB__CR_invlist[] = { /* for EBCDIC 037 */ # endif /* EBCDIC 037 */ -static const UV UNI_LB__EB_invlist[] = { /* for all charsets */ - 73, /* Number of elements */ - 148565664, /* Version and data structure type */ - 1, /* 0 if the list starts at 0; - 1 if it starts at the element beyond 0 */ - 0x0, - 0x261D, - 0x261E, - 0x26F9, - 0x26FA, - 0x270A, - 0x270E, - 0x1F385, - 0x1F386, - 0x1F3C2, - 0x1F3C5, - 0x1F3C7, - 0x1F3C8, - 0x1F3CA, - 0x1F3CD, - 0x1F442, - 0x1F444, - 0x1F446, - 0x1F451, - 0x1F466, - 0x1F479, - 0x1F47C, - 0x1F47D, - 0x1F481, - 0x1F484, - 0x1F485, - 0x1F488, - 0x1F48F, - 0x1F490, - 0x1F491, - 0x1F492, - 0x1F4AA, - 0x1F4AB, - 0x1F574, - 0x1F576, - 0x1F57A, - 0x1F57B, - 0x1F590, - 0x1F591, - 0x1F595, - 0x1F597, - 0x1F645, - 0x1F648, - 0x1F64B, - 0x1F650, - 0x1F6A3, - 0x1F6A4, - 0x1F6B4, - 0x1F6B7, - 0x1F6C0, - 0x1F6C1, - 0x1F6CC, - 0x1F6CD, - 0x1F90F, - 0x1F910, - 0x1F918, - 0x1F920, - 0x1F926, - 0x1F927, - 0x1F930, - 0x1F93A, - 0x1F93C, - 0x1F93F, - 0x1F9B5, - 0x1F9B7, - 0x1F9B8, - 0x1F9BA, - 0x1F9BB, - 0x1F9BC, - 0x1F9CD, - 0x1F9D0, - 0x1F9D1, - 0x1F9DE -}; - -static const UV UNI_LB__EM_invlist[] = { /* for all charsets */ - 3, /* Number of elements */ - 148565664, /* Version and data structure type */ - 1, /* 0 if the list starts at 0; - 1 if it starts at the element beyond 0 */ - 0x0, - 0x1F3FB, - 0x1F400 -}; - # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_LB__EX_invlist[] = { /* for ASCII/Latin1 */ @@ -305831,7 +329014,7 @@ static const UV UNI_LB__EX_invlist[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_LB__GL_invlist[] = { /* for ASCII/Latin1 */ - 25, /* Number of elements */ + 27, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -305859,7 +329042,9 @@ static const UV UNI_LB__GL_invlist[] = { /* for ASCII/Latin1 */ 0x202F, 0x2030, 0x13430, - 0x13437 + 0x13437, + 0x16FE4, + 0x16FE5 }; # endif /* ASCII/Latin1 */ @@ -305870,7 +329055,7 @@ static const UV UNI_LB__GL_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_LB__GL_invlist[] = { /* for EBCDIC 1047 */ - 25, /* Number of elements */ + 27, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -305898,7 +329083,9 @@ static const UV UNI_LB__GL_invlist[] = { /* for EBCDIC 1047 */ 0x202F, 0x2030, 0x13430, - 0x13437 + 0x13437, + 0x16FE4, + 0x16FE5 }; # endif /* EBCDIC 1047 */ @@ -305909,7 +329096,7 @@ static const UV UNI_LB__GL_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_LB__GL_invlist[] = { /* for EBCDIC 037 */ - 25, /* Number of elements */ + 27, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -305937,7 +329124,9 @@ static const UV UNI_LB__GL_invlist[] = { /* for EBCDIC 037 */ 0x202F, 0x2030, 0x13430, - 0x13437 + 0x13437, + 0x16FE4, + 0x16FE5 }; # endif /* EBCDIC 037 */ @@ -307631,7 +330820,7 @@ static const UV UNI_LB__HY_invlist[] = { /* for EBCDIC 037 */ # endif /* EBCDIC 037 */ static const UV UNI_LB__ID_invlist[] = { /* for all charsets */ - 327, /* Number of elements */ + 331, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -307757,8 +330946,6 @@ static const UV UNI_LB__ID_invlist[] = { /* for all charsets */ 0x3131, 0x318F, 0x3190, - 0x31BB, - 0x31C0, 0x31E4, 0x3200, 0x321F, @@ -307831,7 +331018,9 @@ static const UV UNI_LB__ID_invlist[] = { /* for all charsets */ 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18B00, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B170, @@ -307934,7 +331123,7 @@ static const UV UNI_LB__ID_invlist[] = { /* for all charsets */ 0x1F890, 0x1F8AE, 0x1F900, - 0x1F90C, + 0x1F90D, 0x1F90F, 0x1F910, 0x1F918, @@ -307945,6 +331134,8 @@ static const UV UNI_LB__ID_invlist[] = { /* for all charsets */ 0x1F93A, 0x1F93C, 0x1F93F, + 0x1F977, + 0x1F978, 0x1F9B5, 0x1F9B7, 0x1F9B8, @@ -307957,6 +331148,8 @@ static const UV UNI_LB__ID_invlist[] = { /* for all charsets */ 0x1F9DE, 0x1FA00, 0x1FA54, + 0x1FB00, + 0x1FC00, 0x1FFFE, 0x20000, 0x2FFFE, @@ -308227,7 +331420,7 @@ static const UV UNI_LB__NS_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_LB__NU_invlist[] = { /* for ASCII/Latin1 */ - 119, /* Number of elements */ + 123, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -308332,6 +331525,8 @@ static const UV UNI_LB__NU_invlist[] = { /* for ASCII/Latin1 */ 0x1173A, 0x118E0, 0x118EA, + 0x11950, + 0x1195A, 0x11C50, 0x11C5A, 0x11D50, @@ -308349,7 +331544,9 @@ static const UV UNI_LB__NU_invlist[] = { /* for ASCII/Latin1 */ 0x1E2F0, 0x1E2FA, 0x1E950, - 0x1E95A + 0x1E95A, + 0x1FBF0, + 0x1FBFA }; # endif /* ASCII/Latin1 */ @@ -308360,7 +331557,7 @@ static const UV UNI_LB__NU_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_LB__NU_invlist[] = { /* for EBCDIC 1047 */ - 119, /* Number of elements */ + 123, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -308465,6 +331662,8 @@ static const UV UNI_LB__NU_invlist[] = { /* for EBCDIC 1047 */ 0x1173A, 0x118E0, 0x118EA, + 0x11950, + 0x1195A, 0x11C50, 0x11C5A, 0x11D50, @@ -308482,7 +331681,9 @@ static const UV UNI_LB__NU_invlist[] = { /* for EBCDIC 1047 */ 0x1E2F0, 0x1E2FA, 0x1E950, - 0x1E95A + 0x1E95A, + 0x1FBF0, + 0x1FBFA }; # endif /* EBCDIC 1047 */ @@ -308493,7 +331694,7 @@ static const UV UNI_LB__NU_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_LB__NU_invlist[] = { /* for EBCDIC 037 */ - 119, /* Number of elements */ + 123, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -308598,6 +331799,8 @@ static const UV UNI_LB__NU_invlist[] = { /* for EBCDIC 037 */ 0x1173A, 0x118E0, 0x118EA, + 0x11950, + 0x1195A, 0x11C50, 0x11C5A, 0x11D50, @@ -308615,7 +331818,9 @@ static const UV UNI_LB__NU_invlist[] = { /* for EBCDIC 037 */ 0x1E2F0, 0x1E2FA, 0x1E950, - 0x1E95A + 0x1E95A, + 0x1FBF0, + 0x1FBFA }; # endif /* EBCDIC 037 */ @@ -309851,7 +333056,7 @@ static const UV UNI_LB__WJ_invlist[] = { /* for all charsets */ }; static const UV UNI_LB__XX_invlist[] = { /* for all charsets */ - 1240, /* Number of elements */ + 1266, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -309902,7 +333107,7 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x984, 0x985, @@ -310011,7 +333216,7 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -310100,8 +333305,6 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */ 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -310115,7 +333318,7 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */ 0xD64, 0xD66, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -310288,7 +333491,7 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */ 0x1AA0, 0x1AAE, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B4C, 0x1B50, @@ -310361,7 +333564,7 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */ 0x2B74, 0x2B76, 0x2B96, - 0x2B98, + 0x2B97, 0x2C2F, 0x2C30, 0x2C5F, @@ -310396,7 +333599,7 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */ 0x2DD8, 0x2DDF, 0x2DE0, - 0x2E50, + 0x2E53, 0x2E80, 0x2E9A, 0x2E9B, @@ -310416,8 +333619,6 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */ 0x3131, 0x318F, 0x3190, - 0x31BB, - 0x31C0, 0x31E4, 0x31F0, 0x321F, @@ -310432,9 +333633,9 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */ 0xA700, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, - 0xA82C, + 0xA7CB, + 0xA7F5, + 0xA82D, 0xA830, 0xA83A, 0xA840, @@ -310474,7 +333675,7 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */ 0xAB28, 0xAB2F, 0xAB30, - 0xAB68, + 0xAB6C, 0xAB70, 0xABEE, 0xABF0, @@ -310562,7 +333763,7 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */ 0x10137, 0x1018F, 0x10190, - 0x1019C, + 0x1019D, 0x101A0, 0x101A1, 0x101D0, @@ -310681,10 +333882,18 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */ 0x10D3A, 0x10E60, 0x10E7F, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAE, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F28, 0x10F30, 0x10F5A, + 0x10FB0, + 0x10FCC, 0x10FE0, 0x10FF7, 0x11000, @@ -310702,12 +333911,10 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */ 0x11100, 0x11135, 0x11136, - 0x11147, + 0x11148, 0x11150, 0x11177, 0x11180, - 0x111CE, - 0x111D0, 0x111E0, 0x111E1, 0x111F5, @@ -310760,11 +333967,9 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */ 0x11370, 0x11375, 0x11400, - 0x1145A, - 0x1145B, 0x1145C, 0x1145D, - 0x11460, + 0x11462, 0x11480, 0x114C8, 0x114D0, @@ -310794,7 +333999,21 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */ 0x118A0, 0x118F3, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11947, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -310849,6 +334068,8 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */ 0x11DAA, 0x11EE0, 0x11EF9, + 0x11FB0, + 0x11FB1, 0x11FC0, 0x11FF2, 0x11FFF, @@ -310896,11 +334117,15 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */ 0x16F8F, 0x16FA0, 0x16FE0, - 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -311084,6 +334309,12 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */ 0x1EEF0, 0x1EEF2, 0x1F000, + 0x1FB93, + 0x1FB94, + 0x1FBCB, + 0x1FBF0, + 0x1FBFA, + 0x1FC00, 0x1FFFE, 0x20000, 0x2FFFE, @@ -311226,17 +334457,29 @@ static const UV UNI_LINEARBSYLLABARY_invlist[] = { /* for all charsets */ }; static const UV UNI_LISU_invlist[] = { /* for all charsets */ - 3, /* Number of elements */ + 5, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ 0x0, 0xA4D0, - 0xA500 + 0xA500, + 0x11FB0, + 0x11FB1 +}; + +static const UV UNI_LISUSUP_invlist[] = { /* for all charsets */ + 3, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x11FB0, + 0x11FC0 }; static const UV UNI_LM_invlist[] = { /* for all charsets */ - 121, /* Number of elements */ + 123, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -311345,6 +334588,8 @@ static const UV UNI_LM_invlist[] = { /* for all charsets */ 0xAAF5, 0xAB5C, 0xAB60, + 0xAB69, + 0xAB6A, 0xFF70, 0xFF71, 0xFF9E, @@ -311366,7 +334611,7 @@ static const UV UNI_LM_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_LO_invlist[] = { /* for ASCII/Latin1 */ - 953, /* Number of elements */ + 979, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -311420,7 +334665,7 @@ static const UV UNI_LO_invlist[] = { /* for ASCII/Latin1 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x904, 0x93A, 0x93D, @@ -311571,7 +334816,7 @@ static const UV UNI_LO_invlist[] = { /* for ASCII/Latin1 */ 0xCE2, 0xCF1, 0xCF3, - 0xD05, + 0xD04, 0xD0D, 0xD0E, 0xD11, @@ -311798,13 +335043,13 @@ static const UV UNI_LO_invlist[] = { /* for ASCII/Latin1 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA015, 0xA016, @@ -312051,12 +335296,18 @@ static const UV UNI_LO_invlist[] = { /* for ASCII/Latin1 */ 0x10C49, 0x10D00, 0x10D24, + 0x10E80, + 0x10EAA, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, 0x10F28, 0x10F30, 0x10F46, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11003, @@ -312069,6 +335320,8 @@ static const UV UNI_LO_invlist[] = { /* for ASCII/Latin1 */ 0x11127, 0x11144, 0x11145, + 0x11147, + 0x11148, 0x11150, 0x11173, 0x11176, @@ -312120,7 +335373,7 @@ static const UV UNI_LO_invlist[] = { /* for ASCII/Latin1 */ 0x11447, 0x1144B, 0x1145F, - 0x11460, + 0x11462, 0x11480, 0x114B0, 0x114C4, @@ -312144,7 +335397,19 @@ static const UV UNI_LO_invlist[] = { /* for ASCII/Latin1 */ 0x11800, 0x1182C, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11930, + 0x1193F, + 0x11940, + 0x11941, + 0x11942, 0x119A0, 0x119A8, 0x119AA, @@ -312193,6 +335458,8 @@ static const UV UNI_LO_invlist[] = { /* for ASCII/Latin1 */ 0x11D99, 0x11EE0, 0x11EF3, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12480, @@ -312220,7 +335487,9 @@ static const UV UNI_LO_invlist[] = { /* for ASCII/Latin1 */ 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -312312,7 +335581,7 @@ static const UV UNI_LO_invlist[] = { /* for ASCII/Latin1 */ 0x1EEAB, 0x1EEBC, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -312322,7 +335591,9 @@ static const UV UNI_LO_invlist[] = { /* for ASCII/Latin1 */ 0x2CEB0, 0x2EBE1, 0x2F800, - 0x2FA1E + 0x2FA1E, + 0x30000, + 0x3134B }; # endif /* ASCII/Latin1 */ @@ -312333,7 +335604,7 @@ static const UV UNI_LO_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_LO_invlist[] = { /* for EBCDIC 1047 */ - 951, /* Number of elements */ + 977, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -312385,7 +335656,7 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 1047 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x904, 0x93A, 0x93D, @@ -312536,7 +335807,7 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 1047 */ 0xCE2, 0xCF1, 0xCF3, - 0xD05, + 0xD04, 0xD0D, 0xD0E, 0xD11, @@ -312763,13 +336034,13 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 1047 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA015, 0xA016, @@ -313016,12 +336287,18 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 1047 */ 0x10C49, 0x10D00, 0x10D24, + 0x10E80, + 0x10EAA, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, 0x10F28, 0x10F30, 0x10F46, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11003, @@ -313034,6 +336311,8 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 1047 */ 0x11127, 0x11144, 0x11145, + 0x11147, + 0x11148, 0x11150, 0x11173, 0x11176, @@ -313085,7 +336364,7 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 1047 */ 0x11447, 0x1144B, 0x1145F, - 0x11460, + 0x11462, 0x11480, 0x114B0, 0x114C4, @@ -313109,7 +336388,19 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 1047 */ 0x11800, 0x1182C, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11930, + 0x1193F, + 0x11940, + 0x11941, + 0x11942, 0x119A0, 0x119A8, 0x119AA, @@ -313158,6 +336449,8 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 1047 */ 0x11D99, 0x11EE0, 0x11EF3, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12480, @@ -313185,7 +336478,9 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 1047 */ 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -313277,7 +336572,7 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 1047 */ 0x1EEAB, 0x1EEBC, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -313287,7 +336582,9 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 1047 */ 0x2CEB0, 0x2EBE1, 0x2F800, - 0x2FA1E + 0x2FA1E, + 0x30000, + 0x3134B }; # endif /* EBCDIC 1047 */ @@ -313298,7 +336595,7 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_LO_invlist[] = { /* for EBCDIC 037 */ - 951, /* Number of elements */ + 977, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -313350,7 +336647,7 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 037 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x904, 0x93A, 0x93D, @@ -313501,7 +336798,7 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 037 */ 0xCE2, 0xCF1, 0xCF3, - 0xD05, + 0xD04, 0xD0D, 0xD0E, 0xD11, @@ -313728,13 +337025,13 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 037 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA015, 0xA016, @@ -313981,12 +337278,18 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 037 */ 0x10C49, 0x10D00, 0x10D24, + 0x10E80, + 0x10EAA, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, 0x10F28, 0x10F30, 0x10F46, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11003, @@ -313999,6 +337302,8 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 037 */ 0x11127, 0x11144, 0x11145, + 0x11147, + 0x11148, 0x11150, 0x11173, 0x11176, @@ -314050,7 +337355,7 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 037 */ 0x11447, 0x1144B, 0x1145F, - 0x11460, + 0x11462, 0x11480, 0x114B0, 0x114C4, @@ -314074,7 +337379,19 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 037 */ 0x11800, 0x1182C, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11930, + 0x1193F, + 0x11940, + 0x11941, + 0x11942, 0x119A0, 0x119A8, 0x119AA, @@ -314123,6 +337440,8 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 037 */ 0x11D99, 0x11EE0, 0x11EF3, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12480, @@ -314150,7 +337469,9 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 037 */ 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -314242,7 +337563,7 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 037 */ 0x1EEAB, 0x1EEBC, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -314252,7 +337573,9 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 037 */ 0x2CEB0, 0x2EBE1, 0x2F800, - 0x2FA1E + 0x2FA1E, + 0x30000, + 0x3134B }; # endif /* EBCDIC 037 */ @@ -314312,7 +337635,7 @@ static const UV UNI_LYDI_invlist[] = { /* for all charsets */ }; static const UV UNI_M_invlist[] = { /* for all charsets */ - 561, /* Number of elements */ + 581, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -314433,7 +337756,7 @@ static const UV UNI_M_invlist[] = { /* for all charsets */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB62, 0xB64, @@ -314487,7 +337810,7 @@ static const UV UNI_M_invlist[] = { /* for all charsets */ 0xD58, 0xD62, 0xD64, - 0xD82, + 0xD81, 0xD84, 0xDCA, 0xDCB, @@ -314582,7 +337905,7 @@ static const UV UNI_M_invlist[] = { /* for all charsets */ 0x1A7F, 0x1A80, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B05, 0x1B34, @@ -314639,6 +337962,8 @@ static const UV UNI_M_invlist[] = { /* for all charsets */ 0xA80C, 0xA823, 0xA828, + 0xA82C, + 0xA82D, 0xA880, 0xA882, 0xA8B4, @@ -314709,6 +338034,8 @@ static const UV UNI_M_invlist[] = { /* for all charsets */ 0x10AE7, 0x10D24, 0x10D28, + 0x10EAB, + 0x10EAD, 0x10F46, 0x10F51, 0x11000, @@ -314733,6 +338060,8 @@ static const UV UNI_M_invlist[] = { /* for all charsets */ 0x111C1, 0x111C9, 0x111CD, + 0x111CE, + 0x111D0, 0x1122C, 0x11238, 0x1123E, @@ -314777,6 +338106,16 @@ static const UV UNI_M_invlist[] = { /* for all charsets */ 0x1172C, 0x1182C, 0x1183B, + 0x11930, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x1193F, + 0x11940, + 0x11941, + 0x11942, + 0x11944, 0x119D1, 0x119D8, 0x119DA, @@ -314831,6 +338170,10 @@ static const UV UNI_M_invlist[] = { /* for all charsets */ 0x16F88, 0x16F8F, 0x16F93, + 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x1BC9D, 0x1BC9F, 0x1D165, @@ -315860,7 +339203,7 @@ static const UV UNI_MAYANNUMERALS_invlist[] = { /* for all charsets */ }; static const UV UNI_MC_invlist[] = { /* for all charsets */ - 337, /* Number of elements */ + 351, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -316103,6 +339446,8 @@ static const UV UNI_MC_invlist[] = { /* for all charsets */ 0x111B6, 0x111BF, 0x111C1, + 0x111CE, + 0x111CF, 0x1122C, 0x1122F, 0x11232, @@ -316165,6 +339510,16 @@ static const UV UNI_MC_invlist[] = { /* for all charsets */ 0x1182F, 0x11838, 0x11839, + 0x11930, + 0x11936, + 0x11937, + 0x11939, + 0x1193D, + 0x1193E, + 0x11940, + 0x11941, + 0x11942, + 0x11943, 0x119D1, 0x119D4, 0x119DC, @@ -316197,6 +339552,8 @@ static const UV UNI_MC_invlist[] = { /* for all charsets */ 0x11EF7, 0x16F51, 0x16F88, + 0x16FF0, + 0x16FF2, 0x1D165, 0x1D167, 0x1D16D, @@ -316352,7 +339709,7 @@ static const UV UNI_MISCTECHNICAL_invlist[] = { /* for all charsets */ }; static const UV UNI_MLYM_invlist[] = { /* for all charsets */ - 25, /* Number of elements */ + 23, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -316362,8 +339719,6 @@ static const UV UNI_MLYM_invlist[] = { /* for all charsets */ 0x964, 0x966, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -316384,7 +339739,7 @@ static const UV UNI_MLYM_invlist[] = { /* for all charsets */ }; static const UV UNI_MN_invlist[] = { /* for all charsets */ - 637, /* Number of elements */ + 655, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -316505,7 +339860,7 @@ static const UV UNI_MN_invlist[] = { /* for all charsets */ 0xB45, 0xB4D, 0xB4E, - 0xB56, + 0xB55, 0xB57, 0xB62, 0xB64, @@ -316551,6 +339906,8 @@ static const UV UNI_MN_invlist[] = { /* for all charsets */ 0xD4E, 0xD62, 0xD64, + 0xD81, + 0xD82, 0xDCA, 0xDCB, 0xDD2, @@ -316665,6 +340022,8 @@ static const UV UNI_MN_invlist[] = { /* for all charsets */ 0x1A80, 0x1AB0, 0x1ABE, + 0x1ABF, + 0x1AC1, 0x1B00, 0x1B04, 0x1B34, @@ -316745,6 +340104,8 @@ static const UV UNI_MN_invlist[] = { /* for all charsets */ 0xA80C, 0xA825, 0xA827, + 0xA82C, + 0xA82D, 0xA8C4, 0xA8C6, 0xA8E0, @@ -316823,6 +340184,8 @@ static const UV UNI_MN_invlist[] = { /* for all charsets */ 0x10AE7, 0x10D24, 0x10D28, + 0x10EAB, + 0x10EAD, 0x10F46, 0x10F51, 0x11001, @@ -316849,6 +340212,8 @@ static const UV UNI_MN_invlist[] = { /* for all charsets */ 0x111BF, 0x111C9, 0x111CD, + 0x111CF, + 0x111D0, 0x1122F, 0x11232, 0x11234, @@ -316919,6 +340284,12 @@ static const UV UNI_MN_invlist[] = { /* for all charsets */ 0x11838, 0x11839, 0x1183B, + 0x1193B, + 0x1193D, + 0x1193E, + 0x1193F, + 0x11943, + 0x11944, 0x119D4, 0x119D8, 0x119DA, @@ -316981,6 +340352,8 @@ static const UV UNI_MN_invlist[] = { /* for all charsets */ 0x16F50, 0x16F8F, 0x16F93, + 0x16FE4, + 0x16FE5, 0x1BC9D, 0x1BC9F, 0x1D167, @@ -317188,7 +340561,7 @@ static const UV UNI_MYMR_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_N_invlist[] = { /* for ASCII/Latin1 */ - 261, /* Number of elements */ + 267, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -317385,6 +340758,8 @@ static const UV UNI_N_invlist[] = { /* for ASCII/Latin1 */ 0x10F27, 0x10F51, 0x10F55, + 0x10FC5, + 0x10FCC, 0x11052, 0x11070, 0x110F0, @@ -317409,6 +340784,8 @@ static const UV UNI_N_invlist[] = { /* for ASCII/Latin1 */ 0x1173C, 0x118E0, 0x118F3, + 0x11950, + 0x1195A, 0x11C50, 0x11C6D, 0x11D50, @@ -317452,7 +340829,9 @@ static const UV UNI_N_invlist[] = { /* for ASCII/Latin1 */ 0x1ED2F, 0x1ED3E, 0x1F100, - 0x1F10D + 0x1F10D, + 0x1FBF0, + 0x1FBFA }; # endif /* ASCII/Latin1 */ @@ -317463,7 +340842,7 @@ static const UV UNI_N_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_N_invlist[] = { /* for EBCDIC 1047 */ - 261, /* Number of elements */ + 267, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -317660,6 +341039,8 @@ static const UV UNI_N_invlist[] = { /* for EBCDIC 1047 */ 0x10F27, 0x10F51, 0x10F55, + 0x10FC5, + 0x10FCC, 0x11052, 0x11070, 0x110F0, @@ -317684,6 +341065,8 @@ static const UV UNI_N_invlist[] = { /* for EBCDIC 1047 */ 0x1173C, 0x118E0, 0x118F3, + 0x11950, + 0x1195A, 0x11C50, 0x11C6D, 0x11D50, @@ -317727,7 +341110,9 @@ static const UV UNI_N_invlist[] = { /* for EBCDIC 1047 */ 0x1ED2F, 0x1ED3E, 0x1F100, - 0x1F10D + 0x1F10D, + 0x1FBF0, + 0x1FBFA }; # endif /* EBCDIC 1047 */ @@ -317738,7 +341123,7 @@ static const UV UNI_N_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_N_invlist[] = { /* for EBCDIC 037 */ - 261, /* Number of elements */ + 267, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -317935,6 +341320,8 @@ static const UV UNI_N_invlist[] = { /* for EBCDIC 037 */ 0x10F27, 0x10F51, 0x10F55, + 0x10FC5, + 0x10FCC, 0x11052, 0x11070, 0x110F0, @@ -317959,6 +341346,8 @@ static const UV UNI_N_invlist[] = { /* for EBCDIC 037 */ 0x1173C, 0x118E0, 0x118F3, + 0x11950, + 0x1195A, 0x11C50, 0x11C6D, 0x11D50, @@ -318002,7 +341391,9 @@ static const UV UNI_N_invlist[] = { /* for EBCDIC 037 */ 0x1ED2F, 0x1ED3E, 0x1F100, - 0x1F10D + 0x1F10D, + 0x1FBF0, + 0x1FBFA }; # endif /* EBCDIC 037 */ @@ -318044,7 +341435,7 @@ static const UV UNI_NARB_invlist[] = { /* for all charsets */ }; static const UV UNI_NB_invlist[] = { /* for all charsets */ - 108, /* Number of elements */ + 110, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -318073,10 +341464,10 @@ static const UV UNI_NB_invlist[] = { /* for all charsets */ 0x10C80, 0x10D40, 0x10E60, - 0x10E80, + 0x10EC0, 0x10F00, 0x10F70, - 0x10FE0, + 0x10FB0, 0x11250, 0x11280, 0x11380, @@ -318089,7 +341480,7 @@ static const UV UNI_NB_invlist[] = { /* for all charsets */ 0x11800, 0x11850, 0x118A0, - 0x11900, + 0x11960, 0x119A0, 0x11AB0, 0x11AC0, @@ -318100,7 +341491,7 @@ static const UV UNI_NB_invlist[] = { /* for all charsets */ 0x11DB0, 0x11EE0, 0x11F00, - 0x11FC0, + 0x11FB0, 0x12550, 0x13000, 0x13440, @@ -318115,7 +341506,7 @@ static const UV UNI_NB_invlist[] = { /* for all charsets */ 0x16F00, 0x16FA0, 0x16FE0, - 0x18B00, + 0x18D90, 0x1B000, 0x1B300, 0x1BC00, @@ -318143,13 +341534,15 @@ static const UV UNI_NB_invlist[] = { /* for all charsets */ 0x1EE00, 0x1EF00, 0x1F000, - 0x1FB00, + 0x1FC00, 0x20000, 0x2A6E0, 0x2A700, 0x2EBF0, 0x2F800, 0x2FA20, + 0x30000, + 0x31350, 0xE0000, 0xE0080, 0xE0100, @@ -318171,21 +341564,19 @@ static const UV UNI_NBAT_invlist[] = { /* for all charsets */ }; static const UV UNI_NEWA_invlist[] = { /* for all charsets */ - 7, /* Number of elements */ + 5, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ 0x0, 0x11400, - 0x1145A, - 0x1145B, 0x1145C, 0x1145D, - 0x11460 + 0x11462 }; static const UV UNI_NFCQC__M_invlist[] = { /* for all charsets */ - 83, /* Number of elements */ + 85, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -318271,11 +341662,13 @@ static const UV UNI_NFCQC__M_invlist[] = { /* for all charsets */ 0x114BD, 0x114BE, 0x115AF, - 0x115B0 + 0x115B0, + 0x11930, + 0x11931 }; static const UV UNI_NFCQC__Y_invlist[] = { /* for all charsets */ - 223, /* Number of elements */ + 225, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -318496,6 +341889,8 @@ static const UV UNI_NFCQC__Y_invlist[] = { /* for all charsets */ 0x114BE, 0x115AF, 0x115B0, + 0x11930, + 0x11931, 0x1D15E, 0x1D165, 0x1D1BB, @@ -318507,7 +341902,7 @@ static const UV UNI_NFCQC__Y_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_NFDQC__Y_invlist[] = { /* for ASCII/Latin1 */ - 463, /* Number of elements */ + 465, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -318968,6 +342363,8 @@ static const UV UNI_NFDQC__Y_invlist[] = { /* for ASCII/Latin1 */ 0x114BF, 0x115BA, 0x115BC, + 0x11938, + 0x11939, 0x1D15E, 0x1D165, 0x1D1BB, @@ -318984,7 +342381,7 @@ static const UV UNI_NFDQC__Y_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_NFDQC__Y_invlist[] = { /* for EBCDIC 1047 */ - 467, /* Number of elements */ + 469, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -319449,6 +342846,8 @@ static const UV UNI_NFDQC__Y_invlist[] = { /* for EBCDIC 1047 */ 0x114BF, 0x115BA, 0x115BC, + 0x11938, + 0x11939, 0x1D15E, 0x1D165, 0x1D1BB, @@ -319465,7 +342864,7 @@ static const UV UNI_NFDQC__Y_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_NFDQC__Y_invlist[] = { /* for EBCDIC 037 */ - 467, /* Number of elements */ + 469, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -319930,6 +343329,8 @@ static const UV UNI_NFDQC__Y_invlist[] = { /* for EBCDIC 037 */ 0x114BF, 0x115BA, 0x115BC, + 0x11938, + 0x11939, 0x1D15E, 0x1D165, 0x1D1BB, @@ -319943,7 +343344,7 @@ static const UV UNI_NFDQC__Y_invlist[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_NFKCQC__N_invlist[] = { /* for ASCII/Latin1 */ - 497, /* Number of elements */ + 501, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -320238,6 +343639,8 @@ static const UV UNI_NFKCQC__N_invlist[] = { /* for ASCII/Latin1 */ 0xA7FA, 0xAB5C, 0xAB60, + 0xAB69, + 0xAB6A, 0xF900, 0xFA0E, 0xFA10, @@ -320442,6 +343845,8 @@ static const UV UNI_NFKCQC__N_invlist[] = { /* for ASCII/Latin1 */ 0x1F249, 0x1F250, 0x1F252, + 0x1FBF0, + 0x1FBFA, 0x2F800, 0x2FA1E }; @@ -320454,7 +343859,7 @@ static const UV UNI_NFKCQC__N_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_NFKCQC__N_invlist[] = { /* for EBCDIC 1047 */ - 503, /* Number of elements */ + 507, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -320755,6 +344160,8 @@ static const UV UNI_NFKCQC__N_invlist[] = { /* for EBCDIC 1047 */ 0xA7FA, 0xAB5C, 0xAB60, + 0xAB69, + 0xAB6A, 0xF900, 0xFA0E, 0xFA10, @@ -320959,6 +344366,8 @@ static const UV UNI_NFKCQC__N_invlist[] = { /* for EBCDIC 1047 */ 0x1F249, 0x1F250, 0x1F252, + 0x1FBF0, + 0x1FBFA, 0x2F800, 0x2FA1E }; @@ -320971,7 +344380,7 @@ static const UV UNI_NFKCQC__N_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_NFKCQC__N_invlist[] = { /* for EBCDIC 037 */ - 501, /* Number of elements */ + 505, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -321270,6 +344679,8 @@ static const UV UNI_NFKCQC__N_invlist[] = { /* for EBCDIC 037 */ 0xA7FA, 0xAB5C, 0xAB60, + 0xAB69, + 0xAB6A, 0xF900, 0xFA0E, 0xFA10, @@ -321474,6 +344885,8 @@ static const UV UNI_NFKCQC__N_invlist[] = { /* for EBCDIC 037 */ 0x1F249, 0x1F250, 0x1F252, + 0x1FBF0, + 0x1FBFA, 0x2F800, 0x2FA1E }; @@ -321483,7 +344896,7 @@ static const UV UNI_NFKCQC__N_invlist[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_NFKCQC__Y_invlist[] = { /* for ASCII/Latin1 */ - 571, /* Number of elements */ + 577, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -321836,6 +345249,8 @@ static const UV UNI_NFKCQC__Y_invlist[] = { /* for ASCII/Latin1 */ 0xA7FA, 0xAB5C, 0xAB60, + 0xAB69, + 0xAB6A, 0xF900, 0xFA0E, 0xFA10, @@ -321926,6 +345341,8 @@ static const UV UNI_NFKCQC__Y_invlist[] = { /* for ASCII/Latin1 */ 0x114BE, 0x115AF, 0x115B0, + 0x11930, + 0x11931, 0x1D15E, 0x1D165, 0x1D1BB, @@ -322056,6 +345473,8 @@ static const UV UNI_NFKCQC__Y_invlist[] = { /* for ASCII/Latin1 */ 0x1F249, 0x1F250, 0x1F252, + 0x1FBF0, + 0x1FBFA, 0x2F800, 0x2FA1E }; @@ -322068,7 +345487,7 @@ static const UV UNI_NFKCQC__Y_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_NFKCQC__Y_invlist[] = { /* for EBCDIC 1047 */ - 577, /* Number of elements */ + 583, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -322427,6 +345846,8 @@ static const UV UNI_NFKCQC__Y_invlist[] = { /* for EBCDIC 1047 */ 0xA7FA, 0xAB5C, 0xAB60, + 0xAB69, + 0xAB6A, 0xF900, 0xFA0E, 0xFA10, @@ -322517,6 +345938,8 @@ static const UV UNI_NFKCQC__Y_invlist[] = { /* for EBCDIC 1047 */ 0x114BE, 0x115AF, 0x115B0, + 0x11930, + 0x11931, 0x1D15E, 0x1D165, 0x1D1BB, @@ -322647,6 +346070,8 @@ static const UV UNI_NFKCQC__Y_invlist[] = { /* for EBCDIC 1047 */ 0x1F249, 0x1F250, 0x1F252, + 0x1FBF0, + 0x1FBFA, 0x2F800, 0x2FA1E }; @@ -322659,7 +346084,7 @@ static const UV UNI_NFKCQC__Y_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_NFKCQC__Y_invlist[] = { /* for EBCDIC 037 */ - 575, /* Number of elements */ + 581, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -323016,6 +346441,8 @@ static const UV UNI_NFKCQC__Y_invlist[] = { /* for EBCDIC 037 */ 0xA7FA, 0xAB5C, 0xAB60, + 0xAB69, + 0xAB6A, 0xF900, 0xFA0E, 0xFA10, @@ -323106,6 +346533,8 @@ static const UV UNI_NFKCQC__Y_invlist[] = { /* for EBCDIC 037 */ 0x114BE, 0x115AF, 0x115B0, + 0x11930, + 0x11931, 0x1D15E, 0x1D165, 0x1D1BB, @@ -323236,6 +346665,8 @@ static const UV UNI_NFKCQC__Y_invlist[] = { /* for EBCDIC 037 */ 0x1F249, 0x1F250, 0x1F252, + 0x1FBF0, + 0x1FBFA, 0x2F800, 0x2FA1E }; @@ -323245,7 +346676,7 @@ static const UV UNI_NFKCQC__Y_invlist[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_NFKDQC__N_invlist[] = { /* for ASCII/Latin1 */ - 779, /* Number of elements */ + 785, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -323804,6 +347235,8 @@ static const UV UNI_NFKDQC__N_invlist[] = { /* for ASCII/Latin1 */ 0xA7FA, 0xAB5C, 0xAB60, + 0xAB69, + 0xAB6A, 0xAC00, 0xD7A4, 0xF900, @@ -323896,6 +347329,8 @@ static const UV UNI_NFKDQC__N_invlist[] = { /* for ASCII/Latin1 */ 0x114BF, 0x115BA, 0x115BC, + 0x11938, + 0x11939, 0x1D15E, 0x1D165, 0x1D1BB, @@ -324026,6 +347461,8 @@ static const UV UNI_NFKDQC__N_invlist[] = { /* for ASCII/Latin1 */ 0x1F249, 0x1F250, 0x1F252, + 0x1FBF0, + 0x1FBFA, 0x2F800, 0x2FA1E }; @@ -324038,7 +347475,7 @@ static const UV UNI_NFKDQC__N_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_NFKDQC__N_invlist[] = { /* for EBCDIC 1047 */ - 777, /* Number of elements */ + 783, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -324595,6 +348032,8 @@ static const UV UNI_NFKDQC__N_invlist[] = { /* for EBCDIC 1047 */ 0xA7FA, 0xAB5C, 0xAB60, + 0xAB69, + 0xAB6A, 0xAC00, 0xD7A4, 0xF900, @@ -324687,6 +348126,8 @@ static const UV UNI_NFKDQC__N_invlist[] = { /* for EBCDIC 1047 */ 0x114BF, 0x115BA, 0x115BC, + 0x11938, + 0x11939, 0x1D15E, 0x1D165, 0x1D1BB, @@ -324817,6 +348258,8 @@ static const UV UNI_NFKDQC__N_invlist[] = { /* for EBCDIC 1047 */ 0x1F249, 0x1F250, 0x1F252, + 0x1FBF0, + 0x1FBFA, 0x2F800, 0x2FA1E }; @@ -324829,7 +348272,7 @@ static const UV UNI_NFKDQC__N_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_NFKDQC__N_invlist[] = { /* for EBCDIC 037 */ - 779, /* Number of elements */ + 785, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -325388,6 +348831,8 @@ static const UV UNI_NFKDQC__N_invlist[] = { /* for EBCDIC 037 */ 0xA7FA, 0xAB5C, 0xAB60, + 0xAB69, + 0xAB6A, 0xAC00, 0xD7A4, 0xF900, @@ -325480,6 +348925,8 @@ static const UV UNI_NFKDQC__N_invlist[] = { /* for EBCDIC 037 */ 0x114BF, 0x115BA, 0x115BC, + 0x11938, + 0x11939, 0x1D15E, 0x1D165, 0x1D1BB, @@ -325610,6 +349057,8 @@ static const UV UNI_NFKDQC__N_invlist[] = { /* for EBCDIC 037 */ 0x1F249, 0x1F250, 0x1F252, + 0x1FBF0, + 0x1FBFA, 0x2F800, 0x2FA1E }; @@ -325663,7 +349112,7 @@ static const UV UNI_NL_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_NO_invlist[] = { /* for ASCII/Latin1 */ - 141, /* Number of elements */ + 143, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -325774,6 +349223,8 @@ static const UV UNI_NO_invlist[] = { /* for ASCII/Latin1 */ 0x10F27, 0x10F51, 0x10F55, + 0x10FC5, + 0x10FCC, 0x11052, 0x11066, 0x111E1, @@ -325818,7 +349269,7 @@ static const UV UNI_NO_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_NO_invlist[] = { /* for EBCDIC 1047 */ - 143, /* Number of elements */ + 145, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -325931,6 +349382,8 @@ static const UV UNI_NO_invlist[] = { /* for EBCDIC 1047 */ 0x10F27, 0x10F51, 0x10F55, + 0x10FC5, + 0x10FCC, 0x11052, 0x11066, 0x111E1, @@ -325975,7 +349428,7 @@ static const UV UNI_NO_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_NO_invlist[] = { /* for EBCDIC 037 */ - 143, /* Number of elements */ + 145, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -326088,6 +349541,8 @@ static const UV UNI_NO_invlist[] = { /* for EBCDIC 037 */ 0x10F27, 0x10F51, 0x10F55, + 0x10FC5, + 0x10FCC, 0x11052, 0x11066, 0x111E1, @@ -326307,7 +349762,7 @@ static const UV UNI_NT__DI_invlist[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_NT__NU_invlist[] = { /* for ASCII/Latin1 */ - 301, /* Number of elements */ + 303, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -326544,6 +349999,8 @@ static const UV UNI_NT__NU_invlist[] = { /* for ASCII/Latin1 */ 0x10F27, 0x10F51, 0x10F55, + 0x10FC5, + 0x10FCC, 0x1105B, 0x11066, 0x111E1, @@ -326622,7 +350079,7 @@ static const UV UNI_NT__NU_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_NT__NU_invlist[] = { /* for EBCDIC 1047 */ - 301, /* Number of elements */ + 303, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -326859,6 +350316,8 @@ static const UV UNI_NT__NU_invlist[] = { /* for EBCDIC 1047 */ 0x10F27, 0x10F51, 0x10F55, + 0x10FC5, + 0x10FCC, 0x1105B, 0x11066, 0x111E1, @@ -326937,7 +350396,7 @@ static const UV UNI_NT__NU_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_NT__NU_invlist[] = { /* for EBCDIC 037 */ - 301, /* Number of elements */ + 303, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -327174,6 +350633,8 @@ static const UV UNI_NT__NU_invlist[] = { /* for EBCDIC 037 */ 0x10F27, 0x10F51, 0x10F55, + 0x10FC5, + 0x10FCC, 0x1105B, 0x11066, 0x111E1, @@ -327269,7 +350730,7 @@ static const UV UNI_NV___MINUS_1_SLASH_2_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_NV__0_invlist[] = { /* for ASCII/Latin1 */ - 159, /* Number of elements */ + 163, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -327398,6 +350859,8 @@ static const UV UNI_NV__0_invlist[] = { /* for ASCII/Latin1 */ 0x11731, 0x118E0, 0x118E1, + 0x11950, + 0x11951, 0x11C50, 0x11C51, 0x11D50, @@ -327431,7 +350894,9 @@ static const UV UNI_NV__0_invlist[] = { /* for ASCII/Latin1 */ 0x1F100, 0x1F102, 0x1F10B, - 0x1F10D + 0x1F10D, + 0x1FBF0, + 0x1FBF1 }; # endif /* ASCII/Latin1 */ @@ -327442,7 +350907,7 @@ static const UV UNI_NV__0_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_NV__0_invlist[] = { /* for EBCDIC 1047 */ - 159, /* Number of elements */ + 163, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -327571,6 +351036,8 @@ static const UV UNI_NV__0_invlist[] = { /* for EBCDIC 1047 */ 0x11731, 0x118E0, 0x118E1, + 0x11950, + 0x11951, 0x11C50, 0x11C51, 0x11D50, @@ -327604,7 +351071,9 @@ static const UV UNI_NV__0_invlist[] = { /* for EBCDIC 1047 */ 0x1F100, 0x1F102, 0x1F10B, - 0x1F10D + 0x1F10D, + 0x1FBF0, + 0x1FBF1 }; # endif /* EBCDIC 1047 */ @@ -327615,7 +351084,7 @@ static const UV UNI_NV__0_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_NV__0_invlist[] = { /* for EBCDIC 037 */ - 159, /* Number of elements */ + 163, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -327744,6 +351213,8 @@ static const UV UNI_NV__0_invlist[] = { /* for EBCDIC 037 */ 0x11731, 0x118E0, 0x118E1, + 0x11950, + 0x11951, 0x11C50, 0x11C51, 0x11D50, @@ -327777,7 +351248,9 @@ static const UV UNI_NV__0_invlist[] = { /* for EBCDIC 037 */ 0x1F100, 0x1F102, 0x1F10B, - 0x1F10D + 0x1F10D, + 0x1FBF0, + 0x1FBF1 }; # endif /* EBCDIC 037 */ @@ -327785,7 +351258,7 @@ static const UV UNI_NV__0_invlist[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_NV__1_invlist[] = { /* for ASCII/Latin1 */ - 269, /* Number of elements */ + 275, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -327966,6 +351439,8 @@ static const UV UNI_NV__1_invlist[] = { /* for ASCII/Latin1 */ 0x10F1E, 0x10F51, 0x10F52, + 0x10FC5, + 0x10FC6, 0x11052, 0x11053, 0x11067, @@ -327992,6 +351467,8 @@ static const UV UNI_NV__1_invlist[] = { /* for ASCII/Latin1 */ 0x11732, 0x118E1, 0x118E2, + 0x11951, + 0x11952, 0x11C51, 0x11C52, 0x11C5A, @@ -328056,6 +351533,8 @@ static const UV UNI_NV__1_invlist[] = { /* for ASCII/Latin1 */ 0x1ED02, 0x1F102, 0x1F103, + 0x1FBF1, + 0x1FBF2, 0x2092A, 0x2092B }; @@ -328068,7 +351547,7 @@ static const UV UNI_NV__1_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_NV__1_invlist[] = { /* for EBCDIC 1047 */ - 269, /* Number of elements */ + 275, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -328249,6 +351728,8 @@ static const UV UNI_NV__1_invlist[] = { /* for EBCDIC 1047 */ 0x10F1E, 0x10F51, 0x10F52, + 0x10FC5, + 0x10FC6, 0x11052, 0x11053, 0x11067, @@ -328275,6 +351756,8 @@ static const UV UNI_NV__1_invlist[] = { /* for EBCDIC 1047 */ 0x11732, 0x118E1, 0x118E2, + 0x11951, + 0x11952, 0x11C51, 0x11C52, 0x11C5A, @@ -328339,6 +351822,8 @@ static const UV UNI_NV__1_invlist[] = { /* for EBCDIC 1047 */ 0x1ED02, 0x1F102, 0x1F103, + 0x1FBF1, + 0x1FBF2, 0x2092A, 0x2092B }; @@ -328351,7 +351836,7 @@ static const UV UNI_NV__1_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_NV__1_invlist[] = { /* for EBCDIC 037 */ - 269, /* Number of elements */ + 275, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -328532,6 +352017,8 @@ static const UV UNI_NV__1_invlist[] = { /* for EBCDIC 037 */ 0x10F1E, 0x10F51, 0x10F52, + 0x10FC5, + 0x10FC6, 0x11052, 0x11053, 0x11067, @@ -328558,6 +352045,8 @@ static const UV UNI_NV__1_invlist[] = { /* for EBCDIC 037 */ 0x11732, 0x118E1, 0x118E2, + 0x11951, + 0x11952, 0x11C51, 0x11C52, 0x11C5A, @@ -328622,6 +352111,8 @@ static const UV UNI_NV__1_invlist[] = { /* for EBCDIC 037 */ 0x1ED02, 0x1F102, 0x1F103, + 0x1FBF1, + 0x1FBF2, 0x2092A, 0x2092B }; @@ -329105,7 +352596,7 @@ static const UV UNI_NV__1_SLASH_9_invlist[] = { /* for all charsets */ }; static const UV UNI_NV__10_invlist[] = { /* for all charsets */ - 115, /* Number of elements */ + 117, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -329200,6 +352691,8 @@ static const UV UNI_NV__10_invlist[] = { /* for all charsets */ 0x10F23, 0x10F52, 0x10F53, + 0x10FC9, + 0x10FCA, 0x1105B, 0x1105C, 0x111EA, @@ -329227,7 +352720,7 @@ static const UV UNI_NV__10_invlist[] = { /* for all charsets */ }; static const UV UNI_NV__100_invlist[] = { /* for all charsets */ - 69, /* Number of elements */ + 71, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -329288,6 +352781,8 @@ static const UV UNI_NV__100_invlist[] = { /* for all charsets */ 0x10F26, 0x10F54, 0x10F55, + 0x10FCB, + 0x10FCC, 0x11064, 0x11065, 0x111F3, @@ -329709,7 +353204,7 @@ static const UV UNI_NV__19_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_NV__2_invlist[] = { /* for ASCII/Latin1 */ - 267, /* Number of elements */ + 273, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -329880,6 +353375,8 @@ static const UV UNI_NV__2_invlist[] = { /* for ASCII/Latin1 */ 0x10E62, 0x10F1E, 0x10F1F, + 0x10FC6, + 0x10FC7, 0x11053, 0x11054, 0x11068, @@ -329906,6 +353403,8 @@ static const UV UNI_NV__2_invlist[] = { /* for ASCII/Latin1 */ 0x11733, 0x118E2, 0x118E3, + 0x11952, + 0x11953, 0x11C52, 0x11C53, 0x11C5B, @@ -329978,6 +353477,8 @@ static const UV UNI_NV__2_invlist[] = { /* for ASCII/Latin1 */ 0x1ED30, 0x1F103, 0x1F104, + 0x1FBF2, + 0x1FBF3, 0x22390, 0x22391 }; @@ -329990,7 +353491,7 @@ static const UV UNI_NV__2_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_NV__2_invlist[] = { /* for EBCDIC 1047 */ - 267, /* Number of elements */ + 273, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -330161,6 +353662,8 @@ static const UV UNI_NV__2_invlist[] = { /* for EBCDIC 1047 */ 0x10E62, 0x10F1E, 0x10F1F, + 0x10FC6, + 0x10FC7, 0x11053, 0x11054, 0x11068, @@ -330187,6 +353690,8 @@ static const UV UNI_NV__2_invlist[] = { /* for EBCDIC 1047 */ 0x11733, 0x118E2, 0x118E3, + 0x11952, + 0x11953, 0x11C52, 0x11C53, 0x11C5B, @@ -330259,6 +353764,8 @@ static const UV UNI_NV__2_invlist[] = { /* for EBCDIC 1047 */ 0x1ED30, 0x1F103, 0x1F104, + 0x1FBF2, + 0x1FBF3, 0x22390, 0x22391 }; @@ -330271,7 +353778,7 @@ static const UV UNI_NV__2_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_NV__2_invlist[] = { /* for EBCDIC 037 */ - 267, /* Number of elements */ + 273, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -330442,6 +353949,8 @@ static const UV UNI_NV__2_invlist[] = { /* for EBCDIC 037 */ 0x10E62, 0x10F1E, 0x10F1F, + 0x10FC6, + 0x10FC7, 0x11053, 0x11054, 0x11068, @@ -330468,6 +353977,8 @@ static const UV UNI_NV__2_invlist[] = { /* for EBCDIC 037 */ 0x11733, 0x118E2, 0x118E3, + 0x11952, + 0x11953, 0x11C52, 0x11C53, 0x11C5B, @@ -330540,6 +354051,8 @@ static const UV UNI_NV__2_invlist[] = { /* for EBCDIC 037 */ 0x1ED30, 0x1F103, 0x1F104, + 0x1FBF2, + 0x1FBF3, 0x22390, 0x22391 }; @@ -330579,7 +354092,7 @@ static const UV UNI_NV__2_SLASH_5_invlist[] = { /* for all charsets */ }; static const UV UNI_NV__20_invlist[] = { /* for all charsets */ - 71, /* Number of elements */ + 73, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -330638,6 +354151,8 @@ static const UV UNI_NV__20_invlist[] = { /* for all charsets */ 0x10F24, 0x10F53, 0x10F54, + 0x10FCA, + 0x10FCB, 0x1105C, 0x1105D, 0x111EB, @@ -330835,7 +354350,7 @@ static const UV UNI_NV__29_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_NV__3_invlist[] = { /* for ASCII/Latin1 */ - 261, /* Number of elements */ + 267, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -330994,6 +354509,8 @@ static const UV UNI_NV__3_invlist[] = { /* for ASCII/Latin1 */ 0x10E63, 0x10F1F, 0x10F20, + 0x10FC7, + 0x10FC8, 0x11054, 0x11055, 0x11069, @@ -331020,6 +354537,8 @@ static const UV UNI_NV__3_invlist[] = { /* for ASCII/Latin1 */ 0x11734, 0x118E3, 0x118E4, + 0x11953, + 0x11954, 0x11C53, 0x11C54, 0x11C5C, @@ -331092,6 +354611,8 @@ static const UV UNI_NV__3_invlist[] = { /* for ASCII/Latin1 */ 0x1ED31, 0x1F104, 0x1F105, + 0x1FBF3, + 0x1FBF4, 0x20AFD, 0x20AFE, 0x20B19, @@ -331110,7 +354631,7 @@ static const UV UNI_NV__3_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_NV__3_invlist[] = { /* for EBCDIC 1047 */ - 261, /* Number of elements */ + 267, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -331269,6 +354790,8 @@ static const UV UNI_NV__3_invlist[] = { /* for EBCDIC 1047 */ 0x10E63, 0x10F1F, 0x10F20, + 0x10FC7, + 0x10FC8, 0x11054, 0x11055, 0x11069, @@ -331295,6 +354818,8 @@ static const UV UNI_NV__3_invlist[] = { /* for EBCDIC 1047 */ 0x11734, 0x118E3, 0x118E4, + 0x11953, + 0x11954, 0x11C53, 0x11C54, 0x11C5C, @@ -331367,6 +354892,8 @@ static const UV UNI_NV__3_invlist[] = { /* for EBCDIC 1047 */ 0x1ED31, 0x1F104, 0x1F105, + 0x1FBF3, + 0x1FBF4, 0x20AFD, 0x20AFE, 0x20B19, @@ -331385,7 +354912,7 @@ static const UV UNI_NV__3_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_NV__3_invlist[] = { /* for EBCDIC 037 */ - 261, /* Number of elements */ + 267, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -331544,6 +355071,8 @@ static const UV UNI_NV__3_invlist[] = { /* for EBCDIC 037 */ 0x10E63, 0x10F1F, 0x10F20, + 0x10FC7, + 0x10FC8, 0x11054, 0x11055, 0x11069, @@ -331570,6 +355099,8 @@ static const UV UNI_NV__3_invlist[] = { /* for EBCDIC 037 */ 0x11734, 0x118E3, 0x118E4, + 0x11953, + 0x11954, 0x11C53, 0x11C54, 0x11C5C, @@ -331642,6 +355173,8 @@ static const UV UNI_NV__3_invlist[] = { /* for EBCDIC 037 */ 0x1ED31, 0x1F104, 0x1F105, + 0x1FBF3, + 0x1FBF4, 0x20AFD, 0x20AFE, 0x20B19, @@ -332035,7 +355568,7 @@ static const UV UNI_NV__39_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_NV__4_invlist[] = { /* for ASCII/Latin1 */ - 247, /* Number of elements */ + 253, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -332182,6 +355715,8 @@ static const UV UNI_NV__4_invlist[] = { /* for ASCII/Latin1 */ 0x10E64, 0x10F20, 0x10F21, + 0x10FC8, + 0x10FC9, 0x11055, 0x11056, 0x1106A, @@ -332208,6 +355743,8 @@ static const UV UNI_NV__4_invlist[] = { /* for ASCII/Latin1 */ 0x11735, 0x118E4, 0x118E5, + 0x11954, + 0x11955, 0x11C54, 0x11C55, 0x11C5D, @@ -332280,6 +355817,8 @@ static const UV UNI_NV__4_invlist[] = { /* for ASCII/Latin1 */ 0x1ED32, 0x1F105, 0x1F106, + 0x1FBF4, + 0x1FBF5, 0x20064, 0x20065, 0x200E2, @@ -332296,7 +355835,7 @@ static const UV UNI_NV__4_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_NV__4_invlist[] = { /* for EBCDIC 1047 */ - 247, /* Number of elements */ + 253, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -332443,6 +355982,8 @@ static const UV UNI_NV__4_invlist[] = { /* for EBCDIC 1047 */ 0x10E64, 0x10F20, 0x10F21, + 0x10FC8, + 0x10FC9, 0x11055, 0x11056, 0x1106A, @@ -332469,6 +356010,8 @@ static const UV UNI_NV__4_invlist[] = { /* for EBCDIC 1047 */ 0x11735, 0x118E4, 0x118E5, + 0x11954, + 0x11955, 0x11C54, 0x11C55, 0x11C5D, @@ -332541,6 +356084,8 @@ static const UV UNI_NV__4_invlist[] = { /* for EBCDIC 1047 */ 0x1ED32, 0x1F105, 0x1F106, + 0x1FBF4, + 0x1FBF5, 0x20064, 0x20065, 0x200E2, @@ -332557,7 +356102,7 @@ static const UV UNI_NV__4_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_NV__4_invlist[] = { /* for EBCDIC 037 */ - 247, /* Number of elements */ + 253, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -332704,6 +356249,8 @@ static const UV UNI_NV__4_invlist[] = { /* for EBCDIC 037 */ 0x10E64, 0x10F20, 0x10F21, + 0x10FC8, + 0x10FC9, 0x11055, 0x11056, 0x1106A, @@ -332730,6 +356277,8 @@ static const UV UNI_NV__4_invlist[] = { /* for EBCDIC 037 */ 0x11735, 0x118E4, 0x118E5, + 0x11954, + 0x11955, 0x11C54, 0x11C55, 0x11C5D, @@ -332802,6 +356351,8 @@ static const UV UNI_NV__4_invlist[] = { /* for EBCDIC 037 */ 0x1ED32, 0x1F105, 0x1F106, + 0x1FBF4, + 0x1FBF5, 0x20064, 0x20065, 0x200E2, @@ -333033,7 +356584,7 @@ static const UV UNI_NV__49_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_NV__5_invlist[] = { /* for ASCII/Latin1 */ - 253, /* Number of elements */ + 257, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -333216,6 +356767,8 @@ static const UV UNI_NV__5_invlist[] = { /* for ASCII/Latin1 */ 0x11736, 0x118E5, 0x118E6, + 0x11955, + 0x11956, 0x11C55, 0x11C56, 0x11C5E, @@ -333288,6 +356841,8 @@ static const UV UNI_NV__5_invlist[] = { /* for ASCII/Latin1 */ 0x1ED33, 0x1F106, 0x1F107, + 0x1FBF5, + 0x1FBF6, 0x20121, 0x20122 }; @@ -333300,7 +356855,7 @@ static const UV UNI_NV__5_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_NV__5_invlist[] = { /* for EBCDIC 1047 */ - 253, /* Number of elements */ + 257, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -333483,6 +357038,8 @@ static const UV UNI_NV__5_invlist[] = { /* for EBCDIC 1047 */ 0x11736, 0x118E5, 0x118E6, + 0x11955, + 0x11956, 0x11C55, 0x11C56, 0x11C5E, @@ -333555,6 +357112,8 @@ static const UV UNI_NV__5_invlist[] = { /* for EBCDIC 1047 */ 0x1ED33, 0x1F106, 0x1F107, + 0x1FBF5, + 0x1FBF6, 0x20121, 0x20122 }; @@ -333567,7 +357126,7 @@ static const UV UNI_NV__5_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_NV__5_invlist[] = { /* for EBCDIC 037 */ - 253, /* Number of elements */ + 257, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -333750,6 +357309,8 @@ static const UV UNI_NV__5_invlist[] = { /* for EBCDIC 037 */ 0x11736, 0x118E5, 0x118E6, + 0x11955, + 0x11956, 0x11C55, 0x11C56, 0x11C5E, @@ -333822,6 +357383,8 @@ static const UV UNI_NV__5_invlist[] = { /* for EBCDIC 037 */ 0x1ED33, 0x1F106, 0x1F107, + 0x1FBF5, + 0x1FBF6, 0x20121, 0x20122 }; @@ -334023,7 +357586,7 @@ static const UV UNI_NV__500000_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_NV__6_invlist[] = { /* for ASCII/Latin1 */ - 223, /* Number of elements */ + 227, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -334186,6 +357749,8 @@ static const UV UNI_NV__6_invlist[] = { /* for ASCII/Latin1 */ 0x11737, 0x118E6, 0x118E7, + 0x11956, + 0x11957, 0x11C56, 0x11C57, 0x11C5F, @@ -334248,6 +357813,8 @@ static const UV UNI_NV__6_invlist[] = { /* for ASCII/Latin1 */ 0x1ED34, 0x1F107, 0x1F108, + 0x1FBF6, + 0x1FBF7, 0x20AEA, 0x20AEB }; @@ -334260,7 +357827,7 @@ static const UV UNI_NV__6_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_NV__6_invlist[] = { /* for EBCDIC 1047 */ - 223, /* Number of elements */ + 227, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -334423,6 +357990,8 @@ static const UV UNI_NV__6_invlist[] = { /* for EBCDIC 1047 */ 0x11737, 0x118E6, 0x118E7, + 0x11956, + 0x11957, 0x11C56, 0x11C57, 0x11C5F, @@ -334485,6 +358054,8 @@ static const UV UNI_NV__6_invlist[] = { /* for EBCDIC 1047 */ 0x1ED34, 0x1F107, 0x1F108, + 0x1FBF6, + 0x1FBF7, 0x20AEA, 0x20AEB }; @@ -334497,7 +358068,7 @@ static const UV UNI_NV__6_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_NV__6_invlist[] = { /* for EBCDIC 037 */ - 223, /* Number of elements */ + 227, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -334660,6 +358231,8 @@ static const UV UNI_NV__6_invlist[] = { /* for EBCDIC 037 */ 0x11737, 0x118E6, 0x118E7, + 0x11956, + 0x11957, 0x11C56, 0x11C57, 0x11C5F, @@ -334722,6 +358295,8 @@ static const UV UNI_NV__6_invlist[] = { /* for EBCDIC 037 */ 0x1ED34, 0x1F107, 0x1F108, + 0x1FBF6, + 0x1FBF7, 0x20AEA, 0x20AEB }; @@ -334829,7 +358404,7 @@ static const UV UNI_NV__600000_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_NV__7_invlist[] = { /* for ASCII/Latin1 */ - 217, /* Number of elements */ + 221, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -334988,6 +358563,8 @@ static const UV UNI_NV__7_invlist[] = { /* for ASCII/Latin1 */ 0x11738, 0x118E7, 0x118E8, + 0x11957, + 0x11958, 0x11C57, 0x11C58, 0x11C60, @@ -335048,6 +358625,8 @@ static const UV UNI_NV__7_invlist[] = { /* for ASCII/Latin1 */ 0x1ED35, 0x1F108, 0x1F109, + 0x1FBF7, + 0x1FBF8, 0x20001, 0x20002 }; @@ -335060,7 +358639,7 @@ static const UV UNI_NV__7_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_NV__7_invlist[] = { /* for EBCDIC 1047 */ - 217, /* Number of elements */ + 221, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -335219,6 +358798,8 @@ static const UV UNI_NV__7_invlist[] = { /* for EBCDIC 1047 */ 0x11738, 0x118E7, 0x118E8, + 0x11957, + 0x11958, 0x11C57, 0x11C58, 0x11C60, @@ -335279,6 +358860,8 @@ static const UV UNI_NV__7_invlist[] = { /* for EBCDIC 1047 */ 0x1ED35, 0x1F108, 0x1F109, + 0x1FBF7, + 0x1FBF8, 0x20001, 0x20002 }; @@ -335291,7 +358874,7 @@ static const UV UNI_NV__7_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_NV__7_invlist[] = { /* for EBCDIC 037 */ - 217, /* Number of elements */ + 221, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -335450,6 +359033,8 @@ static const UV UNI_NV__7_invlist[] = { /* for EBCDIC 037 */ 0x11738, 0x118E7, 0x118E8, + 0x11957, + 0x11958, 0x11C57, 0x11C58, 0x11C60, @@ -335510,6 +359095,8 @@ static const UV UNI_NV__7_invlist[] = { /* for EBCDIC 037 */ 0x1ED35, 0x1F108, 0x1F109, + 0x1FBF7, + 0x1FBF8, 0x20001, 0x20002 }; @@ -335645,7 +359232,7 @@ static const UV UNI_NV__700000_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_NV__8_invlist[] = { /* for ASCII/Latin1 */ - 211, /* Number of elements */ + 215, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -335800,6 +359387,8 @@ static const UV UNI_NV__8_invlist[] = { /* for ASCII/Latin1 */ 0x11739, 0x118E8, 0x118E9, + 0x11958, + 0x11959, 0x11C58, 0x11C59, 0x11C61, @@ -335859,7 +359448,9 @@ static const UV UNI_NV__8_invlist[] = { /* for ASCII/Latin1 */ 0x1ED35, 0x1ED36, 0x1F109, - 0x1F10A + 0x1F10A, + 0x1FBF8, + 0x1FBF9 }; # endif /* ASCII/Latin1 */ @@ -335870,7 +359461,7 @@ static const UV UNI_NV__8_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_NV__8_invlist[] = { /* for EBCDIC 1047 */ - 211, /* Number of elements */ + 215, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -336025,6 +359616,8 @@ static const UV UNI_NV__8_invlist[] = { /* for EBCDIC 1047 */ 0x11739, 0x118E8, 0x118E9, + 0x11958, + 0x11959, 0x11C58, 0x11C59, 0x11C61, @@ -336084,7 +359677,9 @@ static const UV UNI_NV__8_invlist[] = { /* for EBCDIC 1047 */ 0x1ED35, 0x1ED36, 0x1F109, - 0x1F10A + 0x1F10A, + 0x1FBF8, + 0x1FBF9 }; # endif /* EBCDIC 1047 */ @@ -336095,7 +359690,7 @@ static const UV UNI_NV__8_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_NV__8_invlist[] = { /* for EBCDIC 037 */ - 211, /* Number of elements */ + 215, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -336250,6 +359845,8 @@ static const UV UNI_NV__8_invlist[] = { /* for EBCDIC 037 */ 0x11739, 0x118E8, 0x118E9, + 0x11958, + 0x11959, 0x11C58, 0x11C59, 0x11C61, @@ -336309,7 +359906,9 @@ static const UV UNI_NV__8_invlist[] = { /* for EBCDIC 037 */ 0x1ED35, 0x1ED36, 0x1F109, - 0x1F10A + 0x1F10A, + 0x1FBF8, + 0x1FBF9 }; # endif /* EBCDIC 037 */ @@ -336411,7 +360010,7 @@ static const UV UNI_NV__800000_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_NV__9_invlist[] = { /* for ASCII/Latin1 */ - 215, /* Number of elements */ + 219, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -336568,6 +360167,8 @@ static const UV UNI_NV__9_invlist[] = { /* for ASCII/Latin1 */ 0x1173A, 0x118E9, 0x118EA, + 0x11959, + 0x1195A, 0x11C59, 0x11C5A, 0x11C62, @@ -336628,6 +360229,8 @@ static const UV UNI_NV__9_invlist[] = { /* for ASCII/Latin1 */ 0x1ED37, 0x1F10A, 0x1F10B, + 0x1FBF9, + 0x1FBFA, 0x2F890, 0x2F891 }; @@ -336640,7 +360243,7 @@ static const UV UNI_NV__9_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_NV__9_invlist[] = { /* for EBCDIC 1047 */ - 215, /* Number of elements */ + 219, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -336797,6 +360400,8 @@ static const UV UNI_NV__9_invlist[] = { /* for EBCDIC 1047 */ 0x1173A, 0x118E9, 0x118EA, + 0x11959, + 0x1195A, 0x11C59, 0x11C5A, 0x11C62, @@ -336857,6 +360462,8 @@ static const UV UNI_NV__9_invlist[] = { /* for EBCDIC 1047 */ 0x1ED37, 0x1F10A, 0x1F10B, + 0x1FBF9, + 0x1FBFA, 0x2F890, 0x2F891 }; @@ -336869,7 +360476,7 @@ static const UV UNI_NV__9_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_NV__9_invlist[] = { /* for EBCDIC 037 */ - 215, /* Number of elements */ + 219, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -337026,6 +360633,8 @@ static const UV UNI_NV__9_invlist[] = { /* for EBCDIC 037 */ 0x1173A, 0x118E9, 0x118EA, + 0x11959, + 0x1195A, 0x11C59, 0x11C5A, 0x11C62, @@ -337086,6 +360695,8 @@ static const UV UNI_NV__9_invlist[] = { /* for EBCDIC 037 */ 0x1ED37, 0x1F10A, 0x1F10B, + 0x1FBF9, + 0x1FBFA, 0x2F890, 0x2F891 }; @@ -337201,7 +360812,7 @@ static const UV UNI_NV__900000_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_NV__NAN_invlist[] = { /* for ASCII/Latin1 */ - 405, /* Number of elements */ + 411, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -337510,6 +361121,8 @@ static const UV UNI_NV__NAN_invlist[] = { /* for ASCII/Latin1 */ 0x10F27, 0x10F51, 0x10F55, + 0x10FC5, + 0x10FCC, 0x11052, 0x11070, 0x110F0, @@ -337534,6 +361147,8 @@ static const UV UNI_NV__NAN_invlist[] = { /* for ASCII/Latin1 */ 0x1173C, 0x118E0, 0x118F3, + 0x11950, + 0x1195A, 0x11C50, 0x11C6D, 0x11D50, @@ -337578,6 +361193,8 @@ static const UV UNI_NV__NAN_invlist[] = { /* for ASCII/Latin1 */ 0x1ED3E, 0x1F100, 0x1F10D, + 0x1FBF0, + 0x1FBFA, 0x20001, 0x20002, 0x20064, @@ -337620,7 +361237,7 @@ static const UV UNI_NV__NAN_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_NV__NAN_invlist[] = { /* for EBCDIC 1047 */ - 405, /* Number of elements */ + 411, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -337929,6 +361546,8 @@ static const UV UNI_NV__NAN_invlist[] = { /* for EBCDIC 1047 */ 0x10F27, 0x10F51, 0x10F55, + 0x10FC5, + 0x10FCC, 0x11052, 0x11070, 0x110F0, @@ -337953,6 +361572,8 @@ static const UV UNI_NV__NAN_invlist[] = { /* for EBCDIC 1047 */ 0x1173C, 0x118E0, 0x118F3, + 0x11950, + 0x1195A, 0x11C50, 0x11C6D, 0x11D50, @@ -337997,6 +361618,8 @@ static const UV UNI_NV__NAN_invlist[] = { /* for EBCDIC 1047 */ 0x1ED3E, 0x1F100, 0x1F10D, + 0x1FBF0, + 0x1FBFA, 0x20001, 0x20002, 0x20064, @@ -338039,7 +361662,7 @@ static const UV UNI_NV__NAN_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_NV__NAN_invlist[] = { /* for EBCDIC 037 */ - 405, /* Number of elements */ + 411, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -338348,6 +361971,8 @@ static const UV UNI_NV__NAN_invlist[] = { /* for EBCDIC 037 */ 0x10F27, 0x10F51, 0x10F55, + 0x10FC5, + 0x10FCC, 0x11052, 0x11070, 0x110F0, @@ -338372,6 +361997,8 @@ static const UV UNI_NV__NAN_invlist[] = { /* for EBCDIC 037 */ 0x1173C, 0x118E0, 0x118F3, + 0x11950, + 0x1195A, 0x11C50, 0x11C6D, 0x11D50, @@ -338416,6 +362043,8 @@ static const UV UNI_NV__NAN_invlist[] = { /* for EBCDIC 037 */ 0x1ED3E, 0x1F100, 0x1F10D, + 0x1FBF0, + 0x1FBFA, 0x20001, 0x20002, 0x20064, @@ -338532,7 +362161,7 @@ static const UV UNI_ORYA_invlist[] = { /* for all charsets */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -338583,7 +362212,7 @@ static const UV UNI_OTTOMANSIYAQNUMBERS_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_P_invlist[] = { /* for ASCII/Latin1 */ - 365, /* Number of elements */ + 371, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -338768,6 +362397,8 @@ static const UV UNI_P_invlist[] = { /* for ASCII/Latin1 */ 0x2E2F, 0x2E30, 0x2E50, + 0x2E52, + 0x2E53, 0x3001, 0x3004, 0x3008, @@ -338874,6 +362505,8 @@ static const UV UNI_P_invlist[] = { /* for ASCII/Latin1 */ 0x10B40, 0x10B99, 0x10B9D, + 0x10EAD, + 0x10EAE, 0x10F55, 0x10F5A, 0x11047, @@ -338900,7 +362533,7 @@ static const UV UNI_P_invlist[] = { /* for ASCII/Latin1 */ 0x112AA, 0x1144B, 0x11450, - 0x1145B, + 0x1145A, 0x1145C, 0x1145D, 0x1145E, @@ -338916,6 +362549,8 @@ static const UV UNI_P_invlist[] = { /* for ASCII/Latin1 */ 0x1173F, 0x1183B, 0x1183C, + 0x11944, + 0x11947, 0x119E2, 0x119E3, 0x11A3F, @@ -338962,7 +362597,7 @@ static const UV UNI_P_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_P_invlist[] = { /* for EBCDIC 1047 */ - 373, /* Number of elements */ + 379, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -339155,6 +362790,8 @@ static const UV UNI_P_invlist[] = { /* for EBCDIC 1047 */ 0x2E2F, 0x2E30, 0x2E50, + 0x2E52, + 0x2E53, 0x3001, 0x3004, 0x3008, @@ -339261,6 +362898,8 @@ static const UV UNI_P_invlist[] = { /* for EBCDIC 1047 */ 0x10B40, 0x10B99, 0x10B9D, + 0x10EAD, + 0x10EAE, 0x10F55, 0x10F5A, 0x11047, @@ -339287,7 +362926,7 @@ static const UV UNI_P_invlist[] = { /* for EBCDIC 1047 */ 0x112AA, 0x1144B, 0x11450, - 0x1145B, + 0x1145A, 0x1145C, 0x1145D, 0x1145E, @@ -339303,6 +362942,8 @@ static const UV UNI_P_invlist[] = { /* for EBCDIC 1047 */ 0x1173F, 0x1183B, 0x1183C, + 0x11944, + 0x11947, 0x119E2, 0x119E3, 0x11A3F, @@ -339349,7 +362990,7 @@ static const UV UNI_P_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_P_invlist[] = { /* for EBCDIC 037 */ - 371, /* Number of elements */ + 377, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -339540,6 +363181,8 @@ static const UV UNI_P_invlist[] = { /* for EBCDIC 037 */ 0x2E2F, 0x2E30, 0x2E50, + 0x2E52, + 0x2E53, 0x3001, 0x3004, 0x3008, @@ -339646,6 +363289,8 @@ static const UV UNI_P_invlist[] = { /* for EBCDIC 037 */ 0x10B40, 0x10B99, 0x10B9D, + 0x10EAD, + 0x10EAE, 0x10F55, 0x10F5A, 0x11047, @@ -339672,7 +363317,7 @@ static const UV UNI_P_invlist[] = { /* for EBCDIC 037 */ 0x112AA, 0x1144B, 0x11450, - 0x1145B, + 0x1145A, 0x1145C, 0x1145D, 0x1145E, @@ -339688,6 +363333,8 @@ static const UV UNI_P_invlist[] = { /* for EBCDIC 037 */ 0x1173F, 0x1183B, 0x1183C, + 0x11944, + 0x11947, 0x119E2, 0x119E3, 0x11A3F, @@ -340065,7 +363712,7 @@ static const UV UNI_PCM_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_PD_invlist[] = { /* for ASCII/Latin1 */ - 35, /* Number of elements */ + 37, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -340103,7 +363750,9 @@ static const UV UNI_PD_invlist[] = { /* for ASCII/Latin1 */ 0xFE63, 0xFE64, 0xFF0D, - 0xFF0E + 0xFF0E, + 0x10EAD, + 0x10EAE }; # endif /* ASCII/Latin1 */ @@ -340114,7 +363763,7 @@ static const UV UNI_PD_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_PD_invlist[] = { /* for EBCDIC 1047 */ - 35, /* Number of elements */ + 37, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -340152,7 +363801,9 @@ static const UV UNI_PD_invlist[] = { /* for EBCDIC 1047 */ 0xFE63, 0xFE64, 0xFF0D, - 0xFF0E + 0xFF0E, + 0x10EAD, + 0x10EAE }; # endif /* EBCDIC 1047 */ @@ -340163,7 +363814,7 @@ static const UV UNI_PD_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_PD_invlist[] = { /* for EBCDIC 037 */ - 35, /* Number of elements */ + 37, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -340201,7 +363852,9 @@ static const UV UNI_PD_invlist[] = { /* for EBCDIC 037 */ 0xFE63, 0xFE64, 0xFF0D, - 0xFF0E + 0xFF0E, + 0x10EAD, + 0x10EAE }; # endif /* EBCDIC 037 */ @@ -340999,7 +364652,7 @@ static const UV UNI_PLAYINGCARDS_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_PO_invlist[] = { /* for ASCII/Latin1 */ - 359, /* Number of elements */ + 363, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -341180,6 +364833,8 @@ static const UV UNI_PO_invlist[] = { /* for ASCII/Latin1 */ 0x2E42, 0x2E43, 0x2E50, + 0x2E52, + 0x2E53, 0x3001, 0x3004, 0x303D, @@ -341310,7 +364965,7 @@ static const UV UNI_PO_invlist[] = { /* for ASCII/Latin1 */ 0x112AA, 0x1144B, 0x11450, - 0x1145B, + 0x1145A, 0x1145C, 0x1145D, 0x1145E, @@ -341326,6 +364981,8 @@ static const UV UNI_PO_invlist[] = { /* for ASCII/Latin1 */ 0x1173F, 0x1183B, 0x1183C, + 0x11944, + 0x11947, 0x119E2, 0x119E3, 0x11A3F, @@ -341372,7 +365029,7 @@ static const UV UNI_PO_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_PO_invlist[] = { /* for EBCDIC 1047 */ - 363, /* Number of elements */ + 367, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -341557,6 +365214,8 @@ static const UV UNI_PO_invlist[] = { /* for EBCDIC 1047 */ 0x2E42, 0x2E43, 0x2E50, + 0x2E52, + 0x2E53, 0x3001, 0x3004, 0x303D, @@ -341687,7 +365346,7 @@ static const UV UNI_PO_invlist[] = { /* for EBCDIC 1047 */ 0x112AA, 0x1144B, 0x11450, - 0x1145B, + 0x1145A, 0x1145C, 0x1145D, 0x1145E, @@ -341703,6 +365362,8 @@ static const UV UNI_PO_invlist[] = { /* for EBCDIC 1047 */ 0x1173F, 0x1183B, 0x1183C, + 0x11944, + 0x11947, 0x119E2, 0x119E3, 0x11A3F, @@ -341749,7 +365410,7 @@ static const UV UNI_PO_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_PO_invlist[] = { /* for EBCDIC 037 */ - 363, /* Number of elements */ + 367, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -341934,6 +365595,8 @@ static const UV UNI_PO_invlist[] = { /* for EBCDIC 037 */ 0x2E42, 0x2E43, 0x2E50, + 0x2E52, + 0x2E53, 0x3001, 0x3004, 0x303D, @@ -342064,7 +365727,7 @@ static const UV UNI_PO_invlist[] = { /* for EBCDIC 037 */ 0x112AA, 0x1144B, 0x11450, - 0x1145B, + 0x1145A, 0x1145C, 0x1145D, 0x1145E, @@ -342080,6 +365743,8 @@ static const UV UNI_PO_invlist[] = { /* for EBCDIC 037 */ 0x1173F, 0x1183B, 0x1183C, + 0x11944, + 0x11947, 0x119E2, 0x119E3, 0x11A3F, @@ -342635,7 +366300,7 @@ static const UV UNI_PUA_invlist[] = { /* for all charsets */ }; static const UV UNI_QAAI_invlist[] = { /* for all charsets */ - 35, /* Number of elements */ + 37, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -342649,8 +366314,10 @@ static const UV UNI_QAAI_invlist[] = { /* for all charsets */ 0x953, 0x955, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1DC2, + 0x1DF8, + 0x1DF9, 0x1DFA, 0x1DFB, 0x1E00, @@ -342875,7 +366542,7 @@ static const UV UNI_RUNR_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_S_invlist[] = { /* for ASCII/Latin1 */ - 453, /* Number of elements */ + 459, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -343080,10 +366747,12 @@ static const UV UNI_S_invlist[] = { /* for ASCII/Latin1 */ 0x2B74, 0x2B76, 0x2B96, - 0x2B98, + 0x2B97, 0x2C00, 0x2CE5, 0x2CEB, + 0x2E50, + 0x2E52, 0x2E80, 0x2E9A, 0x2E9B, @@ -343140,6 +366809,8 @@ static const UV UNI_S_invlist[] = { /* for ASCII/Latin1 */ 0xAA7A, 0xAB5B, 0xAB5C, + 0xAB6A, + 0xAB6C, 0xFB29, 0xFB2A, 0xFBB2, @@ -343179,7 +366850,7 @@ static const UV UNI_S_invlist[] = { /* for ASCII/Latin1 */ 0x1018C, 0x1018F, 0x10190, - 0x1019C, + 0x1019D, 0x101A0, 0x101A1, 0x101D0, @@ -343272,10 +366943,8 @@ static const UV UNI_S_invlist[] = { /* for ASCII/Latin1 */ 0x1F0D0, 0x1F0D1, 0x1F0F6, - 0x1F110, - 0x1F16D, - 0x1F170, - 0x1F1AD, + 0x1F10D, + 0x1F1AE, 0x1F1E6, 0x1F203, 0x1F210, @@ -343287,11 +366956,11 @@ static const UV UNI_S_invlist[] = { /* for ASCII/Latin1 */ 0x1F260, 0x1F266, 0x1F300, - 0x1F6D6, + 0x1F6D8, 0x1F6E0, 0x1F6ED, 0x1F6F0, - 0x1F6FB, + 0x1F6FD, 0x1F700, 0x1F774, 0x1F780, @@ -343308,30 +366977,34 @@ static const UV UNI_S_invlist[] = { /* for ASCII/Latin1 */ 0x1F888, 0x1F890, 0x1F8AE, + 0x1F8B0, + 0x1F8B2, 0x1F900, - 0x1F90C, - 0x1F90D, - 0x1F972, - 0x1F973, - 0x1F977, + 0x1F979, 0x1F97A, - 0x1F9A3, - 0x1F9A5, - 0x1F9AB, - 0x1F9AE, - 0x1F9CB, + 0x1F9CC, 0x1F9CD, 0x1FA54, 0x1FA60, 0x1FA6E, 0x1FA70, - 0x1FA74, + 0x1FA75, 0x1FA78, 0x1FA7B, 0x1FA80, - 0x1FA83, + 0x1FA87, 0x1FA90, - 0x1FA96 + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB }; # endif /* ASCII/Latin1 */ @@ -343342,7 +367015,7 @@ static const UV UNI_S_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_S_invlist[] = { /* for EBCDIC 1047 */ - 459, /* Number of elements */ + 465, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -343553,10 +367226,12 @@ static const UV UNI_S_invlist[] = { /* for EBCDIC 1047 */ 0x2B74, 0x2B76, 0x2B96, - 0x2B98, + 0x2B97, 0x2C00, 0x2CE5, 0x2CEB, + 0x2E50, + 0x2E52, 0x2E80, 0x2E9A, 0x2E9B, @@ -343613,6 +367288,8 @@ static const UV UNI_S_invlist[] = { /* for EBCDIC 1047 */ 0xAA7A, 0xAB5B, 0xAB5C, + 0xAB6A, + 0xAB6C, 0xFB29, 0xFB2A, 0xFBB2, @@ -343652,7 +367329,7 @@ static const UV UNI_S_invlist[] = { /* for EBCDIC 1047 */ 0x1018C, 0x1018F, 0x10190, - 0x1019C, + 0x1019D, 0x101A0, 0x101A1, 0x101D0, @@ -343745,10 +367422,8 @@ static const UV UNI_S_invlist[] = { /* for EBCDIC 1047 */ 0x1F0D0, 0x1F0D1, 0x1F0F6, - 0x1F110, - 0x1F16D, - 0x1F170, - 0x1F1AD, + 0x1F10D, + 0x1F1AE, 0x1F1E6, 0x1F203, 0x1F210, @@ -343760,11 +367435,11 @@ static const UV UNI_S_invlist[] = { /* for EBCDIC 1047 */ 0x1F260, 0x1F266, 0x1F300, - 0x1F6D6, + 0x1F6D8, 0x1F6E0, 0x1F6ED, 0x1F6F0, - 0x1F6FB, + 0x1F6FD, 0x1F700, 0x1F774, 0x1F780, @@ -343781,30 +367456,34 @@ static const UV UNI_S_invlist[] = { /* for EBCDIC 1047 */ 0x1F888, 0x1F890, 0x1F8AE, + 0x1F8B0, + 0x1F8B2, 0x1F900, - 0x1F90C, - 0x1F90D, - 0x1F972, - 0x1F973, - 0x1F977, + 0x1F979, 0x1F97A, - 0x1F9A3, - 0x1F9A5, - 0x1F9AB, - 0x1F9AE, - 0x1F9CB, + 0x1F9CC, 0x1F9CD, 0x1FA54, 0x1FA60, 0x1FA6E, 0x1FA70, - 0x1FA74, + 0x1FA75, 0x1FA78, 0x1FA7B, 0x1FA80, - 0x1FA83, + 0x1FA87, 0x1FA90, - 0x1FA96 + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB }; # endif /* EBCDIC 1047 */ @@ -343815,7 +367494,7 @@ static const UV UNI_S_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_S_invlist[] = { /* for EBCDIC 037 */ - 457, /* Number of elements */ + 463, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -344024,10 +367703,12 @@ static const UV UNI_S_invlist[] = { /* for EBCDIC 037 */ 0x2B74, 0x2B76, 0x2B96, - 0x2B98, + 0x2B97, 0x2C00, 0x2CE5, 0x2CEB, + 0x2E50, + 0x2E52, 0x2E80, 0x2E9A, 0x2E9B, @@ -344084,6 +367765,8 @@ static const UV UNI_S_invlist[] = { /* for EBCDIC 037 */ 0xAA7A, 0xAB5B, 0xAB5C, + 0xAB6A, + 0xAB6C, 0xFB29, 0xFB2A, 0xFBB2, @@ -344123,7 +367806,7 @@ static const UV UNI_S_invlist[] = { /* for EBCDIC 037 */ 0x1018C, 0x1018F, 0x10190, - 0x1019C, + 0x1019D, 0x101A0, 0x101A1, 0x101D0, @@ -344216,10 +367899,8 @@ static const UV UNI_S_invlist[] = { /* for EBCDIC 037 */ 0x1F0D0, 0x1F0D1, 0x1F0F6, - 0x1F110, - 0x1F16D, - 0x1F170, - 0x1F1AD, + 0x1F10D, + 0x1F1AE, 0x1F1E6, 0x1F203, 0x1F210, @@ -344231,11 +367912,11 @@ static const UV UNI_S_invlist[] = { /* for EBCDIC 037 */ 0x1F260, 0x1F266, 0x1F300, - 0x1F6D6, + 0x1F6D8, 0x1F6E0, 0x1F6ED, 0x1F6F0, - 0x1F6FB, + 0x1F6FD, 0x1F700, 0x1F774, 0x1F780, @@ -344252,30 +367933,34 @@ static const UV UNI_S_invlist[] = { /* for EBCDIC 037 */ 0x1F888, 0x1F890, 0x1F8AE, + 0x1F8B0, + 0x1F8B2, 0x1F900, - 0x1F90C, - 0x1F90D, - 0x1F972, - 0x1F973, - 0x1F977, + 0x1F979, 0x1F97A, - 0x1F9A3, - 0x1F9A5, - 0x1F9AB, - 0x1F9AE, - 0x1F9CB, + 0x1F9CC, 0x1F9CD, 0x1FA54, 0x1FA60, 0x1FA6E, 0x1FA70, - 0x1FA74, + 0x1FA75, 0x1FA78, 0x1FA7B, 0x1FA80, - 0x1FA83, + 0x1FA87, 0x1FA90, - 0x1FA96 + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB }; # endif /* EBCDIC 037 */ @@ -344689,7 +368374,7 @@ static const UV UNI_SB__CL_invlist[] = { /* for EBCDIC 037 */ # endif /* EBCDIC 037 */ static const UV UNI_SB__EX_invlist[] = { /* for all charsets */ - 567, /* Number of elements */ + 587, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -344810,7 +368495,7 @@ static const UV UNI_SB__EX_invlist[] = { /* for all charsets */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB62, 0xB64, @@ -344864,7 +368549,7 @@ static const UV UNI_SB__EX_invlist[] = { /* for all charsets */ 0xD58, 0xD62, 0xD64, - 0xD82, + 0xD81, 0xD84, 0xDCA, 0xDCB, @@ -344959,7 +368644,7 @@ static const UV UNI_SB__EX_invlist[] = { /* for all charsets */ 0x1A7F, 0x1A80, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B05, 0x1B34, @@ -345018,6 +368703,8 @@ static const UV UNI_SB__EX_invlist[] = { /* for all charsets */ 0xA80C, 0xA823, 0xA828, + 0xA82C, + 0xA82D, 0xA880, 0xA882, 0xA8B4, @@ -345090,6 +368777,8 @@ static const UV UNI_SB__EX_invlist[] = { /* for all charsets */ 0x10AE7, 0x10D24, 0x10D28, + 0x10EAB, + 0x10EAD, 0x10F46, 0x10F51, 0x11000, @@ -345114,6 +368803,8 @@ static const UV UNI_SB__EX_invlist[] = { /* for all charsets */ 0x111C1, 0x111C9, 0x111CD, + 0x111CE, + 0x111D0, 0x1122C, 0x11238, 0x1123E, @@ -345158,6 +368849,16 @@ static const UV UNI_SB__EX_invlist[] = { /* for all charsets */ 0x1172C, 0x1182C, 0x1183B, + 0x11930, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x1193F, + 0x11940, + 0x11941, + 0x11942, + 0x11944, 0x119D1, 0x119D8, 0x119DA, @@ -345212,6 +368913,10 @@ static const UV UNI_SB__EX_invlist[] = { /* for all charsets */ 0x16F88, 0x16F8F, 0x16F93, + 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x1BC9D, 0x1BC9F, 0x1D165, @@ -345425,7 +369130,7 @@ static const UV UNI_SB__FO_invlist[] = { /* for EBCDIC 037 */ # endif /* EBCDIC 037 */ static const UV UNI_SB__LE_invlist[] = { /* for all charsets */ - 1011, /* Number of elements */ + 1039, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -345497,7 +369202,7 @@ static const UV UNI_SB__LE_invlist[] = { /* for all charsets */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x904, 0x93A, 0x93D, @@ -345648,7 +369353,7 @@ static const UV UNI_SB__LE_invlist[] = { /* for all charsets */ 0xCE2, 0xCF1, 0xCF3, - 0xD05, + 0xD04, 0xD0D, 0xD0E, 0xD11, @@ -345897,13 +369602,13 @@ static const UV UNI_SB__LE_invlist[] = { /* for all charsets */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA4D0, @@ -346000,6 +369705,8 @@ static const UV UNI_SB__LE_invlist[] = { /* for all charsets */ 0xAB27, 0xAB28, 0xAB2F, + 0xAB69, + 0xAB6A, 0xABC0, 0xABE3, 0xAC00, @@ -346154,12 +369861,18 @@ static const UV UNI_SB__LE_invlist[] = { /* for all charsets */ 0x10C49, 0x10D00, 0x10D24, + 0x10E80, + 0x10EAA, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, 0x10F28, 0x10F30, 0x10F46, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11003, @@ -346172,6 +369885,8 @@ static const UV UNI_SB__LE_invlist[] = { /* for all charsets */ 0x11127, 0x11144, 0x11145, + 0x11147, + 0x11148, 0x11150, 0x11173, 0x11176, @@ -346223,7 +369938,7 @@ static const UV UNI_SB__LE_invlist[] = { /* for all charsets */ 0x11447, 0x1144B, 0x1145F, - 0x11460, + 0x11462, 0x11480, 0x114B0, 0x114C4, @@ -346247,7 +369962,19 @@ static const UV UNI_SB__LE_invlist[] = { /* for all charsets */ 0x11800, 0x1182C, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11930, + 0x1193F, + 0x11940, + 0x11941, + 0x11942, 0x119A0, 0x119A8, 0x119AA, @@ -346296,6 +370023,8 @@ static const UV UNI_SB__LE_invlist[] = { /* for all charsets */ 0x11D99, 0x11EE0, 0x11EF3, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12400, @@ -346333,7 +370062,9 @@ static const UV UNI_SB__LE_invlist[] = { /* for all charsets */ 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -346429,7 +370160,7 @@ static const UV UNI_SB__LE_invlist[] = { /* for all charsets */ 0x1EEAB, 0x1EEBC, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -346439,13 +370170,15 @@ static const UV UNI_SB__LE_invlist[] = { /* for all charsets */ 0x2CEB0, 0x2EBE1, 0x2F800, - 0x2FA1E + 0x2FA1E, + 0x30000, + 0x3134B }; # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_SB__LO_invlist[] = { /* for ASCII/Latin1 */ - 1293, /* Number of elements */ + 1299, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -347660,12 +371393,18 @@ static const UV UNI_SB__LO_invlist[] = { /* for ASCII/Latin1 */ 0xA7C0, 0xA7C3, 0xA7C4, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7CB, + 0xA7F6, + 0xA7F7, 0xA7F8, 0xA7FB, 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB69, 0xAB70, 0xABC0, 0xFB00, @@ -347752,7 +371491,7 @@ static const UV UNI_SB__LO_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_SB__LO_invlist[] = { /* for EBCDIC 1047 */ - 1301, /* Number of elements */ + 1307, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -348975,12 +372714,18 @@ static const UV UNI_SB__LO_invlist[] = { /* for EBCDIC 1047 */ 0xA7C0, 0xA7C3, 0xA7C4, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7CB, + 0xA7F6, + 0xA7F7, 0xA7F8, 0xA7FB, 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB69, 0xAB70, 0xABC0, 0xFB00, @@ -349067,7 +372812,7 @@ static const UV UNI_SB__LO_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_SB__LO_invlist[] = { /* for EBCDIC 037 */ - 1301, /* Number of elements */ + 1307, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -350290,12 +374035,18 @@ static const UV UNI_SB__LO_invlist[] = { /* for EBCDIC 037 */ 0xA7C0, 0xA7C3, 0xA7C4, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7CB, + 0xA7F6, + 0xA7F7, 0xA7F8, 0xA7FB, 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB69, 0xAB70, 0xABC0, 0xFB00, @@ -350379,7 +374130,7 @@ static const UV UNI_SB__LO_invlist[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_SB__NU_invlist[] = { /* for ASCII/Latin1 */ - 121, /* Number of elements */ + 125, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -350486,6 +374237,8 @@ static const UV UNI_SB__NU_invlist[] = { /* for ASCII/Latin1 */ 0x1173A, 0x118E0, 0x118EA, + 0x11950, + 0x1195A, 0x11C50, 0x11C5A, 0x11D50, @@ -350503,7 +374256,9 @@ static const UV UNI_SB__NU_invlist[] = { /* for ASCII/Latin1 */ 0x1E2F0, 0x1E2FA, 0x1E950, - 0x1E95A + 0x1E95A, + 0x1FBF0, + 0x1FBFA }; # endif /* ASCII/Latin1 */ @@ -350514,7 +374269,7 @@ static const UV UNI_SB__NU_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_SB__NU_invlist[] = { /* for EBCDIC 1047 */ - 121, /* Number of elements */ + 125, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -350621,6 +374376,8 @@ static const UV UNI_SB__NU_invlist[] = { /* for EBCDIC 1047 */ 0x1173A, 0x118E0, 0x118EA, + 0x11950, + 0x1195A, 0x11C50, 0x11C5A, 0x11D50, @@ -350638,7 +374395,9 @@ static const UV UNI_SB__NU_invlist[] = { /* for EBCDIC 1047 */ 0x1E2F0, 0x1E2FA, 0x1E950, - 0x1E95A + 0x1E95A, + 0x1FBF0, + 0x1FBFA }; # endif /* EBCDIC 1047 */ @@ -350649,7 +374408,7 @@ static const UV UNI_SB__NU_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_SB__NU_invlist[] = { /* for EBCDIC 037 */ - 121, /* Number of elements */ + 125, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -350756,6 +374515,8 @@ static const UV UNI_SB__NU_invlist[] = { /* for EBCDIC 037 */ 0x1173A, 0x118E0, 0x118EA, + 0x11950, + 0x1195A, 0x11C50, 0x11C5A, 0x11D50, @@ -350773,7 +374534,9 @@ static const UV UNI_SB__NU_invlist[] = { /* for EBCDIC 037 */ 0x1E2F0, 0x1E2FA, 0x1E950, - 0x1E95A + 0x1E95A, + 0x1FBF0, + 0x1FBFA }; # endif /* EBCDIC 037 */ @@ -351087,7 +374850,7 @@ static const UV UNI_SB__SP_invlist[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_SB__ST_invlist[] = { /* for ASCII/Latin1 */ - 143, /* Number of elements */ + 147, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -351212,6 +374975,10 @@ static const UV UNI_SB__ST_invlist[] = { /* for ASCII/Latin1 */ 0x11643, 0x1173C, 0x1173F, + 0x11944, + 0x11945, + 0x11946, + 0x11947, 0x11A42, 0x11A44, 0x11A9B, @@ -351244,7 +375011,7 @@ static const UV UNI_SB__ST_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_SB__ST_invlist[] = { /* for EBCDIC 1047 */ - 143, /* Number of elements */ + 147, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -351369,6 +375136,10 @@ static const UV UNI_SB__ST_invlist[] = { /* for EBCDIC 1047 */ 0x11643, 0x1173C, 0x1173F, + 0x11944, + 0x11945, + 0x11946, + 0x11947, 0x11A42, 0x11A44, 0x11A9B, @@ -351401,7 +375172,7 @@ static const UV UNI_SB__ST_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_SB__ST_invlist[] = { /* for EBCDIC 037 */ - 143, /* Number of elements */ + 147, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -351526,6 +375297,10 @@ static const UV UNI_SB__ST_invlist[] = { /* for EBCDIC 037 */ 0x11643, 0x1173C, 0x1173F, + 0x11944, + 0x11945, + 0x11946, + 0x11947, 0x11A42, 0x11A44, 0x11A9B, @@ -351555,7 +375330,7 @@ static const UV UNI_SB__ST_invlist[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_SB__UP_invlist[] = { /* for ASCII/Latin1 */ - 1285, /* Number of elements */ + 1289, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -352761,7 +376536,11 @@ static const UV UNI_SB__UP_invlist[] = { /* for ASCII/Latin1 */ 0xA7C2, 0xA7C3, 0xA7C4, - 0xA7C7, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7F5, + 0xA7F6, 0xFF21, 0xFF3B, 0x10400, @@ -352854,7 +376633,7 @@ static const UV UNI_SB__UP_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_SB__UP_invlist[] = { /* for EBCDIC 1047 */ - 1303, /* Number of elements */ + 1307, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -354078,7 +377857,11 @@ static const UV UNI_SB__UP_invlist[] = { /* for EBCDIC 1047 */ 0xA7C2, 0xA7C3, 0xA7C4, - 0xA7C7, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7F5, + 0xA7F6, 0xFF21, 0xFF3B, 0x10400, @@ -354171,7 +377954,7 @@ static const UV UNI_SB__UP_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_SB__UP_invlist[] = { /* for EBCDIC 037 */ - 1299, /* Number of elements */ + 1303, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -355391,7 +379174,11 @@ static const UV UNI_SB__UP_invlist[] = { /* for EBCDIC 037 */ 0xA7C2, 0xA7C3, 0xA7C4, - 0xA7C7, + 0xA7C8, + 0xA7C9, + 0xA7CA, + 0xA7F5, + 0xA7F6, 0xFF21, 0xFF3B, 0x10400, @@ -355481,7 +379268,7 @@ static const UV UNI_SB__UP_invlist[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */ - 1579, /* Number of elements */ + 1611, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -355621,7 +379408,7 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x970, 0x971, @@ -355736,7 +379523,7 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -355829,8 +379616,6 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */ 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -355848,7 +379633,7 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */ 0xD70, 0xD7A, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -356051,7 +379836,7 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */ 0x1AA7, 0x1AAC, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B4C, 0x1B50, @@ -356273,13 +380058,13 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA4D0, @@ -356305,9 +380090,11 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */ 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA828, + 0xA82C, + 0xA82D, 0xA840, 0xA874, 0xA876, @@ -356361,7 +380148,7 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */ 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB6A, 0xAB70, 0xABEE, 0xABF0, @@ -356586,6 +380373,12 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */ 0x10D28, 0x10D30, 0x10D3A, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAD, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, @@ -356594,6 +380387,8 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */ 0x10F51, 0x10F55, 0x10F5A, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11000, @@ -356615,7 +380410,7 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */ 0x11136, 0x11140, 0x11141, - 0x11147, + 0x11148, 0x11150, 0x11174, 0x11176, @@ -356623,8 +380418,6 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */ 0x11180, 0x111C7, 0x111C9, - 0x111CE, - 0x111D0, 0x111DB, 0x111DC, 0x111DD, @@ -356687,7 +380480,7 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */ 0x11450, 0x1145A, 0x1145E, - 0x11460, + 0x11462, 0x11480, 0x114C6, 0x114C7, @@ -356725,7 +380518,23 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */ 0x118A0, 0x118EA, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11945, + 0x11946, + 0x11947, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -356788,6 +380597,8 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */ 0x11DAA, 0x11EE0, 0x11EF9, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12400, @@ -356835,11 +380646,15 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */ 0x16FE0, 0x16FE2, 0x16FE3, - 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -357046,8 +380861,10 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */ 0x1F18A, 0x1F676, 0x1F679, + 0x1FBF0, + 0x1FBFA, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -357058,6 +380875,8 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */ 0x2EBE1, 0x2F800, 0x2FA1E, + 0x30000, + 0x3134B, 0xE0001, 0xE0002, 0xE0020, @@ -357074,7 +380893,7 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */ - 1599, /* Number of elements */ + 1631, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -357234,7 +381053,7 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x970, 0x971, @@ -357349,7 +381168,7 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -357442,8 +381261,6 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */ 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -357461,7 +381278,7 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */ 0xD70, 0xD7A, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -357664,7 +381481,7 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */ 0x1AA7, 0x1AAC, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B4C, 0x1B50, @@ -357886,13 +381703,13 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA4D0, @@ -357918,9 +381735,11 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */ 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA828, + 0xA82C, + 0xA82D, 0xA840, 0xA874, 0xA876, @@ -357974,7 +381793,7 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */ 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB6A, 0xAB70, 0xABEE, 0xABF0, @@ -358199,6 +382018,12 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */ 0x10D28, 0x10D30, 0x10D3A, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAD, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, @@ -358207,6 +382032,8 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */ 0x10F51, 0x10F55, 0x10F5A, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11000, @@ -358228,7 +382055,7 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */ 0x11136, 0x11140, 0x11141, - 0x11147, + 0x11148, 0x11150, 0x11174, 0x11176, @@ -358236,8 +382063,6 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */ 0x11180, 0x111C7, 0x111C9, - 0x111CE, - 0x111D0, 0x111DB, 0x111DC, 0x111DD, @@ -358300,7 +382125,7 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */ 0x11450, 0x1145A, 0x1145E, - 0x11460, + 0x11462, 0x11480, 0x114C6, 0x114C7, @@ -358338,7 +382163,23 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */ 0x118A0, 0x118EA, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11945, + 0x11946, + 0x11947, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -358401,6 +382242,8 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */ 0x11DAA, 0x11EE0, 0x11EF9, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12400, @@ -358448,11 +382291,15 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */ 0x16FE0, 0x16FE2, 0x16FE3, - 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -358659,8 +382506,10 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */ 0x1F18A, 0x1F676, 0x1F679, + 0x1FBF0, + 0x1FBFA, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -358671,6 +382520,8 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */ 0x2EBE1, 0x2F800, 0x2FA1E, + 0x30000, + 0x3134B, 0xE0001, 0xE0002, 0xE0020, @@ -358687,7 +382538,7 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */ - 1597, /* Number of elements */ + 1629, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -358845,7 +382696,7 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x970, 0x971, @@ -358960,7 +382811,7 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -359053,8 +382904,6 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */ 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -359072,7 +382921,7 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */ 0xD70, 0xD7A, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -359275,7 +383124,7 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */ 0x1AA7, 0x1AAC, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B4C, 0x1B50, @@ -359497,13 +383346,13 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA4D0, @@ -359529,9 +383378,11 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */ 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA828, + 0xA82C, + 0xA82D, 0xA840, 0xA874, 0xA876, @@ -359585,7 +383436,7 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */ 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB6A, 0xAB70, 0xABEE, 0xABF0, @@ -359810,6 +383661,12 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */ 0x10D28, 0x10D30, 0x10D3A, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAD, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, @@ -359818,6 +383675,8 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */ 0x10F51, 0x10F55, 0x10F5A, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11000, @@ -359839,7 +383698,7 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */ 0x11136, 0x11140, 0x11141, - 0x11147, + 0x11148, 0x11150, 0x11174, 0x11176, @@ -359847,8 +383706,6 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */ 0x11180, 0x111C7, 0x111C9, - 0x111CE, - 0x111D0, 0x111DB, 0x111DC, 0x111DD, @@ -359911,7 +383768,7 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */ 0x11450, 0x1145A, 0x1145E, - 0x11460, + 0x11462, 0x11480, 0x114C6, 0x114C7, @@ -359949,7 +383806,23 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */ 0x118A0, 0x118EA, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11945, + 0x11946, + 0x11947, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -360012,6 +383885,8 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */ 0x11DAA, 0x11EE0, 0x11EF9, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12400, @@ -360059,11 +383934,15 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */ 0x16FE0, 0x16FE2, 0x16FE3, - 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -360270,8 +384149,10 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */ 0x1F18A, 0x1F676, 0x1F679, + 0x1FBF0, + 0x1FBFA, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -360282,6 +384163,8 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */ 0x2EBE1, 0x2F800, 0x2FA1E, + 0x30000, + 0x3134B, 0xE0001, 0xE0002, 0xE0020, @@ -360513,7 +384396,7 @@ static const UV UNI_SC__ARAB_invlist[] = { /* for all charsets */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x8E2, 0x8E3, @@ -360604,24 +384487,6 @@ static const UV UNI_SC__ARAB_invlist[] = { /* for all charsets */ 0x1EEF2 }; -static const UV UNI_SC__ARMN_invlist[] = { /* for all charsets */ - 11, /* Number of elements */ - 148565664, /* Version and data structure type */ - 1, /* 0 if the list starts at 0; - 1 if it starts at the element beyond 0 */ - 0x0, - 0x531, - 0x557, - 0x559, - 0x589, - 0x58A, - 0x58B, - 0x58D, - 0x590, - 0xFB13, - 0xFB18 -}; - static const UV UNI_SC__BENG_invlist[] = { /* for all charsets */ 29, /* Number of elements */ 148565664, /* Version and data structure type */ @@ -360669,7 +384534,7 @@ static const UV UNI_SC__BOPO_invlist[] = { /* for all charsets */ 0x3105, 0x3130, 0x31A0, - 0x31BB + 0x31C0 }; static const UV UNI_SC__BUGI_invlist[] = { /* for all charsets */ @@ -360703,7 +384568,7 @@ static const UV UNI_SC__CAKM_invlist[] = { /* for all charsets */ 0x11100, 0x11135, 0x11136, - 0x11147 + 0x11148 }; static const UV UNI_SC__COPT_invlist[] = { /* for all charsets */ @@ -361095,7 +384960,7 @@ static const UV UNI_SC__GURU_invlist[] = { /* for all charsets */ }; static const UV UNI_SC__HAN_invlist[] = { /* for all charsets */ - 35, /* Number of elements */ + 39, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -361115,15 +384980,17 @@ static const UV UNI_SC__HAN_invlist[] = { /* for all charsets */ 0x3038, 0x303C, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xF900, 0xFA6E, 0xFA70, 0xFADA, + 0x16FF0, + 0x16FF2, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -361133,7 +385000,9 @@ static const UV UNI_SC__HAN_invlist[] = { /* for all charsets */ 0x2CEB0, 0x2EBE1, 0x2F800, - 0x2FA1E + 0x2FA1E, + 0x30000, + 0x3134B }; static const UV UNI_SC__HANG_invlist[] = { /* for all charsets */ @@ -361367,15 +385236,15 @@ static const UV UNI_SC__LATN_invlist[] = { /* for ASCII/Latin1 */ 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA800, 0xAB30, 0xAB5B, 0xAB5C, 0xAB65, 0xAB66, - 0xAB68, + 0xAB6A, 0xFB00, 0xFB07, 0xFF21, @@ -361472,15 +385341,15 @@ static const UV UNI_SC__LATN_invlist[] = { /* for EBCDIC 1047 */ 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA800, 0xAB30, 0xAB5B, 0xAB5C, 0xAB65, 0xAB66, - 0xAB68, + 0xAB6A, 0xFB00, 0xFB07, 0xFF21, @@ -361573,15 +385442,15 @@ static const UV UNI_SC__LATN_invlist[] = { /* for EBCDIC 037 */ 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA800, 0xAB30, 0xAB5B, 0xAB5C, 0xAB65, 0xAB66, - 0xAB68, + 0xAB6A, 0xFB00, 0xFB07, 0xFF21, @@ -361681,14 +385550,12 @@ static const UV UNI_SC__MANI_invlist[] = { /* for all charsets */ }; static const UV UNI_SC__MLYM_invlist[] = { /* for all charsets */ - 17, /* Number of elements */ + 15, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ 0x0, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -361810,7 +385677,7 @@ static const UV UNI_SC__ORYA_invlist[] = { /* for all charsets */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -361871,7 +385738,7 @@ static const UV UNI_SC__QAAI_invlist[] = { /* for all charsets */ 0x951, 0x955, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1CD0, 0x1CD3, 0x1CD4, @@ -361931,14 +385798,12 @@ static const UV UNI_SC__ROHG_invlist[] = { /* for all charsets */ }; static const UV UNI_SC__SHRD_invlist[] = { /* for all charsets */ - 5, /* Number of elements */ + 3, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ 0x0, 0x11180, - 0x111CE, - 0x111D0, 0x111E0 }; @@ -361960,7 +385825,7 @@ static const UV UNI_SC__SINH_invlist[] = { /* for all charsets */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ 0x0, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -362005,7 +385870,7 @@ static const UV UNI_SC__SYLO_invlist[] = { /* for all charsets */ 1 if it starts at the element beyond 0 */ 0x0, 0xA800, - 0xA82C + 0xA82D }; static const UV UNI_SC__SYRC_invlist[] = { /* for all charsets */ @@ -362172,6 +386037,20 @@ static const UV UNI_SC__TIRH_invlist[] = { /* for all charsets */ 0x114DA }; +static const UV UNI_SC__YEZI_invlist[] = { /* for all charsets */ + 7, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAE, + 0x10EB0, + 0x10EB2 +}; + static const UV UNI_SC__YI_invlist[] = { /* for all charsets */ 5, /* Number of elements */ 148565664, /* Version and data structure type */ @@ -362187,7 +386066,7 @@ static const UV UNI_SC__YI_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_SC__ZYYY_invlist[] = { /* for ASCII/Latin1 */ - 344, /* Number of elements */ + 346, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -362219,8 +386098,6 @@ static const UV UNI_SC__ZYYY_invlist[] = { /* for ASCII/Latin1 */ 0x386, 0x387, 0x388, - 0x589, - 0x58A, 0x605, 0x606, 0x60C, @@ -362297,10 +386174,10 @@ static const UV UNI_SC__ZYYY_invlist[] = { /* for ASCII/Latin1 */ 0x2B74, 0x2B76, 0x2B96, - 0x2B98, + 0x2B97, 0x2C00, 0x2E00, - 0x2E50, + 0x2E53, 0x2FF0, 0x2FFC, 0x3000, @@ -362345,6 +386222,8 @@ static const UV UNI_SC__ZYYY_invlist[] = { /* for ASCII/Latin1 */ 0xA9D0, 0xAB5B, 0xAB5C, + 0xAB6A, + 0xAB6C, 0xFD3E, 0xFD40, 0xFE10, @@ -362380,7 +386259,7 @@ static const UV UNI_SC__ZYYY_invlist[] = { /* for ASCII/Latin1 */ 0x10137, 0x10140, 0x10190, - 0x1019C, + 0x1019D, 0x101D0, 0x101FD, 0x102E1, @@ -362468,11 +386347,7 @@ static const UV UNI_SC__ZYYY_invlist[] = { /* for ASCII/Latin1 */ 0x1F0D1, 0x1F0F6, 0x1F100, - 0x1F10D, - 0x1F110, - 0x1F16D, - 0x1F170, - 0x1F1AD, + 0x1F1AE, 0x1F1E6, 0x1F200, 0x1F201, @@ -362486,11 +386361,11 @@ static const UV UNI_SC__ZYYY_invlist[] = { /* for ASCII/Latin1 */ 0x1F260, 0x1F266, 0x1F300, - 0x1F6D6, + 0x1F6D8, 0x1F6E0, 0x1F6ED, 0x1F6F0, - 0x1F6FB, + 0x1F6FD, 0x1F700, 0x1F774, 0x1F780, @@ -362507,30 +386382,36 @@ static const UV UNI_SC__ZYYY_invlist[] = { /* for ASCII/Latin1 */ 0x1F888, 0x1F890, 0x1F8AE, + 0x1F8B0, + 0x1F8B2, 0x1F900, - 0x1F90C, - 0x1F90D, - 0x1F972, - 0x1F973, - 0x1F977, + 0x1F979, 0x1F97A, - 0x1F9A3, - 0x1F9A5, - 0x1F9AB, - 0x1F9AE, - 0x1F9CB, + 0x1F9CC, 0x1F9CD, 0x1FA54, 0x1FA60, 0x1FA6E, 0x1FA70, - 0x1FA74, + 0x1FA75, 0x1FA78, 0x1FA7B, 0x1FA80, - 0x1FA83, + 0x1FA87, 0x1FA90, - 0x1FA96, + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB, + 0x1FBF0, + 0x1FBFA, 0xE0001, 0xE0002, 0xE0020, @@ -362545,7 +386426,7 @@ static const UV UNI_SC__ZYYY_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_SC__ZYYY_invlist[] = { /* for EBCDIC 1047 */ - 370, /* Number of elements */ + 372, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -362603,8 +386484,6 @@ static const UV UNI_SC__ZYYY_invlist[] = { /* for EBCDIC 1047 */ 0x386, 0x387, 0x388, - 0x589, - 0x58A, 0x605, 0x606, 0x60C, @@ -362681,10 +386560,10 @@ static const UV UNI_SC__ZYYY_invlist[] = { /* for EBCDIC 1047 */ 0x2B74, 0x2B76, 0x2B96, - 0x2B98, + 0x2B97, 0x2C00, 0x2E00, - 0x2E50, + 0x2E53, 0x2FF0, 0x2FFC, 0x3000, @@ -362729,6 +386608,8 @@ static const UV UNI_SC__ZYYY_invlist[] = { /* for EBCDIC 1047 */ 0xA9D0, 0xAB5B, 0xAB5C, + 0xAB6A, + 0xAB6C, 0xFD3E, 0xFD40, 0xFE10, @@ -362764,7 +386645,7 @@ static const UV UNI_SC__ZYYY_invlist[] = { /* for EBCDIC 1047 */ 0x10137, 0x10140, 0x10190, - 0x1019C, + 0x1019D, 0x101D0, 0x101FD, 0x102E1, @@ -362852,11 +386733,7 @@ static const UV UNI_SC__ZYYY_invlist[] = { /* for EBCDIC 1047 */ 0x1F0D1, 0x1F0F6, 0x1F100, - 0x1F10D, - 0x1F110, - 0x1F16D, - 0x1F170, - 0x1F1AD, + 0x1F1AE, 0x1F1E6, 0x1F200, 0x1F201, @@ -362870,11 +386747,11 @@ static const UV UNI_SC__ZYYY_invlist[] = { /* for EBCDIC 1047 */ 0x1F260, 0x1F266, 0x1F300, - 0x1F6D6, + 0x1F6D8, 0x1F6E0, 0x1F6ED, 0x1F6F0, - 0x1F6FB, + 0x1F6FD, 0x1F700, 0x1F774, 0x1F780, @@ -362891,30 +386768,36 @@ static const UV UNI_SC__ZYYY_invlist[] = { /* for EBCDIC 1047 */ 0x1F888, 0x1F890, 0x1F8AE, + 0x1F8B0, + 0x1F8B2, 0x1F900, - 0x1F90C, - 0x1F90D, - 0x1F972, - 0x1F973, - 0x1F977, + 0x1F979, 0x1F97A, - 0x1F9A3, - 0x1F9A5, - 0x1F9AB, - 0x1F9AE, - 0x1F9CB, + 0x1F9CC, 0x1F9CD, 0x1FA54, 0x1FA60, 0x1FA6E, 0x1FA70, - 0x1FA74, + 0x1FA75, 0x1FA78, 0x1FA7B, 0x1FA80, - 0x1FA83, + 0x1FA87, 0x1FA90, - 0x1FA96, + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB, + 0x1FBF0, + 0x1FBFA, 0xE0001, 0xE0002, 0xE0020, @@ -362929,7 +386812,7 @@ static const UV UNI_SC__ZYYY_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_SC__ZYYY_invlist[] = { /* for EBCDIC 037 */ - 366, /* Number of elements */ + 368, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -362983,8 +386866,6 @@ static const UV UNI_SC__ZYYY_invlist[] = { /* for EBCDIC 037 */ 0x386, 0x387, 0x388, - 0x589, - 0x58A, 0x605, 0x606, 0x60C, @@ -363061,10 +386942,10 @@ static const UV UNI_SC__ZYYY_invlist[] = { /* for EBCDIC 037 */ 0x2B74, 0x2B76, 0x2B96, - 0x2B98, + 0x2B97, 0x2C00, 0x2E00, - 0x2E50, + 0x2E53, 0x2FF0, 0x2FFC, 0x3000, @@ -363109,6 +386990,8 @@ static const UV UNI_SC__ZYYY_invlist[] = { /* for EBCDIC 037 */ 0xA9D0, 0xAB5B, 0xAB5C, + 0xAB6A, + 0xAB6C, 0xFD3E, 0xFD40, 0xFE10, @@ -363144,7 +387027,7 @@ static const UV UNI_SC__ZYYY_invlist[] = { /* for EBCDIC 037 */ 0x10137, 0x10140, 0x10190, - 0x1019C, + 0x1019D, 0x101D0, 0x101FD, 0x102E1, @@ -363232,11 +387115,7 @@ static const UV UNI_SC__ZYYY_invlist[] = { /* for EBCDIC 037 */ 0x1F0D1, 0x1F0F6, 0x1F100, - 0x1F10D, - 0x1F110, - 0x1F16D, - 0x1F170, - 0x1F1AD, + 0x1F1AE, 0x1F1E6, 0x1F200, 0x1F201, @@ -363250,11 +387129,11 @@ static const UV UNI_SC__ZYYY_invlist[] = { /* for EBCDIC 037 */ 0x1F260, 0x1F266, 0x1F300, - 0x1F6D6, + 0x1F6D8, 0x1F6E0, 0x1F6ED, 0x1F6F0, - 0x1F6FB, + 0x1F6FD, 0x1F700, 0x1F774, 0x1F780, @@ -363271,30 +387150,36 @@ static const UV UNI_SC__ZYYY_invlist[] = { /* for EBCDIC 037 */ 0x1F888, 0x1F890, 0x1F8AE, + 0x1F8B0, + 0x1F8B2, 0x1F900, - 0x1F90C, - 0x1F90D, - 0x1F972, - 0x1F973, - 0x1F977, + 0x1F979, 0x1F97A, - 0x1F9A3, - 0x1F9A5, - 0x1F9AB, - 0x1F9AE, - 0x1F9CB, + 0x1F9CC, 0x1F9CD, 0x1FA54, 0x1FA60, 0x1FA6E, 0x1FA70, - 0x1FA74, + 0x1FA75, 0x1FA78, 0x1FA7B, 0x1FA80, - 0x1FA83, + 0x1FA87, 0x1FA90, - 0x1FA96, + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB, + 0x1FBF0, + 0x1FBFA, 0xE0001, 0xE0002, 0xE0020, @@ -363570,7 +387455,7 @@ static const UV UNI_SHORTHANDFORMATCONTROLS_invlist[] = { /* for all charsets * }; static const UV UNI_SHRD_invlist[] = { /* for all charsets */ - 15, /* Number of elements */ + 13, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -363586,8 +387471,6 @@ static const UV UNI_SHRD_invlist[] = { /* for all charsets */ 0x1CE0, 0x1CE1, 0x11180, - 0x111CE, - 0x111D0, 0x111E0 }; @@ -363627,7 +387510,7 @@ static const UV UNI_SINH_invlist[] = { /* for all charsets */ 0x0, 0x964, 0x966, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -363668,7 +387551,7 @@ static const UV UNI_SINHALAARCHAICNUMBERS_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_SK_invlist[] = { /* for ASCII/Latin1 */ - 59, /* Number of elements */ + 61, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -363721,6 +387604,8 @@ static const UV UNI_SK_invlist[] = { /* for ASCII/Latin1 */ 0xA78B, 0xAB5B, 0xAB5C, + 0xAB6A, + 0xAB6C, 0xFBB2, 0xFBC2, 0xFF3E, @@ -363741,7 +387626,7 @@ static const UV UNI_SK_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_SK_invlist[] = { /* for EBCDIC 1047 */ - 57, /* Number of elements */ + 59, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -363792,6 +387677,8 @@ static const UV UNI_SK_invlist[] = { /* for EBCDIC 1047 */ 0xA78B, 0xAB5B, 0xAB5C, + 0xAB6A, + 0xAB6C, 0xFBB2, 0xFBC2, 0xFF3E, @@ -363812,7 +387699,7 @@ static const UV UNI_SK_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_SK_invlist[] = { /* for EBCDIC 037 */ - 55, /* Number of elements */ + 57, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -363861,6 +387748,8 @@ static const UV UNI_SK_invlist[] = { /* for EBCDIC 037 */ 0xA78B, 0xAB5B, 0xAB5C, + 0xAB6A, + 0xAB6C, 0xFBB2, 0xFBC2, 0xFF3E, @@ -364328,7 +388217,7 @@ static const UV UNI_SMALLKANAEXT_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_SO_invlist[] = { /* for ASCII/Latin1 */ - 361, /* Number of elements */ + 365, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -364493,10 +388382,12 @@ static const UV UNI_SO_invlist[] = { /* for ASCII/Latin1 */ 0x2B74, 0x2B76, 0x2B96, - 0x2B98, + 0x2B97, 0x2C00, 0x2CE5, 0x2CEB, + 0x2E50, + 0x2E52, 0x2E80, 0x2E9A, 0x2E9B, @@ -364562,7 +388453,7 @@ static const UV UNI_SO_invlist[] = { /* for ASCII/Latin1 */ 0x1018C, 0x1018F, 0x10190, - 0x1019C, + 0x1019D, 0x101A0, 0x101A1, 0x101D0, @@ -364631,10 +388522,8 @@ static const UV UNI_SO_invlist[] = { /* for ASCII/Latin1 */ 0x1F0D0, 0x1F0D1, 0x1F0F6, - 0x1F110, - 0x1F16D, - 0x1F170, - 0x1F1AD, + 0x1F10D, + 0x1F1AE, 0x1F1E6, 0x1F203, 0x1F210, @@ -364648,11 +388537,11 @@ static const UV UNI_SO_invlist[] = { /* for ASCII/Latin1 */ 0x1F300, 0x1F3FB, 0x1F400, - 0x1F6D6, + 0x1F6D8, 0x1F6E0, 0x1F6ED, 0x1F6F0, - 0x1F6FB, + 0x1F6FD, 0x1F700, 0x1F774, 0x1F780, @@ -364669,30 +388558,34 @@ static const UV UNI_SO_invlist[] = { /* for ASCII/Latin1 */ 0x1F888, 0x1F890, 0x1F8AE, + 0x1F8B0, + 0x1F8B2, 0x1F900, - 0x1F90C, - 0x1F90D, - 0x1F972, - 0x1F973, - 0x1F977, + 0x1F979, 0x1F97A, - 0x1F9A3, - 0x1F9A5, - 0x1F9AB, - 0x1F9AE, - 0x1F9CB, + 0x1F9CC, 0x1F9CD, 0x1FA54, 0x1FA60, 0x1FA6E, 0x1FA70, - 0x1FA74, + 0x1FA75, 0x1FA78, 0x1FA7B, 0x1FA80, - 0x1FA83, + 0x1FA87, 0x1FA90, - 0x1FA96 + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB }; # endif /* ASCII/Latin1 */ @@ -364703,7 +388596,7 @@ static const UV UNI_SO_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_SO_invlist[] = { /* for EBCDIC 1047 */ - 361, /* Number of elements */ + 365, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -364868,10 +388761,12 @@ static const UV UNI_SO_invlist[] = { /* for EBCDIC 1047 */ 0x2B74, 0x2B76, 0x2B96, - 0x2B98, + 0x2B97, 0x2C00, 0x2CE5, 0x2CEB, + 0x2E50, + 0x2E52, 0x2E80, 0x2E9A, 0x2E9B, @@ -364937,7 +388832,7 @@ static const UV UNI_SO_invlist[] = { /* for EBCDIC 1047 */ 0x1018C, 0x1018F, 0x10190, - 0x1019C, + 0x1019D, 0x101A0, 0x101A1, 0x101D0, @@ -365006,10 +388901,8 @@ static const UV UNI_SO_invlist[] = { /* for EBCDIC 1047 */ 0x1F0D0, 0x1F0D1, 0x1F0F6, - 0x1F110, - 0x1F16D, - 0x1F170, - 0x1F1AD, + 0x1F10D, + 0x1F1AE, 0x1F1E6, 0x1F203, 0x1F210, @@ -365023,11 +388916,11 @@ static const UV UNI_SO_invlist[] = { /* for EBCDIC 1047 */ 0x1F300, 0x1F3FB, 0x1F400, - 0x1F6D6, + 0x1F6D8, 0x1F6E0, 0x1F6ED, 0x1F6F0, - 0x1F6FB, + 0x1F6FD, 0x1F700, 0x1F774, 0x1F780, @@ -365044,30 +388937,34 @@ static const UV UNI_SO_invlist[] = { /* for EBCDIC 1047 */ 0x1F888, 0x1F890, 0x1F8AE, + 0x1F8B0, + 0x1F8B2, 0x1F900, - 0x1F90C, - 0x1F90D, - 0x1F972, - 0x1F973, - 0x1F977, + 0x1F979, 0x1F97A, - 0x1F9A3, - 0x1F9A5, - 0x1F9AB, - 0x1F9AE, - 0x1F9CB, + 0x1F9CC, 0x1F9CD, 0x1FA54, 0x1FA60, 0x1FA6E, 0x1FA70, - 0x1FA74, + 0x1FA75, 0x1FA78, 0x1FA7B, 0x1FA80, - 0x1FA83, + 0x1FA87, 0x1FA90, - 0x1FA96 + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB }; # endif /* EBCDIC 1047 */ @@ -365078,7 +388975,7 @@ static const UV UNI_SO_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_SO_invlist[] = { /* for EBCDIC 037 */ - 361, /* Number of elements */ + 365, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -365243,10 +389140,12 @@ static const UV UNI_SO_invlist[] = { /* for EBCDIC 037 */ 0x2B74, 0x2B76, 0x2B96, - 0x2B98, + 0x2B97, 0x2C00, 0x2CE5, 0x2CEB, + 0x2E50, + 0x2E52, 0x2E80, 0x2E9A, 0x2E9B, @@ -365312,7 +389211,7 @@ static const UV UNI_SO_invlist[] = { /* for EBCDIC 037 */ 0x1018C, 0x1018F, 0x10190, - 0x1019C, + 0x1019D, 0x101A0, 0x101A1, 0x101D0, @@ -365381,10 +389280,8 @@ static const UV UNI_SO_invlist[] = { /* for EBCDIC 037 */ 0x1F0D0, 0x1F0D1, 0x1F0F6, - 0x1F110, - 0x1F16D, - 0x1F170, - 0x1F1AD, + 0x1F10D, + 0x1F1AE, 0x1F1E6, 0x1F203, 0x1F210, @@ -365398,11 +389295,11 @@ static const UV UNI_SO_invlist[] = { /* for EBCDIC 037 */ 0x1F300, 0x1F3FB, 0x1F400, - 0x1F6D6, + 0x1F6D8, 0x1F6E0, 0x1F6ED, 0x1F6F0, - 0x1F6FB, + 0x1F6FD, 0x1F700, 0x1F774, 0x1F780, @@ -365419,30 +389316,34 @@ static const UV UNI_SO_invlist[] = { /* for EBCDIC 037 */ 0x1F888, 0x1F890, 0x1F8AE, + 0x1F8B0, + 0x1F8B2, 0x1F900, - 0x1F90C, - 0x1F90D, - 0x1F972, - 0x1F973, - 0x1F977, + 0x1F979, 0x1F97A, - 0x1F9A3, - 0x1F9A5, - 0x1F9AB, - 0x1F9AE, - 0x1F9CB, + 0x1F9CC, 0x1F9CD, 0x1FA54, 0x1FA60, 0x1FA6E, 0x1FA70, - 0x1FA74, + 0x1FA75, 0x1FA78, 0x1FA7B, 0x1FA80, - 0x1FA83, + 0x1FA87, 0x1FA90, - 0x1FA96 + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB }; # endif /* EBCDIC 037 */ @@ -365504,7 +389405,7 @@ static const UV UNI_SPECIALS_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_STERM_invlist[] = { /* for ASCII/Latin1 */ - 149, /* Number of elements */ + 153, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -365635,6 +389536,10 @@ static const UV UNI_STERM_invlist[] = { /* for ASCII/Latin1 */ 0x11643, 0x1173C, 0x1173F, + 0x11944, + 0x11945, + 0x11946, + 0x11947, 0x11A42, 0x11A44, 0x11A9B, @@ -365667,7 +389572,7 @@ static const UV UNI_STERM_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_STERM_invlist[] = { /* for EBCDIC 1047 */ - 149, /* Number of elements */ + 153, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -365798,6 +389703,10 @@ static const UV UNI_STERM_invlist[] = { /* for EBCDIC 1047 */ 0x11643, 0x1173C, 0x1173F, + 0x11944, + 0x11945, + 0x11946, + 0x11947, 0x11A42, 0x11A44, 0x11A9B, @@ -365830,7 +389739,7 @@ static const UV UNI_STERM_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_STERM_invlist[] = { /* for EBCDIC 037 */ - 149, /* Number of elements */ + 153, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -365961,6 +389870,10 @@ static const UV UNI_STERM_invlist[] = { /* for EBCDIC 037 */ 0x11643, 0x1173C, 0x1173F, + 0x11944, + 0x11945, + 0x11946, + 0x11947, 0x11A42, 0x11A44, 0x11A9B, @@ -366120,7 +390033,7 @@ static const UV UNI_SYLO_invlist[] = { /* for all charsets */ 0x9E6, 0x9F0, 0xA800, - 0xA82C + 0xA82D }; static const UV UNI_SYMBOLSANDPICTOGRAPHSEXTA_invlist[] = { /* for all charsets */ @@ -366133,8 +390046,18 @@ static const UV UNI_SYMBOLSANDPICTOGRAPHSEXTA_invlist[] = { /* for all charsets 0x1FB00 }; +static const UV UNI_SYMBOLSFORLEGACYCOMPUTING_invlist[] = { /* for all charsets */ + 3, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x1FB00, + 0x1FC00 +}; + static const UV UNI_SYRC_invlist[] = { /* for all charsets */ - 21, /* Number of elements */ + 23, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -366158,7 +390081,9 @@ static const UV UNI_SYRC_invlist[] = { /* for all charsets */ 0x74D, 0x750, 0x860, - 0x86B + 0x86B, + 0x1DF8, + 0x1DF9 }; static const UV UNI_SYRIACSUP_invlist[] = { /* for all charsets */ @@ -366322,7 +390247,7 @@ static const UV UNI_TAML_invlist[] = { /* for all charsets */ }; static const UV UNI_TANG_invlist[] = { /* for all charsets */ - 7, /* Number of elements */ + 9, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -366332,7 +390257,9 @@ static const UV UNI_TANG_invlist[] = { /* for all charsets */ 0x17000, 0x187F8, 0x18800, - 0x18AF3 + 0x18B00, + 0x18D00, + 0x18D09 }; static const UV UNI_TANGUTCOMPONENTS_invlist[] = { /* for all charsets */ @@ -366345,6 +390272,16 @@ static const UV UNI_TANGUTCOMPONENTS_invlist[] = { /* for all charsets */ 0x18B00 }; +static const UV UNI_TANGUTSUP_invlist[] = { /* for all charsets */ + 3, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x18D00, + 0x18D90 +}; + static const UV UNI_TAVT_invlist[] = { /* for all charsets */ 5, /* Number of elements */ 148565664, /* Version and data structure type */ @@ -366400,7 +390337,7 @@ static const UV UNI_TELU_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_TERM_invlist[] = { /* for ASCII/Latin1 */ - 205, /* Number of elements */ + 209, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -366571,7 +390508,7 @@ static const UV UNI_TERM_invlist[] = { /* for ASCII/Latin1 */ 0x112AA, 0x1144B, 0x1144E, - 0x1145B, + 0x1145A, 0x1145C, 0x115C2, 0x115C6, @@ -366581,6 +390518,10 @@ static const UV UNI_TERM_invlist[] = { /* for ASCII/Latin1 */ 0x11643, 0x1173C, 0x1173F, + 0x11944, + 0x11945, + 0x11946, + 0x11947, 0x11A42, 0x11A44, 0x11A9B, @@ -366619,7 +390560,7 @@ static const UV UNI_TERM_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_TERM_invlist[] = { /* for EBCDIC 1047 */ - 207, /* Number of elements */ + 211, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -366792,7 +390733,7 @@ static const UV UNI_TERM_invlist[] = { /* for EBCDIC 1047 */ 0x112AA, 0x1144B, 0x1144E, - 0x1145B, + 0x1145A, 0x1145C, 0x115C2, 0x115C6, @@ -366802,6 +390743,10 @@ static const UV UNI_TERM_invlist[] = { /* for EBCDIC 1047 */ 0x11643, 0x1173C, 0x1173F, + 0x11944, + 0x11945, + 0x11946, + 0x11947, 0x11A42, 0x11A44, 0x11A9B, @@ -366840,7 +390785,7 @@ static const UV UNI_TERM_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_TERM_invlist[] = { /* for EBCDIC 037 */ - 207, /* Number of elements */ + 211, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -367013,7 +390958,7 @@ static const UV UNI_TERM_invlist[] = { /* for EBCDIC 037 */ 0x112AA, 0x1144B, 0x1144E, - 0x1145B, + 0x1145A, 0x1145C, 0x115C2, 0x115C6, @@ -367023,6 +390968,10 @@ static const UV UNI_TERM_invlist[] = { /* for EBCDIC 037 */ 0x11643, 0x1173C, 0x1173F, + 0x11944, + 0x11945, + 0x11946, + 0x11947, 0x11A42, 0x11A44, 0x11A9B, @@ -367202,15 +391151,15 @@ static const UV UNI_UGAR_invlist[] = { /* for all charsets */ }; static const UV UNI_UIDEO_invlist[] = { /* for all charsets */ - 29, /* Number of elements */ + 31, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ 0x0, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xFA0E, 0xFA10, 0xFA11, @@ -367226,7 +391175,7 @@ static const UV UNI_UIDEO_invlist[] = { /* for all charsets */ 0xFA27, 0xFA2A, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -367234,7 +391183,9 @@ static const UV UNI_UIDEO_invlist[] = { /* for all charsets */ 0x2B820, 0x2CEA2, 0x2CEB0, - 0x2EBE1 + 0x2EBE1, + 0x30000, + 0x3134B }; static const UV UNI_VAI_invlist[] = { /* for all charsets */ @@ -367270,7 +391221,7 @@ static const UV UNI_VERTICALFORMS_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_VO__R_invlist[] = { /* for ASCII/Latin1 */ - 173, /* Number of elements */ + 177, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -367379,12 +391330,16 @@ static const UV UNI_VO__R_invlist[] = { /* for ASCII/Latin1 */ 0x2B30, 0x2B50, 0x2B5A, + 0x2B97, + 0x2B98, 0x2BB8, 0x2BD2, 0x2BD3, 0x2BEC, 0x2BF0, 0x2C00, + 0x2E50, + 0x2E52, 0x2E80, 0xA4D0, 0xA960, @@ -367426,7 +391381,7 @@ static const UV UNI_VO__R_invlist[] = { /* for ASCII/Latin1 */ 0x14400, 0x14680, 0x16FE0, - 0x18B00, + 0x18D90, 0x1B000, 0x1B300, 0x1D000, @@ -367438,7 +391393,7 @@ static const UV UNI_VO__R_invlist[] = { /* for ASCII/Latin1 */ 0x1F000, 0x1F800, 0x1F900, - 0x1FAA0, + 0x1FB00, 0x20000, 0x2FFFE, 0x30000, @@ -367457,7 +391412,7 @@ static const UV UNI_VO__R_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_VO__R_invlist[] = { /* for EBCDIC 1047 */ - 171, /* Number of elements */ + 175, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -367564,12 +391519,16 @@ static const UV UNI_VO__R_invlist[] = { /* for EBCDIC 1047 */ 0x2B30, 0x2B50, 0x2B5A, + 0x2B97, + 0x2B98, 0x2BB8, 0x2BD2, 0x2BD3, 0x2BEC, 0x2BF0, 0x2C00, + 0x2E50, + 0x2E52, 0x2E80, 0xA4D0, 0xA960, @@ -367611,7 +391570,7 @@ static const UV UNI_VO__R_invlist[] = { /* for EBCDIC 1047 */ 0x14400, 0x14680, 0x16FE0, - 0x18B00, + 0x18D90, 0x1B000, 0x1B300, 0x1D000, @@ -367623,7 +391582,7 @@ static const UV UNI_VO__R_invlist[] = { /* for EBCDIC 1047 */ 0x1F000, 0x1F800, 0x1F900, - 0x1FAA0, + 0x1FB00, 0x20000, 0x2FFFE, 0x30000, @@ -367642,7 +391601,7 @@ static const UV UNI_VO__R_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_VO__R_invlist[] = { /* for EBCDIC 037 */ - 171, /* Number of elements */ + 175, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -367749,12 +391708,16 @@ static const UV UNI_VO__R_invlist[] = { /* for EBCDIC 037 */ 0x2B30, 0x2B50, 0x2B5A, + 0x2B97, + 0x2B98, 0x2BB8, 0x2BD2, 0x2BD3, 0x2BEC, 0x2BF0, 0x2C00, + 0x2E50, + 0x2E52, 0x2E80, 0xA4D0, 0xA960, @@ -367796,7 +391759,7 @@ static const UV UNI_VO__R_invlist[] = { /* for EBCDIC 037 */ 0x14400, 0x14680, 0x16FE0, - 0x18B00, + 0x18D90, 0x1B000, 0x1B300, 0x1D000, @@ -367808,7 +391771,7 @@ static const UV UNI_VO__R_invlist[] = { /* for EBCDIC 037 */ 0x1F000, 0x1F800, 0x1F900, - 0x1FAA0, + 0x1FB00, 0x20000, 0x2FFFE, 0x30000, @@ -367936,7 +391899,7 @@ static const UV UNI_VO__TU_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_VO__U_invlist[] = { /* for ASCII/Latin1 */ - 251, /* Number of elements */ + 255, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -368047,12 +392010,16 @@ static const UV UNI_VO__U_invlist[] = { /* for ASCII/Latin1 */ 0x2B30, 0x2B50, 0x2B5A, + 0x2B97, + 0x2B98, 0x2BB8, 0x2BD2, 0x2BD3, 0x2BEC, 0x2BF0, 0x2C00, + 0x2E50, + 0x2E52, 0x2E80, 0x3001, 0x3003, @@ -368168,7 +392135,7 @@ static const UV UNI_VO__U_invlist[] = { /* for ASCII/Latin1 */ 0x14400, 0x14680, 0x16FE0, - 0x18B00, + 0x18D90, 0x1B000, 0x1B300, 0x1D000, @@ -368182,7 +392149,7 @@ static const UV UNI_VO__U_invlist[] = { /* for ASCII/Latin1 */ 0x1F202, 0x1F800, 0x1F900, - 0x1FAA0, + 0x1FB00, 0x20000, 0x2FFFE, 0x30000, @@ -368201,7 +392168,7 @@ static const UV UNI_VO__U_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_VO__U_invlist[] = { /* for EBCDIC 1047 */ - 249, /* Number of elements */ + 253, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -368310,12 +392277,16 @@ static const UV UNI_VO__U_invlist[] = { /* for EBCDIC 1047 */ 0x2B30, 0x2B50, 0x2B5A, + 0x2B97, + 0x2B98, 0x2BB8, 0x2BD2, 0x2BD3, 0x2BEC, 0x2BF0, 0x2C00, + 0x2E50, + 0x2E52, 0x2E80, 0x3001, 0x3003, @@ -368431,7 +392402,7 @@ static const UV UNI_VO__U_invlist[] = { /* for EBCDIC 1047 */ 0x14400, 0x14680, 0x16FE0, - 0x18B00, + 0x18D90, 0x1B000, 0x1B300, 0x1D000, @@ -368445,7 +392416,7 @@ static const UV UNI_VO__U_invlist[] = { /* for EBCDIC 1047 */ 0x1F202, 0x1F800, 0x1F900, - 0x1FAA0, + 0x1FB00, 0x20000, 0x2FFFE, 0x30000, @@ -368464,7 +392435,7 @@ static const UV UNI_VO__U_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_VO__U_invlist[] = { /* for EBCDIC 037 */ - 249, /* Number of elements */ + 253, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -368573,12 +392544,16 @@ static const UV UNI_VO__U_invlist[] = { /* for EBCDIC 037 */ 0x2B30, 0x2B50, 0x2B5A, + 0x2B97, + 0x2B98, 0x2BB8, 0x2BD2, 0x2BD3, 0x2BEC, 0x2BF0, 0x2C00, + 0x2E50, + 0x2E52, 0x2E80, 0x3001, 0x3003, @@ -368694,7 +392669,7 @@ static const UV UNI_VO__U_invlist[] = { /* for EBCDIC 037 */ 0x14400, 0x14680, 0x16FE0, - 0x18B00, + 0x18D90, 0x1B000, 0x1B300, 0x1D000, @@ -368708,7 +392683,7 @@ static const UV UNI_VO__U_invlist[] = { /* for EBCDIC 037 */ 0x1F202, 0x1F800, 0x1F900, - 0x1FAA0, + 0x1FB00, 0x20000, 0x2FFFE, 0x30000, @@ -368897,7 +392872,7 @@ static const UV UNI_WB__EX_invlist[] = { /* for EBCDIC 037 */ # endif /* EBCDIC 037 */ static const UV UNI_WB__EXTEND_invlist[] = { /* for all charsets */ - 569, /* Number of elements */ + 589, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -369018,7 +392993,7 @@ static const UV UNI_WB__EXTEND_invlist[] = { /* for all charsets */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB62, 0xB64, @@ -369072,7 +393047,7 @@ static const UV UNI_WB__EXTEND_invlist[] = { /* for all charsets */ 0xD58, 0xD62, 0xD64, - 0xD82, + 0xD81, 0xD84, 0xDCA, 0xDCB, @@ -369167,7 +393142,7 @@ static const UV UNI_WB__EXTEND_invlist[] = { /* for all charsets */ 0x1A7F, 0x1A80, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B05, 0x1B34, @@ -369226,6 +393201,8 @@ static const UV UNI_WB__EXTEND_invlist[] = { /* for all charsets */ 0xA80C, 0xA823, 0xA828, + 0xA82C, + 0xA82D, 0xA880, 0xA882, 0xA8B4, @@ -369298,6 +393275,8 @@ static const UV UNI_WB__EXTEND_invlist[] = { /* for all charsets */ 0x10AE7, 0x10D24, 0x10D28, + 0x10EAB, + 0x10EAD, 0x10F46, 0x10F51, 0x11000, @@ -369322,6 +393301,8 @@ static const UV UNI_WB__EXTEND_invlist[] = { /* for all charsets */ 0x111C1, 0x111C9, 0x111CD, + 0x111CE, + 0x111D0, 0x1122C, 0x11238, 0x1123E, @@ -369366,6 +393347,16 @@ static const UV UNI_WB__EXTEND_invlist[] = { /* for all charsets */ 0x1172C, 0x1182C, 0x1183B, + 0x11930, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x1193F, + 0x11940, + 0x11941, + 0x11942, + 0x11944, 0x119D1, 0x119D8, 0x119DA, @@ -369420,6 +393411,10 @@ static const UV UNI_WB__EXTEND_invlist[] = { /* for all charsets */ 0x16F88, 0x16F8F, 0x16F93, + 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x1BC9D, 0x1BC9F, 0x1D165, @@ -369659,7 +393654,7 @@ static const UV UNI_WB__KA_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_WB__LE_invlist[] = { /* for ASCII/Latin1 */ - 1075, /* Number of elements */ + 1095, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -369681,8 +393676,6 @@ static const UV UNI_WB__LE_invlist[] = { /* for ASCII/Latin1 */ 0xF8, 0x2D8, 0x2DE, - 0x2E5, - 0x2EC, 0x300, 0x370, 0x375, @@ -369709,13 +393702,13 @@ static const UV UNI_WB__LE_invlist[] = { /* for ASCII/Latin1 */ 0x531, 0x557, 0x559, - 0x55A, - 0x55B, 0x55D, 0x55E, 0x55F, 0x560, 0x589, + 0x58A, + 0x58B, 0x5F3, 0x5F4, 0x620, @@ -369763,7 +393756,7 @@ static const UV UNI_WB__LE_invlist[] = { /* for ASCII/Latin1 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x904, 0x93A, 0x93D, @@ -369914,7 +393907,7 @@ static const UV UNI_WB__LE_invlist[] = { /* for ASCII/Latin1 */ 0xCE2, 0xCF1, 0xCF3, - 0xD05, + 0xD04, 0xD0D, 0xD0E, 0xD11, @@ -370185,7 +394178,7 @@ static const UV UNI_WB__LE_invlist[] = { /* for ASCII/Latin1 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0xA000, 0xA48D, 0xA4D0, @@ -370202,11 +394195,11 @@ static const UV UNI_WB__LE_invlist[] = { /* for ASCII/Latin1 */ 0xA69E, 0xA6A0, 0xA6F0, - 0xA717, + 0xA708, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA802, 0xA803, 0xA806, @@ -370255,7 +394248,7 @@ static const UV UNI_WB__LE_invlist[] = { /* for ASCII/Latin1 */ 0xAB28, 0xAB2F, 0xAB30, - 0xAB68, + 0xAB6A, 0xAB70, 0xABE3, 0xAC00, @@ -370406,12 +394399,18 @@ static const UV UNI_WB__LE_invlist[] = { /* for ASCII/Latin1 */ 0x10CF3, 0x10D00, 0x10D24, + 0x10E80, + 0x10EAA, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, 0x10F28, 0x10F30, 0x10F46, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11003, @@ -370424,6 +394423,8 @@ static const UV UNI_WB__LE_invlist[] = { /* for ASCII/Latin1 */ 0x11127, 0x11144, 0x11145, + 0x11147, + 0x11148, 0x11150, 0x11173, 0x11176, @@ -370475,7 +394476,7 @@ static const UV UNI_WB__LE_invlist[] = { /* for ASCII/Latin1 */ 0x11447, 0x1144B, 0x1145F, - 0x11460, + 0x11462, 0x11480, 0x114B0, 0x114C4, @@ -370499,7 +394500,19 @@ static const UV UNI_WB__LE_invlist[] = { /* for ASCII/Latin1 */ 0x118A0, 0x118E0, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11930, + 0x1193F, + 0x11940, + 0x11941, + 0x11942, 0x119A0, 0x119A8, 0x119AA, @@ -370548,6 +394561,8 @@ static const UV UNI_WB__LE_invlist[] = { /* for ASCII/Latin1 */ 0x11D99, 0x11EE0, 0x11EF3, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12400, @@ -370748,7 +394763,7 @@ static const UV UNI_WB__LE_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 1047 */ - 1101, /* Number of elements */ + 1121, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -370796,8 +394811,6 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 1047 */ 0x100, 0x2D8, 0x2DE, - 0x2E5, - 0x2EC, 0x300, 0x370, 0x375, @@ -370824,13 +394837,13 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 1047 */ 0x531, 0x557, 0x559, - 0x55A, - 0x55B, 0x55D, 0x55E, 0x55F, 0x560, 0x589, + 0x58A, + 0x58B, 0x5F3, 0x5F4, 0x620, @@ -370878,7 +394891,7 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 1047 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x904, 0x93A, 0x93D, @@ -371029,7 +395042,7 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 1047 */ 0xCE2, 0xCF1, 0xCF3, - 0xD05, + 0xD04, 0xD0D, 0xD0E, 0xD11, @@ -371300,7 +395313,7 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 1047 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0xA000, 0xA48D, 0xA4D0, @@ -371317,11 +395330,11 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 1047 */ 0xA69E, 0xA6A0, 0xA6F0, - 0xA717, + 0xA708, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA802, 0xA803, 0xA806, @@ -371370,7 +395383,7 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 1047 */ 0xAB28, 0xAB2F, 0xAB30, - 0xAB68, + 0xAB6A, 0xAB70, 0xABE3, 0xAC00, @@ -371521,12 +395534,18 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 1047 */ 0x10CF3, 0x10D00, 0x10D24, + 0x10E80, + 0x10EAA, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, 0x10F28, 0x10F30, 0x10F46, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11003, @@ -371539,6 +395558,8 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 1047 */ 0x11127, 0x11144, 0x11145, + 0x11147, + 0x11148, 0x11150, 0x11173, 0x11176, @@ -371590,7 +395611,7 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 1047 */ 0x11447, 0x1144B, 0x1145F, - 0x11460, + 0x11462, 0x11480, 0x114B0, 0x114C4, @@ -371614,7 +395635,19 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 1047 */ 0x118A0, 0x118E0, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11930, + 0x1193F, + 0x11940, + 0x11941, + 0x11942, 0x119A0, 0x119A8, 0x119AA, @@ -371663,6 +395696,8 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 1047 */ 0x11D99, 0x11EE0, 0x11EF3, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12400, @@ -371863,7 +395898,7 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 037 */ - 1097, /* Number of elements */ + 1117, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -371907,8 +395942,6 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 037 */ 0x100, 0x2D8, 0x2DE, - 0x2E5, - 0x2EC, 0x300, 0x370, 0x375, @@ -371935,13 +395968,13 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 037 */ 0x531, 0x557, 0x559, - 0x55A, - 0x55B, 0x55D, 0x55E, 0x55F, 0x560, 0x589, + 0x58A, + 0x58B, 0x5F3, 0x5F4, 0x620, @@ -371989,7 +396022,7 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 037 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x904, 0x93A, 0x93D, @@ -372140,7 +396173,7 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 037 */ 0xCE2, 0xCF1, 0xCF3, - 0xD05, + 0xD04, 0xD0D, 0xD0E, 0xD11, @@ -372411,7 +396444,7 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 037 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0xA000, 0xA48D, 0xA4D0, @@ -372428,11 +396461,11 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 037 */ 0xA69E, 0xA6A0, 0xA6F0, - 0xA717, + 0xA708, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA802, 0xA803, 0xA806, @@ -372481,7 +396514,7 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 037 */ 0xAB28, 0xAB2F, 0xAB30, - 0xAB68, + 0xAB6A, 0xAB70, 0xABE3, 0xAC00, @@ -372632,12 +396665,18 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 037 */ 0x10CF3, 0x10D00, 0x10D24, + 0x10E80, + 0x10EAA, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, 0x10F28, 0x10F30, 0x10F46, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11003, @@ -372650,6 +396689,8 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 037 */ 0x11127, 0x11144, 0x11145, + 0x11147, + 0x11148, 0x11150, 0x11173, 0x11176, @@ -372701,7 +396742,7 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 037 */ 0x11447, 0x1144B, 0x1145F, - 0x11460, + 0x11462, 0x11480, 0x114B0, 0x114C4, @@ -372725,7 +396766,19 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 037 */ 0x118A0, 0x118E0, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11930, + 0x1193F, + 0x11940, + 0x11941, + 0x11942, 0x119A0, 0x119A8, 0x119AA, @@ -372774,6 +396827,8 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 037 */ 0x11D99, 0x11EE0, 0x11EF3, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12400, @@ -373049,7 +397104,7 @@ static const UV UNI_WB__MB_invlist[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_WB__ML_invlist[] = { /* for ASCII/Latin1 */ - 17, /* Number of elements */ + 19, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -373060,6 +397115,8 @@ static const UV UNI_WB__ML_invlist[] = { /* for ASCII/Latin1 */ 0xB8, 0x387, 0x388, + 0x55F, + 0x560, 0x5F4, 0x5F5, 0x2027, @@ -373080,7 +397137,7 @@ static const UV UNI_WB__ML_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_WB__ML_invlist[] = { /* for EBCDIC 1047 */ - 17, /* Number of elements */ + 19, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -373091,6 +397148,8 @@ static const UV UNI_WB__ML_invlist[] = { /* for EBCDIC 1047 */ 0xB4, 0x387, 0x388, + 0x55F, + 0x560, 0x5F4, 0x5F5, 0x2027, @@ -373111,7 +397170,7 @@ static const UV UNI_WB__ML_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_WB__ML_invlist[] = { /* for EBCDIC 037 */ - 17, /* Number of elements */ + 19, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -373122,6 +397181,8 @@ static const UV UNI_WB__ML_invlist[] = { /* for EBCDIC 037 */ 0xB4, 0x387, 0x388, + 0x55F, + 0x560, 0x5F4, 0x5F5, 0x2027, @@ -373325,7 +397386,7 @@ static const UV UNI_WB__NL_invlist[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_WB__NU_invlist[] = { /* for ASCII/Latin1 */ - 121, /* Number of elements */ + 125, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -373432,6 +397493,8 @@ static const UV UNI_WB__NU_invlist[] = { /* for ASCII/Latin1 */ 0x1173A, 0x118E0, 0x118EA, + 0x11950, + 0x1195A, 0x11C50, 0x11C5A, 0x11D50, @@ -373449,7 +397512,9 @@ static const UV UNI_WB__NU_invlist[] = { /* for ASCII/Latin1 */ 0x1E2F0, 0x1E2FA, 0x1E950, - 0x1E95A + 0x1E95A, + 0x1FBF0, + 0x1FBFA }; # endif /* ASCII/Latin1 */ @@ -373460,7 +397525,7 @@ static const UV UNI_WB__NU_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_WB__NU_invlist[] = { /* for EBCDIC 1047 */ - 121, /* Number of elements */ + 125, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -373567,6 +397632,8 @@ static const UV UNI_WB__NU_invlist[] = { /* for EBCDIC 1047 */ 0x1173A, 0x118E0, 0x118EA, + 0x11950, + 0x1195A, 0x11C50, 0x11C5A, 0x11D50, @@ -373584,7 +397651,9 @@ static const UV UNI_WB__NU_invlist[] = { /* for EBCDIC 1047 */ 0x1E2F0, 0x1E2FA, 0x1E950, - 0x1E95A + 0x1E95A, + 0x1FBF0, + 0x1FBFA }; # endif /* EBCDIC 1047 */ @@ -373595,7 +397664,7 @@ static const UV UNI_WB__NU_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_WB__NU_invlist[] = { /* for EBCDIC 037 */ - 121, /* Number of elements */ + 125, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -373702,6 +397771,8 @@ static const UV UNI_WB__NU_invlist[] = { /* for EBCDIC 037 */ 0x1173A, 0x118E0, 0x118EA, + 0x11950, + 0x1195A, 0x11C50, 0x11C5A, 0x11D50, @@ -373719,7 +397790,9 @@ static const UV UNI_WB__NU_invlist[] = { /* for EBCDIC 037 */ 0x1E2F0, 0x1E2FA, 0x1E950, - 0x1E95A + 0x1E95A, + 0x1FBF0, + 0x1FBFA }; # endif /* EBCDIC 037 */ @@ -373853,7 +397926,7 @@ static const UV UNI_WB__WSEGSPACE_invlist[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */ - 1465, /* Number of elements */ + 1487, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -373897,8 +397970,6 @@ static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */ 0xF8, 0x2D8, 0x2DE, - 0x2E5, - 0x2EC, 0x375, 0x376, 0x378, @@ -373919,13 +397990,9 @@ static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */ 0x531, 0x557, 0x559, - 0x55A, - 0x55B, 0x55D, 0x55E, - 0x55F, - 0x560, - 0x58A, + 0x58B, 0x591, 0x5BE, 0x5BF, @@ -373983,7 +398050,7 @@ static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x964, 0x966, @@ -374100,7 +398167,7 @@ static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -374193,8 +398260,6 @@ static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */ 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -374212,7 +398277,7 @@ static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */ 0xD70, 0xD7A, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -374401,7 +398466,7 @@ static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */ 0x1A90, 0x1A9A, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B4C, 0x1B50, @@ -374587,7 +398652,7 @@ static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x32D0, @@ -374608,12 +398673,14 @@ static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */ 0xA67E, 0xA67F, 0xA6F2, - 0xA717, + 0xA708, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA828, + 0xA82C, + 0xA82D, 0xA840, 0xA874, 0xA880, @@ -374671,7 +398738,7 @@ static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */ 0xAB28, 0xAB2F, 0xAB30, - 0xAB68, + 0xAB6A, 0xAB70, 0xABEB, 0xABEC, @@ -374880,12 +398947,20 @@ static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */ 0x10D28, 0x10D30, 0x10D3A, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAD, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, 0x10F28, 0x10F30, 0x10F51, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11000, @@ -374907,7 +398982,7 @@ static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */ 0x11136, 0x11140, 0x11144, - 0x11147, + 0x11148, 0x11150, 0x11174, 0x11176, @@ -374916,7 +398991,7 @@ static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */ 0x111C5, 0x111C9, 0x111CD, - 0x111D0, + 0x111CE, 0x111DB, 0x111DC, 0x111DD, @@ -374975,7 +399050,7 @@ static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */ 0x11450, 0x1145A, 0x1145E, - 0x11460, + 0x11462, 0x11480, 0x114C6, 0x114C7, @@ -375007,7 +399082,21 @@ static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */ 0x118A0, 0x118EA, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11944, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -375068,6 +399157,8 @@ static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */ 0x11DAA, 0x11EE0, 0x11EF7, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12400, @@ -375111,7 +399202,9 @@ static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */ 0x16FE0, 0x16FE2, 0x16FE3, - 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x1B000, 0x1B001, 0x1B164, @@ -375316,6 +399409,8 @@ static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */ 0x1F200, 0x1F3FB, 0x1F400, + 0x1FBF0, + 0x1FBFA, 0xE0001, 0xE0002, 0xE0020, @@ -375332,7 +399427,7 @@ static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */ - 1489, /* Number of elements */ + 1511, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -375400,8 +399495,6 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */ 0x100, 0x2D8, 0x2DE, - 0x2E5, - 0x2EC, 0x375, 0x376, 0x378, @@ -375422,13 +399515,9 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */ 0x531, 0x557, 0x559, - 0x55A, - 0x55B, 0x55D, 0x55E, - 0x55F, - 0x560, - 0x58A, + 0x58B, 0x591, 0x5BE, 0x5BF, @@ -375486,7 +399575,7 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x964, 0x966, @@ -375603,7 +399692,7 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -375696,8 +399785,6 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */ 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -375715,7 +399802,7 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */ 0xD70, 0xD7A, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -375904,7 +399991,7 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */ 0x1A90, 0x1A9A, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B4C, 0x1B50, @@ -376090,7 +400177,7 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x32D0, @@ -376111,12 +400198,14 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */ 0xA67E, 0xA67F, 0xA6F2, - 0xA717, + 0xA708, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA828, + 0xA82C, + 0xA82D, 0xA840, 0xA874, 0xA880, @@ -376174,7 +400263,7 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */ 0xAB28, 0xAB2F, 0xAB30, - 0xAB68, + 0xAB6A, 0xAB70, 0xABEB, 0xABEC, @@ -376383,12 +400472,20 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */ 0x10D28, 0x10D30, 0x10D3A, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAD, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, 0x10F28, 0x10F30, 0x10F51, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11000, @@ -376410,7 +400507,7 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */ 0x11136, 0x11140, 0x11144, - 0x11147, + 0x11148, 0x11150, 0x11174, 0x11176, @@ -376419,7 +400516,7 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */ 0x111C5, 0x111C9, 0x111CD, - 0x111D0, + 0x111CE, 0x111DB, 0x111DC, 0x111DD, @@ -376478,7 +400575,7 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */ 0x11450, 0x1145A, 0x1145E, - 0x11460, + 0x11462, 0x11480, 0x114C6, 0x114C7, @@ -376510,7 +400607,21 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */ 0x118A0, 0x118EA, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11944, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -376571,6 +400682,8 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */ 0x11DAA, 0x11EE0, 0x11EF7, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12400, @@ -376614,7 +400727,9 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */ 0x16FE0, 0x16FE2, 0x16FE3, - 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x1B000, 0x1B001, 0x1B164, @@ -376819,6 +400934,8 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */ 0x1F200, 0x1F3FB, 0x1F400, + 0x1FBF0, + 0x1FBFA, 0xE0001, 0xE0002, 0xE0020, @@ -376835,7 +400952,7 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 037 */ - 1485, /* Number of elements */ + 1507, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -376899,8 +401016,6 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 037 */ 0x100, 0x2D8, 0x2DE, - 0x2E5, - 0x2EC, 0x375, 0x376, 0x378, @@ -376921,13 +401036,9 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 037 */ 0x531, 0x557, 0x559, - 0x55A, - 0x55B, 0x55D, 0x55E, - 0x55F, - 0x560, - 0x58A, + 0x58B, 0x591, 0x5BE, 0x5BF, @@ -376985,7 +401096,7 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 037 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x964, 0x966, @@ -377102,7 +401213,7 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 037 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -377195,8 +401306,6 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 037 */ 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -377214,7 +401323,7 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 037 */ 0xD70, 0xD7A, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -377403,7 +401512,7 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 037 */ 0x1A90, 0x1A9A, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B4C, 0x1B50, @@ -377589,7 +401698,7 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 037 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x32D0, @@ -377610,12 +401719,14 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 037 */ 0xA67E, 0xA67F, 0xA6F2, - 0xA717, + 0xA708, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA828, + 0xA82C, + 0xA82D, 0xA840, 0xA874, 0xA880, @@ -377673,7 +401784,7 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 037 */ 0xAB28, 0xAB2F, 0xAB30, - 0xAB68, + 0xAB6A, 0xAB70, 0xABEB, 0xABEC, @@ -377882,12 +401993,20 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 037 */ 0x10D28, 0x10D30, 0x10D3A, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAD, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, 0x10F28, 0x10F30, 0x10F51, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11000, @@ -377909,7 +402028,7 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 037 */ 0x11136, 0x11140, 0x11144, - 0x11147, + 0x11148, 0x11150, 0x11174, 0x11176, @@ -377918,7 +402037,7 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 037 */ 0x111C5, 0x111C9, 0x111CD, - 0x111D0, + 0x111CE, 0x111DB, 0x111DC, 0x111DD, @@ -377977,7 +402096,7 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 037 */ 0x11450, 0x1145A, 0x1145E, - 0x11460, + 0x11462, 0x11480, 0x114C6, 0x114C7, @@ -378009,7 +402128,21 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 037 */ 0x118A0, 0x118EA, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11944, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -378070,6 +402203,8 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 037 */ 0x11DAA, 0x11EE0, 0x11EF7, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12400, @@ -378113,7 +402248,9 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 037 */ 0x16FE0, 0x16FE2, 0x16FE3, - 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x1B000, 0x1B001, 0x1B164, @@ -378318,6 +402455,8 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 037 */ 0x1F200, 0x1F3FB, 0x1F400, + 0x1FBF0, + 0x1FBFA, 0xE0001, 0xE0002, 0xE0020, @@ -378343,7 +402482,7 @@ static const UV UNI_WCHO_invlist[] = { /* for all charsets */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */ - 1441, /* Number of elements */ + 1475, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -378453,7 +402592,7 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x8E2, 0x8E3, @@ -378572,7 +402711,7 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -378665,8 +402804,6 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */ 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -378684,7 +402821,7 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */ 0xD70, 0xD7A, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -378886,6 +403023,8 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */ 0x1AA8, 0x1AB0, 0x1ABE, + 0x1ABF, + 0x1AC1, 0x1B00, 0x1B4C, 0x1B50, @@ -379053,13 +403192,13 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA4D0, @@ -379081,9 +403220,11 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */ 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA828, + 0xA82C, + 0xA82D, 0xA840, 0xA874, 0xA880, @@ -379135,7 +403276,7 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */ 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB6A, 0xAB70, 0xABEB, 0xABEC, @@ -379344,12 +403485,20 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */ 0x10D28, 0x10D30, 0x10D3A, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAD, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, 0x10F28, 0x10F30, 0x10F51, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11000, @@ -379367,7 +403516,7 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */ 0x11136, 0x11140, 0x11144, - 0x11147, + 0x11148, 0x11150, 0x11174, 0x11176, @@ -379376,7 +403525,7 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */ 0x111C5, 0x111C9, 0x111CD, - 0x111D0, + 0x111CE, 0x111DB, 0x111DC, 0x111DD, @@ -379435,7 +403584,7 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */ 0x11450, 0x1145A, 0x1145E, - 0x11460, + 0x11462, 0x11480, 0x114C6, 0x114C7, @@ -379469,7 +403618,21 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */ 0x118A0, 0x118EA, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11944, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -379530,6 +403693,8 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */ 0x11DAA, 0x11EE0, 0x11EF7, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12400, @@ -379571,11 +403736,15 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */ 0x16FE0, 0x16FE2, 0x16FE3, - 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -379774,8 +403943,10 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */ 0x1EEAA, 0x1EEAB, 0x1EEBC, + 0x1FBF0, + 0x1FBFA, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -379786,6 +403957,8 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */ 0x2EBE1, 0x2F800, 0x2FA1E, + 0x30000, + 0x3134B, 0xE0100, 0xE01F0 }; @@ -379798,7 +403971,7 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */ - 1465, /* Number of elements */ + 1499, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -379932,7 +404105,7 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x8E2, 0x8E3, @@ -380051,7 +404224,7 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -380144,8 +404317,6 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */ 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -380163,7 +404334,7 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */ 0xD70, 0xD7A, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -380365,6 +404536,8 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */ 0x1AA8, 0x1AB0, 0x1ABE, + 0x1ABF, + 0x1AC1, 0x1B00, 0x1B4C, 0x1B50, @@ -380532,13 +404705,13 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA4D0, @@ -380560,9 +404733,11 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */ 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA828, + 0xA82C, + 0xA82D, 0xA840, 0xA874, 0xA880, @@ -380614,7 +404789,7 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */ 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB6A, 0xAB70, 0xABEB, 0xABEC, @@ -380823,12 +404998,20 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */ 0x10D28, 0x10D30, 0x10D3A, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAD, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, 0x10F28, 0x10F30, 0x10F51, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11000, @@ -380846,7 +405029,7 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */ 0x11136, 0x11140, 0x11144, - 0x11147, + 0x11148, 0x11150, 0x11174, 0x11176, @@ -380855,7 +405038,7 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */ 0x111C5, 0x111C9, 0x111CD, - 0x111D0, + 0x111CE, 0x111DB, 0x111DC, 0x111DD, @@ -380914,7 +405097,7 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */ 0x11450, 0x1145A, 0x1145E, - 0x11460, + 0x11462, 0x11480, 0x114C6, 0x114C7, @@ -380948,7 +405131,21 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */ 0x118A0, 0x118EA, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11944, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -381009,6 +405206,8 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */ 0x11DAA, 0x11EE0, 0x11EF7, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12400, @@ -381050,11 +405249,15 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */ 0x16FE0, 0x16FE2, 0x16FE3, - 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -381253,8 +405456,10 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */ 0x1EEAA, 0x1EEAB, 0x1EEBC, + 0x1FBF0, + 0x1FBFA, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -381265,6 +405470,8 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */ 0x2EBE1, 0x2F800, 0x2FA1E, + 0x30000, + 0x3134B, 0xE0100, 0xE01F0 }; @@ -381277,7 +405484,7 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */ - 1461, /* Number of elements */ + 1495, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -381407,7 +405614,7 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x8E2, 0x8E3, @@ -381526,7 +405733,7 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -381619,8 +405826,6 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */ 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -381638,7 +405843,7 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */ 0xD70, 0xD7A, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -381840,6 +406045,8 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */ 0x1AA8, 0x1AB0, 0x1ABE, + 0x1ABF, + 0x1AC1, 0x1B00, 0x1B4C, 0x1B50, @@ -382007,13 +406214,13 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA4D0, @@ -382035,9 +406242,11 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */ 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA828, + 0xA82C, + 0xA82D, 0xA840, 0xA874, 0xA880, @@ -382089,7 +406298,7 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */ 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB6A, 0xAB70, 0xABEB, 0xABEC, @@ -382298,12 +406507,20 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */ 0x10D28, 0x10D30, 0x10D3A, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAD, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, 0x10F28, 0x10F30, 0x10F51, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11000, @@ -382321,7 +406538,7 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */ 0x11136, 0x11140, 0x11144, - 0x11147, + 0x11148, 0x11150, 0x11174, 0x11176, @@ -382330,7 +406547,7 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */ 0x111C5, 0x111C9, 0x111CD, - 0x111D0, + 0x111CE, 0x111DB, 0x111DC, 0x111DD, @@ -382389,7 +406606,7 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */ 0x11450, 0x1145A, 0x1145E, - 0x11460, + 0x11462, 0x11480, 0x114C6, 0x114C7, @@ -382423,7 +406640,21 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */ 0x118A0, 0x118EA, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11944, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -382484,6 +406715,8 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */ 0x11DAA, 0x11EE0, 0x11EF7, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12400, @@ -382525,11 +406758,15 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */ 0x16FE0, 0x16FE2, 0x16FE3, - 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -382728,8 +406965,10 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */ 0x1EEAA, 0x1EEAB, 0x1EEBC, + 0x1FBF0, + 0x1FBFA, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -382740,6 +406979,8 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */ 0x2EBE1, 0x2F800, 0x2FA1E, + 0x30000, + 0x3134B, 0xE0100, 0xE01F0 }; @@ -382749,7 +406990,7 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_XIDS_invlist[] = { /* for ASCII/Latin1 */ - 1233, /* Number of elements */ + 1259, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -382855,7 +407096,7 @@ static const UV UNI_XIDS_invlist[] = { /* for ASCII/Latin1 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x904, 0x93A, 0x93D, @@ -383006,7 +407247,7 @@ static const UV UNI_XIDS_invlist[] = { /* for ASCII/Latin1 */ 0xCE2, 0xCF1, 0xCF3, - 0xD05, + 0xD04, 0xD0D, 0xD0E, 0xD11, @@ -383345,13 +407586,13 @@ static const UV UNI_XIDS_invlist[] = { /* for ASCII/Latin1 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA4D0, @@ -383375,8 +407616,8 @@ static const UV UNI_XIDS_invlist[] = { /* for ASCII/Latin1 */ 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA802, 0xA803, 0xA806, @@ -383451,7 +407692,7 @@ static const UV UNI_XIDS_invlist[] = { /* for ASCII/Latin1 */ 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB6A, 0xAB70, 0xABE3, 0xAC00, @@ -383634,12 +407875,18 @@ static const UV UNI_XIDS_invlist[] = { /* for ASCII/Latin1 */ 0x10CF3, 0x10D00, 0x10D24, + 0x10E80, + 0x10EAA, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, 0x10F28, 0x10F30, 0x10F46, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11003, @@ -383652,6 +407899,8 @@ static const UV UNI_XIDS_invlist[] = { /* for ASCII/Latin1 */ 0x11127, 0x11144, 0x11145, + 0x11147, + 0x11148, 0x11150, 0x11173, 0x11176, @@ -383703,7 +407952,7 @@ static const UV UNI_XIDS_invlist[] = { /* for ASCII/Latin1 */ 0x11447, 0x1144B, 0x1145F, - 0x11460, + 0x11462, 0x11480, 0x114B0, 0x114C4, @@ -383729,7 +407978,19 @@ static const UV UNI_XIDS_invlist[] = { /* for ASCII/Latin1 */ 0x118A0, 0x118E0, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11930, + 0x1193F, + 0x11940, + 0x11941, + 0x11942, 0x119A0, 0x119A8, 0x119AA, @@ -383778,6 +408039,8 @@ static const UV UNI_XIDS_invlist[] = { /* for ASCII/Latin1 */ 0x11D99, 0x11EE0, 0x11EF3, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12400, @@ -383817,7 +408080,9 @@ static const UV UNI_XIDS_invlist[] = { /* for ASCII/Latin1 */ 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -383975,7 +408240,7 @@ static const UV UNI_XIDS_invlist[] = { /* for ASCII/Latin1 */ 0x1EEAB, 0x1EEBC, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -383985,7 +408250,9 @@ static const UV UNI_XIDS_invlist[] = { /* for ASCII/Latin1 */ 0x2CEB0, 0x2EBE1, 0x2F800, - 0x2FA1E + 0x2FA1E, + 0x30000, + 0x3134B }; # endif /* ASCII/Latin1 */ @@ -383996,7 +408263,7 @@ static const UV UNI_XIDS_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 1047 */ - 1259, /* Number of elements */ + 1285, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -384128,7 +408395,7 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 1047 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x904, 0x93A, 0x93D, @@ -384279,7 +408546,7 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 1047 */ 0xCE2, 0xCF1, 0xCF3, - 0xD05, + 0xD04, 0xD0D, 0xD0E, 0xD11, @@ -384618,13 +408885,13 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 1047 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA4D0, @@ -384648,8 +408915,8 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 1047 */ 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA802, 0xA803, 0xA806, @@ -384724,7 +408991,7 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 1047 */ 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB6A, 0xAB70, 0xABE3, 0xAC00, @@ -384907,12 +409174,18 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 1047 */ 0x10CF3, 0x10D00, 0x10D24, + 0x10E80, + 0x10EAA, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, 0x10F28, 0x10F30, 0x10F46, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11003, @@ -384925,6 +409198,8 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 1047 */ 0x11127, 0x11144, 0x11145, + 0x11147, + 0x11148, 0x11150, 0x11173, 0x11176, @@ -384976,7 +409251,7 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 1047 */ 0x11447, 0x1144B, 0x1145F, - 0x11460, + 0x11462, 0x11480, 0x114B0, 0x114C4, @@ -385002,7 +409277,19 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 1047 */ 0x118A0, 0x118E0, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11930, + 0x1193F, + 0x11940, + 0x11941, + 0x11942, 0x119A0, 0x119A8, 0x119AA, @@ -385051,6 +409338,8 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 1047 */ 0x11D99, 0x11EE0, 0x11EF3, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12400, @@ -385090,7 +409379,9 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 1047 */ 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -385248,7 +409539,7 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 1047 */ 0x1EEAB, 0x1EEBC, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -385258,7 +409549,9 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 1047 */ 0x2CEB0, 0x2EBE1, 0x2F800, - 0x2FA1E + 0x2FA1E, + 0x30000, + 0x3134B }; # endif /* EBCDIC 1047 */ @@ -385269,7 +409562,7 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 037 */ - 1255, /* Number of elements */ + 1281, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -385397,7 +409690,7 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 037 */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x904, 0x93A, 0x93D, @@ -385548,7 +409841,7 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 037 */ 0xCE2, 0xCF1, 0xCF3, - 0xD05, + 0xD04, 0xD0D, 0xD0E, 0xD11, @@ -385887,13 +410180,13 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 037 */ 0x3131, 0x318F, 0x31A0, - 0x31BB, + 0x31C0, 0x31F0, 0x3200, 0x3400, - 0x4DB6, + 0x4DC0, 0x4E00, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA4D0, @@ -385917,8 +410210,8 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 037 */ 0xA78B, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, + 0xA7CB, + 0xA7F5, 0xA802, 0xA803, 0xA806, @@ -385993,7 +410286,7 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 037 */ 0xAB30, 0xAB5B, 0xAB5C, - 0xAB68, + 0xAB6A, 0xAB70, 0xABE3, 0xAC00, @@ -386176,12 +410469,18 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 037 */ 0x10CF3, 0x10D00, 0x10D24, + 0x10E80, + 0x10EAA, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F1D, 0x10F27, 0x10F28, 0x10F30, 0x10F46, + 0x10FB0, + 0x10FC5, 0x10FE0, 0x10FF7, 0x11003, @@ -386194,6 +410493,8 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 037 */ 0x11127, 0x11144, 0x11145, + 0x11147, + 0x11148, 0x11150, 0x11173, 0x11176, @@ -386245,7 +410546,7 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 037 */ 0x11447, 0x1144B, 0x1145F, - 0x11460, + 0x11462, 0x11480, 0x114B0, 0x114C4, @@ -386271,7 +410572,19 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 037 */ 0x118A0, 0x118E0, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11930, + 0x1193F, + 0x11940, + 0x11941, + 0x11942, 0x119A0, 0x119A8, 0x119AA, @@ -386320,6 +410633,8 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 037 */ 0x11D99, 0x11EE0, 0x11EF3, + 0x11FB0, + 0x11FB1, 0x12000, 0x1239A, 0x12400, @@ -386359,7 +410674,9 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 037 */ 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -386517,7 +410834,7 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 037 */ 0x1EEAB, 0x1EEBC, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -386527,7 +410844,9 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 037 */ 0x2CEB0, 0x2EBE1, 0x2F800, - 0x2FA1E + 0x2FA1E, + 0x30000, + 0x3134B }; # endif /* EBCDIC 037 */ @@ -386560,6 +410879,28 @@ static const UV UNI_XSUX_invlist[] = { /* for all charsets */ 0x12544 }; +static const UV UNI_YEZI_invlist[] = { /* for all charsets */ + 15, /* Number of elements */ + 148565664, /* Version and data structure type */ + 1, /* 0 if the list starts at 0; + 1 if it starts at the element beyond 0 */ + 0x0, + 0x60C, + 0x60D, + 0x61B, + 0x61C, + 0x61F, + 0x620, + 0x660, + 0x66A, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAE, + 0x10EB0, + 0x10EB2 +}; + static const UV UNI_YI_invlist[] = { /* for all charsets */ 15, /* Number of elements */ 148565664, /* Version and data structure type */ @@ -386811,7 +411152,7 @@ static const UV UNI_ZS_invlist[] = { /* for EBCDIC 037 */ # if 'A' == 65 /* ASCII/Latin1 */ static const UV UNI_ZYYY_invlist[] = { /* for ASCII/Latin1 */ - 292, /* Number of elements */ + 296, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -386891,12 +411232,12 @@ static const UV UNI_ZYYY_invlist[] = { /* for ASCII/Latin1 */ 0x2B74, 0x2B76, 0x2B96, - 0x2B98, + 0x2B97, 0x2C00, 0x2E00, 0x2E43, 0x2E44, - 0x2E50, + 0x2E53, 0x2FF0, 0x2FFC, 0x3000, @@ -386925,12 +411266,14 @@ static const UV UNI_ZYYY_invlist[] = { /* for ASCII/Latin1 */ 0x3400, 0x4DC0, 0x4E00, - 0xA700, + 0xA708, 0xA722, 0xA788, 0xA78B, 0xAB5B, 0xAB5C, + 0xAB6A, + 0xAB6C, 0xFD3E, 0xFD40, 0xFE10, @@ -386958,7 +411301,7 @@ static const UV UNI_ZYYY_invlist[] = { /* for ASCII/Latin1 */ 0xFFF9, 0xFFFE, 0x10190, - 0x1019C, + 0x1019D, 0x101D0, 0x101FD, 0x16FE2, @@ -387042,11 +411385,7 @@ static const UV UNI_ZYYY_invlist[] = { /* for ASCII/Latin1 */ 0x1F0D1, 0x1F0F6, 0x1F100, - 0x1F10D, - 0x1F110, - 0x1F16D, - 0x1F170, - 0x1F1AD, + 0x1F1AE, 0x1F1E6, 0x1F200, 0x1F201, @@ -387058,11 +411397,11 @@ static const UV UNI_ZYYY_invlist[] = { /* for ASCII/Latin1 */ 0x1F260, 0x1F266, 0x1F300, - 0x1F6D6, + 0x1F6D8, 0x1F6E0, 0x1F6ED, 0x1F6F0, - 0x1F6FB, + 0x1F6FD, 0x1F700, 0x1F774, 0x1F780, @@ -387079,30 +411418,36 @@ static const UV UNI_ZYYY_invlist[] = { /* for ASCII/Latin1 */ 0x1F888, 0x1F890, 0x1F8AE, + 0x1F8B0, + 0x1F8B2, 0x1F900, - 0x1F90C, - 0x1F90D, - 0x1F972, - 0x1F973, - 0x1F977, + 0x1F979, 0x1F97A, - 0x1F9A3, - 0x1F9A5, - 0x1F9AB, - 0x1F9AE, - 0x1F9CB, + 0x1F9CC, 0x1F9CD, 0x1FA54, 0x1FA60, 0x1FA6E, 0x1FA70, - 0x1FA74, + 0x1FA75, 0x1FA78, 0x1FA7B, 0x1FA80, - 0x1FA83, + 0x1FA87, 0x1FA90, - 0x1FA96, + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB, + 0x1FBF0, + 0x1FBFA, 0xE0001, 0xE0002, 0xE0020, @@ -387117,7 +411462,7 @@ static const UV UNI_ZYYY_invlist[] = { /* for ASCII/Latin1 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 static const UV UNI_ZYYY_invlist[] = { /* for EBCDIC 1047 */ - 318, /* Number of elements */ + 322, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -387223,12 +411568,12 @@ static const UV UNI_ZYYY_invlist[] = { /* for EBCDIC 1047 */ 0x2B74, 0x2B76, 0x2B96, - 0x2B98, + 0x2B97, 0x2C00, 0x2E00, 0x2E43, 0x2E44, - 0x2E50, + 0x2E53, 0x2FF0, 0x2FFC, 0x3000, @@ -387257,12 +411602,14 @@ static const UV UNI_ZYYY_invlist[] = { /* for EBCDIC 1047 */ 0x3400, 0x4DC0, 0x4E00, - 0xA700, + 0xA708, 0xA722, 0xA788, 0xA78B, 0xAB5B, 0xAB5C, + 0xAB6A, + 0xAB6C, 0xFD3E, 0xFD40, 0xFE10, @@ -387290,7 +411637,7 @@ static const UV UNI_ZYYY_invlist[] = { /* for EBCDIC 1047 */ 0xFFF9, 0xFFFE, 0x10190, - 0x1019C, + 0x1019D, 0x101D0, 0x101FD, 0x16FE2, @@ -387374,11 +411721,7 @@ static const UV UNI_ZYYY_invlist[] = { /* for EBCDIC 1047 */ 0x1F0D1, 0x1F0F6, 0x1F100, - 0x1F10D, - 0x1F110, - 0x1F16D, - 0x1F170, - 0x1F1AD, + 0x1F1AE, 0x1F1E6, 0x1F200, 0x1F201, @@ -387390,11 +411733,11 @@ static const UV UNI_ZYYY_invlist[] = { /* for EBCDIC 1047 */ 0x1F260, 0x1F266, 0x1F300, - 0x1F6D6, + 0x1F6D8, 0x1F6E0, 0x1F6ED, 0x1F6F0, - 0x1F6FB, + 0x1F6FD, 0x1F700, 0x1F774, 0x1F780, @@ -387411,30 +411754,36 @@ static const UV UNI_ZYYY_invlist[] = { /* for EBCDIC 1047 */ 0x1F888, 0x1F890, 0x1F8AE, + 0x1F8B0, + 0x1F8B2, 0x1F900, - 0x1F90C, - 0x1F90D, - 0x1F972, - 0x1F973, - 0x1F977, + 0x1F979, 0x1F97A, - 0x1F9A3, - 0x1F9A5, - 0x1F9AB, - 0x1F9AE, - 0x1F9CB, + 0x1F9CC, 0x1F9CD, 0x1FA54, 0x1FA60, 0x1FA6E, 0x1FA70, - 0x1FA74, + 0x1FA75, 0x1FA78, 0x1FA7B, 0x1FA80, - 0x1FA83, + 0x1FA87, 0x1FA90, - 0x1FA96, + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB, + 0x1FBF0, + 0x1FBFA, 0xE0001, 0xE0002, 0xE0020, @@ -387449,7 +411798,7 @@ static const UV UNI_ZYYY_invlist[] = { /* for EBCDIC 1047 */ && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 static const UV UNI_ZYYY_invlist[] = { /* for EBCDIC 037 */ - 314, /* Number of elements */ + 318, /* Number of elements */ 148565664, /* Version and data structure type */ 0, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -387551,12 +411900,12 @@ static const UV UNI_ZYYY_invlist[] = { /* for EBCDIC 037 */ 0x2B74, 0x2B76, 0x2B96, - 0x2B98, + 0x2B97, 0x2C00, 0x2E00, 0x2E43, 0x2E44, - 0x2E50, + 0x2E53, 0x2FF0, 0x2FFC, 0x3000, @@ -387585,12 +411934,14 @@ static const UV UNI_ZYYY_invlist[] = { /* for EBCDIC 037 */ 0x3400, 0x4DC0, 0x4E00, - 0xA700, + 0xA708, 0xA722, 0xA788, 0xA78B, 0xAB5B, 0xAB5C, + 0xAB6A, + 0xAB6C, 0xFD3E, 0xFD40, 0xFE10, @@ -387618,7 +411969,7 @@ static const UV UNI_ZYYY_invlist[] = { /* for EBCDIC 037 */ 0xFFF9, 0xFFFE, 0x10190, - 0x1019C, + 0x1019D, 0x101D0, 0x101FD, 0x16FE2, @@ -387702,11 +412053,7 @@ static const UV UNI_ZYYY_invlist[] = { /* for EBCDIC 037 */ 0x1F0D1, 0x1F0F6, 0x1F100, - 0x1F10D, - 0x1F110, - 0x1F16D, - 0x1F170, - 0x1F1AD, + 0x1F1AE, 0x1F1E6, 0x1F200, 0x1F201, @@ -387718,11 +412065,11 @@ static const UV UNI_ZYYY_invlist[] = { /* for EBCDIC 037 */ 0x1F260, 0x1F266, 0x1F300, - 0x1F6D6, + 0x1F6D8, 0x1F6E0, 0x1F6ED, 0x1F6F0, - 0x1F6FB, + 0x1F6FD, 0x1F700, 0x1F774, 0x1F780, @@ -387739,30 +412086,36 @@ static const UV UNI_ZYYY_invlist[] = { /* for EBCDIC 037 */ 0x1F888, 0x1F890, 0x1F8AE, + 0x1F8B0, + 0x1F8B2, 0x1F900, - 0x1F90C, - 0x1F90D, - 0x1F972, - 0x1F973, - 0x1F977, + 0x1F979, 0x1F97A, - 0x1F9A3, - 0x1F9A5, - 0x1F9AB, - 0x1F9AE, - 0x1F9CB, + 0x1F9CC, 0x1F9CD, 0x1FA54, 0x1FA60, 0x1FA6E, 0x1FA70, - 0x1FA74, + 0x1FA75, 0x1FA78, 0x1FA7B, 0x1FA80, - 0x1FA83, + 0x1FA87, 0x1FA90, - 0x1FA96, + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB, + 0x1FBF0, + 0x1FBFA, 0xE0001, 0xE0002, 0xE0020, @@ -387772,7 +412125,7 @@ static const UV UNI_ZYYY_invlist[] = { /* for EBCDIC 037 */ # endif /* EBCDIC 037 */ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */ - 1328, /* Number of elements */ + 1350, /* Number of elements */ 148565664, /* Version and data structure type */ 1, /* 0 if the list starts at 0; 1 if it starts at the element beyond 0 */ @@ -387823,7 +412176,7 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */ 0x8A0, 0x8B5, 0x8B6, - 0x8BE, + 0x8C8, 0x8D3, 0x984, 0x985, @@ -387932,7 +412285,7 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */ 0xB49, 0xB4B, 0xB4E, - 0xB56, + 0xB55, 0xB58, 0xB5C, 0xB5E, @@ -388021,8 +412374,6 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */ 0xCF1, 0xCF3, 0xD00, - 0xD04, - 0xD05, 0xD0D, 0xD0E, 0xD11, @@ -388036,7 +412387,7 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */ 0xD64, 0xD66, 0xD80, - 0xD82, + 0xD81, 0xD84, 0xD85, 0xD97, @@ -388209,7 +412560,7 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */ 0x1AA0, 0x1AAE, 0x1AB0, - 0x1ABF, + 0x1AC1, 0x1B00, 0x1B4C, 0x1B50, @@ -388284,7 +412635,7 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */ 0x2B74, 0x2B76, 0x2B96, - 0x2B98, + 0x2B97, 0x2C2F, 0x2C30, 0x2C5F, @@ -388319,7 +412670,7 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */ 0x2DD8, 0x2DDF, 0x2DE0, - 0x2E50, + 0x2E53, 0x2E80, 0x2E9A, 0x2E9B, @@ -388339,15 +412690,11 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */ 0x3131, 0x318F, 0x3190, - 0x31BB, - 0x31C0, 0x31E4, 0x31F0, 0x321F, 0x3220, - 0x4DB6, - 0x4DC0, - 0x9FF0, + 0x9FFD, 0xA000, 0xA48D, 0xA490, @@ -388359,9 +412706,9 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */ 0xA700, 0xA7C0, 0xA7C2, - 0xA7C7, - 0xA7F7, - 0xA82C, + 0xA7CB, + 0xA7F5, + 0xA82D, 0xA830, 0xA83A, 0xA840, @@ -388401,7 +412748,7 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */ 0xAB28, 0xAB2F, 0xAB30, - 0xAB68, + 0xAB6C, 0xAB70, 0xABEE, 0xABF0, @@ -388491,7 +412838,7 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */ 0x10137, 0x1018F, 0x10190, - 0x1019C, + 0x1019D, 0x101A0, 0x101A1, 0x101D0, @@ -388610,10 +412957,18 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */ 0x10D3A, 0x10E60, 0x10E7F, + 0x10E80, + 0x10EAA, + 0x10EAB, + 0x10EAE, + 0x10EB0, + 0x10EB2, 0x10F00, 0x10F28, 0x10F30, 0x10F5A, + 0x10FB0, + 0x10FCC, 0x10FE0, 0x10FF7, 0x11000, @@ -388631,12 +412986,10 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */ 0x11100, 0x11135, 0x11136, - 0x11147, + 0x11148, 0x11150, 0x11177, 0x11180, - 0x111CE, - 0x111D0, 0x111E0, 0x111E1, 0x111F5, @@ -388689,11 +413042,9 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */ 0x11370, 0x11375, 0x11400, - 0x1145A, - 0x1145B, 0x1145C, 0x1145D, - 0x11460, + 0x11462, 0x11480, 0x114C8, 0x114D0, @@ -388723,7 +413074,21 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */ 0x118A0, 0x118F3, 0x118FF, - 0x11900, + 0x11907, + 0x11909, + 0x1190A, + 0x1190C, + 0x11914, + 0x11915, + 0x11917, + 0x11918, + 0x11936, + 0x11937, + 0x11939, + 0x1193B, + 0x11947, + 0x11950, + 0x1195A, 0x119A0, 0x119A8, 0x119AA, @@ -388778,6 +413143,8 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */ 0x11DAA, 0x11EE0, 0x11EF9, + 0x11FB0, + 0x11FB1, 0x11FC0, 0x11FF2, 0x11FFF, @@ -388825,11 +413192,15 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */ 0x16F8F, 0x16FA0, 0x16FE0, - 0x16FE4, + 0x16FE5, + 0x16FF0, + 0x16FF2, 0x17000, 0x187F8, 0x18800, - 0x18AF3, + 0x18CD6, + 0x18D00, + 0x18D09, 0x1B000, 0x1B11F, 0x1B150, @@ -389025,11 +413396,7 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */ 0x1F0D1, 0x1F0F6, 0x1F100, - 0x1F10D, - 0x1F110, - 0x1F16D, - 0x1F170, - 0x1F1AD, + 0x1F1AE, 0x1F1E6, 0x1F203, 0x1F210, @@ -389041,11 +413408,11 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */ 0x1F260, 0x1F266, 0x1F300, - 0x1F6D6, + 0x1F6D8, 0x1F6E0, 0x1F6ED, 0x1F6F0, - 0x1F6FB, + 0x1F6FD, 0x1F700, 0x1F774, 0x1F780, @@ -389062,32 +413429,38 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */ 0x1F888, 0x1F890, 0x1F8AE, + 0x1F8B0, + 0x1F8B2, 0x1F900, - 0x1F90C, - 0x1F90D, - 0x1F972, - 0x1F973, - 0x1F977, + 0x1F979, 0x1F97A, - 0x1F9A3, - 0x1F9A5, - 0x1F9AB, - 0x1F9AE, - 0x1F9CB, + 0x1F9CC, 0x1F9CD, 0x1FA54, 0x1FA60, 0x1FA6E, 0x1FA70, - 0x1FA74, + 0x1FA75, 0x1FA78, 0x1FA7B, 0x1FA80, - 0x1FA83, + 0x1FA87, 0x1FA90, - 0x1FA96, + 0x1FAA9, + 0x1FAB0, + 0x1FAB7, + 0x1FAC0, + 0x1FAC3, + 0x1FAD0, + 0x1FAD7, + 0x1FB00, + 0x1FB93, + 0x1FB94, + 0x1FBCB, + 0x1FBF0, + 0x1FBFA, 0x20000, - 0x2A6D7, + 0x2A6DE, 0x2A700, 0x2B735, 0x2B740, @@ -389098,6 +413471,8 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */ 0x2EBE1, 0x2F800, 0x2FA1E, + 0x30000, + 0x3134B, 0xE0001, 0xE0002, 0xE0020, @@ -389246,17 +413621,22 @@ const char * const deprecated_property_msgs[] = { "Supplanted by Line_Break property values; see www.unicode.org/reports/tr14" }; +#endif /* (defined(PERL_IN_REGCOMP_C) && ! defined(PERL_IN_XSUB_RE)) */ + +#if defined(PERL_IN_REGCOMP_C) + #define UNI_HYPHEN (UNI_HYPHEN_perl_aux + (MAX_UNI_KEYWORD_INDEX * 2)) #define UNI_LB__SG (UNI_LB__SG_perl_aux + (MAX_UNI_KEYWORD_INDEX * 1)) typedef enum { - PERL_BIN_PLACEHOLDER = 0, /* So no real value is zero */ + PERL_BIN_PLACEHOLDER = 0, /* So no real value is zero */ UNI_ADLM, UNI_AEGEANNUMBERS, UNI_AGE__10, UNI_AGE__11, UNI_AGE__12, UNI_AGE__12_DOT_1, + UNI_AGE__13, UNI_AGE__2, UNI_AGE__2_DOT_1, UNI_AGE__3, @@ -389385,6 +413765,7 @@ typedef enum { UNI_CCC__34, UNI_CCC__35, UNI_CCC__36, + UNI_CCC__6, UNI_CCC__7, UNI_CCC__8, UNI_CCC__84, @@ -389407,6 +413788,7 @@ typedef enum { UNI_CHER, UNI_CHEROKEESUP, UNI_CHESSSYMBOLS, + UNI_CHRS, UNI_CI, UNI_CJK, UNI_CJKCOMPAT, @@ -389419,6 +413801,7 @@ typedef enum { UNI_CJKEXTD, UNI_CJKEXTE, UNI_CJKEXTF, + UNI_CJKEXTG, UNI_CJKRADICALSSUP, UNI_CJKSTROKES, UNI_CJKSYMBOLS, @@ -389455,6 +413838,7 @@ typedef enum { UNI_DIACRITICALSEXT, UNI_DIACRITICALSFORSYMBOLS, UNI_DIACRITICALSSUP, + UNI_DIAK, UNI_DINGBATS, UNI_DOGR, UNI_DOMINO, @@ -389485,20 +413869,26 @@ typedef enum { UNI_EA__N, UNI_EA__NA, UNI_EA__W, + UNI_EBASE, + UNI_ECOMP, UNI_EGYP, UNI_EGYPTIANHIEROGLYPHFORMATCONTROLS, UNI_ELBA, UNI_ELYM, + UNI_EMOD, + UNI_EMOJI, UNI_EMOTICONS, UNI_ENCLOSEDALPHANUM, UNI_ENCLOSEDALPHANUMSUP, UNI_ENCLOSEDCJK, UNI_ENCLOSEDIDEOGRAPHICSUP, + UNI_EPRES, UNI_ETHI, UNI_ETHIOPICEXT, UNI_ETHIOPICEXTA, UNI_ETHIOPICSUP, UNI_EXT, + UNI_EXTPICT, UNI_GCB__CN, UNI_GCB__EX, UNI_GCB__L, @@ -389541,6 +413931,19 @@ typedef enum { UNI_HUNG, UNI_HYPHEN_perl_aux, UNI_IDC, + UNI_IDENTIFIERSTATUS__ALLOWED, + UNI_IDENTIFIERSTATUS__RESTRICTED, + UNI_IDENTIFIERTYPE__DEFAULTIGNORABLE, + UNI_IDENTIFIERTYPE__EXCLUSION, + UNI_IDENTIFIERTYPE__INCLUSION, + UNI_IDENTIFIERTYPE__LIMITEDUSE, + UNI_IDENTIFIERTYPE__NOTCHARACTER, + UNI_IDENTIFIERTYPE__NOTNFKC, + UNI_IDENTIFIERTYPE__NOTXID, + UNI_IDENTIFIERTYPE__OBSOLETE, + UNI_IDENTIFIERTYPE__RECOMMENDED, + UNI_IDENTIFIERTYPE__TECHNICAL, + UNI_IDENTIFIERTYPE__UNCOMMONUSE, UNI_IDEO, UNI_IDEOGRAPHICSYMBOLS, UNI_IDS, @@ -389567,12 +413970,14 @@ typedef enum { UNI_INCHAKMA, UNI_INCHAM, UNI_INCHEROKEE, + UNI_INCHORASMIAN, UNI_INCOPTIC, UNI_INCUNEIFORM, UNI_INCYRILLIC, UNI_INDEVANAGARI, UNI_INDICNUMBERFORMS, UNI_INDICSIYAQNUMBERS, + UNI_INDIVESAKURU, UNI_INDOGRA, UNI_INDUPLOYAN, UNI_INEGYPTIANHIEROGLYPHS, @@ -389602,6 +414007,7 @@ typedef enum { UNI_INKANNADA, UNI_INKATAKANA, UNI_INKHAROSHTHI, + UNI_INKHITANSMALLSCRIPT, UNI_INKHMER, UNI_INKHOJKI, UNI_INKHUDAWADI, @@ -389609,6 +414015,7 @@ typedef enum { UNI_INLEPCHA, UNI_INLIMBU, UNI_INLINEARA, + UNI_INLISU, UNI_INLYCIAN, UNI_INLYDIAN, UNI_INMAHAJANI, @@ -389657,6 +414064,7 @@ typedef enum { UNI_INPC__RIGHT, UNI_INPC__TOP, UNI_INPC__TOPANDBOTTOM, + UNI_INPC__TOPANDBOTTOMANDLEFT, UNI_INPC__TOPANDBOTTOMANDRIGHT, UNI_INPC__TOPANDLEFT, UNI_INPC__TOPANDLEFTANDRIGHT, @@ -389704,7 +414112,6 @@ typedef enum { UNI_INSC__VOWEL, UNI_INSC__VOWELDEPENDENT, UNI_INSC__VOWELINDEPENDENT, - UNI_INSHARADA, UNI_INSIDDHAM, UNI_INSINHALA, UNI_INSOGDIAN, @@ -389732,11 +414139,13 @@ typedef enum { UNI_INVS, UNI_INWANCHO, UNI_INWARANGCITI, + UNI_INYEZIDI, UNI_INZANABAZARSQUARE, UNI_IN__10, UNI_IN__11, UNI_IN__12, UNI_IN__12_DOT_1, + UNI_IN__13, UNI_IN__1_DOT_1, UNI_IN__2, UNI_IN__2_DOT_1, @@ -389881,6 +414290,7 @@ typedef enum { UNI_KHMERSYMBOLS, UNI_KHMR, UNI_KHOJ, + UNI_KITS, UNI_KNDA, UNI_KTHI, UNI_L, @@ -389906,8 +414316,6 @@ typedef enum { UNI_LB__CM, UNI_LB__CP, UNI_LB__CR, - UNI_LB__EB, - UNI_LB__EM, UNI_LB__EX, UNI_LB__GL, UNI_LB__H2, @@ -389941,6 +414349,7 @@ typedef enum { UNI_LINEARBIDEOGRAMS, UNI_LINEARBSYLLABARY, UNI_LISU, + UNI_LISUSUP, UNI_LM, UNI_LO, UNI_LOE, @@ -390222,7 +414631,6 @@ typedef enum { UNI_SC, UNI_SC__ADLM, UNI_SC__ARAB, - UNI_SC__ARMN, UNI_SC__BENG, UNI_SC__BOPO, UNI_SC__BUGI, @@ -390285,6 +414693,7 @@ typedef enum { UNI_SC__TGLG, UNI_SC__THAA, UNI_SC__TIRH, + UNI_SC__YEZI, UNI_SC__YI, UNI_SC__ZYYY, UNI_SD, @@ -390321,6 +414730,7 @@ typedef enum { UNI_SUTTONSIGNWRITING, UNI_SYLO, UNI_SYMBOLSANDPICTOGRAPHSEXTA, + UNI_SYMBOLSFORLEGACYCOMPUTING, UNI_SYRC, UNI_SYRIACSUP, UNI_TAGB, @@ -390333,6 +414743,7 @@ typedef enum { UNI_TAML, UNI_TANG, UNI_TANGUTCOMPONENTS, + UNI_TANGUTSUP, UNI_TAVT, UNI_TELU, UNI_TERM, @@ -390393,6 +414804,7 @@ typedef enum { UNI_XPOSIXWORD, UNI_XPOSIXXDIGIT, UNI_XSUX, + UNI_YEZI, UNI_YI, UNI_YIJING, UNI_YIRADICALS, @@ -390412,7 +414824,6 @@ typedef enum { UNI__PERL_IDSTART, UNI__PERL_IS_IN_MULTI_CHAR_FOLD, UNI__PERL_NCHAR, - UNI__PERL_NON_FINAL_FOLDS, UNI__PERL_PATWS, UNI__PERL_PROBLEMATIC_LOCALE_FOLDEDS_START, UNI__PERL_PROBLEMATIC_LOCALE_FOLDS, @@ -390422,6 +414833,10 @@ typedef enum { #define MAX_UNI_KEYWORD_INDEX UNI__PERL_SURROGATE +#endif /* defined(PERL_IN_REGCOMP_C) */ + +#if (defined(PERL_IN_REGCOMP_C) && ! defined(PERL_IN_XSUB_RE)) + static const UV * const uni_prop_ptrs[] = { NULL, /* Placeholder */ UNI_ADLM_invlist, @@ -390430,6 +414845,7 @@ static const UV * const uni_prop_ptrs[] = { UNI_AGE__11_invlist, UNI_AGE__12_invlist, UNI_AGE__12_DOT_1_invlist, + UNI_AGE__13_invlist, UNI_AGE__2_invlist, UNI_AGE__2_DOT_1_invlist, UNI_AGE__3_invlist, @@ -390558,6 +414974,7 @@ static const UV * const uni_prop_ptrs[] = { UNI_CCC__34_invlist, UNI_CCC__35_invlist, UNI_CCC__36_invlist, + UNI_CCC__6_invlist, UNI_CCC__7_invlist, UNI_CCC__8_invlist, UNI_CCC__84_invlist, @@ -390580,6 +414997,7 @@ static const UV * const uni_prop_ptrs[] = { UNI_CHER_invlist, UNI_CHEROKEESUP_invlist, UNI_CHESSSYMBOLS_invlist, + UNI_CHRS_invlist, UNI_CI_invlist, UNI_CJK_invlist, UNI_CJKCOMPAT_invlist, @@ -390592,6 +415010,7 @@ static const UV * const uni_prop_ptrs[] = { UNI_CJKEXTD_invlist, UNI_CJKEXTE_invlist, UNI_CJKEXTF_invlist, + UNI_CJKEXTG_invlist, UNI_CJKRADICALSSUP_invlist, UNI_CJKSTROKES_invlist, UNI_CJKSYMBOLS_invlist, @@ -390628,6 +415047,7 @@ static const UV * const uni_prop_ptrs[] = { UNI_DIACRITICALSEXT_invlist, UNI_DIACRITICALSFORSYMBOLS_invlist, UNI_DIACRITICALSSUP_invlist, + UNI_DIAK_invlist, UNI_DINGBATS_invlist, UNI_DOGR_invlist, UNI_DOMINO_invlist, @@ -390658,20 +415078,26 @@ static const UV * const uni_prop_ptrs[] = { UNI_EA__N_invlist, UNI_EA__NA_invlist, UNI_EA__W_invlist, + UNI_EBASE_invlist, + UNI_ECOMP_invlist, UNI_EGYP_invlist, UNI_EGYPTIANHIEROGLYPHFORMATCONTROLS_invlist, UNI_ELBA_invlist, UNI_ELYM_invlist, + UNI_EMOD_invlist, + UNI_EMOJI_invlist, UNI_EMOTICONS_invlist, UNI_ENCLOSEDALPHANUM_invlist, UNI_ENCLOSEDALPHANUMSUP_invlist, UNI_ENCLOSEDCJK_invlist, UNI_ENCLOSEDIDEOGRAPHICSUP_invlist, + UNI_EPRES_invlist, UNI_ETHI_invlist, UNI_ETHIOPICEXT_invlist, UNI_ETHIOPICEXTA_invlist, UNI_ETHIOPICSUP_invlist, UNI_EXT_invlist, + UNI_EXTPICT_invlist, UNI_GCB__CN_invlist, UNI_GCB__EX_invlist, UNI_GCB__L_invlist, @@ -390714,6 +415140,19 @@ static const UV * const uni_prop_ptrs[] = { UNI_HUNG_invlist, UNI_HYPHEN_invlist, UNI_IDC_invlist, + UNI_IDENTIFIERSTATUS__ALLOWED_invlist, + UNI_IDENTIFIERSTATUS__RESTRICTED_invlist, + UNI_IDENTIFIERTYPE__DEFAULTIGNORABLE_invlist, + UNI_IDENTIFIERTYPE__EXCLUSION_invlist, + UNI_IDENTIFIERTYPE__INCLUSION_invlist, + UNI_IDENTIFIERTYPE__LIMITEDUSE_invlist, + UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist, + UNI_IDENTIFIERTYPE__NOTNFKC_invlist, + UNI_IDENTIFIERTYPE__NOTXID_invlist, + UNI_IDENTIFIERTYPE__OBSOLETE_invlist, + UNI_IDENTIFIERTYPE__RECOMMENDED_invlist, + UNI_IDENTIFIERTYPE__TECHNICAL_invlist, + UNI_IDENTIFIERTYPE__UNCOMMONUSE_invlist, UNI_IDEO_invlist, UNI_IDEOGRAPHICSYMBOLS_invlist, UNI_IDS_invlist, @@ -390740,12 +415179,14 @@ static const UV * const uni_prop_ptrs[] = { UNI_INCHAKMA_invlist, UNI_INCHAM_invlist, UNI_INCHEROKEE_invlist, + UNI_INCHORASMIAN_invlist, UNI_INCOPTIC_invlist, UNI_INCUNEIFORM_invlist, UNI_INCYRILLIC_invlist, UNI_INDEVANAGARI_invlist, UNI_INDICNUMBERFORMS_invlist, UNI_INDICSIYAQNUMBERS_invlist, + UNI_INDIVESAKURU_invlist, UNI_INDOGRA_invlist, UNI_INDUPLOYAN_invlist, UNI_INEGYPTIANHIEROGLYPHS_invlist, @@ -390775,6 +415216,7 @@ static const UV * const uni_prop_ptrs[] = { UNI_INKANNADA_invlist, UNI_INKATAKANA_invlist, UNI_INKHAROSHTHI_invlist, + UNI_INKHITANSMALLSCRIPT_invlist, UNI_INKHMER_invlist, UNI_INKHOJKI_invlist, UNI_INKHUDAWADI_invlist, @@ -390782,6 +415224,7 @@ static const UV * const uni_prop_ptrs[] = { UNI_INLEPCHA_invlist, UNI_INLIMBU_invlist, UNI_INLINEARA_invlist, + UNI_INLISU_invlist, UNI_INLYCIAN_invlist, UNI_INLYDIAN_invlist, UNI_INMAHAJANI_invlist, @@ -390830,6 +415273,7 @@ static const UV * const uni_prop_ptrs[] = { UNI_INPC__RIGHT_invlist, UNI_INPC__TOP_invlist, UNI_INPC__TOPANDBOTTOM_invlist, + UNI_INPC__TOPANDBOTTOMANDLEFT_invlist, UNI_INPC__TOPANDBOTTOMANDRIGHT_invlist, UNI_INPC__TOPANDLEFT_invlist, UNI_INPC__TOPANDLEFTANDRIGHT_invlist, @@ -390877,7 +415321,6 @@ static const UV * const uni_prop_ptrs[] = { UNI_INSC__VOWEL_invlist, UNI_INSC__VOWELDEPENDENT_invlist, UNI_INSC__VOWELINDEPENDENT_invlist, - UNI_INSHARADA_invlist, UNI_INSIDDHAM_invlist, UNI_INSINHALA_invlist, UNI_INSOGDIAN_invlist, @@ -390905,11 +415348,13 @@ static const UV * const uni_prop_ptrs[] = { UNI_INVS_invlist, UNI_INWANCHO_invlist, UNI_INWARANGCITI_invlist, + UNI_INYEZIDI_invlist, UNI_INZANABAZARSQUARE_invlist, UNI_IN__10_invlist, UNI_IN__11_invlist, UNI_IN__12_invlist, UNI_IN__12_DOT_1_invlist, + UNI_IN__13_invlist, UNI_IN__1_DOT_1_invlist, UNI_IN__2_invlist, UNI_IN__2_DOT_1_invlist, @@ -391054,6 +415499,7 @@ static const UV * const uni_prop_ptrs[] = { UNI_KHMERSYMBOLS_invlist, UNI_KHMR_invlist, UNI_KHOJ_invlist, + UNI_KITS_invlist, UNI_KNDA_invlist, UNI_KTHI_invlist, UNI_L_invlist, @@ -391079,8 +415525,6 @@ static const UV * const uni_prop_ptrs[] = { UNI_LB__CM_invlist, UNI_LB__CP_invlist, UNI_LB__CR_invlist, - UNI_LB__EB_invlist, - UNI_LB__EM_invlist, UNI_LB__EX_invlist, UNI_LB__GL_invlist, UNI_LB__H2_invlist, @@ -391114,6 +415558,7 @@ static const UV * const uni_prop_ptrs[] = { UNI_LINEARBIDEOGRAMS_invlist, UNI_LINEARBSYLLABARY_invlist, UNI_LISU_invlist, + UNI_LISUSUP_invlist, UNI_LM_invlist, UNI_LO_invlist, UNI_LOE_invlist, @@ -391395,7 +415840,6 @@ static const UV * const uni_prop_ptrs[] = { UNI_SC_invlist, UNI_SC__ADLM_invlist, UNI_SC__ARAB_invlist, - UNI_SC__ARMN_invlist, UNI_SC__BENG_invlist, UNI_SC__BOPO_invlist, UNI_SC__BUGI_invlist, @@ -391458,6 +415902,7 @@ static const UV * const uni_prop_ptrs[] = { UNI_SC__TGLG_invlist, UNI_SC__THAA_invlist, UNI_SC__TIRH_invlist, + UNI_SC__YEZI_invlist, UNI_SC__YI_invlist, UNI_SC__ZYYY_invlist, UNI_SD_invlist, @@ -391494,6 +415939,7 @@ static const UV * const uni_prop_ptrs[] = { UNI_SUTTONSIGNWRITING_invlist, UNI_SYLO_invlist, UNI_SYMBOLSANDPICTOGRAPHSEXTA_invlist, + UNI_SYMBOLSFORLEGACYCOMPUTING_invlist, UNI_SYRC_invlist, UNI_SYRIACSUP_invlist, UNI_TAGB_invlist, @@ -391506,6 +415952,7 @@ static const UV * const uni_prop_ptrs[] = { UNI_TAML_invlist, UNI_TANG_invlist, UNI_TANGUTCOMPONENTS_invlist, + UNI_TANGUTSUP_invlist, UNI_TAVT_invlist, UNI_TELU_invlist, UNI_TERM_invlist, @@ -391566,6 +416013,7 @@ static const UV * const uni_prop_ptrs[] = { UNI_XPOSIXWORD_invlist, UNI_XPOSIXXDIGIT_invlist, UNI_XSUX_invlist, + UNI_YEZI_invlist, UNI_YI_invlist, UNI_YIJING_invlist, UNI_YIRADICALS_invlist, @@ -391585,7 +416033,6 @@ static const UV * const uni_prop_ptrs[] = { UNI__PERL_IDSTART_invlist, UNI__PERL_IS_IN_MULTI_CHAR_FOLD_invlist, UNI__PERL_NCHAR_invlist, - UNI__PERL_NON_FINAL_FOLDS_invlist, UNI__PERL_PATWS_invlist, UNI__PERL_PROBLEMATIC_LOCALE_FOLDEDS_START_invlist, UNI__PERL_PROBLEMATIC_LOCALE_FOLDS_invlist, @@ -391593,6 +416040,10 @@ static const UV * const uni_prop_ptrs[] = { UNI__PERL_SURROGATE_invlist }; +#endif /* (defined(PERL_IN_REGCOMP_C) && ! defined(PERL_IN_XSUB_RE)) */ + +#if defined(PERL_IN_REGCOMP_C) + /* Synonyms for perl properties */ #define UNI_AHEX UNI_POSIXXDIGIT @@ -391636,6 +416087,10 @@ static const UV * const uni_prop_ptrs[] = { #define UNI_XPERLSPACE UNI_XPOSIXSPACE +#endif /* defined(PERL_IN_REGCOMP_C) */ + +#if (defined(PERL_IN_REGCOMP_C) && ! defined(PERL_IN_XSUB_RE)) + static const char * const UNI_age_values[] = { "1.1", "2.0", @@ -391659,6 +416114,7 @@ static const char * const UNI_age_values[] = { "11.0", "12.0", "12.1", + "13.0", "NA", "na", "Unassigned", @@ -391667,6 +416123,7 @@ static const char * const UNI_age_values[] = { "V11_0", "V12_0", "V12_1", + "V13_0", "V1_1", "V2_0", "V2_1", @@ -391690,6 +416147,7 @@ static const char * const UNI_age_values[] = { "v110", "v120", "v121", + "v130", "v20", "v21", "v30", @@ -391964,6 +416422,8 @@ static const char * const UNI_blk_values[] = { "Chess Symbols", "Chess_Symbols", "chesssymbols", + "Chorasmian", + "chorasmian", "CJK", "cjk", "CJK_Compat", @@ -391998,6 +416458,8 @@ static const char * const UNI_blk_values[] = { "cjkexte", "CJK_Ext_F", "cjkextf", + "CJK_Ext_G", + "cjkextg", "CJK_Radicals_Sup", "cjkradicalssup", "CJK Radicals Supplement", @@ -392032,6 +416494,9 @@ static const char * const UNI_blk_values[] = { "CJK Unified Ideographs Extension F", "CJK_Unified_Ideographs_Extension_F", "cjkunifiedideographsextensionf", + "CJK Unified Ideographs Extension G", + "CJK_Unified_Ideographs_Extension_G", + "cjkunifiedideographsextensiong", "Combining Diacritical Marks", "Combining_Diacritical_Marks", "combiningdiacriticalmarks", @@ -392123,6 +416588,9 @@ static const char * const UNI_blk_values[] = { "diacriticalssup", "Dingbats", "dingbats", + "Dives Akuru", + "Dives_Akuru", + "divesakuru", "Dogra", "dogra", "Domino", @@ -392348,6 +416816,9 @@ static const char * const UNI_blk_values[] = { "kayahli", "Kharoshthi", "kharoshthi", + "Khitan Small Script", + "Khitan_Small_Script", + "khitansmallscript", "Khmer", "khmer", "Khmer Symbols", @@ -392414,6 +416885,11 @@ static const char * const UNI_blk_values[] = { "linearbsyllabary", "Lisu", "lisu", + "Lisu_Sup", + "lisusup", + "Lisu Supplement", + "Lisu_Supplement", + "lisusupplement", "Low Surrogates", "Low_Surrogates", "lowsurrogates", @@ -392764,6 +417240,9 @@ static const char * const UNI_blk_values[] = { "Symbols and Pictographs Extended-A", "Symbols_And_Pictographs_Extended_A", "symbolsandpictographsextendeda", + "Symbols for Legacy Computing", + "Symbols_For_Legacy_Computing", + "symbolsforlegacycomputing", "Syriac", "syriac", "Syriac_Sup", @@ -392805,6 +417284,11 @@ static const char * const UNI_blk_values[] = { "Tangut Components", "Tangut_Components", "tangutcomponents", + "Tangut_Sup", + "tangutsup", + "Tangut Supplement", + "Tangut_Supplement", + "tangutsupplement", "Telugu", "telugu", "Thaana", @@ -392859,6 +417343,8 @@ static const char * const UNI_blk_values[] = { "Warang Citi", "Warang_Citi", "warangciti", + "Yezidi", + "yezidi", "Yijing", "yijing", "Yijing Hexagram Symbols", @@ -392892,6 +417378,7 @@ static const char * const UNI_bpt_values[] = { static const char * const UNI_ccc_values[] = { "0", "1", + "6", "7", "8", "9", @@ -393069,6 +417556,10 @@ static const char * const UNI_ccc_values[] = { "doubleabove", "Double_Below", "doublebelow", + "HANR", + "hanr", + "Han_Reading", + "hanreading", "Iota_Subscript", "iotasubscript", "IS", @@ -393456,6 +417947,42 @@ static const char * const UNI_hst_values[] = { NULL }; +static const char * const UNI_identifierstatus_values[] = { + "Allowed", + "allowed", + "Restricted", + "restricted", + NULL +}; + +static const char * const UNI_identifiertype_values[] = { + "Default_Ignorable", + "defaultignorable", + "Deprecated", + "deprecated", + "Exclusion", + "exclusion", + "Inclusion", + "inclusion", + "Limited_Use", + "limiteduse", + "Not_Character", + "notcharacter", + "Not_NFKC", + "notnfkc", + "Not_XID", + "notxid", + "Obsolete", + "obsolete", + "Recommended", + "recommended", + "Technical", + "technical", + "Uncommon_Use", + "uncommonuse", + NULL +}; + static const char * const UNI_in_values[] = { "1.1", "2.0", @@ -393479,12 +418006,14 @@ static const char * const UNI_in_values[] = { "11.0", "12.0", "12.1", + "13.0", "Unassigned", "unassigned", "V10_0", "V11_0", "V12_0", "V12_1", + "V13_0", "V2_0", "V2_1", "V3_0", @@ -393506,6 +418035,7 @@ static const char * const UNI_in_values[] = { "v110", "v120", "v121", + "v130", "v20", "v21", "v30", @@ -393547,6 +418077,8 @@ static const char * const UNI_inpc_values[] = { "top", "Top_And_Bottom", "topandbottom", + "Top_And_Bottom_And_Left", + "topandbottomandleft", "Top_And_Bottom_And_Right", "topandbottomandright", "Top_And_Left", @@ -394382,6 +418914,10 @@ static const char * const UNI_sc_values[] = { "cher", "Cherokee", "cherokee", + "Chorasmian", + "chorasmian", + "Chrs", + "chrs", "Common", "common", "Copt", @@ -394404,6 +418940,10 @@ static const char * const UNI_sc_values[] = { "deva", "Devanagari", "devanagari", + "Diak", + "diak", + "Dives_Akuru", + "divesakuru", "Dogr", "dogr", "Dogra", @@ -394528,6 +419068,8 @@ static const char * const UNI_sc_values[] = { "khar", "Kharoshthi", "kharoshthi", + "Khitan_Small_Script", + "khitansmallscript", "Khmer", "khmer", "Khmr", @@ -394538,6 +419080,8 @@ static const char * const UNI_sc_values[] = { "khojki", "Khudawadi", "khudawadi", + "Kits", + "kits", "Knda", "knda", "Kthi", @@ -394884,6 +419428,10 @@ static const char * const UNI_sc_values[] = { "xpeo", "Xsux", "xsux", + "Yezi", + "yezi", + "Yezidi", + "yezidi", "Yi", "yi", "Yiii", @@ -395020,6 +419568,8 @@ UNI_ea_values, UNI_gc_values, UNI_gcb_values, UNI_hst_values, +UNI_identifierstatus_values, +UNI_identifiertype_values, UNI_in_values, UNI_inpc_values, UNI_insc_values, @@ -395062,7 +419612,13 @@ UNI_wb_values #define UNI_dia_values_index UNI_ahex_values_index #define UNI_dt_values_index 7 #define UNI_ea_values_index 8 +#define UNI_ebase_values_index UNI_ahex_values_index +#define UNI_ecomp_values_index UNI_ahex_values_index +#define UNI_emod_values_index UNI_ahex_values_index +#define UNI_emoji_values_index UNI_ahex_values_index +#define UNI_epres_values_index UNI_ahex_values_index #define UNI_ext_values_index UNI_ahex_values_index +#define UNI_extpict_values_index UNI_ahex_values_index #define UNI_gc_values_index 9 #define UNI_gcb_values_index 10 #define UNI_grbase_values_index UNI_ahex_values_index @@ -395071,44 +419627,46 @@ UNI_wb_values #define UNI_hst_values_index 11 #define UNI_hyphen_values_index UNI_ahex_values_index #define UNI_idc_values_index UNI_ahex_values_index +#define UNI_identifierstatus_values_index 12 +#define UNI_identifiertype_values_index 13 #define UNI_ideo_values_index UNI_ahex_values_index #define UNI_ids_values_index UNI_ahex_values_index #define UNI_idsb_values_index UNI_ahex_values_index #define UNI_idst_values_index UNI_ahex_values_index -#define UNI_in_values_index 12 -#define UNI_inpc_values_index 13 -#define UNI_insc_values_index 14 -#define UNI_jg_values_index 15 +#define UNI_in_values_index 14 +#define UNI_inpc_values_index 15 +#define UNI_insc_values_index 16 +#define UNI_jg_values_index 17 #define UNI_joinc_values_index UNI_ahex_values_index -#define UNI_jt_values_index 16 -#define UNI_lb_values_index 17 +#define UNI_jt_values_index 18 +#define UNI_lb_values_index 19 #define UNI_loe_values_index UNI_ahex_values_index #define UNI_lower_values_index UNI_ahex_values_index #define UNI_math_values_index UNI_ahex_values_index #define UNI_nchar_values_index UNI_ahex_values_index -#define UNI_nfcqc_values_index 18 -#define UNI_nfdqc_values_index 19 +#define UNI_nfcqc_values_index 20 +#define UNI_nfdqc_values_index 21 #define UNI_nfkcqc_values_index UNI_nfcqc_values_index #define UNI_nfkdqc_values_index UNI_nfdqc_values_index -#define UNI_nt_values_index 20 -#define UNI_nv_values_index 21 +#define UNI_nt_values_index 22 +#define UNI_nv_values_index 23 #define UNI_patsyn_values_index UNI_ahex_values_index #define UNI_patws_values_index UNI_ahex_values_index #define UNI_pcm_values_index UNI_ahex_values_index #define UNI_qmark_values_index UNI_ahex_values_index #define UNI_radical_values_index UNI_ahex_values_index #define UNI_ri_values_index UNI_ahex_values_index -#define UNI_sb_values_index 22 -#define UNI_sc_values_index 23 +#define UNI_sb_values_index 24 +#define UNI_sc_values_index 25 #define UNI_scx_values_index UNI_sc_values_index #define UNI_sd_values_index UNI_ahex_values_index #define UNI_sterm_values_index UNI_ahex_values_index #define UNI_term_values_index UNI_ahex_values_index #define UNI_uideo_values_index UNI_ahex_values_index #define UNI_upper_values_index UNI_ahex_values_index -#define UNI_vo_values_index 24 +#define UNI_vo_values_index 26 #define UNI_vs_values_index UNI_ahex_values_index -#define UNI_wb_values_index 25 +#define UNI_wb_values_index 27 #define UNI_wspace_values_index UNI_ahex_values_index #define UNI_xidc_values_index UNI_ahex_values_index #define UNI_xids_values_index UNI_ahex_values_index @@ -395124,27 +419682,27 @@ UNI_wb_values #define GCB_Maybe_Emoji_NonBreak 4 static const U8 GCB_table[17][17] = { - /* 'XPG' stands for 'XPG_XX'; 'edg' stands for 'EDGE'; u stands - * for 'unused in this Unicode release (and the data in the row - * or column are garbage) */ -/* XX CR CN EX L LF LV LVT PP RI SM T V XPG ZWJ edg u */ -/* XX */ { 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1 }, -/* CR */ { 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, -/* CN */ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, -/* EX */ { 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 3 }, -/* L */ { 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1 }, -/* LF */ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, -/* LV */ { 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1 }, -/* LVT*/ { 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1 }, -/* PP */ { 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 }, -/* RI */ { 1, 1, 1, 0, 1, 1, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 1 }, -/* SM */ { 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1 }, -/* T */ { 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1 }, -/* V */ { 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1 }, -/* XPG*/ { 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1 }, -/* ZWJ*/ { 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 4, 0, 1, 0 }, -/* edg*/ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1 }, -/* u */ { 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0 } + /* 'edg' stands for 'EDGE'; 'EPX' stands for 'ExtPict_XX'; u + * stands for 'unused in this Unicode release (and the data in + * its row and column are garbage) */ +/* XX CN CR edg EPX EX L LF LV LVT PP RI SM T V ZWJ u */ +/* XX */ { 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1 }, +/* CN */ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, +/* CR */ { 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, +/* edg*/ { 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, +/* EPX*/ { 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1 }, +/* EX */ { 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 3 }, +/* L */ { 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1 }, +/* LF */ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, +/* LV */ { 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1 }, +/* LVT*/ { 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1 }, +/* PP */ { 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +/* RI */ { 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 2, 0, 1, 1, 0, 1 }, +/* SM */ { 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1 }, +/* T */ { 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1 }, +/* V */ { 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1 }, +/* ZWJ*/ { 1, 1, 1, 1, 4, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0 }, +/* u */ { 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0 } }; #define LB_NOBREAK 0 @@ -395158,48 +419716,51 @@ static const U8 GCB_table[17][17] = { #define LB_RI_then_RI 15 #define LB_various_then_PO_or_PR 32 -static const U8 LB_table[39][39] = { - /* 'edg' stands for 'EDGE' */ -/* AL BA BB B2 SY CR CP CL CM CB EB EM EX GL H2 H3 HL HY ID IS IN JL JT JV LF BK NL NS NU OP PO PR QU RI SP WJ ZWJ ZW edg */ -/* AL */ { 0, 0, 1, 1, 2, 0, 2, 2, 0, 1, 1, 1, 2, 0, 1, 1, 0, 0, 1, 2, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 }, -/* BA */ {14, 0,14,14, 2, 0, 2, 2, 0, 1,14,14, 2,14,14,14,14, 0,14, 2,14,14,14,14, 0, 0, 0, 0,14,14,14,14, 0,14, 0, 0, 0, 0, 1 }, -/* BB */ { 0, 0, 0, 0, 2, 0, 2, 2, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }, -/* B2 */ { 1, 0, 1, 2, 2, 0, 2, 2, 0, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 2, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1 }, -/* SY */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 1, 1, 2, 0, 1, 1, 0, 0, 1, 2, 1, 1, 1, 1, 0, 0, 0, 0,12, 1,33,33, 0, 1, 0, 0, 0, 0, 1 }, -/* CR */ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, -/* CP */ { 0, 0, 1, 1, 2, 0, 2, 2, 0, 1, 1, 1, 2, 0, 1, 1, 0, 0, 1, 2, 1, 1, 1, 1, 0, 0, 0, 2, 0, 1,33,33, 0, 1, 0, 0, 0, 0, 1 }, -/* CL */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 2, 1, 1, 1, 1, 0, 0, 0, 2, 1, 1,33,33, 0, 1, 0, 0, 0, 0, 1 }, -/* CM */ { 3, 3, 3, 3, 3, 0, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 0, 1 }, -/* CB */ { 1, 1, 1, 1, 2, 0, 2, 2, 0, 1, 1, 1, 2, 0, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1 }, -/* EB */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 1, 0, 2, 0, 1, 1, 1, 0, 1, 2, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1 }, -/* EM */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 2, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1 }, -/* EX */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 2, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1 }, -/* GL */ { 0, 0, 0, 0, 2, 0, 2, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }, -/* H2 */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 2, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1 }, -/* H3 */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 2, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1 }, -/* HL */ { 0, 0, 1, 1, 2, 0, 2, 2, 0, 1, 1, 1, 2, 0, 1, 1, 0, 0, 1, 2, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 }, -/* HY */ {14, 0,14,14, 2, 0, 2, 2, 0, 1,14,14, 2,14,14,14,14, 0,14, 2,14,14,14,14, 0, 0, 0, 0,13,14,14,14, 0,14, 0, 0, 0, 0, 1 }, -/* ID */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 2, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1 }, -/* IS */ { 0, 0, 1, 1, 2, 0, 2, 2, 0, 1, 1, 1, 2, 0, 1, 1, 0, 0, 1, 2, 1, 1, 1, 1, 0, 0, 0, 0,12, 1,33,33, 0, 1, 0, 0, 0, 0, 1 }, -/* IN */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 2, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1 }, -/* JL */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 1, 1, 2, 0, 0, 0, 1, 0, 1, 2, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1 }, -/* JT */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 2, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1 }, -/* JV */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 2, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1 }, -/* LF */ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, -/* BK */ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, -/* NL */ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, -/* NS */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 2, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1 }, -/* NU */ { 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 2, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 }, -/* OP */ { 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 1 }, -/* PO */ { 0, 0, 1, 1, 2, 0, 2, 2, 0, 1, 1, 1, 2, 0, 1, 1, 0, 0, 1, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0,10, 1, 1, 0, 1, 0, 0, 0, 0, 1 }, -/* PR */ { 0, 0, 1, 1, 2, 0, 2, 2, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0,10, 1, 1, 0, 1, 0, 0, 0, 0, 1 }, -/* QU */ { 0, 0, 0, 0, 2, 0, 2, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1 }, -/* RI */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 2, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0,15, 0, 0, 0, 0, 1 }, -/* SP */ { 7, 7, 7, 7, 8, 0, 8, 8, 7, 7, 7, 7, 8, 7, 7, 7, 7, 7, 7, 8, 7, 7, 7, 7, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 0, 8, 7, 0, 1 }, -/* WJ */ { 0, 0, 0, 0, 2, 0, 2, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }, -/* ZWJ*/ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }, -/* ZW */ { 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1 }, -/* edg*/ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +static const U8 LB_table[41][41] = { + /* 'EAO' stands for 'East_Asian_OP'; 'edg' stands for 'EDGE'; u stands for 'unused in this Unicode release (and the data in its row and + * column are garbage) */ +/* AL B2 BA BB BK CB CL CM CP CR EAO EB edg EM EX GL H2 H3 HL HY ID IN IS JL JT JV LF NL NS NU OP PO PR QU RI SP SY WJ ZW ZWJ u */ +/* AL */ { 0, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 0, 0, 1, 0, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 2 }, +/* B2 */ { 1, 2, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 0, 2, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 2, 0, 0, 0, 2 }, +/* BA */ {14,14, 0,14, 0, 1, 2, 0, 2, 0, 14,14, 1,14, 2,14,14,14,14, 0,14,13, 2,14,14,14, 0, 0, 0,14,14,14,14, 0,14, 0, 2, 0, 0, 0, 2 }, +/* BB */ { 0, 0, 0, 0, 0, 1, 2, 0, 2, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2 }, +/* BK */ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, +/* CB */ { 1, 1, 1, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 2, 0, 0, 0, 2 }, +/* CL */ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 0, 2, 1, 1, 1, 0, 0, 2, 1, 1,33,33, 0, 1, 0, 2, 0, 0, 0, 2 }, +/* CM */ { 3, 3, 3, 3, 0, 3, 3, 0, 3, 0, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 0, 3, 3 }, +/* CP */ { 0, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 0, 0, 1, 0, 2, 1, 1, 1, 0, 0, 2, 0, 1,33,33, 0, 1, 0, 2, 0, 0, 0, 2 }, +/* CR */ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, +/* EAO*/ { 2, 2, 2, 2, 0, 2, 2, 2, 2, 0, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 2, 2 }, +/* EB */ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 0, 2, 0, 1, 1, 1, 0, 1, 0, 2, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 2, 0, 0, 0, 2 }, +/* edg*/ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +/* EM */ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 0, 2, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 2, 0, 0, 0, 2 }, +/* EX */ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 0, 2, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 2, 0, 0, 0, 2 }, +/* GL */ { 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2 }, +/* H2 */ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 0, 2, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 2, 0, 0, 0, 2 }, +/* H3 */ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 0, 2, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 2, 0, 0, 0, 2 }, +/* HL */ { 0, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 0, 0, 1, 0, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 2 }, +/* HY */ {14,14, 0,14, 0, 1, 2, 0, 2, 0, 14,14, 1,14, 2,14,14,14,14, 0,14,13, 2,14,14,14, 0, 0, 0,13,14,14,14, 0,14, 0, 2, 0, 0, 0, 2 }, +/* ID */ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 0, 2, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 2, 0, 0, 0, 2 }, +/* IN */ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 0, 2, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 2, 0, 0, 0, 2 }, +/* IS */ { 0, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 0, 0, 1, 0, 2, 1, 1, 1, 0, 0, 0,12, 1,33,33, 0, 1, 0, 2, 0, 0, 0, 2 }, +/* JL */ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 0, 0, 1, 0, 1, 0, 2, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 2, 0, 0, 0, 2 }, +/* JT */ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 0, 2, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 2, 0, 0, 0, 2 }, +/* JV */ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 0, 2, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 2, 0, 0, 0, 2 }, +/* LF */ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, +/* NL */ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, +/* NS */ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 0, 2, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 2, 0, 0, 0, 2 }, +/* NU */ { 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 2, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 }, +/* OP */ { 2, 2, 2, 2, 0, 2, 2, 2, 2, 0, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 2, 2 }, +/* PO */ { 0, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 0, 0, 1, 0, 2, 1, 1, 1, 0, 0, 0, 0,10, 1, 1, 0, 1, 0, 2, 0, 0, 0, 2 }, +/* PR */ { 0, 1, 0, 1, 0, 1, 2, 0, 2, 0, 10, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,10, 1, 1, 0, 1, 0, 2, 0, 0, 0, 2 }, +/* QU */ { 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 2, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2 }, +/* RI */ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 0, 2, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0,15, 0, 2, 0, 0, 0, 2 }, +/* SP */ { 7, 7, 7, 7, 0, 7, 8, 7, 8, 0, 7, 7, 1, 7, 8, 7, 7, 7, 7, 7, 7, 7, 8, 7, 7, 7, 0, 0, 7, 7, 7, 7, 7, 7, 7, 0, 8, 8, 0, 7, 8 }, +/* SY */ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 0, 0, 1, 0, 2, 1, 1, 1, 0, 0, 0,12, 1,33,33, 0, 1, 0, 2, 0, 0, 0, 2 }, +/* WJ */ { 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2 }, +/* ZW */ { 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1 }, +/* ZWJ*/ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +/* u */ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 0, 2, 1, 1, 1, 0, 0, 2, 1, 1,33,33, 0, 1, 0, 2, 0, 0, 0, 2 } }; #define WB_NOBREAK 0 @@ -395215,34 +419776,34 @@ static const U8 LB_table[39][39] = { #define WB_RI_then_RI 16 static const U8 WB_table[23][23] = { - /* 'Ext' stands for 'Extend'; 'XPG' stands for 'XPG_LE'; 'XPH' stands for 'XPG_XX'; - * 'edg' stands for 'EDGE'; 'hs' stands for 'Perl_Tailored_HSpace'; u stands for - * 'unused in this Unicode release (and the data in the row or column are garbage) - * */ -/* XX LE CR DQ Ext EX FO HL KA LF ML MN MB NL NU hs RI SQ XPG XPH ZWJ edg u */ -/* XX */ { 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1 }, -/* LE */ { 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 9, 1, 9, 1, 0, 1, 1, 9, 1, 1, 0, 1, 1 }, -/* CR */ { 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1 }, -/* DQ */ { 1, 1, 1, 1, 0, 1, 0, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1 }, -/* Ext*/ { 3, 3, 1, 3, 0, 3, 0, 3, 3, 1, 3, 3, 3, 1, 3, 1, 3, 3, 3, 3, 0, 1, 3 }, -/* EX */ { 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1 }, -/* FO */ { 3, 3, 1, 3, 0, 3, 0, 3, 3, 1, 3, 3, 3, 1, 3, 1, 3, 3, 3, 3, 0, 1, 3 }, -/* HL */ { 1, 0, 1, 7, 0, 0, 0, 0, 1, 1, 9, 1, 9, 1, 0, 1, 1, 8, 0, 1, 0, 1, 1 }, -/* KA */ { 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1 }, -/* LF */ { 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1 }, -/* ML */ { 1,11, 1, 1, 0, 1, 0,11, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 11, 1, 0, 1, 1 }, -/* MN */ { 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1,13, 1, 1, 1, 1, 1, 0, 1, 1 }, -/* MB */ { 1,11, 1, 1, 0, 1, 0,11, 1, 1, 1, 1, 1, 1,13, 1, 1, 1, 11, 1, 0, 1, 1 }, -/* NL */ { 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1 }, -/* NU */ { 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1,15,15, 1, 0, 1, 1,15, 0, 1, 0, 1, 1 }, -/* hs */ { 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 2, 1, 1, 1, 1, 0, 1, 1 }, -/* RI */ { 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,16, 1, 1, 1, 0, 1, 1 }, -/* SQ */ { 1,11, 1, 1, 0, 1, 0,11, 1, 1, 1, 1, 1, 1,13, 1, 1, 1, 11, 1, 0, 1, 1 }, -/* XPG*/ { 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 9, 1, 9, 1, 0, 1, 1, 9, 0, 1, 0, 1, 1 }, -/* XPH*/ { 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1 }, -/* ZWJ*/ { 3, 3, 1, 3, 0, 3, 0, 3, 3, 1, 3, 3, 3, 1, 3, 1, 3, 3, 0, 0, 0, 1, 0 }, -/* edg*/ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1 }, -/* u */ { 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0 } + /* 'edg' stands for 'EDGE'; 'EPL' stands for 'ExtPict_LE'; 'EPX' stands for + * 'ExtPict_XX'; 'Ext' stands for 'Extend'; 'hs' stands for 'Perl_Tailored_HSpace'; + * u stands for 'unused in this Unicode release (and the data in its row and column + * are garbage) */ +/* XX CR DQ edg EPL EPX EX Ext FO HL hs KA LE LF MB ML MN NL NU RI SQ ZWJ u */ +/* XX */ { 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1 }, +/* CR */ { 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1 }, +/* DQ */ { 1, 1, 1, 1, 1, 1, 1, 0, 0, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1 }, +/* edg*/ { 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, +/* EPL*/ { 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 9, 9, 1, 1, 0, 1, 9, 0, 1 }, +/* EPX*/ { 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1 }, +/* EX */ { 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1 }, +/* Ext*/ { 3, 1, 3, 1, 3, 3, 3, 0, 0, 3, 1, 3, 3, 1, 3, 3, 3, 1, 3, 3, 3, 0, 3 }, +/* FO */ { 3, 1, 3, 1, 3, 3, 3, 0, 0, 3, 1, 3, 3, 1, 3, 3, 3, 1, 3, 3, 3, 0, 3 }, +/* HL */ { 1, 1, 7, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 9, 9, 1, 1, 0, 1, 8, 0, 1 }, +/* hs */ { 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 2, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1 }, +/* KA */ { 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1 }, +/* LE */ { 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 9, 9, 1, 1, 0, 1, 9, 0, 1 }, +/* LF */ { 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1 }, +/* MB */ { 1, 1, 1, 1, 11, 1, 1, 0, 0,11, 1, 1,11, 1, 1, 1, 1, 1,13, 1, 1, 0, 1 }, +/* ML */ { 1, 1, 1, 1, 11, 1, 1, 0, 0,11, 1, 1,11, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1 }, +/* MN */ { 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,13, 1, 1, 0, 1 }, +/* NL */ { 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1 }, +/* NU */ { 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1,15, 1,15, 1, 0, 1,15, 0, 1 }, +/* RI */ { 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,16, 1, 0, 1 }, +/* SQ */ { 1, 1, 1, 1, 11, 1, 1, 0, 0,11, 1, 1,11, 1, 1, 1, 1, 1,13, 1, 1, 0, 1 }, +/* ZWJ*/ { 3, 1, 3, 1, 0, 0, 3, 0, 0, 3, 1, 3, 3, 1, 3, 3, 3, 1, 3, 3, 3, 0, 0 }, +/* u */ { 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0 } }; #endif /* defined(PERL_IN_REGEXEC_C) */ @@ -395255,55 +419816,57 @@ static const U8 WB_table[23][23] = { #define MAX_FOLD_FROMS 3 /* Generated from: - * d34c77b7e7a94986cc82056919f4ffc1503b73091561e16bd8ef145ac0fd04c5 lib/Unicode/UCD.pm - * 5e91b649379ec79af7cfb6b09410a24557cba4c6d733cd0a2b8a78a1448736d2 lib/unicore/ArabicShaping.txt - * f5feb19cd084b2b1568fbc0f94f4b4b54941406e7fb36c7570f8352fd5022dbe lib/unicore/BidiBrackets.txt - * e6cbd8ffe94f2e0fbfa6695d6c06c1e72eef7d3aa93cb6329d111285198b5e62 lib/unicore/BidiMirroring.txt - * a28b205afe8625fffdb6544a5fe14cf02b91493d9900f07820fa2102a17548f7 lib/unicore/Blocks.txt - * 9c772627c6ee77eea6a17b42927b8ee28ca05dc65d6a511062104baaf3d12294 lib/unicore/CaseFolding.txt - * abc8394c5bde62453118b00c1c5842160a04d7fffb2e829ee5426b846596d081 lib/unicore/CompositionExclusions.txt - * 2fc081011d8fabaf7cf4937732dd5a6d6a57e492c43f3adfeded513387ee0ec3 lib/unicore/DAge.txt - * a6eb7a8671fb532fbd88c37fd7b20b5b2e7dbfc8b121f74c14abe2947db0da68 lib/unicore/DCoreProperties.txt - * 92dcdda84142194a1596f22180fcdf8c0e7f86897f09cc9203c7dc636c549f5f lib/unicore/DNormalizationProps.txt - * 904500178b2e752635bef27aaed3a2a3718a100bce35ff96b3890be7a8315d8f lib/unicore/EastAsianWidth.txt - * 1989b03d93023d8f5cc33eebf0d2ea80c8bd8f8c97843059ea039acb582c2078 lib/unicore/EmojiData.txt - * d7930c2a7318e66b4ba756d5e5b41fbc586c2ad43d450ae9d320a758510bae2e lib/unicore/EquivalentUnifiedIdeograph.txt - * 8606af08712a8c18fe268d418e2e5a87eddee6e190cce4c2d5a76b4fadf035e8 lib/unicore/HangulSyllableType.txt - * 49a1bf18b048454154881f6a8a605b5e2fc73e85fcc4df1cb26d52e8c2aeb9bf lib/unicore/IndicPositionalCategory.txt - * 1b6f3ef6e00e5b2e2a93d2d3c954ca1cce368599c5f11874cd0f0ce222d4637b lib/unicore/IndicSyllabicCategory.txt - * 285c5c1ae458bc3ccd6a1398a94d2d67ce6bc1d7fc0f098762836050345e9434 lib/unicore/Jamo.txt - * 961f842fc70b5afd1d82c6645e68c10d1f701382aed38ae38cb2ff27f671903c lib/unicore/LineBreak.txt - * ff61a0687d2f32c0dd1094254b8bde967883b43c2d4d50fd17531d498e41ab2c lib/unicore/NameAliases.txt - * d3eb9a288ebeaf9de1237989f490705e287b6f610b59d2459fb1b7c2d8e39c39 lib/unicore/NamedSequences.txt - * d30d3ee430cf3527449d024954f053e419fa4aa2246eb59e5cd8d621af0c4b3f lib/unicore/PropList.txt - * efce54f7c715a332c19b3d14c6a0eea30c6cde91caf6ff0d21c755be933736f4 lib/unicore/PropValueAliases.txt - * d3cc3f9f0b6a8f0b7ef1d6ef202675426c28f4a75de01fc69ed977a93a00982b lib/unicore/PropertyAliases.txt - * 3746848c181b5dbc1e614dfac9b8a5e3568e6525c693ac14e692ac55dec57e91 lib/unicore/ScriptExtensions.txt - * e6313a8edfd24f36c7a006fbcf1d1b7245b5dd009c6dde80441f0da08b822c43 lib/unicore/Scripts.txt - * 817ce2e9edca8e075a153f54b8f3b020345e37652cd2bda9b1495c366af17e7e lib/unicore/SpecialCasing.txt - * 93ab1acd8fd9d450463b50ae77eab151a7cda48f98b25b56baed8070f80fc936 lib/unicore/UnicodeData.txt - * ec5ba64af58297a46de17848eb984d2b231adb304de92e9d0d3befdbf9dc2551 lib/unicore/VerticalOrientation.txt - * 95bd55cf803b93eb0b4990cf0e1d70ede263b36412d9c6921fd6f15cef058961 lib/unicore/auxiliary/GCBTest.txt - * 39d73448fd257e6082f83ddf4c8bf6feb191e85dc8fc56b1a8512482de5e3dea lib/unicore/auxiliary/GraphemeBreakProperty.txt - * f385e70f79f5959ae66d64b00f4bda39db6cef78e5363a0cdd88db46eafc6c8f lib/unicore/auxiliary/LBTest.txt - * 7d6c909af97d0ab545a132d412f6e4e65c7eb5158514a7feb9bf00bcd05875f9 lib/unicore/auxiliary/SBTest.txt - * c47d674ef4170c46185bf56f7a4c6627f65f012295e0994f7dc4aea51f8fd8cf lib/unicore/auxiliary/SentenceBreakProperty.txt - * 3e3320bbbe775de7f1a0b9a30021eb949116a9b05cb461c90596c5ecf1743831 lib/unicore/auxiliary/WBTest.txt - * f221f89fe3bb3becc00de726d5694c4b7f464c316baff6d339b2ff3900bcb96c lib/unicore/auxiliary/WordBreakProperty.txt - * db2c41c618bab54b00e58223ad11cec550f9b9fd1a471de236e660da92fe4870 lib/unicore/extracted/DBidiClass.txt - * fecd8a1c49935d794c4c1012f4158aa536a13049a4c10d01aaf7b5f90f3b2cbc lib/unicore/extracted/DBinaryProperties.txt - * db6f38fb4aa8b9181b5e6a9f320de9d5c2c9b5687116a619b3cb90138b025e0b lib/unicore/extracted/DCombiningClass.txt - * 2524f69c175831fd84bfbaf13ea37992f41db167d728c51b1d0002c1d0b130b0 lib/unicore/extracted/DDecompositionType.txt - * 16852301d54ae59b5cfe0daa6b8e17fb688ed055d59b2a5a11eaafc650cc9d30 lib/unicore/extracted/DEastAsianWidth.txt - * 78f898b988049a5bea5039cea6ffe87a92596859ac660a6c438519b512fe2ee6 lib/unicore/extracted/DGeneralCategory.txt - * 33441692403901287c834f96bd33b671133a6f74e2732c61a497608b9e434932 lib/unicore/extracted/DJoinGroup.txt - * a792ac5ef602e3bace679cc96d7491701dcdb73d81c782253de88fdcc5e70e50 lib/unicore/extracted/DJoinType.txt - * 78e2600e24fa7d5ab62117de50b382f8b31b08401c37a0782c38dacb340b64e7 lib/unicore/extracted/DLineBreak.txt - * 1bde4ad73e271c6349fbd1972e54f38bba5cc1900c28f678e79b9e8909b31793 lib/unicore/extracted/DNumType.txt - * 6278722699123f3890e4b1cc42011e96d8960e4958a3b93484361530983d2611 lib/unicore/extracted/DNumValues.txt - * b3d90fc23817ea4e33e9a90107c0a6c7b23314efd5712905ed172624d5524693 lib/unicore/mktables - * a712c758275b460d18fa77a26ed3589689bb3f69dcc1ea99b913e32db92a5cd2 lib/unicore/version + * d60b1a3dffe16c4aaaf3f00d21993bb320d05e9828b106182214764d4c69935c lib/Unicode/UCD.pm + * ce96627d4fc91b4fd886c409caeb9b76cf7bd345e12f05c6701add7f233f6437 lib/unicore/ArabicShaping.txt + * 0e69eef3da722cc104522d8372e86d5b86bb7afcc761b0c991e39e832294946d lib/unicore/BidiBrackets.txt + * a00d9d21585106a52113fb7b1d3d0373a5835be72e76862fb559ebddd474d70e lib/unicore/BidiMirroring.txt + * 81a82b6a9fcf1a9c12f588d7a1decd73a9afdc4cac95b0eb7e576e7942d6c19f lib/unicore/Blocks.txt + * 99d231d7c91688bbe8ca8ccebcc2f46b5b222f844babe4827295bae11e2abe5f lib/unicore/CaseFolding.txt + * 38badafd818d8405324fe298c0676be0c95186368c84b5368375fd871a645144 lib/unicore/CompositionExclusions.txt + * e779a443d3aa2a3166a15becaa2b737c922480e32c0453d5956093633555078f lib/unicore/DAge.txt + * a5d45f59b39deaab3c72ce8c1a2e212a5e086dff11b1f9d5bb0e352642e82248 lib/unicore/DCoreProperties.txt + * 3ac44e11c84bdaf6b207d2c2c20eed857ae17052393fc7f71b0fe951186ba906 lib/unicore/DNormalizationProps.txt + * 4f822ec7a9ebbb3138ad29bade8b9688d25b39c7a3c0b7431f01e7229e4fcb6e lib/unicore/EastAsianWidth.txt + * fc535aa1047a70105ab9a22c2b4c3f363a2ff02fe48ebbc5eeb9873b2752ff0b lib/unicore/EquivalentUnifiedIdeograph.txt + * b9c5158ce944d2fec57e0e4ecb716bdabfc3bdde73525f1772fe03f61a30d473 lib/unicore/HangulSyllableType.txt + * 36c1b2a626ff1fb23b8b21e6ea8712698f8ce668dded1cb48b8ddf6a6a1b04e9 lib/unicore/IdStatus.txt + * 4857c4ffa3898e6128b2d46b0a02e499a663fb91464a69ef3611096f01293acc lib/unicore/IdType.txt + * 69197b019fa5f2fb0d8c6ed1ed8acb9f2e8b5b8f45a947953ffa652f3bf54983 lib/unicore/IndicPositionalCategory.txt + * 6604e2f0fde7428675364aa0006bc686b79488dcc60ae8cb29800af2be3352e8 lib/unicore/IndicSyllabicCategory.txt + * 84ead63924aaa74b988b2eaf254a8733276ed108633ce2ef77a9ee1de7818162 lib/unicore/Jamo.txt + * d5abcd8f54c8a2aa912924c485ccf7f968ad98feaa303d8e9a29ad89172f1faf lib/unicore/LineBreak.txt + * 985128e8c8b2540233331d9b27d897d2c23bd5bcf1d05da960befce6efc59542 lib/unicore/NameAliases.txt + * 27282b8aa01d4d0c44aef436cb74195ae8639ffa187aeee4e6247af76febea76 lib/unicore/NamedSequences.txt + * 485b5a3ed25dbf1f94dfa5a9b69d8b4550ffd0c33045ccc55ccfd7c80b2a40cf lib/unicore/PropList.txt + * 6b3902e9268cd843fe65cbdea992108c9528343ec0679f800b96f356bb553e5a lib/unicore/PropValueAliases.txt + * 2bd5777847e3d6add3c7e5c0d1393ddcab89e5a0ac3ff498cb0c53041f0b86e4 lib/unicore/PropertyAliases.txt + * 03a61dc89422e44cc2b73e8e893321007880ab69e2a4d281c0f1bc29c602b9d0 lib/unicore/ScriptExtensions.txt + * 9a5ed1ec9b5f0d7147e9371ad792ab39203611af7637cff2aa4a5c663b172cde lib/unicore/Scripts.txt + * 6424312f1dc39b22e0ff9c0ffb13dfad424d9b03e6a6dc6bca941f6bf5ef1ffd lib/unicore/SpecialCasing.txt + * bdbffbbfc8ad4d3a6d01b5891510458f3d36f7170422af4ea2bed3211a73e8bb lib/unicore/UnicodeData.txt + * 160f41816234addb511901d5f21febd69574578dd93de6ef8153e35693325575 lib/unicore/VerticalOrientation.txt + * 32dfb37d21db530529a6ec3dc13d96f21f8e7c7faf7ff3db8a9760cd76cec81d lib/unicore/auxiliary/GCBTest.txt + * 2bd3c5e2d62701ff81fb3ec318e179a4618cabb1493b1e0dd2b4e7e56c5437c4 lib/unicore/auxiliary/GraphemeBreakProperty.txt + * c51fbebfa82a0f36473b44bfd71d5ef6cb6a1f81fb313375dc9a1910d79bb2b6 lib/unicore/auxiliary/LBTest.txt + * 80b0107750818d8f370bd120b6fe56b6855b60581f72affe8b60409a469b4b65 lib/unicore/auxiliary/SBTest.txt + * 09e3166ebab166ac630a227f77f4e794ebd433271abd5588f5a67e7f199c71ee lib/unicore/auxiliary/SentenceBreakProperty.txt + * bf5373ce28a5df06796c93dc159dd15a997bb2950c92704b40ae8190cfc3716d lib/unicore/auxiliary/WBTest.txt + * a2b7373cf2fe3fa3b26dbb53405ca849985f771ff47f1c61743978003ff80499 lib/unicore/auxiliary/WordBreakProperty.txt + * d2686f400a638c80775d7c662556fb8fa8dd3bbe4aa548d9d31624264c6e1bb1 lib/unicore/emoji/emoji.txt + * b827ae5da8c2b08947cc9a120a7b7fd2f1676fb160b508df78075381635b127c lib/unicore/extracted/DBidiClass.txt + * 6fdc5b5ef40444a8f0c772e6b67c00498d4216fe0c0fdf76744ce338f2ad3810 lib/unicore/extracted/DBinaryProperties.txt + * e14928a5bf6ad5958a80332bd42e96e14420080a95c660e5da29384e496755d0 lib/unicore/extracted/DCombiningClass.txt + * 579a03281fbe87b78d5d9a8523de4d255edd7e4ca6eab0e4c7729de97e9b89b1 lib/unicore/extracted/DDecompositionType.txt + * ad83c59b257e9d480ffd3001d4ac240c5fed7cb1919453e1c4e8877035256bcd lib/unicore/extracted/DEastAsianWidth.txt + * 4502f0969e4e6558c4b4c6ca4c23dad70b863d61dd3d5eed1a62a6c3c99fd570 lib/unicore/extracted/DGeneralCategory.txt + * 00bb88b89e2adb646f3177f9444e2d3192386b81a5de9556104b338274b253e1 lib/unicore/extracted/DJoinGroup.txt + * ac835b6e11a60c9820d3cf2d1cb0558dd68efb8f53f404a51632e4726690a6d7 lib/unicore/extracted/DJoinType.txt + * baba9dfc133e3cb770a89aaf0973b1341fa61c2da6c176baf6428898b3b568d8 lib/unicore/extracted/DLineBreak.txt + * 6d4a8c945dd7db83ed617cbb7d937de7f4ecf016ff22970d846e996a7c9a2a5d lib/unicore/extracted/DNumType.txt + * 5b7c14380d5cceeaffcfbc18db1ed936391d2af2d51f5a41f1a17b692c77e59b lib/unicore/extracted/DNumValues.txt + * ee0dd174fd5b158d82dfea95d7d822ca0bfcd490182669353dca3ab39a8ee807 lib/unicore/mktables + * 50b85a67451145545a65cea370dab8d3444fbfe07e9c34cef560c5b7da9d3eef lib/unicore/version * 2680b9254eb236c5c090f11b149605043e8c8433661b96efc4a42fb4709342a5 regen/charset_translations.pl - * 03e51b0f07beebd5da62ab943899aa4934eee1f792fa27c1fb638c33bf4ac6ea regen/mk_PL_charclass.pl - * 61ea8132bb9ea5c637609e2d026b0b85ce17d6bec544c2f08ce411e6f65e8386 regen/mk_invlists.pl + * 6bbad21de0848e0236b02f34f5fa0edd3cdae9ba8173cc9469a5513936b9e728 regen/mk_PL_charclass.pl + * 7a7e778e903508b1c244a77bae57ec57606ab775bb5f81719dbb122eb66d4259 regen/mk_invlists.pl * ex: set ro: */ diff --git a/gnu/usr.bin/perl/config_h.SH b/gnu/usr.bin/perl/config_h.SH index ef135e2528d..08c5923ef81 100644 --- a/gnu/usr.bin/perl/config_h.SH +++ b/gnu/usr.bin/perl/config_h.SH @@ -381,7 +381,7 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un /* HAS_REGCOMP: * This symbol, if defined, indicates that the regcomp() routine is - * available to do some regular patern matching (usually on POSIX.2 + * available to do some regular pattern matching (usually on POSIX.2 * conforming systems). */ #$d_regcomp HAS_REGCOMP /* POSIX.2 */ @@ -1491,6 +1491,10 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un /* HASATTRIBUTE_WARN_UNUSED_RESULT: * Can we handle GCC attribute for warning on unused results */ +/* HASATTRIBUTE_ALWAYS_INLINE: + * Can we handle GCC attribute for functions that should always be + * inlined. + */ #$d_attribute_deprecated HASATTRIBUTE_DEPRECATED /**/ #$d_attribute_format HASATTRIBUTE_FORMAT /**/ #$d_printf_format_null PRINTF_FORMAT_NULL_OK /**/ @@ -1500,6 +1504,7 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un #$d_attribute_pure HASATTRIBUTE_PURE /**/ #$d_attribute_unused HASATTRIBUTE_UNUSED /**/ #$d_attribute_warn_unused_result HASATTRIBUTE_WARN_UNUSED_RESULT /**/ +#$d_attribute_always_inline HASATTRIBUTE_ALWAYS_INLINE /**/ /* HAS_BACKTRACE: * This symbol, if defined, indicates that the backtrace() routine is @@ -1939,6 +1944,10 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un * This symbol, if defined, indicates the availability of * struct sockaddr_in6; */ +/* HAS_SOCKADDR_STORAGE: + * This symbol, if defined, indicates the availability of + * struct sockaddr_storage; + */ /* HAS_SIN6_SCOPE_ID: * This symbol, if defined, indicates that the struct sockaddr_in6 * structure has a member called sin6_scope_id. @@ -1963,6 +1972,7 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un #$d_sockpair HAS_SOCKETPAIR /**/ #$d_sockaddr_sa_len HAS_SOCKADDR_SA_LEN /**/ #$d_sockaddr_in6 HAS_SOCKADDR_IN6 /**/ +#$d_sockaddr_storage HAS_SOCKADDR_STORAGE /**/ #$d_sin6_scope_id HAS_SIN6_SCOPE_ID /**/ #$d_ip_mreq HAS_IP_MREQ /**/ #$d_ip_mreq_source HAS_IP_MREQ_SOURCE /**/ @@ -4231,11 +4241,11 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un #$use64bitall USE_64_BIT_ALL /**/ #endif -/* USE_CBACKTRACE: +/* USE_C_BACKTRACE: * This symbol, if defined, indicates that Perl should * be built with support for backtrace. */ -#$usecbacktrace USE_CBACKTRACE /**/ +#$usecbacktrace USE_C_BACKTRACE /**/ /* USE_DTRACE: * This symbol, if defined, indicates that Perl should @@ -5122,6 +5132,12 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un #$d_ttyname_r HAS_TTYNAME_R /**/ #define TTYNAME_R_PROTO $ttyname_r_proto /**/ +/* HAS_WCRTOMB: + * This symbol, if defined, indicates that the wcrtomb routine is + * available to convert a wide character into a multi-byte character. + */ +#$d_wcrtomb HAS_WCRTOMB /**/ + /* I_MACH_CTHREADS: * This symbol, if defined, indicates to the C program that it should * include . diff --git a/gnu/usr.bin/perl/configpm b/gnu/usr.bin/perl/configpm index ad22cc0fdd5..8c4bd14ffcf 100644 --- a/gnu/usr.bin/perl/configpm +++ b/gnu/usr.bin/perl/configpm @@ -860,6 +860,8 @@ open(CONFIG_POD, '>', $Config_POD) or die "Can't open $Config_POD: $!"; print CONFIG_POD <<'ENDOFTAIL'; =head1 NAME +=for comment Generated by configpm. Any changes made here will be lost! + Config - access Perl configuration information =head1 SYNOPSIS @@ -1023,16 +1025,12 @@ sub process { print CONFIG_POD <", "$Config_heavy.install" - or die "Can't open install $Config_heavy: $!\n"; - print INSTALL_CONFIG_HEAVY $install_heavy_txt; - close INSTALL_CONFIG_HEAVY; - print "updated install $Config_heavy\n"; - open CONFIG, ">", $Config_PM or die "Can't open $Config_PM: $!\n"; open CONFIG_HEAVY, ">", $Config_heavy or die "Can't open $Config_heavy: $!\n"; print CONFIG $config_txt; diff --git a/gnu/usr.bin/perl/configure.com b/gnu/usr.bin/perl/configure.com index 1f3e73c681f..713e875d336 100644 --- a/gnu/usr.bin/perl/configure.com +++ b/gnu/usr.bin/perl/configure.com @@ -49,7 +49,7 @@ $ unlink_all_versions = "n" $ builder = "MMK" $ use_vmsdebug_perl = "n" $ use64bitall = "n" -$ use64bitint = "n" +$ use64bitint = "y" $ uselongdouble = "n" $ uselargefiles = "y" $ usestdstat = "n" @@ -3373,7 +3373,6 @@ $ d_fp_classify = "define" $ d_hypot = "define" $ d_ilogb = "define" $ d_isnan = "define" -$ d_isnanl = "define" $ d_isnormal = "define" $ d_j0 = "define" $ d_lgamma = "define" @@ -3384,7 +3383,6 @@ $ d_lrint = "define" $ d_lrintl = "define" $ d_lround = "define" $ d_lroundl = "define" -$ d_nearbyint = "define" $ d_nextafter = "define" $ d_nexttoward = "define" $ d_remainder = "define" @@ -3417,7 +3415,6 @@ $ d_fp_classify = "undef" $ d_hypot = "undef" $ d_ilogb = "undef" $ d_isnan = "undef" -$ d_isnanl = "undef" $ d_isnormal = "undef" $ d_j0 = "undef" $ d_lgamma = "undef" @@ -3428,7 +3425,6 @@ $ d_lrint = "undef" $ d_lrintl = "undef" $ d_lround = "undef" $ d_lroundl = "undef" -$ d_nearbyint = "undef" $ d_nextafter = "undef" $ d_nexttoward = "undef" $ d_remainder = "undef" @@ -3898,6 +3894,12 @@ $ d_fd_set="define" $ echo4 "Well, your system knows about the normal fd_set typedef..." $ ENDIF $! +$! Check for stdint.h +$! +$ tmp = "stdint.h" +$ GOSUB inhdr +$ i_stdint = tmp +$! $! Check for inttypes.h $! $ tmp = "inttypes.h" @@ -3933,6 +3935,23 @@ $ d_off64_t = "undef" $ echo "You do not have off64_t." $ ENDIF $! +$! Check to see if fpclassify exists +$! +$ OS +$ WS "#if defined(__DECC) || defined(__DECCXX)" +$ WS "#include " +$ WS "#endif" +$ WS "#include " +$ WS "int main()" +$ WS "{" +$ WS "if (fpclassify(0.0) == FP_ZERO) exit(0);" +$ WS "exit(1);" +$ WS "}" +$ CS +$ tmp = "fpclassify" +$ GOSUB inlibc +$ d_fpclassify = tmp +$! $! Check to see if fpos64_t exists $! $ echo4 "Checking to see if you have fpos64_t..." @@ -4222,6 +4241,170 @@ $ echo4 "Nope, since you don't even have fcntl()." $ ENDIF $ d_fcntl_can_lock = tmp $! +$! Check to see if isblank exists +$! +$ OS +$ WS "#include " +$ WS "#include " +$ WS "int main()" +$ WS "{" +$ WS "int c = ' ';" +$ WS "if(isblank(c))" +$ WS " exit(EXIT_SUCCESS);" +$ WS "else" +$ WS " exit(EXIT_FAILURE);" +$ WS "}" +$ CS +$ tmp = "isblank" +$ GOSUB inlibc +$ d_isblank = tmp +$! +$! Check to see if isless exists +$! +$ OS +$ WS "#include " +$ WS "#include " +$ WS "int main() { return isless(1.0, 2.0) ? EXIT_SUCCESS : EXIT_FAILURE; }" +$ CS +$ tmp = "isless" +$ GOSUB inlibc +$ d_isless = tmp +$! +$! Check to see if pre-C99 isnanl exists +$! +$ OS +$ WS "#include " +$ WS "#include " +$ WS "int main()" +$ WS "{" +$ WS " long double x = NaN; +$ WS " return isnanl(x) ? EXIT_SUCCESS : EXIT_FAILURE; +$ WS "}" +$ CS +$ tmp = "isnanl" +$ GOSUB inlibc +$ d_isnanl = tmp +$! +$! Check to see if llrint exists +$! +$ OS +$ WS "#include " +$ WS "#include " +$ WS "int main()" +$ WS "{" +$ WS " long long x = llrint(1.5); +$ WS " return x == 2 ? EXIT_SUCCESS : EXIT_FAILURE; +$ WS "}" +$ CS +$ tmp = "llrint" +$ GOSUB inlibc +$ d_llrint = tmp +$! +$! Check to see if llrintl exists +$! +$ OS +$ WS "#include " +$ WS "#include " +$ WS "int main()" +$ WS "{" +$ WS " long long x = llrintl(1.5); +$ WS " return x == 2 ? EXIT_SUCCESS : EXIT_FAILURE; +$ WS "}" +$ CS +$ tmp = "llrintl" +$ GOSUB inlibc +$ d_llrintl = tmp +$! +$! Check to see if llround exists +$! +$ OS +$ WS "#include " +$ WS "#include " +$ WS "int main()" +$ WS "{" +$ WS " long long x = llround(1.5); +$ WS " return x == 2 ? EXIT_SUCCESS : EXIT_FAILURE; +$ WS "}" +$ CS +$ tmp = "llround" +$ GOSUB inlibc +$ d_llround = tmp +$! +$! Check to see if llroundl exists +$! +$ OS +$ WS "#include " +$ WS "#include " +$ WS "int main()" +$ WS "{" +$ WS " long long x = llroundl(1.5); +$ WS " return x == 2 ? EXIT_SUCCESS : EXIT_FAILURE; +$ WS "}" +$ CS +$ tmp = "llroundl" +$ GOSUB inlibc +$ d_llroundl = tmp +$! +$! Check to see if nearbyint exists +$! +$ OS +$ WS "#include " +$ WS "#include " +$ WS "int main()" +$ WS "{" +$ WS " double x = llroundl(1.5); +$ WS " return x == 2.0 ? EXIT_SUCCESS : EXIT_FAILURE; +$ WS "}" +$ CS +$ tmp = "nearbyint" +$ GOSUB inlibc +$ d_nearbyint = tmp +$! +$! Check to see if round exists +$! +$ OS +$ WS "#include " +$ WS "#include " +$ WS "int main()" +$ WS "{" +$ WS " double x = round(1.5); +$ WS " return x == 2.0 ? EXIT_SUCCESS : EXIT_FAILURE; +$ WS "}" +$ CS +$ tmp = "round" +$ GOSUB inlibc +$ d_round = tmp +$! +$! Check to see if scalbn exists +$! +$ OS +$ WS "#include " +$ WS "#include " +$ WS "int main()" +$ WS "{" +$ WS " double x = scalbn(1.0, 3); +$ WS " return x == 8.0 ? EXIT_SUCCESS : EXIT_FAILURE; +$ WS "}" +$ CS +$ tmp = "scalbn" +$ GOSUB inlibc +$ d_scalbn = tmp +$! +$! Check to see if scalbnl exists +$! +$ OS +$ WS "#include " +$ WS "#include " +$ WS "int main()" +$ WS "{" +$ WS " long double x = scalbn(1.0, 3); +$ WS " return x == 8.0 ? EXIT_SUCCESS : EXIT_FAILURE; +$ WS "}" +$ CS +$ tmp = "scalbnl" +$ GOSUB inlibc +$ d_scalbnl = tmp +$! $! Check for memrchr $! $ OS @@ -4340,7 +4523,7 @@ $ WS "#include " $ WS "int main()" $ WS "{" $ WS "long double result;" -$ WS "result = strtold(""123123"", NULL, 10);" +$ WS "result = strtold(""123123"", NULL);" $ WS "exit(0);" $ WS "}" $ CS @@ -5941,6 +6124,7 @@ $ WC "d_asinh='" + d_asinh + "'" $ WC "d_atanh='" + d_atanh + "'" $ WC "d_atolf='" + d_atolf + "'" $ WC "d_atoll='" + d_atoll + "'" +$ WC "d_attribute_always_inline='undef'" $ WC "d_attribute_format='" + d_attribut + "'" $ WC "d_attribute_deprecated='undef'" $ WC "d_attribute_malloc='undef'" @@ -6061,7 +6245,7 @@ $ WC "d_fp_classify='undef'" $ WC "d_fp_classl='undef'" $ WC "d_fpathconf='" + d_fpathconf + "'" $ WC "d_fpclass='undef'" -$ WC "d_fpclassify='undef'" +$ WC "d_fpclassify='" + d_fpclassify + "'" $ WC "d_fpclassl='undef'" $ WC "d_fpgetround='undef'" $ WC "d_fpos64_t='" + d_fpos64_t + "'" @@ -6134,12 +6318,12 @@ $ WC "d_ip_mreq_source='undef'" $ WC "d_ipv6_mreq='define'" $ WC "d_ipv6_mreq_source='undef'" $ WC "d_isascii='define'" -$ WC "d_isblank='undef'" +$ WC "d_isblank='" + d_isblank + "'" $ WC "d_isfinite='undef'" $ WC "d_isfinitel='undef'" $ WC "d_isinf='undef'" $ WC "d_isinfl='undef'" -$ WC "d_isless='undef'" +$ WC "d_isless='" + d_isless + "'" $ WC "d_isnan='" + d_isnan + "'" $ WC "d_isnanl='" + d_isnanl + "'" $ WC "d_isnormal='" + d_isnormal + "'" @@ -6152,10 +6336,10 @@ $ WC "d_ldexpl='" + d_ldexpl + "'" $ WC "d_lgamma='" + d_lgamma + "'" $ WC "d_libm_lib_version='undef'" $ WC "d_link='" + d_link + "'" -$ WC "d_llrint='undef'" -$ WC "d_llrintl='undef'" -$ WC "d_llround='undef'" -$ WC "d_llroundl='undef'" +$ WC "d_llrint='" + d_llrint + "'" +$ WC "d_llrintl='" + d_llrintl + "'" +$ WC "d_llround='" + d_llround + "'" +$ WC "d_llroundl='" + d_llroundl + "'" $ WC "d_llseek='undef'" $ WC "d_localeconv_l='undef'" $ WC "d_localtime64='undef'" @@ -6220,7 +6404,7 @@ $ WC "d_nan='undef'" $ WC "d_nanosleep='" + d_nanosleep + "'" $ WC "d_ndbm='undef'" $ WC "d_ndbm_h_uses_prototypes='undef'" -$ WC "d_nearbyint='undef'" +$ WC "d_nearbyint='" + d_nearbyint + "'" $ WC "d_nextafter='" + d_nextafter + "'" $ WC "d_nexttoward='" + d_nexttoward + "'" $ WC "d_nice='define'" @@ -6279,10 +6463,10 @@ $ WC "d_rename='define'" $ WC "d_rewinddir='define'" $ WC "d_rint='" + d_rint + "'" $ WC "d_rmdir='define'" -$ WC "d_round='undef'" +$ WC "d_round='" + d_round + "'" $ WC "d_sbrkproto='define'" -$ WC "d_scalbn='undef'" -$ WC "d_scalbnl='undef'" +$ WC "d_scalbn='" + d_scalbn + "'" +$ WC "d_scalbnl='" + d_scalbnl + "'" $ WC "d_sched_yield='" + d_sched_yield + "'" $ WC "d_scm_rights='undef'" $ WC "d_seekdir='define'" @@ -6353,6 +6537,7 @@ $ WC "d_sin6_scope_id='" + d_sin6_scope_id + "'" $ WC "d_sitearch='define'" $ WC "d_sockaddr_in6='define'" $ WC "d_sockaddr_sa_len='" + d_sockaddr_sa_len + "'" +$ WC "d_sockaddr_storage='undef'" $ WC "d_sockatmark='undef'" $ WC "d_sockatmarkproto='undef'" $ WC "d_socket='" + d_socket + "'" @@ -6450,6 +6635,7 @@ $ WC "d_voidtty='" + "'" $ WC "d_vsnprintf='" + d_vsnprintf + "'" $ WC "d_wait4='" + d_wait4 + "'" $ WC "d_waitpid='define'" +$ WC "d_wcrtomb='define'" $ WC "d_wcscmp='define'" $ WC "d_wcstombs='define'" $ WC "d_wcsxfrm='define'" @@ -6562,7 +6748,7 @@ $ WC "i_stdbool='define'" $ ELSE $ WC "i_stdbool='undef'" $ ENDIF -$ WC "i_stdint='undef'" +$ WC "i_stdint='" + i_stdint + "'" $ WC "i_stdlib='define'" $ WC "i_sunmath='undef'" $ WC "i_sysaccess='" + i_sysaccess + "'" diff --git a/gnu/usr.bin/perl/cop.h b/gnu/usr.bin/perl/cop.h index 29e6bfed8e0..e16875ad2cf 100644 --- a/gnu/usr.bin/perl/cop.h +++ b/gnu/usr.bin/perl/cop.h @@ -76,30 +76,31 @@ typedef struct jmpenv JMPENV; /* * PERL_FLEXIBLE_EXCEPTIONS - * + * * All the flexible exceptions code has been removed. * See the following threads for details: * - * http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2004-07/msg00378.html - * + * Message-Id: 20040713143217.GB1424@plum.flirble.org + * https://www.nntp.perl.org/group/perl.perl5.porters/2004/07/msg93041.html + * * Joshua's original patches (which weren't applied) and discussion: - * + * * http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/1998-02/msg01396.html * http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/1998-02/msg01489.html * http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/1998-02/msg01491.html * http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/1998-02/msg01608.html * http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/1998-02/msg02144.html * http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/1998-02/msg02998.html - * + * * Chip's reworked patch and discussion: - * + * * http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/1999-03/msg00520.html - * + * * The flaw in these patches (which went unnoticed at the time) was * that they moved some code that could potentially die() out of the * region protected by the setjmp()s. This caused exceptions within * END blocks and such to not be handled by the correct setjmp(). - * + * * The original patches that introduces flexible exceptions were: * * https://github.com/Perl/perl5/commit/312caa8e97f1c7ee342a9895c2f0e749625b4929 @@ -183,6 +184,8 @@ it has not been precomputed. Returns a mortal scalar copy of the value associated with the key, or C<&PL_sv_placeholder> if there is no value associated with the key. +=for apidoc Amnh||COPHH_KEY_UTF8 + =cut */ @@ -190,7 +193,7 @@ associated with the key. Perl_refcounted_he_fetch_pvn(aTHX_ cophh, keypv, keylen, hash, flags) /* -=for apidoc Amx|SV *|cophh_fetch_pvs|const COPHH *cophh|"literal string" key|U32 flags +=for apidoc Amx|SV *|cophh_fetch_pvs|const COPHH *cophh|"key"|U32 flags Like L, but takes a literal string instead of a string/length pair, and no precomputed hash. @@ -296,7 +299,7 @@ be stored with referential integrity, but will be coerced to strings. Perl_refcounted_he_new_pvn(aTHX_ cophh, keypv, keylen, hash, value, flags) /* -=for apidoc Amx|COPHH *|cophh_store_pvs|const COPHH *cophh|"literal string" key|SV *value|U32 flags +=for apidoc Amx|COPHH *|cophh_store_pvs|const COPHH *cophh|"key"|SV *value|U32 flags Like L, but takes a literal string instead of a string/length pair, and no precomputed hash. @@ -353,7 +356,7 @@ hash of the key string, or zero if it has not been precomputed. (SV *)NULL, flags) /* -=for apidoc Amx|COPHH *|cophh_delete_pvs|const COPHH *cophh|"literal string" key|U32 flags +=for apidoc Amx|COPHH *|cophh_delete_pvs|const COPHH *cophh|"key"|U32 flags Like L, but takes a literal string instead of a string/length pair, and no precomputed hash. @@ -412,13 +415,19 @@ struct cop { /* compile time state of %^H. See the comment in op.c for how this is used to recreate a hash to return from caller. */ COPHH * cop_hints_hash; + /* for now just a bitmask stored here. + If we get sufficient features this may become a pointer. + How these flags are stored is subject to change without + notice. Use the macros to test for features. + */ + U32 cop_features; }; #ifdef USE_ITHREADS # define CopFILE(c) ((c)->cop_file) # define CopFILEGV(c) (CopFILE(c) \ ? gv_fetchfile(CopFILE(c)) : NULL) - + # ifdef NETWARE # define CopFILE_set(c,pv) ((c)->cop_file = savepv(pv)) # define CopFILE_setn(c,pv,l) ((c)->cop_file = savepvn((pv),(l))) @@ -493,7 +502,7 @@ associated with the key. cophh_fetch_pvn(CopHINTHASH_get(cop), keypv, keylen, hash, flags) /* -=for apidoc Am|SV *|cop_hints_fetch_pvs|const COP *cop|"literal string" key|U32 flags +=for apidoc Am|SV *|cop_hints_fetch_pvs|const COP *cop|"key"|U32 flags Like L, but takes a literal string instead of a string/length pair, and no precomputed hash. @@ -541,6 +550,24 @@ be zero. #define cop_hints_2hv(cop, flags) \ cophh_2hv(CopHINTHASH_get(cop), flags) +/* +=for apidoc Am|const char *|CopLABEL|COP *const cop + +Returns the label attached to a cop. + +=for apidoc Am|const char *|CopLABEL_len|COP *const cop|STRLEN *len + +Returns the label attached to a cop, and stores its length in bytes into +C<*len>. + +=for apidoc Am|const char *|CopLABEL_len_flags|COP *const cop|STRLEN *len|U32 *flags + +Returns the label attached to a cop, and stores its length in bytes into +C<*len>. Upon return, C<*flags> will be set to either C or 0. + +=cut +*/ + #define CopLABEL(c) Perl_cop_fetch_label(aTHX_ (c), NULL, NULL) #define CopLABEL_len(c,len) Perl_cop_fetch_label(aTHX_ (c), len, NULL) #define CopLABEL_len_flags(c,len,flags) Perl_cop_fetch_label(aTHX_ (c), len, flags) @@ -567,6 +594,7 @@ be zero. /* subroutine context */ struct block_sub { OP * retop; /* op to execute on exit from sub */ + I32 old_cxsubix; /* previous value of si_cxsubix */ /* Above here is the same for sub, format and eval. */ PAD *prevcomppad; /* the caller's PL_comppad */ CV * cv; @@ -579,6 +607,7 @@ struct block_sub { /* format context */ struct block_format { OP * retop; /* op to execute on exit from sub */ + I32 old_cxsubix; /* previous value of si_cxsubix */ /* Above here is the same for sub, format and eval. */ PAD *prevcomppad; /* the caller's PL_comppad */ CV * cv; @@ -645,6 +674,7 @@ struct block_format { /* eval context */ struct block_eval { OP * retop; /* op to execute on exit from eval */ + I32 old_cxsubix; /* previous value of si_cxsubix */ /* Above here is the same for sub, format and eval. */ SV * old_namesv; OP * old_eval_root; @@ -917,32 +947,32 @@ struct context { #define CXINC (cxstack_ix < cxstack_max ? ++cxstack_ix : (cxstack_ix = cxinc())) -/* +/* =head1 "Gimme" Values */ /* -=for apidoc AmU||G_SCALAR +=for apidoc AmnU||G_SCALAR Used to indicate scalar context. See C>, C>, and L. -=for apidoc AmU||G_ARRAY +=for apidoc AmnU||G_ARRAY Used to indicate list context. See C>, C> and L. -=for apidoc AmU||G_VOID +=for apidoc AmnU||G_VOID Used to indicate void context. See C> and L. -=for apidoc AmU||G_DISCARD +=for apidoc AmnU||G_DISCARD Indicates that arguments returned from a callback should be discarded. See L. -=for apidoc AmU||G_EVAL +=for apidoc AmnU||G_EVAL Used to force a Perl C wrapper around a callback. See L. -=for apidoc AmU||G_NOARGS +=for apidoc AmnU||G_NOARGS Indicates that no arguments are being sent to a callback. See L. @@ -956,23 +986,24 @@ L. #define G_WANT 3 /* extra flags for Perl_call_* routines */ -#define G_DISCARD 4 /* Call FREETMPS. +#define G_DISCARD 0x4 /* Call FREETMPS. Don't change this without consulting the hash actions codes defined in hv.h */ -#define G_EVAL 8 /* Assume eval {} around subroutine call. */ -#define G_NOARGS 16 /* Don't construct a @_ array. */ -#define G_KEEPERR 32 /* Warn for errors, don't overwrite $@ */ -#define G_NODEBUG 64 /* Disable debugging at toplevel. */ -#define G_METHOD 128 /* Calling method. */ -#define G_FAKINGEVAL 256 /* Faking an eval context for call_sv or +#define G_EVAL 0x8 /* Assume eval {} around subroutine call. */ +#define G_NOARGS 0x10 /* Don't construct a @_ array. */ +#define G_KEEPERR 0x20 /* Warn for errors, don't overwrite $@ */ +#define G_NODEBUG 0x40 /* Disable debugging at toplevel. */ +#define G_METHOD 0x80 /* Calling method. */ +#define G_FAKINGEVAL 0x100 /* Faking an eval context for call_sv or fold_constants. */ -#define G_UNDEF_FILL 512 /* Fill the stack with &PL_sv_undef +#define G_UNDEF_FILL 0x200 /* Fill the stack with &PL_sv_undef A special case for UNSHIFT in Perl_magic_methcall(). */ -#define G_WRITING_TO_STDERR 1024 /* Perl_write_to_stderr() is calling +#define G_WRITING_TO_STDERR 0x400 /* Perl_write_to_stderr() is calling Perl_magic_methcall(). */ -#define G_RE_REPARSING 0x800 /* compiling a run-time /(?{..})/ */ -#define G_METHOD_NAMED 4096 /* calling named method, eg without :: or ' */ +#define G_RE_REPARSING 0x800 /* compiling a run-time /(?{..})/ */ +#define G_METHOD_NAMED 0x1000 /* calling named method, eg without :: or ' */ +#define G_RETHROW 0x2000 /* eval_sv(): re-throw any error */ /* flag bits for PL_in_eval */ #define EVAL_NULL 0 /* not in an eval */ @@ -985,6 +1016,8 @@ L. /* Support for switching (stack and block) contexts. * This ensures magic doesn't invalidate local stack and cx pointers. + * Which one to use (or add) is mostly, but not completely arbitrary: See + * http://nntp.perl.org/group/perl.perl5.porters/257169 */ #define PERLSI_UNKNOWN -1 @@ -999,6 +1032,7 @@ L. #define PERLSI_DIEHOOK 8 #define PERLSI_REQUIRE 9 #define PERLSI_MULTICALL 10 +#define PERLSI_REGCOMP 11 struct stackinfo { AV * si_stack; /* stack for current runlevel */ @@ -1007,6 +1041,7 @@ struct stackinfo { struct stackinfo * si_next; I32 si_cxix; /* current context index */ I32 si_cxmax; /* maximum allocated index */ + I32 si_cxsubix; /* topmost sub/eval/format */ I32 si_type; /* type of runlevel */ I32 si_markoff; /* offset where markstack begins for us. * currently used only with DEBUGGING, @@ -1053,6 +1088,7 @@ typedef struct stackinfo PERL_SI; } \ next->si_type = type; \ next->si_cxix = -1; \ + next->si_cxsubix = -1; \ PUSHSTACK_INIT_HWM(next); \ AvFILLp(next->si_stack) = 0; \ SWITCHSTACK(PL_curstack,next->si_stack); \ @@ -1098,17 +1134,17 @@ typedef struct stackinfo PERL_SI; /* =head1 Multicall Functions -=for apidoc Ams||dMULTICALL +=for apidoc Amns||dMULTICALL Declare local variables for a multicall. See L. -=for apidoc Ams||PUSH_MULTICALL +=for apidoc Ams||PUSH_MULTICALL|CV* the_cv Opening bracket for a lightweight callback. See L. -=for apidoc Ams||MULTICALL +=for apidoc Amns||MULTICALL Make a lightweight callback. See L. -=for apidoc Ams||POP_MULTICALL +=for apidoc Amns||POP_MULTICALL Closing bracket for a lightweight callback. See L. diff --git a/gnu/usr.bin/perl/cpan/Archive-Tar/lib/Archive/Tar.pm b/gnu/usr.bin/perl/cpan/Archive-Tar/lib/Archive/Tar.pm index 093579a6c29..af6786ee519 100644 --- a/gnu/usr.bin/perl/cpan/Archive-Tar/lib/Archive/Tar.pm +++ b/gnu/usr.bin/perl/cpan/Archive-Tar/lib/Archive/Tar.pm @@ -27,11 +27,11 @@ use vars qw[$DEBUG $error $VERSION $WARN $FOLLOW_SYMLINK $CHOWN $CHMOD ]; @ISA = qw[Exporter]; -@EXPORT = qw[ COMPRESS_GZIP COMPRESS_BZIP ]; +@EXPORT = qw[ COMPRESS_GZIP COMPRESS_BZIP COMPRESS_XZ ]; $DEBUG = 0; $WARN = 1; $FOLLOW_SYMLINK = 0; -$VERSION = "2.32"; +$VERSION = "2.36"; $CHOWN = 1; $CHMOD = 1; $SAME_PERMISSIONS = $> == 0 ? 1 : 0; @@ -76,6 +76,7 @@ Archive::Tar - module for manipulations of tar archives $tar->write('files.tar'); # plain tar $tar->write('files.tgz', COMPRESS_GZIP); # gzip compressed $tar->write('files.tbz', COMPRESS_BZIP); # bzip2 compressed + $tar->write('files.txz', COMPRESS_XZ); # xz compressed =head1 DESCRIPTION @@ -147,12 +148,13 @@ backwards compatibility. Archive::Tar now looks at the file magic to determine what class should be used to open the file and will transparently Do The Right Thing. -Archive::Tar will warn if you try to pass a bzip2 compressed file and the -IO::Zlib / IO::Uncompress::Bunzip2 modules are not available and simply return. +Archive::Tar will warn if you try to pass a bzip2 / xz compressed file and the +IO::Uncompress::Bunzip2 / IO::Uncompress::UnXz are not available and simply return. Note that you can currently B pass a C compressed filehandle, which is not opened with C, a C compressed -filehandle, which is not opened with C, nor a string +filehandle, which is not opened with C, a C compressed +filehandle, which is not opened with C, nor a string containing the full archive information (either compressed or uncompressed). These are worth while features, but not currently implemented. See the C section. @@ -246,16 +248,40 @@ sub _get_handle { return; }; - ### read the first 4 bites of the file to figure out which class to + ### read the first 6 bytes of the file to figure out which class to ### use to open the file. - sysread( $tmp, $magic, 4 ); + sysread( $tmp, $magic, 6 ); close $tmp; } + ### is it xz? + ### if you asked specifically for xz compression, or if we're in + ### read mode and the magic numbers add up, use xz + if( XZ and ( + ($compress eq COMPRESS_XZ) or + ( MODE_READ->($mode) and $magic =~ XZ_MAGIC_NUM ) + ) + ) { + if( MODE_READ->($mode) ) { + $fh = IO::Uncompress::UnXz->new( $file ) or do { + $self->_error( qq[Could not read '$file': ] . + $IO::Uncompress::UnXz::UnXzError + ); + return; + }; + } else { + $fh = IO::Compress::Xz->new( $file ) or do { + $self->_error( qq[Could not write to '$file': ] . + $IO::Compress::Xz::XzError + ); + return; + }; + } + ### is it bzip? ### if you asked specifically for bzip compression, or if we're in ### read mode and the magic numbers add up, use bzip - if( BZIP and ( + } elsif( BZIP and ( ($compress eq COMPRESS_BZIP) or ( MODE_READ->($mode) and $magic =~ BZIP_MAGIC_NUM ) ) @@ -1246,8 +1272,8 @@ Write the in-memory archive to disk. The first argument can either be the name of a file or a reference to an already open filehandle (a GLOB reference). -The second argument is used to indicate compression. You can either -compress using C or C. If you pass a digit, it's assumed +The second argument is used to indicate compression. You can +compress using C, C or C. If you pass a digit, it's assumed to be the C compression level (between 1 and 9), but the use of constants is preferred: @@ -1257,10 +1283,13 @@ constants is preferred: # write a bzip compressed file $tar->write( 'out.tbz', COMPRESS_BZIP ); + # write a xz compressed file + $tar->write( 'out.txz', COMPRESS_XZ ); + Note that when you pass in a filehandle, the compression argument is ignored, as all files are printed verbatim to your filehandle. If you wish to enable compression with filehandles, use an -C or C filehandle instead. +C, C or C filehandle instead. The third argument is an optional prefix. All files will be tucked away in the directory you specify as prefix. So if you have files @@ -1696,8 +1725,8 @@ Creates a tar file from the list of files provided. The first argument can either be the name of the tar file to create or a reference to an open file handle (e.g. a GLOB reference). -The second argument is used to indicate compression. You can either -compress using C or C. If you pass a digit, it's assumed +The second argument is used to indicate compression. You can +compress using C, C or C. If you pass a digit, it's assumed to be the C compression level (between 1 and 9), but the use of constants is preferred: @@ -1707,10 +1736,13 @@ constants is preferred: # write a bzip compressed file Archive::Tar->create_archive( 'out.tbz', COMPRESS_BZIP, @filelist ); + # write a xz compressed file + Archive::Tar->create_archive( 'out.txz', COMPRESS_XZ, @filelist ); + Note that when you pass in a filehandle, the compression argument is ignored, as all files are printed verbatim to your filehandle. If you wish to enable compression with filehandles, use an -C or C filehandle instead. +C, C or C filehandle instead. The remaining arguments list the files to be included in the tar file. These files must all exist. Any files which don't exist or can't be @@ -1915,11 +1947,19 @@ Returns true if C can extract C compressed archives sub has_bzip2_support { return BZIP } +=head2 $bool = Archive::Tar->has_xz_support + +Returns true if C can extract C compressed archives + +=cut + +sub has_xz_support { return XZ } + =head2 Archive::Tar->can_handle_compressed_files A simple checking routine, which will return true if C -is able to uncompress compressed archives on the fly with C -and C or false if not both are installed. +is able to uncompress compressed archives on the fly with C, +C and C or false if not both are installed. You can use this as a shortcut to determine whether C will do what you think before passing compressed archives to its diff --git a/gnu/usr.bin/perl/cpan/Archive-Tar/lib/Archive/Tar/Constant.pm b/gnu/usr.bin/perl/cpan/Archive-Tar/lib/Archive/Tar/Constant.pm index a48968d9e04..398c4799a5c 100644 --- a/gnu/usr.bin/perl/cpan/Archive-Tar/lib/Archive/Tar/Constant.pm +++ b/gnu/usr.bin/perl/cpan/Archive-Tar/lib/Archive/Tar/Constant.pm @@ -3,7 +3,7 @@ package Archive::Tar::Constant; BEGIN { require Exporter; - $VERSION = '2.32'; + $VERSION = '2.36'; @ISA = qw[Exporter]; require Time::Local if $^O eq "MacOS"; @@ -32,6 +32,7 @@ use constant BLOCK => 512; use constant COMPRESS_GZIP => 9; use constant COMPRESS_BZIP => 'bzip2'; +use constant COMPRESS_XZ => 'xz'; use constant BLOCK_SIZE => sub { my $n = int($_[0]/BLOCK); $n++ if $_[0] % BLOCK; $n * BLOCK }; use constant TAR_PAD => sub { my $x = shift || return; return "\0" x (BLOCK - ($x % BLOCK) ) }; @@ -58,7 +59,7 @@ use constant PACK => 'a100 a8 a8 a8 a12 a12 A8 a1 a100 a6 a2 a32 a32 a use constant NAME_LENGTH => 100; use constant PREFIX_LENGTH => 155; -use constant TIME_OFFSET => ($^O eq "MacOS") ? Time::Local::timelocal(0,0,0,1,0,70) : 0; +use constant TIME_OFFSET => ($^O eq "MacOS") ? Time::Local::timelocal(0,0,0,1,0,1970) : 0; use constant MAGIC => "ustar"; use constant TAR_VERSION => "00"; use constant LONGLINK_NAME => '././@LongLink'; @@ -77,8 +78,16 @@ use constant BZIP => do { !$ENV{'PERL5_AT_NO_BZIP'} and $ENV{'PERL5_AT_NO_BZIP'} || $@ ? 0 : 1 }; + ### allow XZ to be turned off using ENV: DEBUG only +use constant XZ => do { !$ENV{'PERL5_AT_NO_XZ'} and + eval { require IO::Compress::Xz; + require IO::Uncompress::UnXz; }; + $ENV{'PERL5_AT_NO_XZ'} || $@ ? 0 : 1 + }; + use constant GZIP_MAGIC_NUM => qr/^(?:\037\213|\037\235)/; use constant BZIP_MAGIC_NUM => qr/^BZh\d/; +use constant XZ_MAGIC_NUM => qr/^\xFD\x37\x7A\x58\x5A\x00/; use constant CAN_CHOWN => sub { ($> == 0 and $^O ne "MacOS" and $^O ne "MSWin32") }; use constant CAN_READLINK => ($^O ne 'MSWin32' and $^O !~ /RISC(?:[ _])?OS/i and $^O ne 'VMS'); diff --git a/gnu/usr.bin/perl/cpan/Archive-Tar/lib/Archive/Tar/File.pm b/gnu/usr.bin/perl/cpan/Archive-Tar/lib/Archive/Tar/File.pm index 3efa3159d94..0887a923bd3 100644 --- a/gnu/usr.bin/perl/cpan/Archive-Tar/lib/Archive/Tar/File.pm +++ b/gnu/usr.bin/perl/cpan/Archive-Tar/lib/Archive/Tar/File.pm @@ -13,7 +13,7 @@ use Archive::Tar::Constant; use vars qw[@ISA $VERSION]; #@ISA = qw[Archive::Tar]; -$VERSION = '2.32'; +$VERSION = '2.36'; ### set value to 1 to oct() it during the unpack ### diff --git a/gnu/usr.bin/perl/cpan/CPAN/lib/App/Cpan.pm b/gnu/usr.bin/perl/cpan/CPAN/lib/App/Cpan.pm index 80c3efec433..b563addf527 100644 --- a/gnu/usr.bin/perl/cpan/CPAN/lib/App/Cpan.pm +++ b/gnu/usr.bin/perl/cpan/CPAN/lib/App/Cpan.pm @@ -6,7 +6,7 @@ use vars qw($VERSION); use if $] < 5.008 => 'IO::Scalar'; -$VERSION = '1.672'; +$VERSION = '1.675'; =head1 NAME @@ -414,13 +414,13 @@ sub _process_options # if no arguments, just drop into the shell if( 0 == @ARGV ) { CPAN::shell(); exit 0 } - else + elsif (Getopt::Std::getopts( + join( '', @option_order ), \%options )) { - Getopt::Std::getopts( - join( '', @option_order ), \%options ); \%options; } - } + else { exit 1 } +} sub _process_setup_options { @@ -431,8 +431,7 @@ sub _process_setup_options $Method_table{j}[ $Method_table_index{code} ]->( $options->{j} ); delete $options->{j}; } - else - { + elsif ( ! $options->{h} ) { # h "ignores all of the other options and arguments" # this is what CPAN.pm would do otherwise local $CPAN::Be_Silent = 1; CPAN::HandleConfig->load( @@ -542,15 +541,23 @@ sub run return $return_value; } +my $LEVEL; { package Local::Null::Logger; # hide from PAUSE +my @LOGLEVELS = qw(TRACE DEBUG INFO WARN ERROR FATAL); +$LEVEL = uc($ENV{CPANSCRIPT_LOGLEVEL} || 'INFO'); +my %LL = map { $LOGLEVELS[$_] => $_ } 0..$#LOGLEVELS; +unless (defined $LL{$LEVEL}){ + warn "Unsupported loglevel '$LEVEL', setting to INFO"; + $LEVEL = 'INFO'; +} sub new { bless \ my $x, $_[0] } sub AUTOLOAD { my $autoload = our $AUTOLOAD; $autoload =~ s/.*://; - return if $autoload =~ /^(debug|trace)$/; + return if $LL{uc $autoload} < $LL{$LEVEL}; $CPAN::Frontend->mywarn(">($autoload): $_\n") for split /[\r\n]+/, $_[1]; } @@ -579,8 +586,6 @@ sub _init_logger return $logger; } - my $LEVEL = $ENV{CPANSCRIPT_LOGLEVEL} || 'INFO'; - Log::Log4perl::init( \ <<"HERE" ); log4perl.rootLogger=$LEVEL, A1 log4perl.appender.A1=Log::Log4perl::Appender::Screen @@ -676,7 +681,7 @@ sub _hook_into_CPANpm_report *CPAN::Shell::myprint = sub { my($self,$what) = @_; - $scalar .= $what; + $scalar .= $what if defined $what; $self->print_ornamented($what, $CPAN::Config->{colorize_print}||'bold blue on_white', ); @@ -794,7 +799,14 @@ sub _turn_off_testing { sub _print_help { $logger->info( "Use perldoc to read the documentation" ); - exec "perldoc $0"; + my $HAVE_PERLDOC = eval { require Pod::Perldoc; 1; }; + if ($HAVE_PERLDOC) { + system qq{"$^X" -e "require Pod::Perldoc; Pod::Perldoc->run()" $0}; + exit; + } else { + warn "Please install Pod::Perldoc, maybe try 'cpan -i Pod::Perldoc'\n"; + return HEY_IT_WORKED; + } } sub _print_version # -v @@ -1698,3 +1710,10 @@ Copyright (c) 2001-2018, brian d foy, All Rights Reserved. You may redistribute this under the same terms as Perl itself. =cut + +# Local Variables: +# mode: cperl +# indent-tabs-mode: t +# cperl-indent-level: 8 +# cperl-continued-statement-offset: 8 +# End: diff --git a/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN.pm b/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN.pm index 0c9b9f5b09f..2d87f47f8b9 100644 --- a/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN.pm +++ b/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN.pm @@ -2,7 +2,7 @@ # vim: ts=4 sts=4 sw=4: use strict; package CPAN; -$CPAN::VERSION = '2.22'; +$CPAN::VERSION = '2.27'; $CPAN::VERSION =~ s/_//; # we need to run chdir all over and we would get at wrong libraries @@ -286,7 +286,10 @@ sub shell { } if (my $histfile = $CPAN::Config->{'histfile'}) {{ unless ($term->can("AddHistory")) { - $CPAN::Frontend->mywarn("Terminal does not support AddHistory.\n\nTo fix enter> install Term::ReadLine::Perl\n\n"); + $CPAN::Frontend->mywarn("Terminal does not support AddHistory.\n"); + unless ($CPAN::META->has_inst('Term::ReadLine::Perl')) { + $CPAN::Frontend->mywarn("\nTo fix that, maybe try> install Term::ReadLine::Perl\n\n"); + } last; } $META->readhist($term,$histfile); @@ -1028,7 +1031,10 @@ sub has_usable { $usable = { # - # these subroutines die if they believe the installed version is unusable; + # most of these subroutines warn on the frontend, then + # die if the installed version is unusable for some + # reason; has_usable() then returns false when it caught + # an exception, otherwise returns true and caches that; # 'CPAN::Meta' => [ sub { @@ -1059,6 +1065,23 @@ sub has_usable { }, ], + 'CPAN::Reporter' => [ + sub { + if (defined $CPAN::Reporter::VERSION + && CPAN::Version->vlt($CPAN::Reporter::VERSION, "1.2011") + ) { + delete $INC{"CPAN/Reporter.pm"}; + } + require CPAN::Reporter; + unless (CPAN::Version->vge(CPAN::Reporter->VERSION, "1.2011")) { + for ("Will not use CPAN::Reporter, need version 1.2011\n") { + $CPAN::Frontend->mywarn($_); + die $_; + } + } + }, + ], + LWP => [ # we frequently had "Can't locate object # method "new" via package "LWP::UserAgent" at # (eval 69) line 2006 @@ -1445,11 +1468,12 @@ sub set_perl5lib { $ENV{PERL5LIB} = join $Config::Config{path_sep}, @dirs, @env; } else { my $cnt = keys %{$self->{is_tested}}; - $CPAN::Frontend->optprint('perl5lib', "Prepending blib/arch and blib/lib of ". - "$cnt build dirs to PERL5LIB; ". - "for '$for'\n" + my $newenv = join $Config::Config{path_sep}, @dirs, @env; + $CPAN::Frontend->optprint('perl5lib', sprintf ("Prepending blib/arch and blib/lib of ". + "%d build dirs to PERL5LIB, reaching size %d; ". + "for '%s'\n", $cnt, length($newenv), $for) ); - $ENV{PERL5LIB} = join $Config::Config{path_sep}, @dirs, @env; + $ENV{PERL5LIB} = $newenv; } }} @@ -2121,6 +2145,12 @@ where WORD is any valid config variable or a regular expression. The following keys in the hash reference $CPAN::Config are currently defined: + allow_installing_module_downgrades + allow or disallow installing module downgrades + allow_installing_outdated_dists + allow or disallow installing modules that are + indexed in the cpan index pointing to a distro + with a higher distro-version number applypatch path to external prg auto_commit commit all changes to config variables to disk build_cache size of cache for directories to build modules @@ -2134,7 +2164,8 @@ currently defined: check_sigs if signatures should be verified cleanup_after_install remove build directory immediately after a - successful install + successful install and remember that for the + duration of the session colorize_debug Term::ANSIColor attributes for debugging output colorize_output boolean if Term::ANSIColor should colorize output colorize_print Term::ANSIColor attributes for normal output @@ -2238,6 +2269,10 @@ currently defined: CPAN::Reporter history) unzip location of external program unzip urllist arrayref to nearby CPAN sites (or equivalent locations) + urllist_ping_external + use external ping command when autoselecting mirrors + urllist_ping_verbose + increase verbosity when autoselecting mirrors use_prompt_default set PERL_MM_USE_DEFAULT for configure/make/test/install use_sqlite use CPAN::SQLite for metadata storage (fast and lean) username your username if you CPAN server wants one @@ -2378,11 +2413,48 @@ installed. It is only built and tested, and then kept in the list of tested but uninstalled modules. As such, it is available during the build of the dependent module by integrating the path to the C and C directories in the environment variable -PERL5LIB. If C is set ti C, then +PERL5LIB. If C is set to C, then both modules declared as C and those declared as C are treated alike. By setting to C or C, CPAN.pm asks the user and sets the default accordingly. +=head2 Configuration of the allow_installing_* parameters + +The C parameters are evaluated during +the C phase. If set to C, they allow the testing and the installation of +the current distro and otherwise have no effect. If set to C, they +may abort the build (preventing testing and installing), depending on the contents of the +C directory. The C directory is the directory that holds +all the files that would usually be installed in the C phase. + +C compares the C directory with the CPAN index. +If it finds something there that belongs, according to the index, to a different +dist, it aborts the current build. + +C compares the C directory +with already installed modules, actually their version numbers, as +determined by ExtUtils::MakeMaker or equivalent. If a to-be-installed +module would downgrade an already installed module, the current build +is aborted. + +An interesting twist occurs when a distroprefs document demands the +installation of an outdated dist via goto while +C forbids it. Without additional +provisions, this would let the C +win and the distroprefs lose. So the proper arrangement in such a case +is to write a second distroprefs document for the distro that C +points to and overrule the C there. E.g.: + + --- + match: + distribution: "^MAUKE/Keyword-Simple-0.04.tar.gz" + goto: "MAUKE/Keyword-Simple-0.03.tar.gz" + --- + match: + distribution: "^MAUKE/Keyword-Simple-0.03.tar.gz" + cpanconfig: + allow_installing_outdated_dists: yes + =head2 Configuration for individual distributions (I) (B This feature has been introduced in CPAN.pm 1.8854) @@ -3922,6 +3994,25 @@ directory) or exit the CPAN shell, respectively. If you never start up the CPAN shell, you probably also have to clean up the build directory yourself. +=item 19) + +How can I switch to sudo instead of local::lib? + +The following 5 environment veriables need to be reset to the previous +values: PATH, PERL5LIB, PERL_LOCAL_LIB_ROOT, PERL_MB_OPT, PERL_MM_OPT; +and these two CPAN.pm config variables must be reconfigured: +make_install_make_command and mbuild_install_build_command. The five +env variables have probably been overwritten in your $HOME/.bashrc or +some equivalent. You either find them there and delete their traces +and logout/login or you override them temporarily, depending on your +exact desire. The two cpanpm config variables can be set with: + + o conf init /install_.*_command/ + +probably followed by + + o conf commit + =back =head1 COMPATIBILITY diff --git a/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Bundle.pm b/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Bundle.pm index 3b4e93d8bf6..99c95ac4d6e 100644 --- a/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Bundle.pm +++ b/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Bundle.pm @@ -8,7 +8,7 @@ use CPAN::Module; use vars qw( $VERSION ); -$VERSION = "5.5003"; +$VERSION = "5.5005"; sub look { my $self = shift; @@ -87,11 +87,11 @@ sub contains { # Try to get at it in the cpan directory $self->debug("no inst_file") if $CPAN::DEBUG; my $cpan_file; - $CPAN::Frontend->mydie("I don't know a bundle with ID $id\n") unless + $CPAN::Frontend->mydie("I don't know a bundle with ID '$id'\n") unless $cpan_file = $self->cpan_file; if ($cpan_file eq "N/A") { - $CPAN::Frontend->mydie("Bundle $id not found on disk and not on CPAN. - Maybe stale symlink? Maybe removed during session? Giving up.\n"); + $CPAN::Frontend->mywarn("Bundle '$id' not found on disk and not on CPAN. Maybe stale symlink? Maybe removed during session?\n"); + return; } my $dist = $CPAN::META->instance('CPAN::Distribution', $self->cpan_file); @@ -103,7 +103,12 @@ sub contains { @me = split /::/, $self->id; $me[-1] .= ".pm"; $me = File::Spec->catfile(@me); - $from = $self->find_bundle_file($dist->{build_dir},join('/',@me)); + my $build_dir; + unless ($build_dir = $dist->{build_dir}) { + $CPAN::Frontend->mywarn("Warning: cannot determine bundle content without a build_dir.\n"); + return; + } + $from = $self->find_bundle_file($build_dir,join('/',@me)); $to = File::Spec->catfile($todir,$me); File::Path::mkpath(File::Basename::dirname($to)); File::Copy::copy($from, $to) @@ -238,6 +243,7 @@ Going to $meth that. $self->debug("type[$type] s[$s]") if $CPAN::DEBUG; my $obj = $CPAN::META->instance($type,$s); $obj->{reqtype} = $self->{reqtype}; + $obj->{viabundle} ||= { id => $id, reqtype => $self->{reqtype}, optional => !$self->{mandatory}}; # $obj->$meth(); # XXX should optional be based on whether bundle was optional? -- xdg, 2012-04-01 # A: Sure, what could demand otherwise? --andk, 2013-11-25 diff --git a/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Distribution.pm b/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Distribution.pm index 717c9aa0e45..34121085395 100644 --- a/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Distribution.pm +++ b/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Distribution.pm @@ -6,9 +6,12 @@ use Cwd qw(chdir); use CPAN::Distroprefs; use CPAN::InfoObj; use File::Path (); +use POSIX ":sys_wait_h"; @CPAN::Distribution::ISA = qw(CPAN::InfoObj); use vars qw($VERSION); -$VERSION = "2.22"; +$VERSION = "2.27"; + +my $run_allow_installing_within_test = 1; # boolean; either in test or in install, there is no third option # no prepare, because prepare is not a command on the shell command line # TODO: clear instance cache on reload @@ -317,6 +320,17 @@ sub called_for { sub shortcut_get { my ($self) = @_; + if (exists $self->{cleanup_after_install_done}) { + if ($self->{force_update}) { + delete $self->{cleanup_after_install_done}; + } else { + my $id = $self->{CALLED_FOR} || $self->pretty_id; + return $self->success( + "Has already been *installed and cleaned up in the staging area* within this session, will not work on it again; if you really want to start over, try something like `force get $id`" + ); + } + } + if (my $why = $self->check_disabled) { $self->{unwrapped} = CPAN::Distrostatus->new("NO $why"); # XXX why is this goodbye() instead of just print/warn? @@ -366,10 +380,12 @@ sub get { $self->debug("checking goto id[$self->{ID}]") if $CPAN::DEBUG; if (my $goto = $self->prefs->{goto}) { + $self->post_get(); return $self->goto($goto); } if ( defined( my $sc = $self->shortcut_get) ) { + $self->post_get(); return $sc; } @@ -388,15 +404,22 @@ sub get { # is already checked in shortcut_get() -- xdg, 2012-04-05 unless ($self->{build_dir} && -d $self->{build_dir}) { $self->get_file_onto_local_disk; - return if $CPAN::Signal; + if ($CPAN::Signal){ + $self->post_get(); + return; + } $self->check_integrity; - return if $CPAN::Signal; + if ($CPAN::Signal){ + $self->post_get(); + return; + } (my $packagedir,$local_file) = $self->run_preps_on_packagedir; # XXX why is this check here? -- xdg, 2012-04-08 if (exists $self->{writemakefile} && ref $self->{writemakefile} && $self->{writemakefile}->can("failed") && $self->{writemakefile}->failed) { # + $self->post_get(); return; } $packagedir ||= $self->{build_dir}; @@ -408,9 +431,13 @@ sub get { # a $CPAN::Signal check -- xdg, 2012-04-05 if ($CPAN::Signal) { $self->safe_chdir($sub_wd); + $self->post_get(); + return; + } + unless ($self->patch){ + $self->post_get(); return; } - return unless $self->patch; $self->store_persistent_state; $self->post_get(); @@ -529,9 +556,10 @@ See also http://rt.cpan.org/Ticket/Display.html?id=38932\n"); if (@readdir == 1 && -d $readdir[0]) { $tdir_base = $readdir[0]; $from_dir = File::Spec->catdir(File::Spec->curdir,$readdir[0]); + my($mode) = (stat $from_dir)[2]; + chmod $mode | 00755, $from_dir; # JONATHAN/Math-Calculus-TaylorSeries-0.1.tar.gz has 0644 my $dh2; unless ($dh2 = DirHandle->new($from_dir)) { - my($mode) = (stat $from_dir)[2]; my $why = sprintf ( "Couldn't opendir '%s', mode '%o': %s", @@ -554,10 +582,6 @@ See also http://rt.cpan.org/Ticket/Display.html?id=38932\n"); $from_dir = File::Spec->curdir; @dirents = @readdir; } - eval { File::Path::mkpath $builddir; }; - if ($@) { - $CPAN::Frontend->mydie("Cannot create directory $builddir: $@"); - } my $packagedir; my $eexist = ($CPAN::META->has_usable("Errno") && defined &Errno::EEXIST) ? &Errno::EEXIST : undef; @@ -572,6 +596,8 @@ See also http://rt.cpan.org/Ticket/Display.html?id=38932\n"); my $f; for $f (@dirents) { # is already without "." and ".." my $from = File::Spec->catfile($from_dir,$f); + my($mode) = (stat $from)[2]; + chmod $mode | 00755, $from if -d $from; # OTTO/Pod-Trial-LinkImg-0.005.tgz my $to = File::Spec->catfile($packagedir,$f); unless (File::Copy::move($from,$to)) { my $err = $!; @@ -1217,10 +1243,10 @@ sub untar_me { sub unzip_me { my($self,$ct) = @_; $self->{archived} = "zip"; - if ($ct->unzip()) { + if (eval { $ct->unzip() }) { $self->{unwrapped} = CPAN::Distrostatus->new("YES"); } else { - $self->{unwrapped} = CPAN::Distrostatus->new("NO -- unzip failed"); + $self->{unwrapped} = CPAN::Distrostatus->new("NO -- unzip failed during unzip"); } return; } @@ -1637,23 +1663,28 @@ sub force { "prefs", "prefs_file", "prefs_file_doc", + "cleanup_after_install_done", ], make => [ "writemakefile", "make", "modulebuild", "prereq_pm", + "cleanup_after_install_done", ], test => [ "badtestcnt", "make_test", - ], + "cleanup_after_install_done", + ], install => [ "install", + "cleanup_after_install_done", ], unknown => [ "reqtype", "yaml_content", + "cleanup_after_install_done", ], ); my $methodmatch = 0; @@ -1830,7 +1861,9 @@ sub prepare { ? $ENV{PERL5LIB} : ($ENV{PERLLIB} || ""); local $ENV{PERL5OPT} = defined $ENV{PERL5OPT} ? $ENV{PERL5OPT} : ""; - local $ENV{PERL_USE_UNSAFE_INC} = exists $ENV{PERL_USE_UNSAFE_INC} ? $ENV{PERL_USE_UNSAFE_INC} : 1; # prepare + local $ENV{PERL_USE_UNSAFE_INC} = + exists $ENV{PERL_USE_UNSAFE_INC} && defined $ENV{PERL_USE_UNSAFE_INC} + ? $ENV{PERL_USE_UNSAFE_INC} : 1; # prepare $CPAN::META->set_perl5lib; local $ENV{MAKEFLAGS}; # protect us from outer make calls @@ -1992,7 +2025,9 @@ sub prepare { ($output, $ret) = eval { CPAN::Reporter::record_command($system) }; if (! defined $output or $@) { my $err = $@ || "Unknown error"; - $CPAN::Frontend->mywarn("Error while running PL phase: $err"); + $CPAN::Frontend->mywarn("Error while running PL phase: $err\n"); + $self->{writemakefile} = CPAN::Distrostatus + ->new("NO '$system' returned status $ret and no output"); return $self->goodbye("$system -- NOT OK"); } CPAN::Reporter::grade_PL( $self, $system, $output, $ret ); @@ -2062,8 +2097,14 @@ sub make { $self->pre_make(); + if (exists $self->{cleanup_after_install_done}) { + $self->post_make(); + return $self->get; + } + $self->debug("checking goto id[$self->{ID}]") if $CPAN::DEBUG; if (my $goto = $self->prefs->{goto}) { + $self->post_make(); return $self->goto($goto); } # Emergency brake if they said install Pippi and get newest perl @@ -2100,19 +2141,24 @@ is part of the perl-%s distribution. To install that, you need to run )); $self->{make} = CPAN::Distrostatus->new("NO isa perl"); $CPAN::Frontend->mysleep(1); + $self->post_make(); return; } } - $self->prepare - or return; + unless ($self->prepare){ + $self->post_make(); + return; + } if ( defined( my $sc = $self->shortcut_make) ) { + $self->post_make(); return $sc; } if ($CPAN::Signal) { delete $self->{force_update}; + $self->post_make(); return; } @@ -2121,6 +2167,7 @@ is part of the perl-%s distribution. To install that, you need to run unless (chdir $builddir) { $CPAN::Frontend->mywarn("Couldn't chdir to '$builddir': $!"); + $self->post_make(); return; } @@ -2130,17 +2177,21 @@ is part of the perl-%s distribution. To install that, you need to run ? $ENV{PERL5LIB} : ($ENV{PERLLIB} || ""); local $ENV{PERL5OPT} = defined $ENV{PERL5OPT} ? $ENV{PERL5OPT} : ""; - local $ENV{PERL_USE_UNSAFE_INC} = exists $ENV{PERL_USE_UNSAFE_INC} ? $ENV{PERL_USE_UNSAFE_INC} : 1; # make + local $ENV{PERL_USE_UNSAFE_INC} = + exists $ENV{PERL_USE_UNSAFE_INC} && defined $ENV{PERL_USE_UNSAFE_INC} + ? $ENV{PERL_USE_UNSAFE_INC} : 1; # make $CPAN::META->set_perl5lib; local $ENV{MAKEFLAGS}; # protect us from outer make calls if ($CPAN::Signal) { delete $self->{force_update}; + $self->post_make(); return; } if ($^O eq 'MacOS') { Mac::BuildTools::make($self); + $self->post_make(); return; } @@ -2151,16 +2202,23 @@ is part of the perl-%s distribution. To install that, you need to run } local @ENV{keys %env} = values %env; my $satisfied = eval { $self->satisfy_requires }; - return $self->goodbye($@) if $@; - return unless $satisfied ; + if ($@) { + return $self->goodbye($@); + } + unless ($satisfied){ + $self->post_make(); + return; + } if ($CPAN::Signal) { delete $self->{force_update}; + $self->post_make(); return; } # need to chdir again, because $self->satisfy_requires might change the directory unless (chdir $builddir) { $CPAN::Frontend->mywarn("Couldn't chdir to '$builddir': $!"); + $self->post_make(); return; } @@ -2794,12 +2852,16 @@ sub prereqs_for_slot { if ($self->{CALLED_FOR} =~ /^( CPAN::Meta::Requirements + |CPAN::DistnameInfo |version |parent |ExtUtils::MakeMaker |Test::Harness )$/x) { - $CPAN::Frontend->mywarn("Setting requirements to nil as a workaround\n"); + $CPAN::Frontend->mywarn("Please install CPAN::Meta::Requirements ". + "as soon as possible; it is needed for a reliable operation of ". + "the cpan shell; setting requirements to nil for '$1' for now ". + "to prevent deadlock during bootstrapping\n"); return; } $before = " before $self->{CALLED_FOR}"; @@ -2956,7 +3018,8 @@ sub unsat_prereq { next NEED; } } elsif ( - $self->{reqtype} =~ /^(r|c)$/ + $self->{reqtype} # e.g. maybe we came via goto? + && $self->{reqtype} =~ /^(r|c)$/ && ( exists $prereq_pm->{requires}{$need_module} || exists $prereq_pm->{opt_requires}{$need_module} ) && $nmo @@ -3531,21 +3594,31 @@ sub test { $self->pre_test(); + if (exists $self->{cleanup_after_install_done}) { + $self->post_test(); + return $self->make; + } + $self->debug("checking goto id[$self->{ID}]") if $CPAN::DEBUG; if (my $goto = $self->prefs->{goto}) { + $self->post_test(); return $self->goto($goto); } - $self->make - or return; + unless ($self->make){ + $self->post_test(); + return; + } if ( defined( my $sc = $self->shortcut_test ) ) { + $self->post_test(); return $sc; } if ($CPAN::Signal) { - delete $self->{force_update}; - return; + delete $self->{force_update}; + $self->post_test(); + return; } # warn "XDEBUG: checking for notest: $self->{notest} $self"; my $make = $self->{modulebuild} ? "Build" : "make"; @@ -3555,12 +3628,26 @@ sub test { : ($ENV{PERLLIB} || ""); local $ENV{PERL5OPT} = defined $ENV{PERL5OPT} ? $ENV{PERL5OPT} : ""; - local $ENV{PERL_USE_UNSAFE_INC} = exists $ENV{PERL_USE_UNSAFE_INC} ? $ENV{PERL_USE_UNSAFE_INC} : 1; # test + local $ENV{PERL_USE_UNSAFE_INC} = + exists $ENV{PERL_USE_UNSAFE_INC} && defined $ENV{PERL_USE_UNSAFE_INC} + ? $ENV{PERL_USE_UNSAFE_INC} : 1; # test $CPAN::META->set_perl5lib; local $ENV{MAKEFLAGS}; # protect us from outer make calls local $ENV{PERL_MM_USE_DEFAULT} = 1 if $CPAN::Config->{use_prompt_default}; local $ENV{NONINTERACTIVE_TESTING} = 1 if $CPAN::Config->{use_prompt_default}; + if ($run_allow_installing_within_test) { + my($allow_installing, $why) = $self->_allow_installing; + if (! $allow_installing) { + $CPAN::Frontend->mywarn("Testing/Installation stopped: $why\n"); + $self->introduce_myself; + $self->{make_test} = CPAN::Distrostatus->new("NO -- testing/installation stopped due $why"); + $CPAN::Frontend->mywarn(" [testing] -- NOT OK\n"); + delete $self->{force_update}; + $self->post_test(); + return; + } + } $CPAN::Frontend->myprint(sprintf "Running %s test for %s\n", $make, $self->pretty_id); my $builddir = $self->dir or @@ -3568,6 +3655,7 @@ sub test { unless (chdir $builddir) { $CPAN::Frontend->mywarn("Couldn't chdir to '$builddir': $!"); + $self->post_test(); return; } @@ -3576,6 +3664,7 @@ sub test { if ($^O eq 'MacOS') { Mac::BuildTools::make_test($self); + $self->post_test(); return; } @@ -3587,9 +3676,10 @@ sub test { # Test::Harness 3.0 self-tests, so that should be 'unless # installing Test::Harness' unless ($self->id eq $thm->distribution->id) { - $CPAN::Frontend->mywarn(qq{The version of your Test::Harness is only + $CPAN::Frontend->mywarn(qq{The version of your Test::Harness is only '$v', you need at least '2.62'. Please upgrade your Test::Harness.\n}); $self->{make_test} = CPAN::Distrostatus->new("NO Test::Harness too old"); + $self->post_test(); return; } } @@ -3611,12 +3701,14 @@ sub test { $CPAN::META->is_tested($self->{build_dir},$self->{make_test}{TIME}); } $CPAN::Frontend->myprint("Found prior test report -- OK\n"); + $self->post_test(); return; } elsif ( $reports[-1]->{grade} =~ /^(?:FAIL|NA)$/ ) { $self->{make_test} = CPAN::Distrostatus->new("NO"); $self->{badtestcnt}++; $CPAN::Frontend->mywarn("Found prior test report -- NOT OK\n"); + $self->post_test(); return; } } @@ -3660,18 +3752,45 @@ sub test { "testing without\n"); } } - if ($want_expect) { - if ($self->_should_report('test')) { - $CPAN::Frontend->mywarn("Reporting via CPAN::Reporter is currently ". - "not supported when distroprefs specify ". - "an interactive test\n"); + + FORK: { + my $pid = fork; + if (! defined $pid) { # contention + warn "Contention '$!', sleeping 2"; + sleep 2; + redo FORK; + } elsif ($pid) { # parent + if ($^O eq "MSWin32") { + wait; + } else { + SUPERVISE: while (waitpid($pid, WNOHANG) <= 0) { + if ($CPAN::Signal) { + kill 9, -$pid; + } + sleep 1; + } + } + $tests_ok = !$?; + } else { # child + POSIX::setsid() unless $^O eq "MSWin32"; + my $c_ok; + $|=1; + if ($want_expect) { + if ($self->_should_report('test')) { + $CPAN::Frontend->mywarn("Reporting via CPAN::Reporter is currently ". + "not supported when distroprefs specify ". + "an interactive test\n"); + } + $c_ok = $self->_run_via_expect($system,'test',$expect_model) == 0; + } elsif ( $self->_should_report('test') ) { + $c_ok = CPAN::Reporter::test($self, $system); + } else { + $c_ok = system($system) == 0; + } + exit !$c_ok; } - $tests_ok = $self->_run_via_expect($system,'test',$expect_model) == 0; - } elsif ( $self->_should_report('test') ) { - $tests_ok = CPAN::Reporter::test($self, $system); - } else { - $tests_ok = system($system) == 0; - } + } # FORK + $self->introduce_myself; my $but = $self->_make_test_illuminate_prereqs(); if ( $tests_ok ) { @@ -3679,6 +3798,7 @@ sub test { $CPAN::Frontend->mywarn("Tests succeeded but $but\n"); $self->{make_test} = CPAN::Distrostatus->new("NO $but"); $self->store_persistent_state; + $self->post_test(); return $self->goodbye("[dependencies] -- NA"); } $CPAN::Frontend->myprint(" $system -- OK\n"); @@ -3696,6 +3816,8 @@ sub test { $self->{make_test} = CPAN::Distrostatus->new( "NO but failure ignored because 'force' in effect" ); + } elsif ($CPAN::Signal) { + $self->{make_test} = CPAN::Distrostatus->new("NO -- Interrupted"); } else { $self->{make_test} = CPAN::Distrostatus->new("NO"); } @@ -3745,7 +3867,7 @@ sub _make_test_illuminate_prereqs { if $CPAN::DEBUG; } else { push @prereq, $m - if $m_obj->{mandatory}; + unless $self->is_locally_optional(undef, $m); } } my $but; @@ -3895,7 +4017,12 @@ sub goto { # and run where we left off my($method) = (caller(1))[3]; - CPAN->instance("CPAN::Distribution",$goto)->$method(); + my $goto_do = CPAN->instance("CPAN::Distribution",$goto); + $goto_do->called_for($self->called_for) unless $goto_do->called_for; + $goto_do->{mandatory} ||= $self->{mandatory}; + $goto_do->{reqtype} ||= $self->{reqtype}; + $goto_do->{coming_from} = $self->pretty_id; + $goto_do->$method(); CPAN::Queue->delete_first($goto); # XXX delete_first returns undef; is that what this should return # up the call stack, eg. return $sefl->goto($goto) -- xdg, 2012-04-04 @@ -3932,12 +4059,36 @@ sub shortcut_install { return undef; } +#-> sub CPAN::Distribution::is_being_sponsored ; + +# returns true if we find a distro object in the queue that has +# sponsored this one +sub is_being_sponsored { + my($self) = @_; + my $iterator = CPAN::Queue->iterator; + QITEM: while (my $q = $iterator->()) { + my $s = $q->as_string; + my $obj = CPAN::Shell->expandany($s) or next QITEM; + my $type = ref $obj; + if ( $type eq 'CPAN::Distribution' ){ + for my $module (sort keys %{$obj->{sponsored_mods} || {}}) { + return 1 if grep { $_ eq $module } $self->containsmods; + } + } + } + return 0; +} + #-> sub CPAN::Distribution::install ; sub install { my($self) = @_; $self->pre_install(); + if (exists $self->{cleanup_after_install_done}) { + return $self->test; + } + $self->debug("checking goto id[$self->{ID}]") if $CPAN::DEBUG; if (my $goto = $self->prefs->{goto}) { $self->goto($goto); @@ -4039,11 +4190,31 @@ sub install { : ($ENV{PERLLIB} || ""); local $ENV{PERL5OPT} = defined $ENV{PERL5OPT} ? $ENV{PERL5OPT} : ""; - local $ENV{PERL_USE_UNSAFE_INC} = exists $ENV{PERL_USE_UNSAFE_INC} ? $ENV{PERL_USE_UNSAFE_INC} : 1; # install + local $ENV{PERL_USE_UNSAFE_INC} = + exists $ENV{PERL_USE_UNSAFE_INC} && defined $ENV{PERL_USE_UNSAFE_INC} + ? $ENV{PERL_USE_UNSAFE_INC} : 1; # install $CPAN::META->set_perl5lib; local $ENV{PERL_MM_USE_DEFAULT} = 1 if $CPAN::Config->{use_prompt_default}; local $ENV{NONINTERACTIVE_TESTING} = 1 if $CPAN::Config->{use_prompt_default}; + my $install_env; + if ($self->prefs->{install}) { + $install_env = $self->prefs->{install}{env}; + } + local @ENV{keys %$install_env} = values %$install_env if $install_env; + + if (! $run_allow_installing_within_test) { + my($allow_installing, $why) = $self->_allow_installing; + if (! $allow_installing) { + $CPAN::Frontend->mywarn("Installation stopped: $why\n"); + $self->introduce_myself; + $self->{install} = CPAN::Distrostatus->new("NO -- installation stopped due $why"); + $CPAN::Frontend->mywarn(" $system -- NOT OK\n"); + delete $self->{force_update}; + $self->post_install(); + return; + } + } my($pipe) = FileHandle->new("$system $stderr |"); unless ($pipe) { $CPAN::Frontend->mywarn("Can't execute $system: $!"); @@ -4069,7 +4240,8 @@ sub install { $CPAN::META->is_installed($self->{build_dir}); $self->{install} = CPAN::Distrostatus->new("YES"); if ($CPAN::Config->{'cleanup_after_install'} - && ! $self->is_dot_dist) { + && ! $self->is_dot_dist + && ! $self->is_being_sponsored) { my $parent = File::Spec->catdir( $self->{build_dir}, File::Spec->updir ); chdir $parent or $CPAN::Frontend->mydie("Couldn't chdir to $parent: $!\n"); File::Path::rmtree($self->{build_dir}); @@ -4077,6 +4249,7 @@ sub install { if (-e $yml) { unlink $yml or $CPAN::Frontend->mydie("Couldn't unlink $yml: $!\n"); } + $self->{cleanup_after_install_done}=1; } } else { $self->{install} = CPAN::Distrostatus->new("NO"); @@ -4113,6 +4286,162 @@ sub install { return !! $close_ok; } +sub blib_pm_walk { + my @queue = grep { -e $_ } File::Spec->catdir("blib","lib"), File::Spec->catdir("blib","arch"); + return sub { + LOOP: { + if (@queue) { + my $file = shift @queue; + if (-d $file) { + my $dh; + opendir $dh, $file or next; + my @newfiles = map { + my @ret; + my $maybedir = File::Spec->catdir($file, $_); + if (-d $maybedir) { + unless (File::Spec->catdir("blib","arch","auto") eq $maybedir) { + # prune the blib/arch/auto directory, no pm files there + @ret = $maybedir; + } + } elsif (/\.pm$/) { + my $mustbefile = File::Spec->catfile($file, $_); + if (-f $mustbefile) { + @ret = $mustbefile; + } + } + @ret; + } grep { + $_ ne "." + && $_ ne ".." + } readdir $dh; + push @queue, @newfiles; + redo LOOP; + } else { + return $file; + } + } else { + return; + } + } + }; +} + +sub _allow_installing { + my($self) = @_; + my $id = my $pretty_id = $self->pretty_id; + if ($self->{CALLED_FOR}) { + $id .= " (called for $self->{CALLED_FOR})"; + } + my $allow_down = CPAN::HandleConfig->prefs_lookup($self,q{allow_installing_module_downgrades}); + $allow_down ||= "ask/yes"; + my $allow_outdd = CPAN::HandleConfig->prefs_lookup($self,q{allow_installing_outdated_dists}); + $allow_outdd ||= "ask/yes"; + return 1 if + $allow_down eq "yes" + && $allow_outdd eq "yes"; + if (($allow_outdd ne "yes") && ! $CPAN::META->has_inst('CPAN::DistnameInfo')) { + return 1 if grep { $_ eq 'CPAN::DistnameInfo'} $self->containsmods; + if ($allow_outdd ne "yes") { + $CPAN::Frontend->mywarn("The current configuration of allow_installing_outdated_dists is '$allow_outdd', but for this option we would need 'CPAN::DistnameInfo' installed. Please install 'CPAN::DistnameInfo' as soon as possible. As long as we are not equipped with 'CPAN::DistnameInfo' this option does not take effect\n"); + $allow_outdd = "yes"; + } + } + return 1 if + $allow_down eq "yes" + && $allow_outdd eq "yes"; + my($dist_version, $dist_dist); + if ($allow_outdd ne "yes"){ + my $dni = CPAN::DistnameInfo->new($pretty_id); + $dist_version = $dni->version; + $dist_dist = $dni->dist; + } + my $iterator = blib_pm_walk(); + my(@down,@outdd); + while (my $file = $iterator->()) { + my $version = CPAN::Module->parse_version($file); + my($volume, $directories, $pmfile) = File::Spec->splitpath( $file ); + my @dirs = File::Spec->splitdir( $directories ); + my(@blib_plus1) = splice @dirs, 0, 2; + my($pmpath) = File::Spec->catfile(grep { length($_) } @dirs, $pmfile); + unless ($allow_down eq "yes") { + if (my $inst_file = $self->_file_in_path($pmpath, \@INC)) { + my $inst_version = CPAN::Module->parse_version($inst_file); + my $cmp = CPAN::Version->vcmp($version, $inst_version); + if ($cmp) { + if ($cmp < 0) { + push @down, { pmpath => $pmpath, version => $version, inst_version => $inst_version }; + } + } + if (@down) { + my $why = "allow_installing_module_downgrades: $id contains downgrading module(s) (e.g. '$down[0]{pmpath}' would downgrade installed '$down[0]{inst_version}' to '$down[0]{version}')"; + if (my($default) = $allow_down =~ m|^ask/(.+)|) { + $default = "yes" unless $default =~ /^(y|n)/i; + my $answer = CPAN::Shell::colorable_makemaker_prompt + ("$why. Do you want to allow installing it?", + $default, "colorize_warn"); + $allow_down = $answer =~ /^\s*y/i ? "yes" : "no"; + } + if ($allow_down eq "no") { + return (0, $why); + } + } + } + } + unless ($allow_outdd eq "yes") { + my @pmpath = (@dirs, $pmfile); + $pmpath[-1] =~ s/\.pm$//; + my $mo = CPAN::Shell->expand("Module",join "::", grep { length($_) } @pmpath); + if ($mo) { + my $cpan_version = $mo->cpan_version; + my $is_lower = CPAN::Version->vlt($version, $cpan_version); + my $other_dist; + if (my $mo_dist = $mo->distribution) { + $other_dist = $mo_dist->pretty_id; + my $dni = CPAN::DistnameInfo->new($other_dist); + if ($dni->dist eq $dist_dist){ + if (CPAN::Version->vgt($dni->version, $dist_version)) { + push @outdd, { + pmpath => $pmpath, + cpan_path => $dni->pathname, + dist_version => $dni->version, + dist_dist => $dni->dist, + }; + } + } + } + } + if (@outdd && $allow_outdd ne "yes") { + my $why = "allow_installing_outdated_dists: $id contains module(s) that are indexed on the CPAN with a different distro: (e.g. '$outdd[0]{pmpath}' is indexed with '$outdd[0]{cpan_path}')"; + if ($outdd[0]{dist_dist} eq $dist_dist) { + $why .= ", and this has a higher distribution-version, i.e. version '$outdd[0]{dist_version}' is higher than '$dist_version')"; + } + if (my($default) = $allow_outdd =~ m|^ask/(.+)|) { + $default = "yes" unless $default =~ /^(y|n)/i; + my $answer = CPAN::Shell::colorable_makemaker_prompt + ("$why. Do you want to allow installing it?", + $default, "colorize_warn"); + $allow_outdd = $answer =~ /^\s*y/i ? "yes" : "no"; + } + if ($allow_outdd eq "no") { + return (0, $why); + } + } + } + } + return 1; +} + +sub _file_in_path { # similar to CPAN::Module::_file_in_path + my($self,$pmpath,$incpath) = @_; + my($dir,@packpath); + foreach $dir (@$incpath) { + my $pmfile = File::Spec->catfile($dir,$pmpath); + if (-f $pmfile) { + return $pmfile; + } + } + return; +} sub introduce_myself { my($self) = @_; $CPAN::Frontend->myprint(sprintf(" %s\n",$self->pretty_id)); @@ -4361,6 +4690,8 @@ sub _should_report { die "_should_report() requires a 'phase' argument" if ! defined $phase; + return unless $CPAN::META->has_usable("CPAN::Reporter"); + # configured my $test_report = CPAN::HandleConfig->prefs_lookup($self, q{test_report}); diff --git a/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/FTP.pm b/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/FTP.pm index 6d9800e31b1..1688a118e4c 100644 --- a/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/FTP.pm +++ b/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/FTP.pm @@ -15,7 +15,7 @@ use vars qw($connect_to_internet_ok $Ua $Thesite $ThesiteURL $Themethod); use vars qw( $VERSION ); -$VERSION = "5.5011"; +$VERSION = "5.5012"; sub _plus_append_open { my($fh, $file) = @_; @@ -23,7 +23,7 @@ sub _plus_append_open { mkpath $parent_dir; my($cnt); until (open $fh, "+>>$file") { - next if $! == Errno::EAGAIN; # don't increment on EAGAIN + next if exists &Errno::EAGAIN && $! == &Errno::EAGAIN; # don't increment on EAGAIN $CPAN::Frontend->mydie("Could not open '$file' after 10000 tries: $!") if ++$cnt > 100000; sleep 0.0001; mkpath $parent_dir; @@ -34,6 +34,8 @@ sub _plus_append_open { # if they want to rewrite, they need to pass in a filehandle sub _ftp_statistics { my($self,$fh) = @_; + my $ftpstats_size = $CPAN::Config->{ftpstats_size}; + return if defined $ftpstats_size && $ftpstats_size <= 0; my $locktype = $fh ? LOCK_EX : LOCK_SH; # XXX On Windows flock() implements mandatory locking, so we can # XXX only use shared locking to still allow _yaml_load_file() to @@ -120,18 +122,23 @@ sub _add_to_statistics { my @debug; @debug = $time if $sdebug; my $fullstats = $self->_ftp_statistics($fh); - close $fh; + close $fh if $fh && defined(fileno($fh)); $fullstats->{history} ||= []; push @debug, scalar @{$fullstats->{history}} if $sdebug; push @debug, time if $sdebug; push @{$fullstats->{history}}, $stats; # YAML.pm 0.62 is unacceptably slow with 999; # YAML::Syck 0.82 has no noticable performance problem with 999; - my $ftpstats_size = $CPAN::Config->{ftpstats_size} || 99; + my $ftpstats_size = $CPAN::Config->{ftpstats_size}; + $ftpstats_size = 99 unless defined $ftpstats_size; my $ftpstats_period = $CPAN::Config->{ftpstats_period} || 14; while ( - @{$fullstats->{history}} > $ftpstats_size - || $time - $fullstats->{history}[0]{start} > 86400*$ftpstats_period + @{$fullstats->{history} || []} + && + ( + @{$fullstats->{history}} > $ftpstats_size + || $time - $fullstats->{history}[0]{start} > 86400*$ftpstats_period + ) ) { shift @{$fullstats->{history}} } diff --git a/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/FirstTime.pm b/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/FirstTime.pm index 49fa8ab7b95..af4a6d77591 100644 --- a/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/FirstTime.pm +++ b/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/FirstTime.pm @@ -9,8 +9,9 @@ use File::Basename (); use File::Path (); use File::Spec (); use CPAN::Mirrors (); +use CPAN::Version (); use vars qw($VERSION $auto_config); -$VERSION = "5.5311"; +$VERSION = "5.5314"; =head1 NAME @@ -37,6 +38,34 @@ my @podpara = split /\n\n/, <<'=back'; =over 2 +=item allow_installing_module_downgrades + +The CPAN shell can watch the C directories that are built up +before running C to determine whether the current +distribution will end up with modules being overwritten with decreasing module version numbers. It +can then let the build of this distro fail when it discovers a +downgrade. + +Do you want to allow installing distros with decreasing module +versions compared to what you have installed (yes, no, ask/yes, +ask/no)? + +=item allow_installing_outdated_dists + +The CPAN shell can watch the C directories that are built up +before running C to determine whether the current +distribution contains modules that are indexed with a distro with a +higher distro-version number than the current one. It can +then let the build of this distro fail when it would not represent the +most up-to-date version of the distro. + +Note: choosing anyhing but 'yes' for this option will need +Devel::DistnameInfo being installed for taking effect. + +Do you want to allow installing distros that are not indexed as the +highest distro-version for all contained modules (yes, no, ask/yes, +ask/no)? + =item auto_commit Normally CPAN.pm keeps config variables in memory and changes need to @@ -192,7 +221,8 @@ How many days shall we keep statistics about downloads? =item ftpstats_size Statistics about downloads are truncated by size and period -simultaneously. +simultaneously. Setting this to zero or negative disables download +statistics. How many items shall we keep in the statistics about downloads? @@ -567,6 +597,23 @@ regardless of the history using "force". Do you want to rely on the test report history (yes/no)? +=item urllist_ping_external + +When automatic selection of the nearest cpan mirrors is performed, +turn on the use of the external ping via Net::Ping::External. This is +recommended in the case the local network has a transparent proxy. + +Do you want to use the external ping command when autoselecting +mirrors? + +=item urllist_ping_verbose + +When automatic selection of the nearest cpan mirrors is performed, +this option can be used to turn on verbosity during the selection +process. + +Do you want to see verbosity turned on when autoselecting mirrors? + =item use_prompt_default When this is true, CPAN will set PERL_MM_USE_DEFAULT to a true @@ -1088,6 +1135,14 @@ sub init { my_dflt_prompt(mbuild_install_arg => "", $matcher); + for my $o (qw( + allow_installing_outdated_dists + allow_installing_module_downgrades + )) { + my_prompt_loop($o => 'ask/no', $matcher, + 'yes|no|ask/yes|ask/no'); + } + # #== use_prompt_default # @@ -1263,6 +1318,12 @@ sub init { # Allow matching but don't show during manual config if ($matcher) { + if ("urllist_ping_external" =~ $matcher) { + my_yn_prompt(urllist_ping_external => 0, $matcher); + } + if ("urllist_ping_verbose" =~ $matcher) { + my_yn_prompt(urllist_ping_verbose => 0, $matcher); + } if ("randomize_urllist" =~ $matcher) { my_dflt_prompt(randomize_urllist => 0, $matcher); } @@ -1450,7 +1511,7 @@ sub _do_pick_mirrors { $CPAN::Frontend->myprint($prompts{urls_intro}); # Only prompt for auto-pick if Net::Ping is new enough to do timings my $_conf = 'n'; - if ( $CPAN::META->has_usable("Net::Ping") && Net::Ping->VERSION gt '2.13') { + if ( $CPAN::META->has_usable("Net::Ping") && CPAN::Version->vgt(Net::Ping->VERSION, '2.13')) { $_conf = prompt($prompts{auto_pick}, "yes"); } else { prompt("Autoselection disabled due to Net::Ping missing or insufficient. Please press ENTER"); @@ -1678,7 +1739,6 @@ sub my_yn_prompt { my $default; defined($default = $CPAN::Config->{$item}) or $default = $dflt; - # $DB::single = 1; if (!$auto_config && (!$m || $item =~ /$m/)) { if (my $intro = $prompts{$item . "_intro"}) { $CPAN::Frontend->myprint($intro); @@ -1697,7 +1757,8 @@ sub my_prompt_loop { my $ans; if (!$auto_config && (!$m || $item =~ /$m/)) { - $CPAN::Frontend->myprint($prompts{$item . "_intro"}); + my $intro = $prompts{$item . "_intro"}; + $CPAN::Frontend->myprint($intro) if defined $intro; $CPAN::Frontend->myprint(" <$item>\n"); do { $ans = prompt($prompts{$item}, $default); } until $ans =~ /$ok/; @@ -1915,17 +1976,25 @@ sub auto_mirrored_by { my $mirrors = CPAN::Mirrors->new($local); my $cnt = 0; + my $callback_was_active = 0; my @best = $mirrors->best_mirrors( how_many => 3, callback => sub { + $callback_was_active++; $CPAN::Frontend->myprint("."); if ($cnt++>60) { $cnt=0; $CPAN::Frontend->myprint("\n"); } }, + $CPAN::Config->{urllist_ping_external} ? (external_ping => 1) : (), + $CPAN::Config->{urllist_ping_verbose} ? (verbose => 1) : (), ); - my $urllist = [ map { $_->http } @best ]; + my $urllist = [ + map { $_->http } + grep { $_ && ref $_ && $_->can('http') } + @best + ]; push @$urllist, grep { /^file:/ } @{$CPAN::Config->{urllist}}; - $CPAN::Frontend->myprint(" done!\n\n"); + $CPAN::Frontend->myprint(" done!\n\n") if $callback_was_active; return $urllist } diff --git a/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/HandleConfig.pm b/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/HandleConfig.pm index c72439f92cb..e24a969c11f 100644 --- a/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/HandleConfig.pm +++ b/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/HandleConfig.pm @@ -12,7 +12,7 @@ CPAN::HandleConfig - internal configuration handling for CPAN.pm =cut -$VERSION = "5.5008"; # see also CPAN::Config::VERSION at end of file +$VERSION = "5.5011"; # see also CPAN::Config::VERSION at end of file %can = ( commit => "Commit changes to disk", @@ -33,6 +33,8 @@ $VERSION = "5.5008"; # see also CPAN::Config::VERSION at end of file %keys = map { $_ => undef } ( + "allow_installing_module_downgrades", + "allow_installing_outdated_dists", "applypatch", "auto_commit", "build_cache", @@ -112,6 +114,8 @@ $VERSION = "5.5008"; # see also CPAN::Config::VERSION at end of file "trust_test_report_history", "unzip", "urllist", + "urllist_ping_verbose", + "urllist_ping_external", "use_prompt_default", "use_sqlite", "username", @@ -124,6 +128,8 @@ $VERSION = "5.5008"; # see also CPAN::Config::VERSION at end of file my %prefssupport = map { $_ => 1 } ( + "allow_installing_module_downgrades", + "allow_installing_outdated_dists", "build_requires_install_policy", "check_sigs", "make", @@ -751,7 +757,7 @@ sub prefs_lookup { return $distro->prefs->{cpanconfig}{$what}; } else { $CPAN::Frontend->mywarn("Warning: $what not yet officially ". - "supported for distroprefs, doing a normal lookup"); + "supported for distroprefs, doing a normal lookup\n"); return $CPAN::Config->{$what}; } } @@ -770,7 +776,7 @@ sub prefs_lookup { use strict; use vars qw($AUTOLOAD $VERSION); - $VERSION = "5.5008"; + $VERSION = "5.5011"; # formerly CPAN::HandleConfig was known as CPAN::Config sub AUTOLOAD { ## no critic diff --git a/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Mirrors.pm b/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Mirrors.pm index 29bb7216ffc..721ead2a85d 100644 --- a/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Mirrors.pm +++ b/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Mirrors.pm @@ -19,7 +19,7 @@ CPAN::Mirrors - Get CPAN mirror information and select a fast one my( $m ) = @_; printf "%s = %s\n", $m->hostname, $m->rtt }; - $mirrors->get_mirrors_timings( \@mirrors, $seen, $callback ); + $mirrors->get_mirrors_timings( \@mirrors, $seen, $callback, %args ); @mirrors = sort { $a->rtt <=> $b->rtt } @mirrors; @@ -34,12 +34,13 @@ CPAN::Mirrors - Get CPAN mirror information and select a fast one package CPAN::Mirrors; use strict; use vars qw($VERSION $urllist $silent); -$VERSION = "2.21"; +$VERSION = "2.27"; use Carp; use FileHandle; use Fcntl ":flock"; use Net::Ping (); +use CPAN::Version; =item new( LOCAL_FILE_NAME ) @@ -82,7 +83,7 @@ Return a list of continents based on those defined in F. sub continents { my ($self) = @_; - return sort keys %{$self->{geography}}; + return sort keys %{$self->{geography} || {}}; } =item countries( [CONTINENTS] ) @@ -99,7 +100,7 @@ sub countries { @continents = $self->continents unless @continents; my @countries; for my $c (@continents) { - push @countries, sort keys %{ $self->{geography}{$c} }; + push @countries, sort keys %{ $self->{geography}{$c} || {} }; } return @countries; } @@ -165,22 +166,25 @@ dynamic DNS to give a close mirror. =cut -sub default_mirror { 'http://www.cpan.org/' } +sub default_mirror { + CPAN::Mirrored::By->new({ http => 'http://www.cpan.org/'}); +} =item best_mirrors C checks for the best mirrors based on the list of continents you pass, or, without that, all continents, as defined by C. It pings each mirror, up to the value of -C. In list context, it returns up to C mirror. +C. In list context, it returns up to C mirrors. In scalar context, it returns the single best mirror. Arguments - how_many - the number of mirrors to return. Default: 1 - callback - a callback for find_best_continents - verbose - true or false on all the whining and moaning. Default: false - continents - an array ref of the continents to check + how_many - the number of mirrors to return. Default: 1 + callback - a callback for find_best_continents + verbose - true or false on all the whining and moaning. Default: false + continents - an array ref of the continents to check + external_ping - if true, use external ping via Net::Ping::External. Default: false If you don't specify the continents, C calls C to get the list of continents to check. @@ -188,6 +192,9 @@ C to get the list of continents to check. If you don't have L v2.13 or later, needed for timings, this returns the default mirror. +C should be set and then C needs +to be installed, if the local network has a transparent proxy. + =cut sub best_mirrors { @@ -197,10 +204,12 @@ sub best_mirrors { my $verbose = defined $args{verbose} ? $args{verbose} : 0; my $continents = $args{continents} || []; $continents = [$continents] unless ref $continents; + $args{external_ping} = 0 unless defined $args{external_ping}; + my $external_ping = $args{external_ping}; # Old Net::Ping did not do timings at all my $min_version = '2.13'; - unless( Net::Ping->VERSION gt $min_version ) { + unless( CPAN::Version->vgt(Net::Ping->VERSION, $min_version) ) { carp sprintf "Net::Ping version is %s (< %s). Returning %s", Net::Ping->VERSION, $min_version, $self->default_mirror; return $self->default_mirror; @@ -211,9 +220,10 @@ sub best_mirrors { if ( ! @$continents ) { print "Searching for the best continent ...\n" if $verbose; my @best_continents = $self->find_best_continents( - seen => $seen, - verbose => $verbose, - callback => $callback, + seen => $seen, + verbose => $verbose, + callback => $callback, + external_ping => $external_ping, ); # Only add enough continents to find enough mirrors @@ -225,12 +235,18 @@ sub best_mirrors { } } + return $self->default_mirror unless @$continents; print "Scanning " . join(", ", @$continents) . " ...\n" if $verbose; my $trial_mirrors = $self->get_n_random_mirrors_by_continents( 3 * $how_many, $continents->[0] ); - my $timings = $self->get_mirrors_timings( $trial_mirrors, $seen, $callback ); - return [] unless @$timings; + my $timings = $self->get_mirrors_timings( + $trial_mirrors, + $seen, + $callback, + %args, + ); + return $self->default_mirror unless @$timings; $how_many = @$timings if $how_many > @$timings; @@ -268,7 +284,7 @@ sub get_n_random_mirrors_by_continents { \@long_list; } -=item get_mirrors_timings( MIRROR_LIST, SEEN, CALLBACK ); +=item get_mirrors_timings( MIRROR_LIST, SEEN, CALLBACK, %ARGS ); Pings the listed mirrors and returns a list of mirrors sorted in ascending ping times. @@ -286,7 +302,7 @@ ping. =cut sub get_mirrors_timings { - my( $self, $mirror_list, $seen, $callback ) = @_; + my( $self, $mirror_list, $seen, $callback, %args ) = @_; $seen = {} unless defined $seen; croak "The mirror list argument must be an array reference" @@ -302,8 +318,9 @@ sub get_mirrors_timings { next unless eval{ $m->http }; if( $self->_try_a_ping( $seen, $m, ) ) { - my $ping = $m->ping; + my $ping = $m->ping(%args); next unless defined $ping; + # printf "m %s ping %s\n", $m, $ping; push @$timings, $m; $callback->( $m ) if $callback; } @@ -367,20 +384,21 @@ value. sub find_best_continents { my ($self, %args) = @_; - $args{n} ||= 3; + $args{n} ||= 3; $args{verbose} = 0 unless defined $args{verbose}; $args{seen} = {} unless defined $args{seen}; croak "The seen argument must be a hash reference" unless ref $args{seen} eq ref {}; $args{ping_cache_limit} = 24 * 60 * 60 - unless defined $args{ping_cache_time}; + unless defined $args{ping_cache_limit}; croak "callback must be a subroutine" if( defined $args{callback} and ref $args{callback} ne ref sub {} ); my %medians; CONT: for my $c ( $self->continents ) { - print "Testing $c\n" if $args{verbose}; my @mirrors = $self->mirrors( $self->countries($c) ); + printf "Testing %s (%d mirrors)\n", $c, scalar @mirrors + if $args{verbose}; next CONT unless @mirrors; my $n = (@mirrors < $args{n}) ? @mirrors : $args{n}; @@ -389,11 +407,18 @@ sub find_best_continents { my $tries = 0; RANDOM: while ( @mirrors && @tests < $n && $tries++ < 15 ) { my $m = splice( @mirrors, int(rand(@mirrors)), 1 ); - if( $self->_try_a_ping( $args{seen}, $m, $args{ping_cache_limit} ) ) { - $self->get_mirrors_timings( [ $m ], $args{seen}, $args{callback} ); + if( $self->_try_a_ping( + $args{seen}, $m, $args{ping_cache_limit} + )) { + $self->get_mirrors_timings( + [ $m ], + $args{seen}, + $args{callback}, + %args, + ); next RANDOM unless defined $args{seen}{$m->hostname}->rtt; } - printf "\t%s -> %0.2f ms\n", + printf "(%s -> %0.2f ms)", $m->hostname, join ' ', 1000 * $args{seen}{$m->hostname}->rtt if $args{verbose}; @@ -409,8 +434,12 @@ sub find_best_continents { if ( $args{verbose} ) { print "Median result by continent:\n"; - for my $c ( @best_cont ) { - printf( " %4d ms %s\n", int($medians{$c}*1000+.5), $c ); + if ( @best_cont ) { + for my $c ( @best_cont ) { + printf( " %7.2f ms %s\n", $medians{$c}*1000, $c ); + } + } else { + print " **** No results found ****\n" } } @@ -421,12 +450,14 @@ sub find_best_continents { sub _try_a_ping { my ($self, $seen, $mirror, $ping_cache_limit ) = @_; - ( ! exists $seen->{$mirror->hostname} ) + ( ! exists $seen->{$mirror->hostname} or - ( ! defined $seen->{$mirror->hostname}->rtt - or - time - $seen->{$mirror->hostname}->rtt > $ping_cache_limit + or + ! defined $ping_cache_limit + or + time - $seen->{$mirror->hostname}->ping_time + > $ping_cache_limit ) } @@ -445,7 +476,13 @@ sub _get_median_ping_time { } }; - printf "\t-->median time: %0.2f ms\n", $median * 1000 if $verbose; + if ($verbose){ + if ($median) { + printf " => median time: %.2f ms\n", $median * 1000 + } else { + printf " => **** no median time ****\n"; + } + } return $median; } @@ -546,9 +583,17 @@ sub url { } sub ping { - my $self = shift; + my($self, %args) = @_; - my $ping = Net::Ping->new($^O eq 'VMS' ? 'icmp' : 'tcp', 1); + my $external_ping = $args{external_ping}; + if ($external_ping) { + eval { require Net::Ping::External } + or die "Net::Ping::External required to use external ping command"; + } + my $ping = Net::Ping->new( + $external_ping ? 'external' : $^O eq 'VMS' ? 'icmp' : 'tcp', + 1 + ); my ($proto) = $self->url =~ m{^([^:]+)}; my $port = $proto eq 'http' ? 80 : 21; return unless $port; @@ -561,7 +606,11 @@ sub ping { } $ping->hires(1) if $ping->can('hires'); - my ($alive,$rtt) = $ping->ping($self->hostname); + my ($alive,$rtt) = eval { $ping->ping($self->hostname); }; + my $verbose = $args{verbose}; + if ($verbose && !$alive) { + printf "(host %s not alive)", $self->hostname; + } $self->{rtt} = $alive ? $rtt : undef; $self->{ping_time} = time; diff --git a/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Queue.pm b/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Queue.pm index 8027d22d3b2..259e47e05f7 100644 --- a/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Queue.pm +++ b/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Queue.pm @@ -72,7 +72,7 @@ package CPAN::Queue; # in CPAN::Distribution::rematein. use vars qw{ @All $VERSION }; -$VERSION = "5.5002"; +$VERSION = "5.5003"; # CPAN::Queue::queue_item ; sub queue_item { @@ -207,6 +207,17 @@ sub reqtype_of { return $best; } +sub iterator { + my $i = 0; + return sub { + until ($All[$i] || $i > $#All) { + $i++; + } + return if $i > $#All; + return $All[$i++] + }; +} + 1; __END__ diff --git a/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Shell.pm b/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Shell.pm index b5d88924df9..4140fb8af23 100644 --- a/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Shell.pm +++ b/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Shell.pm @@ -47,7 +47,7 @@ use vars qw( "CPAN/Tarzip.pm", "CPAN/Version.pm", ); -$VERSION = "5.5008"; +$VERSION = "5.5009"; # record the initial timestamp for reload. $reload = { map {$INC{$_} ? ($_,(stat $INC{$_})[9]) : ()} @relo }; @CPAN::Shell::ISA = qw(CPAN::Debug); @@ -1611,9 +1611,10 @@ sub mydie { # sub CPAN::Shell::colorable_makemaker_prompt ; sub colorable_makemaker_prompt { - my($foo,$bar) = @_; + my($foo,$bar,$ornament) = @_; + $ornament ||= "colorize_print"; if (CPAN::Shell->colorize_output) { - my $ornament = $CPAN::Config->{colorize_print}||'bold blue on_white'; + my $ornament = $CPAN::Config->{$ornament}||'bold blue on_white'; my $color_on = eval { Term::ANSIColor::color($ornament); } || ""; print $color_on; } @@ -1867,7 +1868,7 @@ to find objects with matching identifiers. } } if (UNIVERSAL::can($obj, 'called_for')) { - $obj->called_for($s); + $obj->called_for($s) unless $obj->called_for; } CPAN->debug(qq{pragma[@pragma]meth[$meth]}. qq{ID[$obj->{ID}]}) if $CPAN::DEBUG; diff --git a/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Tarzip.pm b/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Tarzip.pm index f585a01bf72..6517cb8fd72 100644 --- a/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Tarzip.pm +++ b/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Tarzip.pm @@ -4,7 +4,7 @@ use strict; use vars qw($VERSION @ISA $BUGHUNTING); use CPAN::Debug; use File::Basename qw(basename); -$VERSION = "5.5012"; +$VERSION = "5.5013"; # module is internal to CPAN.pm @ISA = qw(CPAN::Debug); ## no critic @@ -41,6 +41,11 @@ CPAN shell prompt to register it as external program. bless $me, $class; } +sub _zlib_ok () { + $CPAN::META->has_inst("Compress::Zlib") or return; + Compress::Zlib->can('gzopen'); +} + sub _my_which { my($what) = @_; if ($CPAN::Config->{$what}) { @@ -66,7 +71,7 @@ sub _my_which { sub gzip { my($self,$read) = @_; my $write = $self->{FILE}; - if ($CPAN::META->has_inst("Compress::Zlib")) { + if (_zlib_ok) { my($buffer,$fhw); $fhw = FileHandle->new($read) or $CPAN::Frontend->mydie("Could not open $read: $!"); @@ -89,7 +94,7 @@ sub gzip { sub gunzip { my($self,$write) = @_; my $read = $self->{FILE}; - if ($CPAN::META->has_inst("Compress::Zlib")) { + if (_zlib_ok) { my($buffer,$fhw); $fhw = FileHandle->new(">$write") or $CPAN::Frontend->mydie("Could not open >$write: $!"); @@ -120,7 +125,7 @@ sub gtest { my($buffer,$len); $len = 0; my $gz = Compress::Bzip2::bzopen($read, "rb") - or $CPAN::Frontend->mydie(sprintf("Cannot gzopen %s: %s\n", + or $CPAN::Frontend->mydie(sprintf("Cannot bzopen %s: %s\n", $read, $Compress::Bzip2::bzerrno)); while ($gz->bzread($buffer) > 0 ) { @@ -135,7 +140,7 @@ sub gtest { } $gz->gzclose(); CPAN->debug("err[$err]success[$success]") if $CPAN::DEBUG; - } elsif ( $read=~/\.(?:gz|tgz)$/ && $CPAN::META->has_inst("Compress::Zlib") ) { + } elsif ( $read=~/\.(?:gz|tgz)$/ && _zlib_ok ) { # After I had reread the documentation in zlib.h, I discovered that # uncompressed files do not lead to an gzerror (anymore?). my($buffer,$len); @@ -183,7 +188,7 @@ sub TIEHANDLE { $CPAN::Frontend->mydie("Could not bzopen $file"); $self->{GZ} = $gz; $class->debug("via Compress::Bzip2"); - } elsif ($file =~/\.(?:gz|tgz)$/ && $CPAN::META->has_inst("Compress::Zlib")) { + } elsif ($file =~/\.(?:gz|tgz)$/ && _zlib_ok) { my $gz = Compress::Zlib::gzopen($file,"rb") or $CPAN::Frontend->mydie("Could not gzopen $file"); $self->{GZ} = $gz; @@ -260,7 +265,7 @@ sub untar { } elsif ( $CPAN::META->has_usable("Archive::Tar") && - $CPAN::META->has_inst("Compress::Zlib") ) { + _zlib_ok ) { my $prefer_external_tar = $CPAN::Config->{prefer_external_tar}; unless (defined $prefer_external_tar) { if ($^O =~ /(MSWin32|solaris)/) { @@ -294,7 +299,7 @@ END_WARN $foundAT = "nothing"; } my $foundCZ; - if ($CPAN::META->has_inst("Compress::Zlib")) { + if (_zlib_ok) { $foundCZ = sprintf "'%s'", "Compress::Zlib::"->VERSION; } elsif ($foundAT) { $foundCZ = "nothing"; diff --git a/gnu/usr.bin/perl/cpan/CPAN/scripts/cpan b/gnu/usr.bin/perl/cpan/CPAN/scripts/cpan index 0041b8ab203..4e900b00547 100644 --- a/gnu/usr.bin/perl/cpan/CPAN/scripts/cpan +++ b/gnu/usr.bin/perl/cpan/CPAN/scripts/cpan @@ -4,7 +4,12 @@ BEGIN { pop @INC if $INC[-1] eq '.' } use strict; use vars qw($VERSION); -use App::Cpan '1.64'; +use App::Cpan; +use CPAN::Version; +my $minver = '1.64'; +if ( CPAN::Version->vlt($App::Cpan::VERSION, $minver) ) { + warn "WARNING: your version of App::Cpan is $App::Cpan::VERSION while we would expect at least $minver"; +} $VERSION = '1.64'; my $rc = App::Cpan->run( @ARGV ); diff --git a/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/bzip2-src/bzlib.c b/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/bzip2-src/bzlib.c index aaf1b4005b0..137ba9f7d5d 100644 --- a/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/bzip2-src/bzlib.c +++ b/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/bzip2-src/bzlib.c @@ -102,12 +102,16 @@ static void* default_bzalloc ( void* opaque, Int32 items, Int32 size ) { void* v = malloc ( items * size ); + ((void)opaque); /* Silence unused parameter warning */ + return v; } static void default_bzfree ( void* opaque, void* addr ) { + ((void)opaque); /* Silence unused parameter warning */ + if (addr != NULL) free ( addr ); } diff --git a/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/bzip2-src/compress.c b/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/bzip2-src/compress.c index 5dfa00231b0..84e1574c914 100644 --- a/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/bzip2-src/compress.c +++ b/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/bzip2-src/compress.c @@ -258,6 +258,7 @@ void sendMTFValues ( EState* s ) UInt16* mtfv = s->mtfv; + ((void)nBytes); /* Silence variable ‘nBytes’ set but not used warning */ if (s->verbosity >= 3) VPrintf3( " %d in block, %d after MTF & 1-2 coding, " "%d+2 syms in use\n", diff --git a/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/bzip2-src/decompress.c b/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/bzip2-src/decompress.c index 5afd6515788..1a01f1d9f2f 100644 --- a/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/bzip2-src/decompress.c +++ b/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/bzip2-src/decompress.c @@ -41,6 +41,7 @@ void makeMaps_d ( DState* s ) { retVal = rrr; goto save_state_and_return; }; #define GET_BITS(lll,vvv,nnn) \ + /* FALLTHROUGH */ \ case lll: s->state = lll; \ while (True) { \ if (s->bsLive >= nnn) { \ diff --git a/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/lib/Compress/Raw/Bzip2.pm b/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/lib/Compress/Raw/Bzip2.pm index ce2ac2a398b..2aa14188d7e 100644 --- a/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/lib/Compress/Raw/Bzip2.pm +++ b/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/lib/Compress/Raw/Bzip2.pm @@ -11,7 +11,7 @@ use Carp ; use bytes ; our ($VERSION, $XS_VERSION, @ISA, @EXPORT, $AUTOLOAD); -$VERSION = '2.089'; +$VERSION = '2.093'; $XS_VERSION = $VERSION; $VERSION = eval $VERSION; diff --git a/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/private/MakeUtil.pm b/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/private/MakeUtil.pm index 037782b9498..12fa26fd05f 100644 --- a/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/private/MakeUtil.pm +++ b/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/private/MakeUtil.pm @@ -35,8 +35,7 @@ sub MY::libscan my $path = shift; return undef - if $path =~ /^(?:RCS|CVS|SCCS|\.svn|_darcs)$/ || - $path =~ /(~|\.bak|_bak)$/ || + if $path =~ /(~|\.bak|_bak)$/ || $path =~ /\..*\.sw(o|p)$/ || $path =~ /\B\.svn\b/; diff --git a/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/t/000prereq.t b/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/t/000prereq.t index 8f66d402d0c..c390e5529d8 100755 --- a/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/t/000prereq.t +++ b/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/t/000prereq.t @@ -19,7 +19,7 @@ BEGIN if eval { require Test::NoWarnings ; import Test::NoWarnings; 1 }; - my $VERSION = '2.089'; + my $VERSION = '2.093'; my @NAMES = qw( ); diff --git a/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/lib/Compress/Raw/Zlib.pm b/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/lib/Compress/Raw/Zlib.pm index 4c369738981..cf7126b4238 100644 --- a/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/lib/Compress/Raw/Zlib.pm +++ b/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/lib/Compress/Raw/Zlib.pm @@ -10,7 +10,7 @@ use warnings ; use bytes ; our ($VERSION, $XS_VERSION, @ISA, @EXPORT, %EXPORT_TAGS, @EXPORT_OK, $AUTOLOAD, %DEFLATE_CONSTANTS, @DEFLATE_CONSTANTS); -$VERSION = '2.084'; +$VERSION = '2.093'; $XS_VERSION = $VERSION; $VERSION = eval $VERSION; @@ -1557,6 +1557,12 @@ C. All the I constants are automatically imported when you make use of I. +=head1 SUPPORT + +General feedback/questions/bug reports should be sent to +L (preferred) or +L. + =head1 SEE ALSO L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L diff --git a/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/private/MakeUtil.pm b/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/private/MakeUtil.pm index 037782b9498..12fa26fd05f 100644 --- a/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/private/MakeUtil.pm +++ b/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/private/MakeUtil.pm @@ -35,8 +35,7 @@ sub MY::libscan my $path = shift; return undef - if $path =~ /^(?:RCS|CVS|SCCS|\.svn|_darcs)$/ || - $path =~ /(~|\.bak|_bak)$/ || + if $path =~ /(~|\.bak|_bak)$/ || $path =~ /\..*\.sw(o|p)$/ || $path =~ /\B\.svn\b/; diff --git a/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/deflate.c b/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/deflate.c index a74194f86f8..52c648fa1bb 100644 --- a/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/deflate.c +++ b/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/deflate.c @@ -190,8 +190,11 @@ local const config configuration_table[10] = { * prev[] will be initialized on the fly. */ #define CLEAR_HASH(s) \ - s->head[s->hash_size-1] = NIL; \ - zmemzero((Bytef *)s->head, (unsigned)(s->hash_size-1)*sizeof(*s->head)); + do { \ + s->head[s->hash_size-1] = NIL; \ + zmemzero((Bytef *)s->head, \ + (unsigned)(s->hash_size-1)*sizeof(*s->head)); \ + } while (0) /* =========================================================================== * Slide the hash table when sliding the window down (could be avoided with 32 diff --git a/gnu/usr.bin/perl/cpan/DB_File/DB_File.pm b/gnu/usr.bin/perl/cpan/DB_File/DB_File.pm index 6ca1592aadc..a732ff41e09 100644 --- a/gnu/usr.bin/perl/cpan/DB_File/DB_File.pm +++ b/gnu/usr.bin/perl/cpan/DB_File/DB_File.pm @@ -2,7 +2,7 @@ # # Written by Paul Marquess (pmqs@cpan.org) # -# Copyright (c) 1995-2018 Paul Marquess. All rights reserved. +# Copyright (c) 1995-2020 Paul Marquess. All rights reserved. # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl itself. @@ -31,14 +31,14 @@ sub TIEHASH my $pkg = shift ; bless { VALID => { - bsize => 1, - ffactor => 1, - nelem => 1, - cachesize => 1, - hash => 2, - lorder => 1, - }, - GOT => {} + bsize => 1, + ffactor => 1, + nelem => 1, + cachesize => 1, + hash => 2, + lorder => 1, + }, + GOT => {} }, $pkg ; } @@ -65,8 +65,8 @@ sub STORE if ( $type ) { - croak "Key '$key' not associated with a code reference" - if $type == 2 && !ref $value && ref $value ne 'CODE'; + croak "Key '$key' not associated with a code reference" + if $type == 2 && !ref $value && ref $value ne 'CODE'; $self->{GOT}{$key} = $value ; return ; } @@ -122,9 +122,9 @@ sub TIEHASH my $pkg = shift ; bless { VALID => { map {$_, 1} - qw( bval cachesize psize flags lorder reclen bfname ) - }, - GOT => {}, + qw( bval cachesize psize flags lorder reclen bfname ) + }, + GOT => {}, }, $pkg ; } @@ -140,16 +140,16 @@ sub TIEHASH my $pkg = shift ; bless { VALID => { - flags => 1, - cachesize => 1, - maxkeypage => 1, - minkeypage => 1, - psize => 1, - compare => 2, - prefix => 2, - lorder => 1, - }, - GOT => {}, + flags => 1, + cachesize => 1, + maxkeypage => 1, + minkeypage => 1, + psize => 1, + compare => 2, + prefix => 2, + lorder => 1, + }, + GOT => {}, }, $pkg ; } @@ -165,7 +165,7 @@ use Carp; # Module not thread safe, so don't clone sub CLONE_SKIP { 1 } -$VERSION = "1.843" ; +$VERSION = "1.853" ; $VERSION = eval $VERSION; # needed for dev releases { @@ -203,34 +203,34 @@ push @ISA, qw(Tie::Hash Exporter); @EXPORT = qw( $DB_BTREE $DB_HASH $DB_RECNO - BTREEMAGIC - BTREEVERSION - DB_LOCK - DB_SHMEM - DB_TXN - HASHMAGIC - HASHVERSION - MAX_PAGE_NUMBER - MAX_PAGE_OFFSET - MAX_REC_NUMBER - RET_ERROR - RET_SPECIAL - RET_SUCCESS - R_CURSOR - R_DUP - R_FIRST - R_FIXEDLEN - R_IAFTER - R_IBEFORE - R_LAST - R_NEXT - R_NOKEY - R_NOOVERWRITE - R_PREV - R_RECNOSYNC - R_SETCURSOR - R_SNAPSHOT - __R_UNUSED + BTREEMAGIC + BTREEVERSION + DB_LOCK + DB_SHMEM + DB_TXN + HASHMAGIC + HASHVERSION + MAX_PAGE_NUMBER + MAX_PAGE_OFFSET + MAX_REC_NUMBER + RET_ERROR + RET_SPECIAL + RET_SUCCESS + R_CURSOR + R_DUP + R_FIRST + R_FIXEDLEN + R_IAFTER + R_IBEFORE + R_LAST + R_NEXT + R_NOKEY + R_NOOVERWRITE + R_PREV + R_RECNOSYNC + R_SETCURSOR + R_SNAPSHOT + __R_UNUSED ); @@ -268,7 +268,7 @@ sub tie_hash_or_array if defined $arg[1] ; $arg[4] = tied %{ $arg[4] } - if @arg >= 5 && ref $arg[4] && $arg[4] =~ /=HASH/ && tied %{ $arg[4] } ; + if @arg >= 5 && ref $arg[4] && $arg[4] =~ /=HASH/ && tied %{ $arg[4] } ; $arg[2] = O_CREAT()|O_RDWR() if @arg >=3 && ! defined $arg[2]; $arg[3] = 0666 if @arg >=4 && ! defined $arg[3]; @@ -280,10 +280,10 @@ sub tie_hash_or_array } if ($db_version > 1 and defined $arg[4] and $arg[4] =~ /RECNO/ and - $arg[1] and ! -e $arg[1]) { - open(FH, ">$arg[1]") or return undef ; - close FH ; - chmod $arg[3] ? $arg[3] : 0666 , $arg[1] ; + $arg[1] and ! -e $arg[1]) { + open(FH, ">$arg[1]") or return undef ; + close FH ; + chmod $arg[3] ? $arg[3] : 0666 , $arg[1] ; } DoTie_($tieHASH, @arg) ; @@ -325,9 +325,9 @@ sub STORESIZE my $current_length = $self->length() ; if ($length < $current_length) { - my $key ; + my $key ; for ($key = $current_length - 1 ; $key >= $length ; -- $key) - { $self->del($key) } + { $self->del($key) } } elsif ($length > $current_length) { $self->put($length-1, "") ; @@ -340,8 +340,8 @@ sub SPLICE my $self = shift; my $offset = shift; if (not defined $offset) { - warnings::warnif('uninitialized', 'Use of uninitialized value in splice'); - $offset = 0; + warnings::warnif('uninitialized', 'Use of uninitialized value in splice'); + $offset = 0; } my $has_length = @_; @@ -358,47 +358,47 @@ sub SPLICE # the array.' # if ($offset < 0) { - my $new_offset = $size + $offset; - if ($new_offset < 0) { - die "Modification of non-creatable array value attempted, " - . "subscript $offset"; - } - $offset = $new_offset; + my $new_offset = $size + $offset; + if ($new_offset < 0) { + die "Modification of non-creatable array value attempted, " + . "subscript $offset"; + } + $offset = $new_offset; } if (not defined $length) { - warnings::warnif('uninitialized', 'Use of uninitialized value in splice'); - $length = 0; + warnings::warnif('uninitialized', 'Use of uninitialized value in splice'); + $length = 0; } if ($offset > $size) { - $offset = $size; - warnings::warnif('misc', 'splice() offset past end of array') + $offset = $size; + warnings::warnif('misc', 'splice() offset past end of array') if $has_length ? $splice_end_array : $splice_end_array_no_length; } # 'If LENGTH is omitted, removes everything from OFFSET onward.' if (not defined $length) { - $length = $size - $offset; + $length = $size - $offset; } # 'If LENGTH is negative, leave that many elements off the end of # the array.' # if ($length < 0) { - $length = $size - $offset + $length; - - if ($length < 0) { - # The user must have specified a length bigger than the - # length of the array passed in. But perl's splice() - # doesn't catch this, it just behaves as for length=0. - # - $length = 0; - } + $length = $size - $offset + $length; + + if ($length < 0) { + # The user must have specified a length bigger than the + # length of the array passed in. But perl's splice() + # doesn't catch this, it just behaves as for length=0. + # + $length = 0; + } } if ($length > $size - $offset) { - $length = $size - $offset; + $length = $size - $offset; } # $num_elems holds the current number of elements in the database. @@ -409,94 +409,94 @@ sub SPLICE # my @removed = (); foreach (0 .. $length - 1) { - my $old; - my $status = $self->get($offset, $old); - if ($status != 0) { - my $msg = "error from Berkeley DB on get($offset, \$old)"; - if ($status == 1) { - $msg .= ' (no such element?)'; - } - else { - $msg .= ": error status $status"; - if (defined $! and $! ne '') { - $msg .= ", message $!"; - } - } - die $msg; - } - push @removed, $old; - - $status = $self->del($offset); - if ($status != 0) { - my $msg = "error from Berkeley DB on del($offset)"; - if ($status == 1) { - $msg .= ' (no such element?)'; - } - else { - $msg .= ": error status $status"; - if (defined $! and $! ne '') { - $msg .= ", message $!"; - } - } - die $msg; - } - - -- $num_elems; + my $old; + my $status = $self->get($offset, $old); + if ($status != 0) { + my $msg = "error from Berkeley DB on get($offset, \$old)"; + if ($status == 1) { + $msg .= ' (no such element?)'; + } + else { + $msg .= ": error status $status"; + if (defined $! and $! ne '') { + $msg .= ", message $!"; + } + } + die $msg; + } + push @removed, $old; + + $status = $self->del($offset); + if ($status != 0) { + my $msg = "error from Berkeley DB on del($offset)"; + if ($status == 1) { + $msg .= ' (no such element?)'; + } + else { + $msg .= ": error status $status"; + if (defined $! and $! ne '') { + $msg .= ", message $!"; + } + } + die $msg; + } + + -- $num_elems; } # ...'and replaces them with the elements of LIST, if any.' my $pos = $offset; while (defined (my $elem = shift @list)) { - my $old_pos = $pos; - my $status; - if ($pos >= $num_elems) { - $status = $self->put($pos, $elem); - } - else { - $status = $self->put($pos, $elem, $self->R_IBEFORE); - } - - if ($status != 0) { - my $msg = "error from Berkeley DB on put($pos, $elem, ...)"; - if ($status == 1) { - $msg .= ' (no such element?)'; - } - else { - $msg .= ", error status $status"; - if (defined $! and $! ne '') { - $msg .= ", message $!"; - } - } - die $msg; - } - - die "pos unexpectedly changed from $old_pos to $pos with R_IBEFORE" - if $old_pos != $pos; - - ++ $pos; - ++ $num_elems; + my $old_pos = $pos; + my $status; + if ($pos >= $num_elems) { + $status = $self->put($pos, $elem); + } + else { + $status = $self->put($pos, $elem, $self->R_IBEFORE); + } + + if ($status != 0) { + my $msg = "error from Berkeley DB on put($pos, $elem, ...)"; + if ($status == 1) { + $msg .= ' (no such element?)'; + } + else { + $msg .= ", error status $status"; + if (defined $! and $! ne '') { + $msg .= ", message $!"; + } + } + die $msg; + } + + die "pos unexpectedly changed from $old_pos to $pos with R_IBEFORE" + if $old_pos != $pos; + + ++ $pos; + ++ $num_elems; } if (wantarray) { - # 'In list context, returns the elements removed from the - # array.' - # - return @removed; + # 'In list context, returns the elements removed from the + # array.' + # + return @removed; } elsif (defined wantarray and not wantarray) { - # 'In scalar context, returns the last element removed, or - # undef if no elements are removed.' - # - if (@removed) { - my $last = pop @removed; - return "$last"; - } - else { - return undef; - } + # 'In scalar context, returns the last element removed, or + # undef if no elements are removed.' + # + if (@removed) { + my $last = pop @removed; + return "$last"; + } + else { + return undef; + } } elsif (not defined wantarray) { - # Void context + # Void context } else { die } } @@ -543,11 +543,11 @@ sub get_dup my $db = shift ; my $key = shift ; - my $flag = shift ; - my $value = 0 ; + my $flag = shift ; + my $value = 0 ; my $origkey = $key ; my $wantarray = wantarray ; - my %values = () ; + my %values = () ; my @values = () ; my $counter = 0 ; my $status = 0 ; @@ -555,16 +555,16 @@ sub get_dup # iterate through the database until either EOF ($status == 0) # or a different key is encountered ($key ne $origkey). for ($status = $db->seq($key, $value, R_CURSOR()) ; - $status == 0 and $key eq $origkey ; + $status == 0 and $key eq $origkey ; $status = $db->seq($key, $value, R_NEXT()) ) { # save the value or count number of matches if ($wantarray) { - if ($flag) + if ($flag) { ++ $values{$value} } - else + else { push (@values, $value) } - } + } else { ++ $counter } @@ -692,7 +692,7 @@ like version 1. This feature allows B scripts that were built with version 1 to be migrated to version 2 or greater without any changes. If you want to make use of the new features available in Berkeley DB -2.x or greater, use the Perl module B instead. +2.x or greater, use the Perl module L instead. B The database file format has changed multiple times in Berkeley DB version 2, 3 and 4. If you cannot recreate your databases, you @@ -753,7 +753,7 @@ C, C, C and C. To change one of these elements, just assign to it like this: - $DB_HASH->{'cachesize'} = 10000 ; + $DB_HASH->{'cachesize'} = 10000 ; The three predefined variables $DB_HASH, $DB_BTREE and $DB_RECNO are usually adequate for most applications. If you do need to create extra @@ -809,12 +809,12 @@ to Perl subs. Below are templates for each of the subs: my ($data) = @_ ; ... # return the hash value for $data - return $hash ; + return $hash ; } sub compare { - my ($key, $key2) = @_ ; + my ($key, $key2) = @_ ; ... # return 0 if $key1 eq $key2 # -1 if $key1 lt $key2 @@ -824,7 +824,7 @@ to Perl subs. Below are templates for each of the subs: sub prefix { - my ($key, $key2) = @_ ; + my ($key, $key2) = @_ ; ... # return number of bytes of $key2 which are # necessary to determine that it is greater than $key1 @@ -1041,7 +1041,7 @@ code: $DB_BTREE->{'flags'} = R_DUP ; tie %h, "DB_File", $filename, O_RDWR|O_CREAT, 0666, $DB_BTREE - or die "Cannot open $filename: $!\n"; + or die "Cannot open $filename: $!\n"; # Add some key/value pairs to the file $h{'Wall'} = 'Larry' ; @@ -1096,7 +1096,7 @@ Here is the script above rewritten using the C API method. $DB_BTREE->{'flags'} = R_DUP ; $x = tie %h, "DB_File", $filename, O_RDWR|O_CREAT, 0666, $DB_BTREE - or die "Cannot open $filename: $!\n"; + or die "Cannot open $filename: $!\n"; # Add some key/value pairs to the file $h{'Wall'} = 'Larry' ; @@ -1167,7 +1167,7 @@ this: $DB_BTREE->{'flags'} = R_DUP ; $x = tie %h, "DB_File", $filename, O_RDWR|O_CREAT, 0666, $DB_BTREE - or die "Cannot open $filename: $!\n"; + or die "Cannot open $filename: $!\n"; my $cnt = $x->get_dup("Wall") ; print "Wall occurred $cnt times\n" ; @@ -1177,13 +1177,13 @@ this: print "There are $hash{'Brick'} Brick Walls\n" ; my @list = sort $x->get_dup("Wall") ; - print "Wall => [@list]\n" ; + print "Wall => [@list]\n" ; @list = $x->get_dup("Smith") ; - print "Smith => [@list]\n" ; + print "Smith => [@list]\n" ; @list = $x->get_dup("Dog") ; - print "Dog => [@list]\n" ; + print "Dog => [@list]\n" ; and it will print: @@ -1191,9 +1191,9 @@ and it will print: Wall occurred 3 times Larry is there There are 2 Brick Walls - Wall => [Brick Brick Larry] - Smith => [John] - Dog => [] + Wall => [Brick Brick Larry] + Smith => [John] + Dog => [] =head2 The find_dup() Method @@ -1217,7 +1217,7 @@ Assuming the database from the previous example: $DB_BTREE->{'flags'} = R_DUP ; $x = tie %h, "DB_File", $filename, O_RDWR|O_CREAT, 0666, $DB_BTREE - or die "Cannot open $filename: $!\n"; + or die "Cannot open $filename: $!\n"; $found = ( $x->find_dup("Wall", "Larry") == 0 ? "" : "not") ; print "Larry Wall is $found there\n" ; @@ -1256,7 +1256,7 @@ Again assuming the existence of the C database $DB_BTREE->{'flags'} = R_DUP ; $x = tie %h, "DB_File", $filename, O_RDWR|O_CREAT, 0666, $DB_BTREE - or die "Cannot open $filename: $!\n"; + or die "Cannot open $filename: $!\n"; $x->del_dup("Wall", "Larry") ; @@ -1321,10 +1321,10 @@ and print the first matching key/value pair given a partial key. $key = $value = 0 ; print "IN ORDER\n" ; for ($st = $x->seq($key, $value, R_FIRST) ; - $st == 0 ; + $st == 0 ; $st = $x->seq($key, $value, R_NEXT) ) - { print "$key -> $value\n" } + { print "$key -> $value\n" } print "\nPARTIAL MATCH\n" ; @@ -1625,12 +1625,12 @@ Berkeley DB documentation. To do this you need to store a copy of the object returned from the tie. - $db = tie %hash, "DB_File", "filename" ; + $db = tie %hash, "DB_File", "filename" ; Once you have done that, you can access the Berkeley DB API functions as B methods directly like this: - $db->put($key, $value, R_NOOVERWRITE) ; + $db->put($key, $value, R_NOOVERWRITE) ; B If you have saved a copy of the object returned from C, the underlying database file will I be closed until both @@ -2012,11 +2012,11 @@ not be used. =head2 Safe ways to lock a database Starting with version 2.x, Berkeley DB has internal support for locking. -The companion module to this one, B, provides an interface +The companion module to this one, L, provides an interface to this locking functionality. If you are serious about locking -Berkeley DB databases, I strongly recommend using B. +Berkeley DB databases, I strongly recommend using L. -If using B isn't an option, there are a number of modules +If using L isn't an option, there are a number of modules available on CPAN that can be used to implement locking. Each one implements locking differently and has different goals in mind. It is therefore worth knowing the difference, so that you can pick the right @@ -2298,6 +2298,12 @@ version 1.85 of Berkeley DB. I am sure there are bugs in the code. If you do find any, or can suggest any enhancements, I would welcome your comments. +=head1 SUPPORT + +General feedback/questions/bug reports should be sent to +L (preferred) or +L. + =head1 AVAILABILITY B comes with the standard Perl source distribution. Look in @@ -2307,11 +2313,11 @@ date, so the most recent version can always be found on CPAN (see L for details), in the directory F. -This version of B will work with either version 1.x, 2.x or -3.x of Berkeley DB, but is limited to the functionality provided by -version 1. +B is designed to work with any version of Berkeley DB, but is limited to the functionality provided by +version 1. If you want to make use of the new features available in Berkeley DB +2.x, or greater, use the Perl module L instead. -The official web site for Berkeley DB is F. +The official web site for Berkeley DB is L. All versions of Berkeley DB are available there. Alternatively, Berkeley DB version 1 is available at your nearest CPAN @@ -2319,7 +2325,7 @@ archive in F. =head1 COPYRIGHT -Copyright (c) 1995-2016 Paul Marquess. All rights reserved. This program +Copyright (c) 1995-2020 Paul Marquess. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. @@ -2328,7 +2334,7 @@ makes use of, namely Berkeley DB, is not. Berkeley DB has its own copyright and its own license. Please take the time to read it. Here are a few words taken from the Berkeley DB FAQ (at -F) regarding the license: +L) regarding the license: Do I have to license DB to use it in Perl scripts? diff --git a/gnu/usr.bin/perl/cpan/DB_File/DB_File.xs b/gnu/usr.bin/perl/cpan/DB_File/DB_File.xs index 6e6e154ffd4..ab95369b25f 100644 --- a/gnu/usr.bin/perl/cpan/DB_File/DB_File.xs +++ b/gnu/usr.bin/perl/cpan/DB_File/DB_File.xs @@ -1,123 +1,123 @@ -/* +/* - DB_File.xs -- Perl 5 interface to Berkeley DB + DB_File.xs -- Perl 5 interface to Berkeley DB Written by Paul Marquess All comments/suggestions/problems are welcome - Copyright (c) 1995-2018 Paul Marquess. All rights reserved. + Copyright (c) 1995-2020 Paul Marquess. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. Changes: - 0.1 - Initial Release - 0.2 - No longer bombs out if dbopen returns an error. - 0.3 - Added some support for multiple btree compares - 1.0 - Complete support for multiple callbacks added. - Fixed a problem with pushing a value onto an empty list. - 1.01 - Fixed a SunOS core dump problem. - The return value from TIEHASH wasn't set to NULL when - dbopen returned an error. - 1.02 - Use ALIAS to define TIEARRAY. - Removed some redundant commented code. - Merged OS2 code into the main distribution. - Allow negative subscripts with RECNO interface. - Changed the default flags to O_CREAT|O_RDWR - 1.03 - Added EXISTS - 1.04 - fixed a couple of bugs in hash_cb. Patches supplied by - Dave Hammen, hammen@gothamcity.jsc.nasa.gov - 1.05 - Added logic to allow prefix & hash types to be specified via - Makefile.PL - 1.06 - Minor namespace cleanup: Localized PrintBtree. - 1.07 - Fixed bug with RECNO, where bval wasn't defaulting to "\n". - 1.08 - No change to DB_File.xs - 1.09 - Default mode for dbopen changed to 0666 - 1.10 - Fixed fd method so that it still returns -1 for - in-memory files when db 1.86 is used. - 1.11 - No change to DB_File.xs - 1.12 - No change to DB_File.xs - 1.13 - Tidied up a few casts. - 1.14 - Made it illegal to tie an associative array to a RECNO - database and an ordinary array to a HASH or BTREE database. - 1.50 - Make work with both DB 1.x or DB 2.x - 1.51 - Fixed a bug in mapping 1.x O_RDONLY flag to 2.x DB_RDONLY equivalent - 1.52 - Patch from Gisle Aas to suppress "use of - undefined value" warning with db_get and db_seq. - 1.53 - Added DB_RENUMBER to flags for recno. - 1.54 - Fixed bug in the fd method - 1.55 - Fix for AIX from Jarkko Hietaniemi - 1.56 - No change to DB_File.xs - 1.57 - added the #undef op to allow building with Threads support. - 1.58 - Fixed a problem with the use of sv_setpvn. When the - size is specified as 0, it does a strlen on the data. - This was ok for DB 1.x, but isn't for DB 2.x. - 1.59 - No change to DB_File.xs - 1.60 - Some code tidy up - 1.61 - added flagSet macro for DB 2.5.x - fixed typo in O_RDONLY test. - 1.62 - No change to DB_File.xs - 1.63 - Fix to alllow DB 2.6.x to build. - 1.64 - Tidied up the 1.x to 2.x flags mapping code. - Added a patch from Mark Kettenis - to fix a flag mapping problem with O_RDONLY on the Hurd - 1.65 - Fixed a bug in the PUSH logic. - Added BOOT check that using 2.3.4 or greater - 1.66 - Added DBM filter code - 1.67 - Backed off the use of newSVpvn. - Fixed DBM Filter code for Perl 5.004. - Fixed a small memory leak in the filter code. - 1.68 - fixed backward compatibility bug with R_IAFTER & R_IBEFORE - merged in the 5.005_58 changes - 1.69 - fixed a bug in push -- DB_APPEND wasn't working properly. - Fixed the R_SETCURSOR bug introduced in 1.68 - Added a new Perl variable $DB_File::db_ver - 1.70 - Initialise $DB_File::db_ver and $DB_File::db_version with - GV_ADD|GV_ADDMULT -- bug spotted by Nick Ing-Simmons. - Added a BOOT check to test for equivalent versions of db.h & - libdb.a/so. - 1.71 - Support for Berkeley DB version 3. - Support for Berkeley DB 2/3's backward compatibility mode. - Rewrote push - 1.72 - No change to DB_File.xs - 1.73 - No change to DB_File.xs - 1.74 - A call to open needed parenthesised to stop it clashing - with a win32 macro. - Added Perl core patches 7703 & 7801. - 1.75 - Fixed Perl core patch 7703. - Added support to allow DB_File to be built with - Berkeley DB 3.2 -- btree_compare, btree_prefix and hash_cb - needed to be changed. - 1.76 - No change to DB_File.xs - 1.77 - Tidied up a few types used in calling newSVpvn. - 1.78 - Core patch 10335, 10372, 10534, 10549, 11051 included. - 1.79 - NEXTKEY ignores the input key. - Added lots of casts - 1.800 - Moved backward compatibility code into ppport.h. - Use the new constants code. - 1.801 - No change to DB_File.xs - 1.802 - No change to DB_File.xs - 1.803 - FETCH, STORE & DELETE don't map the flags parameter - into the equivalent Berkeley DB function anymore. - 1.804 - no change. - 1.805 - recursion detection added to the callbacks - Support for 4.1.X added. - Filter code can now cope with read-only $_ - 1.806 - recursion detection beefed up. - 1.807 - no change - 1.808 - leak fixed in ParseOpenInfo - 1.809 - no change - 1.810 - no change - 1.811 - no change - 1.812 - no change - 1.813 - no change - 1.814 - no change - 1.814 - C++ casting fixes + 0.1 - Initial Release + 0.2 - No longer bombs out if dbopen returns an error. + 0.3 - Added some support for multiple btree compares + 1.0 - Complete support for multiple callbacks added. + Fixed a problem with pushing a value onto an empty list. + 1.01 - Fixed a SunOS core dump problem. + The return value from TIEHASH wasn't set to NULL when + dbopen returned an error. + 1.02 - Use ALIAS to define TIEARRAY. + Removed some redundant commented code. + Merged OS2 code into the main distribution. + Allow negative subscripts with RECNO interface. + Changed the default flags to O_CREAT|O_RDWR + 1.03 - Added EXISTS + 1.04 - fixed a couple of bugs in hash_cb. Patches supplied by + Dave Hammen, hammen@gothamcity.jsc.nasa.gov + 1.05 - Added logic to allow prefix & hash types to be specified via + Makefile.PL + 1.06 - Minor namespace cleanup: Localized PrintBtree. + 1.07 - Fixed bug with RECNO, where bval wasn't defaulting to "\n". + 1.08 - No change to DB_File.xs + 1.09 - Default mode for dbopen changed to 0666 + 1.10 - Fixed fd method so that it still returns -1 for + in-memory files when db 1.86 is used. + 1.11 - No change to DB_File.xs + 1.12 - No change to DB_File.xs + 1.13 - Tidied up a few casts. + 1.14 - Made it illegal to tie an associative array to a RECNO + database and an ordinary array to a HASH or BTREE database. + 1.50 - Make work with both DB 1.x or DB 2.x + 1.51 - Fixed a bug in mapping 1.x O_RDONLY flag to 2.x DB_RDONLY equivalent + 1.52 - Patch from Gisle Aas to suppress "use of + undefined value" warning with db_get and db_seq. + 1.53 - Added DB_RENUMBER to flags for recno. + 1.54 - Fixed bug in the fd method + 1.55 - Fix for AIX from Jarkko Hietaniemi + 1.56 - No change to DB_File.xs + 1.57 - added the #undef op to allow building with Threads support. + 1.58 - Fixed a problem with the use of sv_setpvn. When the + size is specified as 0, it does a strlen on the data. + This was ok for DB 1.x, but isn't for DB 2.x. + 1.59 - No change to DB_File.xs + 1.60 - Some code tidy up + 1.61 - added flagSet macro for DB 2.5.x + fixed typo in O_RDONLY test. + 1.62 - No change to DB_File.xs + 1.63 - Fix to alllow DB 2.6.x to build. + 1.64 - Tidied up the 1.x to 2.x flags mapping code. + Added a patch from Mark Kettenis + to fix a flag mapping problem with O_RDONLY on the Hurd + 1.65 - Fixed a bug in the PUSH logic. + Added BOOT check that using 2.3.4 or greater + 1.66 - Added DBM filter code + 1.67 - Backed off the use of newSVpvn. + Fixed DBM Filter code for Perl 5.004. + Fixed a small memory leak in the filter code. + 1.68 - fixed backward compatibility bug with R_IAFTER & R_IBEFORE + merged in the 5.005_58 changes + 1.69 - fixed a bug in push -- DB_APPEND wasn't working properly. + Fixed the R_SETCURSOR bug introduced in 1.68 + Added a new Perl variable $DB_File::db_ver + 1.70 - Initialise $DB_File::db_ver and $DB_File::db_version with + GV_ADD|GV_ADDMULT -- bug spotted by Nick Ing-Simmons. + Added a BOOT check to test for equivalent versions of db.h & + libdb.a/so. + 1.71 - Support for Berkeley DB version 3. + Support for Berkeley DB 2/3's backward compatibility mode. + Rewrote push + 1.72 - No change to DB_File.xs + 1.73 - No change to DB_File.xs + 1.74 - A call to open needed parenthesised to stop it clashing + with a win32 macro. + Added Perl core patches 7703 & 7801. + 1.75 - Fixed Perl core patch 7703. + Added support to allow DB_File to be built with + Berkeley DB 3.2 -- btree_compare, btree_prefix and hash_cb + needed to be changed. + 1.76 - No change to DB_File.xs + 1.77 - Tidied up a few types used in calling newSVpvn. + 1.78 - Core patch 10335, 10372, 10534, 10549, 11051 included. + 1.79 - NEXTKEY ignores the input key. + Added lots of casts + 1.800 - Moved backward compatibility code into ppport.h. + Use the new constants code. + 1.801 - No change to DB_File.xs + 1.802 - No change to DB_File.xs + 1.803 - FETCH, STORE & DELETE don't map the flags parameter + into the equivalent Berkeley DB function anymore. + 1.804 - no change. + 1.805 - recursion detection added to the callbacks + Support for 4.1.X added. + Filter code can now cope with read-only $_ + 1.806 - recursion detection beefed up. + 1.807 - no change + 1.808 - leak fixed in ParseOpenInfo + 1.809 - no change + 1.810 - no change + 1.811 - no change + 1.812 - no change + 1.813 - no change + 1.814 - no change + 1.814 - C++ casting fixes */ #define PERL_NO_GET_CONTEXT -#include "EXTERN.h" +#include "EXTERN.h" #include "perl.h" #include "XSUB.h" @@ -178,10 +178,10 @@ int DB_File___unused() { return 0; } /* Ditto for dXSARGS. */ # undef dXSARGS -# define dXSARGS \ - dSP; dMARK; \ - I32 ax = mark - PL_stack_base + 1; \ - I32 items = sp - mark +# define dXSARGS \ + dSP; dMARK; \ + I32 ax = mark - PL_stack_base + 1; \ + I32 items = sp - mark # endif @@ -191,7 +191,7 @@ int DB_File___unused() { return 0; } #endif /* Perl >= 5.7 */ -#include +#include /* #define TRACE */ @@ -202,7 +202,7 @@ int DB_File___unused() { return 0; } #endif -#define DBT_clear(x) Zero(&x, 1, DBT) ; +#define DBT_clear(x) Zero(&x, 1, DBT) ; #ifdef DB_VERSION_MAJOR @@ -226,7 +226,7 @@ int DB_File___unused() { return 0; } # define AT_LEAST_DB_4_3 #endif -#if DB_VERSION_MAJOR >= 6 +#if DB_VERSION_MAJOR >= 6 # define AT_LEAST_DB_6_0 #endif @@ -239,23 +239,23 @@ int DB_File___unused() { return 0; } #ifdef DB_Prefix_t # undef DB_Prefix_t #endif -#define DB_Prefix_t size_t +#define DB_Prefix_t size_t #ifdef DB_Hash_t # undef DB_Hash_t #endif -#define DB_Hash_t u_int32_t +#define DB_Hash_t u_int32_t /* DBTYPE stays the same */ /* HASHINFO, RECNOINFO and BTREEINFO map to DB_INFO */ #if DB_VERSION_MAJOR == 2 - typedef DB_INFO INFO ; + typedef DB_INFO INFO ; #else /* DB_VERSION_MAJOR > 2 */ -# define DB_FIXEDLEN (0x8000) +# define DB_FIXEDLEN (0x8000) #endif /* DB_VERSION_MAJOR == 2 */ -/* version 2 has db_recno_t in place of recno_t */ -typedef db_recno_t recno_t; +/* version 2 has db_recno_t in place of recno_t */ +typedef db_recno_t recno_t; #define R_CURSOR DB_SET_RANGE @@ -268,53 +268,53 @@ typedef db_recno_t recno_t; #define R_PREV DB_PREV #if DB_VERSION_MAJOR == 2 && DB_VERSION_MINOR < 5 -# define R_SETCURSOR 0x800000 +# define R_SETCURSOR 0x800000 #else -# define R_SETCURSOR (DB_OPFLAGS_MASK) +# define R_SETCURSOR (DB_OPFLAGS_MASK) #endif #define R_RECNOSYNC 0 -#define R_FIXEDLEN DB_FIXEDLEN -#define R_DUP DB_DUP - - -#define db_HA_hash h_hash -#define db_HA_ffactor h_ffactor -#define db_HA_nelem h_nelem -#define db_HA_bsize db_pagesize -#define db_HA_cachesize db_cachesize -#define db_HA_lorder db_lorder - -#define db_BT_compare bt_compare -#define db_BT_prefix bt_prefix -#define db_BT_flags flags -#define db_BT_psize db_pagesize -#define db_BT_cachesize db_cachesize -#define db_BT_lorder db_lorder +#define R_FIXEDLEN DB_FIXEDLEN +#define R_DUP DB_DUP + + +#define db_HA_hash h_hash +#define db_HA_ffactor h_ffactor +#define db_HA_nelem h_nelem +#define db_HA_bsize db_pagesize +#define db_HA_cachesize db_cachesize +#define db_HA_lorder db_lorder + +#define db_BT_compare bt_compare +#define db_BT_prefix bt_prefix +#define db_BT_flags flags +#define db_BT_psize db_pagesize +#define db_BT_cachesize db_cachesize +#define db_BT_lorder db_lorder #define db_BT_maxkeypage #define db_BT_minkeypage -#define db_RE_reclen re_len -#define db_RE_flags flags -#define db_RE_bval re_pad -#define db_RE_bfname re_source -#define db_RE_psize db_pagesize -#define db_RE_cachesize db_cachesize -#define db_RE_lorder db_lorder +#define db_RE_reclen re_len +#define db_RE_flags flags +#define db_RE_bval re_pad +#define db_RE_bfname re_source +#define db_RE_psize db_pagesize +#define db_RE_cachesize db_cachesize +#define db_RE_lorder db_lorder -#define TXN NULL, +#define TXN NULL, -#define do_SEQ(db, key, value, flag) (db->cursor->c_get)(db->cursor, &key, &value, flag) +#define do_SEQ(db, key, value, flag) (db->cursor->c_get)(db->cursor, &key, &value, flag) -#define DBT_flags(x) x.flags = 0 -#define DB_flags(x, v) x |= v +#define DBT_flags(x) x.flags = 0 +#define DB_flags(x, v) x |= v #if DB_VERSION_MAJOR == 2 && DB_VERSION_MINOR < 5 -# define flagSet(flags, bitmask) ((flags) & (bitmask)) +# define flagSet(flags, bitmask) ((flags) & (bitmask)) #else -# define flagSet(flags, bitmask) (((flags) & DB_OPFLAGS_MASK) == (u_int)(bitmask)) +# define flagSet(flags, bitmask) (((flags) & DB_OPFLAGS_MASK) == (u_int)(bitmask)) #endif #else /* db version 1.x */ @@ -323,55 +323,55 @@ typedef db_recno_t recno_t; #define BERKELEY_DB_1_OR_2 typedef union INFO { - HASHINFO hash ; - RECNOINFO recno ; - BTREEINFO btree ; + HASHINFO hash ; + RECNOINFO recno ; + BTREEINFO btree ; } INFO ; -#ifdef mDB_Prefix_t +#ifdef mDB_Prefix_t # ifdef DB_Prefix_t # undef DB_Prefix_t # endif -# define DB_Prefix_t mDB_Prefix_t +# define DB_Prefix_t mDB_Prefix_t #endif #ifdef mDB_Hash_t # ifdef DB_Hash_t # undef DB_Hash_t # endif -# define DB_Hash_t mDB_Hash_t -#endif - -#define db_HA_hash hash.hash -#define db_HA_ffactor hash.ffactor -#define db_HA_nelem hash.nelem -#define db_HA_bsize hash.bsize -#define db_HA_cachesize hash.cachesize -#define db_HA_lorder hash.lorder - -#define db_BT_compare btree.compare -#define db_BT_prefix btree.prefix -#define db_BT_flags btree.flags -#define db_BT_psize btree.psize -#define db_BT_cachesize btree.cachesize -#define db_BT_lorder btree.lorder +# define DB_Hash_t mDB_Hash_t +#endif + +#define db_HA_hash hash.hash +#define db_HA_ffactor hash.ffactor +#define db_HA_nelem hash.nelem +#define db_HA_bsize hash.bsize +#define db_HA_cachesize hash.cachesize +#define db_HA_lorder hash.lorder + +#define db_BT_compare btree.compare +#define db_BT_prefix btree.prefix +#define db_BT_flags btree.flags +#define db_BT_psize btree.psize +#define db_BT_cachesize btree.cachesize +#define db_BT_lorder btree.lorder #define db_BT_maxkeypage btree.maxkeypage #define db_BT_minkeypage btree.minkeypage -#define db_RE_reclen recno.reclen -#define db_RE_flags recno.flags -#define db_RE_bval recno.bval -#define db_RE_bfname recno.bfname -#define db_RE_psize recno.psize -#define db_RE_cachesize recno.cachesize -#define db_RE_lorder recno.lorder +#define db_RE_reclen recno.reclen +#define db_RE_flags recno.flags +#define db_RE_bval recno.bval +#define db_RE_bfname recno.bfname +#define db_RE_psize recno.psize +#define db_RE_cachesize recno.cachesize +#define db_RE_lorder recno.lorder -#define TXN +#define TXN -#define do_SEQ(db, key, value, flag) (db->dbp->seq)(db->dbp, &key, &value, flag) -#define DBT_flags(x) -#define DB_flags(x, v) +#define do_SEQ(db, key, value, flag) (db->dbp->seq)(db->dbp, &key, &value, flag) +#define DBT_flags(x) +#define DB_flags(x, v) #define flagSet(flags, bitmask) ((flags) & (bitmask)) #endif /* db version 1 */ @@ -387,16 +387,16 @@ typedef union INFO { #ifdef DB_VERSION_MAJOR #define db_DESTROY(db) (!db->aborted && ( db->cursor->c_close(db->cursor),\ - (db->dbp->close)(db->dbp, 0) )) -#define db_close(db) ((db->dbp)->close)(db->dbp, 0) -#define db_del(db, key, flags) (flagSet(flags, R_CURSOR) \ - ? ((db->cursor)->c_del)(db->cursor, 0) \ - : ((db->dbp)->del)(db->dbp, NULL, &key, flags) ) + (db->dbp->close)(db->dbp, 0) )) +#define db_close(db) ((db->dbp)->close)(db->dbp, 0) +#define db_del(db, key, flags) (flagSet(flags, R_CURSOR) \ + ? ((db->cursor)->c_del)(db->cursor, 0) \ + : ((db->dbp)->del)(db->dbp, NULL, &key, flags) ) #else /* ! DB_VERSION_MAJOR */ #define db_DESTROY(db) (!db->aborted && ((db->dbp)->close)(db->dbp)) -#define db_close(db) ((db->dbp)->close)(db->dbp) +#define db_close(db) ((db->dbp)->close)(db->dbp) #define db_del(db, key, flags) ((db->dbp)->del)(db->dbp, &key, flags) #define db_put(db, key, value, flags) ((db->dbp)->put)(db->dbp, &key, &value, flags) @@ -406,61 +406,77 @@ typedef union INFO { #define db_seq(db, key, value, flags) do_SEQ(db, key, value, flags) typedef struct { - DBTYPE type ; - DB * dbp ; - SV * compare ; - bool in_compare ; - SV * prefix ; - bool in_prefix ; - SV * hash ; - bool in_hash ; - bool aborted ; - int in_memory ; + DBTYPE type ; + DB * dbp ; + SV * compare ; + bool in_compare ; + SV * prefix ; + bool in_prefix ; + SV * hash ; + bool in_hash ; + bool aborted ; + int in_memory ; #ifdef BERKELEY_DB_1_OR_2 - INFO info ; -#endif + INFO info ; +#endif #ifdef DB_VERSION_MAJOR - DBC * cursor ; + DBC * cursor ; #endif - SV * filter_fetch_key ; - SV * filter_store_key ; - SV * filter_fetch_value ; - SV * filter_store_value ; - int filtering ; + SV * filter_fetch_key ; + SV * filter_store_key ; + SV * filter_fetch_value ; + SV * filter_store_value ; + int filtering ; - } DB_File_type; + } DB_File_type; typedef DB_File_type * DB_File ; typedef DBT DBTKEY ; #define my_sv_setpvn(sv, d, s) sv_setpvn(sv, (s ? d : (const char *)""), s) -#define OutputValue(arg, name) \ - { if (RETVAL == 0) { \ - SvGETMAGIC(arg) ; \ - my_sv_setpvn(arg, (const char *)name.data, name.size) ; \ - TAINT; \ - SvTAINTED_on(arg); \ - SvUTF8_off(arg); \ - DBM_ckFilter(arg, filter_fetch_value,"filter_fetch_value") ; \ - } \ - } - -#define OutputKey(arg, name) \ - { if (RETVAL == 0) \ - { \ - SvGETMAGIC(arg) ; \ - if (db->type != DB_RECNO) { \ - my_sv_setpvn(arg, (const char *)name.data, name.size); \ - } \ - else \ - sv_setiv(arg, (I32)*(I32*)name.data - 1); \ - TAINT; \ - SvTAINTED_on(arg); \ - SvUTF8_off(arg); \ - DBM_ckFilter(arg, filter_fetch_key,"filter_fetch_key") ; \ - } \ - } +#define OutputValue(arg, name) \ + { if (RETVAL == 0) { \ + SvGETMAGIC(arg) ; \ + my_sv_setpvn(arg, (const char *)name.data, name.size) ; \ + TAINT; \ + SvTAINTED_on(arg); \ + SvUTF8_off(arg); \ + DBM_ckFilter(arg, filter_fetch_value,"filter_fetch_value") ; \ + } \ + } + +#define OutputKey(arg, name) \ + { if (RETVAL == 0) \ + { \ + SvGETMAGIC(arg) ; \ + if (db->type != DB_RECNO) { \ + my_sv_setpvn(arg, (const char *)name.data, name.size); \ + } \ + else \ + sv_setiv(arg, (I32)*(I32*)name.data - 1); \ + TAINT; \ + SvTAINTED_on(arg); \ + SvUTF8_off(arg); \ + DBM_ckFilter(arg, filter_fetch_key,"filter_fetch_key") ; \ + } \ + } + +/* Macro err_close only for use in croak_and_free */ +#ifdef BERKELEY_DB_1_OR_2 /* Berkeley DB Version 1 or 2 */ +# define err_close(r) +#else +# define err_close(r) db_close(r) +#endif + +/* Macro croak_and_free only for use in ParseOpenInfo */ +#define croak_and_free(x) \ + do \ + { \ + if (RETVAL->dbp) err_close(RETVAL) ; \ + Safefree(RETVAL); \ + croak(x); \ + } while (0) #define my_SvUV32(sv) ((u_int32_t)SvUV(sv)) @@ -473,18 +489,18 @@ extern void __getBerkeleyDBInfo(void); #define MY_CXT_KEY "DB_File::_guts" XS_VERSION typedef struct { - recno_t x_Value; - recno_t x_zero; - DB_File x_CurrentDB; - DBTKEY x_empty; + recno_t x_Value; + recno_t x_zero; + DB_File x_CurrentDB; + DBTKEY x_empty; } my_cxt_t; START_MY_CXT -#define Value (MY_CXT.x_Value) -#define zero (MY_CXT.x_zero) -#define CurrentDB (MY_CXT.x_CurrentDB) -#define empty (MY_CXT.x_empty) +#define Value (MY_CXT.x_Value) +#define zero (MY_CXT.x_zero) +#define CurrentDB (MY_CXT.x_CurrentDB) +#define empty (MY_CXT.x_empty) #define ERR_BUFF "DB_File::Error" @@ -495,52 +511,51 @@ static int db_put(DB_File db, DBTKEY key, DBT value, u_int flags) #else db_put(db, key, value, flags) -DB_File db ; -DBTKEY key ; -DBT value ; -u_int flags ; +DB_File db ; +DBTKEY key ; +DBT value ; +u_int flags ; #endif { int status ; if (flagSet(flags, R_IAFTER) || flagSet(flags, R_IBEFORE)) { DBC * temp_cursor ; - DBT l_key, l_value; - + DBT l_key, l_value; + #if DB_VERSION_MAJOR == 2 && DB_VERSION_MINOR < 6 if (((db->dbp)->cursor)(db->dbp, NULL, &temp_cursor) != 0) #else if (((db->dbp)->cursor)(db->dbp, NULL, &temp_cursor, 0) != 0) #endif - return (-1) ; + return (-1) ; + + memset(&l_key, 0, sizeof(l_key)); + l_key.data = key.data; + l_key.size = key.size; + memset(&l_value, 0, sizeof(l_value)); + l_value.data = value.data; + l_value.size = value.size; - memset(&l_key, 0, sizeof(l_key)); - l_key.data = key.data; - l_key.size = key.size; - memset(&l_value, 0, sizeof(l_value)); - l_value.data = value.data; - l_value.size = value.size; + if ( temp_cursor->c_get(temp_cursor, &l_key, &l_value, DB_SET) != 0) { + (void)temp_cursor->c_close(temp_cursor); + return (-1); + } - if ( temp_cursor->c_get(temp_cursor, &l_key, &l_value, DB_SET) != 0) { - (void)temp_cursor->c_close(temp_cursor); - return (-1); - } + status = temp_cursor->c_put(temp_cursor, &key, &value, flags); + (void)temp_cursor->c_close(temp_cursor); - status = temp_cursor->c_put(temp_cursor, &key, &value, flags); - (void)temp_cursor->c_close(temp_cursor); - return (status) ; - } - - + } + + if (flagSet(flags, R_CURSOR)) { - return ((db->cursor)->c_put)(db->cursor, &key, &value, DB_CURRENT); + return ((db->cursor)->c_put)(db->cursor, &key, &value, DB_CURRENT); } if (flagSet(flags, R_SETCURSOR)) { - if ((db->dbp)->put(db->dbp, NULL, &key, &value, 0) != 0) - return -1 ; + if ((db->dbp)->put(db->dbp, NULL, &key, &value, 0) != 0) + return -1 ; return ((db->cursor)->c_get)(db->cursor, &key, &value, DB_SET_RANGE); - } return ((db->dbp)->put)(db->dbp, NULL, &key, &value, flags) ; @@ -576,7 +591,7 @@ size_t* locp; btree_compare(DB * db, const DBT *key1, const DBT *key2) #else btree_compare(db, key1, key2) -DB * db ; +DB * db ; const DBT * key1 ; const DBT * key2 ; #endif /* CAN_PROTOTYPE */ @@ -597,13 +612,13 @@ const DBT * key2 ; { #ifdef dTHX dTHX; -#endif +#endif dSP ; dMY_CXT ; void * data1, * data2 ; int retval ; int count ; - + #ifdef AT_LEAST_DB_3_2 PERL_UNUSED_ARG(db); #endif @@ -620,15 +635,15 @@ const DBT * key2 ; data2 = (char *) key2->data ; #ifndef newSVpvn - /* As newSVpv will assume that the data pointer is a null terminated C - string if the size parameter is 0, make sure that data points to an + /* As newSVpv will assume that the data pointer is a null terminated C + string if the size parameter is 0, make sure that data points to an empty string if the length is 0 */ if (key1->size == 0) - data1 = "" ; + data1 = "" ; if (key2->size == 0) data2 = "" ; -#endif +#endif ENTER ; SAVETMPS; @@ -643,7 +658,7 @@ const DBT * key2 ; PUSHs(sv_2mortal(newSVpvn((const char*)data2,key2->size))); PUTBACK ; - count = perl_call_sv(CurrentDB->compare, G_SCALAR); + count = perl_call_sv(CurrentDB->compare, G_SCALAR); SPAGAIN ; @@ -688,13 +703,13 @@ const DBT * key2 ; { #ifdef dTHX dTHX; -#endif +#endif dSP ; dMY_CXT ; char * data1, * data2 ; int retval ; int count ; - + #ifdef AT_LEAST_DB_3_2 PERL_UNUSED_ARG(db); #endif @@ -708,15 +723,15 @@ const DBT * key2 ; data2 = (char *) key2->data ; #ifndef newSVpvn - /* As newSVpv will assume that the data pointer is a null terminated C - string if the size parameter is 0, make sure that data points to an + /* As newSVpv will assume that the data pointer is a null terminated C + string if the size parameter is 0, make sure that data points to an empty string if the length is 0 */ if (key1->size == 0) data1 = "" ; if (key2->size == 0) data2 = "" ; -#endif +#endif ENTER ; SAVETMPS; @@ -731,7 +746,7 @@ const DBT * key2 ; PUSHs(sv_2mortal(newSVpvn(data2,key2->size))); PUTBACK ; - count = perl_call_sv(CurrentDB->prefix, G_SCALAR); + count = perl_call_sv(CurrentDB->prefix, G_SCALAR); SPAGAIN ; @@ -739,9 +754,9 @@ const DBT * key2 ; tidyUp(CurrentDB); croak ("DB_File btree_prefix: expected 1 return value from prefix sub, got %d\n", count) ; } - + retval = POPi ; - + PUTBACK ; FREETMPS ; LEAVE ; @@ -782,7 +797,7 @@ HASH_CB_SIZE_TYPE size ; { #ifdef dTHX dTHX; -#endif +#endif dSP ; dMY_CXT; int retval = 0; @@ -800,7 +815,7 @@ HASH_CB_SIZE_TYPE size ; #ifndef newSVpvn if (size == 0) data = "" ; -#endif +#endif /* DGH - Next two lines added to fix corrupted stack problem */ ENTER ; @@ -816,7 +831,7 @@ HASH_CB_SIZE_TYPE size ; XPUSHs(sv_2mortal(newSVpvn((char*)data,size))); PUTBACK ; - count = perl_call_sv(CurrentDB->hash, G_SCALAR); + count = perl_call_sv(CurrentDB->hash, G_SCALAR); SPAGAIN ; @@ -845,7 +860,7 @@ db_errcall_cb(const char * db_errpfx, char * buffer) { #ifdef dTHX dTHX; -#endif +#endif SV * sv = perl_get_sv(ERR_BUFF, FALSE) ; #ifdef AT_LEAST_DB_4_3 PERL_UNUSED_ARG(dbenv); @@ -856,7 +871,7 @@ db_errcall_cb(const char * db_errpfx, char * buffer) else sv_setpv(sv, buffer) ; } -} +} #endif #if defined(TRACE) && defined(BERKELEY_DB_1_OR_2) @@ -870,8 +885,8 @@ INFO * hash ; #endif { printf ("HASH Info\n") ; - printf (" hash = %s\n", - (hash->db_HA_hash != NULL ? "redefined" : "default")) ; + printf (" hash = %s\n", + (hash->db_HA_hash != NULL ? "redefined" : "default")) ; printf (" bsize = %d\n", hash->db_HA_bsize) ; printf (" ffactor = %d\n", hash->db_HA_ffactor) ; printf (" nelem = %d\n", hash->db_HA_nelem) ; @@ -907,10 +922,10 @@ INFO * btree ; #endif { printf ("BTREE Info\n") ; - printf (" compare = %s\n", - (btree->db_BT_compare ? "redefined" : "default")) ; - printf (" prefix = %s\n", - (btree->db_BT_prefix ? "redefined" : "default")) ; + printf (" compare = %s\n", + (btree->db_BT_compare ? "redefined" : "default")) ; + printf (" prefix = %s\n", + (btree->db_BT_prefix ? "redefined" : "default")) ; printf (" flags = %d\n", btree->db_BT_flags) ; printf (" cachesize = %d\n", btree->db_BT_cachesize) ; printf (" psize = %d\n", btree->db_BT_psize) ; @@ -938,9 +953,9 @@ GetArrayLength(db) DB_File db ; #endif { - DBT key ; - DBT value ; - int RETVAL ; + DBT key ; + DBT value ; + int RETVAL ; DBT_clear(key) ; DBT_clear(value) ; @@ -963,16 +978,16 @@ I32 value ; #endif { if (value < 0) { - /* Get the length of the array */ - I32 length = GetArrayLength(aTHX_ db) ; + /* Get the length of the array */ + I32 length = GetArrayLength(aTHX_ db) ; - /* check for attempt to write before start of array */ - if (length + value + 1 <= 0) { + /* check for attempt to write before start of array */ + if (length + value + 1 <= 0) { tidyUp(db); - croak("Modification of non-creatable array value attempted, subscript %ld", (long)value) ; - } + croak("Modification of non-creatable array value attempted, subscript %ld", (long)value) ; + } - value = length + value + 1 ; + value = length + value + 1 ; } else ++ value ; @@ -996,29 +1011,29 @@ SV * sv ; #ifdef BERKELEY_DB_1_OR_2 /* Berkeley DB Version 1 or 2 */ - SV ** svp; - HV * action ; - DB_File RETVAL = (DB_File)safemalloc(sizeof(DB_File_type)) ; - void * openinfo = NULL ; - INFO * info = &RETVAL->info ; - STRLEN n_a; + SV ** svp; + HV * action ; + DB_File RETVAL = (DB_File)safemalloc(sizeof(DB_File_type)) ; + void * openinfo = NULL ; + INFO * info = &RETVAL->info ; + STRLEN n_a; dMY_CXT; -#ifdef TRACE - printf("In ParseOpenInfo name=[%s] flags=[%d] mode=[%d] SV NULL=[%d]\n", - name, flags, mode, sv == NULL) ; +#ifdef TRACE + printf("In ParseOpenInfo name=[%s] flags=[%d] mode=[%d] SV NULL=[%d]\n", + name, flags, mode, sv == NULL) ; #endif Zero(RETVAL, 1, DB_File_type) ; /* Default to HASH */ RETVAL->filtering = 0 ; - RETVAL->filter_fetch_key = RETVAL->filter_store_key = + RETVAL->filter_fetch_key = RETVAL->filter_store_key = RETVAL->filter_fetch_value = RETVAL->filter_store_value = RETVAL->hash = RETVAL->compare = RETVAL->prefix = NULL ; RETVAL->type = DB_HASH ; /* DGH - Next line added to avoid SEGV on existing hash DB */ - CurrentDB = RETVAL; + CurrentDB = RETVAL; /* fd for 1.86 hash in memory files doesn't return -1 like 1.85 */ RETVAL->in_memory = (name == NULL) ; @@ -1026,63 +1041,63 @@ SV * sv ; if (sv) { if (! SvROK(sv) ) - croak ("type parameter is not a reference") ; + croak_and_free("type parameter is not a reference") ; svp = hv_fetch( (HV*)SvRV(sv), "GOT", 3, FALSE) ; if (svp && SvOK(*svp)) action = (HV*) SvRV(*svp) ; - else - croak("internal error") ; + else + croak_and_free("internal error") ; if (sv_isa(sv, "DB_File::HASHINFO")) { - if (!isHASH) - croak("DB_File can only tie an associative array to a DB_HASH database") ; + if (!isHASH) + croak_and_free("DB_File can only tie an associative array to a DB_HASH database") ; RETVAL->type = DB_HASH ; openinfo = (void*)info ; - - svp = hv_fetch(action, "hash", 4, FALSE); + + svp = hv_fetch(action, "hash", 4, FALSE); if (svp && SvOK(*svp)) { info->db_HA_hash = hash_cb ; - RETVAL->hash = newSVsv(*svp) ; + RETVAL->hash = newSVsv(*svp) ; } else - info->db_HA_hash = NULL ; + info->db_HA_hash = NULL ; - svp = hv_fetch(action, "ffactor", 7, FALSE); - info->db_HA_ffactor = svp ? SvIV(*svp) : 0; - - svp = hv_fetch(action, "nelem", 5, FALSE); - info->db_HA_nelem = svp ? SvIV(*svp) : 0; - - svp = hv_fetch(action, "bsize", 5, FALSE); - info->db_HA_bsize = svp ? SvIV(*svp) : 0; - - svp = hv_fetch(action, "cachesize", 9, FALSE); - info->db_HA_cachesize = svp ? SvIV(*svp) : 0; - - svp = hv_fetch(action, "lorder", 6, FALSE); - info->db_HA_lorder = svp ? SvIV(*svp) : 0; + svp = hv_fetch(action, "ffactor", 7, FALSE); + info->db_HA_ffactor = svp ? SvIV(*svp) : 0; + + svp = hv_fetch(action, "nelem", 5, FALSE); + info->db_HA_nelem = svp ? SvIV(*svp) : 0; - PrintHash(info) ; + svp = hv_fetch(action, "bsize", 5, FALSE); + info->db_HA_bsize = svp ? SvIV(*svp) : 0; + + svp = hv_fetch(action, "cachesize", 9, FALSE); + info->db_HA_cachesize = svp ? SvIV(*svp) : 0; + + svp = hv_fetch(action, "lorder", 6, FALSE); + info->db_HA_lorder = svp ? SvIV(*svp) : 0; + + PrintHash(info) ; } else if (sv_isa(sv, "DB_File::BTREEINFO")) { - if (!isHASH) - croak("DB_File can only tie an associative array to a DB_BTREE database"); + if (!isHASH) + croak_and_free("DB_File can only tie an associative array to a DB_BTREE database"); RETVAL->type = DB_BTREE ; openinfo = (void*)info ; - + svp = hv_fetch(action, "compare", 7, FALSE); if (svp && SvOK(*svp)) { info->db_BT_compare = btree_compare ; - RETVAL->compare = newSVsv(*svp) ; + RETVAL->compare = newSVsv(*svp) ; } else info->db_BT_compare = NULL ; @@ -1091,127 +1106,127 @@ SV * sv ; if (svp && SvOK(*svp)) { info->db_BT_prefix = btree_prefix ; - RETVAL->prefix = newSVsv(*svp) ; + RETVAL->prefix = newSVsv(*svp) ; } else info->db_BT_prefix = NULL ; svp = hv_fetch(action, "flags", 5, FALSE); info->db_BT_flags = svp ? SvIV(*svp) : 0; - + svp = hv_fetch(action, "cachesize", 9, FALSE); info->db_BT_cachesize = svp ? SvIV(*svp) : 0; - + #ifndef DB_VERSION_MAJOR svp = hv_fetch(action, "minkeypage", 10, FALSE); info->btree.minkeypage = svp ? SvIV(*svp) : 0; - + svp = hv_fetch(action, "maxkeypage", 10, FALSE); info->btree.maxkeypage = svp ? SvIV(*svp) : 0; #endif svp = hv_fetch(action, "psize", 5, FALSE); info->db_BT_psize = svp ? SvIV(*svp) : 0; - + svp = hv_fetch(action, "lorder", 6, FALSE); info->db_BT_lorder = svp ? SvIV(*svp) : 0; PrintBtree(info) ; - + } else if (sv_isa(sv, "DB_File::RECNOINFO")) { - if (isHASH) - croak("DB_File can only tie an array to a DB_RECNO database"); + if (isHASH) + croak_and_free("DB_File can only tie an array to a DB_RECNO database"); RETVAL->type = DB_RECNO ; openinfo = (void *)info ; - info->db_RE_flags = 0 ; + info->db_RE_flags = 0 ; svp = hv_fetch(action, "flags", 5, FALSE); info->db_RE_flags = (u_long) (svp ? SvIV(*svp) : 0); - + svp = hv_fetch(action, "reclen", 6, FALSE); info->db_RE_reclen = (size_t) (svp ? SvIV(*svp) : 0); - + svp = hv_fetch(action, "cachesize", 9, FALSE); info->db_RE_cachesize = (u_int) (svp ? SvIV(*svp) : 0); - + svp = hv_fetch(action, "psize", 5, FALSE); info->db_RE_psize = (u_int) (svp ? SvIV(*svp) : 0); - + svp = hv_fetch(action, "lorder", 6, FALSE); info->db_RE_lorder = (int) (svp ? SvIV(*svp) : 0); #ifdef DB_VERSION_MAJOR - info->re_source = name ; - name = NULL ; + info->re_source = name ; + name = NULL ; #endif - svp = hv_fetch(action, "bfname", 6, FALSE); + svp = hv_fetch(action, "bfname", 6, FALSE); if (svp && SvOK(*svp)) { - char * ptr = SvPV(*svp,n_a) ; + char * ptr = SvPV(*svp,n_a) ; #ifdef DB_VERSION_MAJOR - name = (char*) n_a ? ptr : NULL ; + name = (char*) n_a ? ptr : NULL ; #else info->db_RE_bfname = (char*) (n_a ? ptr : NULL) ; #endif - } - else + } + else #ifdef DB_VERSION_MAJOR - name = NULL ; + name = NULL ; #else - info->db_RE_bfname = NULL ; + info->db_RE_bfname = NULL ; #endif - - svp = hv_fetch(action, "bval", 4, FALSE); + + svp = hv_fetch(action, "bval", 4, FALSE); #ifdef DB_VERSION_MAJOR if (svp && SvOK(*svp)) { - int value ; + int value ; if (SvPOK(*svp)) - value = (int)*SvPV(*svp, n_a) ; - else - value = SvIV(*svp) ; - - if (info->flags & DB_FIXEDLEN) { - info->re_pad = value ; - info->flags |= DB_PAD ; - } - else { - info->re_delim = value ; - info->flags |= DB_DELIMITER ; - } + value = (int)*SvPV(*svp, n_a) ; + else + value = SvIV(*svp) ; + + if (info->flags & DB_FIXEDLEN) { + info->re_pad = value ; + info->flags |= DB_PAD ; + } + else { + info->re_delim = value ; + info->flags |= DB_DELIMITER ; + } } #else if (svp && SvOK(*svp)) { if (SvPOK(*svp)) - info->db_RE_bval = (u_char)*SvPV(*svp, n_a) ; - else - info->db_RE_bval = (u_char)(unsigned long) SvIV(*svp) ; - DB_flags(info->flags, DB_DELIMITER) ; + info->db_RE_bval = (u_char)*SvPV(*svp, n_a) ; + else + info->db_RE_bval = (u_char)(unsigned long) SvIV(*svp) ; + DB_flags(info->flags, DB_DELIMITER) ; } else - { - if (info->db_RE_flags & R_FIXEDLEN) + { + if (info->db_RE_flags & R_FIXEDLEN) info->db_RE_bval = (u_char) ' ' ; - else + else info->db_RE_bval = (u_char) '\n' ; - DB_flags(info->flags, DB_DELIMITER) ; - } + DB_flags(info->flags, DB_DELIMITER) ; + } #endif #ifdef DB_RENUMBER - info->flags |= DB_RENUMBER ; + info->flags |= DB_RENUMBER ; #endif - + PrintRecno(info) ; } else - croak("type is not of type DB_File::HASHINFO, DB_File::BTREEINFO or DB_File::RECNOINFO"); + croak_and_free("type is not of type DB_File::HASHINFO, DB_File::BTREEINFO or DB_File::RECNOINFO"); } @@ -1225,8 +1240,8 @@ SV * sv ; #ifdef DB_VERSION_MAJOR { - int Flags = 0 ; - int status ; + int Flags = 0 ; + int status ; /* Map 1.x flags to 2.x flags */ if ((flags & O_CREAT) == O_CREAT) @@ -1244,25 +1259,23 @@ SV * sv ; Flags |= DB_TRUNCATE ; #endif - status = db_open(name, RETVAL->type, Flags, mode, NULL, (DB_INFO*)openinfo, &RETVAL->dbp) ; + status = db_open(name, RETVAL->type, Flags, mode, NULL, (DB_INFO*)openinfo, &RETVAL->dbp) ; if (status == 0) #if DB_VERSION_MAJOR == 2 && DB_VERSION_MINOR < 6 status = (RETVAL->dbp->cursor)(RETVAL->dbp, NULL, &RETVAL->cursor) ; #else - status = (RETVAL->dbp->cursor)(RETVAL->dbp, NULL, &RETVAL->cursor, - 0) ; + status = (RETVAL->dbp->cursor)(RETVAL->dbp, NULL, &RETVAL->cursor, 0) ; #endif if (status) - RETVAL->dbp = NULL ; - + RETVAL->dbp = NULL ; } #else #if defined(DB_LIBRARY_COMPATIBILITY_API) && DB_VERSION_MAJOR > 2 - RETVAL->dbp = __db185_open(name, flags, mode, RETVAL->type, openinfo) ; -#else - RETVAL->dbp = dbopen(name, flags, mode, RETVAL->type, openinfo) ; + RETVAL->dbp = __db185_open(name, flags, mode, RETVAL->type, openinfo) ; +#else + RETVAL->dbp = dbopen(name, flags, mode, RETVAL->type, openinfo) ; #endif /* DB_LIBRARY_COMPATIBILITY_API */ #endif @@ -1271,218 +1284,219 @@ SV * sv ; #else /* Berkeley DB Version > 2 */ - SV ** svp; - HV * action ; - DB_File RETVAL = (DB_File)safemalloc(sizeof(DB_File_type)) ; - DB * dbp ; - STRLEN n_a; - int status ; + SV ** svp; + HV * action ; + DB_File RETVAL = (DB_File)safemalloc(sizeof(DB_File_type)) ; + DB * dbp ; + STRLEN n_a; + int status ; dMY_CXT; -/* printf("In ParseOpenInfo name=[%s] flags=[%d] mode = [%d]\n", name, flags, mode) ; */ + Trace(("In ParseOpenInfo name=[%s] flags=[%d] mode=[%d] SV NULL=[%d]\n",\ + name, flags, mode, sv == NULL)) ; Zero(RETVAL, 1, DB_File_type) ; /* Default to HASH */ RETVAL->filtering = 0 ; - RETVAL->filter_fetch_key = RETVAL->filter_store_key = + RETVAL->filter_fetch_key = RETVAL->filter_store_key = RETVAL->filter_fetch_value = RETVAL->filter_store_value = RETVAL->hash = RETVAL->compare = RETVAL->prefix = NULL ; RETVAL->type = DB_HASH ; /* DGH - Next line added to avoid SEGV on existing hash DB */ - CurrentDB = RETVAL; + CurrentDB = RETVAL; /* fd for 1.86 hash in memory files doesn't return -1 like 1.85 */ RETVAL->in_memory = (name == NULL) ; status = db_create(&RETVAL->dbp, NULL,0) ; - /* printf("db_create returned %d %s\n", status, db_strerror(status)) ; */ + Trace(("db_create returned %d %s\n", status, db_strerror(status))) ; if (status) { - RETVAL->dbp = NULL ; + RETVAL->dbp = NULL ; return (RETVAL) ; - } + } dbp = RETVAL->dbp ; #ifdef WANT_ERROR - RETVAL->dbp->set_errcall(RETVAL->dbp, db_errcall_cb) ; + RETVAL->dbp->set_errcall(RETVAL->dbp, db_errcall_cb) ; #endif if (sv) { if (! SvROK(sv) ) - croak ("type parameter is not a reference") ; + croak_and_free("type parameter is not a reference") ; svp = hv_fetch( (HV*)SvRV(sv), "GOT", 3, FALSE) ; if (svp && SvOK(*svp)) action = (HV*) SvRV(*svp) ; - else - croak("internal error") ; + else + croak_and_free("internal error") ; if (sv_isa(sv, "DB_File::HASHINFO")) { - if (!isHASH) - croak("DB_File can only tie an associative array to a DB_HASH database") ; + if (!isHASH) + croak_and_free("DB_File can only tie an associative array to a DB_HASH database") ; RETVAL->type = DB_HASH ; - - svp = hv_fetch(action, "hash", 4, FALSE); + + svp = hv_fetch(action, "hash", 4, FALSE); if (svp && SvOK(*svp)) { - (void)dbp->set_h_hash(dbp, hash_cb) ; - RETVAL->hash = newSVsv(*svp) ; + (void)dbp->set_h_hash(dbp, hash_cb) ; + RETVAL->hash = newSVsv(*svp) ; } svp = hv_fetch(action, "ffactor", 7, FALSE); - if (svp) - (void)dbp->set_h_ffactor(dbp, my_SvUV32(*svp)) ; - + if (svp) + (void)dbp->set_h_ffactor(dbp, my_SvUV32(*svp)) ; + svp = hv_fetch(action, "nelem", 5, FALSE); - if (svp) + if (svp) (void)dbp->set_h_nelem(dbp, my_SvUV32(*svp)) ; - + svp = hv_fetch(action, "bsize", 5, FALSE); - if (svp) + if (svp) (void)dbp->set_pagesize(dbp, my_SvUV32(*svp)); - + svp = hv_fetch(action, "cachesize", 9, FALSE); - if (svp) + if (svp) (void)dbp->set_cachesize(dbp, 0, my_SvUV32(*svp), 0) ; - + svp = hv_fetch(action, "lorder", 6, FALSE); - if (svp) + if (svp) (void)dbp->set_lorder(dbp, (int)SvIV(*svp)) ; - PrintHash(info) ; + PrintHash(info) ; } else if (sv_isa(sv, "DB_File::BTREEINFO")) { - if (!isHASH) - croak("DB_File can only tie an associative array to a DB_BTREE database"); + if (!isHASH) + croak_and_free("DB_File can only tie an associative array to a DB_BTREE database"); RETVAL->type = DB_BTREE ; - + svp = hv_fetch(action, "compare", 7, FALSE); if (svp && SvOK(*svp)) { (void)dbp->set_bt_compare(dbp, btree_compare) ; - RETVAL->compare = newSVsv(*svp) ; + RETVAL->compare = newSVsv(*svp) ; } svp = hv_fetch(action, "prefix", 6, FALSE); if (svp && SvOK(*svp)) { (void)dbp->set_bt_prefix(dbp, btree_prefix) ; - RETVAL->prefix = newSVsv(*svp) ; + RETVAL->prefix = newSVsv(*svp) ; } svp = hv_fetch(action, "flags", 5, FALSE); - if (svp) - (void)dbp->set_flags(dbp, my_SvUV32(*svp)) ; - + if (svp) + (void)dbp->set_flags(dbp, my_SvUV32(*svp)) ; + svp = hv_fetch(action, "cachesize", 9, FALSE); - if (svp) + if (svp) (void)dbp->set_cachesize(dbp, 0, my_SvUV32(*svp), 0) ; - + svp = hv_fetch(action, "psize", 5, FALSE); - if (svp) + if (svp) (void)dbp->set_pagesize(dbp, my_SvUV32(*svp)) ; - + svp = hv_fetch(action, "lorder", 6, FALSE); - if (svp) + if (svp) (void)dbp->set_lorder(dbp, (int)SvIV(*svp)) ; - PrintBtree(info) ; - + PrintBtree(info) ; + } else if (sv_isa(sv, "DB_File::RECNOINFO")) { - int fixed = FALSE ; + int fixed = FALSE ; - if (isHASH) - croak("DB_File can only tie an array to a DB_RECNO database"); + if (isHASH) + croak_and_free("DB_File can only tie an array to a DB_RECNO database"); RETVAL->type = DB_RECNO ; - svp = hv_fetch(action, "flags", 5, FALSE); - if (svp) { - int flags = SvIV(*svp) ; - /* remove FIXDLEN, if present */ - if (flags & DB_FIXEDLEN) { - fixed = TRUE ; - flags &= ~DB_FIXEDLEN ; - } - } + svp = hv_fetch(action, "flags", 5, FALSE); + if (svp) { + int flags = SvIV(*svp) ; + /* remove FIXDLEN, if present */ + if (flags & DB_FIXEDLEN) { + fixed = TRUE ; + flags &= ~DB_FIXEDLEN ; + } + } - svp = hv_fetch(action, "cachesize", 9, FALSE); - if (svp) { - status = dbp->set_cachesize(dbp, 0, my_SvUV32(*svp), 0) ; - } - - svp = hv_fetch(action, "psize", 5, FALSE); - if (svp) { - status = dbp->set_pagesize(dbp, my_SvUV32(*svp)) ; - } - - svp = hv_fetch(action, "lorder", 6, FALSE); - if (svp) { - status = dbp->set_lorder(dbp, (int)SvIV(*svp)) ; - } + svp = hv_fetch(action, "cachesize", 9, FALSE); + if (svp) { + status = dbp->set_cachesize(dbp, 0, my_SvUV32(*svp), 0) ; + } + + svp = hv_fetch(action, "psize", 5, FALSE); + if (svp) { + status = dbp->set_pagesize(dbp, my_SvUV32(*svp)) ; + } + + svp = hv_fetch(action, "lorder", 6, FALSE); + if (svp) { + status = dbp->set_lorder(dbp, (int)SvIV(*svp)) ; + } - svp = hv_fetch(action, "bval", 4, FALSE); + svp = hv_fetch(action, "bval", 4, FALSE); if (svp && SvOK(*svp)) { - int value ; + int value ; if (SvPOK(*svp)) - value = (int)*SvPV(*svp, n_a) ; - else - value = (int)SvIV(*svp) ; + value = (int)*SvPV(*svp, n_a) ; + else + value = (int)SvIV(*svp) ; - if (fixed) { - (void)dbp->set_re_pad(dbp, value) ; - } - else { - (void)dbp->set_re_delim(dbp, value) ; - } + if (fixed) { + (void)dbp->set_re_pad(dbp, value) ; + } + else { + (void)dbp->set_re_delim(dbp, value) ; + } } - if (fixed) { - svp = hv_fetch(action, "reclen", 6, FALSE); - if (svp) { - u_int32_t len = my_SvUV32(*svp) ; - (void)dbp->set_re_len(dbp, len) ; - } - } - - if (name != NULL) { - (void)dbp->set_re_source(dbp, name) ; - name = NULL ; - } - - svp = hv_fetch(action, "bfname", 6, FALSE); + if (fixed) { + svp = hv_fetch(action, "reclen", 6, FALSE); + if (svp) { + u_int32_t len = my_SvUV32(*svp) ; + (void)dbp->set_re_len(dbp, len) ; + } + } + + if (name != NULL) { + (void)dbp->set_re_source(dbp, name) ; + name = NULL ; + } + + svp = hv_fetch(action, "bfname", 6, FALSE); if (svp && SvOK(*svp)) { - char * ptr = SvPV(*svp,n_a) ; - name = (char*) n_a ? ptr : NULL ; - } - else - name = NULL ; - - - (void)dbp->set_flags(dbp, (u_int32_t)DB_RENUMBER) ; - - if (flags){ - (void)dbp->set_flags(dbp, (u_int32_t)flags) ; - } + char * ptr = SvPV(*svp,n_a) ; + name = (char*) n_a ? ptr : NULL ; + } + else + name = NULL ; + + + (void)dbp->set_flags(dbp, (u_int32_t)DB_RENUMBER) ; + + if (flags){ + (void)dbp->set_flags(dbp, (u_int32_t)flags) ; + } PrintRecno(info) ; } else - croak("type is not of type DB_File::HASHINFO, DB_File::BTREEINFO or DB_File::RECNOINFO"); + croak_and_free("type is not of type DB_File::HASHINFO, DB_File::BTREEINFO or DB_File::RECNOINFO"); } { - u_int32_t Flags = 0 ; - int status ; + u_int32_t Flags = 0 ; + int status ; /* Map 1.x flags to 3.x flags */ if ((flags & O_CREAT) == O_CREAT) @@ -1507,27 +1521,25 @@ SV * sv ; #endif #ifdef AT_LEAST_DB_4_1 - status = (RETVAL->dbp->open)(RETVAL->dbp, NULL, name, NULL, RETVAL->type, - Flags, mode) ; + status = (RETVAL->dbp->open)(RETVAL->dbp, NULL, name, NULL, RETVAL->type, + Flags, mode) ; #else - status = (RETVAL->dbp->open)(RETVAL->dbp, name, NULL, RETVAL->type, - Flags, mode) ; + status = (RETVAL->dbp->open)(RETVAL->dbp, name, NULL, RETVAL->type, + Flags, mode) ; #endif - /* printf("open returned %d %s\n", status, db_strerror(status)) ; */ + Trace(("open returned %d %s\n", status, db_strerror(status))) ; if (status == 0) { - status = (RETVAL->dbp->cursor)(RETVAL->dbp, NULL, &RETVAL->cursor, - 0) ; - /* printf("cursor returned %d %s\n", status, db_strerror(status)) ; */ - } + status = (RETVAL->dbp->cursor)(RETVAL->dbp, NULL, &RETVAL->cursor, 0) ; + Trace(("cursor returned %d %s\n", status, db_strerror(status))) ; + } if (status) - { - db_close(RETVAL); /* close **dbp handle to prevent mem.leak */ - RETVAL->dbp = NULL ; - } - + { + db_close(RETVAL); /* close **dbp handle to prevent mem.leak */ + RETVAL->dbp = NULL ; + } } return (RETVAL) ; @@ -1537,9 +1549,9 @@ SV * sv ; } /* ParseOpenInfo */ -#include "constants.h" +#include "constants.h" -MODULE = DB_File PACKAGE = DB_File PREFIX = db_ +MODULE = DB_File PACKAGE = DB_File PREFIX = db_ INCLUDE: constants.xs @@ -1547,17 +1559,17 @@ BOOT: { #ifdef dTHX dTHX; -#endif +#endif #ifdef WANT_ERROR - SV * sv_err = perl_get_sv(ERR_BUFF, GV_ADD|GV_ADDMULTI) ; + SV * sv_err = perl_get_sv(ERR_BUFF, GV_ADD|GV_ADDMULTI) ; #endif MY_CXT_INIT; #ifdef WANT_ERROR PERL_UNUSED_VAR(sv_err); /* huh? we just retrieved it... */ #endif __getBerkeleyDBInfo() ; - - DBT_clear(empty) ; + + DBT_clear(empty) ; empty.data = &zero ; empty.size = sizeof(recno_t) ; } @@ -1566,161 +1578,162 @@ BOOT: DB_File db_DoTie_(isHASH, dbtype, name=undef, flags=O_CREAT|O_RDWR, mode=0666, type=DB_HASH) - int isHASH - char * dbtype - int flags - int mode - CODE: - { - char * name = (char *) NULL ; - SV * sv = (SV *) NULL ; - STRLEN n_a; - - if (items >= 3 && SvOK(ST(2))) - name = (char*) SvPV(ST(2), n_a) ; - - if (items == 6) - sv = ST(5) ; - - RETVAL = ParseOpenInfo(aTHX_ isHASH, name, flags, mode, sv) ; - Trace(("db_DoTie_ %p\n", RETVAL)); - if (RETVAL->dbp == NULL) { - Safefree(RETVAL); - RETVAL = NULL ; - } - } - OUTPUT: - RETVAL + int isHASH + char * dbtype + int flags + int mode + CODE: + { + char * name = (char *) NULL ; + SV * sv = (SV *) NULL ; + STRLEN n_a; + Trace(("In db_DoTie_\n")); + + if (items >= 3 && SvOK(ST(2))) + name = (char*) SvPV(ST(2), n_a) ; + + if (items == 6) + sv = ST(5) ; + + RETVAL = ParseOpenInfo(aTHX_ isHASH, name, flags, mode, sv) ; + Trace(("db_DoTie_ %p\n", RETVAL)); + if (RETVAL->dbp == NULL) { + Safefree(RETVAL); + RETVAL = NULL ; + } + } + OUTPUT: + RETVAL int db_DESTROY(db) - DB_File db - PREINIT: - dMY_CXT; - INIT: - CurrentDB = db ; - Trace(("DESTROY %p\n", db)); - CLEANUP: - Trace(("DESTROY %p done\n", db)); - if (db->hash) - SvREFCNT_dec(db->hash) ; - if (db->compare) - SvREFCNT_dec(db->compare) ; - if (db->prefix) - SvREFCNT_dec(db->prefix) ; - if (db->filter_fetch_key) - SvREFCNT_dec(db->filter_fetch_key) ; - if (db->filter_store_key) - SvREFCNT_dec(db->filter_store_key) ; - if (db->filter_fetch_value) - SvREFCNT_dec(db->filter_fetch_value) ; - if (db->filter_store_value) - SvREFCNT_dec(db->filter_store_value) ; - safefree(db) ; + DB_File db + PREINIT: + dMY_CXT; + INIT: + CurrentDB = db ; + Trace(("DESTROY %p\n", db)); + CLEANUP: + Trace(("DESTROY %p done\n", db)); + if (db->hash) + SvREFCNT_dec(db->hash) ; + if (db->compare) + SvREFCNT_dec(db->compare) ; + if (db->prefix) + SvREFCNT_dec(db->prefix) ; + if (db->filter_fetch_key) + SvREFCNT_dec(db->filter_fetch_key) ; + if (db->filter_store_key) + SvREFCNT_dec(db->filter_store_key) ; + if (db->filter_fetch_value) + SvREFCNT_dec(db->filter_fetch_value) ; + if (db->filter_store_value) + SvREFCNT_dec(db->filter_store_value) ; + safefree(db) ; #ifdef DB_VERSION_MAJOR - if (RETVAL > 0) - RETVAL = -1 ; + if (RETVAL > 0) + RETVAL = -1 ; #endif int db_DELETE(db, key, flags=0) - DB_File db - DBTKEY key - u_int flags - PREINIT: - dMY_CXT; - INIT: - (void)flags; - CurrentDB = db ; + DB_File db + DBTKEY key + u_int flags + PREINIT: + dMY_CXT; + INIT: + (void)flags; + CurrentDB = db ; int db_EXISTS(db, key) - DB_File db - DBTKEY key - PREINIT: - dMY_CXT; - CODE: - { - DBT value ; - - DBT_clear(value) ; - CurrentDB = db ; - RETVAL = (((db->dbp)->get)(db->dbp, TXN &key, &value, 0) == 0) ; - } - OUTPUT: - RETVAL + DB_File db + DBTKEY key + PREINIT: + dMY_CXT; + CODE: + { + DBT value ; + + DBT_clear(value) ; + CurrentDB = db ; + RETVAL = (((db->dbp)->get)(db->dbp, TXN &key, &value, 0) == 0) ; + } + OUTPUT: + RETVAL void db_FETCH(db, key, flags=0) - DB_File db - DBTKEY key - u_int flags - PREINIT: - dMY_CXT ; - int RETVAL ; - CODE: - { - DBT value ; - - DBT_clear(value) ; - CurrentDB = db ; - RETVAL = db_get(db, key, value, flags) ; - ST(0) = sv_newmortal(); - OutputValue(ST(0), value) - } + DB_File db + DBTKEY key + u_int flags + PREINIT: + dMY_CXT ; + int RETVAL ; + CODE: + { + DBT value ; + + DBT_clear(value) ; + CurrentDB = db ; + RETVAL = db_get(db, key, value, flags) ; + ST(0) = sv_newmortal(); + OutputValue(ST(0), value) + } int db_STORE(db, key, value, flags=0) - DB_File db - DBTKEY key - DBT value - u_int flags - PREINIT: - dMY_CXT; - INIT: - (void)flags; - CurrentDB = db ; + DB_File db + DBTKEY key + DBT value + u_int flags + PREINIT: + dMY_CXT; + INIT: + (void)flags; + CurrentDB = db ; void db_FIRSTKEY(db) - DB_File db - PREINIT: - dMY_CXT ; - int RETVAL ; - CODE: - { - DBTKEY key ; - DBT value ; - - DBT_clear(key) ; - DBT_clear(value) ; - CurrentDB = db ; - RETVAL = do_SEQ(db, key, value, R_FIRST) ; - ST(0) = sv_newmortal(); - OutputKey(ST(0), key) ; - } + DB_File db + PREINIT: + dMY_CXT ; + int RETVAL ; + CODE: + { + DBTKEY key ; + DBT value ; + + DBT_clear(key) ; + DBT_clear(value) ; + CurrentDB = db ; + RETVAL = do_SEQ(db, key, value, R_FIRST) ; + ST(0) = sv_newmortal(); + OutputKey(ST(0), key) ; + } void db_NEXTKEY(db, key) - DB_File db - DBTKEY key = NO_INIT - PREINIT: - dMY_CXT ; - int RETVAL ; - CODE: - { - DBT value ; - - DBT_clear(key) ; - DBT_clear(value) ; - CurrentDB = db ; - RETVAL = do_SEQ(db, key, value, R_NEXT) ; - ST(0) = sv_newmortal(); - OutputKey(ST(0), key) ; - } + DB_File db + DBTKEY key = NO_INIT + PREINIT: + dMY_CXT ; + int RETVAL ; + CODE: + { + DBT value ; + + DBT_clear(key) ; + DBT_clear(value) ; + CurrentDB = db ; + RETVAL = do_SEQ(db, key, value, R_NEXT) ; + ST(0) = sv_newmortal(); + OutputKey(ST(0), key) ; + } # # These would be nice for RECNO @@ -1728,166 +1741,166 @@ db_NEXTKEY(db, key) int unshift(db, ...) - DB_File db - ALIAS: UNSHIFT = 1 - PREINIT: - dMY_CXT; - CODE: - { - DBTKEY key ; - DBT value ; - int i ; - int One ; - STRLEN n_a; - - DBT_clear(key) ; - DBT_clear(value) ; - CurrentDB = db ; + DB_File db + ALIAS: UNSHIFT = 1 + PREINIT: + dMY_CXT; + CODE: + { + DBTKEY key ; + DBT value ; + int i ; + int One ; + STRLEN n_a; + + DBT_clear(key) ; + DBT_clear(value) ; + CurrentDB = db ; #ifdef DB_VERSION_MAJOR - /* get the first value */ - RETVAL = do_SEQ(db, key, value, DB_FIRST) ; - RETVAL = 0 ; + /* get the first value */ + RETVAL = do_SEQ(db, key, value, DB_FIRST) ; + RETVAL = 0 ; #else - RETVAL = -1 ; -#endif - for (i = items-1 ; i > 0 ; --i) - { - DBM_ckFilter(ST(i), filter_store_value, "filter_store_value"); - value.data = SvPVbyte(ST(i), n_a) ; - value.size = n_a ; - One = 1 ; - key.data = &One ; - key.size = sizeof(int) ; + RETVAL = -1 ; +#endif + for (i = items-1 ; i > 0 ; --i) + { + DBM_ckFilter(ST(i), filter_store_value, "filter_store_value"); + value.data = SvPVbyte(ST(i), n_a) ; + value.size = n_a ; + One = 1 ; + key.data = &One ; + key.size = sizeof(int) ; #ifdef DB_VERSION_MAJOR - RETVAL = (db->cursor->c_put)(db->cursor, &key, &value, DB_BEFORE) ; + RETVAL = (db->cursor->c_put)(db->cursor, &key, &value, DB_BEFORE) ; #else - RETVAL = (db->dbp->put)(db->dbp, &key, &value, R_IBEFORE) ; + RETVAL = (db->dbp->put)(db->dbp, &key, &value, R_IBEFORE) ; #endif - if (RETVAL != 0) - break; - } - } - OUTPUT: - RETVAL + if (RETVAL != 0) + break; + } + } + OUTPUT: + RETVAL void pop(db) - DB_File db - PREINIT: - dMY_CXT; - ALIAS: POP = 1 - PREINIT: - I32 RETVAL; - CODE: - { - DBTKEY key ; - DBT value ; - - DBT_clear(key) ; - DBT_clear(value) ; - CurrentDB = db ; - - /* First get the final value */ - RETVAL = do_SEQ(db, key, value, R_LAST) ; - ST(0) = sv_newmortal(); - /* Now delete it */ - if (RETVAL == 0) - { - /* the call to del will trash value, so take a copy now */ - OutputValue(ST(0), value) ; - RETVAL = db_del(db, key, R_CURSOR) ; - if (RETVAL != 0) - sv_setsv(ST(0), &PL_sv_undef); - } - } + DB_File db + PREINIT: + dMY_CXT; + ALIAS: POP = 1 + PREINIT: + I32 RETVAL; + CODE: + { + DBTKEY key ; + DBT value ; + + DBT_clear(key) ; + DBT_clear(value) ; + CurrentDB = db ; + + /* First get the final value */ + RETVAL = do_SEQ(db, key, value, R_LAST) ; + ST(0) = sv_newmortal(); + /* Now delete it */ + if (RETVAL == 0) + { + /* the call to del will trash value, so take a copy now */ + OutputValue(ST(0), value) ; + RETVAL = db_del(db, key, R_CURSOR) ; + if (RETVAL != 0) + sv_setsv(ST(0), &PL_sv_undef); + } + } void shift(db) - DB_File db - PREINIT: - dMY_CXT; - ALIAS: SHIFT = 1 - PREINIT: - I32 RETVAL; - CODE: - { - DBT value ; - DBTKEY key ; - - DBT_clear(key) ; - DBT_clear(value) ; - CurrentDB = db ; - /* get the first value */ - RETVAL = do_SEQ(db, key, value, R_FIRST) ; - ST(0) = sv_newmortal(); - /* Now delete it */ - if (RETVAL == 0) - { - /* the call to del will trash value, so take a copy now */ - OutputValue(ST(0), value) ; - RETVAL = db_del(db, key, R_CURSOR) ; - if (RETVAL != 0) - sv_setsv (ST(0), &PL_sv_undef) ; - } - } + DB_File db + PREINIT: + dMY_CXT; + ALIAS: SHIFT = 1 + PREINIT: + I32 RETVAL; + CODE: + { + DBT value ; + DBTKEY key ; + + DBT_clear(key) ; + DBT_clear(value) ; + CurrentDB = db ; + /* get the first value */ + RETVAL = do_SEQ(db, key, value, R_FIRST) ; + ST(0) = sv_newmortal(); + /* Now delete it */ + if (RETVAL == 0) + { + /* the call to del will trash value, so take a copy now */ + OutputValue(ST(0), value) ; + RETVAL = db_del(db, key, R_CURSOR) ; + if (RETVAL != 0) + sv_setsv (ST(0), &PL_sv_undef) ; + } + } I32 push(db, ...) - DB_File db - PREINIT: - dMY_CXT; - ALIAS: PUSH = 1 - CODE: - { - DBTKEY key ; - DBT value ; - DB * Db = db->dbp ; - int i ; - STRLEN n_a; - int keyval ; - - DBT_flags(key) ; - DBT_flags(value) ; - CurrentDB = db ; - /* Set the Cursor to the Last element */ - RETVAL = do_SEQ(db, key, value, R_LAST) ; -#ifndef DB_VERSION_MAJOR - if (RETVAL >= 0) -#endif - { - if (RETVAL == 0) - keyval = *(int*)key.data ; - else - keyval = 0 ; - for (i = 1 ; i < items ; ++i) - { - DBM_ckFilter(ST(i), filter_store_value, "filter_store_value"); - value.data = SvPVbyte(ST(i), n_a) ; - value.size = n_a ; - ++ keyval ; - key.data = &keyval ; - key.size = sizeof(int) ; - RETVAL = (Db->put)(Db, TXN &key, &value, 0) ; - if (RETVAL != 0) - break; - } - } - } - OUTPUT: - RETVAL + DB_File db + PREINIT: + dMY_CXT; + ALIAS: PUSH = 1 + CODE: + { + DBTKEY key ; + DBT value ; + DB * Db = db->dbp ; + int i ; + STRLEN n_a; + int keyval ; + + DBT_flags(key) ; + DBT_flags(value) ; + CurrentDB = db ; + /* Set the Cursor to the Last element */ + RETVAL = do_SEQ(db, key, value, R_LAST) ; +#ifndef DB_VERSION_MAJOR + if (RETVAL >= 0) +#endif + { + if (RETVAL == 0) + keyval = *(int*)key.data ; + else + keyval = 0 ; + for (i = 1 ; i < items ; ++i) + { + DBM_ckFilter(ST(i), filter_store_value, "filter_store_value"); + value.data = SvPVbyte(ST(i), n_a) ; + value.size = n_a ; + ++ keyval ; + key.data = &keyval ; + key.size = sizeof(int) ; + RETVAL = (Db->put)(Db, TXN &key, &value, 0) ; + if (RETVAL != 0) + break; + } + } + } + OUTPUT: + RETVAL I32 length(db) - DB_File db - PREINIT: - dMY_CXT; - ALIAS: FETCHSIZE = 1 - CODE: - CurrentDB = db ; - RETVAL = GetArrayLength(aTHX_ db) ; - OUTPUT: - RETVAL + DB_File db + PREINIT: + dMY_CXT; + ALIAS: FETCHSIZE = 1 + CODE: + CurrentDB = db ; + RETVAL = GetArrayLength(aTHX_ db) ; + OUTPUT: + RETVAL # @@ -1896,161 +1909,161 @@ length(db) int db_del(db, key, flags=0) - DB_File db - DBTKEY key - u_int flags - PREINIT: - dMY_CXT; - CODE: - CurrentDB = db ; - RETVAL = db_del(db, key, flags) ; + DB_File db + DBTKEY key + u_int flags + PREINIT: + dMY_CXT; + CODE: + CurrentDB = db ; + RETVAL = db_del(db, key, flags) ; #ifdef DB_VERSION_MAJOR - if (RETVAL > 0) - RETVAL = -1 ; - else if (RETVAL == DB_NOTFOUND) - RETVAL = 1 ; + if (RETVAL > 0) + RETVAL = -1 ; + else if (RETVAL == DB_NOTFOUND) + RETVAL = 1 ; #endif - OUTPUT: - RETVAL + OUTPUT: + RETVAL int db_get(db, key, value, flags=0) - DB_File db - DBTKEY key - DBT value = NO_INIT - u_int flags - PREINIT: - dMY_CXT; - CODE: - CurrentDB = db ; - DBT_clear(value) ; - RETVAL = db_get(db, key, value, flags) ; + DB_File db + DBTKEY key + DBT value = NO_INIT + u_int flags + PREINIT: + dMY_CXT; + CODE: + CurrentDB = db ; + DBT_clear(value) ; + RETVAL = db_get(db, key, value, flags) ; #ifdef DB_VERSION_MAJOR - if (RETVAL > 0) - RETVAL = -1 ; - else if (RETVAL == DB_NOTFOUND) - RETVAL = 1 ; + if (RETVAL > 0) + RETVAL = -1 ; + else if (RETVAL == DB_NOTFOUND) + RETVAL = 1 ; #endif - OUTPUT: - RETVAL - value + OUTPUT: + RETVAL + value int db_put(db, key, value, flags=0) - DB_File db - DBTKEY key - DBT value - u_int flags - PREINIT: - dMY_CXT; - CODE: - CurrentDB = db ; - RETVAL = db_put(db, key, value, flags) ; + DB_File db + DBTKEY key + DBT value + u_int flags + PREINIT: + dMY_CXT; + CODE: + CurrentDB = db ; + RETVAL = db_put(db, key, value, flags) ; #ifdef DB_VERSION_MAJOR - if (RETVAL > 0) - RETVAL = -1 ; - else if (RETVAL == DB_KEYEXIST) - RETVAL = 1 ; + if (RETVAL > 0) + RETVAL = -1 ; + else if (RETVAL == DB_KEYEXIST) + RETVAL = 1 ; #endif - OUTPUT: - RETVAL - key if (flagSet(flags, R_IAFTER) || flagSet(flags, R_IBEFORE)) OutputKey(ST(1), key); + OUTPUT: + RETVAL + key if (flagSet(flags, R_IAFTER) || flagSet(flags, R_IBEFORE)) OutputKey(ST(1), key); int db_fd(db) - DB_File db - PREINIT: - dMY_CXT ; - CODE: - CurrentDB = db ; + DB_File db + PREINIT: + dMY_CXT ; + CODE: + CurrentDB = db ; #ifdef DB_VERSION_MAJOR - RETVAL = -1 ; - { - int status = 0 ; - status = (db->in_memory - ? -1 - : ((db->dbp)->fd)(db->dbp, &RETVAL) ) ; - if (status != 0) - RETVAL = -1 ; - } + RETVAL = -1 ; + { + int status = 0 ; + status = (db->in_memory + ? -1 + : ((db->dbp)->fd)(db->dbp, &RETVAL) ) ; + if (status != 0) + RETVAL = -1 ; + } #else - RETVAL = (db->in_memory - ? -1 - : ((db->dbp)->fd)(db->dbp) ) ; + RETVAL = (db->in_memory + ? -1 + : ((db->dbp)->fd)(db->dbp) ) ; #endif - OUTPUT: - RETVAL + OUTPUT: + RETVAL int db_sync(db, flags=0) - DB_File db - u_int flags - PREINIT: - dMY_CXT; - CODE: - CurrentDB = db ; - RETVAL = db_sync(db, flags) ; + DB_File db + u_int flags + PREINIT: + dMY_CXT; + CODE: + CurrentDB = db ; + RETVAL = db_sync(db, flags) ; #ifdef DB_VERSION_MAJOR - if (RETVAL > 0) - RETVAL = -1 ; + if (RETVAL > 0) + RETVAL = -1 ; #endif - OUTPUT: - RETVAL + OUTPUT: + RETVAL int db_seq(db, key, value, flags) - DB_File db - DBTKEY key - DBT value = NO_INIT - u_int flags - PREINIT: - dMY_CXT; - CODE: - CurrentDB = db ; - DBT_clear(value) ; - RETVAL = db_seq(db, key, value, flags); + DB_File db + DBTKEY key + DBT value = NO_INIT + u_int flags + PREINIT: + dMY_CXT; + CODE: + CurrentDB = db ; + DBT_clear(value) ; + RETVAL = db_seq(db, key, value, flags); #ifdef DB_VERSION_MAJOR - if (RETVAL > 0) - RETVAL = -1 ; - else if (RETVAL == DB_NOTFOUND) - RETVAL = 1 ; + if (RETVAL > 0) + RETVAL = -1 ; + else if (RETVAL == DB_NOTFOUND) + RETVAL = 1 ; #endif - OUTPUT: - RETVAL - key - value + OUTPUT: + RETVAL + key + value SV * filter_fetch_key(db, code) - DB_File db - SV * code - SV * RETVAL = &PL_sv_undef ; - CODE: - DBM_setFilter(db->filter_fetch_key, code) ; + DB_File db + SV * code + SV * RETVAL = &PL_sv_undef ; + CODE: + DBM_setFilter(db->filter_fetch_key, code) ; SV * filter_store_key(db, code) - DB_File db - SV * code - SV * RETVAL = &PL_sv_undef ; - CODE: - DBM_setFilter(db->filter_store_key, code) ; + DB_File db + SV * code + SV * RETVAL = &PL_sv_undef ; + CODE: + DBM_setFilter(db->filter_store_key, code) ; SV * filter_fetch_value(db, code) - DB_File db - SV * code - SV * RETVAL = &PL_sv_undef ; - CODE: - DBM_setFilter(db->filter_fetch_value, code) ; + DB_File db + SV * code + SV * RETVAL = &PL_sv_undef ; + CODE: + DBM_setFilter(db->filter_fetch_value, code) ; SV * filter_store_value(db, code) - DB_File db - SV * code - SV * RETVAL = &PL_sv_undef ; - CODE: - DBM_setFilter(db->filter_store_value, code) ; + DB_File db + SV * code + SV * RETVAL = &PL_sv_undef ; + CODE: + DBM_setFilter(db->filter_store_value, code) ; diff --git a/gnu/usr.bin/perl/cpan/DB_File/Makefile.PL b/gnu/usr.bin/perl/cpan/DB_File/Makefile.PL index 03dbf964299..774c219f5a5 100644 --- a/gnu/usr.bin/perl/cpan/DB_File/Makefile.PL +++ b/gnu/usr.bin/perl/cpan/DB_File/Makefile.PL @@ -46,14 +46,14 @@ my $WALL = '' ; my $CORE = $ENV{PERL_CORE} ? '' : '-D_NOT_CORE'; WriteMakefile( - NAME => 'DB_File', - LIBS => ["-L${LIB_DIR} $LIBS"], - INC => "-I$INC_DIR", - VERSION_FROM => 'DB_File.pm', - XS_VERSION => eval MM->parse_version('DB_File.pm'), - XSPROTOARG => '-noprototypes', - DEFINE => "$CORE $OS2 $VER_INFO $COMPAT185 $WALL", - OBJECT => 'version$(OBJ_EXT) DB_File$(OBJ_EXT)', + NAME => 'DB_File', + LIBS => ["-L${LIB_DIR} $LIBS"], + INC => "-I$INC_DIR", + VERSION_FROM => 'DB_File.pm', + XS_VERSION => eval MM->parse_version('DB_File.pm'), + XSPROTOARG => '-noprototypes', + DEFINE => "$CORE $OS2 $VER_INFO $COMPAT185 $WALL", + OBJECT => 'version$(OBJ_EXT) DB_File$(OBJ_EXT)', ((ExtUtils::MakeMaker->VERSION() gt '6.30') ? ('LICENSE' => 'perl') : () @@ -69,46 +69,72 @@ WriteMakefile( ? (INSTALLDIRS => 'site') : (INSTALLDIRS => 'perl'), - #OPTIMIZE => '-g', - 'depend' => { 'Makefile' => 'config.in', + #OPTIMIZE => '-g', + 'depend' => { 'Makefile' => 'config.in', 'version$(OBJ_EXT)' => 'version.c'}, - 'clean' => { FILES => 'constants.h constants.xs DB_File.pm.bak t/db-btree.t.bak t/db-hash.t.bak t/db-recno.t.bak t/pod.t.bak' }, - 'macro' => { my_files => "@files" }, + 'clean' => { FILES => 'constants.h constants.xs DB_File.pm.bak t/db-btree.t.bak t/db-hash.t.bak t/db-recno.t.bak t/pod.t.bak' }, + 'macro' => { my_files => "@files" }, 'dist' => { COMPRESS => 'gzip', SUFFIX => 'gz', - DIST_DEFAULT => 'MyDoubleCheck tardist'}, - ); + DIST_DEFAULT => 'MyDoubleCheck tardist'}, + + ( eval { ExtUtils::MakeMaker->VERSION(6.46) } + ? ( META_MERGE => { + + "meta-spec" => { version => 2 }, + + resources => { + + bugtracker => { + web => 'https://github.com/pmqs/DB_File/issues' + }, + + homepage => 'https://github.com/pmqs/DB_File', + + repository => { + type => 'git', + url => 'git://github.com/pmqs/DB_File.git', + web => 'https://github.com/pmqs/DB_File', + }, + }, + } + ) + : () + ), + + + ); my @names = qw( - BTREEMAGIC - BTREEVERSION - DB_LOCK - DB_SHMEM - DB_TXN - HASHMAGIC - HASHVERSION - MAX_PAGE_NUMBER - MAX_PAGE_OFFSET - MAX_REC_NUMBER - RET_ERROR - RET_SPECIAL - RET_SUCCESS - R_CURSOR - R_DUP - R_FIRST - R_FIXEDLEN - R_IAFTER - R_IBEFORE - R_LAST - R_NEXT - R_NOKEY - R_NOOVERWRITE - R_PREV - R_RECNOSYNC - R_SETCURSOR - R_SNAPSHOT - __R_UNUSED - ); + BTREEMAGIC + BTREEVERSION + DB_LOCK + DB_SHMEM + DB_TXN + HASHMAGIC + HASHVERSION + MAX_PAGE_NUMBER + MAX_PAGE_OFFSET + MAX_REC_NUMBER + RET_ERROR + RET_SPECIAL + RET_SUCCESS + R_CURSOR + R_DUP + R_FIRST + R_FIXEDLEN + R_IAFTER + R_IBEFORE + R_LAST + R_NEXT + R_NOKEY + R_NOOVERWRITE + R_PREV + R_RECNOSYNC + R_SETCURSOR + R_SNAPSHOT + __R_UNUSED + ); if (eval {require ExtUtils::Constant; 1}) { # Check the constants above all appear in @EXPORT in DB_File.pm @@ -171,9 +197,9 @@ sub MY::postamble { <<'EOM' } ; MyDoubleCheck: @echo Checking config.in is setup for a release - @(grep "^LIB.*/usr/local/BerkeleyDB" config.in && \ - grep "^INCLUDE.*/usr/local/BerkeleyDB" config.in && \ - grep "^#DBNAME.*" config.in) >/dev/null || \ + @(grep "^LIB.*/usr/local/BerkeleyDB" config.in && \ + grep "^INCLUDE.*/usr/local/BerkeleyDB" config.in && \ + grep "^#DBNAME.*" config.in) >/dev/null || \ (echo config.in needs fixing ; exit 1) @echo config.in is ok @echo @@ -183,16 +209,16 @@ MyDoubleCheck: @echo DB_File.xs is ok @echo @echo Checking for $$^W in files: $(my_files) - @perl -ne ' \ - exit 1 if /^\s*local\s*\(\s*\$$\^W\s*\)/;' $(my_files) || \ - (echo found unexpected $$^W ; exit 1) + @perl -ne ' \ + exit 1 if /^\s*local\s*\(\s*\$$\^W\s*\)/;' $(my_files) || \ + (echo found unexpected $$^W ; exit 1) @echo No $$^W found. @echo @echo Checking for 'use vars' in files: $(my_files) - @perl -ne ' \ - exit 0 if /^__(DATA|END)__/; \ - exit 1 if /^\s*use\s+vars/;' $(my_files) || \ - (echo found unexpected "use vars"; exit 1) + @perl -ne ' \ + exit 0 if /^__(DATA|END)__/; \ + exit 1 if /^\s*use\s+vars/;' $(my_files) || \ + (echo found unexpected "use vars"; exit 1) @echo No 'use vars' found. @echo @echo All files are OK for a release. @@ -223,24 +249,24 @@ sub ParseCONFIG open(F, "$CONFIG") or die "Cannot open file $CONFIG: $!\n" ; while () { - s/^\s*|\s*$//g ; - next if /^\s*$/ or /^\s*#/ ; - s/\s*#\s*$// ; - - ($k, $v) = split(/\s+=\s+/, $_, 2) ; - $k = uc $k ; - if ($ValidOption{$k}) { - delete $Parsed{$k} ; - $Info{$k} = $v ; - } - else { - push(@badkey, $k) ; - } + s/^\s*|\s*$//g ; + next if /^\s*$/ or /^\s*#/ ; + s/\s*#\s*$// ; + + ($k, $v) = split(/\s+=\s+/, $_, 2) ; + $k = uc $k ; + if ($ValidOption{$k}) { + delete $Parsed{$k} ; + $Info{$k} = $v ; + } + else { + push(@badkey, $k) ; + } } close F ; print "Unknown keys in $CONFIG ignored [@badkey]\n" - if @badkey ; + if @badkey ; # check parsed values my @missing = () ; @@ -252,18 +278,18 @@ sub ParseCONFIG $DB_NAME = $ENV{'DB_FILE_NAME'} || $Info{'DBNAME'} ; $COMPAT185 = "-DCOMPAT185 -DDB_LIBRARY_COMPATIBILITY_API" if (defined $ENV{'DB_FILE_COMPAT185'} && - $ENV{'DB_FILE_COMPAT185'} =~ /^\s*(on|true|1)\s*$/i) || - $Info{'COMPAT185'} =~ /^\s*(on|true|1)\s*$/i ; + $ENV{'DB_FILE_COMPAT185'} =~ /^\s*(on|true|1)\s*$/i) || + $Info{'COMPAT185'} =~ /^\s*(on|true|1)\s*$/i ; my $PREFIX = $Info{'PREFIX'} ; my $HASH = $Info{'HASH'} ; $VER_INFO = "-DmDB_Prefix_t=${PREFIX} -DmDB_Hash_t=${HASH}" ; print <) { - print, last if /^__(END|DATA)__/ ; + print, last if /^__(END|DATA)__/ ; - &{ $our_sub }(); - &{ $warn_sub }(); - print ; + &{ $our_sub }(); + &{ $warn_sub }(); + print ; } return if eof ; diff --git a/gnu/usr.bin/perl/cpan/Digest-MD5/MD5.pm b/gnu/usr.bin/perl/cpan/Digest-MD5/MD5.pm index bc0fec720a1..2742a05e658 100644 --- a/gnu/usr.bin/perl/cpan/Digest-MD5/MD5.pm +++ b/gnu/usr.bin/perl/cpan/Digest-MD5/MD5.pm @@ -3,7 +3,7 @@ package Digest::MD5; use strict; use vars qw($VERSION @ISA @EXPORT_OK); -$VERSION = '2.55'; +$VERSION = '2.55_01'; require Exporter; *import = \&Exporter::import; diff --git a/gnu/usr.bin/perl/cpan/Digest-MD5/MD5.xs b/gnu/usr.bin/perl/cpan/Digest-MD5/MD5.xs index fda44bbe4a9..964d37fb0e5 100644 --- a/gnu/usr.bin/perl/cpan/Digest-MD5/MD5.xs +++ b/gnu/usr.bin/perl/cpan/Digest-MD5/MD5.xs @@ -39,8 +39,6 @@ extern "C" { #include "EXTERN.h" #include "perl.h" #include "XSUB.h" -#include -#include #ifdef __cplusplus } #endif @@ -90,6 +88,46 @@ static MAGIC *THX_sv_magicext(pTHX_ SV *sv, SV *obj, int type, # define SvPVbyte(sv, lp) (sv_utf8_downgrade((sv), 0), SvPV((sv), (lp))) #endif +/* Perl does not guarantee that U32 is exactly 32 bits. Some system + * has no integral type with exactly 32 bits. For instance, A Cray has + * short, int and long all at 64 bits so we need to apply this macro + * to reduce U32 values to 32 bits at appropriate places. If U32 + * really does have 32 bits then this is a no-op. + */ +#if BYTEORDER > 0x4321 || defined(TRUNCATE_U32) + #define TO32(x) ((x) & 0xFFFFffff) + #define TRUNC32(x) ((x) &= 0xFFFFffff) +#else + #define TO32(x) (x) + #define TRUNC32(x) /*nothing*/ +#endif + +/* The MD5 algorithm is defined in terms of little endian 32-bit + * values. The following macros (and functions) allow us to convert + * between native integers and such values. + */ +static void u2s(U32 u, U8* s) +{ + *s++ = (U8)(u & 0xFF); + *s++ = (U8)((u >> 8) & 0xFF); + *s++ = (U8)((u >> 16) & 0xFF); + *s = (U8)((u >> 24) & 0xFF); +} + +#define s2u(s,u) ((u) = (U32)(*s) | \ + ((U32)(*(s+1)) << 8) | \ + ((U32)(*(s+2)) << 16) | \ + ((U32)(*(s+3)) << 24)) + +/* This structure keeps the current state of algorithm. + */ +typedef struct { + U32 A, B, C, D; /* current digest */ + U32 bytes_low; /* counts bytes in message */ + U32 bytes_high; /* turn it into a 64-bit counter */ + U8 buffer[128]; /* collect complete 64 byte blocks */ +} MD5_CTX; + #if defined(USE_ITHREADS) && defined(MGf_DUP) STATIC int dup_md5_ctx(pTHX_ MAGIC *mg, CLONE_PARAMS *params) { @@ -126,6 +164,300 @@ STATIC const struct { }; #endif + +/* Padding is added at the end of the message in order to fill a + * complete 64 byte block (- 8 bytes for the message length). The + * padding is also the reason the buffer in MD5_CTX have to be + * 128 bytes. + */ +static const unsigned char PADDING[64] = { + 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +/* Constants for MD5Transform routine. + */ +#define S11 7 +#define S12 12 +#define S13 17 +#define S14 22 +#define S21 5 +#define S22 9 +#define S23 14 +#define S24 20 +#define S31 4 +#define S32 11 +#define S33 16 +#define S34 23 +#define S41 6 +#define S42 10 +#define S43 15 +#define S44 21 + +/* F, G, H and I are basic MD5 functions. + */ +#define F(x, y, z) ((((x) & ((y) ^ (z))) ^ (z))) +#define G(x, y, z) F(z, x, y) +#define H(x, y, z) ((x) ^ (y) ^ (z)) +#define I(x, y, z) ((y) ^ ((x) | (~z))) + +/* ROTATE_LEFT rotates x left n bits. + */ +#define ROTATE_LEFT(x, n) (((x) << (n) | ((x) >> (32-(n))))) + +/* FF, GG, HH, and II transformations for rounds 1, 2, 3, and 4. + * Rotation is separate from addition to prevent recomputation. + */ +#define FF(a, b, c, d, s, ac) \ + (a) += F ((b), (c), (d)) + (NEXTx) + (U32)(ac); \ + TRUNC32((a)); \ + (a) = ROTATE_LEFT ((a), (s)); \ + (a) += (b); \ + TRUNC32((a)); + +#define GG(a, b, c, d, x, s, ac) \ + (a) += G ((b), (c), (d)) + X[x] + (U32)(ac); \ + TRUNC32((a)); \ + (a) = ROTATE_LEFT ((a), (s)); \ + (a) += (b); \ + TRUNC32((a)); + +#define HH(a, b, c, d, x, s, ac) \ + (a) += H ((b), (c), (d)) + X[x] + (U32)(ac); \ + TRUNC32((a)); \ + (a) = ROTATE_LEFT ((a), (s)); \ + (a) += (b); \ + TRUNC32((a)); + +#define II(a, b, c, d, x, s, ac) \ + (a) += I ((b), (c), (d)) + X[x] + (U32)(ac); \ + TRUNC32((a)); \ + (a) = ROTATE_LEFT ((a), (s)); \ + (a) += (b); \ + TRUNC32((a)); + + +static void +MD5Init(MD5_CTX *ctx) +{ + /* Start state */ + ctx->A = 0x67452301; + ctx->B = 0xefcdab89; + ctx->C = 0x98badcfe; + ctx->D = 0x10325476; + + /* message length */ + ctx->bytes_low = ctx->bytes_high = 0; +} + + +static void +MD5Transform(MD5_CTX* ctx, const U8* buf, STRLEN blocks) +{ +#ifdef MD5_DEBUG + static int tcount = 0; +#endif + + U32 A = ctx->A; + U32 B = ctx->B; + U32 C = ctx->C; + U32 D = ctx->D; + + do { + U32 a = A; + U32 b = B; + U32 c = C; + U32 d = D; + + U32 X[16]; /* little-endian values, used in round 2-4 */ + U32 *uptr = X; + U32 tmp; + #define NEXTx (s2u(buf,tmp), buf += 4, *uptr++ = tmp) + +#ifdef MD5_DEBUG + if (buf == ctx->buffer) + fprintf(stderr,"%5d: Transform ctx->buffer", ++tcount); + else + fprintf(stderr,"%5d: Transform %p (%d)", ++tcount, buf, blocks); + + { + int i; + fprintf(stderr,"["); + for (i = 0; i < 16; i++) { + fprintf(stderr,"%x,", x[i]); /* FIXME */ + } + fprintf(stderr,"]\n"); + } +#endif + + /* Round 1 */ + FF (a, b, c, d, S11, 0xd76aa478); /* 1 */ + FF (d, a, b, c, S12, 0xe8c7b756); /* 2 */ + FF (c, d, a, b, S13, 0x242070db); /* 3 */ + FF (b, c, d, a, S14, 0xc1bdceee); /* 4 */ + FF (a, b, c, d, S11, 0xf57c0faf); /* 5 */ + FF (d, a, b, c, S12, 0x4787c62a); /* 6 */ + FF (c, d, a, b, S13, 0xa8304613); /* 7 */ + FF (b, c, d, a, S14, 0xfd469501); /* 8 */ + FF (a, b, c, d, S11, 0x698098d8); /* 9 */ + FF (d, a, b, c, S12, 0x8b44f7af); /* 10 */ + FF (c, d, a, b, S13, 0xffff5bb1); /* 11 */ + FF (b, c, d, a, S14, 0x895cd7be); /* 12 */ + FF (a, b, c, d, S11, 0x6b901122); /* 13 */ + FF (d, a, b, c, S12, 0xfd987193); /* 14 */ + FF (c, d, a, b, S13, 0xa679438e); /* 15 */ + FF (b, c, d, a, S14, 0x49b40821); /* 16 */ + + /* Round 2 */ + GG (a, b, c, d, 1, S21, 0xf61e2562); /* 17 */ + GG (d, a, b, c, 6, S22, 0xc040b340); /* 18 */ + GG (c, d, a, b, 11, S23, 0x265e5a51); /* 19 */ + GG (b, c, d, a, 0, S24, 0xe9b6c7aa); /* 20 */ + GG (a, b, c, d, 5, S21, 0xd62f105d); /* 21 */ + GG (d, a, b, c, 10, S22, 0x2441453); /* 22 */ + GG (c, d, a, b, 15, S23, 0xd8a1e681); /* 23 */ + GG (b, c, d, a, 4, S24, 0xe7d3fbc8); /* 24 */ + GG (a, b, c, d, 9, S21, 0x21e1cde6); /* 25 */ + GG (d, a, b, c, 14, S22, 0xc33707d6); /* 26 */ + GG (c, d, a, b, 3, S23, 0xf4d50d87); /* 27 */ + GG (b, c, d, a, 8, S24, 0x455a14ed); /* 28 */ + GG (a, b, c, d, 13, S21, 0xa9e3e905); /* 29 */ + GG (d, a, b, c, 2, S22, 0xfcefa3f8); /* 30 */ + GG (c, d, a, b, 7, S23, 0x676f02d9); /* 31 */ + GG (b, c, d, a, 12, S24, 0x8d2a4c8a); /* 32 */ + + /* Round 3 */ + HH (a, b, c, d, 5, S31, 0xfffa3942); /* 33 */ + HH (d, a, b, c, 8, S32, 0x8771f681); /* 34 */ + HH (c, d, a, b, 11, S33, 0x6d9d6122); /* 35 */ + HH (b, c, d, a, 14, S34, 0xfde5380c); /* 36 */ + HH (a, b, c, d, 1, S31, 0xa4beea44); /* 37 */ + HH (d, a, b, c, 4, S32, 0x4bdecfa9); /* 38 */ + HH (c, d, a, b, 7, S33, 0xf6bb4b60); /* 39 */ + HH (b, c, d, a, 10, S34, 0xbebfbc70); /* 40 */ + HH (a, b, c, d, 13, S31, 0x289b7ec6); /* 41 */ + HH (d, a, b, c, 0, S32, 0xeaa127fa); /* 42 */ + HH (c, d, a, b, 3, S33, 0xd4ef3085); /* 43 */ + HH (b, c, d, a, 6, S34, 0x4881d05); /* 44 */ + HH (a, b, c, d, 9, S31, 0xd9d4d039); /* 45 */ + HH (d, a, b, c, 12, S32, 0xe6db99e5); /* 46 */ + HH (c, d, a, b, 15, S33, 0x1fa27cf8); /* 47 */ + HH (b, c, d, a, 2, S34, 0xc4ac5665); /* 48 */ + + /* Round 4 */ + II (a, b, c, d, 0, S41, 0xf4292244); /* 49 */ + II (d, a, b, c, 7, S42, 0x432aff97); /* 50 */ + II (c, d, a, b, 14, S43, 0xab9423a7); /* 51 */ + II (b, c, d, a, 5, S44, 0xfc93a039); /* 52 */ + II (a, b, c, d, 12, S41, 0x655b59c3); /* 53 */ + II (d, a, b, c, 3, S42, 0x8f0ccc92); /* 54 */ + II (c, d, a, b, 10, S43, 0xffeff47d); /* 55 */ + II (b, c, d, a, 1, S44, 0x85845dd1); /* 56 */ + II (a, b, c, d, 8, S41, 0x6fa87e4f); /* 57 */ + II (d, a, b, c, 15, S42, 0xfe2ce6e0); /* 58 */ + II (c, d, a, b, 6, S43, 0xa3014314); /* 59 */ + II (b, c, d, a, 13, S44, 0x4e0811a1); /* 60 */ + II (a, b, c, d, 4, S41, 0xf7537e82); /* 61 */ + II (d, a, b, c, 11, S42, 0xbd3af235); /* 62 */ + II (c, d, a, b, 2, S43, 0x2ad7d2bb); /* 63 */ + II (b, c, d, a, 9, S44, 0xeb86d391); /* 64 */ + + A += a; TRUNC32(A); + B += b; TRUNC32(B); + C += c; TRUNC32(C); + D += d; TRUNC32(D); + + } while (--blocks); + ctx->A = A; + ctx->B = B; + ctx->C = C; + ctx->D = D; +} + + +#ifdef MD5_DEBUG +static char* +ctx_dump(MD5_CTX* ctx) +{ + static char buf[1024]; + sprintf(buf, "{A=%x,B=%x,C=%x,D=%x,%d,%d(%d)}", + ctx->A, ctx->B, ctx->C, ctx->D, + ctx->bytes_low, ctx->bytes_high, (ctx->bytes_low&0x3F)); + return buf; +} +#endif + + +static void +MD5Update(MD5_CTX* ctx, const U8* buf, STRLEN len) +{ + STRLEN blocks; + STRLEN fill = ctx->bytes_low & 0x3F; + +#ifdef MD5_DEBUG + static int ucount = 0; + fprintf(stderr,"%5i: Update(%s, %p, %d)\n", ++ucount, ctx_dump(ctx), + buf, len); +#endif + + ctx->bytes_low += len; + if (ctx->bytes_low < len) /* wrap around */ + ctx->bytes_high++; + + if (fill) { + STRLEN missing = 64 - fill; + if (len < missing) { + Copy(buf, ctx->buffer + fill, len, U8); + return; + } + Copy(buf, ctx->buffer + fill, missing, U8); + MD5Transform(ctx, ctx->buffer, 1); + buf += missing; + len -= missing; + } + + blocks = len >> 6; + if (blocks) + MD5Transform(ctx, buf, blocks); + if ( (len &= 0x3F)) { + Copy(buf + (blocks << 6), ctx->buffer, len, U8); + } +} + + +static void +MD5Final(U8* digest, MD5_CTX *ctx) +{ + STRLEN fill = ctx->bytes_low & 0x3F; + STRLEN padlen = (fill < 56 ? 56 : 120) - fill; + U32 bits_low, bits_high; +#ifdef MD5_DEBUG + fprintf(stderr," Final: %s\n", ctx_dump(ctx)); +#endif + Copy(PADDING, ctx->buffer + fill, padlen, U8); + fill += padlen; + + bits_low = ctx->bytes_low << 3; + bits_high = (ctx->bytes_high << 3) | (ctx->bytes_low >> 29); + u2s(bits_low, ctx->buffer + fill); fill += 4; + u2s(bits_high, ctx->buffer + fill); fill += 4; + + MD5Transform(ctx, ctx->buffer, fill >> 6); +#ifdef MD5_DEBUG + fprintf(stderr," Result: %s\n", ctx_dump(ctx)); +#endif + + u2s(ctx->A, digest); + u2s(ctx->B, digest+4); + u2s(ctx->C, digest+8); + u2s(ctx->D, digest+12); +} + +#ifndef INT2PTR +#define INT2PTR(any,d) (any)(d) +#endif + static MD5_CTX* get_md5_ctx(pTHX_ SV* sv) { MAGIC *mg; @@ -306,7 +638,7 @@ addfile(self, fh) InputStream fh PREINIT: MD5_CTX* context = get_md5_ctx(aTHX_ self); - STRLEN fill = (context->count >> 3) & (MD5_BLOCK_LENGTH - 1); + STRLEN fill = context->bytes_low & 0x3F; #ifdef USE_HEAP_INSTEAD_OF_STACK unsigned char* buffer; #else @@ -371,12 +703,14 @@ context(ctx, ...) PPCODE: if (items > 2) { STRLEN len; - ctx->count = SvUV(ST(1)) << 3; + unsigned long blocks = SvUV(ST(1)); unsigned char *buf = (unsigned char *)(SvPV(ST(2), len)); - ctx->state[0] = buf[ 0] | (buf[ 1]<<8) | (buf[ 2]<<16) | (buf[ 3]<<24); - ctx->state[1] = buf[ 4] | (buf[ 5]<<8) | (buf[ 6]<<16) | (buf[ 7]<<24); - ctx->state[2] = buf[ 8] | (buf[ 9]<<8) | (buf[10]<<16) | (buf[11]<<24); - ctx->state[3] = buf[12] | (buf[13]<<8) | (buf[14]<<16) | (buf[15]<<24); + ctx->A = buf[ 0] | (buf[ 1]<<8) | (buf[ 2]<<16) | (buf[ 3]<<24); + ctx->B = buf[ 4] | (buf[ 5]<<8) | (buf[ 6]<<16) | (buf[ 7]<<24); + ctx->C = buf[ 8] | (buf[ 9]<<8) | (buf[10]<<16) | (buf[11]<<24); + ctx->D = buf[12] | (buf[13]<<8) | (buf[14]<<16) | (buf[15]<<24); + ctx->bytes_low = blocks << 6; + ctx->bytes_high = blocks >> 26; if (items == 4) { buf = (unsigned char *)(SvPV(ST(3), len)); MD5Update(ctx, buf, len); @@ -386,20 +720,17 @@ context(ctx, ...) XSRETURN(0); } - w=ctx->state[0]; out[ 0]=w; out[ 1]=(w>>8); out[ 2]=(w>>16); out[ 3]=(w>>24); - w=ctx->state[1]; out[ 4]=w; out[ 5]=(w>>8); out[ 6]=(w>>16); out[ 7]=(w>>24); - w=ctx->state[2]; out[ 8]=w; out[ 9]=(w>>8); out[10]=(w>>16); out[11]=(w>>24); - w=ctx->state[3]; out[12]=w; out[13]=(w>>8); out[14]=(w>>16); out[15]=(w>>24); + w=ctx->A; out[ 0]=w; out[ 1]=(w>>8); out[ 2]=(w>>16); out[ 3]=(w>>24); + w=ctx->B; out[ 4]=w; out[ 5]=(w>>8); out[ 6]=(w>>16); out[ 7]=(w>>24); + w=ctx->C; out[ 8]=w; out[ 9]=(w>>8); out[10]=(w>>16); out[11]=(w>>24); + w=ctx->D; out[12]=w; out[13]=(w>>8); out[14]=(w>>16); out[15]=(w>>24); EXTEND(SP, 3); - ST(0) = sv_2mortal(newSViv((ctx->count >> 3) - - ((ctx->count >> 3) % MD5_BLOCK_LENGTH))); + ST(0) = sv_2mortal(newSVuv(ctx->bytes_high << 26 | + ctx->bytes_low >> 6)); ST(1) = sv_2mortal(newSVpv(out, 16)); - ST(2) = sv_2mortal(newSVpv("",0)); - if (((ctx->count >> 3) & (MD5_BLOCK_LENGTH - 1)) != 0) - ST(2) = sv_2mortal(newSVpv((char *)ctx->buffer, - (ctx->count >> 3) & (MD5_BLOCK_LENGTH - 1))); - + ST(2) = sv_2mortal(newSVpv((char *)ctx->buffer, + ctx->bytes_low & 0x3F)); XSRETURN(3); void diff --git a/gnu/usr.bin/perl/cpan/Digest-MD5/Makefile.PL b/gnu/usr.bin/perl/cpan/Digest-MD5/Makefile.PL index 1015058bacd..76906d10463 100644 --- a/gnu/usr.bin/perl/cpan/Digest-MD5/Makefile.PL +++ b/gnu/usr.bin/perl/cpan/Digest-MD5/Makefile.PL @@ -5,7 +5,6 @@ use Config qw(%Config); use ExtUtils::MakeMaker; my @extra; -push(@extra, DEFINE => "-DU32_ALIGNMENT_REQUIRED") unless free_u32_alignment(); push(@extra, INSTALLDIRS => 'perl') if $] >= 5.008 && $] < 5.012; if ($^O eq 'VMS') { @@ -39,119 +38,6 @@ WriteMakefile( -sub free_u32_alignment -{ - $|=1; - if (exists $Config{d_u32align}) { - print "Perl's config says that U32 access must "; - print "not " unless $Config{d_u32align}; - print "be aligned.\n"; - return !$Config{d_u32align}; - } - - if ($^O eq 'VMS' || $^O eq 'MSWin32') { - print "Assumes that $^O implies free alignment for U32 access.\n"; - return 1; - } - - if ($^O eq 'hpux' && $Config{osvers} < 11.0) { - print "Will not test for free alignment on older HP-UX.\n"; - return 0; - } - - print "Testing alignment requirements for U32... "; - open(ALIGN_TEST, ">u32align.c") or die "$!"; - print ALIGN_TEST <<'EOT'; close(ALIGN_TEST); -/*--------------------------------------------------------------*/ -/* This program allocates a buffer of U8 (char) and then tries */ -/* to access it through a U32 pointer at every offset. The */ -/* program is expected to die with a bus error/seg fault for */ -/* machines that do not support unaligned integer read/write */ -/*--------------------------------------------------------------*/ - -#include -#include "EXTERN.h" -#include "perl.h" - -#ifdef printf - #undef printf -#endif - -int main(int argc, char** argv, char** env) -{ -#if BYTEORDER == 0x1234 || BYTEORDER == 0x4321 - volatile U8 buf[] = "\0\0\0\1\0\0\0\0"; - volatile U32 *up; - int i; - - if (sizeof(U32) != 4) { - printf("sizeof(U32) is not 4, but %d\n", sizeof(U32)); - exit(1); - } - - fflush(stdout); - - for (i = 0; i < 4; i++) { - up = (U32*)(buf + i); - if (! ((*up == 1 << (8*i)) || /* big-endian */ - (*up == 1 << (8*(3-i))) /* little-endian */ - ) - ) - { - printf("read failed (%x)\n", *up); - exit(2); - } - } - - /* write test */ - for (i = 0; i < 4; i++) { - up = (U32*)(buf + i); - *up = 0xBeef; - if (*up != 0xBeef) { - printf("write failed (%x)\n", *up); - exit(3); - } - } - - printf("no restrictions\n"); - exit(0); -#else - printf("unusual byteorder, playing safe\n"); - exit(1); -#endif - return 0; -} -/*--------------------------------------------------------------*/ -EOT - - my $cc_cmd = "$Config{cc} $Config{ccflags} -I$Config{archlibexp}/CORE"; - my $exe = "u32align$Config{exe_ext}"; - $cc_cmd .= " -o $exe"; - my $rc; - $rc = system("$cc_cmd $Config{ldflags} u32align.c $Config{libs}"); - if ($rc) { - print "Can't compile test program. Will ensure alignment to play safe.\n\n"; - unlink("u32align.c", $exe, "u32align$Config{obj_ext}"); - return 0; - } - - $rc = system("./$exe"); - unlink("u32align.c", $exe, "u32align$Config{obj_ext}"); - - return 1 unless $rc; - - if ($rc > 0x80) { - (my $cp = $rc) >>= 8; - print "Test program exit status was $cp\n"; - } - if ($rc & 0x80) { - $rc &= ~0x80; - unlink("core") && print "Core dump deleted\n"; - } - print "signal $rc\n" if $rc && $rc < 0x80; - return 0; -} - BEGIN { # compatibility with older versions of MakeMaker my $developer = -d ".git"; diff --git a/gnu/usr.bin/perl/cpan/Digest-MD5/t/files.t b/gnu/usr.bin/perl/cpan/Digest-MD5/t/files.t index 728ceb130b8..ef64088c8c5 100755 --- a/gnu/usr.bin/perl/cpan/Digest-MD5/t/files.t +++ b/gnu/usr.bin/perl/cpan/Digest-MD5/t/files.t @@ -21,7 +21,7 @@ EOT # This is the output of: 'md5sum README MD5.xs rfc1321.txt' $EXPECT = < !!$ENV{PERL_ENCODE_DEBUG}; our $VERSION; BEGIN { - $VERSION = sprintf "%d.%02d", q$Revision: 3.01 $ =~ /(\d+)/g; + $VERSION = sprintf "%d.%02d", q$Revision: 3.06 $ =~ /(\d+)/g; require XSLoader; XSLoader::load( __PACKAGE__, $VERSION ); } @@ -65,7 +65,7 @@ require Encode::Config; eval { local $SIG{__DIE__}; local $SIG{__WARN__}; - local @INC = @INC; + local @INC = @INC || (); pop @INC if $INC[-1] eq '.'; require Encode::ConfigLocal; }; diff --git a/gnu/usr.bin/perl/cpan/Encode/Encode.xs b/gnu/usr.bin/perl/cpan/Encode/Encode.xs index feeccd8752b..4baf2963aa4 100644 --- a/gnu/usr.bin/perl/cpan/Encode/Encode.xs +++ b/gnu/usr.bin/perl/cpan/Encode/Encode.xs @@ -1,5 +1,5 @@ /* - $Id: Encode.xs,v 2.47 2019/03/13 00:26:18 dankogai Exp dankogai $ + $Id: Encode.xs,v 2.48 2020/03/02 04:34:34 dankogai Exp $ */ #define PERL_NO_GET_CONTEXT @@ -231,7 +231,7 @@ encode_method(pTHX_ const encode_t * enc, const encpage_t * dir, SV * src, U8 * if (dir == enc->f_utf8) { STRLEN clen; UV ch = - utf8n_to_uvuni(s+slen, (tlen-sdone-slen), + utf8n_to_uvchr(s+slen, (tlen-sdone-slen), &clen, UTF8_ALLOW_ANY|UTF8_CHECK_ONLY); /* if non-representable multibyte prefix at end of current buffer - break*/ if (clen > tlen - sdone - slen) break; @@ -982,6 +982,7 @@ ALIAS: PREINIT: SV *obj; INIT: + PERL_UNUSED_VAR(ix); SvGETMAGIC(encoding); CODE: if (!SvOK(encoding)) @@ -1003,6 +1004,7 @@ ALIAS: PREINIT: SV *obj; INIT: + PERL_UNUSED_VAR(ix); SvGETMAGIC(encoding); CODE: if (!SvOK(encoding)) diff --git a/gnu/usr.bin/perl/cpan/Encode/bin/enc2xs b/gnu/usr.bin/perl/cpan/Encode/bin/enc2xs index 619b64b7573..1209baa9cdd 100644 --- a/gnu/usr.bin/perl/cpan/Encode/bin/enc2xs +++ b/gnu/usr.bin/perl/cpan/Encode/bin/enc2xs @@ -11,7 +11,7 @@ use warnings; use Getopt::Std; use Config; my @orig_ARGV = @ARGV; -our $VERSION = do { my @r = (q$Revision: 2.21 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; +our $VERSION = do { my @r = (q$Revision: 2.23 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # These may get re-ordered. # RAW is a do_now as inserted by &enter @@ -144,6 +144,7 @@ getopts('CM:SQqOo:f:n:v',\%opt); $opt{M} and make_makefile_pl($opt{M}, @ARGV); $opt{C} and make_configlocal_pm($opt{C}, @ARGV); $opt{v} ||= $ENV{ENC2XS_VERBOSE}; +$opt{q} ||= $ENV{ENC2XS_NO_COMMENTS}; sub verbose { print STDERR @_ if $opt{v}; @@ -914,24 +915,7 @@ sub decode_U } my @uname; -sub char_names -{ - my $s = do "unicore/Name.pl"; - die "char_names: unicore/Name.pl: $!\n" unless defined $s; - pos($s) = 0; - while ($s =~ /\G([0-9a-f]+)\t([0-9a-f]*)\t(.*?)\s*\n/igc) - { - my $name = $3; - my $s = hex($1); - last if $s >= 0x10000; - my $e = length($2) ? hex($2) : $s; - for (my $i = $s; $i <= $e; $i++) - { - $uname[$i] = $name; -# print sprintf("U%04X $name\n",$i); - } - } -} +sub char_names{} # cf. https://rt.cpan.org/Ticket/Display.html?id=132471 sub output_ucm_page { diff --git a/gnu/usr.bin/perl/cpan/Encode/encoding.pm b/gnu/usr.bin/perl/cpan/Encode/encoding.pm index c3f324d29fa..a01833451fc 100644 --- a/gnu/usr.bin/perl/cpan/Encode/encoding.pm +++ b/gnu/usr.bin/perl/cpan/Encode/encoding.pm @@ -1,6 +1,6 @@ -# $Id: encoding.pm,v 2.22 2018/02/11 05:32:03 dankogai Exp $ +# $Id: encoding.pm,v 3.00 2020/04/19 10:56:28 dankogai Exp $ package encoding; -our $VERSION = sprintf "%d.%02d", q$Revision: 2.22 $ =~ /(\d+)/g; +our $VERSION = sprintf "%d.%02d", q$Revision: 3.00 $ =~ /(\d+)/g; use Encode; use strict; diff --git a/gnu/usr.bin/perl/cpan/Encode/lib/Encode/Guess.pm b/gnu/usr.bin/perl/cpan/Encode/lib/Encode/Guess.pm index 41fc19b7991..87a725d9993 100644 --- a/gnu/usr.bin/perl/cpan/Encode/lib/Encode/Guess.pm +++ b/gnu/usr.bin/perl/cpan/Encode/lib/Encode/Guess.pm @@ -2,7 +2,7 @@ package Encode::Guess; use strict; use warnings; use Encode qw(:fallbacks find_encoding); -our $VERSION = do { my @r = ( q$Revision: 2.7 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r }; +our $VERSION = do { my @r = ( q$Revision: 2.8 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r }; my $Canon = 'Guess'; use constant DEBUG => !!$ENV{PERL_ENCODE_DEBUG}; @@ -158,7 +158,7 @@ sub guess { $nline++; } $try{ascii} - or return "Encodings too ambiguous: ", join( " or ", keys %try ); + or return "Encodings too ambiguous: " . join( " or ", keys %try ); return $try{ascii}; } diff --git a/gnu/usr.bin/perl/cpan/Encode/t/enc_utf8.t b/gnu/usr.bin/perl/cpan/Encode/t/enc_utf8.t index be7d487804c..ea8b80d2334 100755 --- a/gnu/usr.bin/perl/cpan/Encode/t/enc_utf8.t +++ b/gnu/usr.bin/perl/cpan/Encode/t/enc_utf8.t @@ -1,4 +1,4 @@ -# $Id: enc_utf8.t,v 2.5 2017/06/10 17:23:50 dankogai Exp $ +# $Id: enc_utf8.t,v 2.6 2019/12/25 09:23:21 dankogai Exp $ # This is the twin of enc_eucjp.t . BEGIN { @@ -8,21 +8,22 @@ BEGIN { exit 0; } unless (find PerlIO::Layer 'perlio') { - print "1..0 # Skip: PerlIO was not built\n"; - exit 0; + print "1..0 # Skip: PerlIO was not built\n"; + exit 0; } if (ord("A") == 193) { - print "1..0 # encoding pragma does not support EBCDIC platforms\n"; - exit(0); + print "1..0 # encoding pragma does not support EBCDIC platforms\n"; + exit(0); } if ($] >= 5.025003 and !$Config{usecperl}){ - print "1..0 # Skip: Perl <=5.25.2 or cperl required\n"; - exit 0; + print "1..0 # Skip: Perl <=5.25.2 or cperl required\n"; + exit 0; } } no warnings "deprecated"; use encoding 'utf8'; +use warnings; my @c = (127, 128, 255, 256); diff --git a/gnu/usr.bin/perl/cpan/Encode/t/whatwg-aliases.json b/gnu/usr.bin/perl/cpan/Encode/t/whatwg-aliases.json deleted file mode 100644 index 4307b0cc486..00000000000 --- a/gnu/usr.bin/perl/cpan/Encode/t/whatwg-aliases.json +++ /dev/null @@ -1,455 +0,0 @@ -[ - { - "encodings": [ - { - "labels": [ - "unicode-1-1-utf-8", - "utf-8", - "utf8" - ], - "name": "UTF-8" - } - ], - "heading": "The Encoding" - }, - { - "encodings": [ - { - "labels": [ - "866", - "cp866", - "csibm866", - "ibm866" - ], - "name": "IBM866" - }, - { - "labels": [ - "csisolatin2", - "iso-8859-2", - "iso-ir-101", - "iso8859-2", - "iso88592", - "iso_8859-2", - "iso_8859-2:1987", - "l2", - "latin2" - ], - "name": "ISO-8859-2" - }, - { - "labels": [ - "csisolatin3", - "iso-8859-3", - "iso-ir-109", - "iso8859-3", - "iso88593", - "iso_8859-3", - "iso_8859-3:1988", - "l3", - "latin3" - ], - "name": "ISO-8859-3" - }, - { - "labels": [ - "csisolatin4", - "iso-8859-4", - "iso-ir-110", - "iso8859-4", - "iso88594", - "iso_8859-4", - "iso_8859-4:1988", - "l4", - "latin4" - ], - "name": "ISO-8859-4" - }, - { - "labels": [ - "csisolatincyrillic", - "cyrillic", - "iso-8859-5", - "iso-ir-144", - "iso8859-5", - "iso88595", - "iso_8859-5", - "iso_8859-5:1988" - ], - "name": "ISO-8859-5" - }, - { - "labels": [ - "arabic", - "asmo-708", - "csiso88596e", - "csiso88596i", - "csisolatinarabic", - "ecma-114", - "iso-8859-6", - "iso-8859-6-e", - "iso-8859-6-i", - "iso-ir-127", - "iso8859-6", - "iso88596", - "iso_8859-6", - "iso_8859-6:1987" - ], - "name": "ISO-8859-6" - }, - { - "labels": [ - "csisolatingreek", - "ecma-118", - "elot_928", - "greek", - "greek8", - "iso-8859-7", - "iso-ir-126", - "iso8859-7", - "iso88597", - "iso_8859-7", - "iso_8859-7:1987", - "sun_eu_greek" - ], - "name": "ISO-8859-7" - }, - { - "labels": [ - "csiso88598e", - "csisolatinhebrew", - "hebrew", - "iso-8859-8", - "iso-8859-8-e", - "iso-ir-138", - "iso8859-8", - "iso88598", - "iso_8859-8", - "iso_8859-8:1988", - "visual" - ], - "name": "ISO-8859-8" - }, - { - "labels": [ - "csiso88598i", - "iso-8859-8-i", - "logical" - ], - "name": "ISO-8859-8-I" - }, - { - "labels": [ - "csisolatin6", - "iso-8859-10", - "iso-ir-157", - "iso8859-10", - "iso885910", - "l6", - "latin6" - ], - "name": "ISO-8859-10" - }, - { - "labels": [ - "iso-8859-13", - "iso8859-13", - "iso885913" - ], - "name": "ISO-8859-13" - }, - { - "labels": [ - "iso-8859-14", - "iso8859-14", - "iso885914" - ], - "name": "ISO-8859-14" - }, - { - "labels": [ - "csisolatin9", - "iso-8859-15", - "iso8859-15", - "iso885915", - "iso_8859-15", - "l9" - ], - "name": "ISO-8859-15" - }, - { - "labels": [ - "iso-8859-16" - ], - "name": "ISO-8859-16" - }, - { - "labels": [ - "cskoi8r", - "koi", - "koi8", - "koi8-r", - "koi8_r" - ], - "name": "KOI8-R" - }, - { - "labels": [ - "koi8-ru", - "koi8-u" - ], - "name": "KOI8-U" - }, - { - "labels": [ - "csmacintosh", - "mac", - "macintosh", - "x-mac-roman" - ], - "name": "macintosh" - }, - { - "labels": [ - "dos-874", - "iso-8859-11", - "iso8859-11", - "iso885911", - "tis-620", - "windows-874" - ], - "name": "windows-874" - }, - { - "labels": [ - "cp1250", - "windows-1250", - "x-cp1250" - ], - "name": "windows-1250" - }, - { - "labels": [ - "cp1251", - "windows-1251", - "x-cp1251" - ], - "name": "windows-1251" - }, - { - "labels": [ - "ansi_x3.4-1968", - "ascii", - "cp1252", - "cp819", - "csisolatin1", - "ibm819", - "iso-8859-1", - "iso-ir-100", - "iso8859-1", - "iso88591", - "iso_8859-1", - "iso_8859-1:1987", - "l1", - "latin1", - "us-ascii", - "windows-1252", - "x-cp1252" - ], - "name": "windows-1252" - }, - { - "labels": [ - "cp1253", - "windows-1253", - "x-cp1253" - ], - "name": "windows-1253" - }, - { - "labels": [ - "cp1254", - "csisolatin5", - "iso-8859-9", - "iso-ir-148", - "iso8859-9", - "iso88599", - "iso_8859-9", - "iso_8859-9:1989", - "l5", - "latin5", - "windows-1254", - "x-cp1254" - ], - "name": "windows-1254" - }, - { - "labels": [ - "cp1255", - "windows-1255", - "x-cp1255" - ], - "name": "windows-1255" - }, - { - "labels": [ - "cp1256", - "windows-1256", - "x-cp1256" - ], - "name": "windows-1256" - }, - { - "labels": [ - "cp1257", - "windows-1257", - "x-cp1257" - ], - "name": "windows-1257" - }, - { - "labels": [ - "cp1258", - "windows-1258", - "x-cp1258" - ], - "name": "windows-1258" - }, - { - "labels": [ - "x-mac-cyrillic", - "x-mac-ukrainian" - ], - "name": "x-mac-cyrillic" - } - ], - "heading": "Legacy single-byte encodings" - }, - { - "encodings": [ - { - "labels": [ - "chinese", - "csgb2312", - "csiso58gb231280", - "gb2312", - "gb_2312", - "gb_2312-80", - "gbk", - "iso-ir-58", - "x-gbk" - ], - "name": "GBK" - }, - { - "labels": [ - "gb18030" - ], - "name": "gb18030" - } - ], - "heading": "Legacy multi-byte Chinese (simplified) encodings" - }, - { - "encodings": [ - { - "labels": [ - "big5", - "big5-hkscs", - "cn-big5", - "csbig5", - "x-x-big5" - ], - "name": "Big5" - } - ], - "heading": "Legacy multi-byte Chinese (traditional) encodings" - }, - { - "encodings": [ - { - "labels": [ - "cseucpkdfmtjapanese", - "euc-jp", - "x-euc-jp" - ], - "name": "EUC-JP" - }, - { - "labels": [ - "csiso2022jp", - "iso-2022-jp" - ], - "name": "ISO-2022-JP" - }, - { - "labels": [ - "csshiftjis", - "ms932", - "ms_kanji", - "shift-jis", - "shift_jis", - "sjis", - "windows-31j", - "x-sjis" - ], - "name": "Shift_JIS" - } - ], - "heading": "Legacy multi-byte Japanese encodings" - }, - { - "encodings": [ - { - "labels": [ - "cseuckr", - "csksc56011987", - "euc-kr", - "iso-ir-149", - "korean", - "ks_c_5601-1987", - "ks_c_5601-1989", - "ksc5601", - "ksc_5601", - "windows-949" - ], - "name": "EUC-KR" - } - ], - "heading": "Legacy multi-byte Korean encodings" - }, - { - "encodings": [ - { - "labels": [ - "csiso2022kr", - "hz-gb-2312", - "iso-2022-cn", - "iso-2022-cn-ext", - "iso-2022-kr" - ], - "name": "replacement" - }, - { - "labels": [ - "utf-16be" - ], - "name": "UTF-16BE" - }, - { - "labels": [ - "utf-16", - "utf-16le" - ], - "name": "UTF-16LE" - }, - { - "labels": [ - "x-user-defined" - ], - "name": "x-user-defined" - } - ], - "heading": "Legacy miscellaneous encodings" - } -] diff --git a/gnu/usr.bin/perl/cpan/Encode/t/whatwg-aliases.t b/gnu/usr.bin/perl/cpan/Encode/t/whatwg-aliases.t deleted file mode 100644 index ffc030bb757..00000000000 --- a/gnu/usr.bin/perl/cpan/Encode/t/whatwg-aliases.t +++ /dev/null @@ -1,66 +0,0 @@ -# This test checks aliases support based on the list in the -# WHATWG Encoding Living Standard -# -# https://encoding.spec.whatwg.org/ -# -# The input of this test is the file whatwg-aliases.json downloaded from -# https://encoding.spec.whatwg.org/encodings.json -# -# To run: -# AUTHOR_TESTING=1 prove -l t/whatwg-aliases.t - - -use Test::More - ($ENV{AUTHOR_TESTING} || $ENV{RELEASE_TESTING}) - ? 'no_plan' - : (skip_all => 'For maintainers only'); -use Encode 'find_encoding'; -use JSON::PP 'decode_json'; -use File::Spec; -use FindBin; - -my $encodings = decode_json(do { - # https://encoding.spec.whatwg.org/encodings.json - open my $f, '<', File::Spec->catdir($FindBin::Bin, 'whatwg-aliases.json'); - local $/; - <$f> -}); - -my %IGNORE = map { $_ => '' } qw( - replacement - utf8 -); - -my %TODO = ( - 'ISO-8859-8-I' => 'Not supported', - 'gb18030' => 'Not supported', - '866' => 'Not supported', - 'x-user-defined' => 'Not supported', - # ... -); - -for my $section (@$encodings) { - for my $enc (@{$section->{encodings}}) { - - my $name = $enc->{name}; - - next if exists $IGNORE{$name}; - - local $TODO = $TODO{$name} if exists $TODO{$name}; - - my $encoding = find_encoding($name); - isa_ok($encoding, 'Encode::Encoding', $name); - - for my $label (@{$enc->{labels}}) { - local $TODO = $TODO{$label} if exists $TODO{$label}; - - my $e = find_encoding($label); - if (isa_ok($e, 'Encode::Encoding', $label)) { - next if exists $IGNORE{$label}; - is($e->name, $encoding->name, "$label ->name is $name") - } - } - } -} - -done_testing; diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-Install/lib/ExtUtils/Install.pm b/gnu/usr.bin/perl/cpan/ExtUtils-Install/lib/ExtUtils/Install.pm index 7bcd941bd2a..047c007145e 100644 --- a/gnu/usr.bin/perl/cpan/ExtUtils-Install/lib/ExtUtils/Install.pm +++ b/gnu/usr.bin/perl/cpan/ExtUtils-Install/lib/ExtUtils/Install.pm @@ -108,7 +108,6 @@ $INSTALL_QUIET = 1 $ENV{MAKEFLAGS} =~ /\b(s|silent|quiet)\b/); my $Curdir = File::Spec->curdir; -my $Perm_Dir = $ENV{PERL_CORE} ? 0770 : 0755; sub _estr(@) { return join "\n",'!' x 72,@_,'!' x 72,''; @@ -800,7 +799,7 @@ sub install { #XXX OS-SPECIFIC _chdir($cwd); } foreach my $targetdir (sort keys %check_dirs) { - _mkpath( $targetdir, 0, $Perm_Dir, $verbose, $dry_run ); + _mkpath( $targetdir, 0, 0755, $verbose, $dry_run ); } foreach my $found (@found_files) { my ($diff, $ffd, $origfile, $mode, $size, $atime, $mtime, @@ -814,7 +813,7 @@ sub install { #XXX OS-SPECIFIC $targetfile= _unlink_or_rename( $targetfile, 'tryhard', 'install' ) unless $dry_run; } elsif ( ! -d $targetdir ) { - _mkpath( $targetdir, 0, $Perm_Dir, $verbose, $dry_run ); + _mkpath( $targetdir, 0, 0755, $verbose, $dry_run ); } print "Installing $targetfile\n"; @@ -854,7 +853,7 @@ sub install { #XXX OS-SPECIFIC if ($pack{'write'}) { $dir = install_rooted_dir(dirname($pack{'write'})); - _mkpath( $dir, 0, $Perm_Dir, $verbose, $dry_run ); + _mkpath( $dir, 0, 0755, $verbose, $dry_run ); print "Writing $pack{'write'}\n" if $verbose; $packlist->write(install_rooted_file($pack{'write'})) unless $dry_run; } @@ -1200,7 +1199,7 @@ environment variable will silence this output. sub pm_to_blib { my($fromto,$autodir,$pm_filter) = @_; - _mkpath($autodir,0,$Perm_Dir) if defined $autodir; + _mkpath($autodir,0,0755) if defined $autodir; while(my($from, $to) = each %$fromto) { if( -f $to && -s $from == -s $to && -M $to < -M $from ) { print "Skip $to (unchanged)\n" unless $INSTALL_QUIET; @@ -1223,7 +1222,7 @@ sub pm_to_blib { # we wont try hard here. its too likely to mess things up. forceunlink($to); } else { - _mkpath(dirname($to),0,$Perm_Dir); + _mkpath(dirname($to),0,0755); } if ($need_filtering) { run_filter($pm_filter, $from, $to); diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command.pm index 4924c81fbea..c5101c37b7d 100644 --- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command.pm +++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command.pm @@ -7,8 +7,8 @@ use vars qw(@ISA @EXPORT @EXPORT_OK $VERSION); @ISA = qw(Exporter); @EXPORT = qw(cp rm_f rm_rf mv cat eqtime mkpath touch test_f test_d chmod dos2unix); -$VERSION = '7.34'; -$VERSION = eval $VERSION; +$VERSION = '7.44'; +$VERSION =~ tr/_//d; my $Is_VMS = $^O eq 'VMS'; my $Is_VMS_mode = $Is_VMS; diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm index 0323ed40fa7..484fa5b69d5 100644 --- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm +++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm @@ -10,8 +10,8 @@ our @ISA = qw(Exporter); our @EXPORT = qw(test_harness pod2man perllocal_install uninstall warn_if_old_packlist test_s cp_nonempty); -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.44'; +$VERSION =~ tr/_//d; my $Is_VMS = $^O eq 'VMS'; diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm index 700cb7347ab..deec54d2883 100644 --- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm +++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm @@ -2,8 +2,8 @@ package ExtUtils::Liblist; use strict; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.44'; +$VERSION =~ tr/_//d; use File::Spec; require ExtUtils::Liblist::Kid; diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm index a6da855862f..e040a899edb 100644 --- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm +++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm @@ -11,8 +11,8 @@ use 5.006; use strict; use warnings; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.44_01'; +$VERSION =~ tr/_//d; use ExtUtils::MakeMaker::Config; use Cwd 'cwd'; @@ -49,8 +49,10 @@ sub _unix_os2_ext { # $potential_libs # this is a rewrite of Andy Dougherty's extliblist in perl + require Text::ParseWords; + my ( @searchpath ); # from "-L/path" entries in $potential_libs - my ( @libpath ) = split " ", $Config{'libpth'} || ''; + my ( @libpath ) = Text::ParseWords::quotewords( '\s+', 0, $Config{'libpth'} || '' ); my ( @ldloadlibs, @bsloadlibs, @extralibs, @ld_run_path, %ld_run_path_seen ); my ( @libs, %libs_seen ); my ( $fullname, @fullname ); @@ -63,7 +65,7 @@ sub _unix_os2_ext { $potential_libs =~ s/(^|\s)(-F)\s*(\S+)/$1-Wl,$2 -Wl,$3/g; } - foreach my $thislib ( split ' ', $potential_libs ) { + foreach my $thislib ( Text::ParseWords::quotewords( '\s+', 0, $potential_libs) ) { my ( $custom_name ) = ''; # Handle possible linker path arguments. @@ -88,6 +90,7 @@ sub _unix_os2_ext { $thislib = $self->catdir( $pwd, $thislib ); } push( @searchpath, $thislib ); + $thislib = qq{"$thislib"} if $thislib =~ / /; # protect spaces if there push( @extralibs, "$ptype$thislib" ); push( @ldloadlibs, "$rtype$thislib" ); next; @@ -171,6 +174,10 @@ sub _unix_os2_ext { && -f ( $fullname = "$thispth/lib$thislib.$Config_dlext" ) ) { } + elsif ( $^O eq 'darwin' && require DynaLoader && defined &DynaLoader::dl_load_file + && DynaLoader::dl_load_file( $fullname = "$thispth/lib$thislib.$so", 0 ) ) + { + } elsif ( -f ( $fullname = "$thispth/$thislib$Config_libext" ) ) { } elsif ( -f ( $fullname = "$thispth/lib$thislib.dll$Config_libext" ) ) { @@ -207,7 +214,8 @@ sub _unix_os2_ext { # Now update library lists # what do we know about this library... - my $is_dyna = ( $fullname !~ /\Q$Config_libext\E\z/ ); + # "Sounds like we should always assume it's a dynamic library on AIX." + my $is_dyna = $^O eq 'aix' ? 1 : ( $fullname !~ /\Q$Config_libext\E\z/ ); my $in_perl = ( $libs =~ /\B-l:?\Q${thislib}\E\b/s ); # include the path to the lib once in the dynamic linker path diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm index b2c360bca3a..f1ffa91849e 100644 --- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm +++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm @@ -3,8 +3,8 @@ package ExtUtils::MM; use strict; use ExtUtils::MakeMaker::Config; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.44'; +$VERSION =~ tr/_//d; require ExtUtils::Liblist; require ExtUtils::MakeMaker; @@ -23,9 +23,9 @@ ExtUtils::MM - OS adjusted ExtUtils::MakeMaker subclass B -ExtUtils::MM is a subclass of ExtUtils::MakeMaker which automatically +ExtUtils::MM is a subclass of L which automatically chooses the appropriate OS specific subclass for you -(ie. ExtUils::MM_Unix, etc...). +(ie. L, etc...). It also provides a convenient alias via the MM class (I didn't want MakeMaker modules outside of ExtUtils/). diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm index b114ee49d30..654e2213594 100644 --- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm +++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm @@ -1,8 +1,8 @@ package ExtUtils::MM_AIX; use strict; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.44'; +$VERSION =~ tr/_//d; use ExtUtils::MakeMaker::Config; require ExtUtils::MM_Unix; @@ -19,10 +19,10 @@ ExtUtils::MM_AIX - AIX specific subclass of ExtUtils::MM_Unix =head1 DESCRIPTION -This is a subclass of ExtUtils::MM_Unix which contains functionality for +This is a subclass of L which contains functionality for AIX. -Unless otherwise stated it works just like ExtUtils::MM_Unix +Unless otherwise stated it works just like ExtUtils::MM_Unix. =head2 Overridden methods @@ -50,7 +50,9 @@ sub xs_dlsyms_ext { sub xs_dlsyms_arg { my($self, $file) = @_; - return qq{-bE:${file}}; + my $arg = qq{-bE:${file}}; + $arg = '-Wl,'.$arg if $Config{lddlflags} =~ /-Wl,-bE:/; + return $arg; } sub init_others { diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm index f0106a44c9d..4f4b252c261 100644 --- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm +++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm @@ -1,8 +1,8 @@ package ExtUtils::MM_Any; use strict; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.44'; +$VERSION =~ tr/_//d; use Carp; use File::Spec; @@ -46,7 +46,7 @@ ExtUtils::MM_Any is a superclass for the ExtUtils::MM_* set of modules. It contains methods which are either inherently cross-platform or are written in a cross-platform manner. -Subclass off of ExtUtils::MM_Any I ExtUtils::MM_Unix. This is a +Subclass off of ExtUtils::MM_Any I L. This is a temporary solution. B @@ -195,7 +195,7 @@ sub can_redirect_error { my $is_dmake = $self->is_make_type('dmake'); -Returns true if C<<$self->make>> is the given type; possibilities are: +Returns true if C<< $self->make >> is the given type; possibilities are: gmake GNU make dmake @@ -1167,7 +1167,7 @@ MAKE_FRAG $mm->_fix_metadata_before_conversion( \%metadata ); -Fixes errors in the metadata before it's handed off to CPAN::Meta for +Fixes errors in the metadata before it's handed off to L for conversion. This hopefully results in something that can be used further on, no guarantee is made though. @@ -2214,7 +2214,9 @@ sub init_INSTALL_from_INSTALL_BASE { my $key = "INSTALL".$dir.$uc_thing; $install{$key} ||= - $self->catdir('$(INSTALL_BASE)', @{$map{$thing}}); + ($thing =~ /^man.dir$/ and not $Config{lc $key}) + ? 'none' + : $self->catdir('$(INSTALL_BASE)', @{$map{$thing}}); } } @@ -2416,7 +2418,7 @@ Initializes the macro definitions having to do with compiling and linking used by tools_other() and places them in the $MM object. If there is no description, its the same as the parameter to -WriteMakefile() documented in ExtUtils::MakeMaker. +WriteMakefile() documented in L. =cut @@ -2767,7 +2769,7 @@ END =head2 File::Spec wrappers -ExtUtils::MM_Any is a subclass of File::Spec. The methods noted here +ExtUtils::MM_Any is a subclass of L. The methods noted here override File::Spec. @@ -2908,8 +2910,7 @@ sub libscan { my($self,$path) = @_; if ($path =~ m<^README\.pod$>i) { - warn "WARNING: Older versions of ExtUtils::MakeMaker may errantly install $path as part of this distribution. It is recommended to avoid using this path in CPAN modules.\n" - unless $ENV{PERL_CORE}; + warn "WARNING: Older versions of ExtUtils::MakeMaker may errantly install $path as part of this distribution. It is recommended to avoid using this path in CPAN modules.\n"; return ''; } diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm index 6fb7911390c..d62a7d132f3 100644 --- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm +++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm @@ -12,7 +12,7 @@ ExtUtils::MM_BeOS - methods to override UN*X behaviour in ExtUtils::MakeMaker =head1 DESCRIPTION -See ExtUtils::MM_Unix for a documentation of the methods provided +See L for a documentation of the methods provided there. This package overrides the implementation of these methods, not the semantics. @@ -26,8 +26,8 @@ require ExtUtils::MM_Any; require ExtUtils::MM_Unix; our @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix ); -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.44'; +$VERSION =~ tr/_//d; =item os_flavor @@ -58,6 +58,8 @@ sub init_linker { =back +=cut + 1; __END__ diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm index 934e65f913d..2052c7c3aa3 100644 --- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm +++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm @@ -9,8 +9,8 @@ require ExtUtils::MM_Unix; require ExtUtils::MM_Win32; our @ISA = qw( ExtUtils::MM_Unix ); -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.44'; +$VERSION =~ tr/_//d; =head1 NAME @@ -23,7 +23,7 @@ ExtUtils::MM_Cygwin - methods to override UN*X behaviour in ExtUtils::MakeMaker =head1 DESCRIPTION -See ExtUtils::MM_Unix for a documentation of the methods provided there. +See L for a documentation of the methods provided there. =over 4 @@ -86,7 +86,7 @@ sub init_linker { if ($Config{useshrplib} eq 'true') { my $libperl = '$(PERL_INC)' .'/'. "$Config{libperl}"; - if( $] >= 5.006002 ) { + if( "$]" >= 5.006002 ) { $libperl =~ s/(dll\.)?a$/dll.a/; } $self->{PERL_ARCHIVE} = $libperl; @@ -104,8 +104,8 @@ sub init_linker { Determine whether a file is native to Cygwin by checking whether it resides inside the Cygwin installation (using Windows paths). If so, -use C to determine if it may be a command. -Otherwise use the tests from C. +use L to determine if it may be a command. +Otherwise use the tests from L. =cut @@ -158,16 +158,6 @@ sub install { $s; } -=item all_target - -Build man pages, too - -=cut - -sub all_target { - ExtUtils::MM_Unix::all_target(shift); -} - =back =cut diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm index 33a8b199df3..d5c66deb895 100644 --- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm +++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm @@ -2,8 +2,8 @@ package ExtUtils::MM_DOS; use strict; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.44'; +$VERSION =~ tr/_//d; require ExtUtils::MM_Any; require ExtUtils::MM_Unix; @@ -21,10 +21,10 @@ ExtUtils::MM_DOS - DOS specific subclass of ExtUtils::MM_Unix =head1 DESCRIPTION -This is a subclass of ExtUtils::MM_Unix which contains functionality +This is a subclass of L which contains functionality for DOS. -Unless otherwise stated, it works just like ExtUtils::MM_Unix +Unless otherwise stated, it works just like ExtUtils::MM_Unix. =head2 Overridden methods diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm index f5359dca095..9ca9d2c6214 100644 --- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm +++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm @@ -7,8 +7,8 @@ BEGIN { our @ISA = qw( ExtUtils::MM_Unix ); } -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.44'; +$VERSION =~ tr/_//d; =head1 NAME @@ -21,7 +21,7 @@ ExtUtils::MM_Darwin - special behaviors for OS X =head1 DESCRIPTION -See L for L for documentation on the +See L or L for documentation on the methods overridden here. =head2 Overridden Methods diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm index 5646ae33406..b10e3f9cfba 100644 --- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm +++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm @@ -2,8 +2,8 @@ package ExtUtils::MM_MacOS; use strict; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.44'; +$VERSION =~ tr/_//d; sub new { die 'MacOS Classic (MacPerl) is no longer supported by MakeMaker'; diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm index c88c4fabe98..a9e2e1af542 100644 --- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm +++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm @@ -10,7 +10,7 @@ ExtUtils::MM_NW5 - methods to override UN*X behaviour in ExtUtils::MakeMaker =head1 DESCRIPTION -See ExtUtils::MM_Unix for a documentation of the methods provided +See L for a documentation of the methods provided there. This package overrides the implementation of these methods, not the semantics. @@ -22,8 +22,8 @@ use strict; use ExtUtils::MakeMaker::Config; use File::Basename; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.44'; +$VERSION =~ tr/_//d; require ExtUtils::MM_Win32; our @ISA = qw(ExtUtils::MM_Win32); @@ -192,7 +192,7 @@ MAKE_FRAG } # Reconstruct the X.Y.Z version. my $version = join '.', map { sprintf "%d", $_ } - $] =~ /(\d)\.(\d{3})(\d{2})/; + "$]" =~ /(\d)\.(\d{3})(\d{2})/; push @m, sprintf <<'EOF', $from, $version, $to, $exportlist; $(LD) $(LDFLAGS) %s -desc "Perl %s Extension ($(BASEEXT)) XS_VERSION: $(XS_VERSION)" -nlmversion $(NLM_VERSION) -o %s $(MYEXTLIB) $(PERL_INC)\Main.lib -commandfile %s $(CHMOD) 755 $@ diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm index dfa6dca4916..300f091c351 100644 --- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm +++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm @@ -5,8 +5,8 @@ use strict; use ExtUtils::MakeMaker qw(neatvalue); use File::Spec; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.44'; +$VERSION =~ tr/_//d; require ExtUtils::MM_Any; require ExtUtils::MM_Unix; @@ -24,7 +24,7 @@ ExtUtils::MM_OS2 - methods to override UN*X behaviour in ExtUtils::MakeMaker =head1 DESCRIPTION -See ExtUtils::MM_Unix for a documentation of the methods provided +See L for a documentation of the methods provided there. This package overrides the implementation of these methods, not the semantics. diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm index 362d7d920fb..3e6f6d06995 100644 --- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm +++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm @@ -1,8 +1,8 @@ package ExtUtils::MM_QNX; use strict; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.44'; +$VERSION =~ tr/_//d; require ExtUtils::MM_Unix; our @ISA = qw(ExtUtils::MM_Unix); @@ -19,10 +19,10 @@ ExtUtils::MM_QNX - QNX specific subclass of ExtUtils::MM_Unix =head1 DESCRIPTION -This is a subclass of ExtUtils::MM_Unix which contains functionality for +This is a subclass of L which contains functionality for QNX. -Unless otherwise stated it works just like ExtUtils::MM_Unix +Unless otherwise stated it works just like ExtUtils::MM_Unix. =head2 Overridden methods diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm index cc95c415e81..4201585e326 100644 --- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm +++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm @@ -1,8 +1,8 @@ package ExtUtils::MM_UWIN; use strict; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.44'; +$VERSION =~ tr/_//d; require ExtUtils::MM_Unix; our @ISA = qw(ExtUtils::MM_Unix); @@ -19,10 +19,10 @@ ExtUtils::MM_UWIN - U/WIN specific subclass of ExtUtils::MM_Unix =head1 DESCRIPTION -This is a subclass of ExtUtils::MM_Unix which contains functionality for +This is a subclass of L which contains functionality for the AT&T U/WIN UNIX on Windows environment. -Unless otherwise stated it works just like ExtUtils::MM_Unix +Unless otherwise stated it works just like ExtUtils::MM_Unix. =head2 Overridden methods diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm index 45ab3e85bc4..ce1292740f0 100644 --- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm +++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm @@ -14,8 +14,8 @@ use ExtUtils::MakeMaker qw($Verbose neatvalue _sprintf562); # If we make $VERSION an our variable parse_version() breaks use vars qw($VERSION); -$VERSION = '7.34'; -$VERSION = eval $VERSION; ## no critic [BuiltinFunctions::ProhibitStringyEval] +$VERSION = '7.44'; +$VERSION =~ tr/_//d; require ExtUtils::MM_Any; our @ISA = qw(ExtUtils::MM_Any); @@ -37,6 +37,10 @@ BEGIN { grep( $^O eq $_, qw(bsdos interix dragonfly) ) ); $Is{Android} = $^O =~ /android/; + if ( $^O eq 'darwin' && $^X eq '/usr/bin/perl' ) { + my @osvers = split /\./, $Config{osvers}; + $Is{ApplCor} = ( $osvers[0] >= 18 ); + } } BEGIN { @@ -54,15 +58,15 @@ ExtUtils::MM_Unix - methods used by ExtUtils::MakeMaker =head1 SYNOPSIS -C + require ExtUtils::MM_Unix; =head1 DESCRIPTION The methods provided by this package are designed to be used in -conjunction with ExtUtils::MakeMaker. When MakeMaker writes a +conjunction with L. When MakeMaker writes a Makefile, it creates one or more objects that inherit their methods -from a package C. MM itself doesn't provide any methods, but it -ISA ExtUtils::MM_Unix class. The inheritance tree of MM lets operating +from a package L. MM itself doesn't provide any methods, but +it ISA ExtUtils::MM_Unix class. The inheritance tree of MM lets operating specific packages take the responsibility for all the methods provided by MM_Unix. We are trying to reduce the number of the necessary overrides by defining rather primitive operations within @@ -89,8 +93,8 @@ Not all of the methods below are overridable in a Makefile.PL. Overridable methods are marked as (o). All methods are overridable by a platform specific MM_*.pm file. -Cross-platform methods are being moved into MM_Any. If you can't find -something that used to be in here, look in MM_Any. +Cross-platform methods are being moved into L. +If you can't find something that used to be in here, look in MM_Any. =cut @@ -132,6 +136,10 @@ sub c_o { my $command = '$(CCCMD)'; my $flags = '$(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) $(DEFINE)'; + if ( $Is{ApplCor} ) { + $flags =~ s/"-I(\$\(PERL_INC\))"/-iwithsysroot "$1"/; + } + if (my $cpp = $Config{cpprun}) { my $cpp_cmd = $self->const_cccmd; $cpp_cmd =~ s/^CCCMD\s*=\s*\$\(CC\)/$cpp/; @@ -151,8 +159,11 @@ EOF my @exts = qw(c cpp cxx cc); push @exts, 'C' if !$Is{OS2} and !$Is{Win32} and !$Is{Dos}; #Case-specific $m_o = $self->{XSMULTI} ? $self->xs_obj_opt('$*$(OBJ_EXT)') : ''; + my $dbgout = $self->dbgoutflag; for my $ext (@exts) { - push @m, "\n.$ext\$(OBJ_EXT) :\n\t$command $flags \$*.$ext" . ( $m_o ? " $m_o" : '' ) . "\n"; + push @m, "\n.$ext\$(OBJ_EXT) :\n\t$command $flags " + .($dbgout?"$dbgout ":'') + ."\$*.$ext" . ( $m_o ? " $m_o" : '' ) . "\n"; } return join "", @m; } @@ -170,6 +181,16 @@ sub xs_obj_opt { "-o $output_file"; } +=item dbgoutflag + +Returns a CC flag that tells the CC to emit a separate debugging symbol file +when compiling an object file. + +=cut + +sub dbgoutflag { + ''; +} =item cflags (o) @@ -462,12 +483,20 @@ MAN1PODS = ".$self->wraplist(sort keys %{$self->{MAN1PODS}})." MAN3PODS = ".$self->wraplist(sort keys %{$self->{MAN3PODS}})." "; + push @m, q{ +SDKROOT := $(shell xcrun --show-sdk-path) +PERL_SYSROOT = $(SDKROOT) +} if $Is{ApplCor} && $self->{'PERL_INC'} =~ m!^/System/Library/Perl/!; push @m, q{ # Where is the Config information that we are using/depend on -CONFIGDEP = $(PERL_ARCHLIBDEP)$(DFSEP)Config.pm $(PERL_INCDEP)$(DFSEP)config.h -} if -e $self->catfile( $self->{PERL_INC}, 'config.h' ); +CONFIGDEP = $(PERL_ARCHLIBDEP)$(DFSEP)Config.pm $(PERL_SYSROOT)$(PERL_INCDEP)$(DFSEP)config.h +} if $Is{ApplCor}; + push @m, q{ +# Where is the Config information that we are using/depend on +CONFIGDEP = $(PERL_ARCHLIBDEP)$(DFSEP)Config.pm $(PERL_INCDEP)$(DFSEP)config.h +} if -e $self->catfile( $self->{PERL_INC}, 'config.h' ) && !$Is{ApplCor}; push @m, qq{ # Where to build things @@ -940,6 +969,7 @@ sub dynamic_lib { my ($v, $d, $f) = File::Spec->splitpath($ext); my @d = File::Spec->splitdir($d); shift @d if $d[0] eq 'lib'; + pop @d if $d[$#d] eq ''; my $instdir = $self->catdir('$(INST_ARCHLIB)', 'auto', @d, $f); # Dynamic library names may need special handling. @@ -1091,7 +1121,6 @@ Finds the executables PERL and FULLPERL sub find_perl { my($self, $ver, $names, $dirs, $trace) = @_; - if ($trace >= 2){ print "Looking for perl $ver by these names: @$names @@ -1244,12 +1273,15 @@ sub _fixin_replace_shebang { my ( $self, $file, $line ) = @_; # Now figure out the interpreter name. - my ( $cmd, $arg ) = split ' ', $line, 2; - $cmd =~ s!^.*/!!; + my ( $origcmd, $arg ) = split ' ', $line, 2; + (my $cmd = $origcmd) =~ s!^.*/!!; # Now look (in reverse) for interpreter in absolute PATH (unless perl). my $interpreter; - if ( $cmd =~ m{^perl(?:\z|[^a-z])} ) { + if ( defined $ENV{PERL_MM_SHEBANG} && $ENV{PERL_MM_SHEBANG} eq "relocatable" ) { + $interpreter = "/usr/bin/env perl"; + } + elsif ( $cmd =~ m{^perl(?:\z|[^a-z])} ) { if ( $Config{startperl} =~ m,^\#!.*/perl, ) { $interpreter = $Config{startperl}; $interpreter =~ s,^\#!,,; @@ -1271,6 +1303,24 @@ sub _fixin_replace_shebang { $interpreter = $maybefile; } } + + # If the shebang is absolute and exists in PATH, but was not + # the first one found, leave it alone if it's actually the + # same file as first one. This avoids packages built on + # merged-/usr systems with /usr/bin before /bin in the path + # breaking when installed on systems without merged /usr + if ($origcmd ne $interpreter and $self->file_name_is_absolute($origcmd)) { + my $origdir = dirname($origcmd); + if ($self->maybe_command($origcmd) && grep { $_ eq $origdir } @absdirs) { + my ($odev, $oino) = stat $origcmd; + my ($idev, $iino) = stat $interpreter; + if ($odev == $idev && $oino == $iino) { + warn "$origcmd is the same as $interpreter, leaving alone" + if $Verbose; + $interpreter = $origcmd; + } + } + } } # Figure out how to invoke interpreter on this machine. @@ -1456,12 +1506,13 @@ sub init_MANPODS { foreach my $num (1,3) { my $installdirs = uc $self->{INSTALLDIRS}; $installdirs = '' if $installdirs eq 'PERL'; - my $mandir = $self->_expand_macros( - $self->{ "INSTALL${installdirs}MAN${num}DIR" } ); + my @mandirs = File::Spec->splitdir( $self->_expand_macros( + $self->{ "INSTALL${installdirs}MAN${num}DIR" } ) ); + my $mandir = pop @mandirs; my $section = $num; foreach ($num, "${num}p", "${num}pm", qw< l n o C L >, "L$num") { - if ( $mandir =~ /\b(?:man|cat)$_$/ ) { + if ( $mandir =~ /^(?:man|cat)$_$/ ) { $section = $_; last; } @@ -2062,6 +2113,11 @@ sub init_PERL { # already escaped spaces. $self->{FULLPERL} =~ tr/"//d if $Is{VMS}; + # `dmake` can fail for image (aka, executable) names which start with double-quotes + # * push quote inward by at least one character (or the drive prefix, if present) + # * including any initial directory separator preserves the `file_name_is_absolute` property + $self->{FULLPERL} =~ s/^"(\S(:\\|:)?)/$1"/ if $self->is_make_type('dmake'); + # Little hack to get around VMS's find_perl putting "MCR" in front # sometimes. $self->{ABSPERL} = $self->{PERL}; @@ -2084,6 +2140,11 @@ sub init_PERL { # already escaped spaces. $self->{PERL} =~ tr/"//d if $Is{VMS}; + # `dmake` can fail for image (aka, executable) names which start with double-quotes + # * push quote inward by at least one character (or the drive prefix, if present) + # * including any initial directory separator preserves the `file_name_is_absolute` property + $self->{PERL} =~ s/^"(\S(:\\|:)?)/$1"/ if $self->is_make_type('dmake'); + # Are we building the core? $self->{PERL_CORE} = $ENV{PERL_CORE} unless exists $self->{PERL_CORE}; $self->{PERL_CORE} = 0 unless defined $self->{PERL_CORE}; @@ -2153,8 +2214,7 @@ Called by init_main. Initializes PERL_* sub init_PERM { my($self) = shift; - my $perm_dir = $self->{PERL_CORE} ? 770 : 755; - $self->{PERM_DIR} = $perm_dir unless defined $self->{PERM_DIR}; + $self->{PERM_DIR} = 755 unless defined $self->{PERM_DIR}; $self->{PERM_RW} = 644 unless defined $self->{PERM_RW}; $self->{PERM_RWX} = 755 unless defined $self->{PERM_RWX}; @@ -2188,6 +2248,7 @@ sub init_xs { my ($v, $d, $f) = File::Spec->splitpath($ext); my @d = File::Spec->splitdir($d); shift @d if defined $d[0] and $d[0] eq 'lib'; + pop @d if $d[$#d] eq ''; my $instdir = $self->catdir('$(INST_ARCHLIB)', 'auto', @d, $f); my $instfile = $self->catfile($instdir, $f); push @statics, "$instfile\$(LIB_EXT)"; @@ -2758,14 +2819,14 @@ sub _find_static_libs { Called by a utility method of makeaperl. Checks whether a given file is an XS library by seeing whether it defines any symbols starting -with C. +with C (with an optional leading underscore - needed on MacOS). =cut sub xs_static_lib_is_xs { my ($self, $libfile) = @_; my $devnull = File::Spec->devnull; - return `nm $libfile 2>$devnull` =~ /\bboot_/; + return `nm $libfile 2>$devnull` =~ /\b_?boot_/; } =item makefile (o) @@ -2892,7 +2953,7 @@ sub parse_abstract { } close $fh; - if ( $pod_encoding and !( $] < 5.008 or !$Config{useperlio} ) ) { + if ( $pod_encoding and !( "$]" < 5.008 or !$Config{useperlio} ) ) { # Have to wrap in an eval{} for when running under PERL_CORE # Encode isn't available during build phase and parsing # ABSTRACT isn't important there @@ -2914,7 +2975,7 @@ It will return the string "undef" if it can't figure out what $VERSION is. $VERSION should be for all to see, so C or plain $VERSION are okay, but C is not. -C<> is also checked for. The first version +C is also checked for. The first version declaration found is used, but this may change as it differs from how Perl does it. @@ -3171,7 +3232,7 @@ PPD_PERLVERS } my $archname = $Config{archname}; - if ($] >= 5.008) { + if ("$]" >= 5.008) { # archname did not change from 5.6 to 5.8, but those versions may # not be not binary compatible so now we append the part of the # version that changes when binary compatibility may change @@ -3288,9 +3349,11 @@ sub processPL { my $m = ''; foreach my $plfile (sort keys %$pl_files) { - my $list = ref($pl_files->{$plfile}) - ? $pl_files->{$plfile} - : [$pl_files->{$plfile}]; + my $targets = $pl_files->{$plfile}; + my $list = + ref($targets) eq 'HASH' ? [ sort keys %$targets ] : + ref($targets) eq 'ARRAY' ? $pl_files->{$plfile} : + [$pl_files->{$plfile}]; foreach my $target (@$list) { if( $Is{VMS} ) { @@ -3314,13 +3377,27 @@ sub processPL { $perlrun = 'PERLRUNINST'; } + my $extra_inputs = ''; + if( ref($targets) eq 'HASH' ) { + my $inputs = ref($targets->{$target}) + ? $targets->{$target} + : [$targets->{$target}]; + + for my $input (@$inputs) { + if( $Is{VMS} ) { + $input = vmsify($self->eliminate_macros($input)); + } + $extra_inputs .= ' '.$input; + } + } + $m .= <::ARG_MAX. Otherwise falling back to 4096. =cut @@ -3977,13 +4054,15 @@ sub xs_o { my ($self) = @_; return '' unless $self->needs_linking(); my $m_o = $self->{XSMULTI} ? $self->xs_obj_opt('$*$(OBJ_EXT)') : ''; + my $dbgout = $self->dbgoutflag; + $dbgout = $dbgout ? "$dbgout " : ''; my $frag = ''; # dmake makes noise about ambiguous rule - $frag .= sprintf <<'EOF', $m_o unless $self->is_make_type('dmake'); + $frag .= sprintf <<'EOF', $dbgout, $m_o unless $self->is_make_type('dmake'); .xs$(OBJ_EXT) : $(XSUBPPRUN) $(XSPROTOARG) $(XSUBPPARGS) $*.xs > $*.xsc $(MV) $*.xsc $*.c - $(CCCMD) $(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) $(DEFINE) $*.c %s + $(CCCMD) $(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) $(DEFINE) %s$*.c %s EOF if ($self->{XSMULTI}) { for my $ext ($self->_xs_list_basenames) { @@ -3997,16 +4076,17 @@ EOF $self->_xsbuild_replace_macro($cccmd, 'xs', $ext, 'INC'); my $define = '$(DEFINE)'; $self->_xsbuild_replace_macro($define, 'xs', $ext, 'DEFINE'); - # 1 2 3 4 - $frag .= _sprintf562 <<'EOF', $ext, $cccmd, $m_o, $define; + # 1 2 3 4 5 + $frag .= _sprintf562 <<'EOF', $ext, $cccmd, $m_o, $define, $dbgout; %1$s$(OBJ_EXT): %1$s.xs $(XSUBPPRUN) $(XSPROTOARG) $(XSUBPPARGS) $*.xs > $*.xsc $(MV) $*.xsc $*.c - %2$s $(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) %4$s $*.c %3$s + %2$s $(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) %4$s %5$s$*.c %3$s EOF } } + $frag =~ s/"-I(\$\(PERL_INC\))"/-iwithsysroot "$1"/sg if $Is{ApplCor}; $frag; } diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm index b6fbccfe349..fbf5f9ee265 100644 --- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm +++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm @@ -15,8 +15,8 @@ BEGIN { use File::Basename; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.44'; +$VERSION =~ tr/_//d; require ExtUtils::MM_Any; require ExtUtils::MM_Unix; @@ -38,7 +38,7 @@ ExtUtils::MM_VMS - methods to override UN*X behaviour in ExtUtils::MakeMaker =head1 DESCRIPTION -See ExtUtils::MM_Unix for a documentation of the methods provided +See L for a documentation of the methods provided there. This package overrides the implementation of these methods, not the semantics. @@ -87,7 +87,7 @@ sub ext { Those methods which override default MM_Unix methods are marked "(override)", while methods unique to MM_VMS are marked "(specific)". For overridden methods, documentation is limited to an explanation -of why this method overrides the MM_Unix method; see the ExtUtils::MM_Unix +of why this method overrides the MM_Unix method; see the L documentation for more details. =over 4 @@ -251,7 +251,8 @@ sub find_perl { =item _fixin_replace_shebang (override) -Helper routine for MM->fixin(), overridden because there's no such thing as an +Helper routine for L<< MM->fixin()|ExtUtils::MM_Unix/fixin >>, overridden +because there's no such thing as an actual shebang line that will be interpreted by the shell, so we just prepend $Config{startperl} and preserve the shebang line argument for any switches it may contain. @@ -587,9 +588,10 @@ sub constants { # Cleanup paths for directories in MMS macros. foreach my $macro ( qw [ INST_BIN INST_SCRIPT INST_LIB INST_ARCHLIB - PERL_LIB PERL_ARCHLIB + PERL_LIB PERL_ARCHLIB PERL_ARCHLIBDEP PERL_INC PERL_SRC ], - (map { 'INSTALL'.$_ } $self->installvars) + (map { 'INSTALL'.$_ } $self->installvars), + (map { 'DESTINSTALL'.$_ } $self->installvars) ) { next unless defined $self->{$macro}; @@ -1487,8 +1489,8 @@ uninstall_from_vendordirs :: =item perldepend (override) Use VMS-style syntax for files; it's cheaper to just do it directly here -than to have the MM_Unix method call C repeatedly. Also, if -we have to rebuild Config.pm, use MM[SK] to do it. +than to have the L method call C +repeatedly. Also, if we have to rebuild Config.pm, use MM[SK] to do it. =cut @@ -2081,7 +2083,7 @@ sub init_linker { Eliminate the macros in the output to the MMS/MMK file. -(File::Spec::VMS used to do this for us, but it's being removed) +(L used to do this for us, but it's being removed) =cut @@ -2120,7 +2122,7 @@ identically named elements of C<%$self>, and returns the result as a file specification in Unix syntax. NOTE: This is the canonical version of the method. The version in -File::Spec::VMS is deprecated. +L is deprecated. =cut @@ -2182,7 +2184,7 @@ force fixpath() to consider the path to be a directory or false to force it to be a file. NOTE: This is the canonical version of the method. The version in -File::Spec::VMS is deprecated. +L is deprecated. =cut diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm index 66c7ff74722..dea49e1a566 100644 --- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm +++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm @@ -1,8 +1,8 @@ package ExtUtils::MM_VOS; use strict; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.44'; +$VERSION =~ tr/_//d; require ExtUtils::MM_Unix; our @ISA = qw(ExtUtils::MM_Unix); @@ -19,10 +19,10 @@ ExtUtils::MM_VOS - VOS specific subclass of ExtUtils::MM_Unix =head1 DESCRIPTION -This is a subclass of ExtUtils::MM_Unix which contains functionality for +This is a subclass of L which contains functionality for VOS. -Unless otherwise stated it works just like ExtUtils::MM_Unix +Unless otherwise stated it works just like ExtUtils::MM_Unix. =head2 Overridden methods diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm index 43c974d5b41..3db0f45260f 100644 --- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm +++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm @@ -13,7 +13,7 @@ ExtUtils::MM_Win32 - methods to override UN*X behaviour in ExtUtils::MakeMaker =head1 DESCRIPTION -See ExtUtils::MM_Unix for a documentation of the methods provided +See L for a documentation of the methods provided there. This package overrides the implementation of these methods, not the semantics. @@ -27,8 +27,8 @@ use ExtUtils::MakeMaker qw(neatvalue _sprintf562); require ExtUtils::MM_Any; require ExtUtils::MM_Unix; our @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix ); -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.44'; +$VERSION =~ tr/_//d; $ENV{EMXSHELL} = 'sh'; # to run `commands` @@ -77,7 +77,7 @@ Changes the path separator with . sub replace_manpage_separator { my($self,$man) = @_; - $man =~ s,/+,.,g; + $man =~ s,[/\\]+,.,g; $man; } @@ -143,7 +143,7 @@ sub init_tools { $self->{DEV_NULL} ||= '> NUL'; $self->{FIXIN} ||= $self->{PERL_CORE} ? - "\$(PERLRUN) $self->{PERL_SRC}\\win32\\bin\\pl2bat.pl" : + "\$(PERLRUN) -I$self->{PERL_SRC}\\cpan\\ExtUtils-PL2Bat\\lib $self->{PERL_SRC}\\win32\\bin\\pl2bat.pl" : 'pl2bat.bat'; $self->SUPER::init_tools; @@ -506,7 +506,7 @@ sub quote_literal { $text =~ s{\\\\"}{\\\\\\\\\\"}g; # \\" -> \\\\\" $text =~ s{(? \\\" $text =~ s{(? \" - $text = qq{"$text"} if $text =~ /[ \t]/; + $text = qq{"$text"} if $text =~ /[ \t#]/; # hash because gmake 4.2.1 # Apply the Command Prompt parsing rules (cmd.exe) my @text = split /("[^"]*")/, $text; @@ -595,6 +595,16 @@ sub os_flavor { return('Win32'); } +=item dbgoutflag + +Returns a CC flag that tells the CC to emit a separate debugging symbol file +when compiling an object file. + +=cut + +sub dbgoutflag { + $MSVC ? '-Fd$(*).pdb' : ''; +} =item cflags diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm index 85a80c638b0..4220e52dc37 100644 --- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm +++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm @@ -2,8 +2,8 @@ package ExtUtils::MM_Win95; use strict; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.44'; +$VERSION =~ tr/_//d; require ExtUtils::MM_Win32; our @ISA = qw(ExtUtils::MM_Win32); @@ -21,7 +21,7 @@ ExtUtils::MM_Win95 - method to customize MakeMaker for Win9X =head1 DESCRIPTION -This is a subclass of ExtUtils::MM_Win32 containing changes necessary +This is a subclass of L containing changes necessary to get MakeMaker playing nice with command.com and other Win9Xisms. =head2 Overridden methods diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm index a193f3a045c..957ab164592 100644 --- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm +++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm @@ -3,8 +3,8 @@ package ExtUtils::MY; use strict; require ExtUtils::MM; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.44'; +$VERSION =~ tr/_//d; our @ISA = qw(ExtUtils::MM); { @@ -30,7 +30,7 @@ ExtUtils::MY - ExtUtils::MakeMaker subclass for customization B -ExtUtils::MY is a subclass of ExtUtils::MM. Its provided in your +ExtUtils::MY is a subclass of L. Its provided in your Makefile.PL for you to add and override MakeMaker functionality. It also provides a convenient alias via the MY class. diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm index 90d9eac49c1..6dceb98be41 100644 --- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm +++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm @@ -24,8 +24,8 @@ my %Recognized_Att_Keys; our %macro_fsentity; # whether a macro is a filesystem name our %macro_dep; # whether a macro is a dependency -our $VERSION = '7.34'; -$VERSION = eval $VERSION; ## no critic [BuiltinFunctions::ProhibitStringyEval] +our $VERSION = '7.44'; +$VERSION =~ tr/_//d; # Emulate something resembling CVS $Revision$ (our $Revision = $VERSION) =~ s{_}{}; @@ -316,7 +316,7 @@ sub full_setup { PERLRUNINST PERL_CORE PERM_DIR PERM_RW PERM_RWX MAGICXS PL_FILES PM PM_FILTER PMLIBDIRS PMLIBPARENTDIRS POLLUTE - PREREQ_FATAL PREREQ_PM PREREQ_PRINT PRINT_PREREQ + PREREQ_FATAL PREREQ_PM PREREQ_PRINT PRINT_PREREQ PUREPERL_ONLY SIGN SKIP TEST_REQUIRES TYPEMAPS UNINST VERSION VERSION_FROM XS XSBUILD XSMULTI XSOPT XSPROTOARG XS_VERSION clean depend dist dynamic_lib linkext macro realclean tool_autosplit @@ -398,7 +398,7 @@ sub full_setup { ); # 5.5.3 doesn't have any concept of vendor libs - push @Get_from_Config, qw( vendorarchexp vendorlibexp ) if $] >= 5.006; + push @Get_from_Config, qw( vendorarchexp vendorlibexp ) if "$]" >= 5.006; foreach my $item (@attrib_help){ $Recognized_Att_Keys{$item} = 1; @@ -534,7 +534,7 @@ sub new { # simulate "use warnings FATAL => 'all'" for vintage perls die @_; }; - !$self->{MIN_PERL_VERSION} or $self->{MIN_PERL_VERSION} <= $] + !$self->{MIN_PERL_VERSION} or $self->{MIN_PERL_VERSION} <= "$]" }; if (!$perl_version_ok) { if (!defined $perl_version_ok) { @@ -693,6 +693,7 @@ END } else { my $value = $self->{$key}; # not going to test in FS so only stripping start + $value =~ s/"// if $key =~ /PERL$/ and $self->is_make_type('dmake'); $value =~ s/^"// if $key =~ /PERL$/; $value = $self->catdir("..", $value) unless $self->file_name_is_absolute($value); @@ -702,7 +703,8 @@ END } if ($self->{PARENT}) { $self->{PARENT}->{CHILDREN}->{$newclass} = $self; - foreach my $opt (qw(POLLUTE PERL_CORE LINKTYPE LD OPTIMIZE)) { + foreach my $opt (qw(POLLUTE PERL_CORE LINKTYPE AR FULL_AR CC CCFLAGS + OPTIMIZE LD LDDLFLAGS LDFLAGS PERL_ARCHLIB DESTDIR)) { if (exists $self->{PARENT}->{$opt} and not exists $self->{$opt}) { @@ -1264,7 +1266,7 @@ sub write_file_via_tmp { die "write_file_via_tmp: 2nd arg must be ref" unless ref $contents; for my $chunk (@$contents) { my $to_write = $chunk; - utf8::encode $to_write if !$CAN_DECODE && $] > 5.008; + utf8::encode $to_write if !$CAN_DECODE && "$]" > 5.008; print $fh "$to_write\n" or die "Can't write to MakeMaker.tmp: $!"; } close $fh or die "Can't write to MakeMaker.tmp: $!"; @@ -1427,6 +1429,8 @@ seeks to handle all of these correctly. It is currently still not possible to portably use Unicode characters in module names, because this requires Perl to handle Unicode filenames, which is not yet the case on Windows. +See L for details of the design and usage. + =head2 How To Write A Makefile.PL See L. @@ -2599,6 +2603,20 @@ In this case the program will be run multiple times using each target file. perl bin/foobar.PL bin/foobar1 perl bin/foobar.PL bin/foobar2 +If an output file depends on extra input files beside the script itself, +a hash ref can be used in version 7.36 and above: + + PL_FILES => { 'foo.PL' => { + 'foo.out' => 'foo.in', + 'bar.out' => [qw(bar1.in bar2.in)], + } + +In this case the extra input files will be passed to the program after +the target file: + + perl foo.PL foo.out foo.in + perl foo.PL bar.out bar1.in bar2.in + PL files are normally run B pm_to_blib and include INST_LIB and INST_ARCH in their C<@INC>, so the just built modules can be accessed... unless the PL file is making a module (or anything else in @@ -3023,7 +3041,8 @@ be linked. =item postamble -Anything put here will be passed to MY::postamble() if you have one. +Anything put here will be passed to +L if you have one. =item realclean @@ -3070,7 +3089,7 @@ or you can edit the default by saying something like: If you are running experiments with embedding perl as a library into other applications, you might find MakeMaker is not sufficient. You'd -better have a look at ExtUtils::Embed which is a collection of utilities +better have a look at L which is a collection of utilities for embedding. If you still need a different solution, try to develop another @@ -3134,7 +3153,7 @@ override or create an attribute you would say something like =head2 Distribution Support For authors of extensions MakeMaker provides several Makefile -targets. Most of the support comes from the ExtUtils::Manifest module, +targets. Most of the support comes from the L module, where additional documentation can be found. =over 4 @@ -3142,13 +3161,13 @@ where additional documentation can be found. =item make distcheck reports which files are below the build directory but not in the -MANIFEST file and vice versa. (See ExtUtils::Manifest::fullcheck() for +MANIFEST file and vice versa. (See L for details) =item make skipcheck reports which files are skipped due to the entries in the -C file (See ExtUtils::Manifest::skipcheck() for +C file (See L for details) =item make distclean @@ -3165,7 +3184,7 @@ C<*.bak>, C<*.old> and C<*.orig> =item make manifest rewrites the MANIFEST file, adding all remaining files found (See -ExtUtils::Manifest::mkmanifest() for details) +L for details) =item make distdir @@ -3365,11 +3384,16 @@ Same as the PERL_CORE parameter. The parameter overrides this. =head1 SEE ALSO L is a pure-Perl alternative to MakeMaker which does -not rely on make or any other external utility. It is easier to +not rely on make or any other external utility. It may be easier to extend to suit your needs. -L is a wrapper around MakeMaker which adds features -not normally available. +L is a minimal pure-Perl alternative to MakeMaker +that follows the Build.PL protocol of Module::Build but without its +complexity and cruft, implementing only the installation of the module +and leaving authoring to L or other authoring tools. + +L is a (now discouraged) wrapper around MakeMaker which +adds features not normally available. L and L are both modules to help you setup your distribution. @@ -3378,10 +3402,18 @@ L and L explain CPAN Meta files in detail. L makes it easy to install static, sometimes also referred to as 'shared' files. L helps accessing -the shared files after installation. +the shared files after installation. L helps when +writing tests to use the shared files both before and after installation. + +L is an authoring tool which allows great customization and +extensibility of the author experience, relying on the existing install +tools like ExtUtils::MakeMaker only for installation. + +L is a Dist::Zilla bundle that greatly simplifies common +usage. -L makes it easy for the module author to create MakeMaker-based -distributions with lots of bells and whistles. +L is a minimal authoring tool that does the same things as +Dist::Milla without the overhead of Dist::Zilla. =head1 AUTHORS diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm index 0d4f8b1e611..5c93f0afdfb 100644 --- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm +++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm @@ -2,8 +2,8 @@ package ExtUtils::MakeMaker::Config; use strict; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.44'; +$VERSION =~ tr/_//d; use Config (); diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod index 0ceb4f766ec..a82c53b00c0 100644 --- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod +++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod @@ -1,7 +1,7 @@ package ExtUtils::MakeMaker::FAQ; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.44'; +$VERSION =~ tr/_//d; 1; __END__ @@ -12,7 +12,7 @@ ExtUtils::MakeMaker::FAQ - Frequently Asked Questions About MakeMaker =head1 DESCRIPTION -FAQs, tricks and tips for C. +FAQs, tricks and tips for L. =head2 Module Installation @@ -84,7 +84,8 @@ installation. =item How do I keep from installing man pages? Recent versions of MakeMaker will only install man pages on Unix-like -operating systems. +operating systems by default. To generate manpages on non-Unix operating +systems, make the "manifypods" target. For an individual module: @@ -568,7 +569,7 @@ What most people need to know (superclasses on top.) | MY -The object actually used is of the class MY which allows you to +The object actually used is of the class L which allows you to override bits of MakeMaker inside your Makefile.PL by declaring MY::foo() methods. @@ -599,24 +600,24 @@ NOTE: Yes, this is a mess. See L for some history. -NOTE: When ExtUtils::MM is loaded it chooses a superclass for MM from +NOTE: When L is loaded it chooses a superclass for MM from amongst the ExtUtils::MM_* modules based on the current operating system. NOTE: ExtUtils::MM_{Current OS} represents one of the ExtUtils::MM_* -modules except ExtUtils::MM_Any chosen based on your operating system. +modules except L chosen based on your operating system. NOTE: The main object used by MakeMaker is a PACK### object, *not* -ExtUtils::MakeMaker. It is, effectively, a subclass of MY, -ExtUtils::Makemaker, ExtUtils::Liblist and ExtUtils::MM_{Current OS} +L. It is, effectively, a subclass of L, +L, L and ExtUtils::MM_{Current OS} -NOTE: The methods in MY are simply copied into PACK### rather than -MY being a superclass of PACK###. I don't remember the rationale. +NOTE: The methods in L are simply copied into PACK### rather +than MY being a superclass of PACK###. I don't remember the rationale. -NOTE: ExtUtils::Liblist should be removed from the inheritance hiearchy +NOTE: L should be removed from the inheritance hiearchy and simply be called as functions. -NOTE: Modules like File::Spec and Exporter have been omitted for clarity. +NOTE: Modules like L and L have been omitted for clarity. =head2 The MM_* hierarchy @@ -631,12 +632,13 @@ NOTE: Modules like File::Spec and Exporter have been omitted for clarity. | | MM_Any -NOTE: Each direct MM_Unix subclass is also an MM_Any subclass. This +NOTE: Each direct L subclass is also an +L subclass. This is a temporary hack because MM_Unix overrides some MM_Any methods with Unix specific code. It allows the non-Unix modules to see the original MM_Any implementations. -NOTE: Modules like File::Spec and Exporter have been omitted for clarity. +NOTE: Modules like L and L have been omitted for clarity. =head1 PATCHING diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Locale.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Locale.pm index 6d97df06f61..8931826b590 100644 --- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Locale.pm +++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Locale.pm @@ -1,8 +1,8 @@ package ExtUtils::MakeMaker::Locale; use strict; -our $VERSION = "7.34"; -$VERSION = eval $VERSION; +our $VERSION = "7.44"; +$VERSION =~ tr/_//d; use base 'Exporter'; our @EXPORT_OK = qw( @@ -47,7 +47,10 @@ sub _init { unless (defined &GetInputCP) { eval { require Win32; - eval { Win32::GetConsoleCP() }; + eval { + local $SIG{__WARN__} = sub {} if ( "$]" < 5.014 ); # suppress deprecation warning for inherited AUTOLOAD of Win32::GetConsoleCP() + Win32::GetConsoleCP(); + }; # manually "import" it since Win32->import refuses *GetInputCP = sub { &Win32::GetConsoleCP } if defined &Win32::GetConsoleCP; *GetOutputCP = sub { &Win32::GetConsoleOutputCP } if defined &Win32::GetConsoleOutputCP; @@ -96,6 +99,13 @@ sub _init { $ENCODING_LOCALE ||= $ENCODING_CONSOLE_IN; } + # Workaround of Encode < v2.71 for "cp65000" and "cp65001" + # The "cp65000" and "cp65001" aliases were added in [Encode v2.71](https://github.com/dankogai/p5-encode/commit/7874bd95aa10967a3b5dbae333d16bcd703ac6c6) + # via commit . + # This will avoid test failures for Win32 machines using the UTF-7 or UTF-8 code pages. + $ENCODING_LOCALE = 'UTF-7' if $ENCODING_LOCALE && lc($ENCODING_LOCALE) eq "cp65000"; + $ENCODING_LOCALE = 'utf-8-strict' if $ENCODING_LOCALE && lc($ENCODING_LOCALE) eq "cp65001"; + if ($^O eq "darwin") { $ENCODING_LOCALE_FS ||= "UTF-8"; } diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Tutorial.pod b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Tutorial.pod index b49e4448330..6365e4be665 100644 --- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Tutorial.pod +++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Tutorial.pod @@ -1,7 +1,7 @@ package ExtUtils::MakeMaker::Tutorial; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.44'; +$VERSION =~ tr/_//d; =head1 NAME @@ -205,7 +205,8 @@ L gives stylistic help writing a module. L gives more information about how to write a module. There are modules to help you through the process of writing a module: -L, L, L +L, L, L, +L, L =cut diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version.pm index c59be1eeee7..c94c855c54b 100644 --- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version.pm +++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version.pm @@ -15,8 +15,8 @@ use strict; use vars qw(@ISA $VERSION $CLASS $STRICT $LAX *declare *qv); -$VERSION = '7.34'; -$VERSION = eval $VERSION; +$VERSION = '7.44'; +$VERSION =~ tr/_//d; $CLASS = 'version'; { @@ -35,7 +35,7 @@ $CLASS = 'version'; *version::_VERSION = \&ExtUtils::MakeMaker::version::vpp::_VERSION; *version::vcmp = \&ExtUtils::MakeMaker::version::vpp::vcmp; *version::new = \&ExtUtils::MakeMaker::version::vpp::new; - if ($] >= 5.009000) { + if ("$]" >= 5.009000) { no strict 'refs'; *version::stringify = \&ExtUtils::MakeMaker::version::vpp::stringify; *{'version::(""'} = \&ExtUtils::MakeMaker::version::vpp::stringify; diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version/regex.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version/regex.pm index f0eb14eacb4..7cfed5ba88a 100644 --- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version/regex.pm +++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version/regex.pm @@ -10,8 +10,8 @@ use strict; use vars qw($VERSION $CLASS $STRICT $LAX); -$VERSION = '7.34'; -$VERSION = eval $VERSION; +$VERSION = '7.44'; +$VERSION =~ tr/_//d; #--------------------------------------------------------------------------# # Version regexp components diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm index 0d4c1a20909..a11a950c1b6 100644 --- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm +++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm @@ -3,8 +3,8 @@ package ExtUtils::Mkbootstrap; # There's just too much Dynaloader incest here to turn on strict vars. use strict 'refs'; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.44'; +$VERSION =~ tr/_//d; require Exporter; our @ISA = ('Exporter'); @@ -84,7 +84,7 @@ ExtUtils::Mkbootstrap - make a bootstrap file for use by DynaLoader =head1 SYNOPSIS -C + Mkbootstrap =head1 DESCRIPTION diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm index 0ec5f9dbdfd..9279b6b7852 100644 --- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm +++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm @@ -10,8 +10,8 @@ use Config; our @ISA = qw(Exporter); our @EXPORT = qw(&Mksymlists); -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.44'; +$VERSION =~ tr/_//d; sub Mksymlists { my(%spec) = @_; @@ -148,7 +148,7 @@ sub _write_win32 { # linked to directly from C. GSAR 97-07-10 #bcc dropped in 5.16, so dont create useless extra symbols for export table - unless($] >= 5.016) { + unless("$]" >= 5.016) { if ($Config::Config{'cc'} =~ /^bcc/i) { push @syms, "_$_", "$_ = _$_" for (@{$data->{DL_VARS}}, @{$data->{FUNCLIST}}); diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm index 01b46ee45a5..1ccaf776a03 100644 --- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm +++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm @@ -3,8 +3,8 @@ package ExtUtils::testlib; use strict; use warnings; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.44'; +$VERSION =~ tr/_//d; use Cwd; use File::Spec; diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/MM_Unix.t b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/MM_Unix.t index 388bc545cd2..62b291c770e 100755 --- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/MM_Unix.t +++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/MM_Unix.t @@ -12,7 +12,7 @@ BEGIN { plan skip_all => 'Non-Unix platform'; } else { - plan tests => 113; + plan tests => 114; } } @@ -150,8 +150,18 @@ is ($t->has_link_code(),1); is ($t->{HAS_LINK_CODE},1); ############################################################################### # libscan -is ($t->libscan('Readme.pod'), '', 'libscan excludes base Readme.pod'); -is ($t->libscan('README.pod'), '', 'libscan excludes base README.pod'); +{ + # suppress noisy & unnecessary "WARNING: Older versions of ExtUtils::MakeMaker may errantly install README.pod..." + my @warnings = (); + local $SIG{__WARN__} = sub { push @warnings, shift; }; + is ($t->libscan('Readme.pod'), '', 'libscan excludes base Readme.pod'); + is ($t->libscan('README.pod'), '', 'libscan excludes base README.pod'); + # verify that suppressed warnings are present + isnt (scalar(@warnings), 0); + if (scalar(@warnings)) { + note (sprintf('suppressed warnings: [ "%s" ]', do { my $s = join(q/" , "/, @warnings); $s =~ s/([^[:print:]])/sprintf('\x{%x}', ord($1))/egmsx; $s; })); + } +} is ($t->libscan('lib/Foo/README.pod'), 'lib/Foo/README.pod', 'libscan accepts README.pod in a subdirectory'); is ($t->libscan('foo/RCS/bar'), '', 'libscan on RCS'); is ($t->libscan('CVS/bar/car'), '', 'libscan on CVS'); diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/PL_FILES.t b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/PL_FILES.t index 51aed5e5d03..7e627db543c 100755 --- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/PL_FILES.t +++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/PL_FILES.t @@ -13,7 +13,7 @@ use ExtUtils::MM; use Test::More !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'} ? (skip_all => "cross-compiling and make not available") - : (tests => 10); + : (tests => 12); use File::Spec; use File::Temp qw[tempdir]; use File::Path; @@ -36,6 +36,8 @@ WriteMakefile( NAME => 'PL::Module', PL_FILES => { 'single.PL' => 'single.out', 'multi.PL' => [qw(1.out 2.out)], + 'single-in.PL' => { 'single-in.out' => 'single.in' }, + 'multi-in.PL' => { 'multi-in.out' => [qw(1.in 2.in)] }, 'Bar_pm.PL' => '$(INST_LIB)/PL/Bar.pm', 'Bar2.pm.PL' => 'Bar2.pm', }, @@ -53,6 +55,11 @@ END 'multi.PL' => _gen_pl_files(), 'Bar_pm.PL' => _gen_pm_files(), 'Bar2.pm.PL' => _gen_pm_files(), + 'single-in.PL' => _gen_pm_files(1), + 'multi-in.PL' => _gen_pm_files(2), + 'single.in' => '', + '1.in' => '', + '2.in' => '', 'lib/PL/Foo.pm' => <<'END', # Module to load to ensure PL_FILES have blib in @INC. package PL::Foo; @@ -76,7 +83,11 @@ cmp_ok( $?, '==', 0 ); my $make_out = run("$make"); is( $?, 0 ) || diag $make_out; -foreach my $file (qw(single.out 1.out 2.out blib/lib/PL/Bar.pm blib/lib/PL/Bar2.pm)) { +foreach my $file (qw( + single.out 1.out 2.out + single-in.out multi-in.out + blib/lib/PL/Bar.pm blib/lib/PL/Bar2.pm +)) { ok( -e $file, "$file was created" ); } @@ -105,7 +116,8 @@ END } sub _gen_pm_files { - my $test = <<'END'; + my $inputs = (shift || 0) + 1; + my $test = sprintf <<'END', $inputs; #!/usr/bin/perl -w # Ensure we do NOT have blib in @INC when building a module @@ -114,7 +126,7 @@ eval { require PL::Foo; }; # Had a bug where PL_FILES weren't sent the file to generate die "argv empty\n" unless @ARGV; -die "too many in argv: @ARGV\n" unless @ARGV == 1; +die "wrong number in argv: @ARGV\n" unless @ARGV == %d; my $file = $ARGV[0]; open OUT, ">$file" or die $!; diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/basic.t b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/basic.t index 534bf219f6c..7c87c752128 100755 --- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/basic.t +++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/basic.t @@ -35,7 +35,11 @@ my $Is_VMS = $^O eq 'VMS'; my $OLD_CP; # crude but... my $w32worked; # or whether we had to fallback to chcp if ($^O eq "MSWin32") { - eval { require Win32; $w32worked = $OLD_CP = Win32::GetConsoleCP() }; + eval { + require Win32; + local $SIG{__WARN__} = sub {} if ( "$]" < 5.014 ); # suppress deprecation warning for inherited AUTOLOAD of Win32::GetConsoleCP() + $w32worked = $OLD_CP = Win32::GetConsoleCP(); + }; $OLD_CP = $1 if !$w32worked and qx(chcp) =~ /(\d+)$/ and $? == 0; if (defined $OLD_CP) { if ($w32worked) { @@ -128,7 +132,7 @@ like( $ppd_html, qr{^\s*}m, ' ' ); unlike( $ppd_html, qr{^\s*}m, 'no for build_require' ); my $archname = $Config{archname}; -if( $] >= 5.008 ) { +if( "$]" >= 5.008 ) { # XXX This is a copy of the internal logic, so it's not a great test $archname .= "-$Config{PERL_REVISION}.$Config{PERL_VERSION}"; } diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/build_man.t b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/build_man.t index b35c4c16bf9..d2ab550fb03 100755 --- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/build_man.t +++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/build_man.t @@ -7,7 +7,7 @@ BEGIN { } use strict; -use Test::More tests => 46; +use Test::More tests => 50; use File::Spec; use File::Temp qw[tempdir]; @@ -44,10 +44,21 @@ ok((my $stdout = tie *STDOUT, 'TieOut'), 'tie stdout'); { local $Config{installman3dir} = File::Spec->catdir(qw(t lib)); - my $mm = WriteMakefile( - NAME => 'Big::Dummy', - VERSION_FROM => 'lib/Big/Dummy.pm', - ); + my $mm; + { + # suppress noisy & unnecessary "WARNING: Older versions of ExtUtils::MakeMaker may errantly install README.pod..." + my @warnings = (); + local $SIG{__WARN__} = sub { push @warnings, shift; }; + $mm = WriteMakefile( + NAME => 'Big::Dummy', + VERSION_FROM => 'lib/Big/Dummy.pm', + ); + # verify that suppressed warnings are present + isnt (scalar(@warnings), 0); + if (scalar(@warnings)) { + note (sprintf('suppressed warnings: [ "%s" ]', do { my $s = join(q/" , "/, @warnings); $s =~ s/([^[:print:]])/sprintf('\x{%x}', ord($1))/egmsx; $s; })); + } + } my %got = %{ $mm->{MAN3PODS} }; # because value too OS-specific my $delete_key = $^O eq 'VMS' ? '[.lib.Big]Dummy.pm' : 'lib/Big/Dummy.pm'; @@ -56,29 +67,62 @@ ok((my $stdout = tie *STDOUT, 'TieOut'), 'tie stdout'); } { - my $mm = WriteMakefile( - NAME => 'Big::Dummy', - VERSION_FROM => 'lib/Big/Dummy.pm', - INSTALLMAN3DIR => 'none' - ); + my $mm; + { + # suppress noisy & unnecessary "WARNING: Older versions of ExtUtils::MakeMaker may errantly install README.pod..." + my @warnings = (); + local $SIG{__WARN__} = sub { push @warnings, shift; }; + $mm = WriteMakefile( + NAME => 'Big::Dummy', + VERSION_FROM => 'lib/Big/Dummy.pm', + INSTALLMAN3DIR => 'none' + ); + # verify that suppressed warnings are present + isnt (scalar(@warnings), 0); + if (scalar(@warnings)) { + note (sprintf('suppressed warnings: [ "%s" ]', do { my $s = join(q/" , "/, @warnings); $s =~ s/([^[:print:]])/sprintf('\x{%x}', ord($1))/egmsx; $s; })); + } + } is_deeply $mm->{MAN3PODS}, {}, 'suppress man3pod with "none"'; } { - my $mm = WriteMakefile( - NAME => 'Big::Dummy', - VERSION_FROM => 'lib/Big/Dummy.pm', - MAN3PODS => {} - ); + my $mm; + { + # suppress noisy & unnecessary "WARNING: Older versions of ExtUtils::MakeMaker may errantly install README.pod..." + my @warnings = (); + local $SIG{__WARN__} = sub { push @warnings, shift; }; + $mm = WriteMakefile( + NAME => 'Big::Dummy', + VERSION_FROM => 'lib/Big/Dummy.pm', + MAN3PODS => {} + ); + # verify that suppressed warnings are present + isnt (scalar(@warnings), 0); + if (scalar(@warnings)) { + note (sprintf('suppressed warnings: [ "%s" ]', do { my $s = join(q/" , "/, @warnings); $s =~ s/([^[:print:]])/sprintf('\x{%x}', ord($1))/egmsx; $s; })); + } + } is_deeply $mm->{MAN3PODS}, {}, 'suppress man3pod with {}'; } { - my $mm = WriteMakefile( - NAME => 'Big::Dummy', - VERSION_FROM => 'lib/Big/Dummy.pm', - MAN3PODS => { "Foo.pm" => "Foo.1" } - ); + my $mm; + { + # suppress noisy & unnecessary "WARNING: Older versions of ExtUtils::MakeMaker may errantly install README.pod..." + my @warnings = (); + local $SIG{__WARN__} = sub { push @warnings, shift; }; + $mm = WriteMakefile( + NAME => 'Big::Dummy', + VERSION_FROM => 'lib/Big/Dummy.pm', + MAN3PODS => { "Foo.pm" => "Foo.1" } + ); + # verify that suppressed warnings are present + isnt (scalar(@warnings), 0); + if (scalar(@warnings)) { + note (sprintf('suppressed warnings: [ "%s" ]', do { my $s = join(q/" , "/, @warnings); $s =~ s/([^[:print:]])/sprintf('\x{%x}', ord($1))/egmsx; $s; })); + } + } is_deeply $mm->{MAN3PODS}, { "Foo.pm" => "Foo.1" }, 'override man3pod'; } @@ -172,10 +216,10 @@ unlink $README; INSTALLDIRS => $INSTALLDIRS, ); - my $makefile = slurp('Makefile'); + my $makefile = slurp($mm->{MAKEFILE}); - like $makefile, qr/^\QMAN1SECTION = 1pm\E$/xms, "Set MAN1SECTION"; - like $makefile, qr/^\QMAN3SECTION = 3pm\E$/xms, "Set MAN3SECTION"; + like $makefile, qr/\QMAN1SECTION = 1pm\E/xms, "Set MAN1SECTION"; + like $makefile, qr/\QMAN3SECTION = 3pm\E/xms, "Set MAN3SECTION"; like $makefile, qr/\Q$(POD2MAN) --section=$(MAN1SECTION) \E/, "Set POD2MAN section to \$(MAN1SECTION)"; @@ -183,4 +227,3 @@ unlink $README; "Set POD2MAN section to \$(MAN3SECTION)"; } } - diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Utils.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Utils.pm index ce73b30b777..76c1ad5010d 100644 --- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Utils.pm +++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Utils.pm @@ -407,7 +407,7 @@ sub hash2files { $file = File::Spec->catfile(File::Spec->curdir, $prefix, split m{\/}, $file); my $dir = dirname($file); mkpath $dir; - my $utf8 = ($] < 5.008 or !$Config{useperlio}) ? "" : ":utf8"; + my $utf8 = ("$]" < 5.008 or !$Config{useperlio}) ? "" : ":utf8"; open(FILE, ">$utf8", $file) || die "Can't create $file: $!"; print FILE $text; close FILE; diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/parse_version.t b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/parse_version.t index 2dbd064c035..dc9919a5515 100755 --- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/parse_version.t +++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/parse_version.t @@ -53,7 +53,7 @@ if( $Has_Version ) { $versions{q[$VERSION = v1.2.3]} = 'v1.2.3'; } -if( $] >= 5.011001 ) { +if( "$]" >= 5.011001 ) { $versions{'package Foo 1.23;' } = '1.23'; $versions{'package Foo::Bar 1.23;' } = '1.23'; $versions{'package Foo v1.2.3;' } = 'v1.2.3'; @@ -81,7 +81,7 @@ our $VERSION = 2.34; END } -if( $] >= 5.014 ) { +if( "$]" >= 5.014 ) { $versions{'package Foo 1.23 { }' } = '1.23'; $versions{'package Foo::Bar 1.23 { }' } = '1.23'; $versions{'package Foo v1.2.3 { }' } = 'v1.2.3'; @@ -110,7 +110,7 @@ our $VERSION = 2.34; END } -if ( $] > 5.009 && $] < 5.012 ) { +if ( "$]" < 5.012 ) { delete $versions{'$VERSION = -1.0'}; } diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/unicode.t b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/unicode.t index 557ac775404..14a0c8501b0 100644 --- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/unicode.t +++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/unicode.t @@ -14,7 +14,7 @@ use File::Path; use utf8; BEGIN { plan skip_all => 'Need perlio and perl 5.8+.' - if $] < 5.008 or !$Config{useperlio}; + if "$]" < 5.008 or !$Config{useperlio}; plan skip_all => 'cross-compiling and make not available' if !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'}; @@ -76,7 +76,7 @@ END { ok( chdir $DIRNAME, "chdir'd to $DIRNAME" ) || diag("chdir failed: $!"); -if ($] >= 5.008) { +if ("$]" >= 5.008) { eval { require ExtUtils::MakeMaker::Locale; }; note "ExtUtils::MakeMaker::Locale vars: $ExtUtils::MakeMaker::Locale::ENCODING_LOCALE;$ExtUtils::MakeMaker::Locale::ENCODING_LOCALE_FS;$ExtUtils::MakeMaker::Locale::ENCODING_CONSOLE_IN;$ExtUtils::MakeMaker::Locale::ENCODING_CONSOLE_OUT\n" unless $@; note "Locale env vars: " . join(';', map { diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/vstrings.t b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/vstrings.t index 9f88399ebd8..63ef8e292bd 100644 --- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/vstrings.t +++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/vstrings.t @@ -93,7 +93,7 @@ sub run_test { local $_; SKIP: { skip "No vstring test <5.8", 2 - if $] < 5.008 && $pkg eq 'BareV2String' && $descrip =~ m!^2-part!; + if "$]" < 5.008 && $pkg eq 'BareV2String' && $descrip =~ m!^2-part!; my $warnings; eval { $warnings = capture_make("Fake::$pkg" => $version); }; is($@, '', "$descrip not fatal") or skip "$descrip WM failed", 1; diff --git a/gnu/usr.bin/perl/cpan/Getopt-Long/lib/Getopt/Long.pm b/gnu/usr.bin/perl/cpan/Getopt-Long/lib/Getopt/Long.pm index 664c8b63c91..70ac4159565 100644 --- a/gnu/usr.bin/perl/cpan/Getopt-Long/lib/Getopt/Long.pm +++ b/gnu/usr.bin/perl/cpan/Getopt-Long/lib/Getopt/Long.pm @@ -4,8 +4,8 @@ # Author : Johan Vromans # Created On : Tue Sep 11 15:00:12 1990 # Last Modified By: Johan Vromans -# Last Modified On: Sat May 27 12:11:39 2017 -# Update Count : 1715 +# Last Modified On: Mon Aug 12 17:05:46 2019 +# Update Count : 1728 # Status : Released ################ Module Preamble ################ @@ -18,10 +18,10 @@ use warnings; package Getopt::Long; use vars qw($VERSION); -$VERSION = 2.50; +$VERSION = 2.51; # For testing versions only. use vars qw($VERSION_STRING); -$VERSION_STRING = "2.50"; +$VERSION_STRING = "2.51"; use Exporter; use vars qw(@ISA @EXPORT @EXPORT_OK); @@ -303,7 +303,7 @@ sub GetOptionsFromArray(@) { # Avoid some warnings if debugging. local ($^W) = 0; print STDERR - ("Getopt::Long $Getopt::Long::VERSION ", + ("Getopt::Long $Getopt::Long::VERSION_STRING ", "called from package \"$pkg\".", "\n ", "argv: ", @@ -769,7 +769,7 @@ sub GetOptionsFromArray(@) { } # Finish. - if ( @ret && $order == $PERMUTE ) { + if ( @ret && ( $order == $PERMUTE || $passthrough ) ) { # Push back accumulated arguments print STDERR ("=> restoring \"", join('" "', @ret), "\"\n") if $debug; @@ -805,10 +805,8 @@ sub ParseOptionSpec ($$) { ( # Option name (?: \w+[-\w]* ) - # Alias names, or "?" - (?: \| (?: \? | \w[-\w]* ) )* # Aliases - (?: \| (?: [^-|!+=:][^|!+=:]* )? )* + (?: \| (?: . [^|!+=:]* )? )* )? ( # Either modifiers ... @@ -1123,6 +1121,12 @@ sub FindOption ($$$$$) { $optargtype = 3; } if(($optargtype == 0) && !$mand) { + if ( $type eq 'I' ) { + # Fake incremental type. + my @c = @$ctl; + $c[CTL_TYPE] = '+'; + return (1, $opt, \@c, 1); + } my $val = defined($ctl->[CTL_DEFAULT]) ? $ctl->[CTL_DEFAULT] : $type eq 's' ? '' @@ -1541,7 +1545,7 @@ sub setup_pa_args($@) { # Sneak way to know what version the user requested. sub VERSION { - $requested_version = $_[1]; + $requested_version = $_[1] if @_ > 1; shift->SUPER::VERSION(@_); } @@ -2269,8 +2273,7 @@ it will set variable C<$stdio>. A special option 'name' C<< <> >> can be used to designate a subroutine to handle non-option arguments. When GetOptions() encounters an argument that does not look like an option, it will immediately call this -subroutine and passes it one parameter: the argument name. Well, actually -it is an object that stringifies to the argument name. +subroutine and passes it one parameter: the argument name. For example: @@ -2733,8 +2736,10 @@ version 2.13. use Getopt::Long; GetOptions ("help|?"); # -help and -? will both set $opt_help -Other characters that can't appear in Perl identifiers are also supported -as aliases with Getopt::Long of at least version 2.39. +Other characters that can't appear in Perl identifiers are also +supported in aliases with Getopt::Long of at version 2.39. Note that +the characters C, C<|>, C<+>, C<=>, and C<:> can only appear as the +first (or only) character of an alias. As of version 2.32 Getopt::Long provides auto-help, a quick and easy way to add the options --help and -? to your program, and handle them. diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/Makefile.PL b/gnu/usr.bin/perl/cpan/IO-Compress/Makefile.PL index ca8cce49a22..d22a4c2b4bb 100644 --- a/gnu/usr.bin/perl/cpan/IO-Compress/Makefile.PL +++ b/gnu/usr.bin/perl/cpan/IO-Compress/Makefile.PL @@ -3,7 +3,7 @@ use strict ; require 5.006 ; -$::VERSION = '2.084' ; +$::VERSION = '2.093' ; use lib '.'; use private::MakeUtil; @@ -42,7 +42,7 @@ WriteMakefile( INSTALLDIRS => ($] >= 5.009 && $] < 5.011 ? 'perl' : 'site'), - EXE_FILES => ['bin/zipdetails'], + EXE_FILES => ['bin/zipdetails', 'bin/streamzip'], ( $] >= 5.009 && $] <= 5.011001 && ! $ENV{PERL_CORE} @@ -50,11 +50,33 @@ WriteMakefile( : () ), - META_MERGE => { - no_index => { - directory => [ 't', 'private' ], - }, - }, + ( eval { ExtUtils::MakeMaker->VERSION(6.46) } + ? ( META_MERGE => { + + "meta-spec" => { version => 2 }, + + no_index => { + directory => [ 't', 'private' ], + }, + + resources => { + + bugtracker => { + web => 'https://github.com/pmqs/IO-Compress/issues' + }, + + homepage => 'https://github.com/pmqs/IO-Compress', + + repository => { + type => 'git', + url => 'git://github.com/pmqs/IO-Compress.git', + web => 'https://github.com/pmqs/IO-Compress', + }, + }, + } + ) + : () + ), ((ExtUtils::MakeMaker->VERSION() gt '6.30') ? ('LICENSE' => 'perl') : ()), diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/bin/zipdetails b/gnu/usr.bin/perl/cpan/IO-Compress/bin/zipdetails index ac647b398a2..bff32a1c02e 100644 --- a/gnu/usr.bin/perl/cpan/IO-Compress/bin/zipdetails +++ b/gnu/usr.bin/perl/cpan/IO-Compress/bin/zipdetails @@ -139,7 +139,7 @@ my %Extras = ( # The Header ID mappings defined by Info-ZIP and third parties are: - 0x0065, ['IBM S/390 attributes - uncompressed', undef], + 0x0065, ['IBM S/390 attributes - uncompressed', \&decodeMVS], 0x0066, ['IBM S/390 attributes - compressed', undef], 0x07c8, ['Info-ZIP Macintosh (old, J. Lee)', undef], 0x2605, ['ZipIt Macintosh (first version)', undef], @@ -180,7 +180,7 @@ my %Extras = ( ); -my $VERSION = "1.09" ; +my $VERSION = "1.11" ; my $FH; @@ -1201,7 +1201,7 @@ sub decode_Zip64 } if (full32 $z64Data->[2] ) { - out_VV " Offset to Central Dir"; + out_VV " Offset to Local Dir"; } if ($z64Data->[3] == 0xFFFF ) { @@ -1463,6 +1463,24 @@ sub decode_NT_security } } +sub decodeMVS +{ + my $len = shift; + my $context = shift; + + # data in Big-Endian + myRead(my $data, $len); + my $ID = unpack("N", $data); + + if ($ID == 0xE9F3F9F0) + { + out($data, " ID", "'Z390'"); + substr($data, 0, 4) = ''; + } + + out($data, " Extra Payload", hexDump($data)); +} + sub printAes { my $context = shift ; @@ -2062,7 +2080,7 @@ OPTIONS -h display help -v Verbose - output more stuff -Copyright (c) 2011-2018 Paul Marquess. All rights reserved. +Copyright (c) 2011-2019 Paul Marquess. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. @@ -2157,6 +2175,11 @@ Error handling is still a work in progress. If the program encounters a problem reading a zip file it is likely to terminate with an unhelpful error message. +=head1 SUPPORT + +General feedback/questions/bug reports should be sent to +L (preferred) or +L. =head1 SEE ALSO @@ -2182,7 +2205,7 @@ Paul Marquess F. =head1 COPYRIGHT -Copyright (c) 2011-2018 Paul Marquess. All rights reserved. +Copyright (c) 2011-2019 Paul Marquess. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/Compress/Zlib.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/Compress/Zlib.pm index ce79d7d1132..4a0aae6c4bc 100644 --- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/Compress/Zlib.pm +++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/Compress/Zlib.pm @@ -7,17 +7,17 @@ use Carp ; use IO::Handle ; use Scalar::Util qw(dualvar); -use IO::Compress::Base::Common 2.084 ; -use Compress::Raw::Zlib 2.084 ; -use IO::Compress::Gzip 2.084 ; -use IO::Uncompress::Gunzip 2.084 ; +use IO::Compress::Base::Common 2.093 ; +use Compress::Raw::Zlib 2.093 ; +use IO::Compress::Gzip 2.093 ; +use IO::Uncompress::Gunzip 2.093 ; use strict ; use warnings ; use bytes ; our ($VERSION, $XS_VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS); -$VERSION = '2.084'; +$VERSION = '2.093'; $XS_VERSION = $VERSION; $VERSION = eval $VERSION; @@ -224,7 +224,7 @@ sub Compress::Zlib::gzFile::gzseek my $gz = $self->[0] ; my $status ; - eval { $status = $gz->seek($offset, $whence) ; }; + eval { local $SIG{__DIE__}; $status = $gz->seek($offset, $whence) ; }; if ($@) { my $error = $@; @@ -461,7 +461,7 @@ sub inflate package Compress::Zlib ; -use IO::Compress::Gzip::Constants 2.084 ; +use IO::Compress::Gzip::Constants 2.093 ; sub memGzip($) { @@ -1467,6 +1467,12 @@ Returns the version of the zlib library. All the I constants are automatically imported when you make use of I. +=head1 SUPPORT + +General feedback/questions/bug reports should be sent to +L (preferred) or +L. + =head1 SEE ALSO L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Adapter/Bzip2.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Adapter/Bzip2.pm index 623a2c671ac..a8a7762ce70 100644 --- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Adapter/Bzip2.pm +++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Adapter/Bzip2.pm @@ -4,12 +4,12 @@ use strict; use warnings; use bytes; -use IO::Compress::Base::Common 2.084 qw(:Status); +use IO::Compress::Base::Common 2.093 qw(:Status); -use Compress::Raw::Bzip2 2.084 ; +use Compress::Raw::Bzip2 2.093 ; our ($VERSION); -$VERSION = '2.084'; +$VERSION = '2.093'; sub mkCompObject { diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Adapter/Deflate.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Adapter/Deflate.pm index 8903287b106..140d29ff29f 100644 --- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Adapter/Deflate.pm +++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Adapter/Deflate.pm @@ -4,13 +4,13 @@ use strict; use warnings; use bytes; -use IO::Compress::Base::Common 2.084 qw(:Status); -use Compress::Raw::Zlib 2.084 qw( !crc32 !adler32 ) ; +use IO::Compress::Base::Common 2.093 qw(:Status); +use Compress::Raw::Zlib 2.093 qw( !crc32 !adler32 ) ; require Exporter; our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, @EXPORT, %DEFLATE_CONSTANTS); -$VERSION = '2.084'; +$VERSION = '2.093'; @ISA = qw(Exporter); @EXPORT_OK = @Compress::Raw::Zlib::DEFLATE_CONSTANTS; %EXPORT_TAGS = %Compress::Raw::Zlib::DEFLATE_CONSTANTS; diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Adapter/Identity.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Adapter/Identity.pm index ae23102a248..487cfa7b476 100644 --- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Adapter/Identity.pm +++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Adapter/Identity.pm @@ -4,10 +4,10 @@ use strict; use warnings; use bytes; -use IO::Compress::Base::Common 2.084 qw(:Status); +use IO::Compress::Base::Common 2.093 qw(:Status); our ($VERSION); -$VERSION = '2.084'; +$VERSION = '2.093'; sub mkCompObject { diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Base.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Base.pm index 1e2a54ba397..f817d13b472 100644 --- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Base.pm +++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Base.pm @@ -6,7 +6,7 @@ require 5.006 ; use strict ; use warnings; -use IO::Compress::Base::Common 2.084 ; +use IO::Compress::Base::Common 2.093 ; use IO::File (); ; use Scalar::Util (); @@ -20,7 +20,7 @@ use Symbol(); our (@ISA, $VERSION); @ISA = qw(IO::File Exporter); -$VERSION = '2.084'; +$VERSION = '2.093'; #Can't locate object method "SWASHNEW" via package "utf8" (perhaps you forgot to load "utf8"?) at .../ext/Compress-Zlib/Gzip/blib/lib/Compress/Zlib/Common.pm line 16. @@ -1021,6 +1021,12 @@ IO::Compress::Base - Base Class for IO::Compress modules This module is not intended for direct use in application code. Its sole purpose is to be sub-classed by IO::Compress modules. +=head1 SUPPORT + +General feedback/questions/bug reports should be sent to +L (preferred) or +L. + =head1 SEE ALSO L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Base/Common.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Base/Common.pm index 53232898c47..87af18b6de8 100644 --- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Base/Common.pm +++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Base/Common.pm @@ -11,7 +11,7 @@ use File::GlobMapper; require Exporter; our ($VERSION, @ISA, @EXPORT, %EXPORT_TAGS, $HAS_ENCODE); @ISA = qw(Exporter); -$VERSION = '2.084'; +$VERSION = '2.093'; @EXPORT = qw( isaFilehandle isaFilename isaScalar whatIsInput whatIsOutput diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Bzip2.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Bzip2.pm index 1c0d027abdc..13d3b4674df 100644 --- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Bzip2.pm +++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Bzip2.pm @@ -5,16 +5,16 @@ use warnings; use bytes; require Exporter ; -use IO::Compress::Base 2.084 ; +use IO::Compress::Base 2.093 ; -use IO::Compress::Base::Common 2.084 qw(); -use IO::Compress::Adapter::Bzip2 2.084 ; +use IO::Compress::Base::Common 2.093 qw(); +use IO::Compress::Adapter::Bzip2 2.093 ; our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $Bzip2Error); -$VERSION = '2.084'; +$VERSION = '2.093'; $Bzip2Error = ''; @ISA = qw(IO::Compress::Base Exporter); @@ -51,7 +51,7 @@ sub getExtraParams { my $self = shift ; - use IO::Compress::Base::Common 2.084 qw(:Parse); + use IO::Compress::Base::Common 2.093 qw(:Parse); return ( 'blocksize100k' => [IO::Compress::Base::Common::Parse_unsigned, 1], @@ -183,7 +183,6 @@ IO::Compress::Bzip2 - Write bzip2 files/buffers binmode $z fileno $z close $z ; - =head1 DESCRIPTION @@ -210,7 +209,8 @@ The functional interface needs Perl5.005 or better. =head2 bzip2 $input_filename_or_reference => $output_filename_or_reference [, OPTS] C expects at least two parameters, -C<$input_filename_or_reference> and C<$output_filename_or_reference>. +C<$input_filename_or_reference> and C<$output_filename_or_reference> +and zero or more optional parameters (see L) =head3 The C<$input_filename_or_reference> parameter @@ -223,7 +223,7 @@ It can take one of the following forms: =item A filename -If the <$input_filename_or_reference> parameter is a simple scalar, it is +If the C<$input_filename_or_reference> parameter is a simple scalar, it is assumed to be a filename. This file will be opened for reading and the input data will be read from it. @@ -319,9 +319,9 @@ in C<$output_filename_or_reference> as a concatenated series of compressed data =head2 Optional Parameters -Unless specified below, the optional parameters for C, -C, are the same as those used with the OO interface defined in the -L section below. +The optional parameters for the one-shot function C +are (for the most part) identical to those used with the OO interface defined in the +L section. The exceptions are listed below =over 5 @@ -389,6 +389,22 @@ Defaults to 0. =head2 Examples +Here are a few example that show the capabilities of the module. + +=head3 Streaming + +This very simple command line example demonstrates the streaming capabilities of the module. +The code reads data from STDIN, compresses it, and writes the compressed data to STDOUT. + + $ echo hello world | perl -MIO::Compress::Bzip2=bzip2 -e 'bzip2 \*STDIN => \*STDOUT' >output.bz2 + +The special filename "-" can be used as a standin for both C<\*STDIN> and C<\*STDOUT>, +so the above can be rewritten as + + $ echo hello world | perl -MIO::Compress::Bzip2=bzip2 -e 'bzip2 "-" => "-"' >output.bz2 + +=head3 Compressing a file from the filesystem + To read the contents of the file C and write the compressed data to the file C. @@ -400,6 +416,8 @@ data to the file C. bzip2 $input => "$input.bz2" or die "bzip2 failed: $Bzip2Error\n"; +=head3 Reading from a Filehandle and writing to an in-memory buffer + To read from an existing Perl filehandle, C<$input>, and write the compressed data to a buffer, C<$buffer>. @@ -414,6 +432,8 @@ compressed data to a buffer, C<$buffer>. bzip2 $input => \$buffer or die "bzip2 failed: $Bzip2Error\n"; +=head3 Compressing multiple files + To compress all files in the directory "/my/home" that match "*.txt" and store the compressed data in the same directory @@ -488,7 +508,7 @@ return undef. =head2 Constructor Options -C is any combination of the following options: +C is any combination of zero or more the following options: =over 5 @@ -768,6 +788,12 @@ See L See L +=head1 SUPPORT + +General feedback/questions/bug reports should be sent to +L (preferred) or +L. + =head1 SEE ALSO L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L @@ -778,7 +804,7 @@ L, L, L, L -The primary site for the bzip2 program is L. +The primary site for the bzip2 program is L. See the module L diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Deflate.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Deflate.pm index 1ca86c9331c..5ecac19b889 100644 --- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Deflate.pm +++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Deflate.pm @@ -8,16 +8,16 @@ use bytes; require Exporter ; -use IO::Compress::RawDeflate 2.084 (); -use IO::Compress::Adapter::Deflate 2.084 ; +use IO::Compress::RawDeflate 2.093 (); +use IO::Compress::Adapter::Deflate 2.093 ; -use IO::Compress::Zlib::Constants 2.084 ; -use IO::Compress::Base::Common 2.084 qw(); +use IO::Compress::Zlib::Constants 2.093 ; +use IO::Compress::Base::Common 2.093 qw(); our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, %DEFLATE_CONSTANTS, $DeflateError); -$VERSION = '2.084'; +$VERSION = '2.093'; $DeflateError = ''; @ISA = qw(IO::Compress::RawDeflate Exporter); @@ -212,7 +212,6 @@ IO::Compress::Deflate - Write RFC 1950 files/buffers binmode $z fileno $z close $z ; - =head1 DESCRIPTION @@ -239,7 +238,8 @@ The functional interface needs Perl5.005 or better. =head2 deflate $input_filename_or_reference => $output_filename_or_reference [, OPTS] C expects at least two parameters, -C<$input_filename_or_reference> and C<$output_filename_or_reference>. +C<$input_filename_or_reference> and C<$output_filename_or_reference> +and zero or more optional parameters (see L) =head3 The C<$input_filename_or_reference> parameter @@ -252,7 +252,7 @@ It can take one of the following forms: =item A filename -If the <$input_filename_or_reference> parameter is a simple scalar, it is +If the C<$input_filename_or_reference> parameter is a simple scalar, it is assumed to be a filename. This file will be opened for reading and the input data will be read from it. @@ -348,9 +348,9 @@ in C<$output_filename_or_reference> as a concatenated series of compressed data =head2 Optional Parameters -Unless specified below, the optional parameters for C, -C, are the same as those used with the OO interface defined in the -L section below. +The optional parameters for the one-shot function C +are (for the most part) identical to those used with the OO interface defined in the +L section. The exceptions are listed below =over 5 @@ -418,6 +418,22 @@ Defaults to 0. =head2 Examples +Here are a few example that show the capabilities of the module. + +=head3 Streaming + +This very simple command line example demonstrates the streaming capabilities of the module. +The code reads data from STDIN, compresses it, and writes the compressed data to STDOUT. + + $ echo hello world | perl -MIO::Compress::Deflate=deflate -e 'deflate \*STDIN => \*STDOUT' >output.1950 + +The special filename "-" can be used as a standin for both C<\*STDIN> and C<\*STDOUT>, +so the above can be rewritten as + + $ echo hello world | perl -MIO::Compress::Deflate=deflate -e 'deflate "-" => "-"' >output.1950 + +=head3 Compressing a file from the filesystem + To read the contents of the file C and write the compressed data to the file C. @@ -429,6 +445,8 @@ data to the file C. deflate $input => "$input.1950" or die "deflate failed: $DeflateError\n"; +=head3 Reading from a Filehandle and writing to an in-memory buffer + To read from an existing Perl filehandle, C<$input>, and write the compressed data to a buffer, C<$buffer>. @@ -443,6 +461,8 @@ compressed data to a buffer, C<$buffer>. deflate $input => \$buffer or die "deflate failed: $DeflateError\n"; +=head3 Compressing multiple files + To compress all files in the directory "/my/home" that match "*.txt" and store the compressed data in the same directory @@ -517,7 +537,7 @@ return undef. =head2 Constructor Options -C is any combination of the following options: +C is any combination of zero or more the following options: =over 5 @@ -892,6 +912,12 @@ See L See L +=head1 SUPPORT + +General feedback/questions/bug reports should be sent to +L (preferred) or +L. + =head1 SEE ALSO L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/FAQ.pod b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/FAQ.pod index 1e66507aa2d..697f0f3d3b0 100644 --- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/FAQ.pod +++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/FAQ.pod @@ -656,6 +656,12 @@ One final point -- obviously C can only be used whenever you know the length of the compressed data beforehand, like here with a zip file. +=head1 SUPPORT + +General feedback/questions/bug reports should be sent to +L (preferred) or +L. + =head1 SEE ALSO L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Gzip.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Gzip.pm index 5302011a20d..3fd13695083 100644 --- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Gzip.pm +++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Gzip.pm @@ -8,12 +8,12 @@ use bytes; require Exporter ; -use IO::Compress::RawDeflate 2.084 () ; -use IO::Compress::Adapter::Deflate 2.084 ; +use IO::Compress::RawDeflate 2.093 () ; +use IO::Compress::Adapter::Deflate 2.093 ; -use IO::Compress::Base::Common 2.084 qw(:Status ); -use IO::Compress::Gzip::Constants 2.084 ; -use IO::Compress::Zlib::Extra 2.084 ; +use IO::Compress::Base::Common 2.093 qw(:Status ); +use IO::Compress::Gzip::Constants 2.093 ; +use IO::Compress::Zlib::Extra 2.093 ; BEGIN { @@ -25,7 +25,7 @@ BEGIN our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, %DEFLATE_CONSTANTS, $GzipError); -$VERSION = '2.084'; +$VERSION = '2.093'; $GzipError = '' ; @ISA = qw(IO::Compress::RawDeflate Exporter); @@ -319,7 +319,6 @@ IO::Compress::Gzip - Write RFC 1952 files/buffers binmode $z fileno $z close $z ; - =head1 DESCRIPTION @@ -349,7 +348,8 @@ The functional interface needs Perl5.005 or better. =head2 gzip $input_filename_or_reference => $output_filename_or_reference [, OPTS] C expects at least two parameters, -C<$input_filename_or_reference> and C<$output_filename_or_reference>. +C<$input_filename_or_reference> and C<$output_filename_or_reference> +and zero or more optional parameters (see L) =head3 The C<$input_filename_or_reference> parameter @@ -362,7 +362,7 @@ It can take one of the following forms: =item A filename -If the <$input_filename_or_reference> parameter is a simple scalar, it is +If the C<$input_filename_or_reference> parameter is a simple scalar, it is assumed to be a filename. This file will be opened for reading and the input data will be read from it. @@ -466,9 +466,9 @@ in C<$output_filename_or_reference> as a concatenated series of compressed data =head2 Optional Parameters -Unless specified below, the optional parameters for C, -C, are the same as those used with the OO interface defined in the -L section below. +The optional parameters for the one-shot function C +are (for the most part) identical to those used with the OO interface defined in the +L section. The exceptions are listed below =over 5 @@ -536,6 +536,22 @@ Defaults to 0. =head2 Examples +Here are a few example that show the capabilities of the module. + +=head3 Streaming + +This very simple command line example demonstrates the streaming capabilities of the module. +The code reads data from STDIN, compresses it, and writes the compressed data to STDOUT. + + $ echo hello world | perl -MIO::Compress::Gzip=gzip -e 'gzip \*STDIN => \*STDOUT' >output.gz + +The special filename "-" can be used as a standin for both C<\*STDIN> and C<\*STDOUT>, +so the above can be rewritten as + + $ echo hello world | perl -MIO::Compress::Gzip=gzip -e 'gzip "-" => "-"' >output.gz + +=head3 Compressing a file from the filesystem + To read the contents of the file C and write the compressed data to the file C. @@ -547,6 +563,8 @@ data to the file C. gzip $input => "$input.gz" or die "gzip failed: $GzipError\n"; +=head3 Reading from a Filehandle and writing to an in-memory buffer + To read from an existing Perl filehandle, C<$input>, and write the compressed data to a buffer, C<$buffer>. @@ -561,6 +579,8 @@ compressed data to a buffer, C<$buffer>. gzip $input => \$buffer or die "gzip failed: $GzipError\n"; +=head3 Compressing multiple files + To compress all files in the directory "/my/home" that match "*.txt" and store the compressed data in the same directory @@ -635,7 +655,7 @@ return undef. =head2 Constructor Options -C is any combination of the following options: +C is any combination of zero or more the following options: =over 5 @@ -1204,6 +1224,12 @@ See L See L +=head1 SUPPORT + +General feedback/questions/bug reports should be sent to +L (preferred) or +L. + =head1 SEE ALSO L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Gzip/Constants.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Gzip/Constants.pm index d1bd0c2bb2a..1d18fc4004c 100644 --- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Gzip/Constants.pm +++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Gzip/Constants.pm @@ -9,7 +9,7 @@ require Exporter; our ($VERSION, @ISA, @EXPORT, %GZIP_OS_Names); our ($GZIP_FNAME_INVALID_CHAR_RE, $GZIP_FCOMMENT_INVALID_CHAR_RE); -$VERSION = '2.084'; +$VERSION = '2.093'; @ISA = qw(Exporter); diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/RawDeflate.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/RawDeflate.pm index b2f38ff4021..c833f5e98b0 100644 --- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/RawDeflate.pm +++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/RawDeflate.pm @@ -6,15 +6,15 @@ use strict ; use warnings; use bytes; -use IO::Compress::Base 2.084 ; -use IO::Compress::Base::Common 2.084 qw(:Status ); -use IO::Compress::Adapter::Deflate 2.084 ; +use IO::Compress::Base 2.093 ; +use IO::Compress::Base::Common 2.093 qw(:Status ); +use IO::Compress::Adapter::Deflate 2.093 ; require Exporter ; our ($VERSION, @ISA, @EXPORT_OK, %DEFLATE_CONSTANTS, %EXPORT_TAGS, $RawDeflateError); -$VERSION = '2.084'; +$VERSION = '2.093'; $RawDeflateError = ''; @ISA = qw(IO::Compress::Base Exporter); @@ -116,8 +116,8 @@ sub getExtraParams return getZlibParams(); } -use IO::Compress::Base::Common 2.084 qw(:Parse); -use Compress::Raw::Zlib 2.084 qw(Z_DEFLATED Z_DEFAULT_COMPRESSION Z_DEFAULT_STRATEGY); +use IO::Compress::Base::Common 2.093 qw(:Parse); +use Compress::Raw::Zlib 2.093 qw(Z_DEFLATED Z_DEFAULT_COMPRESSION Z_DEFAULT_STRATEGY); our %PARAMS = ( #'method' => [IO::Compress::Base::Common::Parse_unsigned, Z_DEFLATED], 'level' => [IO::Compress::Base::Common::Parse_signed, Z_DEFAULT_COMPRESSION], @@ -265,7 +265,6 @@ IO::Compress::RawDeflate - Write RFC 1951 files/buffers binmode $z fileno $z close $z ; - =head1 DESCRIPTION @@ -295,7 +294,8 @@ The functional interface needs Perl5.005 or better. =head2 rawdeflate $input_filename_or_reference => $output_filename_or_reference [, OPTS] C expects at least two parameters, -C<$input_filename_or_reference> and C<$output_filename_or_reference>. +C<$input_filename_or_reference> and C<$output_filename_or_reference> +and zero or more optional parameters (see L) =head3 The C<$input_filename_or_reference> parameter @@ -308,7 +308,7 @@ It can take one of the following forms: =item A filename -If the <$input_filename_or_reference> parameter is a simple scalar, it is +If the C<$input_filename_or_reference> parameter is a simple scalar, it is assumed to be a filename. This file will be opened for reading and the input data will be read from it. @@ -404,9 +404,9 @@ in C<$output_filename_or_reference> as a concatenated series of compressed data =head2 Optional Parameters -Unless specified below, the optional parameters for C, -C, are the same as those used with the OO interface defined in the -L section below. +The optional parameters for the one-shot function C +are (for the most part) identical to those used with the OO interface defined in the +L section. The exceptions are listed below =over 5 @@ -474,6 +474,22 @@ Defaults to 0. =head2 Examples +Here are a few example that show the capabilities of the module. + +=head3 Streaming + +This very simple command line example demonstrates the streaming capabilities of the module. +The code reads data from STDIN, compresses it, and writes the compressed data to STDOUT. + + $ echo hello world | perl -MIO::Compress::RawDeflate=rawdeflate -e 'rawdeflate \*STDIN => \*STDOUT' >output.1951 + +The special filename "-" can be used as a standin for both C<\*STDIN> and C<\*STDOUT>, +so the above can be rewritten as + + $ echo hello world | perl -MIO::Compress::RawDeflate=rawdeflate -e 'rawdeflate "-" => "-"' >output.1951 + +=head3 Compressing a file from the filesystem + To read the contents of the file C and write the compressed data to the file C. @@ -485,6 +501,8 @@ data to the file C. rawdeflate $input => "$input.1951" or die "rawdeflate failed: $RawDeflateError\n"; +=head3 Reading from a Filehandle and writing to an in-memory buffer + To read from an existing Perl filehandle, C<$input>, and write the compressed data to a buffer, C<$buffer>. @@ -499,6 +517,8 @@ compressed data to a buffer, C<$buffer>. rawdeflate $input => \$buffer or die "rawdeflate failed: $RawDeflateError\n"; +=head3 Compressing multiple files + To compress all files in the directory "/my/home" that match "*.txt" and store the compressed data in the same directory @@ -573,7 +593,7 @@ return undef. =head2 Constructor Options -C is any combination of the following options: +C is any combination of zero or more the following options: =over 5 @@ -948,6 +968,12 @@ See L See L +=head1 SUPPORT + +General feedback/questions/bug reports should be sent to +L (preferred) or +L. + =head1 SEE ALSO L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zip.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zip.pm index eabeef63e76..70b98b80d6e 100644 --- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zip.pm +++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zip.pm @@ -4,30 +4,30 @@ use strict ; use warnings; use bytes; -use IO::Compress::Base::Common 2.084 qw(:Status ); -use IO::Compress::RawDeflate 2.084 (); -use IO::Compress::Adapter::Deflate 2.084 ; -use IO::Compress::Adapter::Identity 2.084 ; -use IO::Compress::Zlib::Extra 2.084 ; -use IO::Compress::Zip::Constants 2.084 ; +use IO::Compress::Base::Common 2.093 qw(:Status ); +use IO::Compress::RawDeflate 2.093 (); +use IO::Compress::Adapter::Deflate 2.093 ; +use IO::Compress::Adapter::Identity 2.093 ; +use IO::Compress::Zlib::Extra 2.093 ; +use IO::Compress::Zip::Constants 2.093 ; use File::Spec(); use Config; -use Compress::Raw::Zlib 2.084 (); +use Compress::Raw::Zlib 2.093 (); BEGIN { eval { require IO::Compress::Adapter::Bzip2 ; - import IO::Compress::Adapter::Bzip2 2.084 ; + import IO::Compress::Adapter::Bzip2 2.093 ; require IO::Compress::Bzip2 ; - import IO::Compress::Bzip2 2.084 ; + import IO::Compress::Bzip2 2.093 ; } ; eval { require IO::Compress::Adapter::Lzma ; - import IO::Compress::Adapter::Lzma 2.084 ; + import IO::Compress::Adapter::Lzma 2.093 ; require IO::Compress::Lzma ; - import IO::Compress::Lzma 2.084 ; + import IO::Compress::Lzma 2.093 ; } ; } @@ -36,7 +36,7 @@ require Exporter ; our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, %DEFLATE_CONSTANTS, $ZipError); -$VERSION = '2.084'; +$VERSION = '2.093'; $ZipError = ''; @ISA = qw(IO::Compress::RawDeflate Exporter); @@ -246,13 +246,17 @@ sub mkHeader &{ *$self->{ZipData}{FilterName} }() ; } -# if ( $param->getValue('utf8') ) { -# require Encode ; -# $filename = Encode::encode_utf8($filename) -# if length $filename ; -# $comment = Encode::encode_utf8($comment) -# if length $comment ; -# } + if ( $param->getValue('efs') && $] >= 5.008004) { + if (length $filename) { + utf8::downgrade($filename, 1) + or Carp::croak "Wide character in zip filename"; + } + + if (length $comment) { + utf8::downgrade($comment, 1) + or Carp::croak "Wide character in zip comment"; + } + } my $hdr = ''; @@ -325,8 +329,8 @@ sub mkHeader $gpFlag |= ZIP_GP_FLAG_LZMA_EOS_PRESENT if $method == ZIP_CM_LZMA ; -# $gpFlag |= ZIP_GP_FLAG_LANGUAGE_ENCODING -# if $param->getValue('utf8') && (length($filename) || length($comment)); + $gpFlag |= ZIP_GP_FLAG_LANGUAGE_ENCODING + if $param->getValue('efs') && (length($filename) || length($comment)); my $version = $ZIP_CM_MIN_VERSIONS{$method}; $version = ZIP64_MIN_VERSION @@ -682,7 +686,7 @@ our %PARAMS = ( 'name' => [IO::Compress::Base::Common::Parse_any, ''], 'filtername'=> [IO::Compress::Base::Common::Parse_code, undef], 'canonicalname'=> [IO::Compress::Base::Common::Parse_boolean, 0], -# 'utf8' => [IO::Compress::Base::Common::Parse_boolean, 0], + 'efs' => [IO::Compress::Base::Common::Parse_boolean, 0], 'time' => [IO::Compress::Base::Common::Parse_any, undef], 'extime' => [IO::Compress::Base::Common::Parse_any, undef], 'exunix2' => [IO::Compress::Base::Common::Parse_any, undef], @@ -905,7 +909,6 @@ IO::Compress::Zip - Write zip files/buffers binmode $z fileno $z close $z ; - =head1 DESCRIPTION @@ -916,14 +919,18 @@ The primary purpose of this module is to provide streaming write access to zip files and buffers. It is not a general-purpose file archiver. If that is what you want, check out C or C. -At present three compression methods are supported by IO::Compress::Zip, +At present the following compression methods are supported by IO::Compress::Zip, namely Store (no compression at all), Deflate, Bzip2 and LZMA. -Note that to create Bzip2 content, the module C must -be installed. +B + +=over 5 + +=item * To use Bzip2 compression, the module C must be installed. -Note that to create LZMA content, the module C must -be installed. +=item * To use LZMA compression, the module C must be installed. + +=back For reading zip files/buffers, see the companion module L. @@ -945,7 +952,8 @@ The functional interface needs Perl5.005 or better. =head2 zip $input_filename_or_reference => $output_filename_or_reference [, OPTS] C expects at least two parameters, -C<$input_filename_or_reference> and C<$output_filename_or_reference>. +C<$input_filename_or_reference> and C<$output_filename_or_reference> +and zero or more optional parameters (see L) =head3 The C<$input_filename_or_reference> parameter @@ -958,7 +966,7 @@ It can take one of the following forms: =item A filename -If the <$input_filename_or_reference> parameter is a simple scalar, it is +If the C<$input_filename_or_reference> parameter is a simple scalar, it is assumed to be a filename. This file will be opened for reading and the input data will be read from it. @@ -1062,9 +1070,9 @@ in C<$output_filename_or_reference> as a distinct entry. =head2 Optional Parameters -Unless specified below, the optional parameters for C, -C, are the same as those used with the OO interface defined in the -L section below. +The optional parameters for the one-shot function C +are (for the most part) identical to those used with the OO interface defined in the +L section. The exceptions are listed below =over 5 @@ -1132,6 +1140,50 @@ Defaults to 0. =head2 Examples +Here are a few example that show the capabilities of the module. + +=head3 Streaming + +This very simple command line example demonstrates the streaming capabilities of the module. +The code reads data from STDIN, compresses it, and writes the compressed data to STDOUT. + + $ echo hello world | perl -MIO::Compress::Zip=zip -e 'zip \*STDIN => \*STDOUT' >output.zip + +The special filename "-" can be used as a standin for both C<\*STDIN> and C<\*STDOUT>, +so the above can be rewritten as + + $ echo hello world | perl -MIO::Compress::Zip=zip -e 'zip "-" => "-"' >output.zip + +One problem with creating a zip archive directly from STDIN can be demonstrated by looking at +the contents of the zip file, output.zip, that we have just created. + + $ unzip -l output.zip + Archive: output.zip + Length Date Time Name + --------- ---------- ----- ---- + 12 2019-08-16 22:21 + --------- ------- + 12 1 file + +The archive member (filename) used is the empty string. + +If that doesn't suit your needs, you can explicitly set the filename used +in the zip archive by specifying the L option, like so + + echo hello world | perl -MIO::Compress::Zip=zip -e 'zip "-" => "-", Name => "hello.txt"' >output.zip + +Now the contents of the zip file looks like this + + $ unzip -l output.zip + Archive: output.zip + Length Date Time Name + --------- ---------- ----- ---- + 12 2019-08-16 22:22 hello.txt + --------- ------- + 12 1 file + +=head3 Compressing a file from the filesystem + To read the contents of the file C and write the compressed data to the file C. @@ -1143,6 +1195,8 @@ data to the file C. zip $input => "$input.zip" or die "zip failed: $ZipError\n"; +=head3 Reading from a Filehandle and writing to an in-memory buffer + To read from an existing Perl filehandle, C<$input>, and write the compressed data to a buffer, C<$buffer>. @@ -1157,6 +1211,8 @@ compressed data to a buffer, C<$buffer>. zip $input => \$buffer or die "zip failed: $ZipError\n"; +=head3 Compressing multiple files + To create a zip file, C, that contains the compressed contents of the files C and C @@ -1235,7 +1291,7 @@ return undef. =head2 Constructor Options -C is any combination of the following options: +C is any combination of zero or more the following options: =over 5 @@ -1278,22 +1334,52 @@ to it. Otherwise the file pointer will not be moved. This parameter defaults to 0. +=back + +=head3 File Naming Options + +A quick bit of zip file terminology -- A zip archive consists of one or more I, where each member has an associated +filename, known as the I. + +The options listed in this section control how the I (or filename) is stored the zip archive. + +=over 5 + =item C<< Name => $string >> -Stores the contents of C<$string> in the zip filename header field. +This option is used to explicitly set the I in +the zip archive to C<$string>. +Most of the time you don't need to make use of this option. +By default when adding a filename to the zip archive, the I will match the filename. + +You should only need to use this option if you want the I +to be different from the uncompressed filename or when the input is a filehandle or a buffer. -If C is not specified and the C<$input> parameter is a filename, the -value of C<$input> will be used for the zip filename header field. +The default behaviour for what I is used when the C option +is I specified depends on the form of the C<$input> parameter: + +=over 5 -If C is not specified and the C<$input> parameter is not a filename, -no zip filename field will be created. +=item * + +If the C<$input> parameter is a filename, the +value of C<$input> will be used for the I . + +=item * +If the C<$input> parameter is not a filename, +the I will be an empty string. + +=back Note that both the C and C options -can modify the value used for the zip filename header field. +can modify the value used for the I. + +Also note that you should set the C option to true if you are working +with UTF8 filenames. =item C<< CanonicalName => 0|1 >> -This option controls whether the filename field in the zip header is +This option controls whether the I is I into Unix format before being written to the zip file. It is recommended that you enable this option unless you really need @@ -1313,15 +1399,14 @@ This option defaults to B. =item C<< FilterName => sub { ... } >> -This option allow the filename field in the zip header to be modified +This option allow the I name to be modified before it is written to the zip file. This option takes a parameter that must be a reference to a sub. On entry to the sub the C<$_> variable will contain the name to be filtered. If no filename is available C<$_> will contain an empty string. -The value of C<$_> when the sub returns will be stored in the filename -header field. +The value of C<$_> when the sub returns will be used as the I. Note that if C is enabled, a normalized filename will be passed to the sub. @@ -1343,6 +1428,167 @@ filenames before they are stored in C<$zipfile>. FilterName => sub { s[^$dir/][] } ; } +=item C<< Efs => 0|1 >> + +This option controls setting of the "Language Encoding Flag" (EFS) in the zip +archive. When set, the filename and comment fields for the zip archive MUST +be valid UTF-8. + +If the string used for the filename and/or comment is not valid UTF-8 when this option +is true, the script will die with a "wide character" error. + +Note that this option only works with Perl 5.8.4 or better. + +This option defaults to B. + +=back + +=head3 Overall Zip Archive Structure + +=over 5 + +=item C<< Minimal => 1|0 >> + +If specified, this option will disable the creation of all extra fields +in the zip local and central headers. So the C, C, +C, C and C options will +be ignored. + +This parameter defaults to 0. + +=item C<< Stream => 0|1 >> + +This option controls whether the zip file/buffer output is created in +streaming mode. + +Note that when outputting to a file with streaming mode disabled (C +is 0), the output file must be seekable. + +The default is 1. + +=item C<< Zip64 => 0|1 >> + +Create a Zip64 zip file/buffer. This option is used if you want +to store files larger than 4 Gig or store more than 64K files in a single +zip archive. + +C will be automatically set, as needed, if working with the one-shot +interface when the input is either a filename or a scalar reference. + +If you intend to manipulate the Zip64 zip files created with this module +using an external zip/unzip, make sure that it supports Zip64. + +In particular, if you are using Info-Zip you need to have zip version 3.x +or better to update a Zip64 archive and unzip version 6.x to read a zip64 +archive. + +The default is 0. + +=back + +=head3 Deflate Compression Options + +=over 5 + +=item -Level + +Defines the compression level used by zlib. The value should either be +a number between 0 and 9 (0 means no compression and 9 is maximum +compression), or one of the symbolic constants defined below. + + Z_NO_COMPRESSION + Z_BEST_SPEED + Z_BEST_COMPRESSION + Z_DEFAULT_COMPRESSION + +The default is Z_DEFAULT_COMPRESSION. + +Note, these constants are not imported by C by default. + + use IO::Compress::Zip qw(:strategy); + use IO::Compress::Zip qw(:constants); + use IO::Compress::Zip qw(:all); + +=item -Strategy + +Defines the strategy used to tune the compression. Use one of the symbolic +constants defined below. + + Z_FILTERED + Z_HUFFMAN_ONLY + Z_RLE + Z_FIXED + Z_DEFAULT_STRATEGY + +The default is Z_DEFAULT_STRATEGY. + +=back + +=head3 Bzip2 Compression Options + +=over 5 + +=item C<< BlockSize100K => number >> + +Specify the number of 100K blocks bzip2 uses during compression. + +Valid values are from 1 to 9, where 9 is best compression. + +This option is only valid if the C is ZIP_CM_BZIP2. It is ignored +otherwise. + +The default is 1. + +=item C<< WorkFactor => number >> + +Specifies how much effort bzip2 should take before resorting to a slower +fallback compression algorithm. + +Valid values range from 0 to 250, where 0 means use the default value 30. + +This option is only valid if the C is ZIP_CM_BZIP2. It is ignored +otherwise. + +The default is 0. + +=back + +=head3 Lzma Compression Options + +=over 5 + +=item C<< Preset => number >> + +Used to choose the LZMA compression preset. + +Valid values are 0-9 and C. + +0 is the fastest compression with the lowest memory usage and the lowest +compression. + +9 is the slowest compression with the highest memory usage but with the best +compression. + +This option is only valid if the C is ZIP_CM_LZMA. It is ignored +otherwise. + +Defaults to C (6). + +=item C<< Extreme => 0|1 >> + +Makes LZMA compression a lot slower, but a small compression gain. + +This option is only valid if the C is ZIP_CM_LZMA. It is ignored +otherwise. + +Defaults to 0. + +=back + +=head3 Other Options + +=over 5 + =item C<< Time => $number >> Sets the last modified time field in the zip header to $number. @@ -1424,6 +1670,8 @@ By default no UnixN extra field is created. Stores the contents of C<$comment> in the Central File Header of the zip file. +Set the C option to true if you want to store a UTF8 comment. + By default, no comment field is written to the zip file. =item C<< ZipComment => $comment >> @@ -1458,34 +1706,6 @@ content when C is not available. The default method is ZIP_CM_DEFLATE. -=item C<< Stream => 0|1 >> - -This option controls whether the zip file/buffer output is created in -streaming mode. - -Note that when outputting to a file with streaming mode disabled (C -is 0), the output file must be seekable. - -The default is 1. - -=item C<< Zip64 => 0|1 >> - -Create a Zip64 zip file/buffer. This option is used if you want -to store files larger than 4 Gig or store more than 64K files in a single -zip archive. - -C will be automatically set, as needed, if working with the one-shot -interface when the input is either a filename or a scalar reference. - -If you intend to manipulate the Zip64 zip files created with this module -using an external zip/unzip, make sure that it supports Zip64. - -In particular, if you are using Info-Zip you need to have zip version 3.x -or better to update a Zip64 archive and unzip version 6.x to read a zip64 -archive. - -The default is 0. - =item C<< TextFlag => 0|1 >> This parameter controls the setting of a bit in the zip central header. It @@ -1546,96 +1766,6 @@ If the C option is set to true, this option will be ignored. The maximum size of an extra field 65535 bytes. -=item C<< Minimal => 1|0 >> - -If specified, this option will disable the creation of all extra fields -in the zip local and central headers. So the C, C, -C, C and C options will -be ignored. - -This parameter defaults to 0. - -=item C<< BlockSize100K => number >> - -Specify the number of 100K blocks bzip2 uses during compression. - -Valid values are from 1 to 9, where 9 is best compression. - -This option is only valid if the C is ZIP_CM_BZIP2. It is ignored -otherwise. - -The default is 1. - -=item C<< WorkFactor => number >> - -Specifies how much effort bzip2 should take before resorting to a slower -fallback compression algorithm. - -Valid values range from 0 to 250, where 0 means use the default value 30. - -This option is only valid if the C is ZIP_CM_BZIP2. It is ignored -otherwise. - -The default is 0. - -=item C<< Preset => number >> - -Used to choose the LZMA compression preset. - -Valid values are 0-9 and C. - -0 is the fastest compression with the lowest memory usage and the lowest -compression. - -9 is the slowest compression with the highest memory usage but with the best -compression. - -This option is only valid if the C is ZIP_CM_LZMA. It is ignored -otherwise. - -Defaults to C (6). - -=item C<< Extreme => 0|1 >> - -Makes LZMA compression a lot slower, but a small compression gain. - -This option is only valid if the C is ZIP_CM_LZMA. It is ignored -otherwise. - -Defaults to 0. - -=item -Level - -Defines the compression level used by zlib. The value should either be -a number between 0 and 9 (0 means no compression and 9 is maximum -compression), or one of the symbolic constants defined below. - - Z_NO_COMPRESSION - Z_BEST_SPEED - Z_BEST_COMPRESSION - Z_DEFAULT_COMPRESSION - -The default is Z_DEFAULT_COMPRESSION. - -Note, these constants are not imported by C by default. - - use IO::Compress::Zip qw(:strategy); - use IO::Compress::Zip qw(:constants); - use IO::Compress::Zip qw(:all); - -=item -Strategy - -Defines the strategy used to tune the compression. Use one of the symbolic -constants defined below. - - Z_FILTERED - Z_HUFFMAN_ONLY - Z_RLE - Z_FIXED - Z_DEFAULT_STRATEGY - -The default is Z_DEFAULT_STRATEGY. - =item C<< Strict => 0|1 >> This is a placeholder option. @@ -1918,6 +2048,12 @@ See L See L +=head1 SUPPORT + +General feedback/questions/bug reports should be sent to +L (preferred) or +L. + =head1 SEE ALSO L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zip/Constants.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zip/Constants.pm index d28a6ae6861..edae0c29d27 100644 --- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zip/Constants.pm +++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zip/Constants.pm @@ -7,7 +7,7 @@ require Exporter; our ($VERSION, @ISA, @EXPORT, %ZIP_CM_MIN_VERSIONS); -$VERSION = '2.084'; +$VERSION = '2.093'; @ISA = qw(Exporter); diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zlib/Constants.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zlib/Constants.pm index d0d053be95d..c2fecba974f 100644 --- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zlib/Constants.pm +++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zlib/Constants.pm @@ -9,7 +9,7 @@ require Exporter; our ($VERSION, @ISA, @EXPORT); -$VERSION = '2.084'; +$VERSION = '2.093'; @ISA = qw(Exporter); diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zlib/Extra.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zlib/Extra.pm index a88adba273d..6e13d4fb2f1 100644 --- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zlib/Extra.pm +++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zlib/Extra.pm @@ -8,9 +8,9 @@ use bytes; our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS); -$VERSION = '2.084'; +$VERSION = '2.093'; -use IO::Compress::Gzip::Constants 2.084 ; +use IO::Compress::Gzip::Constants 2.093 ; sub ExtraFieldError { diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Bunzip2.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Bunzip2.pm index 1aa9a8c39b7..3fc176e5006 100644 --- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Bunzip2.pm +++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Bunzip2.pm @@ -4,12 +4,12 @@ use strict; use warnings; use bytes; -use IO::Compress::Base::Common 2.084 qw(:Status); +use IO::Compress::Base::Common 2.093 qw(:Status); -use Compress::Raw::Bzip2 2.084 ; +use Compress::Raw::Bzip2 2.093 ; our ($VERSION, @ISA); -$VERSION = '2.084'; +$VERSION = '2.093'; sub mkUncompObject { diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Identity.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Identity.pm index 5601599225f..c8622a59137 100644 --- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Identity.pm +++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Identity.pm @@ -4,14 +4,14 @@ use warnings; use strict; use bytes; -use IO::Compress::Base::Common 2.084 qw(:Status); +use IO::Compress::Base::Common 2.093 qw(:Status); use IO::Compress::Zip::Constants ; our ($VERSION); -$VERSION = '2.084'; +$VERSION = '2.093'; -use Compress::Raw::Zlib 2.084 (); +use Compress::Raw::Zlib 2.093 (); sub mkUncompObject { @@ -139,7 +139,7 @@ sub reset { my $self = shift; - $self->{CompSize} = 0; + $self->{CompSize}->reset(); $self->{UnCompSize} = 0; $self->{CRC32} = Compress::Raw::Zlib::crc32(''); $self->{ADLER32} = Compress::Raw::Zlib::adler32(''); diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Inflate.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Inflate.pm index f51c64d7e54..a27af5ba8e7 100644 --- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Inflate.pm +++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Inflate.pm @@ -4,11 +4,11 @@ use strict; use warnings; use bytes; -use IO::Compress::Base::Common 2.084 qw(:Status); -use Compress::Raw::Zlib 2.084 qw(Z_OK Z_BUF_ERROR Z_STREAM_END Z_FINISH MAX_WBITS); +use IO::Compress::Base::Common 2.093 qw(:Status); +use Compress::Raw::Zlib 2.093 qw(Z_OK Z_BUF_ERROR Z_STREAM_END Z_FINISH MAX_WBITS); our ($VERSION); -$VERSION = '2.084'; +$VERSION = '2.093'; diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/AnyInflate.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/AnyInflate.pm index be464889ebb..6172737e26e 100644 --- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/AnyInflate.pm +++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/AnyInflate.pm @@ -6,22 +6,22 @@ use strict; use warnings; use bytes; -use IO::Compress::Base::Common 2.084 (); +use IO::Compress::Base::Common 2.093 (); -use IO::Uncompress::Adapter::Inflate 2.084 (); +use IO::Uncompress::Adapter::Inflate 2.093 (); -use IO::Uncompress::Base 2.084 ; -use IO::Uncompress::Gunzip 2.084 ; -use IO::Uncompress::Inflate 2.084 ; -use IO::Uncompress::RawInflate 2.084 ; -use IO::Uncompress::Unzip 2.084 ; +use IO::Uncompress::Base 2.093 ; +use IO::Uncompress::Gunzip 2.093 ; +use IO::Uncompress::Inflate 2.093 ; +use IO::Uncompress::RawInflate 2.093 ; +use IO::Uncompress::Unzip 2.093 ; require Exporter ; our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $AnyInflateError); -$VERSION = '2.084'; +$VERSION = '2.093'; $AnyInflateError = ''; @ISA = qw(IO::Uncompress::Base Exporter); @@ -48,7 +48,7 @@ sub anyinflate sub getExtraParams { - use IO::Compress::Base::Common 2.084 qw(:Parse); + use IO::Compress::Base::Common 2.093 qw(:Parse); return ( 'rawinflate' => [Parse_boolean, 0] ) ; } @@ -213,7 +213,8 @@ The functional interface needs Perl5.005 or better. =head2 anyinflate $input_filename_or_reference => $output_filename_or_reference [, OPTS] C expects at least two parameters, -C<$input_filename_or_reference> and C<$output_filename_or_reference>. +C<$input_filename_or_reference> and C<$output_filename_or_reference> +and zero or more optional parameters (see L) =head3 The C<$input_filename_or_reference> parameter @@ -226,7 +227,7 @@ It can take one of the following forms: =item A filename -If the <$input_filename_or_reference> parameter is a simple scalar, it is +If the C<$input_filename_or_reference> parameter is a simple scalar, it is assumed to be a filename. This file will be opened for reading and the input data will be read from it. @@ -323,9 +324,9 @@ files/buffers. =head2 Optional Parameters -Unless specified below, the optional parameters for C, -C, are the same as those used with the OO interface defined in the -L section below. +The optional parameters for the one-shot function C +are (for the most part) identical to those used with the OO interface defined in the +L section. The exceptions are listed below =over 5 @@ -959,6 +960,12 @@ Same as doing this See L +=head1 SUPPORT + +General feedback/questions/bug reports should be sent to +L (preferred) or +L. + =head1 SEE ALSO L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/AnyUncompress.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/AnyUncompress.pm index c6dfce536b4..251b7cf2632 100644 --- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/AnyUncompress.pm +++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/AnyUncompress.pm @@ -4,16 +4,16 @@ use strict; use warnings; use bytes; -use IO::Compress::Base::Common 2.084 (); +use IO::Compress::Base::Common 2.093 (); -use IO::Uncompress::Base 2.084 ; +use IO::Uncompress::Base 2.093 ; require Exporter ; our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $AnyUncompressError); -$VERSION = '2.084'; +$VERSION = '2.093'; $AnyUncompressError = ''; @ISA = qw(IO::Uncompress::Base Exporter); @@ -29,26 +29,30 @@ BEGIN { local @INC = @INC; pop @INC if $INC[-1] eq '.'; - eval ' use IO::Uncompress::Adapter::Inflate 2.084 ;'; - eval ' use IO::Uncompress::Adapter::Bunzip2 2.084 ;'; - eval ' use IO::Uncompress::Adapter::LZO 2.084 ;'; - eval ' use IO::Uncompress::Adapter::Lzf 2.084 ;'; - eval ' use IO::Uncompress::Adapter::UnLzma 2.084 ;'; - eval ' use IO::Uncompress::Adapter::UnXz 2.084 ;'; + + # Don't trigger any __DIE__ Hooks. + local $SIG{__DIE__}; + + eval ' use IO::Uncompress::Adapter::Inflate 2.093 ;'; + eval ' use IO::Uncompress::Adapter::Bunzip2 2.093 ;'; + eval ' use IO::Uncompress::Adapter::LZO 2.093 ;'; + eval ' use IO::Uncompress::Adapter::Lzf 2.093 ;'; + eval ' use IO::Uncompress::Adapter::UnLzma 2.093 ;'; + eval ' use IO::Uncompress::Adapter::UnXz 2.093 ;'; eval ' use IO::Uncompress::Adapter::UnZstd 2.083 ;'; - eval ' use IO::Uncompress::Adapter::UnLzip 2.084 ;'; - - eval ' use IO::Uncompress::Bunzip2 2.084 ;'; - eval ' use IO::Uncompress::UnLzop 2.084 ;'; - eval ' use IO::Uncompress::Gunzip 2.084 ;'; - eval ' use IO::Uncompress::Inflate 2.084 ;'; - eval ' use IO::Uncompress::RawInflate 2.084 ;'; - eval ' use IO::Uncompress::Unzip 2.084 ;'; - eval ' use IO::Uncompress::UnLzf 2.084 ;'; - eval ' use IO::Uncompress::UnLzma 2.084 ;'; - eval ' use IO::Uncompress::UnXz 2.084 ;'; - eval ' use IO::Uncompress::UnZstd 2.084 ;'; - eval ' use IO::Uncompress::UnLzip 2.084 ;'; + eval ' use IO::Uncompress::Adapter::UnLzip 2.093 ;'; + + eval ' use IO::Uncompress::Bunzip2 2.093 ;'; + eval ' use IO::Uncompress::UnLzop 2.093 ;'; + eval ' use IO::Uncompress::Gunzip 2.093 ;'; + eval ' use IO::Uncompress::Inflate 2.093 ;'; + eval ' use IO::Uncompress::RawInflate 2.093 ;'; + eval ' use IO::Uncompress::Unzip 2.093 ;'; + eval ' use IO::Uncompress::UnLzf 2.093 ;'; + eval ' use IO::Uncompress::UnLzma 2.093 ;'; + eval ' use IO::Uncompress::UnXz 2.093 ;'; + eval ' use IO::Uncompress::UnZstd 2.093 ;'; + eval ' use IO::Uncompress::UnLzip 2.093 ;'; } @@ -266,7 +270,7 @@ __END__ =head1 NAME -IO::Uncompress::AnyUncompress - Uncompress gzip, zip, bzip2 or lzop file/buffer +IO::Uncompress::AnyUncompress - Uncompress gzip, zip, bzip2, xz, lzma, lzip, lzf or lzop file/buffer =head1 SYNOPSIS @@ -363,7 +367,8 @@ The functional interface needs Perl5.005 or better. =head2 anyuncompress $input_filename_or_reference => $output_filename_or_reference [, OPTS] C expects at least two parameters, -C<$input_filename_or_reference> and C<$output_filename_or_reference>. +C<$input_filename_or_reference> and C<$output_filename_or_reference> +and zero or more optional parameters (see L) =head3 The C<$input_filename_or_reference> parameter @@ -376,7 +381,7 @@ It can take one of the following forms: =item A filename -If the <$input_filename_or_reference> parameter is a simple scalar, it is +If the C<$input_filename_or_reference> parameter is a simple scalar, it is assumed to be a filename. This file will be opened for reading and the input data will be read from it. @@ -473,9 +478,9 @@ files/buffers. =head2 Optional Parameters -Unless specified below, the optional parameters for C, -C, are the same as those used with the OO interface defined in the -L section below. +The optional parameters for the one-shot function C +are (for the most part) identical to those used with the OO interface defined in the +L section. The exceptions are listed below =over 5 @@ -1044,6 +1049,12 @@ Same as doing this =head1 EXAMPLES +=head1 SUPPORT + +General feedback/questions/bug reports should be sent to +L (preferred) or +L. + =head1 SEE ALSO L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Base.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Base.pm index 06fb04a81c9..b9901ca1fff 100644 --- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Base.pm +++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Base.pm @@ -9,12 +9,12 @@ our (@ISA, $VERSION, @EXPORT_OK, %EXPORT_TAGS); @ISA = qw(IO::File Exporter); -$VERSION = '2.084'; +$VERSION = '2.093'; use constant G_EOF => 0 ; use constant G_ERR => -1 ; -use IO::Compress::Base::Common 2.084 ; +use IO::Compress::Base::Common 2.093 ; use IO::File ; use Symbol; @@ -1010,6 +1010,9 @@ sub nextStream $status == 1 or return $status ; + *$self->{Pending} = '' + if $self !~ /IO::Uncompress::RawInflate/ && ! *$self->{MultiStream}; + *$self->{TotalInflatedBytesRead} = 0 ; *$self->{LineNo} = $. = 0; @@ -1050,6 +1053,10 @@ sub gotoNextStream return 0; } + # Not EOF, so Transparent mode kicks in now for trailing data + # Reset member name in case anyone calls getHeaderInfo()->{Name} + *$self->{Info} = { Name => undef, Type => 'plain' }; + $self->clearError(); *$self->{Type} = 'plain'; *$self->{Plain} = 1; @@ -1527,6 +1534,12 @@ IO::Uncompress::Base - Base Class for IO::Uncompress modules This module is not intended for direct use in application code. Its sole purpose is to be sub-classed by IO::Uncompress modules. +=head1 SUPPORT + +General feedback/questions/bug reports should be sent to +L (preferred) or +L. + =head1 SEE ALSO L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Bunzip2.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Bunzip2.pm index 7a84bcd15cb..8e805d4c9e2 100644 --- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Bunzip2.pm +++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Bunzip2.pm @@ -4,15 +4,15 @@ use strict ; use warnings; use bytes; -use IO::Compress::Base::Common 2.084 qw(:Status ); +use IO::Compress::Base::Common 2.093 qw(:Status ); -use IO::Uncompress::Base 2.084 ; -use IO::Uncompress::Adapter::Bunzip2 2.084 ; +use IO::Uncompress::Base 2.093 ; +use IO::Uncompress::Adapter::Bunzip2 2.093 ; require Exporter ; our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $Bunzip2Error); -$VERSION = '2.084'; +$VERSION = '2.093'; $Bunzip2Error = ''; @ISA = qw(IO::Uncompress::Base Exporter); @@ -209,7 +209,8 @@ The functional interface needs Perl5.005 or better. =head2 bunzip2 $input_filename_or_reference => $output_filename_or_reference [, OPTS] C expects at least two parameters, -C<$input_filename_or_reference> and C<$output_filename_or_reference>. +C<$input_filename_or_reference> and C<$output_filename_or_reference> +and zero or more optional parameters (see L) =head3 The C<$input_filename_or_reference> parameter @@ -222,7 +223,7 @@ It can take one of the following forms: =item A filename -If the <$input_filename_or_reference> parameter is a simple scalar, it is +If the C<$input_filename_or_reference> parameter is a simple scalar, it is assumed to be a filename. This file will be opened for reading and the input data will be read from it. @@ -319,9 +320,9 @@ files/buffers. =head2 Optional Parameters -Unless specified below, the optional parameters for C, -C, are the same as those used with the OO interface defined in the -L section below. +The optional parameters for the one-shot function C +are (for the most part) identical to those used with the OO interface defined in the +L section. The exceptions are listed below =over 5 @@ -876,6 +877,12 @@ Same as doing this See L +=head1 SUPPORT + +General feedback/questions/bug reports should be sent to +L (preferred) or +L. + =head1 SEE ALSO L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L @@ -886,7 +893,7 @@ L, L, L, L -The primary site for the bzip2 program is L. +The primary site for the bzip2 program is L. See the module L diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Gunzip.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Gunzip.pm index 46dd108341a..6e57e961184 100644 --- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Gunzip.pm +++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Gunzip.pm @@ -9,12 +9,12 @@ use strict ; use warnings; use bytes; -use IO::Uncompress::RawInflate 2.084 ; +use IO::Uncompress::RawInflate 2.093 ; -use Compress::Raw::Zlib 2.084 () ; -use IO::Compress::Base::Common 2.084 qw(:Status ); -use IO::Compress::Gzip::Constants 2.084 ; -use IO::Compress::Zlib::Extra 2.084 ; +use Compress::Raw::Zlib 2.093 () ; +use IO::Compress::Base::Common 2.093 qw(:Status ); +use IO::Compress::Gzip::Constants 2.093 ; +use IO::Compress::Zlib::Extra 2.093 ; require Exporter ; @@ -28,7 +28,7 @@ Exporter::export_ok_tags('all'); $GunzipError = ''; -$VERSION = '2.084'; +$VERSION = '2.093'; sub new { @@ -348,7 +348,8 @@ The functional interface needs Perl5.005 or better. =head2 gunzip $input_filename_or_reference => $output_filename_or_reference [, OPTS] C expects at least two parameters, -C<$input_filename_or_reference> and C<$output_filename_or_reference>. +C<$input_filename_or_reference> and C<$output_filename_or_reference> +and zero or more optional parameters (see L) =head3 The C<$input_filename_or_reference> parameter @@ -361,7 +362,7 @@ It can take one of the following forms: =item A filename -If the <$input_filename_or_reference> parameter is a simple scalar, it is +If the C<$input_filename_or_reference> parameter is a simple scalar, it is assumed to be a filename. This file will be opened for reading and the input data will be read from it. @@ -458,9 +459,9 @@ files/buffers. =head2 Optional Parameters -Unless specified below, the optional parameters for C, -C, are the same as those used with the OO interface defined in the -L section below. +The optional parameters for the one-shot function C +are (for the most part) identical to those used with the OO interface defined in the +L section. The exceptions are listed below =over 5 @@ -1082,6 +1083,12 @@ Same as doing this See L +=head1 SUPPORT + +General feedback/questions/bug reports should be sent to +L (preferred) or +L. + =head1 SEE ALSO L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Inflate.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Inflate.pm index 4d89db5b195..993a1dddc89 100644 --- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Inflate.pm +++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Inflate.pm @@ -5,15 +5,15 @@ use strict ; use warnings; use bytes; -use IO::Compress::Base::Common 2.084 qw(:Status ); -use IO::Compress::Zlib::Constants 2.084 ; +use IO::Compress::Base::Common 2.093 qw(:Status ); +use IO::Compress::Zlib::Constants 2.093 ; -use IO::Uncompress::RawInflate 2.084 ; +use IO::Uncompress::RawInflate 2.093 ; require Exporter ; our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $InflateError); -$VERSION = '2.084'; +$VERSION = '2.093'; $InflateError = ''; @ISA = qw(IO::Uncompress::RawInflate Exporter); @@ -270,7 +270,8 @@ The functional interface needs Perl5.005 or better. =head2 inflate $input_filename_or_reference => $output_filename_or_reference [, OPTS] C expects at least two parameters, -C<$input_filename_or_reference> and C<$output_filename_or_reference>. +C<$input_filename_or_reference> and C<$output_filename_or_reference> +and zero or more optional parameters (see L) =head3 The C<$input_filename_or_reference> parameter @@ -283,7 +284,7 @@ It can take one of the following forms: =item A filename -If the <$input_filename_or_reference> parameter is a simple scalar, it is +If the C<$input_filename_or_reference> parameter is a simple scalar, it is assumed to be a filename. This file will be opened for reading and the input data will be read from it. @@ -380,9 +381,9 @@ files/buffers. =head2 Optional Parameters -Unless specified below, the optional parameters for C, -C, are the same as those used with the OO interface defined in the -L section below. +The optional parameters for the one-shot function C +are (for the most part) identical to those used with the OO interface defined in the +L section. The exceptions are listed below =over 5 @@ -954,6 +955,12 @@ Same as doing this See L +=head1 SUPPORT + +General feedback/questions/bug reports should be sent to +L (preferred) or +L. + =head1 SEE ALSO L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/RawInflate.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/RawInflate.pm index 63703cd9750..2fa318816ac 100644 --- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/RawInflate.pm +++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/RawInflate.pm @@ -5,16 +5,16 @@ use strict ; use warnings; use bytes; -use Compress::Raw::Zlib 2.084 ; -use IO::Compress::Base::Common 2.084 qw(:Status ); +use Compress::Raw::Zlib 2.093 ; +use IO::Compress::Base::Common 2.093 qw(:Status ); -use IO::Uncompress::Base 2.084 ; -use IO::Uncompress::Adapter::Inflate 2.084 ; +use IO::Uncompress::Base 2.093 ; +use IO::Uncompress::Adapter::Inflate 2.093 ; require Exporter ; our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, %DEFLATE_CONSTANTS, $RawInflateError); -$VERSION = '2.084'; +$VERSION = '2.093'; $RawInflateError = ''; @ISA = qw(IO::Uncompress::Base Exporter); @@ -418,7 +418,8 @@ The functional interface needs Perl5.005 or better. =head2 rawinflate $input_filename_or_reference => $output_filename_or_reference [, OPTS] C expects at least two parameters, -C<$input_filename_or_reference> and C<$output_filename_or_reference>. +C<$input_filename_or_reference> and C<$output_filename_or_reference> +and zero or more optional parameters (see L) =head3 The C<$input_filename_or_reference> parameter @@ -431,7 +432,7 @@ It can take one of the following forms: =item A filename -If the <$input_filename_or_reference> parameter is a simple scalar, it is +If the C<$input_filename_or_reference> parameter is a simple scalar, it is assumed to be a filename. This file will be opened for reading and the input data will be read from it. @@ -528,9 +529,9 @@ files/buffers. =head2 Optional Parameters -Unless specified below, the optional parameters for C, -C, are the same as those used with the OO interface defined in the -L section below. +The optional parameters for the one-shot function C +are (for the most part) identical to those used with the OO interface defined in the +L section. The exceptions are listed below =over 5 @@ -1082,6 +1083,12 @@ Same as doing this See L +=head1 SUPPORT + +General feedback/questions/bug reports should be sent to +L (preferred) or +L. + =head1 SEE ALSO L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Unzip.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Unzip.pm index 4e8a0d67c7a..856487f8fcd 100644 --- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Unzip.pm +++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Unzip.pm @@ -9,17 +9,20 @@ use warnings; use bytes; use IO::File; -use IO::Uncompress::RawInflate 2.084 ; -use IO::Compress::Base::Common 2.084 qw(:Status ); -use IO::Uncompress::Adapter::Inflate 2.084 ; -use IO::Uncompress::Adapter::Identity 2.084 ; -use IO::Compress::Zlib::Extra 2.084 ; -use IO::Compress::Zip::Constants 2.084 ; +use IO::Uncompress::RawInflate 2.093 ; +use IO::Compress::Base::Common 2.093 qw(:Status ); +use IO::Uncompress::Adapter::Inflate 2.093 ; +use IO::Uncompress::Adapter::Identity 2.093 ; +use IO::Compress::Zlib::Extra 2.093 ; +use IO::Compress::Zip::Constants 2.093 ; -use Compress::Raw::Zlib 2.084 () ; +use Compress::Raw::Zlib 2.093 () ; BEGIN { + # Don't trigger any __DIE__ Hooks. + local $SIG{__DIE__}; + eval{ require IO::Uncompress::Adapter::Bunzip2 ; import IO::Uncompress::Adapter::Bunzip2 } ; eval{ require IO::Uncompress::Adapter::UnLzma ; @@ -31,7 +34,7 @@ require Exporter ; our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $UnzipError, %headerLookup); -$VERSION = '2.084'; +$VERSION = '2.093'; $UnzipError = ''; @ISA = qw(IO::Uncompress::RawInflate Exporter); @@ -70,6 +73,7 @@ sub getExtraParams 'name' => [IO::Compress::Base::Common::Parse_any, undef], 'stream' => [IO::Compress::Base::Common::Parse_boolean, 0], + 'efs' => [IO::Compress::Base::Common::Parse_boolean, 0], # TODO - This means reading the central directory to get # 1. the local header offsets @@ -86,6 +90,7 @@ sub ckParams $got->setValue('crc32' => 1); *$self->{UnzipData}{Name} = $got->getValue('name'); + *$self->{UnzipData}{efs} = $got->getValue('efs'); return 1; } @@ -551,6 +556,7 @@ sub _readZipHeader($) my $extraField; my @EXTRA = (); my $streamingMode = ($gpFlag & ZIP_GP_FLAG_STREAMING_MASK) ? 1 : 0 ; + my $efs_flag = ($gpFlag & ZIP_GP_FLAG_LANGUAGE_ENCODING) ? 1 : 0; return $self->HeaderError("Encrypted content not supported") if $gpFlag & (ZIP_GP_FLAG_ENCRYPTED_MASK|ZIP_GP_FLAG_STRONG_ENCRYPTED_MASK); @@ -565,6 +571,14 @@ sub _readZipHeader($) { $self->smartReadExact(\$filename, $filename_length) or return $self->TruncatedHeader("Filename"); + + if (*$self->{UnzipData}{efs} && $efs_flag && $] >= 5.008004) + { + require Encode; + eval { $filename = Encode::decode_utf8($filename, 1) } + or Carp::croak "Zip Filename not UTF-8" ; + } + $keep .= $filename ; } @@ -705,6 +719,7 @@ sub _readZipHeader($) 'UncompressedLength' => $uncompressedLength , 'CRC32' => $crc32 , 'Name' => $filename, + 'efs' => $efs_flag, # language encoding flag 'Time' => _dosToUnixTime($lastModTime), 'Stream' => $streamingMode, @@ -1107,7 +1122,8 @@ The functional interface needs Perl5.005 or better. =head2 unzip $input_filename_or_reference => $output_filename_or_reference [, OPTS] C expects at least two parameters, -C<$input_filename_or_reference> and C<$output_filename_or_reference>. +C<$input_filename_or_reference> and C<$output_filename_or_reference> +and zero or more optional parameters (see L) =head3 The C<$input_filename_or_reference> parameter @@ -1120,7 +1136,7 @@ It can take one of the following forms: =item A filename -If the <$input_filename_or_reference> parameter is a simple scalar, it is +If the C<$input_filename_or_reference> parameter is a simple scalar, it is assumed to be a filename. This file will be opened for reading and the input data will be read from it. @@ -1217,9 +1233,9 @@ files/buffers. =head2 Optional Parameters -Unless specified below, the optional parameters for C, -C, are the same as those used with the OO interface defined in the -L section below. +The optional parameters for the one-shot function C +are (for the most part) identical to those used with the OO interface defined in the +L section. The exceptions are listed below =over 5 @@ -1431,6 +1447,18 @@ OPTS is a combination of the following options: Open "membername" from the zip file for reading. +=item C<< Efs => 0| 1 >> + +When this option is set to true AND the zip archive being read has +the "Language Encoding Flag" (EFS) set, the member name is assumed to be encoded in UTF-8. + +If the member name in the zip archive is not valid UTF-8 when this optionn is true, +the script will die with an error message. + +Note that this option only works with Perl 5.8.4 or better. + +This option defaults to B. + =item C<< AutoClose => 0|1 >> This option is only valid when the C<$input> parameter is a filehandle. If @@ -1731,6 +1759,10 @@ Skips to the next compressed data stream in the input file/buffer. If a new compressed data stream is found, the eof marker will be cleared and C<$.> will be reset to 0. +If trailing data is present immediately after the zip archive and the +C option is enabled, this method will consider that trailing +data to be another member of the zip archive. + Returns 1 if a new stream was found, 0 if none was found, and -1 if an error was encountered. @@ -1828,6 +1860,12 @@ to read a zip file and unzip its contents to disk. The script is available from L +=head1 SUPPORT + +General feedback/questions/bug reports should be sent to +L (preferred) or +L. + =head1 SEE ALSO L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/private/MakeUtil.pm b/gnu/usr.bin/perl/cpan/IO-Compress/private/MakeUtil.pm index 037782b9498..12fa26fd05f 100644 --- a/gnu/usr.bin/perl/cpan/IO-Compress/private/MakeUtil.pm +++ b/gnu/usr.bin/perl/cpan/IO-Compress/private/MakeUtil.pm @@ -35,8 +35,7 @@ sub MY::libscan my $path = shift; return undef - if $path =~ /^(?:RCS|CVS|SCCS|\.svn|_darcs)$/ || - $path =~ /(~|\.bak|_bak)$/ || + if $path =~ /(~|\.bak|_bak)$/ || $path =~ /\..*\.sw(o|p)$/ || $path =~ /\B\.svn\b/; diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/t/000prereq.t b/gnu/usr.bin/perl/cpan/IO-Compress/t/000prereq.t index c3395464c49..9467cd37711 100755 --- a/gnu/usr.bin/perl/cpan/IO-Compress/t/000prereq.t +++ b/gnu/usr.bin/perl/cpan/IO-Compress/t/000prereq.t @@ -25,7 +25,7 @@ BEGIN if eval { require Test::NoWarnings ; import Test::NoWarnings; 1 }; - my $VERSION = '2.084'; + my $VERSION = '2.093'; my @NAMES = qw( Compress::Raw::Bzip2 Compress::Raw::Zlib @@ -60,8 +60,7 @@ BEGIN ); - my @OPT = qw( - + my @OPT = qw( ); plan tests => 1 + 2 + @NAMES + @OPT + $extra ; diff --git a/gnu/usr.bin/perl/cpan/IPC-Cmd/lib/IPC/Cmd.pm b/gnu/usr.bin/perl/cpan/IPC-Cmd/lib/IPC/Cmd.pm index 42cdd5990cb..88ed2955a9d 100644 --- a/gnu/usr.bin/perl/cpan/IPC-Cmd/lib/IPC/Cmd.pm +++ b/gnu/usr.bin/perl/cpan/IPC-Cmd/lib/IPC/Cmd.pm @@ -19,7 +19,7 @@ BEGIN { $HAVE_MONOTONIC ]; - $VERSION = '1.02'; + $VERSION = '1.04'; $VERBOSE = 0; $DEBUG = 0; $WARN = 1; @@ -1204,7 +1204,7 @@ sub run_forked { # which do setsid theirselves -- can't do anything # with those) - POSIX::setsid() || Carp::confess("Error running setsid: " . $!); + POSIX::setsid() == -1 and Carp::confess("Error running setsid: " . $!); if ($opts->{'child_BEGIN'} && ref($opts->{'child_BEGIN'}) eq 'CODE') { $opts->{'child_BEGIN'}->(); diff --git a/gnu/usr.bin/perl/cpan/JSON-PP/bin/json_pp b/gnu/usr.bin/perl/cpan/JSON-PP/bin/json_pp index 5f956b1fc31..72b9db70f1f 100644 --- a/gnu/usr.bin/perl/cpan/JSON-PP/bin/json_pp +++ b/gnu/usr.bin/perl/cpan/JSON-PP/bin/json_pp @@ -3,6 +3,7 @@ BEGIN { pop @INC if $INC[-1] eq '.' } use strict; use Getopt::Long; +use Encode (); use JSON::PP (); @@ -42,10 +43,17 @@ for my $opt (split /,/, $json_opt) { my %F = ( 'json' => sub { my $json = JSON::PP->new; + my $enc = + /^\x00\x00\x00/s ? "utf-32be" + : /^\x00.\x00/s ? "utf-16be" + : /^.\x00\x00\x00/s ? "utf-32le" + : /^.\x00.\x00/s ? "utf-16le" + : "utf-8"; for my $key (keys %json_opt) { + next if $key eq 'utf8'; $json->$key($json_opt{$key}); } - $json->decode( $_ ); + $json->decode( Encode::decode($enc, $_) ); }, 'eval' => sub { my $v = eval "no strict;\n#line 1 \"input\"\n$_"; @@ -84,8 +92,11 @@ $F{$opt_from} $T{$opt_to} or die "$opt_from: not a valid toformat\n"; -local $/; -$_ = ; +{ + local $/; + binmode STDIN; + $_ = ; +} $_ = $F{$opt_from}->(); $_ = $T{$opt_to}->(); @@ -163,7 +174,7 @@ options to JSON::PP Acceptable options are: ascii latin1 utf8 pretty indent space_before space_after relaxed canonical allow_nonref - allow_singlequote allow_barekey allow_bignum loose escape_slash + allow_singlequote allow_barekey allow_bignum loose escape_slash indent_length Multiple options must be separated by commas: diff --git a/gnu/usr.bin/perl/cpan/JSON-PP/lib/JSON/PP.pm b/gnu/usr.bin/perl/cpan/JSON-PP/lib/JSON/PP.pm index d8b7ab30656..9f083542851 100644 --- a/gnu/usr.bin/perl/cpan/JSON-PP/lib/JSON/PP.pm +++ b/gnu/usr.bin/perl/cpan/JSON-PP/lib/JSON/PP.pm @@ -14,7 +14,7 @@ use JSON::PP::Boolean; use Carp (); #use Devel::Peek; -$JSON::PP::VERSION = '4.02'; +$JSON::PP::VERSION = '4.04'; @JSON::PP::EXPORT = qw(encode_json decode_json from_json to_json); @@ -1773,7 +1773,7 @@ JSON::PP - JSON::XS compatible pure-Perl module. =head1 VERSION - 4.02 + 4.04 =head1 DESCRIPTION diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt-FastCalc/lib/Math/BigInt/FastCalc.pm b/gnu/usr.bin/perl/cpan/Math-BigInt-FastCalc/lib/Math/BigInt/FastCalc.pm index 3e772e92a3e..4e903bd4f10 100644 --- a/gnu/usr.bin/perl/cpan/Math-BigInt-FastCalc/lib/Math/BigInt/FastCalc.pm +++ b/gnu/usr.bin/perl/cpan/Math-BigInt-FastCalc/lib/Math/BigInt/FastCalc.pm @@ -8,7 +8,7 @@ use Math::BigInt::Calc 1.999801; our @ISA = qw< Math::BigInt::Calc >; -our $VERSION = '0.5008'; +our $VERSION = '0.5009'; ############################################################################## # global constants, flags and accessory diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigFloat.pm b/gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigFloat.pm index 8a92b5818da..f1d7a1a0a0a 100644 --- a/gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigFloat.pm +++ b/gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigFloat.pm @@ -19,8 +19,9 @@ use warnings; use Carp qw< carp croak >; use Math::BigInt (); -our $VERSION = '1.999816'; +our $VERSION = '1.999818'; +require Exporter; our @ISA = qw/Math::BigInt/; our @EXPORT_OK = qw/bpi/; @@ -28,8 +29,6 @@ our @EXPORT_OK = qw/bpi/; our ($AUTOLOAD, $accuracy, $precision, $div_scale, $round_mode, $rnd_mode, $upgrade, $downgrade, $_trap_nan, $_trap_inf); -my $class = "Math::BigFloat"; - use overload # overload key: with_assign @@ -273,7 +272,7 @@ sub AUTOLOAD { my $name = $AUTOLOAD; $name =~ s/(.*):://; # split package - my $c = $1 || $class; + my $c = $1 || __PACKAGE__; no strict 'refs'; $c->import() if $IMPORT == 0; if (!_method_alias($name)) { @@ -418,7 +417,8 @@ sub new { return $self; } - # Handle hexadecimal numbers. + # Handle hexadecimal numbers. We auto-detect hexadecimal numbers if they + # have a "0x" or "0X" prefix. if ($wanted =~ /^\s*[+-]?0[Xx]/) { $self = $class -> from_hex($wanted); @@ -426,7 +426,42 @@ sub new { return $self; } - # Handle binary numbers. + # Handle octal numbers. We auto-detect octal numbers if they have a "0" + # prefix and a binary exponent. + + if ($wanted =~ / + ^ + \s* + + # sign + [+-]? + + # prefix + 0 + + # significand using the octal digits 0..7 + [0-7]+ (?: _ [0-7]+ )* + (?: + \. + (?: [0-7]+ (?: _ [0-7]+ )* )? + )? + + # exponent (power of 2) using decimal digits + [Pp] + [+-]? + \d+ (?: _ \d+ )* + + \s* + $ + /x) + { + $self = $class -> from_oct($wanted); + $self->round(@r) unless @r >= 2 && !defined $r[0] && !defined $r[1]; + return $self; + } + + # Handle binary numbers. We auto-detect binary numbers if they have a "0b" + # or "0B" prefix. if ($wanted =~ /^\s*[+-]?0[Bb]/) { $self = $class -> from_bin($wanted); @@ -781,6 +816,165 @@ sub from_bin { return $self->bnan(); } +sub from_ieee754 { + my $self = shift; + my $selfref = ref $self; + my $class = $selfref || $self; + + # Don't modify constant (read-only) objects. + + return if $selfref && $self->modify('from_ieee754'); + + my $in = shift; # input string (or raw bytes) + my $format = shift; # format ("binary32", "decimal64" etc.) + my $enc; # significand encoding (applies only to decimal) + my $k; # storage width in bits + my $b; # base + + if ($format =~ /^binary(\d+)\z/) { + $k = $1; + $b = 2; + } elsif ($format =~ /^decimal(\d+)(dpd|bcd)?\z/) { + $k = $1; + $b = 10; + $enc = $2 || 'dpd'; # default is dencely-packed decimals (DPD) + } elsif ($format eq 'half') { + $k = 16; + $b = 2; + } elsif ($format eq 'single') { + $k = 32; + $b = 2; + } elsif ($format eq 'double') { + $k = 64; + $b = 2; + } elsif ($format eq 'quadruple') { + $k = 128; + $b = 2; + } elsif ($format eq 'octuple') { + $k = 256; + $b = 2; + } elsif ($format eq 'sexdecuple') { + $k = 512; + $b = 2; + } + + if ($b == 2) { + + # Get the parameters for this format. + + my $p; # precision (in bits) + my $t; # number of bits in significand + my $w; # number of bits in exponent + + if ($k == 16) { # binary16 (half-precision) + $p = 11; + $t = 10; + $w = 5; + } elsif ($k == 32) { # binary32 (single-precision) + $p = 24; + $t = 23; + $w = 8; + } elsif ($k == 64) { # binary64 (double-precision) + $p = 53; + $t = 52; + $w = 11; + } else { # binaryN (quadruple-precision and above) + if ($k < 128 || $k != 32 * sprintf('%.0f', $k / 32)) { + croak "Number of bits must be 16, 32, 64, or >= 128 and", + " a multiple of 32"; + } + $p = $k - sprintf('%.0f', 4 * log($k) / log(2)) + 13; + $t = $p - 1; + $w = $k - $t - 1; + } + + # The maximum exponent, minimum exponent, and exponent bias. + + my $emax = Math::BigInt -> new(2) -> bpow($w - 1) -> bdec(); + my $emin = 1 - $emax; + my $bias = $emax; + + # Undefined input. + + unless (defined $in) { + carp("Input is undefined"); + return $self -> bzero(); + } + + # Make sure input string is a string of zeros and ones. + + my $len = CORE::length $in; + if (8 * $len == $k) { # bytes + $in = unpack "B*", $in; + } elsif (4 * $len == $k) { # hexadecimal + if ($in =~ /([^\da-f])/i) { + croak "Illegal hexadecimal digit '$1'"; + } + $in = unpack "B*", pack "H*", $in; + } elsif ($len == $k) { # bits + if ($in =~ /([^01])/) { + croak "Illegal binary digit '$1'"; + } + } else { + croak "Unknown input -- $in"; + } + + # Split bit string into sign, exponent, and mantissa/significand. + + my $sign = substr($in, 0, 1) eq '1' ? '-' : '+'; + my $expo = $class -> from_bin(substr($in, 1, $w)); + my $mant = $class -> from_bin(substr($in, $w + 1)); + + my $x; + + $expo -> bsub($bias); # subtract bias + + if ($expo < $emin) { # zero and subnormals + if ($mant == 0) { # zero + $x = $class -> bzero(); + } else { # subnormals + # compute (1/$b)**(N) rather than ($b)**(-N) + $x = $class -> new("0.5"); # 1/$b + $x -> bpow($bias + $t - 1) -> bmul($mant); + $x -> bneg() if $sign eq '-'; + } + } + + elsif ($expo > $emax) { # inf and nan + if ($mant == 0) { # inf + $x = $class -> binf($sign); + } else { # nan + $x = $class -> bnan(); + } + } + + else { # normals + $mant = $class -> new(2) -> bpow($t) -> badd($mant); + if ($expo < $t) { + # compute (1/$b)**(N) rather than ($b)**(-N) + $x = $class -> new("0.5"); # 1/$b + $x -> bpow($t - $expo) -> bmul($mant); + } else { + $x = $class -> new(2); + $x -> bpow($expo - $t) -> bmul($mant); + } + $x -> bneg() if $sign eq '-'; + } + + if ($selfref) { + $self -> {sign} = $x -> {sign}; + $self -> {_m} = $x -> {_m}; + $self -> {_es} = $x -> {_es}; + $self -> {_e} = $x -> {_e}; + } else { + $self = $x; + } + return $self; + } + + croak("The format '$format' is not yet supported."); +} + sub bzero { # create/assign '+0' @@ -3023,7 +3217,7 @@ sub bsqrt { return $x if $x->modify('bsqrt'); - return $x->bnan() if $x->{sign} !~ /^[+]/; # NaN, -inf or < 0 + return $x->bnan() if $x->{sign} !~ /^\+/; # NaN, -inf or < 0 return $x if $x->{sign} eq '+inf'; # sqrt(inf) == inf return $x->round($a, $p, $r) if $x->is_zero() || $x->is_one(); @@ -3783,7 +3977,7 @@ sub mantissa { if ($x->{sign} !~ /^[+-]$/) { my $s = $x->{sign}; - $s =~ s/^[+]//; + $s =~ s/^\+//; return Math::BigInt->new($s, undef, undef); # -inf, +inf => +inf } my $m = Math::BigInt->new($LIB->_str($x->{_m}), undef, undef); @@ -3798,7 +3992,7 @@ sub exponent { if ($x->{sign} !~ /^[+-]$/) { my $s = $x->{sign}; -$s =~ s/^[+-]//; + $s =~ s/^[+-]//; return Math::BigInt->new($s, undef, undef); # -inf, +inf => +inf } Math::BigInt->new($x->{_es} . $LIB->_str($x->{_e}), undef, undef); @@ -3810,9 +4004,9 @@ sub parts { if ($x->{sign} !~ /^[+-]$/) { my $s = $x->{sign}; -$s =~ s/^[+]//; -my $se = $s; -$se =~ s/^[-]//; + $s =~ s/^\+//; + my $se = $s; + $se =~ s/^-//; return ($class->new($s), $class->new($se)); # +inf => inf and -inf, +inf => inf } my $m = Math::BigInt->bzero(); @@ -3981,9 +4175,9 @@ sub bstr { } my $es = '0'; -my $len = 1; -my $cad = 0; -my $dot = '.'; + my $len = 1; + my $cad = 0; + my $dot = '.'; # $x is zero? my $not_zero = !($x->{sign} eq '+' && $LIB->_is_zero($x->{_m})); @@ -4007,8 +4201,8 @@ my $dot = '.'; } elsif ($e > 0) { # expand with zeros $es .= '0' x $e; -$len += $e; -$cad = 0; + $len += $e; + $cad = 0; } } # if not zero @@ -4160,6 +4354,197 @@ sub to_bin { return $x->{sign} eq '-' ? "-$str" : $str; } +sub to_ieee754 { + my $x = shift; + my $format = shift; + my $class = ref $x; + + my $enc; # significand encoding (applies only to decimal) + my $k; # storage width in bits + my $b; # base + + if ($format =~ /^binary(\d+)\z/) { + $k = $1; + $b = 2; + } elsif ($format =~ /^decimal(\d+)(dpd|bcd)?\z/) { + $k = $1; + $b = 10; + $enc = $2 || 'dpd'; # default is dencely-packed decimals (DPD) + } elsif ($format eq 'half') { + $k = 16; + $b = 2; + } elsif ($format eq 'single') { + $k = 32; + $b = 2; + } elsif ($format eq 'double') { + $k = 64; + $b = 2; + } elsif ($format eq 'quadruple') { + $k = 128; + $b = 2; + } elsif ($format eq 'octuple') { + $k = 256; + $b = 2; + } elsif ($format eq 'sexdecuple') { + $k = 512; + $b = 2; + } + + if ($b == 2) { + + # Get the parameters for this format. + + my $p; # precision (in bits) + my $t; # number of bits in significand + my $w; # number of bits in exponent + + if ($k == 16) { # binary16 (half-precision) + $p = 11; + $t = 10; + $w = 5; + } elsif ($k == 32) { # binary32 (single-precision) + $p = 24; + $t = 23; + $w = 8; + } elsif ($k == 64) { # binary64 (double-precision) + $p = 53; + $t = 52; + $w = 11; + } else { # binaryN (quadruple-precition and above) + if ($k < 128 || $k != 32 * sprintf('%.0f', $k / 32)) { + croak "Number of bits must be 16, 32, 64, or >= 128 and", + " a multiple of 32"; + } + $p = $k - sprintf('%.0f', 4 * log($k) / log(2)) + 13; + $t = $p - 1; + $w = $k - $t - 1; + } + + # The maximum exponent, minimum exponent, and exponent bias. + + my $emax = $class -> new(2) -> bpow($w - 1) -> bdec(); + my $emin = 1 - $emax; + my $bias = $emax; + + # Get numerical sign, exponent, and mantissa/significand for bit + # string. + + my $sign = 0; + my $expo; + my $mant; + + if ($x -> is_nan()) { # nan + $sign = 1; + $expo = $emax -> copy() -> binc(); + $mant = $class -> new(2) -> bpow($t - 1); + } elsif ($x -> is_inf()) { # inf + $sign = 1 if $x -> is_neg(); + $expo = $emax -> copy() -> binc(); + $mant = $class -> bzero(); + } elsif ($x -> is_zero()) { # zero + $expo = $emin -> copy() -> bdec(); + $mant = $class -> bzero(); + } else { # normal and subnormal + + $sign = 1 if $x -> is_neg(); + + # Now we need to compute the mantissa and exponent in base $b. + + my $binv = $class -> new("0.5"); + my $b = $class -> new(2); + my $one = $class -> bone(); + + # We start off by initializing the exponent to zero and the + # mantissa to the input value. Then we increase the mantissa and + # decrease the exponent, or vice versa, until the mantissa is in + # the desired range or we hit one of the limits for the exponent. + + $mant = $x -> copy() -> babs(); + + # We need to find the base 2 exponent. First make an estimate of + # the base 2 exponent, before adjusting it below. We could skip + # this estimation and go straight to the while-loops below, but the + # loops are slow, especially when the final exponent is far from + # zero and even more so if the number of digits is large. This + # initial estimation speeds up the computation dramatically. + # + # log2($m * 10**$e) = log10($m + 10**$e) * log(10)/log(2) + # = (log10($m) + $e) * log(10)/log(2) + # = (log($m)/log(10) + $e) * log(10)/log(2) + + my ($m, $e) = $x -> nparts(); + my $ms = $m -> numify(); + my $es = $e -> numify(); + + my $expo_est = (log(abs($ms))/log(10) + $es) * log(10)/log(2); + $expo_est = int($expo_est); + + # Limit the exponent. + + if ($expo_est > $emax) { + $expo_est = $emax; + } elsif ($expo_est < $emin) { + $expo_est = $emin; + } + + # Don't multiply by a number raised to a negative exponent. This + # will cause a division, whose result is truncated to some fixed + # number of digits. Instead, multiply by the inverse number raised + # to a positive exponent. + + $expo = $class -> new($expo_est); + if ($expo_est > 0) { + $mant -> bmul($binv -> copy() -> bpow($expo)); + } elsif ($expo_est < 0) { + my $expo_abs = $expo -> copy() -> bneg(); + $mant -> bmul($b -> copy() -> bpow($expo_abs)); + } + + # Final adjustment. + + while ($mant >= $b && $expo <= $emax) { + $mant -> bmul($binv); + $expo -> binc(); + } + + while ($mant < $one && $expo >= $emin) { + $mant -> bmul($b); + $expo -> bdec(); + } + + # Encode as infinity, normal number or subnormal number? + + if ($expo > $emax) { # overflow => infinity + $expo = $emax -> copy() -> binc(); + $mant = $class -> bzero(); + } elsif ($expo < $emin) { # subnormal number + my $const = $class -> new(2) -> bpow($t - 1); + $mant -> bmul($const); + $mant -> bfround(0); + } else { # normal number + $mant -> bdec(); # remove implicit leading bit + my $const = $class -> new(2) -> bpow($t); + $mant -> bmul($const) -> bfround(0); + } + } + + $expo -> badd($bias); # add bias + + my $signbit = "$sign"; + + my $mantbits = $mant -> to_bin(); + $mantbits = ("0" x ($t - CORE::length($mantbits))) . $mantbits; + + my $expobits = $expo -> to_bin(); + $expobits = ("0" x ($w - CORE::length($expobits))) . $expobits; + + my $bin = $signbit . $expobits . $mantbits; + return pack "B*", $bin; + } + + croak("The format '$format' is not yet supported."); +} + sub as_hex { # return number as hexadecimal string (only for integers defined) @@ -4231,7 +4616,7 @@ sub numify { } # Create a string and let Perl's atoi()/atof() handle the rest. - return 0 + $x -> bsstr(); + return 0 + $x -> bnstr(); } ############################################################################### @@ -4242,7 +4627,7 @@ sub import { my $class = shift; my $l = scalar @_; my $lib = ''; -my @a; + my @a; my $lib_kind = 'try'; $IMPORT=1; for (my $i = 0; $i < $l ; $i++) { @@ -4314,7 +4699,7 @@ sub _len_to_steps { # D = 50 => N => 42, so L = 40 and R = 50 my $l = 40; -my $r = $d; + my $r = $d; # Otherwise this does not work under -Mbignum and we do not yet have "no bignum;" :( $l = $l->numify if ref($l); @@ -4370,7 +4755,6 @@ sub _log { $over->bmul($u); $factor = $class->new(3); $f = $class->new(2); - my $steps = 0; $limit = $class->new("1E-". ($scale-1)); while (3 < 5) { @@ -4717,7 +5101,6 @@ sub _pow { $over = $u->copy(); $limit = $class->new("1E-". ($scale-1)); - #my $steps = 0; while (3 < 5) { # we calculate the next term, and add it to the last # when the next term is below our limit, it won't affect the outcome @@ -4731,8 +5114,6 @@ sub _pow { $factor->binc(); last if $x->{sign} !~ /^[-+]$/; - - #$steps++; } if ($do_invert) { @@ -4795,6 +5176,7 @@ Math::BigFloat - Arbitrary size floating point math package $x = Math::BigFloat->from_oct('0377'); # ditto $x = Math::BigFloat->from_bin('0b1.1001p-4'); # from binary $x = Math::BigFloat->from_bin('0101'); # ditto + $x = Math::BigFloat->from_ieee754($b, "binary64"); # from IEEE-754 bytes $x = Math::BigFloat->bzero(); # create a +0 $x = Math::BigFloat->bone(); # create a +1 $x = Math::BigFloat->bone('-'); # create a -1 @@ -4926,6 +5308,7 @@ Math::BigFloat - Arbitrary size floating point math package $x->as_hex(); # as signed hexadecimal string with prefixed 0x $x->as_bin(); # as signed binary string with prefixed 0b $x->as_oct(); # as signed octal string with prefixed 0 + $x->to_ieee754($format); # to bytes encoded according to IEEE 754-2008 # Other conversion methods @@ -5106,6 +5489,17 @@ using decimal digits. If called as an instance method, the value is assigned to the invocand. +=item from_ieee754() + +Interpret the input as a value encoded as described in IEEE754-2008. The input +can be given as a byte string, hex string or binary string. The input is +assumed to be in big-endian byte-order. + + # both $dbl and $mbf are 3.141592... + $bytes = "\x40\x09\x21\xfb\x54\x44\x2d\x18"; + $dbl = unpack "d>", $bytes; + $mbf = Math::BigFloat -> from_ieee754($bytes, "binary64"); + =item bpi() print Math::BigFloat->bpi(100), "\n"; @@ -5225,6 +5619,29 @@ Cnew()> can parse to create an object. In Math::BigFloat, C has the same effect as C. +=item to_ieee754() + +Encodes the invocand as a byte string in the given format as specified in IEEE +754-2008. Note that the encoded value is the nearest possible representation of +the value. This value might not be exactly the same as the value in the +invocand. + + # $x = 3.1415926535897932385 + $x = Math::BigFloat -> bpi(30); + + $b = $x -> to_ieee754("binary64"); # encode as 8 bytes + $h = unpack "H*", $b; # "400921fb54442d18" + + # 3.141592653589793115997963... + $y = Math::BigFloat -> from_ieee754($h, "binary64"); + +All binary formats in IEEE 754-2008 are accepted. For convenience, som aliases +are recognized: "half" for "binary16", "single" for "binary32", "double" for +"binary64", "quadruple" for "binary128", "octuple" for "binary256", and +"sexdecuple" for "binary512". + +See also L. + =back =head2 ACCURACY AND PRECISION @@ -5552,11 +5969,11 @@ L =item * CPAN Ratings -L +L -=item * Search CPAN +=item * MetaCPAN -L +L =item * CPAN Testers Matrix diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigInt.pm b/gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigInt.pm index a443cd4a5d4..185f8028350 100644 --- a/gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigInt.pm +++ b/gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigInt.pm @@ -1,3 +1,5 @@ +# -*- coding: utf-8-unix -*- + package Math::BigInt; # @@ -20,14 +22,12 @@ use warnings; use Carp qw< carp croak >; -our $VERSION = '1.999816'; +our $VERSION = '1.999818'; require Exporter; our @ISA = qw(Exporter); our @EXPORT_OK = qw(objectify bgcd blcm); -my $class = "Math::BigInt"; - # Inside overload, the first arg is always an object. If the original code had # it reversed (like $x = 2 * $y), then the third parameter is true. # In some cases (like add, $x = $x + 2 is the same as $x = 2 + $x) this makes @@ -232,9 +232,7 @@ my $LIB = 'Math::BigInt::Calc'; # module to do the low level math # default is Calc.pm my $IMPORT = 0; # was import() called yet? # used to make require work -my %WARN; # warn only once for low-level libs my %CALLBACKS; # callbacks to notify on lib loads -my $EMU_LIB = 'Math/BigInt/CalcEmu.pm'; # emulate low-level math ############################################################################## # the old code had $rnd_mode, so we need to support it, too @@ -1135,7 +1133,7 @@ sub bpi { if (@_ == 1) { # called like Math::BigInt::bpi(10); $n = $self; - $self = $class; + $self = __PACKAGE__; } $self = ref($self) if ref($self); @@ -1234,6 +1232,24 @@ sub is_negative { $x->{sign} =~ /^-/ ? 1 : 0; # -inf is negative, but NaN is not } +sub is_non_negative { + # Return true if argument is non-negative (>= 0). + my ($class, $x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_); + + return 1 if $x->{sign} =~ /^\+/; + return 1 if $x -> is_zero(); + return 0; +} + +sub is_non_positive { + # Return true if argument is non-positive (<= 0). + my ($class, $x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_); + + return 1 if $x->{sign} =~ /^\-/; + return 1 if $x -> is_zero(); + return 0; +} + sub is_odd { # return true when arg (BINT or num_str) is odd, false for even my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_); @@ -2354,7 +2370,7 @@ sub bmodpow { $num->{value} = $value; $num->{sign} = $sign; - return $num; + return $num -> round(@r); } sub bpow { @@ -2401,21 +2417,14 @@ sub bpow { $r[3] = $y; # no push! - # cases 0 ** Y, X ** 0, X ** 1, 1 ** Y are handled by Calc or Emu - - my $new_sign = '+'; - $new_sign = $y->is_odd() ? '-' : '+' if ($x->{sign} ne '+'); + # 0 ** -y => ( 1 / (0 ** y)) => 1 / 0 => +inf + return $x->binf() if $y->is_negative() && $x->is_zero(); - # 0 ** -7 => ( 1 / (0 ** 7)) => 1 / 0 => +inf - return $x->binf() - if $y->{sign} eq '-' && $x->{sign} eq '+' && $LIB->_is_zero($x->{value}); # 1 ** -y => 1 / (1 ** |y|) - # so do test for negative $y after above's clause - return $x->bnan() if $y->{sign} eq '-' && !$LIB->_is_one($x->{value}); + return $x->bzero() if $y->is_negative() && !$LIB->_is_one($x->{value}); $x->{value} = $LIB->_pow($x->{value}, $y->{value}); - $x->{sign} = $new_sign; - $x->{sign} = '+' if $LIB->_is_zero($y->{value}); + $x->{sign} = $x->is_negative() && $y->is_odd() ? '-' : '+'; $x->round(@r); } @@ -2483,7 +2492,7 @@ sub blog { return $x; } - my ($rc, $exact) = $LIB->_log_int($x->{value}, $base->{value}); + my ($rc) = $LIB->_log_int($x->{value}, $base->{value}); return $x->bnan() unless defined $rc; # not possible to take log? $x->{value} = $rc; $x->round(@r); @@ -2602,6 +2611,126 @@ sub bnok { $n->round(@r); } +sub buparrow { + my $a = shift; + my $y = $a -> uparrow(@_); + $a -> {value} = $y -> {value}; + return $a; +} + +sub uparrow { + # Knuth's up-arrow notation buparrow(a, n, b) + # + # The following is a simple, recursive implementation of the up-arrow + # notation, just to show the idea. Such implementations cause "Deep + # recursion on subroutine ..." warnings, so we use a faster, non-recursive + # algorithm below with @_ as a stack. + # + # sub buparrow { + # my ($a, $n, $b) = @_; + # return $a ** $b if $n == 1; + # return $a * $b if $n == 0; + # return 1 if $b == 0; + # return buparrow($a, $n - 1, buparrow($a, $n, $b - 1)); + # } + + my ($a, $b, $n) = @_; + my $class = ref $a; + croak("a must be non-negative") if $a < 0; + croak("n must be non-negative") if $n < 0; + croak("b must be non-negative") if $b < 0; + + while (@_ >= 3) { + + # return $a ** $b if $n == 1; + + if ($_[-2] == 1) { + my ($a, $n, $b) = splice @_, -3; + push @_, $a ** $b; + next; + } + + # return $a * $b if $n == 0; + + if ($_[-2] == 0) { + my ($a, $n, $b) = splice @_, -3; + push @_, $a * $b; + next; + } + + # return 1 if $b == 0; + + if ($_[-1] == 0) { + splice @_, -3; + push @_, $class -> bone(); + next; + } + + # return buparrow($a, $n - 1, buparrow($a, $n, $b - 1)); + + my ($a, $n, $b) = splice @_, -3; + push @_, ($a, $n - 1, + $a, $n, $b - 1); + + } + + pop @_; +} + +sub backermann { + my $m = shift; + my $y = $m -> ackermann(@_); + $m -> {value} = $y -> {value}; + return $m; +} + +sub ackermann { + # Ackermann's function ackermann(m, n) + # + # The following is a simple, recursive implementation of the ackermann + # function, just to show the idea. Such implementations cause "Deep + # recursion on subroutine ..." warnings, so we use a faster, non-recursive + # algorithm below with @_ as a stack. + # + # sub ackermann { + # my ($m, $n) = @_; + # return $n + 1 if $m == 0; + # return ackermann($m - 1, 1) if $m > 0 && $n == 0; + # return ackermann($m - 1, ackermann($m, $n - 1) if $m > 0 && $n > 0; + # } + + my ($m, $n) = @_; + my $class = ref $m; + croak("m must be non-negative") if $m < 0; + croak("n must be non-negative") if $n < 0; + + my $two = $class -> new("2"); + my $three = $class -> new("3"); + my $thirteen = $class -> new("13"); + + $n = pop; + $n = $class -> new($n) unless ref($n); + while (@_) { + my $m = pop; + if ($m > $three) { + push @_, (--$m) x $n; + while (--$m >= $three) { + push @_, $m; + } + $n = $thirteen; + } elsif ($m == $three) { + $n = $class -> bone() -> blsft($n + $three) -> bsub($three); + } elsif ($m == $two) { + $n -> bmul($two) -> badd($three); + } elsif ($m >= 0) { + $n -> badd($m) -> binc(); + } else { + die "negative m!"; + } + } + $n; +} + sub bsin { # Calculate sinus(x) to N digits. Unless upgrading is in effect, returns the # result truncated to an integer. @@ -2654,9 +2783,9 @@ sub batan { return $upgrade->new($x)->batan(@r) if defined $upgrade; # calculate the result and truncate it to integer - my $t = Math::BigFloat->new($x)->batan(@r); + my $tmp = Math::BigFloat->new($x)->batan(@r); - $x->{value} = $LIB->_new($x->as_int()->bstr()); + $x->{value} = $LIB->_new($tmp->as_int()->bstr()); $x->round(@r); } @@ -2902,12 +3031,19 @@ sub blsft { # (BINT or num_str, BINT or num_str) return BINT # compute x << y, base n, y >= 0 - # set up parameters - my ($class, $x, $y, $b, @r) = (ref($_[0]), @_); + my ($class, $x, $y, $b, @r); - # objectify is costly, so avoid it - if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) { - ($class, $x, $y, $b, @r) = objectify(2, @_); + # Objectify the base only when it is defined, since an undefined base, as + # in $x->blsft(3) or $x->blog(3, undef) means use the default base 2. + + if (!ref($_[0]) && $_[0] =~ /^[A-Za-z]|::/) { + # E.g., Math::BigInt->blog(256, 5, 2) + ($class, $x, $y, $b, @r) = + defined $_[3] ? objectify(3, @_) : objectify(2, @_); + } else { + # E.g., Math::BigInt::blog(256, 5, 2) or $x->blog(5, 2) + ($class, $x, $y, $b, @r) = + defined $_[2] ? objectify(3, @_) : objectify(2, @_); } return $x if $x -> modify('blsft'); @@ -2915,7 +3051,15 @@ sub blsft { $y -> {sign} !~ /^[+-]$/); return $x -> round(@r) if $y -> is_zero(); - $b = 2 if !defined $b; + $b = defined($b) ? $b -> numify() : 2; + + # While some of the libraries support an arbitrarily large base, not all of + # them do, so rather than returning an incorrect result in those cases, + # disallow bases that don't work with all libraries. + + my $uintmax = ~0; + croak("Base is too large.") if $b > $uintmax; + return $x -> bnan() if $b <= 0 || $y -> {sign} eq '-'; $x -> {value} = $LIB -> _lsft($x -> {value}, $y -> {value}, $b); @@ -3146,7 +3290,7 @@ sub bround { # do not return $x->bnorm(), but $x my $x = shift; - $x = $class->new($x) unless ref $x; + $x = __PACKAGE__->new($x) unless ref $x; my ($scale, $mode) = $x->_scale_a(@_); return $x if !defined $scale || $x->modify('bround'); # no-op @@ -3264,7 +3408,7 @@ sub fround { # Exists to make life easier for switch between MBF and MBI (should we # autoload fxxx() like MBF does for bxxx()?) my $x = shift; - $x = $class->new($x) unless ref $x; + $x = __PACKAGE__->new($x) unless ref $x; $x->bround(@_); } @@ -3356,6 +3500,31 @@ sub digit { $LIB->_digit($x->{value}, $n || 0); } +sub bdigitsum { + # like digitsum(), but assigns the result to the invocand + my $x = shift; + + return $x if $x -> is_nan(); + return $x -> bnan() if $x -> is_inf(); + + $x -> {value} = $LIB -> _digitsum($x -> {value}); + $x -> {sign} = '+'; + return $x; +} + +sub digitsum { + # compute sum of decimal digits and return it + my $x = shift; + my $class = ref $x; + + return $class -> bnan() if $x -> is_nan(); + return $class -> bnan() if $x -> is_inf(); + + my $y = $class -> bzero(); + $y -> {value} = $LIB -> _digitsum($x -> {value}); + return $y; +} + sub length { my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_); @@ -3652,7 +3821,7 @@ sub bdstr { sub to_hex { # return as hex string, with prefixed 0x my $x = shift; - $x = $class->new($x) if !ref($x); + $x = __PACKAGE__->new($x) if !ref($x); return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc @@ -3663,7 +3832,7 @@ sub to_hex { sub to_oct { # return as octal string, with prefixed 0 my $x = shift; - $x = $class->new($x) if !ref($x); + $x = __PACKAGE__->new($x) if !ref($x); return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc @@ -3674,7 +3843,7 @@ sub to_oct { sub to_bin { # return as binary string, with prefixed 0b my $x = shift; - $x = $class->new($x) if !ref($x); + $x = __PACKAGE__->new($x) if !ref($x); return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc @@ -3685,7 +3854,7 @@ sub to_bin { sub to_bytes { # return a byte string my $x = shift; - $x = $class->new($x) if !ref($x); + $x = __PACKAGE__->new($x) if !ref($x); croak("to_bytes() requires a finite, non-negative integer") if $x -> is_neg() || ! $x -> is_int(); @@ -3699,13 +3868,13 @@ sub to_bytes { sub to_base { # return a base anything string my $x = shift; - $x = $class->new($x) if !ref($x); + $x = __PACKAGE__->new($x) if !ref($x); croak("the value to convert must be a finite, non-negative integer") if $x -> is_neg() || !$x -> is_int(); my $base = shift; - $base = $class->new($base) unless ref($base); + $base = __PACKAGE__->new($base) unless ref($base); croak("the base must be a finite integer >= 2") if $base < 2 || ! $base -> is_int(); @@ -3729,7 +3898,7 @@ sub to_base { sub as_hex { # return as hex string, with prefixed 0x my $x = shift; - $x = $class->new($x) if !ref($x); + $x = __PACKAGE__->new($x) if !ref($x); return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc @@ -3740,7 +3909,7 @@ sub as_hex { sub as_oct { # return as octal string, with prefixed 0 my $x = shift; - $x = $class->new($x) if !ref($x); + $x = __PACKAGE__->new($x) if !ref($x); return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc @@ -3751,7 +3920,7 @@ sub as_oct { sub as_bin { # return as binary string, with prefixed 0b my $x = shift; - $x = $class->new($x) if !ref($x); + $x = __PACKAGE__->new($x) if !ref($x); return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc @@ -3768,7 +3937,7 @@ sub as_bin { sub numify { # Make a Perl scalar number from a Math::BigInt object. my $x = shift; - $x = $class->new($x) unless ref $x; + $x = __PACKAGE__->new($x) unless ref $x; if ($x -> is_nan()) { require Math::Complex; @@ -3817,7 +3986,7 @@ sub objectify { # Check the context. unless (wantarray) { - croak("${class}::objectify() needs list context"); + croak(__PACKAGE__ . "::objectify() needs list context"); } # Get the number of arguments to objectify. @@ -3935,10 +4104,9 @@ sub objectify { sub import { my $class = shift; $IMPORT++; # remember we did import() - my @a; - my $l = scalar @_; + my @a; # unrecognized arguments my $warn_or_die = 0; # 0 - no warn, 1 - warn, 2 - die - for (my $i = 0; $i < $l ; $i++) { + for (my $i = 0; $i <= $#_ ; $i++) { if ($_[$i] eq ':constant') { # this causes overlord er load to step in overload::constant @@ -3951,7 +4119,9 @@ sub import { } elsif ($_[$i] =~ /^(lib|try|only)\z/) { # this causes a different low lib to take care... $LIB = $_[$i+1] || ''; - # lib => 1 (warn on fallback), try => 0 (no warn), only => 2 (die on fallback) + # try => 0 (no warn) + # lib => 1 (warn on fallback) + # only => 2 (die on fallback) $warn_or_die = 1 if $_[$i] eq 'lib'; $warn_or_die = 2 if $_[$i] eq 'only'; $i++; @@ -3968,77 +4138,34 @@ sub import { # try to load core math lib my @c = split /\s*,\s*/, $LIB; foreach (@c) { - $_ =~ tr/a-zA-Z0-9://cd; # limit to sane characters + tr/a-zA-Z0-9://cd; # limit to sane characters } push @c, \'Calc' # if all fail, try these if $warn_or_die < 2; # but not for "only" - $LIB = ''; # signal error + $LIB = ''; # signal error foreach my $l (@c) { # fallback libraries are "marked" as \'string', extract string if nec. my $lib = $l; $lib = $$l if ref($l); - next if ($lib || '') eq ''; + next unless defined($lib) && CORE::length($lib); $lib = 'Math::BigInt::'.$lib if $lib !~ /^Math::BigInt/i; $lib =~ s/\.pm$//; - if ($] < 5.006) { - # Perl < 5.6.0 dies with "out of memory!" when eval("") and ':constant' is - # used in the same script, or eval("") inside import(). - my @parts = split /::/, $lib; # Math::BigInt => Math BigInt - my $file = pop @parts; - $file .= '.pm'; # BigInt => BigInt.pm - require File::Spec; - $file = File::Spec->catfile (@parts, $file); - eval { - require "$file"; - $lib->import(@c); - } - } else { - eval "use $lib qw/@c/;"; - } + my @parts = split /::/, $lib; # Math::BigInt => Math BigInt + $parts[-1] .= '.pm'; # BigInt => BigInt.pm + require File::Spec; + my $file = File::Spec->catfile(@parts); + eval { require $file; }; if ($@ eq '') { - my $ok = 1; - # loaded it ok, see if the api_version() is high enough - if ($lib->can('api_version') && $lib->api_version() >= 1.0) { - $ok = 0; - # api_version matches, check if it really provides anything we need - for my $method (qw/ - one two ten - str num - add mul div sub dec inc - acmp len digit is_one is_zero is_even is_odd - is_two is_ten - zeros new copy check - from_hex from_oct from_bin as_hex as_bin as_oct - rsft lsft xor and or - mod sqrt root fac pow modinv modpow log_int gcd - /) { - if (!$lib->can("_$method")) { - if (($WARN{$lib} || 0) < 2) { - carp("$lib is missing method '_$method'"); - $WARN{$lib} = 1; # still warn about the lib - } - $ok++; - last; - } - } - } - if ($ok == 0) { - $LIB = $lib; - if ($warn_or_die > 0 && ref($l)) { - my $msg = "Math::BigInt: couldn't load specified" - . " math lib(s), fallback to $lib"; - carp($msg) if $warn_or_die == 1; - croak($msg) if $warn_or_die == 2; - } - last; # found a usable one, break - } else { - if (($WARN{$lib} || 0) < 2) { - my $ver = eval "\$$lib\::VERSION" || 'unknown'; - carp("Cannot load outdated $lib v$ver, please upgrade"); - $WARN{$lib} = 2; # never warn again - } + $lib->import(); + $LIB = $lib; + if ($warn_or_die > 0 && ref($l)) { + my $msg = "Math::BigInt: couldn't load specified" + . " math lib(s), fallback to $lib"; + carp($msg) if $warn_or_die == 1; + croak($msg) if $warn_or_die == 2; } + last; # found a usable one, break } } if ($LIB eq '') { @@ -4210,7 +4337,7 @@ sub _split { sub _trailing_zeros { # return the amount of trailing zeros in $x (as scalar) my $x = shift; - $x = $class->new($x) unless ref $x; + $x = __PACKAGE__->new($x) unless ref $x; return 0 if $x->{sign} !~ /^[+-]$/; # NaN, inf, -inf etc @@ -4423,6 +4550,8 @@ Math::BigInt - Arbitrary size integer/float math package $x->blog($base); # logarithm of $x to base $base (e.g., base 2) $x->bexp(); # calculate e ** $x where e is Euler's number $x->bnok($y); # x over y (binomial coefficient n over k) + $x->buparrow($n, $y); # Knuth's up-arrow notation + $x->backermann($y); # the Ackermann function $x->bsin(); # sine $x->bcos(); # cosine $x->batan(); # inverse tangent @@ -4987,6 +5116,18 @@ neither positive nor negative. Returns true if the invocand is negative and false otherwise. A C is neither positive nor negative. +=item is_non_positive() + + $x->is_non_positive(); # true if <= 0 + +Returns true if the invocand is negative or zero. + +=item is_non_negative() + + $x->is_non_negative(); # true if >= 0 + +Returns true if the invocand is positive or zero. + =item is_odd() $x->is_odd(); # true if odd, false for even @@ -5292,6 +5433,38 @@ pseudo-code: The behaviour is identical to the behaviour of the Maple and Mathematica function for negative integers n, k. +=item buparrow() + +=item uparrow() + + $a -> buparrow($n, $b); # modifies $a + $x = $a -> uparrow($n, $b); # does not modify $a + +This method implements Knuth's up-arrow notation, where $n is a non-negative +integer representing the number of up-arrows. $n = 0 gives multiplication, $n = +1 gives exponentiation, $n = 2 gives tetration, $n = 3 gives hexation etc. The +following illustrates the relation between the first values of $n. + +See L. + +=item backermann() + +=item ackermann() + + $m -> backermann($n); # modifies $a + $x = $m -> ackermann($n); # does not modify $a + +This method implements the Ackermann function: + + / n + 1 if m = 0 + A(m, n) = | A(m-1, 1) if m > 0 and n = 0 + \ A(m-1, A(m, n-1)) if m > 0 and n > 0 + +Its value grows rapidly, even for small inputs. For example, A(4, 2) is an +integer of 19729 decimal digits. + +See https://en.wikipedia.org/wiki/Ackermann_function + =item bsin() my $x = Math::BigInt->new(1); @@ -5590,6 +5763,18 @@ If you want $x to have a certain sign, use one of the following methods: If C<$n> is negative, returns the digit counting from left. +=item digitsum() + + $x->digitsum(); + +Computes the sum of the base 10 digits and returns it. + +=item bdigitsum() + + $x->bdigitsum(); + +Computes the sum of the base 10 digits and assigns the result to the invocand. + =item length() $x->length(); @@ -6696,11 +6881,11 @@ L =item * CPAN Ratings -L +L -=item * Search CPAN +=item * MetaCPAN -L +L =item * CPAN Testers Matrix diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigInt/Calc.pm b/gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigInt/Calc.pm index 2bb06a0976b..cd8f1ee44e6 100644 --- a/gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigInt/Calc.pm +++ b/gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigInt/Calc.pm @@ -7,7 +7,7 @@ use warnings; use Carp qw< carp croak >; use Math::BigInt::Lib; -our $VERSION = '1.999816'; +our $VERSION = '1.999818'; our @ISA = ('Math::BigInt::Lib'); @@ -35,9 +35,6 @@ our @ISA = ('Math::BigInt::Lib'); ############################################################################## # global constants, flags and accessory -# announce that we are compatible with MBI v1.83 and up -sub api_version () { 2; } - # constants for easier life my ($BASE, $BASE_LEN, $RBASE, $MAX_VAL); my ($AND_BITS, $XOR_BITS, $OR_BITS); @@ -50,9 +47,7 @@ sub _base_len { my ($class, $b, $int) = @_; if (defined $b) { - # avoid redefinitions - undef &_mul; - undef &_div; + no warnings "redefine"; if ($] >= 5.008 && $int && $b > 7) { $BASE_LEN = $b; @@ -403,13 +398,14 @@ sub _mul_use_mul { my ($c, $xv, $yv) = @_; if (@$yv == 1) { - # shortcut for two very short numbers (improved by Nathan Zook) - # works also if xv and yv are the same reference, and handles also $x == 0 + # shortcut for two very short numbers (improved by Nathan Zook) works + # also if xv and yv are the same reference, and handles also $x == 0 if (@$xv == 1) { if (($xv->[0] *= $yv->[0]) >= $BASE) { - $xv->[0] = $xv->[0] - ($xv->[1] = int($xv->[0] * $RBASE)) * $BASE; + my $rem = $xv->[0] % $BASE; + $xv->[1] = ($xv->[0] - $rem) * $RBASE; + $xv->[0] = $rem; } - ; return $xv; } # $x * 0 => 0 @@ -417,56 +413,44 @@ sub _mul_use_mul { @$xv = (0); return $xv; } + # multiply a large number a by a single element one, so speed up my $y = $yv->[0]; my $car = 0; + my $rem; foreach my $i (@$xv) { $i = $i * $y + $car; - $car = int($i * $RBASE); - $i -= $car * $BASE; + $rem = $i % $BASE; + $car = ($i - $rem) * $RBASE; + $i = $rem; } push @$xv, $car if $car != 0; return $xv; } + # shortcut for result $x == 0 => result = 0 return $xv if @$xv == 1 && $xv->[0] == 0; # since multiplying $x with $x fails, make copy in this case - $yv = [ @$xv ] if $xv == $yv; # same references? + $yv = $c->_copy($xv) if $xv == $yv; # same references? my @prod = (); - my ($prod, $car, $cty, $xi, $yi); - + my ($prod, $rem, $car, $cty, $xi, $yi); for $xi (@$xv) { $car = 0; $cty = 0; - - # slow variant - # for $yi (@$yv) - # { - # $prod = $xi * $yi + ($prod[$cty] || 0) + $car; - # $prod[$cty++] = - # $prod - ($car = int($prod * RBASE)) * $BASE; # see USE_MUL - # } - # $prod[$cty] += $car if $car; # need really to check for 0? - # $xi = shift @prod; - - # faster variant # looping through this if $xi == 0 is silly - so optimize it away! - $xi = (shift @prod || 0), next if $xi == 0; + $xi = (shift(@prod) || 0), next if $xi == 0; for $yi (@$yv) { $prod = $xi * $yi + ($prod[$cty] || 0) + $car; - ## this is actually a tad slower - ## $prod = $prod[$cty]; $prod += ($car + $xi * $yi); # no ||0 here - $prod[$cty++] = - $prod - ($car = int($prod * $RBASE)) * $BASE; # see USE_MUL + $rem = $prod % $BASE; + $car = int(($prod - $rem) * $RBASE); + $prod[$cty++] = $rem; } - $prod[$cty] += $car if $car; # need really to check for 0? - $xi = shift @prod || 0; # || 0 makes v5.005_3 happy + $prod[$cty] += $car if $car; # need really to check for 0? + $xi = shift(@prod) || 0; # || 0 makes v5.005_3 happy } push @$xv, @prod; - # can't have leading zeros - # __strip_zeros($xv); $xv; } @@ -478,11 +462,11 @@ sub _mul_use_div_64 { my ($c, $xv, $yv) = @_; use integer; + if (@$yv == 1) { - # shortcut for two small numbers, also handles $x == 0 + # shortcut for two very short numbers (improved by Nathan Zook) works + # also if xv and yv are the same reference, and handles also $x == 0 if (@$xv == 1) { - # shortcut for two very short numbers (improved by Nathan Zook) - # works also if xv and yv are the same reference, and handles also $x == 0 if (($xv->[0] *= $yv->[0]) >= $BASE) { $xv->[0] = $xv->[0] - ($xv->[1] = $xv->[0] / $BASE) * $BASE; @@ -494,6 +478,7 @@ sub _mul_use_div_64 { @$xv = (0); return $xv; } + # multiply a large number a by a single element one, so speed up my $y = $yv->[0]; my $car = 0; @@ -505,11 +490,12 @@ sub _mul_use_div_64 { push @$xv, $car if $car != 0; return $xv; } + # shortcut for result $x == 0 => result = 0 - return $xv if ( ((@$xv == 1) && ($xv->[0] == 0)) ); + return $xv if @$xv == 1 && $xv->[0] == 0; # since multiplying $x with $x fails, make copy in this case - $yv = $c->_copy($xv) if $xv == $yv; # same references? + $yv = $c->_copy($xv) if $xv == $yv; # same references? my @prod = (); my ($prod, $car, $cty, $xi, $yi); @@ -517,13 +503,13 @@ sub _mul_use_div_64 { $car = 0; $cty = 0; # looping through this if $xi == 0 is silly - so optimize it away! - $xi = (shift @prod || 0), next if $xi == 0; + $xi = (shift(@prod) || 0), next if $xi == 0; for $yi (@$yv) { $prod = $xi * $yi + ($prod[$cty] || 0) + $car; $prod[$cty++] = $prod - ($car = $prod / $BASE) * $BASE; } - $prod[$cty] += $car if $car; # need really to check for 0? - $xi = shift @prod || 0; # || 0 makes v5.005_3 happy + $prod[$cty] += $car if $car; # need really to check for 0? + $xi = shift(@prod) || 0; # || 0 makes v5.005_3 happy } push @$xv, @prod; $xv; @@ -536,15 +522,14 @@ sub _mul_use_div { my ($c, $xv, $yv) = @_; if (@$yv == 1) { - # shortcut for two small numbers, also handles $x == 0 + # shortcut for two very short numbers (improved by Nathan Zook) works + # also if xv and yv are the same reference, and handles also $x == 0 if (@$xv == 1) { - # shortcut for two very short numbers (improved by Nathan Zook) - # works also if xv and yv are the same reference, and handles also $x == 0 if (($xv->[0] *= $yv->[0]) >= $BASE) { - $xv->[0] = - $xv->[0] - ($xv->[1] = int($xv->[0] / $BASE)) * $BASE; + my $rem = $xv->[0] % $BASE; + $xv->[1] = ($xv->[0] - $rem) / $BASE; + $xv->[0] = $rem; } - ; return $xv; } # $x * 0 => 0 @@ -552,42 +537,44 @@ sub _mul_use_div { @$xv = (0); return $xv; } + # multiply a large number a by a single element one, so speed up my $y = $yv->[0]; my $car = 0; + my $rem; foreach my $i (@$xv) { $i = $i * $y + $car; - $car = int($i / $BASE); - $i -= $car * $BASE; - # This (together with use integer;) does not work on 32-bit Perls - #$i = $i * $y + $car; $i -= ($car = $i / $BASE) * $BASE; + $rem = $i % $BASE; + $car = ($i - $rem) / $BASE; + $i = $rem; } push @$xv, $car if $car != 0; return $xv; } + # shortcut for result $x == 0 => result = 0 - return $xv if ( ((@$xv == 1) && ($xv->[0] == 0)) ); + return $xv if @$xv == 1 && $xv->[0] == 0; # since multiplying $x with $x fails, make copy in this case - $yv = $c->_copy($xv) if $xv == $yv; # same references? + $yv = $c->_copy($xv) if $xv == $yv; # same references? my @prod = (); - my ($prod, $car, $cty, $xi, $yi); + my ($prod, $rem, $car, $cty, $xi, $yi); for $xi (@$xv) { $car = 0; $cty = 0; # looping through this if $xi == 0 is silly - so optimize it away! - $xi = (shift @prod || 0), next if $xi == 0; + $xi = (shift(@prod) || 0), next if $xi == 0; for $yi (@$yv) { $prod = $xi * $yi + ($prod[$cty] || 0) + $car; - $prod[$cty++] = $prod - ($car = int($prod / $BASE)) * $BASE; + $rem = $prod % $BASE; + $car = ($prod - $rem) / $BASE; + $prod[$cty++] = $rem; } - $prod[$cty] += $car if $car; # need really to check for 0? - $xi = shift @prod || 0; # || 0 makes v5.005_3 happy + $prod[$cty] += $car if $car; # need really to check for 0? + $xi = shift(@prod) || 0; # || 0 makes v5.005_3 happy } push @$xv, @prod; - # can't have leading zeros - # __strip_zeros($xv); $xv; } @@ -595,28 +582,19 @@ sub _div_use_mul { # ref to array, ref to array, modify first array and return remainder if # in list context - # see comments in _div_use_div() for more explanations - my ($c, $x, $yorg) = @_; # the general div algorithm here is about O(N*N) and thus quite slow, so # we first check for some special cases and use shortcuts to handle them. - # This works, because we store the numbers in a chunked format where each - # element contains 5..7 digits (depending on system). - # if both numbers have only one element: if (@$x == 1 && @$yorg == 1) { # shortcut, $yorg and $x are two small numbers - if (wantarray) { - my $rem = [ $x->[0] % $yorg->[0] ]; - bless $rem, $c; - $x->[0] = int($x->[0] / $yorg->[0]); - return ($x, $rem); - } else { - $x->[0] = int($x->[0] / $yorg->[0]); - return $x; - } + my $rem = [ $x->[0] % $yorg->[0] ]; + bless $rem, $c; + $x->[0] = ($x->[0] - $rem->[0]) / $yorg->[0]; + return ($x, $rem) if wantarray; + return $x; } # if x has more than one, but y has only one element: @@ -631,120 +609,120 @@ sub _div_use_mul { my $b; while ($j-- > 0) { $b = $r * $BASE + $x->[$j]; - $x->[$j] = int($b/$y); $r = $b % $y; + $x->[$j] = ($b - $r) / $y; } - pop @$x if @$x > 1 && $x->[-1] == 0; # splice up a leading zero + pop(@$x) if @$x > 1 && $x->[-1] == 0; # remove any trailing zero return ($x, $rem) if wantarray; return $x; } # now x and y have more than one element - # check whether y has more elements than x, if yet, the result will be 0 + # check whether y has more elements than x, if so, the result is 0 if (@$yorg > @$x) { my $rem; - $rem = $c->_copy($x) if wantarray; # make copy - @$x = 0; # set to 0 - return ($x, $rem) if wantarray; # including remainder? - return $x; # only x, which is [0] now + $rem = $c->_copy($x) if wantarray; # make copy + @$x = 0; # set to 0 + return ($x, $rem) if wantarray; # including remainder? + return $x; # only x, which is [0] now } + # check whether the numbers have the same number of elements, in that case # the result will fit into one element and can be computed efficiently if (@$yorg == @$x) { + my $cmp = 0; + for (my $j = $#$x ; $j >= 0 ; --$j) { + last if $cmp = $x->[$j] - $yorg->[$j]; + } - # if $yorg has more digits than $x (it's leading element is longer than - # the one from $x), the result will also be 0: - if (length(int($yorg->[-1])) > length(int($x->[-1]))) { - my $rem = $c->_copy($x) if wantarray; # make copy - @$x = 0; # set to 0 - return ($x, $rem) if wantarray; # including remainder? + if ($cmp == 0) { # x = y + @$x = 1; + return $x, $c->_zero() if wantarray; return $x; } - # now calculate $x / $yorg - if (length(int($yorg->[-1])) == length(int($x->[-1]))) { - # same length, so make full compare - my $a = 0; - my $j = @$x - 1; - # manual way (abort if unequal, good for early ne) - while ($j >= 0) { - last if ($a = $x->[$j] - $yorg->[$j]); - $j--; - } - # $a contains the result of the compare between X and Y - # a < 0: x < y, a == 0: x == y, a > 0: x > y - if ($a <= 0) { - # a = 0 => x == y => rem 0 - # a < 0 => x < y => rem = x - my $rem = $a == 0 ? $c->_zero() : $c->_copy($x); - @$x = 0; # if $a < 0 - $x->[0] = 1 if $a == 0; # $x == $y - return ($x, $rem) if wantarray; - return $x; + if ($cmp < 0) { # x < y + if (wantarray) { + my $rem = $c->_copy($x); + @$x = 0; + return $x, $rem; } - # $x >= $y, so proceed normally + @$x = 0; + return $x; } } # all other cases: - my $y = $c->_copy($yorg); # always make copy to preserve + my $y = $c->_copy($yorg); # always make copy to preserve - my ($car, $bar, $prd, $dd, $xi, $yi, @q, $v2, $v1, $tmp, $q, $u2, $u1, $u0); - - $car = $bar = $prd = 0; - if (($dd = int($BASE / ($y->[-1] + 1))) != 1) { - for $xi (@$x) { + my $tmp = $y->[-1] + 1; + my $rem = $BASE % $tmp; + my $dd = ($BASE - $rem) / $tmp; + if ($dd != 1) { + my $car = 0; + for my $xi (@$x) { $xi = $xi * $dd + $car; - $xi -= ($car = int($xi * $RBASE)) * $BASE; # see USE_MUL + $xi -= ($car = int($xi * $RBASE)) * $BASE; # see USE_MUL } push(@$x, $car); $car = 0; - for $yi (@$y) { + for my $yi (@$y) { $yi = $yi * $dd + $car; - $yi -= ($car = int($yi * $RBASE)) * $BASE; # see USE_MUL + $yi -= ($car = int($yi * $RBASE)) * $BASE; # see USE_MUL } } else { push(@$x, 0); } - @q = (); - ($v2, $v1) = @$y[-2, -1]; + + # @q will accumulate the final result, $q contains the current computed + # part of the final result + + my @q = (); + my ($v2, $v1) = @$y[-2, -1]; $v2 = 0 unless $v2; while ($#$x > $#$y) { - ($u2, $u1, $u0) = @$x[-3 .. -1]; + my ($u2, $u1, $u0) = @$x[-3 .. -1]; $u2 = 0 unless $u2; #warn "oups v1 is 0, u0: $u0 $y->[-2] $y->[-1] l ",scalar @$y,"\n" # if $v1 == 0; - $q = (($u0 == $v1) ? $MAX_VAL : int(($u0 * $BASE + $u1) / $v1)); - --$q while ($v2 * $q > ($u0 * $BASE + $u1 - $q * $v1) * $BASE + $u2); + my $tmp = $u0 * $BASE + $u1; + my $rem = $tmp % $v1; + my $q = $u0 == $v1 ? $MAX_VAL : (($tmp - $rem) / $v1); + --$q while $v2 * $q > ($u0 * $BASE + $u1 - $q * $v1) * $BASE + $u2; if ($q) { - ($car, $bar) = (0, 0); - for ($yi = 0, $xi = $#$x - $#$y-1; $yi <= $#$y; ++$yi, ++$xi) { + my $prd; + my ($car, $bar) = (0, 0); + for (my $yi = 0, my $xi = $#$x - $#$y - 1; $yi <= $#$y; ++$yi, ++$xi) { $prd = $q * $y->[$yi] + $car; - $prd -= ($car = int($prd * $RBASE)) * $BASE; # see USE_MUL - $x->[$xi] += $BASE if ($bar = (($x->[$xi] -= $prd + $bar) < 0)); + $prd -= ($car = int($prd * $RBASE)) * $BASE; # see USE_MUL + $x->[$xi] += $BASE if $bar = (($x->[$xi] -= $prd + $bar) < 0); } if ($x->[-1] < $car + $bar) { $car = 0; --$q; - for ($yi = 0, $xi = $#$x - $#$y-1; $yi <= $#$y; ++$yi, ++$xi) { + for (my $yi = 0, my $xi = $#$x - $#$y - 1; $yi <= $#$y; ++$yi, ++$xi) { $x->[$xi] -= $BASE - if ($car = (($x->[$xi] += $y->[$yi] + $car) >= $BASE)); + if $car = (($x->[$xi] += $y->[$yi] + $car) >= $BASE); } } } pop(@$x); unshift(@q, $q); } + if (wantarray) { my $d = bless [], $c; if ($dd != 1) { - $car = 0; - for $xi (reverse @$x) { + my $car = 0; + my ($prd, $rem); + for my $xi (reverse @$x) { $prd = $car * $BASE + $xi; - $car = $prd - ($tmp = int($prd / $dd)) * $dd; # see USE_MUL - unshift(@$d, $tmp); + $rem = $prd % $dd; + $tmp = ($prd - $rem) / $dd; + $car = $rem; + unshift @$d, $tmp; } } else { @$d = @$x; @@ -762,29 +740,29 @@ sub _div_use_mul { sub _div_use_div_64 { # ref to array, ref to array, modify first array and return remainder if # in list context - # This version works on 64 bit integers - my ($c, $x, $yorg) = @_; + # This version works on integers use integer; + + my ($c, $x, $yorg) = @_; + # the general div algorithm here is about O(N*N) and thus quite slow, so # we first check for some special cases and use shortcuts to handle them. - # This works, because we store the numbers in a chunked format where each - # element contains 5..7 digits (depending on system). - # if both numbers have only one element: if (@$x == 1 && @$yorg == 1) { # shortcut, $yorg and $x are two small numbers if (wantarray) { my $rem = [ $x->[0] % $yorg->[0] ]; bless $rem, $c; - $x->[0] = int($x->[0] / $yorg->[0]); + $x->[0] = $x->[0] / $yorg->[0]; return ($x, $rem); } else { - $x->[0] = int($x->[0] / $yorg->[0]); + $x->[0] = $x->[0] / $yorg->[0]; return $x; } } + # if x has more than one, but y has only one element: if (@$yorg == 1) { my $rem; @@ -797,78 +775,67 @@ sub _div_use_div_64 { my $b; while ($j-- > 0) { $b = $r * $BASE + $x->[$j]; - $x->[$j] = int($b/$y); $r = $b % $y; + $x->[$j] = $b / $y; } - pop @$x if @$x > 1 && $x->[-1] == 0; # splice up a leading zero + pop(@$x) if @$x > 1 && $x->[-1] == 0; # remove any trailing zero return ($x, $rem) if wantarray; return $x; } + # now x and y have more than one element - # check whether y has more elements than x, if yet, the result will be 0 + # check whether y has more elements than x, if so, the result is 0 if (@$yorg > @$x) { my $rem; - $rem = $c->_copy($x) if wantarray; # make copy - @$x = 0; # set to 0 - return ($x, $rem) if wantarray; # including remainder? - return $x; # only x, which is [0] now + $rem = $c->_copy($x) if wantarray; # make copy + @$x = 0; # set to 0 + return ($x, $rem) if wantarray; # including remainder? + return $x; # only x, which is [0] now } + # check whether the numbers have the same number of elements, in that case # the result will fit into one element and can be computed efficiently if (@$yorg == @$x) { - my $rem; - # if $yorg has more digits than $x (it's leading element is longer than - # the one from $x), the result will also be 0: - if (length(int($yorg->[-1])) > length(int($x->[-1]))) { - $rem = $c->_copy($x) if wantarray; # make copy - @$x = 0; # set to 0 - return ($x, $rem) if wantarray; # including remainder? - return $x; + my $cmp = 0; + for (my $j = $#$x ; $j >= 0 ; --$j) { + last if $cmp = $x->[$j] - $yorg->[$j]; } - # now calculate $x / $yorg - if (length(int($yorg->[-1])) == length(int($x->[-1]))) { - # same length, so make full compare + if ($cmp == 0) { # x = y + @$x = 1; + return $x, $c->_zero() if wantarray; + return $x; + } - my $a = 0; - my $j = @$x - 1; - # manual way (abort if unequal, good for early ne) - while ($j >= 0) { - last if ($a = $x->[$j] - $yorg->[$j]); - $j--; - } - # $a contains the result of the compare between X and Y - # a < 0: x < y, a == 0: x == y, a > 0: x > y - if ($a <= 0) { - $rem = $c->_zero(); # a = 0 => x == y => rem 0 - $rem = $c->_copy($x) if $a != 0; # a < 0 => x < y => rem = x - @$x = 0; # if $a < 0 - $x->[0] = 1 if $a == 0; # $x == $y - return ($x, $rem) if wantarray; # including remainder? - return $x; + if ($cmp < 0) { # x < y + if (wantarray) { + my $rem = $c->_copy($x); + @$x = 0; + return $x, $rem; } - # $x >= $y, so proceed normally + @$x = 0; + return $x; } } # all other cases: - my $y = $c->_copy($yorg); # always make copy to preserve - - my ($car, $bar, $prd, $dd, $xi, $yi, @q, $v2, $v1, $tmp, $q, $u2, $u1, $u0); + my $y = $c->_copy($yorg); # always make copy to preserve - $car = $bar = $prd = 0; - if (($dd = int($BASE / ($y->[-1] + 1))) != 1) { - for $xi (@$x) { + my $tmp; + my $dd = $BASE / ($y->[-1] + 1); + if ($dd != 1) { + my $car = 0; + for my $xi (@$x) { $xi = $xi * $dd + $car; - $xi -= ($car = int($xi / $BASE)) * $BASE; + $xi -= ($car = $xi / $BASE) * $BASE; } push(@$x, $car); $car = 0; - for $yi (@$y) { + for my $yi (@$y) { $yi = $yi * $dd + $car; - $yi -= ($car = int($yi / $BASE)) * $BASE; + $yi -= ($car = $yi / $BASE) * $BASE; } } else { push(@$x, 0); @@ -877,43 +844,48 @@ sub _div_use_div_64 { # @q will accumulate the final result, $q contains the current computed # part of the final result - @q = (); - ($v2, $v1) = @$y[-2, -1]; + my @q = (); + my ($v2, $v1) = @$y[-2, -1]; $v2 = 0 unless $v2; while ($#$x > $#$y) { - ($u2, $u1, $u0) = @$x[-3..-1]; + my ($u2, $u1, $u0) = @$x[-3 .. -1]; $u2 = 0 unless $u2; #warn "oups v1 is 0, u0: $u0 $y->[-2] $y->[-1] l ",scalar @$y,"\n" # if $v1 == 0; - $q = (($u0 == $v1) ? $MAX_VAL : int(($u0 * $BASE + $u1) / $v1)); - --$q while ($v2 * $q > ($u0 * $BASE +$ u1- $q*$v1) * $BASE + $u2); + my $tmp = $u0 * $BASE + $u1; + my $rem = $tmp % $v1; + my $q = $u0 == $v1 ? $MAX_VAL : (($tmp - $rem) / $v1); + --$q while $v2 * $q > ($u0 * $BASE + $u1 - $q * $v1) * $BASE + $u2; if ($q) { - ($car, $bar) = (0, 0); - for ($yi = 0, $xi = $#$x - $#$y - 1; $yi <= $#$y; ++$yi, ++$xi) { + my $prd; + my ($car, $bar) = (0, 0); + for (my $yi = 0, my $xi = $#$x - $#$y - 1; $yi <= $#$y; ++$yi, ++$xi) { $prd = $q * $y->[$yi] + $car; $prd -= ($car = int($prd / $BASE)) * $BASE; - $x->[$xi] += $BASE if ($bar = (($x->[$xi] -= $prd + $bar) < 0)); + $x->[$xi] += $BASE if $bar = (($x->[$xi] -= $prd + $bar) < 0); } if ($x->[-1] < $car + $bar) { $car = 0; --$q; - for ($yi = 0, $xi = $#$x - $#$y - 1; $yi <= $#$y; ++$yi, ++$xi) { + for (my $yi = 0, my $xi = $#$x - $#$y - 1; $yi <= $#$y; ++$yi, ++$xi) { $x->[$xi] -= $BASE - if ($car = (($x->[$xi] += $y->[$yi] + $car) >= $BASE)); + if $car = (($x->[$xi] += $y->[$yi] + $car) >= $BASE); } } } pop(@$x); unshift(@q, $q); } + if (wantarray) { my $d = bless [], $c; if ($dd != 1) { - $car = 0; - for $xi (reverse @$x) { + my $car = 0; + my $prd; + for my $xi (reverse @$x) { $prd = $car * $BASE + $xi; - $car = $prd - ($tmp = int($prd / $dd)) * $dd; - unshift(@$d, $tmp); + $car = $prd - ($tmp = $prd / $dd) * $dd; + unshift @$d, $tmp; } } else { @$d = @$x; @@ -931,27 +903,22 @@ sub _div_use_div_64 { sub _div_use_div { # ref to array, ref to array, modify first array and return remainder if # in list context + my ($c, $x, $yorg) = @_; # the general div algorithm here is about O(N*N) and thus quite slow, so # we first check for some special cases and use shortcuts to handle them. - # This works, because we store the numbers in a chunked format where each - # element contains 5..7 digits (depending on system). - # if both numbers have only one element: if (@$x == 1 && @$yorg == 1) { # shortcut, $yorg and $x are two small numbers - if (wantarray) { - my $rem = [ $x->[0] % $yorg->[0] ]; - bless $rem, $c; - $x->[0] = int($x->[0] / $yorg->[0]); - return ($x, $rem); - } else { - $x->[0] = int($x->[0] / $yorg->[0]); - return $x; - } + my $rem = [ $x->[0] % $yorg->[0] ]; + bless $rem, $c; + $x->[0] = ($x->[0] - $rem->[0]) / $yorg->[0]; + return ($x, $rem) if wantarray; + return $x; } + # if x has more than one, but y has only one element: if (@$yorg == 1) { my $rem; @@ -964,80 +931,72 @@ sub _div_use_div { my $b; while ($j-- > 0) { $b = $r * $BASE + $x->[$j]; - $x->[$j] = int($b/$y); $r = $b % $y; + $x->[$j] = ($b - $r) / $y; } - pop @$x if @$x > 1 && $x->[-1] == 0; # splice up a leading zero + pop(@$x) if @$x > 1 && $x->[-1] == 0; # remove any trailing zero return ($x, $rem) if wantarray; return $x; } + # now x and y have more than one element - # check whether y has more elements than x, if yet, the result will be 0 + # check whether y has more elements than x, if so, the result is 0 if (@$yorg > @$x) { my $rem; - $rem = $c->_copy($x) if wantarray; # make copy - @$x = 0; # set to 0 - return ($x, $rem) if wantarray; # including remainder? - return $x; # only x, which is [0] now + $rem = $c->_copy($x) if wantarray; # make copy + @$x = 0; # set to 0 + return ($x, $rem) if wantarray; # including remainder? + return $x; # only x, which is [0] now } + # check whether the numbers have the same number of elements, in that case # the result will fit into one element and can be computed efficiently if (@$yorg == @$x) { - my $rem; - # if $yorg has more digits than $x (it's leading element is longer than - # the one from $x), the result will also be 0: - if (length(int($yorg->[-1])) > length(int($x->[-1]))) { - $rem = $c->_copy($x) if wantarray; # make copy - @$x = 0; # set to 0 - return ($x, $rem) if wantarray; # including remainder? - return $x; + my $cmp = 0; + for (my $j = $#$x ; $j >= 0 ; --$j) { + last if $cmp = $x->[$j] - $yorg->[$j]; } - # now calculate $x / $yorg - if (length(int($yorg->[-1])) == length(int($x->[-1]))) { - # same length, so make full compare + if ($cmp == 0) { # x = y + @$x = 1; + return $x, $c->_zero() if wantarray; + return $x; + } - my $a = 0; - my $j = @$x - 1; - # manual way (abort if unequal, good for early ne) - while ($j >= 0) { - last if ($a = $x->[$j] - $yorg->[$j]); - $j--; - } - # $a contains the result of the compare between X and Y - # a < 0: x < y, a == 0: x == y, a > 0: x > y - if ($a <= 0) { - $rem = $c->_zero(); # a = 0 => x == y => rem 0 - $rem = $c->_copy($x) if $a != 0; # a < 0 => x < y => rem = x + if ($cmp < 0) { # x < y + if (wantarray) { + my $rem = $c->_copy($x); @$x = 0; - $x->[0] = 0; # if $a < 0 - $x->[0] = 1 if $a == 0; # $x == $y - return ($x, $rem) if wantarray; # including remainder? - return $x; + return $x, $rem; } - # $x >= $y, so proceed normally - + @$x = 0; + return $x; } } # all other cases: - my $y = $c->_copy($yorg); # always make copy to preserve - - my ($car, $bar, $prd, $dd, $xi, $yi, @q, $v2, $v1, @d, $tmp, $q, $u2, $u1, $u0); + my $y = $c->_copy($yorg); # always make copy to preserve - $car = $bar = $prd = 0; - if (($dd = int($BASE / ($y->[-1] + 1))) != 1) { - for $xi (@$x) { + my $tmp = $y->[-1] + 1; + my $rem = $BASE % $tmp; + my $dd = ($BASE - $rem) / $tmp; + if ($dd != 1) { + my $car = 0; + for my $xi (@$x) { $xi = $xi * $dd + $car; - $xi -= ($car = int($xi / $BASE)) * $BASE; + $rem = $xi % $BASE; + $car = ($xi - $rem) / $BASE; + $xi = $rem; } push(@$x, $car); $car = 0; - for $yi (@$y) { + for my $yi (@$y) { $yi = $yi * $dd + $car; - $yi -= ($car = int($yi / $BASE)) * $BASE; + $rem = $yi % $BASE; + $car = ($yi - $rem) / $BASE; + $yi = $rem; } } else { push(@$x, 0); @@ -1046,43 +1005,52 @@ sub _div_use_div { # @q will accumulate the final result, $q contains the current computed # part of the final result - @q = (); - ($v2, $v1) = @$y[-2, -1]; + my @q = (); + my ($v2, $v1) = @$y[-2, -1]; $v2 = 0 unless $v2; while ($#$x > $#$y) { - ($u2, $u1, $u0) = @$x[-3..-1]; + my ($u2, $u1, $u0) = @$x[-3 .. -1]; $u2 = 0 unless $u2; #warn "oups v1 is 0, u0: $u0 $y->[-2] $y->[-1] l ",scalar @$y,"\n" # if $v1 == 0; - $q = (($u0 == $v1) ? $MAX_VAL : int(($u0 * $BASE + $u1) / $v1)); - --$q while ($v2 * $q > ($u0 * $BASE + $u1 - $q * $v1) * $BASE + $u2); + my $tmp = $u0 * $BASE + $u1; + my $rem = $tmp % $v1; + my $q = $u0 == $v1 ? $MAX_VAL : (($tmp - $rem) / $v1); + --$q while $v2 * $q > ($u0 * $BASE + $u1 - $q * $v1) * $BASE + $u2; if ($q) { - ($car, $bar) = (0, 0); - for ($yi = 0, $xi = $#$x - $#$y - 1; $yi <= $#$y; ++$yi, ++$xi) { + my $prd; + my ($car, $bar) = (0, 0); + for (my $yi = 0, my $xi = $#$x - $#$y - 1; $yi <= $#$y; ++$yi, ++$xi) { $prd = $q * $y->[$yi] + $car; - $prd -= ($car = int($prd / $BASE)) * $BASE; - $x->[$xi] += $BASE if ($bar = (($x->[$xi] -= $prd + $bar) < 0)); + $rem = $prd % $BASE; + $car = ($prd - $rem) / $BASE; + $prd -= $car * $BASE; + $x->[$xi] += $BASE if $bar = (($x->[$xi] -= $prd + $bar) < 0); } if ($x->[-1] < $car + $bar) { $car = 0; --$q; - for ($yi = 0, $xi = $#$x - $#$y - 1; $yi <= $#$y; ++$yi, ++$xi) { + for (my $yi = 0, my $xi = $#$x - $#$y - 1; $yi <= $#$y; ++$yi, ++$xi) { $x->[$xi] -= $BASE - if ($car = (($x->[$xi] += $y->[$yi] + $car) >= $BASE)); + if $car = (($x->[$xi] += $y->[$yi] + $car) >= $BASE); } } } pop(@$x); unshift(@q, $q); } + if (wantarray) { my $d = bless [], $c; if ($dd != 1) { - $car = 0; - for $xi (reverse @$x) { + my $car = 0; + my ($prd, $rem); + for my $xi (reverse @$x) { $prd = $car * $BASE + $xi; - $car = $prd - ($tmp = int($prd / $dd)) * $dd; - unshift(@$d, $tmp); + $rem = $prd % $dd; + $tmp = ($prd - $rem) / $dd; + $car = $rem; + unshift @$d, $tmp; } } else { @$d = @$x; @@ -1385,7 +1353,7 @@ sub _rsft { $dst++; } splice(@$x, $dst) if $dst > 0; # kill left-over array elems - pop @$x if $x->[-1] == 0 && @$x > 1; # kill last element if 0 + pop(@$x) if $x->[-1] == 0 && @$x > 1; # kill last element if 0 } # else rem == 0 $x; } @@ -1393,49 +1361,64 @@ sub _rsft { sub _lsft { my ($c, $x, $n, $b) = @_; - return $x if $c->_is_zero($x); - - # Handle the special case when the base is a power of 10. Don't check - # whether log($b)/log(10) is an integer, because log(1000)/log(10) is not - # exactly 3. - - my $log10 = sprintf "%.0f", log($b) / log(10); - if ($b == 10 ** $log10) { - $b = 10; - $n = $c->_mul($n, $c->_new($log10)); - - # shortcut (faster) for shifting by 10) since we are in base 10eX - # multiples of $BASE_LEN: - my $src = @$x; # source - my $len = $c->_num($n); # shift-len as normal int - my $rem = $len % $BASE_LEN; # remainder to shift - my $dst = $src + int($len / $BASE_LEN); # destination - my $vd; # further speedup - $x->[$src] = 0; # avoid first ||0 for speed - my $z = '0' x $BASE_LEN; - while ($src >= 0) { - $vd = $x->[$src]; - $vd = $z . $vd; - $vd = substr($vd, -$BASE_LEN + $rem, $BASE_LEN - $rem); - $vd .= $src > 0 ? substr($z . $x->[$src - 1], -$BASE_LEN, $rem) - : '0' x $rem; - $vd = substr($vd, -$BASE_LEN, $BASE_LEN) if length($vd) > $BASE_LEN; - $x->[$dst] = int($vd); - $dst--; - $src--; + return $x if $c->_is_zero($x) || $c->_is_zero($n); + + # For backwards compatibility, allow the base $b to be a scalar. + + $b = $c->_new($b) unless ref $b; + + # If the base is a power of 10, use shifting, since the internal + # representation is in base 10eX. + + my $bstr = $c->_str($b); + if ($bstr =~ /^1(0+)\z/) { + + # Adjust $n so that we're shifting in base 10. Do this by multiplying + # $n by the base 10 logarithm of $b: $b ** $n = 10 ** (log10($b) * $n). + + my $log10b = length($1); + $n = $c->_mul($c->_new($log10b), $n); + $n = $c->_num($n); # shift-len as normal int + + # $q is the number of places to shift the elements within the array, + # and $r is the number of places to shift the values within the + # elements. + + my $r = $n % $BASE_LEN; + my $q = ($n - $r) / $BASE_LEN; + + # If we must shift the values within the elements ... + + if ($r) { + my $i = @$x; # index + $x->[$i] = 0; # initialize most significant element + my $z = '0' x $BASE_LEN; + my $vd; + while ($i >= 0) { + $vd = $x->[$i]; + $vd = $z . $vd; + $vd = substr($vd, $r - $BASE_LEN, $BASE_LEN - $r); + $vd .= $i > 0 ? substr($z . $x->[$i - 1], -$BASE_LEN, $r) + : '0' x $r; + $vd = substr($vd, -$BASE_LEN, $BASE_LEN) if length($vd) > $BASE_LEN; + $x->[$i] = int($vd); # e.g., "0...048" -> 48 etc. + $i--; + } + + pop(@$x) if $x->[-1] == 0; # if most significant element is zero } - # set lowest parts to 0 - while ($dst >= 0) { - $x->[$dst--] = 0; + + # If we must shift the elements within the array ... + + if ($q) { + unshift @$x, (0) x $q; } - # fix spurious last zero element - splice @$x, -1 if $x->[-1] == 0; - return $x; + } else { - $b = $c->_new($b); - #print $c->_str($b); - return $c->_mul($x, $c->_pow($b, $n)); + $x = $c->_mul($x, $c->_pow($b, $n)); } + + return $x; } sub _pow { diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/t/Math/BigInt/Scalar.pm b/gnu/usr.bin/perl/cpan/Math-BigInt/t/Math/BigInt/Scalar.pm index 1bfd338d981..d703806bcce 100644 --- a/gnu/usr.bin/perl/cpan/Math-BigInt/t/Math/BigInt/Scalar.pm +++ b/gnu/usr.bin/perl/cpan/Math-BigInt/t/Math/BigInt/Scalar.pm @@ -14,8 +14,6 @@ our @ISA = qw(Exporter); our $VERSION = '0.13'; -sub api_version() { 1; } - ############################################################################## # global constants, flags and accessory diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/t/bare_mbf.t b/gnu/usr.bin/perl/cpan/Math-BigInt/t/bare_mbf.t index 51377400c12..c8184cb8610 100755 --- a/gnu/usr.bin/perl/cpan/Math-BigInt/t/bare_mbf.t +++ b/gnu/usr.bin/perl/cpan/Math-BigInt/t/bare_mbf.t @@ -3,7 +3,7 @@ use strict; use warnings; -use Test::More tests => 2818; +use Test::More tests => 2830; use lib 't'; diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/t/bare_mbi.t b/gnu/usr.bin/perl/cpan/Math-BigInt/t/bare_mbi.t index 7003104913e..7c24404738a 100755 --- a/gnu/usr.bin/perl/cpan/Math-BigInt/t/bare_mbi.t +++ b/gnu/usr.bin/perl/cpan/Math-BigInt/t/bare_mbi.t @@ -3,7 +3,7 @@ use strict; use warnings; -use Test::More tests => 4026; # tests in require'd file +use Test::More tests => 4038; # tests in require'd file use lib 't'; diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigfltpm.inc b/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigfltpm.inc index 4858e2e983f..af6e422e882 100644 --- a/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigfltpm.inc +++ b/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigfltpm.inc @@ -37,7 +37,7 @@ while () { $try = qq|\$x = $CLASS->new("$args[0]");|; if ($f eq "bnorm") { $try .= qq| \$x;|; - } elsif ($f =~ /^is_(zero|one|odd|even|negative|positive|nan|int)$/) { + } elsif ($f =~ /^is_(zero|one|odd|even||(non_)?(negative|positive)|nan|int)$/) { $try .= qq| \$x->$f();|; } elsif ($f eq "is_inf") { $try .= qq| \$x->is_inf("$args[1]");|; @@ -2183,6 +2183,22 @@ NaN:0 -inf:1 +inf:0 +&is_non_positive +0:1 +1:0 +-1:1 +NaN:0 +-inf:1 ++inf:0 + +&is_non_negative +0:1 +1:1 +-1:0 +NaN:0 +-inf:0 ++inf:1 + &parts 0:0 0 1:1 0 diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigfltpm.t b/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigfltpm.t index 992ee0416ad..8b0079fedc9 100755 --- a/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigfltpm.t +++ b/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigfltpm.t @@ -3,7 +3,7 @@ use strict; use warnings; -use Test::More tests => 2818 # tests in require'd file +use Test::More tests => 2830 # tests in require'd file + 19; # tests in this file use Math::BigInt only => 'Calc'; diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigintc.t b/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigintc.t index 517da4601da..f9c16d233b0 100755 --- a/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigintc.t +++ b/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigintc.t @@ -3,7 +3,7 @@ use strict; use warnings; -use Test::More tests => 379; +use Test::More tests => 460; use Math::BigInt::Calc; @@ -261,6 +261,27 @@ $y = $LIB->_new("45"); is($LIB->_str($LIB->_rsft($x, $y, 10)), 0, qq|$LIB->_str($LIB->_rsft(\$x, \$y, 10)) = 0|); +# _lsft() with large bases + +for my $xstr ("1", "2", "3") { + for my $nstr ("1", "2", "3") { + for my $bpow (25, 50, 75) { + my $bstr = "1" . ("0" x $bpow); + my $expected = $xstr . ("0" x ($bpow * $nstr)); + my $xobj = $LIB->_new($xstr); + my $nobj = $LIB->_new($nstr); + my $bobj = $LIB->_new($bstr); + + is($LIB->_str($LIB->_lsft($xobj, $nobj, $bobj)), $expected, + qq|$LIB->_str($LIB->_lsft($LIB->_new("$xstr"), | + . qq|$LIB->_new("$nstr"), | + . qq|$LIB->_new("$bstr")))|); + is($LIB->_str($nobj), $nstr, q|$n is unmodified|); + is($LIB->_str($bobj), $bstr, q|$b is unmodified|); + } + } +} + # _acmp $x = $LIB->_new("123456789"); diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigintpm.inc b/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigintpm.inc index d98807f4bfd..9dd331ab175 100644 --- a/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigintpm.inc +++ b/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigintpm.inc @@ -68,7 +68,7 @@ while () { $try = qq|\$x = $CLASS->new("$args[0]");|; if ($f eq "bnorm") { $try = qq|\$x = $CLASS->bnorm("$args[0]");|; - } elsif ($f =~ /^is_(zero|one|odd|even|negative|positive|nan|int)$/) { + } elsif ($f =~ /^is_(zero|one|odd|even|(non_)?(negative|positive)|nan|int)$/) { $try .= " \$x->$f() || 0;"; } elsif ($f eq "is_inf") { $try .= qq| \$x->is_inf("$args[1]");|; @@ -787,17 +787,26 @@ SKIP: { my @bl = $LIB->_base_len(); my $bl = $bl[5]; - $x = '1' x $bl . '0' x $bl . '1' x $bl . '0' x $bl; + # Compute the value. + $x = ('1' x $bl) . ('0' x $bl) . ('1' x $bl) . ('0' x $bl); $y = '1' x (2 * $bl); $x = $CLASS->new($x)->bmul($y); - # result is 123..$bl . $bl x (3*bl-1) . $bl...321 . '0' x $bl + + # Build the expected output. $y = ''; - my $d = ''; - for (my $i = 1; $i <= $bl; $i++) { - $y .= $i; - $d = $i . $d; + if ($bl >= 2) { + $y .= '123456790' x int(($bl - 2) / 9); + $y .= substr '123456790', 0, ($bl - 2) % 9; + $y .= ($bl - 1) % 9; + } + $y .= ((($bl - 1) % 9) + 1) x ($bl * 3); + if ($bl >= 2) { + $y .= substr '098765432', -(($bl - 1) % 9); + $y .= '098765432' x int(($bl - 2) / 9); } - $y .= $bl x (3 * $bl - 1) . $d . '0' x $bl; + $y .= '1'; + $y .= '0' x $bl; + is($x, $y, "testing number with a zero-hole of BASE_LEN_SMALL"); ######################################################################### @@ -1077,6 +1086,22 @@ invalid:0 -inf:0 invalid:0 +&is_non_negative +0:1 +-1:0 +1:1 ++inf:1 +-inf:0 +NaN:0 + +&is_non_positive +0:1 +-1:1 +1:0 ++inf:0 +-inf:1 +NaN:0 + &is_int -inf:0 +inf:0 @@ -2850,9 +2875,9 @@ abc:12:NaN -inf:NaN:NaN # -3:-inf:0 --3:-3:NaN --3:-2:NaN --3:-1:NaN +-3:-3:0 +-3:-2:0 +-3:-1:0 -3:0:1 -3:1:-3 -3:2:9 @@ -2861,9 +2886,9 @@ abc:12:NaN -3:NaN:NaN # -2:-inf:0 --2:-3:NaN --2:-2:NaN --2:-1:NaN +-2:-3:0 +-2:-2:0 +-2:-1:0 -2:0:1 -2:1:-2 -2:2:4 @@ -2905,9 +2930,9 @@ abc:12:NaN 1:NaN:NaN # 2:-inf:0 -2:-3:NaN -2:-2:NaN -2:-1:NaN +2:-3:0 +2:-2:0 +2:-1:0 2:0:1 2:1:2 2:2:4 @@ -2916,9 +2941,9 @@ abc:12:NaN 2:NaN:NaN # 3:-inf:0 -3:-3:NaN -3:-2:NaN -3:-1:NaN +3:-3:0 +3:-2:0 +3:-1:0 3:0:1 3:1:3 3:2:9 diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigintpm.t b/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigintpm.t index 1616064745f..7d05dc9e98f 100755 --- a/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigintpm.t +++ b/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigintpm.t @@ -3,7 +3,7 @@ use strict; use warnings; -use Test::More tests => 4026 # tests in require'd file +use Test::More tests => 4038 # tests in require'd file + 20; # tests in this file use Math::BigInt only => 'Calc'; diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/t/calling.t b/gnu/usr.bin/perl/cpan/Math-BigInt/t/calling.t index be72db4a8dd..c3c9affebb2 100755 --- a/gnu/usr.bin/perl/cpan/Math-BigInt/t/calling.t +++ b/gnu/usr.bin/perl/cpan/Math-BigInt/t/calling.t @@ -6,7 +6,7 @@ use strict; use warnings; use lib 't'; -my $VERSION = '1.999816'; # adjust manually to match latest release +my $VERSION = '1.999818'; # adjust manually to match latest release use Test::More tests => 5; diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/t/sub_mbf.t b/gnu/usr.bin/perl/cpan/Math-BigInt/t/sub_mbf.t index 584ea675e7b..2f5d3fc1e79 100755 --- a/gnu/usr.bin/perl/cpan/Math-BigInt/t/sub_mbf.t +++ b/gnu/usr.bin/perl/cpan/Math-BigInt/t/sub_mbf.t @@ -3,7 +3,7 @@ use strict; use warnings; -use Test::More tests => 2818 # tests in require'd file +use Test::More tests => 2830 # tests in require'd file + 6; # tests in this file use lib 't'; diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/t/sub_mbi.t b/gnu/usr.bin/perl/cpan/Math-BigInt/t/sub_mbi.t index 3ee6953afa2..97bcdee397e 100755 --- a/gnu/usr.bin/perl/cpan/Math-BigInt/t/sub_mbi.t +++ b/gnu/usr.bin/perl/cpan/Math-BigInt/t/sub_mbi.t @@ -3,7 +3,7 @@ use strict; use warnings; -use Test::More tests => 4026 # tests in require'd file +use Test::More tests => 4038 # tests in require'd file + 5; # tests in this file use lib 't'; diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/t/upgrade.inc b/gnu/usr.bin/perl/cpan/Math-BigInt/t/upgrade.inc index 9cdba4edfb6..d58376f2444 100644 --- a/gnu/usr.bin/perl/cpan/Math-BigInt/t/upgrade.inc +++ b/gnu/usr.bin/perl/cpan/Math-BigInt/t/upgrade.inc @@ -80,7 +80,7 @@ while () { $try = qq|\$x = $CLASS->new("$args[0]");|; if ($f eq "bnorm") { $try = qq|\$x = $CLASS->bnorm("$args[0]");|; - } elsif ($f =~ /^is_(zero|one|odd|even|negative|positive|nan|int)$/) { + } elsif ($f =~ /^is_(zero|one|odd|even||(non_)?(negative|positive)|nan|int)$/) { $try .= " \$x->$f();"; } elsif ($f =~ /^(to|as)_(hex|oct|bin)$/) { $try .= " \$x->$f();"; @@ -304,6 +304,22 @@ NaNneg:0 -inf:0 NaNneg:0 +&is_non_negative +0:1 +-1:0 +1:1 ++inf:1 +-inf:0 +NaN:0 + +&is_non_positive +0:1 +-1:1 +1:0 ++inf:0 +-inf:1 +NaN:0 + &is_odd abc:0 0:0 diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/t/upgrade.t b/gnu/usr.bin/perl/cpan/Math-BigInt/t/upgrade.t index b373ceb56ae..552c8ae5117 100755 --- a/gnu/usr.bin/perl/cpan/Math-BigInt/t/upgrade.t +++ b/gnu/usr.bin/perl/cpan/Math-BigInt/t/upgrade.t @@ -3,7 +3,7 @@ use strict; use warnings; -use Test::More tests => 2196 # tests in require'd file +use Test::More tests => 2208 # tests in require'd file + 2; # tests in this file use Math::BigInt upgrade => 'Math::BigFloat'; diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/t/with_sub.t b/gnu/usr.bin/perl/cpan/Math-BigInt/t/with_sub.t index ca789275124..0ce15d10cb9 100755 --- a/gnu/usr.bin/perl/cpan/Math-BigInt/t/with_sub.t +++ b/gnu/usr.bin/perl/cpan/Math-BigInt/t/with_sub.t @@ -5,7 +5,7 @@ use strict; use warnings; -use Test::More tests => 2818 # tests in require'd file +use Test::More tests => 2830 # tests in require'd file + 1; # tests in this file use Math::BigFloat with => 'Math::BigInt::Subclass', diff --git a/gnu/usr.bin/perl/cpan/Module-Load-Conditional/lib/Module/Load/Conditional.pm b/gnu/usr.bin/perl/cpan/Module-Load-Conditional/lib/Module/Load/Conditional.pm index 89e22b57207..b0685d2ec12 100644 --- a/gnu/usr.bin/perl/cpan/Module-Load-Conditional/lib/Module/Load/Conditional.pm +++ b/gnu/usr.bin/perl/cpan/Module-Load-Conditional/lib/Module/Load/Conditional.pm @@ -22,7 +22,7 @@ BEGIN { $FIND_VERSION $ERROR $CHECK_INC_HASH $FORCE_SAFE_INC ]; use Exporter; @ISA = qw[Exporter]; - $VERSION = '0.68'; + $VERSION = '0.70'; $VERBOSE = 0; $DEPRECATED = 0; $FIND_VERSION = 1; @@ -259,13 +259,19 @@ sub check_install { last DIR unless $FIND_VERSION; ### otherwise, the user wants us to find the version from files - my $mod_info = Module::Metadata->new_from_handle( $fh, $filename ); - my $ver = $mod_info->version( $args->{module} ); - if( defined $ver ) { - $href->{version} = $ver; + { + local $SIG{__WARN__} = sub {}; + my $ver = eval { + my $mod_info = Module::Metadata->new_from_handle( $fh, $filename ); + $mod_info->version( $args->{module} ); + }; - last DIR; + if( defined $ver ) { + $href->{version} = $ver; + + last DIR; + } } } } diff --git a/gnu/usr.bin/perl/cpan/Module-Metadata/lib/Module/Metadata.pm b/gnu/usr.bin/perl/cpan/Module-Metadata/lib/Module/Metadata.pm index ecc535f03b0..0309d768ae8 100644 --- a/gnu/usr.bin/perl/cpan/Module-Metadata/lib/Module/Metadata.pm +++ b/gnu/usr.bin/perl/cpan/Module-Metadata/lib/Module/Metadata.pm @@ -1,6 +1,6 @@ # -*- mode: cperl; tab-width: 8; indent-tabs-mode: nil; basic-offset: 2 -*- # vim:ts=8:sw=2:et:sta:sts=2:tw=78 -package Module::Metadata; # git description: v1.000035-3-gaa51be1 +package Module::Metadata; # git description: v1.000036-4-g435a294 # ABSTRACT: Gather package and POD information from perl module files # Adapted from Perl-licensed code originally distributed with @@ -14,7 +14,7 @@ sub __clean_eval { eval $_[0] } use strict; use warnings; -our $VERSION = '1.000036'; +our $VERSION = '1.000037'; use Carp qw/croak/; use File::Spec; @@ -383,7 +383,7 @@ sub _init { my $handle = delete $props{handle}; my( %valid_props, @valid_props ); - @valid_props = qw( collect_pod inc ); + @valid_props = qw( collect_pod inc decode_pod ); @valid_props{@valid_props} = delete( @props{@valid_props} ); warn "Unknown properties: @{[keys %props]}\n" if scalar( %props ); @@ -542,6 +542,7 @@ sub _parse_fh { my $pod_sect = ''; my $pod_data = ''; my $in_end = 0; + my $encoding = ''; while (defined( my $line = <$fh> )) { my $line_num = $.; @@ -570,6 +571,9 @@ sub _parse_fh { $pod_sect = $1; } elsif ( $self->{collect_pod} ) { + if ( $self->{decode_pod} && $line =~ /^=encoding ([\w-]+)/ ) { + $encoding = $1; + } $pod_data .= "$line\n"; } next; @@ -658,6 +662,11 @@ sub _parse_fh { $pod{$pod_sect} = $pod_data; } + if ( $self->{decode_pod} && $encoding ) { + require Encode; + $_ = Encode::decode( $encoding, $_ ) for values %pod; + } + $self->{versions} = \%vers; $self->{packages} = \@packages; $self->{pod} = \%pod; @@ -841,7 +850,7 @@ Module::Metadata - Gather package and POD information from perl module files =head1 VERSION -version 1.000036 +version 1.000037 =head1 SYNOPSIS @@ -865,7 +874,7 @@ in the CPAN toolchain. =head1 CLASS METHODS -=head2 C<< new_from_file($filename, collect_pod => 1) >> +=head2 C<< new_from_file($filename, collect_pod => 1, decode_pod => 1) >> Constructs a C object given the path to a file. Returns undef if the filename does not exist. @@ -878,7 +887,10 @@ If the file begins by an UTF-8, UTF-16BE or UTF-16LE byte-order mark, then it is skipped before processing, and the content of the file is also decoded appropriately starting from perl 5.8. -=head2 C<< new_from_handle($handle, $filename, collect_pod => 1) >> +Alternatively, if C is set, it will decode the collected pod +sections according to the C<=encoding> declaration. + +=head2 C<< new_from_handle($handle, $filename, collect_pod => 1, decode_pod => 1) >> This works just like C, except that a handle can be provided as the first argument. @@ -891,15 +903,15 @@ mandatory or undef will be returned. You are responsible for setting the decoding layers on C<$handle> if required. -=head2 C<< new_from_module($module, collect_pod => 1, inc => \@dirs) >> +=head2 C<< new_from_module($module, collect_pod => 1, inc => \@dirs, decode_pod => 1) >> Constructs a C object given a module or package name. Returns undef if the module cannot be found. -In addition to accepting the C argument as described above, -this method accepts a C argument which is a reference to an array of -directories to search for the module. If none are given, the default is -@INC. +In addition to accepting the C and C arguments as +described above, this method accepts a C argument which is a reference to +an array of directories to search for the module. If none are given, the +default is @INC. If the file that contains the module begins by an UTF-8, UTF-16BE or UTF-16LE byte-order mark, then it is skipped before processing, and the @@ -1070,7 +1082,7 @@ assistance from David Golden (xdg) . =head1 CONTRIBUTORS -=for stopwords Karen Etheridge David Golden Vincent Pit Matt S Trout Chris Nehren Graham Knop Olivier Mengué Tomas Doran tokuhirom Christian Walde Tatsuhiko Miyagawa Peter Rabbitson Steve Hay Jerry D. Hedden Craig A. Berry Mitchell Steinbrunner Edward Zborowski Gareth Harper James Raspass 'BinGOs' Williams Josh Jore Kent Fredric +=for stopwords Karen Etheridge David Golden Vincent Pit Matt S Trout Chris Nehren Tomas Doran Olivier Mengué Graham Knop tokuhirom Tatsuhiko Miyagawa Christian Walde Leon Timmermans Peter Rabbitson Steve Hay Jerry D. Hedden Craig A. Berry Mitchell Steinbrunner Edward Zborowski Gareth Harper James Raspass 'BinGOs' Williams Josh Jore Kent Fredric =over 4 @@ -1096,7 +1108,7 @@ Chris Nehren =item * -Graham Knop +Tomas Doran =item * @@ -1104,7 +1116,7 @@ Olivier Mengué =item * -Tomas Doran +Graham Knop =item * @@ -1112,11 +1124,15 @@ tokuhirom =item * +Tatsuhiko Miyagawa + +=item * + Christian Walde =item * -Tatsuhiko Miyagawa +Leon Timmermans =item * diff --git a/gnu/usr.bin/perl/cpan/Module-Metadata/t/metadata.t b/gnu/usr.bin/perl/cpan/Module-Metadata/t/metadata.t index 0f2e414c7fc..3eea8d96663 100644 --- a/gnu/usr.bin/perl/cpan/Module-Metadata/t/metadata.t +++ b/gnu/usr.bin/perl/cpan/Module-Metadata/t/metadata.t @@ -3,6 +3,7 @@ use strict; use warnings; +use Encode 'decode'; use Test::More 0.82; use IO::File; use File::Spec; @@ -16,7 +17,7 @@ use GeneratePackage; my $tmpdir = GeneratePackage::tmpdir(); -plan tests => 71; +plan tests => 72; require_ok('Module::Metadata'); @@ -209,13 +210,15 @@ $VERSION = '0.01'; package Simple::Ex; $VERSION = '0.02'; +=encoding UTF-8 + =head1 NAME Simple - It's easy. =head1 AUTHOR -Simple Simon +Símple Simon You can find me on the IRC channel #simon on irc.perl.org. @@ -270,7 +273,7 @@ You can find me on the IRC channel my %expected = ( NAME => q|Simple - It's easy.|, AUTHOR => <<'EXPECTED' -Simple Simon +Símple Simon You can find me on the IRC channel #simon on irc.perl.org. @@ -282,6 +285,13 @@ EXPECTED } is( $pod{NAME}, $expected{NAME}, 'collected NAME pod section' ); is( $pod{AUTHOR}, $expected{AUTHOR}, 'collected AUTHOR pod section' ); + + my $pm_info2 = Module::Metadata->new_from_module( + 'Simple', inc => [ 'lib', @INC ], collect_pod => 1, decode_pod => 1 ); + my $author = $pm_info2->pod( 'AUTHOR' ); + $author =~ s/^\s+//; + $author =~ s/\s+$//; + is( $author, decode('UTF-8', $expected{AUTHOR} ), 'collected AUTHOR pod section in UTF-8' ); } { diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/lib/Pod/Find.pm b/gnu/usr.bin/perl/cpan/Pod-Parser/lib/Pod/Find.pm deleted file mode 100644 index f258f26df68..00000000000 --- a/gnu/usr.bin/perl/cpan/Pod-Parser/lib/Pod/Find.pm +++ /dev/null @@ -1,553 +0,0 @@ -############################################################################# -# Pod/Find.pm -- finds files containing POD documentation -# -# Author: Marek Rouchal -# -# Copyright (C) 1999-2000 by Marek Rouchal (and borrowing code -# from Nick Ing-Simmon's PodToHtml). All rights reserved. -# This file is part of "PodParser". Pod::Find is free software; -# you can redistribute it and/or modify it under the same terms -# as Perl itself. -############################################################################# - -package Pod::Find; -use strict; - -use vars qw($VERSION); -$VERSION = '1.63'; ## Current version of this package -require 5.005; ## requires this Perl version or later -use Carp; - -BEGIN { - if ($] < 5.006) { - require Symbol; - import Symbol; - } -} - -############################################################################# - -=head1 NAME - -Pod::Find - find POD documents in directory trees - -=head1 SYNOPSIS - - use Pod::Find qw(pod_find simplify_name); - my %pods = pod_find({ -verbose => 1, -inc => 1 }); - foreach(keys %pods) { - print "found library POD `$pods{$_}' in $_\n"; - } - - print "podname=",simplify_name('a/b/c/mymodule.pod'),"\n"; - - $location = pod_where( { -inc => 1 }, "Pod::Find" ); - -=head1 DESCRIPTION - -B -for all things POD.> - -B provides a set of functions to locate POD files. Note that -no function is exported by default to avoid pollution of your namespace, -so be sure to specify them in the B statement if you need them: - - use Pod::Find qw(pod_find); - -From this version on the typical SCM (software configuration management) -directories are ignored. These are: RCS, CVS, SCCS, .svn, .hg, .git, .sync - -=cut - -#use diagnostics; -use Exporter; -use File::Spec; -use File::Find; -use Cwd qw(abs_path cwd); - -use vars qw(@ISA @EXPORT_OK $VERSION); -@ISA = qw(Exporter); -@EXPORT_OK = qw(&pod_find &simplify_name &pod_where &contains_pod); - -# package global variables -my $SIMPLIFY_RX; - -=head2 C - -The function B searches for POD documents in a given set of -files and/or directories. It returns a hash with the file names as keys -and the POD name as value. The POD name is derived from the file name -and its position in the directory tree. - -E.g. when searching in F<$HOME/perl5lib>, the file -F<$HOME/perl5lib/MyModule.pm> would get the POD name I, -whereas F<$HOME/perl5lib/Myclass/Subclass.pm> would be -I. The name information can be used for POD -translators. - -Only text files containing at least one valid POD command are found. - -A warning is printed if more than one POD file with the same POD name -is found, e.g. F in different directories. This usually -indicates duplicate occurrences of modules in the I<@INC> search path. - -B The first argument for B may be a hash reference -with options. The rest are either directories that are searched -recursively or files. The POD names of files are the plain basenames -with any Perl-like extension (.pm, .pl, .pod) stripped. - -=over 4 - -=item C<-verbose =E 1> - -Print progress information while scanning. - -=item C<-perl =E 1> - -Apply Perl-specific heuristics to find the correct PODs. This includes -stripping Perl-like extensions, omitting subdirectories that are numeric -but do I match the current Perl interpreter's version id, suppressing -F as a module hierarchy name etc. - -=item C<-script =E 1> - -Search for PODs in the current Perl interpreter's installation -B. This is taken from the local L module. - -=item C<-inc =E 1> - -Search for PODs in the current Perl interpreter's I<@INC> paths. This -automatically considers paths specified in the C environment -as this is included in I<@INC> by the Perl interpreter itself. - -=back - -=cut - -# return a hash of the POD files found -# first argument may be a hashref (options), -# rest is a list of directories to search recursively -sub pod_find -{ - my %opts; - if(ref $_[0]) { - %opts = %{shift()}; - } - - $opts{-verbose} ||= 0; - $opts{-perl} ||= 0; - - my (@search) = @_; - - if($opts{-script}) { - require Config; - push(@search, $Config::Config{scriptdir}) - if -d $Config::Config{scriptdir}; - $opts{-perl} = 1; - } - - if($opts{-inc}) { - if ($^O eq 'MacOS') { - # tolerate '.', './some_dir' and '(../)+some_dir' on Mac OS - my @new_INC = @INC; - for (@new_INC) { - if ( $_ eq '.' ) { - $_ = ':'; - } elsif ( $_ =~ s{^((?:\.\./)+)}{':' x (length($1)/3)}e ) { - $_ = ':'. $_; - } else { - $_ =~ s{^\./}{:}; - } - } - push(@search, grep($_ ne File::Spec->curdir, @new_INC)); - } else { - my %seen; - my $curdir = File::Spec->curdir; - foreach(@INC) { - next if $_ eq $curdir; - my $path = abs_path($_); - push(@search, $path) unless $seen{$path}++; - } - } - - $opts{-perl} = 1; - } - - if($opts{-perl}) { - require Config; - # this code simplifies the POD name for Perl modules: - # * remove "site_perl" - # * remove e.g. "i586-linux" (from 'archname') - # * remove e.g. 5.00503 - # * remove pod/ if followed by *.pod (e.g. in pod/perlfunc.pod) - - # Mac OS: - # * remove ":?site_perl:" - # * remove :?pod: if followed by *.pod (e.g. in :pod:perlfunc.pod) - - if ($^O eq 'MacOS') { - $SIMPLIFY_RX = - qq!^(?i:\:?site_perl\:|\:?pod\:(?=.*?\\.pod\\z))*!; - } else { - $SIMPLIFY_RX = - qq!^(?i:site(_perl)?/|\Q$Config::Config{archname}\E/|\\d+\\.\\d+([_.]?\\d+)?/|pod/(?=.*?\\.pod\\z))*!; - } - } - - my %dirs_visited; - my %pods; - my %names; - my $pwd = cwd(); - - foreach my $try (@search) { - unless(File::Spec->file_name_is_absolute($try)) { - # make path absolute - $try = File::Spec->catfile($pwd,$try); - } - # simplify path - # on VMS canonpath will vmsify:[the.path], but File::Find::find - # wants /unixy/paths - if ($^O eq 'VMS') { - $try = VMS::Filespec::unixify($try); - } - else { - $try = File::Spec->canonpath($try); - } - my $name; - if(-f $try) { - if($name = _check_and_extract_name($try, $opts{-verbose})) { - _check_for_duplicates($try, $name, \%names, \%pods); - } - next; - } - my $root_rx = $^O eq 'MacOS' ? qq!^\Q$try\E! : qq!^\Q$try\E/!; - $root_rx=~ s|//$|/|; # remove trailing double slash - File::Find::find( sub { - my $item = $File::Find::name; - if(-d) { - if($item =~ m{/(?:RCS|CVS|SCCS|\.svn|\.hg|\.git|\.sync)$}) { - $File::Find::prune = 1; - return; - } - elsif($dirs_visited{$item}) { - warn "Directory '$item' already seen, skipping.\n" - if($opts{-verbose}); - $File::Find::prune = 1; - return; - } - else { - $dirs_visited{$item} = 1; - } - if($opts{-perl} && /^(\d+\.[\d_]+)\z/s && eval "$1" != $]) { - $File::Find::prune = 1; - warn "Perl $] version mismatch on $_, skipping.\n" - if($opts{-verbose}); - } - return; - } - if($name = _check_and_extract_name($item, $opts{-verbose}, $root_rx)) { - _check_for_duplicates($item, $name, \%names, \%pods); - } - }, $try); # end of File::Find::find - } - chdir $pwd; - return %pods; -} - -sub _check_for_duplicates { - my ($file, $name, $names_ref, $pods_ref) = @_; - if($$names_ref{$name}) { - warn "Duplicate POD found (shadowing?): $name ($file)\n"; - warn ' Already seen in ', - join(' ', grep($$pods_ref{$_} eq $name, keys %$pods_ref)),"\n"; - } - else { - $$names_ref{$name} = 1; - } - return $$pods_ref{$file} = $name; -} - -sub _check_and_extract_name { - my ($file, $verbose, $root_rx) = @_; - - # check extension or executable flag - # this involves testing the .bat extension on Win32! - unless(-f $file && -T $file && ($file =~ /\.(pod|pm|plx?)\z/i || -x $file )) { - return; - } - - return unless contains_pod($file,$verbose); - - # strip non-significant path components - # TODO what happens on e.g. Win32? - my $name = $file; - if(defined $root_rx) { - $name =~ s/$root_rx//is; - $name =~ s/$SIMPLIFY_RX//is if(defined $SIMPLIFY_RX); - } - else { - if ($^O eq 'MacOS') { - $name =~ s/^.*://s; - } else { - $name =~ s{^.*/}{}s; - } - } - _simplify($name); - $name =~ s{/+}{::}g; - if ($^O eq 'MacOS') { - $name =~ s{:+}{::}g; # : -> :: - } else { - $name =~ s{/+}{::}g; # / -> :: - } - return $name; -} - -=head2 C - -The function B is equivalent to B, but also -strips Perl-like extensions (.pm, .pl, .pod) and extensions like -F<.bat>, F<.cmd> on Win32 and OS/2, or F<.com> on VMS, respectively. - -=cut - -# basic simplification of the POD name: -# basename & strip extension -sub simplify_name { - my ($str) = @_; - # remove all path components - if ($^O eq 'MacOS') { - $str =~ s/^.*://s; - } else { - $str =~ s{^.*/}{}s; - } - _simplify($str); - return $str; -} - -# internal sub only -sub _simplify { - # strip Perl's own extensions - $_[0] =~ s/\.(pod|pm|plx?)\z//i; - # strip meaningless extensions on Win32 and OS/2 - $_[0] =~ s/\.(bat|exe|cmd)\z//i if($^O =~ /mswin|os2/i); - # strip meaningless extensions on VMS - $_[0] =~ s/\.(com)\z//i if($^O eq 'VMS'); -} - -# contribution from Tim Jenness - -=head2 C - -Returns the location of a pod document given a search directory -and a module (e.g. C) or script (e.g. C) name. - -Options: - -=over 4 - -=item C<-inc =E 1> - -Search @INC for the pod and also the C defined in the -L module. - -=item C<-dirs =E [ $dir1, $dir2, ... ]> - -Reference to an array of search directories. These are searched in order -before looking in C<@INC> (if B<-inc>). Current directory is used if -none are specified. - -=item C<-verbose =E 1> - -List directories as they are searched - -=back - -Returns the full path of the first occurrence to the file. -Package names (eg 'A::B') are automatically converted to directory -names in the selected directory. (eg on unix 'A::B' is converted to -'A/B'). Additionally, '.pm', '.pl' and '.pod' are appended to the -search automatically if required. - -A subdirectory F is also checked if it exists in any of the given -search directories. This ensures that e.g. L is -found. - -It is assumed that if a module name is supplied, that that name -matches the file name. Pods are not opened to check for the 'NAME' -entry. - -A check is made to make sure that the file that is found does -contain some pod documentation. - -=cut - -sub pod_where { - - # default options - my %options = ( - '-inc' => 0, - '-verbose' => 0, - '-dirs' => [ File::Spec->curdir ], - ); - - # Check for an options hash as first argument - if (defined $_[0] && ref($_[0]) eq 'HASH') { - my $opt = shift; - - # Merge default options with supplied options - %options = (%options, %$opt); - } - - # Check usage - carp 'Usage: pod_where({options}, $pod)' unless (scalar(@_)); - - # Read argument - my $pod = shift; - - # Split on :: and then join the name together using File::Spec - my @parts = split (/::/, $pod); - - # Get full directory list - my @search_dirs = @{ $options{'-dirs'} }; - - if ($options{'-inc'}) { - - require Config; - - # Add @INC - if ($^O eq 'MacOS' && $options{'-inc'}) { - # tolerate '.', './some_dir' and '(../)+some_dir' on Mac OS - my @new_INC = @INC; - for (@new_INC) { - if ( $_ eq '.' ) { - $_ = ':'; - } elsif ( $_ =~ s{^((?:\.\./)+)}{':' x (length($1)/3)}e ) { - $_ = ':'. $_; - } else { - $_ =~ s{^\./}{:}; - } - } - push (@search_dirs, @new_INC); - } elsif ($options{'-inc'}) { - push (@search_dirs, @INC); - } - - # Add location of pod documentation for perl man pages (eg perlfunc) - # This is a pod directory in the private install tree - #my $perlpoddir = File::Spec->catdir($Config::Config{'installprivlib'}, - # 'pod'); - #push (@search_dirs, $perlpoddir) - # if -d $perlpoddir; - - # Add location of binaries such as pod2text - push (@search_dirs, $Config::Config{'scriptdir'}) - if -d $Config::Config{'scriptdir'}; - } - - warn 'Search path is: '.join(' ', @search_dirs)."\n" - if $options{'-verbose'}; - - # Loop over directories - Dir: foreach my $dir ( @search_dirs ) { - - # Don't bother if can't find the directory - if (-d $dir) { - warn "Looking in directory $dir\n" - if $options{'-verbose'}; - - # Now concatenate this directory with the pod we are searching for - my $fullname = File::Spec->catfile($dir, @parts); - $fullname = VMS::Filespec::unixify($fullname) if $^O eq 'VMS'; - warn "Filename is now $fullname\n" - if $options{'-verbose'}; - - # Loop over possible extensions - foreach my $ext ('', '.pod', '.pm', '.pl') { - my $fullext = $fullname . $ext; - if (-f $fullext && - contains_pod($fullext, $options{'-verbose'}) ) { - warn "FOUND: $fullext\n" if $options{'-verbose'}; - return $fullext; - } - } - } else { - warn "Directory $dir does not exist\n" - if $options{'-verbose'}; - next Dir; - } - # for some strange reason the path on MacOS/darwin/cygwin is - # 'pods' not 'pod' - # this could be the case also for other systems that - # have a case-tolerant file system, but File::Spec - # does not recognize 'darwin' yet. And cygwin also has "pods", - # but is not case tolerant. Oh well... - if((File::Spec->case_tolerant || $^O =~ /macos|darwin|cygwin/i) - && -d File::Spec->catdir($dir,'pods')) { - $dir = File::Spec->catdir($dir,'pods'); - redo Dir; - } - if(-d File::Spec->catdir($dir,'pod')) { - $dir = File::Spec->catdir($dir,'pod'); - redo Dir; - } - } - # No match; - return; -} - -=head2 C - -Returns true if the supplied filename (not POD module) contains some pod -information. - -=cut - -sub contains_pod { - my $file = shift; - my $verbose = 0; - $verbose = shift if @_; - - # check for one line of POD - my $podfh; - if ($] < 5.006) { - $podfh = gensym(); - } - - unless(open($podfh,"<$file")) { - warn "Error: $file is unreadable: $!\n"; - return; - } - - local $/ = undef; - my $pod = <$podfh>; - close($podfh) || die "Error closing $file: $!\n"; - unless($pod =~ /^=(head\d|pod|over|item|cut)\b/m) { - warn "No POD in $file, skipping.\n" - if($verbose); - return 0; - } - - return 1; -} - -=head1 AUTHOR - -Please report bugs using L. - -Marek Rouchal Emarekr@cpan.orgE, -heavily borrowing code from Nick Ing-Simmons' PodToHtml. - -Tim Jenness Et.jenness@jach.hawaii.eduE provided -C and C. - -B is part of the L distribution. - -=head1 SEE ALSO - -L, L, L - -=cut - -1; - diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/lib/Pod/InputObjects.pm b/gnu/usr.bin/perl/cpan/Pod-Parser/lib/Pod/InputObjects.pm deleted file mode 100644 index c4d6fc24691..00000000000 --- a/gnu/usr.bin/perl/cpan/Pod-Parser/lib/Pod/InputObjects.pm +++ /dev/null @@ -1,946 +0,0 @@ -############################################################################# -# Pod/InputObjects.pm -- package which defines objects for input streams -# and paragraphs and commands when parsing POD docs. -# -# Copyright (C) 1996-2000 by Bradford Appleton. All rights reserved. -# This file is part of "PodParser". PodParser is free software; -# you can redistribute it and/or modify it under the same terms -# as Perl itself. -############################################################################# - -package Pod::InputObjects; -use strict; - -use vars qw($VERSION); -$VERSION = '1.63'; ## Current version of this package -require 5.005; ## requires this Perl version or later - -############################################################################# - -=head1 NAME - -Pod::InputObjects - objects representing POD input paragraphs, commands, etc. - -=head1 SYNOPSIS - - use Pod::InputObjects; - -=head1 REQUIRES - -perl5.004, Carp - -=head1 EXPORTS - -Nothing. - -=head1 DESCRIPTION - -B -for all things POD.> - -This module defines some basic input objects used by B when -reading and parsing POD text from an input source. The following objects -are defined: - -=begin __PRIVATE__ - -=over 4 - -=item package B - -An object corresponding to a source of POD input text. It is mostly a -wrapper around a filehandle or C-type object (or anything -that implements the C method) which keeps track of some -additional information relevant to the parsing of PODs. - -=back - -=end __PRIVATE__ - -=over 4 - -=item package B - -An object corresponding to a paragraph of POD input text. It may be a -plain paragraph, a verbatim paragraph, or a command paragraph (see -L). - -=item package B - -An object corresponding to an interior sequence command from the POD -input text (see L). - -=item package B - -An object corresponding to a tree of parsed POD text. Each "node" in -a parse-tree (or I) is either a text-string or a reference to -a B object. The nodes appear in the parse-tree -in the order in which they were parsed from left-to-right. - -=back - -Each of these input objects are described in further detail in the -sections which follow. - -=cut - -############################################################################# - -package Pod::InputSource; - -##--------------------------------------------------------------------------- - -=begin __PRIVATE__ - -=head1 B - -This object corresponds to an input source or stream of POD -documentation. When parsing PODs, it is necessary to associate and store -certain context information with each input source. All of this -information is kept together with the stream itself in one of these -C objects. Each such object is merely a wrapper around -an C object of some kind (or at least something that -implements the C method). They have the following -methods/attributes: - -=end __PRIVATE__ - -=cut - -##--------------------------------------------------------------------------- - -=begin __PRIVATE__ - -=head2 B - - my $pod_input1 = Pod::InputSource->new(-handle => $filehandle); - my $pod_input2 = new Pod::InputSource(-handle => $filehandle, - -name => $name); - my $pod_input3 = new Pod::InputSource(-handle => \*STDIN); - my $pod_input4 = Pod::InputSource->new(-handle => \*STDIN, - -name => "(STDIN)"); - -This is a class method that constructs a C object and -returns a reference to the new input source object. It takes one or more -keyword arguments in the form of a hash. The keyword C<-handle> is -required and designates the corresponding input handle. The keyword -C<-name> is optional and specifies the name associated with the input -handle (typically a file name). - -=end __PRIVATE__ - -=cut - -sub new { - ## Determine if we were called via an object-ref or a classname - my $this = shift; - my $class = ref($this) || $this; - - ## Any remaining arguments are treated as initial values for the - ## hash that is used to represent this object. Note that we default - ## certain values by specifying them *before* the arguments passed. - ## If they are in the argument list, they will override the defaults. - my $self = { -name => '(unknown)', - -handle => undef, - -was_cutting => 0, - @_ }; - - ## Bless ourselves into the desired class and perform any initialization - bless $self, $class; - return $self; -} - -##--------------------------------------------------------------------------- - -=begin __PRIVATE__ - -=head2 B - - my $filename = $pod_input->name(); - $pod_input->name($new_filename_to_use); - -This method gets/sets the name of the input source (usually a filename). -If no argument is given, it returns a string containing the name of -the input source; otherwise it sets the name of the input source to the -contents of the given argument. - -=end __PRIVATE__ - -=cut - -sub name { - (@_ > 1) and $_[0]->{'-name'} = $_[1]; - return $_[0]->{'-name'}; -} - -## allow 'filename' as an alias for 'name' -*filename = \&name; - -##--------------------------------------------------------------------------- - -=begin __PRIVATE__ - -=head2 B - - my $handle = $pod_input->handle(); - -Returns a reference to the handle object from which input is read (the -one used to contructed this input source object). - -=end __PRIVATE__ - -=cut - -sub handle { - return $_[0]->{'-handle'}; -} - -##--------------------------------------------------------------------------- - -=begin __PRIVATE__ - -=head2 B - - print "Yes.\n" if ($pod_input->was_cutting()); - -The value of the C state (that the B method would -have returned) immediately before any input was read from this input -stream. After all input from this stream has been read, the C -state is restored to this value. - -=end __PRIVATE__ - -=cut - -sub was_cutting { - (@_ > 1) and $_[0]->{-was_cutting} = $_[1]; - return $_[0]->{-was_cutting}; -} - -##--------------------------------------------------------------------------- - -############################################################################# - -package Pod::Paragraph; - -##--------------------------------------------------------------------------- - -=head1 B - -An object representing a paragraph of POD input text. -It has the following methods/attributes: - -=cut - -##--------------------------------------------------------------------------- - -=head2 Pod::Paragraph-EB - - my $pod_para1 = Pod::Paragraph->new(-text => $text); - my $pod_para2 = Pod::Paragraph->new(-name => $cmd, - -text => $text); - my $pod_para3 = new Pod::Paragraph(-text => $text); - my $pod_para4 = new Pod::Paragraph(-name => $cmd, - -text => $text); - my $pod_para5 = Pod::Paragraph->new(-name => $cmd, - -text => $text, - -file => $filename, - -line => $line_number); - -This is a class method that constructs a C object and -returns a reference to the new paragraph object. It may be given one or -two keyword arguments. The C<-text> keyword indicates the corresponding -text of the POD paragraph. The C<-name> keyword indicates the name of -the corresponding POD command, such as C or C (it should -I contain the C<=> prefix); this is needed only if the POD -paragraph corresponds to a command paragraph. The C<-file> and C<-line> -keywords indicate the filename and line number corresponding to the -beginning of the paragraph - -=cut - -sub new { - ## Determine if we were called via an object-ref or a classname - my $this = shift; - my $class = ref($this) || $this; - - ## Any remaining arguments are treated as initial values for the - ## hash that is used to represent this object. Note that we default - ## certain values by specifying them *before* the arguments passed. - ## If they are in the argument list, they will override the defaults. - my $self = { - -name => undef, - -text => (@_ == 1) ? shift : undef, - -file => '', - -line => 0, - -prefix => '=', - -separator => ' ', - -ptree => [], - @_ - }; - - ## Bless ourselves into the desired class and perform any initialization - bless $self, $class; - return $self; -} - -##--------------------------------------------------------------------------- - -=head2 $pod_para-EB - - my $para_cmd = $pod_para->cmd_name(); - -If this paragraph is a command paragraph, then this method will return -the name of the command (I any leading C<=> prefix). - -=cut - -sub cmd_name { - (@_ > 1) and $_[0]->{'-name'} = $_[1]; - return $_[0]->{'-name'}; -} - -## let name() be an alias for cmd_name() -*name = \&cmd_name; - -##--------------------------------------------------------------------------- - -=head2 $pod_para-EB - - my $para_text = $pod_para->text(); - -This method will return the corresponding text of the paragraph. - -=cut - -sub text { - (@_ > 1) and $_[0]->{'-text'} = $_[1]; - return $_[0]->{'-text'}; -} - -##--------------------------------------------------------------------------- - -=head2 $pod_para-EB - - my $raw_pod_para = $pod_para->raw_text(); - -This method will return the I text of the POD paragraph, exactly -as it appeared in the input. - -=cut - -sub raw_text { - return $_[0]->{'-text'} unless (defined $_[0]->{'-name'}); - return $_[0]->{'-prefix'} . $_[0]->{'-name'} . - $_[0]->{'-separator'} . $_[0]->{'-text'}; -} - -##--------------------------------------------------------------------------- - -=head2 $pod_para-EB - - my $prefix = $pod_para->cmd_prefix(); - -If this paragraph is a command paragraph, then this method will return -the prefix used to denote the command (which should be the string "=" -or "=="). - -=cut - -sub cmd_prefix { - return $_[0]->{'-prefix'}; -} - -##--------------------------------------------------------------------------- - -=head2 $pod_para-EB - - my $separator = $pod_para->cmd_separator(); - -If this paragraph is a command paragraph, then this method will return -the text used to separate the command name from the rest of the -paragraph (if any). - -=cut - -sub cmd_separator { - return $_[0]->{'-separator'}; -} - -##--------------------------------------------------------------------------- - -=head2 $pod_para-EB - - my $ptree = $pod_parser->parse_text( $pod_para->text() ); - $pod_para->parse_tree( $ptree ); - $ptree = $pod_para->parse_tree(); - -This method will get/set the corresponding parse-tree of the paragraph's text. - -=cut - -sub parse_tree { - (@_ > 1) and $_[0]->{'-ptree'} = $_[1]; - return $_[0]->{'-ptree'}; -} - -## let ptree() be an alias for parse_tree() -*ptree = \&parse_tree; - -##--------------------------------------------------------------------------- - -=head2 $pod_para-EB - - my ($filename, $line_number) = $pod_para->file_line(); - my $position = $pod_para->file_line(); - -Returns the current filename and line number for the paragraph -object. If called in a list context, it returns a list of two -elements: first the filename, then the line number. If called in -a scalar context, it returns a string containing the filename, followed -by a colon (':'), followed by the line number. - -=cut - -sub file_line { - my @loc = ($_[0]->{'-file'} || '', - $_[0]->{'-line'} || 0); - return (wantarray) ? @loc : join(':', @loc); -} - -##--------------------------------------------------------------------------- - -############################################################################# - -package Pod::InteriorSequence; - -##--------------------------------------------------------------------------- - -=head1 B - -An object representing a POD interior sequence command. -It has the following methods/attributes: - -=cut - -##--------------------------------------------------------------------------- - -=head2 Pod::InteriorSequence-EB - - my $pod_seq1 = Pod::InteriorSequence->new(-name => $cmd - -ldelim => $delimiter); - my $pod_seq2 = new Pod::InteriorSequence(-name => $cmd, - -ldelim => $delimiter); - my $pod_seq3 = new Pod::InteriorSequence(-name => $cmd, - -ldelim => $delimiter, - -file => $filename, - -line => $line_number); - - my $pod_seq4 = new Pod::InteriorSequence(-name => $cmd, $ptree); - my $pod_seq5 = new Pod::InteriorSequence($cmd, $ptree); - -This is a class method that constructs a C object -and returns a reference to the new interior sequence object. It should -be given two keyword arguments. The C<-ldelim> keyword indicates the -corresponding left-delimiter of the interior sequence (e.g. 'E'). -The C<-name> keyword indicates the name of the corresponding interior -sequence command, such as C or C or C. The C<-file> and -C<-line> keywords indicate the filename and line number corresponding -to the beginning of the interior sequence. If the C<$ptree> argument is -given, it must be the last argument, and it must be either string, or -else an array-ref suitable for passing to B (or -it may be a reference to a Pod::ParseTree object). - -=cut - -sub new { - ## Determine if we were called via an object-ref or a classname - my $this = shift; - my $class = ref($this) || $this; - - ## See if first argument has no keyword - if (((@_ <= 2) or (@_ % 2)) and $_[0] !~ /^-\w/) { - ## Yup - need an implicit '-name' before first parameter - unshift @_, '-name'; - } - - ## See if odd number of args - if ((@_ % 2) != 0) { - ## Yup - need an implicit '-ptree' before the last parameter - splice @_, $#_, 0, '-ptree'; - } - - ## Any remaining arguments are treated as initial values for the - ## hash that is used to represent this object. Note that we default - ## certain values by specifying them *before* the arguments passed. - ## If they are in the argument list, they will override the defaults. - my $self = { - -name => (@_ == 1) ? $_[0] : undef, - -file => '', - -line => 0, - -ldelim => '<', - -rdelim => '>', - @_ - }; - - ## Initialize contents if they haven't been already - my $ptree = $self->{'-ptree'} || new Pod::ParseTree(); - if ( ref $ptree =~ /^(ARRAY)?$/ ) { - ## We have an array-ref, or a normal scalar. Pass it as an - ## an argument to the ptree-constructor - $ptree = new Pod::ParseTree($1 ? [$ptree] : $ptree); - } - $self->{'-ptree'} = $ptree; - - ## Bless ourselves into the desired class and perform any initialization - bless $self, $class; - return $self; -} - -##--------------------------------------------------------------------------- - -=head2 $pod_seq-EB - - my $seq_cmd = $pod_seq->cmd_name(); - -The name of the interior sequence command. - -=cut - -sub cmd_name { - (@_ > 1) and $_[0]->{'-name'} = $_[1]; - return $_[0]->{'-name'}; -} - -## let name() be an alias for cmd_name() -*name = \&cmd_name; - -##--------------------------------------------------------------------------- - -## Private subroutine to set the parent pointer of all the given -## children that are interior-sequences to be $self - -sub _set_child2parent_links { - my ($self, @children) = @_; - ## Make sure any sequences know who their parent is - for (@children) { - next unless (length and ref and ref ne 'SCALAR'); - if (UNIVERSAL::isa($_, 'Pod::InteriorSequence') or - UNIVERSAL::can($_, 'nested')) - { - $_->nested($self); - } - } -} - -## Private subroutine to unset child->parent links - -sub _unset_child2parent_links { - my $self = shift; - $self->{'-parent_sequence'} = undef; - my $ptree = $self->{'-ptree'}; - for (@$ptree) { - next unless (length and ref and ref ne 'SCALAR'); - $_->_unset_child2parent_links() - if UNIVERSAL::isa($_, 'Pod::InteriorSequence'); - } -} - -##--------------------------------------------------------------------------- - -=head2 $pod_seq-EB - - $pod_seq->prepend($text); - $pod_seq1->prepend($pod_seq2); - -Prepends the given string or parse-tree or sequence object to the parse-tree -of this interior sequence. - -=cut - -sub prepend { - my $self = shift; - $self->{'-ptree'}->prepend(@_); - _set_child2parent_links($self, @_); - return $self; -} - -##--------------------------------------------------------------------------- - -=head2 $pod_seq-EB - - $pod_seq->append($text); - $pod_seq1->append($pod_seq2); - -Appends the given string or parse-tree or sequence object to the parse-tree -of this interior sequence. - -=cut - -sub append { - my $self = shift; - $self->{'-ptree'}->append(@_); - _set_child2parent_links($self, @_); - return $self; -} - -##--------------------------------------------------------------------------- - -=head2 $pod_seq-EB - - $outer_seq = $pod_seq->nested || print "not nested"; - -If this interior sequence is nested inside of another interior -sequence, then the outer/parent sequence that contains it is -returned. Otherwise C is returned. - -=cut - -sub nested { - my $self = shift; - (@_ == 1) and $self->{'-parent_sequence'} = shift; - return $self->{'-parent_sequence'} || undef; -} - -##--------------------------------------------------------------------------- - -=head2 $pod_seq-EB - - my $seq_raw_text = $pod_seq->raw_text(); - -This method will return the I text of the POD interior sequence, -exactly as it appeared in the input. - -=cut - -sub raw_text { - my $self = shift; - my $text = $self->{'-name'} . $self->{'-ldelim'}; - for ( $self->{'-ptree'}->children ) { - $text .= (ref $_) ? $_->raw_text : $_; - } - $text .= $self->{'-rdelim'}; - return $text; -} - -##--------------------------------------------------------------------------- - -=head2 $pod_seq-EB - - my $ldelim = $pod_seq->left_delimiter(); - -The leftmost delimiter beginning the argument text to the interior -sequence (should be "<"). - -=cut - -sub left_delimiter { - (@_ > 1) and $_[0]->{'-ldelim'} = $_[1]; - return $_[0]->{'-ldelim'}; -} - -## let ldelim() be an alias for left_delimiter() -*ldelim = \&left_delimiter; - -##--------------------------------------------------------------------------- - -=head2 $pod_seq-EB - -The rightmost delimiter beginning the argument text to the interior -sequence (should be ">"). - -=cut - -sub right_delimiter { - (@_ > 1) and $_[0]->{'-rdelim'} = $_[1]; - return $_[0]->{'-rdelim'}; -} - -## let rdelim() be an alias for right_delimiter() -*rdelim = \&right_delimiter; - -##--------------------------------------------------------------------------- - -=head2 $pod_seq-EB - - my $ptree = $pod_parser->parse_text($paragraph_text); - $pod_seq->parse_tree( $ptree ); - $ptree = $pod_seq->parse_tree(); - -This method will get/set the corresponding parse-tree of the interior -sequence's text. - -=cut - -sub parse_tree { - (@_ > 1) and $_[0]->{'-ptree'} = $_[1]; - return $_[0]->{'-ptree'}; -} - -## let ptree() be an alias for parse_tree() -*ptree = \&parse_tree; - -##--------------------------------------------------------------------------- - -=head2 $pod_seq-EB - - my ($filename, $line_number) = $pod_seq->file_line(); - my $position = $pod_seq->file_line(); - -Returns the current filename and line number for the interior sequence -object. If called in a list context, it returns a list of two -elements: first the filename, then the line number. If called in -a scalar context, it returns a string containing the filename, followed -by a colon (':'), followed by the line number. - -=cut - -sub file_line { - my @loc = ($_[0]->{'-file'} || '', - $_[0]->{'-line'} || 0); - return (wantarray) ? @loc : join(':', @loc); -} - -##--------------------------------------------------------------------------- - -=head2 Pod::InteriorSequence::B - -This method performs any necessary cleanup for the interior-sequence. -If you override this method then it is B that you invoke -the parent method from within your own method, otherwise -I - -=cut - -sub DESTROY { - ## We need to get rid of all child->parent pointers throughout the - ## tree so their reference counts will go to zero and they can be - ## garbage-collected - _unset_child2parent_links(@_); -} - -##--------------------------------------------------------------------------- - -############################################################################# - -package Pod::ParseTree; - -##--------------------------------------------------------------------------- - -=head1 B - -This object corresponds to a tree of parsed POD text. As POD text is -scanned from left to right, it is parsed into an ordered list of -text-strings and B objects (in order of -appearance). A B object corresponds to this list of -strings and sequences. Each interior sequence in the parse-tree may -itself contain a parse-tree (since interior sequences may be nested). - -=cut - -##--------------------------------------------------------------------------- - -=head2 Pod::ParseTree-EB - - my $ptree1 = Pod::ParseTree->new; - my $ptree2 = new Pod::ParseTree; - my $ptree4 = Pod::ParseTree->new($array_ref); - my $ptree3 = new Pod::ParseTree($array_ref); - -This is a class method that constructs a C object and -returns a reference to the new parse-tree. If a single-argument is given, -it must be a reference to an array, and is used to initialize the root -(top) of the parse tree. - -=cut - -sub new { - ## Determine if we were called via an object-ref or a classname - my $this = shift; - my $class = ref($this) || $this; - - my $self = (@_ == 1 and ref $_[0]) ? $_[0] : []; - - ## Bless ourselves into the desired class and perform any initialization - bless $self, $class; - return $self; -} - -##--------------------------------------------------------------------------- - -=head2 $ptree-EB - - my $top_node = $ptree->top(); - $ptree->top( $top_node ); - $ptree->top( @children ); - -This method gets/sets the top node of the parse-tree. If no arguments are -given, it returns the topmost node in the tree (the root), which is also -a B. If it is given a single argument that is a reference, -then the reference is assumed to a parse-tree and becomes the new top node. -Otherwise, if arguments are given, they are treated as the new list of -children for the top node. - -=cut - -sub top { - my $self = shift; - if (@_ > 0) { - @{ $self } = (@_ == 1 and ref $_[0]) ? ${ @_ } : @_; - } - return $self; -} - -## let parse_tree() & ptree() be aliases for the 'top' method -*parse_tree = *ptree = \⊤ - -##--------------------------------------------------------------------------- - -=head2 $ptree-EB - -This method gets/sets the children of the top node in the parse-tree. -If no arguments are given, it returns the list (array) of children -(each of which should be either a string or a B. -Otherwise, if arguments are given, they are treated as the new list of -children for the top node. - -=cut - -sub children { - my $self = shift; - if (@_ > 0) { - @{ $self } = (@_ == 1 and ref $_[0]) ? ${ @_ } : @_; - } - return @{ $self }; -} - -##--------------------------------------------------------------------------- - -=head2 $ptree-EB - -This method prepends the given text or parse-tree to the current parse-tree. -If the first item on the parse-tree is text and the argument is also text, -then the text is prepended to the first item (not added as a separate string). -Otherwise the argument is added as a new string or parse-tree I -the current one. - -=cut - -use vars qw(@ptree); ## an alias used for performance reasons - -sub prepend { - my $self = shift; - local *ptree = $self; - for (@_) { - next unless length; - if (@ptree && !(ref $ptree[0]) && !(ref $_)) { - $ptree[0] = $_ . $ptree[0]; - } - else { - unshift @ptree, $_; - } - } -} - -##--------------------------------------------------------------------------- - -=head2 $ptree-EB - -This method appends the given text or parse-tree to the current parse-tree. -If the last item on the parse-tree is text and the argument is also text, -then the text is appended to the last item (not added as a separate string). -Otherwise the argument is added as a new string or parse-tree I -the current one. - -=cut - -sub append { - my $self = shift; - local *ptree = $self; - my $can_append = @ptree && !(ref $ptree[-1]); - for (@_) { - if (ref) { - push @ptree, $_; - } - elsif(!length) { - next; - } - elsif ($can_append) { - $ptree[-1] .= $_; - } - else { - push @ptree, $_; - } - } -} - -=head2 $ptree-EB - - my $ptree_raw_text = $ptree->raw_text(); - -This method will return the I text of the POD parse-tree -exactly as it appeared in the input. - -=cut - -sub raw_text { - my $self = shift; - my $text = ''; - for ( @$self ) { - $text .= (ref $_) ? $_->raw_text : $_; - } - return $text; -} - -##--------------------------------------------------------------------------- - -## Private routines to set/unset child->parent links - -sub _unset_child2parent_links { - my $self = shift; - local *ptree = $self; - for (@ptree) { - next unless (defined and length and ref and ref ne 'SCALAR'); - $_->_unset_child2parent_links() - if UNIVERSAL::isa($_, 'Pod::InteriorSequence'); - } -} - -sub _set_child2parent_links { - ## nothing to do, Pod::ParseTrees cant have parent pointers -} - -=head2 Pod::ParseTree::B - -This method performs any necessary cleanup for the parse-tree. -If you override this method then it is B -that you invoke the parent method from within your own method, -otherwise I - -=cut - -sub DESTROY { - ## We need to get rid of all child->parent pointers throughout the - ## tree so their reference counts will go to zero and they can be - ## garbage-collected - _unset_child2parent_links(@_); -} - -############################################################################# - -=head1 SEE ALSO - -B is part of the L distribution. - -See L, L - -=head1 AUTHOR - -Please report bugs using L. - -Brad Appleton Ebradapp@enteract.comE - -=cut - -1; diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/lib/Pod/ParseUtils.pm b/gnu/usr.bin/perl/cpan/Pod-Parser/lib/Pod/ParseUtils.pm deleted file mode 100644 index 2afd0cd420e..00000000000 --- a/gnu/usr.bin/perl/cpan/Pod-Parser/lib/Pod/ParseUtils.pm +++ /dev/null @@ -1,861 +0,0 @@ -############################################################################# -# Pod/ParseUtils.pm -- helpers for POD parsing and conversion -# -# Copyright (C) 1999-2000 by Marek Rouchal. All rights reserved. -# This file is part of "PodParser". PodParser is free software; -# you can redistribute it and/or modify it under the same terms -# as Perl itself. -############################################################################# - -package Pod::ParseUtils; -use strict; - -use vars qw($VERSION); -$VERSION = '1.63'; ## Current version of this package -require 5.005; ## requires this Perl version or later - -=head1 NAME - -Pod::ParseUtils - helpers for POD parsing and conversion - -=head1 SYNOPSIS - - use Pod::ParseUtils; - - my $list = new Pod::List; - my $link = Pod::Hyperlink->new('Pod::Parser'); - -=head1 DESCRIPTION - -B -for all things POD.> - -B contains a few object-oriented helper packages for -POD parsing and processing (i.e. in POD formatters and translators). - -=cut - -#----------------------------------------------------------------------------- -# Pod::List -# -# class to hold POD list info (=over, =item, =back) -#----------------------------------------------------------------------------- - -package Pod::List; - -use Carp; - -=head2 Pod::List - -B can be used to hold information about POD lists -(written as =over ... =item ... =back) for further processing. -The following methods are available: - -=over 4 - -=item Pod::List-Enew() - -Create a new list object. Properties may be specified through a hash -reference like this: - - my $list = Pod::List->new({ -start => $., -indent => 4 }); - -See the individual methods/properties for details. - -=cut - -sub new { - my $this = shift; - my $class = ref($this) || $this; - my %params = @_; - my $self = {%params}; - bless $self, $class; - $self->initialize(); - return $self; -} - -sub initialize { - my $self = shift; - $self->{-file} ||= 'unknown'; - $self->{-start} ||= 'unknown'; - $self->{-indent} ||= 4; # perlpod: "should be the default" - $self->{_items} = []; - $self->{-type} ||= ''; -} - -=item $list-Efile() - -Without argument, retrieves the file name the list is in. This must -have been set before by either specifying B<-file> in the B -method or by calling the B method with a scalar argument. - -=cut - -# The POD file name the list appears in -sub file { - return (@_ > 1) ? ($_[0]->{-file} = $_[1]) : $_[0]->{-file}; -} - -=item $list-Estart() - -Without argument, retrieves the line number where the list started. -This must have been set before by either specifying B<-start> in the -B method or by calling the B method with a scalar -argument. - -=cut - -# The line in the file the node appears -sub start { - return (@_ > 1) ? ($_[0]->{-start} = $_[1]) : $_[0]->{-start}; -} - -=item $list-Eindent() - -Without argument, retrieves the indent level of the list as specified -in C<=over n>. This must have been set before by either specifying -B<-indent> in the B method or by calling the B method -with a scalar argument. - -=cut - -# indent level -sub indent { - return (@_ > 1) ? ($_[0]->{-indent} = $_[1]) : $_[0]->{-indent}; -} - -=item $list-Etype() - -Without argument, retrieves the list type, which can be an arbitrary value, -e.g. C
    , C
      , ... when thinking the HTML way. -This must have been set before by either specifying -B<-type> in the B method or by calling the B method -with a scalar argument. - -=cut - -# The type of the list (UL, OL, ...) -sub type { - return (@_ > 1) ? ($_[0]->{-type} = $_[1]) : $_[0]->{-type}; -} - -=item $list-Erx() - -Without argument, retrieves a regular expression for simplifying the -individual item strings once the list type has been determined. Usage: -E.g. when converting to HTML, one might strip the leading number in -an ordered list as COLE> already prints numbers itself. -This must have been set before by either specifying -B<-rx> in the B method or by calling the B method -with a scalar argument. - -=cut - -# The regular expression to simplify the items -sub rx { - return (@_ > 1) ? ($_[0]->{-rx} = $_[1]) : $_[0]->{-rx}; -} - -=item $list-Eitem() - -Without argument, retrieves the array of the items in this list. -The items may be represented by any scalar. -If an argument has been given, it is pushed on the list of items. - -=cut - -# The individual =items of this list -sub item { - my ($self,$item) = @_; - if(defined $item) { - push(@{$self->{_items}}, $item); - return $item; - } - else { - return @{$self->{_items}}; - } -} - -=item $list-Eparent() - -Without argument, retrieves information about the parent holding this -list, which is represented as an arbitrary scalar. -This must have been set before by either specifying -B<-parent> in the B method or by calling the B method -with a scalar argument. - -=cut - -# possibility for parsers/translators to store information about the -# lists's parent object -sub parent { - return (@_ > 1) ? ($_[0]->{-parent} = $_[1]) : $_[0]->{-parent}; -} - -=item $list-Etag() - -Without argument, retrieves information about the list tag, which can be -any scalar. -This must have been set before by either specifying -B<-tag> in the B method or by calling the B method -with a scalar argument. - -=back - -=cut - -# possibility for parsers/translators to store information about the -# list's object -sub tag { - return (@_ > 1) ? ($_[0]->{-tag} = $_[1]) : $_[0]->{-tag}; -} - -#----------------------------------------------------------------------------- -# Pod::Hyperlink -# -# class to manipulate POD hyperlinks (L<>) -#----------------------------------------------------------------------------- - -package Pod::Hyperlink; - -=head2 Pod::Hyperlink - -B is a class for manipulation of POD hyperlinks. Usage: - - my $link = Pod::Hyperlink->new('alternative text|page/"section in page"'); - -The B class is mainly designed to parse the contents of the -C...E> sequence, providing a simple interface for accessing the -different parts of a POD hyperlink for further processing. It can also be -used to construct hyperlinks. - -=over 4 - -=item Pod::Hyperlink-Enew() - -The B method can either be passed a set of key/value pairs or a single -scalar value, namely the contents of a C...E> sequence. An object -of the class C is returned. The value C indicates a -failure, the error message is stored in C<$@>. - -=cut - -use Carp; - -sub new { - my $this = shift; - my $class = ref($this) || $this; - my $self = +{}; - bless $self, $class; - $self->initialize(); - if(defined $_[0]) { - if(ref($_[0])) { - # called with a list of parameters - %$self = %{$_[0]}; - $self->_construct_text(); - } - else { - # called with L<> contents - return unless($self->parse($_[0])); - } - } - return $self; -} - -sub initialize { - my $self = shift; - $self->{-line} ||= 'undef'; - $self->{-file} ||= 'undef'; - $self->{-page} ||= ''; - $self->{-node} ||= ''; - $self->{-alttext} ||= ''; - $self->{-type} ||= 'undef'; - $self->{_warnings} = []; -} - -=item $link-Eparse($string) - -This method can be used to (re)parse a (new) hyperlink, i.e. the contents -of a C...E> sequence. The result is stored in the current object. -Warnings are stored in the B property. -E.g. sections like Copen(2)E> are deprecated, as they do not point -to Perl documents. CDBI::foo(3p)E> is wrong as well, the manpage -section can simply be dropped. - -=cut - -sub parse { - my $self = shift; - local($_) = $_[0]; - # syntax check the link and extract destination - my ($alttext,$page,$node,$type,$quoted) = (undef,'','','',0); - - $self->{_warnings} = []; - - # collapse newlines with whitespace - s/\s*\n+\s*/ /g; - - # strip leading/trailing whitespace - if(s/^[\s\n]+//) { - $self->warning('ignoring leading whitespace in link'); - } - if(s/[\s\n]+$//) { - $self->warning('ignoring trailing whitespace in link'); - } - unless(length($_)) { - _invalid_link('empty link'); - return; - } - - ## Check for different possibilities. This is tedious and error-prone - # we match all possibilities (alttext, page, section/item) - #warn "DEBUG: link=$_\n"; - - # only page - # problem: a lot of people use (), or (1) or the like to indicate - # man page sections. But this collides with L that is supposed - # to point to an internal function... - my $page_rx = '[\w.-]+(?:::[\w.-]+)*(?:[(](?:\d\w*|)[)]|)'; - # page name only - if(/^($page_rx)$/o) { - $page = $1; - $type = 'page'; - } - # alttext, page and "section" - elsif(m{^(.*?)\s*[|]\s*($page_rx)\s*/\s*"(.+)"$}o) { - ($alttext, $page, $node) = ($1, $2, $3); - $type = 'section'; - $quoted = 1; #... therefore | and / are allowed - } - # alttext and page - elsif(/^(.*?)\s*[|]\s*($page_rx)$/o) { - ($alttext, $page) = ($1, $2); - $type = 'page'; - } - # alttext and "section" - elsif(m{^(.*?)\s*[|]\s*(?:/\s*|)"(.+)"$}) { - ($alttext, $node) = ($1,$2); - $type = 'section'; - $quoted = 1; - } - # page and "section" - elsif(m{^($page_rx)\s*/\s*"(.+)"$}o) { - ($page, $node) = ($1, $2); - $type = 'section'; - $quoted = 1; - } - # page and item - elsif(m{^($page_rx)\s*/\s*(.+)$}o) { - ($page, $node) = ($1, $2); - $type = 'item'; - } - # only "section" - elsif(m{^/?"(.+)"$}) { - $node = $1; - $type = 'section'; - $quoted = 1; - } - # only item - elsif(m{^\s*/(.+)$}) { - $node = $1; - $type = 'item'; - } - - # non-standard: Hyperlink with alt-text - doesn't remove protocol prefix, maybe it should? - elsif(/^ \s* (.*?) \s* [|] \s* (\w+:[^:\s] [^\s|]*?) \s* $/ix) { - ($alttext,$node) = ($1,$2); - $type = 'hyperlink'; - } - - # non-standard: Hyperlink - elsif(/^(\w+:[^:\s]\S*)$/i) { - $node = $1; - $type = 'hyperlink'; - } - # alttext, page and item - elsif(m{^(.*?)\s*[|]\s*($page_rx)\s*/\s*(.+)$}o) { - ($alttext, $page, $node) = ($1, $2, $3); - $type = 'item'; - } - # alttext and item - elsif(m{^(.*?)\s*[|]\s*/(.+)$}) { - ($alttext, $node) = ($1,$2); - } - # must be an item or a "malformed" section (without "") - else { - $node = $_; - $type = 'item'; - } - # collapse whitespace in nodes - $node =~ s/\s+/ /gs; - - # empty alternative text expands to node name - if(defined $alttext) { - if(!length($alttext)) { - $alttext = $node || $page; - } - } - else { - $alttext = ''; - } - - if($page =~ /[(]\w*[)]$/) { - $self->warning("(section) in '$page' deprecated"); - } - if(!$quoted && $node =~ m{[|/]} && $type ne 'hyperlink') { - $self->warning("node '$node' contains non-escaped | or /"); - } - if($alttext =~ m{[|/]}) { - $self->warning("alternative text '$node' contains non-escaped | or /"); - } - $self->{-page} = $page; - $self->{-node} = $node; - $self->{-alttext} = $alttext; - #warn "DEBUG: page=$page section=$section item=$item alttext=$alttext\n"; - $self->{-type} = $type; - $self->_construct_text(); - 1; -} - -sub _construct_text { - my $self = shift; - my $alttext = $self->alttext(); - my $type = $self->type(); - my $section = $self->node(); - my $page = $self->page(); - my $page_ext = ''; - $page =~ s/([(]\w*[)])$// && ($page_ext = $1); - if($alttext) { - $self->{_text} = $alttext; - } - elsif($type eq 'hyperlink') { - $self->{_text} = $section; - } - else { - $self->{_text} = ($section || '') . - (($page && $section) ? ' in ' : '') . - "$page$page_ext"; - } - # for being marked up later - # use the non-standard markers P<> and Q<>, so that the resulting - # text can be parsed by the translators. It's their job to put - # the correct hypertext around the linktext - if($alttext) { - $self->{_markup} = "Q<$alttext>"; - } - elsif($type eq 'hyperlink') { - $self->{_markup} = "Q<$section>"; - } - else { - $self->{_markup} = (!$section ? '' : "Q<$section>") . - ($page ? ($section ? ' in ':'') . "P<$page>$page_ext" : ''); - } -} - -=item $link-Emarkup($string) - -Set/retrieve the textual value of the link. This string contains special -markers CE> and CE> that should be expanded by the -translator's interior sequence expansion engine to the -formatter-specific code to highlight/activate the hyperlink. The details -have to be implemented in the translator. - -=cut - -#' retrieve/set markuped text -sub markup { - return (@_ > 1) ? ($_[0]->{_markup} = $_[1]) : $_[0]->{_markup}; -} - -=item $link-Etext() - -This method returns the textual representation of the hyperlink as above, -but without markers (read only). Depending on the link type this is one of -the following alternatives (the + and * denote the portions of the text -that are marked up): - - +perl+ L - *$|* in +perlvar+ L - *OPTIONS* in +perldoc+ L - *DESCRIPTION* L<"DESCRIPTION"> - -=cut - -# The complete link's text -sub text { - return $_[0]->{_text}; -} - -=item $link-Ewarning() - -After parsing, this method returns any warnings encountered during the -parsing process. - -=cut - -# Set/retrieve warnings -sub warning { - my $self = shift; - if(@_) { - push(@{$self->{_warnings}}, @_); - return @_; - } - return @{$self->{_warnings}}; -} - -=item $link-Efile() - -=item $link-Eline() - -Just simple slots for storing information about the line and the file -the link was encountered in. Has to be filled in manually. - -=cut - -# The line in the file the link appears -sub line { - return (@_ > 1) ? ($_[0]->{-line} = $_[1]) : $_[0]->{-line}; -} - -# The POD file name the link appears in -sub file { - return (@_ > 1) ? ($_[0]->{-file} = $_[1]) : $_[0]->{-file}; -} - -=item $link-Epage() - -This method sets or returns the POD page this link points to. - -=cut - -# The POD page the link appears on -sub page { - if (@_ > 1) { - $_[0]->{-page} = $_[1]; - $_[0]->_construct_text(); - } - return $_[0]->{-page}; -} - -=item $link-Enode() - -As above, but the destination node text of the link. - -=cut - -# The link destination -sub node { - if (@_ > 1) { - $_[0]->{-node} = $_[1]; - $_[0]->_construct_text(); - } - return $_[0]->{-node}; -} - -=item $link-Ealttext() - -Sets or returns an alternative text specified in the link. - -=cut - -# Potential alternative text -sub alttext { - if (@_ > 1) { - $_[0]->{-alttext} = $_[1]; - $_[0]->_construct_text(); - } - return $_[0]->{-alttext}; -} - -=item $link-Etype() - -The node type, either C
      or C. As an unofficial type, -there is also C, derived from e.g. Chttp://perl.comE> - -=cut - -# The type: item or headn -sub type { - return (@_ > 1) ? ($_[0]->{-type} = $_[1]) : $_[0]->{-type}; -} - -=item $link-Elink() - -Returns the link as contents of CE>. Reciprocal to B. - -=back - -=cut - -# The link itself -sub link { - my $self = shift; - my $link = $self->page() || ''; - if($self->node()) { - my $node = $self->node(); - $node =~ s/\|/E/g; - $node =~ s{/}{E}g; - if($self->type() eq 'section') { - $link .= ($link ? '/' : '') . '"' . $node . '"'; - } - elsif($self->type() eq 'hyperlink') { - $link = $self->node(); - } - else { # item - $link .= '/' . $node; - } - } - if($self->alttext()) { - my $text = $self->alttext(); - $text =~ s/\|/E/g; - $text =~ s{/}{E}g; - $link = "$text|$link"; - } - return $link; -} - -sub _invalid_link { - my ($msg) = @_; - # this sets @_ - #eval { die "$msg\n" }; - #chomp $@; - $@ = $msg; # this seems to work, too! - return; -} - -#----------------------------------------------------------------------------- -# Pod::Cache -# -# class to hold POD page details -#----------------------------------------------------------------------------- - -package Pod::Cache; - -=head2 Pod::Cache - -B holds information about a set of POD documents, -especially the nodes for hyperlinks. -The following methods are available: - -=over 4 - -=item Pod::Cache-Enew() - -Create a new cache object. This object can hold an arbitrary number of -POD documents of class Pod::Cache::Item. - -=cut - -sub new { - my $this = shift; - my $class = ref($this) || $this; - my $self = []; - bless $self, $class; - return $self; -} - -=item $cache-Eitem() - -Add a new item to the cache. Without arguments, this method returns a -list of all cache elements. - -=cut - -sub item { - my ($self,%param) = @_; - if(%param) { - my $item = Pod::Cache::Item->new(%param); - push(@$self, $item); - return $item; - } - else { - return @{$self}; - } -} - -=item $cache-Efind_page($name) - -Look for a POD document named C<$name> in the cache. Returns the -reference to the corresponding Pod::Cache::Item object or undef if -not found. - -=back - -=cut - -sub find_page { - my ($self,$page) = @_; - foreach(@$self) { - if($_->page() eq $page) { - return $_; - } - } - return; -} - -package Pod::Cache::Item; - -=head2 Pod::Cache::Item - -B holds information about individual POD documents, -that can be grouped in a Pod::Cache object. -It is intended to hold information about the hyperlink nodes of POD -documents. -The following methods are available: - -=over 4 - -=item Pod::Cache::Item-Enew() - -Create a new object. - -=cut - -sub new { - my $this = shift; - my $class = ref($this) || $this; - my %params = @_; - my $self = {%params}; - bless $self, $class; - $self->initialize(); - return $self; -} - -sub initialize { - my $self = shift; - $self->{-nodes} = [] unless(defined $self->{-nodes}); -} - -=item $cacheitem-Epage() - -Set/retrieve the POD document name (e.g. "Pod::Parser"). - -=cut - -# The POD page -sub page { - return (@_ > 1) ? ($_[0]->{-page} = $_[1]) : $_[0]->{-page}; -} - -=item $cacheitem-Edescription() - -Set/retrieve the POD short description as found in the C<=head1 NAME> -section. - -=cut - -# The POD description, taken out of NAME if present -sub description { - return (@_ > 1) ? ($_[0]->{-description} = $_[1]) : $_[0]->{-description}; -} - -=item $cacheitem-Epath() - -Set/retrieve the POD file storage path. - -=cut - -# The file path -sub path { - return (@_ > 1) ? ($_[0]->{-path} = $_[1]) : $_[0]->{-path}; -} - -=item $cacheitem-Efile() - -Set/retrieve the POD file name. - -=cut - -# The POD file name -sub file { - return (@_ > 1) ? ($_[0]->{-file} = $_[1]) : $_[0]->{-file}; -} - -=item $cacheitem-Enodes() - -Add a node (or a list of nodes) to the document's node list. Note that -the order is kept, i.e. start with the first node and end with the last. -If no argument is given, the current list of nodes is returned in the -same order the nodes have been added. -A node can be any scalar, but usually is a pair of node string and -unique id for the C method to work correctly. - -=cut - -# The POD nodes -sub nodes { - my ($self,@nodes) = @_; - if(@nodes) { - push(@{$self->{-nodes}}, @nodes); - return @nodes; - } - else { - return @{$self->{-nodes}}; - } -} - -=item $cacheitem-Efind_node($name) - -Look for a node or index entry named C<$name> in the object. -Returns the unique id of the node (i.e. the second element of the array -stored in the node array) or undef if not found. - -=cut - -sub find_node { - my ($self,$node) = @_; - my @search; - push(@search, @{$self->{-nodes}}) if($self->{-nodes}); - push(@search, @{$self->{-idx}}) if($self->{-idx}); - foreach(@search) { - if($_->[0] eq $node) { - return $_->[1]; # id - } - } - return; -} - -=item $cacheitem-Eidx() - -Add an index entry (or a list of them) to the document's index list. Note that -the order is kept, i.e. start with the first node and end with the last. -If no argument is given, the current list of index entries is returned in the -same order the entries have been added. -An index entry can be any scalar, but usually is a pair of string and -unique id. - -=back - -=cut - -# The POD index entries -sub idx { - my ($self,@idx) = @_; - if(@idx) { - push(@{$self->{-idx}}, @idx); - return @idx; - } - else { - return @{$self->{-idx}}; - } -} - -=head1 AUTHOR - -Please report bugs using L. - -Marek Rouchal Emarekr@cpan.orgE, borrowing -a lot of things from L and L as well as other POD -processing tools by Tom Christiansen, Brad Appleton and Russ Allbery. - -B is part of the L distribution. - -=head1 SEE ALSO - -L, L, L, L, -L - -=cut - -1; diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/lib/Pod/Parser.pm b/gnu/usr.bin/perl/cpan/Pod-Parser/lib/Pod/Parser.pm deleted file mode 100644 index 63edcd2e197..00000000000 --- a/gnu/usr.bin/perl/cpan/Pod-Parser/lib/Pod/Parser.pm +++ /dev/null @@ -1,1836 +0,0 @@ -############################################################################# -# Pod/Parser.pm -- package which defines a base class for parsing POD docs. -# -# Copyright (C) 1996-2000 by Bradford Appleton. All rights reserved. -# This file is part of "PodParser". PodParser is free software; -# you can redistribute it and/or modify it under the same terms -# as Perl itself. -############################################################################# - -package Pod::Parser; -use strict; - -## These "variables" are used as local "glob aliases" for performance -use vars qw($VERSION @ISA %myData %myOpts @input_stack); -$VERSION = '1.63'; ## Current version of this package -require 5.005; ## requires this Perl version or later - -############################################################################# - -=head1 NAME - -Pod::Parser - base class for creating POD filters and translators - -=head1 SYNOPSIS - - use Pod::Parser; - - package MyParser; - @ISA = qw(Pod::Parser); - - sub command { - my ($parser, $command, $paragraph, $line_num) = @_; - ## Interpret the command and its text; sample actions might be: - if ($command eq 'head1') { ... } - elsif ($command eq 'head2') { ... } - ## ... other commands and their actions - my $out_fh = $parser->output_handle(); - my $expansion = $parser->interpolate($paragraph, $line_num); - print $out_fh $expansion; - } - - sub verbatim { - my ($parser, $paragraph, $line_num) = @_; - ## Format verbatim paragraph; sample actions might be: - my $out_fh = $parser->output_handle(); - print $out_fh $paragraph; - } - - sub textblock { - my ($parser, $paragraph, $line_num) = @_; - ## Translate/Format this block of text; sample actions might be: - my $out_fh = $parser->output_handle(); - my $expansion = $parser->interpolate($paragraph, $line_num); - print $out_fh $expansion; - } - - sub interior_sequence { - my ($parser, $seq_command, $seq_argument) = @_; - ## Expand an interior sequence; sample actions might be: - return "*$seq_argument*" if ($seq_command eq 'B'); - return "`$seq_argument'" if ($seq_command eq 'C'); - return "_${seq_argument}_'" if ($seq_command eq 'I'); - ## ... other sequence commands and their resulting text - } - - package main; - - ## Create a parser object and have it parse file whose name was - ## given on the command-line (use STDIN if no files were given). - $parser = new MyParser(); - $parser->parse_from_filehandle(\*STDIN) if (@ARGV == 0); - for (@ARGV) { $parser->parse_from_file($_); } - -=head1 REQUIRES - -perl5.005, Pod::InputObjects, Exporter, Symbol, Carp - -=head1 EXPORTS - -Nothing. - -=head1 DESCRIPTION - -B -for all things POD.> - -B is a base class for creating POD filters and translators. -It handles most of the effort involved with parsing the POD sections -from an input stream, leaving subclasses free to be concerned only with -performing the actual translation of text. - -B parses PODs, and makes method calls to handle the various -components of the POD. Subclasses of B override these methods -to translate the POD into whatever output format they desire. - -=head1 QUICK OVERVIEW - -To create a POD filter for translating POD documentation into some other -format, you create a subclass of B which typically overrides -just the base class implementation for the following methods: - -=over 2 - -=item * - -B - -=item * - -B - -=item * - -B - -=item * - -B - -=back - -You may also want to override the B and B -methods for your subclass (to perform any needed per-file and/or -per-document initialization or cleanup). - -If you need to perform any preprocessing of input before it is parsed -you may want to override one or more of B and/or -B. - -Sometimes it may be necessary to make more than one pass over the input -files. If this is the case you have several options. You can make the -first pass using B and override your methods to store the -intermediate results in memory somewhere for the B method to -process. You could use B for several passes with an -appropriate state variable to control the operation for each pass. If -your input source can't be reset to start at the beginning, you can -store it in some other structure as a string or an array and have that -structure implement a B method (which is all that -B uses to read input). - -Feel free to add any member data fields you need to keep track of things -like current font, indentation, horizontal or vertical position, or -whatever else you like. Be sure to read L<"PRIVATE METHODS AND DATA"> -to avoid name collisions. - -For the most part, the B base class should be able to -do most of the input parsing for you and leave you free to worry about -how to interpret the commands and translate the result. - -Note that all we have described here in this quick overview is the -simplest most straightforward use of B to do stream-based -parsing. It is also possible to use the B function -to do more sophisticated tree-based parsing. See L<"TREE-BASED PARSING">. - -=head1 PARSING OPTIONS - -A I is simply a named option of B with a -value that corresponds to a certain specified behavior. These various -behaviors of B may be enabled/disabled by setting -or unsetting one or more I using the B method. -The set of currently accepted parse-options is as follows: - -=over 3 - -=item B<-want_nonPODs> (default: unset) - -Normally (by default) B will only provide access to -the POD sections of the input. Input paragraphs that are not part -of the POD-format documentation are not made available to the caller -(not even using B). Setting this option to a -non-empty, non-zero value will allow B to see -non-POD sections of the input as well as POD sections. The B -method can be used to determine if the corresponding paragraph is a POD -paragraph, or some other input paragraph. - -=item B<-process_cut_cmd> (default: unset) - -Normally (by default) B handles the C<=cut> POD directive -by itself and does not pass it on to the caller for processing. Setting -this option to a non-empty, non-zero value will cause B to -pass the C<=cut> directive to the caller just like any other POD command -(and hence it may be processed by the B method). - -B will still interpret the C<=cut> directive to mean that -"cutting mode" has been (re)entered, but the caller will get a chance -to capture the actual C<=cut> paragraph itself for whatever purpose -it desires. - -=item B<-warnings> (default: unset) - -Normally (by default) B recognizes a bare minimum of -pod syntax errors and warnings and issues diagnostic messages -for errors, but not for warnings. (Use B to do more -thorough checking of POD syntax.) Setting this option to a non-empty, -non-zero value will cause B to issue diagnostics for -the few warnings it recognizes as well as the errors. - -=back - -Please see L<"parseopts()"> for a complete description of the interface -for the setting and unsetting of parse-options. - -=cut - -############################################################################# - -#use diagnostics; -use Pod::InputObjects; -use Carp; -use Exporter; -BEGIN { - if ($] < 5.006) { - require Symbol; - import Symbol; - } -} -@ISA = qw(Exporter); - -############################################################################# - -=head1 RECOMMENDED SUBROUTINE/METHOD OVERRIDES - -B provides several methods which most subclasses will probably -want to override. These methods are as follows: - -=cut - -##--------------------------------------------------------------------------- - -=head1 B - - $parser->command($cmd,$text,$line_num,$pod_para); - -This method should be overridden by subclasses to take the appropriate -action when a POD command paragraph (denoted by a line beginning with -"=") is encountered. When such a POD directive is seen in the input, -this method is called and is passed: - -=over 3 - -=item C<$cmd> - -the name of the command for this POD paragraph - -=item C<$text> - -the paragraph text for the given POD paragraph command. - -=item C<$line_num> - -the line-number of the beginning of the paragraph - -=item C<$pod_para> - -a reference to a C object which contains further -information about the paragraph command (see L -for details). - -=back - -B that this method I called for C<=pod> paragraphs. - -The base class implementation of this method simply treats the raw POD -command as normal block of paragraph text (invoking the B -method with the command paragraph). - -=cut - -sub command { - my ($self, $cmd, $text, $line_num, $pod_para) = @_; - ## Just treat this like a textblock - $self->textblock($pod_para->raw_text(), $line_num, $pod_para); -} - -##--------------------------------------------------------------------------- - -=head1 B - - $parser->verbatim($text,$line_num,$pod_para); - -This method may be overridden by subclasses to take the appropriate -action when a block of verbatim text is encountered. It is passed the -following parameters: - -=over 3 - -=item C<$text> - -the block of text for the verbatim paragraph - -=item C<$line_num> - -the line-number of the beginning of the paragraph - -=item C<$pod_para> - -a reference to a C object which contains further -information about the paragraph (see L -for details). - -=back - -The base class implementation of this method simply prints the textblock -(unmodified) to the output filehandle. - -=cut - -sub verbatim { - my ($self, $text, $line_num, $pod_para) = @_; - my $out_fh = $self->{_OUTPUT}; - print $out_fh $text; -} - -##--------------------------------------------------------------------------- - -=head1 B - - $parser->textblock($text,$line_num,$pod_para); - -This method may be overridden by subclasses to take the appropriate -action when a normal block of POD text is encountered (although the base -class method will usually do what you want). It is passed the following -parameters: - -=over 3 - -=item C<$text> - -the block of text for the a POD paragraph - -=item C<$line_num> - -the line-number of the beginning of the paragraph - -=item C<$pod_para> - -a reference to a C object which contains further -information about the paragraph (see L -for details). - -=back - -In order to process interior sequences, subclasses implementations of -this method will probably want to invoke either B or -B, passing it the text block C<$text>, and the corresponding -line number in C<$line_num>, and then perform any desired processing upon -the returned result. - -The base class implementation of this method simply prints the text block -as it occurred in the input stream). - -=cut - -sub textblock { - my ($self, $text, $line_num, $pod_para) = @_; - my $out_fh = $self->{_OUTPUT}; - print $out_fh $self->interpolate($text, $line_num); -} - -##--------------------------------------------------------------------------- - -=head1 B - - $parser->interior_sequence($seq_cmd,$seq_arg,$pod_seq); - -This method should be overridden by subclasses to take the appropriate -action when an interior sequence is encountered. An interior sequence is -an embedded command within a block of text which appears as a command -name (usually a single uppercase character) followed immediately by a -string of text which is enclosed in angle brackets. This method is -passed the sequence command C<$seq_cmd> and the corresponding text -C<$seq_arg>. It is invoked by the B method for each interior -sequence that occurs in the string that it is passed. It should return -the desired text string to be used in place of the interior sequence. -The C<$pod_seq> argument is a reference to a C -object which contains further information about the interior sequence. -Please see L for details if you need to access this -additional information. - -Subclass implementations of this method may wish to invoke the -B method of C<$pod_seq> to see if it is nested inside -some other interior-sequence (and if so, which kind). - -The base class implementation of the B method -simply returns the raw text of the interior sequence (as it occurred -in the input) to the caller. - -=cut - -sub interior_sequence { - my ($self, $seq_cmd, $seq_arg, $pod_seq) = @_; - ## Just return the raw text of the interior sequence - return $pod_seq->raw_text(); -} - -############################################################################# - -=head1 OPTIONAL SUBROUTINE/METHOD OVERRIDES - -B provides several methods which subclasses may want to override -to perform any special pre/post-processing. These methods do I have to -be overridden, but it may be useful for subclasses to take advantage of them. - -=cut - -##--------------------------------------------------------------------------- - -=head1 B - - my $parser = Pod::Parser->new(); - -This is the constructor for B and its subclasses. You -I need to override this method! It is capable of constructing -subclass objects as well as base class objects, provided you use -any of the following constructor invocation styles: - - my $parser1 = MyParser->new(); - my $parser2 = new MyParser(); - my $parser3 = $parser2->new(); - -where C is some subclass of B. - -Using the syntax C to invoke the constructor is I -recommended, but if you insist on being able to do this, then the -subclass I need to override the B constructor method. If -you do override the constructor, you I be sure to invoke the -B method of the newly blessed object. - -Using any of the above invocations, the first argument to the -constructor is always the corresponding package name (or object -reference). No other arguments are required, but if desired, an -associative array (or hash-table) my be passed to the B -constructor, as in: - - my $parser1 = MyParser->new( MYDATA => $value1, MOREDATA => $value2 ); - my $parser2 = new MyParser( -myflag => 1 ); - -All arguments passed to the B constructor will be treated as -key/value pairs in a hash-table. The newly constructed object will be -initialized by copying the contents of the given hash-table (which may -have been empty). The B constructor for this class and all of its -subclasses returns a blessed reference to the initialized object (hash-table). - -=cut - -sub new { - ## Determine if we were called via an object-ref or a classname - my ($this,%params) = @_; - my $class = ref($this) || $this; - ## Any remaining arguments are treated as initial values for the - ## hash that is used to represent this object. - my $self = { %params }; - ## Bless ourselves into the desired class and perform any initialization - bless $self, $class; - $self->initialize(); - return $self; -} - -##--------------------------------------------------------------------------- - -=head1 B - - $parser->initialize(); - -This method performs any necessary object initialization. It takes no -arguments (other than the object instance of course, which is typically -copied to a local variable named C<$self>). If subclasses override this -method then they I be sure to invoke C<$self-ESUPER::initialize()>. - -=cut - -sub initialize { - #my $self = shift; - #return; -} - -##--------------------------------------------------------------------------- - -=head1 B - - $parser->begin_pod(); - -This method is invoked at the beginning of processing for each POD -document that is encountered in the input. Subclasses should override -this method to perform any per-document initialization. - -=cut - -sub begin_pod { - #my $self = shift; - #return; -} - -##--------------------------------------------------------------------------- - -=head1 B - - $parser->begin_input(); - -This method is invoked by B immediately I -processing input from a filehandle. The base class implementation does -nothing, however, subclasses may override it to perform any per-file -initializations. - -Note that if multiple files are parsed for a single POD document -(perhaps the result of some future C<=include> directive) this method -is invoked for every file that is parsed. If you wish to perform certain -initializations once per document, then you should use B. - -=cut - -sub begin_input { - #my $self = shift; - #return; -} - -##--------------------------------------------------------------------------- - -=head1 B - - $parser->end_input(); - -This method is invoked by B immediately I -processing input from a filehandle. The base class implementation does -nothing, however, subclasses may override it to perform any per-file -cleanup actions. - -Please note that if multiple files are parsed for a single POD document -(perhaps the result of some kind of C<=include> directive) this method -is invoked for every file that is parsed. If you wish to perform certain -cleanup actions once per document, then you should use B. - -=cut - -sub end_input { - #my $self = shift; - #return; -} - -##--------------------------------------------------------------------------- - -=head1 B - - $parser->end_pod(); - -This method is invoked at the end of processing for each POD document -that is encountered in the input. Subclasses should override this method -to perform any per-document finalization. - -=cut - -sub end_pod { - #my $self = shift; - #return; -} - -##--------------------------------------------------------------------------- - -=head1 B - - $textline = $parser->preprocess_line($text, $line_num); - -This method should be overridden by subclasses that wish to perform -any kind of preprocessing for each I of input (I it has -been determined whether or not it is part of a POD paragraph). The -parameter C<$text> is the input line; and the parameter C<$line_num> is -the line number of the corresponding text line. - -The value returned should correspond to the new text to use in its -place. If the empty string or an undefined value is returned then no -further processing will be performed for this line. - -Please note that the B method is invoked I -the B method. After all (possibly preprocessed) -lines in a paragraph have been assembled together and it has been -determined that the paragraph is part of the POD documentation from one -of the selected sections, then B is invoked. - -The base class implementation of this method returns the given text. - -=cut - -sub preprocess_line { - my ($self, $text, $line_num) = @_; - return $text; -} - -##--------------------------------------------------------------------------- - -=head1 B - - $textblock = $parser->preprocess_paragraph($text, $line_num); - -This method should be overridden by subclasses that wish to perform any -kind of preprocessing for each block (paragraph) of POD documentation -that appears in the input stream. The parameter C<$text> is the POD -paragraph from the input file; and the parameter C<$line_num> is the -line number for the beginning of the corresponding paragraph. - -The value returned should correspond to the new text to use in its -place If the empty string is returned or an undefined value is -returned, then the given C<$text> is ignored (not processed). - -This method is invoked after gathering up all the lines in a paragraph -and after determining the cutting state of the paragraph, -but before trying to further parse or interpret them. After -B returns, the current cutting state (which -is returned by C<$self-Ecutting()>) is examined. If it evaluates -to true then input text (including the given C<$text>) is cut (not -processed) until the next POD directive is encountered. - -Please note that the B method is invoked I -the B method. After all (possibly preprocessed) -lines in a paragraph have been assembled together and either it has been -determined that the paragraph is part of the POD documentation from one -of the selected sections or the C<-want_nonPODs> option is true, -then B is invoked. - -The base class implementation of this method returns the given text. - -=cut - -sub preprocess_paragraph { - my ($self, $text, $line_num) = @_; - return $text; -} - -############################################################################# - -=head1 METHODS FOR PARSING AND PROCESSING - -B provides several methods to process input text. These -methods typically won't need to be overridden (and in some cases they -can't be overridden), but subclasses may want to invoke them to exploit -their functionality. - -=cut - -##--------------------------------------------------------------------------- - -=head1 B - - $ptree1 = $parser->parse_text($text, $line_num); - $ptree2 = $parser->parse_text({%opts}, $text, $line_num); - $ptree3 = $parser->parse_text(\%opts, $text, $line_num); - -This method is useful if you need to perform your own interpolation -of interior sequences and can't rely upon B to expand -them in simple bottom-up order. - -The parameter C<$text> is a string or block of text to be parsed -for interior sequences; and the parameter C<$line_num> is the -line number corresponding to the beginning of C<$text>. - -B will parse the given text into a parse-tree of "nodes." -and interior-sequences. Each "node" in the parse tree is either a -text-string, or a B. The result returned is a -parse-tree of type B. Please see L -for more information about B and B. - -If desired, an optional hash-ref may be specified as the first argument -to customize certain aspects of the parse-tree that is created and -returned. The set of recognized option keywords are: - -=over 3 - -=item B<-expand_seq> =E I|I - -Normally, the parse-tree returned by B will contain an -unexpanded C object for each interior-sequence -encountered. Specifying B<-expand_seq> tells B to "expand" -every interior-sequence it sees by invoking the referenced function -(or named method of the parser object) and using the return value as the -expanded result. - -If a subroutine reference was given, it is invoked as: - - &$code_ref( $parser, $sequence ) - -and if a method-name was given, it is invoked as: - - $parser->method_name( $sequence ) - -where C<$parser> is a reference to the parser object, and C<$sequence> -is a reference to the interior-sequence object. -[I: If the B method is specified, then it is -invoked according to the interface specified in L<"interior_sequence()">]. - -=item B<-expand_text> =E I|I - -Normally, the parse-tree returned by B will contain a -text-string for each contiguous sequence of characters outside of an -interior-sequence. Specifying B<-expand_text> tells B to -"preprocess" every such text-string it sees by invoking the referenced -function (or named method of the parser object) and using the return value -as the preprocessed (or "expanded") result. [Note that if the result is -an interior-sequence, then it will I be expanded as specified by the -B<-expand_seq> option; Any such recursive expansion needs to be handled by -the specified callback routine.] - -If a subroutine reference was given, it is invoked as: - - &$code_ref( $parser, $text, $ptree_node ) - -and if a method-name was given, it is invoked as: - - $parser->method_name( $text, $ptree_node ) - -where C<$parser> is a reference to the parser object, C<$text> is the -text-string encountered, and C<$ptree_node> is a reference to the current -node in the parse-tree (usually an interior-sequence object or else the -top-level node of the parse-tree). - -=item B<-expand_ptree> =E I|I - -Rather than returning a C, pass the parse-tree as an -argument to the referenced subroutine (or named method of the parser -object) and return the result instead of the parse-tree object. - -If a subroutine reference was given, it is invoked as: - - &$code_ref( $parser, $ptree ) - -and if a method-name was given, it is invoked as: - - $parser->method_name( $ptree ) - -where C<$parser> is a reference to the parser object, and C<$ptree> -is a reference to the parse-tree object. - -=back - -=cut - -sub parse_text { - my $self = shift; - local $_ = ''; - - ## Get options and set any defaults - my %opts = (ref $_[0]) ? %{ shift() } : (); - my $expand_seq = $opts{'-expand_seq'} || undef; - my $expand_text = $opts{'-expand_text'} || undef; - my $expand_ptree = $opts{'-expand_ptree'} || undef; - - my $text = shift; - my $line = shift; - my $file = $self->input_file(); - my $cmd = ""; - - ## Convert method calls into closures, for our convenience - my $xseq_sub = $expand_seq; - my $xtext_sub = $expand_text; - my $xptree_sub = $expand_ptree; - if (defined $expand_seq and $expand_seq eq 'interior_sequence') { - ## If 'interior_sequence' is the method to use, we have to pass - ## more than just the sequence object, we also need to pass the - ## sequence name and text. - $xseq_sub = sub { - my ($sself, $iseq) = @_; - my $args = join('', $iseq->parse_tree->children); - return $sself->interior_sequence($iseq->name, $args, $iseq); - }; - } - ref $xseq_sub or $xseq_sub = sub { shift()->$expand_seq(@_) }; - ref $xtext_sub or $xtext_sub = sub { shift()->$expand_text(@_) }; - ref $xptree_sub or $xptree_sub = sub { shift()->$expand_ptree(@_) }; - - ## Keep track of the "current" interior sequence, and maintain a stack - ## of "in progress" sequences. - ## - ## NOTE that we push our own "accumulator" at the very beginning of the - ## stack. It's really a parse-tree, not a sequence; but it implements - ## the methods we need so we can use it to gather-up all the sequences - ## and strings we parse. Thus, by the end of our parsing, it should be - ## the only thing left on our stack and all we have to do is return it! - ## - my $seq = Pod::ParseTree->new(); - my @seq_stack = ($seq); - my ($ldelim, $rdelim) = ('', ''); - - ## Iterate over all sequence starts text (NOTE: split with - ## capturing parens keeps the delimiters) - $_ = $text; - my @tokens = split /([A-Z]<(?:<+(?:\r?\n|[ \t]))?)/; - while ( @tokens ) { - $_ = shift @tokens; - ## Look for the beginning of a sequence - if ( /^([A-Z])(<(?:<+(?:\r?\n|[ \t]))?)$/ ) { - ## Push a new sequence onto the stack of those "in-progress" - my $ldelim_orig; - ($cmd, $ldelim_orig) = ($1, $2); - ($ldelim = $ldelim_orig) =~ s/\s+$//; - ($rdelim = $ldelim) =~ tr//; - $seq = Pod::InteriorSequence->new( - -name => $cmd, - -ldelim => $ldelim_orig, -rdelim => $rdelim, - -file => $file, -line => $line - ); - (@seq_stack > 1) and $seq->nested($seq_stack[-1]); - push @seq_stack, $seq; - } - ## Look for sequence ending - elsif ( @seq_stack > 1 ) { - ## Make sure we match the right kind of closing delimiter - my ($seq_end, $post_seq) = ('', ''); - if ( ($ldelim eq '<' and /\A(.*?)(>)/s) - or /\A(.*?)(\s+$rdelim)/s ) - { - ## Found end-of-sequence, capture the interior and the - ## closing the delimiter, and put the rest back on the - ## token-list - $post_seq = substr($_, length($1) + length($2)); - ($_, $seq_end) = ($1, $2); - (length $post_seq) and unshift @tokens, $post_seq; - } - if (length) { - ## In the middle of a sequence, append this text to it, and - ## don't forget to "expand" it if that's what the caller wanted - $seq->append($expand_text ? &$xtext_sub($self,$_,$seq) : $_); - $_ .= $seq_end; - } - if (length $seq_end) { - ## End of current sequence, record terminating delimiter - $seq->rdelim($seq_end); - ## Pop it off the stack of "in progress" sequences - pop @seq_stack; - ## Append result to its parent in current parse tree - $seq_stack[-1]->append($expand_seq ? &$xseq_sub($self,$seq) - : $seq); - ## Remember the current cmd-name and left-delimiter - if(@seq_stack > 1) { - $cmd = $seq_stack[-1]->name; - $ldelim = $seq_stack[-1]->ldelim; - $rdelim = $seq_stack[-1]->rdelim; - } else { - $cmd = $ldelim = $rdelim = ''; - } - } - } - elsif (length) { - ## In the middle of a sequence, append this text to it, and - ## don't forget to "expand" it if that's what the caller wanted - $seq->append($expand_text ? &$xtext_sub($self,$_,$seq) : $_); - } - ## Keep track of line count - $line += /\n/; - ## Remember the "current" sequence - $seq = $seq_stack[-1]; - } - - ## Handle unterminated sequences - my $errorsub = (@seq_stack > 1) ? $self->errorsub() : undef; - while (@seq_stack > 1) { - ($cmd, $file, $line) = ($seq->name, $seq->file_line); - $ldelim = $seq->ldelim; - ($rdelim = $ldelim) =~ tr//; - $rdelim =~ s/^(\S+)(\s*)$/$2$1/; - pop @seq_stack; - my $errmsg = "*** ERROR: unterminated ${cmd}${ldelim}...${rdelim}". - " at line $line in file $file\n"; - (ref $errorsub) and &{$errorsub}($errmsg) - or (defined $errorsub) and $self->$errorsub($errmsg) - or carp($errmsg); - $seq_stack[-1]->append($expand_seq ? &$xseq_sub($self,$seq) : $seq); - $seq = $seq_stack[-1]; - } - - ## Return the resulting parse-tree - my $ptree = (pop @seq_stack)->parse_tree; - return $expand_ptree ? &$xptree_sub($self, $ptree) : $ptree; -} - -##--------------------------------------------------------------------------- - -=head1 B - - $textblock = $parser->interpolate($text, $line_num); - -This method translates all text (including any embedded interior sequences) -in the given text string C<$text> and returns the interpolated result. The -parameter C<$line_num> is the line number corresponding to the beginning -of C<$text>. - -B merely invokes a private method to recursively expand -nested interior sequences in bottom-up order (innermost sequences are -expanded first). If there is a need to expand nested sequences in -some alternate order, use B instead. - -=cut - -sub interpolate { - my($self, $text, $line_num) = @_; - my %parse_opts = ( -expand_seq => 'interior_sequence' ); - my $ptree = $self->parse_text( \%parse_opts, $text, $line_num ); - return join '', $ptree->children(); -} - -##--------------------------------------------------------------------------- - -=begin __PRIVATE__ - -=head1 B - - $parser->parse_paragraph($text, $line_num); - -This method takes the text of a POD paragraph to be processed, along -with its corresponding line number, and invokes the appropriate method -(one of B, B, or B). - -For performance reasons, this method is invoked directly without any -dynamic lookup; Hence subclasses may I override it! - -=end __PRIVATE__ - -=cut - -sub parse_paragraph { - my ($self, $text, $line_num) = @_; - local *myData = $self; ## alias to avoid deref-ing overhead - local *myOpts = ($myData{_PARSEOPTS} ||= {}); ## get parse-options - local $_; - - ## See if we want to preprocess nonPOD paragraphs as well as POD ones. - my $wantNonPods = $myOpts{'-want_nonPODs'}; - - ## Update cutting status - $myData{_CUTTING} = 0 if $text =~ /^={1,2}\S/; - - ## Perform any desired preprocessing if we wanted it this early - $wantNonPods and $text = $self->preprocess_paragraph($text, $line_num); - - ## Ignore up until next POD directive if we are cutting - return if $myData{_CUTTING}; - - ## Now we know this is block of text in a POD section! - - ##----------------------------------------------------------------- - ## This is a hook (hack ;-) for Pod::Select to do its thing without - ## having to override methods, but also without Pod::Parser assuming - ## $self is an instance of Pod::Select (if the _SELECTED_SECTIONS - ## field exists then we assume there is an is_selected() method for - ## us to invoke (calling $self->can('is_selected') could verify this - ## but that is more overhead than I want to incur) - ##----------------------------------------------------------------- - - ## Ignore this block if it isn't in one of the selected sections - if (exists $myData{_SELECTED_SECTIONS}) { - $self->is_selected($text) or return ($myData{_CUTTING} = 1); - } - - ## If we haven't already, perform any desired preprocessing and - ## then re-check the "cutting" state - unless ($wantNonPods) { - $text = $self->preprocess_paragraph($text, $line_num); - return 1 unless ((defined $text) and (length $text)); - return 1 if ($myData{_CUTTING}); - } - - ## Look for one of the three types of paragraphs - my ($pfx, $cmd, $arg, $sep) = ('', '', '', ''); - my $pod_para = undef; - if ($text =~ /^(={1,2})(?=\S)/) { - ## Looks like a command paragraph. Capture the command prefix used - ## ("=" or "=="), as well as the command-name, its paragraph text, - ## and whatever sequence of characters was used to separate them - $pfx = $1; - $_ = substr($text, length $pfx); - ($cmd, $sep, $text) = split /(\s+)/, $_, 2; - $sep = '' unless defined $sep; - $text = '' unless defined $text; - ## If this is a "cut" directive then we don't need to do anything - ## except return to "cutting" mode. - if ($cmd eq 'cut') { - $myData{_CUTTING} = 1; - return unless $myOpts{'-process_cut_cmd'}; - } - } - ## Save the attributes indicating how the command was specified. - $pod_para = new Pod::Paragraph( - -name => $cmd, - -text => $text, - -prefix => $pfx, - -separator => $sep, - -file => $myData{_INFILE}, - -line => $line_num - ); - # ## Invoke appropriate callbacks - # if (exists $myData{_CALLBACKS}) { - # ## Look through the callback list, invoke callbacks, - # ## then see if we need to do the default actions - # ## (invoke_callbacks will return true if we do). - # return 1 unless $self->invoke_callbacks($cmd, $text, $line_num, $pod_para); - # } - - # If the last paragraph ended in whitespace, and we're not between verbatim blocks, carp - if ($myData{_WHITESPACE} and $myOpts{'-warnings'} - and not ($text =~ /^\s+/ and ($myData{_PREVIOUS}||"") eq "verbatim")) { - my $errorsub = $self->errorsub(); - my $line = $line_num - 1; - my $errmsg = "*** WARNING: line containing nothing but whitespace". - " in paragraph at line $line in file $myData{_INFILE}\n"; - (ref $errorsub) and &{$errorsub}($errmsg) - or (defined $errorsub) and $self->$errorsub($errmsg) - or carp($errmsg); - } - - if (length $cmd) { - ## A command paragraph - $self->command($cmd, $text, $line_num, $pod_para); - $myData{_PREVIOUS} = $cmd; - } - elsif ($text =~ /^\s+/) { - ## Indented text - must be a verbatim paragraph - $self->verbatim($text, $line_num, $pod_para); - $myData{_PREVIOUS} = "verbatim"; - } - else { - ## Looks like an ordinary block of text - $self->textblock($text, $line_num, $pod_para); - $myData{_PREVIOUS} = "textblock"; - } - - # Update the whitespace for the next time around - #$myData{_WHITESPACE} = $text =~ /^[^\S\r\n]+\Z/m ? 1 : 0; - $myData{_WHITESPACE} = $text =~ /^[^\S\r\n]+\r*\Z/m ? 1 : 0; - - return 1; -} - -##--------------------------------------------------------------------------- - -=head1 B - - $parser->parse_from_filehandle($in_fh,$out_fh); - -This method takes an input filehandle (which is assumed to already be -opened for reading) and reads the entire input stream looking for blocks -(paragraphs) of POD documentation to be processed. If no first argument -is given the default input filehandle C is used. - -The C<$in_fh> parameter may be any object that provides a B -method to retrieve a single line of input text (hence, an appropriate -wrapper object could be used to parse PODs from a single string or an -array of strings). - -Using C<$in_fh-Egetline()>, input is read line-by-line and assembled -into paragraphs or "blocks" (which are separated by lines containing -nothing but whitespace). For each block of POD documentation -encountered it will invoke a method to parse the given paragraph. - -If a second argument is given then it should correspond to a filehandle where -output should be sent (otherwise the default output filehandle is -C if no output filehandle is currently in use). - -B For performance reasons, this method caches the input stream at -the top of the stack in a local variable. Any attempts by clients to -change the stack contents during processing when in the midst executing -of this method I the input stream used by the current -invocation of this method. - -This method does I usually need to be overridden by subclasses. - -=cut - -sub parse_from_filehandle { - my $self = shift; - my %opts = (ref $_[0] eq 'HASH') ? %{ shift() } : (); - my ($in_fh, $out_fh) = @_; - $in_fh = \*STDIN unless ($in_fh); - local *myData = $self; ## alias to avoid deref-ing overhead - local *myOpts = ($myData{_PARSEOPTS} ||= {}); ## get parse-options - local $_; - - ## Put this stream at the top of the stack and do beginning-of-input - ## processing. NOTE that $in_fh might be reset during this process. - my $topstream = $self->_push_input_stream($in_fh, $out_fh); - (exists $opts{-cutting}) and $self->cutting( $opts{-cutting} ); - - ## Initialize line/paragraph - my ($textline, $paragraph) = ('', ''); - my ($nlines, $plines) = (0, 0); - - ## Use <$fh> instead of $fh->getline where possible (for speed) - $_ = ref $in_fh; - my $tied_fh = (/^(?:GLOB|FileHandle|IO::\w+)$/ or tied $in_fh); - - ## Read paragraphs line-by-line - while (defined ($textline = $tied_fh ? <$in_fh> : $in_fh->getline)) { - $textline = $self->preprocess_line($textline, ++$nlines); - next unless ((defined $textline) && (length $textline)); - - if ((! length $paragraph) && ($textline =~ /^==/)) { - ## '==' denotes a one-line command paragraph - $paragraph = $textline; - $plines = 1; - $textline = ''; - } else { - ## Append this line to the current paragraph - $paragraph .= $textline; - ++$plines; - } - - ## See if this line is blank and ends the current paragraph. - ## If it isn't, then keep iterating until it is. - next unless (($textline =~ /^[^\S\r\n]*[\r\n]*$/) - && (length $paragraph)); - - ## Now process the paragraph - parse_paragraph($self, $paragraph, ($nlines - $plines) + 1); - $paragraph = ''; - $plines = 0; - } - ## Don't forget about the last paragraph in the file - if (length $paragraph) { - parse_paragraph($self, $paragraph, ($nlines - $plines) + 1) - } - - ## Now pop the input stream off the top of the input stack. - $self->_pop_input_stream(); -} - -##--------------------------------------------------------------------------- - -=head1 B - - $parser->parse_from_file($filename,$outfile); - -This method takes a filename and does the following: - -=over 2 - -=item * - -opens the input and output files for reading -(creating the appropriate filehandles) - -=item * - -invokes the B method passing it the -corresponding input and output filehandles. - -=item * - -closes the input and output files. - -=back - -If the special input filename "", "-" or "<&STDIN" is given then the STDIN -filehandle is used for input (and no open or close is performed). If no -input filename is specified then "-" is implied. Filehandle references, -or objects that support the regular IO operations (like C$fhE> -or C<$fh-getline>) are also accepted; the handles must already be -opened. - -If a second argument is given then it should be the name of the desired -output file. If the special output filename "-" or ">&STDOUT" is given -then the STDOUT filehandle is used for output (and no open or close is -performed). If the special output filename ">&STDERR" is given then the -STDERR filehandle is used for output (and no open or close is -performed). If no output filehandle is currently in use and no output -filename is specified, then "-" is implied. -Alternatively, filehandle references or objects that support the regular -IO operations (like C, e.g. L) are also accepted; -the object must already be opened. - -This method does I usually need to be overridden by subclasses. - -=cut - -sub parse_from_file { - my $self = shift; - my %opts = (ref $_[0] eq 'HASH') ? %{ shift() } : (); - my ($infile, $outfile) = @_; - my ($in_fh, $out_fh); - if ($] < 5.006) { - ($in_fh, $out_fh) = (gensym(), gensym()); - } - my ($close_input, $close_output) = (0, 0); - local *myData = $self; - local *_; - - ## Is $infile a filename or a (possibly implied) filehandle - if (defined $infile && ref $infile) { - if (ref($infile) =~ /^(SCALAR|ARRAY|HASH|CODE|REF)$/) { - croak "Input from $1 reference not supported!\n"; - } - ## Must be a filehandle-ref (or else assume its a ref to an object - ## that supports the common IO read operations). - $myData{_INFILE} = ${$infile}; - $in_fh = $infile; - } - elsif (!defined($infile) || !length($infile) || ($infile eq '-') - || ($infile =~ /^<&(?:STDIN|0)$/i)) - { - ## Not a filename, just a string implying STDIN - $infile ||= '-'; - $myData{_INFILE} = ''; - $in_fh = \*STDIN; - } - else { - ## We have a filename, open it for reading - $myData{_INFILE} = $infile; - open($in_fh, "< $infile") or - croak "Can't open $infile for reading: $!\n"; - $close_input = 1; - } - - ## NOTE: we need to be *very* careful when "defaulting" the output - ## file. We only want to use a default if this is the beginning of - ## the entire document (but *not* if this is an included file). We - ## determine this by seeing if the input stream stack has been set-up - ## already - - ## Is $outfile a filename, a (possibly implied) filehandle, maybe a ref? - if (ref $outfile) { - ## we need to check for ref() first, as other checks involve reading - if (ref($outfile) =~ /^(ARRAY|HASH|CODE)$/) { - croak "Output to $1 reference not supported!\n"; - } - elsif (ref($outfile) eq 'SCALAR') { -# # NOTE: IO::String isn't a part of the perl distribution, -# # so probably we shouldn't support this case... -# require IO::String; -# $myData{_OUTFILE} = "$outfile"; -# $out_fh = IO::String->new($outfile); - croak "Output to SCALAR reference not supported!\n"; - } - else { - ## Must be a filehandle-ref (or else assume its a ref to an - ## object that supports the common IO write operations). - $myData{_OUTFILE} = ${$outfile}; - $out_fh = $outfile; - } - } - elsif (!defined($outfile) || !length($outfile) || ($outfile eq '-') - || ($outfile =~ /^>&?(?:STDOUT|1)$/i)) - { - if (defined $myData{_TOP_STREAM}) { - $out_fh = $myData{_OUTPUT}; - } - else { - ## Not a filename, just a string implying STDOUT - $outfile ||= '-'; - $myData{_OUTFILE} = ''; - $out_fh = \*STDOUT; - } - } - elsif ($outfile =~ /^>&(STDERR|2)$/i) { - ## Not a filename, just a string implying STDERR - $myData{_OUTFILE} = ''; - $out_fh = \*STDERR; - } - else { - ## We have a filename, open it for writing - $myData{_OUTFILE} = $outfile; - (-d $outfile) and croak "$outfile is a directory, not POD input!\n"; - open($out_fh, "> $outfile") or - croak "Can't open $outfile for writing: $!\n"; - $close_output = 1; - } - - ## Whew! That was a lot of work to set up reasonably/robust behavior - ## in the case of a non-filename for reading and writing. Now we just - ## have to parse the input and close the handles when we're finished. - $self->parse_from_filehandle(\%opts, $in_fh, $out_fh); - - $close_input and - close($in_fh) || croak "Can't close $infile after reading: $!\n"; - $close_output and - close($out_fh) || croak "Can't close $outfile after writing: $!\n"; -} - -############################################################################# - -=head1 ACCESSOR METHODS - -Clients of B should use the following methods to access -instance data fields: - -=cut - -##--------------------------------------------------------------------------- - -=head1 B - - $parser->errorsub("method_name"); - $parser->errorsub(\&warn_user); - $parser->errorsub(sub { print STDERR, @_ }); - -Specifies the method or subroutine to use when printing error messages -about POD syntax. The supplied method/subroutine I return TRUE upon -successful printing of the message. If C is given, then the B -builtin is used to issue error messages (this is the default behavior). - - my $errorsub = $parser->errorsub() - my $errmsg = "This is an error message!\n" - (ref $errorsub) and &{$errorsub}($errmsg) - or (defined $errorsub) and $parser->$errorsub($errmsg) - or carp($errmsg); - -Returns a method name, or else a reference to the user-supplied subroutine -used to print error messages. Returns C if the B builtin -is used to issue error messages (this is the default behavior). - -=cut - -sub errorsub { - return (@_ > 1) ? ($_[0]->{_ERRORSUB} = $_[1]) : $_[0]->{_ERRORSUB}; -} - -##--------------------------------------------------------------------------- - -=head1 B - - $boolean = $parser->cutting(); - -Returns the current C state: a boolean-valued scalar which -evaluates to true if text from the input file is currently being "cut" -(meaning it is I considered part of the POD document). - - $parser->cutting($boolean); - -Sets the current C state to the given value and returns the -result. - -=cut - -sub cutting { - return (@_ > 1) ? ($_[0]->{_CUTTING} = $_[1]) : $_[0]->{_CUTTING}; -} - -##--------------------------------------------------------------------------- - -##--------------------------------------------------------------------------- - -=head1 B - -When invoked with no additional arguments, B returns a hashtable -of all the current parsing options. - - ## See if we are parsing non-POD sections as well as POD ones - my %opts = $parser->parseopts(); - $opts{'-want_nonPODs}' and print "-want_nonPODs\n"; - -When invoked using a single string, B treats the string as the -name of a parse-option and returns its corresponding value if it exists -(returns C if it doesn't). - - ## Did we ask to see '=cut' paragraphs? - my $want_cut = $parser->parseopts('-process_cut_cmd'); - $want_cut and print "-process_cut_cmd\n"; - -When invoked with multiple arguments, B treats them as -key/value pairs and the specified parse-option names are set to the -given values. Any unspecified parse-options are unaffected. - - ## Set them back to the default - $parser->parseopts(-warnings => 0); - -When passed a single hash-ref, B uses that hash to completely -reset the existing parse-options, all previous parse-option values -are lost. - - ## Reset all options to default - $parser->parseopts( { } ); - -See L<"PARSING OPTIONS"> for more information on the name and meaning of each -parse-option currently recognized. - -=cut - -sub parseopts { - local *myData = shift; - local *myOpts = ($myData{_PARSEOPTS} ||= {}); - return %myOpts if (@_ == 0); - if (@_ == 1) { - local $_ = shift; - return ref($_) ? $myData{_PARSEOPTS} = $_ : $myOpts{$_}; - } - my @newOpts = (%myOpts, @_); - $myData{_PARSEOPTS} = { @newOpts }; -} - -##--------------------------------------------------------------------------- - -=head1 B - - $fname = $parser->output_file(); - -Returns the name of the output file being written. - -=cut - -sub output_file { - return $_[0]->{_OUTFILE}; -} - -##--------------------------------------------------------------------------- - -=head1 B - - $fhandle = $parser->output_handle(); - -Returns the output filehandle object. - -=cut - -sub output_handle { - return $_[0]->{_OUTPUT}; -} - -##--------------------------------------------------------------------------- - -=head1 B - - $fname = $parser->input_file(); - -Returns the name of the input file being read. - -=cut - -sub input_file { - return $_[0]->{_INFILE}; -} - -##--------------------------------------------------------------------------- - -=head1 B - - $fhandle = $parser->input_handle(); - -Returns the current input filehandle object. - -=cut - -sub input_handle { - return $_[0]->{_INPUT}; -} - -##--------------------------------------------------------------------------- - -=begin __PRIVATE__ - -=head1 B - - $listref = $parser->input_streams(); - -Returns a reference to an array which corresponds to the stack of all -the input streams that are currently in the middle of being parsed. - -While parsing an input stream, it is possible to invoke -B or B to parse a new input -stream and then return to parsing the previous input stream. Each input -stream to be parsed is pushed onto the end of this input stack -before any of its input is read. The input stream that is currently -being parsed is always at the end (or top) of the input stack. When an -input stream has been exhausted, it is popped off the end of the -input stack. - -Each element on this input stack is a reference to C -object. Please see L for more details. - -This method might be invoked when printing diagnostic messages, for example, -to obtain the name and line number of the all input files that are currently -being processed. - -=end __PRIVATE__ - -=cut - -sub input_streams { - return $_[0]->{_INPUT_STREAMS}; -} - -##--------------------------------------------------------------------------- - -=begin __PRIVATE__ - -=head1 B - - $hashref = $parser->top_stream(); - -Returns a reference to the hash-table that represents the element -that is currently at the top (end) of the input stream stack -(see L<"input_streams()">). The return value will be the C -if the input stack is empty. - -This method might be used when printing diagnostic messages, for example, -to obtain the name and line number of the current input file. - -=end __PRIVATE__ - -=cut - -sub top_stream { - return $_[0]->{_TOP_STREAM} || undef; -} - -############################################################################# - -=head1 PRIVATE METHODS AND DATA - -B makes use of several internal methods and data fields -which clients should not need to see or use. For the sake of avoiding -name collisions for client data and methods, these methods and fields -are briefly discussed here. Determined hackers may obtain further -information about them by reading the B source code. - -Private data fields are stored in the hash-object whose reference is -returned by the B constructor for this class. The names of all -private methods and data-fields used by B begin with a -prefix of "_" and match the regular expression C. - -=cut - -##--------------------------------------------------------------------------- - -=begin _PRIVATE_ - -=head1 B<_push_input_stream()> - - $hashref = $parser->_push_input_stream($in_fh,$out_fh); - -This method will push the given input stream on the input stack and -perform any necessary beginning-of-document or beginning-of-file -processing. The argument C<$in_fh> is the input stream filehandle to -push, and C<$out_fh> is the corresponding output filehandle to use (if -it is not given or is undefined, then the current output stream is used, -which defaults to standard output if it doesnt exist yet). - -The value returned will be reference to the hash-table that represents -the new top of the input stream stack. I that it is -possible for this method to use default values for the input and output -file handles. If this happens, you will need to look at the C -and C instance data members to determine their new values. - -=end _PRIVATE_ - -=cut - -sub _push_input_stream { - my ($self, $in_fh, $out_fh) = @_; - local *myData = $self; - - ## Initialize stuff for the entire document if this is *not* - ## an included file. - ## - ## NOTE: we need to be *very* careful when "defaulting" the output - ## filehandle. We only want to use a default value if this is the - ## beginning of the entire document (but *not* if this is an included - ## file). - unless (defined $myData{_TOP_STREAM}) { - $out_fh = \*STDOUT unless (defined $out_fh); - $myData{_CUTTING} = 1; ## current "cutting" state - $myData{_INPUT_STREAMS} = []; ## stack of all input streams - } - - ## Initialize input indicators - $myData{_OUTFILE} = '(unknown)' unless (defined $myData{_OUTFILE}); - $myData{_OUTPUT} = $out_fh if (defined $out_fh); - $in_fh = \*STDIN unless (defined $in_fh); - $myData{_INFILE} = '(unknown)' unless (defined $myData{_INFILE}); - $myData{_INPUT} = $in_fh; - my $input_top = $myData{_TOP_STREAM} - = new Pod::InputSource( - -name => $myData{_INFILE}, - -handle => $in_fh, - -was_cutting => $myData{_CUTTING} - ); - local *input_stack = $myData{_INPUT_STREAMS}; - push(@input_stack, $input_top); - - ## Perform beginning-of-document and/or beginning-of-input processing - $self->begin_pod() if (@input_stack == 1); - $self->begin_input(); - - return $input_top; -} - -##--------------------------------------------------------------------------- - -=begin _PRIVATE_ - -=head1 B<_pop_input_stream()> - - $hashref = $parser->_pop_input_stream(); - -This takes no arguments. It will perform any necessary end-of-file or -end-of-document processing and then pop the current input stream from -the top of the input stack. - -The value returned will be reference to the hash-table that represents -the new top of the input stream stack. - -=end _PRIVATE_ - -=cut - -sub _pop_input_stream { - my ($self) = @_; - local *myData = $self; - local *input_stack = $myData{_INPUT_STREAMS}; - - ## Perform end-of-input and/or end-of-document processing - $self->end_input() if (@input_stack > 0); - $self->end_pod() if (@input_stack == 1); - - ## Restore cutting state to whatever it was before we started - ## parsing this file. - my $old_top = pop(@input_stack); - $myData{_CUTTING} = $old_top->was_cutting(); - - ## Don't forget to reset the input indicators - my $input_top = undef; - if (@input_stack > 0) { - $input_top = $myData{_TOP_STREAM} = $input_stack[-1]; - $myData{_INFILE} = $input_top->name(); - $myData{_INPUT} = $input_top->handle(); - } else { - delete $myData{_TOP_STREAM}; - delete $myData{_INPUT_STREAMS}; - } - - return $input_top; -} - -############################################################################# - -=head1 TREE-BASED PARSING - -If straightforward stream-based parsing wont meet your needs (as is -likely the case for tasks such as translating PODs into structured -markup languages like HTML and XML) then you may need to take the -tree-based approach. Rather than doing everything in one pass and -calling the B method to expand sequences into text, it -may be desirable to instead create a parse-tree using the B -method to return a tree-like structure which may contain an ordered -list of children (each of which may be a text-string, or a similar -tree-like structure). - -Pay special attention to L<"METHODS FOR PARSING AND PROCESSING"> and -to the objects described in L. The former describes -the gory details and parameters for how to customize and extend the -parsing behavior of B. B provides -several objects that may all be used interchangeably as parse-trees. The -most obvious one is the B object. It defines the basic -interface and functionality that all things trying to be a POD parse-tree -should do. A B is defined such that each "node" may be a -text-string, or a reference to another parse-tree. Each B -object and each B object also supports the basic -parse-tree interface. - -The B method takes a given paragraph of text, and -returns a parse-tree that contains one or more children, each of which -may be a text-string, or an InteriorSequence object. There are also -callback-options that may be passed to B to customize -the way it expands or transforms interior-sequences, as well as the -returned result. These callbacks can be used to create a parse-tree -with custom-made objects (which may or may not support the parse-tree -interface, depending on how you choose to do it). - -If you wish to turn an entire POD document into a parse-tree, that process -is fairly straightforward. The B method is the key to doing -this successfully. Every paragraph-callback (i.e. the polymorphic methods -for B, B, and B paragraphs) takes -a B object as an argument. Each paragraph object has a -B method that can be used to get or set a corresponding -parse-tree. So for each of those paragraph-callback methods, simply call -B with the options you desire, and then use the returned -parse-tree to assign to the given paragraph object. - -That gives you a parse-tree for each paragraph - so now all you need is -an ordered list of paragraphs. You can maintain that yourself as a data -element in the object/hash. The most straightforward way would be simply -to use an array-ref, with the desired set of custom "options" for each -invocation of B. Let's assume the desired option-set is -given by the hash C<%options>. Then we might do something like the -following: - - package MyPodParserTree; - - @ISA = qw( Pod::Parser ); - - ... - - sub begin_pod { - my $self = shift; - $self->{'-paragraphs'} = []; ## initialize paragraph list - } - - sub command { - my ($parser, $command, $paragraph, $line_num, $pod_para) = @_; - my $ptree = $parser->parse_text({%options}, $paragraph, ...); - $pod_para->parse_tree( $ptree ); - push @{ $self->{'-paragraphs'} }, $pod_para; - } - - sub verbatim { - my ($parser, $paragraph, $line_num, $pod_para) = @_; - push @{ $self->{'-paragraphs'} }, $pod_para; - } - - sub textblock { - my ($parser, $paragraph, $line_num, $pod_para) = @_; - my $ptree = $parser->parse_text({%options}, $paragraph, ...); - $pod_para->parse_tree( $ptree ); - push @{ $self->{'-paragraphs'} }, $pod_para; - } - - ... - - package main; - ... - my $parser = new MyPodParserTree(...); - $parser->parse_from_file(...); - my $paragraphs_ref = $parser->{'-paragraphs'}; - -Of course, in this module-author's humble opinion, I'd be more inclined to -use the existing B object than a simple array. That way -everything in it, paragraphs and sequences, all respond to the same core -interface for all parse-tree nodes. The result would look something like: - - package MyPodParserTree2; - - ... - - sub begin_pod { - my $self = shift; - $self->{'-ptree'} = new Pod::ParseTree; ## initialize parse-tree - } - - sub parse_tree { - ## convenience method to get/set the parse-tree for the entire POD - (@_ > 1) and $_[0]->{'-ptree'} = $_[1]; - return $_[0]->{'-ptree'}; - } - - sub command { - my ($parser, $command, $paragraph, $line_num, $pod_para) = @_; - my $ptree = $parser->parse_text({<>}, $paragraph, ...); - $pod_para->parse_tree( $ptree ); - $parser->parse_tree()->append( $pod_para ); - } - - sub verbatim { - my ($parser, $paragraph, $line_num, $pod_para) = @_; - $parser->parse_tree()->append( $pod_para ); - } - - sub textblock { - my ($parser, $paragraph, $line_num, $pod_para) = @_; - my $ptree = $parser->parse_text({<>}, $paragraph, ...); - $pod_para->parse_tree( $ptree ); - $parser->parse_tree()->append( $pod_para ); - } - - ... - - package main; - ... - my $parser = new MyPodParserTree2(...); - $parser->parse_from_file(...); - my $ptree = $parser->parse_tree; - ... - -Now you have the entire POD document as one great big parse-tree. You -can even use the B<-expand_seq> option to B to insert -whole different kinds of objects. Just don't expect B -to know what to do with them after that. That will need to be in your -code. Or, alternatively, you can insert any object you like so long as -it conforms to the B interface. - -One could use this to create subclasses of B and -B for specific commands (or to create your own -custom node-types in the parse-tree) and add some kind of B -method to each custom node/subclass object in the tree. Then all you'd -need to do is recursively walk the tree in the desired order, processing -the children (most likely from left to right) by formatting them if -they are text-strings, or by calling their B method if they -are objects/references. - -=head1 CAVEATS - -Please note that POD has the notion of "paragraphs": this is something -starting I a blank (read: empty) line, with the single exception -of the file start, which is also starting a paragraph. That means that -especially a command (e.g. C<=head1>) I be preceded with a blank -line; C<__END__> is I a blank line. - -=head1 SEE ALSO - -L, L - -B defines POD input objects corresponding to -command paragraphs, parse-trees, and interior-sequences. - -B is a subclass of B which provides the ability -to selectively include and/or exclude sections of a POD document from being -translated based upon the current heading, subheading, subsubheading, etc. - -=for __PRIVATE__ -B is a subclass of B which gives its users -the ability the employ I instead of, or in addition -to, overriding methods of the base class. - -=for __PRIVATE__ -B and B do not override any -methods nor do they define any new methods with the same name. Because -of this, they may I be used (in combination) as a base class of -the same subclass in order to combine their functionality without -causing any namespace clashes due to multiple inheritance. - -=head1 AUTHOR - -Please report bugs using L. - -Brad Appleton Ebradapp@enteract.comE - -Based on code for B written by -Tom Christiansen Etchrist@mox.perl.comE - -=head1 LICENSE - -Pod-Parser is free software; you can redistribute it and/or modify it -under the terms of the Artistic License distributed with Perl version -5.000 or (at your option) any later version. Please refer to the -Artistic License that came with your Perl distribution for more -details. If your version of Perl was not distributed under the -terms of the Artistic License, than you may distribute PodParser -under the same terms as Perl itself. - -=cut - -1; -# vim: ts=4 sw=4 et diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/lib/Pod/PlainText.pm b/gnu/usr.bin/perl/cpan/Pod-Parser/lib/Pod/PlainText.pm deleted file mode 100644 index 03252e93c71..00000000000 --- a/gnu/usr.bin/perl/cpan/Pod-Parser/lib/Pod/PlainText.pm +++ /dev/null @@ -1,761 +0,0 @@ -# Pod::PlainText -- Convert POD data to formatted ASCII text. -# $Id: Text.pm,v 2.1 1999/09/20 11:53:33 eagle Exp $ -# -# Copyright 1999-2000 by Russ Allbery -# -# This program is free software; you can redistribute it and/or modify it -# under the same terms as Perl itself. -# -# This module is intended to be a replacement for Pod::Text, and attempts to -# match its output except for some specific circumstances where other -# decisions seemed to produce better output. It uses Pod::Parser and is -# designed to be very easy to subclass. - -############################################################################ -# Modules and declarations -############################################################################ - -package Pod::PlainText; -use strict; - -require 5.005; - -use Carp qw(carp croak); -use Pod::Select (); - -use vars qw(@ISA %ESCAPES $VERSION); - -# We inherit from Pod::Select instead of Pod::Parser so that we can be used -# by Pod::Usage. -@ISA = qw(Pod::Select); - -$VERSION = '2.07'; - -BEGIN { - if ($] < 5.006) { - require Symbol; - import Symbol; - } -} - -############################################################################ -# Table of supported E<> escapes -############################################################################ - -# This table is taken near verbatim from Pod::PlainText in Pod::Parser, -# which got it near verbatim from the original Pod::Text. It is therefore -# credited to Tom Christiansen, and I'm glad I didn't have to write it. :) -%ESCAPES = ( - 'amp' => '&', # ampersand - 'lt' => '<', # left chevron, less-than - 'gt' => '>', # right chevron, greater-than - 'quot' => '"', # double quote - - "Aacute" => "\xC1", # capital A, acute accent - "aacute" => "\xE1", # small a, acute accent - "Acirc" => "\xC2", # capital A, circumflex accent - "acirc" => "\xE2", # small a, circumflex accent - "AElig" => "\xC6", # capital AE diphthong (ligature) - "aelig" => "\xE6", # small ae diphthong (ligature) - "Agrave" => "\xC0", # capital A, grave accent - "agrave" => "\xE0", # small a, grave accent - "Aring" => "\xC5", # capital A, ring - "aring" => "\xE5", # small a, ring - "Atilde" => "\xC3", # capital A, tilde - "atilde" => "\xE3", # small a, tilde - "Auml" => "\xC4", # capital A, dieresis or umlaut mark - "auml" => "\xE4", # small a, dieresis or umlaut mark - "Ccedil" => "\xC7", # capital C, cedilla - "ccedil" => "\xE7", # small c, cedilla - "Eacute" => "\xC9", # capital E, acute accent - "eacute" => "\xE9", # small e, acute accent - "Ecirc" => "\xCA", # capital E, circumflex accent - "ecirc" => "\xEA", # small e, circumflex accent - "Egrave" => "\xC8", # capital E, grave accent - "egrave" => "\xE8", # small e, grave accent - "ETH" => "\xD0", # capital Eth, Icelandic - "eth" => "\xF0", # small eth, Icelandic - "Euml" => "\xCB", # capital E, dieresis or umlaut mark - "euml" => "\xEB", # small e, dieresis or umlaut mark - "Iacute" => "\xCD", # capital I, acute accent - "iacute" => "\xED", # small i, acute accent - "Icirc" => "\xCE", # capital I, circumflex accent - "icirc" => "\xEE", # small i, circumflex accent - "Igrave" => "\xCD", # capital I, grave accent - "igrave" => "\xED", # small i, grave accent - "Iuml" => "\xCF", # capital I, dieresis or umlaut mark - "iuml" => "\xEF", # small i, dieresis or umlaut mark - "Ntilde" => "\xD1", # capital N, tilde - "ntilde" => "\xF1", # small n, tilde - "Oacute" => "\xD3", # capital O, acute accent - "oacute" => "\xF3", # small o, acute accent - "Ocirc" => "\xD4", # capital O, circumflex accent - "ocirc" => "\xF4", # small o, circumflex accent - "Ograve" => "\xD2", # capital O, grave accent - "ograve" => "\xF2", # small o, grave accent - "Oslash" => "\xD8", # capital O, slash - "oslash" => "\xF8", # small o, slash - "Otilde" => "\xD5", # capital O, tilde - "otilde" => "\xF5", # small o, tilde - "Ouml" => "\xD6", # capital O, dieresis or umlaut mark - "ouml" => "\xF6", # small o, dieresis or umlaut mark - "szlig" => "\xDF", # small sharp s, German (sz ligature) - "THORN" => "\xDE", # capital THORN, Icelandic - "thorn" => "\xFE", # small thorn, Icelandic - "Uacute" => "\xDA", # capital U, acute accent - "uacute" => "\xFA", # small u, acute accent - "Ucirc" => "\xDB", # capital U, circumflex accent - "ucirc" => "\xFB", # small u, circumflex accent - "Ugrave" => "\xD9", # capital U, grave accent - "ugrave" => "\xF9", # small u, grave accent - "Uuml" => "\xDC", # capital U, dieresis or umlaut mark - "uuml" => "\xFC", # small u, dieresis or umlaut mark - "Yacute" => "\xDD", # capital Y, acute accent - "yacute" => "\xFD", # small y, acute accent - "yuml" => "\xFF", # small y, dieresis or umlaut mark - - "lchevron" => "\xAB", # left chevron (double less than) - "rchevron" => "\xBB", # right chevron (double greater than) -); - - -############################################################################ -# Initialization -############################################################################ - -# Initialize the object. Must be sure to call our parent initializer. -sub initialize { - my $self = shift; - - $$self{alt} = 0 unless defined $$self{alt}; - $$self{indent} = 4 unless defined $$self{indent}; - $$self{loose} = 0 unless defined $$self{loose}; - $$self{sentence} = 0 unless defined $$self{sentence}; - $$self{width} = 76 unless defined $$self{width}; - - $$self{INDENTS} = []; # Stack of indentations. - $$self{MARGIN} = $$self{indent}; # Current left margin in spaces. - - return $self->SUPER::initialize; -} - -# pod2text and pod2man re-use the same parser on a list of files, -# and will lose some information if some intermediate documents produce -# unbalanced calls to begin_cmd/end_cmd. -# via r1.4 of OpenBSD src/gnu/usr.bin/perl/lib/Pod/PlainText.pm -sub begin_pod { - my $self = shift; - - $$self{VERBATIM} = 0; - $$self{EXCLUDE} = 0; - - return $self->SUPER::begin_pod(@_); -} - - -############################################################################ -# Core overrides -############################################################################ - -# Called for each command paragraph. Gets the command, the associated -# paragraph, the line number, and a Pod::Paragraph object. Just dispatches -# the command to a method named the same as the command. =cut is handled -# internally by Pod::Parser. -sub command { - my $self = shift; - my $command = shift; - return if $command eq 'pod'; - return if ($$self{EXCLUDE} && $command ne 'end'); - if (defined $$self{ITEM}) { - $self->item ("\n"); - local $_ = "\n"; - $self->output($_) if($command eq 'back'); - } - $command = 'cmd_' . $command; - return $self->$command (@_); -} - -# Called for a verbatim paragraph. Gets the paragraph, the line number, and -# a Pod::Paragraph object. Just output it verbatim, but with tabs converted -# to spaces. -sub verbatim { - my $self = shift; - return if $$self{EXCLUDE}; - $self->item if defined $$self{ITEM}; - local $_ = shift; - return if /^\s*$/; - s/^(\s*\S+)/(' ' x $$self{MARGIN}) . $1/gme; - return $self->output($_); -} - -# Called for a regular text block. Gets the paragraph, the line number, and -# a Pod::Paragraph object. Perform interpolation and output the results. -sub textblock { - my $self = shift; - return if $$self{EXCLUDE}; - if($$self{VERBATIM}) { - $self->output($_[0]); - return; - } - local $_ = shift; - my $line = shift; - - # Perform a little magic to collapse multiple L<> references. This is - # here mostly for backwards-compatibility. We'll just rewrite the whole - # thing into actual text at this part, bypassing the whole internal - # sequence parsing thing. - s{ - ( - L< # A link of the form L. - / - ( - [:\w]+ # The item has to be a simple word... - (\(\))? # ...or simple function. - ) - > - ( - ,?\s+(and\s+)? # Allow lots of them, conjuncted. - L< - / - ( - [:\w]+ - (\(\))? - ) - > - )+ - ) - } { - local $_ = $1; - s%L]+)>%$1%g; - my @items = split /(?:,?\s+(?:and\s+)?)/; - my $string = "the "; - my $i; - for ($i = 0; $i < @items; $i++) { - $string .= $items[$i]; - $string .= ", " if @items > 2 && $i != $#items; - $string .= " and " if ($i == $#items - 1); - } - $string .= " entries elsewhere in this document"; - $string; - }gex; - - # Now actually interpolate and output the paragraph. - $_ = $self->interpolate ($_, $line); - s/\s*$/\n/s; - if (defined $$self{ITEM}) { - $self->item ($_ . "\n"); - } else { - $self->output ($self->reformat ($_ . "\n")); - } -} - -# Called for an interior sequence. Gets the command, argument, and a -# Pod::InteriorSequence object and is expected to return the resulting text. -# Calls code, bold, italic, file, and link to handle those types of -# sequences, and handles S<>, E<>, X<>, and Z<> directly. -sub interior_sequence { - my $self = shift; - my $command = shift; - local $_ = shift; - return '' if ($command eq 'X' || $command eq 'Z'); - - # Expand escapes into the actual character now, carping if invalid. - if ($command eq 'E') { - return $ESCAPES{$_} if defined $ESCAPES{$_}; - carp "Unknown escape: E<$_>"; - return "E<$_>"; - } - - # For all the other sequences, empty content produces no output. - return if $_ eq ''; - - # For S<>, compress all internal whitespace and then map spaces to \01. - # When we output the text, we'll map this back. - if ($command eq 'S') { - s/\s{2,}/ /g; - tr/ /\01/; - return $_; - } - - # Anything else needs to get dispatched to another method. - if ($command eq 'B') { return $self->seq_b ($_) } - elsif ($command eq 'C') { return $self->seq_c ($_) } - elsif ($command eq 'F') { return $self->seq_f ($_) } - elsif ($command eq 'I') { return $self->seq_i ($_) } - elsif ($command eq 'L') { return $self->seq_l ($_) } - else { carp "Unknown sequence $command<$_>" } -} - -# Called for each paragraph that's actually part of the POD. We take -# advantage of this opportunity to untabify the input. -sub preprocess_paragraph { - my $self = shift; - local $_ = shift; - 1 while s/^(.*?)(\t+)/$1 . ' ' x (length ($2) * 8 - length ($1) % 8)/me; - return $_; -} - - -############################################################################ -# Command paragraphs -############################################################################ - -# All command paragraphs take the paragraph and the line number. - -# First level heading. -sub cmd_head1 { - my $self = shift; - local $_ = shift; - s/\s+$//s; - $_ = $self->interpolate ($_, shift); - if ($$self{alt}) { - $self->output ("\n==== $_ ====\n\n"); - } else { - $_ .= "\n" if $$self{loose}; - $self->output ($_ . "\n"); - } -} - -# Second level heading. -sub cmd_head2 { - my $self = shift; - local $_ = shift; - s/\s+$//s; - $_ = $self->interpolate ($_, shift); - if ($$self{alt}) { - $self->output ("\n== $_ ==\n\n"); - } else { - $_ .= "\n" if $$self{loose}; - $self->output (' ' x ($$self{indent} / 2) . $_ . "\n"); - } -} - -# third level heading - not strictly perlpodspec compliant -sub cmd_head3 { - my $self = shift; - local $_ = shift; - s/\s+$//s; - $_ = $self->interpolate ($_, shift); - if ($$self{alt}) { - $self->output ("\n= $_ =\n"); - } else { - $_ .= "\n" if $$self{loose}; - $self->output (' ' x ($$self{indent}) . $_ . "\n"); - } -} - -# fourth level heading - not strictly perlpodspec compliant -# just like head3 -*cmd_head4 = \&cmd_head3; - -# Start a list. -sub cmd_over { - my $self = shift; - local $_ = shift; - unless (/^[-+]?\d+\s+$/) { $_ = $$self{indent} } - push (@{ $$self{INDENTS} }, $$self{MARGIN}); - $$self{MARGIN} += ($_ + 0); -} - -# End a list. -sub cmd_back { - my $self = shift; - $$self{MARGIN} = pop @{ $$self{INDENTS} }; - unless (defined $$self{MARGIN}) { - carp 'Unmatched =back'; - $$self{MARGIN} = $$self{indent}; - } -} - -# An individual list item. -sub cmd_item { - my $self = shift; - if (defined $$self{ITEM}) { $self->item } - local $_ = shift; - s/\s+$//s; - $$self{ITEM} = $self->interpolate ($_); -} - -# Begin a block for a particular translator. Setting VERBATIM triggers -# special handling in textblock(). -sub cmd_begin { - my $self = shift; - local $_ = shift; - my ($kind) = /^(\S+)/ or return; - if ($kind eq 'text') { - $$self{VERBATIM} = 1; - } else { - $$self{EXCLUDE} = 1; - } -} - -# End a block for a particular translator. We assume that all =begin/=end -# pairs are properly closed. -sub cmd_end { - my $self = shift; - $$self{EXCLUDE} = 0; - $$self{VERBATIM} = 0; -} - -# One paragraph for a particular translator. Ignore it unless it's intended -# for text, in which case we treat it as a verbatim text block. -sub cmd_for { - my $self = shift; - local $_ = shift; - my $line = shift; - return unless s/^text\b[ \t]*\r?\n?//; - $self->verbatim ($_, $line); -} - -# just a dummy method for the time being -sub cmd_encoding { - return; -} - -############################################################################ -# Interior sequences -############################################################################ - -# The simple formatting ones. These are here mostly so that subclasses can -# override them and do more complicated things. -sub seq_b { return $_[0]{alt} ? "``$_[1]''" : $_[1] } -sub seq_c { return $_[0]{alt} ? "``$_[1]''" : "`$_[1]'" } -sub seq_f { return $_[0]{alt} ? "\"$_[1]\"" : $_[1] } -sub seq_i { return '*' . $_[1] . '*' } - -# The complicated one. Handle links. Since this is plain text, we can't -# actually make any real links, so this is all to figure out what text we -# print out. -sub seq_l { - my $self = shift; - local $_ = shift; - - # Smash whitespace in case we were split across multiple lines. - s/\s+/ /g; - - # If we were given any explicit text, just output it. - if (/^([^|]+)\|/) { return $1 } - - # Okay, leading and trailing whitespace isn't important; get rid of it. - s/^\s+//; - s/\s+$//; - - # Default to using the whole content of the link entry as a section - # name. Note that L forces a manpage interpretation, as does - # something looking like L. The latter is an - # enhancement over the original Pod::Text. - my ($manpage, $section) = ('', $_); - if (/^(?:https?|ftp|news):/) { - # a URL - return $_; - } elsif (/^"\s*(.*?)\s*"$/) { - $section = '"' . $1 . '"'; - } elsif (m/^[-:.\w]+(?:\(\S+\))?$/) { - ($manpage, $section) = ($_, ''); - } elsif (m{/}) { - ($manpage, $section) = split (/\s*\/\s*/, $_, 2); - } - - my $text = ''; - # Now build the actual output text. - if (!length $section) { - $text = "the $manpage manpage" if length $manpage; - } elsif ($section =~ /^[:\w]+(?:\(\))?/) { - $text .= 'the ' . $section . ' entry'; - $text .= (length $manpage) ? " in the $manpage manpage" - : ' elsewhere in this document'; - } else { - $section =~ s/^\"\s*//; - $section =~ s/\s*\"$//; - $text .= 'the section on "' . $section . '"'; - $text .= " in the $manpage manpage" if length $manpage; - } - return $text; -} - - -############################################################################ -# List handling -############################################################################ - -# This method is called whenever an =item command is complete (in other -# words, we've seen its associated paragraph or know for certain that it -# doesn't have one). It gets the paragraph associated with the item as an -# argument. If that argument is empty, just output the item tag; if it -# contains a newline, output the item tag followed by the newline. -# Otherwise, see if there's enough room for us to output the item tag in the -# margin of the text or if we have to put it on a separate line. -sub item { - my $self = shift; - local $_ = shift; - my $tag = $$self{ITEM}; - unless (defined $tag) { - carp 'item called without tag'; - return; - } - undef $$self{ITEM}; - my $indent = $$self{INDENTS}[-1]; - unless (defined $indent) { $indent = $$self{indent} } - my $space = ' ' x $indent; - $space =~ s/^ /:/ if $$self{alt}; - if (!$_ || /^\s+$/ || ($$self{MARGIN} - $indent < length ($tag) + 1)) { - my $margin = $$self{MARGIN}; - $$self{MARGIN} = $indent; - my $output = $self->reformat ($tag); - $output =~ s/[\r\n]*$/\n/; - $self->output ($output); - $$self{MARGIN} = $margin; - $self->output ($self->reformat ($_)) if /\S/; - } else { - $_ = $self->reformat ($_); - s/^ /:/ if ($$self{alt} && $indent > 0); - my $tagspace = ' ' x length $tag; - s/^($space)$tagspace/$1$tag/ or carp 'Bizarre space in item'; - $self->output ($_); - } -} - - -############################################################################ -# Output formatting -############################################################################ - -# Wrap a line, indenting by the current left margin. We can't use -# Text::Wrap because it plays games with tabs. We can't use formline, even -# though we'd really like to, because it screws up non-printing characters. -# So we have to do the wrapping ourselves. -sub wrap { - my $self = shift; - local $_ = shift; - my $output = ''; - my $spaces = ' ' x $$self{MARGIN}; - my $width = $$self{width} - $$self{MARGIN}; - while (length > $width) { - if (s/^([^\r\n]{0,$width})\s+// || s/^([^\r\n]{$width})//) { - $output .= $spaces . $1 . "\n"; - } else { - last; - } - } - $output .= $spaces . $_; - $output =~ s/\s+$/\n\n/; - return $output; -} - -# Reformat a paragraph of text for the current margin. Takes the text to -# reformat and returns the formatted text. -sub reformat { - my $self = shift; - local $_ = shift; - - # If we're trying to preserve two spaces after sentences, do some - # munging to support that. Otherwise, smash all repeated whitespace. - if ($$self{sentence}) { - s/ +$//mg; - s/\.\r?\n/. \n/g; - s/[\r\n]+/ /g; - s/ +/ /g; - } else { - s/\s+/ /g; - } - return $self->wrap($_); -} - -# Output text to the output device. -sub output { $_[1] =~ tr/\01/ /; print { $_[0]->output_handle } $_[1] } - - -############################################################################ -# Backwards compatibility -############################################################################ - -# The old Pod::Text module did everything in a pod2text() function. This -# tries to provide the same interface for legacy applications. -sub pod2text { - my @args; - - # This is really ugly; I hate doing option parsing in the middle of a - # module. But the old Pod::Text module supported passing flags to its - # entry function, so handle -a and -. - while ($_[0] =~ /^-/) { - my $flag = shift; - if ($flag eq '-a') { push (@args, alt => 1) } - elsif ($flag =~ /^-(\d+)$/) { push (@args, width => $1) } - else { - unshift (@_, $flag); - last; - } - } - - # Now that we know what arguments we're using, create the parser. - my $parser = Pod::PlainText->new (@args); - - # If two arguments were given, the second argument is going to be a file - # handle. That means we want to call parse_from_filehandle(), which - # means we need to turn the first argument into a file handle. Magic - # open will handle the <&STDIN case automagically. - if (defined $_[1]) { - my $infh; - if ($] < 5.006) { - $infh = gensym(); - } - unless (open ($infh, $_[0])) { - croak ("Can't open $_[0] for reading: $!\n"); - } - $_[0] = $infh; - return $parser->parse_from_filehandle (@_); - } else { - return $parser->parse_from_file (@_); - } -} - - -############################################################################ -# Module return value and documentation -############################################################################ - -1; -__END__ - -=head1 NAME - -Pod::PlainText - Convert POD data to formatted ASCII text - -=head1 SYNOPSIS - - use Pod::PlainText; - my $parser = Pod::PlainText->new (sentence => 0, width => 78); - - # Read POD from STDIN and write to STDOUT. - $parser->parse_from_filehandle; - - # Read POD from file.pod and write to file.txt. - $parser->parse_from_file ('file.pod', 'file.txt'); - -=head1 DESCRIPTION - -B -for all things POD.> - -Pod::PlainText is a module that can convert documentation in the POD format (the -preferred language for documenting Perl) into formatted ASCII. It uses no -special formatting controls or codes whatsoever, and its output is therefore -suitable for nearly any device. - -As a derived class from Pod::Parser, Pod::PlainText supports the same methods and -interfaces. See L for all the details; briefly, one creates a -new parser with Cnew()> and then calls either -parse_from_filehandle() or parse_from_file(). - -new() can take options, in the form of key/value pairs, that control the -behavior of the parser. The currently recognized options are: - -=over 4 - -=item alt - -If set to a true value, selects an alternate output format that, among other -things, uses a different heading style and marks C<=item> entries with a -colon in the left margin. Defaults to false. - -=item indent - -The number of spaces to indent regular text, and the default indentation for -C<=over> blocks. Defaults to 4. - -=item loose - -If set to a true value, a blank line is printed after a C<=headN> headings. -If set to false (the default), no blank line is printed after C<=headN>. -This is the default because it's the expected formatting for manual pages; -if you're formatting arbitrary text documents, setting this to true may -result in more pleasing output. - -=item sentence - -If set to a true value, Pod::PlainText will assume that each sentence ends in two -spaces, and will try to preserve that spacing. If set to false, all -consecutive whitespace in non-verbatim paragraphs is compressed into a -single space. Defaults to true. - -=item width - -The column at which to wrap text on the right-hand side. Defaults to 76. - -=back - -The standard Pod::Parser method parse_from_filehandle() takes up to two -arguments, the first being the file handle to read POD from and the second -being the file handle to write the formatted output to. The first defaults -to STDIN if not given, and the second defaults to STDOUT. The method -parse_from_file() is almost identical, except that its two arguments are the -input and output disk files instead. See L for the specific -details. - -=head1 DIAGNOSTICS - -=over 4 - -=item Bizarre space in item - -(W) Something has gone wrong in internal C<=item> processing. This message -indicates a bug in Pod::PlainText; you should never see it. - -=item Can't open %s for reading: %s - -(F) Pod::PlainText was invoked via the compatibility mode pod2text() interface -and the input file it was given could not be opened. - -=item Unknown escape: %s - -(W) The POD source contained an CE> escape that Pod::PlainText didn't -know about. - -=item Unknown sequence: %s - -(W) The POD source contained a non-standard internal sequence (something of -the form CE>) that Pod::PlainText didn't know about. - -=item Unmatched =back - -(W) Pod::PlainText encountered a C<=back> command that didn't correspond to an -C<=over> command. - -=back - -=head1 RESTRICTIONS - -Embedded Ctrl-As (octal 001) in the input will be mapped to spaces on -output, due to an internal implementation detail. - -=head1 NOTES - -This is a replacement for an earlier Pod::Text module written by Tom -Christiansen. It has a revamped interface, since it now uses Pod::Parser, -but an interface roughly compatible with the old Pod::Text::pod2text() -function is still available. Please change to the new calling convention, -though. - -The original Pod::Text contained code to do formatting via termcap -sequences, although it wasn't turned on by default and it was problematic to -get it to work at all. This rewrite doesn't even try to do that, but a -subclass of it does. Look for L. - -=head1 SEE ALSO - -B is part of the L distribution. - -L, L, -pod2text(1) - -=head1 AUTHOR - -Please report bugs using L. - -Russ Allbery Erra@stanford.eduE, based I heavily on the -original Pod::Text by Tom Christiansen Etchrist@mox.perl.comE and -its conversion to Pod::Parser by Brad Appleton -Ebradapp@enteract.comE. - -=cut diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/lib/Pod/Select.pm b/gnu/usr.bin/perl/cpan/Pod-Parser/lib/Pod/Select.pm deleted file mode 100644 index 70267e94ec0..00000000000 --- a/gnu/usr.bin/perl/cpan/Pod-Parser/lib/Pod/Select.pm +++ /dev/null @@ -1,756 +0,0 @@ -############################################################################# -# Pod/Select.pm -- function to select portions of POD docs -# -# Copyright (C) 1996-2000 by Bradford Appleton. All rights reserved. -# This file is part of "PodParser". PodParser is free software; -# you can redistribute it and/or modify it under the same terms -# as Perl itself. -############################################################################# - -package Pod::Select; -use strict; - -use vars qw($VERSION @ISA @EXPORT $MAX_HEADING_LEVEL %myData @section_headings @selected_sections); -$VERSION = '1.63'; ## Current version of this package -require 5.005; ## requires this Perl version or later - -############################################################################# - -=head1 NAME - -Pod::Select, podselect() - extract selected sections of POD from input - -=head1 SYNOPSIS - - use Pod::Select; - - ## Select all the POD sections for each file in @filelist - ## and print the result on standard output. - podselect(@filelist); - - ## Same as above, but write to tmp.out - podselect({-output => "tmp.out"}, @filelist): - - ## Select from the given filelist, only those POD sections that are - ## within a 1st level section named any of: NAME, SYNOPSIS, OPTIONS. - podselect({-sections => ["NAME|SYNOPSIS", "OPTIONS"]}, @filelist): - - ## Select the "DESCRIPTION" section of the PODs from STDIN and write - ## the result to STDERR. - podselect({-output => ">&STDERR", -sections => ["DESCRIPTION"]}, \*STDIN); - -or - - use Pod::Select; - - ## Create a parser object for selecting POD sections from the input - $parser = new Pod::Select(); - - ## Select all the POD sections for each file in @filelist - ## and print the result to tmp.out. - $parser->parse_from_file("<&STDIN", "tmp.out"); - - ## Select from the given filelist, only those POD sections that are - ## within a 1st level section named any of: NAME, SYNOPSIS, OPTIONS. - $parser->select("NAME|SYNOPSIS", "OPTIONS"); - for (@filelist) { $parser->parse_from_file($_); } - - ## Select the "DESCRIPTION" and "SEE ALSO" sections of the PODs from - ## STDIN and write the result to STDERR. - $parser->select("DESCRIPTION"); - $parser->add_selection("SEE ALSO"); - $parser->parse_from_filehandle(\*STDIN, \*STDERR); - -=head1 REQUIRES - -perl5.005, Pod::Parser, Exporter, Carp - -=head1 EXPORTS - -podselect() - -=head1 DESCRIPTION - -B -for all things POD.> - -B is a function which will extract specified sections of -pod documentation from an input stream. This ability is provided by the -B module which is a subclass of B. -B provides a method named B to specify the set of -POD sections to select for processing/printing. B merely -creates a B object and then invokes the B -followed by B. - -=head1 SECTION SPECIFICATIONS - -B and B may be given one or more -"section specifications" to restrict the text processed to only the -desired set of sections and their corresponding subsections. A section -specification is a string containing one or more Perl-style regular -expressions separated by forward slashes ("/"). If you need to use a -forward slash literally within a section title you can escape it with a -backslash ("\/"). - -The formal syntax of a section specification is: - -=over 4 - -=item * - -I/I/... - -=back - -Any omitted or empty regular expressions will default to ".*". -Please note that each regular expression given is implicitly -anchored by adding "^" and "$" to the beginning and end. Also, if a -given regular expression starts with a "!" character, then the -expression is I (so C would match anything I -C). - -Some example section specifications follow. - -=over 4 - -=item * - -Match the C and C sections and all of their subsections: - -C - -=item * - -Match only the C and C subsections of the C -section: - -C - -=item * - -Match the C subsection of I sections: - -C - -=item * - -Match all subsections of C I for C: - -C - -=item * - -Match the C section but do I match any of its subsections: - -C - -=item * - -Match all top level sections but none of their subsections: - -C - -=back - -=begin _NOT_IMPLEMENTED_ - -=head1 RANGE SPECIFICATIONS - -B and B may be given one or more -"range specifications" to restrict the text processed to only the -desired ranges of paragraphs in the desired set of sections. A range -specification is a string containing a single Perl-style regular -expression (a regex), or else two Perl-style regular expressions -(regexs) separated by a ".." (Perl's "range" operator is ".."). -The regexs in a range specification are delimited by forward slashes -("/"). If you need to use a forward slash literally within a regex you -can escape it with a backslash ("\/"). - -The formal syntax of a range specification is: - -=over 4 - -=item * - -/I/[../I/] - -=back - -Where each the item inside square brackets (the ".." followed by the -end-range-regex) is optional. Each "range-regex" is of the form: - - =cmd-expr text-expr - -Where I is intended to match the name of one or more POD -commands, and I is intended to match the paragraph text for -the command. If a range-regex is supposed to match a POD command, then -the first character of the regex (the one after the initial '/') -absolutely I be a single '=' character; it may not be anything -else (not even a regex meta-character) if it is supposed to match -against the name of a POD command. - -If no I<=cmd-expr> is given then the text-expr will be matched against -plain textblocks unless it is preceded by a space, in which case it is -matched against verbatim text-blocks. If no I is given then -only the command-portion of the paragraph is matched against. - -Note that these two expressions are each implicitly anchored. This -means that when matching against the command-name, there will be an -implicit '^' and '$' around the given I<=cmd-expr>; and when matching -against the paragraph text there will be an implicit '\A' and '\Z' -around the given I. - -Unlike with section-specs, the '!' character does I have any special -meaning (negation or otherwise) at the beginning of a range-spec! - -Some example range specifications follow. - -=over 4 - -=item -Match all C<=for html> paragraphs: - -C - -=item -Match all paragraphs between C<=begin html> and C<=end html> -(note that this will I work correctly if such sections -are nested): - -C - -=item -Match all paragraphs between the given C<=item> name until the end of the -current section: - -C - -=item -Match all paragraphs between the given C<=item> until the next item, or -until the end of the itemized list (note that this will I work as -desired if the item contains an itemized list nested within it): - -C - -=back - -=end _NOT_IMPLEMENTED_ - -=cut - -############################################################################# - -#use diagnostics; -use Carp; -use Pod::Parser 1.04; - -@ISA = qw(Pod::Parser); -@EXPORT = qw(&podselect); - -## Maximum number of heading levels supported for '=headN' directives -*MAX_HEADING_LEVEL = \3; - -############################################################################# - -=head1 OBJECT METHODS - -The following methods are provided in this module. Each one takes a -reference to the object itself as an implicit first parameter. - -=cut - -##--------------------------------------------------------------------------- - -## =begin _PRIVATE_ -## -## =head1 B<_init_headings()> -## -## Initialize the current set of active section headings. -## -## =cut -## -## =end _PRIVATE_ - -sub _init_headings { - my $self = shift; - local *myData = $self; - - ## Initialize current section heading titles if necessary - unless (defined $myData{_SECTION_HEADINGS}) { - local *section_headings = $myData{_SECTION_HEADINGS} = []; - for (my $i = 0; $i < $MAX_HEADING_LEVEL; ++$i) { - $section_headings[$i] = ''; - } - } -} - -##--------------------------------------------------------------------------- - -=head1 B - - ($head1, $head2, $head3, ...) = $parser->curr_headings(); - $head1 = $parser->curr_headings(1); - -This method returns a list of the currently active section headings and -subheadings in the document being parsed. The list of headings returned -corresponds to the most recently parsed paragraph of the input. - -If an argument is given, it must correspond to the desired section -heading number, in which case only the specified section heading is -returned. If there is no current section heading at the specified -level, then C is returned. - -=cut - -sub curr_headings { - my $self = shift; - $self->_init_headings() unless (defined $self->{_SECTION_HEADINGS}); - my @headings = @{ $self->{_SECTION_HEADINGS} }; - return (@_ > 0 and $_[0] =~ /^\d+$/) ? $headings[$_[0] - 1] : @headings; -} - -##--------------------------------------------------------------------------- - -=head1 B - - $parser->select($section_spec1,$section_spec2,...); - -This method is used to select the particular sections and subsections of -POD documentation that are to be printed and/or processed. The existing -set of selected sections is I with the given set of sections. -See B for adding to the current set of selected -sections. - -Each of the C<$section_spec> arguments should be a section specification -as described in L<"SECTION SPECIFICATIONS">. The section specifications -are parsed by this method and the resulting regular expressions are -stored in the invoking object. - -If no C<$section_spec> arguments are given, then the existing set of -selected sections is cleared out (which means C sections will be -processed). - -This method should I normally be overridden by subclasses. - -=cut - -sub select { - my ($self, @sections) = @_; - local *myData = $self; - local $_; - -### NEED TO DISCERN A SECTION-SPEC FROM A RANGE-SPEC (look for m{^/.+/$}?) - - ##--------------------------------------------------------------------- - ## The following is a blatant hack for backward compatibility, and for - ## implementing add_selection(). If the *first* *argument* is the - ## string "+", then the remaining section specifications are *added* - ## to the current set of selections; otherwise the given section - ## specifications will *replace* the current set of selections. - ## - ## This should probably be fixed someday, but for the present time, - ## it seems incredibly unlikely that "+" would ever correspond to - ## a legitimate section heading - ##--------------------------------------------------------------------- - my $add = ($sections[0] eq '+') ? shift(@sections) : ''; - - ## Reset the set of sections to use - unless (@sections) { - delete $myData{_SELECTED_SECTIONS} unless ($add); - return; - } - $myData{_SELECTED_SECTIONS} = [] - unless ($add && exists $myData{_SELECTED_SECTIONS}); - local *selected_sections = $myData{_SELECTED_SECTIONS}; - - ## Compile each spec - for my $spec (@sections) { - if ( defined($_ = _compile_section_spec($spec)) ) { - ## Store them in our sections array - push(@selected_sections, $_); - } - else { - carp qq{Ignoring section spec "$spec"!\n}; - } - } -} - -##--------------------------------------------------------------------------- - -=head1 B - - $parser->add_selection($section_spec1,$section_spec2,...); - -This method is used to add to the currently selected sections and -subsections of POD documentation that are to be printed and/or -processed. See for replacing the currently selected sections. - -Each of the C<$section_spec> arguments should be a section specification -as described in L<"SECTION SPECIFICATIONS">. The section specifications -are parsed by this method and the resulting regular expressions are -stored in the invoking object. - -This method should I normally be overridden by subclasses. - -=cut - -sub add_selection { - my $self = shift; - return $self->select('+', @_); -} - -##--------------------------------------------------------------------------- - -=head1 B - - $parser->clear_selections(); - -This method takes no arguments, it has the exact same effect as invoking - with no arguments. - -=cut - -sub clear_selections { - my $self = shift; - return $self->select(); -} - -##--------------------------------------------------------------------------- - -=head1 B - - $boolean = $parser->match_section($heading1,$heading2,...); - -Returns a value of true if the given section and subsection heading -titles match any of the currently selected section specifications in -effect from prior calls to B and B (or if -there are no explicitly selected/deselected sections). - -The arguments C<$heading1>, C<$heading2>, etc. are the heading titles of -the corresponding sections, subsections, etc. to try and match. If -C<$headingN> is omitted then it defaults to the current corresponding -section heading title in the input. - -This method should I normally be overridden by subclasses. - -=cut - -sub match_section { - my $self = shift; - my (@headings) = @_; - local *myData = $self; - - ## Return true if no restrictions were explicitly specified - my $selections = (exists $myData{_SELECTED_SECTIONS}) - ? $myData{_SELECTED_SECTIONS} : undef; - return 1 unless ((defined $selections) && @{$selections}); - - ## Default any unspecified sections to the current one - my @current_headings = $self->curr_headings(); - for (my $i = 0; $i < $MAX_HEADING_LEVEL; ++$i) { - (defined $headings[$i]) or $headings[$i] = $current_headings[$i]; - } - - ## Look for a match against the specified section expressions - for my $section_spec ( @{$selections} ) { - ##------------------------------------------------------ - ## Each portion of this spec must match in order for - ## the spec to be matched. So we will start with a - ## match-value of 'true' and logically 'and' it with - ## the results of matching a given element of the spec. - ##------------------------------------------------------ - my $match = 1; - for (my $i = 0; $i < $MAX_HEADING_LEVEL; ++$i) { - my $regex = $section_spec->[$i]; - my $negated = ($regex =~ s/^\!//); - $match &= ($negated ? ($headings[$i] !~ /${regex}/) - : ($headings[$i] =~ /${regex}/)); - last unless ($match); - } - return 1 if ($match); - } - return 0; ## no match -} - -##--------------------------------------------------------------------------- - -=head1 B - - $boolean = $parser->is_selected($paragraph); - -This method is used to determine if the block of text given in -C<$paragraph> falls within the currently selected set of POD sections -and subsections to be printed or processed. This method is also -responsible for keeping track of the current input section and -subsections. It is assumed that C<$paragraph> is the most recently read -(but not yet processed) input paragraph. - -The value returned will be true if the C<$paragraph> and the rest of the -text in the same section as C<$paragraph> should be selected (included) -for processing; otherwise a false value is returned. - -=cut - -sub is_selected { - my ($self, $paragraph) = @_; - local $_; - local *myData = $self; - - $self->_init_headings() unless (defined $myData{_SECTION_HEADINGS}); - - ## Keep track of current sections levels and headings - $_ = $paragraph; - if (/^=((?:sub)*)(?:head(?:ing)?|sec(?:tion)?)(\d*)\s+(.*?)\s*$/) - { - ## This is a section heading command - my ($level, $heading) = ($2, $3); - $level = 1 + (length($1) / 3) if ((! length $level) || (length $1)); - ## Reset the current section heading at this level - $myData{_SECTION_HEADINGS}->[$level - 1] = $heading; - ## Reset subsection headings of this one to empty - for (my $i = $level; $i < $MAX_HEADING_LEVEL; ++$i) { - $myData{_SECTION_HEADINGS}->[$i] = ''; - } - } - - return $self->match_section(); -} - -############################################################################# - -=head1 EXPORTED FUNCTIONS - -The following functions are exported by this module. Please note that -these are functions (not methods) and therefore C take an -implicit first argument. - -=cut - -##--------------------------------------------------------------------------- - -=head1 B - - podselect(\%options,@filelist); - -B will print the raw (untranslated) POD paragraphs of all -POD sections in the given input files specified by C<@filelist> -according to the options given in C<\%options>. - -If any argument to B is a reference to a hash -(associative array) then the values with the following keys are -processed as follows: - -=over 4 - -=item B<-output> - -A string corresponding to the desired output file (or ">&STDOUT" -or ">&STDERR"), or a filehandle to write on. The default is to use -standard output. - -=item B<-sections> - -A reference to an array of sections specifications (as described in -L<"SECTION SPECIFICATIONS">) which indicate the desired set of POD -sections and subsections to be selected from input. If no section -specifications are given, then all sections of the PODs are used. - -=begin _NOT_IMPLEMENTED_ - -=item B<-ranges> - -A reference to an array of range specifications (as described in -L<"RANGE SPECIFICATIONS">) which indicate the desired range of POD -paragraphs to be selected from the desired input sections. If no range -specifications are given, then all paragraphs of the desired sections -are used. - -=end _NOT_IMPLEMENTED_ - -=back - -All other arguments are optional and should correspond to filehandles to -read from or the names of input files containing POD sections. A file name -of "", "-" or "<&STDIN" will be interpreted to mean standard input (which -is the default if no arguments are given). - -=cut - -sub podselect { - my(@argv) = @_; - my %defaults = (); - my $pod_parser = new Pod::Select(%defaults); - my $num_inputs = 0; - my $output = '>&STDOUT'; - my %opts; - local $_; - for (@argv) { - my $ref = ref($_); - if ($ref && $ref eq 'HASH') { - %opts = (%defaults, %{$_}); - - ##------------------------------------------------------------- - ## Need this for backward compatibility since we formerly used - ## options that were all uppercase words rather than ones that - ## looked like Unix command-line options. - ## to be uppercase keywords) - ##------------------------------------------------------------- - %opts = map { - my ($key, $val) = (lc $_, $opts{$_}); - $key =~ s/^(?=\w)/-/; - $key =~ /^-se[cl]/ and $key = '-sections'; - #! $key eq '-range' and $key .= 's'; - ($key => $val); - } (keys %opts); - - ## Process the options - (exists $opts{'-output'}) and $output = $opts{'-output'}; - - ## Select the desired sections - $pod_parser->select(@{ $opts{'-sections'} }) - if ( (defined $opts{'-sections'}) - && ((ref $opts{'-sections'}) eq 'ARRAY') ); - - #! ## Select the desired paragraph ranges - #! $pod_parser->select(@{ $opts{'-ranges'} }) - #! if ( (defined $opts{'-ranges'}) - #! && ((ref $opts{'-ranges'}) eq 'ARRAY') ); - } - elsif(!$ref || $ref eq 'GLOB') { - $pod_parser->parse_from_file($_, $output); - ++$num_inputs; - } - else { - croak "Input from $ref reference not supported!\n"; - } - } - $pod_parser->parse_from_file('-') unless ($num_inputs > 0); -} - -############################################################################# - -=head1 PRIVATE METHODS AND DATA - -B makes uses a number of internal methods and data fields -which clients should not need to see or use. For the sake of avoiding -name collisions with client data and methods, these methods and fields -are briefly discussed here. Determined hackers may obtain further -information about them by reading the B source code. - -Private data fields are stored in the hash-object whose reference is -returned by the B constructor for this class. The names of all -private methods and data-fields used by B begin with a -prefix of "_" and match the regular expression C. - -=cut - -##--------------------------------------------------------------------------- - -=begin _PRIVATE_ - -=head1 B<_compile_section_spec()> - - $listref = $parser->_compile_section_spec($section_spec); - -This function (note it is a function and I a method) takes a -section specification (as described in L<"SECTION SPECIFICATIONS">) -given in C<$section_sepc>, and compiles it into a list of regular -expressions. If C<$section_spec> has no syntax errors, then a reference -to the list (array) of corresponding regular expressions is returned; -otherwise C is returned and an error message is printed (using -B) for each invalid regex. - -=end _PRIVATE_ - -=cut - -sub _compile_section_spec { - my ($section_spec) = @_; - my (@regexs, $negated); - - ## Compile the spec into a list of regexs - local $_ = $section_spec; - s{\\\\}{\001}g; ## handle escaped backward slashes - s{\\/}{\002}g; ## handle escaped forward slashes - - ## Parse the regexs for the heading titles - @regexs = split(/\//, $_, $MAX_HEADING_LEVEL); - - ## Set default regex for omitted levels - for (my $i = 0; $i < $MAX_HEADING_LEVEL; ++$i) { - $regexs[$i] = '.*' unless ((defined $regexs[$i]) - && (length $regexs[$i])); - } - ## Modify the regexs as needed and validate their syntax - my $bad_regexs = 0; - for (@regexs) { - $_ .= '.+' if ($_ eq '!'); - s{\001}{\\\\}g; ## restore escaped backward slashes - s{\002}{\\/}g; ## restore escaped forward slashes - $negated = s/^\!//; ## check for negation - eval "m{$_}"; ## check regex syntax - if ($@) { - ++$bad_regexs; - carp qq{Bad regular expression /$_/ in "$section_spec": $@\n}; - } - else { - ## Add the forward and rear anchors (and put the negator back) - $_ = '^' . $_ unless (/^\^/); - $_ = $_ . '$' unless (/\$$/); - $_ = '!' . $_ if ($negated); - } - } - return (! $bad_regexs) ? [ @regexs ] : undef; -} - -##--------------------------------------------------------------------------- - -=begin _PRIVATE_ - -=head2 $self->{_SECTION_HEADINGS} - -A reference to an array of the current section heading titles for each -heading level (note that the first heading level title is at index 0). - -=end _PRIVATE_ - -=cut - -##--------------------------------------------------------------------------- - -=begin _PRIVATE_ - -=head2 $self->{_SELECTED_SECTIONS} - -A reference to an array of references to arrays. Each subarray is a list -of anchored regular expressions (preceded by a "!" if the expression is to -be negated). The index of the expression in the subarray should correspond -to the index of the heading title in C<$self-E{_SECTION_HEADINGS}> -that it is to be matched against. - -=end _PRIVATE_ - -=cut - -############################################################################# - -=head1 SEE ALSO - -L - -=head1 AUTHOR - -Please report bugs using L. - -Brad Appleton Ebradapp@enteract.comE - -Based on code for B written by -Tom Christiansen Etchrist@mox.perl.comE - -B is part of the L distribution. - -=cut - -1; -# vim: ts=4 sw=4 et diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/scripts/podselect.PL b/gnu/usr.bin/perl/cpan/Pod-Parser/scripts/podselect.PL deleted file mode 100644 index 16e2d985be6..00000000000 --- a/gnu/usr.bin/perl/cpan/Pod-Parser/scripts/podselect.PL +++ /dev/null @@ -1,143 +0,0 @@ -#!/usr/local/bin/perl - -use Config; -use File::Basename qw(&basename &dirname); -use Cwd; - -# List explicitly here the variables you want Configure to -# generate. Metaconfig only looks for shell variables, so you -# have to mention them as if they were shell variables, not -# %Config entries. Thus you write -# $startperl -# to ensure Configure will look for $Config{startperl}. - -# This forces PL files to create target in same directory as PL file. -# This is so that make depend always knows where to find PL derivatives. -$origdir = cwd; -chdir(dirname($0)); -$file = basename($0, '.PL'); -$file .= '.com' if $^O eq 'VMS'; - -open OUT,">$file" or die "Can't create $file: $!"; - -print "Extracting $file (with variable substitutions)\n"; - -# In this section, perl variables will be expanded during extraction. -# You can use $Config{...} to use Configure variables. - -print OUT <<"!GROK!THIS!"; -$Config{'startperl'} - eval 'exec perl -S \$0 "\$@"' - if 0; -!GROK!THIS! - -# In the following, perl variables are not expanded during extraction. - -print OUT <<'!NO!SUBS!'; - -############################################################################# -# podselect -- command to invoke the podselect function in Pod::Select -# -# Copyright (c) 1996-2000 by Bradford Appleton. All rights reserved. -# This file is part of "PodParser". PodParser is free software; -# you can redistribute it and/or modify it under the same terms -# as Perl itself. -############################################################################# - -use strict; -#use diagnostics; - -=head1 NAME - -podselect - print selected sections of pod documentation on standard output - -=head1 SYNOPSIS - -B [B<-help>] [B<-man>] [B<-section>S< >I] -[IS< >...] - -=head1 OPTIONS AND ARGUMENTS - -=over 8 - -=item B<-help> - -Print a brief help message and exit. - -=item B<-man> - -Print the manual page and exit. - -=item B<-section>S< >I - -Specify a section to include in the output. -See L -for the format to use for I. -This option may be given multiple times on the command line. - -=item I - -The pathname of a file from which to select sections of pod -documentation (defaults to standard input). - -=back - -=head1 DESCRIPTION - -B will read the given input files looking for pod -documentation and will print out (in raw pod format) all sections that -match one ore more of the given section specifications. If no section -specifications are given than all pod sections encountered are output. - -B invokes the B function exported by B -Please see L for more details. - -=head1 SEE ALSO - -L and L - -=head1 AUTHOR - -Please report bugs using L. - -Brad Appleton Ebradapp@enteract.comE - -Based on code for B written by -Tom Christiansen Etchrist@mox.perl.comE - -=cut - -use Pod::Select; -use Pod::Usage; -use Getopt::Long; - -## Define options -my %options = ( - 'help' => 0, - 'man' => 0, - 'sections' => [], -); - -## Parse options -GetOptions(\%options, 'help', 'man', 'sections|select=s@') || pod2usage(2); -pod2usage(1) if ($options{help}); -pod2usage(-verbose => 2) if ($options{man}); - -## Dont default to STDIN if connected to a terminal -pod2usage(2) if ((@ARGV == 0) && (-t STDIN)); - -## Invoke podselect(). -if (@{ $options{'sections'} } > 0) { - podselect({ -sections => $options{'sections'} }, @ARGV); -} -else { - podselect(@ARGV); -} - - -!NO!SUBS! - -close OUT or die "Can't close $file: $!"; -chmod 0755, $file or die "Can't reset permissions for $file: $!\n"; -exec("$Config{'eunicefix'} $file") if $Config{'eunicefix'} ne ':'; -chdir $origdir; diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/contains_bad_pod.xr b/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/contains_bad_pod.xr deleted file mode 100644 index c7907963d95..00000000000 --- a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/contains_bad_pod.xr +++ /dev/null @@ -1,5 +0,0 @@ -=head foo - -bar baz. - -=cut diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/contains_pod.t b/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/contains_pod.t deleted file mode 100755 index 96cdb95bb17..00000000000 --- a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/contains_pod.t +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env perl - -# Copyright (C) 2005 Joshua Hoblitt -# -# $Id$ - -use strict; - -use Test::More tests => 2; - -use Pod::Find qw( contains_pod ); - -{ - ok(contains_pod('t/pod/contains_pod.xr'), "contains pod"); -} - -{ - ok(contains_pod('t/pod/contains_bad_pod.xr'), "contains bad pod"); -} diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/contains_pod.xr b/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/contains_pod.xr deleted file mode 100644 index b79591a95c4..00000000000 --- a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/contains_pod.xr +++ /dev/null @@ -1,5 +0,0 @@ -=head1 foo - -bar baz. - -=cut diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/empty.xr b/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/empty.xr deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/emptycmd.t b/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/emptycmd.t deleted file mode 100755 index 53d1046345b..00000000000 --- a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/emptycmd.t +++ /dev/null @@ -1,21 +0,0 @@ -BEGIN { - use File::Basename; - my $THISDIR = dirname $0; - unshift @INC, $THISDIR; - require "testp2pt.pl"; - import TestPodIncPlainText; -} - -my %options = map { $_ => 1 } @ARGV; ## convert cmdline to options-hash -my $passed = testpodplaintext \%options, $0; -exit( ($passed == 1) ? 0 : -1 ) unless $ENV{HARNESS_ACTIVE}; - -__END__ - -=pod - -= this is a test -of the emergency -broadcast system - -=cut diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/emptycmd.xr b/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/emptycmd.xr deleted file mode 100644 index dd474a1a447..00000000000 --- a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/emptycmd.xr +++ /dev/null @@ -1,2 +0,0 @@ - = this is a test of the emergency broadcast system - diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/find.t b/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/find.t deleted file mode 100755 index 90a57adaaca..00000000000 --- a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/find.t +++ /dev/null @@ -1,107 +0,0 @@ -# Testing of Pod::Find -# Author: Marek Rouchal - -$| = 1; - -BEGIN { - if ($^O eq 'VMS') { - print "1..0 # needs upstream patch from https://rt.cpan.org/Ticket/Display.html?id=55121"; - exit 0; - } -} - -use strict; -use Test::More tests => 4; - -BEGIN { - # 1. load successful - use_ok('Pod::Find', qw(pod_find pod_where)); -} - -use File::Spec; - -require Cwd; -my $THISDIR = Cwd::cwd(); -my $VERBOSE = $ENV{PERL_CORE} ? 0 : ($ENV{TEST_VERBOSE} || 0); -my $lib_dir = File::Spec->catdir($THISDIR,'lib'); - -if ($^O eq 'VMS') { - $lib_dir = VMS::Filespec::unixify($lib_dir); -} - -print "### 2. searching $lib_dir\n"; -my %pods = pod_find($lib_dir); -my @results = values %pods; -print "### found @results\n"; -my @compare = qw( - Pod::Find - Pod::InputObjects - Pod::ParseUtils - Pod::Parser - Pod::PlainText - Pod::Select -); -if (File::Spec->case_tolerant || $^O eq 'dos') { - # must downcase before sorting - map {$_ = lc $_} @compare; - map {$_ = lc $_} @results; -} -my $compare = join(',', sort @compare); -my $result = join(',', sort @results); -is($result, $compare); - -print "### 3. searching for File::Find\n"; -$result = pod_where({ -inc => 1, -verbose => $VERBOSE }, 'File::Find') - || 'undef - pod not found!'; -print "### found $result\n"; - -require Config; -$compare = $ENV{PERL_CORE} ? - File::Spec->catfile(File::Spec->updir, File::Spec->updir, 'lib','File','Find.pm') - : File::Spec->catfile($Config::Config{privlibexp},"File","Find.pm"); -my $resfile = _canon($result); -my $cmpfile = _canon($compare); -if($^O =~ /dos|win32/i && $resfile =~ /~\d(?=\\|$)/) { - # we have ~1 short filenames - $resfile = quotemeta($resfile); - $resfile =~ s/\\~\d(?=\\|$)/[^\\\\]+/g; - ok($cmpfile =~ /^$resfile$/, "pod_where found File::Find (with long filename matching)") || - diag("'$cmpfile' does not match /^$resfile\$/"); -} elsif($^O =~ /dos|win32/i && $cmpfile =~ /~\d(?=\\|$)/) { - # we have ~1 short filenames - $cmpfile = quotemeta($cmpfile); - $cmpfile =~ s/\\~\d(?=\\|$)/[^\\\\]+/g; - ok($resfile =~ /^$cmpfile$/, "pod_where found File::Find (with long filename matching)") || - diag("'$resfile' does not match /^$cmpfile\$/"); -} else { - is($resfile,$cmpfile,"pod_where found File::Find"); -} - -# Search for a documentation pod rather than a module -my $searchpod = 'Stuff'; -print "### 4. searching for $searchpod.pod\n"; -$result = pod_where( - { -dirs => [ File::Spec->catdir( qw(t), 'pod', 'testpods', 'lib', 'Pod') ], - -verbose => $VERBOSE }, $searchpod) - || "undef - $searchpod.pod not found!"; -print "### found $result\n"; - -$compare = File::Spec->catfile( - qw(t), 'pod', 'testpods', 'lib', 'Pod' ,'Stuff.pm'); -is(_canon($result),_canon($compare)); - - -# make the path as generic as possible -sub _canon -{ - my ($path) = @_; - $path = File::Spec->canonpath($path); - my @comp = File::Spec->splitpath($path); - my @dir = File::Spec->splitdir($comp[1]); - $comp[1] = File::Spec->catdir(@dir); - $path = File::Spec->catpath(@comp); - $path = uc($path) if File::Spec->case_tolerant; - print "### general path: $path\n" if $VERBOSE; - $path; -} - diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/for.t b/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/for.t deleted file mode 100755 index 12ba3392c08..00000000000 --- a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/for.t +++ /dev/null @@ -1,59 +0,0 @@ -BEGIN { - use File::Basename; - my $THISDIR = dirname $0; - unshift @INC, $THISDIR; - require "testp2pt.pl"; - import TestPodIncPlainText; -} - -my %options = map { $_ => 1 } @ARGV; ## convert cmdline to options-hash -my $passed = testpodplaintext \%options, $0; -exit( ($passed == 1) ? 0 : -1 ) unless $ENV{HARNESS_ACTIVE}; - - -__END__ - - -=pod - -This is a test - -=for theloveofpete -You shouldn't see this -or this -or this - -=for text -pod2text should see this -and this -and this - -and everything should see this! - -=begin text - -Similarly, this line ... - -and this one ... - -as well this one, - -should all be in pod2text output - -=end text - -Tweedley-deedley-dee, Im as happy as can be! -Tweedley-deedley-dum, cuz youre my honey sugar plum! - -=begin atthebeginning - -But I expect to see neither hide ... - -nor tail ... - -of this text - -=end atthebeginning - -The rest of this should show up in everything. - diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/for.xr b/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/for.xr deleted file mode 100644 index b616bf2cb2b..00000000000 --- a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/for.xr +++ /dev/null @@ -1,21 +0,0 @@ - This is a test - - pod2text should see this - and this - and this - - and everything should see this! - -Similarly, this line ... - -and this one ... - -as well this one, - -should all be in pod2text output - - Tweedley-deedley-dee, Im as happy as can be! Tweedley-deedley-dum, cuz - youre my honey sugar plum! - - The rest of this should show up in everything. - diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/headings.t b/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/headings.t deleted file mode 100755 index 4688272231a..00000000000 --- a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/headings.t +++ /dev/null @@ -1,140 +0,0 @@ -BEGIN { - use File::Basename; - my $THISDIR = dirname $0; - unshift @INC, $THISDIR; - require "testp2pt.pl"; - import TestPodIncPlainText; -} - -my %options = map { $_ => 1 } @ARGV; ## convert cmdline to options-hash -my $passed = testpodplaintext \%options, $0; -exit( ($passed == 1) ? 0 : -1 ) unless $ENV{HARNESS_ACTIVE}; - - -__END__ - - -################################################################# - use Pod::Usage; - pod2usage( VERBOSE => 2, EXIT => 1 ); - -=pod - -=head1 NAME - -B - insert an rdb table into a PostgreSQL database - -=head1 SYNOPSIS - -B [I=I ...] - -=head1 PARAMETERS - -B uses an IRAF-compatible parameter interface. -A template parameter file is in F. - -=over 4 - -=item B I - -The B file to insert into the database. If the given name -is the string C, it reads from the UNIX standard input stream. - - -=back - -=head1 DESCRIPTION - -B will enter the data from an B database into a -PostgreSQL database table, optionally creating the database and the -table if they do not exist. It automatically determines the -PostgreSQL data type from the column definition in the B file, -but may be overriden via a series of definition files or directly -via one of its parameters. - -The target database and table are specified by the C and C -parameters. If they do not exist, and the C parameter is -set, they will be created. Table field definitions are determined -in the following order: - -=cut - -################################################################# - -results in: - - -################################################################# - - rdb2pg - insert an rdb table into a PostgreSQL database - - rdb2pg [*param*=*value* ...] - - rdb2pg uses an IRAF-compatible parameter interface. A template - parameter file is in /proj/axaf/simul/lib/uparm/rdb2pg.par. - - The RDB file to insert into the database. If the given name is - the string `stdin', it reads from the UNIX standard input - stream. - - rdb2pg will enter the data from an RDB database into a - PostgreSQL database table, optionally creating the database and - the table if they do not exist. It automatically determines the - PostgreSQL data type from the column definition in the RDB file, - but may be overriden via a series of definition files or - directly via one of its parameters. - - The target database and table are specified by the `db' and - `table' parameters. If they do not exist, and the `createdb' - parameter is set, they will be created. Table field definitions - are determined in the following order: - - -################################################################# - -while the original version of Text (using pod2text) gives - -################################################################# - -NAME - rdb2pg - insert an rdb table into a PostgreSQL database - -SYNOPSIS - rdb2pg [*param*=*value* ...] - -PARAMETERS - rdb2pg uses an IRAF-compatible parameter interface. A template - parameter file is in /proj/axaf/simul/lib/uparm/rdb2pg.par. - - input *file* - The RDB file to insert into the database. If the given name - is the string `stdin', it reads from the UNIX standard input - stream. - -DESCRIPTION - rdb2pg will enter the data from an RDB database into a - PostgreSQL database table, optionally creating the database and - the table if they do not exist. It automatically determines the - PostgreSQL data type from the column definition in the RDB file, - but may be overriden via a series of definition files or - directly via one of its parameters. - - The target database and table are specified by the `db' and - `table' parameters. If they do not exist, and the `createdb' - parameter is set, they will be created. Table field definitions - are determined in the following order: - - -################################################################# - - -Thanks for any help. If, as your email indicates, you've not much -time to look at this, I can work around things by calling pod2text() -directly using the official Text.pm. - -Diab - -------------- -Diab Jerius -djerius@cfa.harvard.edu - diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/headings.xr b/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/headings.xr deleted file mode 100644 index f92efb5ecf5..00000000000 --- a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/headings.xr +++ /dev/null @@ -1,26 +0,0 @@ -NAME - rdb2pg - insert an rdb table into a PostgreSQL database - -SYNOPSIS - rdb2pg [*param*=*value* ...] - -PARAMETERS - rdb2pg uses an IRAF-compatible parameter interface. A template parameter - file is in /proj/axaf/simul/lib/uparm/rdb2pg.par. - - input *file* - The RDB file to insert into the database. If the given name is the - string `stdin', it reads from the UNIX standard input stream. - -DESCRIPTION - rdb2pg will enter the data from an RDB database into a PostgreSQL - database table, optionally creating the database and the table if they - do not exist. It automatically determines the PostgreSQL data type from - the column definition in the RDB file, but may be overriden via a series - of definition files or directly via one of its parameters. - - The target database and table are specified by the `db' and `table' - parameters. If they do not exist, and the `createdb' parameter is set, - they will be created. Table field definitions are determined in the - following order: - diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/include.t b/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/include.t deleted file mode 100755 index 9edb47864ce..00000000000 --- a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/include.t +++ /dev/null @@ -1,36 +0,0 @@ -BEGIN { - use File::Basename; - my $THISDIR = dirname $0; - unshift @INC, $THISDIR; - require "testp2pt.pl"; - import TestPodIncPlainText; -} - -my %options = map { $_ => 1 } @ARGV; ## convert cmdline to options-hash -my $passed = testpodplaintext \%options, $0; -exit( ($passed == 1) ? 0 : -1 ) unless $ENV{HARNESS_ACTIVE}; - - -__END__ - - -=pod - -This file tries to demonstrate a simple =include directive -for pods. It is used as follows: - - =include filename - -where "filename" is expected to be an absolute pathname, or else -reside be relative to the directory in which the current processed -podfile resides, or be relative to the current directory. - -Lets try it out with the file "included.t" shall we. - -***THIS TEXT IS IMMEDIATELY BEFORE THE INCLUDE*** - -=include included.t - -***THIS TEXT IS IMMEDIATELY AFTER THE INCLUDE*** - -So how did we do??? diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/include.xr b/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/include.xr deleted file mode 100644 index 187653b741a..00000000000 --- a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/include.xr +++ /dev/null @@ -1,22 +0,0 @@ - This file tries to demonstrate a simple =include directive for pods. It - is used as follows: - - =include filename - - where "filename" is expected to be an absolute pathname, or else reside - be relative to the directory in which the current processed podfile - resides, or be relative to the current directory. - - Lets try it out with the file "included.t" shall we. - - ***THIS TEXT IS IMMEDIATELY BEFORE THE INCLUDE*** - -###### begin =include included.t ##### - This is the text of the included file named "included.t". It should - appear in the final pod document from pod2xxx - -###### end =include included.t ##### - ***THIS TEXT IS IMMEDIATELY AFTER THE INCLUDE*** - - So how did we do??? - diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/included.t b/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/included.t deleted file mode 100755 index d6e4a504311..00000000000 --- a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/included.t +++ /dev/null @@ -1,35 +0,0 @@ -BEGIN { - use File::Basename; - my $THISDIR = dirname $0; - unshift @INC, $THISDIR; - require "testp2pt.pl"; - import TestPodIncPlainText; -} - -my %options = map { $_ => 1 } @ARGV; ## convert cmdline to options-hash -my $passed = testpodplaintext \%options, $0; -exit( ($passed == 1) ? 0 : -1 ) unless $ENV{HARNESS_ACTIVE}; - - -__END__ - - -##------------------------------------------------------------ -# This file is =included by "include.t" -# -# This text should NOT be in the resultant pod document -# because we havent seen an =xxx pod directive in this file! -##------------------------------------------------------------ - -=pod - -This is the text of the included file named "included.t". -It should appear in the final pod document from pod2xxx - -=cut - -##------------------------------------------------------------ -# This text should NOT be in the resultant pod document -# because it is *after* an =cut an no other pod directives -# proceed it! -##------------------------------------------------------------ diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/included.xr b/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/included.xr deleted file mode 100644 index 16a65cd3586..00000000000 --- a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/included.xr +++ /dev/null @@ -1,3 +0,0 @@ - This is the text of the included file named "included.t". It should - appear in the final pod document from pod2xxx - diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/lref.t b/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/lref.t deleted file mode 100755 index 33a0a7ca9f3..00000000000 --- a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/lref.t +++ /dev/null @@ -1,66 +0,0 @@ -BEGIN { - use File::Basename; - my $THISDIR = dirname $0; - unshift @INC, $THISDIR; - require "testp2pt.pl"; - import TestPodIncPlainText; -} - -my %options = map { $_ => 1 } @ARGV; ## convert cmdline to options-hash -my $passed = testpodplaintext \%options, $0; -exit( ($passed == 1) ? 0 : -1 ) unless $ENV{HARNESS_ACTIVE}; - - -__END__ - - -=pod - -Try out I of different ways of specifying references: - -Reference the L - -Reference the L - -Reference the L - -Reference the L - -Reference the L<"manpage/section"> - -Reference the L<"manpage"/section> - -Reference the L - -Reference the L - -Reference the L - -Now try it using the new "|" stuff ... - -Reference the L - -Reference the L - -Reference the L - -Reference the L - -Reference the L - -Reference the L - -Reference the L - -Reference the L - -Reference the L - diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/lref.xr b/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/lref.xr deleted file mode 100644 index c287cf5a6d9..00000000000 --- a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/lref.xr +++ /dev/null @@ -1,40 +0,0 @@ - Try out *LOTS* of different ways of specifying references: - - Reference the the section entry in the manpage manpage - - Reference the the section entry in the manpage manpage - - Reference the the section entry in the manpage manpage - - Reference the the section entry in the manpage manpage - - Reference the the section on "manpage/section" - - Reference the the section entry in the "manpage" manpage - - Reference the the section on "section" in the manpage manpage - - Reference the the section entry in the manpage manpage - - Reference the the section entry in the manpage manpage - - Now try it using the new "|" stuff ... - - Reference the thistext - - Reference the thistext - - Reference the thistext - - Reference the thistext - - Reference the thistext - - Reference the thistext - - Reference the thistext - - Reference the thistext - - Reference the thistext - diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/multiline_items.t b/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/multiline_items.t deleted file mode 100755 index 98ad34222eb..00000000000 --- a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/multiline_items.t +++ /dev/null @@ -1,31 +0,0 @@ -BEGIN { - use File::Basename; - my $THISDIR = dirname $0; - unshift @INC, $THISDIR; - require "testp2pt.pl"; - import TestPodIncPlainText; -} - -my %options = map { $_ => 1 } @ARGV; ## convert cmdline to options-hash -my $passed = testpodplaintext \%options, $0; -exit( ($passed == 1) ? 0 : -1 ) unless $ENV{HARNESS_ACTIVE}; - - -__END__ - - -=head1 Test multiline item lists - -This is a test to ensure that multiline =item paragraphs -get indented appropriately. - -=over 4 - -=item This -is -a -test. - -=back - -=cut diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/multiline_items.xr b/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/multiline_items.xr deleted file mode 100644 index cda163b7f5b..00000000000 --- a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/multiline_items.xr +++ /dev/null @@ -1,6 +0,0 @@ -Test multiline item lists - This is a test to ensure that multiline =item paragraphs get indented - appropriately. - - This is a test. - diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/nested_items.t b/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/nested_items.t deleted file mode 100755 index f60a67f1abb..00000000000 --- a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/nested_items.t +++ /dev/null @@ -1,64 +0,0 @@ -BEGIN { - use File::Basename; - my $THISDIR = dirname $0; - unshift @INC, $THISDIR; - require "testp2pt.pl"; - import TestPodIncPlainText; -} - -my %options = map { $_ => 1 } @ARGV; ## convert cmdline to options-hash -my $passed = testpodplaintext \%options, $0; -exit( ($passed == 1) ? 0 : -1 ) unless $ENV{HARNESS_ACTIVE}; - - -__END__ - - -=head1 Test nested item lists - -This is a test to ensure the nested =item paragraphs -get indented appropriately. - -=over 2 - -=item 1 - -First section. - -=over 2 - -=item a - -this is item a - -=item b - -this is item b - -=back - -=item 2 - -Second section. - -=over 2 - -=item a - -this is item a - -=item b - -this is item b - -=item c - -=item d - -This is item c & d. - -=back - -=back - -=cut diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/nested_items.xr b/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/nested_items.xr deleted file mode 100644 index 30834e9ca62..00000000000 --- a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/nested_items.xr +++ /dev/null @@ -1,19 +0,0 @@ -Test nested item lists - This is a test to ensure the nested =item paragraphs get indented - appropriately. - - 1 First section. - - a this is item a - - b this is item b - - 2 Second section. - - a this is item a - - b this is item b - - c - d This is item c & d. - diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/nested_seqs.t b/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/nested_seqs.t deleted file mode 100755 index 6f7ae67e997..00000000000 --- a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/nested_seqs.t +++ /dev/null @@ -1,23 +0,0 @@ -BEGIN { - use File::Basename; - my $THISDIR = dirname $0; - unshift @INC, $THISDIR; - require "testp2pt.pl"; - import TestPodIncPlainText; -} - -my %options = map { $_ => 1 } @ARGV; ## convert cmdline to options-hash -my $passed = testpodplaintext \%options, $0; -exit( ($passed == 1) ? 0 : -1 ) unless $ENV{HARNESS_ACTIVE}; - - -__END__ - - -=pod - -The statement: C hour!> is a parody of a -quotation from Winston Churchill. - -=cut - diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/nested_seqs.xr b/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/nested_seqs.xr deleted file mode 100644 index 4d2e09e499c..00000000000 --- a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/nested_seqs.xr +++ /dev/null @@ -1,3 +0,0 @@ - The statement: `This is dog kind's *finest* hour!' is a parody of a - quotation from Winston Churchill. - diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/oneline_cmds.t b/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/oneline_cmds.t deleted file mode 100755 index 65df35271be..00000000000 --- a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/oneline_cmds.t +++ /dev/null @@ -1,46 +0,0 @@ -BEGIN { - use File::Basename; - my $THISDIR = dirname $0; - unshift @INC, $THISDIR; - require "testp2pt.pl"; - import TestPodIncPlainText; -} - -my %options = map { $_ => 1 } @ARGV; ## convert cmdline to options-hash -my $passed = testpodplaintext \%options, $0; -exit( ($passed == 1) ? 0 : -1 ) unless $ENV{HARNESS_ACTIVE}; - - -__END__ - - -==head1 NAME -B - insert an rdb table into a PostgreSQL database - -==head1 SYNOPSIS -B [I=I ...] - -==head1 PARAMETERS -B uses an IRAF-compatible parameter interface. -A template parameter file is in F. - -==over 4 -==item B I -The B file to insert into the database. If the given name -is the string C, it reads from the UNIX standard input stream. - -==back - -==head1 DESCRIPTION -B will enter the data from an B database into a -PostgreSQL database table, optionally creating the database and the -table if they do not exist. It automatically determines the -PostgreSQL data type from the column definition in the B file, -but may be overriden via a series of definition files or directly -via one of its parameters. - -The target database and table are specified by the C and C
      -parameters. If they do not exist, and the C parameter is -set, they will be created. Table field definitions are determined -in the following order: - diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/oneline_cmds.xr b/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/oneline_cmds.xr deleted file mode 100644 index f92efb5ecf5..00000000000 --- a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/oneline_cmds.xr +++ /dev/null @@ -1,26 +0,0 @@ -NAME - rdb2pg - insert an rdb table into a PostgreSQL database - -SYNOPSIS - rdb2pg [*param*=*value* ...] - -PARAMETERS - rdb2pg uses an IRAF-compatible parameter interface. A template parameter - file is in /proj/axaf/simul/lib/uparm/rdb2pg.par. - - input *file* - The RDB file to insert into the database. If the given name is the - string `stdin', it reads from the UNIX standard input stream. - -DESCRIPTION - rdb2pg will enter the data from an RDB database into a PostgreSQL - database table, optionally creating the database and the table if they - do not exist. It automatically determines the PostgreSQL data type from - the column definition in the RDB file, but may be overriden via a series - of definition files or directly via one of its parameters. - - The target database and table are specified by the `db' and `table' - parameters. If they do not exist, and the `createdb' parameter is set, - they will be created. Table field definitions are determined in the - following order: - diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/podselect.t b/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/podselect.t deleted file mode 100755 index 2d8e6b4f585..00000000000 --- a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/podselect.t +++ /dev/null @@ -1,18 +0,0 @@ -BEGIN { - use File::Basename; - my $THISDIR = dirname $0; - unshift @INC, $THISDIR; - require "testp2pt.pl"; - import TestPodIncPlainText; -} - -my %options = map { $_ => 1 } @ARGV; ## convert cmdline to options-hash -my $passed = testpodplaintext \%options, $0; -exit( ($passed == 1) ? 0 : -1 ) unless $ENV{HARNESS_ACTIVE}; - - -__END__ - -=include podselect.PL - - diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/podselect.xr b/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/podselect.xr deleted file mode 100644 index 00b977491cd..00000000000 --- a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/podselect.xr +++ /dev/null @@ -1,44 +0,0 @@ -###### begin =include podselect.PL ##### -NAME - podselect - print selected sections of pod documentation on standard - output - -SYNOPSIS - podselect [-help] [-man] [-section *section-spec*] [*file* ...] - -OPTIONS AND ARGUMENTS - -help Print a brief help message and exit. - - -man Print the manual page and exit. - - -section *section-spec* - Specify a section to include in the output. See the section on - "SECTION SPECIFICATIONS" in the Pod::Parser manpage for the - format to use for *section-spec*. This option may be given - multiple times on the command line. - - *file* The pathname of a file from which to select sections of pod - documentation (defaults to standard input). - -DESCRIPTION - podselect will read the given input files looking for pod documentation - and will print out (in raw pod format) all sections that match one ore - more of the given section specifications. If no section specifications - are given than all pod sections encountered are output. - - podselect invokes the podselect() function exported by Pod::Select - Please see the podselect() entry in the Pod::Select manpage for more - details. - -SEE ALSO - the Pod::Parser manpage and the Pod::Select manpage - -AUTHOR - Please report bugs using http://rt.cpan.org. - - Brad Appleton - - Based on code for Pod::Text::pod2text(1) written by Tom Christiansen - - -###### end =include podselect.PL ##### diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/selfcheck.t b/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/selfcheck.t deleted file mode 100644 index 17df68e301a..00000000000 --- a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/selfcheck.t +++ /dev/null @@ -1,53 +0,0 @@ -#!/usr/bin/perl -use Test::More; -use File::Basename; -use File::Spec; -use strict; -my $THISDIR; -BEGIN { - $THISDIR = dirname $0; - unshift @INC, $THISDIR; - eval { - require "testpchk.pl"; - import TestPodChecker qw(testpodcheck); - }; - warn $@ if $@; -}; - -my @pods; -unless($Pod::Checker::VERSION && $Pod::Checker::VERSION > 1.40) { - plan skip_all => "we do not have a good Pod::Checker around"; -} else { - my $path = File::Spec->catfile($THISDIR,(File::Spec->updir()) x 2, 'lib', 'Pod', '*.pm'); - print "THISDIR=$THISDIR PATH=$path\n"; - @pods = glob($path); - print "PODS=@pods\n"; - plan tests => scalar(@pods); -} - -# test that our POD is correct! -my $errs = 0; - -foreach my $pod (@pods) { - my $out = File::Spec->catfile($THISDIR, basename($pod)); - $out =~ s{\.pm}{.OUT}; - my %options = ( -Out => $out ); - my $failmsg = testpodcheck(-In => $pod, -Out => $out, -Cmp => "$THISDIR/empty.xr"); - if($failmsg) { - if(open(IN, "<$out")) { - while() { - warn "podchecker: $_"; - } - close(IN); - } else { - warn "Error: Cannot read output file $out: $!\n"; - } - ok(0, $pod); - $errs++; - } else { - ok(1, $pod); - } -} - -exit( ($errs == 0) ? 0 : -1 ) unless $ENV{HARNESS_ACTIVE}; - diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/special_seqs.t b/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/special_seqs.t deleted file mode 100755 index f1399ccf771..00000000000 --- a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/special_seqs.t +++ /dev/null @@ -1,46 +0,0 @@ -BEGIN { - use File::Basename; - my $THISDIR = dirname $0; - unshift @INC, $THISDIR; - require "testp2pt.pl"; - import TestPodIncPlainText; -} - -my %options = map { $_ => 1 } @ARGV; ## convert cmdline to options-hash -my $passed = testpodplaintext \%options, $0; -exit( ($passed == 1) ? 0 : -1 ) unless $ENV{HARNESS_ACTIVE}; - - -__END__ - - -=pod - -This is a test to see if I can do not only C<$self> and C, but -also C<< $self->method() >> and C<< $self->{FIELDNAME} >> and -C<< $Foo <=> $Bar >> without resorting to escape sequences. If -I want to refer to the right-shift operator I can do something -like C<<< $x >> 3 >>> or even C<<<< $y >> 5 >>>>. - -Now for the grand finale of C<< $self->method()->{FIELDNAME} = {FOO=>BAR} >>. -And I also want to make sure that newlines work like this -C<<< -$self->{FOOBAR} >> 3 and [$b => $a]->[$a <=> $b] ->>> - -Of course I should still be able to do all this I escape sequences -too: C<$self-Emethod()> and C<$self-E{FIELDNAME}> and C<{FOO=EBAR}>. - -Dont forget C<$self-Emethod()-E{FIELDNAME} = {FOO=EBAR}>. - -And make sure that C<0> works too! - -Now, if I use << or >> as my delimiters, then I have to use whitespace. -So things like C<<$self->method()>> and C<<$self->{FIELDNAME}>> wont end -up doing what you might expect since the first > will still terminate -the first < seen. - -Lets make sure these work for empty ones too, like C<< >> and C<< >> >> -(just to be obnoxious) - -=cut diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/special_seqs.xr b/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/special_seqs.xr deleted file mode 100644 index 4d6c55e5a18..00000000000 --- a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/special_seqs.xr +++ /dev/null @@ -1,25 +0,0 @@ - This is a test to see if I can do not only `$self' and `method()', but - also `$self->method()' and `$self->{FIELDNAME}' and `$Foo <=> $Bar' - without resorting to escape sequences. If I want to refer to the - right-shift operator I can do something like `$x >> 3' or even `$y >> - 5'. - - Now for the grand finale of `$self->method()->{FIELDNAME} = {FOO=>BAR}'. - And I also want to make sure that newlines work like this - `$self->{FOOBAR} >> 3 and [$b => $a]->[$a <=> $b]' - - Of course I should still be able to do all this *with* escape sequences - too: `$self->method()' and `$self->{FIELDNAME}' and `{FOO=>BAR}'. - - Dont forget `$self->method()->{FIELDNAME} = {FOO=>BAR}'. - - And make sure that `0' works too! - - Now, if I use << or >> as my delimiters, then I have to use whitespace. - So things like `<$self-'method()>> and `<$self-'{FIELDNAME}>> wont end - up doing what you might expect since the first > will still terminate - the first < seen. - - Lets make sure these work for empty ones too, like and `>>' (just to be - obnoxious) - diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/testcmp.pl b/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/testcmp.pl deleted file mode 100644 index b8592fcc2a8..00000000000 --- a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/testcmp.pl +++ /dev/null @@ -1,94 +0,0 @@ -package TestCompare; - -use vars qw(@ISA @EXPORT $MYPKG); -#use strict; -#use diagnostics; -use Carp; -use Exporter; -use File::Basename; -use File::Spec; -use FileHandle; - -@ISA = qw(Exporter); -@EXPORT = qw(&testcmp); -$MYPKG = eval { (caller)[0] }; - -##-------------------------------------------------------------------------- - -=head1 NAME - -testcmp -- compare two files line-by-line - -=head1 SYNOPSIS - - $is_diff = testcmp($file1, $file2); - -or - - $is_diff = testcmp({-cmplines => \&mycmp}, $file1, $file2); - -=head2 DESCRIPTION - -Compare two text files line-by-line and return 0 if they are the -same, 1 if they differ. Each of $file1 and $file2 may be a filenames, -or a filehandles (in which case it must already be open for reading). - -If the first argument is a hashref, then the B<-cmplines> key in the -hash may have a subroutine reference as its corresponding value. -The referenced user-defined subroutine should be a line-comparator -function that takes two pre-chomped text-lines as its arguments -(the first is from $file1 and the second is from $file2). It should -return 0 if it considers the two lines equivalent, and non-zero -otherwise. - -=cut - -##-------------------------------------------------------------------------- - -sub testcmp( $ $ ; $) { - my %opts = ref($_[0]) eq 'HASH' ? %{shift()} : (); - my ($file1, $file2) = @_; - my ($fh1, $fh2) = ($file1, $file2); - unless (ref $fh1) { - $fh1 = FileHandle->new($file1, "r") or die "Can't open $file1: $!"; - } - unless (ref $fh2) { - $fh2 = FileHandle->new($file2, "r") or die "Can't open $file2: $!"; - } - - my $cmplines = $opts{'-cmplines'} || undef; - my ($f1text, $f2text) = ("", ""); - my ($line, $diffs) = (0, 0); - - while ( defined($f1text) and defined($f2text) ) { - defined($f1text = <$fh1>) and chomp($f1text); - defined($f2text = <$fh2>) and chomp($f2text); - ++$line; - last unless ( defined($f1text) and defined($f2text) ); - # kill any extra line endings - $f1text =~ s/[\r\n]+$//s; - $f2text =~ s/[\r\n]+$//s; - $diffs = (ref $cmplines) ? &$cmplines($f1text, $f2text) - : ($f1text ne $f2text); - last if $diffs; - } - close($fh1) unless (ref $file1); - close($fh2) unless (ref $file2); - - $diffs = 1 if (defined($f1text) or defined($f2text)); - if ( defined($f1text) and defined($f2text) ) { - ## these two lines must be different - warn "$file1 and $file2 differ at line $line\n"; - } - elsif (defined($f1text) and (! defined($f1text))) { - ## file1 must be shorter - warn "$file1 is shorter than $file2\n"; - } - elsif (defined $f2text) { - ## file2 must be longer - warn "$file1 is shorter than $file2\n"; - } - return $diffs; -} - -1; diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/testp2pt.pl b/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/testp2pt.pl deleted file mode 100644 index 4ed58446876..00000000000 --- a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/testp2pt.pl +++ /dev/null @@ -1,192 +0,0 @@ -package TestPodIncPlainText; - -BEGIN { - use File::Basename; - use File::Spec; - use Cwd qw(abs_path); - push @INC, '..'; - my $THISDIR = abs_path(dirname $0); - unshift @INC, $THISDIR; - require "testcmp.pl"; - import TestCompare; - my $PARENTDIR = dirname $THISDIR; - push @INC, map { File::Spec->catfile($_, 'lib') } ($PARENTDIR, $THISDIR); -} - -#use strict; -#use diagnostics; -use Carp; -use Exporter; -#use File::Compare; -#use Cwd qw(abs_path); - -use vars qw($MYPKG @EXPORT @ISA); -$MYPKG = eval { (caller)[0] }; -@EXPORT = qw(&testpodplaintext); -BEGIN { - require Pod::PlainText; - @ISA = qw( Pod::PlainText ); - require VMS::Filespec if $^O eq 'VMS'; -} - -## Hardcode settings for TERMCAP and COLUMNS so we can try to get -## reproducible results between environments -@ENV{qw(TERMCAP COLUMNS)} = ('co=76:do=^J', 76); - -sub catfile(@) { File::Spec->catfile(@_); } - -my $INSTDIR = abs_path(dirname $0); -$INSTDIR = VMS::Filespec::unixpath($INSTDIR) if $^O eq 'VMS'; -$INSTDIR =~ s#/$## if $^O eq 'VMS'; -$INSTDIR =~ s#:$## if $^O eq 'MacOS'; -$INSTDIR = (dirname $INSTDIR) if (basename($INSTDIR) eq 'pod'); -$INSTDIR =~ s#:$## if $^O eq 'MacOS'; -$INSTDIR = (dirname $INSTDIR) if (basename($INSTDIR) eq 't'); -my @PODINCDIRS = ( catfile($INSTDIR, 'lib', 'Pod'), - catfile($INSTDIR, 'scripts'), - catfile($INSTDIR, 'pod'), - catfile($INSTDIR, 't', 'pod') - ); - -# FIXME - we should make the core capable of finding utilities built in -# locations in ext. -push @PODINCDIRS, catfile((File::Spec->updir()) x 2, 'pod') if $ENV{PERL_CORE}; - -## Find the path to the file to =include -sub findinclude { - my $self = shift; - my $incname = shift; - - ## See if its already found w/out any "searching; - return $incname if (-r $incname); - - ## Need to search for it. Look in the following directories ... - ## 1. the directory containing this pod file - my $thispoddir = dirname $self->input_file; - ## 2. the parent directory of the above - my $parentdir = dirname $thispoddir; - my @podincdirs = ($thispoddir, $parentdir, @PODINCDIRS); - - for (@podincdirs) { - my $incfile = catfile($_, $incname); - return $incfile if (-r $incfile); - } - warn("*** Can't find =include file $incname in @podincdirs\n"); - return ""; -} - -sub command { - my $self = shift; - my ($cmd, $text, $line_num, $pod_para) = @_; - $cmd = '' unless (defined $cmd); - local $_ = $text || ''; - my $out_fh = $self->output_handle; - - ## Defer to the superclass for everything except '=include' - return $self->SUPER::command(@_) unless ($cmd eq "include"); - - ## We have an '=include' command - my $incdebug = 1; ## debugging - my @incargs = split; - if (@incargs == 0) { - warn("*** No filename given for '=include'\n"); - return; - } - my $incfile = $self->findinclude(shift @incargs) or return; - my $incbase = basename $incfile; - print $out_fh "###### begin =include $incbase #####\n" if ($incdebug); - $self->parse_from_file( {-cutting => 1}, $incfile ); - print $out_fh "###### end =include $incbase #####\n" if ($incdebug); -} - -sub begin_input { - $_[0]->{_INFILE} = VMS::Filespec::unixify($_[0]->{_INFILE}) if $^O eq 'VMS'; -} - -sub podinc2plaintext( $ $ ) { - my ($infile, $outfile) = @_; - local $_; - my $text_parser = $MYPKG->new; - $text_parser->parse_from_file($infile, $outfile); -} - -sub testpodinc2plaintext( @ ) { - my %args = @_; - my $infile = $args{'-In'} || croak "No input file given!"; - my $outfile = $args{'-Out'} || croak "No output file given!"; - my $cmpfile = $args{'-Cmp'} || croak "No compare-result file given!"; - - my $different = ''; - my $testname = basename $cmpfile, '.t', '.xr'; - - unless (-e $cmpfile) { - my $msg = "*** Can't find comparison file $cmpfile for testing $infile"; - warn "$msg\n"; - return $msg; - } - - print "# Running testpodinc2plaintext for '$testname'...\n"; - ## Compare the output against the expected result - podinc2plaintext($infile, $outfile); - if ( testcmp($outfile, $cmpfile) ) { - $different = "$outfile is different from $cmpfile"; - } - else { - unlink($outfile); - } - return $different; -} - -sub testpodplaintext( @ ) { - my %opts = (ref $_[0] eq 'HASH') ? %{shift()} : (); - my @testpods = @_; - my ($testname, $testdir) = ("", ""); - my ($podfile , $cmpfile) = ("", ""); - my ($outfile , $errfile) = ("", ""); - my $passes = 0; - my $failed = 0; - local $_; - - print "1..", scalar @testpods, "\n" unless ($opts{'-xrgen'}); - - for $podfile (@testpods) { - ($testname, $_) = fileparse($podfile); - $testdir ||= $_; - $testname =~ s/\.t$//; - $cmpfile = $testdir . $testname . '.xr'; - $outfile = $testdir . $testname . '.OUT'; - - if ($opts{'-xrgen'}) { - if ($opts{'-force'} or ! -e $cmpfile) { - ## Create the comparison file - print "# Creating expected result for \"$testname\"" . - " pod2plaintext test ...\n"; - podinc2plaintext($podfile, $cmpfile); - } - else { - print "# File $cmpfile already exists" . - " (use '-force' to regenerate it).\n"; - } - next; - } - - my $failmsg = testpodinc2plaintext - -In => $podfile, - -Out => $outfile, - -Cmp => $cmpfile; - if ($failmsg) { - ++$failed; - print "#\tFAILED. ($failmsg)\n"; - print "not ok ", $failed+$passes, "\n"; - } - else { - ++$passes; - unlink($outfile); - print "#\tPASSED.\n"; - print "ok ", $failed+$passes, "\n"; - } - } - return $passes; -} - -1; diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/testpchk.pl b/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/testpchk.pl deleted file mode 100644 index 0464a9a0fcf..00000000000 --- a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/testpchk.pl +++ /dev/null @@ -1,130 +0,0 @@ -package TestPodChecker; - -BEGIN { - use File::Basename; - use File::Spec; - push @INC, '..'; - my $THISDIR = dirname $0; - unshift @INC, $THISDIR; - require "testcmp.pl"; - import TestCompare; - my $PARENTDIR = dirname $THISDIR; - push @INC, map { File::Spec->catfile($_, 'lib') } ($PARENTDIR, $THISDIR); - require VMS::Filespec if $^O eq 'VMS'; -} - -use Pod::Checker; -use vars qw(@ISA @EXPORT $MYPKG); -#use strict; -#use diagnostics; -use Carp; -use Exporter; -#use File::Compare; - -@ISA = qw(Exporter); -@EXPORT = qw(&testpodchecker); -@EXPORT_OK = qw(&testpodcheck); -$MYPKG = eval { (caller)[0] }; - -sub stripname( $ ) { - local $_ = shift; - return /(\w[.\w]*)\s*$/ ? $1 : $_; -} - -sub msgcmp( $ $ ) { - ## filter out platform-dependent aspects of error messages - my ($line1, $line2) = @_; - for ($line1, $line2) { - ## remove filenames from error messages to avoid any - ## filepath naming differences between OS platforms - s/(at line \S+ in file) .*\W(\w+\.[tT])\s*$/$1 \L$2\E/; - s/.*\W(\w+\.[tT]) (has \d+ pod syntax error)/\L$1\E $2/; - } - return ($line1 ne $line2); -} - -sub testpodcheck( @ ) { - my %args = @_; - my $infile = $args{'-In'} || croak "No input file given!"; - my $outfile = $args{'-Out'} || croak "No output file given!"; - my $cmpfile = $args{'-Cmp'} || croak "No compare-result file given!"; - - my $different = ''; - my $testname = basename $infile, '.t', '.xr'; - - unless (-e $cmpfile) { - my $msg = "*** Can't find comparison file $cmpfile for testing $infile"; - warn "$msg\n"; - return $msg; - } - - print "# Running podchecker for '$testname'...\n"; - ## Compare the output against the expected result - if ($^O eq 'VMS') { - for ($infile, $outfile, $cmpfile) { - $_ = VMS::Filespec::unixify($_) unless ref; - } - } - podchecker($infile, $outfile); - if ( testcmp({'-cmplines' => \&msgcmp}, $outfile, $cmpfile) ) { - $different = "$outfile is different from $cmpfile"; - } - else { - unlink($outfile); - } - return $different; -} - -sub testpodchecker( @ ) { - my %opts = (ref $_[0] eq 'HASH') ? %{shift()} : (); - my @testpods = @_; - my ($testname, $testdir) = ("", ""); - my ($podfile, $cmpfile) = ("", ""); - my ($outfile, $errfile) = ("", ""); - my $passes = 0; - my $failed = 0; - local $_; - - print "1..", scalar @testpods, "\n" unless ($opts{'-xrgen'}); - - for $podfile (@testpods) { - ($testname, $_) = fileparse($podfile); - $testdir ||= $_; - $testname =~ s/\.t$//; - $cmpfile = $testdir . $testname . '.xr'; - $outfile = $testdir . $testname . '.OUT'; - - if ($opts{'-xrgen'}) { - if ($opts{'-force'} or ! -e $cmpfile) { - ## Create the comparison file - print "# Creating expected result for \"$testname\"" . - " podchecker test ...\n"; - podchecker($podfile, $cmpfile); - } - else { - print "# File $cmpfile already exists" . - " (use '-force' to regenerate it).\n"; - } - next; - } - - my $failmsg = testpodcheck - -In => $podfile, - -Out => $outfile, - -Cmp => $cmpfile; - if ($failmsg) { - ++$failed; - print "#\tFAILED. ($failmsg)\n"; - print "not ok ", $failed+$passes, "\n"; - } - else { - ++$passes; - unlink($outfile); - print "#\tPASSED.\n"; - print "ok ", $failed+$passes, "\n"; - } - } - return $passes; -} - -1; diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/testpods/lib/Pod/Stuff.pm b/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/testpods/lib/Pod/Stuff.pm deleted file mode 100644 index 00a719c6560..00000000000 --- a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/testpods/lib/Pod/Stuff.pm +++ /dev/null @@ -1,20 +0,0 @@ -=head1 NAME - -Pod::Stuff - dummy testing pod - -=head1 DESCRIPTION - -This isn't really anything, its just some dummy pod code. -And stuff. - -Lots of stuff. - -=head2 STUFF - -For all your stuff [tm] - -Stuffit - -Mmmm, stuffed pizza bread. - -=cut diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/twice.t b/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/twice.t deleted file mode 100755 index ffb957dadda..00000000000 --- a/gnu/usr.bin/perl/cpan/Pod-Parser/t/pod/twice.t +++ /dev/null @@ -1,36 +0,0 @@ -use strict; -use Test; -use File::Spec; - -BEGIN { plan tests => 1 } - -use Pod::Parser; -use Carp; -$SIG{__DIE__} = \&Carp::confess; - -eval {require IO::String;}; -skip($@ ? 'no IO::String' : '', sub { - { - my $pod_string = 'some I text'; - my $handle = IO::String->new( \$pod_string ); - my $parser = Pod::Parser->new(); - $parser->parse_from_file( $0, $handle ); - } - # free the reference - { - my $parser = Pod::Parser->new(); - $parser->parse_from_file( $0, File::Spec->devnull ); - } - 1; -}); - -exit 0; - -__END__ - -=head1 EXAMPLE - -This test makes sure the parse_from_file is re-entrant - -=cut - diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/t/unbalanced.t b/gnu/usr.bin/perl/cpan/Pod-Parser/t/unbalanced.t deleted file mode 100644 index ad109952fed..00000000000 --- a/gnu/usr.bin/perl/cpan/Pod-Parser/t/unbalanced.t +++ /dev/null @@ -1,51 +0,0 @@ -#!/usr/bin/perl -use strict; -use warnings; - -use Pod::PlainText; -use Test::More; - -my $invalid = q{ -=head1 One - -=begin foo - -Foo -}; - -my $valid = q{ -=head1 Two - -=begin bar - -Bar - -=end bar - -=head1 Three -}; - - -my $parser = Pod::PlainText->new; - -my $out = ''; -open my $out_fh, '>', \$out or die "Couldn't open out: $!"; - -{ - open my $fh, '<', \$invalid or die "Couldn't open invalid: $!"; - $parser->parse_from_filehandle($fh, $out_fh); - close $fh; -} - -{ - open my $fh, '<', \$valid or die "Couldn't open valid: $!"; - $parser->parse_from_filehandle($fh, $out_fh); - close $fh; -} - -close $out_fh; - - -is $out, "One\nTwo\nThree\n", "Correctly parsed valid document"; - -done_testing; diff --git a/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc.pm b/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc.pm index 42ed4b49d54..bb6ffc83efb 100644 --- a/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc.pm +++ b/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc.pm @@ -486,8 +486,6 @@ sub init_formatter_class_list { $self->opt_M_with('Pod::Perldoc::ToPod'); # the always-there fallthru $self->opt_o_with('text'); - $self->opt_o_with('man') - if $ENV{TERM} && $ENV{TERM} !~ /dumb|emacs|none|unknown/i; return; } diff --git a/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToMan.pm b/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToMan.pm index d8e42b1703b..bfcb5c40ee6 100644 --- a/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToMan.pm +++ b/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToMan.pm @@ -144,9 +144,7 @@ sub _get_podman_switches { # # See RT #77465 # - # Then again, do *not* comment it out on OpenBSD: - # mandoc handles UTF-8 input just fine. - push @switches, 'utf8' => 1; + #push @switches, 'utf8' => 1; $self->debug( "Pod::Man switches are [@switches]\n" ); @@ -211,6 +209,12 @@ sub _have_groff_with_utf8 { $version ge $minimum_groff_version; } +sub _have_mandoc_with_utf8 { + my( $self ) = @_; + + $self->_is_mandoc and not system 'mandoc -Tlocale -V > /dev/null 2>&1'; + } + sub _collect_nroff_switches { my( $self ) = shift; @@ -223,10 +227,6 @@ sub _collect_nroff_switches { push @render_switches, '-rLL=' . (int $c) . 'n' if $cols > 80; } - if( $self->_is_mandoc ) { - push @render_switches, '-Owidth=' . $self->_get_columns; - } - # I hear persistent reports that adding a -c switch to $render # solves many people's problems. But I also hear that some mans # don't have a -c switch, so that unconditionally adding it here @@ -242,6 +242,7 @@ sub _get_device_switches { if( $self->_is_nroff ) { qw() } elsif( $self->_have_groff_with_utf8 ) { qw(-Kutf8 -Tutf8) } elsif( $self->_is_ebcdic ) { qw(-Tcp1047) } + elsif( $self->_have_mandoc_with_utf8 ) { qw(-Tlocale) } elsif( $self->_is_mandoc ) { qw() } else { qw(-Tlatin1) } } @@ -357,9 +358,6 @@ sub _filter_through_nroff { length $done ); - # wait for it to exit - waitpid( $pid, 0 ); - if( $? ) { $self->warn( "Error from pipe to $render!\n" ); $self->debug( 'Error: ' . do { local $/; <$err> } ); diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple.pm index 20924153b65..6c91b8ac1fb 100644 --- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple.pm +++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple.pm @@ -18,7 +18,7 @@ use vars qw( ); @ISA = ('Pod::Simple::BlackBox'); -$VERSION = '3.35'; +$VERSION = '3.40'; @Known_formatting_codes = qw(I B C L E F S X Z); %Known_formatting_codes = map(($_=>1), @Known_formatting_codes); @@ -74,6 +74,9 @@ else { # EBCDIC on early Perl. We know what the values are for the code #@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ __PACKAGE__->_accessorize( + '_output_is_for_JustPod', # For use only by Pod::Simple::JustPod, + # If non-zero, don't expand Z<> E<> S<> L<>, + # and count how many brackets in format codes 'nbsp_for_S', # Whether to map S<...>'s to \xA0 characters 'source_filename', # Filename of the source, for use in warnings 'source_dead', # Whether to consider this parser's source dead @@ -103,6 +106,8 @@ __PACKAGE__->_accessorize( 'preserve_whitespace', # whether to try to keep whitespace as-is 'strip_verbatim_indent', # What indent to strip from verbatim + 'expand_verbatim_tabs', # 0: preserve tabs in verbatim blocks + # n: expand tabs to stops every n columns 'parse_characters', # Whether parser should expect chars rather than octets @@ -168,6 +173,7 @@ sub encoding { BEGIN { *pretty = \&Pod::Simple::BlackBox::pretty; *stringify_lol = \&Pod::Simple::BlackBox::stringify_lol; + *my_qr = \&Pod::Simple::BlackBox::my_qr; } #@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@ -219,11 +225,14 @@ sub new { my $class = ref($_[0]) || $_[0]; #Carp::croak(__PACKAGE__ . " is a virtual base class -- see perldoc " # . __PACKAGE__ ); - return bless { + my $obj = bless { 'accept_codes' => { map( ($_=>$_), @Known_formatting_codes ) }, 'accept_directives' => { %Known_directives }, 'accept_targets' => {}, }, $class; + + $obj->expand_verbatim_tabs(8); + return $obj; } @@ -339,10 +348,9 @@ sub unaccept_targets { # XXX Probably it is an error that the digit '9' is excluded from these re's. # Broken for early Perls on EBCDIC -my $xml_name_re = eval "qr/[^-.0-8:A-Z_a-z[:^ascii:]]/"; -if (! defined $xml_name_re) { - $xml_name_re = qr/[\x00-\x2C\x2F\x39\x3B-\x40\x5B-\x5E\x60\x7B-\x7F]/; -} +my $xml_name_re = my_qr('[^-.0-8:A-Z_a-z[:^ascii:]]', '9'); +$xml_name_re = qr/[\x00-\x2C\x2F\x39\x3B-\x40\x5B-\x5E\x60\x7B-\x7F]/ + unless $xml_name_re; sub accept_code { shift->accept_codes(@_) } # alias @@ -652,12 +660,13 @@ sub _make_treelet { $treelet = $self->_treelet_from_formatting_codes(@_); } - if( $self->_remap_sequences($treelet) ) { + if( ! $self->{'_output_is_for_JustPod'} # Retain these as-is for pod output + && $self->_remap_sequences($treelet) ) + { $self->_treat_Zs($treelet); # Might as well nix these first $self->_treat_Ls($treelet); # L has to precede E and S $self->_treat_Es($treelet); $self->_treat_Ss($treelet); # S has to come after E - $self->_wrap_up($treelet); # Nix X's and merge texties } else { @@ -1080,9 +1089,14 @@ sub _treat_Ls { # Process our dear dear friends, the L<...> sequences # By here, $treelet->[$i] is definitely an L node my $ell = $treelet->[$i]; - DEBUG > 1 and print STDERR "Ogling L node $ell\n"; + DEBUG > 1 and print STDERR "Ogling L node " . pretty($ell) . "\n"; - # bitch if it's empty + # bitch if it's empty or is just '/' + if (@{$ell} == 3 and $ell->[2] =~ m!\A\s*/\s*\z!) { + $self->whine( $start_line, "L<> contains only '/'" ); + $treelet->[$i] = 'L'; # just make it a text node + next; # and move on + } if( @{$ell} == 2 or (@{$ell} == 3 and $ell->[2] eq '') ) { @@ -1289,6 +1303,7 @@ sub _treat_Ls { # Process our dear dear friends, the L<...> sequences $section_name = [splice @ell_content]; $section_name->[ 0] =~ s/^\"//s; $section_name->[-1] =~ s/\"$//s; + $ell->[1]{'~tolerated'} = 1; } # Turn L into L. @@ -1296,8 +1311,8 @@ sub _treat_Ls { # Process our dear dear friends, the L<...> sequences and grep !ref($_) && m/ /s, @ell_content ) { $section_name = [splice @ell_content]; + $ell->[1]{'~deprecated'} = 1; # That's support for the now-deprecated syntax. - # (Maybe generate a warning eventually?) # Note that it deliberately won't work on L<...|Foo Bar> } @@ -1347,7 +1362,7 @@ sub _treat_Ls { # Process our dear dear friends, the L<...> sequences # And update children to be the link-text: @$ell = (@$ell[0,1], defined($link_text) ? splice(@$link_text) : ''); - DEBUG > 2 and print STDERR "End of L-parsing for this node $treelet->[$i]\n"; + DEBUG > 2 and print STDERR "End of L-parsing for this node " . pretty($treelet->[$i]) . "\n"; unshift @stack, $treelet->[$i]; # might as well recurse } @@ -1507,6 +1522,7 @@ sub _accessorize { # A simple-minded method-maker $Carp::CarpLevel = 1, Carp::croak( "Accessor usage: \$obj->$attrname() or \$obj->$attrname(\$new_value)" ) unless (@_ == 1 or @_ == 2) and ref $_[0]; + (@_ == 1) ? $_[0]->{$attrname} : ($_[0]->{$attrname} = $_[1]); }; diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple.pod b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple.pod index 67a18df0d64..c569e979ae9 100644 --- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple.pod +++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple.pod @@ -19,7 +19,11 @@ Be sure to read L if your Pod contains non-ASCII characters. Pod formatters can use Pod::Simple to parse Pod documents and render them into plain text, HTML, or any number of other formats. Typically, such formatters will be subclasses of Pod::Simple, and so they will inherit its methods, like -C. +C. But note that Pod::Simple doesn't understand and +properly parse Perl itself, so if you have a file which contains a Perl +program that has a multi-line quoted string which has lines that look +like pod, Pod::Simple will treat them as pod. This can be avoided if +the file makes these into indented here documents instead. If you're reading this document just because you have a Pod-processing subclass that you want to use, this document (plus the documentation for the @@ -219,6 +223,21 @@ that you don't want I lines indented. You can do something like this: return undef; }); +=item C<< $parser->expand_verbatim_tabs( I ) >> + +Default: 8 + +If after any stripping of indentation in verbatim blocks, there remain +tabs, this method call indicates what to do with them. C<0> +means leave them as tabs, any other number indicates that each tab is to +be translated so as to have tab stops every C columns. + +This is independent of other methods (except that it operates after any +verbatim input stripping is done). + +Like the other methods, the input parameter is not checked for validity. +C or containing non-digits has the same effect as 8. + =back =head1 TERTIARY METHODS @@ -390,8 +409,8 @@ This module is managed in an open GitHub repository, L. Feel free to fork and contribute, or to clone L and send patches! -Patches against Pod::Simple are welcome. Please send bug reports to -. +Please use L to file a bug +report. =head1 COPYRIGHT AND DISCLAIMERS @@ -419,6 +438,8 @@ Pod::Simple is maintained by: =item * David E. Wheeler C +=item * Karl Williamson C + =back Documentation has been contributed by: diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/BlackBox.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/BlackBox.pm index 9fe3f702ef9..d115aee7e3e 100644 --- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/BlackBox.pm +++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/BlackBox.pm @@ -22,8 +22,36 @@ use integer; # vroom! use strict; use Carp (); use vars qw($VERSION ); -$VERSION = '3.35'; +$VERSION = '3.40'; #use constant DEBUG => 7; + +sub my_qr ($$) { + + # $1 is a pattern to compile and return. Older perls compile any + # syntactically valid property, even if it isn't legal. To cope with + # this, return an empty string unless the compiled pattern also + # successfully matches $2, which the caller furnishes. + + my ($input_re, $should_match) = @_; + # XXX could have a third parameter $shouldnt_match for extra safety + + my $use_utf8 = ($] le 5.006002) ? 'use utf8;' : ""; + + my $re = eval "no warnings; $use_utf8 qr/$input_re/"; + #print STDERR __LINE__, ": $input_re: $@\n" if $@; + return "" if $@; + + my $matches = eval "no warnings; $use_utf8 '$should_match' =~ /$re/"; + #print STDERR __LINE__, ": $input_re: $@\n" if $@; + return "" if $@; + + #print STDERR __LINE__, ": SUCCESS: $re\n" if $matches; + return $re if $matches; + + #print STDERR __LINE__, ": $re: didn't match\n"; + return ""; +} + BEGIN { require Pod::Simple; *DEBUG = \&Pod::Simple::DEBUG unless defined &DEBUG @@ -32,8 +60,37 @@ BEGIN { # Matches a character iff the character will have a different meaning # if we choose CP1252 vs UTF-8 if there is no =encoding line. # This is broken for early Perls on non-ASCII platforms. -my $non_ascii_re = eval "qr/[[:^ascii:]]/"; -$non_ascii_re = qr/[\x80-\xFF]/ if ! defined $non_ascii_re; +my $non_ascii_re = my_qr('[[:^ascii:]]', "\xB6"); +$non_ascii_re = qr/[\x80-\xFF]/ unless $non_ascii_re; + +# Use patterns understandable by Perl 5.6, if possible +my $cs_re = my_qr('\p{IsCs}', "\x{D800}"); +my $cn_re = my_qr('\p{IsCn}', "\x{09E4}"); # code point unlikely + # to get assigned +my $rare_blocks_re = my_qr('[\p{InIPAExtensions}\p{InSpacingModifierLetters}]', + "\x{250}"); +$rare_blocks_re = my_qr('[\x{0250}-\x{02FF}]', "\x{250}") unless $rare_blocks_re; + +my $script_run_re = eval 'no warnings "experimental::script_run"; + qr/(*script_run: ^ .* $ )/x'; +my $latin_re = my_qr('[\p{IsLatin}\p{IsInherited}\p{IsCommon}]', "\x{100}"); +unless ($latin_re) { + # This was machine generated to be the ranges of the union of the above + # three properties, with things that were undefined by Unicode 4.1 filling + # gaps. That is the version in use when Perl advanced enough to + # successfully compile and execute the above pattern. + $latin_re = my_qr('[\x00-\x{02E9}\x{02EC}-\x{0374}\x{037E}\x{0385}\x{0387}\x{0485}\x{0486}\x{0589}\x{060C}\x{061B}\x{061F}\x{0640}\x{064B}-\x{0655}\x{0670}\x{06DD}\x{0951}-\x{0954}\x{0964}\x{0965}\x{0E3F}\x{10FB}\x{16EB}-\x{16ED}\x{1735}\x{1736}\x{1802}\x{1803}\x{1805}\x{1D00}-\x{1D25}\x{1D2C}-\x{1D5C}\x{1D62}-\x{1D65}\x{1D6B}-\x{1D77}\x{1D79}-\x{1DBE}\x{1DC0}-\x{1EF9}\x{2000}-\x{2125}\x{2127}-\x{27FF}\x{2900}-\x{2B13}\x{2E00}-\x{2E1D}\x{2FF0}-\x{3004}\x{3006}\x{3008}-\x{3020}\x{302A}-\x{302D}\x{3030}-\x{3037}\x{303C}-\x{303F}\x{3099}-\x{309C}\x{30A0}\x{30FB}\x{30FC}\x{3190}-\x{319F}\x{31C0}-\x{31CF}\x{3220}-\x{325F}\x{327F}-\x{32CF}\x{3358}-\x{33FF}\x{4DC0}-\x{4DFF}\x{A700}-\x{A716}\x{FB00}-\x{FB06}\x{FD3E}\x{FD3F}\x{FE00}-\x{FE6B}\x{FEFF}-\x{FF65}\x{FF70}\x{FF9E}\x{FF9F}\x{FFE0}-\x{FFFD}\x{10100}-\x{1013F}\x{1D000}-\x{1D1DD}\x{1D300}-\x{1D7FF}]', "\x{100}"); +} + +my $every_char_is_latin_re = my_qr("^(?:$latin_re)*\\z", "A"); + +# Latin script code points not in the first release of Unicode +my $later_latin_re = my_qr('[^\P{IsLatin}\p{IsAge=1.1}]', "\x{1F6}"); + +# If this perl doesn't have the Deprecated property, there's only one code +# point in it that we need be concerned with. +my $deprecated_re = my_qr('\p{IsDeprecated}', "\x{149}"); +$deprecated_re = qr/\x{149}/ unless $deprecated_re; my $utf8_bom; if (($] ge 5.007_003)) { @@ -43,6 +100,11 @@ if (($] ge 5.007_003)) { $utf8_bom = "\xEF\xBB\xBF"; # No EBCDIC BOM detection for early Perls. } +# This is used so that the 'content_seen' method doesn't return true on a +# file that just happens to have a line that matches /^=[a-zA-z]/. Only if +# there is a valid =foo line will we return that content was seen. +my $seen_legal_directive = 0; + #@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ sub parse_line { shift->parse_lines(@_) } # alias @@ -57,10 +119,10 @@ sub parse_lines { # Usage: $parser->parse_lines(@lines) my $cut_handler = $self->{'cut_handler'}; my $wl_handler = $self->{'whiteline_handler'}; $self->{'line_count'} ||= 0; - + my $scratch; - DEBUG > 4 and + DEBUG > 4 and print STDERR "# Parsing starting at line ", $self->{'line_count'}, ".\n"; DEBUG > 5 and @@ -71,9 +133,17 @@ sub parse_lines { # Usage: $parser->parse_lines(@lines) # paragraph buffer. Because we need to defer processing of =over # directives and verbatim paragraphs. We call _ponder_paragraph_buffer # to process this. - + $self->{'pod_para_count'} ||= 0; + # An attempt to match the pod portions of a line. This is not fool proof, + # but is good enough to serve as part of the heuristic for guessing the pod + # encoding if not specified. + my $format_codes = join "", '[', grep { / ^ [A-Za-z] $/x } + keys %{$self->{accept_codes}}; + $format_codes .= ']'; + my $pod_chars_re = qr/ ^ = [A-Za-z]+ | $format_codes < /x; + my $line; foreach my $source_line (@_) { if( $self->{'source_dead'} ) { @@ -97,7 +167,7 @@ sub parse_lines { # Usage: $parser->parse_lines(@lines) ($line = $source_line) =~ tr/\n\r//d; # If we don't have two vars, we'll end up with that there # tr/// modding the (potentially read-only) original source line! - + } else { DEBUG > 2 and print STDERR "First line: [$source_line]\n"; @@ -106,7 +176,7 @@ sub parse_lines { # Usage: $parser->parse_lines(@lines) $self->_handle_encoding_line( "=encoding utf8" ); delete $self->{'_processed_encoding'}; $line =~ tr/\n\r//d; - + } elsif( $line =~ s/^\xFE\xFF//s ) { DEBUG and print STDERR "Big-endian UTF-16 BOM seen. Aborting parsing.\n"; $self->scream( @@ -130,7 +200,7 @@ sub parse_lines { # Usage: $parser->parse_lines(@lines) next; # TODO: implement somehow? - + } else { DEBUG > 2 and print STDERR "First line is BOM-less.\n"; ($line = $source_line) =~ tr/\n\r//d; @@ -144,8 +214,8 @@ sub parse_lines { # Usage: $parser->parse_lines(@lines) my $encoding; - # No =encoding line, and we are at the first line in the input that - # contains a non-ascii byte, that is one whose meaning varies depending + # No =encoding line, and we are at the first pod line in the input that + # contains a non-ascii byte, that is, one whose meaning varies depending # on whether the file is encoded in UTF-8 or CP1252, which are the two # possibilities permitted by the pod spec. (ASCII is assumed if the # file only contains ASCII bytes.) In order to process this line, we @@ -162,22 +232,28 @@ sub parse_lines { # Usage: $parser->parse_lines(@lines) # without conflict. CP 1252 uses most of them for graphic characters. # # Note that all ASCII-range bytes represent their corresponding code - # points in CP1252 and UTF-8. In ASCII platform UTF-8 all other code - # points require multiple (non-ASCII) bytes to represent. (A separate - # paragraph for EBCDIC is below.) The multi-byte representation is - # quite structured. If we find an isolated byte that requires multiple - # bytes to represent in UTF-8, we know that the encoding is not UTF-8. - # If we find a sequence of bytes that violates the UTF-8 structure, we - # also can presume the encoding isn't UTF-8, and hence must be 1252. + # points in both CP1252 and UTF-8. In ASCII platform UTF-8, all other + # code points require multiple (non-ASCII) bytes to represent. (A + # separate paragraph for EBCDIC is below.) The multi-byte + # representation is quite structured. If we find an isolated byte that + # would require multiple bytes to represent in UTF-8, we know that the + # encoding is not UTF-8. If we find a sequence of bytes that violates + # the UTF-8 structure, we also can presume the encoding isn't UTF-8, and + # hence must be 1252. # # But there are ambiguous cases where we could guess wrong. If so, the # user will end up having to supply an =encoding line. We use all # readily available information to improve our chances of guessing # right. The odds of something not being UTF-8, but still passing a # UTF-8 validity test go down very rapidly with increasing length of the - # sequence. Therefore we look at all the maximal length non-ascii - # sequences on the line. If any of the sequences can't be UTF-8, we - # quit there and choose CP1252. If all could be UTF-8, we guess UTF-8. + # sequence. Therefore we look at all non-ascii sequences on the line. + # If any of the sequences can't be UTF-8, we quit there and choose + # CP1252. If all could be UTF-8, we see if any of the code points + # represented are unlikely to be in pod. If so, we guess CP1252. If + # not, we check if the line is all in the same script; if not guess + # CP1252; otherwise UTF-8. For perls that don't have convenient script + # run testing, see if there is both Latin and non-Latin. If so, CP1252, + # otherwise UTF-8. # # On EBCDIC platforms, the situation is somewhat different. In # UTF-EBCDIC, not only do ASCII-range bytes represent their code points, @@ -188,51 +264,188 @@ sub parse_lines { # Usage: $parser->parse_lines(@lines) # very unlikely to be in pod text. So if we encounter one of them, it # means that it is quite likely CP1252 and not UTF-8. The net result is # the same code below is used for both platforms. - while ($line =~ m/($non_ascii_re+)/g) { - my $non_ascii_seq = $1; - - if (length $non_ascii_seq == 1) { - $encoding = 'CP1252'; - goto guessed; - } elsif ($] ge 5.007_003) { - - # On Perls that have this function, we can see if the sequence is - # valid UTF-8 or not. - my $is_utf8; - { - no warnings 'utf8'; - $is_utf8 = utf8::decode($non_ascii_seq); + # + # XXX probably if the line has E that evaluates to illegal CP1252, + # then it is UTF-8. But we haven't processed E<> yet. + + goto set_1252 if $] lt 5.006_000; # No UTF-8 on very early perls + + my $copy; + + no warnings 'utf8'; + + if ($] ge 5.007_003) { + $copy = $line; + + # On perls that have this function, we can use it to easily see if the + # sequence is valid UTF-8 or not; if valid it turns on the UTF-8 flag + # needed below for script run detection + goto set_1252 if ! utf8::decode($copy); + } + elsif (ord("A") != 65) { # Early EBCDIC, assume UTF-8. What's a windows + # code page doing here anyway? + goto set_utf8; + } + else { # ASCII, no decode(): do it ourselves using the fundamental + # characteristics of UTF-8 + use if $] le 5.006002, 'utf8'; + + my $char_ord; + my $needed; # How many continuation bytes to gobble up + + # Initialize the translated line with a dummy character that will be + # deleted after everything else is done. This dummy makes sure that + # $copy will be in UTF-8. Doing it now avoids the bugs in early perls + # with upgrading in the middle + $copy = chr(0x100); + + # Parse through the line + for (my $i = 0; $i < length $line; $i++) { + my $byte = substr($line, $i, 1); + + # ASCII bytes are trivially dealt with + if ($byte !~ $non_ascii_re) { + $copy .= $byte; + next; + } + + my $b_ord = ord $byte; + + # Now figure out what this code point would be if the input is + # actually in UTF-8. If, in the process, we discover that it isn't + # well-formed UTF-8, we guess CP1252. + # + # Start the process. If it is UTF-8, we are at the first, start + # byte, of a multi-byte sequence. We look at this byte to figure + # out how many continuation bytes are needed, and to initialize the + # code point accumulator with the data from this byte. + # + # Normally the minimum continuation byte is 0x80, but in certain + # instances the minimum is a higher number. So the code below + # overrides this for those instances. + my $min_cont = 0x80; + + if ($b_ord < 0xC2) { # A start byte < C2 is malformed + goto set_1252; + } + elsif ($b_ord <= 0xDF) { + $needed = 1; + $char_ord = $b_ord & 0x1F; } - if (! $is_utf8) { - $encoding = 'CP1252'; - goto guessed; + elsif ($b_ord <= 0xEF) { + $min_cont = 0xA0 if $b_ord == 0xE0; + $needed = 2; + $char_ord = $b_ord & (0x1F >> 1); } - } elsif (ord("A") == 65) { # An early Perl, ASCII platform - - # Without utf8::decode, it's a lot harder to do a rigorous check - # (though some early releases had a different function that - # accomplished the same thing). Since these are ancient Perls, not - # likely to be in use today, we take the easy way out, and look at - # just the first two bytes of the sequence to see if they are the - # start of a UTF-8 character. In ASCII UTF-8, continuation bytes - # must be between 0x80 and 0xBF. Start bytes can range from 0xC2 - # through 0xFF, but anything above 0xF4 is not Unicode, and hence - # extremely unlikely to be in a pod. - if ($non_ascii_seq !~ /^[\xC2-\xF4][\x80-\xBF]/) { - $encoding = 'CP1252'; - goto guessed; + elsif ($b_ord <= 0xF4) { + $min_cont = 0x90 if $b_ord == 0xF0; + $needed = 3; + $char_ord = $b_ord & (0x1F >> 2); + } + else { # F4 is the highest start byte for legal Unicode; higher is + # unlikely to be in pod. + goto set_1252; } - # We don't bother doing anything special for EBCDIC on early Perls. - # If there is a solitary variant, CP1252 will be chosen; otherwise - # UTF-8. - } - } # End of loop through all variant sequences on the line + # ? not enough continuation bytes available + goto set_1252 if $i + $needed >= length $line; + + # Accumulate the ordinal of the character from the remaining + # (continuation) bytes. + while ($needed-- > 0) { + my $cont = substr($line, ++$i, 1); + $b_ord = ord $cont; + goto set_1252 if $b_ord < $min_cont || $b_ord > 0xBF; + + # In all cases, any next continuation bytes all have the same + # minimum legal value + $min_cont = 0x80; + + # Accumulate this byte's contribution to the code point + $char_ord <<= 6; + $char_ord |= ($b_ord & 0x3F); + } + + # Here, the sequence that formed this code point was valid UTF-8, + # so add the completed character to the output + $copy .= chr $char_ord; + } # End of loop through line + + # Delete the dummy first character + $copy = substr($copy, 1); + } + + # Here, $copy is legal UTF-8. + + # If it can't be legal CP1252, no need to look further. (These bytes + # aren't valid in CP1252.) This test could have been placed higher in + # the code, but it seemed wrong to set the encoding to UTF-8 without + # making sure that the very first instance is well-formed. But what if + # it isn't legal CP1252 either? We have to choose one or the other, and + # It seems safer to favor the single-byte encoding over the multi-byte. + goto set_utf8 if ord("A") == 65 && $line =~ /[\x81\x8D\x8F\x90\x9D]/; + + # The C1 controls are not likely to appear in pod + goto set_1252 if ord("A") == 65 && $copy =~ /[\x80-\x9F]/; + + # Nor are surrogates nor unassigned, nor deprecated. + DEBUG > 8 and print STDERR __LINE__, ": $copy: surrogate\n" if $copy =~ $cs_re; + goto set_1252 if $cs_re && $copy =~ $cs_re; + DEBUG > 8 and print STDERR __LINE__, ": $copy: unassigned\n" if $cn_re && $copy =~ $cn_re; + goto set_1252 if $cn_re && $copy =~ $cn_re; + DEBUG > 8 and print STDERR __LINE__, ": $copy: deprecated\n" if $copy =~ $deprecated_re; + goto set_1252 if $copy =~ $deprecated_re; + + # Nor are rare code points. But this is hard to determine. khw + # believes that IPA characters and the modifier letters are unlikely to + # be in pod (and certainly very unlikely to be the in the first line in + # the pod containing non-ASCII) + DEBUG > 8 and print STDERR __LINE__, ": $copy: rare\n" if $copy =~ $rare_blocks_re; + goto set_1252 if $rare_blocks_re && $copy =~ $rare_blocks_re; + + # The first Unicode version included essentially every Latin character + # in modern usage. So, a Latin character not in the first release will + # unlikely be in pod. + DEBUG > 8 and print STDERR __LINE__, ": $copy: later_latin\n" if $later_latin_re && $copy =~ $later_latin_re; + goto set_1252 if $later_latin_re && $copy =~ $later_latin_re; + + # On perls that handle script runs, if the UTF-8 interpretation yields + # a single script, we guess UTF-8, otherwise just having a mixture of + # scripts is suspicious, so guess CP1252. We first strip off, as best + # we can, the ASCII characters that look like they are pod directives, + # as these would always show as mixed with non-Latin text. + $copy =~ s/$pod_chars_re//g; + + if ($script_run_re) { + goto set_utf8 if $copy =~ $script_run_re; + DEBUG > 8 and print STDERR __LINE__, ": not script run\n"; + goto set_1252; + } + + # Even without script runs, but on recent enough perls and Unicodes, we + # can check if there is a mixture of both Latin and non-Latin. Again, + # having a mixture of scripts is suspicious, so assume CP1252 + + # If it's all non-Latin, there is no CP1252, as that is Latin + # characters and punct, etc. + DEBUG > 8 and print STDERR __LINE__, ": $copy: not latin\n" if $copy !~ $latin_re; + goto set_utf8 if $copy !~ $latin_re; + + DEBUG > 8 and print STDERR __LINE__, ": $copy: all latin\n" if $copy =~ $every_char_is_latin_re; + goto set_utf8 if $copy =~ $every_char_is_latin_re; + + DEBUG > 8 and print STDERR __LINE__, ": $copy: mixed\n"; + + set_1252: + DEBUG > 9 and print STDERR __LINE__, ": $copy: is 1252\n"; + $encoding = 'CP1252'; + goto done_set; - # All sequences in the line could be UTF-8. Guess that. + set_utf8: + DEBUG > 9 and print STDERR __LINE__, ": $copy: is UTF-8\n"; $encoding = 'UTF-8'; - guessed: + done_set: $self->_handle_encoding_line( "=encoding $encoding" ); delete $self->{'_processed_encoding'}; $self->{'_transcoder'} && $self->{'_transcoder'}->($line); @@ -254,13 +467,13 @@ sub parse_lines { # Usage: $parser->parse_lines(@lines) $self->{'line_count'}, "=cut found outside a pod block. Skipping to next block." ); - + ## Before there were errata sections in the world, it was ## least-pessimal to abort processing the file. But now we can ## just barrel on thru (but still not start a pod block). #splice @_; #push @_, undef; - + next; } else { $self->{'in_pod'} = $self->{'start_of_pod_block'} @@ -273,7 +486,7 @@ sub parse_lines { # Usage: $parser->parse_lines(@lines) if $code_handler; # Note: this may cause code to be processed out of order relative # to pods, but in order relative to cuts. - + # Note also that we haven't yet applied the transcoding to $line # by time we call $code_handler! @@ -284,11 +497,11 @@ sub parse_lines { # Usage: $parser->parse_lines(@lines) DEBUG > 1 and print STDERR "# Setting nextline to $1\n"; $self->{'line_count'} = $1 - 1; } - + next; } } - + # . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . # Else we're in pod mode: @@ -308,12 +521,13 @@ sub parse_lines { # Usage: $parser->parse_lines(@lines) # ++$self->{'pod_para_count'}; $self->_ponder_paragraph_buffer(); # by now it's safe to consider the previous paragraph as done. + DEBUG > 6 and print STDERR "Processing any cut handler, line ${$self}{'line_count'}\n"; $cut_handler->(map $_, $line, $self->{'line_count'}, $self) if $cut_handler; # TODO: add to docs: Note: this may cause cuts to be processed out # of order relative to pods, but in order relative to code. - + } elsif($line =~ m/^(\s*)$/s) { # it's a blank line if (defined $1 and $1 =~ /[^\S\r\n]/) { # it's a white line $wl_handler->(map $_, $line, $self->{'line_count'}, $self) @@ -324,29 +538,30 @@ sub parse_lines { # Usage: $parser->parse_lines(@lines) DEBUG > 1 and print STDERR "Saving blank line at line ${$self}{'line_count'}\n"; push @{$paras->[-1]}, $line; } # otherwise it's not interesting - + if(!$self->{'start_of_pod_block'} and !$self->{'last_was_blank'}) { DEBUG > 1 and print STDERR "Noting para ends with blank line at ${$self}{'line_count'}\n"; } - + $self->{'last_was_blank'} = 1; - + } elsif($self->{'last_was_blank'}) { # A non-blank line starting a new para... - - if($line =~ m/^(=[a-zA-Z][a-zA-Z0-9]*)(?:\s+|$)(.*)/s) { + + if($line =~ m/^(=[a-zA-Z][a-zA-Z0-9]*)(\s+|$)(.*)/s) { # THIS IS THE ONE PLACE WHERE WE CONSTRUCT NEW DIRECTIVE OBJECTS - my $new = [$1, {'start_line' => $self->{'line_count'}}, $2]; + my $new = [$1, {'start_line' => $self->{'line_count'}}, $3]; + $new->[1]{'~orig_spacer'} = $2 if $2 && $2 ne " "; # Note that in "=head1 foo", the WS is lost. # Example: ['=head1', {'start_line' => 123}, ' foo'] - + ++$self->{'pod_para_count'}; - + $self->_ponder_paragraph_buffer(); # by now it's safe to consider the previous paragraph as done. - + push @$paras, $new; # the new incipient paragraph DEBUG > 1 and print STDERR "Starting new ${$paras}[-1][0] para at line ${$self}{'line_count'}\n"; - + } elsif($line =~ m/^\s/s) { if(!$self->{'start_of_pod_block'} and @$paras and $paras->[-1][0] eq '~Verbatim') { @@ -379,7 +594,7 @@ sub parse_lines { # Usage: $parser->parse_lines(@lines) } $self->{'last_was_blank'} = $self->{'start_of_pod_block'} = 0; } - + } # ends the big while loop DEBUG > 1 and print STDERR (pretty(@$paras), "\n"); @@ -390,7 +605,7 @@ sub parse_lines { # Usage: $parser->parse_lines(@lines) sub _handle_encoding_line { my($self, $line) = @_; - + return if $self->parse_characters; # The point of this routine is to set $self->{'_transcoder'} as indicated. @@ -492,7 +707,7 @@ sub _handle_encoding_line { sub _handle_encoding_second_level { # By time this is called, the encoding (if well formed) will already - # have been acted one. + # have been acted on. my($self, $para) = @_; my @x = @$para; my $content = join ' ', splice @x, 2; @@ -500,7 +715,7 @@ sub _handle_encoding_second_level { $content =~ s/\s+$//s; DEBUG > 2 and print STDERR "Ogling encoding directive: =encoding $content\n"; - + if (defined($self->{'_processed_encoding'})) { #if($content ne $self->{'_processed_encoding'}) { # Could it happen? @@ -518,14 +733,14 @@ sub _handle_encoding_second_level { } else { DEBUG > 2 and print STDERR " (Yup, it was successfully handled already.)\n"; } - + } else { # Otherwise it's a syntax error $self->whine( $para->[1]{'start_line'}, "Invalid =encoding syntax: $content" ); } - + return; } @@ -542,7 +757,7 @@ sub _gen_errata { return() unless $self->{'errata'} and keys %{$self->{'errata'}}; my @out; - + foreach my $line (sort {$a <=> $b} keys %{$self->{'errata'}}) { push @out, ['=item', {'start_line' => $m}, "Around line $line:"], @@ -555,7 +770,7 @@ sub _gen_errata { ) ; } - + # TODO: report of unknown entities? unrenderable characters? unshift @out, @@ -569,7 +784,7 @@ sub _gen_errata { ['=over', {'start_line' => $m, 'errata' => 1}, ''], ; - push @out, + push @out, ['=back', {'start_line' => $m, 'errata' => 1}, ''], ; @@ -610,7 +825,7 @@ sub _ponder_paragraph_buffer { # Document, # Data, Para, Verbatim # B, C, longdirname (TODO -- wha?), etc. for all directives - # + # my $self = $_[0]; my $paras; @@ -624,11 +839,11 @@ sub _ponder_paragraph_buffer { # We have something in our buffer. So apparently the document has started. unless($self->{'doc_has_started'}) { $self->{'doc_has_started'} = 1; - + my $starting_contentless; $starting_contentless = ( - !@$curr_open + !@$curr_open and @$paras and ! grep $_->[0] ne '~end', @$paras # i.e., if the paras is all ~ends ) @@ -637,7 +852,7 @@ sub _ponder_paragraph_buffer { $starting_contentless ? 'contentless' : 'contentful', " document\n" ; - + $self->_handle_element_start( ($scratch = 'Document'), { @@ -649,15 +864,32 @@ sub _ponder_paragraph_buffer { my($para, $para_type); while(@$paras) { - last if @$paras == 1 and - ( $paras->[0][0] eq '=over' or $paras->[0][0] eq '~Verbatim' - or $paras->[0][0] eq '=item' ) - ; + + # If a directive, assume it's legal; subtract below if found not to be + $seen_legal_directive++ if $paras->[0][0] =~ /^=/; + + last if @$paras == 1 + and ( $paras->[0][0] eq '=over' + or $paras->[0][0] eq '=item' + or ($paras->[0][0] eq '~Verbatim' and $self->{'in_pod'})); # Those're the three kinds of paragraphs that require lookahead. # Actually, an "=item Foo" inside an region # and any =item inside an region (rare) # don't require any lookahead, but all others (bullets # and numbers) do. + # The verbatim is different from the other two, because those might be + # like: + # + # =item + # ... + # =cut + # ... + # =item + # + # The =cut here finishes the paragraph but doesn't terminate the =over + # they should be in. (khw apologizes that he didn't comment at the time + # why the 'in_pod' works, and no longer remembers why, and doesn't think + # it is currently worth the effort to re-figure it out.) # TODO: whinge about many kinds of directives in non-resolving =for regions? # TODO: many? like what? =head1 etc? @@ -667,7 +899,7 @@ sub _ponder_paragraph_buffer { DEBUG > 1 and print STDERR "Pondering a $para_type paragraph, given the stack: (", $self->_dump_curr_open(), ")\n"; - + if($para_type eq '=for') { next if $self->_ponder_for($para,$curr_open,$paras); @@ -704,7 +936,7 @@ sub _ponder_paragraph_buffer { } else { # All non-magical codes!!! - + # Here we start using $para_type for our own twisted purposes, to # mean how it should get treated, not as what the element name # should be. @@ -744,10 +976,10 @@ sub _ponder_paragraph_buffer { ; next; } - - + + my $over_type = $over->[1]{'~type'}; - + if(!$over_type) { # Shouldn't happen1 die "Typeless over in stack, starting at line " @@ -772,7 +1004,7 @@ sub _ponder_paragraph_buffer { my $item_type = $self->_get_item_type($para); # That kills the content of the item if it's a number or bullet. DEBUG and print STDERR " Item is of type ", $para->[0], " under $over_type\n"; - + if($item_type eq 'text') { # Nothing special needs doing for 'text' } elsif($item_type eq 'number' or $item_type eq 'bullet') { @@ -788,16 +1020,16 @@ sub _ponder_paragraph_buffer { } else { die "Unhandled item type $item_type"; # should never happen } - + # =item-text thingies don't need any assimilation, it seems. } elsif($over_type eq 'number') { my $item_type = $self->_get_item_type($para); # That kills the content of the item if it's a number or bullet. DEBUG and print STDERR " Item is of type ", $para->[0], " under $over_type\n"; - + my $expected_value = ++ $curr_open->[-1][1]{'~counter'}; - + if($item_type eq 'bullet') { # Hm, it's not numeric. Correct for this. $para->[1]{'number'} = $expected_value; @@ -822,7 +1054,7 @@ sub _ponder_paragraph_buffer { } elsif($expected_value == $para->[1]{'number'}) { DEBUG > 1 and print STDERR " Numeric item has the expected value of $expected_value\n"; - + } else { DEBUG > 1 and print STDERR " Numeric item has ", $para->[1]{'number'}, " instead of the expected value of $expected_value\n"; @@ -833,7 +1065,7 @@ sub _ponder_paragraph_buffer { ); $para->[1]{'number'} = $expected_value; # correcting!! } - + if(@$para == 2) { # For the cases where we /didn't/ push to @$para if($paras->[0][0] eq '~Para') { @@ -850,13 +1082,13 @@ sub _ponder_paragraph_buffer { my $item_type = $self->_get_item_type($para); # That kills the content of the item if it's a number or bullet. DEBUG and print STDERR " Item is of type ", $para->[0], " under $over_type\n"; - + if($item_type eq 'bullet') { # as expected! if( $para->[1]{'~_freaky_para_hack'} ) { DEBUG and print STDERR "Accomodating '=item * Foo' tolerance hack.\n"; - push @$para, delete $para->[1]{'~_freaky_para_hack'}; + push @$para, $para->[1]{'~_freaky_para_hack'}; } } elsif($item_type eq 'number') { @@ -925,6 +1157,7 @@ sub _ponder_paragraph_buffer { DEBUG > 1 and print STDERR " Pondering known directive ${$para}[0] as $para_type\n"; } else { # An unknown directive! + $seen_legal_directive--; DEBUG > 1 and printf STDERR "Unhandled directive %s (Handled: %s)\n", $para->[0], join(' ', sort keys %{$self->{'accept_directives'}} ) ; @@ -944,15 +1177,15 @@ sub _ponder_paragraph_buffer { my @fors = grep $_->[0] eq '=for', @$curr_open; DEBUG > 1 and print STDERR "Containing fors: ", join(',', map $_->[1]{'target'}, @fors), "\n"; - + if(! @fors) { DEBUG and print STDERR "Treating $para_type paragraph as such because stack has no =for's\n"; - + #} elsif(grep $_->[1]{'~resolve'}, @fors) { #} elsif(not grep !$_->[1]{'~resolve'}, @fors) { } elsif( $fors[-1][1]{'~resolve'} ) { # Look to the immediately containing for - + if($para_type eq 'Data') { DEBUG and print STDERR "Treating Data paragraph as Plain/Verbatim because the containing =for ($fors[-1][1]{'target'}) is a resolver\n"; $para->[0] = 'Para'; @@ -971,7 +1204,7 @@ sub _ponder_paragraph_buffer { if($para_type eq 'Plain') { $self->_ponder_Plain($para); } elsif($para_type eq 'Verbatim') { - $self->_ponder_Verbatim($para); + $self->_ponder_Verbatim($para); } elsif($para_type eq 'Data') { $self->_ponder_Data($para); } else { @@ -985,11 +1218,12 @@ sub _ponder_paragraph_buffer { DEBUG and print STDERR "\n", pretty($para), "\n"; # traverse the treelet (which might well be just one string scalar) - $self->{'content_seen'} ||= 1; + $self->{'content_seen'} ||= 1 if $seen_legal_directive + && ! $self->{'~tried_gen_errata'}; $self->_traverse_treelet_bit(@$para); } } - + return; } @@ -1024,9 +1258,9 @@ sub _ponder_for { } DEBUG > 1 and print STDERR "Faking out a =for $target as a =begin $target / =end $target\n"; - + $para->[0] = 'Data'; - + unshift @$paras, ['=begin', {'start_line' => $para->[1]{'start_line'}, '~really' => '=for'}, @@ -1038,7 +1272,7 @@ sub _ponder_for { $target, ], ; - + return 1; } @@ -1055,20 +1289,20 @@ sub _ponder_begin { DEBUG and print STDERR "Ignoring targetless =begin\n"; return 1; } - + my ($target, $title) = $content =~ m/^(\S+)\s*(.*)$/; $para->[1]{'title'} = $title if ($title); $para->[1]{'target'} = $target; # without any ':' $content = $target; # strip off the title - + $content =~ s/^:!/!:/s; my $neg; # whether this is a negation-match $neg = 1 if $content =~ s/^!//s; my $to_resolve; # whether to process formatting codes $to_resolve = 1 if $content =~ s/^://s; - + my $dont_ignore; # whether this target matches us - + foreach my $target_name ( split(',', $content, -1), $neg ? () : '*' @@ -1076,7 +1310,7 @@ sub _ponder_begin { DEBUG > 2 and print STDERR " Considering whether =begin $content matches $target_name\n"; next unless $self->{'accept_targets'}{$target_name}; - + DEBUG > 2 and print STDERR " It DOES match the acceptable target $target_name!\n"; $to_resolve = 1 @@ -1113,7 +1347,7 @@ sub _ponder_begin { if(!$dont_ignore or scalar grep $_->[1]{'~ignore'}, @$curr_open) { DEBUG > 1 and print STDERR "Ignoring ignorable =begin\n"; } else { - $self->{'content_seen'} ||= 1; + $self->{'content_seen'} ||= 1 unless $self->{'~tried_gen_errata'}; $self->_handle_element_start((my $scratch='for'), $para->[1]); } @@ -1139,7 +1373,7 @@ sub _ponder_end { DEBUG and print STDERR "Ignoring targetless =end\n"; return 1; } - + unless($content =~ m/^\S+$/) { # i.e., unless it's one word $self->whine( $para->[1]{'start_line'}, @@ -1149,7 +1383,7 @@ sub _ponder_end { DEBUG and print STDERR "Ignoring mistargetted =end $content\n"; return 1; } - + unless(@$curr_open and $curr_open->[-1][0] eq '=for') { $self->whine( $para->[1]{'start_line'}, @@ -1159,11 +1393,11 @@ sub _ponder_end { DEBUG and print STDERR "Ignoring mistargetted =end $content\n"; return 1; } - + unless($content eq $curr_open->[-1][1]{'target'}) { $self->whine( $para->[1]{'start_line'}, - "=end $content doesn't match =begin " + "=end $content doesn't match =begin " . $curr_open->[-1][1]{'target'} . ". (Stack: " . $self->_dump_curr_open() . ')' @@ -1180,22 +1414,22 @@ sub _ponder_end { } else { $curr_open->[-1][1]{'start_line'} = $para->[1]{'start_line'}; # what's that for? - - $self->{'content_seen'} ||= 1; + + $self->{'content_seen'} ||= 1 unless $self->{'~tried_gen_errata'}; $self->_handle_element_end( my $scratch = 'for', $para->[1]); } DEBUG > 1 and print STDERR "Popping $curr_open->[-1][0] $curr_open->[-1][1]{'target'} because of =end $content\n"; pop @$curr_open; return 1; -} +} sub _ponder_doc_end { my ($self,$para,$curr_open,$paras) = @_; if(@$curr_open) { # Deal with things left open DEBUG and print STDERR "Stack is nonempty at end-document: (", $self->_dump_curr_open(), ")\n"; - + DEBUG > 9 and print STDERR "Stack: ", pretty($curr_open), "\n"; unshift @$paras, $self->_closers_for_all_curr_open; # Make sure there is exactly one ~end in the parastack, at the end: @@ -1205,11 +1439,11 @@ sub _ponder_doc_end { # generate errata, and then another to be at the end # when that loop back around to process the errata. return 1; - + } else { DEBUG and print STDERR "Okay, stack is empty now.\n"; } - + # Try generating errata section, if applicable unless($self->{'~tried_gen_errata'}) { $self->{'~tried_gen_errata'} = 1; @@ -1220,7 +1454,7 @@ sub _ponder_doc_end { return 1; # I.e., loop around again to process these fake-o paragraphs } } - + splice @$paras; # Well, that's that for this paragraph buffer. DEBUG and print STDERR "Throwing end-document event.\n"; @@ -1245,7 +1479,7 @@ sub _ponder_pod { # The surrounding methods set content_seen, so let us remain consistent. # I do not know why it was not here before -- should it not be here? - # $self->{'content_seen'} ||= 1; + # $self->{'content_seen'} ||= 1 unless $self->{'~tried_gen_errata'}; return; } @@ -1278,8 +1512,9 @@ sub _ponder_over { $para->[1]{'~type'} = $list_type; push @$curr_open, $para; # yes, we reuse the paragraph as a stack item - + my $content = join ' ', splice @$para, 2; + $para->[1]{'~orig_content'} = $content; my $overness; if($content =~ m/^\s*$/s) { $para->[1]{'indent'} = 4; @@ -1301,13 +1536,13 @@ sub _ponder_over { $para->[1]{'indent'} = 4; } DEBUG > 1 and print STDERR "=over found of type $list_type\n"; - - $self->{'content_seen'} ||= 1; + + $self->{'content_seen'} ||= 1 unless $self->{'~tried_gen_errata'}; $self->_handle_element_start((my $scratch = 'over-' . $list_type), $para->[1]); return; } - + sub _ponder_back { my ($self,$para,$curr_open,$paras) = @_; # TODO: fire off or or ?? @@ -1324,7 +1559,7 @@ sub _ponder_back { DEBUG > 1 and print STDERR "=back happily closes matching =over\n"; # Expected case: we're closing the most recently opened thing #my $over = pop @$curr_open; - $self->{'content_seen'} ||= 1; + $self->{'content_seen'} ||= 1 unless $self->{'~tried_gen_errata'}; $self->_handle_element_end( my $scratch = 'over-' . ( (pop @$curr_open)->[1]{'~type'} ), $para->[1] ); @@ -1354,10 +1589,10 @@ sub _ponder_item { ; return 1; } - - + + my $over_type = $over->[1]{'~type'}; - + if(!$over_type) { # Shouldn't happen1 die "Typeless over in stack, starting at line " @@ -1382,7 +1617,7 @@ sub _ponder_item { my $item_type = $self->_get_item_type($para); # That kills the content of the item if it's a number or bullet. DEBUG and print STDERR " Item is of type ", $para->[0], " under $over_type\n"; - + if($item_type eq 'text') { # Nothing special needs doing for 'text' } elsif($item_type eq 'number' or $item_type eq 'bullet') { @@ -1398,16 +1633,16 @@ sub _ponder_item { } else { die "Unhandled item type $item_type"; # should never happen } - + # =item-text thingies don't need any assimilation, it seems. } elsif($over_type eq 'number') { my $item_type = $self->_get_item_type($para); # That kills the content of the item if it's a number or bullet. DEBUG and print STDERR " Item is of type ", $para->[0], " under $over_type\n"; - + my $expected_value = ++ $curr_open->[-1][1]{'~counter'}; - + if($item_type eq 'bullet') { # Hm, it's not numeric. Correct for this. $para->[1]{'number'} = $expected_value; @@ -1432,7 +1667,7 @@ sub _ponder_item { } elsif($expected_value == $para->[1]{'number'}) { DEBUG > 1 and print STDERR " Numeric item has the expected value of $expected_value\n"; - + } else { DEBUG > 1 and print STDERR " Numeric item has ", $para->[1]{'number'}, " instead of the expected value of $expected_value\n"; @@ -1443,7 +1678,7 @@ sub _ponder_item { ); $para->[1]{'number'} = $expected_value; # correcting!! } - + if(@$para == 2) { # For the cases where we /didn't/ push to @$para if($paras->[0][0] eq '~Para') { @@ -1460,13 +1695,13 @@ sub _ponder_item { my $item_type = $self->_get_item_type($para); # That kills the content of the item if it's a number or bullet. DEBUG and print STDERR " Item is of type ", $para->[0], " under $over_type\n"; - + if($item_type eq 'bullet') { # as expected! if( $para->[1]{'~_freaky_para_hack'} ) { DEBUG and print STDERR "Accomodating '=item * Foo' tolerance hack.\n"; - push @$para, delete $para->[1]{'~_freaky_para_hack'}; + push @$para, $para->[1]{'~_freaky_para_hack'}; } } elsif($item_type eq 'number') { @@ -1533,30 +1768,44 @@ sub _ponder_Verbatim { $para->[1]{'xml:space'} = 'preserve'; - my $indent = $self->strip_verbatim_indent; - if ($indent && ref $indent eq 'CODE') { - my @shifted = (shift @{$para}, shift @{$para}); - $indent = $indent->($para); - unshift @{$para}, @shifted; - } - - for(my $i = 2; $i < @$para; $i++) { - foreach my $line ($para->[$i]) { # just for aliasing - # Strip indentation. - $line =~ s/^\Q$indent// if $indent - && !($self->{accept_codes} && $self->{accept_codes}{VerbatimFormatted}); - while( $line =~ - # Sort of adapted from Text::Tabs -- yes, it's hardwired in that - # tabs are at every EIGHTH column. For portability, it has to be - # one setting everywhere, and 8th wins. - s/^([^\t]*)(\t+)/$1.(" " x ((length($2)<<3)-(length($1)&7)))/e - ) {} + unless ($self->{'_output_is_for_JustPod'}) { + # Fix illegal settings for expand_verbatim_tabs() + # This is because this module doesn't do input error checking, but khw + # doesn't want to add yet another instance of that. + $self->expand_verbatim_tabs(8) + if ! defined $self->expand_verbatim_tabs() + || $self->expand_verbatim_tabs() =~ /\D/; + + my $indent = $self->strip_verbatim_indent; + if ($indent && ref $indent eq 'CODE') { + my @shifted = (shift @{$para}, shift @{$para}); + $indent = $indent->($para); + unshift @{$para}, @shifted; + } - # TODO: whinge about (or otherwise treat) unindented or overlong lines + for(my $i = 2; $i < @$para; $i++) { + foreach my $line ($para->[$i]) { # just for aliasing + # Strip indentation. + $line =~ s/^\Q$indent// if $indent; + next unless $self->expand_verbatim_tabs; + + # This is commented out because of github issue #85, and the + # current maintainers don't know why it was there in the first + # place. + #&& !($self->{accept_codes} && $self->{accept_codes}{VerbatimFormatted}); + while( $line =~ + # Sort of adapted from Text::Tabs. + s/^([^\t]*)(\t+)/$1.(" " x ((length($2) + * $self->expand_verbatim_tabs) + -(length($1)&7)))/e + ) {} + + # TODO: whinge about (or otherwise treat) unindented or overlong lines + } } } - + # Now the VerbatimFormatted hoodoo... if( $self->{'accept_codes'} and $self->{'accept_codes'}{'VerbatimFormatted'} @@ -1596,7 +1845,7 @@ sub _traverse_treelet_bit { # for use only by the routine above my $scratch; $self->_handle_element_start(($scratch=$name), shift @_); - + while (@_) { my $x = shift; if (ref($x)) { @@ -1606,7 +1855,7 @@ sub _traverse_treelet_bit { # for use only by the routine above $self->_handle_text($x); } } - + $self->_handle_element_end($scratch=$name); return; } @@ -1651,7 +1900,7 @@ sub _closers_for_all_curr_open { sub _verbatim_format { my($it, $p) = @_; - + my $formatting; for(my $i = 2; $i < @$p; $i++) { # work backwards over the lines @@ -1659,7 +1908,7 @@ sub _verbatim_format { $p->[$i] .= "\n"; # Unlike with simple Verbatim blocks, we don't end up just doing # a join("\n", ...) on the contents, so we have to append a - # newline to ever line, and then nix the last one later. + # newline to every line, and then nix the last one later. } if( DEBUG > 4 ) { @@ -1672,7 +1921,7 @@ sub _verbatim_format { for(my $i = $#$p; $i > 2; $i--) { # work backwards over the lines, except the first (#2) - + #next unless $p->[$i] =~ m{^#:([ \^\/\%]*)\n?$}s # and $p->[$i-1] !~ m{^#:[ \^\/\%]*\n?$}s; # look at a formatty line preceding a nonformatty one @@ -1680,7 +1929,7 @@ sub _verbatim_format { if($p->[$i] =~ m{^#:([ \^\/\%]*)\n?$}s) { DEBUG > 5 and print STDERR " It's a formatty line. ", "Peeking at previous line ", $i-1, ": $$p[$i-1]: \n"; - + if( $p->[$i-1] =~ m{^#:[ \^\/\%]*\n?$}s ) { DEBUG > 5 and print STDERR " Previous line is formatty! Skipping this one.\n"; next; @@ -1696,11 +1945,11 @@ sub _verbatim_format { # "^" to mean bold, "/" to mean underline, and "%" to mean bold italic. # Example: # What do you want? i like pie. [or whatever] - # #:^^^^^^^^^^^^^^^^^ ///////////// - + # #:^^^^^^^^^^^^^^^^^ ///////////// + DEBUG > 4 and print STDERR "_verbatim_format considers:\n<$p->[$i-1]>\n<$p->[$i]>\n"; - + $formatting = ' ' . $1; $formatting =~ s/\s+$//s; # nix trailing whitespace unless(length $formatting and $p->[$i-1] =~ m/\S/) { # no-op @@ -1716,7 +1965,7 @@ sub _verbatim_format { } # Make $formatting and the previous line be exactly the same length, # with $formatting having a " " as the last character. - + DEBUG > 4 and print STDERR "Formatting <$formatting> on <", $p->[$i-1], ">\n"; @@ -1741,10 +1990,10 @@ sub _verbatim_format { #print STDERR "Formatting <$new_line[-1][-1]> as $new_line[-1][0]\n"; } } - my @nixed = + my @nixed = splice @$p, $i-1, 2, @new_line; # replace myself and the next line DEBUG > 10 and print STDERR "Nixed count: ", scalar(@nixed), "\n"; - + DEBUG > 6 and print STDERR "New version of the above line is these tokens (", scalar(@new_line), "):", map( ref($_)?"<@$_> ":"<$_>", @new_line ), "\n"; @@ -1791,29 +2040,46 @@ sub _treelet_from_formatting_codes { # [ 'B', {}, "pie" ], # "!" # ] - + # This illustrates the general format of a treelet. It is an array: + # [0] is a scalar indicating its type. In the example above, the + # types are '~Top' and 'B' + # [1] is a hash of various flags about it, possibly empty + # [2] - [N] are an ordered list of the subcomponents of the treelet. + # Scalars are literal text, refs are sub-treelets, to + # arbitrary levels. Stringifying a treelet will recursively + # stringify the sub-treelets, concatentating everything + # together to form the exact text of the treelet. + my($self, $para, $start_line, $preserve_space) = @_; - + my $treelet = ['~Top', {'start_line' => $start_line},]; - + unless ($preserve_space || $self->{'preserve_whitespace'}) { $para =~ s/\s+/ /g; # collapse and trim all whitespace first. $para =~ s/ $//; $para =~ s/^ //; } - + # Only apparent problem the above code is that N<< >> turns into # N<< >>. But then, word wrapping does that too! So don't do that! - + + + # As a Start-code is encountered, the number of opening bracket '<' + # characters minus 1 is pushed onto @stack (so 0 means a single bracket, + # etc). When closing brackets are found in the text, at least this number + # (plus the 1) will be required to mean the Start-code is terminated. When + # those are found, @stack is popped. my @stack; + my @lineage = ($treelet); my $raw = ''; # raw content of L<> fcode before splitting/processing # XXX 'raw' is not 100% accurate: all surrounding whitespace is condensed - # into just 1 ' '. Is this the regex's doing or 'raw's? + # into just 1 ' '. Is this the regex's doing or 'raw's? Answer is it's + # the 'collapse and trim all whitespace first' lines just above. my $inL = 0; DEBUG > 4 and print STDERR "Paragraph:\n$para\n\n"; - + # Here begins our frightening tokenizer RE. The following regex matches # text in four main parts: # @@ -1846,7 +2112,11 @@ sub _treelet_from_formatting_codes { | # Match multiple-bracket end codes. $3 gets the whitespace that # should be discarded before an end bracket but kept in other cases - # and $4 gets the end brackets themselves. + # and $4 gets the end brackets themselves. ($3 can be empty if the + # construct is empty, like C<< >>, and all the white-space has been + # gobbled up already, considered to be space after the opening + # bracket. In this case we use look-behind to verify that there are + # at least 2 spaces in a row before the ">".) (\s+|(?<=\s\s))(>{2,}) | (\s?>) # $5: simple end-codes @@ -1872,23 +2142,48 @@ sub _treelet_from_formatting_codes { ) { DEBUG > 4 and print STDERR "\nParagraphic tokenstack = (@stack)\n"; if(defined $1) { + my $bracket_count; # How many '<<<' in a row this has. Needed for + # Pod::Simple::JustPod if(defined $2) { DEBUG > 3 and print STDERR "Found complex start-text code \"$1\"\n"; - push @stack, length($2) + 1; - # length of the necessary complex end-code string + $bracket_count = length($2) + 1; + push @stack, $bracket_count; # length of the necessary complex + # end-code string } else { DEBUG > 3 and print STDERR "Found simple start-text code \"$1\"\n"; push @stack, 0; # signal that we're looking for simple + $bracket_count = 1; } - push @lineage, [ substr($1,0,1), {}, ]; # new node object - push @{ $lineage[-2] }, $lineage[-1]; - if ('L' eq substr($1,0,1)) { - $raw = $inL ? $raw.$1 : ''; # reset raw content accumulator - $inL = 1; + my $code = substr($1,0,1); + if ('L' eq $code) { + if ($inL) { + $raw .= $1; + $self->scream( $start_line, + 'Nested L<> are illegal. Pretending inner one is ' + . 'X<...> so can continue looking for other errors.'); + $code = "X"; + } + else { + $raw = ""; # reset raw content accumulator + $inL = @stack; + } } else { $raw .= $1 if $inL; } - + push @lineage, [ $code, {}, ]; # new node object + + # Tell Pod::Simple::JustPod how many brackets there were, but to save + # space, not in the most usual case of there was just 1. It can be + # inferred by the absence of this element. Similarly, if there is more + # than one bracket, extract the white space between the final bracket + # and the real beginning of the interior. Save that if it isn't just a + # single space + if ($self->{'_output_is_for_JustPod'} && $bracket_count > 1) { + $lineage[-1][1]{'~bracket_count'} = $bracket_count; + my $lspacer = substr($1, 1 + $bracket_count); + $lineage[-1][1]{'~lspacer'} = $lspacer if $lspacer ne " "; + } + push @{ $lineage[-2] }, $lineage[-1]; } elsif(defined $4) { DEBUG > 3 and print STDERR "Found apparent complex end-text code \"$3$4\"\n"; # This is where it gets messy... @@ -1917,20 +2212,35 @@ sub _treelet_from_formatting_codes { } #print STDERR "\nHOOBOY ", scalar(@{$lineage[-1]}), "!!!\n"; + if ($3 ne " " && $self->{'_output_is_for_JustPod'}) { + if ($3 ne "") { + $lineage[-1][1]{'~rspacer'} = $3; + } + elsif ($lineage[-1][1]{'~lspacer'} eq " ") { + + # Here we had something like C<< >> which was a false positive + delete $lineage[-1][1]{'~lspacer'}; + } + else { + $lineage[-1][1]{'~rspacer'} + = substr($lineage[-1][1]{'~lspacer'}, -1, 1); + chop $lineage[-1][1]{'~lspacer'}; + } + } + push @{ $lineage[-1] }, '' if 2 == @{ $lineage[-1] }; # Keep the element from being childless - - pop @stack; - pop @lineage; - unless (@stack) { # not in an L if there are no open fcodes + if ($inL == @stack) { + $lineage[-1][1]{'raw'} = $raw; $inL = 0; - if (ref $lineage[-1][-1] && $lineage[-1][-1][0] eq 'L') { - $lineage[-1][-1][1]{'raw'} = $raw - } } + + pop @stack; + pop @lineage; + $raw .= $3.$4 if $inL; - + } elsif(defined $5) { DEBUG > 3 and print STDERR "Found apparent simple end-text code \"$5\"\n"; @@ -1944,6 +2254,11 @@ sub _treelet_from_formatting_codes { push @{ $lineage[-1] }, ''; # keep it from being really childless } + if ($inL == @stack) { + $lineage[-1][1]{'raw'} = $raw; + $inL = 0; + } + pop @stack; pop @lineage; } else { @@ -1951,12 +2266,6 @@ sub _treelet_from_formatting_codes { push @{ $lineage[-1] }, $5; } - unless (@stack) { # not in an L if there are no open fcodes - $inL = 0; - if (ref $lineage[-1][-1] && $lineage[-1][-1][0] eq 'L') { - $lineage[-1][-1][1]{'raw'} = $raw - } - } $raw .= $5 if $inL; } elsif(defined $6) { @@ -1965,6 +2274,7 @@ sub _treelet_from_formatting_codes { $raw .= $6 if $inL; # XXX does not capture multiplace whitespaces -- 'raw' ends up with # at most 1 leading/trailing whitespace, why not all of it? + # Answer, because we deliberately trimmed it above } else { # should never ever ever ever happen @@ -2095,7 +2405,7 @@ sub pretty { # adopted from Class::Classless # letters, but I don't know if it has always worked without bugs. It # seemed safest just to list the characters. # s<([^\x20\x21\x23\x27-\x3F\x41-\x5B\x5D-\x7E])> - s<([^ !#'()*+,\-./0123456789:;\<=\>?ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\]^_`abcdefghijklmnopqrstuvwxyz{|}~])> + s<([^ !"#'()*+,\-./0123456789:;\<=\>?ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\]^_`abcdefghijklmnopqrstuvwxyz{|}~])> <$pretty_form{$1} || '\\x{'.sprintf("%x", ord($1)).'}'>eg; #<$pretty_form{$1} || '\\x'.(unpack("H2",$1))>eg; qq{"$_"}; diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Checker.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Checker.pm index 83415f8e25e..2fef0305a5c 100644 --- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Checker.pm +++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Checker.pm @@ -9,7 +9,7 @@ use Carp (); use Pod::Simple::Methody (); use Pod::Simple (); use vars qw( @ISA $VERSION ); -$VERSION = '3.35'; +$VERSION = '3.40'; @ISA = ('Pod::Simple::Methody'); BEGIN { *DEBUG = defined(&Pod::Simple::DEBUG) ? \&Pod::Simple::DEBUG @@ -88,8 +88,10 @@ sub end_item_text { $_[0]->emit_par(-2) } sub emit_par { return unless $_[0]{'Errata_seen'}; my($self, $tweak_indent) = splice(@_,0,2); - my $indent = ' ' x ( 2 * $self->{'Indent'} + ($tweak_indent||0) ); + my $length = 2 * $self->{'Indent'} + ($tweak_indent||0); + my $indent = ' ' x ($length > 0 ? $length : 0); # Yes, 'STRING' x NEGATIVE gives '', same as 'STRING' x 0 + # 'Negative repeat count does nothing' since 5.22 $self->{'Thispara'} =~ s/$Pod::Simple::shy//g; my $out = Text::Wrap::wrap($indent, $indent, $self->{'Thispara'} .= "\n"); diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Debug.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Debug.pm index 428cc723594..aaa5a887e6b 100644 --- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Debug.pm +++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Debug.pm @@ -2,7 +2,7 @@ require 5; package Pod::Simple::Debug; use strict; use vars qw($VERSION ); -$VERSION = '3.35'; +$VERSION = '3.40'; sub import { my($value,$variable); diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/DumpAsText.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/DumpAsText.pm index 71bef5070be..bade6fcc472 100644 --- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/DumpAsText.pm +++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/DumpAsText.pm @@ -1,7 +1,7 @@ require 5; package Pod::Simple::DumpAsText; -$VERSION = '3.35'; +$VERSION = '3.40'; use Pod::Simple (); BEGIN {@ISA = ('Pod::Simple')} diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/DumpAsXML.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/DumpAsXML.pm index 9d84878cb78..6f0b7b18621 100644 --- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/DumpAsXML.pm +++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/DumpAsXML.pm @@ -1,7 +1,7 @@ require 5; package Pod::Simple::DumpAsXML; -$VERSION = '3.35'; +$VERSION = '3.40'; use Pod::Simple (); BEGIN {@ISA = ('Pod::Simple')} diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/HTML.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/HTML.pm index 9cdbed217e5..0219b979100 100644 --- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/HTML.pm +++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/HTML.pm @@ -9,7 +9,7 @@ use vars qw( $Doctype_decl $Content_decl ); @ISA = ('Pod::Simple::PullParser'); -$VERSION = '3.35'; +$VERSION = '3.40'; BEGIN { if(defined &DEBUG) { } # no-op elsif( defined &Pod::Simple::DEBUG ) { *DEBUG = \&Pod::Simple::DEBUG } @@ -29,7 +29,7 @@ $LamePad = '' unless defined $LamePad; $Linearization_Limit = 120 unless defined $Linearization_Limit; # headings/items longer than that won't get an -$Perldoc_URL_Prefix = 'http://search.cpan.org/perldoc?' +$Perldoc_URL_Prefix = 'https://metacpan.org/pod/' unless defined $Perldoc_URL_Prefix; $Perldoc_URL_Postfix = '' unless defined $Perldoc_URL_Postfix; diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/HTMLBatch.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/HTMLBatch.pm index 661266d0de4..227d6d3af0d 100644 --- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/HTMLBatch.pm +++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/HTMLBatch.pm @@ -5,7 +5,7 @@ use strict; use vars qw( $VERSION $HTML_RENDER_CLASS $HTML_EXTENSION $CSS $JAVASCRIPT $SLEEPY $SEARCH_CLASS @ISA ); -$VERSION = '3.35'; +$VERSION = '3.40'; @ISA = (); # Yup, we're NOT a subclass of Pod::Simple::HTML! # TODO: nocontents stylesheets. Strike some of the color variations? @@ -720,22 +720,21 @@ sub _gen_css_wad { } # Now a few indexless variations: - foreach my $variation ( - 'blkbluw', # black_with_blue_on_white - 'whtpurk', # white_with_purple_on_black - 'whtgrng', # white_with_green_on_grey - 'grygrnw', # grey_with_green_on_white - ) { - my $outname = $variation; + for (my ($outfile, $variation) = each %{{ + blkbluw => 'black_with_blue_on_white', + whtpurk => 'white_with_purple_on_black', + whtgrng => 'white_with_green_on_grey', + grygrnw => 'grey_with_green_on_white', + }}) { my $this_css = join "\n", - "/* This file is autogenerated. Do not edit. $outname */\n", + "/* This file is autogenerated. Do not edit. $outfile */\n", "\@import url(\"./_$variation.css\");", ".indexgroup { display: none; }", "\n", ; - my $name = $outname; + my $name = $outfile; $name =~ tr/-_/ /; - $self->add_css( "_$outname.css", 0, $name, 0, 0, \$this_css); + $self->add_css( "_$outfile.css", 0, $name, 0, 0, \$this_css); } return; @@ -1110,12 +1109,15 @@ Example: =item $batchconv = Pod::Simple::HTMLBatch->new; -This TODO - +This creates a new batch converter. The method doesn't take parameters. +To change the converter's attributes, use the L<"/ACCESSOR METHODS"> +below. =item $batchconv->batch_convert( I, I ); -this TODO +This searches the directories given in I and writes +HTML files for each of these to a corresponding directory +in I. The directory I must exist. =item $batchconv->batch_convert( undef , ...); diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/LinkSection.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/LinkSection.pm index 04612f202e9..b9ca19cdf93 100644 --- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/LinkSection.pm +++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/LinkSection.pm @@ -2,13 +2,11 @@ require 5; package Pod::Simple::LinkSection; # Based somewhat dimly on Array::Autojoin -use vars qw($VERSION ); -$VERSION = '3.35'; use strict; use Pod::Simple::BlackBox; use vars qw($VERSION ); -$VERSION = '3.35'; +$VERSION = '3.40'; use overload( # So it'll stringify nice '""' => \&Pod::Simple::BlackBox::stringify_lol, diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Methody.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Methody.pm index 67b87067416..5bcee54d4f7 100644 --- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Methody.pm +++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Methody.pm @@ -4,7 +4,7 @@ package Pod::Simple::Methody; use strict; use Pod::Simple (); use vars qw(@ISA $VERSION); -$VERSION = '3.35'; +$VERSION = '3.40'; @ISA = ('Pod::Simple'); # Yes, we could use named variables, but I want this to be impose diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Progress.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Progress.pm index 0c18a5b37d6..3d6f4031125 100644 --- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Progress.pm +++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Progress.pm @@ -1,7 +1,7 @@ require 5; package Pod::Simple::Progress; -$VERSION = '3.35'; +$VERSION = '3.40'; use strict; # Objects of this class are used for noting progress of an diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/PullParser.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/PullParser.pm index 7c326ec6aee..ceeb3f92504 100644 --- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/PullParser.pm +++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/PullParser.pm @@ -1,6 +1,6 @@ require 5; package Pod::Simple::PullParser; -$VERSION = '3.35'; +$VERSION = '3.40'; use Pod::Simple (); BEGIN {@ISA = ('Pod::Simple')} diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/PullParserEndToken.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/PullParserEndToken.pm index d3066a8e87c..d9ebdcbcf0e 100644 --- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/PullParserEndToken.pm +++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/PullParserEndToken.pm @@ -5,7 +5,7 @@ use Pod::Simple::PullParserToken (); use strict; use vars qw(@ISA $VERSION); @ISA = ('Pod::Simple::PullParserToken'); -$VERSION = '3.35'; +$VERSION = '3.40'; sub new { # Class->new(tagname); my $class = shift; diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/PullParserStartToken.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/PullParserStartToken.pm index d938e0adb21..61608fb466c 100644 --- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/PullParserStartToken.pm +++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/PullParserStartToken.pm @@ -5,7 +5,7 @@ use Pod::Simple::PullParserToken (); use strict; use vars qw(@ISA $VERSION); @ISA = ('Pod::Simple::PullParserToken'); -$VERSION = '3.35'; +$VERSION = '3.40'; sub new { # Class->new(tagname, optional_attrhash); my $class = shift; diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/PullParserTextToken.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/PullParserTextToken.pm index a11ce0fd92d..c8247a081e7 100644 --- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/PullParserTextToken.pm +++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/PullParserTextToken.pm @@ -5,7 +5,7 @@ use Pod::Simple::PullParserToken (); use strict; use vars qw(@ISA $VERSION); @ISA = ('Pod::Simple::PullParserToken'); -$VERSION = '3.35'; +$VERSION = '3.40'; sub new { # Class->new(text); my $class = shift; diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/PullParserToken.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/PullParserToken.pm index c6618168e6b..f14b5637cd4 100644 --- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/PullParserToken.pm +++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/PullParserToken.pm @@ -3,7 +3,7 @@ require 5; package Pod::Simple::PullParserToken; # Base class for tokens gotten from Pod::Simple::PullParser's $parser->get_token @ISA = (); -$VERSION = '3.35'; +$VERSION = '3.40'; use strict; sub new { # Class->new('type', stuff...); ## Overridden in derived classes anyway diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/RTF.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/RTF.pm index 153c3d3e287..ed0de149ae0 100644 --- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/RTF.pm +++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/RTF.pm @@ -8,24 +8,67 @@ package Pod::Simple::RTF; use strict; use vars qw($VERSION @ISA %Escape $WRAP %Tagmap); -$VERSION = '3.35'; +$VERSION = '3.40'; use Pod::Simple::PullParser (); BEGIN {@ISA = ('Pod::Simple::PullParser')} use Carp (); BEGIN { *DEBUG = \&Pod::Simple::DEBUG unless defined &DEBUG } +sub to_uni ($) { # Convert native code point to Unicode + my $x = shift; + + # Broken for early EBCDICs + $x = chr utf8::native_to_unicode(ord $x) if $] ge 5.007_003 + && ord("A") != 65; + return $x; +} + +# We escape out 'F' so that we can send RTF files thru the mail without the +# slightest worry that paragraphs beginning with "From" will get munged. +# We also escape '\', '{', '}', and '_' +my $map_to_self = ' !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEGHIJKLMNOPQRSTUVWXYZ[]^`abcdefghijklmnopqrstuvwxyz|~'; + $WRAP = 1 unless defined $WRAP; +%Escape = ( + + # Start with every character mapping to its hex equivalent + map( (chr($_) => sprintf("\\'%02x", $_)), 0 .. 0xFF), + + # Override most ASCII printables with themselves (or on non-ASCII platforms, + # their ASCII values. This is because the output is UTF-16, which is always + # based on Unicode code points) + map( ( substr($map_to_self, $_, 1) + => to_uni(substr($map_to_self, $_, 1))), 0 .. length($map_to_self) - 1), + + # And some refinements: + "\r" => "\n", + "\cj" => "\n", + "\n" => "\n\\line ", + + "\t" => "\\tab ", # Tabs (altho theoretically raw \t's are okay) + "\f" => "\n\\page\n", # Formfeed + "-" => "\\_", # Turn plaintext '-' into a non-breaking hyphen + $Pod::Simple::nbsp => "\\~", # Latin-1 non-breaking space + $Pod::Simple::shy => "\\-", # Latin-1 soft (optional) hyphen -# These are broken for early Perls on EBCDIC; they could be fixed to work -# better there, but not worth it. These are part of a larger [...] class, so -# are just the strings to substitute into it, as opposed to compiled patterns. -my $cntrl = '[:cntrl:]'; -$cntrl = '\x00-\x1F\x7F' unless eval "qr/[$cntrl]/"; + # CRAZY HACKS: + "\n" => "\\line\n", + "\r" => "\n", + "\cb" => "{\n\\cs21\\lang1024\\noproof ", # \\cf1 + "\cc" => "}", +); -my $not_ascii = '[:^ascii:]'; -$not_ascii = '\x80-\xFF' unless eval "qr/[$not_ascii]/"; +# Generate a string of all the characters in %Escape that don't map to +# themselves. First, one without the hyphen, then one with. +my $escaped_sans_hyphen = ""; +$escaped_sans_hyphen .= $_ for grep { $_ ne $Escape{$_} && $_ ne '-' } + sort keys %Escape; +my $escaped = "-$escaped_sans_hyphen"; +# Then convert to patterns +$escaped_sans_hyphen = qr/[\Q$escaped_sans_hyphen \E]/; +$escaped= qr/[\Q$escaped\E]/; #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -158,6 +201,13 @@ sub run { #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# Match something like an identifier. Prefer XID if available, then plain ID, +# then just ASCII +my $id_re = Pod::Simple::BlackBox::my_qr('[\'_\p{XIDS}][\'\p{XIDC}]+', "ab"); +$id_re = Pod::Simple::BlackBox::my_qr('[\'_\p{IDS}][\'\p{IDC}]+', "ab") + unless $id_re; +$id_re = qr/['_a-zA-Z]['a-zA-Z0-9_]+/ unless $id_re; + sub do_middle { # the main work my $self = $_[0]; my $fh = $self->{'output_fh'}; @@ -172,7 +222,7 @@ sub do_middle { # the main work if( ($type = $token->type) eq 'text' ) { if( $self->{'rtfverbatim'} ) { DEBUG > 1 and print STDERR " $type " , $token->text, " in verbatim!\n"; - rtf_esc_codely($scratch = $token->text); + rtf_esc(0, $scratch = $token->text); # 0 => Don't escape hyphen print $fh $scratch; next; } @@ -195,13 +245,13 @@ sub do_middle { # the main work | # or starting alpha, but containing anything strange: (?: - [a-zA-Z'${not_ascii}]+[\$\@\:_<>\(\\\*]\S+ + ${id_re}[\$\@\:_<>\(\\\*]\S+ ) ) /\cb$1\cc/xsg ; - rtf_esc($scratch); + rtf_esc(1, $scratch); # 1 => escape hyphen $scratch =~ s/( [^\r\n]{65} # Snare 65 characters from a line @@ -311,7 +361,7 @@ sub do_middle { # the main work print $fh $token->attr('number'), ". \n"; } elsif ($tagname eq 'item-bullet') { print $fh "\\'", ord("_"), "\n"; - #for funky testing: print $fh '', rtf_esc("\x{4E4B}\x{9053}"); + #for funky testing: print $fh '', rtf_esc(1, "\x{4E4B}\x{9053}"); } } elsif( $type eq 'end' ) { @@ -465,7 +515,7 @@ sub doc_start { # catches the most common case, at least DEBUG and print STDERR "Title0: <$title>\n"; - $title = rtf_esc($title); + $title = rtf_esc(1, $title); # 1 => escape hyphen DEBUG and print STDERR "Title1: <$title>\n"; $title = '\lang1024\noproof ' . $title if $is_obviously_module_name; @@ -489,90 +539,69 @@ END #------------------------------------------------------------------------- use integer; -sub rtf_esc { - my $x; # scratch - if(!defined wantarray) { # void context: alter in-place! - for(@_) { - s/([F${cntrl}\-\\\{\}${not_ascii}])/$Escape{$1}/g; # ESCAPER - s/([^\x00-\xFF])/'\\uc1\\u'.((ord($1)<32768)?ord($1):(ord($1)-65536)).'?'/eg; - } - return; - } elsif(wantarray) { # return an array - return map {; ($x = $_) =~ - s/([F${cntrl}\-\\\{\}${not_ascii}])/$Escape{$1}/g; # ESCAPER - $x =~ s/([^\x00-\xFF])/'\\uc1\\u'.((ord($1)<32768)?ord($1):(ord($1)-65536)).'?'/eg; - $x; - } @_; - } else { # return a single scalar - ($x = ((@_ == 1) ? $_[0] : join '', @_) - ) =~ s/([F${cntrl}\-\\\{\}${not_ascii}])/$Escape{$1}/g; # ESCAPER - # Escape \, {, }, -, control chars, and 7f-ff. - $x =~ s/([^\x00-\xFF])/'\\uc1\\u'.((ord($1)<32768)?ord($1):(ord($1)-65536)).'?'/eg; + +my $question_mark_code_points = + Pod::Simple::BlackBox::my_qr('([^\x00-\x{D7FF}\x{E000}-\x{10FFFF}])', + "\x{110000}"); +my $plane0 = + Pod::Simple::BlackBox::my_qr('([\x{100}-\x{FFFF}])', "\x{100}"); +my $other_unicode = + Pod::Simple::BlackBox::my_qr('([\x{10000}-\x{10FFFF}])', "\x{10000}"); + +sub esc_uni($) { + use if $] le 5.006002, 'utf8'; + + my $x = shift; + + # The output is expected to be UTF-16. Surrogates and above-Unicode get + # mapped to '?' + $x =~ s/$question_mark_code_points/?/g if $question_mark_code_points; + + # Non-surrogate Plane 0 characters get mapped to their code points. But + # the standard calls for a 16bit SIGNED value. + $x =~ s/$plane0/'\\uc1\\u'.((ord($1)<32768)?ord($1):(ord($1)-65536)).'?'/eg + if $plane0; + + # Use surrogate pairs for the rest + $x =~ s/$other_unicode/'\\uc1\\u' . ((ord($1) >> 10) + 0xD7C0 - 65536) . '\\u' . (((ord$1) & 0x03FF) + 0xDC00 - 65536) . '?'/eg if $other_unicode; + return $x; - } } -sub rtf_esc_codely { - # Doesn't change "-" to hard-hyphen, nor apply computerese style-smarts. - # We don't want to change the "-" to hard-hyphen, because we want to +sub rtf_esc ($$) { + # The parameter is true if we should escape hyphens + my $escape_re = ((shift) ? $escaped : $escaped_sans_hyphen); + + # When false, it doesn't change "-" to hard-hyphen. + # We don't want to change the "-" to hard-hyphen, because we want to # be able to paste this into a file and run it without there being # dire screaming about the mysterious hard-hyphen character (which # looks just like a normal dash character). - + # XXX The comments used to claim that when false it didn't apply computerese + # style-smarts, but khw didn't see this actually + my $x; # scratch if(!defined wantarray) { # void context: alter in-place! for(@_) { - s/([F${cntrl}\\\{\}${not_ascii}])/$Escape{$1}/g; # ESCAPER - s/([^\x00-\xFF])/'\\uc1\\u'.((ord($1)<32768)?ord($1):(ord($1)-65536)).'?'/eg; + s/($escape_re)/$Escape{$1}/g; # ESCAPER + $_ = esc_uni($_); } return; } elsif(wantarray) { # return an array return map {; ($x = $_) =~ - s/([F${cntrl}\\\{\}${not_ascii}])/$Escape{$1}/g; # ESCAPER - $x =~ s/([^\x00-\xFF])/'\\uc1\\u'.((ord($1)<32768)?ord($1):(ord($1)-65536)).'?'/eg; + s/($escape_re)/$Escape{$1}/g; # ESCAPER + $x = esc_uni($x); $x; } @_; } else { # return a single scalar ($x = ((@_ == 1) ? $_[0] : join '', @_) - ) =~ s/([F${cntrl}\\\{\}${not_ascii}])/$Escape{$1}/g; # ESCAPER + ) =~ s/($escape_re)/$Escape{$1}/g; # ESCAPER # Escape \, {, }, -, control chars, and 7f-ff. - $x =~ s/([^\x00-\xFF])/'\\uc1\\u'.((ord($1)<32768)?ord($1):(ord($1)-65536)).'?'/eg; + $x = esc_uni($x); return $x; } } -%Escape = ( - (($] lt 5.007_003) # Broken for non-ASCII on early Perls - ? (map( (chr($_),chr($_)), # things not apparently needing escaping - 0x20 .. 0x7E ), - map( (chr($_),sprintf("\\'%02x", $_)), # apparently escapeworthy things - 0x00 .. 0x1F, 0x5c, 0x7b, 0x7d, 0x7f .. 0xFF, 0x46)) - : (map( (chr(utf8::unicode_to_native($_)),chr(utf8::unicode_to_native($_))), - 0x20 .. 0x7E ), - map( (chr($_),sprintf("\\'%02x", utf8::unicode_to_native($_))), - 0x00 .. 0x1F, 0x5c, 0x7b, 0x7d, 0x7f .. 0xFF, 0x46))), - - # We get to escape out 'F' so that we can send RTF files thru the mail - # without the slightest worry that paragraphs beginning with "From" - # will get munged. - - # And some refinements: - "\r" => "\n", - "\cj" => "\n", - "\n" => "\n\\line ", - - "\t" => "\\tab ", # Tabs (altho theoretically raw \t's are okay) - "\f" => "\n\\page\n", # Formfeed - "-" => "\\_", # Turn plaintext '-' into a non-breaking hyphen - $Pod::Simple::nbsp => "\\~", # Latin-1 non-breaking space - $Pod::Simple::shy => "\\-", # Latin-1 soft (optional) hyphen - - # CRAZY HACKS: - "\n" => "\\line\n", - "\r" => "\n", - "\cb" => "{\n\\cs21\\lang1024\\noproof ", # \\cf1 - "\cc" => "}", -); 1; __END__ diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Search.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Search.pm index df499cacf2d..a07d33b85ac 100644 --- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Search.pm +++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Search.pm @@ -3,7 +3,7 @@ package Pod::Simple::Search; use strict; use vars qw($VERSION $MAX_VERSION_WITHIN $SLEEPY); -$VERSION = '3.35'; ## Current version of this package +$VERSION = '3.40'; ## Current version of this package BEGIN { *DEBUG = sub () {0} unless defined &DEBUG; } # set DEBUG level use Carp (); @@ -12,7 +12,6 @@ $SLEEPY = 1 if !defined $SLEEPY and $^O =~ /mswin|mac/i; # flag to occasionally sleep for $SLEEPY - 1 seconds. $MAX_VERSION_WITHIN ||= 60; -my $IS_CASE_INSENSITIVE = -e uc __FILE__ && -e lc __FILE__; ############################################################################# @@ -26,7 +25,7 @@ use Cwd qw( cwd ); __PACKAGE__->_accessorize( # Make my dumb accessor methods 'callback', 'progress', 'dir_prefix', 'inc', 'laborious', 'limit_glob', 'limit_re', 'shadows', 'verbose', 'name2path', 'path2name', 'recurse', - 'ciseen' + 'ciseen', 'is_case_insensitive' ); #========================================================================== @@ -42,6 +41,7 @@ sub init { $self->inc(1); $self->recurse(1); $self->verbose(DEBUG); + $self->is_case_insensitive(-e uc __FILE__ && -e lc __FILE__); return $self; } @@ -130,12 +130,12 @@ sub _make_search_callback { # Put the options in variables, for easy access my( $laborious, $verbose, $shadows, $limit_re, $callback, $progress, - $path2name, $name2path, $recurse, $ciseen) = + $path2name, $name2path, $recurse, $ciseen, $is_case_insensitive) = map scalar($self->$_()), qw(laborious verbose shadows limit_re callback progress - path2name name2path recurse ciseen); + path2name name2path recurse ciseen is_case_insensitive); my ($seen, $remember, $files_for); - if ($IS_CASE_INSENSITIVE) { + if ($is_case_insensitive) { $seen = sub { $ciseen->{ lc $_[0] } }; $remember = sub { $name2path->{ $_[0] } = $ciseen->{ lc $_[0] } = $_[1]; }; $files_for = sub { my $n = lc $_[0]; grep { lc $path2name->{$_} eq $n } %{ $path2name } }; @@ -259,7 +259,7 @@ sub _path2modname { while(@m and defined($x = lc( $m[0] )) and( $x eq 'site_perl' - or($x eq 'pod' and @m == 1 and $shortname =~ m{^perl.*\.pod$}s ) + or($x =~ m/^pods?$/ and @m == 1 and $shortname =~ m{^perl.*\.pod$}s ) or $x =~ m{\\d+\\.z\\d+([_.]?\\d+)?} # if looks like a vernum or $x eq lc( $Config::Config{'archname'} ) )) { shift @m } @@ -546,7 +546,7 @@ sub _limit_glob_to_limit_re { sub _actual_filenames { my $dir = shift; my $fn = lc shift; - opendir my $dh, $dir or return; + opendir my ($dh), $dir or return; return map { File::Spec->catdir($dir, $_) } grep { lc $_ eq $fn } readdir $dh; } @@ -588,7 +588,7 @@ sub find { my $fullext = $fullname . $ext; if ( -f $fullext and $self->contains_pod($fullext) ) { print "FOUND: $fullext\n" if $verbose; - if (@parts > 1 && lc $parts[0] eq 'pod' && $IS_CASE_INSENSITIVE && $ext eq '.pod') { + if (@parts > 1 && lc $parts[0] eq 'pod' && $self->is_case_insensitive() && $ext eq '.pod') { # Well, this file could be for a program (perldoc) but we actually # want a module (Pod::Perldoc). So see if there is a .pm with the # proper casing. @@ -611,7 +611,7 @@ sub find { } # Case-insensitively Look for ./pod directories and slip them in. - for my $subdir ( _actual_filenames($dir, 'pod') ) { + for my $subdir ( _actual_filenames($dir, 'pods'), _actual_filenames($dir, 'pod') ) { if (-d $subdir) { $verbose and print "Noticing $subdir and looking there...\n"; unshift @search_dirs, $subdir; @@ -849,6 +849,20 @@ inspected too, and are noted in the pathname2podname return hash. This attribute's default value is false; and normally you won't need to turn it on. +=item $search->is_case_insensitive( I ); + +Pod::Simple::Search will by default internally make an assumption +based on the underlying filesystem where the class file is found +whether it is case insensitive or not. + +If it is determined to be case insensitive, during survey() it may +skip pod files/modules that happen to be equal to names it's already +seen, ignoring case. + +However, it's possible to have distinct files in different directories +that intentionally has the same name, just differing in case, that should +be reported. Hence, you may force the behavior by setting this to true +or false. =item $search->limit_re( I ); @@ -857,7 +871,6 @@ to limit the results just to items whose podnames match the given regexp. Normally this option is not needed, and the more efficient C attribute is used instead. - =item $search->dir_prefix( I ); Setting this attribute to a string value means that the searches should diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/SimpleTree.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/SimpleTree.pm index bff5af84c4b..85dbabcd70e 100644 --- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/SimpleTree.pm +++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/SimpleTree.pm @@ -5,7 +5,7 @@ use strict; use Carp (); use Pod::Simple (); use vars qw( $ATTR_PAD @ISA $VERSION $SORT_ATTRS); -$VERSION = '3.35'; +$VERSION = '3.40'; BEGIN { @ISA = ('Pod::Simple'); *DEBUG = \&Pod::Simple::DEBUG unless defined &DEBUG; diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Subclassing.pod b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Subclassing.pod index 88f85e86de2..f9cb09a52ef 100644 --- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Subclassing.pod +++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Subclassing.pod @@ -98,9 +98,14 @@ nodes that represent preformatted text (from verbatim sections). TODO intro... mention that events are supplied for implicits, like for missing >'s - In the following section, we use XML to represent the event structure -associated with a particular construct. That is, TODO +associated with a particular construct. That is, an opening tag +represents the element start, the attributes of that opening tag are +the attributes given to the callback, and the closing tag represents +the end element. + +Three callback methods must be supplied by a class extending +L to receive the corresponding event: =over @@ -112,8 +117,9 @@ associated with a particular construct. That is, TODO =back -TODO describe - +Here's the comprehensive list of values you can expect as +I in your implementation of C<_handle_element_start> +and C<_handle_element_end>:: =over diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Text.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Text.pm index 66e15f48cce..de50b510eae 100644 --- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Text.pm +++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Text.pm @@ -6,7 +6,7 @@ use Carp (); use Pod::Simple::Methody (); use Pod::Simple (); use vars qw( @ISA $VERSION $FREAKYMODE); -$VERSION = '3.35'; +$VERSION = '3.40'; @ISA = ('Pod::Simple::Methody'); BEGIN { *DEBUG = defined(&Pod::Simple::DEBUG) ? \&Pod::Simple::DEBUG diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/TextContent.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/TextContent.pm index 980612b3132..ad4172b7a31 100644 --- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/TextContent.pm +++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/TextContent.pm @@ -6,7 +6,7 @@ use strict; use Carp (); use Pod::Simple (); use vars qw( @ISA $VERSION ); -$VERSION = '3.35'; +$VERSION = '3.40'; @ISA = ('Pod::Simple'); sub new { diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/TiedOutFH.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/TiedOutFH.pm index a7364dfa585..0dd12c412dd 100644 --- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/TiedOutFH.pm +++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/TiedOutFH.pm @@ -4,7 +4,7 @@ package Pod::Simple::TiedOutFH; use Symbol ('gensym'); use Carp (); use vars qw($VERSION ); -$VERSION = '3.35'; +$VERSION = '3.40'; #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Transcode.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Transcode.pm index a4bb29ffdb6..eb127022827 100644 --- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Transcode.pm +++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Transcode.pm @@ -3,7 +3,7 @@ require 5; package Pod::Simple::Transcode; use strict; use vars qw($VERSION @ISA); -$VERSION = '3.35'; +$VERSION = '3.40'; BEGIN { if(defined &DEBUG) {;} # Okay diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/TranscodeDumb.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/TranscodeDumb.pm index c2069056574..2b675ccb787 100644 --- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/TranscodeDumb.pm +++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/TranscodeDumb.pm @@ -5,7 +5,7 @@ require 5; package Pod::Simple::TranscodeDumb; use strict; use vars qw($VERSION %Supported); -$VERSION = '3.35'; +$VERSION = '3.40'; # This module basically pretends it knows how to transcode, except # only for null-transcodings! We use this when Encode isn't # available. diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/TranscodeSmart.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/TranscodeSmart.pm index e4d4f7eb60e..99f55683ab3 100644 --- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/TranscodeSmart.pm +++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/TranscodeSmart.pm @@ -9,7 +9,7 @@ use strict; use Pod::Simple; require Encode; use vars qw($VERSION ); -$VERSION = '3.35'; +$VERSION = '3.40'; sub is_dumb {0} sub is_smart {1} diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/XHTML.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/XHTML.pm index 8c2cf1a01ba..b9c6269bf98 100644 --- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/XHTML.pm +++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/XHTML.pm @@ -45,7 +45,7 @@ declare the output character set as UTF-8 before parsing, like so: package Pod::Simple::XHTML; use strict; use vars qw( $VERSION @ISA $HAS_HTML_ENTITIES ); -$VERSION = '3.35'; +$VERSION = '3.40'; use Pod::Simple::Methody (); @ISA = ('Pod::Simple::Methody'); @@ -92,7 +92,7 @@ the call to C: In turning L into http://whatever/Foo%3a%3aBar, what to put before the "Foo%3a%3aBar". The default value is -"http://search.cpan.org/perldoc?". +"https://metacpan.org/pod/". =head2 perldoc_url_postfix @@ -247,7 +247,7 @@ sub new { my $self = shift; my $new = $self->SUPER::new(@_); $new->{'output_fh'} ||= *STDOUT{IO}; - $new->perldoc_url_prefix('http://search.cpan.org/perldoc?'); + $new->perldoc_url_prefix('https://metacpan.org/pod/'); $new->man_url_prefix('http://man.he.net/man'); $new->html_charset('ISO-8859-1'); $new->nix_X_codes(1); @@ -685,8 +685,8 @@ sub emit { Resolves a POD link target (typically a module or POD file name) and section name to a URL. The resulting link will be returned for the above examples as: - http://search.cpan.org/perldoc?Net::Ping#INSTALL - http://search.cpan.org/perldoc?perlpodspec + https://metacpan.org/pod/Net::Ping#INSTALL + https://metacpan.org/pod/perlpodspec #SYNOPSIS Note that when there is only a section argument the URL will simply be a link diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/XMLOutStream.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/XMLOutStream.pm index 62fe39549da..cb818a17409 100644 --- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/XMLOutStream.pm +++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/XMLOutStream.pm @@ -5,7 +5,7 @@ use strict; use Carp (); use Pod::Simple (); use vars qw( $ATTR_PAD @ISA $VERSION $SORT_ATTRS); -$VERSION = '3.35'; +$VERSION = '3.40'; BEGIN { @ISA = ('Pod::Simple'); *DEBUG = \&Pod::Simple::DEBUG unless defined &DEBUG; diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/t/encod04.t b/gnu/usr.bin/perl/cpan/Pod-Simple/t/encod04.t index 88727cca521..8f41f98a6cc 100644 --- a/gnu/usr.bin/perl/cpan/Pod-Simple/t/encod04.t +++ b/gnu/usr.bin/perl/cpan/Pod-Simple/t/encod04.t @@ -12,14 +12,14 @@ BEGIN { use strict; use Test; BEGIN { - if ($] lt 5.007_003) { - plan tests => 5, todo => [4, 5]; # Need utf8::decode() to pass #5 - # and isn't available in this - # release - } - else { - plan tests => 5, todo => [4]; - } + plan tests => 6, todo => []; +} + +# fail with the supplied diagnostic + +sub my_nok { + my ($diag) = @_; + ok (1, 0, $diag); } ok 1; @@ -61,16 +61,13 @@ if( $guess ) { if( grep m{Dash $dash}, @output_lines ) { ok 1; } else { - ok 0; - print STDERR "# failed to find expected control character in output\n" + my_nok "failed to find expected control character in output"; } } else { - ok 0; - print STDERR "# parser guessed wrong encoding expected 'CP1252' got '$guess'\n"; + my_nok "parser guessed wrong encoding expected 'CP1252' got '$guess'"; } } else { - ok 0; - print STDERR "# parser failed to detect non-ASCII bytes in input\n"; + my_nok "parser failed to detect non-ASCII bytes in input"; } @@ -95,18 +92,18 @@ else { if( $guess eq 'CP1252' ) { ok 1; } else { - ok 0; - print STDERR "# parser guessed wrong encoding expected 'CP1252' got '$guess'\n"; + my_nok "parser guessed wrong encoding expected 'CP1252' got '$guess'"; } } else { - ok 0; - print STDERR "# parser failed to detect non-ASCII bytes in input\n"; + my_nok "parser failed to detect non-ASCII bytes in input"; } } -# Initial accented character followed by 'smart' apostrophe causes heuristic -# to choose UTF8 (a somewhat contrived example) +# Initial accented character (E acute) followed by 'smart' apostrophe is legal +# CP1252, which should be preferred over UTF-8 because the latter +# interpretation would be "JOS" . \N{LATIN SMALL LETTER TURNED ALPHA} . "S +# PLACE", and that \N{} letter is an IPA one. @output_lines = split m/[\r\n]+/, Pod::Simple::XMLOutStream->_out( qq{ @@ -127,12 +124,10 @@ else { if( $guess eq 'CP1252' ) { ok 1; } else { - ok 0; - print STDERR "# parser guessed wrong encoding expected 'CP1252' got '$guess'\n"; + my_nok "parser guessed wrong encoding expected 'CP1252' got '$guess'"; } } else { - ok 0; - print STDERR "# parser failed to detect non-ASCII bytes in input\n"; + my_nok "parser failed to detect non-ASCII bytes in input"; } } @@ -160,12 +155,40 @@ else { if( $guess eq 'CP1252' ) { ok 1; } else { - ok 0; - print STDERR "# parser guessed wrong encoding expected 'CP1252' got '$guess'\n"; + my_nok "parser guessed wrong encoding expected 'CP1252' got '$guess'"; + } + } else { + my_nok "parser failed to detect non-ASCII bytes in input"; + } +} + +# The following is a real word example of something in CP1252 expressible in +# UTF-8, but doesn't make sense in UTF-8, contributed by Bo Lindbergh. +# Muvrarášša is a Sami word + +@output_lines = split m/[\r\n]+/, Pod::Simple::XMLOutStream->_out( qq{ + +=head1 NAME + +Muvrar\xE1\x9A\x9Aa is a mountain in Norway + +=cut + +} ); + +if (ord("A") != 65) { # ASCII-platform dependent test skipped on this platform + ok (1); +} +else { + ($guess) = "@output_lines" =~ m{Non-ASCII.*?Assuming ([\w-]+)}; + if( $guess ) { + if( $guess eq 'CP1252' ) { + ok 1; + } else { + my_nok "parser guessed wrong encoding expected 'CP1252' got '$guess'"; } } else { - ok 0; - print STDERR "# parser failed to detect non-ASCII bytes in input\n"; + my_nok "parser failed to detect non-ASCII bytes in input"; } } diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/t/html01.t b/gnu/usr.bin/perl/cpan/Pod-Simple/t/html01.t index b4caa39dc66..8d8e528320d 100755 --- a/gnu/usr.bin/perl/cpan/Pod-Simple/t/html01.t +++ b/gnu/usr.bin/perl/cpan/Pod-Simple/t/html01.t @@ -9,7 +9,7 @@ BEGIN { use strict; use Test; -BEGIN { plan tests => 13 }; +BEGIN { plan tests => 14 }; #use Pod::Simple::Debug (10); @@ -137,6 +137,16 @@ ok( "\n
      \n
      Foo
      \n
      \n", ); +{ # Test that strip_verbatim_indent() works. github issue #i5 + my $output; + + my $obj = Pod::Simple::HTML->new; + $obj->strip_verbatim_indent(" "); + $obj->output_string(\$output); + $obj->parse_string_document("=pod\n\n First line\n 2nd line\n"); + ok($output, qr!
      First line\n2nd line
      !s); +} + print "# And one for the road...\n"; ok 1; diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/t/search20.t b/gnu/usr.bin/perl/cpan/Pod-Simple/t/search20.t index cbc3ac3fcf5..1b17c3b021a 100755 --- a/gnu/usr.bin/perl/cpan/Pod-Simple/t/search20.t +++ b/gnu/usr.bin/perl/cpan/Pod-Simple/t/search20.t @@ -78,16 +78,16 @@ require $ascii_order; { my $names = join "|", sort ascii_order values %$where2name; -skip $^O eq 'VMS' ? '-- case may or may not be preserved' : 0, - $names, - "Blorm|Suzzle|Zonk::Pronk|hinkhonk::Glunk|hinkhonk::Vliff|perlflif|perlthng|perlzuk|squaa|squaa::Glunk|squaa::Vliff|squaa::Wowo|zikzik"; +skip $^O eq 'VMS' ? '-- case may or may not be preserved' : 0, + $names, + "Blorm|Suzzle|Zonk::Pronk|hinkhonk::Glunk|hinkhonk::Vliff|perlflif|perlthng|perlzoned|perlzuk|squaa|squaa::Glunk|squaa::Vliff|squaa::Wowo|zikzik"; } { my $names = join "|", sort ascii_order keys %$name2where; -skip $^O eq 'VMS' ? '-- case may or may not be preserved' : 0, - $names, - "Blorm|Suzzle|Zonk::Pronk|hinkhonk::Glunk|hinkhonk::Vliff|perlflif|perlthng|perlzuk|squaa|squaa::Glunk|squaa::Vliff|squaa::Wowo|zikzik"; +skip $^O eq 'VMS' ? '-- case may or may not be preserved' : 0, + $names, + "Blorm|Suzzle|Zonk::Pronk|hinkhonk::Glunk|hinkhonk::Vliff|perlflif|perlthng|perlzoned|perlzuk|squaa|squaa::Glunk|squaa::Vliff|squaa::Wowo|zikzik"; } ok( ($name2where->{'squaa'} || 'huh???'), '/squaa\.pm$/'); diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/t/search22.t b/gnu/usr.bin/perl/cpan/Pod-Simple/t/search22.t index c6b33eea753..6fb498a3318 100755 --- a/gnu/usr.bin/perl/cpan/Pod-Simple/t/search22.t +++ b/gnu/usr.bin/perl/cpan/Pod-Simple/t/search22.t @@ -8,7 +8,7 @@ BEGIN { use strict; use Pod::Simple::Search; use Test; -BEGIN { plan tests => 13 } +BEGIN { plan tests => 15 } print "# ", __FILE__, ": Testing the scanning of several docroots...\n"; @@ -80,17 +80,17 @@ require $ascii_order; { print "# won't show any shadows, since we're just looking at the name2where keys\n"; my $names = join "|", sort ascii_order keys %$name2where; -skip $^O eq 'VMS' ? '-- case may or may not be preserved' : 0, - $names, - "Blorm|Suzzle|Zonk::Pronk|hinkhonk::Glunk|hinkhonk::Vliff|perlflif|perlthng|perlzuk|squaa|squaa::Glunk|squaa::Vliff|squaa::Wowo|zikzik"; +skip $^O eq 'VMS' ? '-- case may or may not be preserved' : 0, + $names, + "Blorm|Suzzle|Zonk::Pronk|hinkhonk::Glunk|hinkhonk::Vliff|perlflif|perlthng|perlzoned|perlzuk|squaa|squaa::Glunk|squaa::Vliff|squaa::Wowo|zikzik"; } { print "# but here we'll see shadowing:\n"; my $names = join "|", sort ascii_order values %$where2name; -skip $^O eq 'VMS' ? '-- case may or may not be preserved' : 0, - $names, - "Blorm|Suzzle|Zonk::Pronk|hinkhonk::Glunk|hinkhonk::Glunk|hinkhonk::Vliff|hinkhonk::Vliff|perlflif|perlthng|perlthng|perlzuk|squaa|squaa::Glunk|squaa::Vliff|squaa::Vliff|squaa::Vliff|squaa::Wowo|zikzik"; +skip $^O eq 'VMS' ? '-- case may or may not be preserved' : 0, + $names, + "Blorm|Suzzle|Zonk::Pronk|hinkhonk::Glunk|hinkhonk::Glunk|hinkhonk::Vliff|hinkhonk::Vliff|perlflif|perlthng|perlthng|perlzoned|perlzuk|squaa|squaa::Glunk|squaa::Vliff|squaa::Vliff|squaa::Vliff|squaa::Wowo|zikzik"; my %count; for(values %$where2name) { ++$count{$_} }; @@ -120,7 +120,9 @@ skip $^O eq 'VMS' ? '-- case may or may not be preserved' : 0, ($name2where->{'squaa::Wowo'} || 'huh???'), '/testlib2/'; - +my $in_pods = $x->find('perlzoned', $here2); +ok $in_pods, qr{^\Q$here2\E}; +ok $in_pods, qr{perlzoned.pod$}; print "# OK, bye from ", __FILE__, "\n"; ok 1; diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/t/search50.t b/gnu/usr.bin/perl/cpan/Pod-Simple/t/search50.t index 126f24a7b1e..0dc9d75a296 100755 --- a/gnu/usr.bin/perl/cpan/Pod-Simple/t/search50.t +++ b/gnu/usr.bin/perl/cpan/Pod-Simple/t/search50.t @@ -23,6 +23,7 @@ ok $x->inc; # make sure inc=1 is the default use Pod::Simple; *pretty = \&Pod::Simple::BlackBox::pretty; +*pretty = \&Pod::Simple::BlackBox::pretty; # avoid 'once' warning my $found = 0; $x->callback(sub { diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/t/whine.t b/gnu/usr.bin/perl/cpan/Pod-Simple/t/whine.t index b33f0a91efa..4ac76e5bd3d 100644 --- a/gnu/usr.bin/perl/cpan/Pod-Simple/t/whine.t +++ b/gnu/usr.bin/perl/cpan/Pod-Simple/t/whine.t @@ -1,6 +1,6 @@ use strict; use warnings; -use Test::More tests => 4; +use Test::More tests => 6; { package Pod::Simple::ErrorFinder; @@ -51,3 +51,23 @@ sub errors { Pod::Simple::ErrorFinder->errors_for_input(@_) } "warning for / in text part of L<>", ); } + +{ + my $input = "=pod\n\nnested LEEE: L|http://baz>\n"; + my $errors = errors("$input"); + is_deeply( + $errors, + { 3 => [ "Nested L<> are illegal. Pretending inner one is X<...> so can continue looking for other errors." ] }, + "warning for nested L<>", + ); +} + +{ + my $input = "=pod\n\nLEEE containing only slash: L< / >\n"; + my $errors = errors("$input"); + is_deeply( + $errors, + { 3 => [ "L<> contains only '/'" ] }, + "warning for L< / > containing only a slash", + ); +} diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/t/xhtml01.t b/gnu/usr.bin/perl/cpan/Pod-Simple/t/xhtml01.t index 01e6f189b42..7ee08652162 100755 --- a/gnu/usr.bin/perl/cpan/Pod-Simple/t/xhtml01.t +++ b/gnu/usr.bin/perl/cpan/Pod-Simple/t/xhtml01.t @@ -18,7 +18,7 @@ isa_ok ($parser, 'Pod::Simple::XHTML'); my $results; -my $PERLDOC = "http://search.cpan.org/perldoc"; +my $PERLDOC = "https://metacpan.org/pod"; my $MANURL = "http://man.he.net/man"; initialize($parser, $results); @@ -541,7 +541,7 @@ $parser->parse_string_document(<<'EOPOD'); A plain paragraph with a L. EOPOD is($results, <<"EOHTML", "Link entity in a paragraph"); -

      A plain paragraph with a Newlines.

      +

      A plain paragraph with a Newlines.

      EOHTML @@ -552,7 +552,7 @@ $parser->parse_string_document(<<'EOPOD'); A plain paragraph with a L. EOPOD is($results, <<"EOHTML", "Link entity in a paragraph"); -

      A plain paragraph with a "Newlines" in perlport.

      +

      A plain paragraph with a "Newlines" in perlport.

      EOHTML @@ -742,16 +742,16 @@ like $results, qr{\Qresolve_pod_page_link('perlpodspec'), - "$PERLDOC?perlpodspec", 'Simple POD link'; + "$PERLDOC/perlpodspec", 'Simple POD link'; is $parser->resolve_pod_page_link(undef, 'SYNOPSIS'), '#SYNOPSIS', 'Simple fragment link'; is $parser->resolve_pod_page_link(undef, 'this that'), '#this-that', 'Fragment link with space'; is $parser->resolve_pod_page_link('perlpod', 'this that'), - "$PERLDOC?perlpod#this-that", + "$PERLDOC/perlpod#this-that", 'POD link with fragment with space'; is $parser->resolve_man_page_link('crontab(5)', 'EXAMPLE CRON FILE'), diff --git a/gnu/usr.bin/perl/cpan/Pod-Usage/t/pod/testp2pt.pl b/gnu/usr.bin/perl/cpan/Pod-Usage/t/pod/testp2pt.pl index cd312453273..720575336c0 100644 --- a/gnu/usr.bin/perl/cpan/Pod-Usage/t/pod/testp2pt.pl +++ b/gnu/usr.bin/perl/cpan/Pod-Usage/t/pod/testp2pt.pl @@ -11,7 +11,7 @@ BEGIN { unshift @INC, $THISDIR; require "testcmp.pl"; import TestCompare; - $PARENTDIR = dirname $THISDIR; + $PARENTDIR = File::Spec->catdir($THISDIR, File::Spec->updir()); push @INC, map { File::Spec->catfile($_, 'lib') } ($PARENTDIR, $THISDIR); } diff --git a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/ListUtil.xs b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/ListUtil.xs index 12f98cde192..5bccc88444d 100644 --- a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/ListUtil.xs +++ b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/ListUtil.xs @@ -2,6 +2,7 @@ * This program is free software; you can redistribute it and/or * modify it under the same terms as Perl itself. */ + #define PERL_NO_GET_CONTEXT /* we want efficiency */ #include #include @@ -14,20 +15,35 @@ # include "ppport.h" #endif +/* For uniqnum, define ACTUAL_NVSIZE to be the number * + * of bytes that are actually used to store the NV */ + +#if defined(USE_LONG_DOUBLE) && LDBL_MANT_DIG == 64 +# define ACTUAL_NVSIZE 10 +#else +# define ACTUAL_NVSIZE NVSIZE +#endif + +/* Detect "DoubleDouble" nvtype */ + +#if defined(USE_LONG_DOUBLE) && LDBL_MANT_DIG == 106 +# define NV_IS_DOUBLEDOUBLE +#endif + #ifndef PERL_VERSION_DECIMAL # define PERL_VERSION_DECIMAL(r,v,s) (r*1000000 + v*1000 + s) #endif #ifndef PERL_DECIMAL_VERSION # define PERL_DECIMAL_VERSION \ - PERL_VERSION_DECIMAL(PERL_REVISION,PERL_VERSION,PERL_SUBVERSION) + PERL_VERSION_DECIMAL(PERL_REVISION,PERL_VERSION,PERL_SUBVERSION) #endif #ifndef PERL_VERSION_GE # define PERL_VERSION_GE(r,v,s) \ - (PERL_DECIMAL_VERSION >= PERL_VERSION_DECIMAL(r,v,s)) + (PERL_DECIMAL_VERSION >= PERL_VERSION_DECIMAL(r,v,s)) #endif #ifndef PERL_VERSION_LE # define PERL_VERSION_LE(r,v,s) \ - (PERL_DECIMAL_VERSION <= PERL_VERSION_DECIMAL(r,v,s)) + (PERL_DECIMAL_VERSION <= PERL_VERSION_DECIMAL(r,v,s)) #endif #if PERL_VERSION_GE(5,6,0) @@ -72,6 +88,12 @@ #define sv_catpvn_flags(b,n,l,f) sv_catpvn(b,n,l) #endif +#if !PERL_VERSION_GE(5,8,0) +static NV Perl_ceil(NV nv) { + return -Perl_floor(-nv); +} +#endif + /* Some platforms have strict exports. And before 5.7.3 cxinc (or Perl_cxinc) was not exported. Therefore platforms like win32, VMS etc have problems so we redefine it here -- GMB @@ -124,6 +146,38 @@ my_sv_copypv(pTHX_ SV *const dsv, SV *const ssv) # define SvNV_nomg SvNV #endif +#if PERL_VERSION_GE(5,16,0) +# define HAVE_UNICODE_PACKAGE_NAMES + +# ifndef sv_sethek +# define sv_sethek(a, b) Perl_sv_sethek(aTHX_ a, b) +# endif + +# ifndef sv_ref +# define sv_ref(dst, sv, ob) my_sv_ref(aTHX_ dst, sv, ob) +static SV * +my_sv_ref(pTHX_ SV *dst, const SV *sv, int ob) +{ + /* cargoculted from perl 5.22's sv.c */ + if(!dst) + dst = sv_newmortal(); + + if(ob && SvOBJECT(sv)) { + if(HvNAME_get(SvSTASH(sv))) + sv_sethek(dst, HvNAME_HEK(SvSTASH(sv))); + else + sv_setpvs(dst, "__ANON__"); + } + else { + const char *reftype = sv_reftype(sv, 0); + sv_setpv(dst, reftype); + } + + return dst; +} +# endif +#endif /* HAVE_UNICODE_PACKAGE_NAMES */ + enum slu_accum { ACC_IV, ACC_NV, @@ -143,6 +197,53 @@ static enum slu_accum accum_type(SV *sv) { /* Magic for set_subname */ static MGVTBL subname_vtbl; +static void MY_initrand(pTHX) +{ +#if (PERL_VERSION < 9) + struct op dmy_op; + struct op *old_op = PL_op; + + /* We call pp_rand here so that Drand01 get initialized if rand() + or srand() has not already been called + */ + memzero((char*)(&dmy_op), sizeof(struct op)); + /* we let pp_rand() borrow the TARG allocated for this XS sub */ + dmy_op.op_targ = PL_op->op_targ; + PL_op = &dmy_op; + (void)*(PL_ppaddr[OP_RAND])(aTHX); + PL_op = old_op; +#else + /* Initialize Drand01 if rand() or srand() has + not already been called + */ + if(!PL_srand_called) { + (void)seedDrand01((Rand_seed_t)Perl_seed(aTHX)); + PL_srand_called = TRUE; + } +#endif +} + +static double MY_callrand(pTHX_ CV *randcv) +{ + dSP; + double ret, dummy; + + ENTER; + PUSHMARK(SP); + PUTBACK; + + call_sv((SV *)randcv, G_SCALAR); + + SPAGAIN; + + ret = modf(POPn, &dummy); /* bound to < 1 */ + if(ret < 0) ret += 1.0; /* bound to 0 <= ret < 1 */ + + LEAVE; + + return ret; +} + MODULE=List::Util PACKAGE=List::Util void @@ -344,9 +445,9 @@ CODE: /* else fallthrough */ } - /* fallthrough to NV now */ retnv = retiv; accum = ACC_NV; + /* FALLTHROUGH */ case ACC_NV: is_product ? (retnv *= slu_sv_value(sv)) : (retnv += slu_sv_value(sv)); @@ -419,10 +520,14 @@ void reduce(block,...) SV *block PROTOTYPE: &@ +ALIAS: + reduce = 0 + reductions = 1 CODE: { SV *ret = sv_newmortal(); int index; + AV *retvals; GV *agv,*bgv,*gv; HV *stash; SV **args = &PL_stack_base[ax]; @@ -431,8 +536,12 @@ CODE: if(cv == Nullcv) croak("Not a subroutine reference"); - if(items <= 1) - XSRETURN_UNDEF; + if(items <= 1) { + if(ix) + XSRETURN(0); + else + XSRETURN_UNDEF; + } agv = gv_fetchpv("a", GV_ADD, SVt_PV); bgv = gv_fetchpv("b", GV_ADD, SVt_PV); @@ -440,6 +549,17 @@ CODE: SAVESPTR(GvSV(bgv)); GvSV(agv) = ret; SvSetMagicSV(ret, args[1]); + + if(ix) { + /* Precreate an AV for return values; -1 for cv, -1 for top index */ + retvals = newAV(); + av_extend(retvals, items-1-1); + + /* so if throw an exception they can be reclaimed */ + SAVEFREESV(retvals); + + av_push(retvals, newSVsv(ret)); + } #ifdef dMULTICALL assert(cv); if(!CvISXSUB(cv)) { @@ -452,6 +572,8 @@ CODE: GvSV(bgv) = args[index]; MULTICALL; SvSetMagicSV(ret, *PL_stack_sp); + if(ix) + av_push(retvals, newSVsv(ret)); } # ifdef PERL_HAS_BAD_MULTICALL_REFCOUNT if(CvDEPTH(multicall_cv) > 1) @@ -470,11 +592,26 @@ CODE: call_sv((SV*)cv, G_SCALAR); SvSetMagicSV(ret, *PL_stack_sp); + if(ix) + av_push(retvals, newSVsv(ret)); } } - ST(0) = ret; - XSRETURN(1); + if(ix) { + int i; + SV **svs = AvARRAY(retvals); + /* steal the SVs from retvals */ + for(i = 0; i < items-1; i++) { + ST(i) = sv_2mortal(svs[i]); + svs[i] = NULL; + } + + XSRETURN(items-1); + } + else { + ST(0) = ret; + XSRETURN(1); + } } void @@ -1105,31 +1242,17 @@ PROTOTYPE: @ CODE: { int index; -#if (PERL_VERSION < 9) - struct op dmy_op; - struct op *old_op = PL_op; + SV *randsv = get_sv("List::Util::RAND", 0); + CV * const randcv = randsv && SvROK(randsv) && SvTYPE(SvRV(randsv)) == SVt_PVCV ? + (CV *)SvRV(randsv) : NULL; - /* We call pp_rand here so that Drand01 get initialized if rand() - or srand() has not already been called - */ - memzero((char*)(&dmy_op), sizeof(struct op)); - /* we let pp_rand() borrow the TARG allocated for this XS sub */ - dmy_op.op_targ = PL_op->op_targ; - PL_op = &dmy_op; - (void)*(PL_ppaddr[OP_RAND])(aTHX); - PL_op = old_op; -#else - /* Initialize Drand01 if rand() or srand() has - not already been called - */ - if(!PL_srand_called) { - (void)seedDrand01((Rand_seed_t)Perl_seed(aTHX)); - PL_srand_called = TRUE; - } -#endif + if(!randcv) + MY_initrand(aTHX); for (index = items ; index > 1 ; ) { - int swap = (int)(Drand01() * (double)(index--)); + int swap = (int)( + (randcv ? MY_callrand(aTHX_ randcv) : Drand01()) * (double)(index--) + ); SV *tmp = ST(swap); ST(swap) = ST(index); ST(index) = tmp; @@ -1138,12 +1261,58 @@ CODE: XSRETURN(items); } +void +sample(...) +PROTOTYPE: $@ +CODE: +{ + IV count = items ? SvUV(ST(0)) : 0; + IV reti = 0; + SV *randsv = get_sv("List::Util::RAND", 0); + CV * const randcv = randsv && SvROK(randsv) && SvTYPE(SvRV(randsv)) == SVt_PVCV ? + (CV *)SvRV(randsv) : NULL; + + if(!count) + XSRETURN(0); + + /* Now we've extracted count from ST(0) the rest of this logic will be a + * lot neater if we move the topmost item into ST(0) so we can just work + * within 0..items-1 */ + ST(0) = POPs; + items--; + + if(count > items) + count = items; + + if(!randcv) + MY_initrand(aTHX); + + /* Partition the stack into ST(0)..ST(reti-1) containing the sampled results + * and ST(reti)..ST(items-1) containing the remaining pending candidates + */ + while(reti < count) { + int index = (int)( + (randcv ? MY_callrand(aTHX_ randcv) : Drand01()) * (double)(items - reti) + ); + + SV *selected = ST(reti + index); + /* preserve the element we're about to stomp on by putting it back into + * the pending partition */ + ST(reti + index) = ST(reti); + + ST(reti) = selected; + reti++; + } + + XSRETURN(reti); +} + void uniq(...) PROTOTYPE: @ ALIAS: - uniqnum = 0 + uniqint = 0 uniqstr = 1 uniq = 2 CODE: @@ -1152,6 +1321,7 @@ CODE: int index; SV **args = &PL_stack_base[ax]; HV *seen; + int seen_undef = 0; if(items == 0 || (items == 1 && !SvGAMAGIC(args[0]) && SvOK(args[0]))) { /* Optimise for the case of the empty list or a defined nonmagic @@ -1162,88 +1332,230 @@ CODE: sv_2mortal((SV *)(seen = newHV())); - if(ix == 0) { - /* uniqnum */ - /* A temporary buffer for number stringification */ - SV *keysv = sv_newmortal(); - - for(index = 0 ; index < items ; index++) { - SV *arg = args[index]; + for(index = 0 ; index < items ; index++) { + SV *arg = args[index]; #ifdef HV_FETCH_EMPTY_HE - HE* he; + HE *he; #endif - if(SvGAMAGIC(arg)) - /* clone the value so we don't invoke magic again */ - arg = sv_mortalcopy(arg); + if(SvGAMAGIC(arg)) + /* clone the value so we don't invoke magic again */ + arg = sv_mortalcopy(arg); - if(SvUOK(arg)) - sv_setpvf(keysv, "%" UVuf, SvUV(arg)); - else if(SvIOK(arg)) - sv_setpvf(keysv, "%" IVdf, SvIV(arg)); + if(ix == 2 && !SvOK(arg)) { + /* special handling of undef for uniq() */ + if(seen_undef) + continue; + + seen_undef++; + + if(GIMME_V == G_ARRAY) + ST(retcount) = arg; + retcount++; + continue; + } + if(ix == 0) { + /* uniqint */ + /* coerce to integer */ +#if PERL_VERSION >= 8 + /* int_amg only appeared in perl 5.8.0 */ + if(SvAMAGIC(arg) && (arg = AMG_CALLun(arg, int))) + ; /* nothing to do */ else - sv_setpvf(keysv, "%" NVgf, SvNV(arg)); +#endif + if(!SvOK(arg) || SvNOK(arg) || SvPOK(arg)) + { + /* Convert undef, NVs and PVs into a well-behaved int */ + NV nv = SvNV(arg); + + if(nv > (NV)UV_MAX) + /* Too positive for UV - use NV */ + arg = newSVnv(Perl_floor(nv)); + else if(nv < (NV)IV_MIN) + /* Too negative for IV - use NV */ + arg = newSVnv(Perl_ceil(nv)); + else if(nv > 0 && (UV)nv > (UV)IV_MAX) + /* Too positive for IV - use UV */ + arg = newSVuv(nv); + else + /* Must now fit into IV */ + arg = newSViv(nv); + + sv_2mortal(arg); + } + } #ifdef HV_FETCH_EMPTY_HE - he = (HE*) hv_common(seen, NULL, SvPVX(keysv), SvCUR(keysv), 0, HV_FETCH_LVALUE | HV_FETCH_EMPTY_HE, NULL, 0); - if (HeVAL(he)) - continue; + he = (HE*) hv_common(seen, arg, NULL, 0, 0, HV_FETCH_LVALUE | HV_FETCH_EMPTY_HE, NULL, 0); + if (HeVAL(he)) + continue; - HeVAL(he) = &PL_sv_undef; + HeVAL(he) = &PL_sv_undef; #else - if(hv_exists(seen, SvPVX(keysv), SvCUR(keysv))) - continue; + if (hv_exists_ent(seen, arg, 0)) + continue; - hv_store(seen, SvPVX(keysv), SvCUR(keysv), &PL_sv_yes, 0); + hv_store_ent(seen, arg, &PL_sv_yes, 0); #endif - if(GIMME_V == G_ARRAY) - ST(retcount) = SvOK(arg) ? arg : sv_2mortal(newSViv(0)); - retcount++; - } + if(GIMME_V == G_ARRAY) + ST(retcount) = SvOK(arg) ? arg : sv_2mortal(newSVpvn("", 0)); + retcount++; + } + + finish: + if(GIMME_V == G_ARRAY) + XSRETURN(retcount); + else + ST(0) = sv_2mortal(newSViv(retcount)); +} + +void +uniqnum(...) +PROTOTYPE: @ +CODE: +{ + int retcount = 0; + int index; + SV **args = &PL_stack_base[ax]; + HV *seen; + /* A temporary buffer for number stringification */ + SV *keysv = sv_newmortal(); + + if(items == 0 || (items == 1 && !SvGAMAGIC(args[0]) && SvOK(args[0]))) { + /* Optimise for the case of the empty list or a defined nonmagic + * singleton. Leave a singleton magical||undef for the regular case */ + retcount = items; + goto finish; } - else { - /* uniqstr or uniq */ - int seen_undef = 0; - for(index = 0 ; index < items ; index++) { - SV *arg = args[index]; + sv_2mortal((SV *)(seen = newHV())); + + for(index = 0 ; index < items ; index++) { + SV *arg = args[index]; + NV nv_arg; #ifdef HV_FETCH_EMPTY_HE - HE *he; + HE* he; #endif - if(SvGAMAGIC(arg)) - /* clone the value so we don't invoke magic again */ - arg = sv_mortalcopy(arg); + if(SvGAMAGIC(arg)) + /* clone the value so we don't invoke magic again */ + arg = sv_mortalcopy(arg); - if(ix == 2 && !SvOK(arg)) { - /* special handling of undef for uniq() */ - if(seen_undef) - continue; + if(SvOK(arg) && !(SvUOK(arg) || SvIOK(arg) || SvNOK(arg))) { +#if PERL_VERSION >= 8 + SvIV(arg); /* sets SVf_IOK/SVf_IsUV if it's an integer */ +#else + SvNV(arg); /* SvIV() sets SVf_IOK even on floats on 5.6 */ +#endif + } +#if NVSIZE > IVSIZE /* $Config{nvsize} > $Config{ivsize} */ + /* Avoid altering arg's flags */ + if(SvUOK(arg)) nv_arg = (NV)SvUV(arg); + else if(SvIOK(arg)) nv_arg = (NV)SvIV(arg); + else nv_arg = SvNV(arg); + + /* use 0 for all zeros */ + if(nv_arg == 0) sv_setpvs(keysv, "0"); + + /* for NaN, use the platform's normal stringification */ + else if (nv_arg != nv_arg) sv_setpvf(keysv, "%" NVgf, nv_arg); +#ifdef NV_IS_DOUBLEDOUBLE + /* If the least significant double is zero, it could be either 0.0 * + * or -0.0. We therefore ignore the least significant double and * + * assign to keysv the bytes of the most significant double only. */ + else if(nv_arg == (double)nv_arg) { + double double_arg = (double)nv_arg; + sv_setpvn(keysv, (char *) &double_arg, 8); + } +#endif + else { + /* Use the byte structure of the NV. * + * ACTUAL_NVSIZE == sizeof(NV) minus the number of bytes * + * that are allocated but never used. (It is only the 10-byte * + * extended precision long double that allocates bytes that are * + * never used. For all other NV types ACTUAL_NVSIZE == sizeof(NV). */ + sv_setpvn(keysv, (char *) &nv_arg, ACTUAL_NVSIZE); + } +#else /* $Config{nvsize} == $Config{ivsize} == 8 */ + if( SvIOK(arg) || !SvOK(arg) ) { - seen_undef++; + /* It doesn't matter if SvUOK(arg) is TRUE */ + IV iv = SvIV(arg); - if(GIMME_V == G_ARRAY) - ST(retcount) = arg; - retcount++; - continue; + /* use "0" for all zeros */ + if(iv == 0) sv_setpvs(keysv, "0"); + + else { + int uok = SvUOK(arg); + int sign = ( iv > 0 || uok ) ? 1 : -1; + + /* Set keysv to the bytes of SvNV(arg) if and only if the integer value * + * held by arg can be represented exactly as a double - ie if there are * + * no more than 51 bits between its least significant set bit and its * + * most significant set bit. * + * The neatest approach I could find was provided by roboticus at: * + * https://www.perlmonks.org/?node_id=11113490 * + * First, identify the lowest set bit and assign its value to an IV. * + * Note that this value will always be > 0, and always a power of 2. */ + IV lowest_set = iv & -iv; + + /* Second, shift it left 53 bits to get location of the first bit * + * beyond arg's highest "allowed" set bit. * + * NOTE: If lowest set bit is initially far enough left, then this left * + * shift operation will result in a value of 0, which is fine. * + * Then subtract 1 so that all of the ("allowed") bits below the set bit * + * are 1 && all other ("disallowed") bits are set to 0. * + * (If the value prior to subtraction was 0, then subtracting 1 will set * + * all bits - which is also fine.) */ + UV valid_bits = (lowest_set << 53) - 1; + + /* The value of arg can be exactly represented by a double unless one * + * or more of its "disallowed" bits are set - ie if iv & (~valid_bits) * + * is untrue. However, if (iv < 0 && !SvUOK(arg)) we need to multiply iv * + * by -1 prior to performing that '&' operation - so multiply iv by sign.*/ + if( !((iv * sign) & (~valid_bits)) ) { + /* Avoid altering arg's flags */ + nv_arg = uok ? (NV)SvUV(arg) : (NV)SvIV(arg); + sv_setpvn(keysv, (char *) &nv_arg, 8); + } + else { + /* Read in the bytes, rather than the numeric value of the IV/UV as * + * this is more efficient, despite having to sv_catpvn an extra byte.*/ + sv_setpvn(keysv, (char *) &iv, 8); + /* We add an extra byte to distinguish between an IV/UV and an NV. * + * We also use that byte to distinguish between a -ve IV and a UV. */ + if(uok) sv_catpvn(keysv, "U", 1); + else sv_catpvn(keysv, "I", 1); + } } + } + else { + nv_arg = SvNV(arg); + + /* for NaN, use the platform's normal stringification */ + if (nv_arg != nv_arg) sv_setpvf(keysv, "%" NVgf, nv_arg); + + /* use "0" for all zeros */ + else if(nv_arg == 0) sv_setpvs(keysv, "0"); + else sv_setpvn(keysv, (char *) &nv_arg, 8); + } +#endif #ifdef HV_FETCH_EMPTY_HE - he = (HE*) hv_common(seen, arg, NULL, 0, 0, HV_FETCH_LVALUE | HV_FETCH_EMPTY_HE, NULL, 0); - if (HeVAL(he)) - continue; + he = (HE*) hv_common(seen, NULL, SvPVX(keysv), SvCUR(keysv), 0, HV_FETCH_LVALUE | HV_FETCH_EMPTY_HE, NULL, 0); + if (HeVAL(he)) + continue; - HeVAL(he) = &PL_sv_undef; + HeVAL(he) = &PL_sv_undef; #else - if (hv_exists_ent(seen, arg, 0)) - continue; + if(hv_exists(seen, SvPVX(keysv), SvCUR(keysv))) + continue; - hv_store_ent(seen, arg, &PL_sv_yes, 0); + hv_store(seen, SvPVX(keysv), SvCUR(keysv), &PL_sv_yes, 0); #endif - if(GIMME_V == G_ARRAY) - ST(retcount) = SvOK(arg) ? arg : sv_2mortal(newSVpvn("", 0)); - retcount++; - } + if(GIMME_V == G_ARRAY) + ST(retcount) = SvOK(arg) ? arg : sv_2mortal(newSViv(0)); + retcount++; } finish: @@ -1302,7 +1614,7 @@ CODE: ST(0) = boolSV((SvPOK(sv) || SvPOKp(sv)) && (SvNIOK(sv) || SvNIOKp(sv))); XSRETURN(1); -char * +SV * blessed(sv) SV *sv PROTOTYPE: $ @@ -1312,8 +1624,12 @@ CODE: if(!(SvROK(sv) && SvOBJECT(SvRV(sv)))) XSRETURN_UNDEF; - - RETVAL = (char*)sv_reftype(SvRV(sv),TRUE); +#ifdef HAVE_UNICODE_PACKAGE_NAMES + RETVAL = newSVsv(sv_ref(NULL, SvRV(sv), TRUE)); +#else + RETVAL = newSV(0); + sv_setpv(RETVAL, sv_reftype(SvRV(sv), TRUE)); +#endif } OUTPUT: RETVAL @@ -1601,15 +1917,18 @@ PPCODE: /* under debugger, provide information about sub location */ if (PL_DBsub && CvGV(cv)) { HV* DBsub = GvHV(PL_DBsub); - HE* old_data; + HE* old_data = NULL; GV* oldgv = CvGV(cv); HV* oldhv = GvSTASH(oldgv); - SV* old_full_name = sv_2mortal(newSVpvn_flags(HvNAME(oldhv), HvNAMELEN_get(oldhv), HvNAMEUTF8(oldhv) ? SVf_UTF8 : 0)); - sv_catpvn(old_full_name, "::", 2); - sv_catpvn_flags(old_full_name, GvNAME(oldgv), GvNAMELEN(oldgv), GvNAMEUTF8(oldgv) ? SV_CATUTF8 : SV_CATBYTES); - old_data = hv_fetch_ent(DBsub, old_full_name, 0, 0); + if (oldhv) { + SV* old_full_name = sv_2mortal(newSVpvn_flags(HvNAME(oldhv), HvNAMELEN_get(oldhv), HvNAMEUTF8(oldhv) ? SVf_UTF8 : 0)); + sv_catpvn(old_full_name, "::", 2); + sv_catpvn_flags(old_full_name, GvNAME(oldgv), GvNAMELEN(oldgv), GvNAMEUTF8(oldgv) ? SV_CATUTF8 : SV_CATBYTES); + + old_data = hv_fetch_ent(DBsub, old_full_name, 0, 0); + } if (old_data && HeVAL(old_data)) { SV* new_full_name = sv_2mortal(newSVpvn_flags(HvNAME(stash), HvNAMELEN_get(stash), HvNAMEUTF8(stash) ? SVf_UTF8 : 0)); @@ -1660,6 +1979,7 @@ subname(code) PREINIT: CV *cv; GV *gv; + const char *stashname; PPCODE: if (!SvROK(code) && SvGMAGICAL(code)) mg_get(code); @@ -1670,7 +1990,12 @@ PPCODE: if(!(gv = CvGV(cv))) XSRETURN(0); - mPUSHs(newSVpvf("%s::%s", HvNAME(GvSTASH(gv)), GvNAME(gv))); + if(GvSTASH(gv)) + stashname = HvNAME(GvSTASH(gv)); + else + stashname = "__ANON__"; + + mPUSHs(newSVpvf("%s::%s", stashname, GvNAME(gv))); XSRETURN(1); BOOT: diff --git a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/List/Util.pm b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/List/Util.pm index b650d3585ac..e582d608743 100644 --- a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/List/Util.pm +++ b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/List/Util.pm @@ -12,16 +12,20 @@ require Exporter; our @ISA = qw(Exporter); our @EXPORT_OK = qw( - all any first min max minstr maxstr none notall product reduce sum sum0 shuffle uniq uniqnum uniqstr + all any first min max minstr maxstr none notall product reduce reductions sum sum0 + sample shuffle uniq uniqint uniqnum uniqstr head tail pairs unpairs pairkeys pairvalues pairmap pairgrep pairfirst ); -our $VERSION = "1.50"; +our $VERSION = "1.55"; our $XS_VERSION = $VERSION; -$VERSION = eval $VERSION; +$VERSION =~ tr/_//d; require XSLoader; XSLoader::load('List::Util', $XS_VERSION); +# Used by shuffle() +our $RAND; + sub import { my $pkg = caller; @@ -38,6 +42,7 @@ sub import # For objects returned by pairs() sub List::Util::_Pair::key { shift->[0] } sub List::Util::_Pair::value { shift->[1] } +sub List::Util::_Pair::TO_JSON { [ @{+shift} ] } =head1 NAME @@ -46,13 +51,13 @@ List::Util - A selection of general-utility list subroutines =head1 SYNOPSIS use List::Util qw( - reduce any all none notall first + reduce any all none notall first reductions max maxstr min minstr product sum sum0 pairs unpairs pairkeys pairvalues pairfirst pairgrep pairmap - shuffle uniq uniqnum uniqstr + shuffle uniq uniqint uniqnum uniqstr ); =head1 DESCRIPTION @@ -68,7 +73,8 @@ By default C does not export any subroutines. =head1 LIST-REDUCTION FUNCTIONS -The following set of functions all reduce a list down to a single value. +The following set of functions all apply a given block of code to a list of +values. =cut @@ -128,8 +134,28 @@ block that accumulates lengths by writing this instead as: $total = reduce { $a + length $b } 0, @strings -The remaining list-reduction functions are all specialisations of this generic -idea. +The other scalar-returning list reduction functions are all specialisations of +this generic idea. + +=head2 reductions + + @results = reductions { BLOCK } @list + +I + +Similar to C except that it also returns the intermediate values along +with the final result. As before, C<$a> is set to the first element of the +given list, and the C is then called once for remaining item in the +list set into C<$b>, with the result being captured for return as well as +becoming the new value for C<$a>. + +The returned list will begin with the initial value for C<$a>, followed by +each return value from the block in order. The final value of the result will +be identical to what the C function would have returned given the same +block and list. + + reduce { "$a-$b" } "a".."d" # "a-b-c-d" + reductions { "$a-$b" } "a".."d" # "a", "a-b", "a-b-c", "a-b-c-d" =head2 any @@ -341,6 +367,9 @@ equivalent: ... } +Since version C<1.51> they also have a C method to ease +serialisation. + =head2 unpairs my @kvlist = unpairs @pairs @@ -485,6 +514,25 @@ Returns the values of the input in a random order @cards = shuffle 0..51 # 0..51 in a random order +This function is affected by the C<$RAND> variable. + +=cut + +=head2 sample + + my @items = sample $count, @values + +I + +Randomly select the given number of elements from the input list. Any given +position in the input list will be selected at most once. + +If there are fewer than C<$count> items in the list then the function will +return once all of them have been randomly selected; effectively the function +behaves similarly to L. + +This function is affected by the C<$RAND> variable. + =head2 uniq my @subset = uniq @values @@ -505,6 +553,28 @@ string, and no warning will be produced. It is left as-is in the returned list. Subsequent C values are still considered identical to the first, and will be removed. +=head2 uniqint + + my @subset = uniqint @values + +I + +Filters a list of values to remove subsequent duplicates, as judged by an +integer numerical equality test. Preserves the order of unique elements, and +retains the first value of any duplicate set. Values in the returned list will +be coerced into integers. + + my $count = uniqint @values + +In scalar context, returns the number of elements that would have been +returned as a list. + +Note that C is treated much as other numerical operations treat it; it +compares equal to zero but additionally produces a warning if such warnings +are enabled (C). In addition, an C in +the returned list is coerced into a numerical zero, so that the entire list of +values returned by C are well-behaved as integers. + =head2 uniqnum my @subset = uniqnum @values @@ -557,6 +627,8 @@ entire list of values returned by C are well-behaved as strings. my @values = head $size, @list; +I + Returns the first C<$size> elements from C<@list>. If C<$size> is negative, returns all but the last C<$size> elements from C<@list>. @@ -570,6 +642,8 @@ all but the last C<$size> elements from C<@list>. my @values = tail $size, @list; +I + Returns the last C<$size> elements from C<@list>. If C<$size> is negative, returns all but the first C<$size> elements from C<@list>. @@ -579,6 +653,21 @@ all but the first C<$size> elements from C<@list>. @result = tail -2, qw( foo bar baz ); # baz +=head1 CONFIGURATION VARIABLES + +=head2 $RAND + + local $List::Util::RAND = sub { ... }; + +I + +This package variable is used by code which needs to generate random numbers +(such as the L and L functions). If set to a CODE reference +it provides an alternative to perl's builtin C function. When a new +random number is needed this function will be invoked with no arguments and is +expected to return a floating-point value, of which only the fractional part +will be used. + =head1 KNOWN BUGS =head2 RT #95409 diff --git a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/List/Util/XS.pm b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/List/Util/XS.pm index c8c066f8256..88f663f0ec4 100644 --- a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/List/Util/XS.pm +++ b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/List/Util/XS.pm @@ -3,8 +3,8 @@ use strict; use warnings; use List::Util; -our $VERSION = "1.50"; # FIXUP -$VERSION = eval $VERSION; # FIXUP +our $VERSION = "1.55"; # FIXUP +$VERSION =~ tr/_//d; # FIXUP 1; __END__ diff --git a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/Scalar/Util.pm b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/Scalar/Util.pm index 69821587059..a7345aad78a 100644 --- a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/Scalar/Util.pm +++ b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/Scalar/Util.pm @@ -17,8 +17,8 @@ our @EXPORT_OK = qw( dualvar isdual isvstring looks_like_number openhandle readonly set_prototype tainted ); -our $VERSION = "1.50"; -$VERSION = eval $VERSION; +our $VERSION = "1.55"; +$VERSION =~ tr/_//d; require List::Util; # List::Util loads the XS List::Util->VERSION( $VERSION ); # Ensure we got the right XS version (RT#100863) @@ -134,6 +134,11 @@ is returned. $obj = bless {}, "Foo"; $type = reftype $obj; # HASH +Note that for internal reasons, all precompiled regexps (C) are +blessed references; thus C returns the package name string C<"Regexp"> +on these but C will return the underlying C structure type of +C<"REGEXP"> in all capitals. + =head2 weaken weaken( $ref ); @@ -276,8 +281,8 @@ L. my $fh = openhandle( $fh ); -Returns C<$fh> itself if C<$fh> may be used as a filehandle and is open, or is -is a tied handle. Otherwise C is returned. +Returns C<$fh> itself, if C<$fh> may be used as a filehandle and is open, or if +it is a tied handle. Otherwise C is returned. $fh = openhandle(*STDIN); # \*STDIN $fh = openhandle(\*STDIN); # \*STDIN diff --git a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/Sub/Util.pm b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/Sub/Util.pm index edcc6544f6e..d7b59aebab8 100644 --- a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/Sub/Util.pm +++ b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/Sub/Util.pm @@ -15,8 +15,8 @@ our @EXPORT_OK = qw( subname set_subname ); -our $VERSION = "1.50"; -$VERSION = eval $VERSION; +our $VERSION = "1.55"; +$VERSION =~ tr/_//d; require List::Util; # as it has the XS List::Util->VERSION( $VERSION ); # Ensure we got the right XS version (RT#100863) @@ -95,8 +95,10 @@ I Returns the name of the given C<$code> reference, if it has one. Normal named subs will give a fully-qualified name consisting of the package and the localname separated by C<::>. Anonymous code references will give C<__ANON__> -as the localname. If a name has been set using L, this name will -be returned instead. +as the localname. If the package the code was compiled in has been deleted +(e.g. using C from L), C<__ANON__> will be returned as +the package name. If a name has been set using L, this name will be +returned instead. This function was inspired by C from L. The remaining functions that C implements can easily be emulated diff --git a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/blessed.t b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/blessed.t index 21d3a9ade49..49eb355ffc5 100644 --- a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/blessed.t +++ b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/blessed.t @@ -3,28 +3,28 @@ use strict; use warnings; -use Test::More tests => 11; +use Test::More tests => 12; use Scalar::Util qw(blessed); my $t; -ok(!defined blessed(undef), 'undef is not blessed'); -ok(!defined blessed(1), 'Numbers are not blessed'); -ok(!defined blessed('A'), 'Strings are not blessed'); -ok(!defined blessed({}), 'Unblessed HASH-ref'); -ok(!defined blessed([]), 'Unblessed ARRAY-ref'); -ok(!defined blessed(\$t), 'Unblessed SCALAR-ref'); +ok(!defined blessed(undef), 'undef is not blessed'); +ok(!defined blessed(1), 'Numbers are not blessed'); +ok(!defined blessed('A'), 'Strings are not blessed'); +ok(!defined blessed({}), 'Unblessed HASH-ref'); +ok(!defined blessed([]), 'Unblessed ARRAY-ref'); +ok(!defined blessed(\$t), 'Unblessed SCALAR-ref'); my $x; $x = bless [], "ABC"; -is(blessed($x), "ABC", 'blessed ARRAY-ref'); +is(blessed($x), "ABC", 'blessed ARRAY-ref'); $x = bless {}, "DEF"; -is(blessed($x), "DEF", 'blessed HASH-ref'); +is(blessed($x), "DEF", 'blessed HASH-ref'); $x = bless {}, "0"; -cmp_ok(blessed($x), "eq", "0", 'blessed HASH-ref'); +cmp_ok(blessed($x), "eq", "0", 'blessed HASH-ref'); { my $blessed = do { @@ -46,3 +46,11 @@ cmp_ok(blessed($x), "eq", "0", 'blessed HASH-ref'); ::is( ::blessed($obj), __PACKAGE__, "blessed on broken isa() and can()" ); } +SKIP: { + # Unicode package names only supported in perl 5.16 onwards + skip "Unicode package names are not supported", 1 if $] < 5.016; + + my $utf8_pack= "X\x{100}"; + my $obj= bless {}, $utf8_pack; + ::is( ::blessed($obj), $utf8_pack, "blessed preserves utf8ness for utf8 class names" ); +} diff --git a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/dualvar.t b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/dualvar.t index 08dff11778e..bd77c969b5a 100644 --- a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/dualvar.t +++ b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/dualvar.t @@ -5,8 +5,8 @@ use warnings; use Scalar::Util (); use Test::More (grep { /dualvar/ } @Scalar::Util::EXPORT_FAIL) - ? (skip_all => 'dualvar requires XS version') - : (tests => 41); + ? (skip_all => 'dualvar requires XS version') + : (tests => 41); use Config; Scalar::Util->import('dualvar'); @@ -15,44 +15,44 @@ Scalar::Util->import('isdual'); my $var; $var = dualvar( 2.2,"string"); -ok( isdual($var), 'Is a dualvar'); -ok( $var == 2.2, 'Numeric value'); -ok( $var eq "string", 'String value'); +ok( isdual($var), 'Is a dualvar'); +ok( $var == 2.2, 'Numeric value'); +ok( $var eq "string", 'String value'); my $var2 = $var; -ok( isdual($var2), 'Is a dualvar'); -ok( $var2 == 2.2, 'copy Numeric value'); -ok( $var2 eq "string", 'copy String value'); +ok( isdual($var2), 'Is a dualvar'); +ok( $var2 == 2.2, 'copy Numeric value'); +ok( $var2 eq "string", 'copy String value'); $var++; -ok( ! isdual($var), 'No longer dualvar'); -ok( $var == 3.2, 'inc Numeric value'); -ok( $var ne "string", 'inc String value'); +ok( ! isdual($var), 'No longer dualvar'); +ok( $var == 3.2, 'inc Numeric value'); +ok( $var ne "string", 'inc String value'); my $numstr = "10.2"; my $numtmp = int($numstr); # use $numstr as an int $var = dualvar($numstr, ""); -ok( isdual($var), 'Is a dualvar'); -ok( $var == $numstr, 'NV'); +ok( isdual($var), 'Is a dualvar'); +ok( $var == $numstr, 'NV'); SKIP: { skip("dualvar with UV value known to fail with $]",3) if $] < 5.006_001; my $bits = ($Config{'use64bitint'}) ? 63 : 31; $var = dualvar(1<<$bits, ""); - ok( isdual($var), 'Is a dualvar'); - ok( $var == (1<<$bits), 'UV 1'); - ok( $var > 0, 'UV 2'); + ok( isdual($var), 'Is a dualvar'); + ok( $var == (1<<$bits), 'UV 1'); + ok( $var > 0, 'UV 2'); } # Create a dualvar "the old fashioned way" $var = "10"; -ok( ! isdual($var), 'Not a dualvar'); +ok( ! isdual($var), 'Not a dualvar'); my $foo = $var + 0; -ok( isdual($var), 'Is a dualvar'); +ok( isdual($var), 'Is a dualvar'); { package Tied; @@ -63,9 +63,9 @@ ok( isdual($var), 'Is a dualvar'); tie my $tied, 'Tied'; $var = dualvar($tied, "ok"); -ok(isdual($var), 'Is a dualvar'); -ok($var == 7.5, 'Tied num'); -ok($var eq 'ok', 'Tied str'); +ok(isdual($var), 'Is a dualvar'); +ok($var == 7.5, 'Tied num'); +ok($var eq 'ok', 'Tied str'); SKIP: { diff --git a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/first.t b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/first.t index ba7726ae562..3f008e703c0 100644 --- a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/first.t +++ b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/first.t @@ -5,10 +5,10 @@ use warnings; use List::Util qw(first); use Test::More; -plan tests => 22 + ($::PERL_ONLY ? 0 : 2); +plan tests => 24; my $v; -ok(defined &first, 'defined'); +ok(defined &first, 'defined'); $v = first { 8 == ($_ - 1) } 9,4,5,6; is($v, 9, 'one more than 8'); @@ -20,7 +20,7 @@ $v = first { 0 }; is($v, undef, 'no args'); $v = first { $_->[1] le "e" and "e" le $_->[2] } - [qw(a b c)], [qw(d e f)], [qw(g h i)]; + [qw(a b c)], [qw(d e f)], [qw(g h i)]; is_deeply($v, [qw(d e f)], 'reference args'); # Check that eval{} inside the block works correctly @@ -89,11 +89,9 @@ SKIP: { is(&Internals::SvREFCNT(\&huge), $refcnt, "Refcount unchanged"); } -# The remainder of the tests are only relevant for the XS -# implementation. The Perl-only implementation behaves differently -# (and more flexibly) in a way that we can't emulate from XS. -if (!$::PERL_ONLY) { SKIP: { - +# These tests are only relevant for the real multicall implementation. The +# psuedo-multicall implementation behaves differently. +SKIP: { $List::Util::REAL_MULTICALL ||= 0; # Avoid use only once skip("Poor man's MULTICALL can't cope", 2) if !$List::Util::REAL_MULTICALL; @@ -105,8 +103,7 @@ if (!$::PERL_ONLY) { SKIP: { # Can we goto a subroutine? eval {()=first{goto sub{}} 1,2;}; like($@, qr/^Can't goto subroutine from a sort sub/, "goto sub"); - -} } +} use constant XSUBC_TRUE => 1; use constant XSUBC_FALSE => 0; diff --git a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/isvstring.t b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/isvstring.t index 9d345aa26fa..3649d41c59f 100644 --- a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/isvstring.t +++ b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/isvstring.t @@ -6,18 +6,18 @@ use warnings; $|=1; use Scalar::Util (); use Test::More (grep { /isvstring/ } @Scalar::Util::EXPORT_FAIL) - ? (skip_all => 'isvstring requires XS version') - : (tests => 3); + ? (skip_all => 'isvstring requires XS version') + : (tests => 3); Scalar::Util->import(qw[isvstring]); my $vs = ord("A") == 193 ? 241.75.240 : 49.46.48; -ok( $vs == "1.0", 'dotted num'); -ok( isvstring($vs), 'isvstring'); +ok( $vs == "1.0", 'dotted num'); +ok( isvstring($vs), 'isvstring'); my $sv = "1.0"; -ok( !isvstring($sv), 'not isvstring'); +ok( !isvstring($sv), 'not isvstring'); diff --git a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/lln.t b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/lln.t index df9ea3aea93..84583446716 100644 --- a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/lln.t +++ b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/lln.t @@ -10,18 +10,18 @@ foreach my $num (qw(1 -1 +1 1.0 +1.0 -1.0 -1.0e-12)) { ok(looks_like_number($num), "'$num'"); } -is(!!looks_like_number("Inf"), $] >= 5.006001, 'Inf'); -is(!!looks_like_number("Infinity"), $] >= 5.008, 'Infinity'); -is(!!looks_like_number("NaN"), $] >= 5.008, 'NaN'); -is(!!looks_like_number("foo"), '', 'foo'); -is(!!looks_like_number(undef), '', 'undef'); -is(!!looks_like_number({}), '', 'HASH Ref'); -is(!!looks_like_number([]), '', 'ARRAY Ref'); +is(!!looks_like_number("Inf"), $] >= 5.006001, 'Inf'); +is(!!looks_like_number("Infinity"), $] >= 5.008, 'Infinity'); +is(!!looks_like_number("NaN"), $] >= 5.008, 'NaN'); +is(!!looks_like_number("foo"), '', 'foo'); +is(!!looks_like_number(undef), '', 'undef'); +is(!!looks_like_number({}), '', 'HASH Ref'); +is(!!looks_like_number([]), '', 'ARRAY Ref'); use Math::BigInt; my $bi = Math::BigInt->new('1234567890'); -is(!!looks_like_number($bi), 1, 'Math::BigInt'); -is(!!looks_like_number("$bi"), 1, 'Stringified Math::BigInt'); +is(!!looks_like_number($bi), 1, 'Math::BigInt'); +is(!!looks_like_number("$bi"), 1, 'Stringified Math::BigInt'); { package Foo; sub TIEHASH { bless {} } @@ -29,9 +29,9 @@ sub FETCH { $_[1] } } my %foo; tie %foo, 'Foo'; -is(!!looks_like_number($foo{'abc'}), '', 'Tied'); -is(!!looks_like_number($foo{'123'}), 1, 'Tied'); +is(!!looks_like_number($foo{'abc'}), '', 'Tied'); +is(!!looks_like_number($foo{'123'}), 1, 'Tied'); -is(!!looks_like_number("\x{1815}"), '', 'MONGOLIAN DIGIT FIVE'); +is(!!looks_like_number("\x{1815}"), '', 'MONGOLIAN DIGIT FIVE'); # We should copy some of perl core tests like t/base/num.t here diff --git a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/pair.t b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/pair.t index e65123cc2c7..7d7a6a9bb59 100644 --- a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/pair.t +++ b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/pair.t @@ -3,8 +3,9 @@ use strict; use warnings; -use Test::More tests => 27; +use Test::More tests => 29; use List::Util qw(pairgrep pairfirst pairmap pairs unpairs pairkeys pairvalues); +use Scalar::Util qw(blessed); no warnings 'misc'; # avoid "Odd number of elements" warnings most of the time @@ -104,6 +105,10 @@ is_deeply( [ pairs one => 1, two => ], my @p = pairs one => 1, two => 2; is( $p[0]->key, "one", 'pairs ->key' ); is( $p[0]->value, 1, 'pairs ->value' ); + is_deeply( $p[0]->TO_JSON, + [ one => 1 ], + 'pairs ->TO_JSON' ); + ok( !blessed($p[0]->TO_JSON) , 'pairs ->TO_JSON is not blessed' ); } is_deeply( [ unpairs [ four => 4 ], [ five => 5 ], [ six => 6 ] ], diff --git a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/readonly.t b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/readonly.t index c8e19ff4c85..1333adeb4fc 100644 --- a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/readonly.t +++ b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/readonly.t @@ -6,26 +6,26 @@ use warnings; use Scalar::Util qw(readonly); use Test::More tests => 11; -ok( readonly(1), 'number constant'); +ok( readonly(1), 'number constant'); my $var = 2; -ok( !readonly($var), 'number variable'); -is( $var, 2, 'no change to number variable'); +ok( !readonly($var), 'number variable'); +is( $var, 2, 'no change to number variable'); -ok( readonly("fred"), 'string constant'); +ok( readonly("fred"), 'string constant'); $var = "fred"; -ok( !readonly($var), 'string variable'); -is( $var, 'fred', 'no change to string variable'); +ok( !readonly($var), 'string variable'); +is( $var, 'fred', 'no change to string variable'); $var = \2; -ok( !readonly($var), 'reference to constant'); -ok( readonly($$var), 'de-reference to constant'); +ok( !readonly($var), 'reference to constant'); +ok( readonly($$var), 'de-reference to constant'); -ok( !readonly(*STDOUT), 'glob'); +ok( !readonly(*STDOUT), 'glob'); sub try { diff --git a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/reduce.t b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/reduce.t index 848c34fb221..67fdbaac228 100644 --- a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/reduce.t +++ b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/reduce.t @@ -5,25 +5,25 @@ use warnings; use List::Util qw(reduce min); use Test::More; -plan tests => 30 + ($::PERL_ONLY ? 0 : 2); +plan tests => 33; my $v = reduce {}; -is( $v, undef, 'no args'); +is( $v, undef, 'no args'); $v = reduce { $a / $b } 756,3,7,4; -is( $v, 9, '4-arg divide'); +is( $v, 9, '4-arg divide'); $v = reduce { $a / $b } 6; -is( $v, 6, 'one arg'); +is( $v, 6, 'one arg'); my @a = map { rand } 0 .. 20; $v = reduce { $a < $b ? $a : $b } @a; -is( $v, min(@a), 'min'); +is( $v, min(@a), 'min'); @a = map { pack("C", int(rand(256))) } 0 .. 20; $v = reduce { $a . $b } @a; -is( $v, join("",@a), 'concat'); +is( $v, join("",@a), 'concat'); sub add { my($aa, $bb) = @_; @@ -31,26 +31,26 @@ sub add { } $v = reduce { my $t="$a $b\n"; 0+add($a, $b) } 3, 2, 1; -is( $v, 6, 'call sub'); +is( $v, 6, 'call sub'); # Check that eval{} inside the block works correctly $v = reduce { eval { die }; $a + $b } 0,1,2,3,4; -is( $v, 10, 'use eval{}'); +is( $v, 10, 'use eval{}'); $v = !defined eval { reduce { die if $b > 2; $a + $b } 0,1,2,3,4 }; ok($v, 'die'); sub foobar { reduce { (defined(wantarray) && !wantarray) ? $a+1 : 0 } 0,1,2,3 } ($v) = foobar(); -is( $v, 3, 'scalar context'); +is( $v, 3, 'scalar context'); sub add2 { $a + $b } $v = reduce \&add2, 1,2,3; -is( $v, 6, 'sub reference'); +is( $v, 6, 'sub reference'); $v = reduce { add2() } 3,4,5; -is( $v, 12, 'call sub'); +is( $v, 12, 'call sub'); $v = reduce { eval "$a + $b" } 1,2,3; @@ -125,11 +125,9 @@ SKIP: { is($ok, '', 'Not a subroutine reference'); } -# The remainder of the tests are only relevant for the XS -# implementation. The Perl-only implementation behaves differently -# (and more flexibly) in a way that we can't emulate from XS. -if (!$::PERL_ONLY) { SKIP: { - +# These tests are only relevant for the real multicall implementation. The +# psuedo-multicall implementation behaves differently. +SKIP: { $List::Util::REAL_MULTICALL ||= 0; # Avoid use only once skip("Poor man's MULTICALL can't cope", 2) if !$List::Util::REAL_MULTICALL; @@ -141,8 +139,12 @@ if (!$::PERL_ONLY) { SKIP: { # Can we goto a subroutine? eval {()=reduce{goto sub{}} 1,2;}; like($@, qr/^Can't goto subroutine from a sort sub/, "goto sub"); +} -} } +{ + my @ret = reduce { $a + $b } 1 .. 5; + is_deeply( \@ret, [ 15 ], 'reduce in list context yields only final answer' ); +} # XSUB callback use constant XSUBC => 42; @@ -162,4 +164,4 @@ ok($@ =~ /^Not a subroutine reference/, 'check for code reference'); my @names = ("a\x{100}c", "d\x{101}efgh", 'ijk'); my $longest = reduce { length($a) > length($b) ? $a : $b } @names; -is( length($longest), 6, 'missing SMG rt#121992'); +is( length($longest), 6, 'missing SMG rt#121992'); diff --git a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/refaddr.t b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/refaddr.t index 8d7c441bb32..91b6fa9ec68 100644 --- a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/refaddr.t +++ b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/refaddr.t @@ -64,9 +64,10 @@ foreach my $r ({}, \$t, [], \*F, sub {}) { package FooBar; -use overload '0+' => sub { 10 }, - '+' => sub { 10 + $_[1] }, - '""' => sub { "10" }; +use overload + '0+' => sub { 10 }, + '+' => sub { 10 + $_[1] }, + '""' => sub { "10" }; package MyTie; @@ -85,21 +86,21 @@ use Scalar::Util qw(refaddr); sub TIEHASH { - my $pkg = shift; - return bless [ @_ ], $pkg; + my $pkg = shift; + return bless [ @_ ], $pkg; } sub FETCH { - my $self = shift; - my $key = shift; - my ($underlying) = @$self; - return $underlying->{refaddr($key)}; + my $self = shift; + my $key = shift; + my ($underlying) = @$self; + return $underlying->{refaddr($key)}; } sub STORE { - my $self = shift; - my $key = shift; - my $value = shift; - my ($underlying) = @$self; - return ($underlying->{refaddr($key)} = $key); + my $self = shift; + my $key = shift; + my $value = shift; + my ($underlying) = @$self; + return ($underlying->{refaddr($key)} = $key); } diff --git a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/reftype.t b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/reftype.t index a40e41493b5..2fefd8fbef0 100644 --- a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/reftype.t +++ b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/reftype.t @@ -18,18 +18,18 @@ $s = undef; # SvTYPE($s) is SVt_RV, but SvROK($s) is false my $t; my @test = ( - [ undef, 1, 'number' ], - [ undef, 'A', 'string' ], - [ HASH => {}, 'HASH ref' ], - [ ARRAY => [], 'ARRAY ref' ], - [ SCALAR => \$t, 'SCALAR ref' ], - [ SCALAR => \$s, 'SCALAR ref (but SVt_RV)' ], - [ REF => \(\$t), 'REF ref' ], - [ GLOB => \*F, 'tied GLOB ref' ], - [ GLOB => gensym, 'GLOB ref' ], - [ CODE => sub {}, 'CODE ref' ], - [ IO => *STDIN{IO},'IO ref' ], - [ $RE => qr/x/, 'REGEEXP' ], + [ undef, 1, 'number' ], + [ undef, 'A', 'string' ], + [ HASH => {}, 'HASH ref' ], + [ ARRAY => [], 'ARRAY ref' ], + [ SCALAR => \$t, 'SCALAR ref' ], + [ SCALAR => \$s, 'SCALAR ref (but SVt_RV)' ], + [ REF => \(\$t), 'REF ref' ], + [ GLOB => \*F, 'tied GLOB ref' ], + [ GLOB => gensym, 'GLOB ref' ], + [ CODE => sub {}, 'CODE ref' ], + [ IO => *STDIN{IO}, 'IO ref' ], + [ $RE => qr/x/, 'REGEEXP' ], ); foreach my $test (@test) { diff --git a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/shuffle.t b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/shuffle.t index dff963715dc..7135b5163ce 100644 --- a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/shuffle.t +++ b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/shuffle.t @@ -3,24 +3,35 @@ use strict; use warnings; -use Test::More tests => 6; +use Test::More tests => 7; use List::Util qw(shuffle); my @r; @r = shuffle(); -ok( !@r, 'no args'); +ok( !@r, 'no args'); @r = shuffle(9); -is( 0+@r, 1, '1 in 1 out'); -is( $r[0], 9, 'one arg'); +is( 0+@r, 1, '1 in 1 out'); +is( $r[0], 9, 'one arg'); my @in = 1..100; @r = shuffle(@in); -is( 0+@r, 0+@in, 'arg count'); +is( 0+@r, 0+@in, 'arg count'); -isnt( "@r", "@in", 'result different to args'); +isnt( "@r", "@in", 'result different to args'); my @s = sort { $a <=> $b } @r; -is( "@in", "@s", 'values'); +is( "@in", "@s", 'values'); + +{ + local $List::Util::RAND = sub { 4/10 }; # chosen by a fair die + + @r = shuffle(1..10); + is_deeply( + [ shuffle(1..10) ], + [ shuffle(1..10) ], + 'rigged rand() yields predictable output' + ); +} diff --git a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/sum.t b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/sum.t index e2c416df8c0..5247a37b004 100644 --- a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/sum.t +++ b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/sum.t @@ -9,7 +9,7 @@ use Config; use List::Util qw(sum); my $v = sum; -is( $v, undef, 'no args'); +is( $v, undef, 'no args'); $v = sum(9); is( $v, 9, 'one arg'); diff --git a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/tainted.t b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/tainted.t index fb83c86c327..1197b295869 100644 --- a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/tainted.t +++ b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/tainted.t @@ -13,10 +13,10 @@ my $var = 2; ok( !tainted($var), 'known variable'); -ok( tainted($^X), 'interpreter variable'); +ok( tainted($^X), 'interpreter variable'); $var = $^X; -ok( tainted($var), 'copy of interpreter variable'); +ok( tainted($var), 'copy of interpreter variable'); { package Tainted; diff --git a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/weak.t b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/weak.t index 86ded9794fc..39a4167cd6a 100644 --- a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/weak.t +++ b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/weak.t @@ -7,8 +7,8 @@ use Config; use Scalar::Util (); use Test::More ((grep { /weaken/ } @Scalar::Util::EXPORT_FAIL) and !$ENV{PERL_CORE}) - ? (skip_all => 'weaken requires XS version') - : (tests => 28); + ? (skip_all => 'weaken requires XS version') + : (tests => 28); Scalar::Util->import(qw(weaken unweaken isweak)); diff --git a/gnu/usr.bin/perl/cpan/Socket/Makefile.PL b/gnu/usr.bin/perl/cpan/Socket/Makefile.PL index 5eab38080a9..b69f50c9c78 100644 --- a/gnu/usr.bin/perl/cpan/Socket/Makefile.PL +++ b/gnu/usr.bin/perl/cpan/Socket/Makefile.PL @@ -165,9 +165,9 @@ my @names = ( qw( AF_802 AF_AAL AF_APPLETALK AF_CCITT AF_CHAOS AF_CTF AF_DATAKIT AF_DECnet AF_DLI AF_ECMA AF_GOSIP AF_HYLINK AF_IMPLINK AF_INET AF_INET6 - AF_ISO AF_KEY AF_LAST AF_LAT AF_LINK AF_MAX AF_NBS AF_NIT AF_NS AF_OSI - AF_OSINET AF_PUP AF_ROUTE AF_SNA AF_UNIX AF_UNSPEC AF_USER AF_WAN - AF_X25 + AF_ISO AF_KEY AF_LAST AF_LAT AF_LINK AF_LOCAL AF_MAX AF_NBS AF_NIT + AF_NS AF_OSI AF_OSINET AF_PUP AF_ROUTE AF_SNA AF_UNIX AF_UNSPEC AF_USER + AF_WAN AF_X25 AI_ADDRCONFIG AI_ALL AI_CANONIDN AI_CANONNAME AI_IDN AI_IDN_ALLOW_UNASSIGNED AI_IDN_USE_STD3_ASCII_RULES AI_NUMERICHOST @@ -203,9 +203,9 @@ my @names = ( PF_802 PF_AAL PF_APPLETALK PF_CCITT PF_CHAOS PF_CTF PF_DATAKIT PF_DECnet PF_DLI PF_ECMA PF_GOSIP PF_HYLINK PF_IMPLINK PF_INET PF_INET6 - PF_ISO PF_KEY PF_LAST PF_LAT PF_LINK PF_MAX PF_NBS PF_NIT PF_NS PF_OSI - PF_OSINET PF_PUP PF_ROUTE PF_SNA PF_UNIX PF_UNSPEC PF_USER PF_WAN - PF_X25 + PF_ISO PF_KEY PF_LAST PF_LAT PF_LINK PF_LOCAL PF_MAX PF_NBS PF_NIT + PF_NS PF_OSI PF_OSINET PF_PUP PF_ROUTE PF_SNA PF_UNIX PF_UNSPEC PF_USER + PF_WAN PF_X25 SCM_CONNECT SCM_CREDENTIALS SCM_CREDS SCM_TIMESTAMP diff --git a/gnu/usr.bin/perl/cpan/Socket/Socket.pm b/gnu/usr.bin/perl/cpan/Socket/Socket.pm index 370deef1036..2c6b5e45d04 100644 --- a/gnu/usr.bin/perl/cpan/Socket/Socket.pm +++ b/gnu/usr.bin/perl/cpan/Socket/Socket.pm @@ -3,7 +3,7 @@ package Socket; use strict; { use 5.006001; } -our $VERSION = '2.027'; +our $VERSION = '2.029'; =head1 NAME diff --git a/gnu/usr.bin/perl/cpan/Socket/Socket.xs b/gnu/usr.bin/perl/cpan/Socket/Socket.xs index b11ea751a7d..e46c93e1719 100644 --- a/gnu/usr.bin/perl/cpan/Socket/Socket.xs +++ b/gnu/usr.bin/perl/cpan/Socket/Socket.xs @@ -79,6 +79,25 @@ typedef int socklen_t; #endif +/* + * Under Windows, sockaddr_un is defined in afunix.h. Unfortunately + * MinGW and SDKs older than 10.0.17063.0 don't have it, so we have to + * define it here. Don't worry, it's portable. Windows has ironclad ABI + * stability guarantees which means that the definitions will *never* + * change. + */ +#ifndef UNIX_PATH_MAX + +#define UNIX_PATH_MAX 108 + +struct sockaddr_un +{ + USHORT sun_family; + char sun_path[UNIX_PATH_MAX]; +}; + +#endif + static int inet_pton(int af, const char *src, void *dst) { struct sockaddr_storage ss; @@ -813,7 +832,7 @@ pack_sockaddr_un(pathname) SV * pathname CODE: { -#ifdef I_SYS_UN +#if defined(I_SYS_UN) || defined(WIN32) struct sockaddr_un sun_ad; /* fear using sun */ STRLEN len; char * pathname_pv; @@ -883,7 +902,7 @@ unpack_sockaddr_un(sun_sv) SV * sun_sv CODE: { -#ifdef I_SYS_UN +#if defined(I_SYS_UN) || defined(WIN32) struct sockaddr_un addr; STRLEN sockaddrlen; char * sun_ad; diff --git a/gnu/usr.bin/perl/cpan/Sys-Syslog/Makefile.PL b/gnu/usr.bin/perl/cpan/Sys-Syslog/Makefile.PL index c76963d0b96..d09ba69fc90 100644 --- a/gnu/usr.bin/perl/cpan/Sys-Syslog/Makefile.PL +++ b/gnu/usr.bin/perl/cpan/Sys-Syslog/Makefile.PL @@ -14,7 +14,7 @@ if ($] < 5.008) { } # create a lib/ dir in order to avoid warnings in Test::Distribution -mkdir "lib", $ENV{PERL_CORE} ? 0770 : 0755; +mkdir "lib", 0755; # virtual paths given to EU::MM my %virtual_path = ( 'Syslog.pm' => '$(INST_LIBDIR)/Syslog.pm' ); diff --git a/gnu/usr.bin/perl/cpan/Sys-Syslog/Syslog.pm b/gnu/usr.bin/perl/cpan/Sys-Syslog/Syslog.pm index 96e8632f6e0..ebbac5db27b 100644 --- a/gnu/usr.bin/perl/cpan/Sys-Syslog/Syslog.pm +++ b/gnu/usr.bin/perl/cpan/Sys-Syslog/Syslog.pm @@ -15,7 +15,7 @@ require 5.005; { no strict 'vars'; - $VERSION = '0.35'; + $VERSION = '0.36'; %EXPORT_TAGS = ( standard => [qw(openlog syslog closelog setlogmask)], @@ -935,7 +935,7 @@ Sys::Syslog - Perl interface to the UNIX syslog(3) calls =head1 VERSION -This is the documentation of version 0.35 +This is the documentation of version 0.36 =head1 SYNOPSIS diff --git a/gnu/usr.bin/perl/cpan/Term-ANSIColor/lib/Term/ANSIColor.pm b/gnu/usr.bin/perl/cpan/Term-ANSIColor/lib/Term/ANSIColor.pm index 730124b7f6d..db329081406 100644 --- a/gnu/usr.bin/perl/cpan/Term-ANSIColor/lib/Term/ANSIColor.pm +++ b/gnu/usr.bin/perl/cpan/Term-ANSIColor/lib/Term/ANSIColor.pm @@ -1,17 +1,17 @@ # Color screen output using ANSI escape sequences. # -# Copyright 1996, 1997, 1998, 2000, 2001, 2002, 2005, 2006, 2008, 2009, 2010, -# 2011, 2012, 2013, 2014, 2015, 2016 Russ Allbery -# Copyright 1996 Zenin -# Copyright 2012 Kurt Starsinic +# This module provides utility functions (in two different forms) for coloring +# output with ANSI escape sequences. # -# This program is free software; you may redistribute it and/or modify it -# under the same terms as Perl itself. -# -# PUSH/POP support submitted 2007 by openmethods.com voice solutions +# This module is sometimes used in low-memory environments, so avoid use of +# \d, \w, [:upper:], and similar constructs in the most important functions +# (color, colored, AUTOLOAD, and the generated constant functions) since +# loading the Unicode attribute files consumes a lot of memory. # # Ah, September, when the sysadmins turn colors and fall off the trees.... # -- Dave Van Domelen +# +# SPDX-License-Identifier: GPL-1.0-or-later OR Artistic-1.0-Perl ############################################################################## # Modules and declarations @@ -19,15 +19,15 @@ package Term::ANSIColor; -use 5.006; +use 5.008; use strict; use warnings; # Also uses Carp but loads it on demand to reduce memory usage. -use Exporter (); +use Exporter; -# use Exporter plus @ISA instead of use base for 5.6 compatibility. +# use Exporter plus @ISA instead of use base to reduce memory usage. ## no critic (ClassHierarchies::ProhibitExplicitISA) # Declare variables that should be set in BEGIN for robustness. @@ -41,7 +41,7 @@ our $AUTOLOAD; # against circular module loading (not that we load any modules, but # consistency is good). BEGIN { - $VERSION = '4.06'; + $VERSION = '5.01'; # All of the basic supported constants, used in %EXPORT_TAGS. my @colorlist = qw( @@ -173,7 +173,7 @@ for my $n (0 .. 23) { # Reverse lookup. Alphabetically first name for a sequence is preferred. our %ATTRIBUTES_R; -for my $attr (reverse sort keys %ATTRIBUTES) { +for my $attr (reverse(sort(keys(%ATTRIBUTES)))) { $ATTRIBUTES_R{ $ATTRIBUTES{$attr} } = $attr; } @@ -188,17 +188,18 @@ for my $code (16 .. 255) { # Import any custom colors set in the environment. our %ALIASES; -if (exists $ENV{ANSI_COLORS_ALIASES}) { +if (exists($ENV{ANSI_COLORS_ALIASES})) { my $spec = $ENV{ANSI_COLORS_ALIASES}; - $spec =~ s{\s+}{}xmsg; + $spec =~ s{ \A \s+ }{}xms; + $spec =~ s{ \s+ \z }{}xms; # Error reporting here is an interesting question. Use warn rather than # carp because carp would report the line of the use or require, which # doesn't help anyone understand what's going on, whereas seeing this code # will be more helpful. ## no critic (ErrorHandling::RequireCarping) - for my $definition (split m{,}xms, $spec) { - my ($new, $old) = split m{=}xms, $definition, 2; + for my $definition (split(m{\s*,\s*}xms, $spec)) { + my ($new, $old) = split(m{\s*=\s*}xms, $definition, 2); if (!$new || !$old) { warn qq{Bad color mapping "$definition"}; } else { @@ -249,10 +250,10 @@ sub croak { # called sub against the list of attributes, and if it's an all-caps version # of one of them, we define the sub on the fly and then run it. # -# If the environment variable ANSI_COLORS_DISABLED is set to a true value, -# just return the arguments without adding any escape sequences. This is to -# make it easier to write scripts that also work on systems without any ANSI -# support, like Windows consoles. +# If the environment variable ANSI_COLORS_DISABLED is set to a true value, or +# if the variable NO_COLOR is set, just return the arguments without adding +# any escape sequences. This is to make it easier to write scripts that also +# work on systems without any ANSI support, like Windows consoles. # # Avoid using character classes like [:upper:] and \w here, since they load # Unicode character tables and consume a ton of memory. All of our constants @@ -274,7 +275,7 @@ sub AUTOLOAD { # If colors are disabled, just return the input. Do this without # installing a sub for (marginal, unbenchmarked) speed. - if ($ENV{ANSI_COLORS_DISABLED}) { + if ($ENV{ANSI_COLORS_DISABLED} || defined($ENV{NO_COLOR})) { return join(q{}, @_); } @@ -296,7 +297,7 @@ sub AUTOLOAD { ## no critic (ValuesAndExpressions::ProhibitImplicitNewlines) my $eval_result = eval qq{ sub $AUTOLOAD { - if (\$ENV{ANSI_COLORS_DISABLED}) { + if (\$ENV{ANSI_COLORS_DISABLED} || defined(\$ENV{NO_COLOR})) { return join(q{}, \@_); } elsif (\$AUTOLOCAL && \@_) { return PUSHCOLOR('$escape') . join(q{}, \@_) . POPCOLOR; @@ -320,7 +321,6 @@ sub AUTOLOAD { $@ = $eval_err; # Dispatch to the newly-created sub. - ## no critic (References::ProhibitDoubleSigils) goto &$AUTOLOAD; } ## use critic @@ -393,25 +393,35 @@ sub LOCALCOLOR { # Throws: Text exception for any invalid attribute sub color { my (@codes) = @_; - @codes = map { split } @codes; # Return the empty string if colors are disabled. - if ($ENV{ANSI_COLORS_DISABLED}) { + if ($ENV{ANSI_COLORS_DISABLED} || defined($ENV{NO_COLOR})) { return q{}; } + # Split on whitespace and expand aliases. + @codes = map { split } @codes; + @codes = map { defined($ALIASES{$_}) ? @{ $ALIASES{$_} } : $_ } @codes; + # Build the attribute string from semicolon-separated numbers. + ## no critic (RegularExpressions::ProhibitEnumeratedClasses) my $attribute = q{}; for my $code (@codes) { $code = lc($code); if (defined($ATTRIBUTES{$code})) { $attribute .= $ATTRIBUTES{$code} . q{;}; - } elsif (defined($ALIASES{$code})) { - $attribute .= $ALIASES{$code} . q{;}; + } elsif ($code =~ m{ \A (on_)? r([0-9]+) g([0-9]+) b([0-9]+) \z }xms) { + my ($r, $g, $b) = ($2 + 0, $3 + 0, $4 + 0); + if ($r > 255 || $g > 255 || $b > 255) { + croak("Invalid attribute name $code"); + } + my $prefix = $1 ? '48' : '38'; + $attribute .= "$prefix;2;$r;$g;$b;"; } else { croak("Invalid attribute name $code"); } } + ## use critic # We added one too many semicolons for simplicity. Remove the last one. chop($attribute); @@ -444,20 +454,38 @@ sub uncolor { croak("Bad escape sequence $escape"); } - # Pull off 256-color codes (38;5;n or 48;5;n) as a unit. - push(@nums, $attrs =~ m{ ( 0*[34]8;0*5;\d+ | \d+ ) (?: ; | \z ) }xmsg); + # Pull off 256-color codes (38;5;n or 48;5;n) and true color codes + # (38;2;n;n;n or 48;2;n;n;n) as a unit. + my $regex = qr{ + ( + 0*[34]8 ; 0*2 ; \d+ ; \d+ ; \d+ + | 0*[34]8 ; 0*5 ; \d+ + | \d+ + ) + (?: ; | \z ) + }xms; + push(@nums, $attrs =~ m{$regex}xmsg); } # Now, walk the list of numbers and convert them to attribute names. # Strip leading zeroes from any of the numbers. (xterm, at least, allows # leading zeroes to be added to any number in an escape sequence.) for my $num (@nums) { - $num =~ s{ ( \A | ; ) 0+ (\d) }{$1$2}xmsg; - my $name = $ATTRIBUTES_R{$num}; - if (!defined($name)) { - croak("No name for escape sequence $num"); + if ($num =~ m{ \A 0*([34])8 ; 0*2 ; (\d+) ; (\d+) ; (\d+) \z }xms) { + my ($r, $g, $b) = ($2 + 0, $3 + 0, $4 + 0); + if ($r > 255 || $g > 255 || $b > 255) { + croak("No name for escape sequence $num"); + } + my $prefix = ($1 == 4) ? 'on_' : q{}; + push(@result, "${prefix}r${r}g${g}b${b}"); + } else { + $num =~ s{ ( \A | ; ) 0+ (\d) }{$1$2}xmsg; + my $name = $ATTRIBUTES_R{$num}; + if (!defined($name)) { + croak("No name for escape sequence $num"); + } + push(@result, $name); } - push(@result, $name); } # Return the attribute names. @@ -484,7 +512,7 @@ sub colored { my ($first, @rest) = @_; my ($string, @codes); if (ref($first) && ref($first) eq 'ARRAY') { - @codes = @{$first}; + @codes = @{$first}; $string = join(q{}, @rest); } else { $string = $first; @@ -492,7 +520,7 @@ sub colored { } # Return the string unmolested if colors are disabled. - if ($ENV{ANSI_COLORS_DISABLED}) { + if ($ENV{ANSI_COLORS_DISABLED} || defined($ENV{NO_COLOR})) { return $string; } @@ -514,19 +542,20 @@ sub colored { # Define a new color alias, or return the value of an existing alias. # # $alias - The color alias to define -# $color - The standard color the alias will correspond to (optional) +# @color - The color attributes the alias will correspond to (optional) # -# Returns: The standard color value of the alias +# Returns: The standard color value of the alias as a string (may be multiple +# attributes separated by spaces) # undef if one argument was given and the alias was not recognized # Throws: Text exceptions for invalid alias names, attempts to use a # standard color name as an alias, or an unknown standard color name sub coloralias { - my ($alias, $color) = @_; - if (!defined($color)) { - if (!exists $ALIASES{$alias}) { - return; + my ($alias, @color) = @_; + if (!@color) { + if (exists($ALIASES{$alias})) { + return join(q{ }, @{ $ALIASES{$alias} }); } else { - return $ATTRIBUTES_R{ $ALIASES{$alias} }; + return; } } @@ -538,14 +567,23 @@ sub coloralias { croak(qq{Invalid alias name "$alias"}); } elsif ($ATTRIBUTES{$alias}) { croak(qq{Cannot alias standard color "$alias"}); - } elsif (!exists $ATTRIBUTES{$color}) { - croak(qq{Invalid attribute name "$color"}); } ## use critic + # Split on whitespace and expand aliases. + @color = map { split } @color; + @color = map { defined($ALIASES{$_}) ? @{ $ALIASES{$_} } : $_ } @color; + + # Check that all of the attributes are valid. + for my $attribute (@color) { + if (!exists($ATTRIBUTES{$attribute})) { + croak(qq{Invalid attribute name "$attribute"}); + } + } + # Set the alias and return. - $ALIASES{$alias} = $ATTRIBUTES{$color}; - return $color; + $ALIASES{$alias} = [@color]; + return join(q{ }, @color); } # Given a string, strip the ANSI color codes out of that string and return the @@ -574,9 +612,12 @@ sub colorvalid { my (@codes) = @_; @codes = map { split(q{ }, lc) } @codes; for my $code (@codes) { - if (!(defined($ATTRIBUTES{$code}) || defined($ALIASES{$code}))) { - return; + next if defined($ATTRIBUTES{$code}); + next if defined($ALIASES{$code}); + if ($code =~ m{ \A (?: on_ )? r (\d+) g (\d+) b (\d+) \z }xms) { + next if ($1 <= 255 && $2 <= 255 && $3 <= 255); } + return; } return 1; } @@ -599,7 +640,7 @@ command.com NT ESC Delvare SSH OpenSSH aixterm ECMA-048 Fraktur overlining Zenin reimplemented Allbery PUSHCOLOR POPCOLOR LOCALCOLOR openmethods.com openmethods.com. grey ATTR urxvt mistyped prepending Bareword filehandle Cygwin Starsinic aterm rxvt CPAN RGB Solarized Whitespace alphanumerics -undef +undef CLICOLOR NNN GGG RRR =head1 SYNOPSIS @@ -617,8 +658,8 @@ undef # Map escape sequences back to color names. use Term::ANSIColor 1.04 qw(uncolor); - my $names = uncolor('01;31'); - print join(q{ }, @{$names}), "\n"; + my @names = uncolor('01;31'); + print join(q{ }, @names), "\n"; # Strip all color escape sequences. use Term::ANSIColor 2.01 qw(colorstrip); @@ -666,16 +707,20 @@ other through constants. It also offers the utility functions uncolor(), colorstrip(), colorvalid(), and coloralias(), which have to be explicitly imported to be used (see L). +If you are using Term::ANSIColor in a console command, consider supporting the +CLICOLOR standard. See L for more information. + See L for the versions of Term::ANSIColor that introduced particular features and the versions of Perl that included them. =head2 Supported Colors -Terminal emulators that support color divide into three types: ones that -support only eight colors, ones that support sixteen, and ones that -support 256. This module provides the ANSI escape codes for all of them. -These colors are referred to as ANSI colors 0 through 7 (normal), 8 -through 15 (16-color), and 16 through 255 (256-color). +Terminal emulators that support color divide into four types: ones that +support only eight colors, ones that support sixteen, ones that support 256, +and ones that support 24-bit color. This module provides the ANSI escape +codes for all of them. These colors are referred to as ANSI colors 0 through +7 (normal), 8 through 15 (16-color), 16 through 255 (256-color), and true +color (called direct-color by B). Unfortunately, interpretation of colors 0 through 7 often depends on whether the emulator supports eight colors or sixteen colors. Emulators @@ -698,6 +743,16 @@ C is color 1 and C is color 9. The same applies for background colors: C is the normal color and C is the bright color. Capitalize these strings for the constant interface. +There is unfortunately no way to know whether the current emulator +supports more than eight colors, which makes the choice of colors +difficult. The most conservative choice is to use only the regular +colors, which are at least displayed on all emulators. However, they will +appear dark in sixteen-color terminal emulators, including most common +emulators in UNIX X environments. If you know the display is one of those +emulators, you may wish to use the bright variants instead. Even better, +offer the user a way to configure the colors for a given application to +fit their terminal emulator. + For 256-color emulators, this module additionally provides C through C, which are the same as colors 0 through 15 in sixteen-color emulators but use the 256-color escape syntax, C @@ -711,15 +766,12 @@ completely on non-256-color terminals or may be misinterpreted and produce random behavior. Additional attributes such as blink, italic, or bold may not work with the 256-color palette. -There is unfortunately no way to know whether the current emulator -supports more than eight colors, which makes the choice of colors -difficult. The most conservative choice is to use only the regular -colors, which are at least displayed on all emulators. However, they will -appear dark in sixteen-color terminal emulators, including most common -emulators in UNIX X environments. If you know the display is one of those -emulators, you may wish to use the bright variants instead. Even better, -offer the user a way to configure the colors for a given application to -fit their terminal emulator. +For true color emulators, this module supports attributes of the form C<< +rIgIbI >> and C<< on_rIgIbI >> for all values of +I between 0 and 255. These represent foreground and background colors, +respectively, with the RGB values given by the I numbers. These colors +may be ignored completely on non-true-color terminals or may be misinterpreted +and produce random behavior. =head2 Function Interface @@ -766,6 +818,12 @@ C or C. Similarly, the recognized background colors are: plus C> for I, I, and I values from 0 to 5. +For true color terminals, the recognized foreground colors are C<< +rIgIbI >> for I, I, and I values between 0 and +255. Similarly, the recognized background colors are C<< +on_rIgIbI >> for I, I, and I values between 0 +and 255. + For any of the above listed attributes, case is not significant. Attributes, once set, last until they are unset (by printing the attribute @@ -808,6 +866,13 @@ default background color for the next line. Programs like pagers can also be confused by attributes that span lines. Normally you'll want to set $Term::ANSIColor::EACHLINE to C<"\n"> to use this feature. +Particularly consider setting $Term::ANSIColor::EACHLINE if you are +interleaving output to standard output and standard error and you aren't +flushing standard output (via autoflush() or setting C<$|>). If you don't, +the code to reset the color may unexpectedly sit in the standard output buffer +rather than going to the display, causing standard error output to appear in +the wrong color. + =item uncolor(ESCAPE) uncolor() performs the opposite translation as color(), turning escape @@ -827,17 +892,26 @@ together in scalar context. Its arguments are not modified. colorvalid() takes attribute strings the same as color() and returns true if all attributes are known and false otherwise. -=item coloralias(ALIAS[, ATTR]) +=item coloralias(ALIAS[, ATTR ...]) -If ATTR is specified, coloralias() sets up an alias of ALIAS for the -standard color ATTR. From that point forward, ALIAS can be passed into -color(), colored(), and colorvalid() and will have the same meaning as -ATTR. One possible use of this facility is to give more meaningful names -to the 256-color RGB colors. Only ASCII alphanumerics, C<.>, C<_>, and -C<-> are allowed in alias names. +If ATTR is specified, it is interpreted as a list of space-separated strings +naming attributes or existing aliases. In this case, coloralias() sets up an +alias of ALIAS for the set of attributes given by ATTR. From that point +forward, ALIAS can be passed into color(), colored(), and colorvalid() and +will have the same meaning as the sequence of attributes given in ATTR. One +possible use of this facility is to give more meaningful names to the +256-color RGB colors. Only ASCII alphanumerics, C<.>, C<_>, and C<-> are +allowed in alias names. -If ATTR is not specified, coloralias() returns the standard color name to -which ALIAS is aliased, if any, or undef if ALIAS does not exist. +If ATTR includes aliases, those aliases will be expanded at definition time +and their values will be used to define the new alias. This means that if you +define an alias A in terms of another alias B, and then later redefine alias +B, the value of alias A will not change. + +If ATTR is not specified, coloralias() returns the standard attribute or +attributes to which ALIAS is aliased, if any, or undef if ALIAS does not +exist. If it is aliased to multiple attributes, the return value will be a +single string and the attributes will be separated by spaces. This is the same facility used by the ANSI_COLORS_ALIASES environment variable (see L below) but can be used at runtime, not just @@ -904,6 +978,8 @@ to explicitly import at least C, as in: use Term::ANSIColor 4.00 qw(RESET :constants256); +True color and aliases are not supported by the constant interface. + When using the constants, if you don't want to have to remember to add the C<, RESET> at the end of each print line, you can set $Term::ANSIColor::AUTORESET to a true value. Then, the display mode will @@ -925,13 +1001,14 @@ over $Term::ANSIColor::AUTORESET, and the latter is ignored. The subroutine interface has the advantage over the constants interface in that only two subroutines are exported into your namespace, versus -thirty-eight in the constants interface. On the flip side, the constants -interface has the advantage of better compile time error checking, since -misspelled names of colors or attributes in calls to color() and colored() -won't be caught until runtime whereas misspelled names of constants will -be caught at compile time. So, pollute your namespace with almost two -dozen subroutines that you may not even use that often, or risk a silly -bug by mistyping an attribute. Your choice, TMTOWTDI after all. +thirty-eight in the constants interface, and aliases and true color attributes +are supported. On the flip side, the constants interface has the advantage of +better compile time error checking, since misspelled names of colors or +attributes in calls to color() and colored() won't be caught until runtime +whereas misspelled names of constants will be caught at compile time. So, +pollute your namespace with almost two dozen subroutines that you may not even +use that often, or risk a silly bug by mistyping an attribute. Your choice, +TMTOWTDI after all. =head2 The Color Stack @@ -971,6 +1048,31 @@ PUSHCOLOR pushes the attributes set by its argument, which is normally a string of color constants. It can't ask the terminal what the current attributes are. +=head2 Supporting CLICOLOR + +L proposes a standard for enabling and +disabling color output from console commands using two environment variables, +CLICOLOR and CLICOLOR_FORCE. Term::ANSIColor cannot automatically support +this standard, since the correct action depends on where the output is going +and Term::ANSIColor may be used in a context where colors should always be +generated even if CLICOLOR is set in the environment. But you can use the +supported environment variable ANSI_COLORS_DISABLED to implement CLICOLOR in +your own programs with code like this: + + if (exists($ENV{CLICOLOR}) && $ENV{CLICOLOR} == 0) { + if (!$ENV{CLICOLOR_FORCE}) { + $ENV{ANSI_COLORS_DISABLED} = 1; + } + } + +If you are using the constant interface, be sure to include this code before +you use any color constants (such as at the very top of your script), since +this environment variable is only honored the first time a color constant is +seen. + +Be aware that this will export ANSI_COLORS_DISABLED to any child processes of +your program as well. + =head1 DIAGNOSTICS =over 4 @@ -1070,9 +1172,10 @@ The format is: ANSI_COLORS_ALIASES='newcolor1=oldcolor1,newcolor2=oldcolor2' -Whitespace is ignored. +Whitespace is ignored. The alias value can be a single attribute or a +space-separated list of attributes. -For example the L colors +For example the L colors can be mapped with: ANSI_COLORS_ALIASES='\ @@ -1095,11 +1198,20 @@ coloralias() for an equivalent facility that can be used at runtime. =item ANSI_COLORS_DISABLED If this environment variable is set to a true value, all of the functions -defined by this module (color(), colored(), and all of the constants not -previously used in the program) will not output any escape sequences and -instead will just return the empty string or pass through the original -text as appropriate. This is intended to support easy use of scripts -using this module on platforms that don't support ANSI escape sequences. +defined by this module (color(), colored(), and all of the constants) will not +output any escape sequences and instead will just return the empty string or +pass through the original text as appropriate. This is intended to support +easy use of scripts using this module on platforms that don't support ANSI +escape sequences. + +=item NO_COLOR + +If this environment variable is set to any value, it suppresses generation of +escape sequences the same as if ANSI_COLORS_DISABLED is set to a true value. +This implements the L informal standard. Programs that +want to enable color despite NO_COLOR being set will need to unset that +environment variable before any constant or function provided by this module +is used. =back @@ -1135,12 +1247,27 @@ $Term::ANSIColor::AUTOLOCAL was changed to take precedence over $Term::ANSIColor::AUTORESET, rather than the other way around, in Term::ANSIColor 4.00, included in Perl 5.17.8. -C through C, as aliases for the C and C -colors, and the corresponding C names and C and C -constants, were added in Term::ANSIColor 4.06. +C through C, as aliases for the C and C colors, +and the corresponding C names and C and C constants +were added in Term::ANSIColor 4.06, included in Perl 5.25.7. + +Support for true color (the C and C +attributes), defining aliases in terms of other aliases, and aliases mapping +to multiple attributes instead of only a single attribute was added in +Term::ANSIColor 5.00. + +Support for NO_COLOR was added in Term::ANSIColor 5.01. =head1 RESTRICTIONS +Both colored() and many uses of the color constants will add the reset escape +sequence after a newline. If a program mixes colored output to standard +output with output to standard error, this can result in the standard error +text having the wrong color because the reset escape sequence hasn't yet been +flushed to the display (since standard output to a terminal is line-buffered +by default). To avoid this, either set autoflush() on STDOUT or set +$Term::ANSIColor::EACHLINE to C<"\n">. + It would be nice if one could leave off the commas around the constants entirely and just say: @@ -1210,18 +1337,20 @@ table. It is not believed to be fully supported by any of the terminals listed, although it's displayed as green in the Linux console, but it is reportedly supported by urxvt. -Note that codes 6 (rapid blink) and 9 (strike-through) are specified in -ANSI X3.64 and ECMA-048 but are not commonly supported by most displays -and emulators and therefore aren't supported by this module at the present -time. ECMA-048 also specifies a large number of other attributes, -including a sequence of attributes for font changes, Fraktur characters, -double-underlining, framing, circling, and overlining. As none of these -attributes are widely supported or useful, they also aren't currently -supported by this module. +Note that codes 6 (rapid blink) and 9 (strike-through) are specified in ANSI +X3.64 and ECMA-048 but are not commonly supported by most displays and +emulators and therefore aren't supported by this module. ECMA-048 also +specifies a large number of other attributes, including a sequence of +attributes for font changes, Fraktur characters, double-underlining, framing, +circling, and overlining. As none of these attributes are widely supported or +useful, they also aren't currently supported by this module. Most modern X terminal emulators support 256 colors. Known to not support those colors are aterm, rxvt, Terminal.app, and TTY/VC. +For information on true color support in various terminal emulators, see +L. + =head1 AUTHORS Original idea (using constants) by Zenin, reimplemented using subs by Russ @@ -1234,10 +1363,10 @@ voice solutions. =head1 COPYRIGHT AND LICENSE -Copyright 1996 Zenin +Copyright 1996-1998, 2000-2002, 2005-2006, 2008-2018, 2020 Russ Allbery + -Copyright 1996, 1997, 1998, 2000, 2001, 2002, 2005, 2006, 2008, 2009, 2010, -2011, 2012, 2013, 2014, 2015, 2016 Russ Allbery +Copyright 1996 Zenin Copyright 2012 Kurt Starsinic @@ -1254,7 +1383,7 @@ The CPAN module L provides a different interface using objects and operator overloading. ECMA-048 is available on-line (at least at the time of this writing) at -L. +L. ISO 6429 is available from ISO for a charge; the author of this module does not own a copy of it. Since the source material for ISO 6429 was @@ -1262,11 +1391,24 @@ ECMA-048 and the latter is available for free, there seems little reason to obtain the ISO standard. The 256-color control sequences are documented at -L (search for +L (search for 256-color). +Information about true color support in various terminal emulators and test +programs you can run to check the true color support in your terminal emulator +are available at L. + +L and +L are useful standards to be aware of, and +ideally follow, for any application using color. Term::ANSIColor complies +with the latter. + The current version of this module is always available from its web site at L. It is also part of the Perl core distribution as of 5.6.0. =cut + +# Local Variables: +# copyright-at-end-flag: t +# End: diff --git a/gnu/usr.bin/perl/cpan/Term-ANSIColor/t/lib/Test/RRA.pm b/gnu/usr.bin/perl/cpan/Term-ANSIColor/t/lib/Test/RRA.pm index bcd653240f4..1d5e4db23d4 100644 --- a/gnu/usr.bin/perl/cpan/Term-ANSIColor/t/lib/Test/RRA.pm +++ b/gnu/usr.bin/perl/cpan/Term-ANSIColor/t/lib/Test/RRA.pm @@ -5,28 +5,46 @@ # by both C packages with Automake and by stand-alone Perl modules. See # Test::RRA::Automake for additional functions specifically for C Automake # distributions. +# +# SPDX-License-Identifier: MIT package Test::RRA; -use 5.006; +use 5.008; +use base qw(Exporter); use strict; use warnings; -use Exporter; +use Carp qw(croak); use File::Temp; -use Test::More; -# For Perl 5.006 compatibility. -## no critic (ClassHierarchies::ProhibitExplicitISA) +# Abort if Test::More was loaded before Test::RRA to be sure that we get the +# benefits of the Test::More probing below. +if ($INC{'Test/More.pm'}) { + croak('Test::More loaded before Test::RRA'); +} + +# Red Hat's base perl package doesn't include Test::More (one has to install +# the perl-core package in addition). Try to detect this and skip any Perl +# tests if Test::More is not present. This relies on Test::RRA being included +# before Test::More. +eval { + require Test::More; + Test::More->import(); +}; +if ($@) { + print "1..0 # SKIP Test::More required for test\n" + or croak('Cannot write to stdout'); + exit 0; +} # Declare variables that should be set in BEGIN for robustness. -our (@EXPORT_OK, @ISA, $VERSION); +our (@EXPORT_OK, $VERSION); # Set $VERSION and everything export-related in a BEGIN block for robustness # against circular module loading (not that we load any modules, but # consistency is good). BEGIN { - @ISA = qw(Exporter); @EXPORT_OK = qw( is_file_contents skip_unless_author skip_unless_automated use_prereq ); @@ -34,7 +52,7 @@ BEGIN { # This version should match the corresponding rra-c-util release, but with # two digits for the minor version, including a leading zero if necessary, # so that it will sort properly. - $VERSION = '6.02'; + $VERSION = '8.01'; } # Compare a string to the contents of a file, similar to the standard is() @@ -59,22 +77,27 @@ sub is_file_contents { return; } - # Otherwise, we show a diff, but only if we have IPC::System::Simple. - eval { require IPC::System::Simple }; + # Otherwise, we show a diff, but only if we have IPC::System::Simple and + # diff succeeds. Otherwise, we fall back on showing the full expected and + # seen output. + eval { + require IPC::System::Simple; + + my $tmp = File::Temp->new(); + my $tmpname = $tmp->filename; + print {$tmp} $got or BAIL_OUT("Cannot write to $tmpname: $!\n"); + my @command = ('diff', '-u', $expected, $tmpname); + my $diff = IPC::System::Simple::capturex([0 .. 1], @command); + diag($diff); + }; if ($@) { - ok(0, $message); - return; + diag('Expected:'); + diag($expected); + diag('Seen:'); + diag($data); } - # They're not equal. Write out what we got so that we can run diff. - my $tmp = File::Temp->new(); - my $tmpname = $tmp->filename; - print {$tmp} $got or BAIL_OUT("Cannot write to $tmpname: $!\n"); - my @command = ('diff', '-u', $expected, $tmpname); - my $diff = IPC::System::Simple::capturex([0 .. 1], @command); - diag($diff); - - # Remove the temporary file and report failure. + # Report failure. ok(0, $message); return; } @@ -89,7 +112,7 @@ sub is_file_contents { sub skip_unless_author { my ($description) = @_; if (!$ENV{AUTHOR_TESTING}) { - plan skip_all => "$description only run for author"; + plan(skip_all => "$description only run for author"); } return; } @@ -108,7 +131,7 @@ sub skip_unless_automated { for my $env (qw(AUTOMATED_TESTING RELEASE_TESTING AUTHOR_TESTING)) { return if $ENV{$env}; } - plan skip_all => "$description normally skipped"; + plan(skip_all => "$description normally skipped"); return; } @@ -150,14 +173,14 @@ sub use_prereq { use $module $version \@imports; 1; }; - $error = $@; + $error = $@; $sigdie = $SIG{__DIE__} || undef; } # If the use failed for any reason, skip the test. if (!$result || $error) { my $name = length($version) > 0 ? "$module $version" : $module; - plan skip_all => "$name required for test"; + plan(skip_all => "$name required for test"); } # If the module set $SIG{__DIE__}, we cleared that via local. Restore it. @@ -200,6 +223,14 @@ This module collects utility functions that are useful for Perl test scripts. It assumes Russ Allbery's Perl module layout and test conventions and will only be useful for other people if they use the same conventions. +This module B be loaded before Test::More or it will abort during +import. It will skip the test (by printing a skip message to standard output +and exiting with status 0, equivalent to C) during import if +Test::More is not available. This allows tests written in Perl using this +module to be skipped if run on a system with Perl but not Test::More, such as +Red Hat systems with the C package but not the C package +installed. + =head1 FUNCTIONS None of these functions are imported by default. The ones used by a script @@ -244,7 +275,9 @@ Russ Allbery =head1 COPYRIGHT AND LICENSE -Copyright 2013, 2014 The Board of Trustees of the Leland Stanford Junior +Copyright 2016, 2018-2019 Russ Allbery + +Copyright 2013-2014 The Board of Trustees of the Leland Stanford Junior University Permission is hereby granted, free of charge, to any person obtaining a copy @@ -277,3 +310,7 @@ by the L. =cut + +# Local Variables: +# copyright-at-end-flag: t +# End: diff --git a/gnu/usr.bin/perl/cpan/Term-ANSIColor/t/lib/Test/RRA/Config.pm b/gnu/usr.bin/perl/cpan/Term-ANSIColor/t/lib/Test/RRA/Config.pm index bdb31e60c0f..80a15739410 100644 --- a/gnu/usr.bin/perl/cpan/Term-ANSIColor/t/lib/Test/RRA/Config.pm +++ b/gnu/usr.bin/perl/cpan/Term-ANSIColor/t/lib/Test/RRA/Config.pm @@ -4,27 +4,25 @@ # configuration file to store some package-specific data. This module loads # that configuration and provides the namespace for the configuration # settings. +# +# SPDX-License-Identifier: MIT package Test::RRA::Config; -use 5.006; +use 5.008; +use base qw(Exporter); use strict; use warnings; -# For Perl 5.006 compatibility. -## no critic (ClassHierarchies::ProhibitExplicitISA) - -use Exporter; use Test::More; # Declare variables that should be set in BEGIN for robustness. -our (@EXPORT_OK, @ISA, $VERSION); +our (@EXPORT_OK, $VERSION); # Set $VERSION and everything export-related in a BEGIN block for robustness # against circular module loading (not that we load any modules, but # consistency is good). BEGIN { - @ISA = qw(Exporter); @EXPORT_OK = qw( $COVERAGE_LEVEL @COVERAGE_SKIP_TESTS @CRITIC_IGNORE $LIBRARY_PATH $MINIMUM_VERSION %MINIMUM_VERSION @MODULE_VERSION_IGNORE @@ -34,7 +32,7 @@ BEGIN { # This version should match the corresponding rra-c-util release, but with # two digits for the minor version, including a leading zero if necessary, # so that it will sort properly. - $VERSION = '6.02'; + $VERSION = '8.01'; } # If C_TAP_BUILD or C_TAP_SOURCE are set in the environment, look for @@ -185,9 +183,9 @@ Russ Allbery =head1 COPYRIGHT AND LICENSE -Copyright 2015, 2016 Russ Allbery +Copyright 2015-2016, 2019 Russ Allbery -Copyright 2013, 2014 The Board of Trustees of the Leland Stanford Junior +Copyright 2013-2014 The Board of Trustees of the Leland Stanford Junior University Permission is hereby granted, free of charge, to any person obtaining a copy @@ -220,3 +218,7 @@ The C TAP Harness test driver and libraries for TAP-based C testing are available from L. =cut + +# Local Variables: +# copyright-at-end-flag: t +# End: diff --git a/gnu/usr.bin/perl/cpan/Term-ANSIColor/t/module/basic256.t b/gnu/usr.bin/perl/cpan/Term-ANSIColor/t/module/basic256.t index ae06d1ada5c..6f639f80cf6 100644 --- a/gnu/usr.bin/perl/cpan/Term-ANSIColor/t/module/basic256.t +++ b/gnu/usr.bin/perl/cpan/Term-ANSIColor/t/module/basic256.t @@ -3,20 +3,21 @@ # Tests for 256-color support. # # Copyright 2012 Kurt Starsinic -# Copyright 2012, 2013, 2016 Russ Allbery +# Copyright 2012-2013, 2016, 2020 Russ Allbery # -# This program is free software; you may redistribute it and/or modify it -# under the same terms as Perl itself. +# SPDX-License-Identifier: GPL-1.0-or-later OR Artistic-1.0-Perl +use 5.008; use strict; use warnings; -use Test::More tests => 94; +use Test::More tests => 100; # Load the module. BEGIN { delete $ENV{ANSI_COLORS_ALIASES}; delete $ENV{ANSI_COLORS_DISABLED}; + delete $ENV{NO_COLOR}; use_ok('Term::ANSIColor', qw(:constants256 color uncolor colorvalid)); } @@ -98,6 +99,16 @@ is(GREY0, q{}, '...and for GREY0'); is(GREY23, q{}, '...and for GREY23'); delete $ENV{ANSI_COLORS_DISABLED}; +# Do the same with NO_COLOR. +local $ENV{NO_COLOR} = 0; +is(ANSI0, q{}, 'NO_COLOR works for ANSI0'); +is(ANSI15, q{}, '...and for ANSI15'); +is(RGB000, q{}, '...and for RGB000'); +is(RGB555, q{}, '...and for RGB555'); +is(GREY0, q{}, '...and for GREY0'); +is(GREY23, q{}, '...and for GREY23'); +delete $ENV{NO_COLOR}; + # Do the same for AUTORESET. $Term::ANSIColor::AUTORESET = 1; is((ANSI0 't'), "\e[38;5;0mt\e[0m", 'AUTORESET works for ANSI0'); diff --git a/gnu/usr.bin/perl/cpan/Term-ReadKey/META.yml b/gnu/usr.bin/perl/cpan/Term-ReadKey/META.yml deleted file mode 100644 index 1e46f325428..00000000000 --- a/gnu/usr.bin/perl/cpan/Term-ReadKey/META.yml +++ /dev/null @@ -1,29 +0,0 @@ ---- -abstract: 'Change terminal modes, and perform non-blocking reads.' -author: - - 'Kenneth Albanowski' - - 'Jonathan Stowe' -build_requires: - ExtUtils::MakeMaker: '6.58' -configure_requires: - ExtUtils::MakeMaker: '6.58' -dynamic_config: 1 -generated_by: 'ExtUtils::MakeMaker version 7.34, CPAN::Meta::Converter version 2.150010' -license: perl -meta-spec: - url: http://module-build.sourceforge.net/META-spec-v1.4.html - version: '1.4' -name: TermReadKey -no_index: - file: - - Configure.pm - package: - - Configure -provides: - Term::ReadKey: - file: ReadKey.pm.PL - version: '2.38' -resources: - repository: https://github.com/jonathanstowe/TermReadKey.git -version: '2.38' -x_serialization_backend: 'CPAN::Meta::YAML version 0.018' diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder.pm b/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder.pm index b61bd5024da..1a49b7a8e7c 100644 --- a/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder.pm +++ b/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder.pm @@ -4,7 +4,7 @@ use 5.006; use strict; use warnings; -our $VERSION = '1.302162'; +our $VERSION = '1.302175'; BEGIN { if( $] < 5.008 ) { @@ -63,7 +63,8 @@ sub _add_ts_hooks { $todo = ${"$cpkg\::TODO"} if $cpkg; $todo = ${"$epkg\::TODO"} if $epkg && !$todo; - return $e unless defined $todo; + return $e unless defined($todo); + return $e unless length($todo); # Turn a diag into a todo diag return Test::Builder::TodoDiag->new(%$e) if ref($e) eq 'Test2::Event::Diag'; @@ -390,7 +391,7 @@ sub name { sub reset { ## no critic (Subroutines::ProhibitBuiltinHomonyms) my ($self, %params) = @_; - Test2::API::test2_set_is_end(0); + Test2::API::test2_unset_is_end(); # We leave this a global because it has to be localized and localizing # hash keys is just asking for pain. Also, it was documented. @@ -695,7 +696,7 @@ sub _ok_debug { my $self = shift; my ($trace, $orig_name) = @_; - my $is_todo = defined($self->todo); + my $is_todo = $self->in_todo; my $msg = $is_todo ? "Failed (TODO)" : "Failed"; diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/Module.pm b/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/Module.pm index 1ca914dee65..6e550eb6f7f 100644 --- a/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/Module.pm +++ b/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/Module.pm @@ -7,7 +7,7 @@ use Test::Builder; require Exporter; our @ISA = qw(Exporter); -our $VERSION = '1.302162'; +our $VERSION = '1.302175'; =head1 NAME @@ -172,4 +172,11 @@ sub builder { return Test::Builder->new; } +=head1 SEE ALSO + +L<< Test2::Manual::Tooling::TestBuilder >> describes the improved +options for writing testing modules provided by L<< Test2 >>. + +=cut + 1; diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/Tester.pm b/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/Tester.pm index 469336d8755..da98e3d9a07 100644 --- a/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/Tester.pm +++ b/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/Tester.pm @@ -1,7 +1,7 @@ package Test::Builder::Tester; use strict; -our $VERSION = '1.302162'; +our $VERSION = '1.302175'; use Test::Builder; use Symbol; diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/Tester/Color.pm b/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/Tester/Color.pm index 0bf39c60d71..116e6057d85 100644 --- a/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/Tester/Color.pm +++ b/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/Tester/Color.pm @@ -1,7 +1,7 @@ package Test::Builder::Tester::Color; use strict; -our $VERSION = '1.302162'; +our $VERSION = '1.302175'; require Test::Builder::Tester; diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/More.pm b/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/More.pm index 473c86eba63..b2f82286b44 100644 --- a/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/More.pm +++ b/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/More.pm @@ -17,7 +17,7 @@ sub _carp { return warn @_, " at $file line $line\n"; } -our $VERSION = '1.302162'; +our $VERSION = '1.302175'; use Test::Builder::Module; our @ISA = qw(Test::Builder::Module); @@ -1402,7 +1402,7 @@ You then know the thing you had todo is done and can remove the TODO flag. The nice part about todo tests, as opposed to simply commenting out a -block of tests, is it's like having a programmatic todo list. You know +block of tests, is that it is like having a programmatic todo list. You know how much work is left to be done, you're aware of what bugs there are, and you'll know immediately when they're fixed. @@ -1848,7 +1848,7 @@ might get a "Wide character in print" warning. Using C<< binmode STDOUT, ":utf8" >> will not fix it. L (which powers Test::More) duplicates STDOUT and STDERR. So any changes to them, -including changing their output disciplines, will not be seem by +including changing their output disciplines, will not be seen by Test::More. One work around is to apply encodings to STDOUT and STDERR as early diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Simple.pm b/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Simple.pm index 9218173bc50..6ff8183b804 100644 --- a/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Simple.pm +++ b/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Simple.pm @@ -4,7 +4,7 @@ use 5.006; use strict; -our $VERSION = '1.302162'; +our $VERSION = '1.302175'; use Test::Builder::Module; our @ISA = qw(Test::Builder::Module); diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Tester.pm b/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Tester.pm index 19cbf665712..1cc7bd179e7 100644 --- a/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Tester.pm +++ b/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Tester.pm @@ -18,7 +18,7 @@ require Exporter; use vars qw( @ISA @EXPORT ); -our $VERSION = '1.302162'; +our $VERSION = '1.302175'; @EXPORT = qw( run_tests check_tests check_test cmp_results show_space ); @ISA = qw( Exporter ); @@ -393,7 +393,7 @@ The easiest way to test is to do something like } ); -this will execute the is_mystyle_eq test, capturing it's results and +this will execute the is_mystyle_eq test, capturing its results and checking that they are what was expected. You may need to examine the test results in a more flexible way, for diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Tester/Capture.pm b/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Tester/Capture.pm index e28dbf83432..c5c454215f5 100644 --- a/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Tester/Capture.pm +++ b/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Tester/Capture.pm @@ -2,7 +2,7 @@ use strict; package Test::Tester::Capture; -our $VERSION = '1.302162'; +our $VERSION = '1.302175'; use Test::Builder; @@ -13,14 +13,8 @@ use vars qw( @ISA ); # Make Test::Tester::Capture thread-safe for ithreads. BEGIN { use Config; - if( $] >= 5.008 && $Config{useithreads} ) { - require threads::shared; - threads::shared->import; - } - else { - *share = sub { 0 }; - *lock = sub { 0 }; - } + *share = sub { 0 }; + *lock = sub { 0 }; } my $Curr_Test = 0; share($Curr_Test); @@ -30,7 +24,7 @@ my $Prem_Diag = {diag => ""}; share($Curr_Test); sub new { # Test::Tester::Capgture::new used to just return __PACKAGE__ - # because Test::Builder::new enforced it's singleton nature by + # because Test::Builder::new enforced its singleton nature by # return __PACKAGE__. That has since changed, Test::Builder::new now # returns a blessed has and around version 0.78, Test::Builder::todo # started wanting to modify $self. To cope with this, we now return @@ -229,7 +223,7 @@ Test::Tester::Capture - Help testing test modules built with Test::Builder =head1 DESCRIPTION This is a subclass of Test::Builder that overrides many of the methods so -that they don't output anything. It also keeps track of it's own set of test +that they don't output anything. It also keeps track of its own set of test results so that you can use Test::Builder based modules to perform tests on other Test::Builder based modules. diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Tester/CaptureRunner.pm b/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Tester/CaptureRunner.pm index 7cf3c0f0b52..a86ef0616c8 100644 --- a/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Tester/CaptureRunner.pm +++ b/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Tester/CaptureRunner.pm @@ -3,7 +3,7 @@ use strict; package Test::Tester::CaptureRunner; -our $VERSION = '1.302162'; +our $VERSION = '1.302175'; use Test::Tester::Capture; diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Tester/Delegate.pm b/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Tester/Delegate.pm index ebfd4e21681..2036f2ebc28 100644 --- a/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Tester/Delegate.pm +++ b/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Tester/Delegate.pm @@ -3,7 +3,7 @@ use warnings; package Test::Tester::Delegate; -our $VERSION = '1.302162'; +our $VERSION = '1.302175'; use Scalar::Util(); diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/use/ok.pm b/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/use/ok.pm index a81bbfb64a3..4113ef59c86 100644 --- a/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/use/ok.pm +++ b/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/use/ok.pm @@ -1,7 +1,7 @@ package Test::use::ok; use 5.005; -our $VERSION = '1.302162'; +our $VERSION = '1.302175'; __END__ diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/lib/ok.pm b/gnu/usr.bin/perl/cpan/Test-Simple/lib/ok.pm index 66dcad8635f..f3b394d9f69 100644 --- a/gnu/usr.bin/perl/cpan/Test-Simple/lib/ok.pm +++ b/gnu/usr.bin/perl/cpan/Test-Simple/lib/ok.pm @@ -1,5 +1,5 @@ package ok; -our $VERSION = '1.302162'; +our $VERSION = '1.302175'; use strict; use Test::More (); diff --git a/gnu/usr.bin/perl/cpan/Text-Balanced/lib/Text/Balanced.pm b/gnu/usr.bin/perl/cpan/Text-Balanced/lib/Text/Balanced.pm index 4fbb1bc6315..f1a5780a0b9 100644 --- a/gnu/usr.bin/perl/cpan/Text-Balanced/lib/Text/Balanced.pm +++ b/gnu/usr.bin/perl/cpan/Text-Balanced/lib/Text/Balanced.pm @@ -1508,7 +1508,7 @@ C returns the complete text up to the point of failure. If the string is "PARA", C returns only the first paragraph after the tag (up to the first line that is either empty or contains only whitespace characters). -If the string is "", the default behaviour (i.e. failure) is reinstated. +If the string is "", the the default behaviour (i.e. failure) is reinstated. For example, suppose the start tag "/para" introduces a paragraph, which then continues until the next "/endpara" tag or until another "/para" tag is diff --git a/gnu/usr.bin/perl/cpan/Time-Piece/Piece.pm b/gnu/usr.bin/perl/cpan/Time-Piece/Piece.pm index d5624636c6f..f5d87cd0316 100644 --- a/gnu/usr.bin/perl/cpan/Time-Piece/Piece.pm +++ b/gnu/usr.bin/perl/cpan/Time-Piece/Piece.pm @@ -19,7 +19,7 @@ our %EXPORT_TAGS = ( ':override' => 'internal', ); -our $VERSION = '1.33'; +our $VERSION = '1.3401'; XSLoader::load( 'Time::Piece', $VERSION ); @@ -126,6 +126,7 @@ sub _mktime { if ($class->_is_time_struct($time)) { my @new_time = @$time; my @tm_parts = (@new_time[c_sec .. c_mon], $new_time[c_year]+1900); + $new_time[c_epoch] = $islocal ? timelocal(@tm_parts) : timegm(@tm_parts); return wantarray ? @new_time : bless [@new_time[0..9], $islocal], $class; @@ -805,8 +806,14 @@ sub use_locale { #get locale month/day names from posix strftime (from Piece.xs) my $locales = _get_localization(); - $locales->{PM} ||= ''; - $locales->{AM} ||= ''; + #If AM and PM are the same, set both to '' + if ( !$locales->{PM} + || !$locales->{AM} + || ( $locales->{PM} eq $locales->{AM} ) ) + { + $locales->{PM} = ''; + $locales->{AM} = ''; + } $locales->{pm} = lc $locales->{PM}; $locales->{am} = lc $locales->{AM}; @@ -896,7 +903,7 @@ in perlfunc will still return what you expect. The module actually implements most of an interface described by Larry Wall on the perl5-porters mailing list here: -L +L =head1 USAGE @@ -1152,6 +1159,14 @@ moves afoot to fix that in perl. Alternatively use 64 bit perl. Or if none of those are options, use the L module which has support for years well into the future and past. +Also, the internal representation of Time::Piece->strftime deviates from the +standard POSIX implementation in that is uses the epoch (instead of separate +year, month, day parts). This change was added in version 1.30. If you must +have a more traditional strftime (which will normally never calculate day +light saving times correctly), you can pass the date parts from Time::Piece +into the strftime function provided by the POSIX module +(see strftime in L ). + =head1 AUTHOR Matt Sergeant, matt@sergeant.org diff --git a/gnu/usr.bin/perl/cpan/Time-Piece/Seconds.pm b/gnu/usr.bin/perl/cpan/Time-Piece/Seconds.pm index 71a4bd27f29..6aa864d97ec 100644 --- a/gnu/usr.bin/perl/cpan/Time-Piece/Seconds.pm +++ b/gnu/usr.bin/perl/cpan/Time-Piece/Seconds.pm @@ -1,7 +1,7 @@ package Time::Seconds; use strict; -our $VERSION = '1.33'; +our $VERSION = '1.3401'; use Exporter 5.57 'import'; diff --git a/gnu/usr.bin/perl/cpan/Time-Piece/t/02core_dst.t b/gnu/usr.bin/perl/cpan/Time-Piece/t/02core_dst.t index 3f54fff233c..f4433511195 100644 --- a/gnu/usr.bin/perl/cpan/Time-Piece/t/02core_dst.t +++ b/gnu/usr.bin/perl/cpan/Time-Piece/t/02core_dst.t @@ -1,4 +1,9 @@ -use Test::More tests => 56; +use Test::More; + +# Skip if doing a regular install +# Avoids mystery DST bugs [rt 128240], [GH40] +plan skip_all => "DST tests not required for installation" + unless ( $ENV{AUTOMATED_TESTING} ); my $is_win32 = ($^O =~ /Win32/); my $is_qnx = ($^O eq 'qnx'); @@ -121,7 +126,7 @@ cmp_ok($t->month_last_day, '==', 31); # test more SKIP: { skip "Extra tests for Linux, BSD only.", 8 unless $is_linux or $is_mac or $is_bsd; - local $ENV{TZ} = "EST5EDT4"; + local $ENV{TZ} = "EST5EDT4,M3.2.0/2,M11.1.0/2"; Time::Piece::_tzset(); my $lt = localtime(1373371631); #2013-07-09T12:07:11 cmp_ok(scalar($lt->tzoffset), 'eq', '-14400'); @@ -136,4 +141,4 @@ SKIP: { is ($lt->strftime("%s"), 1357733231, 'Epoch output is the same with EST'); } - +done_testing(56); diff --git a/gnu/usr.bin/perl/cpan/Win32/Win32.pm b/gnu/usr.bin/perl/cpan/Win32/Win32.pm index 7b9ab455bea..5a197e9e9e3 100644 --- a/gnu/usr.bin/perl/cpan/Win32/Win32.pm +++ b/gnu/usr.bin/perl/cpan/Win32/Win32.pm @@ -8,7 +8,7 @@ package Win32; require DynaLoader; @ISA = qw|Exporter DynaLoader|; - $VERSION = '0.52'; + $VERSION = '0.53'; $XS_VERSION = $VERSION; $VERSION = eval $VERSION; diff --git a/gnu/usr.bin/perl/cpan/Win32/Win32.xs b/gnu/usr.bin/perl/cpan/Win32/Win32.xs index de3764edab5..03519cbc3ad 100644 --- a/gnu/usr.bin/perl/cpan/Win32/Win32.xs +++ b/gnu/usr.bin/perl/cpan/Win32/Win32.xs @@ -1,7 +1,9 @@ #define WIN32_LEAN_AND_MEAN +#include #include #include #include +#include #define PERL_NO_GET_CONTEXT #include "EXTERN.h" @@ -114,7 +116,7 @@ typedef void (WINAPI *PFNGetNativeSystemInfo)(LPSYSTEM_INFO lpSystemInfo); * WORD type has been replaced by unsigned short because * WORD is already used by Perl itself. */ -struct { +struct g_osver_t { DWORD dwOSVersionInfoSize; DWORD dwMajorVersion; DWORD dwMinorVersion; @@ -126,7 +128,7 @@ struct { unsigned short wSuiteMask; BYTE wProductType; BYTE wReserved; -} g_osver = {0, 0, 0, 0, 0, "", 0, 0, 0, 0, 0}; +} g_osver = {0, 0, 0, 0, 0, "", 0, 0, 0, 0, 0}; BOOL g_osver_ex = TRUE; #define ONE_K_BUFSIZE 1024 @@ -201,7 +203,7 @@ wstr_to_sv(pTHX_ WCHAR *wstr) * characters for the characters not in the ANSI codepage. */ SV* -get_unicode_env(pTHX_ WCHAR *name) +get_unicode_env(pTHX_ const WCHAR *name) { SV *sv = NULL; void *env; @@ -377,6 +379,7 @@ get_childenv(void) void free_childenv(void *d) { + PERL_UNUSED_ARG(d); } # define PerlDir_mapA(dir) (dir) @@ -388,7 +391,7 @@ XS(w32_ExpandEnvironmentStrings) dXSARGS; if (items != 1) - croak("usage: Win32::ExpandEnvironmentStrings($String);\n"); + croak("usage: Win32::ExpandEnvironmentStrings($String)"); if (IsWin2000()) { WCHAR value[31*1024]; @@ -536,7 +539,7 @@ XS(w32_LookupAccountName) if (items != 5) croak("usage: Win32::LookupAccountName($system, $account, $domain, " - "$sid, $sidtype);\n"); + "$sid, $sidtype)"); SIDLen = sizeof(SID); DomLen = sizeof(Domain); @@ -570,7 +573,7 @@ XS(w32_LookupAccountSID) BOOL bResult; if (items != 5) - croak("usage: Win32::LookupAccountSID($system, $sid, $account, $domain, $sidtype);\n"); + croak("usage: Win32::LookupAccountSID($system, $sid, $account, $domain, $sidtype)"); sid = SvPV_nolen(ST(1)); if (IsValidSid(sid)) { @@ -601,7 +604,7 @@ XS(w32_InitiateSystemShutdown) if (items != 5) croak("usage: Win32::InitiateSystemShutdown($machineName, $message, " - "$timeOut, $forceClose, $reboot);\n"); + "$timeOut, $forceClose, $reboot)"); machineName = SvPV_nolen(ST(0)); @@ -642,7 +645,7 @@ XS(w32_AbortSystemShutdown) char *machineName; if (items != 1) - croak("usage: Win32::AbortSystemShutdown($machineName);\n"); + croak("usage: Win32::AbortSystemShutdown($machineName)"); machineName = SvPV_nolen(ST(0)); @@ -680,7 +683,7 @@ XS(w32_MsgBox) I32 result; if (items < 1 || items > 3) - croak("usage: Win32::MsgBox($message [, $flags [, $title]]);\n"); + croak("usage: Win32::MsgBox($message [, $flags [, $title]])"); if (items > 1) flags = (DWORD)SvIV(ST(1)); @@ -696,7 +699,7 @@ XS(w32_MsgBox) Safefree(title); } else { - char *title = "Perl"; + const char *title = "Perl"; char *msg = SvPV_nolen(ST(0)); if (items > 2) title = SvPV_nolen(ST(2)); @@ -787,6 +790,8 @@ XS(w32_UnregisterServer) XS(w32_GetArchName) { dXSARGS; + if (items) + Perl_croak(aTHX_ "usage: Win32::GetArchName()"); XSRETURN_PV(getenv("PROCESSOR_ARCHITECTURE")); } @@ -796,6 +801,8 @@ XS(w32_GetChipName) SYSTEM_INFO sysinfo; HMODULE module; PFNGetNativeSystemInfo pfnGetNativeSystemInfo; + if (items) + Perl_croak(aTHX_ "usage: Win32::GetChipName()"); Zero(&sysinfo,1,SYSTEM_INFO); module = GetModuleHandle("kernel32.dll"); @@ -814,8 +821,11 @@ XS(w32_GuidGen) dXSARGS; GUID guid; char szGUID[50] = {'\0'}; - HRESULT hr = CoCreateGuid(&guid); + HRESULT hr; + if (items) + Perl_croak(aTHX_ "usage: Win32::GuidGen()"); + hr = CoCreateGuid(&guid); if (SUCCEEDED(hr)) { LPOLESTR pStr = NULL; #ifdef __cplusplus @@ -896,7 +906,7 @@ XS(w32_GetFolderPath) SV *sv; HKEY hkey; HKEY root = HKEY_CURRENT_USER; - WCHAR *name = NULL; + const WCHAR *name = NULL; switch (folder) { case CSIDL_ADMINTOOLS: name = L"Administrative Tools"; break; @@ -997,7 +1007,7 @@ XS(w32_GetFileVersion) char *data; if (items != 1) - croak("usage: Win32::GetFileVersion($filename)\n"); + croak("usage: Win32::GetFileVersion($filename)"); filename = SvPV_nolen(ST(0)); size = GetFileVersionInfoSize(filename, &handle); @@ -1048,7 +1058,9 @@ XS(w32_SetChildShowWindow) * inside the thread_intern structure, the MSWin32 implementation * lives in win32/win32.c in the core Perl distribution. */ - dXSARGS; + dSP; + I32 ax = POPMARK; + EXTEND(SP,1); XSRETURN_UNDEF; } #endif @@ -1056,8 +1068,12 @@ XS(w32_SetChildShowWindow) XS(w32_GetCwd) { dXSARGS; + char* ptr; + if (items) + Perl_croak(aTHX_ "usage: Win32::GetCwd()"); + /* Make the host for current directory */ - char* ptr = PerlEnv_get_childdir(); + ptr = PerlEnv_get_childdir(); /* * If ptr != Nullch * then it worked, set PV valid, @@ -1108,6 +1124,8 @@ XS(w32_GetNextAvailDrive) char ix = 'C'; char root[] = "_:\\"; + if (items) + Perl_croak(aTHX_ "usage: Win32::GetNextAvailDrive()"); EXTEND(SP,1); while (ix <= 'Z') { root[0] = ix++; @@ -1122,6 +1140,8 @@ XS(w32_GetNextAvailDrive) XS(w32_GetLastError) { dXSARGS; + if (items) + Perl_croak(aTHX_ "usage: Win32::GetLastError()"); EXTEND(SP,1); XSRETURN_IV(GetLastError()); } @@ -1138,6 +1158,8 @@ XS(w32_SetLastError) XS(w32_LoginName) { dXSARGS; + if (items) + Perl_croak(aTHX_ "usage: Win32::LoginName()"); EXTEND(SP,1); if (IsWin2000()) { WCHAR name[128]; @@ -1164,6 +1186,8 @@ XS(w32_NodeName) dXSARGS; char name[MAX_COMPUTERNAME_LENGTH+1]; DWORD size = sizeof(name); + if (items) + Perl_croak(aTHX_ "usage: Win32::NodeName()"); EXTEND(SP,1); if (GetComputerName(name,&size)) { /* size does NOT include NULL :-( */ @@ -1178,9 +1202,11 @@ XS(w32_DomainName) { dXSARGS; HMODULE module = LoadLibrary("netapi32.dll"); - PFNNetApiBufferFree pfnNetApiBufferFree; - PFNNetWkstaGetInfo pfnNetWkstaGetInfo; + PFNNetApiBufferFree pfnNetApiBufferFree = NULL; + PFNNetWkstaGetInfo pfnNetWkstaGetInfo = NULL; + if (items) + Perl_croak(aTHX_ "usage: Win32::DomainName()"); if (module) { GETPROC(NetApiBufferFree); GETPROC(NetWkstaGetInfo); @@ -1242,8 +1268,10 @@ XS(w32_FsType) dXSARGS; char fsname[256]; DWORD flags, filecomplen; + if (items) + Perl_croak(aTHX_ "usage: Win32::FsType()"); if (GetVolumeInformation(NULL, NULL, 0, NULL, &filecomplen, - &flags, fsname, sizeof(fsname))) { + &flags, fsname, sizeof(fsname))) { if (GIMME_V == G_ARRAY) { XPUSHs(sv_2mortal(newSVpvn(fsname,strlen(fsname)))); XPUSHs(sv_2mortal(newSViv(flags))); @@ -1260,6 +1288,8 @@ XS(w32_FsType) XS(w32_GetOSVersion) { dXSARGS; + if (items) + Perl_croak(aTHX_ "usage: Win32::GetOSVersion()"); if (GIMME_V == G_SCALAR) { XSRETURN_IV(g_osver.dwPlatformId); @@ -1282,6 +1312,8 @@ XS(w32_GetOSVersion) XS(w32_IsWinNT) { dXSARGS; + if (items) + Perl_croak(aTHX_ "usage: Win32::IsWinNT()"); EXTEND(SP,1); XSRETURN_IV(IsWinNT()); } @@ -1289,6 +1321,8 @@ XS(w32_IsWinNT) XS(w32_IsWin95) { dXSARGS; + if (items) + Perl_croak(aTHX_ "usage: Win32::IsWin95()"); EXTEND(SP,1); XSRETURN_IV(IsWin95()); } @@ -1364,6 +1398,8 @@ XS(w32_GetTickCount) { dXSARGS; DWORD msec = GetTickCount(); + if (items) + Perl_croak(aTHX_ "usage: Win32::GetTickCount()"); EXTEND(SP,1); if ((IV)msec > 0) XSRETURN_IV(msec); @@ -1525,7 +1561,7 @@ XS(w32_GetLongPathName) WCHAR wide_path[MAX_PATH+1]; WCHAR *long_path; - if (wcslen(wstr) < countof(wide_path)) { + if (wcslen(wstr) < (size_t)countof(wide_path)) { wcscpy(wide_path, wstr); long_path = my_longpathW(wide_path); if (long_path) { @@ -1619,6 +1655,8 @@ XS(w32_OutputDebugString) XS(w32_GetCurrentProcessId) { dXSARGS; + if (items) + Perl_croak(aTHX_ "usage: Win32::GetCurrentProcessId()"); EXTEND(SP,1); XSRETURN_IV(GetCurrentProcessId()); } @@ -1626,6 +1664,8 @@ XS(w32_GetCurrentProcessId) XS(w32_GetCurrentThreadId) { dXSARGS; + if (items) + Perl_croak(aTHX_ "usage: Win32::GetCurrentThreadId()"); EXTEND(SP,1); XSRETURN_IV(GetCurrentThreadId()); } @@ -1713,6 +1753,8 @@ XS(w32_GetProductInfo) XS(w32_GetACP) { dXSARGS; + if (items) + Perl_croak(aTHX_ "usage: Win32::GetACP()"); EXTEND(SP,1); XSRETURN_IV(GetACP()); } @@ -1720,6 +1762,8 @@ XS(w32_GetACP) XS(w32_GetConsoleCP) { dXSARGS; + if (items) + Perl_croak(aTHX_ "usage: Win32::GetConsoleCP()"); EXTEND(SP,1); XSRETURN_IV(GetConsoleCP()); } @@ -1727,6 +1771,8 @@ XS(w32_GetConsoleCP) XS(w32_GetConsoleOutputCP) { dXSARGS; + if (items) + Perl_croak(aTHX_ "usage: Win32::GetConsoleOutputCP()"); EXTEND(SP,1); XSRETURN_IV(GetConsoleOutputCP()); } @@ -1734,6 +1780,8 @@ XS(w32_GetConsoleOutputCP) XS(w32_GetOEMCP) { dXSARGS; + if (items) + Perl_croak(aTHX_ "usage: Win32::GetOEMCP()"); EXTEND(SP,1); XSRETURN_IV(GetOEMCP()); } @@ -1764,7 +1812,7 @@ PROTOTYPES: DISABLE BOOT: { - char *file = __FILE__; + const char *file = __FILE__; if (g_osver.dwOSVersionInfoSize == 0) { g_osver.dwOSVersionInfoSize = sizeof(g_osver); diff --git a/gnu/usr.bin/perl/cpan/Win32API-File/File.pm b/gnu/usr.bin/perl/cpan/Win32API-File/File.pm index 10c5d2ff662..804a7f6ea00 100644 --- a/gnu/usr.bin/perl/cpan/Win32API-File/File.pm +++ b/gnu/usr.bin/perl/cpan/Win32API-File/File.pm @@ -10,7 +10,7 @@ use Fcntl qw( O_RDONLY O_RDWR O_WRONLY O_APPEND O_BINARY O_TEXT ); use vars qw( $VERSION @ISA ); use vars qw( @EXPORT @EXPORT_OK @EXPORT_FAIL %EXPORT_TAGS ); -$VERSION= '0.1203'; +$VERSION= '0.1203_01'; use base qw( Exporter DynaLoader Tie::Handle IO::File ); diff --git a/gnu/usr.bin/perl/cpan/Win32API-File/File.xs b/gnu/usr.bin/perl/cpan/Win32API-File/File.xs index 83971d00002..91978ff3128 100644 --- a/gnu/usr.bin/perl/cpan/Win32API-File/File.xs +++ b/gnu/usr.bin/perl/cpan/Win32API-File/File.xs @@ -14,6 +14,7 @@ #endif #define WIN32_LEAN_AND_MEAN /* Tell windows.h to skip much */ +#include #include #include diff --git a/gnu/usr.bin/perl/cpan/autodie/lib/Fatal.pm b/gnu/usr.bin/perl/cpan/autodie/lib/Fatal.pm index 16e17434742..09abfb8536d 100644 --- a/gnu/usr.bin/perl/cpan/autodie/lib/Fatal.pm +++ b/gnu/usr.bin/perl/cpan/autodie/lib/Fatal.pm @@ -8,7 +8,7 @@ use strict; use warnings; use Tie::RefHash; # To cache subroutine refs use Config; -use Scalar::Util qw(set_prototype); +use Scalar::Util qw(set_prototype looks_like_number); use autodie::Util qw( fill_protos @@ -55,7 +55,7 @@ use constant ERROR_58_HINTS => q{Non-subroutine %s hints for %s are not supporte use constant MIN_IPC_SYS_SIMPLE_VER => 0.12; -our $VERSION = '2.29'; # VERSION: Generated by DZP::OurPkg::Version +our $VERSION = '2.32'; # VERSION: Generated by DZP::OurPkg::Version our $Debug ||= 0; @@ -165,6 +165,9 @@ my %TAGS = ( ':2.27' => [qw(:default)], ':2.28' => [qw(:default)], ':2.29' => [qw(:default)], + ':2.30' => [qw(:default)], + ':2.31' => [qw(:default)], + ':2.32' => [qw(:default)], ); @@ -580,7 +583,12 @@ sub unimport { # Record the current sub to be reinstalled at end of scope # and then restore the original (can be undef for "CORE::" # subs) - $reinstall_subs{$symbol} = \&$sub; + + { + no strict 'refs'; ## no critic # to avoid: Can't use string (...) as a symbol ref ... + $reinstall_subs{$symbol} = \&$sub + if exists ${"${pkg}::"}{$symbol}; + } $uninstall_subs{$symbol} = $Original_user_sub{$sub}; } @@ -1023,6 +1031,26 @@ sub _one_invocation { }; } + if ($call eq 'CORE::kill') { + + return qq[ + + my \$num_things = \@_ - $Returns_num_things_changed{$call}; + my \$context = ! defined wantarray() ? 'void' : 'scalar'; + my \$signal = \$_[0]; + my \$retval = $call(@argv); + my \$sigzero = looks_like_number( \$signal ) && \$signal == 0; + + if ( ( \$sigzero && \$context eq 'void' ) + or ( ! \$sigzero && \$retval != \$num_things ) ) { + + $die; + } + + return \$retval; + ]; + } + if (exists $Returns_num_things_changed{$call}) { # Some things return the number of things changed (like diff --git a/gnu/usr.bin/perl/cpan/autodie/lib/autodie.pm b/gnu/usr.bin/perl/cpan/autodie/lib/autodie.pm index 5934c138ed0..8f62d670d80 100644 --- a/gnu/usr.bin/perl/cpan/autodie/lib/autodie.pm +++ b/gnu/usr.bin/perl/cpan/autodie/lib/autodie.pm @@ -9,7 +9,7 @@ our $VERSION; # ABSTRACT: Replace functions with ones that succeed or die with lexical scope BEGIN { - our $VERSION = '2.29'; # VERSION: Generated by DZP::OurPkg::Version + our $VERSION = '2.32'; # VERSION: Generated by DZP::OurPkg::Version } use constant ERROR_WRONG_FATAL => q{ @@ -116,32 +116,6 @@ Exceptions produced by the C pragma are members of the L class. The preferred way to work with these exceptions under Perl 5.10 is as follows: - use feature qw(switch); - - eval { - use autodie; - - open(my $fh, '<', $some_file); - - my @records = <$fh>; - - # Do things with @records... - - close($fh); - - }; - - given ($@) { - when (undef) { say "No error"; } - when ('open') { say "Error from open"; } - when (':io') { say "Non-open, IO error."; } - when (':all') { say "All other autodie errors." } - default { say "Not an autodie error at all." } - } - -Under Perl 5.8, the C structure is not available, so the -following structure may be used: - eval { use autodie; @@ -268,7 +242,7 @@ C and C with: =head2 print -The autodie pragma B<>>. +The autodie pragma BZ<>>. =head2 flock @@ -370,6 +344,14 @@ any hints available. See also L. +=head1 Tips and Tricks + +=head2 Importing autodie into another namespace than "caller" + +It is possible to import autodie into a different namespace by using +L. However, you have to pass a "caller depth" (rather +than a package name) for this to work correctly. + =head1 BUGS "Used only once" warnings can be generated when C or C diff --git a/gnu/usr.bin/perl/cpan/autodie/lib/autodie/exception.pm b/gnu/usr.bin/perl/cpan/autodie/lib/autodie/exception.pm index 8743719cb84..d4c14f9f7d9 100644 --- a/gnu/usr.bin/perl/cpan/autodie/lib/autodie/exception.pm +++ b/gnu/usr.bin/perl/cpan/autodie/lib/autodie/exception.pm @@ -4,7 +4,7 @@ use strict; use warnings; use Carp qw(croak); -our $VERSION = '2.29002'; +our $VERSION = '2.32'; # VERSION: Generated by DZP::OurPkg:Version # ABSTRACT: Exceptions from autodying functions. our $DEBUG = 0; diff --git a/gnu/usr.bin/perl/cpan/autodie/lib/autodie/exception/system.pm b/gnu/usr.bin/perl/cpan/autodie/lib/autodie/exception/system.pm index e6305fd42ea..b0e270c056a 100644 --- a/gnu/usr.bin/perl/cpan/autodie/lib/autodie/exception/system.pm +++ b/gnu/usr.bin/perl/cpan/autodie/lib/autodie/exception/system.pm @@ -5,7 +5,7 @@ use warnings; use parent 'autodie::exception'; use Carp qw(croak); -our $VERSION = '2.29'; # VERSION: Generated by DZP::OurPkg:Version +our $VERSION = '2.32'; # VERSION: Generated by DZP::OurPkg:Version # ABSTRACT: Exceptions from autodying system(). diff --git a/gnu/usr.bin/perl/cpan/autodie/lib/autodie/hints.pm b/gnu/usr.bin/perl/cpan/autodie/lib/autodie/hints.pm index be9fbceb475..c3f83ed0ece 100644 --- a/gnu/usr.bin/perl/cpan/autodie/lib/autodie/hints.pm +++ b/gnu/usr.bin/perl/cpan/autodie/lib/autodie/hints.pm @@ -5,7 +5,7 @@ use warnings; use constant PERL58 => ( $] < 5.009 ); -our $VERSION = '2.29001'; +our $VERSION = '2.32'; # VERSION: Generated by DZP::OurPkg:Version # ABSTRACT: Provide hints about user subroutines to autodie @@ -121,7 +121,7 @@ other things. You can specify different hints for how failure should be identified in scalar and list contexts. These examples apply for use in the C subroutine and when -calling Cset_hints_for()>. +calling C<< autodie::hints->set_hints_for() >>. The most common context-specific hints are: diff --git a/gnu/usr.bin/perl/cpan/autodie/lib/autodie/skip.pm b/gnu/usr.bin/perl/cpan/autodie/lib/autodie/skip.pm index 9a048fe62f2..ad9706caa0f 100644 --- a/gnu/usr.bin/perl/cpan/autodie/lib/autodie/skip.pm +++ b/gnu/usr.bin/perl/cpan/autodie/lib/autodie/skip.pm @@ -2,7 +2,7 @@ package autodie::skip; use strict; use warnings; -our $VERSION = '2.29'; # VERSION +our $VERSION = '2.32'; # VERSION # This package exists purely so people can inherit from it, # which isn't at all how roles are supposed to work, but it's diff --git a/gnu/usr.bin/perl/cpan/autodie/t/version.t b/gnu/usr.bin/perl/cpan/autodie/t/version.t index 7accf05dc0d..5fad742110b 100755 --- a/gnu/usr.bin/perl/cpan/autodie/t/version.t +++ b/gnu/usr.bin/perl/cpan/autodie/t/version.t @@ -5,6 +5,11 @@ use Test::More; if (not $ENV{RELEASE_TESTING}) { plan( skip_all => 'Release test. Set $ENV{RELEASE_TESTING} to true to run.'); } + +if( $ENV{AUTOMATED_TESTING} ) { + plan( skip_all => 'This test requires dzil and that is not supported on github actions'); +} + plan tests => 8; # For the moment, we'd like all our versions to be the same. @@ -18,6 +23,8 @@ require autodie::hints; require autodie::exception; require autodie::exception::system; +diag(explain(\%ENV)); + ok(defined($autodie::VERSION), 'autodie has a version'); ok(defined($autodie::exception::VERSION), 'autodie::exception has a version'); ok(defined($autodie::hints::VERSION), 'autodie::hints has a version'); diff --git a/gnu/usr.bin/perl/cpan/parent/lib/parent.pm b/gnu/usr.bin/perl/cpan/parent/lib/parent.pm index 9bf99699c14..f2405efe7ee 100644 --- a/gnu/usr.bin/perl/cpan/parent/lib/parent.pm +++ b/gnu/usr.bin/perl/cpan/parent/lib/parent.pm @@ -1,7 +1,7 @@ package parent; use strict; -our $VERSION = '0.237'; +our $VERSION = '0.238'; sub import { my $class = shift; @@ -99,7 +99,15 @@ that had accumulated in it. =head1 SEE ALSO -L +=over 4 + +=item L + +=item L + +A fork of L that provides version checking in parent class modules. + +=back =head1 AUTHORS AND CONTRIBUTORS diff --git a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq.pm b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq.pm index b3645bc3cbb..c8016cf5233 100644 --- a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq.pm +++ b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq.pm @@ -2,6 +2,6 @@ use strict; use warnings; package perlfaq; -our $VERSION = '5.20190126'; +our $VERSION = '5.20200523'; 1; diff --git a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq.pod b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq.pod index 3dd9f6c3c93..3b7345aa64a 100644 --- a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq.pod +++ b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq.pod @@ -4,7 +4,7 @@ perlfaq - Frequently asked questions about Perl =head1 VERSION -version 5.20190126 +version 5.20200523 =head1 DESCRIPTION @@ -89,11 +89,11 @@ Which version of Perl should I use? =item * -What are Perl 4, Perl 5, or Perl 6? +What are Perl 4, Perl 5, or Raku (Perl 6)? =item * -What is Perl 6? +What is Raku (Perl 6)? =item * diff --git a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq1.pod b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq1.pod index 4c023f8eb41..0ec9f16161c 100644 --- a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq1.pod +++ b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq1.pod @@ -4,7 +4,7 @@ perlfaq1 - General Questions About Perl =head1 VERSION -version 5.20190126 +version 5.20200523 =head1 DESCRIPTION @@ -123,11 +123,11 @@ current stable release of Perl. =back -=head2 What are Perl 4, Perl 5, or Perl 6? +=head2 What are Perl 4, Perl 5, or Raku (Perl 6)? -In short, Perl 4 is the parent to both Perl 5 and Perl 6. Perl 5 is the older -sibling, and though they are different languages, someone who knows one will -spot many similarities in the other. +In short, Perl 4 is the parent to both Perl 5 and Raku (formerly known as +Perl 6). Perl 5 is the older sibling, and though they are different languages, +someone who knows one will spot many similarities in the other. The number after Perl (i.e. the 5 after Perl 5) is the major release of the perl interpreter as well as the version of the language. Each @@ -138,31 +138,30 @@ The current major release of Perl is Perl 5, first released in 1994. It can run scripts from the previous major release, Perl 4 (March 1991), but has significant differences. -Perl 6 is a reinvention of Perl, it is a language in the same lineage but -not compatible. The two are complementary, not mutually exclusive. Perl 6 is -not meant to replace Perl 5, and vice versa. See L below -to find out more. +Raku is a reinvention of Perl, a language in the same lineage but +not compatible. The two are complementary, not mutually exclusive. Raku is +not meant to replace Perl, and vice versa. See L +below to find out more. See L for a history of Perl revisions. -=head2 What is Perl 6? +=head2 What is Raku (Perl 6)? -Perl 6 was I described as the community's rewrite of Perl 5, -however as the language evolved, it became clear that it is a separate -language, but in the same language family as Perl 5. +Raku (formerly known as Perl 6) was I described as the community's +rewrite of Perl, however as the language evolved, it became clear that it is +a separate language, but in the same language family as Perl. -Perl 6 is not intended primarily as a replacement for Perl 5, but as its -own thing - and libraries exist to allow you to call Perl 5 code from Perl -6 programs and vice versa. +Raku is not intended primarily as a replacement for Perl, but as its +own thing - and libraries exist to allow you to call Perl code from Raku +programs and vice versa. -Contrary to popular belief, Perl 6 and Perl 5 peacefully coexist with one -another. Perl 6 has proven to be a fascinating source of ideas for those -using Perl 5 (the L object system is a well-known example). There is +Contrary to popular belief, Raku and Perl peacefully coexist with one +another. Raku has proven to be a fascinating source of ideas for those +using Perl (the L object system is a well-known example). There is overlap in the communities, and this overlap fosters the tradition of sharing and borrowing that have been instrumental to Perl's success. -If you want to learn more about Perl 6 read the Perl 6 developers -page at L and get involved. +For more about Raku see L. "We're really serious about reinventing everything that needs reinventing." --Larry Wall diff --git a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq2.pod b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq2.pod index c039bdfd133..447ad087eb6 100644 --- a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq2.pod +++ b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq2.pod @@ -4,7 +4,7 @@ perlfaq2 - Obtaining and Learning about Perl =head1 VERSION -version 5.20190126 +version 5.20200523 =head1 DESCRIPTION @@ -213,10 +213,9 @@ First, ensure that you've found an actual bug. Second, ensure you've found an actual bug. If you've found a bug with the perl interpreter or one of the modules -in the standard library (those that come with Perl), you can use the -L utility that comes with Perl (>= 5.004). It collects -information about your installation to include with your message, then -sends the message to the right place. +in the standard library (those that come with Perl), you can submit a +bug report to the GitHub issue tracker at +L. To determine if a module came with your version of Perl, you can install and use the L module. It has the information diff --git a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq3.pod b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq3.pod index df99fd8d878..481c3c94674 100644 --- a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq3.pod +++ b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq3.pod @@ -4,7 +4,7 @@ perlfaq3 - Programming Tools =head1 VERSION -version 5.20190126 +version 5.20200523 =head1 DESCRIPTION @@ -300,8 +300,8 @@ L , and "Profiling in Perl" L . Perl.com has two interesting articles on profiling: "Profiling Perl", -by Simon Cozens, L and "Debugging and -Profiling mod_perl Applications", by Frank Wiles, +by Simon Cozens, L +and "Debugging and Profiling mod_perl Applications", by Frank Wiles, L . Randal L. Schwartz writes about profiling in "Speeding up Your Perl @@ -340,7 +340,7 @@ Put that in your F<.exrc> file (replacing the caret characters with control characters) and away you go. In insert mode, ^T is for indenting, ^D is for undenting, and ^O is for blockdenting--as it were. A more complete example, with comments, can be found at -L +L =head2 Is there an IDE or Windows Perl Editor? @@ -497,7 +497,7 @@ L =item Vile -L +L =back @@ -558,7 +558,7 @@ are text editors for OS X that have a Perl sensitivity mode =head2 Where can I get Perl macros for vi? For a complete version of Tom Christiansen's vi configuration file, -see L , +see L , the standard benchmark file for vi emulators. The file runs best with nvi, the current version of vi out of Berkeley, which incidentally can be built with an embedded Perl interpreter--see L . @@ -581,7 +581,7 @@ For CPerlMode, see L The Curses module from CPAN provides a dynamically loadable object module interface to a curses library. A small demo can be found at the -directory L ; +directory L ; this program repeats a command and updates the screen as needed, rendering B similar to B. @@ -1066,7 +1066,7 @@ guides and references in L or in the CGI MetaFAQ: L -Looking in to L and modern Perl web frameworks is highly recommended, +Looking into L and modern Perl web frameworks is highly recommended, though; web programming in Perl has evolved a long way from the old days of simple CGI scripts. @@ -1098,7 +1098,8 @@ XS support files. Download the ExtUtils::Embed kit from CPAN and run `make test'. If the tests pass, read the pods again and again and again. If they -fail, see L and send a bug report with the output of +fail, submit a bug report to L +with the output of C along with C. =head2 When I tried to run my script, I got this message. What does it mean? diff --git a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq4.pod b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq4.pod index 55f9f6fd138..1a20aba2e71 100644 --- a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq4.pod +++ b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq4.pod @@ -4,7 +4,7 @@ perlfaq4 - Data Manipulation =head1 VERSION -version 5.20190126 +version 5.20200523 =head1 DESCRIPTION @@ -1422,21 +1422,7 @@ Hearing the word "in" is an Idication that you probably should have used a hash, not a list or array, to store your data. Hashes are designed to answer this question quickly and efficiently. Arrays aren't. -That being said, there are several ways to approach this. In Perl 5.10 -and later, you can use the smart match operator to check that an item is -contained in an array or a hash: - - use 5.010; - - if( $item ~~ @array ) { - say "The array contains $item" - } - - if( $item ~~ %hash ) { - say "The hash contains $item" - } - -With earlier versions of Perl, you have to do a bit more work. If you +That being said, there are several ways to approach this. If you are going to make this query many times over arbitrary string values, the fastest way is probably to invert the original array and maintain a hash whose keys are the first array's values: @@ -1472,16 +1458,16 @@ of the original list or array. They only pay off if you have to test multiple values against the same array. If you are testing only once, the standard module L exports -the function C for this purpose. It works by stopping once it +the function C for this purpose. It works by stopping once it finds the element. It's written in C for speed, and its Perl equivalent looks like this subroutine: - sub first (&@) { + sub any (&@) { my $code = shift; foreach (@_) { - return $_ if &{$code}(); + return 1 if $code->(); } - undef; + return 0; } If speed is of little concern, the common idiom uses grep in scalar context @@ -1514,19 +1500,6 @@ in either A or in B but not in both. Think of it as an xor operation. =head2 How do I test whether two arrays or hashes are equal? -With Perl 5.10 and later, the smart match operator can give you the answer -with the least amount of work: - - use 5.010; - - if( @array1 ~~ @array2 ) { - say "The arrays are the same"; - } - - if( %hash1 ~~ %hash2 ) # doesn't check values! { - say "The hash keys are the same"; - } - The following code works for single-level arrays. It uses a stringwise comparison, and does not distinguish defined versus undefined empty strings. Modify if you have other needs. diff --git a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq5.pod b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq5.pod index aa7764b969d..a7fc0eabd12 100644 --- a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq5.pod +++ b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq5.pod @@ -4,7 +4,7 @@ perlfaq5 - Files and Formats =head1 VERSION -version 5.20190126 +version 5.20200523 =head1 DESCRIPTION diff --git a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq6.pod b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq6.pod index eeaad01e2b9..9a45f0e6703 100644 --- a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq6.pod +++ b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq6.pod @@ -4,7 +4,7 @@ perlfaq6 - Regular Expressions =head1 VERSION -version 5.20190126 +version 5.20200523 =head1 DESCRIPTION diff --git a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq7.pod b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq7.pod index c2014646cc2..a69e0536f08 100644 --- a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq7.pod +++ b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq7.pod @@ -4,7 +4,7 @@ perlfaq7 - General Perl Language Issues =head1 VERSION -version 5.20190126 +version 5.20200523 =head1 DESCRIPTION diff --git a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq8.pod b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq8.pod index d9418ed5039..8ee088a3594 100644 --- a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq8.pod +++ b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq8.pod @@ -4,7 +4,7 @@ perlfaq8 - System Interaction =head1 VERSION -version 5.20190126 +version 5.20200523 =head1 DESCRIPTION @@ -1323,7 +1323,7 @@ settings. See the L documentation for more details. (contributed by brian d foy) If you know the directory already, you can add it to C<@INC> as you would -for any other directory. You might if you know the directory +for any other directory. You might C if you know the directory at compile time: use lib $directory; @@ -1400,10 +1400,6 @@ environment variables, run-time switches, and in-code statements: =back -The last is particularly useful because it knows about machine-dependent -architectures. The C pragmatic module was first -included with the 5.002 release of Perl. - =head2 Where are modules installed? Modules are installed on a case-by-case basis (as provided by the methods diff --git a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq9.pod b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq9.pod index 4a6799c5894..15ca2d03b8b 100644 --- a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq9.pod +++ b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq9.pod @@ -4,7 +4,7 @@ perlfaq9 - Web, Email and Networking =head1 VERSION -version 5.20190126 +version 5.20200523 =head1 DESCRIPTION @@ -78,7 +78,7 @@ Plack is like Ruby's Rack or Python's Paste for WSGI. You could build a web site using L and your own code, but for anything other than a very basic web site, using a web framework -(that uses L) is a better option. +(that uses L) is a better option. =head2 How do I remove HTML from a string? @@ -95,29 +95,30 @@ L or L. You might even use L as an example for something specifically suited to your needs. -You can use L to extract URLs from an arbitrary text document. +You can use L or L to extract URLs from an +arbitrary text document. =head2 How do I fetch an HTML file? (contributed by brian d foy) -Use the libwww-perl distribution. The L module can fetch web -resources and give their content back to you as a string: +The core L module can fetch web resources and give their +content back to you as a string: - use LWP::Simple qw(get); + use HTTP::Tiny; - my $html = get( "http://www.example.com/index.html" ); + my $ua = HTTP::Tiny->new; + my $html = $ua->get( "http://www.example.com/index.html" )->{content}; It can also store the resource directly in a file: - use LWP::Simple qw(getstore); + $ua->mirror( "http://www.example.com/index.html", "foo.html" ); - getstore( "http://www.example.com/index.html", "foo.html" ); - -If you need to do something more complicated, you can use -L module to create your own user-agent (e.g. browser) -to get the job done. If you want to simulate an interactive web -browser, you can use the L module. +If you need to do something more complicated, the L object can +be customized by setting attributes, or you can use L from +the libwww-perl distribution or L from the Mojolicious +distribution to make common tasks easier. If you want to simulate an +interactive web browser, you can use the L module. =head2 How do I automate an HTML form submission? @@ -126,25 +127,26 @@ and forms or a web site, you can use L. See its documentation for all the details. If you're submitting values using the GET method, create a URL and encode -the form using the C method: +the form using the C method from L: + + use HTTP::Tiny; - use LWP::Simple; - use URI::URL; + my $ua = HTTP::Tiny->new; - my $url = url('L; - $url->query_form(module => 'DB_File', readme => 1); - $content = get($url); + my $query = $ua->www_form_urlencode([ q => 'DB_File', lucky => 1 ]); + my $url = "https://metacpan.org/search?$query"; + my $content = $ua->get($url)->{content}; -If you're using the POST method, create your own user agent and encode -the content appropriately. +If you're using the POST method, the C method will encode the +content appropriately. - use HTTP::Request::Common qw(POST); - use LWP::UserAgent; + use HTTP::Tiny; - my $ua = LWP::UserAgent->new(); - my $req = POST 'L, - [ module => 'DB_File', readme => 1 ]; - my $content = $ua->request($req)->as_string; + my $ua = HTTP::Tiny->new; + + my $url = 'https://metacpan.org/search'; + my $form = [ q => 'DB_File', lucky => 1 ]; + my $content = $ua->post_form($url, $form)->{content}; =head2 How do I decode or create those %-encodings on the web? X X X @@ -287,26 +289,18 @@ your policy says it is. You really are best off asking the user. =head2 How do I send email? -Use the L and L modules, like so: +Use the L module, like so: # first, create your message - my $message = Email::MIME->create( - header_str => [ - From => 'you@example.com', - To => 'friend@example.com', - Subject => 'Happy birthday!', - ], - attributes => { - encoding => 'quoted-printable', - charset => 'utf-8', - }, - body_str => "Happy birthday to you!\n", - ); - - use Email::Sender::Simple qw(sendmail); - sendmail($message); - -By default, L will try `sendmail` first, if it exists + my $message = Email::Stuffer->from('you@example.com') + ->to('friend@example.com') + ->subject('Happy birthday!') + ->text_body("Happy birthday to you!\n"); + + $message->send_or_die; + +By default, L (the C and C methods +use this under the hood) will try C first, if it exists in your $PATH. This generally isn't the case. If there's a remote mail server you use to send mail, consider investigating one of the Transport classes. At time of writing, the available transports include: @@ -326,14 +320,9 @@ uses TLS or SSL and can authenticate to the server via SASL. =back -Telling L to use your transport is straightforward. +Telling L to use your transport is straightforward. - sendmail( - $message, - { - transport => $email_sender_transport_object, - } - ); + $message->transport($email_sender_transport_object)->send_or_die; =head2 How do I use MIME to make an attachment to a mail message? @@ -342,6 +331,15 @@ objects themselves are parts and can be attached to other L objects. Consult the L documentation for more information, including all of the supported methods and examples of their use. +L uses L under the hood to construct +messages, and wraps the most common attachment tasks with the simple +C and C methods. + + Email::Stuffer->to('friend@example.com') + ->subject('The file') + ->attach_file('stuff.csv') + ->send_or_die; + =head2 How do I read email? Use the L module, like so: diff --git a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlglossary.pod b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlglossary.pod index 3fef83de0db..2e7eedad3c5 100644 --- a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlglossary.pod +++ b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlglossary.pod @@ -7,7 +7,7 @@ perlglossary - Perl Glossary =head1 VERSION -version 5.20190126 +version 5.20200523 =head1 DESCRIPTION diff --git a/gnu/usr.bin/perl/cpan/podlators/Makefile.PL b/gnu/usr.bin/perl/cpan/podlators/Makefile.PL index a2008fefc71..ff76df5f9f7 100644 --- a/gnu/usr.bin/perl/cpan/podlators/Makefile.PL +++ b/gnu/usr.bin/perl/cpan/podlators/Makefile.PL @@ -4,7 +4,7 @@ # which only supports that build method, and because it is a dependency of # other build systems like Module::Build. # -# Copyright 1999-2001, 2008, 2010, 2012, 2014-2016, 2018 +# Copyright 1999-2001, 2008, 2010, 2012, 2014-2016, 2018-2019 # Russ Allbery # # This program is free software; you may redistribute it and/or modify it @@ -12,7 +12,7 @@ # # SPDX-License-Identifier: GPL-1.0-or-later OR Artistic-1.0-Perl -use 5.006; +use 5.008; use strict; use warnings; @@ -89,7 +89,7 @@ my %metadata = ( LICENSE => 'perl_5', EXE_FILES => [scripts('pod2text', 'pod2man')], VERSION_FROM => 'lib/Pod/Man.pm', - MIN_PERL_VERSION => '5.006', + MIN_PERL_VERSION => '5.008', # Use *.PL files to generate the driver scripts so that we get the correct # invocation of Perl on non-UNIX platforms. @@ -111,10 +111,7 @@ my %metadata = ( realclean => { FILES => scalar(scripts('pod2text', 'pod2man')) }, # Dependencies on other modules. - PREREQ_PM => { - 'Encode' => 0, - 'Pod::Simple' => 3.06, - }, + PREREQ_PM => { 'Pod::Simple' => 3.06 }, # Older versions of ExtUtils::MakeMaker don't pick up nested test # directories by default. diff --git a/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Man.pm b/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Man.pm index 71798c2533e..d7c029357a2 100644 --- a/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Man.pm +++ b/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Man.pm @@ -14,7 +14,7 @@ package Pod::Man; -use 5.006; +use 5.008; use strict; use warnings; @@ -24,7 +24,9 @@ use vars qw(@ISA %ESCAPES $PREAMBLE $VERSION); use Carp qw(carp croak); use Pod::Simple (); -# Conditionally import Encode and set $HAS_ENCODE if it is available. +# Conditionally import Encode and set $HAS_ENCODE if it is available. This is +# required to support building as part of Perl core, since podlators is built +# before Encode is. our $HAS_ENCODE; BEGIN { $HAS_ENCODE = eval { require Encode }; @@ -32,7 +34,7 @@ BEGIN { @ISA = qw(Pod::Simple); -$VERSION = '4.11'; +$VERSION = '4.14'; # Set the debugging level. If someone has inserted a debug function into this # class already, use that. Otherwise, use any Pod::Simple debug function @@ -245,13 +247,8 @@ sub init_quotes { sub init_page { my ($self) = @_; - # We used to try first to get the version number from a local binary, but - # we shouldn't need that any more. Get the version from the running Perl. - # Work a little magic to handle subversions correctly under both the - # pre-5.6 and the post-5.6 version numbering schemes. - my @version = ($] =~ /^(\d+)\.(\d{3})(\d{0,3})$/); - $version[2] ||= 0; - $version[2] *= 10 ** (3 - length $version[2]); + # Get the version from the running Perl. + my @version = ($] =~ /^(\d+)\.(\d{3})(\d+)$/); for (@version) { $_ += 0 } my $version = join ('.', @version); @@ -799,7 +796,7 @@ sub start_document { eval { my @options = (output => 1, details => 1); my @layers = PerlIO::get_layers (*{$$self{output_fh}}, @options); - if ($layers[-1] & PerlIO::F_UTF8 ()) { + if ($layers[-1] && ($layers[-1] & PerlIO::F_UTF8 ())) { $$self{ENCODE} = 0; } } @@ -903,8 +900,6 @@ sub devise_title { $cut = $i + 1; $cut++ if ($dirs[$i + 1] && $dirs[$i + 1] eq 'lib'); last; - } elsif ($dirs[$i] eq 'lib' && $dirs[$i + 1] && $dirs[0] eq 'ext') { - $cut = $i + 1; } } if ($cut > 0) { @@ -1883,7 +1878,9 @@ being the file to write the formatted output to. You can also call parse_lines() to parse an array of lines or parse_string_document() to parse a document already in memory. As with parse_file(), parse_lines() and parse_string_document() default to sending -their output to C unless changed with the output_fh() method. +their output to C unless changed with the output_fh() method. Be +aware that parse_lines() and parse_string_document() both expect raw bytes, +not decoded characters. To put the output from any parse method into a string instead of a file handle, call the output_string() method instead of output_fh(). @@ -2014,7 +2011,7 @@ are mine). =head1 COPYRIGHT AND LICENSE -Copyright 1999-2010, 2012-2018 Russ Allbery +Copyright 1999-2010, 2012-2019 Russ Allbery Substantial contributions by Sean Burke . diff --git a/gnu/usr.bin/perl/cpan/podlators/lib/Pod/ParseLink.pm b/gnu/usr.bin/perl/cpan/podlators/lib/Pod/ParseLink.pm index 0be5323973b..273c95847ac 100644 --- a/gnu/usr.bin/perl/cpan/podlators/lib/Pod/ParseLink.pm +++ b/gnu/usr.bin/perl/cpan/podlators/lib/Pod/ParseLink.pm @@ -13,7 +13,7 @@ package Pod::ParseLink; -use 5.006; +use 5.008; use strict; use warnings; @@ -23,7 +23,7 @@ use Exporter; @ISA = qw(Exporter); @EXPORT = qw(parselink); -$VERSION = '4.11'; +$VERSION = '4.14'; ############################################################################## # Implementation @@ -167,11 +167,11 @@ L for more information. =head1 AUTHOR -Russ Allbery . +Russ Allbery =head1 COPYRIGHT AND LICENSE -Copyright 2001, 2008, 2009, 2014, 2018 Russ Allbery +Copyright 2001, 2008, 2009, 2014, 2018-2019 Russ Allbery This program is free software; you may redistribute it and/or modify it under the same terms as Perl itself. diff --git a/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text.pm b/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text.pm index b05730ef476..56e6e78a86c 100644 --- a/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text.pm +++ b/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text.pm @@ -14,7 +14,7 @@ package Pod::Text; -use 5.006; +use 5.008; use strict; use warnings; @@ -30,7 +30,7 @@ use Pod::Simple (); # We have to export pod2text for backward compatibility. @EXPORT = qw(pod2text); -$VERSION = '4.11'; +$VERSION = '4.14'; # Ensure that $Pod::Simple::nbsp and $Pod::Simple::shy are available. Code # taken from Pod::Simple 3.32, but was only added in 3.30. @@ -39,16 +39,8 @@ if ($Pod::Simple::VERSION ge 3.30) { $NBSP = $Pod::Simple::nbsp; $SHY = $Pod::Simple::shy; } else { - if ($] ge 5.007_003) { - $NBSP = chr utf8::unicode_to_native(0xA0); - $SHY = chr utf8::unicode_to_native(0xAD); - } elsif (Pod::Simple::ASCII) { - $NBSP = "\xA0"; - $SHY = "\xAD"; - } else { - $NBSP = "\x41"; - $SHY = "\xCA"; - } + $NBSP = chr utf8::unicode_to_native(0xA0); + $SHY = chr utf8::unicode_to_native(0xAD); } ############################################################################## @@ -247,7 +239,7 @@ sub wrap { my $spaces = ' ' x $$self{MARGIN}; my $width = $$self{opt_width} - $$self{MARGIN}; while (length > $width) { - if (s/^([^\n]{0,$width})\s+// || s/^([^\n]{$width})//) { + if (s/^([^\n]{0,$width})[ \t\n]+// || s/^([^\n]{$width})//) { $output .= $spaces . $1 . "\n"; } else { last; @@ -265,14 +257,16 @@ sub reformat { local $_ = shift; # If we're trying to preserve two spaces after sentences, do some munging - # to support that. Otherwise, smash all repeated whitespace. + # to support that. Otherwise, smash all repeated whitespace. Be careful + # not to use \s here, which in Unicode input may match non-breaking spaces + # that we don't want to smash. if ($$self{opt_sentence}) { s/ +$//mg; s/\.\n/. \n/g; s/\n/ /g; s/ +/ /g; } else { - s/\s+/ /g; + s/[ \t\n]+/ /g; } return $self->wrap ($_); } @@ -333,15 +327,14 @@ sub start_document { # When UTF-8 output is set, check whether our output file handle already # has a PerlIO encoding layer set. If it does not, we'll need to encode - # our output before printing it (handled in the output() sub). Wrap the - # check in an eval to handle versions of Perl without PerlIO. + # our output before printing it (handled in the output() sub). $$self{ENCODE} = 0; if ($$self{opt_utf8}) { $$self{ENCODE} = 1; eval { my @options = (output => 1, details => 1); my $flag = (PerlIO::get_layers ($$self{output_fh}, @options))[-1]; - if ($flag & PerlIO::F_UTF8 ()) { + if ($flag && ($flag & PerlIO::F_UTF8 ())) { $$self{ENCODE} = 0; $$self{ENCODING} = 'UTF-8'; } @@ -919,7 +912,9 @@ being the file to write the formatted output to. You can also call parse_lines() to parse an array of lines or parse_string_document() to parse a document already in memory. As with parse_file(), parse_lines() and parse_string_document() default to sending -their output to C unless changed with the output_fh() method. +their output to C unless changed with the output_fh() method. Be +aware that parse_lines() and parse_string_document() both expect raw bytes, +not decoded characters. To put the output from any parse method into a string instead of a file handle, call the output_string() method instead of output_fh(). @@ -1006,7 +1001,7 @@ how to use Pod::Simple. =head1 COPYRIGHT AND LICENSE -Copyright 1999-2002, 2004, 2006, 2008-2009, 2012-2016, 2018 Russ Allbery +Copyright 1999-2002, 2004, 2006, 2008-2009, 2012-2016, 2018-2019 Russ Allbery This program is free software; you may redistribute it and/or modify it diff --git a/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text/Color.pm b/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text/Color.pm index 8d956f2a5dd..5d47c5ecb3b 100644 --- a/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text/Color.pm +++ b/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text/Color.pm @@ -12,7 +12,7 @@ package Pod::Text::Color; -use 5.006; +use 5.008; use strict; use warnings; @@ -23,7 +23,7 @@ use vars qw(@ISA $VERSION); @ISA = qw(Pod::Text); -$VERSION = '4.11'; +$VERSION = '4.14'; ############################################################################## # Overrides @@ -97,9 +97,6 @@ sub wrap { # $shortchar matches some sequence of $char ending in codes followed by # whitespace or the end of the string. $longchar matches exactly $width # $chars, used when we have to truncate and hard wrap. - # - # $shortchar and $longchar are created in a slightly odd way because the - # construct ${char}{0,$width} didn't do the right thing until Perl 5.8.x. my $code = '(?:\e\[[\d;]+m)'; my $char = "(?>$code*[^\\n])"; my $shortchar = '^(' . $char . "{0,$width}(?>$code*)" . ')(?:\s+|\z)'; @@ -185,7 +182,7 @@ Russ Allbery . =head1 COPYRIGHT AND LICENSE -Copyright 1999, 2001, 2004, 2006, 2008, 2009, 2018 Russ Allbery +Copyright 1999, 2001, 2004, 2006, 2008, 2009, 2018-2019 Russ Allbery This program is free software; you may redistribute it and/or modify it diff --git a/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text/Overstrike.pm b/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text/Overstrike.pm index 92a3a9330e0..53bc6afef23 100644 --- a/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text/Overstrike.pm +++ b/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text/Overstrike.pm @@ -19,7 +19,7 @@ package Pod::Text::Overstrike; -use 5.006; +use 5.008; use strict; use warnings; @@ -29,7 +29,7 @@ use Pod::Text (); @ISA = qw(Pod::Text); -$VERSION = '4.11'; +$VERSION = '4.14'; ############################################################################## # Overrides @@ -185,7 +185,7 @@ created by Russ Allbery . Subsequently updated by Russ Allbery. Copyright 2000 by Joe Smith -Copyright 2001, 2004, 2008, 2014, 2018 by Russ Allbery +Copyright 2001, 2004, 2008, 2014, 2018-2019 by Russ Allbery This program is free software; you may redistribute it and/or modify it under the same terms as Perl itself. diff --git a/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text/Termcap.pm b/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text/Termcap.pm index d36ba4f518a..be218f0bf04 100644 --- a/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text/Termcap.pm +++ b/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text/Termcap.pm @@ -12,7 +12,7 @@ package Pod::Text::Termcap; -use 5.006; +use 5.008; use strict; use warnings; @@ -24,7 +24,7 @@ use vars qw(@ISA $VERSION); @ISA = qw(Pod::Text); -$VERSION = '4.11'; +$VERSION = '4.14'; ############################################################################## # Overrides @@ -36,14 +36,6 @@ sub new { my ($self, %args) = @_; my ($ospeed, $term, $termios); - # $ENV{HOME} is usually not set on Windows. The default Term::Cap path - # may not work on Solaris. - unless (exists $ENV{TERMPATH}) { - my $home = exists $ENV{HOME} ? "$ENV{HOME}/.termcap:" : ''; - $ENV{TERMPATH} = - "${home}/etc/termcap:/usr/share/misc/termcap:/usr/share/lib/termcap"; - } - # Fall back on a hard-coded terminal speed if POSIX::Termios isn't # available (such as on VMS). eval { $termios = POSIX::Termios->new }; @@ -80,10 +72,12 @@ sub new { # Initialize Pod::Text. $self = $self->SUPER::new (%args); - # Fall back on the ANSI escape sequences if Term::Cap doesn't work. - $$self{BOLD} = $bold || "\e[1m"; - $$self{UNDL} = $undl || "\e[4m"; - $$self{NORM} = $norm || "\e[m"; + # If we were unable to get any of the formatting sequences, don't attempt + # that type of formatting. This will do weird things if bold or underline + # were available but normal wasn't, but hopefully that will never happen. + $$self{BOLD} = $bold || q{}; + $$self{UNDL} = $undl || q{}; + $$self{NORM} = $norm || q{}; return $self; } @@ -106,11 +100,19 @@ sub cmd_head2 { sub cmd_b { my $self = shift; return "$$self{BOLD}$_[1]$$self{NORM}" } sub cmd_i { my $self = shift; return "$$self{UNDL}$_[1]$$self{NORM}" } +# Return a regex that matches a formatting sequence. This will only be valid +# if we were able to get at least some termcap information. +sub format_regex { + my ($self) = @_; + my @codes = ($self->{BOLD}, $self->{UNDL}, $self->{NORM}); + return join(q{|}, map { $_ eq q{} ? () : "\Q$_\E" } @codes); +} + # Analyze a single line and return any formatting codes in effect at the end # of that line. sub end_format { my ($self, $line) = @_; - my $pattern = "(\Q$$self{BOLD}\E|\Q$$self{UNDL}\E|\Q$$self{NORM}\E)"; + my $pattern = "(" . $self->format_regex() . ")"; my $current; while ($line =~ /$pattern/g) { my $code = $1; @@ -147,15 +149,17 @@ sub wrap { my $spaces = ' ' x $$self{MARGIN}; my $width = $$self{opt_width} - $$self{MARGIN}; + # If we were unable to find any termcap sequences, use Pod::Text wrapping. + if ($self->{BOLD} eq q{} && $self->{UNDL} eq q{} && $self->{NORM} eq q{}) { + return $self->SUPER::wrap($_); + } + # $code matches a single special sequence. $char matches any number of # special sequences preceding a single character other than a newline. # $shortchar matches some sequence of $char ending in codes followed by # whitespace or the end of the string. $longchar matches exactly $width # $chars, used when we have to truncate and hard wrap. - # - # $shortchar and $longchar are created in a slightly odd way because the - # construct ${char}{0,$width} didn't do the right thing until Perl 5.8.x. - my $code = "(?:\Q$$self{BOLD}\E|\Q$$self{UNDL}\E|\Q$$self{NORM}\E)"; + my $code = "(?:" . $self->format_regex() . ")"; my $char = "(?>$code*[^\\n])"; my $shortchar = '^(' . $char . "{0,$width}(?>$code*)" . ')(?:\s+|\z)'; my $longchar = '^(' . $char . "{$width})"; @@ -225,34 +229,20 @@ text using the correct termcap escape sequences for the current terminal. Apart from the format codes, it in all ways functions like Pod::Text. See L for details and available options. -=head1 ENVIRONMENT - -This module sets the TERMPATH environment variable globally to: - - $HOME/.termcap:/etc/termcap:/usr/share/misc/termcap:/usr/share/lib/termcap - -if it isn't already set. (The first entry is omitted if the HOME -environment variable isn't set.) This is a (very old) workaround for -problems finding termcap information on older versions of Solaris, and is -not good module behavior. Please do not rely on this behavior; it may be -dropped in a future release. - -=head1 NOTES - -This module uses Term::Cap to retrieve the formatting escape sequences for -the current terminal, and falls back on the ECMA-48 (the same in this -regard as ANSI X3.64 and ISO 6429, the escape codes also used by DEC VT100 -terminals) if the bold, underline, and reset codes aren't set in the -termcap information. +This module uses L to find the correct terminal settings. See the +documentation of that module for how it finds terminal database information +and how to override that behavior if necessary. If unable to find control +strings for bold and underscore formatting, that formatting is skipped, +resulting in the same output as Pod::Text. =head1 AUTHOR -Russ Allbery . +Russ Allbery =head1 COPYRIGHT AND LICENSE -Copyright 1999, 2001-2002, 2004, 2006, 2008-2009, 2014-2015, 2018 Russ Allbery - +Copyright 1999, 2001-2002, 2004, 2006, 2008-2009, 2014-2015, 2018-2019 Russ +Allbery This program is free software; you may redistribute it and/or modify it under the same terms as Perl itself. diff --git a/gnu/usr.bin/perl/cpan/podlators/scripts/pod2man.PL b/gnu/usr.bin/perl/cpan/podlators/scripts/pod2man.PL index cc6f955350d..d6e685d2010 100644 --- a/gnu/usr.bin/perl/cpan/podlators/scripts/pod2man.PL +++ b/gnu/usr.bin/perl/cpan/podlators/scripts/pod2man.PL @@ -4,7 +4,7 @@ # required for proper start-up code on non-UNIX platforms, and is used inside # Perl core. -use 5.006; +use 5.008; use strict; use warnings; @@ -71,13 +71,12 @@ my $stdin; # Parse our options, trying to retain backward compatibility with pod2man but # allowing short forms as well. --lax is currently ignored. my %options; -$options{utf8} = 1; Getopt::Long::config ('bundling_override'); GetOptions (\%options, 'center|c=s', 'date|d=s', 'errors=s', 'fixed=s', 'fixedbold=s', 'fixeditalic=s', 'fixedbolditalic=s', 'help|h', 'lax|l', 'lquote=s', 'name|n=s', 'nourls', 'official|o', 'quotes|q=s', 'release|r=s', 'rquote=s', 'section|s=s', 'stderr', - 'verbose|v', 'utf8|u!') + 'verbose|v', 'utf8|u') or exit 1; pod2usage (0) if $options{help}; @@ -127,7 +126,7 @@ exit $status; __END__ =for stopwords -en em --stderr stderr --no-utf8 UTF-8 overdo markup MT-LEVEL Allbery Solaris URL +en em --stderr stderr --utf8 UTF-8 overdo markup MT-LEVEL Allbery Solaris URL troff troff-specific formatters uppercased Christiansen --nourls UTC prepend lquote rquote @@ -142,7 +141,7 @@ pod2man [B<--center>=I] [B<--date>=I] [B<--errors>=I