diff options
542 files changed, 10502 insertions, 53835 deletions
diff --git a/gnu/usr.bin/perl/Changes b/gnu/usr.bin/perl/Changes index 57f0664ea05..59b5bfa588f 100644 --- a/gnu/usr.bin/perl/Changes +++ b/gnu/usr.bin/perl/Changes @@ -25,2151 +25,1771 @@ to the perl5-porters mailing list. You can retrieve the messages for example from http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/ -------------- -Version v5.8.3 Maintenance release working toward v5.8.3 +Version v5.8.5 Maintenance release working toward v5.8.5 -------------- ____________________________________________________________________________ -____________________________________________________________________________ -[ 22151] By: nicholas on 2004/01/14 17:54:36 - Log: Integrate: - [ 22149] - Subject: Doc patches for File::Find - From: Andy Lester <andy@petdance.com> - Date: Mon, 12 Jan 2004 00:10:50 -0600 - Message-Id: <20040112061050.GB7308@petdance.com> - - [ 22150] - Bump version number as file has changed since 5.8.2 +[ 23139] By: nicholas on 2004/07/19 13:43:44 + Log: Oops. Forgot to mention the threads fix. Branch: maint-5.8/perl - !> lib/File/Find.pm -____________________________________________________________________________ -[ 22148] By: nicholas on 2004/01/14 16:53:02 - Log: Update Changes - Branch: maint-5.8/perl - ! Changes + ! pod/perl585delta.pod ____________________________________________________________________________ -[ 22147] By: nicholas on 2004/01/14 16:51:39 - Log: Update sample config to 5.8.3 +[ 23138] By: nicholas on 2004/07/19 13:01:47 + Log: Update the perldelta. Branch: maint-5.8/perl - ! Porting/config.sh Porting/config_H -____________________________________________________________________________ -[ 22146] By: nicholas on 2004/01/14 16:32:27 - Log: Subject: arm patches to rc1 - From: Redvers Davies <red@criticalintegration.com> - Message-Id: <1073949147.10300.143.camel@ragefire> - Date: Mon, 12 Jan 2004 18:12:27 -0500 - Branch: maint-5.8/perl - ! Cross/Makefile Cross/Makefile.SH.patch -____________________________________________________________________________ -[ 22145] By: nicholas on 2004/01/14 15:14:51 - Log: All pigs are fed, watered and ready to fly. - Branch: maint-5.8/perl - ! patchlevel.h + ! pod/perl585delta.pod ____________________________________________________________________________ -[ 22144] By: nicholas on 2004/01/14 14:48:32 +[ 23137] By: nicholas on 2004/07/19 12:43:07 Log: Update Changes Branch: maint-5.8/perl ! Changes patchlevel.h ____________________________________________________________________________ -[ 22143] By: nicholas on 2004/01/14 14:47:49 - Log: We're planning on making history today. Mind you, not that much - - only 1 line. - Branch: maint-5.8/perl - ! pod/perlhist.pod -____________________________________________________________________________ -[ 22142] By: nicholas on 2004/01/14 14:45:07 - Log: Mention that bug 24846 is fixed (utf8 join) - Branch: maint-5.8/perl - ! pod/perl583delta.pod -____________________________________________________________________________ -[ 22141] By: nicholas on 2004/01/14 14:40:59 - Log: Update changes - Branch: maint-5.8/perl - ! Changes patchlevel.h -____________________________________________________________________________ -[ 22140] By: nicholas on 2004/01/14 14:37:50 - Log: rebuild pod/perltoc.pod - Branch: maint-5.8/perl - ! pod/perltoc.pod -____________________________________________________________________________ -[ 22139] By: nicholas on 2004/01/14 14:34:46 - Log: Note that I failed to integrate the suidperl patch. me-- - Branch: maint-5.8/perl - ! pod/perl583delta.pod -____________________________________________________________________________ -[ 22138] By: nicholas on 2004/01/14 13:51:23 - Log: Revert 21936 (which solves leaks with threads and weak references) - because it can introduce new SEGVs, and I'd prefer to ship with - the same bugs as 5.8.2, rather than different bugs. - Same bugs feels like the lesser of two evils. - Branch: maint-5.8/perl - ! mg.c sv.c -____________________________________________________________________________ -[ 22137] By: nicholas on 2004/01/14 13:20:47 - Log: Integrate CGI::Fast and CGI::Util from CGI 3.03 - (just version number changes) - I don't want to integratre CGI.pm 3.03 as it also has functionality - changes, and is less than 48 hours old. +[ 23136] By: nicholas on 2004/07/19 12:27:41 + Log: Integrate: + [ 23042] + Bump $B::Deparse::VERSION Branch: maint-5.8/perl - !> lib/CGI/Fast.pm lib/CGI/Util.pm + !> ext/B/B/Deparse.pm ____________________________________________________________________________ -[ 22135] By: nicholas on 2004/01/14 12:25:57 - Log: Some more updates +[ 23134] By: nicholas on 2004/07/17 09:40:46 + Log: New sample config files. Branch: maint-5.8/perl - ! pod/perl583delta.pod + ! Porting/config.sh Porting/config_H ____________________________________________________________________________ -[ 22134] By: nicholas on 2004/01/13 23:07:41 +[ 23133] By: nicholas on 2004/07/17 09:36:41 Log: Integrate: - [ 22133] - Add VMS to the list of "don't fork" OSes - [In the most simple way possible. Fix this properly post 5.8.3 - to use $Config{d_fork} or something more robust] + [ 23120] + threads.xs doesn't check the return value of the thread creation + call. D'oh! This gives SEGVs if the OS fails to create another thread. + Cause of problem located by Nigel Sandever Branch: maint-5.8/perl - !> ext/threads/shared/t/wait.t + !> ext/threads/threads.pm ext/threads/threads.xs ____________________________________________________________________________ -[ 22132] By: nicholas on 2004/01/13 21:55:59 +[ 23132] By: nicholas on 2004/07/16 14:31:01 Log: Integrate: - [ 21644] - Document the fact that keys() and values() are optimized - for void context (as suggested by Liz.) + [ 23072] + dor and // fulfil a TODO + Correct a deviation from the Nicholas Clark style guide. - [ 22108] - documentation nit + [ 23073] + A more honest TODO - [ 22125] - Document usage of $_ and pos() inside /(?{...})/. - (see change #2367.) - Branch: maint-5.8/perl - !> pod/perlfunc.pod pod/perlop.pod pod/perlre.pod -____________________________________________________________________________ -[ 22131] By: nicholas on 2004/01/13 21:16:27 - Log: Back out 22144. - (Craig Berry informs us that the official name is - "OpenVMS Industry Standard 64" - which may be shortened to "OpenVMS I64" - Bah. Marketrdroids) - Branch: maint-5.8/perl - ! pod/perl583delta.pod -____________________________________________________________________________ -[ 22127] By: nicholas on 2004/01/13 08:55:10 - Log: Integrate: - [ 22122] - Subject: Re: 5.8.3-RC1, ext/threads/shared/t/wait still hanging - From: Mike Pomraning <mjp@pilcrow.madison.wi.us> - Message-ID: <Pine.LNX.4.58.0401121127210.15844@benevelle.wi.securepipe.com> - Date: Mon, 12 Jan 2004 12:41:52 -0600 (CST) - Branch: maint-5.8/perl - !> ext/threads/shared/t/wait.t -____________________________________________________________________________ -[ 22118] By: nicholas on 2004/01/12 12:43:13 - Log: Integrate: - [ 22117] - Subject: Re: [perl #24846] [PATCH] Apparent utf8 bug in join() in 5.8.[012] - From: SADAHIRO Tomoyuki <bqw10602@nifty.com> - Date: Mon, 12 Jan 2004 11:19:37 +0900 - Message-Id: <20040112111007.EB69.BQW10602@nifty.com> + [ 23077] + Resurrect the TODO items about Unicode filenames and Unicode %ENV + Rant a bit more about POD -> HTML + + [ 23078] + Dual lifing and dists is a TODO + + [ 23081] + Finding a way to put "I'm MAINT" in perl -v is a TODO + + [ 23082] + A decent benchmark would be useful. But it is vague. + + [ 23094] + Generalised "how many in list context" would be useful + + [ 23103] + s/sort/split/; - my mistake spotted by Dave. + + [ 23104] + Some thoughts on foreach reverse + + [ 23107] + Subject: [PATCH] split doc clarification + From: Yitzchak Scott-Thoennes <sthoenna@efn.org> + Date: Wed, 14 Jul 2004 10:19:36 -0700 + Message-Id: <20040714171936.GA1092@efn.org> + + [ 23115] + for (reverse @foo) now iterates in reverse in place. + (Just the TODO change) + + [ 23116] + Abigail notes that a re-entrant regexp engine is a todo + + [ 23129] + Typo fix from Julian Gilbey, forwarded upstream from Debian by + Brendan O'Dea + + [ 23130] + Clarify that it's only Mac OS *Classic* that uses 1904 - OS X uses + 1970 Branch: maint-5.8/perl - !> doop.c t/op/join.t + !> pod/perlfunc.pod pod/perltodo.pod pod/perluniintro.pod ____________________________________________________________________________ -[ 22116] By: nicholas on 2004/01/11 23:55:36 +[ 23131] By: nicholas on 2004/07/16 14:11:52 Log: Integrate: - [ 22115] - Subject: Re: 5.8.3-RC1, ext/threads/shared/t/wait still hanging - From: Mike Pomraning <mjp@pilcrow.madison.wi.us> - Message-ID: <Pine.LNX.4.58.0401111548010.6679@localhost.localdomain> - Date: Sun, 11 Jan 2004 16:24:18 -0600 (CST) - Branch: maint-5.8/perl - !> ext/threads/shared/t/wait.t -____________________________________________________________________________ -[ 22114] By: nicholas on 2004/01/11 23:27:27 - Log: Typo spotted by Jarkko - Branch: maint-5.8/perl - ! pod/perl583delta.pod -____________________________________________________________________________ -[ 22111] By: nicholas on 2004/01/11 19:57:50 - Log: Subject: Re: [PATCH win32/makefile.mk] (was Re: 5.8.3 RC1) - From: Abe Timmerman <abe@ztreet.demon.nl> - Message-Id: <200401111813.40829.abe@ztreet.demon.nl> - Date: Sun, 11 Jan 2004 18:13:40 +0100 + [ 23051] + Add some missing authors and remove 1 duplicate - plus revert 22092 and 22080 + [ 23127] + glob('*.c') to find documentation is dangerous when run in unclean + trees, so isntead use MANIFEST to only scan the legitimate source + files. Branch: maint-5.8/perl - ! pod/buildtoc win32/Makefile win32/makefile.mk + !> AUTHORS autodoc.pl ____________________________________________________________________________ -[ 22105] By: nicholas on 2004/01/09 22:10:43 +[ 23119] By: nicholas on 2004/07/15 16:38:38 Log: Integrate: - [ 22104] - Bah. Makefile.PL still tests the sub-MANIFEST + [ 23118] + Assimilate Cwd 2.19 Branch: maint-5.8/perl - !> ext/Storable/MANIFEST + !> ext/Cwd/Changes ext/Cwd/t/cwd.t lib/Cwd.pm ____________________________________________________________________________ -[ 22099] By: nicholas on 2004/01/08 16:52:35 - Log: Update META.yml - ext/threads and ext/PerlIO now aren't in the list - is this correct? +[ 23110] By: nicholas on 2004/07/14 23:36:17 + Log: Integrate: + [ 23071] + Subject: [PATCH] prime_env_iter and zero-length values on VMS + From: "Craig A. Berry" <craigberry@mac.com> + Date: Thu, 08 Jul 2004 23:19:05 -0500 + Message-ID: <40EE1CB9.8030407@mac.com> Branch: maint-5.8/perl - ! META.yml + !> vms/vms.c ____________________________________________________________________________ -[ 22098] By: nicholas on 2004/01/08 15:24:15 +[ 23087] By: nicholas on 2004/07/12 21:36:51 Log: Integrate: - [ 22096] - Subject: [PATCH pod/perlhist.pod] Mention 5.8.3-RC1 - From: Abigail <abigail@abigail.nl> - Message-ID: <20040107230027.GC393@abigail.nl> - Date: Thu, 8 Jan 2004 00:00:27 +0100 + [ 23076] + Perl_mode_from_discipline must update len. (else SEGV) + Diagnosis and patch from clkao + + [ 23083] + Perl_is_utf8_string(pTHX_ U8 *s, STRLEN len) + Can now handle the case + is_utf8_string(NULL,0) + again. + Why do we have code dup for Perl_is_utf8_string_loc() ? + + [ 23084] + NI-S: IMHO utf8_upgrade is just changing representation not the value + so it has no business calling SvSETMAGIC. + + [ 23085] + Bodge to make Tk work - like the UTF8 flag, the READONLY flag has too + many meanings. const const vs mutable in this case. Branch: maint-5.8/perl - !> pod/perlhist.pod + ! sv.c + !> doio.c utf8.c ____________________________________________________________________________ -[ 22097] By: nicholas on 2004/01/08 14:44:17 - Log: That was RC1. With some bonus bits +[ 23086] By: nicholas on 2004/07/12 21:19:15 + Log: Disarm the release candidate Branch: maint-5.8/perl ! patchlevel.h ____________________________________________________________________________ -[ 22095] By: nicholas on 2004/01/08 13:13:10 - Log: Remove duplicated entries, spotted by Enache Adrian +[ 23080] By: nicholas on 2004/07/11 16:07:49 + Log: Remove the Safe $VERSION FIXME. + Comment on the rearrangement of lib/unicore Branch: maint-5.8/perl - ! Changes + ! pod/perl585delta.pod ____________________________________________________________________________ -[ 22094] By: nicholas on 2004/01/08 13:09:12 - Log: Fixes from Petras Kudaras and Gisle Aas, plus document the addition - to perldiag.pod +[ 23070] By: nicholas on 2004/07/08 16:21:29 + Log: Need to copy the correct perldelta. + Also need to fix Makefile.SH to work out what to copy using pod.lst + (Spotted by Randal) Branch: maint-5.8/perl - ! pod/perl583delta.pod + ! Makefile.SH ____________________________________________________________________________ -[ 22093] By: nicholas on 2004/01/08 12:46:09 - Log: Graham says that the search.cpan.org pod finder hashes on name - The 4 files all thinking they are perldelta.pod confuses it. +[ 23069] By: nicholas on 2004/07/08 13:53:43 + Log: This is RC2. Maybe this one will last longer. Branch: maint-5.8/perl - ! pod/perl581delta.pod pod/perl582delta.pod pod/perl58delta.pod + ! patchlevel.h pod/perlhist.pod ____________________________________________________________________________ -[ 22092] By: nicholas on 2004/01/08 12:33:11 - Log: Subject: Re: [PATCH win32/makefile.mk] (was Re: 5.8.3 RC1) - From: Abe Timmerman <abe@ztreet.demon.nl> - Message-Id: <200401080156.01280.abe@ztreet.demon.nl> - Date: Thu, 8 Jan 2004 01:56:01 +0100 - Branch: maint-5.8/perl - ! win32/makefile.mk -____________________________________________________________________________ -[ 22090] By: nicholas on 2004/01/07 13:30:14 - Log: Correct timestamp on ext/IO/IO.xs - Branch: maint-5.8/perl - ! ext/IO/IO.xs -____________________________________________________________________________ -[ 22089] By: nicholas on 2004/01/07 13:19:41 - Log: Seems to be an off-by-4-years in Perforce on MacOS. Fix it. Grr. - Branch: maint-5.8/perl - ! ext/Digest/MD5/hints/MacOS.pl ext/Filter/t/call.t - ! ext/POSIX/t/taint.t lib/AutoSplit.t lib/Devel/SelfStubber.pm - ! lib/Devel/SelfStubber.t lib/File/DosGlob.t lib/Pod/t/Usage.t - ! lib/blib.pm lib/charnames.t lib/diagnostics.t lib/subs.t - ! t/comp/cpp.t t/comp/use.t t/io/inplace.t t/io/iprefix.t - ! t/lib/compmod.pl t/lib/filter-util.pl t/lib/warnings/mg - ! t/op/glob.t t/op/method.t t/op/mkdir.t t/op/read.t - ! t/op/recurse.t t/op/srand.t t/op/study.t t/op/subst_wamp.t - ! t/pod/testp2pt.pl t/run/exit.t t/run/switchI.t - ! t/run/switchPx.t t/run/switchx.t t/x2p/s2p.t utils/splain.PL -____________________________________________________________________________ -[ 22088] By: nicholas on 2004/01/07 13:10:22 - Log: Attempt timestamp fixup - Branch: maint-5.8/perl - ! ext/IO/IO.xs -____________________________________________________________________________ -[ 22087] By: nicholas on 2004/01/07 12:10:19 - Log: This is RC1 - Branch: maint-5.8/perl - ! patchlevel.h -____________________________________________________________________________ -[ 22086] By: nicholas on 2004/01/07 12:09:16 +[ 23068] By: nicholas on 2004/07/08 13:38:14 Log: Update Changes Branch: maint-5.8/perl ! Changes patchlevel.h ____________________________________________________________________________ -[ 22085] By: nicholas on 2004/01/07 12:08:00 - Log: Cargo cult upgrade to 5.8.3 - Branch: maint-5.8/perl - ! NetWare/Makefile cygwin/perlld.in epoc/createpkg.pl - ! patchlevel.h plan9/config.plan9 vos/build.cm - ! vos/config.alpha.def vos/config.alpha.h vos/config.ga.def - ! vos/config.ga.h vos/install_perl.cm win32/Makefile - ! win32/config_H.bc win32/config_H.gc win32/config_H.vc - ! win32/config_H.vc64 win32/makefile.mk wince/Makefile.ce -____________________________________________________________________________ -[ 22081] By: nicholas on 2004/01/06 14:33:15 - Log: Move pod/perldelta.pod to pod/perl583delta.pod, and arrange for - a copy to be made at build time. +[ 23067] By: nicholas on 2004/07/08 13:25:33 + Log: Rebuild toc. Resort MANIFEST Branch: maint-5.8/perl - +> pod/perl583delta.pod - - pod/perldelta.pod - ! MANIFEST Makefile.SH pod.lst pod/buildtoc pod/perltoc.pod - ! vms/descrip_mms.template win32/Makefile win32/makefile.mk - ! win32/pod.mak + ! MANIFEST pod/perltoc.pod ____________________________________________________________________________ -[ 22080] By: nicholas on 2004/01/06 12:50:45 +[ 23066] By: nicholas on 2004/07/08 13:10:35 Log: Integrate: - [ 22079] - Jarkko didn't move the cd ..\pod correctly. Given that it's been - like this pre 5.8.1, I suspect that no-one has used it recently. - Branch: maint-5.8/perl - !> win32/makefile.mk -____________________________________________________________________________ -[ 22078] By: nicholas on 2004/01/06 12:13:08 - Log: Subject: [PATCH maintperl] copy reentr.inc to CORE on VMS - From: "Craig A. Berry" <craigberry@mac.com> - Message-ID: <3FFA4A86.6090607@mac.com> - Date: Mon, 05 Jan 2004 23:41:26 -0600 - Branch: maint-5.8/perl - ! vms/descrip_mms.template -____________________________________________________________________________ -[ 22077] By: nicholas on 2004/01/06 11:23:38 - Log: http://www.perforce.com/perforce/technotes/note014.html - I want a disintegrate command, and right now I know where I want to - aim it. - (Missing un-adds from reversing back to MM 6.17) - Branch: maint-5.8/perl - - lib/ExtUtils/t/parse_version.t - - t/lib/MakeMaker/Test/Setup/BFD.pm - - t/lib/MakeMaker/Test/Setup/Problem.pm -____________________________________________________________________________ -[ 22073] By: nicholas on 2004/01/05 22:44:03 - Log: Update pod/perltoc.pod - Branch: maint-5.8/perl - ! pod/perltoc.pod -____________________________________________________________________________ -[ 22072] By: nicholas on 2004/01/05 22:39:35 - Log: Revert to MM 6.17 (same as 5.8.2) - Branch: maint-5.8/perl - + lib/ExtUtils/t/00setup_dummy.t - + lib/ExtUtils/t/zz_cleanup_dummy.t - ! MANIFEST lib/ExtUtils/Changes lib/ExtUtils/Command.pm - ! lib/ExtUtils/Command/MM.pm lib/ExtUtils/Install.pm - ! lib/ExtUtils/Liblist/Kid.pm lib/ExtUtils/MANIFEST.SKIP - ! lib/ExtUtils/META.yml lib/ExtUtils/MM.pm - ! lib/ExtUtils/MM_Any.pm lib/ExtUtils/MM_Cygwin.pm - ! lib/ExtUtils/MM_NW5.pm lib/ExtUtils/MM_Unix.pm - ! lib/ExtUtils/MM_VMS.pm lib/ExtUtils/MM_Win32.pm - ! lib/ExtUtils/MM_Win95.pm lib/ExtUtils/MakeMaker.pm - ! lib/ExtUtils/MakeMaker/Tutorial.pod - ! lib/ExtUtils/MakeMaker/bytes.pm - ! lib/ExtUtils/MakeMaker/vmsish.pm lib/ExtUtils/Manifest.pm - ! lib/ExtUtils/README lib/ExtUtils/TODO lib/ExtUtils/instmodsh - ! lib/ExtUtils/t/Command.t lib/ExtUtils/t/INST.t - ! lib/ExtUtils/t/INST_PREFIX.t lib/ExtUtils/t/Install.t - ! lib/ExtUtils/t/MM_Cygwin.t lib/ExtUtils/t/MM_Unix.t - ! lib/ExtUtils/t/MM_Win32.t lib/ExtUtils/t/Manifest.t - ! lib/ExtUtils/t/basic.t lib/ExtUtils/t/postamble.t - ! lib/ExtUtils/t/prefixify.t lib/ExtUtils/t/prereq_print.t - ! lib/ExtUtils/t/problems.t lib/ExtUtils/t/writemakefile_args.t - ! pod/perldelta.pod t/lib/MakeMaker/Test/Setup/Recurs.pm -____________________________________________________________________________ -[ 22070] By: nicholas on 2004/01/05 21:57:23 - Log: Resort MANIFEST (the way perltoc likes it) - Branch: maint-5.8/perl - ! MANIFEST -____________________________________________________________________________ -[ 22069] By: nicholas on 2004/01/05 21:56:17 - Log: Integrate: - [ 22064] - Fix bug with MANIFEST generation when we also regenerate perltoc.pod + [ 23062] + First stab at explaining that CLONE may get more parameters in future. + More eloquent rewording desired. Patches welcome. - [ 22067] - Change the flag logic in buildtoc - Branch: maint-5.8/perl - !> pod.lst pod/buildtoc -____________________________________________________________________________ -[ 22059] By: nicholas on 2004/01/05 09:29:29 - Log: Integrate: - [ 22058] - Subject: [PATCH] skip num.t #47 on VMS - From: "Craig A. Berry" <craigberry@mac.com> - Date: Sun, 04 Jan 2004 23:16:26 -0600 - Message-ID: <3FF8F32A.5000108@mac.com> - Branch: maint-5.8/perl - !> t/base/num.t -____________________________________________________________________________ -[ 22054] By: nicholas on 2004/01/03 20:56:11 - Log: Integrate: - [ 22052] - Upgrade to PerlIO::via::QuotedPrint 0.06 - Branch: maint-5.8/perl - !> lib/PerlIO/via/QuotedPrint.pm -____________________________________________________________________________ -[ 22053] By: nicholas on 2004/01/03 20:16:23 - Log: Integrate: - [ 22049] - Fix minor problems with the CPAN release - 1: Make Storable.xs to work on 5.8.2 and later (already in the core) - 2: Ship the linux hints file - 3: Ship Test::More for the benefit of Perls pre 5.6.2 - 4: Correct Makefile.PL to install in core for 5.8.0 and later + [ 23065] + Randal notes: - [ 22050] - No matter how hard you proof read it, something always slips through. - Branch: maint-5.8/perl - !> ext/Storable/ChangeLog ext/Storable/MANIFEST - !> ext/Storable/Makefile.PL ext/Storable/README - !> ext/Storable/Storable.pm -____________________________________________________________________________ -[ 22048] By: nicholas on 2004/01/03 18:00:31 - Log: Changes suggested by Merijn (but his words mangled by me) + "perldoc perldelta" still says 5.8.3 to 5.8.4, even though there + *is* a "perldoc perl583delta" properly. + + This is because perl584delta still thinks it's the perldelta Branch: maint-5.8/perl - ! pod/perldelta.pod + !> pod/perl584delta.pod pod/perlmod.pod ____________________________________________________________________________ -[ 22046] By: nicholas on 2004/01/02 16:57:17 +[ 23064] By: nicholas on 2004/07/08 13:06:35 Log: Integrate: - [ 21981] - Subject: PATCH: *DB*_File - From: "Paul Marquess" <Paul.Marquess@btinternet.com> - Date: Sat, 27 Dec 2003 20:02:30 -0000 - Message-ID: <AIEAJICLCBDNAAOLLOKLIEAOPGAA.Paul.Marquess@btinternet.com> + [ 23063] + Make Perl_sv_utf8_upgrade_flags tolerate PL_sv_undef + as an argument. Branch: maint-5.8/perl - !> XSUB.h ext/DB_File/Changes ext/DB_File/DB_File.pm - !> ext/DB_File/DB_File.xs ext/DB_File/t/db-btree.t - !> ext/DB_File/t/db-hash.t ext/DB_File/t/db-recno.t - !> ext/DB_File/typemap ext/GDBM_File/typemap - !> ext/NDBM_File/typemap ext/ODBM_File/typemap - !> ext/SDBM_File/typemap + !> sv.c ____________________________________________________________________________ -[ 22045] By: nicholas on 2004/01/02 16:36:54 - Log: Integrate: - [ 22030] - Document that detached threads aren't supported on Windows yet. - - [ 22031] - Document that /[\W]/ doesn't work, unicode-wise (see bug #18281) - - [ 22036] - Document the quirks of SUPER, especially the fact that it it - relative to the current package and not to the invoking object. - - [ 22037] - addition to 22036 (document SUPER better): superclass may be plural - - [ 22044] - Bump $threads::VERSION as the documentation has changed. Tweak the - documentaiton, update Arthur's e-mail address +[ 23057] By: nicholas on 2004/07/06 13:00:52 + Log: This is RC1 Branch: maint-5.8/perl - !> ext/threads/threads.pm pod/perlboot.pod pod/perlbot.pod - !> pod/perlobj.pod pod/perltoot.pod pod/perlunicode.pod + ! patchlevel.h pod/perlhist.pod ____________________________________________________________________________ -[ 22042] By: nicholas on 2004/01/02 00:42:36 - Log: Waah. This is a mess. The debugger is forked, with maint's $VERSION - 2 higher than blead's. No idea how much code is forked. - - Integrate: - [ 21940] - Fix a side-effect of bug #24674 in the perl debugger. - - Subject: [perl #24674] 5.x odd taint bug - From: Dominique Quatravaux (via RT) <perlbug-followup@perl.org> - Date: 16 Dec 2003 15:03:24 -0000 - Message-ID: <rt-3.0.7_01-24674-68456.11.3124667849085@perl.org> - - [ 22041] - Update debugger version number and Changes file +[ 23056] By: nicholas on 2004/07/06 12:45:46 + Log: Update Changes Branch: maint-5.8/perl - ! lib/perl5db.pl + ! Changes patchlevel.h ____________________________________________________________________________ -[ 22040] By: nicholas on 2004/01/02 00:21:57 - Log: Integrate: - [ 22033] - Subject: Perl 5.8.3 patches from the BS2000 port - part 2 - From: Dorner Thomas <tdorner@amadeus.net> - Message-ID: <6727B1DACFCDD311A757009027CA8D69044B6740@Ex02.inhouse.start.de> - Date: Fri, 19 Dec 2003 07:16:47 +0100 +[ 23055] By: nicholas on 2004/07/06 11:35:31 + Log: Cargo cult 5.8.5 upgrade Branch: maint-5.8/perl - !> t/io/utf8.t t/op/pat.t + ! Cross/config.sh-arm-linux META.yml NetWare/Makefile README.os2 + ! README.vms epoc/createpkg.pl ext/List/Util/t/lln.t + ! patchlevel.h plan9/config.plan9 pod/perl585delta.pod + ! vos/build.cm vos/config.alpha.def vos/config.alpha.h + ! vos/config.ga.def vos/config.ga.h vos/install_perl.cm + ! win32/Makefile win32/config_H.bc win32/config_H.gc + ! win32/config_H.vc win32/config_H.vc64 win32/makefile.mk + ! wince/Makefile.ce ____________________________________________________________________________ -[ 22039] By: nicholas on 2004/01/01 23:59:34 - Log: Integrate: - [ 22034] - Fix bug #24383, where hashes with the :unique attribute weren't - getting made readonly on interpreter clone. Also, remove the - :unique attribute from the hashes in warnings.pm, since they may - later be modified by warnings::register. Finally, adds tests for - the :unique attribute. +[ 23054] By: nicholas on 2004/07/06 09:54:16 + Log: Another tweak Branch: maint-5.8/perl - !> ext/threads/t/problems.t lib/warnings.pm sv.c warnings.pl + ! pod/perl585delta.pod ____________________________________________________________________________ -[ 22038] By: nicholas on 2004/01/01 23:35:15 - Log: - Subject: [PATCH 5.8.2 @21574] OS/2 update - From: Ilya Zakharevich <nospam-abuse@ilyaz.org> - Date: Thu, 18 Dec 2003 14:10:29 -0800 - Message-ID: <20031218221029.GA7898@math.berkeley.edu> +[ 23053] By: nicholas on 2004/07/06 09:52:45 + Log: Improvements suggested by Jarkko Branch: maint-5.8/perl - ! installperl - !> README.os2 hints/os2.sh lib/ExtUtils/MM_Unix.pm makedef.pl - !> os2/Changes os2/OS2/REXX/DLL/Changes os2/OS2/REXX/DLL/DLL.pm - !> os2/os2.c os2/os2ish.h os2/perl2cmd.pl + ! pod/perl585delta.pod ____________________________________________________________________________ -[ 22035] By: nicholas on 2004/01/01 21:30:41 - Log: Corrections from Yitzchak Scott-Thoennes and Randy W. Sims - Message-ID: <20040101195205.GA3212@efn.org> - Message-ID: <20031230183815.GC8164@penkwe.pair.com> +[ 23050] By: nicholas on 2004/07/06 09:13:11 + Log: Fixup change 22979 in the ChangeLog *properly* (so that tools parse + it) Branch: maint-5.8/perl - ! pod/perldelta.pod + ! Changes ____________________________________________________________________________ -[ 22028] By: nicholas on 2003/12/31 18:19:46 - Log: Integrate: - [ 21951] - re-fix [perl #24508] without speed regression. - keep an eye on this. +[ 23049] By: nicholas on 2004/07/05 17:46:57 + Log: Back out 22997 as it causes Net::DNS to spin forever in 05-rr-txt.t Branch: maint-5.8/perl - !> op.c opcode.h opcode.pl + ! lib/Text/ParseWords.pm lib/Text/ParseWords.t ____________________________________________________________________________ -[ 22027] By: nicholas on 2003/12/31 15:41:04 - Log: Integrate: - [ 22025] - Subject: [PATCH] "piconv -C 512" badly broken - From: Autrijus Tang <autrijus@autrijus.org> - Message-Id: <1072870210.769.5.camel@localhost> - Date: Wed, 31 Dec 2003 19:30:10 +0800 - - [ 22026] - Tweak 00compile.t to avoid splatting a DIAG over core perl's - beautiful clean run of OKs. You are all getting a clean run of OKs, - aren't you? +[ 23045] By: nicholas on 2004/07/05 15:13:40 + Log: Change 23035 wasn't meant to integrate t/op/threads.t to maint Branch: maint-5.8/perl - !> ext/Encode/bin/piconv lib/Test/Harness/t/00compile.t + - t/op/threads.t ____________________________________________________________________________ -[ 22024] By: nicholas on 2003/12/31 15:05:22 - Log: Integrate: - [ 21798] - Implement C<use Exporter 'import'> : +[ 23044] By: nicholas on 2004/07/05 15:00:22 + Log: I missed the libnet upgrade. I almost missed Steve Hay reminding me of + this. Branch: maint-5.8/perl - !> lib/Exporter.pm lib/Exporter.t + ! pod/perl585delta.pod ____________________________________________________________________________ -[ 22023] By: nicholas on 2003/12/31 14:25:32 - Log: Integrate: - [ 22020] - C++ comments, bad. +[ 23043] By: nicholas on 2004/07/05 14:58:20 + Log: Things noticed by Ronald J Kimball and Steve Hay Branch: maint-5.8/perl - !> ext/Cwd/Cwd.xs + ! pod/perl585delta.pod ____________________________________________________________________________ -[ 22022] By: nicholas on 2003/12/31 13:41:17 +[ 23041] By: nicholas on 2004/07/05 13:15:04 Log: Integrate: - [ 22021] - Upgrade to Test::Harness 2.40. + [ 23029] + Subject: [PATCH Cwd 2.18] _vms_abs_path on non-directories + From: "Craig A. Berry" <craigberry@mac.com> + Message-ID: <40E704AA.4090801@mac.com> + Date: Sat, 03 Jul 2004 14:10:34 -0500 Branch: maint-5.8/perl - !> lib/Test/Harness.pm lib/Test/Harness/Changes - !> lib/Test/Harness/Iterator.pm lib/Test/Harness/Straps.pm - !> lib/Test/Harness/bin/prove lib/Test/Harness/t/00compile.t - !> lib/Test/Harness/t/assert.t lib/Test/Harness/t/callback.t - !> lib/Test/Harness/t/prove-switches.t - !> lib/Test/Harness/t/strap-analyze.t lib/Test/Harness/t/strap.t - !> lib/Test/Harness/t/test-harness.t + !> ext/Cwd/t/cwd.t lib/Cwd.pm ____________________________________________________________________________ -[ 22019] By: nicholas on 2003/12/31 00:19:24 +[ 23039] By: nicholas on 2004/07/04 21:32:40 Log: Integrate: - [ 22018] - Bump VERSION numbers + [ 23022] + The microperl config didn't know about usemallocwrap yet. + + [ 23027] + More microperl tweaks. Branch: maint-5.8/perl - !> ext/POSIX/POSIX.pm lib/Benchmark.pm lib/File/CheckTree.pm - !> lib/Getopt/Std.pm lib/PerlIO.pm lib/Tie/Hash.pm - !> lib/diagnostics.pm + !> Makefile.micro README.micro uconfig.h uconfig.sh ____________________________________________________________________________ -[ 22017] By: nicholas on 2003/12/30 22:10:24 +[ 23038] By: nicholas on 2004/07/04 21:22:18 Log: Integrate: - [ 22016] - A patch for Test::Harness on VMS by Craig Berry - (see RT CPAN bug #4745) + [ 23019] + Bump version numbers + + [ 23025] + Bump version number of Safe for CPAN release Branch: maint-5.8/perl - !> lib/Test/Harness/Straps.pm + !> ext/File/Glob/Glob.pm ext/Opcode/Safe.pm + !> ext/XS/APItest/APItest.pm ext/threads/threads.pm lib/Carp.pm + !> lib/File/Copy.pm lib/Text/ParseWords.pm lib/Text/Wrap.pm + !> lib/autouse.pm lib/charnames.pm lib/diagnostics.pm lib/utf8.pm ____________________________________________________________________________ -[ 22015] By: nicholas on 2003/12/30 19:08:19 +[ 23037] By: nicholas on 2004/07/04 21:12:06 Log: Integrate: - [ 21999] - Add Mike Pomraning + [ 23010] + More caveats in B::Deparse's documentation + (suggested by Yves Orton) - [ 22009] - bug #24757 perlrun.pod's description of find -mtime was ambiguous + [ 23011] + Note that sv_2mortal isn't just "increase reference count by 1, and + mark that it needs a deferred recount" - [ 22013] - Subject: more uni doc tweakage - From: Jarkko Hietaniemi <jhi@iki.fi> - Message-ID: <20031230133755.GA23118@vipunen.hut.fi> - Date: Tue, 30 Dec 2003 15:37:55 +0200 + [ 23014] + Subject: [PATCH pod/perlop.pod] Documenting undefined behaviour of $i = $i ++. + From: Abigail <abigail@abigail.nl> + Date: Wed, 30 Jun 2004 12:00:21 +0200 + Message-ID: <20040630100021.GA23752@abigail.nl> - Subject: one more pod fix - From: Jarkko Hietaniemi <jhi@iki.fi> - Message-ID: <20031230135641.GA24516@vipunen.hut.fi> - Date: Tue, 30 Dec 2003 15:56:41 +0200 + [ 23026] + Maintainer change for Safe Branch: maint-5.8/perl - !> AUTHORS lib/PerlIO.pm pod/perlrun.pod pod/perlunicode.pod + !> Porting/Maintainers.pl ext/B/B/Deparse.pm pod/perlop.pod sv.c ____________________________________________________________________________ -[ 22014] By: nicholas on 2003/12/30 18:48:08 +[ 23036] By: nicholas on 2004/07/04 20:59:30 Log: Integrate: - [ 21937] - after back-references, restricted hashes. - see http://nntp.perl.org/group/perl.perl5.porters/86497 - this is hopefully only a temporary solution. - - [ 22005] - Subject: Re: [perl #24774] eval + format - \n = pp_ctl.c assertion - heuristics for calculating buffer size needed to compile a format - didn't allow for \0 + [ 22995] + Subject: [PATCH] regcomp.c, t/op/regmesg.t -- False range with \p and \P + From: Jeff 'japhy' Pinyan <japhy@perlmonk.org> + Date: Thu, 24 Jun 2004 16:42:54 -0400 (EDT) + Message-ID: <Pine.LNX.4.44.0406241636340.8774-200000@perlmonk.org> Branch: maint-5.8/perl - !> perl.c pp_ctl.c t/op/write.t + !> regcomp.c t/op/regmesg.t ____________________________________________________________________________ -[ 22012] By: nicholas on 2003/12/30 17:53:35 +[ 23035] By: nicholas on 2004/07/04 20:49:10 Log: Integrate: - [ 22007] - Upgrade to Math::BigInt 1.68. - Branch: maint-5.8/perl - +> lib/Math/BigInt/t/bigroot.t - !> MANIFEST lib/Math/BigFloat.pm lib/Math/BigInt.pm - !> lib/Math/BigInt/Calc.pm lib/Math/BigInt/CalcEmu.pm - !> lib/Math/BigInt/t/alias.inc lib/Math/BigInt/t/bare_mbi.t - !> lib/Math/BigInt/t/bigfltpm.inc lib/Math/BigInt/t/bigintpm.inc - !> lib/Math/BigInt/t/bigintpm.t lib/Math/BigInt/t/sub_mbi.t -____________________________________________________________________________ -[ 22011] By: nicholas on 2003/12/30 17:37:54 - Log: $expletive perforce. Why can't you integrate an add with an edit? + [ 22994] + More @INC test fixes - Integrate: - [ 21956] - Subject: BigInt v1.68 - pre-release - From: Tels <perl_dummy@bloodgate.com> - Date: Tue, 23 Dec 2003 01:09:23 +0100 - Message-Id: <200312230106.27661@bloodgate.com> - Branch: maint-5.8/perl - +> lib/Math/BigInt/CalcEmu.pm lib/Math/BigInt/t/alias.inc - +> lib/Math/BigInt/t/mbf_ali.t lib/Math/BigInt/t/mbi_ali.t - +> lib/Math/BigInt/t/sub_ali.t - !> MANIFEST lib/Math/BigFloat.pm lib/Math/BigInt.pm - !> lib/Math/BigInt/Calc.pm lib/Math/BigInt/t/bigfltpm.inc - !> lib/Math/BigInt/t/bigintc.t lib/Math/BigInt/t/bigintpm.inc - !> lib/Math/BigInt/t/upgrade.inc -____________________________________________________________________________ -[ 22010] By: nicholas on 2003/12/30 17:16:42 - Log: $expletive perforce - - Mop up, due to perforce's inexplicable inability to SILENTLY FAIL to - integrate two changes, where the first adds and the second edits a - file. + [ 22998] + Correct detection of absent modules. Based on - Integrate: - [ 21882] - Subject: [PATCH] Math::BigInt v1.67 released - From: Tels <perl_dummy@bloodgate.com> - Date: Fri, 12 Dec 2003 18:47:43 +0100 - Message-Id: <200312121847.49039@bloodgate.com> - Branch: maint-5.8/perl - !> lib/Math/BigInt/t/fallback.t -____________________________________________________________________________ -[ 22008] By: nicholas on 2003/12/30 16:17:16 - Log: Integrate: - [ 21970] - Allow overriding of the p4 settings via environment variables - Make regexp more robust to parse FreeBSD's patch output + Subject: [PATCH] Config{extensions} uses filesystem names as extensions + From: Andy Dougherty <doughera@lafayette.edu> + Message-ID: <Pine.SOL.4.58.0406241505530.14039@maxwell.phys.lafayette.edu> + Date: Thu, 24 Jun 2004 15:09:47 -0400 (EDT) + + with improvements from Marcus Holland-Moritz - [ 22002] - Updates the notes about byacc in pumpkin.pod. + [ 23028] + /usr/bin/locale steadfastly delivers 8 bit output independent of + LC_ALL. So when perl's expecting utf8, things don't quite work right. + This has become visible since fix 22842 Branch: maint-5.8/perl - !> Porting/apply Porting/pumpkin.pod + +> t/op/threads.t + !> ext/Devel/PPPort/t/test.t ext/PerlIO/t/scalar.t + !> ext/PerlIO/t/via.t ext/threads/shared/t/disabled.t lib/DB.t + !> lib/Dumpvalue.t lib/PerlIO/via/t/QuotedPrint.t + !> lib/Tie/RefHash.t lib/autouse.t lib/dumpvar.t lib/h2xs.t + !> lib/locale.t lib/overload.t t/io/crlf.t t/uni/chomp.t + !> t/uni/tr_7jis.t t/uni/tr_eucjp.t t/uni/tr_sjis.t + !> t/uni/tr_utf8.t ____________________________________________________________________________ -[ 22006] By: nicholas on 2003/12/30 15:23:04 +[ 23034] By: nicholas on 2004/07/04 20:23:50 Log: Integrate: - [ 21986] - Fix bug [perl #24762] : C<*foo{CODE} ? 1 : 0> was a syntax error + [ 22992] + Fix for: [perl #30442] Text::ParseWords does not handle backslashed newline inside quoted text + Use the suggested regex fix, plus some tests. - [ 21988] - Regenerate the perly.c patch for byacc output painless fixing - - [ 22003] - Add a regression test for bug #24762 - - Plus tweaks for maint - Branch: maint-5.8/perl - ! perly.c perly_c.diff vms/perly_c.vms - !> perly.y t/comp/parser.t -____________________________________________________________________________ -[ 22004] By: nicholas on 2003/12/30 12:59:19 - Log: Changes following feedback from p5p - Branch: maint-5.8/perl - ! pod/perldelta.pod -____________________________________________________________________________ -[ 22000] By: nicholas on 2003/12/30 00:17:01 - Log: First stab at a perldelta for 5.8.3 - Branch: maint-5.8/perl - ! pod/perldelta.pod -____________________________________________________________________________ -[ 21998] By: nicholas on 2003/12/29 21:28:25 - Log: Update changes + [ 22997] + Cleanup the main regex in Text::ParseWords and make the + parse_line() routine faster. Add a Unicode test case. Branch: maint-5.8/perl - ! Changes patchlevel.h + !> lib/Text/ParseWords.pm lib/Text/ParseWords.t ____________________________________________________________________________ -[ 21995] By: nicholas on 2003/12/29 18:25:43 +[ 23033] By: nicholas on 2004/07/04 20:12:51 Log: Integrate: - [ 21991] - Upgrade to Encode 1.99. - Branch: maint-5.8/perl - !> ext/Encode/Changes ext/Encode/Encode.pm ext/Encode/META.yml - !> ext/Encode/Unicode/Unicode.xs ext/Encode/encoding.pm - !> ext/Encode/t/enc_eucjp.t ext/Encode/t/enc_utf8.t - !> ext/Encode/t/mime-header.t ext/Encode/ucm/gsm0338.ucm - !> ext/Encode/ucm/macArabic.ucm ext/Encode/ucm/macFarsi.ucm - !> ext/Encode/ucm/macHebrew.ucm -____________________________________________________________________________ -[ 21994] By: nicholas on 2003/12/29 17:53:46 - Log: - Subject: [PATCH] win32_chsize buglet - From: "Kevin Chase" <kevincha99@hotmail.com> - Date: Sun, 28 Dec 2003 15:48:56 -0800 - Message-ID: <BAY2-F90usv0ccZRh8Z0005683d@hotmail.com> + [ 22990] + Fix for: [perl #2738] perl segfautls on input + The parser was incorrectly accepting <> as a subroutine prototype and + newATTRSUB didn't validate the proto argument before accessing op_sv. - [ 21993] - Windows hasn't getuid/setuid and friends. - Therefore disable the code related to them in POSIX.xs. - - Subject: [PATCH: ext/POSIX/POSIX.xs] Re: Smoke [5.8.2] 21979 FAIL(Xt) MSWin32 5.1 Service Pack 1 (x86/1 cpu) - From: "Marcus Holland-Moritz" <mhx-perl@gmx.net> - Date: Mon, 29 Dec 2003 04:51:19 +0100 - Message-ID: <03d401c3cdbf$05730ee0$d500a8c0@R2D2> - Branch: maint-5.8/perl - !> ext/POSIX/POSIX.xs win32/win32.c -____________________________________________________________________________ -[ 21987] By: nicholas on 2003/12/27 23:17:19 - Log: Integrate: - [ 21985] - Subject: Cross compilation patches for arm. - From: Redvers Davies <red@criticalintegration.com> - Message-Id: <1072098653.4789.6.camel@ragefire> - Date: Mon, 22 Dec 2003 08:11:34 -0500 + [ 23006] + [perl #30509] use encoding and "eq" cause memory leak + Perl_sv_eq() was creating a temp and not always freeing it Branch: maint-5.8/perl - ! Cross/README - !> Cross/Makefile Cross/Makefile.SH.patch - !> Cross/config.sh-arm-linux Cross/installperl.patch + ! t/comp/parser.t + !> op.c pod/perldiag.pod sv.c toke.c ____________________________________________________________________________ -[ 21984] By: nicholas on 2003/12/27 22:17:18 +[ 23032] By: nicholas on 2004/07/04 19:46:34 Log: Integrate: - [ 21983] - Fix bug [perl #24735] : make sure that the range (..) operator - treats an undefined argument as 0 for numerical ranges and as "" - for magical string ranges. + [ 22942] + Upgrade to Locale::Maketext 1.09 Branch: maint-5.8/perl - !> pp_ctl.c t/op/range.t + +> lib/Locale/Maketext/t/01_about_verbose.t + +> lib/Locale/Maketext/t/10_make.t lib/Locale/Maketext/t/20_get.t + +> lib/Locale/Maketext/t/40_super.t + +> lib/Locale/Maketext/t/50_super.t + +> lib/Locale/Maketext/t/60_super.t + +> lib/Locale/Maketext/t/90_utf8.t + - lib/Locale/Maketext/t/00about.t lib/Locale/Maketext/t/01make.t + - lib/Locale/Maketext/t/02get.t lib/Locale/Maketext/t/03http.t + - lib/Locale/Maketext/t/04super.t + - lib/Locale/Maketext/t/05super.t + - lib/Locale/Maketext/t/06super.t lib/Locale/Maketext/t/90utf8.t + !> MANIFEST lib/Locale/Maketext.pm lib/Locale/Maketext/ChangeLog + !> lib/Locale/Maketext/README ____________________________________________________________________________ -[ 21982] By: nicholas on 2003/12/27 21:10:07 +[ 23031] By: nicholas on 2004/07/04 19:35:48 Log: Integrate: - [ 21962] - Subject: [PATCH: sv.c] Re: GCC bug breaking Perl_sv_catpvfn()? - From: "Marcus Holland-Moritz" <mhx-perl@gmx.net> - Date: Fri, 26 Dec 2003 02:47:09 +0100 - Message-ID: <03ca01c3cb52$2d509b40$5700a8c0@R2D2> + [ 22946] + Upgrade to I18N::LangTags 0.31. - [ 21967] - Subject: [PATCH: sv.c] Turn Quad_t to Uquad_t in unsigned branch - From: "Marcus Holland-Moritz" <mhx-perl@gmx.net> - Date: Sat, 27 Dec 2003 02:48:19 +0100 - Message-ID: <010001c3cc1b$813763a0$d500a8c0@R2D2> + [ 22964] + Upgrade to I18N::LangTags 0.32 - [ 21971] - Subject: [PATCH] Remove Win32 compiler warnings - From: "Marcus Holland-Moritz" <mhx-perl@gmx.net> - Date: Sat, 27 Dec 2003 17:39:20 +0100 - Message-ID: <018901c3cc97$fa976660$d500a8c0@R2D2> - Branch: maint-5.8/perl - !> ext/XS/APItest/APItest.xs ext/threads/shared/shared.xs sv.c -____________________________________________________________________________ -[ 21980] By: nicholas on 2003/12/27 19:55:01 - Log: Integrate: - [ 20734] - Subject: [PATCH] Taint problems in Cwd::abs_path - From: Michael G Schwern <schwern@pobox.com> - Date: Fri, 15 Aug 2003 18:43:45 -0700 - Message-ID: <20030816014345.GE4023@windhund.schwern.org> + [ 23001] + Stop 80_all_env.t failing when LC_ALL is set - [ 21972] - Assimilate Cwd 2.12 from CPAN. Cwd wasn't in Maintainers, so change - 21646 was only applied to core (must punt this back and thereby unfork) - Need to fix test boilerplate properly for PERL_CORE + [ 23024] + Upgrade to I18N::LangTags 0.33 - [ 21974] - Assimilate File::Spec 0.87 - - [ 21978] - Straggler from Cwd + (this would have all been part of the previous change but + http://www.google.com/search?btnI=again&q=perforce+fails+bah ) Branch: maint-5.8/perl - +> ext/Cwd/Changes - ! ext/Cwd/t/taint.t - !> MANIFEST Porting/Maintainers.pl ext/Cwd/Cwd.xs ext/Cwd/t/cwd.t - !> lib/Cwd.pm lib/File/Spec.pm lib/File/Spec/t/Spec.t + !> lib/I18N/LangTags.pm lib/I18N/LangTags/ChangeLog + !> lib/I18N/LangTags/Detect.pm lib/I18N/LangTags/t/10_http.t + !> lib/I18N/LangTags/t/80_all_env.t ____________________________________________________________________________ -[ 21979] By: nicholas on 2003/12/27 19:30:17 +[ 23030] By: nicholas on 2004/07/04 19:22:15 Log: Integrate: - [ 21548] - Sync with Pod::Perldoc 3.12 - - [ 21973] - Assimilate Digest 1.05 - - [ 21975] - Assimilate PodParser-1.26 - - [ 21976] - Assimilate Unicode::Collate 0.33 - - [ 21977] - Straggler from Unicode::Collate. - We need to automate this. - For some value of we. (tr/w/m/ I suspect) + [ 22941] + Upgrade to I18N::LangTags 0.30. Branch: maint-5.8/perl - +> lib/Unicode/Collate/t/altern.t - +> lib/Unicode/Collate/t/rearrang.t lib/Unicode/Collate/t/view.t - !> MANIFEST lib/Digest.pm lib/Digest/t/digest.t - !> lib/Pod/Checker.pm lib/Pod/Find.pm lib/Pod/InputObjects.pm - !> lib/Pod/ParseUtils.pm lib/Pod/Parser.pm lib/Pod/Perldoc.pm - !> lib/Pod/PlainText.pm lib/Pod/Select.pm lib/Pod/Usage.pm - !> lib/Unicode/Collate.pm lib/Unicode/Collate/Changes - !> lib/Unicode/Collate/README lib/Unicode/Collate/keys.txt - !> lib/Unicode/Collate/t/contract.t - !> lib/Unicode/Collate/t/illegal.t lib/Unicode/Collate/t/test.t - !> lib/Unicode/Collate/t/version.t pod/pod2usage.PL - !> pod/podselect.PL t/pod/pod2usage.xr t/pod/podselect.xr + +> lib/I18N/LangTags/Detect.pm + +> lib/I18N/LangTags/t/01_about_verbose.t + +> lib/I18N/LangTags/t/05_main.t lib/I18N/LangTags/t/07_listy.t + +> lib/I18N/LangTags/t/10_http.t lib/I18N/LangTags/t/50_super.t + +> lib/I18N/LangTags/t/55_supers_strict.t + +> lib/I18N/LangTags/t/80_all_env.t + - lib/I18N/LangTags/t/01test.t lib/I18N/LangTags/t/02decency.t + !> MANIFEST lib/I18N/LangTags.pm lib/I18N/LangTags/ChangeLog + !> lib/I18N/LangTags/List.pm ____________________________________________________________________________ -[ 21969] By: nicholas on 2003/12/27 16:37:27 +[ 23020] By: nicholas on 2004/07/01 13:35:17 Log: Integrate: - [ 21958] - Fix bug [perl #24641] : when POSIX::set[ug]id() are called, - update the perl variables PL_uid and PL_euid (resp. PL_gid - and PL_egid) with the new values. - - [ 21968] - Subject: [PATCH] perl 5.8.0, FindBin::again - From: Slaven Rezic <slaven@rezic.de> - Date: 01 May 2003 21:28:10 +0200 - Message-ID: <873cjy31rp.fsf@vran.herceg.de> + [ 23016] + Sync to libnet-1.19 Branch: maint-5.8/perl - !> ext/POSIX/POSIX.xs lib/FindBin.pm lib/FindBin.t + !> lib/Net/Changes.libnet lib/Net/Cmd.pm lib/Net/FTP.pm + !> lib/Net/POP3.pm lib/Net/SMTP.pm lib/Net/t/datasend.t ____________________________________________________________________________ -[ 21966] By: nicholas on 2003/12/26 21:30:11 - Log: Integrate: - [ 21957] - Subject: [PATCH 5.8.2 @21574] INSTALL_PREFIX from C - From: Ilya Zakharevich <nospam-abuse@ilyaz.org> - Date: Thu, 18 Dec 2003 12:30:06 -0800 - Message-ID: <20031218203006.GA7772@math.berkeley.edu> +[ 23017] By: nicholas on 2004/06/30 20:28:29 + Log: Back 22969 out of maint. (reinstate the "Tied variable freed while + still in use" error for the moment, as my change causes interesting + bugs under utf8 locales) Branch: maint-5.8/perl - !> config_h.SH + ! mg.c pod/perldiag.pod t/op/tie.t ____________________________________________________________________________ -[ 21965] By: nicholas on 2003/12/26 20:49:47 +[ 23015] By: nicholas on 2004/06/30 12:17:35 Log: Integrate: - [ 21955] - Subject: [perl #24506] [PATCH] cannot weaken refs to read only values - From: Fergal Daly <fergal@esatclear.ie> - Date: Tue, 2 Dec 2003 23:18:18 +0000 - Message-Id: <200312022318.18353.fergal@esatclear.ie> - - (tweaked so the test is skipped on perls < 5.9.0) - - [ 21964] - Change minimum perl version where the test is run from 5.9.0 to 5.8.3 - as I'm going to integrate the core patch + [ 23002] + Assimilate Locale-Codes-2.07 Branch: maint-5.8/perl - !> ext/List/Util/t/weak.t sv.c + !> lib/Locale/Codes/ChangeLog lib/Locale/Codes/README + !> lib/Locale/Codes/t/all.t lib/Locale/Codes/t/constants.t + !> lib/Locale/Codes/t/country.t lib/Locale/Codes/t/currency.t + !> lib/Locale/Codes/t/uk.t lib/Locale/Constants.pm + !> lib/Locale/Constants.pod lib/Locale/Country.pm + !> lib/Locale/Country.pod lib/Locale/Currency.pm + !> lib/Locale/Currency.pod lib/Locale/Language.pm + !> lib/Locale/Language.pod lib/Locale/Script.pm + !> lib/Locale/Script.pod ____________________________________________________________________________ -[ 21963] By: nicholas on 2003/12/26 19:56:31 +[ 23013] By: nicholas on 2004/06/30 11:25:27 Log: Integrate: - [ 21950] - sanitize some macros - based on Chip Salzenberg suggestions and - on the way GNU people use the gcc-ish 'blocks in parens' + [ 22988] + Upgrade to Cwd 2.17_03 - [ 21960] - Refactor the code that checks whether a range is numeric - or string-magical. + [ 22991] + Upgrade to Cwd 2.18 + (with local changes to cwd.t, to adapt it to the core) + + [ 22993] + Fix the Cwd tests for the core. Branch: maint-5.8/perl - ! sv.h - !> XSUB.h pp_ctl.c + !> ext/Cwd/Changes ext/Cwd/Cwd.xs ext/Cwd/t/cwd.t + !> ext/Cwd/t/taint.t lib/Cwd.pm ____________________________________________________________________________ -[ 21961] By: nicholas on 2003/12/26 17:54:21 +[ 23012] By: nicholas on 2004/06/30 11:11:43 Log: Integrate: - [ 21959] - Restore ext/SDBM_File/sdbm/Makefile to its pre-21655 state. - This fixes building SDBM_File on AIX. + [ 22935] + Assert SvTYPE is at least PGMV whenever accessing SvSTASH + (the Storable.xs part) + + [ 22943] + Storable should cope if the string to thaw happens to be utf8 encoded + And anything with bytes >=256 is corrupt + + [ 22944] + Change 22516 forgot to add make_overload.pl to generate test data + (submitted from the pub via wireless, bluetooth and then GPRS out + to the Internet) + + [ 22968] + Subject: [PATCH] Storable signedness nit + From: "Craig A. Berry" <craigberry@mac.com> + Message-ID: <40D3AAC7.6030407@mac.com> + Date: Fri, 18 Jun 2004 21:53:59 -0500 Branch: maint-5.8/perl - !> ext/SDBM_File/sdbm/Makefile.PL + +> ext/Storable/t/make_overload.pl + !> MANIFEST ext/Storable/ChangeLog ext/Storable/README + !> ext/Storable/Storable.pm ext/Storable/Storable.xs + !> ext/Storable/t/utf8.t ____________________________________________________________________________ -[ 21954] By: nicholas on 2003/12/24 15:32:55 +[ 23009] By: nicholas on 2004/06/29 11:09:36 Log: Integrate: - [ 21952] - Subject: [patch t/test.pl] comment fix - From: Stas Bekman <stas@stason.org> - Message-ID: <3FE8C65A.4060708@stason.org> - Date: Tue, 23 Dec 2003 14:48:58 -0800 + [ 22996] + Subject: [perl #30450] perl 5.8.4: enhancement to hints/solaris_2.sh + From: Nicholas Gianniotis (via RT) <perlbug-followup@perl.org> + Date: 25 Jun 2004 09:39:51 -0000 + Message-ID: <rt-3.0.9-30450-91340.10.3279898804255@perl.org> + and + From: Andy Dougherty <doughera@lafayette.edu> + Date: Fri, 25 Jun 2004 11:30:11 -0400 (EDT) + Message-ID: <Pine.SOL.4.58.0406251113420.15961@maxwell.phys.lafayette.edu> - [ 21953] - Subject: [PATCH: perl@21949] document patch for VMS port on new file systems - From: PPrymmer@factset.com - Date: Tue, 23 Dec 2003 17:27:44 -0500 - Message-Id: <OF32243F10.A592C9A9-ON85256E05.007B1741-85256E05.007B63CB@factset.com> + [ 23007] + HP-UX 10.20 still *needs* -Ae for HP C-ANSI-C to be ANSI + 11.00 and on are ANSI by default for /opt/ansic/bin + Error was introduced by #22975 in re-enabling 10.01 Branch: maint-5.8/perl - !> README.vms t/test.pl + !> hints/hpux.sh hints/solaris_2.sh ____________________________________________________________________________ -[ 21949] By: nicholas on 2003/12/22 21:55:52 - Log: Integrate: - [ 21948] - Subject: Re: Smoke [5.8.2] 21930 FAIL(t) MSWin32 5.1 Service Pack 1 (x86/1 cpu) - Message-ID: <Pine.LNX.4.58.0312220116520.17374@localhost.localdomain> - Date: Mon, 22 Dec 2003 01:52:08 -0600 (CST) - From: Mike Pomraning <mjp@pilcrow.madison.wi.us> +[ 23005] By: nicholas on 2004/06/28 17:03:14 + Log: Draft 1 of perl585delta. Branch: maint-5.8/perl - !> ext/threads/shared/shared.xs + ! pod/perl585delta.pod ____________________________________________________________________________ -[ 21947] By: nicholas on 2003/12/22 20:35:11 - Log: Integrate: - [ 21942] - Subject: [perl #24651] Taint bug with multiple backticks in ref consturctors - From: Mike Guy <mjtg@cam.ac.uk> - Date: Fri, 19 Dec 2003 17:17:11 +0000 - Message-Id: <E1AXOFT-0007DE-7q@draco.cus.cam.ac.uk> - - [ 21946] - Subject: doc nits - From: Jarkko Hietaniemi <jhi@iki.fi> - Date: Mon, 22 Dec 2003 21:57:34 +0200 - Message-Id: <20031222195734.GA29441@vipunen.hut.fi> +[ 23004] By: rgs on 2004/06/28 16:29:21 + Log: Document h2ph changes in perldelta Branch: maint-5.8/perl - !> pod/perlsec.pod pod/perltodo.pod pod/perlunicode.pod + ! pod/perl585delta.pod ____________________________________________________________________________ -[ 21945] By: nicholas on 2003/12/22 20:07:07 - Log: Integrate: - [ 21944] - Subject: [PATCH] configure.com archname tweak - From: "Craig A. Berry" <craigberry@mac.com> - Date: Sun, 21 Dec 2003 23:07:13 -0600 - Message-ID: <3FE67C01.1000704@mac.com> +[ 23003] By: nicholas on 2004/06/28 12:16:52 + Log: Correct the changelog entry for 22979 Branch: maint-5.8/perl - !> configure.com + ! Changes ____________________________________________________________________________ -[ 21943] By: nicholas on 2003/12/21 22:41:21 - Log: Make reentrant functions work with C++ - Patch by Jan Dubois, bug report and testing by Chip Salzenberg +[ 23000] By: nicholas on 2004/06/27 15:19:21 + Log: Update Changes. Almost time for 5.8.5 Branch: maint-5.8/perl - ! reentr.inc reentr.pl + ! Changes patchlevel.h ____________________________________________________________________________ -[ 21941] By: nicholas on 2003/12/21 20:42:53 +[ 22999] By: nicholas on 2004/06/27 12:18:13 Log: Integrate: [ 21936] fix [perl #24660], [perl #24663]. - Branch: maint-5.8/perl - !> mg.c sv.c -____________________________________________________________________________ -[ 21939] By: nicholas on 2003/12/20 23:40:37 - Log: Integrate: - [ 21933] - Subject: [PATCH] OpenVMS I64 support - From: "Craig A. Berry" <craigberry@mac.com> - Message-ID: <3FE2441F.2070603@mac.com> - Date: Thu, 18 Dec 2003 18:19:43 -0600 - - [ 21938] - Subject: Perl 5.8.3 patches from the BS2000 port - From: Dorner Thomas <tdorner@amadeus.net> - Date: Wed, 17 Dec 2003 15:41:17 +0100 - Message-ID: <6727B1DACFCDD311A757009027CA8D69044B673A@Ex02.inhouse.start.de> - Branch: maint-5.8/perl - !> configure.com hints/posix-bc.sh t/base/num.t t/comp/parser.t - !> vms/gen_shrfls.pl -____________________________________________________________________________ -[ 21934] By: nicholas on 2003/12/20 20:21:46 - Log: Integrate: - [ 21931] - Solaris gconvert() doesn't like ndigits == 0. Currently we have no - Configure test for troublesome gconvert(), so for now simply avoid - the optimisation that calls gconvert() in this case. - [ 21932] - remove duplicate PERL_HASH (as spotted by Enache Adrian in - <20031220124854.GA1265@ratsnest.hole> ) + [ 22106] + still problems with backreferences + reverse cloning + after #21936 - the weak reference may live on the pad. Branch: maint-5.8/perl - !> hv.c sv.c + !> mg.c sv.c ____________________________________________________________________________ -[ 21930] By: nicholas on 2003/12/19 19:46:46 +[ 22989] By: nicholas on 2004/06/24 15:09:34 Log: Integrate: - [ 21921] - Subject: [PATCH] 2-arg cond_wait, cond_timedwait, tests - From: Mike Pomraning <mjp@pilcrow.madison.wi.us> - Date: Wed, 17 Dec 2003 00:05:58 -0600 (CST) - Message-ID: <Pine.LNX.4.58.0312092202040.13494@benevelle.wi.securepipe.com> + [ 22872] + First step to generating Unicode files for the regexp engine at build + time - targets in the Makefile - [ 21922] - Subject: [PATCH: embed.fnc] arguments for perl_clone() - From: "Marcus Holland-Moritz" <mhx-perl@gmx.net> - Date: Wed, 17 Dec 2003 13:26:52 +0100 - Message-ID: <055701c3c499$11144f90$8cecfe91@R2D2> - Branch: maint-5.8/perl - +> ext/threads/shared/t/wait.t - ! embed.h - !> MANIFEST embed.fnc ext/threads/shared/shared.pm - !> ext/threads/shared/shared.xs global.sym -____________________________________________________________________________ -[ 21929] By: nicholas on 2003/12/19 19:06:10 - Log: Integrate: - [ 21915] - Add the macros dAX and dITEMS to PPPort. + [ 22873] + Convert to using File::Spec, so that we can build Unicode files + on all platforms - [ 21927] - Subject: [DOCPATCH] base.pm - From: Elizabeth Mattijsen <liz@dijkmat.nl> - Date: Thu, 18 Dec 2003 22:30:52 +0100 - Message-Id: <p05111b12bc07cc596977@[192.168.56.3]> + [ 22879] + Run mktables as part of the build process. + Don't ship any of the files that it generates in lib/unicore - Plus, remove leftover mentions of pseudo-hashes + [ 22880] + Don't need to require utf8_pva.pl at top of file - [ 21928] - Upgrade to CGI.pm 3.01 - Branch: maint-5.8/perl - !> ext/Devel/PPPort/PPPort.pm lib/CGI.pm lib/CGI/Carp.pm - !> lib/CGI/Cookie.pm lib/CGI/Fast.pm lib/CGI/Pretty.pm - !> lib/CGI/Util.pm lib/CGI/t/carp.t lib/CGI/t/request.t - !> lib/base.pm -____________________________________________________________________________ -[ 21926] By: nicholas on 2003/12/18 20:49:11 - Log: Integrate: - [ 21883] - Modify the common guard for the signal.h header, because - C99 compilers don't like it.o + [ 22881] + replace the run time code in lib/utf8_pva.pl with data generated + at build by mktables, stored in lib/unicore/PVA.pl - see : - Subject: UNIX03 & C99 issue with 5.8.2 - From: Alan Burlison <Alan.Burlison@sun.com> - Date: Fri, 12 Dec 2003 23:04:52 +0000 - Message-ID: <3FDA4994.6050209@sun.com> - - [ 21916] - Remove incorrect guards around inclusion of <signal.h> - Causes problems with UNIX03/SUSv3 - - [ 21917] - Remove incorrect guards around inclusion of <signal.h> - Causes problems with UNIX03/SUSv3 - Part 2 of change 21916 - oops! + [ 22887] + Subject: Re: Smoke [5.9.2] 22881 FAIL(M) MSWin32 WinXP/.Net SP1 (x86/1 cpu) + From: Steve Hay <steve.hay@uk.radan.com> + Date: Tue, 01 Jun 2004 15:30:37 +0100 + Message-ID: <40BC930D.90701@uk.radan.com> - See: - Message-Id: <3FDD06A5.8010004@sun.com> - Subject: Re: UNIX03 & C99 issue with 5.8.2 - From: Alan Burlison <Alan.Burlison@sun.com> - Date: Mon, 15 Dec 2003 00:56:05 +0000 - Branch: maint-5.8/perl - !> doio.c doop.c mg.c mpeix/mpeixish.h plan9/plan9ish.h unixish.h - !> util.c -____________________________________________________________________________ -[ 21925] By: nicholas on 2003/12/18 20:26:39 - Log: Integrate: - [ 21912] - Subject: [DOCPATCH] perlfunc delete - From: Elizabeth Mattijsen <liz@dijkmat.nl> - Date: Sun, 14 Dec 2003 20:25:07 +0100 - Message-Id: <p05111b07bc0269065a99@[192.168.56.3]> + [ 22899] + Workaround a dmake oddity. + Subject: Re: Smoke [5.9.2] 22881 FAIL(M) MSWin32 WinXP/.Net SP1 (x86/1 cpu) + From: Steve Hay <steve.hay@uk.radan.com> + Date: Thu, 03 Jun 2004 12:16:13 +0100 + Message-ID: <40BF087D.8030005@uk.radan.com> - [ 21914] - Subject: [patch Porting/pumpkin.pod] trying to ensure that PPPort is up-to-date on each new release - From: Stas Bekman <stas@stason.org> - Date: Sun, 14 Dec 2003 15:12:40 -0800 - Message-ID: <3FDCEE68.3080509@stason.org> + [ 22924] + Subject: Change 22872 breaks shared miniperl invocation + From: Alexey Tourbin <at@altlinux.ru> + Date: Fri, 4 Jun 2004 13:24:17 +0400 + Message-ID: <20040604092417.GA13447@solemn.turbinal.org> - [ 21923] - Perl 1.0.16 has been released. + [ 22961] + 'make test' without preceeding 'make' fails. + Change #22872 added a target to run mktables, but this was + skipped if 'make test' was run first, causing the build of + Unicode::Normalize to fail. - [ 21924] - "Richard" - who he? (Add "Richard Clamp" to the list of pumpkings) + [ 22963] + make mktables always update modifed time to play better with make Branch: maint-5.8/perl - !> Porting/pumpkin.pod pod/perlfunc.pod pod/perlhist.pod + - (delete 420 files) + !> MANIFEST Makefile.SH lib/unicore/mktables lib/utf8_heavy.pl + !> vms/descrip_mms.template win32/Makefile win32/makefile.mk ____________________________________________________________________________ -[ 21920] By: nicholas on 2003/12/16 23:32:48 +[ 22987] By: nicholas on 2004/06/23 15:54:27 Log: Integrate: - [ 21875] - fix bug #24605. - substr() wasn't working when used repeatedly on the same utf-8 - string. + [ 22960] + When expecting an error, it's best to check the text you got, rather + than blindly assuming that it's correct. Branch: maint-5.8/perl - ! sv.c - !> t/op/substr.t + !> t/op/write.t ____________________________________________________________________________ -[ 21919] By: nicholas on 2003/12/16 23:11:18 +[ 22986] By: nicholas on 2004/06/23 15:30:36 Log: Integrate: - [ 21866] - plumb a leak with pos(). + [ 22928] + t/comp/utf.t failed when configuring with -Dnoextensions=Encode - #! perl - while (1) { - my $a = "\x{1ff}"; $a =~ /\x{1ff}/g; pos($a); - } - __END__ + [ 22947] + Need to skip test 7 if perl built without the PerlIO::scalar extension - [ 21867] - yet another 2 leaks. example for the second: - #! perl - eval q{ open $p{q}, "foo" } while 1 - __END__ + [ 22948] + Can't test the B modules if we didn't build 'em - [ 21868] - yet another leak. bigger fish still swimming around. - #!perl - eval q{ $_ = "x"; s/x/"in subst"/e } while 1; - __END__ + [ 22949] + Unicode::UCD uses Storable, so we can't test if Storable isn't built. - [ 21876] - #21866 was wrong. another try to plumb that damn leak. - Branch: maint-5.8/perl - ! sv.c - !> mg.c op.c pp_ctl.c -____________________________________________________________________________ -[ 21913] By: nicholas on 2003/12/14 22:50:47 - Log: Update Changes - Branch: maint-5.8/perl - ! Changes patchlevel.h -____________________________________________________________________________ -[ 21911] By: nicholas on 2003/12/14 20:25:18 - Log: Integrate: - [ 21898] - Add Perl_ceil + [ 22950] + D'oh. Don't turn on warnings on the #! line without actually testing + the full code in case it warns. - [ 21910] - Forgot to remove a comment - Branch: maint-5.8/perl - !> perl.h pp.c -____________________________________________________________________________ -[ 21909] By: nicholas on 2003/12/14 19:53:35 - Log: Integrate: - [ 21647] - Subject: [PATCH] Re: PERL_VERSION, SUBVERSION, PATCHLEVEL - From: "Marcus Holland-Moritz" <mhx-perl@gmx.net> - Date: Mon, 3 Nov 2003 20:53:33 +0100 - Message-ID: <023a01c3a244$2a1dd5a0$0c2f1fac@R2D2> + [ 22951] + If we don't build B, we should skip all its tests. - [ 21902] - Subject: Re: 5.6.2-RC1 on Cygwin - From: Yitzchak Scott-Thoennes <sthoenna@efn.org> - Date: Sat, 6 Dec 2003 22:32:59 -0800 - Message-ID: <20031207063259.GA3004@efn.org> - (with tweaks to cleanup code) - Branch: maint-5.8/perl - !> ext/Devel/PPPort/PPPort.pm t/op/taint.t -____________________________________________________________________________ -[ 21908] By: nicholas on 2003/12/14 19:16:51 - Log: Integrate: - [ 21872] - temporary fix to avoid t/op/tie.t failures on Win32 + [ 22952] + Skip re tests if re not built. - [ 21904] - Clean up a bug I introduced into caseless ENV hv_delete - (should be the proper fix for 21870 and 21872's band aid) + [ 22953] + Skip test if Devel::PPPort not built - [ 21905] - Subject: Re: Change 21862 - From: Enache Adrian <enache@rdslink.ro> - Date: Wed, 10 Dec 2003 06:05:58 +0200 - Message-ID: <20031210040558.GC1584@ratsnest.hole> + [ 22954] + Skip test if perl configured without threads::shared - (1st hunk), plus the equivalent for hv_delete_common + [ 22955] + Not ideal, but skip all of IO's tests if Socket is not built. - [ 21906] - Some fool missed a letter n. - (and then "optimised" code based on its absense. D'oh) - Restore the correct behaviour - fetch with uppercase key, then if - still not found store with mixed/lowercase key. + [ 22956] + Skip tests when PerlIO::scalar and PerlIO::via aren't built - [ 21907] - S_save_hek_flags should honour the "free" flag. - Ought to mask the flag bits that shouldn't be stored. - Branch: maint-5.8/perl - !> hv.c -____________________________________________________________________________ -[ 21903] By: nicholas on 2003/12/13 23:02:59 - Log: Integrate: - [ 21834] - Subject: Re: [perl #24574] find2perl provides different results to find - From: Slaven Rezic <slaven@rezic.de> - Date: 30 Nov 2003 22:16:59 +0100 - Message-ID: <8765h1pnec.fsf@vran.herceg.de> + [ 22957] + Also needs skipping if PerlIO::via not built - (plus a note about find2perl now defaulting to -print in perldelta) + [ 22958] + This needs POSIX, so skip if no POSIX - [ 21891] - Make the XSRETURN macro evaluate its argument only once. - Branch: maint-5.8/perl - !> XSUB.h pod/perldelta.pod x2p/find2perl.PL -____________________________________________________________________________ -[ 21901] By: nicholas on 2003/12/13 21:22:15 - Log: Integrate: - [ 21892] - Subject: Patch for: [perl #24650] File::CheckTree should list Larry Wall as author, not unknown - From: David Dyck <david.dyck@fluke.com> - Date: Sat, 13 Dec 2003 00:01:34 -0800 (PST) - Message-ID: <Pine.LNX.4.51.0312122351450.8825@dd.tc.fluke.com> + [ 22959] + Case insensitive file systems are bad, m'kay - [ 21895] - alarm() is now implemented on Win32. + [ 22965] + Skip test if Devel::PPPort is not built. + Probably should fix h2xs to work without it. - [ 21897] - Reformat a long line in perlembed.pod (bug #24623). + [ 22966] + Skip test if Data::Dumper not built + + [ 22967] + Skip tests if List::Util not built Branch: maint-5.8/perl - !> lib/File/CheckTree.pm pod/perlembed.pod pod/perlport.pod + !> (integrate 31 files) ____________________________________________________________________________ -[ 21900] By: nicholas on 2003/12/13 21:08:12 +[ 22985] By: nicholas on 2004/06/23 15:15:37 Log: Integrate: - [ 21855] - Subject: [PATCH] SCALAR/FIRSTKEY for tied hashes in scalar context - From: Tassilo von Parseval <tassilo.parseval@post.rwth-aachen.de> - Date: Sat, 06 Dec 2003 11:50:59 +0100 - Message-id: <20031206105059.GA13989@ethan> + [ 22907] + Upgrade to Test::Harness 2.42 - [ 21856] - Clarify the description of SCALAR in perltie + [ 22908] + Upgrade to Time::Local 1.10. - [ 21857] - Remove the "Can't provide tied hash usage" error from perldiag. - Mention the new tied hash SCALAR method in perldelta. + [ 22909] + Upgrade to Unicode::Collate 0.40 - [ 21863] - Missing thingies. + [ 22912] + Upgrade to Pod::LaTeX 0.57 - [ 21865] - Subject: [PATCH] documenting SCALAR gotcha - From: Tassilo von Parseval <tassilo.parseval@post.rwth-aachen.de> - Date: Sun, 07 Dec 2003 16:41:16 +0100 - Message-id: <20031207154116.GA825@ethan> + [ 22914] + Upgrade to CGI.pm 3.05 - [ 21869] - Subject: [PATCH] iterator reset moved to hv.c (was: [PATCH] SCALAR/FIRSTKEY for tied hashes in scalar context) - From: Tassilo von Parseval <tassilo.parseval@post.rwth-aachen.de> - Date: Mon, 08 Dec 2003 08:17:46 +0100 - Message-id: <20031208071746.GA594@ethan> + [ 22915] + Upgrade to Digest 1.08. - [ 21896] - The binary compatibility notes say that new global functions should - go at the end. Not that I'm anything more than "trainee" when it - comes to this bincompat stuff. - Branch: maint-5.8/perl - ! pp.c pp_hot.c - !> embed.fnc embed.h global.sym hv.c lib/Tie/Hash.pm mg.c - !> pod/perlapi.pod pod/perldiag.pod pod/perlfunc.pod - !> pod/perltie.pod proto.h t/op/tie.t -____________________________________________________________________________ -[ 21899] By: nicholas on 2003/12/13 20:26:39 - Log: Refactor to use t/test.pl - Branch: maint-5.8/perl - ! t/op/avhv.t -____________________________________________________________________________ -[ 21894] By: nicholas on 2003/12/13 17:59:41 - Log: regenerate perltoc.pod and Integrate: - [ 21884] - Subject: RE: [perl #24610] Pod::Html infinite recursion - From: Anders Johnson <ajohnson@nvidia.com> - Date: Fri, 12 Dec 2003 14:07:40 -0800 - Message-ID: <33171CC36240D94EAF1FE584B1D14E0A06EC6F51@mail-sc-11.nvidia.com> - (with tweaks) - - [ 21885] - Fix some of the pods to produce more standard manpages, - as reported by Eric S. Raymond. - - [ 21886] - More POD fixes ; regenerate perltoc and perlmodlib. - - [ 21893] - foreach qw() { # not valid syntax for 5.005. So fix it. - Branch: maint-5.8/perl - ! pod/perltoc.pod - !> README.ce README.netware ext/DynaLoader/DynaLoader_pm.PL - !> lib/Getopt/Std.pm lib/Pod/Html.pm lib/diagnostics.pm - !> pod/buildtoc pod/perlmodlib.pod -____________________________________________________________________________ -[ 21890] By: nicholas on 2003/12/13 16:19:29 - Log: Integrate: - [ 21826] - Upgrade to Test::Harness 2.38. - Introduce the prove(1) utility. - (The prove-switches test is disabled for now.) - - [ 21836] - The prove utility should also be installed on VMS and on Windows. - Haven't we regression tests for installations yet ? - - [ 21871] - Upgrade to Digest-MD5 2.33. - - [ 21874] - Suppress a C< $DB::single = 1 > from Switch.pm, as noticed - by Jan Dubois. - Branch: maint-5.8/perl - +> lib/Test/Harness/bin/prove lib/Test/Harness/t/inc_taint.t - +> lib/Test/Harness/t/prove-switches.t t/lib/Dev/Null.pm - +> t/lib/sample-tests/inc_taint t/lib/sample-tests/taint_warn - +> utils/prove.PL - ! installperl - !> MANIFEST ext/Digest/MD5/Changes ext/Digest/MD5/MD5.pm - !> ext/Digest/MD5/MD5.xs ext/Digest/MD5/Makefile.PL - !> ext/Digest/MD5/t/files.t ext/Digest/MD5/typemap lib/Switch.pm - !> lib/Test/Harness.pm lib/Test/Harness/Assert.pm - !> lib/Test/Harness/Changes lib/Test/Harness/Iterator.pm - !> lib/Test/Harness/Straps.pm lib/Test/Harness/t/00compile.t - !> lib/Test/Harness/t/assert.t lib/Test/Harness/t/callback.t - !> lib/Test/Harness/t/pod.t lib/Test/Harness/t/strap-analyze.t - !> lib/Test/Harness/t/strap.t lib/Test/Harness/t/test-harness.t - !> utils.lst utils/Makefile vms/descrip_mms.template - !> win32/Makefile win32/makefile.mk -____________________________________________________________________________ -[ 21889] By: nicholas on 2003/12/13 15:55:57 - Log: Integrate: - [ 21859] - Math::BigInt::Scalar is only for tests. - Move it under t/lib. - - [ 21860] - Forgot to update the MANIFEST. - - [ 21861] - Subject: [PATCH] Math::BigInt v1.67 (pre-release) - From: Tels <perl_dummy@bloodgate.com> - Date: Sat, 6 Dec 2003 20:19:44 +0100 - Message-Id: <200312062016.50484@bloodgate.com> - - [ 21882] - Subject: [PATCH] Math::BigInt v1.67 released - From: Tels <perl_dummy@bloodgate.com> - Date: Fri, 12 Dec 2003 18:47:43 +0100 - Message-Id: <200312121847.49039@bloodgate.com> - Branch: maint-5.8/perl - +> lib/Math/BigInt/t/const_mbf.t lib/Math/BigInt/t/fallback.t - +> t/lib/Math/BigInt/Scalar.pm - - lib/Math/BigInt/Scalar.pm - !> MANIFEST lib/Math/BigFloat.pm lib/Math/BigInt.pm - !> lib/Math/BigInt/Calc.pm lib/Math/BigInt/t/bare_mbf.t - !> lib/Math/BigInt/t/bare_mbi.t lib/Math/BigInt/t/bigfltpm.inc - !> lib/Math/BigInt/t/bigfltpm.t lib/Math/BigInt/t/bigintc.t - !> lib/Math/BigInt/t/bigintpm.inc lib/Math/BigInt/t/bigintpm.t - !> lib/Math/BigInt/t/bigints.t lib/Math/BigInt/t/biglog.t - !> lib/Math/BigInt/t/constant.t lib/Math/BigInt/t/downgrade.t - !> lib/Math/BigInt/t/sub_mbf.t lib/Math/BigInt/t/sub_mbi.t - !> lib/Math/BigInt/t/with_sub.t -____________________________________________________________________________ -[ 21888] By: nicholas on 2003/12/13 14:42:15 - Log: Integrate: - [ 21858] - Subject: [PATCH] casting bug in VMS part of Perl_start_glob - From: "Craig A. Berry" <craigberry@mac.com> - Date: Sat, 06 Dec 2003 12:44:40 -0600 - Message-ID: <3FD22398.1060506@mac.com> - - [ 21864] - Subject: [PATCH] setenv tweak for VMS - From: "Craig A. Berry" <craigberry@mac.com> - Date: Sat, 06 Dec 2003 18:13:32 -0600 - Message-ID: <3FD270AC.3000106@mac.com> + [ 22916] + Upgrade to Pod::Perldoc 3.13 - [ 21879] - Subject: [PATCH] environ array fix for VMS - From: "Craig A. Berry" <craigberry@mac.com> - Date: Thu, 11 Dec 2003 14:35:29 -0600 - Message-ID: <3FD8D511.2030805@mac.com> + [ 22920] + Upgrade to Pod::Parser 1.28 + (except Pod::Find, which has local patches not yet on CPAN) - [ 21881] - Subject: [PATCH] d_u32align for win32 - From: Gisle Aas <gisle@ActiveState.com> - Date: 11 Dec 2003 01:33:39 -0800 - Message-ID: <lrzndzr958.fsf@caliper.activestate.com> + [ 22931] + Reapply change #20983, rolled back by change #22920, + as noticed by Craig Berry. Branch: maint-5.8/perl - !> doio.c vms/vms.c win32/config.bc win32/config.gc - !> win32/config.vc + +> lib/Pod/Perldoc/t/01_about_verbose.t lib/Pod/t/user.t + !> MANIFEST lib/CGI.pm lib/CGI/Carp.pm lib/CGI/Util.pm + !> lib/CGI/t/html.t lib/Digest.pm lib/Pod/Checker.pm + !> lib/Pod/LaTeX.pm lib/Pod/ParseUtils.pm lib/Pod/Parser.pm + !> lib/Pod/Perldoc.pm lib/Pod/Perldoc/ToMan.pm + !> lib/Test/Harness.pm lib/Test/Harness/Changes + !> lib/Test/Harness/bin/prove lib/Test/Harness/t/prove-switches.t + !> lib/Time/Local.pm lib/Time/Local.t lib/Unicode/Collate.pm + !> lib/Unicode/Collate/t/hangul.t pod/pod2latex.PL + !> pod/pod2usage.PL pod/podchecker.PL pod/podselect.PL + !> t/pod/find.t ____________________________________________________________________________ -[ 21887] By: nicholas on 2003/12/13 14:12:49 +[ 22984] By: nicholas on 2004/06/23 14:38:51 Log: Integrate: - [ 21873] - Subject: [PATCH perlunicode.pod, encoding.pm] Implicit upgrading docs - From: Autrijus Tang <autrijus@autrijus.org> - Date: Tue, 9 Dec 2003 20:39:16 +0800 - Message-ID: <20031209123915.GA1454@not.autrijus.org> + [ 22906] + Patch 22835 Failed to upgrade all the new files in Encode 2.01 + As spotted by Jerry D. Hedden - [ 21877] - Add a mention of the error "DESTROY created new reference - to dead object" in perldiag. + [ 22911] + Upgrade to Unicode::Normalize 0.30. - [ 21878] - Subject: [PATCH] Perl 5.9.0 AUTHORS - From: Mark Leighton Fisher <mark-fisher@mindspring.com> - Message-ID: <3FD8E74F.7000202@mindspring.com> - Date: Thu, 11 Dec 2003 16:53:19 -0500 - Branch: maint-5.8/perl - !> AUTHORS ext/Encode/encoding.pm pod/perldiag.pod - !> pod/perlunicode.pod -____________________________________________________________________________ -[ 21862] By: nick on 2003/12/06 21:16:01 - Log: Win32/MinGW tweaks - A. ENV_IS_CASELESS has trys to free(keysave) when - keysave isn't in scope yet. - B. For default makefile.mk which build with perlhost.h - stuff "live" need to link with g++ to find new/delete etc. - Branch: maint-5.8/perl - ! hv.c win32/makefile.mk -____________________________________________________________________________ -[ 21852] By: nicholas on 2003/12/05 21:09:27 - Log: Integrate: - [ 21851] - Back out the Makefile.PL part of 21808 as requested by Gisle Aas + [ 22970] + Subject: [PATCH] DB_File 1.809 was RE: [perl #30237] DB_File methods and substr don't mix + From: "Paul Marquess" <Paul.Marquess@btinternet.com> + Date: Tue, 22 Jun 2004 21:29:12 +0100 + Message-Id: <20040622202910.WBSU21846.mta08-svc.ntlworld.com@MARQUESSPT21> Branch: maint-5.8/perl - !> ext/Digest/MD5/Makefile.PL + !> ext/DB_File/Changes ext/DB_File/DB_File.pm + !> ext/DB_File/DB_File.xs ext/DB_File/t/db-btree.t + !> ext/DB_File/t/db-hash.t ext/DB_File/t/db-recno.t + !> ext/DB_File/typemap ext/Encode/Changes ext/Encode/Encode.pm + !> ext/Encode/META.yml ext/Unicode/Normalize/Changes + !> ext/Unicode/Normalize/Normalize.pm + !> ext/Unicode/Normalize/Normalize.xs + !> ext/Unicode/Normalize/t/illegal.t + !> ext/Unicode/Normalize/t/short.t + !> ext/Unicode/Normalize/t/split.t ____________________________________________________________________________ -[ 21850] By: nicholas on 2003/12/05 19:44:34 +[ 22983] By: nicholas on 2004/06/23 13:41:45 Log: Integrate: - [ 21843] - Subject: [PATCH] another ext/SDBM_File/sdbm build fix - From: "Craig A. Berry" <craigberry@mac.com> - Date: Thu, 04 Dec 2003 16:00:03 -0600 - Message-ID: <3FCFAE63.1080106@mac.com> + [ 22902] + Subject: Re: [PATCH] [perl #29841] utf8::decode doesn't work under -T + From: SADAHIRO Tomoyuki <bqw10602@nifty.com> + Date: Sun, 06 Jun 2004 00:37:21 +0900 + Message-Id: <20040606003344.57B2.BQW10602@nifty.com> - [ 21844] - Subject: [REPATCH lib/AutoLoader.t] Test can() with AutoLoader - From: chromatic <chromatic@wgz.org> - Date: Mon, 01 Dec 2003 09:20:21 -0800 - Message-Id: <1070299221.1275.19.camel@localhost> + [ 22976] + Add a regression test for bug #23765 (by Jarkko) Branch: maint-5.8/perl - !> ext/SDBM_File/sdbm/Makefile.PL lib/AutoLoader.t + ! t/op/substr.t + !> lib/utf8.pm pod/perlapi.pod sv.c t/op/utftaint.t ____________________________________________________________________________ -[ 21849] By: nicholas on 2003/12/05 19:26:44 +[ 22982] By: nicholas on 2004/06/23 13:22:41 Log: Integrate: - [ 21837] - Subject: Re: XS modules having problems with CLONE and ithreads unless PERL_NO_GET_CONTEXT is defined - From: Stas Bekman <stas@stason.org> - Date: Wed, 03 Dec 2003 01:41:42 -0800 - Message-ID: <3FCDAFD6.9050106@stason.org> + [ 22904] + Subject: Re: [PATCH] Re: Lack of error for large string on Solaris + From: Jarkko Hietaniemi <jhi@iki.fi> + Date: Mon, 07 Jun 2004 20:09:42 +0300 + Message-ID: <40C4A156.5030205@iki.fi> - [ 21842] - Subject: [PATCH] $^P, eval and caller - From: Paul Johnson <paul@pjcj.net> - Date: Fri, 5 Dec 2003 00:57:21 +0100 - Message-ID: <20031204235721.GJ26355@pjcj.net> + [ 22922] + Remove the "malloc wrappage" tests, due to their unportability + (as suggested by Jarkko.) Branch: maint-5.8/perl - ! mg.c - !> sv.c + !> av.c pod/perldiag.pod pp.c pp_hot.c t/op/array.t t/op/repeat.t ____________________________________________________________________________ -[ 21848] By: nicholas on 2003/12/05 18:43:44 +[ 22981] By: nicholas on 2004/06/23 13:08:18 Log: Integrate: - [ 21840] - Subject: Re: a2p.pod not being installed in 5.8.2? + [ 22876] + Subject: [PATCH] Fix anomalies in Carp functions + From: Steve Hay <steve.hay@uk.radan.com> + Date: Tue, 25 May 2004 16:05:02 +0100 + Message-ID: <40B3609E.5060502@uk.radan.com> + + [ 22883] + Subject: [PATCH] Shell.pm: pod rewrite and new mini-feature $Shell::raw + From: LAUN Wolfgang <wolfgang.laun@alcatel.at> + Date: Tue, 1 Jun 2004 07:52:58 +0200 + Message-ID: <DF27CDCBD2581D4B88431901094E4B4D02B0C744@attmsx1.aut.alcatel.at> + + [ 22886] + Subject: [Fwd: [PATCH] Pod::Find should ignore SCM files and dirs] From: Alan Burlison <Alan.Burlison@sun.com> - Date: Thu, 04 Dec 2003 12:14:30 +0000 - Message-ID: <3FCF2526.3030905@sun.com> + Date: Fri, 28 May 2004 23:28:44 +0100 + Message-ID: <40B7BD1C.40309@sun.com> + + [ 22888] + Subject: [PATCH] Remove redundant %SIG assignments from FileCache + From: Alan Burlison <Alan.Burlison@Sun.COM> + Date: Fri, 28 May 2004 12:27:06 +0100 + Message-ID: <40B7220A.4040305@sun.com> + + [ 22898] + Carp was mostly unusable with Safe because it may require + Carp::Heavy at run-time (while require() is forbidden.) + Have Safe load Carp::Heavy. + + [ 22921] + Subject: [PATCH] Re: [perl #24081] invalid regexp in perl -V + From: Robin Barker <Robin.Barker@npl.co.uk> + Date: Wed, 9 Jun 2004 12:02:01 +0100 + Message-ID: <533D273D4014D411AB1D00062938C4D9040468F1@hotel.npl.co.uk> + with further adjustements for bleadperl + + [ 22938] + Subject: [PATCH] File::Basename docs + From: Boris Zentner <bzm@2bz.de> + Date: Sat, 12 Jun 2004 16:29:42 +0200 + Message-Id: <200406121629.42595.bzm@2bz.de> + + [ 22940] + More forgiving version comparison in perlivp. + + [ 22971] + Adjust array index in FileCache.pm. + + Subject: [perl #30291] Use of uninitialized value (array index reference) in FileCache.pm module at line 140 + From: bbucklan@jpl-devvax.jpl.nasa.gov (via RT) <perlbug-followup@perl.org> + Date: 15 Jun 2004 16:55:22 -0000 + Message-ID: <rt-3.0.9-30291-90552.18.5392299690759@perl.org> + + [ 22972] + Proposed patch + test case. + + Subject: [perl #30409] charnames.pm clobbers default variable + From: Marcel "Grünauer" (via RT) <perlbug-followup@perl.org> + Date: 22 Jun 2004 16:43:50 -0000 + Message-ID: <rt-3.0.9-30409-91174.12.8617678524438@perl.org> + Branch: maint-5.8/perl + !> configpm ext/Opcode/Safe.pm lib/Carp.pm lib/Carp.t + !> lib/Carp/Heavy.pm lib/Config.t lib/File/Basename.pm + !> lib/FileCache.pm lib/Pod/Find.pm lib/Shell.pm lib/autouse.t + !> lib/charnames.pm lib/charnames.t utils/perlivp.PL +____________________________________________________________________________ +[ 22980] By: nicholas on 2004/06/23 12:44:49 + Log: Integrate: + [ 22870] + [perl #29708] Problem with autouse (causing Perl to crash) + @_ sometimes wasn't getting created right + + [ 22913] + [perl #30061] double DESTROY in for loop + pp_iter decremented the ref count of the previous iterant before + unaliasing it. This could lead to DESTROY being called with the + loop variable still aliased to the freed value. If the DESTROY + also contained a for loop with the same iterator variable, the + freed value would get resurrected then freed for a second time. + + [ 22945] + As 2/3rds (or 3/4s) of the SV head structure is rewritten, it doesn't + seem that memzero() of everything is the most efficient idea. + + [ 22962] + fix typo in gp_free + + [ 22969] + Abolish the "Tied variable freed while still in use" error - I have + a way to cleanly avoid the coredump. + Branch: maint-5.8/perl + !> gv.c mg.c pad.c pod/perldiag.pod pp_ctl.c pp_hot.c sv.c + !> t/cmd/for.t t/op/goto.t t/op/tie.t +____________________________________________________________________________ +[ 22979] By: nicholas on 2004/06/23 10:32:34 + Log: Integrate: + [ 22884] + Subject: [PATCH] configure.com and PERL_API_REVISION + From: "Craig A. Berry" <craigberry@mac.com> + Date: Mon, 31 May 2004 21:04:07 -0500 + Message-ID: <40BBE417.2090001@mac.com> - [ 21846] - Subject: [PATCH] Configure gets d_u32align wrong - From: Gisle Aas <gisle@ActiveState.com> - Date: 05 Dec 2003 03:47:01 -0800 - Message-ID: <lr4qwfbi6i.fsf_-_@caliper.activestate.com> - Branch: maint-5.8/perl - !> Configure installperl -____________________________________________________________________________ -[ 21847] By: nicholas on 2003/12/05 18:25:53 - Log: Integrate: - [ 21841] - Fix File::Copy with hard links on Windows. + [ 22892] + Subject: Re: [PATCH] [perl #29612] ndbm failure in make test + From: Alexey Tourbin <at@altlinux.ru> + Date: Sat, 22 May 2004 02:22:22 +0400 + Message-ID: <20040521222222.GJ2030@solemn.turbinal.org> + + [ 22893] + Subject: [PATCH] on VMS, always exit with failure in my_failure_exit + From: "Craig A. Berry" <craigberry@mac.com> + Date: Tue, 01 Jun 2004 23:16:58 -0500 + Message-ID: <40BD54BA.9040708@mac.com> - Subject: [PATCH] Re: perl @ 21830 + [ 22901] + Subject: [PATCH] Have win32/makefile.mk default to gcc, and update docs From: Steve Hay <steve.hay@uk.radan.com> - Date: Wed, 03 Dec 2003 10:53:02 +0000 - Message-ID: <3FCDC08E.7080800@uk.radan.com> + Date: Thu, 03 Jun 2004 15:46:17 +0100 + Message-ID: <40BF39B9.3060207@uk.radan.com> - and - Date: Thu, 04 Dec 2003 11:02:22 +0000 - Message-ID: <3FCF143E.1040905@uk.radan.com> + [ 22918] + Subject: [patch] Windows/Win32 thread handle leak with threads join + From: "Kevin Chase" <kevincha99@hotmail.com> + Date: Sun, 06 Jun 2004 09:44:44 -0700 + Message-ID: <BAY2-F172Ih5h5xf4rJ0001a3a6@hotmail.com> + + [ 22939] + Improve the substitution to cc_r for threading so that compilers + specified with a full path or as a parameter to ccache are changed + + [ 22975] + Backward compatibility issues for HP-UX 10.01 and older + Yes, it is still actively used in production environment + One more patch expected for toke.c optimization level Branch: maint-5.8/perl - !> lib/File/Copy.pm lib/File/Copy.t + !> README.win32 configure.com ext/NDBM_File/hints/linux.pl + !> ext/threads/threads.xs hints/aix.sh hints/hpux.sh perl.c + !> win32/makefile.mk ____________________________________________________________________________ -[ 21839] By: nicholas on 2003/12/03 21:51:48 +[ 22978] By: nicholas on 2004/06/23 10:07:41 Log: Integrate: - [ 21832] - Better docs for the special code blocks, based on : - Subject: [DOCPATCH] BEGIN, CHECK, INIT, END explained more - From: Elizabeth Mattijsen <liz@dijkmat.nl> - Date: Sat, 29 Nov 2003 23:15:56 +0100 - Message-Id: <p05111b01bbeec2e8bf30@[192.168.56.3]> + [ 22877] + Subject: [PATCH] Re: [perl #29969] h2ph not correctly processing glibc sys/sysmacros.ph + From: <wolfgang.laun@chello.at> + Date: Sun, 30 May 2004 17:27:07 +0200 + Message-Id: <20040530152707.ZLWL22856.viefep16-int.chello.at@localhost> - [ 21835] - FAQ sync. - Branch: maint-5.8/perl - !> pod/perlfaq1.pod pod/perlfaq2.pod pod/perlfaq3.pod - !> pod/perlfaq4.pod pod/perlfaq5.pod pod/perlmod.pod - !> pod/perlsub.pod -____________________________________________________________________________ -[ 21838] By: nicholas on 2003/12/03 19:13:35 - Log: Remove duplicate call to PERL_HASH in delete - Transpires that in maint there just aren't enough shared hash SVs - to make the check in hv.c worth it. + [ 22925] + Make h2ph able to understand a limited set of inline functions. + The glibc apparently now ships headers that use inline functions + instead of plain old macros. + + [ 22929] + More h2ph tweaking for gcc __inline functions + + [ 22930] + More h2ph tweaks: recognition of C types + + [ 22933] + More h2ph voodoo. Branch: maint-5.8/perl - ! hv.c + !> utils/h2ph.PL ____________________________________________________________________________ -[ 21831] By: nicholas on 2003/12/02 20:35:22 +[ 22974] By: nicholas on 2004/06/22 21:59:24 Log: Integrate: - (The hv.c changes of 17740) - [ 17740] - Clean up copy-on-write macros and debug facilities (new flag 'C'). - Handle CoW in hashes: - Subject: Re: why would tr/// be performing hash copies? - From: Nicholas Clark <nick@unfortu.net> - Date: Sun, 18 Aug 2002 23:17:01 +0100 - Message-id: <20020818221700.GD294@Bagpuss.unfortu.net> - - [ 21747] - merge hv_exists and hv_exists_ent into S_hv_exists_common - - [ 21750] - integrate hv_delete and hv_delete_ent into hv_delete_common + [ 22882] + Subject: [PATCH] perlhack.pod - working with the Perl source + From: Dave Rolsky <autarch@urth.org> + Date: Mon, 31 May 2004 12:52:43 -0500 (CDT) + Message-ID: <Pine.LNX.4.58.0405311250520.7714@urth.org> - [ 21753] - merge hv_fetch and hv_fetch_ent into hv_fetch_common - remove S_hv_fetch_flags - hv.c now 13% smaller than when I started. hv_store TODO + [ 22885] + Subject: Re: [PATCH] UPDATE - Grammatical fixes and explanations in perlfunc.pod (sysopen) + From: Paul Fenwick <pjf@perltraining.com.au> + Date: Tue, 1 Jun 2004 11:31:34 +1000 + Message-ID: <20040601013134.GA11005@perltraining.com.au> - [ 21758] - Merge sv_store_flags and sv_store_ent into sv_store_common + [ 22890] + Subject: [PATCH] Re: [perl #29765] PERL-5.8.4 INSTALL + From: Andrew Dougherty <doughera@lafayette.edu> + Date: Tue, 1 Jun 2004 16:25:48 -0400 (EDT) + Message-ID: <Pine.SOL.4.58.0406011619090.4066@maxwell.phys.lafayette.edu> - [ 21760] - Shift negative klen/flags games from hv_fetch_common out to hv_fetch + [ 22891] + Detypo. - [ 21765] - Tweaks to S_hv_delete_common: - make the magic call hv_fetch_common rather than ent-or-not - grab the hash from a shared hash key scalar if possible - use masked flags rather than flags for the comparison + [ 22895] + Fix apidoc entries for PUSHMARK and newXSproto. - [ 21766] - Move the negative key -> utf8 flag conversion out to hv_delete + [ 22900] + perlpodspec uses 'nonbreaking' and 'non-breaking'. + Normalize on the hyphenated spelling. - [ 21768] - Shift negative klen/flags games from hv_exists_common out to hv_exists + [ 22903] + Subject: [perl #30073] Misleading docs of Text::Wrap + From: perl-5.8.0@ton.iguana.be (via RT) <perlbug-followup@perl.org> + Date: 6 Jun 2004 21:50:19 -0000 + Message-ID: <rt-3.0.9-30073-89834.19.0927626986204@perl.org> - [ 21769] - Shift negative klen/flags games from hv_store_common out to hv_store + [ 22905] + Subject: Re: newSVpvn(NULL, 0); doesn't work as advertised + From: Marcus Holland-Moritz <mhx-perl@gmx.net> + Date: Fri, 4 Jun 2004 16:29:44 +0200 + Message-Id: <20040604162944.4011f1c6@r2d2> - [ 21770] - Farewell hv_exists_common - exists is now a call to fetch - (with the exists magic handling moved into fetch) + [ 22910] + Remove a spurious \n in a perltie example, + noticed by Geoffrey Young. - [ 21771] - "Space Is a Province of Brazil" - Farewell, hv_store_common. Store is now part of Fetch. - All tests pass. hv.c 15% smaller than when I started all this + [ 22917] + Several updates, major, and minor corrections, model updates, + explained the model numbering of HP-UX servers. - [ 21772] - Reorder functions in hv.c so that callers of hv_fetch_common are all - close to it. + [ 22919] + s/64bit/64-bit/g for consistency in the READMEs. - [ 21779] - D'oh. Mistake in the DYNAMIC_ENV_FETCH conditional code - reported by Craig Berry + [ 22923] + Subject: Re: [perl #30045] Transliteration replacement not terminated message obscure + From: Yitzchak Scott-Thoennes <sthoenna@efn.org> + Date: Mon, 7 Jun 2004 00:28:55 -0700 + Message-ID: <20040607072854.GB1028@efn.org> - [ 21781] - Tweak the order of initialisation of oentry in hv_fetch_common - - C source now cleaner, but optimised object file still the same size. + [ 22927] + Remove a warning against unsafe signals in perlipc.pod, + now that we have "safe signals". - [ 21782] - Should fix the infinite loop on a dynamic %ENV fetch + [ 22936] + Subject: [PATCH] perlop.pod: add an example to the .. and ... operators + From: Shlomi Fish <shlomif@vipe.technion.ac.il> + Date: Tue, 15 Jun 2004 10:15:15 +0300 (IDT) + Message-ID: <Pine.LNX.4.56.0406151013140.14618@vipe.technion.ac.il> Branch: maint-5.8/perl - ! hv.c - !> embed.fnc embed.h proto.h -____________________________________________________________________________ -[ 21830] By: nicholas on 2003/11/30 21:36:13 - Log: Update Changes - Branch: maint-5.8/perl - ! Changes patchlevel.h + !> INSTALL README README.aix README.hpux XSUB.h lib/Text/Wrap.pm + !> pod/perlapi.pod pod/perldiag.pod pod/perlfunc.pod + !> pod/perlhack.pod pod/perlintern.pod pod/perlipc.pod + !> pod/perlop.pod pod/perlpodspec.pod pod/perltie.pod pp.h + !> pp_ctl.c sv.c ____________________________________________________________________________ -[ 21829] By: nicholas on 2003/11/30 21:35:03 +[ 22973] By: nicholas on 2004/06/22 21:35:46 Log: Integrate: - [ 21827] - Keep installing xsubpp in lib/ExtUtils, - so MakeMaker can find it. + [ 22824] + Fix new B::Concise test output + Subject: Re: Smoke [5.9.2] 22820 FAIL(F) openbsd 3.5 (i386/1 cpu) + From: Jim Cromie <jcromie@divsol.com> + Date: Mon, 17 May 2004 09:19:00 -0600 + Message-ID: <40A8D7E4.1020007@divsol.com> + + (the t/TEST part) + + [ 22875] + Subject: [PATCH] Fix generation of perlapi.pod + From: Steve Hay <steve.hay@uk.radan.com> + Date: Fri, 28 May 2004 11:46:41 +0100 + Message-ID: <40B71891.6090806@uk.radan.com> + + [ 22878] + Subject: [perl #29937] Entries missing from .packlist + From: jdhedden@1979.usna.com (via RT) <perlbug-followup@perl.org> + Date: 28 May 2004 19:23:48 -0000 + Message-ID: <rt-3.0.9-29937-88315.2.18472609678159@perl.org> + + [ 22894] + Document embed.fnc 'U' and 's' flags. + + [ 22932] + Subject: [PATCH] t/TEST + From: Abe Timmerman <abe@ztreet.demon.nl> + Date: Sun, 13 Jun 2004 11:41:49 +0200 + Message-Id: <200406131141.50361.abe@ztreet.demon.nl> Branch: maint-5.8/perl - ! installperl + !> autodoc.pl embed.fnc installman installperl pod/perlapi.pod + !> t/TEST ____________________________________________________________________________ -[ 21825] By: nicholas on 2003/11/30 20:19:43 +[ 22871] By: nicholas on 2004/05/30 15:36:14 Log: Update Changes Branch: maint-5.8/perl ! Changes patchlevel.h ____________________________________________________________________________ -[ 21824] By: nicholas on 2003/11/30 19:00:33 +[ 22869] By: nicholas on 2004/05/30 14:26:17 Log: Integrate: - [ 21802] - POSIX::isXXX(undef) segfaulted. (bug #24554.) + [ 22835] + Upgrade to Encode 2.00. - [ 21823] - Subject: Re: [perl #24554] Segfault in POSIX module + [ 22842] + Subject: Re: utf-8 and taint don't work together From: SADAHIRO Tomoyuki <bqw10602@nifty.com> - Date: Sat, 29 Nov 2003 23:32:38 +0900 - Message-Id: <20031129233010.8E2F.BQW10602@nifty.com> - - (plus a test for the stringification of references - passed to POSIX::isXXX()) - Branch: maint-5.8/perl - !> ext/POSIX/POSIX.xs ext/POSIX/t/is.t ext/POSIX/t/posix.t -____________________________________________________________________________ -[ 21822] By: nicholas on 2003/11/30 10:35:31 - Log: Integrate: - [ 21810] - Update Unicode::Collate to 0.31 (Only the .pm version for now) - - [ 21812] - Update Unicode::Normalize to 0.28 - Branch: maint-5.8/perl - +> ext/Unicode/Normalize/t/illegal.t - +> ext/Unicode/Normalize/t/null.t ext/Unicode/Normalize/t/short.t - +> lib/Unicode/Collate/t/illegal.t - +> lib/Unicode/Collate/t/illegalp.t - !> MANIFEST ext/Unicode/Normalize/Changes - !> ext/Unicode/Normalize/Normalize.pm - !> ext/Unicode/Normalize/Normalize.xs - !> ext/Unicode/Normalize/README lib/Unicode/Collate.pm - !> lib/Unicode/Collate/Changes lib/Unicode/Collate/README - !> lib/Unicode/Collate/t/version.t -____________________________________________________________________________ -[ 21821] By: nicholas on 2003/11/30 10:24:55 - Log: Integrate: - [ 21807] - Update Digest to 1.03 - - [ 21808] - Update to Digest::MD5 2.31 - - [ 21809] - D'oh! Forgot to lib/Digest/base.pm - - [ 21811] - D'oh! This has been moved to lib/Digest/t/digest.t but not deleted. - Branch: maint-5.8/perl - +> ext/Digest/MD5/t/bits.t lib/Digest/base.pm lib/Digest/t/base.t - +> lib/Digest/t/digest.t - - lib/Digest.t - !> MANIFEST Porting/Maintainers.pl ext/Digest/MD5/Changes - !> ext/Digest/MD5/MD5.pm ext/Digest/MD5/Makefile.PL - !> ext/Digest/MD5/t/badfile.t ext/Digest/MD5/t/files.t - !> lib/Digest.pm -____________________________________________________________________________ -[ 21820] By: nicholas on 2003/11/30 10:11:14 - Log: Integrate all the t/op/readline.t changes: - [ 19069] - Subject: [PATCH] Re: [perl #21614] 5.8.0 Unbalanced string table refcount - From: Nicholas Clark <nick@unfortu.net> - Date: Tue, 25 Mar 2003 22:59:17 +0000 - Message-ID: <20030325225917.GE284@Bagpuss.unfortu.net> - - [ 19069] - Subject: [PATCH] Re: [perl #21614] 5.8.0 Unbalanced string table refcount - From: Nicholas Clark <nick@unfortu.net> - Date: Tue, 25 Mar 2003 22:59:17 +0000 - Message-ID: <20030325225917.GE284@Bagpuss.unfortu.net> - - [ 19071] - Better version of change #19069 - Subject: [PATCH] Re: [PATCH] Re: [perl #21614] 5.8.0 Unbalanced string table refcount - From: Nicholas Clark <nick@unfortu.net> - Date: Wed, 26 Mar 2003 23:01:46 +0000 - Message-ID: <20030326230145.GC279@Bagpuss.unfortu.net> - - [ 19267] - Subject: [PATCH] readline.t tweak for VMS - From: "Craig A. Berry" <craigberry@mac.com> - Date: Thu, 17 Apr 2003 17:18:19 -0500 - Message-ID: <3E9F282B.6090603@mac.com> + Date: Sat, 22 May 2004 21:38:33 +0900 + Message-Id: <20040522212704.C068.BQW10602@nifty.com> - [ 20431] - More runperl(switches => ...) finds (bleadperl only). + Date: Sun, 23 May 2004 09:56:15 +0900 + Message-Id: <20040523095609.E404.BQW10602@nifty.com> - [ 21787] - Subject: [PATCH] Re: bug or a feature? - From: Torsten Foertsch <torsten.foertsch@gmx.net> - Date: Sat, 22 Nov 2003 13:15:53 +0100 - Message-Id: <200311221315.58539.torsten.foertsch@gmx.net> + [ 22843] + Tests for change #22842, by SADAHIRO Tomoyuki + (adapted to the core) - and - Date: Sat, 22 Nov 2003 14:21:45 +0100 - Message-Id: <200311221421.48940.torsten.foertsch@gmx.net> - (test moved to t/op/readline.t) + [ 22866] + Skip in minitest - [ 21794] - Arguments to skip were the wrong way round, hence why all the *BSDs - were failing + [ 22868] + Upgrade to Encode 2.01. Branch: maint-5.8/perl - ! sv.c t/op/readline.t - !> pp_hot.c + +> t/op/utftaint.t + !> (integrate 150 files) ____________________________________________________________________________ -[ 21819] By: nicholas on 2003/11/30 09:57:11 +[ 22867] By: nicholas on 2004/05/30 13:24:02 Log: Integrate: - [ 21805] - Silence gcc 2.95 warning - (Its trace flow isn't good enough to realise that there is no problem) + [ 22817] + Subject: [perl #29527] Perl 5.8.4 build problems on LynxOS + From: Olli Savia (via RT) <perlbug-followup@perl.org> + Date: 12 May 2004 13:02:41 -0000 + Message-ID: <rt-3.0.9-29527-87290.17.3367022021997@perl.org> + + [ 22841] + Subject: [PATCH] win32_chsize is not exported on Win32 + From: Steve Hay <steve.hay@uk.radan.com> + Date: Mon, 24 May 2004 12:52:48 +0100 + Message-ID: <40B1E210.4050202@uk.radan.com> Branch: maint-5.8/perl - !> pp_hot.c + !> makedef.pl sv.c ____________________________________________________________________________ -[ 21818] By: nicholas on 2003/11/30 09:43:55 +[ 22865] By: nicholas on 2004/05/30 13:01:21 Log: Integrate: - [ 21800] - Fix a regression introduced by change #21694 on sprintf() - with long doubles, by disabling the specific optimisation - path in this case ; remove a unnecessary cast ; add a new - test file for miscellaneous sprintf() test that don't fit - in the t/op/sprintf.t framework. + [ 22822] + David Manura is the new maintainer of Text::Balanced. - [ 21804] - Gconvert actually takes type NV, while nv may be either double - or long double (depending on some conditional code) - Rafael and I think that this cast should work. + [ 22840] + Subject: [PATCH] Re: [perl #29765] PERL-5.8.4 INSTALL + From: Yitzchak Scott-Thoennes <sthoenna@efn.org> + Date: Fri, 21 May 2004 11:35:34 -0700 + Message-ID: <20040521183533.GA5108@efn.org> + (plus whitespace removal) - [ 21806] - When Gconvert is a macro around sprintf with a .* format we need - to cast to int (in case STRLEN isn't the same size as int) - gcc issues a warning even when it is the same size - Branch: maint-5.8/perl - +> t/op/sprintf2.t - !> MANIFEST sv.c -____________________________________________________________________________ -[ 21817] By: nicholas on 2003/11/30 09:25:20 - Log: Copy SvIsCOW(sv) and SvIsCOW_shared_hash(sv) from blead - (Each is part of separate much larger changes, so can't integrate) + [ 22852] + Subject: TEST needs to ignore SCM files + From: Alan Burlison <Alan.Burlison@sun.com> + Date: Thu, 27 May 2004 23:32:28 +0100 + Message-ID: <40B66C7C.8030303@sun.com> Branch: maint-5.8/perl - ! sv.h + !> INSTALL Porting/Maintainers.pl t/TEST ____________________________________________________________________________ -[ 21816] By: nicholas on 2003/11/29 21:15:29 +[ 22864] By: nicholas on 2004/05/30 12:38:30 Log: Integrate: - [ 21799] - Subject: [patch pod/perlsec.pod] (was Re: why PERL5LIB is ignored when -T is in effect) - From: Stas Bekman <stas@stason.org> - Date: Fri, 28 Nov 2003 14:42:25 -0800 - Message-ID: <3FC7CF51.7060804@stason.org> + [ 22769] + Subject: [perl #29073] Reference to incorrect method in documentation of + From: "bob@starlabs.net (via RT)" <perlbug-followup@perl.org> + Message-ID: <rt-3.0.8-29073-85903.18.1381766820328@perl.org> + Date: 22 Apr 2004 10:49:22 -0000 - [ 21813] - Remove whitespace from ends of lines (simply because it irritates me) - Branch: maint-5.8/perl - !> pod/perlsec.pod utils/h2xs.PL -____________________________________________________________________________ -[ 21815] By: nicholas on 2003/11/29 21:15:05 - Log: Integrate: - [ 21797] - Subject: Re: [perl #24245] File::Copy::copy damages hard linked files - From: Slaven Rezic <slaven@rezic.de> - Date: 19 Oct 2003 19:11:31 +0200 - Message-ID: <87smlprw3g.fsf@vran.herceg.de> - (with further tweaks) + [ 22829] + perlrun.pod minor fixes : + - the parameter to -x is optional + - pod nit + + [ 22837] + Subject: Proposed doc patch for getsockopt + From: perl5-porters@ton.iguana.be (Ton Hospel) + Date: Sun, 16 May 2004 13:35:20 +0000 (UTC) + Message-Id: <c87qmo$u9b$1@post.home.lunix> + + [ 22853] + Subject: [PATCH doc] Re: undef loses it magicness when assigned to a variable? + From: Stas Bekman <stas@stason.org> + Date: Thu, 27 May 2004 11:25:08 -0700 + Message-ID: <40B63284.5040203@stason.org> Branch: maint-5.8/perl - !> lib/File/Copy.pm lib/File/Copy.t + !> lib/Text/ParseWords.pm pod/perlapi.pod pod/perlfunc.pod + !> pod/perlguts.pod pod/perlrun.pod sv.h ____________________________________________________________________________ -[ 21803] By: nicholas on 2003/11/29 13:09:40 +[ 22863] By: nicholas on 2004/05/30 11:38:17 Log: Integrate: - It's back! - [ 21449] - Subject: [PATCH] SIGN => 1 support for MakeMaker - From: Autrijus Tang <autrijus@autrijus.org> - Date: Tue, 14 Oct 2003 18:32:28 +0800 - Message-Id: <1066127547.65845.35.camel@localhost> + [ 22756] + Subject: [PATCH] Document limitations in PUSHi et al macros and add new mPUSHi et al macros + From: Steve Hay <steve.hay@uk.radan.com> + Date: Fri, 30 Apr 2004 10:07:21 +0100 + Message-ID: <40921749.3050600@uk.radan.com> - [ 21652] - Upgrade to ExtUtils::MakeMaker 6.19 + [ 22757] + Follow-up to previous patch: the mX?PUSH[inup] macros + should handle 'set' magic, just like the X?PUSH[inup] + counterparts. - [ 21675] - Upgrade to MakeMaker 6.20. + [ 22779] + Fix mX?PUSH[inup] macros. (Follow-up to #22756 and #22757) - [ 21702] - Upgrade to MakeMaker 6.21. + Subject: Re: [PATCH] Document limitations in PUSHi et al macros and add new mPUSHi et al macros + From: Marcus Holland-Moritz <mhx-perl@gmx.net> + Date: Mon, 3 May 2004 20:03:28 +0200 + Message-Id: <20040503200328.24efcda5@r2d2> + + [ 22783] + Add tests for mX?PUSH[inup] macros. + + Subject: Re: [PATCH] Document limitations in PUSHi et al macros and add new mPUSHi et al macros + From: Steve Hay <steve.hay@uk.radan.com> + Date: Wed, 05 May 2004 15:34:45 +0100 + Message-ID: <4098FB85.1060602@uk.radan.com> Branch: maint-5.8/perl - +> lib/ExtUtils/t/parse_version.t - +> t/lib/MakeMaker/Test/Setup/BFD.pm - +> t/lib/MakeMaker/Test/Setup/Problem.pm - - lib/ExtUtils/t/00setup_dummy.t - - lib/ExtUtils/t/zz_cleanup_dummy.t - ! lib/ExtUtils/MM_Any.pm lib/ExtUtils/MM_Unix.pm - !> (integrate 37 files) + +> ext/XS/APItest/t/push.t + !> MANIFEST ext/XS/APItest/APItest.pm ext/XS/APItest/APItest.xs + !> ext/XS/APItest/MANIFEST pod/perlapi.pod pod/perlguts.pod pp.h ____________________________________________________________________________ -[ 21801] By: nicholas on 2003/11/29 11:05:18 +[ 22862] By: nicholas on 2004/05/30 10:09:57 Log: Integrate: - [ 21655] - Temporary kludge to allow SDBM_File being built - with MakeMaker 6.19. + [ 22662] + C<undef> doesn't look like a number. See also: - [ 21657] - Subject: Re: [ANNOUNCE] ExtUtils::MakeMaker 6.19 - From: Michael G Schwern <schwern@pobox.com> - Date: Tue, 4 Nov 2003 17:59:13 -0800 - Message-ID: <20031105015913.GL15406@localhost.comcast.net> + Subject: Re: [perl #27606] undef "looks like" a number + From: Marcus Holland-Moritz <mhx-perl@gmx.net> + Date: Mon, 15 Mar 2004 22:16:26 +0100 + Message-Id: <20040315221626.48061c67@r2d2> - Replaces the temporary kludge (#21655). + [ 22798] + [perl #29395] Scalar::Util::refaddr falsely returns false + Add mg_get() to refaddr() when SV is magical. + Fix the non-xs version of looks_like_number(). - [ 21710] - Subject: [PATCH] Last stab at sdbm/Makefile.PL - From: Michael G Schwern <schwern@pobox.com> - Date: Tue, 11 Nov 2003 21:02:30 -0800 - Message-ID: <20031112050230.GO6874@localhost.comcast.net> + [ 22838] + Update to Scalar-List-Utils-1.14 Branch: maint-5.8/perl - !> ext/SDBM_File/sdbm/Makefile.PL + +> ext/List/Util/Changes + - ext/List/Util/ChangeLog + ! ext/List/Util/t/lln.t pod/perl585delta.pod + !> MANIFEST ext/List/Util/README ext/List/Util/Util.xs + !> ext/List/Util/lib/List/Util.pm + !> ext/List/Util/lib/Scalar/Util.pm ext/List/Util/t/refaddr.t + !> pp_ctl.c sv.c ____________________________________________________________________________ -[ 21796] By: nicholas on 2003/11/28 20:05:30 +[ 22861] By: nicholas on 2004/05/30 09:43:49 Log: Integrate: - [ 21788] - Add Torsten Foertsch to AUTHORS (patches plus tests are what we like) + [ 22816] + Make XSLoader update @DynaLoader::dl_shared_objects. - [ 21789] - Marcus Holland-Moritz is now the maintainer of Devel::PPPort. - PerlIO and threads are not on CPAN. + [ 22823] + Subject: [PATCH] Re: [perl #29581] glob() misses a lot of matches + From: LAUN Wolfgang <wolfgang.laun@alcatel.at> + Date: Mon, 17 May 2004 07:38:19 +0200 + Message-ID: <DF27CDCBD2581D4B88431901094E4B4D02B0C71E@attmsx1.aut.alcatel.at> - [ 21795] - Subject: [PATCH] Fix perl 5.8 and 5.9 to build on latest VOS - From: "Green, Paul" <Paul.Green@stratus.com> - Date: Thu, 27 Nov 2003 21:51:26 -0500 - Message-ID: <A2A34F15EE916148BC4C4748223E67A4069FB815@exna4.stratus.com> - Branch: maint-5.8/perl - !> AUTHORS Porting/Maintainers.pl hints/vos.sh -____________________________________________________________________________ -[ 21786] By: nicholas on 2003/11/25 19:48:30 - Log: re-run pod/buildtoc - Branch: maint-5.8/perl - ! pod.lst pod/perl.pod pod/perltoc.pod vms/descrip_mms.template - ! win32/pod.mak -____________________________________________________________________________ -[ 21785] By: nicholas on 2003/11/25 19:42:14 - Log: Re-order entries + [ 22828] + Subject: [perl #29623] Patch for h2xs.t in Perl 5.8.4 + From: mats@sm5sxl.net (via RT) <perlbug-followup@perl.org> + Date: 16 May 2004 13:33:32 -0000 + Message-ID: <rt-3.0.9-29623-87522.10.1965589695082@perl.org> + + [ 22836] + Subject: [PATCH] h2xs doesn't recognize indented enums + From: Tassilo von Parseval <tassilo.parseval@post.rwth-aachen.de> + Date: Fri, 21 May 2004 10:51:58 +0200 + Message-id: <20040521085158.GA10660@ethan> + (modified regexp) + + [ 22848] + Subject: [PATCH] correctly handle C<< >> and C<<< >>> in diagnostics + From: Yitzchak Scott-Thoennes <sthoenna@efn.org> + Date: Tue, 25 May 2004 02:29:37 -0700 + Message-ID: <20040525092937.GA2332@efn.org> + + [ 22850] + Subject: [PATCH] 'perl -v' fails if local_patches contains code snippets + From: Alan Burlison <Alan.Burlison@sun.com> + Date: Wed, 26 May 2004 16:24:03 +0100 + Message-ID: <40B4B693.9090905@sun.com> + (using \0 as a separator for q//) Branch: maint-5.8/perl - ! MANIFEST + !> ext/DynaLoader/DynaLoader_pm.PL ext/DynaLoader/XSLoader_pm.PL + !> ext/File/Glob/Glob.xs lib/diagnostics.pm lib/h2xs.t perl.c + !> utils/h2xs.PL ____________________________________________________________________________ -[ 21784] By: nicholas on 2003/11/25 19:25:25 +[ 22860] By: nicholas on 2004/05/29 22:13:46 Log: Integrate: - [ 21780] - Subject: Re: [perl #24439] 64 bit build failure on Solaris 9 - From: Andy Dougherty <doughera@lafayette.edu> - Date: Thu, 20 Nov 2003 09:38:05 -0500 (EST) - Message-ID: <Pine.SOL.4.53.0311200926550.25274@maxwell.phys.lafayette.edu> + [ 22830] + [perl #29637] Thread creation time is hypersensitive - and : - Date: Fri, 21 Nov 2003 09:36:24 -0500 (EST) - Message-ID: <Pine.SOL.4.53.0311210927460.1876@maxwell.phys.lafayette.edu> + Due to a logic error, the dup ptr table sometimes wans't being + grown, leading to extremely slow cloning. - [ 21783] - Subject: remove hardcoded version number from cygwin/perlld.in - From: Yitzchak Scott-Thoennes <sthoenna@efn.org> - Date: Mon, 24 Nov 2003 08:11:36 -0800 - Message-ID: <20031124161136.GC2656@efn.org> + [ 22831] + improve hashing algorithm for ptr tables in perl_clone: + the bottom few bits of a pointer are usually zero Branch: maint-5.8/perl - !> cygwin/Makefile.SHs cygwin/perlld.in hints/solaris_2.sh + !> sv.c ____________________________________________________________________________ -[ 21778] By: nicholas on 2003/11/22 23:21:32 +[ 22859] By: nicholas on 2004/05/29 21:52:37 Log: Integrate: - [ 21706] - Subject: Re: [perl #24460] [DOC PATCH] the begincheck program - From: Tom Phoenix <rootbeer@redcat.com> - Date: Tue, 11 Nov 2003 15:50:35 -0800 (PST) - Message-Id: <Pine.BSO.4.53.0311111547500.9242@blue.stonehenge.com> + [ 22771] + ensure that utf8 Perl code magically called from a regex localizes $. - [ 21751] - Update the runops stuff in perlguts + [ 22772] + remove spurious intentation in utf8_pva.pl + Branch: maint-5.8/perl + !> lib/utf8_pva.pl +____________________________________________________________________________ +[ 22858] By: nicholas on 2004/05/29 21:04:22 + Log: Integrate 22744, 22760, 22761, 22762, 22763, 22765 redux - [ 21754] - Subject: [docpatch] PerlIO layers in perlrun.pod and PerlIO.pm - From: Iain Truskett <spoon@cpan.org> - Date: Thu, 20 Nov 2003 00:41:33 +1100 - Message-ID: <20031119134132.GG21314@gytha.anu.edu.au> + http://www.google.com/search?btnI=again&q=perforce+fails+bah Branch: maint-5.8/perl - !> lib/PerlIO.pm pod/perlguts.pod pod/perlmod.pod pod/perlrun.pod + - lib/unicore/lib/gc_sc/Sterm.pl + !> lib/unicore/lib/gc_sc/Dash.pl lib/unicore/lib/gc_sc/Hyphen.pl + !> lib/unicore/lib/gc_sc/Radical.pl ____________________________________________________________________________ -[ 21777] By: nicholas on 2003/11/22 23:17:43 +[ 22857] By: nicholas on 2004/05/29 20:48:27 Log: Integrate: - [ 21697] - Subject: [PATCH 5.8.2 @21574] make install: line noise - From: Ilya Zakharevich <nospam-abuse@ilyaz.org> - Date: Tue, 4 Nov 2003 20:10:16 -0800 - Message-ID: <20031105041016.GA2639@math.berkeley.edu> - - and part of - Subject: [PATCH 5.8.2 @21574] make install: PREFIX and DESTDIR - From: Ilya Zakharevich <nospam-abuse@ilyaz.org> - Date: Tue, 4 Nov 2003 20:18:37 -0800 - Message-ID: <20031105041836.GA2649@math.berkeley.edu> + [ 22744] + Subject: [PATCH utf8_heavy.pl, mktables, et. al.] candidate for TR18 compliance + From: Jeff 'japhy' Pinyan <japhy@perlmonk.org> + Date: Thu, 22 Apr 2004 14:31:30 -0400 (EDT) + Message-ID: <Pine.LNX.4.44.0404221429040.10466-101000@perlmonk.org> - (I've left out the PREFIX part for now) + Date: Mon, 26 Apr 2004 12:37:21 -0400 (EDT) + Message-ID: <Pine.LNX.4.44.0404261222320.7154-400000@perlmonk.org> - [ 21708] - Subject: [PATCH 5.8.2 @21574] make install not installing fully - From: Ilya Zakharevich <nospam-abuse@ilyaz.org> - Date: Tue, 4 Nov 2003 20:07:25 -0800 - Message-ID: <20031105040725.GA2629@math.berkeley.edu> + [ 22760] + Remove the no-longer autogenerated Unicode files - [ 21723] - Include "SCCS" in the list of directory names that should - be ignored by installperl. + [ 22761] + Avoid mktables generating Sterm.pl and Sterm.pl in the same directory + by making the %BaseName check global - [ 21739] - Subject: Re: [perl #24493] install.html not working - From: Slaven Rezic <slaven@rezic.de> - Date: 16 Nov 2003 20:52:29 +0100 - Message-ID: <87d6bsw0oy.fsf@vran.herceg.de> + [ 22762] + Some fool removed lib/unicore/ArabicShaping.txt in change 22760 - [ 21740] - Install instmodsh and xsubpp in bin/ along the other utilities. + [ 22763] + And that same fool forgot to add the not-really-needed "fuzzy" versions + of some binary property files - [ 21741] - Complement of change #21740 for Windows. - (I have the feeling that it's already subtly broken on VMS) + [ 22765] + Make t/uni/class.t pass on case insensitive file systems Branch: maint-5.8/perl - +> utils/instmodsh.PL utils/xsubpp.PL - !> MANIFEST Makefile.SH installhtml installperl os2/Makefile.SHs - !> utils.lst utils/Makefile win32/Makefile win32/makefile.mk + +> (branch 410 files) + - (delete 322 files) + !> MANIFEST lib/unicore/Canonical.pl + !> lib/unicore/CombiningClass.pl lib/unicore/Decomposition.pl + !> lib/unicore/Exact.pl lib/unicore/Name.pl + !> lib/unicore/Properties lib/unicore/To/Digit.pl + !> lib/unicore/To/Fold.pl lib/unicore/To/Lower.pl + !> lib/unicore/To/Title.pl lib/unicore/To/Upper.pl + !> lib/unicore/mktables lib/utf8_heavy.pl pod/perlunicode.pod + !> t/op/pat.t t/uni/class.t ____________________________________________________________________________ -[ 21776] By: nicholas on 2003/11/22 22:48:49 +[ 22856] By: nicholas on 2004/05/29 20:04:40 Log: Integrate: - [ 21663] - Subject: Re: Smoke [5.9.0] 21474 FAIL(F) darwin 6.8 (darwin/1 cpu) - From: Slaven Rezic <slaven@rezic.de> - Date: 20 Oct 2003 22:39:28 +0200 - Message-Id: <87oewbiqyn.fsf@vran.herceg.de> + [ 22693] + Subject: [PATCH] lib/utf8_heavy.pl -- cascading classes and '&' support + From: Jeff 'japhy' Pinyan <japhy@perlmonk.org> + Date: Mon, 12 Apr 2004 20:24:48 -0400 (EDT) + Message-ID: <Pine.LNX.4.44.0404122011160.3038-200000@perlmonk.org> + + [ 22713] + Subject: Re: [PATCH] lib/utf8_heavy.pl -- cascading classes and '&' support + From: "Jeff 'japhy' Pinyan" <japhy@perlmonk.org> + Date: Wed, 14 Apr 2004 17:01:38 -0400 (EDT) + Message-ID: <Pine.LNX.4.44.0404141659480.11423-301000@perlmonk.org> + + [ 22714] + New file left out of the last commit. Branch: maint-5.8/perl - !> lib/filetest.t + +> t/uni/class.t + !> MANIFEST lib/utf8_heavy.pl pod/perlunicode.pod ____________________________________________________________________________ -[ 21775] By: nicholas on 2003/11/22 22:35:25 +[ 22855] By: nicholas on 2004/05/29 19:39:53 Log: Integrate: - [ 21732] - Subject: [PATCH] configpm, our $summary : unique - From: Elizabeth Mattijsen <liz@dijkmat.nl> - Date: Sat, 15 Nov 2003 22:18:32 +0100 - Message-Id: <p05111b03bbdc478d10cb@[192.168.56.3]> - (plus comments) + [ 22806] + Subject: Re: a little extra cmdline help. [PATCH] + From: Jim Cromie <jcromie@divsol.com> + Date: Mon, 10 May 2004 15:25:07 -0600 + Message-Id: <409FF333.4020104@divsol.com> - [ 21733] - Subject: [PATCH] Re:ext/threads/t/problem.t (was: Problems with mod_perl 1.12 (?) and ActivePerl 5.8.1) - From: Elizabeth Mattijsen <liz@dijkmat.nl> - Date: Sat, 15 Nov 2003 23:22:16 +0100 - Message-Id: <p05111b04bbdc49076950@[192.168.56.3]> + [ 22810] + Subject: various -V: searches [PATCH] + From: Jim Cromie <jcromie@divsol.com> + Date: Tue, 11 May 2004 00:15:46 -0600 + Message-ID: <40A06F92.1070607@divsol.com> - [ 21752] - Fix bug [perl #24508] Wrong assignment in nested assignment - together with subroutine call - Apparently concat still doesn't deal correctly with lexicals - in all cases. Disable the whole TARGET_MY optimisation for it. - (and remove the corresponding code from the peephole optimiser.) + [ 22826] + Error message too wide. Branch: maint-5.8/perl - ! opcode.h - !> configpm ext/threads/t/problems.t op.c opcode.pl t/op/concat.t + ! lib/Config.t + !> configpm perl.c pod/perlrun.pod ____________________________________________________________________________ -[ 21763] By: nicholas on 2003/11/21 21:38:15 - Log: Test all permuations of utf8 flags on hashes and keys +[ 22854] By: nicholas on 2004/05/29 18:22:58 + Log: Revert 22849 and 22851, except for the t/test.pl improvement. + [blead patches 22664 and 22669] + + http://www.perforce.com/perforce/technotes/note014.html + "How do you back out a change?" + + Let me summarise their answer: + With difficulty. + (We find it easier to write a manual about how to kludge it than + to improve our software to make it simple) Branch: maint-5.8/perl - ! ext/XS/APItest/t/hash.t + - ext/B/t/OptreeCheck.pm ext/B/t/optree_check.t + - ext/B/t/optree_concise.t ext/B/t/optree_samples.t + - ext/B/t/optree_sort.t ext/B/t/optree_varinit.t + ! MANIFEST ext/B/t/concise.t ____________________________________________________________________________ -[ 21762] By: nicholas on 2003/11/21 20:41:03 - Log: Refactor hash API tests (prior to some additions) +[ 22851] By: nicholas on 2004/05/27 10:22:23 + Log: Integrate: + [ 22669] + Fix command-line quoting under Windows for the new optree tests + Subject: Re: Smoke [5.9.2] 22666 FAIL(F) MSWin32 WinXP/.Net SP1 (x86/1 cpu) + From: Steve Hay <steve.hay@uk.radan.com> + Date: Wed, 07 Apr 2004 09:46:01 +0100 + Message-ID: <4073BFC9.10707@uk.radan.com> Branch: maint-5.8/perl - ! ext/XS/APItest/t/hash.t + !> ext/B/t/optree_samples.t ____________________________________________________________________________ -[ 21761] By: nicholas on 2003/11/21 20:20:04 +[ 22849] By: nicholas on 2004/05/26 10:12:38 Log: Integrate: - [ 21742] - Whoops. We weren't actually testing hv_store_ent - We are now. Plus test hv_store for an initially empty hash. - Branch: maint-5.8/perl - !> ext/XS/APItest/APItest.xs ext/XS/APItest/t/hash.t -____________________________________________________________________________ -[ 21759] By: nicholas on 2003/11/20 22:17:24 - Log: perforce-- # Can't integrate a brange and an edit in one shot - - mop up the file it failed on. + [ 22664] + Subject: Re: tests for change #22539 + From: Jim Cromie <jcromie@divsol.com> + Date: Tue, 30 Mar 2004 14:39:31 -0700 + Message-ID: <4069E913.5040906@divsol.com> + (with some spelling tweaks) - Integrate: - [ 21735] - utf8 keys now work for tied hashes via hv_fetch, hv_store, hv_delete - (pp functions use the _ent variants, and as the implementation is - duplicated, these bugs aren't tested, and aren't noticed) + [I'd do this and the next 2 as one, but perforce is hateful: + http://nick.hates-software.com/2003/12/30/9729c0ac.html + ] Branch: maint-5.8/perl - !> ext/XS/APItest/t/hash.t + +> ext/B/t/OptreeCheck.pm ext/B/t/optree_check.t + +> ext/B/t/optree_concise.t ext/B/t/optree_samples.t + +> ext/B/t/optree_sort.t ext/B/t/optree_varinit.t + ! ext/B/t/concise.t + !> MANIFEST ext/B/B/Concise.pm t/test.pl ____________________________________________________________________________ -[ 21757] By: nicholas on 2003/11/20 19:23:15 +[ 22847] By: nicholas on 2004/05/25 21:27:12 Log: Integrate: - [ 21756] - Subject: [PATCH] promote hv_clear_placeholders to perl API - From: Alan Burlison <Alan.Burlison@sun.com> - Date: Thu, 20 Nov 2003 10:34:30 +0000 - Message-ID: <3FBC98B6.6090909@sun.com> + [ 22839] + [perl #29790] Optimization busted: '@a = "b", sort @a' drops "b" + Fix the sort-in-place optimization of change #22349. Branch: maint-5.8/perl - !> embed.fnc embed.h global.sym hv.c pod/perlapi.pod proto.h - !> universal.c + !> op.c t/op/sort.t ____________________________________________________________________________ -[ 21749] By: nicholas on 2003/11/19 20:08:42 +[ 22846] By: nicholas on 2004/05/25 20:56:06 Log: Integrate: - [ 21748] - Subject: [PATCH] clear of empty locked hash SEGVs - From: Alan Burlison <Alan.Burlison@sun.com> - Date: Wed, 19 Nov 2003 14:39:03 +0000 - Message-ID: <3FBB8087.20206@sun.com> + [ 22808] + Subject: [PATCH] debugger (step backwards) + From: Richard.Foley@t-online.de (Richard Foley) + Date: Tue, 11 May 2004 11:04:11 +0200 + Message-Id: <200405111104.11484.richard.foley@rfi.net> + + [ 22809] + More pod names in the debugger for the runman command Branch: maint-5.8/perl - !> hv.c lib/Hash/Util.t + !> lib/perl5db.pl ____________________________________________________________________________ -[ 21745] By: nicholas on 2003/11/19 18:42:14 +[ 22845] By: nicholas on 2004/05/25 20:54:05 Log: Integrate: - [ 21743] - Restore errno after having read $^E (like for $!) - to preserve errno from unfortunate side-effects. + [ 22788] + add -pipe to gcc's default flags + it has shown a compile time speed increase of about 40% on + Linux and HP-UX, and also works on cygwin-1.5.9. On failing + OS/gcc combo's remove it in the hints + + [ 22815] + Subject: [PATCH] Configure shouldn't unconditionally add in -pipe + From: Andy Dougherty <doughera@lafayette.edu> + Date: Tue, 11 May 2004 13:14:42 -0400 (EDT) + Message-ID: <Pine.SOL.4.58.0405111313210.14279@maxwell.phys.lafayette.edu> Branch: maint-5.8/perl - !> mg.c + !> Configure hints/darwin.sh hints/rhapsody.sh ____________________________________________________________________________ -[ 21738] By: nicholas on 2003/11/16 21:49:45 +[ 22844] By: nicholas on 2004/05/24 16:42:34 + Log: Update changes + Branch: maint-5.8/perl + ! Changes patchlevel.h +____________________________________________________________________________ +[ 22834] By: nicholas on 2004/05/20 13:13:45 Log: Integrate: - [ 21737] - Ooops. left an XXX comment in, and worse still it's a // comment + [ 22827] + Subject: [PATCH] Re: Smoke [5.9.2] 22818 FAIL(F) MSWin32 WinXP/.Net SP1 (x86/1 cpu) + From: Steve Hay <steve.hay@uk.radan.com> + Date: Fri, 14 May 2004 17:33:17 +0100 + Message-ID: <40A4F4CD.2000003@uk.radan.com> Branch: maint-5.8/perl - !> hv.c + !> t/comp/utf.t ____________________________________________________________________________ -[ 21736] By: nicholas on 2003/11/16 21:27:24 +[ 22832] By: nicholas on 2004/05/20 08:18:58 Log: Integrate: - [ 21734] - Accessing unicode keys in tie hashes via hv_exists was broken. - (pp_exists uses hv_exists_ent, which isn't broken) - I expect an equivalent bug in hv_delete + [ 22818] + Subject: BOM-marked and (BOMless) UTF-16 scripts not working + From: Jarkko Hietaniemi <jhi@iki.fi> + Message-ID: <40A26D75.8080406@iki.fi> + Date: Wed, 12 May 2004 21:31:17 +0300 + Branch: maint-5.8/perl + +> t/comp/utf.t + !> MANIFEST pod/perldiag.pod pod/perlunicode.pod toke.c +____________________________________________________________________________ +[ 22813] By: nicholas on 2004/05/12 10:16:45 + Log: (only the fix, not the tests, as they incorporate the variable names) - [ 21735] - utf8 keys now work for tied hashes via hv_fetch, hv_store, hv_delete - (pp functions use the _ent variants, and as the implementation is - duplicated, these bugs aren't tested, and aren't noticed) + Integrate: + [ 22796] + [perl #29346] Double warning for int(undef) and abs(undef) + Remove the duplicate warnings and update tests. Branch: maint-5.8/perl - +> ext/XS/APItest/t/hash.t - !> MANIFEST ext/XS/APItest/APItest.pm ext/XS/APItest/APItest.xs - !> ext/XS/APItest/MANIFEST hv.c + !> pp.c ____________________________________________________________________________ -[ 21731] By: nicholas on 2003/11/15 22:25:53 +[ 22805] By: nicholas on 2004/05/10 21:22:15 Log: Integrate: - [ 21712] - Enable hints to create call-back units that can act when - a specific variable is *not* set (like -Uuselargefiles) + [ 22797] + Document that select() on Windows doesn't work on non-socket filehandles. + + [ 22799] + Subject: [perl #29397] Change in pod2man arguments + From: Thorsten Glaser (via RT) <perlbug-followup@perl.org> + Date: 6 May 2004 22:08:10 -0000 + Message-Id: <rt-3.0.9-29397-86929.5.37563386041974@perl.org> - [ 21713] - Simplified the reading + [ 22800] + Windows issues with select() are already documented in perlport. + + [ 22803] + Subject: [PATCH] File::Copy Pod + From: slaven@rezic.de + Date: Mon, 10 May 2004 09:57:37 +0000 + Message-Id: <1084183057.10822@devpc01.iconmobile.de> + + [ 22804] + Remove stray '. Branch: maint-5.8/perl - !> Configure hints/README.hints hints/solaris_2.sh + !> lib/File/Copy.pm pod/perlfunc.pod pod/pod2man.PL ____________________________________________________________________________ -[ 21730] By: nicholas on 2003/11/15 14:42:58 +[ 22795] By: nicholas on 2004/05/06 16:06:17 Log: Integrate: - [ 21728] - Update perlhist with 5.6.2. + [ 22696] + #24121: Configure under turkish locale fails + toupper (i) != I in turkish, but U+0130 + \N{LATIN CAPITAL LETTER I WITH DOT ABOVE} + Patch supplied by Rafael + + [ 22743] + usemallocwrap works on AIX, but not with vac-5 + Date: Mon, 26 Apr 2004 15:35:23 +0200 + From: "H.Merijn Brand" <h.m.brand@hccnet.nl> + Subject: Re: Perl 5.8.4 "panic: memory wrap" in miniperl on AIX 5.1 + Message-Id: <20040426152951.A6C4.H.M.BRAND@hccnet.nl> + + [ 22750] + When configuring for 64-bit support, check that the + C library functions for casting floating point values + to 64-bit integer values are not broken. + + [ 22752] + The openbsd 64-bit test should use $uquadtype rather + than hardcoding unsigned long long. + + [ 22753] + CXUX_BROKEN_CONSTANT_CONVERT isn't used anymore. + Remove all associated code. + + [ 22759] + mktables requires post 5.005 + + [ 22773] + Subject: Re: "fuzzy" in mktables + From: Jarkko Hietaniemi <jhi@iki.fi> + Message-ID: <4093A82B.6040609@iki.fi> + Date: Sat, 01 May 2004 16:37:47 +0300 Branch: maint-5.8/perl - !> pod/perlhist.pod + !> Configure hints/aix.sh hints/aix_4.sh hints/cxux.sh + !> hints/openbsd.sh lib/unicore/mktables pp_pack.c ____________________________________________________________________________ -[ 21721] By: nicholas on 2003/11/13 21:25:56 +[ 22794] By: nicholas on 2004/05/06 15:43:41 Log: Integrate: - [ 21673] - Subject: [PATCH] Be sure to use -fPIC not -fpic on Linux/SPARC - From: Andy Dougherty <doughera@lafayette.edu> - Date: Wed, 5 Nov 2003 17:19:03 -0500 (EST) - Message-ID: <Pine.SOL.4.53.0311051715140.24878@maxwell.phys.lafayette.edu> + [ 22681] + find2perl should not default to -print when -eval is specified. + Noticed by David Dyck. + + [ 22733] + Missing copyright in the README. + + [ 22735] + Subject: [PATCH] Where to find nmake for windows + From: Abe Timmerman <abe@ztreet.demon.nl> + Date: Thu, 22 Apr 2004 23:57:40 +0200 + Message-Id: <200404222357.40508.abe@ztreet.demon.nl> + Changed download URL references for nmake + + [ 22747] + Subject: [perl #29033] typo in description of sleep in documentation of POSIX module + Date: 21 Apr 2004 11:07:22 -0000 + From: "bob@starlabs.net (via RT)" <perlbug-followup@perl.org> + Message-ID: <rt-3.0.8-29033-85811.17.0452776199501@perl.org> + + [ 22748] + Subject: [PATCH] Add diagnostics section to base.pm + From: "Jos I. Boumans" <kane@dwim.org> + Date: Wed, 28 Apr 2004 13:04:47 +0200 + Message-Id: <DC9B4A9C-9903-11D8-BA95-000A956B0E06@dwim.org> + + [ 22749] + Fix for [perl #28963]: find2perl was sometimes generating + invalid code. + + [ 22768] + It seems daft to me that we have a synopis example that will fail if + gcc happened to be invoked via the name cc, and completely ignores + the far more reliable 'gccversion' variable + So here's one using 'usethreads' that ought to work everywhere. + + [ 22782] + Subject: Problem with h2xs + From: David Cannings <lists@edeca.net> + Date: Mon, 3 May 2004 13:44:33 +0100 + Message-Id: <200405031344.33723.lists@edeca.net> + (Second patch only) + + [ 22789] + Subject: Problem with system() on Win9x and command.com (perl 5.8.x-5.9.x) + From: bilbo@ua.fm + Date: Wed, 28 Apr 2004 00:19:55 +0300 + Message-ID: <611491036.20040428001955@ua.fm> + + [ 22793] + Add a small script to check whether a perl source tree + (with or without generated files) is friendly with + case-insensitive filesystems. + Adapted from : + Subject: Re: STerm.pl vs Sterm.pl + From: James Mastros <james@mastros.biz> + Date: Thu, 06 May 2004 14:45:53 +0200 + Message-ID: <20040506124556.2402.qmail@onion.perl.org> + Branch: maint-5.8/perl + +> Porting/checkcase.pl + !> MANIFEST README README.win32 configpm ext/POSIX/POSIX.pod + !> lib/base.pm pod/perlmodinstall.pod utils/h2xs.PL win32/win32.c + !> x2p/find2perl.PL +____________________________________________________________________________ +[ 22792] By: nicholas on 2004/05/06 14:15:56 + Log: Integrate: + [ 22715] + Upgrade to FileCache 1.04. + + [ 22717] + Subject: [PATCH] Sync Term::Cap with CPAN version + From: Jonathan Stowe <jns@gellyfish.com> + Date: Tue, 20 Apr 2004 12:37:28 +0100 + Message-Id: <1082461047.2736.96.camel@localhost> + + [ 22751] + Update to Test.pm 1.25 (from SBURKE). + Branch: maint-5.8/perl + +> lib/Test/t/05_about_verbose.t lib/Test/t/multiline.t + !> MANIFEST lib/FileCache.pm lib/Term/Cap.pm lib/Test.pm +____________________________________________________________________________ +[ 22791] By: nicholas on 2004/05/06 13:55:34 + Log: Integrate: + [ 21935] + Upgrade to Time::Local 1.07_94 + + [ 22670] + Disable the edge case tests for timegm and timelocal on + AIX-4.3 since the OS is obsoleted, and fixes are not to + be expected + + [ 22671] + Integrated Time-Local-1.09 from Dave Rolsky + Corrected a wrap error from the CPAN version to match #22670 + Tested on AIX to make sure the skip is still needed + Branch: maint-5.8/perl + !> lib/Time/Local.pm lib/Time/Local.t +____________________________________________________________________________ +[ 22790] By: nicholas on 2004/05/06 13:36:23 + Log: Integrate: + [ 22686] + Sync with libnet 1.18 + + (plus revert the relevant parts of 22643) + Branch: maint-5.8/perl + +> lib/Net/Changes.libnet lib/Net/t/datasend.t + - lib/Net/ChangeLog.libnet + ! lib/Net/NNTP.pm lib/Net/POP3.pm lib/Net/SMTP.pm + !> MANIFEST lib/Net/Cmd.pm lib/Net/FTP.pm lib/Net/README.libnet + !> lib/Net/Time.pm lib/Net/t/hostname.t +____________________________________________________________________________ +[ 22785] By: nicholas on 2004/05/06 08:16:42 + Log: Fix typo Branch: maint-5.8/perl - !> hints/linux.sh + ! MANIFEST ____________________________________________________________________________ -[ 21720] By: nicholas on 2003/11/13 21:07:58 +[ 22784] By: nicholas on 2004/05/05 21:43:32 Log: Integrate: - [ 21677] - Subject: [PATCH 5.8.2 @21574] OS/2 docu - From: Ilya Zakharevich <nospam-abuse@ilyaz.org> - Date: Thu, 6 Nov 2003 23:26:18 -0800 - Message-ID: <20031107072618.GA4370@math.berkeley.edu> + [ 22641] + Fix bug #27940 : \cX escapes weren't working correctly in regular + expression ranges. - [ 21687] - Subject: [PATCH 5.6.2-RC1 pod/perlhist.pod] Updated. - From: Abigail <abigail@abigail.nl> - Date: Sat, 8 Nov 2003 18:51:30 +0100 - Message-Id: <20031108175130.GA22273@abigail.nl> - - [ 21691] - Update the list of pumpkings in perlhist.pod. - Branch: maint-5.8/perl - !> os2/Changes pod/perlhist.pod -____________________________________________________________________________ -[ 21719] By: nicholas on 2003/11/13 20:59:26 - Log: Integrate: - [ 21718] - Subject: Re: Empty subroutine as object method segfaults in 5.8.2 (sometimes) - From: Enache Adrian <enache@rdslink.ro> - Date: Tue, 11 Nov 2003 15:25:29 +0200 - Message-ID: <20031111132529.GB1271@ratsnest.hole> - Branch: maint-5.8/perl - ! op.c -____________________________________________________________________________ -[ 21717] By: nicholas on 2003/11/13 20:29:04 - Log: Integrate: - [ 21674] - Subject: [PATCH blead] Re: [perl #24248] taint propagation regression, - tests fail to spot this - From: Rick Delaney <rick@bort.ca> - Date: Wed, 5 Nov 2003 23:02:41 -0500 - Message-Id: <20031105230241.D13585@biff.bort.ca> - - [ 21676] - bugid #24407: numeric key for shared hash got stringified using - wrong interpreter, and thus got malloced into the wrong thread - memory pool - - [ 21694] - Subject: [PATCH 5.8.2 @21574] sprintf() painfully slow - From: Ilya Zakharevich <nospam-abuse@ilyaz.org> - Date: Mon, 3 Nov 2003 20:27:39 -0800 - Message-ID: <20031104042739.GA1697@math.berkeley.edu> - - Subject: Re: [PATCH 5.8.2 @21574] sprintf() painfully slow - From: Ilya Zakharevich <nospam-abuse@ilyaz.org> - Date: Mon, 3 Nov 2003 20:57:48 -0800 - Message-ID: <20031104045748.GA1826@math.berkeley.edu> - - [ 21714] - Fix bug [perl #24380] : assigning to a hash in list - or scalar context yielded a wrong value if the list - contained duplicated keys for the hash. This is fixed - by counting the number of duplicate keys and trimming - the stack by the corresponding number of items. - Branch: maint-5.8/perl - ! t/op/taint.t - !> ext/threads/shared/shared.xs ext/threads/shared/t/hv_simple.t - !> pp_ctl.c pp_hot.c sv.c t/op/hashassign.t -____________________________________________________________________________ -[ 21715] By: nicholas on 2003/11/13 19:57:33 - Log: Integrate: - [ 21662] - Subject: Re: 'make minitest' fails for op/cproto and op/pat - From: Michael G Schwern <schwern@pobox.com> - Date: Wed, 5 Nov 2003 06:26:36 -0800 - Message-Id: <20031105142635.GA22761@localhost.comcast.net> - - [ 21671] - Subject: Re: [perl #24398] Benchmark.pm cmpthese segfault + [ 22652] + Subject: sv_pvutf8n_force and sv_pvbyten_force + From: SADAHIRO Tomoyuki <bqw10602@nifty.com> + Date: Wed, 24 Mar 2004 00:16:52 +0900 + Message-Id: <20040324001126.098F.BQW10602@nifty.com> + + [ 22667] + The optree builder was looping when constructing the ops + for a map/grep block containing a while(1). + (Bug reported by Pixel.) + + [ 22687] + Make global cleanup fractionally faster by giving S_visit() + flags/mask to compare SVs against. + + [ 22712] + Subject: Re: [perl #28532] optional match of an anchor gets ignored + From: hv@crypt.org + Date: Wed, 14 Apr 2004 19:30:46 +0100 + Message-Id: <200404141830.i3EIUko03728@zen.crypt.org> + + [ 22721] + Subject: [patch] log the interpreter id in warnings From: Stas Bekman <stas@stason.org> - Date: Wed, 05 Nov 2003 00:50:25 -0800 - Message-ID: <3FA8B9D1.2020806@stason.org> + Date: Mon, 19 Apr 2004 18:10:01 -0700 + Message-ID: <40847869.1000906@stason.org> - [ 21672] - Subject: [patch t/op/hash.t] extending the hash attack test - From: Stas Bekman <stas@stason.org> - Date: Tue, 04 Nov 2003 14:33:09 -0800 - Message-ID: <3FA82925.7020703@stason.org> + [ 22746] + fix a coredump caused by rv2gv not fully converting a PV to an RV + + [ 22755] + Fix 29149 - another UTF8 cache bug hit by substr. + Regression test from: + + Subject: Re: [perl #29149] substr/UTF8 related problem with perl 5.8.3 on linux + From: SADAHIRO Tomoyuki <bqw10602@nifty.com> + Message-Id: <20040429103926.5BA6.BQW10602@nifty.com> + Date: Thu, 29 Apr 2004 10:53:17 +0900 + + [ 22764] + Save some repeated strlen()s in Perl_swash_init + + [ 22774] + [perl #28938] split could leave an array without &PL_sv_undef + in the unused elements + + [ 22775] + [perl #29127] scalar delete of empty slice returned garbage + + [ 22776] + [perl #28986] perl -e "open m" crashes Perl + + [ 22777] + add test for change #22776 ("open m" crashes Perl) + + [ 22778] + add test for change #22746 ([perl #29102] Crash on assign to lex fh) + + [ 22781] + [perl #29340] Bizarre copy of ARRAY + make sure a pad op's flags are updated after optimising away + the assignment in my @a = () (see change 22520). Branch: maint-5.8/perl - !> lib/Benchmark.pm t/op/cproto.t t/op/hash.t + ! t/op/substr.t + !> embed.fnc embed.h gv.c handy.h hv.c op.c perl.c pp.c proto.h + !> regcomp.c regexec.c sv.c t/io/open.t t/op/delete.t t/op/grep.t + !> t/op/my.t t/op/pat.t t/op/split.t toke.c utf8.c ____________________________________________________________________________ -[ 21704] By: nicholas on 2003/11/11 20:48:54 - Log: Integrate: - [ 21693] - Subject: [PATCH-5.8.2 for WinCE] must copy changes from win32/makeifle.mk to wince/makefile.ce - From: Vadim Konovalov <konovalo@mail.wplus.net> - Date: Sun, 9 Nov 2003 13:31:59 +0300 - Message-ID: <93187393948.20031109133159@mail.wplus.net> +[ 22766] By: nicholas on 2004/05/02 20:26:29 + Log: Ready for more Changes Branch: maint-5.8/perl - !> wince/Makefile.ce + +> Changes5.8.4 + ! Changes MANIFEST ____________________________________________________________________________ -[ 21703] By: nicholas on 2003/11/11 20:21:13 - Log: Update changes +[ 22740] By: nicholas on 2004/04/23 14:14:11 + Log: Subject: [PATCH] unfork the debugger (patch for 5.8.4) + From: Richard.Foley@t-online.de (Richard Foley) + Message-Id: <200404230633.29186.richard.foley@rfi.net> + Date: Fri, 23 Apr 2004 06:33:29 +0200 + Branch: maint-5.8/perl + ! lib/perl5db.pl +____________________________________________________________________________ +[ 22738] By: nicholas on 2004/04/23 13:13:24 + Log: Create perl585delta.pod Branch: maint-5.8/perl - ! Changes Changes5.8.2 + + pod/perl585delta.pod + ! MANIFEST pod.lst pod/perl.pod pod/perltoc.pod + ! vms/descrip_mms.template win32/Makefile win32/makefile.mk + ! win32/pod.mak ____________________________________________________________________________ -[ 21701] By: nicholas on 2003/11/11 20:08:50 - Log: Remove carriage returns (which had slipped in) +[ 22732] By: nicholas on 2004/04/22 09:21:28 + Log: That was 5.8.4 Branch: maint-5.8/perl - ! win32/Makefile win32/makefile.mk wince/compile-all.bat - ! wince/registry.bat + ! patchlevel.h ____________________________________________________________________________ -[ 21700] By: nicholas on 2003/11/11 19:28:07 - Log: perldelta changeover +[ 22731] By: nicholas on 2004/04/21 19:37:51 + Log: Oink, oink, flap, flap! Branch: maint-5.8/perl - ! pod/perldelta.pod + ! patchlevel.h pod/perlhist.pod ____________________________________________________________________________ -[ 21699] By: nicholas on 2003/11/11 19:21:20 - Log: Disarm the maint branch +[ 22730] By: nicholas on 2004/04/21 18:55:58 + Log: Update Changes Branch: maint-5.8/perl - +> Changes5.8.2 pod/perl582delta.pod - ! Changes MANIFEST patchlevel.h + ! Changes patchlevel.h diff --git a/gnu/usr.bin/perl/Configure b/gnu/usr.bin/perl/Configure index e703785a1a6..0e7b46366f5 100644 --- a/gnu/usr.bin/perl/Configure +++ b/gnu/usr.bin/perl/Configure @@ -18,9 +18,9 @@ # you may fetch it yourself from your nearest archive site.) # -# $Id: Configure,v 1.12 2003/12/03 03:02:18 millert Exp $ +# $Id: Configure,v 1.13 2004/04/07 21:32:58 millert Exp $ # -# Generated on Fri Dec 5 12:57:38 MET 2003 [metaconfig 3.0 PL70] +# Generated on Wed May 12 13:00:30 METDST 2004 [metaconfig 3.0 PL70] # (with additional metaconfig patches by perlbug@perl.org) cat >c1$$ <<EOF @@ -942,6 +942,7 @@ freetype='' mallocobj='' mallocsrc='' malloctype='' +usemallocwrap='' usemymalloc='' installman1dir='' man1dir='' @@ -1173,8 +1174,6 @@ vendorscriptexp='' versiononly='' defvoidused='' voidflags='' -pm_apiversion='' -xs_apiversion='' yacc='' yaccflags='' CONFIG='' @@ -2876,37 +2875,37 @@ ABYZ) up='[:upper:]' low='[:lower:]' ;; -*) # There is a discontinuity in EBCDIC between 'I' and 'J' - # (0xc9 and 0xd1), therefore that is a nice testing point. - if test "X$up" = X -o "X$low" = X; then - case "`echo IJ | $tr '[I-J]' '[i-j]' 2>/dev/null`" in - ij) up='[A-Z]' - low='[a-z]' +*) # There is a discontinuity in EBCDIC between 'R' and 'S' + # (0xd9 and 0xe2), therefore that is a nice testing point. + if test "X$up" = X -o "X$low" = X; then + case "`echo RS | $tr '[R-S]' '[r-s]' 2>/dev/null`" in + rs) up='[A-Z]' + low='[a-z]' ;; esac - fi + fi if test "X$up" = X -o "X$low" = X; then - case "`echo IJ | $tr I-J i-j 2>/dev/null`" in - ij) up='A-Z' + case "`echo RS | $tr R-S r-s 2>/dev/null`" in + rs) up='A-Z' low='a-z' ;; esac - fi + fi if test "X$up" = X -o "X$low" = X; then - case "`echo IJ | od -x 2>/dev/null`" in - *C9D1*|*c9d1*) + case "`echo RS | od -x 2>/dev/null`" in + *D9E2*|*d9e2*) echo "Hey, this might be EBCDIC." >&4 if test "X$up" = X -o "X$low" = X; then - case "`echo IJ | $tr '[A-IJ-RS-Z]' '[a-ij-rs-z]' 2>/dev/null`" in - ij) up='[A-IJ-RS-Z]' - low='[a-ij-rs-z]' + case "`echo RS | $tr '[A-IJ-RS-Z]' '[a-ij-rs-z]' 2>/dev/null`" in + rs) up='[A-IJ-RS-Z]' + low='[a-ij-rs-z]' ;; esac fi if test "X$up" = X -o "X$low" = X; then - case "`echo IJ | $tr A-IJ-RS-Z a-ij-rs-z 2>/dev/null`" in - ij) up='A-IJ-RS-Z' - low='a-ij-rs-z' + case "`echo RS | $tr A-IJ-RS-Z a-ij-rs-z 2>/dev/null`" in + rs) up='A-IJ-RS-Z' + low='a-ij-rs-z' ;; esac fi @@ -2914,8 +2913,8 @@ ABYZ) esac fi esac -case "`echo IJ | $tr \"$up\" \"$low\" 2>/dev/null`" in -ij) +case "`echo RS | $tr \"$up\" \"$low\" 2>/dev/null`" in +rs) echo "Using $up and $low to convert case." >&4 ;; *) @@ -3103,7 +3102,7 @@ EOM domainos) osname=apollo osvers="$3" ;; - dgux) osname=dgux + dgux) osname=dgux osvers="$3" ;; dynixptx*) osname=dynixptx @@ -3111,23 +3110,25 @@ EOM ;; freebsd) osname=freebsd osvers="$3" ;; - genix) osname=genix ;; - hp*) osname=hpux + genix) osname=genix ;; + gnu) osname=gnu + osvers="$3" ;; + hp*) osname=hpux osvers=`echo "$3" | $sed 's,.*\.\([0-9]*\.[0-9]*\),\1,'` ;; - irix*) osname=irix + irix*) osname=irix case "$3" in 4*) osvers=4 ;; 5*) osvers=5 ;; *) osvers="$3" ;; esac ;; - linux) osname=linux + linux) osname=linux case "$3" in *) osvers="$3" ;; esac ;; - MiNT) osname=mint + MiNT) osname=mint ;; netbsd*) osname=netbsd osvers="$3" @@ -3458,12 +3459,15 @@ esac : who configured the system cf_time=`LC_ALL=C; LANGUAGE=C; export LC_ALL; export LANGUAGE; $date 2>&1` -cf_by=`(logname) 2>/dev/null` case "$cf_by" in "") - cf_by=`(whoami) 2>/dev/null` + cf_by=`(logname) 2>/dev/null` case "$cf_by" in - "") cf_by=unknown ;; + "") + cf_by=`(whoami) 2>/dev/null` + case "$cf_by" in + "") cf_by=unknown ;; + esac ;; esac ;; esac @@ -4704,6 +4708,7 @@ default|recommended) 2*) if test -d /etc/conf/kconfig.d && $contains _POSIX_VERSION $usrinc/sys/unistd.h >/dev/null 2>&1 then + # Interactive Systems (ISC) POSIX mode. dflt="$dflt -posix" fi ;; @@ -4717,7 +4722,7 @@ default|recommended) if $cc -O2 -fno-strict-aliasing -o gcctest gcctest.c; then echo "Yes, it does." 2>&1 case "$ccflags" in - *strict-aliasing*) + *strict-aliasing*) echo "Leaving current flags $ccflags alone." 2>&1 ;; *) dflt="$dflt -fno-strict-aliasing" ;; @@ -4727,6 +4732,26 @@ default|recommended) 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. + case "$gccversion" in + ?*) echo " " + echo "Checking if your compiler accepts -pipe" 2>&1 + echo 'int main(void) { return 0; }' > gcctest.c + if $cc -O2 -pipe -o gcctest gcctest.c; then + echo "Yes, it does." 2>&1 + case "$ccflags" in + *-pipe*) + echo "Leaving current flags $ccflags alone." 2>&1 + ;; + *) dflt="$dflt -pipe" ;; + esac + else + echo "Nope, it doesn't, but that's ok." 2>&1 + fi + ;; + esac ;; esac @@ -4738,8 +4763,8 @@ for thisincl in $inclwanted; do if $test -d $thisincl; then if $test x$thisincl != x$usrinc; then case "$dflt" in - *" -I$thisincl "*);; - *) dflt="$dflt -I$thisincl ";; + *" -I$thisincl "*);; + *) dflt="$dflt -I$thisincl ";; esac fi fi @@ -4870,7 +4895,7 @@ esac for thislibdir in $libpth; do case " $loclibpth " in *" $thislibdir "*) - case "$dflt " in + case "$dflt " in *"-L$thislibdir "*) ;; *) dflt="$dflt -L$thislibdir" ;; esac @@ -5450,10 +5475,10 @@ esac : Look for a hint-file generated 'call-back-unit'. If the : user has specified that a 64-bit perl is to be built, : we may need to set or change some other defaults. - if $test -f use64bitint.cbu; then +if $test -f use64bitint.cbu; then echo "Your platform has some specific hints regarding 64-bit integers, using them..." - . ./use64bitint.cbu - fi + . ./use64bitint.cbu +fi case "$use64bitint" in "$define"|true|[yY]*) case "$longsize" in @@ -5468,10 +5493,10 @@ esac : Look for a hint-file generated 'call-back-unit'. If the : user has specified that a maximally 64-bit perl is to be built, : we may need to set or change some other defaults. - if $test -f use64bitall.cbu; then +if $test -f use64bitall.cbu; then echo "Your platform has some specific hints regarding 64-bit builds, using them..." - . ./use64bitall.cbu - fi + . ./use64bitall.cbu +fi case "$use64bitall" in "$define"|true|[yY]*) case "$longsize" in @@ -5488,7 +5513,7 @@ $undef:$define) cat >&4 <<EOF *** You have chosen to use 64-bit integers, -*** but none cannot be found. +*** but none can be found. *** Please rerun Configure without -Duse64bitint and/or -Dusemorebits. *** Cannot continue, aborting. @@ -6256,6 +6281,27 @@ EOM esac +: determine whether to use malloc wrapping +echo " " +case "$usemallocwrap" in +[yY]*|true|$define) dflt='y' ;; +[nN]*|false|$undef) dflt='n' ;; +*) case "$usedevel" in + [yY]*|true|$define) dflt='y' ;; + *) dflt='n' ;; + esac + ;; +esac +rp="Do you wish to wrap malloc calls to protect against potential overflows?" +. ./myread +usemallocwrap="$ans" +case "$ans" in +y*|true) + usemallocwrap="$define" ;; +*) + usemallocwrap="$undef" ;; +esac + : determine which malloc to compile in echo " " case "$usemymalloc" in @@ -6873,7 +6919,7 @@ EOM rp='List of earlier versions to include in @INC?' . ./myread case "$ans" in -[Nn]one|''|' ') inc_version_list=' ' ;; +[Nn]one|''|' '|$undef) inc_version_list=' ' ;; *) inc_version_list="$ans" ;; esac case "$inc_version_list" in @@ -7623,11 +7669,9 @@ say "none". EOM case "$ccdlflags" in '') case "$osname" in - hpux) dflt='-Wl,-E' ;; - linux) dflt='-rdynamic' ;; - next) dflt='none' ;; - sunos) dflt='none' ;; - *) dflt='none' ;; + linux|hpux) dflt='-Wl,-E' ;; + next|sunos) dflt='none' ;; + *) dflt='none' ;; esac ;; ' ') dflt='none' ;; *) dflt="$ccdlflags" ;; @@ -10056,7 +10100,7 @@ int main() i32 = ($xxx) g; /* x86 processors will probably give 0x8000 0000, which is a - sign change. We don't want that. We want to mimic SPARC + sign change. We don't want that. We want to mimic SPARC behavior here, which is to preserve the sign and give back 0x7fff ffff. */ @@ -18643,12 +18687,6 @@ rp="What is the type of process ids on this system?" set pid_t pidtype int stdio.h sys/types.h eval $typedef_ask -: Find earliest binary compatible site_perl subdirectory perl can use. -xs_apiversion=$version # The current site_perl version. -: Find earliest pure perl site_perl subdirectory perl can use. -: The versioned directories started at 5.005. -pm_apiversion='5.005' - : see if ar generates random libraries by itself echo " " echo "Checking how to generate random libraries on your machine..." >&4 @@ -21209,7 +21247,6 @@ pg='$pg' phostname='$phostname' pidtype='$pidtype' plibpth='$plibpth' -pm_apiversion='$pm_apiversion' pmake='$pmake' pr='$pr' prefix='$prefix' @@ -21364,6 +21401,7 @@ usefaststdio='$usefaststdio' useithreads='$useithreads' uselargefiles='$uselargefiles' uselongdouble='$uselongdouble' +usemallocwrap='$usemallocwrap' usemorebits='$usemorebits' usemultiplicity='$usemultiplicity' usemymalloc='$usemymalloc' @@ -21411,7 +21449,6 @@ versiononly='$versiononly' vi='$vi' voidflags='$voidflags' xlibpth='$xlibpth' -xs_apiversion='$xs_apiversion' yacc='$yacc' yaccflags='$yaccflags' zcat='$zcat' diff --git a/gnu/usr.bin/perl/INSTALL b/gnu/usr.bin/perl/INSTALL index 8fc3fe02b80..217de57fe85 100644 --- a/gnu/usr.bin/perl/INSTALL +++ b/gnu/usr.bin/perl/INSTALL @@ -1,15 +1,73 @@ +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 +designed to be readable as is. + =head1 NAME Install - Build and Installation guide for perl5. +=head1 Reporting Problems + +Wherever possible please use the perlbug tool supplied with this Perl +to report problems, as it automatically includes summary configuration +information about your perl, which may help us track down problems far +more quickly. But first you should read the advice in this file, +carefully re-read the error message and check the relevant manual pages +on your system, as these may help you find an immediate solution. If +you are not sure whether what you are seeing is a bug, you can send a +message describing the problem to the comp.lang.perl.misc newsgroup to +get advice. + +The perlbug tool is installed along with perl, so after you have +completed C<make install> it should be possible to run it with plain +C<perlbug>. If the install fails, or you want to report problems with +C<make test> without installing perl, then you can use C<make nok> to +run perlbug to report the problem, or run it by hand from this source +directory with C<./perl -Ilib utils/perlbug> + +If the build fails too early to run perlbug uninstalled, then please +B<run> the C<./myconfig> shell script, and mail its output along with +an accurate description of your problem to perlbug@perl.org + +If Configure itself fails, and does not generate a config.sh file +(needed to run C<./myconfig>), then please mail perlbug@perl.org the +description of how Configure fails along with details of your system +- for example the output from running C<uname -a> + +Please try to make your message brief but clear. Brief, clear bug +reports tend to get answered more quickly. Please don't worry if your +written English is not great - what matters is how well you describe +the important technical details of the problem you have encountered, +not whether your grammar and spelling is flawless. + +Trim out unnecessary information. Do not include large files (such as +config.sh or a complete Configure or make log) unless absolutely +necessary. Do not include a complete transcript of your build +session. Just include the failing commands, the relevant error +messages, and whatever preceding commands are necessary to give the +appropriate context. Plain text should usually be sufficient--fancy +attachments or encodings may actually reduce the number of people who +read your message. Your message will get relayed to over 400 +subscribers around the world so please try to keep it brief but clear. + +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 + =head1 SYNOPSIS -First, make sure you are installing an up-to-date version of Perl. If -you didn't get your Perl source from CPAN, check the latest version at -<URL:http://www.cpan.org/src/>. +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 +subreleases (like 5.6.x and 5.8.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 +production environments. Fixes and new features are first carefully +tested in development releases and only if they prove themselves to be +worthy will they be migrated to the maintenance releases. -The basic steps to build and install perl5 on a Unix system -with all the defaults are: +The basic steps to build and install perl5 on a Unix system with all +the defaults are: rm -f config.sh Policy.sh sh Configure -de @@ -17,25 +75,11 @@ with all the defaults are: make test make install - # You may also wish to add these: - (cd /usr/include && h2ph *.h sys/*.h) - (installhtml --help) - (cd pod && make tex && <process the latex files>) - Each of these is explained in further detail below. -B<NOTE>: starting from the release 5.6.0, Perl uses a version -scheme where even-numbered subreleases (like 5.6 and 5.8) are stable -maintenance releases and odd-numbered subreleases (like 5.7) are -unstable development releases. Development releases should not be -used in production environments. Fixes and new features are first -carefully tested in development releases and only if they prove -themselves to be worthy will they be migrated to the maintenance -releases. - The above commands will install Perl to /usr/local (or some other platform-specific directory -- see the appropriate file in hints/.) -If that's not okay with you, use +If that's not okay with you, can run Configure interactively and use rm -f config.sh Policy.sh sh Configure @@ -43,16 +87,15 @@ If that's not okay with you, use make test make install -For information on non-Unix systems, see the section on L<"Porting -information"> below. + # You may also wish to add these: + (cd /usr/include && h2ph *.h sys/*.h) + (installhtml --help) + (cd pod && make tex && <process the latex files>) -If "make install" just says "`install' is up to date" or something -similar, you may be on a case-insensitive filesystems such as Mac's HFS+, -and you should say "make install-all". (This confusion is brought to you -by the Perl distribution having a file called INSTALL.) +or you can use some of the Configure options described below. If you have problems, corrections, or questions, please see -L<"Reporting Problems"> below. +L<"Reporting Problems"> above. For information on what's new in this release, see the pod/perldelta.pod file. For more detailed information about specific @@ -68,40 +111,33 @@ by lines beginning with '='. The other mark-up used is B<text> embolden text, used for switches, programs or commands C<code> literal code L<name> A link (cross reference) to name + F<file> A filename Although most of the defaults are probably fine for most users, -you should probably at least skim through this entire document before +you should probably at least skim through this document before proceeding. -If you're building Perl on a non-Unix system, you should also read -the README file specific to your operating system, since this may -provide additional or different instructions for building Perl. There -are also README files for several flavors of Unix systems, such as -Solaris, HP-UX, and AIX; if you have one of those systems, you should -also read the README file specific to that system. - -If there is a hint file for your system (in the hints/ directory) you -should also read that hint file for specific information for your -system. (Unixware users should use the svr4.sh or the svr5.sh hint file.) -Additional information is in the Porting/ directory. - -=head1 WARNING: This version requires an extra step to build old extensions. +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 should also read that hint file +for even more information. (Unixware users should use the svr4.sh or +the svr5.sh hint file.) -5.005_53 and later releases do not export unadorned -global symbols anymore. This means you may need to build rather old -extensions that have not been updated for the current naming convention -with: - - perl Makefile.PL POLLUTE=1 +For additional information about porting Perl, see the section on +L<"Porting information"> below, and look at the files in the Porting/ +directory. -Alternatively, you can enable CPP symbol pollution wholesale by -building perl itself with: +=head1 PRELIMINARIES - sh Configure -Accflags=-DPERL_POLLUTE +=head2 Changes and Incompatibilities -pod/perl56delta.pod contains more details about this. +Please see pod/perldelta.pod 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. -=head1 WARNING: This version is not binary compatible with releases of +=head3 WARNING: This version is not binary compatible with releases of Perl prior to 5.8.0. If you have built extensions (i.e. modules that include C code) @@ -115,62 +151,21 @@ L<"Upgrading from 5.005 or 5.6 to 5.8.0"> for more details. 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 (and the earlier pod/perl5Xdelta.pod) 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 CPAN::autobundle for one way to make a "bundle" of your -currently installed modules. - -=head1 WARNING: This version requires a compiler that supports ANSI C. - -Most C compilers are now ANSI-compliant. However, a few current -computers are delivered with an older C compiler expressly for -rebuilding the system kernel, or for some other historical reason. -Alternatively, you may have an old machine which was shipped before -ANSI compliance became widespread. Such compilers are not suitable -for building Perl. - -If you find that your default C compiler is not ANSI-capable, but you -know that an ANSI-capable compiler is installed on your system, you -can tell F<Configure> to use the correct compiler by means of the -C<-Dcc=> command-line option -- see L<"gcc">. - -If do not have an ANSI-capable compiler there are a couple of avenues -open to you: - -=over 4 - -=item * - -You may try obtaining GCC, available from GNU mirrors worldwide, -listed at <URL:http://www.gnu.org/order/ftp.html>. If, rather than -building gcc from source code, you locate a binary version configured -for your platform, be sure that it is compiled for the version of the -operating system that you are using. - -=item * +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 +installed copy of the perllocal.pod file for a (possibly incomplete) +list of locally installed modules. Also see CPAN::autobundle for one +way to make a "bundle" of your currently installed modules. -You may purchase a commercial ANSI C compiler from your system -supplier or elsewhere. (Or your organization may already have -licensed such software -- ask your colleagues to find out how to -access it.) If there is a README file for your system in the Perl -distribution (for example, F<README.hpux>), it may contain advice on -suitable compilers. +=head2 Space Requirements -=back - -Although Perl can be compiled using a C++ compiler, the Configure script -does not work with some C++ compilers. - -=head1 Space Requirements - -The complete perl5 source tree takes up about 50 MB of disk space. +The complete perl5 source tree takes up about 60 MB of disk space. After completing make, it takes up roughly 100 MB, though the actual total is likely to be quite system-dependent. The installation directories need something on the order of 45 MB, though again that -value is system-dependent. +value is system-dependent. A perl build with debug symbols and +-DDEBUGGING will require something on the order of 10 MB extra. =head1 Start with a Fresh Distribution @@ -200,9 +195,9 @@ the default directory for architecture-dependent library modules includes the version name. By default, Configure will reuse your old name (e.g. /opt/perl/lib/i86pc-solaris/5.003) even if you're running Configure for a different version, e.g. 5.004. Yes, Configure should -probably check and correct for this, but it doesn't. -Similarly, if you used a shared libperl.so (see below) with version -numbers, you will probably want to adjust them as well. +probably check and correct for this, but it doesn't. Similarly, if you +used a shared libperl.so (see below) with version numbers, you will +probably want to adjust them as well. Also, be careful to check your architecture name. For example, some Linux distributions use i386, while others may use i486. If you build @@ -231,51 +226,19 @@ almost always okay. It is normal for some things to be "NOT found", since Configure often searches for many different ways of performing the same function. -At any Configure prompt, you can type &-d and Configure will use the +At any Configure prompt, you can type &-d and Configure will use the defaults from then on. After it runs, Configure will perform variable substitution on all the *.SH files and offer to run make depend. -=head2 Altering config.sh variables for C compiler switches etc. - -For most users, all of the Configure defaults are fine. Configure -also has several convenient options which are described below. -However, if Configure doesn't have an option to do what you want, -you can change Configure variables after the platform hints have been -run, by using Configure's -A switch. For example, here's how to add -a couple of extra flags to C compiler invocations: - - sh Configure -Accflags="-DPERL_Y2KWARN -DPERL_POLLUTE_MALLOC" - -For more help on Configure switches, run: - - sh Configure -h - -=head2 Building Perl outside of the source directory - -Sometimes it is desirable to build Perl in a directory different from -where the sources are, for example if you want to keep your sources -read-only, or if you want to share the sources between different binary -architectures. You can do this (if your file system supports symbolic -links) by - - mkdir /tmp/perl/build/directory - cd /tmp/perl/build/directory - sh /path/to/perl/source/Configure -Dmksymlinks ... - -This will create in /tmp/perl/build/directory a tree of symbolic links -pointing to files in /path/to/perl/source. The original files are left -unaffected. After Configure has finished you can just say +=head2 Common Configure options - make all test +Configure supports a number of useful options. Run -and Perl will be built and tested, all in /tmp/perl/build/directory. + Configure -h -=head2 Common Configure options - -Configure supports a number of useful options. Run B<Configure -h> to -get a listing. See the Porting/Glossary file for a complete list of +to get a listing. See the Porting/Glossary file for a complete list of Configure variables you can set and their definitions. =over 4 @@ -297,7 +260,7 @@ and L<"Coexistence with earlier versions of perl5"> 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 +directory when Configure prompts you, or by using the Configure command line option -Dprefix='/some/directory', e.g. sh Configure -Dprefix=/opt/perl @@ -326,27 +289,28 @@ configured may be found with perl -V:config_args (Check the output carefully, however, since this doesn't preserve -spaces in arguments to Configure. For that, you have to look -carefully at config_arg1, config_arg2, etc.) +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 version of perl. You can turn on that behavior by running +By default, Configure will not try to link /usr/bin/perl to the current +version of perl. You can turn on that behavior by running Configure -Dinstallusrbinperl or by answering 'yes' to the appropriate Configure prompt. -(Note that before perl 5.8.1, the default behavior was to create -or overwrite /usr/bin/perl even if it already existed.) -In any case, system administrators are strongly encouraged to -put (symlinks to) perl and its accompanying utilities, such as perldoc, +In any case, system administrators are strongly encouraged to put +(symlinks to) perl and its accompanying utilities, such as perldoc, into a directory typically found along a user's PATH, or in another obvious and convenient place. -=item Overriding an old config.sh +=item Building a development release. -If you want to use your old config.sh but override some of the items -with command line options, you need to use B<Configure -O>. +For development releases (odd subreleases, like 5.9.x) if you want to +use Configure -d, you will also need to supply -Dusedevel to Configure, +because the default answer to the question "do you really want to +Configure a development version?" is "no". The -Dusedevel skips that +sanity check. =back @@ -355,356 +319,36 @@ output, you can run sh Configure -des -Note: for development releases (odd subreleases, like 5.9, as opposed -to maintenance releases which have even subreleases, like 5.6 and 5.8) -if you want to use Configure -d, you will also need to supply -Dusedevel -to Configure, because the default answer to the question "do you really -want to Configure a development version?" is "no". The -Dusedevel -skips that sanity check. - -For example for my Solaris system, I usually use +For example for my Solaris/x86 system, I usually use sh Configure -Dprefix=/opt/perl -Doptimize='-xpentium -xO4' -des -=head2 GNU-style configure - -If you prefer the GNU-style configure command line interface, you can -use the supplied configure.gnu command, e.g. - - CC=gcc ./configure.gnu - -The configure.gnu script emulates a few of the more common configure -options. Try - - ./configure.gnu --help - -for a listing. - -(The file is called configure.gnu to avoid problems on systems -that would not distinguish the files "Configure" and "configure".) - -See L<Cross-compilation> below for information on cross-compiling. - -=head2 Installation Directories - -The installation directories can all be changed by answering the -appropriate questions in Configure. For convenience, all the -installation questions are near the beginning of Configure. -Do not include trailing slashes on directory names. - -I highly recommend running Configure interactively to be sure it puts -everything where you want it. At any point during the Configure -process, you can answer a question with &-d and Configure will use -the defaults from then on. Alternatively, you can - - grep '^install' config.sh - -after Configure has run to verify the installation paths. - -The defaults are intended to be reasonable and sensible for most -people building from sources. Those who build and distribute binary -distributions or who export perl to a range of systems will probably -need to alter them. If you are content to just accept the defaults, -you can safely skip the next section. - -The directories set up by Configure fall into three broad categories. - -=over 4 - -=item Directories for the perl distribution - -By default, Configure will use the following directories for 5.8.0. -$version is the full perl version number, including subversion, e.g. -5.8.0 or 5.8.1, and $archname is a string like sun4-sunos, -determined by Configure. The full definitions of all Configure -variables are in the file Porting/Glossary. - - Configure variable Default value - $prefix /usr/local - $bin $prefix/bin - $scriptdir $prefix/bin - $privlib $prefix/lib/perl5/$version - $archlib $prefix/lib/perl5/$version/$archname - $man1dir $prefix/man/man1 - $man3dir $prefix/man/man3 - $html1dir (none) - $html3dir (none) - -Actually, Configure recognizes the SVR3-style -/usr/local/man/l_man/man1 directories, if present, and uses those -instead. Also, if $prefix contains the string "perl", the library -directories are simplified as described below. For simplicity, only -the common style is shown here. - -=item Directories for site-specific add-on files - -After perl is installed, you may later wish to add modules (e.g. from -CPAN) or scripts. Configure will set up the following directories to -be used for installing those add-on modules and scripts. - - Configure variable Default value - $siteprefix $prefix - $sitebin $siteprefix/bin - $sitescript $siteprefix/bin - $sitelib $siteprefix/lib/perl5/site_perl/$version - $sitearch $siteprefix/lib/perl5/site_perl/$version/$archname - $siteman1dir $siteprefix/man/man1 - $siteman3dir $siteprefix/man/man3 - $sitehtml1dir (none) - $sitehtml3dir (none) - -By default, ExtUtils::MakeMaker will install architecture-independent -modules into $sitelib and architecture-dependent modules into $sitearch. - -=item Directories for vendor-supplied add-on files - -Lastly, if you are building a binary distribution of perl for -distribution, Configure can optionally set up the following directories -for you to use to distribute add-on modules. - - Configure variable Default value - $vendorprefix (none) - (The next ones are set only if vendorprefix is set.) - $vendorbin $vendorprefix/bin - $vendorscript $vendorprefix/bin - $vendorlib $vendorprefix/lib/perl5/vendor_perl/$version - $vendorarch $vendorprefix/lib/perl5/vendor_perl/$version/$archname - $vendorman1dir $vendorprefix/man/man1 - $vendorman3dir $vendorprefix/man/man3 - $vendorhtml1dir (none) - $vendorhtml3dir (none) - -These are normally empty, but may be set as needed. For example, -a vendor might choose the following settings: - - $prefix /usr - $siteprefix /usr/local - $vendorprefix /usr - -This would have the effect of setting the following: - - $bin /usr/bin - $scriptdir /usr/bin - $privlib /usr/lib/perl5/$version - $archlib /usr/lib/perl5/$version/$archname - $man1dir /usr/man/man1 - $man3dir /usr/man/man3 - - $sitebin /usr/local/bin - $sitescript /usr/local/bin - $sitelib /usr/local/lib/perl5/site_perl/$version - $sitearch /usr/local/lib/perl5/site_perl/$version/$archname - $siteman1dir /usr/local/man/man1 - $siteman3dir /usr/local/man/man3 - - $vendorbin /usr/bin - $vendorscript /usr/bin - $vendorlib /usr/lib/perl5/vendor_perl/$version - $vendorarch /usr/lib/perl5/vendor_perl/$version/$archname - $vendorman1dir /usr/man/man1 - $vendorman3dir /usr/man/man3 - -Note how in this example, the vendor-supplied directories are in the -/usr hierarchy, while the directories reserved for the end-user are in -the /usr/local hierarchy. - -The entire installed library hierarchy is installed in locations with -version numbers, keeping the installations of different versions distinct. -However, later installations of Perl can still be configured to search the -installed libraries corresponding to compatible earlier versions. -See L<"Coexistence with earlier versions of perl5"> below for more details -on how Perl can be made to search older version directories. - -Of course you may use these directories however you see fit. For -example, you may wish to use $siteprefix for site-specific files that -are stored locally on your own disk and use $vendorprefix for -site-specific files that are stored elsewhere on your organization's -network. One way to do that would be something like - - sh Configure -Dsiteprefix=/usr/local -Dvendorprefix=/usr/share/perl - -=item otherlibdirs - -As a final catch-all, Configure also offers an $otherlibdirs -variable. This variable contains a colon-separated list of additional -directories to add to @INC. By default, it will be empty. -Perl will search these directories (including architecture and -version-specific subdirectories) for add-on modules and extensions. - -For example, if you have a bundle of perl libraries from a previous -installation, perhaps in a strange place: - - Configure -Dotherlibdirs=/usr/lib/perl5/site_perl/5.6.1 - -=item APPLLIB_EXP - -There is one other way of adding paths to @INC at perl build time, and -that is by setting the APPLLIB_EXP C pre-processor token to a colon- -separated list of directories, like this - - sh Configure -Accflags='-DAPPLLIB_EXP=\"/usr/libperl\"' - -The directories defined by APPLLIB_EXP get added to @INC I<first>, -ahead of any others, and so provide a way to override the standard perl -modules should you, for example, want to distribute fixes without -touching the perl distribution proper. And, like otherlib dirs, -version and architecture specific subdirectories are also searched, if -present, at run time. Of course, you can still search other @INC -directories ahead of those in APPLLIB_EXP by using any of the standard -run-time methods: $PERLLIB, $PERL5LIB, -I, use lib, etc. - -=item Man Pages - -In versions 5.005_57 and earlier, the default was to store module man -pages in a version-specific directory, such as -/usr/local/lib/perl5/$version/man/man3. The default for 5.005_58 and -after is /usr/local/man/man3 so that most users can find the man pages -without resetting MANPATH. - -You can continue to use the old default from the command line with - - sh Configure -Dman3dir=/usr/local/lib/perl5/5.8.0/man/man3 - -Some users also prefer to use a .3pm suffix. You can do that with - - sh Configure -Dman3ext=3pm - -Again, these are just the defaults, and can be changed as you run -Configure. - -=item HTML pages - -Currently, the standard perl installation does not do anything with -HTML documentation, but that may change in the future. Further, some -add-on modules may wish to install HTML documents. The html Configure -variables listed above are provided if you wish to specify where such -documents should be placed. The default is "none", but will likely -eventually change to something useful based on user feedback. - -=back - -Some users prefer to append a "/share" to $privlib and $sitelib -to emphasize that those directories can be shared among different -architectures. - -Note that these are just the defaults. You can actually structure the -directories any way you like. They don't even have to be on the same -filesystem. - -Further details about the installation directories, maintenance and -development subversions, and about supporting multiple versions are -discussed in L<"Coexistence with earlier versions of perl5"> below. - -If you specify a prefix that contains the string "perl", then the -library directory structure is slightly simplified. Instead of -suggesting $prefix/lib/perl5/, Configure will suggest $prefix/lib. - -Thus, for example, if you Configure with --Dprefix=/opt/perl, then the default library directories for 5.8.0 are - - Configure variable Default value - $privlib /opt/perl/lib/5.8.0 - $archlib /opt/perl/lib/5.8.0/$archname - $sitelib /opt/perl/lib/site_perl/5.8.0 - $sitearch /opt/perl/lib/site_perl/5.8.0/$archname - -=head2 Changing the installation directory - -Configure distinguishes between the directory in which perl (and its -associated files) should be installed and the directory in which it -will eventually reside. For most sites, these two are the same; for -sites that use AFS, this distinction is handled automatically. -However, sites that use software such as depot to manage software -packages, or users building binary packages for distribution may also -wish to install perl into a different directory and use that -management software to move perl to its final destination. This -section describes how to do that. - -Suppose you want to install perl under the /tmp/perl5 directory. You -could edit config.sh and change all the install* variables to point to -/tmp/perl5 instead of /usr/local, or you could simply use the -following command line: - - sh Configure -Dinstallprefix=/tmp/perl5 - -(replace /tmp/perl5 by a directory of your choice). - -Beware, though, that if you go to try to install new add-on -modules, they too will get installed in under '/tmp/perl5' if you -follow this example. The next section shows one way of dealing with -that problem. - -=head2 Creating an installable tar archive - -If you need to install perl on many identical systems, it is -convenient to compile it once and create an archive that can be -installed on multiple systems. Suppose, for example, that you want to -create an archive that can be installed in /opt/perl. -Here's one way to do that: - - # Set up to install perl into a different directory, - # e.g. /tmp/perl5 (see previous part). - sh Configure -Dinstallprefix=/tmp/perl5 -Dprefix=/opt/perl -des - make - make test - make install # This will install everything into /tmp/perl5. - cd /tmp/perl5 - # Edit $archlib/Config.pm and $archlib/.packlist to change all the - # install* variables back to reflect where everything will - # really be installed. (That is, change /tmp/perl5 to /opt/perl - # everywhere in those files.) - # Check the scripts in $scriptdir to make sure they have the correct - # #!/wherever/perl line. - tar cvf ../perl5-archive.tar . - # Then, on each machine where you want to install perl, - cd /opt/perl # Or wherever you specified as $prefix - tar xvf perl5-archive.tar - -Alternatively, the DESTDIR variable is honored during C<make install>. -The DESTDIR is automatically prepended to all the installation paths -(and there is no need to edit anything). With DESTDIR, the above -example can we written as: - - sh Configure -Dprefix=/opt/perl -des - make - make test - make install DESTDIR=/tmp/perl5 - cd /tmp/perl5/opt/perl - tar cvf /tmp/perl5-archive.tar . - -=head2 Site-wide Policy settings - -After Configure runs, it stores a number of common site-wide "policy" -answers (such as installation directories and the local perl contact -person) in the Policy.sh file. If you want to build perl on another -system using the same policy defaults, simply copy the Policy.sh file -to the new system and Configure will use it along with the appropriate -hint file for your system. +=head2 Altering config.sh variables for C compiler switches etc. -Alternatively, if you wish to change some or all of those policy -answers, you should +For most users, most of the Configure defaults are fine, or can easily +be set on the Configure command line. However, if Configure doesn't +have an option to do what you want, you can change Configure variables +after the platform hints have been run by using Configure's -A switch. +For example, here's how to add a couple of extra flags to C compiler +invocations: - rm -f Policy.sh + sh Configure -Accflags="-DPERL_Y2KWARN -DPERL_POLLUTE_MALLOC" -to ensure that Configure doesn't re-use them. +For more help on Configure switches, run -Further information is in the Policy_sh.SH file itself. - -If the generated Policy.sh file is unsuitable, you may freely edit it -to contain any valid shell commands. It will be run just after the -platform-specific hints files. + sh Configure -h -=head2 Configure-time Options +=head2 Major Configure-time Build Options There are several different ways to Configure and build perl for your system. For most users, the defaults are sensible and will work. Some users, however, may wish to further customize perl. Here are some of the main things you can change. -=head2 Threads +=head3 Threads -On some platforms, perl can be compiled with -support for threads. To enable this, run +On some platforms, perl can be compiled with support for threads. To +enable this, run sh Configure -Dusethreads @@ -714,35 +358,30 @@ line so that the hint files can make appropriate adjustments. The default is to compile without thread support. Perl has two different internal threads implementations. The current -model (available internally since 5.6, and as a user-level module -since 5.8) is called interpreter-based implementation (ithreads), -with one interpreter per thread, and explicit sharing of data. - -The 5.005 version (5005threads) is considered obsolete, buggy, and -unmaintained. +model (available internally since 5.6, and as a user-level module since +5.8) is called interpreter-based implementation (ithreads), with one +interpreter per thread, and explicit sharing of data. The 5.005 +version (5005threads) is considered obsolete, buggy, and unmaintained. By default, Configure selects ithreads if -Dusethreads is specified. -(You need to also use the PerlIO layer, explained later, if you decide -to use ithreads, to guarantee the good interworking of threads and I/O.) - -However, if you wish, you can select the unsupported old 5005threads behavior +However, if you insist, you can select the unsupported old 5005threads behavior sh Configure -Dusethreads -Duse5005threads -If you decide to use ithreads, the 'threads' module allows their use, -and the 'Thread' module offers an interface to both 5005threads and -ithreads (whichever has been configured). +The 'threads' module is for use with the ithreads implementation. The +'Thread' module offers an interface to either 5005threads or ithreads +(whichever has been configured). -When building threaded for certain library calls like the getgr*() and -the getpw*() there is a dynamically sized result buffer: the buffer -starts small but Perl will keep growing the buffer until the result fits. -To get a fixed upper limit you will have to recompile Perl with -PERL_REENTRANT_MAXSIZE defined to be the number of bytes you want. -One way to do this is to run Configure with +When using threads, perl uses a dynamically-sized buffer for some of +the thread-safe library calls, such as those in the getpw*() family. +This buffer starts small, but it will keep growing until the result +fits. To get a fixed upper limit, you should compile Perl with +PERL_REENTRANT_MAXSIZE defined to be the number of bytes you want. One +way to do this is to run Configure with C<-Accflags=-DPERL_REENTRANT_MAXSIZE=65536> -=head2 Large file support. +=head3 Large file support. Since Perl 5.6.0, Perl has supported large files (files larger than 2 gigabytes), and in many common platforms like Linux or Solaris this @@ -758,29 +397,29 @@ Apache extension mod_perl. There's also one known limitation with the current large files implementation: unless you also have 64-bit integers (see the next -section), you cannot use the printf/sprintf non-decimal integer -formats like C<%x> to print filesizes. You can use C<%d>, though. +section), you cannot use the printf/sprintf non-decimal integer formats +like C<%x> to print filesizes. You can use C<%d>, though. -=head2 64 bit support. +=head3 64 bit support. -If your platform does not have 64 bits natively, but can simulate them -with compiler flags and/or C<long long> or C<int64_t>, you can build a -perl that uses 64 bits. +If your platform does not have run natively at 64 bits, but can +simulate them with compiler flags and/or C<long long> or C<int64_t>, +you can build a perl that uses 64 bits. There are actually two modes of 64-bitness: the first one is achieved using Configure -Duse64bitint and the second one using Configure -Duse64bitall. The difference is that the first one is minimal and the second one maximal. The first works in more places than the second. -The C<use64bitint> does only as much as is required to get 64-bit -integers into Perl (this may mean, for example, using "long longs") -while your memory may still be limited to 2 gigabytes (because your -pointers could still be 32-bit). Note that the name C<64bitint> does -not imply that your C compiler will be using 64-bit C<int>s (it might, -but it doesn't have to): the C<use64bitint> means that you will be -able to have 64 bits wide scalar values. +The C<use64bitint> option does only as much as is required to get +64-bit integers into Perl (this may mean, for example, using "long +longs") while your memory may still be limited to 2 gigabytes (because +your pointers could still be 32-bit). Note that the name C<64bitint> +does not imply that your C compiler will be using 64-bit C<int>s (it +might, but it doesn't have to). The C<use64bitint> simply means that +you will be able to have 64 bit-wide scalar values. -The C<use64bitall> goes all the way by attempting to switch also +The C<use64bitall> option goes all the way by attempting to switch integers (if it can), longs (and pointers) to being 64-bit. This may create an even more binary incompatible Perl than -Duse64bitint: the resulting executable may not run at all in a 32-bit box, or you may @@ -795,21 +434,21 @@ nor -Duse64bitall. LLP64 data model is not yet supported. 64-bit libraries and system APIs on many platforms have not stabilized--your mileage may vary. -=head2 Long doubles +=head3 Long doubles In some systems you may be able to use long doubles to enhance the range and precision of your double precision floating point numbers (that is, Perl's numbers). Use Configure -Duselongdouble to enable this support (if it is available). -=head2 "more bits" +=head3 "more bits" You can "Configure -Dusemorebits" to turn on both the 64-bit support and the long double support. -=head2 Selecting File IO mechanisms +=head3 Selecting File IO mechanisms -Executive summary: in Perl 5.8, you should use the default "PerlIO" +Executive summary: as of Perl 5.8, you should use the default "PerlIO" as the IO mechanism unless you have a good reason not to. In more detail: previous versions of perl used the standard IO @@ -858,7 +497,7 @@ Configure should detect this problem and warn you about problems with _exit vs. exit. If you have this problem, the fix is to go back to your sfio sources and correct iffe's guess about atexit. -=head2 Algorithmic Complexity Attacks on Hashes +=head3 Algorithmic Complexity Attacks on Hashes In Perls 5.8.0 and earlier it was easy to create degenerate hashes. Processing such hashes would consume large amounts of CPU time, @@ -866,45 +505,58 @@ enabling a "Denial of Service" attack against Perl. Such hashes may be a problem for example for mod_perl sites, sites with Perl CGI scripts and web services, that process data originating from external sources. -In Perl 5.8.1 a security feature was introduced to make it harder -to create such degenerate hashes. - -Because of this feature the keys(), values(), and each() functions may -return the hash elements in different order between different runs of -Perl even with the same data. One can still revert to the old -repeatable order by setting the environment variable PERL_HASH_SEED, -see L<perlrun/PERL_HASH_SEED>. Another option is to add --DUSE_HASH_SEED_EXPLICIT to the compilation flags (for example by -using C<Configure -Accflags=-DUSE_HAS_SEED_EXPLICIT>), in which case -one has to explicitly set the PERL_HASH_SEED environment variable to -enable the security feature, or by adding -DNO_HASH_SEED to the compilation -flags to completely disable the randomisation feature. +In Perl 5.8.1 a security feature was introduced to make it harder to +create such degenerate hashes. A visible side effect of this was that +the keys(), values(), and each() functions may return the hash elements +in different order between different runs of Perl even with the same +data. It also had unintended binary incompatibility issues with +certain modules compiled against Perl 5.8.0. + +In Perl 5.8.2 an improved scheme was introduced. Hashes will return +elements in the same order as Perl 5.8.0 by default. On a hash by hash +basis, if pathological data is detected during a hash key insertion, +then that hash will switch to an alternative random hash seed. As +adding keys can always dramatically change returned hash element order, +existing programs will not be affected by this, unless they +specifically test for pre-recorded hash return order for contrived +data. (eg the list of keys generated by C<map {"\0"x$_} 0..15> trigger +randomisation) In effect the new implementation means that 5.8.1 scheme +is only being used on hashes which are under attack. + +One can still revert to the old guaranteed repeatable order (and be +vulnerable to attack by wily crackers) by setting the environment +variable PERL_HASH_SEED, see L<perlrun/PERL_HASH_SEED>. Another option +is to add -DUSE_HASH_SEED_EXPLICIT to the compilation flags (for +example by using C<Configure -Accflags=-DUSE_HAS_SEED_EXPLICIT>), in +which case one has to explicitly set the PERL_HASH_SEED environment +variable to enable the security feature, or by adding -DNO_HASH_SEED to +the compilation flags to completely disable the randomisation feature. B<Perl has never guaranteed any ordering of the hash keys>, and the -ordering has already changed several times during the lifetime of -Perl 5. Also, the ordering of hash keys has always been, and -continues to be, affected by the insertion order. +ordering has already changed several times during the lifetime of Perl +5. Also, the ordering of hash keys has always been, and continues to +be, affected by the insertion order. It is likely that Perl 5.10 and +Perl 6 will randomise all hashes. Note that because of this +randomisation for example the Data::Dumper results will be different +between different runs of Perl since Data::Dumper by default dumps +hashes "unordered". The use of the Data::Dumper C<Sortkeys> option is +recommended. -Note that because of this randomisation for example the Data::Dumper -results will be different between different runs of Perl since -Data::Dumper by default dumps hashes "unordered". The use of the -Data::Dumper C<Sortkeys> option is recommended. - -=head2 SOCKS +=head3 SOCKS Perl can be configured to be 'socksified', that is, to use the SOCKS TCP/IP proxy protocol library. SOCKS is used to give applications access to transport layer network proxies. Perl supports only SOCKS Version 5. You can find more about SOCKS from http://www.socks.nec.com/ -=head2 Dynamic Loading +=head3 Dynamic Loading By default, Configure will compile perl to use dynamic loading if your system supports it. If you want to force perl to be compiled statically, you can either choose this when Configure prompts you or you can use the Configure command line option -Uusedl. -=head2 Building a shared Perl library +=head3 Building a shared Perl library Currently, for most systems, the main perl executable is built by linking the "perl library" libperl.a with perlmain.o, your static @@ -929,7 +581,7 @@ Your system and typical applications may well give quite different results. The default name for the shared library is typically something like -libperl.so.3.2 (for Perl 5.003_02) or libperl.so.302 or simply +libperl.so.6.2 (for Perl 5.6.2), or libperl.so.602, or simply libperl.so. Configure tries to guess a sensible naming convention based on your C library name. Since the library gets installed in a version-specific architecture-dependent directory, the exact name @@ -1005,61 +657,336 @@ architecture-dependent library for your -DDEBUGGING version of perl. You can do this by changing all the *archlib* variables in config.sh to point to your new architecture-dependent library. -=head2 Malloc Issues +=head2 Installation Directories -Perl relies heavily on malloc(3) to grow data structures as needed, -so perl's performance can be noticeably affected by the performance of -the malloc function on your system. The perl source is shipped with a -version of malloc that has been optimized for the typical requests from -perl, so there's a chance that it may be both faster and use less memory -than your system malloc. +The installation directories can all be changed by answering the +appropriate questions in Configure. For convenience, all the +installation questions are near the beginning of Configure. +Do not include trailing slashes on directory names. -However, if your system already has an excellent malloc, or if you are -experiencing difficulties with extensions that use third-party libraries -that call malloc, then you should probably use your system's malloc. -(Or, you might wish to explore the malloc flags discussed below.) +I highly recommend running Configure interactively to be sure it puts +everything where you want it. At any point during the Configure +process, you can answer a question with &-d and Configure will use +the defaults from then on. Alternatively, you can + + grep '^install' config.sh + +after Configure has run to verify the installation paths. + +The defaults are intended to be reasonable and sensible for most +people building from sources. Those who build and distribute binary +distributions or who export perl to a range of systems will probably +need to alter them. If you are content to just accept the defaults, +you can safely skip the next section. + +The directories set up by Configure fall into three broad categories. =over 4 -=item Using the system malloc +=item Directories for the perl distribution -To build without perl's malloc, you can use the Configure command +By default, Configure will use the following directories for 5.8.x. +$version is the full perl version number, including subversion, e.g. +5.8.3 or 5.8.4, and $archname is a string like sun4-sunos, +determined by Configure. The full definitions of all Configure +variables are in the file Porting/Glossary. - sh Configure -Uusemymalloc + Configure variable Default value + $prefixexp /usr/local + $binexp $prefixexp/bin + $scriptdirexp $prefixexp/bin + $privlibexp $prefixexp/lib/perl5/$version + $archlibexp $prefixexp/lib/perl5/$version/$archname + $man1direxp $prefixexp/man/man1 + $man3direxp $prefixexp/man/man3 + $html1direxp (none) + $html3direxp (none) + +$prefixexp is generated from $prefix, with ~ expansion done to convert home +directories into absolute paths. Similarly for the other variables listed. As +file system calls do not do this, you should always reference the ...exp +variables, to support users who build perl in their home directory. -or you can answer 'n' at the appropriate interactive Configure prompt. +Actually, Configure recognizes the SVR3-style +/usr/local/man/l_man/man1 directories, if present, and uses those +instead. Also, if $prefix contains the string "perl", the library +directories are simplified as described below. For simplicity, only +the common style is shown here. -=item -DPERL_POLLUTE_MALLOC +=item Directories for site-specific add-on files -NOTE: This flag is enabled automatically on some platforms if you just -run Configure to accept all the defaults on those platforms. +After perl is installed, you may later wish to add modules (e.g. from +CPAN) or scripts. Configure will set up the following directories to +be used for installing those add-on modules and scripts. -Perl's malloc family of functions are normally called Perl_malloc(), -Perl_realloc(), Perl_calloc() and Perl_mfree(). -These names do not clash with the system versions of these functions. + Configure variable Default value + $siteprefixexp $prefixexp + $sitebinexp $siteprefixexp/bin + $sitescriptexp $siteprefixexp/bin + $sitelibexp $siteprefixexp/lib/perl5/site_perl/$version + $sitearchexp $siteprefixexp/lib/perl5/site_perl/$version/$archname + $siteman1direxp $siteprefixexp/man/man1 + $siteman3direxp $siteprefixexp/man/man3 + $sitehtml1direxp (none) + $sitehtml3direxp (none) -If this flag is enabled, however, Perl's malloc family of functions -will have the same names as the system versions. This may be required -sometimes if you have libraries that like to free() data that may have -been allocated by Perl_malloc() and vice versa. +By default, ExtUtils::MakeMaker will install architecture-independent +modules into $sitelib and architecture-dependent modules into $sitearch. -Note that enabling this option may sometimes lead to duplicate symbols -from the linker for malloc et al. In such cases, the system probably -does not allow its malloc functions to be fully replaced with custom -versions. +=item Directories for vendor-supplied add-on files -=item -DPERL_DEBUGGING_MSTATS +Lastly, if you are building a binary distribution of perl for +distribution, Configure can optionally set up the following directories +for you to use to distribute add-on modules. -This flag enables debugging mstats, which is required to use the -Devel::Peek::mstat() function. You cannot enable this unless you are -using Perl's malloc, so a typical Configure command would be + Configure variable Default value + $vendorprefixexp (none) + (The next ones are set only if vendorprefix is set.) + $vendorbinexp $vendorprefixexp/bin + $vendorscriptexp $vendorprefixexp/bin + $vendorlibexp + $vendorprefixexp/lib/perl5/vendor_perl/$version + $vendorarchexp + $vendorprefixexp/lib/perl5/vendor_perl/$version/$archname + $vendorman1direxp $vendorprefixexp/man/man1 + $vendorman3direxp $vendorprefixexp/man/man3 + $vendorhtml1direxp (none) + $vendorhtml3direxp (none) - sh Configure -Accflags=-DPERL_DEBUGGING_MSTATS -Dusemymalloc='y' +These are normally empty, but may be set as needed. For example, +a vendor might choose the following settings: -to enable this option. + $prefix /usr + $siteprefix /usr/local + $vendorprefix /usr + +This would have the effect of setting the following: + + $binexp /usr/bin + $scriptdirexp /usr/bin + $privlibexp /usr/lib/perl5/$version + $archlibexp /usr/lib/perl5/$version/$archname + $man1direxp /usr/man/man1 + $man3direxp /usr/man/man3 + + $sitebinexp /usr/local/bin + $sitescriptexp /usr/local/bin + $sitelibexp /usr/local/lib/perl5/site_perl/$version + $sitearchexp /usr/local/lib/perl5/site_perl/$version/$archname + $siteman1direxp /usr/local/man/man1 + $siteman3direxp /usr/local/man/man3 + + $vendorbinexp /usr/bin + $vendorscriptexp /usr/bin + $vendorlibexp /usr/lib/perl5/vendor_perl/$version + $vendorarchexp /usr/lib/perl5/vendor_perl/$version/$archname + $vendorman1direxp /usr/man/man1 + $vendorman3direxp /usr/man/man3 + +Note how in this example, the vendor-supplied directories are in the +/usr hierarchy, while the directories reserved for the end-user are in +the /usr/local hierarchy. + +The entire installed library hierarchy is installed in locations with +version numbers, keeping the installations of different versions distinct. +However, later installations of Perl can still be configured to search the +installed libraries corresponding to compatible earlier versions. +See L<"Coexistence with earlier versions of perl5"> below for more details +on how Perl can be made to search older version directories. + +Of course you may use these directories however you see fit. For +example, you may wish to use $siteprefix for site-specific files that +are stored locally on your own disk and use $vendorprefix for +site-specific files that are stored elsewhere on your organization's +network. One way to do that would be something like + + sh Configure -Dsiteprefix=/usr/local -Dvendorprefix=/usr/share/perl + +=item otherlibdirs + +As a final catch-all, Configure also offers an $otherlibdirs +variable. This variable contains a colon-separated list of additional +directories to add to @INC. By default, it will be empty. +Perl will search these directories (including architecture and +version-specific subdirectories) for add-on modules and extensions. + +For example, if you have a bundle of perl libraries from a previous +installation, perhaps in a strange place: + + Configure -Dotherlibdirs=/usr/lib/perl5/site_perl/5.8.1 + +=item APPLLIB_EXP + +There is one other way of adding paths to @INC at perl build time, and +that is by setting the APPLLIB_EXP C pre-processor token to a colon- +separated list of directories, like this + + sh Configure -Accflags='-DAPPLLIB_EXP=\"/usr/libperl\"' + +The directories defined by APPLLIB_EXP get added to @INC I<first>, +ahead of any others, and so provide a way to override the standard perl +modules should you, for example, want to distribute fixes without +touching the perl distribution proper. And, like otherlib dirs, +version and architecture specific subdirectories are also searched, if +present, at run time. Of course, you can still search other @INC +directories ahead of those in APPLLIB_EXP by using any of the standard +run-time methods: $PERLLIB, $PERL5LIB, -I, use lib, etc. + +=item Man Pages + +In versions 5.005_57 and earlier, the default was to store module man +pages in a version-specific directory, such as +/usr/local/lib/perl5/$version/man/man3. The default for 5.005_58 and +after is /usr/local/man/man3 so that most users can find the man pages +without resetting MANPATH. + +You can continue to use the old default from the command line with + + sh Configure -Dman3dir=/usr/local/lib/perl5/5.8.4/man/man3 + +Some users also prefer to use a .3pm suffix. You can do that with + + sh Configure -Dman3ext=3pm + +Again, these are just the defaults, and can be changed as you run +Configure. + +=item HTML pages + +Currently, the standard perl installation does not do anything with +HTML documentation, but that may change in the future. Further, some +add-on modules may wish to install HTML documents. The html Configure +variables listed above are provided if you wish to specify where such +documents should be placed. The default is "none", but will likely +eventually change to something useful based on user feedback. =back +Some users prefer to append a "/share" to $privlib and $sitelib +to emphasize that those directories can be shared among different +architectures. + +Note that these are just the defaults. You can actually structure the +directories any way you like. They don't even have to be on the same +filesystem. + +Further details about the installation directories, maintenance and +development subversions, and about supporting multiple versions are +discussed in L<"Coexistence with earlier versions of perl5"> below. + +If you specify a prefix that contains the string "perl", then the +library directory structure is slightly simplified. Instead of +suggesting $prefix/lib/perl5/, Configure will suggest $prefix/lib. + +Thus, for example, if you Configure with +-Dprefix=/opt/perl, then the default library directories for 5.8.4 are + + Configure variable Default value + $privlib /opt/perl/lib/5.8.4 + $archlib /opt/perl/lib/5.8.4/$archname + $sitelib /opt/perl/lib/site_perl/5.8.4 + $sitearch /opt/perl/lib/site_perl/5.8.4/$archname + +=head2 Changing the installation directory + +Configure distinguishes between the directory in which perl (and its +associated files) should be installed and the directory in which it +will eventually reside. For most sites, these two are the same; for +sites that use AFS, this distinction is handled automatically. +However, sites that use software such as depot to manage software +packages, or users building binary packages for distribution may also +wish to install perl into a different directory and use that +management software to move perl to its final destination. This +section describes how to do that. + +Suppose you want to install perl under the /tmp/perl5 directory. You +could edit config.sh and change all the install* variables to point to +/tmp/perl5 instead of /usr/local, or you could simply use the +following command line: + + sh Configure -Dinstallprefix=/tmp/perl5 + +(replace /tmp/perl5 by a directory of your choice). + +Beware, though, that if you go to try to install new add-on +modules, they too will get installed in under '/tmp/perl5' if you +follow this example. The next section shows one way of dealing with +that problem. + +=head2 Creating an installable tar archive + +If you need to install perl on many identical systems, it is convenient +to compile it once and create an archive that can be installed on +multiple systems. Suppose, for example, that you want to create an +archive that can be installed in /opt/perl. One way to do that is by +using the DESTDIR variable during C<make install>. The DESTDIR is +automatically prepended to all the installation paths. Thus you +simply do: + + sh Configure -Dprefix=/opt/perl -des + make + make test + make install DESTDIR=/tmp/perl5 + cd /tmp/perl5/opt/perl + tar cvf /tmp/perl5-archive.tar . + +=head2 Site-wide Policy settings + +After Configure runs, it stores a number of common site-wide "policy" +answers (such as installation directories and the local perl contact +person) in the Policy.sh file. If you want to build perl on another +system using the same policy defaults, simply copy the Policy.sh file +to the new system and Configure will use it along with the appropriate +hint file for your system. + +Alternatively, if you wish to change some or all of those policy +answers, you should + + rm -f Policy.sh + +to ensure that Configure doesn't re-use them. + +Further information is in the Policy_sh.SH file itself. + +If the generated Policy.sh file is unsuitable, you may freely edit it +to contain any valid shell commands. It will be run just after the +platform-specific hints files. + +=head2 Disabling older versions of Perl + +Configure will search for binary compatible versions of previously +installed perl binaries in the tree that is specified as target tree +and these will be used by the perl being built. +See L<"Coexistence with earlier versions of perl5"> for more details. + +To disable this use of older perl modules, even completely valid pure perl +modules, you can specify to not include the paths found: + + sh Configure -Dinc_version_list=none ... + +When using the newer perl, you can add these paths again in the +$PERL5LIB environment variable or with perl's -I runtime option. + +=head2 Building Perl outside of the source directory + +Sometimes it is desirable to build Perl in a directory different from +where the sources are, for example if you want to keep your sources +read-only, or if you want to share the sources between different binary +architectures. You can do this (if your file system supports symbolic +links) by + + mkdir /tmp/perl/build/directory + cd /tmp/perl/build/directory + sh /path/to/perl/source/Configure -Dmksymlinks ... + +This will create in /tmp/perl/build/directory a tree of symbolic links +pointing to files in /path/to/perl/source. The original files are left +unaffected. After Configure has finished you can just say + + make + +as usual, and Perl will be built in /tmp/perl/build/directory. + =head2 Building a debugging perl You can run perl scripts under the perl debugger at any time with @@ -1095,9 +1022,8 @@ By default, Configure will offer to build every extension which appears to be supported. For example, Configure will offer to build GDBM_File only if it is able to find the gdbm library. (See examples below.) Configure does not contain code to test for POSIX compliance, so POSIX -is always built by default as well. If you wish to skip POSIX, you can -set the Configure variable useposix=false either in a hint file or from -the Configure command line. +is always built by default. If you wish to skip POSIX, you can +set the Configure variable useposix=false from the Configure command line. If you unpack any additional extensions in the ext/ directory before running Configure, then Configure will offer to build those additional @@ -1118,39 +1044,17 @@ ext/ subdirectory. Even if you do not have dynamic loading, you must still build the DynaLoader extension; you should just build the stub dl_none.xs -version. (Configure will suggest this as the default.) - -To disable certain extensions so that they are not built, use -the -Dnoextensions=... and -Donlyextensions=... options. They both -accept a space-separated list of extensions. The extensions listed -in C<noextensions> are removed from the list of extensions to build, -while the C<onlyextensions> is rather more severe and builds only -the listed extensions. The latter should be used with extreme caution -since certain extensions are used by many other extensions and modules: -such modules include Fcntl and IO. The order of processing these -options is first C<only> (if present), then C<no> (if present). - -Another, older way to turn off various extensions (which is still good -to know if you have to work with older Perl) exists. Here are the -Configure command-line variables you can set to turn off various -extensions. All others are included by default. - - DB_File i_db - DynaLoader (Must always be included as a static extension) - GDBM_File i_gdbm - NDBM_File i_ndbm - ODBM_File i_dbm - POSIX useposix - Opcode useopcode - Socket d_socket - Threads use5005threads - -Thus to skip the NDBM_File extension, you can use - - sh Configure -Ui_ndbm - -Again, this is taken care of automatically if you don't have the ndbm -library. +version. Configure will suggest this as the default. + +To disable certain extensions so that they are not built, use the +-Dnoextensions=... and -Donlyextensions=... options. They both accept +a space-separated list of extensions. The extensions listed in +C<noextensions> are removed from the list of extensions to build, while +the C<onlyextensions> is rather more severe and builds only the listed +extensions. The latter should be used with extreme caution since +certain extensions are used by many other extensions and modules: +examples of such modules include Fcntl and IO. The order of processing +these options is first C<only> (if present), then C<no> (if present). Of course, you may always run Configure interactively and select only the extensions you want. @@ -1182,12 +1086,12 @@ how to obtain the libraries. If your database header (.h) files are not in a directory normally searched by your C compiler, then you will need to include the appropriate -I/your/directory option when prompted by Configure. If -your database library (.a) files are not in a directory normally +your database libraries are not in a directory normally searched by your C compiler and linker, then you will need to include the appropriate -L/your/directory option when prompted by Configure. See the examples below. -=head2 Examples +=head3 Examples =over 4 @@ -1246,23 +1150,23 @@ you have some libraries under /usr/local/ and others under =head2 Building DB, NDBM, and ODBM interfaces with Berkeley DB 3 -Perl interface for DB3 is part of Berkeley DB, but if you want to -compile standard Perl DB/ODBM/NDBM interfaces, you must follow +A Perl interface for DB3 is part of Berkeley DB, but if you want to +compile the standard Perl DB/ODBM/NDBM interfaces, you must follow following instructions. Berkeley DB3 from Sleepycat Software is by default installed without -DB1 compatibility code (needed for DB_File interface) and without +DB1 compatibility code (needed for the DB_File interface) and without links to compatibility files. So if you want to use packages written -for DB/ODBM/NDBM interfaces, you need to configure DB3 with +for the DB/ODBM/NDBM interfaces, you need to configure DB3 with --enable-compat185 (and optionally with --enable-dump185) and create additional references (suppose you are installing DB3 with --prefix=/usr): ln -s libdb-3.so /usr/lib/libdbm.so ln -s libdb-3.so /usr/lib/libndbm.so - echo '#define DB_DBM_HSEARCH 1' >dbm.h + echo '#define DB_DBM_HSEARCH 1' >dbm.h echo '#include <db.h>' >>dbm.h - install -m 0644 dbm.h /usr/include/dbm.h + install -m 0644 dbm.h /usr/include/dbm.h install -m 0644 dbm.h /usr/include/ndbm.h Optionally, if you have compiled with --enable-compat185 (not needed @@ -1277,10 +1181,89 @@ using DB 3.1.17: lib/odbm.............FAILED at test 9 Failed 1/64 tests, 98.44% okay +=head2 Overriding an old config.sh + +If you want to use your old config.sh but override some of the items +with command line options, you need to use B<Configure -O>. + +=head2 GNU-style configure + +If you prefer the GNU-style configure command line interface, you can +use the supplied configure.gnu command, e.g. + + CC=gcc ./configure.gnu + +The configure.gnu script emulates a few of the more common configure +options. Try + + ./configure.gnu --help + +for a listing. + +(The file is called configure.gnu to avoid problems on systems +that would not distinguish the files "Configure" and "configure".) + +See L<Cross-compilation> below for information on cross-compiling. + +=head2 Malloc Issues + +Perl relies heavily on malloc(3) to grow data structures as needed, +so perl's performance can be noticeably affected by the performance of +the malloc function on your system. The perl source is shipped with a +version of malloc that has been optimized for the typical requests from +perl, so there's a chance that it may be both faster and use less memory +than your system malloc. + +However, if your system already has an excellent malloc, or if you are +experiencing difficulties with extensions that use third-party libraries +that call malloc, then you should probably use your system's malloc. +(Or, you might wish to explore the malloc flags discussed below.) + +=over 4 + +=item Using the system malloc + +To build without perl's malloc, you can use the Configure command + + sh Configure -Uusemymalloc + +or you can answer 'n' at the appropriate interactive Configure prompt. + +=item -DPERL_POLLUTE_MALLOC + +NOTE: This flag is enabled automatically on some platforms if you just +run Configure to accept all the defaults on those platforms. + +Perl's malloc family of functions are normally called Perl_malloc(), +Perl_realloc(), Perl_calloc() and Perl_mfree(). +These names do not clash with the system versions of these functions. + +If this flag is enabled, however, Perl's malloc family of functions +will have the same names as the system versions. This may be required +sometimes if you have libraries that like to free() data that may have +been allocated by Perl_malloc() and vice versa. + +Note that enabling this option may sometimes lead to duplicate symbols +from the linker for malloc et al. In such cases, the system probably +does not allow its malloc functions to be fully replaced with custom +versions. + +=item -DPERL_DEBUGGING_MSTATS + +This flag enables debugging mstats, which is required to use the +Devel::Peek::mstat() function. You cannot enable this unless you are +using Perl's malloc, so a typical Configure command would be + + sh Configure -Accflags=-DPERL_DEBUGGING_MSTATS -Dusemymalloc='y' + +to enable this option. + +=back + =head2 What if it doesn't work? If you run into problems, try some of the following ideas. -If none of them help, then see L<"Reporting Problems"> below. +If none of them help, then see L<"Reporting Problems"> above. =over 4 @@ -1450,20 +1433,20 @@ libgdbm under HP-UX 11. Specific information for the OS/2, Plan 9, VMS and Win32 ports is in the corresponding README files and subdirectories. Additional information, including a glossary of all those config.sh variables, is in the Porting -subdirectory. Especially Porting/Glossary should come in handy. +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 various other operating systems. -If you plan to port Perl to a new architecture study carefully the +If you plan to port Perl to a new architecture, study carefully the section titled "Philosophical Issues in Patching and Porting Perl" in the file Porting/pumpkin.pod and the file Porting/patching.pod. Study also how other non-UNIX ports have solved problems. =back -=head1 Adding extra modules to the build +=head2 Adding extra modules to the build You can specify extra modules or module bundles to be fetched from the CPAN and installed as part of the Perl build. Either use the -Dextras=... @@ -1490,10 +1473,10 @@ library installed for the Compress::Zlib, or the Foo database specific headers and libraries installed for the DBD::Foo module. The Configure process or the Perl build process will not help you with these. -=head1 suidperl +=head2 suidperl -suidperl is an optional component, which is built or installed by default. -From perlfaq1: +suidperl is an optional component, which is normally neither built +nor installed by default. From perlfaq1: On some systems, setuid and setgid scripts (scripts written in the C shell, Bourne shell, or Perl, for example, with the @@ -1508,14 +1491,15 @@ Because of the buggy history of suidperl, and the difficulty of properly security auditing as large and complex piece of software as Perl, we cannot recommend using suidperl and the feature should be considered deprecated. -Instead use for example 'sudo': http://www.courtesan.com/sudo/ +Instead, use a tool specifically designed to handle changes in +privileges, such as B<sudo>, http://www.courtesan.com/sudo/ . =head1 make depend This will look for all the includes. The output is stored in makefile. The only difference between Makefile and makefile is the dependencies at the bottom of makefile. If you have to make any changes, you should edit -makefile, not Makefile since the Unix make command reads makefile first. +makefile, not Makefile, since the Unix make command reads makefile first. (On non-Unix systems, the output may be stored in a different file. Check the value of $firstmakefile in your config.sh if in doubt.) @@ -1540,7 +1524,7 @@ These errors are normal, and can be ignored: If you can't compile successfully, try some of the following ideas. If none of them help, and careful reading of the error message and the relevant manual pages on your system doesn't help, -then see L<"Reporting Problems"> below. +then see L<"Reporting Problems"> above. =over 4 @@ -1552,7 +1536,7 @@ for further tips and information. =item extensions If you can successfully build miniperl, but the process crashes -during the building of extensions, you should run +during the building of extensions, run make minitest @@ -1581,7 +1565,7 @@ at Perl startup. If you get varargs problems with gcc, be sure that gcc is installed correctly and that you are not passing -I/usr/include to gcc. When using gcc, you should probably have i_stdarg='define' and i_varargs='undef' -in config.sh. The problem is usually solved by running fixincludes +in config.sh. The problem is usually solved by installing gcc correctly. If you do change config.sh, don't forget to propagate your changes (see L<"Propagating your changes to config.sh"> below). See also the L<"vsprintf"> item below. @@ -1667,7 +1651,7 @@ but without prototypes available, check to see if BIND 8.1 (or possibly other BIND 8 versions) is (or has been) installed. They install header files such as netdb.h into places such as /usr/local/include (or into another directory as specified at build/install time), at least optionally. -Remove them or put them in someplace that isn't in the C preprocessor's +Remove them or put them in someplace that isn't in the C preprocessor's header file include search path (determined by -I options plus defaults, normally /usr/include). @@ -1795,8 +1779,10 @@ archive, please report it to the site's maintainer. =item invalid token: ## -You are using a non-ANSI-compliant C compiler. See L<WARNING: This -version requires a compiler that supports ANSI C.> +You are using a non-ANSI-compliant C compiler. To compile Perl, you +need to use a compiler that supports ANSI C. If there is a README +file for your system, it may have further details on your compiler +options. =item Miscellaneous @@ -1810,7 +1796,7 @@ UTS may need one or more of -K or -g, and undef LSTAT. FreeBSD can fail the ext/IPC/SysV/t/sem.t test if SysV IPC has not been configured in the kernel. Perl tries to detect this, though, and -you will get a message telling what to do. +you will get a message telling you what to do. HP-UX 11 Y2K patch "Y2K-1100 B.11.00.B0125 HP-UX Core OS Year 2000 Patch Bundle" has been reported to break the io/fs test #18 which @@ -1829,7 +1815,7 @@ to avoid the BIND. =head2 Cross-compilation -Starting from Perl 5.8 Perl has the beginnings of cross-compilation +Starting from version 5.8, Perl has the beginnings of cross-compilation support. What is known to work is running Configure in a cross-compilation environment and building the miniperl executable. What is known not to work is building the perl executable because @@ -2088,8 +2074,13 @@ This will put perl into the public directory you specified to Configure; by default this is /usr/local/bin. It will also try to put the man pages in a reasonable place. It will not nroff the man pages, however. You may need to be root to run B<make install>. If you -are not root, you must own the directories in question and you should -ignore any messages about chown not working. +are not root, you must still have permission to install into the directories +in question and you should ignore any messages about chown not working. + +If "make install" just says "`install' is up to date" or something +similar, you may be on a case-insensitive filesystems such as Mac's HFS+, +and you should say "make install-all". (This confusion is brought to you +by the Perl distribution having a file called INSTALL.) =head2 Installing perl under different names @@ -2108,6 +2099,17 @@ This can be useful if you have to install perl as "perl5" (e.g. to avoid conflicts with an ancient version in /usr/bin supplied by your vendor). Without this the versioned binary would be called "perl55.005". +=head2 Installing perl under a different directory + +You can install perl under a different destination directory by using +the DESTDIR variable during C<make install>, with a command like + + make install DESTDIR=/tmp/perl5 + +DESTDIR is automatically prepended to all the installation paths. See +the example in L<"Creating an installable tar archive"> above. + + =head2 Installed files If you want to see exactly what will happen without installing @@ -2192,18 +2194,17 @@ Perl 5.8 is not binary compatible with earlier versions of Perl. 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.004_04) to another similar version (e.g. 5.004_05) without re-compiling +5.8.0) to another similar version (e.g. 5.8.2) without re-compiling all of your add-on extensions. You can also safely leave the old version around in case the new version causes you problems for some reason. For example, if you want to be sure that your script continues to run -with 5.004_04, simply replace the '#!/usr/local/bin/perl' line at the +with 5.8.2, simply replace the '#!/usr/local/bin/perl' line at the top of the script with the particular version you want to run, e.g. -#!/usr/local/bin/perl5.00404. +#!/usr/local/bin/perl5.8.2. -Usually, most extensions will probably not need to be recompiled to -use with a newer version of Perl (the Perl 5.6 to Perl 5.8 transition -being an exception). Here is how it is supposed to work. (These -examples assume you accept all the Configure defaults.) +Usually, most extensions will probably not need to be recompiled to use +with a newer version of Perl Here is how it is supposed to work. +(These examples assume you accept all the Configure defaults.) Suppose you already have version 5.005_03 installed. The directories searched by 5.005_03 are @@ -2280,9 +2281,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.004 + sh Configure -Dprefix=/opt/perl5.8.2 -and adding /opt/perl5.004/bin to the shell PATH variable. Such users +and adding /opt/perl5.8.2/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. @@ -2295,13 +2296,13 @@ seriously consider using a separate directory, since development subversions may not have all the compatibility wrinkles ironed out yet. -=head2 Upgrading from 5.005 or 5.6 to 5.8.0 +=head2 Upgrading from 5.005 or 5.6 to 5.8.4 -B<Perl 5.8.0 is binary incompatible with Perl 5.6.1, 5.6.0, 5.005, +B<Perl 5.8.4 is binary incompatible with Perl 5.6.x, 5.005, and any earlier Perl release.> Perl modules having binary parts (meaning that a C compiler is used) will have to be recompiled to be -used with 5.8.0. If you find you do need to rebuild an extension with -5.8.0, you may safely do so without disturbing the 5.005 or 5.6.0 +used with 5.8.4. If you find you do need to rebuild an extension with +5.8.4, you may safely do so without disturbing the older installations. (See L<"Coexistence with earlier versions of perl5"> above.) @@ -2321,7 +2322,7 @@ perl4.036. That will not be touched by the perl5 installation process. Most perl4 scripts should run just fine under perl5. However, if you have any scripts that require perl4, you can replace the #! line at the top of them by #!/usr/local/bin/perl4.036 (or -whatever the appropriate pathname is). See pod/perltrap.pod for +whatever the appropriate pathname is). See L<perltrap> for possible problems running perl4 scripts under perl5. =head1 cd /usr/include; h2ph *.h sys/*.h @@ -2510,31 +2511,6 @@ size about 1.2MB in its i386 version: /usr/lib/perl/5.6.1/auto/Socket/Socket.so /usr/lib/perl/5.6.1/auto/Socket/Socket.bs -=head1 Reporting Problems - -If you have difficulty building perl, and none of the advice in this file -helps, and careful reading of the error message and the relevant manual -pages on your system doesn't help either, then you should send a message -to either the comp.lang.perl.misc newsgroup or to perlbug@perl.org with -an accurate description of your problem. - -Please include the output of the ./myconfig shell script that comes with -the distribution. Alternatively, you can use the perlbug program that -comes with the perl distribution, but you need to have perl compiled -before you can use it. (If you have not installed it yet, you need to -run C<./perl -Ilib utils/perlbug> instead of a plain C<perlbug>.) - -Please try to make your message brief but clear. Trim out unnecessary -information. Do not include large files (such as config.sh or a complete -Configure or make log) unless absolutely necessary. Do not include a -complete transcript of your build session. Just include the failing -commands, the relevant error messages, and whatever preceding commands -are necessary to give the appropriate context. Plain text should -usually be sufficient--fancy attachments or encodings may actually -reduce the number of people who read your message. Your message -will get relayed to over 400 subscribers around the world so please -try to keep it brief but clear. - =head1 DOCUMENTATION Read the manual entries before running perl. The main documentation diff --git a/gnu/usr.bin/perl/MANIFEST b/gnu/usr.bin/perl/MANIFEST index bba2f042a4d..f561fc6859d 100644 --- a/gnu/usr.bin/perl/MANIFEST +++ b/gnu/usr.bin/perl/MANIFEST @@ -21,6 +21,8 @@ Changes5.6 Differences between 5.005 and 5.6 Changes5.8 Differences between 5.6.0 and 5.8.0 (and maint-5.6) Changes5.8.1 Differences between 5.8.0 and 5.8.1 Changes5.8.2 Differences between 5.8.1 and 5.8.2 +Changes5.8.3 Differences between 5.8.2 and 5.8.3 +Changes5.8.4 Differences between 5.8.3 and 5.8.4 config_h.SH Produces config.h configpm Produces lib/Config.pm Configure Portability tool @@ -497,7 +499,7 @@ ext/IPC/SysV/SysV.xs IPC::SysV extension Perl module ext/IPC/SysV/t/ipcsysv.t See if IPC::SysV works ext/IPC/SysV/t/msg.t IPC::SysV extension Perl module ext/IPC/SysV/t/sem.t IPC::SysV extension Perl module -ext/List/Util/ChangeLog Util extension +ext/List/Util/Changes Util extension ext/List/Util/lib/List/Util.pm List::Util ext/List/Util/lib/Scalar/Util.pm Scalar::Util ext/List/Util/Makefile.PL Util extension @@ -530,6 +532,7 @@ ext/MIME/Base64/QuotedPrint.pm MIME::Base64 extension ext/MIME/Base64/t/base64.t See whether MIME::Base64 works ext/MIME/Base64/t/quoted-print.t See whether MIME::QuotedPrint works ext/MIME/Base64/t/unicode.t See whether MIME::Base64 works +ext/MIME/Base64/t/warn.t See whether MIME::Base64 works ext/NDBM_File/hints/cygwin.pl Hint for NDBM_File for named architecture ext/NDBM_File/hints/dec_osf.pl Hint for NDBM_File for named architecture ext/NDBM_File/hints/dynixptx.pl Hint for NDBM_File for named architecture @@ -658,11 +661,15 @@ ext/Storable/t/dclone.t See if Storable works ext/Storable/t/downgrade.t See if Storable works ext/Storable/t/forgive.t See if Storable works ext/Storable/t/freeze.t See if Storable works +ext/Storable/t/HAS_HOOK.pm For auto-requiring of modules for STORABLE_thaw +ext/Storable/t/HAS_OVERLOAD.pm For auto-requiring of mdoules for overload ext/Storable/t/integer.t See if Storable works ext/Storable/t/interwork56.t Test compatibility kludge for 64bit data under 5.6.x +ext/Storable/t/just_plain_nasty.t See if Storable works ext/Storable/t/lock.t See if Storable works ext/Storable/t/make_56_interwork.pl Make test data for interwork56.t ext/Storable/t/make_downgrade.pl Make test data for downgrade.t +ext/Storable/t/make_overload.pl Make test data for overload.t ext/Storable/t/malice.t See if Storable copes with corrupt files ext/Storable/t/overload.t See if Storable works ext/Storable/t/recurse.t See if Storable works @@ -670,6 +677,7 @@ ext/Storable/t/restrict.t See if Storable works ext/Storable/t/retrieve.t See if Storable works ext/Storable/t/st-dump.pl See if Storable works ext/Storable/t/store.t See if Storable works +ext/Storable/t/threads.t Does Storable work with threads? ext/Storable/t/tied_hook.t See if Storable works ext/Storable/t/tied_items.t See if Storable works ext/Storable/t/tied.t See if Storable works @@ -750,6 +758,7 @@ ext/Time/HiRes/hints/dec_osf.pl Hint for Time::HiRes for named architecture ext/Time/HiRes/hints/dynixptx.pl Hint for Time::HiRes for named architecture ext/Time/HiRes/hints/irix.pl Hint for Time::HiRes for named architecture ext/Time/HiRes/hints/sco.pl Hints for Time::HiRes for named architecture +ext/Time/HiRes/hints/solaris.pl Hints for Time::HiRes for named architecture ext/Time/HiRes/hints/svr4.pl Hints for Time::HiRes for named architecture ext/Time/HiRes/HiRes.pm Time::HiRes extension ext/Time/HiRes/HiRes.xs Time::HiRes extension @@ -780,6 +789,7 @@ ext/XS/APItest/MANIFEST XS::APItest extension ext/XS/APItest/README XS::APItest extension ext/XS/APItest/t/hash.t XS::APItest extension ext/XS/APItest/t/printf.t XS::APItest extension +ext/XS/APItest/t/push.t XS::APItest extension ext/XS/Typemap/Makefile.PL XS::Typemap extension ext/XS/Typemap/README XS::Typemap extension ext/XS/Typemap/stdio.c XS::Typemap extension @@ -810,6 +820,8 @@ h2pl/tcbreak2 cbreak test routine using .pl handy.h Handy definitions hints/3b1cc Hints for named architecture hints/3b1.sh Hints for named architecture +hints/aix_3.sh Hints for named architecture +hints/aix_4.sh Hints for named architecture hints/aix.sh Hints for named architecture hints/altos486.sh Hints for named architecture hints/amigaos.sh Hints for named architecture @@ -1079,6 +1091,21 @@ lib/CPAN/t/signature.t CPAN signature test lib/CPAN/t/vcmp.t See if CPAN the module works lib/ctime.pl A ctime workalike lib/Cwd.pm Various cwd routines (getcwd, fastcwd, chdir) +lib/DBM_Filter/Changes DBM Filter Change history +lib/DBM_Filter/compress.pm DBM Filter to compress keys/values +lib/DBM_Filter/encode.pm DBM Filter for encoding +lib/DBM_Filter/int32.pm DBM Filter for creating int32 keys/values +lib/DBM_Filter/null.pm DBM Filter for null termination +lib/DBM_Filter.pm DBM Filter module +lib/DBM_Filter/t/01error.t test DBM_Filter::null +lib/DBM_Filter/t/02core.t test DBM_Filter::null +lib/DBM_Filter/t/compress.t test DBM_Filter::compress +lib/DBM_Filter/t/encode.t test DBM_Filter::encode +lib/DBM_Filter/t/int32.t test DBM_Filter::int32 +lib/DBM_Filter/t/null.t test DBM_Filter::null +lib/DBM_Filter/t/utf8.t test DBM_Filter::utf8 +lib/DBM_Filter/utf8.pm DBM Filter for UTF-8 Encoding +lib/dbm_filter_util.pl Utility functions used by DBM Filter tests lib/DB.pm Debugger API (draft) lib/DB.t See if DB works lib/Devel/SelfStubber.pm Generate stubs for SelfLoader.pm @@ -1122,7 +1149,7 @@ lib/ExtUtils/MakeMaker/Tutorial.pod Writing a module with MakeMaker lib/ExtUtils/MakeMaker/vmsish.pm Platform agnostic vmsish.pm lib/ExtUtils/Manifest.pm Utilities to write MANIFEST files lib/ExtUtils/MANIFEST.SKIP The default MANIFEST.SKIP -lib/ExtUtils/META.yml ExtUtils::MakeMaker metadata +lib/ExtUtils/META.yml ExtUtils::MakeMaker metadata lib/ExtUtils/Mkbootstrap.pm Writes a bootstrap file (see MakeMaker) lib/ExtUtils/Mksymlists.pm Writes a linker options file for extensions lib/ExtUtils/MM_Any.pm MakeMaker methods for Any OS @@ -1147,7 +1174,7 @@ lib/ExtUtils/t/00compile.t See if MakeMaker modules compile lib/ExtUtils/t/00setup_dummy.t Setup MakeMaker test module lib/ExtUtils/t/backwards.t Check MakeMaker's backwards compatibility lib/ExtUtils/t/basic.t See if MakeMaker can build a module -lib/ExtUtils/t/bytes.t Test ExtUtils::MakeMaker::bytes +lib/ExtUtils/t/bytes.t Test ExtUtils::MakeMaker::bytes lib/ExtUtils/t/Command.t See if ExtUtils::Command works (Win32 only) lib/ExtUtils/t/Constant.t See if ExtUtils::Constant works lib/ExtUtils/t/Embed.t See if ExtUtils::Embed and embedding works @@ -1268,11 +1295,17 @@ lib/hostname.pl Old hostname code lib/I18N/Collate.pm Routines to do strxfrm-based collation lib/I18N/Collate.t See if I18N::Collate works lib/I18N/LangTags/ChangeLog I18N::LangTags +lib/I18N/LangTags/Detect.pm Detect language preferences lib/I18N/LangTags/List.pm List of tags for human languages lib/I18N/LangTags.pm I18N::LangTags lib/I18N/LangTags/README I18N::LangTags -lib/I18N/LangTags/t/01test.t See whether I18N::LangTags works -lib/I18N/LangTags/t/02decency.t See if I18N::LangTags::List::is_decent works +lib/I18N/LangTags/t/01_about_verbose.t See whether I18N::LangTags works +lib/I18N/LangTags/t/05_main.t See whether I18N::LangTags works +lib/I18N/LangTags/t/07_listy.t See whether I18N::LangTags works +lib/I18N/LangTags/t/10_http.t See whether I18N::LangTags works +lib/I18N/LangTags/t/50_super.t See whether I18N::LangTags works +lib/I18N/LangTags/t/55_supers_strict.t See whether I18N::LangTags works +lib/I18N/LangTags/t/80_all_env.t See whether I18N::LangTags works lib/if.pm For "use if" lib/if.t Tests for "use if" lib/importenv.pl Perl routine to get environment into variables @@ -1283,7 +1316,6 @@ lib/IPC/Open2.pm Open a two-ended pipe lib/IPC/Open2.t See if IPC::Open2 works lib/IPC/Open3.pm Open a three-ended pipe! lib/IPC/Open3.t See if IPC::Open3 works -lib/IPC/SysV.t See if IPC::SysV works lib/less.pm For "use less" lib/less.t See if less support works lib/lib_pm.PL For "use lib", produces lib/lib.pm @@ -1312,11 +1344,13 @@ lib/Locale/Maketext/Guts.pm Locale::Maketext lib/Locale/Maketext.pm Locale::Maketext lib/Locale/Maketext.pod Locale::Maketext documentation lib/Locale/Maketext/README Locale::Maketext -lib/Locale/Maketext/t/00about.t See if Locale::Maketext works -lib/Locale/Maketext/t/01make.t See if Locale::Maketext works -lib/Locale/Maketext/t/02get.t See if Locale::Maketext works -lib/Locale/Maketext/t/03http.t See if Locale::Maketext works -lib/Locale/Maketext/t/90utf8.t Locale::Maketext +lib/Locale/Maketext/t/01_about_verbose.t See if Locale::Maketext works +lib/Locale/Maketext/t/10_make.t See if Locale::Maketext works +lib/Locale/Maketext/t/20_get.t See if Locale::Maketext works +lib/Locale/Maketext/t/40_super.t See if Locale::Maketext works +lib/Locale/Maketext/t/50_super.t See if Locale::Maketext works +lib/Locale/Maketext/t/60_super.t See if Locale::Maketext works +lib/Locale/Maketext/t/90_utf8.t See if Locale::Maketext works lib/Locale/Maketext/TPJ13.pod Locale::Maketext documentation article lib/locale.pm For "use locale" lib/Locale/Script.pm Locale::Codes @@ -1345,6 +1379,7 @@ lib/Math/BigInt/t/config.t Test Math::BigInt->config() lib/Math/BigInt/t/constant.t Test Math::BigInt/BigFloat under :constant lib/Math/BigInt/t/const_mbf.t Test Math::BigInt lib/Math/BigInt/t/downgrade.t Test if use Math::BigInt(); under downgrade works +lib/Math/BigInt/t/_e_math.t Helper routine in BigFloat for _e math lib/Math/BigInt/t/fallback.t Test Math::BigInt lib/Math/BigInt/t/inf_nan.t Special tests for inf and NaN handling lib/Math/BigInt/t/isa.t Test for Math::BigInt inheritance @@ -1419,7 +1454,7 @@ lib/Memoize/t/tie_sdbm.t Memoize SDBM interface test lib/Memoize/t/tie_storable.t Memoize Storable interface test lib/Memoize/t/tie.t Memoize tied file test lib/Memoize/t/unmemoize.t Memoize 'unmemoize' function test -lib/Net/ChangeLog.libnet libnet +lib/Net/Changes.libnet libnet lib/Net/Cmd.pm libnet lib/Net/Config.eg libnet lib/Net/Config.pm libnet @@ -1470,6 +1505,7 @@ lib/Net/servent.pm By-name interface to Perl's builtin getserv* lib/Net/servent.t See if Net::servtent works lib/Net/SMTP.pm libnet lib/Net/t/config.t libnet +lib/Net/t/datasend.t libnet lib/Net/t/ftp.t libnet lib/Net/t/hostname.t libnet lib/Net/Time.pm libnet @@ -1511,6 +1547,7 @@ lib/Pod/ParseUtils.pm Pod-Parser - pod utility functions lib/Pod/Perldoc/BaseTo.pm utility module for perldoc lib/Pod/Perldoc/GetOptsOO.pm options parsing for perldoc lib/Pod/Perldoc.pm guts of the 'perldoc' utility +lib/Pod/Perldoc/t/01_about_verbose.t test Pod::Perldoc lib/Pod/Perldoc/t/checkerbasic.t test Pod::Perldoc::ToChecker lib/Pod/Perldoc/ToChecker.pm let perldoc check POD for errors lib/Pod/Perldoc/ToMan.pm render POD as man pages @@ -1552,6 +1589,7 @@ lib/Pod/t/text-errors.t podlators test lib/Pod/t/text-options.t podlators test lib/Pod/t/text.t podlators test lib/Pod/t/Usage.t See if Pod::Usage works +lib/Pod/t/user.t See if Pod::LaTeX works lib/Pod/t/utils.t Test for Pod::ParseUtils lib/Pod/Usage.pm Pod-Parser - print usage messages lib/pwd.pl Routines to keep track of PWD environment variable @@ -1656,8 +1694,10 @@ lib/Test/Simple/t/todo.t Test::More test, TODO tests lib/Test/Simple/t/undef.t Test::More test, undefs don't cause warnings lib/Test/Simple/t/useing.t Test::More test, compile test lib/Test/Simple/t/use_ok.t Test::More test, use_ok() +lib/Test/t/05_about_verbose.t See if Test works lib/Test/t/fail.t See if Test works lib/Test/t/mix.t See if Test works +lib/Test/t/multiline.t See if Test works lib/Test/t/onfail.t See if Test works lib/Test/t/qr.t See if Test works lib/Test/t/skip.t See if Test works @@ -1777,357 +1817,27 @@ 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/ArabLink.pl Unicode character database -lib/unicore/ArabLnkGrp.pl Unicode character database lib/unicore/BidiMirroring.txt Unicode character database -lib/unicore/Bidirectional.pl Unicode character database -lib/unicore/Blocks.pl Unicode character database lib/unicore/Blocks.txt Unicode character database -lib/unicore/Canonical.pl Unicode character database lib/unicore/CaseFolding.txt Unicode character database -lib/unicore/Category.pl Unicode character database -lib/unicore/CombiningClass.pl Unicode character database lib/unicore/CompositionExclusions.txt Unicode character database -lib/unicore/Decomposition.pl Unicode character database lib/unicore/EastAsianWidth.txt Unicode character database -lib/unicore/Exact.pl Unicode character database lib/unicore/HangulSyllableType.txt Unicode character database lib/unicore/Index.txt Unicode character database -lib/unicore/JamoShort.pl Unicode character database lib/unicore/Jamo.txt Unicode character database -lib/unicore/Lbrk.pl Unicode character database -lib/unicore/lib/Alnum.pl Unicode character database -lib/unicore/lib/Alphabet.pl Unicode character database -lib/unicore/lib/Alpha.pl Unicode character database -lib/unicore/lib/Any.pl Unicode character database -lib/unicore/lib/Arabic.pl Unicode character database -lib/unicore/lib/Armenian.pl Unicode character database -lib/unicore/lib/AsciiHex.pl Unicode character database -lib/unicore/lib/ASCII.pl Unicode character database -lib/unicore/lib/Assigned.pl Unicode character database -lib/unicore/lib/Bengali.pl Unicode character database -lib/unicore/lib/BidiAL.pl Unicode character database -lib/unicore/lib/BidiAN.pl Unicode character database -lib/unicore/lib/BidiBN.pl Unicode character database -lib/unicore/lib/BidiB.pl Unicode character database -lib/unicore/lib/BidiCont.pl Unicode character database -lib/unicore/lib/BidiCS.pl Unicode character database -lib/unicore/lib/BidiEN.pl Unicode character database -lib/unicore/lib/BidiES.pl Unicode character database -lib/unicore/lib/BidiET.pl Unicode character database -lib/unicore/lib/BidiL.pl Unicode character database -lib/unicore/lib/BidiLRE.pl Unicode character database -lib/unicore/lib/BidiLRO.pl Unicode character database -lib/unicore/lib/BidiNSM.pl Unicode character database -lib/unicore/lib/BidiON.pl Unicode character database -lib/unicore/lib/BidiPDF.pl Unicode character database -lib/unicore/lib/BidiRLE.pl Unicode character database -lib/unicore/lib/BidiRLO.pl Unicode character database -lib/unicore/lib/BidiR.pl Unicode character database -lib/unicore/lib/BidiS.pl Unicode character database -lib/unicore/lib/BidiWS.pl Unicode character database -lib/unicore/lib/Blank.pl Unicode character database -lib/unicore/lib/Bopomofo.pl Unicode character database -lib/unicore/lib/Braille.pl Unicode character database -lib/unicore/lib/Buhid.pl Unicode character database -lib/unicore/lib/Canadian.pl Unicode character database -lib/unicore/lib/_CanonDC.pl Unicode character database -lib/unicore/lib/Canon.pl Unicode character database -lib/unicore/lib/_CaseIgn.pl Unicode character database -lib/unicore/lib/Cc.pl Unicode character database -lib/unicore/lib/Cf.pl Unicode character database -lib/unicore/lib/Cherokee.pl Unicode character database -lib/unicore/lib/Cn.pl Unicode character database -lib/unicore/lib/Cntrl.pl Unicode character database -lib/unicore/lib/_CombAbo.pl Unicode character database -lib/unicore/lib/Common.pl Unicode character database -lib/unicore/lib/Compat.pl Unicode character database -lib/unicore/lib/Co.pl Unicode character database -lib/unicore/lib/C.pl Unicode character database -lib/unicore/lib/Cs.pl Unicode character database -lib/unicore/lib/Cypriot.pl Unicode character database -lib/unicore/lib/Cyrillic.pl Unicode character database -lib/unicore/lib/Dash.pl Unicode character database -lib/unicore/lib/DCcircle.pl Unicode character database -lib/unicore/lib/DCcompat.pl Unicode character database -lib/unicore/lib/DCfinal.pl Unicode character database -lib/unicore/lib/DCfont.pl Unicode character database -lib/unicore/lib/DCfracti.pl Unicode character database -lib/unicore/lib/DCinitia.pl Unicode character database -lib/unicore/lib/DCisolat.pl Unicode character database -lib/unicore/lib/DCmedial.pl Unicode character database -lib/unicore/lib/DCnarrow.pl Unicode character database -lib/unicore/lib/DCnoBrea.pl Unicode character database -lib/unicore/lib/DCsmall.pl Unicode character database -lib/unicore/lib/DCsquare.pl Unicode character database -lib/unicore/lib/DCsub.pl Unicode character database -lib/unicore/lib/DCsuper.pl Unicode character database -lib/unicore/lib/DCvertic.pl Unicode character database -lib/unicore/lib/DCwide.pl Unicode character database -lib/unicore/lib/Deprecat.pl Unicode character database -lib/unicore/lib/Deseret.pl Unicode character database -lib/unicore/lib/Devanaga.pl Unicode character database -lib/unicore/lib/Diacriti.pl Unicode character database -lib/unicore/lib/Digit.pl Unicode character database -lib/unicore/lib/Ethiopic.pl Unicode character database -lib/unicore/lib/Extender.pl Unicode character database -lib/unicore/lib/Georgian.pl Unicode character database -lib/unicore/lib/Gothic.pl Unicode character database -lib/unicore/lib/Grapheme.pl Unicode character database -lib/unicore/lib/Graph.pl Unicode character database -lib/unicore/lib/Greek.pl Unicode character database -lib/unicore/lib/Gujarati.pl Unicode character database -lib/unicore/lib/Gurmukhi.pl Unicode character database -lib/unicore/lib/Hangul.pl Unicode character database -lib/unicore/lib/Han.pl Unicode character database -lib/unicore/lib/Hanunoo.pl Unicode character database -lib/unicore/lib/Hebrew.pl Unicode character database -lib/unicore/lib/HexDigit.pl Unicode character database -lib/unicore/lib/Hiragana.pl Unicode character database -lib/unicore/lib/Hyphen.pl Unicode character database -lib/unicore/lib/IdContin.pl Unicode character database -lib/unicore/lib/Ideograp.pl Unicode character database -lib/unicore/lib/IdsBinar.pl Unicode character database -lib/unicore/lib/IdStart.pl Unicode character database -lib/unicore/lib/IdsTrina.pl Unicode character database -lib/unicore/lib/InAegean.pl Unicode character database -lib/unicore/lib/InAlphab.pl Unicode character database -lib/unicore/lib/InArabi2.pl Unicode character database -lib/unicore/lib/InArabi3.pl Unicode character database -lib/unicore/lib/InArabic.pl Unicode character database -lib/unicore/lib/InArmeni.pl Unicode character database -lib/unicore/lib/InArrows.pl Unicode character database -lib/unicore/lib/InBasicL.pl Unicode character database -lib/unicore/lib/InBengal.pl Unicode character database -lib/unicore/lib/InBlockE.pl Unicode character database -lib/unicore/lib/InBopom2.pl Unicode character database -lib/unicore/lib/InBopomo.pl Unicode character database -lib/unicore/lib/InBoxDra.pl Unicode character database -lib/unicore/lib/InBraill.pl Unicode character database -lib/unicore/lib/InBuhid.pl Unicode character database -lib/unicore/lib/InByzant.pl Unicode character database -lib/unicore/lib/InCherok.pl Unicode character database -lib/unicore/lib/InCjkCo2.pl Unicode character database -lib/unicore/lib/InCjkCo3.pl Unicode character database -lib/unicore/lib/InCjkCo4.pl Unicode character database -lib/unicore/lib/InCjkCom.pl Unicode character database -lib/unicore/lib/InCjkRad.pl Unicode character database -lib/unicore/lib/InCjkSym.pl Unicode character database -lib/unicore/lib/InCjkUn2.pl Unicode character database -lib/unicore/lib/InCjkUn3.pl Unicode character database -lib/unicore/lib/InCjkUni.pl Unicode character database -lib/unicore/lib/InCombi2.pl Unicode character database -lib/unicore/lib/InCombi3.pl Unicode character database -lib/unicore/lib/InCombin.pl Unicode character database -lib/unicore/lib/InContro.pl Unicode character database -lib/unicore/lib/InCurren.pl Unicode character database -lib/unicore/lib/InCyprio.pl Unicode character database -lib/unicore/lib/InCyril2.pl Unicode character database -lib/unicore/lib/InCyrill.pl Unicode character database -lib/unicore/lib/InDesere.pl Unicode character database -lib/unicore/lib/InDevana.pl Unicode character database -lib/unicore/lib/InDingba.pl Unicode character database -lib/unicore/lib/InEnclo2.pl Unicode character database -lib/unicore/lib/InEnclos.pl Unicode character database -lib/unicore/lib/InEthiop.pl Unicode character database -lib/unicore/lib/InGenera.pl Unicode character database -lib/unicore/lib/InGeomet.pl Unicode character database -lib/unicore/lib/InGeorgi.pl Unicode character database -lib/unicore/lib/InGothic.pl Unicode character database -lib/unicore/lib/InGreekA.pl Unicode character database -lib/unicore/lib/InGreekE.pl Unicode character database -lib/unicore/lib/InGreek.pl Unicode character database -lib/unicore/lib/InGujara.pl Unicode character database -lib/unicore/lib/InGurmuk.pl Unicode character database -lib/unicore/lib/InHalfwi.pl Unicode character database -lib/unicore/lib/InHangu2.pl Unicode character database -lib/unicore/lib/InHangu3.pl Unicode character database -lib/unicore/lib/InHangul.pl Unicode character database -lib/unicore/lib/InHanuno.pl Unicode character database -lib/unicore/lib/InHebrew.pl Unicode character database -lib/unicore/lib/Inherite.pl Unicode character database -lib/unicore/lib/InHighPr.pl Unicode character database -lib/unicore/lib/InHighSu.pl Unicode character database -lib/unicore/lib/InHiraga.pl Unicode character database -lib/unicore/lib/InIdeogr.pl Unicode character database -lib/unicore/lib/InIpaExt.pl Unicode character database -lib/unicore/lib/InKanbun.pl Unicode character database -lib/unicore/lib/InKangxi.pl Unicode character database -lib/unicore/lib/InKannad.pl Unicode character database -lib/unicore/lib/InKatak2.pl Unicode character database -lib/unicore/lib/InKataka.pl Unicode character database -lib/unicore/lib/InKhmer.pl Unicode character database -lib/unicore/lib/InKhmerS.pl Unicode character database -lib/unicore/lib/InLao.pl Unicode character database -lib/unicore/lib/InLatin1.pl Unicode character database -lib/unicore/lib/InLatin2.pl Unicode character database -lib/unicore/lib/InLatin3.pl Unicode character database -lib/unicore/lib/InLatinE.pl Unicode character database -lib/unicore/lib/InLetter.pl Unicode character database -lib/unicore/lib/InLimbu.pl Unicode character database -lib/unicore/lib/InLinea2.pl Unicode character database -lib/unicore/lib/InLinear.pl Unicode character database -lib/unicore/lib/InLowSur.pl Unicode character database -lib/unicore/lib/InMalaya.pl Unicode character database -lib/unicore/lib/InMathe2.pl Unicode character database -lib/unicore/lib/InMathem.pl Unicode character database -lib/unicore/lib/InMisce2.pl Unicode character database -lib/unicore/lib/InMisce3.pl Unicode character database -lib/unicore/lib/InMisce4.pl Unicode character database -lib/unicore/lib/InMisce5.pl Unicode character database -lib/unicore/lib/InMiscel.pl Unicode character database -lib/unicore/lib/InMongol.pl Unicode character database -lib/unicore/lib/InMusica.pl Unicode character database -lib/unicore/lib/InMyanma.pl Unicode character database -lib/unicore/lib/InNumber.pl Unicode character database -lib/unicore/lib/InOgham.pl Unicode character database -lib/unicore/lib/InOldIta.pl Unicode character database -lib/unicore/lib/InOptica.pl Unicode character database -lib/unicore/lib/InOriya.pl Unicode character database -lib/unicore/lib/InOsmany.pl Unicode character database -lib/unicore/lib/InPhonet.pl Unicode character database -lib/unicore/lib/InPrivat.pl Unicode character database -lib/unicore/lib/InRunic.pl Unicode character database -lib/unicore/lib/InShavia.pl Unicode character database -lib/unicore/lib/InSinhal.pl Unicode character database -lib/unicore/lib/InSmallF.pl Unicode character database -lib/unicore/lib/InSpacin.pl Unicode character database -lib/unicore/lib/InSpecia.pl Unicode character database -lib/unicore/lib/InSupers.pl Unicode character database -lib/unicore/lib/InSuppl2.pl Unicode character database -lib/unicore/lib/InSuppl3.pl Unicode character database -lib/unicore/lib/InSuppl4.pl Unicode character database -lib/unicore/lib/InSuppl5.pl Unicode character database -lib/unicore/lib/InSupple.pl Unicode character database -lib/unicore/lib/InSyriac.pl Unicode character database -lib/unicore/lib/InTagalo.pl Unicode character database -lib/unicore/lib/InTagban.pl Unicode character database -lib/unicore/lib/InTags.pl Unicode character database -lib/unicore/lib/InTaiLe.pl Unicode character database -lib/unicore/lib/InTaiXua.pl Unicode character database -lib/unicore/lib/InTamil.pl Unicode character database -lib/unicore/lib/InTelugu.pl Unicode character database -lib/unicore/lib/InThaana.pl Unicode character database -lib/unicore/lib/InThai.pl Unicode character database -lib/unicore/lib/InTibeta.pl Unicode character database -lib/unicore/lib/InUgarit.pl Unicode character database -lib/unicore/lib/InUnifie.pl Unicode character database -lib/unicore/lib/InVaria2.pl Unicode character database -lib/unicore/lib/InVariat.pl Unicode character database -lib/unicore/lib/InYijing.pl Unicode character database -lib/unicore/lib/InYiRadi.pl Unicode character database -lib/unicore/lib/InYiSyll.pl Unicode character database -lib/unicore/lib/JoinCont.pl Unicode character database -lib/unicore/lib/Kannada.pl Unicode character database -lib/unicore/lib/Katakana.pl Unicode character database -lib/unicore/lib/Khmer.pl Unicode character database -lib/unicore/lib/Lao.pl Unicode character database -lib/unicore/lib/Latin.pl Unicode character database -lib/unicore/lib/Limbu.pl Unicode character database -lib/unicore/lib/LinearB.pl Unicode character database -lib/unicore/lib/Ll.pl Unicode character database -lib/unicore/lib/Lm.pl Unicode character database -lib/unicore/lib/LogicalO.pl Unicode character database -lib/unicore/lib/Lo.pl Unicode character database -lib/unicore/lib/Lowercas.pl Unicode character database -lib/unicore/lib/Lower.pl Unicode character database -lib/unicore/lib/L.pl Unicode character database -lib/unicore/lib/L_.pl Unicode character database -lib/unicore/lib/Lt.pl Unicode character database -lib/unicore/lib/Lu.pl Unicode character database -lib/unicore/lib/Malayala.pl Unicode character database -lib/unicore/lib/Math.pl Unicode character database -lib/unicore/lib/Mc.pl Unicode character database -lib/unicore/lib/Me.pl Unicode character database -lib/unicore/lib/Mirrored.pl Unicode character database -lib/unicore/lib/Mn.pl Unicode character database -lib/unicore/lib/Mongolia.pl Unicode character database -lib/unicore/lib/M.pl Unicode character database -lib/unicore/lib/Myanmar.pl Unicode character database -lib/unicore/lib/Nd.pl Unicode character database -lib/unicore/lib/Nl.pl Unicode character database -lib/unicore/lib/Nonchara.pl Unicode character database -lib/unicore/lib/No.pl Unicode character database -lib/unicore/lib/N.pl Unicode character database -lib/unicore/lib/Ogham.pl Unicode character database -lib/unicore/lib/OldItali.pl Unicode character database -lib/unicore/lib/Oriya.pl Unicode character database -lib/unicore/lib/Osmanya.pl Unicode character database -lib/unicore/lib/OtherAlp.pl Unicode character database -lib/unicore/lib/OtherDef.pl Unicode character database -lib/unicore/lib/OtherGra.pl Unicode character database -lib/unicore/lib/OtherIdS.pl Unicode character database -lib/unicore/lib/OtherLow.pl Unicode character database -lib/unicore/lib/OtherMat.pl Unicode character database -lib/unicore/lib/OtherUpp.pl Unicode character database -lib/unicore/lib/Pc.pl Unicode character database -lib/unicore/lib/Pd.pl Unicode character database -lib/unicore/lib/Pe.pl Unicode character database -lib/unicore/lib/Pf.pl Unicode character database -lib/unicore/lib/Pi.pl Unicode character database -lib/unicore/lib/Po.pl Unicode character database -lib/unicore/lib/P.pl Unicode character database -lib/unicore/lib/Print.pl Unicode character database -lib/unicore/lib/Ps.pl Unicode character database -lib/unicore/lib/Punct.pl Unicode character database -lib/unicore/lib/Quotatio.pl Unicode character database -lib/unicore/lib/Radical.pl Unicode character database -lib/unicore/lib/Runic.pl Unicode character database -lib/unicore/lib/Sc.pl Unicode character database -lib/unicore/lib/Shavian.pl Unicode character database -lib/unicore/lib/Sinhala.pl Unicode character database -lib/unicore/lib/Sk.pl Unicode character database -lib/unicore/lib/Sm.pl Unicode character database -lib/unicore/lib/SoftDott.pl Unicode character database -lib/unicore/lib/So.pl Unicode character database -lib/unicore/lib/SpacePer.pl Unicode character database -lib/unicore/lib/Space.pl Unicode character database -lib/unicore/lib/S.pl Unicode character database -lib/unicore/lib/Syriac.pl Unicode character database -lib/unicore/lib/Tagalog.pl Unicode character database -lib/unicore/lib/Tagbanwa.pl Unicode character database -lib/unicore/lib/TaiLe.pl Unicode character database -lib/unicore/lib/Tamil.pl Unicode character database -lib/unicore/lib/Telugu.pl Unicode character database -lib/unicore/lib/Terminal.pl Unicode character database -lib/unicore/lib/Thaana.pl Unicode character database -lib/unicore/lib/Thai.pl Unicode character database -lib/unicore/lib/Tibetan.pl Unicode character database -lib/unicore/lib/Title.pl Unicode character database -lib/unicore/lib/Ugaritic.pl Unicode character database -lib/unicore/lib/UnifiedI.pl Unicode character database -lib/unicore/lib/Uppercas.pl Unicode character database -lib/unicore/lib/Upper.pl Unicode character database -lib/unicore/lib/WhiteSpa.pl Unicode character database -lib/unicore/lib/Word.pl Unicode character database -lib/unicore/lib/XDigit.pl Unicode character database -lib/unicore/lib/Yi.pl Unicode character database -lib/unicore/lib/Zl.pl Unicode character database -lib/unicore/lib/Z.pl Unicode character database -lib/unicore/lib/Zp.pl Unicode character database -lib/unicore/lib/Zs.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/Name.pl Unicode character database lib/unicore/NamesList.txt Unicode character database lib/unicore/NormalizationCorrections.txt Unicode character database -lib/unicore/Number.pl Unicode character database -lib/unicore/Properties Built-in \p{...} / \P{...} property list lib/unicore/PropertyAliases.txt Unicode character database lib/unicore/PropList.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/Scripts.pl 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/To/Digit.pl Unicode character database -lib/unicore/To/Fold.pl Unicode character database -lib/unicore/To/Lower.pl Unicode character database -lib/unicore/To/Title.pl Unicode character database -lib/unicore/To/Upper.pl Unicode character database +lib/unicore/StandardizedVariants.txt Unicode character database lib/unicore/UnicodeData.txt Unicode character database lib/unicore/version The version of the Unicode lib/UNIVERSAL.pm Base class for ALL classes @@ -2146,7 +1856,6 @@ lib/vmsish.t Tests for vmsish.pm lib/warnings.pm For "use warnings" lib/warnings/register.pm For "use warnings::register" lib/warnings.t See if warning controls work -lib/Win32.pod Documentation for Win32 extras locale.c locale-specific utility functions makeaperl.SH perl script that produces a new perl binary makedef.pl Create symbol export lists for linking @@ -2344,6 +2053,8 @@ pod/perl573delta.pod Perl changes in version 5.7.3 pod/perl581delta.pod Perl changes in version 5.8.1 pod/perl582delta.pod Perl changes in version 5.8.2 pod/perl583delta.pod Perl changes in version 5.8.3 +pod/perl584delta.pod Perl changes in version 5.8.4 +pod/perl585delta.pod Perl changes in version 5.8.5 pod/perl58delta.pod Perl changes in version 5.8.0 pod/perlapio.pod Perl internal IO abstraction interface pod/perlapi.pod Perl API listing (autogenerated) @@ -2444,12 +2155,14 @@ pod/splitpod Splits perlfunc into multiple pod pages Policy_sh.SH Hold site-wide preferences between Configure runs. Porting/apply Apply patches sent by mail Porting/check83.pl Check whether we are 8.3-friendly +Porting/checkcase.pl Check whether we are case-insensitive-fs-friendly Porting/checkURL.pl Check whether we have working URLs Porting/checkVERSION.pl Check whether we have $VERSIONs Porting/cmpVERSION.pl Compare whether two trees have changed modules Porting/config_H Sample config.h Porting/config.sh Sample config.sh Porting/Contract Social contract for contributed modules in Perl core +Porting/corecpan.pl Reports outdated dual-lived modules Porting/curliff.pl Curliff or liff your curliffable files. Porting/findrfuncs Find reentrant variants of functions used in an executable Porting/findvars Find occurrences of words @@ -2485,7 +2198,7 @@ pp_sys.c Push/Pop code for system interaction proto.h Prototypes qnx/ar QNX implementation of "ar" utility qnx/cpp QNX implementation of preprocessor filter -README The Instructions +README The Instructions README.aix Perl notes for AIX README.amiga Perl notes for AmigaOS README.apollo Perl notes for Apollo DomainOS @@ -2506,7 +2219,7 @@ README.ko Perl for Korean (in EUC-KR) README.machten Perl notes for Power MachTen README.macos Perl notes for Mac OS (Classic) README.macosx Perl notes for Mac OS X -README.micro Notes about microperl +README.micro Notes about microperl README.mint Perl notes for MiNT README.mpeix Perl notes for MPE/iX README.netware Perl notes for NetWare @@ -2523,7 +2236,7 @@ README.vmesa Perl notes for VM/ESA README.vms Perl notes for VMS README.vos Perl notes for Stratus VOS README.win32 Perl notes for Windows -README.Y2K Notes about Year 2000 concerns +README.Y2K Notes about Year 2000 concerns reentr.c Reentrant interfaces reentr.h Reentrant interfaces reentr.inc Reentrant interfaces @@ -2573,6 +2286,7 @@ t/comp/require.t See if require works t/comp/script.t See if script invocation works t/comp/term.t See if more terms work t/comp/use.t See if pragmata work +t/comp/utf.t See if UTFs work t/harness Finer diagnostics from test suite thrdvar.h Per-thread variables thread.h Threading header @@ -2843,6 +2557,7 @@ t/op/universal.t See if UNIVERSAL class works t/op/unshift.t See if unshift works t/op/utf8decode.t See if UTF-8 decoding works t/op/utfhash.t See if utf8 keys in hashes behave +t/op/utftaint.t See if utf8 and taint work together t/op/vec.t See if vectors work t/op/ver.t See if v-strings and the %v format flag work t/op/wantarray.t See if wantarray works @@ -2887,6 +2602,7 @@ t/run/exit.t Test perl's exit status. t/run/fresh_perl.t Tests that require a fresh perl. t/run/noswitch.t Test aliasing ARGV for other switch tests t/run/runenv.t Test if perl honors its environment variables. +t/run/switch0.t Test the -0 switch t/run/switcha.t Test the -a switch t/run/switchC.t Test the -C switch t/run/switchd.t Test the -d switch @@ -2904,6 +2620,8 @@ t/TEST The regression tester t/TestInit.pm Preamble library for core tests t/test.pl Simple testing library t/uni/case.pl See if Unicode casing works +t/uni/chomp.t See if Unicode chomp works +t/uni/class.t See if Unicode classes work (\p) t/uni/fold.t See if Unicode folding works t/uni/lower.t See if Unicode casing works t/uni/sprintf.t See if Unicode sprintf works @@ -2914,6 +2632,7 @@ t/uni/tr_sjis.t See if Unicode tr/// works t/uni/tr_utf8.t See if Unicode tr/// works t/uni/upper.t See if Unicode casing works t/uni/write.t See if Unicode formats work +t/win32/getosversion.t Test if Win32::GetOSVersion() works t/win32/longpath.t Test if Win32::GetLongPathName() works t/win32/system.t See if system works in Win* t/win32/system_tests Test runner for system.t @@ -3022,6 +2741,9 @@ win32/config.vc Win32 base line config.sh (Visual C++ build) win32/config.vc64 Win64 base line config.sh (Visual C++ build) win32/distclean.bat Remove _ALL_ files not listed here in MANIFEST win32/dl_win32.xs Win32 port +win32/ext/Win32/Makefile.PL Win32 extension makefile writer +win32/ext/Win32/Win32.pm Win32 extension Perl module +win32/ext/Win32/Win32.xs Win32 extension external subroutines win32/fcrypt.c crypt() implementation win32/FindExt.pm Scan for extensions win32/genmk95.pl Perl code to generate command.com-usable makefile.95 @@ -3031,7 +2753,9 @@ win32/include/netdb.h Win32 port win32/include/sys/socket.h Win32 port win32/Makefile Win32 makefile for NMAKE (Visual C++ build) win32/makefile.mk Win32 makefile for DMAKE (BC++, VC++ builds) +win32/makeico.pl script to create perlexe.ico image file win32/mdelete.bat multifile delete +win32/perlexe.rc associated perl binary with icon win32/perlglob.c Win32 port win32/perlhost.h Perl "host" implementation win32/perllib.c Win32 port diff --git a/gnu/usr.bin/perl/Makefile.SH b/gnu/usr.bin/perl/Makefile.SH index e1a78d678b4..d39d0c817b0 100644 --- a/gnu/usr.bin/perl/Makefile.SH +++ b/gnu/usr.bin/perl/Makefile.SH @@ -9,6 +9,17 @@ case $PERL_CONFIG_SH in . $TOP/config.sh ;; esac + +# H.Merijn Brand [17 Feb 2004] +# This comment is just to ensure that Configure will find variables that +# are removed/replaced in patches on blead, but are still needed in the +# 5.8.x, 5.6.x and 5.005.x maintainance tracks. +# metaconfig -m will scan all .SH files on this level (not deeper), and +# not in x2p and other subfolders. This file is as good as any .SH +# patch references +# #22227 $baserev +# #22302 $yacc $byacc + : This forces SH files to create target in same directory as SH file. : This is so that make depend always knows where to find SH derivatives. case "$0" in @@ -318,6 +329,14 @@ plextract = pod/pod2html pod/pod2latex pod/pod2man pod/pod2text \ addedbyconf = UU $(shextract) $(plextract) lib/lib.pm pstruct +# Unicode data files generated by mktables +unidatafiles = lib/unicore/Canonical.pl lib/unicore/Exact.pl \ + lib/unicore/Properties lib/unicore/Decomposition.pl \ + lib/unicore/CombiningClass.pl lib/unicore/Name.pl lib/unicore/PVA.pl + +# Directories of Unicode data files generated by mktables +unidatadirs = lib/unicore/To lib/unicore/lib + h1 = EXTERN.h INTERN.h XSUB.h av.h config.h cop.h cv.h dosish.h h2 = embed.h form.h gv.h handy.h hv.h keywords.h mg.h op.h opcode.h h3 = pad.h patchlevel.h perl.h perlapi.h perly.h pp.h proto.h regcomp.h @@ -349,7 +368,7 @@ lintflags = -hbvxac .c.s: $(CCCMDSRC) -S $*.c -all: $(FIRSTMAKEFILE) miniperl$(EXE_EXT) extra.pods $(private) $(public) $(dynamic_ext) $(nonxs_ext) extras.make +all: $(FIRSTMAKEFILE) miniperl$(EXE_EXT) extra.pods $(private) $(unidatafiles) $(public) $(dynamic_ext) $(nonxs_ext) extras.make @echo " "; @echo " Everything is up to date. Type '$(MAKE) test' to run test suite." @@ -751,6 +770,9 @@ lib/lib.pm: miniperl$(EXE_EXT) lib/Config.pm @-rm -f $@ $(LDLIBPTH) ./miniperl -Ilib lib/lib_pm.PL +$(unidatafiles): miniperl$(EXE_EXT) lib/Config.pm lib/unicore/mktables + cd lib/unicore && $(LDLIBPTH) ../../miniperl -I../../lib mktables -w + extra.pods: miniperl$(EXE_EXT) -@test -f extra.pods && rm -f `cat extra.pods` -@rm -f extra.pods @@ -762,7 +784,7 @@ extra.pods: miniperl$(EXE_EXT) -@rm -f pod/perlvms.pod -@test -f vms/perlvms.pod && cd pod && $(LNS) ../vms/perlvms.pod perlvms.pod && cd .. && echo "pod/perlvms.pod" >> extra.pods -@rm -f pod/perldelta.pod - -@test -f pod/perl583delta.pod && cd pod && $(LNS) perl583delta.pod perldelta.pod && cd .. && echo "pod/perldelta.pod" >> extra.pods + -@test -f pod/perl585delta.pod && cd pod && $(LNS) perl585delta.pod perldelta.pod && cd .. && echo "pod/perldelta.pod" >> extra.pods extras.make: perl$(EXE_EXT) -@test -s extras.lst && PATH="`pwd`:${PATH}" PERL5LIB="`pwd`/lib" $(LDLIBPTH) ./perl -Ilib -MCPAN -e '@ARGV&&make(@ARGV)' `cat extras.lst` @@ -1002,6 +1024,7 @@ _cleaner2: rm -rf $(addedbyconf) rm -f $(FIRSTMAKEFILE) $(FIRSTMAKEFILE).old makefile.old rm -f $(private) lib/Config.pod + rm -rf $(unidatafiles) $(unidatadirs) rm -rf lib/auto rm -f lib/.exists lib/*/.exists lib/*/*/.exists rm -f h2ph.man pstruct @@ -1074,7 +1097,7 @@ _test_prep: test_prep_pre: preplibrary utilities $(nonxs_ext) -test_prep: test_prep_pre miniperl$(EXE_EXT) perl$(EXE_EXT) $(dynamic_ext) $(TEST_PERL_DLL) +test_prep: test_prep_pre miniperl$(EXE_EXT) $(unidatafiles) perl$(EXE_EXT) $(dynamic_ext) $(TEST_PERL_DLL) PERL=./perl $(MAKE) _test_prep _test_tty: @@ -1169,13 +1192,13 @@ test.taintwarn: test_prep # is crashing. minitest: miniperl$(EXE_EXT) lib/re.pm -@test -f lib/lib.pm && test -f lib/Config.pm || \ - $(MAKE) lib/Config.pm lib/lib.pm + $(MAKE) lib/Config.pm lib/lib.pm $(unidatafiles) @echo " " @echo "You may see some irrelevant test failures if you have been unable" - @echo "to build lib/Config.pm or lib/lib.pm." + @echo "to build lib/Config.pm, lib/lib.pm or the Unicode data files." @echo " " - cd t && (rm -f perl$(EXE_EXT); $(LNS) ../miniperl$(EXE_EXT) perl$(EXE_EXT)) \ - && $(LDLIBPTH) ./perl TEST base/*.t comp/*.t cmd/*.t run/*.t io/*.t op/*.t uni/*.t </dev/tty + && $(LDLIBPTH) ./perl TEST -minitest base/*.t comp/*.t cmd/*.t run/*.t io/*.t op/*.t uni/*.t </dev/tty # Test via harness diff --git a/gnu/usr.bin/perl/Makefile.bsd-wrapper b/gnu/usr.bin/perl/Makefile.bsd-wrapper index ed2e8af6648..37a322bb05b 100644 --- a/gnu/usr.bin/perl/Makefile.bsd-wrapper +++ b/gnu/usr.bin/perl/Makefile.bsd-wrapper @@ -1,6 +1,6 @@ -# $OpenBSD: Makefile.bsd-wrapper,v 1.64 2004/07/11 16:26:27 pvalchev Exp $ +# $OpenBSD: Makefile.bsd-wrapper,v 1.65 2004/08/09 18:08:54 millert Exp $ # -# Build wrapper for Perl 5.8.3 +# Build wrapper for Perl 5.8.5 # # To build a threaded perl, uncomment this. Not stable on all platforms... @@ -65,6 +65,8 @@ MANSRCALL= perl581delta 1 pod/perl581delta.pod \ perl582delta 1 pod/perl582delta.pod \ perl583delta 1 pod/perl583delta.pod \ + perl584delta 1 pod/perl584delta.pod \ + perl585delta 1 pod/perl585delta.pod \ perlapi 1 pod/perlapi.pod \ perlapio 1 pod/perlapio.pod \ perlartistic 1 pod/perlartistic.pod \ @@ -209,6 +211,12 @@ MANSRCALL= Cwd 3p lib/Cwd.pm \ DB 3p lib/DB.pm \ DB_File 3p ext/DB_File/DB_File.pm \ + DBM_Filter 3p lib/DBM_Filter.pm \ + DBM_Filter::compress 3p lib/DBM_Filter/compress.pm \ + DBM_Filter::encode 3p lib/DBM_Filter/encode.pm \ + DBM_Filter::int32 3p lib/DBM_Filter/int32.pm \ + DBM_Filter::null 3p lib/DBM_Filter/null.pm \ + DBM_Filter::utf8 3p lib/DBM_Filter/utf8.pm Data::Dumper 3p ext/Data/Dumper/Dumper.pm \ Devel::DProf 3p ext/Devel/DProf/DProf.pm \ Devel::PPPort 3p ext/Devel/PPPort/PPPort.pm \ @@ -311,6 +319,7 @@ MANSRCALL= Hash::Util 3p lib/Hash/Util.pm \ I18N::Collate 3p lib/I18N/Collate.pm \ I18N::LangTags 3p lib/I18N/LangTags.pm \ + I18N::LangTags::Detect 3p lib/I18N/LangTags/Detect.pm \ I18N::LangTags::List 3p lib/I18N/LangTags/List.pm \ I18N::Langinfo 3p ext/I18N/Langinfo/Langinfo.pm \ IO 3p lib/IO.pm \ @@ -607,6 +616,57 @@ x2p/cflags: perly.c perly.h: perly.y -@true +# Work around a gcc bug on arm +.if ${MACHINE_ARCH} == "arm" +pp_hot.o: pp_hot.c + @echo "${COMPILE.c} ${.IMPSRC} -O1 -o ${.TARGET}" + @${COMPILE.c} ${.IMPSRC} -O1 -o ${.TARGET}.o + @${LD} -x -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o + +pp_hot.go: pp_hot.c + @echo "${COMPILE.c} -g ${.IMPSRC} -O1 -o ${.TARGET}" + @${COMPILE.c} -g ${.IMPSRC} -O1 -o ${.TARGET}.o + @${LD} -X -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o + +pp_hot.po: pp_hot.c + @echo "${COMPILE.c} -p ${.IMPSRC} -O1 -o ${.TARGET}" + @${COMPILE.c} -p ${.IMPSRC} -O1 -o ${.TARGET}.o + @${LD} -X -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o + +pp_hot.so: pp_hot.c + @echo "${COMPILE.c} ${PICFLAG} -DPIC ${.IMPSRC} -O1 -o ${.TARGET}" + @${COMPILE.c} ${PICFLAG} -DPIC ${.IMPSRC} -O1 -o ${.TARGET}.o + @${LD} -x -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o + +pp_ctl.o: pp_ctl.c + @echo "${COMPILE.c} ${.IMPSRC} -O1 -o ${.TARGET}" + @${COMPILE.c} ${.IMPSRC} -O1 -o ${.TARGET}.o + @${LD} -x -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o + +pp_ctl.go: pp_ctl.c + @echo "${COMPILE.c} -g ${.IMPSRC} -O1 -o ${.TARGET}" + @${COMPILE.c} -g ${.IMPSRC} -O1 -o ${.TARGET}.o + @${LD} -X -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o + +pp_ctl.po: pp_ctl.c + @echo "${COMPILE.c} -p ${.IMPSRC} -O1 -o ${.TARGET}" + @${COMPILE.c} -p ${.IMPSRC} -O1 -o ${.TARGET}.o + @${LD} -X -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o + +pp_ctl.so: pp_ctl.c + @echo "${COMPILE.c} ${PICFLAG} -DPIC ${.IMPSRC} -O1 -o ${.TARGET}" + @${COMPILE.c} ${PICFLAG} -DPIC ${.IMPSRC} -O1 -o ${.TARGET}.o + @${LD} -x -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + .ifdef NOMAN maninstall: @echo NOMAN is set diff --git a/gnu/usr.bin/perl/Porting/Glossary b/gnu/usr.bin/perl/Porting/Glossary index 0785bd054be..0ec15aff1fd 100644 --- a/gnu/usr.bin/perl/Porting/Glossary +++ b/gnu/usr.bin/perl/Porting/Glossary @@ -3805,21 +3805,6 @@ plibpth (libpth.U): Its value is prepend to libpth. This variable takes care of special machines, like the mips. Usually, it should be empty. -pm_apiversion (xs_apiversion.U): - This variable contains the version of the oldest perl - compatible with the present perl. (That is, pure perl modules - written for $pm_apiversion will still work for the current - version). perl.c:incpush() and lib/lib.pm will automatically - search in $sitelib for older directories across major versions - back to pm_apiversion. This is only useful if you have a perl - library directory tree structured like the default one. The - versioned site_perl library was introduced in 5.005, so that's - the default setting for this variable. It's hard to imagine - it changing before Perl6. It is included here for symmetry - with xs_apiveprsion -- the searching algorithms will - (presumably) be similar. - See the INSTALL file for how this works. - pmake (Loc.U): This variable is defined but not used by Configure. The value is a plain '' and is not useful. @@ -4882,23 +4867,6 @@ xlibpth (libpth.U): libraries on this platform, for example CPU-specific libraries (on multi-CPU platforms) may be listed here. -xs_apiversion (xs_apiversion.U): - This variable contains the version of the oldest perl binary - compatible with the present perl. perl.c:incpush() and - lib/lib.pm will automatically search in $sitearch for older - directories across major versions back to xs_apiversion. - This is only useful if you have a perl library directory tree - structured like the default one. - See INSTALL for how this works. - The versioned site_perl directory was introduced in 5.005, - so that is the lowest possible value. - Since this can depend on compile time options - it is set by Configure. Other non-default sources - of potential incompatibility, such as multiplicity, threads, - debugging, 64bits, sfio, etc., are not checked for currently, - though in principle we could go snooping around in old - Config.pm files. - yacc (yacc.U): This variable holds the name of the compiler compiler we want to use in the Makefile. It can be yacc, byacc, or bison -y. diff --git a/gnu/usr.bin/perl/Porting/config_H b/gnu/usr.bin/perl/Porting/config_H index 7ba126dc8aa..cb04e5c4013 100644 --- a/gnu/usr.bin/perl/Porting/config_H +++ b/gnu/usr.bin/perl/Porting/config_H @@ -7,14 +7,14 @@ * that running config_h.SH again will wipe out any changes you've made. * For a more permanent change edit config.sh and rerun config_h.SH. * - * $Id: config_H,v 1.6 2003/12/03 03:02:25 millert Exp $ + * $Id: config_H,v 1.7 2004/04/07 21:33:01 millert Exp $ */ /* * Package name : perl5 * Source directory : . - * Configuration time: Wed Jan 14 15:58:57 GMT 2004 - * Configured by : nick + * Configuration time: Fri Jul 16 20:59:18 BST 2004 + * Configured by : yourname * Target system : linux bagpuss.unfortu.net 2.4.19-rmk4 #3 fri oct 25 21:57:55 bst 2002 armv4l unknown */ @@ -1338,8 +1338,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 "/usr/local/lib/perl5/5.8.3/armv4l-linux" /**/ -#define ARCHLIB_EXP "/usr/local/lib/perl5/5.8.3/armv4l-linux" /**/ +#define ARCHLIB "/opt/perl/lib/5.8.5/armv4l-linux" /**/ +#define ARCHLIB_EXP "/opt/perl/lib/5.8.5/armv4l-linux" /**/ /* BIN: * This symbol holds the path of the bin directory where the package will @@ -1349,8 +1349,8 @@ * This symbol is the filename expanded version of the BIN symbol, for * programs that do not want to deal with that at run-time. */ -#define BIN "/usr/local/bin" /**/ -#define BIN_EXP "/usr/local/bin" /**/ +#define BIN "/opt/perl/bin" /**/ +#define BIN_EXP "/opt/perl/bin" /**/ /* PERL_INC_VERSION_LIST: * This variable specifies the list of subdirectories in over @@ -1359,7 +1359,7 @@ * for a C initialization string. See the inc_version_list entry * in Porting/Glossary for more details. */ -#define PERL_INC_VERSION_LIST "5.8.0/armv4l-linux","5.8.0","5.7.3","5.7.2","5.7.1","5.7.0","5.6.0","5.005",0 /**/ +#define PERL_INC_VERSION_LIST 0 /**/ /* INSTALL_USR_BIN_PERL: * This symbol, if defined, indicates that Perl is to be installed @@ -1386,8 +1386,8 @@ * to be used in programs that are not prepared to deal with ~ expansion * at run-time. */ -#define INSTALL_PREFIX "/usr/local" /**/ -#define INSTALL_PREFIX_EXP "/usr/local" /**/ +#define INSTALL_PREFIX "/opt/perl" /**/ +#define INSTALL_PREFIX_EXP "/opt/perl" /**/ /* PRIVLIB: * This symbol contains the name of the private library for this package. @@ -1399,8 +1399,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 "/usr/local/lib/perl5/5.8.3" /**/ -#define PRIVLIB_EXP "/usr/local/lib/perl5/5.8.3" /**/ +#define PRIVLIB "/opt/perl/lib/5.8.5" /**/ +#define PRIVLIB_EXP "/opt/perl/lib/5.8.5" /**/ /* SITEARCH: * This symbol contains the name of the private library for this package. @@ -1417,8 +1417,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 "/usr/local/lib/perl5/site_perl/5.8.3/armv4l-linux" /**/ -#define SITEARCH_EXP "/usr/local/lib/perl5/site_perl/5.8.3/armv4l-linux" /**/ +#define SITEARCH "/opt/perl/lib/site_perl/5.8.5/armv4l-linux" /**/ +#define SITEARCH_EXP "/opt/perl/lib/site_perl/5.8.5/armv4l-linux" /**/ /* SITELIB: * This symbol contains the name of the private library for this package. @@ -1440,9 +1440,9 @@ * 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 "/usr/local/lib/perl5/site_perl/5.8.3" /**/ -#define SITELIB_EXP "/usr/local/lib/perl5/site_perl/5.8.3" /**/ -#define SITELIB_STEM "/usr/local/lib/perl5/site_perl" /**/ +#define SITELIB "/opt/perl/lib/site_perl/5.8.5" /**/ +#define SITELIB_EXP "/opt/perl/lib/site_perl/5.8.5" /**/ +#define SITELIB_STEM "/opt/perl/lib/site_perl" /**/ /* PERL_VENDORARCH: * If defined, this symbol contains the name of a private library. @@ -1689,7 +1689,7 @@ #define HAS_UNAME /**/ /*#define HAS_PHOSTNAME / **/ #ifdef HAS_PHOSTNAME -#define PHOSTNAME "/bin/hostname" /* How to get the host name */ +#define PHOSTNAME "" /* How to get the host name */ #endif /* HAS_GETNETBYADDR: @@ -2162,6 +2162,11 @@ */ /*#define MYMALLOC / **/ +/* PERL_MALLOC_WRAP: + * This symbol, if defined, indicates that we'd like malloc wrap checks. + */ +#define PERL_MALLOC_WRAP /**/ + /* CAN_PROTOTYPE: * If defined, this macro indicates that the C compiler can handle * function prototypes. @@ -3285,7 +3290,7 @@ * script to make sure (one hopes) that it runs with perl and not * some shell. */ -#define STARTPERL "#!/usr/local/bin/perl" /**/ +#define STARTPERL "#!/opt/perl/bin/perl" /**/ /* HAS_STDIO_STREAM_ARRAY: * This symbol, if defined, tells that there is an array @@ -3382,41 +3387,6 @@ /*#define USE_SOCKS / **/ #endif -/* PERL_XS_APIVERSION: - * This variable contains the version of the oldest perl binary - * compatible with the present perl. perl.c:incpush() and - * lib/lib.pm will automatically search in /usr/local/lib/perl5/site_perl/5.8.3/armv4l-linux for older - * directories across major versions back to xs_apiversion. - * This is only useful if you have a perl library directory tree - * structured like the default one. - * See INSTALL for how this works. - * The versioned site_perl directory was introduced in 5.005, - * so that is the lowest possible value. - * Since this can depend on compile time options - * it is set by Configure. Other non-default sources - * of potential incompatibility, such as multiplicity, threads, - * debugging, 64bits, sfio, etc., are not checked for currently, - * though in principle we could go snooping around in old - * Config.pm files. - */ -/* PERL_PM_APIVERSION: - * This variable contains the version of the oldest perl - * compatible with the present perl. (That is, pure perl modules - * written for pm_apiversion will still work for the current - * version). perl.c:incpush() and lib/lib.pm will automatically - * search in /usr/local/lib/perl5/site_perl/5.8.3 for older directories across major versions - * back to pm_apiversion. This is only useful if you have a perl - * library directory tree structured like the default one. The - * versioned site_perl library was introduced in 5.005, so that's - * the default setting for this variable. It's hard to imagine - * it changing before Perl6. It is included here for symmetry - * with xs_apiveprsion -- the searching algorithms will - * (presumably) be similar. - * See the INSTALL file for how this works. - */ -#define PERL_XS_APIVERSION "5.8.3" -#define PERL_PM_APIVERSION "5.005" - /* HAS_DRAND48_PROTO: * This symbol, if defined, indicates that the system provides * a prototype for the drand48() function. Otherwise, it is up diff --git a/gnu/usr.bin/perl/README b/gnu/usr.bin/perl/README index 1becd35faa3..d65607d1c12 100644 --- a/gnu/usr.bin/perl/README +++ b/gnu/usr.bin/perl/README @@ -2,7 +2,7 @@ Perl Kit, Version 5 Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998 - 1999, 2000, 2001, by Larry Wall and others + 1999, 2000, 2001, 2002, 2003, 2004 by Larry Wall and others All rights reserved. @@ -61,9 +61,6 @@ See pod/perlbook.pod for more information. Please read all the directions below before you proceed any further, and then follow them carefully. -After you have unpacked your kit, you should have all the files listed -in MANIFEST. - Installation 1) Detailed instructions are in the file "INSTALL", which you should @@ -76,19 +73,12 @@ corresponding README. 3) IMPORTANT! Help save the world! Communicate any problems and suggested patches to perlbug@perl.org so we can keep the world in sync. If you have a problem, there's someone else out there who either has had -or will have the same problem. It's usually helpful if you send the -output of the "myconfig" script in the main perl directory. - -If you've succeeded in compiling perl, the perlbug script in the "utils" -subdirectory can be used to help mail in a bug report. - -If possible, send in patches such that the patch program will apply them. -Context diffs are the best, then normal diffs. Don't send ed scripts-- -I've probably changed my copy since the version you have. +or will have the same problem. See the section on "Reporting Problems" +in the INSTALL file. The latest versions of perl are always available on the various CPAN (Comprehensive Perl Archive Network) sites around the world. -See <URL:http://www.cpan.org/src/>. +See http://www.cpan.org/src/ . Just a personal note: I want you to know that I create nice things like this diff --git a/gnu/usr.bin/perl/README.os2 b/gnu/usr.bin/perl/README.os2 index 05c088ad0e5..7c45f11e1dd 100644 --- a/gnu/usr.bin/perl/README.os2 +++ b/gnu/usr.bin/perl/README.os2 @@ -620,7 +620,7 @@ C<set PERLLIB_PREFIX> in F<Config.sys>, see L<"PERLLIB_PREFIX">. =item Additional Perl modules - unzip perl_ste.zip -d f:/perllib/lib/site_perl/5.8.3/ + unzip perl_ste.zip -d f:/perllib/lib/site_perl/5.8.5/ Same remark as above applies. Additionally, if this directory is not one of directories on @INC (and @INC is influenced by C<PERLLIB_PREFIX>), you diff --git a/gnu/usr.bin/perl/README.vms b/gnu/usr.bin/perl/README.vms index b62dbd4ba06..cb2507f5ce1 100644 --- a/gnu/usr.bin/perl/README.vms +++ b/gnu/usr.bin/perl/README.vms @@ -167,15 +167,15 @@ the ODS-2 compatability qualifiers such as: or: - vmstar -xvof perl-5^.8^.3.tar + vmstar -xvof perl-5^.8^.5.tar If you neglected to use the /ODS2 qualifier or the -o switch then you could rename the source directory: - set security/protection=(o:rwed) perl-5^.8^.3.dir - rename perl-5^.8^.3.dir perl-5_8_3.dir + set security/protection=(o:rwed) perl-5^.8^.5.dir + rename perl-5^.8^.5.dir perl-5_8_5.dir -Perl on VMS as of 5.8.3 does not completely handle extended file +Perl on VMS as of 5.8.5 does not completely handle extended file parse styles such as are encountered on ODS-5. While it can be built, installed, and run on ODS-5 filesystems; it may encounter trouble with characters that are otherwise illegal on ODS-2 diff --git a/gnu/usr.bin/perl/README.win32 b/gnu/usr.bin/perl/README.win32 index 44a071d33a9..d3604beb68e 100644 --- a/gnu/usr.bin/perl/README.win32 +++ b/gnu/usr.bin/perl/README.win32 @@ -43,11 +43,10 @@ following compilers on the Intel x86 architecture: Borland C++ version 5.02 or later
Microsoft Visual C++ version 4.2 or later
- Mingw32 with GCC version 2.95.2 or better
+ MinGW with gcc gcc version 2.95.2 or later
-The last of these is a high quality freeware compiler. Support
-for it is still experimental. (Older versions of GCC are known
-not to work.)
+The last of these is a high quality freeware compiler. Use version
+3.2.x or later for the best results with this compiler.
This port can also be built on the Intel IA64 using:
@@ -138,24 +137,19 @@ The nmake that comes with the Platform SDK will suffice for building Perl. Make sure you are building within one of the "Build Environment"
shells available after you install the Platform SDK from the Start Menu.
-=item MinGW32 with gcc
+=item MinGW release 3 with gcc
-The latest release of MinGW (at the time of writing) is 2.0.0, which comes
-with gcc-3.2, and can be downloaded here:
+The latest release of MinGW at the time of writing is 3.1.0, which comes
+with gcc-3.2.3, and can be downloaded here:
- http://sourceforge.net/projects/mingw
+ http://www.mingw.org/
-Perl compiles with earlier releases of gcc (2.95 and up) that can be
-downloaded from the same place. If you use gcc-3.2, comment out the
-line:
-
- USE_GCC_V3_2 *= define
-
-in win32\makefile.mk
+Perl also compiles with earlier releases of gcc (2.95.2 and up). See below
+for notes about using earlier versions of MinGW/gcc.
You also need dmake. See L</"Make"> above on how to get it.
-=item MinGW release 1
+=item MinGW release 1 with gcc
The MinGW-1.1 bundle comes with gcc-2.95.3.
@@ -212,6 +206,13 @@ Edit the makefile.mk (or Makefile, if you're using nmake) and change the values of INST_DRV and INST_TOP. You can also enable various
build flags. These are explained in the makefiles.
+Note that it is generally not a good idea to try to build a perl with
+INST_DRV and INST_TOP set to a path that already exists from a previous
+build. In particular, this may cause problems with the
+lib/ExtUtils/t/Embed.t test, which attempts to build a test program and
+may end up building against the installed perl's lib/CORE directory rather
+than the one being tested.
+
You will have to make sure that CCTYPE is set correctly and that
CCHOME points to wherever you installed your compiler.
@@ -477,7 +478,7 @@ ensure Config.pm knows about it. If you don't have nmake, you can either get dmake from the location mentioned earlier or get an
old version of nmake reportedly available from:
- ftp://ftp.microsoft.com/Softlib/MSLFILES/nmake15.exe
+ http://download.microsoft.com/download/vc15/Patch/1.52/W95/EN-US/nmake15.exe
Another option is to use the make written in Perl, available from
CPAN.
@@ -758,6 +759,11 @@ Please send detailed descriptions of any problems and solutions that you may find to <F<perlbug@perl.com>>, along with the output produced
by C<perl -V>.
+=head1 ACKNOWLEDGEMENTS
+
+The use of a camel with the topic of Perl is a trademark
+of O'Reilly and Associates, Inc. Used with permission.
+
=head1 AUTHORS
=over 4
diff --git a/gnu/usr.bin/perl/XSUB.h b/gnu/usr.bin/perl/XSUB.h index b4c241aa3e1..87d72832522 100644 --- a/gnu/usr.bin/perl/XSUB.h +++ b/gnu/usr.bin/perl/XSUB.h @@ -166,7 +166,7 @@ Return an empty list from an XSUB immediately. =head1 Variables created by C<xsubpp> and C<xsubpp> internal functions -=for apidoc AmU||newXSproto +=for apidoc AmU||newXSproto|char* name|XSUBADDR_t f|char* filename|const char *proto Used by C<xsubpp> to hook up XSUBs as Perl subs. Adds Perl prototypes to the subs. diff --git a/gnu/usr.bin/perl/av.c b/gnu/usr.bin/perl/av.c index 3219742980d..22cba0fea7a 100644 --- a/gnu/usr.bin/perl/av.c +++ b/gnu/usr.bin/perl/av.c @@ -100,6 +100,11 @@ Perl_av_extend(pTHX_ AV *av, I32 key) } } else { +#ifdef PERL_MALLOC_WRAP + static const char oom_array_extend[] = + "Out of memory during array extend"; /* Duplicated in pp_hot.c */ +#endif + if (AvALLOC(av)) { #if !defined(STRANGE_MALLOC) && !defined(MYMALLOC) MEM_SIZE bytes; @@ -114,6 +119,7 @@ Perl_av_extend(pTHX_ AV *av, I32 key) #endif newmax = key + AvMAX(av) / 5; resize: + MEM_WRAP_CHECK_1(newmax+1, SV*, oom_array_extend); #if defined(STRANGE_MALLOC) || defined(MYMALLOC) Renew(AvALLOC(av),newmax+1, SV*); #else @@ -148,6 +154,7 @@ Perl_av_extend(pTHX_ AV *av, I32 key) } else { newmax = key < 3 ? 3 : key; + MEM_WRAP_CHECK_1(newmax+1, SV*, oom_array_extend); New(2,AvALLOC(av), newmax+1, SV*); ary = AvALLOC(av) + 1; tmp = newmax; @@ -780,7 +787,8 @@ Perl_av_fill(pTHX_ register AV *av, I32 fill) =for apidoc av_delete Deletes the element indexed by C<key> from the array. Returns the -deleted element. C<flags> is currently ignored. +deleted element. If C<flags> equals C<G_DISCARD>, the element is freed +and null is returned. =cut */ @@ -838,6 +846,8 @@ Perl_av_delete(pTHX_ AV *av, I32 key, I32 flags) if (key > AvFILLp(av)) return Nullsv; else { + if (!AvREAL(av) && AvREIFY(av)) + av_reify(av); sv = AvARRAY(av)[key]; if (key == AvFILLp(av)) { AvARRAY(av)[key] = &PL_sv_undef; diff --git a/gnu/usr.bin/perl/config_h.SH b/gnu/usr.bin/perl/config_h.SH index 6efec9a40b1..b957edc15d8 100644 --- a/gnu/usr.bin/perl/config_h.SH +++ b/gnu/usr.bin/perl/config_h.SH @@ -31,7 +31,7 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un * that running config_h.SH again will wipe out any changes you've made. * For a more permanent change edit $CONFIG_SH and rerun config_h.SH. * - * \$Id: config_h.SH,v 1.7 2003/12/03 03:02:19 millert Exp $ + * \$Id: config_h.SH,v 1.8 2004/04/07 21:32:59 millert Exp $ */ /* @@ -2186,6 +2186,11 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #$d_mymalloc MYMALLOC /**/ +/* PERL_MALLOC_WRAP: + * This symbol, if defined, indicates that we'd like malloc wrap checks. + */ +#$usemallocwrap PERL_MALLOC_WRAP /**/ + /* CAN_PROTOTYPE: * If defined, this macro indicates that the C compiler can handle * function prototypes. @@ -3406,41 +3411,6 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un #$usesocks USE_SOCKS /**/ #endif -/* PERL_XS_APIVERSION: - * This variable contains the version of the oldest perl binary - * compatible with the present perl. perl.c:incpush() and - * lib/lib.pm will automatically search in $sitearch for older - * directories across major versions back to xs_apiversion. - * This is only useful if you have a perl library directory tree - * structured like the default one. - * See INSTALL for how this works. - * The versioned site_perl directory was introduced in 5.005, - * so that is the lowest possible value. - * Since this can depend on compile time options - * it is set by Configure. Other non-default sources - * of potential incompatibility, such as multiplicity, threads, - * debugging, 64bits, sfio, etc., are not checked for currently, - * though in principle we could go snooping around in old - * Config.pm files. - */ -/* PERL_PM_APIVERSION: - * This variable contains the version of the oldest perl - * compatible with the present perl. (That is, pure perl modules - * written for pm_apiversion will still work for the current - * version). perl.c:incpush() and lib/lib.pm will automatically - * search in $sitelib for older directories across major versions - * back to pm_apiversion. This is only useful if you have a perl - * library directory tree structured like the default one. The - * versioned site_perl library was introduced in 5.005, so that's - * the default setting for this variable. It's hard to imagine - * it changing before Perl6. It is included here for symmetry - * with xs_apiveprsion -- the searching algorithms will - * (presumably) be similar. - * See the INSTALL file for how this works. - */ -#define PERL_XS_APIVERSION "$xs_apiversion" -#define PERL_PM_APIVERSION "$pm_apiversion" - /* HAS_DRAND48_PROTO: * This symbol, if defined, indicates that the system provides * a prototype for the drand48() function. Otherwise, it is up diff --git a/gnu/usr.bin/perl/configpm b/gnu/usr.bin/perl/configpm index 5ac43e40dda..84814275a87 100644 --- a/gnu/usr.bin/perl/configpm +++ b/gnu/usr.bin/perl/configpm @@ -337,18 +337,23 @@ sub config_sh { sub config_re { my $re = shift; - return map { chomp; $_ } grep /^$re=/, split /^/, $Config_SH; + return map { chomp; $_ } grep eval{ /^(?:$re)=/ }, split /^/, $Config_SH; } sub config_vars { foreach (@_) { - if (/\W/) { - my @matches = config_re($_); - print map "$_\n", @matches ? @matches : "$_: not found"; + my ($notag,$qry,$lncont) = m/^(:)?(.*?)(:)?$/; # flags fore and aft, + my $prfx = $notag ? '': "$qry="; # prefix for print + my $lnend = $lncont ? ' ' : ";\n"; # ending for print + + if ($qry =~ /\W/) { + my @matches = config_re($qry); + print map "$_$lnend", @matches ? @matches : "$qry: not found" if !$notag; + print map { s/\w+=//; "$_$lnend" } @matches ? @matches : "$qry: not found" if $notag; } else { - my $v = (exists $Config{$_}) ? $Config{$_} : 'UNKNOWN'; + my $v = (exists $Config{$qry}) ? $Config{$qry} : 'UNKNOWN'; $v = 'undef' unless defined $v; - print "$_='$v';\n"; + print "${prfx}'${v}'$lnend"; } } } @@ -443,8 +448,8 @@ Config - access Perl configuration information =head1 SYNOPSIS use Config; - if ($Config{'cc'} =~ /gcc/) { - print "built by gcc\n"; + if ($Config{usethreads}) { + print "has thread support\n" } use Config qw(myconfig config_sh config_vars config_re); diff --git a/gnu/usr.bin/perl/cop.h b/gnu/usr.bin/perl/cop.h index d56f05c5aad..d4d1f9e7e17 100644 --- a/gnu/usr.bin/perl/cop.h +++ b/gnu/usr.bin/perl/cop.h @@ -1,7 +1,7 @@ /* cop.h * * Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - * 2000, 2001, 2002, 2003, by Larry Wall and others + * 2000, 2001, 2002, 2003, 2004, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -123,11 +123,20 @@ struct block_sub { PAD *oldcomppad; }; -/* base for the next two macros. Don't use directly */ +/* base for the next two macros. Don't use directly. + * Note that the refcnt of the cv is incremented twice; The CX one is + * decremented by LEAVESUB, the other by LEAVE. */ + #define PUSHSUB_BASE(cx) \ cx->blk_sub.cv = cv; \ cx->blk_sub.olddepth = CvDEPTH(cv); \ - cx->blk_sub.hasargs = hasargs; + cx->blk_sub.hasargs = hasargs; \ + if (!CvDEPTH(cv)) { \ + (void)SvREFCNT_inc(cv); \ + (void)SvREFCNT_inc(cv); \ + SAVEFREESV(cv); \ + } + #define PUSHSUB(cx) \ PUSHSUB_BASE(cx) \ diff --git a/gnu/usr.bin/perl/cv.h b/gnu/usr.bin/perl/cv.h index 9d031631af0..48687bf7f3c 100644 --- a/gnu/usr.bin/perl/cv.h +++ b/gnu/usr.bin/perl/cv.h @@ -1,7 +1,7 @@ /* cv.h * * Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1999, - * 2000, 2001, 2002, 2003, by Larry Wall and others + * 2000, 2001, 2002, 2003, 2004, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -83,7 +83,10 @@ Returns the stash of the CV. #define CVf_CLONED 0x0002 /* a clone of one of those */ #define CVf_ANON 0x0004 /* CvGV() can't be trusted */ #define CVf_OLDSTYLE 0x0008 -#define CVf_UNIQUE 0x0010 /* can't be cloned */ +#define CVf_UNIQUE 0x0010 /* sub is only called once (eg PL_main_cv, + * require, eval). Not to be confused + * with the GVf_UNIQUE flag associated + * with the :unique attribute */ #define CVf_NODEBUG 0x0020 /* no DB::sub indirection for this CV (esp. useful for special XSUBs) */ #define CVf_METHOD 0x0040 /* CV is explicitly marked as a method */ diff --git a/gnu/usr.bin/perl/doio.c b/gnu/usr.bin/perl/doio.c index dc192d4717f..97a6603869d 100644 --- a/gnu/usr.bin/perl/doio.c +++ b/gnu/usr.bin/perl/doio.c @@ -1,7 +1,7 @@ /* doio.c * * Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - * 2000, 2001, 2002, 2003, by Larry Wall and others + * 2000, 2001, 2002, 2003, 2004, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -723,11 +723,13 @@ Perl_nextargv(pTHX_ register GV *gv) if (PL_filemode & (S_ISUID|S_ISGID)) { PerlIO_flush(IoIFP(GvIOn(PL_argvoutgv))); /* chmod must follow last write */ #ifdef HAS_FCHMOD - (void)fchmod(PL_lastfd,PL_filemode); + if (PL_lastfd != -1) + (void)fchmod(PL_lastfd,PL_filemode); #else (void)PerlLIO_chmod(PL_oldname,PL_filemode); #endif } + PL_lastfd = -1; PL_filemode = 0; if (!GvAV(gv)) return Nullfp; @@ -1170,6 +1172,7 @@ fail_discipline: #ifndef PERLIO_LAYERS Perl_croak(aTHX_ "IO layers (like '%.*s') unavailable", end-s, s); #else + len -= end-s; s = end; #endif } diff --git a/gnu/usr.bin/perl/doop.c b/gnu/usr.bin/perl/doop.c index e999e344cdb..3c4b3c8634a 100644 --- a/gnu/usr.bin/perl/doop.c +++ b/gnu/usr.bin/perl/doop.c @@ -1,7 +1,7 @@ /* doop.c * * Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - * 2000, 2001, 2002, by Larry Wall and others + * 2000, 2001, 2002, 2004, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -615,7 +615,9 @@ Perl_do_trans(pTHX_ SV *sv) DEBUG_t( Perl_deb(aTHX_ "2.TBL\n")); - switch (PL_op->op_private & ~hasutf & 63) { + switch (PL_op->op_private & ~hasutf & ( + OPpTRANS_FROM_UTF|OPpTRANS_TO_UTF|OPpTRANS_IDENTICAL| + OPpTRANS_SQUASH|OPpTRANS_DELETE|OPpTRANS_COMPLEMENT)) { case 0: if (hasutf) return do_trans_simple_utf8(sv); @@ -667,7 +669,7 @@ Perl_do_join(pTHX_ register SV *sv, SV *del, register SV **mark, register SV **s ++mark; } - sv_setpv(sv, ""); + sv_setpvn(sv, "", 0); /* sv_setpv retains old UTF8ness [perl #24846] */ if (SvUTF8(sv)) SvUTF8_off(sv); @@ -1006,6 +1008,8 @@ Perl_do_chomp(pTHX_ register SV *sv) STRLEN len; STRLEN n_a; char *s; + char *temp_buffer = NULL; + SV* svrecode = Nullsv; if (RsSNARF(PL_rs)) return 0; @@ -1041,6 +1045,18 @@ Perl_do_chomp(pTHX_ register SV *sv) if (SvREADONLY(sv)) Perl_croak(aTHX_ PL_no_modify); } + + if (PL_encoding) { + if (!SvUTF8(sv)) { + /* XXX, here sv is utf8-ized as a side-effect! + If encoding.pm is used properly, almost string-generating + operations, including literal strings, chr(), input data, etc. + should have been utf8-ized already, right? + */ + sv_recode_to_utf8(sv, PL_encoding); + } + } + s = SvPV(sv, len); if (s && len) { s += --len; @@ -1055,8 +1071,43 @@ Perl_do_chomp(pTHX_ register SV *sv) } } else { - STRLEN rslen; + STRLEN rslen, rs_charlen; char *rsptr = SvPV(PL_rs, rslen); + + rs_charlen = SvUTF8(PL_rs) + ? sv_len_utf8(PL_rs) + : rslen; + + if (SvUTF8(PL_rs) != SvUTF8(sv)) { + /* Assumption is that rs is shorter than the scalar. */ + if (SvUTF8(PL_rs)) { + /* RS is utf8, scalar is 8 bit. */ + bool is_utf8 = TRUE; + temp_buffer = (char*)bytes_from_utf8((U8*)rsptr, + &rslen, &is_utf8); + if (is_utf8) { + /* Cannot downgrade, therefore cannot possibly match + */ + assert (temp_buffer == rsptr); + temp_buffer = NULL; + goto nope; + } + rsptr = temp_buffer; + } + else if (PL_encoding) { + /* RS is 8 bit, encoding.pm is used. + * Do not recode PL_rs as a side-effect. */ + svrecode = newSVpvn(rsptr, rslen); + sv_recode_to_utf8(svrecode, PL_encoding); + rsptr = SvPV(svrecode, rslen); + rs_charlen = sv_len_utf8(svrecode); + } + else { + /* RS is 8 bit, scalar is utf8. */ + temp_buffer = (char*)bytes_to_utf8((U8*)rsptr, &rslen); + rsptr = temp_buffer; + } + } if (rslen == 1) { if (*s != *rsptr) goto nope; @@ -1069,7 +1120,7 @@ Perl_do_chomp(pTHX_ register SV *sv) s -= rslen - 1; if (memNE(s, rsptr, rslen)) goto nope; - count += rslen; + count += rs_charlen; } } s = SvPV_force(sv, n_a); @@ -1079,6 +1130,11 @@ Perl_do_chomp(pTHX_ register SV *sv) SvSETMAGIC(sv); } nope: + + if (svrecode) + SvREFCNT_dec(svrecode); + + Safefree(temp_buffer); return count; } diff --git a/gnu/usr.bin/perl/dosish.h b/gnu/usr.bin/perl/dosish.h index 21a0c594b9d..abf94320dab 100644 --- a/gnu/usr.bin/perl/dosish.h +++ b/gnu/usr.bin/perl/dosish.h @@ -83,7 +83,12 @@ * information. */ #if defined(WIN64) || defined(USE_LARGE_FILES) +# if defined(__BORLANDC__) /* buk */ +# include <sys\stat.h> +# define Stat_t struct stati64 +# else #define Stat_t struct _stati64 +# endif #else #if defined(UNDER_CE) #define Stat_t struct xcestat diff --git a/gnu/usr.bin/perl/dump.c b/gnu/usr.bin/perl/dump.c index b6cb9b49de3..645e34f0ae6 100644 --- a/gnu/usr.bin/perl/dump.c +++ b/gnu/usr.bin/perl/dump.c @@ -1,7 +1,7 @@ /* dump.c * * Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - * 2000, 2001, 2002, 2003, by Larry Wall and others + * 2000, 2001, 2002, 2003, 2004, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -116,19 +116,17 @@ Perl_pv_display(pTHX_ SV *dsv, char *pv, STRLEN cur, STRLEN len, STRLEN pvlim) truncated++; break; } - if (isPRINT(*pv)) { - switch (*pv) { - case '\t': sv_catpvn(dsv, "\\t", 2); break; - case '\n': sv_catpvn(dsv, "\\n", 2); break; - case '\r': sv_catpvn(dsv, "\\r", 2); break; - case '\f': sv_catpvn(dsv, "\\f", 2); break; - case '"': sv_catpvn(dsv, "\\\"", 2); break; - case '\\': sv_catpvn(dsv, "\\\\", 2); break; - default: sv_catpvn(dsv, pv, 1); break; - } - } - else { - if (cur && isDIGIT(*(pv+1))) + switch (*pv) { + case '\t': sv_catpvn(dsv, "\\t", 2); break; + case '\n': sv_catpvn(dsv, "\\n", 2); break; + case '\r': sv_catpvn(dsv, "\\r", 2); break; + case '\f': sv_catpvn(dsv, "\\f", 2); break; + case '"': sv_catpvn(dsv, "\\\"", 2); break; + case '\\': sv_catpvn(dsv, "\\\\", 2); break; + default: + if (isPRINT(*pv)) + sv_catpvn(dsv, pv, 1); + else if (cur && isDIGIT(*(pv+1))) Perl_sv_catpvf(aTHX_ dsv, "\\%03o", (U8)*pv); else Perl_sv_catpvf(aTHX_ dsv, "\\%o", (U8)*pv); @@ -644,22 +642,28 @@ Perl_do_op_dump(pTHX_ I32 level, PerlIO *file, OP *o) #ifdef USE_ITHREADS Perl_dump_indent(aTHX_ level, file, "PADIX = %" IVdf "\n", (IV)cPADOPo->op_padix); #else - if (cSVOPo->op_sv) { - SV *tmpsv = NEWSV(0,0); - STRLEN n_a; - ENTER; - SAVEFREESV(tmpsv); - gv_fullname3(tmpsv, (GV*)cSVOPo->op_sv, Nullch); - Perl_dump_indent(aTHX_ level, file, "GV = %s\n", SvPV(tmpsv, n_a)); - LEAVE; + if ( ! PL_op->op_flags & OPf_SPECIAL) { /* not lexical */ + if (cSVOPo->op_sv) { + SV *tmpsv = NEWSV(0,0); + STRLEN n_a; + ENTER; + SAVEFREESV(tmpsv); + gv_fullname3(tmpsv, (GV*)cSVOPo->op_sv, Nullch); + Perl_dump_indent(aTHX_ level, file, "GV = %s\n", SvPV(tmpsv, n_a)); + LEAVE; + } + else + Perl_dump_indent(aTHX_ level, file, "GV = NULL\n"); } - else - Perl_dump_indent(aTHX_ level, file, "GV = NULL\n"); #endif break; case OP_CONST: case OP_METHOD_NAMED: +#ifndef USE_ITHREADS + /* with ITHREADS, consts are stored in the pad, and the right pad + * may not be active here, so skip */ Perl_dump_indent(aTHX_ level, file, "SV = %s\n", SvPEEK(cSVOPo_sv)); +#endif break; case OP_SETSTATE: case OP_NEXTSTATE: diff --git a/gnu/usr.bin/perl/embed.h b/gnu/usr.bin/perl/embed.h index 6112ca7c8f9..94b51d25b18 100644 --- a/gnu/usr.bin/perl/embed.h +++ b/gnu/usr.bin/perl/embed.h @@ -2,7 +2,7 @@ * embed.h * * Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, - * 2000, 2001, 2002, 2003, by Larry Wall and others + * 2000, 2001, 2002, 2003, 2004, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -1555,6 +1555,9 @@ #define doparseform S_doparseform #endif #ifdef PERL_CORE +#define num_overflow S_num_overflow +#endif +#ifdef PERL_CORE #define dopoptoeval S_dopoptoeval #endif #ifdef PERL_CORE @@ -3969,13 +3972,13 @@ #define nuke_stacks() S_nuke_stacks(aTHX) #endif #ifdef PERL_CORE -#define open_script(a,b,c,d) S_open_script(aTHX_ a,b,c,d) +#define open_script(a,b,c) S_open_script(aTHX_ a,b,c) #endif #ifdef PERL_CORE #define usage(a) S_usage(aTHX_ a) #endif #ifdef PERL_CORE -#define validate_suid(a,b,c) S_validate_suid(aTHX_ a,b,c) +#define validate_suid(a,b) S_validate_suid(aTHX_ a,b) #endif # if defined(IAMSUID) #ifdef PERL_CORE @@ -4070,6 +4073,9 @@ #define doparseform(a) S_doparseform(aTHX_ a) #endif #ifdef PERL_CORE +#define num_overflow S_num_overflow +#endif +#ifdef PERL_CORE #define dopoptoeval(a) S_dopoptoeval(aTHX_ a) #endif #ifdef PERL_CORE @@ -4399,7 +4405,7 @@ #define not_a_number(a) S_not_a_number(aTHX_ a) #endif #ifdef PERL_CORE -#define visit(a) S_visit(aTHX_ a) +#define visit(a,b,c) S_visit(aTHX_ a,b,c) #endif #ifdef PERL_CORE #define sv_add_backref(a,b) S_sv_add_backref(aTHX_ a,b) diff --git a/gnu/usr.bin/perl/embed.pl b/gnu/usr.bin/perl/embed.pl index e86d946c7c0..71bd70284b1 100644 --- a/gnu/usr.bin/perl/embed.pl +++ b/gnu/usr.bin/perl/embed.pl @@ -22,17 +22,17 @@ sub do_not_edit ($) my $years; if ($file eq 'embed.h') { - $years = '1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003'; + $years = '1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004'; } elsif ($file eq 'embedvar.h') { - $years = '1999, 2000, 2001, 2002, 2003'; + $years = '1999, 2000, 2001, 2002, 2003, 2004'; } elsif ($file eq 'global.sym') { - $years = '1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003'; + $years = '1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004'; } elsif ($file eq 'perlapi.c') { $years = '1999, 2000, 2001'; } elsif ($file eq 'perlapi.h') { - $years = '1999, 2000, 2001, 2002, 2003'; + $years = '1999, 2000, 2001, 2002, 2003, 2004'; } elsif ($file eq 'proto.h') { - $years = '1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003'; + $years = '1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004'; } $years =~ s/1999,/1999,\n / if length $years > 40; diff --git a/gnu/usr.bin/perl/ext/B/B/Concise.pm b/gnu/usr.bin/perl/ext/B/B/Concise.pm index 7a24f366085..88a31b63873 100644 --- a/gnu/usr.bin/perl/ext/B/B/Concise.pm +++ b/gnu/usr.bin/perl/ext/B/B/Concise.pm @@ -14,16 +14,20 @@ use warnings; # uses #3 and #4, since warnings uses Carp use Exporter (); # use #5 -our $VERSION = "0.56"; +# Maint doesn't have patch 22353 (op_seq changes) + +our $VERSION = "0.61"; our @ISA = qw(Exporter); our @EXPORT_OK = qw(set_style set_style_standard add_callback - concise_subref concise_cv concise_main); + concise_subref concise_cv concise_main + add_style walk_output); # use #6 use B qw(class ppname main_start main_root main_cv cstring svref_2object - SVf_IOK SVf_NOK SVf_POK SVf_IVisUV SVf_FAKE OPf_KIDS CVf_ANON); + SVf_IOK SVf_NOK SVf_POK SVf_IVisUV SVf_FAKE OPf_KIDS OPf_SPECIAL + CVf_ANON); -my %style = +my %style = ("terse" => ["(?(#label =>\n)?)(*( )*)#class (#addr) #name (?([#targ])?) " . "#svclass~(?((#svaddr))?)~#svval~(?(label \"#coplabel\")?)\n", @@ -50,27 +54,77 @@ my %style = $ENV{B_CONCISE_TREE_FORMAT}], ); -my($format, $gotofmt, $treefmt); +# Renderings, ie how Concise prints, is controlled by these vars +# primary: +our $stylename; # selects current style from %style +my $order = "basic"; # how optree is walked & printed: basic, exec, tree + +# rendering mechanics: +# these 'formats' are the line-rendering templates +# they're updated from %style when $stylename changes +my ($format, $gotofmt, $treefmt); + +# lesser players: +my $base = 36; # how <sequence#> is displayed +my $big_endian = 1; # more <sequence#> display +my $tree_style = 0; # tree-order details +my $banner = 1; # print banner before optree is traversed + +# another factor: +our @callbacks; # allow external management + +set_style_standard("concise"); + my $curcv; my $cop_seq_base; -my @callbacks; sub set_style { ($format, $gotofmt, $treefmt) = @_; + #warn "set_style: deprecated, use set_style_standard instead\n"; # someday + die "expecting 3 style-format args\n" unless @_ == 3; +} + +sub add_style { + my ($newstyle,@args) = @_; + die "style '$newstyle' already exists, choose a new name\n" + if exists $style{$newstyle}; + die "expecting 3 style-format args\n" unless @args == 3; + $style{$newstyle} = [@args]; + $stylename = $newstyle; # update rendering state } sub set_style_standard { - my($name) = @_; - set_style(@{$style{$name}}); + ($stylename) = @_; # update rendering state + die "err: style '$stylename' unknown\n" unless exists $style{$stylename}; + set_style(@{$style{$stylename}}); } sub add_callback { push @callbacks, @_; } +# output handle, used with all Concise-output printing +our $walkHandle = \*STDOUT; # public for your convenience + +sub walk_output { # updates $walkHandle + my $handle = shift; + if (ref $handle eq 'SCALAR') { + # in 5.8+, open(FILEHANDLE,MODE,REFERENCE) writes to string + open my $tmp, '>', $handle; # but cant re-set an existing filehandle + $walkHandle = $tmp; # so use my $tmp as intermediate var + return; + } + $walkHandle = $handle; + my $iotype = ref $walkHandle; + die "expecting argument/object that can print\n" + unless $iotype eq 'GLOB' or $iotype and $walkHandle->can('print'); +} + sub concise_subref { - my($order, $subref) = @_; - concise_cv_obj($order, svref_2object($subref)); + my($order, $coderef) = @_; + my $codeobj = svref_2object($coderef); + die "err: not a coderef: $coderef\n" unless ref $codeobj eq 'B::CV';#CODE'; + concise_cv_obj($order, $codeobj); } # This should have been called concise_subref, but it was exported @@ -80,13 +134,14 @@ sub concise_cv { concise_subref(@_); } sub concise_cv_obj { my ($order, $cv) = @_; $curcv = $cv; + die "err: coderef has no START\n" if class($cv->START) eq "NULL"; sequence($cv->START); if ($order eq "exec") { walk_exec($cv->START); } elsif ($order eq "basic") { walk_topdown($cv->ROOT, sub { $_[0]->concise($_[1]) }, 0); } else { - print tree($cv->ROOT, 0) + print $walkHandle tree($cv->ROOT, 0); } } @@ -99,7 +154,7 @@ sub concise_main { walk_exec(main_start); } elsif ($order eq "tree") { return if class(main_root) eq "NULL"; - print tree(main_root, 0); + print $walkHandle tree(main_root, 0); } elsif ($order eq "basic") { return if class(main_root) eq "NULL"; walk_topdown(main_root, @@ -115,8 +170,8 @@ sub concise_specials { } elsif ($name eq "CHECK") { pop @cv_s; # skip the CHECK block that calls us } - for my $cv (@cv_s) { - print "$name $i:\n"; + for my $cv (@cv_s) { + print $walkHandle "$name $i:\n"; $i++; concise_cv_obj($order, $cv); } @@ -125,20 +180,12 @@ sub concise_specials { my $start_sym = "\e(0"; # "\cN" sometimes also works my $end_sym = "\e(B"; # "\cO" respectively -my @tree_decorations = +my @tree_decorations = ([" ", "--", "+-", "|-", "| ", "`-", "-", 1], [" ", "-", "+", "+", "|", "`", "", 0], [" ", map("$start_sym$_$end_sym", "qq", "wq", "tq", "x ", "mq", "q"), 1], [" ", map("$start_sym$_$end_sym", "q", "w", "t", "x", "m"), "", 0], ); -my $tree_style = 0; - -my $base = 36; -my $big_endian = 1; - -my $order = "basic"; - -set_style_standard("concise"); sub compile { my @options = grep(/^-/, @_); @@ -167,8 +214,12 @@ sub compile { $big_endian = 1; } elsif ($o eq "-littleendian") { $big_endian = 0; - } elsif (exists $style{substr($o, 1)}) { - set_style(@{$style{substr($o, 1)}}); + } elsif ($o eq "-banner") { + $banner = 0; + } + elsif (exists $style{substr($o, 1)}) { + $stylename = substr($o, 1); + set_style_standard($stylename); } else { warn "Option $o unrecognized"; } @@ -193,22 +244,33 @@ sub compile { B::end_av->isa("B::AV") ? B::end_av->ARRAY : ()); } else { - $objname = "main::" . $objname unless $objname =~ /::/; - print "$objname:\n"; - eval "concise_subref(\$order, \\&$objname)"; - die "concise_subref($order, \\&$objname) failed: $@" if $@; + # convert function names to subrefs + my $objref; + if (ref $objname) { + print $walkHandle "B::Concise::compile($objname)\n" + if $banner; + $objref = $objname; + } else { + $objname = "main::" . $objname unless $objname =~ /::/; + print $walkHandle "$objname:\n"; + no strict 'refs'; + die "err: unknown function ($objname)\n" + unless *{$objname}{CODE}; + $objref = \&$objname; + } + concise_subref($order, $objref); } } } if (!@args or $do_main) { - print "main program:\n" if $do_main; + print $walkHandle "main program:\n" if $do_main; concise_main($order); } } } my %labels; -my $lastnext; +my $lastnext; # remembers op-chain, used to insert gotos my %opclass = ('OP' => "0", 'UNOP' => "1", 'BINOP' => "2", 'LOGOP' => "|", 'LISTOP' => "@", 'PMOP' => "/", 'SVOP' => "\$", 'GVOP' => "*", @@ -261,6 +323,12 @@ sub base_n { my %sequence_num; my $seq_max = 1; +sub reset_sequence { + # reset the sequence + %sequence_num = (); + $seq_max = 1; +} + sub seq { my($op) = @_; return "-" if not exists $sequence_num{$$op}; @@ -360,18 +428,23 @@ sub sequence { } } -sub fmt_line { - my($hr, $fmt, $level) = @_; - my $text = $fmt; +sub fmt_line { # generate text-line for op. + my($hr, $text, $level) = @_; + return '' if $hr->{SKIP}; # suppress line if a callback said so + $text =~ s/\(\?\(([^\#]*?)\#(\w+)([^\#]*?)\)\?\)/ - $hr->{$2} ? $1.$hr->{$2}.$3 : ""/eg; + $hr->{$2} ? $1.$hr->{$2}.$3 : ""/eg; + $text =~ s/\(x\((.*?);(.*?)\)x\)/$order eq "exec" ? $1 : $2/egs; $text =~ s/\(\*\(([^;]*?)\)\*\)/$1 x $level/egs; $text =~ s/\(\*\((.*?);(.*?)\)\*\)/$1 x ($level - 1) . $2 x ($level>0)/egs; - $text =~ s/#([a-zA-Z]+)(\d+)/sprintf("%-$2s", $hr->{$1})/eg; - $text =~ s/#([a-zA-Z]+)/$hr->{$1}/eg; + $text =~ s/\#([a-zA-Z]+)(\d+)/sprintf("%-$2s", $hr->{$1})/eg; + + $text =~ s/\#([a-zA-Z]+)/$hr->{$1}/eg; # populate data into template $text =~ s/[ \t]*~+[ \t]*/ /g; - return $text; + chomp $text; + return "$text\n" if $text ne ""; + return $text; # suppress empty lines } my %priv; @@ -381,7 +454,7 @@ $priv{$_}{128} = "LVINTRO" "padav", "padhv", "enteriter"); $priv{$_}{64} = "REFC" for ("leave", "leavesub", "leavesublv", "leavewrite"); $priv{"aassign"}{64} = "COMMON"; -$priv{"aassign"}{32} = "PHASH"; +$priv{"aassign"}{32} = "PHASH" if $] < 5.009; $priv{"sassign"}{64} = "BKWARD"; $priv{$_}{64} = "RTIME" for ("match", "subst", "substcont"); @{$priv{"trans"}}{1,2,4,8,16,64} = ("<UTF", ">UTF", "IDENT", "SQUASH", "DEL", @@ -389,7 +462,7 @@ $priv{$_}{64} = "RTIME" for ("match", "subst", "substcont"); $priv{"repeat"}{64} = "DOLIST"; $priv{"leaveloop"}{64} = "CONT"; @{$priv{$_}}{32,64,96} = ("DREFAV", "DREFHV", "DREFSV") - for ("entersub", map("rv2${_}v", "a", "s", "h", "g"), "aelem", "helem"); + for (qw(rv2gv rv2sv padsv aelem helem)); $priv{"entersub"}{16} = "DBG"; $priv{"entersub"}{32} = "TARG"; @{$priv{$_}}{4,8,128} = ("INARGS","AMPER","NO()") for ("entersub", "rv2cv"); @@ -417,13 +490,25 @@ $priv{"exists"}{64} = "SUB"; $priv{$_}{64} = "LOCALE" for ("sort", "prtf", "sprintf", "slt", "sle", "seq", "sne", "sgt", "sge", "scmp", "lc", "uc", "lcfirst", "ucfirst"); -@{$priv{"sort"}}{1,2,4} = ("NUM", "INT", "REV"); +@{$priv{"sort"}}{1,2,4,8} = ("NUM", "INT", "REV", "INPLACE"); $priv{"threadsv"}{64} = "SVREFd"; @{$priv{$_}}{16,32,64,128} = ("INBIN","INCR","OUTBIN","OUTCR") for ("open", "backtick"); $priv{"exit"}{128} = "VMS"; $priv{$_}{2} = "FTACCESS" for ("ftrread", "ftrwrite", "ftrexec", "fteread", "ftewrite", "fteexec"); +if ($] >= 5.009) { + # Stacked filetests are post 5.8.x + $priv{$_}{4} = "FTSTACKED" + for ("ftrread", "ftrwrite", "ftrexec", "fteread", "ftewrite", "fteexec", + "ftis", "fteowned", "ftrowned", "ftzero", "ftsize", "ftmtime", + "ftatime", "ftctime", "ftsock", "ftchr", "ftblk", "ftfile", "ftdir", + "ftpipe", "ftlink", "ftsuid", "ftsgid", "ftsvtx", "fttty", "fttext", + "ftbinary"); + # Lexical $_ is post 5.8.x + $priv{$_}{2} = "GREPLEX" + for ("mapwhile", "mapstart", "grepwhile", "grepstart"); +} sub private_flags { my($name, $x) = @_; @@ -497,7 +582,17 @@ sub concise_op { if (defined $padname and class($padname) ne "SPECIAL") { $h{targarg} = $padname->PVX; if ($padname->FLAGS & SVf_FAKE) { - $h{targarglife} = "$h{targarg}:FAKE"; + if ($] < 5.009) { + $h{targarglife} = "$h{targarg}:FAKE"; + } else { + # These changes relate to the jumbo closure fix. + # See changes 19939 and 20005 + my $fake = ''; + $fake .= 'a' if $padname->IVX & 1; # PAD_FAKELEX_ANON + $fake .= 'm' if $padname->IVX & 2; # PAD_FAKELEX_MULTI + $fake .= ':' . $padname->NVX if $curcv->CvFLAGS & CVf_ANON; + $h{targarglife} = "$h{targarg}:FAKE:$fake"; + } } else { my $intro = $padname->NVX - $cop_seq_base; @@ -559,12 +654,14 @@ sub concise_op { undef $lastnext; $h{arg} = "(other->" . seq($op->other) . ")"; } elsif ($h{class} eq "SVOP") { - if (! ${$op->sv}) { - my $sv = (($curcv->PADLIST->ARRAY)[1]->ARRAY)[$op->targ]; - $h{arg} = "[" . concise_sv($sv, \%h) . "]"; - $h{targarglife} = $h{targarg} = ""; - } else { - $h{arg} = "(" . concise_sv($op->sv, \%h) . ")"; + unless ($h{name} eq 'aelemfast' and $op->flags & OPf_SPECIAL) { + if (! ${$op->sv}) { + my $sv = (($curcv->PADLIST->ARRAY)[1]->ARRAY)[$op->targ]; + $h{arg} = "[" . concise_sv($sv, \%h) . "]"; + $h{targarglife} = $h{targarg} = ""; + } else { + $h{arg} = "(" . concise_sv($op->sv, \%h) . ")"; + } } } elsif ($h{class} eq "PADOP") { my $sv = (($curcv->PADLIST->ARRAY)[1]->ARRAY)[$op->padix]; @@ -589,19 +686,21 @@ sub concise_op { $h{label} = $labels{$op->seq}; $h{typenum} = $op->type; $h{noise} = $linenoise[$op->type]; - $_->(\%h, $op, \$format, \$level) for @callbacks; + + $_->(\%h, $op, \$format, \$level, $stylename) for @callbacks; return fmt_line(\%h, $format, $level); } sub B::OP::concise { my($op, $level) = @_; if ($order eq "exec" and $lastnext and $$lastnext != $$op) { + # insert a 'goto' line my $h = {"seq" => seq($lastnext), "class" => class($lastnext), "addr" => sprintf("%#x", $$lastnext)}; - print fmt_line($h, $gotofmt, $level+1); + print $walkHandle fmt_line($h, $gotofmt, $level+1); } $lastnext = $op->next; - print concise_op($op, $level, $format); + print $walkHandle concise_op($op, $level, $format); } # B::OP::terse (see Terse.pm) now just calls this @@ -620,6 +719,7 @@ sub b_terse { $curcv = main_cv unless $curcv; if ($order eq "exec" and $lastnext and $$lastnext != $$op) { + # insert a 'goto' my $h = {"seq" => seq($lastnext), "class" => class($lastnext), "addr" => sprintf("%#x", $$lastnext)}; print fmt_line($h, $style{"terse"}[1], $level+1); @@ -651,7 +751,7 @@ sub tree { if (substr($lines[$i], 0, 1) eq " ") { $lines[$i] = $nokid . $lines[$i]; } else { - $lines[$i] = $kid . $lines[$i]; + $lines[$i] = $kid . $lines[$i]; } } $lines[$i] = $kids . $lines[$i]; @@ -686,7 +786,7 @@ sub tree { # sequence numbers which are easier to control. This way we also don't # stand in the way of a possible future removal of OP sequence # numbers). - + # When you say "perl -MO=Concise -e '$a'", the output should look like: # 4 <@> leave[t1] vKP/REFC ->(end) @@ -732,8 +832,8 @@ sophisticated and flexible. =head1 EXAMPLE -Here's is a short example of output, using the default formatting -conventions : +Here's is a short example of output (aka 'rendering'), using the +default formatting conventions : % perl -MO=Concise -e '$a = $b + 42' 8 <@> leave[1 ref] vKP/REFC ->(end) @@ -747,7 +847,7 @@ conventions : - <1> ex-rv2sv sKRM*/1 ->7 6 <$> gvsv(*a) s ->7 -Each line corresponds to an operator. Null ops appear as C<ex-opname>, +Each line corresponds to an opcode. Null ops appear as C<ex-opname>, where I<opname> is the op that has been optimized away by perl. The number on the first row indicates the op's sequence number. It's @@ -777,6 +877,16 @@ including use'd or require'd files) is printed. Passing C<BEGIN>, C<CHECK>, C<INIT>, or C<END> will cause all of the corresponding special blocks to be printed. +Options affect how things are rendered (ie printed). They're presented +here by their visual effect, 1st being strongest. They're grouped +according to how they interrelate; within each group the options are +mutually exclusive (unless otherwise stated). + +=head2 Options for Opcode Ordering + +These options control the 'vertical display' of opcodes. The display +'order' is also called 'mode' elsewhere in this document. + =over 4 =item B<-basic> @@ -803,6 +913,50 @@ at the left and 'left-to-right' order of children transformed into it isn't suitable for large programs (unless you have a very wide terminal). +=back + +=head2 Options for Line-Style + +These options select the line-style (or just style) used to render +each opcode, and dictates what info is actually printed into each line. + +=over 4 + +=item B<-concise> + +Use the author's favorite set of formatting conventions. This is the +default, of course. + +=item B<-terse> + +Use formatting conventions that emulate the output of B<B::Terse>. The +basic mode is almost indistinguishable from the real B<B::Terse>, and the +exec mode looks very similar, but is in a more logical order and lacks +curly brackets. B<B::Terse> doesn't have a tree mode, so the tree mode +is only vaguely reminiscent of B<B::Terse>. + +=item B<-linenoise> + +Use formatting conventions in which the name of each OP, rather than being +written out in full, is represented by a one- or two-character abbreviation. +This is mainly a joke. + +=item B<-debug> + +Use formatting conventions reminiscent of B<B::Debug>; these aren't +very concise at all. + +=item B<-env> + +Use formatting conventions read from the environment variables +C<B_CONCISE_FORMAT>, C<B_CONCISE_GOTO_FORMAT>, and C<B_CONCISE_TREE_FORMAT>. + +=back + +=head2 Options for tree-specific formatting + +=over 4 + =item B<-compact> Use a tree format in which the minimum amount of space is used for the @@ -827,10 +981,13 @@ look as clean as the VT100 characters, but they'll work with almost any terminal (or the horizontal scrolling mode of less(1)) and are suitable for text documentation or email. This is the default. -=item B<-main> +=back -Include the main program in the output, even if subroutines were also -specified. +These are pairwise exclusive, i.e. compact or loose, vt or ascii. + +=head2 Options controlling sequence numbering + +=over 4 =item B<-base>I<n> @@ -846,47 +1003,51 @@ usual convention for Arabic numerals, and the default. =item B<-littleendian> -Print seqence numbers with the least significant digit first. +Print seqence numbers with the least significant digit first. This is +obviously mutually exclusive with bigendian. -=item B<-concise> - -Use the author's favorite set of formatting conventions. This is the -default, of course. +=back -=item B<-terse> +=head2 Other options -Use formatting conventions that emulate the output of B<B::Terse>. The -basic mode is almost indistinguishable from the real B<B::Terse>, and the -exec mode looks very similar, but is in a more logical order and lacks -curly brackets. B<B::Terse> doesn't have a tree mode, so the tree mode -is only vaguely reminiscient of B<B::Terse>. +=over 4 -=item B<-linenoise> +=item B<-main> -Use formatting conventions in which the name of each OP, rather than being -written out in full, is represented by a one- or two-character abbreviation. -This is mainly a joke. +Include the main program in the output, even if subroutines were also +specified. This is the only option that is not sticky (see below) -=item B<-debug> +=item B<-banner> -Use formatting conventions reminiscient of B<B::Debug>; these aren't -very concise at all. +B::Concise::compile normally prints a banner line identifying the +function name, or in case of a subref, a generic message including +(unfortunately) the stringified coderef. This option suppresses the +printing of the banner. -=item B<-env> +=back -Use formatting conventions read from the environment variables -C<B_CONCISE_FORMAT>, C<B_CONCISE_GOTO_FORMAT>, and C<B_CONCISE_TREE_FORMAT>. +=head2 Option Stickiness -=back +If you invoke Concise more than once in a program, you should know that +the options are 'sticky'. This means that the options you provide in +the first call will be remembered for the 2nd call, unless you +re-specify or change them. =head1 FORMATTING SPECIFICATIONS -For each general style ('concise', 'terse', 'linenoise', etc.) there are -three specifications: one of how OPs should appear in the basic or exec -modes, one of how 'goto' lines should appear (these occur in the exec -mode only), and one of how nodes should appear in tree mode. Each has the -same format, described below. Any text that doesn't match a special -pattern is copied verbatim. +For each line-style ('concise', 'terse', 'linenoise', etc.) there are +3 format-specs which control how OPs are rendered. + +The first is the 'default' format, which is used in both basic and exec +modes to print all opcodes. The 2nd, goto-format, is used in exec +mode when branches are encountered. They're not real opcodes, and are +inserted to look like a closing curly brace. The tree-format is tree +specific. + +When a line is rendered, the correct format string is scanned for the +following items, and data is substituted in, or other manipulations, +like basic indenting. Any text that doesn't match a special pattern +(the items below) is copied verbatim. (Yes, it's a set of s///g steps.) =over 4 @@ -1092,43 +1253,117 @@ The numeric value of the OP's type, in decimal. =head1 Using B::Concise outside of the O framework -It is possible to extend B<B::Concise> by using it outside of the B<O> -framework and providing new styles and new variables. +You can use B<B::Concise>, and call compile() directly, and +repeatedly. By doing so, you can avoid the compile-time only +operation of 'perl -MO=Concise ..'. For example, you can use the +debugger to step through B::Concise::compile() itself. + +When doing so, you can alter Concise output by providing new output +styles, and optionally by adding callback routines which populate new +variables that may be rendered as part of those styles. For all +following sections, please review L</FORMATTING SPECIFICATIONS>. + +=head2 Example: Altering Concise Renderings use B::Concise qw(set_style add_callback); - set_style($format, $gotofmt, $treefmt); + set_style($your_format, $your_gotofmt, $your_treefmt); add_callback - ( - sub - { - my ($h, $op, $level, $format) = @_; + ( sub { + my ($h, $op, $format, $level, $stylename) = @_; $h->{variable} = some_func($op); } - ); + ); B::Concise::compile(@options)->(); -You can specify a style by calling the B<set_style> subroutine. If you -have a new variable in your style, or you want to change the value of an -existing variable, you will need to add a callback to specify the value -for that variable. +=head2 set_style() + +B<set_style> accepts 3 arguments, and updates the three format-specs +comprising a line-style (basic-exec, goto, tree). It has one minor +drawback though; it doesn't register the style under a new name. This +can become an issue if you render more than once and switch styles. +Thus you may prefer to use add_style() and/or set_style_standard() +instead. + +=head2 set_style_standard($name) + +This restores one of the standard line-styles: C<terse>, C<concise>, +C<linenoise>, C<debug>, C<env>, into effect. It also accepts style +names previously defined with add_style(). -This is done by calling B<add_callback> passing references to any -callback subroutines. The subroutines are called in the same order as -they are added. Each subroutine is passed four parameters. These are a -reference to a hash, the keys of which are the names of the variables -and the values of which are their values, the op, the level and the -format. +=head2 add_style() + +This subroutine accepts a new style name and three style arguments as +above, and creates, registers, and selects the newly named style. It is +an error to re-add a style; call set_style_standard() to switch between +several styles. + +=head2 add_callback() + +If your newly minted styles refer to any #variables, you'll need to +define a callback subroutine that will populate (or modify) those +variables. They are then available for use in the style you've chosen. + +The callbacks are called for each opcode visited by Concise, in the +same order as they are added. Each subroutine is passed five +parameters. + + 1. A hashref, containing the variable names and values which are + populated into the report-line for the op + 2. the op, as a B<B::OP> object + 3. a reference to the format string + 4. the formatting (indent) level + 5. the selected stylename To define your own variables, simply add them to the hash, or change existing values if you need to. The level and format are passed in as references to scalars, but it is unlikely that they will need to be changed or even used. +=head2 Running B::Concise::compile() + +B<compile> accepts options as described above in L</OPTIONS>, and +arguments, which are either coderefs, or subroutine names. + +compile() constructs and returns a coderef, which when invoked, scans +the optree, and prints the results to STDOUT. Once you have the +coderef, you may change the output style; thereafter the coderef renders +in the new style. + +B<walk_output> lets you change the print destination from STDOUT to +another open filehandle, or into a string passed as a ref. + + walk_output(\my $buf); + my $walker = B::Concise::compile('-concise','funcName', \&aSubRef); + print "Concise Banner for Functions: $buf\n"; + $walker->(); + print "Concise Rendering(s)?: $buf\n"; + +For each subroutine visited by Concise, the $buf will contain a +banner naming the function or coderef about to be traversed. +Once $walker is invoked, it prints the actual renderings for each. + To switch back to one of the standard styles like C<concise> or -C<terse>, use C<set_style_standard>. +C<terse>, call C<set_style_standard>, or pass the style name into +B::Concise::compile() (as done above). + +=head2 B::Concise::reset_sequence() + +This function (not exported) lets you reset the sequence numbers (note +that they're numbered arbitrarily, their goal being to be human +readable). Its purpose is mostly to support testing, i.e. to compare +the concise output from two identical anonymous subroutines (but +different instances). Without the reset, B::Concise, seeing that +they're separate optrees, generates different sequence numbers in +the output. + +=head2 Errors + +All detected errors, (invalid arguments, internal errors, etc.) are +resolved with a die($message). Use an eval if you wish to catch these +errors and continue processing. -To see the output, call the subroutine returned by B<compile> in the -same way that B<O> does. +In particular, B<compile> will die if you've asked for a non-existent +function-name, a non-existent coderef, or a non-CODE reference. =head1 AUTHOR diff --git a/gnu/usr.bin/perl/ext/Cwd/Cwd.xs b/gnu/usr.bin/perl/ext/Cwd/Cwd.xs index 422e7d6d387..2b02f802b71 100644 --- a/gnu/usr.bin/perl/ext/Cwd/Cwd.xs +++ b/gnu/usr.bin/perl/ext/Cwd/Cwd.xs @@ -208,7 +208,8 @@ err2: #ifndef getcwd_sv /* Taken from perl 5.8's util.c */ -int getcwd_sv(pTHX_ register SV *sv) +#define getcwd_sv(a) Perl_getcwd_sv(aTHX_ a) +int Perl_getcwd_sv(pTHX_ register SV *sv) { #ifndef PERL_MICRO @@ -398,3 +399,40 @@ PPCODE: SvTAINTED_on(TARG); #endif } + +#ifdef WIN32 + +void +getdcwd(...) +PPCODE: +{ + dXSTARG; + int drive; + char *dir; + + /* Drive 0 is the current drive, 1 is A:, 2 is B:, 3 is C: and so on. */ + if ( items == 0 || + (items == 1 && (!SvOK(ST(0)) || (SvPOK(ST(0)) && !SvCUR(ST(0)))))) + drive = 0; + else if (items == 1 && SvPOK(ST(0)) && SvCUR(ST(0)) && + isALPHA(SvPVX(ST(0))[0])) + drive = toUPPER(SvPVX(ST(0))[0]) - 'A' + 1; + else + croak("Usage: getdcwd(DRIVE)"); + + /* Pass a NULL pointer as the second argument to have space allocated. */ + if (dir = _getdcwd(drive, NULL, MAXPATHLEN)) { + sv_setpvn(TARG, dir, strlen(dir)); + free(dir); + SvPOK_only(TARG); + } + else + sv_setsv(TARG, &PL_sv_undef); + + XSprePUSH; PUSHTARG; +#ifndef INCOMPLETE_TAINTS + SvTAINTED_on(TARG); +#endif +} + +#endif diff --git a/gnu/usr.bin/perl/ext/DB_File/DB_File.pm b/gnu/usr.bin/perl/ext/DB_File/DB_File.pm index 77ba6ccf14f..3f53d468cdf 100644 --- a/gnu/usr.bin/perl/ext/DB_File/DB_File.pm +++ b/gnu/usr.bin/perl/ext/DB_File/DB_File.pm @@ -1,10 +1,10 @@ # DB_File.pm -- Perl 5 interface to Berkeley DB # # written by Paul Marquess (pmqs@cpan.org) -# last modified 22nd December 2003 -# version 1.808 +# last modified 20th June 2004 +# version 1.809 # -# Copyright (c) 1995-2003 Paul Marquess. All rights reserved. +# Copyright (c) 1995-2004 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. @@ -165,7 +165,7 @@ our ($db_version, $use_XSLoader, $splice_end_array); use Carp; -$VERSION = "1.808" ; +$VERSION = "1.809" ; { local $SIG{__WARN__} = sub {$splice_end_array = "@_";}; @@ -266,7 +266,8 @@ sub tie_hash_or_array $arg[2] = O_CREAT()|O_RDWR() if @arg >=3 && ! defined $arg[2]; $arg[3] = 0666 if @arg >=4 && ! defined $arg[3]; - # make recno in Berkeley DB version 2 work like recno in version 1. + # make recno in Berkeley DB version 2 (or better) work like + # recno in version 1. 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 ; @@ -1821,7 +1822,7 @@ fix very easily. use DB_File ; my %hash ; - my $filename = "/tmp/filt" ; + my $filename = "filt" ; unlink $filename ; my $db = tie %hash, 'DB_File', $filename, O_CREAT|O_RDWR, 0666, $DB_HASH @@ -1863,7 +1864,7 @@ Here is a DBM Filter that does it: use strict ; use DB_File ; my %hash ; - my $filename = "/tmp/filt" ; + my $filename = "filt" ; unlink $filename ; @@ -1894,8 +1895,8 @@ peril! The locking technique went like this. - $db = tie(%db, 'DB_File', '/tmp/foo.db', O_CREAT|O_RDWR, 0666) - || die "dbcreat /tmp/foo.db $!"; + $db = tie(%db, 'DB_File', 'foo.db', O_CREAT|O_RDWR, 0644) + || die "dbcreat foo.db $!"; $fd = $db->fd; open(DB_FH, "+<&=$fd") || die "dup $!"; flock (DB_FH, LOCK_EX) || die "flock: $!"; @@ -2252,7 +2253,7 @@ compile properly on IRIX 5.3. =head1 COPYRIGHT -Copyright (c) 1995-2003 Paul Marquess. All rights reserved. This program +Copyright (c) 1995-2004 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/ext/DB_File/DB_File.xs b/gnu/usr.bin/perl/ext/DB_File/DB_File.xs index fec250961d2..eb83670338d 100644 --- a/gnu/usr.bin/perl/ext/DB_File/DB_File.xs +++ b/gnu/usr.bin/perl/ext/DB_File/DB_File.xs @@ -3,12 +3,12 @@ DB_File.xs -- Perl 5 interface to Berkeley DB written by Paul Marquess <pmqs@cpan.org> - last modified 22nd December 2003 - version 1.808 + last modified 20th June 2004 + version 1.809 All comments/suggestions/problems are welcome - Copyright (c) 1995-2003 Paul Marquess. All rights reserved. + Copyright (c) 1995-2004 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. @@ -108,6 +108,7 @@ 1.806 - recursion detection beefed up. 1.807 - no change 1.808 - leak fixed in ParseOpenInfo + 1.809 - no change */ @@ -932,7 +933,10 @@ SV * sv ; STRLEN n_a; dMY_CXT; -/* printf("In ParseOpenInfo name=[%s] flags=[%d] mode = [%d]\n", name, flags, mode) ; */ +#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 */ diff --git a/gnu/usr.bin/perl/ext/DB_File/typemap b/gnu/usr.bin/perl/ext/DB_File/typemap index 4c9df9e3c02..f159995080b 100644 --- a/gnu/usr.bin/perl/ext/DB_File/typemap +++ b/gnu/usr.bin/perl/ext/DB_File/typemap @@ -1,8 +1,8 @@ # typemap for Perl 5 interface to Berkeley # # written by Paul Marquess <Paul.Marquess@btinternet.com> -# last modified 10th December 2000 -# version 1.74 +# last modified 20th June 2004 +# version 1.809 # #################################### DB SECTION # @@ -17,20 +17,23 @@ INPUT T_dbtkeydatum DBM_ckFilter($arg, filter_store_key, \"filter_store_key\"); DBT_clear($var) ; - if (SvOK($arg)){ - if (db->type != DB_RECNO) { - $var.data = SvPVbyte($arg, PL_na); - $var.size = (int)PL_na; - } - else { - Value = GetRecnoKey(aTHX_ db, SvIV($arg)) ; - $var.data = & Value; - $var.size = (int)sizeof(recno_t); - } + SvGETMAGIC($arg) ; + if (db->type == DB_RECNO) { + if (SvOK($arg)) + Value = GetRecnoKey(aTHX_ db, SvIV($arg)) ; + else + Value = 1 ; + $var.data = & Value; + $var.size = (int)sizeof(recno_t); + } + else if (SvOK($arg)) { + $var.data = SvPVbyte($arg, PL_na); + $var.size = (int)PL_na; } T_dbtdatum DBM_ckFilter($arg, filter_store_value, \"filter_store_value\"); DBT_clear($var) ; + SvGETMAGIC($arg) ; if (SvOK($arg)) { $var.data = SvPVbyte($arg, PL_na); $var.size = (int)PL_na; diff --git a/gnu/usr.bin/perl/ext/DynaLoader/dl_hpux.xs b/gnu/usr.bin/perl/ext/DynaLoader/dl_hpux.xs index a7119ba3680..5e7c7445af2 100644 --- a/gnu/usr.bin/perl/ext/DynaLoader/dl_hpux.xs +++ b/gnu/usr.bin/perl/ext/DynaLoader/dl_hpux.xs @@ -102,6 +102,19 @@ end: sv_setiv( ST(0), PTR2IV(obj) ); +int +dl_unload_file(libref) + void * libref + CODE: + DLDEBUG(1,PerlIO_printf(Perl_debug_log, "dl_unload_file(%lx):\n", PTR2ul(libref))); + RETVAL = (shl_unload(libref) == 0 ? 1 : 0); + if (!RETVAL) + SaveError(aTHX_ "%s", Strerror(errno)); + DLDEBUG(2,PerlIO_printf(Perl_debug_log, " retval = %d\n", RETVAL)); + OUTPUT: + RETVAL + + void * dl_find_symbol(libhandle, symbolname) void * libhandle diff --git a/gnu/usr.bin/perl/ext/Encode/lib/Encode/Unicode/UTF7.pm b/gnu/usr.bin/perl/ext/Encode/lib/Encode/Unicode/UTF7.pm index 5d6b8c10566..0518650edad 100644 --- a/gnu/usr.bin/perl/ext/Encode/lib/Encode/Unicode/UTF7.pm +++ b/gnu/usr.bin/perl/ext/Encode/lib/Encode/Unicode/UTF7.pm @@ -1,12 +1,12 @@ # -# $Id: UTF7.pm,v 1.2 2003/12/03 03:02:29 millert Exp $ +# $Id: UTF7.pm,v 1.3 2004/08/09 18:09:09 millert Exp $ # package Encode::Unicode::UTF7; use strict; no warnings 'redefine'; use base qw(Encode::Encoding); __PACKAGE__->Define('UTF-7'); -our $VERSION = do { my @r = (q$Revision: 1.2 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; +our $VERSION = do { my @r = (q$Revision: 1.3 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; use MIME::Base64; use Encode; @@ -38,7 +38,8 @@ sub encode($$;$){ if ($1 eq "+"){ $bytes .= "+-"; }else{ - my $base64 = encode_base64($e_utf16->encode($1), ''); + my $s = $1; + my $base64 = encode_base64($e_utf16->encode($s), ''); $base64 =~ s/=+$//; $bytes .= "+$base64-"; } diff --git a/gnu/usr.bin/perl/ext/Encode/t/Mod_EUCJP.pm b/gnu/usr.bin/perl/ext/Encode/t/Mod_EUCJP.pm index ed8da56d514..044a83f08ec 100644 --- a/gnu/usr.bin/perl/ext/Encode/t/Mod_EUCJP.pm +++ b/gnu/usr.bin/perl/ext/Encode/t/Mod_EUCJP.pm @@ -1,4 +1,4 @@ -# $Id: Mod_EUCJP.pm,v 1.2 2003/12/03 03:02:29 millert Exp $ +# $Id: Mod_EUCJP.pm,v 1.3 2004/08/09 18:09:10 millert Exp $ # This file is in euc-jp package Mod_EUCJP; use encoding "euc-jp"; diff --git a/gnu/usr.bin/perl/ext/Encode/t/enc_data.t b/gnu/usr.bin/perl/ext/Encode/t/enc_data.t index 1d90b059de9..b07e3645907 100644 --- a/gnu/usr.bin/perl/ext/Encode/t/enc_data.t +++ b/gnu/usr.bin/perl/ext/Encode/t/enc_data.t @@ -1,4 +1,4 @@ -# $Id: enc_data.t,v 1.2 2003/12/03 03:02:29 millert Exp $ +# $Id: enc_data.t,v 1.3 2004/08/09 18:09:10 millert Exp $ BEGIN { require Config; import Config; diff --git a/gnu/usr.bin/perl/ext/Encode/t/enc_eucjp.t b/gnu/usr.bin/perl/ext/Encode/t/enc_eucjp.t index 5ce654e73fb..e871e30a855 100644 --- a/gnu/usr.bin/perl/ext/Encode/t/enc_eucjp.t +++ b/gnu/usr.bin/perl/ext/Encode/t/enc_eucjp.t @@ -1,4 +1,4 @@ -# $Id: enc_eucjp.t,v 1.3 2004/04/07 21:33:02 millert Exp $ +# $Id: enc_eucjp.t,v 1.4 2004/08/09 18:09:10 millert Exp $ # This is the twin of enc_utf8.t . BEGIN { diff --git a/gnu/usr.bin/perl/ext/Encode/t/enc_module.t b/gnu/usr.bin/perl/ext/Encode/t/enc_module.t index 7d1e58e6dfa..b7c0a913bc2 100644 --- a/gnu/usr.bin/perl/ext/Encode/t/enc_module.t +++ b/gnu/usr.bin/perl/ext/Encode/t/enc_module.t @@ -1,4 +1,4 @@ -# $Id: enc_module.t,v 1.2 2003/12/03 03:02:29 millert Exp $ +# $Id: enc_module.t,v 1.3 2004/08/09 18:09:10 millert Exp $ # This file is in euc-jp BEGIN { require Config; import Config; diff --git a/gnu/usr.bin/perl/ext/Encode/t/enc_utf8.t b/gnu/usr.bin/perl/ext/Encode/t/enc_utf8.t index eb0f4d2d637..b6adff1fa5e 100644 --- a/gnu/usr.bin/perl/ext/Encode/t/enc_utf8.t +++ b/gnu/usr.bin/perl/ext/Encode/t/enc_utf8.t @@ -1,4 +1,4 @@ -# $Id: enc_utf8.t,v 1.3 2004/04/07 21:33:02 millert Exp $ +# $Id: enc_utf8.t,v 1.4 2004/08/09 18:09:10 millert Exp $ # This is the twin of enc_eucjp.t . BEGIN { diff --git a/gnu/usr.bin/perl/ext/IO/lib/IO/Handle.pm b/gnu/usr.bin/perl/ext/IO/lib/IO/Handle.pm index 50d391f820d..4bb8ddf5b59 100644 --- a/gnu/usr.bin/perl/ext/IO/lib/IO/Handle.pm +++ b/gnu/usr.bin/perl/ext/IO/lib/IO/Handle.pm @@ -262,7 +262,7 @@ use IO (); # Load the XS module require Exporter; @ISA = qw(Exporter); -$VERSION = "1.23"; +$VERSION = "1.24"; $VERSION = eval $VERSION; @EXPORT_OK = qw( @@ -494,42 +494,47 @@ sub input_record_separator { sub input_line_number { local $.; - my $tell = tell qualify($_[0], caller) if ref($_[0]); + () = tell qualify($_[0], caller) if ref($_[0]); my $prev = $.; $. = $_[1] if @_ > 1; $prev; } sub format_page_number { - my $old = new SelectSaver qualify($_[0], caller) if ref($_[0]); + my $old; + $old = new SelectSaver qualify($_[0], caller) if ref($_[0]); my $prev = $%; $% = $_[1] if @_ > 1; $prev; } sub format_lines_per_page { - my $old = new SelectSaver qualify($_[0], caller) if ref($_[0]); + my $old; + $old = new SelectSaver qualify($_[0], caller) if ref($_[0]); my $prev = $=; $= = $_[1] if @_ > 1; $prev; } sub format_lines_left { - my $old = new SelectSaver qualify($_[0], caller) if ref($_[0]); + my $old; + $old = new SelectSaver qualify($_[0], caller) if ref($_[0]); my $prev = $-; $- = $_[1] if @_ > 1; $prev; } sub format_name { - my $old = new SelectSaver qualify($_[0], caller) if ref($_[0]); + my $old; + $old = new SelectSaver qualify($_[0], caller) if ref($_[0]); my $prev = $~; $~ = qualify($_[1], caller) if @_ > 1; $prev; } sub format_top_name { - my $old = new SelectSaver qualify($_[0], caller) if ref($_[0]); + my $old; + $old = new SelectSaver qualify($_[0], caller) if ref($_[0]); my $prev = $^; $^ = qualify($_[1], caller) if @_ > 1; $prev; @@ -604,7 +609,8 @@ sub constant { sub printflush { my $io = shift; - my $old = new SelectSaver qualify($io, caller) if ref($io); + my $old; + $old = new SelectSaver qualify($io, caller) if ref($io); local $| = 1; if(ref($io)) { print $io @_; diff --git a/gnu/usr.bin/perl/ext/IO/lib/IO/Pipe.pm b/gnu/usr.bin/perl/ext/IO/lib/IO/Pipe.pm index c70adfed87b..1d43b6e904a 100644 --- a/gnu/usr.bin/perl/ext/IO/lib/IO/Pipe.pm +++ b/gnu/usr.bin/perl/ext/IO/lib/IO/Pipe.pm @@ -14,7 +14,7 @@ our($VERSION); use Carp; use Symbol; -$VERSION = "1.122"; +$VERSION = "1.123"; sub new { my $type = shift; @@ -98,7 +98,8 @@ sub reader { unless(ref($me) || ref($me = $me->new)); my $fh = ${*$me}[0]; - my $pid = $me->_doit(0, $fh, @_) + my $pid; + $pid = $me->_doit(0, $fh, @_) if(@_); close ${*$me}[1]; @@ -121,7 +122,8 @@ sub writer { unless(ref($me) || ref($me = $me->new)); my $fh = ${*$me}[1]; - my $pid = $me->_doit(1, $fh, @_) + my $pid; + $pid = $me->_doit(1, $fh, @_) if(@_); close ${*$me}[0]; diff --git a/gnu/usr.bin/perl/ext/List/Util/ChangeLog b/gnu/usr.bin/perl/ext/List/Util/ChangeLog deleted file mode 100644 index 934643ace16..00000000000 --- a/gnu/usr.bin/perl/ext/List/Util/ChangeLog +++ /dev/null @@ -1,166 +0,0 @@ -Change 713 on 2002/03/18 by <gbarr@pobox.com> (Graham Barr) - - Add Scalar::Util::openhandle() - -Change 647 on 2001/09/18 by <gbarr@pobox.com> (Graham Barr) - - Release 1.06 - -Change 645 on 2001/09/07 by <gbarr@pobox.com> (Graham Barr) - - Some platforms require the main executable to export symbols - needed by modules. In 5.7.2 and prior releases of perl - Perl_cxinc was not exported so we need to duplicate its - functionality - -Change 644 on 2001/09/07 by <gbarr@pobox.com> (Graham Barr) - - Generate a typemap for NV for all perl version up to and - including 5.006 - -Change 643 on 2001/09/07 by <gbarr@pobox.com> (Graham Barr) - - Document problems known with specific versions of perl - -Change 642 on 2001/09/05 by <gbarr@pobox.com> (Graham Barr) - - Release 1.05 - -Change 641 on 2001/09/05 by <gbarr@pobox.com> (Graham Barr) - - Fix shuffle() to compile with threaded perl - -Change 640 on 2001/09/05 by <gbarr@pobox.com> (Graham Barr) - - Release 1.04 - -Change 639 on 2001/09/05 by <gbarr@pobox.com> (Graham Barr) - - Fix context type (caused a core on Tru64) - Call pp_rand via *(PL_ppaddr[OP_RAND]) - -Change 638 on 2001/09/05 by <gbarr@pobox.com> (Graham Barr) - - Documentation updates - -Change 637 on 2001/09/03 by <gbarr@pobox.com> (Graham Barr) - - Release 1.03 - -Change 636 on 2001/09/03 by <gbarr@pobox.com> (Graham Barr) - - More changes to help merging with core dist - -Change 635 on 2001/09/03 by <gbarr@pobox.com> (Graham Barr) - - Added List::Util::shuffle() similar to that described in - the perl FAQ except it returns a shuffled list instead of - modifying an array passed by reference - -Change 632 on 2001/09/03 by <gbarr@pobox.com> (Graham Barr) - - Handle tied variables passed for the number to dualvar() - Preserve number type (IV/UV/NV) in dualvar() - -Change 631 on 2001/08/31 by <gbarr@pobox.com> (Graham Barr) - - Handle eval{} inside of the code blocks for first and reduce - -Change 629 on 2001/08/22 by <gbarr@pobox.com> (Graham Barr) - - perl5.004 does not like exit from within a BEGIN, it core dumps - -Change 628 on 2001/08/22 by <gbarr@pobox.com> (Graham Barr) - - Fix stack problem in first() and reduce() - Align with core dist - -Change 483 on 2000/04/10 by <gbarr@pobox.com> (Graham Barr) - - Release 1.02 - -Change 482 on 2000/04/10 by <gbarr@pobox.com> (Graham Barr) - - Check for SvMAGICAL on argument for reftype and blessed - -Change 366 on 2000/03/03 by <gbarr@pobox.com> (Graham Barr) - - Release 1.01 - -Change 365 on 2000/03/03 by <gbarr@pobox.com> (Graham Barr) - - - Added auto-detection for a compiler and install the perl version - if not found - - Better perl implemenation of reftype, should be thread-safe now - -Change 364 on 2000/03/03 by <gbarr@pobox.com> (Graham Barr) - - - Added some examples of simple subs that have been requested - but not added - - Updated copyright dates - -Change 344 on 1999/11/10 by <gbarr@pobox.com> (Graham Barr) - - - Better testcase for reftype - -Change 343 on 1999/11/10 by <gbarr@pobox.com> (Graham Barr) - - - Modules are now called List::Util & Scalar::Util - - Supports non-XS install - - perl version of reftype now returns "REF" when it should - -Change 311 on 1999/06/01 by <gbarr@pobox.com> (Graham Barr) - - Updated README - -Change 275 on 1999/03/22 by <gbarr@pobox.com> (Graham Barr) - - Removed forall as it is very broken - -Change 274 on 1999/03/22 by <gbarr@pobox.com> (Graham Barr) - - Added List::Util::forall - -Change 273 on 1999/03/21 by <gbarr@pobox.com> (Graham Barr) - - Added weaken and isweak to Ref::Util - -Change 272 on 1999/03/21 by <gbarr@pobox.com> (Graham Barr) - - Add new .pm files to repository - -Change 271 on 1999/03/21 by <gbarr@pobox.com> (Graham Barr) - - - Split into three packages Ref::Util, List::Util and Scalar::DualVar - - readonly and clock were removed in favor of other modules - -Change 270 on 1999/03/21 by <gbarr@pobox.com> (Graham Barr) - - Rename package - -Change 269 on 1999/03/21 by <gbarr@pobox.com> (Graham Barr) - - - Added reftype - - improved reduce by not doing a sub call - - reduce now uses $a and $b - - now compiles with 5.005_5x - -Change 178 on 1998/07/26 by <gbarr@pobox.com> (Graham Barr) - - Modified XS code so it will compile with 5.004 and 5.005 - -Change 115 on 1998/02/21 by <gbarr@pobox.com> (Graham Barr) - - Fri Feb 20 1998 Graham Barr <gbarr@pobox.com> - - t/min.t, t/max.t - - Change sor to do a numerical sort - - Fri Dec 19 1997 Graham Barr <gbarr@pobox.com> - - - Added readonly() - - Wed Nov 19 1997 Graham Barr <gbarr@pobox.com> - - - Initial release - diff --git a/gnu/usr.bin/perl/ext/List/Util/t/lln.t b/gnu/usr.bin/perl/ext/List/Util/t/lln.t index 45786062dde..68fa7cde744 100644 --- a/gnu/usr.bin/perl/ext/List/Util/t/lln.t +++ b/gnu/usr.bin/perl/ext/List/Util/t/lln.t @@ -3,7 +3,7 @@ # -# $Id: lln.t,v 1.2 2003/12/03 03:02:31 millert Exp $ +# $Id: lln.t,v 1.3 2004/08/09 18:09:15 millert Exp $ # Author: Slaven Rezic # @@ -41,7 +41,7 @@ ok(!!looks_like_number("Inf"), $] >= 5.006001); ok(!!looks_like_number("Infinity"), $] >= 5.008); ok(!!looks_like_number("NaN"), $] >= 5.008); ok(!!looks_like_number("foo"), ''); -ok(!!looks_like_number(undef), 1); +ok(!!looks_like_number(undef), $] < 5.008005); # That's enough - we trust the perl core tests like t/base/num.t __END__ diff --git a/gnu/usr.bin/perl/ext/ODBM_File/ODBM_File.pm b/gnu/usr.bin/perl/ext/ODBM_File/ODBM_File.pm index c14954cdaad..e9bdce5c69b 100644 --- a/gnu/usr.bin/perl/ext/ODBM_File/ODBM_File.pm +++ b/gnu/usr.bin/perl/ext/ODBM_File/ODBM_File.pm @@ -7,7 +7,7 @@ require Tie::Hash; use XSLoader (); our @ISA = qw(Tie::Hash); -our $VERSION = "1.04"; +our $VERSION = "1.05"; XSLoader::load 'ODBM_File', $VERSION; diff --git a/gnu/usr.bin/perl/ext/ODBM_File/ODBM_File.xs b/gnu/usr.bin/perl/ext/ODBM_File/ODBM_File.xs index fb3b5740ece..95dedfff9d1 100644 --- a/gnu/usr.bin/perl/ext/ODBM_File/ODBM_File.xs +++ b/gnu/usr.bin/perl/ext/ODBM_File/ODBM_File.xs @@ -32,7 +32,7 @@ datum nextkey(datum key); * Set DBM_BUG_DUPLICATE_FREE in the extension hint file. */ /* Close the previous dbm, and fail to open a new dbm */ -#define dbmclose() ((void) dbminit("/tmp/x/y/z/z/y")) +#define dbmclose() ((void) dbminit("/non/exist/ent")) #endif #include <fcntl.h> diff --git a/gnu/usr.bin/perl/ext/Opcode/Safe.pm b/gnu/usr.bin/perl/ext/Opcode/Safe.pm index 5036943cd72..d37e1fd8dbc 100644 --- a/gnu/usr.bin/perl/ext/Opcode/Safe.pm +++ b/gnu/usr.bin/perl/ext/Opcode/Safe.pm @@ -3,7 +3,7 @@ package Safe; use 5.003_11; use strict; -$Safe::VERSION = "2.10"; +$Safe::VERSION = "2.11"; # *** Don't declare any lexicals above this point *** # @@ -26,6 +26,7 @@ sub lexless_anon_sub { } use Carp; +use Carp::Heavy; use Opcode 1.01, qw( opset opset_to_ops opmask_add diff --git a/gnu/usr.bin/perl/ext/POSIX/POSIX.pm b/gnu/usr.bin/perl/ext/POSIX/POSIX.pm index b6b893442c4..78d733a8085 100644 --- a/gnu/usr.bin/perl/ext/POSIX/POSIX.pm +++ b/gnu/usr.bin/perl/ext/POSIX/POSIX.pm @@ -2,7 +2,7 @@ package POSIX; our(@ISA, %EXPORT_TAGS, @EXPORT_OK, $AUTOLOAD) = (); -our $VERSION = "1.07"; +our $VERSION = "1.08"; use AutoLoader; @@ -623,7 +623,7 @@ sub chdir { } sub chown { - usage "chown(filename, uid, gid)" if @_ != 3; + usage "chown(uid, gid, filename)" if @_ != 3; CORE::chown($_[0], $_[1], $_[2]); } @@ -921,6 +921,7 @@ for (values %EXPORT_TAGS) { gmtime isatty kill + lchown link localtime log diff --git a/gnu/usr.bin/perl/ext/POSIX/POSIX.pod b/gnu/usr.bin/perl/ext/POSIX/POSIX.pod index 598464d3fc6..66f5381949f 100644 --- a/gnu/usr.bin/perl/ext/POSIX/POSIX.pod +++ b/gnu/usr.bin/perl/ext/POSIX/POSIX.pod @@ -417,9 +417,9 @@ Retrieves the value of a configurable limit on a file or directory. This uses file descriptors such as those obtained by calling C<POSIX::open>. The following will determine the maximum length of the longest allowable -pathname on the filesystem which holds C</tmp/foo>. +pathname on the filesystem which holds C</var/foo>. - $fd = POSIX::open( "/tmp/foo", &POSIX::O_RDONLY ); + $fd = POSIX::open( "/var/foo", &POSIX::O_RDONLY ); $path_max = POSIX::fpathconf( $fd, &POSIX::_PC_PATH_MAX ); Returns C<undef> on failure. @@ -919,7 +919,7 @@ See also L<perlfunc/sysopen>. Open a directory for reading. - $dir = POSIX::opendir( "/tmp" ); + $dir = POSIX::opendir( "/var" ); @files = POSIX::readdir( $dir ); POSIX::closedir( $dir ); @@ -930,9 +930,9 @@ Returns C<undef> on failure. Retrieves the value of a configurable limit on a file or directory. The following will determine the maximum length of the longest allowable -pathname on the filesystem which holds C</tmp>. +pathname on the filesystem which holds C</var>. - $path_max = POSIX::pathconf( "/tmp", &POSIX::_PC_PATH_MAX ); + $path_max = POSIX::pathconf( "/var", &POSIX::_PC_PATH_MAX ); Returns C<undef> on failure. @@ -1190,7 +1190,7 @@ See also L<Math::Trig>. This is functionally identical to Perl's builtin C<sleep()> function for suspending the execution of the current for process for certain -number of seconds, see L<perlfunc/sleep>. There is one signifanct +number of seconds, see L<perlfunc/sleep>. There is one significant difference, however: C<POSIX::sleep()> returns the number of B<unslept> seconds, while the C<CORE::sleep()> returns the number of slept seconds. diff --git a/gnu/usr.bin/perl/ext/POSIX/POSIX.xs b/gnu/usr.bin/perl/ext/POSIX/POSIX.xs index deefbd190ac..d56c3795888 100644 --- a/gnu/usr.bin/perl/ext/POSIX/POSIX.xs +++ b/gnu/usr.bin/perl/ext/POSIX/POSIX.xs @@ -1013,6 +1013,7 @@ localeconv() #ifdef HAS_LOCALECONV struct lconv *lcbuf; RETVAL = newHV(); + sv_2mortal((SV*)RETVAL); if ((lcbuf = localeconv())) { /* the strings */ if (lcbuf->decimal_point && *lcbuf->decimal_point) @@ -1805,7 +1806,18 @@ access(filename, mode) char * ctermid(s = 0) - char * s = 0; + char * s = 0; + CODE: +#ifdef HAS_CTERMID_R + s = safemalloc((size_t) L_ctermid); +#endif + RETVAL = ctermid(s); + OUTPUT: + RETVAL + CLEANUP: +#ifdef HAS_CTERMID_R + Safefree(s); +#endif char * cuserid(s = 0) @@ -1863,3 +1875,18 @@ getcwd() XSprePUSH; PUSHTARG; } +SysRet +lchown(uid, gid, path) + Uid_t uid + Gid_t gid + char * path + CODE: +#ifdef HAS_LCHOWN + /* yes, the order of arguments is different, + * but consistent with CORE::chown() */ + RETVAL = lchown(path, uid, gid); +#else + RETVAL = not_here("lchown"); +#endif + OUTPUT: + RETVAL diff --git a/gnu/usr.bin/perl/ext/Socket/Socket.pm b/gnu/usr.bin/perl/ext/Socket/Socket.pm index 0a41670aebe..8c6794df751 100644 --- a/gnu/usr.bin/perl/ext/Socket/Socket.pm +++ b/gnu/usr.bin/perl/ext/Socket/Socket.pm @@ -1,7 +1,7 @@ package Socket; our($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS); -$VERSION = "1.76"; +$VERSION = "1.77"; =head1 NAME @@ -32,8 +32,8 @@ Socket, sockaddr_in, sockaddr_un, inet_aton, inet_ntoa - load the C socket.h def $proto = getprotobyname('tcp'); socket(Socket_Handle, PF_UNIX, SOCK_STREAM, $proto); - unlink('/tmp/usock'); - $sun = sockaddr_un('/tmp/usock'); + unlink('/var/run/usock'); + $sun = sockaddr_un('/var/run/usock'); connect(Socket_Handle,$sun); =head1 DESCRIPTION diff --git a/gnu/usr.bin/perl/ext/Socket/Socket.xs b/gnu/usr.bin/perl/ext/Socket/Socket.xs index 040dda40086..56443400f51 100644 --- a/gnu/usr.bin/perl/ext/Socket/Socket.xs +++ b/gnu/usr.bin/perl/ext/Socket/Socket.xs @@ -298,16 +298,17 @@ sockaddr_family(sockaddr) void pack_sockaddr_un(pathname) - char * pathname + SV * pathname CODE: { #ifdef I_SYS_UN struct sockaddr_un sun_ad; /* fear using sun */ STRLEN len; + char * pathname_pv; Zero( &sun_ad, sizeof sun_ad, char ); sun_ad.sun_family = AF_UNIX; - len = strlen(pathname); + pathname_pv = SvPV(pathname,len); if (len > sizeof(sun_ad.sun_path)) len = sizeof(sun_ad.sun_path); # ifdef OS2 /* Name should start with \socket\ and contain backslashes! */ @@ -315,16 +316,17 @@ pack_sockaddr_un(pathname) int off; char *s, *e; - if (pathname[0] != '/' && pathname[0] != '\\') - croak("Relative UNIX domain socket name '%s' unsupported", pathname); + if (pathname_pv[0] != '/' && pathname_pv[0] != '\\') + croak("Relative UNIX domain socket name '%s' unsupported", + pathname_pv); else if (len < 8 - || pathname[7] != '/' && pathname[7] != '\\' - || !strnicmp(pathname + 1, "socket", 6)) + || pathname_pv[7] != '/' && pathname_pv[7] != '\\' + || !strnicmp(pathname_pv + 1, "socket", 6)) off = 7; else off = 0; /* Preserve names starting with \socket\ */ Copy( "\\socket", sun_ad.sun_path, off, char); - Copy( pathname, sun_ad.sun_path + off, len, char ); + Copy( pathname_pv, sun_ad.sun_path + off, len, char ); s = sun_ad.sun_path + off - 1; e = s + len + 1; @@ -333,7 +335,7 @@ pack_sockaddr_un(pathname) *s = '\\'; } # else /* !( defined OS2 ) */ - Copy( pathname, sun_ad.sun_path, len, char ); + Copy( pathname_pv, sun_ad.sun_path, len, char ); # endif if (0) not_here("dummy"); ST(0) = sv_2mortal(newSVpvn((char *)&sun_ad, sizeof sun_ad)); @@ -372,7 +374,10 @@ unpack_sockaddr_un(sun_sv) AF_UNIX); } e = (char*)addr.sun_path; - while (*e && e < (char*)addr.sun_path + sizeof addr.sun_path) + /* On Linux, the name of abstract unix domain sockets begins + * with a '\0', so allow this. */ + while ((*e || (e == addr.sun_path && e[1] && sockaddrlen > 1)) + && e < (char*)addr.sun_path + sizeof addr.sun_path) ++e; ST(0) = sv_2mortal(newSVpvn(addr.sun_path, e - (char*)addr.sun_path)); #else diff --git a/gnu/usr.bin/perl/ext/Sys/Syslog/Syslog.pm b/gnu/usr.bin/perl/ext/Sys/Syslog/Syslog.pm index 13598e7de06..244157f755e 100644 --- a/gnu/usr.bin/perl/ext/Sys/Syslog/Syslog.pm +++ b/gnu/usr.bin/perl/ext/Sys/Syslog/Syslog.pm @@ -7,7 +7,7 @@ use Carp; @ISA = qw(Exporter DynaLoader); @EXPORT = qw(openlog closelog setlogmask syslog); @EXPORT_OK = qw(setlogsock); -$VERSION = '0.04'; +$VERSION = '0.05'; # it would be nice to try stream/unix first, since that will be # most efficient. However streams are dodgy - see _syslog_send_stream @@ -394,6 +394,7 @@ sub _syslog_send_socket { sub xlate { local($name) = @_; + return $name+0 if $name =~ /^\s*\d+\s*$/; $name = uc $name; $name = "LOG_$name" unless $name =~ /^LOG_/; $name = "Sys::Syslog::$name"; diff --git a/gnu/usr.bin/perl/ext/Time/HiRes/HiRes.pm b/gnu/usr.bin/perl/ext/Time/HiRes/HiRes.pm index 9cfcb165c91..de7ddfc0a15 100644 --- a/gnu/usr.bin/perl/ext/Time/HiRes/HiRes.pm +++ b/gnu/usr.bin/perl/ext/Time/HiRes/HiRes.pm @@ -15,7 +15,7 @@ require DynaLoader; d_usleep d_ualarm d_gettimeofday d_getitimer d_setitimer d_nanosleep); -$VERSION = '1.52'; +$VERSION = '1.59'; $XS_VERSION = $VERSION; $VERSION = eval $VERSION; @@ -329,8 +329,16 @@ become negative just became negative. Maybe your compiler is broken? =head1 CAVEATS Notice that the core C<time()> maybe rounding rather than truncating. -What this means is that the core C<time()> may be reporting the time as one second -later than C<gettimeofday()> and C<Time::HiRes::time()>. +What this means is that the core C<time()> may be reporting the time +as one second later than C<gettimeofday()> and C<Time::HiRes::time()>. + +Adjusting the system clock (either manually or by services like ntp) +may cause problems, especially for long running programs that assume +a monotonously increasing time (note that all platforms do not adjust +time as gracefully as UNIX ntp does). For example in Win32 (and derived +platforms like Cygwin and MinGW) the Time::HiRes::time() may temporarily +drift off from the system clock (and the original time()) by up to 0.5 +seconds. Time::HiRes will notice this eventually and recalibrate. =head1 AUTHORS @@ -343,7 +351,7 @@ G. Aas <gisle@aas.no> Copyright (c) 1996-2002 Douglas E. Wegscheid. All rights reserved. -Copyright (c) 2002,2003 Jarkko Hietaniemi. All rights reserved. +Copyright (c) 2002,2003,2004 Jarkko Hietaniemi. 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/form.h b/gnu/usr.bin/perl/form.h index 95d3c5775ca..114d6d4475f 100644 --- a/gnu/usr.bin/perl/form.h +++ b/gnu/usr.bin/perl/form.h @@ -1,6 +1,6 @@ /* form.h * - * Copyright (C) 1991, 1992, 1993, 2000, by Larry Wall and others + * Copyright (C) 1991, 1992, 1993, 2000, 2004 by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -24,3 +24,4 @@ #define FF_BLANK 14 #define FF_MORE 15 #define FF_0DECIMAL 16 +#define FF_LINESNGL 17 diff --git a/gnu/usr.bin/perl/global.sym b/gnu/usr.bin/perl/global.sym index 20de759bf81..1439abb0a68 100644 --- a/gnu/usr.bin/perl/global.sym +++ b/gnu/usr.bin/perl/global.sym @@ -2,7 +2,7 @@ # global.sym # # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, by Larry Wall and others +# 2000, 2001, 2002, 2003, 2004, by Larry Wall and others # # You may distribute under the terms of either the GNU General Public # License or the Artistic License, as specified in the README file. diff --git a/gnu/usr.bin/perl/gv.c b/gnu/usr.bin/perl/gv.c index 82c2e564e58..1ce6b4869ca 100644 --- a/gnu/usr.bin/perl/gv.c +++ b/gnu/usr.bin/perl/gv.c @@ -1,7 +1,7 @@ /* gv.c * * Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - * 2000, 2001, 2002, 2003, by Larry Wall and others + * 2000, 2001, 2002, 2003, 2004, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -1242,7 +1242,8 @@ Perl_gp_free(pTHX_ GV *gv) if (gp->gp_refcnt == 0) { if (ckWARN_d(WARN_INTERNAL)) Perl_warner(aTHX_ packWARN(WARN_INTERNAL), - "Attempt to free unreferenced glob pointers"); + "Attempt to free unreferenced glob pointers" + pTHX__FORMAT pTHX__VALUE); return; } if (gp->gp_cv) { @@ -1256,7 +1257,7 @@ Perl_gp_free(pTHX_ GV *gv) } if (gp->gp_sv) SvREFCNT_dec(gp->gp_sv); - if (gp->gp_sv) SvREFCNT_dec(gp->gp_av); + if (gp->gp_av) SvREFCNT_dec(gp->gp_av); if (gp->gp_hv) { if (PL_stashcache && HvNAME(gp->gp_hv)) hv_delete(PL_stashcache, diff --git a/gnu/usr.bin/perl/handy.h b/gnu/usr.bin/perl/handy.h index 94798f43421..19a593408ed 100644 --- a/gnu/usr.bin/perl/handy.h +++ b/gnu/usr.bin/perl/handy.h @@ -1,7 +1,7 @@ /* handy.h * * Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1999, - * 2000, 2001, 2002, by Larry Wall and others + * 2000, 2001, 2002, 2004, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -357,7 +357,7 @@ Converts the specified character to lowercase. # define isGRAPH(c) (isALNUM(c) || isPUNCT(c)) # define isPRINT(c) (((c) > 32 && (c) < 127) || (c) == ' ') # define isPUNCT(c) (((c) >= 33 && (c) <= 47) || ((c) >= 58 && (c) <= 64) || ((c) >= 91 && (c) <= 96) || ((c) >= 123 && (c) <= 126)) -# define isXDIGIT(c) (isdigit(c) || ((c) >= 'a' && (c) <= 'f') || ((c) >= 'A' && (c) <= 'F')) +# define isXDIGIT(c) (isDIGIT(c) || ((c) >= 'a' && (c) <= 'f') || ((c) >= 'A' && (c) <= 'F')) # define toUPPER(c) (isLOWER(c) ? (c) - ('a' - 'A') : (c)) # define toLOWER(c) (isUPPER(c) ? (c) + ('a' - 'A') : (c)) #endif @@ -583,6 +583,36 @@ hopefully catches attempts to access uninitialized memory. #define NEWSV(x,len) newSV(len) +#ifdef PERL_MALLOC_WRAP +#define MEM_WRAP_CHECK(n,t) \ + (void)((n)>((MEM_SIZE)~0)/sizeof(t)?(Perl_croak_nocontext(PL_memory_wrap),0):0) +#define MEM_WRAP_CHECK_1(n,t,a) \ + (void)((n)>((MEM_SIZE)~0)/sizeof(t)?(Perl_croak_nocontext(a),0):0) +#define MEM_WRAP_CHECK_2(n,t,a,b) \ + (void)((n)>((MEM_SIZE)~0)/sizeof(t)?(Perl_croak_nocontext(a,b),0):0) + +#define New(x,v,n,t) (v = (MEM_WRAP_CHECK(n,t), (t*)safemalloc((MEM_SIZE)((n)*sizeof(t))))) +#define Newc(x,v,n,t,c) (v = (MEM_WRAP_CHECK(n,t), (c*)safemalloc((MEM_SIZE)((n)*sizeof(t))))) +#define Newz(x,v,n,t) (v = (MEM_WRAP_CHECK(n,t), (t*)safemalloc((MEM_SIZE)((n)*sizeof(t))))), \ + memzero((char*)(v), (n)*sizeof(t)) +#define Renew(v,n,t) \ + (v = (MEM_WRAP_CHECK(n,t), (t*)saferealloc((Malloc_t)(v),(MEM_SIZE)((n)*sizeof(t))))) +#define Renewc(v,n,t,c) \ + (v = (MEM_WRAP_CHECK(n,t), (c*)saferealloc((Malloc_t)(v),(MEM_SIZE)((n)*sizeof(t))))) +#define Safefree(d) safefree((Malloc_t)(d)) + +#define Move(s,d,n,t) (MEM_WRAP_CHECK(n,t), (void)memmove((char*)(d),(char*)(s), (n) * sizeof(t))) +#define Copy(s,d,n,t) (MEM_WRAP_CHECK(n,t), (void)memcpy((char*)(d),(char*)(s), (n) * sizeof(t))) +#define Zero(d,n,t) (MEM_WRAP_CHECK(n,t), (void)memzero((char*)(d), (n) * sizeof(t))) + +#define Poison(d,n,t) (MEM_WRAP_CHECK(n,t), (void)memset((char*)(d), 0xAB, (n) * sizeof(t))) + +#else + +#define MEM_WRAP_CHECK(n,t) +#define MEM_WRAP_CHECK_1(n,t,a) +#define MEM_WRAP_CHECK_2(n,t,a,b) + #define New(x,v,n,t) (v = (t*)safemalloc((MEM_SIZE)((n)*sizeof(t)))) #define Newc(x,v,n,t,c) (v = (c*)safemalloc((MEM_SIZE)((n)*sizeof(t)))) #define Newz(x,v,n,t) (v = (t*)safemalloc((MEM_SIZE)((n)*sizeof(t)))), \ @@ -599,6 +629,8 @@ hopefully catches attempts to access uninitialized memory. #define Poison(d,n,t) (void)memset((char*)(d), 0xAB, (n) * sizeof(t)) +#endif + #else /* lint */ #define New(x,v,n,s) (v = Null(s *)) @@ -633,3 +665,19 @@ hopefully catches attempts to access uninitialized memory. # endif #endif +/* convenience debug macros */ +#ifdef USE_ITHREADS +#define pTHX_FORMAT "Perl interpreter: 0x%p" +#define pTHX__FORMAT ", Perl interpreter: 0x%p" +#define pTHX_VALUE_ (unsigned long)my_perl, +#define pTHX_VALUE (unsigned long)my_perl +#define pTHX__VALUE_ ,(unsigned long)my_perl, +#define pTHX__VALUE ,(unsigned long)my_perl +#else +#define pTHX_FORMAT +#define pTHX__FORMAT +#define pTHX_VALUE_ +#define pTHX_VALUE +#define pTHX__VALUE_ +#define pTHX__VALUE +#endif /* USE_ITHREADS */ diff --git a/gnu/usr.bin/perl/hints/aix.sh b/gnu/usr.bin/perl/hints/aix.sh index 04c83c04e70..e4966042bc8 100644 --- a/gnu/usr.bin/perl/hints/aix.sh +++ b/gnu/usr.bin/perl/hints/aix.sh @@ -1,25 +1,16 @@ # hints/aix.sh -# AIX 3.x.x hints thanks to Wayne Scott <wscott@ichips.intel.com> -# AIX 4.1 hints thanks to Christopher Chan-Nui <channui@austin.ibm.com>. -# AIX 4.1 pthreading by Christopher Chan-Nui <channui@austin.ibm.com> and -# Jarkko Hietaniemi <jhi@iki.fi>. -# AIX 4.3.x LP64 build by Steven Hirsch <hirschs@btv.ibm.com> -# Merged on Mon Feb 6 10:22:35 EST 1995 by -# Andy Dougherty <doughera@lafayette.edu> -# +# AIX 3 and AIX 4 are split off to aix_3.sh and aix_4.sh +# early Feb 2004 by H.Merijn Brand +# please read comments in there for historic questions. +# many now stripped here + # Contact dfavor@corridor.com for any of the following: # # - AIX 43x and above support # - gcc + threads support # - socks support # -# Apr 99 changes: -# -# - use nm in AIX 43x and above -# - gcc + threads now builds -# [(added support for socks) Jul 99 SOCKS support rewritten] -# # Notes: # # - shared libperl support is tricky. if ever libperl.a ends up @@ -45,29 +36,20 @@ d_setruid='undef' alignbytes=8 case "$usemymalloc" in -'') usemymalloc='n' ;; -esac + '') usemymalloc='n' ;; + esac + +# malloc wrap works, but not in vac-5, see later +case "$usemallocwrap" in + '') usemallocwrap='define' ;; + esac # Intuiting the existence of system calls under AIX is difficult, # at best; the safest technique is to find them empirically. -# AIX 4.3.* and above default to letting Configure test if nm -# extraction will work. -case "$osvers" in - 3.*|4.1.*|4.2.*) - case "$usenm" in - '') usenm='undef' - esac - case "$usenativedlopen" in - '') usenativedlopen='false' - esac - ;; - *) - case "$usenativedlopen" in - '') usenativedlopen='true' - esac - ;; -esac +case "$usenativedlopen" in + '') usenativedlopen='true' ;; + esac so="a" # AIX itself uses .o (libc.o) but we prefer compatibility @@ -80,52 +62,37 @@ dlext="so" # environment, we can override it later. If set for 64, the # 'sizeof' test sees a native 64-bit architecture and never looks back. case "$OBJECT_MODE" in -32) - cat >&4 <<EOF + 32) cat >&4 <<EOF -You have OBJECT_MODE=32 set in the environment. +You have OBJECT_MODE=32 set in the environment. I take this as a hint you do not want to build for a 64-bit address space. You will be given the opportunity to change this later. EOF - ;; -64) - cat >&4 <<EOF + ;; + 64) cat >&4 <<EOF -You have OBJECT_MODE=64 set in the environment. +You have OBJECT_MODE=64 set in the environment. This forces a full 64-bit build. If that is not what you intended, please terminate this program, unset it and restart. EOF - ;; -*) ;; -esac - -# Trying to set this breaks the POSIX.c compilation - -# Make setsockopt work correctly. See man page. -# ccflags='-D_BSD=44' + ;; + esac # uname -m output is too specific and not appropriate here case "$archname" in -'') archname="$osname" ;; -esac + '') archname="$osname" ;; + esac cc=${cc:-cc} -case "$osvers" in -3*) d_fchmod=undef - ccflags="$ccflags -D_ALL_SOURCE" - ;; -*) # These hints at least work for 4.x, possibly other systems too. - ccflags="$ccflags -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE" - case "$cc" in - *gcc*) ;; - *) ccflags="$ccflags -qmaxmem=16384 -qnoansialias" ;; +ccflags="$ccflags -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE" +case "$cc" in + *gcc*) ;; + *) ccflags="$ccflags -qmaxmem=-1 -qnoansialias" ;; esac - nm_opt='-B' - ;; -esac +nm_opt='-B' # These functions don't work like Perl expects them to. d_setregid='undef' @@ -137,79 +104,51 @@ d_setreuid='undef' cccdlflags='none' # All AIX code is position independent cc_type=xlc # do not export to config.sh case "$cc" in -*gcc*) - cc_type=gcc - ccdlflags='-Xlinker' - if [ "X$gccversion" = "X" ]; then - # Done too late in Configure if hinted - gccversion=`$cc --version | sed 's/.*(GCC) *//'` - fi - ;; -*) ccversion=`lslpp -L | grep 'C for AIX Compiler$' | grep -v '\.msg\.[A-Za-z_]*\.' | head -1 | awk '{print $1,$2}'` - case "$ccversion" in - '') ccversion=`lslpp -L | grep 'IBM C and C++ Compilers LUM$'` - ;; - *.*.*.*.*.*.*) # Ahhrgg, more than one C compiler installed - first_cc_path=`which ${cc:-cc}` - case "$first_cc_path" in - *vac*) - cc_type=vac ;; - /usr/bin/cc) # Check the symlink - if [ -h $first_cc_path ] ; then - ls -l $first_cc_path > reflect - if grep -i vac reflect >/dev/null 2>&1 ; then - cc_type=vac - fi - rm -f reflect - fi - ;; - esac - ccversion=`lslpp -L | grep 'C for AIX Compiler$' | grep -i $cc_type | head -1` - ;; - vac*.*.*.*) - cc_type=vac - ;; - esac - ccversion=`echo "$ccversion" | awk '{print $2}'` - case "$ccversion" in - 3.6.6.0) - optimize='none' - ;; - 4.4.0.0|4.4.0.1|4.4.0.2) - cat >&4 <<EOF -*** -*** This C compiler ($ccversion) is outdated. -*** -*** Please upgrade to at least 4.4.0.3. -*** -EOF - ;; - 5.0.0.0) - cat >&4 <<EOF -*** -*** This C compiler ($ccversion) is known to have too many optimizer -*** bugs to compile a working Perl. -*** -*** Consider upgrading your C compiler, or getting the GNU cc (gcc). -*** -*** Cannot continue, aborting. -EOF - exit 1 + *gcc*) + cc_type=gcc + ccdlflags='-Xlinker' + if [ "X$gccversion" = "X" ]; then + # Done too late in Configure if hinted + gccversion=`$cc --version | sed 's/.*(GCC) *//'` + fi ;; - 5.0.1.0) - cat >&4 <<EOF -*** -*** This C compiler ($ccversion) is known to have optimizer problems -*** when compiling regcomp.c. -*** -*** Disabling optimization for that file but consider upgrading -*** your C compiler. -*** -EOF -regcomp_cflags='optimize=' + + *) ccversion=`lslpp -L | grep 'C for AIX Compiler$' | grep -v '\.msg\.[A-Za-z_]*\.' | head -1 | awk '{print $1,$2}'` + case "$ccversion" in + '') ccversion=`lslpp -L | grep 'IBM C and C++ Compilers LUM$'` ;; + + *.*.*.*.*.*.*) # Ahhrgg, more than one C compiler installed + first_cc_path=`which ${cc:-cc}` + case "$first_cc_path" in + *vac*) + cc_type=vac ;; + + /usr/bin/cc) # Check the symlink + if [ -h $first_cc_path ] ; then + ls -l $first_cc_path > reflect + if grep -i vac reflect >/dev/null 2>&1 ; then + cc_type=vac + fi + rm -f reflect + fi + ;; + esac + ccversion=`lslpp -L | grep 'C for AIX Compiler$' | grep -i $cc_type | head -1` + ;; + + vac*.*.*.*) + cc_type=vac + ;; + esac + + ccversion=`echo "$ccversion" | awk '{print $2}'` + # Redbooks state AIX-5 only supports vac-5.0.2.0 and up + case "$ccversion" in + 5*) usemallocwrap='n' ;; # panic in miniperl + esac ;; - esac -esac + esac + # the required -bE:$installarchlib/CORE/perl.exp is added by # libperl.U (Configure) later. @@ -218,14 +157,7 @@ esac # -bI:$(PERL_INC)/perl.exp Read the exported symbols from the perl binary # -bE:$(BASEEXT).exp Export these symbols. This file contains only one # symbol: boot_$(EXP) can it be auto-generated? -case "$osvers" in - 3*) - lddlflags="$lddlflags -H512 -T512 -bhalt:4 -bM:SRE -bI:\$(PERL_INC)/perl.exp -bE:\$(BASEEXT).exp -e _nostart -lc" - ;; - *) - lddlflags="$lddlflags -bhalt:4 -bM:SRE -bI:\$(PERL_INC)/perl.exp -bE:\$(BASEEXT).exp -bnoentry -lc" - ;; - esac +lddlflags="$lddlflags -bhalt:4 -bM:SRE -bI:\$(PERL_INC)/perl.exp -bE:\$(BASEEXT).exp -bnoentry -lc" case "$use64bitall" in $define|true|[yY]*) use64bitint="$define" ;; @@ -244,15 +176,17 @@ case $cc_type in lddlflags=`echo "$lddlflags " | sed -e 's/ -lc / -lc128 -lc /'` ;; esac + ;; esac case "$cc" in -*gcc*) ;; -cc*|xlc*) # cc should've been set by line 116 or so if empty. + *gcc*) ;; + + cc*|xlc*) # cc should've been set by line 116 or so if empty. if test ! -x /usr/bin/$cc -a -x /usr/vac/bin/$cc; then - case ":$PATH:" in + case ":$PATH:" in *:/usr/vac/bin:*) ;; - *) if test ! -x /QOpenSys/usr/bin/$cc; then + *) if test ! -x /QOpenSys/usr/bin/$cc; then # The /QOpenSys/usr/bin/$cc saves us if we are # building natively in OS/400 PASE. cat >&4 <<EOF @@ -265,218 +199,162 @@ cc*|xlc*) # cc should've been set by line 116 or so if empty. *** EOF exit 1 - fi - ;; + fi + ;; esac - fi + fi ;; -esac + esac case "$ldlibpthname" in -'') ldlibpthname=LIBPATH ;; -esac - -# AIX 4.2 (using latest patchlevels on 20001130) has a broken bind -# library (getprotobyname and getprotobynumber are outversioned by -# the same calls in libc, at least for xlc version 3... -case "`oslevel`" in - 4.2.1.*) - case "$ccversion" in # Don't know if needed for gcc - 3.1.4.*|5.0.2.*) # libswanted "bind ... c ..." => "... c bind ..." - set `echo X "$libswanted "| sed -e 's/ bind\( .*\) \([cC]\) / \1 \2 bind /'` - shift - libswanted="$*" - ;; - esac - ;; + '') ldlibpthname=LIBPATH ;; esac -# This script UU/usethreads.cbu will get 'called-back' by Configure +# This script UU/usethreads.cbu will get 'called-back' by Configure # after it has prompted the user for whether to use threads. cat > UU/usethreads.cbu <<'EOCBU' case "$usethreads" in -$define|true|[yY]*) + $define|true|[yY]*) + d_drand48_r='undef' + d_endgrent_r='undef' + d_endpwent_r='undef' + d_getgrent_r='undef' + d_getpwent_r='undef' + d_random_r='undef' + d_setgrent_r='undef' + d_setpwent_r='undef' + d_srand48_r='undef' + d_strerror_r='undef' + ccflags="$ccflags -DNEED_PTHREAD_INIT" case "$cc" in - *gcc*) - ccflags="-D_THREAD_SAFE $ccflags" - echo "GCC $gccversion disabling some _r functions" >&4 - case "$gccversion" in - 3*) d_drand48_r='undef' - d_endgrent_r='undef' - d_endpwent_r='undef' - d_getgrent_r='undef' - d_getpwent_r='undef' - d_random_r='undef' - d_srand48_r='undef' - d_strerror_r='undef' - ;; - esac - ;; - cc_r) ;; - cc|xl[cC]_r) - echo >&4 "Switching cc to cc_r because of POSIX threads." - # xlc_r has been known to produce buggy code in AIX 4.3.2. - # (e.g. pragma/overload core dumps) Let's suspect xlC_r, too. - # --jhi@iki.fi - cc=cc_r - - case "`oslevel`" in - 4.2.1.*) i_crypt='undef' ;; - esac - ;; - '') - cc=cc_r - ;; - *) - cat >&4 <<EOM + *gcc*) ccflags="-D_THREAD_SAFE $ccflags" ;; + + cc_r) ;; + '') cc=cc_r ;; + + *) + + + # No | alternation in aix sed. :-( + newcc=`echo $cc | sed -e 's/cc$/cc_r/' -e 's/xl[cC]$/cc_r/' -e 's/xl[cC]_r$/cc_r/'` + case "$newcc" in + $cc) # No change + ;; + + *cc_r) + echo >&4 "Switching cc to cc_r because of POSIX threads." + # xlc_r has been known to produce buggy code in AIX 4.3.2. + # (e.g. pragma/overload core dumps) Let's suspect xlC_r, too. + # --jhi@iki.fi + cc="$newcc" + ;; + + *) + cat >&4 <<EOM *** For pthreads you should use the AIX C compiler cc_r. *** (now your compiler was set to '$cc') *** Cannot continue, aborting. EOM - exit 1 - ;; + exit 1 + ;; + esac esac - # c_rify libswanted. - set `echo X "$libswanted "| sed -e 's/ \([cC]\) / \1_r /g'` - shift - libswanted="$*" - # c_rify lddlflags. - set `echo X "$lddlflags "| sed -e 's/ \(-l[cC]\) / \1_r /g'` - shift - lddlflags="$*" - # Insert pthreads to libswanted, before any libc or libC. - set `echo X "$libswanted "| sed -e 's/ \([cC]_r\) / pthreads \1 /'` + set `echo X "$libswanted "| sed -e 's/ \([cC]\) / pthreads \1 /'` shift libswanted="$*" # Insert pthreads to lddlflags, before any libc or libC. - set `echo X "$lddlflags " | sed -e 's/ \(-l[cC]_r\) / -lpthreads \1 /'` + set `echo X "$lddlflags " | sed -e 's/ \(-l[cC]\) / -lpthreads \1 /'` shift lddlflags="$*" - ;; esac EOCBU -# This script UU/uselargefiles.cbu will get 'called-back' by Configure +# This script UU/uselargefiles.cbu will get 'called-back' by Configure # after it has prompted the user for whether to use large files. cat > UU/uselargefiles.cbu <<'EOCBU' case "$uselargefiles" in -''|$define|true|[yY]*) - # Configure should take care of use64bitint and use64bitall being - # defined before uselargefiles.cbu is consulted. - if test X"$use64bitint:$quadtype" = X"$define:long" -o X"$use64bitall" = Xdefine; then + ''|$define|true|[yY]*) + # Configure should take care of use64bitint and use64bitall being + # defined before uselargefiles.cbu is consulted. + if test X"$use64bitint:$quadtype" = X"$define:long" -o X"$use64bitall" = Xdefine; then # Keep these at the left margin. ccflags_uselargefiles="`getconf XBS5_LP64_OFF64_CFLAGS 2>/dev/null`" ldflags_uselargefiles="`getconf XBS5_LP64_OFF64_LDFLAGS 2>/dev/null`" - else + else # Keep these at the left margin. ccflags_uselargefiles="`getconf XBS5_ILP32_OFFBIG_CFLAGS 2>/dev/null`" ldflags_uselargefiles="`getconf XBS5_ILP32_OFFBIG_LDFLAGS 2>/dev/null`" - fi - # _Somehow_ in AIX 4.3.1.0 the above getconf call manages to - # insert(?) *something* to $ldflags so that later (in Configure) evaluating - # $ldflags causes a newline after the '-b64' (the result of the getconf). - # (nothing strange shows up in $ldflags even in hexdump; - # so it may be something (a bug) in the shell, instead?) - # Try it out: just uncomment the below line and rerun Configure: -# echo >&4 "AIX 4.3.1.0 $ldflags_uselargefiles mystery" ; exit 1 - # Just don't ask me how AIX does it, I spent hours wondering. - # Therefore the line re-evaluating ldflags_uselargefiles: it seems to fix - # the whatever it was that AIX managed to break. --jhi - ldflags_uselargefiles="`echo $ldflags_uselargefiles`" - if test X"$use64bitint:$quadtype" = X"$define:long" -o X"$use64bitall" = Xdefine; then + fi + if test X"$use64bitint:$quadtype" = X"$define:long" -o X"$use64bitall" = Xdefine; then # Keep this at the left margin. libswanted_uselargefiles="`getconf XBS5_LP64_OFF64_LIBS 2>/dev/null|sed -e 's@^-l@@' -e 's@ -l@ @g`" - else + else # Keep this at the left margin. libswanted_uselargefiles="`getconf XBS5_ILP32_OFFBIG_LIBS 2>/dev/null|sed -e 's@^-l@@' -e 's@ -l@ @g`" - fi + fi + case "$ccflags_uselargefiles$ldflags_uselargefiles$libs_uselargefiles" in - '');; - *) ccflags="$ccflags $ccflags_uselargefiles" - ldflags="$ldflags $ldflags_uselargefiles" - libswanted="$libswanted $libswanted_uselargefiles" - ;; - esac - case "$gccversion" in - '') ;; - *) # Remove xlc-specific -qflags. - ccflags="`echo $ccflags | sed -e 's@ -q[^ ]*@ @g' -e 's@^-q[^ ]* @@g'`" - ldflags="`echo $ldflags | sed -e 's@ -q[^ ]*@ @g' -e 's@^-q[^ ]* @@g'`" - # Move xlc-specific -bflags. - ccflags="`echo $ccflags | sed -e 's@ -b@ -Wl,-b@g'`" - ldflags="`echo ' '$ldflags | sed -e 's@ -b@ -Wl,-b@g'`" - lddlflags="`echo ' '$lddlflags | sed -e 's@ -b@ -Wl,-b@g'`" - ld='gcc' - echo >&4 "(using ccflags $ccflags)" - echo >&4 "(using ldflags $ldflags)" - echo >&4 "(using lddlflags $lddlflags)" - ;; - esac - ;; -esac -EOCBU + '') ;; + *) ccflags="$ccflags $ccflags_uselargefiles" + ldflags="$ldflags $ldflags_uselargefiles" + libswanted="$libswanted $libswanted_uselargefiles" + ;; + esac -# This script UU/use64bitint.cbu will get 'called-back' by Configure -# after it has prompted the user for whether to use 64 bit integers. -cat > UU/use64bitint.cbu <<'EOCBU' -case "$use64bitint" in -$define|true|[yY]*) - case "`oslevel`" in - 3.*|4.[012].*) - cat >&4 <<EOM -AIX `oslevel` does not support 64-bit interfaces. -You should upgrade to at least AIX 4.3. -EOM - exit 1 + case "$gccversion" in + '') ;; + *) # Remove xlc-specific -qflags. + ccflags="`echo $ccflags | sed -e 's@ -q[^ ]*@ @g' -e 's@^-q[^ ]* @@g'`" + ldflags="`echo $ldflags | sed -e 's@ -q[^ ]*@ @g' -e 's@^-q[^ ]* @@g'`" + # Move xlc-specific -bflags. + ccflags="`echo $ccflags | sed -e 's@ -b@ -Wl,-b@g'`" + ldflags="`echo ' '$ldflags | sed -e 's@ -b@ -Wl,-b@g'`" + lddlflags="`echo ' '$lddlflags | sed -e 's@ -b@ -Wl,-b@g'`" + ld='gcc' + echo >&4 "(using ccflags $ccflags)" + echo >&4 "(using ldflags $ldflags)" + echo >&4 "(using lddlflags $lddlflags)" ;; esac - ;; -esac + ;; + esac EOCBU cat > UU/use64bitall.cbu <<'EOCBU' -# This script UU/use64bitall.cbu will get 'called-back' by Configure +# This script UU/use64bitall.cbu will get 'called-back' by Configure # after it has prompted the user for whether to be maximally 64-bitty. case "$use64bitall" in -$define|true|[yY]*) - case "`oslevel`" in - 3.*|4.[012].*) - cat >&4 <<EOM -AIX `oslevel` does not support 64-bit interfaces. -You should upgrade to at least AIX 4.3. -EOM - exit 1 - ;; - esac - echo " " - echo "Checking the CPU width of your hardware..." >&4 - $cat >size.c <<EOCP + $define|true|[yY]*) + echo " " + echo "Checking the CPU width of your hardware..." >&4 + $cat >size.c <<EOCP #include <stdio.h> #include <sys/systemcfg.h> int main (void) { - printf("%d\n",_system_configuration.width); - return(0); -} + printf ("%d\n", _system_configuration.width); + return (0); + } EOCP - set size - if eval $compile_ok; then - qacpuwidth=`./size` - echo "You are running on $qacpuwidth bit hardware." - else - dflt="32" - echo " " - echo "(I can't seem to compile the test program. Guessing...)" - rp="What is the width of your CPU (in bits)?" - . ./myread - qacpuwidth="$ans" + set size + if eval $compile_ok; then + qacpuwidth=`./size` + echo "You are running on $qacpuwidth bit hardware." + else + dflt="32" + echo " " + echo "(I can't seem to compile the test program. Guessing...)" + rp="What is the width of your CPU (in bits)?" + . ./myread + qacpuwidth="$ans" fi - $rm -f size.c size - case "$qacpuwidth" in + $rm -f size.c size + + case "$qacpuwidth" in 32*) cat >&4 <<EOM Bzzzt! At present, you can only perform a @@ -485,90 +363,85 @@ EOM exit 1 ;; esac - qacflags="`getconf XBS5_LP64_OFF64_CFLAGS 2>/dev/null`" - qaldflags="`getconf XBS5_LP64_OFF64_LDFLAGS 2>/dev/null`" - # See jhi's comments above regarding this re-eval. I've - # seen similar weirdness in the form of: - # + qacflags="`getconf XBS5_LP64_OFF64_CFLAGS 2>/dev/null`" + qaldflags="`getconf XBS5_LP64_OFF64_LDFLAGS 2>/dev/null`" + # See jhi's comments above regarding this re-eval. I've + # seen similar weirdness in the form of: + # # 1506-173 (W) Option lm is not valid. Enter xlc for list of valid options. - # - # error messages from 'cc -E' invocation. Again, the offending - # string is simply not detectable by any means. Since it doesn't - # do any harm, I didn't pursue it. -- sh - qaldflags="`echo $qaldflags`" - qalibs="`getconf XBS5_LP64_OFF64_LIBS 2>/dev/null|sed -e 's@^-l@@' -e 's@ -l@ @g`" - # -q32 and -b32 may have been set by uselargefiles or user. - # Remove them. - ccflags="`echo $ccflags | sed -e 's@-q32@@'`" - ldflags="`echo $ldflags | sed -e 's@-b32@@'`" - # Tell archiver to use large format. Unless we remove 'ar' - # from 'trylist', the Configure script will just reset it to 'ar' - # immediately prior to writing config.sh. This took me hours - # to figure out. - trylist="`echo $trylist | sed -e 's@^ar @@' -e 's@ ar @ @g' -e 's@ ar$@@'`" - ar="ar -X64" - nm_opt="-X64 $nm_opt" - # Note: Placing the 'qacflags' variable into the 'ldflags' string - # is NOT a typo. ldflags is passed to the C compiler for final - # linking, and it wants -q64 (-b64 is for ld only!). - case "$qacflags$qaldflags$qalibs" in - '');; - *) ccflags="$ccflags $qacflags" - ldflags="$ldflags $qacflags" - lddlflags="$qaldflags $lddlflags" - libswanted="$libswanted $qalibs" - ;; + # + # error messages from 'cc -E' invocation. Again, the offending + # string is simply not detectable by any means. Since it doesn't + # do any harm, I didn't pursue it. -- sh + qaldflags="`echo $qaldflags`" + qalibs="`getconf XBS5_LP64_OFF64_LIBS 2>/dev/null|sed -e 's@^-l@@' -e 's@ -l@ @g`" + # -q32 and -b32 may have been set by uselargefiles or user. + # Remove them. + ccflags="`echo $ccflags | sed -e 's@-q32@@'`" + ldflags="`echo $ldflags | sed -e 's@-b32@@'`" + # Tell archiver to use large format. Unless we remove 'ar' + # from 'trylist', the Configure script will just reset it to 'ar' + # immediately prior to writing config.sh. This took me hours + # to figure out. + trylist="`echo $trylist | sed -e 's@^ar @@' -e 's@ ar @ @g' -e 's@ ar$@@'`" + ar="ar -X64" + nm_opt="-X64 $nm_opt" + # Note: Placing the 'qacflags' variable into the 'ldflags' string + # is NOT a typo. ldflags is passed to the C compiler for final + # linking, and it wants -q64 (-b64 is for ld only!). + case "$qacflags$qaldflags$qalibs" in + '') ;; + *) ccflags="$ccflags $qacflags" + ldflags="$ldflags $qacflags" + lddlflags="$qaldflags $lddlflags" + libswanted="$libswanted $qalibs" + ;; esac - case "$ccflags" in + case "$ccflags" in *-DUSE_64_BIT_ALL*) ;; - *) ccflags="$ccflags -DUSE_64_BIT_ALL";; + *) ccflags="$ccflags -DUSE_64_BIT_ALL";; esac - case "$archname64" in + case "$archname64" in ''|64*) archname64=64all ;; esac - longsize="8" - qacflags='' - qaldflags='' - qalibs='' - qacpuwidth='' - ;; -esac + longsize="8" + qacflags='' + qaldflags='' + qalibs='' + qacpuwidth='' + ;; + esac EOCBU -if test $usenativedlopen = 'true' -then +if test $usenativedlopen = 'true' ; then ccflags="$ccflags -DUSE_NATIVE_DLOPEN" case "$cc" in - *gcc*) ldflags="$ldflags -Wl,-brtl" ;; - *) ldflags="$ldflags -brtl" ;; - esac -else - case `oslevel` in - 4.2.*) ;; # libC_r has broke gettimeofday - *) # If the C++ libraries, libC and libC_r, are available we will - # prefer them over the vanilla libc, because the libC contain - # loadAndInit() and terminateAndUnload() which work correctly - # with C++ statics while libc load() and unload() do not. See - # ext/DynaLoader/dl_aix.xs. The C-to-C_r switch is done by - # usethreads.cbu, if needed. - if test -f /lib/libC.a -a X"`$cc -v 2>&1 | grep gcc`" = X; then - # Cify libswanted. - set `echo X "$libswanted "| sed -e 's/ c / C c /'` - shift - libswanted="$*" - # Cify lddlflags. - set `echo X "$lddlflags "| sed -e 's/ -lc / -lC -lc /'` - shift - lddlflags="$*" - fi + *gcc*) ldflags="$ldflags -Wl,-brtl" ;; + *) ldflags="$ldflags -brtl" ;; esac -fi +elif test -f /lib/libC.a -a X"`$cc -v 2>&1 | grep gcc`" = X; then + # If the C++ libraries, libC and libC_r, are available we will + # prefer them over the vanilla libc, because the libC contain + # loadAndInit() and terminateAndUnload() which work correctly + # with C++ statics while libc load() and unload() do not. See + # ext/DynaLoader/dl_aix.xs. The C-to-C_r switch is done by + # usethreads.cbu, if needed. + + # Cify libswanted. + set `echo X "$libswanted "| sed -e 's/ c / C c /'` + shift + libswanted="$*" + # Cify lddlflags. + set `echo X "$lddlflags "| sed -e 's/ -lc / -lC -lc /'` + shift + lddlflags="$*" + fi case "$PASE" in -define) + define) case "$prefix" in - '') prefix=/QOpenSys/perl ;; - esac + '') prefix=/QOpenSys/perl ;; + esac cat >&4 <<EOF *** @@ -592,9 +465,9 @@ EOF # V5R1 tries to use code compiled assuming fchdir(), # lots of grief will issue forth from Cwd. case "$d_fchdir" in - '') d_fchdir="$undef" ;; - esac + '') d_fchdir="$undef" ;; + esac ;; -esac + esac # EOF diff --git a/gnu/usr.bin/perl/hints/bsdos.sh b/gnu/usr.bin/perl/hints/bsdos.sh index f16a56efc73..ab56f991da9 100644 --- a/gnu/usr.bin/perl/hints/bsdos.sh +++ b/gnu/usr.bin/perl/hints/bsdos.sh @@ -21,6 +21,11 @@ d_voidsig='define' usemymalloc='n' +# malloc wrap works +case "$usemallocwrap" in +'') usemallocwrap='define' ;; +esac + # setre?[ug]id() have been replaced by the _POSIX_SAVED_IDS versions. # See <A HREF="http://www.bsdi.com/bsdi-man?setuid">http://www.bsdi.com/bsdi-man?setuid</A>(2) d_setregid='undef' diff --git a/gnu/usr.bin/perl/hints/cxux.sh b/gnu/usr.bin/perl/hints/cxux.sh index e3ac086e235..8d95356c15c 100644 --- a/gnu/usr.bin/perl/hints/cxux.sh +++ b/gnu/usr.bin/perl/hints/cxux.sh @@ -69,10 +69,9 @@ glibpth="/usr/sde/elf/usr/lib $glibpth" # to drag 'sigaction' into the perl main program is to make sure it gets # defined for the posix shared library (for some reason sigaction is static, # rather than being defined in libc.so.1). The 88110compat option makes sure -# the code will run on both 88100 and 88110 machines. The define is added to -# trigger a work around for a compiler bug which shows up in pp.c. +# the code will run on both 88100 and 88110 machines. # -cc='/bin/cc -Xa -Qtarget=M88110compat -DCXUX_BROKEN_CONSTANT_CONVERT' +cc='/bin/cc -Xa -Qtarget=M88110compat' cccdlflags='-Zelf -Zpic' ccdlflags='-Zelf -Zlink=dynamic -Wl,-Bexport -u sigaction' lddlflags='-Zlink=so' diff --git a/gnu/usr.bin/perl/hints/dec_osf.sh b/gnu/usr.bin/perl/hints/dec_osf.sh index 114aca1df28..851ac24ad79 100644 --- a/gnu/usr.bin/perl/hints/dec_osf.sh +++ b/gnu/usr.bin/perl/hints/dec_osf.sh @@ -362,6 +362,11 @@ EOF esac EOCBU +# malloc wrap works +case "$usemallocwrap" in +'') usemallocwrap='define' ;; +esac + cat > UU/uselongdouble.cbu <<'EOCBU' # This script UU/uselongdouble.cbu will get 'called-back' by Configure # after it has prompted the user for whether to use long doubles. diff --git a/gnu/usr.bin/perl/hints/freebsd.sh b/gnu/usr.bin/perl/hints/freebsd.sh index 28e22ac62c3..c6014819fa9 100644 --- a/gnu/usr.bin/perl/hints/freebsd.sh +++ b/gnu/usr.bin/perl/hints/freebsd.sh @@ -269,3 +269,7 @@ EOM esac EOCBU +# malloc wrap works +case "$usemallocwrap" in +'') usemallocwrap='define' ;; +esac diff --git a/gnu/usr.bin/perl/hints/hpux.sh b/gnu/usr.bin/perl/hints/hpux.sh index b2a888c1648..8fe709284fb 100644 --- a/gnu/usr.bin/perl/hints/hpux.sh +++ b/gnu/usr.bin/perl/hints/hpux.sh @@ -5,6 +5,8 @@ # Determine the architecture type of this system. # Keep leading tab below -- Configure Black Magic -- RAM, 03/02/97 xxOsRevMajor=`uname -r | sed -e 's/^[^0-9]*//' | cut -d. -f1`; + xxOsRevMinor=`uname -r | sed -e 's/^[^0-9]*//' | cut -d. -f2`; + xxOsRev=`expr 100 \* $xxOsRevMajor + $xxOsRevMinor` if [ "$xxOsRevMajor" -ge 10 ]; then # This system is running >= 10.x @@ -134,10 +136,15 @@ case `$cc -v 2>&1`"" in esac ;; *) ccisgcc='' - ccversion=`which cc | xargs what | awk '/Compiler/{print $2}'` + ccversion=`which cc | xargs what | awk '/Compiler/{print $2}/Itanium/{print $6,$7}'` case "$ccflags" in "-Ae "*) ;; - *) ccflags="-Ae $cc_cppflags -Wl,+vnocompatwarnings" ;; + *) ccflags="-Ae $cc_cppflags" + # +vnocompatwarnings not known in 10.10 and older + if [ $xxOsRev -ge 1020 ]; then + ccflags="$ccflags -Wl,+vnocompatwarnings" + fi + ;; esac # Needed because cpp does only support -Aa (not -Ae) cpplast='-' @@ -397,6 +404,9 @@ case "$ccisgcc" in esac ## LARGEFILES +if [ $xxOsRev -lt 1020 ]; then + uselargefiles="$undef" + fi #case "$uselargefiles-$ccisgcc" in # "$define-$define"|'-define') @@ -630,6 +640,11 @@ case "$useperlio" in $undef|false|[nN]*) usemymalloc='y' ;; esac +# malloc wrap works +case "$usemallocwrap" in +'') usemallocwrap='define' ;; +esac + # fpclassify() is a macro, the library call is Fpclassify # Similarly with the others below. d_fpclassify='define' diff --git a/gnu/usr.bin/perl/hints/irix_5.sh b/gnu/usr.bin/perl/hints/irix_5.sh index 025596d8631..d6350ce5391 100644 --- a/gnu/usr.bin/perl/hints/irix_5.sh +++ b/gnu/usr.bin/perl/hints/irix_5.sh @@ -9,6 +9,7 @@ usemymalloc='n' ld=ld i_time='define' +i_inttypes='undef' case "$cc" in *gcc*) ccflags="$ccflags -D_BSD_TYPES" ;; @@ -18,7 +19,7 @@ case "$cc" in # 658: bit-field 'th_off' type required to be int, unsigned int, or signed int. <netinet/tcp.h> # 734: enum declaration must contain enum literals <sys/vnode.h> # 799: 'long long' is not standard ANSI. - ccflags="$ccflags -D_POSIX_SOURCE -ansiposix -D_BSD_TYPES -Olimit 4000 -woff 608,658,734,799" + ccflags="$ccflags -D_POSIX_SOURCE -ansiposix -D_BSD_TYPES -Olimit 4300 -woff 608,658,734,799" # Without this the cc thinks that a struct timeval * is not equivalent to # a struct timeval *. Yeah, you read that right. pp_sys_cflags='ccflags="$ccflags -DPERL_IRIX5_SELECT_TIMEVAL_VOID_CAST"' diff --git a/gnu/usr.bin/perl/hints/irix_6.sh b/gnu/usr.bin/perl/hints/irix_6.sh index 51a4d75bc13..ad6e7788ece 100644 --- a/gnu/usr.bin/perl/hints/irix_6.sh +++ b/gnu/usr.bin/perl/hints/irix_6.sh @@ -26,6 +26,8 @@ # 64-bitty by Jarkko Hietaniemi on 9/1998 +# Martin Pool added -shared for gcc on 2004-01-27 + # Use sh Configure -Dcc='cc -n32' to try compiling with -n32. # or -Dcc='cc -n32 -mips3' (or -mips4) to force (non)portability # Don't bother with -n32 unless you have the 7.1 or later compilers. @@ -173,6 +175,9 @@ esac' ccflags="$ccflags -D_BSD_TYPES -D_BSD_TIME" test -z "$optimize" && optimize="-O3" usenm='undef' + # It seems gcc can build Irix shlibs, but of course it needs + # -shared. Otherwise you get link errors looking for main(). + lddlflags="$lddlflags -shared" case "`uname -s`" in # Without the -mabi=64 gcc in 64-bit IRIX has problems passing # and returning small structures. This affects inet_*() and semctl(). diff --git a/gnu/usr.bin/perl/hints/linux.sh b/gnu/usr.bin/perl/hints/linux.sh index 437e5c94c3c..61d9fc8e5e0 100644 --- a/gnu/usr.bin/perl/hints/linux.sh +++ b/gnu/usr.bin/perl/hints/linux.sh @@ -60,6 +60,11 @@ fi # function in <sys/stat.h>. d_lstat=define +# malloc wrap works +case "$usemallocwrap" in +'') usemallocwrap='define' ;; +esac + # The system malloc() is about as fast and as frugal as perl's. # Since the system malloc() has been the default since at least # 5.001, we might as well leave it that way. --AD 10 Jan 2002 @@ -80,18 +85,16 @@ case "`${cc:-cc} -V 2>&1`" in esac case "$optimize" in -'') # If we have modern enough gcc and well-supported enough CPU, - # crank up the optimization level. - case "`${cc:-gcc} -v 2>&1`" in - *"gcc version 2.95"*|*"gcc version 3."*) - case "`arch 2>&1`" in - i?86|ppc) optimize='-O3' ;; - esac +# use -O2 by default ; -O3 doesn't seem to bring significant benefits with gcc +'') + optimize='-O2' + case "`uname -m`" in + ppc*) + # on ppc, it seems that gcc (at least gcc 3.3.2) isn't happy + # with -O2 ; so downgrade to -O1. + optimize='-O1' ;; esac - case "$optimize" in - '') optimize='-O2' ;; - esac ;; esac diff --git a/gnu/usr.bin/perl/hints/machten.sh b/gnu/usr.bin/perl/hints/machten.sh index 46fb144ec60..cdca69aa107 100644 --- a/gnu/usr.bin/perl/hints/machten.sh +++ b/gnu/usr.bin/perl/hints/machten.sh @@ -1,7 +1,14 @@ #! /bin/bash # machten.sh # This is for MachTen 4.1.4. It might work on other versions and variants -# too. If it doesn't, tell me, and I'll try to fix it -- domo@computer.org +# too. MachTen is now obsolete, lacks many features expected in modern UNIX +# implementations, and suffers from a number of bugs which are likely never +# to be fixed. This means that, in the absence of extensive work on +# this file and on the perl source code, versions of perl later than 5.6.x +# cannot successfully be built on MachTen. This file enforces this +# restriction. Should you wish to port a later version of perl to MachTen, +# feel free to contact me for pointers. +# -- Dominic Dunlop <domo@computer.org> 040213 # # Users of earlier MachTen versions might need a fixed tr from ftp.tenon.com. # This should be described in the MachTen release notes. @@ -15,6 +22,8 @@ # Martijn Koster <m.koster@webcrawler.com> # Richard Yeh <rcyeh@cco.caltech.edu> # +# Prevent building of perls later than 5.6.x, stating why -- see above. +# -- Dominic Dunlop <domo@computer.org> 040213 # Deny system's false claims to support mmap() and munmap(); note # also that Sys V IPC (re)disabled by jhi due to continuing inadequacy # -- Dominic Dunlop <domo@computer.org> 001111 @@ -44,8 +53,21 @@ # Do not use perl's malloc; SysV IPC OK -- Neil Cutcliffe, Tenon 961030 # File::Find's use of link count disabled by Dominic Dunlop 960528 # Perl's use of sigsetjmp etc. disabled by Dominic Dunlop 960521 -# -# Comments, questions, and improvements welcome! + +# Assume that PERL_REVISON in patchlevel.h is 5. +# If you want to try building perl-5.8.x or later, set PERL_VERSION_SAFE_MAX +# appropriately in your environment before running Configure. +if [ `awk '$1=="#define" && $2=="PERL_VERSION"{print $3}' patchlevel.h` \ + -gt ${PERL_VERSION_SAFE_MAX:-6} ] +then + cat <<EOF >&4 + +Perl versions greater than 5.6.x have not been ported to MachTen. If you +wish to build a version from the 5.6 track, please see the notes in +README.machten +EOF + exit 1 +fi # # MachTen 4.1.1's support for shadow password file access is incomplete: # disable its use completely. @@ -95,7 +117,7 @@ d_vfork=${d_vfork:-define} # Specify a high level of optimization (-O3 wouldn't do much more) optimize=${optimize:--O2 -fomit-frame-pointer} -# Make symbol table listings les voluminous +# Make symbol table listings less voluminous nmopts=-gp # Set reg_infty -- the maximum allowable number of repeats in regular diff --git a/gnu/usr.bin/perl/hints/openbsd.sh b/gnu/usr.bin/perl/hints/openbsd.sh index 2318c3e63f6..4c8708a1615 100644 --- a/gnu/usr.bin/perl/hints/openbsd.sh +++ b/gnu/usr.bin/perl/hints/openbsd.sh @@ -75,6 +75,14 @@ case "$osvers" in ;; esac +# malloc wrap causes problems on m68k +if [ X"$usemallocwrap" = X"" ]; then + case "${ARCH}" in + m68k) usemallocwrap="$undef" ;; + *) usemallocwrap="define" ;; + esac +fi + # OpenBSD doesn't need libcrypt but many folks keep a stub lib # around for old NetBSD binaries. libswanted=`echo $libswanted | sed 's/ crypt / /'` @@ -113,13 +121,72 @@ $define|true|[yY]*) ;; esac case "$osvers" in - [012].*|3.[0-3]) - # Broken at least up to OpenBSD 3.2, we'll see about 3.3. + [012].*|3.[0-5]) + # Broken at least up to OpenBSD 3.5, we'll see about 3.6 d_getservbyname_r=$undef ;; esac esac EOCBU +# This script UU/use64bitint.cbu will get 'called-back' by Configure +# after it has prompted the user for whether to use 64-bitness. +cat > UU/use64bitint.cbu <<'EOCBU' +case "$use64bitint" in +$define|true|[yY]*) + echo " " + echo "Checking if your C library has broken 64-bit functions..." >&4 + $cat >check.c <<EOCP +#include <stdio.h> +typedef $uquadtype myULL; +int main (void) +{ + struct { + double d; + myULL u; + } *p, test[] = { + {4294967303.15, 4294967303ULL}, + {4294967294.2, 4294967294ULL}, + {4294967295.7, 4294967295ULL}, + {0.0, 0ULL} + }; + for (p = test; p->u; p++) { + myULL x = (myULL)p->d; + if (x != p->u) { + printf("buggy\n"); + return 0; + } + } + printf("ok\n"); + return 0; +} +EOCP + set check + if eval $compile_ok; then + libcquad=`./check` + echo "Your C library's 64-bit functions are $libcquad." + else + echo "(I can't seem to compile the test program.)" + echo "Assuming that your C library's 64-bit functions are ok." + libcquad="ok" + fi + $rm -f check.c check + + case "$libcquad" in + buggy*) + cat >&4 <<EOM + +*** You have a C library with broken 64-bit functions. +*** 64-bit support does not work reliably in this configuration. +*** Please rerun Configure without -Duse64bitint and/or -Dusemorebits. +*** Cannot continue, aborting. + +EOM + exit 1 + ;; + esac +esac +EOCBU + # When building in the OpenBSD tree we use different paths # This is only part of the story, the rest comes from config.over case "$openbsd_distribution" in diff --git a/gnu/usr.bin/perl/hints/solaris_2.sh b/gnu/usr.bin/perl/hints/solaris_2.sh index 7ffc53c6efe..ce36480b181 100644 --- a/gnu/usr.bin/perl/hints/solaris_2.sh +++ b/gnu/usr.bin/perl/hints/solaris_2.sh @@ -32,6 +32,11 @@ mistrustnm=${mistrustnm:-run} # http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2001-01/msg00465.html usemymalloc=${usemymalloc:-false} +# malloc wrap works +case "$usemallocwrap" in +'') usemallocwrap='define' ;; +esac + # Avoid all libraries in /usr/ucblib. # /lib is just a symlink to /usr/lib set `echo $glibpth | sed -e 's@/usr/ucblib@@' -e 's@ /lib @ @'` @@ -238,9 +243,13 @@ END # Hmm. gcc doesn't call /usr/ccs/bin/ld directly, but it # does appear to be using it eventually. egcs-1.0.3's ld # wrapper does this. - # All Solaris versions of ld I've seen contain the magic + # Most Solaris versions of ld I've seen contain the magic # string used in the grep. : + elif echo "$verbose" | grep "Solaris Link Editors" >/dev/null 2>&1; then + # However some Solaris 8 versions prior to ld 5.8-1.286 contain + # this string instead. + : else # No evidence yet of /usr/ccs/bin/ld. Some versions # of egcs's ld wrapper call /usr/ccs/bin/ld in turn but @@ -260,6 +269,10 @@ END grep "ld: Software Generation Utilities" >/dev/null 2>&1; then # Ok, /usr/ccs/bin/ld eventually does get called. : + elif ${myld:-ld} -V 2>&1 | + grep "Solaris Link Editors" >/dev/null 2>&1; then + # Ok, /usr/ccs/bin/ld eventually does get called. + : else echo "Found GNU ld='$myld'" >&4 cat <<END >&2 @@ -345,11 +358,25 @@ case "$usethreads" in $define|true|[yY]*) ccflags="-D_REENTRANT $ccflags" - sched_yield='yield' + # -lpthread overrides some lib C functions, so put it before c. set `echo X "$libswanted "| sed -e "s/ c / pthread c /"` shift libswanted="$*" + # sched_yield is available in the -lrt library. However, + # we can also pick up the equivalent yield() function in the + # normal C library. To avoid pulling in unnecessary + # libraries, we'll normally avoid sched_yield()/-lrt and + # just use yield(). However, we'll honor a command-line + # override : "-Dsched_yield=sched_yield". + # If we end up using sched_yield, we're going to need -lrt. + sched_yield=${sched_yield:-yield} + if test "$sched_yield" = "sched_yield"; then + set `echo X "$libswanted "| sed -e "s/ pthread / rt pthread /"` + shift + libswanted="$*" + fi + # On Solaris 2.6 x86 there is a bug with sigsetjmp() and siglongjmp() # when linked with the threads library, such that whatever positive # value you pass to siglongjmp(), sigsetjmp() returns 1. diff --git a/gnu/usr.bin/perl/hv.c b/gnu/usr.bin/perl/hv.c index 99b682da815..0632ab1561b 100644 --- a/gnu/usr.bin/perl/hv.c +++ b/gnu/usr.bin/perl/hv.c @@ -1,7 +1,7 @@ /* hv.c * * Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - * 2000, 2001, 2002, 2003, by Larry Wall and others + * 2000, 2001, 2002, 2003, 2004, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -369,7 +369,7 @@ Perl_hv_fetch_ent(pTHX_ HV *hv, SV *keysv, I32 lval, register U32 hash) (lval ? HV_FETCH_LVALUE : 0), Nullsv, hash); } -HE * +STATIC HE * S_hv_fetch_common(pTHX_ HV *hv, SV *keysv, const char *key, STRLEN klen, int flags, int action, SV *val, register U32 hash) { @@ -870,7 +870,7 @@ Perl_hv_delete_ent(pTHX_ HV *hv, SV *keysv, I32 flags, U32 hash) return hv_delete_common(hv, keysv, NULL, 0, 0, flags, hash); } -SV * +STATIC SV * S_hv_delete_common(pTHX_ HV *hv, SV *keysv, const char *key, STRLEN klen, int k_flags, I32 d_flags, U32 hash) { @@ -985,34 +985,21 @@ S_hv_delete_common(pTHX_ HV *hv, SV *keysv, const char *key, STRLEN klen, continue; if ((HeKFLAGS(entry) ^ masked_flags) & HVhek_UTF8) continue; - if (k_flags & HVhek_FREEKEY) - Safefree(key); /* if placeholder is here, it's already been deleted.... */ if (HeVAL(entry) == &PL_sv_placeholder) { - if (SvREADONLY(hv)) - return Nullsv; /* if still SvREADONLY, leave it deleted. */ - - /* okay, really delete the placeholder. */ - *oentry = HeNEXT(entry); - if (i && !*oentry) - xhv->xhv_fill--; /* HvFILL(hv)-- */ - if (entry == xhv->xhv_eiter /* HvEITER(hv) */) - HvLAZYDEL_on(hv); - else - hv_free_ent(hv, entry); - xhv->xhv_keys--; /* HvKEYS(hv)-- */ - if (xhv->xhv_keys == 0) - HvHASKFLAGS_off(hv); - xhv->xhv_placeholders--; - return Nullsv; + if (k_flags & HVhek_FREEKEY) + Safefree(key); + return Nullsv; } else if (SvREADONLY(hv) && HeVAL(entry) && SvREADONLY(HeVAL(entry))) { S_hv_notallowed(aTHX_ k_flags, key, klen, "delete readonly key '%"SVf"' from" ); } + if (k_flags & HVhek_FREEKEY) + Safefree(key); if (d_flags & G_DISCARD) sv = Nullsv; @@ -1028,6 +1015,7 @@ S_hv_delete_common(pTHX_ HV *hv, SV *keysv, const char *key, STRLEN klen, * an error. */ if (SvREADONLY(hv)) { + SvREFCNT_dec(HeVAL(entry)); HeVAL(entry) = &PL_sv_placeholder; /* We'll be saving this slot, so the number of allocated keys * doesn't go down, but the number placeholders goes up */ @@ -1072,6 +1060,17 @@ S_hsplit(pTHX_ HV *hv) int longest_chain = 0; int was_shared; + /*PerlIO_printf(PerlIO_stderr(), "hsplit called for %p which had %d\n", + hv, (int) oldsize);*/ + + if (HvPLACEHOLDERS(hv) && !SvREADONLY(hv)) { + /* Can make this clear any placeholders first for non-restricted hashes, + even though Storable rebuilds restricted hashes by putting in all the + placeholders (first) before turning on the readonly flag, because + Storable always pre-splits the hash. */ + hv_clear_placeholders(hv); + } + PL_nomemok = TRUE; #if defined(STRANGE_MALLOC) || defined(MYMALLOC) Renew(a, PERL_HV_ARRAY_ALLOC_BYTES(newsize), char); @@ -1501,42 +1500,48 @@ See Hash::Util::lock_keys() for an example of its use. void Perl_hv_clear_placeholders(pTHX_ HV *hv) { - I32 items; - items = (I32)HvPLACEHOLDERS(hv); - if (items) { - HE *entry; - I32 riter = HvRITER(hv); - HE *eiter = HvEITER(hv); - hv_iterinit(hv); - /* This may look suboptimal with the items *after* the iternext, but - it's quite deliberate. We only get here with items==0 if we've - just deleted the last placeholder in the hash. If we've just done - that then it means that the hash is in lazy delete mode, and the - HE is now only referenced in our iterator. If we just quit the loop - and discarded our iterator then the HE leaks. So we do the && the - other way to ensure iternext is called just one more time, which - has the side effect of triggering the lazy delete. */ - while ((entry = hv_iternext_flags(hv, HV_ITERNEXT_WANTPLACEHOLDERS)) - && items) { - SV *val = hv_iterval(hv, entry); - - if (val == &PL_sv_placeholder) { - - /* It seems that I have to go back in the front of the hash - API to delete a hash, even though I have a HE structure - pointing to the very entry I want to delete, and could hold - onto the previous HE that points to it. And it's easier to - go in with SVs as I can then specify the precomputed hash, - and don't have fun and games with utf8 keys. */ - SV *key = hv_iterkeysv(entry); - - hv_delete_ent (hv, key, G_DISCARD, HeHASH(entry)); - items--; - } - } - HvRITER(hv) = riter; - HvEITER(hv) = eiter; - } + I32 items = (I32)HvPLACEHOLDERS(hv); + I32 i = HvMAX(hv); + + if (items == 0) + return; + + do { + /* Loop down the linked list heads */ + int first = 1; + HE **oentry = &(HvARRAY(hv))[i]; + HE *entry = *oentry; + + if (!entry) + continue; + + for (; entry; entry = *oentry) { + if (HeVAL(entry) == &PL_sv_placeholder) { + *oentry = HeNEXT(entry); + if (first && !*oentry) + HvFILL(hv)--; /* This linked list is now empty. */ + if (HvEITER(hv)) + HvLAZYDEL_on(hv); + else + hv_free_ent(hv, entry); + + if (--items == 0) { + /* Finished. */ + HvTOTALKEYS(hv) -= HvPLACEHOLDERS(hv); + if (HvKEYS(hv) == 0) + HvHASKFLAGS_off(hv); + HvPLACEHOLDERS(hv) = 0; + return; + } + } else { + oentry = &HeNEXT(entry); + first = 0; + } + } + } while (--i >= 0); + /* You can't get here, hence assertion should always fail. */ + assert (items == 0); + assert (0); } STATIC void @@ -2016,9 +2021,10 @@ S_unshare_hek_or_pvn(pTHX_ HEK *hek, const char *str, I32 len, U32 hash) UNLOCK_STRTAB_MUTEX; if (!found && ckWARN_d(WARN_INTERNAL)) Perl_warner(aTHX_ packWARN(WARN_INTERNAL), - "Attempt to free non-existent shared string '%s'%s", + "Attempt to free non-existent shared string '%s'%s" + pTHX__FORMAT, hek ? HEK_KEY(hek) : str, - (k_flags & HVhek_UTF8) ? " (utf8)" : ""); + ((k_flags & HVhek_UTF8) ? " (utf8)" : "") pTHX__VALUE); if (k_flags & HVhek_FREEKEY) Safefree(str); } diff --git a/gnu/usr.bin/perl/installhtml b/gnu/usr.bin/perl/installhtml index 967f0c6d1e3..5a76ba099fe 100644 --- a/gnu/usr.bin/perl/installhtml +++ b/gnu/usr.bin/perl/installhtml @@ -4,6 +4,7 @@ use strict; use Config; # for config options in the makefile +use File::Spec; use Getopt::Long; # for command-line parsing use Cwd; use Pod::Html 'anchorify'; @@ -293,15 +294,6 @@ sub parse_command_line { } -sub absolute_path { - my($cwd, $path) = @_; - return "$cwd/$path" unless $path =~ m:/:; - # add cwd if path is not already an absolute path - $path = "$cwd/$path" if (substr($path,0,1) ne '/'); - return $path; -} - - sub create_index { my($html, $dir) = @_; (my $pod = $dir) =~ s,^.*/,,; @@ -391,8 +383,8 @@ sub split_on_item { print "splitting files by item.\n" if $verbose && $#splititem >= 0; $pwd = getcwd(); - my $splitter = absolute_path($pwd, "$splitpod/splitpod"); - my $perl = absolute_path($pwd, $^X); + my $splitter = File::Spec->rel2abs("$splitpod/splitpod", $pwd); + my $perl = File::Spec->rel2abs($^X, $pwd); foreach my $pod (@splititem) { # figure out the directory to split into $pod =~ s,^([^/]*)$,/$1,; diff --git a/gnu/usr.bin/perl/installman b/gnu/usr.bin/perl/installman index 79c603593e8..c736a9eea48 100644 --- a/gnu/usr.bin/perl/installman +++ b/gnu/usr.bin/perl/installman @@ -91,6 +91,11 @@ while (<UTILS>) { my $new = "$opts{man1dir}/$what2.$opts{man1ext}"; unlink($new); link($old, $new); + my $xold = $old; + $xold =~ s/^\Q$opts{'destdir'}\E// if $opts{'destdir'}; + my $xnew = $new; + $xnew =~ s/^\Q$opts{'destdir'}\E// if $opts{'destdir'}; + $packlist->{$xnew} = { from => $xold, type => 'link' }; } } } diff --git a/gnu/usr.bin/perl/installperl b/gnu/usr.bin/perl/installperl index 13d648b961a..34ceb6766dd 100644 --- a/gnu/usr.bin/perl/installperl +++ b/gnu/usr.bin/perl/installperl @@ -252,6 +252,9 @@ else { # " some tests failed! (Installing anyway.)\n"; } #if (!$Is_NetWare) +# This will be used to store the packlist +my $packlist = ExtUtils::Packlist->new("$installarchlib/.packlist"); + if (($Is_W32 and ! $Is_NetWare) or $Is_Cygwin) { my $perldll; @@ -266,6 +269,7 @@ if (($Is_W32 and ! $Is_NetWare) or $Is_Cygwin) { safe_unlink("$installbin/$_"); copy("$_", "$installbin/$_"); chmod(0755, "$installbin/$_"); + $packlist->{"$installbin/$_"} = { type => 'file' }; }; open (LD2, ">$installbin/ld2"); print LD2 <<SHELL; @@ -302,11 +306,9 @@ SHELL safe_unlink("$installbin/$perldll"); copy("$perldll", "$installbin/$perldll"); chmod(0755, "$installbin/$perldll"); + $packlist->{"$installbin/$perldll"} = { type => 'file' }; } # if (($Is_W32 and ! $Is_NetWare) or $Is_Cygwin) -# This will be used to store the packlist -my $packlist = ExtUtils::Packlist->new("$installarchlib/.packlist"); - # Get the install command and flags from the environment my @installcmd = $ENV{"INSTALL"} || "install"; push(@installcmd, $ENV{"INSTALL_COPY"} || "-c"); @@ -458,7 +460,7 @@ if (! $versiononly && ! samepath($installbin, '.') && ($^O ne 'dos') && ! $Is_VM link("$installbin/$perl_verbase$ver$exe_ext", "$installbin/$perl$exe_ext"); } - link("$installbin/s$perl_verbase$ver$exe_ext", + link("$installbin/$perl_verbase$ver$exe_ext", "$installbin/suid$perl$exe_ext") if $d_dosuid; } diff --git a/gnu/usr.bin/perl/lib/Benchmark.pm b/gnu/usr.bin/perl/lib/Benchmark.pm index d7e34f88a68..d48f8f26a08 100644 --- a/gnu/usr.bin/perl/lib/Benchmark.pm +++ b/gnu/usr.bin/perl/lib/Benchmark.pm @@ -412,6 +412,9 @@ All bugs found while writing a regression test. September, 2002; by Jarkko Hietaniemi: add ':hireswallclock' special tag. +February, 2004; by Chia-liang Kao: make cmpthese and timestr use time +statistics for children instead of parent when the style is 'nop'. + =cut # evaluate something in a clean lexical environment @@ -432,7 +435,7 @@ our(@ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS, $VERSION); clearcache clearallcache disablecache enablecache); %EXPORT_TAGS=( all => [ @EXPORT, @EXPORT_OK ] ) ; -$VERSION = 1.052; +$VERSION = 1.06; # --- ':hireswallclock' special handling @@ -594,7 +597,8 @@ sub timestr { $r,$pu,$ps,$pt) if $style eq 'noc'; $s=sprintf("$w wallclock secs (%$f cusr + %$f csys = %$f CPU)", $r,$cu,$cs,$ct) if $style eq 'nop'; - $s .= sprintf(" @ %$f/s (n=$n)", $n / ( $pu + $ps )) if $n && $pu+$ps; + $s .= sprintf(" @ %$f/s (n=$n)", $n / ( $style eq 'nop' ? $cu + $cs : $pu + $ps )) + if $n && ($style eq 'nop' ? $cu+$cs : $pu+$ps); $s; } @@ -882,7 +886,8 @@ sub cmpthese{ for (@vals) { # The epsilon fudge here is to prevent div by 0. Since clock # resolutions are much larger, it's below the noise floor. - my $rate = $_->[6] / ( $_->[2] + $_->[3] + 0.000000000000001 ); + my $rate = $_->[6] / (( $style eq 'nop' ? $_->[4] + $_->[5] + : $_->[2] + $_->[3]) + 0.000000000000001 ); $_->[7] = $rate; } diff --git a/gnu/usr.bin/perl/lib/CGI.pm b/gnu/usr.bin/perl/lib/CGI.pm index a7dc37ccfcc..c31df7d4b30 100644 --- a/gnu/usr.bin/perl/lib/CGI.pm +++ b/gnu/usr.bin/perl/lib/CGI.pm @@ -18,8 +18,8 @@ use Carp 'croak'; # The most recent version and complete docs are available at: # http://stein.cshl.org/WWW/software/CGI/ -$CGI::revision = '$Id: CGI.pm,v 1.8 2004/04/07 21:33:04 millert Exp $'; -$CGI::VERSION=3.01; +$CGI::revision = '$Id: CGI.pm,v 1.9 2004/08/09 18:09:28 millert Exp $'; +$CGI::VERSION=3.05; # HARD-CODED LOCATION FOR FILE UPLOAD TEMPORARY FILES. # UNCOMMENT THIS ONLY IF YOU KNOW WHAT YOU'RE DOING. @@ -37,9 +37,8 @@ use constant XHTML_DTD => ['-//W3C//DTD XHTML 1.0 Transitional//EN', $TAINTED = substr("$0$^X",0,0); } -my @SAVED_SYMBOLS; - $MOD_PERL = 0; # no mod_perl by default +@SAVED_SYMBOLS = (); # >>>>> Here are some globals that you might want to adjust <<<<<< sub initialize_globals { @@ -111,6 +110,7 @@ sub initialize_globals { # Other globals that you shouldn't worry about. undef $Q; $BEEN_THERE = 0; + $DTD_PUBLIC_IDENTIFIER = ""; undef @QUERY_PARAM; undef %EXPORT; undef $QUERY_CHARSET; @@ -122,6 +122,8 @@ sub initialize_globals { # ------------------ START OF THE LIBRARY ------------ +*end_form = \&endform; + # make mod_perlhappy initialize_globals(); @@ -181,6 +183,7 @@ if (exists $ENV{MOD_PERL}) { if (defined $mod_perl::VERSION) { if ($mod_perl::VERSION >= 1.99) { $MOD_PERL = 2; + require Apache::Response; require Apache::RequestRec; require Apache::RequestUtil; require APR::Pool; @@ -304,6 +307,10 @@ sub new { )) { $self->r(shift @initializer); } + if (ref($initializer[0]) + && (UNIVERSAL::isa($initializer[0],'CODE'))) { + $self->upload_hook(shift @initializer, shift @initializer); + } if ($MOD_PERL) { $self->r(Apache->request) unless $self->r; my $r = $self->r; @@ -601,7 +608,7 @@ sub init { # Special case. Erase everything if there is a field named # .defaults. if ($self->param('.defaults')) { - undef %{$self}; + $self->delete_all(); } # Associative array containing our defined fieldnames @@ -814,7 +821,7 @@ sub _setup_symbols { $XHTML=0, next if /^[:-]no_?xhtml$/; $USE_PARAM_SEMICOLONS=0, next if /^[:-]oldstyle_urls$/; $PRIVATE_TEMPFILES++, next if /^[:-]private_tempfiles$/; - $CLOSE_UPLOAD_FILES++, next if /^[:-]close_upload_files$/; + $CLOSE_UPLOAD_FILES++, next if /^[:-]close_upload_files$/; $EXPORT{$_}++, next if /^[:-]any$/; $compile++, next if /^[:-]compile$/; $NO_UNDEF_PARAMS++, next if /^[:-]no_undef_params$/; @@ -900,7 +907,7 @@ sub delete { $to_delete{$name}++; } @{$self->{'.parameters'}}=grep { !exists($to_delete{$_}) } $self->param(); - return wantarray ? () : undef; + return; } END_OF_FUNC @@ -1274,7 +1281,7 @@ sub multipart_init { $self->{'final_separator'} = "$CRLF--$boundary--$CRLF"; $type = SERVER_PUSH($boundary); return $self->header( - -nph => 1, + -nph => 0, -type => $type, (map { split "=", $_, 2 } @other), ) . "WARNING: YOUR BROWSER DOESN'T SUPPORT THIS SERVER-PUSH TECHNOLOGY." . $self->multipart_end; @@ -1434,12 +1441,14 @@ END_OF_FUNC 'redirect' => <<'END_OF_FUNC', sub redirect { my($self,@p) = self_or_default(@_); - my($url,$target,$cookie,$nph,@other) = rearrange([[LOCATION,URI,URL],TARGET,['COOKIE','COOKIES'],NPH],@p); + my($url,$target,$status,$cookie,$nph,@other) = + rearrange([[LOCATION,URI,URL],TARGET,STATUS,['COOKIE','COOKIES'],NPH],@p); + $status = '302 Moved' unless defined $status; $url ||= $self->self_url; my(@o); foreach (@other) { tr/\"//d; push(@o,split("=",$_,2)); } unshift(@o, - '-Status' => '302 Moved', + '-Status' => $status, '-Location'=> $url, '-nph' => $nph); unshift(@o,'-Target'=>$target) if $target; @@ -1479,11 +1488,7 @@ sub start_html { $encoding = 'iso-8859-1' unless defined $encoding; - # strangely enough, the title needs to be escaped as HTML - # while the author needs to be escaped as a URL - $title = $self->escapeHTML($title || 'Untitled Document'); - $author = $self->escape($author); - $lang = 'en-US' unless defined $lang; + # Need to sort out the DTD before it's okay to call escapeHTML(). my(@result,$xml_dtd); if ($dtd) { if (defined(ref($dtd)) and (ref($dtd) eq 'ARRAY')) { @@ -1501,9 +1506,26 @@ sub start_html { if (ref($dtd) && ref($dtd) eq 'ARRAY') { push(@result,qq(<!DOCTYPE html\n\tPUBLIC "$dtd->[0]"\n\t "$dtd->[1]">)); + $DTD_PUBLIC_IDENTIFIER = $dtd->[0]; } else { push(@result,qq(<!DOCTYPE html\n\tPUBLIC "$dtd">)); + $DTD_PUBLIC_IDENTIFIER = $dtd; + } + + # Now that we know whether we're using the HTML 3.2 DTD or not, it's okay to + # call escapeHTML(). Strangely enough, the title needs to be escaped as + # HTML while the author needs to be escaped as a URL. + $title = $self->escapeHTML($title || 'Untitled Document'); + $author = $self->escape($author); + + if ($DTD_PUBLIC_IDENTIFIER =~ /[^X]HTML (2\.0|3\.2)/i) { + $lang = "" unless defined $lang; + $XHTML = 0; + } + else { + $lang = 'en-US' unless defined $lang; } + push(@result,$XHTML ? qq(<html xmlns="http://www.w3.org/1999/xhtml" lang="$lang" xml:lang="$lang"><head><title>$title</title>) : ($lang ? qq(<html lang="$lang">) : "<html>") . "<head><title>$title</title>"); @@ -1526,7 +1548,7 @@ sub start_html { push(@result,ref($head) ? @$head : $head) if $head; # handle the infrequently-used -style and -script parameters - push(@result,$self->_style($style)) if defined $style; + push(@result,$self->_style($style)) if defined $style; push(@result,$self->_script($script)) if defined $script; # handle -noscript parameter @@ -1554,36 +1576,43 @@ sub _style { my $cdata_start = $XHTML ? "\n<!--/* <![CDATA[ */" : "\n<!-- "; my $cdata_end = $XHTML ? "\n/* ]]> */-->\n" : " -->\n"; - if (ref($style)) { - my($src,$code,$verbatim,$stype,$foo,@other) = - rearrange([SRC,CODE,VERBATIM,TYPE], - '-foo'=>'bar', # trick to allow dash to be omitted - ref($style) eq 'ARRAY' ? @$style : %$style); - $type = $stype if $stype; - my $other = @other ? join ' ',@other : ''; - - if (ref($src) eq "ARRAY") # Check to see if the $src variable is an array reference - { # If it is, push a LINK tag for each one - foreach $src (@$src) - { - push(@result,$XHTML ? qq(<link rel="stylesheet" type="$type" href="$src" $other/>) + my @s = ref($style) eq 'ARRAY' ? @$style : $style; + + for my $s (@s) { + if (ref($s)) { + my($src,$code,$verbatim,$stype,$foo,@other) = + rearrange([qw(SRC CODE VERBATIM TYPE FOO)], + ('-foo'=>'bar', + ref($s) eq 'ARRAY' ? @$s : %$s)); + $type = $stype if $stype; + my $other = @other ? join ' ',@other : ''; + + if (ref($src) eq "ARRAY") # Check to see if the $src variable is an array reference + { # If it is, push a LINK tag for each one + foreach $src (@$src) + { + push(@result,$XHTML ? qq(<link rel="stylesheet" type="$type" href="$src" $other/>) : qq(<link rel="stylesheet" type="$type" href="$src"$other>)) if $src; + } } - } - else - { # Otherwise, push the single -src, if it exists. - push(@result,$XHTML ? qq(<link rel="stylesheet" type="$type" href="$src" $other/>) - : qq(<link rel="stylesheet" type="$type" href="$src"$other>) - ) if $src; - } - if ($verbatim) { - push(@result, "<style type=\"text/css\">\n$verbatim\n</style>"); - } - push(@result,style({'type'=>$type},"$cdata_start\n$code\n$cdata_end")) if $code; - } else { - my $src = $style; + else + { # Otherwise, push the single -src, if it exists. push(@result,$XHTML ? qq(<link rel="stylesheet" type="$type" href="$src" $other/>) - : qq(<link rel="stylesheet" type="$type" href="$src"$other>)); + : qq(<link rel="stylesheet" type="$type" href="$src"$other>) + ) if $src; + } + if ($verbatim) { + my @v = ref($verbatim) eq 'ARRAY' ? @$verbatim : $verbatim; + push(@result, "<style type=\"text/css\">\n$_\n</style>") foreach @v; + } + my @c = ref($code) eq 'ARRAY' ? @$code : $code if $code; + push(@result,style({'type'=>$type},"$cdata_start\n$_\n$cdata_end")) foreach @c; + + } else { + my $src = $s; + push(@result,$XHTML ? qq(<link rel="stylesheet" type="$type" href="$src" $other/>) + : qq(<link rel="stylesheet" type="$type" href="$src"$other>)); + } } @result; } @@ -1682,12 +1711,14 @@ sub startform { my($method,$action,$enctype,@other) = rearrange([METHOD,ACTION,ENCTYPE],@p); - $method = lc($method) || 'post'; - $enctype = $enctype || &URL_ENCODED; - unless (defined $action) { - + $method = $self->escapeHTML(lc($method) || 'post'); + $enctype = $self->escapeHTML($enctype || &URL_ENCODED); + if (defined $action) { + $action = $self->escapeHTML($action); + } + else { $action = $self->escapeHTML($self->url(-absolute=>1,-path=>1)); - if (length($ENV{QUERY_STRING})>0) { + if (exists $ENV{QUERY_STRING} && length($ENV{QUERY_STRING})>0) { $action .= "?".$self->escapeHTML($ENV{QUERY_STRING},1); } } @@ -1746,15 +1777,6 @@ sub endform { END_OF_FUNC -#### Method: end_form -# synonym for endform -'end_form' => <<'END_OF_FUNC', -sub end_form { - &endform; -} -END_OF_FUNC - - '_textfield' => <<'END_OF_FUNC', sub _textfield { my($self,$tag,@p) = self_or_default(@_); @@ -1911,7 +1933,7 @@ sub submit { $label=$self->escapeHTML($label); $value=$self->escapeHTML($value,1); - my($name) = ' name=".submit"' unless $NOSTICKY; + my $name = $NOSTICKY ? '' : ' name=".submit"'; $name = qq/ name="$label"/ if defined($label); $value = defined($value) ? $value : $label; my $val = ''; @@ -2088,7 +2110,7 @@ sub checkbox_group { : qq/<input type="checkbox" name="$name" value="$_"$checked$other$attribs>${label}${break}/); } $self->register_parameter($name); - return wantarray ? @elements : join(' ',@elements) + return wantarray ? @elements : join(' ',@elements) unless defined($columns) || defined($rows); $rows = 1 if $rows && $rows < 1; $cols = 1 if $cols && $cols < 1; @@ -2107,7 +2129,15 @@ sub escapeHTML { $toencode =~ s{&}{&}gso; $toencode =~ s{<}{<}gso; $toencode =~ s{>}{>}gso; - $toencode =~ s{"}{"}gso; + if ($DTD_PUBLIC_IDENTIFIER =~ /[^X]HTML 3\.2/i) { + # $quot; was accidentally omitted from the HTML 3.2 DTD -- see + # <http://validator.w3.org/docs/errors.html#bad-entity> / + # <http://lists.w3.org/Archives/Public/www-html/1997Mar/0003.html>. + $toencode =~ s{"}{"}gso; + } + else { + $toencode =~ s{"}{"}gso; + } my $latin = uc $self->{'.charset'} eq 'ISO-8859-1' || uc $self->{'.charset'} eq 'WINDOWS-1252'; if ($latin) { # bug in some browsers @@ -2126,6 +2156,8 @@ END_OF_FUNC # unescape HTML -- used internally 'unescapeHTML' => <<'END_OF_FUNC', sub unescapeHTML { + # hack to work around earlier hacks + push @_,$_[0] if @_==1 && $_[0] eq 'CGI'; my ($self,$string) = CGI::self_or_default(@_); return undef unless defined($string); my $latin = defined $self->{'.charset'} ? $self->{'.charset'} =~ /^(ISO-8859-1|WINDOWS-1252)$/i @@ -2464,8 +2496,8 @@ sub hidden { $name=$self->escapeHTML($name); foreach (@value) { $_ = defined($_) ? $self->escapeHTML($_,1) : ''; - push @result,$XHTML ? qq(<input type="hidden" name="$name" value="$_" />) - : qq(<input type="hidden" name="$name" value="$_">); + push @result,$XHTML ? qq(<input type="hidden" name="$name" value="$_" @other />) + : qq(<input type="hidden" name="$name" value="$_" @other>); } return wantarray ? @result : join('',@result); } @@ -2538,18 +2570,18 @@ sub url { if (exists($ENV{REQUEST_URI})) { my $index; $script_name = unescape($ENV{REQUEST_URI}); - $script_name =~ s/\?.+$//; # strip query string + $script_name =~ s/\?.+$//s; # strip query string # and path if (exists($ENV{PATH_INFO})) { - my $encoded_path = quotemeta($ENV{PATH_INFO}); - $script_name =~ s/$encoded_path$//i; + my $encoded_path = unescape($ENV{PATH_INFO}); + $script_name =~ s/\Q$encoded_path\E$//i; } } if ($full) { my $protocol = $self->protocol(); $url = "$protocol://"; - my $vh = http('host'); + my $vh = http('x_forwarded_host') || http('host'); if ($vh) { $url .= $vh; } else { @@ -2821,7 +2853,7 @@ END_OF_FUNC ###### 'virtual_host' => <<'END_OF_FUNC', sub virtual_host { - my $vh = http('host') || server_name(); + my $vh = http('x_forwarded_host') || http('host') || server_name(); $vh =~ s/:\d+$//; # get rid of port number return $vh; } @@ -2903,7 +2935,7 @@ END_OF_FUNC 'virtual_port' => <<'END_OF_FUNC', sub virtual_port { my($self) = self_or_default(@_); - my $vh = $self->http('host'); + my $vh = $self->http('x_forwarded_host') || $self->http('host'); if ($vh) { return ($vh =~ /:(\d+)$/)[0] || '80'; } else { @@ -3176,11 +3208,11 @@ sub read_multipart { return; } - my($param)= $header{'Content-Disposition'}=~/ name="?([^\";]*)"?/; + my($param)= $header{'Content-Disposition'}=~/ name="([^;]*)"/; $param .= $TAINTED; # Bug: Netscape doesn't escape quotation marks in file names!!! - my($filename) = $header{'Content-Disposition'}=~/ filename="?([^\"]*)"?/; + my($filename) = $header{'Content-Disposition'}=~/ filename="([^;]*)"/; # Test for Opera's multiple upload feature my($multipart) = ( defined( $header{'Content-Type'} ) && $header{'Content-Type'} =~ /multipart\/mixed/ ) ? @@ -3317,8 +3349,8 @@ sub _set_attributes { return '' unless defined($attributes->{$element}); $attribs = ' '; foreach my $attrib (keys %{$attributes->{$element}}) { - $attrib =~ s/^-//; - $attribs .= "@{[lc($attrib)]}=\"$attributes->{$element}{$attrib}\" "; + (my $clean_attrib = $attrib) =~ s/^-//; + $attribs .= "@{[lc($clean_attrib)]}=\"$attributes->{$element}{$attrib}\" "; } $attribs =~ s/ $//; return $attribs; @@ -4478,6 +4510,10 @@ By default, CGI.pm versions 2.69 and higher emit XHTML feature. Thanks to Michalis Kabrianis <kabrianis@hellug.gr> for this feature. +If start_html()'s -dtd parameter specifies an HTML 2.0 or 3.2 DTD, +XHTML will automatically be disabled without needing to use this +pragma. + =item -nph This makes CGI.pm produce a header appropriate for an NPH (no @@ -4734,13 +4770,26 @@ redirection requests. Relative URLs will not work correctly. You can also use named arguments: print $query->redirect(-uri=>'http://somewhere.else/in/movie/land', - -nph=>1); + -nph=>1, + -status=>301); The B<-nph> parameter, if set to a true value, will issue the correct headers to work with a NPH (no-parse-header) script. This is important to use with certain servers, such as Microsoft IIS, which expect all their scripts to be NPH. +The B<-status> parameter will set the status of the redirect. HTTP +defines three different possible redirection status codes: + + 301 Moved Permanently + 302 Found + 303 See Other + +The default if not specified is 302, which means "moved temporarily." +You may change the status to another status code if you wish. Be +advised that changing the status to anything other than 301, 302 or +303 will probably break redirection. + =head2 CREATING THE HTML DOCUMENT HEADER print $query->start_html(-title=>'Secrets of the Pyramids', @@ -4797,13 +4846,14 @@ into your code. See the section on CASCADING STYLESHEETS for more information. The B<-lang> argument is used to incorporate a language attribute into -the <html> tag. The default if not specified is "en-US" for US -English. For example: +the <html> tag. For example: print $q->start_html(-lang=>'fr-CA'); -To leave off the lang attribute, as you must do if you want to generate -legal HTML 3.2 or earlier, pass the empty string (-lang=>''). +The default if not specified is "en-US" for US English, unless the +-dtd parameter specifies an HTML 2.0 or 3.2 DTD, in which case the +lang attribute is left off. You can force the lang attribute to left +off in other cases by passing an empty string (-lang=>''). The B<-encoding> argument can be used to specify the character set for XHTML. It defaults to iso-8859-1 if not specified. @@ -5312,6 +5362,21 @@ autoEscape() method with a false value immediately after creating the CGI object $query = new CGI; $query->autoEscape(undef); +I<A Lurking Trap!> Some of the form-element generating methods return +multiple tags. In a scalar context, the tags will be concatenated +together with spaces, or whatever is the current value of the $" +global. In a list context, the methods will return a list of +elements, allowing you to modify them if you wish. Usually you will +not notice this behavior, but beware of this: + + printf("%s\n",$query->end_form()) + +end_form() produces several tags, and only the first of them will be +printed because the format only expects one value. + +<p> + + =head2 CREATING AN ISINDEX TAG print $query->isindex(-action=>$action); @@ -5594,7 +5659,7 @@ filehandle, or undef if the parameter is not a valid filehandle. print; } -In an array context, upload() will return an array of filehandles. +In an list context, upload() will return an array of filehandles. This makes it possible to create forms that use the same name for multiple upload fields. @@ -6167,14 +6232,19 @@ should have one of these. The first argument (-name) is optional. You can give the button a name if you have several submission buttons in your form and you want -to distinguish between them. The name will also be used as the -user-visible label. Be aware that a few older browsers don't deal with this correctly and -B<never> send back a value from a button. +to distinguish between them. =item 2. The second argument (-value) is also optional. This gives the button -a value that will be passed to your script in the query string. +a value that will be passed to your script in the query string. The +name will also be used as the user-visible label. + +=item 3. + +You can use -label as an alias for -value. I always get confused +about which of -name and -value changes the user-visible label on the +button. =back @@ -6573,8 +6643,8 @@ http://www.w3.org/pub/WWW/TR/Wd-css-1.html for more information. ); print end_html; -Pass an array reference to B<-style> in order to incorporate multiple -stylesheets into your document. +Pass an array reference to B<-code> or B<-src> in order to incorporate +multiple stylesheets into your document. Should you wish to incorporate a verbatim stylesheet that includes arbitrary formatting in the header, you may pass a -verbatim tag to @@ -7065,7 +7135,7 @@ OLD VERSION NEW VERSION use CGI; - CGI::ReadParse + CGI::ReadParse; print "The value of the antique is $in{antique}.\n"; CGI.pm's ReadParse() routine creates a tied variable named %in, diff --git a/gnu/usr.bin/perl/lib/CGI/Carp.pm b/gnu/usr.bin/perl/lib/CGI/Carp.pm index 255b9e758a6..e25cd7f0557 100644 --- a/gnu/usr.bin/perl/lib/CGI/Carp.pm +++ b/gnu/usr.bin/perl/lib/CGI/Carp.pm @@ -281,7 +281,7 @@ use File::Spec; $main::SIG{__WARN__}=\&CGI::Carp::warn; -$CGI::Carp::VERSION = '1.27'; +$CGI::Carp::VERSION = '1.28'; $CGI::Carp::CUSTOM_MSG = undef; @@ -381,10 +381,11 @@ sub ineval { } sub die { - my ($arg) = @_; - realdie @_ if ineval; + my ($arg,@rest) = @_; + realdie ($arg,@rest) if ineval(); + if (!ref($arg)) { - $arg = join("", @_); + $arg = join("", ($arg,@rest)); my($file,$line,$id) = id(1); $arg .= " at $file line $line." unless $arg=~/\n$/; &fatalsToBrowser($arg) if $WRAP; @@ -443,8 +444,6 @@ END ; my $mod_perl = exists $ENV{MOD_PERL}; - warningsToBrowser(1); # emit warnings before dying - if ($CUSTOM_MSG) { if (ref($CUSTOM_MSG) eq 'CODE') { print STDOUT "Content-type: text/html\n\n" @@ -501,6 +500,8 @@ END print STDOUT $mess; } } + + warningsToBrowser(1); # emit warnings before dying } # Cut and paste from CGI.pm so that we don't have the overhead of diff --git a/gnu/usr.bin/perl/lib/CGI/Util.pm b/gnu/usr.bin/perl/lib/CGI/Util.pm index be104facf91..6af42de415e 100644 --- a/gnu/usr.bin/perl/lib/CGI/Util.pm +++ b/gnu/usr.bin/perl/lib/CGI/Util.pm @@ -7,12 +7,11 @@ require Exporter; @EXPORT_OK = qw(rearrange make_attributes unescape escape expires ebcdic2ascii ascii2ebcdic); -$VERSION = '1.4'; +$VERSION = '1.5'; $EBCDIC = "\t" ne "\011"; -if ($EBCDIC) { - # (ord('^') == 95) for codepage 1047 as on os390, vmesa - @A2E = ( +# (ord('^') == 95) for codepage 1047 as on os390, vmesa +@A2E = ( 0, 1, 2, 3, 55, 45, 46, 47, 22, 5, 21, 11, 12, 13, 14, 15, 16, 17, 18, 19, 60, 61, 50, 38, 24, 25, 63, 39, 28, 29, 30, 31, 64, 90,127,123, 91,108, 80,125, 77, 93, 92, 78,107, 96, 75, 97, @@ -30,7 +29,7 @@ if ($EBCDIC) { 68, 69, 66, 70, 67, 71,156, 72, 84, 81, 82, 83, 88, 85, 86, 87, 140, 73,205,206,203,207,204,225,112,221,222,219,220,141,142,223 ); - @E2A = ( +@E2A = ( 0, 1, 2, 3,156, 9,134,127,151,141,142, 11, 12, 13, 14, 15, 16, 17, 18, 19,157, 10, 8,135, 24, 25,146,143, 28, 29, 30, 31, 128,129,130,131,132,133, 23, 27,136,137,138,139,140, 5, 6, 7, @@ -48,26 +47,26 @@ if ($EBCDIC) { 92,247, 83, 84, 85, 86, 87, 88, 89, 90,178,212,214,210,211,213, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,179,219,220,217,218,159 ); - if (ord('^') == 106) { # as in the BS2000 posix-bc coded character set + +if ($EBCDIC && ord('^') == 106) { # as in the BS2000 posix-bc coded character set $A2E[91] = 187; $A2E[92] = 188; $A2E[94] = 106; $A2E[96] = 74; $A2E[123] = 251; $A2E[125] = 253; $A2E[126] = 255; $A2E[159] = 95; $A2E[162] = 176; $A2E[166] = 208; $A2E[168] = 121; $A2E[172] = 186; $A2E[175] = 161; $A2E[217] = 224; $A2E[219] = 221; $A2E[221] = 173; $A2E[249] = 192; - + $E2A[74] = 96; $E2A[95] = 159; $E2A[106] = 94; $E2A[121] = 168; $E2A[161] = 175; $E2A[173] = 221; $E2A[176] = 162; $E2A[186] = 172; $E2A[187] = 91; $E2A[188] = 92; $E2A[192] = 249; $E2A[208] = 166; $E2A[221] = 219; $E2A[224] = 217; $E2A[251] = 123; $E2A[253] = 125; $E2A[255] = 126; - } - elsif (ord('^') == 176) { # as in codepage 037 on os400 - $A2E[10] = 37; $A2E[91] = 186; $A2E[93] = 187; $A2E[94] = 176; - $A2E[133] = 21; $A2E[168] = 189; $A2E[172] = 95; $A2E[221] = 173; - - $E2A[21] = 133; $E2A[37] = 10; $E2A[95] = 172; $E2A[173] = 221; - $E2A[176] = 94; $E2A[186] = 91; $E2A[187] = 93; $E2A[189] = 168; } +elsif ($EBCDIC && ord('^') == 176) { # as in codepage 037 on os400 + $A2E[10] = 37; $A2E[91] = 186; $A2E[93] = 187; $A2E[94] = 176; + $A2E[133] = 21; $A2E[168] = 189; $A2E[172] = 95; $A2E[221] = 173; + + $E2A[21] = 133; $E2A[37] = 10; $E2A[95] = 172; $E2A[173] = 221; + $E2A[176] = 94; $E2A[186] = 91; $E2A[187] = 93; $E2A[189] = 168; } # Smart rearrangement of parameters to allow named parameter @@ -140,7 +139,7 @@ sub simple_escape { $toencode; } -sub utf8_chr ($) { +sub utf8_chr { my $c = shift(@_); if ($c < 0x80) { @@ -175,7 +174,7 @@ sub utf8_chr ($) { 0x80 | (($c >> 6) & 0x3f), 0x80 | ( $c & 0x3f)); } else { - return utf8(0xfffd); + return utf8_chr(0xfffd); } } diff --git a/gnu/usr.bin/perl/lib/CGI/t/html.t b/gnu/usr.bin/perl/lib/CGI/t/html.t index b3c462c0790..dbab2fcdfd5 100644 --- a/gnu/usr.bin/perl/lib/CGI/t/html.t +++ b/gnu/usr.bin/perl/lib/CGI/t/html.t @@ -62,14 +62,7 @@ test(13,start_html() ."\n" eq <<END,"start_html()"); </head><body> END ; -test(14,start_html(-dtd=>"-//IETF//DTD HTML 3.2//FR",-lang=>'fr') ."\n" eq <<END,"start_html()"); -<!DOCTYPE html - PUBLIC "-//IETF//DTD HTML 3.2//FR"> -<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head><title>Untitled Document</title> -</head><body> -END - ; -test(15,start_html(-Title=>'The world of foo') ."\n" eq <<END,"start_html()"); +test(14,start_html(-Title=>'The world of foo') ."\n" eq <<END,"start_html()"); <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" @@ -78,6 +71,14 @@ test(15,start_html(-Title=>'The world of foo') ."\n" eq <<END,"start_html()"); </head><body> END ; +# Note that this test will turn off XHTML until we make a new CGI object. +test(15,start_html(-dtd=>"-//IETF//DTD HTML 3.2//FR",-lang=>'fr') ."\n" eq <<END,"start_html()"); +<!DOCTYPE html + PUBLIC "-//IETF//DTD HTML 3.2//FR"> +<html lang="fr"><head><title>Untitled Document</title> +</head><body> +END + ; test(16,($cookie=cookie(-name=>'fred',-value=>['chocolate','chip'],-path=>'/')) eq 'fred=chocolate&chip; path=/',"cookie()"); my $h = header(-Cookie=>$cookie); test(17,$h =~ m!^Set-Cookie: fred=chocolate&chip\; path=/${CRLF}Date:.*${CRLF}Content-Type: text/html; charset=ISO-8859-1${CRLF}${CRLF}!s, diff --git a/gnu/usr.bin/perl/lib/Carp.pm b/gnu/usr.bin/perl/lib/Carp.pm index 6199f894487..22f7daf9418 100644 --- a/gnu/usr.bin/perl/lib/Carp.pm +++ b/gnu/usr.bin/perl/lib/Carp.pm @@ -1,6 +1,6 @@ package Carp; -our $VERSION = '1.01'; +our $VERSION = '1.03'; =head1 NAME @@ -155,7 +155,12 @@ sub export_fail { # each function call on the stack. sub longmess { - { local $@; require Carp::Heavy; } # XXX fix require to not clear $@? + { + local $@; + # XXX fix require to not clear $@? + # don't use require unless we need to (for Safe compartments) + require Carp::Heavy unless $INC{"Carp/Heavy.pm"}; + } # Icky backwards compatibility wrapper. :-( my $call_pack = caller(); if ($Internal{$call_pack} or $CarpInternal{$call_pack}) { @@ -175,7 +180,12 @@ sub longmess { # you always get a stack trace sub shortmess { # Short-circuit &longmess if called via multiple packages - { local $@; require Carp::Heavy; } # XXX fix require to not clear $@? + { + local $@; + # XXX fix require to not clear $@? + # don't use require unless we need to (for Safe compartments) + require Carp::Heavy unless $INC{"Carp/Heavy.pm"}; + } # Icky backwards compatibility wrapper. :-( my $call_pack = caller(); local @CARP_NOT = caller(); diff --git a/gnu/usr.bin/perl/lib/Cwd.pm b/gnu/usr.bin/perl/lib/Cwd.pm index 51ca5b6f540..b0dad20e6ac 100644 --- a/gnu/usr.bin/perl/lib/Cwd.pm +++ b/gnu/usr.bin/perl/lib/Cwd.pm @@ -1,4 +1,5 @@ package Cwd; +$VERSION = $VERSION = '2.19'; =head1 NAME @@ -19,7 +20,7 @@ current working directory. It is recommended that getcwd (or another *cwd() function) be used in I<all> code to ensure portability. By default, it exports the functions cwd(), getcwd(), fastcwd(), and -fastgetcwd() into the caller's namespace. +fastgetcwd() (and, on Win32, getdcwd()) into the caller's namespace. =head2 getcwd and friends @@ -66,6 +67,18 @@ unexpectedly". That should never happen. The fastgetcwd() function is provided as a synonym for cwd(). +=item getdcwd + + my $cwd = getdcwd(); + my $cwd = getdcwd('C:'); + +The getdcwd() function is also provided on Win32 to get the current working +directory on the specified drive, since Windows maintains a separate current +working directory for each drive. If no drive is specified then the current +drive is assumed. + +This function simply calls the Microsoft C library _getdcwd() function. + =back @@ -129,6 +142,12 @@ C<fast_abs_path()>. =back +=head1 AUTHOR + +Originally by the perl5-porters. + +Maintained by Ken Williams <KWILLIAMS@cpan.org> + =head1 SEE ALSO L<File::chdir> @@ -137,12 +156,11 @@ L<File::chdir> use strict; use Exporter; -use vars qw($VERSION @ISA @EXPORT @EXPORT_OK); - -$VERSION = '2.12'; +use vars qw(@ISA @EXPORT @EXPORT_OK); @ISA = qw/ Exporter /; @EXPORT = qw(cwd getcwd fastcwd fastgetcwd); +push @EXPORT, qw(getdcwd) if $^O eq 'MSWin32'; @EXPORT_OK = qw(chdir abs_path fast_abs_path realpath fast_realpath); # sys_cwd may keep the builtin command @@ -173,26 +191,99 @@ eval { XSLoader::load('Cwd'); }; +# Big nasty table of function aliases +my %METHOD_MAP = + ( + VMS => + { + cwd => '_vms_cwd', + getcwd => '_vms_cwd', + fastcwd => '_vms_cwd', + fastgetcwd => '_vms_cwd', + abs_path => '_vms_abs_path', + fast_abs_path => '_vms_abs_path', + }, + + MSWin32 => + { + # We assume that &_NT_cwd is defined as an XSUB or in the core. + cwd => '_NT_cwd', + getcwd => '_NT_cwd', + fastcwd => '_NT_cwd', + fastgetcwd => '_NT_cwd', + abs_path => 'fast_abs_path', + realpath => 'fast_abs_path', + }, + + dos => + { + cwd => '_dos_cwd', + getcwd => '_dos_cwd', + fastgetcwd => '_dos_cwd', + fastcwd => '_dos_cwd', + abs_path => 'fast_abs_path', + }, + + qnx => + { + cwd => '_qnx_cwd', + getcwd => '_qnx_cwd', + fastgetcwd => '_qnx_cwd', + fastcwd => '_qnx_cwd', + abs_path => '_qnx_abs_path', + fast_abs_path => '_qnx_abs_path', + }, + + cygwin => + { + getcwd => 'cwd', + fastgetcwd => 'cwd', + fastcwd => 'cwd', + abs_path => 'fast_abs_path', + realpath => 'fast_abs_path', + }, + + epoc => + { + cwd => '_epoc_cwd', + getcwd => '_epoc_cwd', + fastgetcwd => '_epoc_cwd', + fastcwd => '_epoc_cwd', + abs_path => 'fast_abs_path', + }, + + MacOS => + { + getcwd => 'cwd', + fastgetcwd => 'cwd', + fastcwd => 'cwd', + abs_path => 'fast_abs_path', + }, + ); + +$METHOD_MAP{NT} = $METHOD_MAP{MSWin32}; +$METHOD_MAP{nto} = $METHOD_MAP{qnx}; + # Find the pwd command in the expected locations. We assume these # are safe. This prevents _backtick_pwd() consulting $ENV{PATH} # so everything works under taint mode. my $pwd_cmd; -foreach my $try (qw(/bin/pwd /usr/bin/pwd)) { +foreach my $try ('/bin/pwd', + '/usr/bin/pwd', + '/QOpenSys/bin/pwd', # OS/400 PASE. + ) { + if( -x $try ) { $pwd_cmd = $try; last; } } unless ($pwd_cmd) { - if (-x '/QOpenSys/bin/pwd') { # OS/400 PASE. - $pwd_cmd = '/QOpenSys/bin/pwd' ; - } else { - # Isn't this wrong? _backtick_pwd() will fail if somenone has - # pwd in their path but it is not /bin/pwd or /usr/bin/pwd? - # See [perl #16774]. --jhi - $pwd_cmd = 'pwd'; - } + # Isn't this wrong? _backtick_pwd() will fail if somenone has + # pwd in their path but it is not /bin/pwd or /usr/bin/pwd? + # See [perl #16774]. --jhi + $pwd_cmd = 'pwd'; } # Lazy-load Carp @@ -213,10 +304,11 @@ sub _backtick_pwd { # Since some ports may predefine cwd internally (e.g., NT) # we take care not to override an existing definition for cwd(). -unless(defined &cwd) { +unless ($METHOD_MAP{$^O}{cwd} or defined &cwd) { # The pwd command is not available in some chroot(2)'ed environments - if( $^O eq 'MacOS' || (defined $ENV{PATH} && - grep { -x "$_/pwd" } split(':', $ENV{PATH})) ) + my $sep = $Config::Config{path_sep} || ':'; + if( $^O eq 'MacOS' || (defined $ENV{PATH} && + grep { -x "$_/pwd" } split($sep, $ENV{PATH})) ) { *cwd = \&_backtick_pwd; } @@ -359,7 +451,7 @@ sub chdir { # In case the XS version doesn't load. *abs_path = \&_perl_abs_path unless defined &abs_path; -sub _perl_abs_path +sub _perl_abs_path(;$) { my $start = @_ ? shift : '.'; my($dotdots, $cwd, @pst, @cst, $dir, @tst); @@ -369,6 +461,28 @@ sub _perl_abs_path _carp("stat($start): $!"); return ''; } + + unless (-d _) { + # Make sure we can be invoked on plain files, not just directories. + # NOTE that this routine assumes that '/' is the only directory separator. + + my ($dir, $file) = $start =~ m{^(.*)/(.+)$} + or return cwd() . '/' . $start; + + if (-l _) { + my $link_target = readlink($start); + die "Can't resolve link $start: $!" unless defined $link_target; + + require File::Spec; + $link_target = $dir . '/' . $link_target + unless File::Spec->file_name_is_absolute($link_target); + + return abs_path($link_target); + } + + return abs_path($dir) . '/' . $file; + } + $cwd = ''; $dotdots = $start; do @@ -429,6 +543,29 @@ sub fast_abs_path { ($path) = $path =~ /(.*)/; ($cwd) = $cwd =~ /(.*)/; + unless (-e $path) { + _croak("$path: No such file or directory"); + } + + unless (-d _) { + # Make sure we can be invoked on plain files, not just directories. + + my ($vol, $dir, $file) = File::Spec->splitpath($path); + return File::Spec->catfile($cwd, $path) unless length $dir; + + if (-l $path) { + my $link_target = readlink($path); + die "Can't resolve link $path: $!" unless defined $link_target; + + $link_target = File::Spec->catpath($vol, $dir, $link_target) + unless File::Spec->file_name_is_absolute($link_target); + + return fast_abs_path($link_target); + } + + return fast_abs_path(File::Spec->catpath($vol, $dir, '')) . '/' . $file; + } + if (!CORE::chdir($path)) { _croak("Cannot chdir to $path: $!"); } @@ -460,11 +597,11 @@ sub _vms_cwd { sub _vms_abs_path { return $ENV{'DEFAULT'} unless @_; + + # may need to turn foo.dir into [.foo] my $path = VMS::Filespec::pathify($_[0]); - if (! defined $path) - { - _croak("Invalid path name $_[0]") - } + $path = $_[0] unless defined $path; + return VMS::Filespec::rmsexpand($path); } @@ -526,61 +663,17 @@ sub _epoc_cwd { return $ENV{'PWD'}; } -{ - no warnings; # assignments trigger 'subroutine redefined' warning - if ($^O eq 'VMS') { - *cwd = \&_vms_cwd; - *getcwd = \&_vms_cwd; - *fastcwd = \&_vms_cwd; - *fastgetcwd = \&_vms_cwd; - *abs_path = \&_vms_abs_path; - *fast_abs_path = \&_vms_abs_path; - } - elsif ($^O eq 'NT' or $^O eq 'MSWin32') { - # We assume that &_NT_cwd is defined as an XSUB or in the core. - *cwd = \&_NT_cwd; - *getcwd = \&_NT_cwd; - *fastcwd = \&_NT_cwd; - *fastgetcwd = \&_NT_cwd; - *abs_path = \&fast_abs_path; - *realpath = \&fast_abs_path; - } - elsif ($^O eq 'dos') { - *cwd = \&_dos_cwd; - *getcwd = \&_dos_cwd; - *fastgetcwd = \&_dos_cwd; - *fastcwd = \&_dos_cwd; - *abs_path = \&fast_abs_path; - } - elsif ($^O =~ m/^(?:qnx|nto)$/ ) { - *cwd = \&_qnx_cwd; - *getcwd = \&_qnx_cwd; - *fastgetcwd = \&_qnx_cwd; - *fastcwd = \&_qnx_cwd; - *abs_path = \&_qnx_abs_path; - *fast_abs_path = \&_qnx_abs_path; - } - elsif ($^O eq 'cygwin') { - *getcwd = \&cwd; - *fastgetcwd = \&cwd; - *fastcwd = \&cwd; - *abs_path = \&fast_abs_path; - *realpath = \&abs_path; - } - elsif ($^O eq 'epoc') { - *cwd = \&_epoc_cwd; - *getcwd = \&_epoc_cwd; - *fastgetcwd = \&_epoc_cwd; - *fastcwd = \&_epoc_cwd; - *abs_path = \&fast_abs_path; - } - elsif ($^O eq 'MacOS') { - *getcwd = \&cwd; - *fastgetcwd = \&cwd; - *fastcwd = \&cwd; - *abs_path = \&fast_abs_path; - } +# Now that all the base-level functions are set up, alias the +# user-level functions to the right places + +if (exists $METHOD_MAP{$^O}) { + my $map = $METHOD_MAP{$^O}; + foreach my $name (keys %$map) { + no warnings; # assignments trigger 'subroutine redefined' warning + no strict 'refs'; + *{$name} = \&{$map->{$name}}; + } } diff --git a/gnu/usr.bin/perl/lib/Exporter.pm b/gnu/usr.bin/perl/lib/Exporter.pm index 176f6b8a98f..d9c22049776 100644 --- a/gnu/usr.bin/perl/lib/Exporter.pm +++ b/gnu/usr.bin/perl/lib/Exporter.pm @@ -9,7 +9,7 @@ require 5.006; our $Debug = 0; our $ExportLevel = 0; our $Verbose ||= 0; -our $VERSION = '5.57'; +our $VERSION = '5.58'; our (%Cache); $Carp::Internal{Exporter} = 1; @@ -212,9 +212,9 @@ need to know to use Exporter. =head2 Specialised Import Lists -If the first entry in an import list begins with !, : or / then the -list is treated as a series of specifications which either add to or -delete from the list of names to import. They are processed left to +If any of the entries in an import list begins with !, : or / then +the list is treated as a series of specifications which either add to +or delete from the list of names to import. They are processed left to right. Specifications are in the form: [!]name This name only diff --git a/gnu/usr.bin/perl/lib/File/Basename.pm b/gnu/usr.bin/perl/lib/File/Basename.pm index 58a740e56a1..887c7bae4a9 100644 --- a/gnu/usr.bin/perl/lib/File/Basename.pm +++ b/gnu/usr.bin/perl/lib/File/Basename.pm @@ -12,7 +12,8 @@ dirname - extract just the directory from a path use File::Basename; - ($name,$path,$suffix) = fileparse($fullname,@suffixlist) + ($name,$path,$suffix) = fileparse($fullname,@suffixlist); + $name = fileparse($fullname,@suffixlist); fileparse_set_fstype($os_string); $basename = basename($fullname,@suffixlist); $dirname = dirname($fullname); @@ -70,6 +71,8 @@ You are guaranteed that if you concatenate B<path>, B<name>, and B<suffix> together in that order, the result will denote the same file as the input file specification. +In scalar context, fileparse() returns only the B<name> part of the filename. + =back =head1 EXAMPLES @@ -142,7 +145,7 @@ our(@ISA, @EXPORT, $VERSION, $Fileparse_fstype, $Fileparse_igncase); require Exporter; @ISA = qw(Exporter); @EXPORT = qw(fileparse fileparse_set_fstype basename dirname); -$VERSION = "2.72"; +$VERSION = "2.73"; # fileparse_set_fstype() - specify OS-based rules used in future diff --git a/gnu/usr.bin/perl/lib/File/Copy.pm b/gnu/usr.bin/perl/lib/File/Copy.pm index f5b22e288a0..a43a6c6c8a8 100644 --- a/gnu/usr.bin/perl/lib/File/Copy.pm +++ b/gnu/usr.bin/perl/lib/File/Copy.pm @@ -24,7 +24,7 @@ sub mv; # package has not yet been updated to work with Perl 5.004, and so it # would be a Bad Thing for the CPAN module to grab it and replace this # module. Therefore, we set this module's version higher than 2.0. -$VERSION = '2.07'; +$VERSION = '2.08'; require Exporter; @ISA = qw(Exporter); @@ -274,11 +274,10 @@ File::Copy - Copy files or filehandles copy("Copy.pm",\*STDOUT); move("/dev1/fileA","/dev2/fileB"); - use POSIX; - use File::Copy cp; + use File::Copy "cp"; $n = FileHandle->new("/a/file","r"); - cp($n,"x");' + cp($n,"x"); =head1 DESCRIPTION diff --git a/gnu/usr.bin/perl/lib/File/Find.pm b/gnu/usr.bin/perl/lib/File/Find.pm index f9fb16b12c2..49fa48af9fc 100644 --- a/gnu/usr.bin/perl/lib/File/Find.pm +++ b/gnu/usr.bin/perl/lib/File/Find.pm @@ -3,7 +3,7 @@ use 5.006; use strict; use warnings; use warnings::register; -our $VERSION = '1.06'; +our $VERSION = '1.07'; require Exporter; require Cwd; @@ -44,21 +44,23 @@ but have subtle differences. find(\&wanted, @directories); find(\%options, @directories); -C<find()> does a breadth-first search over the given C<@directories> in the -order they are given. In essence, it works from the top down. - -For each file or directory found, the C<&wanted> subroutine is called, -with the return code ignored. (See below for details on how to use -the C<&wanted> function). Additionally, for each directory found, -it will go into that directory and continue the search. +C<find()> does a depth-first search over the given C<@directories> in +the order they are given. For each file or directory found, it calls +the C<&wanted> subroutine. (See below for details on how to use the +C<&wanted> function). Additionally, for each directory found, it will +C<chdir()> into that directory and continue the search, invoking the +C<&wanted> function on each file or subdirectory in the directory. =item B<finddepth> finddepth(\&wanted, @directories); finddepth(\%options, @directories); -C<finddepth()> works just like C<find()> except it does a depth-first search. -It works from the bottom of the directory tree up. +C<finddepth()> works just like C<find()> except that is invokes the +C<&wanted> function for a directory I<after> invoking it for the +directory's contents. It does a postorder traversal instead of a +preorder traversal, working from the bottom of the directory tree up +where C<find()> works from the top of the tree down. =back @@ -388,6 +390,12 @@ volume actually maintains its own "Desktop Folder" directory. =back +=head1 BUGS AND CAVEATS + +Despite the name of the C<finddepth()> function, both C<find()> and +C<finddepth()> perform a depth-first search of the directory +hierarchy. + =head1 HISTORY File::Find used to produce incorrect results if called recursively. @@ -583,7 +591,8 @@ sub _find_opt { local ($wanted_callback, $avoid_nlink, $bydepth, $no_chdir, $follow, $follow_skip, $full_check, $untaint, $untaint_skip, $untaint_pat, $pre_process, $post_process, $dangling_symlinks); - local($dir, $name, $fullname, $prune, $_); + local($dir, $name, $fullname, $prune); + local *_ = \my $a; my $cwd = $wanted->{bydepth} ? Cwd::fastcwd() : Cwd::getcwd(); my $cwd_untainted = $cwd; diff --git a/gnu/usr.bin/perl/lib/FileCache.pm b/gnu/usr.bin/perl/lib/FileCache.pm index 8e1fe446a52..b1a30dec3a3 100644 --- a/gnu/usr.bin/perl/lib/FileCache.pm +++ b/gnu/usr.bin/perl/lib/FileCache.pm @@ -1,6 +1,6 @@ package FileCache; -our $VERSION = 1.03; +our $VERSION = '1.04_01'; =head1 NAME @@ -46,6 +46,9 @@ and subsequent openings. Most valid modes for 3-argument C<open> are supported namely; C<< '>' >>, C<< '+>' >>, C<< '<' >>, C<< '<+' >>, C<<< '>>' >>>, C< '|-' > and C< '-|' > +To pass supplemental arguments to a program opened with C< '|-' > or C< '-|' > +append them to the command string as you would system EXPR. + Returns EXPR on success for convenience. You may neglect the return value and manipulate EXPR as the filehandle directly if you prefer. @@ -56,18 +59,21 @@ do not do so if you are calling C<FileCache::cacheout> from a package other than which it was imported, or with another module which overrides C<close>. If you must, use C<FileCache::cacheout_close>. +Although FileCache can be used with piped opens ('-|' or '|-') doing so is +strongly discouraged. If FileCache finds it necessary to close and then reopen +a pipe, the command at the far end of the pipe will be reexecuted - the results +of performing IO on FileCache'd pipes is unlikely to be what you expect. The +ability to use FileCache on pipes may be removed in a future release. + +FileCache does not store the current file offset if it finds it necessary to +close a file. When the file is reopened, the offset will be as specified by the +original C<open> file mode. This could be construed to be a bug. + =head1 BUGS F<sys/param.h> lies with its C<NOFILE> define on some systems, so you may have to set I<maxopen> yourself. -=head1 NOTES - -FileCache installs signal handlers for CHLD (a.k.a. CLD) and PIPE in the -calling package to handle deceased children from 2-arg C<cacheout> with C<'|-'> -or C<'-|'> I<expediently>. The children would otherwise be reaped eventually, -unless you terminated before repeatedly calling cacheout. - =cut require 5.006; @@ -88,11 +94,6 @@ sub import { *{$pkg.'::cacheout'} = \&cacheout; *{$pkg.'::close'} = \&cacheout_close; - # Reap our children - ${"$pkg\::SIG"}{'CLD'} = 'IGNORE' if $Config{sig_name} =~ /\bCLD\b/; - ${"$pkg\::SIG"}{'CHLD'} = 'IGNORE' if $Config{sig_name} =~ /\bCHLD\b/; - ${"$pkg\::SIG"}{'PIPE'} = 'IGNORE' if $Config{sig_name} =~ /\bPIPE\b/; - # Truth is okay here because setting maxopen to 0 would be bad return $cacheout_maxopen = $args{maxopen} if $args{maxopen}; foreach my $param ( '/usr/include/sys/param.h' ){ @@ -135,9 +136,9 @@ sub cacheout { ($file, $mode) = ($mode, $file) if $narg == 1; croak "Invalid mode for cacheout" if $mode && ( $mode !~ /^\s*(?:>>|\+?>|\+?<|\|\-|)|\-\|\s*$/ ); - + # Mode changed? - if( $isopen{$file} && ($mode||'>') ne $isopen{$file}->[2] ){ + if( $isopen{$file} && ($mode||'>') ne $isopen{$file}->[1] ){ &cacheout_close($file, 1); } diff --git a/gnu/usr.bin/perl/lib/I18N/LangTags/t/01test.t b/gnu/usr.bin/perl/lib/I18N/LangTags/t/01test.t deleted file mode 100644 index 86e251778f7..00000000000 --- a/gnu/usr.bin/perl/lib/I18N/LangTags/t/01test.t +++ /dev/null @@ -1,101 +0,0 @@ -# Before `make install' is performed this script should be runnable with -# `make test'. After `make install' it should work as `perl test.pl' - -######################### We start with some black magic to print on failure. -require 5; - # Time-stamp: "2003-07-20 07:36:49 ADT" -use strict; -use Test; -BEGIN { plan tests => 64 }; -BEGIN { ok 1 } -use I18N::LangTags (':ALL'); - -print "# Perl v$], I18N::LangTags v$I18N::LangTags::VERSION\n"; - -ok !is_language_tag(''); -ok is_language_tag('fr'); -ok is_language_tag('fr-ca'); -ok is_language_tag('fr-CA'); -ok !is_language_tag('fr-CA-'); -ok !is_language_tag('fr_CA'); -ok is_language_tag('fr-ca-joual'); -ok !is_language_tag('frca'); -ok is_language_tag('nav'); # (not actual tag) -ok is_language_tag('nav-shiprock'); # (not actual tag) -ok !is_language_tag('nav-ceremonial'); # subtag too long -ok !is_language_tag('x'); -ok !is_language_tag('i'); -ok is_language_tag('i-borg'); # NB: fictitious tag -ok is_language_tag('x-borg'); -ok is_language_tag('x-borg-prot5123'); -ok same_language_tag('x-borg-prot5123', 'i-BORG-Prot5123' ); -ok !same_language_tag('en', 'en-us' ); - -ok 0 == similarity_language_tag('en-ca', 'fr-ca'); -ok 1 == similarity_language_tag('en-ca', 'en-us'); -ok 2 == similarity_language_tag('en-us-southern', 'en-us-western'); -ok 2 == similarity_language_tag('en-us-southern', 'en-us'); - -ok grep $_ eq 'hi', panic_languages('kok'); -ok grep $_ eq 'en', panic_languages('x-woozle-wuzzle'); -ok ! grep $_ eq 'mr', panic_languages('it'); -ok grep $_ eq 'es', panic_languages('it'); -ok grep $_ eq 'it', panic_languages('es'); - - -print "# Now the ::List tests...\n"; -print "# Perl v$], I18N::LangTags::List v$I18N::LangTags::List::VERSION\n"; - -use I18N::LangTags::List; -foreach my $lt (qw( - en - en-us - en-kr - el - elx - i-mingo - i-mingo-tom - x-mingo-tom - it - it-it - it-IT - it-FR - ak - aka - jv - jw - no - no-nyn - nn - i-lux - lb - wa - yi - ji - den-syllabic - den-syllabic-western - den-western - den-latin - cre-syllabic - cre-syllabic-western - cre-western - cre-latin - cr-syllabic - cr-syllabic-western - cr-western - cr-latin -)) { - my $name = I18N::LangTags::List::name($lt); - if($name) { - ok(1); - print "# $lt -> $name\n"; - } else { - ok(0); - print "# Failed lookup on $lt\n"; - } -} - - - -print "# So there!\n"; - diff --git a/gnu/usr.bin/perl/lib/I18N/LangTags/t/02decency.t b/gnu/usr.bin/perl/lib/I18N/LangTags/t/02decency.t deleted file mode 100644 index a56a798a333..00000000000 --- a/gnu/usr.bin/perl/lib/I18N/LangTags/t/02decency.t +++ /dev/null @@ -1,30 +0,0 @@ - -require 5; - # Time-stamp: "2003-10-10 17:37:34 ADT" -use strict; -use Test; -BEGIN { plan tests => 17 }; -BEGIN { ok 1 } -use I18N::LangTags::List; - -print "# Perl v$], I18N::LangTags::List v$I18N::LangTags::List::VERSION\n"; - -ok I18N::LangTags::List::name('fr'), 'French'; -ok I18N::LangTags::List::name('fr-fr'); -ok !I18N::LangTags::List::name('El Zorcho'); -ok !I18N::LangTags::List::name(); - - -ok !I18N::LangTags::List::is_decent(); -ok I18N::LangTags::List::is_decent('fr'); -ok I18N::LangTags::List::is_decent('fr-blorch'); -ok !I18N::LangTags::List::is_decent('El Zorcho'); -ok !I18N::LangTags::List::is_decent('sgn'); -ok I18N::LangTags::List::is_decent('sgn-us'); -ok !I18N::LangTags::List::is_decent('i'); -ok I18N::LangTags::List::is_decent('i-mingo'); -ok I18N::LangTags::List::is_decent('i-mingo-tom'); -ok !I18N::LangTags::List::is_decent('cel'); -ok I18N::LangTags::List::is_decent('cel-gaulish'); - -ok 1; # one for the road diff --git a/gnu/usr.bin/perl/lib/IPC/Open3.pm b/gnu/usr.bin/perl/lib/IPC/Open3.pm index d92894b28a9..1d070b5deae 100644 --- a/gnu/usr.bin/perl/lib/IPC/Open3.pm +++ b/gnu/usr.bin/perl/lib/IPC/Open3.pm @@ -9,7 +9,7 @@ require Exporter; use Carp; use Symbol qw(gensym qualify); -$VERSION = 1.0105; +$VERSION = 1.0106; @ISA = qw(Exporter); @EXPORT = qw(open3); @@ -95,7 +95,7 @@ The order of arguments differs from that of open2(). # allow fd numbers to be used, by Frank Tobin # allow '-' as command (c.f. open "-|"), by Adam Spiers <perl@adamspiers.org> # -# $Id: Open3.pm,v 1.7 2003/12/03 03:02:38 millert Exp $ +# $Id: Open3.pm,v 1.8 2004/08/09 18:09:35 millert Exp $ # # usage: $pid = open3('wtr', 'rdr', 'err' 'some cmd and args', 'optarg', ...); # @@ -197,6 +197,9 @@ sub _open3 { $kidpid = $do_spawn ? -1 : xfork; if ($kidpid == 0) { # Kid + # A tie in the parent should not be allowed to cause problems. + untie *STDIN; + untie *STDOUT; # If she wants to dup the kid's stderr onto her stdout I need to # save a copy of her stdout before I put something else there. if ($dad_rdr ne $dad_err && $dup_err diff --git a/gnu/usr.bin/perl/lib/IPC/SysV.t b/gnu/usr.bin/perl/lib/IPC/SysV.t deleted file mode 100644 index 795ad5d6c70..00000000000 --- a/gnu/usr.bin/perl/lib/IPC/SysV.t +++ /dev/null @@ -1,218 +0,0 @@ -#!./perl - -BEGIN { - chdir 't' if -d 't'; - - @INC = '../lib'; - - require Config; import Config; - - my $reason; - - if ($Config{'extensions'} !~ /\bIPC\/SysV\b/) { - $reason = 'IPC::SysV was not built'; - } elsif ($Config{'d_sem'} ne 'define') { - $reason = '$Config{d_sem} undefined'; - } elsif ($Config{'d_msg'} ne 'define') { - $reason = '$Config{d_msg} undefined'; - } - if ($reason) { - print "1..0 # Skip: $reason\n"; - exit 0; - } -} - -# These constants are common to all tests. -# Later the sem* tests will import more for themselves. - -use IPC::SysV qw(IPC_PRIVATE IPC_NOWAIT IPC_STAT IPC_RMID S_IRWXU); -use strict; - -print "1..16\n"; - -my $msg; -my $sem; - -$SIG{__DIE__} = 'cleanup'; # will cleanup $msg and $sem if needed - -# FreeBSD is known to throw this if there's no SysV IPC in the kernel. -$SIG{SYS} = sub { - print STDERR <<EOM; -SIGSYS caught. -It may be that your kernel does not have SysV IPC configured. - -EOM - if ($^O eq 'freebsd') { - print STDERR <<EOM; -You must have following options in your kernel: - -options SYSVSHM -options SYSVSEM -options SYSVMSG - -See config(8). -EOM - } - exit(1); -}; - -my $perm = S_IRWXU; - -if ($Config{'d_msgget'} eq 'define' && - $Config{'d_msgctl'} eq 'define' && - $Config{'d_msgsnd'} eq 'define' && - $Config{'d_msgrcv'} eq 'define') { - - $msg = msgget(IPC_PRIVATE, $perm); - # Very first time called after machine is booted value may be 0 - die "msgget failed: $!\n" unless defined($msg) && $msg >= 0; - - print "ok 1\n"; - - #Putting a message on the queue - my $msgtype = 1; - my $msgtext = "hello"; - - my $test2bad; - my $test5bad; - my $test6bad; - - unless (msgsnd($msg,pack("L! a*",$msgtype,$msgtext),IPC_NOWAIT)) { - print "not "; - $test2bad = 1; - } - print "ok 2\n"; - if ($test2bad) { - print <<EOM; -# -# The failure of the subtest #2 may indicate that the message queue -# resource limits either of the system or of the testing account -# have been reached. Error message "Operating would block" is -# usually indicative of this situation. The error message was now: -# "$!" -# -# You can check the message queues with the 'ipcs' command and -# you can remove unneeded queues with the 'ipcrm -q id' command. -# You may also consider configuring your system or account -# to have more message queue resources. -# -# Because of the subtest #2 failing also the substests #5 and #6 will -# very probably also fail. -# -EOM - } - - my $data; - msgctl($msg,IPC_STAT,$data) or print "not "; - print "ok 3\n"; - - print "not " unless length($data); - print "ok 4\n"; - - my $msgbuf; - unless (msgrcv($msg,$msgbuf,256,0,IPC_NOWAIT)) { - print "not "; - $test5bad = 1; - } - print "ok 5\n"; - if ($test5bad && $test2bad) { - print <<EOM; -# -# This failure was to be expected because the subtest #2 failed. -# -EOM - } - - my($rmsgtype,$rmsgtext); - ($rmsgtype,$rmsgtext) = unpack("L! a*",$msgbuf); - unless ($rmsgtype == $msgtype && $rmsgtext eq $msgtext) { - print "not "; - $test6bad = 1; - } - print "ok 6\n"; - if ($test6bad && $test2bad) { - print <<EOM; -# -# This failure was to be expected because the subtest #2 failed. -# -EOM - } -} else { - for (1..6) { - print "ok $_\n"; # fake it - } -} - -if($Config{'d_semget'} eq 'define' && - $Config{'d_semctl'} eq 'define') { - - if ($Config{'d_semctl_semid_ds'} eq 'define' || - $Config{'d_semctl_semun'} eq 'define') { - - use IPC::SysV qw(IPC_CREAT GETALL SETALL); - - $sem = semget(IPC_PRIVATE, 10, $perm | IPC_CREAT); - # Very first time called after machine is booted value may be 0 - die "semget: $!\n" unless defined($sem) && $sem >= 0; - - print "ok 7\n"; - - my $data; - semctl($sem,0,IPC_STAT,$data) or print "not "; - print "ok 8\n"; - - print "not " unless length($data); - print "ok 9\n"; - - my $nsem = 10; - - semctl($sem,0,SETALL,pack("s!*",(0) x $nsem)) or print "not "; - print "ok 10\n"; - - $data = ""; - semctl($sem,0,GETALL,$data) or print "not "; - print "ok 11\n"; - - print "not " unless length($data) == length(pack("s!*",(0) x $nsem)); - print "ok 12\n"; - - my @data = unpack("s!*",$data); - - my $adata = "0" x $nsem; - - print "not " unless @data == $nsem and join("",@data) eq $adata; - print "ok 13\n"; - - my $poke = 2; - - $data[$poke] = 1; - semctl($sem,0,SETALL,pack("s!*",@data)) or print "not "; - print "ok 14\n"; - - $data = ""; - semctl($sem,0,GETALL,$data) or print "not "; - print "ok 15\n"; - - @data = unpack("s!*",$data); - - my $bdata = "0" x $poke . "1" . "0" x ($nsem-$poke-1); - - print "not " unless join("",@data) eq $bdata; - print "ok 16\n"; - } else { - for (7..16) { - print "ok $_ # skipped, no semctl possible\n"; - } - } -} else { - for (7..16) { - print "ok $_\n"; # fake it - } -} - -sub cleanup { - msgctl($msg,IPC_RMID,0) if defined $msg; - semctl($sem,0,IPC_RMID,undef) if defined $sem; -} - -cleanup; diff --git a/gnu/usr.bin/perl/lib/Locale/Maketext/t/00about.t b/gnu/usr.bin/perl/lib/Locale/Maketext/t/00about.t deleted file mode 100644 index 9b2fc859994..00000000000 --- a/gnu/usr.bin/perl/lib/Locale/Maketext/t/00about.t +++ /dev/null @@ -1,29 +0,0 @@ - -require 5; -use Test; -BEGIN { plan tests => 1; } -use Locale::Maketext 1.01; - -print "#\n#\n", - "# Locale::Maketext v$Locale::Maketext::VERSION\n", - "# I18N::LangTags v", $I18N::LangTags::VERSION || "?", "\n", - "#\n#\n", -; - -print "# Running under perl version $] for $^O", - (chr(65) eq 'A') ? "\n" : " in a non-ASCII world\n"; - -print "# Win32::BuildNumber ", &Win32::BuildNumber(), "\n" - if defined(&Win32::BuildNumber) and defined &Win32::BuildNumber(); - -print "# MacPerl verison $MacPerl::Version\n" - if defined $MacPerl::Version; - -printf - "# Current time local: %s\n# Current time GMT: %s\n", - scalar( gmtime($^T)), scalar(localtime($^T)); - -print "# Using Test.pm v", $Test::VERSION || "?", "\n"; - -ok 1; - diff --git a/gnu/usr.bin/perl/lib/Locale/Maketext/t/01make.t b/gnu/usr.bin/perl/lib/Locale/Maketext/t/01make.t deleted file mode 100644 index d9352d03407..00000000000 --- a/gnu/usr.bin/perl/lib/Locale/Maketext/t/01make.t +++ /dev/null @@ -1,34 +0,0 @@ - -require 5; -use Test; -BEGIN { plan tests => 6; } -use Locale::Maketext 1.01; -print "# Hi there...\n"; -ok 1; - -# declare some classes... -{ - package Woozle; - @ISA = ('Locale::Maketext'); - sub dubbil { return $_[1] * 2 } - sub numerate { return $_[2] . 'en' } -} -{ - package Woozle::elx; - @ISA = ('Woozle'); - %Lexicon = ( - 'd2' => 'hum [dubbil,_1]', - 'd3' => 'hoo [quant,_1,zaz]', - 'd4' => 'hoo [*,_1,zaz]', - ); - keys %Lexicon; # dodges the 'used only once' warning -} - -ok defined( $lh = Woozle->get_handle('elx') ) && ref($lh); -ok $lh && $lh->maketext('d2', 7), "hum 14" ; -ok $lh && $lh->maketext('d3', 7), "hoo 7 zazen" ; -ok $lh && $lh->maketext('d4', 7), "hoo 7 zazen" ; - -print "# Byebye!\n"; -ok 1; - diff --git a/gnu/usr.bin/perl/lib/Locale/Maketext/t/02get.t b/gnu/usr.bin/perl/lib/Locale/Maketext/t/02get.t deleted file mode 100644 index 86fd4b20af5..00000000000 --- a/gnu/usr.bin/perl/lib/Locale/Maketext/t/02get.t +++ /dev/null @@ -1,69 +0,0 @@ - -require 5; -use Test; -BEGIN { plan tests => 11; } -use Locale::Maketext 1.01; -print "# Hi there...\n"; -ok 1; - -print "# --- Making sure that get_handle works ---\n"; - -# declare some classes... -{ - package Woozle; - @ISA = ('Locale::Maketext'); - sub dubbil { return $_[1] * 2 } - sub numerate { return $_[2] . 'en' } -} -{ - package Woozle::eu_mt; - @ISA = ('Woozle'); - %Lexicon = ( - 'd2' => 'hum [dubbil,_1]', - 'd3' => 'hoo [quant,_1,zaz]', - 'd4' => 'hoo [*,_1,zaz]', - ); - keys %Lexicon; # dodges the 'used only once' warning -} - -my $lh; -print "# Basic sanity:\n"; -ok defined( $lh = Woozle->get_handle('eu-mt') ) && ref($lh); -ok $lh && $lh->maketext('d2', 7), "hum 14" ; - - - -print "# Make sure we can assign to ENV entries\n", - "# (Otherwise we can't run the subsequent tests)...\n"; -$ENV{'MYORP'} = 'Zing'; -ok $ENV{'MYORP'}, 'Zing'; -$ENV{'SWUZ'} = 'KLORTHO HOOBOY'; -ok $ENV{'SWUZ'}, 'KLORTHO HOOBOY'; - -delete $ENV{'MYORP'}; -delete $ENV{'SWUZ'}; - -print "# Test LANG...\n"; -$ENV{'REQUEST_METHOD'} = ''; -$ENV{'LANG'} = 'Eu_MT'; -$ENV{'LANGUAGE'} = ''; -ok defined( $lh = Woozle->get_handle() ) && ref($lh); - -print "# Test LANGUAGE...\n"; -$ENV{'LANG'} = ''; -$ENV{'LANGUAGE'} = 'Eu-MT'; -ok defined( $lh = Woozle->get_handle() ) && ref($lh); - -print "# Test HTTP_ACCEPT_LANGUAGE...\n"; -$ENV{'REQUEST_METHOD'} = 'GET'; -$ENV{'HTTP_ACCEPT_LANGUAGE'} = 'eu-MT'; -ok defined( $lh = Woozle->get_handle() ) && ref($lh); -$ENV{'HTTP_ACCEPT_LANGUAGE'} = 'x-plorp, zaz, eu-MT, i-klung'; -ok defined( $lh = Woozle->get_handle() ) && ref($lh); -$ENV{'HTTP_ACCEPT_LANGUAGE'} = 'x-plorp, zaz, eU-Mt, i-klung'; -ok defined( $lh = Woozle->get_handle() ) && ref($lh); - - -print "# Byebye!\n"; -ok 1; - diff --git a/gnu/usr.bin/perl/lib/Locale/Maketext/t/03http.t b/gnu/usr.bin/perl/lib/Locale/Maketext/t/03http.t deleted file mode 100644 index 98e7207a602..00000000000 --- a/gnu/usr.bin/perl/lib/Locale/Maketext/t/03http.t +++ /dev/null @@ -1,102 +0,0 @@ - -use Locale::Maketext; - -use Test; -BEGIN { plan tests => 87 }; - -my @in = grep m/\S/, split /\n/, q{ - -[ sv ] sv -[ en ] en -[ en fi ] en, fi -[ en-us ] en-us -[ en-us ] en-US -[ en-us ] EN-US - -[ en-au en i-klingon en-gb en-us mt-mt mt ja ] EN-au, JA;q=0.14, i-klingon;q=0.83, en-gb;q=0.71, en-us;q=0.57, mt-mt;q=0.43, mt;q=0.29, en;q=0.86 -[ en-au en i-klingon en-gb en-us mt-mt mt tli ja ] EN-au, tli;q=0.201, JA;q=0.14, i-klingon;q=0.83, en-gb;q=0.71, en-us;q=0.57, mt-mt;q=0.43, mt;q=0.29, en;q=0.86 -[ en-au en en-gb en-us ja ] en-au, ja;q=0.20, en-gb;q=0.60, en-us;q=0.40, en;q=0.80 - -[ en-au en en-gb en-us mt-mt mt ja ] EN-au, JA;q=0.14, en-gb;q=0.71, en-us;q=0.57, mt-mt;q=0.43, mt;q=0.29, en;q=0.86 -[ en-au en en-gb en-us ja ] en-au, ja;q=0.20, en-gb;q=0.60, en-us;q=0.40, en;q=0.80 -[ en fr ] en;q=1,fr;q=.5 -[ en fr ] en;q=1,fr;q=.99 -[ en ru ko ] en, ru;q=0.7, ko;q=0.3 -[ en ru ko ] en, ru;q=0.7, KO;q=0.3 -[ en-us en ] en-us, en;q=0.50 -[ en fr ] fr ; q = 0.9, en -[ en fr ] en,fr;q=.90 -[ ru en-uk en fr ] ru, en-UK;q=0.5, en;q=0.3, fr;q=0.1 -[ en-us fr es-mx ] en-us,fr;q=0.7,es-mx;q=0.3 -[ en-us en ] en-us, en;q=0.50 - -[ da en-gb en ] da, en-gb;q=0.8, en;q=0.7 -[ da en-gb en ] da, en;q=0.7, en-gb;q=0.8 -[ da en-gb en ] da, en-gb;q=0.8, en;q=0.7 -[ da en-gb en ] da,en;q=0.7,en-gb;q=0.8 -[ da en-gb en ] da, en-gb ; q=0.8, en ; q=0.7 -[ da en-gb en ] da , en-gb ; q = 0.8 , en ; q =0.7 -[ da en-gb en ] da (yup, Danish) , en-gb ; q = 0.8 , en ; q =0.7 - -[ no dk en-uk en-us ] en-UK;q=0.7, en-US;q=0.6, no;q=1.0, dk;q=0.8 -[ no dk en-uk en-us ] en-US;q=0.6, en-UK;q=0.7, no;q=1.0, dk;q=0.8 -[ no dk en-uk en-us ] en-UK;q=0.7, no;q=1.0, en-US;q=0.6, dk;q=0.8 -[ no dk en-uk en-us ] en-UK;q=0.7, no;q=1.0, dk;q=0.8, en-US;q=0.6 - -[ fi en ] fi;q=1, en;q=0.2 -[ de-de de en en-us en-gb ] de-DE, de;q=0.80, en;q=0.60, en-US;q=0.40, en-GB;q=0.20 -[ ru ] ru; q=1, *; q=0.1 -[ ru en ] ru, en; q=0.1 -[ ja en ] ja,en;q=0.5 -[ en ] en; q=1.0 -[ ja ] ja; q=1.0 -[ ja ] ja; q=1.0 -[ en ja ] en; q=0.5, ja; q=0.5 -[ fr-ca fr en ] fr-ca, fr;q=0.8, en;q=0.7 -[ NIX ] NIX -}; - -foreach my $in (@in) { - $in =~ s/^\s*\[([^\]]+)\]\s*//s or die "Bad input: $in"; - my @should = do { my $x = $1; $x =~ m/(\S+)/g }; - - if($in eq 'NIX') { $in = ''; @should = (); } - - local $ENV{'HTTP_ACCEPT_LANGUAGE'}; - - foreach my $modus ( - sub { - print "# Testing with arg...\n"; - $ENV{'HTTP_ACCEPT_LANGUAGE'} = 'PLORK'; - return $_[0]; - }, - sub { - print "# Testing wath HTTP_ACCEPT_LANGUAGE...\n"; - $ENV{'HTTP_ACCEPT_LANGUAGE'} = $_[0]; - return(); - }, - ) { - my @args = &$modus($in); - - # //////////////////////////////////////////////////// - my @out = Locale::Maketext->_http_accept_langs(@args); - # \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ - - if( - @out == @should - and lc( join "\e", @out ) eq lc( join "\e", @should ) - ) { - print "# Happily got [@out] from [$in]\n"; - ok 1; - } else { - ok 0; - print "#Got: [@out]\n", - "# but wanted: [@should]\n", - "# < \"$in\"\n#\n"; - } - } -} - -print "#\n#\n# Bye-bye!\n"; -ok 1; - diff --git a/gnu/usr.bin/perl/lib/Locale/Maketext/t/90utf8.t b/gnu/usr.bin/perl/lib/Locale/Maketext/t/90utf8.t deleted file mode 100644 index 96731e2b192..00000000000 --- a/gnu/usr.bin/perl/lib/Locale/Maketext/t/90utf8.t +++ /dev/null @@ -1,39 +0,0 @@ - -require 5; -use Test; -BEGIN { plan tests => 4; } -use Locale::Maketext 1.01; -print "# Hi there...\n"; -ok 1; - - -print "# --- Making sure that get_handle works with utf8 ---\n"; -use utf8; - -# declare some classes... -{ - package Woozle; - @ISA = ('Locale::Maketext'); - sub dubbil { return $_[1] * 2 .chr(2000)} - sub numerate { return $_[2] . 'en' } -} -{ - package Woozle::eu_mt; - @ISA = ('Woozle'); - %Lexicon = ( - 'd2' => chr(1000) . 'hum [dubbil,_1]', - 'd3' => chr(1000) . 'hoo [quant,_1,zaz]', - 'd4' => chr(1000) . 'hoo [*,_1,zaz]', - ); - keys %Lexicon; # dodges the 'used only once' warning -} - -my $lh; -print "# Basic sanity:\n"; -ok defined( $lh = Woozle->get_handle('eu-mt') ) && ref($lh); -ok $lh && $lh->maketext('d2', 7), chr(1000)."hum 14".chr(2000) ; - - -print "# Byebye!\n"; -ok 1; - diff --git a/gnu/usr.bin/perl/lib/Math/BigInt.pm b/gnu/usr.bin/perl/lib/Math/BigInt.pm index 9a26f335210..7393b12d24b 100644 --- a/gnu/usr.bin/perl/lib/Math/BigInt.pm +++ b/gnu/usr.bin/perl/lib/Math/BigInt.pm @@ -18,7 +18,7 @@ package Math::BigInt; my $class = "Math::BigInt"; require 5.005; -$VERSION = '1.68'; +$VERSION = '1.70'; use Exporter; @ISA = qw( Exporter ); @EXPORT_OK = qw( objectify bgcd blcm); @@ -155,12 +155,11 @@ my $nan = 'NaN'; # constants for easier life my $CALC = 'Math::BigInt::Calc'; # module to do the low level math # default is Calc.pm -my %CAN; # cache for $CALC->can(...) my $IMPORT = 0; # was import() called yet? # used to make require work - +my %WARN; # warn only once for low-level libs +my %CAN; # cache for $CALC->can(...) my $EMU_LIB = 'Math/BigInt/CalcEmu.pm'; # emulate low-level math -my $EMU = 'Math::BigInt::CalcEmu'; # emulate low-level math ############################################################################## # the old code had $rnd_mode, so we need to support it, too @@ -284,18 +283,17 @@ sub accuracy if (ref($x)) { # $object->accuracy() or fallback to global - $x->bround($a) if $a; # not for undef, 0 - $x->{_a} = $a; # set/overwrite, even if not rounded - $x->{_p} = undef; # clear P + $x->bround($a) if $a; # not for undef, 0 + $x->{_a} = $a; # set/overwrite, even if not rounded + delete $x->{_p}; # clear P $a = ${"${class}::accuracy"} unless defined $a; # proper return value } else { - # set global - ${"${class}::accuracy"} = $a; - ${"${class}::precision"} = undef; # clear P + ${"${class}::accuracy"} = $a; # set global A + ${"${class}::precision"} = undef; # clear global P } - return $a; # shortcut + return $a; # shortcut } my $r; @@ -331,18 +329,17 @@ sub precision if (ref($x)) { # $object->precision() or fallback to global - $x->bfround($p) if $p; # not for undef, 0 - $x->{_p} = $p; # set/overwrite, even if not rounded - $x->{_a} = undef; # clear A + $x->bfround($p) if $p; # not for undef, 0 + $x->{_p} = $p; # set/overwrite, even if not rounded + delete $x->{_a}; # clear A $p = ${"${class}::precision"} unless defined $p; # proper return value } else { - # set global - ${"${class}::precision"} = $p; - ${"${class}::accuracy"} = undef; # clear A + ${"${class}::precision"} = $p; # set global P + ${"${class}::accuracy"} = undef; # clear global A } - return $p; # shortcut + return $p; # shortcut } my $r; @@ -456,46 +453,11 @@ sub copy return unless ref($x); # only for objects my $self = {}; bless $self,$c; - my $r; - foreach my $k (keys %$x) - { - if ($k eq 'value') - { - $self->{value} = $CALC->_copy($x->{value}); next; - } - if (!($r = ref($x->{$k}))) - { - $self->{$k} = $x->{$k}; next; - } - if ($r eq 'SCALAR') - { - $self->{$k} = \${$x->{$k}}; - } - elsif ($r eq 'ARRAY') - { - $self->{$k} = [ @{$x->{$k}} ]; - } - elsif ($r eq 'HASH') - { - # only one level deep! - foreach my $h (keys %{$x->{$k}}) - { - $self->{$k}->{$h} = $x->{$k}->{$h}; - } - } - else # normal ref - { - my $xk = $x->{$k}; - if ($xk->can('copy')) - { - $self->{$k} = $xk->copy(); - } - else - { - $self->{$k} = $xk->new($xk); - } - } - } + + $self->{sign} = $x->{sign}; + $self->{value} = $CALC->_copy($x->{value}); + $self->{_a} = $x->{_a} if defined $x->{_a}; + $self->{_p} = $x->{_p} if defined $x->{_p}; $self; } @@ -523,17 +485,17 @@ sub new if ((!ref $wanted) && ($wanted =~ /^([+-]?)[1-9][0-9]*\z/)) { $self->{sign} = $1 || '+'; - my $ref = \$wanted; + if ($wanted =~ /^[+-]/) { # remove sign without touching wanted to make it work with constants - my $t = $wanted; $t =~ s/^[+-]//; $ref = \$t; + my $t = $wanted; $t =~ s/^[+-]//; + $self->{value} = $CALC->_new($t); + } + else + { + $self->{value} = $CALC->_new($wanted); } - # force to string version (otherwise Pari is unhappy about overflowed - # constants, for instance) - # not good, BigInt shouldn't need to know about alternative libs: - # $ref = \"$$ref" if $CALC eq 'Math::BigInt::Pari'; - $self->{value} = $CALC->_new($ref); no strict 'refs'; if ( (defined $a) || (defined $p) || (defined ${"${class}::precision"}) @@ -553,7 +515,7 @@ sub new return $self; } # split str in m mantissa, e exponent, i integer, f fraction, v value, s sign - my ($mis,$miv,$mfv,$es,$ev) = _split(\$wanted); + my ($mis,$miv,$mfv,$es,$ev) = _split($wanted); if (!ref $mis) { if ($_trap_nan) @@ -626,7 +588,7 @@ sub new } } $self->{sign} = '+' if $$miv eq '0'; # normalize -0 => +0 - $self->{value} = $CALC->_new($miv) if $self->{sign} =~ /^[+-]$/; + $self->{value} = $CALC->_new($$miv) if $self->{sign} =~ /^[+-]$/; # if any of the globals is set, use them to round and store them inside $self # do not round for new($x,undef,undef) since that is used by MBF to signal # no rounding @@ -663,7 +625,7 @@ sub bnan } $self->{sign} = $nan; delete $self->{_a}; delete $self->{_p}; # rounding NaN is silly - return $self; + $self; } sub binf @@ -698,7 +660,7 @@ sub binf $sign = $sign . 'inf' if $sign !~ /inf$/; # - => -inf $self->{sign} = $sign; ($self->{_a},$self->{_p}) = @_; # take over requested rounding - return $self; + $self; } sub bzero @@ -807,7 +769,7 @@ sub bsstr my ($m,$e) = $x->parts(); #$m->bstr() . 'e+' . $e->bstr(); # e can only be positive in BigInt # 'e+' because E can only be positive in BigInt - $m->bstr() . 'e+' . ${$CALC->_str($e->{value})}; + $m->bstr() . 'e+' . $CALC->_str($e->{value}); } sub bstr @@ -822,7 +784,7 @@ sub bstr return 'inf'; # +inf } my $es = ''; $es = $x->{sign} if $x->{sign} eq '-'; - $es.${$CALC->_str($x->{value})}; + $es.$CALC->_str($x->{value}); } sub numify @@ -1083,7 +1045,8 @@ sub bacmp # handle +-inf and NaN return undef if (($x->{sign} eq $nan) || ($y->{sign} eq $nan)); return 0 if $x->{sign} =~ /^[+-]inf$/ && $y->{sign} =~ /^[+-]inf$/; - return +1; # inf is always bigger + return 1 if $x->{sign} =~ /^[+-]inf$/ && $y->{sign} !~ /^[+-]inf$/; + return -1; } $CALC->_acmp($x->{value},$y->{value}); # lib does only 0,1,-1 } @@ -1168,9 +1131,8 @@ sub bsub return $x if $x->modify('bsub'); -# upgrade done by badd(): -# return $upgrade->badd($x,$y,@r) if defined $upgrade && -# ((!$x->isa($self)) || (!$y->isa($self))); + return $upgrade->new($x)->bsub($upgrade->new($y),@r) if defined $upgrade && + ((!$x->isa($self)) || (!$y->isa($self))); if ($y->is_zero()) { @@ -1247,26 +1209,22 @@ sub blog # objectify is costly, so avoid it if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) { - ($self,$x,$base,@r) = objectify(2,$class,@_); + ($self,$x,$base,@r) = objectify(1,$class,@_); } + + return $x if $x->modify('blog'); # inf, -inf, NaN, <0 => NaN return $x->bnan() - if $x->{sign} ne '+' || $base->{sign} ne '+'; - - return $upgrade->blog($upgrade->new($x),$base,@r) if - defined $upgrade && (ref($x) ne $upgrade || ref($base) ne $upgrade); + if $x->{sign} ne '+' || (defined $base && $base->{sign} ne '+'); - if ($CAN{log_int}) - { - my ($rc,$exact) = $CALC->_log_int($x->{value},$base->{value}); - return $x->bnan() unless defined $rc; - $x->{value} = $rc; - return $x->round(@r); - } + return $upgrade->blog($upgrade->new($x),$base,@r) if + defined $upgrade; - require $EMU_LIB; - __emu_blog($self,$x,$base,@r); + my ($rc,$exact) = $CALC->_log_int($x->{value},$base->{value}); + return $x->bnan() unless defined $rc; # not possible to take log? + $x->{value} = $rc; + $x->round(@r); } sub blcm @@ -1282,9 +1240,14 @@ sub blcm } else { - $x = $class->new($y); + $x = __PACKAGE__->new($y); } - while (@_) { $x = __lcm($x,shift); } + my $self = ref($x); + while (@_) + { + my $y = shift; $y = $self->new($y) if !ref ($y); + $x = __lcm($x,$y); + } $x; } @@ -1297,26 +1260,17 @@ sub bgcd my $y = shift; $y = __PACKAGE__->new($y) if !ref($y); my $self = ref($y); - my $x = $y->copy(); # keep arguments - if ($CAN{gcd}) + my $x = $y->copy()->babs(); # keep arguments + return $x->bnan() if $x->{sign} !~ /^[+-]$/; # x NaN? + + while (@_) { - while (@_) - { - $y = shift; $y = $self->new($y) if !ref($y); - next if $y->is_zero(); - return $x->bnan() if $y->{sign} !~ /^[+-]$/; # y NaN? - $x->{value} = $CALC->_gcd($x->{value},$y->{value}); last if $x->is_one(); - } + $y = shift; $y = $self->new($y) if !ref($y); + next if $y->is_zero(); + return $x->bnan() if $y->{sign} !~ /^[+-]$/; # y NaN? + $x->{value} = $CALC->_gcd($x->{value},$y->{value}); last if $x->is_one(); } - else - { - while (@_) - { - $y = shift; $y = $self->new($y) if !ref($y); - $x = __gcd($x,$y->copy()); last if $x->is_one(); # _gcd handles NaN - } - } - $x->babs(); + $x; } sub bnot @@ -1449,9 +1403,9 @@ sub bmul return $x->binf() if ($x->{sign} =~ /^-/ && $y->{sign} =~ /^-/); return $x->binf('-'); } - - return $upgrade->bmul($x,$y,@r) - if defined $upgrade && $y->isa($upgrade); + + return $upgrade->bmul($x,$upgrade->new($y),@r) + if defined $upgrade && !$y->isa($self); $r[3] = $y; # no push here @@ -1590,35 +1544,23 @@ sub bmod return $x->round(@r); } - if ($CAN{mod}) + # calc new sign and in case $y == +/- 1, return $x + $x->{value} = $CALC->_mod($x->{value},$y->{value}); + if (!$CALC->_is_zero($x->{value})) { - # calc new sign and in case $y == +/- 1, return $x - $x->{value} = $CALC->_mod($x->{value},$y->{value}); - if (!$CALC->_is_zero($x->{value})) + my $xsign = $x->{sign}; + $x->{sign} = $y->{sign}; + if ($xsign ne $y->{sign}) { - my $xsign = $x->{sign}; - $x->{sign} = $y->{sign}; - if ($xsign ne $y->{sign}) - { - my $t = $CALC->_copy($x->{value}); # copy $x - $x->{value} = $CALC->_sub($y->{value},$t,1); # $y-$x - } + my $t = $CALC->_copy($x->{value}); # copy $x + $x->{value} = $CALC->_sub($y->{value},$t,1); # $y-$x } - else - { - $x->{sign} = '+'; # dont leave -0 - } - $x->round(@r) if !exists $x->{_f} || $x->{_f} & MB_NEVER_ROUND == 0; - return $x; } - # disable upgrade temporarily, otherwise endless loop due to bdiv() - local $upgrade = undef; - my ($t,$rem) = $self->bdiv($x->copy(),$y,@r); # slow way (also rounds) - # modify in place - foreach (qw/value sign _a _p/) + else { - $x->{$_} = $rem->{$_}; + $x->{sign} = '+'; # dont leave -0 } + $x->round(@r) if !exists $x->{_f} || $x->{_f} & MB_NEVER_ROUND == 0; $x; } @@ -1648,19 +1590,13 @@ sub bmodinv # put least residue into $x if $x was negative, and thus make it positive $x->bmod($y) if $x->{sign} eq '-'; - if ($CAN{modinv}) - { - my $sign; - ($x->{value},$sign) = $CALC->_modinv($x->{value},$y->{value}); - return $x->bnan() if !defined $x->{value}; # in case no GCD found - return $x if !defined $sign; # already real result - $x->{sign} = $sign; # flip/flop see below - $x->bmod($y); # calc real result - return $x; - } - - require $EMU_LIB; - __emu_bmodinv($self,$x,$y,@r); + my $sign; + ($x->{value},$sign) = $CALC->_modinv($x->{value},$y->{value}); + return $x->bnan() if !defined $x->{value}; # in case no GCD found + return $x if !defined $sign; # already real result + $x->{sign} = $sign; # flip/flop see below + $x->bmod($y); # calc real result + $x; } sub bmodpow @@ -1688,15 +1624,9 @@ sub bmodpow # check num for valid values (also NaN if there was no inverse but $exp < 0) return $num->bnan() if $num->{sign} !~ /^[+-]$/; - if ($CAN{modpow}) - { - # $mod is positive, sign on $exp is ignored, result also positive - $num->{value} = $CALC->_modpow($num->{value},$exp->{value},$mod->{value}); - return $num; - } - - require $EMU_LIB; - __emu_bmodpow($self,$num,$exp,$mod,@r); + # $mod is positive, sign on $exp is ignored, result also positive + $num->{value} = $CALC->_modpow($num->{value},$exp->{value},$mod->{value}); + $num; } ############################################################################### @@ -1712,14 +1642,8 @@ sub bfac return $x if $x->{sign} eq '+inf'; # inf => inf return $x->bnan() if $x->{sign} ne '+'; # NaN, <0 etc => NaN - if ($CAN{fac}) - { - $x->{value} = $CALC->_fac($x->{value}); - return $x->round(@r); - } - - require $EMU_LIB; - __emu_bfac($self,$x,@r); + $x->{value} = $CALC->_fac($x->{value}); + $x->round(@r); } sub bpow @@ -1747,26 +1671,21 @@ sub bpow # cases 0 ** Y, X ** 0, X ** 1, 1 ** Y are handled by Calc or Emu - if ($x->{sign} eq '-' && $CALC->_is_one($x->{value})) - { - # if $x == -1 and odd/even y => +1/-1 - return $y->is_odd() ? $x->round(@r) : $x->babs()->round(@r); - # my Casio FX-5500L has a bug here: -1 ** 2 is -1, but -1 * -1 is 1; - } + my $new_sign = '+'; + $new_sign = $y->is_odd() ? '-' : '+' if ($x->{sign} ne '+'); + + # 0 ** -7 => ( 1 / (0 ** 7)) => 1 / 0 => +inf + return $x->binf() + if $y->{sign} eq '-' && $x->{sign} eq '+' && $CALC->_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 '-' && !$x->is_one(); + return $x->bnan() if $y->{sign} eq '-' && !$CALC->_is_one($x->{value}); - if ($CAN{pow}) - { - $x->{value} = $CALC->_pow($x->{value},$y->{value}); - $x->{sign} = '+' if $CALC->_is_zero($y->{value}); - $x->round(@r) if !exists $x->{_f} || $x->{_f} & MB_NEVER_ROUND == 0; - return $x; - } - - require $EMU_LIB; - __emu_bpow($self,$x,$y,@r); + $x->{value} = $CALC->_pow($x->{value},$y->{value}); + $x->{sign} = $new_sign; + $x->{sign} = '+' if $CALC->_is_zero($y->{value}); + $x->round(@r) if !exists $x->{_f} || $x->{_f} & MB_NEVER_ROUND == 0; + $x; } sub blsft @@ -1788,13 +1707,8 @@ sub blsft $n = 2 if !defined $n; return $x->bnan() if $n <= 0 || $y->{sign} eq '-'; - my $t; $t = $CALC->_lsft($x->{value},$y->{value},$n) if $CAN{lsft}; - if (defined $t) - { - $x->{value} = $t; return $x->round(@r); - } - # fallback - $x->bmul( $self->bpow($n, $y, @r), @r ); + $x->{value} = $CALC->_lsft($x->{value},$y->{value},$n); + $x->round(@r); } sub brsft @@ -1854,15 +1768,8 @@ sub brsft $x->bdec(); # n == 2, but $y == 1: this fixes it } - my $t; $t = $CALC->_rsft($x->{value},$y->{value},$n) if $CAN{rsft}; - if (defined $t) - { - $x->{value} = $t; - return $x->round(@r); - } - # fallback - $x->bdiv($self->bpow($n,$y, @r), @r); - $x; + $x->{value} = $CALC->_rsft($x->{value},$y->{value},$n); + $x->round(@r); } sub band @@ -1887,7 +1794,7 @@ sub band my $sx = $x->{sign} eq '+' ? 1 : -1; my $sy = $y->{sign} eq '+' ? 1 : -1; - if ($CAN{and} && $sx == 1 && $sy == 1) + if ($sx == 1 && $sy == 1) { $x->{value} = $CALC->_and($x->{value},$y->{value}); return $x->round(@r); @@ -1919,8 +1826,6 @@ sub bior return $x if $x->modify('bior'); $r[3] = $y; # no push! - local $Math::BigInt::upgrade = undef; - return $x->bnan() if ($x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/); my $sx = $x->{sign} eq '+' ? 1 : -1; @@ -1929,7 +1834,7 @@ sub bior # the sign of X follows the sign of X, e.g. sign of Y irrelevant for bior() # don't use lib for negative values - if ($CAN{or} && $sx == 1 && $sy == 1) + if ($sx == 1 && $sy == 1) { $x->{value} = $CALC->_or($x->{value},$y->{value}); return $x->round(@r); @@ -1968,7 +1873,7 @@ sub bxor my $sy = $y->{sign} eq '+' ? 1 : -1; # don't use lib for negative values - if ($CAN{xor} && $sx == 1 && $sy == 1) + if ($sx == 1 && $sy == 1) { $x->{value} = $CALC->_xor($x->{value},$y->{value}); return $x->round(@r); @@ -1996,8 +1901,9 @@ sub length sub digit { # return the nth decimal digit, negative values count backward, 0 is right - my ($self,$x,$n) = ref($_[0]) ? (ref($_[0]),@_) : objectify(1,@_); + my ($self,$x,$n) = ref($_[0]) ? (undef,@_) : objectify(1,@_); + $n = $n->numify() if ref($n); $CALC->_digit($x->{value},$n||0); } @@ -2007,14 +1913,9 @@ sub _trailing_zeros my $x = shift; $x = $class->new($x) unless ref $x; - return 0 if $x->is_zero() || $x->is_odd() || $x->{sign} !~ /^[+-]$/; + return 0 if $x->{sign} !~ /^[+-]$/; # NaN, inf, -inf etc - return $CALC->_zeros($x->{value}) if $CAN{zeros}; - - # if not: since we do not know underlying internal representation: - my $es = "$x"; $es =~ /([0]*)$/; - return 0 if !defined $1; # no zeros - CORE::length("$1"); # as string, not as +0! + $CALC->_zeros($x->{value}); # must handle odd values, 0 etc } sub bsqrt @@ -2029,14 +1930,8 @@ sub bsqrt return $upgrade->bsqrt($x,@r) if defined $upgrade; - if ($CAN{sqrt}) - { - $x->{value} = $CALC->_sqrt($x->{value}); - return $x->round(@r); - } - - require $EMU_LIB; - __emu_bsqrt($self,$x,@r); + $x->{value} = $CALC->_sqrt($x->{value}); + $x->round(@r); } sub broot @@ -2065,14 +1960,8 @@ sub broot return $upgrade->new($x)->broot($upgrade->new($y),@r) if defined $upgrade; - if ($CAN{root}) - { - $x->{value} = $CALC->_root($x->{value},$y->{value}); - return $x->round(@r); - } - - require $EMU_LIB; - __emu_broot($self,$x,$y,@r); + $x->{value} = $CALC->_root($x->{value},$y->{value}); + $x->round(@r); } sub exponent @@ -2122,7 +2011,7 @@ sub bfround { # precision: round to the $Nth digit left (+$n) or right (-$n) from the '.' # $n == 0 || $n == 1 => round to integer - my $x = shift; $x = $class->new($x) unless ref $x; + my $x = shift; my $self = ref($x) || $x; $x = $self->new($x) unless ref $x; my ($scale,$mode) = $x->_scale_p($x->precision(),$x->round_mode(),@_); @@ -2131,8 +2020,8 @@ sub bfround # no-op for BigInts if $n <= 0 $x->bround( $x->length()-$scale, $mode) if $scale > 0; - $x->{_a} = undef; # bround sets {_a} - $x->{_p} = $scale; # so correct it + delete $x->{_a}; # delete to save memory + $x->{_p} = $scale; # store new _p $x; } @@ -2205,9 +2094,9 @@ sub bround # pad: 123: 0 => -1, at 1 => -2, at 2 => -3, at 3 => -4 # pad+1: 123: 0 => 0, at 1 => -1, at 2 => -2, at 3 => -3 - $digit_round = '0'; $digit_round = substr($$xs,$pl,1) if $pad <= $len; + $digit_round = '0'; $digit_round = substr($xs,$pl,1) if $pad <= $len; $pl++; $pl ++ if $pad >= $len; - $digit_after = '0'; $digit_after = substr($$xs,$pl,1) if $pad > 0; + $digit_after = '0'; $digit_after = substr($xs,$pl,1) if $pad > 0; # in case of 01234 we round down, for 6789 up, and only in case 5 we look # closer at the remaining digits of the original $x, remember decision @@ -2229,7 +2118,7 @@ sub bround if (($pad > 0) && ($pad <= $len)) { - substr($$xs,-$pad,$pad) = '0' x $pad; + substr($xs,-$pad,$pad) = '0' x $pad; $put_back = 1; } elsif ($pad > $len) @@ -2240,18 +2129,18 @@ sub bround if ($round_up) # what gave test above? { $put_back = 1; - $pad = $len, $$xs = '0' x $pad if $scale < 0; # tlr: whack 0.51=>1.0 + $pad = $len, $xs = '0' x $pad if $scale < 0; # tlr: whack 0.51=>1.0 # we modify directly the string variant instead of creating a number and # adding it, since that is faster (we already have the string) my $c = 0; $pad ++; # for $pad == $len case while ($pad <= $len) { - $c = substr($$xs,-$pad,1) + 1; $c = '0' if $c eq '10'; - substr($$xs,-$pad,1) = $c; $pad++; + $c = substr($xs,-$pad,1) + 1; $c = '0' if $c eq '10'; + substr($xs,-$pad,1) = $c; $pad++; last if $c != 0; # no overflow => early out } - $$xs = '1'.$$xs if $c == 0; + $xs = '1'.$xs if $c == 0; } $x->{value} = $CALC->_new($xs) if $put_back == 1; # put back in if needed @@ -2298,13 +2187,7 @@ sub as_hex my $s = ''; $s = $x->{sign} if $x->{sign} eq '-'; - if ($CAN{as_hex}) - { - return $s . ${$CALC->_as_hex($x->{value})}; - } - - require $EMU_LIB; - __emu_as_hex(ref($x),$x,$s); + $s . $CALC->_as_hex($x->{value}); } sub as_bin @@ -2315,14 +2198,7 @@ sub as_bin return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc my $s = ''; $s = $x->{sign} if $x->{sign} eq '-'; - if ($CAN{as_bin}) - { - return $s . ${$CALC->_as_bin($x->{value})}; - } - - require $EMU_LIB; - __emu_as_bin(ref($x),$x,$s); - + return $s . $CALC->_as_bin($x->{value}); } ############################################################################## @@ -2485,14 +2361,60 @@ sub import { eval "use $lib qw/@c/;"; } - $CALC = $lib, last if $@ eq ''; # no error in loading lib? + 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 + new copy check from_hex from_bin as_hex as_bin zeros + rsft lsft xor and or + mod sqrt root fac pow modinv modpow log_int gcd + /) + { + if (!$lib->can("_$method")) + { + if (($WARN{$lib}||0) < 2) + { + require Carp; + Carp::carp ("$lib is missing method '_$method'"); + $WARN{$lib} = 1; # still warn about the lib + } + $ok++; last; + } + } + } + if ($ok == 0) + { + $CALC = $lib; + last; # found a usable one, break + } + else + { + if (($WARN{$lib}||0) < 2) + { + my $ver = eval "\$$lib\::VERSION"; + require Carp; + Carp::carp ("Cannot load outdated $lib v$ver, please upgrade"); + $WARN{$lib} = 2; # never warn again + } + } + } } if ($CALC eq '') { require Carp; Carp::croak ("Couldn't load any math lib, not even 'Calc.pm'"); } - _fill_can_cache(); + _fill_can_cache(); # for emulating lower math lib functions } sub _fill_can_cache @@ -2500,11 +2422,7 @@ sub _fill_can_cache # fill $CAN with the results of $CALC->can(...) %CAN = (); - for my $method (qw/gcd mod modinv modpow fac pow lsft rsft - and signed_and or signed_or xor signed_xor - from_hex as_hex from_bin as_bin - zeros sqrt root log_int log - /) + for my $method (qw/ signed_and or signed_or xor signed_xor /) { $CAN{$method} = $CALC->can("_$method") ? 1 : 0; } @@ -2518,36 +2436,15 @@ sub __from_hex my $x = Math::BigInt->bzero(); # strip underscores - $$hs =~ s/([0-9a-fA-F])_([0-9a-fA-F])/$1$2/g; - $$hs =~ s/([0-9a-fA-F])_([0-9a-fA-F])/$1$2/g; + $hs =~ s/([0-9a-fA-F])_([0-9a-fA-F])/$1$2/g; + $hs =~ s/([0-9a-fA-F])_([0-9a-fA-F])/$1$2/g; - return $x->bnan() if $$hs !~ /^[\-\+]?0x[0-9A-Fa-f]+$/; + return $x->bnan() if $hs !~ /^[\-\+]?0x[0-9A-Fa-f]+$/; - my $sign = '+'; $sign = '-' if ($$hs =~ /^-/); + my $sign = '+'; $sign = '-' if $hs =~ /^-/; - $$hs =~ s/^[+-]//; # strip sign - if ($CAN{'from_hex'}) - { - $x->{value} = $CALC->_from_hex($hs); - } - else - { - # fallback to pure perl - my $mul = Math::BigInt->bone(); - my $x65536 = Math::BigInt->new(65536); - my $len = CORE::length($$hs)-2; # minus 2 for 0x - $len = int($len/4); # 4-digit parts, w/o '0x' - my $val; my $i = -4; - while ($len >= 0) - { - $val = substr($$hs,$i,4); - $val =~ s/^[+-]?0x// if $len == 0; # for last part only because - $val = hex($val); # hex does not like wrong chars - $i -= 4; $len --; - $x += $mul * $val if $val != 0; - $mul *= $x65536 if $len >= 0; # skip last mul - } - } + $hs =~ s/^[+-]//; # strip sign + $x->{value} = $CALC->_from_hex($hs); $x->{sign} = $sign unless $CALC->_is_zero($x->{value}); # no '-0' $x; } @@ -2559,36 +2456,14 @@ sub __from_bin my $x = Math::BigInt->bzero(); # strip underscores - $$bs =~ s/([01])_([01])/$1$2/g; - $$bs =~ s/([01])_([01])/$1$2/g; - return $x->bnan() if $$bs !~ /^[+-]?0b[01]+$/; + $bs =~ s/([01])_([01])/$1$2/g; + $bs =~ s/([01])_([01])/$1$2/g; + return $x->bnan() if $bs !~ /^[+-]?0b[01]+$/; - my $sign = '+'; $sign = '-' if ($$bs =~ /^\-/); - $$bs =~ s/^[+-]//; # strip sign - if ($CAN{'from_bin'}) - { - $x->{value} = $CALC->_from_bin($bs); - } - else - { - my $mul = Math::BigInt->bone(); - my $x256 = Math::BigInt->new(256); - my $len = CORE::length($$bs)-2; # minus 2 for 0b - $len = int($len/8); # 8-digit parts, w/o '0b' - my $val; my $i = -8; - while ($len >= 0) - { - $val = substr($$bs,$i,8); - $val =~ s/^[+-]?0b// if $len == 0; # for last part only - #$val = oct('0b'.$val); # does not work on Perl prior to 5.6.0 - # slower: - # $val = ('0' x (8-CORE::length($val))).$val if CORE::length($val) < 8; - $val = ord(pack('B8',substr('00000000'.$val,-8,8))); - $i -= 8; $len --; - $x += $mul * $val if $val != 0; - $mul *= $x256 if $len >= 0; # skip last mul - } - } + my $sign = '+'; $sign = '-' if $bs =~ /^\-/; + $bs =~ s/^[+-]//; # strip sign + + $x->{value} = $CALC->_from_bin($bs); $x->{sign} = $sign unless $CALC->_is_zero($x->{value}); # no '-0' $x; } @@ -2602,34 +2477,32 @@ sub _split my $x = shift; # strip white space at front, also extranous leading zeros - $$x =~ s/^\s*([-]?)0*([0-9])/$1$2/g; # will not strip ' .2' - $$x =~ s/^\s+//; # but this will - $$x =~ s/\s+$//g; # strip white space at end + $x =~ s/^\s*([-]?)0*([0-9])/$1$2/g; # will not strip ' .2' + $x =~ s/^\s+//; # but this will + $x =~ s/\s+$//g; # strip white space at end # shortcut, if nothing to split, return early - if ($$x =~ /^[+-]?\d+\z/) + if ($x =~ /^[+-]?\d+\z/) { - $$x =~ s/^([+-])0*([0-9])/$2/; my $sign = $1 || '+'; - return (\$sign, $x, \'', \'', \0); + $x =~ s/^([+-])0*([0-9])/$2/; my $sign = $1 || '+'; + return (\$sign, \$x, \'', \'', \0); } # invalid starting char? - return if $$x !~ /^[+-]?(\.?[0-9]|0b[0-1]|0x[0-9a-fA-F])/; + return if $x !~ /^[+-]?(\.?[0-9]|0b[0-1]|0x[0-9a-fA-F])/; - return __from_hex($x) if $$x =~ /^[\-\+]?0x/; # hex string - return __from_bin($x) if $$x =~ /^[\-\+]?0b/; # binary string + return __from_hex($x) if $x =~ /^[\-\+]?0x/; # hex string + return __from_bin($x) if $x =~ /^[\-\+]?0b/; # binary string # strip underscores between digits - $$x =~ s/(\d)_(\d)/$1$2/g; - $$x =~ s/(\d)_(\d)/$1$2/g; # do twice for 1_2_3 + $x =~ s/(\d)_(\d)/$1$2/g; + $x =~ s/(\d)_(\d)/$1$2/g; # do twice for 1_2_3 # some possible inputs: # 2.1234 # 0.12 # 1 # 1E1 # 2.134E1 # 434E-10 # 1.02009E-2 # .2 # 1_2_3.4_5_6 # 1.4E1_2_3 # 1e3 # +.2 # 0e999 - #return if $$x =~ /[Ee].*[Ee]/; # more than one E => error - - my ($m,$e,$last) = split /[Ee]/,$$x; + my ($m,$e,$last) = split /[Ee]/,$x; return if defined $last; # last defined => 1e2E3 or others $e = '0' if !defined $e || $e eq ""; @@ -2670,23 +2543,7 @@ sub __lcm my $x = shift; my $ty = shift; return $x->bnan() if ($x->{sign} eq $nan) || ($ty->{sign} eq $nan); - return $x * $ty / bgcd($x,$ty); - } - -sub __gcd - { - # (BINT or num_str, BINT or num_str) return BINT - # does modify both arguments - # GCD -- Euclids algorithm E, Knuth Vol 2 pg 296 - my ($x,$ty) = @_; - - return $x->bnan() if $x->{sign} !~ /^[+-]$/ || $ty->{sign} !~ /^[+-]$/; - - while (!$ty->is_zero()) - { - ($x, $ty) = ($ty,bmod($x,$ty)); - } - $x; + $x * $ty / bgcd($x,$ty); } ############################################################################### @@ -2713,8 +2570,13 @@ Math::BigInt - Arbitrary size integer math package use Math::BigInt lib => 'GMP'; + my $str = '1234567890'; + my @values = (64,74,18); + my $n = 1; my $sign = '-'; + # Number creation $x = Math::BigInt->new($str); # defaults to 0 + $y = $x->copy(); # make a true copy $nan = Math::BigInt->bnan(); # create a NotANumber $zero = Math::BigInt->bzero(); # create a +0 $inf = Math::BigInt->binf(); # create a +inf @@ -2733,7 +2595,7 @@ Math::BigInt - Arbitrary size integer math package $x->is_even(); # if $x is even $x->is_pos(); # if $x >= 0 $x->is_neg(); # if $x < 0 - $x->is_inf(sign); # if $x is +inf, or -inf (sign is default '+') + $x->is_inf($sign); # if $x is +inf, or -inf (sign is default '+') $x->is_int(); # if $x is an integer (not a float) # comparing and digit/sign extration @@ -2787,8 +2649,8 @@ Math::BigInt - Arbitrary size integer math package $x->bfac(); # factorial of $x (1*2*3*4*..$x) $x->round($A,$P,$mode); # round to accuracy or precision using mode $mode - $x->bround($N); # accuracy: preserve $N digits - $x->bfround($N); # round to $Nth digit, no-op for BigInts + $x->bround($n); # accuracy: preserve $n digits + $x->bfround($n); # round to $nth digit, no-op for BigInts # The following do not modify their arguments in BigInt (are no-ops), # but do so in BigFloat: @@ -2798,11 +2660,13 @@ Math::BigInt - Arbitrary size integer math package # The following do not modify their arguments: - bgcd(@values); # greatest common divisor (no OO style) - blcm(@values); # lowest common multiplicator (no OO style) + # greatest common divisor (no OO style) + my $gcd = Math::BigInt::bgcd(@values); + # lowest common multiplicator (no OO style) + my $lcm = Math::BigInt::blcm(@values); $x->length(); # return number of digits in number - ($x,$f) = $x->length(); # length of number and length of fraction part, + ($xl,$f) = $x->length(); # length of number and length of fraction part, # latter is always 0 digits long for BigInt's $x->exponent(); # return exponent as BigInt @@ -4396,8 +4260,8 @@ subclass files and benchmarks. =head1 AUTHORS Original code by Mark Biggar, overloaded interface by Ilya Zakharevich. -Completely rewritten by Tels http://bloodgate.com in late 2000, 2001, 2002 -and still at it in 2003. +Completely rewritten by Tels http://bloodgate.com in late 2000, 2001 - 2003 +and still at it in 2004. Many people contributed in one or more ways to the final beast, see the file CREDITS for an (uncomplete) list. If you miss your name, please drop me a diff --git a/gnu/usr.bin/perl/lib/Net/ChangeLog.libnet b/gnu/usr.bin/perl/lib/Net/ChangeLog.libnet deleted file mode 100644 index a00a527edce..00000000000 --- a/gnu/usr.bin/perl/lib/Net/ChangeLog.libnet +++ /dev/null @@ -1,1178 +0,0 @@ -Change 727 on 2002/05/28 by <gbarr@pobox.com> (Graham Barr) - - Net::SMTP - - Use Authen::SASL to do auth - -Change 724 on 2002/05/24 by <gbarr@pobox.com> (Graham Barr) - - Net::SMTP - - Minor change to address sanitize code, mainly to allow <> - -Change 723 on 2002/05/24 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - Minor change to pattern to extract unique filename from server response - -Change 717 on 2002/04/02 by <gbarr@pobox.com> (Graham Barr) - - Release 1.11 - -Change 716 on 2002/04/02 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP::dataconn - - Fix for select to avoid occasional hangups - -Change 715 on 2002/04/02 by <gbarr@pobox.com> (Graham Barr) - - Tweak parsing of hello response - -Change 706 on 2002/02/28 by <gbarr@pobox.com> (Graham Barr) - - Release 1.10 - -Change 705 on 2002/02/28 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP::I - - Don't call sysread multiple times after calling select() as it - may block. - -Change 704 on 2002/02/25 by <gbarr@pobox.com> (Graham Barr) - - Net::POP3 - - Patches from Ville Skytta for various cleanup and use Digest::MD5 - -Change 703 on 2002/02/25 by <gbarr@pobox.com> (Graham Barr) - - Net::Cmd, Net::NNTP, Net::POP3, Net::SMTP - - Add support for returning tied filehandles from some operations - -Change 702 on 2002/02/25 by <gbarr@pobox.com> (Graham Barr) - - Net::Config - - New config script for MacOS from Chris Nandor - -Change 701 on 2002/02/25 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - Allow tied handles to be passed to get/put - -Change 700 on 2002/02/25 by <gbarr@pobox.com> (Graham Barr) - - t/* - - Skip tests if no Socket module - -Change 699 on 2002/02/25 by <gbarr@pobox.com> (Graham Barr) - - t/netrc.t - - Fix RE context - -Change 698 on 2002/02/25 by <gbarr@pobox.com> (Graham Barr) - - Net::Cmd - - Pod changes from Robin Barker - -Change 697 on 2002/02/22 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - Don't do EBCDIC translation on a binary transfer - -Change 696 on 2002/02/22 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - Fix docs for anonymous login - -Change 695 on 2002/02/22 by <gbarr@pobox.com> (Graham Barr) - - Net::SMTP - - Support binding to a local port/address - -Change 694 on 2002/02/22 by <gbarr@pobox.com> (Graham Barr) - - Net::Netrc - - Support exscaping in the netrc file - -Change 688 on 2001/12/10 by <gbarr@pobox.com> (Graham Barr) - - Release 1.0901 - -Change 687 on 2001/12/10 by <gbarr@pobox.com> (Graham Barr) - - More test updates from the core - -Change 686 on 2001/11/27 by <gbarr@pobox.com> (Graham Barr) - - Skip tests if we are on an EBCDIC machine, but Convert::EBCDIC is not installed - Make tests run with 5.004 - -Change 685 on 2001/11/27 by <gbarr@pobox.com> (Graham Barr) - - Net::SMTP - - Don't attempt to resolve the hostname to send in the greating. - If it is not provided, use localhost.localdomain - (patch from Eduardo Perez Ureta) - -Change 684 on 2001/11/26 by <gbarr@pobox.com> (Graham Barr) - - netrc.t - - fix RE for libnet_t.pl - -Change 683 on 2001/11/20 by <gbarr@pobox.com> (Graham Barr) - - Various doc cleanups - -Change 675 on 2001/11/20 by <gbarr@pobox.com> (Graham Barr) - - t/hostname.t - - Add test to check that hostname() does not modify $_ - -Change 674 on 2001/11/20 by <gbarr@pobox.com> (Graham Barr) - - Net::Config - - Dont treat "test_hosts" as an array of host names - -Change 673 on 2001/11/20 by <gbarr@pobox.com> (Graham Barr) - - Added test for Net::Netrc - patch from chromatic - -Change 672 on 2001/11/20 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - Dont send QUIT on DESTROY. Causes problems when fork() is used. - -Change 671 on 2001/11/20 by <gbarr@pobox.com> (Graham Barr) - - Net::Domain - - Fix bug causing $_ to be modified - -Change 670 on 2001/11/20 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - Send -anonymous@ as the password for the anonymous user, not - the real username. Patch from Eduardo Perez Ureta - -Change 669 on 2001/11/20 by <gbarr@pobox.com> (Graham Barr) - - Add VERSION numbers to Net::FTP::L and Net::FTP::E - -Change 668 on 2001/11/20 by <gbarr@pobox.com> (Graham Barr) - - Net::Config - - Read some default values using Mac::InternetConfig if we are on the Mac - patch from Chris Nandor - -Change 667 on 2001/11/20 by <gbarr@pobox.com> (Graham Barr) - - Net::SMTP - - Add support for SASL AUTH (only PLAIN right now) - patch from Meng Weng Wong <mengwong@dumbo.pobox.com> - -Change 666 on 2001/11/20 by <gbarr@pobox.com> (Graham Barr) - - t/config.t - - Use a fake inet_aton so we know that it will fail when expected - -Change 665 on 2001/11/02 by <gbarr@pobox.com> (Graham Barr) - - Release 1.09 - -Change 664 on 2001/10/29 by <gbarr@pobox.com> (Graham Barr) - - Added test for Net::Config from chromatic - -Change 663 on 2001/10/26 by <gbarr@pobox.com> (Graham Barr) - - More fixes from the core for undefs - -Change 662 on 2001/10/26 by <gbarr@pobox.com> (Graham Barr) - - Make tests compatable with the perl core distribution - -Change 661 on 2001/10/26 by <gbarr@pobox.com> (Graham Barr) - - Add install-nomake to install libnet on machines that do not - have make available - -Change 660 on 2001/10/26 by <gbarr@pobox.com> (Graham Barr) - - Net::Cmd - - Ensure we don't insert an extra CR during LF=>CRLF when the CR already exists - -Change 659 on 2001/10/22 by <gbarr@pobox.com> (Graham Barr) - - Net::Domain - - Be more robust if no hostname or domainname - (especially the latter) - -Change 658 on 2001/10/22 by <gbarr@pobox.com> (Graham Barr) - - Net::Config - - Protect eval's from user defining $SIG{__DIE__} - -Change 657 on 2001/10/22 by <gbarr@pobox.com> (Graham Barr) - - Net::Config - - Fix handling of single values passed, when a ref to an array is wanted - -Change 656 on 2001/10/22 by <gbarr@pobox.com> (Graham Barr) - - Net::Config - - Pod updates from chromatic - -Change 655 on 2001/10/22 by <gbarr@pobox.com> (Graham Barr) - - Net::SMTP - - Don't be sensetive to extra spaces on reply to HELO - -Change 654 on 2001/10/22 by <gbarr@pobox.com> (Graham Barr) - - Net::Netrc - - Update lookup() docs to describe what happens if no .netrc file is found - -Change 653 on 2001/10/22 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - Fix hash() to match docs (patch from Doug Wilson) - -Change 652 on 2001/09/21 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - Fix patterns in ->size and ->supported - -Change 651 on 2001/09/21 by <gbarr@pobox.com> (Graham Barr) - - Net::Config, Net::Netrc - - Handle $home on w2k - -Change 650 on 2001/09/21 by <gbarr@pobox.com> (Graham Barr) - - Net::Domain - - Fix some potential undef warnings - -Change 649 on 2001/09/21 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - Add FirewallType as an option to ->new - -Change 648 on 2001/09/21 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - use sysopen instead of open so we don't get caught by special chars in the filename - -Change 630 on 2001/08/31 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP::I - - Avoid uninit warning - -Change 627 on 2001/08/20 by <gbarr@pobox.com> (Graham Barr) - - Remove tests for modules removed from dist - -Change 626 on 2001/08/17 by <gbarr@pobox.com> (Graham Barr) - - Increment VERSIONs - -Change 625 on 2001/08/17 by <gbarr@pobox.com> (Graham Barr) - - Doc updates and add cc and bcc as aliases for recipient - -Change 624 on 2001/08/17 by <gbarr@pobox.com> (Graham Barr) - - Don't set ENV variables - -Change 623 on 2001/08/17 by <gbarr@pobox.com> (Graham Barr) - - Support mixed case in the EHLO response - -Change 622 on 2001/08/06 by <gbarr@pobox.com> (Graham Barr) - - Documentation update - -Change 621 on 2001/08/06 by <gbarr@pobox.com> (Graham Barr) - - Set the status if command returns due to the connection being closed - -Change 620 on 2001/08/06 by <gbarr@pobox.com> (Graham Barr) - - Fix for _msg_spec when passed the same msg number twice, pass N instead of N-N - -Change 619 on 2001/05/29 by <gbarr@pobox.com> (Graham Barr) - - Remove DummyInetd - -Change 618 on 2001/05/29 by <gbarr@pobox.com> (Graham Barr) - - Move snpp into its own distribution - -Change 615 on 2001/05/29 by <gbarr@pobox.com> (Graham Barr) - - Move PH to its own dist - -Change 614 on 2001/05/29 by <gbarr@pobox.com> (Graham Barr) - - Move TFTP out of libnet - -Change 612 on 2001/03/29 by <gbarr@pobox.com> (Graham Barr) - - Support some non standard servers that return more than - just a number in response to SIZE. But the size must be - the last thing on the response line [Jeffery W Long] - -Change 603 on 2000/10/06 by <gbarr@pobox.com> (Graham Barr) - - Net::Config - - Added documentation for ftp_firewall_type - -Change 574 on 2000/08/24 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - Make listen socket listen on same interfacce as the command connection - this fixes a problem when going via a SOCKS firewall - -Change 573 on 2000/08/24 by <gbarr@pobox.com> (Graham Barr) - - Net::Netrc - - Exclude cygwin from the stat check - -Change 572 on 2000/08/24 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - Fix bug in return value from ->rmdir - - Added ->restart() - Net::FTP::dataconn - - Added ->bytes_read - -Change 518 on 2000/05/16 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP::A, Net::FTP::I - - Restrict the number of bytes given to syswrite to be at - most net_ftp_blksize. This fixes a bug on VMS where the OS will - return an error if syswrite is given more than 65535 bytes. - -Change 504 on 2000/05/02 by <gbarr@pobox.com> (Graham Barr) - - Net::NNTP - * Doc fix for the description of the return value from ->list() - -Change 503 on 2000/05/02 by <gbarr@pobox.com> (Graham Barr) - - Net::POP3 - * chnage new MD5 to MD5->new - -Change 472 on 2000/03/30 by <gbarr@pobox.com> (Graham Barr) - - Net::Cmd - - More typos in os390 code - -Change 471 on 2000/03/30 by <gbarr@pobox.com> (Graham Barr) - - Net::Cmd - - Fix bug in new os390 code - -Change 470 on 2000/03/30 by <gbarr@pobox.com> (Graham Barr) - - Generate HTML - -Change 469 on 2000/03/30 by <gbarr@pobox.com> (Graham Barr) - - Documentation updates - -Change 468 on 2000/03/30 by <gbarr@pobox.com> (Graham Barr) - - Added Net::SNPP::HylaFAX.pm - -Change 458 on 2000/03/29 by <gbarr@pobox.com> (Graham Barr) - - Net::Cmd, Net::FTP - - Support for os390, modified from a patch from Dan Campbell - -Change 455 on 2000/03/29 by <gbarr@pobox.com> (Graham Barr) - - Net::Domain - - silence warnings on Win32 that domainname does not exist - -Change 454 on 2000/03/29 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - More error checking in ->get() - -Change 453 on 2000/03/29 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - update pattern to dig out unique filename from stou - -Change 452 on 2000/03/29 by <gbarr@pobox.com> (Graham Barr) - - t/ftp.t - - silently pass if the stor to /pub fails - -Change 451 on 2000/03/29 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - Add Timeout to listen socket - -Change 450 on 2000/03/29 by <gbarr@pobox.com> (Graham Barr) - - Makefile.PL - - only add ppd conditional on perl version - -Change 449 on 2000/03/29 by <gbarr@pobox.com> (Graham Barr) - - Fixed mput example in FAQ to use glob() - -Change 448 on 2000/03/29 by <gbarr@pobox.com> (Graham Barr) - - Update README to reflect new way Configure works - -Change 447 on 2000/03/29 by <gbarr@pobox.com> (Graham Barr) - - Net::Config - - Check that $home is defined before we use it - -Change 446 on 2000/03/29 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - add link to autoftp example - -Change 445 on 2000/03/29 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP::A, Net::FTP::I - - Move the timeout check into the loop to prevent hanging - on write. - -Change 444 on 2000/03/29 by <gbarr@pobox.com> (Graham Barr) - - Net::Cmd, Net::FTP::A, Net::FTP::I - - MacOS does not like the setting of $SIG{PIPE} so check $^O - -Change 432 on 2000/03/29 by <gbarr@pobox.com> (Graham Barr) - - POD cleanup - -Change 431 on 2000/03/29 by <gbarr@pobox.com> (Graham Barr) - - Net::NNTP - - Allow a filehandle to be passed to article, head and body - -Change 430 on 2000/03/29 by <gbarr@pobox.com> (Graham Barr) - - Net::TFTP - - There is no quit method, so don't document one - -Change 402 on 2000/03/23 by <gbarr@pobox.com> (Graham Barr) - - Net::Config - - Fix typos in requires_firewall(), Thanks to Johan Vromans <jvromans@squirrel.nl> - -Change 401 on 2000/03/23 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - fix rmdir for when ls() returns full paths - -Change 379 on 2000/03/13 by <gbarr@pobox.com> (Graham Barr) - - Release 1.0702 - -Change 378 on 2000/03/10 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP::A - - Fix to stop possible forever loop - -Change 377 on 2000/03/10 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP::A - - use " not ' - -Change 376 on 2000/03/10 by <gbarr@pobox.com> (Graham Barr) - - Net::Config - - need to import inet_aton and inet_ntoa - -Change 375 on 2000/03/10 by <gbarr@pobox.com> (Graham Barr) - - Net::Config - - change arg to split to /\./ from "." - -Change 374 on 2000/03/07 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP::A - - Fix return value of read() - -Change 373 on 2000/03/07 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP::I - - Fix typo - -Change 372 on 2000/03/07 by <gbarr@pobox.com> (Graham Barr) - - Release 1.07 - -Change 371 on 2000/03/06 by <gbarr@pobox.com> (Graham Barr) - - - Moved FAQ to Net/libnetFAQ.pod - -Change 370 on 2000/03/06 by <gbarr@pobox.com> (Graham Barr) - - - Added mput and mget examples - -Change 369 on 2000/03/06 by <gbarr@pobox.com> (Graham Barr) - - - Added support for the xwho command in qpage, but no docs yet. - -Change 368 on 2000/03/06 by <gbarr@pobox.com> (Graham Barr) - - new Configure script - -Change 367 on 2000/03/06 by <gbarr@pobox.com> (Graham Barr) - - Local-ize $SIG{__DIE__} - -Change 361 on 2000/02/17 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - Fix arg count check in cwd() - -Change 351 on 2000/01/31 by <gbarr@pobox.com> (Graham Barr) - - Net::Cmd - - Fixed bug in getline returning an empty line - - Added optional filehandle argument to read_until_dot. - - Net::POP3 - - get now takes an optional filehandle argument, if given the - message is sent to the handle. - -Change 348 on 2000/01/17 by <gbarr@pobox.com> (Graham Barr) - - Net::Cmd - - fix getline not to drop blank lines - -Change 347 on 2000/01/12 by <gbarr@pobox.com> (Graham Barr) - - Net::Time - - Fix use of uninitialized warning caused by _socket - -Change 346 on 2000/01/11 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - Change firewall code to use Net::Config->requires_firewall - - Net::Config - - renamed is_external to be requires_firewall - -Change 345 on 2000/01/06 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - Added workaround for a Y2K bug that exists with the MDTM - command on some servers. - -Change 341 on 1999/09/29 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP, Net::FTP::A, Net::FTP::I, Net::FTP::datacon - - Added BlockSize option to control size of blocks read from server - (defaults to 10K) - -Change 340 on 1999/09/28 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP, Configure - - First attempt to add multiple firewall type support - -Change 339 on 1999/09/28 by <gbarr@pobox.com> (Graham Barr) - - Added ppd info to Makefile.PL and libnet.ppd to MANIFEST - -Change 333 on 1999/09/18 by <gbarr@pobox.com> (Graham Barr) - - Release 1.0607 - -Change 332 on 1999/09/18 by <gbarr@pobox.com> (Graham Barr) - - Configure - - Fix typo - -Change 331 on 1999/09/18 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - get and put now accept *FD as well as \*FD for the local filehandle - -Change 330 on 1999/09/18 by <gbarr@pobox.com> (Graham Barr) - - Net::Domain - - Added support for VMS as suggest by lane@DUPHY4.Physics.Drexel.Edu - -Change 329 on 1999/09/18 by <gbarr@pobox.com> (Graham Barr) - - Net::Netrc - - Added support for spaces in passwords - -Change 328 on 1999/09/18 by <gbarr@pobox.com> (Graham Barr) - - Net::Cmd - - Map \n's in commands to " " - -Change 327 on 1999/09/18 by <gbarr@pobox.com> (Graham Barr) - - Net::Netrc - - Applied patch from Randy Merrell to fix / escaping - -Change 318 on 1999/08/06 by <gbarr@pobox.com> (Graham Barr) - - Net::Cmd - - Remove use of defined(@ISA) - -Change 316 on 1999/07/11 by <gbarr@pobox.com> (Graham Barr) - - Net::POP3 - - Added ping method supplied by William Rolston <rolston@freerealtime.com> - -Change 309 on 1999/05/05 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - Check that writes to local file succeed - -Change 308 on 1999/05/05 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - Fix bug ->size when SIZE and STAT are not implemented - -Change 307 on 1999/05/05 by <gbarr@pobox.com> (Graham Barr) - - Net::POP3 - - The return value for apop is now the same as login - -Change 306 on 1999/05/05 by <gbarr@pobox.com> (Graham Barr) - - Net::POP3 - - login now returns "0E0" when there are no messages on te server. - This is true in a boolean context, but zero in a numeric context - -Change 305 on 1999/05/05 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP::A - - Fixed bug when sending a file in ascii mode that already contains - \r\n character sequences - - Made improvements to speed of \r\n <-> \n translation - -Change 304 on 1999/05/05 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - Added hash mark printing - -Change 264 on 1999/03/18 by <gbarr@pobox.com> (Graham Barr) - - Net::TFTP - - Fix typo in CLOSE() - -Change 262 on 1999/03/16 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - new should only call authorize if there is user/passwd data - - Net::SMTP - - Allow ->to to ignore bad addresses - -Change 254 on 1999/02/24 by <gbarr@pobox.com> (Graham Barr) - - Added some debug to t/ftp.t to help understand failure - -Change 253 on 1999/02/17 by <gbarr@pobox.com> (Graham Barr) - - Net::Cmd - - Added checks for a closed connection - -Change 252 on 1999/02/17 by <gbarr@pobox.com> (Graham Barr) - - Net::Domain - - set FQDN = IP if host does not have a name - -Change 248 on 1999/02/06 by <gbarr@pobox.com> (Graham Barr) - - Net::Domain - - check for defined(&main::SYS_gethostname) before calling syscall - as user may have a UNIVERSAL::AUTOLOADER defined - -Change 245 on 1999/01/18 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - Modify mkdir to call ->cwd(), not ->cd() - -Change 206 on 1998/10/21 by <gbarr@pobox.com> (Graham Barr) - - Fix typo in Net::Cmd - -Change 204 on 1998/10/18 by <gbarr@pobox.com> (Graham Barr) - - Net::SMTP - - DESTROY now does nothing, so any half-sent message should be aborted - -Change 198 on 1998/10/16 by <gbarr@pobox.com> (Graham Barr) - - Net::Config added - - Configure, Makefile.PL - - Canges to handle new Net::Config module - -Change 197 on 1998/10/16 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - Fixed return vlue of _ACCT - - Net::Cmd - - Fixed datasend to ensure all data is sent - - Fixed a || bug in getline - - Some FAQ updates - -Change 196 on 1998/10/16 by <gbarr@pobox.com> (Graham Barr) - - Net::TFTP - - Initial public release - -Change 195 on 1998/10/04 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - Fixed bad use of ||= in cwd() - - Net::POP3 - - Fixed pattern for -ERR (had +ERR) - -Change 191 on 1998/09/26 by <gbarr@pobox.com> (Graham Barr) - - Net::POP3 - - Fix bug in UIDL - -Change 187 on 1998/09/02 by <gbarr@pobox.com> (Graham Barr) - - Net::TFTP - - Some cleanup of the code - - removed leading - from named args - -Change 185 on 1998/08/24 by <gbarr@pobox.com> (Graham Barr) - - Net::TFTP - - Initial version - -Change 184 on 1998/08/23 by <gbarr@pobox.com> (Graham Barr) - - Remove mention of Net::SNMP from README - -Change 183 on 1998/08/07 by <gbarr@pobox.com> (Graham Barr) - - Net::Domain - - Fix problem with returning last name instead of first name for a - win32 multi-homed machine - -Change 182 on 1998/08/07 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - _list_cmd returned (undef) instead of () - - Fix typo in docs - - Net::NNTP - - Fix typo in docs - -Change 181 on 1998/08/05 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - Allow spaces in filenames (ick!) - -Change 179 on 1998/08/05 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - added new rmdir from Dunkin Software - - fix to the code generating the listen port - -Change 171 on 1998/07/09 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - login will now send ACCT if $acct is defined and the PASS - command completed with 2xx or 3xx - - Added a check for the close of the dataconn in _store_cmd - - Debug trace will hide any parameter given to ACCT - -Change 167 on 1998/07/04 by <gbarr@pobox.com> (Graham Barr) - - - Added Config.eg, an example Config.pm - - Removed set method from Net::Config - - Removed check for Data::Dumper from Makefile.PL - -Change 157 on 1998/06/20 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - Another small tweak to ->supported() - -Change 156 on 1998/06/19 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - Tweak to ->supported() to better detect reports from some - servers (NcFTPd) - -Change 153 on 1998/06/17 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - Fix "Use of uninitialized" warning, patch from - Lars Thegler <lth@dannet.dk> - -Change 148 on 1998/06/07 by <gbarr@pobox.com> (Graham Barr) - - Net::SMTP - - Fix typo - -Change 147 on 1998/06/07 by <gbarr@pobox.com> (Graham Barr) - - Net::SMTP - - Added ->supports() - - Added ->etrn() - - Updated FAQ - -Change 141 on 1998/05/24 by <gbarr@pobox.com> (Graham Barr) - - Net::SMTP - - Added banner() method - -Change 132 on 1998/04/19 by <gbarr@pobox.com> (Graham Barr) - - Net::POP3 - - Added ResvPort option to new() - -Change 131 on 1998/04/19 by <gbarr@pobox.com> (Graham Barr) - - Makefile.PL - - Patch for running $^X Configure under VMS - -Change 130 on 1998/04/19 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP, Net::POP3 - - wrapped getpwuid in eval {} as some OSs (eg NT) do not support it - -Change 129 on 1998/04/19 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - Enhanced ->size() to try different approaces if SIZE is - not implemented - -Change 128 on 1998/04/16 by <gbarr@pobox.com> (Graham Barr) - - Net::Time - - Correct number of seconds in a year - -Change 126 on 1998/04/07 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP, Net::FTP::A, Net::FTP::I, Net::Cmd - - changes for undef checking on sysread/syswrite - -Change 118 on 1998/02/24 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - Added site method - -Change 117 on 1998/02/24 by <gbarr@pobox.com> (Graham Barr) - - Net::POP3 - - Remove use of map in a void context - -Change 116 on 1998/02/21 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - Changes to mkdir for recursive creates. - -Change 114 on 1998/02/21 by <gbarr@pobox.com> (Graham Barr) - - Net::Domain - - Change $SIG{__DIE__} to $SIG{'__DIE__'} to stop warning in 5.003 - -Change 113 on 1998/02/18 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP::A - - modified regexp in write for converting to CRLF, should now work with MacOS - - Net::FTP - - Added use of File::Basename - - Small tweak to abort() - - Net::Time - - Changed inet_time to handle MacOS - - Net::Netrc - - Fixes for MacOS - - Net::Domain - - Fixes for MacOS - - Net::SMTP - - Fix for new() to fail if HELO command fails - -Change 108 on 1998/02/15 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - Added check for filenames with spaces, \r or \n - -Change 107 on 1998/02/07 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - Ensure dataconn object is in reading mode for data transfers - -Change 101 on 1998/01/23 by <gbarr@pobox.com> (Graham Barr) - - Renamed FAQ.pod as FAQ - -Change 100 on 1998/01/23 by <gbarr@pobox.com> (Graham Barr) - - Net::NNTP - - Added Reader option to new() - -Change 99 on 1998/01/23 by <gbarr@pobox.com> (Graham Barr) - - Net::POP3 - - fix pass() to call popstat() if pattern does not match for - message count - -Change 98 on 1998/01/23 by <gbarr@pobox.com> (Graham Barr) - - Restore changes lost in disk-crash - - *** Patch 1.0605 - - Sun Dec 21 1997 <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - Fix for pasv_xfer, previous version hung if an error occured - while setting up the link between the two servers. - - Sun Dec 14 1997 <gbarr@pobox.com> (Graham Barr) - - Net::Domain - - Fix for 'Use of uninitialized' when setting $SIG{__DIE__} - - Sat Dec 13 1997 <gbarr@pobox.com> (Graham Barr) - - Net::Domain, Net::Netrc - - patches from Nick Ing-Simmons for MSWin32 - - *** Patch 1.0604 - - Thu Dec 11 1997 <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - Removed use of AutoLoader, it was causing problems on - some platforms - -Change 92 on 1997/12/09 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - Fix to pasv_xfer, the command stream on the source side was left - out of sync. - -Change 91 on 1997/12/05 by <gbarr@pobox.com> (Graham Barr) - - MANIFEST, FAQ.pod - - Added initial FAQ document - -Change 90 on 1997/12/05 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - Set $@ if ->new() fails - -Change 82 on 1997/11/30 by <gbarr@pobox.com> (Graham Barr) - - x - -Change 79 on 1997/11/30 by <gbarr@pobox.com> (Graham Barr) - - Net::Cmd - - Fix for read_until_dot entering an endless loop, now returns undef - - Net::POP3 - - Fix ->list() and ->uidl() to handle undef being returned from - ->read_until_dot() - -Change 78 on 1997/11/30 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - Fix to login() and authorize() for OS/2 which does not - support getpw*() - -Change 65 on 1997/11/28 by <gbarr@pobox.com> (Graham Barr) - - Net::Domain - - If user has defined $SIG{__DIE__} then failures inside eval - still call it. local-ized $SIG{__DIE__} to stop this as Net::Domain - used eval to hide such errors. - -Change 64 on 1997/11/28 by <gbarr@pobox.com> (Graham Barr) - - t/nntp.t - - Now exits passing if commands fail due to not having - authorization. - -Change 61 on 1997/11/26 by <gbarr@pobox.com> (Graham Barr) - - none - -Change 60 on 1997/11/26 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP::I - - Fix to prevent ABOR being sent when xfer is complete - - Change to write() to ensure whole packet is sent - - Net::FTP - - Moved $TELNET_ vars to top of file so that autosplit does not place them - in the wrong file and cause "Use of undefined ...." - - Clarification on the result from ->size() added to docs. - - pasv_xfer changed to use stor as stou is not a "MUST-have" command - - added pasv_xfer_unique - - Net::PH - - Documentation updates. - - t/nntp.t - - Modified to test for a list of groups - -Change 58 on 1997/11/18 by <gbarr@pobox.com> (Graham Barr) - - t/nntp.t - - Modified to check for more groups before failure - -Change 56 on 1997/11/18 by <gbarr@pobox.com> (Graham Barr) - - Net::SMTP - - Corrected documentation for ->expand() - -Change 54 on 1997/11/18 by <gbarr@pobox.com> (Graham Barr) - - Makefile.PL - - change to code for creating Net::Config - - Net::FTP::A - - Change to write() to ensure whole packet is sent - - Documentation correction to dir() and ls() - - Net::FTP::dataconn - - Stop abort be called when a write socket is being closed. - - Net::NNTP - - Changes to postok logic - - Net::PH - - fields() now also returns a reference to an ordered array of tag names - if called in an array context. - - Net::Cmd - - Catch added for SIGPIPE while in ->command() - -Change 43 on 1997/11/05 by <gbarr@pobox.com> (Graham Barr) - - rename files - -Change 39 on 1997/11/05 by <gbarr@pobox.com> (Graham Barr) - - Configure - - Fix croak problem - -Change 38 on 1997/11/05 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP, Net::NNTP, Net::PH, Net::POP3, Net::SMTP, Net::SNPP - - Fix error cause by calling close method when "unexpected EOF: - has been encountered. - - t/require.t - - Remove Net::Telnet test - -Change 37 on 1997/11/01 by <gbarr@pobox.com> (Graham Barr) - - Release 1.06 - -Change 36 on 1997/11/01 by <gbarr@pobox.com> (Graham Barr) - - none - -Change 35 on 1997/11/01 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - Fixed undef warning in login() when $ruser does not exist in .netrc - -Change 34 on 1997/11/01 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - Added new supported() method - -Change 33 on 1997/11/01 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - DESTORY now sends quit command - - corrected OOB commands sent prior to an abort command - - close will call abort unless eof seen - - documentation updates - - Net::FTP::datacon - - abort() will read a byte if non have been read - - Net::FTP::A - - read was using arg#3 as an offset ?? change to use as timeout, this - now matches Net::FTP::I::read and the docs - - speedup to read() - -Change 18 on 1997/10/04 by <gbarr@pobox.com> (Graham Barr) - - Release 1.17 - -Change 15 on 1997/09/27 by <gbarr@pobox.com> (Graham Barr) - - Email address and documentation changes - -Change 14 on 1997/09/27 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - Added account method so ACCT command can be sent independantly - of ->login() - - Fixed a bug which caused an infinite loop if EOF happend on the - command channel while executing code to work around MS FTP - servers - - Net::Cmd - - Fixed undefined warning when an unexpected EOF is encountered - - Net::NNTP - - Added a call to ->reader() from within ->new(), just in case we are - talking to an INN server, but we have transfer rights. This will - ensure we are talking to nnrpd. - - Net::SNPP - - Fixed a bug in ->new() while locating default host - -Change 13 on 1997/09/27 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - Modified code which determined whether to connect via a Firewall. - if the Firewall wall option is passed then it will be used, - reguardless of whether the real machine can be reached. - - The Firewall option to new is now used in preference over - the FTP_FIREWALL environment variable. - -Change 12 on 1997/09/27 by <gbarr@pobox.com> (Graham Barr) - - Net::Cmd - - modified ->response() to return CMD_ERROR if ->getline() returns - undef - -Change 6 on 1997/09/14 by <gbarr@pobox.com> (Graham Barr) - - Small tweak to Makefile,PL to remove requirement for Data::Dumper - -Change 3 on 1997/09/13 by <gbarr@pobox.com> (Graham Barr) - - Makefile.PL - - Local config file libnet.cfg installed as Net::Config - -Change 2 on 1997/09/13 by <gbarr@pobox.com> (Graham Barr) - - Net::FTP - - Modified to use AutoLoader - - Fixed Net::FTP::[AI]::write to trap SIGPIPE errors - and return an error, instead of aborting the script - -Change 1 on 1997/09/13 by <gbarr@pobox.com> (Graham Barr) - - A new beginning - diff --git a/gnu/usr.bin/perl/lib/Net/FTP.pm b/gnu/usr.bin/perl/lib/Net/FTP.pm index beda69571e6..aac72b2277f 100644 --- a/gnu/usr.bin/perl/lib/Net/FTP.pm +++ b/gnu/usr.bin/perl/lib/Net/FTP.pm @@ -1,6 +1,6 @@ # Net::FTP.pm # -# Copyright (c) 1995-8 Graham Barr <gbarr@pobox.com>. All rights reserved. +# Copyright (c) 1995-2004 Graham Barr <gbarr@pobox.com>. All rights reserved. # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl itself. # @@ -22,7 +22,7 @@ use Net::Config; use Fcntl qw(O_WRONLY O_RDONLY O_APPEND O_CREAT O_TRUNC); # use AutoLoader qw(AUTOLOAD); -$VERSION = "2.72"; # $Id: //depot/libnet/Net/FTP.pm#80 $ +$VERSION = "2.75"; @ISA = qw(Exporter Net::Cmd IO::Socket::INET); # Someday I will "use constant", when I am not bothered to much about @@ -50,8 +50,14 @@ BEGIN { sub new { my $pkg = shift; - my $peer = shift; - my %arg = @_; + my ($peer,%arg); + if (@_ % 2) { + $peer = shift ; + %arg = @_; + } else { + %arg = @_; + $peer=delete $arg{Host}; + } my $host = $peer; my $fire = undef; @@ -124,6 +130,13 @@ sub new ## User interface methods ## + +sub host { + my $me = shift; + ${*$me}{'net_ftp_host'}; +} + + sub hash { my $ftp = shift; # self @@ -206,7 +219,7 @@ sub size { my $io; if($ftp->supported("SIZE")) { return $ftp->_SIZE($file) - ? ($ftp->message =~ /(\d+)\s*$/)[0] + ? ($ftp->message =~ /(\d+)\s*(bytes?\s*)?$/)[0] : undef; } elsif($ftp->supported("STAT")) { @@ -443,8 +456,8 @@ sub get croak("Bad remote filename '$remote'\n") if $remote =~ /[\r\n]/s; - ${*$ftp}{'net_ftp_rest'} = $where - if ($where); + ${*$ftp}{'net_ftp_rest'} = $where if defined $where; + my $rest = ${*$ftp}{'net_ftp_rest'}; delete ${*$ftp}{'net_ftp_port'}; delete ${*$ftp}{'net_ftp_pasv'}; @@ -460,7 +473,7 @@ sub get { $loc = \*FD; - unless(sysopen($loc, $local, O_CREAT | O_WRONLY | ($where ? O_APPEND : O_TRUNC))) + unless(sysopen($loc, $local, O_CREAT | O_WRONLY | ($rest ? O_APPEND : O_TRUNC))) { carp "Cannot open Local file $local: $!\n"; $data->abort; @@ -581,14 +594,14 @@ sub rmdir # Try to delete the contents # Get a list of all the files in the directory - my $filelist = $ftp->ls($dir); + my @filelist = grep { !/^\.{1,2}$/ } $ftp->ls($dir); return undef - unless $filelist && @$filelist; # failed, it is probably not a directory + unless @filelist; # failed, it is probably not a directory # Go thru and delete each file or the directory my $file; - foreach $file (map { m,/, ? $_ : "$dir/$_" } @$filelist) + foreach $file (map { m,/, ? $_ : "$dir/$_" } @filelist) { next # successfully deleted the file if $ftp->delete($file); @@ -713,7 +726,7 @@ sub _store_cmd # _store_cmd call, figure out if the local file is a regular file(not # a pipe, or device) and if so get the file size from stat, and send # an ALLO command before sending the STOR, STOU, or APPE command. - my $size = -f $local && -s _; # no ALLO if sending data from a pipe + my $size = do { local $^W; -f $local && -s _ }; # no ALLO if sending data from a pipe $ftp->_ALLO($size) if $size; } croak("Bad remote filename '$remote'\n") @@ -939,7 +952,7 @@ sub _dataconn if(defined ${*$ftp}{'net_ftp_pasv'}) { - my @port = split(/,/,${*$ftp}{'net_ftp_pasv'}); + my @port = map { 0+$_ } split(/,/,${*$ftp}{'net_ftp_pasv'}); $data = $pkg->new(PeerAddr => join(".",@port[0..3]), PeerPort => $port[4] * 256 + $port[5], @@ -1280,14 +1293,23 @@ this if you really know what you're doing). =over 4 -=item new (HOST [,OPTIONS]) +=item new ([ HOST ] [, OPTIONS ]) This is the constructor for a new Net::FTP object. C<HOST> is the name of the remote host to which an FTP connection is required. +C<HOST> is optional. If C<HOST> is not given then it may instead be +passed as the C<Host> option described below. + C<OPTIONS> are passed in a hash like fashion, using key and value pairs. Possible options are: +B<Host> - FTP host to connect to. It may be a single scalar, as defined for +the C<PeerAddr> option in L<IO::Socket::INET>, or a reference to +an array with hosts to try in turn. The L</host> method will return the value +which was used to connect to the host. + + B<Firewall> - The name of a machine which acts as an FTP firewall. This can be overridden by an environment variable C<FTP_FIREWALL>. If specified, and the given host cannot be directly connected to, then the @@ -1416,8 +1438,6 @@ C<mkdir> will attempt to create all the directories in the given path. Returns the full pathname to the new directory. -=item ls ( [ DIR ] ) - =item alloc ( SIZE [, RECORD_SIZE] ) The alloc command allows you to give the ftp server a hint about the size @@ -1432,6 +1452,8 @@ automatically for normal files so that this method need only be called if you are transfering data from a socket, named pipe, or other stream not associated with a normal file. +=item ls ( [ DIR ] ) + Get a directory listing of C<DIR>, or the current directory. In an array context, returns a list of lines returned from the server. In @@ -1761,12 +1783,8 @@ Roderick Schertler <roderick@gate.net> - for various inputs =head1 COPYRIGHT -Copyright (c) 1995-1998 Graham Barr. All rights reserved. +Copyright (c) 1995-2004 Graham Barr. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. -=for html <hr> - -I<$Id: //depot/libnet/Net/FTP.pm#80 $> - =cut diff --git a/gnu/usr.bin/perl/lib/Net/NNTP.pm b/gnu/usr.bin/perl/lib/Net/NNTP.pm index 79261f889d5..f9a6ddf7a7f 100644 --- a/gnu/usr.bin/perl/lib/Net/NNTP.pm +++ b/gnu/usr.bin/perl/lib/Net/NNTP.pm @@ -14,15 +14,21 @@ use Carp; use Time::Local; use Net::Config; -$VERSION = "2.22"; # $Id: //depot/libnet/Net/NNTP.pm#18 $ +$VERSION = "2.23"; @ISA = qw(Net::Cmd IO::Socket::INET); sub new { my $self = shift; my $type = ref($self) || $self; - my $host = shift if @_ % 2; - my %arg = @_; + my ($host,%arg); + if (@_ % 2) { + $host = shift ; + %arg = @_; + } else { + %arg = @_; + $host=delete $arg{Host}; + } my $obj; $host ||= $ENV{NNTPSERVER} || $ENV{NEWSHOST}; @@ -81,6 +87,11 @@ sub new $obj; } +sub host { + my $me = shift; + ${*$me}{'net_nntp_host'}; +} + sub debug_text { my $nntp = shift; @@ -712,13 +723,19 @@ in RFC977. C<Net::NNTP> inherits its communication methods from C<Net::Cmd> This is the constructor for a new Net::NNTP object. C<HOST> is the name of the remote host to which a NNTP connection is required. If not -given two environment variables are checked, first C<NNTPSERVER> then +given then it may be passed as the C<Host> option described below. If no host is passed +then two environment variables are checked, first C<NNTPSERVER> then C<NEWSHOST>, then C<Net::Config> is checked, and if a host is not found then C<news> is used. C<OPTIONS> are passed in a hash like fashion, using key and value pairs. Possible options are: +B<Host> - NNTP host to connect to. It may be a single scalar, as defined for +the C<PeerAddr> option in L<IO::Socket::INET>, or a reference to +an array with hosts to try in turn. The L</host> method will return the value +which was used to connect to the host. + B<Timeout> - Maximum time, in seconds, to wait for a response from the NNTP server, a value of zero will cause all IO operations to block. (default: 120) @@ -840,6 +857,12 @@ that it will allow posting. =item authinfo ( USER, PASS ) +Authenticates to the server (using AUTHINFO USER / AUTHINFO PASS) +using the supplied username and password. Please note that the +password is sent in clear text to the server. This command should not +be used with valuable passwords unless the connection to the server is +somehow protected. + =item list () Obtain information about all the active newsgroups. The results is a reference diff --git a/gnu/usr.bin/perl/lib/Pod/LaTeX.pm b/gnu/usr.bin/perl/lib/Pod/LaTeX.pm index 4e73ee43dcc..9582d340c94 100644 --- a/gnu/usr.bin/perl/lib/Pod/LaTeX.pm +++ b/gnu/usr.bin/perl/lib/Pod/LaTeX.pm @@ -33,7 +33,7 @@ use Carp; use vars qw/ $VERSION %HTML_Escapes @LatexSections /; -$VERSION = '0.55'; +$VERSION = '0.56'; # Definitions of =headN -> latex mapping @LatexSections = (qw/ @@ -856,7 +856,9 @@ on what these methods require. =item B<begin_pod> -Writes the C<latex> preamble if requested. +Writes the C<latex> preamble if requested. Only writes something +if AddPreamble is true. Writes a standard header unless a UserPreamble +is defined. =cut @@ -881,40 +883,42 @@ __TEX_COMMENT__ # If the caller has supplied one then we just use that my $preamble = ''; - if (defined $self->UserPreamble) { - $preamble = $self->UserPreamble; + if ($self->AddPreamble) { - # Add the description of where this came from - $preamble .= "\n$comment"; - + if (defined $self->UserPreamble) { - } elsif ($self->AddPreamble) { - # Write our own preamble + $preamble = $self->UserPreamble; - # Code to initialise index making - # Use an array so that we can prepend comment if required - my @makeidx = ( - '\usepackage{makeidx}', - '\makeindex', - ); + # Add the description of where this came from + $preamble .= "\n$comment\n%% Preamble supplied by user.\n\n"; - unless ($self->MakeIndex) { - foreach (@makeidx) { - $_ = '%% ' . $_; - } - } - my $makeindex = join("\n",@makeidx) . "\n"; + } else { + + # Write our own preamble + + # Code to initialise index making + # Use an array so that we can prepend comment if required + my @makeidx = ( + '\usepackage{makeidx}', + '\makeindex', + ); + unless ($self->MakeIndex) { + foreach (@makeidx) { + $_ = '%% ' . $_; + } + } + my $makeindex = join("\n",@makeidx) . "\n"; - # Table of contents - my $tableofcontents = '\tableofcontents'; + # Table of contents + my $tableofcontents = '\tableofcontents'; - $tableofcontents = '%% ' . $tableofcontents - unless $self->TableOfContents; + $tableofcontents = '%% ' . $tableofcontents + unless $self->TableOfContents; - # Roll our own - $preamble = << "__TEX_HEADER__"; + # Roll our own + $preamble = << "__TEX_HEADER__"; \\documentclass{article} \\usepackage[T1]{fontenc} \\usepackage{textcomp} @@ -929,6 +933,7 @@ $tableofcontents __TEX_HEADER__ + } } # Write the header (blank if none) @@ -942,7 +947,8 @@ __TEX_HEADER__ =item B<end_pod> -Write the closing C<latex> code. +Write the closing C<latex> code. Only writes something if AddPostamble +is true. Writes a standard header unless a UserPostamble is defined. =cut @@ -952,23 +958,23 @@ sub end_pod { # End string my $end = ''; - # Use the user version of the postamble if deinfed - if (defined $self->UserPostamble) { - $end = $self->UserPostamble; + # Use the user version of the postamble if defined + if ($self->AddPostamble) { - $self->_output($end); + if (defined $self->UserPostamble) { + $end = $self->UserPostamble; - } elsif ($self->AddPostamble) { + } else { - # Check for index - my $makeindex = '\printindex'; + # Check for index + my $makeindex = '\printindex'; - $makeindex = '%% '. $makeindex unless $self->MakeIndex; + $makeindex = '%% '. $makeindex unless $self->MakeIndex; - $end = "$makeindex\n\n\\end{document}\n"; + $end = "$makeindex\n\n\\end{document}\n"; + } } - $self->_output($end); } @@ -1837,20 +1843,21 @@ L<Pod::Parser>, L<Pod::Select>, L<pod2latex> =head1 AUTHORS -Tim Jenness E<lt>t.jenness@jach.hawaii.eduE<gt> +Tim Jenness E<lt>tjenness@cpan.orgE<gt> Bug fixes and improvements have been received from: Simon Cozens E<lt>simon@cozens.netE<gt>, Mark A. Hershberger E<lt>mah@everybody.orgE<gt>, Marcel Grunauer E<lt>marcel@codewerk.comE<gt>, Hugh S Myers E<lt>hsmyers@sdragons.comE<gt>, Peter J Acklam -E<lt>jacklam@math.uio.noE<gt>, Sudhi Herle E<lt>sudhi@herle.netE<gt> -and Ariel Scolnicov E<lt>ariels@compugen.co.ilE<gt>. +E<lt>jacklam@math.uio.noE<gt>, Sudhi Herle E<lt>sudhi@herle.netE<gt>, +Ariel Scolnicov E<lt>ariels@compugen.co.ilE<gt> and +Adriano Rodrigues Ferreira E<lt>ferreira@triang.com.brE<gt>. =head1 COPYRIGHT -Copyright (C) 2000-2003 Tim Jenness. All Rights Reserved. +Copyright (C) 2000-2004 Tim Jenness. All Rights Reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. @@ -1859,7 +1866,7 @@ it under the same terms as Perl itself. =head1 REVISION -$Id: LaTeX.pm,v 1.4 2003/12/03 03:02:40 millert Exp $ +$Id: LaTeX.pm,v 1.5 2004/08/09 18:09:45 millert Exp $ =end __PRIVATE__ diff --git a/gnu/usr.bin/perl/lib/Pod/Perldoc.pm b/gnu/usr.bin/perl/lib/Pod/Perldoc.pm index 5413fbd3307..e078dcf8a5f 100644 --- a/gnu/usr.bin/perl/lib/Pod/Perldoc.pm +++ b/gnu/usr.bin/perl/lib/Pod/Perldoc.pm @@ -12,7 +12,7 @@ use File::Spec::Functions qw(catfile catdir splitdir); use vars qw($VERSION @Pagers $Bindir $Pod2man $Temp_Files_Created $Temp_File_Lifetime ); -$VERSION = '3.12'; +$VERSION = '3.13'; #.......................................................................... BEGIN { # Make a DEBUG constant very first thing... @@ -1313,10 +1313,12 @@ sub check_file { unless( ref $self ) { # Should never get called: $Carp::Verbose = 1; - Carp::croak join '', + require Carp; + Carp::croak( join '', "Crazy ", __PACKAGE__, " error:\n", "check_file must be an object_method!\n", "Aborting" + ); } if(length $dir and not -d $dir) { diff --git a/gnu/usr.bin/perl/lib/Shell.pm b/gnu/usr.bin/perl/lib/Shell.pm index e300d792c6c..a84d9a9f67a 100644 --- a/gnu/usr.bin/perl/lib/Shell.pm +++ b/gnu/usr.bin/perl/lib/Shell.pm @@ -2,9 +2,11 @@ package Shell; use 5.006_001; use strict; use warnings; -our($capture_stderr, $VERSION, $AUTOLOAD); +use File::Spec::Functions; -$VERSION = '0.5'; +our($capture_stderr, $raw, $VERSION, $AUTOLOAD); + +$VERSION = '0.6'; sub new { bless \my $foo, shift } sub DESTROY { } @@ -28,11 +30,15 @@ sub AUTOLOAD { shift if ref $_[0] && $_[0]->isa( 'Shell' ); my $cmd = $AUTOLOAD; $cmd =~ s/^.*:://; + my $null = File::Spec::Functions::devnull(); + $Shell::capture_stderr ||= 0; eval <<"*END*"; sub $AUTOLOAD { shift if ref \$_[0] && \$_[0]->isa( 'Shell' ); if (\@_ < 1) { - \$Shell::capture_stderr ? `$cmd 2>&1` : `$cmd`; + \$Shell::capture_stderr == 1 ? `$cmd 2>&1` : + \$Shell::capture_stderr == -1 ? `$cmd 2>$null` : + `$cmd`; } elsif ('$^O' eq 'os2') { local(\*SAVEOUT, \*READ, \*WRITE); @@ -62,7 +68,8 @@ sub AUTOLOAD { } else { my \$a; my \@arr = \@_; - if ('$^O' eq 'MSWin32') { + unless( \$Shell::raw ){ + if ('$^O' eq 'MSWin32') { # XXX this special-casing should not be needed # if we do quoting right on Windows. :-( # @@ -78,13 +85,15 @@ sub AUTOLOAD { s/\\\\\\\\"/\\\\\\\\"""/g; \$_ = qq["\$_"] if /\\s/; } - } else { + } else { for (\@arr) { s/(['\\\\])/\\\\\$1/g; \$_ = \$_; - } + } + } } - push \@arr, '2>&1' if \$Shell::capture_stderr; + push \@arr, '2>&1' if \$Shell::capture_stderr == 1; + push \@arr, '2>$null' if \$Shell::capture_stderr == -1; open(SUBPROC, join(' ', '$cmd', \@arr, '|')) or die "Can't exec $cmd: \$!\\n"; if (wantarray) { @@ -115,10 +124,82 @@ Shell - run shell commands transparently within perl =head1 SYNOPSIS -See below. + use Shell qw(cat ps cp); + $passwd = cat('</etc/passwd'); + @pslines = ps('-ww'), + cp("/etc/passwd", "/tmp/passwd"); + + # object oriented + my $sh = Shell->new; + print $sh->ls('-l'); =head1 DESCRIPTION +=head2 Caveats + +This package is included as a show case, illustrating a few Perl features. +It shouldn't be used for production programs. Although it does provide a +simple interface for obtaining the standard output of arbitrary commands, +there may be better ways of achieving what you need. + +Running shell commands while obtaining standard output can be done with the +C<qx/STRING/> operator, or by calling C<open> with a filename expression that +ends with C<|>, giving you the option to process one line at a time. +If you don't need to process standard output at all, you might use C<system> +(in preference of doing a print with the collected standard output). + +Since Shell.pm and all of the aforementioned techniques use your system's +shell to call some local command, none of them is portable across different +systems. Note, however, that there are several built in functions and +library packages providing portable implementations of functions operating +on files, such as: C<glob>, C<link> and C<unlink>, C<mkdir> and C<rmdir>, +C<rename>, C<File::Compare>, C<File::Copy>, C<File::Find> etc. + +Using Shell.pm while importing C<foo> creates a subroutine C<foo> in the +namespace of the importing package. Calling C<foo> with arguments C<arg1>, +C<arg2>,... results in a shell command C<foo arg1 arg2...>, where the +function name and the arguments are joined with a blank. (See the subsection +on Escaping magic characters.) Since the result is essentially a command +line to be passed to the shell, your notion of arguments to the Perl +function is not necessarily identical to what the shell treats as a +command line token, to be passed as an individual argument to the program. +Furthermore, note that this implies that C<foo> is callable by file name +only, which frequently depends on the setting of the program's environment. + +Creating a Shell object gives you the opportunity to call any command +in the usual OO notation without requiring you to announce it in the +C<use Shell> statement. Don't assume any additional semantics being +associated with a Shell object: in no way is it similar to a shell +process with its environment or current working directory or any +other setting. + +=head2 Escaping Magic Characters + +It is, in general, impossible to take care of quoting the shell's +magic characters. For some obscure reason, however, Shell.pm quotes +apostrophes (C<'>) and backslashes (C<\>) on UNIX, and spaces and +quotes (C<">) on Windows. + +=head2 Configuration + +If you set $Shell::capture_stderr to true, the module will attempt to +capture the standard error output of the process as well. This is +done by adding C<2E<gt>&1> to the command line, so don't try this on +a system not supporting this redirection. + +If you set $Shell::raw to true no quoting whatsoever is done. + +=head1 BUGS + +Quoting should be off by default. + +It isn't possible to call shell built in commands, but it can be +done by using a workaround, e.g. shell( '-c', 'set' ). + +Capturing standard error does not work on some systems (e.g. VMS). + +=head1 AUTHOR + Date: Thu, 22 Sep 94 16:18:16 -0700 Message-Id: <9409222318.AA17072@scalpel.netlabs.com> To: perl5-porters@isu.edu @@ -140,7 +221,7 @@ Here's one that'll whack your mind a little out. sub ps; print ps -ww; - cp("/etc/passwd", "/tmp/passwd"); + cp("/etc/passwd", "/etc/passwd.orig"); That's maybe too gonzo. It actually exports an AUTOLOAD to the current package (and uncovered a bug in Beta 3, by the way). Maybe the usual @@ -148,55 +229,12 @@ usage should be use Shell qw(echo cat ps cp); -Larry - - -If you set $Shell::capture_stderr to 1, the module will attempt to -capture the STDERR of the process as well. - -The module now should work on Win32. - - Jenda - -There seemed to be a problem where all arguments to a shell command were -quoted before being executed. As in the following example: - - cat('</etc/passwd'); - ls('*.pl'); - -really turned into: - - cat '</etc/passwd' - ls '*.pl' - -instead of: - - cat </etc/passwd - ls *.pl - -and of course, this is wrong. - -I have fixed this bug, it was brought up by Wolfgang Laun [ID 20000326.008] - -Casey - -=head2 OBJECT ORIENTED SYNTAX - -Shell now has an OO interface. Good for namespace conservation -and shell representation. - - use Shell; - my $sh = Shell->new; - print $sh->ls; - -Casey - -=head1 AUTHOR - Larry Wall -Changes by Jenda@Krynicky.cz and Dave Cottle <d.cottle@csc.canterbury.ac.nz> +Changes by Jenda@Krynicky.cz and Dave Cottle <d.cottle@csc.canterbury.ac.nz>. + +Changes for OO syntax and bug fixes by Casey West <casey@geeknest.com>. -Changes and bug fixes by Casey West <casey@geeknest.com> +C<$Shell::raw> and pod rewrite by Wolfgang Laun. =cut diff --git a/gnu/usr.bin/perl/lib/Term/ANSIColor.pm b/gnu/usr.bin/perl/lib/Term/ANSIColor.pm index af1f9436834..788f5d90ac8 100644 --- a/gnu/usr.bin/perl/lib/Term/ANSIColor.pm +++ b/gnu/usr.bin/perl/lib/Term/ANSIColor.pm @@ -1,5 +1,5 @@ # Term::ANSIColor -- Color screen output using ANSI escape sequences. -# $Id: ANSIColor.pm,v 1.5 2003/12/03 03:02:41 millert Exp $ +# $Id: ANSIColor.pm,v 1.6 2004/08/09 18:09:46 millert Exp $ # # Copyright 1996, 1997, 1998, 2000, 2001, 2002 # by Russ Allbery <rra@stanford.edu> and Zenin <zenin@bawdycaste.com> @@ -25,16 +25,16 @@ use Exporter (); @ISA = qw(Exporter); @EXPORT = qw(color colored); @EXPORT_OK = qw(uncolor); -%EXPORT_TAGS = (constants => [qw(CLEAR RESET BOLD UNDERLINE UNDERSCORE BLINK - REVERSE CONCEALED BLACK RED GREEN YELLOW - BLUE MAGENTA CYAN WHITE ON_BLACK ON_RED - ON_GREEN ON_YELLOW ON_BLUE ON_MAGENTA +%EXPORT_TAGS = (constants => [qw(CLEAR RESET BOLD DARK UNDERLINE UNDERSCORE + BLINK REVERSE CONCEALED BLACK RED GREEN + YELLOW BLUE MAGENTA CYAN WHITE ON_BLACK + ON_RED ON_GREEN ON_YELLOW ON_BLUE ON_MAGENTA ON_CYAN ON_WHITE)]); Exporter::export_ok_tags ('constants'); # Don't use the CVS revision as the version, since this module is also in Perl # core and too many things could munge CVS magic revision strings. -$VERSION = 1.07; +$VERSION = 1.08; ############################################################################## # Internal data structures @@ -275,9 +275,9 @@ feature. Alternately, if you import C<:constants>, you can use the constants CLEAR, RESET, BOLD, DARK, UNDERLINE, UNDERSCORE, BLINK, REVERSE, CONCEALED, BLACK, -RED, GREEN, YELLOW, BLUE, MAGENTA, ON_BLACK, ON_RED, ON_GREEN, ON_YELLOW, -ON_BLUE, ON_MAGENTA, ON_CYAN, and ON_WHITE directly. These are the same as -color('attribute') and can be used if you prefer typing: +RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, ON_BLACK, ON_RED, ON_GREEN, +ON_YELLOW, ON_BLUE, ON_MAGENTA, ON_CYAN, and ON_WHITE directly. These are +the same as color('attribute') and can be used if you prefer typing: print BOLD BLUE ON_WHITE "Text\n", RESET; diff --git a/gnu/usr.bin/perl/lib/Term/Cap.pm b/gnu/usr.bin/perl/lib/Term/Cap.pm index 1deadc55049..b71c51ceba4 100644 --- a/gnu/usr.bin/perl/lib/Term/Cap.pm +++ b/gnu/usr.bin/perl/lib/Term/Cap.pm @@ -1,12 +1,23 @@ package Term::Cap; -use Carp; +# Since the debugger uses Term::ReadLine which uses Term::Cap, we want +# to load as few modules as possible. This includes Carp.pm. +sub carp { + require Carp; + goto &Carp::carp; +} + +sub croak { + require Carp; + goto &Carp::croak; +} + use strict; use vars qw($VERSION $VMS_TERMCAP); use vars qw($termpat $state $first $entry); -$VERSION = '1.08'; +$VERSION = '1.09'; # Version undef: Thu Dec 14 20:02:42 CST 1995 by sanders@bsdi.com # Version 1.00: Thu Nov 30 23:34:29 EST 2000 by schwern@pobox.com @@ -29,8 +40,13 @@ $VERSION = '1.08'; # Version 1.07: Wed Jan 2 21:35:09 GMT 2002 # Sanity check on infocmp output from Norton Allen # Repaired INSTALLDIRS thanks to Michael Schwern -# Version 1.08: Fri Aug 30 14:15:55 CEST 2002 -# Cope with comments lines from 'infocmp' from Brendan O'Dea +# Version 1.08: Sat Sep 28 11:33:15 BST 2002 +# Late loading of 'Carp' as per Michael Schwern +# Version 1.09: Tue Apr 20 12:06:51 BST 2004 +# Merged in changes from and to Core +# Core (Fri Aug 30 14:15:55 CEST 2002): +# Cope with comments lines from 'infocmp' from Brendan O'Dea +# Allow for EBCDIC in Tgoto magic test. # TODO: # support Berkeley DB termcaps @@ -219,10 +235,10 @@ sub Tgetent { ## public -- static method } else { if ( grep { -x "$_/infocmp" } split /:/, $ENV{PATH} ) { - eval { + eval + { my $tmp = `infocmp -C 2>/dev/null`; - $tmp =~ s/^#.*\n//gm; # remove comments - + $tmp =~ s/^#.*\n//gm; # remove comments if (( $tmp !~ m%^/%s ) && ( $tmp =~ /(^|\|)${termpat}[:|]/s)) { $entry = $tmp; } diff --git a/gnu/usr.bin/perl/lib/Test/Harness.pm b/gnu/usr.bin/perl/lib/Test/Harness.pm index 6a101fa4bf1..5dbea5738e9 100644 --- a/gnu/usr.bin/perl/lib/Test/Harness.pm +++ b/gnu/usr.bin/perl/lib/Test/Harness.pm @@ -1,5 +1,5 @@ # -*- Mode: cperl; cperl-indent-level: 4 -*- -# $Id: Harness.pm,v 1.8 2004/04/07 21:33:06 millert Exp $ +# $Id: Harness.pm,v 1.9 2004/08/09 18:09:48 millert Exp $ package Test::Harness; @@ -29,13 +29,13 @@ Test::Harness - Run Perl standard test scripts with statistics =head1 VERSION -Version 2.40 +Version 2.42 - $Header: /cvs/OpenBSD/src/gnu/usr.bin/perl/lib/Test/Attic/Harness.pm,v 1.8 2004/04/07 21:33:06 millert Exp $ + $Header: /cvs/OpenBSD/src/gnu/usr.bin/perl/lib/Test/Attic/Harness.pm,v 1.9 2004/08/09 18:09:48 millert Exp $ =cut -$VERSION = '2.40'; +$VERSION = '2.42'; # Backwards compatibility for exportable variable names. *verbose = *Verbose; @@ -1123,6 +1123,7 @@ Here's how Test::Harness tests itself =head1 SEE ALSO +The included F<prove> utility for running test scripts from the command line, L<Test> and L<Test::Simple> for writing test scripts, L<Benchmark> for the underlying timing routines, L<Devel::CoreStack> to generate core dumps from failed tests and L<Devel::Cover> for test coverage diff --git a/gnu/usr.bin/perl/lib/Text/ParseWords.pm b/gnu/usr.bin/perl/lib/Text/ParseWords.pm index 6949c459378..fbc0ee038f9 100644 --- a/gnu/usr.bin/perl/lib/Text/ParseWords.pm +++ b/gnu/usr.bin/perl/lib/Text/ParseWords.pm @@ -1,7 +1,7 @@ package Text::ParseWords; use vars qw($VERSION @ISA @EXPORT $PERL_SINGLE_QUOTE); -$VERSION = "3.21"; +$VERSION = "3.22"; require 5.000; @@ -59,11 +59,11 @@ sub parse_line { ($quote, $quoted, undef, $unquoted, $delim, undef) = $line =~ m/^(["']) # a $quote - ((?:\\.|(?!\1)[^\\])*) # and $quoted text + ((?:\\[\000-\377]|(?!\1)[^\\])*) # and $quoted text \1 # followed by the same quote ([\000-\377]*) # and the rest | # --OR-- - ^((?:\\.|[^\\"'])*?) # an $unquoted text + ^((?:\\[\000-\377]|[^\\"'])*?) # an $unquoted text (\Z(?!\n)|(?-x:$delimiter)|(?!^)(?=["'])) # plus EOL, delimiter, or quote ([\000-\377]*) # the rest @@ -76,9 +76,9 @@ sub parse_line { $quoted = "$quote$quoted$quote"; } else { - $unquoted =~ s/\\(.)/$1/g; + $unquoted =~ s/\\([\000-\377])/$1/g; if (defined $quote) { - $quoted =~ s/\\(.)/$1/g if ($quote eq '"'); + $quoted =~ s/\\([\000-\377])/$1/g if ($quote eq '"'); $quoted =~ s/\\([\\'])/$1/g if ( $PERL_SINGLE_QUOTE && $quote eq "'"); } } @@ -168,8 +168,8 @@ words ignoring delimiters that appear inside quotes. "ewords() returns all of the tokens in a single long list, while &nested_quotewords() returns a list of token lists corresponding to the elements of @lines. &parse_line() does tokenizing on a single string. The &*quotewords() -functions simply call &parse_lines(), so if you're only splitting -one line you can call &parse_lines() directly and save a function +functions simply call &parse_line(), so if you're only splitting +one line you can call &parse_line() directly and save a function call. The $keep argument is a boolean flag. If true, then the tokens are diff --git a/gnu/usr.bin/perl/lib/Text/Wrap.pm b/gnu/usr.bin/perl/lib/Text/Wrap.pm index c2c32257d6d..00677f900b2 100644 --- a/gnu/usr.bin/perl/lib/Text/Wrap.pm +++ b/gnu/usr.bin/perl/lib/Text/Wrap.pm @@ -6,7 +6,7 @@ require Exporter; @EXPORT = qw(wrap fill); @EXPORT_OK = qw($columns $break $huge); -$VERSION = 2001.09291; +$VERSION = 2001.09292; use vars qw($VERSION $columns $debug $break $huge $unexpand $tabstop $separator); @@ -120,7 +120,7 @@ B<Example 1> print wrap($initial_tab, $subsequent_tab, @text); print fill($initial_tab, $subsequent_tab, @text); - @lines = wrap($initial_tab, $subsequent_tab, @text); + $lines = wrap($initial_tab, $subsequent_tab, @text); @paragraphs = fill($initial_tab, $subsequent_tab, @text); diff --git a/gnu/usr.bin/perl/lib/Time/Local.pm b/gnu/usr.bin/perl/lib/Time/Local.pm index c38d07ca60f..73407c7c133 100644 --- a/gnu/usr.bin/perl/lib/Time/Local.pm +++ b/gnu/usr.bin/perl/lib/Time/Local.pm @@ -7,7 +7,8 @@ use strict; use integer; use vars qw( $VERSION @ISA @EXPORT @EXPORT_OK ); -$VERSION = '1.07'; +$VERSION = '1.10'; +$VERSION = eval $VERSION; @ISA = qw( Exporter ); @EXPORT = qw( timegm timelocal ); @EXPORT_OK = qw( timegm_nocheck timelocal_nocheck ); @@ -22,10 +23,23 @@ my $NextCentury = $ThisYear - $ThisYear % 100; my $Century = $NextCentury - 100; my $SecOff = 0; -my (%Options, %Cheat); +my (%Options, %Cheat, %Min, %Max); +my ($MinInt, $MaxInt); -my $MaxInt = ((1<<(8 * $Config{intsize} - 2))-1)*2 + 1; -my $MaxDay = int(($MaxInt-43200)/86400)-1; +if ($^O eq 'MacOS') { + # time_t is unsigned... + $MaxInt = (1 << (8 * $Config{intsize})) - 1; + $MinInt = 0; +} else { + $MaxInt = ((1 << (8 * $Config{intsize} - 2))-1)*2 + 1; + $MinInt = -$MaxInt - 1; +} + +$Max{Day} = ($MaxInt >> 1) / 43200; +$Min{Day} = ($MinInt)? -($Max{Day}+1) : 0; + +$Max{Sec} = $MaxInt - 86400 * $Max{Day}; +$Min{Sec} = $MinInt - 86400 * $Min{Day}; # Determine the EPOC day for this machine my $Epoc = 0; @@ -37,7 +51,6 @@ if ($^O eq 'vos') { elsif ($^O eq 'MacOS') { no integer; - $MaxDay *=2 if $^O eq 'MacOS'; # time_t unsigned ... quick hack? # MacOS time() is seconds since 1 Jan 1904, localtime # so we need to calculate an offset to apply later $Epoc = 693901; @@ -68,6 +81,17 @@ sub _timegm { } +sub _zoneadjust { + my ($day, $sec, $time) = @_; + + $sec = $sec + _timegm(localtime($time)) - $time; + if ($sec >= 86400) { $day++; $sec -= 86400; } + if ($sec < 0) { $day--; $sec += 86400; } + + ($day, $sec); +} + + sub timegm { my ($sec,$min,$hour,$mday,$month,$year) = @_; @@ -81,7 +105,7 @@ sub timegm { unless ($Options{no_range_check}) { if (abs($year) >= 0x7fff) { $year += 1900; - croak "Cannot handle date ($sec, $min, $hour, $mday, $month, $year)"; + croak "Cannot handle date ($sec, $min, $hour, $mday, $month, *$year*)"; } croak "Month '$month' out of range 0..11" if $month > 11 or $month < 0; @@ -96,17 +120,23 @@ sub timegm { } my $days = _daygm(undef, undef, undef, $mday, $month, $year); - - unless ($Options{no_range_check} or abs($days) < $MaxDay) { + my $xsec = $sec + $SecOff + 60*$min + 3600*$hour; + + unless ($Options{no_range_check} + or ($days > $Min{Day} or $days == $Min{Day} and $xsec >= $Min{Sec}) + and ($days < $Max{Day} or $days == $Max{Day} and $xsec <= $Max{Sec})) + { + warn "Day too small - $days > $Min{Day}\n" if $days < $Min{Day}; + warn "Day too big - $days > $Max{Day}\n" if $days > $Max{Day}; + warn "Sec too small - $days < $Min{Sec}\n" if $days < $Min{Sec}; + warn "Sec too big - $days > $Max{Sec}\n" if $days > $Max{Sec}; $year += 1900; croak "Cannot handle date ($sec, $min, $hour, $mday, $month, $year)"; } - $sec += $SecOff + 60*$min + 3600*$hour; - no integer; - $sec + 86400*$days; + $xsec + 86400 * $days; } @@ -117,14 +147,23 @@ sub timegm_nocheck { sub timelocal { - no integer; + # Adjust Max/Min allowed times to fit local time zone and call timegm + local ($Max{Day}, $Max{Sec}) = _zoneadjust($Max{Day}, $Max{Sec}, $MaxInt); + local ($Min{Day}, $Min{Sec}) = _zoneadjust($Min{Day}, $Min{Sec}, $MinInt); my $ref_t = &timegm; - my $loc_t = _timegm(localtime($ref_t)); + + # Calculate first guess with a one-day delta to avoid localtime overflow + my $delta = ($_[5] < 100)? 86400 : -86400; + my $loc_t = _timegm(localtime( $ref_t + $delta )) - $delta; # Is there a timezone offset from GMT or are we done my $zone_off = $ref_t - $loc_t or return $loc_t; + # This hack is needed to always pick the first matching time + # during a DST change when time would otherwise be ambiguous + $zone_off -= 3600 if ($delta > 0 && $ref_t >= 3600); + # Adjust for timezone $loc_t = $ref_t + $zone_off; @@ -135,12 +174,12 @@ sub timelocal { # Adjust for DST change $loc_t += $dst_off; + return $loc_t if $dst_off >= 0; + # for a negative offset from GMT, and if the original date # was a non-extent gap in a forward DST jump, we should # now have the wrong answer - undo the DST adjust; - return $loc_t if $zone_off <= 0; - my ($s,$m,$h) = localtime($loc_t); $loc_t -= $dst_off if $s != $_[0] || $m != $_[1] || $h != $_[2]; @@ -171,7 +210,7 @@ Time::Local - efficiently compute time from local and GMT time These routines are the inverse of built-in perl functions localtime() and gmtime(). They accept a date as a six-element array, and return the corresponding time(2) value in seconds since the system epoch -(Midnight, January 1, 1970 UTC on Unix, for example). This value can +(Midnight, January 1, 1970 GMT on Unix, for example). This value can be positive or negative, though POSIX only requires support for positive values, so dates before the system's epoch may not work on all operating systems. @@ -214,7 +253,7 @@ values, the following conventions are followed: Years greater than 999 are interpreted as being the actual year, rather than the offset from 1900. Thus, 1963 would indicate the year -Martin Luther King won the Nobel prize, not the year 2863. +Martin Luther King won the Nobel prize, not the year 3863. =item * @@ -244,6 +283,39 @@ from Dec 1901 to Jan 2038. Both timelocal() and timegm() croak if given dates outside the supported range. +=head2 Ambiguous Local Times (DST) + +Because of DST changes, there are many time zones where the same local +time occurs for two different GMT times on the same day. For example, +in the "Europe/Paris" time zone, the local time of 2001-10-28 02:30:00 +can represent either 2001-10-28 00:30:00 GMT, B<or> 2001-10-28 +01:30:00 GMT. + +When given an ambiguous local time, the timelocal() function should +always return the epoch for the I<earlier> of the two possible GMT +times. + +=head2 Non-Existent Local Times (DST) + +When a DST change causes a locale clock to skip one hour forward, +there will be an hour's worth of local times that don't exist. Again, +for the "Europe/Paris" time zone, the local clock jumped from +2001-03-25 01:59:59 to 2001-03-25 03:00:00. + +If the timelocal() function is given a non-existent local time, it +will simply return an epoch value for the time one hour later. + +=head2 Negative Epoch Values + +Negative epoch (time_t) values are not officially supported by the +POSIX standards, so this module's tests do not test them. On some +systems, they are known not to work. These include MacOS (pre-OSX) +and Win32. + +On systems which do support negative epoch values, this module should +be able to cope with dates before the start of the epoch, down the +minimum value of time_t for the system. + =head1 IMPLEMENTATION These routines are quite efficient and yet are always guaranteed to agree @@ -264,15 +336,13 @@ also be correct. The whole scheme for interpreting two-digit years can be considered a bug. -The proclivity to croak() is probably a bug. - =head1 SUPPORT -Support for this module is provided via the perl5-porters@perl.org +Support for this module is provided via the datetime@perl.org email list. See http://lists.perl.org/ for more details. -Please submit bugs using the RT system at bugs.perl.org, the perlbug -script, or as a last resort, to the perl5-porters@perl.org list. +Please submit bugs using the RT system at rt.cpan.org, or as a last +resort, to the datetime@perl.org list. =head1 AUTHOR diff --git a/gnu/usr.bin/perl/lib/Win32.pod b/gnu/usr.bin/perl/lib/Win32.pod deleted file mode 100644 index 842e484fc67..00000000000 --- a/gnu/usr.bin/perl/lib/Win32.pod +++ /dev/null @@ -1,287 +0,0 @@ -=head1 NAME - -Win32 - Interfaces to some Win32 API Functions - -=head1 DESCRIPTION - -Perl on Win32 contains several functions to access Win32 APIs. Some -are included in Perl itself (on Win32) and some are only available -after explicitly requesting the Win32 module with: - - use Win32; - -The builtin functions are marked as [CORE] and the other ones -as [EXT] in the following alphabetical listing. The C<Win32> module -is not part of the Perl source distribution; it is distributed in -the libwin32 bundle of Win32::* modules on CPAN. The module is -already preinstalled in binary distributions like ActivePerl. - -=head2 Alphabetical Listing of Win32 Functions - -=over - -=item Win32::AbortSystemShutdown(MACHINE) - -[EXT] Aborts a system shutdown (started by the -InitiateSystemShutdown function) on the specified MACHINE. - -=item Win32::BuildNumber() - -[CORE] Returns the ActivePerl build number. This function is -only available in the ActivePerl binary distribution. - -=item Win32::CopyFile(FROM, TO, OVERWRITE) - -[CORE] The Win32::CopyFile() function copies an existing file to a new -file. All file information like creation time and file attributes will -be copied to the new file. However it will B<not> copy the security -information. If the destination file already exists it will only be -overwritten when the OVERWRITE parameter is true. But even this will -not overwrite a read-only file; you have to unlink() it first -yourself. - -=item Win32::DomainName() - -[CORE] Returns the name of the Microsoft Network domain that the -owner of the current perl process is logged into. This function does -B<not> work on Windows 9x. - -=item Win32::ExpandEnvironmentStrings(STRING) - -[EXT] Takes STRING and replaces all referenced environment variable -names with their defined values. References to environment variables -take the form C<%VariableName%>. Case is ignored when looking up the -VariableName in the environment. If the variable is not found then the -original C<%VariableName%> text is retained. Has the same effect -as the following: - - $string =~ s/%([^%]*)%/$ENV{$1} || "%$1%"/eg - -=item Win32::FormatMessage(ERRORCODE) - -[CORE] Converts the supplied Win32 error number (e.g. returned by -Win32::GetLastError()) to a descriptive string. Analogous to the -perror() standard-C library function. Note that C<$^E> used -in a string context has much the same effect. - - C:\> perl -e "$^E = 26; print $^E;" - The specified disk or diskette cannot be accessed - -=item Win32::FsType() - -[CORE] Returns the name of the filesystem of the currently active -drive (like 'FAT' or 'NTFS'). In list context it returns three values: -(FSTYPE, FLAGS, MAXCOMPLEN). FSTYPE is the filesystem type as -before. FLAGS is a combination of values of the following table: - - 0x00000001 supports case-sensitive filenames - 0x00000002 preserves the case of filenames - 0x00000004 supports Unicode in filenames - 0x00000008 preserves and enforces ACLs - 0x00000010 supports file-based compression - 0x00000020 supports disk quotas - 0x00000040 supports sparse files - 0x00000080 supports reparse points - 0x00000100 supports remote storage - 0x00008000 is a compressed volume (e.g. DoubleSpace) - 0x00010000 supports object identifiers - 0x00020000 supports the Encrypted File System (EFS) - -MAXCOMPLEN is the maximum length of a filename component (the part -between two backslashes) on this file system. - -=item Win32::FreeLibrary(HANDLE) - -[EXT] Unloads a previously loaded dynamic-link library. The HANDLE is -no longer valid after this call. See L<LoadLibrary|Win32::LoadLibrary(LIBNAME)> -for information on dynamically loading a library. - -=item Win32::GetArchName() - -[EXT] Use of this function is deprecated. It is equivalent with -$ENV{PROCESSOR_ARCHITECTURE}. This might not work on Win9X. - -=item Win32::GetChipName() - -[EXT] Returns the processor type: 386, 486 or 586 for Intel processors, -21064 for the Alpha chip. - -=item Win32::GetCwd() - -[CORE] Returns the current active drive and directory. This function -does not return a UNC path, since the functionality required for such -a feature is not available under Windows 95. - -=item Win32::GetFullPathName(FILENAME) - -[CORE] GetFullPathName combines the FILENAME with the current drive -and directory name and returns a fully qualified (aka, absolute) -path name. In list context it returns two elements: (PATH, FILE) where -PATH is the complete pathname component (including trailing backslash) -and FILE is just the filename part. Note that no attempt is made to -convert 8.3 components in the supplied FILENAME to longnames or -vice-versa. Compare with Win32::GetShortPathName and -Win32::GetLongPathName. - -This function has been added for Perl 5.6. - -=item Win32::GetLastError() - -[CORE] Returns the last error value generated by a call to a Win32 API -function. Note that C<$^E> used in a numeric context amounts to the -same value. - -=item Win32::GetLongPathName(PATHNAME) - -[CORE] Returns a representation of PATHNAME composed of longname -components (if any). The result may not necessarily be longer -than PATHNAME. No attempt is made to convert PATHNAME to the -absolute path. Compare with Win32::GetShortPathName and -Win32::GetFullPathName. - -This function has been added for Perl 5.6. - -=item Win32::GetNextAvailDrive() - -[CORE] Returns a string in the form of "<d>:" where <d> is the first -available drive letter. - -=item Win32::GetOSVersion() - -[CORE] Returns the array (STRING, MAJOR, MINOR, BUILD, ID), where -the elements are, respectively: An arbitrary descriptive string, the -major version number of the operating system, the minor version -number, the build number, and a digit indicating the actual operating -system. For ID, the values are 0 for Win32s, 1 for Windows 9X and 2 -for Windows NT. In scalar context it returns just the ID. - -=item Win32::GetShortPathName(PATHNAME) - -[CORE] Returns a representation of PATHNAME composed only of -short (8.3) path components. The result may not necessarily be -shorter than PATHNAME. Compare with Win32::GetFullPathName and -Win32::GetLongPathName. - -=item Win32::GetProcAddress(INSTANCE, PROCNAME) - -[EXT] Returns the address of a function inside a loaded library. The -information about what you can do with this address has been lost in -the mist of time. Use the Win32::API module instead of this deprecated -function. - -=item Win32::GetTickCount() - -[CORE] Returns the number of milliseconds elapsed since the last -system boot. Resolution is limited to system timer ticks (about 10ms -on WinNT and 55ms on Win9X). - -=item Win32::InitiateSystemShutdown - -(MACHINE, MESSAGE, TIMEOUT, FORCECLOSE, REBOOT) - -[EXT] Shutsdown the specified MACHINE, notifying users with the -supplied MESSAGE, within the specified TIMEOUT interval. Forces -closing of all documents without prompting the user if FORCECLOSE is -true, and reboots the machine if REBOOT is true. This function works -only on WinNT. - -=item Win32::IsWinNT() - -[CORE] Returns non zero if the Win32 subsystem is Windows NT. - -=item Win32::IsWin95() - -[CORE] Returns non zero if the Win32 subsystem is Windows 95. - -=item Win32::LoadLibrary(LIBNAME) - -[EXT] Loads a dynamic link library into memory and returns its module -handle. This handle can be used with Win32::GetProcAddress and -Win32::FreeLibrary. This function is deprecated. Use the Win32::API -module instead. - -=item Win32::LoginName() - -[CORE] Returns the username of the owner of the current perl process. - -=item Win32::LookupAccountName(SYSTEM, ACCOUNT, DOMAIN, SID, SIDTYPE) - -[EXT] Looks up ACCOUNT on SYSTEM and returns the domain name the SID and -the SID type. - -=item Win32::LookupAccountSID(SYSTEM, SID, ACCOUNT, DOMAIN, SIDTYPE) - -[EXT] Looks up SID on SYSTEM and returns the account name, domain name, -and the SID type. - -=item Win32::MsgBox(MESSAGE [, FLAGS [, TITLE]]) - -[EXT] Create a dialogbox containing MESSAGE. FLAGS specifies the -required icon and buttons according to the following table: - - 0 = OK - 1 = OK and Cancel - 2 = Abort, Retry, and Ignore - 3 = Yes, No and Cancel - 4 = Yes and No - 5 = Retry and Cancel - - MB_ICONSTOP "X" in a red circle - MB_ICONQUESTION question mark in a bubble - MB_ICONEXCLAMATION exclamation mark in a yellow triangle - MB_ICONINFORMATION "i" in a bubble - -TITLE specifies an optional window title. The default is "Perl". - -The function returns the menu id of the selected push button: - - 0 Error - - 1 OK - 2 Cancel - 3 Abort - 4 Retry - 5 Ignore - 6 Yes - 7 No - -=item Win32::NodeName() - -[CORE] Returns the Microsoft Network node-name of the current machine. - -=item Win32::RegisterServer(LIBRARYNAME) - -[EXT] Loads the DLL LIBRARYNAME and calls the function DllRegisterServer. - -=item Win32::SetCwd(NEWDIRECTORY) - -[CORE] Sets the current active drive and directory. This function does not -work with UNC paths, since the functionality required to required for -such a feature is not available under Windows 95. - -=item Win32::SetLastError(ERROR) - -[CORE] Sets the value of the last error encountered to ERROR. This is -that value that will be returned by the Win32::GetLastError() -function. This functions has been added for Perl 5.6. - -=item Win32::Sleep(TIME) - -[CORE] Pauses for TIME milliseconds. The timeslices are made available -to other processes and threads. - -=item Win32::Spawn(COMMAND, ARGS, PID) - -[CORE] Spawns a new process using the supplied COMMAND, passing in -arguments in the string ARGS. The pid of the new process is stored in -PID. This function is deprecated. Please use the Win32::Process module -instead. - -=item Win32::UnregisterServer(LIBRARYNAME) - -[EXT] Loads the DLL LIBRARYNAME and calls the function -DllUnregisterServer. - -=back - -=cut diff --git a/gnu/usr.bin/perl/lib/autouse.pm b/gnu/usr.bin/perl/lib/autouse.pm index 68646a47201..f463fa3060f 100644 --- a/gnu/usr.bin/perl/lib/autouse.pm +++ b/gnu/usr.bin/perl/lib/autouse.pm @@ -3,7 +3,7 @@ package autouse; #use strict; # debugging only use 5.003_90; # ->can, for my $var -$autouse::VERSION = '1.03'; +$autouse::VERSION = '1.04'; $autouse::DEBUG ||= 0; diff --git a/gnu/usr.bin/perl/lib/base.pm b/gnu/usr.bin/perl/lib/base.pm index 04a8aa961ea..e98d0f1e61b 100644 --- a/gnu/usr.bin/perl/lib/base.pm +++ b/gnu/usr.bin/perl/lib/base.pm @@ -2,7 +2,7 @@ package base; use strict 'vars'; use vars qw($VERSION); -$VERSION = '2.04'; +$VERSION = '2.06'; # constant.pm is slow sub SUCCESS () { 1 } @@ -38,11 +38,26 @@ sub get_attr { return $Fattr->{$_[0]}; } -sub get_fields { - # Shut up a possible typo warning. - () = \%{$_[0].'::FIELDS'}; +if ($] < 5.009) { + *get_fields = sub { + # Shut up a possible typo warning. + () = \%{$_[0].'::FIELDS'}; + my $f = \%{$_[0].'::FIELDS'}; - return \%{$_[0].'::FIELDS'}; + # should be centralized in fields? perhaps + # fields::mk_FIELDS_be_OK. Peh. As long as %{ $package . '::FIELDS' } + # is used here anyway, it doesn't matter. + bless $f, 'pseudohash' if (ref($f) ne 'pseudohash'); + + return $f; + } +} +else { + *get_fields = sub { + # Shut up a possible typo warning. + () = \%{$_[0].'::FIELDS'}; + return \%{$_[0].'::FIELDS'}; + } } sub import { @@ -183,6 +198,17 @@ base classes each have inheritable fields the 'base' pragma will croak. See L<fields>, L<public> and L<protected> for a description of this feature. +=head1 DIAGNOSTICS + +=over 4 + +=item Base class package "%s" is empty. + +base.pm was unable to require the base package, because it was not +found in your path. + +=back + =head1 HISTORY This module was introduced with Perl 5.004_04. diff --git a/gnu/usr.bin/perl/lib/diagnostics.pm b/gnu/usr.bin/perl/lib/diagnostics.pm index 7445aade042..ec58bb19a91 100644 --- a/gnu/usr.bin/perl/lib/diagnostics.pm +++ b/gnu/usr.bin/perl/lib/diagnostics.pm @@ -168,7 +168,7 @@ use strict; use 5.006; use Carp; -our $VERSION = 1.12; +our $VERSION = 1.13; our $DEBUG; our $VERBOSE; our $PRETTY; @@ -314,10 +314,10 @@ my %msg; sub noop { return $_[0] } # spensive for a noop sub bold { my $str =$_[0]; $str =~ s/(.)/$1\b$1/g; return $str; } sub italic { my $str = $_[0]; $str =~ s/(.)/_\b$1/g; return $str; } - s/[BC]<(.*?)>/bold($1)/ges; + s/C<<< (.*?) >>>|C<< (.*?) >>|[BC]<(.*?)>/bold($+)/ges; s/[LIF]<(.*?)>/italic($1)/ges; } else { - s/[BC]<(.*?)>/$1/gs; + s/C<<< (.*?) >>>|C<< (.*?) >>|[BC]<(.*?)>/$+/gs; s/[LIF]<(.*?)>/$1/gs; } unless (/^=/) { diff --git a/gnu/usr.bin/perl/lib/dotsh.pl b/gnu/usr.bin/perl/lib/dotsh.pl index 5be2413ae62..810ebc4d605 100644 --- a/gnu/usr.bin/perl/lib/dotsh.pl +++ b/gnu/usr.bin/perl/lib/dotsh.pl @@ -27,9 +27,9 @@ # dependent upon. These variables MUST be defined using shell syntax. # # Example: -# &dotsh ('/tmp/foo', 'arg1'); -# &dotsh ('/tmp/foo'); -# &dotsh ('/tmp/foo arg1 ... argN'); +# &dotsh ('/foo/bar', 'arg1'); +# &dotsh ('/foo/bar'); +# &dotsh ('/foo/bar arg1 ... argN'); # sub dotsh { local(@sh) = @_; @@ -54,19 +54,17 @@ sub dotsh { } } if (length($vars) > 0) { - system "$shell \"$vars;. $command $args; set > /tmp/_sh_env$$\""; + open (_SH_ENV, "$shell \"$vars && . $command $args && set \" |") || die; } else { - system "$shell \". $command $args; set > /tmp/_sh_env$$\""; + open (_SH_ENV, "$shell \". $command $args && set \" |") || die; } - open (_SH_ENV, "/tmp/_sh_env$$") || die "Could not open /tmp/_sh_env$$!\n"; while (<_SH_ENV>) { chop; m/^([^=]*)=(.*)/s; $ENV{$1} = $2; } close (_SH_ENV); - system "rm -f /tmp/_sh_env$$"; foreach $key (keys(%ENV)) { $tmp .= "\$$key = \$ENV{'$key'};" if $key =~ /^[A-Za-z]\w*$/; diff --git a/gnu/usr.bin/perl/lib/perl5db.pl b/gnu/usr.bin/perl/lib/perl5db.pl index 3674d0372c4..37642e7a5b6 100644 --- a/gnu/usr.bin/perl/lib/perl5db.pl +++ b/gnu/usr.bin/perl/lib/perl5db.pl @@ -1,3 +1,4 @@ + =head1 NAME C<perl5db.pl> - the perl debugger @@ -189,7 +190,7 @@ that will be executed (in the debugger's context) after the debugger has initialized itself. Next, it checks the C<PERLDB_OPTS> environment variable and treats its -contents as the argument of a debugger <C<O> command. +contents as the argument of a debugger <C<o> command. =head2 STARTUP-ONLY OPTIONS @@ -492,9 +493,9 @@ package DB; use IO::Handle; # Debugger for Perl 5.00x; perl5db.pl patch level: -$VERSION = 1.23; +$VERSION = 1.27; -$header = "perl5db.pl version $VERSION"; +$header = "perl5db.pl version $VERSION"; =head1 DEBUGGER ROUTINES @@ -596,27 +597,27 @@ context, so we can use C<my> freely. sub eval { # 'my' would make it visible from user code - # but so does local! --tchrist + # but so does local! --tchrist # Remember: this localizes @DB::res, not @main::res. local @res; { - # Try to keep the user code from messing with us. Save these so that - # even if the eval'ed code changes them, we can put them back again. - # Needed because the user could refer directly to the debugger's + + # Try to keep the user code from messing with us. Save these so that + # even if the eval'ed code changes them, we can put them back again. + # Needed because the user could refer directly to the debugger's # package globals (and any 'my' variables in this containing scope) # inside the eval(), and we want to try to stay safe. - local $otrace = $trace; + local $otrace = $trace; local $osingle = $single; local $od = $^D; # Untaint the incoming eval() argument. { ($evalarg) = $evalarg =~ /(.*)/s; } - # $usercontext built in DB::DB near the comment + # $usercontext built in DB::DB near the comment # "set up the context for DB::eval ..." # Evaluate and save any results. - @res = - eval "$usercontext $evalarg;\n"; # '\n' for nice recursive debug + @res = eval "$usercontext $evalarg;\n"; # '\n' for nice recursive debug # Restore those old values. $trace = $otrace; @@ -630,7 +631,7 @@ sub eval { # Since we're only saving $@, we only have to localize the array element # that it will be stored in. - local $saved[0]; # Preserve the old value of $@ + local $saved[0]; # Preserve the old value of $@ eval { &DB::save }; # Now see whether we need to report an error back to the user. @@ -642,13 +643,13 @@ sub eval { # Display as required by the caller. $onetimeDump and $onetimedumpDepth # are package globals. elsif ($onetimeDump) { - if ($onetimeDump eq 'dump') { + if ( $onetimeDump eq 'dump' ) { local $option{dumpDepth} = $onetimedumpDepth if defined $onetimedumpDepth; - dumpit($OUT, \@res); + dumpit( $OUT, \@res ); } - elsif ($onetimeDump eq 'methods') { - methods($res[0]); + elsif ( $onetimeDump eq 'methods' ) { + methods( $res[0] ); } } ## end elsif ($onetimeDump) @res; @@ -657,21 +658,21 @@ sub eval { ############################################## End lexical danger zone # After this point it is safe to introduce lexicals. -# The code being debugged will be executing in its own context, and +# The code being debugged will be executing in its own context, and # can't see the inside of the debugger. # -# However, one should not overdo it: leave as much control from outside as +# However, one should not overdo it: leave as much control from outside as # possible. If you make something a lexical, it's not going to be addressable # from outside the debugger even if you know its name. # This file is automatically included if you do perl -d. # It's probably not useful to include this yourself. # -# Before venturing further into these twisty passages, it is +# Before venturing further into these twisty passages, it is # wise to read the perldebguts man page or risk the ire of dragons. # # (It should be noted that perldebguts will tell you a lot about -# the uderlying mechanics of how the debugger interfaces into the +# the underlying mechanics of how the debugger interfaces into the # Perl interpreter, but not a lot about the debugger itself. The new # comments in this code try to address this problem.) @@ -680,6 +681,9 @@ sub eval { # true if $deep is not defined. # # $Log: perl5db.pl,v $ +# Revision 1.8 2004/04/07 21:33:04 millert +# merge local changes into perl-5.8.3 +# # Revision 1.7 2003/12/03 03:02:36 millert # Resolve conflicts for perl 5.8.2, remove old files, and add OpenBSD-specific scaffolding # @@ -711,7 +715,7 @@ sub eval { # Changes: 0.95 # + `v' command shows versions. # -# Changes: 0.96 +# Changes: 0.96 # + `v' command shows version of readline. # primitive completion works (dynamic variables, subs for `b' and `l', # options). Can `p %var' @@ -728,7 +732,7 @@ sub eval { # + `b postpone subr' implemented. # + now only `q' exits debugger (overwritable on $inhibit_exit). # + When restarting debugger breakpoints/actions persist. -# + Buglet: When restarting debugger only one breakpoint/action per +# + Buglet: When restarting debugger only one breakpoint/action per # autoloaded function persists. # # Changes: 0.97: NonStop will not stop in at_exit(). @@ -761,12 +765,12 @@ sub eval { # They are not used in print_help if they will hurt. Strip pod # if we're paging to less. # + Fixed mis-formatting of help messages caused by ornaments -# to restore Larry's original formatting. -# + Fixed many other formatting errors. The code is still suboptimal, +# to restore Larry's original formatting. +# + Fixed many other formatting errors. The code is still suboptimal, # and needs a lot of work at restructuring. It's also misindented # in many places. # + Fixed bug where trying to look at an option like your pager -# shows "1". +# shows "1". # + Fixed some $? processing. Note: if you use csh or tcsh, you will # lose. You should consider shell escapes not using their shell, # or else not caring about detailed status. This should really be @@ -809,7 +813,7 @@ sub eval { # unconditionally, or if started as a kid of another debugger session; # + New `O'ption CreateTTY # I<CreateTTY> bits control attempts to create a new TTY on events: -# 1: on fork() +# 1: on fork() # 2: debugger is started inside debugger # 4: on startup # + Code to auto-create a new TTY window on OS/2 (currently one @@ -837,11 +841,11 @@ sub eval { # breakable_line_in_filename($name, $from [, $to]) # # First breakable line in the # # range $from .. $to. $to defaults -# # to $from, and may be less than +# # to $from, and may be less than # # $to # breakable_line($from [, $to]) # Same for the current file # break_on_filename_line($name, $lineno [, $cond]) -# # Set breakpoint,$cond defaults to +# # Set breakpoint,$cond defaults to # # 1 # break_on_filename_line_range($name, $from, $to [, $cond]) # # As above, on the first @@ -865,7 +869,7 @@ sub eval { # + Fixed warnings generated by "O" (Show debugger options) # + Fixed warnings generated by "p 42" (Print expression) # Changes: 1.13: Jun 19, 2001 Scott.L.Miller@compaq.com -# + Added windowSize option +# + Added windowSize option # Changes: 1.14: Oct 9, 2001 multiple # + Clean up after itself on VMS (Charles Lane in 12385) # + Adding "@ file" syntax (Peter Scott in 12014) @@ -880,12 +884,12 @@ sub eval { # + $onetimeDump improvements # Changes: 1.17: Feb 20, 2002 Richard Foley <richard.foley@rfi.net> # Moved some code to cmd_[.]()'s for clarity and ease of handling, -# rationalised the following commands and added cmd_wrapper() to -# enable switching between old and frighteningly consistent new +# rationalised the following commands and added cmd_wrapper() to +# enable switching between old and frighteningly consistent new # behaviours for diehards: 'o CommandSet=pre580' (sigh...) # a(add), A(del) # action expr (added del by line) # + b(add), B(del) # break [line] (was b,D) -# + w(add), W(del) # watch expr (was W,W) +# + w(add), W(del) # watch expr (was W,W) # # added del by expr # + h(summary), h h(long) # help (hh) (was h h,h) # + m(methods), M(modules) # ... (was m,v) @@ -905,7 +909,22 @@ sub eval { # + Flush stdout/stderr before the debugger prompt is printed. # Changes: 1.23: Dec 21, 2003 Dominique Quatravaux # + Fix a side-effect of bug #24674 in the perl debugger ("odd taint bug") - +# Changes: 1.24: Mar 03, 2004 Richard Foley <richard.foley@rfi.net> +# + Added command to save all debugger commands for sourcing later. +# + Added command to display parent inheritence tree of given class. +# + Fixed minor newline in history bug. +# Changes: 1.25: Apr 17, 2004 Richard Foley <richard.foley@rfi.net> +# + Fixed option bug (setting invalid options + not recognising valid short forms) +# Changes: 1.26: Apr 22, 2004 Richard Foley <richard.foley@rfi.net> +# + unfork the 5.8.x and 5.9.x debuggers. +# + whitespace and assertions call cleanup across versions +# + H * deletes (resets) history +# + i now handles Class + blessed objects +# Changes: 1.27: May 09, 2004 Richard Foley <richard.foley@rfi.net> +# + updated pod page references - clunky. +# + removed windowid restriction for forking into an xterm. +# + more whitespace again. +# + wrapped restart and enabled rerun [-n] (go back n steps) command. #################################################################### =head1 DEBUGGER INITIALIZATION @@ -932,6 +951,15 @@ BEGIN { $^W = 0; } # Switch compilation warnings off until another BEGIN. +# test if assertions are supported and actived: +BEGIN { + $ini_assertion = eval "sub asserting_test : assertion {1}; 1"; + + # $ini_assertion = undef => assertions unsupported, + # " = 1 => assertions supported + # print "\$ini_assertion=$ini_assertion\n"; +} + local ($^W) = 0; # Switch run-time warnings off during init. # This would probably be better done with "use vars", but that wasn't around @@ -939,7 +967,7 @@ local ($^W) = 0; # Switch run-time warnings off during init. # the principle of not fiddling with something that was working, this was # left alone. warn( # Do not ;-) - # These variables control the execution of 'dumpvar.pl'. + # These variables control the execution of 'dumpvar.pl'. $dumpvar::hashDepth, $dumpvar::arrayDepth, $dumpvar::dumpDBFiles, @@ -975,8 +1003,8 @@ warn( # Do not ;-) # We set these variables to safe values. We don't want to blindly turn # off warnings, because other packages may still want them. -$trace = $signal = $single = 0; # Uninitialized warning suppression - # (local $^W cannot help - other packages!). +$trace = $signal = $single = 0; # Uninitialized warning suppression + # (local $^W cannot help - other packages!). # Default to not exiting when program finishes; print the return # value when the 'r' command is used to return from a subroutine. @@ -996,20 +1024,23 @@ are to be accepted. =cut @options = qw( - CommandSet - hashDepth arrayDepth dumpDepth - DumpDBFiles DumpPackages DumpReused - compactDump veryCompact quote - HighBit undefPrint globPrint - PrintRet UsageOnly frame - AutoTrace TTY noTTY - ReadLine NonStop LineInfo - maxTraceLen recallCommand ShellBang - pager tkRunning ornaments - signalLevel warnLevel dieLevel - inhibit_exit ImmediateStop bareStringify - CreateTTY RemotePort windowSize - ); + CommandSet + hashDepth arrayDepth dumpDepth + DumpDBFiles DumpPackages DumpReused + compactDump veryCompact quote + HighBit undefPrint globPrint + PrintRet UsageOnly frame + AutoTrace TTY noTTY + ReadLine NonStop LineInfo + maxTraceLen recallCommand ShellBang + pager tkRunning ornaments + signalLevel warnLevel dieLevel + inhibit_exit ImmediateStop bareStringify + CreateTTY RemotePort windowSize + DollarCaretP OnlyAssertions WarnAssertions +); + +@RememberOnROptions = qw(DollarCaretP OnlyAssertions); =pod @@ -1038,7 +1069,8 @@ state. ImmediateStop => \$ImmediateStop, RemotePort => \$remoteport, windowSize => \$window, - ); + WarnAssertions => \$warnassertions, +); =pod @@ -1065,7 +1097,9 @@ option. tkRunning => \&tkRunning, ornaments => \&ornaments, RemotePort => \&RemotePort, - ); + DollarCaretP => \&DollarCaretP, + OnlyAssertions=> \&OnlyAssertions, +); =pod @@ -1083,7 +1117,7 @@ option is used. compactDump => 'dumpvar.pl', veryCompact => 'dumpvar.pl', quote => 'dumpvar.pl', - ); +); =pod @@ -1147,16 +1181,18 @@ then call the C<pager()> function to save the pager name. # This routine makes sure $pager is set up so that '|' can use it. pager( + # If PAGER is defined in the environment, use it. - defined $ENV{PAGER} - ? $ENV{PAGER} + defined $ENV{PAGER} + ? $ENV{PAGER} # If not, see if Config.pm defines it. - : eval { require Config } && defined $Config::Config{pager} - ? $Config::Config{pager} + : eval { require Config } + && defined $Config::Config{pager} + ? $Config::Config{pager} # If not, fall back to 'more'. - : 'more' + : 'more' ) unless defined $pager; @@ -1210,31 +1246,33 @@ yet so the parent will give them one later via C<resetterm()>. =cut -# Save the current contents of the environment; we're about to +# Save the current contents of the environment; we're about to # much with it. We'll need this if we have to restart. $ini_pids = $ENV{PERLDB_PIDS}; -if (defined $ENV{PERLDB_PIDS}) { +if ( defined $ENV{PERLDB_PIDS} ) { + # We're a child. Make us a label out of the current PID structure - # recorded in PERLDB_PIDS plus our (new) PID. Mark us as not having + # recorded in PERLDB_PIDS plus our (new) PID. Mark us as not having # a term yet so the parent will give us one later via resetterm(). $pids = "[$ENV{PERLDB_PIDS}]"; $ENV{PERLDB_PIDS} .= "->$$"; $term_pid = -1; } ## end if (defined $ENV{PERLDB_PIDS... else { - # We're the parent PID. Initialize PERLDB_PID in case we end up with a + + # We're the parent PID. Initialize PERLDB_PID in case we end up with a # child debugger, and mark us as the parent, so we'll know to set up # more TTY's is we have to. $ENV{PERLDB_PIDS} = "$$"; - $pids = "{pid=$$}"; - $term_pid = $$; + $pids = "{pid=$$}"; + $term_pid = $$; } $pidprompt = ''; # Sets up $emacs as a synonym for $slave_editor. -*emacs = $slave_editor if $slave_editor; # May be used in afterinit()... +*emacs = $slave_editor if $slave_editor; # May be used in afterinit()... =head2 READING THE RC FILE @@ -1245,7 +1283,8 @@ running interactively, this is C<.perldb>; if not, it's C<perldb.ini>. # As noted, this test really doesn't check accurately that the debugger # is running at a terminal or not. -if (-e "/dev/tty") { # this is the wrong metric! + +if ( -e "/dev/tty" ) { # this is the wrong metric! $rcfile = ".perldb"; } else { @@ -1273,7 +1312,7 @@ sub safe_do { local $SIG{__WARN__}; local $SIG{__DIE__}; - unless (is_safe_file($file)) { + unless ( is_safe_file($file) ) { CORE::warn <<EO_GRIPE; perldb: Must not source insecure rcfile $file. You or the superuser must be the owner, and it must not @@ -1292,12 +1331,12 @@ EO_GRIPE # one but owner may write to it. This function is of limited use # when called on a path instead of upon a handle, because there are # no guarantees that filename (by dirent) whose file (by ino) is -# eventually accessed is the same as the one tested. +# eventually accessed is the same as the one tested. # Assumes that the file's existence is not in doubt. sub is_safe_file { my $path = shift; stat($path) || return; # mysteriously vaporized - my ($dev, $ino, $mode, $nlink, $uid, $gid) = stat(_); + my ( $dev, $ino, $mode, $nlink, $uid, $gid ) = stat(_); return 0 if $uid != 0 && $uid != $<; return 0 if $mode & 022; @@ -1305,22 +1344,24 @@ sub is_safe_file { } ## end sub is_safe_file # If the rcfile (whichever one we decided was the right one to read) -# exists, we safely do it. -if (-f $rcfile) { +# exists, we safely do it. +if ( -f $rcfile ) { safe_do("./$rcfile"); } + # If there isn't one here, try the user's home directory. -elsif (defined $ENV{HOME} && -f "$ENV{HOME}/$rcfile") { +elsif ( defined $ENV{HOME} && -f "$ENV{HOME}/$rcfile" ) { safe_do("$ENV{HOME}/$rcfile"); } + # Else try the login directory. -elsif (defined $ENV{LOGDIR} && -f "$ENV{LOGDIR}/$rcfile") { +elsif ( defined $ENV{LOGDIR} && -f "$ENV{LOGDIR}/$rcfile" ) { safe_do("$ENV{LOGDIR}/$rcfile"); } # If the PERLDB_OPTS variable has options in it, parse those out next. -if (defined $ENV{PERLDB_OPTS}) { - parse_options($ENV{PERLDB_OPTS}); +if ( defined $ENV{PERLDB_OPTS} ) { + parse_options( $ENV{PERLDB_OPTS} ); } =pod @@ -1334,27 +1375,29 @@ the debugger only handles X Windows and OS/2. # Set up the get_fork_TTY subroutine to be aliased to the proper routine. # Works if you're running an xterm or xterm-like window, or you're on # OS/2. This may need some expansion: for instance, this doesn't handle -# OS X Terminal windows. - -if (not defined &get_fork_TTY # no routine exists, - and defined $ENV{TERM} # and we know what kind - # of terminal this is, - and $ENV{TERM} eq 'xterm' # and it's an xterm, - and defined $ENV{WINDOWID} # and we know what - # window this is, - and defined $ENV{DISPLAY}) # and what display it's - # on, +# OS X Terminal windows. + +if ( + not defined &get_fork_TTY # no routine exists, + and defined $ENV{TERM} # and we know what kind + # of terminal this is, + and $ENV{TERM} eq 'xterm' # and it's an xterm, +# and defined $ENV{WINDOWID} # and we know what window this is, <- wrong metric + and defined $ENV{DISPLAY} # and what display it's on, + ) { - *get_fork_TTY = \&xterm_get_fork_TTY; # use the xterm version + *get_fork_TTY = \&xterm_get_fork_TTY; # use the xterm version } ## end if (not defined &get_fork_TTY... -elsif ($^O eq 'os2') { # If this is OS/2, - *get_fork_TTY = \&os2_get_fork_TTY; # use the OS/2 version +elsif ( $^O eq 'os2' ) { # If this is OS/2, + *get_fork_TTY = \&os2_get_fork_TTY; # use the OS/2 version } + # untaint $^O, which may have been tainted by the last statement. # see bug [perl #24674] -$^O =~ m/^(.*)\z/; $^O = $1; +$^O =~ m/^(.*)\z/; +$^O = $1; -# "Here begin the unreadable code. It needs fixing." +# Here begin the unreadable code. It needs fixing. =head2 RESTART PROCESSING @@ -1382,9 +1425,11 @@ back into the appropriate spots in the debugger. =cut -if (exists $ENV{PERLDB_RESTART}) { +if ( exists $ENV{PERLDB_RESTART} ) { + # We're restarting, so we don't need the flag that says to restart anymore. delete $ENV{PERLDB_RESTART}; + # $restart = 1; @hist = get_list('PERLDB_HIST'); %break_on_load = get_list("PERLDB_ON_LOAD"); @@ -1392,28 +1437,28 @@ if (exists $ENV{PERLDB_RESTART}) { # restore breakpoints/actions my @had_breakpoints = get_list("PERLDB_VISITED"); - for (0 .. $#had_breakpoints) { + for ( 0 .. $#had_breakpoints ) { my %pf = get_list("PERLDB_FILE_$_"); $postponed_file{ $had_breakpoints[$_] } = \%pf if %pf; } # restore options my %opt = get_list("PERLDB_OPT"); - my ($opt, $val); - while (($opt, $val) = each %opt) { + my ( $opt, $val ); + while ( ( $opt, $val ) = each %opt ) { $val =~ s/[\\\']/\\$1/g; parse_options("$opt'$val'"); } # restore original @INC - @INC = get_list("PERLDB_INC"); - @ini_INC = @INC; + @INC = get_list("PERLDB_INC"); + @ini_INC = @INC; # return pre/postprompt actions and typeahead buffer - $pretype = [get_list("PERLDB_PRETYPE")]; - $pre = [get_list("PERLDB_PRE")]; - $post = [get_list("PERLDB_POST")]; - @typeahead = get_list("PERLDB_TYPEAHEAD", @typeahead); + $pretype = [ get_list("PERLDB_PRETYPE") ]; + $pre = [ get_list("PERLDB_PRE") ]; + $post = [ get_list("PERLDB_POST") ]; + @typeahead = get_list( "PERLDB_TYPEAHEAD", @typeahead ); } ## end if (exists $ENV{PERLDB_RESTART... =head2 SETTING UP THE TERMINAL @@ -1438,11 +1483,13 @@ set C<$rl> to 0 (XXX ostensibly to do straight reads). =cut else { + # Is Perl being run from a slave editor or graphical debugger? # If so, don't use readline, and set $slave_editor = 1. $slave_editor = - ((defined $main::ARGV[0]) and ($main::ARGV[0] eq '-emacs')); - $rl = 0, shift (@main::ARGV) if $slave_editor; + ( ( defined $main::ARGV[0] ) and ( $main::ARGV[0] eq '-emacs' ) ); + $rl = 0, shift(@main::ARGV) if $slave_editor; + #require Term::ReadLine; =pod @@ -1455,8 +1502,8 @@ We then determine what the console should be on various systems: =cut + if ( $^O eq 'cygwin' ) { - if ($^O eq 'cygwin') { # /dev/tty is binary. use stdin for textmode undef $console; } @@ -1465,7 +1512,7 @@ We then determine what the console should be on various systems: =cut - elsif (-e "/dev/tty") { + elsif ( -e "/dev/tty" ) { $console = "/dev/tty"; } @@ -1473,7 +1520,7 @@ We then determine what the console should be on various systems: =cut - elsif ($^O eq 'dos' or -e "con" or $^O eq 'MSWin32') { + elsif ( $^O eq 'dos' or -e "con" or $^O eq 'MSWin32' ) { $console = "con"; } @@ -1482,8 +1529,8 @@ Console> if not. (Note that Mac OS X returns 'darwin', not 'MacOS'. Also note th =cut - elsif ($^O eq 'MacOS') { - if ($MacPerl::Version !~ /MPW/) { + elsif ( $^O eq 'MacOS' ) { + if ( $MacPerl::Version !~ /MPW/ ) { $console = "Dev:Console:Perl Debug"; # Separate window for application } @@ -1497,6 +1544,7 @@ Console> if not. (Note that Mac OS X returns 'darwin', not 'MacOS'. Also note th =cut else { + # everything else is ... $console = "sys\$command"; } @@ -1511,24 +1559,27 @@ with a slave editor, Epoc). =cut - if (($^O eq 'MSWin32') and ($slave_editor or defined $ENV{EMACS})) { + if ( ( $^O eq 'MSWin32' ) and ( $slave_editor or defined $ENV{EMACS} ) ) { + # /dev/tty is binary. use stdin for textmode $console = undef; } - if ($^O eq 'NetWare') { + if ( $^O eq 'NetWare' ) { + # /dev/tty is binary. use stdin for textmode $console = undef; } # In OS/2, we need to use STDIN to get textmode too, even though # it pretty much looks like Unix otherwise. - if (defined $ENV{OS2_SHELL} and ($slave_editor or $ENV{WINDOWID})) + if ( defined $ENV{OS2_SHELL} and ( $slave_editor or $ENV{WINDOWID} ) ) { # In OS/2 $console = undef; } + # EPOC also falls into the 'got to use STDIN' camp. - if ($^O eq 'epoc') { + if ( $^O eq 'epoc' ) { $console = undef; } @@ -1552,7 +1603,9 @@ and then tries to connect the input and output filehandles to it. =cut # Handle socket stuff. - if (defined $remoteport) { + + if ( defined $remoteport ) { + # If RemotePort was defined in the options, connect input and output # to the socket. require IO::Socket; @@ -1560,8 +1613,8 @@ and then tries to connect the input and output filehandles to it. Timeout => '10', PeerAddr => $remoteport, Proto => 'tcp', - ); - if (!$OUT) { die "Unable to connect to remote host: $remoteport\n"; } + ); + if ( !$OUT ) { die "Unable to connect to remote host: $remoteport\n"; } $IN = $OUT; } ## end if (defined $remoteport) @@ -1577,38 +1630,41 @@ and if we can. # Non-socket. else { + # Two debuggers running (probably a system or a backtick that invokes # the debugger itself under the running one). create a new IN and OUT - # filehandle, and do the necessary mojo to create a new tty if we + # filehandle, and do the necessary mojo to create a new tty if we # know how, and we can. create_IN_OUT(4) if $CreateTTY & 4; if ($console) { + # If we have a console, check to see if there are separate ins and # outs to open. (They are assumed identiical if not.) - my ($i, $o) = split /,/, $console; + + my ( $i, $o ) = split /,/, $console; $o = $i unless defined $o; # read/write on in, or just read, or read on STDIN. - open(IN, "+<$i") || - open(IN, "<$i") || - open(IN, "<&STDIN"); + open( IN, "+<$i" ) + || open( IN, "<$i" ) + || open( IN, "<&STDIN" ); # read/write/create/clobber out, or write/create/clobber out, # or merge with STDERR, or merge with STDOUT. - open(OUT, "+>$o") || - open(OUT, ">$o") || - open(OUT, ">&STDERR") || - open(OUT, ">&STDOUT"); # so we don't dongle stdout + open( OUT, "+>$o" ) + || open( OUT, ">$o" ) + || open( OUT, ">&STDERR" ) + || open( OUT, ">&STDOUT" ); # so we don't dongle stdout } ## end if ($console) - elsif (not defined $console) { - # No console. Open STDIN. - open(IN, "<&STDIN"); + elsif ( not defined $console ) { - # merge with STDERR, or with STDOUT. - open(OUT, ">&STDERR") || - open(OUT, ">&STDOUT"); # so we don't dongle stdout + # No console. Open STDIN. + open( IN, "<&STDIN" ); + # merge with STDERR, or with STDOUT. + open( OUT, ">&STDERR" ) + || open( OUT, ">&STDOUT" ); # so we don't dongle stdout $console = 'STDIN/OUT'; } ## end elsif (not defined $console) @@ -1617,14 +1673,14 @@ and if we can. $IN = \*IN, $OUT = \*OUT if $console or not defined $console; } ## end elsif (from if(defined $remoteport)) - # Unbuffer DB::OUT. We need to see responses right away. + # Unbuffer DB::OUT. We need to see responses right away. my $previous = select($OUT); - $| = 1; # for DB::OUT + $| = 1; # for DB::OUT select($previous); # Line info goes to debugger output unless pointed elsewhere. # Pointing elsewhere makes it possible for slave editors to - # keep track of file and position. We have both a filehandle + # keep track of file and position. We have both a filehandle # and a I/O description to keep track of. $LINEINFO = $OUT unless defined $LINEINFO; $lineinfo = $console unless defined $lineinfo; @@ -1641,7 +1697,7 @@ and then call the C<afterinit()> subroutine if there is one. unless ($runnonstop) { local $\ = ''; local $, = ''; - if ($term_pid eq '-1') { + if ( $term_pid eq '-1' ) { print $OUT "\nDaughter DB session started...\n"; } else { @@ -1649,7 +1705,7 @@ and then call the C<afterinit()> subroutine if there is one. print $OUT ( "Editor support ", $slave_editor ? "enabled" : "available", ".\n" - ); + ); print $OUT "\nEnter h or `h h' for help, or `$doccmd perldebug' for more help.\n\n"; } ## end else [ if ($term_pid eq '-1') @@ -1662,15 +1718,16 @@ and then call the C<afterinit()> subroutine if there is one. for (@args) { # Make sure backslashes before single quotes are stripped out, and # keep args unless they are numeric (XXX why?) - s/\'/\\\'/g; - s/(.*)/'$1'/ unless /^-?[\d.]+$/; + # s/\'/\\\'/g; # removed while not justified understandably + # s/(.*)/'$1'/ unless /^-?[\d.]+$/; # ditto } -# If there was an afterinit() sub defined, call it. It will get +# If there was an afterinit() sub defined, call it. It will get # executed in our scope, so it can fiddle with debugger globals. -if (defined &afterinit) { # May be defined in $rcfile +if ( defined &afterinit ) { # May be defined in $rcfile &afterinit(); } + # Inform us about "Stack dump during die enabled ..." in dieLevel(). $I_m_init = 1; @@ -1697,27 +1754,30 @@ sub DB { # Check for whether we should be running continuously or not. # _After_ the perl program is compiled, $single is set to 1: - if ($single and not $second_time++) { + if ( $single and not $second_time++ ) { + # Options say run non-stop. Run until we get an interrupt. if ($runnonstop) { # Disable until signal - # If there's any call stack in place, turn off single - # stepping into subs throughout the stack. - for ($i = 0 ; $i <= $stack_depth ;) { - $stack[$i++] &= ~1; + # If there's any call stack in place, turn off single + # stepping into subs throughout the stack. + for ( $i = 0 ; $i <= $stack_depth ; ) { + $stack[ $i++ ] &= ~1; } + # And we are now no longer in single-step mode. $single = 0; # If we simply returned at this point, we wouldn't get # the trace info. Fall on through. - # return; + # return; } ## end if ($runnonstop) elsif ($ImmediateStop) { - # We are supposed to stop here; XXX probably a break. - $ImmediateStop = 0; # We've processed it; turn it off - $signal = 1; # Simulate an interrupt to force - # us into the command loop + + # We are supposed to stop here; XXX probably a break. + $ImmediateStop = 0; # We've processed it; turn it off + $signal = 1; # Simulate an interrupt to force + # us into the command loop } } ## end if ($single and not $second_time... @@ -1731,17 +1791,16 @@ sub DB { # Since DB::DB gets called after every line, we can use caller() to # figure out where we last were executing. Sneaky, eh? This works because - # caller is returning all the extra information when called from the + # caller is returning all the extra information when called from the # debugger. - local ($package, $filename, $line) = caller; + local ( $package, $filename, $line ) = caller; local $filename_ini = $filename; # set up the context for DB::eval, so it can properly execute # code on behalf of the user. We add the package in so that the # code is eval'ed in the proper package (not in the debugger!). - local $usercontext = - '($@, $!, $^E, $,, $/, $\, $^W) = @saved;' . - "package $package;"; + local $usercontext = + '($@, $!, $^E, $,, $/, $\, $^W) = @saved;' . "package $package;"; # Create an alias to the active file magical array to simplify # the code here. @@ -1749,7 +1808,7 @@ sub DB { # we need to check for pseudofiles on Mac OS (these are files # not attached to a filename, but instead stored in Dev:Pseudo) - if ($^O eq 'MacOS' && $#dbline < 0) { + if ( $^O eq 'MacOS' && $#dbline < 0 ) { $filename_ini = $filename = 'Dev:Pseudo'; *dbline = $main::{ '_<' . $filename }; } @@ -1758,11 +1817,15 @@ sub DB { local $max = $#dbline; # if we have something here, see if we should break. - if ($dbline{$line} && (($stop, $action) = split (/\0/, $dbline{$line}))) { + if ( $dbline{$line} + && ( ( $stop, $action ) = split( /\0/, $dbline{$line} ) ) ) + { + # Stop if the stop criterion says to just stop. - if ($stop eq '1') { + if ( $stop eq '1' ) { $signal |= 1; } + # It's a conditional stop; eval it in the user's context and # see if we should stop. If so, remove the one-time sigil. elsif ($stop) { @@ -1777,25 +1840,25 @@ sub DB { my $was_signal = $signal; # If we have any watch expressions ... - if ($trace & 2) { - for (my $n = 0 ; $n <= $#to_watch ; $n++) { + if ( $trace & 2 ) { + for ( my $n = 0 ; $n <= $#to_watch ; $n++ ) { $evalarg = $to_watch[$n]; local $onetimeDump; # Tell DB::eval() to not output results # Fix context DB::eval() wants to return an array, but # we need a scalar here. - my ($val) = - join ( "', '", &eval ); - $val = ((defined $val) ? "'$val'" : 'undef'); + my ($val) = join( "', '", &eval ); + $val = ( ( defined $val ) ? "'$val'" : 'undef' ); # Did it change? - if ($val ne $old_watch[$n]) { + if ( $val ne $old_watch[$n] ) { + # Yep! Show the difference, and fake an interrupt. $signal = 1; print $OUT <<EOP; Watchpoint $n:\t$to_watch[$n] changed: - old value:\t$old_watch[$n] - new value:\t$val + old value:\t$old_watch[$n] + new value:\t$val EOP $old_watch[$n] = $val; } ## end if ($val ne $old_watch... @@ -1833,19 +1896,18 @@ check for C<watchfunction()>. This can be done with =cut - # If there's a user-defined DB::watchfunction, call it with the + # If there's a user-defined DB::watchfunction, call it with the # current package, filename, and line. The function executes in # the DB:: package. - if ($trace & 4) { # User-installed watch + if ( $trace & 4 ) { # User-installed watch return - if watchfunction($package, $filename, $line) + if watchfunction( $package, $filename, $line ) and not $single and not $was_signal - and not($trace & ~4); + and not( $trace & ~4 ); } ## end if ($trace & 4) - - # Pick up any alteration to $signal in the watchfunction, and + # Pick up any alteration to $signal in the watchfunction, and # turn off the signal now. $was_signal = $signal; $signal = 0; @@ -1861,9 +1923,11 @@ won't cause trouble, and we say that the program is over. # Check to see if we should grab control ($single true, # trace set appropriately, or we got a signal). - if ($single || ($trace & 1) || $was_signal) { + if ( $single || ( $trace & 1 ) || $was_signal ) { + # Yes, grab control. if ($slave_editor) { + # Tell the editor to update its position. $position = "\032\032$filename:$line:0\n"; print_lineinfo($position); @@ -1877,7 +1941,8 @@ to enter commands and have a valid context to be in. =cut - elsif ($package eq 'DB::fake') { + elsif ( $package eq 'DB::fake' ) { + # Fallen off the end already. $term || &setterm; print_help(<<EOP); @@ -1889,8 +1954,8 @@ EOP # Set the DB::eval context appropriately. $package = 'main'; $usercontext = - '($@, $!, $^E, $,, $/, $\, $^W) = @saved;' . - "package $package;"; # this won't let them modify, alas + '($@, $!, $^E, $,, $/, $\, $^W) = @saved;' + . "package $package;"; # this won't let them modify, alas } ## end elsif ($package eq 'DB::fake') =pod @@ -1902,18 +1967,19 @@ number information, and print that. =cut else { + # Still somewhere in the midst of execution. Set up the # debugger prompt. $sub =~ s/\'/::/; # Swap Perl 4 package separators (') to - # Perl 5 ones (sorry, we don't print Klingon + # Perl 5 ones (sorry, we don't print Klingon #module names) $prefix = $sub =~ /::/ ? "" : "${'package'}::"; $prefix .= "$sub($filename:"; - $after = ($dbline[$line] =~ /\n$/ ? '' : "\n"); + $after = ( $dbline[$line] =~ /\n$/ ? '' : "\n" ); # Break up the prompt if it's really long. - if (length($prefix) > 30) { + if ( length($prefix) > 30 ) { $position = "$prefix$line):\n$line:\t$dbline[$line]$after"; $prefix = ""; $infix = ":\t"; @@ -1925,8 +1991,8 @@ number information, and print that. # Print current line info, indenting if necessary. if ($frame) { - print_lineinfo(' ' x $stack_depth, - "$line:\t$dbline[$line]$after"); + print_lineinfo( ' ' x $stack_depth, + "$line:\t$dbline[$line]$after" ); } else { print_lineinfo($position); @@ -1934,7 +2000,7 @@ number information, and print that. # Scan forward, stopping at either the end or the next # unbreakable line. - for ($i = $line + 1 ; $i <= $max && $dbline[$i] == 0 ; ++$i) + for ( $i = $line + 1 ; $i <= $max && $dbline[$i] == 0 ; ++$i ) { #{ vi # Drop out on null statements, block closers, and comments. @@ -1942,18 +2008,19 @@ number information, and print that. # Drop out if the user interrupted us. last if $signal; - + # Append a newline if the line doesn't have one. Can happen # in eval'ed text, for instance. - $after = ($dbline[$i] =~ /\n$/ ? '' : "\n"); + $after = ( $dbline[$i] =~ /\n$/ ? '' : "\n" ); # Next executable line. $incr_pos = "$prefix$i$infix$dbline[$i]$after"; $position .= $incr_pos; if ($frame) { + # Print it indented if tracing is on. - print_lineinfo(' ' x $stack_depth, - "$i:\t$dbline[$i]$after"); + print_lineinfo( ' ' x $stack_depth, + "$i:\t$dbline[$i]$after" ); } else { print_lineinfo($incr_pos); @@ -1974,7 +2041,8 @@ If there are any preprompt actions, execute those as well. # Are we nested another level (e.g., did we evaluate a function # that had a breakpoint in it at the debugger prompt)? - if ($single || $was_signal) { + if ( $single || $was_signal ) { + # Yes, go down a level. local $level = $level + 1; @@ -1989,11 +2057,11 @@ If there are any preprompt actions, execute those as well. # The line we're currently on. Set $incr to -1 to stay here # until we get a command that tells us to advance. - $start = $line; - $incr = -1; # for backward motion. + $start = $line; + $incr = -1; # for backward motion. # Tack preprompt debugger actions ahead of any actual input. - @typeahead = (@$pretype, @typeahead); + @typeahead = ( @$pretype, @typeahead ); =head2 WHERE ARE WE? @@ -2042,19 +2110,25 @@ the new command. This is faster, but perhaps a bit more convoluted. # from readline(), keep on processing. CMD: while ( + # We have a terminal, or can get one ... - ($term || &setterm), + ( $term || &setterm ), + # ... and it belogs to this PID or we get one for this PID ... - ($term_pid == $$ or resetterm(1)), + ( $term_pid == $$ or resetterm(1) ), + # ... and we got a line of command input ... defined( $cmd = &readline( - "$pidprompt DB" . ('<' x $level) . ($#hist + 1) . - ('>' x $level) . " " + "$pidprompt DB" + . ( '<' x $level ) + . ( $#hist + 1 ) + . ( '>' x $level ) . " " ) ) ) { + # ... try to execute the input as debugger commands. # Don't stop running. @@ -2081,17 +2155,18 @@ it up. =cut # Empty input means repeat the last command. - $cmd =~ /^$/ && ($cmd = $laststep); - push (@hist, $cmd) if length($cmd) > 1; - - - # This is a restart point for commands that didn't arrive - # via direct user input. It allows us to 'redo PIPE' to - # re-execute command processing without reading a new command. + $cmd =~ /^$/ && ( $cmd = $laststep ); + chomp($cmd); # get rid of the annoying extra newline + push( @hist, $cmd ) if length($cmd) > 1; + push( @truehist, $cmd ); + + # This is a restart point for commands that didn't arrive + # via direct user input. It allows us to 'redo PIPE' to + # re-execute command processing without reading a new command. PIPE: { $cmd =~ s/^\s+//s; # trim annoying leading whitespace $cmd =~ s/\s+$//s; # trim annoying trailing whitespace - ($i) = split (/\s+/, $cmd); + ($i) = split( /\s+/, $cmd ); =head3 COMMAND ALIASES @@ -2103,7 +2178,8 @@ completely replacing it. =cut # See if there's an alias for the command, and set it up if so. - if ($alias{$i}) { + if ( $alias{$i} ) { + # Squelch signal handling; we want to keep control here # if something goes loco during the alias eval. local $SIG{__DIE__}; @@ -2149,8 +2225,8 @@ Turn tracing on or off. Inverts the appropriate bit in C<$trace> (q.v.). $cmd =~ /^t$/ && do { $trace ^= 1; local $\ = ''; - print $OUT "Trace = " . (($trace & 1) ? "on" : "off") . - "\n"; + print $OUT "Trace = " + . ( ( $trace & 1 ) ? "on" : "off" ) . "\n"; next CMD; }; @@ -2162,7 +2238,7 @@ Walks through C<%sub>, checking to see whether or not to print the name. $cmd =~ /^S(\s+(!)?(.+))?$/ && do { - $Srev = defined $2; # Reverse scan? + $Srev = defined $2; # Reverse scan? $Spatt = $3; # The pattern (if any) to use. $Snocheck = !defined $1; # No args - print all subs. @@ -2174,8 +2250,8 @@ Walks through C<%sub>, checking to see whether or not to print the name. # If $nocheck is true, just print the sub name. # Otherwise, check it against the pattern. We then use # the XOR trick to reverse the condition as required. - foreach $subname (sort(keys %sub)) { - if ($Snocheck or $Srev ^ ($subname =~ /$Spatt/)) { + foreach $subname ( sort( keys %sub ) ) { + if ( $Snocheck or $Srev ^ ( $subname =~ /$Spatt/ ) ) { print $OUT $subname, "\n"; } } @@ -2203,9 +2279,9 @@ Uses C<dumpvar.pl> to dump out the current values for selected variables. $cmd = "V $package"; }; - # V - show variables in package. $cmd =~ /^V\b\s*(\S+)\s*(.*)/ && do { + # Save the currently selected filehandle and # force output to debugger's filehandle (dumpvar # just does "print" for output). @@ -2213,11 +2289,12 @@ Uses C<dumpvar.pl> to dump out the current values for selected variables. # Grab package name and variables to dump. $packname = $1; - @vars = split (' ', $2); + @vars = split( ' ', $2 ); # If main::dumpvar isn't here, get it. do 'dumpvar.pl' unless defined &main::dumpvar; - if (defined &main::dumpvar) { + if ( defined &main::dumpvar ) { + # We got it. Turn off subroutine entry/exit messages # for the moment, along with return values. local $frame = 0; @@ -2230,21 +2307,23 @@ Uses C<dumpvar.pl> to dump out the current values for selected variables. $packname, defined $option{dumpDepth} ? $option{dumpDepth} - : -1, # assume -1 unless specified + : -1, # assume -1 unless specified @vars - ); + ); }; - # The die doesn't need to include the $@, because + # The die doesn't need to include the $@, because # it will automatically get propagated for us. if ($@) { die unless $@ =~ /dumpvar print failed/; } } ## end if (defined &main::dumpvar) else { + # Couldn't load dumpvar. print $OUT "dumpvar.pl not available.\n"; } + # Restore the output filehandle, and go round again. select($savout); next CMD; @@ -2257,12 +2336,12 @@ via C<dumpvar.pl> instead of just printing it directly. =cut - $cmd =~ s/^x\b/ / && do { # Remainder gets done by DB::eval() - $onetimeDump = 'dump'; # main::dumpvar shows the output + $cmd =~ s/^x\b/ / && do { # Remainder gets done by DB::eval() + $onetimeDump = 'dump'; # main::dumpvar shows the output # handle special "x 3 blah" syntax XXX propagate # doc back to special variables. - if ($cmd =~ s/^\s*(\d+)(?=\s)/ /) { + if ( $cmd =~ s/^\s*(\d+)(?=\s)/ / ) { $onetimedumpDepth = $1; } }; @@ -2279,8 +2358,8 @@ Just uses C<DB::methods> to determine what methods are available. }; # m expr - set up DB::eval to do the work - $cmd =~ s/^m\b/ / && do { # Rest gets done by DB::eval() - $onetimeDump = 'methods'; # method output gets used there + $cmd =~ s/^m\b/ / && do { # Rest gets done by DB::eval() + $onetimeDump = 'methods'; # method output gets used there }; =head4 C<f> - switch files @@ -2292,33 +2371,32 @@ Just uses C<DB::methods> to determine what methods are available. $file =~ s/\s+$//; # help for no arguments (old-style was return from sub). - if (!$file) { + if ( !$file ) { print $OUT - "The old f command is now the r command.\n"; # hint + "The old f command is now the r command.\n"; # hint print $OUT "The new f command switches filenames.\n"; next CMD; } ## end if (!$file) # if not in magic file list, try a close match. - if (!defined $main::{ '_<' . $file }) { - if (($try) = grep(m#^_<.*$file#, keys %main::)) { + if ( !defined $main::{ '_<' . $file } ) { + if ( ($try) = grep( m#^_<.*$file#, keys %main:: ) ) { { - $try = substr($try, 2); - print $OUT - "Choosing $try matching `$file':\n"; + $try = substr( $try, 2 ); + print $OUT "Choosing $try matching `$file':\n"; $file = $try; } } ## end if (($try) = grep(m#^_<.*$file#... } ## end if (!defined $main::{ ... # If not successfully switched now, we failed. - if (!defined $main::{ '_<' . $file }) { + if ( !defined $main::{ '_<' . $file } ) { print $OUT "No file matching `$file' is loaded.\n"; next CMD; } # We switched, so switch the debugger internals around. - elsif ($file ne $filename) { + elsif ( $file ne $filename ) { *dbline = $main::{ '_<' . $file }; $max = $#dbline; $filename = $file; @@ -2342,13 +2420,13 @@ and then we look up the line in the magical C<%dbline> hash. # . command. $cmd =~ /^\.$/ && do { - $incr = -1; # stay at current line + $incr = -1; # stay at current line # Reset everything to the old location. $start = $line; $filename = $filename_ini; - *dbline = $main::{ '_<' . $filename }; - $max = $#dbline; + *dbline = $main::{ '_<' . $filename }; + $max = $#dbline; # Now where are we? print_lineinfo($position); @@ -2366,10 +2444,11 @@ C<$start>) in C<$cmd> to be executed later. # - - back a window. $cmd =~ /^-$/ && do { + # back up by a window; go to 1 if back too far. $start -= $incr + $window + 1; $start = 1 if $start <= 0; - $incr = $window - 1; + $incr = $window - 1; # Generate and execute a "l +" command (handled below). $cmd = 'l ' . ($start) . '+'; @@ -2387,9 +2466,9 @@ deal with them instead of processing them in-line. =cut # All of these commands were remapped in perl 5.8.0; - # we send them off to the secondary dispatcher (see below). - $cmd =~ /^([aAbBhlLMoOvwW]\b|[<>\{]{1,2})\s*(.*)/so && do { - &cmd_wrapper($1, $2, $line); + # we send them off to the secondary dispatcher (see below). + $cmd =~ /^([aAbBhilLMoOPvwW]\b|[<>\{]{1,2})\s*(.*)/so && do { + &cmd_wrapper( $1, $2, $line ); next CMD; }; @@ -2418,10 +2497,10 @@ above the current one and then displays then using C<dumpvar.pl>. and next CMD; # Got all the modules we need. Find them and print them. - my @vars = split (' ', $2 || ''); + my @vars = split( ' ', $2 || '' ); # Find the pad. - my $h = eval { PadWalker::peek_my(($1 || 0) + 1) }; + my $h = eval { PadWalker::peek_my( ( $1 || 0 ) + 1 ) }; # Oops. Can't find it. $@ and $@ =~ s/ at .*//, &warn($@), next CMD; @@ -2430,12 +2509,10 @@ above the current one and then displays then using C<dumpvar.pl>. my $savout = select($OUT); # Have dumplex dump the lexicals. - dumpvar::dumplex( - $_, - $h->{$_}, + dumpvar::dumplex( $_, $h->{$_}, defined $option{dumpDepth} ? $option{dumpDepth} : -1, - @vars - ) for sort keys %$h; + @vars ) + for sort keys %$h; select($savout); next CMD; }; @@ -2456,11 +2533,13 @@ so a null command knows what to re-execute. =cut - # n - next + # n - next $cmd =~ /^n$/ && do { end_report(), next CMD if $finished and $level <= 1; + # Single step, but don't enter subs. - $single = 2; + $single = 2; + # Save for empty command (repeat last). $laststep = $cmd; last CMD; @@ -2475,11 +2554,14 @@ subs. Also saves C<s> as C<$lastcmd>. # s - single step. $cmd =~ /^s$/ && do { + # Get out and restart the command loop if program # has finished. end_report(), next CMD if $finished and $level <= 1; + # Single step should enter subs. - $single = 1; + $single = 1; + # Save for empty command (repeat last). $laststep = $cmd; last CMD; @@ -2496,6 +2578,7 @@ in this and all call levels above this one. # c - start continuous execution. $cmd =~ /^c\b\s*([\w:]*)\s*$/ && do { + # Hey, show's over. The debugged program finished # executing already. end_report(), next CMD if $finished and $level <= 1; @@ -2514,28 +2597,32 @@ in this and all call levels above this one. # If the "subname" isn't all digits, we'll assume it # is a subroutine name, and try to find it. - if ($subname =~ /\D/) { # subroutine name - # Qualify it to the current package unless it's - # already qualified. + if ( $subname =~ /\D/ ) { # subroutine name + # Qualify it to the current package unless it's + # already qualified. $subname = $package . "::" . $subname unless $subname =~ /::/; + # find_sub will return "file:line_number" corresponding # to where the subroutine is defined; we call find_sub, - # break up the return value, and assign it in one + # break up the return value, and assign it in one # operation. - ($file, $i) = (find_sub($subname) =~ /^(.*):(.*)$/); + ( $file, $i ) = ( find_sub($subname) =~ /^(.*):(.*)$/ ); # Force the line number to be numeric. $i += 0; # If we got a line number, we found the sub. if ($i) { + # Switch all the debugger's internals around so # we're actually working with that file. $filename = $file; *dbline = $main::{ '_<' . $filename }; + # Mark that there's a breakpoint in this file. $had_breakpoints{$filename} |= 1; + # Scan forward to the first executable line # after the 'sub whatever' line. $max = $#dbline; @@ -2555,10 +2642,10 @@ in this and all call levels above this one. # for an executable, which we may or may not have found. # # If $i (which we set $subname from) is non-zero, we - # got a request to break at some line somewhere. On - # one hand, if there wasn't any real subroutine name - # involved, this will be a request to break in the current - # file at the specified line, so we have to check to make + # got a request to break at some line somewhere. On + # one hand, if there wasn't any real subroutine name + # involved, this will be a request to break in the current + # file at the specified line, so we have to check to make # sure that the line specified really is breakable. # # On the other hand, if there was a subname supplied, the @@ -2571,19 +2658,20 @@ in this and all call levels above this one. # current value of $i points to a valid breakable line. # Check that. if ($i) { + # Breakable? - if ($dbline[$i] == 0) { + if ( $dbline[$i] == 0 ) { print $OUT "Line $i not breakable.\n"; next CMD; } + # Yes. Set up the one-time-break sigil. - $dbline{$i} =~ - s/($|\0)/;9$1/; # add one-time-only b.p. + $dbline{$i} =~ s/($|\0)/;9$1/; # add one-time-only b.p. } ## end if ($i) # Turn off stack tracing from here up. - for ($i = 0 ; $i <= $stack_depth ;) { - $stack[$i++] &= ~1; + for ( $i = 0 ; $i <= $stack_depth ; ) { + $stack[ $i++ ] &= ~1; } last CMD; }; @@ -2600,212 +2688,18 @@ appropriately, and force us out of the command loop. # r - return from the current subroutine. $cmd =~ /^r$/ && do { + # Can't do anythign if the program's over. end_report(), next CMD if $finished and $level <= 1; + # Turn on stack trace. $stack[$stack_depth] |= 1; + # Print return value unless the stack is empty. $doret = $option{PrintRet} ? $stack_depth - 1 : -2; last CMD; }; -=head4 C<R> - restart - -Restarting the debugger is a complex operation that occurs in several phases. -First, we try to reconstruct the command line that was used to invoke Perl -and the debugger. - -=cut - - # R - restart execution. - $cmd =~ /^R$/ && do { - # I may not be able to resurrect you, but here goes ... - print $OUT -"Warning: some settings and command-line options may be lost!\n"; - my (@script, @flags, $cl); - - # If warn was on before, turn it on again. - push @flags, '-w' if $ini_warn; - - # Rebuild the -I flags that were on the initial - # command line. - for (@ini_INC) { - push @flags, '-I', $_; - } - - # Turn on taint if it was on before. - push @flags, '-T' if ${^TAINT}; - - # Arrange for setting the old INC: - # Save the current @init_INC in the environment. - set_list("PERLDB_INC", @ini_INC); - - # If this was a perl one-liner, go to the "file" - # corresponding to the one-liner read all the lines - # out of it (except for the first one, which is going - # to be added back on again when 'perl -d' runs: that's - # the 'require perl5db.pl;' line), and add them back on - # to the command line to be executed. - if ($0 eq '-e') { - for (1 .. $#{'::_<-e'}) { # The first line is PERL5DB - chomp($cl = ${'::_<-e'}[$_]); - push @script, '-e', $cl; - } - } ## end if ($0 eq '-e') - - # Otherwise we just reuse the original name we had - # before. - else { - @script = $0; - } - -=pod - -After the command line has been reconstructed, the next step is to save -the debugger's status in environment variables. The C<DB::set_list> routine -is used to save aggregate variables (both hashes and arrays); scalars are -just popped into environment variables directly. - -=cut - - # If the terminal supported history, grab it and - # save that in the environment. - set_list("PERLDB_HIST", - $term->Features->{getHistory} - ? $term->GetHistory - : @hist); - # Find all the files that were visited during this - # session (i.e., the debugger had magic hashes - # corresponding to them) and stick them in the environment. - my @had_breakpoints = keys %had_breakpoints; - set_list("PERLDB_VISITED", @had_breakpoints); - - # Save the debugger options we chose. - set_list("PERLDB_OPT", %option); - - # Save the break-on-loads. - set_list("PERLDB_ON_LOAD", %break_on_load); - -=pod - -The most complex part of this is the saving of all of the breakpoints. They -can live in an awful lot of places, and we have to go through all of them, -find the breakpoints, and then save them in the appropriate environment -variable via C<DB::set_list>. - -=cut - - # Go through all the breakpoints and make sure they're - # still valid. - my @hard; - for (0 .. $#had_breakpoints) { - # We were in this file. - my $file = $had_breakpoints[$_]; - - # Grab that file's magic line hash. - *dbline = $main::{ '_<' . $file }; - - # Skip out if it doesn't exist, or if the breakpoint - # is in a postponed file (we'll do postponed ones - # later). - next unless %dbline or $postponed_file{$file}; - - # In an eval. This is a little harder, so we'll - # do more processing on that below. - (push @hard, $file), next - if $file =~ /^\(\w*eval/; - # XXX I have no idea what this is doing. Yet. - my @add; - @add = %{ $postponed_file{$file} } - if $postponed_file{$file}; - - # Save the list of all the breakpoints for this file. - set_list("PERLDB_FILE_$_", %dbline, @add); - } ## end for (0 .. $#had_breakpoints) - - # The breakpoint was inside an eval. This is a little - # more difficult. XXX and I don't understand it. - for (@hard) { - # Get over to the eval in question. - *dbline = $main::{ '_<' . $_ }; - my ($quoted, $sub, %subs, $line) = quotemeta $_; - for $sub (keys %sub) { - next unless $sub{$sub} =~ /^$quoted:(\d+)-(\d+)$/; - $subs{$sub} = [$1, $2]; - } - unless (%subs) { - print $OUT - "No subroutines in $_, ignoring breakpoints.\n"; - next; - } - LINES: for $line (keys %dbline) { - - # One breakpoint per sub only: - my ($offset, $sub, $found); - SUBS: for $sub (keys %subs) { - if ( - $subs{$sub}->[1] >= - $line # Not after the subroutine - and ( - not defined $offset # Not caught - or $offset < 0 - ) - ) - { # or badly caught - $found = $sub; - $offset = $line - $subs{$sub}->[0]; - $offset = "+$offset", last SUBS - if $offset >= 0; - } ## end if ($subs{$sub}->[1] >=... - } ## end for $sub (keys %subs) - if (defined $offset) { - $postponed{$found} = - "break $offset if $dbline{$line}"; - } - else { - print $OUT -"Breakpoint in $_:$line ignored: after all the subroutines.\n"; - } - } ## end for $line (keys %dbline) - } ## end for (@hard) - - # Save the other things that don't need to be - # processed. - set_list("PERLDB_POSTPONE", %postponed); - set_list("PERLDB_PRETYPE", @$pretype); - set_list("PERLDB_PRE", @$pre); - set_list("PERLDB_POST", @$post); - set_list("PERLDB_TYPEAHEAD", @typeahead); - - # We are oficially restarting. - $ENV{PERLDB_RESTART} = 1; - - # We are junking all child debuggers. - delete $ENV{PERLDB_PIDS}; # Restore ini state - - # Set this back to the initial pid. - $ENV{PERLDB_PIDS} = $ini_pids if defined $ini_pids; - -=pod - -After all the debugger status has been saved, we take the command we built -up and then C<exec()> it. The debugger will spot the C<PERLDB_RESTART> -environment variable and realize it needs to reload its state from the -environment. - -=cut - - # And run Perl again. Add the "-d" flag, all the - # flags we built up, the script (whether a one-liner - # or a file), add on the -emacs flag for a slave editor, - # and then the old arguments. We use exec() to keep the - # PID stable (and that way $ini_pids is still valid). - exec($^X, '-d', @flags, @script, - ($slave_editor ? '-emacs' : ()), @ARGS) || - print $OUT "exec failed: $!\n"; - last CMD; - }; - =head4 C<T> - stack trace Just calls C<DB::print_trace>. @@ -2813,7 +2707,7 @@ Just calls C<DB::print_trace>. =cut $cmd =~ /^T$/ && do { - print_trace($OUT, 1); # skip DB + print_trace( $OUT, 1 ); # skip DB next CMD; }; @@ -2823,7 +2717,7 @@ Just calls C<DB::cmd_w>. =cut - $cmd =~ /^w\b\s*(.*)/s && do { &cmd_w('w', $1); next CMD; }; + $cmd =~ /^w\b\s*(.*)/s && do { &cmd_w( 'w', $1 ); next CMD; }; =head4 C<W> - watch-expression processing. @@ -2831,7 +2725,7 @@ Just calls C<DB::cmd_W>. =cut - $cmd =~ /^W\b\s*(.*)/s && do { &cmd_W('W', $1); next CMD; }; + $cmd =~ /^W\b\s*(.*)/s && do { &cmd_W( 'W', $1 ); next CMD; }; =head4 C</> - search forward for a string in the source @@ -2842,7 +2736,7 @@ mess us up. =cut - $cmd =~ /^\/(.*)$/ && do { + $cmd =~ /^\/(.*)$/ && do { # The pattern as a string. $inpat = $1; @@ -2851,7 +2745,7 @@ mess us up. $inpat =~ s:([^\\])/$:$1:; # If the pattern isn't null ... - if ($inpat ne "") { + if ( $inpat ne "" ) { # Turn of warn and die procesing for a bit. local $SIG{__DIE__}; @@ -2859,9 +2753,10 @@ mess us up. # Create the pattern. eval '$inpat =~ m' . "\a$inpat\a"; - if ($@ ne "") { + if ( $@ ne "" ) { + # Oops. Bad pattern. No biscuit. - # Print the eval error and go back for more + # Print the eval error and go back for more # commands. print $OUT "$@"; next CMD; @@ -2870,7 +2765,7 @@ mess us up. } ## end if ($inpat ne "") # Set up to stop on wrap-around. - $end = $start; + $end = $start; # Don't move off the current line. $incr = -1; @@ -2905,8 +2800,9 @@ mess us up. last; } } '; + # If we wrapped, there never was a match. - print $OUT "/$pat/: not found\n" if ($start == $end); + print $OUT "/$pat/: not found\n" if ( $start == $end ); next CMD; }; @@ -2924,14 +2820,15 @@ Same as for C</>, except the loop runs backwards. $inpat =~ s:([^\\])\?$:$1:; # If we've got one ... - if ($inpat ne "") { + if ( $inpat ne "" ) { # Turn off die & warn handlers. local $SIG{__DIE__}; local $SIG{__WARN__}; eval '$inpat =~ m' . "\a$inpat\a"; - if ($@ ne "") { + if ( $@ ne "" ) { + # Ouch. Not good. Print the error. print $OUT $@; next CMD; @@ -2940,7 +2837,7 @@ Same as for C</>, except the loop runs backwards. } ## end if ($inpat ne "") # Where we are now is where to stop after wraparound. - $end = $start; + $end = $start; # Don't move away from this line. $incr = -1; @@ -2953,6 +2850,7 @@ Same as for C</>, except the loop runs backwards. --$start; # Wrap if we pass the first line. + $start = $max if ($start <= 0); # Quit if we get back where we started, @@ -2975,7 +2873,7 @@ Same as for C</>, except the loop runs backwards. } '; # Say we failed if the loop never found anything, - print $OUT "?$pat?: not found\n" if ($start == $end); + print $OUT "?$pat?: not found\n" if ( $start == $end ); next CMD; }; @@ -2987,17 +2885,17 @@ into C<$cmd>, and redoes the loop to execute it. =cut - # $rc - recall command. + # $rc - recall command. $cmd =~ /^$rc+\s*(-)?(\d+)?$/ && do { # No arguments, take one thing off history. - pop (@hist) if length($cmd) > 1; + pop(@hist) if length($cmd) > 1; - # Relative (- found)? + # Relative (- found)? # Y - index back from most recent (by 1 if bare minus) - # N - go to that particular command slot or the last + # N - go to that particular command slot or the last # thing if nothing following. - $i = $1 ? ($#hist - ($2 || 1)) : ($2 || $#hist); + $i = $1 ? ( $#hist - ( $2 || 1 ) ) : ( $2 || $#hist ); # Pick out the command desired. $cmd = $hist[$i]; @@ -3018,6 +2916,7 @@ C<STDOUT> from getting messed up. # $sh$sh - run a shell command (if it's all ASCII). # Can't run shell commands with Unicode in the debugger, hmm. $cmd =~ /^$sh$sh\s*([\x00-\xff]*)/ && do { + # System it. &system($1); next CMD; @@ -3030,21 +2929,24 @@ If a command is found, it is placed in C<$cmd> and executed via <redo>. =cut - # $rc pattern $rc - find a command in the history. + # $rc pattern $rc - find a command in the history. $cmd =~ /^$rc([^$rc].*)$/ && do { + # Create the pattern to use. $pat = "^$1"; # Toss off last entry if length is >1 (and it always is). - pop (@hist) if length($cmd) > 1; + pop(@hist) if length($cmd) > 1; # Look backward through the history. - for ($i = $#hist ; $i ; --$i) { + for ( $i = $#hist ; $i ; --$i ) { + # Stop if we find it. last if $hist[$i] =~ /$pat/; } - if (!$i) { + if ( !$i ) { + # Never found it. print $OUT "No such command!\n\n"; next CMD; @@ -3064,9 +2966,10 @@ Uses C<DB::system> to invoke a shell. # $sh - start a shell. $cmd =~ /^$sh$/ && do { + # Run the user's shell. If none defined, run Bourne. # We resume execution when the shell terminates. - &system($ENV{SHELL} || "/bin/sh"); + &system( $ENV{SHELL} || "/bin/sh" ); next CMD; }; @@ -3079,11 +2982,12 @@ C<DB::system> to avoid problems with C<STDIN> and C<STDOUT>. # $sh command - start a shell and run a command in it. $cmd =~ /^$sh\s*([\x00-\xff]*)/ && do { + # XXX: using csh or tcsh destroys sigint retvals! #&system($1); # use this instead # use the user's shell, or Bourne if none defined. - &system($ENV{SHELL} || "/bin/sh", "-c", $1); + &system( $ENV{SHELL} || "/bin/sh", "-c", $1 ); next CMD; }; @@ -3093,18 +2997,25 @@ Prints the contents of C<@hist> (if any). =cut + $cmd =~ /^H\b\s*\*/ && do { + @hist = @truehist = (); + print $OUT "History cleansed\n"; + next CMD; + }; + $cmd =~ /^H\b\s*(-(\d+))?/ && do { - # Anything other than negative numbers is ignored by + + # Anything other than negative numbers is ignored by # the (incorrect) pattern, so this test does nothing. - $end = $2 ? ($#hist - $2) : 0; + $end = $2 ? ( $#hist - $2 ) : 0; # Set to the minimum if less than zero. $hist = 0 if $hist < 0; - # Start at the end of the array. + # Start at the end of the array. # Stay in while we're still above the ending value. # Tick back by one each time around the loop. - for ($i = $#hist ; $i > $end ; $i--) { + for ( $i = $#hist ; $i > $end ; $i-- ) { # Print the command unless it has no arguments. print $OUT "$i: ", $hist[$i], "\n" @@ -3119,7 +3030,7 @@ Just calls C<runman()> to print the appropriate document. =cut - # man, perldoc, doc - show manual pages. + # man, perldoc, doc - show manual pages. $cmd =~ /^(?:man|(?:perl)?doc)\b(?:\s+([^(]*))?$/ && do { runman($1); next CMD; @@ -3144,25 +3055,28 @@ Manipulates C<%alias> to add or list command aliases. =cut - # = - set up a command alias. + # = - set up a command alias. $cmd =~ s/^=\s*// && do { my @keys; - if (length $cmd == 0) { + if ( length $cmd == 0 ) { + # No args, get current aliases. @keys = sort keys %alias; } - elsif (my ($k, $v) = ($cmd =~ /^(\S+)\s+(\S.*)/)) { + elsif ( my ( $k, $v ) = ( $cmd =~ /^(\S+)\s+(\S.*)/ ) ) { + # Creating a new alias. $k is alias name, $v is # alias value. # can't use $_ or kill //g state - for my $x ($k, $v) { - # Escape "alarm" characters. - $x =~ s/\a/\\a/g + for my $x ( $k, $v ) { + + # Escape "alarm" characters. + $x =~ s/\a/\\a/g; } # Substitute key for value, using alarm chars - # as separators (which is why we escaped them in + # as separators (which is why we escaped them in # the command). $alias{$k} = "s\a$k\a$v\a"; @@ -3171,12 +3085,14 @@ Manipulates C<%alias> to add or list command aliases. local $SIG{__WARN__}; # Is it valid Perl? - unless (eval "sub { s\a$k\a$v\a }; 1") { + unless ( eval "sub { s\a$k\a$v\a }; 1" ) { + # Nope. Bad alias. Say so and get out. print $OUT "Can't alias $k to $v: $@\n"; delete $alias{$k}; next CMD; } + # We'll only list the new one. @keys = ($k); } ## end elsif (my ($k, $v) = ($cmd... @@ -3188,18 +3104,22 @@ Manipulates C<%alias> to add or list command aliases. # List aliases. for my $k (@keys) { + # Messy metaquoting: Trim the substiution code off. # We use control-G as the delimiter because it's not # likely to appear in the alias. - if ((my $v = $alias{$k}) =~ ss\a$k\a(.*)\a$1) { + if ( ( my $v = $alias{$k} ) =~ ss\a$k\a(.*)\a$1 ) { + # Print the alias. print $OUT "$k\t= $1\n"; } - elsif (defined $alias{$k}) { + elsif ( defined $alias{$k} ) { + # Couldn't trim it off; just print the alias code. print $OUT "$k\t$alias{$k}\n"; } else { + # No such, dude. print "No alias for $k\n"; } @@ -3214,19 +3134,70 @@ pick it up. =cut - # source - read commands from a file (or pipe!) and execute. + # source - read commands from a file (or pipe!) and execute. $cmd =~ /^source\s+(.*\S)/ && do { - if (open my $fh, $1) { + if ( open my $fh, $1 ) { + # Opened OK; stick it in the list of file handles. push @cmdfhs, $fh; } else { - # Couldn't open it. + + # Couldn't open it. &warn("Can't execute `$1': $!\n"); } next CMD; }; +=head4 C<save> - send current history to a file + +Takes the complete history, (not the shrunken version you see with C<H>), +and saves it to the given filename, so it can be replayed using C<source>. + +Note that all C<^(save|source)>'s are commented out with a view to minimise recursion. + +=cut + + # save source - write commands to a file for later use + $cmd =~ /^save\s*(.*)$/ && do { + my $file = $1 || '.perl5dbrc'; # default? + if ( open my $fh, "> $file" ) { + + # chomp to remove extraneous newlines from source'd files + chomp( my @truelist = + map { m/^\s*(save|source)/ ? "#$_" : $_ } + @truehist ); + print $fh join( "\n", @truelist ); + print "commands saved in $file\n"; + } + else { + &warn("Can't save debugger commands in '$1': $!\n"); + } + next CMD; + }; + +=head4 C<R> - restart + +Restart the debugger session. + +=head4 C<rerun> - rerun the current session + +Return to any given position in the B<true>-history list + +=cut + + # R - restart execution. + # rerun - controlled restart execution. + $cmd =~ /^(R|rerun\s*(.*))$/ && do { + my @args = ($1 eq 'R' ? restart() : rerun($2)); + + # And run Perl again. We use exec() to keep the + # PID stable (and that way $ini_pids is still valid). + exec(@args) || print $OUT "exec failed: $!\n"; + + last CMD; + }; + =head4 C<|, ||> - pipe output through the pager. FOR C<|>, we save C<OUT> (the debugger's output filehandle) and C<STDOUT> @@ -3243,35 +3214,40 @@ reading another. # || - run command in the pager, with output to DB::OUT. $cmd =~ /^\|\|?\s*[^|]/ && do { - if ($pager =~ /^\|/) { + if ( $pager =~ /^\|/ ) { + # Default pager is into a pipe. Redirect I/O. - open(SAVEOUT, ">&STDOUT") || - &warn("Can't save STDOUT"); - open(STDOUT, ">&OUT") || - &warn("Can't redirect STDOUT"); + open( SAVEOUT, ">&STDOUT" ) + || &warn("Can't save STDOUT"); + open( STDOUT, ">&OUT" ) + || &warn("Can't redirect STDOUT"); } ## end if ($pager =~ /^\|/) else { + # Not into a pipe. STDOUT is safe. - open(SAVEOUT, ">&OUT") || &warn("Can't save DB::OUT"); + open( SAVEOUT, ">&OUT" ) || &warn("Can't save DB::OUT"); } # Fix up environment to record we have less if so. fix_less(); - unless ($piped = open(OUT, $pager)) { + unless ( $piped = open( OUT, $pager ) ) { + # Couldn't open pipe to pager. &warn("Can't pipe output to `$pager'"); - if ($pager =~ /^\|/) { + if ( $pager =~ /^\|/ ) { + # Redirect I/O back again. - open(OUT, ">&STDOUT") # XXX: lost message + open( OUT, ">&STDOUT" ) # XXX: lost message || &warn("Can't restore DB::OUT"); - open(STDOUT, ">&SAVEOUT") || - &warn("Can't restore STDOUT"); + open( STDOUT, ">&SAVEOUT" ) + || &warn("Can't restore STDOUT"); close(SAVEOUT); } ## end if ($pager =~ /^\|/) else { + # Redirect I/O. STDOUT already safe. - open(OUT, ">&STDOUT") # XXX: lost message + open( OUT, ">&STDOUT" ) # XXX: lost message || &warn("Can't restore DB::OUT"); } next CMD; @@ -3279,8 +3255,8 @@ reading another. # Set up broken-pipe handler if necessary. $SIG{PIPE} = \&DB::catch - if $pager =~ /^\|/ && - ("" eq $SIG{PIPE} || "DEFAULT" eq $SIG{PIPE}); + if $pager =~ /^\|/ + && ( "" eq $SIG{PIPE} || "DEFAULT" eq $SIG{PIPE} ); # Save current filehandle, unbuffer out, and put it back. $selected = select(OUT); @@ -3294,7 +3270,6 @@ reading another. redo PIPE; }; - =head3 END OF COMMAND PARSING Anything left in C<$cmd> at this point is a Perl expression that we want to @@ -3315,7 +3290,7 @@ any variables we might want to address in the C<DB> package. } # PIPE: - # Make sure the flag that says "the debugger's running" is + # Make sure the flag that says "the debugger's running" is # still on, to make sure we get control again. $evalarg = "\$^D = \$^D | \$DB::db_stop;\n$cmd"; @@ -3327,9 +3302,10 @@ any variables we might want to address in the C<DB> package. $onetimeDump = undef; $onetimedumpDepth = undef; } - elsif ($term_pid == $$) { + elsif ( $term_pid == $$ ) { STDOUT->flush(); STDERR->flush(); + # XXX If this is the master pid, print a newline. print $OUT "\n"; } @@ -3347,8 +3323,10 @@ our standard filehandles for input and output. # At the end of every command: if ($piped) { + # Unhook the pipe mechanism now. - if ($pager =~ /^\|/) { + if ( $pager =~ /^\|/ ) { + # No error from the child. $? = 0; @@ -3359,24 +3337,24 @@ our standard filehandles for input and output. # $? is explicitly set to 0, so this never runs. if ($?) { print SAVEOUT "Pager `$pager' failed: "; - if ($? == -1) { + if ( $? == -1 ) { print SAVEOUT "shell returned -1\n"; } - elsif ($? >> 8) { - print SAVEOUT ($? & 127) - ? " (SIG#" . ($? & 127) . ")" - : "", ($? & 128) ? " -- core dumped" : "", "\n"; + elsif ( $? >> 8 ) { + print SAVEOUT ( $? & 127 ) + ? " (SIG#" . ( $? & 127 ) . ")" + : "", ( $? & 128 ) ? " -- core dumped" : "", "\n"; } else { - print SAVEOUT "status ", ($? >> 8), "\n"; + print SAVEOUT "status ", ( $? >> 8 ), "\n"; } } ## end if ($?) - # Reopen filehandle for our output (if we can) and + # Reopen filehandle for our output (if we can) and # restore STDOUT (if we can). - open(OUT, ">&STDOUT") || &warn("Can't restore DB::OUT"); - open(STDOUT, ">&SAVEOUT") || - &warn("Can't restore STDOUT"); + open( OUT, ">&STDOUT" ) || &warn("Can't restore DB::OUT"); + open( STDOUT, ">&SAVEOUT" ) + || &warn("Can't restore STDOUT"); # Turn off pipe exception handler if necessary. $SIG{PIPE} = "DEFAULT" if $SIG{PIPE} eq \&DB::catch; @@ -3385,8 +3363,9 @@ our standard filehandles for input and output. # does SIGINT but Perl doesn't give us a choice. } ## end if ($pager =~ /^\|/) else { + # Non-piped "pager". Just restore STDOUT. - open(OUT, ">&SAVEOUT") || &warn("Can't restore DB::OUT"); + open( OUT, ">&SAVEOUT" ) || &warn("Can't restore DB::OUT"); } # Close filehandle pager was using, restore the normal one @@ -3420,7 +3399,7 @@ again. } # if ($single || $signal) # Put the user's globals back where you found them. - ($@, $!, $^E, $,, $/, $\, $^W) = @saved; + ( $@, $!, $^E, $,, $/, $\, $^W ) = @saved; (); } ## end sub DB @@ -3512,11 +3491,11 @@ sub sub { # Whether or not the autoloader was running, a scalar to put the # sub's return value in (if needed), and an array to put the sub's # return value in (if needed). - my ($al, $ret, @ret) = ""; + my ( $al, $ret, @ret ) = ""; # If the last ten characters are C'::AUTOLOAD', note we've traced # into AUTOLOAD for $sub. - if (length($sub) > 10 && substr($sub, -10, 10) eq '::AUTOLOAD') { + if ( length($sub) > 10 && substr( $sub, -10, 10 ) eq '::AUTOLOAD' ) { $al = " for $$sub"; } @@ -3532,7 +3511,7 @@ sub sub { # Save current single-step setting. $stack[-1] = $single; - # Turn off all flags except single-stepping. + # Turn off all flags except single-stepping. $single &= 1; # If we've gotten really deeply recursed, turn on the flag that will @@ -3543,100 +3522,131 @@ sub sub { ( $frame & 4 # Extended frame entry message ? ( - print_lineinfo(' ' x ($stack_depth - 1), "in "), + print_lineinfo( ' ' x ( $stack_depth - 1 ), "in " ), # Why -1? But it works! :-( # Because print_trace will call add 1 to it and then call # dump_trace; this results in our skipping -1+1 = 0 stack frames # in dump_trace. - print_trace($LINEINFO, -1, 1, 1, "$sub$al") + print_trace( $LINEINFO, -1, 1, 1, "$sub$al" ) ) - : print_lineinfo(' ' x ($stack_depth - 1), "entering $sub$al\n") + : print_lineinfo( ' ' x ( $stack_depth - 1 ), "entering $sub$al\n" ) + # standard frame entry message ) if $frame; # Determine the sub's return type,and capture approppriately. if (wantarray) { + # Called in array context. call sub and capture output. # DB::DB will recursively get control again if appropriate; we'll come # back here when the sub is finished. - @ret = &$sub; + if ($assertion) { + $assertion = 0; + eval { @ret = &$sub; }; + if ($@) { + print $OUT $@; + $signal = 1 unless $warnassertions; + } + } + else { + @ret = &$sub; + } # Pop the single-step value back off the stack. - $single |= $stack[$stack_depth--]; + $single |= $stack[ $stack_depth-- ]; # Check for exit trace messages... ( - $frame & 4 # Extended exit message + $frame & 4 # Extended exit message ? ( - print_lineinfo(' ' x $stack_depth, "out "), - print_trace($LINEINFO, -1, 1, 1, "$sub$al") + print_lineinfo( ' ' x $stack_depth, "out " ), + print_trace( $LINEINFO, -1, 1, 1, "$sub$al" ) ) - : print_lineinfo(' ' x $stack_depth, "exited $sub$al\n") + : print_lineinfo( ' ' x $stack_depth, "exited $sub$al\n" ) + # Standard exit message ) if $frame & 2; # Print the return info if we need to. - if ($doret eq $stack_depth or $frame & 16) { + if ( $doret eq $stack_depth or $frame & 16 ) { + # Turn off output record separator. local $\ = ''; - my $fh = ($doret eq $stack_depth ? $OUT : $LINEINFO); + my $fh = ( $doret eq $stack_depth ? $OUT : $LINEINFO ); # Indent if we're printing because of $frame tracing. print $fh ' ' x $stack_depth if $frame & 16; # Print the return value. print $fh "list context return from $sub:\n"; - dumpit($fh, \@ret); + dumpit( $fh, \@ret ); # And don't print it again. $doret = -2; } ## end if ($doret eq $stack_depth... - # And we have to return the return value now. + # And we have to return the return value now. @ret; - } ## end if (wantarray) # Scalar context. else { - if (defined wantarray) { - # Save the value if it's wanted at all. - $ret = &$sub; + if ($assertion) { + $assertion = 0; + eval { + + # Save the value if it's wanted at all. + $ret = &$sub; + }; + if ($@) { + print $OUT $@; + $signal = 1 unless $warnassertions; + } + $ret = undef unless defined wantarray; } else { - # Void return, explicitly. - &$sub; - undef $ret; - } + if ( defined wantarray ) { + + # Save the value if it's wanted at all. + $ret = &$sub; + } + else { + + # Void return, explicitly. + &$sub; + undef $ret; + } + } # if assertion # Pop the single-step value off the stack. - $single |= $stack[$stack_depth--]; + $single |= $stack[ $stack_depth-- ]; # If we're doing exit messages... ( - $frame & 4 # Extended messsages + $frame & 4 # Extended messsages ? ( - print_lineinfo(' ' x $stack_depth, "out "), - print_trace($LINEINFO, -1, 1, 1, "$sub$al") + print_lineinfo( ' ' x $stack_depth, "out " ), + print_trace( $LINEINFO, -1, 1, 1, "$sub$al" ) ) - : print_lineinfo(' ' x $stack_depth, "exited $sub$al\n") - # Standard messages + : print_lineinfo( ' ' x $stack_depth, "exited $sub$al\n" ) + + # Standard messages ) if $frame & 2; # If we are supposed to show the return value... same as before. - if ($doret eq $stack_depth or $frame & 16 and defined wantarray) { + if ( $doret eq $stack_depth or $frame & 16 and defined wantarray ) { local $\ = ''; - my $fh = ($doret eq $stack_depth ? $OUT : $LINEINFO); - print $fh (' ' x $stack_depth) if $frame & 16; + my $fh = ( $doret eq $stack_depth ? $OUT : $LINEINFO ); + print $fh ( ' ' x $stack_depth ) if $frame & 16; print $fh ( defined wantarray ? "scalar context return from $sub: " : "void context return from $sub\n" - ); - dumpit($fh, $ret) if defined wantarray; + ); + dumpit( $fh, $ret ) if defined wantarray; $doret = -2; } ## end if ($doret eq $stack_depth... @@ -3701,7 +3711,7 @@ my %set = ( # '{' => 'pre590_prepost', '{{' => 'pre590_prepost', }, - ); +); =head2 C<cmd_wrapper()> (API) @@ -3723,7 +3733,7 @@ sub cmd_wrapper { my $line = shift; my $dblineno = shift; - # Assemble the command subroutine's name by looking up the + # Assemble the command subroutine's name by looking up the # command set and command name in %set. If we can't find it, # default to the older version of the command. my $call = 'cmd_' @@ -3731,7 +3741,7 @@ sub cmd_wrapper { || ( $cmd =~ /^[<>{]+/o ? 'prepost' : $cmd ) ); # Call the command subroutine, call it by name. - return &$call($cmd, $line, $dblineno); + return &$call( $cmd, $line, $dblineno ); } ## end sub cmd_wrapper =head3 C<cmd_a> (command) @@ -3743,25 +3753,27 @@ line if none is specified. =cut sub cmd_a { - my $cmd = shift; - my $line = shift || ''; # [.|line] expr + my $cmd = shift; + my $line = shift || ''; # [.|line] expr my $dbline = shift; # If it's dot (here), or not all digits, use the current line. $line =~ s/^(\.|(?:[^\d]))/$dbline/; - # Should be a line number followed by an expression. - if ($line =~ /^\s*(\d*)\s*(\S.+)/) { - my ($lineno, $expr) = ($1, $2); + # Should be a line number followed by an expression. + if ( $line =~ /^\s*(\d*)\s*(\S.+)/ ) { + my ( $lineno, $expr ) = ( $1, $2 ); # If we have an expression ... - if (length $expr) { + if ( length $expr ) { + # ... but the line isn't breakable, complain. - if ($dbline[$lineno] == 0) { + if ( $dbline[$lineno] == 0 ) { print $OUT "Line $lineno($dbline[$lineno]) does not have an action?\n"; } else { + # It's executable. Record that the line has an action. $had_breakpoints{$filename} |= 2; @@ -3774,6 +3786,7 @@ sub cmd_a { } ## end if (length $expr) } ## end if ($line =~ /^\s*(\d*)\s*(\S.+)/) else { + # Syntax wrong. print $OUT "Adding an action requires an optional lineno and an expression\n" @@ -3789,8 +3802,8 @@ subroutine, C<delete_action>. =cut sub cmd_A { - my $cmd = shift; - my $line = shift || ''; + my $cmd = shift; + my $line = shift || ''; my $dbline = shift; # Dot is this line. @@ -3800,21 +3813,20 @@ sub cmd_A { # The '1' forces the eval to be true. It'll be false only # if delete_action blows up for some reason, in which case # we print $@ and get out. - if ($line eq '*') { + if ( $line eq '*' ) { eval { &delete_action(); 1 } or print $OUT $@ and return; } # There's a real line number. Pass it to delete_action. # Error trapping is as above. - elsif ($line =~ /^(\S.*)/) { + elsif ( $line =~ /^(\S.*)/ ) { eval { &delete_action($1); 1 } or print $OUT $@ and return; } # Swing and a miss. Bad syntax. else { print $OUT - "Deleting an action requires a line number, or '*' for all\n" - ; # hint + "Deleting an action requires a line number, or '*' for all\n" ; # hint } } ## end sub cmd_A @@ -3829,7 +3841,8 @@ will get any kind of an action, including breakpoints). sub delete_action { my $i = shift; - if (defined($i)) { + if ( defined($i) ) { + # Can there be one? die "Line $i has no action .\n" if $dbline[$i] == 0; @@ -3839,16 +3852,16 @@ sub delete_action { } else { print $OUT "Deleting all actions...\n"; - for my $file (keys %had_breakpoints) { + for my $file ( keys %had_breakpoints ) { local *dbline = $main::{ '_<' . $file }; my $max = $#dbline; my $was; - for ($i = 1 ; $i <= $max ; $i++) { - if (defined $dbline{$i}) { + for ( $i = 1 ; $i <= $max ; $i++ ) { + if ( defined $dbline{$i} ) { $dbline{$i} =~ s/\0[^\0]*//; delete $dbline{$i} if $dbline{$i} eq ''; } - unless ($had_breakpoints{$file} &= ~2) { + unless ( $had_breakpoints{$file} &= ~2 ) { delete $had_breakpoints{$file}; } } ## end for ($i = 1 ; $i <= $max... @@ -3874,28 +3887,29 @@ sub cmd_b { # Make . the current line number if it's there.. $line =~ s/^\./$dbline/; - # No line number, no condition. Simple break on current line. - if ($line =~ /^\s*$/) { - &cmd_b_line($dbline, 1); + # No line number, no condition. Simple break on current line. + if ( $line =~ /^\s*$/ ) { + &cmd_b_line( $dbline, 1 ); } # Break on load for a file. - elsif ($line =~ /^load\b\s*(.*)/) { + elsif ( $line =~ /^load\b\s*(.*)/ ) { my $file = $1; $file =~ s/\s+$//; &cmd_b_load($file); } # b compile|postpone <some sub> [<condition>] - # The interpreter actually traps this one for us; we just put the + # The interpreter actually traps this one for us; we just put the # necessary condition in the %postponed hash. - elsif ($line =~ /^(postpone|compile)\b\s*([':A-Za-z_][':\w]*)\s*(.*)/) { + elsif ( $line =~ /^(postpone|compile)\b\s*([':A-Za-z_][':\w]*)\s*(.*)/ ) { + # Capture the condition if there is one. Make it true if none. my $cond = length $3 ? $3 : '1'; # Save the sub name and set $break to 1 if $1 was 'postpone', 0 # if it was 'compile'. - my ($subname, $break) = ($2, $1 eq 'postpone'); + my ( $subname, $break ) = ( $2, $1 eq 'postpone' ); # De-Perl4-ify the name - ' separators to ::. $subname =~ s/\'/::/g; @@ -3904,22 +3918,24 @@ sub cmd_b { $subname = "${'package'}::" . $subname unless $subname =~ /::/; # Add main if it starts with ::. - $subname = "main" . $subname if substr($subname, 0, 2) eq "::"; + $subname = "main" . $subname if substr( $subname, 0, 2 ) eq "::"; # Save the break type for this sub. $postponed{$subname} = $break ? "break +0 if $cond" : "compile"; } ## end elsif ($line =~ ... # b <sub name> [<condition>] - elsif ($line =~ /^([':A-Za-z_][':\w]*(?:\[.*\])?)\s*(.*)/) { - # + elsif ( $line =~ /^([':A-Za-z_][':\w]*(?:\[.*\])?)\s*(.*)/ ) { + + # $subname = $1; $cond = length $2 ? $2 : '1'; - &cmd_b_sub($subname, $cond); + &cmd_b_sub( $subname, $cond ); } # b <line> [<condition>]. - elsif ($line =~ /^(\d*)\s*(.*)/) { + elsif ( $line =~ /^(\d*)\s*(.*)/ ) { + # Capture the line. If none, it's the current line. $line = $1 || $dbline; @@ -3927,7 +3943,7 @@ sub cmd_b { $cond = length $2 ? $2 : '1'; # Break on line. - &cmd_b_line($line, $cond); + &cmd_b_line( $line, $cond ); } # Line didn't make sense. @@ -3977,11 +3993,12 @@ sub cmd_b_load { # This is a block because that way we can use a redo inside it # even without there being any looping structure at all outside it. { + # Save short name and full path if found. push @files, $file; push @files, $::INC{$file} if $::INC{$file}; - # Tack on .pm and do it again unless there was a '.' in the name + # Tack on .pm and do it again unless there was a '.' in the name # already. $file .= '.pm', redo unless $file =~ /\./; } @@ -4050,14 +4067,14 @@ first line I<before> C<$to> that's breakable, if there is one. =cut sub breakable_line { - - my ($from, $to) = @_; + + my ( $from, $to ) = @_; # $i is the start point. (Where are the FORTRAN programs of yesteryear?) my $i = $from; # If there are at least 2 arguments, we're trying to search a range. - if (@_ >= 2) { + if ( @_ >= 2 ) { # $delta is positive for a forward search, negative for a backward one. my $delta = $from < $to ? +1 : -1; @@ -4070,39 +4087,39 @@ sub breakable_line { # If $delta is positive (going forward), $limit will be $#dbline. # If $to is less than $limit, ($limit - $to) will be positive, times # $delta of 1 (positive), so the result is > 0 and we should use $to - # as the stopping point. + # as the stopping point. # # If $to is greater than $limit, ($limit - $to) is negative, - # times $delta of 1 (positive), so the result is < 0 and we should + # times $delta of 1 (positive), so the result is < 0 and we should # use $limit ($#dbline) as the stopping point. # - # If $delta is negative (going backward), $limit will be 1. + # If $delta is negative (going backward), $limit will be 1. # If $to is zero, ($limit - $to) will be 1, times $delta of -1 # (negative) so the result is > 0, and we use $to as the stopping # point. # # If $to is less than zero, ($limit - $to) will be positive, - # times $delta of -1 (negative), so the result is not > 0, and - # we use $limit (1) as the stopping point. + # times $delta of -1 (negative), so the result is not > 0, and + # we use $limit (1) as the stopping point. # # If $to is 1, ($limit - $to) will zero, times $delta of -1 - # (negative), still giving zero; the result is not > 0, and + # (negative), still giving zero; the result is not > 0, and # we use $limit (1) as the stopping point. # # if $to is >1, ($limit - $to) will be negative, times $delta of -1 # (negative), giving a positive (>0) value, so we'll set $limit to # $to. - - $limit = $to if ($limit - $to) * $delta > 0; + + $limit = $to if ( $limit - $to ) * $delta > 0; # The real search loop. # $i starts at $from (the point we want to start searching from). # We move through @dbline in the appropriate direction (determined - # by $delta: either -1 (back) or +1 (ahead). - # We stay in as long as we haven't hit an executable line + # by $delta: either -1 (back) or +1 (ahead). + # We stay in as long as we haven't hit an executable line # ($dbline[$i] == 0 means not executable) and we haven't reached # the limit yet (test similar to the above). - $i += $delta while $dbline[$i] == 0 and ($limit - $i) * $delta > 0; + $i += $delta while $dbline[$i] == 0 and ( $limit - $i ) * $delta > 0; } ## end if (@_ >= 2) @@ -4110,8 +4127,8 @@ sub breakable_line { return $i unless $dbline[$i] == 0; # Format the message and print it: no breakable lines in range. - my ($pl, $upto) = ('', ''); - ($pl, $upto) = ('s', "..$to") if @_ >= 2 and $from != $to; + my ( $pl, $upto ) = ( '', '' ); + ( $pl, $upto ) = ( 's', "..$to" ) if @_ >= 2 and $from != $to; # If there's a filename in filename_error, we'll see it. # If not, not. @@ -4125,11 +4142,12 @@ Like C<breakable_line>, but look in another file. =cut sub breakable_line_in_filename { + # Capture the file name. my ($f) = shift; # Swap the magic line array over there temporarily. - local *dbline = $main::{ '_<' . $f }; + local *dbline = $main::{ '_<' . $f }; # If there's an error, it's in this other file. local $filename_error = " of `$f'"; @@ -4149,7 +4167,7 @@ specified) to the specified line. Dies if it can't. =cut sub break_on_line { - my ($i, $cond) = @_; + my ( $i, $cond ) = @_; # Always true if no condition supplied. $cond = 1 unless @_ >= 2; @@ -4165,14 +4183,16 @@ sub break_on_line { # Mark this file as having breakpoints in it. $had_breakpoints{$filename} |= 1; - # If there is an action or condition here already ... - if ($dbline{$i}) { + # If there is an action or condition here already ... + if ( $dbline{$i} ) { + # ... swap this condition for the existing one. - $dbline{$i} =~ s/^[^\0]*/$cond/; + $dbline{$i} =~ s/^[^\0]*/$cond/; } - else { + else { + # Nothing here - just add the condition. - $dbline{$i} = $cond; + $dbline{$i} = $cond; } } ## end sub break_on_line @@ -4198,20 +4218,20 @@ the breakpoint. =cut sub break_on_filename_line { - my ($f, $i, $cond) = @_; + my ( $f, $i, $cond ) = @_; # Always true if condition left off. $cond = 1 unless @_ >= 3; # Switch the magical hash temporarily. - local *dbline = $main::{ '_<' . $f }; + local *dbline = $main::{ '_<' . $f }; # Localize the variables that break_on_line uses to make its message. local $filename_error = " of `$f'"; local $filename = $f; # Add the breakpoint. - break_on_line($i, $cond); + break_on_line( $i, $cond ); } ## end sub break_on_filename_line =head3 break_on_filename_line_range(file, from, to, [condition]) (API) @@ -4222,16 +4242,16 @@ executable one, and put a breakpoint on the first one you find. =cut sub break_on_filename_line_range { - my ($f, $from, $to, $cond) = @_; + my ( $f, $from, $to, $cond ) = @_; # Find a breakable line if there is one. - my $i = breakable_line_in_filename($f, $from, $to); + my $i = breakable_line_in_filename( $f, $from, $to ); # Always true if missing. $cond = 1 unless @_ >= 3; # Add the breakpoint. - break_on_filename_line($f, $i, $cond); + break_on_filename_line( $f, $i, $cond ); } ## end sub break_on_filename_line_range =head3 subroutine_filename_lines(subname, [condition]) (API) @@ -4242,7 +4262,7 @@ Uses C<find_sub> to locate the desired subroutine. =cut sub subroutine_filename_lines { - my ($subname, $cond) = @_; + my ( $subname, $cond ) = @_; # Returned value from find_sub() is fullpathname:startline-endline. # The match creates the list (fullpathname, start, end). Falling off @@ -4262,7 +4282,7 @@ sub break_subroutine { my $subname = shift; # Get filename, start, and end. - my ($file, $s, $e) = subroutine_filename_lines($subname) + my ( $file, $s, $e ) = subroutine_filename_lines($subname) or die "Subroutine $subname not found.\n"; # Null condition changes to '1' (always true). @@ -4270,7 +4290,7 @@ sub break_subroutine { # Put a break the first place possible in the range of lines # that make up this subroutine. - break_on_filename_line_range($file, $s, $e, @_); + break_on_filename_line_range( $file, $s, $e, @_ ); } ## end sub break_subroutine =head3 cmd_b_sub(subname, [condition]) (command) @@ -4295,14 +4315,15 @@ breakpoint. =cut sub cmd_b_sub { - my ($subname, $cond) = @_; + my ( $subname, $cond ) = @_; # Add always-true condition if we have none. $cond = 1 unless @_ >= 2; - # If the subname isn't a code reference, qualify it so that + # If the subname isn't a code reference, qualify it so that # break_subroutine() will work right. - unless (ref $subname eq 'CODE') { + unless ( ref $subname eq 'CODE' ) { + # Not Perl4. $subname =~ s/\'/::/g; my $s = $subname; @@ -4320,12 +4341,12 @@ sub cmd_b_sub { and defined &{"CORE::GLOBAL::$s"}; # Put it in package 'main' if it has a leading ::. - $subname = "main" . $subname if substr($subname, 0, 2) eq "::"; + $subname = "main" . $subname if substr( $subname, 0, 2 ) eq "::"; } ## end unless (ref $subname eq 'CODE') # Try to set the breakpoint. - eval { break_subroutine($subname, $cond); 1 } or do { + eval { break_subroutine( $subname, $cond ); 1 } or do { local $\ = ''; print $OUT $@ and return; } @@ -4343,30 +4364,30 @@ thereby deleting all the breakpoints. =cut sub cmd_B { - my $cmd = shift; + my $cmd = shift; - # No line spec? Use dbline. + # No line spec? Use dbline. # If there is one, use it if it's non-zero, or wipe it out if it is. - my $line = ($_[0] =~ /^\./) ? $dbline : shift || ''; + my $line = ( $_[0] =~ /^\./ ) ? $dbline : shift || ''; my $dbline = shift; # If the line was dot, make the line the current one. $line =~ s/^\./$dbline/; # If it's * we're deleting all the breakpoints. - if ($line eq '*') { + if ( $line eq '*' ) { eval { &delete_breakpoint(); 1 } or print $OUT $@ and return; } # If there is a line spec, delete the breakpoint on that line. - elsif ($line =~ /^(\S.*)/) { - eval { &delete_breakpoint($line || $dbline); 1 } or do { + elsif ( $line =~ /^(\S.*)/ ) { + eval { &delete_breakpoint( $line || $dbline ); 1 } or do { local $\ = ''; print $OUT $@ and return; }; } ## end elsif ($line =~ /^(\S.*)/) - # No line spec. + # No line spec. else { print $OUT "Deleting a breakpoint requires a line number, or '*' for all\n" @@ -4403,7 +4424,7 @@ sub delete_breakpoint { my $i = shift; # If we got a line, delete just that one. - if (defined($i)) { + if ( defined($i) ) { # Woops. This line wasn't breakable at all. die "Line $i not breakable.\n" if $dbline[$i] == 0; @@ -4421,7 +4442,8 @@ sub delete_breakpoint { # %had_breakpoints lists every file that had at least one # breakpoint in it. - for my $file (keys %had_breakpoints) { + for my $file ( keys %had_breakpoints ) { + # Switch to the desired file temporarily. local *dbline = $main::{ '_<' . $file }; @@ -4429,12 +4451,15 @@ sub delete_breakpoint { my $was; # For all lines in this file ... - for ($i = 1 ; $i <= $max ; $i++) { + for ( $i = 1 ; $i <= $max ; $i++ ) { + # If there's a breakpoint or action on this line ... - if (defined $dbline{$i}) { + if ( defined $dbline{$i} ) { + # ... remove the breakpoint. $dbline{$i} =~ s/^[^\0]+//; - if ($dbline{$i} =~ s/^\0?$//) { + if ( $dbline{$i} =~ s/^\0?$// ) { + # Remove the entry altogether if no action is there. delete $dbline{$i}; } @@ -4442,9 +4467,9 @@ sub delete_breakpoint { } ## end for ($i = 1 ; $i <= $max... # If, after we turn off the "there were breakpoints in this file" - # bit, the entry in %had_breakpoints for this file is zero, + # bit, the entry in %had_breakpoints for this file is zero, # we should remove this file from the hash. - if (not $had_breakpoints{$file} &= ~1) { + if ( not $had_breakpoints{$file} &= ~1 ) { delete $had_breakpoints{$file}; } } ## end for my $file (keys %had_breakpoints) @@ -4484,36 +4509,41 @@ Does the work of either =cut sub cmd_h { - my $cmd = shift; + my $cmd = shift; # If we have no operand, assume null. my $line = shift || ''; # 'h h'. Print the long-format help. - if ($line =~ /^h\s*/) { + if ( $line =~ /^h\s*/ ) { print_help($help); } # 'h <something>'. Search for the command and print only its help. - elsif ($line =~ /^(\S.*)$/) { + elsif ( $line =~ /^(\S.*)$/ ) { # support long commands; otherwise bogus errors # happen when you ask for h on <CR> for example - my $asked = $1; # the command requested - # (for proper error message) + my $asked = $1; # the command requested + # (for proper error message) my $qasked = quotemeta($asked); # for searching; we don't # want to use it as a pattern. # XXX: finds CR but not <CR> # Search the help string for the command. - if ($help =~ /^ # Start of a line + if ( + $help =~ /^ # Start of a line <? # Optional '<' (?:[IB]<) # Optional markup $qasked # The requested command - /mx) { + /mx + ) + { + # It's there; pull it out and print it. - while ($help =~ /^ + while ( + $help =~ /^ (<? # Optional '<' (?:[IB]<) # Optional markup $qasked # The command @@ -4521,7 +4551,9 @@ sub cmd_h { \n) # End of last description line (?!\s) # Next line not starting with # whitespace - /mgx) { + /mgx + ) + { print_help($1); } } @@ -4538,6 +4570,42 @@ sub cmd_h { } } ## end sub cmd_h +=head3 C<cmd_i> - inheritance display + +Display the (nested) parentage of the module or object given. + +=cut + +sub cmd_i { + my $cmd = shift; + my $line = shift; + eval { require Class::ISA }; + if ($@) { + &warn( $@ =~ /locate/ + ? "Class::ISA module not found - please install\n" + : $@ ); + } + else { + ISA: + foreach my $isa ( split( /\s+/, $line ) ) { + $evalarg = $isa; + ($isa) = &eval; + no strict 'refs'; + print join( + ', ', + map { # snaffled unceremoniously from Class::ISA + "$_" + . ( + defined( ${"$_\::VERSION"} ) + ? ' ' . ${"$_\::VERSION"} + : undef ) + } Class::ISA::self_and_super_path(ref($isa) || $isa) + ); + print "\n"; + } + } +} ## end sub cmd_i + =head3 C<cmd_l> - list lines (command) Most of the command is taken up with transforming all the different line @@ -4553,36 +4621,36 @@ later. =cut sub cmd_l { - my $current_line = $line; - - my $cmd = shift; - my $line = shift; + my $current_line = $line; + my $cmd = shift; + my $line = shift; # If this is '-something', delete any spaces after the dash. $line =~ s/^-\s*$/-/; - # If the line is '$something', assume this is a scalar containing a + # If the line is '$something', assume this is a scalar containing a # line number. - if ($line =~ /^(\$.*)/s) { + if ( $line =~ /^(\$.*)/s ) { # Set up for DB::eval() - evaluate in *user* context. $evalarg = $1; + # $evalarg = $2; my ($s) = &eval; # Ooops. Bad scalar. - print($OUT "Error: $@\n"), next CMD if $@; + print( $OUT "Error: $@\n" ), next CMD if $@; # Good scalar. If it's a reference, find what it points to. $s = CvGV_name($s); - print($OUT "Interpreted as: $1 $s\n"); + print( $OUT "Interpreted as: $1 $s\n" ); $line = "$1 $s"; # Call self recursively to really do the command. - &cmd_l('l', $s); + &cmd_l( 'l', $s ); } ## end if ($line =~ /^(\$.*)/s) - # l name. Try to find a sub by that name. - elsif ($line =~ /^([\':A-Za-z_][\':\w]*(\[.*\])?)/s) { + # l name. Try to find a sub by that name. + elsif ( $line =~ /^([\':A-Za-z_][\':\w]*(\[.*\])?)/s ) { my $s = $subname = $1; # De-Perl4. @@ -4599,21 +4667,21 @@ sub cmd_l { and defined &{"CORE::GLOBAL::$s"}; # Put leading '::' names into 'main::'. - $subname = "main" . $subname if substr($subname, 0, 2) eq "::"; + $subname = "main" . $subname if substr( $subname, 0, 2 ) eq "::"; - # Get name:start-stop from find_sub, and break this up at + # Get name:start-stop from find_sub, and break this up at # colons. - @pieces = split (/:/, find_sub($subname) || $sub{$subname}); + @pieces = split( /:/, find_sub($subname) || $sub{$subname} ); # Pull off start-stop. $subrange = pop @pieces; # If the name contained colons, the split broke it up. # Put it back together. - $file = join (':', @pieces); + $file = join( ':', @pieces ); # If we're not in that file, switch over to it. - if ($file ne $filename) { + if ( $file ne $filename ) { print $OUT "Switching to file '$file'.\n" unless $slave_editor; @@ -4626,12 +4694,13 @@ sub cmd_l { # Subrange is 'start-stop'. If this is less than a window full, # swap it to 'start+', which will list a window from the start point. if ($subrange) { - if (eval($subrange) < -$window) { + if ( eval($subrange) < -$window ) { $subrange =~ s/-.*/+/; } + # Call self recursively to list the range. $line = $subrange; - &cmd_l('l', $subrange); + &cmd_l( 'l', $subrange ); } ## end if ($subrange) # Couldn't find it. @@ -4641,16 +4710,19 @@ sub cmd_l { } ## end elsif ($line =~ /^([\':A-Za-z_][\':\w]*(\[.*\])?)/s) # Bare 'l' command. - elsif ($line =~ /^\s*$/) { + elsif ( $line =~ /^\s*$/ ) { + # Compute new range to list. $incr = $window - 1; - $line = $start . '-' . ($start + $incr); + $line = $start . '-' . ( $start + $incr ); + # Recurse to do it. - &cmd_l('l', $line); + &cmd_l( 'l', $line ); } # l [start]+number_of_lines - elsif ($line =~ /^(\d*)\+(\d*)$/) { + elsif ( $line =~ /^(\d*)\+(\d*)$/ ) { + # Don't reset start for 'l +nnn'. $start = $1 if $1; @@ -4660,23 +4732,23 @@ sub cmd_l { $incr = $window - 1 unless $incr; # Create a line range we'll understand, and recurse to do it. - $line = $start . '-' . ($start + $incr); - &cmd_l('l', $line); + $line = $start . '-' . ( $start + $incr ); + &cmd_l( 'l', $line ); } ## end elsif ($line =~ /^(\d*)\+(\d*)$/) # l start-stop or l start,stop - elsif ($line =~ /^((-?[\d\$\.]+)([-,]([\d\$\.]+))?)?/) { + elsif ( $line =~ /^((-?[\d\$\.]+)([-,]([\d\$\.]+))?)?/ ) { # Determine end point; use end of file if not specified. - $end = (!defined $2) ? $max : ($4 ? $4 : $2); + $end = ( !defined $2 ) ? $max : ( $4 ? $4 : $2 ); # Go on to the end, and then stop. $end = $max if $end > $max; - # Determine start line. - $i = $2; - $i = $line if $i eq '.'; - $i = 1 if $i < 1; + # Determine start line. + $i = $2; + $i = $line if $i eq '.'; + $i = 1 if $i < 1; $incr = $end - $i; # If we're running under a slave editor, force it to show the lines. @@ -4687,23 +4759,24 @@ sub cmd_l { # We're doing it ourselves. We want to show the line and special # markers for: - # - the current line in execution + # - the current line in execution # - whether a line is breakable or not # - whether a line has a break or not # - whether a line has an action or not else { - for (; $i <= $end ; $i++) { + for ( ; $i <= $end ; $i++ ) { + # Check for breakpoints and actions. - my ($stop, $action); - ($stop, $action) = split (/\0/, $dbline{$i}) + my ( $stop, $action ); + ( $stop, $action ) = split( /\0/, $dbline{$i} ) if $dbline{$i}; # ==> if this is the current line in execution, # : if it's breakable. $arrow = - ($i == $current_line and $filename eq $filename_ini) + ( $i == $current_line and $filename eq $filename_ini ) ? '==>' - : ($dbline[$i] + 0 ? ':' : ' '); + : ( $dbline[$i] + 0 ? ':' : ' ' ); # Add break and action indicators. $arrow .= 'b' if $stop; @@ -4718,7 +4791,7 @@ sub cmd_l { # Line the prompt up; print a newline if the last line listed # didn't have a newline. - print $OUT "\n" unless $dbline[$i - 1] =~ /\n$/; + print $OUT "\n" unless $dbline[ $i - 1 ] =~ /\n$/; } ## end else [ if ($slave_editor) # Save the point we last listed to in case another relative 'l' @@ -4746,33 +4819,37 @@ Watchpoints are simpler: we just list the entries in C<@to_watch>. sub cmd_L { my $cmd = shift; - # If no argument, list everything. Pre-5.8.0 version always lists + # If no argument, list everything. Pre-5.8.0 version always lists # everything my $arg = shift || 'abw'; $arg = 'abw' unless $CommandSet eq '580'; # sigh... # See what is wanted. - my $action_wanted = ($arg =~ /a/) ? 1 : 0; - my $break_wanted = ($arg =~ /b/) ? 1 : 0; - my $watch_wanted = ($arg =~ /w/) ? 1 : 0; + my $action_wanted = ( $arg =~ /a/ ) ? 1 : 0; + my $break_wanted = ( $arg =~ /b/ ) ? 1 : 0; + my $watch_wanted = ( $arg =~ /w/ ) ? 1 : 0; # Breaks and actions are found together, so we look in the same place # for both. - if ($break_wanted or $action_wanted) { + if ( $break_wanted or $action_wanted ) { + # Look in all the files with breakpoints... - for my $file (keys %had_breakpoints) { + for my $file ( keys %had_breakpoints ) { + # Temporary switch to this file. local *dbline = $main::{ '_<' . $file }; # Set up to look through the whole file. my $max = $#dbline; - my $was; # Flag: did we print something - # in this file? + my $was; # Flag: did we print something + # in this file? # For each line in the file ... - for ($i = 1 ; $i <= $max ; $i++) { + for ( $i = 1 ; $i <= $max ; $i++ ) { + # We've got something on this line. - if (defined $dbline{$i}) { + if ( defined $dbline{$i} ) { + # Print the header if we haven't. print $OUT "$file:\n" unless $was++; @@ -4780,7 +4857,7 @@ sub cmd_L { print $OUT " $i:\t", $dbline[$i]; # Pull out the condition and the action. - ($stop, $action) = split (/\0/, $dbline{$i}); + ( $stop, $action ) = split( /\0/, $dbline{$i} ); # Print the break if there is one and it's wanted. print $OUT " break if (", $stop, ")\n" @@ -4800,10 +4877,10 @@ sub cmd_L { } ## end if ($break_wanted or $action_wanted) # Look for breaks in not-yet-compiled subs: - if (%postponed and $break_wanted) { + if ( %postponed and $break_wanted ) { print $OUT "Postponed breakpoints in subroutines:\n"; my $subname; - for $subname (keys %postponed) { + for $subname ( keys %postponed ) { print $OUT " $subname\t$postponed{$subname}\n"; last if $signal; } @@ -4815,16 +4892,16 @@ sub cmd_L { } keys %postponed_file; # If there are any, list them. - if (@have and ($break_wanted or $action_wanted)) { + if ( @have and ( $break_wanted or $action_wanted ) ) { print $OUT "Postponed breakpoints in files:\n"; - my ($file, $line); + my ( $file, $line ); - for $file (keys %postponed_file) { + for $file ( keys %postponed_file ) { my $db = $postponed_file{$file}; print $OUT " $file:\n"; - for $line (sort { $a <=> $b } keys %$db) { + for $line ( sort { $a <=> $b } keys %$db ) { print $OUT " $line:\n"; - my ($stop, $action) = split (/\0/, $$db{$line}); + my ( $stop, $action ) = split( /\0/, $$db{$line} ); print $OUT " break if (", $stop, ")\n" if $stop and $break_wanted; @@ -4836,16 +4913,16 @@ sub cmd_L { last if $signal; } ## end for $file (keys %postponed_file) } ## end if (@have and ($break_wanted... - if (%break_on_load and $break_wanted) { + if ( %break_on_load and $break_wanted ) { print $OUT "Breakpoints on load:\n"; my $file; - for $file (keys %break_on_load) { + for $file ( keys %break_on_load ) { print $OUT " $file\n"; last if $signal; } } ## end if (%break_on_load and... if ($watch_wanted) { - if ($trace & 2) { + if ( $trace & 2 ) { print $OUT "Watch-expressions:\n" if @to_watch; for my $expr (@to_watch) { print $OUT " $expr\n"; @@ -4878,7 +4955,7 @@ sub cmd_o { my $opt = shift || ''; # opt[=val] # Nonblank. Try to parse and process. - if ($opt =~ /^(\S.*)/) { + if ( $opt =~ /^(\S.*)/ ) { &parse_options($1); } @@ -4918,21 +4995,22 @@ sub cmd_v { # this pattern will match whether or not a numeric line is specified, # which means that we'll always enter this loop (though a non-numeric # argument results in no action at all)). - if ($line =~ /^(\d*)$/) { + if ( $line =~ /^(\d*)$/ ) { + # Total number of lines to list (a windowful). $incr = $window - 1; # Set the start to the argument given (if there was one). - $start = $1 if $1; + $start = $1 if $1; # Back up by the context amount. $start -= $preview; # Put together a linespec that cmd_l will like. - $line = $start . '-' . ($start + $incr); + $line = $start . '-' . ( $start + $incr ); # List the lines. - &cmd_l('l', $line); + &cmd_l( 'l', $line ); } ## end if ($line =~ /^(\d*)$/) } ## end sub cmd_v @@ -4949,13 +5027,14 @@ of any of the expressions changes. =cut sub cmd_w { - my $cmd = shift; + my $cmd = shift; # Null expression if no arguments. my $expr = shift || ''; # If expression is not null ... - if ($expr =~ /^(\S.*)/) { + if ( $expr =~ /^(\S.*)/ ) { + # ... save it. push @to_watch, $expr; @@ -4963,8 +5042,8 @@ sub cmd_w { # in the user's context. This version can handle expressions which # return a list value. $evalarg = $expr; - my ($val) = join(' ', &eval); - $val = (defined $val) ? "'$val'" : 'undef'; + my ($val) = join( ' ', &eval ); + $val = ( defined $val ) ? "'$val'" : 'undef'; # Save the current value of the expression. push @old_watch, $val; @@ -4975,8 +5054,7 @@ sub cmd_w { # You have to give one to get one. else { - print $OUT - "Adding a watch-expression requires an expression\n"; # hint + print $OUT "Adding a watch-expression requires an expression\n"; # hint } } ## end sub cmd_w @@ -5001,7 +5079,8 @@ sub cmd_W { my $expr = shift || ''; # Delete them all. - if ($expr eq '*') { + if ( $expr eq '*' ) { + # Not watching now. $trace &= ~2; @@ -5012,7 +5091,8 @@ sub cmd_W { } # Delete one of them. - elsif ($expr =~ /^(\S.*)/) { + elsif ( $expr =~ /^(\S.*)/ ) { + # Where we are in the list. my $i_cnt = 0; @@ -5021,10 +5101,10 @@ sub cmd_W { my $val = $to_watch[$i_cnt]; # Does this one match the command argument? - if ($val eq $expr) { # =~ m/^\Q$i$/) { - # Yes. Turn it off, and its value too. - splice(@to_watch, $i_cnt, 1); - splice(@old_watch, $i_cnt, 1); + if ( $val eq $expr ) { # =~ m/^\Q$i$/) { + # Yes. Turn it off, and its value too. + splice( @to_watch, $i_cnt, 1 ); + splice( @old_watch, $i_cnt, 1 ); } $i_cnt++; } ## end foreach (@to_watch) @@ -5038,8 +5118,8 @@ sub cmd_W { # No command arguments entered. else { print $OUT -"Deleting a watch-expression requires an expression, or '*' for all\n" - ; # hint + "Deleting a watch-expression requires an expression, or '*' for all\n" + ; # hint } } ## end sub cmd_W @@ -5050,6 +5130,34 @@ sub cmd_W { These are general support routines that are used in a number of places throughout the debugger. +=item cmd_P + +Something to do with assertions + +=cut + +sub cmd_P { + unless ($ini_assertion) { + print $OUT "Assertions not supported in this Perl interpreter\n"; + } else { + if ( $cmd =~ /^.\b\s*([+-]?)\s*(~?)\s*(\w+(\s*\|\s*\w+)*)\s*$/ ) { + my ( $how, $neg, $flags ) = ( $1, $2, $3 ); + my $acu = parse_DollarCaretP_flags($flags); + if ( defined $acu ) { + $acu = ~$acu if $neg; + if ( $how eq '+' ) { $^P |= $acu } + elsif ( $how eq '-' ) { $^P &= ~$acu } + else { $^P = $acu } + } + + # else { print $OUT "undefined acu\n" } + } + my $expanded = expand_DollarCaretP_flags($^P); + print $OUT "Internal Perl debugger flags:\n\$^P=$expanded\n"; + $expanded; + } +} + =head2 save save() saves the user's versions of globals that would mess us up in C<@saved>, @@ -5058,15 +5166,16 @@ and installs the versions we like better. =cut sub save { - # Save eval failure, command failure, extended OS error, output field - # separator, input record separator, output record separator and + + # Save eval failure, command failure, extended OS error, output field + # separator, input record separator, output record separator and # the warning setting. - @saved = ($@, $!, $^E, $,, $/, $\, $^W); + @saved = ( $@, $!, $^E, $,, $/, $\, $^W ); - $, = ""; # output field separator is null string - $/ = "\n"; # input record separator is newline - $\ = ""; # output record separator is null string - $^W = 0; # warnings are off + $, = ""; # output field separator is null string + $/ = "\n"; # input record separator is newline + $\ = ""; # output record separator is null string + $^W = 0; # warnings are off } ## end sub save =head2 C<print_lineinfo> - show where we are now @@ -5079,6 +5188,7 @@ debugger output. =cut sub print_lineinfo { + # Make the terminal sensible if we're not the primary debugger. resetterm(1) if $LINEINFO eq $OUT and $term_pid != $$; local $\ = ''; @@ -5100,19 +5210,22 @@ we set the breakpoint on it, deleting the breakpoint from C<%postponed>. # The following takes its argument via $evalarg to preserve current @_ sub postponed_sub { + # Get the subroutine name. my $subname = shift; # If this is a 'break +<n> if <condition>' ... - if ($postponed{$subname} =~ s/^break\s([+-]?\d+)\s+if\s//) { + if ( $postponed{$subname} =~ s/^break\s([+-]?\d+)\s+if\s// ) { + # If there's no offset, use '+0'. my $offset = $1 || 0; # find_sub's value is 'fullpath-filename:start-stop'. It's # possible that the filename might have colons in it too. - my ($file, $i) = (find_sub($subname) =~ /^(.*):(\d+)-.*$/); + my ( $file, $i ) = ( find_sub($subname) =~ /^(.*):(\d+)-.*$/ ); if ($i) { - # We got the start line. Add the offset '+<n>' from + + # We got the start line. Add the offset '+<n>' from # $postponed{subname}. $i += $offset; @@ -5120,7 +5233,7 @@ sub postponed_sub { local *dbline = $main::{ '_<' . $file }; # No warnings, please. - local $^W = 0; # != 0 is magical below + local $^W = 0; # != 0 is magical below # This file's got a breakpoint in it. $had_breakpoints{$file} |= 1; @@ -5143,7 +5256,7 @@ sub postponed_sub { } return; } ## end if ($postponed{$subname... - elsif ($postponed{$subname} eq 'compile') { $signal = 1 } + elsif ( $postponed{$subname} eq 'compile' ) { $signal = 1 } #print $OUT "In postponed_sub for `$subname'.\n"; } ## end sub postponed_sub @@ -5163,13 +5276,15 @@ If it's a subroutine, the incoming parameter is the subroutine name. =cut sub postponed { + # If there's a break, process it. if ($ImmediateStop) { + # Right, we've stopped. Turn it off. $ImmediateStop = 0; # Enter the command loop when DB::DB gets called. - $signal = 1; + $signal = 1; } # If this is a subroutine, let postponed_sub() deal with it. @@ -5182,7 +5297,7 @@ sub postponed { local $\ = ''; $signal = 1, print $OUT "'$filename' loaded...\n" if $break_on_load{$filename}; - print_lineinfo(' ' x $stack_depth, "Package $filename.\n") if $frame; + print_lineinfo( ' ' x $stack_depth, "Package $filename.\n" ) if $frame; # Do we have any breakpoints to put in this file? return unless $postponed_file{$filename}; @@ -5194,12 +5309,13 @@ sub postponed { # breakpoints saved in %postponed_file into %dbline by assigning # the whole hash; we have to do it one item at a time for the # breakpoints to be set properly. - #%dbline = %{$postponed_file{$filename}}; + #%dbline = %{$postponed_file{$filename}}; # Set the breakpoints, one at a time. my $key; - for $key (keys %{ $postponed_file{$filename} }) { + for $key ( keys %{ $postponed_file{$filename} } ) { + # Stash the saved breakpoint into the current file's magic line array. $dbline{$key} = ${ $postponed_file{$filename} }{$key}; } @@ -5249,6 +5365,7 @@ and we then return to the caller. =cut sub dumpit { + # Save the current output filehandle and switch to the one # passed in as the first parameter. local ($savout) = select(shift); @@ -5263,20 +5380,20 @@ sub dumpit { local $doret = -2; # Load dumpvar.pl unless we've already got the sub we need from it. - unless (defined &main::dumpValue) { + unless ( defined &main::dumpValue ) { do 'dumpvar.pl'; } # If the load succeeded (or we already had dumpvalue()), go ahead # and dump things. - if (defined &main::dumpValue) { + if ( defined &main::dumpValue ) { local $\ = ''; local $, = ''; local $" = ' '; my $v = shift; my $maxdepth = shift || $option{dumpDepth}; $maxdepth = -1 unless defined $maxdepth; # -1 means infinite depth - &main::dumpValue($v, $maxdepth); + &main::dumpValue( $v, $maxdepth ); } ## end if (defined &main::dumpValue) # Oops, couldn't load dumpvar.pl. @@ -5324,27 +5441,29 @@ correct if this routine is called in a tied method. sub print_trace { local $\ = ''; my $fh = shift; + # If this is going to a slave editor, but we're not the primary # debugger, reset it first. resetterm(1) - if $fh eq $LINEINFO # slave editor - and $LINEINFO eq $OUT # normal output - and $term_pid != $$; # not the primary + if $fh eq $LINEINFO # slave editor + and $LINEINFO eq $OUT # normal output + and $term_pid != $$; # not the primary # Collect the actual trace information to be formatted. # This is an array of hashes of subroutine call info. - my @sub = dump_trace($_[0] + 1, $_[1]); + my @sub = dump_trace( $_[0] + 1, $_[1] ); # Grab the "short report" flag from @_. - my $short = $_[2]; # Print short report, next one for sub name + my $short = $_[2]; # Print short report, next one for sub name # Run through the traceback info, format it, and print it. my $s; - for ($i = 0 ; $i <= $#sub ; $i++) { + for ( $i = 0 ; $i <= $#sub ; $i++ ) { + # Drop out if the user has lost interest and hit control-C. last if $signal; - # Set the separator so arrys print nice. + # Set the separator so arrys print nice. local $" = ', '; # Grab and stringify the arguments if they are there. @@ -5352,8 +5471,9 @@ sub print_trace { defined $sub[$i]{args} ? "(@{ $sub[$i]{args} })" : ''; + # Shorten them up if $maxtrace says they're too long. - $args = (substr $args, 0, $maxtrace - 3) . '...' + $args = ( substr $args, 0, $maxtrace - 3 ) . '...' if length $args > $maxtrace; # Get the file name. @@ -5364,19 +5484,19 @@ sub print_trace { # Get the actual sub's name, and shorten to $maxtrace's requirement. $s = $sub[$i]{sub}; - $s = (substr $s, 0, $maxtrace - 3) . '...' if length $s > $maxtrace; + $s = ( substr $s, 0, $maxtrace - 3 ) . '...' if length $s > $maxtrace; # Short report uses trimmed file and sub names. if ($short) { my $sub = @_ >= 4 ? $_[3] : $s; - print $fh - "$sub[$i]{context}=$sub$args from $file:$sub[$i]{line}\n"; + print $fh "$sub[$i]{context}=$sub$args from $file:$sub[$i]{line}\n"; } ## end if ($short) # Non-short report includes full names. else { - print $fh "$sub[$i]{context} = $s$args" . " called from $file" . - " line $sub[$i]{line}\n"; + print $fh "$sub[$i]{context} = $s$args" + . " called from $file" + . " line $sub[$i]{line}\n"; } } ## end for ($i = 0 ; $i <= $#sub... } ## end sub print_trace @@ -5422,19 +5542,19 @@ sub dump_trace { my $count = shift || 1e9; # We increment skip because caller(1) is the first level *back* from - # the current one. Add $skip to the count of frames so we have a + # the current one. Add $skip to the count of frames so we have a # simple stop criterion, counting from $skip to $count+$skip. $skip++; $count += $skip; # These variables are used to capture output from caller(); - my ($p, $file, $line, $sub, $h, $context); + my ( $p, $file, $line, $sub, $h, $context ); - my ($e, $r, @a, @sub, $args); + my ( $e, $r, @a, @sub, $args ); # XXX Okay... why'd we do that? my $nothard = not $frame & 8; - local $frame = 0; + local $frame = 0; # Do not want to trace this. my $otrace = $trace; @@ -5449,7 +5569,7 @@ sub dump_trace { for ( $i = $skip ; $i < $count - and ($p, $file, $line, $sub, $h, $context, $e, $r) = caller($i) ; + and ( $p, $file, $line, $sub, $h, $context, $e, $r ) = caller($i) ; $i++ ) { @@ -5458,17 +5578,17 @@ sub dump_trace { @a = (); for $arg (@args) { my $type; - if (not defined $arg) { # undefined parameter + if ( not defined $arg ) { # undefined parameter push @a, "undef"; } - elsif ($nothard and tied $arg) { # tied parameter + elsif ( $nothard and tied $arg ) { # tied parameter push @a, "tied"; } - elsif ($nothard and $type = ref $arg) { # reference + elsif ( $nothard and $type = ref $arg ) { # reference push @a, "ref($type)"; } - else { # can be stringified + else { # can be stringified local $_ = "$arg"; # Safe to stringify now - should not call f(). @@ -5486,15 +5606,15 @@ sub dump_trace { # Turn control characters into ^-whatever. s/([\0-\37\177])/sprintf("^%c",ord($1)^64)/eg; - push (@a, $_); + push( @a, $_ ); } ## end else [ if (not defined $arg) } ## end for $arg (@args) # If context is true, this is array (@)context. # If context is false, this is scalar ($) context. - # If neither, context isn't defined. (This is apparently a 'can't + # If neither, context isn't defined. (This is apparently a 'can't # happen' trap.) - $context = $context ? '@' : (defined $context ? "\$" : '.'); + $context = $context ? '@' : ( defined $context ? "\$" : '.' ); # if the sub has args ($h true), make an anonymous array of the # dumped args. @@ -5502,7 +5622,7 @@ sub dump_trace { # remove trailing newline-whitespace-semicolon-end of line sequence # from the eval text, if any. - $e =~ s/\n\s*\;\s*\Z// if $e; + $e =~ s/\n\s*\;\s*\Z// if $e; # Escape backslashed single-quotes again if necessary. $e =~ s/([\\\'])/\\$1/g if $e; @@ -5511,19 +5631,20 @@ sub dump_trace { if ($r) { $sub = "require '$e'"; } + # if it's false, the eval text is really from an eval. - elsif (defined $r) { + elsif ( defined $r ) { $sub = "eval '$e'"; } # If the sub is '(eval)', this is a block eval, meaning we don't # know what the eval'ed text actually was. - elsif ($sub eq '(eval)') { + elsif ( $sub eq '(eval)' ) { $sub = "eval {...}"; } # Stick the collected information into @sub as an anonymous hash. - push ( + push( @sub, { context => $context, @@ -5532,7 +5653,7 @@ sub dump_trace { file => $file, line => $line } - ); + ); # Stop processing frames if the user hit control-C. last if $signal; @@ -5555,7 +5676,8 @@ without a trailing backslash. sub action { my $action = shift; - while ($action =~ s/\\$//) { + while ( $action =~ s/\\$// ) { + # We have a backslash on the end. Read more. $action .= &gets; } ## end while ($action =~ s/\\$//) @@ -5619,29 +5741,29 @@ sub system { # We save, change, then restore STDIN and STDOUT to avoid fork() since # some non-Unix systems can do system() but have problems with fork(). - open(SAVEIN, "<&STDIN") || &warn("Can't save STDIN"); - open(SAVEOUT, ">&STDOUT") || &warn("Can't save STDOUT"); - open(STDIN, "<&IN") || &warn("Can't redirect STDIN"); - open(STDOUT, ">&OUT") || &warn("Can't redirect STDOUT"); + open( SAVEIN, "<&STDIN" ) || &warn("Can't save STDIN"); + open( SAVEOUT, ">&STDOUT" ) || &warn("Can't save STDOUT"); + open( STDIN, "<&IN" ) || &warn("Can't redirect STDIN"); + open( STDOUT, ">&OUT" ) || &warn("Can't redirect STDOUT"); # XXX: using csh or tcsh destroys sigint retvals! system(@_); - open(STDIN, "<&SAVEIN") || &warn("Can't restore STDIN"); - open(STDOUT, ">&SAVEOUT") || &warn("Can't restore STDOUT"); + open( STDIN, "<&SAVEIN" ) || &warn("Can't restore STDIN"); + open( STDOUT, ">&SAVEOUT" ) || &warn("Can't restore STDOUT"); close(SAVEIN); close(SAVEOUT); # most of the $? crud was coping with broken cshisms - if ($? >> 8) { - &warn("(Command exited ", ($? >> 8), ")\n"); + if ( $? >> 8 ) { + &warn( "(Command exited ", ( $? >> 8 ), ")\n" ); } elsif ($?) { &warn( "(Command died of SIG#", - ($? & 127), - (($? & 128) ? " -- core dumped" : ""), + ( $? & 127 ), + ( ( $? & 128 ) ? " -- core dumped" : "" ), ")", "\n" - ); + ); } ## end elsif ($?) return $?; @@ -5669,6 +5791,7 @@ the appropriate attributes. We then =cut sub setterm { + # Load Term::Readline, but quietly; don't debug it and don't trace it. local $frame = 0; local $doret = -2; @@ -5677,10 +5800,10 @@ sub setterm { # If noTTY is set, but we have a TTY name, go ahead and hook up to it. if ($notty) { if ($tty) { - my ($i, $o) = split $tty, /,/; + my ( $i, $o ) = split $tty, /,/; $o = $i unless defined $o; - open(IN, "<$i") or die "Cannot open TTY `$i' for read: $!"; - open(OUT, ">$o") or die "Cannot open TTY `$o' for write: $!"; + open( IN, "<$i" ) or die "Cannot open TTY `$i' for read: $!"; + open( OUT, ">$o" ) or die "Cannot open TTY `$o' for write: $!"; $IN = \*IN; $OUT = \*OUT; my $sel = select($OUT); @@ -5691,6 +5814,7 @@ sub setterm { # We don't have a TTY - try to find one via Term::Rendezvous. else { eval "require Term::Rendezvous;" or die; + # See if we have anything to pass to Term::Rendezvous. # Use /tmp/perldbtty$$ if not. my $rv = $ENV{PERLDB_NOTTY} || "/tmp/perldbtty$$"; @@ -5702,14 +5826,13 @@ sub setterm { } ## end else [ if ($tty) } ## end if ($notty) - # We're a daughter debugger. Try to fork off another TTY. - if ($term_pid eq '-1') { # In a TTY with another debugger + if ( $term_pid eq '-1' ) { # In a TTY with another debugger resetterm(2); } # If we shouldn't use Term::ReadLine, don't. - if (!$rl) { + if ( !$rl ) { $term = new Term::ReadLine::Stub 'perldb', $IN, $OUT; } @@ -5720,7 +5843,7 @@ sub setterm { $rl_attribs = $term->Attribs; $rl_attribs->{basic_word_break_characters} .= '-:+/*,[])}' if defined $rl_attribs->{basic_word_break_characters} - and index($rl_attribs->{basic_word_break_characters}, ":") == -1; + and index( $rl_attribs->{basic_word_break_characters}, ":" ) == -1; $rl_attribs->{special_prefixes} = '$@&%'; $rl_attribs->{completer_word_break_characters} .= '$@&%'; $rl_attribs->{completion_function} = \&db_complete; @@ -5732,7 +5855,7 @@ sub setterm { $term->MinLine(2); - if ($term->Features->{setHistory} and "@hist" ne "?") { + if ( $term->Features->{setHistory} and "@hist" ne "?" ) { $term->SetHistory(@hist); } @@ -5778,7 +5901,7 @@ properly set up. =cut sub xterm_get_fork_TTY { - (my $name = $0) =~ s,^.*[/\\],,s; + ( my $name = $0 ) =~ s,^.*[/\\],,s; open XT, qq[3>&1 xterm -title "Daughter Perl debugger $pids $name" -e sh -c 'tty 1>&3;\ sleep 10000000' |]; @@ -5801,9 +5924,9 @@ XXX It behooves an OS/2 expert to write the necessary documentation for this! # This example function resets $IN, $OUT itself sub os2_get_fork_TTY { - local $^F = 40; # XXXX Fixme! + local $^F = 40; # XXXX Fixme! local $\ = ''; - my ($in1, $out1, $in2, $out2); + my ( $in1, $out1, $in2, $out2 ); # Having -d in PERL5OPT would lead to a disaster... local $ENV{PERL5OPT} = $ENV{PERL5OPT} if $ENV{PERL5OPT}; @@ -5813,7 +5936,7 @@ sub os2_get_fork_TTY { local $ENV{PERL5LIB} = $ENV{PERL5LIB} ? $ENV{PERL5LIB} : $ENV{PERLLIB}; $ENV{PERL5LIB} = '' unless defined $ENV{PERL5LIB}; $ENV{PERL5LIB} = join ';', @ini_INC, split /;/, $ENV{PERL5LIB}; - (my $name = $0) =~ s,^.*[/\\],,s; + ( my $name = $0 ) =~ s,^.*[/\\],,s; my @args; if ( @@ -5823,12 +5946,11 @@ sub os2_get_fork_TTY { # system P_SESSION will fail if there is another process # in the same session with a "dependent" asynchronous child session. and @args = ( - $rl, fileno $in1, fileno $out2, - "Daughter Perl debugger $pids $name" + $rl, fileno $in1, fileno $out2, "Daughter Perl debugger $pids $name" ) and ( - ($kpid = CORE::system 4, $^X, '-we', - <<'ES', @args) >= 0 # P_SESSION + ( $kpid = CORE::system 4, $^X, '-we', + <<'ES', @args ) >= 0 # P_SESSION END {sleep 5 unless $loaded} BEGIN {open STDIN, '</dev/con' or warn "reopen stdin: $!"} use OS2::Process; @@ -5854,7 +5976,7 @@ ES ) { $pidprompt = ''; # Shown anyway in titlebar - reset_IN_OUT($in2, $out1); + reset_IN_OUT( $in2, $out1 ); $tty = '*reset*'; return ''; # Indicate that reset_IN_OUT is called } ## end if (pipe $in1, $out1 and... @@ -5886,10 +6008,10 @@ sub create_IN_OUT { # Create a window with IN/OUT handles redirected there # the TTY name if get_fork_TTY works. my $in = &get_fork_TTY if defined &get_fork_TTY; - # It used to be that + # It used to be that $in = $fork_TTY if defined $fork_TTY; # Backward compatibility - if (not defined $in) { + if ( not defined $in ) { my $why = shift; # We don't know how. @@ -5918,7 +6040,7 @@ EOP EOP } ## end if (not defined $in) - elsif ($in ne '') { + elsif ( $in ne '' ) { TTY($in); } else { @@ -5946,7 +6068,7 @@ and try to do that. =cut -sub resetterm { # We forked, so we need a different TTY +sub resetterm { # We forked, so we need a different TTY # Needs to be passed to create_IN_OUT() as well. my $in = shift; @@ -5969,7 +6091,7 @@ sub resetterm { # We forked, so we need a different TTY $pidprompt = $pids; # We now 0wnz this terminal. - $term_pid = $$; + $term_pid = $$; # Just return if we're not supposed to try to create a new TTY. return unless $CreateTTY & $in; @@ -6002,11 +6124,12 @@ sub readline { # Pull a line out of the typeahead if there's stuff there. if (@typeahead) { + # How many lines left. my $left = @typeahead; # Get the next line. - my $got = shift @typeahead; + my $got = shift @typeahead; # Print a message saying we got input from the typeahead. local $\ = ''; @@ -6019,30 +6142,33 @@ sub readline { return $got; } ## end if (@typeahead) - # We really need to read some input. Turn off entry/exit trace and + # We really need to read some input. Turn off entry/exit trace and # return value printing. local $frame = 0; local $doret = -2; # If there are stacked filehandles to read from ... while (@cmdfhs) { + # Read from the last one in the stack. - my $line = CORE::readline($cmdfhs[-1]); + my $line = CORE::readline( $cmdfhs[-1] ); + # If we got a line ... defined $line - ? (print $OUT ">> $line" and return $line) # Echo and return - : close pop @cmdfhs; # Pop and close + ? ( print $OUT ">> $line" and return $line ) # Echo and return + : close pop @cmdfhs; # Pop and close } ## end while (@cmdfhs) # Nothing on the filehandle stack. Socket? - if (ref $OUT and UNIVERSAL::isa($OUT, 'IO::Socket::INET')) { + if ( ref $OUT and UNIVERSAL::isa( $OUT, 'IO::Socket::INET' ) ) { + # Send anyting we have to send. - $OUT->write(join ('', @_)); + $OUT->write( join( '', @_ ) ); # Receive anything there is to receive. my $stuff; - $IN->recv($stuff, 2048); # XXX "what's wrong with sysread?" - # XXX Don't know. You tell me. + $IN->recv( $stuff, 2048 ); # XXX "what's wrong with sysread?" + # XXX Don't know. You tell me. # What we got. $stuff; @@ -6067,12 +6193,19 @@ its value. =cut sub dump_option { - my ($opt, $val) = @_; - $val = option_val($opt, 'N/A'); + my ( $opt, $val ) = @_; + $val = option_val( $opt, 'N/A' ); $val =~ s/([\\\'])/\\$1/g; printf $OUT "%20s = '%s'\n", $opt, $val; } ## end sub dump_option +sub options2remember { + foreach my $k (@RememberOnROptions) { + $option{$k} = option_val( $k, 'N/A' ); + } + return %option; +} + =head2 C<option_val> - find the current value of an option This can't just be a simple hash lookup because of the indirect way that @@ -6084,13 +6217,14 @@ You must supply a default value to be used in case the option isn't set. =cut sub option_val { - my ($opt, $default) = @_; + my ( $opt, $default ) = @_; my $val; # Does this option exist, and is it a variable? # If so, retrieve the value via the value in %optionVars. if ( defined $optionVars{$opt} - and defined ${ $optionVars{$opt} }) { + and defined ${ $optionVars{$opt} } ) + { $val = ${ $optionVars{$opt} }; } @@ -6098,14 +6232,15 @@ sub option_val { # If so, call the subroutine via the ref in %optionAction # and capture the value. elsif ( defined $optionAction{$opt} - and defined &{ $optionAction{$opt} }) { + and defined &{ $optionAction{$opt} } ) + { $val = &{ $optionAction{$opt} }(); } # If there's an action or variable for the supplied option, # but no value was set, use the default. elsif (defined $optionAction{$opt} and not defined $option{$opt} - or defined $optionVars{$opt} and not defined ${ $optionVars{$opt} }) + or defined $optionVars{$opt} and not defined ${ $optionVars{$opt} } ) { $val = $default; } @@ -6147,10 +6282,10 @@ sub parse_options { local $\ = ''; # These options need a value. Don't allow them to be clobbered by accident. - my %opt_needs_val = map { ($_ => 1) } qw{ + my %opt_needs_val = map { ( $_ => 1 ) } qw{ dumpDepth arrayDepth hashDepth LineInfo maxTraceLen ornaments windowSize pager quote ReadLine recallCommand RemotePort ShellBang TTY CommandSet - }; + }; while (length) { my $val_defaulted; @@ -6160,21 +6295,20 @@ sub parse_options { # Options are always all word characters, followed by a non-word # separator. - s/^(\w+)(\W?)// or print($OUT "Invalid option `$_'\n"), last; - my ($opt, $sep) = ($1, $2); + s/^(\w+)(\W?)// or print( $OUT "Invalid option `$_'\n" ), last; + my ( $opt, $sep ) = ( $1, $2 ); # Make sure that such an option exists. - my $matches = grep(/^\Q$opt/ && ($option = $_), @options) || - grep(/^\Q$opt/i && ($option = $_), @options); - - print($OUT "Unknown option `$opt'\n"), next unless $matches; - print($OUT "Ambiguous option `$opt'\n"), next if $matches > 1; + my $matches = grep( /^\Q$opt/ && ( $option = $_ ), @options ) + || grep( /^\Q$opt/i && ( $option = $_ ), @options ); + print( $OUT "Unknown option `$opt'\n" ), next unless $matches; + print( $OUT "Ambiguous option `$opt'\n" ), next if $matches > 1; my $val; # '?' as separator means query, but must have whitespace after it. - if ("?" eq $sep) { - print($OUT "Option query `$opt?' followed by non-space `$_'\n"), + if ( "?" eq $sep ) { + print( $OUT "Option query `$opt?' followed by non-space `$_'\n" ), last if /^\S/; @@ -6183,17 +6317,18 @@ sub parse_options { # Separator is whitespace (or just a carriage return). # They're going for a default, which we assume is 1. - elsif ($sep !~ /\S/) { + elsif ( $sep !~ /\S/ ) { $val_defaulted = 1; - $val = "1"; # this is an evil default; make 'em set it! + $val = "1"; # this is an evil default; make 'em set it! } # Separator is =. Trying to set a value. - elsif ($sep eq "=") { + elsif ( $sep eq "=" ) { + # If quoted, extract a quoted string. if (s/ (["']) ( (?: \\. | (?! \1 ) [^\\] )* ) \1 //x) { my $quote = $1; - ($val = $2) =~ s/\\([$quote\\])/$1/g; + ( $val = $2 ) =~ s/\\([$quote\\])/$1/g; } # Not quoted. Use the whole thing. Warn about 'option='. @@ -6206,20 +6341,18 @@ sub parse_options { } ## end elsif ($sep eq "=") - # "Quoted" with [], <>, or {}. + # "Quoted" with [], <>, or {}. else { #{ to "let some poor schmuck bounce on the % key in B<vi>." - my ($end) = "\\" . substr(")]>}$sep", index("([<{", $sep), 1); #} + my ($end) = + "\\" . substr( ")]>}$sep", index( "([<{", $sep ), 1 ); #} s/^(([^\\$end]|\\[\\$end])*)$end($|\s+)// - or print($OUT "Unclosed option value `$opt$sep$_'\n"), last; - ($val = $1) =~ s/\\([\\$end])/$1/g; + or print( $OUT "Unclosed option value `$opt$sep$_'\n" ), last; + ( $val = $1 ) =~ s/\\([\\$end])/$1/g; } ## end else [ if ("?" eq $sep) - # Impedance-match the code above to the code below. - my $option = $opt; - # Exclude non-booleans from getting set to 1 by default. - if ($opt_needs_val{$option} && $val_defaulted) { - my $cmd = ($CommandSet eq '580') ? 'o' : 'O'; + if ( $opt_needs_val{$option} && $val_defaulted ) { + my $cmd = ( $CommandSet eq '580' ) ? 'o' : 'O'; print $OUT "Option `$opt' is non-boolean. Use `$cmd $option=VAL' to set, `$cmd $option?' to query\n"; next; @@ -6235,20 +6368,20 @@ sub parse_options { require '$optionRequire{$option}'; 1; } || die # XXX: shouldn't happen - if defined $optionRequire{$option} && - defined $val; + if defined $optionRequire{$option} + && defined $val; - # Set it. + # Set it. # Stick it in the proper variable if it goes in a variable. ${ $optionVars{$option} } = $val - if defined $optionVars{$option} && - defined $val; + if defined $optionVars{$option} + && defined $val; # Call the appropriate sub if it gets set via sub. &{ $optionAction{$option} }($val) - if defined $optionAction{$option} && - defined &{ $optionAction{$option} } && - defined $val; + if defined $optionAction{$option} + && defined &{ $optionAction{$option} } + && defined $val; # Not initialization - echo the value we set it to. dump_option($option) unless $OUT eq \*STDERR; @@ -6270,7 +6403,7 @@ then as hexadecimal values. =cut sub set_list { - my ($stem, @list) = @_; + my ( $stem, @list ) = @_; my $val; # VAR_n: how many we have. Scalar assignment gets the number of items. @@ -6278,7 +6411,7 @@ sub set_list { # Grab each item in the list, escape the backslashes, encode the non-ASCII # as hex, and then save in the appropriate VAR_0, VAR_1, etc. - for $i (0 .. $#list) { + for $i ( 0 .. $#list ) { $val = $list[$i]; $val =~ s/\\/\\\\/g; $val =~ s/([\0-\37\177\200-\377])/"\\0x" . unpack('H2',$1)/eg; @@ -6298,7 +6431,7 @@ sub get_list { my @list; my $n = delete $ENV{"${stem}_n"}; my $val; - for $i (0 .. $n - 1) { + for $i ( 0 .. $n - 1 ) { $val = delete $ENV{"${stem}_$i"}; $val =~ s/\\((\\)|0x(..))/ $2 ? $2 : pack('H2', $3) /ge; push @list, $val; @@ -6335,7 +6468,7 @@ assumptions about what filehandles are available. =cut sub warn { - my ($msg) = join ("", @_); + my ($msg) = join( "", @_ ); $msg .= ": $!\n" unless $msg =~ /\n$/; local $\ = ''; print $OUT $msg; @@ -6355,9 +6488,9 @@ sub reset_IN_OUT { my $switch_li = $LINEINFO eq $OUT; # If there's a term and it's able to get a new tty, try to get one. - if ($term and $term->Features->{newTTY}) { - ($IN, $OUT) = (shift, shift); - $term->newTTY($IN, $OUT); + if ( $term and $term->Features->{newTTY} ) { + ( $IN, $OUT ) = ( shift, shift ); + $term->newTTY( $IN, $OUT ); } # This term can't get a new tty now. Better luck later. @@ -6367,7 +6500,7 @@ sub reset_IN_OUT { # Set the filehndles up as they were. else { - ($IN, $OUT) = (shift, shift); + ( $IN, $OUT ) = ( shift, shift ); } # Unbuffer the output filehandle. @@ -6397,27 +6530,30 @@ we go ahead and set C<$console> and C<$tty> to the file indicated. =cut sub TTY { - if (@_ and $term and $term->Features->{newTTY}) { + if ( @_ and $term and $term->Features->{newTTY} ) { + # This terminal supports switching to a new TTY. # Can be a list of two files, or on string containing both names, # comma-separated. # XXX Should this perhaps be an assignment from @_? - my ($in, $out) = shift; - if ($in =~ /,/) { + my ( $in, $out ) = shift; + if ( $in =~ /,/ ) { + # Split list apart if supplied. - ($in, $out) = split /,/, $in, 2; + ( $in, $out ) = split /,/, $in, 2; } else { + # Use the same file for both input and output. $out = $in; } # Open file onto the debugger's filehandles, if you can. - open IN, $in or die "cannot open `$in' for read: $!"; + open IN, $in or die "cannot open `$in' for read: $!"; open OUT, ">$out" or die "cannot open `$out' for write: $!"; # Swap to the new filehandles. - reset_IN_OUT(\*IN, \*OUT); + reset_IN_OUT( \*IN, \*OUT ); # Save the setting for later. return $tty = $in; @@ -6426,7 +6562,7 @@ sub TTY { # Terminal doesn't support new TTY, or doesn't support readline. # Can't do it now, try restarting. &warn("Too late to set TTY, enabled on next `R'!\n") if $term and @_; - + # Useful if done through PERLDB_OPTS: $console = $tty = shift if @_; @@ -6491,7 +6627,7 @@ false. Returns false if the current terminal doesn't support C<readline>. =cut sub tkRunning { - if (${ $term->Features }{tkRunning}) { + if ( ${ $term->Features }{tkRunning} ) { return $term->tkRunning(@_); } else { @@ -6517,6 +6653,42 @@ sub NonStop { $runnonstop; } ## end sub NonStop +sub DollarCaretP { + if ($term) { + &warn("Some flag changes could not take effect until next 'R'!\n") + if @_; + } + $^P = parse_DollarCaretP_flags(shift) if @_; + expand_DollarCaretP_flags($^P); +} + +sub OnlyAssertions { + if ($term) { + &warn("Too late to set up OnlyAssertions mode, enabled on next 'R'!\n") + if @_; + } + if (@_) { + unless ( defined $ini_assertion ) { + if ($term) { + &warn("Current Perl interpreter doesn't support assertions"); + } + return 0; + } + if (shift) { + unless ($ini_assertion) { + print "Assertions will be active on next 'R'!\n"; + $ini_assertion = 1; + } + $^P &= ~$DollarCaretP_flags{PERLDBf_SUB}; + $^P |= $DollarCaretP_flags{PERLDBf_ASSERTION}; + } + else { + $^P |= $DollarCaretP_flags{PERLDBf_SUB}; + } + } + !( $^P & $DollarCaretP_flags{PERLDBf_SUB} ) || 0; +} + =head2 C<pager> Set up the C<$pager> variable. Adds a pipe to the front unless there's one @@ -6549,10 +6721,10 @@ sub shellBang { } # Generate the printable version for the help: - $psh = $sh; # copy it - $psh =~ s/\\b$//; # Take off trailing \b if any - $psh =~ s/\\(.)/$1/g; # De-escape - $psh; # return the printable version + $psh = $sh; # copy it + $psh =~ s/\\b$//; # Take off trailing \b if any + $psh =~ s/\\(.)/$1/g; # De-escape + $psh; # return the printable version } ## end sub shellBang =head2 C<ornaments> @@ -6564,9 +6736,10 @@ ornaments.) =cut sub ornaments { - if (defined $term) { + if ( defined $term ) { + # We don't want to show warning backtraces, but we do want die() ones. - local ($warnLevel, $dieLevel) = (0, 1); + local ( $warnLevel, $dieLevel ) = ( 0, 1 ); # No ornaments if the terminal doesn't support them. return '' unless $term->Features->{ornaments}; @@ -6596,10 +6769,10 @@ sub recallCommand { } # Build it into a printable version. - $prc = $rc; # Copy it - $prc =~ s/\\b$//; # Remove trailing \b - $prc =~ s/\\(.)/$1/g; # Remove escapes - $prc; # Return the printable version + $prc = $rc; # Copy it + $prc =~ s/\\b$//; # Remove trailing \b + $prc =~ s/\\(.)/$1/g; # Remove escapes + $prc; # Return the printable version } ## end sub recallCommand =head2 C<LineInfo> - where the line number information goes @@ -6616,15 +6789,15 @@ sub LineInfo { return $lineinfo unless @_; $lineinfo = shift; - # If this is a valid "thing to be opened for output", tack a + # If this is a valid "thing to be opened for output", tack a # '>' onto the front. - my $stream = ($lineinfo =~ /^(\+?\>|\|)/) ? $lineinfo : ">$lineinfo"; + my $stream = ( $lineinfo =~ /^(\+?\>|\|)/ ) ? $lineinfo : ">$lineinfo"; # If this is a pipe, the stream points to a slave editor. - $slave_editor = ($stream =~ /^\|/); + $slave_editor = ( $stream =~ /^\|/ ); # Open it up and unbuffer it. - open(LINEINFO, "$stream") || &warn("Cannot open `$stream' for write"); + open( LINEINFO, "$stream" ) || &warn("Cannot open `$stream' for write"); $LINEINFO = \*LINEINFO; my $save = select($LINEINFO); $| = 1; @@ -6650,9 +6823,10 @@ information for output. sub list_modules { # versions my %version; my $file; + # keys are the "as-loaded" name, values are the fully-qualified path # to the file itself. - for (keys %INC) { + for ( keys %INC ) { $file = $_; # get the module name s,\.p[lm]$,,i; # remove '.pl' or '.pm' s,/,::,g; # change '/' to '::' @@ -6662,7 +6836,7 @@ sub list_modules { # versions # If the package has a $VERSION package global (as all good packages # should!) decode it and save as partial message. - if (defined ${ $_ . '::VERSION' }) { + if ( defined ${ $_ . '::VERSION' } ) { $version{$file} = "${ $_ . '::VERSION' } from "; } @@ -6671,7 +6845,7 @@ sub list_modules { # versions } ## end for (keys %INC) # Hey, dumpit() formats a hash nicely, so why not use it? - dumpit($OUT, \%version); + dumpit( $OUT, \%version ); } ## end sub list_modules =head2 C<sethelp()> @@ -6707,152 +6881,158 @@ Help is currently only available for the new 5.8 command set. No help is available for the old command set. We assume you know what you're doing if you switch to it. -B<T> Stack trace. -B<s> [I<expr>] Single step [in I<expr>]. -B<n> [I<expr>] Next, steps over subroutine calls [in I<expr>]. -<B<CR>> Repeat last B<n> or B<s> command. -B<r> Return from current subroutine. -B<c> [I<line>|I<sub>] Continue; optionally inserts a one-time-only breakpoint - at the specified position. -B<l> I<min>B<+>I<incr> List I<incr>+1 lines starting at I<min>. -B<l> I<min>B<->I<max> List lines I<min> through I<max>. -B<l> I<line> List single I<line>. -B<l> I<subname> List first window of lines from subroutine. -B<l> I<\$var> List first window of lines from subroutine referenced by I<\$var>. -B<l> List next window of lines. -B<-> List previous window of lines. -B<v> [I<line>] View window around I<line>. -B<.> Return to the executed line. -B<f> I<filename> Switch to viewing I<filename>. File must be already loaded. - I<filename> may be either the full name of the file, or a regular - expression matching the full file name: - B<f> I</home/me/foo.pl> and B<f> I<oo\\.> may access the same file. - Evals (with saved bodies) are considered to be filenames: - B<f> I<(eval 7)> and B<f> I<eval 7\\b> access the body of the 7th eval - (in the order of execution). -B</>I<pattern>B</> Search forwards for I<pattern>; final B</> is optional. -B<?>I<pattern>B<?> Search backwards for I<pattern>; final B<?> is optional. -B<L> [I<a|b|w>] List actions and or breakpoints and or watch-expressions. -B<S> [[B<!>]I<pattern>] List subroutine names [not] matching I<pattern>. -B<t> Toggle trace mode. -B<t> I<expr> Trace through execution of I<expr>. -B<b> Sets breakpoint on current line) +B<T> Stack trace. +B<s> [I<expr>] Single step [in I<expr>]. +B<n> [I<expr>] Next, steps over subroutine calls [in I<expr>]. +<B<CR>> Repeat last B<n> or B<s> command. +B<r> Return from current subroutine. +B<c> [I<line>|I<sub>] Continue; optionally inserts a one-time-only breakpoint + at the specified position. +B<l> I<min>B<+>I<incr> List I<incr>+1 lines starting at I<min>. +B<l> I<min>B<->I<max> List lines I<min> through I<max>. +B<l> I<line> List single I<line>. +B<l> I<subname> List first window of lines from subroutine. +B<l> I<\$var> List first window of lines from subroutine referenced by I<\$var>. +B<l> List next window of lines. +B<-> List previous window of lines. +B<v> [I<line>] View window around I<line>. +B<.> Return to the executed line. +B<f> I<filename> Switch to viewing I<filename>. File must be already loaded. + I<filename> may be either the full name of the file, or a regular + expression matching the full file name: + B<f> I</home/me/foo.pl> and B<f> I<oo\\.> may access the same file. + Evals (with saved bodies) are considered to be filenames: + B<f> I<(eval 7)> and B<f> I<eval 7\\b> access the body of the 7th eval + (in the order of execution). +B</>I<pattern>B</> Search forwards for I<pattern>; final B</> is optional. +B<?>I<pattern>B<?> Search backwards for I<pattern>; final B<?> is optional. +B<L> [I<a|b|w>] List actions and or breakpoints and or watch-expressions. +B<S> [[B<!>]I<pattern>] List subroutine names [not] matching I<pattern>. +B<t> Toggle trace mode. +B<t> I<expr> Trace through execution of I<expr>. +B<b> Sets breakpoint on current line) B<b> [I<line>] [I<condition>] - Set breakpoint; I<line> defaults to the current execution line; - I<condition> breaks if it evaluates to true, defaults to '1'. + Set breakpoint; I<line> defaults to the current execution line; + I<condition> breaks if it evaluates to true, defaults to '1'. B<b> I<subname> [I<condition>] - Set breakpoint at first line of subroutine. -B<b> I<\$var> Set breakpoint at first line of subroutine referenced by I<\$var>. + Set breakpoint at first line of subroutine. +B<b> I<\$var> Set breakpoint at first line of subroutine referenced by I<\$var>. B<b> B<load> I<filename> Set breakpoint on 'require'ing the given file. B<b> B<postpone> I<subname> [I<condition>] - Set breakpoint at first line of subroutine after - it is compiled. + Set breakpoint at first line of subroutine after + it is compiled. B<b> B<compile> I<subname> - Stop after the subroutine is compiled. -B<B> [I<line>] Delete the breakpoint for I<line>. + Stop after the subroutine is compiled. +B<B> [I<line>] Delete the breakpoint for I<line>. B<B> I<*> Delete all breakpoints. B<a> [I<line>] I<command> - Set an action to be done before the I<line> is executed; - I<line> defaults to the current execution line. - Sequence is: check for breakpoint/watchpoint, print line - if necessary, do action, prompt user if necessary, - execute line. -B<a> Does nothing -B<A> [I<line>] Delete the action for I<line>. + Set an action to be done before the I<line> is executed; + I<line> defaults to the current execution line. + Sequence is: check for breakpoint/watchpoint, print line + if necessary, do action, prompt user if necessary, + execute line. +B<a> Does nothing +B<A> [I<line>] Delete the action for I<line>. B<A> I<*> Delete all actions. -B<w> I<expr> Add a global watch-expression. -B<w> Does nothing -B<W> I<expr> Delete a global watch-expression. +B<w> I<expr> Add a global watch-expression. +B<w> Does nothing +B<W> I<expr> Delete a global watch-expression. B<W> I<*> Delete all watch-expressions. -B<V> [I<pkg> [I<vars>]] List some (default all) variables in package (default current). - Use B<~>I<pattern> and B<!>I<pattern> for positive and negative regexps. -B<X> [I<vars>] Same as \"B<V> I<currentpackage> [I<vars>]\". -B<x> I<expr> Evals expression in list context, dumps the result. -B<m> I<expr> Evals expression in list context, prints methods callable - on the first element of the result. -B<m> I<class> Prints methods callable via the given class. -B<M> Show versions of loaded modules. +B<V> [I<pkg> [I<vars>]] List some (default all) variables in package (default current). + Use B<~>I<pattern> and B<!>I<pattern> for positive and negative regexps. +B<X> [I<vars>] Same as \"B<V> I<currentpackage> [I<vars>]\". +B<x> I<expr> Evals expression in list context, dumps the result. +B<m> I<expr> Evals expression in list context, prints methods callable + on the first element of the result. +B<m> I<class> Prints methods callable via the given class. +B<M> Show versions of loaded modules. +B<i> I<class> Prints nested parents of given class. B<y> [I<n> [I<Vars>]] List lexicals in higher scope <n>. Vars same as B<V>. - -B<<> ? List Perl commands to run before each prompt. -B<<> I<expr> Define Perl command to run before each prompt. -B<<<> I<expr> Add to the list of Perl commands to run before each prompt. -B<< *> Delete the list of perl commands to run before each prompt. -B<>> ? List Perl commands to run after each prompt. -B<>> I<expr> Define Perl command to run after each prompt. -B<>>B<>> I<expr> Add to the list of Perl commands to run after each prompt. -B<>>B< *> Delete the list of Perl commands to run after each prompt. -B<{> I<db_command> Define debugger command to run before each prompt. -B<{> ? List debugger commands to run before each prompt. -B<{ *> Delete the list of debugger commands to run before each prompt. -B<{{> I<db_command> Add to the list of debugger commands to run before each prompt. -B<$prc> I<number> Redo a previous command (default previous command). -B<$prc> I<-number> Redo number'th-to-last command. -B<$prc> I<pattern> Redo last command that started with I<pattern>. - See 'B<O> I<recallCommand>' too. -B<$psh$psh> I<cmd> Run cmd in a subprocess (reads from DB::IN, writes to DB::OUT)" +B<P> Something to do with assertions... + +B<<> ? List Perl commands to run before each prompt. +B<<> I<expr> Define Perl command to run before each prompt. +B<<<> I<expr> Add to the list of Perl commands to run before each prompt. +B<< *> Delete the list of perl commands to run before each prompt. +B<>> ? List Perl commands to run after each prompt. +B<>> I<expr> Define Perl command to run after each prompt. +B<>>B<>> I<expr> Add to the list of Perl commands to run after each prompt. +B<>>B< *> Delete the list of Perl commands to run after each prompt. +B<{> I<db_command> Define debugger command to run before each prompt. +B<{> ? List debugger commands to run before each prompt. +B<{{> I<db_command> Add to the list of debugger commands to run before each prompt. +B<{ *> Delete the list of debugger commands to run before each prompt. +B<$prc> I<number> Redo a previous command (default previous command). +B<$prc> I<-number> Redo number'th-to-last command. +B<$prc> I<pattern> Redo last command that started with I<pattern>. + See 'B<O> I<recallCommand>' too. +B<$psh$psh> I<cmd> Run cmd in a subprocess (reads from DB::IN, writes to DB::OUT)" . ( $rc eq $sh ? "" : " -B<$psh> [I<cmd>] Run I<cmd> in subshell (forces \"\$SHELL -c 'cmd'\")." - ) - . " - See 'B<O> I<shellBang>' too. -B<source> I<file> Execute I<file> containing debugger commands (may nest). -B<H> I<-number> Display last number commands (default all). -B<p> I<expr> Same as \"I<print {DB::OUT} expr>\" in current package. -B<|>I<dbcmd> Run debugger command, piping DB::OUT to current pager. -B<||>I<dbcmd> Same as B<|>I<dbcmd> but DB::OUT is temporarilly select()ed as well. -B<\=> [I<alias> I<value>] Define a command alias, or list current aliases. -I<command> Execute as a perl statement in current package. -B<R> Pure-man-restart of debugger, some of debugger state - and command-line options may be lost. - Currently the following settings are preserved: - history, breakpoints and actions, debugger B<O>ptions - and the following command-line options: I<-w>, I<-I>, I<-e>. - -B<o> [I<opt>] ... Set boolean option to true -B<o> [I<opt>B<?>] Query options +B<$psh> [I<cmd>] Run I<cmd> in subshell (forces \"\$SHELL -c 'cmd'\")." + ) . " + See 'B<O> I<shellBang>' too. +B<source> I<file> Execute I<file> containing debugger commands (may nest). +B<save> I<file> Save current debugger session (actual history) to I<file>. +B<rerun> Rerun session to current position. +B<rerun> I<n> Rerun session to numbered command. +B<rerun> I<-n> Rerun session to number'th-to-last command. +B<H> I<-number> Display last number commands (default all). +B<H> I<*> Delete complete history. +B<p> I<expr> Same as \"I<print {DB::OUT} expr>\" in current package. +B<|>I<dbcmd> Run debugger command, piping DB::OUT to current pager. +B<||>I<dbcmd> Same as B<|>I<dbcmd> but DB::OUT is temporarilly select()ed as well. +B<\=> [I<alias> I<value>] Define a command alias, or list current aliases. +I<command> Execute as a perl statement in current package. +B<R> Pure-man-restart of debugger, some of debugger state + and command-line options may be lost. + Currently the following settings are preserved: + history, breakpoints and actions, debugger B<O>ptions + and the following command-line options: I<-w>, I<-I>, I<-e>. + +B<o> [I<opt>] ... Set boolean option to true +B<o> [I<opt>B<?>] Query options B<o> [I<opt>B<=>I<val>] [I<opt>=B<\">I<val>B<\">] ... - Set options. Use quotes in spaces in value. - I<recallCommand>, I<ShellBang> chars used to recall command or spawn shell; - I<pager> program for output of \"|cmd\"; - I<tkRunning> run Tk while prompting (with ReadLine); - I<signalLevel> I<warnLevel> I<dieLevel> level of verbosity; - I<inhibit_exit> Allows stepping off the end of the script. - I<ImmediateStop> Debugger should stop as early as possible. - I<RemotePort> Remote hostname:port for remote debugging + Set options. Use quotes in spaces in value. + I<recallCommand>, I<ShellBang> chars used to recall command or spawn shell; + I<pager> program for output of \"|cmd\"; + I<tkRunning> run Tk while prompting (with ReadLine); + I<signalLevel> I<warnLevel> I<dieLevel> level of verbosity; + I<inhibit_exit> Allows stepping off the end of the script. + I<ImmediateStop> Debugger should stop as early as possible. + I<RemotePort> Remote hostname:port for remote debugging The following options affect what happens with B<V>, B<X>, and B<x> commands: - I<arrayDepth>, I<hashDepth> print only first N elements ('' for all); - I<compactDump>, I<veryCompact> change style of array and hash dump; - I<globPrint> whether to print contents of globs; - I<DumpDBFiles> dump arrays holding debugged files; - I<DumpPackages> dump symbol tables of packages; - I<DumpReused> dump contents of \"reused\" addresses; - I<quote>, I<HighBit>, I<undefPrint> change style of string dump; - I<bareStringify> Do not print the overload-stringified value; + I<arrayDepth>, I<hashDepth> print only first N elements ('' for all); + I<compactDump>, I<veryCompact> change style of array and hash dump; + I<globPrint> whether to print contents of globs; + I<DumpDBFiles> dump arrays holding debugged files; + I<DumpPackages> dump symbol tables of packages; + I<DumpReused> dump contents of \"reused\" addresses; + I<quote>, I<HighBit>, I<undefPrint> change style of string dump; + I<bareStringify> Do not print the overload-stringified value; Other options include: - I<PrintRet> affects printing of return value after B<r> command, - I<frame> affects printing messages on subroutine entry/exit. - I<AutoTrace> affects printing messages on possible breaking points. - I<maxTraceLen> gives max length of evals/args listed in stack trace. - I<ornaments> affects screen appearance of the command line. - I<CreateTTY> bits control attempts to create a new TTY on events: - 1: on fork() 2: debugger is started inside debugger - 4: on startup - During startup options are initialized from \$ENV{PERLDB_OPTS}. - You can put additional initialization options I<TTY>, I<noTTY>, - I<ReadLine>, I<NonStop>, and I<RemotePort> there (or use - `B<R>' after you set them). - -B<q> or B<^D> Quit. Set B<\$DB::finished = 0> to debug global destruction. -B<h> Summary of debugger commands. -B<h> [I<db_command>] Get help [on a specific debugger command], enter B<|h> to page. -B<h h> Long help for debugger commands -B<$doccmd> I<manpage> Runs the external doc viewer B<$doccmd> command on the - named Perl I<manpage>, or on B<$doccmd> itself if omitted. - Set B<\$DB::doccmd> to change viewer. + I<PrintRet> affects printing of return value after B<r> command, + I<frame> affects printing messages on subroutine entry/exit. + I<AutoTrace> affects printing messages on possible breaking points. + I<maxTraceLen> gives max length of evals/args listed in stack trace. + I<ornaments> affects screen appearance of the command line. + I<CreateTTY> bits control attempts to create a new TTY on events: + 1: on fork() 2: debugger is started inside debugger + 4: on startup + During startup options are initialized from \$ENV{PERLDB_OPTS}. + You can put additional initialization options I<TTY>, I<noTTY>, + I<ReadLine>, I<NonStop>, and I<RemotePort> there (or use + `B<R>' after you set them). + +B<q> or B<^D> Quit. Set B<\$DB::finished = 0> to debug global destruction. +B<h> Summary of debugger commands. +B<h> [I<db_command>] Get help [on a specific debugger command], enter B<|h> to page. +B<h h> Long help for debugger commands +B<$doccmd> I<manpage> Runs the external doc viewer B<$doccmd> command on the + named Perl I<manpage>, or on B<$doccmd> itself if omitted. + Set B<\$DB::doccmd> to change viewer. Type `|h h' for a paged display if this was too hard to read. @@ -6882,7 +7062,7 @@ I<Data Examination:> B<expr> Execute perl code, also see: B<s>,B<n>,B<t> B<p> I<expr> Print expression (uses script's current package). B<S> [[B<!>]I<pat>] List subroutine names [not] matching pattern B<V> [I<Pk> [I<Vars>]] List Variables in Package. Vars can be ~pattern or !pattern. - B<X> [I<Vars>] Same as \"B<V> I<current_package> [I<Vars>]\". + B<X> [I<Vars>] Same as \"B<V> I<current_package> [I<Vars>]\". B<i> I<class> inheritance tree. B<y> [I<n> [I<Vars>]] List lexicals in higher scope <n>. Vars same as B<V>. For more help, type B<h> I<cmd_letter>, or run B<$doccmd perldebug> for all docs. END_SUM @@ -6891,143 +7071,142 @@ END_SUM # and this is really numb... $pre580_help = " -B<T> Stack trace. -B<s> [I<expr>] Single step [in I<expr>]. -B<n> [I<expr>] Next, steps over subroutine calls [in I<expr>]. -B<CR>> Repeat last B<n> or B<s> command. -B<r> Return from current subroutine. -B<c> [I<line>|I<sub>] Continue; optionally inserts a one-time-only breakpoint - at the specified position. -B<l> I<min>B<+>I<incr> List I<incr>+1 lines starting at I<min>. -B<l> I<min>B<->I<max> List lines I<min> through I<max>. -B<l> I<line> List single I<line>. -B<l> I<subname> List first window of lines from subroutine. -B<l> I<\$var> List first window of lines from subroutine referenced by I<\$var>. -B<l> List next window of lines. -B<-> List previous window of lines. -B<w> [I<line>] List window around I<line>. -B<.> Return to the executed line. -B<f> I<filename> Switch to viewing I<filename>. File must be already loaded. - I<filename> may be either the full name of the file, or a regular - expression matching the full file name: - B<f> I</home/me/foo.pl> and B<f> I<oo\\.> may access the same file. - Evals (with saved bodies) are considered to be filenames: - B<f> I<(eval 7)> and B<f> I<eval 7\\b> access the body of the 7th eval - (in the order of execution). -B</>I<pattern>B</> Search forwards for I<pattern>; final B</> is optional. -B<?>I<pattern>B<?> Search backwards for I<pattern>; final B<?> is optional. -B<L> List all breakpoints and actions. -B<S> [[B<!>]I<pattern>] List subroutine names [not] matching I<pattern>. -B<t> Toggle trace mode. -B<t> I<expr> Trace through execution of I<expr>. +B<T> Stack trace. +B<s> [I<expr>] Single step [in I<expr>]. +B<n> [I<expr>] Next, steps over subroutine calls [in I<expr>]. +B<CR>> Repeat last B<n> or B<s> command. +B<r> Return from current subroutine. +B<c> [I<line>|I<sub>] Continue; optionally inserts a one-time-only breakpoint + at the specified position. +B<l> I<min>B<+>I<incr> List I<incr>+1 lines starting at I<min>. +B<l> I<min>B<->I<max> List lines I<min> through I<max>. +B<l> I<line> List single I<line>. +B<l> I<subname> List first window of lines from subroutine. +B<l> I<\$var> List first window of lines from subroutine referenced by I<\$var>. +B<l> List next window of lines. +B<-> List previous window of lines. +B<w> [I<line>] List window around I<line>. +B<.> Return to the executed line. +B<f> I<filename> Switch to viewing I<filename>. File must be already loaded. + I<filename> may be either the full name of the file, or a regular + expression matching the full file name: + B<f> I</home/me/foo.pl> and B<f> I<oo\\.> may access the same file. + Evals (with saved bodies) are considered to be filenames: + B<f> I<(eval 7)> and B<f> I<eval 7\\b> access the body of the 7th eval + (in the order of execution). +B</>I<pattern>B</> Search forwards for I<pattern>; final B</> is optional. +B<?>I<pattern>B<?> Search backwards for I<pattern>; final B<?> is optional. +B<L> List all breakpoints and actions. +B<S> [[B<!>]I<pattern>] List subroutine names [not] matching I<pattern>. +B<t> Toggle trace mode. +B<t> I<expr> Trace through execution of I<expr>. B<b> [I<line>] [I<condition>] - Set breakpoint; I<line> defaults to the current execution line; - I<condition> breaks if it evaluates to true, defaults to '1'. + Set breakpoint; I<line> defaults to the current execution line; + I<condition> breaks if it evaluates to true, defaults to '1'. B<b> I<subname> [I<condition>] - Set breakpoint at first line of subroutine. -B<b> I<\$var> Set breakpoint at first line of subroutine referenced by I<\$var>. + Set breakpoint at first line of subroutine. +B<b> I<\$var> Set breakpoint at first line of subroutine referenced by I<\$var>. B<b> B<load> I<filename> Set breakpoint on `require'ing the given file. B<b> B<postpone> I<subname> [I<condition>] - Set breakpoint at first line of subroutine after - it is compiled. + Set breakpoint at first line of subroutine after + it is compiled. B<b> B<compile> I<subname> - Stop after the subroutine is compiled. -B<d> [I<line>] Delete the breakpoint for I<line>. -B<D> Delete all breakpoints. + Stop after the subroutine is compiled. +B<d> [I<line>] Delete the breakpoint for I<line>. +B<D> Delete all breakpoints. B<a> [I<line>] I<command> - Set an action to be done before the I<line> is executed; - I<line> defaults to the current execution line. - Sequence is: check for breakpoint/watchpoint, print line - if necessary, do action, prompt user if necessary, - execute line. -B<a> [I<line>] Delete the action for I<line>. -B<A> Delete all actions. -B<W> I<expr> Add a global watch-expression. -B<W> Delete all watch-expressions. -B<V> [I<pkg> [I<vars>]] List some (default all) variables in package (default current). - Use B<~>I<pattern> and B<!>I<pattern> for positive and negative regexps. -B<X> [I<vars>] Same as \"B<V> I<currentpackage> [I<vars>]\". -B<x> I<expr> Evals expression in list context, dumps the result. -B<m> I<expr> Evals expression in list context, prints methods callable - on the first element of the result. -B<m> I<class> Prints methods callable via the given class. - -B<<> ? List Perl commands to run before each prompt. -B<<> I<expr> Define Perl command to run before each prompt. -B<<<> I<expr> Add to the list of Perl commands to run before each prompt. -B<>> ? List Perl commands to run after each prompt. -B<>> I<expr> Define Perl command to run after each prompt. -B<>>B<>> I<expr> Add to the list of Perl commands to run after each prompt. -B<{> I<db_command> Define debugger command to run before each prompt. -B<{> ? List debugger commands to run before each prompt. -B<{{> I<db_command> Add to the list of debugger commands to run before each prompt. -B<$prc> I<number> Redo a previous command (default previous command). -B<$prc> I<-number> Redo number'th-to-last command. -B<$prc> I<pattern> Redo last command that started with I<pattern>. - See 'B<O> I<recallCommand>' too. -B<$psh$psh> I<cmd> Run cmd in a subprocess (reads from DB::IN, writes to DB::OUT)" + Set an action to be done before the I<line> is executed; + I<line> defaults to the current execution line. + Sequence is: check for breakpoint/watchpoint, print line + if necessary, do action, prompt user if necessary, + execute line. +B<a> [I<line>] Delete the action for I<line>. +B<A> Delete all actions. +B<W> I<expr> Add a global watch-expression. +B<W> Delete all watch-expressions. +B<V> [I<pkg> [I<vars>]] List some (default all) variables in package (default current). + Use B<~>I<pattern> and B<!>I<pattern> for positive and negative regexps. +B<X> [I<vars>] Same as \"B<V> I<currentpackage> [I<vars>]\". +B<x> I<expr> Evals expression in list context, dumps the result. +B<m> I<expr> Evals expression in list context, prints methods callable + on the first element of the result. +B<m> I<class> Prints methods callable via the given class. + +B<<> ? List Perl commands to run before each prompt. +B<<> I<expr> Define Perl command to run before each prompt. +B<<<> I<expr> Add to the list of Perl commands to run before each prompt. +B<>> ? List Perl commands to run after each prompt. +B<>> I<expr> Define Perl command to run after each prompt. +B<>>B<>> I<expr> Add to the list of Perl commands to run after each prompt. +B<{> I<db_command> Define debugger command to run before each prompt. +B<{> ? List debugger commands to run before each prompt. +B<{{> I<db_command> Add to the list of debugger commands to run before each prompt. +B<$prc> I<number> Redo a previous command (default previous command). +B<$prc> I<-number> Redo number'th-to-last command. +B<$prc> I<pattern> Redo last command that started with I<pattern>. + See 'B<O> I<recallCommand>' too. +B<$psh$psh> I<cmd> Run cmd in a subprocess (reads from DB::IN, writes to DB::OUT)" . ( $rc eq $sh ? "" : " -B<$psh> [I<cmd>] Run I<cmd> in subshell (forces \"\$SHELL -c 'cmd'\")." - ) . - " - See 'B<O> I<shellBang>' too. -B<source> I<file> Execute I<file> containing debugger commands (may nest). -B<H> I<-number> Display last number commands (default all). -B<p> I<expr> Same as \"I<print {DB::OUT} expr>\" in current package. -B<|>I<dbcmd> Run debugger command, piping DB::OUT to current pager. -B<||>I<dbcmd> Same as B<|>I<dbcmd> but DB::OUT is temporarilly select()ed as well. -B<\=> [I<alias> I<value>] Define a command alias, or list current aliases. -I<command> Execute as a perl statement in current package. -B<v> Show versions of loaded modules. -B<R> Pure-man-restart of debugger, some of debugger state - and command-line options may be lost. - Currently the following settings are preserved: - history, breakpoints and actions, debugger B<O>ptions - and the following command-line options: I<-w>, I<-I>, I<-e>. - -B<O> [I<opt>] ... Set boolean option to true -B<O> [I<opt>B<?>] Query options +B<$psh> [I<cmd>] Run I<cmd> in subshell (forces \"\$SHELL -c 'cmd'\")." + ) . " + See 'B<O> I<shellBang>' too. +B<source> I<file> Execute I<file> containing debugger commands (may nest). +B<H> I<-number> Display last number commands (default all). +B<p> I<expr> Same as \"I<print {DB::OUT} expr>\" in current package. +B<|>I<dbcmd> Run debugger command, piping DB::OUT to current pager. +B<||>I<dbcmd> Same as B<|>I<dbcmd> but DB::OUT is temporarilly select()ed as well. +B<\=> [I<alias> I<value>] Define a command alias, or list current aliases. +I<command> Execute as a perl statement in current package. +B<v> Show versions of loaded modules. +B<R> Pure-man-restart of debugger, some of debugger state + and command-line options may be lost. + Currently the following settings are preserved: + history, breakpoints and actions, debugger B<O>ptions + and the following command-line options: I<-w>, I<-I>, I<-e>. + +B<O> [I<opt>] ... Set boolean option to true +B<O> [I<opt>B<?>] Query options B<O> [I<opt>B<=>I<val>] [I<opt>=B<\">I<val>B<\">] ... - Set options. Use quotes in spaces in value. - I<recallCommand>, I<ShellBang> chars used to recall command or spawn shell; - I<pager> program for output of \"|cmd\"; - I<tkRunning> run Tk while prompting (with ReadLine); - I<signalLevel> I<warnLevel> I<dieLevel> level of verbosity; - I<inhibit_exit> Allows stepping off the end of the script. - I<ImmediateStop> Debugger should stop as early as possible. - I<RemotePort> Remote hostname:port for remote debugging + Set options. Use quotes in spaces in value. + I<recallCommand>, I<ShellBang> chars used to recall command or spawn shell; + I<pager> program for output of \"|cmd\"; + I<tkRunning> run Tk while prompting (with ReadLine); + I<signalLevel> I<warnLevel> I<dieLevel> level of verbosity; + I<inhibit_exit> Allows stepping off the end of the script. + I<ImmediateStop> Debugger should stop as early as possible. + I<RemotePort> Remote hostname:port for remote debugging The following options affect what happens with B<V>, B<X>, and B<x> commands: - I<arrayDepth>, I<hashDepth> print only first N elements ('' for all); - I<compactDump>, I<veryCompact> change style of array and hash dump; - I<globPrint> whether to print contents of globs; - I<DumpDBFiles> dump arrays holding debugged files; - I<DumpPackages> dump symbol tables of packages; - I<DumpReused> dump contents of \"reused\" addresses; - I<quote>, I<HighBit>, I<undefPrint> change style of string dump; - I<bareStringify> Do not print the overload-stringified value; + I<arrayDepth>, I<hashDepth> print only first N elements ('' for all); + I<compactDump>, I<veryCompact> change style of array and hash dump; + I<globPrint> whether to print contents of globs; + I<DumpDBFiles> dump arrays holding debugged files; + I<DumpPackages> dump symbol tables of packages; + I<DumpReused> dump contents of \"reused\" addresses; + I<quote>, I<HighBit>, I<undefPrint> change style of string dump; + I<bareStringify> Do not print the overload-stringified value; Other options include: - I<PrintRet> affects printing of return value after B<r> command, - I<frame> affects printing messages on subroutine entry/exit. - I<AutoTrace> affects printing messages on possible breaking points. - I<maxTraceLen> gives max length of evals/args listed in stack trace. - I<ornaments> affects screen appearance of the command line. - I<CreateTTY> bits control attempts to create a new TTY on events: - 1: on fork() 2: debugger is started inside debugger - 4: on startup - During startup options are initialized from \$ENV{PERLDB_OPTS}. - You can put additional initialization options I<TTY>, I<noTTY>, - I<ReadLine>, I<NonStop>, and I<RemotePort> there (or use - `B<R>' after you set them). - -B<q> or B<^D> Quit. Set B<\$DB::finished = 0> to debug global destruction. -B<h> [I<db_command>] Get help [on a specific debugger command], enter B<|h> to page. -B<h h> Summary of debugger commands. -B<$doccmd> I<manpage> Runs the external doc viewer B<$doccmd> command on the - named Perl I<manpage>, or on B<$doccmd> itself if omitted. - Set B<\$DB::doccmd> to change viewer. + I<PrintRet> affects printing of return value after B<r> command, + I<frame> affects printing messages on subroutine entry/exit. + I<AutoTrace> affects printing messages on possible breaking points. + I<maxTraceLen> gives max length of evals/args listed in stack trace. + I<ornaments> affects screen appearance of the command line. + I<CreateTTY> bits control attempts to create a new TTY on events: + 1: on fork() 2: debugger is started inside debugger + 4: on startup + During startup options are initialized from \$ENV{PERLDB_OPTS}. + You can put additional initialization options I<TTY>, I<noTTY>, + I<ReadLine>, I<NonStop>, and I<RemotePort> there (or use + `B<R>' after you set them). + +B<q> or B<^D> Quit. Set B<\$DB::finished = 0> to debug global destruction. +B<h> [I<db_command>] Get help [on a specific debugger command], enter B<|h> to page. +B<h h> Summary of debugger commands. +B<$doccmd> I<manpage> Runs the external doc viewer B<$doccmd> command on the + named Perl I<manpage>, or on B<$doccmd> itself if omitted. + Set B<\$DB::doccmd> to change viewer. Type `|h' for a paged display if this was too hard to read. @@ -7139,16 +7318,17 @@ sub fix_less { # Pager is less for sure. my $is_less = $pager =~ /\bless\b/; - if ($pager =~ /\bmore\b/) { + if ( $pager =~ /\bmore\b/ ) { + # Nope, set to more. See what's out there. my @st_more = stat('/usr/bin/more'); my @st_less = stat('/usr/bin/less'); # is it really less, pretending to be more? - $is_less = @st_more && - @st_less && - $st_more[0] == $st_less[0] && - $st_more[1] == $st_less[1]; + $is_less = @st_more + && @st_less + && $st_more[0] == $st_less[0] + && $st_more[1] == $st_less[1]; } ## end if ($pager =~ /\bmore\b/) # changes environment! @@ -7169,6 +7349,7 @@ program, debugger, and everything to die. =cut sub diesignal { + # No entry/exit messages. local $frame = 0; @@ -7183,16 +7364,17 @@ sub diesignal { kill 'ABRT', $$ if $panic++; # If we can show detailed info, do so. - if (defined &Carp::longmess) { + if ( defined &Carp::longmess ) { + # Don't recursively enter the warn handler, since we're carping. local $SIG{__WARN__} = ''; - # Skip two levels before reporting traceback: we're skipping - # mydie and confess. + # Skip two levels before reporting traceback: we're skipping + # mydie and confess. local $Carp::CarpLevel = 2; # mydie + confess # Tell us all about it. - &warn(Carp::longmess("Signal @_")); + &warn( Carp::longmess("Signal @_") ); } # No Carp. Tell us about the signal as best we can. @@ -7213,7 +7395,8 @@ be able to get a stack trace, and output the warning message vi C<DB::dbwarn()>. =cut sub dbwarn { - # No entry/exit trace. + + # No entry/exit trace. local $frame = 0; # No return value printing. @@ -7231,22 +7414,22 @@ sub dbwarn { # require may be broken. # Use the core warn() unless Carp loaded OK. - CORE::warn(@_, - "\nCannot print stack trace, load with -MCarp option to see stack"), + CORE::warn( @_, + "\nCannot print stack trace, load with -MCarp option to see stack" ), return unless defined &Carp::longmess; # Save the current values of $single and $trace, and then turn them off. - my ($mysingle, $mytrace) = ($single, $trace); + my ( $mysingle, $mytrace ) = ( $single, $trace ); $single = 0; $trace = 0; - # We can call Carp::longmess without its being "debugged" (which we + # We can call Carp::longmess without its being "debugged" (which we # don't want - we just want to use it!). Capture this for later. my $mess = Carp::longmess(@_); # Restore $single and $trace to their original values. - ($single, $trace) = ($mysingle, $mytrace); + ( $single, $trace ) = ( $mysingle, $mytrace ); # Use the debugger's own special way of printing warnings to print # the stack trace message. @@ -7268,35 +7451,35 @@ displaying the exception via its C<dbwarn()> routine. =cut sub dbdie { - local $frame = 0; - local $doret = -2; + local $frame = 0; + local $doret = -2; local $SIG{__DIE__} = ''; local $SIG{__WARN__} = ''; my $i = 0; my $ineval = 0; my $sub; - if ($dieLevel > 2) { + if ( $dieLevel > 2 ) { local $SIG{__WARN__} = \&dbwarn; &warn(@_); # Yell no matter what return; } - if ($dieLevel < 2) { + if ( $dieLevel < 2 ) { die @_ if $^S; # in eval propagate } # The code used to check $^S to see if compiliation of the current thing # hadn't finished. We don't do it anymore, figuring eval is pretty stable. - eval { require Carp }; + eval { require Carp }; - die (@_, - "\nCannot print stack trace, load with -MCarp option to see stack") + die( @_, + "\nCannot print stack trace, load with -MCarp option to see stack" ) unless defined &Carp::longmess; # We do not want to debug this chunk (automatic disabling works # inside DB::DB, but not in Carp). Save $single and $trace, turn them off, # get the stack trace from Carp::longmess (if possible), restore $signal # and $trace, and then die with the stack trace. - my ($mysingle, $mytrace) = ($single, $trace); + my ( $mysingle, $mytrace ) = ( $single, $trace ); $single = 0; $trace = 0; my $mess = "@_"; @@ -7305,7 +7488,7 @@ sub dbdie { package Carp; # Do not include us in the list eval { $mess = Carp::longmess(@_); }; } - ($single, $trace) = ($mysingle, $mytrace); + ( $single, $trace ) = ( $mysingle, $mytrace ); die $mess; } ## end sub dbdie @@ -7347,17 +7530,18 @@ sub dieLevel { $prevdie = $SIG{__DIE__} unless $dieLevel; $dieLevel = shift; if ($dieLevel) { + # Always set it to dbdie() for non-zero values. $SIG{__DIE__} = \&DB::dbdie; # if $dieLevel < 2; - # No longer exists, so don't try to use it. - #$SIG{__DIE__} = \&DB::diehard if $dieLevel >= 2; + # No longer exists, so don't try to use it. + #$SIG{__DIE__} = \&DB::diehard if $dieLevel >= 2; # If we've finished initialization, mention that stack dumps # are enabled, If dieLevel is 1, we won't stack dump if we die # in an eval(). print $OUT "Stack dump during die enabled", - ($dieLevel == 1 ? " outside of evals" : ""), ".\n" + ( $dieLevel == 1 ? " outside of evals" : "" ), ".\n" if $I_m_init; # XXX This is probably obsolete, given that diehard() is gone. @@ -7464,7 +7648,7 @@ sub find_sub { # Old stupid way... $subr = \&$subr; # Hard reference my $s; - for (keys %sub) { + for ( keys %sub ) { $s = $_, last if $subr eq \&$_; } $sub{$s} if $s; @@ -7487,13 +7671,12 @@ sub methods { $class = ref $class if ref $class; local %seen; - local %packs; # Show the methods that this class has. - methods_via($class, '', 1); + methods_via( $class, '', 1 ); # Show the methods that UNIVERSAL has. - methods_via('UNIVERSAL', 'UNIVERSAL', 0); + methods_via( 'UNIVERSAL', 'UNIVERSAL', 0 ); } ## end sub methods =head2 C<methods_via($class, $prefix, $crawl_upward)> @@ -7507,24 +7690,29 @@ higher in the C<@ISA> tree, 0 if we should stop. =cut sub methods_via { + # If we've processed this class already, just quit. my $class = shift; return if $seen{$class}++; - # This is a package that is contributing the methods we're about to print. - my $prefix = shift; + # This is a package that is contributing the methods we're about to print. + my $prefix = shift; my $prepend = $prefix ? "via $prefix: " : ''; my $name; for $name ( + # Keep if this is a defined subroutine in this class. grep { defined &{ ${"${class}::"}{$_} } } - # Extract from all the symbols in this class. - sort keys %{"${class}::"} - ) { + + # Extract from all the symbols in this class. + sort keys %{"${class}::"} + ) + { + # If we printed this already, skip it. next if $seen{$name}++; - + # Print the new method name. local $\ = ''; local $, = ''; @@ -7532,15 +7720,17 @@ sub methods_via { } ## end for $name (grep { defined... # If the $crawl_upward argument is false, just quit here. - return unless shift; + return unless shift; # $crawl_upward true: keep going up the tree. # Find all the classes this one is a subclass of. - for $name (@{"${class}::ISA"}) { + for $name ( @{"${class}::ISA"} ) { + # Set up the new prefix. $prepend = $prefix ? $prefix . " -> $name" : $name; - # Crawl up the tree and keep trying to crawl up. - methods_via($name, $prepend, 1); + + # Crawl up the tree and keep trying to crawl up. + methods_via( $name, $prepend, 1 ); } } ## end sub methods_via @@ -7551,10 +7741,9 @@ Just checks the contents of C<$^O> and sets the C<$doccmd> global accordingly. =cut sub setman { - $doccmd = - $^O !~ /^(?:MSWin32|VMS|os2|dos|amigaos|riscos|MacOS|NetWare)\z/s - ? "man" # O Happy Day! - : "perldoc"; # Alas, poor unfortunates + $doccmd = $^O !~ /^(?:MSWin32|VMS|os2|dos|amigaos|riscos|MacOS|NetWare)\z/s + ? "man" # O Happy Day! + : "perldoc"; # Alas, poor unfortunates } ## end sub setman =head2 C<runman> - run the appropriate command to show documentation @@ -7574,7 +7763,7 @@ sub runman { # this way user can override, like with $doccmd="man -Mwhatever" # or even just "man " to disable the path check. - unless ($doccmd eq 'man') { + unless ( $doccmd eq 'man' ) { &system("$doccmd $page"); return; } @@ -7584,7 +7773,7 @@ sub runman { require Config; my $man1dir = $Config::Config{'man1dir'}; my $man3dir = $Config::Config{'man3dir'}; - for ($man1dir, $man3dir) { s#/[^/]*\z## if /\S/ } + for ( $man1dir, $man3dir ) { s#/[^/]*\z## if /\S/ } my $manpath = ''; $manpath .= "$man1dir:" if $man1dir =~ /\S/; $manpath .= "$man3dir:" if $man3dir =~ /\S/ && $man1dir ne $man3dir; @@ -7599,33 +7788,160 @@ sub runman { $doccmd, # I just *know* there are men without -M - (($manpath && !$nopathopt) ? ("-M", $manpath) : ()), + ( ( $manpath && !$nopathopt ) ? ( "-M", $manpath ) : () ), split ' ', $page ) ) { - unless ($page =~ /^perl\w/) { - if ( - grep { $page eq $_ } - qw{ - 5004delta 5005delta amiga api apio book boot bot call compile - cygwin data dbmfilter debug debguts delta diag doc dos dsc embed - faq faq1 faq2 faq3 faq4 faq5 faq6 faq7 faq8 faq9 filter fork - form func guts hack hist hpux intern ipc lexwarn locale lol mod - modinstall modlib number obj op opentut os2 os390 pod port - ref reftut run sec style sub syn thrtut tie toc todo toot tootc - trap unicode var vms win32 xs xstut - } - ) - { + unless ( $page =~ /^perl\w/ ) { +# do it this way because its easier to slurp in to keep up to date - clunky though. +my @pods = qw( + 5004delta + 5005delta + 561delta + 56delta + 570delta + 571delta + 572delta + 573delta + 58delta + 581delta + 582delta + 583delta + 584delta + 590delta + 591delta + 592delta + aix + amiga + apio + api + apollo + artistic + beos + book + boot + bot + bs2000 + call + ce + cheat + clib + cn + compile + cygwin + data + dbmfilter + debguts + debtut + debug + delta + dgux + diag + doc + dos + dsc + ebcdic + embed + epoc + faq1 + faq2 + faq3 + faq4 + faq5 + faq6 + faq7 + faq8 + faq9 + faq + filter + fork + form + freebsd + func + gpl + guts + hack + hist + hpux + hurd + intern + intro + iol + ipc + irix + jp + ko + lexwarn + locale + lol + machten + macos + macosx + mint + modinstall + modlib + mod + modstyle + mpeix + netware + newmod + number + obj + opentut + op + os2 + os390 + os400 + othrtut + packtut + plan9 + pod + podspec + port + qnx + ref + reftut + re + requick + reref + retut + run + sec + solaris + style + sub + syn + thrtut + tie + toc + todo + tooc + toot + trap + tru64 + tw + unicode + uniintro + util + uts + var + vmesa + vms + vos + win32 + xs + xstut +); + if (grep { $page eq $_ } @pods) { $page =~ s/^/perl/; - CORE::system($doccmd, - (($manpath && !$nopathopt) ? ("-M", $manpath) : ()), - $page); + CORE::system( $doccmd, + ( ( $manpath && !$nopathopt ) ? ( "-M", $manpath ) : () ), + $page ); } ## end if (grep { $page eq $_... } ## end unless ($page =~ /^perl\w/) } ## end if (CORE::system($doccmd... - if (defined $oldpath) { + if ( defined $oldpath ) { $ENV{MANPATH} = $manpath; } else { @@ -7676,35 +7992,36 @@ debugger has to have set up before the Perl core starts running: # The following BEGIN is very handy if debugger goes havoc, debugging debugger? BEGIN { # This does not compile, alas. (XXX eh?) - $IN = \*STDIN; # For bugs before DB::OUT has been opened - $OUT = \*STDERR; # For errors before DB::OUT has been opened + $IN = \*STDIN; # For bugs before DB::OUT has been opened + $OUT = \*STDERR; # For errors before DB::OUT has been opened - # Define characters used by command parsing. - $sh = '!'; # Shell escape (does not work) - $rc = ','; # Recall command (does not work) - @hist = ('?'); # Show history (does not work) + # Define characters used by command parsing. + $sh = '!'; # Shell escape (does not work) + $rc = ','; # Recall command (does not work) + @hist = ('?'); # Show history (does not work) + @truehist = (); # Can be saved for replay (per session) - # This defines the point at which you get the 'deep recursion' + # This defines the point at which you get the 'deep recursion' # warning. It MUST be defined or the debugger will not load. - $deep = 100; + $deep = 100; - # Number of lines around the current one that are shown in the + # Number of lines around the current one that are shown in the # 'w' command. - $window = 10; + $window = 10; # How much before-the-current-line context the 'v' command should # use in calculating the start of the window it will display. $preview = 3; # We're not in any sub yet, but we need this to be a defined value. - $sub = ''; + $sub = ''; - # Set up the debugger's interrupt handler. It simply sets a flag + # Set up the debugger's interrupt handler. It simply sets a flag # ($signal) that DB::DB() will check before each command is executed. $SIG{INT} = \&DB::catch; # The following lines supposedly, if uncommented, allow the debugger to - # debug itself. Perhaps we can try that someday. + # debug itself. Perhaps we can try that someday. # This may be enabled to debug debugger: #$warnLevel = 1 unless defined $warnLevel; #$dieLevel = 1 unless defined $dieLevel; @@ -7714,28 +8031,28 @@ BEGIN { # This does not compile, alas. (XXX eh?) # DB::DB and DB::sub". We will turn it on forcibly before we try to # execute anything in the user's context, because we always want to # get control back. - $db_stop = 0; # Compiler warning ... - $db_stop = 1 << 30; # ... because this is only used in an eval() later. + $db_stop = 0; # Compiler warning ... + $db_stop = 1 << 30; # ... because this is only used in an eval() later. # This variable records how many levels we're nested in debugging. Used - # Used in the debugger prompt, and in determining whether it's all over or + # Used in the debugger prompt, and in determining whether it's all over or # not. - $level = 0; # Level of recursive debugging + $level = 0; # Level of recursive debugging # "Triggers bug (?) in perl if we postpone this until runtime." # XXX No details on this yet, or whether we should fix the bug instead - # of work around it. Stay tuned. + # of work around it. Stay tuned. @postponed = @stack = (0); # Used to track the current stack depth using the auto-stacked-variable # trick. - $stack_depth = 0; # Localized repeatedly; simple way to track $#stack + $stack_depth = 0; # Localized repeatedly; simple way to track $#stack # Don't print return values on exiting a subroutine. - $doret = -2; + $doret = -2; # No extry/exit tracing. - $frame = 0; + $frame = 0; } ## end BEGIN @@ -7763,13 +8080,13 @@ sub db_complete { # $text is the text to be completed. # $line is the incoming line typed by the user. # $start is the start of the text to be completed in the incoming line. - my ($text, $line, $start) = @_; + my ( $text, $line, $start ) = @_; # Save the initial text. # The search pattern is current package, ::, extract the next qualifier # Prefix and pack are set to undef. - my ($itext, $search, $prefix, $pack) = - ($text, "^\Q${'package'}::\E([^:]+)\$"); + my ( $itext, $search, $prefix, $pack ) = + ( $text, "^\Q${'package'}::\E([^:]+)\$" ); =head3 C<b postpone|compile> @@ -7789,10 +8106,10 @@ sub db_complete { =cut - return sort grep /^\Q$text/, (keys %sub), + return sort grep /^\Q$text/, ( keys %sub ), qw(postpone load compile), # subroutines - (map { /$search/ ? ($1) : () } keys %sub) - if (substr $line, 0, $start) =~ /^\|*[blc]\s+((postpone|compile)\s+)?$/; + ( map { /$search/ ? ($1) : () } keys %sub ) + if ( substr $line, 0, $start ) =~ /^\|*[blc]\s+((postpone|compile)\s+)?$/; =head3 C<b load> @@ -7802,7 +8119,7 @@ select the ones that match the text so far. =cut return sort grep /^\Q$text/, values %INC # files - if (substr $line, 0, $start) =~ /^\|*b\s+load\s+$/; + if ( substr $line, 0, $start ) =~ /^\|*b\s+load\s+$/; =head3 C<V> (list variable) and C<m> (list modules) @@ -7816,9 +8133,9 @@ get all possible matching packages. Return this sorted list. =cut - return sort map { ($_, db_complete($_ . "::", "V ", 2)) } - grep /^\Q$text/, map { /^(.*)::$/ ? ($1) : () } keys %:: # top-packages - if (substr $line, 0, $start) =~ /^\|*[Vm]\s+$/ and $text =~ /^\w*$/; + return sort map { ( $_, db_complete( $_ . "::", "V ", 2 ) ) } + grep /^\Q$text/, map { /^(.*)::$/ ? ($1) : () } keys %:: # top-packages + if ( substr $line, 0, $start ) =~ /^\|*[Vm]\s+$/ and $text =~ /^\w*$/; =head4 Qualified package names @@ -7829,12 +8146,12 @@ start with 'main::'. Return this list. =cut - return sort map { ($_, db_complete($_ . "::", "V ", 2)) } + return sort map { ( $_, db_complete( $_ . "::", "V ", 2 ) ) } grep !/^main::/, grep /^\Q$text/, - map { /^(.*)::$/ ? ($prefix . "::$1") : () } keys %{ $prefix . '::' } - if (substr $line, 0, $start) =~ /^\|*[Vm]\s+$/ - and $text =~ /^(.*[^:])::?(\w*)$/ - and $prefix = $1; + map { /^(.*)::$/ ? ( $prefix . "::$1" ) : () } keys %{ $prefix . '::' } + if ( substr $line, 0, $start ) =~ /^\|*[Vm]\s+$/ + and $text =~ /^(.*[^:])::?(\w*)$/ + and $prefix = $1; =head3 C<f> - switch files @@ -7853,10 +8170,10 @@ Possibilities are: =cut - if ($line =~ /^\|*f\s+(.*)/) { # Loaded files - # We might possibly want to switch to an eval (which has a "filename" - # like '(eval 9)'), so we may need to clean up the completion text - # before proceeding. + if ( $line =~ /^\|*f\s+(.*)/ ) { # Loaded files + # We might possibly want to switch to an eval (which has a "filename" + # like '(eval 9)'), so we may need to clean up the completion text + # before proceeding. $prefix = length($1) - length($text); $text = $1; @@ -7870,7 +8187,7 @@ match the completion text so far. =cut return sort - map { substr $_, 2 + $prefix } grep /^_<\Q$text/, (keys %main::), + map { substr $_, 2 + $prefix } grep /^_<\Q$text/, ( keys %main:: ), $0; } ## end if ($line =~ /^\|*f\s+(.*)/) @@ -7882,14 +8199,14 @@ all the matches qualified to the current package. =cut - if ((substr $text, 0, 1) eq '&') { # subroutines + if ( ( substr $text, 0, 1 ) eq '&' ) { # subroutines $text = substr $text, 1; $prefix = "&"; - return sort map "$prefix$_", grep /^\Q$text/, (keys %sub), + return sort map "$prefix$_", grep /^\Q$text/, ( keys %sub ), ( map { /$search/ ? ($1) : () } keys %sub - ); + ); } ## end if ((substr $text, 0, ... =head3 Scalar, array, and hash completion: partially qualified package @@ -7898,7 +8215,7 @@ Much like the above, except we have to do a little more cleanup: =cut - if ($text =~ /^[\$@%](.*)::(.*)/) { # symbols in a package + if ( $text =~ /^[\$@%](.*)::(.*)/ ) { # symbols in a package =pod @@ -7908,7 +8225,7 @@ Much like the above, except we have to do a little more cleanup: =cut - $pack = ($1 eq 'main' ? '' : $1) . '::'; + $pack = ( $1 eq 'main' ? '' : $1 ) . '::'; =pod @@ -7916,8 +8233,8 @@ Much like the above, except we have to do a little more cleanup: =cut - $prefix = (substr $text, 0, 1) . $1 . '::'; - $text = $2; + $prefix = ( substr $text, 0, 1 ) . $1 . '::'; + $text = $2; =pod @@ -7934,8 +8251,8 @@ Much like the above, except we have to do a little more cleanup: =cut - if (@out == 1 and $out[0] =~ /::$/ and $out[0] ne $itext) { - return db_complete($out[0], $line, $start); + if ( @out == 1 and $out[0] =~ /::$/ and $out[0] ne $itext ) { + return db_complete( $out[0], $line, $start ); } # Return the list of possibles. @@ -7951,8 +8268,7 @@ Much like the above, except we have to do a little more cleanup: =cut - - if ($text =~ /^[\$@%]/) { # symbols (in $package + packages in main) + if ( $text =~ /^[\$@%]/ ) { # symbols (in $package + packages in main) =pod @@ -7962,7 +8278,7 @@ Much like the above, except we have to do a little more cleanup: =cut - $pack = ($package eq 'main' ? '' : $package) . '::'; + $pack = ( $package eq 'main' ? '' : $package ) . '::'; =pod @@ -7971,7 +8287,7 @@ Much like the above, except we have to do a little more cleanup: =cut $prefix = substr $text, 0, 1; - $text = substr $text, 1; + $text = substr $text, 1; =pod @@ -7980,8 +8296,8 @@ Much like the above, except we have to do a little more cleanup: =cut my @out = map "$prefix$_", grep /^\Q$text/, - (grep /^_?[a-zA-Z]/, keys %$pack), - ($pack eq '::' ? () : (grep /::$/, keys %::)); + ( grep /^_?[a-zA-Z]/, keys %$pack ), + ( $pack eq '::' ? () : ( grep /::$/, keys %:: ) ); =item * If there's only one hit, it's a package qualifier, and it's not equal to the initial text, recomplete using this symbol. @@ -7989,8 +8305,8 @@ Much like the above, except we have to do a little more cleanup: =cut - if (@out == 1 and $out[0] =~ /::$/ and $out[0] ne $itext) { - return db_complete($out[0], $line, $start); + if ( @out == 1 and $out[0] =~ /::$/ and $out[0] ne $itext ) { + return db_complete( $out[0], $line, $start ); } # Return the list of possibles. @@ -8007,31 +8323,34 @@ question mark, which, if executed, will list the current value of the option. =cut - my $cmd = ($CommandSet eq '580') ? 'o' : 'O'; - if ((substr $line, 0, $start) =~ /^\|*$cmd\b.*\s$/) { # Options after space - # We look for the text to be matched in the list of possible options, - # and fetch the current value. + if ( ( substr $line, 0, $start ) =~ /^\|*[oO]\b.*\s$/ ) + { # Options after space + # We look for the text to be matched in the list of possible options, + # and fetch the current value. my @out = grep /^\Q$text/, @options; - my $val = option_val($out[0], undef); + my $val = option_val( $out[0], undef ); # Set up a 'query option's value' command. my $out = '? '; - if (not defined $val or $val =~ /[\n\r]/) { - # There's really nothing else we can do. + if ( not defined $val or $val =~ /[\n\r]/ ) { + + # There's really nothing else we can do. } # We have a value. Create a proper option-setting command. - elsif ($val =~ /\s/) { + elsif ( $val =~ /\s/ ) { + # XXX This may be an extraneous variable. my $found; # We'll want to quote the string (because of the embedded # whtespace), but we want to make sure we don't end up with # mismatched quote characters. We try several possibilities. - foreach $l (split //, qq/\"\'\#\|/) { + foreach $l ( split //, qq/\"\'\#\|/ ) { + # If we didn't find this quote character in the value, # quote it using this quote character. - $out = "$l$val$l ", last if (index $val, $l) == -1; + $out = "$l$val$l ", last if ( index $val, $l ) == -1; } } ## end elsif ($val =~ /\s/) @@ -8044,7 +8363,7 @@ question mark, which, if executed, will list the current value of the option. # makes the command into a query command. If there was just one, # have readline append that. $rl_attribs->{completer_terminator_character} = - (@out == 1 ? $out : '? '); + ( @out == 1 ? $out : '? ' ); # Return list of possibilities. return sort @out; @@ -8084,14 +8403,321 @@ environment. Used by the C<R> (restart) command. =cut sub clean_ENV { - if (defined($ini_pids)) { + if ( defined($ini_pids) ) { $ENV{PERLDB_PIDS} = $ini_pids; } else { - delete($ENV{PERLDB_PIDS}); + delete( $ENV{PERLDB_PIDS} ); } } ## end sub clean_ENV +# PERLDBf_... flag names from perl.h +our ( %DollarCaretP_flags, %DollarCaretP_flags_r ); + +BEGIN { + %DollarCaretP_flags = ( + PERLDBf_SUB => 0x01, # Debug sub enter/exit + PERLDBf_LINE => 0x02, # Keep line # + PERLDBf_NOOPT => 0x04, # Switch off optimizations + PERLDBf_INTER => 0x08, # Preserve more data + PERLDBf_SUBLINE => 0x10, # Keep subr source lines + PERLDBf_SINGLE => 0x20, # Start with single-step on + PERLDBf_NONAME => 0x40, # For _SUB: no name of the subr + PERLDBf_GOTO => 0x80, # Report goto: call DB::goto + PERLDBf_NAMEEVAL => 0x100, # Informative names for evals + PERLDBf_NAMEANON => 0x200, # Informative names for anon subs + PERLDBf_ASSERTION => 0x400, # Debug assertion subs enter/exit + PERLDB_ALL => 0x33f, # No _NONAME, _GOTO, _ASSERTION + ); + + %DollarCaretP_flags_r = reverse %DollarCaretP_flags; +} + +sub parse_DollarCaretP_flags { + my $flags = shift; + $flags =~ s/^\s+//; + $flags =~ s/\s+$//; + my $acu = 0; + foreach my $f ( split /\s*\|\s*/, $flags ) { + my $value; + if ( $f =~ /^0x([[:xdigit:]]+)$/ ) { + $value = hex $1; + } + elsif ( $f =~ /^(\d+)$/ ) { + $value = int $1; + } + elsif ( $f =~ /^DEFAULT$/i ) { + $value = $DollarCaretP_flags{PERLDB_ALL}; + } + else { + $f =~ /^(?:PERLDBf_)?(.*)$/i; + $value = $DollarCaretP_flags{ 'PERLDBf_' . uc($1) }; + unless ( defined $value ) { + print $OUT ( + "Unrecognized \$^P flag '$f'!\n", + "Acceptable flags are: " + . join( ', ', sort keys %DollarCaretP_flags ), + ", and hexadecimal and decimal numbers.\n" + ); + return undef; + } + } + $acu |= $value; + } + $acu; +} + +sub expand_DollarCaretP_flags { + my $DollarCaretP = shift; + my @bits = ( + map { + my $n = ( 1 << $_ ); + ( $DollarCaretP & $n ) + ? ( $DollarCaretP_flags_r{$n} + || sprintf( '0x%x', $n ) ) + : () + } 0 .. 31 + ); + return @bits ? join( '|', @bits ) : 0; +} + +=item rerun + +Rerun the current session to: + + rerun current position + + rerun 4 command number 4 + + rerun -4 current command minus 4 (go back 4 steps) + +Whether this always makes sense, in the current context is unknowable, and is +in part left as a useful exersize for the reader. This sub returns the +appropriate arguments to rerun the current session. + +=cut + +sub rerun { + my $i = shift; + my @args; + pop(@truehist); # strim + unless (defined $truehist[$i]) { + print "Unable to return to non-existent command: $i\n"; + } else { + $#truehist = ($i < 0 ? $#truehist + $i : $i > 0 ? $i : $#truehist); + my @temp = @truehist; # store + push(@DB::typeahead, @truehist); # saved + @truehist = @hist = (); # flush + @args = &restart(); # setup + &get_list("PERLDB_HIST"); # clean + &set_list("PERLDB_HIST", @temp); # reset + } + return @args; +} + +=item restart + +Restarting the debugger is a complex operation that occurs in several phases. +First, we try to reconstruct the command line that was used to invoke Perl +and the debugger. + +=cut + +sub restart { + # I may not be able to resurrect you, but here goes ... + print $OUT +"Warning: some settings and command-line options may be lost!\n"; + my ( @script, @flags, $cl ); + + # If warn was on before, turn it on again. + push @flags, '-w' if $ini_warn; + if ( $ini_assertion and @{^ASSERTING} ) { + push @flags, + ( map { /\:\^\(\?\:(.*)\)\$\)/ ? "-A$1" : "-A$_" } + @{^ASSERTING} ); + } + + # Rebuild the -I flags that were on the initial + # command line. + for (@ini_INC) { + push @flags, '-I', $_; + } + + # Turn on taint if it was on before. + push @flags, '-T' if ${^TAINT}; + + # Arrange for setting the old INC: + # Save the current @init_INC in the environment. + set_list( "PERLDB_INC", @ini_INC ); + + # If this was a perl one-liner, go to the "file" + # corresponding to the one-liner read all the lines + # out of it (except for the first one, which is going + # to be added back on again when 'perl -d' runs: that's + # the 'require perl5db.pl;' line), and add them back on + # to the command line to be executed. + if ( $0 eq '-e' ) { + for ( 1 .. $#{'::_<-e'} ) { # The first line is PERL5DB + chomp( $cl = ${'::_<-e'}[$_] ); + push @script, '-e', $cl; + } + } ## end if ($0 eq '-e') + + # Otherwise we just reuse the original name we had + # before. + else { + @script = $0; + } + +=pod + +After the command line has been reconstructed, the next step is to save +the debugger's status in environment variables. The C<DB::set_list> routine +is used to save aggregate variables (both hashes and arrays); scalars are +just popped into environment variables directly. + +=cut + + # If the terminal supported history, grab it and + # save that in the environment. + set_list( "PERLDB_HIST", + $term->Features->{getHistory} + ? $term->GetHistory + : @hist ); + + # Find all the files that were visited during this + # session (i.e., the debugger had magic hashes + # corresponding to them) and stick them in the environment. + my @had_breakpoints = keys %had_breakpoints; + set_list( "PERLDB_VISITED", @had_breakpoints ); + + # Save the debugger options we chose. + set_list( "PERLDB_OPT", %option ); + # set_list( "PERLDB_OPT", options2remember() ); + + # Save the break-on-loads. + set_list( "PERLDB_ON_LOAD", %break_on_load ); + +=pod + +The most complex part of this is the saving of all of the breakpoints. They +can live in an awful lot of places, and we have to go through all of them, +find the breakpoints, and then save them in the appropriate environment +variable via C<DB::set_list>. + +=cut + + # Go through all the breakpoints and make sure they're + # still valid. + my @hard; + for ( 0 .. $#had_breakpoints ) { + + # We were in this file. + my $file = $had_breakpoints[$_]; + + # Grab that file's magic line hash. + *dbline = $main::{ '_<' . $file }; + + # Skip out if it doesn't exist, or if the breakpoint + # is in a postponed file (we'll do postponed ones + # later). + next unless %dbline or $postponed_file{$file}; + + # In an eval. This is a little harder, so we'll + # do more processing on that below. + ( push @hard, $file ), next + if $file =~ /^\(\w*eval/; + + # XXX I have no idea what this is doing. Yet. + my @add; + @add = %{ $postponed_file{$file} } + if $postponed_file{$file}; + + # Save the list of all the breakpoints for this file. + set_list( "PERLDB_FILE_$_", %dbline, @add ); + } ## end for (0 .. $#had_breakpoints) + + # The breakpoint was inside an eval. This is a little + # more difficult. XXX and I don't understand it. + for (@hard) { + # Get over to the eval in question. + *dbline = $main::{ '_<' . $_ }; + my ( $quoted, $sub, %subs, $line ) = quotemeta $_; + for $sub ( keys %sub ) { + next unless $sub{$sub} =~ /^$quoted:(\d+)-(\d+)$/; + $subs{$sub} = [ $1, $2 ]; + } + unless (%subs) { + print $OUT + "No subroutines in $_, ignoring breakpoints.\n"; + next; + } + LINES: for $line ( keys %dbline ) { + + # One breakpoint per sub only: + my ( $offset, $sub, $found ); + SUBS: for $sub ( keys %subs ) { + if ( + $subs{$sub}->[1] >= + $line # Not after the subroutine + and ( + not defined $offset # Not caught + or $offset < 0 + ) + ) + { # or badly caught + $found = $sub; + $offset = $line - $subs{$sub}->[0]; + $offset = "+$offset", last SUBS + if $offset >= 0; + } ## end if ($subs{$sub}->[1] >=... + } ## end for $sub (keys %subs) + if ( defined $offset ) { + $postponed{$found} = + "break $offset if $dbline{$line}"; + } + else { + print $OUT +"Breakpoint in $_:$line ignored: after all the subroutines.\n"; + } + } ## end for $line (keys %dbline) + } ## end for (@hard) + + # Save the other things that don't need to be + # processed. + set_list( "PERLDB_POSTPONE", %postponed ); + set_list( "PERLDB_PRETYPE", @$pretype ); + set_list( "PERLDB_PRE", @$pre ); + set_list( "PERLDB_POST", @$post ); + set_list( "PERLDB_TYPEAHEAD", @typeahead ); + + # We are oficially restarting. + $ENV{PERLDB_RESTART} = 1; + + # We are junking all child debuggers. + delete $ENV{PERLDB_PIDS}; # Restore ini state + + # Set this back to the initial pid. + $ENV{PERLDB_PIDS} = $ini_pids if defined $ini_pids; + +=pod + +After all the debugger status has been saved, we take the command we built up +and then return it, so we can C<exec()> it. The debugger will spot the +C<PERLDB_RESTART> environment variable and realize it needs to reload its state +from the environment. + +=cut + + # And run Perl again. Add the "-d" flag, all the + # flags we built up, the script (whether a one-liner + # or a file), add on the -emacs flag for a slave editor, + # and then the old arguments. + + return ($^X, '-d', @flags, @script, ($slave_editor ? '-emacs' : ()), @ARGS); + +}; # end restart + =head1 END PROCESSING - THE C<END> BLOCK Come here at the very end of processing. We want to go into a @@ -8156,20 +8782,21 @@ sub cmd_pre580_a { my $cmd = shift; # Argument supplied. Add the action. - if ($cmd =~ /^(\d*)\s*(.*)/) { + if ( $cmd =~ /^(\d*)\s*(.*)/ ) { # If the line isn't there, use the current line. $i = $1 || $line; $j = $2; # If there is an action ... - if (length $j) { + if ( length $j ) { # ... but the line isn't breakable, skip it. - if ($dbline[$i] == 0) { + if ( $dbline[$i] == 0 ) { print $OUT "Line $i may not have an action.\n"; } else { + # ... and the line is breakable: # Mark that there's an action in this file. $had_breakpoints{$filename} |= 2; @@ -8184,8 +8811,10 @@ sub cmd_pre580_a { # No action supplied. else { + # Delete the action. $dbline{$i} =~ s/\0[^\0]*//; + # Mark as having no break or action if nothing's left. delete $dbline{$i} if $dbline{$i} eq ''; } @@ -8199,27 +8828,28 @@ Add breakpoints. =cut sub cmd_pre580_b { - my $xcmd = shift; - my $cmd = shift; + my $xcmd = shift; + my $cmd = shift; my $dbline = shift; # Break on load. - if ($cmd =~ /^load\b\s*(.*)/) { + if ( $cmd =~ /^load\b\s*(.*)/ ) { my $file = $1; $file =~ s/\s+$//; &cmd_b_load($file); } # b compile|postpone <some sub> [<condition>] - # The interpreter actually traps this one for us; we just put the + # The interpreter actually traps this one for us; we just put the # necessary condition in the %postponed hash. - elsif ($cmd =~ /^(postpone|compile)\b\s*([':A-Za-z_][':\w]*)\s*(.*)/) { + elsif ( $cmd =~ /^(postpone|compile)\b\s*([':A-Za-z_][':\w]*)\s*(.*)/ ) { + # Capture the condition if there is one. Make it true if none. my $cond = length $3 ? $3 : '1'; # Save the sub name and set $break to 1 if $1 was 'postpone', 0 # if it was 'compile'. - my ($subname, $break) = ($2, $1 eq 'postpone'); + my ( $subname, $break ) = ( $2, $1 eq 'postpone' ); # De-Perl4-ify the name - ' separators to ::. $subname =~ s/\'/::/g; @@ -8229,24 +8859,24 @@ sub cmd_pre580_b { unless $subname =~ /::/; # Add main if it starts with ::. - $subname = "main" . $subname if substr($subname, 0, 2) eq "::"; + $subname = "main" . $subname if substr( $subname, 0, 2 ) eq "::"; # Save the break type for this sub. $postponed{$subname} = $break ? "break +0 if $cond" : "compile"; } ## end elsif ($cmd =~ ... # b <sub name> [<condition>] - elsif ($cmd =~ /^([':A-Za-z_][':\w]*(?:\[.*\])?)\s*(.*)/) { + elsif ( $cmd =~ /^([':A-Za-z_][':\w]*(?:\[.*\])?)\s*(.*)/ ) { my $subname = $1; my $cond = length $2 ? $2 : '1'; - &cmd_b_sub($subname, $cond); + &cmd_b_sub( $subname, $cond ); } # b <line> [<condition>]. - elsif ($cmd =~ /^(\d*)\s*(.*)/) { + elsif ( $cmd =~ /^(\d*)\s*(.*)/ ) { my $i = $1 || $dbline; my $cond = length $2 ? $2 : '1'; - &cmd_b_line($i, $cond); + &cmd_b_line( $i, $cond ); } } ## end sub cmd_pre580_b @@ -8259,13 +8889,14 @@ Delete all breakpoints unconditionally. sub cmd_pre580_D { my $xcmd = shift; my $cmd = shift; - if ($cmd =~ /^\s*$/) { + if ( $cmd =~ /^\s*$/ ) { print $OUT "Deleting all breakpoints...\n"; # %had_breakpoints lists every file that had at least one # breakpoint in it. my $file; - for $file (keys %had_breakpoints) { + for $file ( keys %had_breakpoints ) { + # Switch to the desired file temporarily. local *dbline = $main::{ '_<' . $file }; @@ -8273,12 +8904,15 @@ sub cmd_pre580_D { my $was; # For all lines in this file ... - for ($i = 1 ; $i <= $max ; $i++) { + for ( $i = 1 ; $i <= $max ; $i++ ) { + # If there's a breakpoint or action on this line ... - if (defined $dbline{$i}) { + if ( defined $dbline{$i} ) { + # ... remove the breakpoint. $dbline{$i} =~ s/^[^\0]+//; - if ($dbline{$i} =~ s/^\0?$//) { + if ( $dbline{$i} =~ s/^\0?$// ) { + # Remove the entry altogether if no action is there. delete $dbline{$i}; } @@ -8286,9 +8920,9 @@ sub cmd_pre580_D { } ## end for ($i = 1 ; $i <= $max... # If, after we turn off the "there were breakpoints in this file" - # bit, the entry in %had_breakpoints for this file is zero, + # bit, the entry in %had_breakpoints for this file is zero, # we should remove this file from the hash. - if (not $had_breakpoints{$file} &= ~1) { + if ( not $had_breakpoints{$file} &= ~1 ) { delete $had_breakpoints{$file}; } } ## end for $file (keys %had_breakpoints) @@ -8313,25 +8947,28 @@ sub cmd_pre580_h { my $cmd = shift; # Print the *right* help, long format. - if ($cmd =~ /^\s*$/) { + if ( $cmd =~ /^\s*$/ ) { print_help($pre580_help); } - # 'h h' - explicitly-requested summary. - elsif ($cmd =~ /^h\s*/) { + # 'h h' - explicitly-requested summary. + elsif ( $cmd =~ /^h\s*/ ) { print_help($pre580_summary); } # Find and print a command's help. - elsif ($cmd =~ /^h\s+(\S.*)$/) { + elsif ( $cmd =~ /^h\s+(\S.*)$/ ) { my $asked = $1; # for proper errmsg my $qasked = quotemeta($asked); # for searching # XXX: finds CR but not <CR> - if ($pre580_help =~ /^ + if ( + $pre580_help =~ /^ <? # Optional '<' (?:[IB]<) # Optional markup $qasked # The command name - /mx) { + /mx + ) + { while ( $pre580_help =~ /^ @@ -8342,8 +8979,9 @@ sub cmd_pre580_h { ([\s\S]*?) # Lines starting with tabs \n # Final newline ) - (?!\s)/mgx) # Line not starting with space - # (Next command's help) + (?!\s)/mgx + ) # Line not starting with space + # (Next command's help) { print_help($1); } @@ -8367,23 +9005,26 @@ sub cmd_pre580_W { my $cmd = shift; # Delete all watch expressions. - if ($cmd =~ /^$/) { + if ( $cmd =~ /^$/ ) { + # No watching is going on. $trace &= ~2; + # Kill all the watch expressions and values. @to_watch = @old_watch = (); } # Add a watch expression. - elsif ($cmd =~ /^(.*)/s) { + elsif ( $cmd =~ /^(.*)/s ) { + # add it to the list to be watched. push @to_watch, $1; - # Get the current value of the expression. + # Get the current value of the expression. # Doesn't handle expressions returning list values! $evalarg = $1; my ($val) = &eval; - $val = (defined $val) ? "'$val'" : 'undef'; + $val = ( defined $val ) ? "'$val'" : 'undef'; # Save it. push @old_watch, $val; @@ -8426,7 +9067,8 @@ then use generic code to all, delete, or list actions. =cut -sub cmd_prepost { my $cmd = shift; +sub cmd_prepost { + my $cmd = shift; # No action supplied defaults to 'list'. my $line = shift || '?'; @@ -8437,9 +9079,9 @@ sub cmd_prepost { my $cmd = shift; # Make sure we have some array or another to address later. # This means that if ssome reason the tests fail, we won't be # trying to stash actions or delete them from the wrong place. - my $aref = []; + my $aref = []; - # < - Perl code to run before prompt. + # < - Perl code to run before prompt. if ( $cmd =~ /^\</o ) { $which = 'pre-perl'; $aref = $pre; @@ -8470,15 +9112,18 @@ sub cmd_prepost { my $cmd = shift; print $OUT "Confused by command: $cmd\n"; } - # Yes. + # Yes. else { + # List actions. if ( $line =~ /^\s*\?\s*$/o ) { unless (@$aref) { + # Nothing there. Complain. print $OUT "No $which actions.\n"; } else { + # List the actions in the selected list. print $OUT "$which commands:\n"; foreach my $action (@$aref) { @@ -8491,21 +9136,25 @@ sub cmd_prepost { my $cmd = shift; else { if ( length($cmd) == 1 ) { if ( $line =~ /^\s*\*\s*$/o ) { - # It's a delete. Get rid of the old actions in the + + # It's a delete. Get rid of the old actions in the # selected list.. @$aref = (); print $OUT "All $cmd actions cleared.\n"; } else { + # Replace all the actions. (This is a <, >, or {). @$aref = action($line); } } ## end if ( length($cmd) == 1) - elsif ( length($cmd) == 2 ) { + elsif ( length($cmd) == 2 ) { + # Add the action to the line. (This is a <<, >>, or {{). push @$aref, action($line); } else { + # <<<, >>>>, {{{{{{ ... something not a command. print $OUT "Confused by strange length of $which command($cmd)...\n"; @@ -8514,7 +9163,6 @@ sub cmd_prepost { my $cmd = shift; } ## end else } ## end sub cmd_prepost - =head1 C<DB::fake> Contains the C<at_exit> routine that the debugger uses to issue the @@ -8533,3 +9181,4 @@ package DB; # Do not trace this 1; below! 1; + diff --git a/gnu/usr.bin/perl/lib/unicore/ArabLink.pl b/gnu/usr.bin/perl/lib/unicore/ArabLink.pl deleted file mode 100644 index f68a8af519a..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/ArabLink.pl +++ /dev/null @@ -1,49 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -return <<'END'; -0621 U -0622 0625 R -0626 D -0627 R -0628 D -0629 R -062A 062E D -062F 0632 R -0633 063A D -0640 C -0641 0647 D -0648 R -0649 064A D -066E 066F D -0671 0673 R -0674 U -0675 0677 R -0678 0687 D -0688 0699 R -069A 06BF D -06C0 R -06C1 D -06C2 06CB R -06CC D -06CD R -06CE D -06CF R -06D0 06D1 D -06D2 06D3 R -06D5 R -06FA 06FC D -0710 R -0712 0714 D -0715 0719 R -071A 071D D -071E R -071F 0727 D -0728 R -0729 D -072A R -072B D -072C R -200D C -END diff --git a/gnu/usr.bin/perl/lib/unicore/ArabLnkGrp.pl b/gnu/usr.bin/perl/lib/unicore/ArabLnkGrp.pl deleted file mode 100644 index 2e766d50a8f..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/ArabLnkGrp.pl +++ /dev/null @@ -1,98 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -return <<'END'; -0621 <no shaping> -0622 0623 ALEF -0624 WAW -0625 ALEF -0626 YEH -0627 ALEF -0628 BEH -0629 TEH MARBUTA -062A 062B BEH -062C 062E HAH -062F 0630 DAL -0631 0632 REH -0633 0634 SEEN -0635 0636 SAD -0637 0638 TAH -0639 063A AIN -0640 <no shaping> -0641 FEH -0642 QAF -0643 KAF -0644 LAM -0645 MEEM -0646 NOON -0647 HEH -0648 WAW -0649 064A YEH -066E BEH -066F QAF -0671 0673 ALEF -0674 <no shaping> -0675 ALEF -0676 0677 WAW -0678 YEH -0679 0680 BEH -0681 0687 HAH -0688 0690 DAL -0691 0699 REH -069A 069C SEEN -069D 069E SAD -069F TAH -06A0 AIN -06A1 06A6 FEH -06A7 06A8 QAF -06A9 GAF -06AA SWASH KAF -06AB GAF -06AC 06AE KAF -06AF 06B4 GAF -06B5 06B8 LAM -06B9 06BD NOON -06BE KNOTTED HEH -06BF HAH -06C0 TEH MARBUTA -06C1 HEH GOAL -06C2 06C3 HAMZA ON HEH GOAL -06C4 06CB WAW -06CC YEH -06CD YEH WITH TAIL -06CE YEH -06CF WAW -06D0 06D1 YEH -06D2 06D3 YEH BARREE -06D5 TEH MARBUTA -06FA SEEN -06FB SAD -06FC AIN -0710 ALAPH -0712 BETH -0713 0714 GAMAL -0715 0716 DALATH RISH -0717 HE -0718 SYRIAC WAW -0719 ZAIN -071A HETH -071B 071C TETH -071D YUDH -071E YUDH HE -071F KAPH -0720 LAMADH -0721 MIM -0722 NUN -0723 SEMKATH -0724 FINAL SEMKATH -0725 E -0726 PE -0727 REVERSED PE -0728 SADHE -0729 QAPH -072A DALATH RISH -072B SHIN -072C TAW -200D <no shaping> -END diff --git a/gnu/usr.bin/perl/lib/unicore/Bidirectional.pl b/gnu/usr.bin/perl/lib/unicore/Bidirectional.pl deleted file mode 100644 index 0fd1fff9321..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/Bidirectional.pl +++ /dev/null @@ -1,692 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -return <<'END'; -0000 0008 BN -0009 S -000A B -000B S -000C WS -000D B -000E 001B BN -001C 001E B -001F S -0020 WS -0021 0022 ON -0023 0025 ET -0026 002A ON -002B ET -002C CS -002D ET -002E CS -002F ES -0030 0039 EN -003A CS -003B 0040 ON -0041 005A L -005B 0060 ON -0061 007A L -007B 007E ON -007F 0084 BN -0085 B -0086 009F BN -00A0 CS -00A1 ON -00A2 00A5 ET -00A6 00A9 ON -00AA L -00AB 00AF ON -00B0 00B1 ET -00B2 00B3 EN -00B4 ON -00B5 L -00B6 00B8 ON -00B9 EN -00BA L -00BB 00BF ON -00C0 00D6 L -00D7 ON -00D8 00F6 L -00F7 ON -00F8 0220 L -0222 0233 L -0250 02AD L -02B0 02B8 L -02B9 02BA ON -02BB 02C1 L -02C2 02CF ON -02D0 02D1 L -02D2 02DF ON -02E0 02E4 L -02E5 02ED ON -02EE L -0300 034F NSM -0360 036F NSM -0374 0375 ON -037A L -037E ON -0384 0385 ON -0386 L -0387 ON -0388 038A L -038C L -038E 03A1 L -03A3 03CE L -03D0 03F5 L -03F6 ON -0400 0482 L -0483 0486 NSM -0488 0489 NSM -048A 04CE L -04D0 04F5 L -04F8 04F9 L -0500 050F L -0531 0556 L -0559 055F L -0561 0587 L -0589 L -058A ON -0591 05A1 NSM -05A3 05B9 NSM -05BB 05BD NSM -05BE R -05BF NSM -05C0 R -05C1 05C2 NSM -05C3 R -05C4 NSM -05D0 05EA R -05F0 05F4 R -060C CS -061B AL -061F AL -0621 063A AL -0640 064A AL -064B 0655 NSM -0660 0669 AN -066A ET -066B 066C AN -066D 066F AL -0670 NSM -0671 06D5 AL -06D6 06DC NSM -06DD AL -06DE 06E4 NSM -06E5 06E6 AL -06E7 06E8 NSM -06E9 ON -06EA 06ED NSM -06F0 06F9 EN -06FA 06FE AL -0700 070D AL -070F BN -0710 AL -0711 NSM -0712 072C AL -0730 074A NSM -0780 07A5 AL -07A6 07B0 NSM -07B1 AL -0901 0902 NSM -0903 L -0905 0939 L -093C NSM -093D 0940 L -0941 0948 NSM -0949 094C L -094D NSM -0950 L -0951 0954 NSM -0958 0961 L -0962 0963 NSM -0964 0970 L -0981 NSM -0982 0983 L -0985 098C L -098F 0990 L -0993 09A8 L -09AA 09B0 L -09B2 L -09B6 09B9 L -09BC NSM -09BE 09C0 L -09C1 09C4 NSM -09C7 09C8 L -09CB 09CC L -09CD NSM -09D7 L -09DC 09DD L -09DF 09E1 L -09E2 09E3 NSM -09E6 09F1 L -09F2 09F3 ET -09F4 09FA L -0A02 NSM -0A05 0A0A L -0A0F 0A10 L -0A13 0A28 L -0A2A 0A30 L -0A32 0A33 L -0A35 0A36 L -0A38 0A39 L -0A3C NSM -0A3E 0A40 L -0A41 0A42 NSM -0A47 0A48 NSM -0A4B 0A4D NSM -0A59 0A5C L -0A5E L -0A66 0A6F L -0A70 0A71 NSM -0A72 0A74 L -0A81 0A82 NSM -0A83 L -0A85 0A8B L -0A8D L -0A8F 0A91 L -0A93 0AA8 L -0AAA 0AB0 L -0AB2 0AB3 L -0AB5 0AB9 L -0ABC NSM -0ABD 0AC0 L -0AC1 0AC5 NSM -0AC7 0AC8 NSM -0AC9 L -0ACB 0ACC L -0ACD NSM -0AD0 L -0AE0 L -0AE6 0AEF L -0B01 NSM -0B02 0B03 L -0B05 0B0C L -0B0F 0B10 L -0B13 0B28 L -0B2A 0B30 L -0B32 0B33 L -0B36 0B39 L -0B3C NSM -0B3D 0B3E L -0B3F NSM -0B40 L -0B41 0B43 NSM -0B47 0B48 L -0B4B 0B4C L -0B4D NSM -0B56 NSM -0B57 L -0B5C 0B5D L -0B5F 0B61 L -0B66 0B70 L -0B82 NSM -0B83 L -0B85 0B8A L -0B8E 0B90 L -0B92 0B95 L -0B99 0B9A L -0B9C L -0B9E 0B9F L -0BA3 0BA4 L -0BA8 0BAA L -0BAE 0BB5 L -0BB7 0BB9 L -0BBE 0BBF L -0BC0 NSM -0BC1 0BC2 L -0BC6 0BC8 L -0BCA 0BCC L -0BCD NSM -0BD7 L -0BE7 0BF2 L -0C01 0C03 L -0C05 0C0C L -0C0E 0C10 L -0C12 0C28 L -0C2A 0C33 L -0C35 0C39 L -0C3E 0C40 NSM -0C41 0C44 L -0C46 0C48 NSM -0C4A 0C4D NSM -0C55 0C56 NSM -0C60 0C61 L -0C66 0C6F L -0C82 0C83 L -0C85 0C8C L -0C8E 0C90 L -0C92 0CA8 L -0CAA 0CB3 L -0CB5 0CB9 L -0CBE L -0CBF NSM -0CC0 0CC4 L -0CC6 NSM -0CC7 0CC8 L -0CCA 0CCB L -0CCC 0CCD NSM -0CD5 0CD6 L -0CDE L -0CE0 0CE1 L -0CE6 0CEF L -0D02 0D03 L -0D05 0D0C L -0D0E 0D10 L -0D12 0D28 L -0D2A 0D39 L -0D3E 0D40 L -0D41 0D43 NSM -0D46 0D48 L -0D4A 0D4C L -0D4D NSM -0D57 L -0D60 0D61 L -0D66 0D6F L -0D82 0D83 L -0D85 0D96 L -0D9A 0DB1 L -0DB3 0DBB L -0DBD L -0DC0 0DC6 L -0DCA NSM -0DCF 0DD1 L -0DD2 0DD4 NSM -0DD6 NSM -0DD8 0DDF L -0DF2 0DF4 L -0E01 0E30 L -0E31 NSM -0E32 0E33 L -0E34 0E3A NSM -0E3F ET -0E40 0E46 L -0E47 0E4E NSM -0E4F 0E5B L -0E81 0E82 L -0E84 L -0E87 0E88 L -0E8A L -0E8D L -0E94 0E97 L -0E99 0E9F L -0EA1 0EA3 L -0EA5 L -0EA7 L -0EAA 0EAB L -0EAD 0EB0 L -0EB1 NSM -0EB2 0EB3 L -0EB4 0EB9 NSM -0EBB 0EBC NSM -0EBD L -0EC0 0EC4 L -0EC6 L -0EC8 0ECD NSM -0ED0 0ED9 L -0EDC 0EDD L -0F00 0F17 L -0F18 0F19 NSM -0F1A 0F34 L -0F35 NSM -0F36 L -0F37 NSM -0F38 L -0F39 NSM -0F3A 0F3D ON -0F3E 0F47 L -0F49 0F6A L -0F71 0F7E NSM -0F7F L -0F80 0F84 NSM -0F85 L -0F86 0F87 NSM -0F88 0F8B L -0F90 0F97 NSM -0F99 0FBC NSM -0FBE 0FC5 L -0FC6 NSM -0FC7 0FCC L -0FCF L -1000 1021 L -1023 1027 L -1029 102A L -102C L -102D 1030 NSM -1031 L -1032 NSM -1036 1037 NSM -1038 L -1039 NSM -1040 1057 L -1058 1059 NSM -10A0 10C5 L -10D0 10F8 L -10FB L -1100 1159 L -115F 11A2 L -11A8 11F9 L -1200 1206 L -1208 1246 L -1248 L -124A 124D L -1250 1256 L -1258 L -125A 125D L -1260 1286 L -1288 L -128A 128D L -1290 12AE L -12B0 L -12B2 12B5 L -12B8 12BE L -12C0 L -12C2 12C5 L -12C8 12CE L -12D0 12D6 L -12D8 12EE L -12F0 130E L -1310 L -1312 1315 L -1318 131E L -1320 1346 L -1348 135A L -1361 137C L -13A0 13F4 L -1401 1676 L -1680 WS -1681 169A L -169B 169C ON -16A0 16F0 L -1700 170C L -170E 1711 L -1712 1714 NSM -1720 1731 L -1732 1734 NSM -1735 1736 L -1740 1751 L -1752 1753 NSM -1760 176C L -176E 1770 L -1772 1773 NSM -1780 17B6 L -17B7 17BD NSM -17BE 17C5 L -17C6 NSM -17C7 17C8 L -17C9 17D3 NSM -17D4 17DA L -17DB ET -17DC L -17E0 17E9 L -1800 180A ON -180B 180D NSM -180E BN -1810 1819 L -1820 1877 L -1880 18A8 L -18A9 NSM -1E00 1E9B L -1EA0 1EF9 L -1F00 1F15 L -1F18 1F1D L -1F20 1F45 L -1F48 1F4D L -1F50 1F57 L -1F59 L -1F5B L -1F5D L -1F5F 1F7D L -1F80 1FB4 L -1FB6 1FBC L -1FBD ON -1FBE L -1FBF 1FC1 ON -1FC2 1FC4 L -1FC6 1FCC L -1FCD 1FCF ON -1FD0 1FD3 L -1FD6 1FDB L -1FDD 1FDF ON -1FE0 1FEC L -1FED 1FEF ON -1FF2 1FF4 L -1FF6 1FFC L -1FFD 1FFE ON -2000 200A WS -200B 200D BN -200E L -200F R -2010 2027 ON -2028 WS -2029 B -202A LRE -202B RLE -202C PDF -202D LRO -202E RLO -202F WS -2030 2034 ET -2035 2052 ON -2057 ON -205F WS -2060 2063 BN -206A 206F BN -2070 EN -2071 L -2074 2079 EN -207A 207B ET -207C 207E ON -207F L -2080 2089 EN -208A 208B ET -208C 208E ON -20A0 20B1 ET -20D0 20EA NSM -2100 2101 ON -2102 L -2103 2106 ON -2107 L -2108 2109 ON -210A 2113 L -2114 ON -2115 L -2116 2118 ON -2119 211D L -211E 2123 ON -2124 L -2125 ON -2126 L -2127 ON -2128 L -2129 ON -212A 212D L -212E ET -212F 2131 L -2132 ON -2133 2139 L -213A ON -213D 213F L -2140 2144 ON -2145 2149 L -214A 214B ON -2153 215F ON -2160 2183 L -2190 2211 ON -2212 2213 ET -2214 2335 ON -2336 237A L -237B 2394 ON -2395 L -2396 23CE ON -2400 2426 ON -2440 244A ON -2460 249B EN -249C 24E9 L -24EA EN -24EB 24FE ON -2500 2613 ON -2616 2617 ON -2619 267D ON -2680 2689 ON -2701 2704 ON -2706 2709 ON -270C 2727 ON -2729 274B ON -274D ON -274F 2752 ON -2756 ON -2758 275E ON -2761 2794 ON -2798 27AF ON -27B1 27BE ON -27D0 27EB ON -27F0 2AFF ON -2E80 2E99 ON -2E9B 2EF3 ON -2F00 2FD5 ON -2FF0 2FFB ON -3000 WS -3001 3004 ON -3005 3007 L -3008 3020 ON -3021 3029 L -302A 302F NSM -3030 ON -3031 3035 L -3036 3037 ON -3038 303C L -303D 303F ON -3041 3096 L -3099 309A NSM -309B 309C ON -309D 309F L -30A0 ON -30A1 30FA L -30FB ON -30FC 30FF L -3105 312C L -3131 318E L -3190 31B7 L -31F0 321C L -3220 3243 L -3251 325F ON -3260 327B L -327F 32B0 L -32B1 32BF ON -32C0 32CB L -32D0 32FE L -3300 3376 L -337B 33DD L -33E0 33FE L -A000 A48C L -A490 A4C6 ON -F900 FA2D L -FA30 FA6A L -FB00 FB06 L -FB13 FB17 L -FB1D R -FB1E NSM -FB1F FB28 R -FB29 ET -FB2A FB36 R -FB38 FB3C R -FB3E R -FB40 FB41 R -FB43 FB44 R -FB46 FB4F R -FB50 FBB1 AL -FBD3 FD3D AL -FD3E FD3F ON -FD50 FD8F AL -FD92 FDC7 AL -FDF0 FDFC AL -FE00 FE0F NSM -FE20 FE23 NSM -FE30 FE46 ON -FE49 FE4F ON -FE50 CS -FE51 ON -FE52 CS -FE54 ON -FE55 CS -FE56 FE5E ON -FE5F ET -FE60 FE61 ON -FE62 FE63 ET -FE64 FE66 ON -FE68 ON -FE69 FE6A ET -FE6B ON -FE70 FE74 AL -FE76 FEFC AL -FEFF BN -FF01 FF02 ON -FF03 FF05 ET -FF06 FF0A ON -FF0B ET -FF0C CS -FF0D ET -FF0E CS -FF0F ES -FF10 FF19 EN -FF1A CS -FF1B FF20 ON -FF21 FF3A L -FF3B FF40 ON -FF41 FF5A L -FF5B FF65 ON -FF66 FFBE L -FFC2 FFC7 L -FFCA FFCF L -FFD2 FFD7 L -FFDA FFDC L -FFE0 FFE1 ET -FFE2 FFE4 ON -FFE5 FFE6 ET -FFE8 FFEE ON -FFF9 FFFB BN -FFFC FFFD ON -10300 1031E L -10320 10323 L -10330 1034A L -10400 10425 L -10428 1044D L -1D000 1D0F5 L -1D100 1D126 L -1D12A 1D166 L -1D167 1D169 NSM -1D16A 1D172 L -1D173 1D17A BN -1D17B 1D182 NSM -1D183 1D184 L -1D185 1D18B NSM -1D18C 1D1A9 L -1D1AA 1D1AD NSM -1D1AE 1D1DD L -1D400 1D454 L -1D456 1D49C L -1D49E 1D49F L -1D4A2 L -1D4A5 1D4A6 L -1D4A9 1D4AC L -1D4AE 1D4B9 L -1D4BB L -1D4BD 1D4C0 L -1D4C2 1D4C3 L -1D4C5 1D505 L -1D507 1D50A L -1D50D 1D514 L -1D516 1D51C L -1D51E 1D539 L -1D53B 1D53E L -1D540 1D544 L -1D546 L -1D54A 1D550 L -1D552 1D6A3 L -1D6A8 1D7C9 L -1D7CE 1D7FF EN -2F800 2FA1D L -E0001 BN -E0020 E007F BN -END diff --git a/gnu/usr.bin/perl/lib/unicore/Blocks.pl b/gnu/usr.bin/perl/lib/unicore/Blocks.pl deleted file mode 100644 index 07f2a325cab..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/Blocks.pl +++ /dev/null @@ -1,116 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -return <<'END'; -0000 007F Basic Latin -0080 00FF Latin-1 Supplement -0100 017F Latin Extended-A -0180 024F Latin Extended-B -0250 02AF IPA Extensions -02B0 02FF Spacing Modifier Letters -0300 036F Combining Diacritical Marks -0370 03FF Greek and Coptic -0400 04FF Cyrillic -0500 052F Cyrillic Supplementary -0530 058F Armenian -0590 05FF Hebrew -0600 06FF Arabic -0700 074F Syriac -0780 07BF Thaana -0900 097F Devanagari -0980 09FF Bengali -0A00 0A7F Gurmukhi -0A80 0AFF Gujarati -0B00 0B7F Oriya -0B80 0BFF Tamil -0C00 0C7F Telugu -0C80 0CFF Kannada -0D00 0D7F Malayalam -0D80 0DFF Sinhala -0E00 0E7F Thai -0E80 0EFF Lao -0F00 0FFF Tibetan -1000 109F Myanmar -10A0 10FF Georgian -1100 11FF Hangul Jamo -1200 137F Ethiopic -13A0 13FF Cherokee -1400 167F Unified Canadian Aboriginal Syllabics -1680 169F Ogham -16A0 16FF Runic -1700 171F Tagalog -1720 173F Hanunoo -1740 175F Buhid -1760 177F Tagbanwa -1780 17FF Khmer -1800 18AF Mongolian -1E00 1EFF Latin Extended Additional -1F00 1FFF Greek Extended -2000 206F General Punctuation -2070 209F Superscripts and Subscripts -20A0 20CF Currency Symbols -20D0 20FF Combining Diacritical Marks for Symbols -2100 214F Letterlike Symbols -2150 218F Number Forms -2190 21FF Arrows -2200 22FF Mathematical Operators -2300 23FF Miscellaneous Technical -2400 243F Control Pictures -2440 245F Optical Character Recognition -2460 24FF Enclosed Alphanumerics -2500 257F Box Drawing -2580 259F Block Elements -25A0 25FF Geometric Shapes -2600 26FF Miscellaneous Symbols -2700 27BF Dingbats -27C0 27EF Miscellaneous Mathematical Symbols-A -27F0 27FF Supplemental Arrows-A -2800 28FF Braille Patterns -2900 297F Supplemental Arrows-B -2980 29FF Miscellaneous Mathematical Symbols-B -2A00 2AFF Supplemental Mathematical Operators -2E80 2EFF CJK Radicals Supplement -2F00 2FDF Kangxi Radicals -2FF0 2FFF Ideographic Description Characters -3000 303F CJK Symbols and Punctuation -3040 309F Hiragana -30A0 30FF Katakana -3100 312F Bopomofo -3130 318F Hangul Compatibility Jamo -3190 319F Kanbun -31A0 31BF Bopomofo Extended -31F0 31FF Katakana Phonetic Extensions -3200 32FF Enclosed CJK Letters and Months -3300 33FF CJK Compatibility -3400 4DBF CJK Unified Ideographs Extension A -4E00 9FFF CJK Unified Ideographs -A000 A48F Yi Syllables -A490 A4CF Yi Radicals -AC00 D7AF Hangul Syllables -D800 DB7F High Surrogates -DB80 DBFF High Private Use Surrogates -DC00 DFFF Low Surrogates -E000 F8FF Private Use Area -F900 FAFF CJK Compatibility Ideographs -FB00 FB4F Alphabetic Presentation Forms -FB50 FDFF Arabic Presentation Forms-A -FE00 FE0F Variation Selectors -FE20 FE2F Combining Half Marks -FE30 FE4F CJK Compatibility Forms -FE50 FE6F Small Form Variants -FE70 FEFF Arabic Presentation Forms-B -FF00 FFEF Halfwidth and Fullwidth Forms -FFF0 FFFF Specials -10300 1032F Old Italic -10330 1034F Gothic -10400 1044F Deseret -1D000 1D0FF Byzantine Musical Symbols -1D100 1D1FF Musical Symbols -1D400 1D7FF Mathematical Alphanumeric Symbols -20000 2A6DF CJK Unified Ideographs Extension B -2F800 2FA1F CJK Compatibility Ideographs Supplement -E0000 E007F Tags -F0000 FFFFF Supplementary Private Use Area-A -100000 10FFFF Supplementary Private Use Area-B -END diff --git a/gnu/usr.bin/perl/lib/unicore/Canonical.pl b/gnu/usr.bin/perl/lib/unicore/Canonical.pl deleted file mode 100644 index 947fd2b9d5c..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/Canonical.pl +++ /dev/null @@ -1,816 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -## -## Data in this file used by ../utf8_heavy.pl -## - -## Mapping from lc(canonical name) to filename in ./lib -%utf8::Canonical = ( - alphabetic => 'Alphabet', - - # InAlphabeticPresentationForms - alphabeticpresentationforms => 'InAlphab', - - arabic => 'Arabic', - - # InArabicPresentationFormsA - arabicpresentationformsa => 'InArabi3', - - # InArabicPresentationFormsB - arabicpresentationformsb => 'InArabi2', - - armenian => 'Armenian', - - # InArrows - arrows => 'InArrows', - - # AsciiHexDigit - asciihexdigit => 'AsciiHex', - - # InBasicLatin - basiclatin => 'InBasicL', - - bengali => 'Bengali', - - # BidiControl - bidicontrol => 'BidiCont', - - # InBlockElements - blockelements => 'InBlockE', - - bopomofo => 'Bopomofo', - - # InBopomofoExtended - bopomofoextended => 'InBopom2', - - # InBoxDrawing - boxdrawing => 'InBoxDra', - - # InBraillePatterns - braillepatterns => 'InBraill', - - buhid => 'Buhid', - - # InByzantineMusicalSymbols - byzantinemusicalsymbols => 'InByzant', - - # CanadianAboriginal - canadianaboriginal => 'Canadian', - - cherokee => 'Cherokee', - - # InCjkCompatibility - cjkcompatibility => 'InCjkCom', - - # InCjkCompatibilityForms - cjkcompatibilityforms => 'InCjkCo2', - - # InCjkCompatibilityIdeographs - cjkcompatibilityideographs => 'InCjkCo3', - - # InCjkCompatibilityIdeographsSupplement - cjkcompatibilityideographssupplement => 'InCjkCo4', - - # InCjkRadicalsSupplement - cjkradicalssupplement => 'InCjkRad', - - # InCjkSymbolsAndPunctuation - cjksymbolsandpunctuation => 'InCjkSym', - - # InCjkUnifiedIdeographs - cjkunifiedideographs => 'InCjkUni', - - # InCjkUnifiedIdeographsExtensionA - cjkunifiedideographsextensiona => 'InCjkUn3', - - # InCjkUnifiedIdeographsExtensionB - cjkunifiedideographsextensionb => 'InCjkUn2', - - # ClosePunctuation - closepunctuation => 'Pe', - - # InCombiningDiacriticalMarks - combiningdiacriticalmarks => 'InCombi2', - - # InCombiningDiacriticalMarksForSymbols - combiningdiacriticalmarksforsymbols => 'InCombi3', - - # InCombiningHalfMarks - combininghalfmarks => 'InCombin', - - common => 'Common', - - # ConnectorPunctuation - connectorpunctuation => 'Pc', - - control => 'Cc', - - # InControlPictures - controlpictures => 'InContro', - - # CurrencySymbol - currencysymbol => 'Sc', - - # InCurrencySymbols - currencysymbols => 'InCurren', - - cyrillic => 'Cyrillic', - - # InCyrillicSupplementary - cyrillicsupplementary => 'InCyril2', - - dash => 'Dash', - - # DashPunctuation - dashpunctuation => 'Pd', - - # DecimalNumber - decimalnumber => 'Nd', - - deprecated => 'Deprecat', - deseret => 'Deseret', - devanagari => 'Devanaga', - diacritic => 'Diacriti', - - # InDingbats - dingbats => 'InDingba', - - # InEnclosedAlphanumerics - enclosedalphanumerics => 'InEnclos', - - # InEnclosedCjkLettersAndMonths - enclosedcjklettersandmonths => 'InEnclo2', - - # EnclosingMark - enclosingmark => 'Me', - - ethiopic => 'Ethiopic', - extender => 'Extender', - - # FinalPunctuation - finalpunctuation => 'Pf', - - format => 'Cf', - - # InGeneralPunctuation - generalpunctuation => 'InGenera', - - # InGeometricShapes - geometricshapes => 'InGeomet', - - georgian => 'Georgian', - gothic => 'Gothic', - - # GraphemeLink - graphemelink => 'Grapheme', - - greek => 'Greek', - - # InGreekAndCoptic - greekandcoptic => 'InGreekA', - - # InGreekExtended - greekextended => 'InGreekE', - - gujarati => 'Gujarati', - gurmukhi => 'Gurmukhi', - - # InHalfwidthAndFullwidthForms - halfwidthandfullwidthforms => 'InHalfwi', - - han => 'Han', - hangul => 'Hangul', - - # InHangulCompatibilityJamo - hangulcompatibilityjamo => 'InHangu3', - - # InHangulJamo - hanguljamo => 'InHangul', - - # InHangulSyllables - hangulsyllables => 'InHangu2', - - hanunoo => 'Hanunoo', - hebrew => 'Hebrew', - - # HexDigit - hexdigit => 'HexDigit', - - # InHighPrivateUseSurrogates - highprivateusesurrogates => 'InHighPr', - - # InHighSurrogates - highsurrogates => 'InHighSu', - - hiragana => 'Hiragana', - hyphen => 'Hyphen', - - # IdContinue - idcontinue => 'IdContin', - - ideographic => 'Ideograp', - - # InIdeographicDescriptionCharacters - ideographicdescriptioncharacters => 'InIdeogr', - - # IdsBinaryOperator - idsbinaryoperator => 'IdsBinar', - - # IdStart - idstart => 'IdStart', - - # IdsTrinaryOperator - idstrinaryoperator => 'IdsTrina', - - # InAlphabeticPresentationForms - inalphabeticpresentationforms => 'InAlphab', - - # InArabic - inarabic => 'InArabic', - - # InArabicPresentationFormsA - inarabicpresentationformsa => 'InArabi3', - - # InArabicPresentationFormsB - inarabicpresentationformsb => 'InArabi2', - - # InArmenian - inarmenian => 'InArmeni', - - # InArrows - inarrows => 'InArrows', - - # InBasicLatin - inbasiclatin => 'InBasicL', - - # InBengali - inbengali => 'InBengal', - - # InBlockElements - inblockelements => 'InBlockE', - - # InBopomofo - inbopomofo => 'InBopomo', - - # InBopomofoExtended - inbopomofoextended => 'InBopom2', - - # InBoxDrawing - inboxdrawing => 'InBoxDra', - - # InBraillePatterns - inbraillepatterns => 'InBraill', - - # InBuhid - inbuhid => 'InBuhid', - - # InByzantineMusicalSymbols - inbyzantinemusicalsymbols => 'InByzant', - - # InCherokee - incherokee => 'InCherok', - - # InCjkCompatibility - incjkcompatibility => 'InCjkCom', - - # InCjkCompatibilityForms - incjkcompatibilityforms => 'InCjkCo2', - - # InCjkCompatibilityIdeographs - incjkcompatibilityideographs => 'InCjkCo3', - - # InCjkCompatibilityIdeographsSupplement - incjkcompatibilityideographssupplement => 'InCjkCo4', - - # InCjkRadicalsSupplement - incjkradicalssupplement => 'InCjkRad', - - # InCjkSymbolsAndPunctuation - incjksymbolsandpunctuation => 'InCjkSym', - - # InCjkUnifiedIdeographs - incjkunifiedideographs => 'InCjkUni', - - # InCjkUnifiedIdeographsExtensionA - incjkunifiedideographsextensiona => 'InCjkUn3', - - # InCjkUnifiedIdeographsExtensionB - incjkunifiedideographsextensionb => 'InCjkUn2', - - # InCombiningDiacriticalMarks - incombiningdiacriticalmarks => 'InCombi2', - - # InCombiningDiacriticalMarksForSymbols - incombiningdiacriticalmarksforsymbols => 'InCombi3', - - # InCombiningHalfMarks - incombininghalfmarks => 'InCombin', - - # InControlPictures - incontrolpictures => 'InContro', - - # InCurrencySymbols - incurrencysymbols => 'InCurren', - - # InCyrillic - incyrillic => 'InCyrill', - - # InCyrillicSupplementary - incyrillicsupplementary => 'InCyril2', - - # InDeseret - indeseret => 'InDesere', - - # InDevanagari - indevanagari => 'InDevana', - - # InDingbats - indingbats => 'InDingba', - - # InEnclosedAlphanumerics - inenclosedalphanumerics => 'InEnclos', - - # InEnclosedCjkLettersAndMonths - inenclosedcjklettersandmonths => 'InEnclo2', - - # InEthiopic - inethiopic => 'InEthiop', - - # InGeneralPunctuation - ingeneralpunctuation => 'InGenera', - - # InGeometricShapes - ingeometricshapes => 'InGeomet', - - # InGeorgian - ingeorgian => 'InGeorgi', - - # InGothic - ingothic => 'InGothic', - - # InGreekAndCoptic - ingreekandcoptic => 'InGreekA', - - # InGreekExtended - ingreekextended => 'InGreekE', - - # InGujarati - ingujarati => 'InGujara', - - # InGurmukhi - ingurmukhi => 'InGurmuk', - - # InHalfwidthAndFullwidthForms - inhalfwidthandfullwidthforms => 'InHalfwi', - - # InHangulCompatibilityJamo - inhangulcompatibilityjamo => 'InHangu3', - - # InHangulJamo - inhanguljamo => 'InHangul', - - # InHangulSyllables - inhangulsyllables => 'InHangu2', - - # InHanunoo - inhanunoo => 'InHanuno', - - # InHebrew - inhebrew => 'InHebrew', - - inherited => 'Inherite', - - # InHighPrivateUseSurrogates - inhighprivateusesurrogates => 'InHighPr', - - # InHighSurrogates - inhighsurrogates => 'InHighSu', - - # InHiragana - inhiragana => 'InHiraga', - - # InIdeographicDescriptionCharacters - inideographicdescriptioncharacters => 'InIdeogr', - - # InIpaExtensions - inipaextensions => 'InIpaExt', - - # InitialPunctuation - initialpunctuation => 'Pi', - - # InKanbun - inkanbun => 'InKanbun', - - # InKangxiRadicals - inkangxiradicals => 'InKangxi', - - # InKannada - inkannada => 'InKannad', - - # InKatakana - inkatakana => 'InKataka', - - # InKatakanaPhoneticExtensions - inkatakanaphoneticextensions => 'InKatak2', - - # InKhmer - inkhmer => 'InKhmer', - - # InLao - inlao => 'InLao', - - # InLatin1Supplement - inlatin1supplement => 'InLatin1', - - # InLatinExtendedA - inlatinextendeda => 'InLatin2', - - # InLatinExtendedAdditional - inlatinextendedadditional => 'InLatin3', - - # InLatinExtendedB - inlatinextendedb => 'InLatinE', - - # InLetterlikeSymbols - inletterlikesymbols => 'InLetter', - - # InLowSurrogates - inlowsurrogates => 'InLowSur', - - # InMalayalam - inmalayalam => 'InMalaya', - - # InMathematicalAlphanumericSymbols - inmathematicalalphanumericsymbols => 'InMathe2', - - # InMathematicalOperators - inmathematicaloperators => 'InMathem', - - # InMiscellaneousMathematicalSymbolsA - inmiscellaneousmathematicalsymbolsa => 'InMisce3', - - # InMiscellaneousMathematicalSymbolsB - inmiscellaneousmathematicalsymbolsb => 'InMisce4', - - # InMiscellaneousSymbols - inmiscellaneoussymbols => 'InMiscel', - - # InMiscellaneousTechnical - inmiscellaneoustechnical => 'InMisce2', - - # InMongolian - inmongolian => 'InMongol', - - # InMusicalSymbols - inmusicalsymbols => 'InMusica', - - # InMyanmar - inmyanmar => 'InMyanma', - - # InNumberForms - innumberforms => 'InNumber', - - # InOgham - inogham => 'InOgham', - - # InOldItalic - inolditalic => 'InOldIta', - - # InOpticalCharacterRecognition - inopticalcharacterrecognition => 'InOptica', - - # InOriya - inoriya => 'InOriya', - - # InPrivateUseArea - inprivateusearea => 'InPrivat', - - # InRunic - inrunic => 'InRunic', - - # InSinhala - insinhala => 'InSinhal', - - # InSmallFormVariants - insmallformvariants => 'InSmallF', - - # InSpacingModifierLetters - inspacingmodifierletters => 'InSpacin', - - # InSpecials - inspecials => 'InSpecia', - - # InSuperscriptsAndSubscripts - insuperscriptsandsubscripts => 'InSupers', - - # InSupplementalArrowsA - insupplementalarrowsa => 'InSuppl2', - - # InSupplementalArrowsB - insupplementalarrowsb => 'InSupple', - - # InSupplementalMathematicalOperators - insupplementalmathematicaloperators => 'InSuppl5', - - # InSupplementaryPrivateUseAreaA - insupplementaryprivateuseareaa => 'InSuppl3', - - # InSupplementaryPrivateUseAreaB - insupplementaryprivateuseareab => 'InSuppl4', - - # InSyriac - insyriac => 'InSyriac', - - # InTagalog - intagalog => 'InTagalo', - - # InTagbanwa - intagbanwa => 'InTagban', - - # InTags - intags => 'InTags', - - # InTamil - intamil => 'InTamil', - - # InTelugu - intelugu => 'InTelugu', - - # InThaana - inthaana => 'InThaana', - - # InThai - inthai => 'InThai', - - # InTibetan - intibetan => 'InTibeta', - - # InUnifiedCanadianAboriginalSyllabics - inunifiedcanadianaboriginalsyllabics => 'InUnifie', - - # InVariationSelectors - invariationselectors => 'InVariat', - - # InYiRadicals - inyiradicals => 'InYiRadi', - - # InYiSyllables - inyisyllables => 'InYiSyll', - - # InIpaExtensions - ipaextensions => 'InIpaExt', - - # JoinControl - joincontrol => 'JoinCont', - - # InKanbun - kanbun => 'InKanbun', - - # InKangxiRadicals - kangxiradicals => 'InKangxi', - - kannada => 'Kannada', - katakana => 'Katakana', - - # InKatakanaPhoneticExtensions - katakanaphoneticextensions => 'InKatak2', - - khmer => 'Khmer', - lao => 'Lao', - latin => 'Latin', - - # InLatin1Supplement - latin1supplement => 'InLatin1', - - # InLatinExtendedA - latinextendeda => 'InLatin2', - - # InLatinExtendedAdditional - latinextendedadditional => 'InLatin3', - - # InLatinExtendedB - latinextendedb => 'InLatinE', - - letter => 'L', - - # InLetterlikeSymbols - letterlikesymbols => 'InLetter', - - # LetterNumber - letternumber => 'Nl', - - # LineSeparator - lineseparator => 'Zl', - - # LogicalOrderException - logicalorderexception => 'LogicalO', - - lowercase => 'Lowercas', - - # LowercaseLetter - lowercaseletter => 'Ll', - - # InLowSurrogates - lowsurrogates => 'InLowSur', - - malayalam => 'Malayala', - mark => 'M', - math => 'Math', - - # InMathematicalAlphanumericSymbols - mathematicalalphanumericsymbols => 'InMathe2', - - # InMathematicalOperators - mathematicaloperators => 'InMathem', - - # MathSymbol - mathsymbol => 'Sm', - - # InMiscellaneousMathematicalSymbolsA - miscellaneousmathematicalsymbolsa => 'InMisce3', - - # InMiscellaneousMathematicalSymbolsB - miscellaneousmathematicalsymbolsb => 'InMisce4', - - # InMiscellaneousSymbols - miscellaneoussymbols => 'InMiscel', - - # InMiscellaneousTechnical - miscellaneoustechnical => 'InMisce2', - - # ModifierLetter - modifierletter => 'Lm', - - # ModifierSymbol - modifiersymbol => 'Sk', - - mongolian => 'Mongolia', - - # InMusicalSymbols - musicalsymbols => 'InMusica', - - myanmar => 'Myanmar', - - # NoncharacterCodePoint - noncharactercodepoint => 'Nonchara', - - # NonSpacingMark - nonspacingmark => 'Mn', - - number => 'N', - - # InNumberForms - numberforms => 'InNumber', - - ogham => 'Ogham', - - # OldItalic - olditalic => 'OldItali', - - # OpenPunctuation - openpunctuation => 'Ps', - - # InOpticalCharacterRecognition - opticalcharacterrecognition => 'InOptica', - - oriya => 'Oriya', - other => 'C', - - # OtherAlphabetic - otheralphabetic => 'OtherAlp', - - # OtherDefaultIgnorableCodePoint - otherdefaultignorablecodepoint => 'OtherDef', - - # OtherGraphemeExtend - othergraphemeextend => 'OtherGra', - - # OtherLetter - otherletter => 'Lo', - - # OtherLowercase - otherlowercase => 'OtherLow', - - # OtherMath - othermath => 'OtherMat', - - # OtherNumber - othernumber => 'No', - - # OtherPunctuation - otherpunctuation => 'Po', - - # OtherSymbol - othersymbol => 'So', - - # OtherUppercase - otheruppercase => 'OtherUpp', - - # ParagraphSeparator - paragraphseparator => 'Zp', - - # PrivateUse - privateuse => 'Co', - - # InPrivateUseArea - privateusearea => 'InPrivat', - - punctuation => 'P', - - # QuotationMark - quotationmark => 'Quotatio', - - radical => 'Radical', - runic => 'Runic', - separator => 'Z', - sinhala => 'Sinhala', - - # InSmallFormVariants - smallformvariants => 'InSmallF', - - # SoftDotted - softdotted => 'SoftDott', - - # SpaceSeparator - spaceseparator => 'Zs', - - # SpacingMark - spacingmark => 'Mc', - - # InSpacingModifierLetters - spacingmodifierletters => 'InSpacin', - - # InSpecials - specials => 'InSpecia', - - # InSuperscriptsAndSubscripts - superscriptsandsubscripts => 'InSupers', - - # InSupplementalArrowsA - supplementalarrowsa => 'InSuppl2', - - # InSupplementalArrowsB - supplementalarrowsb => 'InSupple', - - # InSupplementalMathematicalOperators - supplementalmathematicaloperators => 'InSuppl5', - - # InSupplementaryPrivateUseAreaA - supplementaryprivateuseareaa => 'InSuppl3', - - # InSupplementaryPrivateUseAreaB - supplementaryprivateuseareab => 'InSuppl4', - - surrogate => 'Cs', - symbol => 'S', - syriac => 'Syriac', - tagalog => 'Tagalog', - tagbanwa => 'Tagbanwa', - - # InTags - tags => 'InTags', - - tamil => 'Tamil', - telugu => 'Telugu', - - # TerminalPunctuation - terminalpunctuation => 'Terminal', - - thaana => 'Thaana', - thai => 'Thai', - tibetan => 'Tibetan', - - # TitlecaseLetter - titlecaseletter => 'Lt', - - unassigned => 'Cn', - - # InUnifiedCanadianAboriginalSyllabics - unifiedcanadianaboriginalsyllabics => 'InUnifie', - - # UnifiedIdeograph - unifiedideograph => 'UnifiedI', - - uppercase => 'Uppercas', - - # UppercaseLetter - uppercaseletter => 'Lu', - - # InVariationSelectors - variationselectors => 'InVariat', - - # WhiteSpace - whitespace => 'WhiteSpa', - - yi => 'Yi', - - # InYiRadicals - yiradicals => 'InYiRadi', - - # InYiSyllables - yisyllables => 'InYiSyll', - -); -1 diff --git a/gnu/usr.bin/perl/lib/unicore/Category.pl b/gnu/usr.bin/perl/lib/unicore/Category.pl deleted file mode 100644 index dba6ad9afc3..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/Category.pl +++ /dev/null @@ -1,1732 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -return <<'END'; -0000 001F Cc -0020 Zs -0021 0023 Po -0024 Sc -0025 0027 Po -0028 Ps -0029 Pe -002A Po -002B Sm -002C Po -002D Pd -002E 002F Po -0030 0039 Nd -003A 003B Po -003C 003E Sm -003F 0040 Po -0041 005A Lu -005B Ps -005C Po -005D Pe -005E Sk -005F Pc -0060 Sk -0061 007A Ll -007B Ps -007C Sm -007D Pe -007E Sm -007F 009F Cc -00A0 Zs -00A1 Po -00A2 00A5 Sc -00A6 00A7 So -00A8 Sk -00A9 So -00AA Ll -00AB Pi -00AC Sm -00AD Pd -00AE So -00AF Sk -00B0 So -00B1 Sm -00B2 00B3 No -00B4 Sk -00B5 Ll -00B6 So -00B7 Po -00B8 Sk -00B9 No -00BA Ll -00BB Pf -00BC 00BE No -00BF Po -00C0 00D6 Lu -00D7 Sm -00D8 00DE Lu -00DF 00F6 Ll -00F7 Sm -00F8 00FF Ll -0100 Lu -0101 Ll -0102 Lu -0103 Ll -0104 Lu -0105 Ll -0106 Lu -0107 Ll -0108 Lu -0109 Ll -010A Lu -010B Ll -010C Lu -010D Ll -010E Lu -010F Ll -0110 Lu -0111 Ll -0112 Lu -0113 Ll -0114 Lu -0115 Ll -0116 Lu -0117 Ll -0118 Lu -0119 Ll -011A Lu -011B Ll -011C Lu -011D Ll -011E Lu -011F Ll -0120 Lu -0121 Ll -0122 Lu -0123 Ll -0124 Lu -0125 Ll -0126 Lu -0127 Ll -0128 Lu -0129 Ll -012A Lu -012B Ll -012C Lu -012D Ll -012E Lu -012F Ll -0130 Lu -0131 Ll -0132 Lu -0133 Ll -0134 Lu -0135 Ll -0136 Lu -0137 0138 Ll -0139 Lu -013A Ll -013B Lu -013C Ll -013D Lu -013E Ll -013F Lu -0140 Ll -0141 Lu -0142 Ll -0143 Lu -0144 Ll -0145 Lu -0146 Ll -0147 Lu -0148 0149 Ll -014A Lu -014B Ll -014C Lu -014D Ll -014E Lu -014F Ll -0150 Lu -0151 Ll -0152 Lu -0153 Ll -0154 Lu -0155 Ll -0156 Lu -0157 Ll -0158 Lu -0159 Ll -015A Lu -015B Ll -015C Lu -015D Ll -015E Lu -015F Ll -0160 Lu -0161 Ll -0162 Lu -0163 Ll -0164 Lu -0165 Ll -0166 Lu -0167 Ll -0168 Lu -0169 Ll -016A Lu -016B Ll -016C Lu -016D Ll -016E Lu -016F Ll -0170 Lu -0171 Ll -0172 Lu -0173 Ll -0174 Lu -0175 Ll -0176 Lu -0177 Ll -0178 0179 Lu -017A Ll -017B Lu -017C Ll -017D Lu -017E 0180 Ll -0181 0182 Lu -0183 Ll -0184 Lu -0185 Ll -0186 0187 Lu -0188 Ll -0189 018B Lu -018C 018D Ll -018E 0191 Lu -0192 Ll -0193 0194 Lu -0195 Ll -0196 0198 Lu -0199 019B Ll -019C 019D Lu -019E Ll -019F 01A0 Lu -01A1 Ll -01A2 Lu -01A3 Ll -01A4 Lu -01A5 Ll -01A6 01A7 Lu -01A8 Ll -01A9 Lu -01AA 01AB Ll -01AC Lu -01AD Ll -01AE 01AF Lu -01B0 Ll -01B1 01B3 Lu -01B4 Ll -01B5 Lu -01B6 Ll -01B7 01B8 Lu -01B9 01BA Ll -01BB Lo -01BC Lu -01BD 01BF Ll -01C0 01C3 Lo -01C4 Lu -01C5 Lt -01C6 Ll -01C7 Lu -01C8 Lt -01C9 Ll -01CA Lu -01CB Lt -01CC Ll -01CD Lu -01CE Ll -01CF Lu -01D0 Ll -01D1 Lu -01D2 Ll -01D3 Lu -01D4 Ll -01D5 Lu -01D6 Ll -01D7 Lu -01D8 Ll -01D9 Lu -01DA Ll -01DB Lu -01DC 01DD Ll -01DE Lu -01DF Ll -01E0 Lu -01E1 Ll -01E2 Lu -01E3 Ll -01E4 Lu -01E5 Ll -01E6 Lu -01E7 Ll -01E8 Lu -01E9 Ll -01EA Lu -01EB Ll -01EC Lu -01ED Ll -01EE Lu -01EF 01F0 Ll -01F1 Lu -01F2 Lt -01F3 Ll -01F4 Lu -01F5 Ll -01F6 01F8 Lu -01F9 Ll -01FA Lu -01FB Ll -01FC Lu -01FD Ll -01FE Lu -01FF Ll -0200 Lu -0201 Ll -0202 Lu -0203 Ll -0204 Lu -0205 Ll -0206 Lu -0207 Ll -0208 Lu -0209 Ll -020A Lu -020B Ll -020C Lu -020D Ll -020E Lu -020F Ll -0210 Lu -0211 Ll -0212 Lu -0213 Ll -0214 Lu -0215 Ll -0216 Lu -0217 Ll -0218 Lu -0219 Ll -021A Lu -021B Ll -021C Lu -021D Ll -021E Lu -021F Ll -0220 Lu -0222 Lu -0223 Ll -0224 Lu -0225 Ll -0226 Lu -0227 Ll -0228 Lu -0229 Ll -022A Lu -022B Ll -022C Lu -022D Ll -022E Lu -022F Ll -0230 Lu -0231 Ll -0232 Lu -0233 Ll -0250 02AD Ll -02B0 02B8 Lm -02B9 02BA Sk -02BB 02C1 Lm -02C2 02CF Sk -02D0 02D1 Lm -02D2 02DF Sk -02E0 02E4 Lm -02E5 02ED Sk -02EE Lm -0300 034F Mn -0360 036F Mn -0374 0375 Sk -037A Lm -037E Po -0384 0385 Sk -0386 Lu -0387 Po -0388 038A Lu -038C Lu -038E 038F Lu -0390 Ll -0391 03A1 Lu -03A3 03AB Lu -03AC 03CE Ll -03D0 03D1 Ll -03D2 03D4 Lu -03D5 03D7 Ll -03D8 Lu -03D9 Ll -03DA Lu -03DB Ll -03DC Lu -03DD Ll -03DE Lu -03DF Ll -03E0 Lu -03E1 Ll -03E2 Lu -03E3 Ll -03E4 Lu -03E5 Ll -03E6 Lu -03E7 Ll -03E8 Lu -03E9 Ll -03EA Lu -03EB Ll -03EC Lu -03ED Ll -03EE Lu -03EF 03F3 Ll -03F4 Lu -03F5 Ll -03F6 Sm -0400 042F Lu -0430 045F Ll -0460 Lu -0461 Ll -0462 Lu -0463 Ll -0464 Lu -0465 Ll -0466 Lu -0467 Ll -0468 Lu -0469 Ll -046A Lu -046B Ll -046C Lu -046D Ll -046E Lu -046F Ll -0470 Lu -0471 Ll -0472 Lu -0473 Ll -0474 Lu -0475 Ll -0476 Lu -0477 Ll -0478 Lu -0479 Ll -047A Lu -047B Ll -047C Lu -047D Ll -047E Lu -047F Ll -0480 Lu -0481 Ll -0482 So -0483 0486 Mn -0488 0489 Me -048A Lu -048B Ll -048C Lu -048D Ll -048E Lu -048F Ll -0490 Lu -0491 Ll -0492 Lu -0493 Ll -0494 Lu -0495 Ll -0496 Lu -0497 Ll -0498 Lu -0499 Ll -049A Lu -049B Ll -049C Lu -049D Ll -049E Lu -049F Ll -04A0 Lu -04A1 Ll -04A2 Lu -04A3 Ll -04A4 Lu -04A5 Ll -04A6 Lu -04A7 Ll -04A8 Lu -04A9 Ll -04AA Lu -04AB Ll -04AC Lu -04AD Ll -04AE Lu -04AF Ll -04B0 Lu -04B1 Ll -04B2 Lu -04B3 Ll -04B4 Lu -04B5 Ll -04B6 Lu -04B7 Ll -04B8 Lu -04B9 Ll -04BA Lu -04BB Ll -04BC Lu -04BD Ll -04BE Lu -04BF Ll -04C0 04C1 Lu -04C2 Ll -04C3 Lu -04C4 Ll -04C5 Lu -04C6 Ll -04C7 Lu -04C8 Ll -04C9 Lu -04CA Ll -04CB Lu -04CC Ll -04CD Lu -04CE Ll -04D0 Lu -04D1 Ll -04D2 Lu -04D3 Ll -04D4 Lu -04D5 Ll -04D6 Lu -04D7 Ll -04D8 Lu -04D9 Ll -04DA Lu -04DB Ll -04DC Lu -04DD Ll -04DE Lu -04DF Ll -04E0 Lu -04E1 Ll -04E2 Lu -04E3 Ll -04E4 Lu -04E5 Ll -04E6 Lu -04E7 Ll -04E8 Lu -04E9 Ll -04EA Lu -04EB Ll -04EC Lu -04ED Ll -04EE Lu -04EF Ll -04F0 Lu -04F1 Ll -04F2 Lu -04F3 Ll -04F4 Lu -04F5 Ll -04F8 Lu -04F9 Ll -0500 Lu -0501 Ll -0502 Lu -0503 Ll -0504 Lu -0505 Ll -0506 Lu -0507 Ll -0508 Lu -0509 Ll -050A Lu -050B Ll -050C Lu -050D Ll -050E Lu -050F Ll -0531 0556 Lu -0559 Lm -055A 055F Po -0561 0587 Ll -0589 Po -058A Pd -0591 05A1 Mn -05A3 05B9 Mn -05BB 05BD Mn -05BE Po -05BF Mn -05C0 Po -05C1 05C2 Mn -05C3 Po -05C4 Mn -05D0 05EA Lo -05F0 05F2 Lo -05F3 05F4 Po -060C Po -061B Po -061F Po -0621 063A Lo -0640 Lm -0641 064A Lo -064B 0655 Mn -0660 0669 Nd -066A 066D Po -066E 066F Lo -0670 Mn -0671 06D3 Lo -06D4 Po -06D5 Lo -06D6 06DC Mn -06DD Cf -06DE Me -06DF 06E4 Mn -06E5 06E6 Lm -06E7 06E8 Mn -06E9 So -06EA 06ED Mn -06F0 06F9 Nd -06FA 06FC Lo -06FD 06FE So -0700 070D Po -070F Cf -0710 Lo -0711 Mn -0712 072C Lo -0730 074A Mn -0780 07A5 Lo -07A6 07B0 Mn -07B1 Lo -0901 0902 Mn -0903 Mc -0905 0939 Lo -093C Mn -093D Lo -093E 0940 Mc -0941 0948 Mn -0949 094C Mc -094D Mn -0950 Lo -0951 0954 Mn -0958 0961 Lo -0962 0963 Mn -0964 0965 Po -0966 096F Nd -0970 Po -0981 Mn -0982 0983 Mc -0985 098C Lo -098F 0990 Lo -0993 09A8 Lo -09AA 09B0 Lo -09B2 Lo -09B6 09B9 Lo -09BC Mn -09BE 09C0 Mc -09C1 09C4 Mn -09C7 09C8 Mc -09CB 09CC Mc -09CD Mn -09D7 Mc -09DC 09DD Lo -09DF 09E1 Lo -09E2 09E3 Mn -09E6 09EF Nd -09F0 09F1 Lo -09F2 09F3 Sc -09F4 09F9 No -09FA So -0A02 Mn -0A05 0A0A Lo -0A0F 0A10 Lo -0A13 0A28 Lo -0A2A 0A30 Lo -0A32 0A33 Lo -0A35 0A36 Lo -0A38 0A39 Lo -0A3C Mn -0A3E 0A40 Mc -0A41 0A42 Mn -0A47 0A48 Mn -0A4B 0A4D Mn -0A59 0A5C Lo -0A5E Lo -0A66 0A6F Nd -0A70 0A71 Mn -0A72 0A74 Lo -0A81 0A82 Mn -0A83 Mc -0A85 0A8B Lo -0A8D Lo -0A8F 0A91 Lo -0A93 0AA8 Lo -0AAA 0AB0 Lo -0AB2 0AB3 Lo -0AB5 0AB9 Lo -0ABC Mn -0ABD Lo -0ABE 0AC0 Mc -0AC1 0AC5 Mn -0AC7 0AC8 Mn -0AC9 Mc -0ACB 0ACC Mc -0ACD Mn -0AD0 Lo -0AE0 Lo -0AE6 0AEF Nd -0B01 Mn -0B02 0B03 Mc -0B05 0B0C Lo -0B0F 0B10 Lo -0B13 0B28 Lo -0B2A 0B30 Lo -0B32 0B33 Lo -0B36 0B39 Lo -0B3C Mn -0B3D Lo -0B3E Mc -0B3F Mn -0B40 Mc -0B41 0B43 Mn -0B47 0B48 Mc -0B4B 0B4C Mc -0B4D Mn -0B56 Mn -0B57 Mc -0B5C 0B5D Lo -0B5F 0B61 Lo -0B66 0B6F Nd -0B70 So -0B82 Mn -0B83 Lo -0B85 0B8A Lo -0B8E 0B90 Lo -0B92 0B95 Lo -0B99 0B9A Lo -0B9C Lo -0B9E 0B9F Lo -0BA3 0BA4 Lo -0BA8 0BAA Lo -0BAE 0BB5 Lo -0BB7 0BB9 Lo -0BBE 0BBF Mc -0BC0 Mn -0BC1 0BC2 Mc -0BC6 0BC8 Mc -0BCA 0BCC Mc -0BCD Mn -0BD7 Mc -0BE7 0BEF Nd -0BF0 0BF2 No -0C01 0C03 Mc -0C05 0C0C Lo -0C0E 0C10 Lo -0C12 0C28 Lo -0C2A 0C33 Lo -0C35 0C39 Lo -0C3E 0C40 Mn -0C41 0C44 Mc -0C46 0C48 Mn -0C4A 0C4D Mn -0C55 0C56 Mn -0C60 0C61 Lo -0C66 0C6F Nd -0C82 0C83 Mc -0C85 0C8C Lo -0C8E 0C90 Lo -0C92 0CA8 Lo -0CAA 0CB3 Lo -0CB5 0CB9 Lo -0CBE Mc -0CBF Mn -0CC0 0CC4 Mc -0CC6 Mn -0CC7 0CC8 Mc -0CCA 0CCB Mc -0CCC 0CCD Mn -0CD5 0CD6 Mc -0CDE Lo -0CE0 0CE1 Lo -0CE6 0CEF Nd -0D02 0D03 Mc -0D05 0D0C Lo -0D0E 0D10 Lo -0D12 0D28 Lo -0D2A 0D39 Lo -0D3E 0D40 Mc -0D41 0D43 Mn -0D46 0D48 Mc -0D4A 0D4C Mc -0D4D Mn -0D57 Mc -0D60 0D61 Lo -0D66 0D6F Nd -0D82 0D83 Mc -0D85 0D96 Lo -0D9A 0DB1 Lo -0DB3 0DBB Lo -0DBD Lo -0DC0 0DC6 Lo -0DCA Mn -0DCF 0DD1 Mc -0DD2 0DD4 Mn -0DD6 Mn -0DD8 0DDF Mc -0DF2 0DF3 Mc -0DF4 Po -0E01 0E30 Lo -0E31 Mn -0E32 0E33 Lo -0E34 0E3A Mn -0E3F Sc -0E40 0E45 Lo -0E46 Lm -0E47 0E4E Mn -0E4F Po -0E50 0E59 Nd -0E5A 0E5B Po -0E81 0E82 Lo -0E84 Lo -0E87 0E88 Lo -0E8A Lo -0E8D Lo -0E94 0E97 Lo -0E99 0E9F Lo -0EA1 0EA3 Lo -0EA5 Lo -0EA7 Lo -0EAA 0EAB Lo -0EAD 0EB0 Lo -0EB1 Mn -0EB2 0EB3 Lo -0EB4 0EB9 Mn -0EBB 0EBC Mn -0EBD Lo -0EC0 0EC4 Lo -0EC6 Lm -0EC8 0ECD Mn -0ED0 0ED9 Nd -0EDC 0EDD Lo -0F00 Lo -0F01 0F03 So -0F04 0F12 Po -0F13 0F17 So -0F18 0F19 Mn -0F1A 0F1F So -0F20 0F29 Nd -0F2A 0F33 No -0F34 So -0F35 Mn -0F36 So -0F37 Mn -0F38 So -0F39 Mn -0F3A Ps -0F3B Pe -0F3C Ps -0F3D Pe -0F3E 0F3F Mc -0F40 0F47 Lo -0F49 0F6A Lo -0F71 0F7E Mn -0F7F Mc -0F80 0F84 Mn -0F85 Po -0F86 0F87 Mn -0F88 0F8B Lo -0F90 0F97 Mn -0F99 0FBC Mn -0FBE 0FC5 So -0FC6 Mn -0FC7 0FCC So -0FCF So -1000 1021 Lo -1023 1027 Lo -1029 102A Lo -102C Mc -102D 1030 Mn -1031 Mc -1032 Mn -1036 1037 Mn -1038 Mc -1039 Mn -1040 1049 Nd -104A 104F Po -1050 1055 Lo -1056 1057 Mc -1058 1059 Mn -10A0 10C5 Lu -10D0 10F8 Lo -10FB Po -1100 1159 Lo -115F 11A2 Lo -11A8 11F9 Lo -1200 1206 Lo -1208 1246 Lo -1248 Lo -124A 124D Lo -1250 1256 Lo -1258 Lo -125A 125D Lo -1260 1286 Lo -1288 Lo -128A 128D Lo -1290 12AE Lo -12B0 Lo -12B2 12B5 Lo -12B8 12BE Lo -12C0 Lo -12C2 12C5 Lo -12C8 12CE Lo -12D0 12D6 Lo -12D8 12EE Lo -12F0 130E Lo -1310 Lo -1312 1315 Lo -1318 131E Lo -1320 1346 Lo -1348 135A Lo -1361 1368 Po -1369 1371 Nd -1372 137C No -13A0 13F4 Lo -1401 166C Lo -166D 166E Po -166F 1676 Lo -1680 Zs -1681 169A Lo -169B Ps -169C Pe -16A0 16EA Lo -16EB 16ED Po -16EE 16F0 Nl -1700 170C Lo -170E 1711 Lo -1712 1714 Mn -1720 1731 Lo -1732 1734 Mn -1735 1736 Po -1740 1751 Lo -1752 1753 Mn -1760 176C Lo -176E 1770 Lo -1772 1773 Mn -1780 17B3 Lo -17B4 17B6 Mc -17B7 17BD Mn -17BE 17C5 Mc -17C6 Mn -17C7 17C8 Mc -17C9 17D3 Mn -17D4 17D6 Po -17D7 Lm -17D8 17DA Po -17DB Sc -17DC Lo -17E0 17E9 Nd -1800 1805 Po -1806 Pd -1807 180A Po -180B 180D Mn -180E Cf -1810 1819 Nd -1820 1842 Lo -1843 Lm -1844 1877 Lo -1880 18A8 Lo -18A9 Mn -1E00 Lu -1E01 Ll -1E02 Lu -1E03 Ll -1E04 Lu -1E05 Ll -1E06 Lu -1E07 Ll -1E08 Lu -1E09 Ll -1E0A Lu -1E0B Ll -1E0C Lu -1E0D Ll -1E0E Lu -1E0F Ll -1E10 Lu -1E11 Ll -1E12 Lu -1E13 Ll -1E14 Lu -1E15 Ll -1E16 Lu -1E17 Ll -1E18 Lu -1E19 Ll -1E1A Lu -1E1B Ll -1E1C Lu -1E1D Ll -1E1E Lu -1E1F Ll -1E20 Lu -1E21 Ll -1E22 Lu -1E23 Ll -1E24 Lu -1E25 Ll -1E26 Lu -1E27 Ll -1E28 Lu -1E29 Ll -1E2A Lu -1E2B Ll -1E2C Lu -1E2D Ll -1E2E Lu -1E2F Ll -1E30 Lu -1E31 Ll -1E32 Lu -1E33 Ll -1E34 Lu -1E35 Ll -1E36 Lu -1E37 Ll -1E38 Lu -1E39 Ll -1E3A Lu -1E3B Ll -1E3C Lu -1E3D Ll -1E3E Lu -1E3F Ll -1E40 Lu -1E41 Ll -1E42 Lu -1E43 Ll -1E44 Lu -1E45 Ll -1E46 Lu -1E47 Ll -1E48 Lu -1E49 Ll -1E4A Lu -1E4B Ll -1E4C Lu -1E4D Ll -1E4E Lu -1E4F Ll -1E50 Lu -1E51 Ll -1E52 Lu -1E53 Ll -1E54 Lu -1E55 Ll -1E56 Lu -1E57 Ll -1E58 Lu -1E59 Ll -1E5A Lu -1E5B Ll -1E5C Lu -1E5D Ll -1E5E Lu -1E5F Ll -1E60 Lu -1E61 Ll -1E62 Lu -1E63 Ll -1E64 Lu -1E65 Ll -1E66 Lu -1E67 Ll -1E68 Lu -1E69 Ll -1E6A Lu -1E6B Ll -1E6C Lu -1E6D Ll -1E6E Lu -1E6F Ll -1E70 Lu -1E71 Ll -1E72 Lu -1E73 Ll -1E74 Lu -1E75 Ll -1E76 Lu -1E77 Ll -1E78 Lu -1E79 Ll -1E7A Lu -1E7B Ll -1E7C Lu -1E7D Ll -1E7E Lu -1E7F Ll -1E80 Lu -1E81 Ll -1E82 Lu -1E83 Ll -1E84 Lu -1E85 Ll -1E86 Lu -1E87 Ll -1E88 Lu -1E89 Ll -1E8A Lu -1E8B Ll -1E8C Lu -1E8D Ll -1E8E Lu -1E8F Ll -1E90 Lu -1E91 Ll -1E92 Lu -1E93 Ll -1E94 Lu -1E95 1E9B Ll -1EA0 Lu -1EA1 Ll -1EA2 Lu -1EA3 Ll -1EA4 Lu -1EA5 Ll -1EA6 Lu -1EA7 Ll -1EA8 Lu -1EA9 Ll -1EAA Lu -1EAB Ll -1EAC Lu -1EAD Ll -1EAE Lu -1EAF Ll -1EB0 Lu -1EB1 Ll -1EB2 Lu -1EB3 Ll -1EB4 Lu -1EB5 Ll -1EB6 Lu -1EB7 Ll -1EB8 Lu -1EB9 Ll -1EBA Lu -1EBB Ll -1EBC Lu -1EBD Ll -1EBE Lu -1EBF Ll -1EC0 Lu -1EC1 Ll -1EC2 Lu -1EC3 Ll -1EC4 Lu -1EC5 Ll -1EC6 Lu -1EC7 Ll -1EC8 Lu -1EC9 Ll -1ECA Lu -1ECB Ll -1ECC Lu -1ECD Ll -1ECE Lu -1ECF Ll -1ED0 Lu -1ED1 Ll -1ED2 Lu -1ED3 Ll -1ED4 Lu -1ED5 Ll -1ED6 Lu -1ED7 Ll -1ED8 Lu -1ED9 Ll -1EDA Lu -1EDB Ll -1EDC Lu -1EDD Ll -1EDE Lu -1EDF Ll -1EE0 Lu -1EE1 Ll -1EE2 Lu -1EE3 Ll -1EE4 Lu -1EE5 Ll -1EE6 Lu -1EE7 Ll -1EE8 Lu -1EE9 Ll -1EEA Lu -1EEB Ll -1EEC Lu -1EED Ll -1EEE Lu -1EEF Ll -1EF0 Lu -1EF1 Ll -1EF2 Lu -1EF3 Ll -1EF4 Lu -1EF5 Ll -1EF6 Lu -1EF7 Ll -1EF8 Lu -1EF9 Ll -1F00 1F07 Ll -1F08 1F0F Lu -1F10 1F15 Ll -1F18 1F1D Lu -1F20 1F27 Ll -1F28 1F2F Lu -1F30 1F37 Ll -1F38 1F3F Lu -1F40 1F45 Ll -1F48 1F4D Lu -1F50 1F57 Ll -1F59 Lu -1F5B Lu -1F5D Lu -1F5F Lu -1F60 1F67 Ll -1F68 1F6F Lu -1F70 1F7D Ll -1F80 1F87 Ll -1F88 1F8F Lt -1F90 1F97 Ll -1F98 1F9F Lt -1FA0 1FA7 Ll -1FA8 1FAF Lt -1FB0 1FB4 Ll -1FB6 1FB7 Ll -1FB8 1FBB Lu -1FBC Lt -1FBD Sk -1FBE Ll -1FBF 1FC1 Sk -1FC2 1FC4 Ll -1FC6 1FC7 Ll -1FC8 1FCB Lu -1FCC Lt -1FCD 1FCF Sk -1FD0 1FD3 Ll -1FD6 1FD7 Ll -1FD8 1FDB Lu -1FDD 1FDF Sk -1FE0 1FE7 Ll -1FE8 1FEC Lu -1FED 1FEF Sk -1FF2 1FF4 Ll -1FF6 1FF7 Ll -1FF8 1FFB Lu -1FFC Lt -1FFD 1FFE Sk -2000 200B Zs -200C 200F Cf -2010 2015 Pd -2016 2017 Po -2018 Pi -2019 Pf -201A Ps -201B 201C Pi -201D Pf -201E Ps -201F Pi -2020 2027 Po -2028 Zl -2029 Zp -202A 202E Cf -202F Zs -2030 2038 Po -2039 Pi -203A Pf -203B 203E Po -203F 2040 Pc -2041 2043 Po -2044 Sm -2045 Ps -2046 Pe -2047 2051 Po -2052 Sm -2057 Po -205F Zs -2060 2063 Cf -206A 206F Cf -2070 No -2071 Ll -2074 2079 No -207A 207C Sm -207D Ps -207E Pe -207F Ll -2080 2089 No -208A 208C Sm -208D Ps -208E Pe -20A0 20B1 Sc -20D0 20DC Mn -20DD 20E0 Me -20E1 Mn -20E2 20E4 Me -20E5 20EA Mn -2100 2101 So -2102 Lu -2103 2106 So -2107 Lu -2108 2109 So -210A Ll -210B 210D Lu -210E 210F Ll -2110 2112 Lu -2113 Ll -2114 So -2115 Lu -2116 2118 So -2119 211D Lu -211E 2123 So -2124 Lu -2125 So -2126 Lu -2127 So -2128 Lu -2129 So -212A 212D Lu -212E So -212F Ll -2130 2131 Lu -2132 So -2133 Lu -2134 Ll -2135 2138 Lo -2139 Ll -213A So -213D Ll -213E 213F Lu -2140 2144 Sm -2145 Lu -2146 2149 Ll -214A So -214B Sm -2153 215F No -2160 2183 Nl -2190 2194 Sm -2195 2199 So -219A 219B Sm -219C 219F So -21A0 Sm -21A1 21A2 So -21A3 Sm -21A4 21A5 So -21A6 Sm -21A7 21AD So -21AE Sm -21AF 21CD So -21CE 21CF Sm -21D0 21D1 So -21D2 Sm -21D3 So -21D4 Sm -21D5 21F3 So -21F4 22FF Sm -2300 2307 So -2308 230B Sm -230C 231F So -2320 2321 Sm -2322 2328 So -2329 Ps -232A Pe -232B 237B So -237C Sm -237D 239A So -239B 23B3 Sm -23B4 Ps -23B5 Pe -23B6 Po -23B7 23CE So -2400 2426 So -2440 244A So -2460 249B No -249C 24E9 So -24EA 24FE No -2500 25B6 So -25B7 Sm -25B8 25C0 So -25C1 Sm -25C2 25F7 So -25F8 25FF Sm -2600 2613 So -2616 2617 So -2619 266E So -266F Sm -2670 267D So -2680 2689 So -2701 2704 So -2706 2709 So -270C 2727 So -2729 274B So -274D So -274F 2752 So -2756 So -2758 275E So -2761 2767 So -2768 Ps -2769 Pe -276A Ps -276B Pe -276C Ps -276D Pe -276E Ps -276F Pe -2770 Ps -2771 Pe -2772 Ps -2773 Pe -2774 Ps -2775 Pe -2776 2793 No -2794 So -2798 27AF So -27B1 27BE So -27D0 27E5 Sm -27E6 Ps -27E7 Pe -27E8 Ps -27E9 Pe -27EA Ps -27EB Pe -27F0 27FF Sm -2800 28FF So -2900 2982 Sm -2983 Ps -2984 Pe -2985 Ps -2986 Pe -2987 Ps -2988 Pe -2989 Ps -298A Pe -298B Ps -298C Pe -298D Ps -298E Pe -298F Ps -2990 Pe -2991 Ps -2992 Pe -2993 Ps -2994 Pe -2995 Ps -2996 Pe -2997 Ps -2998 Pe -2999 29D7 Sm -29D8 Ps -29D9 Pe -29DA Ps -29DB Pe -29DC 29FB Sm -29FC Ps -29FD Pe -29FE 2AFF Sm -2E80 2E99 So -2E9B 2EF3 So -2F00 2FD5 So -2FF0 2FFB So -3000 Zs -3001 3003 Po -3004 So -3005 Lm -3006 Lo -3007 Nl -3008 Ps -3009 Pe -300A Ps -300B Pe -300C Ps -300D Pe -300E Ps -300F Pe -3010 Ps -3011 Pe -3012 3013 So -3014 Ps -3015 Pe -3016 Ps -3017 Pe -3018 Ps -3019 Pe -301A Ps -301B Pe -301C Pd -301D Ps -301E 301F Pe -3020 So -3021 3029 Nl -302A 302F Mn -3030 Pd -3031 3035 Lm -3036 3037 So -3038 303A Nl -303B Lm -303C Lo -303D Po -303E 303F So -3041 3096 Lo -3099 309A Mn -309B 309C Sk -309D 309E Lm -309F Lo -30A0 Pd -30A1 30FA Lo -30FB Pc -30FC 30FE Lm -30FF Lo -3105 312C Lo -3131 318E Lo -3190 3191 So -3192 3195 No -3196 319F So -31A0 31B7 Lo -31F0 31FF Lo -3200 321C So -3220 3229 No -322A 3243 So -3251 325F No -3260 327B So -327F So -3280 3289 No -328A 32B0 So -32B1 32BF No -32C0 32CB So -32D0 32FE So -3300 3376 So -337B 33DD So -33E0 33FE So -3400 4DB5 Lo -4E00 9FA5 Lo -A000 A48C Lo -A490 A4C6 So -AC00 D7A3 Lo -D800 DFFF Cs -E000 F8FF Co -F900 FA2D Lo -FA30 FA6A Lo -FB00 FB06 Ll -FB13 FB17 Ll -FB1D Lo -FB1E Mn -FB1F FB28 Lo -FB29 Sm -FB2A FB36 Lo -FB38 FB3C Lo -FB3E Lo -FB40 FB41 Lo -FB43 FB44 Lo -FB46 FBB1 Lo -FBD3 FD3D Lo -FD3E Ps -FD3F Pe -FD50 FD8F Lo -FD92 FDC7 Lo -FDF0 FDFB Lo -FDFC Sc -FE00 FE0F Mn -FE20 FE23 Mn -FE30 Po -FE31 FE32 Pd -FE33 FE34 Pc -FE35 Ps -FE36 Pe -FE37 Ps -FE38 Pe -FE39 Ps -FE3A Pe -FE3B Ps -FE3C Pe -FE3D Ps -FE3E Pe -FE3F Ps -FE40 Pe -FE41 Ps -FE42 Pe -FE43 Ps -FE44 Pe -FE45 FE46 Po -FE49 FE4C Po -FE4D FE4F Pc -FE50 FE52 Po -FE54 FE57 Po -FE58 Pd -FE59 Ps -FE5A Pe -FE5B Ps -FE5C Pe -FE5D Ps -FE5E Pe -FE5F FE61 Po -FE62 Sm -FE63 Pd -FE64 FE66 Sm -FE68 Po -FE69 Sc -FE6A FE6B Po -FE70 FE74 Lo -FE76 FEFC Lo -FEFF Cf -FF01 FF03 Po -FF04 Sc -FF05 FF07 Po -FF08 Ps -FF09 Pe -FF0A Po -FF0B Sm -FF0C Po -FF0D Pd -FF0E FF0F Po -FF10 FF19 Nd -FF1A FF1B Po -FF1C FF1E Sm -FF1F FF20 Po -FF21 FF3A Lu -FF3B Ps -FF3C Po -FF3D Pe -FF3E Sk -FF3F Pc -FF40 Sk -FF41 FF5A Ll -FF5B Ps -FF5C Sm -FF5D Pe -FF5E Sm -FF5F Ps -FF60 Pe -FF61 Po -FF62 Ps -FF63 Pe -FF64 Po -FF65 Pc -FF66 FF6F Lo -FF70 Lm -FF71 FF9D Lo -FF9E FF9F Lm -FFA0 FFBE Lo -FFC2 FFC7 Lo -FFCA FFCF Lo -FFD2 FFD7 Lo -FFDA FFDC Lo -FFE0 FFE1 Sc -FFE2 Sm -FFE3 Sk -FFE4 So -FFE5 FFE6 Sc -FFE8 So -FFE9 FFEC Sm -FFED FFEE So -FFF9 FFFB Cf -FFFC FFFD So -10300 1031E Lo -10320 10323 No -10330 10349 Lo -1034A Nl -10400 10425 Lu -10428 1044D Ll -1D000 1D0F5 So -1D100 1D126 So -1D12A 1D164 So -1D165 1D166 Mc -1D167 1D169 Mn -1D16A 1D16C So -1D16D 1D172 Mc -1D173 1D17A Cf -1D17B 1D182 Mn -1D183 1D184 So -1D185 1D18B Mn -1D18C 1D1A9 So -1D1AA 1D1AD Mn -1D1AE 1D1DD So -1D400 1D419 Lu -1D41A 1D433 Ll -1D434 1D44D Lu -1D44E 1D454 Ll -1D456 1D467 Ll -1D468 1D481 Lu -1D482 1D49B Ll -1D49C Lu -1D49E 1D49F Lu -1D4A2 Lu -1D4A5 1D4A6 Lu -1D4A9 1D4AC Lu -1D4AE 1D4B5 Lu -1D4B6 1D4B9 Ll -1D4BB Ll -1D4BD 1D4C0 Ll -1D4C2 1D4C3 Ll -1D4C5 1D4CF Ll -1D4D0 1D4E9 Lu -1D4EA 1D503 Ll -1D504 1D505 Lu -1D507 1D50A Lu -1D50D 1D514 Lu -1D516 1D51C Lu -1D51E 1D537 Ll -1D538 1D539 Lu -1D53B 1D53E Lu -1D540 1D544 Lu -1D546 Lu -1D54A 1D550 Lu -1D552 1D56B Ll -1D56C 1D585 Lu -1D586 1D59F Ll -1D5A0 1D5B9 Lu -1D5BA 1D5D3 Ll -1D5D4 1D5ED Lu -1D5EE 1D607 Ll -1D608 1D621 Lu -1D622 1D63B Ll -1D63C 1D655 Lu -1D656 1D66F Ll -1D670 1D689 Lu -1D68A 1D6A3 Ll -1D6A8 1D6C0 Lu -1D6C1 Sm -1D6C2 1D6DA Ll -1D6DB Sm -1D6DC 1D6E1 Ll -1D6E2 1D6FA Lu -1D6FB Sm -1D6FC 1D714 Ll -1D715 Sm -1D716 1D71B Ll -1D71C 1D734 Lu -1D735 Sm -1D736 1D74E Ll -1D74F Sm -1D750 1D755 Ll -1D756 1D76E Lu -1D76F Sm -1D770 1D788 Ll -1D789 Sm -1D78A 1D78F Ll -1D790 1D7A8 Lu -1D7A9 Sm -1D7AA 1D7C2 Ll -1D7C3 Sm -1D7C4 1D7C9 Ll -1D7CE 1D7FF Nd -20000 2A6D6 Lo -2F800 2FA1D Lo -E0001 Cf -E0020 E007F Cf -F0000 FFFFD Co -100000 10FFFD Co -END diff --git a/gnu/usr.bin/perl/lib/unicore/CombiningClass.pl b/gnu/usr.bin/perl/lib/unicore/CombiningClass.pl deleted file mode 100644 index 2b97b553e4e..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/CombiningClass.pl +++ /dev/null @@ -1,169 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -return <<'END'; -0300 0314 230 -0315 232 -0316 0319 220 -031A 232 -031B 216 -031C 0320 220 -0321 0322 202 -0323 0326 220 -0327 0328 202 -0329 0333 220 -0334 0338 1 -0339 033C 220 -033D 0344 230 -0345 240 -0346 230 -0347 0349 220 -034A 034C 230 -034D 034E 220 -0360 0361 234 -0362 233 -0363 036F 230 -0483 0486 230 -0591 220 -0592 0595 230 -0596 220 -0597 0599 230 -059A 222 -059B 220 -059C 05A1 230 -05A3 05A7 220 -05A8 05A9 230 -05AA 220 -05AB 05AC 230 -05AD 222 -05AE 228 -05AF 230 -05B0 10 -05B1 11 -05B2 12 -05B3 13 -05B4 14 -05B5 15 -05B6 16 -05B7 17 -05B8 18 -05B9 19 -05BB 20 -05BC 21 -05BD 22 -05BF 23 -05C1 24 -05C2 25 -05C4 230 -064B 27 -064C 28 -064D 29 -064E 30 -064F 31 -0650 32 -0651 33 -0652 34 -0653 0654 230 -0655 220 -0670 35 -06D6 06DC 230 -06DF 06E2 230 -06E3 220 -06E4 230 -06E7 06E8 230 -06EA 220 -06EB 06EC 230 -06ED 220 -0711 36 -0730 230 -0731 220 -0732 0733 230 -0734 220 -0735 0736 230 -0737 0739 220 -073A 230 -073B 073C 220 -073D 230 -073E 220 -073F 0741 230 -0742 220 -0743 230 -0744 220 -0745 230 -0746 220 -0747 230 -0748 220 -0749 074A 230 -093C 7 -094D 9 -0951 230 -0952 220 -0953 0954 230 -09BC 7 -09CD 9 -0A3C 7 -0A4D 9 -0ABC 7 -0ACD 9 -0B3C 7 -0B4D 9 -0BCD 9 -0C4D 9 -0C55 84 -0C56 91 -0CCD 9 -0D4D 9 -0DCA 9 -0E38 0E39 103 -0E3A 9 -0E48 0E4B 107 -0EB8 0EB9 118 -0EC8 0ECB 122 -0F18 0F19 220 -0F35 220 -0F37 220 -0F39 216 -0F71 129 -0F72 130 -0F74 132 -0F7A 0F7D 130 -0F80 130 -0F82 0F83 230 -0F84 9 -0F86 0F87 230 -0FC6 220 -1037 7 -1039 9 -1714 9 -1734 9 -17D2 9 -18A9 228 -20D0 20D1 230 -20D2 20D3 1 -20D4 20D7 230 -20D8 20DA 1 -20DB 20DC 230 -20E1 230 -20E5 20E6 1 -20E7 230 -20E8 220 -20E9 230 -20EA 1 -302A 218 -302B 228 -302C 232 -302D 222 -302E 302F 224 -3099 309A 8 -FB1E 26 -FE20 FE23 230 -1D165 1D166 216 -1D167 1D169 1 -1D16D 226 -1D16E 1D172 216 -1D17B 1D182 220 -1D185 1D189 230 -1D18A 1D18B 220 -1D1AA 1D1AD 230 -END diff --git a/gnu/usr.bin/perl/lib/unicore/Decomposition.pl b/gnu/usr.bin/perl/lib/unicore/Decomposition.pl deleted file mode 100644 index 739d8fc661b..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/Decomposition.pl +++ /dev/null @@ -1,5120 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -return <<'END'; -00A0 <noBreak> 0020 -00A8 <compat> 0020 0308 -00AA <super> 0061 -00AF <compat> 0020 0304 -00B2 <super> 0032 -00B3 <super> 0033 -00B4 <compat> 0020 0301 -00B5 <compat> 03BC -00B8 <compat> 0020 0327 -00B9 <super> 0031 -00BA <super> 006F -00BC <fraction> 0031 2044 0034 -00BD <fraction> 0031 2044 0032 -00BE <fraction> 0033 2044 0034 -00C0 0041 0300 -00C1 0041 0301 -00C2 0041 0302 -00C3 0041 0303 -00C4 0041 0308 -00C5 0041 030A -00C7 0043 0327 -00C8 0045 0300 -00C9 0045 0301 -00CA 0045 0302 -00CB 0045 0308 -00CC 0049 0300 -00CD 0049 0301 -00CE 0049 0302 -00CF 0049 0308 -00D1 004E 0303 -00D2 004F 0300 -00D3 004F 0301 -00D4 004F 0302 -00D5 004F 0303 -00D6 004F 0308 -00D9 0055 0300 -00DA 0055 0301 -00DB 0055 0302 -00DC 0055 0308 -00DD 0059 0301 -00E0 0061 0300 -00E1 0061 0301 -00E2 0061 0302 -00E3 0061 0303 -00E4 0061 0308 -00E5 0061 030A -00E7 0063 0327 -00E8 0065 0300 -00E9 0065 0301 -00EA 0065 0302 -00EB 0065 0308 -00EC 0069 0300 -00ED 0069 0301 -00EE 0069 0302 -00EF 0069 0308 -00F1 006E 0303 -00F2 006F 0300 -00F3 006F 0301 -00F4 006F 0302 -00F5 006F 0303 -00F6 006F 0308 -00F9 0075 0300 -00FA 0075 0301 -00FB 0075 0302 -00FC 0075 0308 -00FD 0079 0301 -00FF 0079 0308 -0100 0041 0304 -0101 0061 0304 -0102 0041 0306 -0103 0061 0306 -0104 0041 0328 -0105 0061 0328 -0106 0043 0301 -0107 0063 0301 -0108 0043 0302 -0109 0063 0302 -010A 0043 0307 -010B 0063 0307 -010C 0043 030C -010D 0063 030C -010E 0044 030C -010F 0064 030C -0112 0045 0304 -0113 0065 0304 -0114 0045 0306 -0115 0065 0306 -0116 0045 0307 -0117 0065 0307 -0118 0045 0328 -0119 0065 0328 -011A 0045 030C -011B 0065 030C -011C 0047 0302 -011D 0067 0302 -011E 0047 0306 -011F 0067 0306 -0120 0047 0307 -0121 0067 0307 -0122 0047 0327 -0123 0067 0327 -0124 0048 0302 -0125 0068 0302 -0128 0049 0303 -0129 0069 0303 -012A 0049 0304 -012B 0069 0304 -012C 0049 0306 -012D 0069 0306 -012E 0049 0328 -012F 0069 0328 -0130 0049 0307 -0132 <compat> 0049 004A -0133 <compat> 0069 006A -0134 004A 0302 -0135 006A 0302 -0136 004B 0327 -0137 006B 0327 -0139 004C 0301 -013A 006C 0301 -013B 004C 0327 -013C 006C 0327 -013D 004C 030C -013E 006C 030C -013F <compat> 004C 00B7 -0140 <compat> 006C 00B7 -0143 004E 0301 -0144 006E 0301 -0145 004E 0327 -0146 006E 0327 -0147 004E 030C -0148 006E 030C -0149 <compat> 02BC 006E -014C 004F 0304 -014D 006F 0304 -014E 004F 0306 -014F 006F 0306 -0150 004F 030B -0151 006F 030B -0154 0052 0301 -0155 0072 0301 -0156 0052 0327 -0157 0072 0327 -0158 0052 030C -0159 0072 030C -015A 0053 0301 -015B 0073 0301 -015C 0053 0302 -015D 0073 0302 -015E 0053 0327 -015F 0073 0327 -0160 0053 030C -0161 0073 030C -0162 0054 0327 -0163 0074 0327 -0164 0054 030C -0165 0074 030C -0168 0055 0303 -0169 0075 0303 -016A 0055 0304 -016B 0075 0304 -016C 0055 0306 -016D 0075 0306 -016E 0055 030A -016F 0075 030A -0170 0055 030B -0171 0075 030B -0172 0055 0328 -0173 0075 0328 -0174 0057 0302 -0175 0077 0302 -0176 0059 0302 -0177 0079 0302 -0178 0059 0308 -0179 005A 0301 -017A 007A 0301 -017B 005A 0307 -017C 007A 0307 -017D 005A 030C -017E 007A 030C -017F <compat> 0073 -01A0 004F 031B -01A1 006F 031B -01AF 0055 031B -01B0 0075 031B -01C4 <compat> 0044 017D -01C5 <compat> 0044 017E -01C6 <compat> 0064 017E -01C7 <compat> 004C 004A -01C8 <compat> 004C 006A -01C9 <compat> 006C 006A -01CA <compat> 004E 004A -01CB <compat> 004E 006A -01CC <compat> 006E 006A -01CD 0041 030C -01CE 0061 030C -01CF 0049 030C -01D0 0069 030C -01D1 004F 030C -01D2 006F 030C -01D3 0055 030C -01D4 0075 030C -01D5 00DC 0304 -01D6 00FC 0304 -01D7 00DC 0301 -01D8 00FC 0301 -01D9 00DC 030C -01DA 00FC 030C -01DB 00DC 0300 -01DC 00FC 0300 -01DE 00C4 0304 -01DF 00E4 0304 -01E0 0226 0304 -01E1 0227 0304 -01E2 00C6 0304 -01E3 00E6 0304 -01E6 0047 030C -01E7 0067 030C -01E8 004B 030C -01E9 006B 030C -01EA 004F 0328 -01EB 006F 0328 -01EC 01EA 0304 -01ED 01EB 0304 -01EE 01B7 030C -01EF 0292 030C -01F0 006A 030C -01F1 <compat> 0044 005A -01F2 <compat> 0044 007A -01F3 <compat> 0064 007A -01F4 0047 0301 -01F5 0067 0301 -01F8 004E 0300 -01F9 006E 0300 -01FA 00C5 0301 -01FB 00E5 0301 -01FC 00C6 0301 -01FD 00E6 0301 -01FE 00D8 0301 -01FF 00F8 0301 -0200 0041 030F -0201 0061 030F -0202 0041 0311 -0203 0061 0311 -0204 0045 030F -0205 0065 030F -0206 0045 0311 -0207 0065 0311 -0208 0049 030F -0209 0069 030F -020A 0049 0311 -020B 0069 0311 -020C 004F 030F -020D 006F 030F -020E 004F 0311 -020F 006F 0311 -0210 0052 030F -0211 0072 030F -0212 0052 0311 -0213 0072 0311 -0214 0055 030F -0215 0075 030F -0216 0055 0311 -0217 0075 0311 -0218 0053 0326 -0219 0073 0326 -021A 0054 0326 -021B 0074 0326 -021E 0048 030C -021F 0068 030C -0226 0041 0307 -0227 0061 0307 -0228 0045 0327 -0229 0065 0327 -022A 00D6 0304 -022B 00F6 0304 -022C 00D5 0304 -022D 00F5 0304 -022E 004F 0307 -022F 006F 0307 -0230 022E 0304 -0231 022F 0304 -0232 0059 0304 -0233 0079 0304 -02B0 <super> 0068 -02B1 <super> 0266 -02B2 <super> 006A -02B3 <super> 0072 -02B4 <super> 0279 -02B5 <super> 027B -02B6 <super> 0281 -02B7 <super> 0077 -02B8 <super> 0079 -02D8 <compat> 0020 0306 -02D9 <compat> 0020 0307 -02DA <compat> 0020 030A -02DB <compat> 0020 0328 -02DC <compat> 0020 0303 -02DD <compat> 0020 030B -02E0 <super> 0263 -02E1 <super> 006C -02E2 <super> 0073 -02E3 <super> 0078 -02E4 <super> 0295 -0340 0300 -0341 0301 -0343 0313 -0344 0308 0301 -0374 02B9 -037A <compat> 0020 0345 -037E 003B -0384 <compat> 0020 0301 -0385 00A8 0301 -0386 0391 0301 -0387 00B7 -0388 0395 0301 -0389 0397 0301 -038A 0399 0301 -038C 039F 0301 -038E 03A5 0301 -038F 03A9 0301 -0390 03CA 0301 -03AA 0399 0308 -03AB 03A5 0308 -03AC 03B1 0301 -03AD 03B5 0301 -03AE 03B7 0301 -03AF 03B9 0301 -03B0 03CB 0301 -03CA 03B9 0308 -03CB 03C5 0308 -03CC 03BF 0301 -03CD 03C5 0301 -03CE 03C9 0301 -03D0 <compat> 03B2 -03D1 <compat> 03B8 -03D2 <compat> 03A5 -03D3 03D2 0301 -03D4 03D2 0308 -03D5 <compat> 03C6 -03D6 <compat> 03C0 -03F0 <compat> 03BA -03F1 <compat> 03C1 -03F2 <compat> 03C2 -03F4 <compat> 0398 -03F5 <compat> 03B5 -0400 0415 0300 -0401 0415 0308 -0403 0413 0301 -0407 0406 0308 -040C 041A 0301 -040D 0418 0300 -040E 0423 0306 -0419 0418 0306 -0439 0438 0306 -0450 0435 0300 -0451 0435 0308 -0453 0433 0301 -0457 0456 0308 -045C 043A 0301 -045D 0438 0300 -045E 0443 0306 -0476 0474 030F -0477 0475 030F -04C1 0416 0306 -04C2 0436 0306 -04D0 0410 0306 -04D1 0430 0306 -04D2 0410 0308 -04D3 0430 0308 -04D6 0415 0306 -04D7 0435 0306 -04DA 04D8 0308 -04DB 04D9 0308 -04DC 0416 0308 -04DD 0436 0308 -04DE 0417 0308 -04DF 0437 0308 -04E2 0418 0304 -04E3 0438 0304 -04E4 0418 0308 -04E5 0438 0308 -04E6 041E 0308 -04E7 043E 0308 -04EA 04E8 0308 -04EB 04E9 0308 -04EC 042D 0308 -04ED 044D 0308 -04EE 0423 0304 -04EF 0443 0304 -04F0 0423 0308 -04F1 0443 0308 -04F2 0423 030B -04F3 0443 030B -04F4 0427 0308 -04F5 0447 0308 -04F8 042B 0308 -04F9 044B 0308 -0587 <compat> 0565 0582 -0622 0627 0653 -0623 0627 0654 -0624 0648 0654 -0625 0627 0655 -0626 064A 0654 -0675 <compat> 0627 0674 -0676 <compat> 0648 0674 -0677 <compat> 06C7 0674 -0678 <compat> 064A 0674 -06C0 06D5 0654 -06C2 06C1 0654 -06D3 06D2 0654 -0929 0928 093C -0931 0930 093C -0934 0933 093C -0958 0915 093C -0959 0916 093C -095A 0917 093C -095B 091C 093C -095C 0921 093C -095D 0922 093C -095E 092B 093C -095F 092F 093C -09CB 09C7 09BE -09CC 09C7 09D7 -09DC 09A1 09BC -09DD 09A2 09BC -09DF 09AF 09BC -0A33 0A32 0A3C -0A36 0A38 0A3C -0A59 0A16 0A3C -0A5A 0A17 0A3C -0A5B 0A1C 0A3C -0A5E 0A2B 0A3C -0B48 0B47 0B56 -0B4B 0B47 0B3E -0B4C 0B47 0B57 -0B5C 0B21 0B3C -0B5D 0B22 0B3C -0B94 0B92 0BD7 -0BCA 0BC6 0BBE -0BCB 0BC7 0BBE -0BCC 0BC6 0BD7 -0C48 0C46 0C56 -0CC0 0CBF 0CD5 -0CC7 0CC6 0CD5 -0CC8 0CC6 0CD6 -0CCA 0CC6 0CC2 -0CCB 0CCA 0CD5 -0D4A 0D46 0D3E -0D4B 0D47 0D3E -0D4C 0D46 0D57 -0DDA 0DD9 0DCA -0DDC 0DD9 0DCF -0DDD 0DDC 0DCA -0DDE 0DD9 0DDF -0E33 <compat> 0E4D 0E32 -0EB3 <compat> 0ECD 0EB2 -0EDC <compat> 0EAB 0E99 -0EDD <compat> 0EAB 0EA1 -0F0C <noBreak> 0F0B -0F43 0F42 0FB7 -0F4D 0F4C 0FB7 -0F52 0F51 0FB7 -0F57 0F56 0FB7 -0F5C 0F5B 0FB7 -0F69 0F40 0FB5 -0F73 0F71 0F72 -0F75 0F71 0F74 -0F76 0FB2 0F80 -0F77 <compat> 0FB2 0F81 -0F78 0FB3 0F80 -0F79 <compat> 0FB3 0F81 -0F81 0F71 0F80 -0F93 0F92 0FB7 -0F9D 0F9C 0FB7 -0FA2 0FA1 0FB7 -0FA7 0FA6 0FB7 -0FAC 0FAB 0FB7 -0FB9 0F90 0FB5 -1026 1025 102E -1E00 0041 0325 -1E01 0061 0325 -1E02 0042 0307 -1E03 0062 0307 -1E04 0042 0323 -1E05 0062 0323 -1E06 0042 0331 -1E07 0062 0331 -1E08 00C7 0301 -1E09 00E7 0301 -1E0A 0044 0307 -1E0B 0064 0307 -1E0C 0044 0323 -1E0D 0064 0323 -1E0E 0044 0331 -1E0F 0064 0331 -1E10 0044 0327 -1E11 0064 0327 -1E12 0044 032D -1E13 0064 032D -1E14 0112 0300 -1E15 0113 0300 -1E16 0112 0301 -1E17 0113 0301 -1E18 0045 032D -1E19 0065 032D -1E1A 0045 0330 -1E1B 0065 0330 -1E1C 0228 0306 -1E1D 0229 0306 -1E1E 0046 0307 -1E1F 0066 0307 -1E20 0047 0304 -1E21 0067 0304 -1E22 0048 0307 -1E23 0068 0307 -1E24 0048 0323 -1E25 0068 0323 -1E26 0048 0308 -1E27 0068 0308 -1E28 0048 0327 -1E29 0068 0327 -1E2A 0048 032E -1E2B 0068 032E -1E2C 0049 0330 -1E2D 0069 0330 -1E2E 00CF 0301 -1E2F 00EF 0301 -1E30 004B 0301 -1E31 006B 0301 -1E32 004B 0323 -1E33 006B 0323 -1E34 004B 0331 -1E35 006B 0331 -1E36 004C 0323 -1E37 006C 0323 -1E38 1E36 0304 -1E39 1E37 0304 -1E3A 004C 0331 -1E3B 006C 0331 -1E3C 004C 032D -1E3D 006C 032D -1E3E 004D 0301 -1E3F 006D 0301 -1E40 004D 0307 -1E41 006D 0307 -1E42 004D 0323 -1E43 006D 0323 -1E44 004E 0307 -1E45 006E 0307 -1E46 004E 0323 -1E47 006E 0323 -1E48 004E 0331 -1E49 006E 0331 -1E4A 004E 032D -1E4B 006E 032D -1E4C 00D5 0301 -1E4D 00F5 0301 -1E4E 00D5 0308 -1E4F 00F5 0308 -1E50 014C 0300 -1E51 014D 0300 -1E52 014C 0301 -1E53 014D 0301 -1E54 0050 0301 -1E55 0070 0301 -1E56 0050 0307 -1E57 0070 0307 -1E58 0052 0307 -1E59 0072 0307 -1E5A 0052 0323 -1E5B 0072 0323 -1E5C 1E5A 0304 -1E5D 1E5B 0304 -1E5E 0052 0331 -1E5F 0072 0331 -1E60 0053 0307 -1E61 0073 0307 -1E62 0053 0323 -1E63 0073 0323 -1E64 015A 0307 -1E65 015B 0307 -1E66 0160 0307 -1E67 0161 0307 -1E68 1E62 0307 -1E69 1E63 0307 -1E6A 0054 0307 -1E6B 0074 0307 -1E6C 0054 0323 -1E6D 0074 0323 -1E6E 0054 0331 -1E6F 0074 0331 -1E70 0054 032D -1E71 0074 032D -1E72 0055 0324 -1E73 0075 0324 -1E74 0055 0330 -1E75 0075 0330 -1E76 0055 032D -1E77 0075 032D -1E78 0168 0301 -1E79 0169 0301 -1E7A 016A 0308 -1E7B 016B 0308 -1E7C 0056 0303 -1E7D 0076 0303 -1E7E 0056 0323 -1E7F 0076 0323 -1E80 0057 0300 -1E81 0077 0300 -1E82 0057 0301 -1E83 0077 0301 -1E84 0057 0308 -1E85 0077 0308 -1E86 0057 0307 -1E87 0077 0307 -1E88 0057 0323 -1E89 0077 0323 -1E8A 0058 0307 -1E8B 0078 0307 -1E8C 0058 0308 -1E8D 0078 0308 -1E8E 0059 0307 -1E8F 0079 0307 -1E90 005A 0302 -1E91 007A 0302 -1E92 005A 0323 -1E93 007A 0323 -1E94 005A 0331 -1E95 007A 0331 -1E96 0068 0331 -1E97 0074 0308 -1E98 0077 030A -1E99 0079 030A -1E9A <compat> 0061 02BE -1E9B 017F 0307 -1EA0 0041 0323 -1EA1 0061 0323 -1EA2 0041 0309 -1EA3 0061 0309 -1EA4 00C2 0301 -1EA5 00E2 0301 -1EA6 00C2 0300 -1EA7 00E2 0300 -1EA8 00C2 0309 -1EA9 00E2 0309 -1EAA 00C2 0303 -1EAB 00E2 0303 -1EAC 1EA0 0302 -1EAD 1EA1 0302 -1EAE 0102 0301 -1EAF 0103 0301 -1EB0 0102 0300 -1EB1 0103 0300 -1EB2 0102 0309 -1EB3 0103 0309 -1EB4 0102 0303 -1EB5 0103 0303 -1EB6 1EA0 0306 -1EB7 1EA1 0306 -1EB8 0045 0323 -1EB9 0065 0323 -1EBA 0045 0309 -1EBB 0065 0309 -1EBC 0045 0303 -1EBD 0065 0303 -1EBE 00CA 0301 -1EBF 00EA 0301 -1EC0 00CA 0300 -1EC1 00EA 0300 -1EC2 00CA 0309 -1EC3 00EA 0309 -1EC4 00CA 0303 -1EC5 00EA 0303 -1EC6 1EB8 0302 -1EC7 1EB9 0302 -1EC8 0049 0309 -1EC9 0069 0309 -1ECA 0049 0323 -1ECB 0069 0323 -1ECC 004F 0323 -1ECD 006F 0323 -1ECE 004F 0309 -1ECF 006F 0309 -1ED0 00D4 0301 -1ED1 00F4 0301 -1ED2 00D4 0300 -1ED3 00F4 0300 -1ED4 00D4 0309 -1ED5 00F4 0309 -1ED6 00D4 0303 -1ED7 00F4 0303 -1ED8 1ECC 0302 -1ED9 1ECD 0302 -1EDA 01A0 0301 -1EDB 01A1 0301 -1EDC 01A0 0300 -1EDD 01A1 0300 -1EDE 01A0 0309 -1EDF 01A1 0309 -1EE0 01A0 0303 -1EE1 01A1 0303 -1EE2 01A0 0323 -1EE3 01A1 0323 -1EE4 0055 0323 -1EE5 0075 0323 -1EE6 0055 0309 -1EE7 0075 0309 -1EE8 01AF 0301 -1EE9 01B0 0301 -1EEA 01AF 0300 -1EEB 01B0 0300 -1EEC 01AF 0309 -1EED 01B0 0309 -1EEE 01AF 0303 -1EEF 01B0 0303 -1EF0 01AF 0323 -1EF1 01B0 0323 -1EF2 0059 0300 -1EF3 0079 0300 -1EF4 0059 0323 -1EF5 0079 0323 -1EF6 0059 0309 -1EF7 0079 0309 -1EF8 0059 0303 -1EF9 0079 0303 -1F00 03B1 0313 -1F01 03B1 0314 -1F02 1F00 0300 -1F03 1F01 0300 -1F04 1F00 0301 -1F05 1F01 0301 -1F06 1F00 0342 -1F07 1F01 0342 -1F08 0391 0313 -1F09 0391 0314 -1F0A 1F08 0300 -1F0B 1F09 0300 -1F0C 1F08 0301 -1F0D 1F09 0301 -1F0E 1F08 0342 -1F0F 1F09 0342 -1F10 03B5 0313 -1F11 03B5 0314 -1F12 1F10 0300 -1F13 1F11 0300 -1F14 1F10 0301 -1F15 1F11 0301 -1F18 0395 0313 -1F19 0395 0314 -1F1A 1F18 0300 -1F1B 1F19 0300 -1F1C 1F18 0301 -1F1D 1F19 0301 -1F20 03B7 0313 -1F21 03B7 0314 -1F22 1F20 0300 -1F23 1F21 0300 -1F24 1F20 0301 -1F25 1F21 0301 -1F26 1F20 0342 -1F27 1F21 0342 -1F28 0397 0313 -1F29 0397 0314 -1F2A 1F28 0300 -1F2B 1F29 0300 -1F2C 1F28 0301 -1F2D 1F29 0301 -1F2E 1F28 0342 -1F2F 1F29 0342 -1F30 03B9 0313 -1F31 03B9 0314 -1F32 1F30 0300 -1F33 1F31 0300 -1F34 1F30 0301 -1F35 1F31 0301 -1F36 1F30 0342 -1F37 1F31 0342 -1F38 0399 0313 -1F39 0399 0314 -1F3A 1F38 0300 -1F3B 1F39 0300 -1F3C 1F38 0301 -1F3D 1F39 0301 -1F3E 1F38 0342 -1F3F 1F39 0342 -1F40 03BF 0313 -1F41 03BF 0314 -1F42 1F40 0300 -1F43 1F41 0300 -1F44 1F40 0301 -1F45 1F41 0301 -1F48 039F 0313 -1F49 039F 0314 -1F4A 1F48 0300 -1F4B 1F49 0300 -1F4C 1F48 0301 -1F4D 1F49 0301 -1F50 03C5 0313 -1F51 03C5 0314 -1F52 1F50 0300 -1F53 1F51 0300 -1F54 1F50 0301 -1F55 1F51 0301 -1F56 1F50 0342 -1F57 1F51 0342 -1F59 03A5 0314 -1F5B 1F59 0300 -1F5D 1F59 0301 -1F5F 1F59 0342 -1F60 03C9 0313 -1F61 03C9 0314 -1F62 1F60 0300 -1F63 1F61 0300 -1F64 1F60 0301 -1F65 1F61 0301 -1F66 1F60 0342 -1F67 1F61 0342 -1F68 03A9 0313 -1F69 03A9 0314 -1F6A 1F68 0300 -1F6B 1F69 0300 -1F6C 1F68 0301 -1F6D 1F69 0301 -1F6E 1F68 0342 -1F6F 1F69 0342 -1F70 03B1 0300 -1F71 03AC -1F72 03B5 0300 -1F73 03AD -1F74 03B7 0300 -1F75 03AE -1F76 03B9 0300 -1F77 03AF -1F78 03BF 0300 -1F79 03CC -1F7A 03C5 0300 -1F7B 03CD -1F7C 03C9 0300 -1F7D 03CE -1F80 1F00 0345 -1F81 1F01 0345 -1F82 1F02 0345 -1F83 1F03 0345 -1F84 1F04 0345 -1F85 1F05 0345 -1F86 1F06 0345 -1F87 1F07 0345 -1F88 1F08 0345 -1F89 1F09 0345 -1F8A 1F0A 0345 -1F8B 1F0B 0345 -1F8C 1F0C 0345 -1F8D 1F0D 0345 -1F8E 1F0E 0345 -1F8F 1F0F 0345 -1F90 1F20 0345 -1F91 1F21 0345 -1F92 1F22 0345 -1F93 1F23 0345 -1F94 1F24 0345 -1F95 1F25 0345 -1F96 1F26 0345 -1F97 1F27 0345 -1F98 1F28 0345 -1F99 1F29 0345 -1F9A 1F2A 0345 -1F9B 1F2B 0345 -1F9C 1F2C 0345 -1F9D 1F2D 0345 -1F9E 1F2E 0345 -1F9F 1F2F 0345 -1FA0 1F60 0345 -1FA1 1F61 0345 -1FA2 1F62 0345 -1FA3 1F63 0345 -1FA4 1F64 0345 -1FA5 1F65 0345 -1FA6 1F66 0345 -1FA7 1F67 0345 -1FA8 1F68 0345 -1FA9 1F69 0345 -1FAA 1F6A 0345 -1FAB 1F6B 0345 -1FAC 1F6C 0345 -1FAD 1F6D 0345 -1FAE 1F6E 0345 -1FAF 1F6F 0345 -1FB0 03B1 0306 -1FB1 03B1 0304 -1FB2 1F70 0345 -1FB3 03B1 0345 -1FB4 03AC 0345 -1FB6 03B1 0342 -1FB7 1FB6 0345 -1FB8 0391 0306 -1FB9 0391 0304 -1FBA 0391 0300 -1FBB 0386 -1FBC 0391 0345 -1FBD <compat> 0020 0313 -1FBE 03B9 -1FBF <compat> 0020 0313 -1FC0 <compat> 0020 0342 -1FC1 00A8 0342 -1FC2 1F74 0345 -1FC3 03B7 0345 -1FC4 03AE 0345 -1FC6 03B7 0342 -1FC7 1FC6 0345 -1FC8 0395 0300 -1FC9 0388 -1FCA 0397 0300 -1FCB 0389 -1FCC 0397 0345 -1FCD 1FBF 0300 -1FCE 1FBF 0301 -1FCF 1FBF 0342 -1FD0 03B9 0306 -1FD1 03B9 0304 -1FD2 03CA 0300 -1FD3 0390 -1FD6 03B9 0342 -1FD7 03CA 0342 -1FD8 0399 0306 -1FD9 0399 0304 -1FDA 0399 0300 -1FDB 038A -1FDD 1FFE 0300 -1FDE 1FFE 0301 -1FDF 1FFE 0342 -1FE0 03C5 0306 -1FE1 03C5 0304 -1FE2 03CB 0300 -1FE3 03B0 -1FE4 03C1 0313 -1FE5 03C1 0314 -1FE6 03C5 0342 -1FE7 03CB 0342 -1FE8 03A5 0306 -1FE9 03A5 0304 -1FEA 03A5 0300 -1FEB 038E -1FEC 03A1 0314 -1FED 00A8 0300 -1FEE 0385 -1FEF 0060 -1FF2 1F7C 0345 -1FF3 03C9 0345 -1FF4 03CE 0345 -1FF6 03C9 0342 -1FF7 1FF6 0345 -1FF8 039F 0300 -1FF9 038C -1FFA 03A9 0300 -1FFB 038F -1FFC 03A9 0345 -1FFD 00B4 -1FFE <compat> 0020 0314 -2000 2002 -2001 2003 -2002 2006 <compat> 0020 -2007 <noBreak> 0020 -2008 200A <compat> 0020 -2011 <noBreak> 2010 -2017 <compat> 0020 0333 -2024 <compat> 002E -2025 <compat> 002E 002E -2026 <compat> 002E 002E 002E -202F <noBreak> 0020 -2033 <compat> 2032 2032 -2034 <compat> 2032 2032 2032 -2036 <compat> 2035 2035 -2037 <compat> 2035 2035 2035 -203C <compat> 0021 0021 -203E <compat> 0020 0305 -2047 <compat> 003F 003F -2048 <compat> 003F 0021 -2049 <compat> 0021 003F -2057 <compat> 2032 2032 2032 2032 -205F <compat> 0020 -2070 <super> 0030 -2071 <super> 0069 -2074 <super> 0034 -2075 <super> 0035 -2076 <super> 0036 -2077 <super> 0037 -2078 <super> 0038 -2079 <super> 0039 -207A <super> 002B -207B <super> 2212 -207C <super> 003D -207D <super> 0028 -207E <super> 0029 -207F <super> 006E -2080 <sub> 0030 -2081 <sub> 0031 -2082 <sub> 0032 -2083 <sub> 0033 -2084 <sub> 0034 -2085 <sub> 0035 -2086 <sub> 0036 -2087 <sub> 0037 -2088 <sub> 0038 -2089 <sub> 0039 -208A <sub> 002B -208B <sub> 2212 -208C <sub> 003D -208D <sub> 0028 -208E <sub> 0029 -20A8 <compat> 0052 0073 -2100 <compat> 0061 002F 0063 -2101 <compat> 0061 002F 0073 -2102 <font> 0043 -2103 <compat> 00B0 0043 -2105 <compat> 0063 002F 006F -2106 <compat> 0063 002F 0075 -2107 <compat> 0190 -2109 <compat> 00B0 0046 -210A <font> 0067 -210B 210D <font> 0048 -210E <font> 0068 -210F <font> 0127 -2110 2111 <font> 0049 -2112 <font> 004C -2113 <font> 006C -2115 <font> 004E -2116 <compat> 004E 006F -2119 <font> 0050 -211A <font> 0051 -211B 211D <font> 0052 -2120 <super> 0053 004D -2121 <compat> 0054 0045 004C -2122 <super> 0054 004D -2124 <font> 005A -2126 03A9 -2128 <font> 005A -212A 004B -212B 00C5 -212C <font> 0042 -212D <font> 0043 -212F <font> 0065 -2130 <font> 0045 -2131 <font> 0046 -2133 <font> 004D -2134 <font> 006F -2135 <compat> 05D0 -2136 <compat> 05D1 -2137 <compat> 05D2 -2138 <compat> 05D3 -2139 <font> 0069 -213D <font> 03B3 -213E <font> 0393 -213F <font> 03A0 -2140 <font> 2211 -2145 <font> 0044 -2146 <font> 0064 -2147 <font> 0065 -2148 <font> 0069 -2149 <font> 006A -2153 <fraction> 0031 2044 0033 -2154 <fraction> 0032 2044 0033 -2155 <fraction> 0031 2044 0035 -2156 <fraction> 0032 2044 0035 -2157 <fraction> 0033 2044 0035 -2158 <fraction> 0034 2044 0035 -2159 <fraction> 0031 2044 0036 -215A <fraction> 0035 2044 0036 -215B <fraction> 0031 2044 0038 -215C <fraction> 0033 2044 0038 -215D <fraction> 0035 2044 0038 -215E <fraction> 0037 2044 0038 -215F <fraction> 0031 2044 -2160 <compat> 0049 -2161 <compat> 0049 0049 -2162 <compat> 0049 0049 0049 -2163 <compat> 0049 0056 -2164 <compat> 0056 -2165 <compat> 0056 0049 -2166 <compat> 0056 0049 0049 -2167 <compat> 0056 0049 0049 0049 -2168 <compat> 0049 0058 -2169 <compat> 0058 -216A <compat> 0058 0049 -216B <compat> 0058 0049 0049 -216C <compat> 004C -216D <compat> 0043 -216E <compat> 0044 -216F <compat> 004D -2170 <compat> 0069 -2171 <compat> 0069 0069 -2172 <compat> 0069 0069 0069 -2173 <compat> 0069 0076 -2174 <compat> 0076 -2175 <compat> 0076 0069 -2176 <compat> 0076 0069 0069 -2177 <compat> 0076 0069 0069 0069 -2178 <compat> 0069 0078 -2179 <compat> 0078 -217A <compat> 0078 0069 -217B <compat> 0078 0069 0069 -217C <compat> 006C -217D <compat> 0063 -217E <compat> 0064 -217F <compat> 006D -219A 2190 0338 -219B 2192 0338 -21AE 2194 0338 -21CD 21D0 0338 -21CE 21D4 0338 -21CF 21D2 0338 -2204 2203 0338 -2209 2208 0338 -220C 220B 0338 -2224 2223 0338 -2226 2225 0338 -222C <compat> 222B 222B -222D <compat> 222B 222B 222B -222F <compat> 222E 222E -2230 <compat> 222E 222E 222E -2241 223C 0338 -2244 2243 0338 -2247 2245 0338 -2249 2248 0338 -2260 003D 0338 -2262 2261 0338 -226D 224D 0338 -226E 003C 0338 -226F 003E 0338 -2270 2264 0338 -2271 2265 0338 -2274 2272 0338 -2275 2273 0338 -2278 2276 0338 -2279 2277 0338 -2280 227A 0338 -2281 227B 0338 -2284 2282 0338 -2285 2283 0338 -2288 2286 0338 -2289 2287 0338 -22AC 22A2 0338 -22AD 22A8 0338 -22AE 22A9 0338 -22AF 22AB 0338 -22E0 227C 0338 -22E1 227D 0338 -22E2 2291 0338 -22E3 2292 0338 -22EA 22B2 0338 -22EB 22B3 0338 -22EC 22B4 0338 -22ED 22B5 0338 -2329 3008 -232A 3009 -2460 <circle> 0031 -2461 <circle> 0032 -2462 <circle> 0033 -2463 <circle> 0034 -2464 <circle> 0035 -2465 <circle> 0036 -2466 <circle> 0037 -2467 <circle> 0038 -2468 <circle> 0039 -2469 <circle> 0031 0030 -246A <circle> 0031 0031 -246B <circle> 0031 0032 -246C <circle> 0031 0033 -246D <circle> 0031 0034 -246E <circle> 0031 0035 -246F <circle> 0031 0036 -2470 <circle> 0031 0037 -2471 <circle> 0031 0038 -2472 <circle> 0031 0039 -2473 <circle> 0032 0030 -2474 <compat> 0028 0031 0029 -2475 <compat> 0028 0032 0029 -2476 <compat> 0028 0033 0029 -2477 <compat> 0028 0034 0029 -2478 <compat> 0028 0035 0029 -2479 <compat> 0028 0036 0029 -247A <compat> 0028 0037 0029 -247B <compat> 0028 0038 0029 -247C <compat> 0028 0039 0029 -247D <compat> 0028 0031 0030 0029 -247E <compat> 0028 0031 0031 0029 -247F <compat> 0028 0031 0032 0029 -2480 <compat> 0028 0031 0033 0029 -2481 <compat> 0028 0031 0034 0029 -2482 <compat> 0028 0031 0035 0029 -2483 <compat> 0028 0031 0036 0029 -2484 <compat> 0028 0031 0037 0029 -2485 <compat> 0028 0031 0038 0029 -2486 <compat> 0028 0031 0039 0029 -2487 <compat> 0028 0032 0030 0029 -2488 <compat> 0031 002E -2489 <compat> 0032 002E -248A <compat> 0033 002E -248B <compat> 0034 002E -248C <compat> 0035 002E -248D <compat> 0036 002E -248E <compat> 0037 002E -248F <compat> 0038 002E -2490 <compat> 0039 002E -2491 <compat> 0031 0030 002E -2492 <compat> 0031 0031 002E -2493 <compat> 0031 0032 002E -2494 <compat> 0031 0033 002E -2495 <compat> 0031 0034 002E -2496 <compat> 0031 0035 002E -2497 <compat> 0031 0036 002E -2498 <compat> 0031 0037 002E -2499 <compat> 0031 0038 002E -249A <compat> 0031 0039 002E -249B <compat> 0032 0030 002E -249C <compat> 0028 0061 0029 -249D <compat> 0028 0062 0029 -249E <compat> 0028 0063 0029 -249F <compat> 0028 0064 0029 -24A0 <compat> 0028 0065 0029 -24A1 <compat> 0028 0066 0029 -24A2 <compat> 0028 0067 0029 -24A3 <compat> 0028 0068 0029 -24A4 <compat> 0028 0069 0029 -24A5 <compat> 0028 006A 0029 -24A6 <compat> 0028 006B 0029 -24A7 <compat> 0028 006C 0029 -24A8 <compat> 0028 006D 0029 -24A9 <compat> 0028 006E 0029 -24AA <compat> 0028 006F 0029 -24AB <compat> 0028 0070 0029 -24AC <compat> 0028 0071 0029 -24AD <compat> 0028 0072 0029 -24AE <compat> 0028 0073 0029 -24AF <compat> 0028 0074 0029 -24B0 <compat> 0028 0075 0029 -24B1 <compat> 0028 0076 0029 -24B2 <compat> 0028 0077 0029 -24B3 <compat> 0028 0078 0029 -24B4 <compat> 0028 0079 0029 -24B5 <compat> 0028 007A 0029 -24B6 <circle> 0041 -24B7 <circle> 0042 -24B8 <circle> 0043 -24B9 <circle> 0044 -24BA <circle> 0045 -24BB <circle> 0046 -24BC <circle> 0047 -24BD <circle> 0048 -24BE <circle> 0049 -24BF <circle> 004A -24C0 <circle> 004B -24C1 <circle> 004C -24C2 <circle> 004D -24C3 <circle> 004E -24C4 <circle> 004F -24C5 <circle> 0050 -24C6 <circle> 0051 -24C7 <circle> 0052 -24C8 <circle> 0053 -24C9 <circle> 0054 -24CA <circle> 0055 -24CB <circle> 0056 -24CC <circle> 0057 -24CD <circle> 0058 -24CE <circle> 0059 -24CF <circle> 005A -24D0 <circle> 0061 -24D1 <circle> 0062 -24D2 <circle> 0063 -24D3 <circle> 0064 -24D4 <circle> 0065 -24D5 <circle> 0066 -24D6 <circle> 0067 -24D7 <circle> 0068 -24D8 <circle> 0069 -24D9 <circle> 006A -24DA <circle> 006B -24DB <circle> 006C -24DC <circle> 006D -24DD <circle> 006E -24DE <circle> 006F -24DF <circle> 0070 -24E0 <circle> 0071 -24E1 <circle> 0072 -24E2 <circle> 0073 -24E3 <circle> 0074 -24E4 <circle> 0075 -24E5 <circle> 0076 -24E6 <circle> 0077 -24E7 <circle> 0078 -24E8 <circle> 0079 -24E9 <circle> 007A -24EA <circle> 0030 -2A0C <compat> 222B 222B 222B 222B -2A74 <compat> 003A 003A 003D -2A75 <compat> 003D 003D -2A76 <compat> 003D 003D 003D -2ADC 2ADD 0338 -2E9F <compat> 6BCD -2EF3 <compat> 9F9F -2F00 <compat> 4E00 -2F01 <compat> 4E28 -2F02 <compat> 4E36 -2F03 <compat> 4E3F -2F04 <compat> 4E59 -2F05 <compat> 4E85 -2F06 <compat> 4E8C -2F07 <compat> 4EA0 -2F08 <compat> 4EBA -2F09 <compat> 513F -2F0A <compat> 5165 -2F0B <compat> 516B -2F0C <compat> 5182 -2F0D <compat> 5196 -2F0E <compat> 51AB -2F0F <compat> 51E0 -2F10 <compat> 51F5 -2F11 <compat> 5200 -2F12 <compat> 529B -2F13 <compat> 52F9 -2F14 <compat> 5315 -2F15 <compat> 531A -2F16 <compat> 5338 -2F17 <compat> 5341 -2F18 <compat> 535C -2F19 <compat> 5369 -2F1A <compat> 5382 -2F1B <compat> 53B6 -2F1C <compat> 53C8 -2F1D <compat> 53E3 -2F1E <compat> 56D7 -2F1F <compat> 571F -2F20 <compat> 58EB -2F21 <compat> 5902 -2F22 <compat> 590A -2F23 <compat> 5915 -2F24 <compat> 5927 -2F25 <compat> 5973 -2F26 <compat> 5B50 -2F27 <compat> 5B80 -2F28 <compat> 5BF8 -2F29 <compat> 5C0F -2F2A <compat> 5C22 -2F2B <compat> 5C38 -2F2C <compat> 5C6E -2F2D <compat> 5C71 -2F2E <compat> 5DDB -2F2F <compat> 5DE5 -2F30 <compat> 5DF1 -2F31 <compat> 5DFE -2F32 <compat> 5E72 -2F33 <compat> 5E7A -2F34 <compat> 5E7F -2F35 <compat> 5EF4 -2F36 <compat> 5EFE -2F37 <compat> 5F0B -2F38 <compat> 5F13 -2F39 <compat> 5F50 -2F3A <compat> 5F61 -2F3B <compat> 5F73 -2F3C <compat> 5FC3 -2F3D <compat> 6208 -2F3E <compat> 6236 -2F3F <compat> 624B -2F40 <compat> 652F -2F41 <compat> 6534 -2F42 <compat> 6587 -2F43 <compat> 6597 -2F44 <compat> 65A4 -2F45 <compat> 65B9 -2F46 <compat> 65E0 -2F47 <compat> 65E5 -2F48 <compat> 66F0 -2F49 <compat> 6708 -2F4A <compat> 6728 -2F4B <compat> 6B20 -2F4C <compat> 6B62 -2F4D <compat> 6B79 -2F4E <compat> 6BB3 -2F4F <compat> 6BCB -2F50 <compat> 6BD4 -2F51 <compat> 6BDB -2F52 <compat> 6C0F -2F53 <compat> 6C14 -2F54 <compat> 6C34 -2F55 <compat> 706B -2F56 <compat> 722A -2F57 <compat> 7236 -2F58 <compat> 723B -2F59 <compat> 723F -2F5A <compat> 7247 -2F5B <compat> 7259 -2F5C <compat> 725B -2F5D <compat> 72AC -2F5E <compat> 7384 -2F5F <compat> 7389 -2F60 <compat> 74DC -2F61 <compat> 74E6 -2F62 <compat> 7518 -2F63 <compat> 751F -2F64 <compat> 7528 -2F65 <compat> 7530 -2F66 <compat> 758B -2F67 <compat> 7592 -2F68 <compat> 7676 -2F69 <compat> 767D -2F6A <compat> 76AE -2F6B <compat> 76BF -2F6C <compat> 76EE -2F6D <compat> 77DB -2F6E <compat> 77E2 -2F6F <compat> 77F3 -2F70 <compat> 793A -2F71 <compat> 79B8 -2F72 <compat> 79BE -2F73 <compat> 7A74 -2F74 <compat> 7ACB -2F75 <compat> 7AF9 -2F76 <compat> 7C73 -2F77 <compat> 7CF8 -2F78 <compat> 7F36 -2F79 <compat> 7F51 -2F7A <compat> 7F8A -2F7B <compat> 7FBD -2F7C <compat> 8001 -2F7D <compat> 800C -2F7E <compat> 8012 -2F7F <compat> 8033 -2F80 <compat> 807F -2F81 <compat> 8089 -2F82 <compat> 81E3 -2F83 <compat> 81EA -2F84 <compat> 81F3 -2F85 <compat> 81FC -2F86 <compat> 820C -2F87 <compat> 821B -2F88 <compat> 821F -2F89 <compat> 826E -2F8A <compat> 8272 -2F8B <compat> 8278 -2F8C <compat> 864D -2F8D <compat> 866B -2F8E <compat> 8840 -2F8F <compat> 884C -2F90 <compat> 8863 -2F91 <compat> 897E -2F92 <compat> 898B -2F93 <compat> 89D2 -2F94 <compat> 8A00 -2F95 <compat> 8C37 -2F96 <compat> 8C46 -2F97 <compat> 8C55 -2F98 <compat> 8C78 -2F99 <compat> 8C9D -2F9A <compat> 8D64 -2F9B <compat> 8D70 -2F9C <compat> 8DB3 -2F9D <compat> 8EAB -2F9E <compat> 8ECA -2F9F <compat> 8F9B -2FA0 <compat> 8FB0 -2FA1 <compat> 8FB5 -2FA2 <compat> 9091 -2FA3 <compat> 9149 -2FA4 <compat> 91C6 -2FA5 <compat> 91CC -2FA6 <compat> 91D1 -2FA7 <compat> 9577 -2FA8 <compat> 9580 -2FA9 <compat> 961C -2FAA <compat> 96B6 -2FAB <compat> 96B9 -2FAC <compat> 96E8 -2FAD <compat> 9751 -2FAE <compat> 975E -2FAF <compat> 9762 -2FB0 <compat> 9769 -2FB1 <compat> 97CB -2FB2 <compat> 97ED -2FB3 <compat> 97F3 -2FB4 <compat> 9801 -2FB5 <compat> 98A8 -2FB6 <compat> 98DB -2FB7 <compat> 98DF -2FB8 <compat> 9996 -2FB9 <compat> 9999 -2FBA <compat> 99AC -2FBB <compat> 9AA8 -2FBC <compat> 9AD8 -2FBD <compat> 9ADF -2FBE <compat> 9B25 -2FBF <compat> 9B2F -2FC0 <compat> 9B32 -2FC1 <compat> 9B3C -2FC2 <compat> 9B5A -2FC3 <compat> 9CE5 -2FC4 <compat> 9E75 -2FC5 <compat> 9E7F -2FC6 <compat> 9EA5 -2FC7 <compat> 9EBB -2FC8 <compat> 9EC3 -2FC9 <compat> 9ECD -2FCA <compat> 9ED1 -2FCB <compat> 9EF9 -2FCC <compat> 9EFD -2FCD <compat> 9F0E -2FCE <compat> 9F13 -2FCF <compat> 9F20 -2FD0 <compat> 9F3B -2FD1 <compat> 9F4A -2FD2 <compat> 9F52 -2FD3 <compat> 9F8D -2FD4 <compat> 9F9C -2FD5 <compat> 9FA0 -3000 <wide> 0020 -3036 <compat> 3012 -3038 <compat> 5341 -3039 <compat> 5344 -303A <compat> 5345 -304C 304B 3099 -304E 304D 3099 -3050 304F 3099 -3052 3051 3099 -3054 3053 3099 -3056 3055 3099 -3058 3057 3099 -305A 3059 3099 -305C 305B 3099 -305E 305D 3099 -3060 305F 3099 -3062 3061 3099 -3065 3064 3099 -3067 3066 3099 -3069 3068 3099 -3070 306F 3099 -3071 306F 309A -3073 3072 3099 -3074 3072 309A -3076 3075 3099 -3077 3075 309A -3079 3078 3099 -307A 3078 309A -307C 307B 3099 -307D 307B 309A -3094 3046 3099 -309B <compat> 0020 3099 -309C <compat> 0020 309A -309E 309D 3099 -309F <vertical> 3088 308A -30AC 30AB 3099 -30AE 30AD 3099 -30B0 30AF 3099 -30B2 30B1 3099 -30B4 30B3 3099 -30B6 30B5 3099 -30B8 30B7 3099 -30BA 30B9 3099 -30BC 30BB 3099 -30BE 30BD 3099 -30C0 30BF 3099 -30C2 30C1 3099 -30C5 30C4 3099 -30C7 30C6 3099 -30C9 30C8 3099 -30D0 30CF 3099 -30D1 30CF 309A -30D3 30D2 3099 -30D4 30D2 309A -30D6 30D5 3099 -30D7 30D5 309A -30D9 30D8 3099 -30DA 30D8 309A -30DC 30DB 3099 -30DD 30DB 309A -30F4 30A6 3099 -30F7 30EF 3099 -30F8 30F0 3099 -30F9 30F1 3099 -30FA 30F2 3099 -30FE 30FD 3099 -30FF <vertical> 30B3 30C8 -3131 <compat> 1100 -3132 <compat> 1101 -3133 <compat> 11AA -3134 <compat> 1102 -3135 <compat> 11AC -3136 <compat> 11AD -3137 <compat> 1103 -3138 <compat> 1104 -3139 <compat> 1105 -313A <compat> 11B0 -313B <compat> 11B1 -313C <compat> 11B2 -313D <compat> 11B3 -313E <compat> 11B4 -313F <compat> 11B5 -3140 <compat> 111A -3141 <compat> 1106 -3142 <compat> 1107 -3143 <compat> 1108 -3144 <compat> 1121 -3145 <compat> 1109 -3146 <compat> 110A -3147 <compat> 110B -3148 <compat> 110C -3149 <compat> 110D -314A <compat> 110E -314B <compat> 110F -314C <compat> 1110 -314D <compat> 1111 -314E <compat> 1112 -314F <compat> 1161 -3150 <compat> 1162 -3151 <compat> 1163 -3152 <compat> 1164 -3153 <compat> 1165 -3154 <compat> 1166 -3155 <compat> 1167 -3156 <compat> 1168 -3157 <compat> 1169 -3158 <compat> 116A -3159 <compat> 116B -315A <compat> 116C -315B <compat> 116D -315C <compat> 116E -315D <compat> 116F -315E <compat> 1170 -315F <compat> 1171 -3160 <compat> 1172 -3161 <compat> 1173 -3162 <compat> 1174 -3163 <compat> 1175 -3164 <compat> 1160 -3165 <compat> 1114 -3166 <compat> 1115 -3167 <compat> 11C7 -3168 <compat> 11C8 -3169 <compat> 11CC -316A <compat> 11CE -316B <compat> 11D3 -316C <compat> 11D7 -316D <compat> 11D9 -316E <compat> 111C -316F <compat> 11DD -3170 <compat> 11DF -3171 <compat> 111D -3172 <compat> 111E -3173 <compat> 1120 -3174 <compat> 1122 -3175 <compat> 1123 -3176 <compat> 1127 -3177 <compat> 1129 -3178 <compat> 112B -3179 <compat> 112C -317A <compat> 112D -317B <compat> 112E -317C <compat> 112F -317D <compat> 1132 -317E <compat> 1136 -317F <compat> 1140 -3180 <compat> 1147 -3181 <compat> 114C -3182 <compat> 11F1 -3183 <compat> 11F2 -3184 <compat> 1157 -3185 <compat> 1158 -3186 <compat> 1159 -3187 <compat> 1184 -3188 <compat> 1185 -3189 <compat> 1188 -318A <compat> 1191 -318B <compat> 1192 -318C <compat> 1194 -318D <compat> 119E -318E <compat> 11A1 -3192 <super> 4E00 -3193 <super> 4E8C -3194 <super> 4E09 -3195 <super> 56DB -3196 <super> 4E0A -3197 <super> 4E2D -3198 <super> 4E0B -3199 <super> 7532 -319A <super> 4E59 -319B <super> 4E19 -319C <super> 4E01 -319D <super> 5929 -319E <super> 5730 -319F <super> 4EBA -3200 <compat> 0028 1100 0029 -3201 <compat> 0028 1102 0029 -3202 <compat> 0028 1103 0029 -3203 <compat> 0028 1105 0029 -3204 <compat> 0028 1106 0029 -3205 <compat> 0028 1107 0029 -3206 <compat> 0028 1109 0029 -3207 <compat> 0028 110B 0029 -3208 <compat> 0028 110C 0029 -3209 <compat> 0028 110E 0029 -320A <compat> 0028 110F 0029 -320B <compat> 0028 1110 0029 -320C <compat> 0028 1111 0029 -320D <compat> 0028 1112 0029 -320E <compat> 0028 1100 1161 0029 -320F <compat> 0028 1102 1161 0029 -3210 <compat> 0028 1103 1161 0029 -3211 <compat> 0028 1105 1161 0029 -3212 <compat> 0028 1106 1161 0029 -3213 <compat> 0028 1107 1161 0029 -3214 <compat> 0028 1109 1161 0029 -3215 <compat> 0028 110B 1161 0029 -3216 <compat> 0028 110C 1161 0029 -3217 <compat> 0028 110E 1161 0029 -3218 <compat> 0028 110F 1161 0029 -3219 <compat> 0028 1110 1161 0029 -321A <compat> 0028 1111 1161 0029 -321B <compat> 0028 1112 1161 0029 -321C <compat> 0028 110C 116E 0029 -3220 <compat> 0028 4E00 0029 -3221 <compat> 0028 4E8C 0029 -3222 <compat> 0028 4E09 0029 -3223 <compat> 0028 56DB 0029 -3224 <compat> 0028 4E94 0029 -3225 <compat> 0028 516D 0029 -3226 <compat> 0028 4E03 0029 -3227 <compat> 0028 516B 0029 -3228 <compat> 0028 4E5D 0029 -3229 <compat> 0028 5341 0029 -322A <compat> 0028 6708 0029 -322B <compat> 0028 706B 0029 -322C <compat> 0028 6C34 0029 -322D <compat> 0028 6728 0029 -322E <compat> 0028 91D1 0029 -322F <compat> 0028 571F 0029 -3230 <compat> 0028 65E5 0029 -3231 <compat> 0028 682A 0029 -3232 <compat> 0028 6709 0029 -3233 <compat> 0028 793E 0029 -3234 <compat> 0028 540D 0029 -3235 <compat> 0028 7279 0029 -3236 <compat> 0028 8CA1 0029 -3237 <compat> 0028 795D 0029 -3238 <compat> 0028 52B4 0029 -3239 <compat> 0028 4EE3 0029 -323A <compat> 0028 547C 0029 -323B <compat> 0028 5B66 0029 -323C <compat> 0028 76E3 0029 -323D <compat> 0028 4F01 0029 -323E <compat> 0028 8CC7 0029 -323F <compat> 0028 5354 0029 -3240 <compat> 0028 796D 0029 -3241 <compat> 0028 4F11 0029 -3242 <compat> 0028 81EA 0029 -3243 <compat> 0028 81F3 0029 -3251 <circle> 0032 0031 -3252 <circle> 0032 0032 -3253 <circle> 0032 0033 -3254 <circle> 0032 0034 -3255 <circle> 0032 0035 -3256 <circle> 0032 0036 -3257 <circle> 0032 0037 -3258 <circle> 0032 0038 -3259 <circle> 0032 0039 -325A <circle> 0033 0030 -325B <circle> 0033 0031 -325C <circle> 0033 0032 -325D <circle> 0033 0033 -325E <circle> 0033 0034 -325F <circle> 0033 0035 -3260 <circle> 1100 -3261 <circle> 1102 -3262 <circle> 1103 -3263 <circle> 1105 -3264 <circle> 1106 -3265 <circle> 1107 -3266 <circle> 1109 -3267 <circle> 110B -3268 <circle> 110C -3269 <circle> 110E -326A <circle> 110F -326B <circle> 1110 -326C <circle> 1111 -326D <circle> 1112 -326E <circle> 1100 1161 -326F <circle> 1102 1161 -3270 <circle> 1103 1161 -3271 <circle> 1105 1161 -3272 <circle> 1106 1161 -3273 <circle> 1107 1161 -3274 <circle> 1109 1161 -3275 <circle> 110B 1161 -3276 <circle> 110C 1161 -3277 <circle> 110E 1161 -3278 <circle> 110F 1161 -3279 <circle> 1110 1161 -327A <circle> 1111 1161 -327B <circle> 1112 1161 -3280 <circle> 4E00 -3281 <circle> 4E8C -3282 <circle> 4E09 -3283 <circle> 56DB -3284 <circle> 4E94 -3285 <circle> 516D -3286 <circle> 4E03 -3287 <circle> 516B -3288 <circle> 4E5D -3289 <circle> 5341 -328A <circle> 6708 -328B <circle> 706B -328C <circle> 6C34 -328D <circle> 6728 -328E <circle> 91D1 -328F <circle> 571F -3290 <circle> 65E5 -3291 <circle> 682A -3292 <circle> 6709 -3293 <circle> 793E -3294 <circle> 540D -3295 <circle> 7279 -3296 <circle> 8CA1 -3297 <circle> 795D -3298 <circle> 52B4 -3299 <circle> 79D8 -329A <circle> 7537 -329B <circle> 5973 -329C <circle> 9069 -329D <circle> 512A -329E <circle> 5370 -329F <circle> 6CE8 -32A0 <circle> 9805 -32A1 <circle> 4F11 -32A2 <circle> 5199 -32A3 <circle> 6B63 -32A4 <circle> 4E0A -32A5 <circle> 4E2D -32A6 <circle> 4E0B -32A7 <circle> 5DE6 -32A8 <circle> 53F3 -32A9 <circle> 533B -32AA <circle> 5B97 -32AB <circle> 5B66 -32AC <circle> 76E3 -32AD <circle> 4F01 -32AE <circle> 8CC7 -32AF <circle> 5354 -32B0 <circle> 591C -32B1 <circle> 0033 0036 -32B2 <circle> 0033 0037 -32B3 <circle> 0033 0038 -32B4 <circle> 0033 0039 -32B5 <circle> 0034 0030 -32B6 <circle> 0034 0031 -32B7 <circle> 0034 0032 -32B8 <circle> 0034 0033 -32B9 <circle> 0034 0034 -32BA <circle> 0034 0035 -32BB <circle> 0034 0036 -32BC <circle> 0034 0037 -32BD <circle> 0034 0038 -32BE <circle> 0034 0039 -32BF <circle> 0035 0030 -32C0 <compat> 0031 6708 -32C1 <compat> 0032 6708 -32C2 <compat> 0033 6708 -32C3 <compat> 0034 6708 -32C4 <compat> 0035 6708 -32C5 <compat> 0036 6708 -32C6 <compat> 0037 6708 -32C7 <compat> 0038 6708 -32C8 <compat> 0039 6708 -32C9 <compat> 0031 0030 6708 -32CA <compat> 0031 0031 6708 -32CB <compat> 0031 0032 6708 -32D0 <circle> 30A2 -32D1 <circle> 30A4 -32D2 <circle> 30A6 -32D3 <circle> 30A8 -32D4 <circle> 30AA -32D5 <circle> 30AB -32D6 <circle> 30AD -32D7 <circle> 30AF -32D8 <circle> 30B1 -32D9 <circle> 30B3 -32DA <circle> 30B5 -32DB <circle> 30B7 -32DC <circle> 30B9 -32DD <circle> 30BB -32DE <circle> 30BD -32DF <circle> 30BF -32E0 <circle> 30C1 -32E1 <circle> 30C4 -32E2 <circle> 30C6 -32E3 <circle> 30C8 -32E4 <circle> 30CA -32E5 <circle> 30CB -32E6 <circle> 30CC -32E7 <circle> 30CD -32E8 <circle> 30CE -32E9 <circle> 30CF -32EA <circle> 30D2 -32EB <circle> 30D5 -32EC <circle> 30D8 -32ED <circle> 30DB -32EE <circle> 30DE -32EF <circle> 30DF -32F0 <circle> 30E0 -32F1 <circle> 30E1 -32F2 <circle> 30E2 -32F3 <circle> 30E4 -32F4 <circle> 30E6 -32F5 <circle> 30E8 -32F6 <circle> 30E9 -32F7 <circle> 30EA -32F8 <circle> 30EB -32F9 <circle> 30EC -32FA <circle> 30ED -32FB <circle> 30EF -32FC <circle> 30F0 -32FD <circle> 30F1 -32FE <circle> 30F2 -3300 <square> 30A2 30D1 30FC 30C8 -3301 <square> 30A2 30EB 30D5 30A1 -3302 <square> 30A2 30F3 30DA 30A2 -3303 <square> 30A2 30FC 30EB -3304 <square> 30A4 30CB 30F3 30B0 -3305 <square> 30A4 30F3 30C1 -3306 <square> 30A6 30A9 30F3 -3307 <square> 30A8 30B9 30AF 30FC 30C9 -3308 <square> 30A8 30FC 30AB 30FC -3309 <square> 30AA 30F3 30B9 -330A <square> 30AA 30FC 30E0 -330B <square> 30AB 30A4 30EA -330C <square> 30AB 30E9 30C3 30C8 -330D <square> 30AB 30ED 30EA 30FC -330E <square> 30AC 30ED 30F3 -330F <square> 30AC 30F3 30DE -3310 <square> 30AE 30AC -3311 <square> 30AE 30CB 30FC -3312 <square> 30AD 30E5 30EA 30FC -3313 <square> 30AE 30EB 30C0 30FC -3314 <square> 30AD 30ED -3315 <square> 30AD 30ED 30B0 30E9 30E0 -3316 <square> 30AD 30ED 30E1 30FC 30C8 30EB -3317 <square> 30AD 30ED 30EF 30C3 30C8 -3318 <square> 30B0 30E9 30E0 -3319 <square> 30B0 30E9 30E0 30C8 30F3 -331A <square> 30AF 30EB 30BC 30A4 30ED -331B <square> 30AF 30ED 30FC 30CD -331C <square> 30B1 30FC 30B9 -331D <square> 30B3 30EB 30CA -331E <square> 30B3 30FC 30DD -331F <square> 30B5 30A4 30AF 30EB -3320 <square> 30B5 30F3 30C1 30FC 30E0 -3321 <square> 30B7 30EA 30F3 30B0 -3322 <square> 30BB 30F3 30C1 -3323 <square> 30BB 30F3 30C8 -3324 <square> 30C0 30FC 30B9 -3325 <square> 30C7 30B7 -3326 <square> 30C9 30EB -3327 <square> 30C8 30F3 -3328 <square> 30CA 30CE -3329 <square> 30CE 30C3 30C8 -332A <square> 30CF 30A4 30C4 -332B <square> 30D1 30FC 30BB 30F3 30C8 -332C <square> 30D1 30FC 30C4 -332D <square> 30D0 30FC 30EC 30EB -332E <square> 30D4 30A2 30B9 30C8 30EB -332F <square> 30D4 30AF 30EB -3330 <square> 30D4 30B3 -3331 <square> 30D3 30EB -3332 <square> 30D5 30A1 30E9 30C3 30C9 -3333 <square> 30D5 30A3 30FC 30C8 -3334 <square> 30D6 30C3 30B7 30A7 30EB -3335 <square> 30D5 30E9 30F3 -3336 <square> 30D8 30AF 30BF 30FC 30EB -3337 <square> 30DA 30BD -3338 <square> 30DA 30CB 30D2 -3339 <square> 30D8 30EB 30C4 -333A <square> 30DA 30F3 30B9 -333B <square> 30DA 30FC 30B8 -333C <square> 30D9 30FC 30BF -333D <square> 30DD 30A4 30F3 30C8 -333E <square> 30DC 30EB 30C8 -333F <square> 30DB 30F3 -3340 <square> 30DD 30F3 30C9 -3341 <square> 30DB 30FC 30EB -3342 <square> 30DB 30FC 30F3 -3343 <square> 30DE 30A4 30AF 30ED -3344 <square> 30DE 30A4 30EB -3345 <square> 30DE 30C3 30CF -3346 <square> 30DE 30EB 30AF -3347 <square> 30DE 30F3 30B7 30E7 30F3 -3348 <square> 30DF 30AF 30ED 30F3 -3349 <square> 30DF 30EA -334A <square> 30DF 30EA 30D0 30FC 30EB -334B <square> 30E1 30AC -334C <square> 30E1 30AC 30C8 30F3 -334D <square> 30E1 30FC 30C8 30EB -334E <square> 30E4 30FC 30C9 -334F <square> 30E4 30FC 30EB -3350 <square> 30E6 30A2 30F3 -3351 <square> 30EA 30C3 30C8 30EB -3352 <square> 30EA 30E9 -3353 <square> 30EB 30D4 30FC -3354 <square> 30EB 30FC 30D6 30EB -3355 <square> 30EC 30E0 -3356 <square> 30EC 30F3 30C8 30B2 30F3 -3357 <square> 30EF 30C3 30C8 -3358 <compat> 0030 70B9 -3359 <compat> 0031 70B9 -335A <compat> 0032 70B9 -335B <compat> 0033 70B9 -335C <compat> 0034 70B9 -335D <compat> 0035 70B9 -335E <compat> 0036 70B9 -335F <compat> 0037 70B9 -3360 <compat> 0038 70B9 -3361 <compat> 0039 70B9 -3362 <compat> 0031 0030 70B9 -3363 <compat> 0031 0031 70B9 -3364 <compat> 0031 0032 70B9 -3365 <compat> 0031 0033 70B9 -3366 <compat> 0031 0034 70B9 -3367 <compat> 0031 0035 70B9 -3368 <compat> 0031 0036 70B9 -3369 <compat> 0031 0037 70B9 -336A <compat> 0031 0038 70B9 -336B <compat> 0031 0039 70B9 -336C <compat> 0032 0030 70B9 -336D <compat> 0032 0031 70B9 -336E <compat> 0032 0032 70B9 -336F <compat> 0032 0033 70B9 -3370 <compat> 0032 0034 70B9 -3371 <square> 0068 0050 0061 -3372 <square> 0064 0061 -3373 <square> 0041 0055 -3374 <square> 0062 0061 0072 -3375 <square> 006F 0056 -3376 <square> 0070 0063 -337B <square> 5E73 6210 -337C <square> 662D 548C -337D <square> 5927 6B63 -337E <square> 660E 6CBB -337F <square> 682A 5F0F 4F1A 793E -3380 <square> 0070 0041 -3381 <square> 006E 0041 -3382 <square> 03BC 0041 -3383 <square> 006D 0041 -3384 <square> 006B 0041 -3385 <square> 004B 0042 -3386 <square> 004D 0042 -3387 <square> 0047 0042 -3388 <square> 0063 0061 006C -3389 <square> 006B 0063 0061 006C -338A <square> 0070 0046 -338B <square> 006E 0046 -338C <square> 03BC 0046 -338D <square> 03BC 0067 -338E <square> 006D 0067 -338F <square> 006B 0067 -3390 <square> 0048 007A -3391 <square> 006B 0048 007A -3392 <square> 004D 0048 007A -3393 <square> 0047 0048 007A -3394 <square> 0054 0048 007A -3395 <square> 03BC 2113 -3396 <square> 006D 2113 -3397 <square> 0064 2113 -3398 <square> 006B 2113 -3399 <square> 0066 006D -339A <square> 006E 006D -339B <square> 03BC 006D -339C <square> 006D 006D -339D <square> 0063 006D -339E <square> 006B 006D -339F <square> 006D 006D 00B2 -33A0 <square> 0063 006D 00B2 -33A1 <square> 006D 00B2 -33A2 <square> 006B 006D 00B2 -33A3 <square> 006D 006D 00B3 -33A4 <square> 0063 006D 00B3 -33A5 <square> 006D 00B3 -33A6 <square> 006B 006D 00B3 -33A7 <square> 006D 2215 0073 -33A8 <square> 006D 2215 0073 00B2 -33A9 <square> 0050 0061 -33AA <square> 006B 0050 0061 -33AB <square> 004D 0050 0061 -33AC <square> 0047 0050 0061 -33AD <square> 0072 0061 0064 -33AE <square> 0072 0061 0064 2215 0073 -33AF <square> 0072 0061 0064 2215 0073 00B2 -33B0 <square> 0070 0073 -33B1 <square> 006E 0073 -33B2 <square> 03BC 0073 -33B3 <square> 006D 0073 -33B4 <square> 0070 0056 -33B5 <square> 006E 0056 -33B6 <square> 03BC 0056 -33B7 <square> 006D 0056 -33B8 <square> 006B 0056 -33B9 <square> 004D 0056 -33BA <square> 0070 0057 -33BB <square> 006E 0057 -33BC <square> 03BC 0057 -33BD <square> 006D 0057 -33BE <square> 006B 0057 -33BF <square> 004D 0057 -33C0 <square> 006B 03A9 -33C1 <square> 004D 03A9 -33C2 <square> 0061 002E 006D 002E -33C3 <square> 0042 0071 -33C4 <square> 0063 0063 -33C5 <square> 0063 0064 -33C6 <square> 0043 2215 006B 0067 -33C7 <square> 0043 006F 002E -33C8 <square> 0064 0042 -33C9 <square> 0047 0079 -33CA <square> 0068 0061 -33CB <square> 0048 0050 -33CC <square> 0069 006E -33CD <square> 004B 004B -33CE <square> 004B 004D -33CF <square> 006B 0074 -33D0 <square> 006C 006D -33D1 <square> 006C 006E -33D2 <square> 006C 006F 0067 -33D3 <square> 006C 0078 -33D4 <square> 006D 0062 -33D5 <square> 006D 0069 006C -33D6 <square> 006D 006F 006C -33D7 <square> 0050 0048 -33D8 <square> 0070 002E 006D 002E -33D9 <square> 0050 0050 004D -33DA <square> 0050 0052 -33DB <square> 0073 0072 -33DC <square> 0053 0076 -33DD <square> 0057 0062 -33E0 <compat> 0031 65E5 -33E1 <compat> 0032 65E5 -33E2 <compat> 0033 65E5 -33E3 <compat> 0034 65E5 -33E4 <compat> 0035 65E5 -33E5 <compat> 0036 65E5 -33E6 <compat> 0037 65E5 -33E7 <compat> 0038 65E5 -33E8 <compat> 0039 65E5 -33E9 <compat> 0031 0030 65E5 -33EA <compat> 0031 0031 65E5 -33EB <compat> 0031 0032 65E5 -33EC <compat> 0031 0033 65E5 -33ED <compat> 0031 0034 65E5 -33EE <compat> 0031 0035 65E5 -33EF <compat> 0031 0036 65E5 -33F0 <compat> 0031 0037 65E5 -33F1 <compat> 0031 0038 65E5 -33F2 <compat> 0031 0039 65E5 -33F3 <compat> 0032 0030 65E5 -33F4 <compat> 0032 0031 65E5 -33F5 <compat> 0032 0032 65E5 -33F6 <compat> 0032 0033 65E5 -33F7 <compat> 0032 0034 65E5 -33F8 <compat> 0032 0035 65E5 -33F9 <compat> 0032 0036 65E5 -33FA <compat> 0032 0037 65E5 -33FB <compat> 0032 0038 65E5 -33FC <compat> 0032 0039 65E5 -33FD <compat> 0033 0030 65E5 -33FE <compat> 0033 0031 65E5 -F900 8C48 -F901 66F4 -F902 8ECA -F903 8CC8 -F904 6ED1 -F905 4E32 -F906 53E5 -F907 F908 9F9C -F909 5951 -F90A 91D1 -F90B 5587 -F90C 5948 -F90D 61F6 -F90E 7669 -F90F 7F85 -F910 863F -F911 87BA -F912 88F8 -F913 908F -F914 6A02 -F915 6D1B -F916 70D9 -F917 73DE -F918 843D -F919 916A -F91A 99F1 -F91B 4E82 -F91C 5375 -F91D 6B04 -F91E 721B -F91F 862D -F920 9E1E -F921 5D50 -F922 6FEB -F923 85CD -F924 8964 -F925 62C9 -F926 81D8 -F927 881F -F928 5ECA -F929 6717 -F92A 6D6A -F92B 72FC -F92C 90CE -F92D 4F86 -F92E 51B7 -F92F 52DE -F930 64C4 -F931 6AD3 -F932 7210 -F933 76E7 -F934 8001 -F935 8606 -F936 865C -F937 8DEF -F938 9732 -F939 9B6F -F93A 9DFA -F93B 788C -F93C 797F -F93D 7DA0 -F93E 83C9 -F93F 9304 -F940 9E7F -F941 8AD6 -F942 58DF -F943 5F04 -F944 7C60 -F945 807E -F946 7262 -F947 78CA -F948 8CC2 -F949 96F7 -F94A 58D8 -F94B 5C62 -F94C 6A13 -F94D 6DDA -F94E 6F0F -F94F 7D2F -F950 7E37 -F951 964B -F952 52D2 -F953 808B -F954 51DC -F955 51CC -F956 7A1C -F957 7DBE -F958 83F1 -F959 9675 -F95A 8B80 -F95B 62CF -F95C 6A02 -F95D 8AFE -F95E 4E39 -F95F 5BE7 -F960 6012 -F961 7387 -F962 7570 -F963 5317 -F964 78FB -F965 4FBF -F966 5FA9 -F967 4E0D -F968 6CCC -F969 6578 -F96A 7D22 -F96B 53C3 -F96C 585E -F96D 7701 -F96E 8449 -F96F 8AAA -F970 6BBA -F971 8FB0 -F972 6C88 -F973 62FE -F974 82E5 -F975 63A0 -F976 7565 -F977 4EAE -F978 5169 -F979 51C9 -F97A 6881 -F97B 7CE7 -F97C 826F -F97D 8AD2 -F97E 91CF -F97F 52F5 -F980 5442 -F981 5973 -F982 5EEC -F983 65C5 -F984 6FFE -F985 792A -F986 95AD -F987 9A6A -F988 9E97 -F989 9ECE -F98A 529B -F98B 66C6 -F98C 6B77 -F98D 8F62 -F98E 5E74 -F98F 6190 -F990 6200 -F991 649A -F992 6F23 -F993 7149 -F994 7489 -F995 79CA -F996 7DF4 -F997 806F -F998 8F26 -F999 84EE -F99A 9023 -F99B 934A -F99C 5217 -F99D 52A3 -F99E 54BD -F99F 70C8 -F9A0 88C2 -F9A1 8AAA -F9A2 5EC9 -F9A3 5FF5 -F9A4 637B -F9A5 6BAE -F9A6 7C3E -F9A7 7375 -F9A8 4EE4 -F9A9 56F9 -F9AA 5BE7 -F9AB 5DBA -F9AC 601C -F9AD 73B2 -F9AE 7469 -F9AF 7F9A -F9B0 8046 -F9B1 9234 -F9B2 96F6 -F9B3 9748 -F9B4 9818 -F9B5 4F8B -F9B6 79AE -F9B7 91B4 -F9B8 96B8 -F9B9 60E1 -F9BA 4E86 -F9BB 50DA -F9BC 5BEE -F9BD 5C3F -F9BE 6599 -F9BF 6A02 -F9C0 71CE -F9C1 7642 -F9C2 84FC -F9C3 907C -F9C4 9F8D -F9C5 6688 -F9C6 962E -F9C7 5289 -F9C8 677B -F9C9 67F3 -F9CA 6D41 -F9CB 6E9C -F9CC 7409 -F9CD 7559 -F9CE 786B -F9CF 7D10 -F9D0 985E -F9D1 516D -F9D2 622E -F9D3 9678 -F9D4 502B -F9D5 5D19 -F9D6 6DEA -F9D7 8F2A -F9D8 5F8B -F9D9 6144 -F9DA 6817 -F9DB 7387 -F9DC 9686 -F9DD 5229 -F9DE 540F -F9DF 5C65 -F9E0 6613 -F9E1 674E -F9E2 68A8 -F9E3 6CE5 -F9E4 7406 -F9E5 75E2 -F9E6 7F79 -F9E7 88CF -F9E8 88E1 -F9E9 91CC -F9EA 96E2 -F9EB 533F -F9EC 6EBA -F9ED 541D -F9EE 71D0 -F9EF 7498 -F9F0 85FA -F9F1 96A3 -F9F2 9C57 -F9F3 9E9F -F9F4 6797 -F9F5 6DCB -F9F6 81E8 -F9F7 7ACB -F9F8 7B20 -F9F9 7C92 -F9FA 72C0 -F9FB 7099 -F9FC 8B58 -F9FD 4EC0 -F9FE 8336 -F9FF 523A -FA00 5207 -FA01 5EA6 -FA02 62D3 -FA03 7CD6 -FA04 5B85 -FA05 6D1E -FA06 66B4 -FA07 8F3B -FA08 884C -FA09 964D -FA0A 898B -FA0B 5ED3 -FA0C 5140 -FA0D 55C0 -FA10 585A -FA12 6674 -FA15 51DE -FA16 732A -FA17 76CA -FA18 793C -FA19 795E -FA1A 7965 -FA1B 798F -FA1C 9756 -FA1D 7CBE -FA1E 7FBD -FA20 8612 -FA22 8AF8 -FA25 9038 -FA26 90FD -FA2A 98EF -FA2B 98FC -FA2C 9928 -FA2D 9DB4 -FA30 4FAE -FA31 50E7 -FA32 514D -FA33 52C9 -FA34 52E4 -FA35 5351 -FA36 559D -FA37 5606 -FA38 5668 -FA39 5840 -FA3A 58A8 -FA3B 5C64 -FA3C 5C6E -FA3D 6094 -FA3E 6168 -FA3F 618E -FA40 61F2 -FA41 654F -FA42 65E2 -FA43 6691 -FA44 6885 -FA45 6D77 -FA46 6E1A -FA47 6F22 -FA48 716E -FA49 722B -FA4A 7422 -FA4B 7891 -FA4C 793E -FA4D 7949 -FA4E 7948 -FA4F 7950 -FA50 7956 -FA51 795D -FA52 798D -FA53 798E -FA54 7A40 -FA55 7A81 -FA56 7BC0 -FA57 7DF4 -FA58 7E09 -FA59 7E41 -FA5A 7F72 -FA5B 8005 -FA5C 81ED -FA5D FA5E 8279 -FA5F 8457 -FA60 8910 -FA61 8996 -FA62 8B01 -FA63 8B39 -FA64 8CD3 -FA65 8D08 -FA66 8FB6 -FA67 9038 -FA68 96E3 -FA69 97FF -FA6A 983B -FB00 <compat> 0066 0066 -FB01 <compat> 0066 0069 -FB02 <compat> 0066 006C -FB03 <compat> 0066 0066 0069 -FB04 <compat> 0066 0066 006C -FB05 <compat> 017F 0074 -FB06 <compat> 0073 0074 -FB13 <compat> 0574 0576 -FB14 <compat> 0574 0565 -FB15 <compat> 0574 056B -FB16 <compat> 057E 0576 -FB17 <compat> 0574 056D -FB1D 05D9 05B4 -FB1F 05F2 05B7 -FB20 <font> 05E2 -FB21 <font> 05D0 -FB22 <font> 05D3 -FB23 <font> 05D4 -FB24 <font> 05DB -FB25 <font> 05DC -FB26 <font> 05DD -FB27 <font> 05E8 -FB28 <font> 05EA -FB29 <font> 002B -FB2A 05E9 05C1 -FB2B 05E9 05C2 -FB2C FB49 05C1 -FB2D FB49 05C2 -FB2E 05D0 05B7 -FB2F 05D0 05B8 -FB30 05D0 05BC -FB31 05D1 05BC -FB32 05D2 05BC -FB33 05D3 05BC -FB34 05D4 05BC -FB35 05D5 05BC -FB36 05D6 05BC -FB38 05D8 05BC -FB39 05D9 05BC -FB3A 05DA 05BC -FB3B 05DB 05BC -FB3C 05DC 05BC -FB3E 05DE 05BC -FB40 05E0 05BC -FB41 05E1 05BC -FB43 05E3 05BC -FB44 05E4 05BC -FB46 05E6 05BC -FB47 05E7 05BC -FB48 05E8 05BC -FB49 05E9 05BC -FB4A 05EA 05BC -FB4B 05D5 05B9 -FB4C 05D1 05BF -FB4D 05DB 05BF -FB4E 05E4 05BF -FB4F <compat> 05D0 05DC -FB50 <isolated> 0671 -FB51 <final> 0671 -FB52 <isolated> 067B -FB53 <final> 067B -FB54 <initial> 067B -FB55 <medial> 067B -FB56 <isolated> 067E -FB57 <final> 067E -FB58 <initial> 067E -FB59 <medial> 067E -FB5A <isolated> 0680 -FB5B <final> 0680 -FB5C <initial> 0680 -FB5D <medial> 0680 -FB5E <isolated> 067A -FB5F <final> 067A -FB60 <initial> 067A -FB61 <medial> 067A -FB62 <isolated> 067F -FB63 <final> 067F -FB64 <initial> 067F -FB65 <medial> 067F -FB66 <isolated> 0679 -FB67 <final> 0679 -FB68 <initial> 0679 -FB69 <medial> 0679 -FB6A <isolated> 06A4 -FB6B <final> 06A4 -FB6C <initial> 06A4 -FB6D <medial> 06A4 -FB6E <isolated> 06A6 -FB6F <final> 06A6 -FB70 <initial> 06A6 -FB71 <medial> 06A6 -FB72 <isolated> 0684 -FB73 <final> 0684 -FB74 <initial> 0684 -FB75 <medial> 0684 -FB76 <isolated> 0683 -FB77 <final> 0683 -FB78 <initial> 0683 -FB79 <medial> 0683 -FB7A <isolated> 0686 -FB7B <final> 0686 -FB7C <initial> 0686 -FB7D <medial> 0686 -FB7E <isolated> 0687 -FB7F <final> 0687 -FB80 <initial> 0687 -FB81 <medial> 0687 -FB82 <isolated> 068D -FB83 <final> 068D -FB84 <isolated> 068C -FB85 <final> 068C -FB86 <isolated> 068E -FB87 <final> 068E -FB88 <isolated> 0688 -FB89 <final> 0688 -FB8A <isolated> 0698 -FB8B <final> 0698 -FB8C <isolated> 0691 -FB8D <final> 0691 -FB8E <isolated> 06A9 -FB8F <final> 06A9 -FB90 <initial> 06A9 -FB91 <medial> 06A9 -FB92 <isolated> 06AF -FB93 <final> 06AF -FB94 <initial> 06AF -FB95 <medial> 06AF -FB96 <isolated> 06B3 -FB97 <final> 06B3 -FB98 <initial> 06B3 -FB99 <medial> 06B3 -FB9A <isolated> 06B1 -FB9B <final> 06B1 -FB9C <initial> 06B1 -FB9D <medial> 06B1 -FB9E <isolated> 06BA -FB9F <final> 06BA -FBA0 <isolated> 06BB -FBA1 <final> 06BB -FBA2 <initial> 06BB -FBA3 <medial> 06BB -FBA4 <isolated> 06C0 -FBA5 <final> 06C0 -FBA6 <isolated> 06C1 -FBA7 <final> 06C1 -FBA8 <initial> 06C1 -FBA9 <medial> 06C1 -FBAA <isolated> 06BE -FBAB <final> 06BE -FBAC <initial> 06BE -FBAD <medial> 06BE -FBAE <isolated> 06D2 -FBAF <final> 06D2 -FBB0 <isolated> 06D3 -FBB1 <final> 06D3 -FBD3 <isolated> 06AD -FBD4 <final> 06AD -FBD5 <initial> 06AD -FBD6 <medial> 06AD -FBD7 <isolated> 06C7 -FBD8 <final> 06C7 -FBD9 <isolated> 06C6 -FBDA <final> 06C6 -FBDB <isolated> 06C8 -FBDC <final> 06C8 -FBDD <isolated> 0677 -FBDE <isolated> 06CB -FBDF <final> 06CB -FBE0 <isolated> 06C5 -FBE1 <final> 06C5 -FBE2 <isolated> 06C9 -FBE3 <final> 06C9 -FBE4 <isolated> 06D0 -FBE5 <final> 06D0 -FBE6 <initial> 06D0 -FBE7 <medial> 06D0 -FBE8 <initial> 0649 -FBE9 <medial> 0649 -FBEA <isolated> 0626 0627 -FBEB <final> 0626 0627 -FBEC <isolated> 0626 06D5 -FBED <final> 0626 06D5 -FBEE <isolated> 0626 0648 -FBEF <final> 0626 0648 -FBF0 <isolated> 0626 06C7 -FBF1 <final> 0626 06C7 -FBF2 <isolated> 0626 06C6 -FBF3 <final> 0626 06C6 -FBF4 <isolated> 0626 06C8 -FBF5 <final> 0626 06C8 -FBF6 <isolated> 0626 06D0 -FBF7 <final> 0626 06D0 -FBF8 <initial> 0626 06D0 -FBF9 <isolated> 0626 0649 -FBFA <final> 0626 0649 -FBFB <initial> 0626 0649 -FBFC <isolated> 06CC -FBFD <final> 06CC -FBFE <initial> 06CC -FBFF <medial> 06CC -FC00 <isolated> 0626 062C -FC01 <isolated> 0626 062D -FC02 <isolated> 0626 0645 -FC03 <isolated> 0626 0649 -FC04 <isolated> 0626 064A -FC05 <isolated> 0628 062C -FC06 <isolated> 0628 062D -FC07 <isolated> 0628 062E -FC08 <isolated> 0628 0645 -FC09 <isolated> 0628 0649 -FC0A <isolated> 0628 064A -FC0B <isolated> 062A 062C -FC0C <isolated> 062A 062D -FC0D <isolated> 062A 062E -FC0E <isolated> 062A 0645 -FC0F <isolated> 062A 0649 -FC10 <isolated> 062A 064A -FC11 <isolated> 062B 062C -FC12 <isolated> 062B 0645 -FC13 <isolated> 062B 0649 -FC14 <isolated> 062B 064A -FC15 <isolated> 062C 062D -FC16 <isolated> 062C 0645 -FC17 <isolated> 062D 062C -FC18 <isolated> 062D 0645 -FC19 <isolated> 062E 062C -FC1A <isolated> 062E 062D -FC1B <isolated> 062E 0645 -FC1C <isolated> 0633 062C -FC1D <isolated> 0633 062D -FC1E <isolated> 0633 062E -FC1F <isolated> 0633 0645 -FC20 <isolated> 0635 062D -FC21 <isolated> 0635 0645 -FC22 <isolated> 0636 062C -FC23 <isolated> 0636 062D -FC24 <isolated> 0636 062E -FC25 <isolated> 0636 0645 -FC26 <isolated> 0637 062D -FC27 <isolated> 0637 0645 -FC28 <isolated> 0638 0645 -FC29 <isolated> 0639 062C -FC2A <isolated> 0639 0645 -FC2B <isolated> 063A 062C -FC2C <isolated> 063A 0645 -FC2D <isolated> 0641 062C -FC2E <isolated> 0641 062D -FC2F <isolated> 0641 062E -FC30 <isolated> 0641 0645 -FC31 <isolated> 0641 0649 -FC32 <isolated> 0641 064A -FC33 <isolated> 0642 062D -FC34 <isolated> 0642 0645 -FC35 <isolated> 0642 0649 -FC36 <isolated> 0642 064A -FC37 <isolated> 0643 0627 -FC38 <isolated> 0643 062C -FC39 <isolated> 0643 062D -FC3A <isolated> 0643 062E -FC3B <isolated> 0643 0644 -FC3C <isolated> 0643 0645 -FC3D <isolated> 0643 0649 -FC3E <isolated> 0643 064A -FC3F <isolated> 0644 062C -FC40 <isolated> 0644 062D -FC41 <isolated> 0644 062E -FC42 <isolated> 0644 0645 -FC43 <isolated> 0644 0649 -FC44 <isolated> 0644 064A -FC45 <isolated> 0645 062C -FC46 <isolated> 0645 062D -FC47 <isolated> 0645 062E -FC48 <isolated> 0645 0645 -FC49 <isolated> 0645 0649 -FC4A <isolated> 0645 064A -FC4B <isolated> 0646 062C -FC4C <isolated> 0646 062D -FC4D <isolated> 0646 062E -FC4E <isolated> 0646 0645 -FC4F <isolated> 0646 0649 -FC50 <isolated> 0646 064A -FC51 <isolated> 0647 062C -FC52 <isolated> 0647 0645 -FC53 <isolated> 0647 0649 -FC54 <isolated> 0647 064A -FC55 <isolated> 064A 062C -FC56 <isolated> 064A 062D -FC57 <isolated> 064A 062E -FC58 <isolated> 064A 0645 -FC59 <isolated> 064A 0649 -FC5A <isolated> 064A 064A -FC5B <isolated> 0630 0670 -FC5C <isolated> 0631 0670 -FC5D <isolated> 0649 0670 -FC5E <isolated> 0020 064C 0651 -FC5F <isolated> 0020 064D 0651 -FC60 <isolated> 0020 064E 0651 -FC61 <isolated> 0020 064F 0651 -FC62 <isolated> 0020 0650 0651 -FC63 <isolated> 0020 0651 0670 -FC64 <final> 0626 0631 -FC65 <final> 0626 0632 -FC66 <final> 0626 0645 -FC67 <final> 0626 0646 -FC68 <final> 0626 0649 -FC69 <final> 0626 064A -FC6A <final> 0628 0631 -FC6B <final> 0628 0632 -FC6C <final> 0628 0645 -FC6D <final> 0628 0646 -FC6E <final> 0628 0649 -FC6F <final> 0628 064A -FC70 <final> 062A 0631 -FC71 <final> 062A 0632 -FC72 <final> 062A 0645 -FC73 <final> 062A 0646 -FC74 <final> 062A 0649 -FC75 <final> 062A 064A -FC76 <final> 062B 0631 -FC77 <final> 062B 0632 -FC78 <final> 062B 0645 -FC79 <final> 062B 0646 -FC7A <final> 062B 0649 -FC7B <final> 062B 064A -FC7C <final> 0641 0649 -FC7D <final> 0641 064A -FC7E <final> 0642 0649 -FC7F <final> 0642 064A -FC80 <final> 0643 0627 -FC81 <final> 0643 0644 -FC82 <final> 0643 0645 -FC83 <final> 0643 0649 -FC84 <final> 0643 064A -FC85 <final> 0644 0645 -FC86 <final> 0644 0649 -FC87 <final> 0644 064A -FC88 <final> 0645 0627 -FC89 <final> 0645 0645 -FC8A <final> 0646 0631 -FC8B <final> 0646 0632 -FC8C <final> 0646 0645 -FC8D <final> 0646 0646 -FC8E <final> 0646 0649 -FC8F <final> 0646 064A -FC90 <final> 0649 0670 -FC91 <final> 064A 0631 -FC92 <final> 064A 0632 -FC93 <final> 064A 0645 -FC94 <final> 064A 0646 -FC95 <final> 064A 0649 -FC96 <final> 064A 064A -FC97 <initial> 0626 062C -FC98 <initial> 0626 062D -FC99 <initial> 0626 062E -FC9A <initial> 0626 0645 -FC9B <initial> 0626 0647 -FC9C <initial> 0628 062C -FC9D <initial> 0628 062D -FC9E <initial> 0628 062E -FC9F <initial> 0628 0645 -FCA0 <initial> 0628 0647 -FCA1 <initial> 062A 062C -FCA2 <initial> 062A 062D -FCA3 <initial> 062A 062E -FCA4 <initial> 062A 0645 -FCA5 <initial> 062A 0647 -FCA6 <initial> 062B 0645 -FCA7 <initial> 062C 062D -FCA8 <initial> 062C 0645 -FCA9 <initial> 062D 062C -FCAA <initial> 062D 0645 -FCAB <initial> 062E 062C -FCAC <initial> 062E 0645 -FCAD <initial> 0633 062C -FCAE <initial> 0633 062D -FCAF <initial> 0633 062E -FCB0 <initial> 0633 0645 -FCB1 <initial> 0635 062D -FCB2 <initial> 0635 062E -FCB3 <initial> 0635 0645 -FCB4 <initial> 0636 062C -FCB5 <initial> 0636 062D -FCB6 <initial> 0636 062E -FCB7 <initial> 0636 0645 -FCB8 <initial> 0637 062D -FCB9 <initial> 0638 0645 -FCBA <initial> 0639 062C -FCBB <initial> 0639 0645 -FCBC <initial> 063A 062C -FCBD <initial> 063A 0645 -FCBE <initial> 0641 062C -FCBF <initial> 0641 062D -FCC0 <initial> 0641 062E -FCC1 <initial> 0641 0645 -FCC2 <initial> 0642 062D -FCC3 <initial> 0642 0645 -FCC4 <initial> 0643 062C -FCC5 <initial> 0643 062D -FCC6 <initial> 0643 062E -FCC7 <initial> 0643 0644 -FCC8 <initial> 0643 0645 -FCC9 <initial> 0644 062C -FCCA <initial> 0644 062D -FCCB <initial> 0644 062E -FCCC <initial> 0644 0645 -FCCD <initial> 0644 0647 -FCCE <initial> 0645 062C -FCCF <initial> 0645 062D -FCD0 <initial> 0645 062E -FCD1 <initial> 0645 0645 -FCD2 <initial> 0646 062C -FCD3 <initial> 0646 062D -FCD4 <initial> 0646 062E -FCD5 <initial> 0646 0645 -FCD6 <initial> 0646 0647 -FCD7 <initial> 0647 062C -FCD8 <initial> 0647 0645 -FCD9 <initial> 0647 0670 -FCDA <initial> 064A 062C -FCDB <initial> 064A 062D -FCDC <initial> 064A 062E -FCDD <initial> 064A 0645 -FCDE <initial> 064A 0647 -FCDF <medial> 0626 0645 -FCE0 <medial> 0626 0647 -FCE1 <medial> 0628 0645 -FCE2 <medial> 0628 0647 -FCE3 <medial> 062A 0645 -FCE4 <medial> 062A 0647 -FCE5 <medial> 062B 0645 -FCE6 <medial> 062B 0647 -FCE7 <medial> 0633 0645 -FCE8 <medial> 0633 0647 -FCE9 <medial> 0634 0645 -FCEA <medial> 0634 0647 -FCEB <medial> 0643 0644 -FCEC <medial> 0643 0645 -FCED <medial> 0644 0645 -FCEE <medial> 0646 0645 -FCEF <medial> 0646 0647 -FCF0 <medial> 064A 0645 -FCF1 <medial> 064A 0647 -FCF2 <medial> 0640 064E 0651 -FCF3 <medial> 0640 064F 0651 -FCF4 <medial> 0640 0650 0651 -FCF5 <isolated> 0637 0649 -FCF6 <isolated> 0637 064A -FCF7 <isolated> 0639 0649 -FCF8 <isolated> 0639 064A -FCF9 <isolated> 063A 0649 -FCFA <isolated> 063A 064A -FCFB <isolated> 0633 0649 -FCFC <isolated> 0633 064A -FCFD <isolated> 0634 0649 -FCFE <isolated> 0634 064A -FCFF <isolated> 062D 0649 -FD00 <isolated> 062D 064A -FD01 <isolated> 062C 0649 -FD02 <isolated> 062C 064A -FD03 <isolated> 062E 0649 -FD04 <isolated> 062E 064A -FD05 <isolated> 0635 0649 -FD06 <isolated> 0635 064A -FD07 <isolated> 0636 0649 -FD08 <isolated> 0636 064A -FD09 <isolated> 0634 062C -FD0A <isolated> 0634 062D -FD0B <isolated> 0634 062E -FD0C <isolated> 0634 0645 -FD0D <isolated> 0634 0631 -FD0E <isolated> 0633 0631 -FD0F <isolated> 0635 0631 -FD10 <isolated> 0636 0631 -FD11 <final> 0637 0649 -FD12 <final> 0637 064A -FD13 <final> 0639 0649 -FD14 <final> 0639 064A -FD15 <final> 063A 0649 -FD16 <final> 063A 064A -FD17 <final> 0633 0649 -FD18 <final> 0633 064A -FD19 <final> 0634 0649 -FD1A <final> 0634 064A -FD1B <final> 062D 0649 -FD1C <final> 062D 064A -FD1D <final> 062C 0649 -FD1E <final> 062C 064A -FD1F <final> 062E 0649 -FD20 <final> 062E 064A -FD21 <final> 0635 0649 -FD22 <final> 0635 064A -FD23 <final> 0636 0649 -FD24 <final> 0636 064A -FD25 <final> 0634 062C -FD26 <final> 0634 062D -FD27 <final> 0634 062E -FD28 <final> 0634 0645 -FD29 <final> 0634 0631 -FD2A <final> 0633 0631 -FD2B <final> 0635 0631 -FD2C <final> 0636 0631 -FD2D <initial> 0634 062C -FD2E <initial> 0634 062D -FD2F <initial> 0634 062E -FD30 <initial> 0634 0645 -FD31 <initial> 0633 0647 -FD32 <initial> 0634 0647 -FD33 <initial> 0637 0645 -FD34 <medial> 0633 062C -FD35 <medial> 0633 062D -FD36 <medial> 0633 062E -FD37 <medial> 0634 062C -FD38 <medial> 0634 062D -FD39 <medial> 0634 062E -FD3A <medial> 0637 0645 -FD3B <medial> 0638 0645 -FD3C <final> 0627 064B -FD3D <isolated> 0627 064B -FD50 <initial> 062A 062C 0645 -FD51 <final> 062A 062D 062C -FD52 <initial> 062A 062D 062C -FD53 <initial> 062A 062D 0645 -FD54 <initial> 062A 062E 0645 -FD55 <initial> 062A 0645 062C -FD56 <initial> 062A 0645 062D -FD57 <initial> 062A 0645 062E -FD58 <final> 062C 0645 062D -FD59 <initial> 062C 0645 062D -FD5A <final> 062D 0645 064A -FD5B <final> 062D 0645 0649 -FD5C <initial> 0633 062D 062C -FD5D <initial> 0633 062C 062D -FD5E <final> 0633 062C 0649 -FD5F <final> 0633 0645 062D -FD60 <initial> 0633 0645 062D -FD61 <initial> 0633 0645 062C -FD62 <final> 0633 0645 0645 -FD63 <initial> 0633 0645 0645 -FD64 <final> 0635 062D 062D -FD65 <initial> 0635 062D 062D -FD66 <final> 0635 0645 0645 -FD67 <final> 0634 062D 0645 -FD68 <initial> 0634 062D 0645 -FD69 <final> 0634 062C 064A -FD6A <final> 0634 0645 062E -FD6B <initial> 0634 0645 062E -FD6C <final> 0634 0645 0645 -FD6D <initial> 0634 0645 0645 -FD6E <final> 0636 062D 0649 -FD6F <final> 0636 062E 0645 -FD70 <initial> 0636 062E 0645 -FD71 <final> 0637 0645 062D -FD72 <initial> 0637 0645 062D -FD73 <initial> 0637 0645 0645 -FD74 <final> 0637 0645 064A -FD75 <final> 0639 062C 0645 -FD76 <final> 0639 0645 0645 -FD77 <initial> 0639 0645 0645 -FD78 <final> 0639 0645 0649 -FD79 <final> 063A 0645 0645 -FD7A <final> 063A 0645 064A -FD7B <final> 063A 0645 0649 -FD7C <final> 0641 062E 0645 -FD7D <initial> 0641 062E 0645 -FD7E <final> 0642 0645 062D -FD7F <final> 0642 0645 0645 -FD80 <final> 0644 062D 0645 -FD81 <final> 0644 062D 064A -FD82 <final> 0644 062D 0649 -FD83 <initial> 0644 062C 062C -FD84 <final> 0644 062C 062C -FD85 <final> 0644 062E 0645 -FD86 <initial> 0644 062E 0645 -FD87 <final> 0644 0645 062D -FD88 <initial> 0644 0645 062D -FD89 <initial> 0645 062D 062C -FD8A <initial> 0645 062D 0645 -FD8B <final> 0645 062D 064A -FD8C <initial> 0645 062C 062D -FD8D <initial> 0645 062C 0645 -FD8E <initial> 0645 062E 062C -FD8F <initial> 0645 062E 0645 -FD92 <initial> 0645 062C 062E -FD93 <initial> 0647 0645 062C -FD94 <initial> 0647 0645 0645 -FD95 <initial> 0646 062D 0645 -FD96 <final> 0646 062D 0649 -FD97 <final> 0646 062C 0645 -FD98 <initial> 0646 062C 0645 -FD99 <final> 0646 062C 0649 -FD9A <final> 0646 0645 064A -FD9B <final> 0646 0645 0649 -FD9C <final> 064A 0645 0645 -FD9D <initial> 064A 0645 0645 -FD9E <final> 0628 062E 064A -FD9F <final> 062A 062C 064A -FDA0 <final> 062A 062C 0649 -FDA1 <final> 062A 062E 064A -FDA2 <final> 062A 062E 0649 -FDA3 <final> 062A 0645 064A -FDA4 <final> 062A 0645 0649 -FDA5 <final> 062C 0645 064A -FDA6 <final> 062C 062D 0649 -FDA7 <final> 062C 0645 0649 -FDA8 <final> 0633 062E 0649 -FDA9 <final> 0635 062D 064A -FDAA <final> 0634 062D 064A -FDAB <final> 0636 062D 064A -FDAC <final> 0644 062C 064A -FDAD <final> 0644 0645 064A -FDAE <final> 064A 062D 064A -FDAF <final> 064A 062C 064A -FDB0 <final> 064A 0645 064A -FDB1 <final> 0645 0645 064A -FDB2 <final> 0642 0645 064A -FDB3 <final> 0646 062D 064A -FDB4 <initial> 0642 0645 062D -FDB5 <initial> 0644 062D 0645 -FDB6 <final> 0639 0645 064A -FDB7 <final> 0643 0645 064A -FDB8 <initial> 0646 062C 062D -FDB9 <final> 0645 062E 064A -FDBA <initial> 0644 062C 0645 -FDBB <final> 0643 0645 0645 -FDBC <final> 0644 062C 0645 -FDBD <final> 0646 062C 062D -FDBE <final> 062C 062D 064A -FDBF <final> 062D 062C 064A -FDC0 <final> 0645 062C 064A -FDC1 <final> 0641 0645 064A -FDC2 <final> 0628 062D 064A -FDC3 <initial> 0643 0645 0645 -FDC4 <initial> 0639 062C 0645 -FDC5 <initial> 0635 0645 0645 -FDC6 <final> 0633 062E 064A -FDC7 <final> 0646 062C 064A -FDF0 <isolated> 0635 0644 06D2 -FDF1 <isolated> 0642 0644 06D2 -FDF2 <isolated> 0627 0644 0644 0647 -FDF3 <isolated> 0627 0643 0628 0631 -FDF4 <isolated> 0645 062D 0645 062F -FDF5 <isolated> 0635 0644 0639 0645 -FDF6 <isolated> 0631 0633 0648 0644 -FDF7 <isolated> 0639 0644 064A 0647 -FDF8 <isolated> 0648 0633 0644 0645 -FDF9 <isolated> 0635 0644 0649 -FDFA <isolated> 0635 0644 0649 0020 0627 0644 0644 0647 0020 0639 0644 064A 0647 0020 0648 0633 0644 0645 -FDFB <isolated> 062C 0644 0020 062C 0644 0627 0644 0647 -FDFC <isolated> 0631 06CC 0627 0644 -FE30 <vertical> 2025 -FE31 <vertical> 2014 -FE32 <vertical> 2013 -FE33 FE34 <vertical> 005F -FE35 <vertical> 0028 -FE36 <vertical> 0029 -FE37 <vertical> 007B -FE38 <vertical> 007D -FE39 <vertical> 3014 -FE3A <vertical> 3015 -FE3B <vertical> 3010 -FE3C <vertical> 3011 -FE3D <vertical> 300A -FE3E <vertical> 300B -FE3F <vertical> 3008 -FE40 <vertical> 3009 -FE41 <vertical> 300C -FE42 <vertical> 300D -FE43 <vertical> 300E -FE44 <vertical> 300F -FE49 FE4C <compat> 203E -FE4D FE4F <compat> 005F -FE50 <small> 002C -FE51 <small> 3001 -FE52 <small> 002E -FE54 <small> 003B -FE55 <small> 003A -FE56 <small> 003F -FE57 <small> 0021 -FE58 <small> 2014 -FE59 <small> 0028 -FE5A <small> 0029 -FE5B <small> 007B -FE5C <small> 007D -FE5D <small> 3014 -FE5E <small> 3015 -FE5F <small> 0023 -FE60 <small> 0026 -FE61 <small> 002A -FE62 <small> 002B -FE63 <small> 002D -FE64 <small> 003C -FE65 <small> 003E -FE66 <small> 003D -FE68 <small> 005C -FE69 <small> 0024 -FE6A <small> 0025 -FE6B <small> 0040 -FE70 <isolated> 0020 064B -FE71 <medial> 0640 064B -FE72 <isolated> 0020 064C -FE74 <isolated> 0020 064D -FE76 <isolated> 0020 064E -FE77 <medial> 0640 064E -FE78 <isolated> 0020 064F -FE79 <medial> 0640 064F -FE7A <isolated> 0020 0650 -FE7B <medial> 0640 0650 -FE7C <isolated> 0020 0651 -FE7D <medial> 0640 0651 -FE7E <isolated> 0020 0652 -FE7F <medial> 0640 0652 -FE80 <isolated> 0621 -FE81 <isolated> 0622 -FE82 <final> 0622 -FE83 <isolated> 0623 -FE84 <final> 0623 -FE85 <isolated> 0624 -FE86 <final> 0624 -FE87 <isolated> 0625 -FE88 <final> 0625 -FE89 <isolated> 0626 -FE8A <final> 0626 -FE8B <initial> 0626 -FE8C <medial> 0626 -FE8D <isolated> 0627 -FE8E <final> 0627 -FE8F <isolated> 0628 -FE90 <final> 0628 -FE91 <initial> 0628 -FE92 <medial> 0628 -FE93 <isolated> 0629 -FE94 <final> 0629 -FE95 <isolated> 062A -FE96 <final> 062A -FE97 <initial> 062A -FE98 <medial> 062A -FE99 <isolated> 062B -FE9A <final> 062B -FE9B <initial> 062B -FE9C <medial> 062B -FE9D <isolated> 062C -FE9E <final> 062C -FE9F <initial> 062C -FEA0 <medial> 062C -FEA1 <isolated> 062D -FEA2 <final> 062D -FEA3 <initial> 062D -FEA4 <medial> 062D -FEA5 <isolated> 062E -FEA6 <final> 062E -FEA7 <initial> 062E -FEA8 <medial> 062E -FEA9 <isolated> 062F -FEAA <final> 062F -FEAB <isolated> 0630 -FEAC <final> 0630 -FEAD <isolated> 0631 -FEAE <final> 0631 -FEAF <isolated> 0632 -FEB0 <final> 0632 -FEB1 <isolated> 0633 -FEB2 <final> 0633 -FEB3 <initial> 0633 -FEB4 <medial> 0633 -FEB5 <isolated> 0634 -FEB6 <final> 0634 -FEB7 <initial> 0634 -FEB8 <medial> 0634 -FEB9 <isolated> 0635 -FEBA <final> 0635 -FEBB <initial> 0635 -FEBC <medial> 0635 -FEBD <isolated> 0636 -FEBE <final> 0636 -FEBF <initial> 0636 -FEC0 <medial> 0636 -FEC1 <isolated> 0637 -FEC2 <final> 0637 -FEC3 <initial> 0637 -FEC4 <medial> 0637 -FEC5 <isolated> 0638 -FEC6 <final> 0638 -FEC7 <initial> 0638 -FEC8 <medial> 0638 -FEC9 <isolated> 0639 -FECA <final> 0639 -FECB <initial> 0639 -FECC <medial> 0639 -FECD <isolated> 063A -FECE <final> 063A -FECF <initial> 063A -FED0 <medial> 063A -FED1 <isolated> 0641 -FED2 <final> 0641 -FED3 <initial> 0641 -FED4 <medial> 0641 -FED5 <isolated> 0642 -FED6 <final> 0642 -FED7 <initial> 0642 -FED8 <medial> 0642 -FED9 <isolated> 0643 -FEDA <final> 0643 -FEDB <initial> 0643 -FEDC <medial> 0643 -FEDD <isolated> 0644 -FEDE <final> 0644 -FEDF <initial> 0644 -FEE0 <medial> 0644 -FEE1 <isolated> 0645 -FEE2 <final> 0645 -FEE3 <initial> 0645 -FEE4 <medial> 0645 -FEE5 <isolated> 0646 -FEE6 <final> 0646 -FEE7 <initial> 0646 -FEE8 <medial> 0646 -FEE9 <isolated> 0647 -FEEA <final> 0647 -FEEB <initial> 0647 -FEEC <medial> 0647 -FEED <isolated> 0648 -FEEE <final> 0648 -FEEF <isolated> 0649 -FEF0 <final> 0649 -FEF1 <isolated> 064A -FEF2 <final> 064A -FEF3 <initial> 064A -FEF4 <medial> 064A -FEF5 <isolated> 0644 0622 -FEF6 <final> 0644 0622 -FEF7 <isolated> 0644 0623 -FEF8 <final> 0644 0623 -FEF9 <isolated> 0644 0625 -FEFA <final> 0644 0625 -FEFB <isolated> 0644 0627 -FEFC <final> 0644 0627 -FF01 <wide> 0021 -FF02 <wide> 0022 -FF03 <wide> 0023 -FF04 <wide> 0024 -FF05 <wide> 0025 -FF06 <wide> 0026 -FF07 <wide> 0027 -FF08 <wide> 0028 -FF09 <wide> 0029 -FF0A <wide> 002A -FF0B <wide> 002B -FF0C <wide> 002C -FF0D <wide> 002D -FF0E <wide> 002E -FF0F <wide> 002F -FF10 <wide> 0030 -FF11 <wide> 0031 -FF12 <wide> 0032 -FF13 <wide> 0033 -FF14 <wide> 0034 -FF15 <wide> 0035 -FF16 <wide> 0036 -FF17 <wide> 0037 -FF18 <wide> 0038 -FF19 <wide> 0039 -FF1A <wide> 003A -FF1B <wide> 003B -FF1C <wide> 003C -FF1D <wide> 003D -FF1E <wide> 003E -FF1F <wide> 003F -FF20 <wide> 0040 -FF21 <wide> 0041 -FF22 <wide> 0042 -FF23 <wide> 0043 -FF24 <wide> 0044 -FF25 <wide> 0045 -FF26 <wide> 0046 -FF27 <wide> 0047 -FF28 <wide> 0048 -FF29 <wide> 0049 -FF2A <wide> 004A -FF2B <wide> 004B -FF2C <wide> 004C -FF2D <wide> 004D -FF2E <wide> 004E -FF2F <wide> 004F -FF30 <wide> 0050 -FF31 <wide> 0051 -FF32 <wide> 0052 -FF33 <wide> 0053 -FF34 <wide> 0054 -FF35 <wide> 0055 -FF36 <wide> 0056 -FF37 <wide> 0057 -FF38 <wide> 0058 -FF39 <wide> 0059 -FF3A <wide> 005A -FF3B <wide> 005B -FF3C <wide> 005C -FF3D <wide> 005D -FF3E <wide> 005E -FF3F <wide> 005F -FF40 <wide> 0060 -FF41 <wide> 0061 -FF42 <wide> 0062 -FF43 <wide> 0063 -FF44 <wide> 0064 -FF45 <wide> 0065 -FF46 <wide> 0066 -FF47 <wide> 0067 -FF48 <wide> 0068 -FF49 <wide> 0069 -FF4A <wide> 006A -FF4B <wide> 006B -FF4C <wide> 006C -FF4D <wide> 006D -FF4E <wide> 006E -FF4F <wide> 006F -FF50 <wide> 0070 -FF51 <wide> 0071 -FF52 <wide> 0072 -FF53 <wide> 0073 -FF54 <wide> 0074 -FF55 <wide> 0075 -FF56 <wide> 0076 -FF57 <wide> 0077 -FF58 <wide> 0078 -FF59 <wide> 0079 -FF5A <wide> 007A -FF5B <wide> 007B -FF5C <wide> 007C -FF5D <wide> 007D -FF5E <wide> 007E -FF5F <wide> 2985 -FF60 <wide> 2986 -FF61 <narrow> 3002 -FF62 <narrow> 300C -FF63 <narrow> 300D -FF64 <narrow> 3001 -FF65 <narrow> 30FB -FF66 <narrow> 30F2 -FF67 <narrow> 30A1 -FF68 <narrow> 30A3 -FF69 <narrow> 30A5 -FF6A <narrow> 30A7 -FF6B <narrow> 30A9 -FF6C <narrow> 30E3 -FF6D <narrow> 30E5 -FF6E <narrow> 30E7 -FF6F <narrow> 30C3 -FF70 <narrow> 30FC -FF71 <narrow> 30A2 -FF72 <narrow> 30A4 -FF73 <narrow> 30A6 -FF74 <narrow> 30A8 -FF75 <narrow> 30AA -FF76 <narrow> 30AB -FF77 <narrow> 30AD -FF78 <narrow> 30AF -FF79 <narrow> 30B1 -FF7A <narrow> 30B3 -FF7B <narrow> 30B5 -FF7C <narrow> 30B7 -FF7D <narrow> 30B9 -FF7E <narrow> 30BB -FF7F <narrow> 30BD -FF80 <narrow> 30BF -FF81 <narrow> 30C1 -FF82 <narrow> 30C4 -FF83 <narrow> 30C6 -FF84 <narrow> 30C8 -FF85 <narrow> 30CA -FF86 <narrow> 30CB -FF87 <narrow> 30CC -FF88 <narrow> 30CD -FF89 <narrow> 30CE -FF8A <narrow> 30CF -FF8B <narrow> 30D2 -FF8C <narrow> 30D5 -FF8D <narrow> 30D8 -FF8E <narrow> 30DB -FF8F <narrow> 30DE -FF90 <narrow> 30DF -FF91 <narrow> 30E0 -FF92 <narrow> 30E1 -FF93 <narrow> 30E2 -FF94 <narrow> 30E4 -FF95 <narrow> 30E6 -FF96 <narrow> 30E8 -FF97 <narrow> 30E9 -FF98 <narrow> 30EA -FF99 <narrow> 30EB -FF9A <narrow> 30EC -FF9B <narrow> 30ED -FF9C <narrow> 30EF -FF9D <narrow> 30F3 -FF9E <narrow> 3099 -FF9F <narrow> 309A -FFA0 <narrow> 3164 -FFA1 <narrow> 3131 -FFA2 <narrow> 3132 -FFA3 <narrow> 3133 -FFA4 <narrow> 3134 -FFA5 <narrow> 3135 -FFA6 <narrow> 3136 -FFA7 <narrow> 3137 -FFA8 <narrow> 3138 -FFA9 <narrow> 3139 -FFAA <narrow> 313A -FFAB <narrow> 313B -FFAC <narrow> 313C -FFAD <narrow> 313D -FFAE <narrow> 313E -FFAF <narrow> 313F -FFB0 <narrow> 3140 -FFB1 <narrow> 3141 -FFB2 <narrow> 3142 -FFB3 <narrow> 3143 -FFB4 <narrow> 3144 -FFB5 <narrow> 3145 -FFB6 <narrow> 3146 -FFB7 <narrow> 3147 -FFB8 <narrow> 3148 -FFB9 <narrow> 3149 -FFBA <narrow> 314A -FFBB <narrow> 314B -FFBC <narrow> 314C -FFBD <narrow> 314D -FFBE <narrow> 314E -FFC2 <narrow> 314F -FFC3 <narrow> 3150 -FFC4 <narrow> 3151 -FFC5 <narrow> 3152 -FFC6 <narrow> 3153 -FFC7 <narrow> 3154 -FFCA <narrow> 3155 -FFCB <narrow> 3156 -FFCC <narrow> 3157 -FFCD <narrow> 3158 -FFCE <narrow> 3159 -FFCF <narrow> 315A -FFD2 <narrow> 315B -FFD3 <narrow> 315C -FFD4 <narrow> 315D -FFD5 <narrow> 315E -FFD6 <narrow> 315F -FFD7 <narrow> 3160 -FFDA <narrow> 3161 -FFDB <narrow> 3162 -FFDC <narrow> 3163 -FFE0 <wide> 00A2 -FFE1 <wide> 00A3 -FFE2 <wide> 00AC -FFE3 <wide> 00AF -FFE4 <wide> 00A6 -FFE5 <wide> 00A5 -FFE6 <wide> 20A9 -FFE8 <narrow> 2502 -FFE9 <narrow> 2190 -FFEA <narrow> 2191 -FFEB <narrow> 2192 -FFEC <narrow> 2193 -FFED <narrow> 25A0 -FFEE <narrow> 25CB -1D15E 1D157 1D165 -1D15F 1D158 1D165 -1D160 1D15F 1D16E -1D161 1D15F 1D16F -1D162 1D15F 1D170 -1D163 1D15F 1D171 -1D164 1D15F 1D172 -1D1BB 1D1B9 1D165 -1D1BC 1D1BA 1D165 -1D1BD 1D1BB 1D16E -1D1BE 1D1BC 1D16E -1D1BF 1D1BB 1D16F -1D1C0 1D1BC 1D16F -1D400 <font> 0041 -1D401 <font> 0042 -1D402 <font> 0043 -1D403 <font> 0044 -1D404 <font> 0045 -1D405 <font> 0046 -1D406 <font> 0047 -1D407 <font> 0048 -1D408 <font> 0049 -1D409 <font> 004A -1D40A <font> 004B -1D40B <font> 004C -1D40C <font> 004D -1D40D <font> 004E -1D40E <font> 004F -1D40F <font> 0050 -1D410 <font> 0051 -1D411 <font> 0052 -1D412 <font> 0053 -1D413 <font> 0054 -1D414 <font> 0055 -1D415 <font> 0056 -1D416 <font> 0057 -1D417 <font> 0058 -1D418 <font> 0059 -1D419 <font> 005A -1D41A <font> 0061 -1D41B <font> 0062 -1D41C <font> 0063 -1D41D <font> 0064 -1D41E <font> 0065 -1D41F <font> 0066 -1D420 <font> 0067 -1D421 <font> 0068 -1D422 <font> 0069 -1D423 <font> 006A -1D424 <font> 006B -1D425 <font> 006C -1D426 <font> 006D -1D427 <font> 006E -1D428 <font> 006F -1D429 <font> 0070 -1D42A <font> 0071 -1D42B <font> 0072 -1D42C <font> 0073 -1D42D <font> 0074 -1D42E <font> 0075 -1D42F <font> 0076 -1D430 <font> 0077 -1D431 <font> 0078 -1D432 <font> 0079 -1D433 <font> 007A -1D434 <font> 0041 -1D435 <font> 0042 -1D436 <font> 0043 -1D437 <font> 0044 -1D438 <font> 0045 -1D439 <font> 0046 -1D43A <font> 0047 -1D43B <font> 0048 -1D43C <font> 0049 -1D43D <font> 004A -1D43E <font> 004B -1D43F <font> 004C -1D440 <font> 004D -1D441 <font> 004E -1D442 <font> 004F -1D443 <font> 0050 -1D444 <font> 0051 -1D445 <font> 0052 -1D446 <font> 0053 -1D447 <font> 0054 -1D448 <font> 0055 -1D449 <font> 0056 -1D44A <font> 0057 -1D44B <font> 0058 -1D44C <font> 0059 -1D44D <font> 005A -1D44E <font> 0061 -1D44F <font> 0062 -1D450 <font> 0063 -1D451 <font> 0064 -1D452 <font> 0065 -1D453 <font> 0066 -1D454 <font> 0067 -1D456 <font> 0069 -1D457 <font> 006A -1D458 <font> 006B -1D459 <font> 006C -1D45A <font> 006D -1D45B <font> 006E -1D45C <font> 006F -1D45D <font> 0070 -1D45E <font> 0071 -1D45F <font> 0072 -1D460 <font> 0073 -1D461 <font> 0074 -1D462 <font> 0075 -1D463 <font> 0076 -1D464 <font> 0077 -1D465 <font> 0078 -1D466 <font> 0079 -1D467 <font> 007A -1D468 <font> 0041 -1D469 <font> 0042 -1D46A <font> 0043 -1D46B <font> 0044 -1D46C <font> 0045 -1D46D <font> 0046 -1D46E <font> 0047 -1D46F <font> 0048 -1D470 <font> 0049 -1D471 <font> 004A -1D472 <font> 004B -1D473 <font> 004C -1D474 <font> 004D -1D475 <font> 004E -1D476 <font> 004F -1D477 <font> 0050 -1D478 <font> 0051 -1D479 <font> 0052 -1D47A <font> 0053 -1D47B <font> 0054 -1D47C <font> 0055 -1D47D <font> 0056 -1D47E <font> 0057 -1D47F <font> 0058 -1D480 <font> 0059 -1D481 <font> 005A -1D482 <font> 0061 -1D483 <font> 0062 -1D484 <font> 0063 -1D485 <font> 0064 -1D486 <font> 0065 -1D487 <font> 0066 -1D488 <font> 0067 -1D489 <font> 0068 -1D48A <font> 0069 -1D48B <font> 006A -1D48C <font> 006B -1D48D <font> 006C -1D48E <font> 006D -1D48F <font> 006E -1D490 <font> 006F -1D491 <font> 0070 -1D492 <font> 0071 -1D493 <font> 0072 -1D494 <font> 0073 -1D495 <font> 0074 -1D496 <font> 0075 -1D497 <font> 0076 -1D498 <font> 0077 -1D499 <font> 0078 -1D49A <font> 0079 -1D49B <font> 007A -1D49C <font> 0041 -1D49E <font> 0043 -1D49F <font> 0044 -1D4A2 <font> 0047 -1D4A5 <font> 004A -1D4A6 <font> 004B -1D4A9 <font> 004E -1D4AA <font> 004F -1D4AB <font> 0050 -1D4AC <font> 0051 -1D4AE <font> 0053 -1D4AF <font> 0054 -1D4B0 <font> 0055 -1D4B1 <font> 0056 -1D4B2 <font> 0057 -1D4B3 <font> 0058 -1D4B4 <font> 0059 -1D4B5 <font> 005A -1D4B6 <font> 0061 -1D4B7 <font> 0062 -1D4B8 <font> 0063 -1D4B9 <font> 0064 -1D4BB <font> 0066 -1D4BD <font> 0068 -1D4BE <font> 0069 -1D4BF <font> 006A -1D4C0 <font> 006B -1D4C2 <font> 006D -1D4C3 <font> 006E -1D4C5 <font> 0070 -1D4C6 <font> 0071 -1D4C7 <font> 0072 -1D4C8 <font> 0073 -1D4C9 <font> 0074 -1D4CA <font> 0075 -1D4CB <font> 0076 -1D4CC <font> 0077 -1D4CD <font> 0078 -1D4CE <font> 0079 -1D4CF <font> 007A -1D4D0 <font> 0041 -1D4D1 <font> 0042 -1D4D2 <font> 0043 -1D4D3 <font> 0044 -1D4D4 <font> 0045 -1D4D5 <font> 0046 -1D4D6 <font> 0047 -1D4D7 <font> 0048 -1D4D8 <font> 0049 -1D4D9 <font> 004A -1D4DA <font> 004B -1D4DB <font> 004C -1D4DC <font> 004D -1D4DD <font> 004E -1D4DE <font> 004F -1D4DF <font> 0050 -1D4E0 <font> 0051 -1D4E1 <font> 0052 -1D4E2 <font> 0053 -1D4E3 <font> 0054 -1D4E4 <font> 0055 -1D4E5 <font> 0056 -1D4E6 <font> 0057 -1D4E7 <font> 0058 -1D4E8 <font> 0059 -1D4E9 <font> 005A -1D4EA <font> 0061 -1D4EB <font> 0062 -1D4EC <font> 0063 -1D4ED <font> 0064 -1D4EE <font> 0065 -1D4EF <font> 0066 -1D4F0 <font> 0067 -1D4F1 <font> 0068 -1D4F2 <font> 0069 -1D4F3 <font> 006A -1D4F4 <font> 006B -1D4F5 <font> 006C -1D4F6 <font> 006D -1D4F7 <font> 006E -1D4F8 <font> 006F -1D4F9 <font> 0070 -1D4FA <font> 0071 -1D4FB <font> 0072 -1D4FC <font> 0073 -1D4FD <font> 0074 -1D4FE <font> 0075 -1D4FF <font> 0076 -1D500 <font> 0077 -1D501 <font> 0078 -1D502 <font> 0079 -1D503 <font> 007A -1D504 <font> 0041 -1D505 <font> 0042 -1D507 <font> 0044 -1D508 <font> 0045 -1D509 <font> 0046 -1D50A <font> 0047 -1D50D <font> 004A -1D50E <font> 004B -1D50F <font> 004C -1D510 <font> 004D -1D511 <font> 004E -1D512 <font> 004F -1D513 <font> 0050 -1D514 <font> 0051 -1D516 <font> 0053 -1D517 <font> 0054 -1D518 <font> 0055 -1D519 <font> 0056 -1D51A <font> 0057 -1D51B <font> 0058 -1D51C <font> 0059 -1D51E <font> 0061 -1D51F <font> 0062 -1D520 <font> 0063 -1D521 <font> 0064 -1D522 <font> 0065 -1D523 <font> 0066 -1D524 <font> 0067 -1D525 <font> 0068 -1D526 <font> 0069 -1D527 <font> 006A -1D528 <font> 006B -1D529 <font> 006C -1D52A <font> 006D -1D52B <font> 006E -1D52C <font> 006F -1D52D <font> 0070 -1D52E <font> 0071 -1D52F <font> 0072 -1D530 <font> 0073 -1D531 <font> 0074 -1D532 <font> 0075 -1D533 <font> 0076 -1D534 <font> 0077 -1D535 <font> 0078 -1D536 <font> 0079 -1D537 <font> 007A -1D538 <font> 0041 -1D539 <font> 0042 -1D53B <font> 0044 -1D53C <font> 0045 -1D53D <font> 0046 -1D53E <font> 0047 -1D540 <font> 0049 -1D541 <font> 004A -1D542 <font> 004B -1D543 <font> 004C -1D544 <font> 004D -1D546 <font> 004F -1D54A <font> 0053 -1D54B <font> 0054 -1D54C <font> 0055 -1D54D <font> 0056 -1D54E <font> 0057 -1D54F <font> 0058 -1D550 <font> 0059 -1D552 <font> 0061 -1D553 <font> 0062 -1D554 <font> 0063 -1D555 <font> 0064 -1D556 <font> 0065 -1D557 <font> 0066 -1D558 <font> 0067 -1D559 <font> 0068 -1D55A <font> 0069 -1D55B <font> 006A -1D55C <font> 006B -1D55D <font> 006C -1D55E <font> 006D -1D55F <font> 006E -1D560 <font> 006F -1D561 <font> 0070 -1D562 <font> 0071 -1D563 <font> 0072 -1D564 <font> 0073 -1D565 <font> 0074 -1D566 <font> 0075 -1D567 <font> 0076 -1D568 <font> 0077 -1D569 <font> 0078 -1D56A <font> 0079 -1D56B <font> 007A -1D56C <font> 0041 -1D56D <font> 0042 -1D56E <font> 0043 -1D56F <font> 0044 -1D570 <font> 0045 -1D571 <font> 0046 -1D572 <font> 0047 -1D573 <font> 0048 -1D574 <font> 0049 -1D575 <font> 004A -1D576 <font> 004B -1D577 <font> 004C -1D578 <font> 004D -1D579 <font> 004E -1D57A <font> 004F -1D57B <font> 0050 -1D57C <font> 0051 -1D57D <font> 0052 -1D57E <font> 0053 -1D57F <font> 0054 -1D580 <font> 0055 -1D581 <font> 0056 -1D582 <font> 0057 -1D583 <font> 0058 -1D584 <font> 0059 -1D585 <font> 005A -1D586 <font> 0061 -1D587 <font> 0062 -1D588 <font> 0063 -1D589 <font> 0064 -1D58A <font> 0065 -1D58B <font> 0066 -1D58C <font> 0067 -1D58D <font> 0068 -1D58E <font> 0069 -1D58F <font> 006A -1D590 <font> 006B -1D591 <font> 006C -1D592 <font> 006D -1D593 <font> 006E -1D594 <font> 006F -1D595 <font> 0070 -1D596 <font> 0071 -1D597 <font> 0072 -1D598 <font> 0073 -1D599 <font> 0074 -1D59A <font> 0075 -1D59B <font> 0076 -1D59C <font> 0077 -1D59D <font> 0078 -1D59E <font> 0079 -1D59F <font> 007A -1D5A0 <font> 0041 -1D5A1 <font> 0042 -1D5A2 <font> 0043 -1D5A3 <font> 0044 -1D5A4 <font> 0045 -1D5A5 <font> 0046 -1D5A6 <font> 0047 -1D5A7 <font> 0048 -1D5A8 <font> 0049 -1D5A9 <font> 004A -1D5AA <font> 004B -1D5AB <font> 004C -1D5AC <font> 004D -1D5AD <font> 004E -1D5AE <font> 004F -1D5AF <font> 0050 -1D5B0 <font> 0051 -1D5B1 <font> 0052 -1D5B2 <font> 0053 -1D5B3 <font> 0054 -1D5B4 <font> 0055 -1D5B5 <font> 0056 -1D5B6 <font> 0057 -1D5B7 <font> 0058 -1D5B8 <font> 0059 -1D5B9 <font> 005A -1D5BA <font> 0061 -1D5BB <font> 0062 -1D5BC <font> 0063 -1D5BD <font> 0064 -1D5BE <font> 0065 -1D5BF <font> 0066 -1D5C0 <font> 0067 -1D5C1 <font> 0068 -1D5C2 <font> 0069 -1D5C3 <font> 006A -1D5C4 <font> 006B -1D5C5 <font> 006C -1D5C6 <font> 006D -1D5C7 <font> 006E -1D5C8 <font> 006F -1D5C9 <font> 0070 -1D5CA <font> 0071 -1D5CB <font> 0072 -1D5CC <font> 0073 -1D5CD <font> 0074 -1D5CE <font> 0075 -1D5CF <font> 0076 -1D5D0 <font> 0077 -1D5D1 <font> 0078 -1D5D2 <font> 0079 -1D5D3 <font> 007A -1D5D4 <font> 0041 -1D5D5 <font> 0042 -1D5D6 <font> 0043 -1D5D7 <font> 0044 -1D5D8 <font> 0045 -1D5D9 <font> 0046 -1D5DA <font> 0047 -1D5DB <font> 0048 -1D5DC <font> 0049 -1D5DD <font> 004A -1D5DE <font> 004B -1D5DF <font> 004C -1D5E0 <font> 004D -1D5E1 <font> 004E -1D5E2 <font> 004F -1D5E3 <font> 0050 -1D5E4 <font> 0051 -1D5E5 <font> 0052 -1D5E6 <font> 0053 -1D5E7 <font> 0054 -1D5E8 <font> 0055 -1D5E9 <font> 0056 -1D5EA <font> 0057 -1D5EB <font> 0058 -1D5EC <font> 0059 -1D5ED <font> 005A -1D5EE <font> 0061 -1D5EF <font> 0062 -1D5F0 <font> 0063 -1D5F1 <font> 0064 -1D5F2 <font> 0065 -1D5F3 <font> 0066 -1D5F4 <font> 0067 -1D5F5 <font> 0068 -1D5F6 <font> 0069 -1D5F7 <font> 006A -1D5F8 <font> 006B -1D5F9 <font> 006C -1D5FA <font> 006D -1D5FB <font> 006E -1D5FC <font> 006F -1D5FD <font> 0070 -1D5FE <font> 0071 -1D5FF <font> 0072 -1D600 <font> 0073 -1D601 <font> 0074 -1D602 <font> 0075 -1D603 <font> 0076 -1D604 <font> 0077 -1D605 <font> 0078 -1D606 <font> 0079 -1D607 <font> 007A -1D608 <font> 0041 -1D609 <font> 0042 -1D60A <font> 0043 -1D60B <font> 0044 -1D60C <font> 0045 -1D60D <font> 0046 -1D60E <font> 0047 -1D60F <font> 0048 -1D610 <font> 0049 -1D611 <font> 004A -1D612 <font> 004B -1D613 <font> 004C -1D614 <font> 004D -1D615 <font> 004E -1D616 <font> 004F -1D617 <font> 0050 -1D618 <font> 0051 -1D619 <font> 0052 -1D61A <font> 0053 -1D61B <font> 0054 -1D61C <font> 0055 -1D61D <font> 0056 -1D61E <font> 0057 -1D61F <font> 0058 -1D620 <font> 0059 -1D621 <font> 005A -1D622 <font> 0061 -1D623 <font> 0062 -1D624 <font> 0063 -1D625 <font> 0064 -1D626 <font> 0065 -1D627 <font> 0066 -1D628 <font> 0067 -1D629 <font> 0068 -1D62A <font> 0069 -1D62B <font> 006A -1D62C <font> 006B -1D62D <font> 006C -1D62E <font> 006D -1D62F <font> 006E -1D630 <font> 006F -1D631 <font> 0070 -1D632 <font> 0071 -1D633 <font> 0072 -1D634 <font> 0073 -1D635 <font> 0074 -1D636 <font> 0075 -1D637 <font> 0076 -1D638 <font> 0077 -1D639 <font> 0078 -1D63A <font> 0079 -1D63B <font> 007A -1D63C <font> 0041 -1D63D <font> 0042 -1D63E <font> 0043 -1D63F <font> 0044 -1D640 <font> 0045 -1D641 <font> 0046 -1D642 <font> 0047 -1D643 <font> 0048 -1D644 <font> 0049 -1D645 <font> 004A -1D646 <font> 004B -1D647 <font> 004C -1D648 <font> 004D -1D649 <font> 004E -1D64A <font> 004F -1D64B <font> 0050 -1D64C <font> 0051 -1D64D <font> 0052 -1D64E <font> 0053 -1D64F <font> 0054 -1D650 <font> 0055 -1D651 <font> 0056 -1D652 <font> 0057 -1D653 <font> 0058 -1D654 <font> 0059 -1D655 <font> 005A -1D656 <font> 0061 -1D657 <font> 0062 -1D658 <font> 0063 -1D659 <font> 0064 -1D65A <font> 0065 -1D65B <font> 0066 -1D65C <font> 0067 -1D65D <font> 0068 -1D65E <font> 0069 -1D65F <font> 006A -1D660 <font> 006B -1D661 <font> 006C -1D662 <font> 006D -1D663 <font> 006E -1D664 <font> 006F -1D665 <font> 0070 -1D666 <font> 0071 -1D667 <font> 0072 -1D668 <font> 0073 -1D669 <font> 0074 -1D66A <font> 0075 -1D66B <font> 0076 -1D66C <font> 0077 -1D66D <font> 0078 -1D66E <font> 0079 -1D66F <font> 007A -1D670 <font> 0041 -1D671 <font> 0042 -1D672 <font> 0043 -1D673 <font> 0044 -1D674 <font> 0045 -1D675 <font> 0046 -1D676 <font> 0047 -1D677 <font> 0048 -1D678 <font> 0049 -1D679 <font> 004A -1D67A <font> 004B -1D67B <font> 004C -1D67C <font> 004D -1D67D <font> 004E -1D67E <font> 004F -1D67F <font> 0050 -1D680 <font> 0051 -1D681 <font> 0052 -1D682 <font> 0053 -1D683 <font> 0054 -1D684 <font> 0055 -1D685 <font> 0056 -1D686 <font> 0057 -1D687 <font> 0058 -1D688 <font> 0059 -1D689 <font> 005A -1D68A <font> 0061 -1D68B <font> 0062 -1D68C <font> 0063 -1D68D <font> 0064 -1D68E <font> 0065 -1D68F <font> 0066 -1D690 <font> 0067 -1D691 <font> 0068 -1D692 <font> 0069 -1D693 <font> 006A -1D694 <font> 006B -1D695 <font> 006C -1D696 <font> 006D -1D697 <font> 006E -1D698 <font> 006F -1D699 <font> 0070 -1D69A <font> 0071 -1D69B <font> 0072 -1D69C <font> 0073 -1D69D <font> 0074 -1D69E <font> 0075 -1D69F <font> 0076 -1D6A0 <font> 0077 -1D6A1 <font> 0078 -1D6A2 <font> 0079 -1D6A3 <font> 007A -1D6A8 <font> 0391 -1D6A9 <font> 0392 -1D6AA <font> 0393 -1D6AB <font> 0394 -1D6AC <font> 0395 -1D6AD <font> 0396 -1D6AE <font> 0397 -1D6AF <font> 0398 -1D6B0 <font> 0399 -1D6B1 <font> 039A -1D6B2 <font> 039B -1D6B3 <font> 039C -1D6B4 <font> 039D -1D6B5 <font> 039E -1D6B6 <font> 039F -1D6B7 <font> 03A0 -1D6B8 <font> 03A1 -1D6B9 <font> 03F4 -1D6BA <font> 03A3 -1D6BB <font> 03A4 -1D6BC <font> 03A5 -1D6BD <font> 03A6 -1D6BE <font> 03A7 -1D6BF <font> 03A8 -1D6C0 <font> 03A9 -1D6C1 <font> 2207 -1D6C2 <font> 03B1 -1D6C3 <font> 03B2 -1D6C4 <font> 03B3 -1D6C5 <font> 03B4 -1D6C6 <font> 03B5 -1D6C7 <font> 03B6 -1D6C8 <font> 03B7 -1D6C9 <font> 03B8 -1D6CA <font> 03B9 -1D6CB <font> 03BA -1D6CC <font> 03BB -1D6CD <font> 03BC -1D6CE <font> 03BD -1D6CF <font> 03BE -1D6D0 <font> 03BF -1D6D1 <font> 03C0 -1D6D2 <font> 03C1 -1D6D3 <font> 03C2 -1D6D4 <font> 03C3 -1D6D5 <font> 03C4 -1D6D6 <font> 03C5 -1D6D7 <font> 03C6 -1D6D8 <font> 03C7 -1D6D9 <font> 03C8 -1D6DA <font> 03C9 -1D6DB <font> 2202 -1D6DC <font> 03F5 -1D6DD <font> 03D1 -1D6DE <font> 03F0 -1D6DF <font> 03D5 -1D6E0 <font> 03F1 -1D6E1 <font> 03D6 -1D6E2 <font> 0391 -1D6E3 <font> 0392 -1D6E4 <font> 0393 -1D6E5 <font> 0394 -1D6E6 <font> 0395 -1D6E7 <font> 0396 -1D6E8 <font> 0397 -1D6E9 <font> 0398 -1D6EA <font> 0399 -1D6EB <font> 039A -1D6EC <font> 039B -1D6ED <font> 039C -1D6EE <font> 039D -1D6EF <font> 039E -1D6F0 <font> 039F -1D6F1 <font> 03A0 -1D6F2 <font> 03A1 -1D6F3 <font> 03F4 -1D6F4 <font> 03A3 -1D6F5 <font> 03A4 -1D6F6 <font> 03A5 -1D6F7 <font> 03A6 -1D6F8 <font> 03A7 -1D6F9 <font> 03A8 -1D6FA <font> 03A9 -1D6FB <font> 2207 -1D6FC <font> 03B1 -1D6FD <font> 03B2 -1D6FE <font> 03B3 -1D6FF <font> 03B4 -1D700 <font> 03B5 -1D701 <font> 03B6 -1D702 <font> 03B7 -1D703 <font> 03B8 -1D704 <font> 03B9 -1D705 <font> 03BA -1D706 <font> 03BB -1D707 <font> 03BC -1D708 <font> 03BD -1D709 <font> 03BE -1D70A <font> 03BF -1D70B <font> 03C0 -1D70C <font> 03C1 -1D70D <font> 03C2 -1D70E <font> 03C3 -1D70F <font> 03C4 -1D710 <font> 03C5 -1D711 <font> 03C6 -1D712 <font> 03C7 -1D713 <font> 03C8 -1D714 <font> 03C9 -1D715 <font> 2202 -1D716 <font> 03F5 -1D717 <font> 03D1 -1D718 <font> 03F0 -1D719 <font> 03D5 -1D71A <font> 03F1 -1D71B <font> 03D6 -1D71C <font> 0391 -1D71D <font> 0392 -1D71E <font> 0393 -1D71F <font> 0394 -1D720 <font> 0395 -1D721 <font> 0396 -1D722 <font> 0397 -1D723 <font> 0398 -1D724 <font> 0399 -1D725 <font> 039A -1D726 <font> 039B -1D727 <font> 039C -1D728 <font> 039D -1D729 <font> 039E -1D72A <font> 039F -1D72B <font> 03A0 -1D72C <font> 03A1 -1D72D <font> 03F4 -1D72E <font> 03A3 -1D72F <font> 03A4 -1D730 <font> 03A5 -1D731 <font> 03A6 -1D732 <font> 03A7 -1D733 <font> 03A8 -1D734 <font> 03A9 -1D735 <font> 2207 -1D736 <font> 03B1 -1D737 <font> 03B2 -1D738 <font> 03B3 -1D739 <font> 03B4 -1D73A <font> 03B5 -1D73B <font> 03B6 -1D73C <font> 03B7 -1D73D <font> 03B8 -1D73E <font> 03B9 -1D73F <font> 03BA -1D740 <font> 03BB -1D741 <font> 03BC -1D742 <font> 03BD -1D743 <font> 03BE -1D744 <font> 03BF -1D745 <font> 03C0 -1D746 <font> 03C1 -1D747 <font> 03C2 -1D748 <font> 03C3 -1D749 <font> 03C4 -1D74A <font> 03C5 -1D74B <font> 03C6 -1D74C <font> 03C7 -1D74D <font> 03C8 -1D74E <font> 03C9 -1D74F <font> 2202 -1D750 <font> 03F5 -1D751 <font> 03D1 -1D752 <font> 03F0 -1D753 <font> 03D5 -1D754 <font> 03F1 -1D755 <font> 03D6 -1D756 <font> 0391 -1D757 <font> 0392 -1D758 <font> 0393 -1D759 <font> 0394 -1D75A <font> 0395 -1D75B <font> 0396 -1D75C <font> 0397 -1D75D <font> 0398 -1D75E <font> 0399 -1D75F <font> 039A -1D760 <font> 039B -1D761 <font> 039C -1D762 <font> 039D -1D763 <font> 039E -1D764 <font> 039F -1D765 <font> 03A0 -1D766 <font> 03A1 -1D767 <font> 03F4 -1D768 <font> 03A3 -1D769 <font> 03A4 -1D76A <font> 03A5 -1D76B <font> 03A6 -1D76C <font> 03A7 -1D76D <font> 03A8 -1D76E <font> 03A9 -1D76F <font> 2207 -1D770 <font> 03B1 -1D771 <font> 03B2 -1D772 <font> 03B3 -1D773 <font> 03B4 -1D774 <font> 03B5 -1D775 <font> 03B6 -1D776 <font> 03B7 -1D777 <font> 03B8 -1D778 <font> 03B9 -1D779 <font> 03BA -1D77A <font> 03BB -1D77B <font> 03BC -1D77C <font> 03BD -1D77D <font> 03BE -1D77E <font> 03BF -1D77F <font> 03C0 -1D780 <font> 03C1 -1D781 <font> 03C2 -1D782 <font> 03C3 -1D783 <font> 03C4 -1D784 <font> 03C5 -1D785 <font> 03C6 -1D786 <font> 03C7 -1D787 <font> 03C8 -1D788 <font> 03C9 -1D789 <font> 2202 -1D78A <font> 03F5 -1D78B <font> 03D1 -1D78C <font> 03F0 -1D78D <font> 03D5 -1D78E <font> 03F1 -1D78F <font> 03D6 -1D790 <font> 0391 -1D791 <font> 0392 -1D792 <font> 0393 -1D793 <font> 0394 -1D794 <font> 0395 -1D795 <font> 0396 -1D796 <font> 0397 -1D797 <font> 0398 -1D798 <font> 0399 -1D799 <font> 039A -1D79A <font> 039B -1D79B <font> 039C -1D79C <font> 039D -1D79D <font> 039E -1D79E <font> 039F -1D79F <font> 03A0 -1D7A0 <font> 03A1 -1D7A1 <font> 03F4 -1D7A2 <font> 03A3 -1D7A3 <font> 03A4 -1D7A4 <font> 03A5 -1D7A5 <font> 03A6 -1D7A6 <font> 03A7 -1D7A7 <font> 03A8 -1D7A8 <font> 03A9 -1D7A9 <font> 2207 -1D7AA <font> 03B1 -1D7AB <font> 03B2 -1D7AC <font> 03B3 -1D7AD <font> 03B4 -1D7AE <font> 03B5 -1D7AF <font> 03B6 -1D7B0 <font> 03B7 -1D7B1 <font> 03B8 -1D7B2 <font> 03B9 -1D7B3 <font> 03BA -1D7B4 <font> 03BB -1D7B5 <font> 03BC -1D7B6 <font> 03BD -1D7B7 <font> 03BE -1D7B8 <font> 03BF -1D7B9 <font> 03C0 -1D7BA <font> 03C1 -1D7BB <font> 03C2 -1D7BC <font> 03C3 -1D7BD <font> 03C4 -1D7BE <font> 03C5 -1D7BF <font> 03C6 -1D7C0 <font> 03C7 -1D7C1 <font> 03C8 -1D7C2 <font> 03C9 -1D7C3 <font> 2202 -1D7C4 <font> 03F5 -1D7C5 <font> 03D1 -1D7C6 <font> 03F0 -1D7C7 <font> 03D5 -1D7C8 <font> 03F1 -1D7C9 <font> 03D6 -1D7CE <font> 0030 -1D7CF <font> 0031 -1D7D0 <font> 0032 -1D7D1 <font> 0033 -1D7D2 <font> 0034 -1D7D3 <font> 0035 -1D7D4 <font> 0036 -1D7D5 <font> 0037 -1D7D6 <font> 0038 -1D7D7 <font> 0039 -1D7D8 <font> 0030 -1D7D9 <font> 0031 -1D7DA <font> 0032 -1D7DB <font> 0033 -1D7DC <font> 0034 -1D7DD <font> 0035 -1D7DE <font> 0036 -1D7DF <font> 0037 -1D7E0 <font> 0038 -1D7E1 <font> 0039 -1D7E2 <font> 0030 -1D7E3 <font> 0031 -1D7E4 <font> 0032 -1D7E5 <font> 0033 -1D7E6 <font> 0034 -1D7E7 <font> 0035 -1D7E8 <font> 0036 -1D7E9 <font> 0037 -1D7EA <font> 0038 -1D7EB <font> 0039 -1D7EC <font> 0030 -1D7ED <font> 0031 -1D7EE <font> 0032 -1D7EF <font> 0033 -1D7F0 <font> 0034 -1D7F1 <font> 0035 -1D7F2 <font> 0036 -1D7F3 <font> 0037 -1D7F4 <font> 0038 -1D7F5 <font> 0039 -1D7F6 <font> 0030 -1D7F7 <font> 0031 -1D7F8 <font> 0032 -1D7F9 <font> 0033 -1D7FA <font> 0034 -1D7FB <font> 0035 -1D7FC <font> 0036 -1D7FD <font> 0037 -1D7FE <font> 0038 -1D7FF <font> 0039 -2F800 4E3D -2F801 4E38 -2F802 4E41 -2F803 20122 -2F804 4F60 -2F805 4FAE -2F806 4FBB -2F807 5002 -2F808 507A -2F809 5099 -2F80A 50E7 -2F80B 50CF -2F80C 349E -2F80D 2063A -2F80E 514D -2F80F 5154 -2F810 5164 -2F811 5177 -2F812 2051C -2F813 34B9 -2F814 5167 -2F815 518D -2F816 2054B -2F817 5197 -2F818 51A4 -2F819 4ECC -2F81A 51AC -2F81B 51B5 -2F81C 291DF -2F81D 51F5 -2F81E 5203 -2F81F 34DF -2F820 523B -2F821 5246 -2F822 5272 -2F823 5277 -2F824 3515 -2F825 52C7 -2F826 52C9 -2F827 52E4 -2F828 52FA -2F829 5305 -2F82A 5306 -2F82B 5317 -2F82C 5349 -2F82D 5351 -2F82E 535A -2F82F 5373 -2F830 537D -2F831 2F833 537F -2F834 20A2C -2F835 7070 -2F836 53CA -2F837 53DF -2F838 20B63 -2F839 53EB -2F83A 53F1 -2F83B 5406 -2F83C 549E -2F83D 5438 -2F83E 5448 -2F83F 5468 -2F840 54A2 -2F841 54F6 -2F842 5510 -2F843 5553 -2F844 5563 -2F845 2F846 5584 -2F847 5599 -2F848 55AB -2F849 55B3 -2F84A 55C2 -2F84B 5716 -2F84C 5606 -2F84D 5717 -2F84E 5651 -2F84F 5674 -2F850 5207 -2F851 58EE -2F852 57CE -2F853 57F4 -2F854 580D -2F855 578B -2F856 5832 -2F857 5831 -2F858 58AC -2F859 214E4 -2F85A 58F2 -2F85B 58F7 -2F85C 5906 -2F85D 591A -2F85E 5922 -2F85F 5962 -2F860 216A8 -2F861 216EA -2F862 59EC -2F863 5A1B -2F864 5A27 -2F865 59D8 -2F866 5A66 -2F867 36EE -2F868 2136A -2F869 5B08 -2F86A 2F86B 5B3E -2F86C 219C8 -2F86D 5BC3 -2F86E 5BD8 -2F86F 5BE7 -2F870 5BF3 -2F871 21B18 -2F872 5BFF -2F873 5C06 -2F874 5F33 -2F875 5C22 -2F876 3781 -2F877 5C60 -2F878 5C6E -2F879 5CC0 -2F87A 5C8D -2F87B 21DE4 -2F87C 5D43 -2F87D 21DE6 -2F87E 5D6E -2F87F 5D6B -2F880 5D7C -2F881 5DE1 -2F882 5DE2 -2F883 382F -2F884 5DFD -2F885 5E28 -2F886 5E3D -2F887 5E69 -2F888 3862 -2F889 22183 -2F88A 387C -2F88B 5EB0 -2F88C 5EB3 -2F88D 5EB6 -2F88E 5ECA -2F88F 2A392 -2F890 5EFE -2F891 2F892 22331 -2F893 8201 -2F894 2F895 5F22 -2F896 38C7 -2F897 232B8 -2F898 261DA -2F899 5F62 -2F89A 5F6B -2F89B 38E3 -2F89C 5F9A -2F89D 5FCD -2F89E 5FD7 -2F89F 5FF9 -2F8A0 6081 -2F8A1 393A -2F8A2 391C -2F8A3 6094 -2F8A4 226D4 -2F8A5 60C7 -2F8A6 6148 -2F8A7 614C -2F8A8 614E -2F8A9 614C -2F8AA 617A -2F8AB 618E -2F8AC 61B2 -2F8AD 61A4 -2F8AE 61AF -2F8AF 61DE -2F8B0 61F2 -2F8B1 61F6 -2F8B2 6210 -2F8B3 621B -2F8B4 625D -2F8B5 62B1 -2F8B6 62D4 -2F8B7 6350 -2F8B8 22B0C -2F8B9 633D -2F8BA 62FC -2F8BB 6368 -2F8BC 6383 -2F8BD 63E4 -2F8BE 22BF1 -2F8BF 6422 -2F8C0 63C5 -2F8C1 63A9 -2F8C2 3A2E -2F8C3 6469 -2F8C4 647E -2F8C5 649D -2F8C6 6477 -2F8C7 3A6C -2F8C8 654F -2F8C9 656C -2F8CA 2300A -2F8CB 65E3 -2F8CC 66F8 -2F8CD 6649 -2F8CE 3B19 -2F8CF 6691 -2F8D0 3B08 -2F8D1 3AE4 -2F8D2 5192 -2F8D3 5195 -2F8D4 6700 -2F8D5 669C -2F8D6 80AD -2F8D7 43D9 -2F8D8 6717 -2F8D9 671B -2F8DA 6721 -2F8DB 675E -2F8DC 6753 -2F8DD 233C3 -2F8DE 3B49 -2F8DF 67FA -2F8E0 6785 -2F8E1 6852 -2F8E2 6885 -2F8E3 2346D -2F8E4 688E -2F8E5 681F -2F8E6 6914 -2F8E7 3B9D -2F8E8 6942 -2F8E9 69A3 -2F8EA 69EA -2F8EB 6AA8 -2F8EC 236A3 -2F8ED 6ADB -2F8EE 3C18 -2F8EF 6B21 -2F8F0 238A7 -2F8F1 6B54 -2F8F2 3C4E -2F8F3 6B72 -2F8F4 6B9F -2F8F5 6BBA -2F8F6 6BBB -2F8F7 23A8D -2F8F8 21D0B -2F8F9 23AFA -2F8FA 6C4E -2F8FB 23CBC -2F8FC 6CBF -2F8FD 6CCD -2F8FE 6C67 -2F8FF 6D16 -2F900 6D3E -2F901 6D77 -2F902 6D41 -2F903 6D69 -2F904 6D78 -2F905 6D85 -2F906 23D1E -2F907 6D34 -2F908 6E2F -2F909 6E6E -2F90A 3D33 -2F90B 6ECB -2F90C 6EC7 -2F90D 23ED1 -2F90E 6DF9 -2F90F 6F6E -2F910 23F5E -2F911 23F8E -2F912 6FC6 -2F913 7039 -2F914 701E -2F915 701B -2F916 3D96 -2F917 704A -2F918 707D -2F919 7077 -2F91A 70AD -2F91B 20525 -2F91C 7145 -2F91D 24263 -2F91E 719C -2F91F 43AB -2F920 7228 -2F921 7235 -2F922 7250 -2F923 24608 -2F924 7280 -2F925 7295 -2F926 24735 -2F927 24814 -2F928 737A -2F929 738B -2F92A 3EAC -2F92B 73A5 -2F92C 2F92D 3EB8 -2F92E 7447 -2F92F 745C -2F930 7471 -2F931 7485 -2F932 74CA -2F933 3F1B -2F934 7524 -2F935 24C36 -2F936 753E -2F937 24C92 -2F938 7570 -2F939 2219F -2F93A 7610 -2F93B 24FA1 -2F93C 24FB8 -2F93D 25044 -2F93E 3FFC -2F93F 4008 -2F940 76F4 -2F941 250F3 -2F942 250F2 -2F943 25119 -2F944 25133 -2F945 771E -2F946 2F947 771F -2F948 774A -2F949 4039 -2F94A 778B -2F94B 4046 -2F94C 4096 -2F94D 2541D -2F94E 784E -2F94F 788C -2F950 78CC -2F951 40E3 -2F952 25626 -2F953 7956 -2F954 2569A -2F955 256C5 -2F956 798F -2F957 79EB -2F958 412F -2F959 7A40 -2F95A 7A4A -2F95B 7A4F -2F95C 2597C -2F95D 2F95E 25AA7 -2F95F 7AAE -2F960 4202 -2F961 25BAB -2F962 7BC6 -2F963 7BC9 -2F964 4227 -2F965 25C80 -2F966 7CD2 -2F967 42A0 -2F968 7CE8 -2F969 7CE3 -2F96A 7D00 -2F96B 25F86 -2F96C 7D63 -2F96D 4301 -2F96E 7DC7 -2F96F 7E02 -2F970 7E45 -2F971 4334 -2F972 26228 -2F973 26247 -2F974 4359 -2F975 262D9 -2F976 7F7A -2F977 2633E -2F978 7F95 -2F979 7FFA -2F97A 8005 -2F97B 264DA -2F97C 26523 -2F97D 8060 -2F97E 265A8 -2F97F 8070 -2F980 2335F -2F981 43D5 -2F982 80B2 -2F983 8103 -2F984 440B -2F985 813E -2F986 5AB5 -2F987 267A7 -2F988 267B5 -2F989 23393 -2F98A 2339C -2F98B 8201 -2F98C 8204 -2F98D 8F9E -2F98E 446B -2F98F 8291 -2F990 828B -2F991 829D -2F992 52B3 -2F993 82B1 -2F994 82B3 -2F995 82BD -2F996 82E6 -2F997 26B3C -2F998 82E5 -2F999 831D -2F99A 8363 -2F99B 83AD -2F99C 8323 -2F99D 83BD -2F99E 83E7 -2F99F 8457 -2F9A0 8353 -2F9A1 83CA -2F9A2 83CC -2F9A3 83DC -2F9A4 26C36 -2F9A5 26D6B -2F9A6 26CD5 -2F9A7 452B -2F9A8 84F1 -2F9A9 84F3 -2F9AA 8516 -2F9AB 273CA -2F9AC 8564 -2F9AD 26F2C -2F9AE 455D -2F9AF 4561 -2F9B0 26FB1 -2F9B1 270D2 -2F9B2 456B -2F9B3 8650 -2F9B4 865C -2F9B5 8667 -2F9B6 8669 -2F9B7 86A9 -2F9B8 8688 -2F9B9 870E -2F9BA 86E2 -2F9BB 8779 -2F9BC 8728 -2F9BD 876B -2F9BE 8786 -2F9BF 4D57 -2F9C0 87E1 -2F9C1 8801 -2F9C2 45F9 -2F9C3 8860 -2F9C4 8863 -2F9C5 27667 -2F9C6 88D7 -2F9C7 88DE -2F9C8 4635 -2F9C9 88FA -2F9CA 34BB -2F9CB 278AE -2F9CC 27966 -2F9CD 46BE -2F9CE 46C7 -2F9CF 8AA0 -2F9D0 8AED -2F9D1 8B8A -2F9D2 8C55 -2F9D3 27CA8 -2F9D4 8CAB -2F9D5 8CC1 -2F9D6 8D1B -2F9D7 8D77 -2F9D8 27F2F -2F9D9 20804 -2F9DA 8DCB -2F9DB 8DBC -2F9DC 8DF0 -2F9DD 208DE -2F9DE 8ED4 -2F9DF 8F38 -2F9E0 285D2 -2F9E1 285ED -2F9E2 9094 -2F9E3 90F1 -2F9E4 9111 -2F9E5 2872E -2F9E6 911B -2F9E7 9238 -2F9E8 92D7 -2F9E9 92D8 -2F9EA 927C -2F9EB 93F9 -2F9EC 9415 -2F9ED 28BFA -2F9EE 958B -2F9EF 4995 -2F9F0 95B7 -2F9F1 28D77 -2F9F2 49E6 -2F9F3 96C3 -2F9F4 5DB2 -2F9F5 9723 -2F9F6 29145 -2F9F7 2921A -2F9F8 4A6E -2F9F9 4A76 -2F9FA 97E0 -2F9FB 2940A -2F9FC 4AB2 -2F9FD 29496 -2F9FE 2F9FF 980B -2FA00 9829 -2FA01 295B6 -2FA02 98E2 -2FA03 4B33 -2FA04 9929 -2FA05 99A7 -2FA06 99C2 -2FA07 99FE -2FA08 4BCE -2FA09 29B30 -2FA0A 9B12 -2FA0B 9C40 -2FA0C 9CFD -2FA0D 4CCE -2FA0E 4CED -2FA0F 9D67 -2FA10 2A0CE -2FA11 4CF8 -2FA12 2A105 -2FA13 2A20E -2FA14 2A291 -2FA15 9EBB -2FA16 4D56 -2FA17 9EF9 -2FA18 9EFE -2FA19 9F05 -2FA1A 9F0F -2FA1B 9F16 -2FA1C 9F3B -2FA1D 2A600 -END diff --git a/gnu/usr.bin/perl/lib/unicore/Exact.pl b/gnu/usr.bin/perl/lib/unicore/Exact.pl deleted file mode 100644 index 61ba06a9e70..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/Exact.pl +++ /dev/null @@ -1,110 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -## -## Data in this file used by ../utf8_heavy.pl -## - -## Mapping from name to filename in ./lib -%utf8::Exact = ( - ASCII => 'ASCII', - All => 'Any', - Alnum => 'Alnum', - Alpha => 'Alpha', - Any => 'Any', - Assigned => 'Assigned', - BidiAL => 'BidiAL', - BidiAN => 'BidiAN', - BidiB => 'BidiB', - BidiBN => 'BidiBN', - BidiCS => 'BidiCS', - BidiEN => 'BidiEN', - BidiES => 'BidiES', - BidiET => 'BidiET', - BidiL => 'BidiL', - BidiLRE => 'BidiLRE', - BidiLRO => 'BidiLRO', - BidiNSM => 'BidiNSM', - BidiON => 'BidiON', - BidiPDF => 'BidiPDF', - BidiR => 'BidiR', - BidiRLE => 'BidiRLE', - BidiRLO => 'BidiRLO', - BidiS => 'BidiS', - BidiWS => 'BidiWS', - Blank => 'Blank', - C => 'C', - Canon => 'Canon', - Cc => 'Cc', - Cf => 'Cf', - Cn => 'Cn', - Cntrl => 'Cntrl', - Co => 'Co', - Compat => 'Compat', - Cs => 'Cs', - DCcircle => 'DCcircle', - DCcompat => 'DCcompat', - DCfinal => 'DCfinal', - DCfont => 'DCfont', - DCfraction => 'DCfracti', - DCinitial => 'DCinitia', - DCisolated => 'DCisolat', - DCmedial => 'DCmedial', - DCnarrow => 'DCnarrow', - DCnoBreak => 'DCnoBrea', - DCsmall => 'DCsmall', - DCsquare => 'DCsquare', - DCsub => 'DCsub', - DCsuper => 'DCsuper', - DCvertical => 'DCvertic', - DCwide => 'DCwide', - Digit => 'Digit', - Graph => 'Graph', - L => 'L', -'L&' => 'L_', - Ll => 'Ll', - Lm => 'Lm', - Lo => 'Lo', - Lower => 'Lower', - Lt => 'Lt', - Lu => 'Lu', - M => 'M', - Mc => 'Mc', - Me => 'Me', - Mirrored => 'Mirrored', - Mn => 'Mn', - N => 'N', - Nd => 'Nd', - Nl => 'Nl', - No => 'No', - P => 'P', - Pc => 'Pc', - Pd => 'Pd', - Pe => 'Pe', - Pf => 'Pf', - Pi => 'Pi', - Po => 'Po', - Print => 'Print', - Ps => 'Ps', - Punct => 'Punct', - S => 'S', - Sc => 'Sc', - Sk => 'Sk', - Sm => 'Sm', - So => 'So', - Space => 'Space', - SpacePerl => 'SpacePer', - Title => 'Title', - Upper => 'Upper', - Word => 'Word', - XDigit => 'XDigit', - Z => 'Z', - Zl => 'Zl', - Zp => 'Zp', - Zs => 'Zs', - _CanonDCIJ => '_CanonDC', - _CaseIgnorable => '_CaseIgn', - _CombAbove => '_CombAbo', -); -1; diff --git a/gnu/usr.bin/perl/lib/unicore/JamoShort.pl b/gnu/usr.bin/perl/lib/unicore/JamoShort.pl deleted file mode 100644 index 4ab02fd5449..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/JamoShort.pl +++ /dev/null @@ -1,73 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -return <<'END'; -1100 G -1101 GG -1102 N -1103 D -1104 DD -1105 R -1106 M -1107 B -1108 BB -1109 S -110A SS -110B -110C J -110D JJ -110E C -110F K -1110 T -1111 P -1112 H -1161 A -1162 AE -1163 YA -1164 YAE -1165 EO -1166 E -1167 YEO -1168 YE -1169 O -116A WA -116B WAE -116C OE -116D YO -116E U -116F WEO -1170 WE -1171 WI -1172 YU -1173 EU -1174 YI -1175 I -11A8 G -11A9 GG -11AA GS -11AB N -11AC NJ -11AD NH -11AE D -11AF L -11B0 LG -11B1 LM -11B2 LB -11B3 LS -11B4 LT -11B5 LP -11B6 LH -11B7 M -11B8 B -11B9 BS -11BA S -11BB SS -11BC NG -11BD J -11BE C -11BF K -11C0 T -11C1 P -11C2 H -END diff --git a/gnu/usr.bin/perl/lib/unicore/Lbrk.pl b/gnu/usr.bin/perl/lib/unicore/Lbrk.pl deleted file mode 100644 index 0a4eb153697..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/Lbrk.pl +++ /dev/null @@ -1,1073 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -return <<'END'; -0000 0008 CM -0009 BA -000A LF -000B CM -000C BK -000D CR -000E 001F CM -0020 SP -0021 EX -0022 QU -0023 AL -0024 PR -0025 PO -0026 AL -0027 QU -0028 OP -0029 CL -002A AL -002B PR -002C IS -002D HY -002E IS -002F SY -0030 0039 NU -003A 003B IS -003C 003E AL -003F EX -0040 005A AL -005B OP -005C PR -005D CL -005E 007A AL -007B OP -007C BA -007D CL -007E AL -007F 009F CM -00A0 GL -00A1 AI -00A2 PO -00A3 00A5 PR -00A6 AL -00A7 00A8 AI -00A9 AL -00AA AI -00AB QU -00AC AL -00AD BA -00AE 00AF AL -00B0 PO -00B1 PR -00B2 00B3 AI -00B4 BB -00B5 AL -00B6 00BA AI -00BB QU -00BC 00BF AI -00C0 00C5 AL -00C6 AI -00C7 00CF AL -00D0 AI -00D1 00D6 AL -00D7 00D8 AI -00D9 00DD AL -00DE 00E1 AI -00E2 00E5 AL -00E6 AI -00E7 AL -00E8 00EA AI -00EB AL -00EC 00ED AI -00EE 00EF AL -00F0 AI -00F1 AL -00F2 00F3 AI -00F4 00F6 AL -00F7 00FA AI -00FB AL -00FC AI -00FD AL -00FE AI -00FF 0100 AL -0101 AI -0102 0110 AL -0111 AI -0112 AL -0113 AI -0114 011A AL -011B AI -011C 0125 AL -0126 0127 AI -0128 012A AL -012B AI -012C 0130 AL -0131 0133 AI -0134 0137 AL -0138 AI -0139 013E AL -013F 0142 AI -0143 AL -0144 AI -0145 0147 AL -0148 014A AI -014B 014C AL -014D AI -014E 0151 AL -0152 0153 AI -0154 0165 AL -0166 0167 AI -0168 016A AL -016B AI -016C 01CD AL -01CE AI -01CF AL -01D0 AI -01D1 AL -01D2 AI -01D3 AL -01D4 AI -01D5 AL -01D6 AI -01D7 AL -01D8 AI -01D9 AL -01DA AI -01DB AL -01DC AI -01DD 0220 AL -0222 0233 AL -0250 AL -0251 AI -0252 0260 AL -0261 AI -0262 02AD AL -02B0 02C6 AL -02C7 AI -02C8 BB -02C9 02CB AI -02CC BB -02CD AI -02CE 02CF AL -02D0 AI -02D1 02D7 AL -02D8 02DB AI -02DC AL -02DD AI -02DE 02EE AL -0300 034F CM -0360 036F CM -0374 0375 AL -037A AL -037E AL -0384 038A AL -038C AL -038E 0390 AL -0391 03A1 AI -03A3 03A9 AI -03AA 03B0 AL -03B1 03C1 AI -03C2 AL -03C3 03C9 AI -03CA 03CE AL -03D0 03F6 AL -0400 AL -0401 AI -0402 040F AL -0410 044F AI -0450 AL -0451 AI -0452 0482 AL -0483 0486 CM -0488 0489 CM -048A 04CE AL -04D0 04F5 AL -04F8 04F9 AL -0500 050F AL -0531 0556 AL -0559 055F AL -0561 0587 AL -0589 IS -058A BA -0591 05A1 CM -05A3 05B9 CM -05BB 05BD CM -05BE AL -05BF CM -05C0 AL -05C1 05C2 CM -05C3 AL -05C4 CM -05D0 05EA AL -05F0 05F4 AL -060C AL -061B AL -061F AL -0621 063A AL -0640 064A AL -064B 0655 CM -0660 0669 NU -066A 066F AL -0670 CM -0671 06D5 AL -06D6 06E4 CM -06E5 06E6 AL -06E7 06E8 CM -06E9 AL -06EA 06ED CM -06F0 06F9 NU -06FA 06FE AL -0700 070D AL -070F CM -0710 AL -0711 CM -0712 072C AL -0730 074A CM -0780 07A5 AL -07A6 07B0 CM -07B1 AL -0901 0903 CM -0905 0939 AL -093C CM -093D AL -093E 094D CM -0950 AL -0951 0954 CM -0958 0961 AL -0962 0963 CM -0964 0965 AL -0966 096F NU -0970 AL -0981 0983 CM -0985 098C AL -098F 0990 AL -0993 09A8 AL -09AA 09B0 AL -09B2 AL -09B6 09B9 AL -09BC CM -09BE 09C4 CM -09C7 09C8 CM -09CB 09CD CM -09D7 CM -09DC 09DD AL -09DF 09E1 AL -09E2 09E3 CM -09E6 09EF NU -09F0 09F1 AL -09F2 09F3 PR -09F4 09FA AL -0A02 CM -0A05 0A0A AL -0A0F 0A10 AL -0A13 0A28 AL -0A2A 0A30 AL -0A32 0A33 AL -0A35 0A36 AL -0A38 0A39 AL -0A3C CM -0A3E 0A42 CM -0A47 0A48 CM -0A4B 0A4D CM -0A59 0A5C AL -0A5E AL -0A66 0A6F NU -0A70 0A71 CM -0A72 0A74 AL -0A81 0A83 CM -0A85 0A8B AL -0A8D AL -0A8F 0A91 AL -0A93 0AA8 AL -0AAA 0AB0 AL -0AB2 0AB3 AL -0AB5 0AB9 AL -0ABC CM -0ABD AL -0ABE 0AC5 CM -0AC7 0AC9 CM -0ACB 0ACD CM -0AD0 AL -0AE0 AL -0AE6 0AEF NU -0B01 0B03 CM -0B05 0B0C AL -0B0F 0B10 AL -0B13 0B28 AL -0B2A 0B30 AL -0B32 0B33 AL -0B36 0B39 AL -0B3C CM -0B3D AL -0B3E 0B43 CM -0B47 0B48 CM -0B4B 0B4D CM -0B56 0B57 CM -0B5C 0B5D AL -0B5F 0B61 AL -0B66 0B6F NU -0B70 AL -0B82 CM -0B83 AL -0B85 0B8A AL -0B8E 0B90 AL -0B92 0B95 AL -0B99 0B9A AL -0B9C AL -0B9E 0B9F AL -0BA3 0BA4 AL -0BA8 0BAA AL -0BAE 0BB5 AL -0BB7 0BB9 AL -0BBE 0BC2 CM -0BC6 0BC8 CM -0BCA 0BCD CM -0BD7 CM -0BE7 0BEF NU -0BF0 0BF2 AL -0C01 0C03 CM -0C05 0C0C AL -0C0E 0C10 AL -0C12 0C28 AL -0C2A 0C33 AL -0C35 0C39 AL -0C3E 0C44 CM -0C46 0C48 CM -0C4A 0C4D CM -0C55 0C56 CM -0C60 0C61 AL -0C66 0C6F NU -0C82 0C83 CM -0C85 0C8C AL -0C8E 0C90 AL -0C92 0CA8 AL -0CAA 0CB3 AL -0CB5 0CB9 AL -0CBE 0CC4 CM -0CC6 0CC8 CM -0CCA 0CCD CM -0CD5 0CD6 CM -0CDE AL -0CE0 0CE1 AL -0CE6 0CEF NU -0D02 0D03 CM -0D05 0D0C AL -0D0E 0D10 AL -0D12 0D28 AL -0D2A 0D39 AL -0D3E 0D43 CM -0D46 0D48 CM -0D4A 0D4D CM -0D57 CM -0D60 0D61 AL -0D66 0D6F NU -0D82 0D83 CM -0D85 0D96 AL -0D9A 0DB1 AL -0DB3 0DBB AL -0DBD AL -0DC0 0DC6 AL -0DCA CM -0DCF 0DD4 CM -0DD6 CM -0DD8 0DDF CM -0DF2 0DF3 CM -0DF4 AL -0E01 0E30 SA -0E31 CM -0E32 0E33 SA -0E34 0E3A CM -0E3F PR -0E40 0E46 SA -0E47 0E4E CM -0E4F AL -0E50 0E59 NU -0E5A 0E5B NS -0E81 0E82 SA -0E84 SA -0E87 0E88 SA -0E8A SA -0E8D SA -0E94 0E97 SA -0E99 0E9F SA -0EA1 0EA3 SA -0EA5 SA -0EA7 SA -0EAA 0EAB SA -0EAD 0EB0 SA -0EB1 CM -0EB2 0EB3 SA -0EB4 0EB9 CM -0EBB 0EBC CM -0EBD SA -0EC0 0EC4 SA -0EC6 SA -0EC8 0ECD CM -0ED0 0ED9 NU -0EDC 0EDD SA -0F00 0F0A AL -0F0B BA -0F0C GL -0F0D 0F17 AL -0F18 0F19 CM -0F1A 0F1F AL -0F20 0F29 NU -0F2A 0F34 AL -0F35 CM -0F36 AL -0F37 CM -0F38 AL -0F39 CM -0F3A OP -0F3B CL -0F3C OP -0F3D CL -0F3E 0F3F CM -0F40 0F47 AL -0F49 0F6A AL -0F71 0F84 CM -0F85 AL -0F86 0F87 CM -0F88 0F8B AL -0F90 0F97 CM -0F99 0FBC CM -0FBE 0FC5 AL -0FC6 CM -0FC7 0FCC AL -0FCF AL -1000 1021 SA -1023 1027 SA -1029 102A SA -102C 1032 CM -1036 1039 CM -1040 1049 NU -104A 104F AL -1050 1055 SA -1056 1059 CM -10A0 10C5 AL -10D0 10F8 AL -10FB AL -1100 1159 ID -115F ID -1160 11A2 CM -11A8 11F9 CM -1200 1206 AL -1208 1246 AL -1248 AL -124A 124D AL -1250 1256 AL -1258 AL -125A 125D AL -1260 1286 AL -1288 AL -128A 128D AL -1290 12AE AL -12B0 AL -12B2 12B5 AL -12B8 12BE AL -12C0 AL -12C2 12C5 AL -12C8 12CE AL -12D0 12D6 AL -12D8 12EE AL -12F0 130E AL -1310 AL -1312 1315 AL -1318 131E AL -1320 1346 AL -1348 135A AL -1361 BA -1362 1368 AL -1369 1371 NU -1372 137C AL -13A0 13F4 AL -1401 1676 AL -1680 BA -1681 169A AL -169B OP -169C CL -16A0 16F0 AL -1700 170C AL -170E 1711 AL -1712 1714 CM -1720 1731 AL -1732 1734 CM -1735 1736 AL -1740 1751 AL -1752 1753 CM -1760 176C AL -176E 1770 AL -1772 1773 CM -1780 17B3 SA -17B4 17D3 CM -17D4 NS -17D5 BA -17D6 17DA NS -17DB PR -17DC AL -17E0 17E9 NU -1800 1805 AL -1806 BB -1807 180A AL -180B 180E CM -1810 1819 NU -1820 1877 AL -1880 18A8 AL -18A9 CM -1E00 1E9B AL -1EA0 1EF9 AL -1F00 1F15 AL -1F18 1F1D AL -1F20 1F45 AL -1F48 1F4D AL -1F50 1F57 AL -1F59 AL -1F5B AL -1F5D AL -1F5F 1F7D AL -1F80 1FB4 AL -1FB6 1FC4 AL -1FC6 1FD3 AL -1FD6 1FDB AL -1FDD 1FEF AL -1FF2 1FF4 AL -1FF6 1FFE AL -2000 2006 BA -2007 GL -2008 200A BA -200B ZW -200C 200F CM -2010 BA -2011 GL -2012 2013 BA -2014 B2 -2015 2016 AI -2017 AL -2018 2019 QU -201A OP -201B 201D QU -201E OP -201F QU -2020 2021 AI -2022 2023 AL -2024 2026 IN -2027 BA -2028 2029 BK -202A 202E CM -202F GL -2030 2037 PO -2038 AL -2039 203A QU -203B AI -203C NS -203D 2043 AL -2044 NS -2045 OP -2046 CL -2047 2052 AL -2057 AL -205F BA -2060 GL -2061 2063 AL -206A 206F CM -2070 2071 AL -2074 AI -2075 207C AL -207D OP -207E CL -207F AI -2080 AL -2081 2084 AI -2085 208C AL -208D OP -208E CL -20A0 20A6 PR -20A7 PO -20A8 20B1 PR -20D0 20EA CM -2100 2102 AL -2103 PO -2104 AL -2105 AI -2106 2108 AL -2109 PO -210A 2112 AL -2113 AI -2114 2115 AL -2116 PR -2117 2120 AL -2121 2122 AI -2123 2125 AL -2126 PO -2127 212A AL -212B AI -212C 213A AL -213D 213F AL -2140 AI -2141 214B AL -2153 AL -2154 2155 AI -2156 215A AL -215B AI -215C 215D AL -215E AI -215F AL -2160 216B AI -216C 216F AL -2170 2179 AI -217A 2183 AL -2190 2199 AI -219A 21D1 AL -21D2 AI -21D3 AL -21D4 AI -21D5 21FF AL -2200 AI -2201 AL -2202 2203 AI -2204 2206 AL -2207 2208 AI -2209 220A AL -220B AI -220C 220E AL -220F AI -2210 AL -2211 AI -2212 2213 PR -2214 AL -2215 AI -2216 2219 AL -221A AI -221B 221C AL -221D 2220 AI -2221 2222 AL -2223 AI -2224 AL -2225 AI -2226 AL -2227 222C AI -222D AL -222E AI -222F 2233 AL -2234 2237 AI -2238 223B AL -223C 223D AI -223E 2247 AL -2248 AI -2249 224B AL -224C AI -224D 2251 AL -2252 AI -2253 225F AL -2260 2261 AI -2262 2263 AL -2264 2267 AI -2268 2269 AL -226A 226B AI -226C 226D AL -226E 226F AI -2270 2281 AL -2282 2283 AI -2284 2285 AL -2286 2287 AI -2288 2294 AL -2295 AI -2296 2298 AL -2299 AI -229A 22A4 AL -22A5 AI -22A6 22BE AL -22BF AI -22C0 2311 AL -2312 AI -2313 2328 AL -2329 OP -232A CL -232B 23B3 AL -23B4 OP -23B5 CL -23B6 QU -23B7 23CE AL -2400 2426 AL -2440 244A AL -2460 24BF AI -24C0 24CF AL -24D0 24E9 AI -24EA AL -24EB 24FE AI -2500 254B AI -254C 254F AL -2550 2574 AI -2575 257F AL -2580 258F AI -2590 2591 AL -2592 2595 AI -2596 259F AL -25A0 25A1 AI -25A2 AL -25A3 25A9 AI -25AA 25B1 AL -25B2 25B3 AI -25B4 25B5 AL -25B6 25B7 AI -25B8 25BB AL -25BC 25BD AI -25BE 25BF AL -25C0 25C1 AI -25C2 25C5 AL -25C6 25C8 AI -25C9 25CA AL -25CB AI -25CC 25CD AL -25CE 25D1 AI -25D2 25E1 AL -25E2 25E5 AI -25E6 25EE AL -25EF AI -25F0 2604 AL -2605 2606 AI -2607 2608 AL -2609 AI -260A 260D AL -260E 260F AI -2610 2613 AL -2616 2617 AI -2619 261B AL -261C AI -261D AL -261E AI -261F 263F AL -2640 AI -2641 AL -2642 AI -2643 265F AL -2660 2661 AI -2662 AL -2663 2665 AI -2666 AL -2667 266A AI -266B AL -266C 266D AI -266E AL -266F AI -2670 267D AL -2680 2689 AL -2701 2704 AL -2706 2709 AL -270C 2727 AL -2729 274B AL -274D AL -274F 2752 AL -2756 AL -2758 275A AL -275B 275E QU -2761 AL -2762 2763 EX -2764 2767 AL -2768 OP -2769 CL -276A OP -276B CL -276C OP -276D CL -276E OP -276F CL -2770 OP -2771 CL -2772 OP -2773 CL -2774 OP -2775 CL -2776 2794 AL -2798 27AF AL -27B1 27BE AL -27D0 27E5 AL -27E6 OP -27E7 CL -27E8 OP -27E9 CL -27EA OP -27EB CL -27F0 2982 AL -2983 OP -2984 CL -2985 OP -2986 CL -2987 OP -2988 CL -2989 OP -298A CL -298B OP -298C CL -298D OP -298E CL -298F OP -2990 CL -2991 OP -2992 CL -2993 OP -2994 CL -2995 OP -2996 CL -2997 OP -2998 CL -2999 29D7 AL -29D8 OP -29D9 CL -29DA OP -29DB CL -29DC 29FB AL -29FC OP -29FD CL -29FE 2AFF AL -2E80 2E99 ID -2E9B 2EF3 ID -2F00 2FD5 ID -2FF0 2FFB ID -3000 ID -3001 3002 CL -3003 3004 ID -3005 NS -3006 3007 ID -3008 OP -3009 CL -300A OP -300B CL -300C OP -300D CL -300E OP -300F CL -3010 OP -3011 CL -3012 3013 ID -3014 OP -3015 CL -3016 OP -3017 CL -3018 OP -3019 CL -301A OP -301B CL -301C NS -301D OP -301E 301F CL -3020 3029 ID -302A 302F CM -3030 303A ID -303B 303C NS -303D 303F ID -3041 NS -3042 ID -3043 NS -3044 ID -3045 NS -3046 ID -3047 NS -3048 ID -3049 NS -304A 3062 ID -3063 NS -3064 3082 ID -3083 NS -3084 ID -3085 NS -3086 ID -3087 NS -3088 308D ID -308E NS -308F 3094 ID -3095 3096 NS -3099 309A CM -309B 309E NS -309F ID -30A0 30A1 NS -30A2 ID -30A3 NS -30A4 ID -30A5 NS -30A6 ID -30A7 NS -30A8 ID -30A9 NS -30AA 30C2 ID -30C3 NS -30C4 30E2 ID -30E3 NS -30E4 ID -30E5 NS -30E6 ID -30E7 NS -30E8 30ED ID -30EE NS -30EF 30F4 ID -30F5 30F6 NS -30F7 30FA ID -30FB NS -30FC ID -30FD NS -30FE 30FF ID -3105 312C ID -3131 318E ID -3190 31B7 ID -31F0 31FF NS -3200 321C ID -3220 3243 ID -3251 327B ID -327F 32CB ID -32D0 32FE ID -3300 3376 ID -337B 33DD ID -33E0 33FE ID -3400 4DB5 ID -4E00 9FA5 ID -A000 A48C ID -A490 A4C6 ID -AC00 D7A3 ID -D800 DFFF SG -E000 F8FF XX -F900 FA2D ID -FA30 FA6A ID -FB00 FB06 AL -FB13 FB17 AL -FB1D AL -FB1E CM -FB1F FB36 AL -FB38 FB3C AL -FB3E AL -FB40 FB41 AL -FB43 FB44 AL -FB46 FBB1 AL -FBD3 FD3D AL -FD3E OP -FD3F CL -FD50 FD8F AL -FD92 FDC7 AL -FDF0 FDFB AL -FDFC PO -FE00 FE0F CM -FE20 FE23 CM -FE30 FE34 ID -FE35 OP -FE36 CL -FE37 OP -FE38 CL -FE39 OP -FE3A CL -FE3B OP -FE3C CL -FE3D OP -FE3E CL -FE3F OP -FE40 CL -FE41 OP -FE42 CL -FE43 OP -FE44 CL -FE45 FE46 ID -FE49 FE4F ID -FE50 CL -FE51 ID -FE52 CL -FE54 FE55 NS -FE56 FE57 EX -FE58 ID -FE59 OP -FE5A CL -FE5B OP -FE5C CL -FE5D OP -FE5E CL -FE5F FE66 ID -FE68 ID -FE69 PR -FE6A PO -FE6B ID -FE70 FE74 AL -FE76 FEFC AL -FEFF GL -FF01 EX -FF02 FF03 ID -FF04 PR -FF05 PO -FF06 FF07 ID -FF08 OP -FF09 CL -FF0A FF0B ID -FF0C CL -FF0D ID -FF0E CL -FF0F FF19 ID -FF1A FF1B NS -FF1C FF1E ID -FF1F EX -FF20 FF3A ID -FF3B OP -FF3C ID -FF3D CL -FF3E FF5A ID -FF5B OP -FF5C ID -FF5D CL -FF5E ID -FF5F OP -FF60 FF61 CL -FF62 OP -FF63 FF64 CL -FF65 NS -FF66 AL -FF67 FF70 NS -FF71 FF9D AL -FF9E FF9F NS -FFA0 FFBE AL -FFC2 FFC7 AL -FFCA FFCF AL -FFD2 FFD7 AL -FFDA FFDC AL -FFE0 PO -FFE1 PR -FFE2 FFE4 ID -FFE5 FFE6 PR -FFE8 FFEE AL -FFF9 FFFB CM -FFFC CB -FFFD AI -10300 1031E AL -10320 10323 AL -10330 1034A AL -10400 10425 AL -10428 1044D AL -1D000 1D0F5 AL -1D100 1D126 AL -1D12A 1D164 AL -1D165 1D169 CM -1D16A 1D16C AL -1D16D 1D182 CM -1D183 1D184 AL -1D185 1D18B CM -1D18C 1D1A9 AL -1D1AA 1D1AD CM -1D1AE 1D1DD AL -1D400 1D454 AL -1D456 1D49C AL -1D49E 1D49F AL -1D4A2 AL -1D4A5 1D4A6 AL -1D4A9 1D4AC AL -1D4AE 1D4B9 AL -1D4BB AL -1D4BD 1D4C0 AL -1D4C2 1D4C3 AL -1D4C5 1D505 AL -1D507 1D50A AL -1D50D 1D514 AL -1D516 1D51C AL -1D51E 1D539 AL -1D53B 1D53E AL -1D540 1D544 AL -1D546 AL -1D54A 1D550 AL -1D552 1D6A3 AL -1D6A8 1D7C9 AL -1D7CE 1D7FF NU -20000 2A6D6 ID -2F800 2FA1D ID -E0001 CM -E0020 E007F CM -F0000 FFFFD XX -100000 10FFFD XX -END diff --git a/gnu/usr.bin/perl/lib/unicore/Name.pl b/gnu/usr.bin/perl/lib/unicore/Name.pl deleted file mode 100644 index 2dde9fdd3b1..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/Name.pl +++ /dev/null @@ -1,13869 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -return <<'END'; -0000 NULL -0001 START OF HEADING -0002 START OF TEXT -0003 END OF TEXT -0004 END OF TRANSMISSION -0005 ENQUIRY -0006 ACKNOWLEDGE -0007 BELL -0008 BACKSPACE -0009 CHARACTER TABULATION -000A LINE FEED (LF) -000B LINE TABULATION -000C FORM FEED (FF) -000D CARRIAGE RETURN (CR) -000E SHIFT OUT -000F SHIFT IN -0010 DATA LINK ESCAPE -0011 DEVICE CONTROL ONE -0012 DEVICE CONTROL TWO -0013 DEVICE CONTROL THREE -0014 DEVICE CONTROL FOUR -0015 NEGATIVE ACKNOWLEDGE -0016 SYNCHRONOUS IDLE -0017 END OF TRANSMISSION BLOCK -0018 CANCEL -0019 END OF MEDIUM -001A SUBSTITUTE -001B ESCAPE -001C INFORMATION SEPARATOR FOUR -001D INFORMATION SEPARATOR THREE -001E INFORMATION SEPARATOR TWO -001F INFORMATION SEPARATOR ONE -0020 SPACE -0021 EXCLAMATION MARK -0022 QUOTATION MARK -0023 NUMBER SIGN -0024 DOLLAR SIGN -0025 PERCENT SIGN -0026 AMPERSAND -0027 APOSTROPHE -0028 LEFT PARENTHESIS -0029 RIGHT PARENTHESIS -002A ASTERISK -002B PLUS SIGN -002C COMMA -002D HYPHEN-MINUS -002E FULL STOP -002F SOLIDUS -0030 DIGIT ZERO -0031 DIGIT ONE -0032 DIGIT TWO -0033 DIGIT THREE -0034 DIGIT FOUR -0035 DIGIT FIVE -0036 DIGIT SIX -0037 DIGIT SEVEN -0038 DIGIT EIGHT -0039 DIGIT NINE -003A COLON -003B SEMICOLON -003C LESS-THAN SIGN -003D EQUALS SIGN -003E GREATER-THAN SIGN -003F QUESTION MARK -0040 COMMERCIAL AT -0041 LATIN CAPITAL LETTER A -0042 LATIN CAPITAL LETTER B -0043 LATIN CAPITAL LETTER C -0044 LATIN CAPITAL LETTER D -0045 LATIN CAPITAL LETTER E -0046 LATIN CAPITAL LETTER F -0047 LATIN CAPITAL LETTER G -0048 LATIN CAPITAL LETTER H -0049 LATIN CAPITAL LETTER I -004A LATIN CAPITAL LETTER J -004B LATIN CAPITAL LETTER K -004C LATIN CAPITAL LETTER L -004D LATIN CAPITAL LETTER M -004E LATIN CAPITAL LETTER N -004F LATIN CAPITAL LETTER O -0050 LATIN CAPITAL LETTER P -0051 LATIN CAPITAL LETTER Q -0052 LATIN CAPITAL LETTER R -0053 LATIN CAPITAL LETTER S -0054 LATIN CAPITAL LETTER T -0055 LATIN CAPITAL LETTER U -0056 LATIN CAPITAL LETTER V -0057 LATIN CAPITAL LETTER W -0058 LATIN CAPITAL LETTER X -0059 LATIN CAPITAL LETTER Y -005A LATIN CAPITAL LETTER Z -005B LEFT SQUARE BRACKET -005C REVERSE SOLIDUS -005D RIGHT SQUARE BRACKET -005E CIRCUMFLEX ACCENT -005F LOW LINE -0060 GRAVE ACCENT -0061 LATIN SMALL LETTER A -0062 LATIN SMALL LETTER B -0063 LATIN SMALL LETTER C -0064 LATIN SMALL LETTER D -0065 LATIN SMALL LETTER E -0066 LATIN SMALL LETTER F -0067 LATIN SMALL LETTER G -0068 LATIN SMALL LETTER H -0069 LATIN SMALL LETTER I -006A LATIN SMALL LETTER J -006B LATIN SMALL LETTER K -006C LATIN SMALL LETTER L -006D LATIN SMALL LETTER M -006E LATIN SMALL LETTER N -006F LATIN SMALL LETTER O -0070 LATIN SMALL LETTER P -0071 LATIN SMALL LETTER Q -0072 LATIN SMALL LETTER R -0073 LATIN SMALL LETTER S -0074 LATIN SMALL LETTER T -0075 LATIN SMALL LETTER U -0076 LATIN SMALL LETTER V -0077 LATIN SMALL LETTER W -0078 LATIN SMALL LETTER X -0079 LATIN SMALL LETTER Y -007A LATIN SMALL LETTER Z -007B LEFT CURLY BRACKET -007C VERTICAL LINE -007D RIGHT CURLY BRACKET -007E TILDE -007F DELETE -0080 0081 <control> -0082 BREAK PERMITTED HERE -0083 NO BREAK HERE -0084 <control> -0085 NEXT LINE (NEL) -0086 START OF SELECTED AREA -0087 END OF SELECTED AREA -0088 CHARACTER TABULATION SET -0089 CHARACTER TABULATION WITH JUSTIFICATION -008A LINE TABULATION SET -008B PARTIAL LINE FORWARD -008C PARTIAL LINE BACKWARD -008D REVERSE LINE FEED -008E SINGLE SHIFT TWO -008F SINGLE SHIFT THREE -0090 DEVICE CONTROL STRING -0091 PRIVATE USE ONE -0092 PRIVATE USE TWO -0093 SET TRANSMIT STATE -0094 CANCEL CHARACTER -0095 MESSAGE WAITING -0096 START OF GUARDED AREA -0097 END OF GUARDED AREA -0098 START OF STRING -0099 <control> -009A SINGLE CHARACTER INTRODUCER -009B CONTROL SEQUENCE INTRODUCER -009C STRING TERMINATOR -009D OPERATING SYSTEM COMMAND -009E PRIVACY MESSAGE -009F APPLICATION PROGRAM COMMAND -00A0 NO-BREAK SPACE -00A1 INVERTED EXCLAMATION MARK -00A2 CENT SIGN -00A3 POUND SIGN -00A4 CURRENCY SIGN -00A5 YEN SIGN -00A6 BROKEN BAR -00A7 SECTION SIGN -00A8 DIAERESIS -00A9 COPYRIGHT SIGN -00AA FEMININE ORDINAL INDICATOR -00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK -00AC NOT SIGN -00AD SOFT HYPHEN -00AE REGISTERED SIGN -00AF MACRON -00B0 DEGREE SIGN -00B1 PLUS-MINUS SIGN -00B2 SUPERSCRIPT TWO -00B3 SUPERSCRIPT THREE -00B4 ACUTE ACCENT -00B5 MICRO SIGN -00B6 PILCROW SIGN -00B7 MIDDLE DOT -00B8 CEDILLA -00B9 SUPERSCRIPT ONE -00BA MASCULINE ORDINAL INDICATOR -00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK -00BC VULGAR FRACTION ONE QUARTER -00BD VULGAR FRACTION ONE HALF -00BE VULGAR FRACTION THREE QUARTERS -00BF INVERTED QUESTION MARK -00C0 LATIN CAPITAL LETTER A WITH GRAVE -00C1 LATIN CAPITAL LETTER A WITH ACUTE -00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX -00C3 LATIN CAPITAL LETTER A WITH TILDE -00C4 LATIN CAPITAL LETTER A WITH DIAERESIS -00C5 LATIN CAPITAL LETTER A WITH RING ABOVE -00C6 LATIN CAPITAL LETTER AE -00C7 LATIN CAPITAL LETTER C WITH CEDILLA -00C8 LATIN CAPITAL LETTER E WITH GRAVE -00C9 LATIN CAPITAL LETTER E WITH ACUTE -00CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX -00CB LATIN CAPITAL LETTER E WITH DIAERESIS -00CC LATIN CAPITAL LETTER I WITH GRAVE -00CD LATIN CAPITAL LETTER I WITH ACUTE -00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX -00CF LATIN CAPITAL LETTER I WITH DIAERESIS -00D0 LATIN CAPITAL LETTER ETH -00D1 LATIN CAPITAL LETTER N WITH TILDE -00D2 LATIN CAPITAL LETTER O WITH GRAVE -00D3 LATIN CAPITAL LETTER O WITH ACUTE -00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX -00D5 LATIN CAPITAL LETTER O WITH TILDE -00D6 LATIN CAPITAL LETTER O WITH DIAERESIS -00D7 MULTIPLICATION SIGN -00D8 LATIN CAPITAL LETTER O WITH STROKE -00D9 LATIN CAPITAL LETTER U WITH GRAVE -00DA LATIN CAPITAL LETTER U WITH ACUTE -00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX -00DC LATIN CAPITAL LETTER U WITH DIAERESIS -00DD LATIN CAPITAL LETTER Y WITH ACUTE -00DE LATIN CAPITAL LETTER THORN -00DF LATIN SMALL LETTER SHARP S -00E0 LATIN SMALL LETTER A WITH GRAVE -00E1 LATIN SMALL LETTER A WITH ACUTE -00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX -00E3 LATIN SMALL LETTER A WITH TILDE -00E4 LATIN SMALL LETTER A WITH DIAERESIS -00E5 LATIN SMALL LETTER A WITH RING ABOVE -00E6 LATIN SMALL LETTER AE -00E7 LATIN SMALL LETTER C WITH CEDILLA -00E8 LATIN SMALL LETTER E WITH GRAVE -00E9 LATIN SMALL LETTER E WITH ACUTE -00EA LATIN SMALL LETTER E WITH CIRCUMFLEX -00EB LATIN SMALL LETTER E WITH DIAERESIS -00EC LATIN SMALL LETTER I WITH GRAVE -00ED LATIN SMALL LETTER I WITH ACUTE -00EE LATIN SMALL LETTER I WITH CIRCUMFLEX -00EF LATIN SMALL LETTER I WITH DIAERESIS -00F0 LATIN SMALL LETTER ETH -00F1 LATIN SMALL LETTER N WITH TILDE -00F2 LATIN SMALL LETTER O WITH GRAVE -00F3 LATIN SMALL LETTER O WITH ACUTE -00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX -00F5 LATIN SMALL LETTER O WITH TILDE -00F6 LATIN SMALL LETTER O WITH DIAERESIS -00F7 DIVISION SIGN -00F8 LATIN SMALL LETTER O WITH STROKE -00F9 LATIN SMALL LETTER U WITH GRAVE -00FA LATIN SMALL LETTER U WITH ACUTE -00FB LATIN SMALL LETTER U WITH CIRCUMFLEX -00FC LATIN SMALL LETTER U WITH DIAERESIS -00FD LATIN SMALL LETTER Y WITH ACUTE -00FE LATIN SMALL LETTER THORN -00FF LATIN SMALL LETTER Y WITH DIAERESIS -0100 LATIN CAPITAL LETTER A WITH MACRON -0101 LATIN SMALL LETTER A WITH MACRON -0102 LATIN CAPITAL LETTER A WITH BREVE -0103 LATIN SMALL LETTER A WITH BREVE -0104 LATIN CAPITAL LETTER A WITH OGONEK -0105 LATIN SMALL LETTER A WITH OGONEK -0106 LATIN CAPITAL LETTER C WITH ACUTE -0107 LATIN SMALL LETTER C WITH ACUTE -0108 LATIN CAPITAL LETTER C WITH CIRCUMFLEX -0109 LATIN SMALL LETTER C WITH CIRCUMFLEX -010A LATIN CAPITAL LETTER C WITH DOT ABOVE -010B LATIN SMALL LETTER C WITH DOT ABOVE -010C LATIN CAPITAL LETTER C WITH CARON -010D LATIN SMALL LETTER C WITH CARON -010E LATIN CAPITAL LETTER D WITH CARON -010F LATIN SMALL LETTER D WITH CARON -0110 LATIN CAPITAL LETTER D WITH STROKE -0111 LATIN SMALL LETTER D WITH STROKE -0112 LATIN CAPITAL LETTER E WITH MACRON -0113 LATIN SMALL LETTER E WITH MACRON -0114 LATIN CAPITAL LETTER E WITH BREVE -0115 LATIN SMALL LETTER E WITH BREVE -0116 LATIN CAPITAL LETTER E WITH DOT ABOVE -0117 LATIN SMALL LETTER E WITH DOT ABOVE -0118 LATIN CAPITAL LETTER E WITH OGONEK -0119 LATIN SMALL LETTER E WITH OGONEK -011A LATIN CAPITAL LETTER E WITH CARON -011B LATIN SMALL LETTER E WITH CARON -011C LATIN CAPITAL LETTER G WITH CIRCUMFLEX -011D LATIN SMALL LETTER G WITH CIRCUMFLEX -011E LATIN CAPITAL LETTER G WITH BREVE -011F LATIN SMALL LETTER G WITH BREVE -0120 LATIN CAPITAL LETTER G WITH DOT ABOVE -0121 LATIN SMALL LETTER G WITH DOT ABOVE -0122 LATIN CAPITAL LETTER G WITH CEDILLA -0123 LATIN SMALL LETTER G WITH CEDILLA -0124 LATIN CAPITAL LETTER H WITH CIRCUMFLEX -0125 LATIN SMALL LETTER H WITH CIRCUMFLEX -0126 LATIN CAPITAL LETTER H WITH STROKE -0127 LATIN SMALL LETTER H WITH STROKE -0128 LATIN CAPITAL LETTER I WITH TILDE -0129 LATIN SMALL LETTER I WITH TILDE -012A LATIN CAPITAL LETTER I WITH MACRON -012B LATIN SMALL LETTER I WITH MACRON -012C LATIN CAPITAL LETTER I WITH BREVE -012D LATIN SMALL LETTER I WITH BREVE -012E LATIN CAPITAL LETTER I WITH OGONEK -012F LATIN SMALL LETTER I WITH OGONEK -0130 LATIN CAPITAL LETTER I WITH DOT ABOVE -0131 LATIN SMALL LETTER DOTLESS I -0132 LATIN CAPITAL LIGATURE IJ -0133 LATIN SMALL LIGATURE IJ -0134 LATIN CAPITAL LETTER J WITH CIRCUMFLEX -0135 LATIN SMALL LETTER J WITH CIRCUMFLEX -0136 LATIN CAPITAL LETTER K WITH CEDILLA -0137 LATIN SMALL LETTER K WITH CEDILLA -0138 LATIN SMALL LETTER KRA -0139 LATIN CAPITAL LETTER L WITH ACUTE -013A LATIN SMALL LETTER L WITH ACUTE -013B LATIN CAPITAL LETTER L WITH CEDILLA -013C LATIN SMALL LETTER L WITH CEDILLA -013D LATIN CAPITAL LETTER L WITH CARON -013E LATIN SMALL LETTER L WITH CARON -013F LATIN CAPITAL LETTER L WITH MIDDLE DOT -0140 LATIN SMALL LETTER L WITH MIDDLE DOT -0141 LATIN CAPITAL LETTER L WITH STROKE -0142 LATIN SMALL LETTER L WITH STROKE -0143 LATIN CAPITAL LETTER N WITH ACUTE -0144 LATIN SMALL LETTER N WITH ACUTE -0145 LATIN CAPITAL LETTER N WITH CEDILLA -0146 LATIN SMALL LETTER N WITH CEDILLA -0147 LATIN CAPITAL LETTER N WITH CARON -0148 LATIN SMALL LETTER N WITH CARON -0149 LATIN SMALL LETTER N PRECEDED BY APOSTROPHE -014A LATIN CAPITAL LETTER ENG -014B LATIN SMALL LETTER ENG -014C LATIN CAPITAL LETTER O WITH MACRON -014D LATIN SMALL LETTER O WITH MACRON -014E LATIN CAPITAL LETTER O WITH BREVE -014F LATIN SMALL LETTER O WITH BREVE -0150 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE -0151 LATIN SMALL LETTER O WITH DOUBLE ACUTE -0152 LATIN CAPITAL LIGATURE OE -0153 LATIN SMALL LIGATURE OE -0154 LATIN CAPITAL LETTER R WITH ACUTE -0155 LATIN SMALL LETTER R WITH ACUTE -0156 LATIN CAPITAL LETTER R WITH CEDILLA -0157 LATIN SMALL LETTER R WITH CEDILLA -0158 LATIN CAPITAL LETTER R WITH CARON -0159 LATIN SMALL LETTER R WITH CARON -015A LATIN CAPITAL LETTER S WITH ACUTE -015B LATIN SMALL LETTER S WITH ACUTE -015C LATIN CAPITAL LETTER S WITH CIRCUMFLEX -015D LATIN SMALL LETTER S WITH CIRCUMFLEX -015E LATIN CAPITAL LETTER S WITH CEDILLA -015F LATIN SMALL LETTER S WITH CEDILLA -0160 LATIN CAPITAL LETTER S WITH CARON -0161 LATIN SMALL LETTER S WITH CARON -0162 LATIN CAPITAL LETTER T WITH CEDILLA -0163 LATIN SMALL LETTER T WITH CEDILLA -0164 LATIN CAPITAL LETTER T WITH CARON -0165 LATIN SMALL LETTER T WITH CARON -0166 LATIN CAPITAL LETTER T WITH STROKE -0167 LATIN SMALL LETTER T WITH STROKE -0168 LATIN CAPITAL LETTER U WITH TILDE -0169 LATIN SMALL LETTER U WITH TILDE -016A LATIN CAPITAL LETTER U WITH MACRON -016B LATIN SMALL LETTER U WITH MACRON -016C LATIN CAPITAL LETTER U WITH BREVE -016D LATIN SMALL LETTER U WITH BREVE -016E LATIN CAPITAL LETTER U WITH RING ABOVE -016F LATIN SMALL LETTER U WITH RING ABOVE -0170 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE -0171 LATIN SMALL LETTER U WITH DOUBLE ACUTE -0172 LATIN CAPITAL LETTER U WITH OGONEK -0173 LATIN SMALL LETTER U WITH OGONEK -0174 LATIN CAPITAL LETTER W WITH CIRCUMFLEX -0175 LATIN SMALL LETTER W WITH CIRCUMFLEX -0176 LATIN CAPITAL LETTER Y WITH CIRCUMFLEX -0177 LATIN SMALL LETTER Y WITH CIRCUMFLEX -0178 LATIN CAPITAL LETTER Y WITH DIAERESIS -0179 LATIN CAPITAL LETTER Z WITH ACUTE -017A LATIN SMALL LETTER Z WITH ACUTE -017B LATIN CAPITAL LETTER Z WITH DOT ABOVE -017C LATIN SMALL LETTER Z WITH DOT ABOVE -017D LATIN CAPITAL LETTER Z WITH CARON -017E LATIN SMALL LETTER Z WITH CARON -017F LATIN SMALL LETTER LONG S -0180 LATIN SMALL LETTER B WITH STROKE -0181 LATIN CAPITAL LETTER B WITH HOOK -0182 LATIN CAPITAL LETTER B WITH TOPBAR -0183 LATIN SMALL LETTER B WITH TOPBAR -0184 LATIN CAPITAL LETTER TONE SIX -0185 LATIN SMALL LETTER TONE SIX -0186 LATIN CAPITAL LETTER OPEN O -0187 LATIN CAPITAL LETTER C WITH HOOK -0188 LATIN SMALL LETTER C WITH HOOK -0189 LATIN CAPITAL LETTER AFRICAN D -018A LATIN CAPITAL LETTER D WITH HOOK -018B LATIN CAPITAL LETTER D WITH TOPBAR -018C LATIN SMALL LETTER D WITH TOPBAR -018D LATIN SMALL LETTER TURNED DELTA -018E LATIN CAPITAL LETTER REVERSED E -018F LATIN CAPITAL LETTER SCHWA -0190 LATIN CAPITAL LETTER OPEN E -0191 LATIN CAPITAL LETTER F WITH HOOK -0192 LATIN SMALL LETTER F WITH HOOK -0193 LATIN CAPITAL LETTER G WITH HOOK -0194 LATIN CAPITAL LETTER GAMMA -0195 LATIN SMALL LETTER HV -0196 LATIN CAPITAL LETTER IOTA -0197 LATIN CAPITAL LETTER I WITH STROKE -0198 LATIN CAPITAL LETTER K WITH HOOK -0199 LATIN SMALL LETTER K WITH HOOK -019A LATIN SMALL LETTER L WITH BAR -019B LATIN SMALL LETTER LAMBDA WITH STROKE -019C LATIN CAPITAL LETTER TURNED M -019D LATIN CAPITAL LETTER N WITH LEFT HOOK -019E LATIN SMALL LETTER N WITH LONG RIGHT LEG -019F LATIN CAPITAL LETTER O WITH MIDDLE TILDE -01A0 LATIN CAPITAL LETTER O WITH HORN -01A1 LATIN SMALL LETTER O WITH HORN -01A2 LATIN CAPITAL LETTER OI -01A3 LATIN SMALL LETTER OI -01A4 LATIN CAPITAL LETTER P WITH HOOK -01A5 LATIN SMALL LETTER P WITH HOOK -01A6 LATIN LETTER YR -01A7 LATIN CAPITAL LETTER TONE TWO -01A8 LATIN SMALL LETTER TONE TWO -01A9 LATIN CAPITAL LETTER ESH -01AA LATIN LETTER REVERSED ESH LOOP -01AB LATIN SMALL LETTER T WITH PALATAL HOOK -01AC LATIN CAPITAL LETTER T WITH HOOK -01AD LATIN SMALL LETTER T WITH HOOK -01AE LATIN CAPITAL LETTER T WITH RETROFLEX HOOK -01AF LATIN CAPITAL LETTER U WITH HORN -01B0 LATIN SMALL LETTER U WITH HORN -01B1 LATIN CAPITAL LETTER UPSILON -01B2 LATIN CAPITAL LETTER V WITH HOOK -01B3 LATIN CAPITAL LETTER Y WITH HOOK -01B4 LATIN SMALL LETTER Y WITH HOOK -01B5 LATIN CAPITAL LETTER Z WITH STROKE -01B6 LATIN SMALL LETTER Z WITH STROKE -01B7 LATIN CAPITAL LETTER EZH -01B8 LATIN CAPITAL LETTER EZH REVERSED -01B9 LATIN SMALL LETTER EZH REVERSED -01BA LATIN SMALL LETTER EZH WITH TAIL -01BB LATIN LETTER TWO WITH STROKE -01BC LATIN CAPITAL LETTER TONE FIVE -01BD LATIN SMALL LETTER TONE FIVE -01BE LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE -01BF LATIN LETTER WYNN -01C0 LATIN LETTER DENTAL CLICK -01C1 LATIN LETTER LATERAL CLICK -01C2 LATIN LETTER ALVEOLAR CLICK -01C3 LATIN LETTER RETROFLEX CLICK -01C4 LATIN CAPITAL LETTER DZ WITH CARON -01C5 LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON -01C6 LATIN SMALL LETTER DZ WITH CARON -01C7 LATIN CAPITAL LETTER LJ -01C8 LATIN CAPITAL LETTER L WITH SMALL LETTER J -01C9 LATIN SMALL LETTER LJ -01CA LATIN CAPITAL LETTER NJ -01CB LATIN CAPITAL LETTER N WITH SMALL LETTER J -01CC LATIN SMALL LETTER NJ -01CD LATIN CAPITAL LETTER A WITH CARON -01CE LATIN SMALL LETTER A WITH CARON -01CF LATIN CAPITAL LETTER I WITH CARON -01D0 LATIN SMALL LETTER I WITH CARON -01D1 LATIN CAPITAL LETTER O WITH CARON -01D2 LATIN SMALL LETTER O WITH CARON -01D3 LATIN CAPITAL LETTER U WITH CARON -01D4 LATIN SMALL LETTER U WITH CARON -01D5 LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON -01D6 LATIN SMALL LETTER U WITH DIAERESIS AND MACRON -01D7 LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE -01D8 LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE -01D9 LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON -01DA LATIN SMALL LETTER U WITH DIAERESIS AND CARON -01DB LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE -01DC LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE -01DD LATIN SMALL LETTER TURNED E -01DE LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON -01DF LATIN SMALL LETTER A WITH DIAERESIS AND MACRON -01E0 LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON -01E1 LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON -01E2 LATIN CAPITAL LETTER AE WITH MACRON -01E3 LATIN SMALL LETTER AE WITH MACRON -01E4 LATIN CAPITAL LETTER G WITH STROKE -01E5 LATIN SMALL LETTER G WITH STROKE -01E6 LATIN CAPITAL LETTER G WITH CARON -01E7 LATIN SMALL LETTER G WITH CARON -01E8 LATIN CAPITAL LETTER K WITH CARON -01E9 LATIN SMALL LETTER K WITH CARON -01EA LATIN CAPITAL LETTER O WITH OGONEK -01EB LATIN SMALL LETTER O WITH OGONEK -01EC LATIN CAPITAL LETTER O WITH OGONEK AND MACRON -01ED LATIN SMALL LETTER O WITH OGONEK AND MACRON -01EE LATIN CAPITAL LETTER EZH WITH CARON -01EF LATIN SMALL LETTER EZH WITH CARON -01F0 LATIN SMALL LETTER J WITH CARON -01F1 LATIN CAPITAL LETTER DZ -01F2 LATIN CAPITAL LETTER D WITH SMALL LETTER Z -01F3 LATIN SMALL LETTER DZ -01F4 LATIN CAPITAL LETTER G WITH ACUTE -01F5 LATIN SMALL LETTER G WITH ACUTE -01F6 LATIN CAPITAL LETTER HWAIR -01F7 LATIN CAPITAL LETTER WYNN -01F8 LATIN CAPITAL LETTER N WITH GRAVE -01F9 LATIN SMALL LETTER N WITH GRAVE -01FA LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE -01FB LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE -01FC LATIN CAPITAL LETTER AE WITH ACUTE -01FD LATIN SMALL LETTER AE WITH ACUTE -01FE LATIN CAPITAL LETTER O WITH STROKE AND ACUTE -01FF LATIN SMALL LETTER O WITH STROKE AND ACUTE -0200 LATIN CAPITAL LETTER A WITH DOUBLE GRAVE -0201 LATIN SMALL LETTER A WITH DOUBLE GRAVE -0202 LATIN CAPITAL LETTER A WITH INVERTED BREVE -0203 LATIN SMALL LETTER A WITH INVERTED BREVE -0204 LATIN CAPITAL LETTER E WITH DOUBLE GRAVE -0205 LATIN SMALL LETTER E WITH DOUBLE GRAVE -0206 LATIN CAPITAL LETTER E WITH INVERTED BREVE -0207 LATIN SMALL LETTER E WITH INVERTED BREVE -0208 LATIN CAPITAL LETTER I WITH DOUBLE GRAVE -0209 LATIN SMALL LETTER I WITH DOUBLE GRAVE -020A LATIN CAPITAL LETTER I WITH INVERTED BREVE -020B LATIN SMALL LETTER I WITH INVERTED BREVE -020C LATIN CAPITAL LETTER O WITH DOUBLE GRAVE -020D LATIN SMALL LETTER O WITH DOUBLE GRAVE -020E LATIN CAPITAL LETTER O WITH INVERTED BREVE -020F LATIN SMALL LETTER O WITH INVERTED BREVE -0210 LATIN CAPITAL LETTER R WITH DOUBLE GRAVE -0211 LATIN SMALL LETTER R WITH DOUBLE GRAVE -0212 LATIN CAPITAL LETTER R WITH INVERTED BREVE -0213 LATIN SMALL LETTER R WITH INVERTED BREVE -0214 LATIN CAPITAL LETTER U WITH DOUBLE GRAVE -0215 LATIN SMALL LETTER U WITH DOUBLE GRAVE -0216 LATIN CAPITAL LETTER U WITH INVERTED BREVE -0217 LATIN SMALL LETTER U WITH INVERTED BREVE -0218 LATIN CAPITAL LETTER S WITH COMMA BELOW -0219 LATIN SMALL LETTER S WITH COMMA BELOW -021A LATIN CAPITAL LETTER T WITH COMMA BELOW -021B LATIN SMALL LETTER T WITH COMMA BELOW -021C LATIN CAPITAL LETTER YOGH -021D LATIN SMALL LETTER YOGH -021E LATIN CAPITAL LETTER H WITH CARON -021F LATIN SMALL LETTER H WITH CARON -0220 LATIN CAPITAL LETTER N WITH LONG RIGHT LEG -0222 LATIN CAPITAL LETTER OU -0223 LATIN SMALL LETTER OU -0224 LATIN CAPITAL LETTER Z WITH HOOK -0225 LATIN SMALL LETTER Z WITH HOOK -0226 LATIN CAPITAL LETTER A WITH DOT ABOVE -0227 LATIN SMALL LETTER A WITH DOT ABOVE -0228 LATIN CAPITAL LETTER E WITH CEDILLA -0229 LATIN SMALL LETTER E WITH CEDILLA -022A LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON -022B LATIN SMALL LETTER O WITH DIAERESIS AND MACRON -022C LATIN CAPITAL LETTER O WITH TILDE AND MACRON -022D LATIN SMALL LETTER O WITH TILDE AND MACRON -022E LATIN CAPITAL LETTER O WITH DOT ABOVE -022F LATIN SMALL LETTER O WITH DOT ABOVE -0230 LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON -0231 LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON -0232 LATIN CAPITAL LETTER Y WITH MACRON -0233 LATIN SMALL LETTER Y WITH MACRON -0250 LATIN SMALL LETTER TURNED A -0251 LATIN SMALL LETTER ALPHA -0252 LATIN SMALL LETTER TURNED ALPHA -0253 LATIN SMALL LETTER B WITH HOOK -0254 LATIN SMALL LETTER OPEN O -0255 LATIN SMALL LETTER C WITH CURL -0256 LATIN SMALL LETTER D WITH TAIL -0257 LATIN SMALL LETTER D WITH HOOK -0258 LATIN SMALL LETTER REVERSED E -0259 LATIN SMALL LETTER SCHWA -025A LATIN SMALL LETTER SCHWA WITH HOOK -025B LATIN SMALL LETTER OPEN E -025C LATIN SMALL LETTER REVERSED OPEN E -025D LATIN SMALL LETTER REVERSED OPEN E WITH HOOK -025E LATIN SMALL LETTER CLOSED REVERSED OPEN E -025F LATIN SMALL LETTER DOTLESS J WITH STROKE -0260 LATIN SMALL LETTER G WITH HOOK -0261 LATIN SMALL LETTER SCRIPT G -0262 LATIN LETTER SMALL CAPITAL G -0263 LATIN SMALL LETTER GAMMA -0264 LATIN SMALL LETTER RAMS HORN -0265 LATIN SMALL LETTER TURNED H -0266 LATIN SMALL LETTER H WITH HOOK -0267 LATIN SMALL LETTER HENG WITH HOOK -0268 LATIN SMALL LETTER I WITH STROKE -0269 LATIN SMALL LETTER IOTA -026A LATIN LETTER SMALL CAPITAL I -026B LATIN SMALL LETTER L WITH MIDDLE TILDE -026C LATIN SMALL LETTER L WITH BELT -026D LATIN SMALL LETTER L WITH RETROFLEX HOOK -026E LATIN SMALL LETTER LEZH -026F LATIN SMALL LETTER TURNED M -0270 LATIN SMALL LETTER TURNED M WITH LONG LEG -0271 LATIN SMALL LETTER M WITH HOOK -0272 LATIN SMALL LETTER N WITH LEFT HOOK -0273 LATIN SMALL LETTER N WITH RETROFLEX HOOK -0274 LATIN LETTER SMALL CAPITAL N -0275 LATIN SMALL LETTER BARRED O -0276 LATIN LETTER SMALL CAPITAL OE -0277 LATIN SMALL LETTER CLOSED OMEGA -0278 LATIN SMALL LETTER PHI -0279 LATIN SMALL LETTER TURNED R -027A LATIN SMALL LETTER TURNED R WITH LONG LEG -027B LATIN SMALL LETTER TURNED R WITH HOOK -027C LATIN SMALL LETTER R WITH LONG LEG -027D LATIN SMALL LETTER R WITH TAIL -027E LATIN SMALL LETTER R WITH FISHHOOK -027F LATIN SMALL LETTER REVERSED R WITH FISHHOOK -0280 LATIN LETTER SMALL CAPITAL R -0281 LATIN LETTER SMALL CAPITAL INVERTED R -0282 LATIN SMALL LETTER S WITH HOOK -0283 LATIN SMALL LETTER ESH -0284 LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK -0285 LATIN SMALL LETTER SQUAT REVERSED ESH -0286 LATIN SMALL LETTER ESH WITH CURL -0287 LATIN SMALL LETTER TURNED T -0288 LATIN SMALL LETTER T WITH RETROFLEX HOOK -0289 LATIN SMALL LETTER U BAR -028A LATIN SMALL LETTER UPSILON -028B LATIN SMALL LETTER V WITH HOOK -028C LATIN SMALL LETTER TURNED V -028D LATIN SMALL LETTER TURNED W -028E LATIN SMALL LETTER TURNED Y -028F LATIN LETTER SMALL CAPITAL Y -0290 LATIN SMALL LETTER Z WITH RETROFLEX HOOK -0291 LATIN SMALL LETTER Z WITH CURL -0292 LATIN SMALL LETTER EZH -0293 LATIN SMALL LETTER EZH WITH CURL -0294 LATIN LETTER GLOTTAL STOP -0295 LATIN LETTER PHARYNGEAL VOICED FRICATIVE -0296 LATIN LETTER INVERTED GLOTTAL STOP -0297 LATIN LETTER STRETCHED C -0298 LATIN LETTER BILABIAL CLICK -0299 LATIN LETTER SMALL CAPITAL B -029A LATIN SMALL LETTER CLOSED OPEN E -029B LATIN LETTER SMALL CAPITAL G WITH HOOK -029C LATIN LETTER SMALL CAPITAL H -029D LATIN SMALL LETTER J WITH CROSSED-TAIL -029E LATIN SMALL LETTER TURNED K -029F LATIN LETTER SMALL CAPITAL L -02A0 LATIN SMALL LETTER Q WITH HOOK -02A1 LATIN LETTER GLOTTAL STOP WITH STROKE -02A2 LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE -02A3 LATIN SMALL LETTER DZ DIGRAPH -02A4 LATIN SMALL LETTER DEZH DIGRAPH -02A5 LATIN SMALL LETTER DZ DIGRAPH WITH CURL -02A6 LATIN SMALL LETTER TS DIGRAPH -02A7 LATIN SMALL LETTER TESH DIGRAPH -02A8 LATIN SMALL LETTER TC DIGRAPH WITH CURL -02A9 LATIN SMALL LETTER FENG DIGRAPH -02AA LATIN SMALL LETTER LS DIGRAPH -02AB LATIN SMALL LETTER LZ DIGRAPH -02AC LATIN LETTER BILABIAL PERCUSSIVE -02AD LATIN LETTER BIDENTAL PERCUSSIVE -02B0 MODIFIER LETTER SMALL H -02B1 MODIFIER LETTER SMALL H WITH HOOK -02B2 MODIFIER LETTER SMALL J -02B3 MODIFIER LETTER SMALL R -02B4 MODIFIER LETTER SMALL TURNED R -02B5 MODIFIER LETTER SMALL TURNED R WITH HOOK -02B6 MODIFIER LETTER SMALL CAPITAL INVERTED R -02B7 MODIFIER LETTER SMALL W -02B8 MODIFIER LETTER SMALL Y -02B9 MODIFIER LETTER PRIME -02BA MODIFIER LETTER DOUBLE PRIME -02BB MODIFIER LETTER TURNED COMMA -02BC MODIFIER LETTER APOSTROPHE -02BD MODIFIER LETTER REVERSED COMMA -02BE MODIFIER LETTER RIGHT HALF RING -02BF MODIFIER LETTER LEFT HALF RING -02C0 MODIFIER LETTER GLOTTAL STOP -02C1 MODIFIER LETTER REVERSED GLOTTAL STOP -02C2 MODIFIER LETTER LEFT ARROWHEAD -02C3 MODIFIER LETTER RIGHT ARROWHEAD -02C4 MODIFIER LETTER UP ARROWHEAD -02C5 MODIFIER LETTER DOWN ARROWHEAD -02C6 MODIFIER LETTER CIRCUMFLEX ACCENT -02C7 CARON -02C8 MODIFIER LETTER VERTICAL LINE -02C9 MODIFIER LETTER MACRON -02CA MODIFIER LETTER ACUTE ACCENT -02CB MODIFIER LETTER GRAVE ACCENT -02CC MODIFIER LETTER LOW VERTICAL LINE -02CD MODIFIER LETTER LOW MACRON -02CE MODIFIER LETTER LOW GRAVE ACCENT -02CF MODIFIER LETTER LOW ACUTE ACCENT -02D0 MODIFIER LETTER TRIANGULAR COLON -02D1 MODIFIER LETTER HALF TRIANGULAR COLON -02D2 MODIFIER LETTER CENTRED RIGHT HALF RING -02D3 MODIFIER LETTER CENTRED LEFT HALF RING -02D4 MODIFIER LETTER UP TACK -02D5 MODIFIER LETTER DOWN TACK -02D6 MODIFIER LETTER PLUS SIGN -02D7 MODIFIER LETTER MINUS SIGN -02D8 BREVE -02D9 DOT ABOVE -02DA RING ABOVE -02DB OGONEK -02DC SMALL TILDE -02DD DOUBLE ACUTE ACCENT -02DE MODIFIER LETTER RHOTIC HOOK -02DF MODIFIER LETTER CROSS ACCENT -02E0 MODIFIER LETTER SMALL GAMMA -02E1 MODIFIER LETTER SMALL L -02E2 MODIFIER LETTER SMALL S -02E3 MODIFIER LETTER SMALL X -02E4 MODIFIER LETTER SMALL REVERSED GLOTTAL STOP -02E5 MODIFIER LETTER EXTRA-HIGH TONE BAR -02E6 MODIFIER LETTER HIGH TONE BAR -02E7 MODIFIER LETTER MID TONE BAR -02E8 MODIFIER LETTER LOW TONE BAR -02E9 MODIFIER LETTER EXTRA-LOW TONE BAR -02EA MODIFIER LETTER YIN DEPARTING TONE MARK -02EB MODIFIER LETTER YANG DEPARTING TONE MARK -02EC MODIFIER LETTER VOICING -02ED MODIFIER LETTER UNASPIRATED -02EE MODIFIER LETTER DOUBLE APOSTROPHE -0300 COMBINING GRAVE ACCENT -0301 COMBINING ACUTE ACCENT -0302 COMBINING CIRCUMFLEX ACCENT -0303 COMBINING TILDE -0304 COMBINING MACRON -0305 COMBINING OVERLINE -0306 COMBINING BREVE -0307 COMBINING DOT ABOVE -0308 COMBINING DIAERESIS -0309 COMBINING HOOK ABOVE -030A COMBINING RING ABOVE -030B COMBINING DOUBLE ACUTE ACCENT -030C COMBINING CARON -030D COMBINING VERTICAL LINE ABOVE -030E COMBINING DOUBLE VERTICAL LINE ABOVE -030F COMBINING DOUBLE GRAVE ACCENT -0310 COMBINING CANDRABINDU -0311 COMBINING INVERTED BREVE -0312 COMBINING TURNED COMMA ABOVE -0313 COMBINING COMMA ABOVE -0314 COMBINING REVERSED COMMA ABOVE -0315 COMBINING COMMA ABOVE RIGHT -0316 COMBINING GRAVE ACCENT BELOW -0317 COMBINING ACUTE ACCENT BELOW -0318 COMBINING LEFT TACK BELOW -0319 COMBINING RIGHT TACK BELOW -031A COMBINING LEFT ANGLE ABOVE -031B COMBINING HORN -031C COMBINING LEFT HALF RING BELOW -031D COMBINING UP TACK BELOW -031E COMBINING DOWN TACK BELOW -031F COMBINING PLUS SIGN BELOW -0320 COMBINING MINUS SIGN BELOW -0321 COMBINING PALATALIZED HOOK BELOW -0322 COMBINING RETROFLEX HOOK BELOW -0323 COMBINING DOT BELOW -0324 COMBINING DIAERESIS BELOW -0325 COMBINING RING BELOW -0326 COMBINING COMMA BELOW -0327 COMBINING CEDILLA -0328 COMBINING OGONEK -0329 COMBINING VERTICAL LINE BELOW -032A COMBINING BRIDGE BELOW -032B COMBINING INVERTED DOUBLE ARCH BELOW -032C COMBINING CARON BELOW -032D COMBINING CIRCUMFLEX ACCENT BELOW -032E COMBINING BREVE BELOW -032F COMBINING INVERTED BREVE BELOW -0330 COMBINING TILDE BELOW -0331 COMBINING MACRON BELOW -0332 COMBINING LOW LINE -0333 COMBINING DOUBLE LOW LINE -0334 COMBINING TILDE OVERLAY -0335 COMBINING SHORT STROKE OVERLAY -0336 COMBINING LONG STROKE OVERLAY -0337 COMBINING SHORT SOLIDUS OVERLAY -0338 COMBINING LONG SOLIDUS OVERLAY -0339 COMBINING RIGHT HALF RING BELOW -033A COMBINING INVERTED BRIDGE BELOW -033B COMBINING SQUARE BELOW -033C COMBINING SEAGULL BELOW -033D COMBINING X ABOVE -033E COMBINING VERTICAL TILDE -033F COMBINING DOUBLE OVERLINE -0340 COMBINING GRAVE TONE MARK -0341 COMBINING ACUTE TONE MARK -0342 COMBINING GREEK PERISPOMENI -0343 COMBINING GREEK KORONIS -0344 COMBINING GREEK DIALYTIKA TONOS -0345 COMBINING GREEK YPOGEGRAMMENI -0346 COMBINING BRIDGE ABOVE -0347 COMBINING EQUALS SIGN BELOW -0348 COMBINING DOUBLE VERTICAL LINE BELOW -0349 COMBINING LEFT ANGLE BELOW -034A COMBINING NOT TILDE ABOVE -034B COMBINING HOMOTHETIC ABOVE -034C COMBINING ALMOST EQUAL TO ABOVE -034D COMBINING LEFT RIGHT ARROW BELOW -034E COMBINING UPWARDS ARROW BELOW -034F COMBINING GRAPHEME JOINER -0360 COMBINING DOUBLE TILDE -0361 COMBINING DOUBLE INVERTED BREVE -0362 COMBINING DOUBLE RIGHTWARDS ARROW BELOW -0363 COMBINING LATIN SMALL LETTER A -0364 COMBINING LATIN SMALL LETTER E -0365 COMBINING LATIN SMALL LETTER I -0366 COMBINING LATIN SMALL LETTER O -0367 COMBINING LATIN SMALL LETTER U -0368 COMBINING LATIN SMALL LETTER C -0369 COMBINING LATIN SMALL LETTER D -036A COMBINING LATIN SMALL LETTER H -036B COMBINING LATIN SMALL LETTER M -036C COMBINING LATIN SMALL LETTER R -036D COMBINING LATIN SMALL LETTER T -036E COMBINING LATIN SMALL LETTER V -036F COMBINING LATIN SMALL LETTER X -0374 GREEK NUMERAL SIGN -0375 GREEK LOWER NUMERAL SIGN -037A GREEK YPOGEGRAMMENI -037E GREEK QUESTION MARK -0384 GREEK TONOS -0385 GREEK DIALYTIKA TONOS -0386 GREEK CAPITAL LETTER ALPHA WITH TONOS -0387 GREEK ANO TELEIA -0388 GREEK CAPITAL LETTER EPSILON WITH TONOS -0389 GREEK CAPITAL LETTER ETA WITH TONOS -038A GREEK CAPITAL LETTER IOTA WITH TONOS -038C GREEK CAPITAL LETTER OMICRON WITH TONOS -038E GREEK CAPITAL LETTER UPSILON WITH TONOS -038F GREEK CAPITAL LETTER OMEGA WITH TONOS -0390 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS -0391 GREEK CAPITAL LETTER ALPHA -0392 GREEK CAPITAL LETTER BETA -0393 GREEK CAPITAL LETTER GAMMA -0394 GREEK CAPITAL LETTER DELTA -0395 GREEK CAPITAL LETTER EPSILON -0396 GREEK CAPITAL LETTER ZETA -0397 GREEK CAPITAL LETTER ETA -0398 GREEK CAPITAL LETTER THETA -0399 GREEK CAPITAL LETTER IOTA -039A GREEK CAPITAL LETTER KAPPA -039B GREEK CAPITAL LETTER LAMDA -039C GREEK CAPITAL LETTER MU -039D GREEK CAPITAL LETTER NU -039E GREEK CAPITAL LETTER XI -039F GREEK CAPITAL LETTER OMICRON -03A0 GREEK CAPITAL LETTER PI -03A1 GREEK CAPITAL LETTER RHO -03A3 GREEK CAPITAL LETTER SIGMA -03A4 GREEK CAPITAL LETTER TAU -03A5 GREEK CAPITAL LETTER UPSILON -03A6 GREEK CAPITAL LETTER PHI -03A7 GREEK CAPITAL LETTER CHI -03A8 GREEK CAPITAL LETTER PSI -03A9 GREEK CAPITAL LETTER OMEGA -03AA GREEK CAPITAL LETTER IOTA WITH DIALYTIKA -03AB GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA -03AC GREEK SMALL LETTER ALPHA WITH TONOS -03AD GREEK SMALL LETTER EPSILON WITH TONOS -03AE GREEK SMALL LETTER ETA WITH TONOS -03AF GREEK SMALL LETTER IOTA WITH TONOS -03B0 GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS -03B1 GREEK SMALL LETTER ALPHA -03B2 GREEK SMALL LETTER BETA -03B3 GREEK SMALL LETTER GAMMA -03B4 GREEK SMALL LETTER DELTA -03B5 GREEK SMALL LETTER EPSILON -03B6 GREEK SMALL LETTER ZETA -03B7 GREEK SMALL LETTER ETA -03B8 GREEK SMALL LETTER THETA -03B9 GREEK SMALL LETTER IOTA -03BA GREEK SMALL LETTER KAPPA -03BB GREEK SMALL LETTER LAMDA -03BC GREEK SMALL LETTER MU -03BD GREEK SMALL LETTER NU -03BE GREEK SMALL LETTER XI -03BF GREEK SMALL LETTER OMICRON -03C0 GREEK SMALL LETTER PI -03C1 GREEK SMALL LETTER RHO -03C2 GREEK SMALL LETTER FINAL SIGMA -03C3 GREEK SMALL LETTER SIGMA -03C4 GREEK SMALL LETTER TAU -03C5 GREEK SMALL LETTER UPSILON -03C6 GREEK SMALL LETTER PHI -03C7 GREEK SMALL LETTER CHI -03C8 GREEK SMALL LETTER PSI -03C9 GREEK SMALL LETTER OMEGA -03CA GREEK SMALL LETTER IOTA WITH DIALYTIKA -03CB GREEK SMALL LETTER UPSILON WITH DIALYTIKA -03CC GREEK SMALL LETTER OMICRON WITH TONOS -03CD GREEK SMALL LETTER UPSILON WITH TONOS -03CE GREEK SMALL LETTER OMEGA WITH TONOS -03D0 GREEK BETA SYMBOL -03D1 GREEK THETA SYMBOL -03D2 GREEK UPSILON WITH HOOK SYMBOL -03D3 GREEK UPSILON WITH ACUTE AND HOOK SYMBOL -03D4 GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL -03D5 GREEK PHI SYMBOL -03D6 GREEK PI SYMBOL -03D7 GREEK KAI SYMBOL -03D8 GREEK LETTER ARCHAIC KOPPA -03D9 GREEK SMALL LETTER ARCHAIC KOPPA -03DA GREEK LETTER STIGMA -03DB GREEK SMALL LETTER STIGMA -03DC GREEK LETTER DIGAMMA -03DD GREEK SMALL LETTER DIGAMMA -03DE GREEK LETTER KOPPA -03DF GREEK SMALL LETTER KOPPA -03E0 GREEK LETTER SAMPI -03E1 GREEK SMALL LETTER SAMPI -03E2 COPTIC CAPITAL LETTER SHEI -03E3 COPTIC SMALL LETTER SHEI -03E4 COPTIC CAPITAL LETTER FEI -03E5 COPTIC SMALL LETTER FEI -03E6 COPTIC CAPITAL LETTER KHEI -03E7 COPTIC SMALL LETTER KHEI -03E8 COPTIC CAPITAL LETTER HORI -03E9 COPTIC SMALL LETTER HORI -03EA COPTIC CAPITAL LETTER GANGIA -03EB COPTIC SMALL LETTER GANGIA -03EC COPTIC CAPITAL LETTER SHIMA -03ED COPTIC SMALL LETTER SHIMA -03EE COPTIC CAPITAL LETTER DEI -03EF COPTIC SMALL LETTER DEI -03F0 GREEK KAPPA SYMBOL -03F1 GREEK RHO SYMBOL -03F2 GREEK LUNATE SIGMA SYMBOL -03F3 GREEK LETTER YOT -03F4 GREEK CAPITAL THETA SYMBOL -03F5 GREEK LUNATE EPSILON SYMBOL -03F6 GREEK REVERSED LUNATE EPSILON SYMBOL -0400 CYRILLIC CAPITAL LETTER IE WITH GRAVE -0401 CYRILLIC CAPITAL LETTER IO -0402 CYRILLIC CAPITAL LETTER DJE -0403 CYRILLIC CAPITAL LETTER GJE -0404 CYRILLIC CAPITAL LETTER UKRAINIAN IE -0405 CYRILLIC CAPITAL LETTER DZE -0406 CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I -0407 CYRILLIC CAPITAL LETTER YI -0408 CYRILLIC CAPITAL LETTER JE -0409 CYRILLIC CAPITAL LETTER LJE -040A CYRILLIC CAPITAL LETTER NJE -040B CYRILLIC CAPITAL LETTER TSHE -040C CYRILLIC CAPITAL LETTER KJE -040D CYRILLIC CAPITAL LETTER I WITH GRAVE -040E CYRILLIC CAPITAL LETTER SHORT U -040F CYRILLIC CAPITAL LETTER DZHE -0410 CYRILLIC CAPITAL LETTER A -0411 CYRILLIC CAPITAL LETTER BE -0412 CYRILLIC CAPITAL LETTER VE -0413 CYRILLIC CAPITAL LETTER GHE -0414 CYRILLIC CAPITAL LETTER DE -0415 CYRILLIC CAPITAL LETTER IE -0416 CYRILLIC CAPITAL LETTER ZHE -0417 CYRILLIC CAPITAL LETTER ZE -0418 CYRILLIC CAPITAL LETTER I -0419 CYRILLIC CAPITAL LETTER SHORT I -041A CYRILLIC CAPITAL LETTER KA -041B CYRILLIC CAPITAL LETTER EL -041C CYRILLIC CAPITAL LETTER EM -041D CYRILLIC CAPITAL LETTER EN -041E CYRILLIC CAPITAL LETTER O -041F CYRILLIC CAPITAL LETTER PE -0420 CYRILLIC CAPITAL LETTER ER -0421 CYRILLIC CAPITAL LETTER ES -0422 CYRILLIC CAPITAL LETTER TE -0423 CYRILLIC CAPITAL LETTER U -0424 CYRILLIC CAPITAL LETTER EF -0425 CYRILLIC CAPITAL LETTER HA -0426 CYRILLIC CAPITAL LETTER TSE -0427 CYRILLIC CAPITAL LETTER CHE -0428 CYRILLIC CAPITAL LETTER SHA -0429 CYRILLIC CAPITAL LETTER SHCHA -042A CYRILLIC CAPITAL LETTER HARD SIGN -042B CYRILLIC CAPITAL LETTER YERU -042C CYRILLIC CAPITAL LETTER SOFT SIGN -042D CYRILLIC CAPITAL LETTER E -042E CYRILLIC CAPITAL LETTER YU -042F CYRILLIC CAPITAL LETTER YA -0430 CYRILLIC SMALL LETTER A -0431 CYRILLIC SMALL LETTER BE -0432 CYRILLIC SMALL LETTER VE -0433 CYRILLIC SMALL LETTER GHE -0434 CYRILLIC SMALL LETTER DE -0435 CYRILLIC SMALL LETTER IE -0436 CYRILLIC SMALL LETTER ZHE -0437 CYRILLIC SMALL LETTER ZE -0438 CYRILLIC SMALL LETTER I -0439 CYRILLIC SMALL LETTER SHORT I -043A CYRILLIC SMALL LETTER KA -043B CYRILLIC SMALL LETTER EL -043C CYRILLIC SMALL LETTER EM -043D CYRILLIC SMALL LETTER EN -043E CYRILLIC SMALL LETTER O -043F CYRILLIC SMALL LETTER PE -0440 CYRILLIC SMALL LETTER ER -0441 CYRILLIC SMALL LETTER ES -0442 CYRILLIC SMALL LETTER TE -0443 CYRILLIC SMALL LETTER U -0444 CYRILLIC SMALL LETTER EF -0445 CYRILLIC SMALL LETTER HA -0446 CYRILLIC SMALL LETTER TSE -0447 CYRILLIC SMALL LETTER CHE -0448 CYRILLIC SMALL LETTER SHA -0449 CYRILLIC SMALL LETTER SHCHA -044A CYRILLIC SMALL LETTER HARD SIGN -044B CYRILLIC SMALL LETTER YERU -044C CYRILLIC SMALL LETTER SOFT SIGN -044D CYRILLIC SMALL LETTER E -044E CYRILLIC SMALL LETTER YU -044F CYRILLIC SMALL LETTER YA -0450 CYRILLIC SMALL LETTER IE WITH GRAVE -0451 CYRILLIC SMALL LETTER IO -0452 CYRILLIC SMALL LETTER DJE -0453 CYRILLIC SMALL LETTER GJE -0454 CYRILLIC SMALL LETTER UKRAINIAN IE -0455 CYRILLIC SMALL LETTER DZE -0456 CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I -0457 CYRILLIC SMALL LETTER YI -0458 CYRILLIC SMALL LETTER JE -0459 CYRILLIC SMALL LETTER LJE -045A CYRILLIC SMALL LETTER NJE -045B CYRILLIC SMALL LETTER TSHE -045C CYRILLIC SMALL LETTER KJE -045D CYRILLIC SMALL LETTER I WITH GRAVE -045E CYRILLIC SMALL LETTER SHORT U -045F CYRILLIC SMALL LETTER DZHE -0460 CYRILLIC CAPITAL LETTER OMEGA -0461 CYRILLIC SMALL LETTER OMEGA -0462 CYRILLIC CAPITAL LETTER YAT -0463 CYRILLIC SMALL LETTER YAT -0464 CYRILLIC CAPITAL LETTER IOTIFIED E -0465 CYRILLIC SMALL LETTER IOTIFIED E -0466 CYRILLIC CAPITAL LETTER LITTLE YUS -0467 CYRILLIC SMALL LETTER LITTLE YUS -0468 CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS -0469 CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS -046A CYRILLIC CAPITAL LETTER BIG YUS -046B CYRILLIC SMALL LETTER BIG YUS -046C CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS -046D CYRILLIC SMALL LETTER IOTIFIED BIG YUS -046E CYRILLIC CAPITAL LETTER KSI -046F CYRILLIC SMALL LETTER KSI -0470 CYRILLIC CAPITAL LETTER PSI -0471 CYRILLIC SMALL LETTER PSI -0472 CYRILLIC CAPITAL LETTER FITA -0473 CYRILLIC SMALL LETTER FITA -0474 CYRILLIC CAPITAL LETTER IZHITSA -0475 CYRILLIC SMALL LETTER IZHITSA -0476 CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT -0477 CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT -0478 CYRILLIC CAPITAL LETTER UK -0479 CYRILLIC SMALL LETTER UK -047A CYRILLIC CAPITAL LETTER ROUND OMEGA -047B CYRILLIC SMALL LETTER ROUND OMEGA -047C CYRILLIC CAPITAL LETTER OMEGA WITH TITLO -047D CYRILLIC SMALL LETTER OMEGA WITH TITLO -047E CYRILLIC CAPITAL LETTER OT -047F CYRILLIC SMALL LETTER OT -0480 CYRILLIC CAPITAL LETTER KOPPA -0481 CYRILLIC SMALL LETTER KOPPA -0482 CYRILLIC THOUSANDS SIGN -0483 COMBINING CYRILLIC TITLO -0484 COMBINING CYRILLIC PALATALIZATION -0485 COMBINING CYRILLIC DASIA PNEUMATA -0486 COMBINING CYRILLIC PSILI PNEUMATA -0488 COMBINING CYRILLIC HUNDRED THOUSANDS SIGN -0489 COMBINING CYRILLIC MILLIONS SIGN -048A CYRILLIC CAPITAL LETTER SHORT I WITH TAIL -048B CYRILLIC SMALL LETTER SHORT I WITH TAIL -048C CYRILLIC CAPITAL LETTER SEMISOFT SIGN -048D CYRILLIC SMALL LETTER SEMISOFT SIGN -048E CYRILLIC CAPITAL LETTER ER WITH TICK -048F CYRILLIC SMALL LETTER ER WITH TICK -0490 CYRILLIC CAPITAL LETTER GHE WITH UPTURN -0491 CYRILLIC SMALL LETTER GHE WITH UPTURN -0492 CYRILLIC CAPITAL LETTER GHE WITH STROKE -0493 CYRILLIC SMALL LETTER GHE WITH STROKE -0494 CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK -0495 CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK -0496 CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER -0497 CYRILLIC SMALL LETTER ZHE WITH DESCENDER -0498 CYRILLIC CAPITAL LETTER ZE WITH DESCENDER -0499 CYRILLIC SMALL LETTER ZE WITH DESCENDER -049A CYRILLIC CAPITAL LETTER KA WITH DESCENDER -049B CYRILLIC SMALL LETTER KA WITH DESCENDER -049C CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE -049D CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE -049E CYRILLIC CAPITAL LETTER KA WITH STROKE -049F CYRILLIC SMALL LETTER KA WITH STROKE -04A0 CYRILLIC CAPITAL LETTER BASHKIR KA -04A1 CYRILLIC SMALL LETTER BASHKIR KA -04A2 CYRILLIC CAPITAL LETTER EN WITH DESCENDER -04A3 CYRILLIC SMALL LETTER EN WITH DESCENDER -04A4 CYRILLIC CAPITAL LIGATURE EN GHE -04A5 CYRILLIC SMALL LIGATURE EN GHE -04A6 CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK -04A7 CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK -04A8 CYRILLIC CAPITAL LETTER ABKHASIAN HA -04A9 CYRILLIC SMALL LETTER ABKHASIAN HA -04AA CYRILLIC CAPITAL LETTER ES WITH DESCENDER -04AB CYRILLIC SMALL LETTER ES WITH DESCENDER -04AC CYRILLIC CAPITAL LETTER TE WITH DESCENDER -04AD CYRILLIC SMALL LETTER TE WITH DESCENDER -04AE CYRILLIC CAPITAL LETTER STRAIGHT U -04AF CYRILLIC SMALL LETTER STRAIGHT U -04B0 CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE -04B1 CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE -04B2 CYRILLIC CAPITAL LETTER HA WITH DESCENDER -04B3 CYRILLIC SMALL LETTER HA WITH DESCENDER -04B4 CYRILLIC CAPITAL LIGATURE TE TSE -04B5 CYRILLIC SMALL LIGATURE TE TSE -04B6 CYRILLIC CAPITAL LETTER CHE WITH DESCENDER -04B7 CYRILLIC SMALL LETTER CHE WITH DESCENDER -04B8 CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE -04B9 CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE -04BA CYRILLIC CAPITAL LETTER SHHA -04BB CYRILLIC SMALL LETTER SHHA -04BC CYRILLIC CAPITAL LETTER ABKHASIAN CHE -04BD CYRILLIC SMALL LETTER ABKHASIAN CHE -04BE CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER -04BF CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER -04C0 CYRILLIC LETTER PALOCHKA -04C1 CYRILLIC CAPITAL LETTER ZHE WITH BREVE -04C2 CYRILLIC SMALL LETTER ZHE WITH BREVE -04C3 CYRILLIC CAPITAL LETTER KA WITH HOOK -04C4 CYRILLIC SMALL LETTER KA WITH HOOK -04C5 CYRILLIC CAPITAL LETTER EL WITH TAIL -04C6 CYRILLIC SMALL LETTER EL WITH TAIL -04C7 CYRILLIC CAPITAL LETTER EN WITH HOOK -04C8 CYRILLIC SMALL LETTER EN WITH HOOK -04C9 CYRILLIC CAPITAL LETTER EN WITH TAIL -04CA CYRILLIC SMALL LETTER EN WITH TAIL -04CB CYRILLIC CAPITAL LETTER KHAKASSIAN CHE -04CC CYRILLIC SMALL LETTER KHAKASSIAN CHE -04CD CYRILLIC CAPITAL LETTER EM WITH TAIL -04CE CYRILLIC SMALL LETTER EM WITH TAIL -04D0 CYRILLIC CAPITAL LETTER A WITH BREVE -04D1 CYRILLIC SMALL LETTER A WITH BREVE -04D2 CYRILLIC CAPITAL LETTER A WITH DIAERESIS -04D3 CYRILLIC SMALL LETTER A WITH DIAERESIS -04D4 CYRILLIC CAPITAL LIGATURE A IE -04D5 CYRILLIC SMALL LIGATURE A IE -04D6 CYRILLIC CAPITAL LETTER IE WITH BREVE -04D7 CYRILLIC SMALL LETTER IE WITH BREVE -04D8 CYRILLIC CAPITAL LETTER SCHWA -04D9 CYRILLIC SMALL LETTER SCHWA -04DA CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS -04DB CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS -04DC CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS -04DD CYRILLIC SMALL LETTER ZHE WITH DIAERESIS -04DE CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS -04DF CYRILLIC SMALL LETTER ZE WITH DIAERESIS -04E0 CYRILLIC CAPITAL LETTER ABKHASIAN DZE -04E1 CYRILLIC SMALL LETTER ABKHASIAN DZE -04E2 CYRILLIC CAPITAL LETTER I WITH MACRON -04E3 CYRILLIC SMALL LETTER I WITH MACRON -04E4 CYRILLIC CAPITAL LETTER I WITH DIAERESIS -04E5 CYRILLIC SMALL LETTER I WITH DIAERESIS -04E6 CYRILLIC CAPITAL LETTER O WITH DIAERESIS -04E7 CYRILLIC SMALL LETTER O WITH DIAERESIS -04E8 CYRILLIC CAPITAL LETTER BARRED O -04E9 CYRILLIC SMALL LETTER BARRED O -04EA CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS -04EB CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS -04EC CYRILLIC CAPITAL LETTER E WITH DIAERESIS -04ED CYRILLIC SMALL LETTER E WITH DIAERESIS -04EE CYRILLIC CAPITAL LETTER U WITH MACRON -04EF CYRILLIC SMALL LETTER U WITH MACRON -04F0 CYRILLIC CAPITAL LETTER U WITH DIAERESIS -04F1 CYRILLIC SMALL LETTER U WITH DIAERESIS -04F2 CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE -04F3 CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE -04F4 CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS -04F5 CYRILLIC SMALL LETTER CHE WITH DIAERESIS -04F8 CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS -04F9 CYRILLIC SMALL LETTER YERU WITH DIAERESIS -0500 CYRILLIC CAPITAL LETTER KOMI DE -0501 CYRILLIC SMALL LETTER KOMI DE -0502 CYRILLIC CAPITAL LETTER KOMI DJE -0503 CYRILLIC SMALL LETTER KOMI DJE -0504 CYRILLIC CAPITAL LETTER KOMI ZJE -0505 CYRILLIC SMALL LETTER KOMI ZJE -0506 CYRILLIC CAPITAL LETTER KOMI DZJE -0507 CYRILLIC SMALL LETTER KOMI DZJE -0508 CYRILLIC CAPITAL LETTER KOMI LJE -0509 CYRILLIC SMALL LETTER KOMI LJE -050A CYRILLIC CAPITAL LETTER KOMI NJE -050B CYRILLIC SMALL LETTER KOMI NJE -050C CYRILLIC CAPITAL LETTER KOMI SJE -050D CYRILLIC SMALL LETTER KOMI SJE -050E CYRILLIC CAPITAL LETTER KOMI TJE -050F CYRILLIC SMALL LETTER KOMI TJE -0531 ARMENIAN CAPITAL LETTER AYB -0532 ARMENIAN CAPITAL LETTER BEN -0533 ARMENIAN CAPITAL LETTER GIM -0534 ARMENIAN CAPITAL LETTER DA -0535 ARMENIAN CAPITAL LETTER ECH -0536 ARMENIAN CAPITAL LETTER ZA -0537 ARMENIAN CAPITAL LETTER EH -0538 ARMENIAN CAPITAL LETTER ET -0539 ARMENIAN CAPITAL LETTER TO -053A ARMENIAN CAPITAL LETTER ZHE -053B ARMENIAN CAPITAL LETTER INI -053C ARMENIAN CAPITAL LETTER LIWN -053D ARMENIAN CAPITAL LETTER XEH -053E ARMENIAN CAPITAL LETTER CA -053F ARMENIAN CAPITAL LETTER KEN -0540 ARMENIAN CAPITAL LETTER HO -0541 ARMENIAN CAPITAL LETTER JA -0542 ARMENIAN CAPITAL LETTER GHAD -0543 ARMENIAN CAPITAL LETTER CHEH -0544 ARMENIAN CAPITAL LETTER MEN -0545 ARMENIAN CAPITAL LETTER YI -0546 ARMENIAN CAPITAL LETTER NOW -0547 ARMENIAN CAPITAL LETTER SHA -0548 ARMENIAN CAPITAL LETTER VO -0549 ARMENIAN CAPITAL LETTER CHA -054A ARMENIAN CAPITAL LETTER PEH -054B ARMENIAN CAPITAL LETTER JHEH -054C ARMENIAN CAPITAL LETTER RA -054D ARMENIAN CAPITAL LETTER SEH -054E ARMENIAN CAPITAL LETTER VEW -054F ARMENIAN CAPITAL LETTER TIWN -0550 ARMENIAN CAPITAL LETTER REH -0551 ARMENIAN CAPITAL LETTER CO -0552 ARMENIAN CAPITAL LETTER YIWN -0553 ARMENIAN CAPITAL LETTER PIWR -0554 ARMENIAN CAPITAL LETTER KEH -0555 ARMENIAN CAPITAL LETTER OH -0556 ARMENIAN CAPITAL LETTER FEH -0559 ARMENIAN MODIFIER LETTER LEFT HALF RING -055A ARMENIAN APOSTROPHE -055B ARMENIAN EMPHASIS MARK -055C ARMENIAN EXCLAMATION MARK -055D ARMENIAN COMMA -055E ARMENIAN QUESTION MARK -055F ARMENIAN ABBREVIATION MARK -0561 ARMENIAN SMALL LETTER AYB -0562 ARMENIAN SMALL LETTER BEN -0563 ARMENIAN SMALL LETTER GIM -0564 ARMENIAN SMALL LETTER DA -0565 ARMENIAN SMALL LETTER ECH -0566 ARMENIAN SMALL LETTER ZA -0567 ARMENIAN SMALL LETTER EH -0568 ARMENIAN SMALL LETTER ET -0569 ARMENIAN SMALL LETTER TO -056A ARMENIAN SMALL LETTER ZHE -056B ARMENIAN SMALL LETTER INI -056C ARMENIAN SMALL LETTER LIWN -056D ARMENIAN SMALL LETTER XEH -056E ARMENIAN SMALL LETTER CA -056F ARMENIAN SMALL LETTER KEN -0570 ARMENIAN SMALL LETTER HO -0571 ARMENIAN SMALL LETTER JA -0572 ARMENIAN SMALL LETTER GHAD -0573 ARMENIAN SMALL LETTER CHEH -0574 ARMENIAN SMALL LETTER MEN -0575 ARMENIAN SMALL LETTER YI -0576 ARMENIAN SMALL LETTER NOW -0577 ARMENIAN SMALL LETTER SHA -0578 ARMENIAN SMALL LETTER VO -0579 ARMENIAN SMALL LETTER CHA -057A ARMENIAN SMALL LETTER PEH -057B ARMENIAN SMALL LETTER JHEH -057C ARMENIAN SMALL LETTER RA -057D ARMENIAN SMALL LETTER SEH -057E ARMENIAN SMALL LETTER VEW -057F ARMENIAN SMALL LETTER TIWN -0580 ARMENIAN SMALL LETTER REH -0581 ARMENIAN SMALL LETTER CO -0582 ARMENIAN SMALL LETTER YIWN -0583 ARMENIAN SMALL LETTER PIWR -0584 ARMENIAN SMALL LETTER KEH -0585 ARMENIAN SMALL LETTER OH -0586 ARMENIAN SMALL LETTER FEH -0587 ARMENIAN SMALL LIGATURE ECH YIWN -0589 ARMENIAN FULL STOP -058A ARMENIAN HYPHEN -0591 HEBREW ACCENT ETNAHTA -0592 HEBREW ACCENT SEGOL -0593 HEBREW ACCENT SHALSHELET -0594 HEBREW ACCENT ZAQEF QATAN -0595 HEBREW ACCENT ZAQEF GADOL -0596 HEBREW ACCENT TIPEHA -0597 HEBREW ACCENT REVIA -0598 HEBREW ACCENT ZARQA -0599 HEBREW ACCENT PASHTA -059A HEBREW ACCENT YETIV -059B HEBREW ACCENT TEVIR -059C HEBREW ACCENT GERESH -059D HEBREW ACCENT GERESH MUQDAM -059E HEBREW ACCENT GERSHAYIM -059F HEBREW ACCENT QARNEY PARA -05A0 HEBREW ACCENT TELISHA GEDOLA -05A1 HEBREW ACCENT PAZER -05A3 HEBREW ACCENT MUNAH -05A4 HEBREW ACCENT MAHAPAKH -05A5 HEBREW ACCENT MERKHA -05A6 HEBREW ACCENT MERKHA KEFULA -05A7 HEBREW ACCENT DARGA -05A8 HEBREW ACCENT QADMA -05A9 HEBREW ACCENT TELISHA QETANA -05AA HEBREW ACCENT YERAH BEN YOMO -05AB HEBREW ACCENT OLE -05AC HEBREW ACCENT ILUY -05AD HEBREW ACCENT DEHI -05AE HEBREW ACCENT ZINOR -05AF HEBREW MARK MASORA CIRCLE -05B0 HEBREW POINT SHEVA -05B1 HEBREW POINT HATAF SEGOL -05B2 HEBREW POINT HATAF PATAH -05B3 HEBREW POINT HATAF QAMATS -05B4 HEBREW POINT HIRIQ -05B5 HEBREW POINT TSERE -05B6 HEBREW POINT SEGOL -05B7 HEBREW POINT PATAH -05B8 HEBREW POINT QAMATS -05B9 HEBREW POINT HOLAM -05BB HEBREW POINT QUBUTS -05BC HEBREW POINT DAGESH OR MAPIQ -05BD HEBREW POINT METEG -05BE HEBREW PUNCTUATION MAQAF -05BF HEBREW POINT RAFE -05C0 HEBREW PUNCTUATION PASEQ -05C1 HEBREW POINT SHIN DOT -05C2 HEBREW POINT SIN DOT -05C3 HEBREW PUNCTUATION SOF PASUQ -05C4 HEBREW MARK UPPER DOT -05D0 HEBREW LETTER ALEF -05D1 HEBREW LETTER BET -05D2 HEBREW LETTER GIMEL -05D3 HEBREW LETTER DALET -05D4 HEBREW LETTER HE -05D5 HEBREW LETTER VAV -05D6 HEBREW LETTER ZAYIN -05D7 HEBREW LETTER HET -05D8 HEBREW LETTER TET -05D9 HEBREW LETTER YOD -05DA HEBREW LETTER FINAL KAF -05DB HEBREW LETTER KAF -05DC HEBREW LETTER LAMED -05DD HEBREW LETTER FINAL MEM -05DE HEBREW LETTER MEM -05DF HEBREW LETTER FINAL NUN -05E0 HEBREW LETTER NUN -05E1 HEBREW LETTER SAMEKH -05E2 HEBREW LETTER AYIN -05E3 HEBREW LETTER FINAL PE -05E4 HEBREW LETTER PE -05E5 HEBREW LETTER FINAL TSADI -05E6 HEBREW LETTER TSADI -05E7 HEBREW LETTER QOF -05E8 HEBREW LETTER RESH -05E9 HEBREW LETTER SHIN -05EA HEBREW LETTER TAV -05F0 HEBREW LIGATURE YIDDISH DOUBLE VAV -05F1 HEBREW LIGATURE YIDDISH VAV YOD -05F2 HEBREW LIGATURE YIDDISH DOUBLE YOD -05F3 HEBREW PUNCTUATION GERESH -05F4 HEBREW PUNCTUATION GERSHAYIM -060C ARABIC COMMA -061B ARABIC SEMICOLON -061F ARABIC QUESTION MARK -0621 ARABIC LETTER HAMZA -0622 ARABIC LETTER ALEF WITH MADDA ABOVE -0623 ARABIC LETTER ALEF WITH HAMZA ABOVE -0624 ARABIC LETTER WAW WITH HAMZA ABOVE -0625 ARABIC LETTER ALEF WITH HAMZA BELOW -0626 ARABIC LETTER YEH WITH HAMZA ABOVE -0627 ARABIC LETTER ALEF -0628 ARABIC LETTER BEH -0629 ARABIC LETTER TEH MARBUTA -062A ARABIC LETTER TEH -062B ARABIC LETTER THEH -062C ARABIC LETTER JEEM -062D ARABIC LETTER HAH -062E ARABIC LETTER KHAH -062F ARABIC LETTER DAL -0630 ARABIC LETTER THAL -0631 ARABIC LETTER REH -0632 ARABIC LETTER ZAIN -0633 ARABIC LETTER SEEN -0634 ARABIC LETTER SHEEN -0635 ARABIC LETTER SAD -0636 ARABIC LETTER DAD -0637 ARABIC LETTER TAH -0638 ARABIC LETTER ZAH -0639 ARABIC LETTER AIN -063A ARABIC LETTER GHAIN -0640 ARABIC TATWEEL -0641 ARABIC LETTER FEH -0642 ARABIC LETTER QAF -0643 ARABIC LETTER KAF -0644 ARABIC LETTER LAM -0645 ARABIC LETTER MEEM -0646 ARABIC LETTER NOON -0647 ARABIC LETTER HEH -0648 ARABIC LETTER WAW -0649 ARABIC LETTER ALEF MAKSURA -064A ARABIC LETTER YEH -064B ARABIC FATHATAN -064C ARABIC DAMMATAN -064D ARABIC KASRATAN -064E ARABIC FATHA -064F ARABIC DAMMA -0650 ARABIC KASRA -0651 ARABIC SHADDA -0652 ARABIC SUKUN -0653 ARABIC MADDAH ABOVE -0654 ARABIC HAMZA ABOVE -0655 ARABIC HAMZA BELOW -0660 ARABIC-INDIC DIGIT ZERO -0661 ARABIC-INDIC DIGIT ONE -0662 ARABIC-INDIC DIGIT TWO -0663 ARABIC-INDIC DIGIT THREE -0664 ARABIC-INDIC DIGIT FOUR -0665 ARABIC-INDIC DIGIT FIVE -0666 ARABIC-INDIC DIGIT SIX -0667 ARABIC-INDIC DIGIT SEVEN -0668 ARABIC-INDIC DIGIT EIGHT -0669 ARABIC-INDIC DIGIT NINE -066A ARABIC PERCENT SIGN -066B ARABIC DECIMAL SEPARATOR -066C ARABIC THOUSANDS SEPARATOR -066D ARABIC FIVE POINTED STAR -066E ARABIC LETTER DOTLESS BEH -066F ARABIC LETTER DOTLESS QAF -0670 ARABIC LETTER SUPERSCRIPT ALEF -0671 ARABIC LETTER ALEF WASLA -0672 ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE -0673 ARABIC LETTER ALEF WITH WAVY HAMZA BELOW -0674 ARABIC LETTER HIGH HAMZA -0675 ARABIC LETTER HIGH HAMZA ALEF -0676 ARABIC LETTER HIGH HAMZA WAW -0677 ARABIC LETTER U WITH HAMZA ABOVE -0678 ARABIC LETTER HIGH HAMZA YEH -0679 ARABIC LETTER TTEH -067A ARABIC LETTER TTEHEH -067B ARABIC LETTER BEEH -067C ARABIC LETTER TEH WITH RING -067D ARABIC LETTER TEH WITH THREE DOTS ABOVE DOWNWARDS -067E ARABIC LETTER PEH -067F ARABIC LETTER TEHEH -0680 ARABIC LETTER BEHEH -0681 ARABIC LETTER HAH WITH HAMZA ABOVE -0682 ARABIC LETTER HAH WITH TWO DOTS VERTICAL ABOVE -0683 ARABIC LETTER NYEH -0684 ARABIC LETTER DYEH -0685 ARABIC LETTER HAH WITH THREE DOTS ABOVE -0686 ARABIC LETTER TCHEH -0687 ARABIC LETTER TCHEHEH -0688 ARABIC LETTER DDAL -0689 ARABIC LETTER DAL WITH RING -068A ARABIC LETTER DAL WITH DOT BELOW -068B ARABIC LETTER DAL WITH DOT BELOW AND SMALL TAH -068C ARABIC LETTER DAHAL -068D ARABIC LETTER DDAHAL -068E ARABIC LETTER DUL -068F ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARDS -0690 ARABIC LETTER DAL WITH FOUR DOTS ABOVE -0691 ARABIC LETTER RREH -0692 ARABIC LETTER REH WITH SMALL V -0693 ARABIC LETTER REH WITH RING -0694 ARABIC LETTER REH WITH DOT BELOW -0695 ARABIC LETTER REH WITH SMALL V BELOW -0696 ARABIC LETTER REH WITH DOT BELOW AND DOT ABOVE -0697 ARABIC LETTER REH WITH TWO DOTS ABOVE -0698 ARABIC LETTER JEH -0699 ARABIC LETTER REH WITH FOUR DOTS ABOVE -069A ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE -069B ARABIC LETTER SEEN WITH THREE DOTS BELOW -069C ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE -069D ARABIC LETTER SAD WITH TWO DOTS BELOW -069E ARABIC LETTER SAD WITH THREE DOTS ABOVE -069F ARABIC LETTER TAH WITH THREE DOTS ABOVE -06A0 ARABIC LETTER AIN WITH THREE DOTS ABOVE -06A1 ARABIC LETTER DOTLESS FEH -06A2 ARABIC LETTER FEH WITH DOT MOVED BELOW -06A3 ARABIC LETTER FEH WITH DOT BELOW -06A4 ARABIC LETTER VEH -06A5 ARABIC LETTER FEH WITH THREE DOTS BELOW -06A6 ARABIC LETTER PEHEH -06A7 ARABIC LETTER QAF WITH DOT ABOVE -06A8 ARABIC LETTER QAF WITH THREE DOTS ABOVE -06A9 ARABIC LETTER KEHEH -06AA ARABIC LETTER SWASH KAF -06AB ARABIC LETTER KAF WITH RING -06AC ARABIC LETTER KAF WITH DOT ABOVE -06AD ARABIC LETTER NG -06AE ARABIC LETTER KAF WITH THREE DOTS BELOW -06AF ARABIC LETTER GAF -06B0 ARABIC LETTER GAF WITH RING -06B1 ARABIC LETTER NGOEH -06B2 ARABIC LETTER GAF WITH TWO DOTS BELOW -06B3 ARABIC LETTER GUEH -06B4 ARABIC LETTER GAF WITH THREE DOTS ABOVE -06B5 ARABIC LETTER LAM WITH SMALL V -06B6 ARABIC LETTER LAM WITH DOT ABOVE -06B7 ARABIC LETTER LAM WITH THREE DOTS ABOVE -06B8 ARABIC LETTER LAM WITH THREE DOTS BELOW -06B9 ARABIC LETTER NOON WITH DOT BELOW -06BA ARABIC LETTER NOON GHUNNA -06BB ARABIC LETTER RNOON -06BC ARABIC LETTER NOON WITH RING -06BD ARABIC LETTER NOON WITH THREE DOTS ABOVE -06BE ARABIC LETTER HEH DOACHASHMEE -06BF ARABIC LETTER TCHEH WITH DOT ABOVE -06C0 ARABIC LETTER HEH WITH YEH ABOVE -06C1 ARABIC LETTER HEH GOAL -06C2 ARABIC LETTER HEH GOAL WITH HAMZA ABOVE -06C3 ARABIC LETTER TEH MARBUTA GOAL -06C4 ARABIC LETTER WAW WITH RING -06C5 ARABIC LETTER KIRGHIZ OE -06C6 ARABIC LETTER OE -06C7 ARABIC LETTER U -06C8 ARABIC LETTER YU -06C9 ARABIC LETTER KIRGHIZ YU -06CA ARABIC LETTER WAW WITH TWO DOTS ABOVE -06CB ARABIC LETTER VE -06CC ARABIC LETTER FARSI YEH -06CD ARABIC LETTER YEH WITH TAIL -06CE ARABIC LETTER YEH WITH SMALL V -06CF ARABIC LETTER WAW WITH DOT ABOVE -06D0 ARABIC LETTER E -06D1 ARABIC LETTER YEH WITH THREE DOTS BELOW -06D2 ARABIC LETTER YEH BARREE -06D3 ARABIC LETTER YEH BARREE WITH HAMZA ABOVE -06D4 ARABIC FULL STOP -06D5 ARABIC LETTER AE -06D6 ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA -06D7 ARABIC SMALL HIGH LIGATURE QAF WITH LAM WITH ALEF MAKSURA -06D8 ARABIC SMALL HIGH MEEM INITIAL FORM -06D9 ARABIC SMALL HIGH LAM ALEF -06DA ARABIC SMALL HIGH JEEM -06DB ARABIC SMALL HIGH THREE DOTS -06DC ARABIC SMALL HIGH SEEN -06DD ARABIC END OF AYAH -06DE ARABIC START OF RUB EL HIZB -06DF ARABIC SMALL HIGH ROUNDED ZERO -06E0 ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO -06E1 ARABIC SMALL HIGH DOTLESS HEAD OF KHAH -06E2 ARABIC SMALL HIGH MEEM ISOLATED FORM -06E3 ARABIC SMALL LOW SEEN -06E4 ARABIC SMALL HIGH MADDA -06E5 ARABIC SMALL WAW -06E6 ARABIC SMALL YEH -06E7 ARABIC SMALL HIGH YEH -06E8 ARABIC SMALL HIGH NOON -06E9 ARABIC PLACE OF SAJDAH -06EA ARABIC EMPTY CENTRE LOW STOP -06EB ARABIC EMPTY CENTRE HIGH STOP -06EC ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE -06ED ARABIC SMALL LOW MEEM -06F0 EXTENDED ARABIC-INDIC DIGIT ZERO -06F1 EXTENDED ARABIC-INDIC DIGIT ONE -06F2 EXTENDED ARABIC-INDIC DIGIT TWO -06F3 EXTENDED ARABIC-INDIC DIGIT THREE -06F4 EXTENDED ARABIC-INDIC DIGIT FOUR -06F5 EXTENDED ARABIC-INDIC DIGIT FIVE -06F6 EXTENDED ARABIC-INDIC DIGIT SIX -06F7 EXTENDED ARABIC-INDIC DIGIT SEVEN -06F8 EXTENDED ARABIC-INDIC DIGIT EIGHT -06F9 EXTENDED ARABIC-INDIC DIGIT NINE -06FA ARABIC LETTER SHEEN WITH DOT BELOW -06FB ARABIC LETTER DAD WITH DOT BELOW -06FC ARABIC LETTER GHAIN WITH DOT BELOW -06FD ARABIC SIGN SINDHI AMPERSAND -06FE ARABIC SIGN SINDHI POSTPOSITION MEN -0700 SYRIAC END OF PARAGRAPH -0701 SYRIAC SUPRALINEAR FULL STOP -0702 SYRIAC SUBLINEAR FULL STOP -0703 SYRIAC SUPRALINEAR COLON -0704 SYRIAC SUBLINEAR COLON -0705 SYRIAC HORIZONTAL COLON -0706 SYRIAC COLON SKEWED LEFT -0707 SYRIAC COLON SKEWED RIGHT -0708 SYRIAC SUPRALINEAR COLON SKEWED LEFT -0709 SYRIAC SUBLINEAR COLON SKEWED RIGHT -070A SYRIAC CONTRACTION -070B SYRIAC HARKLEAN OBELUS -070C SYRIAC HARKLEAN METOBELUS -070D SYRIAC HARKLEAN ASTERISCUS -070F SYRIAC ABBREVIATION MARK -0710 SYRIAC LETTER ALAPH -0711 SYRIAC LETTER SUPERSCRIPT ALAPH -0712 SYRIAC LETTER BETH -0713 SYRIAC LETTER GAMAL -0714 SYRIAC LETTER GAMAL GARSHUNI -0715 SYRIAC LETTER DALATH -0716 SYRIAC LETTER DOTLESS DALATH RISH -0717 SYRIAC LETTER HE -0718 SYRIAC LETTER WAW -0719 SYRIAC LETTER ZAIN -071A SYRIAC LETTER HETH -071B SYRIAC LETTER TETH -071C SYRIAC LETTER TETH GARSHUNI -071D SYRIAC LETTER YUDH -071E SYRIAC LETTER YUDH HE -071F SYRIAC LETTER KAPH -0720 SYRIAC LETTER LAMADH -0721 SYRIAC LETTER MIM -0722 SYRIAC LETTER NUN -0723 SYRIAC LETTER SEMKATH -0724 SYRIAC LETTER FINAL SEMKATH -0725 SYRIAC LETTER E -0726 SYRIAC LETTER PE -0727 SYRIAC LETTER REVERSED PE -0728 SYRIAC LETTER SADHE -0729 SYRIAC LETTER QAPH -072A SYRIAC LETTER RISH -072B SYRIAC LETTER SHIN -072C SYRIAC LETTER TAW -0730 SYRIAC PTHAHA ABOVE -0731 SYRIAC PTHAHA BELOW -0732 SYRIAC PTHAHA DOTTED -0733 SYRIAC ZQAPHA ABOVE -0734 SYRIAC ZQAPHA BELOW -0735 SYRIAC ZQAPHA DOTTED -0736 SYRIAC RBASA ABOVE -0737 SYRIAC RBASA BELOW -0738 SYRIAC DOTTED ZLAMA HORIZONTAL -0739 SYRIAC DOTTED ZLAMA ANGULAR -073A SYRIAC HBASA ABOVE -073B SYRIAC HBASA BELOW -073C SYRIAC HBASA-ESASA DOTTED -073D SYRIAC ESASA ABOVE -073E SYRIAC ESASA BELOW -073F SYRIAC RWAHA -0740 SYRIAC FEMININE DOT -0741 SYRIAC QUSHSHAYA -0742 SYRIAC RUKKAKHA -0743 SYRIAC TWO VERTICAL DOTS ABOVE -0744 SYRIAC TWO VERTICAL DOTS BELOW -0745 SYRIAC THREE DOTS ABOVE -0746 SYRIAC THREE DOTS BELOW -0747 SYRIAC OBLIQUE LINE ABOVE -0748 SYRIAC OBLIQUE LINE BELOW -0749 SYRIAC MUSIC -074A SYRIAC BARREKH -0780 THAANA LETTER HAA -0781 THAANA LETTER SHAVIYANI -0782 THAANA LETTER NOONU -0783 THAANA LETTER RAA -0784 THAANA LETTER BAA -0785 THAANA LETTER LHAVIYANI -0786 THAANA LETTER KAAFU -0787 THAANA LETTER ALIFU -0788 THAANA LETTER VAAVU -0789 THAANA LETTER MEEMU -078A THAANA LETTER FAAFU -078B THAANA LETTER DHAALU -078C THAANA LETTER THAA -078D THAANA LETTER LAAMU -078E THAANA LETTER GAAFU -078F THAANA LETTER GNAVIYANI -0790 THAANA LETTER SEENU -0791 THAANA LETTER DAVIYANI -0792 THAANA LETTER ZAVIYANI -0793 THAANA LETTER TAVIYANI -0794 THAANA LETTER YAA -0795 THAANA LETTER PAVIYANI -0796 THAANA LETTER JAVIYANI -0797 THAANA LETTER CHAVIYANI -0798 THAANA LETTER TTAA -0799 THAANA LETTER HHAA -079A THAANA LETTER KHAA -079B THAANA LETTER THAALU -079C THAANA LETTER ZAA -079D THAANA LETTER SHEENU -079E THAANA LETTER SAADHU -079F THAANA LETTER DAADHU -07A0 THAANA LETTER TO -07A1 THAANA LETTER ZO -07A2 THAANA LETTER AINU -07A3 THAANA LETTER GHAINU -07A4 THAANA LETTER QAAFU -07A5 THAANA LETTER WAAVU -07A6 THAANA ABAFILI -07A7 THAANA AABAAFILI -07A8 THAANA IBIFILI -07A9 THAANA EEBEEFILI -07AA THAANA UBUFILI -07AB THAANA OOBOOFILI -07AC THAANA EBEFILI -07AD THAANA EYBEYFILI -07AE THAANA OBOFILI -07AF THAANA OABOAFILI -07B0 THAANA SUKUN -07B1 THAANA LETTER NAA -0901 DEVANAGARI SIGN CANDRABINDU -0902 DEVANAGARI SIGN ANUSVARA -0903 DEVANAGARI SIGN VISARGA -0905 DEVANAGARI LETTER A -0906 DEVANAGARI LETTER AA -0907 DEVANAGARI LETTER I -0908 DEVANAGARI LETTER II -0909 DEVANAGARI LETTER U -090A DEVANAGARI LETTER UU -090B DEVANAGARI LETTER VOCALIC R -090C DEVANAGARI LETTER VOCALIC L -090D DEVANAGARI LETTER CANDRA E -090E DEVANAGARI LETTER SHORT E -090F DEVANAGARI LETTER E -0910 DEVANAGARI LETTER AI -0911 DEVANAGARI LETTER CANDRA O -0912 DEVANAGARI LETTER SHORT O -0913 DEVANAGARI LETTER O -0914 DEVANAGARI LETTER AU -0915 DEVANAGARI LETTER KA -0916 DEVANAGARI LETTER KHA -0917 DEVANAGARI LETTER GA -0918 DEVANAGARI LETTER GHA -0919 DEVANAGARI LETTER NGA -091A DEVANAGARI LETTER CA -091B DEVANAGARI LETTER CHA -091C DEVANAGARI LETTER JA -091D DEVANAGARI LETTER JHA -091E DEVANAGARI LETTER NYA -091F DEVANAGARI LETTER TTA -0920 DEVANAGARI LETTER TTHA -0921 DEVANAGARI LETTER DDA -0922 DEVANAGARI LETTER DDHA -0923 DEVANAGARI LETTER NNA -0924 DEVANAGARI LETTER TA -0925 DEVANAGARI LETTER THA -0926 DEVANAGARI LETTER DA -0927 DEVANAGARI LETTER DHA -0928 DEVANAGARI LETTER NA -0929 DEVANAGARI LETTER NNNA -092A DEVANAGARI LETTER PA -092B DEVANAGARI LETTER PHA -092C DEVANAGARI LETTER BA -092D DEVANAGARI LETTER BHA -092E DEVANAGARI LETTER MA -092F DEVANAGARI LETTER YA -0930 DEVANAGARI LETTER RA -0931 DEVANAGARI LETTER RRA -0932 DEVANAGARI LETTER LA -0933 DEVANAGARI LETTER LLA -0934 DEVANAGARI LETTER LLLA -0935 DEVANAGARI LETTER VA -0936 DEVANAGARI LETTER SHA -0937 DEVANAGARI LETTER SSA -0938 DEVANAGARI LETTER SA -0939 DEVANAGARI LETTER HA -093C DEVANAGARI SIGN NUKTA -093D DEVANAGARI SIGN AVAGRAHA -093E DEVANAGARI VOWEL SIGN AA -093F DEVANAGARI VOWEL SIGN I -0940 DEVANAGARI VOWEL SIGN II -0941 DEVANAGARI VOWEL SIGN U -0942 DEVANAGARI VOWEL SIGN UU -0943 DEVANAGARI VOWEL SIGN VOCALIC R -0944 DEVANAGARI VOWEL SIGN VOCALIC RR -0945 DEVANAGARI VOWEL SIGN CANDRA E -0946 DEVANAGARI VOWEL SIGN SHORT E -0947 DEVANAGARI VOWEL SIGN E -0948 DEVANAGARI VOWEL SIGN AI -0949 DEVANAGARI VOWEL SIGN CANDRA O -094A DEVANAGARI VOWEL SIGN SHORT O -094B DEVANAGARI VOWEL SIGN O -094C DEVANAGARI VOWEL SIGN AU -094D DEVANAGARI SIGN VIRAMA -0950 DEVANAGARI OM -0951 DEVANAGARI STRESS SIGN UDATTA -0952 DEVANAGARI STRESS SIGN ANUDATTA -0953 DEVANAGARI GRAVE ACCENT -0954 DEVANAGARI ACUTE ACCENT -0958 DEVANAGARI LETTER QA -0959 DEVANAGARI LETTER KHHA -095A DEVANAGARI LETTER GHHA -095B DEVANAGARI LETTER ZA -095C DEVANAGARI LETTER DDDHA -095D DEVANAGARI LETTER RHA -095E DEVANAGARI LETTER FA -095F DEVANAGARI LETTER YYA -0960 DEVANAGARI LETTER VOCALIC RR -0961 DEVANAGARI LETTER VOCALIC LL -0962 DEVANAGARI VOWEL SIGN VOCALIC L -0963 DEVANAGARI VOWEL SIGN VOCALIC LL -0964 DEVANAGARI DANDA -0965 DEVANAGARI DOUBLE DANDA -0966 DEVANAGARI DIGIT ZERO -0967 DEVANAGARI DIGIT ONE -0968 DEVANAGARI DIGIT TWO -0969 DEVANAGARI DIGIT THREE -096A DEVANAGARI DIGIT FOUR -096B DEVANAGARI DIGIT FIVE -096C DEVANAGARI DIGIT SIX -096D DEVANAGARI DIGIT SEVEN -096E DEVANAGARI DIGIT EIGHT -096F DEVANAGARI DIGIT NINE -0970 DEVANAGARI ABBREVIATION SIGN -0981 BENGALI SIGN CANDRABINDU -0982 BENGALI SIGN ANUSVARA -0983 BENGALI SIGN VISARGA -0985 BENGALI LETTER A -0986 BENGALI LETTER AA -0987 BENGALI LETTER I -0988 BENGALI LETTER II -0989 BENGALI LETTER U -098A BENGALI LETTER UU -098B BENGALI LETTER VOCALIC R -098C BENGALI LETTER VOCALIC L -098F BENGALI LETTER E -0990 BENGALI LETTER AI -0993 BENGALI LETTER O -0994 BENGALI LETTER AU -0995 BENGALI LETTER KA -0996 BENGALI LETTER KHA -0997 BENGALI LETTER GA -0998 BENGALI LETTER GHA -0999 BENGALI LETTER NGA -099A BENGALI LETTER CA -099B BENGALI LETTER CHA -099C BENGALI LETTER JA -099D BENGALI LETTER JHA -099E BENGALI LETTER NYA -099F BENGALI LETTER TTA -09A0 BENGALI LETTER TTHA -09A1 BENGALI LETTER DDA -09A2 BENGALI LETTER DDHA -09A3 BENGALI LETTER NNA -09A4 BENGALI LETTER TA -09A5 BENGALI LETTER THA -09A6 BENGALI LETTER DA -09A7 BENGALI LETTER DHA -09A8 BENGALI LETTER NA -09AA BENGALI LETTER PA -09AB BENGALI LETTER PHA -09AC BENGALI LETTER BA -09AD BENGALI LETTER BHA -09AE BENGALI LETTER MA -09AF BENGALI LETTER YA -09B0 BENGALI LETTER RA -09B2 BENGALI LETTER LA -09B6 BENGALI LETTER SHA -09B7 BENGALI LETTER SSA -09B8 BENGALI LETTER SA -09B9 BENGALI LETTER HA -09BC BENGALI SIGN NUKTA -09BE BENGALI VOWEL SIGN AA -09BF BENGALI VOWEL SIGN I -09C0 BENGALI VOWEL SIGN II -09C1 BENGALI VOWEL SIGN U -09C2 BENGALI VOWEL SIGN UU -09C3 BENGALI VOWEL SIGN VOCALIC R -09C4 BENGALI VOWEL SIGN VOCALIC RR -09C7 BENGALI VOWEL SIGN E -09C8 BENGALI VOWEL SIGN AI -09CB BENGALI VOWEL SIGN O -09CC BENGALI VOWEL SIGN AU -09CD BENGALI SIGN VIRAMA -09D7 BENGALI AU LENGTH MARK -09DC BENGALI LETTER RRA -09DD BENGALI LETTER RHA -09DF BENGALI LETTER YYA -09E0 BENGALI LETTER VOCALIC RR -09E1 BENGALI LETTER VOCALIC LL -09E2 BENGALI VOWEL SIGN VOCALIC L -09E3 BENGALI VOWEL SIGN VOCALIC LL -09E6 BENGALI DIGIT ZERO -09E7 BENGALI DIGIT ONE -09E8 BENGALI DIGIT TWO -09E9 BENGALI DIGIT THREE -09EA BENGALI DIGIT FOUR -09EB BENGALI DIGIT FIVE -09EC BENGALI DIGIT SIX -09ED BENGALI DIGIT SEVEN -09EE BENGALI DIGIT EIGHT -09EF BENGALI DIGIT NINE -09F0 BENGALI LETTER RA WITH MIDDLE DIAGONAL -09F1 BENGALI LETTER RA WITH LOWER DIAGONAL -09F2 BENGALI RUPEE MARK -09F3 BENGALI RUPEE SIGN -09F4 BENGALI CURRENCY NUMERATOR ONE -09F5 BENGALI CURRENCY NUMERATOR TWO -09F6 BENGALI CURRENCY NUMERATOR THREE -09F7 BENGALI CURRENCY NUMERATOR FOUR -09F8 BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR -09F9 BENGALI CURRENCY DENOMINATOR SIXTEEN -09FA BENGALI ISSHAR -0A02 GURMUKHI SIGN BINDI -0A05 GURMUKHI LETTER A -0A06 GURMUKHI LETTER AA -0A07 GURMUKHI LETTER I -0A08 GURMUKHI LETTER II -0A09 GURMUKHI LETTER U -0A0A GURMUKHI LETTER UU -0A0F GURMUKHI LETTER EE -0A10 GURMUKHI LETTER AI -0A13 GURMUKHI LETTER OO -0A14 GURMUKHI LETTER AU -0A15 GURMUKHI LETTER KA -0A16 GURMUKHI LETTER KHA -0A17 GURMUKHI LETTER GA -0A18 GURMUKHI LETTER GHA -0A19 GURMUKHI LETTER NGA -0A1A GURMUKHI LETTER CA -0A1B GURMUKHI LETTER CHA -0A1C GURMUKHI LETTER JA -0A1D GURMUKHI LETTER JHA -0A1E GURMUKHI LETTER NYA -0A1F GURMUKHI LETTER TTA -0A20 GURMUKHI LETTER TTHA -0A21 GURMUKHI LETTER DDA -0A22 GURMUKHI LETTER DDHA -0A23 GURMUKHI LETTER NNA -0A24 GURMUKHI LETTER TA -0A25 GURMUKHI LETTER THA -0A26 GURMUKHI LETTER DA -0A27 GURMUKHI LETTER DHA -0A28 GURMUKHI LETTER NA -0A2A GURMUKHI LETTER PA -0A2B GURMUKHI LETTER PHA -0A2C GURMUKHI LETTER BA -0A2D GURMUKHI LETTER BHA -0A2E GURMUKHI LETTER MA -0A2F GURMUKHI LETTER YA -0A30 GURMUKHI LETTER RA -0A32 GURMUKHI LETTER LA -0A33 GURMUKHI LETTER LLA -0A35 GURMUKHI LETTER VA -0A36 GURMUKHI LETTER SHA -0A38 GURMUKHI LETTER SA -0A39 GURMUKHI LETTER HA -0A3C GURMUKHI SIGN NUKTA -0A3E GURMUKHI VOWEL SIGN AA -0A3F GURMUKHI VOWEL SIGN I -0A40 GURMUKHI VOWEL SIGN II -0A41 GURMUKHI VOWEL SIGN U -0A42 GURMUKHI VOWEL SIGN UU -0A47 GURMUKHI VOWEL SIGN EE -0A48 GURMUKHI VOWEL SIGN AI -0A4B GURMUKHI VOWEL SIGN OO -0A4C GURMUKHI VOWEL SIGN AU -0A4D GURMUKHI SIGN VIRAMA -0A59 GURMUKHI LETTER KHHA -0A5A GURMUKHI LETTER GHHA -0A5B GURMUKHI LETTER ZA -0A5C GURMUKHI LETTER RRA -0A5E GURMUKHI LETTER FA -0A66 GURMUKHI DIGIT ZERO -0A67 GURMUKHI DIGIT ONE -0A68 GURMUKHI DIGIT TWO -0A69 GURMUKHI DIGIT THREE -0A6A GURMUKHI DIGIT FOUR -0A6B GURMUKHI DIGIT FIVE -0A6C GURMUKHI DIGIT SIX -0A6D GURMUKHI DIGIT SEVEN -0A6E GURMUKHI DIGIT EIGHT -0A6F GURMUKHI DIGIT NINE -0A70 GURMUKHI TIPPI -0A71 GURMUKHI ADDAK -0A72 GURMUKHI IRI -0A73 GURMUKHI URA -0A74 GURMUKHI EK ONKAR -0A81 GUJARATI SIGN CANDRABINDU -0A82 GUJARATI SIGN ANUSVARA -0A83 GUJARATI SIGN VISARGA -0A85 GUJARATI LETTER A -0A86 GUJARATI LETTER AA -0A87 GUJARATI LETTER I -0A88 GUJARATI LETTER II -0A89 GUJARATI LETTER U -0A8A GUJARATI LETTER UU -0A8B GUJARATI LETTER VOCALIC R -0A8D GUJARATI VOWEL CANDRA E -0A8F GUJARATI LETTER E -0A90 GUJARATI LETTER AI -0A91 GUJARATI VOWEL CANDRA O -0A93 GUJARATI LETTER O -0A94 GUJARATI LETTER AU -0A95 GUJARATI LETTER KA -0A96 GUJARATI LETTER KHA -0A97 GUJARATI LETTER GA -0A98 GUJARATI LETTER GHA -0A99 GUJARATI LETTER NGA -0A9A GUJARATI LETTER CA -0A9B GUJARATI LETTER CHA -0A9C GUJARATI LETTER JA -0A9D GUJARATI LETTER JHA -0A9E GUJARATI LETTER NYA -0A9F GUJARATI LETTER TTA -0AA0 GUJARATI LETTER TTHA -0AA1 GUJARATI LETTER DDA -0AA2 GUJARATI LETTER DDHA -0AA3 GUJARATI LETTER NNA -0AA4 GUJARATI LETTER TA -0AA5 GUJARATI LETTER THA -0AA6 GUJARATI LETTER DA -0AA7 GUJARATI LETTER DHA -0AA8 GUJARATI LETTER NA -0AAA GUJARATI LETTER PA -0AAB GUJARATI LETTER PHA -0AAC GUJARATI LETTER BA -0AAD GUJARATI LETTER BHA -0AAE GUJARATI LETTER MA -0AAF GUJARATI LETTER YA -0AB0 GUJARATI LETTER RA -0AB2 GUJARATI LETTER LA -0AB3 GUJARATI LETTER LLA -0AB5 GUJARATI LETTER VA -0AB6 GUJARATI LETTER SHA -0AB7 GUJARATI LETTER SSA -0AB8 GUJARATI LETTER SA -0AB9 GUJARATI LETTER HA -0ABC GUJARATI SIGN NUKTA -0ABD GUJARATI SIGN AVAGRAHA -0ABE GUJARATI VOWEL SIGN AA -0ABF GUJARATI VOWEL SIGN I -0AC0 GUJARATI VOWEL SIGN II -0AC1 GUJARATI VOWEL SIGN U -0AC2 GUJARATI VOWEL SIGN UU -0AC3 GUJARATI VOWEL SIGN VOCALIC R -0AC4 GUJARATI VOWEL SIGN VOCALIC RR -0AC5 GUJARATI VOWEL SIGN CANDRA E -0AC7 GUJARATI VOWEL SIGN E -0AC8 GUJARATI VOWEL SIGN AI -0AC9 GUJARATI VOWEL SIGN CANDRA O -0ACB GUJARATI VOWEL SIGN O -0ACC GUJARATI VOWEL SIGN AU -0ACD GUJARATI SIGN VIRAMA -0AD0 GUJARATI OM -0AE0 GUJARATI LETTER VOCALIC RR -0AE6 GUJARATI DIGIT ZERO -0AE7 GUJARATI DIGIT ONE -0AE8 GUJARATI DIGIT TWO -0AE9 GUJARATI DIGIT THREE -0AEA GUJARATI DIGIT FOUR -0AEB GUJARATI DIGIT FIVE -0AEC GUJARATI DIGIT SIX -0AED GUJARATI DIGIT SEVEN -0AEE GUJARATI DIGIT EIGHT -0AEF GUJARATI DIGIT NINE -0B01 ORIYA SIGN CANDRABINDU -0B02 ORIYA SIGN ANUSVARA -0B03 ORIYA SIGN VISARGA -0B05 ORIYA LETTER A -0B06 ORIYA LETTER AA -0B07 ORIYA LETTER I -0B08 ORIYA LETTER II -0B09 ORIYA LETTER U -0B0A ORIYA LETTER UU -0B0B ORIYA LETTER VOCALIC R -0B0C ORIYA LETTER VOCALIC L -0B0F ORIYA LETTER E -0B10 ORIYA LETTER AI -0B13 ORIYA LETTER O -0B14 ORIYA LETTER AU -0B15 ORIYA LETTER KA -0B16 ORIYA LETTER KHA -0B17 ORIYA LETTER GA -0B18 ORIYA LETTER GHA -0B19 ORIYA LETTER NGA -0B1A ORIYA LETTER CA -0B1B ORIYA LETTER CHA -0B1C ORIYA LETTER JA -0B1D ORIYA LETTER JHA -0B1E ORIYA LETTER NYA -0B1F ORIYA LETTER TTA -0B20 ORIYA LETTER TTHA -0B21 ORIYA LETTER DDA -0B22 ORIYA LETTER DDHA -0B23 ORIYA LETTER NNA -0B24 ORIYA LETTER TA -0B25 ORIYA LETTER THA -0B26 ORIYA LETTER DA -0B27 ORIYA LETTER DHA -0B28 ORIYA LETTER NA -0B2A ORIYA LETTER PA -0B2B ORIYA LETTER PHA -0B2C ORIYA LETTER BA -0B2D ORIYA LETTER BHA -0B2E ORIYA LETTER MA -0B2F ORIYA LETTER YA -0B30 ORIYA LETTER RA -0B32 ORIYA LETTER LA -0B33 ORIYA LETTER LLA -0B36 ORIYA LETTER SHA -0B37 ORIYA LETTER SSA -0B38 ORIYA LETTER SA -0B39 ORIYA LETTER HA -0B3C ORIYA SIGN NUKTA -0B3D ORIYA SIGN AVAGRAHA -0B3E ORIYA VOWEL SIGN AA -0B3F ORIYA VOWEL SIGN I -0B40 ORIYA VOWEL SIGN II -0B41 ORIYA VOWEL SIGN U -0B42 ORIYA VOWEL SIGN UU -0B43 ORIYA VOWEL SIGN VOCALIC R -0B47 ORIYA VOWEL SIGN E -0B48 ORIYA VOWEL SIGN AI -0B4B ORIYA VOWEL SIGN O -0B4C ORIYA VOWEL SIGN AU -0B4D ORIYA SIGN VIRAMA -0B56 ORIYA AI LENGTH MARK -0B57 ORIYA AU LENGTH MARK -0B5C ORIYA LETTER RRA -0B5D ORIYA LETTER RHA -0B5F ORIYA LETTER YYA -0B60 ORIYA LETTER VOCALIC RR -0B61 ORIYA LETTER VOCALIC LL -0B66 ORIYA DIGIT ZERO -0B67 ORIYA DIGIT ONE -0B68 ORIYA DIGIT TWO -0B69 ORIYA DIGIT THREE -0B6A ORIYA DIGIT FOUR -0B6B ORIYA DIGIT FIVE -0B6C ORIYA DIGIT SIX -0B6D ORIYA DIGIT SEVEN -0B6E ORIYA DIGIT EIGHT -0B6F ORIYA DIGIT NINE -0B70 ORIYA ISSHAR -0B82 TAMIL SIGN ANUSVARA -0B83 TAMIL SIGN VISARGA -0B85 TAMIL LETTER A -0B86 TAMIL LETTER AA -0B87 TAMIL LETTER I -0B88 TAMIL LETTER II -0B89 TAMIL LETTER U -0B8A TAMIL LETTER UU -0B8E TAMIL LETTER E -0B8F TAMIL LETTER EE -0B90 TAMIL LETTER AI -0B92 TAMIL LETTER O -0B93 TAMIL LETTER OO -0B94 TAMIL LETTER AU -0B95 TAMIL LETTER KA -0B99 TAMIL LETTER NGA -0B9A TAMIL LETTER CA -0B9C TAMIL LETTER JA -0B9E TAMIL LETTER NYA -0B9F TAMIL LETTER TTA -0BA3 TAMIL LETTER NNA -0BA4 TAMIL LETTER TA -0BA8 TAMIL LETTER NA -0BA9 TAMIL LETTER NNNA -0BAA TAMIL LETTER PA -0BAE TAMIL LETTER MA -0BAF TAMIL LETTER YA -0BB0 TAMIL LETTER RA -0BB1 TAMIL LETTER RRA -0BB2 TAMIL LETTER LA -0BB3 TAMIL LETTER LLA -0BB4 TAMIL LETTER LLLA -0BB5 TAMIL LETTER VA -0BB7 TAMIL LETTER SSA -0BB8 TAMIL LETTER SA -0BB9 TAMIL LETTER HA -0BBE TAMIL VOWEL SIGN AA -0BBF TAMIL VOWEL SIGN I -0BC0 TAMIL VOWEL SIGN II -0BC1 TAMIL VOWEL SIGN U -0BC2 TAMIL VOWEL SIGN UU -0BC6 TAMIL VOWEL SIGN E -0BC7 TAMIL VOWEL SIGN EE -0BC8 TAMIL VOWEL SIGN AI -0BCA TAMIL VOWEL SIGN O -0BCB TAMIL VOWEL SIGN OO -0BCC TAMIL VOWEL SIGN AU -0BCD TAMIL SIGN VIRAMA -0BD7 TAMIL AU LENGTH MARK -0BE7 TAMIL DIGIT ONE -0BE8 TAMIL DIGIT TWO -0BE9 TAMIL DIGIT THREE -0BEA TAMIL DIGIT FOUR -0BEB TAMIL DIGIT FIVE -0BEC TAMIL DIGIT SIX -0BED TAMIL DIGIT SEVEN -0BEE TAMIL DIGIT EIGHT -0BEF TAMIL DIGIT NINE -0BF0 TAMIL NUMBER TEN -0BF1 TAMIL NUMBER ONE HUNDRED -0BF2 TAMIL NUMBER ONE THOUSAND -0C01 TELUGU SIGN CANDRABINDU -0C02 TELUGU SIGN ANUSVARA -0C03 TELUGU SIGN VISARGA -0C05 TELUGU LETTER A -0C06 TELUGU LETTER AA -0C07 TELUGU LETTER I -0C08 TELUGU LETTER II -0C09 TELUGU LETTER U -0C0A TELUGU LETTER UU -0C0B TELUGU LETTER VOCALIC R -0C0C TELUGU LETTER VOCALIC L -0C0E TELUGU LETTER E -0C0F TELUGU LETTER EE -0C10 TELUGU LETTER AI -0C12 TELUGU LETTER O -0C13 TELUGU LETTER OO -0C14 TELUGU LETTER AU -0C15 TELUGU LETTER KA -0C16 TELUGU LETTER KHA -0C17 TELUGU LETTER GA -0C18 TELUGU LETTER GHA -0C19 TELUGU LETTER NGA -0C1A TELUGU LETTER CA -0C1B TELUGU LETTER CHA -0C1C TELUGU LETTER JA -0C1D TELUGU LETTER JHA -0C1E TELUGU LETTER NYA -0C1F TELUGU LETTER TTA -0C20 TELUGU LETTER TTHA -0C21 TELUGU LETTER DDA -0C22 TELUGU LETTER DDHA -0C23 TELUGU LETTER NNA -0C24 TELUGU LETTER TA -0C25 TELUGU LETTER THA -0C26 TELUGU LETTER DA -0C27 TELUGU LETTER DHA -0C28 TELUGU LETTER NA -0C2A TELUGU LETTER PA -0C2B TELUGU LETTER PHA -0C2C TELUGU LETTER BA -0C2D TELUGU LETTER BHA -0C2E TELUGU LETTER MA -0C2F TELUGU LETTER YA -0C30 TELUGU LETTER RA -0C31 TELUGU LETTER RRA -0C32 TELUGU LETTER LA -0C33 TELUGU LETTER LLA -0C35 TELUGU LETTER VA -0C36 TELUGU LETTER SHA -0C37 TELUGU LETTER SSA -0C38 TELUGU LETTER SA -0C39 TELUGU LETTER HA -0C3E TELUGU VOWEL SIGN AA -0C3F TELUGU VOWEL SIGN I -0C40 TELUGU VOWEL SIGN II -0C41 TELUGU VOWEL SIGN U -0C42 TELUGU VOWEL SIGN UU -0C43 TELUGU VOWEL SIGN VOCALIC R -0C44 TELUGU VOWEL SIGN VOCALIC RR -0C46 TELUGU VOWEL SIGN E -0C47 TELUGU VOWEL SIGN EE -0C48 TELUGU VOWEL SIGN AI -0C4A TELUGU VOWEL SIGN O -0C4B TELUGU VOWEL SIGN OO -0C4C TELUGU VOWEL SIGN AU -0C4D TELUGU SIGN VIRAMA -0C55 TELUGU LENGTH MARK -0C56 TELUGU AI LENGTH MARK -0C60 TELUGU LETTER VOCALIC RR -0C61 TELUGU LETTER VOCALIC LL -0C66 TELUGU DIGIT ZERO -0C67 TELUGU DIGIT ONE -0C68 TELUGU DIGIT TWO -0C69 TELUGU DIGIT THREE -0C6A TELUGU DIGIT FOUR -0C6B TELUGU DIGIT FIVE -0C6C TELUGU DIGIT SIX -0C6D TELUGU DIGIT SEVEN -0C6E TELUGU DIGIT EIGHT -0C6F TELUGU DIGIT NINE -0C82 KANNADA SIGN ANUSVARA -0C83 KANNADA SIGN VISARGA -0C85 KANNADA LETTER A -0C86 KANNADA LETTER AA -0C87 KANNADA LETTER I -0C88 KANNADA LETTER II -0C89 KANNADA LETTER U -0C8A KANNADA LETTER UU -0C8B KANNADA LETTER VOCALIC R -0C8C KANNADA LETTER VOCALIC L -0C8E KANNADA LETTER E -0C8F KANNADA LETTER EE -0C90 KANNADA LETTER AI -0C92 KANNADA LETTER O -0C93 KANNADA LETTER OO -0C94 KANNADA LETTER AU -0C95 KANNADA LETTER KA -0C96 KANNADA LETTER KHA -0C97 KANNADA LETTER GA -0C98 KANNADA LETTER GHA -0C99 KANNADA LETTER NGA -0C9A KANNADA LETTER CA -0C9B KANNADA LETTER CHA -0C9C KANNADA LETTER JA -0C9D KANNADA LETTER JHA -0C9E KANNADA LETTER NYA -0C9F KANNADA LETTER TTA -0CA0 KANNADA LETTER TTHA -0CA1 KANNADA LETTER DDA -0CA2 KANNADA LETTER DDHA -0CA3 KANNADA LETTER NNA -0CA4 KANNADA LETTER TA -0CA5 KANNADA LETTER THA -0CA6 KANNADA LETTER DA -0CA7 KANNADA LETTER DHA -0CA8 KANNADA LETTER NA -0CAA KANNADA LETTER PA -0CAB KANNADA LETTER PHA -0CAC KANNADA LETTER BA -0CAD KANNADA LETTER BHA -0CAE KANNADA LETTER MA -0CAF KANNADA LETTER YA -0CB0 KANNADA LETTER RA -0CB1 KANNADA LETTER RRA -0CB2 KANNADA LETTER LA -0CB3 KANNADA LETTER LLA -0CB5 KANNADA LETTER VA -0CB6 KANNADA LETTER SHA -0CB7 KANNADA LETTER SSA -0CB8 KANNADA LETTER SA -0CB9 KANNADA LETTER HA -0CBE KANNADA VOWEL SIGN AA -0CBF KANNADA VOWEL SIGN I -0CC0 KANNADA VOWEL SIGN II -0CC1 KANNADA VOWEL SIGN U -0CC2 KANNADA VOWEL SIGN UU -0CC3 KANNADA VOWEL SIGN VOCALIC R -0CC4 KANNADA VOWEL SIGN VOCALIC RR -0CC6 KANNADA VOWEL SIGN E -0CC7 KANNADA VOWEL SIGN EE -0CC8 KANNADA VOWEL SIGN AI -0CCA KANNADA VOWEL SIGN O -0CCB KANNADA VOWEL SIGN OO -0CCC KANNADA VOWEL SIGN AU -0CCD KANNADA SIGN VIRAMA -0CD5 KANNADA LENGTH MARK -0CD6 KANNADA AI LENGTH MARK -0CDE KANNADA LETTER FA -0CE0 KANNADA LETTER VOCALIC RR -0CE1 KANNADA LETTER VOCALIC LL -0CE6 KANNADA DIGIT ZERO -0CE7 KANNADA DIGIT ONE -0CE8 KANNADA DIGIT TWO -0CE9 KANNADA DIGIT THREE -0CEA KANNADA DIGIT FOUR -0CEB KANNADA DIGIT FIVE -0CEC KANNADA DIGIT SIX -0CED KANNADA DIGIT SEVEN -0CEE KANNADA DIGIT EIGHT -0CEF KANNADA DIGIT NINE -0D02 MALAYALAM SIGN ANUSVARA -0D03 MALAYALAM SIGN VISARGA -0D05 MALAYALAM LETTER A -0D06 MALAYALAM LETTER AA -0D07 MALAYALAM LETTER I -0D08 MALAYALAM LETTER II -0D09 MALAYALAM LETTER U -0D0A MALAYALAM LETTER UU -0D0B MALAYALAM LETTER VOCALIC R -0D0C MALAYALAM LETTER VOCALIC L -0D0E MALAYALAM LETTER E -0D0F MALAYALAM LETTER EE -0D10 MALAYALAM LETTER AI -0D12 MALAYALAM LETTER O -0D13 MALAYALAM LETTER OO -0D14 MALAYALAM LETTER AU -0D15 MALAYALAM LETTER KA -0D16 MALAYALAM LETTER KHA -0D17 MALAYALAM LETTER GA -0D18 MALAYALAM LETTER GHA -0D19 MALAYALAM LETTER NGA -0D1A MALAYALAM LETTER CA -0D1B MALAYALAM LETTER CHA -0D1C MALAYALAM LETTER JA -0D1D MALAYALAM LETTER JHA -0D1E MALAYALAM LETTER NYA -0D1F MALAYALAM LETTER TTA -0D20 MALAYALAM LETTER TTHA -0D21 MALAYALAM LETTER DDA -0D22 MALAYALAM LETTER DDHA -0D23 MALAYALAM LETTER NNA -0D24 MALAYALAM LETTER TA -0D25 MALAYALAM LETTER THA -0D26 MALAYALAM LETTER DA -0D27 MALAYALAM LETTER DHA -0D28 MALAYALAM LETTER NA -0D2A MALAYALAM LETTER PA -0D2B MALAYALAM LETTER PHA -0D2C MALAYALAM LETTER BA -0D2D MALAYALAM LETTER BHA -0D2E MALAYALAM LETTER MA -0D2F MALAYALAM LETTER YA -0D30 MALAYALAM LETTER RA -0D31 MALAYALAM LETTER RRA -0D32 MALAYALAM LETTER LA -0D33 MALAYALAM LETTER LLA -0D34 MALAYALAM LETTER LLLA -0D35 MALAYALAM LETTER VA -0D36 MALAYALAM LETTER SHA -0D37 MALAYALAM LETTER SSA -0D38 MALAYALAM LETTER SA -0D39 MALAYALAM LETTER HA -0D3E MALAYALAM VOWEL SIGN AA -0D3F MALAYALAM VOWEL SIGN I -0D40 MALAYALAM VOWEL SIGN II -0D41 MALAYALAM VOWEL SIGN U -0D42 MALAYALAM VOWEL SIGN UU -0D43 MALAYALAM VOWEL SIGN VOCALIC R -0D46 MALAYALAM VOWEL SIGN E -0D47 MALAYALAM VOWEL SIGN EE -0D48 MALAYALAM VOWEL SIGN AI -0D4A MALAYALAM VOWEL SIGN O -0D4B MALAYALAM VOWEL SIGN OO -0D4C MALAYALAM VOWEL SIGN AU -0D4D MALAYALAM SIGN VIRAMA -0D57 MALAYALAM AU LENGTH MARK -0D60 MALAYALAM LETTER VOCALIC RR -0D61 MALAYALAM LETTER VOCALIC LL -0D66 MALAYALAM DIGIT ZERO -0D67 MALAYALAM DIGIT ONE -0D68 MALAYALAM DIGIT TWO -0D69 MALAYALAM DIGIT THREE -0D6A MALAYALAM DIGIT FOUR -0D6B MALAYALAM DIGIT FIVE -0D6C MALAYALAM DIGIT SIX -0D6D MALAYALAM DIGIT SEVEN -0D6E MALAYALAM DIGIT EIGHT -0D6F MALAYALAM DIGIT NINE -0D82 SINHALA SIGN ANUSVARAYA -0D83 SINHALA SIGN VISARGAYA -0D85 SINHALA LETTER AYANNA -0D86 SINHALA LETTER AAYANNA -0D87 SINHALA LETTER AEYANNA -0D88 SINHALA LETTER AEEYANNA -0D89 SINHALA LETTER IYANNA -0D8A SINHALA LETTER IIYANNA -0D8B SINHALA LETTER UYANNA -0D8C SINHALA LETTER UUYANNA -0D8D SINHALA LETTER IRUYANNA -0D8E SINHALA LETTER IRUUYANNA -0D8F SINHALA LETTER ILUYANNA -0D90 SINHALA LETTER ILUUYANNA -0D91 SINHALA LETTER EYANNA -0D92 SINHALA LETTER EEYANNA -0D93 SINHALA LETTER AIYANNA -0D94 SINHALA LETTER OYANNA -0D95 SINHALA LETTER OOYANNA -0D96 SINHALA LETTER AUYANNA -0D9A SINHALA LETTER ALPAPRAANA KAYANNA -0D9B SINHALA LETTER MAHAAPRAANA KAYANNA -0D9C SINHALA LETTER ALPAPRAANA GAYANNA -0D9D SINHALA LETTER MAHAAPRAANA GAYANNA -0D9E SINHALA LETTER KANTAJA NAASIKYAYA -0D9F SINHALA LETTER SANYAKA GAYANNA -0DA0 SINHALA LETTER ALPAPRAANA CAYANNA -0DA1 SINHALA LETTER MAHAAPRAANA CAYANNA -0DA2 SINHALA LETTER ALPAPRAANA JAYANNA -0DA3 SINHALA LETTER MAHAAPRAANA JAYANNA -0DA4 SINHALA LETTER TAALUJA NAASIKYAYA -0DA5 SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA -0DA6 SINHALA LETTER SANYAKA JAYANNA -0DA7 SINHALA LETTER ALPAPRAANA TTAYANNA -0DA8 SINHALA LETTER MAHAAPRAANA TTAYANNA -0DA9 SINHALA LETTER ALPAPRAANA DDAYANNA -0DAA SINHALA LETTER MAHAAPRAANA DDAYANNA -0DAB SINHALA LETTER MUURDHAJA NAYANNA -0DAC SINHALA LETTER SANYAKA DDAYANNA -0DAD SINHALA LETTER ALPAPRAANA TAYANNA -0DAE SINHALA LETTER MAHAAPRAANA TAYANNA -0DAF SINHALA LETTER ALPAPRAANA DAYANNA -0DB0 SINHALA LETTER MAHAAPRAANA DAYANNA -0DB1 SINHALA LETTER DANTAJA NAYANNA -0DB3 SINHALA LETTER SANYAKA DAYANNA -0DB4 SINHALA LETTER ALPAPRAANA PAYANNA -0DB5 SINHALA LETTER MAHAAPRAANA PAYANNA -0DB6 SINHALA LETTER ALPAPRAANA BAYANNA -0DB7 SINHALA LETTER MAHAAPRAANA BAYANNA -0DB8 SINHALA LETTER MAYANNA -0DB9 SINHALA LETTER AMBA BAYANNA -0DBA SINHALA LETTER YAYANNA -0DBB SINHALA LETTER RAYANNA -0DBD SINHALA LETTER DANTAJA LAYANNA -0DC0 SINHALA LETTER VAYANNA -0DC1 SINHALA LETTER TAALUJA SAYANNA -0DC2 SINHALA LETTER MUURDHAJA SAYANNA -0DC3 SINHALA LETTER DANTAJA SAYANNA -0DC4 SINHALA LETTER HAYANNA -0DC5 SINHALA LETTER MUURDHAJA LAYANNA -0DC6 SINHALA LETTER FAYANNA -0DCA SINHALA SIGN AL-LAKUNA -0DCF SINHALA VOWEL SIGN AELA-PILLA -0DD0 SINHALA VOWEL SIGN KETTI AEDA-PILLA -0DD1 SINHALA VOWEL SIGN DIGA AEDA-PILLA -0DD2 SINHALA VOWEL SIGN KETTI IS-PILLA -0DD3 SINHALA VOWEL SIGN DIGA IS-PILLA -0DD4 SINHALA VOWEL SIGN KETTI PAA-PILLA -0DD6 SINHALA VOWEL SIGN DIGA PAA-PILLA -0DD8 SINHALA VOWEL SIGN GAETTA-PILLA -0DD9 SINHALA VOWEL SIGN KOMBUVA -0DDA SINHALA VOWEL SIGN DIGA KOMBUVA -0DDB SINHALA VOWEL SIGN KOMBU DEKA -0DDC SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA -0DDD SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA -0DDE SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA -0DDF SINHALA VOWEL SIGN GAYANUKITTA -0DF2 SINHALA VOWEL SIGN DIGA GAETTA-PILLA -0DF3 SINHALA VOWEL SIGN DIGA GAYANUKITTA -0DF4 SINHALA PUNCTUATION KUNDDALIYA -0E01 THAI CHARACTER KO KAI -0E02 THAI CHARACTER KHO KHAI -0E03 THAI CHARACTER KHO KHUAT -0E04 THAI CHARACTER KHO KHWAI -0E05 THAI CHARACTER KHO KHON -0E06 THAI CHARACTER KHO RAKHANG -0E07 THAI CHARACTER NGO NGU -0E08 THAI CHARACTER CHO CHAN -0E09 THAI CHARACTER CHO CHING -0E0A THAI CHARACTER CHO CHANG -0E0B THAI CHARACTER SO SO -0E0C THAI CHARACTER CHO CHOE -0E0D THAI CHARACTER YO YING -0E0E THAI CHARACTER DO CHADA -0E0F THAI CHARACTER TO PATAK -0E10 THAI CHARACTER THO THAN -0E11 THAI CHARACTER THO NANGMONTHO -0E12 THAI CHARACTER THO PHUTHAO -0E13 THAI CHARACTER NO NEN -0E14 THAI CHARACTER DO DEK -0E15 THAI CHARACTER TO TAO -0E16 THAI CHARACTER THO THUNG -0E17 THAI CHARACTER THO THAHAN -0E18 THAI CHARACTER THO THONG -0E19 THAI CHARACTER NO NU -0E1A THAI CHARACTER BO BAIMAI -0E1B THAI CHARACTER PO PLA -0E1C THAI CHARACTER PHO PHUNG -0E1D THAI CHARACTER FO FA -0E1E THAI CHARACTER PHO PHAN -0E1F THAI CHARACTER FO FAN -0E20 THAI CHARACTER PHO SAMPHAO -0E21 THAI CHARACTER MO MA -0E22 THAI CHARACTER YO YAK -0E23 THAI CHARACTER RO RUA -0E24 THAI CHARACTER RU -0E25 THAI CHARACTER LO LING -0E26 THAI CHARACTER LU -0E27 THAI CHARACTER WO WAEN -0E28 THAI CHARACTER SO SALA -0E29 THAI CHARACTER SO RUSI -0E2A THAI CHARACTER SO SUA -0E2B THAI CHARACTER HO HIP -0E2C THAI CHARACTER LO CHULA -0E2D THAI CHARACTER O ANG -0E2E THAI CHARACTER HO NOKHUK -0E2F THAI CHARACTER PAIYANNOI -0E30 THAI CHARACTER SARA A -0E31 THAI CHARACTER MAI HAN-AKAT -0E32 THAI CHARACTER SARA AA -0E33 THAI CHARACTER SARA AM -0E34 THAI CHARACTER SARA I -0E35 THAI CHARACTER SARA II -0E36 THAI CHARACTER SARA UE -0E37 THAI CHARACTER SARA UEE -0E38 THAI CHARACTER SARA U -0E39 THAI CHARACTER SARA UU -0E3A THAI CHARACTER PHINTHU -0E3F THAI CURRENCY SYMBOL BAHT -0E40 THAI CHARACTER SARA E -0E41 THAI CHARACTER SARA AE -0E42 THAI CHARACTER SARA O -0E43 THAI CHARACTER SARA AI MAIMUAN -0E44 THAI CHARACTER SARA AI MAIMALAI -0E45 THAI CHARACTER LAKKHANGYAO -0E46 THAI CHARACTER MAIYAMOK -0E47 THAI CHARACTER MAITAIKHU -0E48 THAI CHARACTER MAI EK -0E49 THAI CHARACTER MAI THO -0E4A THAI CHARACTER MAI TRI -0E4B THAI CHARACTER MAI CHATTAWA -0E4C THAI CHARACTER THANTHAKHAT -0E4D THAI CHARACTER NIKHAHIT -0E4E THAI CHARACTER YAMAKKAN -0E4F THAI CHARACTER FONGMAN -0E50 THAI DIGIT ZERO -0E51 THAI DIGIT ONE -0E52 THAI DIGIT TWO -0E53 THAI DIGIT THREE -0E54 THAI DIGIT FOUR -0E55 THAI DIGIT FIVE -0E56 THAI DIGIT SIX -0E57 THAI DIGIT SEVEN -0E58 THAI DIGIT EIGHT -0E59 THAI DIGIT NINE -0E5A THAI CHARACTER ANGKHANKHU -0E5B THAI CHARACTER KHOMUT -0E81 LAO LETTER KO -0E82 LAO LETTER KHO SUNG -0E84 LAO LETTER KHO TAM -0E87 LAO LETTER NGO -0E88 LAO LETTER CO -0E8A LAO LETTER SO TAM -0E8D LAO LETTER NYO -0E94 LAO LETTER DO -0E95 LAO LETTER TO -0E96 LAO LETTER THO SUNG -0E97 LAO LETTER THO TAM -0E99 LAO LETTER NO -0E9A LAO LETTER BO -0E9B LAO LETTER PO -0E9C LAO LETTER PHO SUNG -0E9D LAO LETTER FO TAM -0E9E LAO LETTER PHO TAM -0E9F LAO LETTER FO SUNG -0EA1 LAO LETTER MO -0EA2 LAO LETTER YO -0EA3 LAO LETTER LO LING -0EA5 LAO LETTER LO LOOT -0EA7 LAO LETTER WO -0EAA LAO LETTER SO SUNG -0EAB LAO LETTER HO SUNG -0EAD LAO LETTER O -0EAE LAO LETTER HO TAM -0EAF LAO ELLIPSIS -0EB0 LAO VOWEL SIGN A -0EB1 LAO VOWEL SIGN MAI KAN -0EB2 LAO VOWEL SIGN AA -0EB3 LAO VOWEL SIGN AM -0EB4 LAO VOWEL SIGN I -0EB5 LAO VOWEL SIGN II -0EB6 LAO VOWEL SIGN Y -0EB7 LAO VOWEL SIGN YY -0EB8 LAO VOWEL SIGN U -0EB9 LAO VOWEL SIGN UU -0EBB LAO VOWEL SIGN MAI KON -0EBC LAO SEMIVOWEL SIGN LO -0EBD LAO SEMIVOWEL SIGN NYO -0EC0 LAO VOWEL SIGN E -0EC1 LAO VOWEL SIGN EI -0EC2 LAO VOWEL SIGN O -0EC3 LAO VOWEL SIGN AY -0EC4 LAO VOWEL SIGN AI -0EC6 LAO KO LA -0EC8 LAO TONE MAI EK -0EC9 LAO TONE MAI THO -0ECA LAO TONE MAI TI -0ECB LAO TONE MAI CATAWA -0ECC LAO CANCELLATION MARK -0ECD LAO NIGGAHITA -0ED0 LAO DIGIT ZERO -0ED1 LAO DIGIT ONE -0ED2 LAO DIGIT TWO -0ED3 LAO DIGIT THREE -0ED4 LAO DIGIT FOUR -0ED5 LAO DIGIT FIVE -0ED6 LAO DIGIT SIX -0ED7 LAO DIGIT SEVEN -0ED8 LAO DIGIT EIGHT -0ED9 LAO DIGIT NINE -0EDC LAO HO NO -0EDD LAO HO MO -0F00 TIBETAN SYLLABLE OM -0F01 TIBETAN MARK GTER YIG MGO TRUNCATED A -0F02 TIBETAN MARK GTER YIG MGO -UM RNAM BCAD MA -0F03 TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA -0F04 TIBETAN MARK INITIAL YIG MGO MDUN MA -0F05 TIBETAN MARK CLOSING YIG MGO SGAB MA -0F06 TIBETAN MARK CARET YIG MGO PHUR SHAD MA -0F07 TIBETAN MARK YIG MGO TSHEG SHAD MA -0F08 TIBETAN MARK SBRUL SHAD -0F09 TIBETAN MARK BSKUR YIG MGO -0F0A TIBETAN MARK BKA- SHOG YIG MGO -0F0B TIBETAN MARK INTERSYLLABIC TSHEG -0F0C TIBETAN MARK DELIMITER TSHEG BSTAR -0F0D TIBETAN MARK SHAD -0F0E TIBETAN MARK NYIS SHAD -0F0F TIBETAN MARK TSHEG SHAD -0F10 TIBETAN MARK NYIS TSHEG SHAD -0F11 TIBETAN MARK RIN CHEN SPUNGS SHAD -0F12 TIBETAN MARK RGYA GRAM SHAD -0F13 TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN -0F14 TIBETAN MARK GTER TSHEG -0F15 TIBETAN LOGOTYPE SIGN CHAD RTAGS -0F16 TIBETAN LOGOTYPE SIGN LHAG RTAGS -0F17 TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS -0F18 TIBETAN ASTROLOGICAL SIGN -KHYUD PA -0F19 TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS -0F1A TIBETAN SIGN RDEL DKAR GCIG -0F1B TIBETAN SIGN RDEL DKAR GNYIS -0F1C TIBETAN SIGN RDEL DKAR GSUM -0F1D TIBETAN SIGN RDEL NAG GCIG -0F1E TIBETAN SIGN RDEL NAG GNYIS -0F1F TIBETAN SIGN RDEL DKAR RDEL NAG -0F20 TIBETAN DIGIT ZERO -0F21 TIBETAN DIGIT ONE -0F22 TIBETAN DIGIT TWO -0F23 TIBETAN DIGIT THREE -0F24 TIBETAN DIGIT FOUR -0F25 TIBETAN DIGIT FIVE -0F26 TIBETAN DIGIT SIX -0F27 TIBETAN DIGIT SEVEN -0F28 TIBETAN DIGIT EIGHT -0F29 TIBETAN DIGIT NINE -0F2A TIBETAN DIGIT HALF ONE -0F2B TIBETAN DIGIT HALF TWO -0F2C TIBETAN DIGIT HALF THREE -0F2D TIBETAN DIGIT HALF FOUR -0F2E TIBETAN DIGIT HALF FIVE -0F2F TIBETAN DIGIT HALF SIX -0F30 TIBETAN DIGIT HALF SEVEN -0F31 TIBETAN DIGIT HALF EIGHT -0F32 TIBETAN DIGIT HALF NINE -0F33 TIBETAN DIGIT HALF ZERO -0F34 TIBETAN MARK BSDUS RTAGS -0F35 TIBETAN MARK NGAS BZUNG NYI ZLA -0F36 TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN -0F37 TIBETAN MARK NGAS BZUNG SGOR RTAGS -0F38 TIBETAN MARK CHE MGO -0F39 TIBETAN MARK TSA -PHRU -0F3A TIBETAN MARK GUG RTAGS GYON -0F3B TIBETAN MARK GUG RTAGS GYAS -0F3C TIBETAN MARK ANG KHANG GYON -0F3D TIBETAN MARK ANG KHANG GYAS -0F3E TIBETAN SIGN YAR TSHES -0F3F TIBETAN SIGN MAR TSHES -0F40 TIBETAN LETTER KA -0F41 TIBETAN LETTER KHA -0F42 TIBETAN LETTER GA -0F43 TIBETAN LETTER GHA -0F44 TIBETAN LETTER NGA -0F45 TIBETAN LETTER CA -0F46 TIBETAN LETTER CHA -0F47 TIBETAN LETTER JA -0F49 TIBETAN LETTER NYA -0F4A TIBETAN LETTER TTA -0F4B TIBETAN LETTER TTHA -0F4C TIBETAN LETTER DDA -0F4D TIBETAN LETTER DDHA -0F4E TIBETAN LETTER NNA -0F4F TIBETAN LETTER TA -0F50 TIBETAN LETTER THA -0F51 TIBETAN LETTER DA -0F52 TIBETAN LETTER DHA -0F53 TIBETAN LETTER NA -0F54 TIBETAN LETTER PA -0F55 TIBETAN LETTER PHA -0F56 TIBETAN LETTER BA -0F57 TIBETAN LETTER BHA -0F58 TIBETAN LETTER MA -0F59 TIBETAN LETTER TSA -0F5A TIBETAN LETTER TSHA -0F5B TIBETAN LETTER DZA -0F5C TIBETAN LETTER DZHA -0F5D TIBETAN LETTER WA -0F5E TIBETAN LETTER ZHA -0F5F TIBETAN LETTER ZA -0F60 TIBETAN LETTER -A -0F61 TIBETAN LETTER YA -0F62 TIBETAN LETTER RA -0F63 TIBETAN LETTER LA -0F64 TIBETAN LETTER SHA -0F65 TIBETAN LETTER SSA -0F66 TIBETAN LETTER SA -0F67 TIBETAN LETTER HA -0F68 TIBETAN LETTER A -0F69 TIBETAN LETTER KSSA -0F6A TIBETAN LETTER FIXED-FORM RA -0F71 TIBETAN VOWEL SIGN AA -0F72 TIBETAN VOWEL SIGN I -0F73 TIBETAN VOWEL SIGN II -0F74 TIBETAN VOWEL SIGN U -0F75 TIBETAN VOWEL SIGN UU -0F76 TIBETAN VOWEL SIGN VOCALIC R -0F77 TIBETAN VOWEL SIGN VOCALIC RR -0F78 TIBETAN VOWEL SIGN VOCALIC L -0F79 TIBETAN VOWEL SIGN VOCALIC LL -0F7A TIBETAN VOWEL SIGN E -0F7B TIBETAN VOWEL SIGN EE -0F7C TIBETAN VOWEL SIGN O -0F7D TIBETAN VOWEL SIGN OO -0F7E TIBETAN SIGN RJES SU NGA RO -0F7F TIBETAN SIGN RNAM BCAD -0F80 TIBETAN VOWEL SIGN REVERSED I -0F81 TIBETAN VOWEL SIGN REVERSED II -0F82 TIBETAN SIGN NYI ZLA NAA DA -0F83 TIBETAN SIGN SNA LDAN -0F84 TIBETAN MARK HALANTA -0F85 TIBETAN MARK PALUTA -0F86 TIBETAN SIGN LCI RTAGS -0F87 TIBETAN SIGN YANG RTAGS -0F88 TIBETAN SIGN LCE TSA CAN -0F89 TIBETAN SIGN MCHU CAN -0F8A TIBETAN SIGN GRU CAN RGYINGS -0F8B TIBETAN SIGN GRU MED RGYINGS -0F90 TIBETAN SUBJOINED LETTER KA -0F91 TIBETAN SUBJOINED LETTER KHA -0F92 TIBETAN SUBJOINED LETTER GA -0F93 TIBETAN SUBJOINED LETTER GHA -0F94 TIBETAN SUBJOINED LETTER NGA -0F95 TIBETAN SUBJOINED LETTER CA -0F96 TIBETAN SUBJOINED LETTER CHA -0F97 TIBETAN SUBJOINED LETTER JA -0F99 TIBETAN SUBJOINED LETTER NYA -0F9A TIBETAN SUBJOINED LETTER TTA -0F9B TIBETAN SUBJOINED LETTER TTHA -0F9C TIBETAN SUBJOINED LETTER DDA -0F9D TIBETAN SUBJOINED LETTER DDHA -0F9E TIBETAN SUBJOINED LETTER NNA -0F9F TIBETAN SUBJOINED LETTER TA -0FA0 TIBETAN SUBJOINED LETTER THA -0FA1 TIBETAN SUBJOINED LETTER DA -0FA2 TIBETAN SUBJOINED LETTER DHA -0FA3 TIBETAN SUBJOINED LETTER NA -0FA4 TIBETAN SUBJOINED LETTER PA -0FA5 TIBETAN SUBJOINED LETTER PHA -0FA6 TIBETAN SUBJOINED LETTER BA -0FA7 TIBETAN SUBJOINED LETTER BHA -0FA8 TIBETAN SUBJOINED LETTER MA -0FA9 TIBETAN SUBJOINED LETTER TSA -0FAA TIBETAN SUBJOINED LETTER TSHA -0FAB TIBETAN SUBJOINED LETTER DZA -0FAC TIBETAN SUBJOINED LETTER DZHA -0FAD TIBETAN SUBJOINED LETTER WA -0FAE TIBETAN SUBJOINED LETTER ZHA -0FAF TIBETAN SUBJOINED LETTER ZA -0FB0 TIBETAN SUBJOINED LETTER -A -0FB1 TIBETAN SUBJOINED LETTER YA -0FB2 TIBETAN SUBJOINED LETTER RA -0FB3 TIBETAN SUBJOINED LETTER LA -0FB4 TIBETAN SUBJOINED LETTER SHA -0FB5 TIBETAN SUBJOINED LETTER SSA -0FB6 TIBETAN SUBJOINED LETTER SA -0FB7 TIBETAN SUBJOINED LETTER HA -0FB8 TIBETAN SUBJOINED LETTER A -0FB9 TIBETAN SUBJOINED LETTER KSSA -0FBA TIBETAN SUBJOINED LETTER FIXED-FORM WA -0FBB TIBETAN SUBJOINED LETTER FIXED-FORM YA -0FBC TIBETAN SUBJOINED LETTER FIXED-FORM RA -0FBE TIBETAN KU RU KHA -0FBF TIBETAN KU RU KHA BZHI MIG CAN -0FC0 TIBETAN CANTILLATION SIGN HEAVY BEAT -0FC1 TIBETAN CANTILLATION SIGN LIGHT BEAT -0FC2 TIBETAN CANTILLATION SIGN CANG TE-U -0FC3 TIBETAN CANTILLATION SIGN SBUB -CHAL -0FC4 TIBETAN SYMBOL DRIL BU -0FC5 TIBETAN SYMBOL RDO RJE -0FC6 TIBETAN SYMBOL PADMA GDAN -0FC7 TIBETAN SYMBOL RDO RJE RGYA GRAM -0FC8 TIBETAN SYMBOL PHUR PA -0FC9 TIBETAN SYMBOL NOR BU -0FCA TIBETAN SYMBOL NOR BU NYIS -KHYIL -0FCB TIBETAN SYMBOL NOR BU GSUM -KHYIL -0FCC TIBETAN SYMBOL NOR BU BZHI -KHYIL -0FCF TIBETAN SIGN RDEL NAG GSUM -1000 MYANMAR LETTER KA -1001 MYANMAR LETTER KHA -1002 MYANMAR LETTER GA -1003 MYANMAR LETTER GHA -1004 MYANMAR LETTER NGA -1005 MYANMAR LETTER CA -1006 MYANMAR LETTER CHA -1007 MYANMAR LETTER JA -1008 MYANMAR LETTER JHA -1009 MYANMAR LETTER NYA -100A MYANMAR LETTER NNYA -100B MYANMAR LETTER TTA -100C MYANMAR LETTER TTHA -100D MYANMAR LETTER DDA -100E MYANMAR LETTER DDHA -100F MYANMAR LETTER NNA -1010 MYANMAR LETTER TA -1011 MYANMAR LETTER THA -1012 MYANMAR LETTER DA -1013 MYANMAR LETTER DHA -1014 MYANMAR LETTER NA -1015 MYANMAR LETTER PA -1016 MYANMAR LETTER PHA -1017 MYANMAR LETTER BA -1018 MYANMAR LETTER BHA -1019 MYANMAR LETTER MA -101A MYANMAR LETTER YA -101B MYANMAR LETTER RA -101C MYANMAR LETTER LA -101D MYANMAR LETTER WA -101E MYANMAR LETTER SA -101F MYANMAR LETTER HA -1020 MYANMAR LETTER LLA -1021 MYANMAR LETTER A -1023 MYANMAR LETTER I -1024 MYANMAR LETTER II -1025 MYANMAR LETTER U -1026 MYANMAR LETTER UU -1027 MYANMAR LETTER E -1029 MYANMAR LETTER O -102A MYANMAR LETTER AU -102C MYANMAR VOWEL SIGN AA -102D MYANMAR VOWEL SIGN I -102E MYANMAR VOWEL SIGN II -102F MYANMAR VOWEL SIGN U -1030 MYANMAR VOWEL SIGN UU -1031 MYANMAR VOWEL SIGN E -1032 MYANMAR VOWEL SIGN AI -1036 MYANMAR SIGN ANUSVARA -1037 MYANMAR SIGN DOT BELOW -1038 MYANMAR SIGN VISARGA -1039 MYANMAR SIGN VIRAMA -1040 MYANMAR DIGIT ZERO -1041 MYANMAR DIGIT ONE -1042 MYANMAR DIGIT TWO -1043 MYANMAR DIGIT THREE -1044 MYANMAR DIGIT FOUR -1045 MYANMAR DIGIT FIVE -1046 MYANMAR DIGIT SIX -1047 MYANMAR DIGIT SEVEN -1048 MYANMAR DIGIT EIGHT -1049 MYANMAR DIGIT NINE -104A MYANMAR SIGN LITTLE SECTION -104B MYANMAR SIGN SECTION -104C MYANMAR SYMBOL LOCATIVE -104D MYANMAR SYMBOL COMPLETED -104E MYANMAR SYMBOL AFOREMENTIONED -104F MYANMAR SYMBOL GENITIVE -1050 MYANMAR LETTER SHA -1051 MYANMAR LETTER SSA -1052 MYANMAR LETTER VOCALIC R -1053 MYANMAR LETTER VOCALIC RR -1054 MYANMAR LETTER VOCALIC L -1055 MYANMAR LETTER VOCALIC LL -1056 MYANMAR VOWEL SIGN VOCALIC R -1057 MYANMAR VOWEL SIGN VOCALIC RR -1058 MYANMAR VOWEL SIGN VOCALIC L -1059 MYANMAR VOWEL SIGN VOCALIC LL -10A0 GEORGIAN CAPITAL LETTER AN -10A1 GEORGIAN CAPITAL LETTER BAN -10A2 GEORGIAN CAPITAL LETTER GAN -10A3 GEORGIAN CAPITAL LETTER DON -10A4 GEORGIAN CAPITAL LETTER EN -10A5 GEORGIAN CAPITAL LETTER VIN -10A6 GEORGIAN CAPITAL LETTER ZEN -10A7 GEORGIAN CAPITAL LETTER TAN -10A8 GEORGIAN CAPITAL LETTER IN -10A9 GEORGIAN CAPITAL LETTER KAN -10AA GEORGIAN CAPITAL LETTER LAS -10AB GEORGIAN CAPITAL LETTER MAN -10AC GEORGIAN CAPITAL LETTER NAR -10AD GEORGIAN CAPITAL LETTER ON -10AE GEORGIAN CAPITAL LETTER PAR -10AF GEORGIAN CAPITAL LETTER ZHAR -10B0 GEORGIAN CAPITAL LETTER RAE -10B1 GEORGIAN CAPITAL LETTER SAN -10B2 GEORGIAN CAPITAL LETTER TAR -10B3 GEORGIAN CAPITAL LETTER UN -10B4 GEORGIAN CAPITAL LETTER PHAR -10B5 GEORGIAN CAPITAL LETTER KHAR -10B6 GEORGIAN CAPITAL LETTER GHAN -10B7 GEORGIAN CAPITAL LETTER QAR -10B8 GEORGIAN CAPITAL LETTER SHIN -10B9 GEORGIAN CAPITAL LETTER CHIN -10BA GEORGIAN CAPITAL LETTER CAN -10BB GEORGIAN CAPITAL LETTER JIL -10BC GEORGIAN CAPITAL LETTER CIL -10BD GEORGIAN CAPITAL LETTER CHAR -10BE GEORGIAN CAPITAL LETTER XAN -10BF GEORGIAN CAPITAL LETTER JHAN -10C0 GEORGIAN CAPITAL LETTER HAE -10C1 GEORGIAN CAPITAL LETTER HE -10C2 GEORGIAN CAPITAL LETTER HIE -10C3 GEORGIAN CAPITAL LETTER WE -10C4 GEORGIAN CAPITAL LETTER HAR -10C5 GEORGIAN CAPITAL LETTER HOE -10D0 GEORGIAN LETTER AN -10D1 GEORGIAN LETTER BAN -10D2 GEORGIAN LETTER GAN -10D3 GEORGIAN LETTER DON -10D4 GEORGIAN LETTER EN -10D5 GEORGIAN LETTER VIN -10D6 GEORGIAN LETTER ZEN -10D7 GEORGIAN LETTER TAN -10D8 GEORGIAN LETTER IN -10D9 GEORGIAN LETTER KAN -10DA GEORGIAN LETTER LAS -10DB GEORGIAN LETTER MAN -10DC GEORGIAN LETTER NAR -10DD GEORGIAN LETTER ON -10DE GEORGIAN LETTER PAR -10DF GEORGIAN LETTER ZHAR -10E0 GEORGIAN LETTER RAE -10E1 GEORGIAN LETTER SAN -10E2 GEORGIAN LETTER TAR -10E3 GEORGIAN LETTER UN -10E4 GEORGIAN LETTER PHAR -10E5 GEORGIAN LETTER KHAR -10E6 GEORGIAN LETTER GHAN -10E7 GEORGIAN LETTER QAR -10E8 GEORGIAN LETTER SHIN -10E9 GEORGIAN LETTER CHIN -10EA GEORGIAN LETTER CAN -10EB GEORGIAN LETTER JIL -10EC GEORGIAN LETTER CIL -10ED GEORGIAN LETTER CHAR -10EE GEORGIAN LETTER XAN -10EF GEORGIAN LETTER JHAN -10F0 GEORGIAN LETTER HAE -10F1 GEORGIAN LETTER HE -10F2 GEORGIAN LETTER HIE -10F3 GEORGIAN LETTER WE -10F4 GEORGIAN LETTER HAR -10F5 GEORGIAN LETTER HOE -10F6 GEORGIAN LETTER FI -10F7 GEORGIAN LETTER YN -10F8 GEORGIAN LETTER ELIFI -10FB GEORGIAN PARAGRAPH SEPARATOR -1100 HANGUL CHOSEONG KIYEOK -1101 HANGUL CHOSEONG SSANGKIYEOK -1102 HANGUL CHOSEONG NIEUN -1103 HANGUL CHOSEONG TIKEUT -1104 HANGUL CHOSEONG SSANGTIKEUT -1105 HANGUL CHOSEONG RIEUL -1106 HANGUL CHOSEONG MIEUM -1107 HANGUL CHOSEONG PIEUP -1108 HANGUL CHOSEONG SSANGPIEUP -1109 HANGUL CHOSEONG SIOS -110A HANGUL CHOSEONG SSANGSIOS -110B HANGUL CHOSEONG IEUNG -110C HANGUL CHOSEONG CIEUC -110D HANGUL CHOSEONG SSANGCIEUC -110E HANGUL CHOSEONG CHIEUCH -110F HANGUL CHOSEONG KHIEUKH -1110 HANGUL CHOSEONG THIEUTH -1111 HANGUL CHOSEONG PHIEUPH -1112 HANGUL CHOSEONG HIEUH -1113 HANGUL CHOSEONG NIEUN-KIYEOK -1114 HANGUL CHOSEONG SSANGNIEUN -1115 HANGUL CHOSEONG NIEUN-TIKEUT -1116 HANGUL CHOSEONG NIEUN-PIEUP -1117 HANGUL CHOSEONG TIKEUT-KIYEOK -1118 HANGUL CHOSEONG RIEUL-NIEUN -1119 HANGUL CHOSEONG SSANGRIEUL -111A HANGUL CHOSEONG RIEUL-HIEUH -111B HANGUL CHOSEONG KAPYEOUNRIEUL -111C HANGUL CHOSEONG MIEUM-PIEUP -111D HANGUL CHOSEONG KAPYEOUNMIEUM -111E HANGUL CHOSEONG PIEUP-KIYEOK -111F HANGUL CHOSEONG PIEUP-NIEUN -1120 HANGUL CHOSEONG PIEUP-TIKEUT -1121 HANGUL CHOSEONG PIEUP-SIOS -1122 HANGUL CHOSEONG PIEUP-SIOS-KIYEOK -1123 HANGUL CHOSEONG PIEUP-SIOS-TIKEUT -1124 HANGUL CHOSEONG PIEUP-SIOS-PIEUP -1125 HANGUL CHOSEONG PIEUP-SSANGSIOS -1126 HANGUL CHOSEONG PIEUP-SIOS-CIEUC -1127 HANGUL CHOSEONG PIEUP-CIEUC -1128 HANGUL CHOSEONG PIEUP-CHIEUCH -1129 HANGUL CHOSEONG PIEUP-THIEUTH -112A HANGUL CHOSEONG PIEUP-PHIEUPH -112B HANGUL CHOSEONG KAPYEOUNPIEUP -112C HANGUL CHOSEONG KAPYEOUNSSANGPIEUP -112D HANGUL CHOSEONG SIOS-KIYEOK -112E HANGUL CHOSEONG SIOS-NIEUN -112F HANGUL CHOSEONG SIOS-TIKEUT -1130 HANGUL CHOSEONG SIOS-RIEUL -1131 HANGUL CHOSEONG SIOS-MIEUM -1132 HANGUL CHOSEONG SIOS-PIEUP -1133 HANGUL CHOSEONG SIOS-PIEUP-KIYEOK -1134 HANGUL CHOSEONG SIOS-SSANGSIOS -1135 HANGUL CHOSEONG SIOS-IEUNG -1136 HANGUL CHOSEONG SIOS-CIEUC -1137 HANGUL CHOSEONG SIOS-CHIEUCH -1138 HANGUL CHOSEONG SIOS-KHIEUKH -1139 HANGUL CHOSEONG SIOS-THIEUTH -113A HANGUL CHOSEONG SIOS-PHIEUPH -113B HANGUL CHOSEONG SIOS-HIEUH -113C HANGUL CHOSEONG CHITUEUMSIOS -113D HANGUL CHOSEONG CHITUEUMSSANGSIOS -113E HANGUL CHOSEONG CEONGCHIEUMSIOS -113F HANGUL CHOSEONG CEONGCHIEUMSSANGSIOS -1140 HANGUL CHOSEONG PANSIOS -1141 HANGUL CHOSEONG IEUNG-KIYEOK -1142 HANGUL CHOSEONG IEUNG-TIKEUT -1143 HANGUL CHOSEONG IEUNG-MIEUM -1144 HANGUL CHOSEONG IEUNG-PIEUP -1145 HANGUL CHOSEONG IEUNG-SIOS -1146 HANGUL CHOSEONG IEUNG-PANSIOS -1147 HANGUL CHOSEONG SSANGIEUNG -1148 HANGUL CHOSEONG IEUNG-CIEUC -1149 HANGUL CHOSEONG IEUNG-CHIEUCH -114A HANGUL CHOSEONG IEUNG-THIEUTH -114B HANGUL CHOSEONG IEUNG-PHIEUPH -114C HANGUL CHOSEONG YESIEUNG -114D HANGUL CHOSEONG CIEUC-IEUNG -114E HANGUL CHOSEONG CHITUEUMCIEUC -114F HANGUL CHOSEONG CHITUEUMSSANGCIEUC -1150 HANGUL CHOSEONG CEONGCHIEUMCIEUC -1151 HANGUL CHOSEONG CEONGCHIEUMSSANGCIEUC -1152 HANGUL CHOSEONG CHIEUCH-KHIEUKH -1153 HANGUL CHOSEONG CHIEUCH-HIEUH -1154 HANGUL CHOSEONG CHITUEUMCHIEUCH -1155 HANGUL CHOSEONG CEONGCHIEUMCHIEUCH -1156 HANGUL CHOSEONG PHIEUPH-PIEUP -1157 HANGUL CHOSEONG KAPYEOUNPHIEUPH -1158 HANGUL CHOSEONG SSANGHIEUH -1159 HANGUL CHOSEONG YEORINHIEUH -115F HANGUL CHOSEONG FILLER -1160 HANGUL JUNGSEONG FILLER -1161 HANGUL JUNGSEONG A -1162 HANGUL JUNGSEONG AE -1163 HANGUL JUNGSEONG YA -1164 HANGUL JUNGSEONG YAE -1165 HANGUL JUNGSEONG EO -1166 HANGUL JUNGSEONG E -1167 HANGUL JUNGSEONG YEO -1168 HANGUL JUNGSEONG YE -1169 HANGUL JUNGSEONG O -116A HANGUL JUNGSEONG WA -116B HANGUL JUNGSEONG WAE -116C HANGUL JUNGSEONG OE -116D HANGUL JUNGSEONG YO -116E HANGUL JUNGSEONG U -116F HANGUL JUNGSEONG WEO -1170 HANGUL JUNGSEONG WE -1171 HANGUL JUNGSEONG WI -1172 HANGUL JUNGSEONG YU -1173 HANGUL JUNGSEONG EU -1174 HANGUL JUNGSEONG YI -1175 HANGUL JUNGSEONG I -1176 HANGUL JUNGSEONG A-O -1177 HANGUL JUNGSEONG A-U -1178 HANGUL JUNGSEONG YA-O -1179 HANGUL JUNGSEONG YA-YO -117A HANGUL JUNGSEONG EO-O -117B HANGUL JUNGSEONG EO-U -117C HANGUL JUNGSEONG EO-EU -117D HANGUL JUNGSEONG YEO-O -117E HANGUL JUNGSEONG YEO-U -117F HANGUL JUNGSEONG O-EO -1180 HANGUL JUNGSEONG O-E -1181 HANGUL JUNGSEONG O-YE -1182 HANGUL JUNGSEONG O-O -1183 HANGUL JUNGSEONG O-U -1184 HANGUL JUNGSEONG YO-YA -1185 HANGUL JUNGSEONG YO-YAE -1186 HANGUL JUNGSEONG YO-YEO -1187 HANGUL JUNGSEONG YO-O -1188 HANGUL JUNGSEONG YO-I -1189 HANGUL JUNGSEONG U-A -118A HANGUL JUNGSEONG U-AE -118B HANGUL JUNGSEONG U-EO-EU -118C HANGUL JUNGSEONG U-YE -118D HANGUL JUNGSEONG U-U -118E HANGUL JUNGSEONG YU-A -118F HANGUL JUNGSEONG YU-EO -1190 HANGUL JUNGSEONG YU-E -1191 HANGUL JUNGSEONG YU-YEO -1192 HANGUL JUNGSEONG YU-YE -1193 HANGUL JUNGSEONG YU-U -1194 HANGUL JUNGSEONG YU-I -1195 HANGUL JUNGSEONG EU-U -1196 HANGUL JUNGSEONG EU-EU -1197 HANGUL JUNGSEONG YI-U -1198 HANGUL JUNGSEONG I-A -1199 HANGUL JUNGSEONG I-YA -119A HANGUL JUNGSEONG I-O -119B HANGUL JUNGSEONG I-U -119C HANGUL JUNGSEONG I-EU -119D HANGUL JUNGSEONG I-ARAEA -119E HANGUL JUNGSEONG ARAEA -119F HANGUL JUNGSEONG ARAEA-EO -11A0 HANGUL JUNGSEONG ARAEA-U -11A1 HANGUL JUNGSEONG ARAEA-I -11A2 HANGUL JUNGSEONG SSANGARAEA -11A8 HANGUL JONGSEONG KIYEOK -11A9 HANGUL JONGSEONG SSANGKIYEOK -11AA HANGUL JONGSEONG KIYEOK-SIOS -11AB HANGUL JONGSEONG NIEUN -11AC HANGUL JONGSEONG NIEUN-CIEUC -11AD HANGUL JONGSEONG NIEUN-HIEUH -11AE HANGUL JONGSEONG TIKEUT -11AF HANGUL JONGSEONG RIEUL -11B0 HANGUL JONGSEONG RIEUL-KIYEOK -11B1 HANGUL JONGSEONG RIEUL-MIEUM -11B2 HANGUL JONGSEONG RIEUL-PIEUP -11B3 HANGUL JONGSEONG RIEUL-SIOS -11B4 HANGUL JONGSEONG RIEUL-THIEUTH -11B5 HANGUL JONGSEONG RIEUL-PHIEUPH -11B6 HANGUL JONGSEONG RIEUL-HIEUH -11B7 HANGUL JONGSEONG MIEUM -11B8 HANGUL JONGSEONG PIEUP -11B9 HANGUL JONGSEONG PIEUP-SIOS -11BA HANGUL JONGSEONG SIOS -11BB HANGUL JONGSEONG SSANGSIOS -11BC HANGUL JONGSEONG IEUNG -11BD HANGUL JONGSEONG CIEUC -11BE HANGUL JONGSEONG CHIEUCH -11BF HANGUL JONGSEONG KHIEUKH -11C0 HANGUL JONGSEONG THIEUTH -11C1 HANGUL JONGSEONG PHIEUPH -11C2 HANGUL JONGSEONG HIEUH -11C3 HANGUL JONGSEONG KIYEOK-RIEUL -11C4 HANGUL JONGSEONG KIYEOK-SIOS-KIYEOK -11C5 HANGUL JONGSEONG NIEUN-KIYEOK -11C6 HANGUL JONGSEONG NIEUN-TIKEUT -11C7 HANGUL JONGSEONG NIEUN-SIOS -11C8 HANGUL JONGSEONG NIEUN-PANSIOS -11C9 HANGUL JONGSEONG NIEUN-THIEUTH -11CA HANGUL JONGSEONG TIKEUT-KIYEOK -11CB HANGUL JONGSEONG TIKEUT-RIEUL -11CC HANGUL JONGSEONG RIEUL-KIYEOK-SIOS -11CD HANGUL JONGSEONG RIEUL-NIEUN -11CE HANGUL JONGSEONG RIEUL-TIKEUT -11CF HANGUL JONGSEONG RIEUL-TIKEUT-HIEUH -11D0 HANGUL JONGSEONG SSANGRIEUL -11D1 HANGUL JONGSEONG RIEUL-MIEUM-KIYEOK -11D2 HANGUL JONGSEONG RIEUL-MIEUM-SIOS -11D3 HANGUL JONGSEONG RIEUL-PIEUP-SIOS -11D4 HANGUL JONGSEONG RIEUL-PIEUP-HIEUH -11D5 HANGUL JONGSEONG RIEUL-KAPYEOUNPIEUP -11D6 HANGUL JONGSEONG RIEUL-SSANGSIOS -11D7 HANGUL JONGSEONG RIEUL-PANSIOS -11D8 HANGUL JONGSEONG RIEUL-KHIEUKH -11D9 HANGUL JONGSEONG RIEUL-YEORINHIEUH -11DA HANGUL JONGSEONG MIEUM-KIYEOK -11DB HANGUL JONGSEONG MIEUM-RIEUL -11DC HANGUL JONGSEONG MIEUM-PIEUP -11DD HANGUL JONGSEONG MIEUM-SIOS -11DE HANGUL JONGSEONG MIEUM-SSANGSIOS -11DF HANGUL JONGSEONG MIEUM-PANSIOS -11E0 HANGUL JONGSEONG MIEUM-CHIEUCH -11E1 HANGUL JONGSEONG MIEUM-HIEUH -11E2 HANGUL JONGSEONG KAPYEOUNMIEUM -11E3 HANGUL JONGSEONG PIEUP-RIEUL -11E4 HANGUL JONGSEONG PIEUP-PHIEUPH -11E5 HANGUL JONGSEONG PIEUP-HIEUH -11E6 HANGUL JONGSEONG KAPYEOUNPIEUP -11E7 HANGUL JONGSEONG SIOS-KIYEOK -11E8 HANGUL JONGSEONG SIOS-TIKEUT -11E9 HANGUL JONGSEONG SIOS-RIEUL -11EA HANGUL JONGSEONG SIOS-PIEUP -11EB HANGUL JONGSEONG PANSIOS -11EC HANGUL JONGSEONG IEUNG-KIYEOK -11ED HANGUL JONGSEONG IEUNG-SSANGKIYEOK -11EE HANGUL JONGSEONG SSANGIEUNG -11EF HANGUL JONGSEONG IEUNG-KHIEUKH -11F0 HANGUL JONGSEONG YESIEUNG -11F1 HANGUL JONGSEONG YESIEUNG-SIOS -11F2 HANGUL JONGSEONG YESIEUNG-PANSIOS -11F3 HANGUL JONGSEONG PHIEUPH-PIEUP -11F4 HANGUL JONGSEONG KAPYEOUNPHIEUPH -11F5 HANGUL JONGSEONG HIEUH-NIEUN -11F6 HANGUL JONGSEONG HIEUH-RIEUL -11F7 HANGUL JONGSEONG HIEUH-MIEUM -11F8 HANGUL JONGSEONG HIEUH-PIEUP -11F9 HANGUL JONGSEONG YEORINHIEUH -1200 ETHIOPIC SYLLABLE HA -1201 ETHIOPIC SYLLABLE HU -1202 ETHIOPIC SYLLABLE HI -1203 ETHIOPIC SYLLABLE HAA -1204 ETHIOPIC SYLLABLE HEE -1205 ETHIOPIC SYLLABLE HE -1206 ETHIOPIC SYLLABLE HO -1208 ETHIOPIC SYLLABLE LA -1209 ETHIOPIC SYLLABLE LU -120A ETHIOPIC SYLLABLE LI -120B ETHIOPIC SYLLABLE LAA -120C ETHIOPIC SYLLABLE LEE -120D ETHIOPIC SYLLABLE LE -120E ETHIOPIC SYLLABLE LO -120F ETHIOPIC SYLLABLE LWA -1210 ETHIOPIC SYLLABLE HHA -1211 ETHIOPIC SYLLABLE HHU -1212 ETHIOPIC SYLLABLE HHI -1213 ETHIOPIC SYLLABLE HHAA -1214 ETHIOPIC SYLLABLE HHEE -1215 ETHIOPIC SYLLABLE HHE -1216 ETHIOPIC SYLLABLE HHO -1217 ETHIOPIC SYLLABLE HHWA -1218 ETHIOPIC SYLLABLE MA -1219 ETHIOPIC SYLLABLE MU -121A ETHIOPIC SYLLABLE MI -121B ETHIOPIC SYLLABLE MAA -121C ETHIOPIC SYLLABLE MEE -121D ETHIOPIC SYLLABLE ME -121E ETHIOPIC SYLLABLE MO -121F ETHIOPIC SYLLABLE MWA -1220 ETHIOPIC SYLLABLE SZA -1221 ETHIOPIC SYLLABLE SZU -1222 ETHIOPIC SYLLABLE SZI -1223 ETHIOPIC SYLLABLE SZAA -1224 ETHIOPIC SYLLABLE SZEE -1225 ETHIOPIC SYLLABLE SZE -1226 ETHIOPIC SYLLABLE SZO -1227 ETHIOPIC SYLLABLE SZWA -1228 ETHIOPIC SYLLABLE RA -1229 ETHIOPIC SYLLABLE RU -122A ETHIOPIC SYLLABLE RI -122B ETHIOPIC SYLLABLE RAA -122C ETHIOPIC SYLLABLE REE -122D ETHIOPIC SYLLABLE RE -122E ETHIOPIC SYLLABLE RO -122F ETHIOPIC SYLLABLE RWA -1230 ETHIOPIC SYLLABLE SA -1231 ETHIOPIC SYLLABLE SU -1232 ETHIOPIC SYLLABLE SI -1233 ETHIOPIC SYLLABLE SAA -1234 ETHIOPIC SYLLABLE SEE -1235 ETHIOPIC SYLLABLE SE -1236 ETHIOPIC SYLLABLE SO -1237 ETHIOPIC SYLLABLE SWA -1238 ETHIOPIC SYLLABLE SHA -1239 ETHIOPIC SYLLABLE SHU -123A ETHIOPIC SYLLABLE SHI -123B ETHIOPIC SYLLABLE SHAA -123C ETHIOPIC SYLLABLE SHEE -123D ETHIOPIC SYLLABLE SHE -123E ETHIOPIC SYLLABLE SHO -123F ETHIOPIC SYLLABLE SHWA -1240 ETHIOPIC SYLLABLE QA -1241 ETHIOPIC SYLLABLE QU -1242 ETHIOPIC SYLLABLE QI -1243 ETHIOPIC SYLLABLE QAA -1244 ETHIOPIC SYLLABLE QEE -1245 ETHIOPIC SYLLABLE QE -1246 ETHIOPIC SYLLABLE QO -1248 ETHIOPIC SYLLABLE QWA -124A ETHIOPIC SYLLABLE QWI -124B ETHIOPIC SYLLABLE QWAA -124C ETHIOPIC SYLLABLE QWEE -124D ETHIOPIC SYLLABLE QWE -1250 ETHIOPIC SYLLABLE QHA -1251 ETHIOPIC SYLLABLE QHU -1252 ETHIOPIC SYLLABLE QHI -1253 ETHIOPIC SYLLABLE QHAA -1254 ETHIOPIC SYLLABLE QHEE -1255 ETHIOPIC SYLLABLE QHE -1256 ETHIOPIC SYLLABLE QHO -1258 ETHIOPIC SYLLABLE QHWA -125A ETHIOPIC SYLLABLE QHWI -125B ETHIOPIC SYLLABLE QHWAA -125C ETHIOPIC SYLLABLE QHWEE -125D ETHIOPIC SYLLABLE QHWE -1260 ETHIOPIC SYLLABLE BA -1261 ETHIOPIC SYLLABLE BU -1262 ETHIOPIC SYLLABLE BI -1263 ETHIOPIC SYLLABLE BAA -1264 ETHIOPIC SYLLABLE BEE -1265 ETHIOPIC SYLLABLE BE -1266 ETHIOPIC SYLLABLE BO -1267 ETHIOPIC SYLLABLE BWA -1268 ETHIOPIC SYLLABLE VA -1269 ETHIOPIC SYLLABLE VU -126A ETHIOPIC SYLLABLE VI -126B ETHIOPIC SYLLABLE VAA -126C ETHIOPIC SYLLABLE VEE -126D ETHIOPIC SYLLABLE VE -126E ETHIOPIC SYLLABLE VO -126F ETHIOPIC SYLLABLE VWA -1270 ETHIOPIC SYLLABLE TA -1271 ETHIOPIC SYLLABLE TU -1272 ETHIOPIC SYLLABLE TI -1273 ETHIOPIC SYLLABLE TAA -1274 ETHIOPIC SYLLABLE TEE -1275 ETHIOPIC SYLLABLE TE -1276 ETHIOPIC SYLLABLE TO -1277 ETHIOPIC SYLLABLE TWA -1278 ETHIOPIC SYLLABLE CA -1279 ETHIOPIC SYLLABLE CU -127A ETHIOPIC SYLLABLE CI -127B ETHIOPIC SYLLABLE CAA -127C ETHIOPIC SYLLABLE CEE -127D ETHIOPIC SYLLABLE CE -127E ETHIOPIC SYLLABLE CO -127F ETHIOPIC SYLLABLE CWA -1280 ETHIOPIC SYLLABLE XA -1281 ETHIOPIC SYLLABLE XU -1282 ETHIOPIC SYLLABLE XI -1283 ETHIOPIC SYLLABLE XAA -1284 ETHIOPIC SYLLABLE XEE -1285 ETHIOPIC SYLLABLE XE -1286 ETHIOPIC SYLLABLE XO -1288 ETHIOPIC SYLLABLE XWA -128A ETHIOPIC SYLLABLE XWI -128B ETHIOPIC SYLLABLE XWAA -128C ETHIOPIC SYLLABLE XWEE -128D ETHIOPIC SYLLABLE XWE -1290 ETHIOPIC SYLLABLE NA -1291 ETHIOPIC SYLLABLE NU -1292 ETHIOPIC SYLLABLE NI -1293 ETHIOPIC SYLLABLE NAA -1294 ETHIOPIC SYLLABLE NEE -1295 ETHIOPIC SYLLABLE NE -1296 ETHIOPIC SYLLABLE NO -1297 ETHIOPIC SYLLABLE NWA -1298 ETHIOPIC SYLLABLE NYA -1299 ETHIOPIC SYLLABLE NYU -129A ETHIOPIC SYLLABLE NYI -129B ETHIOPIC SYLLABLE NYAA -129C ETHIOPIC SYLLABLE NYEE -129D ETHIOPIC SYLLABLE NYE -129E ETHIOPIC SYLLABLE NYO -129F ETHIOPIC SYLLABLE NYWA -12A0 ETHIOPIC SYLLABLE GLOTTAL A -12A1 ETHIOPIC SYLLABLE GLOTTAL U -12A2 ETHIOPIC SYLLABLE GLOTTAL I -12A3 ETHIOPIC SYLLABLE GLOTTAL AA -12A4 ETHIOPIC SYLLABLE GLOTTAL EE -12A5 ETHIOPIC SYLLABLE GLOTTAL E -12A6 ETHIOPIC SYLLABLE GLOTTAL O -12A7 ETHIOPIC SYLLABLE GLOTTAL WA -12A8 ETHIOPIC SYLLABLE KA -12A9 ETHIOPIC SYLLABLE KU -12AA ETHIOPIC SYLLABLE KI -12AB ETHIOPIC SYLLABLE KAA -12AC ETHIOPIC SYLLABLE KEE -12AD ETHIOPIC SYLLABLE KE -12AE ETHIOPIC SYLLABLE KO -12B0 ETHIOPIC SYLLABLE KWA -12B2 ETHIOPIC SYLLABLE KWI -12B3 ETHIOPIC SYLLABLE KWAA -12B4 ETHIOPIC SYLLABLE KWEE -12B5 ETHIOPIC SYLLABLE KWE -12B8 ETHIOPIC SYLLABLE KXA -12B9 ETHIOPIC SYLLABLE KXU -12BA ETHIOPIC SYLLABLE KXI -12BB ETHIOPIC SYLLABLE KXAA -12BC ETHIOPIC SYLLABLE KXEE -12BD ETHIOPIC SYLLABLE KXE -12BE ETHIOPIC SYLLABLE KXO -12C0 ETHIOPIC SYLLABLE KXWA -12C2 ETHIOPIC SYLLABLE KXWI -12C3 ETHIOPIC SYLLABLE KXWAA -12C4 ETHIOPIC SYLLABLE KXWEE -12C5 ETHIOPIC SYLLABLE KXWE -12C8 ETHIOPIC SYLLABLE WA -12C9 ETHIOPIC SYLLABLE WU -12CA ETHIOPIC SYLLABLE WI -12CB ETHIOPIC SYLLABLE WAA -12CC ETHIOPIC SYLLABLE WEE -12CD ETHIOPIC SYLLABLE WE -12CE ETHIOPIC SYLLABLE WO -12D0 ETHIOPIC SYLLABLE PHARYNGEAL A -12D1 ETHIOPIC SYLLABLE PHARYNGEAL U -12D2 ETHIOPIC SYLLABLE PHARYNGEAL I -12D3 ETHIOPIC SYLLABLE PHARYNGEAL AA -12D4 ETHIOPIC SYLLABLE PHARYNGEAL EE -12D5 ETHIOPIC SYLLABLE PHARYNGEAL E -12D6 ETHIOPIC SYLLABLE PHARYNGEAL O -12D8 ETHIOPIC SYLLABLE ZA -12D9 ETHIOPIC SYLLABLE ZU -12DA ETHIOPIC SYLLABLE ZI -12DB ETHIOPIC SYLLABLE ZAA -12DC ETHIOPIC SYLLABLE ZEE -12DD ETHIOPIC SYLLABLE ZE -12DE ETHIOPIC SYLLABLE ZO -12DF ETHIOPIC SYLLABLE ZWA -12E0 ETHIOPIC SYLLABLE ZHA -12E1 ETHIOPIC SYLLABLE ZHU -12E2 ETHIOPIC SYLLABLE ZHI -12E3 ETHIOPIC SYLLABLE ZHAA -12E4 ETHIOPIC SYLLABLE ZHEE -12E5 ETHIOPIC SYLLABLE ZHE -12E6 ETHIOPIC SYLLABLE ZHO -12E7 ETHIOPIC SYLLABLE ZHWA -12E8 ETHIOPIC SYLLABLE YA -12E9 ETHIOPIC SYLLABLE YU -12EA ETHIOPIC SYLLABLE YI -12EB ETHIOPIC SYLLABLE YAA -12EC ETHIOPIC SYLLABLE YEE -12ED ETHIOPIC SYLLABLE YE -12EE ETHIOPIC SYLLABLE YO -12F0 ETHIOPIC SYLLABLE DA -12F1 ETHIOPIC SYLLABLE DU -12F2 ETHIOPIC SYLLABLE DI -12F3 ETHIOPIC SYLLABLE DAA -12F4 ETHIOPIC SYLLABLE DEE -12F5 ETHIOPIC SYLLABLE DE -12F6 ETHIOPIC SYLLABLE DO -12F7 ETHIOPIC SYLLABLE DWA -12F8 ETHIOPIC SYLLABLE DDA -12F9 ETHIOPIC SYLLABLE DDU -12FA ETHIOPIC SYLLABLE DDI -12FB ETHIOPIC SYLLABLE DDAA -12FC ETHIOPIC SYLLABLE DDEE -12FD ETHIOPIC SYLLABLE DDE -12FE ETHIOPIC SYLLABLE DDO -12FF ETHIOPIC SYLLABLE DDWA -1300 ETHIOPIC SYLLABLE JA -1301 ETHIOPIC SYLLABLE JU -1302 ETHIOPIC SYLLABLE JI -1303 ETHIOPIC SYLLABLE JAA -1304 ETHIOPIC SYLLABLE JEE -1305 ETHIOPIC SYLLABLE JE -1306 ETHIOPIC SYLLABLE JO -1307 ETHIOPIC SYLLABLE JWA -1308 ETHIOPIC SYLLABLE GA -1309 ETHIOPIC SYLLABLE GU -130A ETHIOPIC SYLLABLE GI -130B ETHIOPIC SYLLABLE GAA -130C ETHIOPIC SYLLABLE GEE -130D ETHIOPIC SYLLABLE GE -130E ETHIOPIC SYLLABLE GO -1310 ETHIOPIC SYLLABLE GWA -1312 ETHIOPIC SYLLABLE GWI -1313 ETHIOPIC SYLLABLE GWAA -1314 ETHIOPIC SYLLABLE GWEE -1315 ETHIOPIC SYLLABLE GWE -1318 ETHIOPIC SYLLABLE GGA -1319 ETHIOPIC SYLLABLE GGU -131A ETHIOPIC SYLLABLE GGI -131B ETHIOPIC SYLLABLE GGAA -131C ETHIOPIC SYLLABLE GGEE -131D ETHIOPIC SYLLABLE GGE -131E ETHIOPIC SYLLABLE GGO -1320 ETHIOPIC SYLLABLE THA -1321 ETHIOPIC SYLLABLE THU -1322 ETHIOPIC SYLLABLE THI -1323 ETHIOPIC SYLLABLE THAA -1324 ETHIOPIC SYLLABLE THEE -1325 ETHIOPIC SYLLABLE THE -1326 ETHIOPIC SYLLABLE THO -1327 ETHIOPIC SYLLABLE THWA -1328 ETHIOPIC SYLLABLE CHA -1329 ETHIOPIC SYLLABLE CHU -132A ETHIOPIC SYLLABLE CHI -132B ETHIOPIC SYLLABLE CHAA -132C ETHIOPIC SYLLABLE CHEE -132D ETHIOPIC SYLLABLE CHE -132E ETHIOPIC SYLLABLE CHO -132F ETHIOPIC SYLLABLE CHWA -1330 ETHIOPIC SYLLABLE PHA -1331 ETHIOPIC SYLLABLE PHU -1332 ETHIOPIC SYLLABLE PHI -1333 ETHIOPIC SYLLABLE PHAA -1334 ETHIOPIC SYLLABLE PHEE -1335 ETHIOPIC SYLLABLE PHE -1336 ETHIOPIC SYLLABLE PHO -1337 ETHIOPIC SYLLABLE PHWA -1338 ETHIOPIC SYLLABLE TSA -1339 ETHIOPIC SYLLABLE TSU -133A ETHIOPIC SYLLABLE TSI -133B ETHIOPIC SYLLABLE TSAA -133C ETHIOPIC SYLLABLE TSEE -133D ETHIOPIC SYLLABLE TSE -133E ETHIOPIC SYLLABLE TSO -133F ETHIOPIC SYLLABLE TSWA -1340 ETHIOPIC SYLLABLE TZA -1341 ETHIOPIC SYLLABLE TZU -1342 ETHIOPIC SYLLABLE TZI -1343 ETHIOPIC SYLLABLE TZAA -1344 ETHIOPIC SYLLABLE TZEE -1345 ETHIOPIC SYLLABLE TZE -1346 ETHIOPIC SYLLABLE TZO -1348 ETHIOPIC SYLLABLE FA -1349 ETHIOPIC SYLLABLE FU -134A ETHIOPIC SYLLABLE FI -134B ETHIOPIC SYLLABLE FAA -134C ETHIOPIC SYLLABLE FEE -134D ETHIOPIC SYLLABLE FE -134E ETHIOPIC SYLLABLE FO -134F ETHIOPIC SYLLABLE FWA -1350 ETHIOPIC SYLLABLE PA -1351 ETHIOPIC SYLLABLE PU -1352 ETHIOPIC SYLLABLE PI -1353 ETHIOPIC SYLLABLE PAA -1354 ETHIOPIC SYLLABLE PEE -1355 ETHIOPIC SYLLABLE PE -1356 ETHIOPIC SYLLABLE PO -1357 ETHIOPIC SYLLABLE PWA -1358 ETHIOPIC SYLLABLE RYA -1359 ETHIOPIC SYLLABLE MYA -135A ETHIOPIC SYLLABLE FYA -1361 ETHIOPIC WORDSPACE -1362 ETHIOPIC FULL STOP -1363 ETHIOPIC COMMA -1364 ETHIOPIC SEMICOLON -1365 ETHIOPIC COLON -1366 ETHIOPIC PREFACE COLON -1367 ETHIOPIC QUESTION MARK -1368 ETHIOPIC PARAGRAPH SEPARATOR -1369 ETHIOPIC DIGIT ONE -136A ETHIOPIC DIGIT TWO -136B ETHIOPIC DIGIT THREE -136C ETHIOPIC DIGIT FOUR -136D ETHIOPIC DIGIT FIVE -136E ETHIOPIC DIGIT SIX -136F ETHIOPIC DIGIT SEVEN -1370 ETHIOPIC DIGIT EIGHT -1371 ETHIOPIC DIGIT NINE -1372 ETHIOPIC NUMBER TEN -1373 ETHIOPIC NUMBER TWENTY -1374 ETHIOPIC NUMBER THIRTY -1375 ETHIOPIC NUMBER FORTY -1376 ETHIOPIC NUMBER FIFTY -1377 ETHIOPIC NUMBER SIXTY -1378 ETHIOPIC NUMBER SEVENTY -1379 ETHIOPIC NUMBER EIGHTY -137A ETHIOPIC NUMBER NINETY -137B ETHIOPIC NUMBER HUNDRED -137C ETHIOPIC NUMBER TEN THOUSAND -13A0 CHEROKEE LETTER A -13A1 CHEROKEE LETTER E -13A2 CHEROKEE LETTER I -13A3 CHEROKEE LETTER O -13A4 CHEROKEE LETTER U -13A5 CHEROKEE LETTER V -13A6 CHEROKEE LETTER GA -13A7 CHEROKEE LETTER KA -13A8 CHEROKEE LETTER GE -13A9 CHEROKEE LETTER GI -13AA CHEROKEE LETTER GO -13AB CHEROKEE LETTER GU -13AC CHEROKEE LETTER GV -13AD CHEROKEE LETTER HA -13AE CHEROKEE LETTER HE -13AF CHEROKEE LETTER HI -13B0 CHEROKEE LETTER HO -13B1 CHEROKEE LETTER HU -13B2 CHEROKEE LETTER HV -13B3 CHEROKEE LETTER LA -13B4 CHEROKEE LETTER LE -13B5 CHEROKEE LETTER LI -13B6 CHEROKEE LETTER LO -13B7 CHEROKEE LETTER LU -13B8 CHEROKEE LETTER LV -13B9 CHEROKEE LETTER MA -13BA CHEROKEE LETTER ME -13BB CHEROKEE LETTER MI -13BC CHEROKEE LETTER MO -13BD CHEROKEE LETTER MU -13BE CHEROKEE LETTER NA -13BF CHEROKEE LETTER HNA -13C0 CHEROKEE LETTER NAH -13C1 CHEROKEE LETTER NE -13C2 CHEROKEE LETTER NI -13C3 CHEROKEE LETTER NO -13C4 CHEROKEE LETTER NU -13C5 CHEROKEE LETTER NV -13C6 CHEROKEE LETTER QUA -13C7 CHEROKEE LETTER QUE -13C8 CHEROKEE LETTER QUI -13C9 CHEROKEE LETTER QUO -13CA CHEROKEE LETTER QUU -13CB CHEROKEE LETTER QUV -13CC CHEROKEE LETTER SA -13CD CHEROKEE LETTER S -13CE CHEROKEE LETTER SE -13CF CHEROKEE LETTER SI -13D0 CHEROKEE LETTER SO -13D1 CHEROKEE LETTER SU -13D2 CHEROKEE LETTER SV -13D3 CHEROKEE LETTER DA -13D4 CHEROKEE LETTER TA -13D5 CHEROKEE LETTER DE -13D6 CHEROKEE LETTER TE -13D7 CHEROKEE LETTER DI -13D8 CHEROKEE LETTER TI -13D9 CHEROKEE LETTER DO -13DA CHEROKEE LETTER DU -13DB CHEROKEE LETTER DV -13DC CHEROKEE LETTER DLA -13DD CHEROKEE LETTER TLA -13DE CHEROKEE LETTER TLE -13DF CHEROKEE LETTER TLI -13E0 CHEROKEE LETTER TLO -13E1 CHEROKEE LETTER TLU -13E2 CHEROKEE LETTER TLV -13E3 CHEROKEE LETTER TSA -13E4 CHEROKEE LETTER TSE -13E5 CHEROKEE LETTER TSI -13E6 CHEROKEE LETTER TSO -13E7 CHEROKEE LETTER TSU -13E8 CHEROKEE LETTER TSV -13E9 CHEROKEE LETTER WA -13EA CHEROKEE LETTER WE -13EB CHEROKEE LETTER WI -13EC CHEROKEE LETTER WO -13ED CHEROKEE LETTER WU -13EE CHEROKEE LETTER WV -13EF CHEROKEE LETTER YA -13F0 CHEROKEE LETTER YE -13F1 CHEROKEE LETTER YI -13F2 CHEROKEE LETTER YO -13F3 CHEROKEE LETTER YU -13F4 CHEROKEE LETTER YV -1401 CANADIAN SYLLABICS E -1402 CANADIAN SYLLABICS AAI -1403 CANADIAN SYLLABICS I -1404 CANADIAN SYLLABICS II -1405 CANADIAN SYLLABICS O -1406 CANADIAN SYLLABICS OO -1407 CANADIAN SYLLABICS Y-CREE OO -1408 CANADIAN SYLLABICS CARRIER EE -1409 CANADIAN SYLLABICS CARRIER I -140A CANADIAN SYLLABICS A -140B CANADIAN SYLLABICS AA -140C CANADIAN SYLLABICS WE -140D CANADIAN SYLLABICS WEST-CREE WE -140E CANADIAN SYLLABICS WI -140F CANADIAN SYLLABICS WEST-CREE WI -1410 CANADIAN SYLLABICS WII -1411 CANADIAN SYLLABICS WEST-CREE WII -1412 CANADIAN SYLLABICS WO -1413 CANADIAN SYLLABICS WEST-CREE WO -1414 CANADIAN SYLLABICS WOO -1415 CANADIAN SYLLABICS WEST-CREE WOO -1416 CANADIAN SYLLABICS NASKAPI WOO -1417 CANADIAN SYLLABICS WA -1418 CANADIAN SYLLABICS WEST-CREE WA -1419 CANADIAN SYLLABICS WAA -141A CANADIAN SYLLABICS WEST-CREE WAA -141B CANADIAN SYLLABICS NASKAPI WAA -141C CANADIAN SYLLABICS AI -141D CANADIAN SYLLABICS Y-CREE W -141E CANADIAN SYLLABICS GLOTTAL STOP -141F CANADIAN SYLLABICS FINAL ACUTE -1420 CANADIAN SYLLABICS FINAL GRAVE -1421 CANADIAN SYLLABICS FINAL BOTTOM HALF RING -1422 CANADIAN SYLLABICS FINAL TOP HALF RING -1423 CANADIAN SYLLABICS FINAL RIGHT HALF RING -1424 CANADIAN SYLLABICS FINAL RING -1425 CANADIAN SYLLABICS FINAL DOUBLE ACUTE -1426 CANADIAN SYLLABICS FINAL DOUBLE SHORT VERTICAL STROKES -1427 CANADIAN SYLLABICS FINAL MIDDLE DOT -1428 CANADIAN SYLLABICS FINAL SHORT HORIZONTAL STROKE -1429 CANADIAN SYLLABICS FINAL PLUS -142A CANADIAN SYLLABICS FINAL DOWN TACK -142B CANADIAN SYLLABICS EN -142C CANADIAN SYLLABICS IN -142D CANADIAN SYLLABICS ON -142E CANADIAN SYLLABICS AN -142F CANADIAN SYLLABICS PE -1430 CANADIAN SYLLABICS PAAI -1431 CANADIAN SYLLABICS PI -1432 CANADIAN SYLLABICS PII -1433 CANADIAN SYLLABICS PO -1434 CANADIAN SYLLABICS POO -1435 CANADIAN SYLLABICS Y-CREE POO -1436 CANADIAN SYLLABICS CARRIER HEE -1437 CANADIAN SYLLABICS CARRIER HI -1438 CANADIAN SYLLABICS PA -1439 CANADIAN SYLLABICS PAA -143A CANADIAN SYLLABICS PWE -143B CANADIAN SYLLABICS WEST-CREE PWE -143C CANADIAN SYLLABICS PWI -143D CANADIAN SYLLABICS WEST-CREE PWI -143E CANADIAN SYLLABICS PWII -143F CANADIAN SYLLABICS WEST-CREE PWII -1440 CANADIAN SYLLABICS PWO -1441 CANADIAN SYLLABICS WEST-CREE PWO -1442 CANADIAN SYLLABICS PWOO -1443 CANADIAN SYLLABICS WEST-CREE PWOO -1444 CANADIAN SYLLABICS PWA -1445 CANADIAN SYLLABICS WEST-CREE PWA -1446 CANADIAN SYLLABICS PWAA -1447 CANADIAN SYLLABICS WEST-CREE PWAA -1448 CANADIAN SYLLABICS Y-CREE PWAA -1449 CANADIAN SYLLABICS P -144A CANADIAN SYLLABICS WEST-CREE P -144B CANADIAN SYLLABICS CARRIER H -144C CANADIAN SYLLABICS TE -144D CANADIAN SYLLABICS TAAI -144E CANADIAN SYLLABICS TI -144F CANADIAN SYLLABICS TII -1450 CANADIAN SYLLABICS TO -1451 CANADIAN SYLLABICS TOO -1452 CANADIAN SYLLABICS Y-CREE TOO -1453 CANADIAN SYLLABICS CARRIER DEE -1454 CANADIAN SYLLABICS CARRIER DI -1455 CANADIAN SYLLABICS TA -1456 CANADIAN SYLLABICS TAA -1457 CANADIAN SYLLABICS TWE -1458 CANADIAN SYLLABICS WEST-CREE TWE -1459 CANADIAN SYLLABICS TWI -145A CANADIAN SYLLABICS WEST-CREE TWI -145B CANADIAN SYLLABICS TWII -145C CANADIAN SYLLABICS WEST-CREE TWII -145D CANADIAN SYLLABICS TWO -145E CANADIAN SYLLABICS WEST-CREE TWO -145F CANADIAN SYLLABICS TWOO -1460 CANADIAN SYLLABICS WEST-CREE TWOO -1461 CANADIAN SYLLABICS TWA -1462 CANADIAN SYLLABICS WEST-CREE TWA -1463 CANADIAN SYLLABICS TWAA -1464 CANADIAN SYLLABICS WEST-CREE TWAA -1465 CANADIAN SYLLABICS NASKAPI TWAA -1466 CANADIAN SYLLABICS T -1467 CANADIAN SYLLABICS TTE -1468 CANADIAN SYLLABICS TTI -1469 CANADIAN SYLLABICS TTO -146A CANADIAN SYLLABICS TTA -146B CANADIAN SYLLABICS KE -146C CANADIAN SYLLABICS KAAI -146D CANADIAN SYLLABICS KI -146E CANADIAN SYLLABICS KII -146F CANADIAN SYLLABICS KO -1470 CANADIAN SYLLABICS KOO -1471 CANADIAN SYLLABICS Y-CREE KOO -1472 CANADIAN SYLLABICS KA -1473 CANADIAN SYLLABICS KAA -1474 CANADIAN SYLLABICS KWE -1475 CANADIAN SYLLABICS WEST-CREE KWE -1476 CANADIAN SYLLABICS KWI -1477 CANADIAN SYLLABICS WEST-CREE KWI -1478 CANADIAN SYLLABICS KWII -1479 CANADIAN SYLLABICS WEST-CREE KWII -147A CANADIAN SYLLABICS KWO -147B CANADIAN SYLLABICS WEST-CREE KWO -147C CANADIAN SYLLABICS KWOO -147D CANADIAN SYLLABICS WEST-CREE KWOO -147E CANADIAN SYLLABICS KWA -147F CANADIAN SYLLABICS WEST-CREE KWA -1480 CANADIAN SYLLABICS KWAA -1481 CANADIAN SYLLABICS WEST-CREE KWAA -1482 CANADIAN SYLLABICS NASKAPI KWAA -1483 CANADIAN SYLLABICS K -1484 CANADIAN SYLLABICS KW -1485 CANADIAN SYLLABICS SOUTH-SLAVEY KEH -1486 CANADIAN SYLLABICS SOUTH-SLAVEY KIH -1487 CANADIAN SYLLABICS SOUTH-SLAVEY KOH -1488 CANADIAN SYLLABICS SOUTH-SLAVEY KAH -1489 CANADIAN SYLLABICS CE -148A CANADIAN SYLLABICS CAAI -148B CANADIAN SYLLABICS CI -148C CANADIAN SYLLABICS CII -148D CANADIAN SYLLABICS CO -148E CANADIAN SYLLABICS COO -148F CANADIAN SYLLABICS Y-CREE COO -1490 CANADIAN SYLLABICS CA -1491 CANADIAN SYLLABICS CAA -1492 CANADIAN SYLLABICS CWE -1493 CANADIAN SYLLABICS WEST-CREE CWE -1494 CANADIAN SYLLABICS CWI -1495 CANADIAN SYLLABICS WEST-CREE CWI -1496 CANADIAN SYLLABICS CWII -1497 CANADIAN SYLLABICS WEST-CREE CWII -1498 CANADIAN SYLLABICS CWO -1499 CANADIAN SYLLABICS WEST-CREE CWO -149A CANADIAN SYLLABICS CWOO -149B CANADIAN SYLLABICS WEST-CREE CWOO -149C CANADIAN SYLLABICS CWA -149D CANADIAN SYLLABICS WEST-CREE CWA -149E CANADIAN SYLLABICS CWAA -149F CANADIAN SYLLABICS WEST-CREE CWAA -14A0 CANADIAN SYLLABICS NASKAPI CWAA -14A1 CANADIAN SYLLABICS C -14A2 CANADIAN SYLLABICS SAYISI TH -14A3 CANADIAN SYLLABICS ME -14A4 CANADIAN SYLLABICS MAAI -14A5 CANADIAN SYLLABICS MI -14A6 CANADIAN SYLLABICS MII -14A7 CANADIAN SYLLABICS MO -14A8 CANADIAN SYLLABICS MOO -14A9 CANADIAN SYLLABICS Y-CREE MOO -14AA CANADIAN SYLLABICS MA -14AB CANADIAN SYLLABICS MAA -14AC CANADIAN SYLLABICS MWE -14AD CANADIAN SYLLABICS WEST-CREE MWE -14AE CANADIAN SYLLABICS MWI -14AF CANADIAN SYLLABICS WEST-CREE MWI -14B0 CANADIAN SYLLABICS MWII -14B1 CANADIAN SYLLABICS WEST-CREE MWII -14B2 CANADIAN SYLLABICS MWO -14B3 CANADIAN SYLLABICS WEST-CREE MWO -14B4 CANADIAN SYLLABICS MWOO -14B5 CANADIAN SYLLABICS WEST-CREE MWOO -14B6 CANADIAN SYLLABICS MWA -14B7 CANADIAN SYLLABICS WEST-CREE MWA -14B8 CANADIAN SYLLABICS MWAA -14B9 CANADIAN SYLLABICS WEST-CREE MWAA -14BA CANADIAN SYLLABICS NASKAPI MWAA -14BB CANADIAN SYLLABICS M -14BC CANADIAN SYLLABICS WEST-CREE M -14BD CANADIAN SYLLABICS MH -14BE CANADIAN SYLLABICS ATHAPASCAN M -14BF CANADIAN SYLLABICS SAYISI M -14C0 CANADIAN SYLLABICS NE -14C1 CANADIAN SYLLABICS NAAI -14C2 CANADIAN SYLLABICS NI -14C3 CANADIAN SYLLABICS NII -14C4 CANADIAN SYLLABICS NO -14C5 CANADIAN SYLLABICS NOO -14C6 CANADIAN SYLLABICS Y-CREE NOO -14C7 CANADIAN SYLLABICS NA -14C8 CANADIAN SYLLABICS NAA -14C9 CANADIAN SYLLABICS NWE -14CA CANADIAN SYLLABICS WEST-CREE NWE -14CB CANADIAN SYLLABICS NWA -14CC CANADIAN SYLLABICS WEST-CREE NWA -14CD CANADIAN SYLLABICS NWAA -14CE CANADIAN SYLLABICS WEST-CREE NWAA -14CF CANADIAN SYLLABICS NASKAPI NWAA -14D0 CANADIAN SYLLABICS N -14D1 CANADIAN SYLLABICS CARRIER NG -14D2 CANADIAN SYLLABICS NH -14D3 CANADIAN SYLLABICS LE -14D4 CANADIAN SYLLABICS LAAI -14D5 CANADIAN SYLLABICS LI -14D6 CANADIAN SYLLABICS LII -14D7 CANADIAN SYLLABICS LO -14D8 CANADIAN SYLLABICS LOO -14D9 CANADIAN SYLLABICS Y-CREE LOO -14DA CANADIAN SYLLABICS LA -14DB CANADIAN SYLLABICS LAA -14DC CANADIAN SYLLABICS LWE -14DD CANADIAN SYLLABICS WEST-CREE LWE -14DE CANADIAN SYLLABICS LWI -14DF CANADIAN SYLLABICS WEST-CREE LWI -14E0 CANADIAN SYLLABICS LWII -14E1 CANADIAN SYLLABICS WEST-CREE LWII -14E2 CANADIAN SYLLABICS LWO -14E3 CANADIAN SYLLABICS WEST-CREE LWO -14E4 CANADIAN SYLLABICS LWOO -14E5 CANADIAN SYLLABICS WEST-CREE LWOO -14E6 CANADIAN SYLLABICS LWA -14E7 CANADIAN SYLLABICS WEST-CREE LWA -14E8 CANADIAN SYLLABICS LWAA -14E9 CANADIAN SYLLABICS WEST-CREE LWAA -14EA CANADIAN SYLLABICS L -14EB CANADIAN SYLLABICS WEST-CREE L -14EC CANADIAN SYLLABICS MEDIAL L -14ED CANADIAN SYLLABICS SE -14EE CANADIAN SYLLABICS SAAI -14EF CANADIAN SYLLABICS SI -14F0 CANADIAN SYLLABICS SII -14F1 CANADIAN SYLLABICS SO -14F2 CANADIAN SYLLABICS SOO -14F3 CANADIAN SYLLABICS Y-CREE SOO -14F4 CANADIAN SYLLABICS SA -14F5 CANADIAN SYLLABICS SAA -14F6 CANADIAN SYLLABICS SWE -14F7 CANADIAN SYLLABICS WEST-CREE SWE -14F8 CANADIAN SYLLABICS SWI -14F9 CANADIAN SYLLABICS WEST-CREE SWI -14FA CANADIAN SYLLABICS SWII -14FB CANADIAN SYLLABICS WEST-CREE SWII -14FC CANADIAN SYLLABICS SWO -14FD CANADIAN SYLLABICS WEST-CREE SWO -14FE CANADIAN SYLLABICS SWOO -14FF CANADIAN SYLLABICS WEST-CREE SWOO -1500 CANADIAN SYLLABICS SWA -1501 CANADIAN SYLLABICS WEST-CREE SWA -1502 CANADIAN SYLLABICS SWAA -1503 CANADIAN SYLLABICS WEST-CREE SWAA -1504 CANADIAN SYLLABICS NASKAPI SWAA -1505 CANADIAN SYLLABICS S -1506 CANADIAN SYLLABICS ATHAPASCAN S -1507 CANADIAN SYLLABICS SW -1508 CANADIAN SYLLABICS BLACKFOOT S -1509 CANADIAN SYLLABICS MOOSE-CREE SK -150A CANADIAN SYLLABICS NASKAPI SKW -150B CANADIAN SYLLABICS NASKAPI S-W -150C CANADIAN SYLLABICS NASKAPI SPWA -150D CANADIAN SYLLABICS NASKAPI STWA -150E CANADIAN SYLLABICS NASKAPI SKWA -150F CANADIAN SYLLABICS NASKAPI SCWA -1510 CANADIAN SYLLABICS SHE -1511 CANADIAN SYLLABICS SHI -1512 CANADIAN SYLLABICS SHII -1513 CANADIAN SYLLABICS SHO -1514 CANADIAN SYLLABICS SHOO -1515 CANADIAN SYLLABICS SHA -1516 CANADIAN SYLLABICS SHAA -1517 CANADIAN SYLLABICS SHWE -1518 CANADIAN SYLLABICS WEST-CREE SHWE -1519 CANADIAN SYLLABICS SHWI -151A CANADIAN SYLLABICS WEST-CREE SHWI -151B CANADIAN SYLLABICS SHWII -151C CANADIAN SYLLABICS WEST-CREE SHWII -151D CANADIAN SYLLABICS SHWO -151E CANADIAN SYLLABICS WEST-CREE SHWO -151F CANADIAN SYLLABICS SHWOO -1520 CANADIAN SYLLABICS WEST-CREE SHWOO -1521 CANADIAN SYLLABICS SHWA -1522 CANADIAN SYLLABICS WEST-CREE SHWA -1523 CANADIAN SYLLABICS SHWAA -1524 CANADIAN SYLLABICS WEST-CREE SHWAA -1525 CANADIAN SYLLABICS SH -1526 CANADIAN SYLLABICS YE -1527 CANADIAN SYLLABICS YAAI -1528 CANADIAN SYLLABICS YI -1529 CANADIAN SYLLABICS YII -152A CANADIAN SYLLABICS YO -152B CANADIAN SYLLABICS YOO -152C CANADIAN SYLLABICS Y-CREE YOO -152D CANADIAN SYLLABICS YA -152E CANADIAN SYLLABICS YAA -152F CANADIAN SYLLABICS YWE -1530 CANADIAN SYLLABICS WEST-CREE YWE -1531 CANADIAN SYLLABICS YWI -1532 CANADIAN SYLLABICS WEST-CREE YWI -1533 CANADIAN SYLLABICS YWII -1534 CANADIAN SYLLABICS WEST-CREE YWII -1535 CANADIAN SYLLABICS YWO -1536 CANADIAN SYLLABICS WEST-CREE YWO -1537 CANADIAN SYLLABICS YWOO -1538 CANADIAN SYLLABICS WEST-CREE YWOO -1539 CANADIAN SYLLABICS YWA -153A CANADIAN SYLLABICS WEST-CREE YWA -153B CANADIAN SYLLABICS YWAA -153C CANADIAN SYLLABICS WEST-CREE YWAA -153D CANADIAN SYLLABICS NASKAPI YWAA -153E CANADIAN SYLLABICS Y -153F CANADIAN SYLLABICS BIBLE-CREE Y -1540 CANADIAN SYLLABICS WEST-CREE Y -1541 CANADIAN SYLLABICS SAYISI YI -1542 CANADIAN SYLLABICS RE -1543 CANADIAN SYLLABICS R-CREE RE -1544 CANADIAN SYLLABICS WEST-CREE LE -1545 CANADIAN SYLLABICS RAAI -1546 CANADIAN SYLLABICS RI -1547 CANADIAN SYLLABICS RII -1548 CANADIAN SYLLABICS RO -1549 CANADIAN SYLLABICS ROO -154A CANADIAN SYLLABICS WEST-CREE LO -154B CANADIAN SYLLABICS RA -154C CANADIAN SYLLABICS RAA -154D CANADIAN SYLLABICS WEST-CREE LA -154E CANADIAN SYLLABICS RWAA -154F CANADIAN SYLLABICS WEST-CREE RWAA -1550 CANADIAN SYLLABICS R -1551 CANADIAN SYLLABICS WEST-CREE R -1552 CANADIAN SYLLABICS MEDIAL R -1553 CANADIAN SYLLABICS FE -1554 CANADIAN SYLLABICS FAAI -1555 CANADIAN SYLLABICS FI -1556 CANADIAN SYLLABICS FII -1557 CANADIAN SYLLABICS FO -1558 CANADIAN SYLLABICS FOO -1559 CANADIAN SYLLABICS FA -155A CANADIAN SYLLABICS FAA -155B CANADIAN SYLLABICS FWAA -155C CANADIAN SYLLABICS WEST-CREE FWAA -155D CANADIAN SYLLABICS F -155E CANADIAN SYLLABICS THE -155F CANADIAN SYLLABICS N-CREE THE -1560 CANADIAN SYLLABICS THI -1561 CANADIAN SYLLABICS N-CREE THI -1562 CANADIAN SYLLABICS THII -1563 CANADIAN SYLLABICS N-CREE THII -1564 CANADIAN SYLLABICS THO -1565 CANADIAN SYLLABICS THOO -1566 CANADIAN SYLLABICS THA -1567 CANADIAN SYLLABICS THAA -1568 CANADIAN SYLLABICS THWAA -1569 CANADIAN SYLLABICS WEST-CREE THWAA -156A CANADIAN SYLLABICS TH -156B CANADIAN SYLLABICS TTHE -156C CANADIAN SYLLABICS TTHI -156D CANADIAN SYLLABICS TTHO -156E CANADIAN SYLLABICS TTHA -156F CANADIAN SYLLABICS TTH -1570 CANADIAN SYLLABICS TYE -1571 CANADIAN SYLLABICS TYI -1572 CANADIAN SYLLABICS TYO -1573 CANADIAN SYLLABICS TYA -1574 CANADIAN SYLLABICS NUNAVIK HE -1575 CANADIAN SYLLABICS NUNAVIK HI -1576 CANADIAN SYLLABICS NUNAVIK HII -1577 CANADIAN SYLLABICS NUNAVIK HO -1578 CANADIAN SYLLABICS NUNAVIK HOO -1579 CANADIAN SYLLABICS NUNAVIK HA -157A CANADIAN SYLLABICS NUNAVIK HAA -157B CANADIAN SYLLABICS NUNAVIK H -157C CANADIAN SYLLABICS NUNAVUT H -157D CANADIAN SYLLABICS HK -157E CANADIAN SYLLABICS QAAI -157F CANADIAN SYLLABICS QI -1580 CANADIAN SYLLABICS QII -1581 CANADIAN SYLLABICS QO -1582 CANADIAN SYLLABICS QOO -1583 CANADIAN SYLLABICS QA -1584 CANADIAN SYLLABICS QAA -1585 CANADIAN SYLLABICS Q -1586 CANADIAN SYLLABICS TLHE -1587 CANADIAN SYLLABICS TLHI -1588 CANADIAN SYLLABICS TLHO -1589 CANADIAN SYLLABICS TLHA -158A CANADIAN SYLLABICS WEST-CREE RE -158B CANADIAN SYLLABICS WEST-CREE RI -158C CANADIAN SYLLABICS WEST-CREE RO -158D CANADIAN SYLLABICS WEST-CREE RA -158E CANADIAN SYLLABICS NGAAI -158F CANADIAN SYLLABICS NGI -1590 CANADIAN SYLLABICS NGII -1591 CANADIAN SYLLABICS NGO -1592 CANADIAN SYLLABICS NGOO -1593 CANADIAN SYLLABICS NGA -1594 CANADIAN SYLLABICS NGAA -1595 CANADIAN SYLLABICS NG -1596 CANADIAN SYLLABICS NNG -1597 CANADIAN SYLLABICS SAYISI SHE -1598 CANADIAN SYLLABICS SAYISI SHI -1599 CANADIAN SYLLABICS SAYISI SHO -159A CANADIAN SYLLABICS SAYISI SHA -159B CANADIAN SYLLABICS WOODS-CREE THE -159C CANADIAN SYLLABICS WOODS-CREE THI -159D CANADIAN SYLLABICS WOODS-CREE THO -159E CANADIAN SYLLABICS WOODS-CREE THA -159F CANADIAN SYLLABICS WOODS-CREE TH -15A0 CANADIAN SYLLABICS LHI -15A1 CANADIAN SYLLABICS LHII -15A2 CANADIAN SYLLABICS LHO -15A3 CANADIAN SYLLABICS LHOO -15A4 CANADIAN SYLLABICS LHA -15A5 CANADIAN SYLLABICS LHAA -15A6 CANADIAN SYLLABICS LH -15A7 CANADIAN SYLLABICS TH-CREE THE -15A8 CANADIAN SYLLABICS TH-CREE THI -15A9 CANADIAN SYLLABICS TH-CREE THII -15AA CANADIAN SYLLABICS TH-CREE THO -15AB CANADIAN SYLLABICS TH-CREE THOO -15AC CANADIAN SYLLABICS TH-CREE THA -15AD CANADIAN SYLLABICS TH-CREE THAA -15AE CANADIAN SYLLABICS TH-CREE TH -15AF CANADIAN SYLLABICS AIVILIK B -15B0 CANADIAN SYLLABICS BLACKFOOT E -15B1 CANADIAN SYLLABICS BLACKFOOT I -15B2 CANADIAN SYLLABICS BLACKFOOT O -15B3 CANADIAN SYLLABICS BLACKFOOT A -15B4 CANADIAN SYLLABICS BLACKFOOT WE -15B5 CANADIAN SYLLABICS BLACKFOOT WI -15B6 CANADIAN SYLLABICS BLACKFOOT WO -15B7 CANADIAN SYLLABICS BLACKFOOT WA -15B8 CANADIAN SYLLABICS BLACKFOOT NE -15B9 CANADIAN SYLLABICS BLACKFOOT NI -15BA CANADIAN SYLLABICS BLACKFOOT NO -15BB CANADIAN SYLLABICS BLACKFOOT NA -15BC CANADIAN SYLLABICS BLACKFOOT KE -15BD CANADIAN SYLLABICS BLACKFOOT KI -15BE CANADIAN SYLLABICS BLACKFOOT KO -15BF CANADIAN SYLLABICS BLACKFOOT KA -15C0 CANADIAN SYLLABICS SAYISI HE -15C1 CANADIAN SYLLABICS SAYISI HI -15C2 CANADIAN SYLLABICS SAYISI HO -15C3 CANADIAN SYLLABICS SAYISI HA -15C4 CANADIAN SYLLABICS CARRIER GHU -15C5 CANADIAN SYLLABICS CARRIER GHO -15C6 CANADIAN SYLLABICS CARRIER GHE -15C7 CANADIAN SYLLABICS CARRIER GHEE -15C8 CANADIAN SYLLABICS CARRIER GHI -15C9 CANADIAN SYLLABICS CARRIER GHA -15CA CANADIAN SYLLABICS CARRIER RU -15CB CANADIAN SYLLABICS CARRIER RO -15CC CANADIAN SYLLABICS CARRIER RE -15CD CANADIAN SYLLABICS CARRIER REE -15CE CANADIAN SYLLABICS CARRIER RI -15CF CANADIAN SYLLABICS CARRIER RA -15D0 CANADIAN SYLLABICS CARRIER WU -15D1 CANADIAN SYLLABICS CARRIER WO -15D2 CANADIAN SYLLABICS CARRIER WE -15D3 CANADIAN SYLLABICS CARRIER WEE -15D4 CANADIAN SYLLABICS CARRIER WI -15D5 CANADIAN SYLLABICS CARRIER WA -15D6 CANADIAN SYLLABICS CARRIER HWU -15D7 CANADIAN SYLLABICS CARRIER HWO -15D8 CANADIAN SYLLABICS CARRIER HWE -15D9 CANADIAN SYLLABICS CARRIER HWEE -15DA CANADIAN SYLLABICS CARRIER HWI -15DB CANADIAN SYLLABICS CARRIER HWA -15DC CANADIAN SYLLABICS CARRIER THU -15DD CANADIAN SYLLABICS CARRIER THO -15DE CANADIAN SYLLABICS CARRIER THE -15DF CANADIAN SYLLABICS CARRIER THEE -15E0 CANADIAN SYLLABICS CARRIER THI -15E1 CANADIAN SYLLABICS CARRIER THA -15E2 CANADIAN SYLLABICS CARRIER TTU -15E3 CANADIAN SYLLABICS CARRIER TTO -15E4 CANADIAN SYLLABICS CARRIER TTE -15E5 CANADIAN SYLLABICS CARRIER TTEE -15E6 CANADIAN SYLLABICS CARRIER TTI -15E7 CANADIAN SYLLABICS CARRIER TTA -15E8 CANADIAN SYLLABICS CARRIER PU -15E9 CANADIAN SYLLABICS CARRIER PO -15EA CANADIAN SYLLABICS CARRIER PE -15EB CANADIAN SYLLABICS CARRIER PEE -15EC CANADIAN SYLLABICS CARRIER PI -15ED CANADIAN SYLLABICS CARRIER PA -15EE CANADIAN SYLLABICS CARRIER P -15EF CANADIAN SYLLABICS CARRIER GU -15F0 CANADIAN SYLLABICS CARRIER GO -15F1 CANADIAN SYLLABICS CARRIER GE -15F2 CANADIAN SYLLABICS CARRIER GEE -15F3 CANADIAN SYLLABICS CARRIER GI -15F4 CANADIAN SYLLABICS CARRIER GA -15F5 CANADIAN SYLLABICS CARRIER KHU -15F6 CANADIAN SYLLABICS CARRIER KHO -15F7 CANADIAN SYLLABICS CARRIER KHE -15F8 CANADIAN SYLLABICS CARRIER KHEE -15F9 CANADIAN SYLLABICS CARRIER KHI -15FA CANADIAN SYLLABICS CARRIER KHA -15FB CANADIAN SYLLABICS CARRIER KKU -15FC CANADIAN SYLLABICS CARRIER KKO -15FD CANADIAN SYLLABICS CARRIER KKE -15FE CANADIAN SYLLABICS CARRIER KKEE -15FF CANADIAN SYLLABICS CARRIER KKI -1600 CANADIAN SYLLABICS CARRIER KKA -1601 CANADIAN SYLLABICS CARRIER KK -1602 CANADIAN SYLLABICS CARRIER NU -1603 CANADIAN SYLLABICS CARRIER NO -1604 CANADIAN SYLLABICS CARRIER NE -1605 CANADIAN SYLLABICS CARRIER NEE -1606 CANADIAN SYLLABICS CARRIER NI -1607 CANADIAN SYLLABICS CARRIER NA -1608 CANADIAN SYLLABICS CARRIER MU -1609 CANADIAN SYLLABICS CARRIER MO -160A CANADIAN SYLLABICS CARRIER ME -160B CANADIAN SYLLABICS CARRIER MEE -160C CANADIAN SYLLABICS CARRIER MI -160D CANADIAN SYLLABICS CARRIER MA -160E CANADIAN SYLLABICS CARRIER YU -160F CANADIAN SYLLABICS CARRIER YO -1610 CANADIAN SYLLABICS CARRIER YE -1611 CANADIAN SYLLABICS CARRIER YEE -1612 CANADIAN SYLLABICS CARRIER YI -1613 CANADIAN SYLLABICS CARRIER YA -1614 CANADIAN SYLLABICS CARRIER JU -1615 CANADIAN SYLLABICS SAYISI JU -1616 CANADIAN SYLLABICS CARRIER JO -1617 CANADIAN SYLLABICS CARRIER JE -1618 CANADIAN SYLLABICS CARRIER JEE -1619 CANADIAN SYLLABICS CARRIER JI -161A CANADIAN SYLLABICS SAYISI JI -161B CANADIAN SYLLABICS CARRIER JA -161C CANADIAN SYLLABICS CARRIER JJU -161D CANADIAN SYLLABICS CARRIER JJO -161E CANADIAN SYLLABICS CARRIER JJE -161F CANADIAN SYLLABICS CARRIER JJEE -1620 CANADIAN SYLLABICS CARRIER JJI -1621 CANADIAN SYLLABICS CARRIER JJA -1622 CANADIAN SYLLABICS CARRIER LU -1623 CANADIAN SYLLABICS CARRIER LO -1624 CANADIAN SYLLABICS CARRIER LE -1625 CANADIAN SYLLABICS CARRIER LEE -1626 CANADIAN SYLLABICS CARRIER LI -1627 CANADIAN SYLLABICS CARRIER LA -1628 CANADIAN SYLLABICS CARRIER DLU -1629 CANADIAN SYLLABICS CARRIER DLO -162A CANADIAN SYLLABICS CARRIER DLE -162B CANADIAN SYLLABICS CARRIER DLEE -162C CANADIAN SYLLABICS CARRIER DLI -162D CANADIAN SYLLABICS CARRIER DLA -162E CANADIAN SYLLABICS CARRIER LHU -162F CANADIAN SYLLABICS CARRIER LHO -1630 CANADIAN SYLLABICS CARRIER LHE -1631 CANADIAN SYLLABICS CARRIER LHEE -1632 CANADIAN SYLLABICS CARRIER LHI -1633 CANADIAN SYLLABICS CARRIER LHA -1634 CANADIAN SYLLABICS CARRIER TLHU -1635 CANADIAN SYLLABICS CARRIER TLHO -1636 CANADIAN SYLLABICS CARRIER TLHE -1637 CANADIAN SYLLABICS CARRIER TLHEE -1638 CANADIAN SYLLABICS CARRIER TLHI -1639 CANADIAN SYLLABICS CARRIER TLHA -163A CANADIAN SYLLABICS CARRIER TLU -163B CANADIAN SYLLABICS CARRIER TLO -163C CANADIAN SYLLABICS CARRIER TLE -163D CANADIAN SYLLABICS CARRIER TLEE -163E CANADIAN SYLLABICS CARRIER TLI -163F CANADIAN SYLLABICS CARRIER TLA -1640 CANADIAN SYLLABICS CARRIER ZU -1641 CANADIAN SYLLABICS CARRIER ZO -1642 CANADIAN SYLLABICS CARRIER ZE -1643 CANADIAN SYLLABICS CARRIER ZEE -1644 CANADIAN SYLLABICS CARRIER ZI -1645 CANADIAN SYLLABICS CARRIER ZA -1646 CANADIAN SYLLABICS CARRIER Z -1647 CANADIAN SYLLABICS CARRIER INITIAL Z -1648 CANADIAN SYLLABICS CARRIER DZU -1649 CANADIAN SYLLABICS CARRIER DZO -164A CANADIAN SYLLABICS CARRIER DZE -164B CANADIAN SYLLABICS CARRIER DZEE -164C CANADIAN SYLLABICS CARRIER DZI -164D CANADIAN SYLLABICS CARRIER DZA -164E CANADIAN SYLLABICS CARRIER SU -164F CANADIAN SYLLABICS CARRIER SO -1650 CANADIAN SYLLABICS CARRIER SE -1651 CANADIAN SYLLABICS CARRIER SEE -1652 CANADIAN SYLLABICS CARRIER SI -1653 CANADIAN SYLLABICS CARRIER SA -1654 CANADIAN SYLLABICS CARRIER SHU -1655 CANADIAN SYLLABICS CARRIER SHO -1656 CANADIAN SYLLABICS CARRIER SHE -1657 CANADIAN SYLLABICS CARRIER SHEE -1658 CANADIAN SYLLABICS CARRIER SHI -1659 CANADIAN SYLLABICS CARRIER SHA -165A CANADIAN SYLLABICS CARRIER SH -165B CANADIAN SYLLABICS CARRIER TSU -165C CANADIAN SYLLABICS CARRIER TSO -165D CANADIAN SYLLABICS CARRIER TSE -165E CANADIAN SYLLABICS CARRIER TSEE -165F CANADIAN SYLLABICS CARRIER TSI -1660 CANADIAN SYLLABICS CARRIER TSA -1661 CANADIAN SYLLABICS CARRIER CHU -1662 CANADIAN SYLLABICS CARRIER CHO -1663 CANADIAN SYLLABICS CARRIER CHE -1664 CANADIAN SYLLABICS CARRIER CHEE -1665 CANADIAN SYLLABICS CARRIER CHI -1666 CANADIAN SYLLABICS CARRIER CHA -1667 CANADIAN SYLLABICS CARRIER TTSU -1668 CANADIAN SYLLABICS CARRIER TTSO -1669 CANADIAN SYLLABICS CARRIER TTSE -166A CANADIAN SYLLABICS CARRIER TTSEE -166B CANADIAN SYLLABICS CARRIER TTSI -166C CANADIAN SYLLABICS CARRIER TTSA -166D CANADIAN SYLLABICS CHI SIGN -166E CANADIAN SYLLABICS FULL STOP -166F CANADIAN SYLLABICS QAI -1670 CANADIAN SYLLABICS NGAI -1671 CANADIAN SYLLABICS NNGI -1672 CANADIAN SYLLABICS NNGII -1673 CANADIAN SYLLABICS NNGO -1674 CANADIAN SYLLABICS NNGOO -1675 CANADIAN SYLLABICS NNGA -1676 CANADIAN SYLLABICS NNGAA -1680 OGHAM SPACE MARK -1681 OGHAM LETTER BEITH -1682 OGHAM LETTER LUIS -1683 OGHAM LETTER FEARN -1684 OGHAM LETTER SAIL -1685 OGHAM LETTER NION -1686 OGHAM LETTER UATH -1687 OGHAM LETTER DAIR -1688 OGHAM LETTER TINNE -1689 OGHAM LETTER COLL -168A OGHAM LETTER CEIRT -168B OGHAM LETTER MUIN -168C OGHAM LETTER GORT -168D OGHAM LETTER NGEADAL -168E OGHAM LETTER STRAIF -168F OGHAM LETTER RUIS -1690 OGHAM LETTER AILM -1691 OGHAM LETTER ONN -1692 OGHAM LETTER UR -1693 OGHAM LETTER EADHADH -1694 OGHAM LETTER IODHADH -1695 OGHAM LETTER EABHADH -1696 OGHAM LETTER OR -1697 OGHAM LETTER UILLEANN -1698 OGHAM LETTER IFIN -1699 OGHAM LETTER EAMHANCHOLL -169A OGHAM LETTER PEITH -169B OGHAM FEATHER MARK -169C OGHAM REVERSED FEATHER MARK -16A0 RUNIC LETTER FEHU FEOH FE F -16A1 RUNIC LETTER V -16A2 RUNIC LETTER URUZ UR U -16A3 RUNIC LETTER YR -16A4 RUNIC LETTER Y -16A5 RUNIC LETTER W -16A6 RUNIC LETTER THURISAZ THURS THORN -16A7 RUNIC LETTER ETH -16A8 RUNIC LETTER ANSUZ A -16A9 RUNIC LETTER OS O -16AA RUNIC LETTER AC A -16AB RUNIC LETTER AESC -16AC RUNIC LETTER LONG-BRANCH-OSS O -16AD RUNIC LETTER SHORT-TWIG-OSS O -16AE RUNIC LETTER O -16AF RUNIC LETTER OE -16B0 RUNIC LETTER ON -16B1 RUNIC LETTER RAIDO RAD REID R -16B2 RUNIC LETTER KAUNA -16B3 RUNIC LETTER CEN -16B4 RUNIC LETTER KAUN K -16B5 RUNIC LETTER G -16B6 RUNIC LETTER ENG -16B7 RUNIC LETTER GEBO GYFU G -16B8 RUNIC LETTER GAR -16B9 RUNIC LETTER WUNJO WYNN W -16BA RUNIC LETTER HAGLAZ H -16BB RUNIC LETTER HAEGL H -16BC RUNIC LETTER LONG-BRANCH-HAGALL H -16BD RUNIC LETTER SHORT-TWIG-HAGALL H -16BE RUNIC LETTER NAUDIZ NYD NAUD N -16BF RUNIC LETTER SHORT-TWIG-NAUD N -16C0 RUNIC LETTER DOTTED-N -16C1 RUNIC LETTER ISAZ IS ISS I -16C2 RUNIC LETTER E -16C3 RUNIC LETTER JERAN J -16C4 RUNIC LETTER GER -16C5 RUNIC LETTER LONG-BRANCH-AR AE -16C6 RUNIC LETTER SHORT-TWIG-AR A -16C7 RUNIC LETTER IWAZ EOH -16C8 RUNIC LETTER PERTHO PEORTH P -16C9 RUNIC LETTER ALGIZ EOLHX -16CA RUNIC LETTER SOWILO S -16CB RUNIC LETTER SIGEL LONG-BRANCH-SOL S -16CC RUNIC LETTER SHORT-TWIG-SOL S -16CD RUNIC LETTER C -16CE RUNIC LETTER Z -16CF RUNIC LETTER TIWAZ TIR TYR T -16D0 RUNIC LETTER SHORT-TWIG-TYR T -16D1 RUNIC LETTER D -16D2 RUNIC LETTER BERKANAN BEORC BJARKAN B -16D3 RUNIC LETTER SHORT-TWIG-BJARKAN B -16D4 RUNIC LETTER DOTTED-P -16D5 RUNIC LETTER OPEN-P -16D6 RUNIC LETTER EHWAZ EH E -16D7 RUNIC LETTER MANNAZ MAN M -16D8 RUNIC LETTER LONG-BRANCH-MADR M -16D9 RUNIC LETTER SHORT-TWIG-MADR M -16DA RUNIC LETTER LAUKAZ LAGU LOGR L -16DB RUNIC LETTER DOTTED-L -16DC RUNIC LETTER INGWAZ -16DD RUNIC LETTER ING -16DE RUNIC LETTER DAGAZ DAEG D -16DF RUNIC LETTER OTHALAN ETHEL O -16E0 RUNIC LETTER EAR -16E1 RUNIC LETTER IOR -16E2 RUNIC LETTER CWEORTH -16E3 RUNIC LETTER CALC -16E4 RUNIC LETTER CEALC -16E5 RUNIC LETTER STAN -16E6 RUNIC LETTER LONG-BRANCH-YR -16E7 RUNIC LETTER SHORT-TWIG-YR -16E8 RUNIC LETTER ICELANDIC-YR -16E9 RUNIC LETTER Q -16EA RUNIC LETTER X -16EB RUNIC SINGLE PUNCTUATION -16EC RUNIC MULTIPLE PUNCTUATION -16ED RUNIC CROSS PUNCTUATION -16EE RUNIC ARLAUG SYMBOL -16EF RUNIC TVIMADUR SYMBOL -16F0 RUNIC BELGTHOR SYMBOL -1700 TAGALOG LETTER A -1701 TAGALOG LETTER I -1702 TAGALOG LETTER U -1703 TAGALOG LETTER KA -1704 TAGALOG LETTER GA -1705 TAGALOG LETTER NGA -1706 TAGALOG LETTER TA -1707 TAGALOG LETTER DA -1708 TAGALOG LETTER NA -1709 TAGALOG LETTER PA -170A TAGALOG LETTER BA -170B TAGALOG LETTER MA -170C TAGALOG LETTER YA -170E TAGALOG LETTER LA -170F TAGALOG LETTER WA -1710 TAGALOG LETTER SA -1711 TAGALOG LETTER HA -1712 TAGALOG VOWEL SIGN I -1713 TAGALOG VOWEL SIGN U -1714 TAGALOG SIGN VIRAMA -1720 HANUNOO LETTER A -1721 HANUNOO LETTER I -1722 HANUNOO LETTER U -1723 HANUNOO LETTER KA -1724 HANUNOO LETTER GA -1725 HANUNOO LETTER NGA -1726 HANUNOO LETTER TA -1727 HANUNOO LETTER DA -1728 HANUNOO LETTER NA -1729 HANUNOO LETTER PA -172A HANUNOO LETTER BA -172B HANUNOO LETTER MA -172C HANUNOO LETTER YA -172D HANUNOO LETTER RA -172E HANUNOO LETTER LA -172F HANUNOO LETTER WA -1730 HANUNOO LETTER SA -1731 HANUNOO LETTER HA -1732 HANUNOO VOWEL SIGN I -1733 HANUNOO VOWEL SIGN U -1734 HANUNOO SIGN PAMUDPOD -1735 PHILIPPINE SINGLE PUNCTUATION -1736 PHILIPPINE DOUBLE PUNCTUATION -1740 BUHID LETTER A -1741 BUHID LETTER I -1742 BUHID LETTER U -1743 BUHID LETTER KA -1744 BUHID LETTER GA -1745 BUHID LETTER NGA -1746 BUHID LETTER TA -1747 BUHID LETTER DA -1748 BUHID LETTER NA -1749 BUHID LETTER PA -174A BUHID LETTER BA -174B BUHID LETTER MA -174C BUHID LETTER YA -174D BUHID LETTER RA -174E BUHID LETTER LA -174F BUHID LETTER WA -1750 BUHID LETTER SA -1751 BUHID LETTER HA -1752 BUHID VOWEL SIGN I -1753 BUHID VOWEL SIGN U -1760 TAGBANWA LETTER A -1761 TAGBANWA LETTER I -1762 TAGBANWA LETTER U -1763 TAGBANWA LETTER KA -1764 TAGBANWA LETTER GA -1765 TAGBANWA LETTER NGA -1766 TAGBANWA LETTER TA -1767 TAGBANWA LETTER DA -1768 TAGBANWA LETTER NA -1769 TAGBANWA LETTER PA -176A TAGBANWA LETTER BA -176B TAGBANWA LETTER MA -176C TAGBANWA LETTER YA -176E TAGBANWA LETTER LA -176F TAGBANWA LETTER WA -1770 TAGBANWA LETTER SA -1772 TAGBANWA VOWEL SIGN I -1773 TAGBANWA VOWEL SIGN U -1780 KHMER LETTER KA -1781 KHMER LETTER KHA -1782 KHMER LETTER KO -1783 KHMER LETTER KHO -1784 KHMER LETTER NGO -1785 KHMER LETTER CA -1786 KHMER LETTER CHA -1787 KHMER LETTER CO -1788 KHMER LETTER CHO -1789 KHMER LETTER NYO -178A KHMER LETTER DA -178B KHMER LETTER TTHA -178C KHMER LETTER DO -178D KHMER LETTER TTHO -178E KHMER LETTER NNO -178F KHMER LETTER TA -1790 KHMER LETTER THA -1791 KHMER LETTER TO -1792 KHMER LETTER THO -1793 KHMER LETTER NO -1794 KHMER LETTER BA -1795 KHMER LETTER PHA -1796 KHMER LETTER PO -1797 KHMER LETTER PHO -1798 KHMER LETTER MO -1799 KHMER LETTER YO -179A KHMER LETTER RO -179B KHMER LETTER LO -179C KHMER LETTER VO -179D KHMER LETTER SHA -179E KHMER LETTER SSO -179F KHMER LETTER SA -17A0 KHMER LETTER HA -17A1 KHMER LETTER LA -17A2 KHMER LETTER QA -17A3 KHMER INDEPENDENT VOWEL QAQ -17A4 KHMER INDEPENDENT VOWEL QAA -17A5 KHMER INDEPENDENT VOWEL QI -17A6 KHMER INDEPENDENT VOWEL QII -17A7 KHMER INDEPENDENT VOWEL QU -17A8 KHMER INDEPENDENT VOWEL QUK -17A9 KHMER INDEPENDENT VOWEL QUU -17AA KHMER INDEPENDENT VOWEL QUUV -17AB KHMER INDEPENDENT VOWEL RY -17AC KHMER INDEPENDENT VOWEL RYY -17AD KHMER INDEPENDENT VOWEL LY -17AE KHMER INDEPENDENT VOWEL LYY -17AF KHMER INDEPENDENT VOWEL QE -17B0 KHMER INDEPENDENT VOWEL QAI -17B1 KHMER INDEPENDENT VOWEL QOO TYPE ONE -17B2 KHMER INDEPENDENT VOWEL QOO TYPE TWO -17B3 KHMER INDEPENDENT VOWEL QAU -17B4 KHMER VOWEL INHERENT AQ -17B5 KHMER VOWEL INHERENT AA -17B6 KHMER VOWEL SIGN AA -17B7 KHMER VOWEL SIGN I -17B8 KHMER VOWEL SIGN II -17B9 KHMER VOWEL SIGN Y -17BA KHMER VOWEL SIGN YY -17BB KHMER VOWEL SIGN U -17BC KHMER VOWEL SIGN UU -17BD KHMER VOWEL SIGN UA -17BE KHMER VOWEL SIGN OE -17BF KHMER VOWEL SIGN YA -17C0 KHMER VOWEL SIGN IE -17C1 KHMER VOWEL SIGN E -17C2 KHMER VOWEL SIGN AE -17C3 KHMER VOWEL SIGN AI -17C4 KHMER VOWEL SIGN OO -17C5 KHMER VOWEL SIGN AU -17C6 KHMER SIGN NIKAHIT -17C7 KHMER SIGN REAHMUK -17C8 KHMER SIGN YUUKALEAPINTU -17C9 KHMER SIGN MUUSIKATOAN -17CA KHMER SIGN TRIISAP -17CB KHMER SIGN BANTOC -17CC KHMER SIGN ROBAT -17CD KHMER SIGN TOANDAKHIAT -17CE KHMER SIGN KAKABAT -17CF KHMER SIGN AHSDA -17D0 KHMER SIGN SAMYOK SANNYA -17D1 KHMER SIGN VIRIAM -17D2 KHMER SIGN COENG -17D3 KHMER SIGN BATHAMASAT -17D4 KHMER SIGN KHAN -17D5 KHMER SIGN BARIYOOSAN -17D6 KHMER SIGN CAMNUC PII KUUH -17D7 KHMER SIGN LEK TOO -17D8 KHMER SIGN BEYYAL -17D9 KHMER SIGN PHNAEK MUAN -17DA KHMER SIGN KOOMUUT -17DB KHMER CURRENCY SYMBOL RIEL -17DC KHMER SIGN AVAKRAHASANYA -17E0 KHMER DIGIT ZERO -17E1 KHMER DIGIT ONE -17E2 KHMER DIGIT TWO -17E3 KHMER DIGIT THREE -17E4 KHMER DIGIT FOUR -17E5 KHMER DIGIT FIVE -17E6 KHMER DIGIT SIX -17E7 KHMER DIGIT SEVEN -17E8 KHMER DIGIT EIGHT -17E9 KHMER DIGIT NINE -1800 MONGOLIAN BIRGA -1801 MONGOLIAN ELLIPSIS -1802 MONGOLIAN COMMA -1803 MONGOLIAN FULL STOP -1804 MONGOLIAN COLON -1805 MONGOLIAN FOUR DOTS -1806 MONGOLIAN TODO SOFT HYPHEN -1807 MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER -1808 MONGOLIAN MANCHU COMMA -1809 MONGOLIAN MANCHU FULL STOP -180A MONGOLIAN NIRUGU -180B MONGOLIAN FREE VARIATION SELECTOR ONE -180C MONGOLIAN FREE VARIATION SELECTOR TWO -180D MONGOLIAN FREE VARIATION SELECTOR THREE -180E MONGOLIAN VOWEL SEPARATOR -1810 MONGOLIAN DIGIT ZERO -1811 MONGOLIAN DIGIT ONE -1812 MONGOLIAN DIGIT TWO -1813 MONGOLIAN DIGIT THREE -1814 MONGOLIAN DIGIT FOUR -1815 MONGOLIAN DIGIT FIVE -1816 MONGOLIAN DIGIT SIX -1817 MONGOLIAN DIGIT SEVEN -1818 MONGOLIAN DIGIT EIGHT -1819 MONGOLIAN DIGIT NINE -1820 MONGOLIAN LETTER A -1821 MONGOLIAN LETTER E -1822 MONGOLIAN LETTER I -1823 MONGOLIAN LETTER O -1824 MONGOLIAN LETTER U -1825 MONGOLIAN LETTER OE -1826 MONGOLIAN LETTER UE -1827 MONGOLIAN LETTER EE -1828 MONGOLIAN LETTER NA -1829 MONGOLIAN LETTER ANG -182A MONGOLIAN LETTER BA -182B MONGOLIAN LETTER PA -182C MONGOLIAN LETTER QA -182D MONGOLIAN LETTER GA -182E MONGOLIAN LETTER MA -182F MONGOLIAN LETTER LA -1830 MONGOLIAN LETTER SA -1831 MONGOLIAN LETTER SHA -1832 MONGOLIAN LETTER TA -1833 MONGOLIAN LETTER DA -1834 MONGOLIAN LETTER CHA -1835 MONGOLIAN LETTER JA -1836 MONGOLIAN LETTER YA -1837 MONGOLIAN LETTER RA -1838 MONGOLIAN LETTER WA -1839 MONGOLIAN LETTER FA -183A MONGOLIAN LETTER KA -183B MONGOLIAN LETTER KHA -183C MONGOLIAN LETTER TSA -183D MONGOLIAN LETTER ZA -183E MONGOLIAN LETTER HAA -183F MONGOLIAN LETTER ZRA -1840 MONGOLIAN LETTER LHA -1841 MONGOLIAN LETTER ZHI -1842 MONGOLIAN LETTER CHI -1843 MONGOLIAN LETTER TODO LONG VOWEL SIGN -1844 MONGOLIAN LETTER TODO E -1845 MONGOLIAN LETTER TODO I -1846 MONGOLIAN LETTER TODO O -1847 MONGOLIAN LETTER TODO U -1848 MONGOLIAN LETTER TODO OE -1849 MONGOLIAN LETTER TODO UE -184A MONGOLIAN LETTER TODO ANG -184B MONGOLIAN LETTER TODO BA -184C MONGOLIAN LETTER TODO PA -184D MONGOLIAN LETTER TODO QA -184E MONGOLIAN LETTER TODO GA -184F MONGOLIAN LETTER TODO MA -1850 MONGOLIAN LETTER TODO TA -1851 MONGOLIAN LETTER TODO DA -1852 MONGOLIAN LETTER TODO CHA -1853 MONGOLIAN LETTER TODO JA -1854 MONGOLIAN LETTER TODO TSA -1855 MONGOLIAN LETTER TODO YA -1856 MONGOLIAN LETTER TODO WA -1857 MONGOLIAN LETTER TODO KA -1858 MONGOLIAN LETTER TODO GAA -1859 MONGOLIAN LETTER TODO HAA -185A MONGOLIAN LETTER TODO JIA -185B MONGOLIAN LETTER TODO NIA -185C MONGOLIAN LETTER TODO DZA -185D MONGOLIAN LETTER SIBE E -185E MONGOLIAN LETTER SIBE I -185F MONGOLIAN LETTER SIBE IY -1860 MONGOLIAN LETTER SIBE UE -1861 MONGOLIAN LETTER SIBE U -1862 MONGOLIAN LETTER SIBE ANG -1863 MONGOLIAN LETTER SIBE KA -1864 MONGOLIAN LETTER SIBE GA -1865 MONGOLIAN LETTER SIBE HA -1866 MONGOLIAN LETTER SIBE PA -1867 MONGOLIAN LETTER SIBE SHA -1868 MONGOLIAN LETTER SIBE TA -1869 MONGOLIAN LETTER SIBE DA -186A MONGOLIAN LETTER SIBE JA -186B MONGOLIAN LETTER SIBE FA -186C MONGOLIAN LETTER SIBE GAA -186D MONGOLIAN LETTER SIBE HAA -186E MONGOLIAN LETTER SIBE TSA -186F MONGOLIAN LETTER SIBE ZA -1870 MONGOLIAN LETTER SIBE RAA -1871 MONGOLIAN LETTER SIBE CHA -1872 MONGOLIAN LETTER SIBE ZHA -1873 MONGOLIAN LETTER MANCHU I -1874 MONGOLIAN LETTER MANCHU KA -1875 MONGOLIAN LETTER MANCHU RA -1876 MONGOLIAN LETTER MANCHU FA -1877 MONGOLIAN LETTER MANCHU ZHA -1880 MONGOLIAN LETTER ALI GALI ANUSVARA ONE -1881 MONGOLIAN LETTER ALI GALI VISARGA ONE -1882 MONGOLIAN LETTER ALI GALI DAMARU -1883 MONGOLIAN LETTER ALI GALI UBADAMA -1884 MONGOLIAN LETTER ALI GALI INVERTED UBADAMA -1885 MONGOLIAN LETTER ALI GALI BALUDA -1886 MONGOLIAN LETTER ALI GALI THREE BALUDA -1887 MONGOLIAN LETTER ALI GALI A -1888 MONGOLIAN LETTER ALI GALI I -1889 MONGOLIAN LETTER ALI GALI KA -188A MONGOLIAN LETTER ALI GALI NGA -188B MONGOLIAN LETTER ALI GALI CA -188C MONGOLIAN LETTER ALI GALI TTA -188D MONGOLIAN LETTER ALI GALI TTHA -188E MONGOLIAN LETTER ALI GALI DDA -188F MONGOLIAN LETTER ALI GALI NNA -1890 MONGOLIAN LETTER ALI GALI TA -1891 MONGOLIAN LETTER ALI GALI DA -1892 MONGOLIAN LETTER ALI GALI PA -1893 MONGOLIAN LETTER ALI GALI PHA -1894 MONGOLIAN LETTER ALI GALI SSA -1895 MONGOLIAN LETTER ALI GALI ZHA -1896 MONGOLIAN LETTER ALI GALI ZA -1897 MONGOLIAN LETTER ALI GALI AH -1898 MONGOLIAN LETTER TODO ALI GALI TA -1899 MONGOLIAN LETTER TODO ALI GALI ZHA -189A MONGOLIAN LETTER MANCHU ALI GALI GHA -189B MONGOLIAN LETTER MANCHU ALI GALI NGA -189C MONGOLIAN LETTER MANCHU ALI GALI CA -189D MONGOLIAN LETTER MANCHU ALI GALI JHA -189E MONGOLIAN LETTER MANCHU ALI GALI TTA -189F MONGOLIAN LETTER MANCHU ALI GALI DDHA -18A0 MONGOLIAN LETTER MANCHU ALI GALI TA -18A1 MONGOLIAN LETTER MANCHU ALI GALI DHA -18A2 MONGOLIAN LETTER MANCHU ALI GALI SSA -18A3 MONGOLIAN LETTER MANCHU ALI GALI CYA -18A4 MONGOLIAN LETTER MANCHU ALI GALI ZHA -18A5 MONGOLIAN LETTER MANCHU ALI GALI ZA -18A6 MONGOLIAN LETTER ALI GALI HALF U -18A7 MONGOLIAN LETTER ALI GALI HALF YA -18A8 MONGOLIAN LETTER MANCHU ALI GALI BHA -18A9 MONGOLIAN LETTER ALI GALI DAGALGA -1E00 LATIN CAPITAL LETTER A WITH RING BELOW -1E01 LATIN SMALL LETTER A WITH RING BELOW -1E02 LATIN CAPITAL LETTER B WITH DOT ABOVE -1E03 LATIN SMALL LETTER B WITH DOT ABOVE -1E04 LATIN CAPITAL LETTER B WITH DOT BELOW -1E05 LATIN SMALL LETTER B WITH DOT BELOW -1E06 LATIN CAPITAL LETTER B WITH LINE BELOW -1E07 LATIN SMALL LETTER B WITH LINE BELOW -1E08 LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE -1E09 LATIN SMALL LETTER C WITH CEDILLA AND ACUTE -1E0A LATIN CAPITAL LETTER D WITH DOT ABOVE -1E0B LATIN SMALL LETTER D WITH DOT ABOVE -1E0C LATIN CAPITAL LETTER D WITH DOT BELOW -1E0D LATIN SMALL LETTER D WITH DOT BELOW -1E0E LATIN CAPITAL LETTER D WITH LINE BELOW -1E0F LATIN SMALL LETTER D WITH LINE BELOW -1E10 LATIN CAPITAL LETTER D WITH CEDILLA -1E11 LATIN SMALL LETTER D WITH CEDILLA -1E12 LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW -1E13 LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW -1E14 LATIN CAPITAL LETTER E WITH MACRON AND GRAVE -1E15 LATIN SMALL LETTER E WITH MACRON AND GRAVE -1E16 LATIN CAPITAL LETTER E WITH MACRON AND ACUTE -1E17 LATIN SMALL LETTER E WITH MACRON AND ACUTE -1E18 LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW -1E19 LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW -1E1A LATIN CAPITAL LETTER E WITH TILDE BELOW -1E1B LATIN SMALL LETTER E WITH TILDE BELOW -1E1C LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE -1E1D LATIN SMALL LETTER E WITH CEDILLA AND BREVE -1E1E LATIN CAPITAL LETTER F WITH DOT ABOVE -1E1F LATIN SMALL LETTER F WITH DOT ABOVE -1E20 LATIN CAPITAL LETTER G WITH MACRON -1E21 LATIN SMALL LETTER G WITH MACRON -1E22 LATIN CAPITAL LETTER H WITH DOT ABOVE -1E23 LATIN SMALL LETTER H WITH DOT ABOVE -1E24 LATIN CAPITAL LETTER H WITH DOT BELOW -1E25 LATIN SMALL LETTER H WITH DOT BELOW -1E26 LATIN CAPITAL LETTER H WITH DIAERESIS -1E27 LATIN SMALL LETTER H WITH DIAERESIS -1E28 LATIN CAPITAL LETTER H WITH CEDILLA -1E29 LATIN SMALL LETTER H WITH CEDILLA -1E2A LATIN CAPITAL LETTER H WITH BREVE BELOW -1E2B LATIN SMALL LETTER H WITH BREVE BELOW -1E2C LATIN CAPITAL LETTER I WITH TILDE BELOW -1E2D LATIN SMALL LETTER I WITH TILDE BELOW -1E2E LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE -1E2F LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE -1E30 LATIN CAPITAL LETTER K WITH ACUTE -1E31 LATIN SMALL LETTER K WITH ACUTE -1E32 LATIN CAPITAL LETTER K WITH DOT BELOW -1E33 LATIN SMALL LETTER K WITH DOT BELOW -1E34 LATIN CAPITAL LETTER K WITH LINE BELOW -1E35 LATIN SMALL LETTER K WITH LINE BELOW -1E36 LATIN CAPITAL LETTER L WITH DOT BELOW -1E37 LATIN SMALL LETTER L WITH DOT BELOW -1E38 LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON -1E39 LATIN SMALL LETTER L WITH DOT BELOW AND MACRON -1E3A LATIN CAPITAL LETTER L WITH LINE BELOW -1E3B LATIN SMALL LETTER L WITH LINE BELOW -1E3C LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW -1E3D LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW -1E3E LATIN CAPITAL LETTER M WITH ACUTE -1E3F LATIN SMALL LETTER M WITH ACUTE -1E40 LATIN CAPITAL LETTER M WITH DOT ABOVE -1E41 LATIN SMALL LETTER M WITH DOT ABOVE -1E42 LATIN CAPITAL LETTER M WITH DOT BELOW -1E43 LATIN SMALL LETTER M WITH DOT BELOW -1E44 LATIN CAPITAL LETTER N WITH DOT ABOVE -1E45 LATIN SMALL LETTER N WITH DOT ABOVE -1E46 LATIN CAPITAL LETTER N WITH DOT BELOW -1E47 LATIN SMALL LETTER N WITH DOT BELOW -1E48 LATIN CAPITAL LETTER N WITH LINE BELOW -1E49 LATIN SMALL LETTER N WITH LINE BELOW -1E4A LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW -1E4B LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW -1E4C LATIN CAPITAL LETTER O WITH TILDE AND ACUTE -1E4D LATIN SMALL LETTER O WITH TILDE AND ACUTE -1E4E LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS -1E4F LATIN SMALL LETTER O WITH TILDE AND DIAERESIS -1E50 LATIN CAPITAL LETTER O WITH MACRON AND GRAVE -1E51 LATIN SMALL LETTER O WITH MACRON AND GRAVE -1E52 LATIN CAPITAL LETTER O WITH MACRON AND ACUTE -1E53 LATIN SMALL LETTER O WITH MACRON AND ACUTE -1E54 LATIN CAPITAL LETTER P WITH ACUTE -1E55 LATIN SMALL LETTER P WITH ACUTE -1E56 LATIN CAPITAL LETTER P WITH DOT ABOVE -1E57 LATIN SMALL LETTER P WITH DOT ABOVE -1E58 LATIN CAPITAL LETTER R WITH DOT ABOVE -1E59 LATIN SMALL LETTER R WITH DOT ABOVE -1E5A LATIN CAPITAL LETTER R WITH DOT BELOW -1E5B LATIN SMALL LETTER R WITH DOT BELOW -1E5C LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON -1E5D LATIN SMALL LETTER R WITH DOT BELOW AND MACRON -1E5E LATIN CAPITAL LETTER R WITH LINE BELOW -1E5F LATIN SMALL LETTER R WITH LINE BELOW -1E60 LATIN CAPITAL LETTER S WITH DOT ABOVE -1E61 LATIN SMALL LETTER S WITH DOT ABOVE -1E62 LATIN CAPITAL LETTER S WITH DOT BELOW -1E63 LATIN SMALL LETTER S WITH DOT BELOW -1E64 LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE -1E65 LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE -1E66 LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE -1E67 LATIN SMALL LETTER S WITH CARON AND DOT ABOVE -1E68 LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE -1E69 LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE -1E6A LATIN CAPITAL LETTER T WITH DOT ABOVE -1E6B LATIN SMALL LETTER T WITH DOT ABOVE -1E6C LATIN CAPITAL LETTER T WITH DOT BELOW -1E6D LATIN SMALL LETTER T WITH DOT BELOW -1E6E LATIN CAPITAL LETTER T WITH LINE BELOW -1E6F LATIN SMALL LETTER T WITH LINE BELOW -1E70 LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW -1E71 LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW -1E72 LATIN CAPITAL LETTER U WITH DIAERESIS BELOW -1E73 LATIN SMALL LETTER U WITH DIAERESIS BELOW -1E74 LATIN CAPITAL LETTER U WITH TILDE BELOW -1E75 LATIN SMALL LETTER U WITH TILDE BELOW -1E76 LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW -1E77 LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW -1E78 LATIN CAPITAL LETTER U WITH TILDE AND ACUTE -1E79 LATIN SMALL LETTER U WITH TILDE AND ACUTE -1E7A LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS -1E7B LATIN SMALL LETTER U WITH MACRON AND DIAERESIS -1E7C LATIN CAPITAL LETTER V WITH TILDE -1E7D LATIN SMALL LETTER V WITH TILDE -1E7E LATIN CAPITAL LETTER V WITH DOT BELOW -1E7F LATIN SMALL LETTER V WITH DOT BELOW -1E80 LATIN CAPITAL LETTER W WITH GRAVE -1E81 LATIN SMALL LETTER W WITH GRAVE -1E82 LATIN CAPITAL LETTER W WITH ACUTE -1E83 LATIN SMALL LETTER W WITH ACUTE -1E84 LATIN CAPITAL LETTER W WITH DIAERESIS -1E85 LATIN SMALL LETTER W WITH DIAERESIS -1E86 LATIN CAPITAL LETTER W WITH DOT ABOVE -1E87 LATIN SMALL LETTER W WITH DOT ABOVE -1E88 LATIN CAPITAL LETTER W WITH DOT BELOW -1E89 LATIN SMALL LETTER W WITH DOT BELOW -1E8A LATIN CAPITAL LETTER X WITH DOT ABOVE -1E8B LATIN SMALL LETTER X WITH DOT ABOVE -1E8C LATIN CAPITAL LETTER X WITH DIAERESIS -1E8D LATIN SMALL LETTER X WITH DIAERESIS -1E8E LATIN CAPITAL LETTER Y WITH DOT ABOVE -1E8F LATIN SMALL LETTER Y WITH DOT ABOVE -1E90 LATIN CAPITAL LETTER Z WITH CIRCUMFLEX -1E91 LATIN SMALL LETTER Z WITH CIRCUMFLEX -1E92 LATIN CAPITAL LETTER Z WITH DOT BELOW -1E93 LATIN SMALL LETTER Z WITH DOT BELOW -1E94 LATIN CAPITAL LETTER Z WITH LINE BELOW -1E95 LATIN SMALL LETTER Z WITH LINE BELOW -1E96 LATIN SMALL LETTER H WITH LINE BELOW -1E97 LATIN SMALL LETTER T WITH DIAERESIS -1E98 LATIN SMALL LETTER W WITH RING ABOVE -1E99 LATIN SMALL LETTER Y WITH RING ABOVE -1E9A LATIN SMALL LETTER A WITH RIGHT HALF RING -1E9B LATIN SMALL LETTER LONG S WITH DOT ABOVE -1EA0 LATIN CAPITAL LETTER A WITH DOT BELOW -1EA1 LATIN SMALL LETTER A WITH DOT BELOW -1EA2 LATIN CAPITAL LETTER A WITH HOOK ABOVE -1EA3 LATIN SMALL LETTER A WITH HOOK ABOVE -1EA4 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE -1EA5 LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE -1EA6 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE -1EA7 LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE -1EA8 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE -1EA9 LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE -1EAA LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE -1EAB LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE -1EAC LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW -1EAD LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW -1EAE LATIN CAPITAL LETTER A WITH BREVE AND ACUTE -1EAF LATIN SMALL LETTER A WITH BREVE AND ACUTE -1EB0 LATIN CAPITAL LETTER A WITH BREVE AND GRAVE -1EB1 LATIN SMALL LETTER A WITH BREVE AND GRAVE -1EB2 LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE -1EB3 LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE -1EB4 LATIN CAPITAL LETTER A WITH BREVE AND TILDE -1EB5 LATIN SMALL LETTER A WITH BREVE AND TILDE -1EB6 LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW -1EB7 LATIN SMALL LETTER A WITH BREVE AND DOT BELOW -1EB8 LATIN CAPITAL LETTER E WITH DOT BELOW -1EB9 LATIN SMALL LETTER E WITH DOT BELOW -1EBA LATIN CAPITAL LETTER E WITH HOOK ABOVE -1EBB LATIN SMALL LETTER E WITH HOOK ABOVE -1EBC LATIN CAPITAL LETTER E WITH TILDE -1EBD LATIN SMALL LETTER E WITH TILDE -1EBE LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE -1EBF LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE -1EC0 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE -1EC1 LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE -1EC2 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE -1EC3 LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE -1EC4 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE -1EC5 LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE -1EC6 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW -1EC7 LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW -1EC8 LATIN CAPITAL LETTER I WITH HOOK ABOVE -1EC9 LATIN SMALL LETTER I WITH HOOK ABOVE -1ECA LATIN CAPITAL LETTER I WITH DOT BELOW -1ECB LATIN SMALL LETTER I WITH DOT BELOW -1ECC LATIN CAPITAL LETTER O WITH DOT BELOW -1ECD LATIN SMALL LETTER O WITH DOT BELOW -1ECE LATIN CAPITAL LETTER O WITH HOOK ABOVE -1ECF LATIN SMALL LETTER O WITH HOOK ABOVE -1ED0 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE -1ED1 LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE -1ED2 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE -1ED3 LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE -1ED4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE -1ED5 LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE -1ED6 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE -1ED7 LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE -1ED8 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW -1ED9 LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW -1EDA LATIN CAPITAL LETTER O WITH HORN AND ACUTE -1EDB LATIN SMALL LETTER O WITH HORN AND ACUTE -1EDC LATIN CAPITAL LETTER O WITH HORN AND GRAVE -1EDD LATIN SMALL LETTER O WITH HORN AND GRAVE -1EDE LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE -1EDF LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE -1EE0 LATIN CAPITAL LETTER O WITH HORN AND TILDE -1EE1 LATIN SMALL LETTER O WITH HORN AND TILDE -1EE2 LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW -1EE3 LATIN SMALL LETTER O WITH HORN AND DOT BELOW -1EE4 LATIN CAPITAL LETTER U WITH DOT BELOW -1EE5 LATIN SMALL LETTER U WITH DOT BELOW -1EE6 LATIN CAPITAL LETTER U WITH HOOK ABOVE -1EE7 LATIN SMALL LETTER U WITH HOOK ABOVE -1EE8 LATIN CAPITAL LETTER U WITH HORN AND ACUTE -1EE9 LATIN SMALL LETTER U WITH HORN AND ACUTE -1EEA LATIN CAPITAL LETTER U WITH HORN AND GRAVE -1EEB LATIN SMALL LETTER U WITH HORN AND GRAVE -1EEC LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE -1EED LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE -1EEE LATIN CAPITAL LETTER U WITH HORN AND TILDE -1EEF LATIN SMALL LETTER U WITH HORN AND TILDE -1EF0 LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW -1EF1 LATIN SMALL LETTER U WITH HORN AND DOT BELOW -1EF2 LATIN CAPITAL LETTER Y WITH GRAVE -1EF3 LATIN SMALL LETTER Y WITH GRAVE -1EF4 LATIN CAPITAL LETTER Y WITH DOT BELOW -1EF5 LATIN SMALL LETTER Y WITH DOT BELOW -1EF6 LATIN CAPITAL LETTER Y WITH HOOK ABOVE -1EF7 LATIN SMALL LETTER Y WITH HOOK ABOVE -1EF8 LATIN CAPITAL LETTER Y WITH TILDE -1EF9 LATIN SMALL LETTER Y WITH TILDE -1F00 GREEK SMALL LETTER ALPHA WITH PSILI -1F01 GREEK SMALL LETTER ALPHA WITH DASIA -1F02 GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA -1F03 GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA -1F04 GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA -1F05 GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA -1F06 GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI -1F07 GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI -1F08 GREEK CAPITAL LETTER ALPHA WITH PSILI -1F09 GREEK CAPITAL LETTER ALPHA WITH DASIA -1F0A GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA -1F0B GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA -1F0C GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA -1F0D GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA -1F0E GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI -1F0F GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI -1F10 GREEK SMALL LETTER EPSILON WITH PSILI -1F11 GREEK SMALL LETTER EPSILON WITH DASIA -1F12 GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA -1F13 GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA -1F14 GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA -1F15 GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA -1F18 GREEK CAPITAL LETTER EPSILON WITH PSILI -1F19 GREEK CAPITAL LETTER EPSILON WITH DASIA -1F1A GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA -1F1B GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA -1F1C GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA -1F1D GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA -1F20 GREEK SMALL LETTER ETA WITH PSILI -1F21 GREEK SMALL LETTER ETA WITH DASIA -1F22 GREEK SMALL LETTER ETA WITH PSILI AND VARIA -1F23 GREEK SMALL LETTER ETA WITH DASIA AND VARIA -1F24 GREEK SMALL LETTER ETA WITH PSILI AND OXIA -1F25 GREEK SMALL LETTER ETA WITH DASIA AND OXIA -1F26 GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI -1F27 GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI -1F28 GREEK CAPITAL LETTER ETA WITH PSILI -1F29 GREEK CAPITAL LETTER ETA WITH DASIA -1F2A GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA -1F2B GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA -1F2C GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA -1F2D GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA -1F2E GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI -1F2F GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI -1F30 GREEK SMALL LETTER IOTA WITH PSILI -1F31 GREEK SMALL LETTER IOTA WITH DASIA -1F32 GREEK SMALL LETTER IOTA WITH PSILI AND VARIA -1F33 GREEK SMALL LETTER IOTA WITH DASIA AND VARIA -1F34 GREEK SMALL LETTER IOTA WITH PSILI AND OXIA -1F35 GREEK SMALL LETTER IOTA WITH DASIA AND OXIA -1F36 GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI -1F37 GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI -1F38 GREEK CAPITAL LETTER IOTA WITH PSILI -1F39 GREEK CAPITAL LETTER IOTA WITH DASIA -1F3A GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA -1F3B GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA -1F3C GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA -1F3D GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA -1F3E GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI -1F3F GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI -1F40 GREEK SMALL LETTER OMICRON WITH PSILI -1F41 GREEK SMALL LETTER OMICRON WITH DASIA -1F42 GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA -1F43 GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA -1F44 GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA -1F45 GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA -1F48 GREEK CAPITAL LETTER OMICRON WITH PSILI -1F49 GREEK CAPITAL LETTER OMICRON WITH DASIA -1F4A GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA -1F4B GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA -1F4C GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA -1F4D GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA -1F50 GREEK SMALL LETTER UPSILON WITH PSILI -1F51 GREEK SMALL LETTER UPSILON WITH DASIA -1F52 GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA -1F53 GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA -1F54 GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA -1F55 GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA -1F56 GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI -1F57 GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI -1F59 GREEK CAPITAL LETTER UPSILON WITH DASIA -1F5B GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA -1F5D GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA -1F5F GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI -1F60 GREEK SMALL LETTER OMEGA WITH PSILI -1F61 GREEK SMALL LETTER OMEGA WITH DASIA -1F62 GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA -1F63 GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA -1F64 GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA -1F65 GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA -1F66 GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI -1F67 GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI -1F68 GREEK CAPITAL LETTER OMEGA WITH PSILI -1F69 GREEK CAPITAL LETTER OMEGA WITH DASIA -1F6A GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA -1F6B GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA -1F6C GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA -1F6D GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA -1F6E GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI -1F6F GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI -1F70 GREEK SMALL LETTER ALPHA WITH VARIA -1F71 GREEK SMALL LETTER ALPHA WITH OXIA -1F72 GREEK SMALL LETTER EPSILON WITH VARIA -1F73 GREEK SMALL LETTER EPSILON WITH OXIA -1F74 GREEK SMALL LETTER ETA WITH VARIA -1F75 GREEK SMALL LETTER ETA WITH OXIA -1F76 GREEK SMALL LETTER IOTA WITH VARIA -1F77 GREEK SMALL LETTER IOTA WITH OXIA -1F78 GREEK SMALL LETTER OMICRON WITH VARIA -1F79 GREEK SMALL LETTER OMICRON WITH OXIA -1F7A GREEK SMALL LETTER UPSILON WITH VARIA -1F7B GREEK SMALL LETTER UPSILON WITH OXIA -1F7C GREEK SMALL LETTER OMEGA WITH VARIA -1F7D GREEK SMALL LETTER OMEGA WITH OXIA -1F80 GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI -1F81 GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI -1F82 GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI -1F83 GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI -1F84 GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI -1F85 GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI -1F86 GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI -1F87 GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI -1F88 GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI -1F89 GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI -1F8A GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI -1F8B GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI -1F8C GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI -1F8D GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI -1F8E GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI -1F8F GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI -1F90 GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI -1F91 GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI -1F92 GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI -1F93 GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI -1F94 GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI -1F95 GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI -1F96 GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI -1F97 GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI -1F98 GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI -1F99 GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI -1F9A GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI -1F9B GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI -1F9C GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI -1F9D GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI -1F9E GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI -1F9F GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI -1FA0 GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI -1FA1 GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI -1FA2 GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI -1FA3 GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI -1FA4 GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI -1FA5 GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI -1FA6 GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI -1FA7 GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI -1FA8 GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI -1FA9 GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI -1FAA GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI -1FAB GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI -1FAC GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI -1FAD GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI -1FAE GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI -1FAF GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI -1FB0 GREEK SMALL LETTER ALPHA WITH VRACHY -1FB1 GREEK SMALL LETTER ALPHA WITH MACRON -1FB2 GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI -1FB3 GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI -1FB4 GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI -1FB6 GREEK SMALL LETTER ALPHA WITH PERISPOMENI -1FB7 GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI -1FB8 GREEK CAPITAL LETTER ALPHA WITH VRACHY -1FB9 GREEK CAPITAL LETTER ALPHA WITH MACRON -1FBA GREEK CAPITAL LETTER ALPHA WITH VARIA -1FBB GREEK CAPITAL LETTER ALPHA WITH OXIA -1FBC GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI -1FBD GREEK KORONIS -1FBE GREEK PROSGEGRAMMENI -1FBF GREEK PSILI -1FC0 GREEK PERISPOMENI -1FC1 GREEK DIALYTIKA AND PERISPOMENI -1FC2 GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI -1FC3 GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI -1FC4 GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI -1FC6 GREEK SMALL LETTER ETA WITH PERISPOMENI -1FC7 GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI -1FC8 GREEK CAPITAL LETTER EPSILON WITH VARIA -1FC9 GREEK CAPITAL LETTER EPSILON WITH OXIA -1FCA GREEK CAPITAL LETTER ETA WITH VARIA -1FCB GREEK CAPITAL LETTER ETA WITH OXIA -1FCC GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI -1FCD GREEK PSILI AND VARIA -1FCE GREEK PSILI AND OXIA -1FCF GREEK PSILI AND PERISPOMENI -1FD0 GREEK SMALL LETTER IOTA WITH VRACHY -1FD1 GREEK SMALL LETTER IOTA WITH MACRON -1FD2 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA -1FD3 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA -1FD6 GREEK SMALL LETTER IOTA WITH PERISPOMENI -1FD7 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI -1FD8 GREEK CAPITAL LETTER IOTA WITH VRACHY -1FD9 GREEK CAPITAL LETTER IOTA WITH MACRON -1FDA GREEK CAPITAL LETTER IOTA WITH VARIA -1FDB GREEK CAPITAL LETTER IOTA WITH OXIA -1FDD GREEK DASIA AND VARIA -1FDE GREEK DASIA AND OXIA -1FDF GREEK DASIA AND PERISPOMENI -1FE0 GREEK SMALL LETTER UPSILON WITH VRACHY -1FE1 GREEK SMALL LETTER UPSILON WITH MACRON -1FE2 GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA -1FE3 GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA -1FE4 GREEK SMALL LETTER RHO WITH PSILI -1FE5 GREEK SMALL LETTER RHO WITH DASIA -1FE6 GREEK SMALL LETTER UPSILON WITH PERISPOMENI -1FE7 GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI -1FE8 GREEK CAPITAL LETTER UPSILON WITH VRACHY -1FE9 GREEK CAPITAL LETTER UPSILON WITH MACRON -1FEA GREEK CAPITAL LETTER UPSILON WITH VARIA -1FEB GREEK CAPITAL LETTER UPSILON WITH OXIA -1FEC GREEK CAPITAL LETTER RHO WITH DASIA -1FED GREEK DIALYTIKA AND VARIA -1FEE GREEK DIALYTIKA AND OXIA -1FEF GREEK VARIA -1FF2 GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI -1FF3 GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI -1FF4 GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI -1FF6 GREEK SMALL LETTER OMEGA WITH PERISPOMENI -1FF7 GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI -1FF8 GREEK CAPITAL LETTER OMICRON WITH VARIA -1FF9 GREEK CAPITAL LETTER OMICRON WITH OXIA -1FFA GREEK CAPITAL LETTER OMEGA WITH VARIA -1FFB GREEK CAPITAL LETTER OMEGA WITH OXIA -1FFC GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI -1FFD GREEK OXIA -1FFE GREEK DASIA -2000 EN QUAD -2001 EM QUAD -2002 EN SPACE -2003 EM SPACE -2004 THREE-PER-EM SPACE -2005 FOUR-PER-EM SPACE -2006 SIX-PER-EM SPACE -2007 FIGURE SPACE -2008 PUNCTUATION SPACE -2009 THIN SPACE -200A HAIR SPACE -200B ZERO WIDTH SPACE -200C ZERO WIDTH NON-JOINER -200D ZERO WIDTH JOINER -200E LEFT-TO-RIGHT MARK -200F RIGHT-TO-LEFT MARK -2010 HYPHEN -2011 NON-BREAKING HYPHEN -2012 FIGURE DASH -2013 EN DASH -2014 EM DASH -2015 HORIZONTAL BAR -2016 DOUBLE VERTICAL LINE -2017 DOUBLE LOW LINE -2018 LEFT SINGLE QUOTATION MARK -2019 RIGHT SINGLE QUOTATION MARK -201A SINGLE LOW-9 QUOTATION MARK -201B SINGLE HIGH-REVERSED-9 QUOTATION MARK -201C LEFT DOUBLE QUOTATION MARK -201D RIGHT DOUBLE QUOTATION MARK -201E DOUBLE LOW-9 QUOTATION MARK -201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK -2020 DAGGER -2021 DOUBLE DAGGER -2022 BULLET -2023 TRIANGULAR BULLET -2024 ONE DOT LEADER -2025 TWO DOT LEADER -2026 HORIZONTAL ELLIPSIS -2027 HYPHENATION POINT -2028 LINE SEPARATOR -2029 PARAGRAPH SEPARATOR -202A LEFT-TO-RIGHT EMBEDDING -202B RIGHT-TO-LEFT EMBEDDING -202C POP DIRECTIONAL FORMATTING -202D LEFT-TO-RIGHT OVERRIDE -202E RIGHT-TO-LEFT OVERRIDE -202F NARROW NO-BREAK SPACE -2030 PER MILLE SIGN -2031 PER TEN THOUSAND SIGN -2032 PRIME -2033 DOUBLE PRIME -2034 TRIPLE PRIME -2035 REVERSED PRIME -2036 REVERSED DOUBLE PRIME -2037 REVERSED TRIPLE PRIME -2038 CARET -2039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK -203A SINGLE RIGHT-POINTING ANGLE QUOTATION MARK -203B REFERENCE MARK -203C DOUBLE EXCLAMATION MARK -203D INTERROBANG -203E OVERLINE -203F UNDERTIE -2040 CHARACTER TIE -2041 CARET INSERTION POINT -2042 ASTERISM -2043 HYPHEN BULLET -2044 FRACTION SLASH -2045 LEFT SQUARE BRACKET WITH QUILL -2046 RIGHT SQUARE BRACKET WITH QUILL -2047 DOUBLE QUESTION MARK -2048 QUESTION EXCLAMATION MARK -2049 EXCLAMATION QUESTION MARK -204A TIRONIAN SIGN ET -204B REVERSED PILCROW SIGN -204C BLACK LEFTWARDS BULLET -204D BLACK RIGHTWARDS BULLET -204E LOW ASTERISK -204F REVERSED SEMICOLON -2050 CLOSE UP -2051 TWO ASTERISKS ALIGNED VERTICALLY -2052 COMMERCIAL MINUS SIGN -2057 QUADRUPLE PRIME -205F MEDIUM MATHEMATICAL SPACE -2060 WORD JOINER -2061 FUNCTION APPLICATION -2062 INVISIBLE TIMES -2063 INVISIBLE SEPARATOR -206A INHIBIT SYMMETRIC SWAPPING -206B ACTIVATE SYMMETRIC SWAPPING -206C INHIBIT ARABIC FORM SHAPING -206D ACTIVATE ARABIC FORM SHAPING -206E NATIONAL DIGIT SHAPES -206F NOMINAL DIGIT SHAPES -2070 SUPERSCRIPT ZERO -2071 SUPERSCRIPT LATIN SMALL LETTER I -2074 SUPERSCRIPT FOUR -2075 SUPERSCRIPT FIVE -2076 SUPERSCRIPT SIX -2077 SUPERSCRIPT SEVEN -2078 SUPERSCRIPT EIGHT -2079 SUPERSCRIPT NINE -207A SUPERSCRIPT PLUS SIGN -207B SUPERSCRIPT MINUS -207C SUPERSCRIPT EQUALS SIGN -207D SUPERSCRIPT LEFT PARENTHESIS -207E SUPERSCRIPT RIGHT PARENTHESIS -207F SUPERSCRIPT LATIN SMALL LETTER N -2080 SUBSCRIPT ZERO -2081 SUBSCRIPT ONE -2082 SUBSCRIPT TWO -2083 SUBSCRIPT THREE -2084 SUBSCRIPT FOUR -2085 SUBSCRIPT FIVE -2086 SUBSCRIPT SIX -2087 SUBSCRIPT SEVEN -2088 SUBSCRIPT EIGHT -2089 SUBSCRIPT NINE -208A SUBSCRIPT PLUS SIGN -208B SUBSCRIPT MINUS -208C SUBSCRIPT EQUALS SIGN -208D SUBSCRIPT LEFT PARENTHESIS -208E SUBSCRIPT RIGHT PARENTHESIS -20A0 EURO-CURRENCY SIGN -20A1 COLON SIGN -20A2 CRUZEIRO SIGN -20A3 FRENCH FRANC SIGN -20A4 LIRA SIGN -20A5 MILL SIGN -20A6 NAIRA SIGN -20A7 PESETA SIGN -20A8 RUPEE SIGN -20A9 WON SIGN -20AA NEW SHEQEL SIGN -20AB DONG SIGN -20AC EURO SIGN -20AD KIP SIGN -20AE TUGRIK SIGN -20AF DRACHMA SIGN -20B0 GERMAN PENNY SIGN -20B1 PESO SIGN -20D0 COMBINING LEFT HARPOON ABOVE -20D1 COMBINING RIGHT HARPOON ABOVE -20D2 COMBINING LONG VERTICAL LINE OVERLAY -20D3 COMBINING SHORT VERTICAL LINE OVERLAY -20D4 COMBINING ANTICLOCKWISE ARROW ABOVE -20D5 COMBINING CLOCKWISE ARROW ABOVE -20D6 COMBINING LEFT ARROW ABOVE -20D7 COMBINING RIGHT ARROW ABOVE -20D8 COMBINING RING OVERLAY -20D9 COMBINING CLOCKWISE RING OVERLAY -20DA COMBINING ANTICLOCKWISE RING OVERLAY -20DB COMBINING THREE DOTS ABOVE -20DC COMBINING FOUR DOTS ABOVE -20DD COMBINING ENCLOSING CIRCLE -20DE COMBINING ENCLOSING SQUARE -20DF COMBINING ENCLOSING DIAMOND -20E0 COMBINING ENCLOSING CIRCLE BACKSLASH -20E1 COMBINING LEFT RIGHT ARROW ABOVE -20E2 COMBINING ENCLOSING SCREEN -20E3 COMBINING ENCLOSING KEYCAP -20E4 COMBINING ENCLOSING UPWARD POINTING TRIANGLE -20E5 COMBINING REVERSE SOLIDUS OVERLAY -20E6 COMBINING DOUBLE VERTICAL STROKE OVERLAY -20E7 COMBINING ANNUITY SYMBOL -20E8 COMBINING TRIPLE UNDERDOT -20E9 COMBINING WIDE BRIDGE ABOVE -20EA COMBINING LEFTWARDS ARROW OVERLAY -2100 ACCOUNT OF -2101 ADDRESSED TO THE SUBJECT -2102 DOUBLE-STRUCK CAPITAL C -2103 DEGREE CELSIUS -2104 CENTRE LINE SYMBOL -2105 CARE OF -2106 CADA UNA -2107 EULER CONSTANT -2108 SCRUPLE -2109 DEGREE FAHRENHEIT -210A SCRIPT SMALL G -210B SCRIPT CAPITAL H -210C BLACK-LETTER CAPITAL H -210D DOUBLE-STRUCK CAPITAL H -210E PLANCK CONSTANT -210F PLANCK CONSTANT OVER TWO PI -2110 SCRIPT CAPITAL I -2111 BLACK-LETTER CAPITAL I -2112 SCRIPT CAPITAL L -2113 SCRIPT SMALL L -2114 L B BAR SYMBOL -2115 DOUBLE-STRUCK CAPITAL N -2116 NUMERO SIGN -2117 SOUND RECORDING COPYRIGHT -2118 SCRIPT CAPITAL P -2119 DOUBLE-STRUCK CAPITAL P -211A DOUBLE-STRUCK CAPITAL Q -211B SCRIPT CAPITAL R -211C BLACK-LETTER CAPITAL R -211D DOUBLE-STRUCK CAPITAL R -211E PRESCRIPTION TAKE -211F RESPONSE -2120 SERVICE MARK -2121 TELEPHONE SIGN -2122 TRADE MARK SIGN -2123 VERSICLE -2124 DOUBLE-STRUCK CAPITAL Z -2125 OUNCE SIGN -2126 OHM SIGN -2127 INVERTED OHM SIGN -2128 BLACK-LETTER CAPITAL Z -2129 TURNED GREEK SMALL LETTER IOTA -212A KELVIN SIGN -212B ANGSTROM SIGN -212C SCRIPT CAPITAL B -212D BLACK-LETTER CAPITAL C -212E ESTIMATED SYMBOL -212F SCRIPT SMALL E -2130 SCRIPT CAPITAL E -2131 SCRIPT CAPITAL F -2132 TURNED CAPITAL F -2133 SCRIPT CAPITAL M -2134 SCRIPT SMALL O -2135 ALEF SYMBOL -2136 BET SYMBOL -2137 GIMEL SYMBOL -2138 DALET SYMBOL -2139 INFORMATION SOURCE -213A ROTATED CAPITAL Q -213D DOUBLE-STRUCK SMALL GAMMA -213E DOUBLE-STRUCK CAPITAL GAMMA -213F DOUBLE-STRUCK CAPITAL PI -2140 DOUBLE-STRUCK N-ARY SUMMATION -2141 TURNED SANS-SERIF CAPITAL G -2142 TURNED SANS-SERIF CAPITAL L -2143 REVERSED SANS-SERIF CAPITAL L -2144 TURNED SANS-SERIF CAPITAL Y -2145 DOUBLE-STRUCK ITALIC CAPITAL D -2146 DOUBLE-STRUCK ITALIC SMALL D -2147 DOUBLE-STRUCK ITALIC SMALL E -2148 DOUBLE-STRUCK ITALIC SMALL I -2149 DOUBLE-STRUCK ITALIC SMALL J -214A PROPERTY LINE -214B TURNED AMPERSAND -2153 VULGAR FRACTION ONE THIRD -2154 VULGAR FRACTION TWO THIRDS -2155 VULGAR FRACTION ONE FIFTH -2156 VULGAR FRACTION TWO FIFTHS -2157 VULGAR FRACTION THREE FIFTHS -2158 VULGAR FRACTION FOUR FIFTHS -2159 VULGAR FRACTION ONE SIXTH -215A VULGAR FRACTION FIVE SIXTHS -215B VULGAR FRACTION ONE EIGHTH -215C VULGAR FRACTION THREE EIGHTHS -215D VULGAR FRACTION FIVE EIGHTHS -215E VULGAR FRACTION SEVEN EIGHTHS -215F FRACTION NUMERATOR ONE -2160 ROMAN NUMERAL ONE -2161 ROMAN NUMERAL TWO -2162 ROMAN NUMERAL THREE -2163 ROMAN NUMERAL FOUR -2164 ROMAN NUMERAL FIVE -2165 ROMAN NUMERAL SIX -2166 ROMAN NUMERAL SEVEN -2167 ROMAN NUMERAL EIGHT -2168 ROMAN NUMERAL NINE -2169 ROMAN NUMERAL TEN -216A ROMAN NUMERAL ELEVEN -216B ROMAN NUMERAL TWELVE -216C ROMAN NUMERAL FIFTY -216D ROMAN NUMERAL ONE HUNDRED -216E ROMAN NUMERAL FIVE HUNDRED -216F ROMAN NUMERAL ONE THOUSAND -2170 SMALL ROMAN NUMERAL ONE -2171 SMALL ROMAN NUMERAL TWO -2172 SMALL ROMAN NUMERAL THREE -2173 SMALL ROMAN NUMERAL FOUR -2174 SMALL ROMAN NUMERAL FIVE -2175 SMALL ROMAN NUMERAL SIX -2176 SMALL ROMAN NUMERAL SEVEN -2177 SMALL ROMAN NUMERAL EIGHT -2178 SMALL ROMAN NUMERAL NINE -2179 SMALL ROMAN NUMERAL TEN -217A SMALL ROMAN NUMERAL ELEVEN -217B SMALL ROMAN NUMERAL TWELVE -217C SMALL ROMAN NUMERAL FIFTY -217D SMALL ROMAN NUMERAL ONE HUNDRED -217E SMALL ROMAN NUMERAL FIVE HUNDRED -217F SMALL ROMAN NUMERAL ONE THOUSAND -2180 ROMAN NUMERAL ONE THOUSAND C D -2181 ROMAN NUMERAL FIVE THOUSAND -2182 ROMAN NUMERAL TEN THOUSAND -2183 ROMAN NUMERAL REVERSED ONE HUNDRED -2190 LEFTWARDS ARROW -2191 UPWARDS ARROW -2192 RIGHTWARDS ARROW -2193 DOWNWARDS ARROW -2194 LEFT RIGHT ARROW -2195 UP DOWN ARROW -2196 NORTH WEST ARROW -2197 NORTH EAST ARROW -2198 SOUTH EAST ARROW -2199 SOUTH WEST ARROW -219A LEFTWARDS ARROW WITH STROKE -219B RIGHTWARDS ARROW WITH STROKE -219C LEFTWARDS WAVE ARROW -219D RIGHTWARDS WAVE ARROW -219E LEFTWARDS TWO HEADED ARROW -219F UPWARDS TWO HEADED ARROW -21A0 RIGHTWARDS TWO HEADED ARROW -21A1 DOWNWARDS TWO HEADED ARROW -21A2 LEFTWARDS ARROW WITH TAIL -21A3 RIGHTWARDS ARROW WITH TAIL -21A4 LEFTWARDS ARROW FROM BAR -21A5 UPWARDS ARROW FROM BAR -21A6 RIGHTWARDS ARROW FROM BAR -21A7 DOWNWARDS ARROW FROM BAR -21A8 UP DOWN ARROW WITH BASE -21A9 LEFTWARDS ARROW WITH HOOK -21AA RIGHTWARDS ARROW WITH HOOK -21AB LEFTWARDS ARROW WITH LOOP -21AC RIGHTWARDS ARROW WITH LOOP -21AD LEFT RIGHT WAVE ARROW -21AE LEFT RIGHT ARROW WITH STROKE -21AF DOWNWARDS ZIGZAG ARROW -21B0 UPWARDS ARROW WITH TIP LEFTWARDS -21B1 UPWARDS ARROW WITH TIP RIGHTWARDS -21B2 DOWNWARDS ARROW WITH TIP LEFTWARDS -21B3 DOWNWARDS ARROW WITH TIP RIGHTWARDS -21B4 RIGHTWARDS ARROW WITH CORNER DOWNWARDS -21B5 DOWNWARDS ARROW WITH CORNER LEFTWARDS -21B6 ANTICLOCKWISE TOP SEMICIRCLE ARROW -21B7 CLOCKWISE TOP SEMICIRCLE ARROW -21B8 NORTH WEST ARROW TO LONG BAR -21B9 LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR -21BA ANTICLOCKWISE OPEN CIRCLE ARROW -21BB CLOCKWISE OPEN CIRCLE ARROW -21BC LEFTWARDS HARPOON WITH BARB UPWARDS -21BD LEFTWARDS HARPOON WITH BARB DOWNWARDS -21BE UPWARDS HARPOON WITH BARB RIGHTWARDS -21BF UPWARDS HARPOON WITH BARB LEFTWARDS -21C0 RIGHTWARDS HARPOON WITH BARB UPWARDS -21C1 RIGHTWARDS HARPOON WITH BARB DOWNWARDS -21C2 DOWNWARDS HARPOON WITH BARB RIGHTWARDS -21C3 DOWNWARDS HARPOON WITH BARB LEFTWARDS -21C4 RIGHTWARDS ARROW OVER LEFTWARDS ARROW -21C5 UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW -21C6 LEFTWARDS ARROW OVER RIGHTWARDS ARROW -21C7 LEFTWARDS PAIRED ARROWS -21C8 UPWARDS PAIRED ARROWS -21C9 RIGHTWARDS PAIRED ARROWS -21CA DOWNWARDS PAIRED ARROWS -21CB LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON -21CC RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON -21CD LEFTWARDS DOUBLE ARROW WITH STROKE -21CE LEFT RIGHT DOUBLE ARROW WITH STROKE -21CF RIGHTWARDS DOUBLE ARROW WITH STROKE -21D0 LEFTWARDS DOUBLE ARROW -21D1 UPWARDS DOUBLE ARROW -21D2 RIGHTWARDS DOUBLE ARROW -21D3 DOWNWARDS DOUBLE ARROW -21D4 LEFT RIGHT DOUBLE ARROW -21D5 UP DOWN DOUBLE ARROW -21D6 NORTH WEST DOUBLE ARROW -21D7 NORTH EAST DOUBLE ARROW -21D8 SOUTH EAST DOUBLE ARROW -21D9 SOUTH WEST DOUBLE ARROW -21DA LEFTWARDS TRIPLE ARROW -21DB RIGHTWARDS TRIPLE ARROW -21DC LEFTWARDS SQUIGGLE ARROW -21DD RIGHTWARDS SQUIGGLE ARROW -21DE UPWARDS ARROW WITH DOUBLE STROKE -21DF DOWNWARDS ARROW WITH DOUBLE STROKE -21E0 LEFTWARDS DASHED ARROW -21E1 UPWARDS DASHED ARROW -21E2 RIGHTWARDS DASHED ARROW -21E3 DOWNWARDS DASHED ARROW -21E4 LEFTWARDS ARROW TO BAR -21E5 RIGHTWARDS ARROW TO BAR -21E6 LEFTWARDS WHITE ARROW -21E7 UPWARDS WHITE ARROW -21E8 RIGHTWARDS WHITE ARROW -21E9 DOWNWARDS WHITE ARROW -21EA UPWARDS WHITE ARROW FROM BAR -21EB UPWARDS WHITE ARROW ON PEDESTAL -21EC UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR -21ED UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR -21EE UPWARDS WHITE DOUBLE ARROW -21EF UPWARDS WHITE DOUBLE ARROW ON PEDESTAL -21F0 RIGHTWARDS WHITE ARROW FROM WALL -21F1 NORTH WEST ARROW TO CORNER -21F2 SOUTH EAST ARROW TO CORNER -21F3 UP DOWN WHITE ARROW -21F4 RIGHT ARROW WITH SMALL CIRCLE -21F5 DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW -21F6 THREE RIGHTWARDS ARROWS -21F7 LEFTWARDS ARROW WITH VERTICAL STROKE -21F8 RIGHTWARDS ARROW WITH VERTICAL STROKE -21F9 LEFT RIGHT ARROW WITH VERTICAL STROKE -21FA LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE -21FB RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE -21FC LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE -21FD LEFTWARDS OPEN-HEADED ARROW -21FE RIGHTWARDS OPEN-HEADED ARROW -21FF LEFT RIGHT OPEN-HEADED ARROW -2200 FOR ALL -2201 COMPLEMENT -2202 PARTIAL DIFFERENTIAL -2203 THERE EXISTS -2204 THERE DOES NOT EXIST -2205 EMPTY SET -2206 INCREMENT -2207 NABLA -2208 ELEMENT OF -2209 NOT AN ELEMENT OF -220A SMALL ELEMENT OF -220B CONTAINS AS MEMBER -220C DOES NOT CONTAIN AS MEMBER -220D SMALL CONTAINS AS MEMBER -220E END OF PROOF -220F N-ARY PRODUCT -2210 N-ARY COPRODUCT -2211 N-ARY SUMMATION -2212 MINUS SIGN -2213 MINUS-OR-PLUS SIGN -2214 DOT PLUS -2215 DIVISION SLASH -2216 SET MINUS -2217 ASTERISK OPERATOR -2218 RING OPERATOR -2219 BULLET OPERATOR -221A SQUARE ROOT -221B CUBE ROOT -221C FOURTH ROOT -221D PROPORTIONAL TO -221E INFINITY -221F RIGHT ANGLE -2220 ANGLE -2221 MEASURED ANGLE -2222 SPHERICAL ANGLE -2223 DIVIDES -2224 DOES NOT DIVIDE -2225 PARALLEL TO -2226 NOT PARALLEL TO -2227 LOGICAL AND -2228 LOGICAL OR -2229 INTERSECTION -222A UNION -222B INTEGRAL -222C DOUBLE INTEGRAL -222D TRIPLE INTEGRAL -222E CONTOUR INTEGRAL -222F SURFACE INTEGRAL -2230 VOLUME INTEGRAL -2231 CLOCKWISE INTEGRAL -2232 CLOCKWISE CONTOUR INTEGRAL -2233 ANTICLOCKWISE CONTOUR INTEGRAL -2234 THEREFORE -2235 BECAUSE -2236 RATIO -2237 PROPORTION -2238 DOT MINUS -2239 EXCESS -223A GEOMETRIC PROPORTION -223B HOMOTHETIC -223C TILDE OPERATOR -223D REVERSED TILDE -223E INVERTED LAZY S -223F SINE WAVE -2240 WREATH PRODUCT -2241 NOT TILDE -2242 MINUS TILDE -2243 ASYMPTOTICALLY EQUAL TO -2244 NOT ASYMPTOTICALLY EQUAL TO -2245 APPROXIMATELY EQUAL TO -2246 APPROXIMATELY BUT NOT ACTUALLY EQUAL TO -2247 NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO -2248 ALMOST EQUAL TO -2249 NOT ALMOST EQUAL TO -224A ALMOST EQUAL OR EQUAL TO -224B TRIPLE TILDE -224C ALL EQUAL TO -224D EQUIVALENT TO -224E GEOMETRICALLY EQUIVALENT TO -224F DIFFERENCE BETWEEN -2250 APPROACHES THE LIMIT -2251 GEOMETRICALLY EQUAL TO -2252 APPROXIMATELY EQUAL TO OR THE IMAGE OF -2253 IMAGE OF OR APPROXIMATELY EQUAL TO -2254 COLON EQUALS -2255 EQUALS COLON -2256 RING IN EQUAL TO -2257 RING EQUAL TO -2258 CORRESPONDS TO -2259 ESTIMATES -225A EQUIANGULAR TO -225B STAR EQUALS -225C DELTA EQUAL TO -225D EQUAL TO BY DEFINITION -225E MEASURED BY -225F QUESTIONED EQUAL TO -2260 NOT EQUAL TO -2261 IDENTICAL TO -2262 NOT IDENTICAL TO -2263 STRICTLY EQUIVALENT TO -2264 LESS-THAN OR EQUAL TO -2265 GREATER-THAN OR EQUAL TO -2266 LESS-THAN OVER EQUAL TO -2267 GREATER-THAN OVER EQUAL TO -2268 LESS-THAN BUT NOT EQUAL TO -2269 GREATER-THAN BUT NOT EQUAL TO -226A MUCH LESS-THAN -226B MUCH GREATER-THAN -226C BETWEEN -226D NOT EQUIVALENT TO -226E NOT LESS-THAN -226F NOT GREATER-THAN -2270 NEITHER LESS-THAN NOR EQUAL TO -2271 NEITHER GREATER-THAN NOR EQUAL TO -2272 LESS-THAN OR EQUIVALENT TO -2273 GREATER-THAN OR EQUIVALENT TO -2274 NEITHER LESS-THAN NOR EQUIVALENT TO -2275 NEITHER GREATER-THAN NOR EQUIVALENT TO -2276 LESS-THAN OR GREATER-THAN -2277 GREATER-THAN OR LESS-THAN -2278 NEITHER LESS-THAN NOR GREATER-THAN -2279 NEITHER GREATER-THAN NOR LESS-THAN -227A PRECEDES -227B SUCCEEDS -227C PRECEDES OR EQUAL TO -227D SUCCEEDS OR EQUAL TO -227E PRECEDES OR EQUIVALENT TO -227F SUCCEEDS OR EQUIVALENT TO -2280 DOES NOT PRECEDE -2281 DOES NOT SUCCEED -2282 SUBSET OF -2283 SUPERSET OF -2284 NOT A SUBSET OF -2285 NOT A SUPERSET OF -2286 SUBSET OF OR EQUAL TO -2287 SUPERSET OF OR EQUAL TO -2288 NEITHER A SUBSET OF NOR EQUAL TO -2289 NEITHER A SUPERSET OF NOR EQUAL TO -228A SUBSET OF WITH NOT EQUAL TO -228B SUPERSET OF WITH NOT EQUAL TO -228C MULTISET -228D MULTISET MULTIPLICATION -228E MULTISET UNION -228F SQUARE IMAGE OF -2290 SQUARE ORIGINAL OF -2291 SQUARE IMAGE OF OR EQUAL TO -2292 SQUARE ORIGINAL OF OR EQUAL TO -2293 SQUARE CAP -2294 SQUARE CUP -2295 CIRCLED PLUS -2296 CIRCLED MINUS -2297 CIRCLED TIMES -2298 CIRCLED DIVISION SLASH -2299 CIRCLED DOT OPERATOR -229A CIRCLED RING OPERATOR -229B CIRCLED ASTERISK OPERATOR -229C CIRCLED EQUALS -229D CIRCLED DASH -229E SQUARED PLUS -229F SQUARED MINUS -22A0 SQUARED TIMES -22A1 SQUARED DOT OPERATOR -22A2 RIGHT TACK -22A3 LEFT TACK -22A4 DOWN TACK -22A5 UP TACK -22A6 ASSERTION -22A7 MODELS -22A8 TRUE -22A9 FORCES -22AA TRIPLE VERTICAL BAR RIGHT TURNSTILE -22AB DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE -22AC DOES NOT PROVE -22AD NOT TRUE -22AE DOES NOT FORCE -22AF NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE -22B0 PRECEDES UNDER RELATION -22B1 SUCCEEDS UNDER RELATION -22B2 NORMAL SUBGROUP OF -22B3 CONTAINS AS NORMAL SUBGROUP -22B4 NORMAL SUBGROUP OF OR EQUAL TO -22B5 CONTAINS AS NORMAL SUBGROUP OR EQUAL TO -22B6 ORIGINAL OF -22B7 IMAGE OF -22B8 MULTIMAP -22B9 HERMITIAN CONJUGATE MATRIX -22BA INTERCALATE -22BB XOR -22BC NAND -22BD NOR -22BE RIGHT ANGLE WITH ARC -22BF RIGHT TRIANGLE -22C0 N-ARY LOGICAL AND -22C1 N-ARY LOGICAL OR -22C2 N-ARY INTERSECTION -22C3 N-ARY UNION -22C4 DIAMOND OPERATOR -22C5 DOT OPERATOR -22C6 STAR OPERATOR -22C7 DIVISION TIMES -22C8 BOWTIE -22C9 LEFT NORMAL FACTOR SEMIDIRECT PRODUCT -22CA RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT -22CB LEFT SEMIDIRECT PRODUCT -22CC RIGHT SEMIDIRECT PRODUCT -22CD REVERSED TILDE EQUALS -22CE CURLY LOGICAL OR -22CF CURLY LOGICAL AND -22D0 DOUBLE SUBSET -22D1 DOUBLE SUPERSET -22D2 DOUBLE INTERSECTION -22D3 DOUBLE UNION -22D4 PITCHFORK -22D5 EQUAL AND PARALLEL TO -22D6 LESS-THAN WITH DOT -22D7 GREATER-THAN WITH DOT -22D8 VERY MUCH LESS-THAN -22D9 VERY MUCH GREATER-THAN -22DA LESS-THAN EQUAL TO OR GREATER-THAN -22DB GREATER-THAN EQUAL TO OR LESS-THAN -22DC EQUAL TO OR LESS-THAN -22DD EQUAL TO OR GREATER-THAN -22DE EQUAL TO OR PRECEDES -22DF EQUAL TO OR SUCCEEDS -22E0 DOES NOT PRECEDE OR EQUAL -22E1 DOES NOT SUCCEED OR EQUAL -22E2 NOT SQUARE IMAGE OF OR EQUAL TO -22E3 NOT SQUARE ORIGINAL OF OR EQUAL TO -22E4 SQUARE IMAGE OF OR NOT EQUAL TO -22E5 SQUARE ORIGINAL OF OR NOT EQUAL TO -22E6 LESS-THAN BUT NOT EQUIVALENT TO -22E7 GREATER-THAN BUT NOT EQUIVALENT TO -22E8 PRECEDES BUT NOT EQUIVALENT TO -22E9 SUCCEEDS BUT NOT EQUIVALENT TO -22EA NOT NORMAL SUBGROUP OF -22EB DOES NOT CONTAIN AS NORMAL SUBGROUP -22EC NOT NORMAL SUBGROUP OF OR EQUAL TO -22ED DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL -22EE VERTICAL ELLIPSIS -22EF MIDLINE HORIZONTAL ELLIPSIS -22F0 UP RIGHT DIAGONAL ELLIPSIS -22F1 DOWN RIGHT DIAGONAL ELLIPSIS -22F2 ELEMENT OF WITH LONG HORIZONTAL STROKE -22F3 ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE -22F4 SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE -22F5 ELEMENT OF WITH DOT ABOVE -22F6 ELEMENT OF WITH OVERBAR -22F7 SMALL ELEMENT OF WITH OVERBAR -22F8 ELEMENT OF WITH UNDERBAR -22F9 ELEMENT OF WITH TWO HORIZONTAL STROKES -22FA CONTAINS WITH LONG HORIZONTAL STROKE -22FB CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE -22FC SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE -22FD CONTAINS WITH OVERBAR -22FE SMALL CONTAINS WITH OVERBAR -22FF Z NOTATION BAG MEMBERSHIP -2300 DIAMETER SIGN -2301 ELECTRIC ARROW -2302 HOUSE -2303 UP ARROWHEAD -2304 DOWN ARROWHEAD -2305 PROJECTIVE -2306 PERSPECTIVE -2307 WAVY LINE -2308 LEFT CEILING -2309 RIGHT CEILING -230A LEFT FLOOR -230B RIGHT FLOOR -230C BOTTOM RIGHT CROP -230D BOTTOM LEFT CROP -230E TOP RIGHT CROP -230F TOP LEFT CROP -2310 REVERSED NOT SIGN -2311 SQUARE LOZENGE -2312 ARC -2313 SEGMENT -2314 SECTOR -2315 TELEPHONE RECORDER -2316 POSITION INDICATOR -2317 VIEWDATA SQUARE -2318 PLACE OF INTEREST SIGN -2319 TURNED NOT SIGN -231A WATCH -231B HOURGLASS -231C TOP LEFT CORNER -231D TOP RIGHT CORNER -231E BOTTOM LEFT CORNER -231F BOTTOM RIGHT CORNER -2320 TOP HALF INTEGRAL -2321 BOTTOM HALF INTEGRAL -2322 FROWN -2323 SMILE -2324 UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS -2325 OPTION KEY -2326 ERASE TO THE RIGHT -2327 X IN A RECTANGLE BOX -2328 KEYBOARD -2329 LEFT-POINTING ANGLE BRACKET -232A RIGHT-POINTING ANGLE BRACKET -232B ERASE TO THE LEFT -232C BENZENE RING -232D CYLINDRICITY -232E ALL AROUND-PROFILE -232F SYMMETRY -2330 TOTAL RUNOUT -2331 DIMENSION ORIGIN -2332 CONICAL TAPER -2333 SLOPE -2334 COUNTERBORE -2335 COUNTERSINK -2336 APL FUNCTIONAL SYMBOL I-BEAM -2337 APL FUNCTIONAL SYMBOL SQUISH QUAD -2338 APL FUNCTIONAL SYMBOL QUAD EQUAL -2339 APL FUNCTIONAL SYMBOL QUAD DIVIDE -233A APL FUNCTIONAL SYMBOL QUAD DIAMOND -233B APL FUNCTIONAL SYMBOL QUAD JOT -233C APL FUNCTIONAL SYMBOL QUAD CIRCLE -233D APL FUNCTIONAL SYMBOL CIRCLE STILE -233E APL FUNCTIONAL SYMBOL CIRCLE JOT -233F APL FUNCTIONAL SYMBOL SLASH BAR -2340 APL FUNCTIONAL SYMBOL BACKSLASH BAR -2341 APL FUNCTIONAL SYMBOL QUAD SLASH -2342 APL FUNCTIONAL SYMBOL QUAD BACKSLASH -2343 APL FUNCTIONAL SYMBOL QUAD LESS-THAN -2344 APL FUNCTIONAL SYMBOL QUAD GREATER-THAN -2345 APL FUNCTIONAL SYMBOL LEFTWARDS VANE -2346 APL FUNCTIONAL SYMBOL RIGHTWARDS VANE -2347 APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW -2348 APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW -2349 APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH -234A APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR -234B APL FUNCTIONAL SYMBOL DELTA STILE -234C APL FUNCTIONAL SYMBOL QUAD DOWN CARET -234D APL FUNCTIONAL SYMBOL QUAD DELTA -234E APL FUNCTIONAL SYMBOL DOWN TACK JOT -234F APL FUNCTIONAL SYMBOL UPWARDS VANE -2350 APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW -2351 APL FUNCTIONAL SYMBOL UP TACK OVERBAR -2352 APL FUNCTIONAL SYMBOL DEL STILE -2353 APL FUNCTIONAL SYMBOL QUAD UP CARET -2354 APL FUNCTIONAL SYMBOL QUAD DEL -2355 APL FUNCTIONAL SYMBOL UP TACK JOT -2356 APL FUNCTIONAL SYMBOL DOWNWARDS VANE -2357 APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW -2358 APL FUNCTIONAL SYMBOL QUOTE UNDERBAR -2359 APL FUNCTIONAL SYMBOL DELTA UNDERBAR -235A APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR -235B APL FUNCTIONAL SYMBOL JOT UNDERBAR -235C APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR -235D APL FUNCTIONAL SYMBOL UP SHOE JOT -235E APL FUNCTIONAL SYMBOL QUOTE QUAD -235F APL FUNCTIONAL SYMBOL CIRCLE STAR -2360 APL FUNCTIONAL SYMBOL QUAD COLON -2361 APL FUNCTIONAL SYMBOL UP TACK DIAERESIS -2362 APL FUNCTIONAL SYMBOL DEL DIAERESIS -2363 APL FUNCTIONAL SYMBOL STAR DIAERESIS -2364 APL FUNCTIONAL SYMBOL JOT DIAERESIS -2365 APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS -2366 APL FUNCTIONAL SYMBOL DOWN SHOE STILE -2367 APL FUNCTIONAL SYMBOL LEFT SHOE STILE -2368 APL FUNCTIONAL SYMBOL TILDE DIAERESIS -2369 APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS -236A APL FUNCTIONAL SYMBOL COMMA BAR -236B APL FUNCTIONAL SYMBOL DEL TILDE -236C APL FUNCTIONAL SYMBOL ZILDE -236D APL FUNCTIONAL SYMBOL STILE TILDE -236E APL FUNCTIONAL SYMBOL SEMICOLON UNDERBAR -236F APL FUNCTIONAL SYMBOL QUAD NOT EQUAL -2370 APL FUNCTIONAL SYMBOL QUAD QUESTION -2371 APL FUNCTIONAL SYMBOL DOWN CARET TILDE -2372 APL FUNCTIONAL SYMBOL UP CARET TILDE -2373 APL FUNCTIONAL SYMBOL IOTA -2374 APL FUNCTIONAL SYMBOL RHO -2375 APL FUNCTIONAL SYMBOL OMEGA -2376 APL FUNCTIONAL SYMBOL ALPHA UNDERBAR -2377 APL FUNCTIONAL SYMBOL EPSILON UNDERBAR -2378 APL FUNCTIONAL SYMBOL IOTA UNDERBAR -2379 APL FUNCTIONAL SYMBOL OMEGA UNDERBAR -237A APL FUNCTIONAL SYMBOL ALPHA -237B NOT CHECK MARK -237C RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW -237D SHOULDERED OPEN BOX -237E BELL SYMBOL -237F VERTICAL LINE WITH MIDDLE DOT -2380 INSERTION SYMBOL -2381 CONTINUOUS UNDERLINE SYMBOL -2382 DISCONTINUOUS UNDERLINE SYMBOL -2383 EMPHASIS SYMBOL -2384 COMPOSITION SYMBOL -2385 WHITE SQUARE WITH CENTRE VERTICAL LINE -2386 ENTER SYMBOL -2387 ALTERNATIVE KEY SYMBOL -2388 HELM SYMBOL -2389 CIRCLED HORIZONTAL BAR WITH NOTCH -238A CIRCLED TRIANGLE DOWN -238B BROKEN CIRCLE WITH NORTHWEST ARROW -238C UNDO SYMBOL -238D MONOSTABLE SYMBOL -238E HYSTERESIS SYMBOL -238F OPEN-CIRCUIT-OUTPUT H-TYPE SYMBOL -2390 OPEN-CIRCUIT-OUTPUT L-TYPE SYMBOL -2391 PASSIVE-PULL-DOWN-OUTPUT SYMBOL -2392 PASSIVE-PULL-UP-OUTPUT SYMBOL -2393 DIRECT CURRENT SYMBOL FORM TWO -2394 SOFTWARE-FUNCTION SYMBOL -2395 APL FUNCTIONAL SYMBOL QUAD -2396 DECIMAL SEPARATOR KEY SYMBOL -2397 PREVIOUS PAGE -2398 NEXT PAGE -2399 PRINT SCREEN SYMBOL -239A CLEAR SCREEN SYMBOL -239B LEFT PARENTHESIS UPPER HOOK -239C LEFT PARENTHESIS EXTENSION -239D LEFT PARENTHESIS LOWER HOOK -239E RIGHT PARENTHESIS UPPER HOOK -239F RIGHT PARENTHESIS EXTENSION -23A0 RIGHT PARENTHESIS LOWER HOOK -23A1 LEFT SQUARE BRACKET UPPER CORNER -23A2 LEFT SQUARE BRACKET EXTENSION -23A3 LEFT SQUARE BRACKET LOWER CORNER -23A4 RIGHT SQUARE BRACKET UPPER CORNER -23A5 RIGHT SQUARE BRACKET EXTENSION -23A6 RIGHT SQUARE BRACKET LOWER CORNER -23A7 LEFT CURLY BRACKET UPPER HOOK -23A8 LEFT CURLY BRACKET MIDDLE PIECE -23A9 LEFT CURLY BRACKET LOWER HOOK -23AA CURLY BRACKET EXTENSION -23AB RIGHT CURLY BRACKET UPPER HOOK -23AC RIGHT CURLY BRACKET MIDDLE PIECE -23AD RIGHT CURLY BRACKET LOWER HOOK -23AE INTEGRAL EXTENSION -23AF HORIZONTAL LINE EXTENSION -23B0 UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION -23B1 UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION -23B2 SUMMATION TOP -23B3 SUMMATION BOTTOM -23B4 TOP SQUARE BRACKET -23B5 BOTTOM SQUARE BRACKET -23B6 BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET -23B7 RADICAL SYMBOL BOTTOM -23B8 LEFT VERTICAL BOX LINE -23B9 RIGHT VERTICAL BOX LINE -23BA HORIZONTAL SCAN LINE-1 -23BB HORIZONTAL SCAN LINE-3 -23BC HORIZONTAL SCAN LINE-7 -23BD HORIZONTAL SCAN LINE-9 -23BE DENTISTRY SYMBOL LIGHT VERTICAL AND TOP RIGHT -23BF DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM RIGHT -23C0 DENTISTRY SYMBOL LIGHT VERTICAL WITH CIRCLE -23C1 DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH CIRCLE -23C2 DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH CIRCLE -23C3 DENTISTRY SYMBOL LIGHT VERTICAL WITH TRIANGLE -23C4 DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH TRIANGLE -23C5 DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH TRIANGLE -23C6 DENTISTRY SYMBOL LIGHT VERTICAL AND WAVE -23C7 DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH WAVE -23C8 DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH WAVE -23C9 DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL -23CA DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL -23CB DENTISTRY SYMBOL LIGHT VERTICAL AND TOP LEFT -23CC DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM LEFT -23CD SQUARE FOOT -23CE RETURN SYMBOL -2400 SYMBOL FOR NULL -2401 SYMBOL FOR START OF HEADING -2402 SYMBOL FOR START OF TEXT -2403 SYMBOL FOR END OF TEXT -2404 SYMBOL FOR END OF TRANSMISSION -2405 SYMBOL FOR ENQUIRY -2406 SYMBOL FOR ACKNOWLEDGE -2407 SYMBOL FOR BELL -2408 SYMBOL FOR BACKSPACE -2409 SYMBOL FOR HORIZONTAL TABULATION -240A SYMBOL FOR LINE FEED -240B SYMBOL FOR VERTICAL TABULATION -240C SYMBOL FOR FORM FEED -240D SYMBOL FOR CARRIAGE RETURN -240E SYMBOL FOR SHIFT OUT -240F SYMBOL FOR SHIFT IN -2410 SYMBOL FOR DATA LINK ESCAPE -2411 SYMBOL FOR DEVICE CONTROL ONE -2412 SYMBOL FOR DEVICE CONTROL TWO -2413 SYMBOL FOR DEVICE CONTROL THREE -2414 SYMBOL FOR DEVICE CONTROL FOUR -2415 SYMBOL FOR NEGATIVE ACKNOWLEDGE -2416 SYMBOL FOR SYNCHRONOUS IDLE -2417 SYMBOL FOR END OF TRANSMISSION BLOCK -2418 SYMBOL FOR CANCEL -2419 SYMBOL FOR END OF MEDIUM -241A SYMBOL FOR SUBSTITUTE -241B SYMBOL FOR ESCAPE -241C SYMBOL FOR FILE SEPARATOR -241D SYMBOL FOR GROUP SEPARATOR -241E SYMBOL FOR RECORD SEPARATOR -241F SYMBOL FOR UNIT SEPARATOR -2420 SYMBOL FOR SPACE -2421 SYMBOL FOR DELETE -2422 BLANK SYMBOL -2423 OPEN BOX -2424 SYMBOL FOR NEWLINE -2425 SYMBOL FOR DELETE FORM TWO -2426 SYMBOL FOR SUBSTITUTE FORM TWO -2440 OCR HOOK -2441 OCR CHAIR -2442 OCR FORK -2443 OCR INVERTED FORK -2444 OCR BELT BUCKLE -2445 OCR BOW TIE -2446 OCR BRANCH BANK IDENTIFICATION -2447 OCR AMOUNT OF CHECK -2448 OCR DASH -2449 OCR CUSTOMER ACCOUNT NUMBER -244A OCR DOUBLE BACKSLASH -2460 CIRCLED DIGIT ONE -2461 CIRCLED DIGIT TWO -2462 CIRCLED DIGIT THREE -2463 CIRCLED DIGIT FOUR -2464 CIRCLED DIGIT FIVE -2465 CIRCLED DIGIT SIX -2466 CIRCLED DIGIT SEVEN -2467 CIRCLED DIGIT EIGHT -2468 CIRCLED DIGIT NINE -2469 CIRCLED NUMBER TEN -246A CIRCLED NUMBER ELEVEN -246B CIRCLED NUMBER TWELVE -246C CIRCLED NUMBER THIRTEEN -246D CIRCLED NUMBER FOURTEEN -246E CIRCLED NUMBER FIFTEEN -246F CIRCLED NUMBER SIXTEEN -2470 CIRCLED NUMBER SEVENTEEN -2471 CIRCLED NUMBER EIGHTEEN -2472 CIRCLED NUMBER NINETEEN -2473 CIRCLED NUMBER TWENTY -2474 PARENTHESIZED DIGIT ONE -2475 PARENTHESIZED DIGIT TWO -2476 PARENTHESIZED DIGIT THREE -2477 PARENTHESIZED DIGIT FOUR -2478 PARENTHESIZED DIGIT FIVE -2479 PARENTHESIZED DIGIT SIX -247A PARENTHESIZED DIGIT SEVEN -247B PARENTHESIZED DIGIT EIGHT -247C PARENTHESIZED DIGIT NINE -247D PARENTHESIZED NUMBER TEN -247E PARENTHESIZED NUMBER ELEVEN -247F PARENTHESIZED NUMBER TWELVE -2480 PARENTHESIZED NUMBER THIRTEEN -2481 PARENTHESIZED NUMBER FOURTEEN -2482 PARENTHESIZED NUMBER FIFTEEN -2483 PARENTHESIZED NUMBER SIXTEEN -2484 PARENTHESIZED NUMBER SEVENTEEN -2485 PARENTHESIZED NUMBER EIGHTEEN -2486 PARENTHESIZED NUMBER NINETEEN -2487 PARENTHESIZED NUMBER TWENTY -2488 DIGIT ONE FULL STOP -2489 DIGIT TWO FULL STOP -248A DIGIT THREE FULL STOP -248B DIGIT FOUR FULL STOP -248C DIGIT FIVE FULL STOP -248D DIGIT SIX FULL STOP -248E DIGIT SEVEN FULL STOP -248F DIGIT EIGHT FULL STOP -2490 DIGIT NINE FULL STOP -2491 NUMBER TEN FULL STOP -2492 NUMBER ELEVEN FULL STOP -2493 NUMBER TWELVE FULL STOP -2494 NUMBER THIRTEEN FULL STOP -2495 NUMBER FOURTEEN FULL STOP -2496 NUMBER FIFTEEN FULL STOP -2497 NUMBER SIXTEEN FULL STOP -2498 NUMBER SEVENTEEN FULL STOP -2499 NUMBER EIGHTEEN FULL STOP -249A NUMBER NINETEEN FULL STOP -249B NUMBER TWENTY FULL STOP -249C PARENTHESIZED LATIN SMALL LETTER A -249D PARENTHESIZED LATIN SMALL LETTER B -249E PARENTHESIZED LATIN SMALL LETTER C -249F PARENTHESIZED LATIN SMALL LETTER D -24A0 PARENTHESIZED LATIN SMALL LETTER E -24A1 PARENTHESIZED LATIN SMALL LETTER F -24A2 PARENTHESIZED LATIN SMALL LETTER G -24A3 PARENTHESIZED LATIN SMALL LETTER H -24A4 PARENTHESIZED LATIN SMALL LETTER I -24A5 PARENTHESIZED LATIN SMALL LETTER J -24A6 PARENTHESIZED LATIN SMALL LETTER K -24A7 PARENTHESIZED LATIN SMALL LETTER L -24A8 PARENTHESIZED LATIN SMALL LETTER M -24A9 PARENTHESIZED LATIN SMALL LETTER N -24AA PARENTHESIZED LATIN SMALL LETTER O -24AB PARENTHESIZED LATIN SMALL LETTER P -24AC PARENTHESIZED LATIN SMALL LETTER Q -24AD PARENTHESIZED LATIN SMALL LETTER R -24AE PARENTHESIZED LATIN SMALL LETTER S -24AF PARENTHESIZED LATIN SMALL LETTER T -24B0 PARENTHESIZED LATIN SMALL LETTER U -24B1 PARENTHESIZED LATIN SMALL LETTER V -24B2 PARENTHESIZED LATIN SMALL LETTER W -24B3 PARENTHESIZED LATIN SMALL LETTER X -24B4 PARENTHESIZED LATIN SMALL LETTER Y -24B5 PARENTHESIZED LATIN SMALL LETTER Z -24B6 CIRCLED LATIN CAPITAL LETTER A -24B7 CIRCLED LATIN CAPITAL LETTER B -24B8 CIRCLED LATIN CAPITAL LETTER C -24B9 CIRCLED LATIN CAPITAL LETTER D -24BA CIRCLED LATIN CAPITAL LETTER E -24BB CIRCLED LATIN CAPITAL LETTER F -24BC CIRCLED LATIN CAPITAL LETTER G -24BD CIRCLED LATIN CAPITAL LETTER H -24BE CIRCLED LATIN CAPITAL LETTER I -24BF CIRCLED LATIN CAPITAL LETTER J -24C0 CIRCLED LATIN CAPITAL LETTER K -24C1 CIRCLED LATIN CAPITAL LETTER L -24C2 CIRCLED LATIN CAPITAL LETTER M -24C3 CIRCLED LATIN CAPITAL LETTER N -24C4 CIRCLED LATIN CAPITAL LETTER O -24C5 CIRCLED LATIN CAPITAL LETTER P -24C6 CIRCLED LATIN CAPITAL LETTER Q -24C7 CIRCLED LATIN CAPITAL LETTER R -24C8 CIRCLED LATIN CAPITAL LETTER S -24C9 CIRCLED LATIN CAPITAL LETTER T -24CA CIRCLED LATIN CAPITAL LETTER U -24CB CIRCLED LATIN CAPITAL LETTER V -24CC CIRCLED LATIN CAPITAL LETTER W -24CD CIRCLED LATIN CAPITAL LETTER X -24CE CIRCLED LATIN CAPITAL LETTER Y -24CF CIRCLED LATIN CAPITAL LETTER Z -24D0 CIRCLED LATIN SMALL LETTER A -24D1 CIRCLED LATIN SMALL LETTER B -24D2 CIRCLED LATIN SMALL LETTER C -24D3 CIRCLED LATIN SMALL LETTER D -24D4 CIRCLED LATIN SMALL LETTER E -24D5 CIRCLED LATIN SMALL LETTER F -24D6 CIRCLED LATIN SMALL LETTER G -24D7 CIRCLED LATIN SMALL LETTER H -24D8 CIRCLED LATIN SMALL LETTER I -24D9 CIRCLED LATIN SMALL LETTER J -24DA CIRCLED LATIN SMALL LETTER K -24DB CIRCLED LATIN SMALL LETTER L -24DC CIRCLED LATIN SMALL LETTER M -24DD CIRCLED LATIN SMALL LETTER N -24DE CIRCLED LATIN SMALL LETTER O -24DF CIRCLED LATIN SMALL LETTER P -24E0 CIRCLED LATIN SMALL LETTER Q -24E1 CIRCLED LATIN SMALL LETTER R -24E2 CIRCLED LATIN SMALL LETTER S -24E3 CIRCLED LATIN SMALL LETTER T -24E4 CIRCLED LATIN SMALL LETTER U -24E5 CIRCLED LATIN SMALL LETTER V -24E6 CIRCLED LATIN SMALL LETTER W -24E7 CIRCLED LATIN SMALL LETTER X -24E8 CIRCLED LATIN SMALL LETTER Y -24E9 CIRCLED LATIN SMALL LETTER Z -24EA CIRCLED DIGIT ZERO -24EB NEGATIVE CIRCLED NUMBER ELEVEN -24EC NEGATIVE CIRCLED NUMBER TWELVE -24ED NEGATIVE CIRCLED NUMBER THIRTEEN -24EE NEGATIVE CIRCLED NUMBER FOURTEEN -24EF NEGATIVE CIRCLED NUMBER FIFTEEN -24F0 NEGATIVE CIRCLED NUMBER SIXTEEN -24F1 NEGATIVE CIRCLED NUMBER SEVENTEEN -24F2 NEGATIVE CIRCLED NUMBER EIGHTEEN -24F3 NEGATIVE CIRCLED NUMBER NINETEEN -24F4 NEGATIVE CIRCLED NUMBER TWENTY -24F5 DOUBLE CIRCLED DIGIT ONE -24F6 DOUBLE CIRCLED DIGIT TWO -24F7 DOUBLE CIRCLED DIGIT THREE -24F8 DOUBLE CIRCLED DIGIT FOUR -24F9 DOUBLE CIRCLED DIGIT FIVE -24FA DOUBLE CIRCLED DIGIT SIX -24FB DOUBLE CIRCLED DIGIT SEVEN -24FC DOUBLE CIRCLED DIGIT EIGHT -24FD DOUBLE CIRCLED DIGIT NINE -24FE DOUBLE CIRCLED NUMBER TEN -2500 BOX DRAWINGS LIGHT HORIZONTAL -2501 BOX DRAWINGS HEAVY HORIZONTAL -2502 BOX DRAWINGS LIGHT VERTICAL -2503 BOX DRAWINGS HEAVY VERTICAL -2504 BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL -2505 BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL -2506 BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL -2507 BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL -2508 BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL -2509 BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL -250A BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL -250B BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL -250C BOX DRAWINGS LIGHT DOWN AND RIGHT -250D BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY -250E BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT -250F BOX DRAWINGS HEAVY DOWN AND RIGHT -2510 BOX DRAWINGS LIGHT DOWN AND LEFT -2511 BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY -2512 BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT -2513 BOX DRAWINGS HEAVY DOWN AND LEFT -2514 BOX DRAWINGS LIGHT UP AND RIGHT -2515 BOX DRAWINGS UP LIGHT AND RIGHT HEAVY -2516 BOX DRAWINGS UP HEAVY AND RIGHT LIGHT -2517 BOX DRAWINGS HEAVY UP AND RIGHT -2518 BOX DRAWINGS LIGHT UP AND LEFT -2519 BOX DRAWINGS UP LIGHT AND LEFT HEAVY -251A BOX DRAWINGS UP HEAVY AND LEFT LIGHT -251B BOX DRAWINGS HEAVY UP AND LEFT -251C BOX DRAWINGS LIGHT VERTICAL AND RIGHT -251D BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY -251E BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT -251F BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT -2520 BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT -2521 BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY -2522 BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY -2523 BOX DRAWINGS HEAVY VERTICAL AND RIGHT -2524 BOX DRAWINGS LIGHT VERTICAL AND LEFT -2525 BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY -2526 BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT -2527 BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT -2528 BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT -2529 BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY -252A BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY -252B BOX DRAWINGS HEAVY VERTICAL AND LEFT -252C BOX DRAWINGS LIGHT DOWN AND HORIZONTAL -252D BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT -252E BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT -252F BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY -2530 BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT -2531 BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY -2532 BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY -2533 BOX DRAWINGS HEAVY DOWN AND HORIZONTAL -2534 BOX DRAWINGS LIGHT UP AND HORIZONTAL -2535 BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT -2536 BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT -2537 BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY -2538 BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT -2539 BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY -253A BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY -253B BOX DRAWINGS HEAVY UP AND HORIZONTAL -253C BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL -253D BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT -253E BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT -253F BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY -2540 BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT -2541 BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT -2542 BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT -2543 BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT -2544 BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT -2545 BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT -2546 BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT -2547 BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY -2548 BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY -2549 BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY -254A BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY -254B BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL -254C BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL -254D BOX DRAWINGS HEAVY DOUBLE DASH HORIZONTAL -254E BOX DRAWINGS LIGHT DOUBLE DASH VERTICAL -254F BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL -2550 BOX DRAWINGS DOUBLE HORIZONTAL -2551 BOX DRAWINGS DOUBLE VERTICAL -2552 BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE -2553 BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE -2554 BOX DRAWINGS DOUBLE DOWN AND RIGHT -2555 BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE -2556 BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE -2557 BOX DRAWINGS DOUBLE DOWN AND LEFT -2558 BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE -2559 BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE -255A BOX DRAWINGS DOUBLE UP AND RIGHT -255B BOX DRAWINGS UP SINGLE AND LEFT DOUBLE -255C BOX DRAWINGS UP DOUBLE AND LEFT SINGLE -255D BOX DRAWINGS DOUBLE UP AND LEFT -255E BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE -255F BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE -2560 BOX DRAWINGS DOUBLE VERTICAL AND RIGHT -2561 BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE -2562 BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE -2563 BOX DRAWINGS DOUBLE VERTICAL AND LEFT -2564 BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE -2565 BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE -2566 BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL -2567 BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE -2568 BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE -2569 BOX DRAWINGS DOUBLE UP AND HORIZONTAL -256A BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE -256B BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE -256C BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL -256D BOX DRAWINGS LIGHT ARC DOWN AND RIGHT -256E BOX DRAWINGS LIGHT ARC DOWN AND LEFT -256F BOX DRAWINGS LIGHT ARC UP AND LEFT -2570 BOX DRAWINGS LIGHT ARC UP AND RIGHT -2571 BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT -2572 BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT -2573 BOX DRAWINGS LIGHT DIAGONAL CROSS -2574 BOX DRAWINGS LIGHT LEFT -2575 BOX DRAWINGS LIGHT UP -2576 BOX DRAWINGS LIGHT RIGHT -2577 BOX DRAWINGS LIGHT DOWN -2578 BOX DRAWINGS HEAVY LEFT -2579 BOX DRAWINGS HEAVY UP -257A BOX DRAWINGS HEAVY RIGHT -257B BOX DRAWINGS HEAVY DOWN -257C BOX DRAWINGS LIGHT LEFT AND HEAVY RIGHT -257D BOX DRAWINGS LIGHT UP AND HEAVY DOWN -257E BOX DRAWINGS HEAVY LEFT AND LIGHT RIGHT -257F BOX DRAWINGS HEAVY UP AND LIGHT DOWN -2580 UPPER HALF BLOCK -2581 LOWER ONE EIGHTH BLOCK -2582 LOWER ONE QUARTER BLOCK -2583 LOWER THREE EIGHTHS BLOCK -2584 LOWER HALF BLOCK -2585 LOWER FIVE EIGHTHS BLOCK -2586 LOWER THREE QUARTERS BLOCK -2587 LOWER SEVEN EIGHTHS BLOCK -2588 FULL BLOCK -2589 LEFT SEVEN EIGHTHS BLOCK -258A LEFT THREE QUARTERS BLOCK -258B LEFT FIVE EIGHTHS BLOCK -258C LEFT HALF BLOCK -258D LEFT THREE EIGHTHS BLOCK -258E LEFT ONE QUARTER BLOCK -258F LEFT ONE EIGHTH BLOCK -2590 RIGHT HALF BLOCK -2591 LIGHT SHADE -2592 MEDIUM SHADE -2593 DARK SHADE -2594 UPPER ONE EIGHTH BLOCK -2595 RIGHT ONE EIGHTH BLOCK -2596 QUADRANT LOWER LEFT -2597 QUADRANT LOWER RIGHT -2598 QUADRANT UPPER LEFT -2599 QUADRANT UPPER LEFT AND LOWER LEFT AND LOWER RIGHT -259A QUADRANT UPPER LEFT AND LOWER RIGHT -259B QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER LEFT -259C QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER RIGHT -259D QUADRANT UPPER RIGHT -259E QUADRANT UPPER RIGHT AND LOWER LEFT -259F QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT -25A0 BLACK SQUARE -25A1 WHITE SQUARE -25A2 WHITE SQUARE WITH ROUNDED CORNERS -25A3 WHITE SQUARE CONTAINING BLACK SMALL SQUARE -25A4 SQUARE WITH HORIZONTAL FILL -25A5 SQUARE WITH VERTICAL FILL -25A6 SQUARE WITH ORTHOGONAL CROSSHATCH FILL -25A7 SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL -25A8 SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL -25A9 SQUARE WITH DIAGONAL CROSSHATCH FILL -25AA BLACK SMALL SQUARE -25AB WHITE SMALL SQUARE -25AC BLACK RECTANGLE -25AD WHITE RECTANGLE -25AE BLACK VERTICAL RECTANGLE -25AF WHITE VERTICAL RECTANGLE -25B0 BLACK PARALLELOGRAM -25B1 WHITE PARALLELOGRAM -25B2 BLACK UP-POINTING TRIANGLE -25B3 WHITE UP-POINTING TRIANGLE -25B4 BLACK UP-POINTING SMALL TRIANGLE -25B5 WHITE UP-POINTING SMALL TRIANGLE -25B6 BLACK RIGHT-POINTING TRIANGLE -25B7 WHITE RIGHT-POINTING TRIANGLE -25B8 BLACK RIGHT-POINTING SMALL TRIANGLE -25B9 WHITE RIGHT-POINTING SMALL TRIANGLE -25BA BLACK RIGHT-POINTING POINTER -25BB WHITE RIGHT-POINTING POINTER -25BC BLACK DOWN-POINTING TRIANGLE -25BD WHITE DOWN-POINTING TRIANGLE -25BE BLACK DOWN-POINTING SMALL TRIANGLE -25BF WHITE DOWN-POINTING SMALL TRIANGLE -25C0 BLACK LEFT-POINTING TRIANGLE -25C1 WHITE LEFT-POINTING TRIANGLE -25C2 BLACK LEFT-POINTING SMALL TRIANGLE -25C3 WHITE LEFT-POINTING SMALL TRIANGLE -25C4 BLACK LEFT-POINTING POINTER -25C5 WHITE LEFT-POINTING POINTER -25C6 BLACK DIAMOND -25C7 WHITE DIAMOND -25C8 WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND -25C9 FISHEYE -25CA LOZENGE -25CB WHITE CIRCLE -25CC DOTTED CIRCLE -25CD CIRCLE WITH VERTICAL FILL -25CE BULLSEYE -25CF BLACK CIRCLE -25D0 CIRCLE WITH LEFT HALF BLACK -25D1 CIRCLE WITH RIGHT HALF BLACK -25D2 CIRCLE WITH LOWER HALF BLACK -25D3 CIRCLE WITH UPPER HALF BLACK -25D4 CIRCLE WITH UPPER RIGHT QUADRANT BLACK -25D5 CIRCLE WITH ALL BUT UPPER LEFT QUADRANT BLACK -25D6 LEFT HALF BLACK CIRCLE -25D7 RIGHT HALF BLACK CIRCLE -25D8 INVERSE BULLET -25D9 INVERSE WHITE CIRCLE -25DA UPPER HALF INVERSE WHITE CIRCLE -25DB LOWER HALF INVERSE WHITE CIRCLE -25DC UPPER LEFT QUADRANT CIRCULAR ARC -25DD UPPER RIGHT QUADRANT CIRCULAR ARC -25DE LOWER RIGHT QUADRANT CIRCULAR ARC -25DF LOWER LEFT QUADRANT CIRCULAR ARC -25E0 UPPER HALF CIRCLE -25E1 LOWER HALF CIRCLE -25E2 BLACK LOWER RIGHT TRIANGLE -25E3 BLACK LOWER LEFT TRIANGLE -25E4 BLACK UPPER LEFT TRIANGLE -25E5 BLACK UPPER RIGHT TRIANGLE -25E6 WHITE BULLET -25E7 SQUARE WITH LEFT HALF BLACK -25E8 SQUARE WITH RIGHT HALF BLACK -25E9 SQUARE WITH UPPER LEFT DIAGONAL HALF BLACK -25EA SQUARE WITH LOWER RIGHT DIAGONAL HALF BLACK -25EB WHITE SQUARE WITH VERTICAL BISECTING LINE -25EC WHITE UP-POINTING TRIANGLE WITH DOT -25ED UP-POINTING TRIANGLE WITH LEFT HALF BLACK -25EE UP-POINTING TRIANGLE WITH RIGHT HALF BLACK -25EF LARGE CIRCLE -25F0 WHITE SQUARE WITH UPPER LEFT QUADRANT -25F1 WHITE SQUARE WITH LOWER LEFT QUADRANT -25F2 WHITE SQUARE WITH LOWER RIGHT QUADRANT -25F3 WHITE SQUARE WITH UPPER RIGHT QUADRANT -25F4 WHITE CIRCLE WITH UPPER LEFT QUADRANT -25F5 WHITE CIRCLE WITH LOWER LEFT QUADRANT -25F6 WHITE CIRCLE WITH LOWER RIGHT QUADRANT -25F7 WHITE CIRCLE WITH UPPER RIGHT QUADRANT -25F8 UPPER LEFT TRIANGLE -25F9 UPPER RIGHT TRIANGLE -25FA LOWER LEFT TRIANGLE -25FB WHITE MEDIUM SQUARE -25FC BLACK MEDIUM SQUARE -25FD WHITE MEDIUM SMALL SQUARE -25FE BLACK MEDIUM SMALL SQUARE -25FF LOWER RIGHT TRIANGLE -2600 BLACK SUN WITH RAYS -2601 CLOUD -2602 UMBRELLA -2603 SNOWMAN -2604 COMET -2605 BLACK STAR -2606 WHITE STAR -2607 LIGHTNING -2608 THUNDERSTORM -2609 SUN -260A ASCENDING NODE -260B DESCENDING NODE -260C CONJUNCTION -260D OPPOSITION -260E BLACK TELEPHONE -260F WHITE TELEPHONE -2610 BALLOT BOX -2611 BALLOT BOX WITH CHECK -2612 BALLOT BOX WITH X -2613 SALTIRE -2616 WHITE SHOGI PIECE -2617 BLACK SHOGI PIECE -2619 REVERSED ROTATED FLORAL HEART BULLET -261A BLACK LEFT POINTING INDEX -261B BLACK RIGHT POINTING INDEX -261C WHITE LEFT POINTING INDEX -261D WHITE UP POINTING INDEX -261E WHITE RIGHT POINTING INDEX -261F WHITE DOWN POINTING INDEX -2620 SKULL AND CROSSBONES -2621 CAUTION SIGN -2622 RADIOACTIVE SIGN -2623 BIOHAZARD SIGN -2624 CADUCEUS -2625 ANKH -2626 ORTHODOX CROSS -2627 CHI RHO -2628 CROSS OF LORRAINE -2629 CROSS OF JERUSALEM -262A STAR AND CRESCENT -262B FARSI SYMBOL -262C ADI SHAKTI -262D HAMMER AND SICKLE -262E PEACE SYMBOL -262F YIN YANG -2630 TRIGRAM FOR HEAVEN -2631 TRIGRAM FOR LAKE -2632 TRIGRAM FOR FIRE -2633 TRIGRAM FOR THUNDER -2634 TRIGRAM FOR WIND -2635 TRIGRAM FOR WATER -2636 TRIGRAM FOR MOUNTAIN -2637 TRIGRAM FOR EARTH -2638 WHEEL OF DHARMA -2639 WHITE FROWNING FACE -263A WHITE SMILING FACE -263B BLACK SMILING FACE -263C WHITE SUN WITH RAYS -263D FIRST QUARTER MOON -263E LAST QUARTER MOON -263F MERCURY -2640 FEMALE SIGN -2641 EARTH -2642 MALE SIGN -2643 JUPITER -2644 SATURN -2645 URANUS -2646 NEPTUNE -2647 PLUTO -2648 ARIES -2649 TAURUS -264A GEMINI -264B CANCER -264C LEO -264D VIRGO -264E LIBRA -264F SCORPIUS -2650 SAGITTARIUS -2651 CAPRICORN -2652 AQUARIUS -2653 PISCES -2654 WHITE CHESS KING -2655 WHITE CHESS QUEEN -2656 WHITE CHESS ROOK -2657 WHITE CHESS BISHOP -2658 WHITE CHESS KNIGHT -2659 WHITE CHESS PAWN -265A BLACK CHESS KING -265B BLACK CHESS QUEEN -265C BLACK CHESS ROOK -265D BLACK CHESS BISHOP -265E BLACK CHESS KNIGHT -265F BLACK CHESS PAWN -2660 BLACK SPADE SUIT -2661 WHITE HEART SUIT -2662 WHITE DIAMOND SUIT -2663 BLACK CLUB SUIT -2664 WHITE SPADE SUIT -2665 BLACK HEART SUIT -2666 BLACK DIAMOND SUIT -2667 WHITE CLUB SUIT -2668 HOT SPRINGS -2669 QUARTER NOTE -266A EIGHTH NOTE -266B BEAMED EIGHTH NOTES -266C BEAMED SIXTEENTH NOTES -266D MUSIC FLAT SIGN -266E MUSIC NATURAL SIGN -266F MUSIC SHARP SIGN -2670 WEST SYRIAC CROSS -2671 EAST SYRIAC CROSS -2672 UNIVERSAL RECYCLING SYMBOL -2673 RECYCLING SYMBOL FOR TYPE-1 PLASTICS -2674 RECYCLING SYMBOL FOR TYPE-2 PLASTICS -2675 RECYCLING SYMBOL FOR TYPE-3 PLASTICS -2676 RECYCLING SYMBOL FOR TYPE-4 PLASTICS -2677 RECYCLING SYMBOL FOR TYPE-5 PLASTICS -2678 RECYCLING SYMBOL FOR TYPE-6 PLASTICS -2679 RECYCLING SYMBOL FOR TYPE-7 PLASTICS -267A RECYCLING SYMBOL FOR GENERIC MATERIALS -267B BLACK UNIVERSAL RECYCLING SYMBOL -267C RECYCLED PAPER SYMBOL -267D PARTIALLY-RECYCLED PAPER SYMBOL -2680 DIE FACE-1 -2681 DIE FACE-2 -2682 DIE FACE-3 -2683 DIE FACE-4 -2684 DIE FACE-5 -2685 DIE FACE-6 -2686 WHITE CIRCLE WITH DOT RIGHT -2687 WHITE CIRCLE WITH TWO DOTS -2688 BLACK CIRCLE WITH WHITE DOT RIGHT -2689 BLACK CIRCLE WITH TWO WHITE DOTS -2701 UPPER BLADE SCISSORS -2702 BLACK SCISSORS -2703 LOWER BLADE SCISSORS -2704 WHITE SCISSORS -2706 TELEPHONE LOCATION SIGN -2707 TAPE DRIVE -2708 AIRPLANE -2709 ENVELOPE -270C VICTORY HAND -270D WRITING HAND -270E LOWER RIGHT PENCIL -270F PENCIL -2710 UPPER RIGHT PENCIL -2711 WHITE NIB -2712 BLACK NIB -2713 CHECK MARK -2714 HEAVY CHECK MARK -2715 MULTIPLICATION X -2716 HEAVY MULTIPLICATION X -2717 BALLOT X -2718 HEAVY BALLOT X -2719 OUTLINED GREEK CROSS -271A HEAVY GREEK CROSS -271B OPEN CENTRE CROSS -271C HEAVY OPEN CENTRE CROSS -271D LATIN CROSS -271E SHADOWED WHITE LATIN CROSS -271F OUTLINED LATIN CROSS -2720 MALTESE CROSS -2721 STAR OF DAVID -2722 FOUR TEARDROP-SPOKED ASTERISK -2723 FOUR BALLOON-SPOKED ASTERISK -2724 HEAVY FOUR BALLOON-SPOKED ASTERISK -2725 FOUR CLUB-SPOKED ASTERISK -2726 BLACK FOUR POINTED STAR -2727 WHITE FOUR POINTED STAR -2729 STRESS OUTLINED WHITE STAR -272A CIRCLED WHITE STAR -272B OPEN CENTRE BLACK STAR -272C BLACK CENTRE WHITE STAR -272D OUTLINED BLACK STAR -272E HEAVY OUTLINED BLACK STAR -272F PINWHEEL STAR -2730 SHADOWED WHITE STAR -2731 HEAVY ASTERISK -2732 OPEN CENTRE ASTERISK -2733 EIGHT SPOKED ASTERISK -2734 EIGHT POINTED BLACK STAR -2735 EIGHT POINTED PINWHEEL STAR -2736 SIX POINTED BLACK STAR -2737 EIGHT POINTED RECTILINEAR BLACK STAR -2738 HEAVY EIGHT POINTED RECTILINEAR BLACK STAR -2739 TWELVE POINTED BLACK STAR -273A SIXTEEN POINTED ASTERISK -273B TEARDROP-SPOKED ASTERISK -273C OPEN CENTRE TEARDROP-SPOKED ASTERISK -273D HEAVY TEARDROP-SPOKED ASTERISK -273E SIX PETALLED BLACK AND WHITE FLORETTE -273F BLACK FLORETTE -2740 WHITE FLORETTE -2741 EIGHT PETALLED OUTLINED BLACK FLORETTE -2742 CIRCLED OPEN CENTRE EIGHT POINTED STAR -2743 HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK -2744 SNOWFLAKE -2745 TIGHT TRIFOLIATE SNOWFLAKE -2746 HEAVY CHEVRON SNOWFLAKE -2747 SPARKLE -2748 HEAVY SPARKLE -2749 BALLOON-SPOKED ASTERISK -274A EIGHT TEARDROP-SPOKED PROPELLER ASTERISK -274B HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK -274D SHADOWED WHITE CIRCLE -274F LOWER RIGHT DROP-SHADOWED WHITE SQUARE -2750 UPPER RIGHT DROP-SHADOWED WHITE SQUARE -2751 LOWER RIGHT SHADOWED WHITE SQUARE -2752 UPPER RIGHT SHADOWED WHITE SQUARE -2756 BLACK DIAMOND MINUS WHITE X -2758 LIGHT VERTICAL BAR -2759 MEDIUM VERTICAL BAR -275A HEAVY VERTICAL BAR -275B HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT -275C HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT -275D HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT -275E HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT -2761 CURVED STEM PARAGRAPH SIGN ORNAMENT -2762 HEAVY EXCLAMATION MARK ORNAMENT -2763 HEAVY HEART EXCLAMATION MARK ORNAMENT -2764 HEAVY BLACK HEART -2765 ROTATED HEAVY BLACK HEART BULLET -2766 FLORAL HEART -2767 ROTATED FLORAL HEART BULLET -2768 MEDIUM LEFT PARENTHESIS ORNAMENT -2769 MEDIUM RIGHT PARENTHESIS ORNAMENT -276A MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT -276B MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT -276C MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT -276D MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT -276E HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT -276F HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT -2770 HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT -2771 HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT -2772 LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT -2773 LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT -2774 MEDIUM LEFT CURLY BRACKET ORNAMENT -2775 MEDIUM RIGHT CURLY BRACKET ORNAMENT -2776 DINGBAT NEGATIVE CIRCLED DIGIT ONE -2777 DINGBAT NEGATIVE CIRCLED DIGIT TWO -2778 DINGBAT NEGATIVE CIRCLED DIGIT THREE -2779 DINGBAT NEGATIVE CIRCLED DIGIT FOUR -277A DINGBAT NEGATIVE CIRCLED DIGIT FIVE -277B DINGBAT NEGATIVE CIRCLED DIGIT SIX -277C DINGBAT NEGATIVE CIRCLED DIGIT SEVEN -277D DINGBAT NEGATIVE CIRCLED DIGIT EIGHT -277E DINGBAT NEGATIVE CIRCLED DIGIT NINE -277F DINGBAT NEGATIVE CIRCLED NUMBER TEN -2780 DINGBAT CIRCLED SANS-SERIF DIGIT ONE -2781 DINGBAT CIRCLED SANS-SERIF DIGIT TWO -2782 DINGBAT CIRCLED SANS-SERIF DIGIT THREE -2783 DINGBAT CIRCLED SANS-SERIF DIGIT FOUR -2784 DINGBAT CIRCLED SANS-SERIF DIGIT FIVE -2785 DINGBAT CIRCLED SANS-SERIF DIGIT SIX -2786 DINGBAT CIRCLED SANS-SERIF DIGIT SEVEN -2787 DINGBAT CIRCLED SANS-SERIF DIGIT EIGHT -2788 DINGBAT CIRCLED SANS-SERIF DIGIT NINE -2789 DINGBAT CIRCLED SANS-SERIF NUMBER TEN -278A DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ONE -278B DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT TWO -278C DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT THREE -278D DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FOUR -278E DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FIVE -278F DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SIX -2790 DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SEVEN -2791 DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT EIGHT -2792 DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE -2793 DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN -2794 HEAVY WIDE-HEADED RIGHTWARDS ARROW -2798 HEAVY SOUTH EAST ARROW -2799 HEAVY RIGHTWARDS ARROW -279A HEAVY NORTH EAST ARROW -279B DRAFTING POINT RIGHTWARDS ARROW -279C HEAVY ROUND-TIPPED RIGHTWARDS ARROW -279D TRIANGLE-HEADED RIGHTWARDS ARROW -279E HEAVY TRIANGLE-HEADED RIGHTWARDS ARROW -279F DASHED TRIANGLE-HEADED RIGHTWARDS ARROW -27A0 HEAVY DASHED TRIANGLE-HEADED RIGHTWARDS ARROW -27A1 BLACK RIGHTWARDS ARROW -27A2 THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD -27A3 THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD -27A4 BLACK RIGHTWARDS ARROWHEAD -27A5 HEAVY BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW -27A6 HEAVY BLACK CURVED UPWARDS AND RIGHTWARDS ARROW -27A7 SQUAT BLACK RIGHTWARDS ARROW -27A8 HEAVY CONCAVE-POINTED BLACK RIGHTWARDS ARROW -27A9 RIGHT-SHADED WHITE RIGHTWARDS ARROW -27AA LEFT-SHADED WHITE RIGHTWARDS ARROW -27AB BACK-TILTED SHADOWED WHITE RIGHTWARDS ARROW -27AC FRONT-TILTED SHADOWED WHITE RIGHTWARDS ARROW -27AD HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW -27AE HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW -27AF NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW -27B1 NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW -27B2 CIRCLED HEAVY WHITE RIGHTWARDS ARROW -27B3 WHITE-FEATHERED RIGHTWARDS ARROW -27B4 BLACK-FEATHERED SOUTH EAST ARROW -27B5 BLACK-FEATHERED RIGHTWARDS ARROW -27B6 BLACK-FEATHERED NORTH EAST ARROW -27B7 HEAVY BLACK-FEATHERED SOUTH EAST ARROW -27B8 HEAVY BLACK-FEATHERED RIGHTWARDS ARROW -27B9 HEAVY BLACK-FEATHERED NORTH EAST ARROW -27BA TEARDROP-BARBED RIGHTWARDS ARROW -27BB HEAVY TEARDROP-SHANKED RIGHTWARDS ARROW -27BC WEDGE-TAILED RIGHTWARDS ARROW -27BD HEAVY WEDGE-TAILED RIGHTWARDS ARROW -27BE OPEN-OUTLINED RIGHTWARDS ARROW -27D0 WHITE DIAMOND WITH CENTRED DOT -27D1 AND WITH DOT -27D2 ELEMENT OF OPENING UPWARDS -27D3 LOWER RIGHT CORNER WITH DOT -27D4 UPPER LEFT CORNER WITH DOT -27D5 LEFT OUTER JOIN -27D6 RIGHT OUTER JOIN -27D7 FULL OUTER JOIN -27D8 LARGE UP TACK -27D9 LARGE DOWN TACK -27DA LEFT AND RIGHT DOUBLE TURNSTILE -27DB LEFT AND RIGHT TACK -27DC LEFT MULTIMAP -27DD LONG RIGHT TACK -27DE LONG LEFT TACK -27DF UP TACK WITH CIRCLE ABOVE -27E0 LOZENGE DIVIDED BY HORIZONTAL RULE -27E1 WHITE CONCAVE-SIDED DIAMOND -27E2 WHITE CONCAVE-SIDED DIAMOND WITH LEFTWARDS TICK -27E3 WHITE CONCAVE-SIDED DIAMOND WITH RIGHTWARDS TICK -27E4 WHITE SQUARE WITH LEFTWARDS TICK -27E5 WHITE SQUARE WITH RIGHTWARDS TICK -27E6 MATHEMATICAL LEFT WHITE SQUARE BRACKET -27E7 MATHEMATICAL RIGHT WHITE SQUARE BRACKET -27E8 MATHEMATICAL LEFT ANGLE BRACKET -27E9 MATHEMATICAL RIGHT ANGLE BRACKET -27EA MATHEMATICAL LEFT DOUBLE ANGLE BRACKET -27EB MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET -27F0 UPWARDS QUADRUPLE ARROW -27F1 DOWNWARDS QUADRUPLE ARROW -27F2 ANTICLOCKWISE GAPPED CIRCLE ARROW -27F3 CLOCKWISE GAPPED CIRCLE ARROW -27F4 RIGHT ARROW WITH CIRCLED PLUS -27F5 LONG LEFTWARDS ARROW -27F6 LONG RIGHTWARDS ARROW -27F7 LONG LEFT RIGHT ARROW -27F8 LONG LEFTWARDS DOUBLE ARROW -27F9 LONG RIGHTWARDS DOUBLE ARROW -27FA LONG LEFT RIGHT DOUBLE ARROW -27FB LONG LEFTWARDS ARROW FROM BAR -27FC LONG RIGHTWARDS ARROW FROM BAR -27FD LONG LEFTWARDS DOUBLE ARROW FROM BAR -27FE LONG RIGHTWARDS DOUBLE ARROW FROM BAR -27FF LONG RIGHTWARDS SQUIGGLE ARROW -2800 BRAILLE PATTERN BLANK -2801 BRAILLE PATTERN DOTS-1 -2802 BRAILLE PATTERN DOTS-2 -2803 BRAILLE PATTERN DOTS-12 -2804 BRAILLE PATTERN DOTS-3 -2805 BRAILLE PATTERN DOTS-13 -2806 BRAILLE PATTERN DOTS-23 -2807 BRAILLE PATTERN DOTS-123 -2808 BRAILLE PATTERN DOTS-4 -2809 BRAILLE PATTERN DOTS-14 -280A BRAILLE PATTERN DOTS-24 -280B BRAILLE PATTERN DOTS-124 -280C BRAILLE PATTERN DOTS-34 -280D BRAILLE PATTERN DOTS-134 -280E BRAILLE PATTERN DOTS-234 -280F BRAILLE PATTERN DOTS-1234 -2810 BRAILLE PATTERN DOTS-5 -2811 BRAILLE PATTERN DOTS-15 -2812 BRAILLE PATTERN DOTS-25 -2813 BRAILLE PATTERN DOTS-125 -2814 BRAILLE PATTERN DOTS-35 -2815 BRAILLE PATTERN DOTS-135 -2816 BRAILLE PATTERN DOTS-235 -2817 BRAILLE PATTERN DOTS-1235 -2818 BRAILLE PATTERN DOTS-45 -2819 BRAILLE PATTERN DOTS-145 -281A BRAILLE PATTERN DOTS-245 -281B BRAILLE PATTERN DOTS-1245 -281C BRAILLE PATTERN DOTS-345 -281D BRAILLE PATTERN DOTS-1345 -281E BRAILLE PATTERN DOTS-2345 -281F BRAILLE PATTERN DOTS-12345 -2820 BRAILLE PATTERN DOTS-6 -2821 BRAILLE PATTERN DOTS-16 -2822 BRAILLE PATTERN DOTS-26 -2823 BRAILLE PATTERN DOTS-126 -2824 BRAILLE PATTERN DOTS-36 -2825 BRAILLE PATTERN DOTS-136 -2826 BRAILLE PATTERN DOTS-236 -2827 BRAILLE PATTERN DOTS-1236 -2828 BRAILLE PATTERN DOTS-46 -2829 BRAILLE PATTERN DOTS-146 -282A BRAILLE PATTERN DOTS-246 -282B BRAILLE PATTERN DOTS-1246 -282C BRAILLE PATTERN DOTS-346 -282D BRAILLE PATTERN DOTS-1346 -282E BRAILLE PATTERN DOTS-2346 -282F BRAILLE PATTERN DOTS-12346 -2830 BRAILLE PATTERN DOTS-56 -2831 BRAILLE PATTERN DOTS-156 -2832 BRAILLE PATTERN DOTS-256 -2833 BRAILLE PATTERN DOTS-1256 -2834 BRAILLE PATTERN DOTS-356 -2835 BRAILLE PATTERN DOTS-1356 -2836 BRAILLE PATTERN DOTS-2356 -2837 BRAILLE PATTERN DOTS-12356 -2838 BRAILLE PATTERN DOTS-456 -2839 BRAILLE PATTERN DOTS-1456 -283A BRAILLE PATTERN DOTS-2456 -283B BRAILLE PATTERN DOTS-12456 -283C BRAILLE PATTERN DOTS-3456 -283D BRAILLE PATTERN DOTS-13456 -283E BRAILLE PATTERN DOTS-23456 -283F BRAILLE PATTERN DOTS-123456 -2840 BRAILLE PATTERN DOTS-7 -2841 BRAILLE PATTERN DOTS-17 -2842 BRAILLE PATTERN DOTS-27 -2843 BRAILLE PATTERN DOTS-127 -2844 BRAILLE PATTERN DOTS-37 -2845 BRAILLE PATTERN DOTS-137 -2846 BRAILLE PATTERN DOTS-237 -2847 BRAILLE PATTERN DOTS-1237 -2848 BRAILLE PATTERN DOTS-47 -2849 BRAILLE PATTERN DOTS-147 -284A BRAILLE PATTERN DOTS-247 -284B BRAILLE PATTERN DOTS-1247 -284C BRAILLE PATTERN DOTS-347 -284D BRAILLE PATTERN DOTS-1347 -284E BRAILLE PATTERN DOTS-2347 -284F BRAILLE PATTERN DOTS-12347 -2850 BRAILLE PATTERN DOTS-57 -2851 BRAILLE PATTERN DOTS-157 -2852 BRAILLE PATTERN DOTS-257 -2853 BRAILLE PATTERN DOTS-1257 -2854 BRAILLE PATTERN DOTS-357 -2855 BRAILLE PATTERN DOTS-1357 -2856 BRAILLE PATTERN DOTS-2357 -2857 BRAILLE PATTERN DOTS-12357 -2858 BRAILLE PATTERN DOTS-457 -2859 BRAILLE PATTERN DOTS-1457 -285A BRAILLE PATTERN DOTS-2457 -285B BRAILLE PATTERN DOTS-12457 -285C BRAILLE PATTERN DOTS-3457 -285D BRAILLE PATTERN DOTS-13457 -285E BRAILLE PATTERN DOTS-23457 -285F BRAILLE PATTERN DOTS-123457 -2860 BRAILLE PATTERN DOTS-67 -2861 BRAILLE PATTERN DOTS-167 -2862 BRAILLE PATTERN DOTS-267 -2863 BRAILLE PATTERN DOTS-1267 -2864 BRAILLE PATTERN DOTS-367 -2865 BRAILLE PATTERN DOTS-1367 -2866 BRAILLE PATTERN DOTS-2367 -2867 BRAILLE PATTERN DOTS-12367 -2868 BRAILLE PATTERN DOTS-467 -2869 BRAILLE PATTERN DOTS-1467 -286A BRAILLE PATTERN DOTS-2467 -286B BRAILLE PATTERN DOTS-12467 -286C BRAILLE PATTERN DOTS-3467 -286D BRAILLE PATTERN DOTS-13467 -286E BRAILLE PATTERN DOTS-23467 -286F BRAILLE PATTERN DOTS-123467 -2870 BRAILLE PATTERN DOTS-567 -2871 BRAILLE PATTERN DOTS-1567 -2872 BRAILLE PATTERN DOTS-2567 -2873 BRAILLE PATTERN DOTS-12567 -2874 BRAILLE PATTERN DOTS-3567 -2875 BRAILLE PATTERN DOTS-13567 -2876 BRAILLE PATTERN DOTS-23567 -2877 BRAILLE PATTERN DOTS-123567 -2878 BRAILLE PATTERN DOTS-4567 -2879 BRAILLE PATTERN DOTS-14567 -287A BRAILLE PATTERN DOTS-24567 -287B BRAILLE PATTERN DOTS-124567 -287C BRAILLE PATTERN DOTS-34567 -287D BRAILLE PATTERN DOTS-134567 -287E BRAILLE PATTERN DOTS-234567 -287F BRAILLE PATTERN DOTS-1234567 -2880 BRAILLE PATTERN DOTS-8 -2881 BRAILLE PATTERN DOTS-18 -2882 BRAILLE PATTERN DOTS-28 -2883 BRAILLE PATTERN DOTS-128 -2884 BRAILLE PATTERN DOTS-38 -2885 BRAILLE PATTERN DOTS-138 -2886 BRAILLE PATTERN DOTS-238 -2887 BRAILLE PATTERN DOTS-1238 -2888 BRAILLE PATTERN DOTS-48 -2889 BRAILLE PATTERN DOTS-148 -288A BRAILLE PATTERN DOTS-248 -288B BRAILLE PATTERN DOTS-1248 -288C BRAILLE PATTERN DOTS-348 -288D BRAILLE PATTERN DOTS-1348 -288E BRAILLE PATTERN DOTS-2348 -288F BRAILLE PATTERN DOTS-12348 -2890 BRAILLE PATTERN DOTS-58 -2891 BRAILLE PATTERN DOTS-158 -2892 BRAILLE PATTERN DOTS-258 -2893 BRAILLE PATTERN DOTS-1258 -2894 BRAILLE PATTERN DOTS-358 -2895 BRAILLE PATTERN DOTS-1358 -2896 BRAILLE PATTERN DOTS-2358 -2897 BRAILLE PATTERN DOTS-12358 -2898 BRAILLE PATTERN DOTS-458 -2899 BRAILLE PATTERN DOTS-1458 -289A BRAILLE PATTERN DOTS-2458 -289B BRAILLE PATTERN DOTS-12458 -289C BRAILLE PATTERN DOTS-3458 -289D BRAILLE PATTERN DOTS-13458 -289E BRAILLE PATTERN DOTS-23458 -289F BRAILLE PATTERN DOTS-123458 -28A0 BRAILLE PATTERN DOTS-68 -28A1 BRAILLE PATTERN DOTS-168 -28A2 BRAILLE PATTERN DOTS-268 -28A3 BRAILLE PATTERN DOTS-1268 -28A4 BRAILLE PATTERN DOTS-368 -28A5 BRAILLE PATTERN DOTS-1368 -28A6 BRAILLE PATTERN DOTS-2368 -28A7 BRAILLE PATTERN DOTS-12368 -28A8 BRAILLE PATTERN DOTS-468 -28A9 BRAILLE PATTERN DOTS-1468 -28AA BRAILLE PATTERN DOTS-2468 -28AB BRAILLE PATTERN DOTS-12468 -28AC BRAILLE PATTERN DOTS-3468 -28AD BRAILLE PATTERN DOTS-13468 -28AE BRAILLE PATTERN DOTS-23468 -28AF BRAILLE PATTERN DOTS-123468 -28B0 BRAILLE PATTERN DOTS-568 -28B1 BRAILLE PATTERN DOTS-1568 -28B2 BRAILLE PATTERN DOTS-2568 -28B3 BRAILLE PATTERN DOTS-12568 -28B4 BRAILLE PATTERN DOTS-3568 -28B5 BRAILLE PATTERN DOTS-13568 -28B6 BRAILLE PATTERN DOTS-23568 -28B7 BRAILLE PATTERN DOTS-123568 -28B8 BRAILLE PATTERN DOTS-4568 -28B9 BRAILLE PATTERN DOTS-14568 -28BA BRAILLE PATTERN DOTS-24568 -28BB BRAILLE PATTERN DOTS-124568 -28BC BRAILLE PATTERN DOTS-34568 -28BD BRAILLE PATTERN DOTS-134568 -28BE BRAILLE PATTERN DOTS-234568 -28BF BRAILLE PATTERN DOTS-1234568 -28C0 BRAILLE PATTERN DOTS-78 -28C1 BRAILLE PATTERN DOTS-178 -28C2 BRAILLE PATTERN DOTS-278 -28C3 BRAILLE PATTERN DOTS-1278 -28C4 BRAILLE PATTERN DOTS-378 -28C5 BRAILLE PATTERN DOTS-1378 -28C6 BRAILLE PATTERN DOTS-2378 -28C7 BRAILLE PATTERN DOTS-12378 -28C8 BRAILLE PATTERN DOTS-478 -28C9 BRAILLE PATTERN DOTS-1478 -28CA BRAILLE PATTERN DOTS-2478 -28CB BRAILLE PATTERN DOTS-12478 -28CC BRAILLE PATTERN DOTS-3478 -28CD BRAILLE PATTERN DOTS-13478 -28CE BRAILLE PATTERN DOTS-23478 -28CF BRAILLE PATTERN DOTS-123478 -28D0 BRAILLE PATTERN DOTS-578 -28D1 BRAILLE PATTERN DOTS-1578 -28D2 BRAILLE PATTERN DOTS-2578 -28D3 BRAILLE PATTERN DOTS-12578 -28D4 BRAILLE PATTERN DOTS-3578 -28D5 BRAILLE PATTERN DOTS-13578 -28D6 BRAILLE PATTERN DOTS-23578 -28D7 BRAILLE PATTERN DOTS-123578 -28D8 BRAILLE PATTERN DOTS-4578 -28D9 BRAILLE PATTERN DOTS-14578 -28DA BRAILLE PATTERN DOTS-24578 -28DB BRAILLE PATTERN DOTS-124578 -28DC BRAILLE PATTERN DOTS-34578 -28DD BRAILLE PATTERN DOTS-134578 -28DE BRAILLE PATTERN DOTS-234578 -28DF BRAILLE PATTERN DOTS-1234578 -28E0 BRAILLE PATTERN DOTS-678 -28E1 BRAILLE PATTERN DOTS-1678 -28E2 BRAILLE PATTERN DOTS-2678 -28E3 BRAILLE PATTERN DOTS-12678 -28E4 BRAILLE PATTERN DOTS-3678 -28E5 BRAILLE PATTERN DOTS-13678 -28E6 BRAILLE PATTERN DOTS-23678 -28E7 BRAILLE PATTERN DOTS-123678 -28E8 BRAILLE PATTERN DOTS-4678 -28E9 BRAILLE PATTERN DOTS-14678 -28EA BRAILLE PATTERN DOTS-24678 -28EB BRAILLE PATTERN DOTS-124678 -28EC BRAILLE PATTERN DOTS-34678 -28ED BRAILLE PATTERN DOTS-134678 -28EE BRAILLE PATTERN DOTS-234678 -28EF BRAILLE PATTERN DOTS-1234678 -28F0 BRAILLE PATTERN DOTS-5678 -28F1 BRAILLE PATTERN DOTS-15678 -28F2 BRAILLE PATTERN DOTS-25678 -28F3 BRAILLE PATTERN DOTS-125678 -28F4 BRAILLE PATTERN DOTS-35678 -28F5 BRAILLE PATTERN DOTS-135678 -28F6 BRAILLE PATTERN DOTS-235678 -28F7 BRAILLE PATTERN DOTS-1235678 -28F8 BRAILLE PATTERN DOTS-45678 -28F9 BRAILLE PATTERN DOTS-145678 -28FA BRAILLE PATTERN DOTS-245678 -28FB BRAILLE PATTERN DOTS-1245678 -28FC BRAILLE PATTERN DOTS-345678 -28FD BRAILLE PATTERN DOTS-1345678 -28FE BRAILLE PATTERN DOTS-2345678 -28FF BRAILLE PATTERN DOTS-12345678 -2900 RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE -2901 RIGHTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE -2902 LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE -2903 RIGHTWARDS DOUBLE ARROW WITH VERTICAL STROKE -2904 LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKE -2905 RIGHTWARDS TWO-HEADED ARROW FROM BAR -2906 LEFTWARDS DOUBLE ARROW FROM BAR -2907 RIGHTWARDS DOUBLE ARROW FROM BAR -2908 DOWNWARDS ARROW WITH HORIZONTAL STROKE -2909 UPWARDS ARROW WITH HORIZONTAL STROKE -290A UPWARDS TRIPLE ARROW -290B DOWNWARDS TRIPLE ARROW -290C LEFTWARDS DOUBLE DASH ARROW -290D RIGHTWARDS DOUBLE DASH ARROW -290E LEFTWARDS TRIPLE DASH ARROW -290F RIGHTWARDS TRIPLE DASH ARROW -2910 RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW -2911 RIGHTWARDS ARROW WITH DOTTED STEM -2912 UPWARDS ARROW TO BAR -2913 DOWNWARDS ARROW TO BAR -2914 RIGHTWARDS ARROW WITH TAIL WITH VERTICAL STROKE -2915 RIGHTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE -2916 RIGHTWARDS TWO-HEADED ARROW WITH TAIL -2917 RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE -2918 RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE -2919 LEFTWARDS ARROW-TAIL -291A RIGHTWARDS ARROW-TAIL -291B LEFTWARDS DOUBLE ARROW-TAIL -291C RIGHTWARDS DOUBLE ARROW-TAIL -291D LEFTWARDS ARROW TO BLACK DIAMOND -291E RIGHTWARDS ARROW TO BLACK DIAMOND -291F LEFTWARDS ARROW FROM BAR TO BLACK DIAMOND -2920 RIGHTWARDS ARROW FROM BAR TO BLACK DIAMOND -2921 NORTH WEST AND SOUTH EAST ARROW -2922 NORTH EAST AND SOUTH WEST ARROW -2923 NORTH WEST ARROW WITH HOOK -2924 NORTH EAST ARROW WITH HOOK -2925 SOUTH EAST ARROW WITH HOOK -2926 SOUTH WEST ARROW WITH HOOK -2927 NORTH WEST ARROW AND NORTH EAST ARROW -2928 NORTH EAST ARROW AND SOUTH EAST ARROW -2929 SOUTH EAST ARROW AND SOUTH WEST ARROW -292A SOUTH WEST ARROW AND NORTH WEST ARROW -292B RISING DIAGONAL CROSSING FALLING DIAGONAL -292C FALLING DIAGONAL CROSSING RISING DIAGONAL -292D SOUTH EAST ARROW CROSSING NORTH EAST ARROW -292E NORTH EAST ARROW CROSSING SOUTH EAST ARROW -292F FALLING DIAGONAL CROSSING NORTH EAST ARROW -2930 RISING DIAGONAL CROSSING SOUTH EAST ARROW -2931 NORTH EAST ARROW CROSSING NORTH WEST ARROW -2932 NORTH WEST ARROW CROSSING NORTH EAST ARROW -2933 WAVE ARROW POINTING DIRECTLY RIGHT -2934 ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS -2935 ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS -2936 ARROW POINTING DOWNWARDS THEN CURVING LEFTWARDS -2937 ARROW POINTING DOWNWARDS THEN CURVING RIGHTWARDS -2938 RIGHT-SIDE ARC CLOCKWISE ARROW -2939 LEFT-SIDE ARC ANTICLOCKWISE ARROW -293A TOP ARC ANTICLOCKWISE ARROW -293B BOTTOM ARC ANTICLOCKWISE ARROW -293C TOP ARC CLOCKWISE ARROW WITH MINUS -293D TOP ARC ANTICLOCKWISE ARROW WITH PLUS -293E LOWER RIGHT SEMICIRCULAR CLOCKWISE ARROW -293F LOWER LEFT SEMICIRCULAR ANTICLOCKWISE ARROW -2940 ANTICLOCKWISE CLOSED CIRCLE ARROW -2941 CLOCKWISE CLOSED CIRCLE ARROW -2942 RIGHTWARDS ARROW ABOVE SHORT LEFTWARDS ARROW -2943 LEFTWARDS ARROW ABOVE SHORT RIGHTWARDS ARROW -2944 SHORT RIGHTWARDS ARROW ABOVE LEFTWARDS ARROW -2945 RIGHTWARDS ARROW WITH PLUS BELOW -2946 LEFTWARDS ARROW WITH PLUS BELOW -2947 RIGHTWARDS ARROW THROUGH X -2948 LEFT RIGHT ARROW THROUGH SMALL CIRCLE -2949 UPWARDS TWO-HEADED ARROW FROM SMALL CIRCLE -294A LEFT BARB UP RIGHT BARB DOWN HARPOON -294B LEFT BARB DOWN RIGHT BARB UP HARPOON -294C UP BARB RIGHT DOWN BARB LEFT HARPOON -294D UP BARB LEFT DOWN BARB RIGHT HARPOON -294E LEFT BARB UP RIGHT BARB UP HARPOON -294F UP BARB RIGHT DOWN BARB RIGHT HARPOON -2950 LEFT BARB DOWN RIGHT BARB DOWN HARPOON -2951 UP BARB LEFT DOWN BARB LEFT HARPOON -2952 LEFTWARDS HARPOON WITH BARB UP TO BAR -2953 RIGHTWARDS HARPOON WITH BARB UP TO BAR -2954 UPWARDS HARPOON WITH BARB RIGHT TO BAR -2955 DOWNWARDS HARPOON WITH BARB RIGHT TO BAR -2956 LEFTWARDS HARPOON WITH BARB DOWN TO BAR -2957 RIGHTWARDS HARPOON WITH BARB DOWN TO BAR -2958 UPWARDS HARPOON WITH BARB LEFT TO BAR -2959 DOWNWARDS HARPOON WITH BARB LEFT TO BAR -295A LEFTWARDS HARPOON WITH BARB UP FROM BAR -295B RIGHTWARDS HARPOON WITH BARB UP FROM BAR -295C UPWARDS HARPOON WITH BARB RIGHT FROM BAR -295D DOWNWARDS HARPOON WITH BARB RIGHT FROM BAR -295E LEFTWARDS HARPOON WITH BARB DOWN FROM BAR -295F RIGHTWARDS HARPOON WITH BARB DOWN FROM BAR -2960 UPWARDS HARPOON WITH BARB LEFT FROM BAR -2961 DOWNWARDS HARPOON WITH BARB LEFT FROM BAR -2962 LEFTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB DOWN -2963 UPWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT -2964 RIGHTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB DOWN -2965 DOWNWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT -2966 LEFTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB UP -2967 LEFTWARDS HARPOON WITH BARB DOWN ABOVE RIGHTWARDS HARPOON WITH BARB DOWN -2968 RIGHTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB UP -2969 RIGHTWARDS HARPOON WITH BARB DOWN ABOVE LEFTWARDS HARPOON WITH BARB DOWN -296A LEFTWARDS HARPOON WITH BARB UP ABOVE LONG DASH -296B LEFTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH -296C RIGHTWARDS HARPOON WITH BARB UP ABOVE LONG DASH -296D RIGHTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH -296E UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT -296F DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT -2970 RIGHT DOUBLE ARROW WITH ROUNDED HEAD -2971 EQUALS SIGN ABOVE RIGHTWARDS ARROW -2972 TILDE OPERATOR ABOVE RIGHTWARDS ARROW -2973 LEFTWARDS ARROW ABOVE TILDE OPERATOR -2974 RIGHTWARDS ARROW ABOVE TILDE OPERATOR -2975 RIGHTWARDS ARROW ABOVE ALMOST EQUAL TO -2976 LESS-THAN ABOVE LEFTWARDS ARROW -2977 LEFTWARDS ARROW THROUGH LESS-THAN -2978 GREATER-THAN ABOVE RIGHTWARDS ARROW -2979 SUBSET ABOVE RIGHTWARDS ARROW -297A LEFTWARDS ARROW THROUGH SUBSET -297B SUPERSET ABOVE LEFTWARDS ARROW -297C LEFT FISH TAIL -297D RIGHT FISH TAIL -297E UP FISH TAIL -297F DOWN FISH TAIL -2980 TRIPLE VERTICAL BAR DELIMITER -2981 Z NOTATION SPOT -2982 Z NOTATION TYPE COLON -2983 LEFT WHITE CURLY BRACKET -2984 RIGHT WHITE CURLY BRACKET -2985 LEFT WHITE PARENTHESIS -2986 RIGHT WHITE PARENTHESIS -2987 Z NOTATION LEFT IMAGE BRACKET -2988 Z NOTATION RIGHT IMAGE BRACKET -2989 Z NOTATION LEFT BINDING BRACKET -298A Z NOTATION RIGHT BINDING BRACKET -298B LEFT SQUARE BRACKET WITH UNDERBAR -298C RIGHT SQUARE BRACKET WITH UNDERBAR -298D LEFT SQUARE BRACKET WITH TICK IN TOP CORNER -298E RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER -298F LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER -2990 RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER -2991 LEFT ANGLE BRACKET WITH DOT -2992 RIGHT ANGLE BRACKET WITH DOT -2993 LEFT ARC LESS-THAN BRACKET -2994 RIGHT ARC GREATER-THAN BRACKET -2995 DOUBLE LEFT ARC GREATER-THAN BRACKET -2996 DOUBLE RIGHT ARC LESS-THAN BRACKET -2997 LEFT BLACK TORTOISE SHELL BRACKET -2998 RIGHT BLACK TORTOISE SHELL BRACKET -2999 DOTTED FENCE -299A VERTICAL ZIGZAG LINE -299B MEASURED ANGLE OPENING LEFT -299C RIGHT ANGLE VARIANT WITH SQUARE -299D MEASURED RIGHT ANGLE WITH DOT -299E ANGLE WITH S INSIDE -299F ACUTE ANGLE -29A0 SPHERICAL ANGLE OPENING LEFT -29A1 SPHERICAL ANGLE OPENING UP -29A2 TURNED ANGLE -29A3 REVERSED ANGLE -29A4 ANGLE WITH UNDERBAR -29A5 REVERSED ANGLE WITH UNDERBAR -29A6 OBLIQUE ANGLE OPENING UP -29A7 OBLIQUE ANGLE OPENING DOWN -29A8 MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT -29A9 MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT -29AA MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT -29AB MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT -29AC MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP -29AD MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP -29AE MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN -29AF MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN -29B0 REVERSED EMPTY SET -29B1 EMPTY SET WITH OVERBAR -29B2 EMPTY SET WITH SMALL CIRCLE ABOVE -29B3 EMPTY SET WITH RIGHT ARROW ABOVE -29B4 EMPTY SET WITH LEFT ARROW ABOVE -29B5 CIRCLE WITH HORIZONTAL BAR -29B6 CIRCLED VERTICAL BAR -29B7 CIRCLED PARALLEL -29B8 CIRCLED REVERSE SOLIDUS -29B9 CIRCLED PERPENDICULAR -29BA CIRCLE DIVIDED BY HORIZONTAL BAR AND TOP HALF DIVIDED BY VERTICAL BAR -29BB CIRCLE WITH SUPERIMPOSED X -29BC CIRCLED ANTICLOCKWISE-ROTATED DIVISION SIGN -29BD UP ARROW THROUGH CIRCLE -29BE CIRCLED WHITE BULLET -29BF CIRCLED BULLET -29C0 CIRCLED LESS-THAN -29C1 CIRCLED GREATER-THAN -29C2 CIRCLE WITH SMALL CIRCLE TO THE RIGHT -29C3 CIRCLE WITH TWO HORIZONTAL STROKES TO THE RIGHT -29C4 SQUARED RISING DIAGONAL SLASH -29C5 SQUARED FALLING DIAGONAL SLASH -29C6 SQUARED ASTERISK -29C7 SQUARED SMALL CIRCLE -29C8 SQUARED SQUARE -29C9 TWO JOINED SQUARES -29CA TRIANGLE WITH DOT ABOVE -29CB TRIANGLE WITH UNDERBAR -29CC S IN TRIANGLE -29CD TRIANGLE WITH SERIFS AT BOTTOM -29CE RIGHT TRIANGLE ABOVE LEFT TRIANGLE -29CF LEFT TRIANGLE BESIDE VERTICAL BAR -29D0 VERTICAL BAR BESIDE RIGHT TRIANGLE -29D1 BOWTIE WITH LEFT HALF BLACK -29D2 BOWTIE WITH RIGHT HALF BLACK -29D3 BLACK BOWTIE -29D4 TIMES WITH LEFT HALF BLACK -29D5 TIMES WITH RIGHT HALF BLACK -29D6 WHITE HOURGLASS -29D7 BLACK HOURGLASS -29D8 LEFT WIGGLY FENCE -29D9 RIGHT WIGGLY FENCE -29DA LEFT DOUBLE WIGGLY FENCE -29DB RIGHT DOUBLE WIGGLY FENCE -29DC INCOMPLETE INFINITY -29DD TIE OVER INFINITY -29DE INFINITY NEGATED WITH VERTICAL BAR -29DF DOUBLE-ENDED MULTIMAP -29E0 SQUARE WITH CONTOURED OUTLINE -29E1 INCREASES AS -29E2 SHUFFLE PRODUCT -29E3 EQUALS SIGN AND SLANTED PARALLEL -29E4 EQUALS SIGN AND SLANTED PARALLEL WITH TILDE ABOVE -29E5 IDENTICAL TO AND SLANTED PARALLEL -29E6 GLEICH STARK -29E7 THERMODYNAMIC -29E8 DOWN-POINTING TRIANGLE WITH LEFT HALF BLACK -29E9 DOWN-POINTING TRIANGLE WITH RIGHT HALF BLACK -29EA BLACK DIAMOND WITH DOWN ARROW -29EB BLACK LOZENGE -29EC WHITE CIRCLE WITH DOWN ARROW -29ED BLACK CIRCLE WITH DOWN ARROW -29EE ERROR-BARRED WHITE SQUARE -29EF ERROR-BARRED BLACK SQUARE -29F0 ERROR-BARRED WHITE DIAMOND -29F1 ERROR-BARRED BLACK DIAMOND -29F2 ERROR-BARRED WHITE CIRCLE -29F3 ERROR-BARRED BLACK CIRCLE -29F4 RULE-DELAYED -29F5 REVERSE SOLIDUS OPERATOR -29F6 SOLIDUS WITH OVERBAR -29F7 REVERSE SOLIDUS WITH HORIZONTAL STROKE -29F8 BIG SOLIDUS -29F9 BIG REVERSE SOLIDUS -29FA DOUBLE PLUS -29FB TRIPLE PLUS -29FC LEFT-POINTING CURVED ANGLE BRACKET -29FD RIGHT-POINTING CURVED ANGLE BRACKET -29FE TINY -29FF MINY -2A00 N-ARY CIRCLED DOT OPERATOR -2A01 N-ARY CIRCLED PLUS OPERATOR -2A02 N-ARY CIRCLED TIMES OPERATOR -2A03 N-ARY UNION OPERATOR WITH DOT -2A04 N-ARY UNION OPERATOR WITH PLUS -2A05 N-ARY SQUARE INTERSECTION OPERATOR -2A06 N-ARY SQUARE UNION OPERATOR -2A07 TWO LOGICAL AND OPERATOR -2A08 TWO LOGICAL OR OPERATOR -2A09 N-ARY TIMES OPERATOR -2A0A MODULO TWO SUM -2A0B SUMMATION WITH INTEGRAL -2A0C QUADRUPLE INTEGRAL OPERATOR -2A0D FINITE PART INTEGRAL -2A0E INTEGRAL WITH DOUBLE STROKE -2A0F INTEGRAL AVERAGE WITH SLASH -2A10 CIRCULATION FUNCTION -2A11 ANTICLOCKWISE INTEGRATION -2A12 LINE INTEGRATION WITH RECTANGULAR PATH AROUND POLE -2A13 LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE -2A14 LINE INTEGRATION NOT INCLUDING THE POLE -2A15 INTEGRAL AROUND A POINT OPERATOR -2A16 QUATERNION INTEGRAL OPERATOR -2A17 INTEGRAL WITH LEFTWARDS ARROW WITH HOOK -2A18 INTEGRAL WITH TIMES SIGN -2A19 INTEGRAL WITH INTERSECTION -2A1A INTEGRAL WITH UNION -2A1B INTEGRAL WITH OVERBAR -2A1C INTEGRAL WITH UNDERBAR -2A1D JOIN -2A1E LARGE LEFT TRIANGLE OPERATOR -2A1F Z NOTATION SCHEMA COMPOSITION -2A20 Z NOTATION SCHEMA PIPING -2A21 Z NOTATION SCHEMA PROJECTION -2A22 PLUS SIGN WITH SMALL CIRCLE ABOVE -2A23 PLUS SIGN WITH CIRCUMFLEX ACCENT ABOVE -2A24 PLUS SIGN WITH TILDE ABOVE -2A25 PLUS SIGN WITH DOT BELOW -2A26 PLUS SIGN WITH TILDE BELOW -2A27 PLUS SIGN WITH SUBSCRIPT TWO -2A28 PLUS SIGN WITH BLACK TRIANGLE -2A29 MINUS SIGN WITH COMMA ABOVE -2A2A MINUS SIGN WITH DOT BELOW -2A2B MINUS SIGN WITH FALLING DOTS -2A2C MINUS SIGN WITH RISING DOTS -2A2D PLUS SIGN IN LEFT HALF CIRCLE -2A2E PLUS SIGN IN RIGHT HALF CIRCLE -2A2F VECTOR OR CROSS PRODUCT -2A30 MULTIPLICATION SIGN WITH DOT ABOVE -2A31 MULTIPLICATION SIGN WITH UNDERBAR -2A32 SEMIDIRECT PRODUCT WITH BOTTOM CLOSED -2A33 SMASH PRODUCT -2A34 MULTIPLICATION SIGN IN LEFT HALF CIRCLE -2A35 MULTIPLICATION SIGN IN RIGHT HALF CIRCLE -2A36 CIRCLED MULTIPLICATION SIGN WITH CIRCUMFLEX ACCENT -2A37 MULTIPLICATION SIGN IN DOUBLE CIRCLE -2A38 CIRCLED DIVISION SIGN -2A39 PLUS SIGN IN TRIANGLE -2A3A MINUS SIGN IN TRIANGLE -2A3B MULTIPLICATION SIGN IN TRIANGLE -2A3C INTERIOR PRODUCT -2A3D RIGHTHAND INTERIOR PRODUCT -2A3E Z NOTATION RELATIONAL COMPOSITION -2A3F AMALGAMATION OR COPRODUCT -2A40 INTERSECTION WITH DOT -2A41 UNION WITH MINUS SIGN -2A42 UNION WITH OVERBAR -2A43 INTERSECTION WITH OVERBAR -2A44 INTERSECTION WITH LOGICAL AND -2A45 UNION WITH LOGICAL OR -2A46 UNION ABOVE INTERSECTION -2A47 INTERSECTION ABOVE UNION -2A48 UNION ABOVE BAR ABOVE INTERSECTION -2A49 INTERSECTION ABOVE BAR ABOVE UNION -2A4A UNION BESIDE AND JOINED WITH UNION -2A4B INTERSECTION BESIDE AND JOINED WITH INTERSECTION -2A4C CLOSED UNION WITH SERIFS -2A4D CLOSED INTERSECTION WITH SERIFS -2A4E DOUBLE SQUARE INTERSECTION -2A4F DOUBLE SQUARE UNION -2A50 CLOSED UNION WITH SERIFS AND SMASH PRODUCT -2A51 LOGICAL AND WITH DOT ABOVE -2A52 LOGICAL OR WITH DOT ABOVE -2A53 DOUBLE LOGICAL AND -2A54 DOUBLE LOGICAL OR -2A55 TWO INTERSECTING LOGICAL AND -2A56 TWO INTERSECTING LOGICAL OR -2A57 SLOPING LARGE OR -2A58 SLOPING LARGE AND -2A59 LOGICAL OR OVERLAPPING LOGICAL AND -2A5A LOGICAL AND WITH MIDDLE STEM -2A5B LOGICAL OR WITH MIDDLE STEM -2A5C LOGICAL AND WITH HORIZONTAL DASH -2A5D LOGICAL OR WITH HORIZONTAL DASH -2A5E LOGICAL AND WITH DOUBLE OVERBAR -2A5F LOGICAL AND WITH UNDERBAR -2A60 LOGICAL AND WITH DOUBLE UNDERBAR -2A61 SMALL VEE WITH UNDERBAR -2A62 LOGICAL OR WITH DOUBLE OVERBAR -2A63 LOGICAL OR WITH DOUBLE UNDERBAR -2A64 Z NOTATION DOMAIN ANTIRESTRICTION -2A65 Z NOTATION RANGE ANTIRESTRICTION -2A66 EQUALS SIGN WITH DOT BELOW -2A67 IDENTICAL WITH DOT ABOVE -2A68 TRIPLE HORIZONTAL BAR WITH DOUBLE VERTICAL STROKE -2A69 TRIPLE HORIZONTAL BAR WITH TRIPLE VERTICAL STROKE -2A6A TILDE OPERATOR WITH DOT ABOVE -2A6B TILDE OPERATOR WITH RISING DOTS -2A6C SIMILAR MINUS SIMILAR -2A6D CONGRUENT WITH DOT ABOVE -2A6E EQUALS WITH ASTERISK -2A6F ALMOST EQUAL TO WITH CIRCUMFLEX ACCENT -2A70 APPROXIMATELY EQUAL OR EQUAL TO -2A71 EQUALS SIGN ABOVE PLUS SIGN -2A72 PLUS SIGN ABOVE EQUALS SIGN -2A73 EQUALS SIGN ABOVE TILDE OPERATOR -2A74 DOUBLE COLON EQUAL -2A75 TWO CONSECUTIVE EQUALS SIGNS -2A76 THREE CONSECUTIVE EQUALS SIGNS -2A77 EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW -2A78 EQUIVALENT WITH FOUR DOTS ABOVE -2A79 LESS-THAN WITH CIRCLE INSIDE -2A7A GREATER-THAN WITH CIRCLE INSIDE -2A7B LESS-THAN WITH QUESTION MARK ABOVE -2A7C GREATER-THAN WITH QUESTION MARK ABOVE -2A7D LESS-THAN OR SLANTED EQUAL TO -2A7E GREATER-THAN OR SLANTED EQUAL TO -2A7F LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE -2A80 GREATER-THAN OR SLANTED EQUAL TO WITH DOT INSIDE -2A81 LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE -2A82 GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE -2A83 LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT -2A84 GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT -2A85 LESS-THAN OR APPROXIMATE -2A86 GREATER-THAN OR APPROXIMATE -2A87 LESS-THAN AND SINGLE-LINE NOT EQUAL TO -2A88 GREATER-THAN AND SINGLE-LINE NOT EQUAL TO -2A89 LESS-THAN AND NOT APPROXIMATE -2A8A GREATER-THAN AND NOT APPROXIMATE -2A8B LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN -2A8C GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN -2A8D LESS-THAN ABOVE SIMILAR OR EQUAL -2A8E GREATER-THAN ABOVE SIMILAR OR EQUAL -2A8F LESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN -2A90 GREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN -2A91 LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL -2A92 GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL -2A93 LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL -2A94 GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL -2A95 SLANTED EQUAL TO OR LESS-THAN -2A96 SLANTED EQUAL TO OR GREATER-THAN -2A97 SLANTED EQUAL TO OR LESS-THAN WITH DOT INSIDE -2A98 SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE -2A99 DOUBLE-LINE EQUAL TO OR LESS-THAN -2A9A DOUBLE-LINE EQUAL TO OR GREATER-THAN -2A9B DOUBLE-LINE SLANTED EQUAL TO OR LESS-THAN -2A9C DOUBLE-LINE SLANTED EQUAL TO OR GREATER-THAN -2A9D SIMILAR OR LESS-THAN -2A9E SIMILAR OR GREATER-THAN -2A9F SIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN -2AA0 SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN -2AA1 DOUBLE NESTED LESS-THAN -2AA2 DOUBLE NESTED GREATER-THAN -2AA3 DOUBLE NESTED LESS-THAN WITH UNDERBAR -2AA4 GREATER-THAN OVERLAPPING LESS-THAN -2AA5 GREATER-THAN BESIDE LESS-THAN -2AA6 LESS-THAN CLOSED BY CURVE -2AA7 GREATER-THAN CLOSED BY CURVE -2AA8 LESS-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL -2AA9 GREATER-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL -2AAA SMALLER THAN -2AAB LARGER THAN -2AAC SMALLER THAN OR EQUAL TO -2AAD LARGER THAN OR EQUAL TO -2AAE EQUALS SIGN WITH BUMPY ABOVE -2AAF PRECEDES ABOVE SINGLE-LINE EQUALS SIGN -2AB0 SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN -2AB1 PRECEDES ABOVE SINGLE-LINE NOT EQUAL TO -2AB2 SUCCEEDS ABOVE SINGLE-LINE NOT EQUAL TO -2AB3 PRECEDES ABOVE EQUALS SIGN -2AB4 SUCCEEDS ABOVE EQUALS SIGN -2AB5 PRECEDES ABOVE NOT EQUAL TO -2AB6 SUCCEEDS ABOVE NOT EQUAL TO -2AB7 PRECEDES ABOVE ALMOST EQUAL TO -2AB8 SUCCEEDS ABOVE ALMOST EQUAL TO -2AB9 PRECEDES ABOVE NOT ALMOST EQUAL TO -2ABA SUCCEEDS ABOVE NOT ALMOST EQUAL TO -2ABB DOUBLE PRECEDES -2ABC DOUBLE SUCCEEDS -2ABD SUBSET WITH DOT -2ABE SUPERSET WITH DOT -2ABF SUBSET WITH PLUS SIGN BELOW -2AC0 SUPERSET WITH PLUS SIGN BELOW -2AC1 SUBSET WITH MULTIPLICATION SIGN BELOW -2AC2 SUPERSET WITH MULTIPLICATION SIGN BELOW -2AC3 SUBSET OF OR EQUAL TO WITH DOT ABOVE -2AC4 SUPERSET OF OR EQUAL TO WITH DOT ABOVE -2AC5 SUBSET OF ABOVE EQUALS SIGN -2AC6 SUPERSET OF ABOVE EQUALS SIGN -2AC7 SUBSET OF ABOVE TILDE OPERATOR -2AC8 SUPERSET OF ABOVE TILDE OPERATOR -2AC9 SUBSET OF ABOVE ALMOST EQUAL TO -2ACA SUPERSET OF ABOVE ALMOST EQUAL TO -2ACB SUBSET OF ABOVE NOT EQUAL TO -2ACC SUPERSET OF ABOVE NOT EQUAL TO -2ACD SQUARE LEFT OPEN BOX OPERATOR -2ACE SQUARE RIGHT OPEN BOX OPERATOR -2ACF CLOSED SUBSET -2AD0 CLOSED SUPERSET -2AD1 CLOSED SUBSET OR EQUAL TO -2AD2 CLOSED SUPERSET OR EQUAL TO -2AD3 SUBSET ABOVE SUPERSET -2AD4 SUPERSET ABOVE SUBSET -2AD5 SUBSET ABOVE SUBSET -2AD6 SUPERSET ABOVE SUPERSET -2AD7 SUPERSET BESIDE SUBSET -2AD8 SUPERSET BESIDE AND JOINED BY DASH WITH SUBSET -2AD9 ELEMENT OF OPENING DOWNWARDS -2ADA PITCHFORK WITH TEE TOP -2ADB TRANSVERSAL INTERSECTION -2ADC FORKING -2ADD NONFORKING -2ADE SHORT LEFT TACK -2ADF SHORT DOWN TACK -2AE0 SHORT UP TACK -2AE1 PERPENDICULAR WITH S -2AE2 VERTICAL BAR TRIPLE RIGHT TURNSTILE -2AE3 DOUBLE VERTICAL BAR LEFT TURNSTILE -2AE4 VERTICAL BAR DOUBLE LEFT TURNSTILE -2AE5 DOUBLE VERTICAL BAR DOUBLE LEFT TURNSTILE -2AE6 LONG DASH FROM LEFT MEMBER OF DOUBLE VERTICAL -2AE7 SHORT DOWN TACK WITH OVERBAR -2AE8 SHORT UP TACK WITH UNDERBAR -2AE9 SHORT UP TACK ABOVE SHORT DOWN TACK -2AEA DOUBLE DOWN TACK -2AEB DOUBLE UP TACK -2AEC DOUBLE STROKE NOT SIGN -2AED REVERSED DOUBLE STROKE NOT SIGN -2AEE DOES NOT DIVIDE WITH REVERSED NEGATION SLASH -2AEF VERTICAL LINE WITH CIRCLE ABOVE -2AF0 VERTICAL LINE WITH CIRCLE BELOW -2AF1 DOWN TACK WITH CIRCLE BELOW -2AF2 PARALLEL WITH HORIZONTAL STROKE -2AF3 PARALLEL WITH TILDE OPERATOR -2AF4 TRIPLE VERTICAL BAR BINARY RELATION -2AF5 TRIPLE VERTICAL BAR WITH HORIZONTAL STROKE -2AF6 TRIPLE COLON OPERATOR -2AF7 TRIPLE NESTED LESS-THAN -2AF8 TRIPLE NESTED GREATER-THAN -2AF9 DOUBLE-LINE SLANTED LESS-THAN OR EQUAL TO -2AFA DOUBLE-LINE SLANTED GREATER-THAN OR EQUAL TO -2AFB TRIPLE SOLIDUS BINARY RELATION -2AFC LARGE TRIPLE VERTICAL BAR OPERATOR -2AFD DOUBLE SOLIDUS OPERATOR -2AFE WHITE VERTICAL BAR -2AFF N-ARY WHITE VERTICAL BAR -2E80 CJK RADICAL REPEAT -2E81 CJK RADICAL CLIFF -2E82 CJK RADICAL SECOND ONE -2E83 CJK RADICAL SECOND TWO -2E84 CJK RADICAL SECOND THREE -2E85 CJK RADICAL PERSON -2E86 CJK RADICAL BOX -2E87 CJK RADICAL TABLE -2E88 CJK RADICAL KNIFE ONE -2E89 CJK RADICAL KNIFE TWO -2E8A CJK RADICAL DIVINATION -2E8B CJK RADICAL SEAL -2E8C CJK RADICAL SMALL ONE -2E8D CJK RADICAL SMALL TWO -2E8E CJK RADICAL LAME ONE -2E8F CJK RADICAL LAME TWO -2E90 CJK RADICAL LAME THREE -2E91 CJK RADICAL LAME FOUR -2E92 CJK RADICAL SNAKE -2E93 CJK RADICAL THREAD -2E94 CJK RADICAL SNOUT ONE -2E95 CJK RADICAL SNOUT TWO -2E96 CJK RADICAL HEART ONE -2E97 CJK RADICAL HEART TWO -2E98 CJK RADICAL HAND -2E99 CJK RADICAL RAP -2E9B CJK RADICAL CHOKE -2E9C CJK RADICAL SUN -2E9D CJK RADICAL MOON -2E9E CJK RADICAL DEATH -2E9F CJK RADICAL MOTHER -2EA0 CJK RADICAL CIVILIAN -2EA1 CJK RADICAL WATER ONE -2EA2 CJK RADICAL WATER TWO -2EA3 CJK RADICAL FIRE -2EA4 CJK RADICAL PAW ONE -2EA5 CJK RADICAL PAW TWO -2EA6 CJK RADICAL SIMPLIFIED HALF TREE TRUNK -2EA7 CJK RADICAL COW -2EA8 CJK RADICAL DOG -2EA9 CJK RADICAL JADE -2EAA CJK RADICAL BOLT OF CLOTH -2EAB CJK RADICAL EYE -2EAC CJK RADICAL SPIRIT ONE -2EAD CJK RADICAL SPIRIT TWO -2EAE CJK RADICAL BAMBOO -2EAF CJK RADICAL SILK -2EB0 CJK RADICAL C-SIMPLIFIED SILK -2EB1 CJK RADICAL NET ONE -2EB2 CJK RADICAL NET TWO -2EB3 CJK RADICAL NET THREE -2EB4 CJK RADICAL NET FOUR -2EB5 CJK RADICAL MESH -2EB6 CJK RADICAL SHEEP -2EB7 CJK RADICAL RAM -2EB8 CJK RADICAL EWE -2EB9 CJK RADICAL OLD -2EBA CJK RADICAL BRUSH ONE -2EBB CJK RADICAL BRUSH TWO -2EBC CJK RADICAL MEAT -2EBD CJK RADICAL MORTAR -2EBE CJK RADICAL GRASS ONE -2EBF CJK RADICAL GRASS TWO -2EC0 CJK RADICAL GRASS THREE -2EC1 CJK RADICAL TIGER -2EC2 CJK RADICAL CLOTHES -2EC3 CJK RADICAL WEST ONE -2EC4 CJK RADICAL WEST TWO -2EC5 CJK RADICAL C-SIMPLIFIED SEE -2EC6 CJK RADICAL SIMPLIFIED HORN -2EC7 CJK RADICAL HORN -2EC8 CJK RADICAL C-SIMPLIFIED SPEECH -2EC9 CJK RADICAL C-SIMPLIFIED SHELL -2ECA CJK RADICAL FOOT -2ECB CJK RADICAL C-SIMPLIFIED CART -2ECC CJK RADICAL SIMPLIFIED WALK -2ECD CJK RADICAL WALK ONE -2ECE CJK RADICAL WALK TWO -2ECF CJK RADICAL CITY -2ED0 CJK RADICAL C-SIMPLIFIED GOLD -2ED1 CJK RADICAL LONG ONE -2ED2 CJK RADICAL LONG TWO -2ED3 CJK RADICAL C-SIMPLIFIED LONG -2ED4 CJK RADICAL C-SIMPLIFIED GATE -2ED5 CJK RADICAL MOUND ONE -2ED6 CJK RADICAL MOUND TWO -2ED7 CJK RADICAL RAIN -2ED8 CJK RADICAL BLUE -2ED9 CJK RADICAL C-SIMPLIFIED TANNED LEATHER -2EDA CJK RADICAL C-SIMPLIFIED LEAF -2EDB CJK RADICAL C-SIMPLIFIED WIND -2EDC CJK RADICAL C-SIMPLIFIED FLY -2EDD CJK RADICAL EAT ONE -2EDE CJK RADICAL EAT TWO -2EDF CJK RADICAL EAT THREE -2EE0 CJK RADICAL C-SIMPLIFIED EAT -2EE1 CJK RADICAL HEAD -2EE2 CJK RADICAL C-SIMPLIFIED HORSE -2EE3 CJK RADICAL BONE -2EE4 CJK RADICAL GHOST -2EE5 CJK RADICAL C-SIMPLIFIED FISH -2EE6 CJK RADICAL C-SIMPLIFIED BIRD -2EE7 CJK RADICAL C-SIMPLIFIED SALT -2EE8 CJK RADICAL SIMPLIFIED WHEAT -2EE9 CJK RADICAL SIMPLIFIED YELLOW -2EEA CJK RADICAL C-SIMPLIFIED FROG -2EEB CJK RADICAL J-SIMPLIFIED EVEN -2EEC CJK RADICAL C-SIMPLIFIED EVEN -2EED CJK RADICAL J-SIMPLIFIED TOOTH -2EEE CJK RADICAL C-SIMPLIFIED TOOTH -2EEF CJK RADICAL J-SIMPLIFIED DRAGON -2EF0 CJK RADICAL C-SIMPLIFIED DRAGON -2EF1 CJK RADICAL TURTLE -2EF2 CJK RADICAL J-SIMPLIFIED TURTLE -2EF3 CJK RADICAL C-SIMPLIFIED TURTLE -2F00 KANGXI RADICAL ONE -2F01 KANGXI RADICAL LINE -2F02 KANGXI RADICAL DOT -2F03 KANGXI RADICAL SLASH -2F04 KANGXI RADICAL SECOND -2F05 KANGXI RADICAL HOOK -2F06 KANGXI RADICAL TWO -2F07 KANGXI RADICAL LID -2F08 KANGXI RADICAL MAN -2F09 KANGXI RADICAL LEGS -2F0A KANGXI RADICAL ENTER -2F0B KANGXI RADICAL EIGHT -2F0C KANGXI RADICAL DOWN BOX -2F0D KANGXI RADICAL COVER -2F0E KANGXI RADICAL ICE -2F0F KANGXI RADICAL TABLE -2F10 KANGXI RADICAL OPEN BOX -2F11 KANGXI RADICAL KNIFE -2F12 KANGXI RADICAL POWER -2F13 KANGXI RADICAL WRAP -2F14 KANGXI RADICAL SPOON -2F15 KANGXI RADICAL RIGHT OPEN BOX -2F16 KANGXI RADICAL HIDING ENCLOSURE -2F17 KANGXI RADICAL TEN -2F18 KANGXI RADICAL DIVINATION -2F19 KANGXI RADICAL SEAL -2F1A KANGXI RADICAL CLIFF -2F1B KANGXI RADICAL PRIVATE -2F1C KANGXI RADICAL AGAIN -2F1D KANGXI RADICAL MOUTH -2F1E KANGXI RADICAL ENCLOSURE -2F1F KANGXI RADICAL EARTH -2F20 KANGXI RADICAL SCHOLAR -2F21 KANGXI RADICAL GO -2F22 KANGXI RADICAL GO SLOWLY -2F23 KANGXI RADICAL EVENING -2F24 KANGXI RADICAL BIG -2F25 KANGXI RADICAL WOMAN -2F26 KANGXI RADICAL CHILD -2F27 KANGXI RADICAL ROOF -2F28 KANGXI RADICAL INCH -2F29 KANGXI RADICAL SMALL -2F2A KANGXI RADICAL LAME -2F2B KANGXI RADICAL CORPSE -2F2C KANGXI RADICAL SPROUT -2F2D KANGXI RADICAL MOUNTAIN -2F2E KANGXI RADICAL RIVER -2F2F KANGXI RADICAL WORK -2F30 KANGXI RADICAL ONESELF -2F31 KANGXI RADICAL TURBAN -2F32 KANGXI RADICAL DRY -2F33 KANGXI RADICAL SHORT THREAD -2F34 KANGXI RADICAL DOTTED CLIFF -2F35 KANGXI RADICAL LONG STRIDE -2F36 KANGXI RADICAL TWO HANDS -2F37 KANGXI RADICAL SHOOT -2F38 KANGXI RADICAL BOW -2F39 KANGXI RADICAL SNOUT -2F3A KANGXI RADICAL BRISTLE -2F3B KANGXI RADICAL STEP -2F3C KANGXI RADICAL HEART -2F3D KANGXI RADICAL HALBERD -2F3E KANGXI RADICAL DOOR -2F3F KANGXI RADICAL HAND -2F40 KANGXI RADICAL BRANCH -2F41 KANGXI RADICAL RAP -2F42 KANGXI RADICAL SCRIPT -2F43 KANGXI RADICAL DIPPER -2F44 KANGXI RADICAL AXE -2F45 KANGXI RADICAL SQUARE -2F46 KANGXI RADICAL NOT -2F47 KANGXI RADICAL SUN -2F48 KANGXI RADICAL SAY -2F49 KANGXI RADICAL MOON -2F4A KANGXI RADICAL TREE -2F4B KANGXI RADICAL LACK -2F4C KANGXI RADICAL STOP -2F4D KANGXI RADICAL DEATH -2F4E KANGXI RADICAL WEAPON -2F4F KANGXI RADICAL DO NOT -2F50 KANGXI RADICAL COMPARE -2F51 KANGXI RADICAL FUR -2F52 KANGXI RADICAL CLAN -2F53 KANGXI RADICAL STEAM -2F54 KANGXI RADICAL WATER -2F55 KANGXI RADICAL FIRE -2F56 KANGXI RADICAL CLAW -2F57 KANGXI RADICAL FATHER -2F58 KANGXI RADICAL DOUBLE X -2F59 KANGXI RADICAL HALF TREE TRUNK -2F5A KANGXI RADICAL SLICE -2F5B KANGXI RADICAL FANG -2F5C KANGXI RADICAL COW -2F5D KANGXI RADICAL DOG -2F5E KANGXI RADICAL PROFOUND -2F5F KANGXI RADICAL JADE -2F60 KANGXI RADICAL MELON -2F61 KANGXI RADICAL TILE -2F62 KANGXI RADICAL SWEET -2F63 KANGXI RADICAL LIFE -2F64 KANGXI RADICAL USE -2F65 KANGXI RADICAL FIELD -2F66 KANGXI RADICAL BOLT OF CLOTH -2F67 KANGXI RADICAL SICKNESS -2F68 KANGXI RADICAL DOTTED TENT -2F69 KANGXI RADICAL WHITE -2F6A KANGXI RADICAL SKIN -2F6B KANGXI RADICAL DISH -2F6C KANGXI RADICAL EYE -2F6D KANGXI RADICAL SPEAR -2F6E KANGXI RADICAL ARROW -2F6F KANGXI RADICAL STONE -2F70 KANGXI RADICAL SPIRIT -2F71 KANGXI RADICAL TRACK -2F72 KANGXI RADICAL GRAIN -2F73 KANGXI RADICAL CAVE -2F74 KANGXI RADICAL STAND -2F75 KANGXI RADICAL BAMBOO -2F76 KANGXI RADICAL RICE -2F77 KANGXI RADICAL SILK -2F78 KANGXI RADICAL JAR -2F79 KANGXI RADICAL NET -2F7A KANGXI RADICAL SHEEP -2F7B KANGXI RADICAL FEATHER -2F7C KANGXI RADICAL OLD -2F7D KANGXI RADICAL AND -2F7E KANGXI RADICAL PLOW -2F7F KANGXI RADICAL EAR -2F80 KANGXI RADICAL BRUSH -2F81 KANGXI RADICAL MEAT -2F82 KANGXI RADICAL MINISTER -2F83 KANGXI RADICAL SELF -2F84 KANGXI RADICAL ARRIVE -2F85 KANGXI RADICAL MORTAR -2F86 KANGXI RADICAL TONGUE -2F87 KANGXI RADICAL OPPOSE -2F88 KANGXI RADICAL BOAT -2F89 KANGXI RADICAL STOPPING -2F8A KANGXI RADICAL COLOR -2F8B KANGXI RADICAL GRASS -2F8C KANGXI RADICAL TIGER -2F8D KANGXI RADICAL INSECT -2F8E KANGXI RADICAL BLOOD -2F8F KANGXI RADICAL WALK ENCLOSURE -2F90 KANGXI RADICAL CLOTHES -2F91 KANGXI RADICAL WEST -2F92 KANGXI RADICAL SEE -2F93 KANGXI RADICAL HORN -2F94 KANGXI RADICAL SPEECH -2F95 KANGXI RADICAL VALLEY -2F96 KANGXI RADICAL BEAN -2F97 KANGXI RADICAL PIG -2F98 KANGXI RADICAL BADGER -2F99 KANGXI RADICAL SHELL -2F9A KANGXI RADICAL RED -2F9B KANGXI RADICAL RUN -2F9C KANGXI RADICAL FOOT -2F9D KANGXI RADICAL BODY -2F9E KANGXI RADICAL CART -2F9F KANGXI RADICAL BITTER -2FA0 KANGXI RADICAL MORNING -2FA1 KANGXI RADICAL WALK -2FA2 KANGXI RADICAL CITY -2FA3 KANGXI RADICAL WINE -2FA4 KANGXI RADICAL DISTINGUISH -2FA5 KANGXI RADICAL VILLAGE -2FA6 KANGXI RADICAL GOLD -2FA7 KANGXI RADICAL LONG -2FA8 KANGXI RADICAL GATE -2FA9 KANGXI RADICAL MOUND -2FAA KANGXI RADICAL SLAVE -2FAB KANGXI RADICAL SHORT TAILED BIRD -2FAC KANGXI RADICAL RAIN -2FAD KANGXI RADICAL BLUE -2FAE KANGXI RADICAL WRONG -2FAF KANGXI RADICAL FACE -2FB0 KANGXI RADICAL LEATHER -2FB1 KANGXI RADICAL TANNED LEATHER -2FB2 KANGXI RADICAL LEEK -2FB3 KANGXI RADICAL SOUND -2FB4 KANGXI RADICAL LEAF -2FB5 KANGXI RADICAL WIND -2FB6 KANGXI RADICAL FLY -2FB7 KANGXI RADICAL EAT -2FB8 KANGXI RADICAL HEAD -2FB9 KANGXI RADICAL FRAGRANT -2FBA KANGXI RADICAL HORSE -2FBB KANGXI RADICAL BONE -2FBC KANGXI RADICAL TALL -2FBD KANGXI RADICAL HAIR -2FBE KANGXI RADICAL FIGHT -2FBF KANGXI RADICAL SACRIFICIAL WINE -2FC0 KANGXI RADICAL CAULDRON -2FC1 KANGXI RADICAL GHOST -2FC2 KANGXI RADICAL FISH -2FC3 KANGXI RADICAL BIRD -2FC4 KANGXI RADICAL SALT -2FC5 KANGXI RADICAL DEER -2FC6 KANGXI RADICAL WHEAT -2FC7 KANGXI RADICAL HEMP -2FC8 KANGXI RADICAL YELLOW -2FC9 KANGXI RADICAL MILLET -2FCA KANGXI RADICAL BLACK -2FCB KANGXI RADICAL EMBROIDERY -2FCC KANGXI RADICAL FROG -2FCD KANGXI RADICAL TRIPOD -2FCE KANGXI RADICAL DRUM -2FCF KANGXI RADICAL RAT -2FD0 KANGXI RADICAL NOSE -2FD1 KANGXI RADICAL EVEN -2FD2 KANGXI RADICAL TOOTH -2FD3 KANGXI RADICAL DRAGON -2FD4 KANGXI RADICAL TURTLE -2FD5 KANGXI RADICAL FLUTE -2FF0 IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT -2FF1 IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO BELOW -2FF2 IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO MIDDLE AND RIGHT -2FF3 IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO MIDDLE AND BELOW -2FF4 IDEOGRAPHIC DESCRIPTION CHARACTER FULL SURROUND -2FF5 IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM ABOVE -2FF6 IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM BELOW -2FF7 IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LEFT -2FF8 IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER LEFT -2FF9 IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER RIGHT -2FFA IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LOWER LEFT -2FFB IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID -3000 IDEOGRAPHIC SPACE -3001 IDEOGRAPHIC COMMA -3002 IDEOGRAPHIC FULL STOP -3003 DITTO MARK -3004 JAPANESE INDUSTRIAL STANDARD SYMBOL -3005 IDEOGRAPHIC ITERATION MARK -3006 IDEOGRAPHIC CLOSING MARK -3007 IDEOGRAPHIC NUMBER ZERO -3008 LEFT ANGLE BRACKET -3009 RIGHT ANGLE BRACKET -300A LEFT DOUBLE ANGLE BRACKET -300B RIGHT DOUBLE ANGLE BRACKET -300C LEFT CORNER BRACKET -300D RIGHT CORNER BRACKET -300E LEFT WHITE CORNER BRACKET -300F RIGHT WHITE CORNER BRACKET -3010 LEFT BLACK LENTICULAR BRACKET -3011 RIGHT BLACK LENTICULAR BRACKET -3012 POSTAL MARK -3013 GETA MARK -3014 LEFT TORTOISE SHELL BRACKET -3015 RIGHT TORTOISE SHELL BRACKET -3016 LEFT WHITE LENTICULAR BRACKET -3017 RIGHT WHITE LENTICULAR BRACKET -3018 LEFT WHITE TORTOISE SHELL BRACKET -3019 RIGHT WHITE TORTOISE SHELL BRACKET -301A LEFT WHITE SQUARE BRACKET -301B RIGHT WHITE SQUARE BRACKET -301C WAVE DASH -301D REVERSED DOUBLE PRIME QUOTATION MARK -301E DOUBLE PRIME QUOTATION MARK -301F LOW DOUBLE PRIME QUOTATION MARK -3020 POSTAL MARK FACE -3021 HANGZHOU NUMERAL ONE -3022 HANGZHOU NUMERAL TWO -3023 HANGZHOU NUMERAL THREE -3024 HANGZHOU NUMERAL FOUR -3025 HANGZHOU NUMERAL FIVE -3026 HANGZHOU NUMERAL SIX -3027 HANGZHOU NUMERAL SEVEN -3028 HANGZHOU NUMERAL EIGHT -3029 HANGZHOU NUMERAL NINE -302A IDEOGRAPHIC LEVEL TONE MARK -302B IDEOGRAPHIC RISING TONE MARK -302C IDEOGRAPHIC DEPARTING TONE MARK -302D IDEOGRAPHIC ENTERING TONE MARK -302E HANGUL SINGLE DOT TONE MARK -302F HANGUL DOUBLE DOT TONE MARK -3030 WAVY DASH -3031 VERTICAL KANA REPEAT MARK -3032 VERTICAL KANA REPEAT WITH VOICED SOUND MARK -3033 VERTICAL KANA REPEAT MARK UPPER HALF -3034 VERTICAL KANA REPEAT WITH VOICED SOUND MARK UPPER HALF -3035 VERTICAL KANA REPEAT MARK LOWER HALF -3036 CIRCLED POSTAL MARK -3037 IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL -3038 HANGZHOU NUMERAL TEN -3039 HANGZHOU NUMERAL TWENTY -303A HANGZHOU NUMERAL THIRTY -303B VERTICAL IDEOGRAPHIC ITERATION MARK -303C MASU MARK -303D PART ALTERNATION MARK -303E IDEOGRAPHIC VARIATION INDICATOR -303F IDEOGRAPHIC HALF FILL SPACE -3041 HIRAGANA LETTER SMALL A -3042 HIRAGANA LETTER A -3043 HIRAGANA LETTER SMALL I -3044 HIRAGANA LETTER I -3045 HIRAGANA LETTER SMALL U -3046 HIRAGANA LETTER U -3047 HIRAGANA LETTER SMALL E -3048 HIRAGANA LETTER E -3049 HIRAGANA LETTER SMALL O -304A HIRAGANA LETTER O -304B HIRAGANA LETTER KA -304C HIRAGANA LETTER GA -304D HIRAGANA LETTER KI -304E HIRAGANA LETTER GI -304F HIRAGANA LETTER KU -3050 HIRAGANA LETTER GU -3051 HIRAGANA LETTER KE -3052 HIRAGANA LETTER GE -3053 HIRAGANA LETTER KO -3054 HIRAGANA LETTER GO -3055 HIRAGANA LETTER SA -3056 HIRAGANA LETTER ZA -3057 HIRAGANA LETTER SI -3058 HIRAGANA LETTER ZI -3059 HIRAGANA LETTER SU -305A HIRAGANA LETTER ZU -305B HIRAGANA LETTER SE -305C HIRAGANA LETTER ZE -305D HIRAGANA LETTER SO -305E HIRAGANA LETTER ZO -305F HIRAGANA LETTER TA -3060 HIRAGANA LETTER DA -3061 HIRAGANA LETTER TI -3062 HIRAGANA LETTER DI -3063 HIRAGANA LETTER SMALL TU -3064 HIRAGANA LETTER TU -3065 HIRAGANA LETTER DU -3066 HIRAGANA LETTER TE -3067 HIRAGANA LETTER DE -3068 HIRAGANA LETTER TO -3069 HIRAGANA LETTER DO -306A HIRAGANA LETTER NA -306B HIRAGANA LETTER NI -306C HIRAGANA LETTER NU -306D HIRAGANA LETTER NE -306E HIRAGANA LETTER NO -306F HIRAGANA LETTER HA -3070 HIRAGANA LETTER BA -3071 HIRAGANA LETTER PA -3072 HIRAGANA LETTER HI -3073 HIRAGANA LETTER BI -3074 HIRAGANA LETTER PI -3075 HIRAGANA LETTER HU -3076 HIRAGANA LETTER BU -3077 HIRAGANA LETTER PU -3078 HIRAGANA LETTER HE -3079 HIRAGANA LETTER BE -307A HIRAGANA LETTER PE -307B HIRAGANA LETTER HO -307C HIRAGANA LETTER BO -307D HIRAGANA LETTER PO -307E HIRAGANA LETTER MA -307F HIRAGANA LETTER MI -3080 HIRAGANA LETTER MU -3081 HIRAGANA LETTER ME -3082 HIRAGANA LETTER MO -3083 HIRAGANA LETTER SMALL YA -3084 HIRAGANA LETTER YA -3085 HIRAGANA LETTER SMALL YU -3086 HIRAGANA LETTER YU -3087 HIRAGANA LETTER SMALL YO -3088 HIRAGANA LETTER YO -3089 HIRAGANA LETTER RA -308A HIRAGANA LETTER RI -308B HIRAGANA LETTER RU -308C HIRAGANA LETTER RE -308D HIRAGANA LETTER RO -308E HIRAGANA LETTER SMALL WA -308F HIRAGANA LETTER WA -3090 HIRAGANA LETTER WI -3091 HIRAGANA LETTER WE -3092 HIRAGANA LETTER WO -3093 HIRAGANA LETTER N -3094 HIRAGANA LETTER VU -3095 HIRAGANA LETTER SMALL KA -3096 HIRAGANA LETTER SMALL KE -3099 COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK -309A COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK -309B KATAKANA-HIRAGANA VOICED SOUND MARK -309C KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK -309D HIRAGANA ITERATION MARK -309E HIRAGANA VOICED ITERATION MARK -309F HIRAGANA DIGRAPH YORI -30A0 KATAKANA-HIRAGANA DOUBLE HYPHEN -30A1 KATAKANA LETTER SMALL A -30A2 KATAKANA LETTER A -30A3 KATAKANA LETTER SMALL I -30A4 KATAKANA LETTER I -30A5 KATAKANA LETTER SMALL U -30A6 KATAKANA LETTER U -30A7 KATAKANA LETTER SMALL E -30A8 KATAKANA LETTER E -30A9 KATAKANA LETTER SMALL O -30AA KATAKANA LETTER O -30AB KATAKANA LETTER KA -30AC KATAKANA LETTER GA -30AD KATAKANA LETTER KI -30AE KATAKANA LETTER GI -30AF KATAKANA LETTER KU -30B0 KATAKANA LETTER GU -30B1 KATAKANA LETTER KE -30B2 KATAKANA LETTER GE -30B3 KATAKANA LETTER KO -30B4 KATAKANA LETTER GO -30B5 KATAKANA LETTER SA -30B6 KATAKANA LETTER ZA -30B7 KATAKANA LETTER SI -30B8 KATAKANA LETTER ZI -30B9 KATAKANA LETTER SU -30BA KATAKANA LETTER ZU -30BB KATAKANA LETTER SE -30BC KATAKANA LETTER ZE -30BD KATAKANA LETTER SO -30BE KATAKANA LETTER ZO -30BF KATAKANA LETTER TA -30C0 KATAKANA LETTER DA -30C1 KATAKANA LETTER TI -30C2 KATAKANA LETTER DI -30C3 KATAKANA LETTER SMALL TU -30C4 KATAKANA LETTER TU -30C5 KATAKANA LETTER DU -30C6 KATAKANA LETTER TE -30C7 KATAKANA LETTER DE -30C8 KATAKANA LETTER TO -30C9 KATAKANA LETTER DO -30CA KATAKANA LETTER NA -30CB KATAKANA LETTER NI -30CC KATAKANA LETTER NU -30CD KATAKANA LETTER NE -30CE KATAKANA LETTER NO -30CF KATAKANA LETTER HA -30D0 KATAKANA LETTER BA -30D1 KATAKANA LETTER PA -30D2 KATAKANA LETTER HI -30D3 KATAKANA LETTER BI -30D4 KATAKANA LETTER PI -30D5 KATAKANA LETTER HU -30D6 KATAKANA LETTER BU -30D7 KATAKANA LETTER PU -30D8 KATAKANA LETTER HE -30D9 KATAKANA LETTER BE -30DA KATAKANA LETTER PE -30DB KATAKANA LETTER HO -30DC KATAKANA LETTER BO -30DD KATAKANA LETTER PO -30DE KATAKANA LETTER MA -30DF KATAKANA LETTER MI -30E0 KATAKANA LETTER MU -30E1 KATAKANA LETTER ME -30E2 KATAKANA LETTER MO -30E3 KATAKANA LETTER SMALL YA -30E4 KATAKANA LETTER YA -30E5 KATAKANA LETTER SMALL YU -30E6 KATAKANA LETTER YU -30E7 KATAKANA LETTER SMALL YO -30E8 KATAKANA LETTER YO -30E9 KATAKANA LETTER RA -30EA KATAKANA LETTER RI -30EB KATAKANA LETTER RU -30EC KATAKANA LETTER RE -30ED KATAKANA LETTER RO -30EE KATAKANA LETTER SMALL WA -30EF KATAKANA LETTER WA -30F0 KATAKANA LETTER WI -30F1 KATAKANA LETTER WE -30F2 KATAKANA LETTER WO -30F3 KATAKANA LETTER N -30F4 KATAKANA LETTER VU -30F5 KATAKANA LETTER SMALL KA -30F6 KATAKANA LETTER SMALL KE -30F7 KATAKANA LETTER VA -30F8 KATAKANA LETTER VI -30F9 KATAKANA LETTER VE -30FA KATAKANA LETTER VO -30FB KATAKANA MIDDLE DOT -30FC KATAKANA-HIRAGANA PROLONGED SOUND MARK -30FD KATAKANA ITERATION MARK -30FE KATAKANA VOICED ITERATION MARK -30FF KATAKANA DIGRAPH KOTO -3105 BOPOMOFO LETTER B -3106 BOPOMOFO LETTER P -3107 BOPOMOFO LETTER M -3108 BOPOMOFO LETTER F -3109 BOPOMOFO LETTER D -310A BOPOMOFO LETTER T -310B BOPOMOFO LETTER N -310C BOPOMOFO LETTER L -310D BOPOMOFO LETTER G -310E BOPOMOFO LETTER K -310F BOPOMOFO LETTER H -3110 BOPOMOFO LETTER J -3111 BOPOMOFO LETTER Q -3112 BOPOMOFO LETTER X -3113 BOPOMOFO LETTER ZH -3114 BOPOMOFO LETTER CH -3115 BOPOMOFO LETTER SH -3116 BOPOMOFO LETTER R -3117 BOPOMOFO LETTER Z -3118 BOPOMOFO LETTER C -3119 BOPOMOFO LETTER S -311A BOPOMOFO LETTER A -311B BOPOMOFO LETTER O -311C BOPOMOFO LETTER E -311D BOPOMOFO LETTER EH -311E BOPOMOFO LETTER AI -311F BOPOMOFO LETTER EI -3120 BOPOMOFO LETTER AU -3121 BOPOMOFO LETTER OU -3122 BOPOMOFO LETTER AN -3123 BOPOMOFO LETTER EN -3124 BOPOMOFO LETTER ANG -3125 BOPOMOFO LETTER ENG -3126 BOPOMOFO LETTER ER -3127 BOPOMOFO LETTER I -3128 BOPOMOFO LETTER U -3129 BOPOMOFO LETTER IU -312A BOPOMOFO LETTER V -312B BOPOMOFO LETTER NG -312C BOPOMOFO LETTER GN -3131 HANGUL LETTER KIYEOK -3132 HANGUL LETTER SSANGKIYEOK -3133 HANGUL LETTER KIYEOK-SIOS -3134 HANGUL LETTER NIEUN -3135 HANGUL LETTER NIEUN-CIEUC -3136 HANGUL LETTER NIEUN-HIEUH -3137 HANGUL LETTER TIKEUT -3138 HANGUL LETTER SSANGTIKEUT -3139 HANGUL LETTER RIEUL -313A HANGUL LETTER RIEUL-KIYEOK -313B HANGUL LETTER RIEUL-MIEUM -313C HANGUL LETTER RIEUL-PIEUP -313D HANGUL LETTER RIEUL-SIOS -313E HANGUL LETTER RIEUL-THIEUTH -313F HANGUL LETTER RIEUL-PHIEUPH -3140 HANGUL LETTER RIEUL-HIEUH -3141 HANGUL LETTER MIEUM -3142 HANGUL LETTER PIEUP -3143 HANGUL LETTER SSANGPIEUP -3144 HANGUL LETTER PIEUP-SIOS -3145 HANGUL LETTER SIOS -3146 HANGUL LETTER SSANGSIOS -3147 HANGUL LETTER IEUNG -3148 HANGUL LETTER CIEUC -3149 HANGUL LETTER SSANGCIEUC -314A HANGUL LETTER CHIEUCH -314B HANGUL LETTER KHIEUKH -314C HANGUL LETTER THIEUTH -314D HANGUL LETTER PHIEUPH -314E HANGUL LETTER HIEUH -314F HANGUL LETTER A -3150 HANGUL LETTER AE -3151 HANGUL LETTER YA -3152 HANGUL LETTER YAE -3153 HANGUL LETTER EO -3154 HANGUL LETTER E -3155 HANGUL LETTER YEO -3156 HANGUL LETTER YE -3157 HANGUL LETTER O -3158 HANGUL LETTER WA -3159 HANGUL LETTER WAE -315A HANGUL LETTER OE -315B HANGUL LETTER YO -315C HANGUL LETTER U -315D HANGUL LETTER WEO -315E HANGUL LETTER WE -315F HANGUL LETTER WI -3160 HANGUL LETTER YU -3161 HANGUL LETTER EU -3162 HANGUL LETTER YI -3163 HANGUL LETTER I -3164 HANGUL FILLER -3165 HANGUL LETTER SSANGNIEUN -3166 HANGUL LETTER NIEUN-TIKEUT -3167 HANGUL LETTER NIEUN-SIOS -3168 HANGUL LETTER NIEUN-PANSIOS -3169 HANGUL LETTER RIEUL-KIYEOK-SIOS -316A HANGUL LETTER RIEUL-TIKEUT -316B HANGUL LETTER RIEUL-PIEUP-SIOS -316C HANGUL LETTER RIEUL-PANSIOS -316D HANGUL LETTER RIEUL-YEORINHIEUH -316E HANGUL LETTER MIEUM-PIEUP -316F HANGUL LETTER MIEUM-SIOS -3170 HANGUL LETTER MIEUM-PANSIOS -3171 HANGUL LETTER KAPYEOUNMIEUM -3172 HANGUL LETTER PIEUP-KIYEOK -3173 HANGUL LETTER PIEUP-TIKEUT -3174 HANGUL LETTER PIEUP-SIOS-KIYEOK -3175 HANGUL LETTER PIEUP-SIOS-TIKEUT -3176 HANGUL LETTER PIEUP-CIEUC -3177 HANGUL LETTER PIEUP-THIEUTH -3178 HANGUL LETTER KAPYEOUNPIEUP -3179 HANGUL LETTER KAPYEOUNSSANGPIEUP -317A HANGUL LETTER SIOS-KIYEOK -317B HANGUL LETTER SIOS-NIEUN -317C HANGUL LETTER SIOS-TIKEUT -317D HANGUL LETTER SIOS-PIEUP -317E HANGUL LETTER SIOS-CIEUC -317F HANGUL LETTER PANSIOS -3180 HANGUL LETTER SSANGIEUNG -3181 HANGUL LETTER YESIEUNG -3182 HANGUL LETTER YESIEUNG-SIOS -3183 HANGUL LETTER YESIEUNG-PANSIOS -3184 HANGUL LETTER KAPYEOUNPHIEUPH -3185 HANGUL LETTER SSANGHIEUH -3186 HANGUL LETTER YEORINHIEUH -3187 HANGUL LETTER YO-YA -3188 HANGUL LETTER YO-YAE -3189 HANGUL LETTER YO-I -318A HANGUL LETTER YU-YEO -318B HANGUL LETTER YU-YE -318C HANGUL LETTER YU-I -318D HANGUL LETTER ARAEA -318E HANGUL LETTER ARAEAE -3190 IDEOGRAPHIC ANNOTATION LINKING MARK -3191 IDEOGRAPHIC ANNOTATION REVERSE MARK -3192 IDEOGRAPHIC ANNOTATION ONE MARK -3193 IDEOGRAPHIC ANNOTATION TWO MARK -3194 IDEOGRAPHIC ANNOTATION THREE MARK -3195 IDEOGRAPHIC ANNOTATION FOUR MARK -3196 IDEOGRAPHIC ANNOTATION TOP MARK -3197 IDEOGRAPHIC ANNOTATION MIDDLE MARK -3198 IDEOGRAPHIC ANNOTATION BOTTOM MARK -3199 IDEOGRAPHIC ANNOTATION FIRST MARK -319A IDEOGRAPHIC ANNOTATION SECOND MARK -319B IDEOGRAPHIC ANNOTATION THIRD MARK -319C IDEOGRAPHIC ANNOTATION FOURTH MARK -319D IDEOGRAPHIC ANNOTATION HEAVEN MARK -319E IDEOGRAPHIC ANNOTATION EARTH MARK -319F IDEOGRAPHIC ANNOTATION MAN MARK -31A0 BOPOMOFO LETTER BU -31A1 BOPOMOFO LETTER ZI -31A2 BOPOMOFO LETTER JI -31A3 BOPOMOFO LETTER GU -31A4 BOPOMOFO LETTER EE -31A5 BOPOMOFO LETTER ENN -31A6 BOPOMOFO LETTER OO -31A7 BOPOMOFO LETTER ONN -31A8 BOPOMOFO LETTER IR -31A9 BOPOMOFO LETTER ANN -31AA BOPOMOFO LETTER INN -31AB BOPOMOFO LETTER UNN -31AC BOPOMOFO LETTER IM -31AD BOPOMOFO LETTER NGG -31AE BOPOMOFO LETTER AINN -31AF BOPOMOFO LETTER AUNN -31B0 BOPOMOFO LETTER AM -31B1 BOPOMOFO LETTER OM -31B2 BOPOMOFO LETTER ONG -31B3 BOPOMOFO LETTER INNN -31B4 BOPOMOFO FINAL LETTER P -31B5 BOPOMOFO FINAL LETTER T -31B6 BOPOMOFO FINAL LETTER K -31B7 BOPOMOFO FINAL LETTER H -31F0 KATAKANA LETTER SMALL KU -31F1 KATAKANA LETTER SMALL SI -31F2 KATAKANA LETTER SMALL SU -31F3 KATAKANA LETTER SMALL TO -31F4 KATAKANA LETTER SMALL NU -31F5 KATAKANA LETTER SMALL HA -31F6 KATAKANA LETTER SMALL HI -31F7 KATAKANA LETTER SMALL HU -31F8 KATAKANA LETTER SMALL HE -31F9 KATAKANA LETTER SMALL HO -31FA KATAKANA LETTER SMALL MU -31FB KATAKANA LETTER SMALL RA -31FC KATAKANA LETTER SMALL RI -31FD KATAKANA LETTER SMALL RU -31FE KATAKANA LETTER SMALL RE -31FF KATAKANA LETTER SMALL RO -3200 PARENTHESIZED HANGUL KIYEOK -3201 PARENTHESIZED HANGUL NIEUN -3202 PARENTHESIZED HANGUL TIKEUT -3203 PARENTHESIZED HANGUL RIEUL -3204 PARENTHESIZED HANGUL MIEUM -3205 PARENTHESIZED HANGUL PIEUP -3206 PARENTHESIZED HANGUL SIOS -3207 PARENTHESIZED HANGUL IEUNG -3208 PARENTHESIZED HANGUL CIEUC -3209 PARENTHESIZED HANGUL CHIEUCH -320A PARENTHESIZED HANGUL KHIEUKH -320B PARENTHESIZED HANGUL THIEUTH -320C PARENTHESIZED HANGUL PHIEUPH -320D PARENTHESIZED HANGUL HIEUH -320E PARENTHESIZED HANGUL KIYEOK A -320F PARENTHESIZED HANGUL NIEUN A -3210 PARENTHESIZED HANGUL TIKEUT A -3211 PARENTHESIZED HANGUL RIEUL A -3212 PARENTHESIZED HANGUL MIEUM A -3213 PARENTHESIZED HANGUL PIEUP A -3214 PARENTHESIZED HANGUL SIOS A -3215 PARENTHESIZED HANGUL IEUNG A -3216 PARENTHESIZED HANGUL CIEUC A -3217 PARENTHESIZED HANGUL CHIEUCH A -3218 PARENTHESIZED HANGUL KHIEUKH A -3219 PARENTHESIZED HANGUL THIEUTH A -321A PARENTHESIZED HANGUL PHIEUPH A -321B PARENTHESIZED HANGUL HIEUH A -321C PARENTHESIZED HANGUL CIEUC U -3220 PARENTHESIZED IDEOGRAPH ONE -3221 PARENTHESIZED IDEOGRAPH TWO -3222 PARENTHESIZED IDEOGRAPH THREE -3223 PARENTHESIZED IDEOGRAPH FOUR -3224 PARENTHESIZED IDEOGRAPH FIVE -3225 PARENTHESIZED IDEOGRAPH SIX -3226 PARENTHESIZED IDEOGRAPH SEVEN -3227 PARENTHESIZED IDEOGRAPH EIGHT -3228 PARENTHESIZED IDEOGRAPH NINE -3229 PARENTHESIZED IDEOGRAPH TEN -322A PARENTHESIZED IDEOGRAPH MOON -322B PARENTHESIZED IDEOGRAPH FIRE -322C PARENTHESIZED IDEOGRAPH WATER -322D PARENTHESIZED IDEOGRAPH WOOD -322E PARENTHESIZED IDEOGRAPH METAL -322F PARENTHESIZED IDEOGRAPH EARTH -3230 PARENTHESIZED IDEOGRAPH SUN -3231 PARENTHESIZED IDEOGRAPH STOCK -3232 PARENTHESIZED IDEOGRAPH HAVE -3233 PARENTHESIZED IDEOGRAPH SOCIETY -3234 PARENTHESIZED IDEOGRAPH NAME -3235 PARENTHESIZED IDEOGRAPH SPECIAL -3236 PARENTHESIZED IDEOGRAPH FINANCIAL -3237 PARENTHESIZED IDEOGRAPH CONGRATULATION -3238 PARENTHESIZED IDEOGRAPH LABOR -3239 PARENTHESIZED IDEOGRAPH REPRESENT -323A PARENTHESIZED IDEOGRAPH CALL -323B PARENTHESIZED IDEOGRAPH STUDY -323C PARENTHESIZED IDEOGRAPH SUPERVISE -323D PARENTHESIZED IDEOGRAPH ENTERPRISE -323E PARENTHESIZED IDEOGRAPH RESOURCE -323F PARENTHESIZED IDEOGRAPH ALLIANCE -3240 PARENTHESIZED IDEOGRAPH FESTIVAL -3241 PARENTHESIZED IDEOGRAPH REST -3242 PARENTHESIZED IDEOGRAPH SELF -3243 PARENTHESIZED IDEOGRAPH REACH -3251 CIRCLED NUMBER TWENTY ONE -3252 CIRCLED NUMBER TWENTY TWO -3253 CIRCLED NUMBER TWENTY THREE -3254 CIRCLED NUMBER TWENTY FOUR -3255 CIRCLED NUMBER TWENTY FIVE -3256 CIRCLED NUMBER TWENTY SIX -3257 CIRCLED NUMBER TWENTY SEVEN -3258 CIRCLED NUMBER TWENTY EIGHT -3259 CIRCLED NUMBER TWENTY NINE -325A CIRCLED NUMBER THIRTY -325B CIRCLED NUMBER THIRTY ONE -325C CIRCLED NUMBER THIRTY TWO -325D CIRCLED NUMBER THIRTY THREE -325E CIRCLED NUMBER THIRTY FOUR -325F CIRCLED NUMBER THIRTY FIVE -3260 CIRCLED HANGUL KIYEOK -3261 CIRCLED HANGUL NIEUN -3262 CIRCLED HANGUL TIKEUT -3263 CIRCLED HANGUL RIEUL -3264 CIRCLED HANGUL MIEUM -3265 CIRCLED HANGUL PIEUP -3266 CIRCLED HANGUL SIOS -3267 CIRCLED HANGUL IEUNG -3268 CIRCLED HANGUL CIEUC -3269 CIRCLED HANGUL CHIEUCH -326A CIRCLED HANGUL KHIEUKH -326B CIRCLED HANGUL THIEUTH -326C CIRCLED HANGUL PHIEUPH -326D CIRCLED HANGUL HIEUH -326E CIRCLED HANGUL KIYEOK A -326F CIRCLED HANGUL NIEUN A -3270 CIRCLED HANGUL TIKEUT A -3271 CIRCLED HANGUL RIEUL A -3272 CIRCLED HANGUL MIEUM A -3273 CIRCLED HANGUL PIEUP A -3274 CIRCLED HANGUL SIOS A -3275 CIRCLED HANGUL IEUNG A -3276 CIRCLED HANGUL CIEUC A -3277 CIRCLED HANGUL CHIEUCH A -3278 CIRCLED HANGUL KHIEUKH A -3279 CIRCLED HANGUL THIEUTH A -327A CIRCLED HANGUL PHIEUPH A -327B CIRCLED HANGUL HIEUH A -327F KOREAN STANDARD SYMBOL -3280 CIRCLED IDEOGRAPH ONE -3281 CIRCLED IDEOGRAPH TWO -3282 CIRCLED IDEOGRAPH THREE -3283 CIRCLED IDEOGRAPH FOUR -3284 CIRCLED IDEOGRAPH FIVE -3285 CIRCLED IDEOGRAPH SIX -3286 CIRCLED IDEOGRAPH SEVEN -3287 CIRCLED IDEOGRAPH EIGHT -3288 CIRCLED IDEOGRAPH NINE -3289 CIRCLED IDEOGRAPH TEN -328A CIRCLED IDEOGRAPH MOON -328B CIRCLED IDEOGRAPH FIRE -328C CIRCLED IDEOGRAPH WATER -328D CIRCLED IDEOGRAPH WOOD -328E CIRCLED IDEOGRAPH METAL -328F CIRCLED IDEOGRAPH EARTH -3290 CIRCLED IDEOGRAPH SUN -3291 CIRCLED IDEOGRAPH STOCK -3292 CIRCLED IDEOGRAPH HAVE -3293 CIRCLED IDEOGRAPH SOCIETY -3294 CIRCLED IDEOGRAPH NAME -3295 CIRCLED IDEOGRAPH SPECIAL -3296 CIRCLED IDEOGRAPH FINANCIAL -3297 CIRCLED IDEOGRAPH CONGRATULATION -3298 CIRCLED IDEOGRAPH LABOR -3299 CIRCLED IDEOGRAPH SECRET -329A CIRCLED IDEOGRAPH MALE -329B CIRCLED IDEOGRAPH FEMALE -329C CIRCLED IDEOGRAPH SUITABLE -329D CIRCLED IDEOGRAPH EXCELLENT -329E CIRCLED IDEOGRAPH PRINT -329F CIRCLED IDEOGRAPH ATTENTION -32A0 CIRCLED IDEOGRAPH ITEM -32A1 CIRCLED IDEOGRAPH REST -32A2 CIRCLED IDEOGRAPH COPY -32A3 CIRCLED IDEOGRAPH CORRECT -32A4 CIRCLED IDEOGRAPH HIGH -32A5 CIRCLED IDEOGRAPH CENTRE -32A6 CIRCLED IDEOGRAPH LOW -32A7 CIRCLED IDEOGRAPH LEFT -32A8 CIRCLED IDEOGRAPH RIGHT -32A9 CIRCLED IDEOGRAPH MEDICINE -32AA CIRCLED IDEOGRAPH RELIGION -32AB CIRCLED IDEOGRAPH STUDY -32AC CIRCLED IDEOGRAPH SUPERVISE -32AD CIRCLED IDEOGRAPH ENTERPRISE -32AE CIRCLED IDEOGRAPH RESOURCE -32AF CIRCLED IDEOGRAPH ALLIANCE -32B0 CIRCLED IDEOGRAPH NIGHT -32B1 CIRCLED NUMBER THIRTY SIX -32B2 CIRCLED NUMBER THIRTY SEVEN -32B3 CIRCLED NUMBER THIRTY EIGHT -32B4 CIRCLED NUMBER THIRTY NINE -32B5 CIRCLED NUMBER FORTY -32B6 CIRCLED NUMBER FORTY ONE -32B7 CIRCLED NUMBER FORTY TWO -32B8 CIRCLED NUMBER FORTY THREE -32B9 CIRCLED NUMBER FORTY FOUR -32BA CIRCLED NUMBER FORTY FIVE -32BB CIRCLED NUMBER FORTY SIX -32BC CIRCLED NUMBER FORTY SEVEN -32BD CIRCLED NUMBER FORTY EIGHT -32BE CIRCLED NUMBER FORTY NINE -32BF CIRCLED NUMBER FIFTY -32C0 IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY -32C1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY -32C2 IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH -32C3 IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL -32C4 IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY -32C5 IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE -32C6 IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY -32C7 IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST -32C8 IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER -32C9 IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER -32CA IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER -32CB IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER -32D0 CIRCLED KATAKANA A -32D1 CIRCLED KATAKANA I -32D2 CIRCLED KATAKANA U -32D3 CIRCLED KATAKANA E -32D4 CIRCLED KATAKANA O -32D5 CIRCLED KATAKANA KA -32D6 CIRCLED KATAKANA KI -32D7 CIRCLED KATAKANA KU -32D8 CIRCLED KATAKANA KE -32D9 CIRCLED KATAKANA KO -32DA CIRCLED KATAKANA SA -32DB CIRCLED KATAKANA SI -32DC CIRCLED KATAKANA SU -32DD CIRCLED KATAKANA SE -32DE CIRCLED KATAKANA SO -32DF CIRCLED KATAKANA TA -32E0 CIRCLED KATAKANA TI -32E1 CIRCLED KATAKANA TU -32E2 CIRCLED KATAKANA TE -32E3 CIRCLED KATAKANA TO -32E4 CIRCLED KATAKANA NA -32E5 CIRCLED KATAKANA NI -32E6 CIRCLED KATAKANA NU -32E7 CIRCLED KATAKANA NE -32E8 CIRCLED KATAKANA NO -32E9 CIRCLED KATAKANA HA -32EA CIRCLED KATAKANA HI -32EB CIRCLED KATAKANA HU -32EC CIRCLED KATAKANA HE -32ED CIRCLED KATAKANA HO -32EE CIRCLED KATAKANA MA -32EF CIRCLED KATAKANA MI -32F0 CIRCLED KATAKANA MU -32F1 CIRCLED KATAKANA ME -32F2 CIRCLED KATAKANA MO -32F3 CIRCLED KATAKANA YA -32F4 CIRCLED KATAKANA YU -32F5 CIRCLED KATAKANA YO -32F6 CIRCLED KATAKANA RA -32F7 CIRCLED KATAKANA RI -32F8 CIRCLED KATAKANA RU -32F9 CIRCLED KATAKANA RE -32FA CIRCLED KATAKANA RO -32FB CIRCLED KATAKANA WA -32FC CIRCLED KATAKANA WI -32FD CIRCLED KATAKANA WE -32FE CIRCLED KATAKANA WO -3300 SQUARE APAATO -3301 SQUARE ARUHUA -3302 SQUARE ANPEA -3303 SQUARE AARU -3304 SQUARE ININGU -3305 SQUARE INTI -3306 SQUARE UON -3307 SQUARE ESUKUUDO -3308 SQUARE EEKAA -3309 SQUARE ONSU -330A SQUARE OOMU -330B SQUARE KAIRI -330C SQUARE KARATTO -330D SQUARE KARORII -330E SQUARE GARON -330F SQUARE GANMA -3310 SQUARE GIGA -3311 SQUARE GINII -3312 SQUARE KYURII -3313 SQUARE GIRUDAA -3314 SQUARE KIRO -3315 SQUARE KIROGURAMU -3316 SQUARE KIROMEETORU -3317 SQUARE KIROWATTO -3318 SQUARE GURAMU -3319 SQUARE GURAMUTON -331A SQUARE KURUZEIRO -331B SQUARE KUROONE -331C SQUARE KEESU -331D SQUARE KORUNA -331E SQUARE KOOPO -331F SQUARE SAIKURU -3320 SQUARE SANTIIMU -3321 SQUARE SIRINGU -3322 SQUARE SENTI -3323 SQUARE SENTO -3324 SQUARE DAASU -3325 SQUARE DESI -3326 SQUARE DORU -3327 SQUARE TON -3328 SQUARE NANO -3329 SQUARE NOTTO -332A SQUARE HAITU -332B SQUARE PAASENTO -332C SQUARE PAATU -332D SQUARE BAARERU -332E SQUARE PIASUTORU -332F SQUARE PIKURU -3330 SQUARE PIKO -3331 SQUARE BIRU -3332 SQUARE HUARADDO -3333 SQUARE HUIITO -3334 SQUARE BUSSYERU -3335 SQUARE HURAN -3336 SQUARE HEKUTAARU -3337 SQUARE PESO -3338 SQUARE PENIHI -3339 SQUARE HERUTU -333A SQUARE PENSU -333B SQUARE PEEZI -333C SQUARE BEETA -333D SQUARE POINTO -333E SQUARE BORUTO -333F SQUARE HON -3340 SQUARE PONDO -3341 SQUARE HOORU -3342 SQUARE HOON -3343 SQUARE MAIKURO -3344 SQUARE MAIRU -3345 SQUARE MAHHA -3346 SQUARE MARUKU -3347 SQUARE MANSYON -3348 SQUARE MIKURON -3349 SQUARE MIRI -334A SQUARE MIRIBAARU -334B SQUARE MEGA -334C SQUARE MEGATON -334D SQUARE MEETORU -334E SQUARE YAADO -334F SQUARE YAARU -3350 SQUARE YUAN -3351 SQUARE RITTORU -3352 SQUARE RIRA -3353 SQUARE RUPII -3354 SQUARE RUUBURU -3355 SQUARE REMU -3356 SQUARE RENTOGEN -3357 SQUARE WATTO -3358 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO -3359 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE -335A IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO -335B IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE -335C IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR -335D IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE -335E IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX -335F IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN -3360 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT -3361 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE -3362 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN -3363 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN -3364 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE -3365 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN -3366 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN -3367 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN -3368 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN -3369 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN -336A IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN -336B IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN -336C IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY -336D IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE -336E IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO -336F IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE -3370 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR -3371 SQUARE HPA -3372 SQUARE DA -3373 SQUARE AU -3374 SQUARE BAR -3375 SQUARE OV -3376 SQUARE PC -337B SQUARE ERA NAME HEISEI -337C SQUARE ERA NAME SYOUWA -337D SQUARE ERA NAME TAISYOU -337E SQUARE ERA NAME MEIZI -337F SQUARE CORPORATION -3380 SQUARE PA AMPS -3381 SQUARE NA -3382 SQUARE MU A -3383 SQUARE MA -3384 SQUARE KA -3385 SQUARE KB -3386 SQUARE MB -3387 SQUARE GB -3388 SQUARE CAL -3389 SQUARE KCAL -338A SQUARE PF -338B SQUARE NF -338C SQUARE MU F -338D SQUARE MU G -338E SQUARE MG -338F SQUARE KG -3390 SQUARE HZ -3391 SQUARE KHZ -3392 SQUARE MHZ -3393 SQUARE GHZ -3394 SQUARE THZ -3395 SQUARE MU L -3396 SQUARE ML -3397 SQUARE DL -3398 SQUARE KL -3399 SQUARE FM -339A SQUARE NM -339B SQUARE MU M -339C SQUARE MM -339D SQUARE CM -339E SQUARE KM -339F SQUARE MM SQUARED -33A0 SQUARE CM SQUARED -33A1 SQUARE M SQUARED -33A2 SQUARE KM SQUARED -33A3 SQUARE MM CUBED -33A4 SQUARE CM CUBED -33A5 SQUARE M CUBED -33A6 SQUARE KM CUBED -33A7 SQUARE M OVER S -33A8 SQUARE M OVER S SQUARED -33A9 SQUARE PA -33AA SQUARE KPA -33AB SQUARE MPA -33AC SQUARE GPA -33AD SQUARE RAD -33AE SQUARE RAD OVER S -33AF SQUARE RAD OVER S SQUARED -33B0 SQUARE PS -33B1 SQUARE NS -33B2 SQUARE MU S -33B3 SQUARE MS -33B4 SQUARE PV -33B5 SQUARE NV -33B6 SQUARE MU V -33B7 SQUARE MV -33B8 SQUARE KV -33B9 SQUARE MV MEGA -33BA SQUARE PW -33BB SQUARE NW -33BC SQUARE MU W -33BD SQUARE MW -33BE SQUARE KW -33BF SQUARE MW MEGA -33C0 SQUARE K OHM -33C1 SQUARE M OHM -33C2 SQUARE AM -33C3 SQUARE BQ -33C4 SQUARE CC -33C5 SQUARE CD -33C6 SQUARE C OVER KG -33C7 SQUARE CO -33C8 SQUARE DB -33C9 SQUARE GY -33CA SQUARE HA -33CB SQUARE HP -33CC SQUARE IN -33CD SQUARE KK -33CE SQUARE KM CAPITAL -33CF SQUARE KT -33D0 SQUARE LM -33D1 SQUARE LN -33D2 SQUARE LOG -33D3 SQUARE LX -33D4 SQUARE MB SMALL -33D5 SQUARE MIL -33D6 SQUARE MOL -33D7 SQUARE PH -33D8 SQUARE PM -33D9 SQUARE PPM -33DA SQUARE PR -33DB SQUARE SR -33DC SQUARE SV -33DD SQUARE WB -33E0 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE -33E1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO -33E2 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE -33E3 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR -33E4 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE -33E5 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX -33E6 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN -33E7 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT -33E8 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE -33E9 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN -33EA IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN -33EB IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE -33EC IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN -33ED IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN -33EE IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN -33EF IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN -33F0 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN -33F1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN -33F2 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN -33F3 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY -33F4 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE -33F5 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO -33F6 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE -33F7 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR -33F8 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE -33F9 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX -33FA IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN -33FB IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT -33FC IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE -33FD IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY -33FE IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE -3400 4DB5 CJK Ideograph Extension A -4E00 9FA5 CJK Ideograph -A000 YI SYLLABLE IT -A001 YI SYLLABLE IX -A002 YI SYLLABLE I -A003 YI SYLLABLE IP -A004 YI SYLLABLE IET -A005 YI SYLLABLE IEX -A006 YI SYLLABLE IE -A007 YI SYLLABLE IEP -A008 YI SYLLABLE AT -A009 YI SYLLABLE AX -A00A YI SYLLABLE A -A00B YI SYLLABLE AP -A00C YI SYLLABLE UOX -A00D YI SYLLABLE UO -A00E YI SYLLABLE UOP -A00F YI SYLLABLE OT -A010 YI SYLLABLE OX -A011 YI SYLLABLE O -A012 YI SYLLABLE OP -A013 YI SYLLABLE EX -A014 YI SYLLABLE E -A015 YI SYLLABLE WU -A016 YI SYLLABLE BIT -A017 YI SYLLABLE BIX -A018 YI SYLLABLE BI -A019 YI SYLLABLE BIP -A01A YI SYLLABLE BIET -A01B YI SYLLABLE BIEX -A01C YI SYLLABLE BIE -A01D YI SYLLABLE BIEP -A01E YI SYLLABLE BAT -A01F YI SYLLABLE BAX -A020 YI SYLLABLE BA -A021 YI SYLLABLE BAP -A022 YI SYLLABLE BUOX -A023 YI SYLLABLE BUO -A024 YI SYLLABLE BUOP -A025 YI SYLLABLE BOT -A026 YI SYLLABLE BOX -A027 YI SYLLABLE BO -A028 YI SYLLABLE BOP -A029 YI SYLLABLE BEX -A02A YI SYLLABLE BE -A02B YI SYLLABLE BEP -A02C YI SYLLABLE BUT -A02D YI SYLLABLE BUX -A02E YI SYLLABLE BU -A02F YI SYLLABLE BUP -A030 YI SYLLABLE BURX -A031 YI SYLLABLE BUR -A032 YI SYLLABLE BYT -A033 YI SYLLABLE BYX -A034 YI SYLLABLE BY -A035 YI SYLLABLE BYP -A036 YI SYLLABLE BYRX -A037 YI SYLLABLE BYR -A038 YI SYLLABLE PIT -A039 YI SYLLABLE PIX -A03A YI SYLLABLE PI -A03B YI SYLLABLE PIP -A03C YI SYLLABLE PIEX -A03D YI SYLLABLE PIE -A03E YI SYLLABLE PIEP -A03F YI SYLLABLE PAT -A040 YI SYLLABLE PAX -A041 YI SYLLABLE PA -A042 YI SYLLABLE PAP -A043 YI SYLLABLE PUOX -A044 YI SYLLABLE PUO -A045 YI SYLLABLE PUOP -A046 YI SYLLABLE POT -A047 YI SYLLABLE POX -A048 YI SYLLABLE PO -A049 YI SYLLABLE POP -A04A YI SYLLABLE PUT -A04B YI SYLLABLE PUX -A04C YI SYLLABLE PU -A04D YI SYLLABLE PUP -A04E YI SYLLABLE PURX -A04F YI SYLLABLE PUR -A050 YI SYLLABLE PYT -A051 YI SYLLABLE PYX -A052 YI SYLLABLE PY -A053 YI SYLLABLE PYP -A054 YI SYLLABLE PYRX -A055 YI SYLLABLE PYR -A056 YI SYLLABLE BBIT -A057 YI SYLLABLE BBIX -A058 YI SYLLABLE BBI -A059 YI SYLLABLE BBIP -A05A YI SYLLABLE BBIET -A05B YI SYLLABLE BBIEX -A05C YI SYLLABLE BBIE -A05D YI SYLLABLE BBIEP -A05E YI SYLLABLE BBAT -A05F YI SYLLABLE BBAX -A060 YI SYLLABLE BBA -A061 YI SYLLABLE BBAP -A062 YI SYLLABLE BBUOX -A063 YI SYLLABLE BBUO -A064 YI SYLLABLE BBUOP -A065 YI SYLLABLE BBOT -A066 YI SYLLABLE BBOX -A067 YI SYLLABLE BBO -A068 YI SYLLABLE BBOP -A069 YI SYLLABLE BBEX -A06A YI SYLLABLE BBE -A06B YI SYLLABLE BBEP -A06C YI SYLLABLE BBUT -A06D YI SYLLABLE BBUX -A06E YI SYLLABLE BBU -A06F YI SYLLABLE BBUP -A070 YI SYLLABLE BBURX -A071 YI SYLLABLE BBUR -A072 YI SYLLABLE BBYT -A073 YI SYLLABLE BBYX -A074 YI SYLLABLE BBY -A075 YI SYLLABLE BBYP -A076 YI SYLLABLE NBIT -A077 YI SYLLABLE NBIX -A078 YI SYLLABLE NBI -A079 YI SYLLABLE NBIP -A07A YI SYLLABLE NBIEX -A07B YI SYLLABLE NBIE -A07C YI SYLLABLE NBIEP -A07D YI SYLLABLE NBAT -A07E YI SYLLABLE NBAX -A07F YI SYLLABLE NBA -A080 YI SYLLABLE NBAP -A081 YI SYLLABLE NBOT -A082 YI SYLLABLE NBOX -A083 YI SYLLABLE NBO -A084 YI SYLLABLE NBOP -A085 YI SYLLABLE NBUT -A086 YI SYLLABLE NBUX -A087 YI SYLLABLE NBU -A088 YI SYLLABLE NBUP -A089 YI SYLLABLE NBURX -A08A YI SYLLABLE NBUR -A08B YI SYLLABLE NBYT -A08C YI SYLLABLE NBYX -A08D YI SYLLABLE NBY -A08E YI SYLLABLE NBYP -A08F YI SYLLABLE NBYRX -A090 YI SYLLABLE NBYR -A091 YI SYLLABLE HMIT -A092 YI SYLLABLE HMIX -A093 YI SYLLABLE HMI -A094 YI SYLLABLE HMIP -A095 YI SYLLABLE HMIEX -A096 YI SYLLABLE HMIE -A097 YI SYLLABLE HMIEP -A098 YI SYLLABLE HMAT -A099 YI SYLLABLE HMAX -A09A YI SYLLABLE HMA -A09B YI SYLLABLE HMAP -A09C YI SYLLABLE HMUOX -A09D YI SYLLABLE HMUO -A09E YI SYLLABLE HMUOP -A09F YI SYLLABLE HMOT -A0A0 YI SYLLABLE HMOX -A0A1 YI SYLLABLE HMO -A0A2 YI SYLLABLE HMOP -A0A3 YI SYLLABLE HMUT -A0A4 YI SYLLABLE HMUX -A0A5 YI SYLLABLE HMU -A0A6 YI SYLLABLE HMUP -A0A7 YI SYLLABLE HMURX -A0A8 YI SYLLABLE HMUR -A0A9 YI SYLLABLE HMYX -A0AA YI SYLLABLE HMY -A0AB YI SYLLABLE HMYP -A0AC YI SYLLABLE HMYRX -A0AD YI SYLLABLE HMYR -A0AE YI SYLLABLE MIT -A0AF YI SYLLABLE MIX -A0B0 YI SYLLABLE MI -A0B1 YI SYLLABLE MIP -A0B2 YI SYLLABLE MIEX -A0B3 YI SYLLABLE MIE -A0B4 YI SYLLABLE MIEP -A0B5 YI SYLLABLE MAT -A0B6 YI SYLLABLE MAX -A0B7 YI SYLLABLE MA -A0B8 YI SYLLABLE MAP -A0B9 YI SYLLABLE MUOT -A0BA YI SYLLABLE MUOX -A0BB YI SYLLABLE MUO -A0BC YI SYLLABLE MUOP -A0BD YI SYLLABLE MOT -A0BE YI SYLLABLE MOX -A0BF YI SYLLABLE MO -A0C0 YI SYLLABLE MOP -A0C1 YI SYLLABLE MEX -A0C2 YI SYLLABLE ME -A0C3 YI SYLLABLE MUT -A0C4 YI SYLLABLE MUX -A0C5 YI SYLLABLE MU -A0C6 YI SYLLABLE MUP -A0C7 YI SYLLABLE MURX -A0C8 YI SYLLABLE MUR -A0C9 YI SYLLABLE MYT -A0CA YI SYLLABLE MYX -A0CB YI SYLLABLE MY -A0CC YI SYLLABLE MYP -A0CD YI SYLLABLE FIT -A0CE YI SYLLABLE FIX -A0CF YI SYLLABLE FI -A0D0 YI SYLLABLE FIP -A0D1 YI SYLLABLE FAT -A0D2 YI SYLLABLE FAX -A0D3 YI SYLLABLE FA -A0D4 YI SYLLABLE FAP -A0D5 YI SYLLABLE FOX -A0D6 YI SYLLABLE FO -A0D7 YI SYLLABLE FOP -A0D8 YI SYLLABLE FUT -A0D9 YI SYLLABLE FUX -A0DA YI SYLLABLE FU -A0DB YI SYLLABLE FUP -A0DC YI SYLLABLE FURX -A0DD YI SYLLABLE FUR -A0DE YI SYLLABLE FYT -A0DF YI SYLLABLE FYX -A0E0 YI SYLLABLE FY -A0E1 YI SYLLABLE FYP -A0E2 YI SYLLABLE VIT -A0E3 YI SYLLABLE VIX -A0E4 YI SYLLABLE VI -A0E5 YI SYLLABLE VIP -A0E6 YI SYLLABLE VIET -A0E7 YI SYLLABLE VIEX -A0E8 YI SYLLABLE VIE -A0E9 YI SYLLABLE VIEP -A0EA YI SYLLABLE VAT -A0EB YI SYLLABLE VAX -A0EC YI SYLLABLE VA -A0ED YI SYLLABLE VAP -A0EE YI SYLLABLE VOT -A0EF YI SYLLABLE VOX -A0F0 YI SYLLABLE VO -A0F1 YI SYLLABLE VOP -A0F2 YI SYLLABLE VEX -A0F3 YI SYLLABLE VEP -A0F4 YI SYLLABLE VUT -A0F5 YI SYLLABLE VUX -A0F6 YI SYLLABLE VU -A0F7 YI SYLLABLE VUP -A0F8 YI SYLLABLE VURX -A0F9 YI SYLLABLE VUR -A0FA YI SYLLABLE VYT -A0FB YI SYLLABLE VYX -A0FC YI SYLLABLE VY -A0FD YI SYLLABLE VYP -A0FE YI SYLLABLE VYRX -A0FF YI SYLLABLE VYR -A100 YI SYLLABLE DIT -A101 YI SYLLABLE DIX -A102 YI SYLLABLE DI -A103 YI SYLLABLE DIP -A104 YI SYLLABLE DIEX -A105 YI SYLLABLE DIE -A106 YI SYLLABLE DIEP -A107 YI SYLLABLE DAT -A108 YI SYLLABLE DAX -A109 YI SYLLABLE DA -A10A YI SYLLABLE DAP -A10B YI SYLLABLE DUOX -A10C YI SYLLABLE DUO -A10D YI SYLLABLE DOT -A10E YI SYLLABLE DOX -A10F YI SYLLABLE DO -A110 YI SYLLABLE DOP -A111 YI SYLLABLE DEX -A112 YI SYLLABLE DE -A113 YI SYLLABLE DEP -A114 YI SYLLABLE DUT -A115 YI SYLLABLE DUX -A116 YI SYLLABLE DU -A117 YI SYLLABLE DUP -A118 YI SYLLABLE DURX -A119 YI SYLLABLE DUR -A11A YI SYLLABLE TIT -A11B YI SYLLABLE TIX -A11C YI SYLLABLE TI -A11D YI SYLLABLE TIP -A11E YI SYLLABLE TIEX -A11F YI SYLLABLE TIE -A120 YI SYLLABLE TIEP -A121 YI SYLLABLE TAT -A122 YI SYLLABLE TAX -A123 YI SYLLABLE TA -A124 YI SYLLABLE TAP -A125 YI SYLLABLE TUOT -A126 YI SYLLABLE TUOX -A127 YI SYLLABLE TUO -A128 YI SYLLABLE TUOP -A129 YI SYLLABLE TOT -A12A YI SYLLABLE TOX -A12B YI SYLLABLE TO -A12C YI SYLLABLE TOP -A12D YI SYLLABLE TEX -A12E YI SYLLABLE TE -A12F YI SYLLABLE TEP -A130 YI SYLLABLE TUT -A131 YI SYLLABLE TUX -A132 YI SYLLABLE TU -A133 YI SYLLABLE TUP -A134 YI SYLLABLE TURX -A135 YI SYLLABLE TUR -A136 YI SYLLABLE DDIT -A137 YI SYLLABLE DDIX -A138 YI SYLLABLE DDI -A139 YI SYLLABLE DDIP -A13A YI SYLLABLE DDIEX -A13B YI SYLLABLE DDIE -A13C YI SYLLABLE DDIEP -A13D YI SYLLABLE DDAT -A13E YI SYLLABLE DDAX -A13F YI SYLLABLE DDA -A140 YI SYLLABLE DDAP -A141 YI SYLLABLE DDUOX -A142 YI SYLLABLE DDUO -A143 YI SYLLABLE DDUOP -A144 YI SYLLABLE DDOT -A145 YI SYLLABLE DDOX -A146 YI SYLLABLE DDO -A147 YI SYLLABLE DDOP -A148 YI SYLLABLE DDEX -A149 YI SYLLABLE DDE -A14A YI SYLLABLE DDEP -A14B YI SYLLABLE DDUT -A14C YI SYLLABLE DDUX -A14D YI SYLLABLE DDU -A14E YI SYLLABLE DDUP -A14F YI SYLLABLE DDURX -A150 YI SYLLABLE DDUR -A151 YI SYLLABLE NDIT -A152 YI SYLLABLE NDIX -A153 YI SYLLABLE NDI -A154 YI SYLLABLE NDIP -A155 YI SYLLABLE NDIEX -A156 YI SYLLABLE NDIE -A157 YI SYLLABLE NDAT -A158 YI SYLLABLE NDAX -A159 YI SYLLABLE NDA -A15A YI SYLLABLE NDAP -A15B YI SYLLABLE NDOT -A15C YI SYLLABLE NDOX -A15D YI SYLLABLE NDO -A15E YI SYLLABLE NDOP -A15F YI SYLLABLE NDEX -A160 YI SYLLABLE NDE -A161 YI SYLLABLE NDEP -A162 YI SYLLABLE NDUT -A163 YI SYLLABLE NDUX -A164 YI SYLLABLE NDU -A165 YI SYLLABLE NDUP -A166 YI SYLLABLE NDURX -A167 YI SYLLABLE NDUR -A168 YI SYLLABLE HNIT -A169 YI SYLLABLE HNIX -A16A YI SYLLABLE HNI -A16B YI SYLLABLE HNIP -A16C YI SYLLABLE HNIET -A16D YI SYLLABLE HNIEX -A16E YI SYLLABLE HNIE -A16F YI SYLLABLE HNIEP -A170 YI SYLLABLE HNAT -A171 YI SYLLABLE HNAX -A172 YI SYLLABLE HNA -A173 YI SYLLABLE HNAP -A174 YI SYLLABLE HNUOX -A175 YI SYLLABLE HNUO -A176 YI SYLLABLE HNOT -A177 YI SYLLABLE HNOX -A178 YI SYLLABLE HNOP -A179 YI SYLLABLE HNEX -A17A YI SYLLABLE HNE -A17B YI SYLLABLE HNEP -A17C YI SYLLABLE HNUT -A17D YI SYLLABLE NIT -A17E YI SYLLABLE NIX -A17F YI SYLLABLE NI -A180 YI SYLLABLE NIP -A181 YI SYLLABLE NIEX -A182 YI SYLLABLE NIE -A183 YI SYLLABLE NIEP -A184 YI SYLLABLE NAX -A185 YI SYLLABLE NA -A186 YI SYLLABLE NAP -A187 YI SYLLABLE NUOX -A188 YI SYLLABLE NUO -A189 YI SYLLABLE NUOP -A18A YI SYLLABLE NOT -A18B YI SYLLABLE NOX -A18C YI SYLLABLE NO -A18D YI SYLLABLE NOP -A18E YI SYLLABLE NEX -A18F YI SYLLABLE NE -A190 YI SYLLABLE NEP -A191 YI SYLLABLE NUT -A192 YI SYLLABLE NUX -A193 YI SYLLABLE NU -A194 YI SYLLABLE NUP -A195 YI SYLLABLE NURX -A196 YI SYLLABLE NUR -A197 YI SYLLABLE HLIT -A198 YI SYLLABLE HLIX -A199 YI SYLLABLE HLI -A19A YI SYLLABLE HLIP -A19B YI SYLLABLE HLIEX -A19C YI SYLLABLE HLIE -A19D YI SYLLABLE HLIEP -A19E YI SYLLABLE HLAT -A19F YI SYLLABLE HLAX -A1A0 YI SYLLABLE HLA -A1A1 YI SYLLABLE HLAP -A1A2 YI SYLLABLE HLUOX -A1A3 YI SYLLABLE HLUO -A1A4 YI SYLLABLE HLUOP -A1A5 YI SYLLABLE HLOX -A1A6 YI SYLLABLE HLO -A1A7 YI SYLLABLE HLOP -A1A8 YI SYLLABLE HLEX -A1A9 YI SYLLABLE HLE -A1AA YI SYLLABLE HLEP -A1AB YI SYLLABLE HLUT -A1AC YI SYLLABLE HLUX -A1AD YI SYLLABLE HLU -A1AE YI SYLLABLE HLUP -A1AF YI SYLLABLE HLURX -A1B0 YI SYLLABLE HLUR -A1B1 YI SYLLABLE HLYT -A1B2 YI SYLLABLE HLYX -A1B3 YI SYLLABLE HLY -A1B4 YI SYLLABLE HLYP -A1B5 YI SYLLABLE HLYRX -A1B6 YI SYLLABLE HLYR -A1B7 YI SYLLABLE LIT -A1B8 YI SYLLABLE LIX -A1B9 YI SYLLABLE LI -A1BA YI SYLLABLE LIP -A1BB YI SYLLABLE LIET -A1BC YI SYLLABLE LIEX -A1BD YI SYLLABLE LIE -A1BE YI SYLLABLE LIEP -A1BF YI SYLLABLE LAT -A1C0 YI SYLLABLE LAX -A1C1 YI SYLLABLE LA -A1C2 YI SYLLABLE LAP -A1C3 YI SYLLABLE LUOT -A1C4 YI SYLLABLE LUOX -A1C5 YI SYLLABLE LUO -A1C6 YI SYLLABLE LUOP -A1C7 YI SYLLABLE LOT -A1C8 YI SYLLABLE LOX -A1C9 YI SYLLABLE LO -A1CA YI SYLLABLE LOP -A1CB YI SYLLABLE LEX -A1CC YI SYLLABLE LE -A1CD YI SYLLABLE LEP -A1CE YI SYLLABLE LUT -A1CF YI SYLLABLE LUX -A1D0 YI SYLLABLE LU -A1D1 YI SYLLABLE LUP -A1D2 YI SYLLABLE LURX -A1D3 YI SYLLABLE LUR -A1D4 YI SYLLABLE LYT -A1D5 YI SYLLABLE LYX -A1D6 YI SYLLABLE LY -A1D7 YI SYLLABLE LYP -A1D8 YI SYLLABLE LYRX -A1D9 YI SYLLABLE LYR -A1DA YI SYLLABLE GIT -A1DB YI SYLLABLE GIX -A1DC YI SYLLABLE GI -A1DD YI SYLLABLE GIP -A1DE YI SYLLABLE GIET -A1DF YI SYLLABLE GIEX -A1E0 YI SYLLABLE GIE -A1E1 YI SYLLABLE GIEP -A1E2 YI SYLLABLE GAT -A1E3 YI SYLLABLE GAX -A1E4 YI SYLLABLE GA -A1E5 YI SYLLABLE GAP -A1E6 YI SYLLABLE GUOT -A1E7 YI SYLLABLE GUOX -A1E8 YI SYLLABLE GUO -A1E9 YI SYLLABLE GUOP -A1EA YI SYLLABLE GOT -A1EB YI SYLLABLE GOX -A1EC YI SYLLABLE GO -A1ED YI SYLLABLE GOP -A1EE YI SYLLABLE GET -A1EF YI SYLLABLE GEX -A1F0 YI SYLLABLE GE -A1F1 YI SYLLABLE GEP -A1F2 YI SYLLABLE GUT -A1F3 YI SYLLABLE GUX -A1F4 YI SYLLABLE GU -A1F5 YI SYLLABLE GUP -A1F6 YI SYLLABLE GURX -A1F7 YI SYLLABLE GUR -A1F8 YI SYLLABLE KIT -A1F9 YI SYLLABLE KIX -A1FA YI SYLLABLE KI -A1FB YI SYLLABLE KIP -A1FC YI SYLLABLE KIEX -A1FD YI SYLLABLE KIE -A1FE YI SYLLABLE KIEP -A1FF YI SYLLABLE KAT -A200 YI SYLLABLE KAX -A201 YI SYLLABLE KA -A202 YI SYLLABLE KAP -A203 YI SYLLABLE KUOX -A204 YI SYLLABLE KUO -A205 YI SYLLABLE KUOP -A206 YI SYLLABLE KOT -A207 YI SYLLABLE KOX -A208 YI SYLLABLE KO -A209 YI SYLLABLE KOP -A20A YI SYLLABLE KET -A20B YI SYLLABLE KEX -A20C YI SYLLABLE KE -A20D YI SYLLABLE KEP -A20E YI SYLLABLE KUT -A20F YI SYLLABLE KUX -A210 YI SYLLABLE KU -A211 YI SYLLABLE KUP -A212 YI SYLLABLE KURX -A213 YI SYLLABLE KUR -A214 YI SYLLABLE GGIT -A215 YI SYLLABLE GGIX -A216 YI SYLLABLE GGI -A217 YI SYLLABLE GGIEX -A218 YI SYLLABLE GGIE -A219 YI SYLLABLE GGIEP -A21A YI SYLLABLE GGAT -A21B YI SYLLABLE GGAX -A21C YI SYLLABLE GGA -A21D YI SYLLABLE GGAP -A21E YI SYLLABLE GGUOT -A21F YI SYLLABLE GGUOX -A220 YI SYLLABLE GGUO -A221 YI SYLLABLE GGUOP -A222 YI SYLLABLE GGOT -A223 YI SYLLABLE GGOX -A224 YI SYLLABLE GGO -A225 YI SYLLABLE GGOP -A226 YI SYLLABLE GGET -A227 YI SYLLABLE GGEX -A228 YI SYLLABLE GGE -A229 YI SYLLABLE GGEP -A22A YI SYLLABLE GGUT -A22B YI SYLLABLE GGUX -A22C YI SYLLABLE GGU -A22D YI SYLLABLE GGUP -A22E YI SYLLABLE GGURX -A22F YI SYLLABLE GGUR -A230 YI SYLLABLE MGIEX -A231 YI SYLLABLE MGIE -A232 YI SYLLABLE MGAT -A233 YI SYLLABLE MGAX -A234 YI SYLLABLE MGA -A235 YI SYLLABLE MGAP -A236 YI SYLLABLE MGUOX -A237 YI SYLLABLE MGUO -A238 YI SYLLABLE MGUOP -A239 YI SYLLABLE MGOT -A23A YI SYLLABLE MGOX -A23B YI SYLLABLE MGO -A23C YI SYLLABLE MGOP -A23D YI SYLLABLE MGEX -A23E YI SYLLABLE MGE -A23F YI SYLLABLE MGEP -A240 YI SYLLABLE MGUT -A241 YI SYLLABLE MGUX -A242 YI SYLLABLE MGU -A243 YI SYLLABLE MGUP -A244 YI SYLLABLE MGURX -A245 YI SYLLABLE MGUR -A246 YI SYLLABLE HXIT -A247 YI SYLLABLE HXIX -A248 YI SYLLABLE HXI -A249 YI SYLLABLE HXIP -A24A YI SYLLABLE HXIET -A24B YI SYLLABLE HXIEX -A24C YI SYLLABLE HXIE -A24D YI SYLLABLE HXIEP -A24E YI SYLLABLE HXAT -A24F YI SYLLABLE HXAX -A250 YI SYLLABLE HXA -A251 YI SYLLABLE HXAP -A252 YI SYLLABLE HXUOT -A253 YI SYLLABLE HXUOX -A254 YI SYLLABLE HXUO -A255 YI SYLLABLE HXUOP -A256 YI SYLLABLE HXOT -A257 YI SYLLABLE HXOX -A258 YI SYLLABLE HXO -A259 YI SYLLABLE HXOP -A25A YI SYLLABLE HXEX -A25B YI SYLLABLE HXE -A25C YI SYLLABLE HXEP -A25D YI SYLLABLE NGIEX -A25E YI SYLLABLE NGIE -A25F YI SYLLABLE NGIEP -A260 YI SYLLABLE NGAT -A261 YI SYLLABLE NGAX -A262 YI SYLLABLE NGA -A263 YI SYLLABLE NGAP -A264 YI SYLLABLE NGUOT -A265 YI SYLLABLE NGUOX -A266 YI SYLLABLE NGUO -A267 YI SYLLABLE NGOT -A268 YI SYLLABLE NGOX -A269 YI SYLLABLE NGO -A26A YI SYLLABLE NGOP -A26B YI SYLLABLE NGEX -A26C YI SYLLABLE NGE -A26D YI SYLLABLE NGEP -A26E YI SYLLABLE HIT -A26F YI SYLLABLE HIEX -A270 YI SYLLABLE HIE -A271 YI SYLLABLE HAT -A272 YI SYLLABLE HAX -A273 YI SYLLABLE HA -A274 YI SYLLABLE HAP -A275 YI SYLLABLE HUOT -A276 YI SYLLABLE HUOX -A277 YI SYLLABLE HUO -A278 YI SYLLABLE HUOP -A279 YI SYLLABLE HOT -A27A YI SYLLABLE HOX -A27B YI SYLLABLE HO -A27C YI SYLLABLE HOP -A27D YI SYLLABLE HEX -A27E YI SYLLABLE HE -A27F YI SYLLABLE HEP -A280 YI SYLLABLE WAT -A281 YI SYLLABLE WAX -A282 YI SYLLABLE WA -A283 YI SYLLABLE WAP -A284 YI SYLLABLE WUOX -A285 YI SYLLABLE WUO -A286 YI SYLLABLE WUOP -A287 YI SYLLABLE WOX -A288 YI SYLLABLE WO -A289 YI SYLLABLE WOP -A28A YI SYLLABLE WEX -A28B YI SYLLABLE WE -A28C YI SYLLABLE WEP -A28D YI SYLLABLE ZIT -A28E YI SYLLABLE ZIX -A28F YI SYLLABLE ZI -A290 YI SYLLABLE ZIP -A291 YI SYLLABLE ZIEX -A292 YI SYLLABLE ZIE -A293 YI SYLLABLE ZIEP -A294 YI SYLLABLE ZAT -A295 YI SYLLABLE ZAX -A296 YI SYLLABLE ZA -A297 YI SYLLABLE ZAP -A298 YI SYLLABLE ZUOX -A299 YI SYLLABLE ZUO -A29A YI SYLLABLE ZUOP -A29B YI SYLLABLE ZOT -A29C YI SYLLABLE ZOX -A29D YI SYLLABLE ZO -A29E YI SYLLABLE ZOP -A29F YI SYLLABLE ZEX -A2A0 YI SYLLABLE ZE -A2A1 YI SYLLABLE ZEP -A2A2 YI SYLLABLE ZUT -A2A3 YI SYLLABLE ZUX -A2A4 YI SYLLABLE ZU -A2A5 YI SYLLABLE ZUP -A2A6 YI SYLLABLE ZURX -A2A7 YI SYLLABLE ZUR -A2A8 YI SYLLABLE ZYT -A2A9 YI SYLLABLE ZYX -A2AA YI SYLLABLE ZY -A2AB YI SYLLABLE ZYP -A2AC YI SYLLABLE ZYRX -A2AD YI SYLLABLE ZYR -A2AE YI SYLLABLE CIT -A2AF YI SYLLABLE CIX -A2B0 YI SYLLABLE CI -A2B1 YI SYLLABLE CIP -A2B2 YI SYLLABLE CIET -A2B3 YI SYLLABLE CIEX -A2B4 YI SYLLABLE CIE -A2B5 YI SYLLABLE CIEP -A2B6 YI SYLLABLE CAT -A2B7 YI SYLLABLE CAX -A2B8 YI SYLLABLE CA -A2B9 YI SYLLABLE CAP -A2BA YI SYLLABLE CUOX -A2BB YI SYLLABLE CUO -A2BC YI SYLLABLE CUOP -A2BD YI SYLLABLE COT -A2BE YI SYLLABLE COX -A2BF YI SYLLABLE CO -A2C0 YI SYLLABLE COP -A2C1 YI SYLLABLE CEX -A2C2 YI SYLLABLE CE -A2C3 YI SYLLABLE CEP -A2C4 YI SYLLABLE CUT -A2C5 YI SYLLABLE CUX -A2C6 YI SYLLABLE CU -A2C7 YI SYLLABLE CUP -A2C8 YI SYLLABLE CURX -A2C9 YI SYLLABLE CUR -A2CA YI SYLLABLE CYT -A2CB YI SYLLABLE CYX -A2CC YI SYLLABLE CY -A2CD YI SYLLABLE CYP -A2CE YI SYLLABLE CYRX -A2CF YI SYLLABLE CYR -A2D0 YI SYLLABLE ZZIT -A2D1 YI SYLLABLE ZZIX -A2D2 YI SYLLABLE ZZI -A2D3 YI SYLLABLE ZZIP -A2D4 YI SYLLABLE ZZIET -A2D5 YI SYLLABLE ZZIEX -A2D6 YI SYLLABLE ZZIE -A2D7 YI SYLLABLE ZZIEP -A2D8 YI SYLLABLE ZZAT -A2D9 YI SYLLABLE ZZAX -A2DA YI SYLLABLE ZZA -A2DB YI SYLLABLE ZZAP -A2DC YI SYLLABLE ZZOX -A2DD YI SYLLABLE ZZO -A2DE YI SYLLABLE ZZOP -A2DF YI SYLLABLE ZZEX -A2E0 YI SYLLABLE ZZE -A2E1 YI SYLLABLE ZZEP -A2E2 YI SYLLABLE ZZUX -A2E3 YI SYLLABLE ZZU -A2E4 YI SYLLABLE ZZUP -A2E5 YI SYLLABLE ZZURX -A2E6 YI SYLLABLE ZZUR -A2E7 YI SYLLABLE ZZYT -A2E8 YI SYLLABLE ZZYX -A2E9 YI SYLLABLE ZZY -A2EA YI SYLLABLE ZZYP -A2EB YI SYLLABLE ZZYRX -A2EC YI SYLLABLE ZZYR -A2ED YI SYLLABLE NZIT -A2EE YI SYLLABLE NZIX -A2EF YI SYLLABLE NZI -A2F0 YI SYLLABLE NZIP -A2F1 YI SYLLABLE NZIEX -A2F2 YI SYLLABLE NZIE -A2F3 YI SYLLABLE NZIEP -A2F4 YI SYLLABLE NZAT -A2F5 YI SYLLABLE NZAX -A2F6 YI SYLLABLE NZA -A2F7 YI SYLLABLE NZAP -A2F8 YI SYLLABLE NZUOX -A2F9 YI SYLLABLE NZUO -A2FA YI SYLLABLE NZOX -A2FB YI SYLLABLE NZOP -A2FC YI SYLLABLE NZEX -A2FD YI SYLLABLE NZE -A2FE YI SYLLABLE NZUX -A2FF YI SYLLABLE NZU -A300 YI SYLLABLE NZUP -A301 YI SYLLABLE NZURX -A302 YI SYLLABLE NZUR -A303 YI SYLLABLE NZYT -A304 YI SYLLABLE NZYX -A305 YI SYLLABLE NZY -A306 YI SYLLABLE NZYP -A307 YI SYLLABLE NZYRX -A308 YI SYLLABLE NZYR -A309 YI SYLLABLE SIT -A30A YI SYLLABLE SIX -A30B YI SYLLABLE SI -A30C YI SYLLABLE SIP -A30D YI SYLLABLE SIEX -A30E YI SYLLABLE SIE -A30F YI SYLLABLE SIEP -A310 YI SYLLABLE SAT -A311 YI SYLLABLE SAX -A312 YI SYLLABLE SA -A313 YI SYLLABLE SAP -A314 YI SYLLABLE SUOX -A315 YI SYLLABLE SUO -A316 YI SYLLABLE SUOP -A317 YI SYLLABLE SOT -A318 YI SYLLABLE SOX -A319 YI SYLLABLE SO -A31A YI SYLLABLE SOP -A31B YI SYLLABLE SEX -A31C YI SYLLABLE SE -A31D YI SYLLABLE SEP -A31E YI SYLLABLE SUT -A31F YI SYLLABLE SUX -A320 YI SYLLABLE SU -A321 YI SYLLABLE SUP -A322 YI SYLLABLE SURX -A323 YI SYLLABLE SUR -A324 YI SYLLABLE SYT -A325 YI SYLLABLE SYX -A326 YI SYLLABLE SY -A327 YI SYLLABLE SYP -A328 YI SYLLABLE SYRX -A329 YI SYLLABLE SYR -A32A YI SYLLABLE SSIT -A32B YI SYLLABLE SSIX -A32C YI SYLLABLE SSI -A32D YI SYLLABLE SSIP -A32E YI SYLLABLE SSIEX -A32F YI SYLLABLE SSIE -A330 YI SYLLABLE SSIEP -A331 YI SYLLABLE SSAT -A332 YI SYLLABLE SSAX -A333 YI SYLLABLE SSA -A334 YI SYLLABLE SSAP -A335 YI SYLLABLE SSOT -A336 YI SYLLABLE SSOX -A337 YI SYLLABLE SSO -A338 YI SYLLABLE SSOP -A339 YI SYLLABLE SSEX -A33A YI SYLLABLE SSE -A33B YI SYLLABLE SSEP -A33C YI SYLLABLE SSUT -A33D YI SYLLABLE SSUX -A33E YI SYLLABLE SSU -A33F YI SYLLABLE SSUP -A340 YI SYLLABLE SSYT -A341 YI SYLLABLE SSYX -A342 YI SYLLABLE SSY -A343 YI SYLLABLE SSYP -A344 YI SYLLABLE SSYRX -A345 YI SYLLABLE SSYR -A346 YI SYLLABLE ZHAT -A347 YI SYLLABLE ZHAX -A348 YI SYLLABLE ZHA -A349 YI SYLLABLE ZHAP -A34A YI SYLLABLE ZHUOX -A34B YI SYLLABLE ZHUO -A34C YI SYLLABLE ZHUOP -A34D YI SYLLABLE ZHOT -A34E YI SYLLABLE ZHOX -A34F YI SYLLABLE ZHO -A350 YI SYLLABLE ZHOP -A351 YI SYLLABLE ZHET -A352 YI SYLLABLE ZHEX -A353 YI SYLLABLE ZHE -A354 YI SYLLABLE ZHEP -A355 YI SYLLABLE ZHUT -A356 YI SYLLABLE ZHUX -A357 YI SYLLABLE ZHU -A358 YI SYLLABLE ZHUP -A359 YI SYLLABLE ZHURX -A35A YI SYLLABLE ZHUR -A35B YI SYLLABLE ZHYT -A35C YI SYLLABLE ZHYX -A35D YI SYLLABLE ZHY -A35E YI SYLLABLE ZHYP -A35F YI SYLLABLE ZHYRX -A360 YI SYLLABLE ZHYR -A361 YI SYLLABLE CHAT -A362 YI SYLLABLE CHAX -A363 YI SYLLABLE CHA -A364 YI SYLLABLE CHAP -A365 YI SYLLABLE CHUOT -A366 YI SYLLABLE CHUOX -A367 YI SYLLABLE CHUO -A368 YI SYLLABLE CHUOP -A369 YI SYLLABLE CHOT -A36A YI SYLLABLE CHOX -A36B YI SYLLABLE CHO -A36C YI SYLLABLE CHOP -A36D YI SYLLABLE CHET -A36E YI SYLLABLE CHEX -A36F YI SYLLABLE CHE -A370 YI SYLLABLE CHEP -A371 YI SYLLABLE CHUX -A372 YI SYLLABLE CHU -A373 YI SYLLABLE CHUP -A374 YI SYLLABLE CHURX -A375 YI SYLLABLE CHUR -A376 YI SYLLABLE CHYT -A377 YI SYLLABLE CHYX -A378 YI SYLLABLE CHY -A379 YI SYLLABLE CHYP -A37A YI SYLLABLE CHYRX -A37B YI SYLLABLE CHYR -A37C YI SYLLABLE RRAX -A37D YI SYLLABLE RRA -A37E YI SYLLABLE RRUOX -A37F YI SYLLABLE RRUO -A380 YI SYLLABLE RROT -A381 YI SYLLABLE RROX -A382 YI SYLLABLE RRO -A383 YI SYLLABLE RROP -A384 YI SYLLABLE RRET -A385 YI SYLLABLE RREX -A386 YI SYLLABLE RRE -A387 YI SYLLABLE RREP -A388 YI SYLLABLE RRUT -A389 YI SYLLABLE RRUX -A38A YI SYLLABLE RRU -A38B YI SYLLABLE RRUP -A38C YI SYLLABLE RRURX -A38D YI SYLLABLE RRUR -A38E YI SYLLABLE RRYT -A38F YI SYLLABLE RRYX -A390 YI SYLLABLE RRY -A391 YI SYLLABLE RRYP -A392 YI SYLLABLE RRYRX -A393 YI SYLLABLE RRYR -A394 YI SYLLABLE NRAT -A395 YI SYLLABLE NRAX -A396 YI SYLLABLE NRA -A397 YI SYLLABLE NRAP -A398 YI SYLLABLE NROX -A399 YI SYLLABLE NRO -A39A YI SYLLABLE NROP -A39B YI SYLLABLE NRET -A39C YI SYLLABLE NREX -A39D YI SYLLABLE NRE -A39E YI SYLLABLE NREP -A39F YI SYLLABLE NRUT -A3A0 YI SYLLABLE NRUX -A3A1 YI SYLLABLE NRU -A3A2 YI SYLLABLE NRUP -A3A3 YI SYLLABLE NRURX -A3A4 YI SYLLABLE NRUR -A3A5 YI SYLLABLE NRYT -A3A6 YI SYLLABLE NRYX -A3A7 YI SYLLABLE NRY -A3A8 YI SYLLABLE NRYP -A3A9 YI SYLLABLE NRYRX -A3AA YI SYLLABLE NRYR -A3AB YI SYLLABLE SHAT -A3AC YI SYLLABLE SHAX -A3AD YI SYLLABLE SHA -A3AE YI SYLLABLE SHAP -A3AF YI SYLLABLE SHUOX -A3B0 YI SYLLABLE SHUO -A3B1 YI SYLLABLE SHUOP -A3B2 YI SYLLABLE SHOT -A3B3 YI SYLLABLE SHOX -A3B4 YI SYLLABLE SHO -A3B5 YI SYLLABLE SHOP -A3B6 YI SYLLABLE SHET -A3B7 YI SYLLABLE SHEX -A3B8 YI SYLLABLE SHE -A3B9 YI SYLLABLE SHEP -A3BA YI SYLLABLE SHUT -A3BB YI SYLLABLE SHUX -A3BC YI SYLLABLE SHU -A3BD YI SYLLABLE SHUP -A3BE YI SYLLABLE SHURX -A3BF YI SYLLABLE SHUR -A3C0 YI SYLLABLE SHYT -A3C1 YI SYLLABLE SHYX -A3C2 YI SYLLABLE SHY -A3C3 YI SYLLABLE SHYP -A3C4 YI SYLLABLE SHYRX -A3C5 YI SYLLABLE SHYR -A3C6 YI SYLLABLE RAT -A3C7 YI SYLLABLE RAX -A3C8 YI SYLLABLE RA -A3C9 YI SYLLABLE RAP -A3CA YI SYLLABLE RUOX -A3CB YI SYLLABLE RUO -A3CC YI SYLLABLE RUOP -A3CD YI SYLLABLE ROT -A3CE YI SYLLABLE ROX -A3CF YI SYLLABLE RO -A3D0 YI SYLLABLE ROP -A3D1 YI SYLLABLE REX -A3D2 YI SYLLABLE RE -A3D3 YI SYLLABLE REP -A3D4 YI SYLLABLE RUT -A3D5 YI SYLLABLE RUX -A3D6 YI SYLLABLE RU -A3D7 YI SYLLABLE RUP -A3D8 YI SYLLABLE RURX -A3D9 YI SYLLABLE RUR -A3DA YI SYLLABLE RYT -A3DB YI SYLLABLE RYX -A3DC YI SYLLABLE RY -A3DD YI SYLLABLE RYP -A3DE YI SYLLABLE RYRX -A3DF YI SYLLABLE RYR -A3E0 YI SYLLABLE JIT -A3E1 YI SYLLABLE JIX -A3E2 YI SYLLABLE JI -A3E3 YI SYLLABLE JIP -A3E4 YI SYLLABLE JIET -A3E5 YI SYLLABLE JIEX -A3E6 YI SYLLABLE JIE -A3E7 YI SYLLABLE JIEP -A3E8 YI SYLLABLE JUOT -A3E9 YI SYLLABLE JUOX -A3EA YI SYLLABLE JUO -A3EB YI SYLLABLE JUOP -A3EC YI SYLLABLE JOT -A3ED YI SYLLABLE JOX -A3EE YI SYLLABLE JO -A3EF YI SYLLABLE JOP -A3F0 YI SYLLABLE JUT -A3F1 YI SYLLABLE JUX -A3F2 YI SYLLABLE JU -A3F3 YI SYLLABLE JUP -A3F4 YI SYLLABLE JURX -A3F5 YI SYLLABLE JUR -A3F6 YI SYLLABLE JYT -A3F7 YI SYLLABLE JYX -A3F8 YI SYLLABLE JY -A3F9 YI SYLLABLE JYP -A3FA YI SYLLABLE JYRX -A3FB YI SYLLABLE JYR -A3FC YI SYLLABLE QIT -A3FD YI SYLLABLE QIX -A3FE YI SYLLABLE QI -A3FF YI SYLLABLE QIP -A400 YI SYLLABLE QIET -A401 YI SYLLABLE QIEX -A402 YI SYLLABLE QIE -A403 YI SYLLABLE QIEP -A404 YI SYLLABLE QUOT -A405 YI SYLLABLE QUOX -A406 YI SYLLABLE QUO -A407 YI SYLLABLE QUOP -A408 YI SYLLABLE QOT -A409 YI SYLLABLE QOX -A40A YI SYLLABLE QO -A40B YI SYLLABLE QOP -A40C YI SYLLABLE QUT -A40D YI SYLLABLE QUX -A40E YI SYLLABLE QU -A40F YI SYLLABLE QUP -A410 YI SYLLABLE QURX -A411 YI SYLLABLE QUR -A412 YI SYLLABLE QYT -A413 YI SYLLABLE QYX -A414 YI SYLLABLE QY -A415 YI SYLLABLE QYP -A416 YI SYLLABLE QYRX -A417 YI SYLLABLE QYR -A418 YI SYLLABLE JJIT -A419 YI SYLLABLE JJIX -A41A YI SYLLABLE JJI -A41B YI SYLLABLE JJIP -A41C YI SYLLABLE JJIET -A41D YI SYLLABLE JJIEX -A41E YI SYLLABLE JJIE -A41F YI SYLLABLE JJIEP -A420 YI SYLLABLE JJUOX -A421 YI SYLLABLE JJUO -A422 YI SYLLABLE JJUOP -A423 YI SYLLABLE JJOT -A424 YI SYLLABLE JJOX -A425 YI SYLLABLE JJO -A426 YI SYLLABLE JJOP -A427 YI SYLLABLE JJUT -A428 YI SYLLABLE JJUX -A429 YI SYLLABLE JJU -A42A YI SYLLABLE JJUP -A42B YI SYLLABLE JJURX -A42C YI SYLLABLE JJUR -A42D YI SYLLABLE JJYT -A42E YI SYLLABLE JJYX -A42F YI SYLLABLE JJY -A430 YI SYLLABLE JJYP -A431 YI SYLLABLE NJIT -A432 YI SYLLABLE NJIX -A433 YI SYLLABLE NJI -A434 YI SYLLABLE NJIP -A435 YI SYLLABLE NJIET -A436 YI SYLLABLE NJIEX -A437 YI SYLLABLE NJIE -A438 YI SYLLABLE NJIEP -A439 YI SYLLABLE NJUOX -A43A YI SYLLABLE NJUO -A43B YI SYLLABLE NJOT -A43C YI SYLLABLE NJOX -A43D YI SYLLABLE NJO -A43E YI SYLLABLE NJOP -A43F YI SYLLABLE NJUX -A440 YI SYLLABLE NJU -A441 YI SYLLABLE NJUP -A442 YI SYLLABLE NJURX -A443 YI SYLLABLE NJUR -A444 YI SYLLABLE NJYT -A445 YI SYLLABLE NJYX -A446 YI SYLLABLE NJY -A447 YI SYLLABLE NJYP -A448 YI SYLLABLE NJYRX -A449 YI SYLLABLE NJYR -A44A YI SYLLABLE NYIT -A44B YI SYLLABLE NYIX -A44C YI SYLLABLE NYI -A44D YI SYLLABLE NYIP -A44E YI SYLLABLE NYIET -A44F YI SYLLABLE NYIEX -A450 YI SYLLABLE NYIE -A451 YI SYLLABLE NYIEP -A452 YI SYLLABLE NYUOX -A453 YI SYLLABLE NYUO -A454 YI SYLLABLE NYUOP -A455 YI SYLLABLE NYOT -A456 YI SYLLABLE NYOX -A457 YI SYLLABLE NYO -A458 YI SYLLABLE NYOP -A459 YI SYLLABLE NYUT -A45A YI SYLLABLE NYUX -A45B YI SYLLABLE NYU -A45C YI SYLLABLE NYUP -A45D YI SYLLABLE XIT -A45E YI SYLLABLE XIX -A45F YI SYLLABLE XI -A460 YI SYLLABLE XIP -A461 YI SYLLABLE XIET -A462 YI SYLLABLE XIEX -A463 YI SYLLABLE XIE -A464 YI SYLLABLE XIEP -A465 YI SYLLABLE XUOX -A466 YI SYLLABLE XUO -A467 YI SYLLABLE XOT -A468 YI SYLLABLE XOX -A469 YI SYLLABLE XO -A46A YI SYLLABLE XOP -A46B YI SYLLABLE XYT -A46C YI SYLLABLE XYX -A46D YI SYLLABLE XY -A46E YI SYLLABLE XYP -A46F YI SYLLABLE XYRX -A470 YI SYLLABLE XYR -A471 YI SYLLABLE YIT -A472 YI SYLLABLE YIX -A473 YI SYLLABLE YI -A474 YI SYLLABLE YIP -A475 YI SYLLABLE YIET -A476 YI SYLLABLE YIEX -A477 YI SYLLABLE YIE -A478 YI SYLLABLE YIEP -A479 YI SYLLABLE YUOT -A47A YI SYLLABLE YUOX -A47B YI SYLLABLE YUO -A47C YI SYLLABLE YUOP -A47D YI SYLLABLE YOT -A47E YI SYLLABLE YOX -A47F YI SYLLABLE YO -A480 YI SYLLABLE YOP -A481 YI SYLLABLE YUT -A482 YI SYLLABLE YUX -A483 YI SYLLABLE YU -A484 YI SYLLABLE YUP -A485 YI SYLLABLE YURX -A486 YI SYLLABLE YUR -A487 YI SYLLABLE YYT -A488 YI SYLLABLE YYX -A489 YI SYLLABLE YY -A48A YI SYLLABLE YYP -A48B YI SYLLABLE YYRX -A48C YI SYLLABLE YYR -A490 YI RADICAL QOT -A491 YI RADICAL LI -A492 YI RADICAL KIT -A493 YI RADICAL NYIP -A494 YI RADICAL CYP -A495 YI RADICAL SSI -A496 YI RADICAL GGOP -A497 YI RADICAL GEP -A498 YI RADICAL MI -A499 YI RADICAL HXIT -A49A YI RADICAL LYR -A49B YI RADICAL BBUT -A49C YI RADICAL MOP -A49D YI RADICAL YO -A49E YI RADICAL PUT -A49F YI RADICAL HXUO -A4A0 YI RADICAL TAT -A4A1 YI RADICAL GA -A4A2 YI RADICAL ZUP -A4A3 YI RADICAL CYT -A4A4 YI RADICAL DDUR -A4A5 YI RADICAL BUR -A4A6 YI RADICAL GGUO -A4A7 YI RADICAL NYOP -A4A8 YI RADICAL TU -A4A9 YI RADICAL OP -A4AA YI RADICAL JJUT -A4AB YI RADICAL ZOT -A4AC YI RADICAL PYT -A4AD YI RADICAL HMO -A4AE YI RADICAL YIT -A4AF YI RADICAL VUR -A4B0 YI RADICAL SHY -A4B1 YI RADICAL VEP -A4B2 YI RADICAL ZA -A4B3 YI RADICAL JO -A4B4 YI RADICAL NZUP -A4B5 YI RADICAL JJY -A4B6 YI RADICAL GOT -A4B7 YI RADICAL JJIE -A4B8 YI RADICAL WO -A4B9 YI RADICAL DU -A4BA YI RADICAL SHUR -A4BB YI RADICAL LIE -A4BC YI RADICAL CY -A4BD YI RADICAL CUOP -A4BE YI RADICAL CIP -A4BF YI RADICAL HXOP -A4C0 YI RADICAL SHAT -A4C1 YI RADICAL ZUR -A4C2 YI RADICAL SHOP -A4C3 YI RADICAL CHE -A4C4 YI RADICAL ZZIET -A4C5 YI RADICAL NBIE -A4C6 YI RADICAL KE -AC00 D7A3 Hangul Syllable -D800 DB7F Non Private Use High Surrogate -DB80 DBFF Private Use High Surrogate -DC00 DFFF Low Surrogate -E000 F8FF Private Use -F900 CJK COMPATIBILITY IDEOGRAPH-F900 -F901 CJK COMPATIBILITY IDEOGRAPH-F901 -F902 CJK COMPATIBILITY IDEOGRAPH-F902 -F903 CJK COMPATIBILITY IDEOGRAPH-F903 -F904 CJK COMPATIBILITY IDEOGRAPH-F904 -F905 CJK COMPATIBILITY IDEOGRAPH-F905 -F906 CJK COMPATIBILITY IDEOGRAPH-F906 -F907 CJK COMPATIBILITY IDEOGRAPH-F907 -F908 CJK COMPATIBILITY IDEOGRAPH-F908 -F909 CJK COMPATIBILITY IDEOGRAPH-F909 -F90A CJK COMPATIBILITY IDEOGRAPH-F90A -F90B CJK COMPATIBILITY IDEOGRAPH-F90B -F90C CJK COMPATIBILITY IDEOGRAPH-F90C -F90D CJK COMPATIBILITY IDEOGRAPH-F90D -F90E CJK COMPATIBILITY IDEOGRAPH-F90E -F90F CJK COMPATIBILITY IDEOGRAPH-F90F -F910 CJK COMPATIBILITY IDEOGRAPH-F910 -F911 CJK COMPATIBILITY IDEOGRAPH-F911 -F912 CJK COMPATIBILITY IDEOGRAPH-F912 -F913 CJK COMPATIBILITY IDEOGRAPH-F913 -F914 CJK COMPATIBILITY IDEOGRAPH-F914 -F915 CJK COMPATIBILITY IDEOGRAPH-F915 -F916 CJK COMPATIBILITY IDEOGRAPH-F916 -F917 CJK COMPATIBILITY IDEOGRAPH-F917 -F918 CJK COMPATIBILITY IDEOGRAPH-F918 -F919 CJK COMPATIBILITY IDEOGRAPH-F919 -F91A CJK COMPATIBILITY IDEOGRAPH-F91A -F91B CJK COMPATIBILITY IDEOGRAPH-F91B -F91C CJK COMPATIBILITY IDEOGRAPH-F91C -F91D CJK COMPATIBILITY IDEOGRAPH-F91D -F91E CJK COMPATIBILITY IDEOGRAPH-F91E -F91F CJK COMPATIBILITY IDEOGRAPH-F91F -F920 CJK COMPATIBILITY IDEOGRAPH-F920 -F921 CJK COMPATIBILITY IDEOGRAPH-F921 -F922 CJK COMPATIBILITY IDEOGRAPH-F922 -F923 CJK COMPATIBILITY IDEOGRAPH-F923 -F924 CJK COMPATIBILITY IDEOGRAPH-F924 -F925 CJK COMPATIBILITY IDEOGRAPH-F925 -F926 CJK COMPATIBILITY IDEOGRAPH-F926 -F927 CJK COMPATIBILITY IDEOGRAPH-F927 -F928 CJK COMPATIBILITY IDEOGRAPH-F928 -F929 CJK COMPATIBILITY IDEOGRAPH-F929 -F92A CJK COMPATIBILITY IDEOGRAPH-F92A -F92B CJK COMPATIBILITY IDEOGRAPH-F92B -F92C CJK COMPATIBILITY IDEOGRAPH-F92C -F92D CJK COMPATIBILITY IDEOGRAPH-F92D -F92E CJK COMPATIBILITY IDEOGRAPH-F92E -F92F CJK COMPATIBILITY IDEOGRAPH-F92F -F930 CJK COMPATIBILITY IDEOGRAPH-F930 -F931 CJK COMPATIBILITY IDEOGRAPH-F931 -F932 CJK COMPATIBILITY IDEOGRAPH-F932 -F933 CJK COMPATIBILITY IDEOGRAPH-F933 -F934 CJK COMPATIBILITY IDEOGRAPH-F934 -F935 CJK COMPATIBILITY IDEOGRAPH-F935 -F936 CJK COMPATIBILITY IDEOGRAPH-F936 -F937 CJK COMPATIBILITY IDEOGRAPH-F937 -F938 CJK COMPATIBILITY IDEOGRAPH-F938 -F939 CJK COMPATIBILITY IDEOGRAPH-F939 -F93A CJK COMPATIBILITY IDEOGRAPH-F93A -F93B CJK COMPATIBILITY IDEOGRAPH-F93B -F93C CJK COMPATIBILITY IDEOGRAPH-F93C -F93D CJK COMPATIBILITY IDEOGRAPH-F93D -F93E CJK COMPATIBILITY IDEOGRAPH-F93E -F93F CJK COMPATIBILITY IDEOGRAPH-F93F -F940 CJK COMPATIBILITY IDEOGRAPH-F940 -F941 CJK COMPATIBILITY IDEOGRAPH-F941 -F942 CJK COMPATIBILITY IDEOGRAPH-F942 -F943 CJK COMPATIBILITY IDEOGRAPH-F943 -F944 CJK COMPATIBILITY IDEOGRAPH-F944 -F945 CJK COMPATIBILITY IDEOGRAPH-F945 -F946 CJK COMPATIBILITY IDEOGRAPH-F946 -F947 CJK COMPATIBILITY IDEOGRAPH-F947 -F948 CJK COMPATIBILITY IDEOGRAPH-F948 -F949 CJK COMPATIBILITY IDEOGRAPH-F949 -F94A CJK COMPATIBILITY IDEOGRAPH-F94A -F94B CJK COMPATIBILITY IDEOGRAPH-F94B -F94C CJK COMPATIBILITY IDEOGRAPH-F94C -F94D CJK COMPATIBILITY IDEOGRAPH-F94D -F94E CJK COMPATIBILITY IDEOGRAPH-F94E -F94F CJK COMPATIBILITY IDEOGRAPH-F94F -F950 CJK COMPATIBILITY IDEOGRAPH-F950 -F951 CJK COMPATIBILITY IDEOGRAPH-F951 -F952 CJK COMPATIBILITY IDEOGRAPH-F952 -F953 CJK COMPATIBILITY IDEOGRAPH-F953 -F954 CJK COMPATIBILITY IDEOGRAPH-F954 -F955 CJK COMPATIBILITY IDEOGRAPH-F955 -F956 CJK COMPATIBILITY IDEOGRAPH-F956 -F957 CJK COMPATIBILITY IDEOGRAPH-F957 -F958 CJK COMPATIBILITY IDEOGRAPH-F958 -F959 CJK COMPATIBILITY IDEOGRAPH-F959 -F95A CJK COMPATIBILITY IDEOGRAPH-F95A -F95B CJK COMPATIBILITY IDEOGRAPH-F95B -F95C CJK COMPATIBILITY IDEOGRAPH-F95C -F95D CJK COMPATIBILITY IDEOGRAPH-F95D -F95E CJK COMPATIBILITY IDEOGRAPH-F95E -F95F CJK COMPATIBILITY IDEOGRAPH-F95F -F960 CJK COMPATIBILITY IDEOGRAPH-F960 -F961 CJK COMPATIBILITY IDEOGRAPH-F961 -F962 CJK COMPATIBILITY IDEOGRAPH-F962 -F963 CJK COMPATIBILITY IDEOGRAPH-F963 -F964 CJK COMPATIBILITY IDEOGRAPH-F964 -F965 CJK COMPATIBILITY IDEOGRAPH-F965 -F966 CJK COMPATIBILITY IDEOGRAPH-F966 -F967 CJK COMPATIBILITY IDEOGRAPH-F967 -F968 CJK COMPATIBILITY IDEOGRAPH-F968 -F969 CJK COMPATIBILITY IDEOGRAPH-F969 -F96A CJK COMPATIBILITY IDEOGRAPH-F96A -F96B CJK COMPATIBILITY IDEOGRAPH-F96B -F96C CJK COMPATIBILITY IDEOGRAPH-F96C -F96D CJK COMPATIBILITY IDEOGRAPH-F96D -F96E CJK COMPATIBILITY IDEOGRAPH-F96E -F96F CJK COMPATIBILITY IDEOGRAPH-F96F -F970 CJK COMPATIBILITY IDEOGRAPH-F970 -F971 CJK COMPATIBILITY IDEOGRAPH-F971 -F972 CJK COMPATIBILITY IDEOGRAPH-F972 -F973 CJK COMPATIBILITY IDEOGRAPH-F973 -F974 CJK COMPATIBILITY IDEOGRAPH-F974 -F975 CJK COMPATIBILITY IDEOGRAPH-F975 -F976 CJK COMPATIBILITY IDEOGRAPH-F976 -F977 CJK COMPATIBILITY IDEOGRAPH-F977 -F978 CJK COMPATIBILITY IDEOGRAPH-F978 -F979 CJK COMPATIBILITY IDEOGRAPH-F979 -F97A CJK COMPATIBILITY IDEOGRAPH-F97A -F97B CJK COMPATIBILITY IDEOGRAPH-F97B -F97C CJK COMPATIBILITY IDEOGRAPH-F97C -F97D CJK COMPATIBILITY IDEOGRAPH-F97D -F97E CJK COMPATIBILITY IDEOGRAPH-F97E -F97F CJK COMPATIBILITY IDEOGRAPH-F97F -F980 CJK COMPATIBILITY IDEOGRAPH-F980 -F981 CJK COMPATIBILITY IDEOGRAPH-F981 -F982 CJK COMPATIBILITY IDEOGRAPH-F982 -F983 CJK COMPATIBILITY IDEOGRAPH-F983 -F984 CJK COMPATIBILITY IDEOGRAPH-F984 -F985 CJK COMPATIBILITY IDEOGRAPH-F985 -F986 CJK COMPATIBILITY IDEOGRAPH-F986 -F987 CJK COMPATIBILITY IDEOGRAPH-F987 -F988 CJK COMPATIBILITY IDEOGRAPH-F988 -F989 CJK COMPATIBILITY IDEOGRAPH-F989 -F98A CJK COMPATIBILITY IDEOGRAPH-F98A -F98B CJK COMPATIBILITY IDEOGRAPH-F98B -F98C CJK COMPATIBILITY IDEOGRAPH-F98C -F98D CJK COMPATIBILITY IDEOGRAPH-F98D -F98E CJK COMPATIBILITY IDEOGRAPH-F98E -F98F CJK COMPATIBILITY IDEOGRAPH-F98F -F990 CJK COMPATIBILITY IDEOGRAPH-F990 -F991 CJK COMPATIBILITY IDEOGRAPH-F991 -F992 CJK COMPATIBILITY IDEOGRAPH-F992 -F993 CJK COMPATIBILITY IDEOGRAPH-F993 -F994 CJK COMPATIBILITY IDEOGRAPH-F994 -F995 CJK COMPATIBILITY IDEOGRAPH-F995 -F996 CJK COMPATIBILITY IDEOGRAPH-F996 -F997 CJK COMPATIBILITY IDEOGRAPH-F997 -F998 CJK COMPATIBILITY IDEOGRAPH-F998 -F999 CJK COMPATIBILITY IDEOGRAPH-F999 -F99A CJK COMPATIBILITY IDEOGRAPH-F99A -F99B CJK COMPATIBILITY IDEOGRAPH-F99B -F99C CJK COMPATIBILITY IDEOGRAPH-F99C -F99D CJK COMPATIBILITY IDEOGRAPH-F99D -F99E CJK COMPATIBILITY IDEOGRAPH-F99E -F99F CJK COMPATIBILITY IDEOGRAPH-F99F -F9A0 CJK COMPATIBILITY IDEOGRAPH-F9A0 -F9A1 CJK COMPATIBILITY IDEOGRAPH-F9A1 -F9A2 CJK COMPATIBILITY IDEOGRAPH-F9A2 -F9A3 CJK COMPATIBILITY IDEOGRAPH-F9A3 -F9A4 CJK COMPATIBILITY IDEOGRAPH-F9A4 -F9A5 CJK COMPATIBILITY IDEOGRAPH-F9A5 -F9A6 CJK COMPATIBILITY IDEOGRAPH-F9A6 -F9A7 CJK COMPATIBILITY IDEOGRAPH-F9A7 -F9A8 CJK COMPATIBILITY IDEOGRAPH-F9A8 -F9A9 CJK COMPATIBILITY IDEOGRAPH-F9A9 -F9AA CJK COMPATIBILITY IDEOGRAPH-F9AA -F9AB CJK COMPATIBILITY IDEOGRAPH-F9AB -F9AC CJK COMPATIBILITY IDEOGRAPH-F9AC -F9AD CJK COMPATIBILITY IDEOGRAPH-F9AD -F9AE CJK COMPATIBILITY IDEOGRAPH-F9AE -F9AF CJK COMPATIBILITY IDEOGRAPH-F9AF -F9B0 CJK COMPATIBILITY IDEOGRAPH-F9B0 -F9B1 CJK COMPATIBILITY IDEOGRAPH-F9B1 -F9B2 CJK COMPATIBILITY IDEOGRAPH-F9B2 -F9B3 CJK COMPATIBILITY IDEOGRAPH-F9B3 -F9B4 CJK COMPATIBILITY IDEOGRAPH-F9B4 -F9B5 CJK COMPATIBILITY IDEOGRAPH-F9B5 -F9B6 CJK COMPATIBILITY IDEOGRAPH-F9B6 -F9B7 CJK COMPATIBILITY IDEOGRAPH-F9B7 -F9B8 CJK COMPATIBILITY IDEOGRAPH-F9B8 -F9B9 CJK COMPATIBILITY IDEOGRAPH-F9B9 -F9BA CJK COMPATIBILITY IDEOGRAPH-F9BA -F9BB CJK COMPATIBILITY IDEOGRAPH-F9BB -F9BC CJK COMPATIBILITY IDEOGRAPH-F9BC -F9BD CJK COMPATIBILITY IDEOGRAPH-F9BD -F9BE CJK COMPATIBILITY IDEOGRAPH-F9BE -F9BF CJK COMPATIBILITY IDEOGRAPH-F9BF -F9C0 CJK COMPATIBILITY IDEOGRAPH-F9C0 -F9C1 CJK COMPATIBILITY IDEOGRAPH-F9C1 -F9C2 CJK COMPATIBILITY IDEOGRAPH-F9C2 -F9C3 CJK COMPATIBILITY IDEOGRAPH-F9C3 -F9C4 CJK COMPATIBILITY IDEOGRAPH-F9C4 -F9C5 CJK COMPATIBILITY IDEOGRAPH-F9C5 -F9C6 CJK COMPATIBILITY IDEOGRAPH-F9C6 -F9C7 CJK COMPATIBILITY IDEOGRAPH-F9C7 -F9C8 CJK COMPATIBILITY IDEOGRAPH-F9C8 -F9C9 CJK COMPATIBILITY IDEOGRAPH-F9C9 -F9CA CJK COMPATIBILITY IDEOGRAPH-F9CA -F9CB CJK COMPATIBILITY IDEOGRAPH-F9CB -F9CC CJK COMPATIBILITY IDEOGRAPH-F9CC -F9CD CJK COMPATIBILITY IDEOGRAPH-F9CD -F9CE CJK COMPATIBILITY IDEOGRAPH-F9CE -F9CF CJK COMPATIBILITY IDEOGRAPH-F9CF -F9D0 CJK COMPATIBILITY IDEOGRAPH-F9D0 -F9D1 CJK COMPATIBILITY IDEOGRAPH-F9D1 -F9D2 CJK COMPATIBILITY IDEOGRAPH-F9D2 -F9D3 CJK COMPATIBILITY IDEOGRAPH-F9D3 -F9D4 CJK COMPATIBILITY IDEOGRAPH-F9D4 -F9D5 CJK COMPATIBILITY IDEOGRAPH-F9D5 -F9D6 CJK COMPATIBILITY IDEOGRAPH-F9D6 -F9D7 CJK COMPATIBILITY IDEOGRAPH-F9D7 -F9D8 CJK COMPATIBILITY IDEOGRAPH-F9D8 -F9D9 CJK COMPATIBILITY IDEOGRAPH-F9D9 -F9DA CJK COMPATIBILITY IDEOGRAPH-F9DA -F9DB CJK COMPATIBILITY IDEOGRAPH-F9DB -F9DC CJK COMPATIBILITY IDEOGRAPH-F9DC -F9DD CJK COMPATIBILITY IDEOGRAPH-F9DD -F9DE CJK COMPATIBILITY IDEOGRAPH-F9DE -F9DF CJK COMPATIBILITY IDEOGRAPH-F9DF -F9E0 CJK COMPATIBILITY IDEOGRAPH-F9E0 -F9E1 CJK COMPATIBILITY IDEOGRAPH-F9E1 -F9E2 CJK COMPATIBILITY IDEOGRAPH-F9E2 -F9E3 CJK COMPATIBILITY IDEOGRAPH-F9E3 -F9E4 CJK COMPATIBILITY IDEOGRAPH-F9E4 -F9E5 CJK COMPATIBILITY IDEOGRAPH-F9E5 -F9E6 CJK COMPATIBILITY IDEOGRAPH-F9E6 -F9E7 CJK COMPATIBILITY IDEOGRAPH-F9E7 -F9E8 CJK COMPATIBILITY IDEOGRAPH-F9E8 -F9E9 CJK COMPATIBILITY IDEOGRAPH-F9E9 -F9EA CJK COMPATIBILITY IDEOGRAPH-F9EA -F9EB CJK COMPATIBILITY IDEOGRAPH-F9EB -F9EC CJK COMPATIBILITY IDEOGRAPH-F9EC -F9ED CJK COMPATIBILITY IDEOGRAPH-F9ED -F9EE CJK COMPATIBILITY IDEOGRAPH-F9EE -F9EF CJK COMPATIBILITY IDEOGRAPH-F9EF -F9F0 CJK COMPATIBILITY IDEOGRAPH-F9F0 -F9F1 CJK COMPATIBILITY IDEOGRAPH-F9F1 -F9F2 CJK COMPATIBILITY IDEOGRAPH-F9F2 -F9F3 CJK COMPATIBILITY IDEOGRAPH-F9F3 -F9F4 CJK COMPATIBILITY IDEOGRAPH-F9F4 -F9F5 CJK COMPATIBILITY IDEOGRAPH-F9F5 -F9F6 CJK COMPATIBILITY IDEOGRAPH-F9F6 -F9F7 CJK COMPATIBILITY IDEOGRAPH-F9F7 -F9F8 CJK COMPATIBILITY IDEOGRAPH-F9F8 -F9F9 CJK COMPATIBILITY IDEOGRAPH-F9F9 -F9FA CJK COMPATIBILITY IDEOGRAPH-F9FA -F9FB CJK COMPATIBILITY IDEOGRAPH-F9FB -F9FC CJK COMPATIBILITY IDEOGRAPH-F9FC -F9FD CJK COMPATIBILITY IDEOGRAPH-F9FD -F9FE CJK COMPATIBILITY IDEOGRAPH-F9FE -F9FF CJK COMPATIBILITY IDEOGRAPH-F9FF -FA00 CJK COMPATIBILITY IDEOGRAPH-FA00 -FA01 CJK COMPATIBILITY IDEOGRAPH-FA01 -FA02 CJK COMPATIBILITY IDEOGRAPH-FA02 -FA03 CJK COMPATIBILITY IDEOGRAPH-FA03 -FA04 CJK COMPATIBILITY IDEOGRAPH-FA04 -FA05 CJK COMPATIBILITY IDEOGRAPH-FA05 -FA06 CJK COMPATIBILITY IDEOGRAPH-FA06 -FA07 CJK COMPATIBILITY IDEOGRAPH-FA07 -FA08 CJK COMPATIBILITY IDEOGRAPH-FA08 -FA09 CJK COMPATIBILITY IDEOGRAPH-FA09 -FA0A CJK COMPATIBILITY IDEOGRAPH-FA0A -FA0B CJK COMPATIBILITY IDEOGRAPH-FA0B -FA0C CJK COMPATIBILITY IDEOGRAPH-FA0C -FA0D CJK COMPATIBILITY IDEOGRAPH-FA0D -FA0E CJK COMPATIBILITY IDEOGRAPH-FA0E -FA0F CJK COMPATIBILITY IDEOGRAPH-FA0F -FA10 CJK COMPATIBILITY IDEOGRAPH-FA10 -FA11 CJK COMPATIBILITY IDEOGRAPH-FA11 -FA12 CJK COMPATIBILITY IDEOGRAPH-FA12 -FA13 CJK COMPATIBILITY IDEOGRAPH-FA13 -FA14 CJK COMPATIBILITY IDEOGRAPH-FA14 -FA15 CJK COMPATIBILITY IDEOGRAPH-FA15 -FA16 CJK COMPATIBILITY IDEOGRAPH-FA16 -FA17 CJK COMPATIBILITY IDEOGRAPH-FA17 -FA18 CJK COMPATIBILITY IDEOGRAPH-FA18 -FA19 CJK COMPATIBILITY IDEOGRAPH-FA19 -FA1A CJK COMPATIBILITY IDEOGRAPH-FA1A -FA1B CJK COMPATIBILITY IDEOGRAPH-FA1B -FA1C CJK COMPATIBILITY IDEOGRAPH-FA1C -FA1D CJK COMPATIBILITY IDEOGRAPH-FA1D -FA1E CJK COMPATIBILITY IDEOGRAPH-FA1E -FA1F CJK COMPATIBILITY IDEOGRAPH-FA1F -FA20 CJK COMPATIBILITY IDEOGRAPH-FA20 -FA21 CJK COMPATIBILITY IDEOGRAPH-FA21 -FA22 CJK COMPATIBILITY IDEOGRAPH-FA22 -FA23 CJK COMPATIBILITY IDEOGRAPH-FA23 -FA24 CJK COMPATIBILITY IDEOGRAPH-FA24 -FA25 CJK COMPATIBILITY IDEOGRAPH-FA25 -FA26 CJK COMPATIBILITY IDEOGRAPH-FA26 -FA27 CJK COMPATIBILITY IDEOGRAPH-FA27 -FA28 CJK COMPATIBILITY IDEOGRAPH-FA28 -FA29 CJK COMPATIBILITY IDEOGRAPH-FA29 -FA2A CJK COMPATIBILITY IDEOGRAPH-FA2A -FA2B CJK COMPATIBILITY IDEOGRAPH-FA2B -FA2C CJK COMPATIBILITY IDEOGRAPH-FA2C -FA2D CJK COMPATIBILITY IDEOGRAPH-FA2D -FA30 CJK COMPATIBILITY IDEOGRAPH-FA30 -FA31 CJK COMPATIBILITY IDEOGRAPH-FA31 -FA32 CJK COMPATIBILITY IDEOGRAPH-FA32 -FA33 CJK COMPATIBILITY IDEOGRAPH-FA33 -FA34 CJK COMPATIBILITY IDEOGRAPH-FA34 -FA35 CJK COMPATIBILITY IDEOGRAPH-FA35 -FA36 CJK COMPATIBILITY IDEOGRAPH-FA36 -FA37 CJK COMPATIBILITY IDEOGRAPH-FA37 -FA38 CJK COMPATIBILITY IDEOGRAPH-FA38 -FA39 CJK COMPATIBILITY IDEOGRAPH-FA39 -FA3A CJK COMPATIBILITY IDEOGRAPH-FA3A -FA3B CJK COMPATIBILITY IDEOGRAPH-FA3B -FA3C CJK COMPATIBILITY IDEOGRAPH-FA3C -FA3D CJK COMPATIBILITY IDEOGRAPH-FA3D -FA3E CJK COMPATIBILITY IDEOGRAPH-FA3E -FA3F CJK COMPATIBILITY IDEOGRAPH-FA3F -FA40 CJK COMPATIBILITY IDEOGRAPH-FA40 -FA41 CJK COMPATIBILITY IDEOGRAPH-FA41 -FA42 CJK COMPATIBILITY IDEOGRAPH-FA42 -FA43 CJK COMPATIBILITY IDEOGRAPH-FA43 -FA44 CJK COMPATIBILITY IDEOGRAPH-FA44 -FA45 CJK COMPATIBILITY IDEOGRAPH-FA45 -FA46 CJK COMPATIBILITY IDEOGRAPH-FA46 -FA47 CJK COMPATIBILITY IDEOGRAPH-FA47 -FA48 CJK COMPATIBILITY IDEOGRAPH-FA48 -FA49 CJK COMPATIBILITY IDEOGRAPH-FA49 -FA4A CJK COMPATIBILITY IDEOGRAPH-FA4A -FA4B CJK COMPATIBILITY IDEOGRAPH-FA4B -FA4C CJK COMPATIBILITY IDEOGRAPH-FA4C -FA4D CJK COMPATIBILITY IDEOGRAPH-FA4D -FA4E CJK COMPATIBILITY IDEOGRAPH-FA4E -FA4F CJK COMPATIBILITY IDEOGRAPH-FA4F -FA50 CJK COMPATIBILITY IDEOGRAPH-FA50 -FA51 CJK COMPATIBILITY IDEOGRAPH-FA51 -FA52 CJK COMPATIBILITY IDEOGRAPH-FA52 -FA53 CJK COMPATIBILITY IDEOGRAPH-FA53 -FA54 CJK COMPATIBILITY IDEOGRAPH-FA54 -FA55 CJK COMPATIBILITY IDEOGRAPH-FA55 -FA56 CJK COMPATIBILITY IDEOGRAPH-FA56 -FA57 CJK COMPATIBILITY IDEOGRAPH-FA57 -FA58 CJK COMPATIBILITY IDEOGRAPH-FA58 -FA59 CJK COMPATIBILITY IDEOGRAPH-FA59 -FA5A CJK COMPATIBILITY IDEOGRAPH-FA5A -FA5B CJK COMPATIBILITY IDEOGRAPH-FA5B -FA5C CJK COMPATIBILITY IDEOGRAPH-FA5C -FA5D CJK COMPATIBILITY IDEOGRAPH-FA5D -FA5E CJK COMPATIBILITY IDEOGRAPH-FA5E -FA5F CJK COMPATIBILITY IDEOGRAPH-FA5F -FA60 CJK COMPATIBILITY IDEOGRAPH-FA60 -FA61 CJK COMPATIBILITY IDEOGRAPH-FA61 -FA62 CJK COMPATIBILITY IDEOGRAPH-FA62 -FA63 CJK COMPATIBILITY IDEOGRAPH-FA63 -FA64 CJK COMPATIBILITY IDEOGRAPH-FA64 -FA65 CJK COMPATIBILITY IDEOGRAPH-FA65 -FA66 CJK COMPATIBILITY IDEOGRAPH-FA66 -FA67 CJK COMPATIBILITY IDEOGRAPH-FA67 -FA68 CJK COMPATIBILITY IDEOGRAPH-FA68 -FA69 CJK COMPATIBILITY IDEOGRAPH-FA69 -FA6A CJK COMPATIBILITY IDEOGRAPH-FA6A -FB00 LATIN SMALL LIGATURE FF -FB01 LATIN SMALL LIGATURE FI -FB02 LATIN SMALL LIGATURE FL -FB03 LATIN SMALL LIGATURE FFI -FB04 LATIN SMALL LIGATURE FFL -FB05 LATIN SMALL LIGATURE LONG S T -FB06 LATIN SMALL LIGATURE ST -FB13 ARMENIAN SMALL LIGATURE MEN NOW -FB14 ARMENIAN SMALL LIGATURE MEN ECH -FB15 ARMENIAN SMALL LIGATURE MEN INI -FB16 ARMENIAN SMALL LIGATURE VEW NOW -FB17 ARMENIAN SMALL LIGATURE MEN XEH -FB1D HEBREW LETTER YOD WITH HIRIQ -FB1E HEBREW POINT JUDEO-SPANISH VARIKA -FB1F HEBREW LIGATURE YIDDISH YOD YOD PATAH -FB20 HEBREW LETTER ALTERNATIVE AYIN -FB21 HEBREW LETTER WIDE ALEF -FB22 HEBREW LETTER WIDE DALET -FB23 HEBREW LETTER WIDE HE -FB24 HEBREW LETTER WIDE KAF -FB25 HEBREW LETTER WIDE LAMED -FB26 HEBREW LETTER WIDE FINAL MEM -FB27 HEBREW LETTER WIDE RESH -FB28 HEBREW LETTER WIDE TAV -FB29 HEBREW LETTER ALTERNATIVE PLUS SIGN -FB2A HEBREW LETTER SHIN WITH SHIN DOT -FB2B HEBREW LETTER SHIN WITH SIN DOT -FB2C HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT -FB2D HEBREW LETTER SHIN WITH DAGESH AND SIN DOT -FB2E HEBREW LETTER ALEF WITH PATAH -FB2F HEBREW LETTER ALEF WITH QAMATS -FB30 HEBREW LETTER ALEF WITH MAPIQ -FB31 HEBREW LETTER BET WITH DAGESH -FB32 HEBREW LETTER GIMEL WITH DAGESH -FB33 HEBREW LETTER DALET WITH DAGESH -FB34 HEBREW LETTER HE WITH MAPIQ -FB35 HEBREW LETTER VAV WITH DAGESH -FB36 HEBREW LETTER ZAYIN WITH DAGESH -FB38 HEBREW LETTER TET WITH DAGESH -FB39 HEBREW LETTER YOD WITH DAGESH -FB3A HEBREW LETTER FINAL KAF WITH DAGESH -FB3B HEBREW LETTER KAF WITH DAGESH -FB3C HEBREW LETTER LAMED WITH DAGESH -FB3E HEBREW LETTER MEM WITH DAGESH -FB40 HEBREW LETTER NUN WITH DAGESH -FB41 HEBREW LETTER SAMEKH WITH DAGESH -FB43 HEBREW LETTER FINAL PE WITH DAGESH -FB44 HEBREW LETTER PE WITH DAGESH -FB46 HEBREW LETTER TSADI WITH DAGESH -FB47 HEBREW LETTER QOF WITH DAGESH -FB48 HEBREW LETTER RESH WITH DAGESH -FB49 HEBREW LETTER SHIN WITH DAGESH -FB4A HEBREW LETTER TAV WITH DAGESH -FB4B HEBREW LETTER VAV WITH HOLAM -FB4C HEBREW LETTER BET WITH RAFE -FB4D HEBREW LETTER KAF WITH RAFE -FB4E HEBREW LETTER PE WITH RAFE -FB4F HEBREW LIGATURE ALEF LAMED -FB50 ARABIC LETTER ALEF WASLA ISOLATED FORM -FB51 ARABIC LETTER ALEF WASLA FINAL FORM -FB52 ARABIC LETTER BEEH ISOLATED FORM -FB53 ARABIC LETTER BEEH FINAL FORM -FB54 ARABIC LETTER BEEH INITIAL FORM -FB55 ARABIC LETTER BEEH MEDIAL FORM -FB56 ARABIC LETTER PEH ISOLATED FORM -FB57 ARABIC LETTER PEH FINAL FORM -FB58 ARABIC LETTER PEH INITIAL FORM -FB59 ARABIC LETTER PEH MEDIAL FORM -FB5A ARABIC LETTER BEHEH ISOLATED FORM -FB5B ARABIC LETTER BEHEH FINAL FORM -FB5C ARABIC LETTER BEHEH INITIAL FORM -FB5D ARABIC LETTER BEHEH MEDIAL FORM -FB5E ARABIC LETTER TTEHEH ISOLATED FORM -FB5F ARABIC LETTER TTEHEH FINAL FORM -FB60 ARABIC LETTER TTEHEH INITIAL FORM -FB61 ARABIC LETTER TTEHEH MEDIAL FORM -FB62 ARABIC LETTER TEHEH ISOLATED FORM -FB63 ARABIC LETTER TEHEH FINAL FORM -FB64 ARABIC LETTER TEHEH INITIAL FORM -FB65 ARABIC LETTER TEHEH MEDIAL FORM -FB66 ARABIC LETTER TTEH ISOLATED FORM -FB67 ARABIC LETTER TTEH FINAL FORM -FB68 ARABIC LETTER TTEH INITIAL FORM -FB69 ARABIC LETTER TTEH MEDIAL FORM -FB6A ARABIC LETTER VEH ISOLATED FORM -FB6B ARABIC LETTER VEH FINAL FORM -FB6C ARABIC LETTER VEH INITIAL FORM -FB6D ARABIC LETTER VEH MEDIAL FORM -FB6E ARABIC LETTER PEHEH ISOLATED FORM -FB6F ARABIC LETTER PEHEH FINAL FORM -FB70 ARABIC LETTER PEHEH INITIAL FORM -FB71 ARABIC LETTER PEHEH MEDIAL FORM -FB72 ARABIC LETTER DYEH ISOLATED FORM -FB73 ARABIC LETTER DYEH FINAL FORM -FB74 ARABIC LETTER DYEH INITIAL FORM -FB75 ARABIC LETTER DYEH MEDIAL FORM -FB76 ARABIC LETTER NYEH ISOLATED FORM -FB77 ARABIC LETTER NYEH FINAL FORM -FB78 ARABIC LETTER NYEH INITIAL FORM -FB79 ARABIC LETTER NYEH MEDIAL FORM -FB7A ARABIC LETTER TCHEH ISOLATED FORM -FB7B ARABIC LETTER TCHEH FINAL FORM -FB7C ARABIC LETTER TCHEH INITIAL FORM -FB7D ARABIC LETTER TCHEH MEDIAL FORM -FB7E ARABIC LETTER TCHEHEH ISOLATED FORM -FB7F ARABIC LETTER TCHEHEH FINAL FORM -FB80 ARABIC LETTER TCHEHEH INITIAL FORM -FB81 ARABIC LETTER TCHEHEH MEDIAL FORM -FB82 ARABIC LETTER DDAHAL ISOLATED FORM -FB83 ARABIC LETTER DDAHAL FINAL FORM -FB84 ARABIC LETTER DAHAL ISOLATED FORM -FB85 ARABIC LETTER DAHAL FINAL FORM -FB86 ARABIC LETTER DUL ISOLATED FORM -FB87 ARABIC LETTER DUL FINAL FORM -FB88 ARABIC LETTER DDAL ISOLATED FORM -FB89 ARABIC LETTER DDAL FINAL FORM -FB8A ARABIC LETTER JEH ISOLATED FORM -FB8B ARABIC LETTER JEH FINAL FORM -FB8C ARABIC LETTER RREH ISOLATED FORM -FB8D ARABIC LETTER RREH FINAL FORM -FB8E ARABIC LETTER KEHEH ISOLATED FORM -FB8F ARABIC LETTER KEHEH FINAL FORM -FB90 ARABIC LETTER KEHEH INITIAL FORM -FB91 ARABIC LETTER KEHEH MEDIAL FORM -FB92 ARABIC LETTER GAF ISOLATED FORM -FB93 ARABIC LETTER GAF FINAL FORM -FB94 ARABIC LETTER GAF INITIAL FORM -FB95 ARABIC LETTER GAF MEDIAL FORM -FB96 ARABIC LETTER GUEH ISOLATED FORM -FB97 ARABIC LETTER GUEH FINAL FORM -FB98 ARABIC LETTER GUEH INITIAL FORM -FB99 ARABIC LETTER GUEH MEDIAL FORM -FB9A ARABIC LETTER NGOEH ISOLATED FORM -FB9B ARABIC LETTER NGOEH FINAL FORM -FB9C ARABIC LETTER NGOEH INITIAL FORM -FB9D ARABIC LETTER NGOEH MEDIAL FORM -FB9E ARABIC LETTER NOON GHUNNA ISOLATED FORM -FB9F ARABIC LETTER NOON GHUNNA FINAL FORM -FBA0 ARABIC LETTER RNOON ISOLATED FORM -FBA1 ARABIC LETTER RNOON FINAL FORM -FBA2 ARABIC LETTER RNOON INITIAL FORM -FBA3 ARABIC LETTER RNOON MEDIAL FORM -FBA4 ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM -FBA5 ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM -FBA6 ARABIC LETTER HEH GOAL ISOLATED FORM -FBA7 ARABIC LETTER HEH GOAL FINAL FORM -FBA8 ARABIC LETTER HEH GOAL INITIAL FORM -FBA9 ARABIC LETTER HEH GOAL MEDIAL FORM -FBAA ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM -FBAB ARABIC LETTER HEH DOACHASHMEE FINAL FORM -FBAC ARABIC LETTER HEH DOACHASHMEE INITIAL FORM -FBAD ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM -FBAE ARABIC LETTER YEH BARREE ISOLATED FORM -FBAF ARABIC LETTER YEH BARREE FINAL FORM -FBB0 ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM -FBB1 ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM -FBD3 ARABIC LETTER NG ISOLATED FORM -FBD4 ARABIC LETTER NG FINAL FORM -FBD5 ARABIC LETTER NG INITIAL FORM -FBD6 ARABIC LETTER NG MEDIAL FORM -FBD7 ARABIC LETTER U ISOLATED FORM -FBD8 ARABIC LETTER U FINAL FORM -FBD9 ARABIC LETTER OE ISOLATED FORM -FBDA ARABIC LETTER OE FINAL FORM -FBDB ARABIC LETTER YU ISOLATED FORM -FBDC ARABIC LETTER YU FINAL FORM -FBDD ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM -FBDE ARABIC LETTER VE ISOLATED FORM -FBDF ARABIC LETTER VE FINAL FORM -FBE0 ARABIC LETTER KIRGHIZ OE ISOLATED FORM -FBE1 ARABIC LETTER KIRGHIZ OE FINAL FORM -FBE2 ARABIC LETTER KIRGHIZ YU ISOLATED FORM -FBE3 ARABIC LETTER KIRGHIZ YU FINAL FORM -FBE4 ARABIC LETTER E ISOLATED FORM -FBE5 ARABIC LETTER E FINAL FORM -FBE6 ARABIC LETTER E INITIAL FORM -FBE7 ARABIC LETTER E MEDIAL FORM -FBE8 ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM -FBE9 ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM -FBEA ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM -FBEB ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF FINAL FORM -FBEC ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE ISOLATED FORM -FBED ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE FINAL FORM -FBEE ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW ISOLATED FORM -FBEF ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW FINAL FORM -FBF0 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U ISOLATED FORM -FBF1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U FINAL FORM -FBF2 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE ISOLATED FORM -FBF3 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE FINAL FORM -FBF4 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU ISOLATED FORM -FBF5 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU FINAL FORM -FBF6 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E ISOLATED FORM -FBF7 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E FINAL FORM -FBF8 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E INITIAL FORM -FBF9 ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM -FBFA ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM -FBFB ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM -FBFC ARABIC LETTER FARSI YEH ISOLATED FORM -FBFD ARABIC LETTER FARSI YEH FINAL FORM -FBFE ARABIC LETTER FARSI YEH INITIAL FORM -FBFF ARABIC LETTER FARSI YEH MEDIAL FORM -FC00 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM -FC01 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH ISOLATED FORM -FC02 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM ISOLATED FORM -FC03 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM -FC04 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH ISOLATED FORM -FC05 ARABIC LIGATURE BEH WITH JEEM ISOLATED FORM -FC06 ARABIC LIGATURE BEH WITH HAH ISOLATED FORM -FC07 ARABIC LIGATURE BEH WITH KHAH ISOLATED FORM -FC08 ARABIC LIGATURE BEH WITH MEEM ISOLATED FORM -FC09 ARABIC LIGATURE BEH WITH ALEF MAKSURA ISOLATED FORM -FC0A ARABIC LIGATURE BEH WITH YEH ISOLATED FORM -FC0B ARABIC LIGATURE TEH WITH JEEM ISOLATED FORM -FC0C ARABIC LIGATURE TEH WITH HAH ISOLATED FORM -FC0D ARABIC LIGATURE TEH WITH KHAH ISOLATED FORM -FC0E ARABIC LIGATURE TEH WITH MEEM ISOLATED FORM -FC0F ARABIC LIGATURE TEH WITH ALEF MAKSURA ISOLATED FORM -FC10 ARABIC LIGATURE TEH WITH YEH ISOLATED FORM -FC11 ARABIC LIGATURE THEH WITH JEEM ISOLATED FORM -FC12 ARABIC LIGATURE THEH WITH MEEM ISOLATED FORM -FC13 ARABIC LIGATURE THEH WITH ALEF MAKSURA ISOLATED FORM -FC14 ARABIC LIGATURE THEH WITH YEH ISOLATED FORM -FC15 ARABIC LIGATURE JEEM WITH HAH ISOLATED FORM -FC16 ARABIC LIGATURE JEEM WITH MEEM ISOLATED FORM -FC17 ARABIC LIGATURE HAH WITH JEEM ISOLATED FORM -FC18 ARABIC LIGATURE HAH WITH MEEM ISOLATED FORM -FC19 ARABIC LIGATURE KHAH WITH JEEM ISOLATED FORM -FC1A ARABIC LIGATURE KHAH WITH HAH ISOLATED FORM -FC1B ARABIC LIGATURE KHAH WITH MEEM ISOLATED FORM -FC1C ARABIC LIGATURE SEEN WITH JEEM ISOLATED FORM -FC1D ARABIC LIGATURE SEEN WITH HAH ISOLATED FORM -FC1E ARABIC LIGATURE SEEN WITH KHAH ISOLATED FORM -FC1F ARABIC LIGATURE SEEN WITH MEEM ISOLATED FORM -FC20 ARABIC LIGATURE SAD WITH HAH ISOLATED FORM -FC21 ARABIC LIGATURE SAD WITH MEEM ISOLATED FORM -FC22 ARABIC LIGATURE DAD WITH JEEM ISOLATED FORM -FC23 ARABIC LIGATURE DAD WITH HAH ISOLATED FORM -FC24 ARABIC LIGATURE DAD WITH KHAH ISOLATED FORM -FC25 ARABIC LIGATURE DAD WITH MEEM ISOLATED FORM -FC26 ARABIC LIGATURE TAH WITH HAH ISOLATED FORM -FC27 ARABIC LIGATURE TAH WITH MEEM ISOLATED FORM -FC28 ARABIC LIGATURE ZAH WITH MEEM ISOLATED FORM -FC29 ARABIC LIGATURE AIN WITH JEEM ISOLATED FORM -FC2A ARABIC LIGATURE AIN WITH MEEM ISOLATED FORM -FC2B ARABIC LIGATURE GHAIN WITH JEEM ISOLATED FORM -FC2C ARABIC LIGATURE GHAIN WITH MEEM ISOLATED FORM -FC2D ARABIC LIGATURE FEH WITH JEEM ISOLATED FORM -FC2E ARABIC LIGATURE FEH WITH HAH ISOLATED FORM -FC2F ARABIC LIGATURE FEH WITH KHAH ISOLATED FORM -FC30 ARABIC LIGATURE FEH WITH MEEM ISOLATED FORM -FC31 ARABIC LIGATURE FEH WITH ALEF MAKSURA ISOLATED FORM -FC32 ARABIC LIGATURE FEH WITH YEH ISOLATED FORM -FC33 ARABIC LIGATURE QAF WITH HAH ISOLATED FORM -FC34 ARABIC LIGATURE QAF WITH MEEM ISOLATED FORM -FC35 ARABIC LIGATURE QAF WITH ALEF MAKSURA ISOLATED FORM -FC36 ARABIC LIGATURE QAF WITH YEH ISOLATED FORM -FC37 ARABIC LIGATURE KAF WITH ALEF ISOLATED FORM -FC38 ARABIC LIGATURE KAF WITH JEEM ISOLATED FORM -FC39 ARABIC LIGATURE KAF WITH HAH ISOLATED FORM -FC3A ARABIC LIGATURE KAF WITH KHAH ISOLATED FORM -FC3B ARABIC LIGATURE KAF WITH LAM ISOLATED FORM -FC3C ARABIC LIGATURE KAF WITH MEEM ISOLATED FORM -FC3D ARABIC LIGATURE KAF WITH ALEF MAKSURA ISOLATED FORM -FC3E ARABIC LIGATURE KAF WITH YEH ISOLATED FORM -FC3F ARABIC LIGATURE LAM WITH JEEM ISOLATED FORM -FC40 ARABIC LIGATURE LAM WITH HAH ISOLATED FORM -FC41 ARABIC LIGATURE LAM WITH KHAH ISOLATED FORM -FC42 ARABIC LIGATURE LAM WITH MEEM ISOLATED FORM -FC43 ARABIC LIGATURE LAM WITH ALEF MAKSURA ISOLATED FORM -FC44 ARABIC LIGATURE LAM WITH YEH ISOLATED FORM -FC45 ARABIC LIGATURE MEEM WITH JEEM ISOLATED FORM -FC46 ARABIC LIGATURE MEEM WITH HAH ISOLATED FORM -FC47 ARABIC LIGATURE MEEM WITH KHAH ISOLATED FORM -FC48 ARABIC LIGATURE MEEM WITH MEEM ISOLATED FORM -FC49 ARABIC LIGATURE MEEM WITH ALEF MAKSURA ISOLATED FORM -FC4A ARABIC LIGATURE MEEM WITH YEH ISOLATED FORM -FC4B ARABIC LIGATURE NOON WITH JEEM ISOLATED FORM -FC4C ARABIC LIGATURE NOON WITH HAH ISOLATED FORM -FC4D ARABIC LIGATURE NOON WITH KHAH ISOLATED FORM -FC4E ARABIC LIGATURE NOON WITH MEEM ISOLATED FORM -FC4F ARABIC LIGATURE NOON WITH ALEF MAKSURA ISOLATED FORM -FC50 ARABIC LIGATURE NOON WITH YEH ISOLATED FORM -FC51 ARABIC LIGATURE HEH WITH JEEM ISOLATED FORM -FC52 ARABIC LIGATURE HEH WITH MEEM ISOLATED FORM -FC53 ARABIC LIGATURE HEH WITH ALEF MAKSURA ISOLATED FORM -FC54 ARABIC LIGATURE HEH WITH YEH ISOLATED FORM -FC55 ARABIC LIGATURE YEH WITH JEEM ISOLATED FORM -FC56 ARABIC LIGATURE YEH WITH HAH ISOLATED FORM -FC57 ARABIC LIGATURE YEH WITH KHAH ISOLATED FORM -FC58 ARABIC LIGATURE YEH WITH MEEM ISOLATED FORM -FC59 ARABIC LIGATURE YEH WITH ALEF MAKSURA ISOLATED FORM -FC5A ARABIC LIGATURE YEH WITH YEH ISOLATED FORM -FC5B ARABIC LIGATURE THAL WITH SUPERSCRIPT ALEF ISOLATED FORM -FC5C ARABIC LIGATURE REH WITH SUPERSCRIPT ALEF ISOLATED FORM -FC5D ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM -FC5E ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM -FC5F ARABIC LIGATURE SHADDA WITH KASRATAN ISOLATED FORM -FC60 ARABIC LIGATURE SHADDA WITH FATHA ISOLATED FORM -FC61 ARABIC LIGATURE SHADDA WITH DAMMA ISOLATED FORM -FC62 ARABIC LIGATURE SHADDA WITH KASRA ISOLATED FORM -FC63 ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM -FC64 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH REH FINAL FORM -FC65 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ZAIN FINAL FORM -FC66 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM FINAL FORM -FC67 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH NOON FINAL FORM -FC68 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM -FC69 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH FINAL FORM -FC6A ARABIC LIGATURE BEH WITH REH FINAL FORM -FC6B ARABIC LIGATURE BEH WITH ZAIN FINAL FORM -FC6C ARABIC LIGATURE BEH WITH MEEM FINAL FORM -FC6D ARABIC LIGATURE BEH WITH NOON FINAL FORM -FC6E ARABIC LIGATURE BEH WITH ALEF MAKSURA FINAL FORM -FC6F ARABIC LIGATURE BEH WITH YEH FINAL FORM -FC70 ARABIC LIGATURE TEH WITH REH FINAL FORM -FC71 ARABIC LIGATURE TEH WITH ZAIN FINAL FORM -FC72 ARABIC LIGATURE TEH WITH MEEM FINAL FORM -FC73 ARABIC LIGATURE TEH WITH NOON FINAL FORM -FC74 ARABIC LIGATURE TEH WITH ALEF MAKSURA FINAL FORM -FC75 ARABIC LIGATURE TEH WITH YEH FINAL FORM -FC76 ARABIC LIGATURE THEH WITH REH FINAL FORM -FC77 ARABIC LIGATURE THEH WITH ZAIN FINAL FORM -FC78 ARABIC LIGATURE THEH WITH MEEM FINAL FORM -FC79 ARABIC LIGATURE THEH WITH NOON FINAL FORM -FC7A ARABIC LIGATURE THEH WITH ALEF MAKSURA FINAL FORM -FC7B ARABIC LIGATURE THEH WITH YEH FINAL FORM -FC7C ARABIC LIGATURE FEH WITH ALEF MAKSURA FINAL FORM -FC7D ARABIC LIGATURE FEH WITH YEH FINAL FORM -FC7E ARABIC LIGATURE QAF WITH ALEF MAKSURA FINAL FORM -FC7F ARABIC LIGATURE QAF WITH YEH FINAL FORM -FC80 ARABIC LIGATURE KAF WITH ALEF FINAL FORM -FC81 ARABIC LIGATURE KAF WITH LAM FINAL FORM -FC82 ARABIC LIGATURE KAF WITH MEEM FINAL FORM -FC83 ARABIC LIGATURE KAF WITH ALEF MAKSURA FINAL FORM -FC84 ARABIC LIGATURE KAF WITH YEH FINAL FORM -FC85 ARABIC LIGATURE LAM WITH MEEM FINAL FORM -FC86 ARABIC LIGATURE LAM WITH ALEF MAKSURA FINAL FORM -FC87 ARABIC LIGATURE LAM WITH YEH FINAL FORM -FC88 ARABIC LIGATURE MEEM WITH ALEF FINAL FORM -FC89 ARABIC LIGATURE MEEM WITH MEEM FINAL FORM -FC8A ARABIC LIGATURE NOON WITH REH FINAL FORM -FC8B ARABIC LIGATURE NOON WITH ZAIN FINAL FORM -FC8C ARABIC LIGATURE NOON WITH MEEM FINAL FORM -FC8D ARABIC LIGATURE NOON WITH NOON FINAL FORM -FC8E ARABIC LIGATURE NOON WITH ALEF MAKSURA FINAL FORM -FC8F ARABIC LIGATURE NOON WITH YEH FINAL FORM -FC90 ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM -FC91 ARABIC LIGATURE YEH WITH REH FINAL FORM -FC92 ARABIC LIGATURE YEH WITH ZAIN FINAL FORM -FC93 ARABIC LIGATURE YEH WITH MEEM FINAL FORM -FC94 ARABIC LIGATURE YEH WITH NOON FINAL FORM -FC95 ARABIC LIGATURE YEH WITH ALEF MAKSURA FINAL FORM -FC96 ARABIC LIGATURE YEH WITH YEH FINAL FORM -FC97 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM INITIAL FORM -FC98 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH INITIAL FORM -FC99 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH KHAH INITIAL FORM -FC9A ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM INITIAL FORM -FC9B ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH INITIAL FORM -FC9C ARABIC LIGATURE BEH WITH JEEM INITIAL FORM -FC9D ARABIC LIGATURE BEH WITH HAH INITIAL FORM -FC9E ARABIC LIGATURE BEH WITH KHAH INITIAL FORM -FC9F ARABIC LIGATURE BEH WITH MEEM INITIAL FORM -FCA0 ARABIC LIGATURE BEH WITH HEH INITIAL FORM -FCA1 ARABIC LIGATURE TEH WITH JEEM INITIAL FORM -FCA2 ARABIC LIGATURE TEH WITH HAH INITIAL FORM -FCA3 ARABIC LIGATURE TEH WITH KHAH INITIAL FORM -FCA4 ARABIC LIGATURE TEH WITH MEEM INITIAL FORM -FCA5 ARABIC LIGATURE TEH WITH HEH INITIAL FORM -FCA6 ARABIC LIGATURE THEH WITH MEEM INITIAL FORM -FCA7 ARABIC LIGATURE JEEM WITH HAH INITIAL FORM -FCA8 ARABIC LIGATURE JEEM WITH MEEM INITIAL FORM -FCA9 ARABIC LIGATURE HAH WITH JEEM INITIAL FORM -FCAA ARABIC LIGATURE HAH WITH MEEM INITIAL FORM -FCAB ARABIC LIGATURE KHAH WITH JEEM INITIAL FORM -FCAC ARABIC LIGATURE KHAH WITH MEEM INITIAL FORM -FCAD ARABIC LIGATURE SEEN WITH JEEM INITIAL FORM -FCAE ARABIC LIGATURE SEEN WITH HAH INITIAL FORM -FCAF ARABIC LIGATURE SEEN WITH KHAH INITIAL FORM -FCB0 ARABIC LIGATURE SEEN WITH MEEM INITIAL FORM -FCB1 ARABIC LIGATURE SAD WITH HAH INITIAL FORM -FCB2 ARABIC LIGATURE SAD WITH KHAH INITIAL FORM -FCB3 ARABIC LIGATURE SAD WITH MEEM INITIAL FORM -FCB4 ARABIC LIGATURE DAD WITH JEEM INITIAL FORM -FCB5 ARABIC LIGATURE DAD WITH HAH INITIAL FORM -FCB6 ARABIC LIGATURE DAD WITH KHAH INITIAL FORM -FCB7 ARABIC LIGATURE DAD WITH MEEM INITIAL FORM -FCB8 ARABIC LIGATURE TAH WITH HAH INITIAL FORM -FCB9 ARABIC LIGATURE ZAH WITH MEEM INITIAL FORM -FCBA ARABIC LIGATURE AIN WITH JEEM INITIAL FORM -FCBB ARABIC LIGATURE AIN WITH MEEM INITIAL FORM -FCBC ARABIC LIGATURE GHAIN WITH JEEM INITIAL FORM -FCBD ARABIC LIGATURE GHAIN WITH MEEM INITIAL FORM -FCBE ARABIC LIGATURE FEH WITH JEEM INITIAL FORM -FCBF ARABIC LIGATURE FEH WITH HAH INITIAL FORM -FCC0 ARABIC LIGATURE FEH WITH KHAH INITIAL FORM -FCC1 ARABIC LIGATURE FEH WITH MEEM INITIAL FORM -FCC2 ARABIC LIGATURE QAF WITH HAH INITIAL FORM -FCC3 ARABIC LIGATURE QAF WITH MEEM INITIAL FORM -FCC4 ARABIC LIGATURE KAF WITH JEEM INITIAL FORM -FCC5 ARABIC LIGATURE KAF WITH HAH INITIAL FORM -FCC6 ARABIC LIGATURE KAF WITH KHAH INITIAL FORM -FCC7 ARABIC LIGATURE KAF WITH LAM INITIAL FORM -FCC8 ARABIC LIGATURE KAF WITH MEEM INITIAL FORM -FCC9 ARABIC LIGATURE LAM WITH JEEM INITIAL FORM -FCCA ARABIC LIGATURE LAM WITH HAH INITIAL FORM -FCCB ARABIC LIGATURE LAM WITH KHAH INITIAL FORM -FCCC ARABIC LIGATURE LAM WITH MEEM INITIAL FORM -FCCD ARABIC LIGATURE LAM WITH HEH INITIAL FORM -FCCE ARABIC LIGATURE MEEM WITH JEEM INITIAL FORM -FCCF ARABIC LIGATURE MEEM WITH HAH INITIAL FORM -FCD0 ARABIC LIGATURE MEEM WITH KHAH INITIAL FORM -FCD1 ARABIC LIGATURE MEEM WITH MEEM INITIAL FORM -FCD2 ARABIC LIGATURE NOON WITH JEEM INITIAL FORM -FCD3 ARABIC LIGATURE NOON WITH HAH INITIAL FORM -FCD4 ARABIC LIGATURE NOON WITH KHAH INITIAL FORM -FCD5 ARABIC LIGATURE NOON WITH MEEM INITIAL FORM -FCD6 ARABIC LIGATURE NOON WITH HEH INITIAL FORM -FCD7 ARABIC LIGATURE HEH WITH JEEM INITIAL FORM -FCD8 ARABIC LIGATURE HEH WITH MEEM INITIAL FORM -FCD9 ARABIC LIGATURE HEH WITH SUPERSCRIPT ALEF INITIAL FORM -FCDA ARABIC LIGATURE YEH WITH JEEM INITIAL FORM -FCDB ARABIC LIGATURE YEH WITH HAH INITIAL FORM -FCDC ARABIC LIGATURE YEH WITH KHAH INITIAL FORM -FCDD ARABIC LIGATURE YEH WITH MEEM INITIAL FORM -FCDE ARABIC LIGATURE YEH WITH HEH INITIAL FORM -FCDF ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM MEDIAL FORM -FCE0 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH MEDIAL FORM -FCE1 ARABIC LIGATURE BEH WITH MEEM MEDIAL FORM -FCE2 ARABIC LIGATURE BEH WITH HEH MEDIAL FORM -FCE3 ARABIC LIGATURE TEH WITH MEEM MEDIAL FORM -FCE4 ARABIC LIGATURE TEH WITH HEH MEDIAL FORM -FCE5 ARABIC LIGATURE THEH WITH MEEM MEDIAL FORM -FCE6 ARABIC LIGATURE THEH WITH HEH MEDIAL FORM -FCE7 ARABIC LIGATURE SEEN WITH MEEM MEDIAL FORM -FCE8 ARABIC LIGATURE SEEN WITH HEH MEDIAL FORM -FCE9 ARABIC LIGATURE SHEEN WITH MEEM MEDIAL FORM -FCEA ARABIC LIGATURE SHEEN WITH HEH MEDIAL FORM -FCEB ARABIC LIGATURE KAF WITH LAM MEDIAL FORM -FCEC ARABIC LIGATURE KAF WITH MEEM MEDIAL FORM -FCED ARABIC LIGATURE LAM WITH MEEM MEDIAL FORM -FCEE ARABIC LIGATURE NOON WITH MEEM MEDIAL FORM -FCEF ARABIC LIGATURE NOON WITH HEH MEDIAL FORM -FCF0 ARABIC LIGATURE YEH WITH MEEM MEDIAL FORM -FCF1 ARABIC LIGATURE YEH WITH HEH MEDIAL FORM -FCF2 ARABIC LIGATURE SHADDA WITH FATHA MEDIAL FORM -FCF3 ARABIC LIGATURE SHADDA WITH DAMMA MEDIAL FORM -FCF4 ARABIC LIGATURE SHADDA WITH KASRA MEDIAL FORM -FCF5 ARABIC LIGATURE TAH WITH ALEF MAKSURA ISOLATED FORM -FCF6 ARABIC LIGATURE TAH WITH YEH ISOLATED FORM -FCF7 ARABIC LIGATURE AIN WITH ALEF MAKSURA ISOLATED FORM -FCF8 ARABIC LIGATURE AIN WITH YEH ISOLATED FORM -FCF9 ARABIC LIGATURE GHAIN WITH ALEF MAKSURA ISOLATED FORM -FCFA ARABIC LIGATURE GHAIN WITH YEH ISOLATED FORM -FCFB ARABIC LIGATURE SEEN WITH ALEF MAKSURA ISOLATED FORM -FCFC ARABIC LIGATURE SEEN WITH YEH ISOLATED FORM -FCFD ARABIC LIGATURE SHEEN WITH ALEF MAKSURA ISOLATED FORM -FCFE ARABIC LIGATURE SHEEN WITH YEH ISOLATED FORM -FCFF ARABIC LIGATURE HAH WITH ALEF MAKSURA ISOLATED FORM -FD00 ARABIC LIGATURE HAH WITH YEH ISOLATED FORM -FD01 ARABIC LIGATURE JEEM WITH ALEF MAKSURA ISOLATED FORM -FD02 ARABIC LIGATURE JEEM WITH YEH ISOLATED FORM -FD03 ARABIC LIGATURE KHAH WITH ALEF MAKSURA ISOLATED FORM -FD04 ARABIC LIGATURE KHAH WITH YEH ISOLATED FORM -FD05 ARABIC LIGATURE SAD WITH ALEF MAKSURA ISOLATED FORM -FD06 ARABIC LIGATURE SAD WITH YEH ISOLATED FORM -FD07 ARABIC LIGATURE DAD WITH ALEF MAKSURA ISOLATED FORM -FD08 ARABIC LIGATURE DAD WITH YEH ISOLATED FORM -FD09 ARABIC LIGATURE SHEEN WITH JEEM ISOLATED FORM -FD0A ARABIC LIGATURE SHEEN WITH HAH ISOLATED FORM -FD0B ARABIC LIGATURE SHEEN WITH KHAH ISOLATED FORM -FD0C ARABIC LIGATURE SHEEN WITH MEEM ISOLATED FORM -FD0D ARABIC LIGATURE SHEEN WITH REH ISOLATED FORM -FD0E ARABIC LIGATURE SEEN WITH REH ISOLATED FORM -FD0F ARABIC LIGATURE SAD WITH REH ISOLATED FORM -FD10 ARABIC LIGATURE DAD WITH REH ISOLATED FORM -FD11 ARABIC LIGATURE TAH WITH ALEF MAKSURA FINAL FORM -FD12 ARABIC LIGATURE TAH WITH YEH FINAL FORM -FD13 ARABIC LIGATURE AIN WITH ALEF MAKSURA FINAL FORM -FD14 ARABIC LIGATURE AIN WITH YEH FINAL FORM -FD15 ARABIC LIGATURE GHAIN WITH ALEF MAKSURA FINAL FORM -FD16 ARABIC LIGATURE GHAIN WITH YEH FINAL FORM -FD17 ARABIC LIGATURE SEEN WITH ALEF MAKSURA FINAL FORM -FD18 ARABIC LIGATURE SEEN WITH YEH FINAL FORM -FD19 ARABIC LIGATURE SHEEN WITH ALEF MAKSURA FINAL FORM -FD1A ARABIC LIGATURE SHEEN WITH YEH FINAL FORM -FD1B ARABIC LIGATURE HAH WITH ALEF MAKSURA FINAL FORM -FD1C ARABIC LIGATURE HAH WITH YEH FINAL FORM -FD1D ARABIC LIGATURE JEEM WITH ALEF MAKSURA FINAL FORM -FD1E ARABIC LIGATURE JEEM WITH YEH FINAL FORM -FD1F ARABIC LIGATURE KHAH WITH ALEF MAKSURA FINAL FORM -FD20 ARABIC LIGATURE KHAH WITH YEH FINAL FORM -FD21 ARABIC LIGATURE SAD WITH ALEF MAKSURA FINAL FORM -FD22 ARABIC LIGATURE SAD WITH YEH FINAL FORM -FD23 ARABIC LIGATURE DAD WITH ALEF MAKSURA FINAL FORM -FD24 ARABIC LIGATURE DAD WITH YEH FINAL FORM -FD25 ARABIC LIGATURE SHEEN WITH JEEM FINAL FORM -FD26 ARABIC LIGATURE SHEEN WITH HAH FINAL FORM -FD27 ARABIC LIGATURE SHEEN WITH KHAH FINAL FORM -FD28 ARABIC LIGATURE SHEEN WITH MEEM FINAL FORM -FD29 ARABIC LIGATURE SHEEN WITH REH FINAL FORM -FD2A ARABIC LIGATURE SEEN WITH REH FINAL FORM -FD2B ARABIC LIGATURE SAD WITH REH FINAL FORM -FD2C ARABIC LIGATURE DAD WITH REH FINAL FORM -FD2D ARABIC LIGATURE SHEEN WITH JEEM INITIAL FORM -FD2E ARABIC LIGATURE SHEEN WITH HAH INITIAL FORM -FD2F ARABIC LIGATURE SHEEN WITH KHAH INITIAL FORM -FD30 ARABIC LIGATURE SHEEN WITH MEEM INITIAL FORM -FD31 ARABIC LIGATURE SEEN WITH HEH INITIAL FORM -FD32 ARABIC LIGATURE SHEEN WITH HEH INITIAL FORM -FD33 ARABIC LIGATURE TAH WITH MEEM INITIAL FORM -FD34 ARABIC LIGATURE SEEN WITH JEEM MEDIAL FORM -FD35 ARABIC LIGATURE SEEN WITH HAH MEDIAL FORM -FD36 ARABIC LIGATURE SEEN WITH KHAH MEDIAL FORM -FD37 ARABIC LIGATURE SHEEN WITH JEEM MEDIAL FORM -FD38 ARABIC LIGATURE SHEEN WITH HAH MEDIAL FORM -FD39 ARABIC LIGATURE SHEEN WITH KHAH MEDIAL FORM -FD3A ARABIC LIGATURE TAH WITH MEEM MEDIAL FORM -FD3B ARABIC LIGATURE ZAH WITH MEEM MEDIAL FORM -FD3C ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM -FD3D ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM -FD3E ORNATE LEFT PARENTHESIS -FD3F ORNATE RIGHT PARENTHESIS -FD50 ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM -FD51 ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM -FD52 ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM -FD53 ARABIC LIGATURE TEH WITH HAH WITH MEEM INITIAL FORM -FD54 ARABIC LIGATURE TEH WITH KHAH WITH MEEM INITIAL FORM -FD55 ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM -FD56 ARABIC LIGATURE TEH WITH MEEM WITH HAH INITIAL FORM -FD57 ARABIC LIGATURE TEH WITH MEEM WITH KHAH INITIAL FORM -FD58 ARABIC LIGATURE JEEM WITH MEEM WITH HAH FINAL FORM -FD59 ARABIC LIGATURE JEEM WITH MEEM WITH HAH INITIAL FORM -FD5A ARABIC LIGATURE HAH WITH MEEM WITH YEH FINAL FORM -FD5B ARABIC LIGATURE HAH WITH MEEM WITH ALEF MAKSURA FINAL FORM -FD5C ARABIC LIGATURE SEEN WITH HAH WITH JEEM INITIAL FORM -FD5D ARABIC LIGATURE SEEN WITH JEEM WITH HAH INITIAL FORM -FD5E ARABIC LIGATURE SEEN WITH JEEM WITH ALEF MAKSURA FINAL FORM -FD5F ARABIC LIGATURE SEEN WITH MEEM WITH HAH FINAL FORM -FD60 ARABIC LIGATURE SEEN WITH MEEM WITH HAH INITIAL FORM -FD61 ARABIC LIGATURE SEEN WITH MEEM WITH JEEM INITIAL FORM -FD62 ARABIC LIGATURE SEEN WITH MEEM WITH MEEM FINAL FORM -FD63 ARABIC LIGATURE SEEN WITH MEEM WITH MEEM INITIAL FORM -FD64 ARABIC LIGATURE SAD WITH HAH WITH HAH FINAL FORM -FD65 ARABIC LIGATURE SAD WITH HAH WITH HAH INITIAL FORM -FD66 ARABIC LIGATURE SAD WITH MEEM WITH MEEM FINAL FORM -FD67 ARABIC LIGATURE SHEEN WITH HAH WITH MEEM FINAL FORM -FD68 ARABIC LIGATURE SHEEN WITH HAH WITH MEEM INITIAL FORM -FD69 ARABIC LIGATURE SHEEN WITH JEEM WITH YEH FINAL FORM -FD6A ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH FINAL FORM -FD6B ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH INITIAL FORM -FD6C ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM FINAL FORM -FD6D ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM INITIAL FORM -FD6E ARABIC LIGATURE DAD WITH HAH WITH ALEF MAKSURA FINAL FORM -FD6F ARABIC LIGATURE DAD WITH KHAH WITH MEEM FINAL FORM -FD70 ARABIC LIGATURE DAD WITH KHAH WITH MEEM INITIAL FORM -FD71 ARABIC LIGATURE TAH WITH MEEM WITH HAH FINAL FORM -FD72 ARABIC LIGATURE TAH WITH MEEM WITH HAH INITIAL FORM -FD73 ARABIC LIGATURE TAH WITH MEEM WITH MEEM INITIAL FORM -FD74 ARABIC LIGATURE TAH WITH MEEM WITH YEH FINAL FORM -FD75 ARABIC LIGATURE AIN WITH JEEM WITH MEEM FINAL FORM -FD76 ARABIC LIGATURE AIN WITH MEEM WITH MEEM FINAL FORM -FD77 ARABIC LIGATURE AIN WITH MEEM WITH MEEM INITIAL FORM -FD78 ARABIC LIGATURE AIN WITH MEEM WITH ALEF MAKSURA FINAL FORM -FD79 ARABIC LIGATURE GHAIN WITH MEEM WITH MEEM FINAL FORM -FD7A ARABIC LIGATURE GHAIN WITH MEEM WITH YEH FINAL FORM -FD7B ARABIC LIGATURE GHAIN WITH MEEM WITH ALEF MAKSURA FINAL FORM -FD7C ARABIC LIGATURE FEH WITH KHAH WITH MEEM FINAL FORM -FD7D ARABIC LIGATURE FEH WITH KHAH WITH MEEM INITIAL FORM -FD7E ARABIC LIGATURE QAF WITH MEEM WITH HAH FINAL FORM -FD7F ARABIC LIGATURE QAF WITH MEEM WITH MEEM FINAL FORM -FD80 ARABIC LIGATURE LAM WITH HAH WITH MEEM FINAL FORM -FD81 ARABIC LIGATURE LAM WITH HAH WITH YEH FINAL FORM -FD82 ARABIC LIGATURE LAM WITH HAH WITH ALEF MAKSURA FINAL FORM -FD83 ARABIC LIGATURE LAM WITH JEEM WITH JEEM INITIAL FORM -FD84 ARABIC LIGATURE LAM WITH JEEM WITH JEEM FINAL FORM -FD85 ARABIC LIGATURE LAM WITH KHAH WITH MEEM FINAL FORM -FD86 ARABIC LIGATURE LAM WITH KHAH WITH MEEM INITIAL FORM -FD87 ARABIC LIGATURE LAM WITH MEEM WITH HAH FINAL FORM -FD88 ARABIC LIGATURE LAM WITH MEEM WITH HAH INITIAL FORM -FD89 ARABIC LIGATURE MEEM WITH HAH WITH JEEM INITIAL FORM -FD8A ARABIC LIGATURE MEEM WITH HAH WITH MEEM INITIAL FORM -FD8B ARABIC LIGATURE MEEM WITH HAH WITH YEH FINAL FORM -FD8C ARABIC LIGATURE MEEM WITH JEEM WITH HAH INITIAL FORM -FD8D ARABIC LIGATURE MEEM WITH JEEM WITH MEEM INITIAL FORM -FD8E ARABIC LIGATURE MEEM WITH KHAH WITH JEEM INITIAL FORM -FD8F ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM -FD92 ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM -FD93 ARABIC LIGATURE HEH WITH MEEM WITH JEEM INITIAL FORM -FD94 ARABIC LIGATURE HEH WITH MEEM WITH MEEM INITIAL FORM -FD95 ARABIC LIGATURE NOON WITH HAH WITH MEEM INITIAL FORM -FD96 ARABIC LIGATURE NOON WITH HAH WITH ALEF MAKSURA FINAL FORM -FD97 ARABIC LIGATURE NOON WITH JEEM WITH MEEM FINAL FORM -FD98 ARABIC LIGATURE NOON WITH JEEM WITH MEEM INITIAL FORM -FD99 ARABIC LIGATURE NOON WITH JEEM WITH ALEF MAKSURA FINAL FORM -FD9A ARABIC LIGATURE NOON WITH MEEM WITH YEH FINAL FORM -FD9B ARABIC LIGATURE NOON WITH MEEM WITH ALEF MAKSURA FINAL FORM -FD9C ARABIC LIGATURE YEH WITH MEEM WITH MEEM FINAL FORM -FD9D ARABIC LIGATURE YEH WITH MEEM WITH MEEM INITIAL FORM -FD9E ARABIC LIGATURE BEH WITH KHAH WITH YEH FINAL FORM -FD9F ARABIC LIGATURE TEH WITH JEEM WITH YEH FINAL FORM -FDA0 ARABIC LIGATURE TEH WITH JEEM WITH ALEF MAKSURA FINAL FORM -FDA1 ARABIC LIGATURE TEH WITH KHAH WITH YEH FINAL FORM -FDA2 ARABIC LIGATURE TEH WITH KHAH WITH ALEF MAKSURA FINAL FORM -FDA3 ARABIC LIGATURE TEH WITH MEEM WITH YEH FINAL FORM -FDA4 ARABIC LIGATURE TEH WITH MEEM WITH ALEF MAKSURA FINAL FORM -FDA5 ARABIC LIGATURE JEEM WITH MEEM WITH YEH FINAL FORM -FDA6 ARABIC LIGATURE JEEM WITH HAH WITH ALEF MAKSURA FINAL FORM -FDA7 ARABIC LIGATURE JEEM WITH MEEM WITH ALEF MAKSURA FINAL FORM -FDA8 ARABIC LIGATURE SEEN WITH KHAH WITH ALEF MAKSURA FINAL FORM -FDA9 ARABIC LIGATURE SAD WITH HAH WITH YEH FINAL FORM -FDAA ARABIC LIGATURE SHEEN WITH HAH WITH YEH FINAL FORM -FDAB ARABIC LIGATURE DAD WITH HAH WITH YEH FINAL FORM -FDAC ARABIC LIGATURE LAM WITH JEEM WITH YEH FINAL FORM -FDAD ARABIC LIGATURE LAM WITH MEEM WITH YEH FINAL FORM -FDAE ARABIC LIGATURE YEH WITH HAH WITH YEH FINAL FORM -FDAF ARABIC LIGATURE YEH WITH JEEM WITH YEH FINAL FORM -FDB0 ARABIC LIGATURE YEH WITH MEEM WITH YEH FINAL FORM -FDB1 ARABIC LIGATURE MEEM WITH MEEM WITH YEH FINAL FORM -FDB2 ARABIC LIGATURE QAF WITH MEEM WITH YEH FINAL FORM -FDB3 ARABIC LIGATURE NOON WITH HAH WITH YEH FINAL FORM -FDB4 ARABIC LIGATURE QAF WITH MEEM WITH HAH INITIAL FORM -FDB5 ARABIC LIGATURE LAM WITH HAH WITH MEEM INITIAL FORM -FDB6 ARABIC LIGATURE AIN WITH MEEM WITH YEH FINAL FORM -FDB7 ARABIC LIGATURE KAF WITH MEEM WITH YEH FINAL FORM -FDB8 ARABIC LIGATURE NOON WITH JEEM WITH HAH INITIAL FORM -FDB9 ARABIC LIGATURE MEEM WITH KHAH WITH YEH FINAL FORM -FDBA ARABIC LIGATURE LAM WITH JEEM WITH MEEM INITIAL FORM -FDBB ARABIC LIGATURE KAF WITH MEEM WITH MEEM FINAL FORM -FDBC ARABIC LIGATURE LAM WITH JEEM WITH MEEM FINAL FORM -FDBD ARABIC LIGATURE NOON WITH JEEM WITH HAH FINAL FORM -FDBE ARABIC LIGATURE JEEM WITH HAH WITH YEH FINAL FORM -FDBF ARABIC LIGATURE HAH WITH JEEM WITH YEH FINAL FORM -FDC0 ARABIC LIGATURE MEEM WITH JEEM WITH YEH FINAL FORM -FDC1 ARABIC LIGATURE FEH WITH MEEM WITH YEH FINAL FORM -FDC2 ARABIC LIGATURE BEH WITH HAH WITH YEH FINAL FORM -FDC3 ARABIC LIGATURE KAF WITH MEEM WITH MEEM INITIAL FORM -FDC4 ARABIC LIGATURE AIN WITH JEEM WITH MEEM INITIAL FORM -FDC5 ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM -FDC6 ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM -FDC7 ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM -FDF0 ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM -FDF1 ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM -FDF2 ARABIC LIGATURE ALLAH ISOLATED FORM -FDF3 ARABIC LIGATURE AKBAR ISOLATED FORM -FDF4 ARABIC LIGATURE MOHAMMAD ISOLATED FORM -FDF5 ARABIC LIGATURE SALAM ISOLATED FORM -FDF6 ARABIC LIGATURE RASOUL ISOLATED FORM -FDF7 ARABIC LIGATURE ALAYHE ISOLATED FORM -FDF8 ARABIC LIGATURE WASALLAM ISOLATED FORM -FDF9 ARABIC LIGATURE SALLA ISOLATED FORM -FDFA ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM -FDFB ARABIC LIGATURE JALLAJALALOUHOU -FDFC RIAL SIGN -FE00 VARIATION SELECTOR-1 -FE01 VARIATION SELECTOR-2 -FE02 VARIATION SELECTOR-3 -FE03 VARIATION SELECTOR-4 -FE04 VARIATION SELECTOR-5 -FE05 VARIATION SELECTOR-6 -FE06 VARIATION SELECTOR-7 -FE07 VARIATION SELECTOR-8 -FE08 VARIATION SELECTOR-9 -FE09 VARIATION SELECTOR-10 -FE0A VARIATION SELECTOR-11 -FE0B VARIATION SELECTOR-12 -FE0C VARIATION SELECTOR-13 -FE0D VARIATION SELECTOR-14 -FE0E VARIATION SELECTOR-15 -FE0F VARIATION SELECTOR-16 -FE20 COMBINING LIGATURE LEFT HALF -FE21 COMBINING LIGATURE RIGHT HALF -FE22 COMBINING DOUBLE TILDE LEFT HALF -FE23 COMBINING DOUBLE TILDE RIGHT HALF -FE30 PRESENTATION FORM FOR VERTICAL TWO DOT LEADER -FE31 PRESENTATION FORM FOR VERTICAL EM DASH -FE32 PRESENTATION FORM FOR VERTICAL EN DASH -FE33 PRESENTATION FORM FOR VERTICAL LOW LINE -FE34 PRESENTATION FORM FOR VERTICAL WAVY LOW LINE -FE35 PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS -FE36 PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS -FE37 PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET -FE38 PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET -FE39 PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET -FE3A PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET -FE3B PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET -FE3C PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET -FE3D PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET -FE3E PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET -FE3F PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET -FE40 PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET -FE41 PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET -FE42 PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET -FE43 PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET -FE44 PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET -FE45 SESAME DOT -FE46 WHITE SESAME DOT -FE49 DASHED OVERLINE -FE4A CENTRELINE OVERLINE -FE4B WAVY OVERLINE -FE4C DOUBLE WAVY OVERLINE -FE4D DASHED LOW LINE -FE4E CENTRELINE LOW LINE -FE4F WAVY LOW LINE -FE50 SMALL COMMA -FE51 SMALL IDEOGRAPHIC COMMA -FE52 SMALL FULL STOP -FE54 SMALL SEMICOLON -FE55 SMALL COLON -FE56 SMALL QUESTION MARK -FE57 SMALL EXCLAMATION MARK -FE58 SMALL EM DASH -FE59 SMALL LEFT PARENTHESIS -FE5A SMALL RIGHT PARENTHESIS -FE5B SMALL LEFT CURLY BRACKET -FE5C SMALL RIGHT CURLY BRACKET -FE5D SMALL LEFT TORTOISE SHELL BRACKET -FE5E SMALL RIGHT TORTOISE SHELL BRACKET -FE5F SMALL NUMBER SIGN -FE60 SMALL AMPERSAND -FE61 SMALL ASTERISK -FE62 SMALL PLUS SIGN -FE63 SMALL HYPHEN-MINUS -FE64 SMALL LESS-THAN SIGN -FE65 SMALL GREATER-THAN SIGN -FE66 SMALL EQUALS SIGN -FE68 SMALL REVERSE SOLIDUS -FE69 SMALL DOLLAR SIGN -FE6A SMALL PERCENT SIGN -FE6B SMALL COMMERCIAL AT -FE70 ARABIC FATHATAN ISOLATED FORM -FE71 ARABIC TATWEEL WITH FATHATAN ABOVE -FE72 ARABIC DAMMATAN ISOLATED FORM -FE73 ARABIC TAIL FRAGMENT -FE74 ARABIC KASRATAN ISOLATED FORM -FE76 ARABIC FATHA ISOLATED FORM -FE77 ARABIC FATHA MEDIAL FORM -FE78 ARABIC DAMMA ISOLATED FORM -FE79 ARABIC DAMMA MEDIAL FORM -FE7A ARABIC KASRA ISOLATED FORM -FE7B ARABIC KASRA MEDIAL FORM -FE7C ARABIC SHADDA ISOLATED FORM -FE7D ARABIC SHADDA MEDIAL FORM -FE7E ARABIC SUKUN ISOLATED FORM -FE7F ARABIC SUKUN MEDIAL FORM -FE80 ARABIC LETTER HAMZA ISOLATED FORM -FE81 ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM -FE82 ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM -FE83 ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM -FE84 ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM -FE85 ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM -FE86 ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM -FE87 ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM -FE88 ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM -FE89 ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM -FE8A ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM -FE8B ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM -FE8C ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM -FE8D ARABIC LETTER ALEF ISOLATED FORM -FE8E ARABIC LETTER ALEF FINAL FORM -FE8F ARABIC LETTER BEH ISOLATED FORM -FE90 ARABIC LETTER BEH FINAL FORM -FE91 ARABIC LETTER BEH INITIAL FORM -FE92 ARABIC LETTER BEH MEDIAL FORM -FE93 ARABIC LETTER TEH MARBUTA ISOLATED FORM -FE94 ARABIC LETTER TEH MARBUTA FINAL FORM -FE95 ARABIC LETTER TEH ISOLATED FORM -FE96 ARABIC LETTER TEH FINAL FORM -FE97 ARABIC LETTER TEH INITIAL FORM -FE98 ARABIC LETTER TEH MEDIAL FORM -FE99 ARABIC LETTER THEH ISOLATED FORM -FE9A ARABIC LETTER THEH FINAL FORM -FE9B ARABIC LETTER THEH INITIAL FORM -FE9C ARABIC LETTER THEH MEDIAL FORM -FE9D ARABIC LETTER JEEM ISOLATED FORM -FE9E ARABIC LETTER JEEM FINAL FORM -FE9F ARABIC LETTER JEEM INITIAL FORM -FEA0 ARABIC LETTER JEEM MEDIAL FORM -FEA1 ARABIC LETTER HAH ISOLATED FORM -FEA2 ARABIC LETTER HAH FINAL FORM -FEA3 ARABIC LETTER HAH INITIAL FORM -FEA4 ARABIC LETTER HAH MEDIAL FORM -FEA5 ARABIC LETTER KHAH ISOLATED FORM -FEA6 ARABIC LETTER KHAH FINAL FORM -FEA7 ARABIC LETTER KHAH INITIAL FORM -FEA8 ARABIC LETTER KHAH MEDIAL FORM -FEA9 ARABIC LETTER DAL ISOLATED FORM -FEAA ARABIC LETTER DAL FINAL FORM -FEAB ARABIC LETTER THAL ISOLATED FORM -FEAC ARABIC LETTER THAL FINAL FORM -FEAD ARABIC LETTER REH ISOLATED FORM -FEAE ARABIC LETTER REH FINAL FORM -FEAF ARABIC LETTER ZAIN ISOLATED FORM -FEB0 ARABIC LETTER ZAIN FINAL FORM -FEB1 ARABIC LETTER SEEN ISOLATED FORM -FEB2 ARABIC LETTER SEEN FINAL FORM -FEB3 ARABIC LETTER SEEN INITIAL FORM -FEB4 ARABIC LETTER SEEN MEDIAL FORM -FEB5 ARABIC LETTER SHEEN ISOLATED FORM -FEB6 ARABIC LETTER SHEEN FINAL FORM -FEB7 ARABIC LETTER SHEEN INITIAL FORM -FEB8 ARABIC LETTER SHEEN MEDIAL FORM -FEB9 ARABIC LETTER SAD ISOLATED FORM -FEBA ARABIC LETTER SAD FINAL FORM -FEBB ARABIC LETTER SAD INITIAL FORM -FEBC ARABIC LETTER SAD MEDIAL FORM -FEBD ARABIC LETTER DAD ISOLATED FORM -FEBE ARABIC LETTER DAD FINAL FORM -FEBF ARABIC LETTER DAD INITIAL FORM -FEC0 ARABIC LETTER DAD MEDIAL FORM -FEC1 ARABIC LETTER TAH ISOLATED FORM -FEC2 ARABIC LETTER TAH FINAL FORM -FEC3 ARABIC LETTER TAH INITIAL FORM -FEC4 ARABIC LETTER TAH MEDIAL FORM -FEC5 ARABIC LETTER ZAH ISOLATED FORM -FEC6 ARABIC LETTER ZAH FINAL FORM -FEC7 ARABIC LETTER ZAH INITIAL FORM -FEC8 ARABIC LETTER ZAH MEDIAL FORM -FEC9 ARABIC LETTER AIN ISOLATED FORM -FECA ARABIC LETTER AIN FINAL FORM -FECB ARABIC LETTER AIN INITIAL FORM -FECC ARABIC LETTER AIN MEDIAL FORM -FECD ARABIC LETTER GHAIN ISOLATED FORM -FECE ARABIC LETTER GHAIN FINAL FORM -FECF ARABIC LETTER GHAIN INITIAL FORM -FED0 ARABIC LETTER GHAIN MEDIAL FORM -FED1 ARABIC LETTER FEH ISOLATED FORM -FED2 ARABIC LETTER FEH FINAL FORM -FED3 ARABIC LETTER FEH INITIAL FORM -FED4 ARABIC LETTER FEH MEDIAL FORM -FED5 ARABIC LETTER QAF ISOLATED FORM -FED6 ARABIC LETTER QAF FINAL FORM -FED7 ARABIC LETTER QAF INITIAL FORM -FED8 ARABIC LETTER QAF MEDIAL FORM -FED9 ARABIC LETTER KAF ISOLATED FORM -FEDA ARABIC LETTER KAF FINAL FORM -FEDB ARABIC LETTER KAF INITIAL FORM -FEDC ARABIC LETTER KAF MEDIAL FORM -FEDD ARABIC LETTER LAM ISOLATED FORM -FEDE ARABIC LETTER LAM FINAL FORM -FEDF ARABIC LETTER LAM INITIAL FORM -FEE0 ARABIC LETTER LAM MEDIAL FORM -FEE1 ARABIC LETTER MEEM ISOLATED FORM -FEE2 ARABIC LETTER MEEM FINAL FORM -FEE3 ARABIC LETTER MEEM INITIAL FORM -FEE4 ARABIC LETTER MEEM MEDIAL FORM -FEE5 ARABIC LETTER NOON ISOLATED FORM -FEE6 ARABIC LETTER NOON FINAL FORM -FEE7 ARABIC LETTER NOON INITIAL FORM -FEE8 ARABIC LETTER NOON MEDIAL FORM -FEE9 ARABIC LETTER HEH ISOLATED FORM -FEEA ARABIC LETTER HEH FINAL FORM -FEEB ARABIC LETTER HEH INITIAL FORM -FEEC ARABIC LETTER HEH MEDIAL FORM -FEED ARABIC LETTER WAW ISOLATED FORM -FEEE ARABIC LETTER WAW FINAL FORM -FEEF ARABIC LETTER ALEF MAKSURA ISOLATED FORM -FEF0 ARABIC LETTER ALEF MAKSURA FINAL FORM -FEF1 ARABIC LETTER YEH ISOLATED FORM -FEF2 ARABIC LETTER YEH FINAL FORM -FEF3 ARABIC LETTER YEH INITIAL FORM -FEF4 ARABIC LETTER YEH MEDIAL FORM -FEF5 ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM -FEF6 ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM -FEF7 ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM -FEF8 ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM -FEF9 ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM -FEFA ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM -FEFB ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM -FEFC ARABIC LIGATURE LAM WITH ALEF FINAL FORM -FEFF ZERO WIDTH NO-BREAK SPACE -FF01 FULLWIDTH EXCLAMATION MARK -FF02 FULLWIDTH QUOTATION MARK -FF03 FULLWIDTH NUMBER SIGN -FF04 FULLWIDTH DOLLAR SIGN -FF05 FULLWIDTH PERCENT SIGN -FF06 FULLWIDTH AMPERSAND -FF07 FULLWIDTH APOSTROPHE -FF08 FULLWIDTH LEFT PARENTHESIS -FF09 FULLWIDTH RIGHT PARENTHESIS -FF0A FULLWIDTH ASTERISK -FF0B FULLWIDTH PLUS SIGN -FF0C FULLWIDTH COMMA -FF0D FULLWIDTH HYPHEN-MINUS -FF0E FULLWIDTH FULL STOP -FF0F FULLWIDTH SOLIDUS -FF10 FULLWIDTH DIGIT ZERO -FF11 FULLWIDTH DIGIT ONE -FF12 FULLWIDTH DIGIT TWO -FF13 FULLWIDTH DIGIT THREE -FF14 FULLWIDTH DIGIT FOUR -FF15 FULLWIDTH DIGIT FIVE -FF16 FULLWIDTH DIGIT SIX -FF17 FULLWIDTH DIGIT SEVEN -FF18 FULLWIDTH DIGIT EIGHT -FF19 FULLWIDTH DIGIT NINE -FF1A FULLWIDTH COLON -FF1B FULLWIDTH SEMICOLON -FF1C FULLWIDTH LESS-THAN SIGN -FF1D FULLWIDTH EQUALS SIGN -FF1E FULLWIDTH GREATER-THAN SIGN -FF1F FULLWIDTH QUESTION MARK -FF20 FULLWIDTH COMMERCIAL AT -FF21 FULLWIDTH LATIN CAPITAL LETTER A -FF22 FULLWIDTH LATIN CAPITAL LETTER B -FF23 FULLWIDTH LATIN CAPITAL LETTER C -FF24 FULLWIDTH LATIN CAPITAL LETTER D -FF25 FULLWIDTH LATIN CAPITAL LETTER E -FF26 FULLWIDTH LATIN CAPITAL LETTER F -FF27 FULLWIDTH LATIN CAPITAL LETTER G -FF28 FULLWIDTH LATIN CAPITAL LETTER H -FF29 FULLWIDTH LATIN CAPITAL LETTER I -FF2A FULLWIDTH LATIN CAPITAL LETTER J -FF2B FULLWIDTH LATIN CAPITAL LETTER K -FF2C FULLWIDTH LATIN CAPITAL LETTER L -FF2D FULLWIDTH LATIN CAPITAL LETTER M -FF2E FULLWIDTH LATIN CAPITAL LETTER N -FF2F FULLWIDTH LATIN CAPITAL LETTER O -FF30 FULLWIDTH LATIN CAPITAL LETTER P -FF31 FULLWIDTH LATIN CAPITAL LETTER Q -FF32 FULLWIDTH LATIN CAPITAL LETTER R -FF33 FULLWIDTH LATIN CAPITAL LETTER S -FF34 FULLWIDTH LATIN CAPITAL LETTER T -FF35 FULLWIDTH LATIN CAPITAL LETTER U -FF36 FULLWIDTH LATIN CAPITAL LETTER V -FF37 FULLWIDTH LATIN CAPITAL LETTER W -FF38 FULLWIDTH LATIN CAPITAL LETTER X -FF39 FULLWIDTH LATIN CAPITAL LETTER Y -FF3A FULLWIDTH LATIN CAPITAL LETTER Z -FF3B FULLWIDTH LEFT SQUARE BRACKET -FF3C FULLWIDTH REVERSE SOLIDUS -FF3D FULLWIDTH RIGHT SQUARE BRACKET -FF3E FULLWIDTH CIRCUMFLEX ACCENT -FF3F FULLWIDTH LOW LINE -FF40 FULLWIDTH GRAVE ACCENT -FF41 FULLWIDTH LATIN SMALL LETTER A -FF42 FULLWIDTH LATIN SMALL LETTER B -FF43 FULLWIDTH LATIN SMALL LETTER C -FF44 FULLWIDTH LATIN SMALL LETTER D -FF45 FULLWIDTH LATIN SMALL LETTER E -FF46 FULLWIDTH LATIN SMALL LETTER F -FF47 FULLWIDTH LATIN SMALL LETTER G -FF48 FULLWIDTH LATIN SMALL LETTER H -FF49 FULLWIDTH LATIN SMALL LETTER I -FF4A FULLWIDTH LATIN SMALL LETTER J -FF4B FULLWIDTH LATIN SMALL LETTER K -FF4C FULLWIDTH LATIN SMALL LETTER L -FF4D FULLWIDTH LATIN SMALL LETTER M -FF4E FULLWIDTH LATIN SMALL LETTER N -FF4F FULLWIDTH LATIN SMALL LETTER O -FF50 FULLWIDTH LATIN SMALL LETTER P -FF51 FULLWIDTH LATIN SMALL LETTER Q -FF52 FULLWIDTH LATIN SMALL LETTER R -FF53 FULLWIDTH LATIN SMALL LETTER S -FF54 FULLWIDTH LATIN SMALL LETTER T -FF55 FULLWIDTH LATIN SMALL LETTER U -FF56 FULLWIDTH LATIN SMALL LETTER V -FF57 FULLWIDTH LATIN SMALL LETTER W -FF58 FULLWIDTH LATIN SMALL LETTER X -FF59 FULLWIDTH LATIN SMALL LETTER Y -FF5A FULLWIDTH LATIN SMALL LETTER Z -FF5B FULLWIDTH LEFT CURLY BRACKET -FF5C FULLWIDTH VERTICAL LINE -FF5D FULLWIDTH RIGHT CURLY BRACKET -FF5E FULLWIDTH TILDE -FF5F FULLWIDTH LEFT WHITE PARENTHESIS -FF60 FULLWIDTH RIGHT WHITE PARENTHESIS -FF61 HALFWIDTH IDEOGRAPHIC FULL STOP -FF62 HALFWIDTH LEFT CORNER BRACKET -FF63 HALFWIDTH RIGHT CORNER BRACKET -FF64 HALFWIDTH IDEOGRAPHIC COMMA -FF65 HALFWIDTH KATAKANA MIDDLE DOT -FF66 HALFWIDTH KATAKANA LETTER WO -FF67 HALFWIDTH KATAKANA LETTER SMALL A -FF68 HALFWIDTH KATAKANA LETTER SMALL I -FF69 HALFWIDTH KATAKANA LETTER SMALL U -FF6A HALFWIDTH KATAKANA LETTER SMALL E -FF6B HALFWIDTH KATAKANA LETTER SMALL O -FF6C HALFWIDTH KATAKANA LETTER SMALL YA -FF6D HALFWIDTH KATAKANA LETTER SMALL YU -FF6E HALFWIDTH KATAKANA LETTER SMALL YO -FF6F HALFWIDTH KATAKANA LETTER SMALL TU -FF70 HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK -FF71 HALFWIDTH KATAKANA LETTER A -FF72 HALFWIDTH KATAKANA LETTER I -FF73 HALFWIDTH KATAKANA LETTER U -FF74 HALFWIDTH KATAKANA LETTER E -FF75 HALFWIDTH KATAKANA LETTER O -FF76 HALFWIDTH KATAKANA LETTER KA -FF77 HALFWIDTH KATAKANA LETTER KI -FF78 HALFWIDTH KATAKANA LETTER KU -FF79 HALFWIDTH KATAKANA LETTER KE -FF7A HALFWIDTH KATAKANA LETTER KO -FF7B HALFWIDTH KATAKANA LETTER SA -FF7C HALFWIDTH KATAKANA LETTER SI -FF7D HALFWIDTH KATAKANA LETTER SU -FF7E HALFWIDTH KATAKANA LETTER SE -FF7F HALFWIDTH KATAKANA LETTER SO -FF80 HALFWIDTH KATAKANA LETTER TA -FF81 HALFWIDTH KATAKANA LETTER TI -FF82 HALFWIDTH KATAKANA LETTER TU -FF83 HALFWIDTH KATAKANA LETTER TE -FF84 HALFWIDTH KATAKANA LETTER TO -FF85 HALFWIDTH KATAKANA LETTER NA -FF86 HALFWIDTH KATAKANA LETTER NI -FF87 HALFWIDTH KATAKANA LETTER NU -FF88 HALFWIDTH KATAKANA LETTER NE -FF89 HALFWIDTH KATAKANA LETTER NO -FF8A HALFWIDTH KATAKANA LETTER HA -FF8B HALFWIDTH KATAKANA LETTER HI -FF8C HALFWIDTH KATAKANA LETTER HU -FF8D HALFWIDTH KATAKANA LETTER HE -FF8E HALFWIDTH KATAKANA LETTER HO -FF8F HALFWIDTH KATAKANA LETTER MA -FF90 HALFWIDTH KATAKANA LETTER MI -FF91 HALFWIDTH KATAKANA LETTER MU -FF92 HALFWIDTH KATAKANA LETTER ME -FF93 HALFWIDTH KATAKANA LETTER MO -FF94 HALFWIDTH KATAKANA LETTER YA -FF95 HALFWIDTH KATAKANA LETTER YU -FF96 HALFWIDTH KATAKANA LETTER YO -FF97 HALFWIDTH KATAKANA LETTER RA -FF98 HALFWIDTH KATAKANA LETTER RI -FF99 HALFWIDTH KATAKANA LETTER RU -FF9A HALFWIDTH KATAKANA LETTER RE -FF9B HALFWIDTH KATAKANA LETTER RO -FF9C HALFWIDTH KATAKANA LETTER WA -FF9D HALFWIDTH KATAKANA LETTER N -FF9E HALFWIDTH KATAKANA VOICED SOUND MARK -FF9F HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK -FFA0 HALFWIDTH HANGUL FILLER -FFA1 HALFWIDTH HANGUL LETTER KIYEOK -FFA2 HALFWIDTH HANGUL LETTER SSANGKIYEOK -FFA3 HALFWIDTH HANGUL LETTER KIYEOK-SIOS -FFA4 HALFWIDTH HANGUL LETTER NIEUN -FFA5 HALFWIDTH HANGUL LETTER NIEUN-CIEUC -FFA6 HALFWIDTH HANGUL LETTER NIEUN-HIEUH -FFA7 HALFWIDTH HANGUL LETTER TIKEUT -FFA8 HALFWIDTH HANGUL LETTER SSANGTIKEUT -FFA9 HALFWIDTH HANGUL LETTER RIEUL -FFAA HALFWIDTH HANGUL LETTER RIEUL-KIYEOK -FFAB HALFWIDTH HANGUL LETTER RIEUL-MIEUM -FFAC HALFWIDTH HANGUL LETTER RIEUL-PIEUP -FFAD HALFWIDTH HANGUL LETTER RIEUL-SIOS -FFAE HALFWIDTH HANGUL LETTER RIEUL-THIEUTH -FFAF HALFWIDTH HANGUL LETTER RIEUL-PHIEUPH -FFB0 HALFWIDTH HANGUL LETTER RIEUL-HIEUH -FFB1 HALFWIDTH HANGUL LETTER MIEUM -FFB2 HALFWIDTH HANGUL LETTER PIEUP -FFB3 HALFWIDTH HANGUL LETTER SSANGPIEUP -FFB4 HALFWIDTH HANGUL LETTER PIEUP-SIOS -FFB5 HALFWIDTH HANGUL LETTER SIOS -FFB6 HALFWIDTH HANGUL LETTER SSANGSIOS -FFB7 HALFWIDTH HANGUL LETTER IEUNG -FFB8 HALFWIDTH HANGUL LETTER CIEUC -FFB9 HALFWIDTH HANGUL LETTER SSANGCIEUC -FFBA HALFWIDTH HANGUL LETTER CHIEUCH -FFBB HALFWIDTH HANGUL LETTER KHIEUKH -FFBC HALFWIDTH HANGUL LETTER THIEUTH -FFBD HALFWIDTH HANGUL LETTER PHIEUPH -FFBE HALFWIDTH HANGUL LETTER HIEUH -FFC2 HALFWIDTH HANGUL LETTER A -FFC3 HALFWIDTH HANGUL LETTER AE -FFC4 HALFWIDTH HANGUL LETTER YA -FFC5 HALFWIDTH HANGUL LETTER YAE -FFC6 HALFWIDTH HANGUL LETTER EO -FFC7 HALFWIDTH HANGUL LETTER E -FFCA HALFWIDTH HANGUL LETTER YEO -FFCB HALFWIDTH HANGUL LETTER YE -FFCC HALFWIDTH HANGUL LETTER O -FFCD HALFWIDTH HANGUL LETTER WA -FFCE HALFWIDTH HANGUL LETTER WAE -FFCF HALFWIDTH HANGUL LETTER OE -FFD2 HALFWIDTH HANGUL LETTER YO -FFD3 HALFWIDTH HANGUL LETTER U -FFD4 HALFWIDTH HANGUL LETTER WEO -FFD5 HALFWIDTH HANGUL LETTER WE -FFD6 HALFWIDTH HANGUL LETTER WI -FFD7 HALFWIDTH HANGUL LETTER YU -FFDA HALFWIDTH HANGUL LETTER EU -FFDB HALFWIDTH HANGUL LETTER YI -FFDC HALFWIDTH HANGUL LETTER I -FFE0 FULLWIDTH CENT SIGN -FFE1 FULLWIDTH POUND SIGN -FFE2 FULLWIDTH NOT SIGN -FFE3 FULLWIDTH MACRON -FFE4 FULLWIDTH BROKEN BAR -FFE5 FULLWIDTH YEN SIGN -FFE6 FULLWIDTH WON SIGN -FFE8 HALFWIDTH FORMS LIGHT VERTICAL -FFE9 HALFWIDTH LEFTWARDS ARROW -FFEA HALFWIDTH UPWARDS ARROW -FFEB HALFWIDTH RIGHTWARDS ARROW -FFEC HALFWIDTH DOWNWARDS ARROW -FFED HALFWIDTH BLACK SQUARE -FFEE HALFWIDTH WHITE CIRCLE -FFF9 INTERLINEAR ANNOTATION ANCHOR -FFFA INTERLINEAR ANNOTATION SEPARATOR -FFFB INTERLINEAR ANNOTATION TERMINATOR -FFFC OBJECT REPLACEMENT CHARACTER -FFFD REPLACEMENT CHARACTER -10300 OLD ITALIC LETTER A -10301 OLD ITALIC LETTER BE -10302 OLD ITALIC LETTER KE -10303 OLD ITALIC LETTER DE -10304 OLD ITALIC LETTER E -10305 OLD ITALIC LETTER VE -10306 OLD ITALIC LETTER ZE -10307 OLD ITALIC LETTER HE -10308 OLD ITALIC LETTER THE -10309 OLD ITALIC LETTER I -1030A OLD ITALIC LETTER KA -1030B OLD ITALIC LETTER EL -1030C OLD ITALIC LETTER EM -1030D OLD ITALIC LETTER EN -1030E OLD ITALIC LETTER ESH -1030F OLD ITALIC LETTER O -10310 OLD ITALIC LETTER PE -10311 OLD ITALIC LETTER SHE -10312 OLD ITALIC LETTER KU -10313 OLD ITALIC LETTER ER -10314 OLD ITALIC LETTER ES -10315 OLD ITALIC LETTER TE -10316 OLD ITALIC LETTER U -10317 OLD ITALIC LETTER EKS -10318 OLD ITALIC LETTER PHE -10319 OLD ITALIC LETTER KHE -1031A OLD ITALIC LETTER EF -1031B OLD ITALIC LETTER ERS -1031C OLD ITALIC LETTER CHE -1031D OLD ITALIC LETTER II -1031E OLD ITALIC LETTER UU -10320 OLD ITALIC NUMERAL ONE -10321 OLD ITALIC NUMERAL FIVE -10322 OLD ITALIC NUMERAL TEN -10323 OLD ITALIC NUMERAL FIFTY -10330 GOTHIC LETTER AHSA -10331 GOTHIC LETTER BAIRKAN -10332 GOTHIC LETTER GIBA -10333 GOTHIC LETTER DAGS -10334 GOTHIC LETTER AIHVUS -10335 GOTHIC LETTER QAIRTHRA -10336 GOTHIC LETTER IUJA -10337 GOTHIC LETTER HAGL -10338 GOTHIC LETTER THIUTH -10339 GOTHIC LETTER EIS -1033A GOTHIC LETTER KUSMA -1033B GOTHIC LETTER LAGUS -1033C GOTHIC LETTER MANNA -1033D GOTHIC LETTER NAUTHS -1033E GOTHIC LETTER JER -1033F GOTHIC LETTER URUS -10340 GOTHIC LETTER PAIRTHRA -10341 GOTHIC LETTER NINETY -10342 GOTHIC LETTER RAIDA -10343 GOTHIC LETTER SAUIL -10344 GOTHIC LETTER TEIWS -10345 GOTHIC LETTER WINJA -10346 GOTHIC LETTER FAIHU -10347 GOTHIC LETTER IGGWS -10348 GOTHIC LETTER HWAIR -10349 GOTHIC LETTER OTHAL -1034A GOTHIC LETTER NINE HUNDRED -10400 DESERET CAPITAL LETTER LONG I -10401 DESERET CAPITAL LETTER LONG E -10402 DESERET CAPITAL LETTER LONG A -10403 DESERET CAPITAL LETTER LONG AH -10404 DESERET CAPITAL LETTER LONG O -10405 DESERET CAPITAL LETTER LONG OO -10406 DESERET CAPITAL LETTER SHORT I -10407 DESERET CAPITAL LETTER SHORT E -10408 DESERET CAPITAL LETTER SHORT A -10409 DESERET CAPITAL LETTER SHORT AH -1040A DESERET CAPITAL LETTER SHORT O -1040B DESERET CAPITAL LETTER SHORT OO -1040C DESERET CAPITAL LETTER AY -1040D DESERET CAPITAL LETTER OW -1040E DESERET CAPITAL LETTER WU -1040F DESERET CAPITAL LETTER YEE -10410 DESERET CAPITAL LETTER H -10411 DESERET CAPITAL LETTER PEE -10412 DESERET CAPITAL LETTER BEE -10413 DESERET CAPITAL LETTER TEE -10414 DESERET CAPITAL LETTER DEE -10415 DESERET CAPITAL LETTER CHEE -10416 DESERET CAPITAL LETTER JEE -10417 DESERET CAPITAL LETTER KAY -10418 DESERET CAPITAL LETTER GAY -10419 DESERET CAPITAL LETTER EF -1041A DESERET CAPITAL LETTER VEE -1041B DESERET CAPITAL LETTER ETH -1041C DESERET CAPITAL LETTER THEE -1041D DESERET CAPITAL LETTER ES -1041E DESERET CAPITAL LETTER ZEE -1041F DESERET CAPITAL LETTER ESH -10420 DESERET CAPITAL LETTER ZHEE -10421 DESERET CAPITAL LETTER ER -10422 DESERET CAPITAL LETTER EL -10423 DESERET CAPITAL LETTER EM -10424 DESERET CAPITAL LETTER EN -10425 DESERET CAPITAL LETTER ENG -10428 DESERET SMALL LETTER LONG I -10429 DESERET SMALL LETTER LONG E -1042A DESERET SMALL LETTER LONG A -1042B DESERET SMALL LETTER LONG AH -1042C DESERET SMALL LETTER LONG O -1042D DESERET SMALL LETTER LONG OO -1042E DESERET SMALL LETTER SHORT I -1042F DESERET SMALL LETTER SHORT E -10430 DESERET SMALL LETTER SHORT A -10431 DESERET SMALL LETTER SHORT AH -10432 DESERET SMALL LETTER SHORT O -10433 DESERET SMALL LETTER SHORT OO -10434 DESERET SMALL LETTER AY -10435 DESERET SMALL LETTER OW -10436 DESERET SMALL LETTER WU -10437 DESERET SMALL LETTER YEE -10438 DESERET SMALL LETTER H -10439 DESERET SMALL LETTER PEE -1043A DESERET SMALL LETTER BEE -1043B DESERET SMALL LETTER TEE -1043C DESERET SMALL LETTER DEE -1043D DESERET SMALL LETTER CHEE -1043E DESERET SMALL LETTER JEE -1043F DESERET SMALL LETTER KAY -10440 DESERET SMALL LETTER GAY -10441 DESERET SMALL LETTER EF -10442 DESERET SMALL LETTER VEE -10443 DESERET SMALL LETTER ETH -10444 DESERET SMALL LETTER THEE -10445 DESERET SMALL LETTER ES -10446 DESERET SMALL LETTER ZEE -10447 DESERET SMALL LETTER ESH -10448 DESERET SMALL LETTER ZHEE -10449 DESERET SMALL LETTER ER -1044A DESERET SMALL LETTER EL -1044B DESERET SMALL LETTER EM -1044C DESERET SMALL LETTER EN -1044D DESERET SMALL LETTER ENG -1D000 BYZANTINE MUSICAL SYMBOL PSILI -1D001 BYZANTINE MUSICAL SYMBOL DASEIA -1D002 BYZANTINE MUSICAL SYMBOL PERISPOMENI -1D003 BYZANTINE MUSICAL SYMBOL OXEIA EKFONITIKON -1D004 BYZANTINE MUSICAL SYMBOL OXEIA DIPLI -1D005 BYZANTINE MUSICAL SYMBOL VAREIA EKFONITIKON -1D006 BYZANTINE MUSICAL SYMBOL VAREIA DIPLI -1D007 BYZANTINE MUSICAL SYMBOL KATHISTI -1D008 BYZANTINE MUSICAL SYMBOL SYRMATIKI -1D009 BYZANTINE MUSICAL SYMBOL PARAKLITIKI -1D00A BYZANTINE MUSICAL SYMBOL YPOKRISIS -1D00B BYZANTINE MUSICAL SYMBOL YPOKRISIS DIPLI -1D00C BYZANTINE MUSICAL SYMBOL KREMASTI -1D00D BYZANTINE MUSICAL SYMBOL APESO EKFONITIKON -1D00E BYZANTINE MUSICAL SYMBOL EXO EKFONITIKON -1D00F BYZANTINE MUSICAL SYMBOL TELEIA -1D010 BYZANTINE MUSICAL SYMBOL KENTIMATA -1D011 BYZANTINE MUSICAL SYMBOL APOSTROFOS -1D012 BYZANTINE MUSICAL SYMBOL APOSTROFOS DIPLI -1D013 BYZANTINE MUSICAL SYMBOL SYNEVMA -1D014 BYZANTINE MUSICAL SYMBOL THITA -1D015 BYZANTINE MUSICAL SYMBOL OLIGON ARCHAION -1D016 BYZANTINE MUSICAL SYMBOL GORGON ARCHAION -1D017 BYZANTINE MUSICAL SYMBOL PSILON -1D018 BYZANTINE MUSICAL SYMBOL CHAMILON -1D019 BYZANTINE MUSICAL SYMBOL VATHY -1D01A BYZANTINE MUSICAL SYMBOL ISON ARCHAION -1D01B BYZANTINE MUSICAL SYMBOL KENTIMA ARCHAION -1D01C BYZANTINE MUSICAL SYMBOL KENTIMATA ARCHAION -1D01D BYZANTINE MUSICAL SYMBOL SAXIMATA -1D01E BYZANTINE MUSICAL SYMBOL PARICHON -1D01F BYZANTINE MUSICAL SYMBOL STAVROS APODEXIA -1D020 BYZANTINE MUSICAL SYMBOL OXEIAI ARCHAION -1D021 BYZANTINE MUSICAL SYMBOL VAREIAI ARCHAION -1D022 BYZANTINE MUSICAL SYMBOL APODERMA ARCHAION -1D023 BYZANTINE MUSICAL SYMBOL APOTHEMA -1D024 BYZANTINE MUSICAL SYMBOL KLASMA -1D025 BYZANTINE MUSICAL SYMBOL REVMA -1D026 BYZANTINE MUSICAL SYMBOL PIASMA ARCHAION -1D027 BYZANTINE MUSICAL SYMBOL TINAGMA -1D028 BYZANTINE MUSICAL SYMBOL ANATRICHISMA -1D029 BYZANTINE MUSICAL SYMBOL SEISMA -1D02A BYZANTINE MUSICAL SYMBOL SYNAGMA ARCHAION -1D02B BYZANTINE MUSICAL SYMBOL SYNAGMA META STAVROU -1D02C BYZANTINE MUSICAL SYMBOL OYRANISMA ARCHAION -1D02D BYZANTINE MUSICAL SYMBOL THEMA -1D02E BYZANTINE MUSICAL SYMBOL LEMOI -1D02F BYZANTINE MUSICAL SYMBOL DYO -1D030 BYZANTINE MUSICAL SYMBOL TRIA -1D031 BYZANTINE MUSICAL SYMBOL TESSERA -1D032 BYZANTINE MUSICAL SYMBOL KRATIMATA -1D033 BYZANTINE MUSICAL SYMBOL APESO EXO NEO -1D034 BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION -1D035 BYZANTINE MUSICAL SYMBOL IMIFTHORA -1D036 BYZANTINE MUSICAL SYMBOL TROMIKON ARCHAION -1D037 BYZANTINE MUSICAL SYMBOL KATAVA TROMIKON -1D038 BYZANTINE MUSICAL SYMBOL PELASTON -1D039 BYZANTINE MUSICAL SYMBOL PSIFISTON -1D03A BYZANTINE MUSICAL SYMBOL KONTEVMA -1D03B BYZANTINE MUSICAL SYMBOL CHOREVMA ARCHAION -1D03C BYZANTINE MUSICAL SYMBOL RAPISMA -1D03D BYZANTINE MUSICAL SYMBOL PARAKALESMA ARCHAION -1D03E BYZANTINE MUSICAL SYMBOL PARAKLITIKI ARCHAION -1D03F BYZANTINE MUSICAL SYMBOL ICHADIN -1D040 BYZANTINE MUSICAL SYMBOL NANA -1D041 BYZANTINE MUSICAL SYMBOL PETASMA -1D042 BYZANTINE MUSICAL SYMBOL KONTEVMA ALLO -1D043 BYZANTINE MUSICAL SYMBOL TROMIKON ALLO -1D044 BYZANTINE MUSICAL SYMBOL STRAGGISMATA -1D045 BYZANTINE MUSICAL SYMBOL GRONTHISMATA -1D046 BYZANTINE MUSICAL SYMBOL ISON NEO -1D047 BYZANTINE MUSICAL SYMBOL OLIGON NEO -1D048 BYZANTINE MUSICAL SYMBOL OXEIA NEO -1D049 BYZANTINE MUSICAL SYMBOL PETASTI -1D04A BYZANTINE MUSICAL SYMBOL KOUFISMA -1D04B BYZANTINE MUSICAL SYMBOL PETASTOKOUFISMA -1D04C BYZANTINE MUSICAL SYMBOL KRATIMOKOUFISMA -1D04D BYZANTINE MUSICAL SYMBOL PELASTON NEO -1D04E BYZANTINE MUSICAL SYMBOL KENTIMATA NEO ANO -1D04F BYZANTINE MUSICAL SYMBOL KENTIMA NEO ANO -1D050 BYZANTINE MUSICAL SYMBOL YPSILI -1D051 BYZANTINE MUSICAL SYMBOL APOSTROFOS NEO -1D052 BYZANTINE MUSICAL SYMBOL APOSTROFOI SYNDESMOS NEO -1D053 BYZANTINE MUSICAL SYMBOL YPORROI -1D054 BYZANTINE MUSICAL SYMBOL KRATIMOYPORROON -1D055 BYZANTINE MUSICAL SYMBOL ELAFRON -1D056 BYZANTINE MUSICAL SYMBOL CHAMILI -1D057 BYZANTINE MUSICAL SYMBOL MIKRON ISON -1D058 BYZANTINE MUSICAL SYMBOL VAREIA NEO -1D059 BYZANTINE MUSICAL SYMBOL PIASMA NEO -1D05A BYZANTINE MUSICAL SYMBOL PSIFISTON NEO -1D05B BYZANTINE MUSICAL SYMBOL OMALON -1D05C BYZANTINE MUSICAL SYMBOL ANTIKENOMA -1D05D BYZANTINE MUSICAL SYMBOL LYGISMA -1D05E BYZANTINE MUSICAL SYMBOL PARAKLITIKI NEO -1D05F BYZANTINE MUSICAL SYMBOL PARAKALESMA NEO -1D060 BYZANTINE MUSICAL SYMBOL ETERON PARAKALESMA -1D061 BYZANTINE MUSICAL SYMBOL KYLISMA -1D062 BYZANTINE MUSICAL SYMBOL ANTIKENOKYLISMA -1D063 BYZANTINE MUSICAL SYMBOL TROMIKON NEO -1D064 BYZANTINE MUSICAL SYMBOL EKSTREPTON -1D065 BYZANTINE MUSICAL SYMBOL SYNAGMA NEO -1D066 BYZANTINE MUSICAL SYMBOL SYRMA -1D067 BYZANTINE MUSICAL SYMBOL CHOREVMA NEO -1D068 BYZANTINE MUSICAL SYMBOL EPEGERMA -1D069 BYZANTINE MUSICAL SYMBOL SEISMA NEO -1D06A BYZANTINE MUSICAL SYMBOL XIRON KLASMA -1D06B BYZANTINE MUSICAL SYMBOL TROMIKOPSIFISTON -1D06C BYZANTINE MUSICAL SYMBOL PSIFISTOLYGISMA -1D06D BYZANTINE MUSICAL SYMBOL TROMIKOLYGISMA -1D06E BYZANTINE MUSICAL SYMBOL TROMIKOPARAKALESMA -1D06F BYZANTINE MUSICAL SYMBOL PSIFISTOPARAKALESMA -1D070 BYZANTINE MUSICAL SYMBOL TROMIKOSYNAGMA -1D071 BYZANTINE MUSICAL SYMBOL PSIFISTOSYNAGMA -1D072 BYZANTINE MUSICAL SYMBOL GORGOSYNTHETON -1D073 BYZANTINE MUSICAL SYMBOL ARGOSYNTHETON -1D074 BYZANTINE MUSICAL SYMBOL ETERON ARGOSYNTHETON -1D075 BYZANTINE MUSICAL SYMBOL OYRANISMA NEO -1D076 BYZANTINE MUSICAL SYMBOL THEMATISMOS ESO -1D077 BYZANTINE MUSICAL SYMBOL THEMATISMOS EXO -1D078 BYZANTINE MUSICAL SYMBOL THEMA APLOUN -1D079 BYZANTINE MUSICAL SYMBOL THES KAI APOTHES -1D07A BYZANTINE MUSICAL SYMBOL KATAVASMA -1D07B BYZANTINE MUSICAL SYMBOL ENDOFONON -1D07C BYZANTINE MUSICAL SYMBOL YFEN KATO -1D07D BYZANTINE MUSICAL SYMBOL YFEN ANO -1D07E BYZANTINE MUSICAL SYMBOL STAVROS -1D07F BYZANTINE MUSICAL SYMBOL KLASMA ANO -1D080 BYZANTINE MUSICAL SYMBOL DIPLI ARCHAION -1D081 BYZANTINE MUSICAL SYMBOL KRATIMA ARCHAION -1D082 BYZANTINE MUSICAL SYMBOL KRATIMA ALLO -1D083 BYZANTINE MUSICAL SYMBOL KRATIMA NEO -1D084 BYZANTINE MUSICAL SYMBOL APODERMA NEO -1D085 BYZANTINE MUSICAL SYMBOL APLI -1D086 BYZANTINE MUSICAL SYMBOL DIPLI -1D087 BYZANTINE MUSICAL SYMBOL TRIPLI -1D088 BYZANTINE MUSICAL SYMBOL TETRAPLI -1D089 BYZANTINE MUSICAL SYMBOL KORONIS -1D08A BYZANTINE MUSICAL SYMBOL LEIMMA ENOS CHRONOU -1D08B BYZANTINE MUSICAL SYMBOL LEIMMA DYO CHRONON -1D08C BYZANTINE MUSICAL SYMBOL LEIMMA TRION CHRONON -1D08D BYZANTINE MUSICAL SYMBOL LEIMMA TESSARON CHRONON -1D08E BYZANTINE MUSICAL SYMBOL LEIMMA IMISEOS CHRONOU -1D08F BYZANTINE MUSICAL SYMBOL GORGON NEO ANO -1D090 BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON ARISTERA -1D091 BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON DEXIA -1D092 BYZANTINE MUSICAL SYMBOL DIGORGON -1D093 BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA KATO -1D094 BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA ANO -1D095 BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON DEXIA -1D096 BYZANTINE MUSICAL SYMBOL TRIGORGON -1D097 BYZANTINE MUSICAL SYMBOL ARGON -1D098 BYZANTINE MUSICAL SYMBOL IMIDIARGON -1D099 BYZANTINE MUSICAL SYMBOL DIARGON -1D09A BYZANTINE MUSICAL SYMBOL AGOGI POLI ARGI -1D09B BYZANTINE MUSICAL SYMBOL AGOGI ARGOTERI -1D09C BYZANTINE MUSICAL SYMBOL AGOGI ARGI -1D09D BYZANTINE MUSICAL SYMBOL AGOGI METRIA -1D09E BYZANTINE MUSICAL SYMBOL AGOGI MESI -1D09F BYZANTINE MUSICAL SYMBOL AGOGI GORGI -1D0A0 BYZANTINE MUSICAL SYMBOL AGOGI GORGOTERI -1D0A1 BYZANTINE MUSICAL SYMBOL AGOGI POLI GORGI -1D0A2 BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOS ICHOS -1D0A3 BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI PROTOS ICHOS -1D0A4 BYZANTINE MUSICAL SYMBOL MARTYRIA DEYTEROS ICHOS -1D0A5 BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI DEYTEROS ICHOS -1D0A6 BYZANTINE MUSICAL SYMBOL MARTYRIA TRITOS ICHOS -1D0A7 BYZANTINE MUSICAL SYMBOL MARTYRIA TRIFONIAS -1D0A8 BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS ICHOS -1D0A9 BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS LEGETOS ICHOS -1D0AA BYZANTINE MUSICAL SYMBOL MARTYRIA LEGETOS ICHOS -1D0AB BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS ICHOS -1D0AC BYZANTINE MUSICAL SYMBOL ISAKIA TELOUS ICHIMATOS -1D0AD BYZANTINE MUSICAL SYMBOL APOSTROFOI TELOUS ICHIMATOS -1D0AE BYZANTINE MUSICAL SYMBOL FANEROSIS TETRAFONIAS -1D0AF BYZANTINE MUSICAL SYMBOL FANEROSIS MONOFONIAS -1D0B0 BYZANTINE MUSICAL SYMBOL FANEROSIS DIFONIAS -1D0B1 BYZANTINE MUSICAL SYMBOL MARTYRIA VARYS ICHOS -1D0B2 BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOVARYS ICHOS -1D0B3 BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS TETARTOS ICHOS -1D0B4 BYZANTINE MUSICAL SYMBOL GORTHMIKON N APLOUN -1D0B5 BYZANTINE MUSICAL SYMBOL GORTHMIKON N DIPLOUN -1D0B6 BYZANTINE MUSICAL SYMBOL ENARXIS KAI FTHORA VOU -1D0B7 BYZANTINE MUSICAL SYMBOL IMIFONON -1D0B8 BYZANTINE MUSICAL SYMBOL IMIFTHORON -1D0B9 BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION DEYTEROU ICHOU -1D0BA BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI PA -1D0BB BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NANA -1D0BC BYZANTINE MUSICAL SYMBOL FTHORA NAOS ICHOS -1D0BD BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI DI -1D0BE BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON DIATONON DI -1D0BF BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI KE -1D0C0 BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI ZO -1D0C1 BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI KATO -1D0C2 BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI ANO -1D0C3 BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA DIFONIAS -1D0C4 BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA MONOFONIAS -1D0C5 BYZANTINE MUSICAL SYMBOL FHTORA SKLIRON CHROMA VASIS -1D0C6 BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON CHROMA SYNAFI -1D0C7 BYZANTINE MUSICAL SYMBOL FTHORA NENANO -1D0C8 BYZANTINE MUSICAL SYMBOL CHROA ZYGOS -1D0C9 BYZANTINE MUSICAL SYMBOL CHROA KLITON -1D0CA BYZANTINE MUSICAL SYMBOL CHROA SPATHI -1D0CB BYZANTINE MUSICAL SYMBOL FTHORA I YFESIS TETARTIMORION -1D0CC BYZANTINE MUSICAL SYMBOL FTHORA ENARMONIOS ANTIFONIA -1D0CD BYZANTINE MUSICAL SYMBOL YFESIS TRITIMORION -1D0CE BYZANTINE MUSICAL SYMBOL DIESIS TRITIMORION -1D0CF BYZANTINE MUSICAL SYMBOL DIESIS TETARTIMORION -1D0D0 BYZANTINE MUSICAL SYMBOL DIESIS APLI DYO DODEKATA -1D0D1 BYZANTINE MUSICAL SYMBOL DIESIS MONOGRAMMOS TESSERA DODEKATA -1D0D2 BYZANTINE MUSICAL SYMBOL DIESIS DIGRAMMOS EX DODEKATA -1D0D3 BYZANTINE MUSICAL SYMBOL DIESIS TRIGRAMMOS OKTO DODEKATA -1D0D4 BYZANTINE MUSICAL SYMBOL YFESIS APLI DYO DODEKATA -1D0D5 BYZANTINE MUSICAL SYMBOL YFESIS MONOGRAMMOS TESSERA DODEKATA -1D0D6 BYZANTINE MUSICAL SYMBOL YFESIS DIGRAMMOS EX DODEKATA -1D0D7 BYZANTINE MUSICAL SYMBOL YFESIS TRIGRAMMOS OKTO DODEKATA -1D0D8 BYZANTINE MUSICAL SYMBOL GENIKI DIESIS -1D0D9 BYZANTINE MUSICAL SYMBOL GENIKI YFESIS -1D0DA BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MIKRI -1D0DB BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MEGALI -1D0DC BYZANTINE MUSICAL SYMBOL DIASTOLI DIPLI -1D0DD BYZANTINE MUSICAL SYMBOL DIASTOLI THESEOS -1D0DE BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS -1D0DF BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS DISIMOU -1D0E0 BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TRISIMOU -1D0E1 BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TETRASIMOU -1D0E2 BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS -1D0E3 BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS DISIMOU -1D0E4 BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TRISIMOU -1D0E5 BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TETRASIMOU -1D0E6 BYZANTINE MUSICAL SYMBOL DIGRAMMA GG -1D0E7 BYZANTINE MUSICAL SYMBOL DIFTOGGOS OU -1D0E8 BYZANTINE MUSICAL SYMBOL STIGMA -1D0E9 BYZANTINE MUSICAL SYMBOL ARKTIKO PA -1D0EA BYZANTINE MUSICAL SYMBOL ARKTIKO VOU -1D0EB BYZANTINE MUSICAL SYMBOL ARKTIKO GA -1D0EC BYZANTINE MUSICAL SYMBOL ARKTIKO DI -1D0ED BYZANTINE MUSICAL SYMBOL ARKTIKO KE -1D0EE BYZANTINE MUSICAL SYMBOL ARKTIKO ZO -1D0EF BYZANTINE MUSICAL SYMBOL ARKTIKO NI -1D0F0 BYZANTINE MUSICAL SYMBOL KENTIMATA NEO MESO -1D0F1 BYZANTINE MUSICAL SYMBOL KENTIMA NEO MESO -1D0F2 BYZANTINE MUSICAL SYMBOL KENTIMATA NEO KATO -1D0F3 BYZANTINE MUSICAL SYMBOL KENTIMA NEO KATO -1D0F4 BYZANTINE MUSICAL SYMBOL KLASMA KATO -1D0F5 BYZANTINE MUSICAL SYMBOL GORGON NEO KATO -1D100 MUSICAL SYMBOL SINGLE BARLINE -1D101 MUSICAL SYMBOL DOUBLE BARLINE -1D102 MUSICAL SYMBOL FINAL BARLINE -1D103 MUSICAL SYMBOL REVERSE FINAL BARLINE -1D104 MUSICAL SYMBOL DASHED BARLINE -1D105 MUSICAL SYMBOL SHORT BARLINE -1D106 MUSICAL SYMBOL LEFT REPEAT SIGN -1D107 MUSICAL SYMBOL RIGHT REPEAT SIGN -1D108 MUSICAL SYMBOL REPEAT DOTS -1D109 MUSICAL SYMBOL DAL SEGNO -1D10A MUSICAL SYMBOL DA CAPO -1D10B MUSICAL SYMBOL SEGNO -1D10C MUSICAL SYMBOL CODA -1D10D MUSICAL SYMBOL REPEATED FIGURE-1 -1D10E MUSICAL SYMBOL REPEATED FIGURE-2 -1D10F MUSICAL SYMBOL REPEATED FIGURE-3 -1D110 MUSICAL SYMBOL FERMATA -1D111 MUSICAL SYMBOL FERMATA BELOW -1D112 MUSICAL SYMBOL BREATH MARK -1D113 MUSICAL SYMBOL CAESURA -1D114 MUSICAL SYMBOL BRACE -1D115 MUSICAL SYMBOL BRACKET -1D116 MUSICAL SYMBOL ONE-LINE STAFF -1D117 MUSICAL SYMBOL TWO-LINE STAFF -1D118 MUSICAL SYMBOL THREE-LINE STAFF -1D119 MUSICAL SYMBOL FOUR-LINE STAFF -1D11A MUSICAL SYMBOL FIVE-LINE STAFF -1D11B MUSICAL SYMBOL SIX-LINE STAFF -1D11C MUSICAL SYMBOL SIX-STRING FRETBOARD -1D11D MUSICAL SYMBOL FOUR-STRING FRETBOARD -1D11E MUSICAL SYMBOL G CLEF -1D11F MUSICAL SYMBOL G CLEF OTTAVA ALTA -1D120 MUSICAL SYMBOL G CLEF OTTAVA BASSA -1D121 MUSICAL SYMBOL C CLEF -1D122 MUSICAL SYMBOL F CLEF -1D123 MUSICAL SYMBOL F CLEF OTTAVA ALTA -1D124 MUSICAL SYMBOL F CLEF OTTAVA BASSA -1D125 MUSICAL SYMBOL DRUM CLEF-1 -1D126 MUSICAL SYMBOL DRUM CLEF-2 -1D12A MUSICAL SYMBOL DOUBLE SHARP -1D12B MUSICAL SYMBOL DOUBLE FLAT -1D12C MUSICAL SYMBOL FLAT UP -1D12D MUSICAL SYMBOL FLAT DOWN -1D12E MUSICAL SYMBOL NATURAL UP -1D12F MUSICAL SYMBOL NATURAL DOWN -1D130 MUSICAL SYMBOL SHARP UP -1D131 MUSICAL SYMBOL SHARP DOWN -1D132 MUSICAL SYMBOL QUARTER TONE SHARP -1D133 MUSICAL SYMBOL QUARTER TONE FLAT -1D134 MUSICAL SYMBOL COMMON TIME -1D135 MUSICAL SYMBOL CUT TIME -1D136 MUSICAL SYMBOL OTTAVA ALTA -1D137 MUSICAL SYMBOL OTTAVA BASSA -1D138 MUSICAL SYMBOL QUINDICESIMA ALTA -1D139 MUSICAL SYMBOL QUINDICESIMA BASSA -1D13A MUSICAL SYMBOL MULTI REST -1D13B MUSICAL SYMBOL WHOLE REST -1D13C MUSICAL SYMBOL HALF REST -1D13D MUSICAL SYMBOL QUARTER REST -1D13E MUSICAL SYMBOL EIGHTH REST -1D13F MUSICAL SYMBOL SIXTEENTH REST -1D140 MUSICAL SYMBOL THIRTY-SECOND REST -1D141 MUSICAL SYMBOL SIXTY-FOURTH REST -1D142 MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH REST -1D143 MUSICAL SYMBOL X NOTEHEAD -1D144 MUSICAL SYMBOL PLUS NOTEHEAD -1D145 MUSICAL SYMBOL CIRCLE X NOTEHEAD -1D146 MUSICAL SYMBOL SQUARE NOTEHEAD WHITE -1D147 MUSICAL SYMBOL SQUARE NOTEHEAD BLACK -1D148 MUSICAL SYMBOL TRIANGLE NOTEHEAD UP WHITE -1D149 MUSICAL SYMBOL TRIANGLE NOTEHEAD UP BLACK -1D14A MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT WHITE -1D14B MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT BLACK -1D14C MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT WHITE -1D14D MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT BLACK -1D14E MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN WHITE -1D14F MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN BLACK -1D150 MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT WHITE -1D151 MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT BLACK -1D152 MUSICAL SYMBOL MOON NOTEHEAD WHITE -1D153 MUSICAL SYMBOL MOON NOTEHEAD BLACK -1D154 MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN WHITE -1D155 MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN BLACK -1D156 MUSICAL SYMBOL PARENTHESIS NOTEHEAD -1D157 MUSICAL SYMBOL VOID NOTEHEAD -1D158 MUSICAL SYMBOL NOTEHEAD BLACK -1D159 MUSICAL SYMBOL NULL NOTEHEAD -1D15A MUSICAL SYMBOL CLUSTER NOTEHEAD WHITE -1D15B MUSICAL SYMBOL CLUSTER NOTEHEAD BLACK -1D15C MUSICAL SYMBOL BREVE -1D15D MUSICAL SYMBOL WHOLE NOTE -1D15E MUSICAL SYMBOL HALF NOTE -1D15F MUSICAL SYMBOL QUARTER NOTE -1D160 MUSICAL SYMBOL EIGHTH NOTE -1D161 MUSICAL SYMBOL SIXTEENTH NOTE -1D162 MUSICAL SYMBOL THIRTY-SECOND NOTE -1D163 MUSICAL SYMBOL SIXTY-FOURTH NOTE -1D164 MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE -1D165 MUSICAL SYMBOL COMBINING STEM -1D166 MUSICAL SYMBOL COMBINING SPRECHGESANG STEM -1D167 MUSICAL SYMBOL COMBINING TREMOLO-1 -1D168 MUSICAL SYMBOL COMBINING TREMOLO-2 -1D169 MUSICAL SYMBOL COMBINING TREMOLO-3 -1D16A MUSICAL SYMBOL FINGERED TREMOLO-1 -1D16B MUSICAL SYMBOL FINGERED TREMOLO-2 -1D16C MUSICAL SYMBOL FINGERED TREMOLO-3 -1D16D MUSICAL SYMBOL COMBINING AUGMENTATION DOT -1D16E MUSICAL SYMBOL COMBINING FLAG-1 -1D16F MUSICAL SYMBOL COMBINING FLAG-2 -1D170 MUSICAL SYMBOL COMBINING FLAG-3 -1D171 MUSICAL SYMBOL COMBINING FLAG-4 -1D172 MUSICAL SYMBOL COMBINING FLAG-5 -1D173 MUSICAL SYMBOL BEGIN BEAM -1D174 MUSICAL SYMBOL END BEAM -1D175 MUSICAL SYMBOL BEGIN TIE -1D176 MUSICAL SYMBOL END TIE -1D177 MUSICAL SYMBOL BEGIN SLUR -1D178 MUSICAL SYMBOL END SLUR -1D179 MUSICAL SYMBOL BEGIN PHRASE -1D17A MUSICAL SYMBOL END PHRASE -1D17B MUSICAL SYMBOL COMBINING ACCENT -1D17C MUSICAL SYMBOL COMBINING STACCATO -1D17D MUSICAL SYMBOL COMBINING TENUTO -1D17E MUSICAL SYMBOL COMBINING STACCATISSIMO -1D17F MUSICAL SYMBOL COMBINING MARCATO -1D180 MUSICAL SYMBOL COMBINING MARCATO-STACCATO -1D181 MUSICAL SYMBOL COMBINING ACCENT-STACCATO -1D182 MUSICAL SYMBOL COMBINING LOURE -1D183 MUSICAL SYMBOL ARPEGGIATO UP -1D184 MUSICAL SYMBOL ARPEGGIATO DOWN -1D185 MUSICAL SYMBOL COMBINING DOIT -1D186 MUSICAL SYMBOL COMBINING RIP -1D187 MUSICAL SYMBOL COMBINING FLIP -1D188 MUSICAL SYMBOL COMBINING SMEAR -1D189 MUSICAL SYMBOL COMBINING BEND -1D18A MUSICAL SYMBOL COMBINING DOUBLE TONGUE -1D18B MUSICAL SYMBOL COMBINING TRIPLE TONGUE -1D18C MUSICAL SYMBOL RINFORZANDO -1D18D MUSICAL SYMBOL SUBITO -1D18E MUSICAL SYMBOL Z -1D18F MUSICAL SYMBOL PIANO -1D190 MUSICAL SYMBOL MEZZO -1D191 MUSICAL SYMBOL FORTE -1D192 MUSICAL SYMBOL CRESCENDO -1D193 MUSICAL SYMBOL DECRESCENDO -1D194 MUSICAL SYMBOL GRACE NOTE SLASH -1D195 MUSICAL SYMBOL GRACE NOTE NO SLASH -1D196 MUSICAL SYMBOL TR -1D197 MUSICAL SYMBOL TURN -1D198 MUSICAL SYMBOL INVERTED TURN -1D199 MUSICAL SYMBOL TURN SLASH -1D19A MUSICAL SYMBOL TURN UP -1D19B MUSICAL SYMBOL ORNAMENT STROKE-1 -1D19C MUSICAL SYMBOL ORNAMENT STROKE-2 -1D19D MUSICAL SYMBOL ORNAMENT STROKE-3 -1D19E MUSICAL SYMBOL ORNAMENT STROKE-4 -1D19F MUSICAL SYMBOL ORNAMENT STROKE-5 -1D1A0 MUSICAL SYMBOL ORNAMENT STROKE-6 -1D1A1 MUSICAL SYMBOL ORNAMENT STROKE-7 -1D1A2 MUSICAL SYMBOL ORNAMENT STROKE-8 -1D1A3 MUSICAL SYMBOL ORNAMENT STROKE-9 -1D1A4 MUSICAL SYMBOL ORNAMENT STROKE-10 -1D1A5 MUSICAL SYMBOL ORNAMENT STROKE-11 -1D1A6 MUSICAL SYMBOL HAUPTSTIMME -1D1A7 MUSICAL SYMBOL NEBENSTIMME -1D1A8 MUSICAL SYMBOL END OF STIMME -1D1A9 MUSICAL SYMBOL DEGREE SLASH -1D1AA MUSICAL SYMBOL COMBINING DOWN BOW -1D1AB MUSICAL SYMBOL COMBINING UP BOW -1D1AC MUSICAL SYMBOL COMBINING HARMONIC -1D1AD MUSICAL SYMBOL COMBINING SNAP PIZZICATO -1D1AE MUSICAL SYMBOL PEDAL MARK -1D1AF MUSICAL SYMBOL PEDAL UP MARK -1D1B0 MUSICAL SYMBOL HALF PEDAL MARK -1D1B1 MUSICAL SYMBOL GLISSANDO UP -1D1B2 MUSICAL SYMBOL GLISSANDO DOWN -1D1B3 MUSICAL SYMBOL WITH FINGERNAILS -1D1B4 MUSICAL SYMBOL DAMP -1D1B5 MUSICAL SYMBOL DAMP ALL -1D1B6 MUSICAL SYMBOL MAXIMA -1D1B7 MUSICAL SYMBOL LONGA -1D1B8 MUSICAL SYMBOL BREVIS -1D1B9 MUSICAL SYMBOL SEMIBREVIS WHITE -1D1BA MUSICAL SYMBOL SEMIBREVIS BLACK -1D1BB MUSICAL SYMBOL MINIMA -1D1BC MUSICAL SYMBOL MINIMA BLACK -1D1BD MUSICAL SYMBOL SEMIMINIMA WHITE -1D1BE MUSICAL SYMBOL SEMIMINIMA BLACK -1D1BF MUSICAL SYMBOL FUSA WHITE -1D1C0 MUSICAL SYMBOL FUSA BLACK -1D1C1 MUSICAL SYMBOL LONGA PERFECTA REST -1D1C2 MUSICAL SYMBOL LONGA IMPERFECTA REST -1D1C3 MUSICAL SYMBOL BREVIS REST -1D1C4 MUSICAL SYMBOL SEMIBREVIS REST -1D1C5 MUSICAL SYMBOL MINIMA REST -1D1C6 MUSICAL SYMBOL SEMIMINIMA REST -1D1C7 MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA -1D1C8 MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE IMPERFECTA -1D1C9 MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA DIMINUTION-1 -1D1CA MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE PERFECTA -1D1CB MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA -1D1CC MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-1 -1D1CD MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-2 -1D1CE MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-3 -1D1CF MUSICAL SYMBOL CROIX -1D1D0 MUSICAL SYMBOL GREGORIAN C CLEF -1D1D1 MUSICAL SYMBOL GREGORIAN F CLEF -1D1D2 MUSICAL SYMBOL SQUARE B -1D1D3 MUSICAL SYMBOL VIRGA -1D1D4 MUSICAL SYMBOL PODATUS -1D1D5 MUSICAL SYMBOL CLIVIS -1D1D6 MUSICAL SYMBOL SCANDICUS -1D1D7 MUSICAL SYMBOL CLIMACUS -1D1D8 MUSICAL SYMBOL TORCULUS -1D1D9 MUSICAL SYMBOL PORRECTUS -1D1DA MUSICAL SYMBOL PORRECTUS FLEXUS -1D1DB MUSICAL SYMBOL SCANDICUS FLEXUS -1D1DC MUSICAL SYMBOL TORCULUS RESUPINUS -1D1DD MUSICAL SYMBOL PES SUBPUNCTIS -1D400 MATHEMATICAL BOLD CAPITAL A -1D401 MATHEMATICAL BOLD CAPITAL B -1D402 MATHEMATICAL BOLD CAPITAL C -1D403 MATHEMATICAL BOLD CAPITAL D -1D404 MATHEMATICAL BOLD CAPITAL E -1D405 MATHEMATICAL BOLD CAPITAL F -1D406 MATHEMATICAL BOLD CAPITAL G -1D407 MATHEMATICAL BOLD CAPITAL H -1D408 MATHEMATICAL BOLD CAPITAL I -1D409 MATHEMATICAL BOLD CAPITAL J -1D40A MATHEMATICAL BOLD CAPITAL K -1D40B MATHEMATICAL BOLD CAPITAL L -1D40C MATHEMATICAL BOLD CAPITAL M -1D40D MATHEMATICAL BOLD CAPITAL N -1D40E MATHEMATICAL BOLD CAPITAL O -1D40F MATHEMATICAL BOLD CAPITAL P -1D410 MATHEMATICAL BOLD CAPITAL Q -1D411 MATHEMATICAL BOLD CAPITAL R -1D412 MATHEMATICAL BOLD CAPITAL S -1D413 MATHEMATICAL BOLD CAPITAL T -1D414 MATHEMATICAL BOLD CAPITAL U -1D415 MATHEMATICAL BOLD CAPITAL V -1D416 MATHEMATICAL BOLD CAPITAL W -1D417 MATHEMATICAL BOLD CAPITAL X -1D418 MATHEMATICAL BOLD CAPITAL Y -1D419 MATHEMATICAL BOLD CAPITAL Z -1D41A MATHEMATICAL BOLD SMALL A -1D41B MATHEMATICAL BOLD SMALL B -1D41C MATHEMATICAL BOLD SMALL C -1D41D MATHEMATICAL BOLD SMALL D -1D41E MATHEMATICAL BOLD SMALL E -1D41F MATHEMATICAL BOLD SMALL F -1D420 MATHEMATICAL BOLD SMALL G -1D421 MATHEMATICAL BOLD SMALL H -1D422 MATHEMATICAL BOLD SMALL I -1D423 MATHEMATICAL BOLD SMALL J -1D424 MATHEMATICAL BOLD SMALL K -1D425 MATHEMATICAL BOLD SMALL L -1D426 MATHEMATICAL BOLD SMALL M -1D427 MATHEMATICAL BOLD SMALL N -1D428 MATHEMATICAL BOLD SMALL O -1D429 MATHEMATICAL BOLD SMALL P -1D42A MATHEMATICAL BOLD SMALL Q -1D42B MATHEMATICAL BOLD SMALL R -1D42C MATHEMATICAL BOLD SMALL S -1D42D MATHEMATICAL BOLD SMALL T -1D42E MATHEMATICAL BOLD SMALL U -1D42F MATHEMATICAL BOLD SMALL V -1D430 MATHEMATICAL BOLD SMALL W -1D431 MATHEMATICAL BOLD SMALL X -1D432 MATHEMATICAL BOLD SMALL Y -1D433 MATHEMATICAL BOLD SMALL Z -1D434 MATHEMATICAL ITALIC CAPITAL A -1D435 MATHEMATICAL ITALIC CAPITAL B -1D436 MATHEMATICAL ITALIC CAPITAL C -1D437 MATHEMATICAL ITALIC CAPITAL D -1D438 MATHEMATICAL ITALIC CAPITAL E -1D439 MATHEMATICAL ITALIC CAPITAL F -1D43A MATHEMATICAL ITALIC CAPITAL G -1D43B MATHEMATICAL ITALIC CAPITAL H -1D43C MATHEMATICAL ITALIC CAPITAL I -1D43D MATHEMATICAL ITALIC CAPITAL J -1D43E MATHEMATICAL ITALIC CAPITAL K -1D43F MATHEMATICAL ITALIC CAPITAL L -1D440 MATHEMATICAL ITALIC CAPITAL M -1D441 MATHEMATICAL ITALIC CAPITAL N -1D442 MATHEMATICAL ITALIC CAPITAL O -1D443 MATHEMATICAL ITALIC CAPITAL P -1D444 MATHEMATICAL ITALIC CAPITAL Q -1D445 MATHEMATICAL ITALIC CAPITAL R -1D446 MATHEMATICAL ITALIC CAPITAL S -1D447 MATHEMATICAL ITALIC CAPITAL T -1D448 MATHEMATICAL ITALIC CAPITAL U -1D449 MATHEMATICAL ITALIC CAPITAL V -1D44A MATHEMATICAL ITALIC CAPITAL W -1D44B MATHEMATICAL ITALIC CAPITAL X -1D44C MATHEMATICAL ITALIC CAPITAL Y -1D44D MATHEMATICAL ITALIC CAPITAL Z -1D44E MATHEMATICAL ITALIC SMALL A -1D44F MATHEMATICAL ITALIC SMALL B -1D450 MATHEMATICAL ITALIC SMALL C -1D451 MATHEMATICAL ITALIC SMALL D -1D452 MATHEMATICAL ITALIC SMALL E -1D453 MATHEMATICAL ITALIC SMALL F -1D454 MATHEMATICAL ITALIC SMALL G -1D456 MATHEMATICAL ITALIC SMALL I -1D457 MATHEMATICAL ITALIC SMALL J -1D458 MATHEMATICAL ITALIC SMALL K -1D459 MATHEMATICAL ITALIC SMALL L -1D45A MATHEMATICAL ITALIC SMALL M -1D45B MATHEMATICAL ITALIC SMALL N -1D45C MATHEMATICAL ITALIC SMALL O -1D45D MATHEMATICAL ITALIC SMALL P -1D45E MATHEMATICAL ITALIC SMALL Q -1D45F MATHEMATICAL ITALIC SMALL R -1D460 MATHEMATICAL ITALIC SMALL S -1D461 MATHEMATICAL ITALIC SMALL T -1D462 MATHEMATICAL ITALIC SMALL U -1D463 MATHEMATICAL ITALIC SMALL V -1D464 MATHEMATICAL ITALIC SMALL W -1D465 MATHEMATICAL ITALIC SMALL X -1D466 MATHEMATICAL ITALIC SMALL Y -1D467 MATHEMATICAL ITALIC SMALL Z -1D468 MATHEMATICAL BOLD ITALIC CAPITAL A -1D469 MATHEMATICAL BOLD ITALIC CAPITAL B -1D46A MATHEMATICAL BOLD ITALIC CAPITAL C -1D46B MATHEMATICAL BOLD ITALIC CAPITAL D -1D46C MATHEMATICAL BOLD ITALIC CAPITAL E -1D46D MATHEMATICAL BOLD ITALIC CAPITAL F -1D46E MATHEMATICAL BOLD ITALIC CAPITAL G -1D46F MATHEMATICAL BOLD ITALIC CAPITAL H -1D470 MATHEMATICAL BOLD ITALIC CAPITAL I -1D471 MATHEMATICAL BOLD ITALIC CAPITAL J -1D472 MATHEMATICAL BOLD ITALIC CAPITAL K -1D473 MATHEMATICAL BOLD ITALIC CAPITAL L -1D474 MATHEMATICAL BOLD ITALIC CAPITAL M -1D475 MATHEMATICAL BOLD ITALIC CAPITAL N -1D476 MATHEMATICAL BOLD ITALIC CAPITAL O -1D477 MATHEMATICAL BOLD ITALIC CAPITAL P -1D478 MATHEMATICAL BOLD ITALIC CAPITAL Q -1D479 MATHEMATICAL BOLD ITALIC CAPITAL R -1D47A MATHEMATICAL BOLD ITALIC CAPITAL S -1D47B MATHEMATICAL BOLD ITALIC CAPITAL T -1D47C MATHEMATICAL BOLD ITALIC CAPITAL U -1D47D MATHEMATICAL BOLD ITALIC CAPITAL V -1D47E MATHEMATICAL BOLD ITALIC CAPITAL W -1D47F MATHEMATICAL BOLD ITALIC CAPITAL X -1D480 MATHEMATICAL BOLD ITALIC CAPITAL Y -1D481 MATHEMATICAL BOLD ITALIC CAPITAL Z -1D482 MATHEMATICAL BOLD ITALIC SMALL A -1D483 MATHEMATICAL BOLD ITALIC SMALL B -1D484 MATHEMATICAL BOLD ITALIC SMALL C -1D485 MATHEMATICAL BOLD ITALIC SMALL D -1D486 MATHEMATICAL BOLD ITALIC SMALL E -1D487 MATHEMATICAL BOLD ITALIC SMALL F -1D488 MATHEMATICAL BOLD ITALIC SMALL G -1D489 MATHEMATICAL BOLD ITALIC SMALL H -1D48A MATHEMATICAL BOLD ITALIC SMALL I -1D48B MATHEMATICAL BOLD ITALIC SMALL J -1D48C MATHEMATICAL BOLD ITALIC SMALL K -1D48D MATHEMATICAL BOLD ITALIC SMALL L -1D48E MATHEMATICAL BOLD ITALIC SMALL M -1D48F MATHEMATICAL BOLD ITALIC SMALL N -1D490 MATHEMATICAL BOLD ITALIC SMALL O -1D491 MATHEMATICAL BOLD ITALIC SMALL P -1D492 MATHEMATICAL BOLD ITALIC SMALL Q -1D493 MATHEMATICAL BOLD ITALIC SMALL R -1D494 MATHEMATICAL BOLD ITALIC SMALL S -1D495 MATHEMATICAL BOLD ITALIC SMALL T -1D496 MATHEMATICAL BOLD ITALIC SMALL U -1D497 MATHEMATICAL BOLD ITALIC SMALL V -1D498 MATHEMATICAL BOLD ITALIC SMALL W -1D499 MATHEMATICAL BOLD ITALIC SMALL X -1D49A MATHEMATICAL BOLD ITALIC SMALL Y -1D49B MATHEMATICAL BOLD ITALIC SMALL Z -1D49C MATHEMATICAL SCRIPT CAPITAL A -1D49E MATHEMATICAL SCRIPT CAPITAL C -1D49F MATHEMATICAL SCRIPT CAPITAL D -1D4A2 MATHEMATICAL SCRIPT CAPITAL G -1D4A5 MATHEMATICAL SCRIPT CAPITAL J -1D4A6 MATHEMATICAL SCRIPT CAPITAL K -1D4A9 MATHEMATICAL SCRIPT CAPITAL N -1D4AA MATHEMATICAL SCRIPT CAPITAL O -1D4AB MATHEMATICAL SCRIPT CAPITAL P -1D4AC MATHEMATICAL SCRIPT CAPITAL Q -1D4AE MATHEMATICAL SCRIPT CAPITAL S -1D4AF MATHEMATICAL SCRIPT CAPITAL T -1D4B0 MATHEMATICAL SCRIPT CAPITAL U -1D4B1 MATHEMATICAL SCRIPT CAPITAL V -1D4B2 MATHEMATICAL SCRIPT CAPITAL W -1D4B3 MATHEMATICAL SCRIPT CAPITAL X -1D4B4 MATHEMATICAL SCRIPT CAPITAL Y -1D4B5 MATHEMATICAL SCRIPT CAPITAL Z -1D4B6 MATHEMATICAL SCRIPT SMALL A -1D4B7 MATHEMATICAL SCRIPT SMALL B -1D4B8 MATHEMATICAL SCRIPT SMALL C -1D4B9 MATHEMATICAL SCRIPT SMALL D -1D4BB MATHEMATICAL SCRIPT SMALL F -1D4BD MATHEMATICAL SCRIPT SMALL H -1D4BE MATHEMATICAL SCRIPT SMALL I -1D4BF MATHEMATICAL SCRIPT SMALL J -1D4C0 MATHEMATICAL SCRIPT SMALL K -1D4C2 MATHEMATICAL SCRIPT SMALL M -1D4C3 MATHEMATICAL SCRIPT SMALL N -1D4C5 MATHEMATICAL SCRIPT SMALL P -1D4C6 MATHEMATICAL SCRIPT SMALL Q -1D4C7 MATHEMATICAL SCRIPT SMALL R -1D4C8 MATHEMATICAL SCRIPT SMALL S -1D4C9 MATHEMATICAL SCRIPT SMALL T -1D4CA MATHEMATICAL SCRIPT SMALL U -1D4CB MATHEMATICAL SCRIPT SMALL V -1D4CC MATHEMATICAL SCRIPT SMALL W -1D4CD MATHEMATICAL SCRIPT SMALL X -1D4CE MATHEMATICAL SCRIPT SMALL Y -1D4CF MATHEMATICAL SCRIPT SMALL Z -1D4D0 MATHEMATICAL BOLD SCRIPT CAPITAL A -1D4D1 MATHEMATICAL BOLD SCRIPT CAPITAL B -1D4D2 MATHEMATICAL BOLD SCRIPT CAPITAL C -1D4D3 MATHEMATICAL BOLD SCRIPT CAPITAL D -1D4D4 MATHEMATICAL BOLD SCRIPT CAPITAL E -1D4D5 MATHEMATICAL BOLD SCRIPT CAPITAL F -1D4D6 MATHEMATICAL BOLD SCRIPT CAPITAL G -1D4D7 MATHEMATICAL BOLD SCRIPT CAPITAL H -1D4D8 MATHEMATICAL BOLD SCRIPT CAPITAL I -1D4D9 MATHEMATICAL BOLD SCRIPT CAPITAL J -1D4DA MATHEMATICAL BOLD SCRIPT CAPITAL K -1D4DB MATHEMATICAL BOLD SCRIPT CAPITAL L -1D4DC MATHEMATICAL BOLD SCRIPT CAPITAL M -1D4DD MATHEMATICAL BOLD SCRIPT CAPITAL N -1D4DE MATHEMATICAL BOLD SCRIPT CAPITAL O -1D4DF MATHEMATICAL BOLD SCRIPT CAPITAL P -1D4E0 MATHEMATICAL BOLD SCRIPT CAPITAL Q -1D4E1 MATHEMATICAL BOLD SCRIPT CAPITAL R -1D4E2 MATHEMATICAL BOLD SCRIPT CAPITAL S -1D4E3 MATHEMATICAL BOLD SCRIPT CAPITAL T -1D4E4 MATHEMATICAL BOLD SCRIPT CAPITAL U -1D4E5 MATHEMATICAL BOLD SCRIPT CAPITAL V -1D4E6 MATHEMATICAL BOLD SCRIPT CAPITAL W -1D4E7 MATHEMATICAL BOLD SCRIPT CAPITAL X -1D4E8 MATHEMATICAL BOLD SCRIPT CAPITAL Y -1D4E9 MATHEMATICAL BOLD SCRIPT CAPITAL Z -1D4EA MATHEMATICAL BOLD SCRIPT SMALL A -1D4EB MATHEMATICAL BOLD SCRIPT SMALL B -1D4EC MATHEMATICAL BOLD SCRIPT SMALL C -1D4ED MATHEMATICAL BOLD SCRIPT SMALL D -1D4EE MATHEMATICAL BOLD SCRIPT SMALL E -1D4EF MATHEMATICAL BOLD SCRIPT SMALL F -1D4F0 MATHEMATICAL BOLD SCRIPT SMALL G -1D4F1 MATHEMATICAL BOLD SCRIPT SMALL H -1D4F2 MATHEMATICAL BOLD SCRIPT SMALL I -1D4F3 MATHEMATICAL BOLD SCRIPT SMALL J -1D4F4 MATHEMATICAL BOLD SCRIPT SMALL K -1D4F5 MATHEMATICAL BOLD SCRIPT SMALL L -1D4F6 MATHEMATICAL BOLD SCRIPT SMALL M -1D4F7 MATHEMATICAL BOLD SCRIPT SMALL N -1D4F8 MATHEMATICAL BOLD SCRIPT SMALL O -1D4F9 MATHEMATICAL BOLD SCRIPT SMALL P -1D4FA MATHEMATICAL BOLD SCRIPT SMALL Q -1D4FB MATHEMATICAL BOLD SCRIPT SMALL R -1D4FC MATHEMATICAL BOLD SCRIPT SMALL S -1D4FD MATHEMATICAL BOLD SCRIPT SMALL T -1D4FE MATHEMATICAL BOLD SCRIPT SMALL U -1D4FF MATHEMATICAL BOLD SCRIPT SMALL V -1D500 MATHEMATICAL BOLD SCRIPT SMALL W -1D501 MATHEMATICAL BOLD SCRIPT SMALL X -1D502 MATHEMATICAL BOLD SCRIPT SMALL Y -1D503 MATHEMATICAL BOLD SCRIPT SMALL Z -1D504 MATHEMATICAL FRAKTUR CAPITAL A -1D505 MATHEMATICAL FRAKTUR CAPITAL B -1D507 MATHEMATICAL FRAKTUR CAPITAL D -1D508 MATHEMATICAL FRAKTUR CAPITAL E -1D509 MATHEMATICAL FRAKTUR CAPITAL F -1D50A MATHEMATICAL FRAKTUR CAPITAL G -1D50D MATHEMATICAL FRAKTUR CAPITAL J -1D50E MATHEMATICAL FRAKTUR CAPITAL K -1D50F MATHEMATICAL FRAKTUR CAPITAL L -1D510 MATHEMATICAL FRAKTUR CAPITAL M -1D511 MATHEMATICAL FRAKTUR CAPITAL N -1D512 MATHEMATICAL FRAKTUR CAPITAL O -1D513 MATHEMATICAL FRAKTUR CAPITAL P -1D514 MATHEMATICAL FRAKTUR CAPITAL Q -1D516 MATHEMATICAL FRAKTUR CAPITAL S -1D517 MATHEMATICAL FRAKTUR CAPITAL T -1D518 MATHEMATICAL FRAKTUR CAPITAL U -1D519 MATHEMATICAL FRAKTUR CAPITAL V -1D51A MATHEMATICAL FRAKTUR CAPITAL W -1D51B MATHEMATICAL FRAKTUR CAPITAL X -1D51C MATHEMATICAL FRAKTUR CAPITAL Y -1D51E MATHEMATICAL FRAKTUR SMALL A -1D51F MATHEMATICAL FRAKTUR SMALL B -1D520 MATHEMATICAL FRAKTUR SMALL C -1D521 MATHEMATICAL FRAKTUR SMALL D -1D522 MATHEMATICAL FRAKTUR SMALL E -1D523 MATHEMATICAL FRAKTUR SMALL F -1D524 MATHEMATICAL FRAKTUR SMALL G -1D525 MATHEMATICAL FRAKTUR SMALL H -1D526 MATHEMATICAL FRAKTUR SMALL I -1D527 MATHEMATICAL FRAKTUR SMALL J -1D528 MATHEMATICAL FRAKTUR SMALL K -1D529 MATHEMATICAL FRAKTUR SMALL L -1D52A MATHEMATICAL FRAKTUR SMALL M -1D52B MATHEMATICAL FRAKTUR SMALL N -1D52C MATHEMATICAL FRAKTUR SMALL O -1D52D MATHEMATICAL FRAKTUR SMALL P -1D52E MATHEMATICAL FRAKTUR SMALL Q -1D52F MATHEMATICAL FRAKTUR SMALL R -1D530 MATHEMATICAL FRAKTUR SMALL S -1D531 MATHEMATICAL FRAKTUR SMALL T -1D532 MATHEMATICAL FRAKTUR SMALL U -1D533 MATHEMATICAL FRAKTUR SMALL V -1D534 MATHEMATICAL FRAKTUR SMALL W -1D535 MATHEMATICAL FRAKTUR SMALL X -1D536 MATHEMATICAL FRAKTUR SMALL Y -1D537 MATHEMATICAL FRAKTUR SMALL Z -1D538 MATHEMATICAL DOUBLE-STRUCK CAPITAL A -1D539 MATHEMATICAL DOUBLE-STRUCK CAPITAL B -1D53B MATHEMATICAL DOUBLE-STRUCK CAPITAL D -1D53C MATHEMATICAL DOUBLE-STRUCK CAPITAL E -1D53D MATHEMATICAL DOUBLE-STRUCK CAPITAL F -1D53E MATHEMATICAL DOUBLE-STRUCK CAPITAL G -1D540 MATHEMATICAL DOUBLE-STRUCK CAPITAL I -1D541 MATHEMATICAL DOUBLE-STRUCK CAPITAL J -1D542 MATHEMATICAL DOUBLE-STRUCK CAPITAL K -1D543 MATHEMATICAL DOUBLE-STRUCK CAPITAL L -1D544 MATHEMATICAL DOUBLE-STRUCK CAPITAL M -1D546 MATHEMATICAL DOUBLE-STRUCK CAPITAL O -1D54A MATHEMATICAL DOUBLE-STRUCK CAPITAL S -1D54B MATHEMATICAL DOUBLE-STRUCK CAPITAL T -1D54C MATHEMATICAL DOUBLE-STRUCK CAPITAL U -1D54D MATHEMATICAL DOUBLE-STRUCK CAPITAL V -1D54E MATHEMATICAL DOUBLE-STRUCK CAPITAL W -1D54F MATHEMATICAL DOUBLE-STRUCK CAPITAL X -1D550 MATHEMATICAL DOUBLE-STRUCK CAPITAL Y -1D552 MATHEMATICAL DOUBLE-STRUCK SMALL A -1D553 MATHEMATICAL DOUBLE-STRUCK SMALL B -1D554 MATHEMATICAL DOUBLE-STRUCK SMALL C -1D555 MATHEMATICAL DOUBLE-STRUCK SMALL D -1D556 MATHEMATICAL DOUBLE-STRUCK SMALL E -1D557 MATHEMATICAL DOUBLE-STRUCK SMALL F -1D558 MATHEMATICAL DOUBLE-STRUCK SMALL G -1D559 MATHEMATICAL DOUBLE-STRUCK SMALL H -1D55A MATHEMATICAL DOUBLE-STRUCK SMALL I -1D55B MATHEMATICAL DOUBLE-STRUCK SMALL J -1D55C MATHEMATICAL DOUBLE-STRUCK SMALL K -1D55D MATHEMATICAL DOUBLE-STRUCK SMALL L -1D55E MATHEMATICAL DOUBLE-STRUCK SMALL M -1D55F MATHEMATICAL DOUBLE-STRUCK SMALL N -1D560 MATHEMATICAL DOUBLE-STRUCK SMALL O -1D561 MATHEMATICAL DOUBLE-STRUCK SMALL P -1D562 MATHEMATICAL DOUBLE-STRUCK SMALL Q -1D563 MATHEMATICAL DOUBLE-STRUCK SMALL R -1D564 MATHEMATICAL DOUBLE-STRUCK SMALL S -1D565 MATHEMATICAL DOUBLE-STRUCK SMALL T -1D566 MATHEMATICAL DOUBLE-STRUCK SMALL U -1D567 MATHEMATICAL DOUBLE-STRUCK SMALL V -1D568 MATHEMATICAL DOUBLE-STRUCK SMALL W -1D569 MATHEMATICAL DOUBLE-STRUCK SMALL X -1D56A MATHEMATICAL DOUBLE-STRUCK SMALL Y -1D56B MATHEMATICAL DOUBLE-STRUCK SMALL Z -1D56C MATHEMATICAL BOLD FRAKTUR CAPITAL A -1D56D MATHEMATICAL BOLD FRAKTUR CAPITAL B -1D56E MATHEMATICAL BOLD FRAKTUR CAPITAL C -1D56F MATHEMATICAL BOLD FRAKTUR CAPITAL D -1D570 MATHEMATICAL BOLD FRAKTUR CAPITAL E -1D571 MATHEMATICAL BOLD FRAKTUR CAPITAL F -1D572 MATHEMATICAL BOLD FRAKTUR CAPITAL G -1D573 MATHEMATICAL BOLD FRAKTUR CAPITAL H -1D574 MATHEMATICAL BOLD FRAKTUR CAPITAL I -1D575 MATHEMATICAL BOLD FRAKTUR CAPITAL J -1D576 MATHEMATICAL BOLD FRAKTUR CAPITAL K -1D577 MATHEMATICAL BOLD FRAKTUR CAPITAL L -1D578 MATHEMATICAL BOLD FRAKTUR CAPITAL M -1D579 MATHEMATICAL BOLD FRAKTUR CAPITAL N -1D57A MATHEMATICAL BOLD FRAKTUR CAPITAL O -1D57B MATHEMATICAL BOLD FRAKTUR CAPITAL P -1D57C MATHEMATICAL BOLD FRAKTUR CAPITAL Q -1D57D MATHEMATICAL BOLD FRAKTUR CAPITAL R -1D57E MATHEMATICAL BOLD FRAKTUR CAPITAL S -1D57F MATHEMATICAL BOLD FRAKTUR CAPITAL T -1D580 MATHEMATICAL BOLD FRAKTUR CAPITAL U -1D581 MATHEMATICAL BOLD FRAKTUR CAPITAL V -1D582 MATHEMATICAL BOLD FRAKTUR CAPITAL W -1D583 MATHEMATICAL BOLD FRAKTUR CAPITAL X -1D584 MATHEMATICAL BOLD FRAKTUR CAPITAL Y -1D585 MATHEMATICAL BOLD FRAKTUR CAPITAL Z -1D586 MATHEMATICAL BOLD FRAKTUR SMALL A -1D587 MATHEMATICAL BOLD FRAKTUR SMALL B -1D588 MATHEMATICAL BOLD FRAKTUR SMALL C -1D589 MATHEMATICAL BOLD FRAKTUR SMALL D -1D58A MATHEMATICAL BOLD FRAKTUR SMALL E -1D58B MATHEMATICAL BOLD FRAKTUR SMALL F -1D58C MATHEMATICAL BOLD FRAKTUR SMALL G -1D58D MATHEMATICAL BOLD FRAKTUR SMALL H -1D58E MATHEMATICAL BOLD FRAKTUR SMALL I -1D58F MATHEMATICAL BOLD FRAKTUR SMALL J -1D590 MATHEMATICAL BOLD FRAKTUR SMALL K -1D591 MATHEMATICAL BOLD FRAKTUR SMALL L -1D592 MATHEMATICAL BOLD FRAKTUR SMALL M -1D593 MATHEMATICAL BOLD FRAKTUR SMALL N -1D594 MATHEMATICAL BOLD FRAKTUR SMALL O -1D595 MATHEMATICAL BOLD FRAKTUR SMALL P -1D596 MATHEMATICAL BOLD FRAKTUR SMALL Q -1D597 MATHEMATICAL BOLD FRAKTUR SMALL R -1D598 MATHEMATICAL BOLD FRAKTUR SMALL S -1D599 MATHEMATICAL BOLD FRAKTUR SMALL T -1D59A MATHEMATICAL BOLD FRAKTUR SMALL U -1D59B MATHEMATICAL BOLD FRAKTUR SMALL V -1D59C MATHEMATICAL BOLD FRAKTUR SMALL W -1D59D MATHEMATICAL BOLD FRAKTUR SMALL X -1D59E MATHEMATICAL BOLD FRAKTUR SMALL Y -1D59F MATHEMATICAL BOLD FRAKTUR SMALL Z -1D5A0 MATHEMATICAL SANS-SERIF CAPITAL A -1D5A1 MATHEMATICAL SANS-SERIF CAPITAL B -1D5A2 MATHEMATICAL SANS-SERIF CAPITAL C -1D5A3 MATHEMATICAL SANS-SERIF CAPITAL D -1D5A4 MATHEMATICAL SANS-SERIF CAPITAL E -1D5A5 MATHEMATICAL SANS-SERIF CAPITAL F -1D5A6 MATHEMATICAL SANS-SERIF CAPITAL G -1D5A7 MATHEMATICAL SANS-SERIF CAPITAL H -1D5A8 MATHEMATICAL SANS-SERIF CAPITAL I -1D5A9 MATHEMATICAL SANS-SERIF CAPITAL J -1D5AA MATHEMATICAL SANS-SERIF CAPITAL K -1D5AB MATHEMATICAL SANS-SERIF CAPITAL L -1D5AC MATHEMATICAL SANS-SERIF CAPITAL M -1D5AD MATHEMATICAL SANS-SERIF CAPITAL N -1D5AE MATHEMATICAL SANS-SERIF CAPITAL O -1D5AF MATHEMATICAL SANS-SERIF CAPITAL P -1D5B0 MATHEMATICAL SANS-SERIF CAPITAL Q -1D5B1 MATHEMATICAL SANS-SERIF CAPITAL R -1D5B2 MATHEMATICAL SANS-SERIF CAPITAL S -1D5B3 MATHEMATICAL SANS-SERIF CAPITAL T -1D5B4 MATHEMATICAL SANS-SERIF CAPITAL U -1D5B5 MATHEMATICAL SANS-SERIF CAPITAL V -1D5B6 MATHEMATICAL SANS-SERIF CAPITAL W -1D5B7 MATHEMATICAL SANS-SERIF CAPITAL X -1D5B8 MATHEMATICAL SANS-SERIF CAPITAL Y -1D5B9 MATHEMATICAL SANS-SERIF CAPITAL Z -1D5BA MATHEMATICAL SANS-SERIF SMALL A -1D5BB MATHEMATICAL SANS-SERIF SMALL B -1D5BC MATHEMATICAL SANS-SERIF SMALL C -1D5BD MATHEMATICAL SANS-SERIF SMALL D -1D5BE MATHEMATICAL SANS-SERIF SMALL E -1D5BF MATHEMATICAL SANS-SERIF SMALL F -1D5C0 MATHEMATICAL SANS-SERIF SMALL G -1D5C1 MATHEMATICAL SANS-SERIF SMALL H -1D5C2 MATHEMATICAL SANS-SERIF SMALL I -1D5C3 MATHEMATICAL SANS-SERIF SMALL J -1D5C4 MATHEMATICAL SANS-SERIF SMALL K -1D5C5 MATHEMATICAL SANS-SERIF SMALL L -1D5C6 MATHEMATICAL SANS-SERIF SMALL M -1D5C7 MATHEMATICAL SANS-SERIF SMALL N -1D5C8 MATHEMATICAL SANS-SERIF SMALL O -1D5C9 MATHEMATICAL SANS-SERIF SMALL P -1D5CA MATHEMATICAL SANS-SERIF SMALL Q -1D5CB MATHEMATICAL SANS-SERIF SMALL R -1D5CC MATHEMATICAL SANS-SERIF SMALL S -1D5CD MATHEMATICAL SANS-SERIF SMALL T -1D5CE MATHEMATICAL SANS-SERIF SMALL U -1D5CF MATHEMATICAL SANS-SERIF SMALL V -1D5D0 MATHEMATICAL SANS-SERIF SMALL W -1D5D1 MATHEMATICAL SANS-SERIF SMALL X -1D5D2 MATHEMATICAL SANS-SERIF SMALL Y -1D5D3 MATHEMATICAL SANS-SERIF SMALL Z -1D5D4 MATHEMATICAL SANS-SERIF BOLD CAPITAL A -1D5D5 MATHEMATICAL SANS-SERIF BOLD CAPITAL B -1D5D6 MATHEMATICAL SANS-SERIF BOLD CAPITAL C -1D5D7 MATHEMATICAL SANS-SERIF BOLD CAPITAL D -1D5D8 MATHEMATICAL SANS-SERIF BOLD CAPITAL E -1D5D9 MATHEMATICAL SANS-SERIF BOLD CAPITAL F -1D5DA MATHEMATICAL SANS-SERIF BOLD CAPITAL G -1D5DB MATHEMATICAL SANS-SERIF BOLD CAPITAL H -1D5DC MATHEMATICAL SANS-SERIF BOLD CAPITAL I -1D5DD MATHEMATICAL SANS-SERIF BOLD CAPITAL J -1D5DE MATHEMATICAL SANS-SERIF BOLD CAPITAL K -1D5DF MATHEMATICAL SANS-SERIF BOLD CAPITAL L -1D5E0 MATHEMATICAL SANS-SERIF BOLD CAPITAL M -1D5E1 MATHEMATICAL SANS-SERIF BOLD CAPITAL N -1D5E2 MATHEMATICAL SANS-SERIF BOLD CAPITAL O -1D5E3 MATHEMATICAL SANS-SERIF BOLD CAPITAL P -1D5E4 MATHEMATICAL SANS-SERIF BOLD CAPITAL Q -1D5E5 MATHEMATICAL SANS-SERIF BOLD CAPITAL R -1D5E6 MATHEMATICAL SANS-SERIF BOLD CAPITAL S -1D5E7 MATHEMATICAL SANS-SERIF BOLD CAPITAL T -1D5E8 MATHEMATICAL SANS-SERIF BOLD CAPITAL U -1D5E9 MATHEMATICAL SANS-SERIF BOLD CAPITAL V -1D5EA MATHEMATICAL SANS-SERIF BOLD CAPITAL W -1D5EB MATHEMATICAL SANS-SERIF BOLD CAPITAL X -1D5EC MATHEMATICAL SANS-SERIF BOLD CAPITAL Y -1D5ED MATHEMATICAL SANS-SERIF BOLD CAPITAL Z -1D5EE MATHEMATICAL SANS-SERIF BOLD SMALL A -1D5EF MATHEMATICAL SANS-SERIF BOLD SMALL B -1D5F0 MATHEMATICAL SANS-SERIF BOLD SMALL C -1D5F1 MATHEMATICAL SANS-SERIF BOLD SMALL D -1D5F2 MATHEMATICAL SANS-SERIF BOLD SMALL E -1D5F3 MATHEMATICAL SANS-SERIF BOLD SMALL F -1D5F4 MATHEMATICAL SANS-SERIF BOLD SMALL G -1D5F5 MATHEMATICAL SANS-SERIF BOLD SMALL H -1D5F6 MATHEMATICAL SANS-SERIF BOLD SMALL I -1D5F7 MATHEMATICAL SANS-SERIF BOLD SMALL J -1D5F8 MATHEMATICAL SANS-SERIF BOLD SMALL K -1D5F9 MATHEMATICAL SANS-SERIF BOLD SMALL L -1D5FA MATHEMATICAL SANS-SERIF BOLD SMALL M -1D5FB MATHEMATICAL SANS-SERIF BOLD SMALL N -1D5FC MATHEMATICAL SANS-SERIF BOLD SMALL O -1D5FD MATHEMATICAL SANS-SERIF BOLD SMALL P -1D5FE MATHEMATICAL SANS-SERIF BOLD SMALL Q -1D5FF MATHEMATICAL SANS-SERIF BOLD SMALL R -1D600 MATHEMATICAL SANS-SERIF BOLD SMALL S -1D601 MATHEMATICAL SANS-SERIF BOLD SMALL T -1D602 MATHEMATICAL SANS-SERIF BOLD SMALL U -1D603 MATHEMATICAL SANS-SERIF BOLD SMALL V -1D604 MATHEMATICAL SANS-SERIF BOLD SMALL W -1D605 MATHEMATICAL SANS-SERIF BOLD SMALL X -1D606 MATHEMATICAL SANS-SERIF BOLD SMALL Y -1D607 MATHEMATICAL SANS-SERIF BOLD SMALL Z -1D608 MATHEMATICAL SANS-SERIF ITALIC CAPITAL A -1D609 MATHEMATICAL SANS-SERIF ITALIC CAPITAL B -1D60A MATHEMATICAL SANS-SERIF ITALIC CAPITAL C -1D60B MATHEMATICAL SANS-SERIF ITALIC CAPITAL D -1D60C MATHEMATICAL SANS-SERIF ITALIC CAPITAL E -1D60D MATHEMATICAL SANS-SERIF ITALIC CAPITAL F -1D60E MATHEMATICAL SANS-SERIF ITALIC CAPITAL G -1D60F MATHEMATICAL SANS-SERIF ITALIC CAPITAL H -1D610 MATHEMATICAL SANS-SERIF ITALIC CAPITAL I -1D611 MATHEMATICAL SANS-SERIF ITALIC CAPITAL J -1D612 MATHEMATICAL SANS-SERIF ITALIC CAPITAL K -1D613 MATHEMATICAL SANS-SERIF ITALIC CAPITAL L -1D614 MATHEMATICAL SANS-SERIF ITALIC CAPITAL M -1D615 MATHEMATICAL SANS-SERIF ITALIC CAPITAL N -1D616 MATHEMATICAL SANS-SERIF ITALIC CAPITAL O -1D617 MATHEMATICAL SANS-SERIF ITALIC CAPITAL P -1D618 MATHEMATICAL SANS-SERIF ITALIC CAPITAL Q -1D619 MATHEMATICAL SANS-SERIF ITALIC CAPITAL R -1D61A MATHEMATICAL SANS-SERIF ITALIC CAPITAL S -1D61B MATHEMATICAL SANS-SERIF ITALIC CAPITAL T -1D61C MATHEMATICAL SANS-SERIF ITALIC CAPITAL U -1D61D MATHEMATICAL SANS-SERIF ITALIC CAPITAL V -1D61E MATHEMATICAL SANS-SERIF ITALIC CAPITAL W -1D61F MATHEMATICAL SANS-SERIF ITALIC CAPITAL X -1D620 MATHEMATICAL SANS-SERIF ITALIC CAPITAL Y -1D621 MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z -1D622 MATHEMATICAL SANS-SERIF ITALIC SMALL A -1D623 MATHEMATICAL SANS-SERIF ITALIC SMALL B -1D624 MATHEMATICAL SANS-SERIF ITALIC SMALL C -1D625 MATHEMATICAL SANS-SERIF ITALIC SMALL D -1D626 MATHEMATICAL SANS-SERIF ITALIC SMALL E -1D627 MATHEMATICAL SANS-SERIF ITALIC SMALL F -1D628 MATHEMATICAL SANS-SERIF ITALIC SMALL G -1D629 MATHEMATICAL SANS-SERIF ITALIC SMALL H -1D62A MATHEMATICAL SANS-SERIF ITALIC SMALL I -1D62B MATHEMATICAL SANS-SERIF ITALIC SMALL J -1D62C MATHEMATICAL SANS-SERIF ITALIC SMALL K -1D62D MATHEMATICAL SANS-SERIF ITALIC SMALL L -1D62E MATHEMATICAL SANS-SERIF ITALIC SMALL M -1D62F MATHEMATICAL SANS-SERIF ITALIC SMALL N -1D630 MATHEMATICAL SANS-SERIF ITALIC SMALL O -1D631 MATHEMATICAL SANS-SERIF ITALIC SMALL P -1D632 MATHEMATICAL SANS-SERIF ITALIC SMALL Q -1D633 MATHEMATICAL SANS-SERIF ITALIC SMALL R -1D634 MATHEMATICAL SANS-SERIF ITALIC SMALL S -1D635 MATHEMATICAL SANS-SERIF ITALIC SMALL T -1D636 MATHEMATICAL SANS-SERIF ITALIC SMALL U -1D637 MATHEMATICAL SANS-SERIF ITALIC SMALL V -1D638 MATHEMATICAL SANS-SERIF ITALIC SMALL W -1D639 MATHEMATICAL SANS-SERIF ITALIC SMALL X -1D63A MATHEMATICAL SANS-SERIF ITALIC SMALL Y -1D63B MATHEMATICAL SANS-SERIF ITALIC SMALL Z -1D63C MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A -1D63D MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL B -1D63E MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL C -1D63F MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL D -1D640 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL E -1D641 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL F -1D642 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL G -1D643 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL H -1D644 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL I -1D645 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL J -1D646 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL K -1D647 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL L -1D648 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL M -1D649 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL N -1D64A MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL O -1D64B MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL P -1D64C MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Q -1D64D MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL R -1D64E MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL S -1D64F MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL T -1D650 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL U -1D651 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL V -1D652 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL W -1D653 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL X -1D654 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Y -1D655 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z -1D656 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A -1D657 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL B -1D658 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL C -1D659 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL D -1D65A MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL E -1D65B MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL F -1D65C MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL G -1D65D MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL H -1D65E MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I -1D65F MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J -1D660 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL K -1D661 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL L -1D662 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL M -1D663 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL N -1D664 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL O -1D665 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL P -1D666 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Q -1D667 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL R -1D668 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL S -1D669 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL T -1D66A MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL U -1D66B MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL V -1D66C MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL W -1D66D MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL X -1D66E MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Y -1D66F MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z -1D670 MATHEMATICAL MONOSPACE CAPITAL A -1D671 MATHEMATICAL MONOSPACE CAPITAL B -1D672 MATHEMATICAL MONOSPACE CAPITAL C -1D673 MATHEMATICAL MONOSPACE CAPITAL D -1D674 MATHEMATICAL MONOSPACE CAPITAL E -1D675 MATHEMATICAL MONOSPACE CAPITAL F -1D676 MATHEMATICAL MONOSPACE CAPITAL G -1D677 MATHEMATICAL MONOSPACE CAPITAL H -1D678 MATHEMATICAL MONOSPACE CAPITAL I -1D679 MATHEMATICAL MONOSPACE CAPITAL J -1D67A MATHEMATICAL MONOSPACE CAPITAL K -1D67B MATHEMATICAL MONOSPACE CAPITAL L -1D67C MATHEMATICAL MONOSPACE CAPITAL M -1D67D MATHEMATICAL MONOSPACE CAPITAL N -1D67E MATHEMATICAL MONOSPACE CAPITAL O -1D67F MATHEMATICAL MONOSPACE CAPITAL P -1D680 MATHEMATICAL MONOSPACE CAPITAL Q -1D681 MATHEMATICAL MONOSPACE CAPITAL R -1D682 MATHEMATICAL MONOSPACE CAPITAL S -1D683 MATHEMATICAL MONOSPACE CAPITAL T -1D684 MATHEMATICAL MONOSPACE CAPITAL U -1D685 MATHEMATICAL MONOSPACE CAPITAL V -1D686 MATHEMATICAL MONOSPACE CAPITAL W -1D687 MATHEMATICAL MONOSPACE CAPITAL X -1D688 MATHEMATICAL MONOSPACE CAPITAL Y -1D689 MATHEMATICAL MONOSPACE CAPITAL Z -1D68A MATHEMATICAL MONOSPACE SMALL A -1D68B MATHEMATICAL MONOSPACE SMALL B -1D68C MATHEMATICAL MONOSPACE SMALL C -1D68D MATHEMATICAL MONOSPACE SMALL D -1D68E MATHEMATICAL MONOSPACE SMALL E -1D68F MATHEMATICAL MONOSPACE SMALL F -1D690 MATHEMATICAL MONOSPACE SMALL G -1D691 MATHEMATICAL MONOSPACE SMALL H -1D692 MATHEMATICAL MONOSPACE SMALL I -1D693 MATHEMATICAL MONOSPACE SMALL J -1D694 MATHEMATICAL MONOSPACE SMALL K -1D695 MATHEMATICAL MONOSPACE SMALL L -1D696 MATHEMATICAL MONOSPACE SMALL M -1D697 MATHEMATICAL MONOSPACE SMALL N -1D698 MATHEMATICAL MONOSPACE SMALL O -1D699 MATHEMATICAL MONOSPACE SMALL P -1D69A MATHEMATICAL MONOSPACE SMALL Q -1D69B MATHEMATICAL MONOSPACE SMALL R -1D69C MATHEMATICAL MONOSPACE SMALL S -1D69D MATHEMATICAL MONOSPACE SMALL T -1D69E MATHEMATICAL MONOSPACE SMALL U -1D69F MATHEMATICAL MONOSPACE SMALL V -1D6A0 MATHEMATICAL MONOSPACE SMALL W -1D6A1 MATHEMATICAL MONOSPACE SMALL X -1D6A2 MATHEMATICAL MONOSPACE SMALL Y -1D6A3 MATHEMATICAL MONOSPACE SMALL Z -1D6A8 MATHEMATICAL BOLD CAPITAL ALPHA -1D6A9 MATHEMATICAL BOLD CAPITAL BETA -1D6AA MATHEMATICAL BOLD CAPITAL GAMMA -1D6AB MATHEMATICAL BOLD CAPITAL DELTA -1D6AC MATHEMATICAL BOLD CAPITAL EPSILON -1D6AD MATHEMATICAL BOLD CAPITAL ZETA -1D6AE MATHEMATICAL BOLD CAPITAL ETA -1D6AF MATHEMATICAL BOLD CAPITAL THETA -1D6B0 MATHEMATICAL BOLD CAPITAL IOTA -1D6B1 MATHEMATICAL BOLD CAPITAL KAPPA -1D6B2 MATHEMATICAL BOLD CAPITAL LAMDA -1D6B3 MATHEMATICAL BOLD CAPITAL MU -1D6B4 MATHEMATICAL BOLD CAPITAL NU -1D6B5 MATHEMATICAL BOLD CAPITAL XI -1D6B6 MATHEMATICAL BOLD CAPITAL OMICRON -1D6B7 MATHEMATICAL BOLD CAPITAL PI -1D6B8 MATHEMATICAL BOLD CAPITAL RHO -1D6B9 MATHEMATICAL BOLD CAPITAL THETA SYMBOL -1D6BA MATHEMATICAL BOLD CAPITAL SIGMA -1D6BB MATHEMATICAL BOLD CAPITAL TAU -1D6BC MATHEMATICAL BOLD CAPITAL UPSILON -1D6BD MATHEMATICAL BOLD CAPITAL PHI -1D6BE MATHEMATICAL BOLD CAPITAL CHI -1D6BF MATHEMATICAL BOLD CAPITAL PSI -1D6C0 MATHEMATICAL BOLD CAPITAL OMEGA -1D6C1 MATHEMATICAL BOLD NABLA -1D6C2 MATHEMATICAL BOLD SMALL ALPHA -1D6C3 MATHEMATICAL BOLD SMALL BETA -1D6C4 MATHEMATICAL BOLD SMALL GAMMA -1D6C5 MATHEMATICAL BOLD SMALL DELTA -1D6C6 MATHEMATICAL BOLD SMALL EPSILON -1D6C7 MATHEMATICAL BOLD SMALL ZETA -1D6C8 MATHEMATICAL BOLD SMALL ETA -1D6C9 MATHEMATICAL BOLD SMALL THETA -1D6CA MATHEMATICAL BOLD SMALL IOTA -1D6CB MATHEMATICAL BOLD SMALL KAPPA -1D6CC MATHEMATICAL BOLD SMALL LAMDA -1D6CD MATHEMATICAL BOLD SMALL MU -1D6CE MATHEMATICAL BOLD SMALL NU -1D6CF MATHEMATICAL BOLD SMALL XI -1D6D0 MATHEMATICAL BOLD SMALL OMICRON -1D6D1 MATHEMATICAL BOLD SMALL PI -1D6D2 MATHEMATICAL BOLD SMALL RHO -1D6D3 MATHEMATICAL BOLD SMALL FINAL SIGMA -1D6D4 MATHEMATICAL BOLD SMALL SIGMA -1D6D5 MATHEMATICAL BOLD SMALL TAU -1D6D6 MATHEMATICAL BOLD SMALL UPSILON -1D6D7 MATHEMATICAL BOLD SMALL PHI -1D6D8 MATHEMATICAL BOLD SMALL CHI -1D6D9 MATHEMATICAL BOLD SMALL PSI -1D6DA MATHEMATICAL BOLD SMALL OMEGA -1D6DB MATHEMATICAL BOLD PARTIAL DIFFERENTIAL -1D6DC MATHEMATICAL BOLD EPSILON SYMBOL -1D6DD MATHEMATICAL BOLD THETA SYMBOL -1D6DE MATHEMATICAL BOLD KAPPA SYMBOL -1D6DF MATHEMATICAL BOLD PHI SYMBOL -1D6E0 MATHEMATICAL BOLD RHO SYMBOL -1D6E1 MATHEMATICAL BOLD PI SYMBOL -1D6E2 MATHEMATICAL ITALIC CAPITAL ALPHA -1D6E3 MATHEMATICAL ITALIC CAPITAL BETA -1D6E4 MATHEMATICAL ITALIC CAPITAL GAMMA -1D6E5 MATHEMATICAL ITALIC CAPITAL DELTA -1D6E6 MATHEMATICAL ITALIC CAPITAL EPSILON -1D6E7 MATHEMATICAL ITALIC CAPITAL ZETA -1D6E8 MATHEMATICAL ITALIC CAPITAL ETA -1D6E9 MATHEMATICAL ITALIC CAPITAL THETA -1D6EA MATHEMATICAL ITALIC CAPITAL IOTA -1D6EB MATHEMATICAL ITALIC CAPITAL KAPPA -1D6EC MATHEMATICAL ITALIC CAPITAL LAMDA -1D6ED MATHEMATICAL ITALIC CAPITAL MU -1D6EE MATHEMATICAL ITALIC CAPITAL NU -1D6EF MATHEMATICAL ITALIC CAPITAL XI -1D6F0 MATHEMATICAL ITALIC CAPITAL OMICRON -1D6F1 MATHEMATICAL ITALIC CAPITAL PI -1D6F2 MATHEMATICAL ITALIC CAPITAL RHO -1D6F3 MATHEMATICAL ITALIC CAPITAL THETA SYMBOL -1D6F4 MATHEMATICAL ITALIC CAPITAL SIGMA -1D6F5 MATHEMATICAL ITALIC CAPITAL TAU -1D6F6 MATHEMATICAL ITALIC CAPITAL UPSILON -1D6F7 MATHEMATICAL ITALIC CAPITAL PHI -1D6F8 MATHEMATICAL ITALIC CAPITAL CHI -1D6F9 MATHEMATICAL ITALIC CAPITAL PSI -1D6FA MATHEMATICAL ITALIC CAPITAL OMEGA -1D6FB MATHEMATICAL ITALIC NABLA -1D6FC MATHEMATICAL ITALIC SMALL ALPHA -1D6FD MATHEMATICAL ITALIC SMALL BETA -1D6FE MATHEMATICAL ITALIC SMALL GAMMA -1D6FF MATHEMATICAL ITALIC SMALL DELTA -1D700 MATHEMATICAL ITALIC SMALL EPSILON -1D701 MATHEMATICAL ITALIC SMALL ZETA -1D702 MATHEMATICAL ITALIC SMALL ETA -1D703 MATHEMATICAL ITALIC SMALL THETA -1D704 MATHEMATICAL ITALIC SMALL IOTA -1D705 MATHEMATICAL ITALIC SMALL KAPPA -1D706 MATHEMATICAL ITALIC SMALL LAMDA -1D707 MATHEMATICAL ITALIC SMALL MU -1D708 MATHEMATICAL ITALIC SMALL NU -1D709 MATHEMATICAL ITALIC SMALL XI -1D70A MATHEMATICAL ITALIC SMALL OMICRON -1D70B MATHEMATICAL ITALIC SMALL PI -1D70C MATHEMATICAL ITALIC SMALL RHO -1D70D MATHEMATICAL ITALIC SMALL FINAL SIGMA -1D70E MATHEMATICAL ITALIC SMALL SIGMA -1D70F MATHEMATICAL ITALIC SMALL TAU -1D710 MATHEMATICAL ITALIC SMALL UPSILON -1D711 MATHEMATICAL ITALIC SMALL PHI -1D712 MATHEMATICAL ITALIC SMALL CHI -1D713 MATHEMATICAL ITALIC SMALL PSI -1D714 MATHEMATICAL ITALIC SMALL OMEGA -1D715 MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL -1D716 MATHEMATICAL ITALIC EPSILON SYMBOL -1D717 MATHEMATICAL ITALIC THETA SYMBOL -1D718 MATHEMATICAL ITALIC KAPPA SYMBOL -1D719 MATHEMATICAL ITALIC PHI SYMBOL -1D71A MATHEMATICAL ITALIC RHO SYMBOL -1D71B MATHEMATICAL ITALIC PI SYMBOL -1D71C MATHEMATICAL BOLD ITALIC CAPITAL ALPHA -1D71D MATHEMATICAL BOLD ITALIC CAPITAL BETA -1D71E MATHEMATICAL BOLD ITALIC CAPITAL GAMMA -1D71F MATHEMATICAL BOLD ITALIC CAPITAL DELTA -1D720 MATHEMATICAL BOLD ITALIC CAPITAL EPSILON -1D721 MATHEMATICAL BOLD ITALIC CAPITAL ZETA -1D722 MATHEMATICAL BOLD ITALIC CAPITAL ETA -1D723 MATHEMATICAL BOLD ITALIC CAPITAL THETA -1D724 MATHEMATICAL BOLD ITALIC CAPITAL IOTA -1D725 MATHEMATICAL BOLD ITALIC CAPITAL KAPPA -1D726 MATHEMATICAL BOLD ITALIC CAPITAL LAMDA -1D727 MATHEMATICAL BOLD ITALIC CAPITAL MU -1D728 MATHEMATICAL BOLD ITALIC CAPITAL NU -1D729 MATHEMATICAL BOLD ITALIC CAPITAL XI -1D72A MATHEMATICAL BOLD ITALIC CAPITAL OMICRON -1D72B MATHEMATICAL BOLD ITALIC CAPITAL PI -1D72C MATHEMATICAL BOLD ITALIC CAPITAL RHO -1D72D MATHEMATICAL BOLD ITALIC CAPITAL THETA SYMBOL -1D72E MATHEMATICAL BOLD ITALIC CAPITAL SIGMA -1D72F MATHEMATICAL BOLD ITALIC CAPITAL TAU -1D730 MATHEMATICAL BOLD ITALIC CAPITAL UPSILON -1D731 MATHEMATICAL BOLD ITALIC CAPITAL PHI -1D732 MATHEMATICAL BOLD ITALIC CAPITAL CHI -1D733 MATHEMATICAL BOLD ITALIC CAPITAL PSI -1D734 MATHEMATICAL BOLD ITALIC CAPITAL OMEGA -1D735 MATHEMATICAL BOLD ITALIC NABLA -1D736 MATHEMATICAL BOLD ITALIC SMALL ALPHA -1D737 MATHEMATICAL BOLD ITALIC SMALL BETA -1D738 MATHEMATICAL BOLD ITALIC SMALL GAMMA -1D739 MATHEMATICAL BOLD ITALIC SMALL DELTA -1D73A MATHEMATICAL BOLD ITALIC SMALL EPSILON -1D73B MATHEMATICAL BOLD ITALIC SMALL ZETA -1D73C MATHEMATICAL BOLD ITALIC SMALL ETA -1D73D MATHEMATICAL BOLD ITALIC SMALL THETA -1D73E MATHEMATICAL BOLD ITALIC SMALL IOTA -1D73F MATHEMATICAL BOLD ITALIC SMALL KAPPA -1D740 MATHEMATICAL BOLD ITALIC SMALL LAMDA -1D741 MATHEMATICAL BOLD ITALIC SMALL MU -1D742 MATHEMATICAL BOLD ITALIC SMALL NU -1D743 MATHEMATICAL BOLD ITALIC SMALL XI -1D744 MATHEMATICAL BOLD ITALIC SMALL OMICRON -1D745 MATHEMATICAL BOLD ITALIC SMALL PI -1D746 MATHEMATICAL BOLD ITALIC SMALL RHO -1D747 MATHEMATICAL BOLD ITALIC SMALL FINAL SIGMA -1D748 MATHEMATICAL BOLD ITALIC SMALL SIGMA -1D749 MATHEMATICAL BOLD ITALIC SMALL TAU -1D74A MATHEMATICAL BOLD ITALIC SMALL UPSILON -1D74B MATHEMATICAL BOLD ITALIC SMALL PHI -1D74C MATHEMATICAL BOLD ITALIC SMALL CHI -1D74D MATHEMATICAL BOLD ITALIC SMALL PSI -1D74E MATHEMATICAL BOLD ITALIC SMALL OMEGA -1D74F MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL -1D750 MATHEMATICAL BOLD ITALIC EPSILON SYMBOL -1D751 MATHEMATICAL BOLD ITALIC THETA SYMBOL -1D752 MATHEMATICAL BOLD ITALIC KAPPA SYMBOL -1D753 MATHEMATICAL BOLD ITALIC PHI SYMBOL -1D754 MATHEMATICAL BOLD ITALIC RHO SYMBOL -1D755 MATHEMATICAL BOLD ITALIC PI SYMBOL -1D756 MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA -1D757 MATHEMATICAL SANS-SERIF BOLD CAPITAL BETA -1D758 MATHEMATICAL SANS-SERIF BOLD CAPITAL GAMMA -1D759 MATHEMATICAL SANS-SERIF BOLD CAPITAL DELTA -1D75A MATHEMATICAL SANS-SERIF BOLD CAPITAL EPSILON -1D75B MATHEMATICAL SANS-SERIF BOLD CAPITAL ZETA -1D75C MATHEMATICAL SANS-SERIF BOLD CAPITAL ETA -1D75D MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA -1D75E MATHEMATICAL SANS-SERIF BOLD CAPITAL IOTA -1D75F MATHEMATICAL SANS-SERIF BOLD CAPITAL KAPPA -1D760 MATHEMATICAL SANS-SERIF BOLD CAPITAL LAMDA -1D761 MATHEMATICAL SANS-SERIF BOLD CAPITAL MU -1D762 MATHEMATICAL SANS-SERIF BOLD CAPITAL NU -1D763 MATHEMATICAL SANS-SERIF BOLD CAPITAL XI -1D764 MATHEMATICAL SANS-SERIF BOLD CAPITAL OMICRON -1D765 MATHEMATICAL SANS-SERIF BOLD CAPITAL PI -1D766 MATHEMATICAL SANS-SERIF BOLD CAPITAL RHO -1D767 MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA SYMBOL -1D768 MATHEMATICAL SANS-SERIF BOLD CAPITAL SIGMA -1D769 MATHEMATICAL SANS-SERIF BOLD CAPITAL TAU -1D76A MATHEMATICAL SANS-SERIF BOLD CAPITAL UPSILON -1D76B MATHEMATICAL SANS-SERIF BOLD CAPITAL PHI -1D76C MATHEMATICAL SANS-SERIF BOLD CAPITAL CHI -1D76D MATHEMATICAL SANS-SERIF BOLD CAPITAL PSI -1D76E MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA -1D76F MATHEMATICAL SANS-SERIF BOLD NABLA -1D770 MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA -1D771 MATHEMATICAL SANS-SERIF BOLD SMALL BETA -1D772 MATHEMATICAL SANS-SERIF BOLD SMALL GAMMA -1D773 MATHEMATICAL SANS-SERIF BOLD SMALL DELTA -1D774 MATHEMATICAL SANS-SERIF BOLD SMALL EPSILON -1D775 MATHEMATICAL SANS-SERIF BOLD SMALL ZETA -1D776 MATHEMATICAL SANS-SERIF BOLD SMALL ETA -1D777 MATHEMATICAL SANS-SERIF BOLD SMALL THETA -1D778 MATHEMATICAL SANS-SERIF BOLD SMALL IOTA -1D779 MATHEMATICAL SANS-SERIF BOLD SMALL KAPPA -1D77A MATHEMATICAL SANS-SERIF BOLD SMALL LAMDA -1D77B MATHEMATICAL SANS-SERIF BOLD SMALL MU -1D77C MATHEMATICAL SANS-SERIF BOLD SMALL NU -1D77D MATHEMATICAL SANS-SERIF BOLD SMALL XI -1D77E MATHEMATICAL SANS-SERIF BOLD SMALL OMICRON -1D77F MATHEMATICAL SANS-SERIF BOLD SMALL PI -1D780 MATHEMATICAL SANS-SERIF BOLD SMALL RHO -1D781 MATHEMATICAL SANS-SERIF BOLD SMALL FINAL SIGMA -1D782 MATHEMATICAL SANS-SERIF BOLD SMALL SIGMA -1D783 MATHEMATICAL SANS-SERIF BOLD SMALL TAU -1D784 MATHEMATICAL SANS-SERIF BOLD SMALL UPSILON -1D785 MATHEMATICAL SANS-SERIF BOLD SMALL PHI -1D786 MATHEMATICAL SANS-SERIF BOLD SMALL CHI -1D787 MATHEMATICAL SANS-SERIF BOLD SMALL PSI -1D788 MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA -1D789 MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL -1D78A MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL -1D78B MATHEMATICAL SANS-SERIF BOLD THETA SYMBOL -1D78C MATHEMATICAL SANS-SERIF BOLD KAPPA SYMBOL -1D78D MATHEMATICAL SANS-SERIF BOLD PHI SYMBOL -1D78E MATHEMATICAL SANS-SERIF BOLD RHO SYMBOL -1D78F MATHEMATICAL SANS-SERIF BOLD PI SYMBOL -1D790 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA -1D791 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL BETA -1D792 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL GAMMA -1D793 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL DELTA -1D794 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL EPSILON -1D795 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ZETA -1D796 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ETA -1D797 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA -1D798 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL IOTA -1D799 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL KAPPA -1D79A MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL LAMDA -1D79B MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL MU -1D79C MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL NU -1D79D MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL XI -1D79E MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMICRON -1D79F MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PI -1D7A0 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL RHO -1D7A1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA SYMBOL -1D7A2 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL SIGMA -1D7A3 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL TAU -1D7A4 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL UPSILON -1D7A5 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PHI -1D7A6 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL CHI -1D7A7 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PSI -1D7A8 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA -1D7A9 MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA -1D7AA MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA -1D7AB MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL BETA -1D7AC MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL GAMMA -1D7AD MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL DELTA -1D7AE MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL EPSILON -1D7AF MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ZETA -1D7B0 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ETA -1D7B1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL THETA -1D7B2 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL IOTA -1D7B3 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL KAPPA -1D7B4 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL LAMDA -1D7B5 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL MU -1D7B6 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL NU -1D7B7 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL XI -1D7B8 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMICRON -1D7B9 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PI -1D7BA MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL RHO -1D7BB MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL FINAL SIGMA -1D7BC MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL SIGMA -1D7BD MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL TAU -1D7BE MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL UPSILON -1D7BF MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PHI -1D7C0 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL CHI -1D7C1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PSI -1D7C2 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA -1D7C3 MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL -1D7C4 MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL -1D7C5 MATHEMATICAL SANS-SERIF BOLD ITALIC THETA SYMBOL -1D7C6 MATHEMATICAL SANS-SERIF BOLD ITALIC KAPPA SYMBOL -1D7C7 MATHEMATICAL SANS-SERIF BOLD ITALIC PHI SYMBOL -1D7C8 MATHEMATICAL SANS-SERIF BOLD ITALIC RHO SYMBOL -1D7C9 MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL -1D7CE MATHEMATICAL BOLD DIGIT ZERO -1D7CF MATHEMATICAL BOLD DIGIT ONE -1D7D0 MATHEMATICAL BOLD DIGIT TWO -1D7D1 MATHEMATICAL BOLD DIGIT THREE -1D7D2 MATHEMATICAL BOLD DIGIT FOUR -1D7D3 MATHEMATICAL BOLD DIGIT FIVE -1D7D4 MATHEMATICAL BOLD DIGIT SIX -1D7D5 MATHEMATICAL BOLD DIGIT SEVEN -1D7D6 MATHEMATICAL BOLD DIGIT EIGHT -1D7D7 MATHEMATICAL BOLD DIGIT NINE -1D7D8 MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO -1D7D9 MATHEMATICAL DOUBLE-STRUCK DIGIT ONE -1D7DA MATHEMATICAL DOUBLE-STRUCK DIGIT TWO -1D7DB MATHEMATICAL DOUBLE-STRUCK DIGIT THREE -1D7DC MATHEMATICAL DOUBLE-STRUCK DIGIT FOUR -1D7DD MATHEMATICAL DOUBLE-STRUCK DIGIT FIVE -1D7DE MATHEMATICAL DOUBLE-STRUCK DIGIT SIX -1D7DF MATHEMATICAL DOUBLE-STRUCK DIGIT SEVEN -1D7E0 MATHEMATICAL DOUBLE-STRUCK DIGIT EIGHT -1D7E1 MATHEMATICAL DOUBLE-STRUCK DIGIT NINE -1D7E2 MATHEMATICAL SANS-SERIF DIGIT ZERO -1D7E3 MATHEMATICAL SANS-SERIF DIGIT ONE -1D7E4 MATHEMATICAL SANS-SERIF DIGIT TWO -1D7E5 MATHEMATICAL SANS-SERIF DIGIT THREE -1D7E6 MATHEMATICAL SANS-SERIF DIGIT FOUR -1D7E7 MATHEMATICAL SANS-SERIF DIGIT FIVE -1D7E8 MATHEMATICAL SANS-SERIF DIGIT SIX -1D7E9 MATHEMATICAL SANS-SERIF DIGIT SEVEN -1D7EA MATHEMATICAL SANS-SERIF DIGIT EIGHT -1D7EB MATHEMATICAL SANS-SERIF DIGIT NINE -1D7EC MATHEMATICAL SANS-SERIF BOLD DIGIT ZERO -1D7ED MATHEMATICAL SANS-SERIF BOLD DIGIT ONE -1D7EE MATHEMATICAL SANS-SERIF BOLD DIGIT TWO -1D7EF MATHEMATICAL SANS-SERIF BOLD DIGIT THREE -1D7F0 MATHEMATICAL SANS-SERIF BOLD DIGIT FOUR -1D7F1 MATHEMATICAL SANS-SERIF BOLD DIGIT FIVE -1D7F2 MATHEMATICAL SANS-SERIF BOLD DIGIT SIX -1D7F3 MATHEMATICAL SANS-SERIF BOLD DIGIT SEVEN -1D7F4 MATHEMATICAL SANS-SERIF BOLD DIGIT EIGHT -1D7F5 MATHEMATICAL SANS-SERIF BOLD DIGIT NINE -1D7F6 MATHEMATICAL MONOSPACE DIGIT ZERO -1D7F7 MATHEMATICAL MONOSPACE DIGIT ONE -1D7F8 MATHEMATICAL MONOSPACE DIGIT TWO -1D7F9 MATHEMATICAL MONOSPACE DIGIT THREE -1D7FA MATHEMATICAL MONOSPACE DIGIT FOUR -1D7FB MATHEMATICAL MONOSPACE DIGIT FIVE -1D7FC MATHEMATICAL MONOSPACE DIGIT SIX -1D7FD MATHEMATICAL MONOSPACE DIGIT SEVEN -1D7FE MATHEMATICAL MONOSPACE DIGIT EIGHT -1D7FF MATHEMATICAL MONOSPACE DIGIT NINE -20000 2A6D6 CJK Ideograph Extension B -2F800 CJK COMPATIBILITY IDEOGRAPH-2F800 -2F801 CJK COMPATIBILITY IDEOGRAPH-2F801 -2F802 CJK COMPATIBILITY IDEOGRAPH-2F802 -2F803 CJK COMPATIBILITY IDEOGRAPH-2F803 -2F804 CJK COMPATIBILITY IDEOGRAPH-2F804 -2F805 CJK COMPATIBILITY IDEOGRAPH-2F805 -2F806 CJK COMPATIBILITY IDEOGRAPH-2F806 -2F807 CJK COMPATIBILITY IDEOGRAPH-2F807 -2F808 CJK COMPATIBILITY IDEOGRAPH-2F808 -2F809 CJK COMPATIBILITY IDEOGRAPH-2F809 -2F80A CJK COMPATIBILITY IDEOGRAPH-2F80A -2F80B CJK COMPATIBILITY IDEOGRAPH-2F80B -2F80C CJK COMPATIBILITY IDEOGRAPH-2F80C -2F80D CJK COMPATIBILITY IDEOGRAPH-2F80D -2F80E CJK COMPATIBILITY IDEOGRAPH-2F80E -2F80F CJK COMPATIBILITY IDEOGRAPH-2F80F -2F810 CJK COMPATIBILITY IDEOGRAPH-2F810 -2F811 CJK COMPATIBILITY IDEOGRAPH-2F811 -2F812 CJK COMPATIBILITY IDEOGRAPH-2F812 -2F813 CJK COMPATIBILITY IDEOGRAPH-2F813 -2F814 CJK COMPATIBILITY IDEOGRAPH-2F814 -2F815 CJK COMPATIBILITY IDEOGRAPH-2F815 -2F816 CJK COMPATIBILITY IDEOGRAPH-2F816 -2F817 CJK COMPATIBILITY IDEOGRAPH-2F817 -2F818 CJK COMPATIBILITY IDEOGRAPH-2F818 -2F819 CJK COMPATIBILITY IDEOGRAPH-2F819 -2F81A CJK COMPATIBILITY IDEOGRAPH-2F81A -2F81B CJK COMPATIBILITY IDEOGRAPH-2F81B -2F81C CJK COMPATIBILITY IDEOGRAPH-2F81C -2F81D CJK COMPATIBILITY IDEOGRAPH-2F81D -2F81E CJK COMPATIBILITY IDEOGRAPH-2F81E -2F81F CJK COMPATIBILITY IDEOGRAPH-2F81F -2F820 CJK COMPATIBILITY IDEOGRAPH-2F820 -2F821 CJK COMPATIBILITY IDEOGRAPH-2F821 -2F822 CJK COMPATIBILITY IDEOGRAPH-2F822 -2F823 CJK COMPATIBILITY IDEOGRAPH-2F823 -2F824 CJK COMPATIBILITY IDEOGRAPH-2F824 -2F825 CJK COMPATIBILITY IDEOGRAPH-2F825 -2F826 CJK COMPATIBILITY IDEOGRAPH-2F826 -2F827 CJK COMPATIBILITY IDEOGRAPH-2F827 -2F828 CJK COMPATIBILITY IDEOGRAPH-2F828 -2F829 CJK COMPATIBILITY IDEOGRAPH-2F829 -2F82A CJK COMPATIBILITY IDEOGRAPH-2F82A -2F82B CJK COMPATIBILITY IDEOGRAPH-2F82B -2F82C CJK COMPATIBILITY IDEOGRAPH-2F82C -2F82D CJK COMPATIBILITY IDEOGRAPH-2F82D -2F82E CJK COMPATIBILITY IDEOGRAPH-2F82E -2F82F CJK COMPATIBILITY IDEOGRAPH-2F82F -2F830 CJK COMPATIBILITY IDEOGRAPH-2F830 -2F831 CJK COMPATIBILITY IDEOGRAPH-2F831 -2F832 CJK COMPATIBILITY IDEOGRAPH-2F832 -2F833 CJK COMPATIBILITY IDEOGRAPH-2F833 -2F834 CJK COMPATIBILITY IDEOGRAPH-2F834 -2F835 CJK COMPATIBILITY IDEOGRAPH-2F835 -2F836 CJK COMPATIBILITY IDEOGRAPH-2F836 -2F837 CJK COMPATIBILITY IDEOGRAPH-2F837 -2F838 CJK COMPATIBILITY IDEOGRAPH-2F838 -2F839 CJK COMPATIBILITY IDEOGRAPH-2F839 -2F83A CJK COMPATIBILITY IDEOGRAPH-2F83A -2F83B CJK COMPATIBILITY IDEOGRAPH-2F83B -2F83C CJK COMPATIBILITY IDEOGRAPH-2F83C -2F83D CJK COMPATIBILITY IDEOGRAPH-2F83D -2F83E CJK COMPATIBILITY IDEOGRAPH-2F83E -2F83F CJK COMPATIBILITY IDEOGRAPH-2F83F -2F840 CJK COMPATIBILITY IDEOGRAPH-2F840 -2F841 CJK COMPATIBILITY IDEOGRAPH-2F841 -2F842 CJK COMPATIBILITY IDEOGRAPH-2F842 -2F843 CJK COMPATIBILITY IDEOGRAPH-2F843 -2F844 CJK COMPATIBILITY IDEOGRAPH-2F844 -2F845 CJK COMPATIBILITY IDEOGRAPH-2F845 -2F846 CJK COMPATIBILITY IDEOGRAPH-2F846 -2F847 CJK COMPATIBILITY IDEOGRAPH-2F847 -2F848 CJK COMPATIBILITY IDEOGRAPH-2F848 -2F849 CJK COMPATIBILITY IDEOGRAPH-2F849 -2F84A CJK COMPATIBILITY IDEOGRAPH-2F84A -2F84B CJK COMPATIBILITY IDEOGRAPH-2F84B -2F84C CJK COMPATIBILITY IDEOGRAPH-2F84C -2F84D CJK COMPATIBILITY IDEOGRAPH-2F84D -2F84E CJK COMPATIBILITY IDEOGRAPH-2F84E -2F84F CJK COMPATIBILITY IDEOGRAPH-2F84F -2F850 CJK COMPATIBILITY IDEOGRAPH-2F850 -2F851 CJK COMPATIBILITY IDEOGRAPH-2F851 -2F852 CJK COMPATIBILITY IDEOGRAPH-2F852 -2F853 CJK COMPATIBILITY IDEOGRAPH-2F853 -2F854 CJK COMPATIBILITY IDEOGRAPH-2F854 -2F855 CJK COMPATIBILITY IDEOGRAPH-2F855 -2F856 CJK COMPATIBILITY IDEOGRAPH-2F856 -2F857 CJK COMPATIBILITY IDEOGRAPH-2F857 -2F858 CJK COMPATIBILITY IDEOGRAPH-2F858 -2F859 CJK COMPATIBILITY IDEOGRAPH-2F859 -2F85A CJK COMPATIBILITY IDEOGRAPH-2F85A -2F85B CJK COMPATIBILITY IDEOGRAPH-2F85B -2F85C CJK COMPATIBILITY IDEOGRAPH-2F85C -2F85D CJK COMPATIBILITY IDEOGRAPH-2F85D -2F85E CJK COMPATIBILITY IDEOGRAPH-2F85E -2F85F CJK COMPATIBILITY IDEOGRAPH-2F85F -2F860 CJK COMPATIBILITY IDEOGRAPH-2F860 -2F861 CJK COMPATIBILITY IDEOGRAPH-2F861 -2F862 CJK COMPATIBILITY IDEOGRAPH-2F862 -2F863 CJK COMPATIBILITY IDEOGRAPH-2F863 -2F864 CJK COMPATIBILITY IDEOGRAPH-2F864 -2F865 CJK COMPATIBILITY IDEOGRAPH-2F865 -2F866 CJK COMPATIBILITY IDEOGRAPH-2F866 -2F867 CJK COMPATIBILITY IDEOGRAPH-2F867 -2F868 CJK COMPATIBILITY IDEOGRAPH-2F868 -2F869 CJK COMPATIBILITY IDEOGRAPH-2F869 -2F86A CJK COMPATIBILITY IDEOGRAPH-2F86A -2F86B CJK COMPATIBILITY IDEOGRAPH-2F86B -2F86C CJK COMPATIBILITY IDEOGRAPH-2F86C -2F86D CJK COMPATIBILITY IDEOGRAPH-2F86D -2F86E CJK COMPATIBILITY IDEOGRAPH-2F86E -2F86F CJK COMPATIBILITY IDEOGRAPH-2F86F -2F870 CJK COMPATIBILITY IDEOGRAPH-2F870 -2F871 CJK COMPATIBILITY IDEOGRAPH-2F871 -2F872 CJK COMPATIBILITY IDEOGRAPH-2F872 -2F873 CJK COMPATIBILITY IDEOGRAPH-2F873 -2F874 CJK COMPATIBILITY IDEOGRAPH-2F874 -2F875 CJK COMPATIBILITY IDEOGRAPH-2F875 -2F876 CJK COMPATIBILITY IDEOGRAPH-2F876 -2F877 CJK COMPATIBILITY IDEOGRAPH-2F877 -2F878 CJK COMPATIBILITY IDEOGRAPH-2F878 -2F879 CJK COMPATIBILITY IDEOGRAPH-2F879 -2F87A CJK COMPATIBILITY IDEOGRAPH-2F87A -2F87B CJK COMPATIBILITY IDEOGRAPH-2F87B -2F87C CJK COMPATIBILITY IDEOGRAPH-2F87C -2F87D CJK COMPATIBILITY IDEOGRAPH-2F87D -2F87E CJK COMPATIBILITY IDEOGRAPH-2F87E -2F87F CJK COMPATIBILITY IDEOGRAPH-2F87F -2F880 CJK COMPATIBILITY IDEOGRAPH-2F880 -2F881 CJK COMPATIBILITY IDEOGRAPH-2F881 -2F882 CJK COMPATIBILITY IDEOGRAPH-2F882 -2F883 CJK COMPATIBILITY IDEOGRAPH-2F883 -2F884 CJK COMPATIBILITY IDEOGRAPH-2F884 -2F885 CJK COMPATIBILITY IDEOGRAPH-2F885 -2F886 CJK COMPATIBILITY IDEOGRAPH-2F886 -2F887 CJK COMPATIBILITY IDEOGRAPH-2F887 -2F888 CJK COMPATIBILITY IDEOGRAPH-2F888 -2F889 CJK COMPATIBILITY IDEOGRAPH-2F889 -2F88A CJK COMPATIBILITY IDEOGRAPH-2F88A -2F88B CJK COMPATIBILITY IDEOGRAPH-2F88B -2F88C CJK COMPATIBILITY IDEOGRAPH-2F88C -2F88D CJK COMPATIBILITY IDEOGRAPH-2F88D -2F88E CJK COMPATIBILITY IDEOGRAPH-2F88E -2F88F CJK COMPATIBILITY IDEOGRAPH-2F88F -2F890 CJK COMPATIBILITY IDEOGRAPH-2F890 -2F891 CJK COMPATIBILITY IDEOGRAPH-2F891 -2F892 CJK COMPATIBILITY IDEOGRAPH-2F892 -2F893 CJK COMPATIBILITY IDEOGRAPH-2F893 -2F894 CJK COMPATIBILITY IDEOGRAPH-2F894 -2F895 CJK COMPATIBILITY IDEOGRAPH-2F895 -2F896 CJK COMPATIBILITY IDEOGRAPH-2F896 -2F897 CJK COMPATIBILITY IDEOGRAPH-2F897 -2F898 CJK COMPATIBILITY IDEOGRAPH-2F898 -2F899 CJK COMPATIBILITY IDEOGRAPH-2F899 -2F89A CJK COMPATIBILITY IDEOGRAPH-2F89A -2F89B CJK COMPATIBILITY IDEOGRAPH-2F89B -2F89C CJK COMPATIBILITY IDEOGRAPH-2F89C -2F89D CJK COMPATIBILITY IDEOGRAPH-2F89D -2F89E CJK COMPATIBILITY IDEOGRAPH-2F89E -2F89F CJK COMPATIBILITY IDEOGRAPH-2F89F -2F8A0 CJK COMPATIBILITY IDEOGRAPH-2F8A0 -2F8A1 CJK COMPATIBILITY IDEOGRAPH-2F8A1 -2F8A2 CJK COMPATIBILITY IDEOGRAPH-2F8A2 -2F8A3 CJK COMPATIBILITY IDEOGRAPH-2F8A3 -2F8A4 CJK COMPATIBILITY IDEOGRAPH-2F8A4 -2F8A5 CJK COMPATIBILITY IDEOGRAPH-2F8A5 -2F8A6 CJK COMPATIBILITY IDEOGRAPH-2F8A6 -2F8A7 CJK COMPATIBILITY IDEOGRAPH-2F8A7 -2F8A8 CJK COMPATIBILITY IDEOGRAPH-2F8A8 -2F8A9 CJK COMPATIBILITY IDEOGRAPH-2F8A9 -2F8AA CJK COMPATIBILITY IDEOGRAPH-2F8AA -2F8AB CJK COMPATIBILITY IDEOGRAPH-2F8AB -2F8AC CJK COMPATIBILITY IDEOGRAPH-2F8AC -2F8AD CJK COMPATIBILITY IDEOGRAPH-2F8AD -2F8AE CJK COMPATIBILITY IDEOGRAPH-2F8AE -2F8AF CJK COMPATIBILITY IDEOGRAPH-2F8AF -2F8B0 CJK COMPATIBILITY IDEOGRAPH-2F8B0 -2F8B1 CJK COMPATIBILITY IDEOGRAPH-2F8B1 -2F8B2 CJK COMPATIBILITY IDEOGRAPH-2F8B2 -2F8B3 CJK COMPATIBILITY IDEOGRAPH-2F8B3 -2F8B4 CJK COMPATIBILITY IDEOGRAPH-2F8B4 -2F8B5 CJK COMPATIBILITY IDEOGRAPH-2F8B5 -2F8B6 CJK COMPATIBILITY IDEOGRAPH-2F8B6 -2F8B7 CJK COMPATIBILITY IDEOGRAPH-2F8B7 -2F8B8 CJK COMPATIBILITY IDEOGRAPH-2F8B8 -2F8B9 CJK COMPATIBILITY IDEOGRAPH-2F8B9 -2F8BA CJK COMPATIBILITY IDEOGRAPH-2F8BA -2F8BB CJK COMPATIBILITY IDEOGRAPH-2F8BB -2F8BC CJK COMPATIBILITY IDEOGRAPH-2F8BC -2F8BD CJK COMPATIBILITY IDEOGRAPH-2F8BD -2F8BE CJK COMPATIBILITY IDEOGRAPH-2F8BE -2F8BF CJK COMPATIBILITY IDEOGRAPH-2F8BF -2F8C0 CJK COMPATIBILITY IDEOGRAPH-2F8C0 -2F8C1 CJK COMPATIBILITY IDEOGRAPH-2F8C1 -2F8C2 CJK COMPATIBILITY IDEOGRAPH-2F8C2 -2F8C3 CJK COMPATIBILITY IDEOGRAPH-2F8C3 -2F8C4 CJK COMPATIBILITY IDEOGRAPH-2F8C4 -2F8C5 CJK COMPATIBILITY IDEOGRAPH-2F8C5 -2F8C6 CJK COMPATIBILITY IDEOGRAPH-2F8C6 -2F8C7 CJK COMPATIBILITY IDEOGRAPH-2F8C7 -2F8C8 CJK COMPATIBILITY IDEOGRAPH-2F8C8 -2F8C9 CJK COMPATIBILITY IDEOGRAPH-2F8C9 -2F8CA CJK COMPATIBILITY IDEOGRAPH-2F8CA -2F8CB CJK COMPATIBILITY IDEOGRAPH-2F8CB -2F8CC CJK COMPATIBILITY IDEOGRAPH-2F8CC -2F8CD CJK COMPATIBILITY IDEOGRAPH-2F8CD -2F8CE CJK COMPATIBILITY IDEOGRAPH-2F8CE -2F8CF CJK COMPATIBILITY IDEOGRAPH-2F8CF -2F8D0 CJK COMPATIBILITY IDEOGRAPH-2F8D0 -2F8D1 CJK COMPATIBILITY IDEOGRAPH-2F8D1 -2F8D2 CJK COMPATIBILITY IDEOGRAPH-2F8D2 -2F8D3 CJK COMPATIBILITY IDEOGRAPH-2F8D3 -2F8D4 CJK COMPATIBILITY IDEOGRAPH-2F8D4 -2F8D5 CJK COMPATIBILITY IDEOGRAPH-2F8D5 -2F8D6 CJK COMPATIBILITY IDEOGRAPH-2F8D6 -2F8D7 CJK COMPATIBILITY IDEOGRAPH-2F8D7 -2F8D8 CJK COMPATIBILITY IDEOGRAPH-2F8D8 -2F8D9 CJK COMPATIBILITY IDEOGRAPH-2F8D9 -2F8DA CJK COMPATIBILITY IDEOGRAPH-2F8DA -2F8DB CJK COMPATIBILITY IDEOGRAPH-2F8DB -2F8DC CJK COMPATIBILITY IDEOGRAPH-2F8DC -2F8DD CJK COMPATIBILITY IDEOGRAPH-2F8DD -2F8DE CJK COMPATIBILITY IDEOGRAPH-2F8DE -2F8DF CJK COMPATIBILITY IDEOGRAPH-2F8DF -2F8E0 CJK COMPATIBILITY IDEOGRAPH-2F8E0 -2F8E1 CJK COMPATIBILITY IDEOGRAPH-2F8E1 -2F8E2 CJK COMPATIBILITY IDEOGRAPH-2F8E2 -2F8E3 CJK COMPATIBILITY IDEOGRAPH-2F8E3 -2F8E4 CJK COMPATIBILITY IDEOGRAPH-2F8E4 -2F8E5 CJK COMPATIBILITY IDEOGRAPH-2F8E5 -2F8E6 CJK COMPATIBILITY IDEOGRAPH-2F8E6 -2F8E7 CJK COMPATIBILITY IDEOGRAPH-2F8E7 -2F8E8 CJK COMPATIBILITY IDEOGRAPH-2F8E8 -2F8E9 CJK COMPATIBILITY IDEOGRAPH-2F8E9 -2F8EA CJK COMPATIBILITY IDEOGRAPH-2F8EA -2F8EB CJK COMPATIBILITY IDEOGRAPH-2F8EB -2F8EC CJK COMPATIBILITY IDEOGRAPH-2F8EC -2F8ED CJK COMPATIBILITY IDEOGRAPH-2F8ED -2F8EE CJK COMPATIBILITY IDEOGRAPH-2F8EE -2F8EF CJK COMPATIBILITY IDEOGRAPH-2F8EF -2F8F0 CJK COMPATIBILITY IDEOGRAPH-2F8F0 -2F8F1 CJK COMPATIBILITY IDEOGRAPH-2F8F1 -2F8F2 CJK COMPATIBILITY IDEOGRAPH-2F8F2 -2F8F3 CJK COMPATIBILITY IDEOGRAPH-2F8F3 -2F8F4 CJK COMPATIBILITY IDEOGRAPH-2F8F4 -2F8F5 CJK COMPATIBILITY IDEOGRAPH-2F8F5 -2F8F6 CJK COMPATIBILITY IDEOGRAPH-2F8F6 -2F8F7 CJK COMPATIBILITY IDEOGRAPH-2F8F7 -2F8F8 CJK COMPATIBILITY IDEOGRAPH-2F8F8 -2F8F9 CJK COMPATIBILITY IDEOGRAPH-2F8F9 -2F8FA CJK COMPATIBILITY IDEOGRAPH-2F8FA -2F8FB CJK COMPATIBILITY IDEOGRAPH-2F8FB -2F8FC CJK COMPATIBILITY IDEOGRAPH-2F8FC -2F8FD CJK COMPATIBILITY IDEOGRAPH-2F8FD -2F8FE CJK COMPATIBILITY IDEOGRAPH-2F8FE -2F8FF CJK COMPATIBILITY IDEOGRAPH-2F8FF -2F900 CJK COMPATIBILITY IDEOGRAPH-2F900 -2F901 CJK COMPATIBILITY IDEOGRAPH-2F901 -2F902 CJK COMPATIBILITY IDEOGRAPH-2F902 -2F903 CJK COMPATIBILITY IDEOGRAPH-2F903 -2F904 CJK COMPATIBILITY IDEOGRAPH-2F904 -2F905 CJK COMPATIBILITY IDEOGRAPH-2F905 -2F906 CJK COMPATIBILITY IDEOGRAPH-2F906 -2F907 CJK COMPATIBILITY IDEOGRAPH-2F907 -2F908 CJK COMPATIBILITY IDEOGRAPH-2F908 -2F909 CJK COMPATIBILITY IDEOGRAPH-2F909 -2F90A CJK COMPATIBILITY IDEOGRAPH-2F90A -2F90B CJK COMPATIBILITY IDEOGRAPH-2F90B -2F90C CJK COMPATIBILITY IDEOGRAPH-2F90C -2F90D CJK COMPATIBILITY IDEOGRAPH-2F90D -2F90E CJK COMPATIBILITY IDEOGRAPH-2F90E -2F90F CJK COMPATIBILITY IDEOGRAPH-2F90F -2F910 CJK COMPATIBILITY IDEOGRAPH-2F910 -2F911 CJK COMPATIBILITY IDEOGRAPH-2F911 -2F912 CJK COMPATIBILITY IDEOGRAPH-2F912 -2F913 CJK COMPATIBILITY IDEOGRAPH-2F913 -2F914 CJK COMPATIBILITY IDEOGRAPH-2F914 -2F915 CJK COMPATIBILITY IDEOGRAPH-2F915 -2F916 CJK COMPATIBILITY IDEOGRAPH-2F916 -2F917 CJK COMPATIBILITY IDEOGRAPH-2F917 -2F918 CJK COMPATIBILITY IDEOGRAPH-2F918 -2F919 CJK COMPATIBILITY IDEOGRAPH-2F919 -2F91A CJK COMPATIBILITY IDEOGRAPH-2F91A -2F91B CJK COMPATIBILITY IDEOGRAPH-2F91B -2F91C CJK COMPATIBILITY IDEOGRAPH-2F91C -2F91D CJK COMPATIBILITY IDEOGRAPH-2F91D -2F91E CJK COMPATIBILITY IDEOGRAPH-2F91E -2F91F CJK COMPATIBILITY IDEOGRAPH-2F91F -2F920 CJK COMPATIBILITY IDEOGRAPH-2F920 -2F921 CJK COMPATIBILITY IDEOGRAPH-2F921 -2F922 CJK COMPATIBILITY IDEOGRAPH-2F922 -2F923 CJK COMPATIBILITY IDEOGRAPH-2F923 -2F924 CJK COMPATIBILITY IDEOGRAPH-2F924 -2F925 CJK COMPATIBILITY IDEOGRAPH-2F925 -2F926 CJK COMPATIBILITY IDEOGRAPH-2F926 -2F927 CJK COMPATIBILITY IDEOGRAPH-2F927 -2F928 CJK COMPATIBILITY IDEOGRAPH-2F928 -2F929 CJK COMPATIBILITY IDEOGRAPH-2F929 -2F92A CJK COMPATIBILITY IDEOGRAPH-2F92A -2F92B CJK COMPATIBILITY IDEOGRAPH-2F92B -2F92C CJK COMPATIBILITY IDEOGRAPH-2F92C -2F92D CJK COMPATIBILITY IDEOGRAPH-2F92D -2F92E CJK COMPATIBILITY IDEOGRAPH-2F92E -2F92F CJK COMPATIBILITY IDEOGRAPH-2F92F -2F930 CJK COMPATIBILITY IDEOGRAPH-2F930 -2F931 CJK COMPATIBILITY IDEOGRAPH-2F931 -2F932 CJK COMPATIBILITY IDEOGRAPH-2F932 -2F933 CJK COMPATIBILITY IDEOGRAPH-2F933 -2F934 CJK COMPATIBILITY IDEOGRAPH-2F934 -2F935 CJK COMPATIBILITY IDEOGRAPH-2F935 -2F936 CJK COMPATIBILITY IDEOGRAPH-2F936 -2F937 CJK COMPATIBILITY IDEOGRAPH-2F937 -2F938 CJK COMPATIBILITY IDEOGRAPH-2F938 -2F939 CJK COMPATIBILITY IDEOGRAPH-2F939 -2F93A CJK COMPATIBILITY IDEOGRAPH-2F93A -2F93B CJK COMPATIBILITY IDEOGRAPH-2F93B -2F93C CJK COMPATIBILITY IDEOGRAPH-2F93C -2F93D CJK COMPATIBILITY IDEOGRAPH-2F93D -2F93E CJK COMPATIBILITY IDEOGRAPH-2F93E -2F93F CJK COMPATIBILITY IDEOGRAPH-2F93F -2F940 CJK COMPATIBILITY IDEOGRAPH-2F940 -2F941 CJK COMPATIBILITY IDEOGRAPH-2F941 -2F942 CJK COMPATIBILITY IDEOGRAPH-2F942 -2F943 CJK COMPATIBILITY IDEOGRAPH-2F943 -2F944 CJK COMPATIBILITY IDEOGRAPH-2F944 -2F945 CJK COMPATIBILITY IDEOGRAPH-2F945 -2F946 CJK COMPATIBILITY IDEOGRAPH-2F946 -2F947 CJK COMPATIBILITY IDEOGRAPH-2F947 -2F948 CJK COMPATIBILITY IDEOGRAPH-2F948 -2F949 CJK COMPATIBILITY IDEOGRAPH-2F949 -2F94A CJK COMPATIBILITY IDEOGRAPH-2F94A -2F94B CJK COMPATIBILITY IDEOGRAPH-2F94B -2F94C CJK COMPATIBILITY IDEOGRAPH-2F94C -2F94D CJK COMPATIBILITY IDEOGRAPH-2F94D -2F94E CJK COMPATIBILITY IDEOGRAPH-2F94E -2F94F CJK COMPATIBILITY IDEOGRAPH-2F94F -2F950 CJK COMPATIBILITY IDEOGRAPH-2F950 -2F951 CJK COMPATIBILITY IDEOGRAPH-2F951 -2F952 CJK COMPATIBILITY IDEOGRAPH-2F952 -2F953 CJK COMPATIBILITY IDEOGRAPH-2F953 -2F954 CJK COMPATIBILITY IDEOGRAPH-2F954 -2F955 CJK COMPATIBILITY IDEOGRAPH-2F955 -2F956 CJK COMPATIBILITY IDEOGRAPH-2F956 -2F957 CJK COMPATIBILITY IDEOGRAPH-2F957 -2F958 CJK COMPATIBILITY IDEOGRAPH-2F958 -2F959 CJK COMPATIBILITY IDEOGRAPH-2F959 -2F95A CJK COMPATIBILITY IDEOGRAPH-2F95A -2F95B CJK COMPATIBILITY IDEOGRAPH-2F95B -2F95C CJK COMPATIBILITY IDEOGRAPH-2F95C -2F95D CJK COMPATIBILITY IDEOGRAPH-2F95D -2F95E CJK COMPATIBILITY IDEOGRAPH-2F95E -2F95F CJK COMPATIBILITY IDEOGRAPH-2F95F -2F960 CJK COMPATIBILITY IDEOGRAPH-2F960 -2F961 CJK COMPATIBILITY IDEOGRAPH-2F961 -2F962 CJK COMPATIBILITY IDEOGRAPH-2F962 -2F963 CJK COMPATIBILITY IDEOGRAPH-2F963 -2F964 CJK COMPATIBILITY IDEOGRAPH-2F964 -2F965 CJK COMPATIBILITY IDEOGRAPH-2F965 -2F966 CJK COMPATIBILITY IDEOGRAPH-2F966 -2F967 CJK COMPATIBILITY IDEOGRAPH-2F967 -2F968 CJK COMPATIBILITY IDEOGRAPH-2F968 -2F969 CJK COMPATIBILITY IDEOGRAPH-2F969 -2F96A CJK COMPATIBILITY IDEOGRAPH-2F96A -2F96B CJK COMPATIBILITY IDEOGRAPH-2F96B -2F96C CJK COMPATIBILITY IDEOGRAPH-2F96C -2F96D CJK COMPATIBILITY IDEOGRAPH-2F96D -2F96E CJK COMPATIBILITY IDEOGRAPH-2F96E -2F96F CJK COMPATIBILITY IDEOGRAPH-2F96F -2F970 CJK COMPATIBILITY IDEOGRAPH-2F970 -2F971 CJK COMPATIBILITY IDEOGRAPH-2F971 -2F972 CJK COMPATIBILITY IDEOGRAPH-2F972 -2F973 CJK COMPATIBILITY IDEOGRAPH-2F973 -2F974 CJK COMPATIBILITY IDEOGRAPH-2F974 -2F975 CJK COMPATIBILITY IDEOGRAPH-2F975 -2F976 CJK COMPATIBILITY IDEOGRAPH-2F976 -2F977 CJK COMPATIBILITY IDEOGRAPH-2F977 -2F978 CJK COMPATIBILITY IDEOGRAPH-2F978 -2F979 CJK COMPATIBILITY IDEOGRAPH-2F979 -2F97A CJK COMPATIBILITY IDEOGRAPH-2F97A -2F97B CJK COMPATIBILITY IDEOGRAPH-2F97B -2F97C CJK COMPATIBILITY IDEOGRAPH-2F97C -2F97D CJK COMPATIBILITY IDEOGRAPH-2F97D -2F97E CJK COMPATIBILITY IDEOGRAPH-2F97E -2F97F CJK COMPATIBILITY IDEOGRAPH-2F97F -2F980 CJK COMPATIBILITY IDEOGRAPH-2F980 -2F981 CJK COMPATIBILITY IDEOGRAPH-2F981 -2F982 CJK COMPATIBILITY IDEOGRAPH-2F982 -2F983 CJK COMPATIBILITY IDEOGRAPH-2F983 -2F984 CJK COMPATIBILITY IDEOGRAPH-2F984 -2F985 CJK COMPATIBILITY IDEOGRAPH-2F985 -2F986 CJK COMPATIBILITY IDEOGRAPH-2F986 -2F987 CJK COMPATIBILITY IDEOGRAPH-2F987 -2F988 CJK COMPATIBILITY IDEOGRAPH-2F988 -2F989 CJK COMPATIBILITY IDEOGRAPH-2F989 -2F98A CJK COMPATIBILITY IDEOGRAPH-2F98A -2F98B CJK COMPATIBILITY IDEOGRAPH-2F98B -2F98C CJK COMPATIBILITY IDEOGRAPH-2F98C -2F98D CJK COMPATIBILITY IDEOGRAPH-2F98D -2F98E CJK COMPATIBILITY IDEOGRAPH-2F98E -2F98F CJK COMPATIBILITY IDEOGRAPH-2F98F -2F990 CJK COMPATIBILITY IDEOGRAPH-2F990 -2F991 CJK COMPATIBILITY IDEOGRAPH-2F991 -2F992 CJK COMPATIBILITY IDEOGRAPH-2F992 -2F993 CJK COMPATIBILITY IDEOGRAPH-2F993 -2F994 CJK COMPATIBILITY IDEOGRAPH-2F994 -2F995 CJK COMPATIBILITY IDEOGRAPH-2F995 -2F996 CJK COMPATIBILITY IDEOGRAPH-2F996 -2F997 CJK COMPATIBILITY IDEOGRAPH-2F997 -2F998 CJK COMPATIBILITY IDEOGRAPH-2F998 -2F999 CJK COMPATIBILITY IDEOGRAPH-2F999 -2F99A CJK COMPATIBILITY IDEOGRAPH-2F99A -2F99B CJK COMPATIBILITY IDEOGRAPH-2F99B -2F99C CJK COMPATIBILITY IDEOGRAPH-2F99C -2F99D CJK COMPATIBILITY IDEOGRAPH-2F99D -2F99E CJK COMPATIBILITY IDEOGRAPH-2F99E -2F99F CJK COMPATIBILITY IDEOGRAPH-2F99F -2F9A0 CJK COMPATIBILITY IDEOGRAPH-2F9A0 -2F9A1 CJK COMPATIBILITY IDEOGRAPH-2F9A1 -2F9A2 CJK COMPATIBILITY IDEOGRAPH-2F9A2 -2F9A3 CJK COMPATIBILITY IDEOGRAPH-2F9A3 -2F9A4 CJK COMPATIBILITY IDEOGRAPH-2F9A4 -2F9A5 CJK COMPATIBILITY IDEOGRAPH-2F9A5 -2F9A6 CJK COMPATIBILITY IDEOGRAPH-2F9A6 -2F9A7 CJK COMPATIBILITY IDEOGRAPH-2F9A7 -2F9A8 CJK COMPATIBILITY IDEOGRAPH-2F9A8 -2F9A9 CJK COMPATIBILITY IDEOGRAPH-2F9A9 -2F9AA CJK COMPATIBILITY IDEOGRAPH-2F9AA -2F9AB CJK COMPATIBILITY IDEOGRAPH-2F9AB -2F9AC CJK COMPATIBILITY IDEOGRAPH-2F9AC -2F9AD CJK COMPATIBILITY IDEOGRAPH-2F9AD -2F9AE CJK COMPATIBILITY IDEOGRAPH-2F9AE -2F9AF CJK COMPATIBILITY IDEOGRAPH-2F9AF -2F9B0 CJK COMPATIBILITY IDEOGRAPH-2F9B0 -2F9B1 CJK COMPATIBILITY IDEOGRAPH-2F9B1 -2F9B2 CJK COMPATIBILITY IDEOGRAPH-2F9B2 -2F9B3 CJK COMPATIBILITY IDEOGRAPH-2F9B3 -2F9B4 CJK COMPATIBILITY IDEOGRAPH-2F9B4 -2F9B5 CJK COMPATIBILITY IDEOGRAPH-2F9B5 -2F9B6 CJK COMPATIBILITY IDEOGRAPH-2F9B6 -2F9B7 CJK COMPATIBILITY IDEOGRAPH-2F9B7 -2F9B8 CJK COMPATIBILITY IDEOGRAPH-2F9B8 -2F9B9 CJK COMPATIBILITY IDEOGRAPH-2F9B9 -2F9BA CJK COMPATIBILITY IDEOGRAPH-2F9BA -2F9BB CJK COMPATIBILITY IDEOGRAPH-2F9BB -2F9BC CJK COMPATIBILITY IDEOGRAPH-2F9BC -2F9BD CJK COMPATIBILITY IDEOGRAPH-2F9BD -2F9BE CJK COMPATIBILITY IDEOGRAPH-2F9BE -2F9BF CJK COMPATIBILITY IDEOGRAPH-2F9BF -2F9C0 CJK COMPATIBILITY IDEOGRAPH-2F9C0 -2F9C1 CJK COMPATIBILITY IDEOGRAPH-2F9C1 -2F9C2 CJK COMPATIBILITY IDEOGRAPH-2F9C2 -2F9C3 CJK COMPATIBILITY IDEOGRAPH-2F9C3 -2F9C4 CJK COMPATIBILITY IDEOGRAPH-2F9C4 -2F9C5 CJK COMPATIBILITY IDEOGRAPH-2F9C5 -2F9C6 CJK COMPATIBILITY IDEOGRAPH-2F9C6 -2F9C7 CJK COMPATIBILITY IDEOGRAPH-2F9C7 -2F9C8 CJK COMPATIBILITY IDEOGRAPH-2F9C8 -2F9C9 CJK COMPATIBILITY IDEOGRAPH-2F9C9 -2F9CA CJK COMPATIBILITY IDEOGRAPH-2F9CA -2F9CB CJK COMPATIBILITY IDEOGRAPH-2F9CB -2F9CC CJK COMPATIBILITY IDEOGRAPH-2F9CC -2F9CD CJK COMPATIBILITY IDEOGRAPH-2F9CD -2F9CE CJK COMPATIBILITY IDEOGRAPH-2F9CE -2F9CF CJK COMPATIBILITY IDEOGRAPH-2F9CF -2F9D0 CJK COMPATIBILITY IDEOGRAPH-2F9D0 -2F9D1 CJK COMPATIBILITY IDEOGRAPH-2F9D1 -2F9D2 CJK COMPATIBILITY IDEOGRAPH-2F9D2 -2F9D3 CJK COMPATIBILITY IDEOGRAPH-2F9D3 -2F9D4 CJK COMPATIBILITY IDEOGRAPH-2F9D4 -2F9D5 CJK COMPATIBILITY IDEOGRAPH-2F9D5 -2F9D6 CJK COMPATIBILITY IDEOGRAPH-2F9D6 -2F9D7 CJK COMPATIBILITY IDEOGRAPH-2F9D7 -2F9D8 CJK COMPATIBILITY IDEOGRAPH-2F9D8 -2F9D9 CJK COMPATIBILITY IDEOGRAPH-2F9D9 -2F9DA CJK COMPATIBILITY IDEOGRAPH-2F9DA -2F9DB CJK COMPATIBILITY IDEOGRAPH-2F9DB -2F9DC CJK COMPATIBILITY IDEOGRAPH-2F9DC -2F9DD CJK COMPATIBILITY IDEOGRAPH-2F9DD -2F9DE CJK COMPATIBILITY IDEOGRAPH-2F9DE -2F9DF CJK COMPATIBILITY IDEOGRAPH-2F9DF -2F9E0 CJK COMPATIBILITY IDEOGRAPH-2F9E0 -2F9E1 CJK COMPATIBILITY IDEOGRAPH-2F9E1 -2F9E2 CJK COMPATIBILITY IDEOGRAPH-2F9E2 -2F9E3 CJK COMPATIBILITY IDEOGRAPH-2F9E3 -2F9E4 CJK COMPATIBILITY IDEOGRAPH-2F9E4 -2F9E5 CJK COMPATIBILITY IDEOGRAPH-2F9E5 -2F9E6 CJK COMPATIBILITY IDEOGRAPH-2F9E6 -2F9E7 CJK COMPATIBILITY IDEOGRAPH-2F9E7 -2F9E8 CJK COMPATIBILITY IDEOGRAPH-2F9E8 -2F9E9 CJK COMPATIBILITY IDEOGRAPH-2F9E9 -2F9EA CJK COMPATIBILITY IDEOGRAPH-2F9EA -2F9EB CJK COMPATIBILITY IDEOGRAPH-2F9EB -2F9EC CJK COMPATIBILITY IDEOGRAPH-2F9EC -2F9ED CJK COMPATIBILITY IDEOGRAPH-2F9ED -2F9EE CJK COMPATIBILITY IDEOGRAPH-2F9EE -2F9EF CJK COMPATIBILITY IDEOGRAPH-2F9EF -2F9F0 CJK COMPATIBILITY IDEOGRAPH-2F9F0 -2F9F1 CJK COMPATIBILITY IDEOGRAPH-2F9F1 -2F9F2 CJK COMPATIBILITY IDEOGRAPH-2F9F2 -2F9F3 CJK COMPATIBILITY IDEOGRAPH-2F9F3 -2F9F4 CJK COMPATIBILITY IDEOGRAPH-2F9F4 -2F9F5 CJK COMPATIBILITY IDEOGRAPH-2F9F5 -2F9F6 CJK COMPATIBILITY IDEOGRAPH-2F9F6 -2F9F7 CJK COMPATIBILITY IDEOGRAPH-2F9F7 -2F9F8 CJK COMPATIBILITY IDEOGRAPH-2F9F8 -2F9F9 CJK COMPATIBILITY IDEOGRAPH-2F9F9 -2F9FA CJK COMPATIBILITY IDEOGRAPH-2F9FA -2F9FB CJK COMPATIBILITY IDEOGRAPH-2F9FB -2F9FC CJK COMPATIBILITY IDEOGRAPH-2F9FC -2F9FD CJK COMPATIBILITY IDEOGRAPH-2F9FD -2F9FE CJK COMPATIBILITY IDEOGRAPH-2F9FE -2F9FF CJK COMPATIBILITY IDEOGRAPH-2F9FF -2FA00 CJK COMPATIBILITY IDEOGRAPH-2FA00 -2FA01 CJK COMPATIBILITY IDEOGRAPH-2FA01 -2FA02 CJK COMPATIBILITY IDEOGRAPH-2FA02 -2FA03 CJK COMPATIBILITY IDEOGRAPH-2FA03 -2FA04 CJK COMPATIBILITY IDEOGRAPH-2FA04 -2FA05 CJK COMPATIBILITY IDEOGRAPH-2FA05 -2FA06 CJK COMPATIBILITY IDEOGRAPH-2FA06 -2FA07 CJK COMPATIBILITY IDEOGRAPH-2FA07 -2FA08 CJK COMPATIBILITY IDEOGRAPH-2FA08 -2FA09 CJK COMPATIBILITY IDEOGRAPH-2FA09 -2FA0A CJK COMPATIBILITY IDEOGRAPH-2FA0A -2FA0B CJK COMPATIBILITY IDEOGRAPH-2FA0B -2FA0C CJK COMPATIBILITY IDEOGRAPH-2FA0C -2FA0D CJK COMPATIBILITY IDEOGRAPH-2FA0D -2FA0E CJK COMPATIBILITY IDEOGRAPH-2FA0E -2FA0F CJK COMPATIBILITY IDEOGRAPH-2FA0F -2FA10 CJK COMPATIBILITY IDEOGRAPH-2FA10 -2FA11 CJK COMPATIBILITY IDEOGRAPH-2FA11 -2FA12 CJK COMPATIBILITY IDEOGRAPH-2FA12 -2FA13 CJK COMPATIBILITY IDEOGRAPH-2FA13 -2FA14 CJK COMPATIBILITY IDEOGRAPH-2FA14 -2FA15 CJK COMPATIBILITY IDEOGRAPH-2FA15 -2FA16 CJK COMPATIBILITY IDEOGRAPH-2FA16 -2FA17 CJK COMPATIBILITY IDEOGRAPH-2FA17 -2FA18 CJK COMPATIBILITY IDEOGRAPH-2FA18 -2FA19 CJK COMPATIBILITY IDEOGRAPH-2FA19 -2FA1A CJK COMPATIBILITY IDEOGRAPH-2FA1A -2FA1B CJK COMPATIBILITY IDEOGRAPH-2FA1B -2FA1C CJK COMPATIBILITY IDEOGRAPH-2FA1C -2FA1D CJK COMPATIBILITY IDEOGRAPH-2FA1D -E0001 LANGUAGE TAG -E0020 TAG SPACE -E0021 TAG EXCLAMATION MARK -E0022 TAG QUOTATION MARK -E0023 TAG NUMBER SIGN -E0024 TAG DOLLAR SIGN -E0025 TAG PERCENT SIGN -E0026 TAG AMPERSAND -E0027 TAG APOSTROPHE -E0028 TAG LEFT PARENTHESIS -E0029 TAG RIGHT PARENTHESIS -E002A TAG ASTERISK -E002B TAG PLUS SIGN -E002C TAG COMMA -E002D TAG HYPHEN-MINUS -E002E TAG FULL STOP -E002F TAG SOLIDUS -E0030 TAG DIGIT ZERO -E0031 TAG DIGIT ONE -E0032 TAG DIGIT TWO -E0033 TAG DIGIT THREE -E0034 TAG DIGIT FOUR -E0035 TAG DIGIT FIVE -E0036 TAG DIGIT SIX -E0037 TAG DIGIT SEVEN -E0038 TAG DIGIT EIGHT -E0039 TAG DIGIT NINE -E003A TAG COLON -E003B TAG SEMICOLON -E003C TAG LESS-THAN SIGN -E003D TAG EQUALS SIGN -E003E TAG GREATER-THAN SIGN -E003F TAG QUESTION MARK -E0040 TAG COMMERCIAL AT -E0041 TAG LATIN CAPITAL LETTER A -E0042 TAG LATIN CAPITAL LETTER B -E0043 TAG LATIN CAPITAL LETTER C -E0044 TAG LATIN CAPITAL LETTER D -E0045 TAG LATIN CAPITAL LETTER E -E0046 TAG LATIN CAPITAL LETTER F -E0047 TAG LATIN CAPITAL LETTER G -E0048 TAG LATIN CAPITAL LETTER H -E0049 TAG LATIN CAPITAL LETTER I -E004A TAG LATIN CAPITAL LETTER J -E004B TAG LATIN CAPITAL LETTER K -E004C TAG LATIN CAPITAL LETTER L -E004D TAG LATIN CAPITAL LETTER M -E004E TAG LATIN CAPITAL LETTER N -E004F TAG LATIN CAPITAL LETTER O -E0050 TAG LATIN CAPITAL LETTER P -E0051 TAG LATIN CAPITAL LETTER Q -E0052 TAG LATIN CAPITAL LETTER R -E0053 TAG LATIN CAPITAL LETTER S -E0054 TAG LATIN CAPITAL LETTER T -E0055 TAG LATIN CAPITAL LETTER U -E0056 TAG LATIN CAPITAL LETTER V -E0057 TAG LATIN CAPITAL LETTER W -E0058 TAG LATIN CAPITAL LETTER X -E0059 TAG LATIN CAPITAL LETTER Y -E005A TAG LATIN CAPITAL LETTER Z -E005B TAG LEFT SQUARE BRACKET -E005C TAG REVERSE SOLIDUS -E005D TAG RIGHT SQUARE BRACKET -E005E TAG CIRCUMFLEX ACCENT -E005F TAG LOW LINE -E0060 TAG GRAVE ACCENT -E0061 TAG LATIN SMALL LETTER A -E0062 TAG LATIN SMALL LETTER B -E0063 TAG LATIN SMALL LETTER C -E0064 TAG LATIN SMALL LETTER D -E0065 TAG LATIN SMALL LETTER E -E0066 TAG LATIN SMALL LETTER F -E0067 TAG LATIN SMALL LETTER G -E0068 TAG LATIN SMALL LETTER H -E0069 TAG LATIN SMALL LETTER I -E006A TAG LATIN SMALL LETTER J -E006B TAG LATIN SMALL LETTER K -E006C TAG LATIN SMALL LETTER L -E006D TAG LATIN SMALL LETTER M -E006E TAG LATIN SMALL LETTER N -E006F TAG LATIN SMALL LETTER O -E0070 TAG LATIN SMALL LETTER P -E0071 TAG LATIN SMALL LETTER Q -E0072 TAG LATIN SMALL LETTER R -E0073 TAG LATIN SMALL LETTER S -E0074 TAG LATIN SMALL LETTER T -E0075 TAG LATIN SMALL LETTER U -E0076 TAG LATIN SMALL LETTER V -E0077 TAG LATIN SMALL LETTER W -E0078 TAG LATIN SMALL LETTER X -E0079 TAG LATIN SMALL LETTER Y -E007A TAG LATIN SMALL LETTER Z -E007B TAG LEFT CURLY BRACKET -E007C TAG VERTICAL LINE -E007D TAG RIGHT CURLY BRACKET -E007E TAG TILDE -E007F CANCEL TAG -F0000 FFFFD Plane 15 Private Use -100000 10FFFD Plane 16 Private Use -END diff --git a/gnu/usr.bin/perl/lib/unicore/Number.pl b/gnu/usr.bin/perl/lib/unicore/Number.pl deleted file mode 100644 index 9bc4fd4663d..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/Number.pl +++ /dev/null @@ -1,537 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -return <<'END'; -0030 0 -0031 1 -0032 2 -0033 3 -0034 4 -0035 5 -0036 6 -0037 7 -0038 8 -0039 9 -00B2 2 -00B3 3 -00B9 1 -00BC 1/4 -00BD 1/2 -00BE 3/4 -0660 0 -0661 1 -0662 2 -0663 3 -0664 4 -0665 5 -0666 6 -0667 7 -0668 8 -0669 9 -06F0 0 -06F1 1 -06F2 2 -06F3 3 -06F4 4 -06F5 5 -06F6 6 -06F7 7 -06F8 8 -06F9 9 -0966 0 -0967 1 -0968 2 -0969 3 -096A 4 -096B 5 -096C 6 -096D 7 -096E 8 -096F 9 -09E6 0 -09E7 1 -09E8 2 -09E9 3 -09EA 4 -09EB 5 -09EC 6 -09ED 7 -09EE 8 -09EF 9 -09F4 1 -09F5 2 -09F6 3 -09F7 4 -09F9 16 -0A66 0 -0A67 1 -0A68 2 -0A69 3 -0A6A 4 -0A6B 5 -0A6C 6 -0A6D 7 -0A6E 8 -0A6F 9 -0AE6 0 -0AE7 1 -0AE8 2 -0AE9 3 -0AEA 4 -0AEB 5 -0AEC 6 -0AED 7 -0AEE 8 -0AEF 9 -0B66 0 -0B67 1 -0B68 2 -0B69 3 -0B6A 4 -0B6B 5 -0B6C 6 -0B6D 7 -0B6E 8 -0B6F 9 -0BE7 1 -0BE8 2 -0BE9 3 -0BEA 4 -0BEB 5 -0BEC 6 -0BED 7 -0BEE 8 -0BEF 9 -0BF0 10 -0BF1 100 -0BF2 1000 -0C66 0 -0C67 1 -0C68 2 -0C69 3 -0C6A 4 -0C6B 5 -0C6C 6 -0C6D 7 -0C6E 8 -0C6F 9 -0CE6 0 -0CE7 1 -0CE8 2 -0CE9 3 -0CEA 4 -0CEB 5 -0CEC 6 -0CED 7 -0CEE 8 -0CEF 9 -0D66 0 -0D67 1 -0D68 2 -0D69 3 -0D6A 4 -0D6B 5 -0D6C 6 -0D6D 7 -0D6E 8 -0D6F 9 -0E50 0 -0E51 1 -0E52 2 -0E53 3 -0E54 4 -0E55 5 -0E56 6 -0E57 7 -0E58 8 -0E59 9 -0ED0 0 -0ED1 1 -0ED2 2 -0ED3 3 -0ED4 4 -0ED5 5 -0ED6 6 -0ED7 7 -0ED8 8 -0ED9 9 -0F20 0 -0F21 1 -0F22 2 -0F23 3 -0F24 4 -0F25 5 -0F26 6 -0F27 7 -0F28 8 -0F29 9 -0F2A 1/2 -0F2B 3/2 -0F2C 5/2 -0F2D 7/2 -0F2E 9/2 -0F2F 11/2 -0F30 13/2 -0F31 15/2 -0F32 17/2 -0F33 -1/2 -1040 0 -1041 1 -1042 2 -1043 3 -1044 4 -1045 5 -1046 6 -1047 7 -1048 8 -1049 9 -1369 1 -136A 2 -136B 3 -136C 4 -136D 5 -136E 6 -136F 7 -1370 8 -1371 9 -1372 10 -1373 20 -1374 30 -1375 40 -1376 50 -1377 60 -1378 70 -1379 80 -137A 90 -137B 100 -137C 10000 -16EE 17 -16EF 18 -16F0 19 -17E0 0 -17E1 1 -17E2 2 -17E3 3 -17E4 4 -17E5 5 -17E6 6 -17E7 7 -17E8 8 -17E9 9 -1810 0 -1811 1 -1812 2 -1813 3 -1814 4 -1815 5 -1816 6 -1817 7 -1818 8 -1819 9 -2070 0 -2074 4 -2075 5 -2076 6 -2077 7 -2078 8 -2079 9 -2080 0 -2081 1 -2082 2 -2083 3 -2084 4 -2085 5 -2086 6 -2087 7 -2088 8 -2089 9 -2153 1/3 -2154 2/3 -2155 1/5 -2156 2/5 -2157 3/5 -2158 4/5 -2159 1/6 -215A 5/6 -215B 1/8 -215C 3/8 -215D 5/8 -215E 7/8 -215F 2160 1 -2161 2 -2162 3 -2163 4 -2164 5 -2165 6 -2166 7 -2167 8 -2168 9 -2169 10 -216A 11 -216B 12 -216C 50 -216D 100 -216E 500 -216F 1000 -2170 1 -2171 2 -2172 3 -2173 4 -2174 5 -2175 6 -2176 7 -2177 8 -2178 9 -2179 10 -217A 11 -217B 12 -217C 50 -217D 100 -217E 500 -217F 2180 1000 -2181 5000 -2182 10000 -2460 1 -2461 2 -2462 3 -2463 4 -2464 5 -2465 6 -2466 7 -2467 8 -2468 9 -2469 10 -246A 11 -246B 12 -246C 13 -246D 14 -246E 15 -246F 16 -2470 17 -2471 18 -2472 19 -2473 20 -2474 1 -2475 2 -2476 3 -2477 4 -2478 5 -2479 6 -247A 7 -247B 8 -247C 9 -247D 10 -247E 11 -247F 12 -2480 13 -2481 14 -2482 15 -2483 16 -2484 17 -2485 18 -2486 19 -2487 20 -2488 1 -2489 2 -248A 3 -248B 4 -248C 5 -248D 6 -248E 7 -248F 8 -2490 9 -2491 10 -2492 11 -2493 12 -2494 13 -2495 14 -2496 15 -2497 16 -2498 17 -2499 18 -249A 19 -249B 20 -24EA 0 -24EB 11 -24EC 12 -24ED 13 -24EE 14 -24EF 15 -24F0 16 -24F1 17 -24F2 18 -24F3 19 -24F4 20 -24F5 1 -24F6 2 -24F7 3 -24F8 4 -24F9 5 -24FA 6 -24FB 7 -24FC 8 -24FD 9 -24FE 10 -2776 1 -2777 2 -2778 3 -2779 4 -277A 5 -277B 6 -277C 7 -277D 8 -277E 9 -277F 10 -2780 1 -2781 2 -2782 3 -2783 4 -2784 5 -2785 6 -2786 7 -2787 8 -2788 9 -2789 10 -278A 1 -278B 2 -278C 3 -278D 4 -278E 5 -278F 6 -2790 7 -2791 8 -2792 9 -2793 10 -3007 0 -3021 1 -3022 2 -3023 3 -3024 4 -3025 5 -3026 6 -3027 7 -3028 8 -3029 9 -3038 10 -3039 20 -303A 30 -3192 1 -3193 2 -3194 3 -3195 4 -3220 1 -3221 2 -3222 3 -3223 4 -3224 5 -3225 6 -3226 7 -3227 8 -3228 9 -3229 10 -3251 21 -3252 22 -3253 23 -3254 24 -3255 25 -3256 26 -3257 27 -3258 28 -3259 29 -325A 30 -325B 31 -325C 32 -325D 33 -325E 34 -325F 35 -3280 1 -3281 2 -3282 3 -3283 4 -3284 5 -3285 6 -3286 7 -3287 8 -3288 9 -3289 10 -32B1 36 -32B2 37 -32B3 38 -32B4 39 -32B5 40 -32B6 41 -32B7 42 -32B8 43 -32B9 44 -32BA 45 -32BB 46 -32BC 47 -32BD 48 -32BE 49 -32BF 50 -FF10 0 -FF11 1 -FF12 2 -FF13 3 -FF14 4 -FF15 5 -FF16 6 -FF17 7 -FF18 8 -FF19 9 -10320 1 -10321 5 -10322 10 -10323 50 -1D7CE 0 -1D7CF 1 -1D7D0 2 -1D7D1 3 -1D7D2 4 -1D7D3 5 -1D7D4 6 -1D7D5 7 -1D7D6 8 -1D7D7 9 -1D7D8 0 -1D7D9 1 -1D7DA 2 -1D7DB 3 -1D7DC 4 -1D7DD 5 -1D7DE 6 -1D7DF 7 -1D7E0 8 -1D7E1 9 -1D7E2 0 -1D7E3 1 -1D7E4 2 -1D7E5 3 -1D7E6 4 -1D7E7 5 -1D7E8 6 -1D7E9 7 -1D7EA 8 -1D7EB 9 -1D7EC 0 -1D7ED 1 -1D7EE 2 -1D7EF 3 -1D7F0 4 -1D7F1 5 -1D7F2 6 -1D7F3 7 -1D7F4 8 -1D7F5 9 -1D7F6 0 -1D7F7 1 -1D7F8 2 -1D7F9 3 -1D7FA 4 -1D7FB 5 -1D7FC 6 -1D7FD 7 -1D7FE 8 -1D7FF 9 -END diff --git a/gnu/usr.bin/perl/lib/unicore/Properties b/gnu/usr.bin/perl/lib/unicore/Properties deleted file mode 100644 index 99e2fb87497..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/Properties +++ /dev/null @@ -1,330 +0,0 @@ -## -## This file created by ./mktables -## List of built-in \p{...}/\P{...} properties. -## -## '*' means name may be 'fuzzy' -## - - \p{ASCII} [[:ASCII:]] - \p{Alnum} [[:Alnum:]] -* \p{Alphabetic} [\p{L}\p{OtherAlphabetic}] - \p{Alpha} [[:Alpha:]] - \p{Any} Alias for \p{Any} ([\x{0000}-\x{10FFFF}]) - \p{Any} [\x{0000}-\x{10FFFF}] -* \p{Arabic} Script 'ARABIC' -* \p{Armenian} Script 'ARMENIAN' -* \p{AsciiHexDigit} Extended property 'ASCII_Hex_Digit' - \p{Assigned} All assigned code points -* \p{Bengali} Script 'BENGALI' - \p{BidiAL} Bi-directional category 'AL' - \p{BidiAN} Bi-directional category 'AN' - \p{BidiBN} Bi-directional category 'BN' - \p{BidiB} Bi-directional category 'B' - \p{BidiCS} Bi-directional category 'CS' -* \p{BidiControl} Extended property 'Bidi_Control' - \p{BidiEN} Bi-directional category 'EN' - \p{BidiES} Bi-directional category 'ES' - \p{BidiET} Bi-directional category 'ET' - \p{BidiLRE} Bi-directional category 'LRE' - \p{BidiLRO} Bi-directional category 'LRO' - \p{BidiL} Bi-directional category 'L' - \p{BidiNSM} Bi-directional category 'NSM' - \p{BidiON} Bi-directional category 'ON' - \p{BidiPDF} Bi-directional category 'PDF' - \p{BidiRLE} Bi-directional category 'RLE' - \p{BidiRLO} Bi-directional category 'RLO' - \p{BidiR} Bi-directional category 'R' - \p{BidiS} Bi-directional category 'S' - \p{BidiWS} Bi-directional category 'WS' - \p{Blank} [[:Blank:]] -* \p{Bopomofo} Script 'BOPOMOFO' -* \p{Buhid} Script 'BUHID' -* \p{CanadianAboriginal} Script 'CANADIAN_ABORIGINAL' - \p{Canon} Decomposes to multiple characters -* \p{Cc} Alias for \p{Cc} (General Category 'Cc') - \p{Cc} General Category 'Cc' -* \p{Cf} Alias for \p{Cf} (General Category 'Cf') - \p{Cf} General Category 'Cf' -* \p{Cherokee} Script 'CHEROKEE' - \p{Cntrl} [[:Cntrl:]] -* \p{Cn} Alias for \p{Cn} (General Category 'Cn' [not functional in Perl]) - \p{Cn} General Category 'Cn' [not functional in Perl] -* \p{Common} Pseudo-Script of codepoints not in other Unicode scripts - \p{Compat} Compatible with a more-basic character -* \p{Co} Alias for \p{Co} (General Category 'Co') - \p{Co} General Category 'Co' -* \p{Cs} Alias for \p{Cs} (General Category 'Cs') - \p{Cs} General Category 'Cs' -* \p{Cyrillic} Script 'CYRILLIC' -* \p{C} Alias for \p{C} (Major Category 'C') - \p{C} Major Category 'C' - \p{DCcircle} Compatible with 'circle' - \p{DCcompat} Compatible with 'compat' - \p{DCfinal} Compatible with 'final' - \p{DCfont} Compatible with 'font' - \p{DCfraction} Compatible with 'fraction' - \p{DCinitial} Compatible with 'initial' - \p{DCisolated} Compatible with 'isolated' - \p{DCmedial} Compatible with 'medial' - \p{DCnarrow} Compatible with 'narrow' - \p{DCnoBreak} Compatible with 'noBreak' - \p{DCsmall} Compatible with 'small' - \p{DCsquare} Compatible with 'square' - \p{DCsub} Compatible with 'sub' - \p{DCsuper} Compatible with 'super' - \p{DCvertical} Compatible with 'vertical' - \p{DCwide} Compatible with 'wide' -* \p{Dash} Extended property 'Dash' -* \p{Deprecated} Extended property 'Deprecated' -* \p{Deseret} Script 'DESERET' -* \p{Devanagari} Script 'DEVANAGARI' -* \p{Diacritic} Extended property 'Diacritic' - \p{Digit} [[:Digit:]] -* \p{Ethiopic} Script 'ETHIOPIC' -* \p{Extender} Extended property 'Extender' -* \p{Georgian} Script 'GEORGIAN' -* \p{Gothic} Script 'GOTHIC' -* \p{GraphemeLink} Extended property 'Grapheme_Link' - \p{Graph} [[:Graph:]] -* \p{Greek} Script 'GREEK' -* \p{Gujarati} Script 'GUJARATI' -* \p{Gurmukhi} Script 'GURMUKHI' -* \p{Hangul} Script 'HANGUL' -* \p{Hanunoo} Script 'HANUNOO' -* \p{Han} Script 'HAN' -* \p{Hebrew} Script 'HEBREW' -* \p{HexDigit} Extended property 'Hex_Digit' -* \p{Hiragana} Script 'HIRAGANA' -* \p{Hyphen} Extended property 'Hyphen' -* \p{IdContinue} [\p{ID_Start}\p{Mn}\p{Mc}\p{Nd}\p{Pc}] -* \p{IdStart} [\p{Ll}\p{Lu}\p{Lt}\p{Lm}\p{Lo}\p{Nl}] -* \p{Ideographic} Extended property 'Ideographic' -* \p{IdsBinaryOperator} Extended property 'IDS_Binary_Operator' -* \p{IdsTrinaryOperator} Extended property 'IDS_Trinary_Operator' -* \p{InAlphabeticPresentationForms} Block 'Alphabetic Presentation Forms' -* \p{InArabicPresentationFormsA} Block 'Arabic Presentation Forms-A' -* \p{InArabicPresentationFormsB} Block 'Arabic Presentation Forms-B' -* \p{InArabic} Block 'Arabic' -* \p{InArmenian} Block 'Armenian' -* \p{InArrows} Block 'Arrows' -* \p{InBasicLatin} Block 'Basic Latin' -* \p{InBengali} Block 'Bengali' -* \p{InBlockElements} Block 'Block Elements' -* \p{InBopomofoExtended} Block 'Bopomofo Extended' -* \p{InBopomofo} Block 'Bopomofo' -* \p{InBoxDrawing} Block 'Box Drawing' -* \p{InBraillePatterns} Block 'Braille Patterns' -* \p{InBuhid} Block 'Buhid' -* \p{InByzantineMusicalSymbols} Block 'Byzantine Musical Symbols' -* \p{InCherokee} Block 'Cherokee' -* \p{InCjkCompatibilityForms} Block 'CJK Compatibility Forms' -* \p{InCjkCompatibilityIdeographsSupplement} Block 'CJK Compatibility Ideographs Supplement' -* \p{InCjkCompatibilityIdeographs} Block 'CJK Compatibility Ideographs' -* \p{InCjkCompatibility} Block 'CJK Compatibility' -* \p{InCjkRadicalsSupplement} Block 'CJK Radicals Supplement' -* \p{InCjkSymbolsAndPunctuation} Block 'CJK Symbols and Punctuation' -* \p{InCjkUnifiedIdeographsExtensionA} Block 'CJK Unified Ideographs Extension A' -* \p{InCjkUnifiedIdeographsExtensionB} Block 'CJK Unified Ideographs Extension B' -* \p{InCjkUnifiedIdeographs} Block 'CJK Unified Ideographs' -* \p{InCombiningDiacriticalMarksForSymbols} Block 'Combining Diacritical Marks for Symbols' -* \p{InCombiningDiacriticalMarks} Block 'Combining Diacritical Marks' -* \p{InCombiningHalfMarks} Block 'Combining Half Marks' -* \p{InControlPictures} Block 'Control Pictures' -* \p{InCurrencySymbols} Block 'Currency Symbols' -* \p{InCyrillicSupplementary} Block 'Cyrillic Supplementary' -* \p{InCyrillic} Block 'Cyrillic' -* \p{InDeseret} Block 'Deseret' -* \p{InDevanagari} Block 'Devanagari' -* \p{InDingbats} Block 'Dingbats' -* \p{InEnclosedAlphanumerics} Block 'Enclosed Alphanumerics' -* \p{InEnclosedCjkLettersAndMonths} Block 'Enclosed CJK Letters and Months' -* \p{InEthiopic} Block 'Ethiopic' -* \p{InGeneralPunctuation} Block 'General Punctuation' -* \p{InGeometricShapes} Block 'Geometric Shapes' -* \p{InGeorgian} Block 'Georgian' -* \p{InGothic} Block 'Gothic' -* \p{InGreekAndCoptic} Block 'Greek and Coptic' -* \p{InGreekExtended} Block 'Greek Extended' -* \p{InGujarati} Block 'Gujarati' -* \p{InGurmukhi} Block 'Gurmukhi' -* \p{InHalfwidthAndFullwidthForms} Block 'Halfwidth and Fullwidth Forms' -* \p{InHangulCompatibilityJamo} Block 'Hangul Compatibility Jamo' -* \p{InHangulJamo} Block 'Hangul Jamo' -* \p{InHangulSyllables} Block 'Hangul Syllables' -* \p{InHanunoo} Block 'Hanunoo' -* \p{InHebrew} Block 'Hebrew' -* \p{InHighPrivateUseSurrogates} Block 'High Private Use Surrogates' -* \p{InHighSurrogates} Block 'High Surrogates' -* \p{InHiragana} Block 'Hiragana' -* \p{InIdeographicDescriptionCharacters} Block 'Ideographic Description Characters' -* \p{InIpaExtensions} Block 'IPA Extensions' -* \p{InKanbun} Block 'Kanbun' -* \p{InKangxiRadicals} Block 'Kangxi Radicals' -* \p{InKannada} Block 'Kannada' -* \p{InKatakanaPhoneticExtensions} Block 'Katakana Phonetic Extensions' -* \p{InKatakana} Block 'Katakana' -* \p{InKhmer} Block 'Khmer' -* \p{InLao} Block 'Lao' -* \p{InLatin1Supplement} Block 'Latin-1 Supplement' -* \p{InLatinExtendedAdditional} Block 'Latin Extended Additional' -* \p{InLatinExtendedA} Block 'Latin Extended-A' -* \p{InLatinExtendedB} Block 'Latin Extended-B' -* \p{InLetterlikeSymbols} Block 'Letterlike Symbols' -* \p{InLowSurrogates} Block 'Low Surrogates' -* \p{InMalayalam} Block 'Malayalam' -* \p{InMathematicalAlphanumericSymbols} Block 'Mathematical Alphanumeric Symbols' -* \p{InMathematicalOperators} Block 'Mathematical Operators' -* \p{InMiscellaneousMathematicalSymbolsA} Block 'Miscellaneous Mathematical Symbols-A' -* \p{InMiscellaneousMathematicalSymbolsB} Block 'Miscellaneous Mathematical Symbols-B' -* \p{InMiscellaneousSymbols} Block 'Miscellaneous Symbols' -* \p{InMiscellaneousTechnical} Block 'Miscellaneous Technical' -* \p{InMongolian} Block 'Mongolian' -* \p{InMusicalSymbols} Block 'Musical Symbols' -* \p{InMyanmar} Block 'Myanmar' -* \p{InNumberForms} Block 'Number Forms' -* \p{InOgham} Block 'Ogham' -* \p{InOldItalic} Block 'Old Italic' -* \p{InOpticalCharacterRecognition} Block 'Optical Character Recognition' -* \p{InOriya} Block 'Oriya' -* \p{InPrivateUseArea} Block 'Private Use Area' -* \p{InRunic} Block 'Runic' -* \p{InSinhala} Block 'Sinhala' -* \p{InSmallFormVariants} Block 'Small Form Variants' -* \p{InSpacingModifierLetters} Block 'Spacing Modifier Letters' -* \p{InSpecials} Block 'Specials' -* \p{InSuperscriptsAndSubscripts} Block 'Superscripts and Subscripts' -* \p{InSupplementalArrowsA} Block 'Supplemental Arrows-A' -* \p{InSupplementalArrowsB} Block 'Supplemental Arrows-B' -* \p{InSupplementalMathematicalOperators} Block 'Supplemental Mathematical Operators' -* \p{InSupplementaryPrivateUseAreaA} Block 'Supplementary Private Use Area-A' -* \p{InSupplementaryPrivateUseAreaB} Block 'Supplementary Private Use Area-B' -* \p{InSyriac} Block 'Syriac' -* \p{InTagalog} Block 'Tagalog' -* \p{InTagbanwa} Block 'Tagbanwa' -* \p{InTags} Block 'Tags' -* \p{InTamil} Block 'Tamil' -* \p{InTelugu} Block 'Telugu' -* \p{InThaana} Block 'Thaana' -* \p{InThai} Block 'Thai' -* \p{InTibetan} Block 'Tibetan' -* \p{InUnifiedCanadianAboriginalSyllabics} Block 'Unified Canadian Aboriginal Syllabics' -* \p{InVariationSelectors} Block 'Variation Selectors' -* \p{InYiRadicals} Block 'Yi Radicals' -* \p{InYiSyllables} Block 'Yi Syllables' -* \p{Inherited} Script 'INHERITED' -* \p{JoinControl} Extended property 'Join_Control' -* \p{Kannada} Script 'KANNADA' -* \p{Katakana} Script 'KATAKANA' -* \p{Khmer} Script 'KHMER' - \p{L&} [\p{Ll}\p{Lu}\p{Lt}] -* \p{Lao} Script 'LAO' -* \p{Latin} Script 'LATIN' -* \p{Ll} Alias for \p{Ll} (General Category 'Ll') - \p{Ll} General Category 'Ll' -* \p{Lm} Alias for \p{Lm} (General Category 'Lm') - \p{Lm} General Category 'Lm' -* \p{LogicalOrderException} Extended property 'Logical_Order_Exception' -* \p{Lowercase} [\p{Ll}\p{OtherLowercase}] - \p{Lower} [[:Lower:]] -* \p{Lo} Alias for \p{Lo} (General Category 'Lo') - \p{Lo} General Category 'Lo' -* \p{Lt} Alias for \p{Lt} (General Category 'Lt') - \p{Lt} General Category 'Lt' -* \p{Lu} Alias for \p{Lu} (General Category 'Lu') - \p{Lu} General Category 'Lu' -* \p{L} Alias for \p{L} (Major Category 'L') - \p{L} Major Category 'L' -* \p{Malayalam} Script 'MALAYALAM' -* \p{Math} [\p{Sm}\p{OtherMath}] -* \p{Mc} Alias for \p{Mc} (General Category 'Mc') - \p{Mc} General Category 'Mc' -* \p{Me} Alias for \p{Me} (General Category 'Me') - \p{Me} General Category 'Me' - \p{Mirrored} Mirrored in bidirectional text -* \p{Mn} Alias for \p{Mn} (General Category 'Mn') - \p{Mn} General Category 'Mn' -* \p{Mongolian} Script 'MONGOLIAN' -* \p{Myanmar} Script 'MYANMAR' -* \p{M} Alias for \p{M} (Major Category 'M') - \p{M} Major Category 'M' -* \p{Nd} Alias for \p{Nd} (General Category 'Nd') - \p{Nd} General Category 'Nd' -* \p{Nl} Alias for \p{Nl} (General Category 'Nl') - \p{Nl} General Category 'Nl' -* \p{NoncharacterCodePoint} Extended property 'Noncharacter_Code_Point' -* \p{No} Alias for \p{No} (General Category 'No') - \p{No} General Category 'No' -* \p{N} Alias for \p{N} (Major Category 'N') - \p{N} Major Category 'N' -* \p{Ogham} Script 'OGHAM' -* \p{OldItalic} Script 'OLD_ITALIC' -* \p{Oriya} Script 'ORIYA' -* \p{OtherAlphabetic} Extended property 'Other_Alphabetic' -* \p{OtherDefaultIgnorableCodePoint} Extended property 'Other_Default_Ignorable_Code_Point' -* \p{OtherGraphemeExtend} Extended property 'Other_Grapheme_Extend' -* \p{OtherLowercase} Extended property 'Other_Lowercase' -* \p{OtherMath} Extended property 'Other_Math' -* \p{OtherUppercase} Extended property 'Other_Uppercase' -* \p{Pc} Alias for \p{Pc} (General Category 'Pc') - \p{Pc} General Category 'Pc' -* \p{Pd} Alias for \p{Pd} (General Category 'Pd') - \p{Pd} General Category 'Pd' -* \p{Pe} Alias for \p{Pe} (General Category 'Pe') - \p{Pe} General Category 'Pe' -* \p{Pf} Alias for \p{Pf} (General Category 'Pf') - \p{Pf} General Category 'Pf' -* \p{Pi} Alias for \p{Pi} (General Category 'Pi') - \p{Pi} General Category 'Pi' -* \p{Po} Alias for \p{Po} (General Category 'Po') - \p{Po} General Category 'Po' - \p{Print} [[:Print:]] -* \p{Ps} Alias for \p{Ps} (General Category 'Ps') - \p{Ps} General Category 'Ps' - \p{Punct} [[:Punct:]] -* \p{P} Alias for \p{P} (Major Category 'P') - \p{P} Major Category 'P' -* \p{QuotationMark} Extended property 'Quotation_Mark' -* \p{Radical} Extended property 'Radical' -* \p{Runic} Script 'RUNIC' -* \p{Sc} Alias for \p{Sc} (General Category 'Sc') - \p{Sc} General Category 'Sc' -* \p{Sinhala} Script 'SINHALA' -* \p{Sk} Alias for \p{Sk} (General Category 'Sk') - \p{Sk} General Category 'Sk' -* \p{Sm} Alias for \p{Sm} (General Category 'Sm') - \p{Sm} General Category 'Sm' -* \p{SoftDotted} Extended property 'Soft_Dotted' -* \p{So} Alias for \p{So} (General Category 'So') - \p{So} General Category 'So' - \p{SpacePerl} \s - \p{Space} [[:Space:]] -* \p{Syriac} Script 'SYRIAC' -* \p{S} Alias for \p{S} (Major Category 'S') - \p{S} Major Category 'S' -* \p{Tagalog} Script 'TAGALOG' -* \p{Tagbanwa} Script 'TAGBANWA' -* \p{Tamil} Script 'TAMIL' -* \p{Telugu} Script 'TELUGU' -* \p{TerminalPunctuation} Extended property 'Terminal_Punctuation' -* \p{Thaana} Script 'THAANA' -* \p{Thai} Script 'THAI' -* \p{Tibetan} Script 'TIBETAN' - \p{Title} [[:Title:]] -* \p{UnifiedIdeograph} Extended property 'Unified_Ideograph' -* \p{Uppercase} [\p{Lu}\p{Other_Uppercase}] - \p{Upper} [[:Upper:]] -* \p{WhiteSpace} Extended property 'White_Space' - \p{Word} [[:Word:]] - \p{XDigit} [[:XDigit:]] -* \p{Yi} Script 'YI' -* \p{Zl} Alias for \p{Zl} (General Category 'Zl') - \p{Zl} General Category 'Zl' -* \p{Zp} Alias for \p{Zp} (General Category 'Zp') - \p{Zp} General Category 'Zp' -* \p{Zs} Alias for \p{Zs} (General Category 'Zs') - \p{Zs} General Category 'Zs' -* \p{Z} Alias for \p{Z} (Major Category 'Z') - \p{Z} Major Category 'Z' - \p{_CanonDCIJ} (for internal casefolding use) - \p{_CaseIgnorable} (for internal casefolding use) - \p{_CombAbove} (for internal casefolding use) diff --git a/gnu/usr.bin/perl/lib/unicore/Scripts.pl b/gnu/usr.bin/perl/lib/unicore/Scripts.pl deleted file mode 100644 index 4c99f029cc3..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/Scripts.pl +++ /dev/null @@ -1,371 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -return <<'END'; -0041 005A LATIN -0061 007A LATIN -00AA LATIN -00B5 GREEK -00BA LATIN -00C0 00D6 LATIN -00D8 00F6 LATIN -00F8 0220 LATIN -0222 0233 LATIN -0250 02AD LATIN -02B0 02B8 LATIN -02E0 02E4 LATIN -0300 034F INHERITED -0360 036F INHERITED -037A GREEK -0386 GREEK -0388 038A GREEK -038C GREEK -038E 03A1 GREEK -03A3 03CE GREEK -03D0 03F5 GREEK -0400 0481 CYRILLIC -0483 0486 CYRILLIC -0488 0489 INHERITED -048A 04CE CYRILLIC -04D0 04F5 CYRILLIC -04F8 04F9 CYRILLIC -0500 050F CYRILLIC -0531 0556 ARMENIAN -0559 ARMENIAN -0561 0587 ARMENIAN -0591 05A1 INHERITED -05A3 05B9 INHERITED -05BB 05BD INHERITED -05BF INHERITED -05C1 05C2 INHERITED -05C4 INHERITED -05D0 05EA HEBREW -05F0 05F2 HEBREW -0621 063A ARABIC -0641 064A ARABIC -064B 0655 INHERITED -066E 066F ARABIC -0670 INHERITED -0671 06D3 ARABIC -06D5 ARABIC -06D6 06E4 INHERITED -06E5 06E6 ARABIC -06E7 06E8 INHERITED -06EA 06ED INHERITED -06FA 06FC ARABIC -0710 072C SYRIAC -0730 074A SYRIAC -0780 07B1 THAANA -0901 0903 DEVANAGARI -0905 0939 DEVANAGARI -093C 094D DEVANAGARI -0950 0954 DEVANAGARI -0958 0963 DEVANAGARI -0966 096F DEVANAGARI -0981 0983 BENGALI -0985 098C BENGALI -098F 0990 BENGALI -0993 09A8 BENGALI -09AA 09B0 BENGALI -09B2 BENGALI -09B6 09B9 BENGALI -09BC BENGALI -09BE 09C4 BENGALI -09C7 09C8 BENGALI -09CB 09CD BENGALI -09D7 BENGALI -09DC 09DD BENGALI -09DF 09E3 BENGALI -09E6 09F1 BENGALI -0A02 GURMUKHI -0A05 0A0A GURMUKHI -0A0F 0A10 GURMUKHI -0A13 0A28 GURMUKHI -0A2A 0A30 GURMUKHI -0A32 0A33 GURMUKHI -0A35 0A36 GURMUKHI -0A38 0A39 GURMUKHI -0A3C GURMUKHI -0A3E 0A42 GURMUKHI -0A47 0A48 GURMUKHI -0A4B 0A4D GURMUKHI -0A59 0A5C GURMUKHI -0A5E GURMUKHI -0A66 0A74 GURMUKHI -0A81 0A83 GUJARATI -0A85 0A8B GUJARATI -0A8D GUJARATI -0A8F 0A91 GUJARATI -0A93 0AA8 GUJARATI -0AAA 0AB0 GUJARATI -0AB2 0AB3 GUJARATI -0AB5 0AB9 GUJARATI -0ABC 0AC5 GUJARATI -0AC7 0AC9 GUJARATI -0ACB 0ACD GUJARATI -0AD0 GUJARATI -0AE0 GUJARATI -0AE6 0AEF GUJARATI -0B01 0B03 ORIYA -0B05 0B0C ORIYA -0B0F 0B10 ORIYA -0B13 0B28 ORIYA -0B2A 0B30 ORIYA -0B32 0B33 ORIYA -0B36 0B39 ORIYA -0B3C 0B43 ORIYA -0B47 0B48 ORIYA -0B4B 0B4D ORIYA -0B56 0B57 ORIYA -0B5C 0B5D ORIYA -0B5F 0B61 ORIYA -0B66 0B6F ORIYA -0B82 0B83 TAMIL -0B85 0B8A TAMIL -0B8E 0B90 TAMIL -0B92 0B95 TAMIL -0B99 0B9A TAMIL -0B9C TAMIL -0B9E 0B9F TAMIL -0BA3 0BA4 TAMIL -0BA8 0BAA TAMIL -0BAE 0BB5 TAMIL -0BB7 0BB9 TAMIL -0BBE 0BC2 TAMIL -0BC6 0BC8 TAMIL -0BCA 0BCD TAMIL -0BD7 TAMIL -0BE7 0BF2 TAMIL -0C01 0C03 TELUGU -0C05 0C0C TELUGU -0C0E 0C10 TELUGU -0C12 0C28 TELUGU -0C2A 0C33 TELUGU -0C35 0C39 TELUGU -0C3E 0C44 TELUGU -0C46 0C48 TELUGU -0C4A 0C4D TELUGU -0C55 0C56 TELUGU -0C60 0C61 TELUGU -0C66 0C6F TELUGU -0C82 0C83 KANNADA -0C85 0C8C KANNADA -0C8E 0C90 KANNADA -0C92 0CA8 KANNADA -0CAA 0CB3 KANNADA -0CB5 0CB9 KANNADA -0CBE 0CC4 KANNADA -0CC6 0CC8 KANNADA -0CCA 0CCD KANNADA -0CD5 0CD6 KANNADA -0CDE KANNADA -0CE0 0CE1 KANNADA -0CE6 0CEF KANNADA -0D02 0D03 MALAYALAM -0D05 0D0C MALAYALAM -0D0E 0D10 MALAYALAM -0D12 0D28 MALAYALAM -0D2A 0D39 MALAYALAM -0D3E 0D43 MALAYALAM -0D46 0D48 MALAYALAM -0D4A 0D4D MALAYALAM -0D57 MALAYALAM -0D60 0D61 MALAYALAM -0D66 0D6F MALAYALAM -0D82 0D83 SINHALA -0D85 0D96 SINHALA -0D9A 0DB1 SINHALA -0DB3 0DBB SINHALA -0DBD SINHALA -0DC0 0DC6 SINHALA -0DCA SINHALA -0DCF 0DD4 SINHALA -0DD6 SINHALA -0DD8 0DDF SINHALA -0DF2 0DF3 SINHALA -0E01 0E3A THAI -0E40 0E4E THAI -0E50 0E59 THAI -0E81 0E82 LAO -0E84 LAO -0E87 0E88 LAO -0E8A LAO -0E8D LAO -0E94 0E97 LAO -0E99 0E9F LAO -0EA1 0EA3 LAO -0EA5 LAO -0EA7 LAO -0EAA 0EAB LAO -0EAD 0EB9 LAO -0EBB 0EBD LAO -0EC0 0EC4 LAO -0EC6 LAO -0EC8 0ECD LAO -0ED0 0ED9 LAO -0EDC 0EDD LAO -0F00 TIBETAN -0F18 0F19 TIBETAN -0F20 0F33 TIBETAN -0F35 TIBETAN -0F37 TIBETAN -0F39 TIBETAN -0F40 0F47 TIBETAN -0F49 0F6A TIBETAN -0F71 0F84 TIBETAN -0F86 0F8B TIBETAN -0F90 0F97 TIBETAN -0F99 0FBC TIBETAN -0FC6 TIBETAN -1000 1021 MYANMAR -1023 1027 MYANMAR -1029 102A MYANMAR -102C 1032 MYANMAR -1036 1039 MYANMAR -1040 1049 MYANMAR -1050 1059 MYANMAR -10A0 10C5 GEORGIAN -10D0 10F8 GEORGIAN -1100 1159 HANGUL -115F 11A2 HANGUL -11A8 11F9 HANGUL -1200 1206 ETHIOPIC -1208 1246 ETHIOPIC -1248 ETHIOPIC -124A 124D ETHIOPIC -1250 1256 ETHIOPIC -1258 ETHIOPIC -125A 125D ETHIOPIC -1260 1286 ETHIOPIC -1288 ETHIOPIC -128A 128D ETHIOPIC -1290 12AE ETHIOPIC -12B0 ETHIOPIC -12B2 12B5 ETHIOPIC -12B8 12BE ETHIOPIC -12C0 ETHIOPIC -12C2 12C5 ETHIOPIC -12C8 12CE ETHIOPIC -12D0 12D6 ETHIOPIC -12D8 12EE ETHIOPIC -12F0 130E ETHIOPIC -1310 ETHIOPIC -1312 1315 ETHIOPIC -1318 131E ETHIOPIC -1320 1346 ETHIOPIC -1348 135A ETHIOPIC -1369 137C ETHIOPIC -13A0 13F4 CHEROKEE -1401 166C CANADIAN_ABORIGINAL -166F 1676 CANADIAN_ABORIGINAL -1681 169A OGHAM -16A0 16EA RUNIC -16EE 16F0 RUNIC -1700 170C TAGALOG -170E 1714 TAGALOG -1720 1734 HANUNOO -1740 1753 BUHID -1760 176C TAGBANWA -176E 1770 TAGBANWA -1772 1773 TAGBANWA -1780 17D3 KHMER -17E0 17E9 KHMER -180B 180D INHERITED -1810 1819 MONGOLIAN -1820 1877 MONGOLIAN -1880 18A9 MONGOLIAN -1E00 1E9B LATIN -1EA0 1EF9 LATIN -1F00 1F15 GREEK -1F18 1F1D GREEK -1F20 1F45 GREEK -1F48 1F4D GREEK -1F50 1F57 GREEK -1F59 GREEK -1F5B GREEK -1F5D GREEK -1F5F 1F7D GREEK -1F80 1FB4 GREEK -1FB6 1FBC GREEK -1FBE GREEK -1FC2 1FC4 GREEK -1FC6 1FCC GREEK -1FD0 1FD3 GREEK -1FD6 1FDB GREEK -1FE0 1FEC GREEK -1FF2 1FF4 GREEK -1FF6 1FFC GREEK -2071 LATIN -207F LATIN -20D0 20EA INHERITED -2126 GREEK -212A 212B LATIN -2E80 2E99 HAN -2E9B 2EF3 HAN -2F00 2FD5 HAN -3005 HAN -3007 HAN -3021 3029 HAN -302A 302F INHERITED -3038 303B HAN -3041 3096 HIRAGANA -3099 309A INHERITED -309D 309F HIRAGANA -30A1 30FA KATAKANA -30FD 30FF KATAKANA -3105 312C BOPOMOFO -3131 318E HANGUL -31A0 31B7 BOPOMOFO -31F0 31FF KATAKANA -3400 4DB5 HAN -4E00 9FA5 HAN -A000 A48C YI -A490 A4A1 YI -A4A4 A4B3 YI -A4B5 A4C0 YI -A4C2 A4C4 YI -A4C6 YI -AC00 D7A3 HANGUL -F900 FA2D HAN -FA30 FA6A HAN -FB00 FB06 LATIN -FB13 FB17 ARMENIAN -FB1D HEBREW -FB1E INHERITED -FB1F FB28 HEBREW -FB2A FB36 HEBREW -FB38 FB3C HEBREW -FB3E HEBREW -FB40 FB41 HEBREW -FB43 FB44 HEBREW -FB46 FB4F HEBREW -FB50 FBB1 ARABIC -FBD3 FD3D ARABIC -FD50 FD8F ARABIC -FD92 FDC7 ARABIC -FDF0 FDFB ARABIC -FE00 FE0F INHERITED -FE20 FE23 INHERITED -FE70 FE74 ARABIC -FE76 FEFC ARABIC -FF21 FF3A LATIN -FF41 FF5A LATIN -FF66 FF6F KATAKANA -FF71 FF9D KATAKANA -FFA0 FFBE HANGUL -FFC2 FFC7 HANGUL -FFCA FFCF HANGUL -FFD2 FFD7 HANGUL -FFDA FFDC HANGUL -10300 1031E OLD_ITALIC -10330 1034A GOTHIC -10400 10425 DESERET -10428 1044D DESERET -1D167 1D169 INHERITED -1D17B 1D182 INHERITED -1D185 1D18B INHERITED -1D1AA 1D1AD INHERITED -20000 2A6D6 HAN -2F800 2FA1D HAN -END diff --git a/gnu/usr.bin/perl/lib/unicore/To/Digit.pl b/gnu/usr.bin/perl/lib/unicore/To/Digit.pl deleted file mode 100644 index e5c0ff429ea..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/To/Digit.pl +++ /dev/null @@ -1,274 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -return <<'END'; -0030 0 -0031 1 -0032 2 -0033 3 -0034 4 -0035 5 -0036 6 -0037 7 -0038 8 -0039 9 -00B2 2 -00B3 3 -00B9 1 -0660 0 -0661 1 -0662 2 -0663 3 -0664 4 -0665 5 -0666 6 -0667 7 -0668 8 -0669 9 -06F0 0 -06F1 1 -06F2 2 -06F3 3 -06F4 4 -06F5 5 -06F6 6 -06F7 7 -06F8 8 -06F9 9 -0966 0 -0967 1 -0968 2 -0969 3 -096A 4 -096B 5 -096C 6 -096D 7 -096E 8 -096F 9 -09E6 0 -09E7 1 -09E8 2 -09E9 3 -09EA 4 -09EB 5 -09EC 6 -09ED 7 -09EE 8 -09EF 9 -0A66 0 -0A67 1 -0A68 2 -0A69 3 -0A6A 4 -0A6B 5 -0A6C 6 -0A6D 7 -0A6E 8 -0A6F 9 -0AE6 0 -0AE7 1 -0AE8 2 -0AE9 3 -0AEA 4 -0AEB 5 -0AEC 6 -0AED 7 -0AEE 8 -0AEF 9 -0B66 0 -0B67 1 -0B68 2 -0B69 3 -0B6A 4 -0B6B 5 -0B6C 6 -0B6D 7 -0B6E 8 -0B6F 9 -0BE7 1 -0BE8 2 -0BE9 3 -0BEA 4 -0BEB 5 -0BEC 6 -0BED 7 -0BEE 8 -0BEF 9 -0C66 0 -0C67 1 -0C68 2 -0C69 3 -0C6A 4 -0C6B 5 -0C6C 6 -0C6D 7 -0C6E 8 -0C6F 9 -0CE6 0 -0CE7 1 -0CE8 2 -0CE9 3 -0CEA 4 -0CEB 5 -0CEC 6 -0CED 7 -0CEE 8 -0CEF 9 -0D66 0 -0D67 1 -0D68 2 -0D69 3 -0D6A 4 -0D6B 5 -0D6C 6 -0D6D 7 -0D6E 8 -0D6F 9 -0E50 0 -0E51 1 -0E52 2 -0E53 3 -0E54 4 -0E55 5 -0E56 6 -0E57 7 -0E58 8 -0E59 9 -0ED0 0 -0ED1 1 -0ED2 2 -0ED3 3 -0ED4 4 -0ED5 5 -0ED6 6 -0ED7 7 -0ED8 8 -0ED9 9 -0F20 0 -0F21 1 -0F22 2 -0F23 3 -0F24 4 -0F25 5 -0F26 6 -0F27 7 -0F28 8 -0F29 9 -1040 0 -1041 1 -1042 2 -1043 3 -1044 4 -1045 5 -1046 6 -1047 7 -1048 8 -1049 9 -1369 1 -136A 2 -136B 3 -136C 4 -136D 5 -136E 6 -136F 7 -1370 8 -1371 9 -17E0 0 -17E1 1 -17E2 2 -17E3 3 -17E4 4 -17E5 5 -17E6 6 -17E7 7 -17E8 8 -17E9 9 -1810 0 -1811 1 -1812 2 -1813 3 -1814 4 -1815 5 -1816 6 -1817 7 -1818 8 -1819 9 -2070 0 -2074 4 -2075 5 -2076 6 -2077 7 -2078 8 -2079 9 -2080 0 -2081 1 -2082 2 -2083 3 -2084 4 -2085 5 -2086 6 -2087 7 -2088 8 -2089 9 -FF10 0 -FF11 1 -FF12 2 -FF13 3 -FF14 4 -FF15 5 -FF16 6 -FF17 7 -FF18 8 -FF19 9 -1D7CE 0 -1D7CF 1 -1D7D0 2 -1D7D1 3 -1D7D2 4 -1D7D3 5 -1D7D4 6 -1D7D5 7 -1D7D6 8 -1D7D7 9 -1D7D8 0 -1D7D9 1 -1D7DA 2 -1D7DB 3 -1D7DC 4 -1D7DD 5 -1D7DE 6 -1D7DF 7 -1D7E0 8 -1D7E1 9 -1D7E2 0 -1D7E3 1 -1D7E4 2 -1D7E5 3 -1D7E6 4 -1D7E7 5 -1D7E8 6 -1D7E9 7 -1D7EA 8 -1D7EB 9 -1D7EC 0 -1D7ED 1 -1D7EE 2 -1D7EF 3 -1D7F0 4 -1D7F1 5 -1D7F2 6 -1D7F3 7 -1D7F4 8 -1D7F5 9 -1D7F6 0 -1D7F7 1 -1D7F8 2 -1D7F9 3 -1D7FA 4 -1D7FB 5 -1D7FC 6 -1D7FD 7 -1D7FE 8 -1D7FF 9 -END diff --git a/gnu/usr.bin/perl/lib/unicore/To/Fold.pl b/gnu/usr.bin/perl/lib/unicore/To/Fold.pl deleted file mode 100644 index 2a355ad6a39..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/To/Fold.pl +++ /dev/null @@ -1,849 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - - -%utf8::ToSpecFold = -( -'00DF' => "\x{0073}\x{0073}", -'0130' => "\x{0069}\x{0307}", -'0149' => "\x{02BC}\x{006E}", -'01F0' => "\x{006A}\x{030C}", -'0390' => "\x{03B9}\x{0308}\x{0301}", -'03B0' => "\x{03C5}\x{0308}\x{0301}", -'0587' => "\x{0565}\x{0582}", -'1E96' => "\x{0068}\x{0331}", -'1E97' => "\x{0074}\x{0308}", -'1E98' => "\x{0077}\x{030A}", -'1E99' => "\x{0079}\x{030A}", -'1E9A' => "\x{0061}\x{02BE}", -'1F50' => "\x{03C5}\x{0313}", -'1F52' => "\x{03C5}\x{0313}\x{0300}", -'1F54' => "\x{03C5}\x{0313}\x{0301}", -'1F56' => "\x{03C5}\x{0313}\x{0342}", -'1F80' => "\x{1F00}\x{03B9}", -'1F81' => "\x{1F01}\x{03B9}", -'1F82' => "\x{1F02}\x{03B9}", -'1F83' => "\x{1F03}\x{03B9}", -'1F84' => "\x{1F04}\x{03B9}", -'1F85' => "\x{1F05}\x{03B9}", -'1F86' => "\x{1F06}\x{03B9}", -'1F87' => "\x{1F07}\x{03B9}", -'1F88' => "\x{1F00}\x{03B9}", -'1F89' => "\x{1F01}\x{03B9}", -'1F8A' => "\x{1F02}\x{03B9}", -'1F8B' => "\x{1F03}\x{03B9}", -'1F8C' => "\x{1F04}\x{03B9}", -'1F8D' => "\x{1F05}\x{03B9}", -'1F8E' => "\x{1F06}\x{03B9}", -'1F8F' => "\x{1F07}\x{03B9}", -'1F90' => "\x{1F20}\x{03B9}", -'1F91' => "\x{1F21}\x{03B9}", -'1F92' => "\x{1F22}\x{03B9}", -'1F93' => "\x{1F23}\x{03B9}", -'1F94' => "\x{1F24}\x{03B9}", -'1F95' => "\x{1F25}\x{03B9}", -'1F96' => "\x{1F26}\x{03B9}", -'1F97' => "\x{1F27}\x{03B9}", -'1F98' => "\x{1F20}\x{03B9}", -'1F99' => "\x{1F21}\x{03B9}", -'1F9A' => "\x{1F22}\x{03B9}", -'1F9B' => "\x{1F23}\x{03B9}", -'1F9C' => "\x{1F24}\x{03B9}", -'1F9D' => "\x{1F25}\x{03B9}", -'1F9E' => "\x{1F26}\x{03B9}", -'1F9F' => "\x{1F27}\x{03B9}", -'1FA0' => "\x{1F60}\x{03B9}", -'1FA1' => "\x{1F61}\x{03B9}", -'1FA2' => "\x{1F62}\x{03B9}", -'1FA3' => "\x{1F63}\x{03B9}", -'1FA4' => "\x{1F64}\x{03B9}", -'1FA5' => "\x{1F65}\x{03B9}", -'1FA6' => "\x{1F66}\x{03B9}", -'1FA7' => "\x{1F67}\x{03B9}", -'1FA8' => "\x{1F60}\x{03B9}", -'1FA9' => "\x{1F61}\x{03B9}", -'1FAA' => "\x{1F62}\x{03B9}", -'1FAB' => "\x{1F63}\x{03B9}", -'1FAC' => "\x{1F64}\x{03B9}", -'1FAD' => "\x{1F65}\x{03B9}", -'1FAE' => "\x{1F66}\x{03B9}", -'1FAF' => "\x{1F67}\x{03B9}", -'1FB2' => "\x{1F70}\x{03B9}", -'1FB3' => "\x{03B1}\x{03B9}", -'1FB4' => "\x{03AC}\x{03B9}", -'1FB6' => "\x{03B1}\x{0342}", -'1FB7' => "\x{03B1}\x{0342}\x{03B9}", -'1FBC' => "\x{03B1}\x{03B9}", -'1FC2' => "\x{1F74}\x{03B9}", -'1FC3' => "\x{03B7}\x{03B9}", -'1FC4' => "\x{03AE}\x{03B9}", -'1FC6' => "\x{03B7}\x{0342}", -'1FC7' => "\x{03B7}\x{0342}\x{03B9}", -'1FCC' => "\x{03B7}\x{03B9}", -'1FD2' => "\x{03B9}\x{0308}\x{0300}", -'1FD3' => "\x{03B9}\x{0308}\x{0301}", -'1FD6' => "\x{03B9}\x{0342}", -'1FD7' => "\x{03B9}\x{0308}\x{0342}", -'1FE2' => "\x{03C5}\x{0308}\x{0300}", -'1FE3' => "\x{03C5}\x{0308}\x{0301}", -'1FE4' => "\x{03C1}\x{0313}", -'1FE6' => "\x{03C5}\x{0342}", -'1FE7' => "\x{03C5}\x{0308}\x{0342}", -'1FF2' => "\x{1F7C}\x{03B9}", -'1FF3' => "\x{03C9}\x{03B9}", -'1FF4' => "\x{03CE}\x{03B9}", -'1FF6' => "\x{03C9}\x{0342}", -'1FF7' => "\x{03C9}\x{0342}\x{03B9}", -'1FFC' => "\x{03C9}\x{03B9}", -'FB00' => "\x{0066}\x{0066}", -'FB01' => "\x{0066}\x{0069}", -'FB02' => "\x{0066}\x{006C}", -'FB03' => "\x{0066}\x{0066}\x{0069}", -'FB04' => "\x{0066}\x{0066}\x{006C}", -'FB05' => "\x{0073}\x{0074}", -'FB06' => "\x{0073}\x{0074}", -'FB13' => "\x{0574}\x{0576}", -'FB14' => "\x{0574}\x{0565}", -'FB15' => "\x{0574}\x{056B}", -'FB16' => "\x{057E}\x{0576}", -'FB17' => "\x{0574}\x{056D}", -); - -return <<'END'; -0041 0061 -0042 0062 -0043 0063 -0044 0064 -0045 0065 -0046 0066 -0047 0067 -0048 0068 -0049 0069 -004A 006A -004B 006B -004C 006C -004D 006D -004E 006E -004F 006F -0050 0070 -0051 0071 -0052 0072 -0053 0073 -0054 0074 -0055 0075 -0056 0076 -0057 0077 -0058 0078 -0059 0079 -005A 007A -00B5 03BC -00C0 00E0 -00C1 00E1 -00C2 00E2 -00C3 00E3 -00C4 00E4 -00C5 00E5 -00C6 00E6 -00C7 00E7 -00C8 00E8 -00C9 00E9 -00CA 00EA -00CB 00EB -00CC 00EC -00CD 00ED -00CE 00EE -00CF 00EF -00D0 00F0 -00D1 00F1 -00D2 00F2 -00D3 00F3 -00D4 00F4 -00D5 00F5 -00D6 00F6 -00D8 00F8 -00D9 00F9 -00DA 00FA -00DB 00FB -00DC 00FC -00DD 00FD -00DE 00FE -0100 0101 -0102 0103 -0104 0105 -0106 0107 -0108 0109 -010A 010B -010C 010D -010E 010F -0110 0111 -0112 0113 -0114 0115 -0116 0117 -0118 0119 -011A 011B -011C 011D -011E 011F -0120 0121 -0122 0123 -0124 0125 -0126 0127 -0128 0129 -012A 012B -012C 012D -012E 012F -0132 0133 -0134 0135 -0136 0137 -0139 013A -013B 013C -013D 013E -013F 0140 -0141 0142 -0143 0144 -0145 0146 -0147 0148 -014A 014B -014C 014D -014E 014F -0150 0151 -0152 0153 -0154 0155 -0156 0157 -0158 0159 -015A 015B -015C 015D -015E 015F -0160 0161 -0162 0163 -0164 0165 -0166 0167 -0168 0169 -016A 016B -016C 016D -016E 016F -0170 0171 -0172 0173 -0174 0175 -0176 0177 -0178 00FF -0179 017A -017B 017C -017D 017E -017F 0073 -0181 0253 -0182 0183 -0184 0185 -0186 0254 -0187 0188 -0189 0256 -018A 0257 -018B 018C -018E 01DD -018F 0259 -0190 025B -0191 0192 -0193 0260 -0194 0263 -0196 0269 -0197 0268 -0198 0199 -019C 026F -019D 0272 -019F 0275 -01A0 01A1 -01A2 01A3 -01A4 01A5 -01A6 0280 -01A7 01A8 -01A9 0283 -01AC 01AD -01AE 0288 -01AF 01B0 -01B1 028A -01B2 028B -01B3 01B4 -01B5 01B6 -01B7 0292 -01B8 01B9 -01BC 01BD -01C4 01C6 -01C5 01C6 -01C7 01C9 -01C8 01C9 -01CA 01CC -01CB 01CC -01CD 01CE -01CF 01D0 -01D1 01D2 -01D3 01D4 -01D5 01D6 -01D7 01D8 -01D9 01DA -01DB 01DC -01DE 01DF -01E0 01E1 -01E2 01E3 -01E4 01E5 -01E6 01E7 -01E8 01E9 -01EA 01EB -01EC 01ED -01EE 01EF -01F1 01F3 -01F2 01F3 -01F4 01F5 -01F6 0195 -01F7 01BF -01F8 01F9 -01FA 01FB -01FC 01FD -01FE 01FF -0200 0201 -0202 0203 -0204 0205 -0206 0207 -0208 0209 -020A 020B -020C 020D -020E 020F -0210 0211 -0212 0213 -0214 0215 -0216 0217 -0218 0219 -021A 021B -021C 021D -021E 021F -0220 019E -0222 0223 -0224 0225 -0226 0227 -0228 0229 -022A 022B -022C 022D -022E 022F -0230 0231 -0232 0233 -0345 03B9 -0386 03AC -0388 03AD -0389 03AE -038A 03AF -038C 03CC -038E 03CD -038F 03CE -0391 03B1 -0392 03B2 -0393 03B3 -0394 03B4 -0395 03B5 -0396 03B6 -0397 03B7 -0398 03B8 -0399 03B9 -039A 03BA -039B 03BB -039C 03BC -039D 03BD -039E 03BE -039F 03BF -03A0 03C0 -03A1 03C1 -03A3 03C3 -03A4 03C4 -03A5 03C5 -03A6 03C6 -03A7 03C7 -03A8 03C8 -03A9 03C9 -03AA 03CA -03AB 03CB -03C2 03C3 -03D0 03B2 -03D1 03B8 -03D5 03C6 -03D6 03C0 -03D8 03D9 -03DA 03DB -03DC 03DD -03DE 03DF -03E0 03E1 -03E2 03E3 -03E4 03E5 -03E6 03E7 -03E8 03E9 -03EA 03EB -03EC 03ED -03EE 03EF -03F0 03BA -03F1 03C1 -03F2 03C3 -03F4 03B8 -03F5 03B5 -0400 0450 -0401 0451 -0402 0452 -0403 0453 -0404 0454 -0405 0455 -0406 0456 -0407 0457 -0408 0458 -0409 0459 -040A 045A -040B 045B -040C 045C -040D 045D -040E 045E -040F 045F -0410 0430 -0411 0431 -0412 0432 -0413 0433 -0414 0434 -0415 0435 -0416 0436 -0417 0437 -0418 0438 -0419 0439 -041A 043A -041B 043B -041C 043C -041D 043D -041E 043E -041F 043F -0420 0440 -0421 0441 -0422 0442 -0423 0443 -0424 0444 -0425 0445 -0426 0446 -0427 0447 -0428 0448 -0429 0449 -042A 044A -042B 044B -042C 044C -042D 044D -042E 044E -042F 044F -0460 0461 -0462 0463 -0464 0465 -0466 0467 -0468 0469 -046A 046B -046C 046D -046E 046F -0470 0471 -0472 0473 -0474 0475 -0476 0477 -0478 0479 -047A 047B -047C 047D -047E 047F -0480 0481 -048A 048B -048C 048D -048E 048F -0490 0491 -0492 0493 -0494 0495 -0496 0497 -0498 0499 -049A 049B -049C 049D -049E 049F -04A0 04A1 -04A2 04A3 -04A4 04A5 -04A6 04A7 -04A8 04A9 -04AA 04AB -04AC 04AD -04AE 04AF -04B0 04B1 -04B2 04B3 -04B4 04B5 -04B6 04B7 -04B8 04B9 -04BA 04BB -04BC 04BD -04BE 04BF -04C1 04C2 -04C3 04C4 -04C5 04C6 -04C7 04C8 -04C9 04CA -04CB 04CC -04CD 04CE -04D0 04D1 -04D2 04D3 -04D4 04D5 -04D6 04D7 -04D8 04D9 -04DA 04DB -04DC 04DD -04DE 04DF -04E0 04E1 -04E2 04E3 -04E4 04E5 -04E6 04E7 -04E8 04E9 -04EA 04EB -04EC 04ED -04EE 04EF -04F0 04F1 -04F2 04F3 -04F4 04F5 -04F8 04F9 -0500 0501 -0502 0503 -0504 0505 -0506 0507 -0508 0509 -050A 050B -050C 050D -050E 050F -0531 0561 -0532 0562 -0533 0563 -0534 0564 -0535 0565 -0536 0566 -0537 0567 -0538 0568 -0539 0569 -053A 056A -053B 056B -053C 056C -053D 056D -053E 056E -053F 056F -0540 0570 -0541 0571 -0542 0572 -0543 0573 -0544 0574 -0545 0575 -0546 0576 -0547 0577 -0548 0578 -0549 0579 -054A 057A -054B 057B -054C 057C -054D 057D -054E 057E -054F 057F -0550 0580 -0551 0581 -0552 0582 -0553 0583 -0554 0584 -0555 0585 -0556 0586 -1E00 1E01 -1E02 1E03 -1E04 1E05 -1E06 1E07 -1E08 1E09 -1E0A 1E0B -1E0C 1E0D -1E0E 1E0F -1E10 1E11 -1E12 1E13 -1E14 1E15 -1E16 1E17 -1E18 1E19 -1E1A 1E1B -1E1C 1E1D -1E1E 1E1F -1E20 1E21 -1E22 1E23 -1E24 1E25 -1E26 1E27 -1E28 1E29 -1E2A 1E2B -1E2C 1E2D -1E2E 1E2F -1E30 1E31 -1E32 1E33 -1E34 1E35 -1E36 1E37 -1E38 1E39 -1E3A 1E3B -1E3C 1E3D -1E3E 1E3F -1E40 1E41 -1E42 1E43 -1E44 1E45 -1E46 1E47 -1E48 1E49 -1E4A 1E4B -1E4C 1E4D -1E4E 1E4F -1E50 1E51 -1E52 1E53 -1E54 1E55 -1E56 1E57 -1E58 1E59 -1E5A 1E5B -1E5C 1E5D -1E5E 1E5F -1E60 1E61 -1E62 1E63 -1E64 1E65 -1E66 1E67 -1E68 1E69 -1E6A 1E6B -1E6C 1E6D -1E6E 1E6F -1E70 1E71 -1E72 1E73 -1E74 1E75 -1E76 1E77 -1E78 1E79 -1E7A 1E7B -1E7C 1E7D -1E7E 1E7F -1E80 1E81 -1E82 1E83 -1E84 1E85 -1E86 1E87 -1E88 1E89 -1E8A 1E8B -1E8C 1E8D -1E8E 1E8F -1E90 1E91 -1E92 1E93 -1E94 1E95 -1E9B 1E61 -1EA0 1EA1 -1EA2 1EA3 -1EA4 1EA5 -1EA6 1EA7 -1EA8 1EA9 -1EAA 1EAB -1EAC 1EAD -1EAE 1EAF -1EB0 1EB1 -1EB2 1EB3 -1EB4 1EB5 -1EB6 1EB7 -1EB8 1EB9 -1EBA 1EBB -1EBC 1EBD -1EBE 1EBF -1EC0 1EC1 -1EC2 1EC3 -1EC4 1EC5 -1EC6 1EC7 -1EC8 1EC9 -1ECA 1ECB -1ECC 1ECD -1ECE 1ECF -1ED0 1ED1 -1ED2 1ED3 -1ED4 1ED5 -1ED6 1ED7 -1ED8 1ED9 -1EDA 1EDB -1EDC 1EDD -1EDE 1EDF -1EE0 1EE1 -1EE2 1EE3 -1EE4 1EE5 -1EE6 1EE7 -1EE8 1EE9 -1EEA 1EEB -1EEC 1EED -1EEE 1EEF -1EF0 1EF1 -1EF2 1EF3 -1EF4 1EF5 -1EF6 1EF7 -1EF8 1EF9 -1F08 1F00 -1F09 1F01 -1F0A 1F02 -1F0B 1F03 -1F0C 1F04 -1F0D 1F05 -1F0E 1F06 -1F0F 1F07 -1F18 1F10 -1F19 1F11 -1F1A 1F12 -1F1B 1F13 -1F1C 1F14 -1F1D 1F15 -1F28 1F20 -1F29 1F21 -1F2A 1F22 -1F2B 1F23 -1F2C 1F24 -1F2D 1F25 -1F2E 1F26 -1F2F 1F27 -1F38 1F30 -1F39 1F31 -1F3A 1F32 -1F3B 1F33 -1F3C 1F34 -1F3D 1F35 -1F3E 1F36 -1F3F 1F37 -1F48 1F40 -1F49 1F41 -1F4A 1F42 -1F4B 1F43 -1F4C 1F44 -1F4D 1F45 -1F59 1F51 -1F5B 1F53 -1F5D 1F55 -1F5F 1F57 -1F68 1F60 -1F69 1F61 -1F6A 1F62 -1F6B 1F63 -1F6C 1F64 -1F6D 1F65 -1F6E 1F66 -1F6F 1F67 -1FB8 1FB0 -1FB9 1FB1 -1FBA 1F70 -1FBB 1F71 -1FBE 03B9 -1FC8 1F72 -1FC9 1F73 -1FCA 1F74 -1FCB 1F75 -1FD8 1FD0 -1FD9 1FD1 -1FDA 1F76 -1FDB 1F77 -1FE8 1FE0 -1FE9 1FE1 -1FEA 1F7A -1FEB 1F7B -1FEC 1FE5 -1FF8 1F78 -1FF9 1F79 -1FFA 1F7C -1FFB 1F7D -2126 03C9 -212A 006B -212B 00E5 -2160 2170 -2161 2171 -2162 2172 -2163 2173 -2164 2174 -2165 2175 -2166 2176 -2167 2177 -2168 2178 -2169 2179 -216A 217A -216B 217B -216C 217C -216D 217D -216E 217E -216F 217F -24B6 24D0 -24B7 24D1 -24B8 24D2 -24B9 24D3 -24BA 24D4 -24BB 24D5 -24BC 24D6 -24BD 24D7 -24BE 24D8 -24BF 24D9 -24C0 24DA -24C1 24DB -24C2 24DC -24C3 24DD -24C4 24DE -24C5 24DF -24C6 24E0 -24C7 24E1 -24C8 24E2 -24C9 24E3 -24CA 24E4 -24CB 24E5 -24CC 24E6 -24CD 24E7 -24CE 24E8 -24CF 24E9 -FF21 FF41 -FF22 FF42 -FF23 FF43 -FF24 FF44 -FF25 FF45 -FF26 FF46 -FF27 FF47 -FF28 FF48 -FF29 FF49 -FF2A FF4A -FF2B FF4B -FF2C FF4C -FF2D FF4D -FF2E FF4E -FF2F FF4F -FF30 FF50 -FF31 FF51 -FF32 FF52 -FF33 FF53 -FF34 FF54 -FF35 FF55 -FF36 FF56 -FF37 FF57 -FF38 FF58 -FF39 FF59 -FF3A FF5A -10400 10428 -10401 10429 -10402 1042A -10403 1042B -10404 1042C -10405 1042D -10406 1042E -10407 1042F -10408 10430 -10409 10431 -1040A 10432 -1040B 10433 -1040C 10434 -1040D 10435 -1040E 10436 -1040F 10437 -10410 10438 -10411 10439 -10412 1043A -10413 1043B -10414 1043C -10415 1043D -10416 1043E -10417 1043F -10418 10440 -10419 10441 -1041A 10442 -1041B 10443 -1041C 10444 -1041D 10445 -1041E 10446 -1041F 10447 -10420 10448 -10421 10449 -10422 1044A -10423 1044B -10424 1044C -10425 1044D -END diff --git a/gnu/usr.bin/perl/lib/unicore/To/Lower.pl b/gnu/usr.bin/perl/lib/unicore/To/Lower.pl deleted file mode 100644 index cbb27214882..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/To/Lower.pl +++ /dev/null @@ -1,760 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - - -%utf8::ToSpecLower = -( -'0130' => "\x{0069}\x{0307}", -'1F88' => "\x{1F80}", -'1F89' => "\x{1F81}", -'1F8A' => "\x{1F82}", -'1F8B' => "\x{1F83}", -'1F8C' => "\x{1F84}", -'1F8D' => "\x{1F85}", -'1F8E' => "\x{1F86}", -'1F8F' => "\x{1F87}", -'1F98' => "\x{1F90}", -'1F99' => "\x{1F91}", -'1F9A' => "\x{1F92}", -'1F9B' => "\x{1F93}", -'1F9C' => "\x{1F94}", -'1F9D' => "\x{1F95}", -'1F9E' => "\x{1F96}", -'1F9F' => "\x{1F97}", -'1FA8' => "\x{1FA0}", -'1FA9' => "\x{1FA1}", -'1FAA' => "\x{1FA2}", -'1FAB' => "\x{1FA3}", -'1FAC' => "\x{1FA4}", -'1FAD' => "\x{1FA5}", -'1FAE' => "\x{1FA6}", -'1FAF' => "\x{1FA7}", -'1FBC' => "\x{1FB3}", -'1FCC' => "\x{1FC3}", -'1FFC' => "\x{1FF3}", -); - -return <<'END'; -0041 0061 -0042 0062 -0043 0063 -0044 0064 -0045 0065 -0046 0066 -0047 0067 -0048 0068 -0049 0069 -004A 006A -004B 006B -004C 006C -004D 006D -004E 006E -004F 006F -0050 0070 -0051 0071 -0052 0072 -0053 0073 -0054 0074 -0055 0075 -0056 0076 -0057 0077 -0058 0078 -0059 0079 -005A 007A -00C0 00E0 -00C1 00E1 -00C2 00E2 -00C3 00E3 -00C4 00E4 -00C5 00E5 -00C6 00E6 -00C7 00E7 -00C8 00E8 -00C9 00E9 -00CA 00EA -00CB 00EB -00CC 00EC -00CD 00ED -00CE 00EE -00CF 00EF -00D0 00F0 -00D1 00F1 -00D2 00F2 -00D3 00F3 -00D4 00F4 -00D5 00F5 -00D6 00F6 -00D8 00F8 -00D9 00F9 -00DA 00FA -00DB 00FB -00DC 00FC -00DD 00FD -00DE 00FE -0100 0101 -0102 0103 -0104 0105 -0106 0107 -0108 0109 -010A 010B -010C 010D -010E 010F -0110 0111 -0112 0113 -0114 0115 -0116 0117 -0118 0119 -011A 011B -011C 011D -011E 011F -0120 0121 -0122 0123 -0124 0125 -0126 0127 -0128 0129 -012A 012B -012C 012D -012E 012F -0132 0133 -0134 0135 -0136 0137 -0139 013A -013B 013C -013D 013E -013F 0140 -0141 0142 -0143 0144 -0145 0146 -0147 0148 -014A 014B -014C 014D -014E 014F -0150 0151 -0152 0153 -0154 0155 -0156 0157 -0158 0159 -015A 015B -015C 015D -015E 015F -0160 0161 -0162 0163 -0164 0165 -0166 0167 -0168 0169 -016A 016B -016C 016D -016E 016F -0170 0171 -0172 0173 -0174 0175 -0176 0177 -0178 00FF -0179 017A -017B 017C -017D 017E -0181 0253 -0182 0183 -0184 0185 -0186 0254 -0187 0188 -0189 0256 -018A 0257 -018B 018C -018E 01DD -018F 0259 -0190 025B -0191 0192 -0193 0260 -0194 0263 -0196 0269 -0197 0268 -0198 0199 -019C 026F -019D 0272 -019F 0275 -01A0 01A1 -01A2 01A3 -01A4 01A5 -01A6 0280 -01A7 01A8 -01A9 0283 -01AC 01AD -01AE 0288 -01AF 01B0 -01B1 028A -01B2 028B -01B3 01B4 -01B5 01B6 -01B7 0292 -01B8 01B9 -01BC 01BD -01C4 01C6 -01C5 01C6 -01C7 01C9 -01C8 01C9 -01CA 01CC -01CB 01CC -01CD 01CE -01CF 01D0 -01D1 01D2 -01D3 01D4 -01D5 01D6 -01D7 01D8 -01D9 01DA -01DB 01DC -01DE 01DF -01E0 01E1 -01E2 01E3 -01E4 01E5 -01E6 01E7 -01E8 01E9 -01EA 01EB -01EC 01ED -01EE 01EF -01F1 01F3 -01F2 01F3 -01F4 01F5 -01F6 0195 -01F7 01BF -01F8 01F9 -01FA 01FB -01FC 01FD -01FE 01FF -0200 0201 -0202 0203 -0204 0205 -0206 0207 -0208 0209 -020A 020B -020C 020D -020E 020F -0210 0211 -0212 0213 -0214 0215 -0216 0217 -0218 0219 -021A 021B -021C 021D -021E 021F -0220 019E -0222 0223 -0224 0225 -0226 0227 -0228 0229 -022A 022B -022C 022D -022E 022F -0230 0231 -0232 0233 -0386 03AC -0388 03AD -0389 03AE -038A 03AF -038C 03CC -038E 03CD -038F 03CE -0391 03B1 -0392 03B2 -0393 03B3 -0394 03B4 -0395 03B5 -0396 03B6 -0397 03B7 -0398 03B8 -0399 03B9 -039A 03BA -039B 03BB -039C 03BC -039D 03BD -039E 03BE -039F 03BF -03A0 03C0 -03A1 03C1 -03A3 03C3 -03A4 03C4 -03A5 03C5 -03A6 03C6 -03A7 03C7 -03A8 03C8 -03A9 03C9 -03AA 03CA -03AB 03CB -03D8 03D9 -03DA 03DB -03DC 03DD -03DE 03DF -03E0 03E1 -03E2 03E3 -03E4 03E5 -03E6 03E7 -03E8 03E9 -03EA 03EB -03EC 03ED -03EE 03EF -03F4 03B8 -0400 0450 -0401 0451 -0402 0452 -0403 0453 -0404 0454 -0405 0455 -0406 0456 -0407 0457 -0408 0458 -0409 0459 -040A 045A -040B 045B -040C 045C -040D 045D -040E 045E -040F 045F -0410 0430 -0411 0431 -0412 0432 -0413 0433 -0414 0434 -0415 0435 -0416 0436 -0417 0437 -0418 0438 -0419 0439 -041A 043A -041B 043B -041C 043C -041D 043D -041E 043E -041F 043F -0420 0440 -0421 0441 -0422 0442 -0423 0443 -0424 0444 -0425 0445 -0426 0446 -0427 0447 -0428 0448 -0429 0449 -042A 044A -042B 044B -042C 044C -042D 044D -042E 044E -042F 044F -0460 0461 -0462 0463 -0464 0465 -0466 0467 -0468 0469 -046A 046B -046C 046D -046E 046F -0470 0471 -0472 0473 -0474 0475 -0476 0477 -0478 0479 -047A 047B -047C 047D -047E 047F -0480 0481 -048A 048B -048C 048D -048E 048F -0490 0491 -0492 0493 -0494 0495 -0496 0497 -0498 0499 -049A 049B -049C 049D -049E 049F -04A0 04A1 -04A2 04A3 -04A4 04A5 -04A6 04A7 -04A8 04A9 -04AA 04AB -04AC 04AD -04AE 04AF -04B0 04B1 -04B2 04B3 -04B4 04B5 -04B6 04B7 -04B8 04B9 -04BA 04BB -04BC 04BD -04BE 04BF -04C1 04C2 -04C3 04C4 -04C5 04C6 -04C7 04C8 -04C9 04CA -04CB 04CC -04CD 04CE -04D0 04D1 -04D2 04D3 -04D4 04D5 -04D6 04D7 -04D8 04D9 -04DA 04DB -04DC 04DD -04DE 04DF -04E0 04E1 -04E2 04E3 -04E4 04E5 -04E6 04E7 -04E8 04E9 -04EA 04EB -04EC 04ED -04EE 04EF -04F0 04F1 -04F2 04F3 -04F4 04F5 -04F8 04F9 -0500 0501 -0502 0503 -0504 0505 -0506 0507 -0508 0509 -050A 050B -050C 050D -050E 050F -0531 0561 -0532 0562 -0533 0563 -0534 0564 -0535 0565 -0536 0566 -0537 0567 -0538 0568 -0539 0569 -053A 056A -053B 056B -053C 056C -053D 056D -053E 056E -053F 056F -0540 0570 -0541 0571 -0542 0572 -0543 0573 -0544 0574 -0545 0575 -0546 0576 -0547 0577 -0548 0578 -0549 0579 -054A 057A -054B 057B -054C 057C -054D 057D -054E 057E -054F 057F -0550 0580 -0551 0581 -0552 0582 -0553 0583 -0554 0584 -0555 0585 -0556 0586 -1E00 1E01 -1E02 1E03 -1E04 1E05 -1E06 1E07 -1E08 1E09 -1E0A 1E0B -1E0C 1E0D -1E0E 1E0F -1E10 1E11 -1E12 1E13 -1E14 1E15 -1E16 1E17 -1E18 1E19 -1E1A 1E1B -1E1C 1E1D -1E1E 1E1F -1E20 1E21 -1E22 1E23 -1E24 1E25 -1E26 1E27 -1E28 1E29 -1E2A 1E2B -1E2C 1E2D -1E2E 1E2F -1E30 1E31 -1E32 1E33 -1E34 1E35 -1E36 1E37 -1E38 1E39 -1E3A 1E3B -1E3C 1E3D -1E3E 1E3F -1E40 1E41 -1E42 1E43 -1E44 1E45 -1E46 1E47 -1E48 1E49 -1E4A 1E4B -1E4C 1E4D -1E4E 1E4F -1E50 1E51 -1E52 1E53 -1E54 1E55 -1E56 1E57 -1E58 1E59 -1E5A 1E5B -1E5C 1E5D -1E5E 1E5F -1E60 1E61 -1E62 1E63 -1E64 1E65 -1E66 1E67 -1E68 1E69 -1E6A 1E6B -1E6C 1E6D -1E6E 1E6F -1E70 1E71 -1E72 1E73 -1E74 1E75 -1E76 1E77 -1E78 1E79 -1E7A 1E7B -1E7C 1E7D -1E7E 1E7F -1E80 1E81 -1E82 1E83 -1E84 1E85 -1E86 1E87 -1E88 1E89 -1E8A 1E8B -1E8C 1E8D -1E8E 1E8F -1E90 1E91 -1E92 1E93 -1E94 1E95 -1EA0 1EA1 -1EA2 1EA3 -1EA4 1EA5 -1EA6 1EA7 -1EA8 1EA9 -1EAA 1EAB -1EAC 1EAD -1EAE 1EAF -1EB0 1EB1 -1EB2 1EB3 -1EB4 1EB5 -1EB6 1EB7 -1EB8 1EB9 -1EBA 1EBB -1EBC 1EBD -1EBE 1EBF -1EC0 1EC1 -1EC2 1EC3 -1EC4 1EC5 -1EC6 1EC7 -1EC8 1EC9 -1ECA 1ECB -1ECC 1ECD -1ECE 1ECF -1ED0 1ED1 -1ED2 1ED3 -1ED4 1ED5 -1ED6 1ED7 -1ED8 1ED9 -1EDA 1EDB -1EDC 1EDD -1EDE 1EDF -1EE0 1EE1 -1EE2 1EE3 -1EE4 1EE5 -1EE6 1EE7 -1EE8 1EE9 -1EEA 1EEB -1EEC 1EED -1EEE 1EEF -1EF0 1EF1 -1EF2 1EF3 -1EF4 1EF5 -1EF6 1EF7 -1EF8 1EF9 -1F08 1F00 -1F09 1F01 -1F0A 1F02 -1F0B 1F03 -1F0C 1F04 -1F0D 1F05 -1F0E 1F06 -1F0F 1F07 -1F18 1F10 -1F19 1F11 -1F1A 1F12 -1F1B 1F13 -1F1C 1F14 -1F1D 1F15 -1F28 1F20 -1F29 1F21 -1F2A 1F22 -1F2B 1F23 -1F2C 1F24 -1F2D 1F25 -1F2E 1F26 -1F2F 1F27 -1F38 1F30 -1F39 1F31 -1F3A 1F32 -1F3B 1F33 -1F3C 1F34 -1F3D 1F35 -1F3E 1F36 -1F3F 1F37 -1F48 1F40 -1F49 1F41 -1F4A 1F42 -1F4B 1F43 -1F4C 1F44 -1F4D 1F45 -1F59 1F51 -1F5B 1F53 -1F5D 1F55 -1F5F 1F57 -1F68 1F60 -1F69 1F61 -1F6A 1F62 -1F6B 1F63 -1F6C 1F64 -1F6D 1F65 -1F6E 1F66 -1F6F 1F67 -1FB8 1FB0 -1FB9 1FB1 -1FBA 1F70 -1FBB 1F71 -1FC8 1F72 -1FC9 1F73 -1FCA 1F74 -1FCB 1F75 -1FD8 1FD0 -1FD9 1FD1 -1FDA 1F76 -1FDB 1F77 -1FE8 1FE0 -1FE9 1FE1 -1FEA 1F7A -1FEB 1F7B -1FEC 1FE5 -1FF8 1F78 -1FF9 1F79 -1FFA 1F7C -1FFB 1F7D -2126 03C9 -212A 006B -212B 00E5 -2160 2170 -2161 2171 -2162 2172 -2163 2173 -2164 2174 -2165 2175 -2166 2176 -2167 2177 -2168 2178 -2169 2179 -216A 217A -216B 217B -216C 217C -216D 217D -216E 217E -216F 217F -24B6 24D0 -24B7 24D1 -24B8 24D2 -24B9 24D3 -24BA 24D4 -24BB 24D5 -24BC 24D6 -24BD 24D7 -24BE 24D8 -24BF 24D9 -24C0 24DA -24C1 24DB -24C2 24DC -24C3 24DD -24C4 24DE -24C5 24DF -24C6 24E0 -24C7 24E1 -24C8 24E2 -24C9 24E3 -24CA 24E4 -24CB 24E5 -24CC 24E6 -24CD 24E7 -24CE 24E8 -24CF 24E9 -FF21 FF41 -FF22 FF42 -FF23 FF43 -FF24 FF44 -FF25 FF45 -FF26 FF46 -FF27 FF47 -FF28 FF48 -FF29 FF49 -FF2A FF4A -FF2B FF4B -FF2C FF4C -FF2D FF4D -FF2E FF4E -FF2F FF4F -FF30 FF50 -FF31 FF51 -FF32 FF52 -FF33 FF53 -FF34 FF54 -FF35 FF55 -FF36 FF56 -FF37 FF57 -FF38 FF58 -FF39 FF59 -FF3A FF5A -10400 10428 -10401 10429 -10402 1042A -10403 1042B -10404 1042C -10405 1042D -10406 1042E -10407 1042F -10408 10430 -10409 10431 -1040A 10432 -1040B 10433 -1040C 10434 -1040D 10435 -1040E 10436 -1040F 10437 -10410 10438 -10411 10439 -10412 1043A -10413 1043B -10414 1043C -10415 1043D -10416 1043E -10417 1043F -10418 10440 -10419 10441 -1041A 10442 -1041B 10443 -1041C 10444 -1041D 10445 -1041E 10446 -1041F 10447 -10420 10448 -10421 10449 -10422 1044A -10423 1044B -10424 1044C -10425 1044D -END diff --git a/gnu/usr.bin/perl/lib/unicore/To/Title.pl b/gnu/usr.bin/perl/lib/unicore/To/Title.pl deleted file mode 100644 index 1cd9dc540f3..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/To/Title.pl +++ /dev/null @@ -1,818 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - - -%utf8::ToSpecTitle = -( -'00DF' => "\x{0053}\x{0073}", -'0149' => "\x{02BC}\x{004E}", -'01F0' => "\x{004A}\x{030C}", -'0390' => "\x{0399}\x{0308}\x{0301}", -'03B0' => "\x{03A5}\x{0308}\x{0301}", -'0587' => "\x{0535}\x{0582}", -'1E96' => "\x{0048}\x{0331}", -'1E97' => "\x{0054}\x{0308}", -'1E98' => "\x{0057}\x{030A}", -'1E99' => "\x{0059}\x{030A}", -'1E9A' => "\x{0041}\x{02BE}", -'1F50' => "\x{03A5}\x{0313}", -'1F52' => "\x{03A5}\x{0313}\x{0300}", -'1F54' => "\x{03A5}\x{0313}\x{0301}", -'1F56' => "\x{03A5}\x{0313}\x{0342}", -'1F80' => "\x{1F88}", -'1F81' => "\x{1F89}", -'1F82' => "\x{1F8A}", -'1F83' => "\x{1F8B}", -'1F84' => "\x{1F8C}", -'1F85' => "\x{1F8D}", -'1F86' => "\x{1F8E}", -'1F87' => "\x{1F8F}", -'1F90' => "\x{1F98}", -'1F91' => "\x{1F99}", -'1F92' => "\x{1F9A}", -'1F93' => "\x{1F9B}", -'1F94' => "\x{1F9C}", -'1F95' => "\x{1F9D}", -'1F96' => "\x{1F9E}", -'1F97' => "\x{1F9F}", -'1FA0' => "\x{1FA8}", -'1FA1' => "\x{1FA9}", -'1FA2' => "\x{1FAA}", -'1FA3' => "\x{1FAB}", -'1FA4' => "\x{1FAC}", -'1FA5' => "\x{1FAD}", -'1FA6' => "\x{1FAE}", -'1FA7' => "\x{1FAF}", -'1FB2' => "\x{1FBA}\x{0345}", -'1FB3' => "\x{1FBC}", -'1FB4' => "\x{0386}\x{0345}", -'1FB6' => "\x{0391}\x{0342}", -'1FB7' => "\x{0391}\x{0342}\x{0345}", -'1FC2' => "\x{1FCA}\x{0345}", -'1FC3' => "\x{1FCC}", -'1FC4' => "\x{0389}\x{0345}", -'1FC6' => "\x{0397}\x{0342}", -'1FC7' => "\x{0397}\x{0342}\x{0345}", -'1FD2' => "\x{0399}\x{0308}\x{0300}", -'1FD3' => "\x{0399}\x{0308}\x{0301}", -'1FD6' => "\x{0399}\x{0342}", -'1FD7' => "\x{0399}\x{0308}\x{0342}", -'1FE2' => "\x{03A5}\x{0308}\x{0300}", -'1FE3' => "\x{03A5}\x{0308}\x{0301}", -'1FE4' => "\x{03A1}\x{0313}", -'1FE6' => "\x{03A5}\x{0342}", -'1FE7' => "\x{03A5}\x{0308}\x{0342}", -'1FF2' => "\x{1FFA}\x{0345}", -'1FF3' => "\x{1FFC}", -'1FF4' => "\x{038F}\x{0345}", -'1FF6' => "\x{03A9}\x{0342}", -'1FF7' => "\x{03A9}\x{0342}\x{0345}", -'FB00' => "\x{0046}\x{0066}", -'FB01' => "\x{0046}\x{0069}", -'FB02' => "\x{0046}\x{006C}", -'FB03' => "\x{0046}\x{0066}\x{0069}", -'FB04' => "\x{0046}\x{0066}\x{006C}", -'FB05' => "\x{0053}\x{0074}", -'FB06' => "\x{0053}\x{0074}", -'FB13' => "\x{0544}\x{0576}", -'FB14' => "\x{0544}\x{0565}", -'FB15' => "\x{0544}\x{056B}", -'FB16' => "\x{054E}\x{0576}", -'FB17' => "\x{0544}\x{056D}", -); - -return <<'END'; -0061 0041 -0062 0042 -0063 0043 -0064 0044 -0065 0045 -0066 0046 -0067 0047 -0068 0048 -0069 0049 -006A 004A -006B 004B -006C 004C -006D 004D -006E 004E -006F 004F -0070 0050 -0071 0051 -0072 0052 -0073 0053 -0074 0054 -0075 0055 -0076 0056 -0077 0057 -0078 0058 -0079 0059 -007A 005A -00B5 039C -00E0 00C0 -00E1 00C1 -00E2 00C2 -00E3 00C3 -00E4 00C4 -00E5 00C5 -00E6 00C6 -00E7 00C7 -00E8 00C8 -00E9 00C9 -00EA 00CA -00EB 00CB -00EC 00CC -00ED 00CD -00EE 00CE -00EF 00CF -00F0 00D0 -00F1 00D1 -00F2 00D2 -00F3 00D3 -00F4 00D4 -00F5 00D5 -00F6 00D6 -00F8 00D8 -00F9 00D9 -00FA 00DA -00FB 00DB -00FC 00DC -00FD 00DD -00FE 00DE -00FF 0178 -0101 0100 -0103 0102 -0105 0104 -0107 0106 -0109 0108 -010B 010A -010D 010C -010F 010E -0111 0110 -0113 0112 -0115 0114 -0117 0116 -0119 0118 -011B 011A -011D 011C -011F 011E -0121 0120 -0123 0122 -0125 0124 -0127 0126 -0129 0128 -012B 012A -012D 012C -012F 012E -0131 0049 -0133 0132 -0135 0134 -0137 0136 -013A 0139 -013C 013B -013E 013D -0140 013F -0142 0141 -0144 0143 -0146 0145 -0148 0147 -014B 014A -014D 014C -014F 014E -0151 0150 -0153 0152 -0155 0154 -0157 0156 -0159 0158 -015B 015A -015D 015C -015F 015E -0161 0160 -0163 0162 -0165 0164 -0167 0166 -0169 0168 -016B 016A -016D 016C -016F 016E -0171 0170 -0173 0172 -0175 0174 -0177 0176 -017A 0179 -017C 017B -017E 017D -017F 0053 -0183 0182 -0185 0184 -0188 0187 -018C 018B -0192 0191 -0195 01F6 -0199 0198 -019E 0220 -01A1 01A0 -01A3 01A2 -01A5 01A4 -01A8 01A7 -01AD 01AC -01B0 01AF -01B4 01B3 -01B6 01B5 -01B9 01B8 -01BD 01BC -01BF 01F7 -01C4 01C5 -01C6 01C5 -01C7 01C8 -01C9 01C8 -01CA 01CB -01CC 01CB -01CE 01CD -01D0 01CF -01D2 01D1 -01D4 01D3 -01D6 01D5 -01D8 01D7 -01DA 01D9 -01DC 01DB -01DD 018E -01DF 01DE -01E1 01E0 -01E3 01E2 -01E5 01E4 -01E7 01E6 -01E9 01E8 -01EB 01EA -01ED 01EC -01EF 01EE -01F1 01F2 -01F3 01F2 -01F5 01F4 -01F9 01F8 -01FB 01FA -01FD 01FC -01FF 01FE -0201 0200 -0203 0202 -0205 0204 -0207 0206 -0209 0208 -020B 020A -020D 020C -020F 020E -0211 0210 -0213 0212 -0215 0214 -0217 0216 -0219 0218 -021B 021A -021D 021C -021F 021E -0223 0222 -0225 0224 -0227 0226 -0229 0228 -022B 022A -022D 022C -022F 022E -0231 0230 -0233 0232 -0253 0181 -0254 0186 -0256 0189 -0257 018A -0259 018F -025B 0190 -0260 0193 -0263 0194 -0268 0197 -0269 0196 -026F 019C -0272 019D -0275 019F -0280 01A6 -0283 01A9 -0288 01AE -028A 01B1 -028B 01B2 -0292 01B7 -0345 0399 -03AC 0386 -03AD 0388 -03AE 0389 -03AF 038A -03B1 0391 -03B2 0392 -03B3 0393 -03B4 0394 -03B5 0395 -03B6 0396 -03B7 0397 -03B8 0398 -03B9 0399 -03BA 039A -03BB 039B -03BC 039C -03BD 039D -03BE 039E -03BF 039F -03C0 03A0 -03C1 03A1 -03C2 03A3 -03C3 03A3 -03C4 03A4 -03C5 03A5 -03C6 03A6 -03C7 03A7 -03C8 03A8 -03C9 03A9 -03CA 03AA -03CB 03AB -03CC 038C -03CD 038E -03CE 038F -03D0 0392 -03D1 0398 -03D5 03A6 -03D6 03A0 -03D9 03D8 -03DB 03DA -03DD 03DC -03DF 03DE -03E1 03E0 -03E3 03E2 -03E5 03E4 -03E7 03E6 -03E9 03E8 -03EB 03EA -03ED 03EC -03EF 03EE -03F0 039A -03F1 03A1 -03F2 03A3 -03F5 0395 -0430 0410 -0431 0411 -0432 0412 -0433 0413 -0434 0414 -0435 0415 -0436 0416 -0437 0417 -0438 0418 -0439 0419 -043A 041A -043B 041B -043C 041C -043D 041D -043E 041E -043F 041F -0440 0420 -0441 0421 -0442 0422 -0443 0423 -0444 0424 -0445 0425 -0446 0426 -0447 0427 -0448 0428 -0449 0429 -044A 042A -044B 042B -044C 042C -044D 042D -044E 042E -044F 042F -0450 0400 -0451 0401 -0452 0402 -0453 0403 -0454 0404 -0455 0405 -0456 0406 -0457 0407 -0458 0408 -0459 0409 -045A 040A -045B 040B -045C 040C -045D 040D -045E 040E -045F 040F -0461 0460 -0463 0462 -0465 0464 -0467 0466 -0469 0468 -046B 046A -046D 046C -046F 046E -0471 0470 -0473 0472 -0475 0474 -0477 0476 -0479 0478 -047B 047A -047D 047C -047F 047E -0481 0480 -048B 048A -048D 048C -048F 048E -0491 0490 -0493 0492 -0495 0494 -0497 0496 -0499 0498 -049B 049A -049D 049C -049F 049E -04A1 04A0 -04A3 04A2 -04A5 04A4 -04A7 04A6 -04A9 04A8 -04AB 04AA -04AD 04AC -04AF 04AE -04B1 04B0 -04B3 04B2 -04B5 04B4 -04B7 04B6 -04B9 04B8 -04BB 04BA -04BD 04BC -04BF 04BE -04C2 04C1 -04C4 04C3 -04C6 04C5 -04C8 04C7 -04CA 04C9 -04CC 04CB -04CE 04CD -04D1 04D0 -04D3 04D2 -04D5 04D4 -04D7 04D6 -04D9 04D8 -04DB 04DA -04DD 04DC -04DF 04DE -04E1 04E0 -04E3 04E2 -04E5 04E4 -04E7 04E6 -04E9 04E8 -04EB 04EA -04ED 04EC -04EF 04EE -04F1 04F0 -04F3 04F2 -04F5 04F4 -04F9 04F8 -0501 0500 -0503 0502 -0505 0504 -0507 0506 -0509 0508 -050B 050A -050D 050C -050F 050E -0561 0531 -0562 0532 -0563 0533 -0564 0534 -0565 0535 -0566 0536 -0567 0537 -0568 0538 -0569 0539 -056A 053A -056B 053B -056C 053C -056D 053D -056E 053E -056F 053F -0570 0540 -0571 0541 -0572 0542 -0573 0543 -0574 0544 -0575 0545 -0576 0546 -0577 0547 -0578 0548 -0579 0549 -057A 054A -057B 054B -057C 054C -057D 054D -057E 054E -057F 054F -0580 0550 -0581 0551 -0582 0552 -0583 0553 -0584 0554 -0585 0555 -0586 0556 -1E01 1E00 -1E03 1E02 -1E05 1E04 -1E07 1E06 -1E09 1E08 -1E0B 1E0A -1E0D 1E0C -1E0F 1E0E -1E11 1E10 -1E13 1E12 -1E15 1E14 -1E17 1E16 -1E19 1E18 -1E1B 1E1A -1E1D 1E1C -1E1F 1E1E -1E21 1E20 -1E23 1E22 -1E25 1E24 -1E27 1E26 -1E29 1E28 -1E2B 1E2A -1E2D 1E2C -1E2F 1E2E -1E31 1E30 -1E33 1E32 -1E35 1E34 -1E37 1E36 -1E39 1E38 -1E3B 1E3A -1E3D 1E3C -1E3F 1E3E -1E41 1E40 -1E43 1E42 -1E45 1E44 -1E47 1E46 -1E49 1E48 -1E4B 1E4A -1E4D 1E4C -1E4F 1E4E -1E51 1E50 -1E53 1E52 -1E55 1E54 -1E57 1E56 -1E59 1E58 -1E5B 1E5A -1E5D 1E5C -1E5F 1E5E -1E61 1E60 -1E63 1E62 -1E65 1E64 -1E67 1E66 -1E69 1E68 -1E6B 1E6A -1E6D 1E6C -1E6F 1E6E -1E71 1E70 -1E73 1E72 -1E75 1E74 -1E77 1E76 -1E79 1E78 -1E7B 1E7A -1E7D 1E7C -1E7F 1E7E -1E81 1E80 -1E83 1E82 -1E85 1E84 -1E87 1E86 -1E89 1E88 -1E8B 1E8A -1E8D 1E8C -1E8F 1E8E -1E91 1E90 -1E93 1E92 -1E95 1E94 -1E9B 1E60 -1EA1 1EA0 -1EA3 1EA2 -1EA5 1EA4 -1EA7 1EA6 -1EA9 1EA8 -1EAB 1EAA -1EAD 1EAC -1EAF 1EAE -1EB1 1EB0 -1EB3 1EB2 -1EB5 1EB4 -1EB7 1EB6 -1EB9 1EB8 -1EBB 1EBA -1EBD 1EBC -1EBF 1EBE -1EC1 1EC0 -1EC3 1EC2 -1EC5 1EC4 -1EC7 1EC6 -1EC9 1EC8 -1ECB 1ECA -1ECD 1ECC -1ECF 1ECE -1ED1 1ED0 -1ED3 1ED2 -1ED5 1ED4 -1ED7 1ED6 -1ED9 1ED8 -1EDB 1EDA -1EDD 1EDC -1EDF 1EDE -1EE1 1EE0 -1EE3 1EE2 -1EE5 1EE4 -1EE7 1EE6 -1EE9 1EE8 -1EEB 1EEA -1EED 1EEC -1EEF 1EEE -1EF1 1EF0 -1EF3 1EF2 -1EF5 1EF4 -1EF7 1EF6 -1EF9 1EF8 -1F00 1F08 -1F01 1F09 -1F02 1F0A -1F03 1F0B -1F04 1F0C -1F05 1F0D -1F06 1F0E -1F07 1F0F -1F10 1F18 -1F11 1F19 -1F12 1F1A -1F13 1F1B -1F14 1F1C -1F15 1F1D -1F20 1F28 -1F21 1F29 -1F22 1F2A -1F23 1F2B -1F24 1F2C -1F25 1F2D -1F26 1F2E -1F27 1F2F -1F30 1F38 -1F31 1F39 -1F32 1F3A -1F33 1F3B -1F34 1F3C -1F35 1F3D -1F36 1F3E -1F37 1F3F -1F40 1F48 -1F41 1F49 -1F42 1F4A -1F43 1F4B -1F44 1F4C -1F45 1F4D -1F51 1F59 -1F53 1F5B -1F55 1F5D -1F57 1F5F -1F60 1F68 -1F61 1F69 -1F62 1F6A -1F63 1F6B -1F64 1F6C -1F65 1F6D -1F66 1F6E -1F67 1F6F -1F70 1FBA -1F71 1FBB -1F72 1FC8 -1F73 1FC9 -1F74 1FCA -1F75 1FCB -1F76 1FDA -1F77 1FDB -1F78 1FF8 -1F79 1FF9 -1F7A 1FEA -1F7B 1FEB -1F7C 1FFA -1F7D 1FFB -1FB0 1FB8 -1FB1 1FB9 -1FBE 0399 -1FD0 1FD8 -1FD1 1FD9 -1FE0 1FE8 -1FE1 1FE9 -1FE5 1FEC -2170 2160 -2171 2161 -2172 2162 -2173 2163 -2174 2164 -2175 2165 -2176 2166 -2177 2167 -2178 2168 -2179 2169 -217A 216A -217B 216B -217C 216C -217D 216D -217E 216E -217F 216F -24D0 24B6 -24D1 24B7 -24D2 24B8 -24D3 24B9 -24D4 24BA -24D5 24BB -24D6 24BC -24D7 24BD -24D8 24BE -24D9 24BF -24DA 24C0 -24DB 24C1 -24DC 24C2 -24DD 24C3 -24DE 24C4 -24DF 24C5 -24E0 24C6 -24E1 24C7 -24E2 24C8 -24E3 24C9 -24E4 24CA -24E5 24CB -24E6 24CC -24E7 24CD -24E8 24CE -24E9 24CF -FF41 FF21 -FF42 FF22 -FF43 FF23 -FF44 FF24 -FF45 FF25 -FF46 FF26 -FF47 FF27 -FF48 FF28 -FF49 FF29 -FF4A FF2A -FF4B FF2B -FF4C FF2C -FF4D FF2D -FF4E FF2E -FF4F FF2F -FF50 FF30 -FF51 FF31 -FF52 FF32 -FF53 FF33 -FF54 FF34 -FF55 FF35 -FF56 FF36 -FF57 FF37 -FF58 FF38 -FF59 FF39 -FF5A FF3A -10428 10400 -10429 10401 -1042A 10402 -1042B 10403 -1042C 10404 -1042D 10405 -1042E 10406 -1042F 10407 -10430 10408 -10431 10409 -10432 1040A -10433 1040B -10434 1040C -10435 1040D -10436 1040E -10437 1040F -10438 10410 -10439 10411 -1043A 10412 -1043B 10413 -1043C 10414 -1043D 10415 -1043E 10416 -1043F 10417 -10440 10418 -10441 10419 -10442 1041A -10443 1041B -10444 1041C -10445 1041D -10446 1041E -10447 1041F -10448 10420 -10449 10421 -1044A 10422 -1044B 10423 -1044C 10424 -1044D 10425 -END diff --git a/gnu/usr.bin/perl/lib/unicore/To/Upper.pl b/gnu/usr.bin/perl/lib/unicore/To/Upper.pl deleted file mode 100644 index 0d1596f72d6..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/To/Upper.pl +++ /dev/null @@ -1,845 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - - -%utf8::ToSpecUpper = -( -'00DF' => "\x{0053}\x{0053}", -'0149' => "\x{02BC}\x{004E}", -'01F0' => "\x{004A}\x{030C}", -'0390' => "\x{0399}\x{0308}\x{0301}", -'03B0' => "\x{03A5}\x{0308}\x{0301}", -'0587' => "\x{0535}\x{0552}", -'1E96' => "\x{0048}\x{0331}", -'1E97' => "\x{0054}\x{0308}", -'1E98' => "\x{0057}\x{030A}", -'1E99' => "\x{0059}\x{030A}", -'1E9A' => "\x{0041}\x{02BE}", -'1F50' => "\x{03A5}\x{0313}", -'1F52' => "\x{03A5}\x{0313}\x{0300}", -'1F54' => "\x{03A5}\x{0313}\x{0301}", -'1F56' => "\x{03A5}\x{0313}\x{0342}", -'1F80' => "\x{1F08}\x{0399}", -'1F81' => "\x{1F09}\x{0399}", -'1F82' => "\x{1F0A}\x{0399}", -'1F83' => "\x{1F0B}\x{0399}", -'1F84' => "\x{1F0C}\x{0399}", -'1F85' => "\x{1F0D}\x{0399}", -'1F86' => "\x{1F0E}\x{0399}", -'1F87' => "\x{1F0F}\x{0399}", -'1F88' => "\x{1F08}\x{0399}", -'1F89' => "\x{1F09}\x{0399}", -'1F8A' => "\x{1F0A}\x{0399}", -'1F8B' => "\x{1F0B}\x{0399}", -'1F8C' => "\x{1F0C}\x{0399}", -'1F8D' => "\x{1F0D}\x{0399}", -'1F8E' => "\x{1F0E}\x{0399}", -'1F8F' => "\x{1F0F}\x{0399}", -'1F90' => "\x{1F28}\x{0399}", -'1F91' => "\x{1F29}\x{0399}", -'1F92' => "\x{1F2A}\x{0399}", -'1F93' => "\x{1F2B}\x{0399}", -'1F94' => "\x{1F2C}\x{0399}", -'1F95' => "\x{1F2D}\x{0399}", -'1F96' => "\x{1F2E}\x{0399}", -'1F97' => "\x{1F2F}\x{0399}", -'1F98' => "\x{1F28}\x{0399}", -'1F99' => "\x{1F29}\x{0399}", -'1F9A' => "\x{1F2A}\x{0399}", -'1F9B' => "\x{1F2B}\x{0399}", -'1F9C' => "\x{1F2C}\x{0399}", -'1F9D' => "\x{1F2D}\x{0399}", -'1F9E' => "\x{1F2E}\x{0399}", -'1F9F' => "\x{1F2F}\x{0399}", -'1FA0' => "\x{1F68}\x{0399}", -'1FA1' => "\x{1F69}\x{0399}", -'1FA2' => "\x{1F6A}\x{0399}", -'1FA3' => "\x{1F6B}\x{0399}", -'1FA4' => "\x{1F6C}\x{0399}", -'1FA5' => "\x{1F6D}\x{0399}", -'1FA6' => "\x{1F6E}\x{0399}", -'1FA7' => "\x{1F6F}\x{0399}", -'1FA8' => "\x{1F68}\x{0399}", -'1FA9' => "\x{1F69}\x{0399}", -'1FAA' => "\x{1F6A}\x{0399}", -'1FAB' => "\x{1F6B}\x{0399}", -'1FAC' => "\x{1F6C}\x{0399}", -'1FAD' => "\x{1F6D}\x{0399}", -'1FAE' => "\x{1F6E}\x{0399}", -'1FAF' => "\x{1F6F}\x{0399}", -'1FB2' => "\x{1FBA}\x{0399}", -'1FB3' => "\x{0391}\x{0399}", -'1FB4' => "\x{0386}\x{0399}", -'1FB6' => "\x{0391}\x{0342}", -'1FB7' => "\x{0391}\x{0342}\x{0399}", -'1FBC' => "\x{0391}\x{0399}", -'1FC2' => "\x{1FCA}\x{0399}", -'1FC3' => "\x{0397}\x{0399}", -'1FC4' => "\x{0389}\x{0399}", -'1FC6' => "\x{0397}\x{0342}", -'1FC7' => "\x{0397}\x{0342}\x{0399}", -'1FCC' => "\x{0397}\x{0399}", -'1FD2' => "\x{0399}\x{0308}\x{0300}", -'1FD3' => "\x{0399}\x{0308}\x{0301}", -'1FD6' => "\x{0399}\x{0342}", -'1FD7' => "\x{0399}\x{0308}\x{0342}", -'1FE2' => "\x{03A5}\x{0308}\x{0300}", -'1FE3' => "\x{03A5}\x{0308}\x{0301}", -'1FE4' => "\x{03A1}\x{0313}", -'1FE6' => "\x{03A5}\x{0342}", -'1FE7' => "\x{03A5}\x{0308}\x{0342}", -'1FF2' => "\x{1FFA}\x{0399}", -'1FF3' => "\x{03A9}\x{0399}", -'1FF4' => "\x{038F}\x{0399}", -'1FF6' => "\x{03A9}\x{0342}", -'1FF7' => "\x{03A9}\x{0342}\x{0399}", -'1FFC' => "\x{03A9}\x{0399}", -'FB00' => "\x{0046}\x{0046}", -'FB01' => "\x{0046}\x{0049}", -'FB02' => "\x{0046}\x{004C}", -'FB03' => "\x{0046}\x{0046}\x{0049}", -'FB04' => "\x{0046}\x{0046}\x{004C}", -'FB05' => "\x{0053}\x{0054}", -'FB06' => "\x{0053}\x{0054}", -'FB13' => "\x{0544}\x{0546}", -'FB14' => "\x{0544}\x{0535}", -'FB15' => "\x{0544}\x{053B}", -'FB16' => "\x{054E}\x{0546}", -'FB17' => "\x{0544}\x{053D}", -); - -return <<'END'; -0061 0041 -0062 0042 -0063 0043 -0064 0044 -0065 0045 -0066 0046 -0067 0047 -0068 0048 -0069 0049 -006A 004A -006B 004B -006C 004C -006D 004D -006E 004E -006F 004F -0070 0050 -0071 0051 -0072 0052 -0073 0053 -0074 0054 -0075 0055 -0076 0056 -0077 0057 -0078 0058 -0079 0059 -007A 005A -00B5 039C -00E0 00C0 -00E1 00C1 -00E2 00C2 -00E3 00C3 -00E4 00C4 -00E5 00C5 -00E6 00C6 -00E7 00C7 -00E8 00C8 -00E9 00C9 -00EA 00CA -00EB 00CB -00EC 00CC -00ED 00CD -00EE 00CE -00EF 00CF -00F0 00D0 -00F1 00D1 -00F2 00D2 -00F3 00D3 -00F4 00D4 -00F5 00D5 -00F6 00D6 -00F8 00D8 -00F9 00D9 -00FA 00DA -00FB 00DB -00FC 00DC -00FD 00DD -00FE 00DE -00FF 0178 -0101 0100 -0103 0102 -0105 0104 -0107 0106 -0109 0108 -010B 010A -010D 010C -010F 010E -0111 0110 -0113 0112 -0115 0114 -0117 0116 -0119 0118 -011B 011A -011D 011C -011F 011E -0121 0120 -0123 0122 -0125 0124 -0127 0126 -0129 0128 -012B 012A -012D 012C -012F 012E -0131 0049 -0133 0132 -0135 0134 -0137 0136 -013A 0139 -013C 013B -013E 013D -0140 013F -0142 0141 -0144 0143 -0146 0145 -0148 0147 -014B 014A -014D 014C -014F 014E -0151 0150 -0153 0152 -0155 0154 -0157 0156 -0159 0158 -015B 015A -015D 015C -015F 015E -0161 0160 -0163 0162 -0165 0164 -0167 0166 -0169 0168 -016B 016A -016D 016C -016F 016E -0171 0170 -0173 0172 -0175 0174 -0177 0176 -017A 0179 -017C 017B -017E 017D -017F 0053 -0183 0182 -0185 0184 -0188 0187 -018C 018B -0192 0191 -0195 01F6 -0199 0198 -019E 0220 -01A1 01A0 -01A3 01A2 -01A5 01A4 -01A8 01A7 -01AD 01AC -01B0 01AF -01B4 01B3 -01B6 01B5 -01B9 01B8 -01BD 01BC -01BF 01F7 -01C5 01C4 -01C6 01C4 -01C8 01C7 -01C9 01C7 -01CB 01CA -01CC 01CA -01CE 01CD -01D0 01CF -01D2 01D1 -01D4 01D3 -01D6 01D5 -01D8 01D7 -01DA 01D9 -01DC 01DB -01DD 018E -01DF 01DE -01E1 01E0 -01E3 01E2 -01E5 01E4 -01E7 01E6 -01E9 01E8 -01EB 01EA -01ED 01EC -01EF 01EE -01F2 01F1 -01F3 01F1 -01F5 01F4 -01F9 01F8 -01FB 01FA -01FD 01FC -01FF 01FE -0201 0200 -0203 0202 -0205 0204 -0207 0206 -0209 0208 -020B 020A -020D 020C -020F 020E -0211 0210 -0213 0212 -0215 0214 -0217 0216 -0219 0218 -021B 021A -021D 021C -021F 021E -0223 0222 -0225 0224 -0227 0226 -0229 0228 -022B 022A -022D 022C -022F 022E -0231 0230 -0233 0232 -0253 0181 -0254 0186 -0256 0189 -0257 018A -0259 018F -025B 0190 -0260 0193 -0263 0194 -0268 0197 -0269 0196 -026F 019C -0272 019D -0275 019F -0280 01A6 -0283 01A9 -0288 01AE -028A 01B1 -028B 01B2 -0292 01B7 -0345 0399 -03AC 0386 -03AD 0388 -03AE 0389 -03AF 038A -03B1 0391 -03B2 0392 -03B3 0393 -03B4 0394 -03B5 0395 -03B6 0396 -03B7 0397 -03B8 0398 -03B9 0399 -03BA 039A -03BB 039B -03BC 039C -03BD 039D -03BE 039E -03BF 039F -03C0 03A0 -03C1 03A1 -03C2 03A3 -03C3 03A3 -03C4 03A4 -03C5 03A5 -03C6 03A6 -03C7 03A7 -03C8 03A8 -03C9 03A9 -03CA 03AA -03CB 03AB -03CC 038C -03CD 038E -03CE 038F -03D0 0392 -03D1 0398 -03D5 03A6 -03D6 03A0 -03D9 03D8 -03DB 03DA -03DD 03DC -03DF 03DE -03E1 03E0 -03E3 03E2 -03E5 03E4 -03E7 03E6 -03E9 03E8 -03EB 03EA -03ED 03EC -03EF 03EE -03F0 039A -03F1 03A1 -03F2 03A3 -03F5 0395 -0430 0410 -0431 0411 -0432 0412 -0433 0413 -0434 0414 -0435 0415 -0436 0416 -0437 0417 -0438 0418 -0439 0419 -043A 041A -043B 041B -043C 041C -043D 041D -043E 041E -043F 041F -0440 0420 -0441 0421 -0442 0422 -0443 0423 -0444 0424 -0445 0425 -0446 0426 -0447 0427 -0448 0428 -0449 0429 -044A 042A -044B 042B -044C 042C -044D 042D -044E 042E -044F 042F -0450 0400 -0451 0401 -0452 0402 -0453 0403 -0454 0404 -0455 0405 -0456 0406 -0457 0407 -0458 0408 -0459 0409 -045A 040A -045B 040B -045C 040C -045D 040D -045E 040E -045F 040F -0461 0460 -0463 0462 -0465 0464 -0467 0466 -0469 0468 -046B 046A -046D 046C -046F 046E -0471 0470 -0473 0472 -0475 0474 -0477 0476 -0479 0478 -047B 047A -047D 047C -047F 047E -0481 0480 -048B 048A -048D 048C -048F 048E -0491 0490 -0493 0492 -0495 0494 -0497 0496 -0499 0498 -049B 049A -049D 049C -049F 049E -04A1 04A0 -04A3 04A2 -04A5 04A4 -04A7 04A6 -04A9 04A8 -04AB 04AA -04AD 04AC -04AF 04AE -04B1 04B0 -04B3 04B2 -04B5 04B4 -04B7 04B6 -04B9 04B8 -04BB 04BA -04BD 04BC -04BF 04BE -04C2 04C1 -04C4 04C3 -04C6 04C5 -04C8 04C7 -04CA 04C9 -04CC 04CB -04CE 04CD -04D1 04D0 -04D3 04D2 -04D5 04D4 -04D7 04D6 -04D9 04D8 -04DB 04DA -04DD 04DC -04DF 04DE -04E1 04E0 -04E3 04E2 -04E5 04E4 -04E7 04E6 -04E9 04E8 -04EB 04EA -04ED 04EC -04EF 04EE -04F1 04F0 -04F3 04F2 -04F5 04F4 -04F9 04F8 -0501 0500 -0503 0502 -0505 0504 -0507 0506 -0509 0508 -050B 050A -050D 050C -050F 050E -0561 0531 -0562 0532 -0563 0533 -0564 0534 -0565 0535 -0566 0536 -0567 0537 -0568 0538 -0569 0539 -056A 053A -056B 053B -056C 053C -056D 053D -056E 053E -056F 053F -0570 0540 -0571 0541 -0572 0542 -0573 0543 -0574 0544 -0575 0545 -0576 0546 -0577 0547 -0578 0548 -0579 0549 -057A 054A -057B 054B -057C 054C -057D 054D -057E 054E -057F 054F -0580 0550 -0581 0551 -0582 0552 -0583 0553 -0584 0554 -0585 0555 -0586 0556 -1E01 1E00 -1E03 1E02 -1E05 1E04 -1E07 1E06 -1E09 1E08 -1E0B 1E0A -1E0D 1E0C -1E0F 1E0E -1E11 1E10 -1E13 1E12 -1E15 1E14 -1E17 1E16 -1E19 1E18 -1E1B 1E1A -1E1D 1E1C -1E1F 1E1E -1E21 1E20 -1E23 1E22 -1E25 1E24 -1E27 1E26 -1E29 1E28 -1E2B 1E2A -1E2D 1E2C -1E2F 1E2E -1E31 1E30 -1E33 1E32 -1E35 1E34 -1E37 1E36 -1E39 1E38 -1E3B 1E3A -1E3D 1E3C -1E3F 1E3E -1E41 1E40 -1E43 1E42 -1E45 1E44 -1E47 1E46 -1E49 1E48 -1E4B 1E4A -1E4D 1E4C -1E4F 1E4E -1E51 1E50 -1E53 1E52 -1E55 1E54 -1E57 1E56 -1E59 1E58 -1E5B 1E5A -1E5D 1E5C -1E5F 1E5E -1E61 1E60 -1E63 1E62 -1E65 1E64 -1E67 1E66 -1E69 1E68 -1E6B 1E6A -1E6D 1E6C -1E6F 1E6E -1E71 1E70 -1E73 1E72 -1E75 1E74 -1E77 1E76 -1E79 1E78 -1E7B 1E7A -1E7D 1E7C -1E7F 1E7E -1E81 1E80 -1E83 1E82 -1E85 1E84 -1E87 1E86 -1E89 1E88 -1E8B 1E8A -1E8D 1E8C -1E8F 1E8E -1E91 1E90 -1E93 1E92 -1E95 1E94 -1E9B 1E60 -1EA1 1EA0 -1EA3 1EA2 -1EA5 1EA4 -1EA7 1EA6 -1EA9 1EA8 -1EAB 1EAA -1EAD 1EAC -1EAF 1EAE -1EB1 1EB0 -1EB3 1EB2 -1EB5 1EB4 -1EB7 1EB6 -1EB9 1EB8 -1EBB 1EBA -1EBD 1EBC -1EBF 1EBE -1EC1 1EC0 -1EC3 1EC2 -1EC5 1EC4 -1EC7 1EC6 -1EC9 1EC8 -1ECB 1ECA -1ECD 1ECC -1ECF 1ECE -1ED1 1ED0 -1ED3 1ED2 -1ED5 1ED4 -1ED7 1ED6 -1ED9 1ED8 -1EDB 1EDA -1EDD 1EDC -1EDF 1EDE -1EE1 1EE0 -1EE3 1EE2 -1EE5 1EE4 -1EE7 1EE6 -1EE9 1EE8 -1EEB 1EEA -1EED 1EEC -1EEF 1EEE -1EF1 1EF0 -1EF3 1EF2 -1EF5 1EF4 -1EF7 1EF6 -1EF9 1EF8 -1F00 1F08 -1F01 1F09 -1F02 1F0A -1F03 1F0B -1F04 1F0C -1F05 1F0D -1F06 1F0E -1F07 1F0F -1F10 1F18 -1F11 1F19 -1F12 1F1A -1F13 1F1B -1F14 1F1C -1F15 1F1D -1F20 1F28 -1F21 1F29 -1F22 1F2A -1F23 1F2B -1F24 1F2C -1F25 1F2D -1F26 1F2E -1F27 1F2F -1F30 1F38 -1F31 1F39 -1F32 1F3A -1F33 1F3B -1F34 1F3C -1F35 1F3D -1F36 1F3E -1F37 1F3F -1F40 1F48 -1F41 1F49 -1F42 1F4A -1F43 1F4B -1F44 1F4C -1F45 1F4D -1F51 1F59 -1F53 1F5B -1F55 1F5D -1F57 1F5F -1F60 1F68 -1F61 1F69 -1F62 1F6A -1F63 1F6B -1F64 1F6C -1F65 1F6D -1F66 1F6E -1F67 1F6F -1F70 1FBA -1F71 1FBB -1F72 1FC8 -1F73 1FC9 -1F74 1FCA -1F75 1FCB -1F76 1FDA -1F77 1FDB -1F78 1FF8 -1F79 1FF9 -1F7A 1FEA -1F7B 1FEB -1F7C 1FFA -1F7D 1FFB -1FB0 1FB8 -1FB1 1FB9 -1FBE 0399 -1FD0 1FD8 -1FD1 1FD9 -1FE0 1FE8 -1FE1 1FE9 -1FE5 1FEC -2170 2160 -2171 2161 -2172 2162 -2173 2163 -2174 2164 -2175 2165 -2176 2166 -2177 2167 -2178 2168 -2179 2169 -217A 216A -217B 216B -217C 216C -217D 216D -217E 216E -217F 216F -24D0 24B6 -24D1 24B7 -24D2 24B8 -24D3 24B9 -24D4 24BA -24D5 24BB -24D6 24BC -24D7 24BD -24D8 24BE -24D9 24BF -24DA 24C0 -24DB 24C1 -24DC 24C2 -24DD 24C3 -24DE 24C4 -24DF 24C5 -24E0 24C6 -24E1 24C7 -24E2 24C8 -24E3 24C9 -24E4 24CA -24E5 24CB -24E6 24CC -24E7 24CD -24E8 24CE -24E9 24CF -FF41 FF21 -FF42 FF22 -FF43 FF23 -FF44 FF24 -FF45 FF25 -FF46 FF26 -FF47 FF27 -FF48 FF28 -FF49 FF29 -FF4A FF2A -FF4B FF2B -FF4C FF2C -FF4D FF2D -FF4E FF2E -FF4F FF2F -FF50 FF30 -FF51 FF31 -FF52 FF32 -FF53 FF33 -FF54 FF34 -FF55 FF35 -FF56 FF36 -FF57 FF37 -FF58 FF38 -FF59 FF39 -FF5A FF3A -10428 10400 -10429 10401 -1042A 10402 -1042B 10403 -1042C 10404 -1042D 10405 -1042E 10406 -1042F 10407 -10430 10408 -10431 10409 -10432 1040A -10433 1040B -10434 1040C -10435 1040D -10436 1040E -10437 1040F -10438 10410 -10439 10411 -1043A 10412 -1043B 10413 -1043C 10414 -1043D 10415 -1043E 10416 -1043F 10417 -10440 10418 -10441 10419 -10442 1041A -10443 1041B -10444 1041C -10445 1041D -10446 1041E -10447 1041F -10448 10420 -10449 10421 -1044A 10422 -1044B 10423 -1044C 10424 -1044D 10425 -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/ASCII.pl b/gnu/usr.bin/perl/lib/unicore/lib/ASCII.pl deleted file mode 100644 index 42aa565bc1f..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/ASCII.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{ASCII} -# -# Meaning: [[:ASCII:]] -# -return <<'END'; -0000 007F -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Alnum.pl b/gnu/usr.bin/perl/lib/unicore/lib/Alnum.pl deleted file mode 100644 index 0ec13c55c44..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Alnum.pl +++ /dev/null @@ -1,423 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Alnum} -# -# Meaning: [[:Alnum:]] -# -return <<'END'; -0030 0039 -0041 005A -0061 007A -00AA -00B2 00B3 -00B5 -00B9 00BA -00BC 00BE -00C0 00D6 -00D8 00F6 -00F8 0220 -0222 0233 -0250 02AD -02B0 02B8 -02BB 02C1 -02D0 02D1 -02E0 02E4 -02EE -0300 034F -0360 036F -037A -0386 -0388 038A -038C -038E 03A1 -03A3 03CE -03D0 03F5 -0400 0481 -0483 0486 -0488 04CE -04D0 04F5 -04F8 04F9 -0500 050F -0531 0556 -0559 -0561 0587 -0591 05A1 -05A3 05B9 -05BB 05BD -05BF -05C1 05C2 -05C4 -05D0 05EA -05F0 05F2 -0621 063A -0640 0655 -0660 0669 -066E 06D3 -06D5 06DC -06DE 06E8 -06EA 06ED -06F0 06FC -0710 072C -0730 074A -0780 07B1 -0901 0903 -0905 0939 -093C 094D -0950 0954 -0958 0963 -0966 096F -0981 0983 -0985 098C -098F 0990 -0993 09A8 -09AA 09B0 -09B2 -09B6 09B9 -09BC -09BE 09C4 -09C7 09C8 -09CB 09CD -09D7 -09DC 09DD -09DF 09E3 -09E6 09F1 -09F4 09F9 -0A02 -0A05 0A0A -0A0F 0A10 -0A13 0A28 -0A2A 0A30 -0A32 0A33 -0A35 0A36 -0A38 0A39 -0A3C -0A3E 0A42 -0A47 0A48 -0A4B 0A4D -0A59 0A5C -0A5E -0A66 0A74 -0A81 0A83 -0A85 0A8B -0A8D -0A8F 0A91 -0A93 0AA8 -0AAA 0AB0 -0AB2 0AB3 -0AB5 0AB9 -0ABC 0AC5 -0AC7 0AC9 -0ACB 0ACD -0AD0 -0AE0 -0AE6 0AEF -0B01 0B03 -0B05 0B0C -0B0F 0B10 -0B13 0B28 -0B2A 0B30 -0B32 0B33 -0B36 0B39 -0B3C 0B43 -0B47 0B48 -0B4B 0B4D -0B56 0B57 -0B5C 0B5D -0B5F 0B61 -0B66 0B6F -0B82 0B83 -0B85 0B8A -0B8E 0B90 -0B92 0B95 -0B99 0B9A -0B9C -0B9E 0B9F -0BA3 0BA4 -0BA8 0BAA -0BAE 0BB5 -0BB7 0BB9 -0BBE 0BC2 -0BC6 0BC8 -0BCA 0BCD -0BD7 -0BE7 0BF2 -0C01 0C03 -0C05 0C0C -0C0E 0C10 -0C12 0C28 -0C2A 0C33 -0C35 0C39 -0C3E 0C44 -0C46 0C48 -0C4A 0C4D -0C55 0C56 -0C60 0C61 -0C66 0C6F -0C82 0C83 -0C85 0C8C -0C8E 0C90 -0C92 0CA8 -0CAA 0CB3 -0CB5 0CB9 -0CBE 0CC4 -0CC6 0CC8 -0CCA 0CCD -0CD5 0CD6 -0CDE -0CE0 0CE1 -0CE6 0CEF -0D02 0D03 -0D05 0D0C -0D0E 0D10 -0D12 0D28 -0D2A 0D39 -0D3E 0D43 -0D46 0D48 -0D4A 0D4D -0D57 -0D60 0D61 -0D66 0D6F -0D82 0D83 -0D85 0D96 -0D9A 0DB1 -0DB3 0DBB -0DBD -0DC0 0DC6 -0DCA -0DCF 0DD4 -0DD6 -0DD8 0DDF -0DF2 0DF3 -0E01 0E3A -0E40 0E4E -0E50 0E59 -0E81 0E82 -0E84 -0E87 0E88 -0E8A -0E8D -0E94 0E97 -0E99 0E9F -0EA1 0EA3 -0EA5 -0EA7 -0EAA 0EAB -0EAD 0EB9 -0EBB 0EBD -0EC0 0EC4 -0EC6 -0EC8 0ECD -0ED0 0ED9 -0EDC 0EDD -0F00 -0F18 0F19 -0F20 0F33 -0F35 -0F37 -0F39 -0F3E 0F47 -0F49 0F6A -0F71 0F84 -0F86 0F8B -0F90 0F97 -0F99 0FBC -0FC6 -1000 1021 -1023 1027 -1029 102A -102C 1032 -1036 1039 -1040 1049 -1050 1059 -10A0 10C5 -10D0 10F8 -1100 1159 -115F 11A2 -11A8 11F9 -1200 1206 -1208 1246 -1248 -124A 124D -1250 1256 -1258 -125A 125D -1260 1286 -1288 -128A 128D -1290 12AE -12B0 -12B2 12B5 -12B8 12BE -12C0 -12C2 12C5 -12C8 12CE -12D0 12D6 -12D8 12EE -12F0 130E -1310 -1312 1315 -1318 131E -1320 1346 -1348 135A -1369 137C -13A0 13F4 -1401 166C -166F 1676 -1681 169A -16A0 16EA -16EE 16F0 -1700 170C -170E 1714 -1720 1734 -1740 1753 -1760 176C -176E 1770 -1772 1773 -1780 17D3 -17D7 -17DC -17E0 17E9 -180B 180D -1810 1819 -1820 1877 -1880 18A9 -1E00 1E9B -1EA0 1EF9 -1F00 1F15 -1F18 1F1D -1F20 1F45 -1F48 1F4D -1F50 1F57 -1F59 -1F5B -1F5D -1F5F 1F7D -1F80 1FB4 -1FB6 1FBC -1FBE -1FC2 1FC4 -1FC6 1FCC -1FD0 1FD3 -1FD6 1FDB -1FE0 1FEC -1FF2 1FF4 -1FF6 1FFC -2070 2071 -2074 2079 -207F 2089 -20D0 20EA -2102 -2107 -210A 2113 -2115 -2119 211D -2124 -2126 -2128 -212A 212D -212F 2131 -2133 2139 -213D 213F -2145 2149 -2153 2183 -2460 249B -24EA 24FE -2776 2793 -3005 3007 -3021 302F -3031 3035 -3038 303C -3041 3096 -3099 309A -309D 309F -30A1 30FA -30FC 30FF -3105 312C -3131 318E -3192 3195 -31A0 31B7 -31F0 31FF -3220 3229 -3251 325F -3280 3289 -32B1 32BF -3400 4DB5 -4E00 9FA5 -A000 A48C -AC00 D7A3 -F900 FA2D -FA30 FA6A -FB00 FB06 -FB13 FB17 -FB1D FB28 -FB2A FB36 -FB38 FB3C -FB3E -FB40 FB41 -FB43 FB44 -FB46 FBB1 -FBD3 FD3D -FD50 FD8F -FD92 FDC7 -FDF0 FDFB -FE00 FE0F -FE20 FE23 -FE70 FE74 -FE76 FEFC -FF10 FF19 -FF21 FF3A -FF41 FF5A -FF66 FFBE -FFC2 FFC7 -FFCA FFCF -FFD2 FFD7 -FFDA FFDC -10300 1031E -10320 10323 -10330 1034A -10400 10425 -10428 1044D -1D165 1D169 -1D16D 1D172 -1D17B 1D182 -1D185 1D18B -1D1AA 1D1AD -1D400 1D454 -1D456 1D49C -1D49E 1D49F -1D4A2 -1D4A5 1D4A6 -1D4A9 1D4AC -1D4AE 1D4B9 -1D4BB -1D4BD 1D4C0 -1D4C2 1D4C3 -1D4C5 1D505 -1D507 1D50A -1D50D 1D514 -1D516 1D51C -1D51E 1D539 -1D53B 1D53E -1D540 1D544 -1D546 -1D54A 1D550 -1D552 1D6A3 -1D6A8 1D6C0 -1D6C2 1D6DA -1D6DC 1D6FA -1D6FC 1D714 -1D716 1D734 -1D736 1D74E -1D750 1D76E -1D770 1D788 -1D78A 1D7A8 -1D7AA 1D7C2 -1D7C4 1D7C9 -1D7CE 1D7FF -20000 2A6D6 -2F800 2FA1D -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Alpha.pl b/gnu/usr.bin/perl/lib/unicore/lib/Alpha.pl deleted file mode 100644 index 35b0e3280be..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Alpha.pl +++ /dev/null @@ -1,390 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Alpha} -# -# Meaning: [[:Alpha:]] -# -return <<'END'; -0041 005A -0061 007A -00AA -00B5 -00BA -00C0 00D6 -00D8 00F6 -00F8 0220 -0222 0233 -0250 02AD -02B0 02B8 -02BB 02C1 -02D0 02D1 -02E0 02E4 -02EE -0300 034F -0360 036F -037A -0386 -0388 038A -038C -038E 03A1 -03A3 03CE -03D0 03F5 -0400 0481 -0483 0486 -0488 04CE -04D0 04F5 -04F8 04F9 -0500 050F -0531 0556 -0559 -0561 0587 -0591 05A1 -05A3 05B9 -05BB 05BD -05BF -05C1 05C2 -05C4 -05D0 05EA -05F0 05F2 -0621 063A -0640 0655 -066E 06D3 -06D5 06DC -06DE 06E8 -06EA 06ED -06FA 06FC -0710 072C -0730 074A -0780 07B1 -0901 0903 -0905 0939 -093C 094D -0950 0954 -0958 0963 -0981 0983 -0985 098C -098F 0990 -0993 09A8 -09AA 09B0 -09B2 -09B6 09B9 -09BC -09BE 09C4 -09C7 09C8 -09CB 09CD -09D7 -09DC 09DD -09DF 09E3 -09F0 09F1 -0A02 -0A05 0A0A -0A0F 0A10 -0A13 0A28 -0A2A 0A30 -0A32 0A33 -0A35 0A36 -0A38 0A39 -0A3C -0A3E 0A42 -0A47 0A48 -0A4B 0A4D -0A59 0A5C -0A5E -0A70 0A74 -0A81 0A83 -0A85 0A8B -0A8D -0A8F 0A91 -0A93 0AA8 -0AAA 0AB0 -0AB2 0AB3 -0AB5 0AB9 -0ABC 0AC5 -0AC7 0AC9 -0ACB 0ACD -0AD0 -0AE0 -0B01 0B03 -0B05 0B0C -0B0F 0B10 -0B13 0B28 -0B2A 0B30 -0B32 0B33 -0B36 0B39 -0B3C 0B43 -0B47 0B48 -0B4B 0B4D -0B56 0B57 -0B5C 0B5D -0B5F 0B61 -0B82 0B83 -0B85 0B8A -0B8E 0B90 -0B92 0B95 -0B99 0B9A -0B9C -0B9E 0B9F -0BA3 0BA4 -0BA8 0BAA -0BAE 0BB5 -0BB7 0BB9 -0BBE 0BC2 -0BC6 0BC8 -0BCA 0BCD -0BD7 -0C01 0C03 -0C05 0C0C -0C0E 0C10 -0C12 0C28 -0C2A 0C33 -0C35 0C39 -0C3E 0C44 -0C46 0C48 -0C4A 0C4D -0C55 0C56 -0C60 0C61 -0C82 0C83 -0C85 0C8C -0C8E 0C90 -0C92 0CA8 -0CAA 0CB3 -0CB5 0CB9 -0CBE 0CC4 -0CC6 0CC8 -0CCA 0CCD -0CD5 0CD6 -0CDE -0CE0 0CE1 -0D02 0D03 -0D05 0D0C -0D0E 0D10 -0D12 0D28 -0D2A 0D39 -0D3E 0D43 -0D46 0D48 -0D4A 0D4D -0D57 -0D60 0D61 -0D82 0D83 -0D85 0D96 -0D9A 0DB1 -0DB3 0DBB -0DBD -0DC0 0DC6 -0DCA -0DCF 0DD4 -0DD6 -0DD8 0DDF -0DF2 0DF3 -0E01 0E3A -0E40 0E4E -0E81 0E82 -0E84 -0E87 0E88 -0E8A -0E8D -0E94 0E97 -0E99 0E9F -0EA1 0EA3 -0EA5 -0EA7 -0EAA 0EAB -0EAD 0EB9 -0EBB 0EBD -0EC0 0EC4 -0EC6 -0EC8 0ECD -0EDC 0EDD -0F00 -0F18 0F19 -0F35 -0F37 -0F39 -0F3E 0F47 -0F49 0F6A -0F71 0F84 -0F86 0F8B -0F90 0F97 -0F99 0FBC -0FC6 -1000 1021 -1023 1027 -1029 102A -102C 1032 -1036 1039 -1050 1059 -10A0 10C5 -10D0 10F8 -1100 1159 -115F 11A2 -11A8 11F9 -1200 1206 -1208 1246 -1248 -124A 124D -1250 1256 -1258 -125A 125D -1260 1286 -1288 -128A 128D -1290 12AE -12B0 -12B2 12B5 -12B8 12BE -12C0 -12C2 12C5 -12C8 12CE -12D0 12D6 -12D8 12EE -12F0 130E -1310 -1312 1315 -1318 131E -1320 1346 -1348 135A -13A0 13F4 -1401 166C -166F 1676 -1681 169A -16A0 16EA -1700 170C -170E 1714 -1720 1734 -1740 1753 -1760 176C -176E 1770 -1772 1773 -1780 17D3 -17D7 -17DC -180B 180D -1820 1877 -1880 18A9 -1E00 1E9B -1EA0 1EF9 -1F00 1F15 -1F18 1F1D -1F20 1F45 -1F48 1F4D -1F50 1F57 -1F59 -1F5B -1F5D -1F5F 1F7D -1F80 1FB4 -1FB6 1FBC -1FBE -1FC2 1FC4 -1FC6 1FCC -1FD0 1FD3 -1FD6 1FDB -1FE0 1FEC -1FF2 1FF4 -1FF6 1FFC -2071 -207F -20D0 20EA -2102 -2107 -210A 2113 -2115 -2119 211D -2124 -2126 -2128 -212A 212D -212F 2131 -2133 2139 -213D 213F -2145 2149 -3005 3006 -302A 302F -3031 3035 -303B 303C -3041 3096 -3099 309A -309D 309F -30A1 30FA -30FC 30FF -3105 312C -3131 318E -31A0 31B7 -31F0 31FF -3400 4DB5 -4E00 9FA5 -A000 A48C -AC00 D7A3 -F900 FA2D -FA30 FA6A -FB00 FB06 -FB13 FB17 -FB1D FB28 -FB2A FB36 -FB38 FB3C -FB3E -FB40 FB41 -FB43 FB44 -FB46 FBB1 -FBD3 FD3D -FD50 FD8F -FD92 FDC7 -FDF0 FDFB -FE00 FE0F -FE20 FE23 -FE70 FE74 -FE76 FEFC -FF21 FF3A -FF41 FF5A -FF66 FFBE -FFC2 FFC7 -FFCA FFCF -FFD2 FFD7 -FFDA FFDC -10300 1031E -10330 10349 -10400 10425 -10428 1044D -1D165 1D169 -1D16D 1D172 -1D17B 1D182 -1D185 1D18B -1D1AA 1D1AD -1D400 1D454 -1D456 1D49C -1D49E 1D49F -1D4A2 -1D4A5 1D4A6 -1D4A9 1D4AC -1D4AE 1D4B9 -1D4BB -1D4BD 1D4C0 -1D4C2 1D4C3 -1D4C5 1D505 -1D507 1D50A -1D50D 1D514 -1D516 1D51C -1D51E 1D539 -1D53B 1D53E -1D540 1D544 -1D546 -1D54A 1D550 -1D552 1D6A3 -1D6A8 1D6C0 -1D6C2 1D6DA -1D6DC 1D6FA -1D6FC 1D714 -1D716 1D734 -1D736 1D74E -1D750 1D76E -1D770 1D788 -1D78A 1D7A8 -1D7AA 1D7C2 -1D7C4 1D7C9 -20000 2A6D6 -2F800 2FA1D -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Alphabet.pl b/gnu/usr.bin/perl/lib/unicore/lib/Alphabet.pl deleted file mode 100644 index a909a31f000..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Alphabet.pl +++ /dev/null @@ -1,372 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Alphabetic} (and fuzzy permutations) -# -# Meaning: [\p{L}\p{OtherAlphabetic}] -# -return <<'END'; -0041 005A -0061 007A -00AA -00B5 -00BA -00C0 00D6 -00D8 00F6 -00F8 0220 -0222 0233 -0250 02AD -02B0 02B8 -02BB 02C1 -02D0 02D1 -02E0 02E4 -02EE -0345 -037A -0386 -0388 038A -038C -038E 03A1 -03A3 03CE -03D0 03F5 -0400 0481 -048A 04CE -04D0 04F5 -04F8 04F9 -0500 050F -0531 0556 -0559 -0561 0587 -05B0 05B9 -05BB 05BD -05BF -05C1 05C2 -05C4 -05D0 05EA -05F0 05F2 -0621 063A -0640 0655 -066E 06D3 -06D5 06DC -06E1 06E8 -06ED -06FA 06FC -0710 072C -0730 073F -0780 07B1 -0901 0903 -0905 0939 -093D 094C -0950 -0958 0963 -0981 0983 -0985 098C -098F 0990 -0993 09A8 -09AA 09B0 -09B2 -09B6 09B9 -09BE 09C4 -09C7 09C8 -09CB 09CC -09D7 -09DC 09DD -09DF 09E3 -09F0 09F1 -0A02 -0A05 0A0A -0A0F 0A10 -0A13 0A28 -0A2A 0A30 -0A32 0A33 -0A35 0A36 -0A38 0A39 -0A3E 0A42 -0A47 0A48 -0A4B 0A4C -0A59 0A5C -0A5E -0A70 0A74 -0A81 0A83 -0A85 0A8B -0A8D -0A8F 0A91 -0A93 0AA8 -0AAA 0AB0 -0AB2 0AB3 -0AB5 0AB9 -0ABD 0AC5 -0AC7 0AC9 -0ACB 0ACC -0AD0 -0AE0 -0B01 0B03 -0B05 0B0C -0B0F 0B10 -0B13 0B28 -0B2A 0B30 -0B32 0B33 -0B36 0B39 -0B3D 0B43 -0B47 0B48 -0B4B 0B4C -0B56 0B57 -0B5C 0B5D -0B5F 0B61 -0B82 0B83 -0B85 0B8A -0B8E 0B90 -0B92 0B95 -0B99 0B9A -0B9C -0B9E 0B9F -0BA3 0BA4 -0BA8 0BAA -0BAE 0BB5 -0BB7 0BB9 -0BBE 0BC2 -0BC6 0BC8 -0BCA 0BCC -0BD7 -0C01 0C03 -0C05 0C0C -0C0E 0C10 -0C12 0C28 -0C2A 0C33 -0C35 0C39 -0C3E 0C44 -0C46 0C48 -0C4A 0C4C -0C55 0C56 -0C60 0C61 -0C82 0C83 -0C85 0C8C -0C8E 0C90 -0C92 0CA8 -0CAA 0CB3 -0CB5 0CB9 -0CBE 0CC4 -0CC6 0CC8 -0CCA 0CCC -0CD5 0CD6 -0CDE -0CE0 0CE1 -0D02 0D03 -0D05 0D0C -0D0E 0D10 -0D12 0D28 -0D2A 0D39 -0D3E 0D43 -0D46 0D48 -0D4A 0D4C -0D57 -0D60 0D61 -0D82 0D83 -0D85 0D96 -0D9A 0DB1 -0DB3 0DBB -0DBD -0DC0 0DC6 -0DCF 0DD4 -0DD6 -0DD8 0DDF -0DF2 0DF3 -0E01 0E3A -0E40 0E46 -0E4D -0E81 0E82 -0E84 -0E87 0E88 -0E8A -0E8D -0E94 0E97 -0E99 0E9F -0EA1 0EA3 -0EA5 -0EA7 -0EAA 0EAB -0EAD 0EB9 -0EBB 0EBD -0EC0 0EC4 -0EC6 -0ECD -0EDC 0EDD -0F00 -0F40 0F47 -0F49 0F6A -0F71 0F81 -0F88 0F8B -0F90 0F97 -0F99 0FBC -1000 1021 -1023 1027 -1029 102A -102C 1032 -1036 -1038 -1050 1059 -10A0 10C5 -10D0 10F8 -1100 1159 -115F 11A2 -11A8 11F9 -1200 1206 -1208 1246 -1248 -124A 124D -1250 1256 -1258 -125A 125D -1260 1286 -1288 -128A 128D -1290 12AE -12B0 -12B2 12B5 -12B8 12BE -12C0 -12C2 12C5 -12C8 12CE -12D0 12D6 -12D8 12EE -12F0 130E -1310 -1312 1315 -1318 131E -1320 1346 -1348 135A -13A0 13F4 -1401 166C -166F 1676 -1681 169A -16A0 16EA -16EE 16F0 -1700 170C -170E 1713 -1720 1733 -1740 1753 -1760 176C -176E 1770 -1772 1773 -1780 17C8 -17D7 -17DC -1820 1877 -1880 18A9 -1E00 1E9B -1EA0 1EF9 -1F00 1F15 -1F18 1F1D -1F20 1F45 -1F48 1F4D -1F50 1F57 -1F59 -1F5B -1F5D -1F5F 1F7D -1F80 1FB4 -1FB6 1FBC -1FBE -1FC2 1FC4 -1FC6 1FCC -1FD0 1FD3 -1FD6 1FDB -1FE0 1FEC -1FF2 1FF4 -1FF6 1FFC -2071 -207F -2102 -2107 -210A 2113 -2115 -2119 211D -2124 -2126 -2128 -212A 212D -212F 2131 -2133 2139 -213D 213F -2145 2149 -2160 2183 -3005 3006 -3031 3035 -303B 303C -3041 3096 -309D 309F -30A1 30FA -30FC 30FF -3105 312C -3131 318E -31A0 31B7 -31F0 31FF -3400 4DB5 -4E00 9FA5 -A000 A48C -AC00 D7A3 -F900 FA2D -FA30 FA6A -FB00 FB06 -FB13 FB17 -FB1D FB28 -FB2A FB36 -FB38 FB3C -FB3E -FB40 FB41 -FB43 FB44 -FB46 FBB1 -FBD3 FD3D -FD50 FD8F -FD92 FDC7 -FDF0 FDFB -FE70 FE74 -FE76 FEFC -FF21 FF3A -FF41 FF5A -FF66 FFBE -FFC2 FFC7 -FFCA FFCF -FFD2 FFD7 -FFDA FFDC -10300 1031E -10330 1034A -10400 10425 -10428 1044D -1D400 1D454 -1D456 1D49C -1D49E 1D49F -1D4A2 -1D4A5 1D4A6 -1D4A9 1D4AC -1D4AE 1D4B9 -1D4BB -1D4BD 1D4C0 -1D4C2 1D4C3 -1D4C5 1D505 -1D507 1D50A -1D50D 1D514 -1D516 1D51C -1D51E 1D539 -1D53B 1D53E -1D540 1D544 -1D546 -1D54A 1D550 -1D552 1D6A3 -1D6A8 1D6C0 -1D6C2 1D6DA -1D6DC 1D6FA -1D6FC 1D714 -1D716 1D734 -1D736 1D74E -1D750 1D76E -1D770 1D788 -1D78A 1D7A8 -1D7AA 1D7C2 -1D7C4 1D7C9 -20000 2A6D6 -2F800 2FA1D -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Any.pl b/gnu/usr.bin/perl/lib/unicore/lib/Any.pl deleted file mode 100644 index b30cb2fb7f2..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Any.pl +++ /dev/null @@ -1,14 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Any} -# \p{Any} -# -# Meaning: [\x{0000}-\x{10FFFF}] -# -return <<'END'; -0000 10FFFF -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Arabic.pl b/gnu/usr.bin/perl/lib/unicore/lib/Arabic.pl deleted file mode 100644 index ac5df6e8900..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Arabic.pl +++ /dev/null @@ -1,26 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Arabic} (and fuzzy permutations) -# -# Meaning: Script 'ARABIC' -# -return <<'END'; -0621 063A ARABIC -0641 064A ARABIC -066E 066F ARABIC -0671 06D3 ARABIC -06D5 ARABIC -06E5 06E6 ARABIC -06FA 06FC ARABIC -FB50 FBB1 ARABIC -FBD3 FD3D ARABIC -FD50 FD8F ARABIC -FD92 FDC7 ARABIC -FDF0 FDFB ARABIC -FE70 FE74 ARABIC -FE76 FEFC ARABIC -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Armenian.pl b/gnu/usr.bin/perl/lib/unicore/lib/Armenian.pl deleted file mode 100644 index 6652079be3a..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Armenian.pl +++ /dev/null @@ -1,16 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Armenian} (and fuzzy permutations) -# -# Meaning: Script 'ARMENIAN' -# -return <<'END'; -0531 0556 ARMENIAN -0559 ARMENIAN -0561 0587 ARMENIAN -FB13 FB17 ARMENIAN -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/AsciiHex.pl b/gnu/usr.bin/perl/lib/unicore/lib/AsciiHex.pl deleted file mode 100644 index 24c43ee3771..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/AsciiHex.pl +++ /dev/null @@ -1,15 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{AsciiHexDigit} (and fuzzy permutations) -# -# Meaning: Extended property 'ASCII_Hex_Digit' -# -return <<'END'; -0030 0039 ASCII_Hex_Digit -0041 0046 ASCII_Hex_Digit -0061 0066 ASCII_Hex_Digit -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Assigned.pl b/gnu/usr.bin/perl/lib/unicore/lib/Assigned.pl deleted file mode 100644 index 5bd9faffbd3..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Assigned.pl +++ /dev/null @@ -1,398 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Assigned} -# -# Meaning: All assigned code points -# -return <<'END'; -0000 0220 -0222 0233 -0250 02AD -02B0 02EE -0300 034F -0360 036F -0374 0375 -037A -037E -0384 038A -038C -038E 03A1 -03A3 03CE -03D0 03F6 -0400 0486 -0488 04CE -04D0 04F5 -04F8 04F9 -0500 050F -0531 0556 -0559 055F -0561 0587 -0589 058A -0591 05A1 -05A3 05B9 -05BB 05C4 -05D0 05EA -05F0 05F4 -060C -061B -061F -0621 063A -0640 0655 -0660 06ED -06F0 06FE -0700 070D -070F 072C -0730 074A -0780 07B1 -0901 0903 -0905 0939 -093C 094D -0950 0954 -0958 0970 -0981 0983 -0985 098C -098F 0990 -0993 09A8 -09AA 09B0 -09B2 -09B6 09B9 -09BC -09BE 09C4 -09C7 09C8 -09CB 09CD -09D7 -09DC 09DD -09DF 09E3 -09E6 09FA -0A02 -0A05 0A0A -0A0F 0A10 -0A13 0A28 -0A2A 0A30 -0A32 0A33 -0A35 0A36 -0A38 0A39 -0A3C -0A3E 0A42 -0A47 0A48 -0A4B 0A4D -0A59 0A5C -0A5E -0A66 0A74 -0A81 0A83 -0A85 0A8B -0A8D -0A8F 0A91 -0A93 0AA8 -0AAA 0AB0 -0AB2 0AB3 -0AB5 0AB9 -0ABC 0AC5 -0AC7 0AC9 -0ACB 0ACD -0AD0 -0AE0 -0AE6 0AEF -0B01 0B03 -0B05 0B0C -0B0F 0B10 -0B13 0B28 -0B2A 0B30 -0B32 0B33 -0B36 0B39 -0B3C 0B43 -0B47 0B48 -0B4B 0B4D -0B56 0B57 -0B5C 0B5D -0B5F 0B61 -0B66 0B70 -0B82 0B83 -0B85 0B8A -0B8E 0B90 -0B92 0B95 -0B99 0B9A -0B9C -0B9E 0B9F -0BA3 0BA4 -0BA8 0BAA -0BAE 0BB5 -0BB7 0BB9 -0BBE 0BC2 -0BC6 0BC8 -0BCA 0BCD -0BD7 -0BE7 0BF2 -0C01 0C03 -0C05 0C0C -0C0E 0C10 -0C12 0C28 -0C2A 0C33 -0C35 0C39 -0C3E 0C44 -0C46 0C48 -0C4A 0C4D -0C55 0C56 -0C60 0C61 -0C66 0C6F -0C82 0C83 -0C85 0C8C -0C8E 0C90 -0C92 0CA8 -0CAA 0CB3 -0CB5 0CB9 -0CBE 0CC4 -0CC6 0CC8 -0CCA 0CCD -0CD5 0CD6 -0CDE -0CE0 0CE1 -0CE6 0CEF -0D02 0D03 -0D05 0D0C -0D0E 0D10 -0D12 0D28 -0D2A 0D39 -0D3E 0D43 -0D46 0D48 -0D4A 0D4D -0D57 -0D60 0D61 -0D66 0D6F -0D82 0D83 -0D85 0D96 -0D9A 0DB1 -0DB3 0DBB -0DBD -0DC0 0DC6 -0DCA -0DCF 0DD4 -0DD6 -0DD8 0DDF -0DF2 0DF4 -0E01 0E3A -0E3F 0E5B -0E81 0E82 -0E84 -0E87 0E88 -0E8A -0E8D -0E94 0E97 -0E99 0E9F -0EA1 0EA3 -0EA5 -0EA7 -0EAA 0EAB -0EAD 0EB9 -0EBB 0EBD -0EC0 0EC4 -0EC6 -0EC8 0ECD -0ED0 0ED9 -0EDC 0EDD -0F00 0F47 -0F49 0F6A -0F71 0F8B -0F90 0F97 -0F99 0FBC -0FBE 0FCC -0FCF -1000 1021 -1023 1027 -1029 102A -102C 1032 -1036 1039 -1040 1059 -10A0 10C5 -10D0 10F8 -10FB -1100 1159 -115F 11A2 -11A8 11F9 -1200 1206 -1208 1246 -1248 -124A 124D -1250 1256 -1258 -125A 125D -1260 1286 -1288 -128A 128D -1290 12AE -12B0 -12B2 12B5 -12B8 12BE -12C0 -12C2 12C5 -12C8 12CE -12D0 12D6 -12D8 12EE -12F0 130E -1310 -1312 1315 -1318 131E -1320 1346 -1348 135A -1361 137C -13A0 13F4 -1401 1676 -1680 169C -16A0 16F0 -1700 170C -170E 1714 -1720 1736 -1740 1753 -1760 176C -176E 1770 -1772 1773 -1780 17DC -17E0 17E9 -1800 180E -1810 1819 -1820 1877 -1880 18A9 -1E00 1E9B -1EA0 1EF9 -1F00 1F15 -1F18 1F1D -1F20 1F45 -1F48 1F4D -1F50 1F57 -1F59 -1F5B -1F5D -1F5F 1F7D -1F80 1FB4 -1FB6 1FC4 -1FC6 1FD3 -1FD6 1FDB -1FDD 1FEF -1FF2 1FF4 -1FF6 1FFE -2000 2052 -2057 -205F 2063 -206A 2071 -2074 208E -20A0 20B1 -20D0 20EA -2100 213A -213D 214B -2153 2183 -2190 23CE -2400 2426 -2440 244A -2460 24FE -2500 2613 -2616 2617 -2619 267D -2680 2689 -2701 2704 -2706 2709 -270C 2727 -2729 274B -274D -274F 2752 -2756 -2758 275E -2761 2794 -2798 27AF -27B1 27BE -27D0 27EB -27F0 2AFF -2E80 2E99 -2E9B 2EF3 -2F00 2FD5 -2FF0 2FFB -3000 303F -3041 3096 -3099 30FF -3105 312C -3131 318E -3190 31B7 -31F0 321C -3220 3243 -3251 327B -327F 32CB -32D0 32FE -3300 3376 -337B 33DD -33E0 33FE -3400 4DB5 -4E00 9FA5 -A000 A48C -A490 A4C6 -AC00 D7A3 -D800 FA2D -FA30 FA6A -FB00 FB06 -FB13 FB17 -FB1D FB36 -FB38 FB3C -FB3E -FB40 FB41 -FB43 FB44 -FB46 FBB1 -FBD3 FD3F -FD50 FD8F -FD92 FDC7 -FDF0 FDFC -FE00 FE0F -FE20 FE23 -FE30 FE46 -FE49 FE52 -FE54 FE66 -FE68 FE6B -FE70 FE74 -FE76 FEFC -FEFF -FF01 FFBE -FFC2 FFC7 -FFCA FFCF -FFD2 FFD7 -FFDA FFDC -FFE0 FFE6 -FFE8 FFEE -FFF9 FFFD -10300 1031E -10320 10323 -10330 1034A -10400 10425 -10428 1044D -1D000 1D0F5 -1D100 1D126 -1D12A 1D1DD -1D400 1D454 -1D456 1D49C -1D49E 1D49F -1D4A2 -1D4A5 1D4A6 -1D4A9 1D4AC -1D4AE 1D4B9 -1D4BB -1D4BD 1D4C0 -1D4C2 1D4C3 -1D4C5 1D505 -1D507 1D50A -1D50D 1D514 -1D516 1D51C -1D51E 1D539 -1D53B 1D53E -1D540 1D544 -1D546 -1D54A 1D550 -1D552 1D6A3 -1D6A8 1D7C9 -1D7CE 1D7FF -20000 2A6D6 -2F800 2FA1D -E0001 -E0020 E007F -F0000 FFFFD -100000 10FFFD -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Bengali.pl b/gnu/usr.bin/perl/lib/unicore/lib/Bengali.pl deleted file mode 100644 index 5d2b9db5849..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Bengali.pl +++ /dev/null @@ -1,27 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Bengali} (and fuzzy permutations) -# -# Meaning: Script 'BENGALI' -# -return <<'END'; -0981 0983 BENGALI -0985 098C BENGALI -098F 0990 BENGALI -0993 09A8 BENGALI -09AA 09B0 BENGALI -09B2 BENGALI -09B6 09B9 BENGALI -09BC BENGALI -09BE 09C4 BENGALI -09C7 09C8 BENGALI -09CB 09CD BENGALI -09D7 BENGALI -09DC 09DD BENGALI -09DF 09E3 BENGALI -09E6 09F1 BENGALI -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/BidiAL.pl b/gnu/usr.bin/perl/lib/unicore/lib/BidiAL.pl deleted file mode 100644 index 4149869f8bb..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/BidiAL.pl +++ /dev/null @@ -1,33 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{BidiAL} -# -# Meaning: Bi-directional category 'AL' -# -return <<'END'; -061B -061F -0621 063A -0640 064A -066D 066F -0671 06D5 -06DD -06E5 06E6 -06FA 06FE -0700 070D -0710 -0712 072C -0780 07A5 -07B1 -FB50 FBB1 -FBD3 FD3D -FD50 FD8F -FD92 FDC7 -FDF0 FDFC -FE70 FE74 -FE76 FEFC -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/BidiAN.pl b/gnu/usr.bin/perl/lib/unicore/lib/BidiAN.pl deleted file mode 100644 index c5defcb1fb8..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/BidiAN.pl +++ /dev/null @@ -1,14 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{BidiAN} -# -# Meaning: Bi-directional category 'AN' -# -return <<'END'; -0660 0669 -066B 066C -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/BidiB.pl b/gnu/usr.bin/perl/lib/unicore/lib/BidiB.pl deleted file mode 100644 index 85572fec078..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/BidiB.pl +++ /dev/null @@ -1,17 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{BidiB} -# -# Meaning: Bi-directional category 'B' -# -return <<'END'; -000A -000D -001C 001E -0085 -2029 -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/BidiBN.pl b/gnu/usr.bin/perl/lib/unicore/lib/BidiBN.pl deleted file mode 100644 index b810db1e76c..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/BidiBN.pl +++ /dev/null @@ -1,26 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{BidiBN} -# -# Meaning: Bi-directional category 'BN' -# -return <<'END'; -0000 0008 -000E 001B -007F 0084 -0086 009F -070F -180E -200B 200D -2060 2063 -206A 206F -FEFF -FFF9 FFFB -1D173 1D17A -E0001 -E0020 E007F -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/BidiCS.pl b/gnu/usr.bin/perl/lib/unicore/lib/BidiCS.pl deleted file mode 100644 index 7f17238b931..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/BidiCS.pl +++ /dev/null @@ -1,23 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{BidiCS} -# -# Meaning: Bi-directional category 'CS' -# -return <<'END'; -002C -002E -003A -00A0 -060C -FE50 -FE52 -FE55 -FF0C -FF0E -FF1A -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/BidiCont.pl b/gnu/usr.bin/perl/lib/unicore/lib/BidiCont.pl deleted file mode 100644 index 070ad87ba82..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/BidiCont.pl +++ /dev/null @@ -1,14 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{BidiControl} (and fuzzy permutations) -# -# Meaning: Extended property 'Bidi_Control' -# -return <<'END'; -200E 200F Bidi_Control -202A 202E Bidi_Control -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/BidiEN.pl b/gnu/usr.bin/perl/lib/unicore/lib/BidiEN.pl deleted file mode 100644 index 24a291f864b..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/BidiEN.pl +++ /dev/null @@ -1,23 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{BidiEN} -# -# Meaning: Bi-directional category 'EN' -# -return <<'END'; -0030 0039 -00B2 00B3 -00B9 -06F0 06F9 -2070 -2074 2079 -2080 2089 -2460 249B -24EA -FF10 FF19 -1D7CE 1D7FF -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/BidiES.pl b/gnu/usr.bin/perl/lib/unicore/lib/BidiES.pl deleted file mode 100644 index 9810f8118df..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/BidiES.pl +++ /dev/null @@ -1,14 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{BidiES} -# -# Meaning: Bi-directional category 'ES' -# -return <<'END'; -002F -FF0F -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/BidiET.pl b/gnu/usr.bin/perl/lib/unicore/lib/BidiET.pl deleted file mode 100644 index 234cf5ff590..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/BidiET.pl +++ /dev/null @@ -1,36 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{BidiET} -# -# Meaning: Bi-directional category 'ET' -# -return <<'END'; -0023 0025 -002B -002D -00A2 00A5 -00B0 00B1 -066A -09F2 09F3 -0E3F -17DB -2030 2034 -207A 207B -208A 208B -20A0 20B1 -212E -2212 2213 -FB29 -FE5F -FE62 FE63 -FE69 FE6A -FF03 FF05 -FF0B -FF0D -FFE0 FFE1 -FFE5 FFE6 -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/BidiL.pl b/gnu/usr.bin/perl/lib/unicore/lib/BidiL.pl deleted file mode 100644 index f4033f28e46..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/BidiL.pl +++ /dev/null @@ -1,366 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{BidiL} -# -# Meaning: Bi-directional category 'L' -# -return <<'END'; -0041 005A -0061 007A -00AA -00B5 -00BA -00C0 00D6 -00D8 00F6 -00F8 0220 -0222 0233 -0250 02AD -02B0 02B8 -02BB 02C1 -02D0 02D1 -02E0 02E4 -02EE -037A -0386 -0388 038A -038C -038E 03A1 -03A3 03CE -03D0 03F5 -0400 0482 -048A 04CE -04D0 04F5 -04F8 04F9 -0500 050F -0531 0556 -0559 055F -0561 0587 -0589 -0903 -0905 0939 -093D 0940 -0949 094C -0950 -0958 0961 -0964 0970 -0982 0983 -0985 098C -098F 0990 -0993 09A8 -09AA 09B0 -09B2 -09B6 09B9 -09BE 09C0 -09C7 09C8 -09CB 09CC -09D7 -09DC 09DD -09DF 09E1 -09E6 09F1 -09F4 09FA -0A05 0A0A -0A0F 0A10 -0A13 0A28 -0A2A 0A30 -0A32 0A33 -0A35 0A36 -0A38 0A39 -0A3E 0A40 -0A59 0A5C -0A5E -0A66 0A6F -0A72 0A74 -0A83 -0A85 0A8B -0A8D -0A8F 0A91 -0A93 0AA8 -0AAA 0AB0 -0AB2 0AB3 -0AB5 0AB9 -0ABD 0AC0 -0AC9 -0ACB 0ACC -0AD0 -0AE0 -0AE6 0AEF -0B02 0B03 -0B05 0B0C -0B0F 0B10 -0B13 0B28 -0B2A 0B30 -0B32 0B33 -0B36 0B39 -0B3D 0B3E -0B40 -0B47 0B48 -0B4B 0B4C -0B57 -0B5C 0B5D -0B5F 0B61 -0B66 0B70 -0B83 -0B85 0B8A -0B8E 0B90 -0B92 0B95 -0B99 0B9A -0B9C -0B9E 0B9F -0BA3 0BA4 -0BA8 0BAA -0BAE 0BB5 -0BB7 0BB9 -0BBE 0BBF -0BC1 0BC2 -0BC6 0BC8 -0BCA 0BCC -0BD7 -0BE7 0BF2 -0C01 0C03 -0C05 0C0C -0C0E 0C10 -0C12 0C28 -0C2A 0C33 -0C35 0C39 -0C41 0C44 -0C60 0C61 -0C66 0C6F -0C82 0C83 -0C85 0C8C -0C8E 0C90 -0C92 0CA8 -0CAA 0CB3 -0CB5 0CB9 -0CBE -0CC0 0CC4 -0CC7 0CC8 -0CCA 0CCB -0CD5 0CD6 -0CDE -0CE0 0CE1 -0CE6 0CEF -0D02 0D03 -0D05 0D0C -0D0E 0D10 -0D12 0D28 -0D2A 0D39 -0D3E 0D40 -0D46 0D48 -0D4A 0D4C -0D57 -0D60 0D61 -0D66 0D6F -0D82 0D83 -0D85 0D96 -0D9A 0DB1 -0DB3 0DBB -0DBD -0DC0 0DC6 -0DCF 0DD1 -0DD8 0DDF -0DF2 0DF4 -0E01 0E30 -0E32 0E33 -0E40 0E46 -0E4F 0E5B -0E81 0E82 -0E84 -0E87 0E88 -0E8A -0E8D -0E94 0E97 -0E99 0E9F -0EA1 0EA3 -0EA5 -0EA7 -0EAA 0EAB -0EAD 0EB0 -0EB2 0EB3 -0EBD -0EC0 0EC4 -0EC6 -0ED0 0ED9 -0EDC 0EDD -0F00 0F17 -0F1A 0F34 -0F36 -0F38 -0F3E 0F47 -0F49 0F6A -0F7F -0F85 -0F88 0F8B -0FBE 0FC5 -0FC7 0FCC -0FCF -1000 1021 -1023 1027 -1029 102A -102C -1031 -1038 -1040 1057 -10A0 10C5 -10D0 10F8 -10FB -1100 1159 -115F 11A2 -11A8 11F9 -1200 1206 -1208 1246 -1248 -124A 124D -1250 1256 -1258 -125A 125D -1260 1286 -1288 -128A 128D -1290 12AE -12B0 -12B2 12B5 -12B8 12BE -12C0 -12C2 12C5 -12C8 12CE -12D0 12D6 -12D8 12EE -12F0 130E -1310 -1312 1315 -1318 131E -1320 1346 -1348 135A -1361 137C -13A0 13F4 -1401 1676 -1681 169A -16A0 16F0 -1700 170C -170E 1711 -1720 1731 -1735 1736 -1740 1751 -1760 176C -176E 1770 -1780 17B6 -17BE 17C5 -17C7 17C8 -17D4 17DA -17DC -17E0 17E9 -1810 1819 -1820 1877 -1880 18A8 -1E00 1E9B -1EA0 1EF9 -1F00 1F15 -1F18 1F1D -1F20 1F45 -1F48 1F4D -1F50 1F57 -1F59 -1F5B -1F5D -1F5F 1F7D -1F80 1FB4 -1FB6 1FBC -1FBE -1FC2 1FC4 -1FC6 1FCC -1FD0 1FD3 -1FD6 1FDB -1FE0 1FEC -1FF2 1FF4 -1FF6 1FFC -200E -2071 -207F -2102 -2107 -210A 2113 -2115 -2119 211D -2124 -2126 -2128 -212A 212D -212F 2131 -2133 2139 -213D 213F -2145 2149 -2160 2183 -2336 237A -2395 -249C 24E9 -3005 3007 -3021 3029 -3031 3035 -3038 303C -3041 3096 -309D 309F -30A1 30FA -30FC 30FF -3105 312C -3131 318E -3190 31B7 -31F0 321C -3220 3243 -3260 327B -327F 32B0 -32C0 32CB -32D0 32FE -3300 3376 -337B 33DD -33E0 33FE -A000 A48C -F900 FA2D -FA30 FA6A -FB00 FB06 -FB13 FB17 -FF21 FF3A -FF41 FF5A -FF66 FFBE -FFC2 FFC7 -FFCA FFCF -FFD2 FFD7 -FFDA FFDC -10300 1031E -10320 10323 -10330 1034A -10400 10425 -10428 1044D -1D000 1D0F5 -1D100 1D126 -1D12A 1D166 -1D16A 1D172 -1D183 1D184 -1D18C 1D1A9 -1D1AE 1D1DD -1D400 1D454 -1D456 1D49C -1D49E 1D49F -1D4A2 -1D4A5 1D4A6 -1D4A9 1D4AC -1D4AE 1D4B9 -1D4BB -1D4BD 1D4C0 -1D4C2 1D4C3 -1D4C5 1D505 -1D507 1D50A -1D50D 1D514 -1D516 1D51C -1D51E 1D539 -1D53B 1D53E -1D540 1D544 -1D546 -1D54A 1D550 -1D552 1D6A3 -1D6A8 1D7C9 -2F800 2FA1D -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/BidiLRE.pl b/gnu/usr.bin/perl/lib/unicore/lib/BidiLRE.pl deleted file mode 100644 index 5070363fc5c..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/BidiLRE.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{BidiLRE} -# -# Meaning: Bi-directional category 'LRE' -# -return <<'END'; -202A -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/BidiLRO.pl b/gnu/usr.bin/perl/lib/unicore/lib/BidiLRO.pl deleted file mode 100644 index 52ea9600f38..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/BidiLRO.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{BidiLRO} -# -# Meaning: Bi-directional category 'LRO' -# -return <<'END'; -202D -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/BidiNSM.pl b/gnu/usr.bin/perl/lib/unicore/lib/BidiNSM.pl deleted file mode 100644 index 7e2f4b10820..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/BidiNSM.pl +++ /dev/null @@ -1,115 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{BidiNSM} -# -# Meaning: Bi-directional category 'NSM' -# -return <<'END'; -0300 034F -0360 036F -0483 0486 -0488 0489 -0591 05A1 -05A3 05B9 -05BB 05BD -05BF -05C1 05C2 -05C4 -064B 0655 -0670 -06D6 06DC -06DE 06E4 -06E7 06E8 -06EA 06ED -0711 -0730 074A -07A6 07B0 -0901 0902 -093C -0941 0948 -094D -0951 0954 -0962 0963 -0981 -09BC -09C1 09C4 -09CD -09E2 09E3 -0A02 -0A3C -0A41 0A42 -0A47 0A48 -0A4B 0A4D -0A70 0A71 -0A81 0A82 -0ABC -0AC1 0AC5 -0AC7 0AC8 -0ACD -0B01 -0B3C -0B3F -0B41 0B43 -0B4D -0B56 -0B82 -0BC0 -0BCD -0C3E 0C40 -0C46 0C48 -0C4A 0C4D -0C55 0C56 -0CBF -0CC6 -0CCC 0CCD -0D41 0D43 -0D4D -0DCA -0DD2 0DD4 -0DD6 -0E31 -0E34 0E3A -0E47 0E4E -0EB1 -0EB4 0EB9 -0EBB 0EBC -0EC8 0ECD -0F18 0F19 -0F35 -0F37 -0F39 -0F71 0F7E -0F80 0F84 -0F86 0F87 -0F90 0F97 -0F99 0FBC -0FC6 -102D 1030 -1032 -1036 1037 -1039 -1058 1059 -1712 1714 -1732 1734 -1752 1753 -1772 1773 -17B7 17BD -17C6 -17C9 17D3 -180B 180D -18A9 -20D0 20EA -302A 302F -3099 309A -FB1E -FE00 FE0F -FE20 FE23 -1D167 1D169 -1D17B 1D182 -1D185 1D18B -1D1AA 1D1AD -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/BidiON.pl b/gnu/usr.bin/perl/lib/unicore/lib/BidiON.pl deleted file mode 100644 index 7fe891ebad3..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/BidiON.pl +++ /dev/null @@ -1,121 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{BidiON} -# -# Meaning: Bi-directional category 'ON' -# -return <<'END'; -0021 0022 -0026 002A -003B 0040 -005B 0060 -007B 007E -00A1 -00A6 00A9 -00AB 00AF -00B4 -00B6 00B8 -00BB 00BF -00D7 -00F7 -02B9 02BA -02C2 02CF -02D2 02DF -02E5 02ED -0374 0375 -037E -0384 0385 -0387 -03F6 -058A -06E9 -0F3A 0F3D -169B 169C -1800 180A -1FBD -1FBF 1FC1 -1FCD 1FCF -1FDD 1FDF -1FED 1FEF -1FFD 1FFE -2010 2027 -2035 2052 -2057 -207C 207E -208C 208E -2100 2101 -2103 2106 -2108 2109 -2114 -2116 2118 -211E 2123 -2125 -2127 -2129 -2132 -213A -2140 2144 -214A 214B -2153 215F -2190 2211 -2214 2335 -237B 2394 -2396 23CE -2400 2426 -2440 244A -24EB 24FE -2500 2613 -2616 2617 -2619 267D -2680 2689 -2701 2704 -2706 2709 -270C 2727 -2729 274B -274D -274F 2752 -2756 -2758 275E -2761 2794 -2798 27AF -27B1 27BE -27D0 27EB -27F0 2AFF -2E80 2E99 -2E9B 2EF3 -2F00 2FD5 -2FF0 2FFB -3001 3004 -3008 3020 -3030 -3036 3037 -303D 303F -309B 309C -30A0 -30FB -3251 325F -32B1 32BF -A490 A4C6 -FD3E FD3F -FE30 FE46 -FE49 FE4F -FE51 -FE54 -FE56 FE5E -FE60 FE61 -FE64 FE66 -FE68 -FE6B -FF01 FF02 -FF06 FF0A -FF1B FF20 -FF3B FF40 -FF5B FF65 -FFE2 FFE4 -FFE8 FFEE -FFFC FFFD -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/BidiPDF.pl b/gnu/usr.bin/perl/lib/unicore/lib/BidiPDF.pl deleted file mode 100644 index ef251bd04ce..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/BidiPDF.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{BidiPDF} -# -# Meaning: Bi-directional category 'PDF' -# -return <<'END'; -202C -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/BidiR.pl b/gnu/usr.bin/perl/lib/unicore/lib/BidiR.pl deleted file mode 100644 index 4d62027f26b..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/BidiR.pl +++ /dev/null @@ -1,26 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{BidiR} -# -# Meaning: Bi-directional category 'R' -# -return <<'END'; -05BE -05C0 -05C3 -05D0 05EA -05F0 05F4 -200F -FB1D -FB1F FB28 -FB2A FB36 -FB38 FB3C -FB3E -FB40 FB41 -FB43 FB44 -FB46 FB4F -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/BidiRLE.pl b/gnu/usr.bin/perl/lib/unicore/lib/BidiRLE.pl deleted file mode 100644 index dd2162396cc..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/BidiRLE.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{BidiRLE} -# -# Meaning: Bi-directional category 'RLE' -# -return <<'END'; -202B -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/BidiRLO.pl b/gnu/usr.bin/perl/lib/unicore/lib/BidiRLO.pl deleted file mode 100644 index 244385588b6..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/BidiRLO.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{BidiRLO} -# -# Meaning: Bi-directional category 'RLO' -# -return <<'END'; -202E -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/BidiS.pl b/gnu/usr.bin/perl/lib/unicore/lib/BidiS.pl deleted file mode 100644 index 27207fa5197..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/BidiS.pl +++ /dev/null @@ -1,15 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{BidiS} -# -# Meaning: Bi-directional category 'S' -# -return <<'END'; -0009 -000B -001F -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/BidiWS.pl b/gnu/usr.bin/perl/lib/unicore/lib/BidiWS.pl deleted file mode 100644 index 11896597aea..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/BidiWS.pl +++ /dev/null @@ -1,20 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{BidiWS} -# -# Meaning: Bi-directional category 'WS' -# -return <<'END'; -000C -0020 -1680 -2000 200A -2028 -202F -205F -3000 -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Blank.pl b/gnu/usr.bin/perl/lib/unicore/lib/Blank.pl deleted file mode 100644 index 96498cb22fe..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Blank.pl +++ /dev/null @@ -1,20 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Blank} -# -# Meaning: [[:Blank:]] -# -return <<'END'; -0009 -0020 -00A0 -1680 -2000 200B -202F -205F -3000 -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Bopomofo.pl b/gnu/usr.bin/perl/lib/unicore/lib/Bopomofo.pl deleted file mode 100644 index 525797c8b8d..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Bopomofo.pl +++ /dev/null @@ -1,14 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Bopomofo} (and fuzzy permutations) -# -# Meaning: Script 'BOPOMOFO' -# -return <<'END'; -3105 312C BOPOMOFO -31A0 31B7 BOPOMOFO -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Braille.pl b/gnu/usr.bin/perl/lib/unicore/lib/Braille.pl deleted file mode 100644 index dfa506a1ffe..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Braille.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Braille} (and fuzzy permutations) -# -# Meaning: Script 'BRAILLE' -# -return <<'END'; -2800 28FF BRAILLE -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Buhid.pl b/gnu/usr.bin/perl/lib/unicore/lib/Buhid.pl deleted file mode 100644 index c1ad8f86d2d..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Buhid.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Buhid} (and fuzzy permutations) -# -# Meaning: Script 'BUHID' -# -return <<'END'; -1740 1753 BUHID -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/C.pl b/gnu/usr.bin/perl/lib/unicore/lib/C.pl deleted file mode 100644 index bbe5b39e482..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/C.pl +++ /dev/null @@ -1,400 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{C} -# \p{C} (and fuzzy permutations) -# -# Meaning: Major Category 'C' -# -return <<'END'; -0000 001F -007F 009F -0221 -0234 024F -02AE 02AF -02EF 02FF -0350 035F -0370 0373 -0376 0379 -037B 037D -037F 0383 -038B -038D -03A2 -03CF -03F7 03FF -0487 -04CF -04F6 04F7 -04FA 04FF -0510 0530 -0557 0558 -0560 -0588 -058B 0590 -05A2 -05BA -05C5 05CF -05EB 05EF -05F5 060B -060D 061A -061C 061E -0620 -063B 063F -0656 065F -06DD -06EE 06EF -06FF -070E 070F -072D 072F -074B 077F -07B2 0900 -0904 -093A 093B -094E 094F -0955 0957 -0971 0980 -0984 -098D 098E -0991 0992 -09A9 -09B1 -09B3 09B5 -09BA 09BB -09BD -09C5 09C6 -09C9 09CA -09CE 09D6 -09D8 09DB -09DE -09E4 09E5 -09FB 0A01 -0A03 0A04 -0A0B 0A0E -0A11 0A12 -0A29 -0A31 -0A34 -0A37 -0A3A 0A3B -0A3D -0A43 0A46 -0A49 0A4A -0A4E 0A58 -0A5D -0A5F 0A65 -0A75 0A80 -0A84 -0A8C -0A8E -0A92 -0AA9 -0AB1 -0AB4 -0ABA 0ABB -0AC6 -0ACA -0ACE 0ACF -0AD1 0ADF -0AE1 0AE5 -0AF0 0B00 -0B04 -0B0D 0B0E -0B11 0B12 -0B29 -0B31 -0B34 0B35 -0B3A 0B3B -0B44 0B46 -0B49 0B4A -0B4E 0B55 -0B58 0B5B -0B5E -0B62 0B65 -0B71 0B81 -0B84 -0B8B 0B8D -0B91 -0B96 0B98 -0B9B -0B9D -0BA0 0BA2 -0BA5 0BA7 -0BAB 0BAD -0BB6 -0BBA 0BBD -0BC3 0BC5 -0BC9 -0BCE 0BD6 -0BD8 0BE6 -0BF3 0C00 -0C04 -0C0D -0C11 -0C29 -0C34 -0C3A 0C3D -0C45 -0C49 -0C4E 0C54 -0C57 0C5F -0C62 0C65 -0C70 0C81 -0C84 -0C8D -0C91 -0CA9 -0CB4 -0CBA 0CBD -0CC5 -0CC9 -0CCE 0CD4 -0CD7 0CDD -0CDF -0CE2 0CE5 -0CF0 0D01 -0D04 -0D0D -0D11 -0D29 -0D3A 0D3D -0D44 0D45 -0D49 -0D4E 0D56 -0D58 0D5F -0D62 0D65 -0D70 0D81 -0D84 -0D97 0D99 -0DB2 -0DBC -0DBE 0DBF -0DC7 0DC9 -0DCB 0DCE -0DD5 -0DD7 -0DE0 0DF1 -0DF5 0E00 -0E3B 0E3E -0E5C 0E80 -0E83 -0E85 0E86 -0E89 -0E8B 0E8C -0E8E 0E93 -0E98 -0EA0 -0EA4 -0EA6 -0EA8 0EA9 -0EAC -0EBA -0EBE 0EBF -0EC5 -0EC7 -0ECE 0ECF -0EDA 0EDB -0EDE 0EFF -0F48 -0F6B 0F70 -0F8C 0F8F -0F98 -0FBD -0FCD 0FCE -0FD0 0FFF -1022 -1028 -102B -1033 1035 -103A 103F -105A 109F -10C6 10CF -10F9 10FA -10FC 10FF -115A 115E -11A3 11A7 -11FA 11FF -1207 -1247 -1249 -124E 124F -1257 -1259 -125E 125F -1287 -1289 -128E 128F -12AF -12B1 -12B6 12B7 -12BF -12C1 -12C6 12C7 -12CF -12D7 -12EF -130F -1311 -1316 1317 -131F -1347 -135B 1360 -137D 139F -13F5 1400 -1677 167F -169D 169F -16F1 16FF -170D -1715 171F -1737 173F -1754 175F -176D -1771 -1774 177F -17DD 17DF -17EA 17FF -180E 180F -181A 181F -1878 187F -18AA 1DFF -1E9C 1E9F -1EFA 1EFF -1F16 1F17 -1F1E 1F1F -1F46 1F47 -1F4E 1F4F -1F58 -1F5A -1F5C -1F5E -1F7E 1F7F -1FB5 -1FC5 -1FD4 1FD5 -1FDC -1FF0 1FF1 -1FF5 -1FFF -200C 200F -202A 202E -2053 2056 -2058 205E -2060 206F -2072 2073 -208F 209F -20B2 20CF -20EB 20FF -213B 213C -214C 2152 -2184 218F -23CF 23FF -2427 243F -244B 245F -24FF -2614 2615 -2618 -267E 267F -268A 2700 -2705 -270A 270B -2728 -274C -274E -2753 2755 -2757 -275F 2760 -2795 2797 -27B0 -27BF 27CF -27EC 27EF -2B00 2E7F -2E9A -2EF4 2EFF -2FD6 2FEF -2FFC 2FFF -3040 -3097 3098 -3100 3104 -312D 3130 -318F -31B8 31EF -321D 321F -3244 3250 -327C 327E -32CC 32CF -32FF -3377 337A -33DE 33DF -33FF -4DB6 4DFF -9FA6 9FFF -A48D A48F -A4C7 ABFF -D7A4 F8FF -FA2E FA2F -FA6B FAFF -FB07 FB12 -FB18 FB1C -FB37 -FB3D -FB3F -FB42 -FB45 -FBB2 FBD2 -FD40 FD4F -FD90 FD91 -FDC8 FDEF -FDFD FDFF -FE10 FE1F -FE24 FE2F -FE47 FE48 -FE53 -FE67 -FE6C FE6F -FE75 -FEFD FF00 -FFBF FFC1 -FFC8 FFC9 -FFD0 FFD1 -FFD8 FFD9 -FFDD FFDF -FFE7 -FFEF FFFB -FFFE 102FF -1031F -10324 1032F -1034B 103FF -10426 10427 -1044E 1CFFF -1D0F6 1D0FF -1D127 1D129 -1D173 1D17A -1D1DE 1D3FF -1D455 -1D49D -1D4A0 1D4A1 -1D4A3 1D4A4 -1D4A7 1D4A8 -1D4AD -1D4BA -1D4BC -1D4C1 -1D4C4 -1D506 -1D50B 1D50C -1D515 -1D51D -1D53A -1D53F -1D545 -1D547 1D549 -1D551 -1D6A4 1D6A7 -1D7CA 1D7CD -1D800 1FFFF -2A6D7 2F7FF -2FA1E 10FFFF -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Canadian.pl b/gnu/usr.bin/perl/lib/unicore/lib/Canadian.pl deleted file mode 100644 index e4942b1d441..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Canadian.pl +++ /dev/null @@ -1,14 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{CanadianAboriginal} (and fuzzy permutations) -# -# Meaning: Script 'CANADIAN_ABORIGINAL' -# -return <<'END'; -1401 166C CANADIAN_ABORIGINAL -166F 1676 CANADIAN_ABORIGINAL -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Canon.pl b/gnu/usr.bin/perl/lib/unicore/lib/Canon.pl deleted file mode 100644 index 4d30c4b3439..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Canon.pl +++ /dev/null @@ -1,224 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Canon} -# -# Meaning: Decomposes to multiple characters -# -return <<'END'; -00C0 00C5 -00C7 00CF -00D1 00D6 -00D9 00DD -00E0 00E5 -00E7 00EF -00F1 00F6 -00F9 00FD -00FF 010F -0112 0125 -0128 0130 -0134 0137 -0139 013E -0143 0148 -014C 0151 -0154 0165 -0168 017E -01A0 01A1 -01AF 01B0 -01CD 01DC -01DE 01E3 -01E6 01F0 -01F4 01F5 -01F8 021B -021E 021F -0226 0233 -0340 0341 -0343 0344 -0374 -037E -0385 038A -038C -038E 0390 -03AA 03B0 -03CA 03CE -03D3 03D4 -0400 0401 -0403 -0407 -040C 040E -0419 -0439 -0450 0451 -0453 -0457 -045C 045E -0476 0477 -04C1 04C2 -04D0 04D3 -04D6 04D7 -04DA 04DF -04E2 04E7 -04EA 04F5 -04F8 04F9 -0622 0626 -06C0 -06C2 -06D3 -0929 -0931 -0934 -0958 095F -09CB 09CC -09DC 09DD -09DF -0A33 -0A36 -0A59 0A5B -0A5E -0B48 -0B4B 0B4C -0B5C 0B5D -0B94 -0BCA 0BCC -0C48 -0CC0 -0CC7 0CC8 -0CCA 0CCB -0D4A 0D4C -0DDA -0DDC 0DDE -0F43 -0F4D -0F52 -0F57 -0F5C -0F69 -0F73 -0F75 0F76 -0F78 -0F81 -0F93 -0F9D -0FA2 -0FA7 -0FAC -0FB9 -1026 -1E00 1E99 -1E9B -1EA0 1EF9 -1F00 1F15 -1F18 1F1D -1F20 1F45 -1F48 1F4D -1F50 1F57 -1F59 -1F5B -1F5D -1F5F 1F7D -1F80 1FB4 -1FB6 1FBC -1FBE -1FC1 1FC4 -1FC6 1FD3 -1FD6 1FDB -1FDD 1FEF -1FF2 1FF4 -1FF6 1FFD -2000 2001 -2126 -212A 212B -219A 219B -21AE -21CD 21CF -2204 -2209 -220C -2224 -2226 -2241 -2244 -2247 -2249 -2260 -2262 -226D 2271 -2274 2275 -2278 2279 -2280 2281 -2284 2285 -2288 2289 -22AC 22AF -22E0 22E3 -22EA 22ED -2329 232A -2ADC -304C -304E -3050 -3052 -3054 -3056 -3058 -305A -305C -305E -3060 -3062 -3065 -3067 -3069 -3070 3071 -3073 3074 -3076 3077 -3079 307A -307C 307D -3094 -309E -30AC -30AE -30B0 -30B2 -30B4 -30B6 -30B8 -30BA -30BC -30BE -30C0 -30C2 -30C5 -30C7 -30C9 -30D0 30D1 -30D3 30D4 -30D6 30D7 -30D9 30DA -30DC 30DD -30F4 -30F7 30FA -30FE -F900 FA0D -FA10 -FA12 -FA15 FA1E -FA20 -FA22 -FA25 FA26 -FA2A FA2D -FA30 FA6A -FB1D -FB1F -FB2A FB36 -FB38 FB3C -FB3E -FB40 FB41 -FB43 FB44 -FB46 FB4E -1D15E 1D164 -1D1BB 1D1C0 -2F800 2FA1D -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Cc.pl b/gnu/usr.bin/perl/lib/unicore/lib/Cc.pl deleted file mode 100644 index 34faf2eca8f..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Cc.pl +++ /dev/null @@ -1,15 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Cc} -# \p{Cc} (and fuzzy permutations) -# -# Meaning: General Category 'Cc' -# -return <<'END'; -0000 001F -007F 009F -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Cf.pl b/gnu/usr.bin/perl/lib/unicore/lib/Cf.pl deleted file mode 100644 index 9012824ee45..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Cf.pl +++ /dev/null @@ -1,25 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Cf} -# \p{Cf} (and fuzzy permutations) -# -# Meaning: General Category 'Cf' -# -return <<'END'; -06DD -070F -180E -200C 200F -202A 202E -2060 2063 -206A 206F -FEFF -FFF9 FFFB -1D173 1D17A -E0001 -E0020 E007F -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Cherokee.pl b/gnu/usr.bin/perl/lib/unicore/lib/Cherokee.pl deleted file mode 100644 index 4844ef48799..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Cherokee.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Cherokee} (and fuzzy permutations) -# -# Meaning: Script 'CHEROKEE' -# -return <<'END'; -13A0 13F4 CHEROKEE -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Cn.pl b/gnu/usr.bin/perl/lib/unicore/lib/Cn.pl deleted file mode 100644 index c080d192302..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Cn.pl +++ /dev/null @@ -1,399 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Cn} -# \p{Cn} (and fuzzy permutations) -# -# Meaning: General Category 'Cn' [not functional in Perl] -# -return <<'END'; -0221 -0234 024F -02AE 02AF -02EF 02FF -0350 035F -0370 0373 -0376 0379 -037B 037D -037F 0383 -038B -038D -03A2 -03CF -03F7 03FF -0487 -04CF -04F6 04F7 -04FA 04FF -0510 0530 -0557 0558 -0560 -0588 -058B 0590 -05A2 -05BA -05C5 05CF -05EB 05EF -05F5 060B -060D 061A -061C 061E -0620 -063B 063F -0656 065F -06EE 06EF -06FF -070E -072D 072F -074B 077F -07B2 0900 -0904 -093A 093B -094E 094F -0955 0957 -0971 0980 -0984 -098D 098E -0991 0992 -09A9 -09B1 -09B3 09B5 -09BA 09BB -09BD -09C5 09C6 -09C9 09CA -09CE 09D6 -09D8 09DB -09DE -09E4 09E5 -09FB 0A01 -0A03 0A04 -0A0B 0A0E -0A11 0A12 -0A29 -0A31 -0A34 -0A37 -0A3A 0A3B -0A3D -0A43 0A46 -0A49 0A4A -0A4E 0A58 -0A5D -0A5F 0A65 -0A75 0A80 -0A84 -0A8C -0A8E -0A92 -0AA9 -0AB1 -0AB4 -0ABA 0ABB -0AC6 -0ACA -0ACE 0ACF -0AD1 0ADF -0AE1 0AE5 -0AF0 0B00 -0B04 -0B0D 0B0E -0B11 0B12 -0B29 -0B31 -0B34 0B35 -0B3A 0B3B -0B44 0B46 -0B49 0B4A -0B4E 0B55 -0B58 0B5B -0B5E -0B62 0B65 -0B71 0B81 -0B84 -0B8B 0B8D -0B91 -0B96 0B98 -0B9B -0B9D -0BA0 0BA2 -0BA5 0BA7 -0BAB 0BAD -0BB6 -0BBA 0BBD -0BC3 0BC5 -0BC9 -0BCE 0BD6 -0BD8 0BE6 -0BF3 0C00 -0C04 -0C0D -0C11 -0C29 -0C34 -0C3A 0C3D -0C45 -0C49 -0C4E 0C54 -0C57 0C5F -0C62 0C65 -0C70 0C81 -0C84 -0C8D -0C91 -0CA9 -0CB4 -0CBA 0CBD -0CC5 -0CC9 -0CCE 0CD4 -0CD7 0CDD -0CDF -0CE2 0CE5 -0CF0 0D01 -0D04 -0D0D -0D11 -0D29 -0D3A 0D3D -0D44 0D45 -0D49 -0D4E 0D56 -0D58 0D5F -0D62 0D65 -0D70 0D81 -0D84 -0D97 0D99 -0DB2 -0DBC -0DBE 0DBF -0DC7 0DC9 -0DCB 0DCE -0DD5 -0DD7 -0DE0 0DF1 -0DF5 0E00 -0E3B 0E3E -0E5C 0E80 -0E83 -0E85 0E86 -0E89 -0E8B 0E8C -0E8E 0E93 -0E98 -0EA0 -0EA4 -0EA6 -0EA8 0EA9 -0EAC -0EBA -0EBE 0EBF -0EC5 -0EC7 -0ECE 0ECF -0EDA 0EDB -0EDE 0EFF -0F48 -0F6B 0F70 -0F8C 0F8F -0F98 -0FBD -0FCD 0FCE -0FD0 0FFF -1022 -1028 -102B -1033 1035 -103A 103F -105A 109F -10C6 10CF -10F9 10FA -10FC 10FF -115A 115E -11A3 11A7 -11FA 11FF -1207 -1247 -1249 -124E 124F -1257 -1259 -125E 125F -1287 -1289 -128E 128F -12AF -12B1 -12B6 12B7 -12BF -12C1 -12C6 12C7 -12CF -12D7 -12EF -130F -1311 -1316 1317 -131F -1347 -135B 1360 -137D 139F -13F5 1400 -1677 167F -169D 169F -16F1 16FF -170D -1715 171F -1737 173F -1754 175F -176D -1771 -1774 177F -17DD 17DF -17EA 17FF -180F -181A 181F -1878 187F -18AA 1DFF -1E9C 1E9F -1EFA 1EFF -1F16 1F17 -1F1E 1F1F -1F46 1F47 -1F4E 1F4F -1F58 -1F5A -1F5C -1F5E -1F7E 1F7F -1FB5 -1FC5 -1FD4 1FD5 -1FDC -1FF0 1FF1 -1FF5 -1FFF -2053 2056 -2058 205E -2064 2069 -2072 2073 -208F 209F -20B2 20CF -20EB 20FF -213B 213C -214C 2152 -2184 218F -23CF 23FF -2427 243F -244B 245F -24FF -2614 2615 -2618 -267E 267F -268A 2700 -2705 -270A 270B -2728 -274C -274E -2753 2755 -2757 -275F 2760 -2795 2797 -27B0 -27BF 27CF -27EC 27EF -2B00 2E7F -2E9A -2EF4 2EFF -2FD6 2FEF -2FFC 2FFF -3040 -3097 3098 -3100 3104 -312D 3130 -318F -31B8 31EF -321D 321F -3244 3250 -327C 327E -32CC 32CF -32FF -3377 337A -33DE 33DF -33FF -4DB6 4DFF -9FA6 9FFF -A48D A48F -A4C7 ABFF -D7A4 D7FF -FA2E FA2F -FA6B FAFF -FB07 FB12 -FB18 FB1C -FB37 -FB3D -FB3F -FB42 -FB45 -FBB2 FBD2 -FD40 FD4F -FD90 FD91 -FDC8 FDEF -FDFD FDFF -FE10 FE1F -FE24 FE2F -FE47 FE48 -FE53 -FE67 -FE6C FE6F -FE75 -FEFD FEFE -FF00 -FFBF FFC1 -FFC8 FFC9 -FFD0 FFD1 -FFD8 FFD9 -FFDD FFDF -FFE7 -FFEF FFF8 -FFFE 102FF -1031F -10324 1032F -1034B 103FF -10426 10427 -1044E 1CFFF -1D0F6 1D0FF -1D127 1D129 -1D1DE 1D3FF -1D455 -1D49D -1D4A0 1D4A1 -1D4A3 1D4A4 -1D4A7 1D4A8 -1D4AD -1D4BA -1D4BC -1D4C1 -1D4C4 -1D506 -1D50B 1D50C -1D515 -1D51D -1D53A -1D53F -1D545 -1D547 1D549 -1D551 -1D6A4 1D6A7 -1D7CA 1D7CD -1D800 1FFFF -2A6D7 2F7FF -2FA1E E0000 -E0002 E001F -E0080 EFFFF -FFFFE FFFFF -10FFFE 10FFFF -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Cntrl.pl b/gnu/usr.bin/perl/lib/unicore/lib/Cntrl.pl deleted file mode 100644 index b794776699b..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Cntrl.pl +++ /dev/null @@ -1,29 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Cntrl} -# -# Meaning: [[:Cntrl:]] -# -return <<'END'; -0000 001F -007F 009F -06DD -070F -180E -200C 200F -202A 202E -2060 2063 -206A 206F -D800 F8FF -FEFF -FFF9 FFFB -1D173 1D17A -E0001 -E0020 E007F -F0000 FFFFD -100000 10FFFD -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Co.pl b/gnu/usr.bin/perl/lib/unicore/lib/Co.pl deleted file mode 100644 index 1f1ad215689..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Co.pl +++ /dev/null @@ -1,16 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Co} -# \p{Co} (and fuzzy permutations) -# -# Meaning: General Category 'Co' -# -return <<'END'; -E000 F8FF -F0000 FFFFD -100000 10FFFD -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Common.pl b/gnu/usr.bin/perl/lib/unicore/lib/Common.pl deleted file mode 100644 index 677d38e8bf2..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Common.pl +++ /dev/null @@ -1,367 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Common} (and fuzzy permutations) -# -# Meaning: Pseudo-Script of codepoints not in other Unicode scripts -# -return <<'END'; -0000 0040 -005B 0060 -007B 00A9 -00AB 00B4 -00B6 00B9 -00BB 00BF -00D7 -00F7 -0221 -0234 024F -02AE 02AF -02B9 02DF -02E5 02FF -0350 035F -0370 0379 -037B 0385 -0387 -038B -038D -03A2 -03CF -03F6 03FF -0482 -0487 -04CF -04F6 04F7 -04FA 04FF -0510 0530 -0557 0558 -055A 0560 -0588 0590 -05A2 -05BA -05BE -05C0 -05C3 -05C5 05CF -05EB 05EF -05F3 0620 -063B 0640 -0656 066D -06D4 -06E9 -06EE 06F9 -06FD 070F -072D 072F -074B 077F -07B2 0900 -0904 -093A 093B -094E 094F -0955 0957 -0964 0965 -0970 0980 -0984 -098D 098E -0991 0992 -09A9 -09B1 -09B3 09B5 -09BA 09BB -09BD -09C5 09C6 -09C9 09CA -09CE 09D6 -09D8 09DB -09DE -09E4 09E5 -09F2 0A01 -0A03 0A04 -0A0B 0A0E -0A11 0A12 -0A29 -0A31 -0A34 -0A37 -0A3A 0A3B -0A3D -0A43 0A46 -0A49 0A4A -0A4E 0A58 -0A5D -0A5F 0A65 -0A75 0A80 -0A84 -0A8C -0A8E -0A92 -0AA9 -0AB1 -0AB4 -0ABA 0ABB -0AC6 -0ACA -0ACE 0ACF -0AD1 0ADF -0AE1 0AE5 -0AF0 0B00 -0B04 -0B0D 0B0E -0B11 0B12 -0B29 -0B31 -0B34 0B35 -0B3A 0B3B -0B44 0B46 -0B49 0B4A -0B4E 0B55 -0B58 0B5B -0B5E -0B62 0B65 -0B70 0B81 -0B84 -0B8B 0B8D -0B91 -0B96 0B98 -0B9B -0B9D -0BA0 0BA2 -0BA5 0BA7 -0BAB 0BAD -0BB6 -0BBA 0BBD -0BC3 0BC5 -0BC9 -0BCE 0BD6 -0BD8 0BE6 -0BF3 0C00 -0C04 -0C0D -0C11 -0C29 -0C34 -0C3A 0C3D -0C45 -0C49 -0C4E 0C54 -0C57 0C5F -0C62 0C65 -0C70 0C81 -0C84 -0C8D -0C91 -0CA9 -0CB4 -0CBA 0CBD -0CC5 -0CC9 -0CCE 0CD4 -0CD7 0CDD -0CDF -0CE2 0CE5 -0CF0 0D01 -0D04 -0D0D -0D11 -0D29 -0D3A 0D3D -0D44 0D45 -0D49 -0D4E 0D56 -0D58 0D5F -0D62 0D65 -0D70 0D81 -0D84 -0D97 0D99 -0DB2 -0DBC -0DBE 0DBF -0DC7 0DC9 -0DCB 0DCE -0DD5 -0DD7 -0DE0 0DF1 -0DF4 0E00 -0E3B 0E3F -0E4F -0E5A 0E80 -0E83 -0E85 0E86 -0E89 -0E8B 0E8C -0E8E 0E93 -0E98 -0EA0 -0EA4 -0EA6 -0EA8 0EA9 -0EAC -0EBA -0EBE 0EBF -0EC5 -0EC7 -0ECE 0ECF -0EDA 0EDB -0EDE 0EFF -0F01 0F17 -0F1A 0F1F -0F34 -0F36 -0F38 -0F3A 0F3F -0F48 -0F6B 0F70 -0F85 -0F8C 0F8F -0F98 -0FBD 0FC5 -0FC7 0FFF -1022 -1028 -102B -1033 1035 -103A 103F -104A 104F -105A 109F -10C6 10CF -10F9 10FF -115A 115E -11A3 11A7 -11FA 11FF -1207 -1247 -1249 -124E 124F -1257 -1259 -125E 125F -1287 -1289 -128E 128F -12AF -12B1 -12B6 12B7 -12BF -12C1 -12C6 12C7 -12CF -12D7 -12EF -130F -1311 -1316 1317 -131F -1347 -135B 1368 -137D 139F -13F5 1400 -166D 166E -1677 1680 -169B 169F -16EB 16ED -16F1 16FF -170D -1715 171F -1735 173F -1754 175F -176D -1771 -1774 177F -17D4 17DF -17EA 180A -180E 180F -181A 181F -1878 187F -18AA 1DFF -1E9C 1E9F -1EFA 1EFF -1F16 1F17 -1F1E 1F1F -1F46 1F47 -1F4E 1F4F -1F58 -1F5A -1F5C -1F5E -1F7E 1F7F -1FB5 -1FBD -1FBF 1FC1 -1FC5 -1FCD 1FCF -1FD4 1FD5 -1FDC 1FDF -1FED 1FF1 -1FF5 -1FFD 2070 -2072 207E -2080 20CF -20EB 2125 -2127 2129 -212C 2E7F -2E9A -2EF4 2EFF -2FD6 3004 -3006 -3008 3020 -3030 3037 -303C 3040 -3097 3098 -309B 309C -30A0 -30FB 30FC -3100 3104 -312D 3130 -318F 319F -31B8 31EF -3200 33FF -4DB6 4DFF -9FA6 9FFF -A48D A48F -A4A2 A4A3 -A4B4 -A4C1 -A4C5 -A4C7 ABFF -D7A4 F8FF -FA2E FA2F -FA6B FAFF -FB07 FB12 -FB18 FB1C -FB29 -FB37 -FB3D -FB3F -FB42 -FB45 -FBB2 FBD2 -FD3E FD4F -FD90 FD91 -FDC8 FDEF -FDFC FDFF -FE10 FE1F -FE24 FE6F -FE75 -FEFD FF20 -FF3B FF40 -FF5B FF65 -FF70 -FF9E FF9F -FFBF FFC1 -FFC8 FFC9 -FFD0 FFD1 -FFD8 FFD9 -FFDD 102FF -1031F 1032F -1034B 103FF -10426 10427 -1044E 1D166 -1D16A 1D17A -1D183 1D184 -1D18C 1D1A9 -1D1AE 1FFFF -2A6D7 2F7FF -2FA1E 10FFFF -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Compat.pl b/gnu/usr.bin/perl/lib/unicore/lib/Compat.pl deleted file mode 100644 index 12806f13605..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Compat.pl +++ /dev/null @@ -1,143 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Compat} -# -# Meaning: Compatible with a more-basic character -# -return <<'END'; -00A0 -00A8 -00AA -00AF -00B2 00B5 -00B8 00BA -00BC 00BE -0132 0133 -013F 0140 -0149 -017F -01C4 01CC -01F1 01F3 -02B0 02B8 -02D8 02DD -02E0 02E4 -037A -0384 -03D0 03D2 -03D5 03D6 -03F0 03F2 -03F4 03F5 -0587 -0675 0678 -0E33 -0EB3 -0EDC 0EDD -0F0C -0F77 -0F79 -1E9A -1FBD -1FBF 1FC0 -1FFE -2002 200A -2011 -2017 -2024 2026 -202F -2033 2034 -2036 2037 -203C -203E -2047 2049 -2057 -205F -2070 2071 -2074 208E -20A8 -2100 2103 -2105 2107 -2109 2113 -2115 2116 -2119 211D -2120 2122 -2124 -2128 -212C 212D -212F 2131 -2133 2139 -213D 2140 -2145 2149 -2153 217F -222C 222D -222F 2230 -2460 24EA -2A0C -2A74 2A76 -2E9F -2EF3 -2F00 2FD5 -3000 -3036 -3038 303A -309B 309C -309F -30FF -3131 318E -3192 319F -3200 321C -3220 3243 -3251 327B -3280 32CB -32D0 32FE -3300 3376 -337B 33DD -33E0 33FE -FB00 FB06 -FB13 FB17 -FB20 FB29 -FB4F FBB1 -FBD3 FD3D -FD50 FD8F -FD92 FDC7 -FDF0 FDFC -FE30 FE44 -FE49 FE52 -FE54 FE66 -FE68 FE6B -FE70 FE72 -FE74 -FE76 FEFC -FF01 FFBE -FFC2 FFC7 -FFCA FFCF -FFD2 FFD7 -FFDA FFDC -FFE0 FFE6 -FFE8 FFEE -1D400 1D454 -1D456 1D49C -1D49E 1D49F -1D4A2 -1D4A5 1D4A6 -1D4A9 1D4AC -1D4AE 1D4B9 -1D4BB -1D4BD 1D4C0 -1D4C2 1D4C3 -1D4C5 1D505 -1D507 1D50A -1D50D 1D514 -1D516 1D51C -1D51E 1D539 -1D53B 1D53E -1D540 1D544 -1D546 -1D54A 1D550 -1D552 1D6A3 -1D6A8 1D7C9 -1D7CE 1D7FF -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Cs.pl b/gnu/usr.bin/perl/lib/unicore/lib/Cs.pl deleted file mode 100644 index 4624d9da766..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Cs.pl +++ /dev/null @@ -1,14 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Cs} -# \p{Cs} (and fuzzy permutations) -# -# Meaning: General Category 'Cs' -# -return <<'END'; -D800 DFFF -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Cypriot.pl b/gnu/usr.bin/perl/lib/unicore/lib/Cypriot.pl deleted file mode 100644 index 4e43cf49374..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Cypriot.pl +++ /dev/null @@ -1,18 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Cypriot} (and fuzzy permutations) -# -# Meaning: Script 'CYPRIOT' -# -return <<'END'; -10800 10805 CYPRIOT -10808 CYPRIOT -1080A 10835 CYPRIOT -10837 10838 CYPRIOT -1083C CYPRIOT -1083F CYPRIOT -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Cyrillic.pl b/gnu/usr.bin/perl/lib/unicore/lib/Cyrillic.pl deleted file mode 100644 index 690e2f7a9ef..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Cyrillic.pl +++ /dev/null @@ -1,18 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Cyrillic} (and fuzzy permutations) -# -# Meaning: Script 'CYRILLIC' -# -return <<'END'; -0400 0481 CYRILLIC -0483 0486 CYRILLIC -048A 04CE CYRILLIC -04D0 04F5 CYRILLIC -04F8 04F9 CYRILLIC -0500 050F CYRILLIC -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/DCcircle.pl b/gnu/usr.bin/perl/lib/unicore/lib/DCcircle.pl deleted file mode 100644 index b873609a4de..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/DCcircle.pl +++ /dev/null @@ -1,17 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{DCcircle} -# -# Meaning: Compatible with 'circle' -# -return <<'END'; -2460 2473 -24B6 24EA -3251 327B -3280 32BF -32D0 32FE -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/DCcompat.pl b/gnu/usr.bin/perl/lib/unicore/lib/DCcompat.pl deleted file mode 100644 index a35aaa9da3c..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/DCcompat.pl +++ /dev/null @@ -1,81 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{DCcompat} -# -# Meaning: Compatible with 'compat' -# -return <<'END'; -00A8 -00AF -00B4 00B5 -00B8 -0132 0133 -013F 0140 -0149 -017F -01C4 01CC -01F1 01F3 -02D8 02DD -037A -0384 -03D0 03D2 -03D5 03D6 -03F0 03F2 -03F4 03F5 -0587 -0675 0678 -0E33 -0EB3 -0EDC 0EDD -0F77 -0F79 -1E9A -1FBD -1FBF 1FC0 -1FFE -2002 2006 -2008 200A -2017 -2024 2026 -2033 2034 -2036 2037 -203C -203E -2047 2049 -2057 -205F -20A8 -2100 2101 -2103 -2105 2107 -2109 -2116 -2121 -2135 2138 -2160 217F -222C 222D -222F 2230 -2474 24B5 -2A0C -2A74 2A76 -2E9F -2EF3 -2F00 2FD5 -3036 -3038 303A -309B 309C -3131 318E -3200 321C -3220 3243 -32C0 32CB -3358 3370 -33E0 33FE -FB00 FB06 -FB13 FB17 -FB4F -FE49 FE4F -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/DCfinal.pl b/gnu/usr.bin/perl/lib/unicore/lib/DCfinal.pl deleted file mode 100644 index d5fa53efe45..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/DCfinal.pl +++ /dev/null @@ -1,125 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{DCfinal} -# -# Meaning: Compatible with 'final' -# -return <<'END'; -FB51 -FB53 -FB57 -FB5B -FB5F -FB63 -FB67 -FB6B -FB6F -FB73 -FB77 -FB7B -FB7F -FB83 -FB85 -FB87 -FB89 -FB8B -FB8D -FB8F -FB93 -FB97 -FB9B -FB9F -FBA1 -FBA5 -FBA7 -FBAB -FBAF -FBB1 -FBD4 -FBD8 -FBDA -FBDC -FBDF -FBE1 -FBE3 -FBE5 -FBEB -FBED -FBEF -FBF1 -FBF3 -FBF5 -FBF7 -FBFA -FBFD -FC64 FC96 -FD11 FD2C -FD3C -FD51 -FD58 -FD5A FD5B -FD5E FD5F -FD62 -FD64 -FD66 FD67 -FD69 FD6A -FD6C -FD6E FD6F -FD71 -FD74 FD76 -FD78 FD7C -FD7E FD82 -FD84 FD85 -FD87 -FD8B -FD96 FD97 -FD99 FD9C -FD9E FDB3 -FDB6 FDB7 -FDB9 -FDBB FDC2 -FDC6 FDC7 -FE82 -FE84 -FE86 -FE88 -FE8A -FE8E -FE90 -FE94 -FE96 -FE9A -FE9E -FEA2 -FEA6 -FEAA -FEAC -FEAE -FEB0 -FEB2 -FEB6 -FEBA -FEBE -FEC2 -FEC6 -FECA -FECE -FED2 -FED6 -FEDA -FEDE -FEE2 -FEE6 -FEEA -FEEE -FEF0 -FEF2 -FEF6 -FEF8 -FEFA -FEFC -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/DCfont.pl b/gnu/usr.bin/perl/lib/unicore/lib/DCfont.pl deleted file mode 100644 index 30b94d1aeb5..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/DCfont.pl +++ /dev/null @@ -1,47 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{DCfont} -# -# Meaning: Compatible with 'font' -# -return <<'END'; -2102 -210A 2113 -2115 -2119 211D -2124 -2128 -212C 212D -212F 2131 -2133 2134 -2139 -213D 2140 -2145 2149 -FB20 FB29 -1D400 1D454 -1D456 1D49C -1D49E 1D49F -1D4A2 -1D4A5 1D4A6 -1D4A9 1D4AC -1D4AE 1D4B9 -1D4BB -1D4BD 1D4C0 -1D4C2 1D4C3 -1D4C5 1D505 -1D507 1D50A -1D50D 1D514 -1D516 1D51C -1D51E 1D539 -1D53B 1D53E -1D540 1D544 -1D546 -1D54A 1D550 -1D552 1D6A3 -1D6A8 1D7C9 -1D7CE 1D7FF -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/DCfracti.pl b/gnu/usr.bin/perl/lib/unicore/lib/DCfracti.pl deleted file mode 100644 index 87b4247f476..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/DCfracti.pl +++ /dev/null @@ -1,14 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{DCfraction} -# -# Meaning: Compatible with 'fraction' -# -return <<'END'; -00BC 00BE -2153 215F -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/DCinitia.pl b/gnu/usr.bin/perl/lib/unicore/lib/DCinitia.pl deleted file mode 100644 index b903eceef61..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/DCinitia.pl +++ /dev/null @@ -1,87 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{DCinitial} -# -# Meaning: Compatible with 'initial' -# -return <<'END'; -FB54 -FB58 -FB5C -FB60 -FB64 -FB68 -FB6C -FB70 -FB74 -FB78 -FB7C -FB80 -FB90 -FB94 -FB98 -FB9C -FBA2 -FBA8 -FBAC -FBD5 -FBE6 -FBE8 -FBF8 -FBFB -FBFE -FC97 FCDE -FD2D FD33 -FD50 -FD52 FD57 -FD59 -FD5C FD5D -FD60 FD61 -FD63 -FD65 -FD68 -FD6B -FD6D -FD70 -FD72 FD73 -FD77 -FD7D -FD83 -FD86 -FD88 FD8A -FD8C FD8F -FD92 FD95 -FD98 -FD9D -FDB4 FDB5 -FDB8 -FDBA -FDC3 FDC5 -FE8B -FE91 -FE97 -FE9B -FE9F -FEA3 -FEA7 -FEB3 -FEB7 -FEBB -FEBF -FEC3 -FEC7 -FECB -FECF -FED3 -FED7 -FEDB -FEDF -FEE3 -FEE7 -FEEB -FEF3 -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/DCisolat.pl b/gnu/usr.bin/perl/lib/unicore/lib/DCisolat.pl deleted file mode 100644 index d973ea495e2..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/DCisolat.pl +++ /dev/null @@ -1,110 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{DCisolated} -# -# Meaning: Compatible with 'isolated' -# -return <<'END'; -FB50 -FB52 -FB56 -FB5A -FB5E -FB62 -FB66 -FB6A -FB6E -FB72 -FB76 -FB7A -FB7E -FB82 -FB84 -FB86 -FB88 -FB8A -FB8C -FB8E -FB92 -FB96 -FB9A -FB9E -FBA0 -FBA4 -FBA6 -FBAA -FBAE -FBB0 -FBD3 -FBD7 -FBD9 -FBDB -FBDD FBDE -FBE0 -FBE2 -FBE4 -FBEA -FBEC -FBEE -FBF0 -FBF2 -FBF4 -FBF6 -FBF9 -FBFC -FC00 FC63 -FCF5 FD10 -FD3D -FDF0 FDFC -FE70 -FE72 -FE74 -FE76 -FE78 -FE7A -FE7C -FE7E -FE80 FE81 -FE83 -FE85 -FE87 -FE89 -FE8D -FE8F -FE93 -FE95 -FE99 -FE9D -FEA1 -FEA5 -FEA9 -FEAB -FEAD -FEAF -FEB1 -FEB5 -FEB9 -FEBD -FEC1 -FEC5 -FEC9 -FECD -FED1 -FED5 -FED9 -FEDD -FEE1 -FEE5 -FEE9 -FEED -FEEF -FEF1 -FEF5 -FEF7 -FEF9 -FEFB -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/DCmedial.pl b/gnu/usr.bin/perl/lib/unicore/lib/DCmedial.pl deleted file mode 100644 index 8d15d90321d..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/DCmedial.pl +++ /dev/null @@ -1,66 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{DCmedial} -# -# Meaning: Compatible with 'medial' -# -return <<'END'; -FB55 -FB59 -FB5D -FB61 -FB65 -FB69 -FB6D -FB71 -FB75 -FB79 -FB7D -FB81 -FB91 -FB95 -FB99 -FB9D -FBA3 -FBA9 -FBAD -FBD6 -FBE7 -FBE9 -FBFF -FCDF FCF4 -FD34 FD3B -FE71 -FE77 -FE79 -FE7B -FE7D -FE7F -FE8C -FE92 -FE98 -FE9C -FEA0 -FEA4 -FEA8 -FEB4 -FEB8 -FEBC -FEC0 -FEC4 -FEC8 -FECC -FED0 -FED4 -FED8 -FEDC -FEE0 -FEE4 -FEE8 -FEEC -FEF4 -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/DCnarrow.pl b/gnu/usr.bin/perl/lib/unicore/lib/DCnarrow.pl deleted file mode 100644 index 33eca3ce359..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/DCnarrow.pl +++ /dev/null @@ -1,18 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{DCnarrow} -# -# Meaning: Compatible with 'narrow' -# -return <<'END'; -FF61 FFBE -FFC2 FFC7 -FFCA FFCF -FFD2 FFD7 -FFDA FFDC -FFE8 FFEE -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/DCnoBrea.pl b/gnu/usr.bin/perl/lib/unicore/lib/DCnoBrea.pl deleted file mode 100644 index 8cbaecd257a..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/DCnoBrea.pl +++ /dev/null @@ -1,17 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{DCnoBreak} -# -# Meaning: Compatible with 'noBreak' -# -return <<'END'; -00A0 -0F0C -2007 -2011 -202F -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/DCsmall.pl b/gnu/usr.bin/perl/lib/unicore/lib/DCsmall.pl deleted file mode 100644 index 6606d7567fd..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/DCsmall.pl +++ /dev/null @@ -1,15 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{DCsmall} -# -# Meaning: Compatible with 'small' -# -return <<'END'; -FE50 FE52 -FE54 FE66 -FE68 FE6B -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/DCsquare.pl b/gnu/usr.bin/perl/lib/unicore/lib/DCsquare.pl deleted file mode 100644 index 28d4f64d7b6..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/DCsquare.pl +++ /dev/null @@ -1,15 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{DCsquare} -# -# Meaning: Compatible with 'square' -# -return <<'END'; -3300 3357 -3371 3376 -337B 33DD -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/DCsub.pl b/gnu/usr.bin/perl/lib/unicore/lib/DCsub.pl deleted file mode 100644 index df3daf6bb0a..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/DCsub.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{DCsub} -# -# Meaning: Compatible with 'sub' -# -return <<'END'; -2080 208E -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/DCsuper.pl b/gnu/usr.bin/perl/lib/unicore/lib/DCsuper.pl deleted file mode 100644 index a11ac2dcb96..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/DCsuper.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{DCsuper} -# -# Meaning: Compatible with 'super' -# -return <<'END'; -00AA -00B2 00B3 -00B9 00BA -02B0 02B8 -02E0 02E4 -2070 2071 -2074 207F -2120 -2122 -3192 319F -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/DCvertic.pl b/gnu/usr.bin/perl/lib/unicore/lib/DCvertic.pl deleted file mode 100644 index d7928e562f3..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/DCvertic.pl +++ /dev/null @@ -1,15 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{DCvertical} -# -# Meaning: Compatible with 'vertical' -# -return <<'END'; -309F -30FF -FE30 FE44 -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/DCwide.pl b/gnu/usr.bin/perl/lib/unicore/lib/DCwide.pl deleted file mode 100644 index 664c498d281..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/DCwide.pl +++ /dev/null @@ -1,15 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{DCwide} -# -# Meaning: Compatible with 'wide' -# -return <<'END'; -3000 -FF01 FF60 -FFE0 FFE6 -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Dash.pl b/gnu/usr.bin/perl/lib/unicore/lib/Dash.pl deleted file mode 100644 index 3d4dd59b7b0..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Dash.pl +++ /dev/null @@ -1,26 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Dash} (and fuzzy permutations) -# -# Meaning: Extended property 'Dash' -# -return <<'END'; -002D Dash -00AD Dash -058A Dash -1806 Dash -2010 2015 Dash -207B Dash -208B Dash -2212 Dash -301C Dash -3030 Dash -FE31 FE32 Dash -FE58 Dash -FE63 Dash -FF0D Dash -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Deprecat.pl b/gnu/usr.bin/perl/lib/unicore/lib/Deprecat.pl deleted file mode 100644 index 1866c6c2da6..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Deprecat.pl +++ /dev/null @@ -1,14 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Deprecated} (and fuzzy permutations) -# -# Meaning: Extended property 'Deprecated' -# -return <<'END'; -0340 0341 Deprecated -206A 206F Deprecated -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Deseret.pl b/gnu/usr.bin/perl/lib/unicore/lib/Deseret.pl deleted file mode 100644 index 20431e628f8..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Deseret.pl +++ /dev/null @@ -1,14 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Deseret} (and fuzzy permutations) -# -# Meaning: Script 'DESERET' -# -return <<'END'; -10400 10425 DESERET -10428 1044D DESERET -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Devanaga.pl b/gnu/usr.bin/perl/lib/unicore/lib/Devanaga.pl deleted file mode 100644 index d35fc083127..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Devanaga.pl +++ /dev/null @@ -1,18 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Devanagari} (and fuzzy permutations) -# -# Meaning: Script 'DEVANAGARI' -# -return <<'END'; -0901 0903 DEVANAGARI -0905 0939 DEVANAGARI -093C 094D DEVANAGARI -0950 0954 DEVANAGARI -0958 0963 DEVANAGARI -0966 096F DEVANAGARI -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Diacriti.pl b/gnu/usr.bin/perl/lib/unicore/lib/Diacriti.pl deleted file mode 100644 index e22111672b7..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Diacriti.pl +++ /dev/null @@ -1,89 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Diacritic} (and fuzzy permutations) -# -# Meaning: Extended property 'Diacritic' -# -return <<'END'; -005E Diacritic -0060 Diacritic -00A8 Diacritic -00AF Diacritic -00B4 Diacritic -00B7 00B8 Diacritic -02B0 02EE Diacritic -0300 034E Diacritic -0360 0362 Diacritic -0374 0375 Diacritic -037A Diacritic -0384 0385 Diacritic -0483 0486 Diacritic -0559 Diacritic -0591 05A1 Diacritic -05A3 05B9 Diacritic -05BB 05BD Diacritic -05BF Diacritic -05C1 05C2 Diacritic -05C4 Diacritic -064B 0652 Diacritic -06DF 06E0 Diacritic -06E5 06E6 Diacritic -06EA 06EC Diacritic -0730 074A Diacritic -07A6 07B0 Diacritic -093C Diacritic -094D Diacritic -0951 0954 Diacritic -09BC Diacritic -09CD Diacritic -0A3C Diacritic -0A4D Diacritic -0ABC Diacritic -0ACD Diacritic -0B3C Diacritic -0B4D Diacritic -0BCD Diacritic -0C4D Diacritic -0CCD Diacritic -0D4D Diacritic -0DCA Diacritic -0E47 0E4C Diacritic -0E4E Diacritic -0EC8 0ECC Diacritic -0F18 0F19 Diacritic -0F35 Diacritic -0F37 Diacritic -0F39 Diacritic -0F3E 0F3F Diacritic -0F82 0F84 Diacritic -0F86 0F87 Diacritic -0FC6 Diacritic -1037 Diacritic -1039 Diacritic -17C9 17D3 Diacritic -1FBD Diacritic -1FBF 1FC1 Diacritic -1FCD 1FCF Diacritic -1FDD 1FDF Diacritic -1FED 1FEF Diacritic -1FFD 1FFE Diacritic -302A 302F Diacritic -3099 309C Diacritic -30FC Diacritic -FB1E Diacritic -FE20 FE23 Diacritic -FF3E Diacritic -FF40 Diacritic -FF70 Diacritic -FF9E FF9F Diacritic -FFE3 Diacritic -1D167 1D169 Diacritic -1D16D 1D172 Diacritic -1D17B 1D182 Diacritic -1D185 1D18B Diacritic -1D1AA 1D1AD Diacritic -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Digit.pl b/gnu/usr.bin/perl/lib/unicore/lib/Digit.pl deleted file mode 100644 index 3a8c507ae73..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Digit.pl +++ /dev/null @@ -1,33 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Digit} -# -# Meaning: [[:Digit:]] -# -return <<'END'; -0030 0039 -0660 0669 -06F0 06F9 -0966 096F -09E6 09EF -0A66 0A6F -0AE6 0AEF -0B66 0B6F -0BE7 0BEF -0C66 0C6F -0CE6 0CEF -0D66 0D6F -0E50 0E59 -0ED0 0ED9 -0F20 0F29 -1040 1049 -1369 1371 -17E0 17E9 -1810 1819 -FF10 FF19 -1D7CE 1D7FF -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Ethiopic.pl b/gnu/usr.bin/perl/lib/unicore/lib/Ethiopic.pl deleted file mode 100644 index 433d7d8e040..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Ethiopic.pl +++ /dev/null @@ -1,38 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Ethiopic} (and fuzzy permutations) -# -# Meaning: Script 'ETHIOPIC' -# -return <<'END'; -1200 1206 ETHIOPIC -1208 1246 ETHIOPIC -1248 ETHIOPIC -124A 124D ETHIOPIC -1250 1256 ETHIOPIC -1258 ETHIOPIC -125A 125D ETHIOPIC -1260 1286 ETHIOPIC -1288 ETHIOPIC -128A 128D ETHIOPIC -1290 12AE ETHIOPIC -12B0 ETHIOPIC -12B2 12B5 ETHIOPIC -12B8 12BE ETHIOPIC -12C0 ETHIOPIC -12C2 12C5 ETHIOPIC -12C8 12CE ETHIOPIC -12D0 12D6 ETHIOPIC -12D8 12EE ETHIOPIC -12F0 130E ETHIOPIC -1310 ETHIOPIC -1312 1315 ETHIOPIC -1318 131E ETHIOPIC -1320 1346 ETHIOPIC -1348 135A ETHIOPIC -1369 137C ETHIOPIC -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Extender.pl b/gnu/usr.bin/perl/lib/unicore/lib/Extender.pl deleted file mode 100644 index dd0dab84ba9..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Extender.pl +++ /dev/null @@ -1,23 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Extender} (and fuzzy permutations) -# -# Meaning: Extended property 'Extender' -# -return <<'END'; -00B7 Extender -02D0 02D1 Extender -0640 Extender -0E46 Extender -0EC6 Extender -1843 Extender -3005 Extender -3031 3035 Extender -309D 309E Extender -30FC 30FE Extender -FF70 Extender -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Georgian.pl b/gnu/usr.bin/perl/lib/unicore/lib/Georgian.pl deleted file mode 100644 index cd56aaa56d0..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Georgian.pl +++ /dev/null @@ -1,14 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Georgian} (and fuzzy permutations) -# -# Meaning: Script 'GEORGIAN' -# -return <<'END'; -10A0 10C5 GEORGIAN -10D0 10F8 GEORGIAN -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Gothic.pl b/gnu/usr.bin/perl/lib/unicore/lib/Gothic.pl deleted file mode 100644 index 321d7234fc6..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Gothic.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Gothic} (and fuzzy permutations) -# -# Meaning: Script 'GOTHIC' -# -return <<'END'; -10330 1034A GOTHIC -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Graph.pl b/gnu/usr.bin/perl/lib/unicore/lib/Graph.pl deleted file mode 100644 index e3e98b518dc..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Graph.pl +++ /dev/null @@ -1,398 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Graph} -# -# Meaning: [[:Graph:]] -# -return <<'END'; -0021 007E -00A1 0220 -0222 0233 -0250 02AD -02B0 02EE -0300 034F -0360 036F -0374 0375 -037A -037E -0384 038A -038C -038E 03A1 -03A3 03CE -03D0 03F6 -0400 0486 -0488 04CE -04D0 04F5 -04F8 04F9 -0500 050F -0531 0556 -0559 055F -0561 0587 -0589 058A -0591 05A1 -05A3 05B9 -05BB 05C4 -05D0 05EA -05F0 05F4 -060C -061B -061F -0621 063A -0640 0655 -0660 06DC -06DE 06ED -06F0 06FE -0700 070D -0710 072C -0730 074A -0780 07B1 -0901 0903 -0905 0939 -093C 094D -0950 0954 -0958 0970 -0981 0983 -0985 098C -098F 0990 -0993 09A8 -09AA 09B0 -09B2 -09B6 09B9 -09BC -09BE 09C4 -09C7 09C8 -09CB 09CD -09D7 -09DC 09DD -09DF 09E3 -09E6 09FA -0A02 -0A05 0A0A -0A0F 0A10 -0A13 0A28 -0A2A 0A30 -0A32 0A33 -0A35 0A36 -0A38 0A39 -0A3C -0A3E 0A42 -0A47 0A48 -0A4B 0A4D -0A59 0A5C -0A5E -0A66 0A74 -0A81 0A83 -0A85 0A8B -0A8D -0A8F 0A91 -0A93 0AA8 -0AAA 0AB0 -0AB2 0AB3 -0AB5 0AB9 -0ABC 0AC5 -0AC7 0AC9 -0ACB 0ACD -0AD0 -0AE0 -0AE6 0AEF -0B01 0B03 -0B05 0B0C -0B0F 0B10 -0B13 0B28 -0B2A 0B30 -0B32 0B33 -0B36 0B39 -0B3C 0B43 -0B47 0B48 -0B4B 0B4D -0B56 0B57 -0B5C 0B5D -0B5F 0B61 -0B66 0B70 -0B82 0B83 -0B85 0B8A -0B8E 0B90 -0B92 0B95 -0B99 0B9A -0B9C -0B9E 0B9F -0BA3 0BA4 -0BA8 0BAA -0BAE 0BB5 -0BB7 0BB9 -0BBE 0BC2 -0BC6 0BC8 -0BCA 0BCD -0BD7 -0BE7 0BF2 -0C01 0C03 -0C05 0C0C -0C0E 0C10 -0C12 0C28 -0C2A 0C33 -0C35 0C39 -0C3E 0C44 -0C46 0C48 -0C4A 0C4D -0C55 0C56 -0C60 0C61 -0C66 0C6F -0C82 0C83 -0C85 0C8C -0C8E 0C90 -0C92 0CA8 -0CAA 0CB3 -0CB5 0CB9 -0CBE 0CC4 -0CC6 0CC8 -0CCA 0CCD -0CD5 0CD6 -0CDE -0CE0 0CE1 -0CE6 0CEF -0D02 0D03 -0D05 0D0C -0D0E 0D10 -0D12 0D28 -0D2A 0D39 -0D3E 0D43 -0D46 0D48 -0D4A 0D4D -0D57 -0D60 0D61 -0D66 0D6F -0D82 0D83 -0D85 0D96 -0D9A 0DB1 -0DB3 0DBB -0DBD -0DC0 0DC6 -0DCA -0DCF 0DD4 -0DD6 -0DD8 0DDF -0DF2 0DF4 -0E01 0E3A -0E3F 0E5B -0E81 0E82 -0E84 -0E87 0E88 -0E8A -0E8D -0E94 0E97 -0E99 0E9F -0EA1 0EA3 -0EA5 -0EA7 -0EAA 0EAB -0EAD 0EB9 -0EBB 0EBD -0EC0 0EC4 -0EC6 -0EC8 0ECD -0ED0 0ED9 -0EDC 0EDD -0F00 0F47 -0F49 0F6A -0F71 0F8B -0F90 0F97 -0F99 0FBC -0FBE 0FCC -0FCF -1000 1021 -1023 1027 -1029 102A -102C 1032 -1036 1039 -1040 1059 -10A0 10C5 -10D0 10F8 -10FB -1100 1159 -115F 11A2 -11A8 11F9 -1200 1206 -1208 1246 -1248 -124A 124D -1250 1256 -1258 -125A 125D -1260 1286 -1288 -128A 128D -1290 12AE -12B0 -12B2 12B5 -12B8 12BE -12C0 -12C2 12C5 -12C8 12CE -12D0 12D6 -12D8 12EE -12F0 130E -1310 -1312 1315 -1318 131E -1320 1346 -1348 135A -1361 137C -13A0 13F4 -1401 1676 -1681 169C -16A0 16F0 -1700 170C -170E 1714 -1720 1736 -1740 1753 -1760 176C -176E 1770 -1772 1773 -1780 17DC -17E0 17E9 -1800 180D -1810 1819 -1820 1877 -1880 18A9 -1E00 1E9B -1EA0 1EF9 -1F00 1F15 -1F18 1F1D -1F20 1F45 -1F48 1F4D -1F50 1F57 -1F59 -1F5B -1F5D -1F5F 1F7D -1F80 1FB4 -1FB6 1FC4 -1FC6 1FD3 -1FD6 1FDB -1FDD 1FEF -1FF2 1FF4 -1FF6 1FFE -2010 2027 -2030 2052 -2057 -2070 2071 -2074 208E -20A0 20B1 -20D0 20EA -2100 213A -213D 214B -2153 2183 -2190 23CE -2400 2426 -2440 244A -2460 24FE -2500 2613 -2616 2617 -2619 267D -2680 2689 -2701 2704 -2706 2709 -270C 2727 -2729 274B -274D -274F 2752 -2756 -2758 275E -2761 2794 -2798 27AF -27B1 27BE -27D0 27EB -27F0 2AFF -2E80 2E99 -2E9B 2EF3 -2F00 2FD5 -2FF0 2FFB -3001 303F -3041 3096 -3099 30FF -3105 312C -3131 318E -3190 31B7 -31F0 321C -3220 3243 -3251 327B -327F 32CB -32D0 32FE -3300 3376 -337B 33DD -33E0 33FE -3400 4DB5 -4E00 9FA5 -A000 A48C -A490 A4C6 -AC00 D7A3 -E000 FA2D -FA30 FA6A -FB00 FB06 -FB13 FB17 -FB1D FB36 -FB38 FB3C -FB3E -FB40 FB41 -FB43 FB44 -FB46 FBB1 -FBD3 FD3F -FD50 FD8F -FD92 FDC7 -FDF0 FDFC -FE00 FE0F -FE20 FE23 -FE30 FE46 -FE49 FE52 -FE54 FE66 -FE68 FE6B -FE70 FE74 -FE76 FEFC -FF01 FFBE -FFC2 FFC7 -FFCA FFCF -FFD2 FFD7 -FFDA FFDC -FFE0 FFE6 -FFE8 FFEE -FFFC FFFD -10300 1031E -10320 10323 -10330 1034A -10400 10425 -10428 1044D -1D000 1D0F5 -1D100 1D126 -1D12A 1D172 -1D17B 1D1DD -1D400 1D454 -1D456 1D49C -1D49E 1D49F -1D4A2 -1D4A5 1D4A6 -1D4A9 1D4AC -1D4AE 1D4B9 -1D4BB -1D4BD 1D4C0 -1D4C2 1D4C3 -1D4C5 1D505 -1D507 1D50A -1D50D 1D514 -1D516 1D51C -1D51E 1D539 -1D53B 1D53E -1D540 1D544 -1D546 -1D54A 1D550 -1D552 1D6A3 -1D6A8 1D7C9 -1D7CE 1D7FF -20000 2A6D6 -2F800 2FA1D -F0000 FFFFD -100000 10FFFD -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Grapheme.pl b/gnu/usr.bin/perl/lib/unicore/lib/Grapheme.pl deleted file mode 100644 index dc2183abb46..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Grapheme.pl +++ /dev/null @@ -1,25 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{GraphemeLink} (and fuzzy permutations) -# -# Meaning: Extended property 'Grapheme_Link' -# -return <<'END'; -094D Grapheme_Link -09CD Grapheme_Link -0A4D Grapheme_Link -0ACD Grapheme_Link -0B4D Grapheme_Link -0BCD Grapheme_Link -0C4D Grapheme_Link -0CCD Grapheme_Link -0D4D Grapheme_Link -0DCA Grapheme_Link -0E3A Grapheme_Link -1039 Grapheme_Link -17D2 Grapheme_Link -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Greek.pl b/gnu/usr.bin/perl/lib/unicore/lib/Greek.pl deleted file mode 100644 index 76ad2ad6f76..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Greek.pl +++ /dev/null @@ -1,40 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Greek} (and fuzzy permutations) -# -# Meaning: Script 'GREEK' -# -return <<'END'; -00B5 GREEK -037A GREEK -0386 GREEK -0388 038A GREEK -038C GREEK -038E 03A1 GREEK -03A3 03CE GREEK -03D0 03F5 GREEK -1F00 1F15 GREEK -1F18 1F1D GREEK -1F20 1F45 GREEK -1F48 1F4D GREEK -1F50 1F57 GREEK -1F59 GREEK -1F5B GREEK -1F5D GREEK -1F5F 1F7D GREEK -1F80 1FB4 GREEK -1FB6 1FBC GREEK -1FBE GREEK -1FC2 1FC4 GREEK -1FC6 1FCC GREEK -1FD0 1FD3 GREEK -1FD6 1FDB GREEK -1FE0 1FEC GREEK -1FF2 1FF4 GREEK -1FF6 1FFC GREEK -2126 GREEK -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Gujarati.pl b/gnu/usr.bin/perl/lib/unicore/lib/Gujarati.pl deleted file mode 100644 index aba2f31753b..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Gujarati.pl +++ /dev/null @@ -1,26 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Gujarati} (and fuzzy permutations) -# -# Meaning: Script 'GUJARATI' -# -return <<'END'; -0A81 0A83 GUJARATI -0A85 0A8B GUJARATI -0A8D GUJARATI -0A8F 0A91 GUJARATI -0A93 0AA8 GUJARATI -0AAA 0AB0 GUJARATI -0AB2 0AB3 GUJARATI -0AB5 0AB9 GUJARATI -0ABC 0AC5 GUJARATI -0AC7 0AC9 GUJARATI -0ACB 0ACD GUJARATI -0AD0 GUJARATI -0AE0 GUJARATI -0AE6 0AEF GUJARATI -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Gurmukhi.pl b/gnu/usr.bin/perl/lib/unicore/lib/Gurmukhi.pl deleted file mode 100644 index a56e9ae7218..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Gurmukhi.pl +++ /dev/null @@ -1,27 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Gurmukhi} (and fuzzy permutations) -# -# Meaning: Script 'GURMUKHI' -# -return <<'END'; -0A02 GURMUKHI -0A05 0A0A GURMUKHI -0A0F 0A10 GURMUKHI -0A13 0A28 GURMUKHI -0A2A 0A30 GURMUKHI -0A32 0A33 GURMUKHI -0A35 0A36 GURMUKHI -0A38 0A39 GURMUKHI -0A3C GURMUKHI -0A3E 0A42 GURMUKHI -0A47 0A48 GURMUKHI -0A4B 0A4D GURMUKHI -0A59 0A5C GURMUKHI -0A5E GURMUKHI -0A66 0A74 GURMUKHI -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Han.pl b/gnu/usr.bin/perl/lib/unicore/lib/Han.pl deleted file mode 100644 index 903bbf2dfd2..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Han.pl +++ /dev/null @@ -1,25 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Han} (and fuzzy permutations) -# -# Meaning: Script 'HAN' -# -return <<'END'; -2E80 2E99 HAN -2E9B 2EF3 HAN -2F00 2FD5 HAN -3005 HAN -3007 HAN -3021 3029 HAN -3038 303B HAN -3400 4DB5 HAN -4E00 9FA5 HAN -F900 FA2D HAN -FA30 FA6A HAN -20000 2A6D6 HAN -2F800 2FA1D HAN -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Hangul.pl b/gnu/usr.bin/perl/lib/unicore/lib/Hangul.pl deleted file mode 100644 index afa24a06015..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Hangul.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Hangul} (and fuzzy permutations) -# -# Meaning: Script 'HANGUL' -# -return <<'END'; -1100 1159 HANGUL -115F 11A2 HANGUL -11A8 11F9 HANGUL -3131 318E HANGUL -AC00 D7A3 HANGUL -FFA0 FFBE HANGUL -FFC2 FFC7 HANGUL -FFCA FFCF HANGUL -FFD2 FFD7 HANGUL -FFDA FFDC HANGUL -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Hanunoo.pl b/gnu/usr.bin/perl/lib/unicore/lib/Hanunoo.pl deleted file mode 100644 index 077cc076c7f..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Hanunoo.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Hanunoo} (and fuzzy permutations) -# -# Meaning: Script 'HANUNOO' -# -return <<'END'; -1720 1734 HANUNOO -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Hebrew.pl b/gnu/usr.bin/perl/lib/unicore/lib/Hebrew.pl deleted file mode 100644 index 4ec1444cb6b..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Hebrew.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Hebrew} (and fuzzy permutations) -# -# Meaning: Script 'HEBREW' -# -return <<'END'; -05D0 05EA HEBREW -05F0 05F2 HEBREW -FB1D HEBREW -FB1F FB28 HEBREW -FB2A FB36 HEBREW -FB38 FB3C HEBREW -FB3E HEBREW -FB40 FB41 HEBREW -FB43 FB44 HEBREW -FB46 FB4F HEBREW -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/HexDigit.pl b/gnu/usr.bin/perl/lib/unicore/lib/HexDigit.pl deleted file mode 100644 index 9bb0755a641..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/HexDigit.pl +++ /dev/null @@ -1,18 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{HexDigit} (and fuzzy permutations) -# -# Meaning: Extended property 'Hex_Digit' -# -return <<'END'; -0030 0039 Hex_Digit -0041 0046 Hex_Digit -0061 0066 Hex_Digit -FF10 FF19 Hex_Digit -FF21 FF26 Hex_Digit -FF41 FF46 Hex_Digit -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Hiragana.pl b/gnu/usr.bin/perl/lib/unicore/lib/Hiragana.pl deleted file mode 100644 index dddb82d74d8..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Hiragana.pl +++ /dev/null @@ -1,14 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Hiragana} (and fuzzy permutations) -# -# Meaning: Script 'HIRAGANA' -# -return <<'END'; -3041 3096 HIRAGANA -309D 309F HIRAGANA -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Hyphen.pl b/gnu/usr.bin/perl/lib/unicore/lib/Hyphen.pl deleted file mode 100644 index b1ca8d6c9a2..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Hyphen.pl +++ /dev/null @@ -1,21 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Hyphen} (and fuzzy permutations) -# -# Meaning: Extended property 'Hyphen' -# -return <<'END'; -002D Hyphen -00AD Hyphen -058A Hyphen -1806 Hyphen -2010 2011 Hyphen -30FB Hyphen -FE63 Hyphen -FF0D Hyphen -FF65 Hyphen -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/IdContin.pl b/gnu/usr.bin/perl/lib/unicore/lib/IdContin.pl deleted file mode 100644 index 7de06495905..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/IdContin.pl +++ /dev/null @@ -1,416 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{IdContinue} (and fuzzy permutations) -# -# Meaning: [\p{ID_Start}\p{Mn}\p{Mc}\p{Nd}\p{Pc}] -# -return <<'END'; -0030 0039 -0041 005A -005F -0061 007A -00AA -00B5 -00BA -00C0 00D6 -00D8 00F6 -00F8 0220 -0222 0233 -0250 02AD -02B0 02B8 -02BB 02C1 -02D0 02D1 -02E0 02E4 -02EE -0300 034F -0360 036F -037A -0386 -0388 038A -038C -038E 03A1 -03A3 03CE -03D0 03F5 -0400 0481 -0483 0486 -048A 04CE -04D0 04F5 -04F8 04F9 -0500 050F -0531 0556 -0559 -0561 0587 -0591 05A1 -05A3 05B9 -05BB 05BD -05BF -05C1 05C2 -05C4 -05D0 05EA -05F0 05F2 -0621 063A -0640 0655 -0660 0669 -066E 06D3 -06D5 06DC -06DF 06E8 -06EA 06ED -06F0 06FC -0710 072C -0730 074A -0780 07B1 -0901 0903 -0905 0939 -093C 094D -0950 0954 -0958 0963 -0966 096F -0981 0983 -0985 098C -098F 0990 -0993 09A8 -09AA 09B0 -09B2 -09B6 09B9 -09BC -09BE 09C4 -09C7 09C8 -09CB 09CD -09D7 -09DC 09DD -09DF 09E3 -09E6 09F1 -0A02 -0A05 0A0A -0A0F 0A10 -0A13 0A28 -0A2A 0A30 -0A32 0A33 -0A35 0A36 -0A38 0A39 -0A3C -0A3E 0A42 -0A47 0A48 -0A4B 0A4D -0A59 0A5C -0A5E -0A66 0A74 -0A81 0A83 -0A85 0A8B -0A8D -0A8F 0A91 -0A93 0AA8 -0AAA 0AB0 -0AB2 0AB3 -0AB5 0AB9 -0ABC 0AC5 -0AC7 0AC9 -0ACB 0ACD -0AD0 -0AE0 -0AE6 0AEF -0B01 0B03 -0B05 0B0C -0B0F 0B10 -0B13 0B28 -0B2A 0B30 -0B32 0B33 -0B36 0B39 -0B3C 0B43 -0B47 0B48 -0B4B 0B4D -0B56 0B57 -0B5C 0B5D -0B5F 0B61 -0B66 0B6F -0B82 0B83 -0B85 0B8A -0B8E 0B90 -0B92 0B95 -0B99 0B9A -0B9C -0B9E 0B9F -0BA3 0BA4 -0BA8 0BAA -0BAE 0BB5 -0BB7 0BB9 -0BBE 0BC2 -0BC6 0BC8 -0BCA 0BCD -0BD7 -0BE7 0BEF -0C01 0C03 -0C05 0C0C -0C0E 0C10 -0C12 0C28 -0C2A 0C33 -0C35 0C39 -0C3E 0C44 -0C46 0C48 -0C4A 0C4D -0C55 0C56 -0C60 0C61 -0C66 0C6F -0C82 0C83 -0C85 0C8C -0C8E 0C90 -0C92 0CA8 -0CAA 0CB3 -0CB5 0CB9 -0CBE 0CC4 -0CC6 0CC8 -0CCA 0CCD -0CD5 0CD6 -0CDE -0CE0 0CE1 -0CE6 0CEF -0D02 0D03 -0D05 0D0C -0D0E 0D10 -0D12 0D28 -0D2A 0D39 -0D3E 0D43 -0D46 0D48 -0D4A 0D4D -0D57 -0D60 0D61 -0D66 0D6F -0D82 0D83 -0D85 0D96 -0D9A 0DB1 -0DB3 0DBB -0DBD -0DC0 0DC6 -0DCA -0DCF 0DD4 -0DD6 -0DD8 0DDF -0DF2 0DF3 -0E01 0E3A -0E40 0E4E -0E50 0E59 -0E81 0E82 -0E84 -0E87 0E88 -0E8A -0E8D -0E94 0E97 -0E99 0E9F -0EA1 0EA3 -0EA5 -0EA7 -0EAA 0EAB -0EAD 0EB9 -0EBB 0EBD -0EC0 0EC4 -0EC6 -0EC8 0ECD -0ED0 0ED9 -0EDC 0EDD -0F00 -0F18 0F19 -0F20 0F29 -0F35 -0F37 -0F39 -0F3E 0F47 -0F49 0F6A -0F71 0F84 -0F86 0F8B -0F90 0F97 -0F99 0FBC -0FC6 -1000 1021 -1023 1027 -1029 102A -102C 1032 -1036 1039 -1040 1049 -1050 1059 -10A0 10C5 -10D0 10F8 -1100 1159 -115F 11A2 -11A8 11F9 -1200 1206 -1208 1246 -1248 -124A 124D -1250 1256 -1258 -125A 125D -1260 1286 -1288 -128A 128D -1290 12AE -12B0 -12B2 12B5 -12B8 12BE -12C0 -12C2 12C5 -12C8 12CE -12D0 12D6 -12D8 12EE -12F0 130E -1310 -1312 1315 -1318 131E -1320 1346 -1348 135A -1369 1371 -13A0 13F4 -1401 166C -166F 1676 -1681 169A -16A0 16EA -16EE 16F0 -1700 170C -170E 1714 -1720 1734 -1740 1753 -1760 176C -176E 1770 -1772 1773 -1780 17D3 -17D7 -17DC -17E0 17E9 -180B 180D -1810 1819 -1820 1877 -1880 18A9 -1E00 1E9B -1EA0 1EF9 -1F00 1F15 -1F18 1F1D -1F20 1F45 -1F48 1F4D -1F50 1F57 -1F59 -1F5B -1F5D -1F5F 1F7D -1F80 1FB4 -1FB6 1FBC -1FBE -1FC2 1FC4 -1FC6 1FCC -1FD0 1FD3 -1FD6 1FDB -1FE0 1FEC -1FF2 1FF4 -1FF6 1FFC -203F 2040 -2071 -207F -20D0 20DC -20E1 -20E5 20EA -2102 -2107 -210A 2113 -2115 -2119 211D -2124 -2126 -2128 -212A 212D -212F 2131 -2133 2139 -213D 213F -2145 2149 -2160 2183 -3005 3007 -3021 302F -3031 3035 -3038 303C -3041 3096 -3099 309A -309D 309F -30A1 30FF -3105 312C -3131 318E -31A0 31B7 -31F0 31FF -3400 4DB5 -4E00 9FA5 -A000 A48C -AC00 D7A3 -F900 FA2D -FA30 FA6A -FB00 FB06 -FB13 FB17 -FB1D FB28 -FB2A FB36 -FB38 FB3C -FB3E -FB40 FB41 -FB43 FB44 -FB46 FBB1 -FBD3 FD3D -FD50 FD8F -FD92 FDC7 -FDF0 FDFB -FE00 FE0F -FE20 FE23 -FE33 FE34 -FE4D FE4F -FE70 FE74 -FE76 FEFC -FF10 FF19 -FF21 FF3A -FF3F -FF41 FF5A -FF65 FFBE -FFC2 FFC7 -FFCA FFCF -FFD2 FFD7 -FFDA FFDC -10300 1031E -10330 1034A -10400 10425 -10428 1044D -1D165 1D169 -1D16D 1D172 -1D17B 1D182 -1D185 1D18B -1D1AA 1D1AD -1D400 1D454 -1D456 1D49C -1D49E 1D49F -1D4A2 -1D4A5 1D4A6 -1D4A9 1D4AC -1D4AE 1D4B9 -1D4BB -1D4BD 1D4C0 -1D4C2 1D4C3 -1D4C5 1D505 -1D507 1D50A -1D50D 1D514 -1D516 1D51C -1D51E 1D539 -1D53B 1D53E -1D540 1D544 -1D546 -1D54A 1D550 -1D552 1D6A3 -1D6A8 1D6C0 -1D6C2 1D6DA -1D6DC 1D6FA -1D6FC 1D714 -1D716 1D734 -1D736 1D74E -1D750 1D76E -1D770 1D788 -1D78A 1D7A8 -1D7AA 1D7C2 -1D7C4 1D7C9 -1D7CE 1D7FF -20000 2A6D6 -2F800 2FA1D -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/IdStart.pl b/gnu/usr.bin/perl/lib/unicore/lib/IdStart.pl deleted file mode 100644 index 0772a752dd6..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/IdStart.pl +++ /dev/null @@ -1,321 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{IdStart} (and fuzzy permutations) -# -# Meaning: [\p{Ll}\p{Lu}\p{Lt}\p{Lm}\p{Lo}\p{Nl}] -# -return <<'END'; -0041 005A -0061 007A -00AA -00B5 -00BA -00C0 00D6 -00D8 00F6 -00F8 0220 -0222 0233 -0250 02AD -02B0 02B8 -02BB 02C1 -02D0 02D1 -02E0 02E4 -02EE -037A -0386 -0388 038A -038C -038E 03A1 -03A3 03CE -03D0 03F5 -0400 0481 -048A 04CE -04D0 04F5 -04F8 04F9 -0500 050F -0531 0556 -0559 -0561 0587 -05D0 05EA -05F0 05F2 -0621 063A -0640 064A -066E 066F -0671 06D3 -06D5 -06E5 06E6 -06FA 06FC -0710 -0712 072C -0780 07A5 -07B1 -0905 0939 -093D -0950 -0958 0961 -0985 098C -098F 0990 -0993 09A8 -09AA 09B0 -09B2 -09B6 09B9 -09DC 09DD -09DF 09E1 -09F0 09F1 -0A05 0A0A -0A0F 0A10 -0A13 0A28 -0A2A 0A30 -0A32 0A33 -0A35 0A36 -0A38 0A39 -0A59 0A5C -0A5E -0A72 0A74 -0A85 0A8B -0A8D -0A8F 0A91 -0A93 0AA8 -0AAA 0AB0 -0AB2 0AB3 -0AB5 0AB9 -0ABD -0AD0 -0AE0 -0B05 0B0C -0B0F 0B10 -0B13 0B28 -0B2A 0B30 -0B32 0B33 -0B36 0B39 -0B3D -0B5C 0B5D -0B5F 0B61 -0B83 -0B85 0B8A -0B8E 0B90 -0B92 0B95 -0B99 0B9A -0B9C -0B9E 0B9F -0BA3 0BA4 -0BA8 0BAA -0BAE 0BB5 -0BB7 0BB9 -0C05 0C0C -0C0E 0C10 -0C12 0C28 -0C2A 0C33 -0C35 0C39 -0C60 0C61 -0C85 0C8C -0C8E 0C90 -0C92 0CA8 -0CAA 0CB3 -0CB5 0CB9 -0CDE -0CE0 0CE1 -0D05 0D0C -0D0E 0D10 -0D12 0D28 -0D2A 0D39 -0D60 0D61 -0D85 0D96 -0D9A 0DB1 -0DB3 0DBB -0DBD -0DC0 0DC6 -0E01 0E30 -0E32 0E33 -0E40 0E46 -0E81 0E82 -0E84 -0E87 0E88 -0E8A -0E8D -0E94 0E97 -0E99 0E9F -0EA1 0EA3 -0EA5 -0EA7 -0EAA 0EAB -0EAD 0EB0 -0EB2 0EB3 -0EBD -0EC0 0EC4 -0EC6 -0EDC 0EDD -0F00 -0F40 0F47 -0F49 0F6A -0F88 0F8B -1000 1021 -1023 1027 -1029 102A -1050 1055 -10A0 10C5 -10D0 10F8 -1100 1159 -115F 11A2 -11A8 11F9 -1200 1206 -1208 1246 -1248 -124A 124D -1250 1256 -1258 -125A 125D -1260 1286 -1288 -128A 128D -1290 12AE -12B0 -12B2 12B5 -12B8 12BE -12C0 -12C2 12C5 -12C8 12CE -12D0 12D6 -12D8 12EE -12F0 130E -1310 -1312 1315 -1318 131E -1320 1346 -1348 135A -13A0 13F4 -1401 166C -166F 1676 -1681 169A -16A0 16EA -16EE 16F0 -1700 170C -170E 1711 -1720 1731 -1740 1751 -1760 176C -176E 1770 -1780 17B3 -17D7 -17DC -1820 1877 -1880 18A8 -1E00 1E9B -1EA0 1EF9 -1F00 1F15 -1F18 1F1D -1F20 1F45 -1F48 1F4D -1F50 1F57 -1F59 -1F5B -1F5D -1F5F 1F7D -1F80 1FB4 -1FB6 1FBC -1FBE -1FC2 1FC4 -1FC6 1FCC -1FD0 1FD3 -1FD6 1FDB -1FE0 1FEC -1FF2 1FF4 -1FF6 1FFC -2071 -207F -2102 -2107 -210A 2113 -2115 -2119 211D -2124 -2126 -2128 -212A 212D -212F 2131 -2133 2139 -213D 213F -2145 2149 -2160 2183 -3005 3007 -3021 3029 -3031 3035 -3038 303C -3041 3096 -309D 309F -30A1 30FA -30FC 30FF -3105 312C -3131 318E -31A0 31B7 -31F0 31FF -3400 4DB5 -4E00 9FA5 -A000 A48C -AC00 D7A3 -F900 FA2D -FA30 FA6A -FB00 FB06 -FB13 FB17 -FB1D -FB1F FB28 -FB2A FB36 -FB38 FB3C -FB3E -FB40 FB41 -FB43 FB44 -FB46 FBB1 -FBD3 FD3D -FD50 FD8F -FD92 FDC7 -FDF0 FDFB -FE70 FE74 -FE76 FEFC -FF21 FF3A -FF41 FF5A -FF66 FFBE -FFC2 FFC7 -FFCA FFCF -FFD2 FFD7 -FFDA FFDC -10300 1031E -10330 1034A -10400 10425 -10428 1044D -1D400 1D454 -1D456 1D49C -1D49E 1D49F -1D4A2 -1D4A5 1D4A6 -1D4A9 1D4AC -1D4AE 1D4B9 -1D4BB -1D4BD 1D4C0 -1D4C2 1D4C3 -1D4C5 1D505 -1D507 1D50A -1D50D 1D514 -1D516 1D51C -1D51E 1D539 -1D53B 1D53E -1D540 1D544 -1D546 -1D54A 1D550 -1D552 1D6A3 -1D6A8 1D6C0 -1D6C2 1D6DA -1D6DC 1D6FA -1D6FC 1D714 -1D716 1D734 -1D736 1D74E -1D750 1D76E -1D770 1D788 -1D78A 1D7A8 -1D7AA 1D7C2 -1D7C4 1D7C9 -20000 2A6D6 -2F800 2FA1D -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Ideograp.pl b/gnu/usr.bin/perl/lib/unicore/lib/Ideograp.pl deleted file mode 100644 index 476d5cd700e..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Ideograp.pl +++ /dev/null @@ -1,20 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Ideographic} (and fuzzy permutations) -# -# Meaning: Extended property 'Ideographic' -# -return <<'END'; -3006 3007 Ideographic -3021 3029 Ideographic -3038 303A Ideographic -3400 4DB5 Ideographic -4E00 9FA5 Ideographic -F900 FA2D Ideographic -20000 2A6D6 Ideographic -2F800 2FA1D Ideographic -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/IdsBinar.pl b/gnu/usr.bin/perl/lib/unicore/lib/IdsBinar.pl deleted file mode 100644 index d138d0a8d8c..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/IdsBinar.pl +++ /dev/null @@ -1,14 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{IdsBinaryOperator} (and fuzzy permutations) -# -# Meaning: Extended property 'IDS_Binary_Operator' -# -return <<'END'; -2FF0 2FF1 IDS_Binary_Operator -2FF4 2FFB IDS_Binary_Operator -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/IdsTrina.pl b/gnu/usr.bin/perl/lib/unicore/lib/IdsTrina.pl deleted file mode 100644 index 587606bad40..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/IdsTrina.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{IdsTrinaryOperator} (and fuzzy permutations) -# -# Meaning: Extended property 'IDS_Trinary_Operator' -# -return <<'END'; -2FF2 2FF3 IDS_Trinary_Operator -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InAegean.pl b/gnu/usr.bin/perl/lib/unicore/lib/InAegean.pl deleted file mode 100644 index 207b51f8a8e..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InAegean.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InAegeanNumbers} (and fuzzy permutations) -# -# Meaning: Block 'Aegean Numbers' -# -return <<'END'; -10100 1013F Aegean Numbers -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InAlphab.pl b/gnu/usr.bin/perl/lib/unicore/lib/InAlphab.pl deleted file mode 100644 index 2ecd85da4bb..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InAlphab.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InAlphabeticPresentationForms} (and fuzzy permutations) -# -# Meaning: Block 'Alphabetic Presentation Forms' -# -return <<'END'; -FB00 FB4F Alphabetic Presentation Forms -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InArabi2.pl b/gnu/usr.bin/perl/lib/unicore/lib/InArabi2.pl deleted file mode 100644 index 77e704b3dfe..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InArabi2.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InArabicPresentationFormsB} (and fuzzy permutations) -# -# Meaning: Block 'Arabic Presentation Forms-B' -# -return <<'END'; -FE70 FEFF Arabic Presentation Forms-B -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InArabi3.pl b/gnu/usr.bin/perl/lib/unicore/lib/InArabi3.pl deleted file mode 100644 index 8ab3bb04a74..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InArabi3.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InArabicPresentationFormsA} (and fuzzy permutations) -# -# Meaning: Block 'Arabic Presentation Forms-A' -# -return <<'END'; -FB50 FDFF Arabic Presentation Forms-A -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InArabic.pl b/gnu/usr.bin/perl/lib/unicore/lib/InArabic.pl deleted file mode 100644 index ac250e86259..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InArabic.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InArabic} (and fuzzy permutations) -# -# Meaning: Block 'Arabic' -# -return <<'END'; -0600 06FF Arabic -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InArmeni.pl b/gnu/usr.bin/perl/lib/unicore/lib/InArmeni.pl deleted file mode 100644 index 62a07777423..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InArmeni.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InArmenian} (and fuzzy permutations) -# -# Meaning: Block 'Armenian' -# -return <<'END'; -0530 058F Armenian -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InArrows.pl b/gnu/usr.bin/perl/lib/unicore/lib/InArrows.pl deleted file mode 100644 index 15f4c0bacef..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InArrows.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InArrows} (and fuzzy permutations) -# -# Meaning: Block 'Arrows' -# -return <<'END'; -2190 21FF Arrows -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InBasicL.pl b/gnu/usr.bin/perl/lib/unicore/lib/InBasicL.pl deleted file mode 100644 index b15a479ffe2..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InBasicL.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InBasicLatin} (and fuzzy permutations) -# -# Meaning: Block 'Basic Latin' -# -return <<'END'; -0000 007F Basic Latin -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InBengal.pl b/gnu/usr.bin/perl/lib/unicore/lib/InBengal.pl deleted file mode 100644 index c20bf6cda0a..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InBengal.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InBengali} (and fuzzy permutations) -# -# Meaning: Block 'Bengali' -# -return <<'END'; -0980 09FF Bengali -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InBlockE.pl b/gnu/usr.bin/perl/lib/unicore/lib/InBlockE.pl deleted file mode 100644 index b301e9d358a..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InBlockE.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InBlockElements} (and fuzzy permutations) -# -# Meaning: Block 'Block Elements' -# -return <<'END'; -2580 259F Block Elements -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InBopom2.pl b/gnu/usr.bin/perl/lib/unicore/lib/InBopom2.pl deleted file mode 100644 index 8320eb520d3..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InBopom2.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InBopomofoExtended} (and fuzzy permutations) -# -# Meaning: Block 'Bopomofo Extended' -# -return <<'END'; -31A0 31BF Bopomofo Extended -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InBopomo.pl b/gnu/usr.bin/perl/lib/unicore/lib/InBopomo.pl deleted file mode 100644 index 43edd7cc649..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InBopomo.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InBopomofo} (and fuzzy permutations) -# -# Meaning: Block 'Bopomofo' -# -return <<'END'; -3100 312F Bopomofo -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InBoxDra.pl b/gnu/usr.bin/perl/lib/unicore/lib/InBoxDra.pl deleted file mode 100644 index 4f3698f06bf..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InBoxDra.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InBoxDrawing} (and fuzzy permutations) -# -# Meaning: Block 'Box Drawing' -# -return <<'END'; -2500 257F Box Drawing -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InBraill.pl b/gnu/usr.bin/perl/lib/unicore/lib/InBraill.pl deleted file mode 100644 index b03465e91be..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InBraill.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InBraillePatterns} (and fuzzy permutations) -# -# Meaning: Block 'Braille Patterns' -# -return <<'END'; -2800 28FF Braille Patterns -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InBuhid.pl b/gnu/usr.bin/perl/lib/unicore/lib/InBuhid.pl deleted file mode 100644 index f58c9c2df10..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InBuhid.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InBuhid} (and fuzzy permutations) -# -# Meaning: Block 'Buhid' -# -return <<'END'; -1740 175F Buhid -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InByzant.pl b/gnu/usr.bin/perl/lib/unicore/lib/InByzant.pl deleted file mode 100644 index a706086ceb1..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InByzant.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InByzantineMusicalSymbols} (and fuzzy permutations) -# -# Meaning: Block 'Byzantine Musical Symbols' -# -return <<'END'; -1D000 1D0FF Byzantine Musical Symbols -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InCherok.pl b/gnu/usr.bin/perl/lib/unicore/lib/InCherok.pl deleted file mode 100644 index 089e3f684d6..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InCherok.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InCherokee} (and fuzzy permutations) -# -# Meaning: Block 'Cherokee' -# -return <<'END'; -13A0 13FF Cherokee -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InCjkCo2.pl b/gnu/usr.bin/perl/lib/unicore/lib/InCjkCo2.pl deleted file mode 100644 index bf9af659c86..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InCjkCo2.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InCjkCompatibilityForms} (and fuzzy permutations) -# -# Meaning: Block 'CJK Compatibility Forms' -# -return <<'END'; -FE30 FE4F CJK Compatibility Forms -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InCjkCo3.pl b/gnu/usr.bin/perl/lib/unicore/lib/InCjkCo3.pl deleted file mode 100644 index 678c493885e..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InCjkCo3.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InCjkCompatibilityIdeographs} (and fuzzy permutations) -# -# Meaning: Block 'CJK Compatibility Ideographs' -# -return <<'END'; -F900 FAFF CJK Compatibility Ideographs -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InCjkCo4.pl b/gnu/usr.bin/perl/lib/unicore/lib/InCjkCo4.pl deleted file mode 100644 index 05bde2e48d5..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InCjkCo4.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InCjkCompatibilityIdeographsSupplement} (and fuzzy permutations) -# -# Meaning: Block 'CJK Compatibility Ideographs Supplement' -# -return <<'END'; -2F800 2FA1F CJK Compatibility Ideographs Supplement -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InCjkCom.pl b/gnu/usr.bin/perl/lib/unicore/lib/InCjkCom.pl deleted file mode 100644 index 76f7396a299..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InCjkCom.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InCjkCompatibility} (and fuzzy permutations) -# -# Meaning: Block 'CJK Compatibility' -# -return <<'END'; -3300 33FF CJK Compatibility -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InCjkRad.pl b/gnu/usr.bin/perl/lib/unicore/lib/InCjkRad.pl deleted file mode 100644 index 46e7463cbff..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InCjkRad.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InCjkRadicalsSupplement} (and fuzzy permutations) -# -# Meaning: Block 'CJK Radicals Supplement' -# -return <<'END'; -2E80 2EFF CJK Radicals Supplement -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InCjkSym.pl b/gnu/usr.bin/perl/lib/unicore/lib/InCjkSym.pl deleted file mode 100644 index 293608f8fbf..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InCjkSym.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InCjkSymbolsAndPunctuation} (and fuzzy permutations) -# -# Meaning: Block 'CJK Symbols and Punctuation' -# -return <<'END'; -3000 303F CJK Symbols and Punctuation -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InCjkUn2.pl b/gnu/usr.bin/perl/lib/unicore/lib/InCjkUn2.pl deleted file mode 100644 index 2f8ce719449..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InCjkUn2.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InCjkUnifiedIdeographsExtensionB} (and fuzzy permutations) -# -# Meaning: Block 'CJK Unified Ideographs Extension B' -# -return <<'END'; -20000 2A6DF CJK Unified Ideographs Extension B -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InCjkUn3.pl b/gnu/usr.bin/perl/lib/unicore/lib/InCjkUn3.pl deleted file mode 100644 index 3967c210621..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InCjkUn3.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InCjkUnifiedIdeographsExtensionA} (and fuzzy permutations) -# -# Meaning: Block 'CJK Unified Ideographs Extension A' -# -return <<'END'; -3400 4DBF CJK Unified Ideographs Extension A -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InCjkUni.pl b/gnu/usr.bin/perl/lib/unicore/lib/InCjkUni.pl deleted file mode 100644 index 62c36bf37cc..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InCjkUni.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InCjkUnifiedIdeographs} (and fuzzy permutations) -# -# Meaning: Block 'CJK Unified Ideographs' -# -return <<'END'; -4E00 9FFF CJK Unified Ideographs -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InCombi2.pl b/gnu/usr.bin/perl/lib/unicore/lib/InCombi2.pl deleted file mode 100644 index f4169cfe7fc..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InCombi2.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InCombiningDiacriticalMarks} (and fuzzy permutations) -# -# Meaning: Block 'Combining Diacritical Marks' -# -return <<'END'; -0300 036F Combining Diacritical Marks -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InCombi3.pl b/gnu/usr.bin/perl/lib/unicore/lib/InCombi3.pl deleted file mode 100644 index 7dde2138522..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InCombi3.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InCombiningDiacriticalMarksForSymbols} (and fuzzy permutations) -# -# Meaning: Block 'Combining Diacritical Marks for Symbols' -# -return <<'END'; -20D0 20FF Combining Diacritical Marks for Symbols -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InCombin.pl b/gnu/usr.bin/perl/lib/unicore/lib/InCombin.pl deleted file mode 100644 index 5e2670da706..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InCombin.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InCombiningHalfMarks} (and fuzzy permutations) -# -# Meaning: Block 'Combining Half Marks' -# -return <<'END'; -FE20 FE2F Combining Half Marks -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InContro.pl b/gnu/usr.bin/perl/lib/unicore/lib/InContro.pl deleted file mode 100644 index 5460b22a1ee..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InContro.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InControlPictures} (and fuzzy permutations) -# -# Meaning: Block 'Control Pictures' -# -return <<'END'; -2400 243F Control Pictures -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InCurren.pl b/gnu/usr.bin/perl/lib/unicore/lib/InCurren.pl deleted file mode 100644 index 44182705cd9..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InCurren.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InCurrencySymbols} (and fuzzy permutations) -# -# Meaning: Block 'Currency Symbols' -# -return <<'END'; -20A0 20CF Currency Symbols -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InCyprio.pl b/gnu/usr.bin/perl/lib/unicore/lib/InCyprio.pl deleted file mode 100644 index 8cb08b70021..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InCyprio.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InCypriotSyllabary} (and fuzzy permutations) -# -# Meaning: Block 'Cypriot Syllabary' -# -return <<'END'; -10800 1083F Cypriot Syllabary -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InCyril2.pl b/gnu/usr.bin/perl/lib/unicore/lib/InCyril2.pl deleted file mode 100644 index 41f8f20712d..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InCyril2.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InCyrillicSupplementary} (and fuzzy permutations) -# -# Meaning: Block 'Cyrillic Supplementary' -# -return <<'END'; -0500 052F Cyrillic Supplementary -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InCyrill.pl b/gnu/usr.bin/perl/lib/unicore/lib/InCyrill.pl deleted file mode 100644 index 9d6f53a96eb..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InCyrill.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InCyrillic} (and fuzzy permutations) -# -# Meaning: Block 'Cyrillic' -# -return <<'END'; -0400 04FF Cyrillic -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InDesere.pl b/gnu/usr.bin/perl/lib/unicore/lib/InDesere.pl deleted file mode 100644 index 5e8b99f164f..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InDesere.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InDeseret} (and fuzzy permutations) -# -# Meaning: Block 'Deseret' -# -return <<'END'; -10400 1044F Deseret -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InDevana.pl b/gnu/usr.bin/perl/lib/unicore/lib/InDevana.pl deleted file mode 100644 index eaaa7126905..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InDevana.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InDevanagari} (and fuzzy permutations) -# -# Meaning: Block 'Devanagari' -# -return <<'END'; -0900 097F Devanagari -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InDingba.pl b/gnu/usr.bin/perl/lib/unicore/lib/InDingba.pl deleted file mode 100644 index 72eef3587a7..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InDingba.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InDingbats} (and fuzzy permutations) -# -# Meaning: Block 'Dingbats' -# -return <<'END'; -2700 27BF Dingbats -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InEnclo2.pl b/gnu/usr.bin/perl/lib/unicore/lib/InEnclo2.pl deleted file mode 100644 index aadcbdb7d32..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InEnclo2.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InEnclosedCjkLettersAndMonths} (and fuzzy permutations) -# -# Meaning: Block 'Enclosed CJK Letters and Months' -# -return <<'END'; -3200 32FF Enclosed CJK Letters and Months -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InEnclos.pl b/gnu/usr.bin/perl/lib/unicore/lib/InEnclos.pl deleted file mode 100644 index 82c20de16f8..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InEnclos.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InEnclosedAlphanumerics} (and fuzzy permutations) -# -# Meaning: Block 'Enclosed Alphanumerics' -# -return <<'END'; -2460 24FF Enclosed Alphanumerics -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InEthiop.pl b/gnu/usr.bin/perl/lib/unicore/lib/InEthiop.pl deleted file mode 100644 index fcb2053e44f..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InEthiop.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InEthiopic} (and fuzzy permutations) -# -# Meaning: Block 'Ethiopic' -# -return <<'END'; -1200 137F Ethiopic -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InGenera.pl b/gnu/usr.bin/perl/lib/unicore/lib/InGenera.pl deleted file mode 100644 index 2fd27a7b771..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InGenera.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InGeneralPunctuation} (and fuzzy permutations) -# -# Meaning: Block 'General Punctuation' -# -return <<'END'; -2000 206F General Punctuation -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InGeomet.pl b/gnu/usr.bin/perl/lib/unicore/lib/InGeomet.pl deleted file mode 100644 index 817dabc2b22..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InGeomet.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InGeometricShapes} (and fuzzy permutations) -# -# Meaning: Block 'Geometric Shapes' -# -return <<'END'; -25A0 25FF Geometric Shapes -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InGeorgi.pl b/gnu/usr.bin/perl/lib/unicore/lib/InGeorgi.pl deleted file mode 100644 index 7e965445909..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InGeorgi.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InGeorgian} (and fuzzy permutations) -# -# Meaning: Block 'Georgian' -# -return <<'END'; -10A0 10FF Georgian -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InGothic.pl b/gnu/usr.bin/perl/lib/unicore/lib/InGothic.pl deleted file mode 100644 index 552cba4f000..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InGothic.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InGothic} (and fuzzy permutations) -# -# Meaning: Block 'Gothic' -# -return <<'END'; -10330 1034F Gothic -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InGreek.pl b/gnu/usr.bin/perl/lib/unicore/lib/InGreek.pl deleted file mode 100644 index e932705c4ed..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InGreek.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InGreek} (and fuzzy permutations) -# -# Meaning: Block 'Greek' -# -return <<'END'; -0370 03FF Greek -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InGreekA.pl b/gnu/usr.bin/perl/lib/unicore/lib/InGreekA.pl deleted file mode 100644 index d09fd3daf2e..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InGreekA.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InGreekAndCoptic} (and fuzzy permutations) -# -# Meaning: Block 'Greek and Coptic' -# -return <<'END'; -0370 03FF Greek and Coptic -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InGreekE.pl b/gnu/usr.bin/perl/lib/unicore/lib/InGreekE.pl deleted file mode 100644 index 06965f969d0..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InGreekE.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InGreekExtended} (and fuzzy permutations) -# -# Meaning: Block 'Greek Extended' -# -return <<'END'; -1F00 1FFF Greek Extended -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InGujara.pl b/gnu/usr.bin/perl/lib/unicore/lib/InGujara.pl deleted file mode 100644 index f0a8e4a6a29..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InGujara.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InGujarati} (and fuzzy permutations) -# -# Meaning: Block 'Gujarati' -# -return <<'END'; -0A80 0AFF Gujarati -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InGurmuk.pl b/gnu/usr.bin/perl/lib/unicore/lib/InGurmuk.pl deleted file mode 100644 index 7023d05cfb7..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InGurmuk.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InGurmukhi} (and fuzzy permutations) -# -# Meaning: Block 'Gurmukhi' -# -return <<'END'; -0A00 0A7F Gurmukhi -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InHalfwi.pl b/gnu/usr.bin/perl/lib/unicore/lib/InHalfwi.pl deleted file mode 100644 index d543110b84f..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InHalfwi.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InHalfwidthAndFullwidthForms} (and fuzzy permutations) -# -# Meaning: Block 'Halfwidth and Fullwidth Forms' -# -return <<'END'; -FF00 FFEF Halfwidth and Fullwidth Forms -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InHangu2.pl b/gnu/usr.bin/perl/lib/unicore/lib/InHangu2.pl deleted file mode 100644 index e09ff114a18..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InHangu2.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InHangulSyllables} (and fuzzy permutations) -# -# Meaning: Block 'Hangul Syllables' -# -return <<'END'; -AC00 D7AF Hangul Syllables -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InHangu3.pl b/gnu/usr.bin/perl/lib/unicore/lib/InHangu3.pl deleted file mode 100644 index e256ea5dc95..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InHangu3.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InHangulCompatibilityJamo} (and fuzzy permutations) -# -# Meaning: Block 'Hangul Compatibility Jamo' -# -return <<'END'; -3130 318F Hangul Compatibility Jamo -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InHangul.pl b/gnu/usr.bin/perl/lib/unicore/lib/InHangul.pl deleted file mode 100644 index d0ef32e871d..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InHangul.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InHangulJamo} (and fuzzy permutations) -# -# Meaning: Block 'Hangul Jamo' -# -return <<'END'; -1100 11FF Hangul Jamo -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InHanuno.pl b/gnu/usr.bin/perl/lib/unicore/lib/InHanuno.pl deleted file mode 100644 index 5ea90288d75..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InHanuno.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InHanunoo} (and fuzzy permutations) -# -# Meaning: Block 'Hanunoo' -# -return <<'END'; -1720 173F Hanunoo -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InHebrew.pl b/gnu/usr.bin/perl/lib/unicore/lib/InHebrew.pl deleted file mode 100644 index 14459f46876..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InHebrew.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InHebrew} (and fuzzy permutations) -# -# Meaning: Block 'Hebrew' -# -return <<'END'; -0590 05FF Hebrew -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InHighPr.pl b/gnu/usr.bin/perl/lib/unicore/lib/InHighPr.pl deleted file mode 100644 index fd92248fa5f..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InHighPr.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InHighPrivateUseSurrogates} (and fuzzy permutations) -# -# Meaning: Block 'High Private Use Surrogates' -# -return <<'END'; -DB80 DBFF High Private Use Surrogates -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InHighSu.pl b/gnu/usr.bin/perl/lib/unicore/lib/InHighSu.pl deleted file mode 100644 index eec73b3cb35..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InHighSu.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InHighSurrogates} (and fuzzy permutations) -# -# Meaning: Block 'High Surrogates' -# -return <<'END'; -D800 DB7F High Surrogates -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InHiraga.pl b/gnu/usr.bin/perl/lib/unicore/lib/InHiraga.pl deleted file mode 100644 index 2db67da347f..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InHiraga.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InHiragana} (and fuzzy permutations) -# -# Meaning: Block 'Hiragana' -# -return <<'END'; -3040 309F Hiragana -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InIdeogr.pl b/gnu/usr.bin/perl/lib/unicore/lib/InIdeogr.pl deleted file mode 100644 index 95f6229928e..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InIdeogr.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InIdeographicDescriptionCharacters} (and fuzzy permutations) -# -# Meaning: Block 'Ideographic Description Characters' -# -return <<'END'; -2FF0 2FFF Ideographic Description Characters -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InIpaExt.pl b/gnu/usr.bin/perl/lib/unicore/lib/InIpaExt.pl deleted file mode 100644 index 3280cb6ccf8..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InIpaExt.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InIpaExtensions} (and fuzzy permutations) -# -# Meaning: Block 'IPA Extensions' -# -return <<'END'; -0250 02AF IPA Extensions -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InKanbun.pl b/gnu/usr.bin/perl/lib/unicore/lib/InKanbun.pl deleted file mode 100644 index 5dddfb381f9..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InKanbun.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InKanbun} (and fuzzy permutations) -# -# Meaning: Block 'Kanbun' -# -return <<'END'; -3190 319F Kanbun -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InKangxi.pl b/gnu/usr.bin/perl/lib/unicore/lib/InKangxi.pl deleted file mode 100644 index 49f334c2284..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InKangxi.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InKangxiRadicals} (and fuzzy permutations) -# -# Meaning: Block 'Kangxi Radicals' -# -return <<'END'; -2F00 2FDF Kangxi Radicals -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InKannad.pl b/gnu/usr.bin/perl/lib/unicore/lib/InKannad.pl deleted file mode 100644 index 418011cb128..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InKannad.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InKannada} (and fuzzy permutations) -# -# Meaning: Block 'Kannada' -# -return <<'END'; -0C80 0CFF Kannada -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InKatak2.pl b/gnu/usr.bin/perl/lib/unicore/lib/InKatak2.pl deleted file mode 100644 index 6ed8a84b8eb..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InKatak2.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InKatakanaPhoneticExtensions} (and fuzzy permutations) -# -# Meaning: Block 'Katakana Phonetic Extensions' -# -return <<'END'; -31F0 31FF Katakana Phonetic Extensions -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InKataka.pl b/gnu/usr.bin/perl/lib/unicore/lib/InKataka.pl deleted file mode 100644 index 5ef3ce010f8..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InKataka.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InKatakana} (and fuzzy permutations) -# -# Meaning: Block 'Katakana' -# -return <<'END'; -30A0 30FF Katakana -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InKhmer.pl b/gnu/usr.bin/perl/lib/unicore/lib/InKhmer.pl deleted file mode 100644 index 8c2efea0429..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InKhmer.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InKhmer} (and fuzzy permutations) -# -# Meaning: Block 'Khmer' -# -return <<'END'; -1780 17FF Khmer -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InKhmerS.pl b/gnu/usr.bin/perl/lib/unicore/lib/InKhmerS.pl deleted file mode 100644 index f81515d2e57..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InKhmerS.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InKhmerSymbols} (and fuzzy permutations) -# -# Meaning: Block 'Khmer Symbols' -# -return <<'END'; -19E0 19FF Khmer Symbols -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InLao.pl b/gnu/usr.bin/perl/lib/unicore/lib/InLao.pl deleted file mode 100644 index eb96edca009..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InLao.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InLao} (and fuzzy permutations) -# -# Meaning: Block 'Lao' -# -return <<'END'; -0E80 0EFF Lao -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InLatin1.pl b/gnu/usr.bin/perl/lib/unicore/lib/InLatin1.pl deleted file mode 100644 index 52e4c71db85..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InLatin1.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InLatin1Supplement} (and fuzzy permutations) -# -# Meaning: Block 'Latin-1 Supplement' -# -return <<'END'; -0080 00FF Latin-1 Supplement -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InLatin2.pl b/gnu/usr.bin/perl/lib/unicore/lib/InLatin2.pl deleted file mode 100644 index a5f0d22f95c..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InLatin2.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InLatinExtendedA} (and fuzzy permutations) -# -# Meaning: Block 'Latin Extended-A' -# -return <<'END'; -0100 017F Latin Extended-A -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InLatin3.pl b/gnu/usr.bin/perl/lib/unicore/lib/InLatin3.pl deleted file mode 100644 index 8a53dc7f5f1..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InLatin3.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InLatinExtendedAdditional} (and fuzzy permutations) -# -# Meaning: Block 'Latin Extended Additional' -# -return <<'END'; -1E00 1EFF Latin Extended Additional -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InLatinE.pl b/gnu/usr.bin/perl/lib/unicore/lib/InLatinE.pl deleted file mode 100644 index 3a81b6e3382..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InLatinE.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InLatinExtendedB} (and fuzzy permutations) -# -# Meaning: Block 'Latin Extended-B' -# -return <<'END'; -0180 024F Latin Extended-B -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InLetter.pl b/gnu/usr.bin/perl/lib/unicore/lib/InLetter.pl deleted file mode 100644 index d452812a3c5..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InLetter.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InLetterlikeSymbols} (and fuzzy permutations) -# -# Meaning: Block 'Letterlike Symbols' -# -return <<'END'; -2100 214F Letterlike Symbols -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InLimbu.pl b/gnu/usr.bin/perl/lib/unicore/lib/InLimbu.pl deleted file mode 100644 index 3b123a3efd2..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InLimbu.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InLimbu} (and fuzzy permutations) -# -# Meaning: Block 'Limbu' -# -return <<'END'; -1900 194F Limbu -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InLinea2.pl b/gnu/usr.bin/perl/lib/unicore/lib/InLinea2.pl deleted file mode 100644 index 98db9867623..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InLinea2.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InLinearBSyllabary} (and fuzzy permutations) -# -# Meaning: Block 'Linear B Syllabary' -# -return <<'END'; -10000 1007F Linear B Syllabary -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InLinear.pl b/gnu/usr.bin/perl/lib/unicore/lib/InLinear.pl deleted file mode 100644 index 513bce7d4bf..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InLinear.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InLinearBIdeograms} (and fuzzy permutations) -# -# Meaning: Block 'Linear B Ideograms' -# -return <<'END'; -10080 100FF Linear B Ideograms -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InLowSur.pl b/gnu/usr.bin/perl/lib/unicore/lib/InLowSur.pl deleted file mode 100644 index 5be81e511e0..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InLowSur.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InLowSurrogates} (and fuzzy permutations) -# -# Meaning: Block 'Low Surrogates' -# -return <<'END'; -DC00 DFFF Low Surrogates -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InMalaya.pl b/gnu/usr.bin/perl/lib/unicore/lib/InMalaya.pl deleted file mode 100644 index ee91b9a2ead..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InMalaya.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InMalayalam} (and fuzzy permutations) -# -# Meaning: Block 'Malayalam' -# -return <<'END'; -0D00 0D7F Malayalam -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InMathe2.pl b/gnu/usr.bin/perl/lib/unicore/lib/InMathe2.pl deleted file mode 100644 index aba54a670fd..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InMathe2.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InMathematicalAlphanumericSymbols} (and fuzzy permutations) -# -# Meaning: Block 'Mathematical Alphanumeric Symbols' -# -return <<'END'; -1D400 1D7FF Mathematical Alphanumeric Symbols -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InMathem.pl b/gnu/usr.bin/perl/lib/unicore/lib/InMathem.pl deleted file mode 100644 index d037fec9547..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InMathem.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InMathematicalOperators} (and fuzzy permutations) -# -# Meaning: Block 'Mathematical Operators' -# -return <<'END'; -2200 22FF Mathematical Operators -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InMisce2.pl b/gnu/usr.bin/perl/lib/unicore/lib/InMisce2.pl deleted file mode 100644 index fb9217a2bfd..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InMisce2.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InMiscellaneousTechnical} (and fuzzy permutations) -# -# Meaning: Block 'Miscellaneous Technical' -# -return <<'END'; -2300 23FF Miscellaneous Technical -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InMisce3.pl b/gnu/usr.bin/perl/lib/unicore/lib/InMisce3.pl deleted file mode 100644 index a273df5c133..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InMisce3.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InMiscellaneousMathematicalSymbolsA} (and fuzzy permutations) -# -# Meaning: Block 'Miscellaneous Mathematical Symbols-A' -# -return <<'END'; -27C0 27EF Miscellaneous Mathematical Symbols-A -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InMisce4.pl b/gnu/usr.bin/perl/lib/unicore/lib/InMisce4.pl deleted file mode 100644 index 1c8e240fca7..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InMisce4.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InMiscellaneousMathematicalSymbolsB} (and fuzzy permutations) -# -# Meaning: Block 'Miscellaneous Mathematical Symbols-B' -# -return <<'END'; -2980 29FF Miscellaneous Mathematical Symbols-B -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InMisce5.pl b/gnu/usr.bin/perl/lib/unicore/lib/InMisce5.pl deleted file mode 100644 index 1c8e240fca7..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InMisce5.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InMiscellaneousMathematicalSymbolsB} (and fuzzy permutations) -# -# Meaning: Block 'Miscellaneous Mathematical Symbols-B' -# -return <<'END'; -2980 29FF Miscellaneous Mathematical Symbols-B -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InMiscel.pl b/gnu/usr.bin/perl/lib/unicore/lib/InMiscel.pl deleted file mode 100644 index f1668ea83c4..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InMiscel.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InMiscellaneousSymbols} (and fuzzy permutations) -# -# Meaning: Block 'Miscellaneous Symbols' -# -return <<'END'; -2600 26FF Miscellaneous Symbols -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InMongol.pl b/gnu/usr.bin/perl/lib/unicore/lib/InMongol.pl deleted file mode 100644 index e1771ec83c7..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InMongol.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InMongolian} (and fuzzy permutations) -# -# Meaning: Block 'Mongolian' -# -return <<'END'; -1800 18AF Mongolian -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InMusica.pl b/gnu/usr.bin/perl/lib/unicore/lib/InMusica.pl deleted file mode 100644 index 74419bc98c8..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InMusica.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InMusicalSymbols} (and fuzzy permutations) -# -# Meaning: Block 'Musical Symbols' -# -return <<'END'; -1D100 1D1FF Musical Symbols -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InMyanma.pl b/gnu/usr.bin/perl/lib/unicore/lib/InMyanma.pl deleted file mode 100644 index e00a9f29422..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InMyanma.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InMyanmar} (and fuzzy permutations) -# -# Meaning: Block 'Myanmar' -# -return <<'END'; -1000 109F Myanmar -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InNumber.pl b/gnu/usr.bin/perl/lib/unicore/lib/InNumber.pl deleted file mode 100644 index e1f219e98fa..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InNumber.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InNumberForms} (and fuzzy permutations) -# -# Meaning: Block 'Number Forms' -# -return <<'END'; -2150 218F Number Forms -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InOgham.pl b/gnu/usr.bin/perl/lib/unicore/lib/InOgham.pl deleted file mode 100644 index 6336e02a379..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InOgham.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InOgham} (and fuzzy permutations) -# -# Meaning: Block 'Ogham' -# -return <<'END'; -1680 169F Ogham -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InOldIta.pl b/gnu/usr.bin/perl/lib/unicore/lib/InOldIta.pl deleted file mode 100644 index 71b2acce1b6..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InOldIta.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InOldItalic} (and fuzzy permutations) -# -# Meaning: Block 'Old Italic' -# -return <<'END'; -10300 1032F Old Italic -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InOptica.pl b/gnu/usr.bin/perl/lib/unicore/lib/InOptica.pl deleted file mode 100644 index bc3f3eefe53..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InOptica.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InOpticalCharacterRecognition} (and fuzzy permutations) -# -# Meaning: Block 'Optical Character Recognition' -# -return <<'END'; -2440 245F Optical Character Recognition -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InOriya.pl b/gnu/usr.bin/perl/lib/unicore/lib/InOriya.pl deleted file mode 100644 index a8bc8aaa3f0..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InOriya.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InOriya} (and fuzzy permutations) -# -# Meaning: Block 'Oriya' -# -return <<'END'; -0B00 0B7F Oriya -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InOsmany.pl b/gnu/usr.bin/perl/lib/unicore/lib/InOsmany.pl deleted file mode 100644 index 42671cdfc2e..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InOsmany.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InOsmanya} (and fuzzy permutations) -# -# Meaning: Block 'Osmanya' -# -return <<'END'; -10480 104AF Osmanya -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InPhonet.pl b/gnu/usr.bin/perl/lib/unicore/lib/InPhonet.pl deleted file mode 100644 index be9d9d0add2..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InPhonet.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InPhoneticExtensions} (and fuzzy permutations) -# -# Meaning: Block 'Phonetic Extensions' -# -return <<'END'; -1D00 1D7F Phonetic Extensions -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InPrivat.pl b/gnu/usr.bin/perl/lib/unicore/lib/InPrivat.pl deleted file mode 100644 index a2b0d6bd4b7..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InPrivat.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InPrivateUseArea} (and fuzzy permutations) -# -# Meaning: Block 'Private Use Area' -# -return <<'END'; -E000 F8FF Private Use Area -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InRunic.pl b/gnu/usr.bin/perl/lib/unicore/lib/InRunic.pl deleted file mode 100644 index b99e1fa44de..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InRunic.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InRunic} (and fuzzy permutations) -# -# Meaning: Block 'Runic' -# -return <<'END'; -16A0 16FF Runic -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InShavia.pl b/gnu/usr.bin/perl/lib/unicore/lib/InShavia.pl deleted file mode 100644 index a22b40cc2da..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InShavia.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InShavian} (and fuzzy permutations) -# -# Meaning: Block 'Shavian' -# -return <<'END'; -10450 1047F Shavian -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InSinhal.pl b/gnu/usr.bin/perl/lib/unicore/lib/InSinhal.pl deleted file mode 100644 index b08f3885193..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InSinhal.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InSinhala} (and fuzzy permutations) -# -# Meaning: Block 'Sinhala' -# -return <<'END'; -0D80 0DFF Sinhala -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InSmallF.pl b/gnu/usr.bin/perl/lib/unicore/lib/InSmallF.pl deleted file mode 100644 index 7938a44c8db..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InSmallF.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InSmallFormVariants} (and fuzzy permutations) -# -# Meaning: Block 'Small Form Variants' -# -return <<'END'; -FE50 FE6F Small Form Variants -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InSpacin.pl b/gnu/usr.bin/perl/lib/unicore/lib/InSpacin.pl deleted file mode 100644 index 9a382598f4a..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InSpacin.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InSpacingModifierLetters} (and fuzzy permutations) -# -# Meaning: Block 'Spacing Modifier Letters' -# -return <<'END'; -02B0 02FF Spacing Modifier Letters -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InSpecia.pl b/gnu/usr.bin/perl/lib/unicore/lib/InSpecia.pl deleted file mode 100644 index 7d7651a6e70..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InSpecia.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InSpecials} (and fuzzy permutations) -# -# Meaning: Block 'Specials' -# -return <<'END'; -FFF0 FFFF Specials -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InSupers.pl b/gnu/usr.bin/perl/lib/unicore/lib/InSupers.pl deleted file mode 100644 index 493f8170584..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InSupers.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InSuperscriptsAndSubscripts} (and fuzzy permutations) -# -# Meaning: Block 'Superscripts and Subscripts' -# -return <<'END'; -2070 209F Superscripts and Subscripts -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InSuppl2.pl b/gnu/usr.bin/perl/lib/unicore/lib/InSuppl2.pl deleted file mode 100644 index 6e9fb082d96..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InSuppl2.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InSupplementalArrowsA} (and fuzzy permutations) -# -# Meaning: Block 'Supplemental Arrows-A' -# -return <<'END'; -27F0 27FF Supplemental Arrows-A -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InSuppl3.pl b/gnu/usr.bin/perl/lib/unicore/lib/InSuppl3.pl deleted file mode 100644 index e4dc4791f9f..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InSuppl3.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InSupplementaryPrivateUseAreaA} (and fuzzy permutations) -# -# Meaning: Block 'Supplementary Private Use Area-A' -# -return <<'END'; -F0000 FFFFF Supplementary Private Use Area-A -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InSuppl4.pl b/gnu/usr.bin/perl/lib/unicore/lib/InSuppl4.pl deleted file mode 100644 index 5a080021c18..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InSuppl4.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InSupplementaryPrivateUseAreaB} (and fuzzy permutations) -# -# Meaning: Block 'Supplementary Private Use Area-B' -# -return <<'END'; -100000 10FFFF Supplementary Private Use Area-B -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InSuppl5.pl b/gnu/usr.bin/perl/lib/unicore/lib/InSuppl5.pl deleted file mode 100644 index 89c08807612..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InSuppl5.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InSupplementalMathematicalOperators} (and fuzzy permutations) -# -# Meaning: Block 'Supplemental Mathematical Operators' -# -return <<'END'; -2A00 2AFF Supplemental Mathematical Operators -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InSupple.pl b/gnu/usr.bin/perl/lib/unicore/lib/InSupple.pl deleted file mode 100644 index 3fe71f2bd05..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InSupple.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InSupplementalArrowsB} (and fuzzy permutations) -# -# Meaning: Block 'Supplemental Arrows-B' -# -return <<'END'; -2900 297F Supplemental Arrows-B -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InSyriac.pl b/gnu/usr.bin/perl/lib/unicore/lib/InSyriac.pl deleted file mode 100644 index 74f197037bd..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InSyriac.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InSyriac} (and fuzzy permutations) -# -# Meaning: Block 'Syriac' -# -return <<'END'; -0700 074F Syriac -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InTagalo.pl b/gnu/usr.bin/perl/lib/unicore/lib/InTagalo.pl deleted file mode 100644 index 55c8ca466b2..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InTagalo.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InTagalog} (and fuzzy permutations) -# -# Meaning: Block 'Tagalog' -# -return <<'END'; -1700 171F Tagalog -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InTagban.pl b/gnu/usr.bin/perl/lib/unicore/lib/InTagban.pl deleted file mode 100644 index 9863a2e3c3f..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InTagban.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InTagbanwa} (and fuzzy permutations) -# -# Meaning: Block 'Tagbanwa' -# -return <<'END'; -1760 177F Tagbanwa -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InTags.pl b/gnu/usr.bin/perl/lib/unicore/lib/InTags.pl deleted file mode 100644 index 4a6600e29c3..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InTags.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InTags} (and fuzzy permutations) -# -# Meaning: Block 'Tags' -# -return <<'END'; -E0000 E007F Tags -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InTaiLe.pl b/gnu/usr.bin/perl/lib/unicore/lib/InTaiLe.pl deleted file mode 100644 index da6563a7d3b..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InTaiLe.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InTaiLe} (and fuzzy permutations) -# -# Meaning: Block 'Tai Le' -# -return <<'END'; -1950 197F Tai Le -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InTaiXua.pl b/gnu/usr.bin/perl/lib/unicore/lib/InTaiXua.pl deleted file mode 100644 index ee081554b6b..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InTaiXua.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InTaiXuanJingSymbols} (and fuzzy permutations) -# -# Meaning: Block 'Tai Xuan Jing Symbols' -# -return <<'END'; -1D300 1D35F Tai Xuan Jing Symbols -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InTamil.pl b/gnu/usr.bin/perl/lib/unicore/lib/InTamil.pl deleted file mode 100644 index 20036caa54d..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InTamil.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InTamil} (and fuzzy permutations) -# -# Meaning: Block 'Tamil' -# -return <<'END'; -0B80 0BFF Tamil -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InTelugu.pl b/gnu/usr.bin/perl/lib/unicore/lib/InTelugu.pl deleted file mode 100644 index 1027f933339..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InTelugu.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InTelugu} (and fuzzy permutations) -# -# Meaning: Block 'Telugu' -# -return <<'END'; -0C00 0C7F Telugu -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InThaana.pl b/gnu/usr.bin/perl/lib/unicore/lib/InThaana.pl deleted file mode 100644 index 740d71bd28e..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InThaana.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InThaana} (and fuzzy permutations) -# -# Meaning: Block 'Thaana' -# -return <<'END'; -0780 07BF Thaana -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InThai.pl b/gnu/usr.bin/perl/lib/unicore/lib/InThai.pl deleted file mode 100644 index db6a14581df..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InThai.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InThai} (and fuzzy permutations) -# -# Meaning: Block 'Thai' -# -return <<'END'; -0E00 0E7F Thai -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InTibeta.pl b/gnu/usr.bin/perl/lib/unicore/lib/InTibeta.pl deleted file mode 100644 index 8fbe185461c..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InTibeta.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InTibetan} (and fuzzy permutations) -# -# Meaning: Block 'Tibetan' -# -return <<'END'; -0F00 0FFF Tibetan -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InUgarit.pl b/gnu/usr.bin/perl/lib/unicore/lib/InUgarit.pl deleted file mode 100644 index 8c5871a834a..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InUgarit.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InUgaritic} (and fuzzy permutations) -# -# Meaning: Block 'Ugaritic' -# -return <<'END'; -10380 1039F Ugaritic -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InUnifie.pl b/gnu/usr.bin/perl/lib/unicore/lib/InUnifie.pl deleted file mode 100644 index 50d46f18aa6..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InUnifie.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InUnifiedCanadianAboriginalSyllabics} (and fuzzy permutations) -# -# Meaning: Block 'Unified Canadian Aboriginal Syllabics' -# -return <<'END'; -1400 167F Unified Canadian Aboriginal Syllabics -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InVaria2.pl b/gnu/usr.bin/perl/lib/unicore/lib/InVaria2.pl deleted file mode 100644 index 2ab90feb798..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InVaria2.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InVariationSelectorsSupplement} (and fuzzy permutations) -# -# Meaning: Block 'Variation Selectors Supplement' -# -return <<'END'; -E0100 E01EF Variation Selectors Supplement -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InVariat.pl b/gnu/usr.bin/perl/lib/unicore/lib/InVariat.pl deleted file mode 100644 index 1aa8c298b8c..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InVariat.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InVariationSelectors} (and fuzzy permutations) -# -# Meaning: Block 'Variation Selectors' -# -return <<'END'; -FE00 FE0F Variation Selectors -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InYiRadi.pl b/gnu/usr.bin/perl/lib/unicore/lib/InYiRadi.pl deleted file mode 100644 index 7b4265f725a..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InYiRadi.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InYiRadicals} (and fuzzy permutations) -# -# Meaning: Block 'Yi Radicals' -# -return <<'END'; -A490 A4CF Yi Radicals -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InYiSyll.pl b/gnu/usr.bin/perl/lib/unicore/lib/InYiSyll.pl deleted file mode 100644 index c33de835d36..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InYiSyll.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InYiSyllables} (and fuzzy permutations) -# -# Meaning: Block 'Yi Syllables' -# -return <<'END'; -A000 A48F Yi Syllables -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/InYijing.pl b/gnu/usr.bin/perl/lib/unicore/lib/InYijing.pl deleted file mode 100644 index 6677f13ac12..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/InYijing.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{InYijingHexagramSymbols} (and fuzzy permutations) -# -# Meaning: Block 'Yijing Hexagram Symbols' -# -return <<'END'; -4DC0 4DFF Yijing Hexagram Symbols -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Inherite.pl b/gnu/usr.bin/perl/lib/unicore/lib/Inherite.pl deleted file mode 100644 index 49d811268eb..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Inherite.pl +++ /dev/null @@ -1,37 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Inherited} (and fuzzy permutations) -# -# Meaning: Script 'INHERITED' -# -return <<'END'; -0300 034F INHERITED -0360 036F INHERITED -0488 0489 INHERITED -0591 05A1 INHERITED -05A3 05B9 INHERITED -05BB 05BD INHERITED -05BF INHERITED -05C1 05C2 INHERITED -05C4 INHERITED -064B 0655 INHERITED -0670 INHERITED -06D6 06E4 INHERITED -06E7 06E8 INHERITED -06EA 06ED INHERITED -180B 180D INHERITED -20D0 20EA INHERITED -302A 302F INHERITED -3099 309A INHERITED -FB1E INHERITED -FE00 FE0F INHERITED -FE20 FE23 INHERITED -1D167 1D169 INHERITED -1D17B 1D182 INHERITED -1D185 1D18B INHERITED -1D1AA 1D1AD INHERITED -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/JoinCont.pl b/gnu/usr.bin/perl/lib/unicore/lib/JoinCont.pl deleted file mode 100644 index be25b1afef6..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/JoinCont.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{JoinControl} (and fuzzy permutations) -# -# Meaning: Extended property 'Join_Control' -# -return <<'END'; -200C 200D Join_Control -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Kannada.pl b/gnu/usr.bin/perl/lib/unicore/lib/Kannada.pl deleted file mode 100644 index 7c9a8580180..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Kannada.pl +++ /dev/null @@ -1,25 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Kannada} (and fuzzy permutations) -# -# Meaning: Script 'KANNADA' -# -return <<'END'; -0C82 0C83 KANNADA -0C85 0C8C KANNADA -0C8E 0C90 KANNADA -0C92 0CA8 KANNADA -0CAA 0CB3 KANNADA -0CB5 0CB9 KANNADA -0CBE 0CC4 KANNADA -0CC6 0CC8 KANNADA -0CCA 0CCD KANNADA -0CD5 0CD6 KANNADA -0CDE KANNADA -0CE0 0CE1 KANNADA -0CE6 0CEF KANNADA -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Katakana.pl b/gnu/usr.bin/perl/lib/unicore/lib/Katakana.pl deleted file mode 100644 index b6503508832..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Katakana.pl +++ /dev/null @@ -1,17 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Katakana} (and fuzzy permutations) -# -# Meaning: Script 'KATAKANA' -# -return <<'END'; -30A1 30FA KATAKANA -30FD 30FF KATAKANA -31F0 31FF KATAKANA -FF66 FF6F KATAKANA -FF71 FF9D KATAKANA -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Khmer.pl b/gnu/usr.bin/perl/lib/unicore/lib/Khmer.pl deleted file mode 100644 index 1e69e0039d0..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Khmer.pl +++ /dev/null @@ -1,14 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Khmer} (and fuzzy permutations) -# -# Meaning: Script 'KHMER' -# -return <<'END'; -1780 17D3 KHMER -17E0 17E9 KHMER -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/L.pl b/gnu/usr.bin/perl/lib/unicore/lib/L.pl deleted file mode 100644 index 5b17fe75891..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/L.pl +++ /dev/null @@ -1,319 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{L} -# \p{L} (and fuzzy permutations) -# -# Meaning: Major Category 'L' -# -return <<'END'; -0041 005A -0061 007A -00AA -00B5 -00BA -00C0 00D6 -00D8 00F6 -00F8 0220 -0222 0233 -0250 02AD -02B0 02B8 -02BB 02C1 -02D0 02D1 -02E0 02E4 -02EE -037A -0386 -0388 038A -038C -038E 03A1 -03A3 03CE -03D0 03F5 -0400 0481 -048A 04CE -04D0 04F5 -04F8 04F9 -0500 050F -0531 0556 -0559 -0561 0587 -05D0 05EA -05F0 05F2 -0621 063A -0640 064A -066E 066F -0671 06D3 -06D5 -06E5 06E6 -06FA 06FC -0710 -0712 072C -0780 07A5 -07B1 -0905 0939 -093D -0950 -0958 0961 -0985 098C -098F 0990 -0993 09A8 -09AA 09B0 -09B2 -09B6 09B9 -09DC 09DD -09DF 09E1 -09F0 09F1 -0A05 0A0A -0A0F 0A10 -0A13 0A28 -0A2A 0A30 -0A32 0A33 -0A35 0A36 -0A38 0A39 -0A59 0A5C -0A5E -0A72 0A74 -0A85 0A8B -0A8D -0A8F 0A91 -0A93 0AA8 -0AAA 0AB0 -0AB2 0AB3 -0AB5 0AB9 -0ABD -0AD0 -0AE0 -0B05 0B0C -0B0F 0B10 -0B13 0B28 -0B2A 0B30 -0B32 0B33 -0B36 0B39 -0B3D -0B5C 0B5D -0B5F 0B61 -0B83 -0B85 0B8A -0B8E 0B90 -0B92 0B95 -0B99 0B9A -0B9C -0B9E 0B9F -0BA3 0BA4 -0BA8 0BAA -0BAE 0BB5 -0BB7 0BB9 -0C05 0C0C -0C0E 0C10 -0C12 0C28 -0C2A 0C33 -0C35 0C39 -0C60 0C61 -0C85 0C8C -0C8E 0C90 -0C92 0CA8 -0CAA 0CB3 -0CB5 0CB9 -0CDE -0CE0 0CE1 -0D05 0D0C -0D0E 0D10 -0D12 0D28 -0D2A 0D39 -0D60 0D61 -0D85 0D96 -0D9A 0DB1 -0DB3 0DBB -0DBD -0DC0 0DC6 -0E01 0E30 -0E32 0E33 -0E40 0E46 -0E81 0E82 -0E84 -0E87 0E88 -0E8A -0E8D -0E94 0E97 -0E99 0E9F -0EA1 0EA3 -0EA5 -0EA7 -0EAA 0EAB -0EAD 0EB0 -0EB2 0EB3 -0EBD -0EC0 0EC4 -0EC6 -0EDC 0EDD -0F00 -0F40 0F47 -0F49 0F6A -0F88 0F8B -1000 1021 -1023 1027 -1029 102A -1050 1055 -10A0 10C5 -10D0 10F8 -1100 1159 -115F 11A2 -11A8 11F9 -1200 1206 -1208 1246 -1248 -124A 124D -1250 1256 -1258 -125A 125D -1260 1286 -1288 -128A 128D -1290 12AE -12B0 -12B2 12B5 -12B8 12BE -12C0 -12C2 12C5 -12C8 12CE -12D0 12D6 -12D8 12EE -12F0 130E -1310 -1312 1315 -1318 131E -1320 1346 -1348 135A -13A0 13F4 -1401 166C -166F 1676 -1681 169A -16A0 16EA -1700 170C -170E 1711 -1720 1731 -1740 1751 -1760 176C -176E 1770 -1780 17B3 -17D7 -17DC -1820 1877 -1880 18A8 -1E00 1E9B -1EA0 1EF9 -1F00 1F15 -1F18 1F1D -1F20 1F45 -1F48 1F4D -1F50 1F57 -1F59 -1F5B -1F5D -1F5F 1F7D -1F80 1FB4 -1FB6 1FBC -1FBE -1FC2 1FC4 -1FC6 1FCC -1FD0 1FD3 -1FD6 1FDB -1FE0 1FEC -1FF2 1FF4 -1FF6 1FFC -2071 -207F -2102 -2107 -210A 2113 -2115 -2119 211D -2124 -2126 -2128 -212A 212D -212F 2131 -2133 2139 -213D 213F -2145 2149 -3005 3006 -3031 3035 -303B 303C -3041 3096 -309D 309F -30A1 30FA -30FC 30FF -3105 312C -3131 318E -31A0 31B7 -31F0 31FF -3400 4DB5 -4E00 9FA5 -A000 A48C -AC00 D7A3 -F900 FA2D -FA30 FA6A -FB00 FB06 -FB13 FB17 -FB1D -FB1F FB28 -FB2A FB36 -FB38 FB3C -FB3E -FB40 FB41 -FB43 FB44 -FB46 FBB1 -FBD3 FD3D -FD50 FD8F -FD92 FDC7 -FDF0 FDFB -FE70 FE74 -FE76 FEFC -FF21 FF3A -FF41 FF5A -FF66 FFBE -FFC2 FFC7 -FFCA FFCF -FFD2 FFD7 -FFDA FFDC -10300 1031E -10330 10349 -10400 10425 -10428 1044D -1D400 1D454 -1D456 1D49C -1D49E 1D49F -1D4A2 -1D4A5 1D4A6 -1D4A9 1D4AC -1D4AE 1D4B9 -1D4BB -1D4BD 1D4C0 -1D4C2 1D4C3 -1D4C5 1D505 -1D507 1D50A -1D50D 1D514 -1D516 1D51C -1D51E 1D539 -1D53B 1D53E -1D540 1D544 -1D546 -1D54A 1D550 -1D552 1D6A3 -1D6A8 1D6C0 -1D6C2 1D6DA -1D6DC 1D6FA -1D6FC 1D714 -1D716 1D734 -1D736 1D74E -1D750 1D76E -1D770 1D788 -1D78A 1D7A8 -1D7AA 1D7C2 -1D7C4 1D7C9 -20000 2A6D6 -2F800 2FA1D -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/L_.pl b/gnu/usr.bin/perl/lib/unicore/lib/L_.pl deleted file mode 100644 index 44afbeb5922..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/L_.pl +++ /dev/null @@ -1,112 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{L&} -# -# Meaning: [\p{Ll}\p{Lu}\p{Lt}] -# -return <<'END'; -0041 005A -0061 007A -00AA -00B5 -00BA -00C0 00D6 -00D8 00F6 -00F8 01BA -01BC 01BF -01C4 0220 -0222 0233 -0250 02AD -0386 -0388 038A -038C -038E 03A1 -03A3 03CE -03D0 03F5 -0400 0481 -048A 04CE -04D0 04F5 -04F8 04F9 -0500 050F -0531 0556 -0561 0587 -10A0 10C5 -1E00 1E9B -1EA0 1EF9 -1F00 1F15 -1F18 1F1D -1F20 1F45 -1F48 1F4D -1F50 1F57 -1F59 -1F5B -1F5D -1F5F 1F7D -1F80 1FB4 -1FB6 1FBC -1FBE -1FC2 1FC4 -1FC6 1FCC -1FD0 1FD3 -1FD6 1FDB -1FE0 1FEC -1FF2 1FF4 -1FF6 1FFC -2071 -207F -2102 -2107 -210A 2113 -2115 -2119 211D -2124 -2126 -2128 -212A 212D -212F 2131 -2133 2134 -2139 -213D 213F -2145 2149 -FB00 FB06 -FB13 FB17 -FF21 FF3A -FF41 FF5A -10400 10425 -10428 1044D -1D400 1D454 -1D456 1D49C -1D49E 1D49F -1D4A2 -1D4A5 1D4A6 -1D4A9 1D4AC -1D4AE 1D4B9 -1D4BB -1D4BD 1D4C0 -1D4C2 1D4C3 -1D4C5 1D505 -1D507 1D50A -1D50D 1D514 -1D516 1D51C -1D51E 1D539 -1D53B 1D53E -1D540 1D544 -1D546 -1D54A 1D550 -1D552 1D6A3 -1D6A8 1D6C0 -1D6C2 1D6DA -1D6DC 1D6FA -1D6FC 1D714 -1D716 1D734 -1D736 1D74E -1D750 1D76E -1D770 1D788 -1D78A 1D7A8 -1D7AA 1D7C2 -1D7C4 1D7C9 -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Lao.pl b/gnu/usr.bin/perl/lib/unicore/lib/Lao.pl deleted file mode 100644 index 83bc60c59b3..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Lao.pl +++ /dev/null @@ -1,30 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Lao} (and fuzzy permutations) -# -# Meaning: Script 'LAO' -# -return <<'END'; -0E81 0E82 LAO -0E84 LAO -0E87 0E88 LAO -0E8A LAO -0E8D LAO -0E94 0E97 LAO -0E99 0E9F LAO -0EA1 0EA3 LAO -0EA5 LAO -0EA7 LAO -0EAA 0EAB LAO -0EAD 0EB9 LAO -0EBB 0EBD LAO -0EC0 0EC4 LAO -0EC6 LAO -0EC8 0ECD LAO -0ED0 0ED9 LAO -0EDC 0EDD LAO -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Latin.pl b/gnu/usr.bin/perl/lib/unicore/lib/Latin.pl deleted file mode 100644 index 2b27d1c2233..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Latin.pl +++ /dev/null @@ -1,31 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Latin} (and fuzzy permutations) -# -# Meaning: Script 'LATIN' -# -return <<'END'; -0041 005A LATIN -0061 007A LATIN -00AA LATIN -00BA LATIN -00C0 00D6 LATIN -00D8 00F6 LATIN -00F8 0220 LATIN -0222 0233 LATIN -0250 02AD LATIN -02B0 02B8 LATIN -02E0 02E4 LATIN -1E00 1E9B LATIN -1EA0 1EF9 LATIN -2071 LATIN -207F LATIN -212A 212B LATIN -FB00 FB06 LATIN -FF21 FF3A LATIN -FF41 FF5A LATIN -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Limbu.pl b/gnu/usr.bin/perl/lib/unicore/lib/Limbu.pl deleted file mode 100644 index 86dd8147f80..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Limbu.pl +++ /dev/null @@ -1,16 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Limbu} (and fuzzy permutations) -# -# Meaning: Script 'LIMBU' -# -return <<'END'; -1900 191C LIMBU -1920 192B LIMBU -1930 193B LIMBU -1946 194F LIMBU -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/LinearB.pl b/gnu/usr.bin/perl/lib/unicore/lib/LinearB.pl deleted file mode 100644 index 0f670ce55cd..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/LinearB.pl +++ /dev/null @@ -1,19 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{LinearB} (and fuzzy permutations) -# -# Meaning: Script 'LINEAR_B' -# -return <<'END'; -10000 1000B LINEAR_B -1000D 10026 LINEAR_B -10028 1003A LINEAR_B -1003C 1003D LINEAR_B -1003F 1004D LINEAR_B -10050 1005D LINEAR_B -10080 100FA LINEAR_B -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Ll.pl b/gnu/usr.bin/perl/lib/unicore/lib/Ll.pl deleted file mode 100644 index 8655dfea53f..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Ll.pl +++ /dev/null @@ -1,433 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Ll} -# \p{Ll} (and fuzzy permutations) -# -# Meaning: General Category 'Ll' -# -return <<'END'; -0061 007A -00AA -00B5 -00BA -00DF 00F6 -00F8 00FF -0101 -0103 -0105 -0107 -0109 -010B -010D -010F -0111 -0113 -0115 -0117 -0119 -011B -011D -011F -0121 -0123 -0125 -0127 -0129 -012B -012D -012F -0131 -0133 -0135 -0137 0138 -013A -013C -013E -0140 -0142 -0144 -0146 -0148 0149 -014B -014D -014F -0151 -0153 -0155 -0157 -0159 -015B -015D -015F -0161 -0163 -0165 -0167 -0169 -016B -016D -016F -0171 -0173 -0175 -0177 -017A -017C -017E 0180 -0183 -0185 -0188 -018C 018D -0192 -0195 -0199 019B -019E -01A1 -01A3 -01A5 -01A8 -01AA 01AB -01AD -01B0 -01B4 -01B6 -01B9 01BA -01BD 01BF -01C6 -01C9 -01CC -01CE -01D0 -01D2 -01D4 -01D6 -01D8 -01DA -01DC 01DD -01DF -01E1 -01E3 -01E5 -01E7 -01E9 -01EB -01ED -01EF 01F0 -01F3 -01F5 -01F9 -01FB -01FD -01FF -0201 -0203 -0205 -0207 -0209 -020B -020D -020F -0211 -0213 -0215 -0217 -0219 -021B -021D -021F -0223 -0225 -0227 -0229 -022B -022D -022F -0231 -0233 -0250 02AD -0390 -03AC 03CE -03D0 03D1 -03D5 03D7 -03D9 -03DB -03DD -03DF -03E1 -03E3 -03E5 -03E7 -03E9 -03EB -03ED -03EF 03F3 -03F5 -0430 045F -0461 -0463 -0465 -0467 -0469 -046B -046D -046F -0471 -0473 -0475 -0477 -0479 -047B -047D -047F -0481 -048B -048D -048F -0491 -0493 -0495 -0497 -0499 -049B -049D -049F -04A1 -04A3 -04A5 -04A7 -04A9 -04AB -04AD -04AF -04B1 -04B3 -04B5 -04B7 -04B9 -04BB -04BD -04BF -04C2 -04C4 -04C6 -04C8 -04CA -04CC -04CE -04D1 -04D3 -04D5 -04D7 -04D9 -04DB -04DD -04DF -04E1 -04E3 -04E5 -04E7 -04E9 -04EB -04ED -04EF -04F1 -04F3 -04F5 -04F9 -0501 -0503 -0505 -0507 -0509 -050B -050D -050F -0561 0587 -1E01 -1E03 -1E05 -1E07 -1E09 -1E0B -1E0D -1E0F -1E11 -1E13 -1E15 -1E17 -1E19 -1E1B -1E1D -1E1F -1E21 -1E23 -1E25 -1E27 -1E29 -1E2B -1E2D -1E2F -1E31 -1E33 -1E35 -1E37 -1E39 -1E3B -1E3D -1E3F -1E41 -1E43 -1E45 -1E47 -1E49 -1E4B -1E4D -1E4F -1E51 -1E53 -1E55 -1E57 -1E59 -1E5B -1E5D -1E5F -1E61 -1E63 -1E65 -1E67 -1E69 -1E6B -1E6D -1E6F -1E71 -1E73 -1E75 -1E77 -1E79 -1E7B -1E7D -1E7F -1E81 -1E83 -1E85 -1E87 -1E89 -1E8B -1E8D -1E8F -1E91 -1E93 -1E95 1E9B -1EA1 -1EA3 -1EA5 -1EA7 -1EA9 -1EAB -1EAD -1EAF -1EB1 -1EB3 -1EB5 -1EB7 -1EB9 -1EBB -1EBD -1EBF -1EC1 -1EC3 -1EC5 -1EC7 -1EC9 -1ECB -1ECD -1ECF -1ED1 -1ED3 -1ED5 -1ED7 -1ED9 -1EDB -1EDD -1EDF -1EE1 -1EE3 -1EE5 -1EE7 -1EE9 -1EEB -1EED -1EEF -1EF1 -1EF3 -1EF5 -1EF7 -1EF9 -1F00 1F07 -1F10 1F15 -1F20 1F27 -1F30 1F37 -1F40 1F45 -1F50 1F57 -1F60 1F67 -1F70 1F7D -1F80 1F87 -1F90 1F97 -1FA0 1FA7 -1FB0 1FB4 -1FB6 1FB7 -1FBE -1FC2 1FC4 -1FC6 1FC7 -1FD0 1FD3 -1FD6 1FD7 -1FE0 1FE7 -1FF2 1FF4 -1FF6 1FF7 -2071 -207F -210A -210E 210F -2113 -212F -2134 -2139 -213D -2146 2149 -FB00 FB06 -FB13 FB17 -FF41 FF5A -10428 1044D -1D41A 1D433 -1D44E 1D454 -1D456 1D467 -1D482 1D49B -1D4B6 1D4B9 -1D4BB -1D4BD 1D4C0 -1D4C2 1D4C3 -1D4C5 1D4CF -1D4EA 1D503 -1D51E 1D537 -1D552 1D56B -1D586 1D59F -1D5BA 1D5D3 -1D5EE 1D607 -1D622 1D63B -1D656 1D66F -1D68A 1D6A3 -1D6C2 1D6DA -1D6DC 1D6E1 -1D6FC 1D714 -1D716 1D71B -1D736 1D74E -1D750 1D755 -1D770 1D788 -1D78A 1D78F -1D7AA 1D7C2 -1D7C4 1D7C9 -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Lm.pl b/gnu/usr.bin/perl/lib/unicore/lib/Lm.pl deleted file mode 100644 index 808193f0342..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Lm.pl +++ /dev/null @@ -1,33 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Lm} -# \p{Lm} (and fuzzy permutations) -# -# Meaning: General Category 'Lm' -# -return <<'END'; -02B0 02B8 -02BB 02C1 -02D0 02D1 -02E0 02E4 -02EE -037A -0559 -0640 -06E5 06E6 -0E46 -0EC6 -17D7 -1843 -3005 -3031 3035 -303B -309D 309E -30FC 30FE -FF70 -FF9E FF9F -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Lo.pl b/gnu/usr.bin/perl/lib/unicore/lib/Lo.pl deleted file mode 100644 index d5f161a0fa6..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Lo.pl +++ /dev/null @@ -1,217 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Lo} -# \p{Lo} (and fuzzy permutations) -# -# Meaning: General Category 'Lo' -# -return <<'END'; -01BB -01C0 01C3 -05D0 05EA -05F0 05F2 -0621 063A -0641 064A -066E 066F -0671 06D3 -06D5 -06FA 06FC -0710 -0712 072C -0780 07A5 -07B1 -0905 0939 -093D -0950 -0958 0961 -0985 098C -098F 0990 -0993 09A8 -09AA 09B0 -09B2 -09B6 09B9 -09DC 09DD -09DF 09E1 -09F0 09F1 -0A05 0A0A -0A0F 0A10 -0A13 0A28 -0A2A 0A30 -0A32 0A33 -0A35 0A36 -0A38 0A39 -0A59 0A5C -0A5E -0A72 0A74 -0A85 0A8B -0A8D -0A8F 0A91 -0A93 0AA8 -0AAA 0AB0 -0AB2 0AB3 -0AB5 0AB9 -0ABD -0AD0 -0AE0 -0B05 0B0C -0B0F 0B10 -0B13 0B28 -0B2A 0B30 -0B32 0B33 -0B36 0B39 -0B3D -0B5C 0B5D -0B5F 0B61 -0B83 -0B85 0B8A -0B8E 0B90 -0B92 0B95 -0B99 0B9A -0B9C -0B9E 0B9F -0BA3 0BA4 -0BA8 0BAA -0BAE 0BB5 -0BB7 0BB9 -0C05 0C0C -0C0E 0C10 -0C12 0C28 -0C2A 0C33 -0C35 0C39 -0C60 0C61 -0C85 0C8C -0C8E 0C90 -0C92 0CA8 -0CAA 0CB3 -0CB5 0CB9 -0CDE -0CE0 0CE1 -0D05 0D0C -0D0E 0D10 -0D12 0D28 -0D2A 0D39 -0D60 0D61 -0D85 0D96 -0D9A 0DB1 -0DB3 0DBB -0DBD -0DC0 0DC6 -0E01 0E30 -0E32 0E33 -0E40 0E45 -0E81 0E82 -0E84 -0E87 0E88 -0E8A -0E8D -0E94 0E97 -0E99 0E9F -0EA1 0EA3 -0EA5 -0EA7 -0EAA 0EAB -0EAD 0EB0 -0EB2 0EB3 -0EBD -0EC0 0EC4 -0EDC 0EDD -0F00 -0F40 0F47 -0F49 0F6A -0F88 0F8B -1000 1021 -1023 1027 -1029 102A -1050 1055 -10D0 10F8 -1100 1159 -115F 11A2 -11A8 11F9 -1200 1206 -1208 1246 -1248 -124A 124D -1250 1256 -1258 -125A 125D -1260 1286 -1288 -128A 128D -1290 12AE -12B0 -12B2 12B5 -12B8 12BE -12C0 -12C2 12C5 -12C8 12CE -12D0 12D6 -12D8 12EE -12F0 130E -1310 -1312 1315 -1318 131E -1320 1346 -1348 135A -13A0 13F4 -1401 166C -166F 1676 -1681 169A -16A0 16EA -1700 170C -170E 1711 -1720 1731 -1740 1751 -1760 176C -176E 1770 -1780 17B3 -17DC -1820 1842 -1844 1877 -1880 18A8 -2135 2138 -3006 -303C -3041 3096 -309F -30A1 30FA -30FF -3105 312C -3131 318E -31A0 31B7 -31F0 31FF -3400 4DB5 -4E00 9FA5 -A000 A48C -AC00 D7A3 -F900 FA2D -FA30 FA6A -FB1D -FB1F FB28 -FB2A FB36 -FB38 FB3C -FB3E -FB40 FB41 -FB43 FB44 -FB46 FBB1 -FBD3 FD3D -FD50 FD8F -FD92 FDC7 -FDF0 FDFB -FE70 FE74 -FE76 FEFC -FF66 FF6F -FF71 FF9D -FFA0 FFBE -FFC2 FFC7 -FFCA FFCF -FFD2 FFD7 -FFDA FFDC -10300 1031E -10330 10349 -20000 2A6D6 -2F800 2FA1D -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/LogicalO.pl b/gnu/usr.bin/perl/lib/unicore/lib/LogicalO.pl deleted file mode 100644 index ae5ad73f603..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/LogicalO.pl +++ /dev/null @@ -1,14 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{LogicalOrderException} (and fuzzy permutations) -# -# Meaning: Extended property 'Logical_Order_Exception' -# -return <<'END'; -0E40 0E44 Logical_Order_Exception -0EC0 0EC4 Logical_Order_Exception -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Lower.pl b/gnu/usr.bin/perl/lib/unicore/lib/Lower.pl deleted file mode 100644 index b9e16389f7c..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Lower.pl +++ /dev/null @@ -1,432 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Lower} -# -# Meaning: [[:Lower:]] -# -return <<'END'; -0061 007A -00AA -00B5 -00BA -00DF 00F6 -00F8 00FF -0101 -0103 -0105 -0107 -0109 -010B -010D -010F -0111 -0113 -0115 -0117 -0119 -011B -011D -011F -0121 -0123 -0125 -0127 -0129 -012B -012D -012F -0131 -0133 -0135 -0137 0138 -013A -013C -013E -0140 -0142 -0144 -0146 -0148 0149 -014B -014D -014F -0151 -0153 -0155 -0157 -0159 -015B -015D -015F -0161 -0163 -0165 -0167 -0169 -016B -016D -016F -0171 -0173 -0175 -0177 -017A -017C -017E 0180 -0183 -0185 -0188 -018C 018D -0192 -0195 -0199 019B -019E -01A1 -01A3 -01A5 -01A8 -01AA 01AB -01AD -01B0 -01B4 -01B6 -01B9 01BA -01BD 01BF -01C6 -01C9 -01CC -01CE -01D0 -01D2 -01D4 -01D6 -01D8 -01DA -01DC 01DD -01DF -01E1 -01E3 -01E5 -01E7 -01E9 -01EB -01ED -01EF 01F0 -01F3 -01F5 -01F9 -01FB -01FD -01FF -0201 -0203 -0205 -0207 -0209 -020B -020D -020F -0211 -0213 -0215 -0217 -0219 -021B -021D -021F -0223 -0225 -0227 -0229 -022B -022D -022F -0231 -0233 -0250 02AD -0390 -03AC 03CE -03D0 03D1 -03D5 03D7 -03D9 -03DB -03DD -03DF -03E1 -03E3 -03E5 -03E7 -03E9 -03EB -03ED -03EF 03F3 -03F5 -0430 045F -0461 -0463 -0465 -0467 -0469 -046B -046D -046F -0471 -0473 -0475 -0477 -0479 -047B -047D -047F -0481 -048B -048D -048F -0491 -0493 -0495 -0497 -0499 -049B -049D -049F -04A1 -04A3 -04A5 -04A7 -04A9 -04AB -04AD -04AF -04B1 -04B3 -04B5 -04B7 -04B9 -04BB -04BD -04BF -04C2 -04C4 -04C6 -04C8 -04CA -04CC -04CE -04D1 -04D3 -04D5 -04D7 -04D9 -04DB -04DD -04DF -04E1 -04E3 -04E5 -04E7 -04E9 -04EB -04ED -04EF -04F1 -04F3 -04F5 -04F9 -0501 -0503 -0505 -0507 -0509 -050B -050D -050F -0561 0587 -1E01 -1E03 -1E05 -1E07 -1E09 -1E0B -1E0D -1E0F -1E11 -1E13 -1E15 -1E17 -1E19 -1E1B -1E1D -1E1F -1E21 -1E23 -1E25 -1E27 -1E29 -1E2B -1E2D -1E2F -1E31 -1E33 -1E35 -1E37 -1E39 -1E3B -1E3D -1E3F -1E41 -1E43 -1E45 -1E47 -1E49 -1E4B -1E4D -1E4F -1E51 -1E53 -1E55 -1E57 -1E59 -1E5B -1E5D -1E5F -1E61 -1E63 -1E65 -1E67 -1E69 -1E6B -1E6D -1E6F -1E71 -1E73 -1E75 -1E77 -1E79 -1E7B -1E7D -1E7F -1E81 -1E83 -1E85 -1E87 -1E89 -1E8B -1E8D -1E8F -1E91 -1E93 -1E95 1E9B -1EA1 -1EA3 -1EA5 -1EA7 -1EA9 -1EAB -1EAD -1EAF -1EB1 -1EB3 -1EB5 -1EB7 -1EB9 -1EBB -1EBD -1EBF -1EC1 -1EC3 -1EC5 -1EC7 -1EC9 -1ECB -1ECD -1ECF -1ED1 -1ED3 -1ED5 -1ED7 -1ED9 -1EDB -1EDD -1EDF -1EE1 -1EE3 -1EE5 -1EE7 -1EE9 -1EEB -1EED -1EEF -1EF1 -1EF3 -1EF5 -1EF7 -1EF9 -1F00 1F07 -1F10 1F15 -1F20 1F27 -1F30 1F37 -1F40 1F45 -1F50 1F57 -1F60 1F67 -1F70 1F7D -1F80 1F87 -1F90 1F97 -1FA0 1FA7 -1FB0 1FB4 -1FB6 1FB7 -1FBE -1FC2 1FC4 -1FC6 1FC7 -1FD0 1FD3 -1FD6 1FD7 -1FE0 1FE7 -1FF2 1FF4 -1FF6 1FF7 -2071 -207F -210A -210E 210F -2113 -212F -2134 -2139 -213D -2146 2149 -FB00 FB06 -FB13 FB17 -FF41 FF5A -10428 1044D -1D41A 1D433 -1D44E 1D454 -1D456 1D467 -1D482 1D49B -1D4B6 1D4B9 -1D4BB -1D4BD 1D4C0 -1D4C2 1D4C3 -1D4C5 1D4CF -1D4EA 1D503 -1D51E 1D537 -1D552 1D56B -1D586 1D59F -1D5BA 1D5D3 -1D5EE 1D607 -1D622 1D63B -1D656 1D66F -1D68A 1D6A3 -1D6C2 1D6DA -1D6DC 1D6E1 -1D6FC 1D714 -1D716 1D71B -1D736 1D74E -1D750 1D755 -1D770 1D788 -1D78A 1D78F -1D7AA 1D7C2 -1D7C4 1D7C9 -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Lowercas.pl b/gnu/usr.bin/perl/lib/unicore/lib/Lowercas.pl deleted file mode 100644 index 07832e47ee7..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Lowercas.pl +++ /dev/null @@ -1,439 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Lowercase} (and fuzzy permutations) -# -# Meaning: [\p{Ll}\p{OtherLowercase}] -# -return <<'END'; -0061 007A -00AA -00B5 -00BA -00DF 00F6 -00F8 00FF -0101 -0103 -0105 -0107 -0109 -010B -010D -010F -0111 -0113 -0115 -0117 -0119 -011B -011D -011F -0121 -0123 -0125 -0127 -0129 -012B -012D -012F -0131 -0133 -0135 -0137 0138 -013A -013C -013E -0140 -0142 -0144 -0146 -0148 0149 -014B -014D -014F -0151 -0153 -0155 -0157 -0159 -015B -015D -015F -0161 -0163 -0165 -0167 -0169 -016B -016D -016F -0171 -0173 -0175 -0177 -017A -017C -017E 0180 -0183 -0185 -0188 -018C 018D -0192 -0195 -0199 019B -019E -01A1 -01A3 -01A5 -01A8 -01AA 01AB -01AD -01B0 -01B4 -01B6 -01B9 01BA -01BD 01BF -01C6 -01C9 -01CC -01CE -01D0 -01D2 -01D4 -01D6 -01D8 -01DA -01DC 01DD -01DF -01E1 -01E3 -01E5 -01E7 -01E9 -01EB -01ED -01EF 01F0 -01F3 -01F5 -01F9 -01FB -01FD -01FF -0201 -0203 -0205 -0207 -0209 -020B -020D -020F -0211 -0213 -0215 -0217 -0219 -021B -021D -021F -0223 -0225 -0227 -0229 -022B -022D -022F -0231 -0233 -0250 02AD -02B0 02B8 -02C0 02C1 -02E0 02E4 -0345 -037A -0390 -03AC 03CE -03D0 03D1 -03D5 03D7 -03D9 -03DB -03DD -03DF -03E1 -03E3 -03E5 -03E7 -03E9 -03EB -03ED -03EF 03F3 -03F5 -0430 045F -0461 -0463 -0465 -0467 -0469 -046B -046D -046F -0471 -0473 -0475 -0477 -0479 -047B -047D -047F -0481 -048B -048D -048F -0491 -0493 -0495 -0497 -0499 -049B -049D -049F -04A1 -04A3 -04A5 -04A7 -04A9 -04AB -04AD -04AF -04B1 -04B3 -04B5 -04B7 -04B9 -04BB -04BD -04BF -04C2 -04C4 -04C6 -04C8 -04CA -04CC -04CE -04D1 -04D3 -04D5 -04D7 -04D9 -04DB -04DD -04DF -04E1 -04E3 -04E5 -04E7 -04E9 -04EB -04ED -04EF -04F1 -04F3 -04F5 -04F9 -0501 -0503 -0505 -0507 -0509 -050B -050D -050F -0561 0587 -1E01 -1E03 -1E05 -1E07 -1E09 -1E0B -1E0D -1E0F -1E11 -1E13 -1E15 -1E17 -1E19 -1E1B -1E1D -1E1F -1E21 -1E23 -1E25 -1E27 -1E29 -1E2B -1E2D -1E2F -1E31 -1E33 -1E35 -1E37 -1E39 -1E3B -1E3D -1E3F -1E41 -1E43 -1E45 -1E47 -1E49 -1E4B -1E4D -1E4F -1E51 -1E53 -1E55 -1E57 -1E59 -1E5B -1E5D -1E5F -1E61 -1E63 -1E65 -1E67 -1E69 -1E6B -1E6D -1E6F -1E71 -1E73 -1E75 -1E77 -1E79 -1E7B -1E7D -1E7F -1E81 -1E83 -1E85 -1E87 -1E89 -1E8B -1E8D -1E8F -1E91 -1E93 -1E95 1E9B -1EA1 -1EA3 -1EA5 -1EA7 -1EA9 -1EAB -1EAD -1EAF -1EB1 -1EB3 -1EB5 -1EB7 -1EB9 -1EBB -1EBD -1EBF -1EC1 -1EC3 -1EC5 -1EC7 -1EC9 -1ECB -1ECD -1ECF -1ED1 -1ED3 -1ED5 -1ED7 -1ED9 -1EDB -1EDD -1EDF -1EE1 -1EE3 -1EE5 -1EE7 -1EE9 -1EEB -1EED -1EEF -1EF1 -1EF3 -1EF5 -1EF7 -1EF9 -1F00 1F07 -1F10 1F15 -1F20 1F27 -1F30 1F37 -1F40 1F45 -1F50 1F57 -1F60 1F67 -1F70 1F7D -1F80 1F87 -1F90 1F97 -1FA0 1FA7 -1FB0 1FB4 -1FB6 1FB7 -1FBE -1FC2 1FC4 -1FC6 1FC7 -1FD0 1FD3 -1FD6 1FD7 -1FE0 1FE7 -1FF2 1FF4 -1FF6 1FF7 -2071 -207F -210A -210E 210F -2113 -212F -2134 -2139 -213D -2146 2149 -2170 217F -24D0 24E9 -FB00 FB06 -FB13 FB17 -FF41 FF5A -10428 1044D -1D41A 1D433 -1D44E 1D454 -1D456 1D467 -1D482 1D49B -1D4B6 1D4B9 -1D4BB -1D4BD 1D4C0 -1D4C2 1D4C3 -1D4C5 1D4CF -1D4EA 1D503 -1D51E 1D537 -1D552 1D56B -1D586 1D59F -1D5BA 1D5D3 -1D5EE 1D607 -1D622 1D63B -1D656 1D66F -1D68A 1D6A3 -1D6C2 1D6DA -1D6DC 1D6E1 -1D6FC 1D714 -1D716 1D71B -1D736 1D74E -1D750 1D755 -1D770 1D788 -1D78A 1D78F -1D7AA 1D7C2 -1D7C4 1D7C9 -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Lt.pl b/gnu/usr.bin/perl/lib/unicore/lib/Lt.pl deleted file mode 100644 index 40f761a9c69..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Lt.pl +++ /dev/null @@ -1,23 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Lt} -# \p{Lt} (and fuzzy permutations) -# -# Meaning: General Category 'Lt' -# -return <<'END'; -01C5 -01C8 -01CB -01F2 -1F88 1F8F -1F98 1F9F -1FA8 1FAF -1FBC -1FCC -1FFC -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Lu.pl b/gnu/usr.bin/perl/lib/unicore/lib/Lu.pl deleted file mode 100644 index 1414b40d2f7..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Lu.pl +++ /dev/null @@ -1,432 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Lu} -# \p{Lu} (and fuzzy permutations) -# -# Meaning: General Category 'Lu' -# -return <<'END'; -0041 005A -00C0 00D6 -00D8 00DE -0100 -0102 -0104 -0106 -0108 -010A -010C -010E -0110 -0112 -0114 -0116 -0118 -011A -011C -011E -0120 -0122 -0124 -0126 -0128 -012A -012C -012E -0130 -0132 -0134 -0136 -0139 -013B -013D -013F -0141 -0143 -0145 -0147 -014A -014C -014E -0150 -0152 -0154 -0156 -0158 -015A -015C -015E -0160 -0162 -0164 -0166 -0168 -016A -016C -016E -0170 -0172 -0174 -0176 -0178 0179 -017B -017D -0181 0182 -0184 -0186 0187 -0189 018B -018E 0191 -0193 0194 -0196 0198 -019C 019D -019F 01A0 -01A2 -01A4 -01A6 01A7 -01A9 -01AC -01AE 01AF -01B1 01B3 -01B5 -01B7 01B8 -01BC -01C4 -01C7 -01CA -01CD -01CF -01D1 -01D3 -01D5 -01D7 -01D9 -01DB -01DE -01E0 -01E2 -01E4 -01E6 -01E8 -01EA -01EC -01EE -01F1 -01F4 -01F6 01F8 -01FA -01FC -01FE -0200 -0202 -0204 -0206 -0208 -020A -020C -020E -0210 -0212 -0214 -0216 -0218 -021A -021C -021E -0220 -0222 -0224 -0226 -0228 -022A -022C -022E -0230 -0232 -0386 -0388 038A -038C -038E 038F -0391 03A1 -03A3 03AB -03D2 03D4 -03D8 -03DA -03DC -03DE -03E0 -03E2 -03E4 -03E6 -03E8 -03EA -03EC -03EE -03F4 -0400 042F -0460 -0462 -0464 -0466 -0468 -046A -046C -046E -0470 -0472 -0474 -0476 -0478 -047A -047C -047E -0480 -048A -048C -048E -0490 -0492 -0494 -0496 -0498 -049A -049C -049E -04A0 -04A2 -04A4 -04A6 -04A8 -04AA -04AC -04AE -04B0 -04B2 -04B4 -04B6 -04B8 -04BA -04BC -04BE -04C0 04C1 -04C3 -04C5 -04C7 -04C9 -04CB -04CD -04D0 -04D2 -04D4 -04D6 -04D8 -04DA -04DC -04DE -04E0 -04E2 -04E4 -04E6 -04E8 -04EA -04EC -04EE -04F0 -04F2 -04F4 -04F8 -0500 -0502 -0504 -0506 -0508 -050A -050C -050E -0531 0556 -10A0 10C5 -1E00 -1E02 -1E04 -1E06 -1E08 -1E0A -1E0C -1E0E -1E10 -1E12 -1E14 -1E16 -1E18 -1E1A -1E1C -1E1E -1E20 -1E22 -1E24 -1E26 -1E28 -1E2A -1E2C -1E2E -1E30 -1E32 -1E34 -1E36 -1E38 -1E3A -1E3C -1E3E -1E40 -1E42 -1E44 -1E46 -1E48 -1E4A -1E4C -1E4E -1E50 -1E52 -1E54 -1E56 -1E58 -1E5A -1E5C -1E5E -1E60 -1E62 -1E64 -1E66 -1E68 -1E6A -1E6C -1E6E -1E70 -1E72 -1E74 -1E76 -1E78 -1E7A -1E7C -1E7E -1E80 -1E82 -1E84 -1E86 -1E88 -1E8A -1E8C -1E8E -1E90 -1E92 -1E94 -1EA0 -1EA2 -1EA4 -1EA6 -1EA8 -1EAA -1EAC -1EAE -1EB0 -1EB2 -1EB4 -1EB6 -1EB8 -1EBA -1EBC -1EBE -1EC0 -1EC2 -1EC4 -1EC6 -1EC8 -1ECA -1ECC -1ECE -1ED0 -1ED2 -1ED4 -1ED6 -1ED8 -1EDA -1EDC -1EDE -1EE0 -1EE2 -1EE4 -1EE6 -1EE8 -1EEA -1EEC -1EEE -1EF0 -1EF2 -1EF4 -1EF6 -1EF8 -1F08 1F0F -1F18 1F1D -1F28 1F2F -1F38 1F3F -1F48 1F4D -1F59 -1F5B -1F5D -1F5F -1F68 1F6F -1FB8 1FBB -1FC8 1FCB -1FD8 1FDB -1FE8 1FEC -1FF8 1FFB -2102 -2107 -210B 210D -2110 2112 -2115 -2119 211D -2124 -2126 -2128 -212A 212D -2130 2131 -2133 -213E 213F -2145 -FF21 FF3A -10400 10425 -1D400 1D419 -1D434 1D44D -1D468 1D481 -1D49C -1D49E 1D49F -1D4A2 -1D4A5 1D4A6 -1D4A9 1D4AC -1D4AE 1D4B5 -1D4D0 1D4E9 -1D504 1D505 -1D507 1D50A -1D50D 1D514 -1D516 1D51C -1D538 1D539 -1D53B 1D53E -1D540 1D544 -1D546 -1D54A 1D550 -1D56C 1D585 -1D5A0 1D5B9 -1D5D4 1D5ED -1D608 1D621 -1D63C 1D655 -1D670 1D689 -1D6A8 1D6C0 -1D6E2 1D6FA -1D71C 1D734 -1D756 1D76E -1D790 1D7A8 -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/M.pl b/gnu/usr.bin/perl/lib/unicore/lib/M.pl deleted file mode 100644 index cd78b82348e..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/M.pl +++ /dev/null @@ -1,125 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{M} -# \p{M} (and fuzzy permutations) -# -# Meaning: Major Category 'M' -# -return <<'END'; -0300 034F -0360 036F -0483 0486 -0488 0489 -0591 05A1 -05A3 05B9 -05BB 05BD -05BF -05C1 05C2 -05C4 -064B 0655 -0670 -06D6 06DC -06DE 06E4 -06E7 06E8 -06EA 06ED -0711 -0730 074A -07A6 07B0 -0901 0903 -093C -093E 094D -0951 0954 -0962 0963 -0981 0983 -09BC -09BE 09C4 -09C7 09C8 -09CB 09CD -09D7 -09E2 09E3 -0A02 -0A3C -0A3E 0A42 -0A47 0A48 -0A4B 0A4D -0A70 0A71 -0A81 0A83 -0ABC -0ABE 0AC5 -0AC7 0AC9 -0ACB 0ACD -0B01 0B03 -0B3C -0B3E 0B43 -0B47 0B48 -0B4B 0B4D -0B56 0B57 -0B82 -0BBE 0BC2 -0BC6 0BC8 -0BCA 0BCD -0BD7 -0C01 0C03 -0C3E 0C44 -0C46 0C48 -0C4A 0C4D -0C55 0C56 -0C82 0C83 -0CBE 0CC4 -0CC6 0CC8 -0CCA 0CCD -0CD5 0CD6 -0D02 0D03 -0D3E 0D43 -0D46 0D48 -0D4A 0D4D -0D57 -0D82 0D83 -0DCA -0DCF 0DD4 -0DD6 -0DD8 0DDF -0DF2 0DF3 -0E31 -0E34 0E3A -0E47 0E4E -0EB1 -0EB4 0EB9 -0EBB 0EBC -0EC8 0ECD -0F18 0F19 -0F35 -0F37 -0F39 -0F3E 0F3F -0F71 0F84 -0F86 0F87 -0F90 0F97 -0F99 0FBC -0FC6 -102C 1032 -1036 1039 -1056 1059 -1712 1714 -1732 1734 -1752 1753 -1772 1773 -17B4 17D3 -180B 180D -18A9 -20D0 20EA -302A 302F -3099 309A -FB1E -FE00 FE0F -FE20 FE23 -1D165 1D169 -1D16D 1D172 -1D17B 1D182 -1D185 1D18B -1D1AA 1D1AD -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Malayala.pl b/gnu/usr.bin/perl/lib/unicore/lib/Malayala.pl deleted file mode 100644 index eb1c7365e14..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Malayala.pl +++ /dev/null @@ -1,23 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Malayalam} (and fuzzy permutations) -# -# Meaning: Script 'MALAYALAM' -# -return <<'END'; -0D02 0D03 MALAYALAM -0D05 0D0C MALAYALAM -0D0E 0D10 MALAYALAM -0D12 0D28 MALAYALAM -0D2A 0D39 MALAYALAM -0D3E 0D43 MALAYALAM -0D46 0D48 MALAYALAM -0D4A 0D4D MALAYALAM -0D57 MALAYALAM -0D60 0D61 MALAYALAM -0D66 0D6F MALAYALAM -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Math.pl b/gnu/usr.bin/perl/lib/unicore/lib/Math.pl deleted file mode 100644 index a233c79f8fe..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Math.pl +++ /dev/null @@ -1,101 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Math} (and fuzzy permutations) -# -# Meaning: [\p{Sm}\p{OtherMath}] -# -return <<'END'; -0028 002B -002D -002F -003C 003E -005B 005E -007B 007E -00AC -00B1 -00D7 -00F7 -03F6 -2016 -2032 2034 -2044 -2052 -207A 207E -208A 208E -20D0 20DC -20E1 -2102 -210A 2113 -2115 -2119 211D -2124 -2128 -212C 212D -212F 2131 -2133 2138 -2140 2144 -214B -2190 2194 -219A 219B -21A0 -21A3 -21A6 -21AE -21CE 21CF -21D2 -21D4 -21F4 22FF -2308 230B -2320 2321 -237C -239B 23B3 -25B7 -25C1 -25F8 25FF -266F -27D0 27E5 -27F0 27FF -2900 2982 -2999 29D7 -29DC 29FB -29FE 2AFF -FB29 -FE35 FE38 -FE59 FE5C -FE61 FE66 -FE68 -FF08 FF0B -FF0D -FF0F -FF1C FF1E -FF3B FF3E -FF5B FF5E -FFE2 -FFE9 FFEC -1D400 1D454 -1D456 1D49C -1D49E 1D49F -1D4A2 -1D4A5 1D4A6 -1D4A9 1D4AC -1D4AE 1D4B9 -1D4BB -1D4BD 1D4C0 -1D4C2 1D4C3 -1D4C5 1D505 -1D507 1D50A -1D50D 1D514 -1D516 1D51C -1D51E 1D539 -1D53B 1D53E -1D540 1D544 -1D546 -1D54A 1D550 -1D552 1D6A3 -1D6A8 1D7C9 -1D7CE 1D7FF -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Mc.pl b/gnu/usr.bin/perl/lib/unicore/lib/Mc.pl deleted file mode 100644 index cb4833a16e9..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Mc.pl +++ /dev/null @@ -1,65 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Mc} -# \p{Mc} (and fuzzy permutations) -# -# Meaning: General Category 'Mc' -# -return <<'END'; -0903 -093E 0940 -0949 094C -0982 0983 -09BE 09C0 -09C7 09C8 -09CB 09CC -09D7 -0A3E 0A40 -0A83 -0ABE 0AC0 -0AC9 -0ACB 0ACC -0B02 0B03 -0B3E -0B40 -0B47 0B48 -0B4B 0B4C -0B57 -0BBE 0BBF -0BC1 0BC2 -0BC6 0BC8 -0BCA 0BCC -0BD7 -0C01 0C03 -0C41 0C44 -0C82 0C83 -0CBE -0CC0 0CC4 -0CC7 0CC8 -0CCA 0CCB -0CD5 0CD6 -0D02 0D03 -0D3E 0D40 -0D46 0D48 -0D4A 0D4C -0D57 -0D82 0D83 -0DCF 0DD1 -0DD8 0DDF -0DF2 0DF3 -0F3E 0F3F -0F7F -102C -1031 -1038 -1056 1057 -17B4 17B6 -17BE 17C5 -17C7 17C8 -1D165 1D166 -1D16D 1D172 -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Me.pl b/gnu/usr.bin/perl/lib/unicore/lib/Me.pl deleted file mode 100644 index e8dc9d974e0..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Me.pl +++ /dev/null @@ -1,17 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Me} -# \p{Me} (and fuzzy permutations) -# -# Meaning: General Category 'Me' -# -return <<'END'; -0488 0489 -06DE -20DD 20E0 -20E2 20E4 -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Mirrored.pl b/gnu/usr.bin/perl/lib/unicore/lib/Mirrored.pl deleted file mode 100644 index f7512515add..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Mirrored.pl +++ /dev/null @@ -1,105 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Mirrored} -# -# Meaning: Mirrored in bidirectional text -# -return <<'END'; -0028 0029 -003C -003E -005B -005D -007B -007D -00AB -00BB -2039 203A -2045 2046 -207D 207E -208D 208E -2140 -2201 2204 -2208 220D -2211 -2215 2216 -221A 221D -221F 2222 -2224 -2226 -222B 2233 -2239 -223B 224C -2252 2255 -225F 2260 -2262 -2264 226B -226E 228C -228F 2292 -2298 -22A2 22A3 -22A6 22B8 -22BE 22BF -22C9 22CD -22D0 22D1 -22D6 22ED -22F0 22FF -2308 230B -2320 2321 -2329 232A -2768 2775 -27D3 27D6 -27DC 27DE -27E2 27EB -2983 2998 -299B 29AF -29B8 -29C0 29C5 -29C9 -29CE 29D2 -29D4 29D5 -29D8 29DC -29E1 -29E3 29E5 -29E8 29E9 -29F4 29F9 -29FC 29FD -2A0A 2A1C -2A1E 2A21 -2A24 -2A26 -2A29 -2A2B 2A2E -2A34 2A35 -2A3C 2A3E -2A57 2A58 -2A64 2A65 -2A6A 2A6D -2A6F 2A70 -2A73 2A74 -2A79 2AA3 -2AA6 2AAD -2AAF 2AD6 -2ADC -2ADE -2AE2 2AE6 -2AEC 2AEE -2AF3 -2AF7 2AFB -2AFD -3008 3011 -3014 301B -FF08 FF09 -FF1C -FF1E -FF3B -FF3D -FF5B -FF5D -FF5F FF60 -FF62 FF63 -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Mn.pl b/gnu/usr.bin/perl/lib/unicore/lib/Mn.pl deleted file mode 100644 index 481f1ed4915..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Mn.pl +++ /dev/null @@ -1,117 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Mn} -# \p{Mn} (and fuzzy permutations) -# -# Meaning: General Category 'Mn' -# -return <<'END'; -0300 034F -0360 036F -0483 0486 -0591 05A1 -05A3 05B9 -05BB 05BD -05BF -05C1 05C2 -05C4 -064B 0655 -0670 -06D6 06DC -06DF 06E4 -06E7 06E8 -06EA 06ED -0711 -0730 074A -07A6 07B0 -0901 0902 -093C -0941 0948 -094D -0951 0954 -0962 0963 -0981 -09BC -09C1 09C4 -09CD -09E2 09E3 -0A02 -0A3C -0A41 0A42 -0A47 0A48 -0A4B 0A4D -0A70 0A71 -0A81 0A82 -0ABC -0AC1 0AC5 -0AC7 0AC8 -0ACD -0B01 -0B3C -0B3F -0B41 0B43 -0B4D -0B56 -0B82 -0BC0 -0BCD -0C3E 0C40 -0C46 0C48 -0C4A 0C4D -0C55 0C56 -0CBF -0CC6 -0CCC 0CCD -0D41 0D43 -0D4D -0DCA -0DD2 0DD4 -0DD6 -0E31 -0E34 0E3A -0E47 0E4E -0EB1 -0EB4 0EB9 -0EBB 0EBC -0EC8 0ECD -0F18 0F19 -0F35 -0F37 -0F39 -0F71 0F7E -0F80 0F84 -0F86 0F87 -0F90 0F97 -0F99 0FBC -0FC6 -102D 1030 -1032 -1036 1037 -1039 -1058 1059 -1712 1714 -1732 1734 -1752 1753 -1772 1773 -17B7 17BD -17C6 -17C9 17D3 -180B 180D -18A9 -20D0 20DC -20E1 -20E5 20EA -302A 302F -3099 309A -FB1E -FE00 FE0F -FE20 FE23 -1D167 1D169 -1D17B 1D182 -1D185 1D18B -1D1AA 1D1AD -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Mongolia.pl b/gnu/usr.bin/perl/lib/unicore/lib/Mongolia.pl deleted file mode 100644 index 5cdc083e149..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Mongolia.pl +++ /dev/null @@ -1,15 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Mongolian} (and fuzzy permutations) -# -# Meaning: Script 'MONGOLIAN' -# -return <<'END'; -1810 1819 MONGOLIAN -1820 1877 MONGOLIAN -1880 18A9 MONGOLIAN -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Myanmar.pl b/gnu/usr.bin/perl/lib/unicore/lib/Myanmar.pl deleted file mode 100644 index 49385bbe0a2..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Myanmar.pl +++ /dev/null @@ -1,19 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Myanmar} (and fuzzy permutations) -# -# Meaning: Script 'MYANMAR' -# -return <<'END'; -1000 1021 MYANMAR -1023 1027 MYANMAR -1029 102A MYANMAR -102C 1032 MYANMAR -1036 1039 MYANMAR -1040 1049 MYANMAR -1050 1059 MYANMAR -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/N.pl b/gnu/usr.bin/perl/lib/unicore/lib/N.pl deleted file mode 100644 index 612b79f1f3d..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/N.pl +++ /dev/null @@ -1,56 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{N} -# \p{N} (and fuzzy permutations) -# -# Meaning: Major Category 'N' -# -return <<'END'; -0030 0039 -00B2 00B3 -00B9 -00BC 00BE -0660 0669 -06F0 06F9 -0966 096F -09E6 09EF -09F4 09F9 -0A66 0A6F -0AE6 0AEF -0B66 0B6F -0BE7 0BF2 -0C66 0C6F -0CE6 0CEF -0D66 0D6F -0E50 0E59 -0ED0 0ED9 -0F20 0F33 -1040 1049 -1369 137C -16EE 16F0 -17E0 17E9 -1810 1819 -2070 -2074 2079 -2080 2089 -2153 2183 -2460 249B -24EA 24FE -2776 2793 -3007 -3021 3029 -3038 303A -3192 3195 -3220 3229 -3251 325F -3280 3289 -32B1 32BF -FF10 FF19 -10320 10323 -1034A -1D7CE 1D7FF -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Nd.pl b/gnu/usr.bin/perl/lib/unicore/lib/Nd.pl deleted file mode 100644 index 30cd8445dd1..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Nd.pl +++ /dev/null @@ -1,34 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Nd} -# \p{Nd} (and fuzzy permutations) -# -# Meaning: General Category 'Nd' -# -return <<'END'; -0030 0039 -0660 0669 -06F0 06F9 -0966 096F -09E6 09EF -0A66 0A6F -0AE6 0AEF -0B66 0B6F -0BE7 0BEF -0C66 0C6F -0CE6 0CEF -0D66 0D6F -0E50 0E59 -0ED0 0ED9 -0F20 0F29 -1040 1049 -1369 1371 -17E0 17E9 -1810 1819 -FF10 FF19 -1D7CE 1D7FF -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Nl.pl b/gnu/usr.bin/perl/lib/unicore/lib/Nl.pl deleted file mode 100644 index 14279d3030d..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Nl.pl +++ /dev/null @@ -1,19 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Nl} -# \p{Nl} (and fuzzy permutations) -# -# Meaning: General Category 'Nl' -# -return <<'END'; -16EE 16F0 -2160 2183 -3007 -3021 3029 -3038 303A -1034A -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/No.pl b/gnu/usr.bin/perl/lib/unicore/lib/No.pl deleted file mode 100644 index ede689d6a46..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/No.pl +++ /dev/null @@ -1,33 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{No} -# \p{No} (and fuzzy permutations) -# -# Meaning: General Category 'No' -# -return <<'END'; -00B2 00B3 -00B9 -00BC 00BE -09F4 09F9 -0BF0 0BF2 -0F2A 0F33 -1372 137C -2070 -2074 2079 -2080 2089 -2153 215F -2460 249B -24EA 24FE -2776 2793 -3192 3195 -3220 3229 -3251 325F -3280 3289 -32B1 32BF -10320 10323 -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Nonchara.pl b/gnu/usr.bin/perl/lib/unicore/lib/Nonchara.pl deleted file mode 100644 index adf874015e3..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Nonchara.pl +++ /dev/null @@ -1,30 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{NoncharacterCodePoint} (and fuzzy permutations) -# -# Meaning: Extended property 'Noncharacter_Code_Point' -# -return <<'END'; -FDD0 FDEF Noncharacter_Code_Point -FFFE FFFF Noncharacter_Code_Point -1FFFE 1FFFF Noncharacter_Code_Point -2FFFE 2FFFF Noncharacter_Code_Point -3FFFE 3FFFF Noncharacter_Code_Point -4FFFE 4FFFF Noncharacter_Code_Point -5FFFE 5FFFF Noncharacter_Code_Point -6FFFE 6FFFF Noncharacter_Code_Point -7FFFE 7FFFF Noncharacter_Code_Point -8FFFE 8FFFF Noncharacter_Code_Point -9FFFE 9FFFF Noncharacter_Code_Point -AFFFE AFFFF Noncharacter_Code_Point -BFFFE BFFFF Noncharacter_Code_Point -CFFFE CFFFF Noncharacter_Code_Point -DFFFE DFFFF Noncharacter_Code_Point -EFFFE EFFFF Noncharacter_Code_Point -FFFFE FFFFF Noncharacter_Code_Point -10FFFE 10FFFF Noncharacter_Code_Point -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Ogham.pl b/gnu/usr.bin/perl/lib/unicore/lib/Ogham.pl deleted file mode 100644 index 6b9538485b6..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Ogham.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Ogham} (and fuzzy permutations) -# -# Meaning: Script 'OGHAM' -# -return <<'END'; -1681 169A OGHAM -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/OldItali.pl b/gnu/usr.bin/perl/lib/unicore/lib/OldItali.pl deleted file mode 100644 index 7fe3725c0e6..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/OldItali.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{OldItalic} (and fuzzy permutations) -# -# Meaning: Script 'OLD_ITALIC' -# -return <<'END'; -10300 1031E OLD_ITALIC -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Oriya.pl b/gnu/usr.bin/perl/lib/unicore/lib/Oriya.pl deleted file mode 100644 index 2b599d6c08a..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Oriya.pl +++ /dev/null @@ -1,26 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Oriya} (and fuzzy permutations) -# -# Meaning: Script 'ORIYA' -# -return <<'END'; -0B01 0B03 ORIYA -0B05 0B0C ORIYA -0B0F 0B10 ORIYA -0B13 0B28 ORIYA -0B2A 0B30 ORIYA -0B32 0B33 ORIYA -0B36 0B39 ORIYA -0B3C 0B43 ORIYA -0B47 0B48 ORIYA -0B4B 0B4D ORIYA -0B56 0B57 ORIYA -0B5C 0B5D ORIYA -0B5F 0B61 ORIYA -0B66 0B6F ORIYA -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Osmanya.pl b/gnu/usr.bin/perl/lib/unicore/lib/Osmanya.pl deleted file mode 100644 index 19ffe7a7826..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Osmanya.pl +++ /dev/null @@ -1,14 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Osmanya} (and fuzzy permutations) -# -# Meaning: Script 'OSMANYA' -# -return <<'END'; -10480 1049D OSMANYA -104A0 104A9 OSMANYA -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/OtherAlp.pl b/gnu/usr.bin/perl/lib/unicore/lib/OtherAlp.pl deleted file mode 100644 index 97eda4888e5..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/OtherAlp.pl +++ /dev/null @@ -1,99 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{OtherAlphabetic} (and fuzzy permutations) -# -# Meaning: Extended property 'Other_Alphabetic' -# -return <<'END'; -0345 Other_Alphabetic -05B0 05B9 Other_Alphabetic -05BB 05BD Other_Alphabetic -05BF Other_Alphabetic -05C1 05C2 Other_Alphabetic -05C4 Other_Alphabetic -064B 0655 Other_Alphabetic -0670 Other_Alphabetic -06D6 06DC Other_Alphabetic -06E1 06E4 Other_Alphabetic -06E7 06E8 Other_Alphabetic -06ED Other_Alphabetic -0711 Other_Alphabetic -0730 073F Other_Alphabetic -07A6 07B0 Other_Alphabetic -0901 0903 Other_Alphabetic -093E 094C Other_Alphabetic -0962 0963 Other_Alphabetic -0981 0983 Other_Alphabetic -09BE 09C4 Other_Alphabetic -09C7 09C8 Other_Alphabetic -09CB 09CC Other_Alphabetic -09D7 Other_Alphabetic -09E2 09E3 Other_Alphabetic -0A02 Other_Alphabetic -0A3E 0A42 Other_Alphabetic -0A47 0A48 Other_Alphabetic -0A4B 0A4C Other_Alphabetic -0A70 0A71 Other_Alphabetic -0A81 0A83 Other_Alphabetic -0ABE 0AC5 Other_Alphabetic -0AC7 0AC9 Other_Alphabetic -0ACB 0ACC Other_Alphabetic -0B01 0B03 Other_Alphabetic -0B3E 0B43 Other_Alphabetic -0B47 0B48 Other_Alphabetic -0B4B 0B4C Other_Alphabetic -0B56 0B57 Other_Alphabetic -0B82 Other_Alphabetic -0BBE 0BC2 Other_Alphabetic -0BC6 0BC8 Other_Alphabetic -0BCA 0BCC Other_Alphabetic -0BD7 Other_Alphabetic -0C01 0C03 Other_Alphabetic -0C3E 0C44 Other_Alphabetic -0C46 0C48 Other_Alphabetic -0C4A 0C4C Other_Alphabetic -0C55 0C56 Other_Alphabetic -0C82 0C83 Other_Alphabetic -0CBE 0CC4 Other_Alphabetic -0CC6 0CC8 Other_Alphabetic -0CCA 0CCC Other_Alphabetic -0CD5 0CD6 Other_Alphabetic -0D02 0D03 Other_Alphabetic -0D3E 0D43 Other_Alphabetic -0D46 0D48 Other_Alphabetic -0D4A 0D4C Other_Alphabetic -0D57 Other_Alphabetic -0D82 0D83 Other_Alphabetic -0DCF 0DD4 Other_Alphabetic -0DD6 Other_Alphabetic -0DD8 0DDF Other_Alphabetic -0DF2 0DF3 Other_Alphabetic -0E31 Other_Alphabetic -0E34 0E3A Other_Alphabetic -0E4D Other_Alphabetic -0EB1 Other_Alphabetic -0EB4 0EB9 Other_Alphabetic -0EBB 0EBC Other_Alphabetic -0ECD Other_Alphabetic -0F71 0F81 Other_Alphabetic -0F90 0F97 Other_Alphabetic -0F99 0FBC Other_Alphabetic -102C 1032 Other_Alphabetic -1036 Other_Alphabetic -1038 Other_Alphabetic -1056 1059 Other_Alphabetic -16EE 16F0 Other_Alphabetic -1712 1713 Other_Alphabetic -1732 1733 Other_Alphabetic -1752 1753 Other_Alphabetic -1772 1773 Other_Alphabetic -17B4 17C8 Other_Alphabetic -18A9 Other_Alphabetic -2160 2183 Other_Alphabetic -FB1E Other_Alphabetic -1034A Other_Alphabetic -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/OtherDef.pl b/gnu/usr.bin/perl/lib/unicore/lib/OtherDef.pl deleted file mode 100644 index 6bdd19449aa..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/OtherDef.pl +++ /dev/null @@ -1,17 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{OtherDefaultIgnorableCodePoint} (and fuzzy permutations) -# -# Meaning: Extended property 'Other_Default_Ignorable_Code_Point' -# -return <<'END'; -180B 180D Other_Default_Ignorable_Code_Point -2060 206F Other_Default_Ignorable_Code_Point -FE00 FE0F Other_Default_Ignorable_Code_Point -FFF0 FFFB Other_Default_Ignorable_Code_Point -E0000 E0FFF Other_Default_Ignorable_Code_Point -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/OtherGra.pl b/gnu/usr.bin/perl/lib/unicore/lib/OtherGra.pl deleted file mode 100644 index 7a927cdb456..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/OtherGra.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{OtherGraphemeExtend} (and fuzzy permutations) -# -# Meaning: Extended property 'Other_Grapheme_Extend' -# -return <<'END'; -FF9E FF9F Other_Grapheme_Extend -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/OtherIdS.pl b/gnu/usr.bin/perl/lib/unicore/lib/OtherIdS.pl deleted file mode 100644 index 59e4dd3b4a9..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/OtherIdS.pl +++ /dev/null @@ -1,15 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{OtherIdStart} (and fuzzy permutations) -# -# Meaning: Extended property 'Other_ID_Start' -# -return <<'END'; -2118 Other_ID_Start -212E Other_ID_Start -309B 309C Other_ID_Start -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/OtherLow.pl b/gnu/usr.bin/perl/lib/unicore/lib/OtherLow.pl deleted file mode 100644 index ae844c9d62c..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/OtherLow.pl +++ /dev/null @@ -1,19 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{OtherLowercase} (and fuzzy permutations) -# -# Meaning: Extended property 'Other_Lowercase' -# -return <<'END'; -02B0 02B8 Other_Lowercase -02C0 02C1 Other_Lowercase -02E0 02E4 Other_Lowercase -0345 Other_Lowercase -037A Other_Lowercase -2170 217F Other_Lowercase -24D0 24E9 Other_Lowercase -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/OtherMat.pl b/gnu/usr.bin/perl/lib/unicore/lib/OtherMat.pl deleted file mode 100644 index 1f9ad904090..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/OtherMat.pl +++ /dev/null @@ -1,76 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{OtherMath} (and fuzzy permutations) -# -# Meaning: Extended property 'Other_Math' -# -return <<'END'; -0028 002A Other_Math -002D Other_Math -002F Other_Math -005B 005E Other_Math -007B Other_Math -007D Other_Math -2016 Other_Math -2032 2034 Other_Math -207D 207E Other_Math -208D 208E Other_Math -20D0 20DC Other_Math -20E1 Other_Math -2102 Other_Math -210A 2113 Other_Math -2115 Other_Math -2119 211D Other_Math -2124 Other_Math -2128 Other_Math -212C 212D Other_Math -212F 2131 Other_Math -2133 2138 Other_Math -FE35 FE38 Other_Math -FE59 FE5C Other_Math -FE61 Other_Math -FE63 Other_Math -FE68 Other_Math -FF08 FF0A Other_Math -FF0D Other_Math -FF0F Other_Math -FF3B FF3E Other_Math -FF5B Other_Math -FF5D Other_Math -1D400 1D454 Other_Math -1D456 1D49C Other_Math -1D49E 1D49F Other_Math -1D4A2 Other_Math -1D4A5 1D4A6 Other_Math -1D4A9 1D4AC Other_Math -1D4AE 1D4B9 Other_Math -1D4BB Other_Math -1D4BD 1D4C0 Other_Math -1D4C2 1D4C3 Other_Math -1D4C5 1D505 Other_Math -1D507 1D50A Other_Math -1D50D 1D514 Other_Math -1D516 1D51C Other_Math -1D51E 1D539 Other_Math -1D53B 1D53E Other_Math -1D540 1D544 Other_Math -1D546 Other_Math -1D54A 1D550 Other_Math -1D552 1D6A3 Other_Math -1D6A8 1D6C0 Other_Math -1D6C2 1D6DA Other_Math -1D6DC 1D6FA Other_Math -1D6FC 1D714 Other_Math -1D716 1D734 Other_Math -1D736 1D74E Other_Math -1D750 1D76E Other_Math -1D770 1D788 Other_Math -1D78A 1D7A8 Other_Math -1D7AA 1D7C2 Other_Math -1D7C4 1D7C9 Other_Math -1D7CE 1D7FF Other_Math -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/OtherUpp.pl b/gnu/usr.bin/perl/lib/unicore/lib/OtherUpp.pl deleted file mode 100644 index 4ba30489926..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/OtherUpp.pl +++ /dev/null @@ -1,14 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{OtherUppercase} (and fuzzy permutations) -# -# Meaning: Extended property 'Other_Uppercase' -# -return <<'END'; -2160 216F Other_Uppercase -24B6 24CF Other_Uppercase -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/P.pl b/gnu/usr.bin/perl/lib/unicore/lib/P.pl deleted file mode 100644 index 1302e8d8f9a..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/P.pl +++ /dev/null @@ -1,97 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{P} -# \p{P} (and fuzzy permutations) -# -# Meaning: Major Category 'P' -# -return <<'END'; -0021 0023 -0025 002A -002C 002F -003A 003B -003F 0040 -005B 005D -005F -007B -007D -00A1 -00AB -00AD -00B7 -00BB -00BF -037E -0387 -055A 055F -0589 058A -05BE -05C0 -05C3 -05F3 05F4 -060C -061B -061F -066A 066D -06D4 -0700 070D -0964 0965 -0970 -0DF4 -0E4F -0E5A 0E5B -0F04 0F12 -0F3A 0F3D -0F85 -104A 104F -10FB -1361 1368 -166D 166E -169B 169C -16EB 16ED -1735 1736 -17D4 17D6 -17D8 17DA -1800 180A -2010 2027 -2030 2043 -2045 2051 -2057 -207D 207E -208D 208E -2329 232A -23B4 23B6 -2768 2775 -27E6 27EB -2983 2998 -29D8 29DB -29FC 29FD -3001 3003 -3008 3011 -3014 301F -3030 -303D -30A0 -30FB -FD3E FD3F -FE30 FE46 -FE49 FE52 -FE54 FE61 -FE63 -FE68 -FE6A FE6B -FF01 FF03 -FF05 FF0A -FF0C FF0F -FF1A FF1B -FF1F FF20 -FF3B FF3D -FF3F -FF5B -FF5D -FF5F FF65 -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Pc.pl b/gnu/usr.bin/perl/lib/unicore/lib/Pc.pl deleted file mode 100644 index 2f087426846..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Pc.pl +++ /dev/null @@ -1,20 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Pc} -# \p{Pc} (and fuzzy permutations) -# -# Meaning: General Category 'Pc' -# -return <<'END'; -005F -203F 2040 -30FB -FE33 FE34 -FE4D FE4F -FF3F -FF65 -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Pd.pl b/gnu/usr.bin/perl/lib/unicore/lib/Pd.pl deleted file mode 100644 index e32f88fe509..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Pd.pl +++ /dev/null @@ -1,25 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Pd} -# \p{Pd} (and fuzzy permutations) -# -# Meaning: General Category 'Pd' -# -return <<'END'; -002D -00AD -058A -1806 -2010 2015 -301C -3030 -30A0 -FE31 FE32 -FE58 -FE63 -FF0D -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Pe.pl b/gnu/usr.bin/perl/lib/unicore/lib/Pe.pl deleted file mode 100644 index 5c7e3c8dbe9..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Pe.pl +++ /dev/null @@ -1,75 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Pe} -# \p{Pe} (and fuzzy permutations) -# -# Meaning: General Category 'Pe' -# -return <<'END'; -0029 -005D -007D -0F3B -0F3D -169C -2046 -207E -208E -232A -23B5 -2769 -276B -276D -276F -2771 -2773 -2775 -27E7 -27E9 -27EB -2984 -2986 -2988 -298A -298C -298E -2990 -2992 -2994 -2996 -2998 -29D9 -29DB -29FD -3009 -300B -300D -300F -3011 -3015 -3017 -3019 -301B -301E 301F -FD3F -FE36 -FE38 -FE3A -FE3C -FE3E -FE40 -FE42 -FE44 -FE5A -FE5C -FE5E -FF09 -FF3D -FF5D -FF60 -FF63 -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Pf.pl b/gnu/usr.bin/perl/lib/unicore/lib/Pf.pl deleted file mode 100644 index 8e363d2a970..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Pf.pl +++ /dev/null @@ -1,17 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Pf} -# \p{Pf} (and fuzzy permutations) -# -# Meaning: General Category 'Pf' -# -return <<'END'; -00BB -2019 -201D -203A -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Pi.pl b/gnu/usr.bin/perl/lib/unicore/lib/Pi.pl deleted file mode 100644 index c78bde1b9cb..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Pi.pl +++ /dev/null @@ -1,18 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Pi} -# \p{Pi} (and fuzzy permutations) -# -# Meaning: General Category 'Pi' -# -return <<'END'; -00AB -2018 -201B 201C -201F -2039 -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Po.pl b/gnu/usr.bin/perl/lib/unicore/lib/Po.pl deleted file mode 100644 index 963ce32a156..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Po.pl +++ /dev/null @@ -1,83 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Po} -# \p{Po} (and fuzzy permutations) -# -# Meaning: General Category 'Po' -# -return <<'END'; -0021 0023 -0025 0027 -002A -002C -002E 002F -003A 003B -003F 0040 -005C -00A1 -00B7 -00BF -037E -0387 -055A 055F -0589 -05BE -05C0 -05C3 -05F3 05F4 -060C -061B -061F -066A 066D -06D4 -0700 070D -0964 0965 -0970 -0DF4 -0E4F -0E5A 0E5B -0F04 0F12 -0F85 -104A 104F -10FB -1361 1368 -166D 166E -16EB 16ED -1735 1736 -17D4 17D6 -17D8 17DA -1800 1805 -1807 180A -2016 2017 -2020 2027 -2030 2038 -203B 203E -2041 2043 -2047 2051 -2057 -23B6 -3001 3003 -303D -FE30 -FE45 FE46 -FE49 FE4C -FE50 FE52 -FE54 FE57 -FE5F FE61 -FE68 -FE6A FE6B -FF01 FF03 -FF05 FF07 -FF0A -FF0C -FF0E FF0F -FF1A FF1B -FF1F FF20 -FF3C -FF61 -FF64 -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Print.pl b/gnu/usr.bin/perl/lib/unicore/lib/Print.pl deleted file mode 100644 index 01ac6f10d41..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Print.pl +++ /dev/null @@ -1,400 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Print} -# -# Meaning: [[:Print:]] -# -return <<'END'; -0020 007E -00A0 0220 -0222 0233 -0250 02AD -02B0 02EE -0300 034F -0360 036F -0374 0375 -037A -037E -0384 038A -038C -038E 03A1 -03A3 03CE -03D0 03F6 -0400 0486 -0488 04CE -04D0 04F5 -04F8 04F9 -0500 050F -0531 0556 -0559 055F -0561 0587 -0589 058A -0591 05A1 -05A3 05B9 -05BB 05C4 -05D0 05EA -05F0 05F4 -060C -061B -061F -0621 063A -0640 0655 -0660 06DC -06DE 06ED -06F0 06FE -0700 070D -0710 072C -0730 074A -0780 07B1 -0901 0903 -0905 0939 -093C 094D -0950 0954 -0958 0970 -0981 0983 -0985 098C -098F 0990 -0993 09A8 -09AA 09B0 -09B2 -09B6 09B9 -09BC -09BE 09C4 -09C7 09C8 -09CB 09CD -09D7 -09DC 09DD -09DF 09E3 -09E6 09FA -0A02 -0A05 0A0A -0A0F 0A10 -0A13 0A28 -0A2A 0A30 -0A32 0A33 -0A35 0A36 -0A38 0A39 -0A3C -0A3E 0A42 -0A47 0A48 -0A4B 0A4D -0A59 0A5C -0A5E -0A66 0A74 -0A81 0A83 -0A85 0A8B -0A8D -0A8F 0A91 -0A93 0AA8 -0AAA 0AB0 -0AB2 0AB3 -0AB5 0AB9 -0ABC 0AC5 -0AC7 0AC9 -0ACB 0ACD -0AD0 -0AE0 -0AE6 0AEF -0B01 0B03 -0B05 0B0C -0B0F 0B10 -0B13 0B28 -0B2A 0B30 -0B32 0B33 -0B36 0B39 -0B3C 0B43 -0B47 0B48 -0B4B 0B4D -0B56 0B57 -0B5C 0B5D -0B5F 0B61 -0B66 0B70 -0B82 0B83 -0B85 0B8A -0B8E 0B90 -0B92 0B95 -0B99 0B9A -0B9C -0B9E 0B9F -0BA3 0BA4 -0BA8 0BAA -0BAE 0BB5 -0BB7 0BB9 -0BBE 0BC2 -0BC6 0BC8 -0BCA 0BCD -0BD7 -0BE7 0BF2 -0C01 0C03 -0C05 0C0C -0C0E 0C10 -0C12 0C28 -0C2A 0C33 -0C35 0C39 -0C3E 0C44 -0C46 0C48 -0C4A 0C4D -0C55 0C56 -0C60 0C61 -0C66 0C6F -0C82 0C83 -0C85 0C8C -0C8E 0C90 -0C92 0CA8 -0CAA 0CB3 -0CB5 0CB9 -0CBE 0CC4 -0CC6 0CC8 -0CCA 0CCD -0CD5 0CD6 -0CDE -0CE0 0CE1 -0CE6 0CEF -0D02 0D03 -0D05 0D0C -0D0E 0D10 -0D12 0D28 -0D2A 0D39 -0D3E 0D43 -0D46 0D48 -0D4A 0D4D -0D57 -0D60 0D61 -0D66 0D6F -0D82 0D83 -0D85 0D96 -0D9A 0DB1 -0DB3 0DBB -0DBD -0DC0 0DC6 -0DCA -0DCF 0DD4 -0DD6 -0DD8 0DDF -0DF2 0DF4 -0E01 0E3A -0E3F 0E5B -0E81 0E82 -0E84 -0E87 0E88 -0E8A -0E8D -0E94 0E97 -0E99 0E9F -0EA1 0EA3 -0EA5 -0EA7 -0EAA 0EAB -0EAD 0EB9 -0EBB 0EBD -0EC0 0EC4 -0EC6 -0EC8 0ECD -0ED0 0ED9 -0EDC 0EDD -0F00 0F47 -0F49 0F6A -0F71 0F8B -0F90 0F97 -0F99 0FBC -0FBE 0FCC -0FCF -1000 1021 -1023 1027 -1029 102A -102C 1032 -1036 1039 -1040 1059 -10A0 10C5 -10D0 10F8 -10FB -1100 1159 -115F 11A2 -11A8 11F9 -1200 1206 -1208 1246 -1248 -124A 124D -1250 1256 -1258 -125A 125D -1260 1286 -1288 -128A 128D -1290 12AE -12B0 -12B2 12B5 -12B8 12BE -12C0 -12C2 12C5 -12C8 12CE -12D0 12D6 -12D8 12EE -12F0 130E -1310 -1312 1315 -1318 131E -1320 1346 -1348 135A -1361 137C -13A0 13F4 -1401 1676 -1680 169C -16A0 16F0 -1700 170C -170E 1714 -1720 1736 -1740 1753 -1760 176C -176E 1770 -1772 1773 -1780 17DC -17E0 17E9 -1800 180D -1810 1819 -1820 1877 -1880 18A9 -1E00 1E9B -1EA0 1EF9 -1F00 1F15 -1F18 1F1D -1F20 1F45 -1F48 1F4D -1F50 1F57 -1F59 -1F5B -1F5D -1F5F 1F7D -1F80 1FB4 -1FB6 1FC4 -1FC6 1FD3 -1FD6 1FDB -1FDD 1FEF -1FF2 1FF4 -1FF6 1FFE -2000 200B -2010 2027 -202F 2052 -2057 -205F -2070 2071 -2074 208E -20A0 20B1 -20D0 20EA -2100 213A -213D 214B -2153 2183 -2190 23CE -2400 2426 -2440 244A -2460 24FE -2500 2613 -2616 2617 -2619 267D -2680 2689 -2701 2704 -2706 2709 -270C 2727 -2729 274B -274D -274F 2752 -2756 -2758 275E -2761 2794 -2798 27AF -27B1 27BE -27D0 27EB -27F0 2AFF -2E80 2E99 -2E9B 2EF3 -2F00 2FD5 -2FF0 2FFB -3000 303F -3041 3096 -3099 30FF -3105 312C -3131 318E -3190 31B7 -31F0 321C -3220 3243 -3251 327B -327F 32CB -32D0 32FE -3300 3376 -337B 33DD -33E0 33FE -3400 4DB5 -4E00 9FA5 -A000 A48C -A490 A4C6 -AC00 D7A3 -E000 FA2D -FA30 FA6A -FB00 FB06 -FB13 FB17 -FB1D FB36 -FB38 FB3C -FB3E -FB40 FB41 -FB43 FB44 -FB46 FBB1 -FBD3 FD3F -FD50 FD8F -FD92 FDC7 -FDF0 FDFC -FE00 FE0F -FE20 FE23 -FE30 FE46 -FE49 FE52 -FE54 FE66 -FE68 FE6B -FE70 FE74 -FE76 FEFC -FF01 FFBE -FFC2 FFC7 -FFCA FFCF -FFD2 FFD7 -FFDA FFDC -FFE0 FFE6 -FFE8 FFEE -FFFC FFFD -10300 1031E -10320 10323 -10330 1034A -10400 10425 -10428 1044D -1D000 1D0F5 -1D100 1D126 -1D12A 1D172 -1D17B 1D1DD -1D400 1D454 -1D456 1D49C -1D49E 1D49F -1D4A2 -1D4A5 1D4A6 -1D4A9 1D4AC -1D4AE 1D4B9 -1D4BB -1D4BD 1D4C0 -1D4C2 1D4C3 -1D4C5 1D505 -1D507 1D50A -1D50D 1D514 -1D516 1D51C -1D51E 1D539 -1D53B 1D53E -1D540 1D544 -1D546 -1D54A 1D550 -1D552 1D6A3 -1D6A8 1D7C9 -1D7CE 1D7FF -20000 2A6D6 -2F800 2FA1D -F0000 FFFFD -100000 10FFFD -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Ps.pl b/gnu/usr.bin/perl/lib/unicore/lib/Ps.pl deleted file mode 100644 index 0c0dd89a210..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Ps.pl +++ /dev/null @@ -1,77 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Ps} -# \p{Ps} (and fuzzy permutations) -# -# Meaning: General Category 'Ps' -# -return <<'END'; -0028 -005B -007B -0F3A -0F3C -169B -201A -201E -2045 -207D -208D -2329 -23B4 -2768 -276A -276C -276E -2770 -2772 -2774 -27E6 -27E8 -27EA -2983 -2985 -2987 -2989 -298B -298D -298F -2991 -2993 -2995 -2997 -29D8 -29DA -29FC -3008 -300A -300C -300E -3010 -3014 -3016 -3018 -301A -301D -FD3E -FE35 -FE37 -FE39 -FE3B -FE3D -FE3F -FE41 -FE43 -FE59 -FE5B -FE5D -FF08 -FF3B -FF5B -FF5F -FF62 -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Punct.pl b/gnu/usr.bin/perl/lib/unicore/lib/Punct.pl deleted file mode 100644 index ca68b6ab499..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Punct.pl +++ /dev/null @@ -1,96 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Punct} -# -# Meaning: [[:Punct:]] -# -return <<'END'; -0021 0023 -0025 002A -002C 002F -003A 003B -003F 0040 -005B 005D -005F -007B -007D -00A1 -00AB -00AD -00B7 -00BB -00BF -037E -0387 -055A 055F -0589 058A -05BE -05C0 -05C3 -05F3 05F4 -060C -061B -061F -066A 066D -06D4 -0700 070D -0964 0965 -0970 -0DF4 -0E4F -0E5A 0E5B -0F04 0F12 -0F3A 0F3D -0F85 -104A 104F -10FB -1361 1368 -166D 166E -169B 169C -16EB 16ED -1735 1736 -17D4 17D6 -17D8 17DA -1800 180A -2010 2027 -2030 2043 -2045 2051 -2057 -207D 207E -208D 208E -2329 232A -23B4 23B6 -2768 2775 -27E6 27EB -2983 2998 -29D8 29DB -29FC 29FD -3001 3003 -3008 3011 -3014 301F -3030 -303D -30A0 -30FB -FD3E FD3F -FE30 FE46 -FE49 FE52 -FE54 FE61 -FE63 -FE68 -FE6A FE6B -FF01 FF03 -FF05 FF0A -FF0C FF0F -FF1A FF1B -FF1F FF20 -FF3B FF3D -FF3F -FF5B -FF5D -FF5F FF65 -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Quotatio.pl b/gnu/usr.bin/perl/lib/unicore/lib/Quotatio.pl deleted file mode 100644 index 802e85a1f52..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Quotatio.pl +++ /dev/null @@ -1,24 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{QuotationMark} (and fuzzy permutations) -# -# Meaning: Extended property 'Quotation_Mark' -# -return <<'END'; -0022 Quotation_Mark -0027 Quotation_Mark -00AB Quotation_Mark -00BB Quotation_Mark -2018 201F Quotation_Mark -2039 203A Quotation_Mark -300C 300F Quotation_Mark -301D 301F Quotation_Mark -FE41 FE44 Quotation_Mark -FF02 Quotation_Mark -FF07 Quotation_Mark -FF62 FF63 Quotation_Mark -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Radical.pl b/gnu/usr.bin/perl/lib/unicore/lib/Radical.pl deleted file mode 100644 index 2b87cfe7929..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Radical.pl +++ /dev/null @@ -1,15 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Radical} (and fuzzy permutations) -# -# Meaning: Extended property 'Radical' -# -return <<'END'; -2E80 2E99 Radical -2E9B 2EF3 Radical -2F00 2FD5 Radical -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Runic.pl b/gnu/usr.bin/perl/lib/unicore/lib/Runic.pl deleted file mode 100644 index 01eef2b0964..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Runic.pl +++ /dev/null @@ -1,14 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Runic} (and fuzzy permutations) -# -# Meaning: Script 'RUNIC' -# -return <<'END'; -16A0 16EA RUNIC -16EE 16F0 RUNIC -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/S.pl b/gnu/usr.bin/perl/lib/unicore/lib/S.pl deleted file mode 100644 index a1ceed0442b..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/S.pl +++ /dev/null @@ -1,159 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{S} -# \p{S} (and fuzzy permutations) -# -# Meaning: Major Category 'S' -# -return <<'END'; -0024 -002B -003C 003E -005E -0060 -007C -007E -00A2 00A9 -00AC -00AE 00B1 -00B4 -00B6 -00B8 -00D7 -00F7 -02B9 02BA -02C2 02CF -02D2 02DF -02E5 02ED -0374 0375 -0384 0385 -03F6 -0482 -06E9 -06FD 06FE -09F2 09F3 -09FA -0B70 -0E3F -0F01 0F03 -0F13 0F17 -0F1A 0F1F -0F34 -0F36 -0F38 -0FBE 0FC5 -0FC7 0FCC -0FCF -17DB -1FBD -1FBF 1FC1 -1FCD 1FCF -1FDD 1FDF -1FED 1FEF -1FFD 1FFE -2044 -2052 -207A 207C -208A 208C -20A0 20B1 -2100 2101 -2103 2106 -2108 2109 -2114 -2116 2118 -211E 2123 -2125 -2127 -2129 -212E -2132 -213A -2140 2144 -214A 214B -2190 2328 -232B 23B3 -23B7 23CE -2400 2426 -2440 244A -249C 24E9 -2500 2613 -2616 2617 -2619 267D -2680 2689 -2701 2704 -2706 2709 -270C 2727 -2729 274B -274D -274F 2752 -2756 -2758 275E -2761 2767 -2794 -2798 27AF -27B1 27BE -27D0 27E5 -27F0 2982 -2999 29D7 -29DC 29FB -29FE 2AFF -2E80 2E99 -2E9B 2EF3 -2F00 2FD5 -2FF0 2FFB -3004 -3012 3013 -3020 -3036 3037 -303E 303F -309B 309C -3190 3191 -3196 319F -3200 321C -322A 3243 -3260 327B -327F -328A 32B0 -32C0 32CB -32D0 32FE -3300 3376 -337B 33DD -33E0 33FE -A490 A4C6 -FB29 -FDFC -FE62 -FE64 FE66 -FE69 -FF04 -FF0B -FF1C FF1E -FF3E -FF40 -FF5C -FF5E -FFE0 FFE6 -FFE8 FFEE -FFFC FFFD -1D000 1D0F5 -1D100 1D126 -1D12A 1D164 -1D16A 1D16C -1D183 1D184 -1D18C 1D1A9 -1D1AE 1D1DD -1D6C1 -1D6DB -1D6FB -1D715 -1D735 -1D74F -1D76F -1D789 -1D7A9 -1D7C3 -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Sc.pl b/gnu/usr.bin/perl/lib/unicore/lib/Sc.pl deleted file mode 100644 index 80d79b5d2f8..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Sc.pl +++ /dev/null @@ -1,24 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Sc} -# \p{Sc} (and fuzzy permutations) -# -# Meaning: General Category 'Sc' -# -return <<'END'; -0024 -00A2 00A5 -09F2 09F3 -0E3F -17DB -20A0 20B1 -FDFC -FE69 -FF04 -FFE0 FFE1 -FFE5 FFE6 -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Shavian.pl b/gnu/usr.bin/perl/lib/unicore/lib/Shavian.pl deleted file mode 100644 index a6e343651ca..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Shavian.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Shavian} (and fuzzy permutations) -# -# Meaning: Script 'SHAVIAN' -# -return <<'END'; -10450 1047F SHAVIAN -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Sinhala.pl b/gnu/usr.bin/perl/lib/unicore/lib/Sinhala.pl deleted file mode 100644 index 3288efe1fe7..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Sinhala.pl +++ /dev/null @@ -1,23 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Sinhala} (and fuzzy permutations) -# -# Meaning: Script 'SINHALA' -# -return <<'END'; -0D82 0D83 SINHALA -0D85 0D96 SINHALA -0D9A 0DB1 SINHALA -0DB3 0DBB SINHALA -0DBD SINHALA -0DC0 0DC6 SINHALA -0DCA SINHALA -0DCF 0DD4 SINHALA -0DD6 SINHALA -0DD8 0DDF SINHALA -0DF2 0DF3 SINHALA -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Sk.pl b/gnu/usr.bin/perl/lib/unicore/lib/Sk.pl deleted file mode 100644 index 19ff8b02686..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Sk.pl +++ /dev/null @@ -1,35 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Sk} -# \p{Sk} (and fuzzy permutations) -# -# Meaning: General Category 'Sk' -# -return <<'END'; -005E -0060 -00A8 -00AF -00B4 -00B8 -02B9 02BA -02C2 02CF -02D2 02DF -02E5 02ED -0374 0375 -0384 0385 -1FBD -1FBF 1FC1 -1FCD 1FCF -1FDD 1FDF -1FED 1FEF -1FFD 1FFE -309B 309C -FF3E -FF40 -FFE3 -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Sm.pl b/gnu/usr.bin/perl/lib/unicore/lib/Sm.pl deleted file mode 100644 index 8e55e4efe66..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Sm.pl +++ /dev/null @@ -1,71 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Sm} -# \p{Sm} (and fuzzy permutations) -# -# Meaning: General Category 'Sm' -# -return <<'END'; -002B -003C 003E -007C -007E -00AC -00B1 -00D7 -00F7 -03F6 -2044 -2052 -207A 207C -208A 208C -2140 2144 -214B -2190 2194 -219A 219B -21A0 -21A3 -21A6 -21AE -21CE 21CF -21D2 -21D4 -21F4 22FF -2308 230B -2320 2321 -237C -239B 23B3 -25B7 -25C1 -25F8 25FF -266F -27D0 27E5 -27F0 27FF -2900 2982 -2999 29D7 -29DC 29FB -29FE 2AFF -FB29 -FE62 -FE64 FE66 -FF0B -FF1C FF1E -FF5C -FF5E -FFE2 -FFE9 FFEC -1D6C1 -1D6DB -1D6FB -1D715 -1D735 -1D74F -1D76F -1D789 -1D7A9 -1D7C3 -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/So.pl b/gnu/usr.bin/perl/lib/unicore/lib/So.pl deleted file mode 100644 index 1ef7acc99cf..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/So.pl +++ /dev/null @@ -1,117 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{So} -# \p{So} (and fuzzy permutations) -# -# Meaning: General Category 'So' -# -return <<'END'; -00A6 00A7 -00A9 -00AE -00B0 -00B6 -0482 -06E9 -06FD 06FE -09FA -0B70 -0F01 0F03 -0F13 0F17 -0F1A 0F1F -0F34 -0F36 -0F38 -0FBE 0FC5 -0FC7 0FCC -0FCF -2100 2101 -2103 2106 -2108 2109 -2114 -2116 2118 -211E 2123 -2125 -2127 -2129 -212E -2132 -213A -214A -2195 2199 -219C 219F -21A1 21A2 -21A4 21A5 -21A7 21AD -21AF 21CD -21D0 21D1 -21D3 -21D5 21F3 -2300 2307 -230C 231F -2322 2328 -232B 237B -237D 239A -23B7 23CE -2400 2426 -2440 244A -249C 24E9 -2500 25B6 -25B8 25C0 -25C2 25F7 -2600 2613 -2616 2617 -2619 266E -2670 267D -2680 2689 -2701 2704 -2706 2709 -270C 2727 -2729 274B -274D -274F 2752 -2756 -2758 275E -2761 2767 -2794 -2798 27AF -27B1 27BE -2800 28FF -2E80 2E99 -2E9B 2EF3 -2F00 2FD5 -2FF0 2FFB -3004 -3012 3013 -3020 -3036 3037 -303E 303F -3190 3191 -3196 319F -3200 321C -322A 3243 -3260 327B -327F -328A 32B0 -32C0 32CB -32D0 32FE -3300 3376 -337B 33DD -33E0 33FE -A490 A4C6 -FFE4 -FFE8 -FFED FFEE -FFFC FFFD -1D000 1D0F5 -1D100 1D126 -1D12A 1D164 -1D16A 1D16C -1D183 1D184 -1D18C 1D1A9 -1D1AE 1D1DD -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/SoftDott.pl b/gnu/usr.bin/perl/lib/unicore/lib/SoftDott.pl deleted file mode 100644 index b36e6756572..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/SoftDott.pl +++ /dev/null @@ -1,19 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{SoftDotted} (and fuzzy permutations) -# -# Meaning: Extended property 'Soft_Dotted' -# -return <<'END'; -0069 006A Soft_Dotted -012F Soft_Dotted -0268 Soft_Dotted -0456 Soft_Dotted -0458 Soft_Dotted -1E2D Soft_Dotted -1ECB Soft_Dotted -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Space.pl b/gnu/usr.bin/perl/lib/unicore/lib/Space.pl deleted file mode 100644 index 868c88c5449..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Space.pl +++ /dev/null @@ -1,21 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Space} -# -# Meaning: [[:Space:]] -# -return <<'END'; -0009 000D -0020 -00A0 -1680 -2000 200B -2028 2029 -202F -205F -3000 -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/SpacePer.pl b/gnu/usr.bin/perl/lib/unicore/lib/SpacePer.pl deleted file mode 100644 index bf1cdcbbc15..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/SpacePer.pl +++ /dev/null @@ -1,23 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{SpacePerl} -# -# Meaning: \s -# -return <<'END'; -0009 000A -000C 000D -0020 -0085 -00A0 -1680 -2000 200B -2028 2029 -202F -205F -3000 -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Syriac.pl b/gnu/usr.bin/perl/lib/unicore/lib/Syriac.pl deleted file mode 100644 index d78a76db792..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Syriac.pl +++ /dev/null @@ -1,14 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Syriac} (and fuzzy permutations) -# -# Meaning: Script 'SYRIAC' -# -return <<'END'; -0710 072C SYRIAC -0730 074A SYRIAC -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Tagalog.pl b/gnu/usr.bin/perl/lib/unicore/lib/Tagalog.pl deleted file mode 100644 index 78ab346469a..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Tagalog.pl +++ /dev/null @@ -1,14 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Tagalog} (and fuzzy permutations) -# -# Meaning: Script 'TAGALOG' -# -return <<'END'; -1700 170C TAGALOG -170E 1714 TAGALOG -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Tagbanwa.pl b/gnu/usr.bin/perl/lib/unicore/lib/Tagbanwa.pl deleted file mode 100644 index a7ecbf2af6e..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Tagbanwa.pl +++ /dev/null @@ -1,15 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Tagbanwa} (and fuzzy permutations) -# -# Meaning: Script 'TAGBANWA' -# -return <<'END'; -1760 176C TAGBANWA -176E 1770 TAGBANWA -1772 1773 TAGBANWA -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/TaiLe.pl b/gnu/usr.bin/perl/lib/unicore/lib/TaiLe.pl deleted file mode 100644 index f2f4d9431dd..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/TaiLe.pl +++ /dev/null @@ -1,14 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{TaiLe} (and fuzzy permutations) -# -# Meaning: Script 'TAI_LE' -# -return <<'END'; -1950 196D TAI_LE -1970 1974 TAI_LE -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Tamil.pl b/gnu/usr.bin/perl/lib/unicore/lib/Tamil.pl deleted file mode 100644 index b9777a33d5e..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Tamil.pl +++ /dev/null @@ -1,28 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Tamil} (and fuzzy permutations) -# -# Meaning: Script 'TAMIL' -# -return <<'END'; -0B82 0B83 TAMIL -0B85 0B8A TAMIL -0B8E 0B90 TAMIL -0B92 0B95 TAMIL -0B99 0B9A TAMIL -0B9C TAMIL -0B9E 0B9F TAMIL -0BA3 0BA4 TAMIL -0BA8 0BAA TAMIL -0BAE 0BB5 TAMIL -0BB7 0BB9 TAMIL -0BBE 0BC2 TAMIL -0BC6 0BC8 TAMIL -0BCA 0BCD TAMIL -0BD7 TAMIL -0BE7 0BF2 TAMIL -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Telugu.pl b/gnu/usr.bin/perl/lib/unicore/lib/Telugu.pl deleted file mode 100644 index 1c161eb9e57..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Telugu.pl +++ /dev/null @@ -1,24 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Telugu} (and fuzzy permutations) -# -# Meaning: Script 'TELUGU' -# -return <<'END'; -0C01 0C03 TELUGU -0C05 0C0C TELUGU -0C0E 0C10 TELUGU -0C12 0C28 TELUGU -0C2A 0C33 TELUGU -0C35 0C39 TELUGU -0C3E 0C44 TELUGU -0C46 0C48 TELUGU -0C4A 0C4D TELUGU -0C55 0C56 TELUGU -0C60 0C61 TELUGU -0C66 0C6F TELUGU -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Terminal.pl b/gnu/usr.bin/perl/lib/unicore/lib/Terminal.pl deleted file mode 100644 index d7606867ce8..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Terminal.pl +++ /dev/null @@ -1,48 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{TerminalPunctuation} (and fuzzy permutations) -# -# Meaning: Extended property 'Terminal_Punctuation' -# -return <<'END'; -0021 Terminal_Punctuation -002C Terminal_Punctuation -002E Terminal_Punctuation -003A 003B Terminal_Punctuation -003F Terminal_Punctuation -037E Terminal_Punctuation -0387 Terminal_Punctuation -0589 Terminal_Punctuation -060C Terminal_Punctuation -061B Terminal_Punctuation -061F Terminal_Punctuation -06D4 Terminal_Punctuation -0700 070A Terminal_Punctuation -070C Terminal_Punctuation -0964 0965 Terminal_Punctuation -0E5A 0E5B Terminal_Punctuation -104A 104B Terminal_Punctuation -1361 1368 Terminal_Punctuation -166D 166E Terminal_Punctuation -16EB 16ED Terminal_Punctuation -17D4 17D6 Terminal_Punctuation -17DA Terminal_Punctuation -1802 1805 Terminal_Punctuation -1808 1809 Terminal_Punctuation -203C 203D Terminal_Punctuation -2048 2049 Terminal_Punctuation -3001 3002 Terminal_Punctuation -FE50 FE52 Terminal_Punctuation -FE54 FE57 Terminal_Punctuation -FF01 Terminal_Punctuation -FF0C Terminal_Punctuation -FF0E Terminal_Punctuation -FF1A FF1B Terminal_Punctuation -FF1F Terminal_Punctuation -FF61 Terminal_Punctuation -FF64 Terminal_Punctuation -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Thaana.pl b/gnu/usr.bin/perl/lib/unicore/lib/Thaana.pl deleted file mode 100644 index 9c2be21b40f..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Thaana.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Thaana} (and fuzzy permutations) -# -# Meaning: Script 'THAANA' -# -return <<'END'; -0780 07B1 THAANA -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Thai.pl b/gnu/usr.bin/perl/lib/unicore/lib/Thai.pl deleted file mode 100644 index b09ced7a7ac..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Thai.pl +++ /dev/null @@ -1,15 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Thai} (and fuzzy permutations) -# -# Meaning: Script 'THAI' -# -return <<'END'; -0E01 0E3A THAI -0E40 0E4E THAI -0E50 0E59 THAI -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Tibetan.pl b/gnu/usr.bin/perl/lib/unicore/lib/Tibetan.pl deleted file mode 100644 index cdf7d5b2015..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Tibetan.pl +++ /dev/null @@ -1,25 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Tibetan} (and fuzzy permutations) -# -# Meaning: Script 'TIBETAN' -# -return <<'END'; -0F00 TIBETAN -0F18 0F19 TIBETAN -0F20 0F33 TIBETAN -0F35 TIBETAN -0F37 TIBETAN -0F39 TIBETAN -0F40 0F47 TIBETAN -0F49 0F6A TIBETAN -0F71 0F84 TIBETAN -0F86 0F8B TIBETAN -0F90 0F97 TIBETAN -0F99 0FBC TIBETAN -0FC6 TIBETAN -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Title.pl b/gnu/usr.bin/perl/lib/unicore/lib/Title.pl deleted file mode 100644 index a1d03207447..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Title.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Title} -# -# Meaning: [[:Title:]] -# -return <<'END'; -01C5 -01C8 -01CB -01F2 -1F88 1F8F -1F98 1F9F -1FA8 1FAF -1FBC -1FCC -1FFC -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Ugaritic.pl b/gnu/usr.bin/perl/lib/unicore/lib/Ugaritic.pl deleted file mode 100644 index d0041f4bd2b..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Ugaritic.pl +++ /dev/null @@ -1,13 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Ugaritic} (and fuzzy permutations) -# -# Meaning: Script 'UGARITIC' -# -return <<'END'; -10380 1039D UGARITIC -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/UnifiedI.pl b/gnu/usr.bin/perl/lib/unicore/lib/UnifiedI.pl deleted file mode 100644 index 5e4019a7069..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/UnifiedI.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{UnifiedIdeograph} (and fuzzy permutations) -# -# Meaning: Extended property 'Unified_Ideograph' -# -return <<'END'; -3400 4DB5 Unified_Ideograph -4E00 9FA5 Unified_Ideograph -FA0E FA0F Unified_Ideograph -FA11 Unified_Ideograph -FA13 FA14 Unified_Ideograph -FA1F Unified_Ideograph -FA21 Unified_Ideograph -FA23 FA24 Unified_Ideograph -FA27 FA29 Unified_Ideograph -20000 2A6D6 Unified_Ideograph -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Upper.pl b/gnu/usr.bin/perl/lib/unicore/lib/Upper.pl deleted file mode 100644 index d3350db9b94..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Upper.pl +++ /dev/null @@ -1,431 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Upper} -# -# Meaning: [[:Upper:]] -# -return <<'END'; -0041 005A -00C0 00D6 -00D8 00DE -0100 -0102 -0104 -0106 -0108 -010A -010C -010E -0110 -0112 -0114 -0116 -0118 -011A -011C -011E -0120 -0122 -0124 -0126 -0128 -012A -012C -012E -0130 -0132 -0134 -0136 -0139 -013B -013D -013F -0141 -0143 -0145 -0147 -014A -014C -014E -0150 -0152 -0154 -0156 -0158 -015A -015C -015E -0160 -0162 -0164 -0166 -0168 -016A -016C -016E -0170 -0172 -0174 -0176 -0178 0179 -017B -017D -0181 0182 -0184 -0186 0187 -0189 018B -018E 0191 -0193 0194 -0196 0198 -019C 019D -019F 01A0 -01A2 -01A4 -01A6 01A7 -01A9 -01AC -01AE 01AF -01B1 01B3 -01B5 -01B7 01B8 -01BC -01C4 -01C7 -01CA -01CD -01CF -01D1 -01D3 -01D5 -01D7 -01D9 -01DB -01DE -01E0 -01E2 -01E4 -01E6 -01E8 -01EA -01EC -01EE -01F1 -01F4 -01F6 01F8 -01FA -01FC -01FE -0200 -0202 -0204 -0206 -0208 -020A -020C -020E -0210 -0212 -0214 -0216 -0218 -021A -021C -021E -0220 -0222 -0224 -0226 -0228 -022A -022C -022E -0230 -0232 -0386 -0388 038A -038C -038E 038F -0391 03A1 -03A3 03AB -03D2 03D4 -03D8 -03DA -03DC -03DE -03E0 -03E2 -03E4 -03E6 -03E8 -03EA -03EC -03EE -03F4 -0400 042F -0460 -0462 -0464 -0466 -0468 -046A -046C -046E -0470 -0472 -0474 -0476 -0478 -047A -047C -047E -0480 -048A -048C -048E -0490 -0492 -0494 -0496 -0498 -049A -049C -049E -04A0 -04A2 -04A4 -04A6 -04A8 -04AA -04AC -04AE -04B0 -04B2 -04B4 -04B6 -04B8 -04BA -04BC -04BE -04C0 04C1 -04C3 -04C5 -04C7 -04C9 -04CB -04CD -04D0 -04D2 -04D4 -04D6 -04D8 -04DA -04DC -04DE -04E0 -04E2 -04E4 -04E6 -04E8 -04EA -04EC -04EE -04F0 -04F2 -04F4 -04F8 -0500 -0502 -0504 -0506 -0508 -050A -050C -050E -0531 0556 -10A0 10C5 -1E00 -1E02 -1E04 -1E06 -1E08 -1E0A -1E0C -1E0E -1E10 -1E12 -1E14 -1E16 -1E18 -1E1A -1E1C -1E1E -1E20 -1E22 -1E24 -1E26 -1E28 -1E2A -1E2C -1E2E -1E30 -1E32 -1E34 -1E36 -1E38 -1E3A -1E3C -1E3E -1E40 -1E42 -1E44 -1E46 -1E48 -1E4A -1E4C -1E4E -1E50 -1E52 -1E54 -1E56 -1E58 -1E5A -1E5C -1E5E -1E60 -1E62 -1E64 -1E66 -1E68 -1E6A -1E6C -1E6E -1E70 -1E72 -1E74 -1E76 -1E78 -1E7A -1E7C -1E7E -1E80 -1E82 -1E84 -1E86 -1E88 -1E8A -1E8C -1E8E -1E90 -1E92 -1E94 -1EA0 -1EA2 -1EA4 -1EA6 -1EA8 -1EAA -1EAC -1EAE -1EB0 -1EB2 -1EB4 -1EB6 -1EB8 -1EBA -1EBC -1EBE -1EC0 -1EC2 -1EC4 -1EC6 -1EC8 -1ECA -1ECC -1ECE -1ED0 -1ED2 -1ED4 -1ED6 -1ED8 -1EDA -1EDC -1EDE -1EE0 -1EE2 -1EE4 -1EE6 -1EE8 -1EEA -1EEC -1EEE -1EF0 -1EF2 -1EF4 -1EF6 -1EF8 -1F08 1F0F -1F18 1F1D -1F28 1F2F -1F38 1F3F -1F48 1F4D -1F59 -1F5B -1F5D -1F5F -1F68 1F6F -1FB8 1FBB -1FC8 1FCB -1FD8 1FDB -1FE8 1FEC -1FF8 1FFB -2102 -2107 -210B 210D -2110 2112 -2115 -2119 211D -2124 -2126 -2128 -212A 212D -2130 2131 -2133 -213E 213F -2145 -FF21 FF3A -10400 10425 -1D400 1D419 -1D434 1D44D -1D468 1D481 -1D49C -1D49E 1D49F -1D4A2 -1D4A5 1D4A6 -1D4A9 1D4AC -1D4AE 1D4B5 -1D4D0 1D4E9 -1D504 1D505 -1D507 1D50A -1D50D 1D514 -1D516 1D51C -1D538 1D539 -1D53B 1D53E -1D540 1D544 -1D546 -1D54A 1D550 -1D56C 1D585 -1D5A0 1D5B9 -1D5D4 1D5ED -1D608 1D621 -1D63C 1D655 -1D670 1D689 -1D6A8 1D6C0 -1D6E2 1D6FA -1D71C 1D734 -1D756 1D76E -1D790 1D7A8 -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Uppercas.pl b/gnu/usr.bin/perl/lib/unicore/lib/Uppercas.pl deleted file mode 100644 index 7f39ab9ee39..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Uppercas.pl +++ /dev/null @@ -1,433 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Uppercase} (and fuzzy permutations) -# -# Meaning: [\p{Lu}\p{Other_Uppercase}] -# -return <<'END'; -0041 005A -00C0 00D6 -00D8 00DE -0100 -0102 -0104 -0106 -0108 -010A -010C -010E -0110 -0112 -0114 -0116 -0118 -011A -011C -011E -0120 -0122 -0124 -0126 -0128 -012A -012C -012E -0130 -0132 -0134 -0136 -0139 -013B -013D -013F -0141 -0143 -0145 -0147 -014A -014C -014E -0150 -0152 -0154 -0156 -0158 -015A -015C -015E -0160 -0162 -0164 -0166 -0168 -016A -016C -016E -0170 -0172 -0174 -0176 -0178 0179 -017B -017D -0181 0182 -0184 -0186 0187 -0189 018B -018E 0191 -0193 0194 -0196 0198 -019C 019D -019F 01A0 -01A2 -01A4 -01A6 01A7 -01A9 -01AC -01AE 01AF -01B1 01B3 -01B5 -01B7 01B8 -01BC -01C4 -01C7 -01CA -01CD -01CF -01D1 -01D3 -01D5 -01D7 -01D9 -01DB -01DE -01E0 -01E2 -01E4 -01E6 -01E8 -01EA -01EC -01EE -01F1 -01F4 -01F6 01F8 -01FA -01FC -01FE -0200 -0202 -0204 -0206 -0208 -020A -020C -020E -0210 -0212 -0214 -0216 -0218 -021A -021C -021E -0220 -0222 -0224 -0226 -0228 -022A -022C -022E -0230 -0232 -0386 -0388 038A -038C -038E 038F -0391 03A1 -03A3 03AB -03D2 03D4 -03D8 -03DA -03DC -03DE -03E0 -03E2 -03E4 -03E6 -03E8 -03EA -03EC -03EE -03F4 -0400 042F -0460 -0462 -0464 -0466 -0468 -046A -046C -046E -0470 -0472 -0474 -0476 -0478 -047A -047C -047E -0480 -048A -048C -048E -0490 -0492 -0494 -0496 -0498 -049A -049C -049E -04A0 -04A2 -04A4 -04A6 -04A8 -04AA -04AC -04AE -04B0 -04B2 -04B4 -04B6 -04B8 -04BA -04BC -04BE -04C0 04C1 -04C3 -04C5 -04C7 -04C9 -04CB -04CD -04D0 -04D2 -04D4 -04D6 -04D8 -04DA -04DC -04DE -04E0 -04E2 -04E4 -04E6 -04E8 -04EA -04EC -04EE -04F0 -04F2 -04F4 -04F8 -0500 -0502 -0504 -0506 -0508 -050A -050C -050E -0531 0556 -10A0 10C5 -1E00 -1E02 -1E04 -1E06 -1E08 -1E0A -1E0C -1E0E -1E10 -1E12 -1E14 -1E16 -1E18 -1E1A -1E1C -1E1E -1E20 -1E22 -1E24 -1E26 -1E28 -1E2A -1E2C -1E2E -1E30 -1E32 -1E34 -1E36 -1E38 -1E3A -1E3C -1E3E -1E40 -1E42 -1E44 -1E46 -1E48 -1E4A -1E4C -1E4E -1E50 -1E52 -1E54 -1E56 -1E58 -1E5A -1E5C -1E5E -1E60 -1E62 -1E64 -1E66 -1E68 -1E6A -1E6C -1E6E -1E70 -1E72 -1E74 -1E76 -1E78 -1E7A -1E7C -1E7E -1E80 -1E82 -1E84 -1E86 -1E88 -1E8A -1E8C -1E8E -1E90 -1E92 -1E94 -1EA0 -1EA2 -1EA4 -1EA6 -1EA8 -1EAA -1EAC -1EAE -1EB0 -1EB2 -1EB4 -1EB6 -1EB8 -1EBA -1EBC -1EBE -1EC0 -1EC2 -1EC4 -1EC6 -1EC8 -1ECA -1ECC -1ECE -1ED0 -1ED2 -1ED4 -1ED6 -1ED8 -1EDA -1EDC -1EDE -1EE0 -1EE2 -1EE4 -1EE6 -1EE8 -1EEA -1EEC -1EEE -1EF0 -1EF2 -1EF4 -1EF6 -1EF8 -1F08 1F0F -1F18 1F1D -1F28 1F2F -1F38 1F3F -1F48 1F4D -1F59 -1F5B -1F5D -1F5F -1F68 1F6F -1FB8 1FBB -1FC8 1FCB -1FD8 1FDB -1FE8 1FEC -1FF8 1FFB -2102 -2107 -210B 210D -2110 2112 -2115 -2119 211D -2124 -2126 -2128 -212A 212D -2130 2131 -2133 -213E 213F -2145 -2160 216F -24B6 24CF -FF21 FF3A -10400 10425 -1D400 1D419 -1D434 1D44D -1D468 1D481 -1D49C -1D49E 1D49F -1D4A2 -1D4A5 1D4A6 -1D4A9 1D4AC -1D4AE 1D4B5 -1D4D0 1D4E9 -1D504 1D505 -1D507 1D50A -1D50D 1D514 -1D516 1D51C -1D538 1D539 -1D53B 1D53E -1D540 1D544 -1D546 -1D54A 1D550 -1D56C 1D585 -1D5A0 1D5B9 -1D5D4 1D5ED -1D608 1D621 -1D63C 1D655 -1D670 1D689 -1D6A8 1D6C0 -1D6E2 1D6FA -1D71C 1D734 -1D756 1D76E -1D790 1D7A8 -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/WhiteSpa.pl b/gnu/usr.bin/perl/lib/unicore/lib/WhiteSpa.pl deleted file mode 100644 index 8f05124ec30..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/WhiteSpa.pl +++ /dev/null @@ -1,21 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{WhiteSpace} (and fuzzy permutations) -# -# Meaning: Extended property 'White_Space' -# -return <<'END'; -0009 000D White_Space -0020 White_Space -0085 White_Space -00A0 White_Space -1680 White_Space -2000 200A White_Space -2028 2029 White_Space -202F White_Space -3000 White_Space -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Word.pl b/gnu/usr.bin/perl/lib/unicore/lib/Word.pl deleted file mode 100644 index fcd8aa0f805..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Word.pl +++ /dev/null @@ -1,424 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Word} -# -# Meaning: [[:Word:]] -# -return <<'END'; -0030 0039 -0041 005A -005F -0061 007A -00AA -00B2 00B3 -00B5 -00B9 00BA -00BC 00BE -00C0 00D6 -00D8 00F6 -00F8 0220 -0222 0233 -0250 02AD -02B0 02B8 -02BB 02C1 -02D0 02D1 -02E0 02E4 -02EE -0300 034F -0360 036F -037A -0386 -0388 038A -038C -038E 03A1 -03A3 03CE -03D0 03F5 -0400 0481 -0483 0486 -0488 04CE -04D0 04F5 -04F8 04F9 -0500 050F -0531 0556 -0559 -0561 0587 -0591 05A1 -05A3 05B9 -05BB 05BD -05BF -05C1 05C2 -05C4 -05D0 05EA -05F0 05F2 -0621 063A -0640 0655 -0660 0669 -066E 06D3 -06D5 06DC -06DE 06E8 -06EA 06ED -06F0 06FC -0710 072C -0730 074A -0780 07B1 -0901 0903 -0905 0939 -093C 094D -0950 0954 -0958 0963 -0966 096F -0981 0983 -0985 098C -098F 0990 -0993 09A8 -09AA 09B0 -09B2 -09B6 09B9 -09BC -09BE 09C4 -09C7 09C8 -09CB 09CD -09D7 -09DC 09DD -09DF 09E3 -09E6 09F1 -09F4 09F9 -0A02 -0A05 0A0A -0A0F 0A10 -0A13 0A28 -0A2A 0A30 -0A32 0A33 -0A35 0A36 -0A38 0A39 -0A3C -0A3E 0A42 -0A47 0A48 -0A4B 0A4D -0A59 0A5C -0A5E -0A66 0A74 -0A81 0A83 -0A85 0A8B -0A8D -0A8F 0A91 -0A93 0AA8 -0AAA 0AB0 -0AB2 0AB3 -0AB5 0AB9 -0ABC 0AC5 -0AC7 0AC9 -0ACB 0ACD -0AD0 -0AE0 -0AE6 0AEF -0B01 0B03 -0B05 0B0C -0B0F 0B10 -0B13 0B28 -0B2A 0B30 -0B32 0B33 -0B36 0B39 -0B3C 0B43 -0B47 0B48 -0B4B 0B4D -0B56 0B57 -0B5C 0B5D -0B5F 0B61 -0B66 0B6F -0B82 0B83 -0B85 0B8A -0B8E 0B90 -0B92 0B95 -0B99 0B9A -0B9C -0B9E 0B9F -0BA3 0BA4 -0BA8 0BAA -0BAE 0BB5 -0BB7 0BB9 -0BBE 0BC2 -0BC6 0BC8 -0BCA 0BCD -0BD7 -0BE7 0BF2 -0C01 0C03 -0C05 0C0C -0C0E 0C10 -0C12 0C28 -0C2A 0C33 -0C35 0C39 -0C3E 0C44 -0C46 0C48 -0C4A 0C4D -0C55 0C56 -0C60 0C61 -0C66 0C6F -0C82 0C83 -0C85 0C8C -0C8E 0C90 -0C92 0CA8 -0CAA 0CB3 -0CB5 0CB9 -0CBE 0CC4 -0CC6 0CC8 -0CCA 0CCD -0CD5 0CD6 -0CDE -0CE0 0CE1 -0CE6 0CEF -0D02 0D03 -0D05 0D0C -0D0E 0D10 -0D12 0D28 -0D2A 0D39 -0D3E 0D43 -0D46 0D48 -0D4A 0D4D -0D57 -0D60 0D61 -0D66 0D6F -0D82 0D83 -0D85 0D96 -0D9A 0DB1 -0DB3 0DBB -0DBD -0DC0 0DC6 -0DCA -0DCF 0DD4 -0DD6 -0DD8 0DDF -0DF2 0DF3 -0E01 0E3A -0E40 0E4E -0E50 0E59 -0E81 0E82 -0E84 -0E87 0E88 -0E8A -0E8D -0E94 0E97 -0E99 0E9F -0EA1 0EA3 -0EA5 -0EA7 -0EAA 0EAB -0EAD 0EB9 -0EBB 0EBD -0EC0 0EC4 -0EC6 -0EC8 0ECD -0ED0 0ED9 -0EDC 0EDD -0F00 -0F18 0F19 -0F20 0F33 -0F35 -0F37 -0F39 -0F3E 0F47 -0F49 0F6A -0F71 0F84 -0F86 0F8B -0F90 0F97 -0F99 0FBC -0FC6 -1000 1021 -1023 1027 -1029 102A -102C 1032 -1036 1039 -1040 1049 -1050 1059 -10A0 10C5 -10D0 10F8 -1100 1159 -115F 11A2 -11A8 11F9 -1200 1206 -1208 1246 -1248 -124A 124D -1250 1256 -1258 -125A 125D -1260 1286 -1288 -128A 128D -1290 12AE -12B0 -12B2 12B5 -12B8 12BE -12C0 -12C2 12C5 -12C8 12CE -12D0 12D6 -12D8 12EE -12F0 130E -1310 -1312 1315 -1318 131E -1320 1346 -1348 135A -1369 137C -13A0 13F4 -1401 166C -166F 1676 -1681 169A -16A0 16EA -16EE 16F0 -1700 170C -170E 1714 -1720 1734 -1740 1753 -1760 176C -176E 1770 -1772 1773 -1780 17D3 -17D7 -17DC -17E0 17E9 -180B 180D -1810 1819 -1820 1877 -1880 18A9 -1E00 1E9B -1EA0 1EF9 -1F00 1F15 -1F18 1F1D -1F20 1F45 -1F48 1F4D -1F50 1F57 -1F59 -1F5B -1F5D -1F5F 1F7D -1F80 1FB4 -1FB6 1FBC -1FBE -1FC2 1FC4 -1FC6 1FCC -1FD0 1FD3 -1FD6 1FDB -1FE0 1FEC -1FF2 1FF4 -1FF6 1FFC -2070 2071 -2074 2079 -207F 2089 -20D0 20EA -2102 -2107 -210A 2113 -2115 -2119 211D -2124 -2126 -2128 -212A 212D -212F 2131 -2133 2139 -213D 213F -2145 2149 -2153 2183 -2460 249B -24EA 24FE -2776 2793 -3005 3007 -3021 302F -3031 3035 -3038 303C -3041 3096 -3099 309A -309D 309F -30A1 30FA -30FC 30FF -3105 312C -3131 318E -3192 3195 -31A0 31B7 -31F0 31FF -3220 3229 -3251 325F -3280 3289 -32B1 32BF -3400 4DB5 -4E00 9FA5 -A000 A48C -AC00 D7A3 -F900 FA2D -FA30 FA6A -FB00 FB06 -FB13 FB17 -FB1D FB28 -FB2A FB36 -FB38 FB3C -FB3E -FB40 FB41 -FB43 FB44 -FB46 FBB1 -FBD3 FD3D -FD50 FD8F -FD92 FDC7 -FDF0 FDFB -FE00 FE0F -FE20 FE23 -FE70 FE74 -FE76 FEFC -FF10 FF19 -FF21 FF3A -FF41 FF5A -FF66 FFBE -FFC2 FFC7 -FFCA FFCF -FFD2 FFD7 -FFDA FFDC -10300 1031E -10320 10323 -10330 1034A -10400 10425 -10428 1044D -1D165 1D169 -1D16D 1D172 -1D17B 1D182 -1D185 1D18B -1D1AA 1D1AD -1D400 1D454 -1D456 1D49C -1D49E 1D49F -1D4A2 -1D4A5 1D4A6 -1D4A9 1D4AC -1D4AE 1D4B9 -1D4BB -1D4BD 1D4C0 -1D4C2 1D4C3 -1D4C5 1D505 -1D507 1D50A -1D50D 1D514 -1D516 1D51C -1D51E 1D539 -1D53B 1D53E -1D540 1D544 -1D546 -1D54A 1D550 -1D552 1D6A3 -1D6A8 1D6C0 -1D6C2 1D6DA -1D6DC 1D6FA -1D6FC 1D714 -1D716 1D734 -1D736 1D74E -1D750 1D76E -1D770 1D788 -1D78A 1D7A8 -1D7AA 1D7C2 -1D7C4 1D7C9 -1D7CE 1D7FF -20000 2A6D6 -2F800 2FA1D -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/XDigit.pl b/gnu/usr.bin/perl/lib/unicore/lib/XDigit.pl deleted file mode 100644 index 6fe95d5c1ed..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/XDigit.pl +++ /dev/null @@ -1,15 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{XDigit} -# -# Meaning: [[:XDigit:]] -# -return <<'END'; -0030 0039 -0041 0046 -0061 0066 -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Yi.pl b/gnu/usr.bin/perl/lib/unicore/lib/Yi.pl deleted file mode 100644 index eb7131e801a..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Yi.pl +++ /dev/null @@ -1,18 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Yi} (and fuzzy permutations) -# -# Meaning: Script 'YI' -# -return <<'END'; -A000 A48C YI -A490 A4A1 YI -A4A4 A4B3 YI -A4B5 A4C0 YI -A4C2 A4C4 YI -A4C6 YI -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Z.pl b/gnu/usr.bin/perl/lib/unicore/lib/Z.pl deleted file mode 100644 index 751327e6922..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Z.pl +++ /dev/null @@ -1,21 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Z} -# \p{Z} (and fuzzy permutations) -# -# Meaning: Major Category 'Z' -# -return <<'END'; -0020 -00A0 -1680 -2000 200B -2028 2029 -202F -205F -3000 -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Zl.pl b/gnu/usr.bin/perl/lib/unicore/lib/Zl.pl deleted file mode 100644 index db5580deb4f..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Zl.pl +++ /dev/null @@ -1,14 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Zl} -# \p{Zl} (and fuzzy permutations) -# -# Meaning: General Category 'Zl' -# -return <<'END'; -2028 -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Zp.pl b/gnu/usr.bin/perl/lib/unicore/lib/Zp.pl deleted file mode 100644 index f7a4eb62a3b..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Zp.pl +++ /dev/null @@ -1,14 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Zp} -# \p{Zp} (and fuzzy permutations) -# -# Meaning: General Category 'Zp' -# -return <<'END'; -2029 -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/Zs.pl b/gnu/usr.bin/perl/lib/unicore/lib/Zs.pl deleted file mode 100644 index 1c1b467a570..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/Zs.pl +++ /dev/null @@ -1,20 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{Zs} -# \p{Zs} (and fuzzy permutations) -# -# Meaning: General Category 'Zs' -# -return <<'END'; -0020 -00A0 -1680 -2000 200B -202F -205F -3000 -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/_CanonDC.pl b/gnu/usr.bin/perl/lib/unicore/lib/_CanonDC.pl deleted file mode 100644 index 3d627e7ed21..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/_CanonDC.pl +++ /dev/null @@ -1,16 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{_CanonDCIJ} -# -# Meaning: (for internal casefolding use) -# -return <<'END'; -0069 006A -012F -1E2D -1ECB -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/_CaseIgn.pl b/gnu/usr.bin/perl/lib/unicore/lib/_CaseIgn.pl deleted file mode 100644 index dafa4a668f1..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/_CaseIgn.pl +++ /dev/null @@ -1,118 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{_CaseIgnorable} -# -# Meaning: (for internal casefolding use) -# -return <<'END'; -00AD -0300 034F -0360 036F -0483 0486 -0591 05A1 -05A3 05B9 -05BB 05BD -05BF -05C1 05C2 -05C4 -064B 0655 -0670 -06D6 06DC -06DF 06E4 -06E7 06E8 -06EA 06ED -0711 -0730 074A -07A6 07B0 -0901 0902 -093C -0941 0948 -094D -0951 0954 -0962 0963 -0981 -09BC -09C1 09C4 -09CD -09E2 09E3 -0A02 -0A3C -0A41 0A42 -0A47 0A48 -0A4B 0A4D -0A70 0A71 -0A81 0A82 -0ABC -0AC1 0AC5 -0AC7 0AC8 -0ACD -0B01 -0B3C -0B3F -0B41 0B43 -0B4D -0B56 -0B82 -0BC0 -0BCD -0C3E 0C40 -0C46 0C48 -0C4A 0C4D -0C55 0C56 -0CBF -0CC6 -0CCC 0CCD -0D41 0D43 -0D4D -0DCA -0DD2 0DD4 -0DD6 -0E31 -0E34 0E3A -0E47 0E4E -0EB1 -0EB4 0EB9 -0EBB 0EBC -0EC8 0ECD -0F18 0F19 -0F35 -0F37 -0F39 -0F71 0F7E -0F80 0F84 -0F86 0F87 -0F90 0F97 -0F99 0FBC -0FC6 -102D 1030 -1032 -1036 1037 -1039 -1058 1059 -1712 1714 -1732 1734 -1752 1753 -1772 1773 -17B7 17BD -17C6 -17C9 17D3 -180B 180D -18A9 -2010 -20D0 20DC -20E1 -20E5 20EA -302A 302F -3099 309A -FB1E -FE00 FE0F -FE20 FE23 -1D167 1D169 -1D17B 1D182 -1D185 1D18B -1D1AA 1D1AD -END diff --git a/gnu/usr.bin/perl/lib/unicore/lib/_CombAbo.pl b/gnu/usr.bin/perl/lib/unicore/lib/_CombAbo.pl deleted file mode 100644 index de2c8e46ab7..00000000000 --- a/gnu/usr.bin/perl/lib/unicore/lib/_CombAbo.pl +++ /dev/null @@ -1,54 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by ./mktables from e.g. UnicodeData.txt. -# Any changes made here will be lost! - -# -# This file supports: -# \p{_CombAbove} -# -# Meaning: (for internal casefolding use) -# -return <<'END'; -0300 0314 -033D 0344 -0346 -034A 034C -0363 036F -0483 0486 -0592 0595 -0597 0599 -059C 05A1 -05A8 05A9 -05AB 05AC -05AF -05C4 -0653 0654 -06D6 06DC -06DF 06E2 -06E4 -06E7 06E8 -06EB 06EC -0730 -0732 0733 -0735 0736 -073A -073D -073F 0741 -0743 -0745 -0747 -0749 074A -0951 -0953 0954 -0F82 0F83 -0F86 0F87 -20D0 20D1 -20D4 20D7 -20DB 20DC -20E1 -20E7 -20E9 -FE20 FE23 -1D185 1D189 -1D1AA 1D1AD -END diff --git a/gnu/usr.bin/perl/lib/utf8.t b/gnu/usr.bin/perl/lib/utf8.t index 33cd5966af5..576d90e5a81 100644 --- a/gnu/usr.bin/perl/lib/utf8.t +++ b/gnu/usr.bin/perl/lib/utf8.t @@ -37,7 +37,7 @@ no utf8; # Ironic, no? # # -plan tests => 143; +plan tests => 145; { # bug id 20001009.001 @@ -409,3 +409,19 @@ SKIP: { ok( utf8::is_utf8($b), " utf8::is_utf8 beyond"); # $b stays in UTF-8. ok( utf8::is_utf8($c), " utf8::is_utf8 unicode"); } + +{ + eval {utf8::encode("£")}; + like($@, qr/^Modification of a read-only value attempted/, + "utf8::encode should refuse to touch read-only values"); +} + +{ + my $a = "456\xb6"; + utf8::upgrade($a); + + my $b = "123456\xb6"; + $b =~ s/^...//; + utf8::upgrade($b); + is($b, $a, "utf8::upgrade OffsetOK"); +} diff --git a/gnu/usr.bin/perl/mg.c b/gnu/usr.bin/perl/mg.c index 6ee5f571799..3f2b191e00f 100644 --- a/gnu/usr.bin/perl/mg.c +++ b/gnu/usr.bin/perl/mg.c @@ -1,7 +1,7 @@ /* mg.c * * Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - * 2000, 2001, 2002, 2003, by Larry Wall and others + * 2000, 2001, 2002, 2003, 2004, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -643,8 +643,10 @@ Perl_magic_get(pTHX_ SV *sv, MAGIC *mg) sv_setsv(sv, &PL_sv_undef); break; case '\017': /* ^O & ^OPEN */ - if (*(mg->mg_ptr+1) == '\0') + if (*(mg->mg_ptr+1) == '\0') { sv_setpv(sv, PL_osname); + SvTAINTED_off(sv); + } else if (strEQ(mg->mg_ptr, "\017PEN")) { if (!PL_compiling.cop_io) sv_setsv(sv, &PL_sv_undef); @@ -1934,14 +1936,14 @@ Perl_magic_killbackrefs(pTHX_ SV *sv, MAGIC *mg) SV **svp = AvARRAY(av); I32 i = AvFILLp(av); while (i >= 0) { - if (svp[i] && svp[i] != &PL_sv_undef) { + if (svp[i]) { if (!SvWEAKREF(svp[i])) Perl_croak(aTHX_ "panic: magic_killbackrefs"); /* XXX Should we check that it hasn't changed? */ SvRV(svp[i]) = 0; (void)SvOK_off(svp[i]); SvWEAKREF_off(svp[i]); - svp[i] = &PL_sv_undef; + svp[i] = Nullsv; } i--; } @@ -2096,12 +2098,14 @@ Perl_magic_set(pTHX_ SV *sv, MAGIC *mg) break; case '\017': /* ^O */ if (*(mg->mg_ptr+1) == '\0') { - if (PL_osname) + if (PL_osname) { Safefree(PL_osname); - if (SvOK(sv)) - PL_osname = savepv(SvPV(sv,len)); - else PL_osname = Nullch; + } + if (SvOK(sv)) { + TAINT_PROPER("assigning to $^O"); + PL_osname = savepv(SvPV(sv,len)); + } } else if (strEQ(mg->mg_ptr, "\017PEN")) { if (!PL_compiling.cop_io) diff --git a/gnu/usr.bin/perl/op.c b/gnu/usr.bin/perl/op.c index 25e7f8961d7..b4ded2b7288 100644 --- a/gnu/usr.bin/perl/op.c +++ b/gnu/usr.bin/perl/op.c @@ -1,7 +1,7 @@ /* op.c * * Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - * 2000, 2001, 2002, 2003, by Larry Wall and others + * 2000, 2001, 2002, 2003, 2004, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -351,17 +351,20 @@ Perl_op_clear(pTHX_ OP *o) case OP_GVSV: case OP_GV: case OP_AELEMFAST: + if (! (o->op_type == OP_AELEMFAST && o->op_flags & OPf_SPECIAL)) { + /* not an OP_PADAV replacement */ #ifdef USE_ITHREADS - if (cPADOPo->op_padix > 0) { - /* No GvIN_PAD_off(cGVOPo_gv) here, because other references - * may still exist on the pad */ - pad_swipe(cPADOPo->op_padix, TRUE); - cPADOPo->op_padix = 0; - } + if (cPADOPo->op_padix > 0) { + /* No GvIN_PAD_off(cGVOPo_gv) here, because other references + * may still exist on the pad */ + pad_swipe(cPADOPo->op_padix, TRUE); + cPADOPo->op_padix = 0; + } #else - SvREFCNT_dec(cSVOPo->op_sv); - cSVOPo->op_sv = Nullsv; + SvREFCNT_dec(cSVOPo->op_sv); + cSVOPo->op_sv = Nullsv; #endif + } break; case OP_METHOD_NAMED: case OP_CONST: @@ -370,7 +373,7 @@ Perl_op_clear(pTHX_ OP *o) #ifdef USE_ITHREADS /** Bug #15654 Even if op_clear does a pad_free for the target of the op, - pad_free doesn't actually remove the sv that exists in the bad + pad_free doesn't actually remove the sv that exists in the pad; instead it lives on. This results in that it could be reused as a target later on when the pad was reallocated. **/ @@ -750,10 +753,14 @@ Perl_scalarvoid(pTHX_ OP *o) else { if (ckWARN(WARN_VOID)) { useless = "a constant"; + /* don't warn on optimised away booleans, eg + * use constant Foo, 5; Foo || print; */ + if (cSVOPo->op_private & OPpCONST_SHORTCIRCUIT) + useless = 0; /* the constants 0 and 1 are permitted as they are conventionally used as dummies in constructs like 1 while some_condition_with_side_effects; */ - if (SvNIOK(sv) && (SvNV(sv) == 0.0 || SvNV(sv) == 1.0)) + else if (SvNIOK(sv) && (SvNV(sv) == 0.0 || SvNV(sv) == 1.0)) useless = 0; else if (SvPOK(sv)) { /* perl4's way of mixing documentation and code @@ -1162,6 +1169,9 @@ Perl_mod(pTHX_ OP *o, I32 type) case OP_ANDASSIGN: case OP_ORASSIGN: case OP_AELEMFAST: + /* Needed if maint gets patch 19588 + localize = -1; + */ PL_modcount++; break; @@ -1799,13 +1809,11 @@ Perl_scope(pTHX_ OP *o) return o; } +/* XXX kept for BINCOMPAT only */ void Perl_save_hints(pTHX) { - SAVEI32(PL_hints); - SAVESPTR(GvHV(PL_hintgv)); - GvHV(PL_hintgv) = newHVhv(GvHV(PL_hintgv)); - SAVEFREESV(GvHV(PL_hintgv)); + Perl_croak(aTHX_ "internal error: obsolete function save_hints() called"); } int @@ -1919,19 +1927,27 @@ Perl_localize(pTHX_ OP *o, I32 lex) && PL_bufptr > PL_oldbufptr && PL_bufptr[-1] == ',') { char *s = PL_bufptr; - int sigil = 0; + bool sigil = FALSE; /* some heuristics to detect a potential error */ - while (*s && (strchr(", \t\n", *s) - || (strchr("@$%*", *s) && ++sigil) )) + while (*s && (strchr(", \t\n", *s))) s++; - if (sigil) { - while (*s && (isALNUM(*s) || UTF8_IS_CONTINUED(*s) - || strchr("@$%*, \t\n", *s))) - s++; - if (*s == ';' || *s == '=') - Perl_warner(aTHX_ packWARN(WARN_PARENTHESIS), + while (1) { + if (*s && strchr("@$%*", *s) && *++s + && (isALNUM(*s) || UTF8_IS_CONTINUED(*s))) { + s++; + sigil = TRUE; + while (*s && (isALNUM(*s) || UTF8_IS_CONTINUED(*s))) + s++; + while (*s && (strchr(", \t\n", *s))) + s++; + } + else + break; + } + if (sigil && (*s == ';' || *s == '=')) { + Perl_warner(aTHX_ packWARN(WARN_PARENTHESIS), "Parentheses missing around \"%s\" list", lex ? (PL_in_my == KEY_our ? "our" : "my") : "local"); @@ -3183,6 +3199,15 @@ Perl_newASSIGNOP(pTHX_ I32 flags, OP *left, I32 optype, OP *right) op_free(right); return Nullop; } + /* optimise C<my @x = ()> to C<my @x>, and likewise for hashes */ + if ((left->op_type == OP_PADAV || left->op_type == OP_PADHV) + && right->op_type == OP_STUB + && (left->op_private & OPpLVAL_INTRO)) + { + op_free(right); + left->op_flags &= ~(OPf_REF|OPf_SPECIAL); + return left; + } curop = list(force_list(left)); o = newBINOP(OP_AASSIGN, flags, list(force_list(right)), curop); o->op_private = (U8)(0 | (flags >> 8)); @@ -3424,20 +3449,22 @@ S_new_logop(pTHX_ I32 type, I32 flags, OP** firstp, OP** otherp) } } if (first->op_type == OP_CONST) { - if (ckWARN(WARN_BAREWORD) && (first->op_private & OPpCONST_BARE)) { - if (first->op_private & OPpCONST_STRICT) - no_bareword_allowed(first); - else + if (first->op_private & OPpCONST_STRICT) + no_bareword_allowed(first); + else if (ckWARN(WARN_BAREWORD) && (first->op_private & OPpCONST_BARE)) Perl_warner(aTHX_ packWARN(WARN_BAREWORD), "Bareword found in conditional"); - } if ((type == OP_AND) == (SvTRUE(((SVOP*)first)->op_sv))) { op_free(first); *firstp = Nullop; + if (other->op_type == OP_CONST) + other->op_private |= OPpCONST_SHORTCIRCUIT; return other; } else { op_free(other); *otherp = Nullop; + if (first->op_type == OP_CONST) + first->op_private |= OPpCONST_SHORTCIRCUIT; return first; } } @@ -3645,6 +3672,10 @@ Perl_newLOOPOP(pTHX_ I32 flags, I32 debuggable, OP *expr, OP *block) } } + /* if block is null, the next append_elem() would put UNSTACK, a scalar + * op, in listop. This is wrong. [perl #27024] */ + if (!block) + block = newOP(OP_NULL, 0); listop = append_elem(OP_LINESEQ, block, newOP(OP_UNSTACK, 0)); o = new_logop(OP_AND, 0, &expr, &listop); @@ -3966,6 +3997,8 @@ Perl_cv_ckproto(pTHX_ CV *cv, GV *gv, char *p) Perl_sv_catpvf(aTHX_ msg, " sub %"SVf, name); if (SvPOK(cv)) Perl_sv_catpvf(aTHX_ msg, " (%"SVf")", (SV *)cv); + else + Perl_sv_catpvf(aTHX_ msg, ": none"); sv_catpv(msg, " vs "); if (p) Perl_sv_catpvf(aTHX_ msg, "(%s)", p); @@ -4077,11 +4110,19 @@ Perl_newATTRSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block) char *name; char *aname; GV *gv; - char *ps = proto ? SvPVx(((SVOP*)proto)->op_sv, n_a) : Nullch; + char *ps; register CV *cv=0; SV *const_sv; name = o ? SvPVx(cSVOPo->op_sv, n_a) : Nullch; + + if (proto) { + assert(proto->op_type == OP_CONST); + ps = SvPVx(((SVOP*)proto)->op_sv, n_a); + } + else + ps = Nullch; + if (!name && PERLDB_NAMEANON && CopLINE(PL_curcop)) { SV *sv = sv_newmortal(); Perl_sv_setpvf(aTHX_ sv, "%s[%s:%"IVdf"]", @@ -4239,6 +4280,8 @@ Perl_newATTRSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block) /* transfer PL_compcv to cv */ cv_undef(cv); CvFLAGS(cv) = CvFLAGS(PL_compcv); + if (!CvWEAKOUTSIDE(cv)) + SvREFCNT_dec(CvOUTSIDE(cv)); CvOUTSIDE(cv) = CvOUTSIDE(PL_compcv); CvOUTSIDE_SEQ(cv) = CvOUTSIDE_SEQ(PL_compcv); CvOUTSIDE(PL_compcv) = 0; @@ -5431,6 +5474,7 @@ Perl_ck_glob(pTHX_ OP *o) o->op_ppaddr = PL_ppaddr[OP_LIST]; cLISTOPo->op_first->op_type = OP_PUSHMARK; cLISTOPo->op_first->op_ppaddr = PL_ppaddr[OP_PUSHMARK]; + cLISTOPo->op_first->op_targ = 0; o = newUNOP(OP_ENTERSUB, OPf_STACKED, append_elem(OP_LIST, o, scalar(newUNOP(OP_RV2CV, 0, @@ -5460,7 +5504,7 @@ Perl_ck_grep(pTHX_ OP *o) OP* k; o = ck_sort(o); kid = cLISTOPo->op_first->op_sibling; - for (k = cLISTOPo->op_first->op_sibling->op_next; k; k = k->op_next) { + for (k = cUNOPx(kid)->op_first; k; k = k->op_next) { kid = k; } kid->op_next = (OP*)gwop; @@ -5626,6 +5670,19 @@ Perl_ck_sassign(pTHX_ OP *o) return kid; } } + /* optimise C<my $x = undef> to C<my $x> */ + if (kid->op_type == OP_UNDEF) { + OP *kkid = kid->op_sibling; + if (kkid && kkid->op_type == OP_PADSV + && (kkid->op_private & OPpLVAL_INTRO)) + { + cLISTOPo->op_first = NULL; + kid->op_sibling = NULL; + op_free(o); + op_free(kid); + return kkid; + } + } return o; } @@ -6407,22 +6464,14 @@ Perl_peep(pTHX_ register OP *o) o->op_seq = PL_op_seqmax++; break; + case OP_PADAV: case OP_GV: - if (o->op_next->op_type == OP_RV2SV) { - if (!(o->op_next->op_private & OPpDEREF)) { - op_null(o->op_next); - o->op_private |= o->op_next->op_private & (OPpLVAL_INTRO - | OPpOUR_INTRO); - o->op_next = o->op_next->op_next; - o->op_type = OP_GVSV; - o->op_ppaddr = PL_ppaddr[OP_GVSV]; - } - } - else if (o->op_next->op_type == OP_RV2AV) { - OP* pop = o->op_next->op_next; + if (o->op_type == OP_PADAV || o->op_next->op_type == OP_RV2AV) { + OP* pop = (o->op_type == OP_PADAV) ? + o->op_next : o->op_next->op_next; IV i; if (pop && pop->op_type == OP_CONST && - (PL_op = pop->op_next) && + ((PL_op = pop->op_next)) && pop->op_next->op_type == OP_AELEM && !(pop->op_next->op_private & (OPpLVAL_INTRO|OPpLVAL_DEFER|OPpDEREF|OPpMAYBE_LVSUB)) && @@ -6431,16 +6480,36 @@ Perl_peep(pTHX_ register OP *o) i >= 0) { GV *gv; - op_null(o->op_next); + if (cSVOPx(pop)->op_private & OPpCONST_STRICT) + no_bareword_allowed(pop); + if (o->op_type == OP_GV) + op_null(o->op_next); op_null(pop->op_next); op_null(pop); o->op_flags |= pop->op_next->op_flags & OPf_MOD; o->op_next = pop->op_next->op_next; - o->op_type = OP_AELEMFAST; o->op_ppaddr = PL_ppaddr[OP_AELEMFAST]; o->op_private = (U8)i; - gv = cGVOPo_gv; - GvAVn(gv); + if (o->op_type == OP_GV) { + gv = cGVOPo_gv; + GvAVn(gv); + } + else + o->op_flags |= OPf_SPECIAL; + o->op_type = OP_AELEMFAST; + } + o->op_seq = PL_op_seqmax++; + break; + } + + if (o->op_next->op_type == OP_RV2SV) { + if (!(o->op_next->op_private & OPpDEREF)) { + op_null(o->op_next); + o->op_private |= o->op_next->op_private & (OPpLVAL_INTRO + | OPpOUR_INTRO); + o->op_next = o->op_next->op_next; + o->op_type = OP_GVSV; + o->op_ppaddr = PL_ppaddr[OP_GVSV]; } } else if ((o->op_private & OPpEARLY_CV) && ckWARN(WARN_PROTOTYPE)) { @@ -6652,6 +6721,107 @@ Perl_peep(pTHX_ register OP *o) break; } + case OP_SORT: { + /* make @a = sort @a act in-place */ + + /* will point to RV2AV or PADAV op on LHS/RHS of assign */ + OP *oleft, *oright; + OP *o2; + + o->op_seq = PL_op_seqmax++; + + /* check that RHS of sort is a single plain array */ + oright = cUNOPo->op_first; + if (!oright || oright->op_type != OP_PUSHMARK) + break; + oright = cUNOPx(oright)->op_sibling; + if (!oright) + break; + if (oright->op_type == OP_NULL) { /* skip sort block/sub */ + oright = cUNOPx(oright)->op_sibling; + } + + if (!oright || + (oright->op_type != OP_RV2AV && oright->op_type != OP_PADAV) + || oright->op_next != o + || (oright->op_private & OPpLVAL_INTRO) + ) + break; + + /* o2 follows the chain of op_nexts through the LHS of the + * assign (if any) to the aassign op itself */ + o2 = o->op_next; + if (!o2 || o2->op_type != OP_NULL) + break; + o2 = o2->op_next; + if (!o2 || o2->op_type != OP_PUSHMARK) + break; + o2 = o2->op_next; + if (o2 && o2->op_type == OP_GV) + o2 = o2->op_next; + if (!o2 + || (o2->op_type != OP_PADAV && o2->op_type != OP_RV2AV) + || (o2->op_private & OPpLVAL_INTRO) + ) + break; + oleft = o2; + o2 = o2->op_next; + if (!o2 || o2->op_type != OP_NULL) + break; + o2 = o2->op_next; + if (!o2 || o2->op_type != OP_AASSIGN + || (o2->op_flags & OPf_WANT) != OPf_WANT_VOID) + break; + + /* check that the sort is the first arg on RHS of assign */ + + o2 = cUNOPx(o2)->op_first; + if (!o2 || o2->op_type != OP_NULL) + break; + o2 = cUNOPx(o2)->op_first; + if (!o2 || o2->op_type != OP_PUSHMARK) + break; + if (o2->op_sibling != o) + break; + + /* check the array is the same on both sides */ + if (oleft->op_type == OP_RV2AV) { + if (oright->op_type != OP_RV2AV + || !cUNOPx(oright)->op_first + || cUNOPx(oright)->op_first->op_type != OP_GV + || cGVOPx_gv(cUNOPx(oleft)->op_first) != + cGVOPx_gv(cUNOPx(oright)->op_first) + ) + break; + } + else if (oright->op_type != OP_PADAV + || oright->op_targ != oleft->op_targ + ) + break; + + /* transfer MODishness etc from LHS arg to RHS arg */ + oright->op_flags = oleft->op_flags; + o->op_private |= OPpSORT_INPLACE; + + /* excise push->gv->rv2av->null->aassign */ + o2 = o->op_next->op_next; + op_null(o2); /* PUSHMARK */ + o2 = o2->op_next; + if (o2->op_type == OP_GV) { + op_null(o2); /* GV */ + o2 = o2->op_next; + } + op_null(o2); /* RV2AV or PADAV */ + o2 = o2->op_next->op_next; + op_null(o2); /* AASSIGN */ + + o->op_next = o2->op_next; + + break; + } + + + default: o->op_seq = PL_op_seqmax++; break; diff --git a/gnu/usr.bin/perl/op.h b/gnu/usr.bin/perl/op.h index a9009842d14..c917c499039 100644 --- a/gnu/usr.bin/perl/op.h +++ b/gnu/usr.bin/perl/op.h @@ -1,7 +1,7 @@ /* op.h * * Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - * 2000, 2001, 2002, 2003, by Larry Wall and others + * 2000, 2001, 2002, 2003, 2004, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -100,6 +100,7 @@ Deprecated. Use C<GIMME_V> instead. /* On RV2[SG]V, don't create GV--in defined()*/ /* On OP_DBSTATE, indicates breakpoint * (runtime property) */ + /* On OP_AELEMFAST, indiciates pad var */ /* old names; don't use in new code, but don't break them, either */ #define OPf_LIST OPf_WANT_LIST @@ -143,8 +144,8 @@ Deprecated. Use C<GIMME_V> instead. /* Private for OP_REPEAT */ #define OPpREPEAT_DOLIST 64 /* List replication. */ -/* Private for OP_RV2?V, OP_?ELEM */ -#define OPpDEREF (32|64) /* Want ref to something: */ +/* Private for OP_RV2GV, OP_RV2SV, OP_AELEM, OP_HELEM, OP_PADSV */ +#define OPpDEREF (32|64) /* autovivify: Want ref to something: */ #define OPpDEREF_AV 32 /* Want ref to AV. */ #define OPpDEREF_HV 64 /* Want ref to HV. */ #define OPpDEREF_SV (32|64) /* Want ref to SV. */ @@ -171,6 +172,7 @@ Deprecated. Use C<GIMME_V> instead. #define OPpTARGET_MY 16 /* Target is PADMY. */ /* Private for OP_CONST */ +#define OPpCONST_SHORTCIRCUIT 4 /* eg the constant 5 in (5 || foo) */ #define OPpCONST_STRICT 8 /* bearword subject to strict 'subs' */ #define OPpCONST_ENTERED 16 /* Has been entered as symbol. */ #define OPpCONST_ARYBASE 32 /* Was a $[ translated to constant. */ @@ -193,6 +195,7 @@ Deprecated. Use C<GIMME_V> instead. #define OPpSORT_NUMERIC 1 /* Optimized away { $a <=> $b } */ #define OPpSORT_INTEGER 2 /* Ditto while under "use integer" */ #define OPpSORT_REVERSE 4 /* Descending sort */ +#define OPpSORT_INPLACE 8 /* sort in-place; eg @a = sort @a */ /* Private for OP_THREADSV */ #define OPpDONE_SVREF 64 /* Been through newSVREF once */ diff --git a/gnu/usr.bin/perl/opcode.h b/gnu/usr.bin/perl/opcode.h index 9813ae6dcb9..6a7fc088918 100644 --- a/gnu/usr.bin/perl/opcode.h +++ b/gnu/usr.bin/perl/opcode.h @@ -2,7 +2,7 @@ * opcode.h * * Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, - * 2000, 2001, 2002, 2003, by Larry Wall and others + * 2000, 2001, 2002, 2003, 2004, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff --git a/gnu/usr.bin/perl/opcode.pl b/gnu/usr.bin/perl/opcode.pl index 2cc2e8444ff..d59ac0391e5 100644 --- a/gnu/usr.bin/perl/opcode.pl +++ b/gnu/usr.bin/perl/opcode.pl @@ -39,7 +39,7 @@ print <<"END"; * opcode.h * * Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, - * 2000, 2001, 2002, 2003, by Larry Wall and others + * 2000, 2001, 2002, 2003, 2004, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -60,7 +60,7 @@ print ON <<"END"; /* * opnames.h * - * Copyright (C) 1999, 2000, 2001, 2002, 2003, by Larry Wall and others + * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff --git a/gnu/usr.bin/perl/patchlevel.h b/gnu/usr.bin/perl/patchlevel.h index b1b9cc69fd3..9c22d8bb08c 100644 --- a/gnu/usr.bin/perl/patchlevel.h +++ b/gnu/usr.bin/perl/patchlevel.h @@ -1,7 +1,7 @@ /* patchlevel.h * * Copyright (C) 1993, 1995, 1996, 1997, 1998, 1999, - * 2000, 2001, 2002, 2003, by Larry Wall and others + * 2000, 2001, 2002, 2003, 2004, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -15,7 +15,7 @@ #define PERL_REVISION 5 /* age */ #define PERL_VERSION 8 /* epoch */ -#define PERL_SUBVERSION 3 /* generation */ +#define PERL_SUBVERSION 5 /* generation */ /* The following numbers describe the earliest compatible version of Perl ("compatibility" here being defined as sufficient binary/API diff --git a/gnu/usr.bin/perl/perl.c b/gnu/usr.bin/perl/perl.c index aeb819fef9b..2078eeb46b3 100644 --- a/gnu/usr.bin/perl/perl.c +++ b/gnu/usr.bin/perl/perl.c @@ -1,7 +1,7 @@ /* perl.c * * Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, - * 2000, 2001, 2002, 2003, by Larry Wall and others + * 2000, 2001, 2002, 2003, 2004, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -12,6 +12,65 @@ * "A ship then new they built for him/of mithril and of elven glass" --Bilbo */ +/* PSz 12 Nov 03 + * + * Be proud that perl(1) may proclaim: + * Setuid Perl scripts are safer than C programs ... + * Do not abandon (deprecate) suidperl. Do not advocate C wrappers. + * + * The flow was: perl starts, notices script is suid, execs suidperl with same + * arguments; suidperl opens script, checks many things, sets itself with + * right UID, execs perl with similar arguments but with script pre-opened on + * /dev/fd/xxx; perl checks script is as should be and does work. This was + * insecure: see perlsec(1) for many problems with this approach. + * + * The "correct" flow should be: perl starts, opens script and notices it is + * suid, checks many things, execs suidperl with similar arguments but with + * script on /dev/fd/xxx; suidperl checks script and /dev/fd/xxx object are + * same, checks arguments match #! line, sets itself with right UID, execs + * perl with same arguments; perl checks many things and does work. + * + * (Opening the script in perl instead of suidperl, we "lose" scripts that + * are readable to the target UID but not to the invoker. Where did + * unreadable scripts work anyway?) + * + * For now, suidperl and perl are pretty much the same large and cumbersome + * program, so suidperl can check its argument list (see comments elsewhere). + * + * References: + * Original bug report: + * http://bugs.perl.org/index.html?req=bug_id&bug_id=20010322.218 + * http://rt.perl.org/rt2/Ticket/Display.html?id=6511 + * Comments and discussion with Debian: + * http://bugs.debian.org/203426 + * http://bugs.debian.org/220486 + * Debian Security Advisory DSA 431-1 (does not fully fix problem): + * http://www.debian.org/security/2004/dsa-431 + * CVE candidate: + * http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2003-0618 + * Previous versions of this patch sent to perl5-porters: + * http://www.mail-archive.com/perl5-porters@perl.org/msg71953.html + * http://www.mail-archive.com/perl5-porters@perl.org/msg75245.html + * http://www.mail-archive.com/perl5-porters@perl.org/msg75563.html + * http://www.mail-archive.com/perl5-porters@perl.org/msg75635.html + * +Paul Szabo - psz@maths.usyd.edu.au http://www.maths.usyd.edu.au:8000/u/psz/ +School of Mathematics and Statistics University of Sydney 2006 Australia + * + */ +/* PSz 13 Nov 03 + * Use truthful, neat, specific error messages. + * Cannot always hide the truth; security must not depend on doing so. + */ + +/* PSz 18 Feb 04 + * Use global(?), thread-local fdscript for easier checks. + * (I do not understand how we could possibly get a thread race: + * do not all threads go through the same initialization? Or in + * fact, are not threads started only after we get the script and + * so know what to do? Oh well, make things super-safe...) + */ + #include "EXTERN.h" #define PERL_IN_PERL_C #include "perl.h" @@ -49,7 +108,7 @@ static I32 read_e_script(pTHX_ int idx, SV *buf_sv, int maxlen); #ifndef DOSUID #define DOSUID #endif -#endif +#endif /* IAMSUID */ #ifdef SETUID_SCRIPTS_ARE_SECURE_NOW #ifdef DOSUID @@ -900,7 +959,9 @@ perl_destruct(pTHXx) svend = &sva[SvREFCNT(sva)]; for (sv = sva + 1; sv < svend; ++sv) { if (SvTYPE(sv) != SVTYPEMASK) { - PerlIO_printf(Perl_debug_log, "leaked: 0x%p\n", sv); + PerlIO_printf(Perl_debug_log, "leaked: 0x%p" + pTHX__FORMAT "\n", + sv pTHX__VALUE); } } } @@ -1062,7 +1123,7 @@ perl_parse(pTHXx_ XSINIT_t xsinit, int argc, char **argv, char **env) #undef IAMSUID Perl_croak(aTHX_ "suidperl is no longer needed since the kernel can now execute\n\ setuid perl scripts securely.\n"); -#endif +#endif /* IAMSUID */ #endif #if defined(USE_HASH_SEED) || defined(USE_HASH_SEED_EXPLICIT) @@ -1092,7 +1153,7 @@ setuid perl scripts securely.\n"); { /* Set PL_origalen be the sum of the contiguous argv[] * elements plus the size of the env in case that it is - * contiguous with the argv[]. This is used in mg.c:mg_set() + * contiguous with the argv[]. This is used in mg.c:Perl_magic_set() * as the maximum modifiable length of $0. In the worst case * the area we are able to modify is limited to the size of * the original argv[0]. (See below for 'contiguous', though.) @@ -1253,13 +1314,14 @@ S_parse_body(pTHX_ char **env, XSINIT_t xsinit) int argc = PL_origargc; char **argv = PL_origargv; char *scriptname = NULL; - int fdscript = -1; VOL bool dosearch = FALSE; char *validarg = ""; register SV *sv; register char *s; char *cddir = Nullch; + PL_fdscript = -1; + PL_suidscript = -1; sv_setpvn(PL_linestr,"",0); sv = newSVpvn("",0); /* first used for -I flags */ SAVEFREESV(sv); @@ -1273,6 +1335,12 @@ S_parse_body(pTHX_ char **env, XSINIT_t xsinit) validarg = " PHOOEY "; else validarg = argv[0]; + /* + * Can we rely on the kernel to start scripts with argv[1] set to + * contain all #! line switches (the whole line)? (argv[0] is set to + * the interpreter name, argv[2] to the script name; argv[3] and + * above may contain other arguments.) + */ #endif s = argv[0]+1; reswitch: @@ -1327,8 +1395,7 @@ S_parse_body(pTHX_ char **env, XSINIT_t xsinit) if (argv[1] && !strcmp(argv[1], "Dev:Pseudo")) break; #endif - if (PL_euid != PL_uid || PL_egid != PL_gid) - Perl_croak(aTHX_ "No -e allowed in setuid scripts"); + forbid_setid("-e"); if (!PL_e_script) { PL_e_script = newSVpvn("",0); filter_add(read_e_script, NULL); @@ -1425,7 +1492,8 @@ S_parse_body(pTHX_ char **env, XSINIT_t xsinit) sv_catpv(PL_Sv,"\" Locally applied patches:\\n\","); for (i = 1; i <= LOCAL_PATCH_COUNT; i++) { if (PL_localpatches[i]) - Perl_sv_catpvf(aTHX_ PL_Sv,"q\" \t%s\n\",",PL_localpatches[i]); + Perl_sv_catpvf(aTHX_ PL_Sv,"q%c\t%s\n%c,", + 0, PL_localpatches[i], 0); } } #endif @@ -1486,7 +1554,6 @@ print \" \\@INC:\\n @INC\\n\";"); } } switch_end: - sv_setsv(get_sv("/", TRUE), PL_rs); if ( #ifndef SECURE_INTERNAL_GETENV @@ -1561,9 +1628,9 @@ print \" \\@INC:\\n @INC\\n\";"); init_perllib(); - open_script(scriptname,dosearch,sv,&fdscript); + open_script(scriptname,dosearch,sv); - validate_suid(validarg, scriptname,fdscript); + validate_suid(validarg, scriptname); #ifndef PERL_MICRO #if defined(SIGCHLD) || defined(SIGCLD) @@ -2443,6 +2510,33 @@ NULL int Perl_get_debug_opts(pTHX_ char **s) { + static char *usage_msgd[] = { + " Debugging flag values: (see also -d)", + " p Tokenizing and parsing (with v, displays parse stack)", + " s Stack snapshots. with v, displays all stacks", + " l Context (loop) stack processing", + " t Trace execution", + " o Method and overloading resolution", + " c String/numeric conversions", + " P Print profiling info, preprocessor command for -P, source file input state", + " m Memory allocation", + " f Format processing", + " r Regular expression parsing and execution", + " x Syntax tree dump", + " u Tainting checks (Obsolete, previously used for LEAKTEST)", + " H Hash dump -- usurps values()", + " X Scratchpad allocation", + " D Cleaning up", + " S Thread synchronization", + " T Tokenising", + " R Include reference counts of dumped variables (eg when using -Ds)", + " J Do not s,t,P-debug (Jump over) opcodes within package DB", + " v Verbose: use in conjunction with other flags", + " C Copy On Write", + " A Consistency checks on internal structures", + " q quiet - currently only suppressed the 'EXECUTING' message", + NULL + }; int i = 0; if (isALPHA(**s)) { /* if adding extra options, remember to update DEBUG_MASK */ @@ -2453,14 +2547,18 @@ Perl_get_debug_opts(pTHX_ char **s) if (d) i |= 1 << (d - debopts); else if (ckWARN_d(WARN_DEBUGGING)) - Perl_warner(aTHX_ packWARN(WARN_DEBUGGING), - "invalid option -D%c\n", **s); + Perl_warner(aTHX_ packWARN(WARN_DEBUGGING), + "invalid option -D%c, use -D'' to see choices\n", **s); } } - else { + else if (isDIGIT(**s)) { i = atoi(*s); for (; isALNUM(**s); (*s)++) ; } + else { + char **p = usage_msgd; + while (*p) PerlIO_printf(PerlIO_stdout(), "%s\n", *p++); + } # ifdef EBCDIC if ((i & DEBUG_p_FLAG) && ckWARN_d(WARN_DEBUGGING)) Perl_warner(aTHX_ packWARN(WARN_DEBUGGING), @@ -2516,6 +2614,7 @@ Perl_moreswitches(pTHX_ char *s) PL_rs = newSVpvn(&ch, 1); } } + sv_setsv(get_sv("/", TRUE), PL_rs); return s + numlen; } case 'C': @@ -2574,7 +2673,7 @@ Perl_moreswitches(pTHX_ char *s) #else /* !DEBUGGING */ if (ckWARN_d(WARN_DEBUGGING)) Perl_warner(aTHX_ packWARN(WARN_DEBUGGING), - "Recompile perl with -DDEBUGGING to use -D switch\n"); + "Recompile perl with -DDEBUGGING to use -D switch (did you mean -d ?)\n"); for (s++; isALNUM(*s); s++) ; #endif /*SUPPRESS 530*/ @@ -2750,7 +2849,7 @@ Perl_moreswitches(pTHX_ char *s) #endif PerlIO_printf(PerlIO_stdout(), - "\n\nCopyright 1987-2003, Larry Wall\n"); + "\n\nCopyright 1987-2004, Larry Wall\n"); #ifdef MACOS_TRADITIONAL PerlIO_printf(PerlIO_stdout(), "\nMac OS port Copyright 1991-2002, Matthias Neeracher;\n" @@ -2978,15 +3077,19 @@ S_init_main_stash(pTHX) sv_setpvn(get_sv("/", TRUE), "\n", 1); } +/* PSz 18 Nov 03 fdscript now global but do not change prototype */ STATIC void -S_open_script(pTHX_ char *scriptname, bool dosearch, SV *sv, int *fdscript) +S_open_script(pTHX_ char *scriptname, bool dosearch, SV *sv) { +#ifndef IAMSUID char *quote; char *code; char *cpp_discard_flag; char *perl; +#endif - *fdscript = -1; + PL_fdscript = -1; + PL_suidscript = -1; if (PL_e_script) { PL_origfilename = savepv("-e"); @@ -2997,10 +3100,30 @@ S_open_script(pTHX_ char *scriptname, bool dosearch, SV *sv, int *fdscript) if (strnEQ(scriptname, "/dev/fd/", 8) && isDIGIT(scriptname[8]) ) { char *s = scriptname + 8; - *fdscript = atoi(s); + PL_fdscript = atoi(s); while (isDIGIT(*s)) s++; if (*s) { + /* PSz 18 Feb 04 + * Tell apart "normal" usage of fdscript, e.g. + * with bash on FreeBSD: + * perl <( echo '#!perl -DA'; echo 'print "$0\n"') + * from usage in suidperl. + * Does any "normal" usage leave garbage after the number??? + * Is it a mistake to use a similar /dev/fd/ construct for + * suidperl? + */ + PL_suidscript = 1; + /* PSz 20 Feb 04 + * Be supersafe and do some sanity-checks. + * Still, can we be sure we got the right thing? + */ + if (*s != '/') { + Perl_croak(aTHX_ "Wrong syntax (suid) fd script name \"%s\"\n", s); + } + if (! *(s+1)) { + Perl_croak(aTHX_ "Missing (suid) fd script name\n"); + } scriptname = savepv(s + 1); Safefree(PL_origfilename); PL_origfilename = scriptname; @@ -3012,14 +3135,31 @@ S_open_script(pTHX_ char *scriptname, bool dosearch, SV *sv, int *fdscript) CopFILE_set(PL_curcop, PL_origfilename); if (strEQ(PL_origfilename,"-")) scriptname = ""; - if (*fdscript >= 0) { - PL_rsfp = PerlIO_fdopen(*fdscript,PERL_SCRIPT_MODE); + if (PL_fdscript >= 0) { + PL_rsfp = PerlIO_fdopen(PL_fdscript,PERL_SCRIPT_MODE); # if defined(HAS_FCNTL) && defined(F_SETFD) if (PL_rsfp) /* ensure close-on-exec */ fcntl(PerlIO_fileno(PL_rsfp),F_SETFD,1); # endif } +#ifdef IAMSUID + else { + Perl_croak(aTHX_ "sperl needs fd script\n" + "You should not call sperl directly; do you need to " + "change a #! line\nfrom sperl to perl?\n"); + +/* PSz 11 Nov 03 + * Do not open (or do other fancy stuff) while setuid. + * Perl does the open, and hands script to suidperl on a fd; + * suidperl only does some checks, sets up UIDs and re-execs + * perl with that fd as it has always done. + */ + } + if (PL_suidscript != 1) { + Perl_croak(aTHX_ "suidperl needs (suid) fd script\n"); + } +#else /* IAMSUID */ else if (PL_preprocess) { char *cpp_cfg = CPPSTDIN; SV *cpp = newSVpvn("",0); @@ -3076,25 +3216,6 @@ S_open_script(pTHX_ char *scriptname, bool dosearch, SV *sv, int *fdscript) cpp_discard_flag, sv, CPPMINUS); PL_doextract = FALSE; -# ifdef IAMSUID /* actually, this is caught earlier */ - if (PL_euid != PL_uid && !PL_euid) { /* if running suidperl */ -# ifdef HAS_SETEUID - (void)seteuid(PL_uid); /* musn't stay setuid root */ -# else -# ifdef HAS_SETREUID - (void)setreuid((Uid_t)-1, PL_uid); -# else -# ifdef HAS_SETRESUID - (void)setresuid((Uid_t)-1, PL_uid, (Uid_t)-1); -# else - PerlProc_setuid(PL_uid); -# endif -# endif -# endif - if (PerlProc_geteuid() != PL_uid) - Perl_croak(aTHX_ "Can't do seteuid!\n"); - } -# endif /* IAMSUID */ DEBUG_P(PerlIO_printf(Perl_debug_log, "PL_preprocess: cmd=\"%s\"\n", @@ -3116,31 +3237,12 @@ S_open_script(pTHX_ char *scriptname, bool dosearch, SV *sv, int *fdscript) fcntl(PerlIO_fileno(PL_rsfp),F_SETFD,1); # endif } +#endif /* IAMSUID */ if (!PL_rsfp) { -# ifdef DOSUID -# ifndef IAMSUID /* in case script is not readable before setuid */ - if (PL_euid && - PerlLIO_stat(CopFILE(PL_curcop),&PL_statbuf) >= 0 && - PL_statbuf.st_mode & (S_ISUID|S_ISGID)) - { - /* try again */ - PERL_FPU_PRE_EXEC - PerlProc_execv(Perl_form(aTHX_ "%s/sperl"PERL_FS_VER_FMT, - BIN_EXP, (int)PERL_REVISION, - (int)PERL_VERSION, - (int)PERL_SUBVERSION), PL_origargv); - PERL_FPU_POST_EXEC - Perl_croak(aTHX_ "Can't do setuid\n"); - } -# endif -# endif -# ifdef IAMSUID - errno = EPERM; - Perl_croak(aTHX_ "Permission denied\n"); -# else - Perl_croak(aTHX_ "Can't open perl script \"%s\": %s\n", - CopFILE(PL_curcop), Strerror(errno)); -# endif + /* PSz 16 Sep 03 Keep neat error message */ + Perl_croak(aTHX_ "Can't open perl script \"%s\": %s%s\n", + CopFILE(PL_curcop), Strerror(errno), + ".\nUse -S to search $PATH for it."); } } @@ -3155,8 +3257,19 @@ S_open_script(pTHX_ char *scriptname, bool dosearch, SV *sv, int *fdscript) STATIC int S_fd_on_nosuid_fs(pTHX_ int fd) { +/* PSz 27 Feb 04 + * We used to do this as "plain" user (after swapping UIDs with setreuid); + * but is needed also on machines without setreuid. + * Seems safe enough to run as root. + */ int check_okay = 0; /* able to do all the required sys/libcalls */ int on_nosuid = 0; /* the fd is on a nosuid fs */ + /* PSz 12 Nov 03 + * Need to check noexec also: nosuid might not be set, the average + * sysadmin would say that nosuid is irrelevant once he sets noexec. + */ + int on_noexec = 0; /* the fd is on a noexec fs */ + /* * Preferred order: fstatvfs(), fstatfs(), ustat()+getmnt(), getmntent(). * fstatvfs() is UNIX98. @@ -3175,10 +3288,16 @@ S_fd_on_nosuid_fs(pTHX_ int fd) check_okay = fstatvfs(fd, &stfs) == 0; on_nosuid = check_okay && (stfs.f_flag & ST_NOSUID); +#ifdef ST_NOEXEC + /* ST_NOEXEC certainly absent on AIX 5.1, and doesn't seem to be documented + on platforms where it is present. */ + on_noexec = check_okay && (stfs.f_flag & ST_NOEXEC); +#endif # endif /* fstatvfs */ # if !defined(FD_ON_NOSUID_CHECK_OKAY) && \ defined(PERL_MOUNT_NOSUID) && \ + defined(PERL_MOUNT_NOEXEC) && \ defined(HAS_FSTATFS) && \ defined(HAS_STRUCT_STATFS) && \ defined(HAS_STRUCT_STATFS_F_FLAGS) @@ -3187,10 +3306,12 @@ S_fd_on_nosuid_fs(pTHX_ int fd) check_okay = fstatfs(fd, &stfs) == 0; on_nosuid = check_okay && (stfs.f_flags & PERL_MOUNT_NOSUID); + on_noexec = check_okay && (stfs.f_flags & PERL_MOUNT_NOEXEC); # endif /* fstatfs */ # if !defined(FD_ON_NOSUID_CHECK_OKAY) && \ defined(PERL_MOUNT_NOSUID) && \ + defined(PERL_MOUNT_NOEXEC) && \ defined(HAS_FSTAT) && \ defined(HAS_USTAT) && \ defined(HAS_GETMNT) && \ @@ -3213,6 +3334,7 @@ S_fd_on_nosuid_fs(pTHX_ int fd) fdst.st_dev == fsd.fd_req.dev) { check_okay = 1; on_nosuid = fsd.fd_req.flags & PERL_MOUNT_NOSUID; + on_noexec = fsd.fd_req.flags & PERL_MOUNT_NOEXEC; } } } @@ -3223,7 +3345,8 @@ S_fd_on_nosuid_fs(pTHX_ int fd) # if !defined(FD_ON_NOSUID_CHECK_OKAY) && \ defined(HAS_GETMNTENT) && \ defined(HAS_HASMNTOPT) && \ - defined(MNTOPT_NOSUID) + defined(MNTOPT_NOSUID) && \ + defined(MNTOPT_NOEXEC) # define FD_ON_NOSUID_CHECK_OKAY FILE *mtab = fopen("/etc/mtab", "r"); struct mntent *entry; @@ -3238,6 +3361,8 @@ S_fd_on_nosuid_fs(pTHX_ int fd) check_okay = 1; if (hasmntopt(entry, MNTOPT_NOSUID)) on_nosuid = 1; + if (hasmntopt(entry, MNTOPT_NOEXEC)) + on_noexec = 1; break; } /* A single fs may well fail its stat(). */ } @@ -3247,17 +3372,21 @@ S_fd_on_nosuid_fs(pTHX_ int fd) # endif /* getmntent+hasmntopt */ if (!check_okay) - Perl_croak(aTHX_ "Can't check filesystem of script \"%s\" for nosuid", PL_origfilename); - return on_nosuid; + Perl_croak(aTHX_ "Can't check filesystem of script \"%s\" for nosuid/noexec", PL_origfilename); + if (on_nosuid) + Perl_croak(aTHX_ "Setuid script \"%s\" on nosuid filesystem", PL_origfilename); + if (on_noexec) + Perl_croak(aTHX_ "Setuid script \"%s\" on noexec filesystem", PL_origfilename); + return ((!check_okay) || on_nosuid || on_noexec); } #endif /* IAMSUID */ STATIC void -S_validate_suid(pTHX_ char *validarg, char *scriptname, int fdscript) +S_validate_suid(pTHX_ char *validarg, char *scriptname) { #ifdef IAMSUID - int which; -#endif + /* int which; */ +#endif /* IAMSUID */ /* do we need to emulate setuid on scripts? */ @@ -3273,6 +3402,13 @@ S_validate_suid(pTHX_ char *validarg, char *scriptname, int fdscript) * uid. We don't just make perl setuid root because that loses the * effective uid we had before invoking perl, if it was different from the * uid. + * PSz 27 Feb 04 + * Description/comments above do not match current workings: + * suidperl must be hardlinked to sperlN.NNN (that is what we exec); + * suidperl called with script open and name changed to /dev/fd/N/X; + * suidperl croaks if script is not setuid; + * making perl setuid would be a huge security risk (and yes, that + * would lose any euid we might have had). * * DOSUID must be defined in both perl and suidperl, and IAMSUID must * be defined in suidperl only. suidperl must be setuid root. The @@ -3284,12 +3420,33 @@ S_validate_suid(pTHX_ char *validarg, char *scriptname, int fdscript) if (PerlLIO_fstat(PerlIO_fileno(PL_rsfp),&PL_statbuf) < 0) /* normal stat is insecure */ Perl_croak(aTHX_ "Can't stat script \"%s\"",PL_origfilename); - if (fdscript < 0 && PL_statbuf.st_mode & (S_ISUID|S_ISGID)) { + if (PL_statbuf.st_mode & (S_ISUID|S_ISGID)) { I32 len; STRLEN n_a; #ifdef IAMSUID -#ifndef HAS_SETREUID + if (PL_fdscript < 0 || PL_suidscript != 1) + Perl_croak(aTHX_ "Need (suid) fdscript in suidperl\n"); /* We already checked this */ + /* PSz 11 Nov 03 + * Since the script is opened by perl, not suidperl, some of these + * checks are superfluous. Leaving them in probably does not lower + * security(?!). + */ + /* PSz 27 Feb 04 + * Do checks even for systems with no HAS_SETREUID. + * We used to swap, then re-swap UIDs with +#ifdef HAS_SETREUID + if (setreuid(PL_euid,PL_uid) < 0 + || PerlProc_getuid() != PL_euid || PerlProc_geteuid() != PL_uid) + Perl_croak(aTHX_ "Can't swap uid and euid"); +#endif +#ifdef HAS_SETREUID + if (setreuid(PL_uid,PL_euid) < 0 + || PerlProc_getuid() != PL_uid || PerlProc_geteuid() != PL_euid) + Perl_croak(aTHX_ "Can't reswap uid and euid"); +#endif + */ + /* On this access check to make sure the directories are readable, * there is actually a small window that the user could use to make * filename point to an accessible directory. So there is a faint @@ -3297,79 +3454,89 @@ S_validate_suid(pTHX_ char *validarg, char *scriptname, int fdscript) * non-accessible directory. I don't know what to do about that. * But I don't think it's too important. The manual lies when * it says access() is useful in setuid programs. + * + * So, access() is pretty useless... but not harmful... do anyway. */ if (PerlLIO_access(CopFILE(PL_curcop),1)) { /*double check*/ - errno = EPERM; - Perl_croak(aTHX_ "Permission denied\n"); + Perl_croak(aTHX_ "Can't access() script\n"); } -#else + /* If we can swap euid and uid, then we can determine access rights * with a simple stat of the file, and then compare device and * inode to make sure we did stat() on the same file we opened. * Then we just have to make sure he or she can execute it. + * + * PSz 24 Feb 04 + * As the script is opened by perl, not suidperl, we do not need to + * care much about access rights. + * + * The 'script changed' check is needed, or we can get lied to + * about $0 with e.g. + * suidperl /dev/fd/4//bin/x 4<setuidscript + * Without HAS_SETREUID, is it safe to stat() as root? + * + * Are there any operating systems that pass /dev/fd/xxx for setuid + * scripts, as suggested/described in perlsec(1)? Surely they do not + * pass the script name as we do, so the "script changed" test would + * fail for them... but we never get here with + * SETUID_SCRIPTS_ARE_SECURE_NOW defined. + * + * This is one place where we must "lie" about return status: not + * say if the stat() failed. We are doing this as root, and could + * be tricked into reporting existence or not of files that the + * "plain" user cannot even see. */ { Stat_t tmpstatbuf; - - if ( -#ifdef HAS_SETREUID - setreuid(PL_euid,PL_uid) < 0 -#else -# if HAS_SETRESUID - setresuid(PL_euid,PL_uid,(Uid_t)-1) < 0 -# endif -#endif - || PerlProc_getuid() != PL_euid || PerlProc_geteuid() != PL_uid) - Perl_croak(aTHX_ "Can't swap uid and euid"); /* really paranoid */ - if (PerlLIO_stat(CopFILE(PL_curcop),&tmpstatbuf) < 0) { - errno = EPERM; - Perl_croak(aTHX_ "Permission denied\n"); /* testing full pathname here */ - } -#if defined(IAMSUID) && !defined(NO_NOSUID_CHECK) - if (fd_on_nosuid_fs(PerlIO_fileno(PL_rsfp))) { - errno = EPERM; - Perl_croak(aTHX_ "Permission denied\n"); - } -#endif - if (tmpstatbuf.st_dev != PL_statbuf.st_dev || + if (PerlLIO_stat(CopFILE(PL_curcop),&tmpstatbuf) < 0 || + tmpstatbuf.st_dev != PL_statbuf.st_dev || tmpstatbuf.st_ino != PL_statbuf.st_ino) { - (void)PerlIO_close(PL_rsfp); - errno = EPERM; - Perl_croak(aTHX_ "Permission denied\n"); + Perl_croak(aTHX_ "Setuid script changed\n"); } - if ( -#ifdef HAS_SETREUID - setreuid(PL_uid,PL_euid) < 0 -#else -# if defined(HAS_SETRESUID) - setresuid(PL_uid,PL_euid,(Uid_t)-1) < 0 -# endif -#endif - || PerlProc_getuid() != PL_uid || PerlProc_geteuid() != PL_euid) - Perl_croak(aTHX_ "Can't reswap uid and euid"); - if (!cando(S_IXUSR,FALSE,&PL_statbuf)) /* can real uid exec? */ - Perl_croak(aTHX_ "Permission denied\n"); + } -#endif /* HAS_SETREUID */ + if (!cando(S_IXUSR,FALSE,&PL_statbuf)) /* can real uid exec? */ + Perl_croak(aTHX_ "Real UID cannot exec script\n"); + + /* PSz 27 Feb 04 + * We used to do this check as the "plain" user (after swapping + * UIDs). But the check for nosuid and noexec filesystem is needed, + * and should be done even without HAS_SETREUID. (Maybe those + * operating systems do not have such mount options anyway...) + * Seems safe enough to do as root. + */ +#if !defined(NO_NOSUID_CHECK) + if (fd_on_nosuid_fs(PerlIO_fileno(PL_rsfp))) { + Perl_croak(aTHX_ "Setuid script on nosuid or noexec filesystem\n"); + } +#endif #endif /* IAMSUID */ if (!S_ISREG(PL_statbuf.st_mode)) { - errno = EPERM; - Perl_croak(aTHX_ "Permission denied\n"); + Perl_croak(aTHX_ "Setuid script not plain file\n"); } if (PL_statbuf.st_mode & S_IWOTH) Perl_croak(aTHX_ "Setuid/gid script is writable by world"); PL_doswitches = FALSE; /* -s is insecure in suid */ + /* PSz 13 Nov 03 But -s was caught elsewhere ... so unsetting it here is useless(?!) */ CopLINE_inc(PL_curcop); if (sv_gets(PL_linestr, PL_rsfp, 0) == Nullch || strnNE(SvPV(PL_linestr,n_a),"#!",2) ) /* required even on Sys V */ Perl_croak(aTHX_ "No #! line"); s = SvPV(PL_linestr,n_a)+2; - if (*s == ' ') s++; - while (!isSPACE(*s)) s++; + /* PSz 27 Feb 04 */ + /* Sanity check on line length */ + if (strlen(s) < 1 || strlen(s) > 4000) + Perl_croak(aTHX_ "Very long #! line"); + /* Allow more than a single space after #! */ + while (isSPACE(*s)) s++; + /* Sanity check on buffer end */ + while ((*s) && !isSPACE(*s)) s++; for (s2 = s; (s2 > SvPV(PL_linestr,n_a)+2 && (isDIGIT(s2[-1]) || strchr("._-", s2[-1]))); s2--) ; - if (strnNE(s2-4,"perl",4) && strnNE(s-9,"perl",4)) /* sanity check */ + /* Sanity check on buffer start */ + if ( (s2-4 < SvPV(PL_linestr,n_a)+2 || strnNE(s2-4,"perl",4)) && + (s-9 < SvPV(PL_linestr,n_a)+2 || strnNE(s-9,"perl",4)) ) Perl_croak(aTHX_ "Not a perl script"); while (*s == ' ' || *s == '\t') s++; /* @@ -3377,33 +3544,101 @@ S_validate_suid(pTHX_ char *validarg, char *scriptname, int fdscript) * mentioning suidperl explicitly, but they may not add any strange * arguments beyond what #! says if they do invoke suidperl that way. */ + /* + * The way validarg was set up, we rely on the kernel to start + * scripts with argv[1] set to contain all #! line switches (the + * whole line). + */ + /* + * Check that we got all the arguments listed in the #! line (not + * just that there are no extraneous arguments). Might not matter + * much, as switches from #! line seem to be acted upon (also), and + * so may be checked and trapped in perl. But, security checks must + * be done in suidperl and not deferred to perl. Note that suidperl + * does not get around to parsing (and checking) the switches on + * the #! line (but execs perl sooner). + * Allow (require) a trailing newline (which may be of two + * characters on some architectures?) (but no other trailing + * whitespace). + */ len = strlen(validarg); if (strEQ(validarg," PHOOEY ") || - strnNE(s,validarg,len) || !isSPACE(s[len])) + strnNE(s,validarg,len) || !isSPACE(s[len]) || + !(strlen(s) == len+1 || (strlen(s) == len+2 && isSPACE(s[len+1])))) Perl_croak(aTHX_ "Args must match #! line"); #ifndef IAMSUID - if (PL_euid != PL_uid && (PL_statbuf.st_mode & S_ISUID) && + if (PL_fdscript < 0 && + PL_euid != PL_uid && (PL_statbuf.st_mode & S_ISUID) && PL_euid == PL_statbuf.st_uid) if (!PL_do_undump) Perl_croak(aTHX_ "YOU HAVEN'T DISABLED SET-ID SCRIPTS IN THE KERNEL YET!\n\ FIX YOUR KERNEL, OR PUT A C WRAPPER AROUND THIS SCRIPT!\n"); #endif /* IAMSUID */ - if (PL_euid) { /* oops, we're not the setuid root perl */ - (void)PerlIO_close(PL_rsfp); + if (PL_fdscript < 0 && + PL_euid) { /* oops, we're not the setuid root perl */ + /* PSz 18 Feb 04 + * When root runs a setuid script, we do not go through the same + * steps of execing sperl and then perl with fd scripts, but + * simply set up UIDs within the same perl invocation; so do + * not have the same checks (on options, whatever) that we have + * for plain users. No problem really: would have to be a script + * that does not actually work for plain users; and if root is + * foolish and can be persuaded to run such an unsafe script, he + * might run also non-setuid ones, and deserves what he gets. + * + * Or, we might drop the PL_euid check above (and rely just on + * PL_fdscript to avoid loops), and do the execs + * even for root. + */ #ifndef IAMSUID - /* try again */ + int which; + /* PSz 11 Nov 03 + * Pass fd script to suidperl. + * Exec suidperl, substituting fd script for scriptname. + * Pass script name as "subdir" of fd, which perl will grok; + * in fact will use that to distinguish this from "normal" + * usage, see comments above. + */ + PerlIO_rewind(PL_rsfp); + PerlLIO_lseek(PerlIO_fileno(PL_rsfp),(Off_t)0,0); /* just in case rewind didn't */ + /* PSz 27 Feb 04 Sanity checks on scriptname */ + if ((!scriptname) || (!*scriptname) ) { + Perl_croak(aTHX_ "No setuid script name\n"); + } + if (*scriptname == '-') { + Perl_croak(aTHX_ "Setuid script name may not begin with dash\n"); + /* Or we might confuse it with an option when replacing + * name in argument list, below (though we do pointer, not + * string, comparisons). + */ + } + for (which = 1; PL_origargv[which] && PL_origargv[which] != scriptname; which++) ; + if (!PL_origargv[which]) { + Perl_croak(aTHX_ "Can't change argv to have fd script\n"); + } + PL_origargv[which] = savepv(Perl_form(aTHX_ "/dev/fd/%d/%s", + PerlIO_fileno(PL_rsfp), PL_origargv[which])); +#if defined(HAS_FCNTL) && defined(F_SETFD) + fcntl(PerlIO_fileno(PL_rsfp),F_SETFD,0); /* ensure no close-on-exec */ +#endif PERL_FPU_PRE_EXEC PerlProc_execv(Perl_form(aTHX_ "%s/sperl"PERL_FS_VER_FMT, BIN_EXP, (int)PERL_REVISION, (int)PERL_VERSION, (int)PERL_SUBVERSION), PL_origargv); PERL_FPU_POST_EXEC -#endif - Perl_croak(aTHX_ "Can't do setuid\n"); +#endif /* IAMSUID */ + Perl_croak(aTHX_ "Can't do setuid (cannot exec sperl)\n"); } if (PL_statbuf.st_mode & S_ISGID && PL_statbuf.st_gid != PL_egid) { +/* PSz 26 Feb 04 + * This seems back to front: we try HAS_SETEGID first; if not available + * then try HAS_SETREGID; as a last chance we try HAS_SETRESGID. May be OK + * in the sense that we only want to set EGID; but are there any machines + * with either of the latter, but not the former? Same with UID, later. + */ #ifdef HAS_SETEGID (void)setegid(PL_statbuf.st_gid); #else @@ -3457,30 +3692,64 @@ FIX YOUR KERNEL, OR PUT A C WRAPPER AROUND THIS SCRIPT!\n"); } init_ids(); if (!cando(S_IXUSR,TRUE,&PL_statbuf)) - Perl_croak(aTHX_ "Permission denied\n"); /* they can't do this */ + Perl_croak(aTHX_ "Effective UID cannot exec script\n"); /* they can't do this */ } #ifdef IAMSUID - else if (PL_preprocess) + else if (PL_preprocess) /* PSz 13 Nov 03 Caught elsewhere, useless(?!) here */ Perl_croak(aTHX_ "-P not allowed for setuid/setgid script\n"); - else if (fdscript >= 0) - Perl_croak(aTHX_ "fd script not allowed in suidperl\n"); + else if (PL_fdscript < 0 || PL_suidscript != 1) + /* PSz 13 Nov 03 Caught elsewhere, useless(?!) here */ + Perl_croak(aTHX_ "(suid) fdscript needed in suidperl\n"); else { - errno = EPERM; - Perl_croak(aTHX_ "Permission denied\n"); +/* PSz 16 Sep 03 Keep neat error message */ + Perl_croak(aTHX_ "Script is not setuid/setgid in suidperl\n"); } /* We absolutely must clear out any saved ids here, so we */ /* exec the real perl, substituting fd script for scriptname. */ /* (We pass script name as "subdir" of fd, which perl will grok.) */ + /* + * It might be thought that using setresgid and/or setresuid (changed to + * set the saved IDs) above might obviate the need to exec, and we could + * go on to "do the perl thing". + * + * Is there such a thing as "saved GID", and is that set for setuid (but + * not setgid) execution like suidperl? Without exec, it would not be + * cleared for setuid (but not setgid) scripts (or might need a dummy + * setresgid). + * + * We need suidperl to do the exact same argument checking that perl + * does. Thus it cannot be very small; while it could be significantly + * smaller, it is safer (simpler?) to make it essentially the same + * binary as perl (but they are not identical). - Maybe could defer that + * check to the invoked perl, and suidperl be a tiny wrapper instead; + * but prefer to do thorough checks in suidperl itself. Such deferral + * would make suidperl security rely on perl, a design no-no. + * + * Setuid things should be short and simple, thus easy to understand and + * verify. They should do their "own thing", without influence by + * attackers. It may help if their internal execution flow is fixed, + * regardless of platform: it may be best to exec anyway. + * + * Suidperl should at least be conceptually simple: a wrapper only, + * never to do any real perl. Maybe we should put + * #ifdef IAMSUID + * Perl_croak(aTHX_ "Suidperl should never do real perl\n"); + * #endif + * into the perly bits. + */ PerlIO_rewind(PL_rsfp); PerlLIO_lseek(PerlIO_fileno(PL_rsfp),(Off_t)0,0); /* just in case rewind didn't */ - for (which = 1; PL_origargv[which] && PL_origargv[which] != scriptname; which++) ; - if (!PL_origargv[which]) { - errno = EPERM; - Perl_croak(aTHX_ "Permission denied\n"); - } - PL_origargv[which] = savepv(Perl_form(aTHX_ "/dev/fd/%d/%s", - PerlIO_fileno(PL_rsfp), PL_origargv[which])); + /* PSz 11 Nov 03 + * Keep original arguments: suidperl already has fd script. + */ +/* for (which = 1; PL_origargv[which] && PL_origargv[which] != scriptname; which++) ; */ +/* if (!PL_origargv[which]) { */ +/* errno = EPERM; */ +/* Perl_croak(aTHX_ "Permission denied\n"); */ +/* } */ +/* PL_origargv[which] = savepv(Perl_form(aTHX_ "/dev/fd/%d/%s", */ +/* PerlIO_fileno(PL_rsfp), PL_origargv[which])); */ #if defined(HAS_FCNTL) && defined(F_SETFD) fcntl(PerlIO_fileno(PL_rsfp),F_SETFD,0); /* ensure no close-on-exec */ #endif @@ -3489,7 +3758,7 @@ FIX YOUR KERNEL, OR PUT A C WRAPPER AROUND THIS SCRIPT!\n"); (int)PERL_REVISION, (int)PERL_VERSION, (int)PERL_SUBVERSION), PL_origargv);/* try again */ PERL_FPU_POST_EXEC - Perl_croak(aTHX_ "Can't do setuid\n"); + Perl_croak(aTHX_ "Can't do setuid (suidperl cannot exec perl)\n"); #endif /* IAMSUID */ #else /* !DOSUID */ if (PL_euid != PL_uid || PL_egid != PL_gid) { /* (suidperl doesn't exist, in fact) */ @@ -3590,6 +3859,15 @@ S_init_ids(pTHX) /* Should not happen: */ CHECK_MALLOC_TAINT(PL_uid && (PL_euid != PL_uid || PL_egid != PL_gid)); PL_tainting |= (PL_uid && (PL_euid != PL_uid || PL_egid != PL_gid)); + /* BUG */ + /* PSz 27 Feb 04 + * Should go by suidscript, not uid!=euid: why disallow + * system("ls") in scripts run from setuid things? + * Or, is this run before we check arguments and set suidscript? + * What about SETUID_SCRIPTS_ARE_SECURE_NOW: could we use fdscript then? + * (We never have suidscript, can we be sure to have fdscript?) + * Or must then go by UID checks? See comments in forbid_setid also. + */ } /* This is used very early in the lifetime of the program, @@ -3631,10 +3909,40 @@ Perl_doing_taint(int argc, char *argv[], char *envp[]) STATIC void S_forbid_setid(pTHX_ char *s) { +#ifdef SETUID_SCRIPTS_ARE_SECURE_NOW if (PL_euid != PL_uid) Perl_croak(aTHX_ "No %s allowed while running setuid", s); if (PL_egid != PL_gid) Perl_croak(aTHX_ "No %s allowed while running setgid", s); +#endif /* SETUID_SCRIPTS_ARE_SECURE_NOW */ + /* PSz 29 Feb 04 + * Checks for UID/GID above "wrong": why disallow + * perl -e 'print "Hello\n"' + * from within setuid things?? Simply drop them: replaced by + * fdscript/suidscript and #ifdef IAMSUID checks below. + * + * This may be too late for command-line switches. Will catch those on + * the #! line, after finding the script name and setting up + * fdscript/suidscript. Note that suidperl does not get around to + * parsing (and checking) the switches on the #! line, but checks that + * the two sets are identical. + * + * With SETUID_SCRIPTS_ARE_SECURE_NOW, could we use fdscript, also or + * instead, or would that be "too late"? (We never have suidscript, can + * we be sure to have fdscript?) + * + * Catch things with suidscript (in descendant of suidperl), even with + * right UID/GID. Was already checked in suidperl, with #ifdef IAMSUID, + * below; but I am paranoid. + * + * Also see comments about root running a setuid script, elsewhere. + */ + if (PL_suidscript >= 0) + Perl_croak(aTHX_ "No %s allowed with (suid) fdscript", s); +#ifdef IAMSUID + /* PSz 11 Nov 03 Catch it in suidperl, always! */ + Perl_croak(aTHX_ "No %s allowed in suidperl", s); +#endif /* IAMSUID */ } void @@ -4419,7 +4727,7 @@ Perl_my_failure_exit(pTHX) STATUS_NATIVE_SET(44); } else { - if (!vaxc$errno && errno) /* unlikely */ + if (!vaxc$errno) /* unlikely */ STATUS_NATIVE_SET(44); else STATUS_NATIVE_SET(vaxc$errno); diff --git a/gnu/usr.bin/perl/perl.h b/gnu/usr.bin/perl/perl.h index a111047337c..037aa069718 100644 --- a/gnu/usr.bin/perl/perl.h +++ b/gnu/usr.bin/perl/perl.h @@ -1,7 +1,7 @@ /* perl.h * * Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, - * 2000, 2001, 2002, 2003, by Larry Wall and others + * 2000, 2001, 2002, 2003, 2004, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -1803,7 +1803,6 @@ typedef struct ptr_tbl_ent PTR_TBL_ENT_t; typedef struct ptr_tbl PTR_TBL_t; typedef struct clone_params CLONE_PARAMS; - #include "handy.h" #if defined(USE_LARGE_FILES) && !defined(NO_64_BIT_RAWIO) @@ -3072,6 +3071,10 @@ EXTCONST char PL_no_myglob[] INIT("\"my\" variable %s can't be in a package"); EXTCONST char PL_no_localize_ref[] INIT("Can't localize through a reference"); +#ifdef PERL_MALLOC_WRAP +EXTCONST char PL_memory_wrap[] + INIT("panic: memory wrap"); +#endif EXTCONST char PL_uuemap[65] INIT("`!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_"); @@ -4307,6 +4310,19 @@ int flock(int fd, int op); # define PERL_MOUNT_NOSUID M_NOSUID #endif +#if !defined(PERL_MOUNT_NOEXEC) && defined(MOUNT_NOEXEC) +# define PERL_MOUNT_NOEXEC MOUNT_NOEXEC +#endif +#if !defined(PERL_MOUNT_NOEXEC) && defined(MNT_NOEXEC) +# define PERL_MOUNT_NOEXEC MNT_NOEXEC +#endif +#if !defined(PERL_MOUNT_NOEXEC) && defined(MS_NOEXEC) +# define PERL_MOUNT_NOEXEC MS_NOEXEC +#endif +#if !defined(PERL_MOUNT_NOEXEC) && defined(M_NOEXEC) +# define PERL_MOUNT_NOEXEC M_NOEXEC +#endif + #endif /* IAMSUID */ #ifdef I_LIBUTIL @@ -4500,5 +4516,14 @@ extern void moncontrol(int); so that Configure picks them up. */ +/* Source code compatibility cruft: + PERL_XS_APIVERSION is not used, and has been superseded by inc_version_list + It and PERL_PM_APIVERSION are retained for source compatibility in the + 5.8.x maintenance branch. + */ + +#define PERL_XS_APIVERSION "5.8.3" +#define PERL_PM_APIVERSION "5.005" + #endif /* Include guard */ diff --git a/gnu/usr.bin/perl/perlio.c b/gnu/usr.bin/perl/perlio.c index f058df9a6b9..35a982ecc10 100644 --- a/gnu/usr.bin/perl/perlio.c +++ b/gnu/usr.bin/perl/perlio.c @@ -1,5 +1,5 @@ /* - * perlio.c Copyright (c) 1996-2002, Nick Ing-Simmons You may distribute + * perlio.c Copyright (c) 1996-2004, Nick Ing-Simmons You may distribute * under the terms of either the GNU General Public License or the * Artistic License, as specified in the README file. */ @@ -3691,6 +3691,7 @@ PerlIOBuf_write(pTHX_ PerlIO *f, const void *vbuf, Size_t count) { PerlIOBuf *b = PerlIOSelf(f, PerlIOBuf); const STDCHAR *buf = (const STDCHAR *) vbuf; + const STDCHAR *flushptr = buf; Size_t written = 0; if (!b->buf) PerlIO_get_base(f); @@ -3701,32 +3702,26 @@ PerlIOBuf_write(pTHX_ PerlIO *f, const void *vbuf, Size_t count) return 0; } } + if (PerlIOBase(f)->flags & PERLIO_F_LINEBUF) { + flushptr = buf + count; + while (flushptr > buf && *(flushptr - 1) != '\n') + --flushptr; + } while (count > 0) { SSize_t avail = b->bufsiz - (b->ptr - b->buf); if ((SSize_t) count < avail) avail = count; + if (flushptr > buf && flushptr <= buf + avail) + avail = flushptr - buf; PerlIOBase(f)->flags |= PERLIO_F_WRBUF; - if (PerlIOBase(f)->flags & PERLIO_F_LINEBUF) { - while (avail > 0) { - int ch = *buf++; - *(b->ptr)++ = ch; - count--; - avail--; - written++; - if (ch == '\n') { - PerlIO_flush(f); - break; - } - } - } - else { - if (avail) { - Copy(buf, b->ptr, avail, STDCHAR); - count -= avail; - buf += avail; - written += avail; - b->ptr += avail; - } + if (avail) { + Copy(buf, b->ptr, avail, STDCHAR); + count -= avail; + buf += avail; + written += avail; + b->ptr += avail; + if (buf == flushptr) + PerlIO_flush(f); } if (b->ptr >= (b->buf + b->bufsiz)) PerlIO_flush(f); @@ -4718,9 +4713,16 @@ PerlIO_getname(PerlIO *f, char *buf) dTHX; char *name = NULL; #ifdef VMS + bool exported = FALSE; FILE *stdio = PerlIOSelf(f, PerlIOStdio)->stdio; - if (stdio) + if (!stdio) { + stdio = PerlIO_exportFILE(f,0); + exported = TRUE; + } + if (stdio) { name = fgetname(stdio, buf); + if (exported) PerlIO_releaseFILE(f,stdio); + } #else Perl_croak(aTHX_ "Don't know how to get file name"); #endif diff --git a/gnu/usr.bin/perl/perly.fixer b/gnu/usr.bin/perl/perly.fixer index b627a8c2bd4..fec981f2080 100644 --- a/gnu/usr.bin/perl/perly.fixer +++ b/gnu/usr.bin/perl/perly.fixer @@ -23,7 +23,7 @@ gnupatch=patch input=$1 output=$2 -tmp=/tmp/f$$ +tmp=perly$$ inputh=`echo $input|sed 's:\.c$:.h:'` if grep '^#ifdef PERL_CORE' $inputh; then diff --git a/gnu/usr.bin/perl/plan9/config.plan9 b/gnu/usr.bin/perl/plan9/config.plan9 index ef629ff49f4..d1a3de52da7 100644 --- a/gnu/usr.bin/perl/plan9/config.plan9 +++ b/gnu/usr.bin/perl/plan9/config.plan9 @@ -3357,8 +3357,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 "/sys/lib/perl/5.8.3" /**/ -#define PRIVLIB_EXP "/sys/lib/perl/5.8.3" /**/ +#define PRIVLIB "/sys/lib/perl/5.8.5" /**/ +#define PRIVLIB_EXP "/sys/lib/perl/5.8.5" /**/ /* PTRSIZE: * This symbol contains the size of a pointer, so that the C preprocessor @@ -3485,9 +3485,9 @@ * 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 "/sys/lib/perl/5.8.3/site_perl" /**/ -#define SITELIB_EXP "/sys/lib/perl/5.8.3/site_perl" /**/ -#define SITELIB_STEM "/sys/lib/perl/5.8.3/site_perl" /**/ +#define SITELIB "/sys/lib/perl/5.8.5/site_perl" /**/ +#define SITELIB_EXP "/sys/lib/perl/5.8.5/site_perl" /**/ +#define SITELIB_STEM "/sys/lib/perl/5.8.5/site_perl" /**/ /* Size_t_size: * This symbol holds the size of a Size_t in bytes. @@ -3729,41 +3729,6 @@ #define M_VOID /* Xenix strikes again */ #endif -/* PERL_XS_APIVERSION: - * This variable contains the version of the oldest perl binary - * compatible with the present perl. perl.c:incpush() and - * lib/lib.pm will automatically search in /sys/lib/perl/5.8.0/site_perl/386 for older - * directories across major versions back to xs_apiversion. - * This is only useful if you have a perl library directory tree - * structured like the default one. - * See INSTALL for how this works. - * The versioned site_perl directory was introduced in 5.005, - * so that is the lowest possible value. - * Since this can depend on compile time options - * it is set by Configure. Other non-default sources - * of potential incompatibility, such as multiplicity, threads, - * debugging, 64bits, sfio, etc., are not checked for currently, - * though in principle we could go snooping around in old - * Config.pm files. - */ -/* PERL_PM_APIVERSION: - * This variable contains the version of the oldest perl - * compatible with the present perl. (That is, pure perl modules - * written for pm_apiversion will still work for the current - * version). perl.c:incpush() and lib/lib.pm will automatically - * search in /sys/lib/perl/5.8.0/site_perl for older directories across major versions - * back to pm_apiversion. This is only useful if you have a perl - * library directory tree structured like the default one. The - * versioned site_perl library was introduced in 5.005, so that's - * the default setting for this variable. It's hard to imagine - * it changing before Perl6. It is included here for symmetry - * with xs_apiveprsion -- the searching algorithms will - * (presumably) be similar. - * See the INSTALL file for how this works. - */ -#define PERL_XS_APIVERSION "5.8.0" -#define PERL_PM_APIVERSION "5.005" - /* HAS_CRYPT: * This symbol, if defined, indicates that the crypt routine is available * to encrypt passwords and the like. diff --git a/gnu/usr.bin/perl/plan9/config_h.sample b/gnu/usr.bin/perl/plan9/config_h.sample index 8dbae0fae40..1cb53996b20 100644 --- a/gnu/usr.bin/perl/plan9/config_h.sample +++ b/gnu/usr.bin/perl/plan9/config_h.sample @@ -7,7 +7,7 @@ * that running config_h.SH again will wipe out any changes you've made. * For a more permanent change edit config.sh and rerun config_h.SH. * - * $Id: Config_h.U,v 3.0.1.5 1997/02/28 14:57:43 ram Exp $ + * $Id: config_h.sample,v 1.2 2003/12/03 03:02:43 millert Exp $ */ /* @@ -3674,41 +3674,6 @@ #define M_VOID /* Xenix strikes again */ #endif -/* PERL_XS_APIVERSION: - * This variable contains the version of the oldest perl binary - * compatible with the present perl. perl.c:incpush() and - * lib/lib.pm will automatically search in /sys/lib/perl/5.8.0/site_perl/386 for older - * directories across major versions back to xs_apiversion. - * This is only useful if you have a perl library directory tree - * structured like the default one. - * See INSTALL for how this works. - * The versioned site_perl directory was introduced in 5.005, - * so that is the lowest possible value. - * Since this can depend on compile time options - * it is set by Configure. Other non-default sources - * of potential incompatibility, such as multiplicity, threads, - * debugging, 64bits, sfio, etc., are not checked for currently, - * though in principle we could go snooping around in old - * Config.pm files. - */ -/* PERL_PM_APIVERSION: - * This variable contains the version of the oldest perl - * compatible with the present perl. (That is, pure perl modules - * written for pm_apiversion will still work for the current - * version). perl.c:incpush() and lib/lib.pm will automatically - * search in /sys/lib/perl/5.8.0/site_perl for older directories across major versions - * back to pm_apiversion. This is only useful if you have a perl - * library directory tree structured like the default one. The - * versioned site_perl library was introduced in 5.005, so that's - * the default setting for this variable. It's hard to imagine - * it changing before Perl6. It is included here for symmetry - * with xs_apiveprsion -- the searching algorithms will - * (presumably) be similar. - * See the INSTALL file for how this works. - */ -#define PERL_XS_APIVERSION "5.8.0" -#define PERL_PM_APIVERSION "5.005" - /* HAS_CRYPT: * This symbol, if defined, indicates that the crypt routine is available * to encrypt passwords and the like. diff --git a/gnu/usr.bin/perl/pod/perl.pod b/gnu/usr.bin/perl/pod/perl.pod index 5a24950c4e4..5b50092761d 100644 --- a/gnu/usr.bin/perl/pod/perl.pod +++ b/gnu/usr.bin/perl/pod/perl.pod @@ -132,6 +132,8 @@ For ease of access, the Perl manual has been split up into several sections. perlhist Perl history records perldelta Perl changes since previous version + perl584delta Perl changes in version 5.8.4 + perl583delta Perl changes in version 5.8.3 perl582delta Perl changes in version 5.8.2 perl581delta Perl changes in version 5.8.1 perl58delta Perl changes in version 5.8.0 diff --git a/gnu/usr.bin/perl/pod/perl58delta.pod b/gnu/usr.bin/perl/pod/perl58delta.pod index dbdac4345af..1260c0b88c9 100644 --- a/gnu/usr.bin/perl/pod/perl58delta.pod +++ b/gnu/usr.bin/perl/pod/perl58delta.pod @@ -1905,17 +1905,17 @@ for site-wide changes). If your file system supports symbolic links, you can build Perl outside of the source directory by - mkdir /tmp/perl/build/directory - cd /tmp/perl/build/directory + mkdir perl/build/directory + cd perl/build/directory sh /path/to/perl/source/Configure -Dmksymlinks ... -This will create in /tmp/perl/build/directory a tree of symbolic links +This will create in perl/build/directory a tree of symbolic links pointing to files in /path/to/perl/source. The original files are left unaffected. After Configure has finished, you can just say make all test -and Perl will be built and tested, all in /tmp/perl/build/directory. +and Perl will be built and tested, all in perl/build/directory. [561] =item * diff --git a/gnu/usr.bin/perl/pod/perldebug.pod b/gnu/usr.bin/perl/pod/perldebug.pod index ee9fa97d1c7..e44eaafdcb0 100644 --- a/gnu/usr.bin/perl/pod/perldebug.pod +++ b/gnu/usr.bin/perl/pod/perldebug.pod @@ -700,7 +700,7 @@ This module should implement a method named C<new> that returns an object with two methods: C<IN> and C<OUT>. These should return filehandles to use for debugging input and output correspondingly. The C<new> method should inspect an argument containing the value of C<$ENV{PERLDB_NOTTY}> at -startup, or C<"/tmp/perldbtty$$"> otherwise. This file is not +startup, or C<".perldbtty$$"> otherwise. This file is not inspected for proper ownership, so security hazards are theoretically possible. diff --git a/gnu/usr.bin/perl/pod/perldiag.pod b/gnu/usr.bin/perl/pod/perldiag.pod index 1097be9eaf8..7ffda4b0052 100644 --- a/gnu/usr.bin/perl/pod/perldiag.pod +++ b/gnu/usr.bin/perl/pod/perldiag.pod @@ -1361,8 +1361,8 @@ See L<perlfunc/pack>. =item (Do you need to predeclare %s?) -(S) This is an educated guess made in conjunction with the message "%s -found where operator expected". It often means a subroutine or module +(S syntax) This is an educated guess made in conjunction with the message +"%s found where operator expected". It often means a subroutine or module name is being referenced that hasn't been declared yet. This may be because of ordering problems in your file, or because of a missing "sub", "package", "require", or "use" statement. If you're referencing @@ -1382,8 +1382,8 @@ already been freed. =item elseif should be elsif -(S) There is no keyword "elseif" in Perl because Larry thinks it's ugly. -Your code will be interpreted as an attempt to call a method named +(S syntax) There is no keyword "elseif" in Perl because Larry thinks it's +ugly. Your code will be interpreted as an attempt to call a method named "elseif" for the class returned by the following block. This is unlikely to be what you want. @@ -1575,8 +1575,8 @@ when you meant =item %s found where operator expected -(S) The Perl lexer knows whether to expect a term or an operator. If it -sees what it knows to be a term when it was expecting to see an +(S syntax) The Perl lexer knows whether to expect a term or an operator. +If it sees what it knows to be a term when it was expecting to see an operator, it gives you this warning. Usually it indicates that an operator or delimiter was omitted, such as a semicolon. @@ -1711,6 +1711,10 @@ characters in prototypes are $, @, %, *, ;, [, ], &, and \. (F) When using the C<sub> keyword to construct an anonymous subroutine, you must always specify a block of code. See L<perlsub>. +=item Illegal declaration of subroutine %s + +(F) A subroutine was not declared correctly. See L<perlsub>. + =item Illegal division by zero (F) You tried to divide a number by 0. Either something was wrong in @@ -2096,8 +2100,8 @@ can vary from one line to the next. =item (Missing operator before %s?) -(S) This is an educated guess made in conjunction with the message "%s -found where operator expected". Often the missing operator is a comma. +(S syntax) This is an educated guess made in conjunction with the message +"%s found where operator expected". Often the missing operator is a comma. =item Missing right brace on %s @@ -2111,8 +2115,8 @@ were last editing. =item (Missing semicolon on previous line?) -(S) This is an educated guess made in conjunction with the message "%s -found where operator expected". Don't automatically put a semicolon on +(S syntax) This is an educated guess made in conjunction with the message +"%s found where operator expected". Don't automatically put a semicolon on the previous line just because you saw this message. =item Modification of a read-only value attempted @@ -2607,6 +2611,11 @@ remaining memory (or virtual memory) to satisfy the request. However, the request was judged large enough (compile-time default is 64K), so a possibility to shut down by trapping this error is granted. +=item Out of memory during %s extend + +(X) An attempt was made to extend an array, a list, or a string beyond +the largest possible memory allocation. + =item Out of memory during request for %s (X|F) The malloc() function returned 0, indicating there was @@ -2747,6 +2756,10 @@ references to an object. (P) The compiler is screwed up with respect to the map() function. +=item panic: memory wrap + +(P) Something tried to allocate more memory than possible. + =item panic: null array (P) One of the internal array routines was passed a null AV pointer. @@ -3210,6 +3223,12 @@ expression compiler gave it. (P) A "can't happen" error, because safemalloc() should have caught it earlier. +=item Repeated format line will never terminate (~~ and @# incompatible) + +(F) Your format containes the ~~ repeat-until-blank sequence and a +numeric field that will never go blank so that the repetition never +terminates. You might use ^# instead. See L<perlform>. + =item Reversed %s= operator (W syntax) You wrote your assignment operator backwards. The = must @@ -3657,6 +3676,11 @@ linkhood if the last stat that wrote to the stat buffer already went past the symlink to get to the real file. Use an actual filename instead. +=item The 'unique' attribute may only be applied to 'our' variables + +(F) Currently this attribute is not supported on C<my> or C<sub> +declarations. See L<perlfunc/our>. + =item This Perl can't reset CRTL environ elements (%s) =item This Perl can't set CRTL environ elements (%s=%s) @@ -3767,8 +3791,8 @@ C<$tr> or C<$y> may cause this error. =item Transliteration replacement not terminated -(F) The lexer couldn't find the final delimiter of a tr/// or tr[][] -construct. +(F) The lexer couldn't find the final delimiter of a tr///, tr[][], +y/// or y[][] construct. =item '%s' trapped by operation mask @@ -4018,10 +4042,10 @@ Note that under some systems, like OS/2, there may be different flavors of Perl executables, some of which may support fork, some not. Try changing the name you call Perl by to C<perl_>, C<perl__>, and so on. -=item Unsupported script encoding +=item Unsupported script encoding %s (F) Your program file begins with a Unicode Byte Order Mark (BOM) which -declares it to be in a Unicode encoding that Perl cannot yet read. +declares it to be in a Unicode encoding that Perl cannot read. =item Unsupported socket function "%s" called diff --git a/gnu/usr.bin/perl/pod/perlfaq5.pod b/gnu/usr.bin/perl/pod/perlfaq5.pod index ccc8ebeb130..cbb897af3d4 100644 --- a/gnu/usr.bin/perl/pod/perlfaq5.pod +++ b/gnu/usr.bin/perl/pod/perlfaq5.pod @@ -1,6 +1,6 @@ =head1 NAME -perlfaq5 - Files and Formats ($Revision: 1.6 $, $Date: 2003/12/03 03:02:44 $) +perlfaq5 - Files and Formats ($Revision: 1.7 $, $Date: 2004/04/07 21:33:08 $) =head1 DESCRIPTION @@ -141,6 +141,7 @@ temporary files in one process, use a counter: my $count = 0; until (defined(fileno(FH)) || $count++ > 100) { $base_name =~ s/-(\d+)$/"-" . (1 + $1)/e; + # O_EXCL is required for security reasons. sysopen(FH, $base_name, O_WRONLY|O_EXCL|O_CREAT); } if (defined(fileno(FH)) @@ -427,8 +428,8 @@ To open file for update, file must not exist: To open a file without blocking, creating if necessary: - sysopen(FH, "/tmp/somefile", O_WRONLY|O_NDELAY|O_CREAT) - or die "can't open /tmp/somefile: $!": + sysopen(FH, "/foo/somefile", O_WRONLY|O_NDELAY|O_CREAT) + or die "can't open /foo/somefile: $!": Be warned that neither creation nor deletion of files is guaranteed to be an atomic operation over NFS. That is, two processes might both @@ -924,7 +925,7 @@ There's also a File::Tail module from CPAN. If you check L<perlfunc/open>, you'll see that several of the ways to call open() should do the trick. For example: - open(LOG, ">>/tmp/logfile"); + open(LOG, ">>/foo/logfile"); open(STDERR, ">&LOG"); Or even with a literal numeric descriptor: diff --git a/gnu/usr.bin/perl/pod/perlfaq8.pod b/gnu/usr.bin/perl/pod/perlfaq8.pod index 2fceab143f5..22f6a0727c7 100644 --- a/gnu/usr.bin/perl/pod/perlfaq8.pod +++ b/gnu/usr.bin/perl/pod/perlfaq8.pod @@ -1,6 +1,6 @@ =head1 NAME -perlfaq8 - System Interaction ($Revision: 1.17 $, $Date: 2003/01/26 17:44:04 $) +perlfaq8 - System Interaction ($Revision: 1.6 $, $Date: 2003/12/03 03:02:45 $) =head1 DESCRIPTION @@ -749,10 +749,10 @@ but leave its STDOUT to come out our old STDERR: while (<PH>) { } # plus a read To read both a command's STDOUT and its STDERR separately, it's easiest -and safest to redirect them separately to files, and then read from those -files when the program is done: +to redirect them separately to files, and then read from those files +when the program is done: - system("program args 1>/tmp/program.stdout 2>/tmp/program.stderr"); + system("program args 1>program.stdout 2>program.stderr"); Ordering is important in all these examples. That's because the shell processes file descriptor redirections in strictly left to right order. @@ -1063,8 +1063,8 @@ O_NDELAY or O_NONBLOCK flag from the Fcntl module in conjunction with sysopen(): use Fcntl; - sysopen(FH, "/tmp/somefile", O_WRONLY|O_NDELAY|O_CREAT, 0644) - or die "can't open /tmp/somefile: $!": + sysopen(FH, "/foo/somefile", O_WRONLY|O_NDELAY|O_CREAT, 0644) + or die "can't open /foo/somefile: $!": =head2 How do I install a module from CPAN? diff --git a/gnu/usr.bin/perl/pod/perlform.pod b/gnu/usr.bin/perl/pod/perlform.pod index fac7efca35c..6e104bb6497 100644 --- a/gnu/usr.bin/perl/pod/perlform.pod +++ b/gnu/usr.bin/perl/pod/perlform.pod @@ -29,8 +29,9 @@ Output record formats are declared as follows: FORMLIST . -If name is omitted, format "STDOUT" is defined. FORMLIST consists of -a sequence of lines, each of which may be one of three types: +If the name is omitted, format "STDOUT" is defined. A single "." in +column 1 is used to terminate a format. FORMLIST consists of a sequence +of lines, each of which may be one of three types: =over 4 @@ -48,29 +49,106 @@ An argument line supplying values to plug into the previous picture line. =back -Picture lines are printed exactly as they look, except for certain fields -that substitute values into the line. Each field in a picture line starts -with either "@" (at) or "^" (caret). These lines do not undergo any kind -of variable interpolation. The at field (not to be confused with the array -marker @) is the normal kind of field; the other kind, caret fields, are used -to do rudimentary multi-line text block filling. The length of the field -is supplied by padding out the field with multiple "E<lt>", "E<gt>", or "|" -characters to specify, respectively, left justification, right -justification, or centering. If the variable would exceed the width -specified, it is truncated. - -As an alternate form of right justification, you may also use "#" -characters (with an optional ".") to specify a numeric field. This way -you can line up the decimal points. With a "0" (zero) instead of the -first "#", the formatted number will be padded with leading zeroes if -necessary. If any value supplied for these fields contains a newline, -only the text up to the newline is printed. Finally, the special field -"@*" can be used for printing multi-line, nontruncated values; it -should appear by itself on a line. - -The values are specified on the following line in the same order as -the picture fields. The expressions providing the values should be -separated by commas. The expressions are all evaluated in a list context +Picture lines contain output field definitions, intermingled with +literal text. These lines do not undergo any kind of variable interpolation. +Field definitions are made up from a set of characters, for starting and +extending a field to its desired width. This is the complete set of +characters for field definitions: + + @ start of regular field + ^ start of special field + < pad character for left adjustification + | pad character for centering + > pad character for right adjustificat + # pad character for a right justified numeric field + 0 instead of first #: pad number with leading zeroes + . decimal point within a numeric field + ... terminate a text field, show "..." as truncation evidence + @* variable width field for a multi-line value + ^* variable width field for next line of a multi-line value + ~ suppress line with all fields empty + ~~ repeat line until all fields are exhausted + +Each field in a picture line starts with either "@" (at) or "^" (caret), +indicating what we'll call, respectively, a "regular" or "special" field. +The choice of pad characters determines whether a field is textual or +numeric. The tilde operators are not part of a field. Let's look at +the various possibilities in detail. + + +=head2 Text Fields + +The length of the field is supplied by padding out the field with multiple +"E<lt>", "E<gt>", or "|" characters to specify a non-numeric field with, +respectively, left justification, right justification, or centering. +For a regular field, the value (up to the first newline) is taken and +printed according to the selected justification, truncating excess characters. +If you terminate a text field with "...", three dots will be shown if +the value is truncated. A special text field may be used to do rudimentary +multi-line text block filling; see L</Using Fill Mode> for details. + + Example: + format STDOUT = + @<<<<<< @|||||| @>>>>>> + "left", "middle", "right" + . + Output: + left middle right + + +=head2 Numeric Fields + +Using "#" as a padding character specifies a numeric field, with +right justification. An optional "." defines the position of the +decimal point. With a "0" (zero) instead of the first "#", the +formatted number will be padded with leading zeroes if necessary. +A special numeric field is blanked out if the value is undefined. +If the resulting value would exceed the width specified the field is +filled with "#" as overflow evidence. + + Example: + format STDOUT = + @### @.### @##.### @### @### ^#### + 42, 3.1415, undef, 0, 10000, undef + . + Output: + 42 3.142 0.000 0 #### + + +=head2 The Field @* for Variable Width Multi-Line Text + +The field "@*" can be used for printing multi-line, nontruncated +values; it should (but need not) appear by itself on a line. A final +line feed is chomped off, but all other characters are emitted verbatim. + + +=head2 The Field ^* for Variable Width One-line-at-a-time Text + +Like "@*", this is a variable width field. The value supplied must be a +scalar variable. Perl puts the first line (up to the first "\n") of the +text into the field, and then chops off the front of the string so that +the next time the variable is referenced, more of the text can be printed. +The variable will I<not> be restored. + + Example: + $text = "line 1\nline 2\nline 3"; + format STDOUT = + Text: ^* + $text + ~~ ^* + $text + . + Output: + Text: line 1 + line 2 + line 3 + + +=head2 Specifying Values + +The values are specified on the following format line in the same order as +the picture fields. The expressions providing the values must be +separated by commas. They are all evaluated in a list context before the line is processed, so a single list expression could produce multiple list elements. The expressions may be spread out to more than one line if enclosed in braces. If so, the opening brace must be the first @@ -83,29 +161,47 @@ means that, if, for example, the run-time environment happens to specify a German locale, "," will be used instead of the default ".". See L<perllocale> and L<"WARNINGS"> for more information. -Picture fields that begin with ^ rather than @ are treated specially. -With a # field, the field is blanked out if the value is undefined. For -other field types, the caret enables a kind of fill mode. Instead of an -arbitrary expression, the value supplied must be a scalar variable name -that contains a text string. Perl puts as much text as it can into the -field, and then chops off the front of the string so that the next time + +=head2 Using Fill Mode + +On text fields the caret enables a kind of fill mode. Instead of an +arbitrary expression, the value supplied must be a scalar variable +that contains a text string. Perl puts the next portion of the text into +the field, and then chops off the front of the string so that the next time the variable is referenced, more of the text can be printed. (Yes, this means that the variable itself is altered during execution of the write() -call, and is not returned.) Normally you would use a sequence of fields -in a vertical stack to print out a block of text. You might wish to end -the final field with the text "...", which will appear in the output if -the text was too long to appear in its entirety. You can change which -characters are legal to break on by changing the variable C<$:> (that's -$FORMAT_LINE_BREAK_CHARACTERS if you're using the English module) to a +call, and is not restored.) The next portion of text is determined by +a crude line breaking algorithm. You may use the carriage return character +(C<\r>) to force a line break. You can change which characters are legal +to break on by changing the variable C<$:> (that's +$FORMAT_LINE_BREAK_CHARACTERS if you're using the English module) to a list of the desired characters. -Using caret fields can produce variable length records. If the text -to be formatted is short, you can suppress blank lines by putting a -"~" (tilde) character anywhere in the line. The tilde will be translated -to a space upon output. If you put a second tilde contiguous to the -first, the line will be repeated until all the fields on the line are -exhausted. (If you use a field of the at variety, the expression you -supply had better not give the same value every time forever!) +Normally you would use a sequence of fields in a vertical stack associated +with the same scalar variable to print out a block of text. You might wish +to end the final field with the text "...", which will appear in the output +if the text was too long to appear in its entirety. + + +=head2 Suppressing Lines Where All Fields Are Void + +Using caret fields can produce lines where all fields are blank. You can +suppress such lines by putting a "~" (tilde) character anywhere in the +line. The tilde will be translated to a space upon output. + + +=head2 Repeating Format Lines + +If you put two contiguous tilde characters "~~" anywhere into a line, +the line will be repeated until all the fields on the line are exhausted, +i.e. undefined. For special (caret) text fields this will occur sooner or +later, but if you use a text field of the at variety, the expression you +supply had better not give the same value every time forever! (C<shift(@f)> +is a simple example that would work.) Don't use a regular (at) numeric +field in such lines, because it will never go blank. + + +=head2 Top of Form Processing Top-of-form processing is by default handled by a format with the same name as the current filehandle with "_TOP" concatenated to it. @@ -338,11 +434,8 @@ block structure of the program, and, for historical reasons, formats exist outside that block structure. See L<perllocale> for further discussion of locale handling. -Inside of an expression, the whitespace characters \n, \t and \f are -considered to be equivalent to a single space. Thus, you could think -of this filter being applied to each value in the format: - - $value =~ tr/\n\t\f/ /; +Within strings that are to be displayed in a fixed length text field, +each control character is substituted by a space. (But remember the +special meaning of C<\r> when using fill mode.) This is done to avoid +misalignment when control characters "disappear" on some output media. -The remaining whitespace character, \r, forces the printing of a new -line if allowed by the picture line. diff --git a/gnu/usr.bin/perl/pod/perlfunc.pod b/gnu/usr.bin/perl/pod/perlfunc.pod index 66194e66011..fe300187e5b 100644 --- a/gnu/usr.bin/perl/pod/perlfunc.pod +++ b/gnu/usr.bin/perl/pod/perlfunc.pod @@ -661,6 +661,10 @@ You can actually chomp anything that's an lvalue, including an assignment: If you chomp a list, each element is chomped, and the total number of characters removed is returned. +If the C<encoding> pragma is in scope then the lengths returned are +calculated from the length of C<$/> in Unicode characters, which is not +always the same as the length of C<$/> in the native encoding. + Note that parentheses are necessary when you're chomping anything that is not a simple variable. This is because C<chomp $cwd = `pwd`;> is interpreted as C<(chomp $cwd) = `pwd`;>, rather than as @@ -766,10 +770,10 @@ another C<open> on it, because C<open> will close it for you. (See C<open>.) However, an explicit C<close> on an input file resets the line counter (C<$.>), while the implicit close done by C<open> does not. -If the file handle came from a piped open C<close> will additionally -return false if one of the other system calls involved fails or if the +If the file handle came from a piped open, C<close> will additionally +return false if one of the other system calls involved fails, or if the program exits with non-zero status. (If the only problem was that the -program exited non-zero C<$!> will be set to C<0>.) Closing a pipe +program exited non-zero, C<$!> will be set to C<0>.) Closing a pipe also waits for the process executing on the pipe to complete, in case you want to look at the output of the pipe afterwards, and implicitly puts the exit status value of that command into C<$?>. @@ -2090,7 +2094,34 @@ IPs that the connection might have come in on. =item getsockopt SOCKET,LEVEL,OPTNAME -Returns the socket option requested, or undef if there is an error. +Queries the option named OPTNAME associated with SOCKET at a given LEVEL. +Options may exist at multiple protocol levels depending on the socket +type, but at least the uppermost socket level SOL_SOCKET (defined in the +C<Socket> module) will exist. To query options at another level the +protocol number of the appropriate protocol controlling the option +should be supplied. For example, to indicate that an option is to be +interpreted by the TCP protocol, LEVEL should be set to the protocol +number of TCP, which you can get using getprotobyname. + +The call returns a packed string representing the requested socket option, +or C<undef> if there is an error (the error reason will be in $!). What +exactly is in the packed string depends in the LEVEL and OPTNAME, consult +your system documentation for details. A very common case however is that +the option is an integer, in which case the result will be an packed +integer which you can decode using unpack with the C<i> (or C<I>) format. + +An example testing if Nagle's algorithm is turned on on a socket: + + use Socket; + + defined(my $tcp = getprotobyname("tcp")) + or die "Could not determine the protocol number for tcp"; + # my $tcp = Socket::IPPROTO_TCP; # Alternative + my $packed = getsockopt($socket, $tcp, Socket::TCP_NODELAY) + or die "Could not query TCP_NODELAY SOCKEt option: $!"; + my $nodelay = unpack("I", $packed); + print "Nagle's algorithm is turned ", $nodelay ? "off\n" : "on\n"; + =item glob EXPR @@ -2144,22 +2175,13 @@ In scalar context, C<gmtime()> returns the ctime(3) value: $now_string = gmtime; # e.g., "Thu Oct 13 04:54:34 1994" -Also see the C<timegm> function provided by the C<Time::Local> module, -and the strftime(3) function available via the POSIX module. - -This scalar value is B<not> locale dependent (see L<perllocale>), but -is instead a Perl builtin. Also see the C<Time::Local> module, and the -strftime(3) and mktime(3) functions available via the POSIX module. To -get somewhat similar but locale dependent date strings, set up your -locale environment variables appropriately (please see L<perllocale>) -and try for example: +If you need local time instead of GMT use the L</localtime> builtin. +See also the C<timegm> function provided by the C<Time::Local> module, +and the strftime(3) and mktime(3) functions available via the L<POSIX> module. - use POSIX qw(strftime); - $now_string = strftime "%a %b %e %H:%M:%S %Y", gmtime; - -Note that the C<%a> and C<%b> escapes, which represent the short forms -of the day of the week and the month of the year, may not necessarily -be three characters wide in all locales. +This scalar value is B<not> locale dependent (see L<perllocale>), but is +instead a Perl builtin. To get somewhat similar but locale dependent date +strings, see the example in L</localtime>. =item goto LABEL @@ -2526,17 +2548,20 @@ In scalar context, C<localtime()> returns the ctime(3) value: $now_string = localtime; # e.g., "Thu Oct 13 04:54:34 1994" -This scalar value is B<not> locale dependent, see L<perllocale>, but -instead a Perl builtin. Also see the C<Time::Local> module -(to convert the second, minutes, hours, ... back to seconds since the -stroke of midnight the 1st of January 1970, the value returned by -time()), and the strftime(3) and mktime(3) functions available via the -POSIX module. To get somewhat similar but locale dependent date -strings, set up your locale environment variables appropriately -(please see L<perllocale>) and try for example: +This scalar value is B<not> locale dependent but is a Perl builtin. For GMT +instead of local time use the L</gmtime> builtin. See also the +C<Time::Local> module (to convert the second, minutes, hours, ... back to +the integer value returned by time()), and the L<POSIX> module's strftime(3) +and mktime(3) functions. + +To get somewhat similar but locale dependent date strings, set up your +locale environment variables appropriately (please see L<perllocale>) and +try for example: use POSIX qw(strftime); $now_string = strftime "%a %b %e %H:%M:%S %Y", localtime; + # or for GMT formatted appropriately for your locale: + $now_string = strftime "%a %b %e %H:%M:%S %Y", gmtime; Note that the C<%a> and C<%b>, the short forms of the day of the week and the month of the year, may not necessarily be three characters wide. @@ -2928,7 +2953,7 @@ Examples: open(ARTICLE, "caesar <$article |") # ditto or die "Can't start caesar: $!"; - open(EXTRACT, "|sort >/tmp/Tmp$$") # $$ is our process id + open(EXTRACT, "|sort >Tmp$$") # $$ is our process id or die "Can't start sort: $!"; # in memory files @@ -2986,9 +3011,6 @@ C<STDERR> using various methods: print STDOUT "stdout 1\n"; # this works for print STDERR "stderr 1\n"; # subprocesses too - close STDOUT; - close STDERR; - open STDOUT, ">&", $oldout or die "Can't dup \$oldout: $!"; open STDERR, ">&OLDERR" or die "Can't dup OLDERR: $!"; @@ -3239,6 +3261,11 @@ fork() emulation on Windows platforms, or by embedding perl in a multi-threaded application. The C<unique> attribute does nothing in all other environments. +Warning: the current implementation of this attribute operates on the +typeglob associated with the variable; this means that C<our $x : unique> +also has the effect of C<our @x : unique; our %x : unique>. This may be +subject to change. + =item pack TEMPLATE,LIST Takes a LIST of values and converts it into a string using the rules @@ -4248,6 +4275,8 @@ in the opposite order. undef $/; # for efficiency of <> print scalar reverse <>; # character tac, last line tsrif +Used without arguments in scalar context, reverse() reverses C<$_>. + This operator is also handy for inverting a hash, although there are some caveats. If a value is duplicated in the original hash, only one of those can be represented as a key in the inverted hash. Also, this has to @@ -4436,7 +4465,8 @@ You can effect a sleep of 250 milliseconds this way: select(undef, undef, undef, 0.25); Note that whether C<select> gets restarted after signals (say, SIGALRM) -is implementation-dependent. +is implementation-dependent. See also L<perlport> for notes on the +portability of C<select>. B<WARNING>: One should not attempt to mix buffered I/O (like C<read> or <FH>) with C<select>, except as permitted by POSIX, and even @@ -4869,8 +4899,9 @@ Example, assuming array lengths are passed before arrays: =item split -Splits a string into a list of strings and returns that list. By default, -empty leading fields are preserved, and empty trailing ones are deleted. +Splits the string EXPR into a list of strings and returns that list. By +default, empty leading fields are preserved, and empty trailing ones are +deleted. (If all fields are empty, they are considered to be trailing.) In scalar context, returns the number of fields found and splits into the C<@_> array. Use of split in scalar context is deprecated, however, @@ -5330,7 +5361,7 @@ as follows: = stat($filename); Not all fields are supported on all filesystem types. Here are the -meaning of the fields: +meanings of the fields: 0 dev device number of filesystem 1 ino inode number @@ -5348,13 +5379,13 @@ meaning of the fields: (The epoch was at 00:00 January 1, 1970 GMT.) -(*) The ctime field is non-portable, in particular you cannot expect +(*) The ctime field is non-portable. In particular, you cannot expect it to be a "creation time", see L<perlport/"Files and Filesystems"> for details. -If stat is passed the special filehandle consisting of an underline, no +If C<stat> is passed the special filehandle consisting of an underline, no stat is done, but the current contents of the stat structure from the -last stat or filetest are returned. Example: +last C<stat>, C<lstat>, or filetest are returned. Example: if (-x $file && (($d) = stat(_)) && $d < 0) { print "$file is executable NFS file\n"; @@ -5399,7 +5430,7 @@ You can import symbolic mode constants (C<S_IF*>) and functions $is_setgid = S_ISDIR($mode); You could write the last two using the C<-u> and C<-d> operators. -The commonly available S_IF* constants are +The commonly available C<S_IF*> constants are # Permissions: read, write, execute, for user, group, others. @@ -5420,7 +5451,7 @@ The commonly available S_IF* constants are S_IREAD S_IWRITE S_IEXEC -and the S_IF* functions are +and the C<S_IF*> functions are S_IMODE($mode) the part of $mode containing the permission bits and the setuid/setgid/sticky bits @@ -5429,7 +5460,7 @@ and the S_IF* functions are which can be bit-anded with e.g. S_IFREG or with the following functions - # The operators -f, -d, -l, -b, -c, -p, and -s. + # The operators -f, -d, -l, -b, -c, -p, and -S. S_ISREG($mode) S_ISDIR($mode) S_ISLNK($mode) S_ISBLK($mode) S_ISCHR($mode) S_ISFIFO($mode) S_ISSOCK($mode) @@ -5441,10 +5472,8 @@ and the S_IF* functions are S_ISENFMT($mode) S_ISWHT($mode) See your native chmod(2) and stat(2) documentation for more details -about the S_* constants. - -To get status info for a symbolic link instead of the target file -behind the link, use the C<lstat> function, see L</stat>. +about the C<S_*> constants. To get status info for a symbolic link +instead of the target file behind the link, use the C<lstat> function. =item study SCALAR @@ -5630,7 +5659,7 @@ using the C<|>-operator. Some of the most common values are C<O_RDONLY> for opening the file in read-only mode, C<O_WRONLY> for opening the file in write-only mode, -and C<O_RDWR> for opening the file in read-write mode, and. +and C<O_RDWR> for opening the file in read-write mode. For historical reasons, some values work on almost every system supported by perl: zero means read-only, one means write-only, and two @@ -5647,10 +5676,15 @@ process's current C<umask>. In many systems the C<O_EXCL> flag is available for opening files in exclusive mode. This is B<not> locking: exclusiveness means here that -if the file already exists, sysopen() fails. The C<O_EXCL> wins -C<O_TRUNC>. +if the file already exists, sysopen() fails. C<O_EXCL> may not work +on network filesystems, and has no effect unless the C<O_CREAT> flag +is set as well. Setting C<O_CREAT|O_EXCL> prevents the file from +being opened if it is a symbolic link. It does not protect against +symbolic links in the file's path. -Sometimes you may want to truncate an already-existing file: C<O_TRUNC>. +Sometimes you may want to truncate an already-existing file. This +can be done using the C<O_TRUNC> flag. The behavior of +C<O_TRUNC> with C<O_RDONLY> is undefined. You should seldom if ever use C<0644> as argument to C<sysopen>, because that takes away the user's option to have a more permissive umask. @@ -5761,9 +5795,10 @@ indicates a failure to start the program (inspect $! for the reason). Like C<exec>, C<system> allows you to lie to a program about its name if you use the C<system PROGRAM LIST> syntax. Again, see L</exec>. -Because C<system> and backticks block C<SIGINT> and C<SIGQUIT>, -killing the program they're running doesn't actually interrupt -your program. +Since C<SIGINT> and C<SIGQUIT> are ignored during the execution of +C<system>, if you expect your program to terminate on receipt of these +signals you will need to arrange to do so yourself based on the return +value. @args = ("command", "arg1", "arg2"); system(@args) == 0 @@ -5783,7 +5818,6 @@ C<$?> like this: printf "child exited with value %d\n", $? >> 8; } - or more portably by using the W*() calls of the POSIX extension; see L<perlport> for more information. @@ -5953,9 +5987,10 @@ package. =item time Returns the number of non-leap seconds since whatever time the system -considers to be the epoch (that's 00:00:00, January 1, 1904 for Mac OS, -and 00:00:00 UTC, January 1, 1970 for most other systems). -Suitable for feeding to C<gmtime> and C<localtime>. +considers to be the epoch, suitable for feeding to C<gmtime> and +C<localtime>. On most systems the epoch is 00:00:00 UTC, January 1, 1970; +a prominent exception being Mac OS Classic which uses 00:00:00, January 1, +1904 in the current local time zone for its epoch. For measuring time in better granularity than one second, you may use either the Time::HiRes module (from CPAN, and starting from @@ -6592,10 +6627,10 @@ and for other examples. =item wantarray -Returns true if the context of the currently executing subroutine is -looking for a list value. Returns false if the context is looking -for a scalar. Returns the undefined value if the context is looking -for no value (void context). +Returns true if the context of the currently executing subroutine or +eval() block is looking for a list value. Returns false if the context is +looking for a scalar. Returns the undefined value if the context is +looking for no value (void context). return unless defined wantarray; # don't bother doing more my @a = complex_calculation(); diff --git a/gnu/usr.bin/perl/pod/perlguts.pod b/gnu/usr.bin/perl/pod/perlguts.pod index 6fab812e8ee..035188e75ab 100644 --- a/gnu/usr.bin/perl/pod/perlguts.pod +++ b/gnu/usr.bin/perl/pod/perlguts.pod @@ -201,9 +201,22 @@ you can call: SvOK(SV*) The scalar C<undef> value is stored in an SV instance called C<PL_sv_undef>. -Its address can be used whenever an C<SV*> is needed. -However, you have to be careful when using C<&PL_sv_undef> as a value in AVs -or HVs (see L<AVs, HVs and undefined values>). + +Its address can be used whenever an C<SV*> is needed. Make sure that +you don't try to compare a random sv with C<&PL_sv_undef>. For example +when interfacing Perl code, it'll work correctly for: + + foo(undef); + +But won't work when called as: + + $x = undef; + foo($x); + +So to repeat always use SvOK() to check whether an sv is defined. + +Also you have to be careful when using C<&PL_sv_undef> as a value in +AVs or HVs (see L<AVs, HVs and undefined values>). There are also the two values C<PL_sv_yes> and C<PL_sv_no>, which contain boolean TRUE and FALSE values, respectively. Like C<PL_sv_undef>, their @@ -1380,11 +1393,12 @@ and C<num> is the number of elements the stack should be extended by. Now that there is room on the stack, values can be pushed on it using C<PUSHs> macro. The pushed values will often need to be "mortal" (See -L</Reference Counts and Mortality>). +L</Reference Counts and Mortality>): PUSHs(sv_2mortal(newSViv(an_integer))) + PUSHs(sv_2mortal(newSVuv(an_unsigned_integer))) + PUSHs(sv_2mortal(newSVnv(a_double))) PUSHs(sv_2mortal(newSVpv("Some String",0))) - PUSHs(sv_2mortal(newSVnv(3.141592))) And now the Perl program calling C<tzname>, the two values will be assigned as in: @@ -1400,8 +1414,9 @@ This macro automatically adjust the stack for you, if needed. Thus, you do not need to call C<EXTEND> to extend the stack. Despite their suggestions in earlier versions of this document the macros -C<PUSHi>, C<PUSHn> and C<PUSHp> are I<not> suited to XSUBs which return -multiple results, see L</Putting a C value on Perl stack>. +C<(X)PUSH[iunp]> are I<not> suited to XSUBs which return multiple results. +For that, either stick to the C<(X)PUSHs> macros shown above, or use the new +C<m(X)PUSH[iunp]> macros instead; see L</Putting a C value on Perl stack>. For more information, consult L<perlxs> and L<perlxstut>. @@ -1535,7 +1550,7 @@ corresponding parts of its I<target> and puts the I<target> on stack. The macro to put this target on stack is C<PUSHTARG>, and it is directly used in some opcodes, as well as indirectly in zillions of -others, which use it via C<(X)PUSH[pni]>. +others, which use it via C<(X)PUSH[iunp]>. Because the target is reused, you must be careful when pushing multiple values on the stack. The following code will not do what you think: @@ -1547,12 +1562,30 @@ This translates as "set C<TARG> to 10, push a pointer to C<TARG> onto the stack; set C<TARG> to 20, push a pointer to C<TARG> onto the stack". At the end of the operation, the stack does not contain the values 10 and 20, but actually contains two pointers to C<TARG>, which we have set -to 20. If you need to push multiple different values, use C<XPUSHs>, -which bypasses C<TARG>. +to 20. + +If you need to push multiple different values then you should either use +the C<(X)PUSHs> macros, or else use the new C<m(X)PUSH[iunp]> macros, +none of which make use of C<TARG>. The C<(X)PUSHs> macros simply push an +SV* on the stack, which, as noted under L</XSUBs and the Argument Stack>, +will often need to be "mortal". The new C<m(X)PUSH[iunp]> macros make +this a little easier to achieve by creating a new mortal for you (via +C<(X)PUSHmortal>), pushing that onto the stack (extending it if necessary +in the case of the C<mXPUSH[iunp]> macros), and then setting its value. +Thus, instead of writing this to "fix" the example above: + + XPUSHs(sv_2mortal(newSViv(10))) + XPUSHs(sv_2mortal(newSViv(20))) + +you can simply write: + + mXPUSHi(10) + mXPUSHi(20) -On a related note, if you do use C<(X)PUSH[npi]>, then you're going to +On a related note, if you do use C<(X)PUSH[iunp]>, then you're going to need a C<dTARG> in your variable declarations so that the C<*PUSH*> -macros can make use of the local variable C<TARG>. +macros can make use of the local variable C<TARG>. See also C<dTARGET> +and C<dXSTARG>. =head2 Scratchpads diff --git a/gnu/usr.bin/perl/pod/perlhist.pod b/gnu/usr.bin/perl/pod/perlhist.pod index a114e497ba3..b944102193e 100644 --- a/gnu/usr.bin/perl/pod/perlhist.pod +++ b/gnu/usr.bin/perl/pod/perlhist.pod @@ -25,7 +25,8 @@ Perl history in brief, by Larry Wall: Larry Wall, Andy Dougherty, Tom Christiansen, Charles Bailey, Nick Ing-Simmons, Chip Salzenberg, Tim Bunce, Malcolm Beattie, Gurusamy Sarathy, Graham Barr, Jarkko Hietaniemi, Hugo van der Sanden, -Michael Schwern, Rafael Garcia-Suarez, Nicholas Clark, Richard Clamp. +Michael Schwern, Rafael Garcia-Suarez, Nicholas Clark, Richard Clamp, +Leon Brocard. =head2 PUMPKIN? @@ -319,6 +320,9 @@ the strings?). 5.005_03-MT5 1999-Jan-28 5.005_03-MT6 1999-Mar-05 5.005_03 1999-Mar-28 + Leon 5.005_04-RC1 2004-Feb-05 + 5.005_04-RC2 2004-Feb-18 + 5.005_04 2004-Feb-23 Sarathy 5.005_50 1998-Jul-26 The 5.6 development track. 5.005_51 1998-Aug-10 @@ -370,8 +374,15 @@ the strings?). 5.8.2 2003-Nov-05 5.8.3-RC1 2004-Jan-07 5.8.3 2004-Jan-14 + 5.8.4-RC1 2004-Apr-05 + 5.8.4-RC2 2004-Apr-15 + 5.8.4 2004-Apr-21 + 5.8.5-RC1 2004-Jul-06 + 5.8.5-RC2 2004-Jul-08 + 5.8.5 2004-Jul-19 Hugo 5.9.0 2003-Oct-27 + Rafael 5.9.1 2004-Mar-16 =head2 SELECTED RELEASE SIZES diff --git a/gnu/usr.bin/perl/pod/perlintern.pod b/gnu/usr.bin/perl/pod/perlintern.pod index d4a8c399cce..8a2608d4330 100644 --- a/gnu/usr.bin/perl/pod/perlintern.pod +++ b/gnu/usr.bin/perl/pod/perlintern.pod @@ -297,7 +297,7 @@ Locate the CV corresponding to the currently executing sub or eval. If db_seqp is non_null, skip CVs that are in the DB package and populate *db_seqp with the cop sequence number at the point that the DB:: code was entered. (allows debuggers to eval in the scope of the breakpoint rather -than in in the scope of the debuger itself). +than in in the scope of the debugger itself). CV* find_runcv(U32 *db_seqp) diff --git a/gnu/usr.bin/perl/pod/perlipc.pod b/gnu/usr.bin/perl/pod/perlipc.pod index 5f8af22550b..5d916e832e5 100644 --- a/gnu/usr.bin/perl/pod/perlipc.pod +++ b/gnu/usr.bin/perl/pod/perlipc.pod @@ -1030,7 +1030,7 @@ Here's a sample Unix-domain client: use strict; my ($rendezvous, $line); - $rendezvous = shift || '/tmp/catsock'; + $rendezvous = shift || 'catsock'; socket(SOCK, PF_UNIX, SOCK_STREAM, 0) || die "socket: $!"; connect(SOCK, sockaddr_un($rendezvous)) || die "connect: $!"; while (defined($line = <SOCK>)) { @@ -1051,7 +1051,7 @@ to be on the localhost, and thus everything works right. sub spawn; # forward declaration sub logmsg { print "$0 $$: @_ at ", scalar localtime, "\n" } - my $NAME = '/tmp/catsock'; + my $NAME = 'catsock'; my $uaddr = sockaddr_un($NAME); my $proto = getprotobyname('tcp'); @@ -1610,7 +1610,7 @@ A small example demonstrating SysV message queues: my $id = msgget(IPC_PRIVATE, IPC_CREAT | S_IRWXU); my $sent = "message"; - my $type = 1234; + my $type_sent = 1234; my $rcvd; my $type_rcvd; @@ -1658,15 +1658,6 @@ signals and to stick with simple TCP and UDP socket operations; e.g., don't try to pass open file descriptors over a local UDP datagram socket if you want your code to stand a chance of being portable. -As mentioned in the signals section, because few vendors provide C -libraries that are safely re-entrant, the prudent programmer will do -little else within a handler beyond setting a numeric variable that -already exists; or, if locked into a slow (restarting) system call, -using die() to raise an exception and longjmp(3) out. In fact, even -these may in some cases cause a core dump. It's probably best to avoid -signals except where they are absolutely inevitable. This -will be addressed in a future release of Perl. - =head1 AUTHOR Tom Christiansen, with occasional vestiges of Larry Wall's original diff --git a/gnu/usr.bin/perl/pod/perlmod.pod b/gnu/usr.bin/perl/pod/perlmod.pod index 084aef2f025..cf8ccc5b2b8 100644 --- a/gnu/usr.bin/perl/pod/perlmod.pod +++ b/gnu/usr.bin/perl/pod/perlmod.pod @@ -383,7 +383,7 @@ create a file called F<Some/Module.pm> and start with this template: # set the version for version checking $VERSION = 1.00; # if using RCS/CVS, this may be preferred - $VERSION = sprintf "%d.%03d", q$Revision: 1.7 $ =~ /(\d+)/g; + $VERSION = sprintf "%d.%03d", q$Revision: 1.8 $ =~ /(\d+)/g; @ISA = qw(Exporter); @EXPORT = qw(&func1 &func2 &func4); @@ -539,11 +539,14 @@ between different threads. These threads can be used by using the C<threads> module or by doing fork() on win32 (fake fork() support). When a thread is cloned all Perl data is cloned, however non-Perl data cannot be cloned automatically. Perl after 5.7.2 has support for the C<CLONE> -special subroutine . In C<CLONE> you can do whatever you need to do, +special subroutine. In C<CLONE> you can do whatever you need to do, like for example handle the cloning of non-Perl data, if necessary. -C<CLONE> will be executed once for every package that has it defined -(or inherits it). It will be called in the context of the new thread, -so all modifications are made in the new area. +C<CLONE> will be called once as a class method for every package that has it +defined (or inherits it). It will be called in the context of the new thread, +so all modifications are made in the new area. Currently CLONE is called with +no parameters other than the invocant package name, but code should not assume +that this will remain unchanged, as it is likely that in future extra parameters +will be passed in to give more information about the state of cloning. If you want to CLONE all objects you will need to keep track of them per package. This is simply done using a hash and Scalar::Util::weaken(). diff --git a/gnu/usr.bin/perl/pod/perlmodinstall.pod b/gnu/usr.bin/perl/pod/perlmodinstall.pod index d30e777436c..a2bc962abad 100644 --- a/gnu/usr.bin/perl/pod/perlmodinstall.pod +++ b/gnu/usr.bin/perl/pod/perlmodinstall.pod @@ -138,7 +138,7 @@ If you used WinZip, this was already done for you. C. BUILD You'll need the C<nmake> utility, available at -ftp://ftp.microsoft.com/Softlib/MSLFILES/nmake15.exe +http://download.microsoft.com/download/vc15/Patch/1.52/W95/EN-US/nmake15.exe or dmake, available on CPAN. http://search.cpan.org/dist/dmake/ diff --git a/gnu/usr.bin/perl/pod/perlobj.pod b/gnu/usr.bin/perl/pod/perlobj.pod index 156a0b85067..891ebe37f25 100644 --- a/gnu/usr.bin/perl/pod/perlobj.pod +++ b/gnu/usr.bin/perl/pod/perlobj.pod @@ -97,9 +97,11 @@ so that your constructors may be inherited: } Or if you expect people to call not just C<< CLASS->new() >> but also -C<< $obj->new() >>, then use something like this. The initialize() -method used will be of whatever $class we blessed the -object into: +C<< $obj->new() >>, then use something like the following. (Note that using +this to call new() on an instance does not automatically perform any +copying. If you want a shallow or deep copy of an object, you'll have to +specifically allow for that.) The initialize() method used will be of +whatever $class we blessed the object into: sub new { my $this = shift; @@ -485,9 +487,8 @@ if you don't care to leak. For example, here's a self-referential node such as one might use in a sophisticated tree structure: sub new_node { - my $self = shift; - my $class = ref($self) || $self; - my $node = {}; + my $class = shift; + my $node = {}; $node->{LEFT} = $node->{RIGHT} = $node; $node->{DATA} = [ @_ ]; return bless $node => $class; @@ -535,15 +536,15 @@ two-phased garbage collection: warn "time to die..."; exit; -When run as F</tmp/test>, the following output is produced: +When run as F</foo/test>, the following output is produced: - starting program at /tmp/test line 18. - CREATING SCALAR(0x8e5b8) at /tmp/test line 7. - CREATING SCALAR(0x8e57c) at /tmp/test line 7. - leaving block at /tmp/test line 23. - DESTROYING Subtle=SCALAR(0x8e5b8) at /tmp/test line 13. - just exited block at /tmp/test line 26. - time to die... at /tmp/test line 27. + starting program at /foo/test line 18. + CREATING SCALAR(0x8e5b8) at /foo/test line 7. + CREATING SCALAR(0x8e57c) at /foo/test line 7. + leaving block at /foo/test line 23. + DESTROYING Subtle=SCALAR(0x8e5b8) at /foo/test line 13. + just exited block at /foo/test line 26. + time to die... at /foo/test line 27. DESTROYING Subtle=SCALAR(0x8e57c) during global destruction. Notice that "global destruction" bit there? That's the thread diff --git a/gnu/usr.bin/perl/pod/perlop.pod b/gnu/usr.bin/perl/pod/perlop.pod index 352deddf7e1..b24036a395e 100644 --- a/gnu/usr.bin/perl/pod/perlop.pod +++ b/gnu/usr.bin/perl/pod/perlop.pod @@ -144,6 +144,17 @@ value. print $i++; # prints 0 print ++$j; # prints 1 +Note that just as in C, Perl doesn't define B<when> the variable is +incremented or decremented. You just know it will be done sometime +before or after the value is returned. This also means that modifying +a variable twice in the same statement will lead to undefined behaviour. +Avoid statements like: + + $i = $i ++; + print ++ $i + $i ++; + +Perl will not guarantee what the result of the above statements is. + The auto-increment operator has a little extra builtin magic to it. If you increment a variable that is numeric, or that has ever been used in a numeric context, you get a normal increment. If, however, the @@ -238,7 +249,9 @@ Binary "x" is the repetition operator. In scalar context or if the left operand is not enclosed in parentheses, it returns a string consisting of the left operand repeated the number of times specified by the right operand. In list context, if the left operand is enclosed in -parentheses, it repeats the list. +parentheses, it repeats the list. If the right operand is zero or +negative, it returns an empty string or an empty list, depending on the +context. print '-' x 80; # print row of dashes @@ -519,7 +532,27 @@ As a scalar operator: close ARGV if eof; # reset $. each file } -As a list operator: +Here's a simple example to illustrate the difference between +the two range operators: + + @lines = (" - Foo", + "01 - Bar", + "1 - Baz", + " - Quux"); + + foreach(@lines) + { + if (/0/ .. /1/) + { + print "$_\n"; + } + } + +This program will print only the line containing "Bar". If +the range operator is changed to C<...>, it will also print the +"Baz" line. + +And now some examples as a list operator: for (101 .. 200) { print; } # print $_ 100 times @foo = @foo[0 .. $#foo]; # an expensive no-op @@ -1160,10 +1193,10 @@ but leave its STDOUT to come out the old STDERR: $output = `cmd 3>&1 1>&2 2>&3 3>&-`; To read both a command's STDOUT and its STDERR separately, it's easiest -and safest to redirect them separately to files, and then read from those -files when the program is done: +to redirect them separately to files, and then read from those files +when the program is done: - system("program args 1>/tmp/program.stdout 2>/tmp/program.stderr"); + system("program args 1>program.stdout 2>program.stderr"); Using single-quote as a delimiter protects the command from Perl's double-quote interpolation, passing it on to the shell instead: diff --git a/gnu/usr.bin/perl/pod/perlrun.pod b/gnu/usr.bin/perl/pod/perlrun.pod index 9f8164ddbaa..3567ae7d693 100644 --- a/gnu/usr.bin/perl/pod/perlrun.pod +++ b/gnu/usr.bin/perl/pod/perlrun.pod @@ -819,13 +819,41 @@ values of @INC. =item B<-V:>I<name> -Prints to STDOUT the value of the named configuration variable. +Prints to STDOUT the value of the named configuration variable(s), +with multiples when your query looks like a regex. For example, - $ perl -V:man.dir + $ perl -V:lib. + libs='-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc'; + libc='/lib/libc-2.2.4.so'; + $ perl -V:lib.* + libpth='/usr/local/lib /lib /usr/lib'; + libs='-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc'; + lib_ext='.a'; + libc='/lib/libc-2.2.4.so'; + libperl='libperl.a'; + .... -will provide strong clues about what your MANPATH variable should -be set to in order to access the Perl documentation. +Additionally, extra colons can be used to control formatting. A +trailing colon suppresses the linefeed and terminator ';', allowing +you to embed queries into shell commands. (mnemonic: PATH separator +':'.) + + $ echo "compression-vars: " `perl -V:z.*: ` " are here !" + compression-vars: zcat='' zip='zip' are here ! + +A leading colon removes the 'name=' part of the response, this allows +you to map to the name you need. + + $ echo "goodvfork="`./perl -Ilib -V::usevfork` + goodvfork=false; + +Leading and trailing colons can be used together if you need +positional parameter values without the names. Note that in the case +below, the PERL_API params are returned in alphabetical order. + + $ echo building_on `perl -V::osname: -V::PERL_API_.*:` now + building_on 'linux' '5' '1' '9' now =item B<-w> @@ -854,6 +882,8 @@ See L<perllexwarn>. Disables all warnings regardless of C<use warnings> or C<$^W>. See L<perllexwarn>. +=item B<-x> + =item B<-x> I<directory> tells Perl that the program is embedded in a larger chunk of unrelated @@ -965,7 +995,7 @@ Use with the same care as is reserved for nitroglycerin. =item :raw -A pseudolayer that manipulates other layers. Applying the <:raw> +A pseudolayer that manipulates other layers. Applying the C<:raw> layer is equivalent to calling C<binmode($fh)>. It makes the stream pass each byte as-is without any translation. In particular CRLF translation, and/or :utf8 intuited from locale are disabled. diff --git a/gnu/usr.bin/perl/pod/perlsub.pod b/gnu/usr.bin/perl/pod/perlsub.pod index ba95db6a0ed..31e4f59a3cf 100644 --- a/gnu/usr.bin/perl/pod/perlsub.pod +++ b/gnu/usr.bin/perl/pod/perlsub.pod @@ -67,7 +67,8 @@ Assigning to the whole array C<@_> removes that aliasing, and does not update any arguments. The return value of a subroutine is the value of the last expression -evaluated. More explicitly, a C<return> statement may be used to exit the +evaluated by that sub, or the empty list in the case of an empty sub. +More explicitly, a C<return> statement may be used to exit the subroutine, optionally specifying the returned value, which will be evaluated in the appropriate context (list, scalar, or void) depending on the context of the subroutine call. If you specify no return value, @@ -1131,7 +1132,17 @@ The following functions would all be inlined: sub FLAG_MASK () { FLAG_FOO | FLAG_BAR } sub OPT_BAZ () { not (0x1B58 & FLAG_MASK) } - sub BAZ_VAL () { + + sub N () { int(OPT_BAZ) / 3 } + + sub FOO_SET () { 1 if FLAG_MASK & FLAG_FOO } + +Be aware that these will not be inlined; as they contain inner scopes, +the constant folding doesn't reduce them to a single constant: + + sub foo_set () { if (FLAG_MASK & FLAG_FOO) { 1 } } + + sub baz_val () { if (OPT_BAZ) { return 23; } @@ -1140,13 +1151,6 @@ The following functions would all be inlined: } } - sub N () { int(BAZ_VAL) / 3 } - BEGIN { - my $prod = 1; - for (1..N) { $prod *= $_ } - sub N_FACTORIAL () { $prod } - } - If you redefine a subroutine that was eligible for inlining, you'll get a mandatory warning. (You can use this warning to tell whether or not a particular subroutine is considered constant.) The warning is diff --git a/gnu/usr.bin/perl/pod/perlthrtut.pod b/gnu/usr.bin/perl/pod/perlthrtut.pod index 7cac46fc55f..517fdd1b86d 100644 --- a/gnu/usr.bin/perl/pod/perlthrtut.pod +++ b/gnu/usr.bin/perl/pod/perlthrtut.pod @@ -985,9 +985,10 @@ Further examples of process-scope changes include umask() and changing uids/gids. Thinking of mixing fork() and threads? Please lie down and wait -until the feeling passes-- but in case you really want to know, -the semantics is that fork() duplicates all the threads. -(In UNIX, at least, other platforms will do something different.) +until the feeling passes. Be aware that the semantics of fork() vary +between platforms. For example, some UNIX systems copy all the current +threads into the child process, while others only copy the thread that +called fork(). You have been warned! Similarly, mixing signals and threads should not be attempted. Implementations are platform-dependent, and even the POSIX diff --git a/gnu/usr.bin/perl/pod/perltie.pod b/gnu/usr.bin/perl/pod/perltie.pod index 30a0b1df202..429a6627701 100644 --- a/gnu/usr.bin/perl/pod/perltie.pod +++ b/gnu/usr.bin/perl/pod/perltie.pod @@ -876,7 +876,7 @@ passed to the printf function. sub PRINTF { shift; my $fmt = shift; - print sprintf($fmt, @_)."\n"; + print sprintf($fmt, @_); } =item READ this, LIST diff --git a/gnu/usr.bin/perl/pod/perltoc.pod b/gnu/usr.bin/perl/pod/perltoc.pod index 44f27cb0ab8..5f601c2e3a9 100644 --- a/gnu/usr.bin/perl/pod/perltoc.pod +++ b/gnu/usr.bin/perl/pod/perltoc.pod @@ -829,7 +829,7 @@ Interaction, perlfaq9 - Networking =back -=head2 perlfaq1 - General Questions About Perl ($Revision: 1.8 $, $Date: +=head2 perlfaq1 - General Questions About Perl ($Revision: 1.9 $, $Date: 2003/07/09 15:47:28 $) =over 4 @@ -878,8 +878,8 @@ Scheme, or Tcl? =back -=head2 perlfaq2 - Obtaining and Learning about Perl ($Revision: 1.8 $, -$Date: 2004/04/07 21:33:09 $) +=head2 perlfaq2 - Obtaining and Learning about Perl ($Revision: 1.9 $, +$Date: 2004/08/09 18:10:16 $) =over 4 @@ -934,7 +934,7 @@ References, Tutorials, Task-Oriented, Special Topics =back -=head2 perlfaq3 - Programming Tools ($Revision: 1.8 $, $Date: 2003/08/24 +=head2 perlfaq3 - Programming Tools ($Revision: 1.9 $, $Date: 2003/08/24 05:26:59 $) =over 4 @@ -1021,7 +1021,7 @@ my C program; what am I doing wrong? =back -=head2 perlfaq4 - Data Manipulation ($Revision: 1.8 $, $Date: 2003/10/02 +=head2 perlfaq4 - Data Manipulation ($Revision: 1.9 $, $Date: 2003/10/02 04:44:33 $) =over 4 @@ -1240,7 +1240,7 @@ array of hashes or arrays? =back -=head2 perlfaq5 - Files and Formats ($Revision: 1.8 $, $Date: 2003/01/26 +=head2 perlfaq5 - Files and Formats ($Revision: 1.9 $, $Date: 2003/01/26 17:45:46 $) =over 4 @@ -1336,7 +1336,7 @@ protected files? Isn't this a bug in Perl? =back -=head2 perlfaq6 - Regular Expressions ($Revision: 1.8 $, $Date: 2003/01/03 +=head2 perlfaq6 - Regular Expressions ($Revision: 1.9 $, $Date: 2003/01/03 20:05:28 $) =over 4 @@ -1403,7 +1403,7 @@ file? =back -=head2 perlfaq7 - General Perl Language Issues ($Revision: 1.8 $, $Date: +=head2 perlfaq7 - General Perl Language Issues ($Revision: 1.9 $, $Date: 2003/07/24 02:17:21 $) =over 4 @@ -1485,7 +1485,7 @@ methods? =back -=head2 perlfaq8 - System Interaction ($Revision: 1.8 $, $Date: 2003/01/26 +=head2 perlfaq8 - System Interaction ($Revision: 1.9 $, $Date: 2003/01/26 17:44:04 $) =over 4 @@ -1613,7 +1613,7 @@ search path? =back -=head2 perlfaq9 - Networking ($Revision: 1.8 $, $Date: 2003/01/31 17:36:57 +=head2 perlfaq9 - Networking ($Revision: 1.9 $, $Date: 2003/01/31 17:36:57 $) =over 4 @@ -2253,7 +2253,7 @@ B<-I>I<directory>, B<-l>[I<octnum>], B<-m>[B<->]I<module>, B<-M>[B<->]I<module>, B<-M>[B<->]I<'module ...'>, B<-[mM]>[B<->]I<module=arg[,arg]...>, B<-n>, B<-p>, B<-P>, B<-s>, B<-S>, B<-t>, B<-T>, B<-u>, B<-U>, B<-v>, B<-V>, B<-V:>I<name>, B<-w>, B<-W>, -B<-X>, B<-x> I<directory> +B<-X>, B<-x>, B<-x> I<directory> =back @@ -2545,6 +2545,24 @@ C<(?(condition)yes-pattern|no-pattern)> =over 4 +=item Text Fields + +=item Numeric Fields + +=item The Field @* for Variable Width Multi-Line Text + +=item The Field ^* for Variable Width One-line-at-a-time Text + +=item Specifying Values + +=item Using Fill Mode + +=item Suppressing Lines Where All Fields Are Void + +=item Repeating Format Lines + +=item Top of Form Processing + =item Format Variables =back @@ -3340,8 +3358,8 @@ LC_NUMERIC, LC_TIME, LANG =item Important Caveats Input and Output Layers, Regular Expressions, C<use utf8> still needed to -enable UTF-8/UTF-EBCDIC in scripts, C<use encoding> needed to upgrade -non-Latin-1 byte strings +enable UTF-8/UTF-EBCDIC in scripts, BOM-marked scripts and UTF-16 scripts +autodetected, C<use encoding> needed to upgrade non-Latin-1 byte strings =item Byte and Character Semantics @@ -4221,6 +4239,8 @@ C<!!!>, C<!!>, C<!> =item The RETVAL Variable +=item Returning SVs, AVs and HVs through RETVAL + =item The MODULE Keyword =item The PACKAGE Keyword @@ -4610,7 +4630,7 @@ GIMME, GIMME_V, G_ARRAY, G_DISCARD, G_EVAL, G_NOARGS, G_SCALAR, G_VOID AvFILL, av_clear, av_delete, av_exists, av_extend, av_fetch, av_fill, av_len, av_make, av_pop, av_push, av_shift, av_store, av_undef, av_unshift, -get_av, newAV, Nullav, sortsv +get_av, newAV, sortsv =item Callback Functions @@ -4627,7 +4647,7 @@ perl_clone =item CV Manipulation Functions -CvSTASH, get_cv, Nullcv +CvSTASH, get_cv =item Embedding Functions @@ -4649,26 +4669,27 @@ gv_fetchmeth_autoload, gv_stashpv, gv_stashsv =item Handy Values -HEf_SVKEY, Nullch, Nullsv +Nullav, Nullch, Nullcv, Nullhv, Nullsv =item Hash Manipulation Functions -get_hv, HeHASH, HeKEY, HeKLEN, HePV, HeSVKEY, HeSVKEY_force, HeSVKEY_set, -HeVAL, HvNAME, hv_clear, hv_clear_placeholders, hv_delete, hv_delete_ent, -hv_exists, hv_exists_ent, hv_fetch, hv_fetch_ent, hv_iterinit, hv_iterkey, -hv_iterkeysv, hv_iternext, hv_iternextsv, hv_iternext_flags, hv_iterval, -hv_magic, hv_scalar, hv_store, hv_store_ent, hv_undef, newHV, Nullhv +get_hv, HEf_SVKEY, HeHASH, HeKEY, HeKLEN, HePV, HeSVKEY, HeSVKEY_force, +HeSVKEY_set, HeVAL, HvNAME, hv_clear, hv_clear_placeholders, hv_delete, +hv_delete_ent, hv_exists, hv_exists_ent, hv_fetch, hv_fetch_ent, +hv_iterinit, hv_iterkey, hv_iterkeysv, hv_iternext, hv_iternextsv, +hv_iternext_flags, hv_iterval, hv_magic, hv_scalar, hv_store, hv_store_ent, +hv_undef, newHV =item Magical Functions mg_clear, mg_copy, mg_find, mg_free, mg_get, mg_length, mg_magical, mg_set, SvGETMAGIC, SvLOCK, SvSETMAGIC, SvSetMagicSV, SvSetMagicSV_nosteal, -SvSetSV, SvSetSV_nosteal, SvSHARE +SvSetSV, SvSetSV_nosteal, SvSHARE, SvUNLOCK =item Memory Management -Copy, Move, New, Newc, NEWSV, Newz, Poison, Renew, Renewc, Safefree, -savepv, savepvn, savesharedpv, StructCopy, Zero +Copy, Move, New, Newc, Newz, Poison, Renew, Renewc, Safefree, savepv, +savepvn, savesharedpv, StructCopy, Zero =item Miscellaneous Functions @@ -4690,12 +4711,13 @@ pad_sv =item Stack Manipulation Macros -dMARK, dORIGMARK, dSP, EXTEND, MARK, ORIGMARK, POPi, POPl, POPn, POPp, -POPpbytex, POPpx, POPs, PUSHi, PUSHMARK, PUSHn, PUSHp, PUSHs, PUSHu, -PUTBACK, SP, SPAGAIN, XPUSHi, XPUSHn, XPUSHp, XPUSHs, XPUSHu, XSRETURN, -XSRETURN_IV, XSRETURN_NO, XSRETURN_NV, XSRETURN_PV, XSRETURN_UNDEF, -XSRETURN_UV, XSRETURN_YES, XST_mIV, XST_mNO, XST_mNV, XST_mPV, XST_mUNDEF, -XST_mYES +dMARK, dORIGMARK, dSP, EXTEND, MARK, mPUSHi, mPUSHn, mPUSHp, mPUSHu, +mXPUSHi, mXPUSHn, mXPUSHp, mXPUSHu, ORIGMARK, POPi, POPl, POPn, POPp, +POPpbytex, POPpx, POPs, PUSHi, PUSHMARK, PUSHmortal, PUSHn, PUSHp, PUSHs, +PUSHu, PUTBACK, SP, SPAGAIN, XPUSHi, XPUSHmortal, XPUSHn, XPUSHp, XPUSHs, +XPUSHu, XSRETURN, XSRETURN_EMPTY, XSRETURN_IV, XSRETURN_NO, XSRETURN_NV, +XSRETURN_PV, XSRETURN_UNDEF, XSRETURN_UV, XSRETURN_YES, XST_mIV, XST_mNO, +XST_mNV, XST_mPV, XST_mUNDEF, XST_mYES =item SV Flags @@ -4703,20 +4725,20 @@ svtype, SVt_IV, SVt_NV, SVt_PV, SVt_PVAV, SVt_PVCV, SVt_PVHV, SVt_PVMG =item SV Manipulation Functions -get_sv, looks_like_number, newRV_inc, newRV_noinc, newSV, newSViv, newSVnv, -newSVpv, newSVpvf, newSVpvn, newSVpvn_share, newSVrv, newSVsv, newSVuv, -SvCUR, SvCUR_set, SvEND, SvGROW, SvIOK, SvIOKp, SvIOK_notUV, SvIOK_off, -SvIOK_on, SvIOK_only, SvIOK_only_UV, SvIOK_UV, SvIsCOW, +get_sv, looks_like_number, newRV_inc, newRV_noinc, NEWSV, newSV, newSViv, +newSVnv, newSVpv, newSVpvf, newSVpvn, newSVpvn_share, newSVrv, newSVsv, +newSVuv, SvCUR, SvCUR_set, SvEND, SvGROW, SvIOK, SvIOKp, SvIOK_notUV, +SvIOK_off, SvIOK_on, SvIOK_only, SvIOK_only_UV, SvIOK_UV, SvIsCOW, SvIsCOW_shared_hash, SvIV, SvIVx, SvIVX, SvLEN, SvNIOK, SvNIOKp, -SvNIOK_off, SvNOK, SvNOKp, SvNOK_off, SvNOK_on, SvNOK_only, SvNV, SvNVX, -SvNVx, SvOK, SvOOK, SvPOK, SvPOKp, SvPOK_off, SvPOK_on, SvPOK_only, +SvNIOK_off, SvNOK, SvNOKp, SvNOK_off, SvNOK_on, SvNOK_only, SvNV, SvNVx, +SvNVX, SvOK, SvOOK, SvPOK, SvPOKp, SvPOK_off, SvPOK_on, SvPOK_only, SvPOK_only_UTF8, SvPV, SvPVbyte, SvPVbytex, SvPVbytex_force, SvPVbyte_force, SvPVbyte_nolen, SvPVutf8, SvPVutf8x, SvPVutf8x_force, -SvPVutf8_force, SvPVutf8_nolen, SvPVx, SvPVX, SvPV_force, SvPV_force_nomg, +SvPVutf8_force, SvPVutf8_nolen, SvPVX, SvPVx, SvPV_force, SvPV_force_nomg, SvPV_nolen, SvREFCNT, SvREFCNT_dec, SvREFCNT_inc, SvROK, SvROK_off, SvROK_on, SvRV, SvSTASH, SvTAINT, SvTAINTED, SvTAINTED_off, SvTAINTED_on, -SvTRUE, SvTYPE, SvUNLOCK, SvUOK, SvUPGRADE, SvUTF8, SvUTF8_off, SvUTF8_on, -SvUV, SvUVX, SvUVx, sv_2bool, sv_2cv, sv_2io, sv_2iv, sv_2mortal, sv_2nv, +SvTRUE, SvTYPE, SvUOK, SvUPGRADE, SvUTF8, SvUTF8_off, SvUTF8_on, SvUV, +SvUVx, SvUVX, sv_2bool, sv_2cv, sv_2io, sv_2iv, sv_2mortal, sv_2nv, sv_2pvbyte, sv_2pvbyte_nolen, sv_2pvutf8, sv_2pvutf8_nolen, sv_2pv_flags, sv_2pv_nolen, sv_2uv, sv_backoff, sv_bless, sv_catpv, sv_catpvf, sv_catpvf_mg, sv_catpvn, sv_catpvn_flags, sv_catpvn_mg, sv_catpv_mg, @@ -4749,7 +4771,7 @@ uvuni_to_utf8_flags =item Variables created by C<xsubpp> and C<xsubpp> internal functions ax, CLASS, dAX, dITEMS, dXSARGS, dXSI32, items, ix, newXSproto, RETVAL, ST, -THIS, XS, XSRETURN_EMPTY, XS_VERSION, XS_VERSION_BOOTCHECK +THIS, XS, XS_VERSION, XS_VERSION_BOOTCHECK =item Warning and Dieing @@ -4950,6 +4972,8 @@ It's easier to rsync the source tree, It's more reliable It's easier to rsync the patches, It's a good reference, Finding a start point, Finding how to fix a bug, Finding the source of misbehaviour +=item Working with the source + =item Perlbug administration =item Submitting patches @@ -5482,7 +5506,7 @@ B<-V> =back -=head2 perldelta - what is new for perl v5.8.3 +=head2 perldelta, perl584delta - what is new for perl v5.8.4 =over 4 @@ -5492,16 +5516,80 @@ B<-V> =item Core Enhancements +=over 4 + +=item Malloc wrapping + +=item Unicode Character Database 4.0.1 + +=item suidperl less insecure + +=item format + +=back + =item Modules and Pragmata -CGI, Cwd, Digest, Digest::MD5, Encode, File::Spec, FindBin, List::Util, -Math::BigInt, PodParser, Pod::Perldoc, POSIX, Unicode::Collate, -Unicode::Normalize, Test::Harness, threads::shared +=over 4 + +=item Updated modules + +Attribute::Handlers, B, Benchmark, CGI, Carp, Cwd, Exporter, File::Find, +IO, IPC::Open3, Local::Maketext, Math::BigFloat, Math::BigInt, +Math::BigRat, MIME::Base64, ODBM_File, POSIX, Shell, Socket, Storable, +Switch, Sys::Syslog, Term::ANSIColor, Time::HiRes, Unicode::UCD, Win32, +base, open, threads, utf8 + +=back + +=item Performance Enhancements =item Utility Changes +=item Installation and Configuration Improvements + +=item Selected Bug Fixes + +=item New or Changed Diagnostics + +=item Changed Internals + +=item Future Directions + +=item Platform Specific Problems + +=item Reporting Bugs + +=item SEE ALSO + +=back + +=head2 perl585delta, perldelta - what is new for perl v5.8.5 + +=over 4 + +=item DESCRIPTION + +=item Incompatible Changes + +=item Core Enhancements + +=item Modules and Pragmata + +=item Utility Changes + +=over 4 + +=item Perl's debugger + +=item h2ph + +=back + =item New Documentation +=item Performance Enhancements + =item Installation and Configuration Improvements =item Selected Bug Fixes @@ -5510,15 +5598,69 @@ Unicode::Normalize, Test::Harness, threads::shared =item Changed Internals -=item Configuration and Building +=item New Tests + +=item Known Problems =item Platform Specific Problems -=item Known Problems +=item Reporting Bugs + +=item SEE ALSO + +=back + +=head2 perl584delta - what is new for perl v5.8.4 + +=over 4 + +=item DESCRIPTION + +=item Incompatible Changes + +=item Core Enhancements + +=over 4 + +=item Malloc wrapping + +=item Unicode Character Database 4.0.1 + +=item suidperl less insecure + +=item format + +=back + +=item Modules and Pragmata + +=over 4 + +=item Updated modules + +Attribute::Handlers, B, Benchmark, CGI, Carp, Cwd, Exporter, File::Find, +IO, IPC::Open3, Local::Maketext, Math::BigFloat, Math::BigInt, +Math::BigRat, MIME::Base64, ODBM_File, POSIX, Shell, Socket, Storable, +Switch, Sys::Syslog, Term::ANSIColor, Time::HiRes, Unicode::UCD, Win32, +base, open, threads, utf8 + +=back + +=item Performance Enhancements + +=item Utility Changes + +=item Installation and Configuration Improvements + +=item Selected Bug Fixes + +=item New or Changed Diagnostics + +=item Changed Internals =item Future Directions -=item Obituary +=item Platform Specific Problems =item Reporting Bugs @@ -5526,7 +5668,7 @@ Unicode::Normalize, Test::Harness, threads::shared =back -=head2 perl583delta, perldelta - what is new for perl v5.8.3 +=head2 perl583delta - what is new for perl v5.8.3 =over 4 @@ -8002,7 +8144,7 @@ DJGPP, Pthreads =item PA-RISC 2.0 -=item Itanium +=item Itanium & Itanium 2 =item Portability Between PA-RISC Versions @@ -8093,7 +8235,9 @@ systems =over 4 -=item Compiling Perl 5 on MachTen +=item Perl version 5.8.x and greater not supported + +=item Compiling Perl 5.6.x on MachTen =item Failures during C<make test> on MachTen @@ -8963,7 +9107,7 @@ LIST, waitpid PID,FLAGS =item Setting Up Perl on Win32 Make, Command Shell, Borland C++, Microsoft Visual C++, Microsoft Platform -SDK 64-bit Compiler, MinGW32 with gcc, MinGW release 1 +SDK 64-bit Compiler, MinGW release 3 with gcc, MinGW release 1 with gcc =item Building @@ -8985,6 +9129,8 @@ Miscellaneous Things =item BUGS AND CAVEATS +=item ACKNOWLEDGEMENTS + =item AUTHORS Gary Ng E<lt>71564.1743@CompuServe.COME<gt>, Gurusamy Sarathy @@ -9070,8 +9216,7 @@ A thread exited while %d other threads were still running =item BUGS Parent-Child threads, Returning objects, Creating threads inside BEGIN -blocks, PERL_OLD_SIGNALS are not threadsafe, will not be, Detached threads -on Windows +blocks, PERL_OLD_SIGNALS are not threadsafe, will not be =item AUTHOR and COPYRIGHT @@ -9147,6 +9292,10 @@ FETCH_I<type>_ATTRIBUTES, MODIFY_I<type>_ATTRIBUTES =item DESCRIPTION +=item DIAGNOSTICS + +Base class package "%s" is empty + =item HISTORY =item CAVEATS @@ -10258,9 +10407,31 @@ B<-ffreetmps-each-bblock>, B<-ffreetmps-each-loop>, B<-fomit-taint>, B<-On> =item OPTIONS -B<-basic>, B<-exec>, B<-tree>, B<-compact>, B<-loose>, B<-vt>, B<-ascii>, -B<-main>, B<-base>I<n>, B<-bigendian>, B<-littleendian>, B<-concise>, -B<-terse>, B<-linenoise>, B<-debug>, B<-env> +=over 4 + +=item Options for Opcode Ordering + +B<-basic>, B<-exec>, B<-tree> + +=item Options for Line-Style + +B<-concise>, B<-terse>, B<-linenoise>, B<-debug>, B<-env> + +=item Options for tree-specific formatting + +B<-compact>, B<-loose>, B<-vt>, B<-ascii> + +=item Options controlling sequence numbering + +B<-base>I<n>, B<-bigendian>, B<-littleendian> + +=item Other options + +B<-main>, B<-banner> + +=item Option Stickiness + +=back =item FORMATTING SPECIFICATIONS @@ -10285,6 +10456,26 @@ B<#targ>, B<#targarg>, B<#targarglife>, B<#typenum> =item Using B::Concise outside of the O framework +=over 4 + +=item Example: Altering Concise Renderings + +=item set_style() + +=item set_style_standard($name) + +=item add_style() + +=item add_callback() + +=item Running B::Concise::compile() + +=item B::Concise::reset_sequence() + +=item Errors + +=back + =item AUTHOR =back @@ -11151,7 +11342,7 @@ module =back -=head2 Carp::Heavy, Carp heavy machinery - no user serviceable parts inside +=head2 Carp::Heavy - heavy machinery, no user serviceable parts inside =head2 Class::ISA -- report the search path for a class's ISA tree @@ -11455,8 +11646,8 @@ C<perl>, C<perl_patchlevel> C<PERL_REVISION>, C<PERL_SUBVERSION>, C<PERL_VERSION>, C<perladmin>, C<perllibs>, C<perlpath>, C<pg>, C<phostname>, C<pidtype>, C<plibpth>, -C<pm_apiversion>, C<pmake>, C<pr>, C<prefix>, C<prefixexp>, C<privlib>, -C<privlibexp>, C<procselfexe>, C<prototype>, C<ptrsize> +C<pmake>, C<pr>, C<prefix>, C<prefixexp>, C<privlib>, C<privlibexp>, +C<procselfexe>, C<prototype>, C<ptrsize> =item q @@ -11522,7 +11713,7 @@ C<versiononly>, C<vi>, C<voidflags> =item x -C<xlibpth>, C<xs_apiversion> +C<xlibpth> =item y @@ -11550,7 +11741,7 @@ C<zcat>, C<zip> =item getcwd and friends -getcwd, cwd, fastcwd, fastgetcwd +getcwd, cwd, fastcwd, fastgetcwd, getdcwd =item abs_path and friends @@ -11562,6 +11753,8 @@ abs_path, realpath, fast_abs_path =item NOTES +=item AUTHOR + =item SEE ALSO =back @@ -11603,6 +11796,74 @@ CLIENT->output(LIST) =back +=head2 DBM_Filter -- Filter DBM keys/values + +=over 4 + +=item SYNOPSIS + +=item DESCRIPTION + +=item What is a DBM Filter? + +=over 4 + +=item So what's new? + +=back + +=item METHODS + +=over 4 + +=item $db->Filter_Push() + +=item $db->Filter_Key_Push() + +=item $db->Filter_Value_Push() + +Filter_Push, Filter_Key_Push, Filter_Value_Push + +=item $db->Filter_Pop() + +=item $db->Filtered() + +=back + +=item Writing a Filter + +=over 4 + +=item Immediate Filters + +=item Canned Filters + +"name", params + +=back + +=item Filters Included + +utf8, encode, compress, int32, null + +=item NOTES + +=over 4 + +=item Maintain Round Trip Integrity + +=item Don't mix filtered & non-filtered data in the same database file. + +=back + +=item EXAMPLE + +=item SEE ALSO + +=item AUTHOR + +=back + =head2 DB_File - Perl5 access to Berkeley DB version 1.x =over 4 @@ -12002,10 +12263,10 @@ compactDump, veryCompact, set, get =item DESCRIPTION @dl_library_path, @dl_resolve_using, @dl_require_symbols, @dl_librefs, -@dl_modules, dl_error(), $dl_debug, dl_findfile(), dl_expandspec(), -dl_load_file(), dl_unload_file(), dl_load_flags(), dl_find_symbol(), -dl_find_symbol_anywhere(), dl_undef_symbols(), dl_install_xsub(), -bootstrap() +@dl_modules, @dl_shared_objects, dl_error(), $dl_debug, dl_findfile(), +dl_expandspec(), dl_load_file(), dl_unload_file(), dl_load_flags(), +dl_find_symbol(), dl_find_symbol_anywhere(), dl_undef_symbols(), +dl_install_xsub(), bootstrap() =item AUTHOR @@ -14338,6 +14599,8 @@ $dont_use_nlink, symlinks =item NOTES +=item BUGS AND CAVEATS + =item HISTORY =back @@ -14799,8 +15062,6 @@ cacheout EXPR, cacheout MODE, EXPR =item BUGS -=item NOTES - =back =head2 FileHandle - supply object methods for filehandles @@ -15136,6 +15397,9 @@ the function alternate_language_tags($lang1) the function @langs = panic_languages(@accept_languages) +the function implicate_supers( ...languages... ), the function +implicate_supers_strictly( ...languages... ) + =over 4 =item ABOUT LOWERCASING @@ -15150,6 +15414,26 @@ the function @langs = panic_languages(@accept_languages) =back +=head2 I18N::LangTags::Detect - detect the user's language preferences + +=over 4 + +=item SYNOPSIS + +=item DESCRIPTION + +=item FUNCTIONS + +=item ENVIRONMENT + +=item SEE ALSO + +=item COPYRIGHT + +=item AUTHOR + +=back + =head2 I18N::LangTags::List -- tags and names for human languages =over 4 @@ -16632,7 +16916,7 @@ the same terms as Perl itself. =back -=head2 Math::BigRat - arbitrarily big rationals +=head2 Math::BigRat - arbitrarily big rational numbers =over 4 @@ -16690,6 +16974,10 @@ the same terms as Perl itself. $x->bfloor(); +=item bsqrt() + + $x->bsqrt(); + =item config =back @@ -16697,7 +16985,8 @@ the same terms as Perl itself. =item BUGS inf handling (partial), NaN handling (partial), rounding (not implemented -except for bceil/bfloor), $x ** $y where $y is not an integer +except for bceil/bfloor), $x ** $y where $y is not an integer, bmod(), +blog(), bmodinv() and bmodpow() (partial) =item LICENSE @@ -17044,23 +17333,23 @@ hostfqdn (), hostname (), hostdomain () =item CONSTRUCTOR -new (HOST [,OPTIONS]) +new ([ HOST ] [, OPTIONS ]) =item METHODS login ([LOGIN [,PASSWORD [, ACCOUNT] ] ]), authorize ( [AUTH [, RESP]]), site (ARGS), ascii, binary, rename ( OLDNAME, NEWNAME ), delete ( FILENAME ), cwd ( [ DIR ] ), cdup (), pwd (), restart ( WHERE ), rmdir ( DIR [, -RECURSE ]), mkdir ( DIR [, RECURSE ]), ls ( [ DIR ] ), alloc ( SIZE [, -RECORD_SIZE] ), dir ( [ DIR ] ), get ( REMOTE_FILE [, LOCAL_FILE [, WHERE]] -), put ( LOCAL_FILE [, REMOTE_FILE ] ), put_unique ( LOCAL_FILE [, -REMOTE_FILE ] ), append ( LOCAL_FILE [, REMOTE_FILE ] ), unique_name (), -mdtm ( FILE ), size ( FILE ), supported ( CMD ), hash ( -[FILEHANDLE_GLOB_REF],[ BYTES_PER_HASH_MARK] ), nlst ( [ DIR ] ), list ( [ -DIR ] ), retr ( FILE ), stor ( FILE ), stou ( FILE ), appe ( FILE ), port ( -[ PORT ] ), pasv (), pasv_xfer ( SRC_FILE, DEST_SERVER [, DEST_FILE ] ), -pasv_xfer_unique ( SRC_FILE, DEST_SERVER [, DEST_FILE ] ), pasv_wait ( -NON_PASV_SERVER ), abort (), quit () +RECURSE ]), mkdir ( DIR [, RECURSE ]), alloc ( SIZE [, RECORD_SIZE] ), ls ( +[ DIR ] ), dir ( [ DIR ] ), get ( REMOTE_FILE [, LOCAL_FILE [, WHERE]] ), +put ( LOCAL_FILE [, REMOTE_FILE ] ), put_unique ( LOCAL_FILE [, REMOTE_FILE +] ), append ( LOCAL_FILE [, REMOTE_FILE ] ), unique_name (), mdtm ( FILE ), +size ( FILE ), supported ( CMD ), hash ( [FILEHANDLE_GLOB_REF],[ +BYTES_PER_HASH_MARK] ), nlst ( [ DIR ] ), list ( [ DIR ] ), retr ( FILE ), +stor ( FILE ), stou ( FILE ), appe ( FILE ), port ( [ PORT ] ), pasv (), +pasv_xfer ( SRC_FILE, DEST_SERVER [, DEST_FILE ] ), pasv_xfer_unique ( +SRC_FILE, DEST_SERVER [, DEST_FILE ] ), pasv_wait ( NON_PASV_SERVER ), +abort (), quit () =over 4 @@ -17153,14 +17442,15 @@ MESSAGE-SPEC, PATTERN, Examples, C<[^]-]>, C<*bdc>, C<[0-9a-zA-Z]>, C<a??d> =item CONSTRUCTOR -new ( [ HOST, ] [ OPTIONS ] ) +new ( [ HOST ] [, OPTIONS ] 0 =item METHODS -user ( USER ), pass ( PASS ), login ( [ USER [, PASS ]] ), apop ( [ USER [, -PASS ]] ), top ( MSGNUM [, NUMLINES ] ), list ( [ MSGNUM ] ), get ( MSGNUM -[, FH ] ), getfh ( MSGNUM ), last (), popstat (), ping ( USER ), uidl ( [ -MSGNUM ] ), delete ( MSGNUM ), reset (), quit () +auth ( USERNAME, PASSWORD ), user ( USER ), pass ( PASS ), login ( [ USER +[, PASS ]] ), apop ( [ USER [, PASS ]] ), banner (), capa (), capabilities +(), top ( MSGNUM [, NUMLINES ] ), list ( [ MSGNUM ] ), get ( MSGNUM [, FH ] +), getfh ( MSGNUM ), last (), popstat (), ping ( USER ), uidl ( [ MSGNUM ] +), delete ( MSGNUM ), reset (), quit () =item NOTES @@ -17217,17 +17507,17 @@ $p->hires( { 0 | 1 } );, $p->bind($local_addr);, $p->open($host);, $p->ack( =item CONSTRUCTOR -new Net::SMTP [ HOST, ] [ OPTIONS ] +new ( [ HOST ] [, OPTIONS ] ) =item METHODS -banner (), domain (), hello ( DOMAIN ), etrn ( DOMAIN ), auth ( USERNAME, -PASSWORD ), mail ( ADDRESS [, OPTIONS] ), send ( ADDRESS ), send_or_mail ( -ADDRESS ), send_and_mail ( ADDRESS ), reset (), recipient ( ADDRESS [, -ADDRESS [ ...]] [, OPTIONS ] ), to ( ADDRESS [, ADDRESS [...]] ), cc ( -ADDRESS [, ADDRESS [...]] ), bcc ( ADDRESS [, ADDRESS [...]] ), data ( [ -DATA ] ), expand ( ADDRESS ), verify ( ADDRESS ), help ( [ $subject ] ), -quit () +banner (), domain (), hello ( DOMAIN ), host (), etrn ( DOMAIN ), auth ( +USERNAME, PASSWORD ), mail ( ADDRESS [, OPTIONS] ), send ( ADDRESS ), +send_or_mail ( ADDRESS ), send_and_mail ( ADDRESS ), reset (), recipient ( +ADDRESS [, ADDRESS, [...]] [, OPTIONS ] ), to ( ADDRESS [, ADDRESS [...]] +), cc ( ADDRESS [, ADDRESS [...]] ), bcc ( ADDRESS [, ADDRESS [...]] ), +data ( [ DATA ] ), expand ( ADDRESS ), verify ( ADDRESS ), help ( [ +$subject ] ), quit () =item ADDRESSES @@ -19245,10 +19535,16 @@ set_prototype CODEREF, PROTOTYPE, tainted EXPR, weaken REF =over 4 -=item OBJECT ORIENTED SYNTAX +=item Caveats + +=item Escaping Magic Characters + +=item Configuration =back +=item BUGS + =item AUTHOR =back @@ -19366,7 +19662,7 @@ C<Storable::is_retrieving> =item BUGS -=item LIMITATION +=item LIMITATIONS =item COPYRIGHT @@ -19587,6 +19883,8 @@ NORMAL TESTS, SKIPPED TESTS, TODO TESTS =item BUGS and CAVEATS +=item ENVIRONMENT + =item NOTE =item SEE ALSO @@ -20645,6 +20943,16 @@ $which ) =item DESCRIPTION +=over 4 + +=item Ambiguous Local Times (DST) + +=item Non-Existent Local Times (DST) + +=item Negative Epoch Values + +=back + =item IMPLEMENTATION =item BUGS @@ -20957,39 +21265,6 @@ March 18th, 2000 =back -=head2 Win32 - Interfaces to some Win32 API Functions - -=over 4 - -=item DESCRIPTION - -=over 4 - -=item Alphabetical Listing of Win32 Functions - -Win32::AbortSystemShutdown(MACHINE), Win32::BuildNumber(), -Win32::CopyFile(FROM, TO, OVERWRITE), Win32::DomainName(), -Win32::ExpandEnvironmentStrings(STRING), Win32::FormatMessage(ERRORCODE), -Win32::FsType(), Win32::FreeLibrary(HANDLE), Win32::GetArchName(), -Win32::GetChipName(), Win32::GetCwd(), Win32::GetFolderPath(FOLDER [, -CREATE]), Win32::GetFullPathName(FILENAME), Win32::GetLastError(), -Win32::GetLongPathName(PATHNAME), Win32::GetNextAvailDrive(), -Win32::GetOSVersion(), Win32::GetOSName(), -Win32::GetShortPathName(PATHNAME), Win32::GetProcAddress(INSTANCE, -PROCNAME), Win32::GetTickCount(), Win32::InitiateSystemShutdown, -Win32::IsWinNT(), Win32::IsWin95(), Win32::LoadLibrary(LIBNAME), -Win32::LoginName(), Win32::LookupAccountName(SYSTEM, ACCOUNT, DOMAIN, SID, -SIDTYPE), Win32::LookupAccountSID(SYSTEM, SID, ACCOUNT, DOMAIN, SIDTYPE), -Win32::MsgBox(MESSAGE [, FLAGS [, TITLE]]), Win32::NodeName(), -Win32::RegisterServer(LIBRARYNAME), Win32::SetChildShowWindow(SHOWWINDOW), -Win32::SetCwd(NEWDIRECTORY), Win32::SetLastError(ERROR), -Win32::Sleep(TIME), Win32::Spawn(COMMAND, ARGS, PID), -Win32::UnregisterServer(LIBRARYNAME) - -=back - -=back - =head2 XSLoader - Dynamically load C libraries into Perl code =over 4 diff --git a/gnu/usr.bin/perl/pod/perltoot.pod b/gnu/usr.bin/perl/pod/perltoot.pod index 2497063877c..4a212fba91c 100644 --- a/gnu/usr.bin/perl/pod/perltoot.pod +++ b/gnu/usr.bin/perl/pod/perltoot.pod @@ -224,23 +224,8 @@ The second argument is the class into which the referent will be blessed. By not assuming our own class as the default second argument and instead using the class passed into us, we make our constructor inheritable. -While we're at it, let's make our constructor a bit more flexible. -Rather than being uniquely a class method, we'll set it up so that -it can be called as either a class method I<or> an object -method. That way you can say: - - $me = Person->new(); - $him = $me->new(); - -To do this, all we have to do is check whether what was passed in -was a reference or not. If so, we were invoked as an object method, -and we need to extract the package (class) using the ref() function. -If not, we just use the string passed in as the package name -for blessing our referent. - sub new { - my $proto = shift; - my $class = ref($proto) || $proto; + my $class = shift; my $self = {}; $self->{NAME} = undef; $self->{AGE} = undef; @@ -401,8 +386,7 @@ it instead a file-scoped lexical, you should make these changes to your Person::new() constructor: sub new { - my $proto = shift; - my $class = ref($proto) || $proto; + my $class = shift; my $self = {}; $Census++; $self->{NAME} = undef; @@ -458,8 +442,7 @@ a public data member in the same way that NAME, AGE, and PEERS are. to perl version 5.004 we'll have to quote the field name.) sub new { - my $proto = shift; - my $class = ref($proto) || $proto; + my $class = shift; my $self = {}; $self->{NAME} = undef; $self->{AGE} = undef; @@ -650,8 +633,7 @@ Ok. To do this, we'll change Person::new() so that it supports a full name field this way: sub new { - my $proto = shift; - my $class = ref($proto) || $proto; + my $class = shift; my $self = {}; $self->{FULLNAME} = Fullname->new(); $self->{AGE} = undef; @@ -683,8 +665,7 @@ by the appropriate name to access them: use strict; sub new { - my $proto = shift; - my $class = ref($proto) || $proto; + my $class = shift; my $self = { TITLE => undef, CHRISTIAN => undef, @@ -1009,8 +990,7 @@ know about its immediate superclass, but never vice-versa.) So let's fix up Employee::new() this way: sub new { - my $proto = shift; - my $class = ref($proto) || $proto; + my $class = shift; my $self = $class->SUPER::new(); $self->{SALARY} = undef; $self->{ID} = undef; @@ -1131,9 +1111,9 @@ above, just add this to Person.pm: our $VERSION = '1.1'; -and then in Employee.pm could you can say +and then in Employee.pm you can say - use Employee 1.1; + use Person 1.1; And it would make sure that you have at least that version number or higher available. This is not the same as loading in that exact version @@ -1244,8 +1224,7 @@ different: package Person; sub new { - my $that = shift; - my $class = ref($that) || $that; + my $class = shift; my $self = { NAME => undef, AGE => undef, @@ -1376,8 +1355,7 @@ constructor will look like when taking this approach: ); sub new { - my $that = shift; - my $class = ref($that) || $that; + my $class = shift; my $self = { _permitted => \%fields, %fields, @@ -1445,9 +1423,8 @@ Here's how to be careful: ); sub new { - my $that = shift; - my $class = ref($that) || $that; - my $self = bless $that->SUPER::new(), $class; + my $class = shift; + my $self = $class->SUPER::new(); my($element); foreach $element (keys %fields) { $self->{_permitted}->{$element} = $fields{$element}; @@ -1497,10 +1474,10 @@ Here's a simple example of using it: struct 'Fred' => { one => '$', many => '@', - profession => Jobbie, # calls Jobbie->new() + profession => 'Jobbie', # does not call Jobbie->new() }; - $ob = Fred->new; + $ob = Fred->new(profession => Jobbie->new()); $ob->one("hmmmm"); $ob->many(0, "here"); @@ -1514,6 +1491,10 @@ You can declare types in the struct to be basic Perl types, or user-defined types (classes). User types will be initialized by calling that class's new() method. +Take care that the C<Jobbie> object is not created automatically by the +C<Fred> class's new() method, so you should specify a C<Jobbie> object +when you create an instance of C<Fred>. + Here's a real-world example of using struct generation. Let's say you wanted to override Perl's idea of gethostbyname() and gethostbyaddr() so that they would return objects that acted like C structures. We don't @@ -1651,8 +1632,7 @@ update value fields in the hash. Convenient, eh? # this is the same as before... sub new { - my $that = shift; - my $class = ref($that) || $that; + my $class = shift; my $self = { NAME => undef, AGE => undef, diff --git a/gnu/usr.bin/perl/pod/perlxs.pod b/gnu/usr.bin/perl/pod/perlxs.pod index f126ff8db3e..c09947d65c8 100644 --- a/gnu/usr.bin/perl/pod/perlxs.pod +++ b/gnu/usr.bin/perl/pod/perlxs.pod @@ -276,6 +276,63 @@ some heuristic code which tries to disambiguate between "truly-void" and "old-practice-declared-as-void" functions. Hence your code is at mercy of this heuristics unless you use C<SV *> as return value.) +=head2 Returning SVs, AVs and HVs through RETVAL + +When you're using RETVAL to return an C<SV *>, there's some magic +going on behind the scenes that should be mentioned. When you're +manipulating the argument stack using the ST(x) macro, for example, +you usually have to pay special attention to reference counts. (For +more about reference counts, see L<perlguts>.) To make your life +easier, the typemap file automatically makes C<RETVAL> mortal when +you're returning an C<SV *>. Thus, the following two XSUBs are more +or less equivalent: + + void + alpha() + PPCODE: + ST(0) = newSVpv("Hello World",0); + sv_2mortal(ST(0)); + XSRETURN(1); + + SV * + beta() + CODE: + RETVAL = newSVpv("Hello World",0); + OUTPUT: + RETVAL + +This is quite useful as it usually improves readability. While +this works fine for an C<SV *>, it's unfortunately not as easy +to have C<AV *> or C<HV *> as a return value. You I<should> be +able to write: + + AV * + array() + CODE: + RETVAL = newAV(); + /* do something with RETVAL */ + OUTPUT: + RETVAL + +But due to an unfixable bug (fixing it would break lots of existing +CPAN modules) in the typemap file, the reference count of the C<AV *> +is not properly decremented. Thus, the above XSUB would leak memory +whenever it is being called. The same problem exists for C<HV *>. + +When you're returning an C<AV *> or a C<HV *>, you have make sure +their reference count is decremented by making the AV or HV mortal: + + AV * + array() + CODE: + RETVAL = newAV(); + sv_2mortal((SV*)RETVAL); + /* do something with RETVAL */ + OUTPUT: + RETVAL + +And also remember that you don't have to do this for an C<SV *>. + =head2 The MODULE Keyword The MODULE keyword is used to start the XS code and to specify the package diff --git a/gnu/usr.bin/perl/pod/pod2latex.PL b/gnu/usr.bin/perl/pod/pod2latex.PL index 6b4dc4c86ef..9838edc889d 100644 --- a/gnu/usr.bin/perl/pod/pod2latex.PL +++ b/gnu/usr.bin/perl/pod/pod2latex.PL @@ -43,8 +43,20 @@ use Pod::Find qw/ pod_find /; use Pod::Usage; use Getopt::Long; use File::Basename; - -my $VERSION = "1.00"; +use Symbol; + +my $VERSION = "1.01"; + +# return the entire contents of a text file +# whose name is given as argument +sub _get { + my $fn = shift; + my $infh = gensym; + open $infh, $fn + or die "Could not open file $fn: $!\n"; + local $/; + return <$infh>; +} # Read command line arguments @@ -57,7 +69,14 @@ my %options = ( "verbose" => 0, "modify" => 0, "h1level" => 1, # section is equivalent to H1 + "preamble" => [], + "postamble" => [], ); +# "prefile" is just like "preamble", but the argument +# comes from the file named by the argument +$options{"prefile"} = sub { shift; push @{$options{"preamble"}}, _get(shift) }; +# the same between "postfile" and "postamble" +$options{"postfile"} = sub { shift; push @{$options{"postamble"}}, _get(shift) }; GetOptions(\%options, "help", @@ -68,6 +87,10 @@ GetOptions(\%options, "out=s", "modify", "h1level=i", + "preamble=s@", + "postamble=s@", + "prefile=s", + "postfile=s" ) || pod2usage(2); pod2usage(1) if ($options{help}); @@ -98,6 +121,14 @@ if ($#pods == -1) { exit; } +# Only want to override the preamble and postamble if we have +# been given values. +my %User; +$User{UserPreamble} = join("\n", @{$options{'preamble'}}) + if ($options{preamble} && @{$options{preamble}}); +$User{UserPostamble} = join("\n", @{$options{'postamble'}}) + if ($options{postamble} && @{$options{postamble}}); + # If $options{'out'} is set we are processing to a single output file @@ -133,6 +164,7 @@ if ($multi_documents) { UniqueLabels => $options{'modify'}, Head1Level => $options{'h1level'}, LevelNoNum => $options{'h1level'} + 1, + %User, ); # Select sections if supplied @@ -150,7 +182,7 @@ if ($multi_documents) { } } else { - + # Case where we want everything to be in a single document # Need to open the output file ourselves @@ -158,7 +190,6 @@ if ($multi_documents) { $output .= '.tex' unless $output =~ /\.tex$/; # Use auto-vivified file handle in perl 5.6 - use Symbol; my $outfh = gensym; open ($outfh, ">$output") || die "Could not open output file: $!\n"; @@ -202,6 +233,7 @@ if ($multi_documents) { AddPostamble => $postamble, Head1Level => $options{'h1level'}, LevelNoNum => $options{'h1level'} + 1, + %User ); # Store the file name for error messages @@ -251,6 +283,8 @@ pod2latex - convert pod documentation to latex format pod2latex -full -sections 'DESCRIPTION|NAME' SomeDir + pod2latex -prefile h.tex -postfile t.tex my.pod + =head1 DESCRIPTION C<pod2latex> is a program to convert POD format documentation @@ -319,6 +353,30 @@ Print the manual page and exit. Print information messages as each document is processed. +=item B<-preamble> + +A user-supplied preamble for the LaTeX code. Multiple values +are supported and appended in order separated by "\n". +See B<-prefile> for reading the preamble from a file. + +=item B<-postamble> + +A user supplied postamble for the LaTeX code. Multiple values +are supported and appended in order separated by "\n". +See B<-postfile> for reading the postamble from a file. + +=item B<-prefile> + +A user-supplied preamble for the LaTeX code to be read from the +named file. Multiple values are supported and appended in +order. See B<-preamble>. + +=item B<-postfile> + +A user-supplied postamble for the LaTeX code to be read from the +named file. Multiple values are supported and appended in +order. See B<-postamble>. + =back =head1 BUGS @@ -327,14 +385,14 @@ Known bugs are: =over 4 -=item * +=item * Cross references between documents are not resolved when multiple pod documents are converted into a single output C<latex> file. -=item * +=item * -Functions and variables are not automatically recognized +Functions and variables are not automatically recognized and they will therefore not be marked up in any special way unless instructed by an explicit pod command. @@ -346,12 +404,12 @@ L<Pod::LaTeX> =head1 AUTHOR -Tim Jenness E<lt>t.jenness@jach.hawaii.eduE<gt> +Tim Jenness E<lt>tjenness@cpan.orgE<gt> This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. -Copyright (C) 2000, 2003 Tim Jenness. All Rights Reserved. +Copyright (C) 2000, 2003, 2004 Tim Jenness. All Rights Reserved. =cut diff --git a/gnu/usr.bin/perl/pod/pod2man.PL b/gnu/usr.bin/perl/pod/pod2man.PL index b0c1341176e..95bc2cc2221 100644 --- a/gnu/usr.bin/perl/pod/pod2man.PL +++ b/gnu/usr.bin/perl/pod/pod2man.PL @@ -36,7 +36,7 @@ $Config{startperl} print OUT <<'!NO!SUBS!'; # pod2man -- Convert POD data to formatted *roff input. -# $Id: pod2man.PL,v 1.10 2002/07/15 05:45:56 eagle Exp $ +# $Id: pod2man.PL,v 1.7 2003/12/03 03:02:47 millert Exp $ # # Copyright 1999, 2000, 2001 by Russ Allbery <rra@stanford.edu> # @@ -64,7 +64,7 @@ my $stdin; # allowing short forms as well. --lax is currently ignored. my %options; Getopt::Long::config ('bundling_override'); -GetOptions (\%options, 'section|s=s', 'release|r=s', 'center|c=s', +GetOptions (\%options, 'section|s=s', 'release|r:s', 'center|c=s', 'date|d=s', 'fixed=s', 'fixedbold=s', 'fixeditalic=s', 'fixedbolditalic=s', 'name|n=s', 'official|o', 'quotes|q=s', 'lax|l', 'help|h', 'verbose|v') or exit 1; diff --git a/gnu/usr.bin/perl/pod/splitpod b/gnu/usr.bin/perl/pod/splitpod index ff60ddc085c..d5963bf4113 100644 --- a/gnu/usr.bin/perl/pod/splitpod +++ b/gnu/usr.bin/perl/pod/splitpod @@ -5,12 +5,19 @@ use Pod::Functions; local $/ = ''; +$level = 0; + $cur = ''; while (<>) { next unless /^=(?!cut)/ .. /^=cut/; - if (/=item (\S+)/ and $1 ne '*') { + ++$level if /^=over/; + --$level if /^=back/; + + # Ignore items that are nested within other items, e.g. don't split on the + # items nested within the pack() and sprintf() items in perlfunc.pod. + if (/=item (\S+)/ and $level == 1) { my $item = $1; s/=item //; $next{$cur} = $item; diff --git a/gnu/usr.bin/perl/pp.c b/gnu/usr.bin/perl/pp.c index 1a304e454bd..0f5a61a0d04 100644 --- a/gnu/usr.bin/perl/pp.c +++ b/gnu/usr.bin/perl/pp.c @@ -1,7 +1,7 @@ /* pp.c * * Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - * 2000, 2001, 2002, 2003, by Larry Wall and others + * 2000, 2001, 2002, 2003, 2004, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -168,6 +168,12 @@ PP(pp_rv2gv) } if (SvTYPE(sv) < SVt_RV) sv_upgrade(sv, SVt_RV); + if (SvPVX(sv)) { + (void)SvOOK_off(sv); /* backoff */ + if (SvLEN(sv)) + Safefree(SvPVX(sv)); + SvLEN(sv)=SvCUR(sv)=0; + } SvRV(sv) = (SV*)gv; SvROK_on(sv); SvSETMAGIC(sv); @@ -1380,13 +1386,46 @@ PP(pp_repeat) { dSP; dATARGET; tryAMAGICbin(repeat,opASSIGN); { - register IV count = POPi; + register IV count; + dPOPss; + if (SvGMAGICAL(sv)) + mg_get(sv); + if (SvIOKp(sv)) { + if (SvUOK(sv)) { + UV uv = SvUV(sv); + if (uv > IV_MAX) + count = IV_MAX; /* The best we can do? */ + else + count = uv; + } else { + IV iv = SvIV(sv); + if (iv < 0) + count = 0; + else + count = iv; + } + } + else if (SvNOKp(sv)) { + NV nv = SvNV(sv); + if (nv < 0.0) + count = 0; + else + count = (IV)nv; + } + else + count = SvIVx(sv); if (GIMME == G_ARRAY && PL_op->op_private & OPpREPEAT_DOLIST) { dMARK; I32 items = SP - MARK; I32 max; + static const char oom_list_extend[] = + "Out of memory during list extend"; max = items * count; + MEM_WRAP_CHECK_1(max, SV*, oom_list_extend); + /* Did the max computation overflow? */ + if (items > 0 && max > 0 && (max < items || max < count)) + Perl_croak(aTHX_ oom_list_extend); MEXTEND(MARK, max); if (count > 1) { while (SP > MARK) { @@ -1431,6 +1470,8 @@ PP(pp_repeat) SV *tmpstr = POPs; STRLEN len; bool isutf; + static const char oom_string_extend[] = + "Out of memory during string extend"; SvSetSV(TARG, tmpstr); SvPV_force(TARG, len); @@ -1439,6 +1480,10 @@ PP(pp_repeat) if (count < 1) SvCUR_set(TARG, 0); else { + IV max = count * len; + if (len > ((MEM_SIZE)~0)/count) + Perl_croak(aTHX_ oom_string_extend); + MEM_WRAP_CHECK_1(max, char, oom_string_extend); SvGROW(TARG, (count * len) + 1); repeatcpy(SvPVX(TARG) + len, SvPVX(TARG), len, count - 1); SvCUR(TARG) *= count; @@ -2359,6 +2404,7 @@ PP(pp_complement) register I32 anum; STRLEN len; + (void)SvPV_nomg(sv,len); /* force check for uninit var */ SvSetSV(TARG, sv); tmps = (U8*)SvPV_force(TARG, len); anum = len; @@ -2406,6 +2452,7 @@ PP(pp_complement) *result = '\0'; result -= nchar; sv_setpvn(TARG, (char*)result, nchar); + SvUTF8_off(TARG); } Safefree(result); SETs(TARG); @@ -2772,7 +2819,9 @@ PP(pp_int) else preferring IV has introduced a subtle behaviour change bug. OTOH relying on floating point to be accurate is a bug. */ - if (SvIOK(TOPs)) { + if (!SvOK(TOPs)) + SETu(0); + else if (SvIOK(TOPs)) { if (SvIsUV(TOPs)) { UV uv = TOPu; SETu(uv); @@ -2806,7 +2855,9 @@ PP(pp_abs) /* This will cache the NV value if string isn't actually integer */ IV iv = TOPi; - if (SvIOK(TOPs)) { + if (!SvOK(TOPs)) + SETu(0); + else if (SvIOK(TOPs)) { /* IVX is precise */ if (SvIsUV(TOPs)) { SETu(TOPu); /* force it to be numeric only */ @@ -3016,6 +3067,19 @@ PP(pp_substr) if (utf8_curlen) sv_pos_u2b(sv, &pos, &rem); tmps += pos; + /* we either return a PV or an LV. If the TARG hasn't been used + * before, or is of that type, reuse it; otherwise use a mortal + * instead. Note that LVs can have an extended lifetime, so also + * dont reuse if refcount > 1 (bug #20933) */ + if (SvTYPE(TARG) > SVt_NULL) { + if ( (SvTYPE(TARG) == SVt_PVLV) + ? (!lvalue || SvREFCNT(TARG) > 1) + : lvalue) + { + TARG = sv_newmortal(); + } + } + sv_setpvn(TARG, tmps, rem); #ifdef USE_LOCALE_COLLATE sv_unmagic(TARG, PERL_MAGIC_collxfrm); @@ -3052,8 +3116,6 @@ PP(pp_substr) sv_setpvn(sv,"",0); /* avoid lexical reincarnation */ } - if (SvREFCNT(TARG) > 1) /* don't share the TARG (#20933) */ - TARG = sv_newmortal(); if (SvTYPE(TARG) < SVt_PVLV) { sv_upgrade(TARG, SVt_PVLV); sv_magic(TARG, Nullsv, PERL_MAGIC_substr, Nullch, 0); @@ -3764,7 +3826,10 @@ PP(pp_delete) SP = ORIGMARK; else if (gimme == G_SCALAR) { MARK = ORIGMARK; - *++MARK = *SP; + if (SP > MARK) + *++MARK = *SP; + else + *++MARK = &PL_sv_undef; SP = MARK; } } @@ -4621,7 +4686,7 @@ PP(pp_split) if (TOPs && !make_mortal) sv_2mortal(TOPs); iters--; - SP--; + *SP-- = &PL_sv_undef; } } diff --git a/gnu/usr.bin/perl/pp.h b/gnu/usr.bin/perl/pp.h index 2acd755951f..cda8998bdf9 100644 --- a/gnu/usr.bin/perl/pp.h +++ b/gnu/usr.bin/perl/pp.h @@ -28,7 +28,7 @@ C<SPAGAIN>. =for apidoc AmU||MARK Stack marker variable for the XSUB. See C<dMARK>. -=for apidoc Ams||PUSHMARK +=for apidoc Am|void|PUSHMARK|SP Opening bracket for arguments on a callback. See C<PUTBACK> and L<perlcall>. @@ -170,45 +170,117 @@ onto the stack. =for apidoc Am|void|PUSHs|SV* sv Push an SV onto the stack. The stack must have room for this element. -Does not handle 'set' magic. See C<XPUSHs>. +Does not handle 'set' magic. Does not use C<TARG>. See also C<PUSHmortal>, +C<XPUSHs> and C<XPUSHmortal>. =for apidoc Am|void|PUSHp|char* str|STRLEN len Push a string onto the stack. The stack must have room for this element. -The C<len> indicates the length of the string. Handles 'set' magic. See -C<XPUSHp>. +The C<len> indicates the length of the string. Handles 'set' magic. Uses +C<TARG>, so C<dTARGET> or C<dXSTARG> should be called to declare it. Do not +call multiple C<TARG>-oriented macros to return lists from XSUB's - see +C<mPUSHp> instead. See also C<XPUSHp> and C<mXPUSHp>. =for apidoc Am|void|PUSHn|NV nv Push a double onto the stack. The stack must have room for this element. -Handles 'set' magic. See C<XPUSHn>. +Handles 'set' magic. Uses C<TARG>, so C<dTARGET> or C<dXSTARG> should be +called to declare it. Do not call multiple C<TARG>-oriented macros to +return lists from XSUB's - see C<mPUSHn> instead. See also C<XPUSHn> and +C<mXPUSHn>. =for apidoc Am|void|PUSHi|IV iv Push an integer onto the stack. The stack must have room for this element. -Handles 'set' magic. See C<XPUSHi>. +Handles 'set' magic. Uses C<TARG>, so C<dTARGET> or C<dXSTARG> should be +called to declare it. Do not call multiple C<TARG>-oriented macros to +return lists from XSUB's - see C<mPUSHi> instead. See also C<XPUSHi> and +C<mXPUSHi>. =for apidoc Am|void|PUSHu|UV uv Push an unsigned integer onto the stack. The stack must have room for this -element. See C<XPUSHu>. +element. Handles 'set' magic. Uses C<TARG>, so C<dTARGET> or C<dXSTARG> +should be called to declare it. Do not call multiple C<TARG>-oriented +macros to return lists from XSUB's - see C<mPUSHu> instead. See also +C<XPUSHu> and C<mXPUSHu>. =for apidoc Am|void|XPUSHs|SV* sv Push an SV onto the stack, extending the stack if necessary. Does not -handle 'set' magic. See C<PUSHs>. +handle 'set' magic. Does not use C<TARG>. See also C<XPUSHmortal>, +C<PUSHs> and C<PUSHmortal>. =for apidoc Am|void|XPUSHp|char* str|STRLEN len Push a string onto the stack, extending the stack if necessary. The C<len> -indicates the length of the string. Handles 'set' magic. See -C<PUSHp>. +indicates the length of the string. Handles 'set' magic. Uses C<TARG>, so +C<dTARGET> or C<dXSTARG> should be called to declare it. Do not call +multiple C<TARG>-oriented macros to return lists from XSUB's - see +C<mXPUSHp> instead. See also C<PUSHp> and C<mPUSHp>. =for apidoc Am|void|XPUSHn|NV nv Push a double onto the stack, extending the stack if necessary. Handles -'set' magic. See C<PUSHn>. +'set' magic. Uses C<TARG>, so C<dTARGET> or C<dXSTARG> should be called to +declare it. Do not call multiple C<TARG>-oriented macros to return lists +from XSUB's - see C<mXPUSHn> instead. See also C<PUSHn> and C<mPUSHn>. =for apidoc Am|void|XPUSHi|IV iv Push an integer onto the stack, extending the stack if necessary. Handles -'set' magic. See C<PUSHi>. +'set' magic. Uses C<TARG>, so C<dTARGET> or C<dXSTARG> should be called to +declare it. Do not call multiple C<TARG>-oriented macros to return lists +from XSUB's - see C<mXPUSHi> instead. See also C<PUSHi> and C<mPUSHi>. =for apidoc Am|void|XPUSHu|UV uv Push an unsigned integer onto the stack, extending the stack if necessary. -See C<PUSHu>. +Handles 'set' magic. Uses C<TARG>, so C<dTARGET> or C<dXSTARG> should be +called to declare it. Do not call multiple C<TARG>-oriented macros to +return lists from XSUB's - see C<mXPUSHu> instead. See also C<PUSHu> and +C<mPUSHu>. + +=for apidoc Am|void|PUSHmortal +Push a new mortal SV onto the stack. The stack must have room for this +element. Does not handle 'set' magic. Does not use C<TARG>. See also +C<PUSHs>, C<XPUSHmortal> and C<XPUSHs>. + +=for apidoc Am|void|mPUSHp|char* str|STRLEN len +Push a string onto the stack. The stack must have room for this element. +The C<len> indicates the length of the string. Handles 'set' magic. Does +not use C<TARG>. See also C<PUSHp>, C<mXPUSHp> and C<XPUSHp>. + +=for apidoc Am|void|mPUSHn|NV nv +Push a double onto the stack. The stack must have room for this element. +Handles 'set' magic. Does not use C<TARG>. See also C<PUSHn>, C<mXPUSHn> +and C<XPUSHn>. + +=for apidoc Am|void|mPUSHi|IV iv +Push an integer onto the stack. The stack must have room for this element. +Handles 'set' magic. Does not use C<TARG>. See also C<PUSHi>, C<mXPUSHi> +and C<XPUSHi>. + +=for apidoc Am|void|mPUSHu|UV uv +Push an unsigned integer onto the stack. The stack must have room for this +element. Handles 'set' magic. Does not use C<TARG>. See also C<PUSHu>, +C<mXPUSHu> and C<XPUSHu>. + +=for apidoc Am|void|XPUSHmortal +Push a new mortal SV onto the stack, extending the stack if necessary. Does +not handle 'set' magic. Does not use C<TARG>. See also C<XPUSHs>, +C<PUSHmortal> and C<PUSHs>. + +=for apidoc Am|void|mXPUSHp|char* str|STRLEN len +Push a string onto the stack, extending the stack if necessary. The C<len> +indicates the length of the string. Handles 'set' magic. Does not use +C<TARG>. See also C<XPUSHp>, C<mPUSHp> and C<PUSHp>. + +=for apidoc Am|void|mXPUSHn|NV nv +Push a double onto the stack, extending the stack if necessary. Handles +'set' magic. Does not use C<TARG>. See also C<XPUSHn>, C<mPUSHn> and +C<PUSHn>. + +=for apidoc Am|void|mXPUSHi|IV iv +Push an integer onto the stack, extending the stack if necessary. Handles +'set' magic. Does not use C<TARG>. See also C<XPUSHi>, C<mPUSHi> and +C<PUSHi>. + +=for apidoc Am|void|mXPUSHu|UV uv +Push an unsigned integer onto the stack, extending the stack if necessary. +Handles 'set' magic. Does not use C<TARG>. See also C<XPUSHu>, C<mPUSHu> +and C<PUSHu>. =cut */ @@ -239,6 +311,18 @@ See C<PUSHu>. #define XPUSHu(u) STMT_START { sv_setuv(TARG, (UV)(u)); XPUSHTARG; } STMT_END #define XPUSHundef STMT_START { SvOK_off(TARG); XPUSHs(TARG); } STMT_END +#define PUSHmortal PUSHs(sv_newmortal()) +#define mPUSHp(p,l) sv_setpvn_mg(PUSHmortal, (p), (l)) +#define mPUSHn(n) sv_setnv_mg(PUSHmortal, (NV)(n)) +#define mPUSHi(i) sv_setiv_mg(PUSHmortal, (IV)(i)) +#define mPUSHu(u) sv_setuv_mg(PUSHmortal, (UV)(u)) + +#define XPUSHmortal XPUSHs(sv_newmortal()) +#define mXPUSHp(p,l) STMT_START { EXTEND(sp,1); sv_setpvn_mg(PUSHmortal, (p), (l)); } STMT_END +#define mXPUSHn(n) STMT_START { EXTEND(sp,1); sv_setnv_mg(PUSHmortal, (NV)(n)); } STMT_END +#define mXPUSHi(i) STMT_START { EXTEND(sp,1); sv_setiv_mg(PUSHmortal, (IV)(i)); } STMT_END +#define mXPUSHu(u) STMT_START { EXTEND(sp,1); sv_setuv_mg(PUSHmortal, (UV)(u)); } STMT_END + #define SETs(s) (*sp = s) #define SETTARG STMT_START { SvSETMAGIC(TARG); SETs(TARG); } STMT_END #define SETp(p,l) STMT_START { sv_setpvn(TARG, (p), (l)); SETTARG; } STMT_END diff --git a/gnu/usr.bin/perl/pp_ctl.c b/gnu/usr.bin/perl/pp_ctl.c index a2e58ed210d..fd8423bd031 100644 --- a/gnu/usr.bin/perl/pp_ctl.c +++ b/gnu/usr.bin/perl/pp_ctl.c @@ -1,7 +1,7 @@ /* pp_ctl.c * * Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - * 2000, 2001, 2002, 2003, by Larry Wall and others + * 2000, 2001, 2002, 2003, 2004, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -342,15 +342,20 @@ PP(pp_formline) bool item_is_utf8 = FALSE; bool targ_is_utf8 = FALSE; SV * nsv = Nullsv; + OP * parseres = 0; + char *fmt; + bool oneline; if (!SvMAGICAL(tmpForm) || !SvCOMPILED(tmpForm)) { if (SvREADONLY(tmpForm)) { SvREADONLY_off(tmpForm); - doparseform(tmpForm); + parseres = doparseform(tmpForm); SvREADONLY_on(tmpForm); } else - doparseform(tmpForm); + parseres = doparseform(tmpForm); + if (parseres) + return parseres; } SvPV_force(PL_formtarget, len); if (DO_UTF8(PL_formtarget)) @@ -386,6 +391,7 @@ PP(pp_formline) case FF_LINEMARK: name = "LINEMARK"; break; case FF_END: name = "END"; break; case FF_0DECIMAL: name = "0DECIMAL"; break; + case FF_LINESNGL: name = "LINESNGL"; break; } if (arg >= 0) PerlIO_printf(Perl_debug_log, "%-16s%ld\n", name, (long) arg); @@ -492,6 +498,7 @@ PP(pp_formline) while (s < send) { if (*s == '\r') { itemsize = s - item; + chophere = s; break; } if (*s++ & ~31) @@ -531,6 +538,7 @@ PP(pp_formline) while (s < send) { if (*s == '\r') { itemsize = s - item; + chophere = s; break; } if (*s++ & ~31) @@ -621,7 +629,7 @@ PP(pp_formline) sv_catpvn_utf8_upgrade(PL_formtarget, s, arg, nsv); for (; t < SvEND(PL_formtarget); t++) { #ifdef EBCDIC - int ch = *t++ = *s++; + int ch = *t; if (iscntrl(ch)) #else if (!(*t & ~31)) @@ -651,7 +659,13 @@ PP(pp_formline) SvSETMAGIC(sv); break; + case FF_LINESNGL: + chopspace = 0; + oneline = TRUE; + goto ff_line; case FF_LINEGLOB: + oneline = FALSE; + ff_line: item = s = SvPV(sv, len); itemsize = len; if ((item_is_utf8 = DO_UTF8(sv))) @@ -660,20 +674,31 @@ PP(pp_formline) bool chopped = FALSE; gotsome = TRUE; send = s + len; + chophere = s + itemsize; while (s < send) { if (*s++ == '\n') { - if (s == send) { - itemsize--; + if (oneline) { chopped = TRUE; + chophere = s; + break; + } else { + if (s == send) { + itemsize--; + chopped = TRUE; + } else + lines++; } - else - lines++; } } SvCUR_set(PL_formtarget, t - SvPVX(PL_formtarget)); if (targ_is_utf8) SvUTF8_on(PL_formtarget); - sv_catsv(PL_formtarget, sv); + if (oneline) { + SvCUR_set(sv, chophere - item); + sv_catsv(PL_formtarget, sv); + SvCUR_set(sv, itemsize); + } else + sv_catsv(PL_formtarget, sv); if (chopped) SvCUR_set(PL_formtarget, SvCUR(PL_formtarget) - 1); SvGROW(PL_formtarget, SvCUR(PL_formtarget) + fudge + 1); @@ -683,46 +708,24 @@ PP(pp_formline) } break; + case FF_0DECIMAL: + arg = *fpc++; +#if defined(USE_LONG_DOUBLE) + fmt = (arg & 256) ? "%#0*.*" PERL_PRIfldbl : "%0*.*" PERL_PRIfldbl; +#else + fmt = (arg & 256) ? "%#0*.*f" : "%0*.*f"; +#endif + goto ff_dec; case FF_DECIMAL: - /* If the field is marked with ^ and the value is undefined, - blank it out. */ arg = *fpc++; - if ((arg & 512) && !SvOK(sv)) { - arg = fieldsize; - while (arg--) - *t++ = ' '; - break; - } - gotsome = TRUE; - value = SvNV(sv); - /* Formats aren't yet marked for locales, so assume "yes". */ - { - STORE_NUMERIC_STANDARD_SET_LOCAL(); #if defined(USE_LONG_DOUBLE) - if (arg & 256) { - sprintf(t, "%#*.*" PERL_PRIfldbl, - (int) fieldsize, (int) arg & 255, value); - } else { - sprintf(t, "%*.0" PERL_PRIfldbl, (int) fieldsize, value); - } + fmt = (arg & 256) ? "%#*.*" PERL_PRIfldbl : "%*.*" PERL_PRIfldbl; #else - if (arg & 256) { - sprintf(t, "%#*.*f", - (int) fieldsize, (int) arg & 255, value); - } else { - sprintf(t, "%*.0f", - (int) fieldsize, value); - } + fmt = (arg & 256) ? "%#*.*f" : "%*.*f"; #endif - RESTORE_NUMERIC_STANDARD(); - } - t += fieldsize; - break; - - case FF_0DECIMAL: + ff_dec: /* If the field is marked with ^ and the value is undefined, blank it out. */ - arg = *fpc++; if ((arg & 512) && !SvOK(sv)) { arg = fieldsize; while (arg--) @@ -731,31 +734,22 @@ PP(pp_formline) } gotsome = TRUE; value = SvNV(sv); + /* overflow evidence */ + if (num_overflow(value, fieldsize, arg)) { + arg = fieldsize; + while (arg--) + *t++ = '#'; + break; + } /* Formats aren't yet marked for locales, so assume "yes". */ { STORE_NUMERIC_STANDARD_SET_LOCAL(); -#if defined(USE_LONG_DOUBLE) - if (arg & 256) { - sprintf(t, "%#0*.*" PERL_PRIfldbl, - (int) fieldsize, (int) arg & 255, value); -/* is this legal? I don't have long doubles */ - } else { - sprintf(t, "%0*.0" PERL_PRIfldbl, (int) fieldsize, value); - } -#else - if (arg & 256) { - sprintf(t, "%#0*.*f", - (int) fieldsize, (int) arg & 255, value); - } else { - sprintf(t, "%0*.0f", - (int) fieldsize, value); - } -#endif + sprintf(t, fmt, (int) fieldsize, (int) arg & 255, value); RESTORE_NUMERIC_STANDARD(); } t += fieldsize; break; - + case FF_NEWLINE: f++; while (t-- > linemark && *t == ' ') ; @@ -913,8 +907,19 @@ PP(pp_mapwhile) } /* copy the new items down to the destination list */ dst = PL_stack_base + (PL_markstack_ptr[-2] += items) - 1; - while (items-- > 0) - *dst-- = SvTEMP(TOPs) ? POPs : sv_mortalcopy(POPs); + if (gimme == G_ARRAY) { + while (items-- > 0) + *dst-- = SvTEMP(TOPs) ? POPs : sv_mortalcopy(POPs); + } + else { + /* scalar context: we don't care about which values map returns + * (we use undef here). And so we certainly don't want to do mortal + * copies of meaningless values. */ + while (items-- > 0) { + (void)POPs; + *dst-- = &PL_sv_undef; + } + } } LEAVE; /* exit inner scope */ @@ -1011,8 +1016,9 @@ PP(pp_flip) #define RANGE_IS_NUMERIC(left,right) ( \ SvNIOKp(left) || (SvOK(left) && !SvPOKp(left)) || \ SvNIOKp(right) || (SvOK(right) && !SvPOKp(right)) || \ - (looks_like_number(left) && SvPOKp(left) && *SvPVX(left) != '0' && \ - looks_like_number(right))) + (((!SvOK(left) && SvOK(right)) || ((!SvOK(left) || \ + looks_like_number(left)) && SvPOKp(left) && *SvPVX(left) != '0')) \ + && (!SvOK(right) || looks_like_number(right)))) PP(pp_flop) { @@ -1020,9 +1026,9 @@ PP(pp_flop) if (GIMME == G_ARRAY) { dPOPPOPssrl; - register I32 i, j; + register IV i, j; register SV *sv; - I32 max; + IV max; if (SvGMAGICAL(left)) mg_get(left); @@ -1030,7 +1036,8 @@ PP(pp_flop) mg_get(right); if (RANGE_IS_NUMERIC(left,right)) { - if (SvNV(left) < IV_MIN || SvNV(right) > IV_MAX) + if ((SvOK(left) && SvNV(left) < IV_MIN) || + (SvOK(right) && SvNV(right) > IV_MAX)) DIE(aTHX_ "Range iterator outside integer range"); i = SvIV(left); max = SvIV(right); @@ -1634,7 +1641,6 @@ PP(pp_dbstate) PUSHBLOCK(cx, CXt_SUB, SP); PUSHSUB_DB(cx); CvDEPTH(cv)++; - (void)SvREFCNT_inc(cv); PAD_SET_CUR(CvPADLIST(cv),1); RETURNOP(CvSTART(cv)); } @@ -1701,15 +1707,20 @@ PP(pp_enteriter) cx->blk_loop.iterary = (AV*)SvREFCNT_inc(POPs); if (SvTYPE(cx->blk_loop.iterary) != SVt_PVAV) { dPOPss; - if (RANGE_IS_NUMERIC(sv,(SV*)cx->blk_loop.iterary)) { - if (SvNV(sv) < IV_MIN || - SvNV((SV*)cx->blk_loop.iterary) >= IV_MAX) - DIE(aTHX_ "Range iterator outside integer range"); - cx->blk_loop.iterix = SvIV(sv); - cx->blk_loop.itermax = SvIV((SV*)cx->blk_loop.iterary); + SV *right = (SV*)cx->blk_loop.iterary; + if (RANGE_IS_NUMERIC(sv,right)) { + if ((SvOK(sv) && SvNV(sv) < IV_MIN) || + (SvOK(right) && SvNV(right) >= IV_MAX)) + DIE(aTHX_ "Range iterator outside integer range"); + cx->blk_loop.iterix = SvIV(sv); + cx->blk_loop.itermax = SvIV(right); } - else + else { + STRLEN n_a; cx->blk_loop.iterlval = newSVsv(sv); + (void) SvPV_force(cx->blk_loop.iterlval,n_a); + (void) SvPV(right,n_a); + } } } else { @@ -1812,6 +1823,7 @@ PP(pp_return) switch (CxTYPE(cx)) { case CXt_SUB: popsub2 = TRUE; + cxstack_ix++; /* preserve cx entry on stack for use by POPSUB */ break; case CXt_EVAL: if (!(PL_in_eval & EVAL_KEEPERR)) @@ -1871,15 +1883,16 @@ PP(pp_return) } PL_stack_sp = newsp; + LEAVE; /* Stack values are safe: */ if (popsub2) { + cxstack_ix--; POPSUB(cx,sv); /* release CV and @_ ... */ } else sv = Nullsv; PL_curpm = newpm; /* ... and pop $1 et al */ - LEAVE; LEAVESUB(sv); if (clear_errsv) sv_setpv(ERRSV,""); @@ -1914,6 +1927,7 @@ PP(pp_last) dounwind(cxix); POPBLOCK(cx,newpm); + cxstack_ix++; /* temporarily protect top context */ mark = newsp; switch (CxTYPE(cx)) { case CXt_LOOP: @@ -1955,6 +1969,8 @@ PP(pp_last) SP = newsp; PUTBACK; + LEAVE; + cxstack_ix--; /* Stack values are safe: */ switch (pop2) { case CXt_LOOP: @@ -1967,7 +1983,6 @@ PP(pp_last) } PL_curpm = newpm; /* ... and pop $1 et al */ - LEAVE; LEAVESUB(sv); return nextop; } @@ -2022,6 +2037,7 @@ PP(pp_redo) TOPBLOCK(cx); oldsave = PL_scopestack[PL_scopestack_ix - 1]; LEAVE_SCOPE(oldsave); + FREETMPS; return cx->blk_loop.redo_op; } @@ -2089,6 +2105,7 @@ PP(pp_goto) char *label; int do_dump = (PL_op->op_type == OP_DUMP); static char must_have_label[] = "goto must have label"; + AV *oldav = Nullav; label = 0; if (PL_op->op_flags & OPf_STACKED) { @@ -2151,7 +2168,7 @@ PP(pp_goto) #endif /* USE_5005THREADS */ /* abandon @_ if it got reified */ if (AvREAL(av)) { - (void)sv_2mortal((SV*)av); /* delay until return */ + oldav = av; /* delay until return */ av = newAV(); av_extend(av, items-1); AvFLAGS(av) = AVf_REIFY; @@ -2181,6 +2198,9 @@ PP(pp_goto) /* Now do some callish stuff. */ SAVETMPS; + /* For reified @_, delay freeing till return from new sub */ + if (oldav) + SAVEFREESV((SV*)oldav); SAVEFREESV(cv); /* later, undo the 'avoid premature free' hack */ if (CvXSUB(cv)) { #ifdef PERL_XSUB_OLDSTYLE @@ -2230,7 +2250,7 @@ PP(pp_goto) else { if (CvDEPTH(cv) == 100 && ckWARN(WARN_RECURSION)) sub_crush_depth(cv); - pad_push(padlist, CvDEPTH(cv), cx->blk_sub.hasargs); + pad_push(padlist, CvDEPTH(cv), 1); } #ifdef USE_5005THREADS if (!cx->blk_sub.hasargs) { @@ -2656,7 +2676,6 @@ Perl_sv_compile_2op(pTHX_ SV *sv, OP** startop, char *code, PAD** padp) #else SAVEVPTR(PL_op); #endif - PL_hints &= HINT_UTF8; /* we get here either during compilation, or via pp_regcomp at runtime */ runtime = IN_PERL_RUNTIME; @@ -2698,7 +2717,7 @@ Locate the CV corresponding to the currently executing sub or eval. If db_seqp is non_null, skip CVs that are in the DB package and populate *db_seqp with the cop sequence number at the point that the DB:: code was entered. (allows debuggers to eval in the scope of the breakpoint rather -than in in the scope of the debuger itself). +than in in the scope of the debugger itself). =cut */ @@ -3532,7 +3551,7 @@ PP(pp_leavetry) RETURNOP(retop); } -STATIC void +STATIC OP * S_doparseform(pTHX_ SV *sv) { STRLEN len; @@ -3548,14 +3567,15 @@ S_doparseform(pTHX_ SV *sv) U32 *linepc = 0; register I32 arg; bool ischop; - int maxops = 2; /* FF_LINEMARK + FF_END) */ + bool unchopnum = FALSE; + int maxops = 12; /* FF_LINEMARK + FF_END + 10 (\0 without preceding \n) */ if (len == 0) Perl_croak(aTHX_ "Null picture in formline"); /* estimate the buffer size needed */ for (base = s; s <= send; s++) { - if (*s == '\n' || *s == '\0' || *s == '@' || *s == '^') + if (*s == '\n' || *s == '@' || *s == '^') maxops += 10; } s = base; @@ -3588,8 +3608,12 @@ S_doparseform(pTHX_ SV *sv) case ' ': case '\t': skipspaces++; continue; - - case '\n': case 0: + case 0: + if (s < send) { + skipspaces = 0; + continue; + } /* else FALL THROUGH */ + case '\n': arg = s - base; skipspaces++; arg -= skipspaces; @@ -3645,8 +3669,12 @@ S_doparseform(pTHX_ SV *sv) *fpc++ = FF_FETCH; if (*s == '*') { s++; - *fpc++ = 0; - *fpc++ = FF_LINEGLOB; + *fpc++ = 2; /* skip the @* or ^* */ + if (ischop) { + *fpc++ = FF_LINESNGL; + *fpc++ = FF_CHOP; + } else + *fpc++ = FF_LINEGLOB; } else if (*s == '#' || (*s == '.' && s[1] == '#')) { arg = ischop ? 512 : 0; @@ -3664,6 +3692,7 @@ S_doparseform(pTHX_ SV *sv) *fpc++ = s - base; /* fieldsize for FETCH */ *fpc++ = FF_DECIMAL; *fpc++ = (U16)arg; + unchopnum |= ! ischop; } else if (*s == '0' && s[1] == '#') { /* Zero padded decimals */ arg = ischop ? 512 : 0; @@ -3682,6 +3711,7 @@ S_doparseform(pTHX_ SV *sv) *fpc++ = s - base; /* fieldsize for FETCH */ *fpc++ = FF_0DECIMAL; *fpc++ = (U16)arg; + unchopnum |= ! ischop; } else { I32 prespace = 0; @@ -3736,6 +3766,38 @@ S_doparseform(pTHX_ SV *sv) Safefree(fops); sv_magic(sv, Nullsv, PERL_MAGIC_fm, Nullch, 0); SvCOMPILED_on(sv); + + if (unchopnum && repeat) + DIE(aTHX_ "Repeated format line will never terminate (~~ and @#)"); + return 0; +} + + +STATIC bool +S_num_overflow(NV value, I32 fldsize, I32 frcsize) +{ + /* Can value be printed in fldsize chars, using %*.*f ? */ + NV pwr = 1; + NV eps = 0.5; + bool res = FALSE; + int intsize = fldsize - (value < 0 ? 1 : 0); + + if (frcsize & 256) + intsize--; + frcsize &= 255; + intsize -= frcsize; + + while (intsize--) pwr *= 10.0; + while (frcsize--) eps /= 10.0; + + if( value >= 0 ){ + if (value + eps >= pwr) + res = TRUE; + } else { + if (value - eps <= -pwr) + res = TRUE; + } + return res; } static I32 diff --git a/gnu/usr.bin/perl/pp_hot.c b/gnu/usr.bin/perl/pp_hot.c index 803a8188de8..e016416a8e2 100644 --- a/gnu/usr.bin/perl/pp_hot.c +++ b/gnu/usr.bin/perl/pp_hot.c @@ -1,7 +1,7 @@ /* pp_hot.c * * Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - * 2000, 2001, 2002, 2003, by Larry Wall and others + * 2000, 2001, 2002, 2003, 2004, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -141,7 +141,7 @@ PP(pp_concat) bool lbyte; STRLEN rlen; char* rpv = SvPV(right, rlen); /* mg_get(right) happens here */ - bool rbyte = !SvUTF8(right), rcopied = FALSE; + bool rbyte = !DO_UTF8(right), rcopied = FALSE; if (TARG == right && right != left) { right = sv_2mortal(newSVpvn(rpv, rlen)); @@ -151,7 +151,7 @@ PP(pp_concat) if (TARG != left) { lpv = SvPV(left, llen); /* mg_get(left) may happen here */ - lbyte = !SvUTF8(left); + lbyte = !DO_UTF8(left); sv_setpvn(TARG, lpv, llen); if (!lbyte) SvUTF8_on(TARG); @@ -164,7 +164,9 @@ PP(pp_concat) if (!SvOK(TARG)) sv_setpv(left, ""); lpv = SvPV_nomg(left, llen); - lbyte = !SvUTF8(left); + lbyte = !DO_UTF8(left); + if (IN_BYTES) + SvUTF8_off(TARG); } #if defined(PERL_Y2KWARN) @@ -489,7 +491,8 @@ PP(pp_add) PP(pp_aelemfast) { dSP; - AV *av = GvAV(cGVOP_gv); + AV *av = PL_op->op_flags & OPf_SPECIAL ? + (AV*)PAD_SV(PL_op->op_targ) : GvAV(cGVOP_gv); U32 lval = PL_op->op_flags & OPf_MOD; SV** svp = av_fetch(av, PL_op->op_private, lval); SV *sv = (svp ? *svp : &PL_sv_undef); @@ -743,7 +746,10 @@ PP(pp_rv2av) U32 i; for (i=0; i < (U32)maxarg; i++) { SV **svp = av_fetch(av, i, FALSE); - SP[i+1] = (svp) ? *svp : &PL_sv_undef; + /* See note in pp_helem, and bug id #27839 */ + SP[i+1] = svp + ? SvGMAGICAL(*svp) ? sv_mortalcopy(*svp) : *svp + : &PL_sv_undef; } } else { @@ -1350,10 +1356,10 @@ play_it_again: /*SUPPRESS 560*/ if ((rx->startp[i] != -1) && rx->endp[i] != -1 ) { len = rx->endp[i] - rx->startp[i]; + s = rx->startp[i] + truebase; if (rx->endp[i] < 0 || rx->startp[i] < 0 || len < 0 || len > strend - s) DIE(aTHX_ "panic: pp_match start/end pointers"); - s = rx->startp[i] + truebase; sv_setpvn(*SP, s, len); if (DO_UTF8(TARG) && is_utf8_string((U8*)s, len)) SvUTF8_on(*SP); @@ -1837,7 +1843,7 @@ PP(pp_iter) { dSP; register PERL_CONTEXT *cx; - SV* sv; + SV *sv, *oldsv; AV* av; SV **itersvp; @@ -1853,8 +1859,8 @@ PP(pp_iter) if (cx->blk_loop.iterlval) { /* string increment */ register SV* cur = cx->blk_loop.iterlval; - STRLEN maxlen; - char *max = SvPV((SV*)av, maxlen); + STRLEN maxlen = 0; + char *max = SvOK((SV*)av) ? SvPV((SV*)av, maxlen) : ""; if (!SvNIOK(cur) && SvCUR(cur) <= maxlen) { #ifndef USE_5005THREADS /* don't risk potential race */ if (SvREFCNT(*itersvp) == 1 && !SvMAGICAL(*itersvp)) { @@ -1867,8 +1873,9 @@ PP(pp_iter) /* we need a fresh SV every time so that loop body sees a * completely new SV for closures/references to work as * they used to */ - SvREFCNT_dec(*itersvp); + oldsv = *itersvp; *itersvp = newSVsv(cur); + SvREFCNT_dec(oldsv); } if (strEQ(SvPVX(cur), max)) sv_setiv(cur, 0); /* terminate next time */ @@ -1893,8 +1900,9 @@ PP(pp_iter) /* we need a fresh SV every time so that loop body sees a * completely new SV for closures/references to work as they * used to */ - SvREFCNT_dec(*itersvp); + oldsv = *itersvp; *itersvp = newSViv(cx->blk_loop.iterix++); + SvREFCNT_dec(oldsv); } RETPUSHYES; } @@ -1903,8 +1911,6 @@ PP(pp_iter) if (cx->blk_loop.iterix >= (av == PL_curstack ? cx->blk_oldsp : AvFILL(av))) RETPUSHNO; - SvREFCNT_dec(*itersvp); - if (SvMAGICAL(av) || AvREIFY(av)) { SV **svp = av_fetch(av, ++cx->blk_loop.iterix, FALSE); if (svp) @@ -1944,7 +1950,10 @@ PP(pp_iter) sv = (SV*)lv; } + oldsv = *itersvp; *itersvp = SvREFCNT_inc(sv); + SvREFCNT_dec(oldsv); + RETPUSHYES; } @@ -2308,6 +2317,7 @@ PP(pp_leavesub) SV *sv; POPBLOCK(cx,newpm); + cxstack_ix++; /* temporarily protect top context */ TAINT_NOT; if (gimme == G_SCALAR) { @@ -2345,10 +2355,11 @@ PP(pp_leavesub) } PUTBACK; + LEAVE; + cxstack_ix--; POPSUB(cx,sv); /* Stack values are safe: release CV and @_ ... */ PL_curpm = newpm; /* ... and pop $1 et al */ - LEAVE; LEAVESUB(sv); return pop_return(); } @@ -2366,6 +2377,7 @@ PP(pp_leavesublv) SV *sv; POPBLOCK(cx,newpm); + cxstack_ix++; /* temporarily protect top context */ TAINT_NOT; @@ -2401,9 +2413,10 @@ PP(pp_leavesublv) * the refcounts so the caller gets a live guy. Cannot set * TEMP, so sv_2mortal is out of question. */ if (!CvLVALUE(cx->blk_sub.cv)) { + LEAVE; + cxstack_ix--; POPSUB(cx,sv); PL_curpm = newpm; - LEAVE; LEAVESUB(sv); DIE(aTHX_ "Can't modify non-lvalue subroutine call"); } @@ -2412,9 +2425,10 @@ PP(pp_leavesublv) EXTEND_MORTAL(1); if (MARK == SP) { if (SvFLAGS(TOPs) & (SVs_TEMP | SVs_PADTMP | SVf_READONLY)) { + LEAVE; + cxstack_ix--; POPSUB(cx,sv); PL_curpm = newpm; - LEAVE; LEAVESUB(sv); DIE(aTHX_ "Can't return %s from lvalue subroutine", SvREADONLY(TOPs) ? (TOPs == &PL_sv_undef) ? "undef" @@ -2427,9 +2441,10 @@ PP(pp_leavesublv) } } else { /* Should not happen? */ + LEAVE; + cxstack_ix--; POPSUB(cx,sv); PL_curpm = newpm; - LEAVE; LEAVESUB(sv); DIE(aTHX_ "%s returned from lvalue subroutine in scalar context", (MARK > SP ? "Empty array" : "Array")); @@ -2443,9 +2458,10 @@ PP(pp_leavesublv) && SvFLAGS(*mark) & (SVs_TEMP | SVs_PADTMP | SVf_READONLY)) { /* Might be flattened array after $#array = */ PUTBACK; + LEAVE; + cxstack_ix--; POPSUB(cx,sv); PL_curpm = newpm; - LEAVE; LEAVESUB(sv); DIE(aTHX_ "Can't return a %s from lvalue subroutine", SvREADONLY(TOPs) ? "readonly value" : "temporary"); @@ -2497,10 +2513,11 @@ PP(pp_leavesublv) } PUTBACK; + LEAVE; + cxstack_ix--; POPSUB(cx,sv); /* Stack values are safe: release CV and @_ ... */ PL_curpm = newpm; /* ... and pop $1 et al */ - LEAVE; LEAVESUB(sv); return pop_return(); } @@ -2864,9 +2881,7 @@ try_autoload: * Owing the speed considerations, we choose instead to search for * the cv using find_runcv() when calling doeval(). */ - if (CvDEPTH(cv) < 2) - (void)SvREFCNT_inc(cv); - else { + if (CvDEPTH(cv) >= 2) { PERL_STACK_OVERFLOW_CHECK(); pad_push(padlist, CvDEPTH(cv), 1); } @@ -2981,6 +2996,18 @@ PP(pp_aelem) RETPUSHUNDEF; svp = av_fetch(av, elem, lval && !defer); if (lval) { +#ifdef PERL_MALLOC_WRAP + static const char oom_array_extend[] = + "Out of memory during array extend"; /* Duplicated in av.c */ + if (SvUOK(elemsv)) { + UV uv = SvUV(elemsv); + elem = uv > IV_MAX ? IV_MAX : uv; + } + else if (SvNOK(elemsv)) + elem = (IV)SvNV(elemsv); + if (elem > 0) + MEM_WRAP_CHECK_1(elem,SV*,oom_array_extend); +#endif if (!svp || *svp == &PL_sv_undef) { SV* lv; if (!defer) diff --git a/gnu/usr.bin/perl/pp_sys.c b/gnu/usr.bin/perl/pp_sys.c index 259c926dc33..d2100496c36 100644 --- a/gnu/usr.bin/perl/pp_sys.c +++ b/gnu/usr.bin/perl/pp_sys.c @@ -1,7 +1,7 @@ /* pp_sys.c * * Copyright (C) 1995, 1996, 1997, 1998, 1999, - * 2000, 2001, 2002, 2003, by Larry Wall and others + * 2000, 2001, 2002, 2003, 2004, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -1327,7 +1327,7 @@ PP(pp_leavewrite) if (!IoTOP_NAME(io)) { if (!IoFMT_NAME(io)) IoFMT_NAME(io) = savepv(GvNAME(gv)); - topname = sv_2mortal(Perl_newSVpvf(aTHX_ "%s_TOP", IoFMT_NAME(io))); + topname = sv_2mortal(Perl_newSVpvf(aTHX_ "%s_TOP", GvNAME(gv))); topgv = gv_fetchpv(SvPVX(topname), FALSE, SVt_PVFM); if ((topgv && GvFORM(topgv)) || !gv_fetchpv("top",FALSE,SVt_PVFM)) @@ -1820,7 +1820,11 @@ PP(pp_send) } if (PerlIO_isutf8(IoIFP(io))) { - buffer = SvPVutf8(bufsv, blen); + if (!SvUTF8(bufsv)) { + bufsv = sv_2mortal(newSVsv(bufsv)); + buffer = sv_2pvutf8(bufsv, &blen); + } else + buffer = SvPV(bufsv, blen); } else { if (DO_UTF8(bufsv)) { diff --git a/gnu/usr.bin/perl/proto.h b/gnu/usr.bin/perl/proto.h index 69f202d911e..4165f384c9f 100644 --- a/gnu/usr.bin/perl/proto.h +++ b/gnu/usr.bin/perl/proto.h @@ -2,7 +2,7 @@ * proto.h * * Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, - * 2000, 2001, 2002, 2003, by Larry Wall and others + * 2000, 2001, 2002, 2003, 2004, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -1019,9 +1019,9 @@ STATIC void S_init_postdump_symbols(pTHX_ int, char **, char **); STATIC void S_init_predump_symbols(pTHX); STATIC void S_my_exit_jump(pTHX) __attribute__((noreturn)); STATIC void S_nuke_stacks(pTHX); -STATIC void S_open_script(pTHX_ char *, bool, SV *, int *fd); +STATIC void S_open_script(pTHX_ char *, bool, SV *); STATIC void S_usage(pTHX_ char *); -STATIC void S_validate_suid(pTHX_ char *, char*, int); +STATIC void S_validate_suid(pTHX_ char *, char*); # if defined(IAMSUID) STATIC int S_fd_on_nosuid_fs(pTHX_ int fd); # endif @@ -1064,7 +1064,8 @@ STATIC void* S_docatch_body(pTHX); STATIC void* S_vdocatch_body(pTHX_ va_list args); #endif STATIC OP* S_dofindlabel(pTHX_ OP *o, char *label, OP **opstack, OP **oplimit); -STATIC void S_doparseform(pTHX_ SV *sv); +STATIC OP* S_doparseform(pTHX_ SV *sv); +STATIC bool S_num_overflow(NV value, I32 fldsize, I32 frcsize); STATIC I32 S_dopoptoeval(pTHX_ I32 startingblock); STATIC I32 S_dopoptolabel(pTHX_ char *label); STATIC I32 S_dopoptoloop(pTHX_ I32 startingblock); @@ -1194,7 +1195,7 @@ STATIC void S_del_xpvbm(pTHX_ XPVBM* p); STATIC void S_del_xrv(pTHX_ XRV* p); STATIC void S_sv_unglob(pTHX_ SV* sv); STATIC void S_not_a_number(pTHX_ SV *sv); -STATIC I32 S_visit(pTHX_ SVFUNC_t f); +STATIC I32 S_visit(pTHX_ SVFUNC_t f, U32 flags, U32 mask); STATIC void S_sv_add_backref(pTHX_ SV *tsv, SV *sv); STATIC void S_sv_del_backref(pTHX_ SV *sv); # ifdef DEBUGGING diff --git a/gnu/usr.bin/perl/regcomp.c b/gnu/usr.bin/perl/regcomp.c index e53dc0c3421..62e5729b425 100644 --- a/gnu/usr.bin/perl/regcomp.c +++ b/gnu/usr.bin/perl/regcomp.c @@ -1188,7 +1188,9 @@ S_study_chunk(pTHX_ RExC_state_t *pRExC_state, regnode **scanp, I32 *deltap, reg if ( OP(oscan) == CURLYX && data && !(data->flags & SF_HAS_PAR) && !(data->flags & SF_HAS_EVAL) - && !deltanext ) { + && !deltanext /* atom is fixed width */ + && minnext != 0 /* CURLYM can't handle zero width */ + ) { /* XXXX How to optimize if data == 0? */ /* Optimize to a simpler form. */ regnode *nxt = NEXTOPER(oscan) + EXTRA_STEP_2ARGS; /* OPEN */ @@ -3654,7 +3656,8 @@ S_regclass(pTHX_ RExC_state_t *pRExC_state) } RExC_parse = e + 1; ANYOF_FLAGS(ret) |= ANYOF_UNICODE; - continue; + namedclass = ANYOF_MAX; /* no official name, but it's named */ + break; case 'n': value = '\n'; break; case 'r': value = '\r'; break; case 't': value = '\t'; break; @@ -4059,6 +4062,9 @@ S_regclass(pTHX_ RExC_state_t *pRExC_state) } Perl_sv_catpvf(aTHX_ listsv, "!utf8::IsXDigit\n"); break; + case ANYOF_MAX: + /* this is to handle \p and \P */ + break; default: vFAIL("Invalid [::] class"); break; diff --git a/gnu/usr.bin/perl/regexec.c b/gnu/usr.bin/perl/regexec.c index 2ec017caba0..58a62ab7ad0 100644 --- a/gnu/usr.bin/perl/regexec.c +++ b/gnu/usr.bin/perl/regexec.c @@ -68,7 +68,7 @@ **** Alterations to Henry's code are... **** **** Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - **** 2000, 2001, 2002, 2003, by Larry Wall and others + **** 2000, 2001, 2002, 2003, 2004, by Larry Wall and others **** **** You may distribute under the terms of either the GNU General Public **** License or the Artistic License, as specified in the README file. @@ -3354,7 +3354,7 @@ S_regmatch(pTHX_ regnode *prog) CHECKPOINT lastcp; /* We suppose that the next guy does not need - backtracking: in particular, it is of constant length, + backtracking: in particular, it is of constant non-zero length, and has no parenths to influence future backrefs. */ ln = ARG1(scan); /* min to match */ n = ARG2(scan); /* max to match */ @@ -3373,15 +3373,6 @@ S_regmatch(pTHX_ regnode *prog) minmod = 0; if (ln && regrepeat_hard(scan, ln, &l) < ln) sayNO; - /* if we matched something zero-length we don't need to - backtrack - capturing parens are already defined, so - the caveat in the maximal case doesn't apply - - XXXX if ln == 0, we can redo this check first time - through the following loop - */ - if (ln && l == 0) - n = ln; /* don't backtrack */ locinput = PL_reginput; if (HAS_TEXT(next) || JUMPABLE(next)) { regnode *text_node = next; @@ -3407,8 +3398,7 @@ S_regmatch(pTHX_ regnode *prog) c1 = c2 = -1000; assume_ok_MM: REGCP_SET(lastcp); - /* This may be improved if l == 0. */ - while (n >= ln || (n == REG_INFTY && ln > 0 && l)) { /* ln overflow ? */ + while (n >= ln || (n == REG_INFTY && ln > 0)) { /* ln overflow ? */ /* If it could work, try it. */ if (c1 == -1000 || UCHARAT(PL_reginput) == c1 || @@ -3439,13 +3429,6 @@ S_regmatch(pTHX_ regnode *prog) } else { n = regrepeat_hard(scan, n, &l); - /* if we matched something zero-length we don't need to - backtrack, unless the minimum count is zero and we - are capturing the result - in that case the capture - being defined or not may affect later execution - */ - if (n != 0 && l == 0 && !(paren && ln == 0)) - ln = n; /* don't backtrack */ locinput = PL_reginput; DEBUG_r( PerlIO_printf(Perl_debug_log, @@ -4250,7 +4233,7 @@ S_regrepeat(pTHX_ regnode *p, I32 max) /* - regrepeat_hard - repeatedly match something, report total lenth and length * - * The repeater is supposed to have constant length. + * The repeater is supposed to have constant non-zero length. */ STATIC I32 diff --git a/gnu/usr.bin/perl/scope.c b/gnu/usr.bin/perl/scope.c index a01dd41c07b..d9034b72f40 100644 --- a/gnu/usr.bin/perl/scope.c +++ b/gnu/usr.bin/perl/scope.c @@ -1,7 +1,7 @@ /* scope.c * * Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - * 2000, 2001, 2002, 2003, by Larry Wall and others + * 2000, 2001, 2002, 2003, 2004, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -619,6 +619,9 @@ Perl_save_aelem(pTHX_ AV *av, I32 idx, SV **sptr) SSPUSHINT(idx); SSPUSHPTR(SvREFCNT_inc(*sptr)); SSPUSHINT(SAVEt_AELEM); + /* if it gets reified later, the restore will have the wrong refcnt */ + if (!AvREAL(av) && AvREIFY(av)) + SvREFCNT_inc(*sptr); save_scalar_at(sptr); sv = *sptr; /* If we're localizing a tied array element, this new sv @@ -701,7 +704,7 @@ Perl_leave_scope(pTHX_ I32 base) value = (SV*)SSPOPPTR; gv = (GV*)SSPOPPTR; ptr = &GvSV(gv); - SvREFCNT_dec(gv); + av = (AV*)gv; /* what to refcnt_dec */ goto restore_sv; case SAVEt_GENERIC_PVREF: /* generic pv */ str = (char*)SSPOPPTR; @@ -734,6 +737,7 @@ Perl_leave_scope(pTHX_ I32 base) case SAVEt_SVREF: /* scalar reference */ value = (SV*)SSPOPPTR; ptr = SSPOPPTR; + av = Nullav; /* what to refcnt_dec */ restore_sv: sv = *(SV**)ptr; DEBUG_S(PerlIO_printf(Perl_debug_log, @@ -763,12 +767,14 @@ Perl_leave_scope(pTHX_ I32 base) * mg_get() in save_scalar_at() croaked */ SvMAGIC(value) = 0; } - SvREFCNT_dec(sv); *(SV**)ptr = value; + SvREFCNT_dec(sv); PL_localizing = 2; SvSETMAGIC(value); PL_localizing = 0; SvREFCNT_dec(value); + if (av) /* actually an av, hv or gv */ + SvREFCNT_dec(av); break; case SAVEt_AV: /* array reference */ av = (AV*)SSPOPPTR; @@ -975,13 +981,14 @@ Perl_leave_scope(pTHX_ I32 base) value = (SV*)SSPOPPTR; i = SSPOPINT; av = (AV*)SSPOPPTR; + if (!AvREAL(av) && AvREIFY(av)) /* undo reify guard */ + SvREFCNT_dec(value); ptr = av_fetch(av,i,1); if (ptr) { sv = *(SV**)ptr; if (sv && sv != &PL_sv_undef) { if (SvTIED_mg((SV*)av, PERL_MAGIC_tied)) (void)SvREFCNT_inc(sv); - SvREFCNT_dec(av); goto restore_sv; } } @@ -999,8 +1006,8 @@ Perl_leave_scope(pTHX_ I32 base) ptr = &HeVAL((HE*)ptr); if (SvTIED_mg((SV*)hv, PERL_MAGIC_tied)) (void)SvREFCNT_inc(*(SV**)ptr); - SvREFCNT_dec(hv); SvREFCNT_dec(sv); + av = (AV*)hv; /* what to refcnt_dec */ goto restore_sv; } } @@ -1017,6 +1024,11 @@ Perl_leave_scope(pTHX_ I32 base) GvHV(PL_hintgv) = NULL; } *(I32*)&PL_hints = (I32)SSPOPINT; + if (PL_hints & HINT_LOCALIZE_HH) { + SvREFCNT_dec((SV*)GvHV(PL_hintgv)); + GvHV(PL_hintgv) = (HV*)SSPOPPTR; + } + break; case SAVEt_COMPPAD: PL_comppad = (PAD*)SSPOPPTR; diff --git a/gnu/usr.bin/perl/scope.h b/gnu/usr.bin/perl/scope.h index a2e760e317a..612de4aa14c 100644 --- a/gnu/usr.bin/perl/scope.h +++ b/gnu/usr.bin/perl/scope.h @@ -1,7 +1,7 @@ /* scope.h * * Copyright (C) 1993, 1994, 1996, 1997, 1998, 1999, - * 2000, 2001, 2002, by Larry Wall and others + * 2000, 2001, 2002, 2004, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -150,14 +150,14 @@ Closing bracket on a callback. See C<ENTER> and L<perlcall>. #define SAVEOP() save_op() #define SAVEHINTS() \ - STMT_START { \ - if (PL_hints & HINT_LOCALIZE_HH) \ - save_hints(); \ - else { \ - SSCHECK(2); \ - SSPUSHINT(PL_hints); \ - SSPUSHINT(SAVEt_HINTS); \ - } \ + STMT_START { \ + SSCHECK(3); \ + if (PL_hints & HINT_LOCALIZE_HH) { \ + SSPUSHPTR(GvHV(PL_hintgv)); \ + GvHV(PL_hintgv) = newHVhv(GvHV(PL_hintgv)); \ + } \ + SSPUSHINT(PL_hints); \ + SSPUSHINT(SAVEt_HINTS); \ } STMT_END #define SAVECOMPPAD() \ diff --git a/gnu/usr.bin/perl/shlib_version b/gnu/usr.bin/perl/shlib_version index 1c5d96eb2aa..c10074d52ae 100644 --- a/gnu/usr.bin/perl/shlib_version +++ b/gnu/usr.bin/perl/shlib_version @@ -1,2 +1,2 @@ -major=9 +major=10 minor=0 diff --git a/gnu/usr.bin/perl/sv.c b/gnu/usr.bin/perl/sv.c index 5875b5d9e32..5ce1e59e9d8 100644 --- a/gnu/usr.bin/perl/sv.c +++ b/gnu/usr.bin/perl/sv.c @@ -1,7 +1,7 @@ /* sv.c * * Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - * 2000, 2001, 2002, 2003, by Larry Wall and others + * 2000, 2001, 2002, 2003, 2004, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -24,6 +24,11 @@ #define FCALL *f +#ifdef __Lynx__ +/* Missing proto on LynxOS */ + char *gconvert(double, int, int, char *); +#endif + #ifdef PERL_UTF8_CACHE_ASSERT /* The cache element 0 is the Unicode offset; * the cache element 1 is the byte offset of the element 0; @@ -239,8 +244,8 @@ S_del_sv(pTHX_ SV *p) if (!ok) { if (ckWARN_d(WARN_INTERNAL)) Perl_warner(aTHX_ packWARN(WARN_INTERNAL), - "Attempt to free non-arena SV: 0x%"UVxf, - PTR2UV(p)); + "Attempt to free non-arena SV: 0x%"UVxf + pTHX__FORMAT, PTR2UV(p) pTHX__VALUE); return; } } @@ -271,7 +276,6 @@ Perl_sv_add_arena(pTHX_ char *ptr, U32 size, U32 flags) SV* sva = (SV*)ptr; register SV* sv; register SV* svend; - Zero(ptr, size, char); /* The first SV in an arena isn't an SV. */ SvANY(sva) = (void *) PL_sv_arenaroot; /* ptr to next arena */ @@ -285,6 +289,7 @@ Perl_sv_add_arena(pTHX_ char *ptr, U32 size, U32 flags) sv = sva + 1; while (sv < svend) { SvANY(sv) = (void *)(SV*)(sv + 1); + SvREFCNT(sv) = 0; SvFLAGS(sv) = SVTYPEMASK; sv++; } @@ -314,10 +319,11 @@ S_more_sv(pTHX) return sv; } -/* visit(): call the named function for each non-free SV in the arenas. */ +/* visit(): call the named function for each non-free SV in the arenas + * whose flags field matches the flags/mask args. */ STATIC I32 -S_visit(pTHX_ SVFUNC_t f) +S_visit(pTHX_ SVFUNC_t f, U32 flags, U32 mask) { SV* sva; SV* sv; @@ -327,7 +333,10 @@ S_visit(pTHX_ SVFUNC_t f) for (sva = PL_sv_arenaroot; sva; sva = (SV*)SvANY(sva)) { svend = &sva[SvREFCNT(sva)]; for (sv = sva + 1; sv < svend; ++sv) { - if (SvTYPE(sv) != SVTYPEMASK && SvREFCNT(sv)) { + if (SvTYPE(sv) != SVTYPEMASK + && (sv->sv_flags & mask) == flags + && SvREFCNT(sv)) + { (FCALL)(aTHX_ sv); ++visited; } @@ -362,7 +371,7 @@ void Perl_sv_report_used(pTHX) { #ifdef DEBUGGING - visit(do_report_used); + visit(do_report_used, 0, 0); #endif } @@ -403,6 +412,7 @@ do_clean_named_objs(pTHX_ SV *sv) (GvCV(sv) && SvOBJECT(GvCV(sv))) ) { DEBUG_D((PerlIO_printf(Perl_debug_log, "Cleaning named glob object:\n "), sv_dump(sv))); + SvFLAGS(sv) |= SVf_BREAK; SvREFCNT_dec(sv); } } @@ -421,10 +431,10 @@ void Perl_sv_clean_objs(pTHX) { PL_in_clean_objs = TRUE; - visit(do_clean_objs); + visit(do_clean_objs, SVf_ROK, SVf_ROK); #ifndef DISABLE_DESTRUCTOR_KLUDGE /* some barnacles may yet remain, clinging to typeglobs */ - visit(do_clean_named_objs); + visit(do_clean_named_objs, SVt_PVGV, SVTYPEMASK); #endif PL_in_clean_objs = FALSE; } @@ -454,7 +464,7 @@ Perl_sv_clean_all(pTHX) { I32 cleaned; PL_in_clean_all = TRUE; - cleaned = visit(do_clean_all); + cleaned = visit(do_clean_all, 0,0); PL_in_clean_all = FALSE; return cleaned; } @@ -1905,7 +1915,7 @@ Perl_looks_like_number(pTHX_ SV *sv) else if (SvPOKp(sv)) sbegin = SvPV(sv, len); else - return 1; /* Historic. Wrong? */ + return SvFLAGS(sv) & (SVf_NOK|SVp_NOK|SVf_IOK|SVp_IOK); return grok_number(sbegin, len, NULL); } @@ -3408,7 +3418,7 @@ Perl_sv_utf8_upgrade(pTHX_ register SV *sv) /* =for apidoc sv_utf8_upgrade -Convert the PV of an SV to its UTF-8-encoded form. +Converts the PV of an SV to its UTF-8-encoded form. Forces the SV to string form if it is not already. Always sets the SvUTF8 flag to avoid future validity checks even if all the bytes have hibit clear. @@ -3418,7 +3428,7 @@ use the Encode extension for that. =for apidoc sv_utf8_upgrade_flags -Convert the PV of an SV to its UTF-8-encoded form. +Converts the PV of an SV to its UTF-8-encoded form. Forces the SV to string form if it is not already. Always sets the SvUTF8 flag to avoid future validity checks even if all the bytes have hibit clear. If C<flags> has C<SV_GMAGIC> bit set, @@ -3437,18 +3447,22 @@ Perl_sv_utf8_upgrade_flags(pTHX_ register SV *sv, I32 flags) U8 *s, *t, *e; int hibit = 0; - if (!sv) + if (sv == &PL_sv_undef) return 0; - if (!SvPOK(sv)) { STRLEN len = 0; - (void) sv_2pv_flags(sv,&len, flags); - if (!SvPOK(sv)) - return len; + if (SvREADONLY(sv) && (SvPOKp(sv) || SvIOKp(sv) || SvNOKp(sv))) { + (void) sv_2pv_flags(sv,&len, flags); + if (SvUTF8(sv)) + return len; + } else { + (void) SvPV_force(sv,len); + } } - if (SvUTF8(sv)) + if (SvUTF8(sv)) { return SvCUR(sv); + } if (SvREADONLY(sv) && SvFAKE(sv)) { sv_force_normal(sv); @@ -3471,7 +3485,8 @@ Perl_sv_utf8_upgrade_flags(pTHX_ register SV *sv, I32 flags) } if (hibit) { STRLEN len; - + (void)SvOOK_off(sv); + s = (U8*)SvPVX(sv); len = SvCUR(sv) + 1; /* Plus the \0 */ SvPVX(sv) = (char*)bytes_to_utf8((U8*)s, &len); SvCUR(sv) = len - 1; @@ -3488,9 +3503,9 @@ Perl_sv_utf8_upgrade_flags(pTHX_ register SV *sv, I32 flags) /* =for apidoc sv_utf8_downgrade -Attempt to convert the PV of an SV from UTF-8-encoded to byte encoding. -This may not be possible if the PV contains non-byte encoding characters; -if this is the case, either returns false or, if C<fail_ok> is not +Attempts to convert the PV of an SV from characters to bytes. +If the PV contains a character beyond byte, this conversion will fail; +in this case, either returns false or, if C<fail_ok> is not true, croaks. This is not as a general purpose Unicode to byte encoding interface: @@ -3502,7 +3517,7 @@ use the Encode extension for that. bool Perl_sv_utf8_downgrade(pTHX_ register SV* sv, bool fail_ok) { - if (SvPOK(sv) && SvUTF8(sv)) { + if (SvPOKp(sv) && SvUTF8(sv)) { if (SvCUR(sv)) { U8 *s; STRLEN len; @@ -3531,9 +3546,8 @@ Perl_sv_utf8_downgrade(pTHX_ register SV* sv, bool fail_ok) /* =for apidoc sv_utf8_encode -Convert the PV of an SV to UTF-8-encoded, but then turn off the C<SvUTF8> -flag so that it looks like octets again. Used as a building block -for encode_utf8 in Encode.xs +Converts the PV of an SV to UTF-8, but then turns the C<SvUTF8> +flag off so that it looks like octets again. =cut */ @@ -3542,15 +3556,23 @@ void Perl_sv_utf8_encode(pTHX_ register SV *sv) { (void) sv_utf8_upgrade(sv); + if (SvIsCOW(sv)) { + sv_force_normal_flags(sv, 0); + } + if (SvREADONLY(sv)) { + Perl_croak(aTHX_ PL_no_modify); + } SvUTF8_off(sv); } /* =for apidoc sv_utf8_decode -Convert the octets in the PV from UTF-8 to chars. Scan for validity and then -turn off SvUTF8 if needed so that we see characters. Used as a building block -for decode_utf8 in Encode.xs +If the PV of the SV is an octet sequence in UTF-8 +and contains a multiple-byte character, the C<SvUTF8> flag is turned on +so that it looks like a character. If the PV contains only single-byte +characters, the C<SvUTF8> flag stays being off. +Scans PV for validity and returns false if the PV is invalid UTF-8. =cut */ @@ -3558,7 +3580,7 @@ for decode_utf8 in Encode.xs bool Perl_sv_utf8_decode(pTHX_ register SV *sv) { - if (SvPOK(sv)) { + if (SvPOKp(sv)) { U8 *c; U8 *e; @@ -4097,7 +4119,8 @@ Perl_sv_setsv_mg(pTHX_ SV *dstr, register SV *sstr) =for apidoc sv_setpvn Copies a string into an SV. The C<len> parameter indicates the number of -bytes to be copied. Does not handle 'set' magic. See C<sv_setpvn_mg>. +bytes to be copied. If the C<ptr> argument is NULL the SV will become +undefined. Does not handle 'set' magic. See C<sv_setpvn_mg>. =cut */ @@ -4893,15 +4916,13 @@ S_sv_add_backref(pTHX_ SV *tsv, SV *sv) * by magic_killbackrefs() when tsv is being freed */ } if (AvFILLp(av) >= AvMAX(av)) { + I32 i; SV **svp = AvARRAY(av); - I32 i = AvFILLp(av); - while (i >= 0) { - if (svp[i] == &PL_sv_undef) { + for (i = AvFILLp(av); i >= 0; i--) + if (!svp[i]) { svp[i] = sv; /* reuse the slot */ return; } - i--; - } av_extend(av, AvFILLp(av)+1); } AvARRAY(av)[++AvFILLp(av)] = sv; /* av_push() */ @@ -4923,13 +4944,8 @@ S_sv_del_backref(pTHX_ SV *sv) Perl_croak(aTHX_ "panic: del_backref"); av = (AV *)mg->mg_obj; svp = AvARRAY(av); - i = AvFILLp(av); - while (i >= 0) { - if (svp[i] == sv) { - svp[i] = &PL_sv_undef; /* XXX */ - } - i--; - } + for (i = AvFILLp(av); i >= 0; i--) + if (svp[i] == sv) svp[i] = Nullsv; } /* @@ -5331,8 +5347,8 @@ Perl_sv_free(pTHX_ SV *sv) } if (ckWARN_d(WARN_INTERNAL)) Perl_warner(aTHX_ packWARN(WARN_INTERNAL), - "Attempt to free unreferenced scalar: SV 0x%"UVxf, - PTR2UV(sv)); + "Attempt to free unreferenced scalar: SV 0x%"UVxf + pTHX__FORMAT, PTR2UV(sv) pTHX__VALUE); return; } ATOMIC_DEC_AND_TEST(refcount_is_zero, SvREFCNT(sv)); @@ -5342,8 +5358,8 @@ Perl_sv_free(pTHX_ SV *sv) if (SvTEMP(sv)) { if (ckWARN_d(WARN_DEBUGGING)) Perl_warner(aTHX_ packWARN(WARN_DEBUGGING), - "Attempt to free temp prematurely: SV 0x%"UVxf, - PTR2UV(sv)); + "Attempt to free temp prematurely: SV 0x%"UVxf + pTHX__FORMAT, PTR2UV(sv) pTHX__VALUE); return; } #endif @@ -5648,8 +5664,7 @@ Perl_sv_pos_u2b(pTHX_ register SV *sv, I32* offsetp, I32* lenp) s += UTF8SKIP(s); if (s >= send) s = send; - if (utf8_mg_pos_init(sv, &mg, &cache, 2, lenp, s, start)) - cache[2] += *offsetp; + utf8_mg_pos_init(sv, &mg, &cache, 2, lenp, s, start); } *lenp = s - start; } @@ -5742,6 +5757,11 @@ Perl_sv_pos_b2u(pTHX_ register SV* sv, I32* offsetp) cache[0] -= ubackw; *offsetp = cache[0]; + + /* Drop the stale "length" cache */ + cache[2] = 0; + cache[3] = 0; + return; } } @@ -5779,6 +5799,9 @@ Perl_sv_pos_b2u(pTHX_ register SV* sv, I32* offsetp) cache[0] = len; cache[1] = *offsetp; + /* Drop the stale "length" cache */ + cache[2] = 0; + cache[3] = 0; } *offsetp = len; @@ -5837,8 +5860,10 @@ Perl_sv_eq(pTHX_ register SV *sv1, register SV *sv2) pv1 = SvPV(svrecode, cur1); } /* Now both are in UTF-8. */ - if (cur1 != cur2) + if (cur1 != cur2) { + SvREFCNT_dec(svrecode); return FALSE; + } } else { bool is_utf8 = TRUE; @@ -6770,7 +6795,9 @@ Perl_sv_newmortal(pTHX) Marks an existing SV as mortal. The SV will be destroyed "soon", either by an explicit call to FREETMPS, or by an implicit call at places such as -statement boundaries. See also C<sv_newmortal> and C<sv_mortalcopy>. +statement boundaries. SvTEMP() is turned on which means that the SV's +string buffer can be "stolen" if this SV is copied. See also C<sv_newmortal> +and C<sv_mortalcopy>. =cut */ @@ -6816,7 +6843,7 @@ Perl_newSVpv(pTHX_ const char *s, STRLEN len) Creates a new SV and copies a string into it. The reference count for the SV is set to 1. Note that if C<len> is zero, Perl will create a zero length string. You are responsible for ensuring that the source string is at least -C<len> bytes long. +C<len> bytes long. If the C<s> argument is NULL the new SV will be undefined. =cut */ @@ -7516,8 +7543,10 @@ instead. char * Perl_sv_pvbyten_force(pTHX_ SV *sv, STRLEN *lp) { + sv_pvn_force(sv,lp); sv_utf8_downgrade(sv,0); - return sv_pvn_force(sv,lp); + *lp = SvCUR(sv); + return SvPVX(sv); } /* sv_pvutf8 () is now a macro using Perl_sv_2pv_flags(); @@ -7565,8 +7594,10 @@ instead. char * Perl_sv_pvutf8n_force(pTHX_ SV *sv, STRLEN *lp) { + sv_pvn_force(sv,lp); sv_utf8_upgrade(sv); - return sv_pvn_force(sv,lp); + *lp = SvCUR(sv); + return SvPVX(sv); } /* @@ -9199,6 +9230,9 @@ Perl_sv_vcatpvfn(pTHX_ SV *sv, const char *pat, STRLEN patlen, va_list *args, SV continue; /* not "break" */ } + /* calculate width before utf8_upgrade changes it */ + have = esignlen + zeros + elen; + if (is_utf8 != has_utf8) { if (is_utf8) { if (SvCUR(sv)) @@ -9222,7 +9256,6 @@ Perl_sv_vcatpvfn(pTHX_ SV *sv, const char *pat, STRLEN patlen, va_list *args, SV "Newline in left-justified string for %sprintf", (PL_op->op_type == OP_PRTF) ? "" : "s"); - have = esignlen + zeros + elen; need = (have > width ? have : width); gap = need - have; @@ -9396,7 +9429,7 @@ Perl_re_dup(pTHX_ REGEXP *r, CLONE_PARAMS *param) New(0, ret->offsets, 2*len+1, U32); Copy(r->offsets, ret->offsets, 2*len+1, U32); - ret->precomp = SAVEPV(r->precomp); + ret->precomp = SAVEPVN(r->precomp, r->prelen); ret->refcnt = r->refcnt; ret->minlen = r->minlen; ret->prelen = r->prelen; @@ -9408,7 +9441,7 @@ Perl_re_dup(pTHX_ REGEXP *r, CLONE_PARAMS *param) ret->sublen = r->sublen; if (RX_MATCH_COPIED(ret)) - ret->subbeg = SAVEPV(r->subbeg); + ret->subbeg = SAVEPVN(r->subbeg, r->sublen); else ret->subbeg = Nullch; @@ -9509,16 +9542,15 @@ Perl_mg_dup(pTHX_ MAGIC *mg, CLONE_PARAMS* param) nmg->mg_obj = (SV*)re_dup((REGEXP*)mg->mg_obj, param); } else if(mg->mg_type == PERL_MAGIC_backref) { - AV *av = (AV*) mg->mg_obj; - SV **svp; - I32 i; - nmg->mg_obj = (SV*)newAV(); - svp = AvARRAY(av); - i = AvFILLp(av); - while (i >= 0) { - av_push((AV*)nmg->mg_obj,sv_dup(svp[i],param)); - i--; - } + AV *av = (AV*) mg->mg_obj; + SV **svp; + I32 i; + SvREFCNT_inc(nmg->mg_obj = (SV*)newAV()); + svp = AvARRAY(av); + for (i = AvFILLp(av); i >= 0; i--) { + if (!svp[i]) continue; + av_push((AV*)nmg->mg_obj,sv_dup(svp[i],param)); + } } else { nmg->mg_obj = (mg->mg_flags & MGf_REFCOUNTED) @@ -9565,13 +9597,19 @@ Perl_ptr_table_new(pTHX) return tbl; } +#if (PTRSIZE == 8) +# define PTR_TABLE_HASH(ptr) (PTR2UV(ptr) >> 3) +#else +# define PTR_TABLE_HASH(ptr) (PTR2UV(ptr) >> 2) +#endif + /* map an existing pointer using a table */ void * Perl_ptr_table_fetch(pTHX_ PTR_TBL_t *tbl, void *sv) { PTR_TBL_ENT_t *tblent; - UV hash = PTR2UV(sv); + UV hash = PTR_TABLE_HASH(sv); assert(tbl); tblent = tbl->tbl_ary[hash & tbl->tbl_max]; for (; tblent; tblent = tblent->next) { @@ -9590,12 +9628,12 @@ Perl_ptr_table_store(pTHX_ PTR_TBL_t *tbl, void *oldv, void *newv) /* XXX this may be pessimal on platforms where pointers aren't good * hash values e.g. if they grow faster in the most significant * bits */ - UV hash = PTR2UV(oldv); - bool i = 1; + UV hash = PTR_TABLE_HASH(oldv); + bool empty = 1; assert(tbl); otblent = &tbl->tbl_ary[hash & tbl->tbl_max]; - for (tblent = *otblent; tblent; i=0, tblent = tblent->next) { + for (tblent = *otblent; tblent; empty=0, tblent = tblent->next) { if (tblent->oldval == oldv) { tblent->newval = newv; return; @@ -9607,7 +9645,7 @@ Perl_ptr_table_store(pTHX_ PTR_TBL_t *tbl, void *oldv, void *newv) tblent->next = *otblent; *otblent = tblent; tbl->tbl_items++; - if (i && tbl->tbl_items > tbl->tbl_max) + if (!empty && tbl->tbl_items > tbl->tbl_max) ptr_table_split(tbl); } @@ -9631,7 +9669,7 @@ Perl_ptr_table_split(pTHX_ PTR_TBL_t *tbl) continue; curentp = ary + oldsize; for (entp = ary, ent = *ary; ent; ent = *entp) { - if ((newsize & PTR2UV(ent->oldval)) != i) { + if ((newsize & PTR_TABLE_HASH(ent->oldval)) != i) { *entp = ent->next; ent->next = *curentp; *curentp = ent; @@ -10085,7 +10123,10 @@ Perl_sv_dup(pTHX_ SV *sstr, CLONE_PARAMS* param) SvREFCNT_inc(CvXSUBANY(sstr).any_ptr) : sv_dup_inc(CvXSUBANY(sstr).any_ptr, param); } - CvGV(dstr) = gv_dup(CvGV(sstr), param); + /* don't dup if copying back - CvGV isn't refcounted, so the + * duped GV may never be freed. A bit of a hack! DAPM */ + CvGV(dstr) = (param->flags & CLONEf_JOIN_IN) ? + Nullgv : gv_dup(CvGV(sstr), param) ; if (param->flags & CLONEf_COPY_STACKS) { CvDEPTH(dstr) = CvDEPTH(sstr); } else { diff --git a/gnu/usr.bin/perl/sv.h b/gnu/usr.bin/perl/sv.h index f9268f7e80a..3f001a0c036 100644 --- a/gnu/usr.bin/perl/sv.h +++ b/gnu/usr.bin/perl/sv.h @@ -1,7 +1,7 @@ /* sv.h * * Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - * 2000, 2001, 2002, 2003, by Larry Wall and others + * 2000, 2001, 2002, 2003, 2004, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -428,7 +428,8 @@ double. Checks the B<private> setting. Use C<SvNIOK>. Unsets the NV/IV status of an SV. =for apidoc Am|bool|SvOK|SV* sv -Returns a boolean indicating whether the value is an SV. +Returns a boolean indicating whether the value is an SV. It also tells +whether the value is defined or not. =for apidoc Am|bool|SvIOKp|SV* sv Returns a boolean indicating whether the SV contains an integer. Checks @@ -457,13 +458,13 @@ Tells an SV that it is an integer and disables all other OK bits. =for apidoc Am|void|SvIOK_only_UV|SV* sv Tells and SV that it is an unsigned integer and disables all other OK bits. -=for apidoc Am|void|SvIOK_UV|SV* sv +=for apidoc Am|bool|SvIOK_UV|SV* sv Returns a boolean indicating whether the SV contains an unsigned integer. =for apidoc Am|void|SvUOK|SV* sv Returns a boolean indicating whether the SV contains an unsigned integer. -=for apidoc Am|void|SvIOK_notUV|SV* sv +=for apidoc Am|bool|SvIOK_notUV|SV* sv Returns a boolean indicating whether the SV contains a signed integer. =for apidoc Am|bool|SvNOK|SV* sv @@ -603,7 +604,7 @@ Set the length of the string which is in the SV. See C<SvCUR>. SvFLAGS(sv) |= (SVf_NOK|SVp_NOK)) /* -=for apidoc Am|void|SvUTF8|SV* sv +=for apidoc Am|bool|SvUTF8|SV* sv Returns a boolean indicating whether the SV contains UTF-8 encoded data. =for apidoc Am|void|SvUTF8_on|SV *sv @@ -761,22 +762,22 @@ and leaves the UTF-8 status as it was. (void) SvIV(sv); } STMT_END #define SvIV_set(sv, val) \ STMT_START { assert(SvTYPE(sv) == SVt_IV || SvTYPE(sv) >= SVt_PVIV); \ - (((XPVIV*) SvANY(sv))->xiv_iv = val); } STMT_END + (SvIVX(sv) = (val)); } STMT_END #define SvNV_set(sv, val) \ STMT_START { assert(SvTYPE(sv) == SVt_NV || SvTYPE(sv) >= SVt_PVNV); \ - (((XPVNV*) SvANY(sv))->xnv_nv = val); } STMT_END + (SvNVX(sv) = (val)); } STMT_END #define SvPV_set(sv, val) \ STMT_START { assert(SvTYPE(sv) >= SVt_PV); \ - (((XPV*) SvANY(sv))->xpv_pv = val); } STMT_END + (SvPVX(sv) = (val)); } STMT_END #define SvCUR_set(sv, val) \ STMT_START { assert(SvTYPE(sv) >= SVt_PV); \ - (((XPV*) SvANY(sv))->xpv_cur = val); } STMT_END + (SvCUR(sv) = (val)); } STMT_END #define SvLEN_set(sv, val) \ STMT_START { assert(SvTYPE(sv) >= SVt_PV); \ - (((XPV*) SvANY(sv))->xpv_len = val); } STMT_END + (SvLEN(sv) = (val)); } STMT_END #define SvEND_set(sv, val) \ STMT_START { assert(SvTYPE(sv) >= SVt_PV); \ - (((XPV*) SvANY(sv))->xpv_cur = val - SvPVX(sv)); } STMT_END + (SvCUR(sv) = (val) - SvPVX(sv)); } STMT_END #define BmRARE(sv) ((XPVBM*) SvANY(sv))->xbm_rare #define BmUSEFUL(sv) ((XPVBM*) SvANY(sv))->xbm_useful @@ -1006,7 +1007,7 @@ scalar. #define SvPVbyte_force(sv, lp) \ ((SvFLAGS(sv) & (SVf_POK|SVf_UTF8|SVf_THINKFIRST)) == (SVf_POK) \ - ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_pvbyte_force(sv, &lp)) + ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_pvbyten_force(sv, &lp)) #define SvPVbyte_nolen(sv) \ ((SvFLAGS(sv) & (SVf_POK|SVf_UTF8)) == (SVf_POK)\ diff --git a/gnu/usr.bin/perl/t/TEST b/gnu/usr.bin/perl/t/TEST index 08787e2f5bf..12985b77220 100644 --- a/gnu/usr.bin/perl/t/TEST +++ b/gnu/usr.bin/perl/t/TEST @@ -24,6 +24,7 @@ if ($#ARGV >= 0) { $bytecompile = 1 if $1 eq 'bytecompile'; $compile = 1 if $1 eq 'compile'; $taintwarn = 1 if $1 eq 'taintwarn'; + $ENV{PERL_CORE_MINITEST} = 1 if $1 eq 'minitest'; if ($1 =~ /^deparse(,.+)?$/) { $deparse = 1; $deparse_opts = $1; @@ -67,7 +68,8 @@ sub _find_tests { my($dir) = @_; opendir DIR, $dir or die "Trouble opening $dir: $!"; foreach my $f (sort { $a cmp $b } readdir DIR) { - next if $f eq $curdir or $f eq $updir; + next if $f eq $curdir or $f eq $updir or + $f =~ /^(?:CVS|RCS|SCCS|\.svn)$/; my $fullpath = File::Spec->catfile($dir, $f); @@ -446,7 +448,12 @@ EOT } else { $next += 1; - print "${te}FAILED at test $next\n"; + if ($next > $max) { + print "${te}FAILED at test $next\tpossibly due to extra output\n"; + } + else { + print "${te}FAILED at test $next\n"; + } $bad = $bad + 1; $_ = $test; if (/^base/) { diff --git a/gnu/usr.bin/perl/t/cmd/for.t b/gnu/usr.bin/perl/t/cmd/for.t index 3a4bc9b0dae..27fb5a25178 100644 --- a/gnu/usr.bin/perl/t/cmd/for.t +++ b/gnu/usr.bin/perl/t/cmd/for.t @@ -1,6 +1,6 @@ #!./perl -print "1..13\n"; +print "1..14\n"; for ($i = 0; $i <= 10; $i++) { $x[$i] = $i; @@ -76,3 +76,22 @@ print $loop_count == 4 ? "ok" : "not ok", " 12\n"; @a = (3,4); eval { @a = () for (1,2,@a) }; print $@ =~ /Use of freed value in iteration/ ? "ok" : "not ok", " 13\n"; + +# [perl #30061] double destory when same iterator variable (eg $_) used in +# DESTROY as used in for loop that triggered the destroy + +{ + + my $x = 0; + sub X::DESTROY { + my $o = shift; + $x++; + 1 for (1); + } + + my %h; + $h{foo} = bless [], 'X'; + delete $h{foo} for $h{foo}, 1; + print $x == 1 ? "ok" : "not ok", " 14 - double destroy, x=$x\n"; +} + diff --git a/gnu/usr.bin/perl/t/comp/redef.t b/gnu/usr.bin/perl/t/comp/redef.t index 328b44d3c89..63be16c2ff8 100644 --- a/gnu/usr.bin/perl/t/comp/redef.t +++ b/gnu/usr.bin/perl/t/comp/redef.t @@ -23,13 +23,13 @@ ok 1, $warn =~ s/Subroutine sub0 redefined[^\n]+\n//s; sub sub1 { 1 } sub sub1 () { 2 } -ok 2, $warn =~ s/$NEWPROTO \Qsub main::sub1 vs ()\E[^\n]+\n//s; +ok 2, $warn =~ s/$NEWPROTO \Qsub main::sub1: none vs ()\E[^\n]+\n//s; ok 3, $warn =~ s/Subroutine sub1 redefined[^\n]+\n//s; sub sub2 { 1 } sub sub2 ($) { 2 } -ok 4, $warn =~ s/$NEWPROTO \Qsub main::sub2 vs ($)\E[^\n]+\n//s; +ok 4, $warn =~ s/$NEWPROTO \Qsub main::sub2: none vs ($)\E[^\n]+\n//s; ok 5, $warn =~ s/Subroutine sub2 redefined[^\n]+\n//s; sub sub3 () { 1 } diff --git a/gnu/usr.bin/perl/t/io/open.t b/gnu/usr.bin/perl/t/io/open.t index e71d2ec3c58..5e1b5ec80d4 100644 --- a/gnu/usr.bin/perl/t/io/open.t +++ b/gnu/usr.bin/perl/t/io/open.t @@ -12,7 +12,7 @@ use Config; $Is_VMS = $^O eq 'VMS'; $Is_MacOS = $^O eq 'MacOS'; -plan tests => 105; +plan tests => 107; my $Perl = which_perl(); @@ -239,10 +239,14 @@ like( $@, qr/Bad filehandle:\s+afile/, ' right error' ); SKIP: { skip "This perl uses perlio", 1 if $Config{useperlio}; - skip "This system doesn't understand EINVAL", 1 unless exists $!{EINVAL}; + skip "miniperl cannot be relied on to load %Errno" + if $ENV{PERL_CORE_MINITEST}; + # Force the reference to %! to be run time by writing ! as {"!"} + skip "This system doesn't understand EINVAL", 1 + unless exists ${"!"}{EINVAL}; no warnings 'io'; - ok( !open(F,'>',\my $s) && $!{EINVAL}, 'open(reference) raises EINVAL' ); + ok(!open(F,'>',\my $s) && ${"!"}{EINVAL}, 'open(reference) raises EINVAL'); } { @@ -302,3 +306,12 @@ SKIP: { 'bad layer ":c" failure'); } +# [perl #28986] "open m" crashes Perl + +fresh_perl_like('open m', qr/^Search pattern not terminated at/, + { stderr => 1 }, 'open m test'); + +fresh_perl_is( + 'sub f { open(my $fh, "xxx"); $fh = "f"; } f; f;print "ok"', + 'ok', { stderr => 1 }, + '#29102: Crash on assignment to lexical filehandle'); diff --git a/gnu/usr.bin/perl/t/io/print.t b/gnu/usr.bin/perl/t/io/print.t index f33aa666a32..31d559aac9c 100644 --- a/gnu/usr.bin/perl/t/io/print.t +++ b/gnu/usr.bin/perl/t/io/print.t @@ -6,7 +6,8 @@ BEGIN { } use strict 'vars'; -use Errno; +eval 'use Errno'; +die $@ if $@ and !$ENV{PERL_CORE_MINITEST}; print "1..19\n"; @@ -41,6 +42,8 @@ print @x,"14\nok",@y; print ""; } +$\ = ''; + if (!exists &Errno::EBADF) { print "ok 19 # skipped: no EBADF\n"; } else { diff --git a/gnu/usr.bin/perl/t/io/read.t b/gnu/usr.bin/perl/t/io/read.t index ea2672dedba..e0f936653f3 100644 --- a/gnu/usr.bin/perl/t/io/read.t +++ b/gnu/usr.bin/perl/t/io/read.t @@ -1,6 +1,6 @@ #!./perl -# $RCSfile$ +# $RCSfile: read.t,v $ BEGIN { chdir 't' if -d 't'; @@ -9,7 +9,8 @@ BEGIN { } use strict; -use Errno; +eval 'use Errno'; +die $@ if $@ and !$ENV{PERL_CORE_MINITEST}; plan tests => 2; diff --git a/gnu/usr.bin/perl/t/op/array.t b/gnu/usr.bin/perl/t/op/array.t index 8f2f1a9510c..77ea646a93b 100644 --- a/gnu/usr.bin/perl/t/op/array.t +++ b/gnu/usr.bin/perl/t/op/array.t @@ -1,12 +1,11 @@ #!./perl - BEGIN { chdir 't' if -d 't'; @INC = '../lib'; } -print "1..73\n"; +print "1..82\n"; # # @foo, @bar, and @ary are also used from tie-stdarray after tie-ing them @@ -272,3 +271,29 @@ my $got = runperl ( $got =~ s/\n/ /g; print "# $got\nnot " unless $got eq ''; print "ok 73\n"; + +# Test negative and funky indices. + +{ + my @a = 0..4; + print $a[-1] == 4 ? "ok 74\n" : "not ok 74\n"; + print $a[-2] == 3 ? "ok 75\n" : "not ok 75\n"; + print $a[-5] == 0 ? "ok 76\n" : "not ok 76\n"; + print defined $a[-6] ? "not ok 77\n" : "ok 77\n"; + + print $a[2.1] == 2 ? "ok 78\n" : "not ok 78\n"; + print $a[2.9] == 2 ? "ok 79\n" : "not ok 79\n"; + print $a[undef] == 0 ? "ok 80\n" : "not ok 80\n"; + print $a["3rd"] == 3 ? "ok 81\n" : "not ok 81\n"; +} + +sub kindalike { # TODO: test.pl-ize the array.t. + my ($s, $r, $m, $n) = @_; + print $s =~ /$r/ ? "ok $n - $m\n" : "not ok $n - $m ($s)\n"; +} + +{ + my @a; + eval '$a[-1] = 0'; + kindalike($@, qr/Modification of non-creatable array value attempted, subscript -1/, "\$a[-1] = 0", 82); +} diff --git a/gnu/usr.bin/perl/t/op/bop.t b/gnu/usr.bin/perl/t/op/bop.t index c433875aa84..d32f47cbb28 100644 --- a/gnu/usr.bin/perl/t/op/bop.t +++ b/gnu/usr.bin/perl/t/op/bop.t @@ -7,93 +7,93 @@ BEGIN { chdir 't' if -d 't'; @INC = '../lib'; + require "./test.pl"; } -print "1..44\n"; +# Tests don't have names yet. +# If you find tests are failing, please try adding names to tests to track +# down where the failure is, and supply your new names as a patch. +# (Just-in-time test naming) +plan tests => 46; # numerics -print ((0xdead & 0xbeef) == 0x9ead ? "ok 1\n" : "not ok 1\n"); -print ((0xdead | 0xbeef) == 0xfeef ? "ok 2\n" : "not ok 2\n"); -print ((0xdead ^ 0xbeef) == 0x6042 ? "ok 3\n" : "not ok 3\n"); -print ((~0xdead & 0xbeef) == 0x2042 ? "ok 4\n" : "not ok 4\n"); +ok ((0xdead & 0xbeef) == 0x9ead); +ok ((0xdead | 0xbeef) == 0xfeef); +ok ((0xdead ^ 0xbeef) == 0x6042); +ok ((~0xdead & 0xbeef) == 0x2042); # shifts -print ((257 << 7) == 32896 ? "ok 5\n" : "not ok 5\n"); -print ((33023 >> 7) == 257 ? "ok 6\n" : "not ok 6\n"); +ok ((257 << 7) == 32896); +ok ((33023 >> 7) == 257); # signed vs. unsigned -print ((~0 > 0 && do { use integer; ~0 } == -1) - ? "ok 7\n" : "not ok 7\n"); +ok ((~0 > 0 && do { use integer; ~0 } == -1)); my $bits = 0; for (my $i = ~0; $i; $i >>= 1) { ++$bits; } my $cusp = 1 << ($bits - 1); -print ((($cusp & -1) > 0 && do { use integer; $cusp & -1 } < 0) - ? "ok 8\n" : "not ok 8\n"); -print ((($cusp | 1) > 0 && do { use integer; $cusp | 1 } < 0) - ? "ok 9\n" : "not ok 9\n"); -print ((($cusp ^ 1) > 0 && do { use integer; $cusp ^ 1 } < 0) - ? "ok 10\n" : "not ok 10\n"); -print (((1 << ($bits - 1)) == $cusp && - do { use integer; 1 << ($bits - 1) } == -$cusp) - ? "ok 11\n" : "not ok 11\n"); -print ((($cusp >> 1) == ($cusp / 2) && - do { use integer; abs($cusp >> 1) } == ($cusp / 2)) - ? "ok 12\n" : "not ok 12\n"); + +ok (($cusp & -1) > 0 && do { use integer; $cusp & -1 } < 0); +ok (($cusp | 1) > 0 && do { use integer; $cusp | 1 } < 0); +ok (($cusp ^ 1) > 0 && do { use integer; $cusp ^ 1 } < 0); +ok ((1 << ($bits - 1)) == $cusp && + do { use integer; 1 << ($bits - 1) } == -$cusp); +ok (($cusp >> 1) == ($cusp / 2) && + do { use integer; abs($cusp >> 1) } == ($cusp / 2)); $Aaz = chr(ord("A") & ord("z")); $Aoz = chr(ord("A") | ord("z")); $Axz = chr(ord("A") ^ ord("z")); # short strings -print (("AAAAA" & "zzzzz") eq ($Aaz x 5) ? "ok 13\n" : "not ok 13\n"); -print (("AAAAA" | "zzzzz") eq ($Aoz x 5) ? "ok 14\n" : "not ok 14\n"); -print (("AAAAA" ^ "zzzzz") eq ($Axz x 5) ? "ok 15\n" : "not ok 15\n"); +is (("AAAAA" & "zzzzz"), ($Aaz x 5)); +is (("AAAAA" | "zzzzz"), ($Aoz x 5)); +is (("AAAAA" ^ "zzzzz"), ($Axz x 5)); # long strings $foo = "A" x 150; $bar = "z" x 75; $zap = "A" x 75; # & truncates -print (($foo & $bar) eq ($Aaz x 75 ) ? "ok 16\n" : "not ok 16\n"); +is (($foo & $bar), ($Aaz x 75 )); # | does not truncate -print (($foo | $bar) eq ($Aoz x 75 . $zap) ? "ok 17\n" : "not ok 17\n"); +is (($foo | $bar), ($Aoz x 75 . $zap)); # ^ does not truncate -print (($foo ^ $bar) eq ($Axz x 75 . $zap) ? "ok 18\n" : "not ok 18\n"); +is (($foo ^ $bar), ($Axz x 75 . $zap)); # -print "ok \xFF\xFF\n" & "ok 19\n"; -print "ok 20\n" | "ok \0\0\n"; -print "o\000 \0001\000" ^ "\000k\0002\000\n"; +is ("ok \xFF\xFF\n" & "ok 19\n", "ok 19\n"); +is ("ok 20\n" | "ok \0\0\n", "ok 20\n"); +is ("o\000 \0001\000" ^ "\000k\0002\000\n", "ok 21\n"); # -print "ok \x{FF}\x{FF}\n" & "ok 22\n"; -print "ok 23\n" | "ok \x{0}\x{0}\n"; -print "o\x{0} \x{0}4\x{0}" ^ "\x{0}k\x{0}2\x{0}\n"; +is ("ok \x{FF}\x{FF}\n" & "ok 22\n", "ok 22\n"); +is ("ok 23\n" | "ok \x{0}\x{0}\n", "ok 23\n"); +is ("o\x{0} \x{0}4\x{0}" ^ "\x{0}k\x{0}2\x{0}\n", "ok 24\n"); # -print "ok 25\n" if sprintf("%vd", v4095 & v801) eq 801; -print "ok 26\n" if sprintf("%vd", v4095 | v801) eq 4095; -print "ok 27\n" if sprintf("%vd", v4095 ^ v801) eq 3294; +is (sprintf("%vd", v4095 & v801), 801); +is (sprintf("%vd", v4095 | v801), 4095); +is (sprintf("%vd", v4095 ^ v801), 3294); # -print "ok 28\n" if sprintf("%vd", v4095.801.4095 & v801.4095) eq '801.801'; -print "ok 29\n" if sprintf("%vd", v4095.801.4095 | v801.4095) eq '4095.4095.4095'; -print "ok 30\n" if sprintf("%vd", v801.4095 ^ v4095.801.4095) eq '3294.3294.4095'; +is (sprintf("%vd", v4095.801.4095 & v801.4095), '801.801'); +is (sprintf("%vd", v4095.801.4095 | v801.4095), '4095.4095.4095'); +is (sprintf("%vd", v801.4095 ^ v4095.801.4095), '3294.3294.4095'); # -print "ok 31\n" if sprintf("%vd", v120.300 & v200.400) eq '72.256'; -print "ok 32\n" if sprintf("%vd", v120.300 | v200.400) eq '248.444'; -print "ok 33\n" if sprintf("%vd", v120.300 ^ v200.400) eq '176.188'; +is (sprintf("%vd", v120.300 & v200.400), '72.256'); +is (sprintf("%vd", v120.300 | v200.400), '248.444'); +is (sprintf("%vd", v120.300 ^ v200.400), '176.188'); # my $a = v120.300; my $b = v200.400; $a ^= $b; -print "ok 34\n" if sprintf("%vd", $a) eq '176.188'; +is (sprintf("%vd", $a), '176.188'); my $a = v120.300; my $b = v200.400; $a |= $b; -print "ok 35\n" if sprintf("%vd", $a) eq '248.444'; +is (sprintf("%vd", $a), '248.444'); # # UTF8 ~ behaviour @@ -114,11 +114,7 @@ for (0x100...0xFFF) { if $a ne chr(~$_) or length($a) != 1 or ~$a ne chr($_); } } -if (@not36) { - print "# test 36 failed\n"; - print "not "; -} -print "ok 36\n"; +is (join (', ', @not36), ''); my @not37; @@ -138,14 +134,13 @@ for my $i (0xEEE...0xF00) { } } } -if (@not37) { - print "# test 37 failed\n"; - print "not "; +is (join (', ', @not37), ''); + +SKIP: { + skip "EBCDIC" if $Is_EBCDIC; + is (~chr(~0), "\0"); } -print "ok 37\n"; -print "not " unless ~chr(~0) eq "\0" or $Is_EBCDIC; -print "ok 38\n"; my @not39; @@ -155,11 +150,7 @@ for my $i (0x100..0x120) { if ~(chr($i)|chr($j)) ne (~chr($i)&~chr($j)); } } -if (@not39) { - print "# test 39 failed\n"; - print "not "; -} -print "ok 39\n"; +is (join (', ', @not39), ''); my @not40; @@ -169,18 +160,21 @@ for my $i (0x100..0x120) { if ~(chr($i)&chr($j)) ne (~chr($i)|~chr($j)); } } -if (@not40) { - print "# test 40 failed\n"; - print "not "; -} -print "ok 40\n"; +is (join (', ', @not40), ''); + # More variations on 19 and 22. -print "ok \xFF\x{FF}\n" & "ok 41\n"; -print "ok \x{FF}\xFF\n" & "ok 42\n"; +is ("ok \xFF\x{FF}\n" & "ok 41\n", "ok 41\n"); +is ("ok \x{FF}\xFF\n" & "ok 42\n", "ok 42\n"); # Tests to see if you really can do casts negative floats to unsigned properly $neg1 = -1.0; -print ((~ $neg1 == 0) ? "ok 43\n" : "not ok 43\n"); +ok (~ $neg1 == 0); $neg7 = -7.0; -print ((~ $neg7 == 6) ? "ok 44\n" : "not ok 44\n"); +ok (~ $neg7 == 6); + + +$a = "\0\x{100}"; chop($a); +ok(utf8::is_utf8($a)); # make sure UTF8 flag is still there +$a = ~$a; +is($a, "\xFF", "~ works with utf-8"); diff --git a/gnu/usr.bin/perl/t/op/chop.t b/gnu/usr.bin/perl/t/op/chop.t index 87700de9291..bacc439676a 100644 --- a/gnu/usr.bin/perl/t/op/chop.t +++ b/gnu/usr.bin/perl/t/op/chop.t @@ -6,7 +6,7 @@ BEGIN { require './test.pl'; } -plan tests => 51; +plan tests => 133; $_ = 'abc'; $c = do foo(); @@ -183,3 +183,42 @@ ok($@ =~ /Can\'t modify.*chop.*in.*assignment/); eval 'chomp($x, $y) = (1, 2);'; ok($@ =~ /Can\'t modify.*chom?p.*in.*assignment/); +my @chars = ("N", "\xd3", substr ("\xd4\x{100}", 0, 1), chr 1296); +foreach my $start (@chars) { + foreach my $end (@chars) { + local $/ = $end; + my $message = "start=" . ord ($start) . " end=" . ord $end; + my $string = $start . $end; + is (chomp ($string), 1, "$message [returns 1]"); + is ($string, $start, $message); + + my $end_utf8 = $end; + utf8::encode ($end_utf8); + next if $end_utf8 eq $end; + + # $end ne $end_utf8, so these should not chomp. + $string = $start . $end_utf8; + my $chomped = $string; + is (chomp ($chomped), 0, "$message (end as bytes) [returns 0]"); + is ($chomped, $string, "$message (end as bytes)"); + + $/ = $end_utf8; + $string = $start . $end; + $chomped = $string; + is (chomp ($chomped), 0, "$message (\$/ as bytes) [returns 0]"); + is ($chomped, $string, "$message (\$/ as bytes)"); + } +} + +{ + # returns length in characters, but not in bytes. + $/ = "\x{100}"; + $a = "A$/"; + $b = chomp $a; + is ($b, 1); + + $/ = "\x{100}\x{101}"; + $a = "A$/"; + $b = chomp $a; + is ($b, 2); +} diff --git a/gnu/usr.bin/perl/t/op/closure.t b/gnu/usr.bin/perl/t/op/closure.t index 866922d2ac6..de9e102a7f5 100644 --- a/gnu/usr.bin/perl/t/op/closure.t +++ b/gnu/usr.bin/perl/t/op/closure.t @@ -13,7 +13,7 @@ BEGIN { use Config; -print "1..185\n"; +print "1..187\n"; my $test = 1; sub test (&) { @@ -641,4 +641,27 @@ __EOF__ END { 1 while unlink $progfile } } +{ + # bugid #24914 = used to coredump restoring PL_comppad in the + # savestack, due to the early freeing of the anon closure + + my $got = runperl(stderr => 1, prog => +'sub d {die} my $f; $f = sub {my $x=1; $f = 0; d}; eval{$f->()}; print qq(ok\n)' + ); + test { $got eq "ok\n" }; +} +# After newsub is redefined outside the BEGIN, it's CvOUTSIDE should point +# to main rather than BEGIN, and BEGIN should be freed. + +{ + my $flag = 0; + sub X::DESTROY { $flag = 1 } + { + my $x; + BEGIN {$x = \&newsub } + sub newsub {}; + $x = bless {}, 'X'; + } + test { $flag == 1 }; +} diff --git a/gnu/usr.bin/perl/t/op/delete.t b/gnu/usr.bin/perl/t/op/delete.t index 10a218b1b61..53212a11407 100644 --- a/gnu/usr.bin/perl/t/op/delete.t +++ b/gnu/usr.bin/perl/t/op/delete.t @@ -1,6 +1,6 @@ #!./perl -print "1..36\n"; +print "1..37\n"; # delete() on hash elements @@ -121,3 +121,11 @@ print @{$refary[0]} == 1 ? "ok 35\n" : "not ok 35 @list\n"; print "not " unless $a == $b && $b == $c; print "ok 36\n"; } + +{ + # [perl #29127] scalar delete of empty slice returned garbage + my %h; + my ($x,$y) = (1, scalar delete @h{()}); + print "not " if defined $y; + print "ok 37\n"; +} diff --git a/gnu/usr.bin/perl/t/op/goto.t b/gnu/usr.bin/perl/t/op/goto.t index 67d24c0473d..859d5a66ee3 100644 --- a/gnu/usr.bin/perl/t/op/goto.t +++ b/gnu/usr.bin/perl/t/op/goto.t @@ -7,7 +7,7 @@ BEGIN { @INC = qw(. ../lib); } -print "1..32\n"; +print "1..33\n"; require "test.pl"; @@ -229,6 +229,19 @@ eval { goto +i_return_a_label; }; print "not "; returned_label : print "ok 32 - done to returned_label\n"; +# [perl #29708] - goto &foo could leave foo() at depth two with +# @_ == PL_sv_undef, causing a coredump + + +my $r = runperl( + prog => + 'sub f { return if $d; $d=1; my $a=sub {goto &f}; &$a; f() } f(); print qq(ok\n)', + stderr => 1 + ); +print "not " if $r ne "ok\n"; +print "ok 33 - avoid pad without an \@_\n"; + + exit; bypass: diff --git a/gnu/usr.bin/perl/t/op/magic.t b/gnu/usr.bin/perl/t/op/magic.t index 04ef75dcf45..1c02b5bbad0 100644 --- a/gnu/usr.bin/perl/t/op/magic.t +++ b/gnu/usr.bin/perl/t/op/magic.t @@ -36,16 +36,17 @@ sub skip { return 1; } -print "1..53\n"; - -$Is_MSWin32 = $^O eq 'MSWin32'; -$Is_NetWare = $^O eq 'NetWare'; -$Is_VMS = $^O eq 'VMS'; -$Is_Dos = $^O eq 'dos'; -$Is_os2 = $^O eq 'os2'; -$Is_Cygwin = $^O eq 'cygwin'; -$Is_MacOS = $^O eq 'MacOS'; -$Is_MPE = $^O eq 'mpeix'; +print "1..54\n"; + +$Is_MSWin32 = $^O eq 'MSWin32'; +$Is_NetWare = $^O eq 'NetWare'; +$Is_VMS = $^O eq 'VMS'; +$Is_Dos = $^O eq 'dos'; +$Is_os2 = $^O eq 'os2'; +$Is_Cygwin = $^O eq 'cygwin'; +$Is_MacOS = $^O eq 'MacOS'; +$Is_MPE = $^O eq 'mpeix'; +$Is_miniperl = $ENV{PERL_CORE_MINITEST}; $PERL = ($Is_NetWare ? 'perl' : ($Is_MacOS || $Is_VMS) ? $^X : @@ -347,26 +348,35 @@ else { skip('no caseless %ENV support') for 1..4; } +if ($Is_miniperl) { + skip ("miniperl can't rely on loading %Errno") for 1..2; +} else { + no warnings 'void'; + # Make sure Errno hasn't been prematurely autoloaded -ok !defined %Errno::; + ok !defined %Errno::; # Test auto-loading of Errno when %! is used -ok scalar eval q{ - my $errs = %!; - defined %Errno::; -}, $@; - + ok scalar eval q{ + %!; + defined %Errno::; + }, $@; +} -# Make sure that Errno loading doesn't clobber $! +if ($Is_miniperl) { + skip ("miniperl can't rely on loading %Errno"); +} else { + # Make sure that Errno loading doesn't clobber $! -undef %Errno::; -delete $INC{"Errno.pm"}; + undef %Errno::; + delete $INC{"Errno.pm"}; -open(FOO, "nonesuch"); # Generate ENOENT -my %errs = %{"!"}; # Cause Errno.pm to be loaded at run-time -ok ${"!"}{ENOENT}; + open(FOO, "nonesuch"); # Generate ENOENT + my %errs = %{"!"}; # Cause Errno.pm to be loaded at run-time + ok ${"!"}{ENOENT}; +} ok $^S == 0 && defined $^S; eval { ok $^S == 1 }; @@ -401,3 +411,15 @@ ok "@+" eq "10 1 6 10"; } ok $ok; } + +# Test for bug [perl #27839] +{ + my $x; + sub f { + "abc" =~ /(.)./; + $x = "@+"; + return @+; + }; + my @y = f(); + ok( $x eq "@y", "return a magic array ($x) vs (@y)" ); +} diff --git a/gnu/usr.bin/perl/t/op/my.t b/gnu/usr.bin/perl/t/op/my.t index 601e1d6ae8d..bf5b6db3d3a 100644 --- a/gnu/usr.bin/perl/t/op/my.t +++ b/gnu/usr.bin/perl/t/op/my.t @@ -2,7 +2,7 @@ # $RCSfile: my.t,v $ -print "1..31\n"; +print "1..33\n"; sub foo { my($a, $b) = @_; @@ -99,3 +99,15 @@ for my $full (keys %fonts) { # Supposed to be copy-on-write via force_normal after a THINKFIRST check. print "$full $fonts{nok}\n"; } + +# [perl #29340] optimising away the = () left the padav returning the +# array rather than the contents, leading to 'Bizarre copy of array' error + +sub opta { my @a=() } +sub opth { my %h=() } +eval { my $x = opta }; +print "not " if $@; +print "ok 32\n"; +eval { my $x = opth }; +print "not " if $@; +print "ok 33\n"; diff --git a/gnu/usr.bin/perl/t/op/pat.t b/gnu/usr.bin/perl/t/op/pat.t index 54e648da82f..b79515e33a4 100644 --- a/gnu/usr.bin/perl/t/op/pat.t +++ b/gnu/usr.bin/perl/t/op/pat.t @@ -6,7 +6,7 @@ $| = 1; -print "1..1055\n"; +print "1..1065\n"; BEGIN { chdir 't' if -d 't'; @@ -1910,9 +1910,10 @@ print "ok 663\n"; print "not " unless chr(0xfb4f) =~ /\p{IsHebrew}/; # outside InHebrew print "ok 664\n"; -# singleton (not in a range, this test must be ignored on EBCDIC) -print "not " unless chr(0xb5) =~ /\p{IsGreek}/ or ord("A") == 193; -print "ok 665\n"; +# # singleton (not in a range, this test must be ignored on EBCDIC) +# print "not " unless chr(0xb5) =~ /\p{IsGreek}/ or ord("A") == 193; +# print "ok 665\n"; +print "ok 665 # 0xb5 moved from Greek to Common with Unicode 4.0.1\n"; print "not " unless chr(0x37a) =~ /\p{IsGreek}/; # singleton print "ok 666\n"; @@ -2237,10 +2238,11 @@ print "# some Unicode properties\n"; } { - print "not " unless "a" =~ /\p{L&}/; + # L& and LC are the same + print "not " unless "a" =~ /\p{LC}/ and "a" =~ /\p{L&}/; print "ok 743\n"; - print "not " if "1" =~ /\p{L&}/; + print "not " if "1" =~ /\p{LC}/ or "1" =~ /\p{L&}/; print "ok 744\n"; } @@ -3255,5 +3257,25 @@ for (120 .. 130) { } } -# last test 1055 - +# perl #25269: panic: pp_match start/end pointers +ok("a-bc" eq eval { + my($x, $y) = "bca" =~ /^(?=.*(a)).*(bc)/; + "$x-$y"; +}, 'captures can move backwards in string'); + +# perl #27940: \cA not recognized in character classes +ok("a\cAb" =~ /\cA/, '\cA in pattern'); +ok("a\cAb" =~ /[\cA]/, '\cA in character class'); +ok("a\cAb" =~ /[\cA-\cB]/, '\cA in character class range'); +ok("abc" =~ /[^\cA-\cB]/, '\cA in negated character class range'); +ok("a\cBb" =~ /[\cA-\cC]/, '\cB in character class range'); +ok("a\cCbc" =~ /[^\cA-\cB]/, '\cC in negated character class range'); +ok("a\cAb" =~ /(??{"\cA"})/, '\cA in ??{} pattern'); + +# perl #28532: optional zero-width match at end of string is ignored +ok(("abc" =~ /^abc(\z)?/) && defined($1), + 'optional zero-width match at end of string'); +ok(("abc" =~ /^abc(\z)??/) && !defined($1), + 'optional zero-width match at end of string'); + +# last test 1065 diff --git a/gnu/usr.bin/perl/t/op/range.t b/gnu/usr.bin/perl/t/op/range.t index d54c96d11fd..310f4805d76 100644 --- a/gnu/usr.bin/perl/t/op/range.t +++ b/gnu/usr.bin/perl/t/op/range.t @@ -1,6 +1,13 @@ #!./perl -print "1..25\n"; +BEGIN { + chdir 't' if -d 't'; + @INC = '../lib'; +} + +use Config; + +print "1..37\n"; print join(':',1..5) eq '1:2:3:4:5' ? "ok 1\n" : "not ok 1\n"; @@ -47,12 +54,23 @@ print "not " unless join(",", @y) eq join(",", @x); print "ok 10\n"; # check bounds -@a = 0x7ffffffe..0x7fffffff; -print "not " unless "@a" eq "2147483646 2147483647"; +if ($Config{ivsize} == 8) { + @a = eval "0x7ffffffffffffffe..0x7fffffffffffffff"; + $a = "9223372036854775806 9223372036854775807"; + @b = eval "-0x7fffffffffffffff..-0x7ffffffffffffffe"; + $b = "-9223372036854775807 -9223372036854775806"; +} +else { + @a = eval "0x7ffffffe..0x7fffffff"; + $a = "2147483646 2147483647"; + @b = eval "-0x7fffffff..-0x7ffffffe"; + $b = "-2147483647 -2147483646"; +} + +print "not " unless "@a" eq $a; print "ok 11\n"; -@a = -0x7fffffff..-0x7ffffffe; -print "not " unless "@a" eq "-2147483647 -2147483646"; +print "not " unless "@b" eq $b; print "ok 12\n"; # check magic @@ -83,9 +101,42 @@ print join(":","-4\n".."-0\n") eq "-4:-3:-2:-1:0" ? "ok 19\n" : "not ok 19\n"; # undef should be treated as 0 for numerical range print join(":",undef..2) eq '0:1:2' ? "ok 20\n" : "not ok 20\n"; print join(":",-2..undef) eq '-2:-1:0' ? "ok 21\n" : "not ok 21\n"; +print join(":",undef..'2') eq '0:1:2' ? "ok 22\n" : "not ok 22\n"; +print join(":",'-2'..undef) eq '-2:-1:0' ? "ok 23\n" : "not ok 23\n"; # undef should be treated as "" for magical range -print join(":","".."B") eq '' ? "ok 22\n" : "not ok 22\n"; -print join(":",undef.."B") eq '' ? "ok 23\n" : "not ok 23\n"; -print join(":","B".."") eq '' ? "ok 24\n" : "not ok 24\n"; -print join(":","B"..undef) eq '' ? "ok 25\n" : "not ok 25\n"; +print join(":", map "[$_]", "".."B") eq '[]' ? "ok 24\n" : "not ok 24\n"; +print join(":", map "[$_]", undef.."B") eq '[]' ? "ok 25\n" : "not ok 25\n"; +print join(":", map "[$_]", "B".."") eq '' ? "ok 26\n" : "not ok 26\n"; +print join(":", map "[$_]", "B"..undef) eq '' ? "ok 27\n" : "not ok 27\n"; + +# undef..undef used to segfault +print join(":", map "[$_]", undef..undef) eq '[]' ? "ok 28\n" : "not ok 28\n"; + +# also test undef in foreach loops +@foo=(); push @foo, $_ for undef..2; +print join(":", @foo) eq '0:1:2' ? "ok 29\n" : "not ok 29\n"; + +@foo=(); push @foo, $_ for -2..undef; +print join(":", @foo) eq '-2:-1:0' ? "ok 30\n" : "not ok 30\n"; + +@foo=(); push @foo, $_ for undef..'2'; +print join(":", @foo) eq '0:1:2' ? "ok 31\n" : "not ok 31\n"; + +@foo=(); push @foo, $_ for '-2'..undef; +print join(":", @foo) eq '-2:-1:0' ? "ok 32\n" : "not ok 32\n"; + +@foo=(); push @foo, $_ for undef.."B"; +print join(":", map "[$_]", @foo) eq '[]' ? "ok 33\n" : "not ok 33\n"; + +@foo=(); push @foo, $_ for "".."B"; +print join(":", map "[$_]", @foo) eq '[]' ? "ok 34\n" : "not ok 34\n"; + +@foo=(); push @foo, $_ for "B"..undef; +print join(":", map "[$_]", @foo) eq '' ? "ok 35\n" : "not ok 35\n"; + +@foo=(); push @foo, $_ for "B"..""; +print join(":", map "[$_]", @foo) eq '' ? "ok 36\n" : "not ok 36\n"; + +@foo=(); push @foo, $_ for undef..undef; +print join(":", map "[$_]", @foo) eq '[]' ? "ok 37\n" : "not ok 37\n"; diff --git a/gnu/usr.bin/perl/t/op/ref.t b/gnu/usr.bin/perl/t/op/ref.t index 3bb280c1ea2..597e03698c9 100644 --- a/gnu/usr.bin/perl/t/op/ref.t +++ b/gnu/usr.bin/perl/t/op/ref.t @@ -5,7 +5,7 @@ BEGIN { @INC = qw(. ../lib); } -print "1..68\n"; +print "1..69\n"; require 'test.pl'; @@ -357,6 +357,16 @@ runperl(prog => 'sub f { my $x = shift; *z = $x; } f({}); f();'); if ($? != 0) { print "not " }; print "ok ",++$test," - coredump on typeglob = (SvRV && !SvROK)\n"; +# bug #27268: freeing self-referential typeglobs could trigger +# "Attempt to free unreferenced scalar" warnings + +$result = runperl( + prog => 'use Symbol;my $x=bless \gensym,"t"; print;*$$x=$x', + stderr => 1 +); +print "not " if length $result; +print "ok ",++$test," - freeing self-referential typeglob\n"; +print "# got: $result\n" if length $result; # test global destruction diff --git a/gnu/usr.bin/perl/t/op/repeat.t b/gnu/usr.bin/perl/t/op/repeat.t index 82fcf75bd2f..e728413e9b8 100644 --- a/gnu/usr.bin/perl/t/op/repeat.t +++ b/gnu/usr.bin/perl/t/op/repeat.t @@ -6,13 +6,19 @@ BEGIN { } require './test.pl'; -plan(tests => 25); +plan(tests => 41); # compile time is('-' x 5, '-----', 'compile time x'); +is('-' x 3.1, '---', 'compile time 3.1'); +is('-' x 3.9, '---', 'compile time 3.9'); is('-' x 1, '-', ' x 1'); is('-' x 0, '', ' x 0'); +is('-' x -1, '', ' x -1'); +is('-' x undef, '', ' x undef'); +is('-' x "foo", '', ' x "foo"'); +is('-' x "3rd", '---', ' x "3rd"'); is('ab' x 3, 'ababab', ' more than one char'); @@ -20,11 +26,21 @@ is('ab' x 3, 'ababab', ' more than one char'); $a = '-'; is($a x 5, '-----', 'run time x'); +is($a x 3.1, '---', ' x 3.1'); +is($a x 3.9, '---', ' x 3.9'); is($a x 1, '-', ' x 1'); is($a x 0, '', ' x 0'); +is($a x -3, '', ' x -3'); +is($a x undef, '', ' x undef'); +is($a x "foo", '', ' x "foo"'); +is($a x "3rd", '---', ' x "3rd"'); $a = 'ab'; is($a x 3, 'ababab', ' more than one char'); +$a = 'ab'; +is($a x 0, '', ' more than one char'); +$a = 'ab'; +is($a x -12, '', ' more than one char'); $a = 'xyz'; $a x= 2; @@ -45,6 +61,9 @@ is(join(':', (9) x 4), '9:9:9:9', '(X) x Y'); is(join(':', (9,9) x 4), '9:9:9:9:9:9:9:9', '(X,X) x Y'); is(join('', (split(//,"123")) x 2), '123123', 'split and x'); +is(join('', @x x -12), '', '@x x -12'); +is(join('', (@x) x -14), '', '(@x) x -14'); + # This test is actually testing for Digital C compiler optimizer bug, # present in Dec C versions 5.* and 6.0 (used in Digital UNIX and VMS), @@ -132,4 +151,3 @@ is(77, scalar ((1,7)x2), 'stack truncation'); } is($y, 'abcdabcd'); } - diff --git a/gnu/usr.bin/perl/t/op/sort.t b/gnu/usr.bin/perl/t/op/sort.t index 2a86b38c71f..c1129c2422f 100644 --- a/gnu/usr.bin/perl/t/op/sort.t +++ b/gnu/usr.bin/perl/t/op/sort.t @@ -5,7 +5,7 @@ BEGIN { @INC = '../lib'; } use warnings; -print "1..58\n"; +print "1..75\n"; # these shouldn't hang { @@ -322,3 +322,75 @@ sub cxt_six { sort test_if_scalar 1,2 } @a = sort(routine(1)); print "@a" eq "one two" ? "ok 58\n" : "not ok 58\n"; } + + +my $test = 59; +sub ok { + print "not " unless $_[0] eq $_[1]; + print "ok $test - $_[2]\n"; + print "#[$_[0]] ne [$_[1]]\n" unless $_[0] eq $_[1]; + $test++; +} + +# check for in-place optimisation of @a = sort @a +{ + my ($r1,$r2,@a); + our @g; + @g = (3,2,1); $r1 = \$g[2]; @g = sort @g; $r2 = \$g[0]; + ok "$r1-@g", "$r2-1 2 3", "inplace sort of global"; + + @a = qw(b a c); $r1 = \$a[1]; @a = sort @a; $r2 = \$a[0]; + ok "$r1-@a", "$r2-a b c", "inplace sort of lexical"; + + @g = (2,3,1); $r1 = \$g[1]; @g = sort { $b <=> $a } @g; $r2 = \$g[0]; + ok "$r1-@g", "$r2-3 2 1", "inplace reversed sort of global"; + + @g = (2,3,1); + $r1 = \$g[1]; @g = sort { $a<$b?1:$a>$b?-1:0 } @g; $r2 = \$g[0]; + ok "$r1-@g", "$r2-3 2 1", "inplace custom sort of global"; + + sub mysort { $b cmp $a }; + @a = qw(b c a); $r1 = \$a[1]; @a = sort mysort @a; $r2 = \$a[0]; + ok "$r1-@a", "$r2-c b a", "inplace sort with function of lexical"; + + use Tie::Array; + my @t; + tie @t, 'Tie::StdArray'; + + @t = qw(b c a); @t = sort @t; + ok "@t", "a b c", "inplace sort of tied array"; + + @t = qw(b c a); @t = sort mysort @t; + ok "@t", "c b a", "inplace sort of tied array with function"; + + # [perl #29790] don't optimise @a = ('a', sort @a) ! + + @g = (3,2,1); @g = ('0', sort @g); + ok "@g", "0 1 2 3", "un-inplace sort of global"; + @g = (3,2,1); @g = (sort(@g),'4'); + ok "@g", "1 2 3 4", "un-inplace sort of global 2"; + + @a = qw(b a c); @a = ('x', sort @a); + ok "@a", "x a b c", "un-inplace sort of lexical"; + @a = qw(b a c); @a = ((sort @a), 'x'); + ok "@a", "a b c x", "un-inplace sort of lexical 2"; + + @g = (2,3,1); @g = ('0', sort { $b <=> $a } @g); + ok "@g", "0 3 2 1", "un-inplace reversed sort of global"; + @g = (2,3,1); @g = ((sort { $b <=> $a } @g),'4'); + ok "@g", "3 2 1 4", "un-inplace reversed sort of global 2"; + + @g = (2,3,1); @g = ('0', sort { $a<$b?1:$a>$b?-1:0 } @g); + ok "@g", "0 3 2 1", "un-inplace custom sort of global"; + @g = (2,3,1); @g = ((sort { $a<$b?1:$a>$b?-1:0 } @g),'4'); + ok "@g", "3 2 1 4", "un-inplace custom sort of global 2"; + + @a = qw(b c a); @a = ('x', sort mysort @a); + ok "@a", "x c b a", "un-inplace sort with function of lexical"; + @a = qw(b c a); @a = ((sort mysort @a),'x'); + ok "@a", "c b a x", "un-inplace sort with function of lexical 2"; +} + + + + diff --git a/gnu/usr.bin/perl/t/op/split.t b/gnu/usr.bin/perl/t/op/split.t index 17ab1e6a375..31a2f51bf93 100644 --- a/gnu/usr.bin/perl/t/op/split.t +++ b/gnu/usr.bin/perl/t/op/split.t @@ -6,7 +6,7 @@ BEGIN { require './test.pl'; } -plan tests => 54; +plan tests => 55; $FS = ':'; @@ -50,12 +50,12 @@ $_ = join(':', split(/:/,'1:2:3:4:5:6:::', 999)); is($_ , '1:2:3:4:5:6:::'); # Does assignment to a list imply split to one more field than that? -if ($^O eq 'MSWin32') { $foo = `.\\perl -D1024 -e "(\$a,\$b) = split;" 2>&1` } -elsif ($^O eq 'NetWare') { $foo = `perl -D1024 -e "(\$a,\$b) = split;" 2>&1` } -elsif ($^O eq 'VMS') { $foo = `./perl "-D1024" -e "(\$a,\$b) = split;" 2>&1` } -elsif ($^O eq 'MacOS'){ $foo = `$^X "-D1024" -e "(\$a,\$b) = split;"` } -else { $foo = `./perl -D1024 -e '(\$a,\$b) = split;' 2>&1` } -ok($foo =~ /DEBUGGING/ || $foo =~ /SV = (VOID|IV\(3\))/); +if ($^O eq 'MSWin32') { $foo = `.\\perl -Dt -e "(\$a,\$b) = split;" 2>&1` } +elsif ($^O eq 'NetWare') { $foo = `perl -Dt -e "(\$a,\$b) = split;" 2>&1` } +elsif ($^O eq 'VMS') { $foo = `./perl "-Dt" -e "(\$a,\$b) = split;" 2>&1` } +elsif ($^O eq 'MacOS'){ $foo = `$^X "-Dt" -e "(\$a,\$b) = split;"` } +else { $foo = `./perl -Dt -e '(\$a,\$b) = split;' 2>&1` } +ok($foo =~ /DEBUGGING/ || $foo =~ /\Qconst(IV(3))\E/); # Can we say how many fields to split to when assigning to a list? ($a,$b) = split(' ','1 2 3 4 5 6', 2); @@ -289,3 +289,16 @@ ok(@ary == 3 && $n = @a = split /,/,$p; is ($n, 0, '#21765 - pmreplroot hack used to return undef for 0 iters'); } + +{ + # [perl #28938] + # assigning off the end of the array after a split could leave garbage + # in the inner elements + + my $x; + @a = split /,/, ',,,,,'; + $a[3]=1; + $x = \$a[2]; + is (ref $x, 'SCALAR', '#28938 - garbage after extend'); +} + diff --git a/gnu/usr.bin/perl/t/op/stat.t b/gnu/usr.bin/perl/t/op/stat.t index 3cc3f0a1faf..23445c217f2 100644 --- a/gnu/usr.bin/perl/t/op/stat.t +++ b/gnu/usr.bin/perl/t/op/stat.t @@ -26,6 +26,7 @@ $Is_Solaris = $^O eq 'solaris'; $Is_VMS = $^O eq 'VMS'; $Is_DGUX = $^O eq 'dgux'; $Is_MPRAS = $^O =~ /svr4/ && -f '/etc/.relid'; +$Is_Rhapsody= $^O eq 'rhapsody'; $Is_Dosish = $Is_Dos || $Is_OS2 || $Is_MSWin32 || $Is_NetWare || $Is_Cygwin; @@ -112,10 +113,11 @@ SKIP: { !isnt($mtime, $ctime, 'hard link ctime != mtime') ) { print STDERR <<DIAG; # Check if you are on a tmpfs of some sort. Building in /tmp sometimes -# has this problem. Also building on the ClearCase VOBS filesystem may +# has this problem. Building on the ClearCase VOBS filesystem may also # cause this failure. -# Darwins UFS doesn't have a ctime concept, and thus is -# expected to fail this test. +# +# Darwin's UFS doesn't have a ctime concept, and thus is expected to fail +# this test. DIAG } } @@ -176,7 +178,7 @@ ok(-r $tmpfile, ' -r'); ok(-w $tmpfile, ' -w'); SKIP: { - skip "-x simply determins if a file ends in an executable suffix", 1 + skip "-x simply determines if a file ends in an executable suffix", 1 if $Is_Dosish || $Is_MacOS; ok(-x $tmpfile, ' -x'); @@ -212,7 +214,7 @@ SKIP: { if $Is_MSWin32 || $Is_NetWare || $Is_Dos; skip "/dev isn't available to test against", 6 unless -d '/dev' && -r '/dev' && -x '/dev'; - skip "Skipping; unexpected ls output in MP-RAS", 6 + skip "Skipping: unexpected ls output in MP-RAS", 6 if $Is_MPRAS; my $LS = $Config{d_readlink} ? "ls -lL" : "ls -l"; @@ -307,7 +309,7 @@ SKIP: { SKIP: { skip "These tests require a TTY", 4 if $ENV{PERL_SKIP_TTY_TEST}; - my $TTY = $^O eq 'rhapsody' ? "/dev/ttyp0" : "/dev/tty"; + my $TTY = $Is_Rhapsody ? "/dev/ttyp0" : "/dev/tty"; SKIP: { skip "Test uses unixisms", 2 if $Is_MSWin32 || $Is_NetWare; diff --git a/gnu/usr.bin/perl/t/op/substr.t b/gnu/usr.bin/perl/t/op/substr.t index dfb483aee58..5a99531205a 100644 --- a/gnu/usr.bin/perl/t/op/substr.t +++ b/gnu/usr.bin/perl/t/op/substr.t @@ -1,6 +1,6 @@ #!./perl -print "1..177\n"; +print "1..181\n"; #P = start of string Q = start of substr R = end of substr S = end of string @@ -609,3 +609,32 @@ ok 174, $x eq "\x{100}\x{200}\xFFb"; my $y = substr $x, 4; ok 177, substr($x, 7, 1) eq "7"; } + +# [perl #24200] string corruption with lvalue sub + +{ + my $foo = "a"; + sub bar: lvalue { substr $foo, 0 } + bar = "XXX"; + ok 178, bar eq 'XXX'; + $foo = '123456789'; + ok 179, bar eq '123456789'; +} + +# [perl #29149] +{ + my $text = "0123456789\xED "; + utf8::upgrade($text); + my $pos = 5; + pos($text) = $pos; + my $a = substr($text, $pos, $pos); + ok 180, substr($text,$pos,1) eq $pos; + +} + +# [perl #23765] +{ + my $a = pack("C", 0xbf); + substr($a, -1) &= chr(0xfeff); + ok 181, $a eq "\xbf"; +} diff --git a/gnu/usr.bin/perl/t/op/sysio.t b/gnu/usr.bin/perl/t/op/sysio.t index 473a3f0883c..435be12efbf 100644 --- a/gnu/usr.bin/perl/t/op/sysio.t +++ b/gnu/usr.bin/perl/t/op/sysio.t @@ -1,8 +1,9 @@ #!./perl -print "1..39\n"; +print "1..42\n"; chdir('op') || chdir('t/op') || die "sysio.t: cannot look for myself: $!"; +@INC = '../../lib'; open(I, 'sysio.t') || die "sysio.t: cannot find myself: $!"; @@ -213,6 +214,29 @@ close(I); unlink $outfile; +# Check that utf8 IO doesn't upgrade the scalar +open(I, ">$outfile") || die "sysio.t: cannot write $outfile: $!"; +# Will skip harmlessly on stdioperl +eval {binmode STDOUT, ":utf8"}; +die $@ if $@ and $@ !~ /^IO layers \(like ':utf8'\) unavailable/; + +# y diaresis is \w when UTF8 +$a = chr 255; + +print $a =~ /\w/ ? "not ok 40\n" : "ok 40\n"; + +syswrite I, $a; + +# Should not be upgraded as a side effect of syswrite. +print $a =~ /\w/ ? "not ok 41\n" : "ok 41\n"; + +# This should work +eval {syswrite I, 2;}; +print $@ eq "" ? "ok 42\n" : "not ok 42 # $@"; + +close(I); +unlink $outfile; + chdir('..'); 1; diff --git a/gnu/usr.bin/perl/t/op/taint.t b/gnu/usr.bin/perl/t/op/taint.t index 9751eecb269..f37f3aaae3a 100644 --- a/gnu/usr.bin/perl/t/op/taint.t +++ b/gnu/usr.bin/perl/t/op/taint.t @@ -124,7 +124,7 @@ my $echo = "$Invoke_Perl $ECHO"; my $TEST = catfile(curdir(), 'TEST'); -print "1..220\n"; +print "1..223\n"; # First, let's make sure that Perl is checking the dangerous # environment variables. Maybe they aren't set yet, so we'll @@ -1030,4 +1030,14 @@ else test 219, !tainted($1); ($r = $TAINT) =~ /($TAINT)/; test 220, tainted($1); + + # [perl #24674] + # accessing $^O shoudn't taint it as a side-effect; + # assigning tainted data to it is now an error + + test 221, !tainted($^O); + if (!$^X) { } elsif ($^O eq 'bar') { } + test 222, !tainted($^O); + eval '$^O = $^X'; + test 223, $@ =~ /Insecure dependency in/; } diff --git a/gnu/usr.bin/perl/t/op/write.t b/gnu/usr.bin/perl/t/op/write.t index 561d49e0e40..7bde0038d51 100644 --- a/gnu/usr.bin/perl/t/op/write.t +++ b/gnu/usr.bin/perl/t/op/write.t @@ -5,11 +5,66 @@ BEGIN { @INC = '../lib'; } -print "1..50\n"; +# read in a file +sub cat { + my $file = shift; + local $/; + open my $fh, $file or die "can't open '$file': $!"; + my $data = <$fh>; + close $fh; + $data; +} + +#-- testing numeric fields in all variants (WL) + +sub swrite { + my $format = shift; + local $^A = ""; # don't litter, use a local bin + formline( $format, @_ ); + return $^A; +} + +my @NumTests = ( + # [ format, value1, expected1, value2, expected2, .... ] + [ '@###', 0, ' 0', 1, ' 1', 9999.6, '####', + 9999.4999, '9999', -999.6, '####', 1e+100, '####' ], + + [ '@0##', 0, '0000', 1, '0001', 9999.6, '####', + -999.4999, '-999', -999.6, '####', 1e+100, '####' ], + + [ '^###', 0, ' 0', undef, ' ' ], + + [ '^0##', 0, '0000', undef, ' ' ], + + [ '@###.', 0, ' 0.', 1, ' 1.', 9999.6, '#####', + 9999.4999, '9999.', -999.6, '#####' ], + + [ '@##.##', 0, ' 0.00', 1, ' 1.00', 999.996, '######', + 999.99499, '999.99', -100, '######' ], + + [ '@0#.##', 0, '000.00', 1, '001.00', 10, '010.00', + -0.0001, qr/^[\-0]00\.00$/ ], + +); + + +my $num_tests = 0; +for my $tref ( @NumTests ){ + $num_tests += (@$tref - 1)/2; +} +#--------------------------------------------------------- + +# number of tests in section 1 +my $bas_tests = 20; + +# number of tests in section 3 +my $hmb_tests = 37; + +printf "1..%d\n", $bas_tests + $num_tests + $hmb_tests; -my $CAT = ($^O eq 'MSWin32' || $^O eq 'NetWare' || $^O eq 'VMS') ? 'type' - : ($^O eq 'MacOS') ? 'catenate' - : 'cat'; +############ +## Section 1 +############ format OUT = the quick brown @<< @@ -50,7 +105,7 @@ the course of huma... now is the time for all good men to come to\n"; -if (`$CAT Op_write.tmp` eq $right) +if (cat('Op_write.tmp') eq $right) { print "ok 1\n"; 1 while unlink 'Op_write.tmp'; } else { print "not ok 1\n"; } @@ -92,7 +147,7 @@ becomes necessary now is the time for all good men to come to\n"; -if (`$CAT Op_write.tmp` eq $right) +if (cat('Op_write.tmp') eq $right) { print "ok 2\n"; 1 while unlink 'Op_write.tmp'; } else { print "not ok 2\n"; } @@ -136,7 +191,7 @@ becomes necessary now is the time for all good men to come to\n"; -if (`$CAT Op_write.tmp` eq $right) +if (cat('Op_write.tmp') eq $right) { print "ok 3\n"; 1 while unlink 'Op_write.tmp'; } else { print "not ok 3\n"; } @@ -191,7 +246,7 @@ close OUT3 or die "Could not close: $!"; $right = "fit\n"; -if (`$CAT Op_write.tmp` eq $right) +if (cat('Op_write.tmp') eq $right) { print "ok 6\n"; 1 while unlink 'Op_write.tmp'; } else { print "not ok 6\n"; } @@ -219,7 +274,7 @@ format OUT4 = open OUT4, ">Op_write.tmp" or die "Can't create Op_write.tmp"; write (OUT4); close OUT4 or die "Could not close: $!"; -if (`$CAT Op_write.tmp` eq "1\n") { +if (cat('Op_write.tmp') eq "1\n") { print "ok 9\n"; 1 while unlink "Op_write.tmp"; } @@ -241,7 +296,7 @@ write(OUT10); close OUT10 or die "Could not close: $!"; $right = " 12.95 00012.95\n"; -if (`$CAT Op_write.tmp` eq $right) +if (cat('Op_write.tmp') eq $right) { print "ok 10\n"; 1 while unlink 'Op_write.tmp'; } else { print "not ok 10\n"; } @@ -267,21 +322,26 @@ $right = "00012.95 1 0# 10 #\n"; -if (`$CAT Op_write.tmp` eq $right) +if (cat('Op_write.tmp') eq $right) { print "ok 11\n"; 1 while unlink 'Op_write.tmp'; } else { print "not ok 11\n"; } { our $el; - format STDOUT = + format OUT12 = ok ^<<<<<<<<<<<<<<~~ # sv_chop() naze $el . my %hash = (12 => 3); + open(OUT12, '>Op_write.tmp') || die "Can't create Op_write.tmp"; + for $el (keys %hash) { - write; + write(OUT12); } + close OUT12 or die "Could not close: $!"; + print cat('Op_write.tmp'); + } { @@ -297,27 +357,163 @@ $v open(OUT13, '>Op_write.tmp') || die "Can't create Op_write.tmp"; write(OUT13); close OUT13 or die "Could not close: $!"; - print `$CAT Op_write.tmp`; + print cat('Op_write.tmp'); } -{ - # Bug #24774 format without trailing \n failed assertion +{ # test 14 + # Bug #24774 format without trailing \n failed assertion, but this + # must fail since we have a trailing ; in the eval'ed string (WL) my @v = ('k'); eval "format OUT14 = \n@\n\@v"; - open(OUT14, '>Op_write.tmp') || die "Can't create Op_write.tmp"; - write(OUT14); - close OUT14 or die "Could not close: $!"; - print "ok 14\n"; + print +($@ && $@ =~ /Format not terminated/) + ? "ok 14\n" : "not ok 14 $@\n"; + } -####################################### -# Easiest to add new tests above here # +{ # test 15 + # text lost in ^<<< field with \r in value (WL) + my $txt = "line 1\rline 2"; + format OUT15 = +^<<<<<<<<<<<<<<<<<< +$txt +^<<<<<<<<<<<<<<<<<< +$txt +. + open(OUT15, '>Op_write.tmp') || die "Can't create Op_write.tmp"; + write(OUT15); + close OUT15 or die "Could not close: $!"; + my $res = cat('Op_write.tmp'); + print $res eq "line 1\nline 2\n" ? "ok 15\n" : "not ok 15\n"; +} + +{ # test 16: multiple use of a variable in same line with ^< + my $txt = "this_is_block_1 this_is_block_2 this_is_block_3 this_is_block_4"; + format OUT16 = +^<<<<<<<<<<<<<<<< ^<<<<<<<<<<<<<<<< +$txt, $txt +^<<<<<<<<<<<<<<<< ^<<<<<<<<<<<<<<<< +$txt, $txt +. + open(OUT16, '>Op_write.tmp') || die "Can't create Op_write.tmp"; + write(OUT16); + close OUT16 or die "Could not close: $!"; + my $res = cat('Op_write.tmp'); + print $res eq <<EOD ? "ok 16\n" : "not ok 16\n"; +this_is_block_1 this_is_block_2 +this_is_block_3 this_is_block_4 +EOD +} + +{ # test 17: @* "should be on a line of its own", but it should work + # cleanly with literals before and after. (WL) + + my $txt = "This is line 1.\nThis is the second line.\nThird and last.\n"; + format OUT17 = +Here we go: @* That's all, folks! + $txt +. + open(OUT17, '>Op_write.tmp') || die "Can't create Op_write.tmp"; + write(OUT17); + close OUT17 or die "Could not close: $!"; + my $res = cat('Op_write.tmp'); + chomp( $txt ); + my $exp = <<EOD; +Here we go: $txt That's all, folks! +EOD + print $res eq $exp ? "ok 17\n" : "not ok 17\n"; +} + +{ # test 18: @# and ~~ would cause runaway format, but we now + # catch this while compiling (WL) + + format OUT18 = +@######## ~~ +10 +. + open(OUT18, '>Op_write.tmp') || die "Can't create Op_write.tmp"; + eval { write(OUT18); }; + print +($@ && $@ =~ /Repeated format line will never terminate/) + ? "ok 18\n" : "not ok 18: $@\n"; + close OUT18 or die "Could not close: $!"; +} + +{ # test 19: \0 in an evel'ed format, doesn't cause empty lines (WL) + my $v = 'gaga'; + eval "format OUT19 = \n" . + '@<<<' . "\0\n" . + '$v' . "\n" . + '@<<<' . "\0\n" . + '$v' . "\n.\n"; + open(OUT19, '>Op_write.tmp') || die "Can't create Op_write.tmp"; + write(OUT19); + close OUT19 or die "Could not close: $!"; + my $res = cat('Op_write.tmp'); + print $res eq <<EOD ? "ok 19\n" : "not ok 19\n"; +gaga\0 +gaga\0 +EOD +} + +{ # test 20: hash accesses; single '}' must not terminate format '}' (WL) + my %h = ( xkey => 'xval', ykey => 'yval' ); + format OUT20 = +@>>>> @<<<< ~~ +each %h +@>>>> @<<<< +$h{xkey}, $h{ykey} +@>>>> @<<<< +{ $h{xkey}, $h{ykey} +} +} +. + my $exp = ''; + while( my( $k, $v ) = each( %h ) ){ + $exp .= sprintf( "%5s %s\n", $k, $v ); + } + $exp .= sprintf( "%5s %s\n", $h{xkey}, $h{ykey} ); + $exp .= sprintf( "%5s %s\n", $h{xkey}, $h{ykey} ); + $exp .= "}\n"; + open(OUT20, '>Op_write.tmp') || die "Can't create Op_write.tmp"; + write(OUT20); + close OUT20 or die "Could not close: $!"; + my $res = cat('Op_write.tmp'); + print $res eq $exp ? "ok 20\n" : "not ok 20 res=[$res]exp=[$exp]\n"; +} + + +##################### +## Section 2 +## numeric formatting +##################### + +my $nt = $bas_tests; +for my $tref ( @NumTests ){ + my $writefmt = shift( @$tref ); + while (@$tref) { + my $val = shift @$tref; + my $expected = shift @$tref; + my $writeres = swrite( $writefmt, $val ); + $nt++; + my $ok = ref($expected) + ? $writeres =~ $expected + : $writeres eq $expected; + + print $ok + ? "ok $nt - $writefmt\n" + : "not ok $nt\n# f=[$writefmt] exp=[$expected] got=[$writeres]\n"; + } +} + + +##################################### +## Section 3 +## Easiest to add new tests above here ####################################### -# 15..50: scary format testing from Merijn H. Brand +# scary format testing from H.Merijn Brand -my $test = 15; -my $tests = 50; +my $test = $bas_tests + $num_tests + 1; +my $tests = $bas_tests + $num_tests + $hmb_tests; if ($^O eq 'VMS' || $^O eq 'MSWin32' || $^O eq 'dos' || $^O eq 'MacOS' || ($^O eq 'os2' and not eval '$OS2::can_fork')) { @@ -341,41 +537,73 @@ ok @<<<<< $test . -$= = 10; # [ID 20020227.005] format bug with undefined _TOP + +open STDOUT_DUP, ">&STDOUT"; +my $oldfh = select STDOUT_DUP; +$= = 10; { local $~ = "Comment"; write; $test++; print $- == 9 - ? "ok $test\n" : "not ok $test # TODO \$- = $- instead of 9\n"; + ? "ok $test # TODO\n" : "not ok $test # TODO \$- = $- instead of 9\n"; $test++; - print $^ ne "Comment_TOP" - ? "ok $test\n" : "not ok $test # TODO \$^ = $^ instead of 'STDOUT_TOP'\n"; + print $^ eq "STDOUT_DUP_TOP" + ? "ok $test\n" : "not ok $test\n# \$^ = $^ instead of 'STDOUT_DUP_TOP'\n"; $test++; - } +} +select $oldfh; +close STDOUT_DUP; - $^ = "STDOUT_TOP"; - $= = 7; # Page length - $- = 0; # Lines left +$^ = "STDOUT_TOP"; +$= = 7; # Page length +$- = 0; # Lines left my $ps = $^L; $^L = ""; # Catch the page separator my $tm = 1; # Top margin (empty lines before first output) my $bm = 2; # Bottom marging (empty lines between last text and footer) my $lm = 4; # Left margin (indent in spaces) -select ((select (STDOUT), $| = 1)[0]); -if ($lm > 0 and !open STDOUT, "|-") { # Left margin (in this test ALWAYS set) - select ((select (STDOUT), $| = 1)[0]); +# ----------------------------------------------------------------------- +# +# execute the rest of the script in a child process. The parent reads the +# output from the child and compares it with <DATA>. + +my @data = <DATA>; + +select ((select (STDOUT), $| = 1)[0]); # flush STDOUT + +my $opened = open FROM_CHILD, "-|"; +unless (defined $opened) { + print "not ok $test - open gave $!\n"; exit 0; +} + +if ($opened) { + # in parent here + + print "ok $test - open\n"; $test++; my $s = " " x $lm; - while (<STDIN>) { + while (<FROM_CHILD>) { + unless (@data) { + print "not ok $test - too much output\n"; + exit; + } s/^/$s/; - print + ($_ eq <DATA> ? "" : "not "), "ok ", $test++, "\n"; + my $exp = shift @data; + print + ($_ eq $exp ? "" : "not "), "ok ", $test++, " \n"; + if ($_ ne $exp) { + s/\n/\\n/g for $_, $exp; + print "#expected: $exp\n#got: $_\n"; } - close STDIN; - print + (<DATA>?"not ":""), "ok ", $test++, "\n"; - close STDOUT; - exit; } + close FROM_CHILD; + print + (@data?"not ":""), "ok ", $test++, " - too litle output\n"; + exit; +} + +# in child here + + select ((select (STDOUT), $| = 1)[0]); $tm = "\n" x $tm; $= -= $bm + 1; # count one for the trailing "----" my $lastmin = 0; diff --git a/gnu/usr.bin/perl/t/uni/tr_7jis.t b/gnu/usr.bin/perl/t/uni/tr_7jis.t index 6e74f1daa80..b640cce5798 100644 --- a/gnu/usr.bin/perl/t/uni/tr_7jis.t +++ b/gnu/usr.bin/perl/t/uni/tr_7jis.t @@ -1,5 +1,5 @@ # -# $Id$ +# $Id: tr_7jis.t,v 1.1.1.2 2004/08/09 17:48:37 millert Exp $ # # This script is written intentionally in ISO-2022-JP # requires Encode 1.83 or better to work @@ -8,7 +8,7 @@ BEGIN { if ($ENV{'PERL_CORE'}){ chdir 't'; - unshift @INC, '../lib'; + @INC = '../lib'; } require Config; import Config; if ($Config{'extensions'} !~ /\bEncode\b/) { @@ -23,16 +23,14 @@ BEGIN { print "1..0 # Skip: PerlIO required\n"; exit 0; } - eval 'use Encode'; - if ($@ =~ /dynamic loading not available/) { - print "1..0 # Skip: no dynamic loading, no Encode\n"; + if ($ENV{PERL_CORE_MINITEST}) { + print "1..0 # Skip: no dynamic loading on miniperl, no Encode\n"; exit 0; } $| = 1; } use strict; -#use Test::More qw(no_plan); use Test::More tests => 6; use Encode; use encoding 'iso-2022-jp'; diff --git a/gnu/usr.bin/perl/t/uni/tr_eucjp.t b/gnu/usr.bin/perl/t/uni/tr_eucjp.t index 6958f465a8d..b7033f2bdc5 100644 --- a/gnu/usr.bin/perl/t/uni/tr_eucjp.t +++ b/gnu/usr.bin/perl/t/uni/tr_eucjp.t @@ -1,5 +1,5 @@ # -# $Id$ +# $Id: tr_eucjp.t,v 1.2 2003/12/03 03:02:49 millert Exp $ # # This script is written intentionally in EUC-JP # -- dankogai @@ -7,7 +7,7 @@ BEGIN { if ($ENV{'PERL_CORE'}){ chdir 't'; - unshift @INC, '../lib'; + @INC = '../lib'; } require Config; import Config; if ($Config{'extensions'} !~ /\bEncode\b/) { @@ -22,16 +22,14 @@ BEGIN { print "1..0 # Skip: PerlIO required\n"; exit 0; } - eval 'use Encode'; - if ($@ =~ /dynamic loading not available/) { - print "1..0 # Skip: no dynamic loading, no Encode\n"; + if ($ENV{PERL_CORE_MINITEST}) { + print "1..0 # Skip: no dynamic loading on miniperl, no Encode\n"; exit 0; } $| = 1; } use strict; -#use Test::More qw(no_plan); use Test::More tests => 6; use Encode; use encoding 'euc-jp'; diff --git a/gnu/usr.bin/perl/t/uni/tr_sjis.t b/gnu/usr.bin/perl/t/uni/tr_sjis.t index 732eb1ab0b3..7857e05eed1 100644 --- a/gnu/usr.bin/perl/t/uni/tr_sjis.t +++ b/gnu/usr.bin/perl/t/uni/tr_sjis.t @@ -1,5 +1,5 @@ # -# $Id$ +# $Id: tr_sjis.t,v 1.1.1.2 2004/08/09 17:48:37 millert Exp $ # # This script is written intentionally in Shift JIS # -- dankogai @@ -7,7 +7,7 @@ BEGIN { if ($ENV{'PERL_CORE'}){ chdir 't'; - unshift @INC, '../lib'; + @INC = '../lib'; } require Config; import Config; if ($Config{'extensions'} !~ /\bEncode\b/) { @@ -22,16 +22,14 @@ BEGIN { print "1..0 # Skip: PerlIO required\n"; exit 0; } - eval 'use Encode'; - if ($@ =~ /dynamic loading not available/) { - print "1..0 # Skip: no dynamic loading, no Encode\n"; + if ($ENV{PERL_CORE_MINITEST}) { + print "1..0 # Skip: no dynamic loading on miniperl, no Encode\n"; exit 0; } $| = 1; } use strict; -#use Test::More qw(no_plan); use Test::More tests => 6; use Encode; use encoding 'shiftjis'; diff --git a/gnu/usr.bin/perl/t/uni/tr_utf8.t b/gnu/usr.bin/perl/t/uni/tr_utf8.t index e6239095499..002a2457ba6 100644 --- a/gnu/usr.bin/perl/t/uni/tr_utf8.t +++ b/gnu/usr.bin/perl/t/uni/tr_utf8.t @@ -1,5 +1,5 @@ # -# $Id$ +# $Id: tr_utf8.t,v 1.1.1.2 2004/08/09 17:48:37 millert Exp $ # # This script is written intentionally in UTF-8 # Requires Encode 1.83 or better @@ -8,7 +8,7 @@ BEGIN { if ($ENV{'PERL_CORE'}){ chdir 't'; - unshift @INC, '../lib'; + @INC = '../lib'; } require Config; import Config; if ($Config{'extensions'} !~ /\bEncode\b/) { @@ -23,16 +23,14 @@ BEGIN { print "1..0 # Skip: PerlIO required\n"; exit 0; } - eval 'use Encode'; - if ($@ =~ /dynamic loading not available/) { - print "1..0 # Skip: no dynamic loading, no Encode\n"; + if ($ENV{PERL_CORE_MINITEST}) { + print "1..0 # Skip: no dynamic loading on miniperl, no Encode\n"; exit 0; } $| = 1; } use strict; -#use Test::More qw(no_plan); use Test::More tests => 7; use encoding 'utf8'; diff --git a/gnu/usr.bin/perl/toke.c b/gnu/usr.bin/perl/toke.c index 9ecea185712..8525419b1d8 100644 --- a/gnu/usr.bin/perl/toke.c +++ b/gnu/usr.bin/perl/toke.c @@ -1,7 +1,7 @@ /* toke.c * * Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - * 2000, 2001, 2002, 2003, by Larry Wall and others + * 2000, 2001, 2002, 2003, 2004, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -250,18 +250,23 @@ S_no_op(pTHX_ char *what, char *s) else PL_bufptr = s; yywarn(Perl_form(aTHX_ "%s found where operator expected", what)); - if (is_first) - Perl_warn(aTHX_ "\t(Missing semicolon on previous line?)\n"); - else if (PL_oldoldbufptr && isIDFIRST_lazy_if(PL_oldoldbufptr,UTF)) { - char *t; - for (t = PL_oldoldbufptr; *t && (isALNUM_lazy_if(t,UTF) || *t == ':'); t++) ; - if (t < PL_bufptr && isSPACE(*t)) - Perl_warn(aTHX_ "\t(Do you need to predeclare %.*s?)\n", - t - PL_oldoldbufptr, PL_oldoldbufptr); - } - else { - assert(s >= oldbp); - Perl_warn(aTHX_ "\t(Missing operator before %.*s?)\n", s - oldbp, oldbp); + if (ckWARN_d(WARN_SYNTAX)) { + if (is_first) + Perl_warner(aTHX_ packWARN(WARN_SYNTAX), + "\t(Missing semicolon on previous line?)\n"); + else if (PL_oldoldbufptr && isIDFIRST_lazy_if(PL_oldoldbufptr,UTF)) { + char *t; + for (t = PL_oldoldbufptr; *t && (isALNUM_lazy_if(t,UTF) || *t == ':'); t++) ; + if (t < PL_bufptr && isSPACE(*t)) + Perl_warner(aTHX_ packWARN(WARN_SYNTAX), + "\t(Do you need to predeclare %.*s?)\n", + t - PL_oldoldbufptr, PL_oldoldbufptr); + } + else { + assert(s >= oldbp); + Perl_warner(aTHX_ packWARN(WARN_SYNTAX), + "\t(Missing operator before %.*s?)\n", s - oldbp, oldbp); + } } PL_bufptr = oldbp; } @@ -1222,7 +1227,7 @@ S_scan_const(pTHX_ char *start) const char *leaveit = /* set of acceptably-backslashed characters */ PL_lex_inpat - ? "\\.^$@AGZdDwWsSbBpPXC+*?|()-nrtfeaxcz0123456789[{]} \t\n\r\f\v#" + ? "\\.^$@AGZdDwWsSbBpPXC+*?|()-nrtfeaxz0123456789[{]} \t\n\r\f\v#" : ""; if (PL_lex_inwhat == OP_TRANS && PL_sublex_info.sub_op) { @@ -2424,8 +2429,12 @@ Perl_yylex(pTHX) if (!PL_rsfp) { PL_last_uni = 0; PL_last_lop = 0; - if (PL_lex_brackets) - yyerror("Missing right curly or square bracket"); + if (PL_lex_brackets) { + if (PL_lex_formbrack) + yyerror("Format not terminated"); + else + yyerror("Missing right curly or square bracket"); + } DEBUG_T( { PerlIO_printf(Perl_debug_log, "### Tokener got EOF\n"); } ); @@ -2521,8 +2530,13 @@ Perl_yylex(pTHX) sv_setpv(PL_linestr,""); TOKEN(';'); /* not infinite loop because rsfp is NULL now */ } - /* if it looks like the start of a BOM, check if it in fact is */ - else if (bof && (!*s || *(U8*)s == 0xEF || *(U8*)s >= 0xFE)) { + /* If it looks like the start of a BOM or raw UTF-16, + * check if it in fact is. */ + else if (bof && + (*s == 0 || + *(U8*)s == 0xEF || + *(U8*)s >= 0xFE || + s[1] == 0)) { #ifdef PERLIO_IS_STDIO # ifdef __GNU_LIBRARY__ # if __GNU_LIBRARY__ == 1 /* Linux glibc5 */ @@ -3022,21 +3036,25 @@ Perl_yylex(pTHX) PL_lex_stuff = Nullsv; } else { + if (len == 6 && strnEQ(s, "unique", len)) { + if (PL_in_my == KEY_our) +#ifdef USE_ITHREADS + GvUNIQUE_on(cGVOPx_gv(yylval.opval)); +#else + ; /* skip to avoid loading attributes.pm */ +#endif + else + Perl_croak(aTHX_ "The 'unique' attribute may only be applied to 'our' variables"); + } + /* NOTE: any CV attrs applied here need to be part of the CVf_BUILTIN_ATTRS define in cv.h! */ - if (!PL_in_my && len == 6 && strnEQ(s, "lvalue", len)) + else if (!PL_in_my && len == 6 && strnEQ(s, "lvalue", len)) CvLVALUE_on(PL_compcv); else if (!PL_in_my && len == 6 && strnEQ(s, "locked", len)) CvLOCKED_on(PL_compcv); else if (!PL_in_my && len == 6 && strnEQ(s, "method", len)) CvMETHOD_on(PL_compcv); - else if (PL_in_my == KEY_our && len == 6 && - strnEQ(s, "unique", len)) -#ifdef USE_ITHREADS - GvUNIQUE_on(cGVOPx_gv(yylval.opval)); -#else - ; /* skip that case to avoid loading attributes.pm */ -#endif /* After we've set the flags, it could be argued that we don't need to do the attributes.pm-based setting process, and shouldn't bother appending recognized @@ -4656,8 +4674,8 @@ Perl_yylex(pTHX) if (isIDFIRST_lazy_if(s,UTF)) { char *t; for (d = s; isALNUM_lazy_if(d,UTF); d++) ; - t = skipspace(d); - if (strchr("|&*+-=!?:.", *t) && ckWARN_d(WARN_PRECEDENCE) + for (t=d; *t && isSPACE(*t); t++) ; + if ( *t && strchr("|&*+-=!?:.", *t) && ckWARN_d(WARN_PRECEDENCE) /* [perl #16184] */ && !(t[0] == '=' && t[1] == '>') ) { @@ -5065,8 +5083,12 @@ Perl_yylex(pTHX) if (*s == ':' && s[1] != ':') PL_expect = attrful; - else if (!have_name && *s != '{' && key == KEY_sub) - Perl_croak(aTHX_ "Illegal declaration of anonymous subroutine"); + else if (*s != '{' && key == KEY_sub) { + if (!have_name) + Perl_croak(aTHX_ "Illegal declaration of anonymous subroutine"); + else if (*s != ';') + Perl_croak(aTHX_ "Illegal declaration of subroutine %"SVf, PL_subname); + } if (have_proto) { PL_nextval[PL_nexttoke].opval = @@ -5502,7 +5524,9 @@ Perl_keyword(pTHX_ register char *d, I32 len) break; case 6: if (strEQ(d,"exists")) return KEY_exists; - if (strEQ(d,"elseif")) Perl_warn(aTHX_ "elseif should be elsif"); + if (strEQ(d,"elseif") && ckWARN_d(WARN_SYNTAX)) + Perl_warner(aTHX_ packWARN(WARN_SYNTAX), + "elseif should be elsif"); break; case 8: if (strEQ(d,"endgrent")) return -KEY_endgrent; @@ -7577,20 +7601,23 @@ S_scan_formline(pTHX_ register char *s) register char *t; SV *stuff = newSVpvn("",0); bool needargs = FALSE; + bool eofmt = FALSE; while (!needargs) { - if (*s == '.' || *s == /*{*/'}') { + if (*s == '.') { /*SUPPRESS 530*/ #ifdef PERL_STRICT_CR for (t = s+1;SPACE_OR_TAB(*t); t++) ; #else for (t = s+1;SPACE_OR_TAB(*t) || *t == '\r'; t++) ; #endif - if (*t == '\n' || t == PL_bufend) + if (*t == '\n' || t == PL_bufend) { + eofmt = TRUE; break; + } } if (PL_in_eval && !PL_rsfp) { - eol = strchr(s,'\n'); + eol = memchr(s,'\n',PL_bufend-s); if (!eol++) eol = PL_bufend; } @@ -7627,7 +7654,6 @@ S_scan_formline(pTHX_ register char *s) PL_last_lop = PL_last_uni = Nullch; if (!s) { s = PL_bufptr; - yyerror("Format not terminated"); break; } } @@ -7656,7 +7682,8 @@ S_scan_formline(pTHX_ register char *s) } else { SvREFCNT_dec(stuff); - PL_lex_formbrack = 0; + if (eofmt) + PL_lex_formbrack = 0; PL_bufptr = s; } return s; @@ -7794,8 +7821,8 @@ Perl_yyerror(pTHX_ char *s) (int)PL_multi_open,(int)PL_multi_close,(IV)PL_multi_start); PL_multi_end = 0; } - if (PL_in_eval & EVAL_WARNONLY) - Perl_warn(aTHX_ "%"SVf, msg); + if (PL_in_eval & EVAL_WARNONLY && ckWARN_d(WARN_SYNTAX)) + Perl_warner(aTHX_ packWARN(WARN_SYNTAX), "%"SVf, msg); else qerror(msg); if (PL_error_count >= 10) { @@ -7819,72 +7846,94 @@ S_swallow_bom(pTHX_ U8 *s) { STRLEN slen; slen = SvCUR(PL_linestr); - switch (*s) { + switch (s[0]) { case 0xFF: if (s[1] == 0xFE) { - /* UTF-16 little-endian */ + /* UTF-16 little-endian? (or UTF32-LE?) */ if (s[2] == 0 && s[3] == 0) /* UTF-32 little-endian */ - Perl_croak(aTHX_ "Unsupported script encoding"); + Perl_croak(aTHX_ "Unsupported script encoding UTF32-LE"); #ifndef PERL_NO_UTF16_FILTER - DEBUG_p(PerlIO_printf(Perl_debug_log, "UTF-LE script encoding\n")); + if (DEBUG_p_TEST || DEBUG_T_TEST) PerlIO_printf(Perl_debug_log, "UTF16-LE script encoding (BOM)\n"); s += 2; + utf16le: if (PL_bufend > (char*)s) { U8 *news; I32 newlen; filter_add(utf16rev_textfilter, NULL); New(898, news, (PL_bufend - (char*)s) * 3 / 2 + 1, U8); - PL_bufend = (char*)utf16_to_utf8_reversed(s, news, - PL_bufend - (char*)s - 1, - &newlen); - Copy(news, s, newlen, U8); - SvCUR_set(PL_linestr, newlen); - PL_bufend = SvPVX(PL_linestr) + newlen; - news[newlen++] = '\0'; + PL_bufend = + (char*)utf16_to_utf8_reversed(s, news, + PL_bufend - (char*)s - 1, + &newlen); + sv_setpvn(PL_linestr, (const char*)news, newlen); Safefree(news); + SvUTF8_on(PL_linestr); + s = (U8*)SvPVX(PL_linestr); + PL_bufend = SvPVX(PL_linestr) + newlen; } #else - Perl_croak(aTHX_ "Unsupported script encoding"); + Perl_croak(aTHX_ "Unsupported script encoding UTF16-LE"); #endif } break; case 0xFE: - if (s[1] == 0xFF) { /* UTF-16 big-endian */ + if (s[1] == 0xFF) { /* UTF-16 big-endian? */ #ifndef PERL_NO_UTF16_FILTER - DEBUG_p(PerlIO_printf(Perl_debug_log, "UTF-16BE script encoding\n")); + if (DEBUG_p_TEST || DEBUG_T_TEST) PerlIO_printf(Perl_debug_log, "UTF-16BE script encoding (BOM)\n"); s += 2; + utf16be: if (PL_bufend > (char *)s) { U8 *news; I32 newlen; filter_add(utf16_textfilter, NULL); New(898, news, (PL_bufend - (char*)s) * 3 / 2 + 1, U8); - PL_bufend = (char*)utf16_to_utf8(s, news, - PL_bufend - (char*)s, - &newlen); - Copy(news, s, newlen, U8); - SvCUR_set(PL_linestr, newlen); - PL_bufend = SvPVX(PL_linestr) + newlen; - news[newlen++] = '\0'; + PL_bufend = + (char*)utf16_to_utf8(s, news, + PL_bufend - (char*)s, + &newlen); + sv_setpvn(PL_linestr, (const char*)news, newlen); Safefree(news); + SvUTF8_on(PL_linestr); + s = (U8*)SvPVX(PL_linestr); + PL_bufend = SvPVX(PL_linestr) + newlen; } #else - Perl_croak(aTHX_ "Unsupported script encoding"); + Perl_croak(aTHX_ "Unsupported script encoding UTF16-BE"); #endif } break; case 0xEF: if (slen > 2 && s[1] == 0xBB && s[2] == 0xBF) { - DEBUG_p(PerlIO_printf(Perl_debug_log, "UTF-8 script encoding\n")); + if (DEBUG_p_TEST || DEBUG_T_TEST) PerlIO_printf(Perl_debug_log, "UTF-8 script encoding (BOM)\n"); s += 3; /* UTF-8 */ } break; case 0: - if (slen > 3 && s[1] == 0 && /* UTF-32 big-endian */ - s[2] == 0xFE && s[3] == 0xFF) - { - Perl_croak(aTHX_ "Unsupported script encoding"); + if (slen > 3) { + if (s[1] == 0) { + if (s[2] == 0xFE && s[3] == 0xFF) { + /* UTF-32 big-endian */ + Perl_croak(aTHX_ "Unsupported script encoding UTF32-BE"); + } + } + else if (s[2] == 0 && s[3] != 0) { + /* Leading bytes + * 00 xx 00 xx + * are a good indicator of UTF-16BE. */ + if (DEBUG_p_TEST || DEBUG_T_TEST) PerlIO_printf(Perl_debug_log, "UTF-16BE script encoding (no BOM)\n"); + goto utf16be; + } } + default: + if (slen > 3 && s[1] == 0 && s[2] != 0 && s[3] == 0) { + /* Leading bytes + * xx 00 xx 00 + * are a good indicator of UTF-16LE. */ + if (DEBUG_p_TEST || DEBUG_T_TEST) PerlIO_printf(Perl_debug_log, "UTF-16LE script encoding (no BOM)\n"); + goto utf16le; + } } return (char*)s; } diff --git a/gnu/usr.bin/perl/universal.c b/gnu/usr.bin/perl/universal.c index c55b48864fb..4ab796f4e10 100644 --- a/gnu/usr.bin/perl/universal.c +++ b/gnu/usr.bin/perl/universal.c @@ -1,6 +1,6 @@ /* universal.c * - * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, + * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, * by Larry Wall and others * * You may distribute under the terms of either the GNU General Public diff --git a/gnu/usr.bin/perl/util.c b/gnu/usr.bin/perl/util.c index 856ef93bd7d..1ca158b0076 100644 --- a/gnu/usr.bin/perl/util.c +++ b/gnu/usr.bin/perl/util.c @@ -1,7 +1,7 @@ /* util.c * * Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, - * 2000, 2001, 2002, 2003, by Larry Wall and others + * 2000, 2001, 2002, 2003, 2004, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -72,7 +72,9 @@ Perl_safesysmalloc(MEM_SIZE size) else if (PL_nomemok) return Nullch; else { - PerlIO_puts(Perl_error_log,PL_no_mem) FLUSH; + /* Can't use PerlIO to write as it allocates memory */ + PerlLIO_write(PerlIO_fileno(Perl_error_log), + PL_no_mem, strlen(PL_no_mem)); my_exit(1); return Nullch; } @@ -119,7 +121,9 @@ Perl_safesysrealloc(Malloc_t where,MEM_SIZE size) else if (PL_nomemok) return Nullch; else { - PerlIO_puts(Perl_error_log,PL_no_mem) FLUSH; + /* Can't use PerlIO to write as it allocates memory */ + PerlLIO_write(PerlIO_fileno(Perl_error_log), + PL_no_mem, strlen(PL_no_mem)); my_exit(1); return Nullch; } @@ -171,7 +175,9 @@ Perl_safesyscalloc(MEM_SIZE count, MEM_SIZE size) else if (PL_nomemok) return Nullch; else { - PerlIO_puts(Perl_error_log,PL_no_mem) FLUSH; + /* Can't use PerlIO to write as it allocates memory */ + PerlLIO_write(PerlIO_fileno(Perl_error_log), + PL_no_mem, strlen(PL_no_mem)); my_exit(1); return Nullch; } @@ -1222,8 +1228,9 @@ Perl_croak_nocontext(const char *pat, ...) =for apidoc croak This is the XSUB-writer's interface to Perl's C<die> function. -Normally use this function the same way you use the C C<printf> -function. See C<warn>. +Normally call this function the same way you call the C C<printf> +function. Calling C<croak> returns control directly to Perl, +sidestepping the normal C order of execution. See C<warn>. If you want to throw an exception object, assign the object to C<$@> and then pass C<Nullch> to croak(): @@ -1308,9 +1315,8 @@ Perl_warn_nocontext(const char *pat, ...) /* =for apidoc warn -This is the XSUB-writer's interface to Perl's C<warn> function. Use this -function the same way you use the C C<printf> function. See -C<croak>. +This is the XSUB-writer's interface to Perl's C<warn> function. Call this +function the same way you call the C C<printf> function. See C<croak>. =cut */ diff --git a/gnu/usr.bin/perl/utils/c2ph.PL b/gnu/usr.bin/perl/utils/c2ph.PL index 91ecc04552b..9334aa10436 100644 --- a/gnu/usr.bin/perl/utils/c2ph.PL +++ b/gnu/usr.bin/perl/utils/c2ph.PL @@ -278,8 +278,9 @@ Anyway, here it is. Should run on perl v4 or greater. Maybe less. =cut -$RCSID = '$Id: c2ph,v 1.7 95/10/28 10:41:47 tchrist Exp Locker: tchrist $'; +$RCSID = '$Id: c2ph.PL,v 1.7 2003/12/03 03:02:50 millert Exp $'; +use File::Temp; ###################################################################### @@ -480,6 +481,13 @@ sub defvar { printf "%-16s%-15s %s\n", $var, eval "\$$var", $msg; } +sub safedir { + $SAFEDIR = File::Temp::tempdir("c2ph.XXXXXX", TMPDIR => 1, CLEANUP => 1) + unless (defined($SAFEDIR)); +} + +undef $SAFEDIR; + $recurse = 1; if (@ARGV) { @@ -495,15 +503,15 @@ if (@ARGV) { } elsif (@ARGV == 1 && $ARGV[0] =~ /\.c$/) { local($dir, $file) = $ARGV[0] =~ m#(.*/)?(.*)$#; - $chdir = "cd $dir; " if $dir; + $chdir = "cd $dir && " if $dir; &system("$chdir$CC $CFLAGS $DEFINES $file") && exit 1; $ARGV[0] =~ s/\.c$/.s/; } else { - $TMPDIR = tempdir(CLEANUP => 1); - $TMP = "$TMPDIR/c2ph.$$.c"; + &safedir; + $TMP = "$SAFEDIR/c2ph.$$.c"; &system("cat @ARGV > $TMP") && exit 1; - &system("cd $TMPDIR; $CC $CFLAGS $DEFINES $TMP") && exit 1; + &system("cd $SAFEDIR && $CC $CFLAGS $DEFINES $TMP") && exit 1; unlink $TMP; $TMP =~ s/\.c$/.s/; @ARGV = ($TMP); @@ -1274,8 +1282,8 @@ sub fetch_template { } sub compute_intrinsics { - $TMPDIR ||= tempdir(CLEANUP => 1); - local($TMP) = "$TMPDIR/c2ph-i.$$.c"; + &safedir; + local($TMP) = "$SAFEDIR/c2ph-i.$$.c"; open (TMP, ">$TMP") || die "can't open $TMP: $!"; select(TMP); @@ -1303,7 +1311,7 @@ EOF close TMP; select(STDOUT); - open(PIPE, "cd $TMPDIR && $CC $TMP && $TMPDIR/a.out|"); + open(PIPE, "cd $SAFEDIR && $CC $TMP && $SAFEDIR/a.out|"); while (<PIPE>) { chop; split(' ',$_,2);; @@ -1312,7 +1320,7 @@ EOF $intrinsics{$_[1]} = $template{$_[0]}; } close(PIPE) || die "couldn't read intrinsics!"; - unlink($TMP, '$TMPDIR/a.out'); + unlink($TMP, '$SAFEDIR/a.out'); print STDERR "done\n" if $trace; } diff --git a/gnu/usr.bin/perl/utils/h2ph.PL b/gnu/usr.bin/perl/utils/h2ph.PL index d28dc731f08..106336e4cab 100644 --- a/gnu/usr.bin/perl/utils/h2ph.PL +++ b/gnu/usr.bin/perl/utils/h2ph.PL @@ -58,13 +58,14 @@ my $Dest_dir = $opt_d || $Config{installsitearch}; die "Destination directory $Dest_dir doesn't exist or isn't a directory\n" unless -d $Dest_dir; -my @isatype = split(' ',<<END); +my @isatype = qw( char uchar u_char short ushort u_short int uint u_int long ulong u_long FILE key_t caddr_t -END + float double size_t +); my %isatype; @isatype{@isatype} = (1) x @isatype; @@ -133,9 +134,9 @@ while (defined (my $file = next_file())) { s/\(\w+\s*\(\*\)\s*\(\w*\)\)\s*(-?\d+)/$1/; # (int (*)(foo_t))0 if (s/^\(([\w,\s]*)\)//) { $args = $1; - my $proto = '() '; + my $proto = '() '; if ($args ne '') { - $proto = ''; + $proto = ''; foreach my $arg (split(/,\s*/,$args)) { $arg =~ s/^\s*([^\s].*[^\s])\s*$/$1/; $curargs{$arg} = 1; @@ -146,6 +147,7 @@ while (defined (my $file = next_file())) { s/^\s+//; expr(); $new =~ s/(["\\])/\\$1/g; #"]); + EMIT: $new = reindent($new); $args = reindent($args); if ($t ne '') { @@ -268,7 +270,7 @@ while (defined (my $file = next_file())) { } elsif(/^ident\s+(.*)/) { print OUT $t, "# $1\n"; } - } elsif(/^\s*(typedef\s*)?enum\s*(\s+[a-zA-Z_]\w*\s*)?/) { + } elsif (/^\s*(typedef\s*)?enum\s*(\s+[a-zA-Z_]\w*\s*)?/) { # { for vi until(/\{[^}]*\}.*;/ || /;/) { last unless defined ($next = next_line($file)); chomp $next; @@ -300,6 +302,75 @@ while (defined (my $file = next_file())) { "unless defined(\&$enum_name);\n"); } } + } elsif (/^(?:__extension__\s+)?(?:extern|static)\s+(?:__)?inline(?:__)?\s+/ + and !/;\s*$/ and !/{\s*}\s*$/) + { # { for vi + # This is a hack to parse the inline functions in the glibc headers. + # Warning: massive kludge ahead. We suppose inline functions + # are mainly constructed like macros. + while (1) { + last unless defined ($next = next_line($file)); + chomp $next; + undef $_, last if $next =~ /__THROW\s*;/ + or $next =~ /^(__extension__|extern|static)\b/; + $_ .= " $next"; + print OUT "# $next\n" if $opt_D; + last if $next =~ /^}|^{.*}\s*$/; + } + next if not defined; # because it's only a prototype + s/\b(__extension__|extern|static|(?:__)?inline(?:__)?)\b//g; + # violently drop #ifdefs + s/#\s*if.*?#\s*endif//g + and print OUT "# some #ifdef were dropped here -- fill in the blanks\n"; + if (s/^(?:\w|\s|\*)*\s(\w+)\s*//) { + $name = $1; + } else { + warn "name not found"; next; # shouldn't occur... + } + my @args; + if (s/^\(([^()]*)\)\s*(\w+\s*)*//) { + for my $arg (split /,/, $1) { + if ($arg =~ /(\w+)\s*$/) { + $curargs{$1} = 1; + push @args, $1; + } + } + } + $args = ( + @args + ? "local(" . (join ',', map "\$$_", @args) . ") = \@_;\n$t " + : "" + ); + my $proto = @args ? '' : '() '; + $new = ''; + s/\breturn\b//g; # "return" doesn't occur in macros usually... + expr(); + # try to find and perlify local C variables + our @local_variables = (); # needs to be a our(): (?{...}) bug workaround + { + use re "eval"; + my $typelist = join '|', keys %isatype; + $new =~ s[' + (?:(?:un)?signed\s+)? + (?:long\s+)? + (?:$typelist)\s+ + (\w+) + (?{ push @local_variables, $1 }) + '] + [my \$$1]gx; + $new =~ s[' + (?:(?:un)?signed\s+)? + (?:long\s+)? + (?:$typelist)\s+ + ' \s+ &(\w+) \s* ; + (?{ push @local_variables, $1 }) + ] + [my \$$1;]gx; + } + $new =~ s/&$_\b/\$$_/g for @local_variables; + $new =~ s/(["\\])/\\$1/g; #"]); + # now that's almost like a macro (we hope) + goto EMIT; } } $Is_converted{$file} = 1; @@ -308,7 +379,7 @@ while (defined (my $file = next_file())) { $next = ''; } else { print OUT "1;\n"; - queue_includes_from($file) if ($opt_a); + queue_includes_from($file) if $opt_a; } } @@ -380,10 +451,16 @@ sub expr { }; # Eliminate typedefs /\(([\w\s]+)[\*\s]*\)\s*[\w\(]/ && do { + my $doit = 1; foreach (split /\s+/, $1) { # Make sure all the words are types, - last unless ($isatype{$_} or $_ eq 'struct' or $_ eq 'union'); + unless($isatype{$_} or $_ eq 'struct' or $_ eq 'union'){ + $doit = 0; + last; + } + } + if( $doit ){ + s/\([\w\s]+[\*\s]*\)// && next; # then eliminate them. } - s/\([\w\s]+[\*\s]*\)// && next; # then eliminate them. }; # struct/union member, including arrays: s/^([_A-Z]\w*(\[[^\]]+\])?((\.|->)[_A-Z]\w*(\[[^\]]+\])?)+)//i && do { diff --git a/gnu/usr.bin/perl/utils/h2xs.PL b/gnu/usr.bin/perl/utils/h2xs.PL index ef2063d1cf3..18e73c2fffa 100644 --- a/gnu/usr.bin/perl/utils/h2xs.PL +++ b/gnu/usr.bin/perl/utils/h2xs.PL @@ -492,7 +492,7 @@ See L<perlxs> and L<perlxstut> for additional details. use strict; -my( $H2XS_VERSION ) = ' $Revision: 1.7 $ ' =~ /\$Revision:\s+([^\s]+)/; +my( $H2XS_VERSION ) = ' $Revision: 1.8 $ ' =~ /\$Revision:\s+([^\s]+)/; my $TEMPLATE_VERSION = '0.01'; my @ARGS = @ARGV; my $compat_version = $]; @@ -701,7 +701,8 @@ $opt_c = $opt_f = 1 if $opt_X; $opt_t ||= 'IV'; -my %const_xsub = map { $_,1 } split(/,+/, $opt_s) if $opt_s; +my %const_xsub; +%const_xsub = map { $_,1 } split(/,+/, $opt_s) if $opt_s; my $extralibs = ''; @@ -899,7 +900,7 @@ if( @path_h ){ next if $opt_e && $enum_name =~ /$opt_e/; my $val = 0; for my $item (split /,/, $enum_body) { - my ($key, $declared_val) = $item =~ /(\w*)\s*=\s*(.*)/; + my ($key, $declared_val) = $item =~ /(\w+)\s*=\s*(.*)/; $val = length($declared_val) ? $declared_val : 1 + $val; $seen_define{$key} = $declared_val; $const_names{$key}++; @@ -980,6 +981,8 @@ if( ! $opt_X ){ # use XS, unless it was disabled 'add_cppflags' => $addflags, 'c_styles' => \@styles; $c->set('includeDirs' => ["$Config::Config{archlib}/CORE", $cwd]); + $c->get('keywords')->{'__restrict'} = 1; + push @$fdecls_parsed, @{ $c->get('parsed_fdecls') }; push(@$fdecls, @{$c->get('fdecls')}); @@ -1307,7 +1310,8 @@ if ($opt_x && $opt_a) { my $licence_hash = $licence; $licence_hash =~ s/^/#/gm; -my $pod = <<"END" unless $opt_P; +my $pod; +$pod = <<"END" unless $opt_P; ## Below is stub documentation for your module. You'd better edit it! # #=head1 NAME diff --git a/gnu/usr.bin/perl/utils/perlbug.PL b/gnu/usr.bin/perl/utils/perlbug.PL index b9906f8acfe..8f3e6a0d2c1 100644 --- a/gnu/usr.bin/perl/utils/perlbug.PL +++ b/gnu/usr.bin/perl/utils/perlbug.PL @@ -89,9 +89,12 @@ BEGIN { $::HaveSend = ($@ eq ""); eval "use Mail::Util;"; $::HaveUtil = ($@ eq ""); + # use secure tempfiles wherever possible + eval "require File::Temp;"; + $::HaveTemp = ($@ eq ""); }; -my $Version = "1.34"; +my $Version = "1.35"; # Changed in 1.06 to skip Mail::Send and Mail::Util if not available. # Changed in 1.07 to see more sendmail execs, and added pipe output. @@ -130,6 +133,7 @@ my $Version = "1.34"; # Changed in 1.32 Use File::Spec->tmpdir TJENNESS 20-08-2000 # Changed in 1.33 Don't require -t STDOUT for -ok. # Changed in 1.34 Added Message-Id RFOLEY 18-06-2002 +# Changed in 1.35 Use File::Temp (patch from Solar Designer) NWCLARK 28-02-2004 # TODO: - Allow the user to re-name the file on mail failure, and # make sure failure (transmission-wise) of Mail::Send is @@ -958,10 +962,18 @@ EOF } sub filename { - my $dir = File::Spec->tmpdir(); - $filename = "bugrep0$$"; - $filename++ while -e File::Spec->catfile($dir, $filename); - $filename = File::Spec->catfile($dir, $filename); + if ($::HaveTemp) { + # Good. Use a secure temp file + my ($fh, $filename) = File::Temp::tempfile(UNLINK => 1); + close($fh); + return $filename; + } else { + # Bah. Fall back to doing things less securely. + my $dir = File::Spec->tmpdir(); + $filename = "bugrep0$$"; + $filename++ while -e File::Spec->catfile($dir, $filename); + $filename = File::Spec->catfile($dir, $filename); + } } sub paraprint { diff --git a/gnu/usr.bin/perl/vms/vms.c b/gnu/usr.bin/perl/vms/vms.c index ceafe80e0aa..3f9df66e5f8 100644 --- a/gnu/usr.bin/perl/vms/vms.c +++ b/gnu/usr.bin/perl/vms/vms.c @@ -695,7 +695,21 @@ prime_env_iter(void) continue; } PERL_HASH(hash,key,keylen); - sv = newSVpvn(cp2,cp1 - cp2 + 1); + + if (cp1 == cp2 && *cp2 == '.') { + /* A single dot usually means an unprintable character, such as a null + * to indicate a zero-length value. Get the actual value to make sure. + */ + char lnm[LNM$C_NAMLENGTH+1]; + char eqv[LNM$C_NAMLENGTH+1]; + strncpy(lnm, key, keylen); + int trnlen = vmstrnenv(lnm, eqv, 0, fildev, 0); + sv = newSVpvn(eqv, strlen(eqv)); + } + else { + sv = newSVpvn(cp2,cp1 - cp2 + 1); + } + SvTAINTED_on(sv); hv_store(envhv,key,keylen,sv,hash); hv_store(seenhv,key,keylen,&PL_sv_yes,hash); @@ -3665,7 +3679,8 @@ static char *mp_do_tounixspec(pTHX_ char *spec, char *buf, int ts) { static char __tounixspec_retbuf[NAM$C_MAXRSS+1]; char *dirend, *rslt, *cp1, *cp2, *cp3, tmp[NAM$C_MAXRSS+1]; - int devlen, dirlen, retlen = NAM$C_MAXRSS+1, expand = 0; + int devlen, dirlen, retlen = NAM$C_MAXRSS+1; + int expand = 1; /* guarantee room for leading and trailing slashes */ unsigned short int trnlnm_iter_count; if (spec == NULL) return NULL; diff --git a/gnu/usr.bin/perl/vos/config.alpha.h b/gnu/usr.bin/perl/vos/config.alpha.h index 748160eeea8..4ef35e5193b 100644 --- a/gnu/usr.bin/perl/vos/config.alpha.h +++ b/gnu/usr.bin/perl/vos/config.alpha.h @@ -7,7 +7,7 @@ * that running config_h.SH again will wipe out any changes you've made. * For a more permanent change edit config.sh and rerun config_h.SH. * - * \$Id: config.alpha.h,v 1.5 2004/04/07 21:33:11 millert Exp $ + * \$Id: config.alpha.h,v 1.6 2004/08/09 18:10:36 millert Exp $ */ /* @@ -1387,8 +1387,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 "/system/ported/lib/perl5/5.8.3" /**/ -#define PRIVLIB_EXP "/system/ported/lib/perl5/5.8.3" /**/ +#define PRIVLIB "/system/ported/lib/perl5/5.8.5" /**/ +#define PRIVLIB_EXP "/system/ported/lib/perl5/5.8.5" /**/ /* SITEARCH: * This symbol contains the name of the private library for this package. @@ -1405,8 +1405,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 "/system/ported/lib/perl5/site_perl/5.8.3/hppa1.1" /**/ -/*#define SITEARCH_EXP "/system/ported/lib/perl5/site_perl/5.8.3/hppa1.1" /**/ +/*#define SITEARCH "/system/ported/lib/perl5/site_perl/5.8.5/hppa1.1" /**/ +/*#define SITEARCH_EXP "/system/ported/lib/perl5/site_perl/5.8.5/hppa1.1" /**/ /* SITELIB: * This symbol contains the name of the private library for this package. @@ -1428,8 +1428,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 "/system/ported/lib/perl5/site_perl/5.8.3" /**/ -#define SITELIB_EXP "/system/ported/lib/perl5/site_perl/5.8.3" /**/ +#define SITELIB "/system/ported/lib/perl5/site_perl/5.8.5" /**/ +#define SITELIB_EXP "/system/ported/lib/perl5/site_perl/5.8.5" /**/ #define SITELIB_STEM "/system/ported/lib/perl5/site_perl" /**/ /* PERL_VENDORARCH: @@ -3360,7 +3360,7 @@ /* PERL_XS_APIVERSION: * This variable contains the version of the oldest perl binary * compatible with the present perl. perl.c:incpush() and - * lib/lib.pm will automatically search in /system/ported/lib/perl5/site_perl/5.8.3/hppa1.1 for older + * lib/lib.pm will automatically search in /system/ported/lib/perl5/site_perl/5.8.5/hppa1.1 for older * directories across major versions back to xs_apiversion. * This is only useful if you have a perl library directory tree * structured like the default one. @@ -3379,7 +3379,7 @@ * compatible with the present perl. (That is, pure perl modules * written for pm_apiversion will still work for the current * version). perl.c:incpush() and lib/lib.pm will automatically - * search in /system/ported/lib/perl5/site_perl/5.8.3 for older directories across major versions + * search in /system/ported/lib/perl5/site_perl/5.8.5 for older directories across major versions * back to pm_apiversion. This is only useful if you have a perl * library directory tree structured like the default one. The * versioned site_perl library was introduced in 5.005, so that's diff --git a/gnu/usr.bin/perl/vos/config.ga.h b/gnu/usr.bin/perl/vos/config.ga.h index 3cdf812dd86..aeea13051c2 100644 --- a/gnu/usr.bin/perl/vos/config.ga.h +++ b/gnu/usr.bin/perl/vos/config.ga.h @@ -7,7 +7,7 @@ * that running config_h.SH again will wipe out any changes you've made. * For a more permanent change edit config.sh and rerun config_h.SH. * - * \$Id: config.ga.h,v 1.5 2004/04/07 21:33:11 millert Exp $ + * \$Id: config.ga.h,v 1.6 2004/08/09 18:10:36 millert Exp $ */ /* @@ -1387,8 +1387,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 "/system/ported/lib/perl5/5.8.3" /**/ -#define PRIVLIB_EXP "/system/ported/lib/perl5/5.8.3" /**/ +#define PRIVLIB "/system/ported/lib/perl5/5.8.5" /**/ +#define PRIVLIB_EXP "/system/ported/lib/perl5/5.8.5" /**/ /* SITEARCH: * This symbol contains the name of the private library for this package. @@ -1405,8 +1405,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 "/system/ported/lib/perl5/site_perl/5.8.3/hppa1.1" /**/ -/*#define SITEARCH_EXP "/system/ported/lib/perl5/site_perl/5.8.3/hppa1.1" /**/ +/*#define SITEARCH "/system/ported/lib/perl5/site_perl/5.8.5/hppa1.1" /**/ +/*#define SITEARCH_EXP "/system/ported/lib/perl5/site_perl/5.8.5/hppa1.1" /**/ /* SITELIB: * This symbol contains the name of the private library for this package. @@ -1428,8 +1428,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 "/system/ported/lib/perl5/site_perl/5.8.3" /**/ -#define SITELIB_EXP "/system/ported/lib/perl5/site_perl/5.8.3" /**/ +#define SITELIB "/system/ported/lib/perl5/site_perl/5.8.5" /**/ +#define SITELIB_EXP "/system/ported/lib/perl5/site_perl/5.8.5" /**/ #define SITELIB_STEM "/system/ported/lib/perl5/site_perl" /**/ /* PERL_VENDORARCH: @@ -3360,7 +3360,7 @@ /* PERL_XS_APIVERSION: * This variable contains the version of the oldest perl binary * compatible with the present perl. perl.c:incpush() and - * lib/lib.pm will automatically search in /system/ported/lib/perl5/site_perl/5.8.3/hppa1.1 for older + * lib/lib.pm will automatically search in /system/ported/lib/perl5/site_perl/5.8.5/hppa1.1 for older * directories across major versions back to xs_apiversion. * This is only useful if you have a perl library directory tree * structured like the default one. @@ -3379,7 +3379,7 @@ * compatible with the present perl. (That is, pure perl modules * written for pm_apiversion will still work for the current * version). perl.c:incpush() and lib/lib.pm will automatically - * search in /system/ported/lib/perl5/site_perl/5.8.3 for older directories across major versions + * search in /system/ported/lib/perl5/site_perl/5.8.5 for older directories across major versions * back to pm_apiversion. This is only useful if you have a perl * library directory tree structured like the default one. The * versioned site_perl library was introduced in 5.005, so that's diff --git a/gnu/usr.bin/perl/win32/Makefile b/gnu/usr.bin/perl/win32/Makefile index 37d24994e86..e139903bbcf 100644 --- a/gnu/usr.bin/perl/win32/Makefile +++ b/gnu/usr.bin/perl/win32/Makefile @@ -32,7 +32,7 @@ INST_TOP = $(INST_DRV)\perl # versioned installation can be obtained by setting INST_TOP above to a
# path that includes an arbitrary version string.
#
-#INST_VER = \5.8.3
+#INST_VER = \5.8.5
#
# Comment this out if you DON'T want your perl installation to have
@@ -372,9 +372,6 @@ LIBC = msvcrt.lib LIBC = PerlCRT.lib
!ENDIF
-PERLEXE_RES =
-PERLDLL_RES =
-
!IF "$(CFG)" == "Debug"
! IF "$(CCTYPE)" == "MSVC20"
OPTIMIZE = -Od -MD -Z7 -DDEBUGGING
@@ -383,8 +380,15 @@ OPTIMIZE = -Od -MD -Zi -DDEBUGGING ! ENDIF
LINK_DBG = -debug
!ELSE
-OPTIMIZE = -MD -DNDEBUG
-LINK_DBG = -release
+OPTIMIZE = -MD -Zi -DNDEBUG
+# we enable debug symbols in release builds also
+LINK_DBG = -debug -opt:ref,icf
+# you may want to enable this if you want COFF symbols in the executables
+# in addition to the PDB symbols. The default Dr. Watson that ships with
+# Windows can use the the former but not latter. The free WinDbg can be
+# installed to get better stack traces from just the PDB symbols, so we
+# avoid the bloat of COFF symbols by default.
+#LINK_DBG = $(LINK_DBG) -debugtype:both
! IF "$(WIN64)" == "define"
# enable Whole Program Optimizations (WPO) and Link Time Code Generation (LTCG)
OPTIMIZE = $(OPTIMIZE) -Ox -GL
@@ -470,6 +474,20 @@ CONFIGPM = ..\lib\Config.pm MINIMOD = ..\lib\ExtUtils\Miniperl.pm
X2P = ..\x2p\a2p.exe
+# Unicode data files generated by mktables
+UNIDATAFILES = ..\lib\unicore\Canonical.pl ..\lib\unicore\Exact.pl \
+ ..\lib\unicore\Properties ..\lib\unicore\Decomposition.pl \
+ ..\lib\unicore\CombiningClass.pl ..\lib\unicore\Name.pl \
+ ..\lib\unicore\PVA.pl
+
+# Directories of Unicode data files generated by mktables
+UNIDATADIR1 = ..\lib\unicore\To
+UNIDATADIR2 = ..\lib\unicore\lib
+
+PERLEXE_ICO = .\perlexe.ico
+PERLEXE_RES = .\perlexe.res
+PERLDLL_RES =
+
# Nominate a target which causes extensions to be re-built
# This used to be $(PERLEXE), but at worst it is the .dll that they depend
# on and really only the interface - i.e. the .def file used to export symbols
@@ -701,6 +719,7 @@ PERLIOVIA = $(EXTDIR)\PerlIO\via\via XSAPITEST = $(EXTDIR)\XS\APItest\APItest
XSTYPEMAP = $(EXTDIR)\XS\Typemap\Typemap
UNICODENORMALIZE = $(EXTDIR)\Unicode\Normalize\Normalize
+WIN32_DIR = ext\Win32
SOCKET_DLL = $(AUTODIR)\Socket\Socket.dll
FCNTL_DLL = $(AUTODIR)\Fcntl\Fcntl.dll
@@ -731,6 +750,7 @@ PERLIOVIA_DLL = $(AUTODIR)\PerlIO\via\via.dll XSAPITEST_DLL = $(AUTODIR)\XS\APItest\APItest.dll
XSTYPEMAP_DLL = $(AUTODIR)\XS\Typemap\Typemap.dll
UNICODENORMALIZE_DLL = $(AUTODIR)\Unicode\Normalize\Normalize.dll
+WIN32_DLL = $(AUTODIR)\Win32\Win32.dll
EXTENSION_C = \
$(SOCKET).c \
@@ -761,7 +781,8 @@ EXTENSION_C = \ $(PERLIOVIA).c \
$(XSAPITEST).c \
$(XSTYPEMAP).c \
- $(UNICODENORMALIZE).c
+ $(UNICODENORMALIZE).c \
+ $(WIN32_DIR).c
EXTENSION_DLL = \
$(SOCKET_DLL) \
@@ -792,7 +813,8 @@ EXTENSION_DLL = \ $(PERLIOVIA_DLL) \
$(XSAPITEST_DLL) \
$(XSTYPEMAP_DLL) \
- $(UNICODENORMALIZE_DLL)
+ $(UNICODENORMALIZE_DLL) \
+ $(WIN32_DLL)
POD2HTML = $(PODDIR)\pod2html
POD2MAN = $(PODDIR)\pod2man
@@ -831,7 +853,7 @@ CFG_VARS = \ # Top targets
#
-all : .\config.h $(GLOBEXE) $(MINIMOD) $(CONFIGPM) $(PERLEXE) \
+all : .\config.h $(GLOBEXE) $(MINIMOD) $(CONFIGPM) $(UNIDATAFILES) $(PERLEXE) \
$(X2P) Extensions
@echo Everything is up to date. '$(MAKE_BARE) test' to run test suite.
@@ -922,6 +944,11 @@ $(PERLDLL): perldll.def $(PERLDLL_OBJ) $(PERLDLL_RES) <<
$(XCOPY) $(PERLIMPLIB) $(COREDIR)
+$(PERLEXE_ICO): $(MINIPERL) makeico.pl
+ $(MINIPERL) makeico.pl > $@
+
+$(PERLEXE_RES): perlexe.rc $(PERLEXE_ICO)
+
$(MINIMOD) : $(MINIPERL) ..\minimod.pl
cd ..
miniperl minimod.pl > lib\ExtUtils\Miniperl.pm
@@ -981,9 +1008,20 @@ $(EXTDIR)\DynaLoader\dl_win32.xs: dl_win32.xs #----------------------------------------------------------------------------------
Extensions: buildext.pl $(PERLDEP) $(CONFIGPM)
$(MINIPERL) -I..\lib buildext.pl $(MAKE) $(PERLDEP) $(EXTDIR)
+ $(MINIPERL) -I..\lib buildext.pl $(MAKE) $(PERLDEP) ext
+
+# Note: The next two targets explicitly remove a "blibdirs.exists" file that
+# currerntly gets left behind, until CPAN RT Ticket #5616 is resolved.
Extensions_clean:
-if exist $(MINIPERL) $(MINIPERL) -I..\lib buildext.pl $(MAKE) $(PERLDEP) $(EXTDIR) clean
+ -if exist $(MINIPERL) $(MINIPERL) -I..\lib buildext.pl $(MAKE) $(PERLDEP) ext clean
+ -if exist $(EXTDIR)\SDBM_File\sdbm\blibdirs.exists del /f $(EXTDIR)\SDBM_File\sdbm\blibdirs.exists
+
+Extensions_realclean:
+ -if exist $(MINIPERL) $(MINIPERL) -I..\lib buildext.pl $(MAKE) $(PERLDEP) $(EXTDIR) realclean
+ -if exist $(MINIPERL) $(MINIPERL) -I..\lib buildext.pl $(MAKE) $(PERLDEP) ext realclean
+ -if exist $(EXTDIR)\SDBM_File\sdbm\blibdirs.exists del /f $(EXTDIR)\SDBM_File\sdbm\blibdirs.exists
#----------------------------------------------------------------------------------
@@ -1036,7 +1074,7 @@ utils: $(PERLEXE) $(X2P) copy ..\README.vms ..\pod\perlvms.pod
copy ..\README.vos ..\pod\perlvos.pod
copy ..\README.win32 ..\pod\perlwin32.pod
- copy ..\pod\perl583delta.pod ..\pod\perldelta.pod
+ copy ..\pod\perl585delta.pod ..\pod\perldelta.pod
$(MAKE) -f ..\win32\pod.mak converters
cd ..\lib
$(PERLEXE) lib_pm.PL
@@ -1048,45 +1086,48 @@ utils: $(PERLEXE) $(X2P) # the doubled rmdir calls are needed because older cmd shells
# don't understand /q
-distclean: clean
+distclean: realclean
-del /f $(MINIPERL) $(PERLEXE) $(PERLDLL) $(GLOBEXE) \
$(PERLIMPLIB) ..\miniperl.lib $(MINIMOD)
-del /f *.def *.map
-del /f $(EXTENSION_DLL)
-del /f $(EXTENSION_C) $(DYNALOADER).c $(ERRNO).pm
-del /f $(EXTDIR)\DynaLoader\dl_win32.xs
+ -del /f $(EXTDIR)\DynaLoader\DynaLoader.pm
+ -del /f $(EXTDIR)\DynaLoader\XSLoader.pm
+ -del /f $(LIBDIR)\Encode.pm $(LIBDIR)\encoding.pm $(LIBDIR)\Errno.pm
+ -del /f $(LIBDIR)\Config.pod $(LIBDIR)\POSIX.pod $(LIBDIR)\threads.pm
-del /f $(LIBDIR)\.exists $(LIBDIR)\attrs.pm $(LIBDIR)\DynaLoader.pm
- -del /f $(LIBDIR)\XSLoader.pm
+ -del /f $(LIBDIR)\XSLoader.pm $(LIBDIR)\lib.pm
-del /f $(LIBDIR)\Fcntl.pm $(LIBDIR)\IO.pm $(LIBDIR)\Opcode.pm
-del /f $(LIBDIR)\ops.pm $(LIBDIR)\Safe.pm
-del /f $(LIBDIR)\SDBM_File.pm $(LIBDIR)\Socket.pm $(LIBDIR)\POSIX.pm
-del /f $(LIBDIR)\B.pm $(LIBDIR)\O.pm $(LIBDIR)\re.pm
- -del /f $(LIBDIR)\Data\Dumper.pm $(LIBDIR)\ByteLoader.pm
+ -del /f $(LIBDIR)\ByteLoader.pm
-del /f $(LIBDIR)\Devel\Peek.pm $(LIBDIR)\Devel\DProf.pm
+ -del /f $(LIBDIR)\Devel\PPPort.pm
-del /f $(LIBDIR)\File\Glob.pm
-del /f $(LIBDIR)\Storable.pm
- -del /f $(LIBDIR)\Filter\Util\Call.pm
-del /f $(LIBDIR)\Digest\MD5.pm
+ -del /f $(LIBDIR)\PerlIO\encoding.pm
-del /f $(LIBDIR)\PerlIO\scalar.pm
-del /f $(LIBDIR)\PerlIO\via.pm
- -del /f $(LIBDIR)\MIME\Base64.pm
- -del /f $(LIBDIR)\MIME\QuotedPrint.pm
- -del /f $(LIBDIR)\List\Util.pm
- -del /f $(LIBDIR)\Scalar\Util.pm
+ -del /f $(LIBDIR)\Sys\Hostname.pm
+ -del /f $(LIBDIR)\Thread\Signal.pm $(LIBDIR)\Thread\Specific.pm
+ -del /f $(LIBDIR)\threads\shared.pm
-del /f $(LIBDIR)\Time\HiRes.pm
- -del /f $(LIBDIR)\XS\APItest.pm
- -del /f $(LIBDIR)\XS\Typemap.pm
-del /f $(LIBDIR)\Unicode\Normalize.pm
+ -del /f $(LIBDIR)\Win32.pm
-if exist $(LIBDIR)\IO rmdir /s /q $(LIBDIR)\IO
-if exist $(LIBDIR)\IO rmdir /s $(LIBDIR)\IO
-if exist $(LIBDIR)\B rmdir /s /q $(LIBDIR)\B
-if exist $(LIBDIR)\B rmdir /s $(LIBDIR)\B
-if exist $(LIBDIR)\Data rmdir /s /q $(LIBDIR)\Data
-if exist $(LIBDIR)\Data rmdir /s $(LIBDIR)\Data
+ -if exist $(LIBDIR)\Encode rmdir /s /q $(LIBDIR)\Encode
+ -if exist $(LIBDIR)\Encode rmdir /s $(LIBDIR)\Encode
-if exist $(LIBDIR)\Filter\Util rmdir /s /q $(LIBDIR)\Filter\Util
-if exist $(LIBDIR)\Filter\Util rmdir /s $(LIBDIR)\Filter\Util
- -if exist $(LIBDIR)\Digest rmdir /s /q $(LIBDIR)\Digest
- -if exist $(LIBDIR)\Digest rmdir /s $(LIBDIR)\Digest
-if exist $(LIBDIR)\MIME rmdir /s /q $(LIBDIR)\MIME
-if exist $(LIBDIR)\MIME rmdir /s $(LIBDIR)\MIME
-if exist $(LIBDIR)\List rmdir /s /q $(LIBDIR)\List
@@ -1095,8 +1136,7 @@ distclean: clean -if exist $(LIBDIR)\Scalar rmdir /s $(LIBDIR)\Scalar
-if exist $(LIBDIR)\XS rmdir /s /q $(LIBDIR)\XS
-if exist $(LIBDIR)\XS rmdir /s $(LIBDIR)\XS
- cd $(PODDIR)
- -del /f *.html *.bat checkpods \
+ -cd $(PODDIR) && del /f *.html *.bat checkpods \
perlaix.pod perlamiga.pod perlapollo.pod perlbeos.pod \
perlbs2000.pod perlce.pod perlcn.pod perlcygwin.pod \
perldelta.pod perldgux.pod perldos.pod perlepoc.pod \
@@ -1109,24 +1149,16 @@ distclean: clean perlwin32.pod \
pod2html pod2latex pod2man pod2text pod2usage \
podchecker podselect
- cd ..\utils
- -del /f h2ph splain perlbug pl2pm c2ph pstruct h2xs perldoc perlivp \
- dprofpp perlcc libnetcfg enc2xs piconv cpan xsubpp instmodsh prove
- -del /f *.bat
- cd ..\win32
- cd ..\x2p
- -del /f find2perl s2p psed
- -del /f *.bat
- cd ..\win32
+ -cd ..\utils && del /f h2ph splain perlbug pl2pm c2ph pstruct h2xs \
+ perldoc perlivp dprofpp perlcc libnetcfg enc2xs piconv cpan *.bat \
+ xsubpp instmodsh prove
+ -cd ..\x2p && del /f find2perl s2p psed *.bat
-del /f ..\config.sh ..\splittree.pl perlmain.c dlutils.c config.h.new
-del /f $(CONFIGPM)
-del /f bin\*.bat
- cd ..
- -del /s *.lib *.map *.pdb *.ilk *.bs *$(o) .exists pm_to_blib
- cd win32
- cd $(EXTDIR)
- -del /s *.def Makefile Makefile.old
- cd ..\win32
+ -del /f $(PERLEXE_ICO) perl.base
+ -cd .. && del /s *.lib *.map *.pdb *.ilk *.bs *$(o) .exists pm_to_blib
+ -cd $(EXTDIR) && del /s *.def Makefile Makefile.old
-if exist $(AUTODIR) rmdir /s /q $(AUTODIR)
-if exist $(AUTODIR) rmdir /s $(AUTODIR)
-if exist $(COREDIR) rmdir /s /q $(COREDIR)
@@ -1138,6 +1170,8 @@ installbare : utils $(PERLEXE) ..\installperl
if exist $(WPERLEXE) $(XCOPY) $(WPERLEXE) $(INST_BIN)\*.*
$(XCOPY) $(GLOBEXE) $(INST_BIN)\*.*
+ if exist ..\perl*.pdb $(XCOPY) ..\perl*.pdb $(INST_BIN)\*.*
+ if exist ..\x2p\a2p.pdb $(XCOPY) ..\x2p\a2p.pdb $(INST_BIN)\*.*
$(XCOPY) bin\*.bat $(INST_SCRIPT)\*.*
installhtml : doc
@@ -1148,14 +1182,18 @@ inst_lib : $(CONFIGPM) $(MINIPERL) -I..\lib ..\splittree.pl "../LIB" $(AUTODIR)
$(RCOPY) ..\lib $(INST_LIB)\*.*
-minitest : $(MINIPERL) $(GLOBEXE) $(CONFIGPM) utils
- $(XCOPY) $(MINIPERL) ..\t\perl.exe
+$(UNIDATAFILES) : $(MINIPERL) $(CONFIGPM) ..\lib\unicore\mktables
+ cd ..\lib\unicore && \
+ ..\$(MINIPERL) -I.. mktables
+
+minitest : $(MINIPERL) $(GLOBEXE) $(CONFIGPM) utils $(UNIDATAFILES)
+ $(XCOPY) $(MINIPERL) ..\t\$(NULL)
+ if exist ..\t\perl.exe del /f ..\t\perl.exe
+ rename ..\t\miniperl.exe perl.exe
$(XCOPY) $(GLOBEXE) ..\t\$(NULL)
attrib -r ..\t\*.*
- copy test ..\t
- cd ..\t
- $(MINIPERL) -I..\lib test base/*.t comp/*.t cmd/*.t io/*.t op/*.t pragma/*.t
- cd ..\win32
+ cd ..\t && \
+ $(MINIPERL) -I..\lib harness base/*.t comp/*.t cmd/*.t io/*.t op/*.t pragma/*.t
test-prep : all utils
$(XCOPY) $(PERLEXE) ..\t\$(NULL)
@@ -1181,7 +1219,9 @@ _test : $(PERLEXE) -I..\lib harness
cd ..\win32
-clean : Extensions_clean
+# the doubled rmdir calls are needed because older cmd shells
+# don't understand /q
+_clean :
-@$(DEL) miniperlmain$(o)
-@$(DEL) $(MINIPERL)
-@$(DEL) perlglob$(o)
@@ -1195,6 +1235,11 @@ clean : Extensions_clean -@$(DEL) $(CORE_OBJ)
-if exist $(MINIDIR) rmdir /s /q $(MINIDIR)
-if exist $(MINIDIR) rmdir /s $(MINIDIR)
+ -if exist $(UNIDATADIR1) rmdir /s /q $(UNIDATADIR1)
+ -if exist $(UNIDATADIR1) rmdir /s $(UNIDATADIR1)
+ -if exist $(UNIDATADIR2) rmdir /s /q $(UNIDATADIR2)
+ -if exist $(UNIDATADIR2) rmdir /s $(UNIDATADIR2)
+ -@$(DEL) $(UNIDATAFILES)
-@$(DEL) $(WIN32_OBJ)
-@$(DEL) $(DLL_OBJ)
-@$(DEL) $(X2P_OBJ)
@@ -1204,6 +1249,10 @@ clean : Extensions_clean -@$(DEL) *.ilk
-@$(DEL) *.pdb
+clean : Extensions_clean _clean
+
+realclean : Extensions_realclean _clean
+
# Handy way to run perlbug -ok without having to install and run the
# installed perlbug. We don't re-run the tests here - we trust the user.
# Please *don't* use this unless all tests pass.
diff --git a/gnu/usr.bin/perl/win32/config.bc b/gnu/usr.bin/perl/win32/config.bc index 7613756c4d4..8f3edcff3c6 100644 --- a/gnu/usr.bin/perl/win32/config.bc +++ b/gnu/usr.bin/perl/win32/config.bc @@ -771,7 +771,6 @@ pg='' phostname='hostname' pidtype='int' plibpth='' -pm_apiversion='5.005' pmake='' pr='' prefix='~INST_TOP~' @@ -950,7 +949,6 @@ versiononly='undef' vi='' voidflags='15' xlibpth='/usr/lib/386 /lib/386' -xs_apiversion='5.6.0' zcat='' zip='zip' PERL_REVISION='~PERL_REVISION~' diff --git a/gnu/usr.bin/perl/win32/config.vc b/gnu/usr.bin/perl/win32/config.vc index 25c2f45f716..450c2f8c8d8 100644 --- a/gnu/usr.bin/perl/win32/config.vc +++ b/gnu/usr.bin/perl/win32/config.vc @@ -770,7 +770,6 @@ pg='' phostname='hostname' pidtype='int' plibpth='' -pm_apiversion='5.005' pmake='' pr='' prefix='~INST_TOP~' @@ -949,7 +948,6 @@ versiononly='undef' vi='' voidflags='15' xlibpth='/usr/lib/386 /lib/386' -xs_apiversion='5.6.0' zcat='' zip='zip' PERL_REVISION='~PERL_REVISION~' diff --git a/gnu/usr.bin/perl/win32/config_H.bc b/gnu/usr.bin/perl/win32/config_H.bc index 6892af670f6..8f44ea486db 100644 --- a/gnu/usr.bin/perl/win32/config_H.bc +++ b/gnu/usr.bin/perl/win32/config_H.bc @@ -7,7 +7,7 @@ * that running config_h.SH again will wipe out any changes you've made. * For a more permanent change edit undef and rerun config_h.SH. * - * $Id: config_H.bc,v 1.6 2003/12/03 03:02:51 millert Exp $ + * $Id: config_H.bc,v 1.7 2004/04/07 21:33:12 millert Exp $ */ /* @@ -1344,7 +1344,7 @@ * 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 "c:\\perl\\5.8.3\\lib\\MSWin32-x86-multi-thread" /**/ +#define ARCHLIB "c:\\perl\\5.8.5\\lib\\MSWin32-x86-multi-thread" /**/ /*#define ARCHLIB_EXP "" /**/ /* BIN: @@ -1355,8 +1355,8 @@ * This symbol is the filename expanded version of the BIN symbol, for * programs that do not want to deal with that at run-time. */ -#define BIN "c:\\perl\\5.8.3\\bin\\MSWin32-x86-multi-thread" /**/ -#define BIN_EXP "c:\\perl\\5.8.3\\bin\\MSWin32-x86-multi-thread" /**/ +#define BIN "c:\\perl\\5.8.5\\bin\\MSWin32-x86-multi-thread" /**/ +#define BIN_EXP "c:\\perl\\5.8.5\\bin\\MSWin32-x86-multi-thread" /**/ /* PERL_INC_VERSION_LIST: * This variable specifies the list of subdirectories in over @@ -1393,8 +1393,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 "c:\\perl\\5.8.3\\lib" /**/ -#define PRIVLIB_EXP (win32_get_privlib("5.8.3")) /**/ +#define PRIVLIB "c:\\perl\\5.8.5\\lib" /**/ +#define PRIVLIB_EXP (win32_get_privlib("5.8.5")) /**/ /* SITEARCH: * This symbol contains the name of the private library for this package. @@ -1411,7 +1411,7 @@ * 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 "c:\\perl\\site\\5.8.3\\lib\\MSWin32-x86-multi-thread" /**/ +#define SITEARCH "c:\\perl\\site\\5.8.5\\lib\\MSWin32-x86-multi-thread" /**/ /*#define SITEARCH_EXP "" /**/ /* SITELIB: @@ -1434,8 +1434,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 "c:\\perl\\site\\5.8.3\\lib" /**/ -#define SITELIB_EXP (win32_get_sitelib("5.8.3")) /**/ +#define SITELIB "c:\\perl\\site\\5.8.5\\lib" /**/ +#define SITELIB_EXP (win32_get_sitelib("5.8.5")) /**/ #define SITELIB_STEM "" /**/ /* PERL_VENDORARCH: @@ -2156,6 +2156,11 @@ */ /*#define MYMALLOC /**/ +/* PERL_MALLOC_WRAP: + * This symbol, if defined, indicates that we'd like malloc wrap checks. + */ +/*#define PERL_MALLOC_WRAP /**/ + /* CAN_PROTOTYPE: * If defined, this macro indicates that the C compiler can handle * function prototypes. @@ -3357,41 +3362,6 @@ /*#define USE_SOCKS /**/ #endif -/* PERL_XS_APIVERSION: - * This variable contains the version of the oldest perl binary - * compatible with the present perl. perl.c:incpush() and - * lib/lib.pm will automatically search in c:\\perl\\site\\5.8.3\\lib\\MSWin32-x86-multi-thread for older - * directories across major versions back to xs_apiversion. - * This is only useful if you have a perl library directory tree - * structured like the default one. - * See INSTALL for how this works. - * The versioned site_perl directory was introduced in 5.005, - * so that is the lowest possible value. - * Since this can depend on compile time options - * it is set by Configure. Other non-default sources - * of potential incompatibility, such as multiplicity, threads, - * debugging, 64bits, sfio, etc., are not checked for currently, - * though in principle we could go snooping around in old - * Config.pm files. - */ -/* PERL_PM_APIVERSION: - * This variable contains the version of the oldest perl - * compatible with the present perl. (That is, pure perl modules - * written for pm_apiversion will still work for the current - * version). perl.c:incpush() and lib/lib.pm will automatically - * search in c:\\perl\\site\\5.8.3\\lib for older directories across major versions - * back to pm_apiversion. This is only useful if you have a perl - * library directory tree structured like the default one. The - * versioned site_perl library was introduced in 5.005, so that's - * the default setting for this variable. It's hard to imagine - * it changing before Perl6. It is included here for symmetry - * with xs_apiveprsion -- the searching algorithms will - * (presumably) be similar. - * See the INSTALL file for how this works. - */ -#define PERL_XS_APIVERSION "5.6.0" -#define PERL_PM_APIVERSION "5.005" - /* HAS_DRAND48_PROTO: * This symbol, if defined, indicates that the system provides * a prototype for the drand48() function. Otherwise, it is up diff --git a/gnu/usr.bin/perl/win32/config_H.gc b/gnu/usr.bin/perl/win32/config_H.gc index 4a0cca5ecd8..014f9db6849 100644 --- a/gnu/usr.bin/perl/win32/config_H.gc +++ b/gnu/usr.bin/perl/win32/config_H.gc @@ -7,7 +7,7 @@ * that running config_h.SH again will wipe out any changes you've made. * For a more permanent change edit undef and rerun config_h.SH. * - * $Id: config_H.gc,v 1.6 2003/12/03 03:02:51 millert Exp $ + * $Id: config_H.gc,v 1.7 2004/04/07 21:33:12 millert Exp $ */ /* @@ -1344,7 +1344,7 @@ * 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 "c:\\perl\\5.8.3\\lib\\MSWin32-x86-multi-thread" /**/ +#define ARCHLIB "c:\\perl\\5.8.5\\lib\\MSWin32-x86-multi-thread" /**/ /*#define ARCHLIB_EXP "" /**/ /* BIN: @@ -1355,8 +1355,8 @@ * This symbol is the filename expanded version of the BIN symbol, for * programs that do not want to deal with that at run-time. */ -#define BIN "c:\\perl\\5.8.3\\bin\\MSWin32-x86-multi-thread" /**/ -#define BIN_EXP "c:\\perl\\5.8.3\\bin\\MSWin32-x86-multi-thread" /**/ +#define BIN "c:\\perl\\5.8.5\\bin\\MSWin32-x86-multi-thread" /**/ +#define BIN_EXP "c:\\perl\\5.8.5\\bin\\MSWin32-x86-multi-thread" /**/ /* PERL_INC_VERSION_LIST: * This variable specifies the list of subdirectories in over @@ -1393,8 +1393,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 "c:\\perl\\5.8.3\\lib" /**/ -#define PRIVLIB_EXP (win32_get_privlib("5.8.3")) /**/ +#define PRIVLIB "c:\\perl\\5.8.5\\lib" /**/ +#define PRIVLIB_EXP (win32_get_privlib("5.8.5")) /**/ /* SITEARCH: * This symbol contains the name of the private library for this package. @@ -1411,7 +1411,7 @@ * 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 "c:\\perl\\site\\5.8.3\\lib\\MSWin32-x86-multi-thread" /**/ +#define SITEARCH "c:\\perl\\site\\5.8.5\\lib\\MSWin32-x86-multi-thread" /**/ /*#define SITEARCH_EXP "" /**/ /* SITELIB: @@ -1434,8 +1434,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 "c:\\perl\\site\\5.8.3\\lib" /**/ -#define SITELIB_EXP (win32_get_sitelib("5.8.3")) /**/ +#define SITELIB "c:\\perl\\site\\5.8.5\\lib" /**/ +#define SITELIB_EXP (win32_get_sitelib("5.8.5")) /**/ #define SITELIB_STEM "" /**/ /* PERL_VENDORARCH: @@ -2156,6 +2156,11 @@ */ /*#define MYMALLOC /**/ +/* PERL_MALLOC_WRAP: + * This symbol, if defined, indicates that we'd like malloc wrap checks. + */ +#define PERL_MALLOC_WRAP /**/ + /* CAN_PROTOTYPE: * If defined, this macro indicates that the C compiler can handle * function prototypes. @@ -3357,41 +3362,6 @@ /*#define USE_SOCKS /**/ #endif -/* PERL_XS_APIVERSION: - * This variable contains the version of the oldest perl binary - * compatible with the present perl. perl.c:incpush() and - * lib/lib.pm will automatically search in c:\\perl\\site\\5.8.3\\lib\\MSWin32-x86-multi-thread for older - * directories across major versions back to xs_apiversion. - * This is only useful if you have a perl library directory tree - * structured like the default one. - * See INSTALL for how this works. - * The versioned site_perl directory was introduced in 5.005, - * so that is the lowest possible value. - * Since this can depend on compile time options - * it is set by Configure. Other non-default sources - * of potential incompatibility, such as multiplicity, threads, - * debugging, 64bits, sfio, etc., are not checked for currently, - * though in principle we could go snooping around in old - * Config.pm files. - */ -/* PERL_PM_APIVERSION: - * This variable contains the version of the oldest perl - * compatible with the present perl. (That is, pure perl modules - * written for pm_apiversion will still work for the current - * version). perl.c:incpush() and lib/lib.pm will automatically - * search in c:\\perl\\site\\5.8.3\\lib for older directories across major versions - * back to pm_apiversion. This is only useful if you have a perl - * library directory tree structured like the default one. The - * versioned site_perl library was introduced in 5.005, so that's - * the default setting for this variable. It's hard to imagine - * it changing before Perl6. It is included here for symmetry - * with xs_apiveprsion -- the searching algorithms will - * (presumably) be similar. - * See the INSTALL file for how this works. - */ -#define PERL_XS_APIVERSION "5.6.0" -#define PERL_PM_APIVERSION "5.005" - /* HAS_DRAND48_PROTO: * This symbol, if defined, indicates that the system provides * a prototype for the drand48() function. Otherwise, it is up diff --git a/gnu/usr.bin/perl/win32/config_H.vc b/gnu/usr.bin/perl/win32/config_H.vc index 12933dc9e2e..ec38924c9db 100644 --- a/gnu/usr.bin/perl/win32/config_H.vc +++ b/gnu/usr.bin/perl/win32/config_H.vc @@ -7,7 +7,7 @@ * that running config_h.SH again will wipe out any changes you've made. * For a more permanent change edit undef and rerun config_h.SH. * - * $Id: config_H.vc,v 1.6 2003/12/03 03:02:52 millert Exp $ + * $Id: config_H.vc,v 1.7 2004/04/07 21:33:12 millert Exp $ */ /* @@ -1344,7 +1344,7 @@ * 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 "c:\\perl\\5.8.3\\lib\\MSWin32-x86-multi-thread" /**/ +#define ARCHLIB "c:\\perl\\5.8.5\\lib\\MSWin32-x86-multi-thread" /**/ /*#define ARCHLIB_EXP "" /**/ /* BIN: @@ -1355,8 +1355,8 @@ * This symbol is the filename expanded version of the BIN symbol, for * programs that do not want to deal with that at run-time. */ -#define BIN "c:\\perl\\5.8.3\\bin\\MSWin32-x86-multi-thread" /**/ -#define BIN_EXP "c:\\perl\\5.8.3\\bin\\MSWin32-x86-multi-thread" /**/ +#define BIN "c:\\perl\\5.8.5\\bin\\MSWin32-x86-multi-thread" /**/ +#define BIN_EXP "c:\\perl\\5.8.5\\bin\\MSWin32-x86-multi-thread" /**/ /* PERL_INC_VERSION_LIST: * This variable specifies the list of subdirectories in over @@ -1393,8 +1393,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 "c:\\perl\\5.8.3\\lib" /**/ -#define PRIVLIB_EXP (win32_get_privlib("5.8.3")) /**/ +#define PRIVLIB "c:\\perl\\5.8.5\\lib" /**/ +#define PRIVLIB_EXP (win32_get_privlib("5.8.5")) /**/ /* SITEARCH: * This symbol contains the name of the private library for this package. @@ -1411,7 +1411,7 @@ * 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 "c:\\perl\\site\\5.8.3\\lib\\MSWin32-x86-multi-thread" /**/ +#define SITEARCH "c:\\perl\\site\\5.8.5\\lib\\MSWin32-x86-multi-thread" /**/ /*#define SITEARCH_EXP "" /**/ /* SITELIB: @@ -1434,8 +1434,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 "c:\\perl\\site\\5.8.3\\lib" /**/ -#define SITELIB_EXP (win32_get_sitelib("5.8.3")) /**/ +#define SITELIB "c:\\perl\\site\\5.8.5\\lib" /**/ +#define SITELIB_EXP (win32_get_sitelib("5.8.5")) /**/ #define SITELIB_STEM "" /**/ /* PERL_VENDORARCH: @@ -2156,6 +2156,11 @@ */ /*#define MYMALLOC /**/ +/* PERL_MALLOC_WRAP: + * This symbol, if defined, indicates that we'd like malloc wrap checks. + */ +#define PERL_MALLOC_WRAP /**/ + /* CAN_PROTOTYPE: * If defined, this macro indicates that the C compiler can handle * function prototypes. @@ -3357,41 +3362,6 @@ /*#define USE_SOCKS /**/ #endif -/* PERL_XS_APIVERSION: - * This variable contains the version of the oldest perl binary - * compatible with the present perl. perl.c:incpush() and - * lib/lib.pm will automatically search in c:\\perl\\site\\5.8.3\\lib\\MSWin32-x86-multi-thread for older - * directories across major versions back to xs_apiversion. - * This is only useful if you have a perl library directory tree - * structured like the default one. - * See INSTALL for how this works. - * The versioned site_perl directory was introduced in 5.005, - * so that is the lowest possible value. - * Since this can depend on compile time options - * it is set by Configure. Other non-default sources - * of potential incompatibility, such as multiplicity, threads, - * debugging, 64bits, sfio, etc., are not checked for currently, - * though in principle we could go snooping around in old - * Config.pm files. - */ -/* PERL_PM_APIVERSION: - * This variable contains the version of the oldest perl - * compatible with the present perl. (That is, pure perl modules - * written for pm_apiversion will still work for the current - * version). perl.c:incpush() and lib/lib.pm will automatically - * search in c:\\perl\\site\\5.8.3\\lib for older directories across major versions - * back to pm_apiversion. This is only useful if you have a perl - * library directory tree structured like the default one. The - * versioned site_perl library was introduced in 5.005, so that's - * the default setting for this variable. It's hard to imagine - * it changing before Perl6. It is included here for symmetry - * with xs_apiveprsion -- the searching algorithms will - * (presumably) be similar. - * See the INSTALL file for how this works. - */ -#define PERL_XS_APIVERSION "5.6.0" -#define PERL_PM_APIVERSION "5.005" - /* HAS_DRAND48_PROTO: * This symbol, if defined, indicates that the system provides * a prototype for the drand48() function. Otherwise, it is up diff --git a/gnu/usr.bin/perl/win32/makefile.mk b/gnu/usr.bin/perl/win32/makefile.mk index 060ba4e2375..701c69fe768 100644 --- a/gnu/usr.bin/perl/win32/makefile.mk +++ b/gnu/usr.bin/perl/win32/makefile.mk @@ -34,7 +34,7 @@ INST_TOP *= $(INST_DRV)\perl # versioned installation can be obtained by setting INST_TOP above to a
# path that includes an arbitrary version string.
#
-INST_VER *= \5.8.3
+#INST_VER *= \5.8.5
#
# Comment this out if you DON'T want your perl installation to have
@@ -45,7 +45,7 @@ INST_VER *= \5.8.3 # the same location. Commenting it out gives you a simpler
# installation that is easier to understand for beginners.
#
-INST_ARCH *= \$(ARCHNAME)
+#INST_ARCH *= \$(ARCHNAME)
#
# uncomment to enable multiple interpreters. This is need for fork()
@@ -99,14 +99,11 @@ USE_LARGE_FILES *= define # Visual C++ > 2.x and < 6.x
#CCTYPE *= MSVC
# Visual C++ >= 6.x
-CCTYPE *= MSVC60
+#CCTYPE *= MSVC60
# Borland 5.02 or later
#CCTYPE *= BORLAND
-# mingw32+gcc-2.95.2 or better
-#CCTYPE *= GCC
-# Uncomment this if you are using the latest MinGW release (2.0.0)
-# with gcc3.2
-#USE_GCC_V3_2 *= define
+# MinGW with gcc-2.95.2 or later
+CCTYPE *= GCC
#
# uncomment this if your Borland compiler is older than v5.4.
@@ -398,12 +395,9 @@ LINK_FLAGS += -L"$(CCLIBDIR)\Release" CC = gcc
LINK32 = g++
-.IF "$(USE_GCC_V3_2)" == "define"
-LINK32 = g++
-.END
LIB32 = ar rc
IMPLIB = dlltool
-RSC = rc
+RSC = windres
i = .i
o = .o
@@ -432,8 +426,8 @@ LIBFILES = $(CRYPT_LIB) $(LIBC) \ OPTIMIZE = -g -O2 -DDEBUGGING
LINK_DBG = -g
.ELSE
-OPTIMIZE = -g -O2
-LINK_DBG = -g
+OPTIMIZE = -s -O2
+LINK_DBG = -s
.ENDIF
CFLAGS = $(INCLUDES) $(DEFINES) $(LOCDEFS) $(OPTIMIZE)
@@ -469,9 +463,6 @@ LIBC = msvcrt.lib LIBC = PerlCRT.lib
.ENDIF
-PERLEXE_RES =
-PERLDLL_RES =
-
.IF "$(CFG)" == "Debug"
.IF "$(CCTYPE)" == "MSVC20"
OPTIMIZE = -Od -MD -Z7 -DDEBUGGING
@@ -480,8 +471,15 @@ OPTIMIZE = -O1 -MD -Zi -DDEBUGGING .ENDIF
LINK_DBG = -debug
.ELSE
-OPTIMIZE = -MD -DNDEBUG
-LINK_DBG = -release
+OPTIMIZE = -MD -Zi -DNDEBUG
+# we enable debug symbols in release builds also
+LINK_DBG = -debug -opt:ref,icf
+# you may want to enable this if you want COFF symbols in the executables
+# in addition to the PDB symbols. The default Dr. Watson that ships with
+# Windows can use the the former but not latter. The free WinDbg can be
+# installed to get better stack traces from just the PDB symbols, so we
+# avoid the bloat of COFF symbols by default.
+#LINK_DBG = $(LINK_DBG) -debugtype:both
.IF "$(WIN64)" == "define"
# enable Whole Program Optimizations (WPO) and Link Time Code Generation (LTCG)
OPTIMIZE += -Ox -GL
@@ -572,7 +570,11 @@ $(o).dll: .ENDIF
.rc.res:
+.IF "$(CCTYPE)" == "GCC"
+ $(RSC) --use-temp-file -i $< -o $@
+.ELSE
$(RSC) -i.. $<
+.ENDIF
#
# various targets
@@ -585,6 +587,20 @@ CONFIGPM = ..\lib\Config.pm MINIMOD = ..\lib\ExtUtils\Miniperl.pm
X2P = ..\x2p\a2p.exe
+# Unicode data files generated by mktables
+UNIDATAFILES = ..\lib\unicore\Canonical.pl ..\lib\unicore\Exact.pl \
+ ..\lib\unicore\Properties ..\lib\unicore\Decomposition.pl \
+ ..\lib\unicore\CombiningClass.pl ..\lib\unicore\Name.pl \
+ ..\lib\unicore\PVA.pl
+
+# Directories of Unicode data files generated by mktables
+UNIDATADIR1 = ..\lib\unicore\To
+UNIDATADIR2 = ..\lib\unicore\lib
+
+PERLEXE_ICO = .\perlexe.ico
+PERLEXE_RES = .\perlexe.res
+PERLDLL_RES =
+
# Nominate a target which causes extensions to be re-built
# This used to be $(PERLEXE), but at worst it is the .dll that they depend
# on and really only the interface - i.e. the .def file used to export symbols
@@ -801,7 +817,7 @@ DYNAMIC_EXT = Socket IO Fcntl Opcode SDBM_File POSIX attrs Thread B re \ Data/Dumper Devel/Peek ByteLoader Devel/DProf File/Glob \
Sys/Hostname Storable Filter/Util/Call Encode \
Digest/MD5 PerlIO/scalar MIME/Base64 Time/HiRes \
- Unicode/Normalize
+ Unicode/Normalize Win32
STATIC_EXT = DynaLoader
NONXS_EXT = Errno
@@ -867,7 +883,7 @@ RIGHTMAKE = #
all : .\config.h $(GLOBEXE) $(MINIPERL) $(MK2) \
- $(RIGHTMAKE) $(MINIMOD) $(CONFIGPM) $(PERLEXE) \
+ $(RIGHTMAKE) $(MINIMOD) $(CONFIGPM) $(UNIDATAFILES) $(PERLEXE) \
$(X2P) Extensions
$(DYNALOADER)$(o) : $(DYNALOADER).c $(CORE_H) $(EXTDIR)\DynaLoader\dlutils.c
@@ -1008,8 +1024,11 @@ perllib$(o) : perllib.c .\perlhost.h .\vdir.h .\vmem.h $(MINI_OBJ) : $(CORE_NOCFG_H)
$(WIN32_OBJ) : $(CORE_H)
+
$(CORE_OBJ) : $(CORE_H)
+
$(DLL_OBJ) : $(CORE_H)
+
$(X2P_OBJ) : $(CORE_H)
perldll.def : $(MINIPERL) $(CONFIGPM) ..\global.sym ..\pp.sym ..\makedef.pl
@@ -1042,6 +1061,11 @@ $(PERLDLL): perldll.def $(PERLDLL_OBJ) $(PERLDLL_RES) .ENDIF
$(XCOPY) $(PERLIMPLIB) $(COREDIR)
+$(PERLEXE_ICO): $(MINIPERL) makeico.pl
+ $(MINIPERL) makeico.pl > $@
+
+$(PERLEXE_RES): perlexe.rc $(PERLEXE_ICO)
+
$(MINIMOD) : $(MINIPERL) ..\minimod.pl
cd .. && miniperl minimod.pl > lib\ExtUtils\Miniperl.pm
@@ -1113,9 +1137,20 @@ $(EXTDIR)\DynaLoader\dl_win32.xs: dl_win32.xs #----------------------------------------------------------------------------------
Extensions : buildext.pl $(PERLDEP) $(CONFIGPM)
$(MINIPERL) -I..\lib buildext.pl $(MAKE) $(PERLDEP) $(EXTDIR)
+ $(MINIPERL) -I..\lib buildext.pl $(MAKE) $(PERLDEP) ext
+
+# Note: The next two targets explicitly remove a "blibdirs.exists" file that
+# currerntly gets left behind, until CPAN RT Ticket #5616 is resolved.
Extensions_clean :
-if exist $(MINIPERL) $(MINIPERL) -I..\lib buildext.pl $(MAKE) $(PERLDEP) $(EXTDIR) clean
+ -if exist $(MINIPERL) $(MINIPERL) -I..\lib buildext.pl $(MAKE) $(PERLDEP) ext clean
+ -if exist $(EXTDIR)\SDBM_File\sdbm\blibdirs.exists del /f $(EXTDIR)\SDBM_File\sdbm\blibdirs.exists
+
+Extensions_realclean :
+ -if exist $(MINIPERL) $(MINIPERL) -I..\lib buildext.pl $(MAKE) $(PERLDEP) $(EXTDIR) realclean
+ -if exist $(MINIPERL) $(MINIPERL) -I..\lib buildext.pl $(MAKE) $(PERLDEP) ext realclean
+ -if exist $(EXTDIR)\SDBM_File\sdbm\blibdirs.exists del /f $(EXTDIR)\SDBM_File\sdbm\blibdirs.exists
#----------------------------------------------------------------------------------
@@ -1166,7 +1201,7 @@ utils: $(PERLEXE) $(X2P) copy ..\README.vms ..\pod\perlvms.pod
copy ..\README.vos ..\pod\perlvos.pod
copy ..\README.win32 ..\pod\perlwin32.pod
- copy ..\pod\perl583delta.pod ..\pod\perldelta.pod
+ copy ..\pod\perl585delta.pod ..\pod\perldelta.pod
cd ..\pod && $(MAKE) -f ..\win32\pod.mak converters
cd ..\lib && $(PERLEXE) lib_pm.PL
$(PERLEXE) $(PL2BAT) $(UTILS)
@@ -1174,40 +1209,49 @@ utils: $(PERLEXE) $(X2P) # Note that the pod cleanup in this next section is parsed (and regenerated
# by pod/buildtoc so please check that script before making changes here
-distclean: clean
+# the doubled rmdir calls are needed because older cmd shells
+# don't understand /q
+distclean: realclean
-del /f $(MINIPERL) $(PERLEXE) $(PERLDLL) $(GLOBEXE) \
$(PERLIMPLIB) ..\miniperl$(a) $(MINIMOD)
-del /f *.def *.map
+ -del /f $(DYNALOADER).c
-del /f $(EXTDIR)\DynaLoader\dl_win32.xs
+ -del /f $(EXTDIR)\DynaLoader\DynaLoader.pm
+ -del /f $(EXTDIR)\DynaLoader\XSLoader.pm
+ -del /f $(LIBDIR)\Encode.pm $(LIBDIR)\encoding.pm $(LIBDIR)\Errno.pm
+ -del /f $(LIBDIR)\Config.pod $(LIBDIR)\POSIX.pod $(LIBDIR)\threads.pm
-del /f $(LIBDIR)\.exists $(LIBDIR)\attrs.pm $(LIBDIR)\DynaLoader.pm
- -del /f $(LIBDIR)\XSLoader.pm
+ -del /f $(LIBDIR)\XSLoader.pm $(LIBDIR)\lib.pm
-del /f $(LIBDIR)\Fcntl.pm $(LIBDIR)\IO.pm $(LIBDIR)\Opcode.pm
-del /f $(LIBDIR)\ops.pm $(LIBDIR)\Safe.pm
-del /f $(LIBDIR)\SDBM_File.pm $(LIBDIR)\Socket.pm $(LIBDIR)\POSIX.pm
-del /f $(LIBDIR)\B.pm $(LIBDIR)\O.pm $(LIBDIR)\re.pm
- -del /f $(LIBDIR)\Data\Dumper.pm $(LIBDIR)\ByteLoader.pm
- -del /f $(LIBDIR)\PerlIO\scalar.pm
+ -del /f $(LIBDIR)\ByteLoader.pm
-del /f $(LIBDIR)\Devel\Peek.pm $(LIBDIR)\Devel\DProf.pm
+ -del /f $(LIBDIR)\Devel\PPPort.pm
-del /f $(LIBDIR)\File\Glob.pm
-del /f $(LIBDIR)\Storable.pm
- -del /f $(LIBDIR)\Filter\Util\Call.pm
-del /f $(LIBDIR)\Digest\MD5.pm
- -del /f $(LIBDIR)\MIME\Base64.pm
- -del /f $(LIBDIR)\MIME\QuotedPrint.pm
+ -del /f $(LIBDIR)\PerlIO\encoding.pm
+ -del /f $(LIBDIR)\PerlIO\scalar.pm
+ -del /f $(LIBDIR)\PerlIO\via.pm
+ -del /f $(LIBDIR)\Sys\Hostname.pm
+ -del /f $(LIBDIR)\Thread\Signal.pm $(LIBDIR)\Thread\Specific.pm
+ -del /f $(LIBDIR)\threads\shared.pm
-del /f $(LIBDIR)\Time\HiRes.pm
- -del /f $(LIBDIR)\List\Util.pm
- -del /f $(LIBDIR)\Scalar\Util.pm
-del /f $(LIBDIR)\Unicode\Normalize.pm
+ -del /f $(LIBDIR)\Win32.pm
-if exist $(LIBDIR)\IO rmdir /s /q $(LIBDIR)\IO
-if exist $(LIBDIR)\IO rmdir /s $(LIBDIR)\IO
-if exist $(LIBDIR)\B rmdir /s /q $(LIBDIR)\B
-if exist $(LIBDIR)\B rmdir /s $(LIBDIR)\B
-if exist $(LIBDIR)\Data rmdir /s /q $(LIBDIR)\Data
-if exist $(LIBDIR)\Data rmdir /s $(LIBDIR)\Data
+ -if exist $(LIBDIR)\Encode rmdir /s /q $(LIBDIR)\Encode
+ -if exist $(LIBDIR)\Encode rmdir /s $(LIBDIR)\Encode
-if exist $(LIBDIR)\Filter\Util rmdir /s /q $(LIBDIR)\Filter\Util
-if exist $(LIBDIR)\Filter\Util rmdir /s $(LIBDIR)\Filter\Util
- -if exist $(LIBDIR)\Digest rmdir /s /q $(LIBDIR)\Digest
- -if exist $(LIBDIR)\Digest rmdir /s $(LIBDIR)\Digest
-if exist $(LIBDIR)\MIME rmdir /s /q $(LIBDIR)\MIME
-if exist $(LIBDIR)\MIME rmdir /s $(LIBDIR)\MIME
-if exist $(LIBDIR)\List rmdir /s /q $(LIBDIR)\List
@@ -1236,6 +1280,7 @@ distclean: clean -del /f ..\config.sh ..\splittree.pl perlmain.c dlutils.c config.h.new
-del /f $(CONFIGPM)
-del /f bin\*.bat
+ -del /f $(PERLEXE_ICO) perl.base
-cd .. && del /s *$(a) *.map *.pdb *.ilk *.bs *$(o) .exists pm_to_blib
-cd $(EXTDIR) && del /s *.def Makefile Makefile.old
-if exist $(AUTODIR) rmdir /s /q $(AUTODIR)
@@ -1249,6 +1294,8 @@ installbare : $(RIGHTMAKE) utils $(PERLEXE) ..\installperl
if exist $(WPERLEXE) $(XCOPY) $(WPERLEXE) $(INST_BIN)\*.*
$(XCOPY) $(GLOBEXE) $(INST_BIN)\*.*
+ if exist ..\perl*.pdb $(XCOPY) ..\perl*.pdb $(INST_BIN)\*.*
+ if exist ..\x2p\a2p.pdb $(XCOPY) ..\x2p\a2p.pdb $(INST_BIN)\*.*
$(XCOPY) bin\*.bat $(INST_SCRIPT)\*.*
installhtml : doc
@@ -1259,17 +1306,27 @@ inst_lib : $(CONFIGPM) $(MINIPERL) -I..\lib ..\splittree.pl "../LIB" $(AUTODIR)
$(RCOPY) ..\lib $(INST_LIB)\*.*
-minitest : $(MINIPERL) $(GLOBEXE) $(CONFIGPM) utils
- $(XCOPY) $(MINIPERL) ..\t\perl.exe
+# Move the rule for making $(UNIDATAFILES) into a separate target and leave the
+# actual rule here blank because dmake runs the rule here once for each of the
+# files listed in $(UNIDATAFILES)
+$(UNIDATAFILES) : make_unidatafiles
+
+make_unidatafiles : $(MINIPERL) $(CONFIGPM) ..\lib\unicore\mktables
+ cd ..\lib\unicore && \
+ ..\$(MINIPERL) -I.. mktables
+
+minitest : $(MINIPERL) $(GLOBEXE) $(CONFIGPM) $(UNIDATAFILES) utils
+ $(XCOPY) $(MINIPERL) ..\t\$(NULL)
+ if exist ..\t\perl.exe del /f ..\t\perl.exe
+ rename ..\t\miniperl.exe perl.exe
.IF "$(CCTYPE)" == "BORLAND"
$(XCOPY) $(GLOBBAT) ..\t\$(NULL)
.ELSE
$(XCOPY) $(GLOBEXE) ..\t\$(NULL)
.ENDIF
attrib -r ..\t\*.*
- copy test ..\t
cd ..\t && \
- $(MINIPERL) -I..\lib test base/*.t comp/*.t cmd/*.t io/*.t op/*.t pragma/*.t
+ $(MINIPERL) -I..\lib harness base/*.t comp/*.t cmd/*.t io/*.t op/*.t pragma/*.t
test-prep : all utils
$(XCOPY) $(PERLEXE) ..\t\$(NULL)
@@ -1297,7 +1354,9 @@ _test : $(RIGHTMAKE) .ENDIF
cd ..\t && $(PERLEXE) -I..\lib harness
-clean : Extensions_clean
+# the doubled rmdir calls are needed because older cmd shells
+# don't understand /q
+_clean :
-@erase miniperlmain$(o)
-@erase $(MINIPERL)
-@erase perlglob$(o)
@@ -1311,6 +1370,11 @@ clean : Extensions_clean -@erase $(CORE_OBJ)
-if exist $(MINIDIR) rmdir /s /q $(MINIDIR)
-if exist $(MINIDIR) rmdir /s $(MINIDIR)
+ -if exist $(UNIDATADIR1) rmdir /s /q $(UNIDATADIR1)
+ -if exist $(UNIDATADIR1) rmdir /s $(UNIDATADIR1)
+ -if exist $(UNIDATADIR2) rmdir /s /q $(UNIDATADIR2)
+ -if exist $(UNIDATADIR2) rmdir /s $(UNIDATADIR2)
+ -@erase $(UNIDATAFILES)
-@erase $(WIN32_OBJ)
-@erase $(DLL_OBJ)
-@erase $(X2P_OBJ)
@@ -1320,6 +1384,10 @@ clean : Extensions_clean -@erase *.ilk
-@erase *.pdb
+clean : Extensions_clean _clean
+
+realclean : Extensions_realclean _clean
+
# Handy way to run perlbug -ok without having to install and run the
# installed perlbug. We don't re-run the tests here - we trust the user.
# Please *don't* use this unless all tests pass.
diff --git a/gnu/usr.bin/perl/win32/pod.mak b/gnu/usr.bin/perl/win32/pod.mak index 39a91fc20b2..88abdeb4990 100644 --- a/gnu/usr.bin/perl/win32/pod.mak +++ b/gnu/usr.bin/perl/win32/pod.mak @@ -27,6 +27,8 @@ POD = \ perl581delta.pod \ perl582delta.pod \ perl583delta.pod \ + perl584delta.pod \ + perl585delta.pod \ perl58delta.pod \ perlapi.pod \ perlapio.pod \ @@ -126,6 +128,8 @@ MAN = \ perl581delta.man \ perl582delta.man \ perl583delta.man \ + perl584delta.man \ + perl585delta.man \ perl58delta.man \ perlapi.man \ perlapio.man \ @@ -225,6 +229,8 @@ HTML = \ perl581delta.html \ perl582delta.html \ perl583delta.html \ + perl584delta.html \ + perl585delta.html \ perl58delta.html \ perlapi.html \ perlapio.html \ @@ -324,6 +330,8 @@ TEX = \ perl581delta.tex \ perl582delta.tex \ perl583delta.tex \ + perl584delta.tex \ + perl585delta.tex \ perl58delta.tex \ perlapi.tex \ perlapio.tex \ diff --git a/gnu/usr.bin/perl/win32/win32.c b/gnu/usr.bin/perl/win32/win32.c index d532ee995ad..23e9e7f5386 100644 --- a/gnu/usr.bin/perl/win32/win32.c +++ b/gnu/usr.bin/perl/win32/win32.c @@ -1182,6 +1182,10 @@ win32_stat(const char *path, Stat_t *sbuf) /* FindFirstFile() and stat() are buggy with a trailing * backslash, so change it to a forward slash :-( */ case '\\': + if (l >= sizeof(buffer)) { + errno = ENAMETOOLONG; + return -1; + } strncpy(buffer, path, l-1); buffer[l - 1] = '/'; buffer[l] = '\0'; @@ -2578,10 +2582,14 @@ DllExport Off_t win32_ftell(FILE *pf) { #if defined(WIN64) || defined(USE_LARGE_FILES) +#if defined(__BORLAND__) /* buk */ + return win32_tell( fileno( pf ) ); +#else fpos_t pos; if (fgetpos(pf, &pos)) return -1; return (Off_t)pos; +#endif #else return ftell(pf); #endif @@ -2591,6 +2599,13 @@ DllExport int win32_fseek(FILE *pf, Off_t offset,int origin) { #if defined(WIN64) || defined(USE_LARGE_FILES) +#if defined(__BORLANDC__) /* buk */ + return win32_lseek( + fileno(pf), + offset, + origin + ); +#else fpos_t pos; switch (origin) { case SEEK_CUR: @@ -2610,6 +2625,7 @@ win32_fseek(FILE *pf, Off_t offset,int origin) return -1; } return fsetpos(pf, &offset); +#endif #else return fseek(pf, offset, origin); #endif @@ -2618,13 +2634,25 @@ win32_fseek(FILE *pf, Off_t offset,int origin) DllExport int win32_fgetpos(FILE *pf,fpos_t *p) { +#if defined(__BORLANDC__) && defined(USE_LARGE_FILES) /* buk */ + if( win32_tell(fileno(pf)) == -1L ) { + errno = EBADF; + return -1; + } + return 0; +#else return fgetpos(pf, p); +#endif } DllExport int win32_fsetpos(FILE *pf,const fpos_t *p) { +#if defined(__BORLANDC__) && defined(USE_LARGE_FILES) /* buk */ + return win32_lseek(fileno(pf), *p, SEEK_CUR); +#else return fsetpos(pf, p); +#endif } DllExport void @@ -3157,7 +3185,23 @@ DllExport Off_t win32_lseek(int fd, Off_t offset, int origin) { #if defined(WIN64) || defined(USE_LARGE_FILES) +#if defined(__BORLANDC__) /* buk */ + LARGE_INTEGER pos; + pos.QuadPart = offset; + pos.LowPart = SetFilePointer( + (HANDLE)_get_osfhandle(fd), + pos.LowPart, + &pos.HighPart, + origin + ); + if (pos.LowPart == INVALID_SET_FILE_POINTER && GetLastError() != NO_ERROR) { + pos.QuadPart = -1; + } + + return pos.QuadPart; +#else return _lseeki64(fd, offset, origin); +#endif #else return lseek(fd, offset, origin); #endif @@ -3167,7 +3211,24 @@ DllExport Off_t win32_tell(int fd) { #if defined(WIN64) || defined(USE_LARGE_FILES) +#if defined(__BORLANDC__) /* buk */ + LARGE_INTEGER pos; + pos.QuadPart = 0; + pos.LowPart = SetFilePointer( + (HANDLE)_get_osfhandle(fd), + pos.LowPart, + &pos.HighPart, + FILE_CURRENT + ); + if (pos.LowPart == INVALID_SET_FILE_POINTER && GetLastError() != NO_ERROR) { + pos.QuadPart = -1; + } + + return pos.QuadPart; + /* return tell(fd); */ +#else return _telli64(fd); +#endif #else return tell(fd); #endif @@ -3540,7 +3601,8 @@ create_command_line(char *cname, STRLEN clen, const char * const *args) || (IsWinNT() && stricmp(&cname[clen-4], ".cmd") == 0))) { bat_file = TRUE; - len += 3; + if (!IsWin95()) + len += 3; } else { char *exe = strrchr(cname, '/'); @@ -3577,7 +3639,7 @@ create_command_line(char *cname, STRLEN clen, const char * const *args) New(1310, cmd, len, char); ptr = cmd; - if (bat_file) { + if (bat_file && !IsWin95()) { *ptr++ = '"'; extra_quotes = TRUE; } @@ -3675,7 +3737,10 @@ qualified_path(const char *cmd) /* look in PATH */ pathstr = PerlEnv_getenv("PATH"); - New(0, fullcmd, MAX_PATH+1, char); + + /* worst case: PATH is a single directory; we need additional space + * to append "/", ".exe" and trailing "\0" */ + New(0, fullcmd, (pathstr ? strlen(pathstr) : 0) + cmdlen + 6, char); curfullcmd = fullcmd; while (1) { @@ -3716,17 +3781,13 @@ qualified_path(const char *cmd) if (*pathstr == '"') { /* foo;"baz;etc";bar */ pathstr++; /* skip initial '"' */ while (*pathstr && *pathstr != '"') { - if ((STRLEN)(curfullcmd-fullcmd) < MAX_PATH-cmdlen-5) - *curfullcmd++ = *pathstr; - pathstr++; + *curfullcmd++ = *pathstr++; } if (*pathstr) pathstr++; /* skip trailing '"' */ } else { - if ((STRLEN)(curfullcmd-fullcmd) < MAX_PATH-cmdlen-5) - *curfullcmd++ = *pathstr; - pathstr++; + *curfullcmd++ = *pathstr++; } } if (*pathstr) @@ -4561,6 +4622,9 @@ XS(w32_GetOSVersion) XSRETURN_EMPTY; } } + if (GIMME_V == G_SCALAR) { + XSRETURN_IV(osverw.dwPlatformId); + } W2AHELPER(osverw.szCSDVersion, szCSDVersion, sizeof(szCSDVersion)); XPUSHs(newSVpvn(szCSDVersion, strlen(szCSDVersion))); osver.dwMajorVersion = osverw.dwMajorVersion; @@ -4581,6 +4645,9 @@ XS(w32_GetOSVersion) XSRETURN_EMPTY; } } + if (GIMME_V == G_SCALAR) { + XSRETURN_IV(osver.dwPlatformId); + } XPUSHs(newSVpvn(osver.szCSDVersion, strlen(osver.szCSDVersion))); } XPUSHs(newSViv(osver.dwMajorVersion)); diff --git a/gnu/usr.bin/perl/win32/win32sck.c b/gnu/usr.bin/perl/win32/win32sck.c index 45c2102b3e6..9f47f50208c 100644 --- a/gnu/usr.bin/perl/win32/win32sck.c +++ b/gnu/usr.bin/perl/win32/win32sck.c @@ -497,7 +497,11 @@ my_fstat(int fd, Stat_t *sbufptr) int osf; if (!wsock_started || IsWinNT()) { #if defined(WIN64) || defined(USE_LARGE_FILES) +#if defined(__BORLANDC__) /* buk */ + return win32_fstat(fd, sbufptr ); +#else return _fstati64(fd, sbufptr); +#endif #else return fstat(fd, sbufptr); #endif @@ -525,7 +529,11 @@ my_fstat(int fd, Stat_t *sbufptr) } } #if defined(WIN64) || defined(USE_LARGE_FILES) +#if defined(__BORLANDC__) /* buk */ + return win32_fstat(fd, sbufptr ); +#else return _fstati64(fd, sbufptr); +#endif #else return fstat(fd, sbufptr); #endif diff --git a/gnu/usr.bin/perl/x2p/find2perl.PL b/gnu/usr.bin/perl/x2p/find2perl.PL index 679ca3c05c7..cc6c6d805d8 100644 --- a/gnu/usr.bin/perl/x2p/find2perl.PL +++ b/gnu/usr.bin/perl/x2p/find2perl.PL @@ -215,6 +215,7 @@ while (@ARGV) { my $prog = shift; $prog =~ s/'/\\'/g; $out .= tab . "eval {$prog}"; + $print_needed = 0; } elsif ($_ eq 'depth') { $find = 'finddepth'; next; @@ -265,7 +266,9 @@ while (@ARGV) { } if ($print_needed) { - $out .= "\n" . tab . '&& print("$name\n")'; + my $t = tab; + if ($t !~ /&&\s*$/) { $t .= '&& ' } + $out .= "\n" . $t . 'print("$name\n")'; } @@ -290,6 +293,14 @@ $declaresubs END +if (exists $init{doexec}) { + print <<'END'; +use Cwd (); +my $cwd = Cwd::cwd(); + +END +} + if (exists $init{ls}) { print <<'END'; my @rwx = qw(--- --x -w- -wx r-- r-x rw- rwx); @@ -358,9 +369,6 @@ END if (exists $init{doexec}) { print <<'END'; -use Cwd (); -my $cwd = Cwd::cwd(); - sub doexec ($@) { my $ok = shift; my @command = @_; # copy so we don't try to s/// aliases to constants |