summaryrefslogtreecommitdiff
path: root/lib/unicore
diff options
context:
space:
mode:
authorJarkko Hietaniemi <jhi@iki.fi>2002-01-16 05:37:29 +0000
committerJarkko Hietaniemi <jhi@iki.fi>2002-01-16 05:37:29 +0000
commit5beb625efdc42b7e3d999a21d111e88bdda8c811 (patch)
tree2f21349fcd88166563f1dcf922a8cca5ccb8c13a /lib/unicore
parentf780604f6351b73ad1ca2ee1f53f3cb5a7de6904 (diff)
downloadperl-5beb625efdc42b7e3d999a21d111e88bdda8c811.tar.gz
Jeffrey's Unicode adventure continues: unify the In/*.pl
and Is/*.pl to lib/*.pl, remove In.pl and Is.pl, introduce Canonical.pl and Exact.pl. p4raw-id: //depot/perl@14294
Diffstat (limited to 'lib/unicore')
-rw-r--r--lib/unicore/Canonical.pl704
-rw-r--r--lib/unicore/Exact.pl110
-rw-r--r--lib/unicore/In.pl219
-rw-r--r--lib/unicore/Is.pl375
-rw-r--r--lib/unicore/Is/LbrkAI.pl145
-rw-r--r--lib/unicore/Is/LbrkAL.pl425
-rw-r--r--lib/unicore/Is/LbrkB2.pl13
-rw-r--r--lib/unicore/Is/LbrkBA.pl25
-rw-r--r--lib/unicore/Is/LbrkBB.pl16
-rw-r--r--lib/unicore/Is/LbrkBK.pl14
-rw-r--r--lib/unicore/Is/LbrkCB.pl13
-rw-r--r--lib/unicore/Is/LbrkCL.pl54
-rw-r--r--lib/unicore/Is/LbrkCM.pl130
-rw-r--r--lib/unicore/Is/LbrkCR.pl13
-rw-r--r--lib/unicore/Is/LbrkEX.pl17
-rw-r--r--lib/unicore/Is/LbrkGL.pl18
-rw-r--r--lib/unicore/Is/LbrkHY.pl13
-rw-r--r--lib/unicore/Is/LbrkID.pl91
-rw-r--r--lib/unicore/Is/LbrkIN.pl13
-rw-r--r--lib/unicore/Is/LbrkIS.pl16
-rw-r--r--lib/unicore/Is/LbrkLF.pl13
-rw-r--r--lib/unicore/Is/LbrkNS.pl48
-rw-r--r--lib/unicore/Is/LbrkNU.pl32
-rw-r--r--lib/unicore/Is/LbrkOP.pl50
-rw-r--r--lib/unicore/Is/LbrkPO.pl23
-rw-r--r--lib/unicore/Is/LbrkPR.pl28
-rw-r--r--lib/unicore/Is/LbrkQU.pl20
-rw-r--r--lib/unicore/Is/LbrkSA.pl37
-rw-r--r--lib/unicore/Is/LbrkSG.pl13
-rw-r--r--lib/unicore/Is/LbrkSP.pl13
-rw-r--r--lib/unicore/Is/LbrkSY.pl13
-rw-r--r--lib/unicore/Is/LbrkXX.pl15
-rw-r--r--lib/unicore/Is/LbrkZW.pl13
-rw-r--r--lib/unicore/Makefile6
-rw-r--r--lib/unicore/Properties109
-rw-r--r--lib/unicore/To/Digit.pl2
-rw-r--r--lib/unicore/To/Fold.pl2
-rw-r--r--lib/unicore/To/Lower.pl2
-rw-r--r--lib/unicore/To/Title.pl2
-rw-r--r--lib/unicore/To/Upper.pl2
-rw-r--r--lib/unicore/lib/ASCII.pl (renamed from lib/unicore/Is/ASCII.pl)0
-rw-r--r--lib/unicore/lib/Alnum.pl (renamed from lib/unicore/Is/Alnum.pl)0
-rw-r--r--lib/unicore/lib/Alpha.pl (renamed from lib/unicore/Is/Alpha.pl)0
-rw-r--r--lib/unicore/lib/Alphabet.pl (renamed from lib/unicore/Is/Alphabet.pl)0
-rw-r--r--lib/unicore/lib/Any.pl (renamed from lib/unicore/Is/Any.pl)4
-rw-r--r--lib/unicore/lib/Arabic.pl (renamed from lib/unicore/Is/Arabic.pl)0
-rw-r--r--lib/unicore/lib/Armenian.pl (renamed from lib/unicore/Is/Armenian.pl)0
-rw-r--r--lib/unicore/lib/AsciiHex.pl (renamed from lib/unicore/Is/AsciiHex.pl)0
-rw-r--r--lib/unicore/lib/Assigned.pl (renamed from lib/unicore/Is/Assigned.pl)2
-rw-r--r--lib/unicore/lib/Bengali.pl (renamed from lib/unicore/Is/Bengali.pl)0
-rw-r--r--lib/unicore/lib/BidiAL.pl (renamed from lib/unicore/Is/BidiAL.pl)0
-rw-r--r--lib/unicore/lib/BidiAN.pl (renamed from lib/unicore/Is/BidiAN.pl)0
-rw-r--r--lib/unicore/lib/BidiB.pl (renamed from lib/unicore/Is/BidiB.pl)0
-rw-r--r--lib/unicore/lib/BidiBN.pl (renamed from lib/unicore/Is/BidiBN.pl)0
-rw-r--r--lib/unicore/lib/BidiCS.pl (renamed from lib/unicore/Is/BidiCS.pl)0
-rw-r--r--lib/unicore/lib/BidiCont.pl (renamed from lib/unicore/Is/BidiCont.pl)0
-rw-r--r--lib/unicore/lib/BidiEN.pl (renamed from lib/unicore/Is/BidiEN.pl)0
-rw-r--r--lib/unicore/lib/BidiES.pl (renamed from lib/unicore/Is/BidiES.pl)0
-rw-r--r--lib/unicore/lib/BidiET.pl (renamed from lib/unicore/Is/BidiET.pl)0
-rw-r--r--lib/unicore/lib/BidiL.pl (renamed from lib/unicore/Is/BidiL.pl)0
-rw-r--r--lib/unicore/lib/BidiLRE.pl (renamed from lib/unicore/Is/BidiLRE.pl)0
-rw-r--r--lib/unicore/lib/BidiLRO.pl (renamed from lib/unicore/Is/BidiLRO.pl)0
-rw-r--r--lib/unicore/lib/BidiNSM.pl (renamed from lib/unicore/Is/BidiNSM.pl)0
-rw-r--r--lib/unicore/lib/BidiON.pl (renamed from lib/unicore/Is/BidiON.pl)0
-rw-r--r--lib/unicore/lib/BidiPDF.pl (renamed from lib/unicore/Is/BidiPDF.pl)0
-rw-r--r--lib/unicore/lib/BidiR.pl (renamed from lib/unicore/Is/BidiR.pl)0
-rw-r--r--lib/unicore/lib/BidiRLE.pl (renamed from lib/unicore/Is/BidiRLE.pl)0
-rw-r--r--lib/unicore/lib/BidiRLO.pl (renamed from lib/unicore/Is/BidiRLO.pl)0
-rw-r--r--lib/unicore/lib/BidiS.pl (renamed from lib/unicore/Is/BidiS.pl)0
-rw-r--r--lib/unicore/lib/BidiWS.pl (renamed from lib/unicore/Is/BidiWS.pl)0
-rw-r--r--lib/unicore/lib/Blank.pl (renamed from lib/unicore/Is/Blank.pl)0
-rw-r--r--lib/unicore/lib/Bopomofo.pl (renamed from lib/unicore/Is/Bopomofo.pl)0
-rw-r--r--lib/unicore/lib/C.pl (renamed from lib/unicore/Is/C.pl)2
-rw-r--r--lib/unicore/lib/Canadian.pl (renamed from lib/unicore/Is/Canadian.pl)0
-rw-r--r--lib/unicore/lib/Canon.pl (renamed from lib/unicore/Is/Canon.pl)0
-rw-r--r--lib/unicore/lib/Cc.pl (renamed from lib/unicore/Is/Cc.pl)2
-rw-r--r--lib/unicore/lib/Cf.pl (renamed from lib/unicore/Is/Cf.pl)2
-rw-r--r--lib/unicore/lib/Cherokee.pl (renamed from lib/unicore/Is/Cherokee.pl)0
-rw-r--r--lib/unicore/lib/Cn.pl (renamed from lib/unicore/Is/Cn.pl)2
-rw-r--r--lib/unicore/lib/Cntrl.pl (renamed from lib/unicore/Is/Cntrl.pl)0
-rw-r--r--lib/unicore/lib/Co.pl (renamed from lib/unicore/Is/Co.pl)2
-rw-r--r--lib/unicore/lib/Common.pl (renamed from lib/unicore/Is/Common.pl)0
-rw-r--r--lib/unicore/lib/Compat.pl (renamed from lib/unicore/Is/Compat.pl)0
-rw-r--r--lib/unicore/lib/Cs.pl (renamed from lib/unicore/Is/Cs.pl)2
-rw-r--r--lib/unicore/lib/Cyrillic.pl (renamed from lib/unicore/Is/Cyrillic.pl)0
-rw-r--r--lib/unicore/lib/DCcircle.pl (renamed from lib/unicore/Is/DCcircle.pl)0
-rw-r--r--lib/unicore/lib/DCcompat.pl (renamed from lib/unicore/Is/DCcompat.pl)0
-rw-r--r--lib/unicore/lib/DCfinal.pl (renamed from lib/unicore/Is/DCfinal.pl)0
-rw-r--r--lib/unicore/lib/DCfont.pl (renamed from lib/unicore/Is/DCfont.pl)0
-rw-r--r--lib/unicore/lib/DCfracti.pl (renamed from lib/unicore/Is/DCfracti.pl)0
-rw-r--r--lib/unicore/lib/DCinitia.pl (renamed from lib/unicore/Is/DCinitia.pl)0
-rw-r--r--lib/unicore/lib/DCisolat.pl (renamed from lib/unicore/Is/DCisolat.pl)0
-rw-r--r--lib/unicore/lib/DCmedial.pl (renamed from lib/unicore/Is/DCmedial.pl)0
-rw-r--r--lib/unicore/lib/DCnarrow.pl (renamed from lib/unicore/Is/DCnarrow.pl)0
-rw-r--r--lib/unicore/lib/DCnoBrea.pl (renamed from lib/unicore/Is/DCnoBrea.pl)0
-rw-r--r--lib/unicore/lib/DCsmall.pl (renamed from lib/unicore/Is/DCsmall.pl)0
-rw-r--r--lib/unicore/lib/DCsquare.pl (renamed from lib/unicore/Is/DCsquare.pl)0
-rw-r--r--lib/unicore/lib/DCsub.pl (renamed from lib/unicore/Is/DCsub.pl)0
-rw-r--r--lib/unicore/lib/DCsuper.pl (renamed from lib/unicore/Is/DCsuper.pl)0
-rw-r--r--lib/unicore/lib/DCvertic.pl (renamed from lib/unicore/Is/DCvertic.pl)0
-rw-r--r--lib/unicore/lib/DCwide.pl (renamed from lib/unicore/Is/DCwide.pl)0
-rw-r--r--lib/unicore/lib/Dash.pl (renamed from lib/unicore/Is/Dash.pl)0
-rw-r--r--lib/unicore/lib/Deseret.pl (renamed from lib/unicore/Is/Deseret.pl)0
-rw-r--r--lib/unicore/lib/Devanaga.pl (renamed from lib/unicore/Is/Devanaga.pl)0
-rw-r--r--lib/unicore/lib/Diacriti.pl (renamed from lib/unicore/Is/Diacriti.pl)0
-rw-r--r--lib/unicore/lib/Digit.pl (renamed from lib/unicore/Is/Digit.pl)0
-rw-r--r--lib/unicore/lib/Ethiopic.pl (renamed from lib/unicore/Is/Ethiopic.pl)0
-rw-r--r--lib/unicore/lib/Extender.pl (renamed from lib/unicore/Is/Extender.pl)0
-rw-r--r--lib/unicore/lib/Georgian.pl (renamed from lib/unicore/Is/Georgian.pl)0
-rw-r--r--lib/unicore/lib/Gothic.pl (renamed from lib/unicore/Is/Gothic.pl)0
-rw-r--r--lib/unicore/lib/Graph.pl (renamed from lib/unicore/Is/Graph.pl)0
-rw-r--r--lib/unicore/lib/Greek.pl (renamed from lib/unicore/Is/Greek.pl)0
-rw-r--r--lib/unicore/lib/Gujarati.pl (renamed from lib/unicore/Is/Gujarati.pl)0
-rw-r--r--lib/unicore/lib/Gurmukhi.pl (renamed from lib/unicore/Is/Gurmukhi.pl)0
-rw-r--r--lib/unicore/lib/Han.pl (renamed from lib/unicore/Is/Han.pl)0
-rw-r--r--lib/unicore/lib/Hangul.pl (renamed from lib/unicore/Is/Hangul.pl)0
-rw-r--r--lib/unicore/lib/Hebrew.pl (renamed from lib/unicore/Is/Hebrew.pl)0
-rw-r--r--lib/unicore/lib/HexDigit.pl (renamed from lib/unicore/Is/HexDigit.pl)0
-rw-r--r--lib/unicore/lib/Hiragana.pl (renamed from lib/unicore/Is/Hiragana.pl)0
-rw-r--r--lib/unicore/lib/Hyphen.pl (renamed from lib/unicore/Is/Hyphen.pl)0
-rw-r--r--lib/unicore/lib/IdContin.pl (renamed from lib/unicore/Is/IdContin.pl)0
-rw-r--r--lib/unicore/lib/IdStart.pl (renamed from lib/unicore/Is/IdStart.pl)0
-rw-r--r--lib/unicore/lib/Ideograp.pl (renamed from lib/unicore/Is/Ideograp.pl)0
-rw-r--r--lib/unicore/lib/InAlphab.pl (renamed from lib/unicore/In/Alphabet.pl)0
-rw-r--r--lib/unicore/lib/InArabi2.pl (renamed from lib/unicore/In/ArabicPr.pl)0
-rw-r--r--lib/unicore/lib/InArabi3.pl (renamed from lib/unicore/In/ArabicP2.pl)0
-rw-r--r--lib/unicore/lib/InArabic.pl (renamed from lib/unicore/In/Arabic.pl)0
-rw-r--r--lib/unicore/lib/InArmeni.pl (renamed from lib/unicore/In/Armenian.pl)0
-rw-r--r--lib/unicore/lib/InArrows.pl (renamed from lib/unicore/In/Arrows.pl)0
-rw-r--r--lib/unicore/lib/InBasicL.pl (renamed from lib/unicore/In/BasicLat.pl)0
-rw-r--r--lib/unicore/lib/InBengal.pl (renamed from lib/unicore/In/Bengali.pl)0
-rw-r--r--lib/unicore/lib/InBlockE.pl (renamed from lib/unicore/In/BlockEle.pl)0
-rw-r--r--lib/unicore/lib/InBopom2.pl (renamed from lib/unicore/In/Bopomof2.pl)0
-rw-r--r--lib/unicore/lib/InBopomo.pl (renamed from lib/unicore/In/Bopomofo.pl)0
-rw-r--r--lib/unicore/lib/InBoxDra.pl (renamed from lib/unicore/In/BoxDrawi.pl)0
-rw-r--r--lib/unicore/lib/InBraill.pl (renamed from lib/unicore/In/BrailleP.pl)0
-rw-r--r--lib/unicore/lib/InByzant.pl (renamed from lib/unicore/In/Byzantin.pl)0
-rw-r--r--lib/unicore/lib/InCherok.pl (renamed from lib/unicore/In/Cherokee.pl)0
-rw-r--r--lib/unicore/lib/InCjkCo2.pl (renamed from lib/unicore/In/CjkComp2.pl)0
-rw-r--r--lib/unicore/lib/InCjkCo3.pl (renamed from lib/unicore/In/CjkComp3.pl)0
-rw-r--r--lib/unicore/lib/InCjkCo4.pl (renamed from lib/unicore/In/CjkComp4.pl)0
-rw-r--r--lib/unicore/lib/InCjkCom.pl (renamed from lib/unicore/In/CjkCompa.pl)0
-rw-r--r--lib/unicore/lib/InCjkRad.pl (renamed from lib/unicore/In/CjkRadic.pl)0
-rw-r--r--lib/unicore/lib/InCjkSym.pl (renamed from lib/unicore/In/CjkSymbo.pl)0
-rw-r--r--lib/unicore/lib/InCjkUn2.pl (renamed from lib/unicore/In/CjkUnif3.pl)0
-rw-r--r--lib/unicore/lib/InCjkUn3.pl (renamed from lib/unicore/In/CjkUnif2.pl)0
-rw-r--r--lib/unicore/lib/InCjkUni.pl (renamed from lib/unicore/In/CjkUnifi.pl)0
-rw-r--r--lib/unicore/lib/InCombi2.pl (renamed from lib/unicore/In/Combini3.pl)0
-rw-r--r--lib/unicore/lib/InCombi3.pl (renamed from lib/unicore/In/Combini2.pl)0
-rw-r--r--lib/unicore/lib/InCombin.pl (renamed from lib/unicore/In/Combinin.pl)0
-rw-r--r--lib/unicore/lib/InContro.pl (renamed from lib/unicore/In/ControlP.pl)0
-rw-r--r--lib/unicore/lib/InCurren.pl (renamed from lib/unicore/In/Currency.pl)0
-rw-r--r--lib/unicore/lib/InCyrill.pl (renamed from lib/unicore/In/Cyrillic.pl)0
-rw-r--r--lib/unicore/lib/InDesere.pl (renamed from lib/unicore/In/Deseret.pl)0
-rw-r--r--lib/unicore/lib/InDevana.pl (renamed from lib/unicore/In/Devanaga.pl)0
-rw-r--r--lib/unicore/lib/InDingba.pl (renamed from lib/unicore/In/Dingbats.pl)0
-rw-r--r--lib/unicore/lib/InEnclo2.pl (renamed from lib/unicore/In/Enclose2.pl)0
-rw-r--r--lib/unicore/lib/InEnclos.pl (renamed from lib/unicore/In/Enclosed.pl)0
-rw-r--r--lib/unicore/lib/InEthiop.pl (renamed from lib/unicore/In/Ethiopic.pl)0
-rw-r--r--lib/unicore/lib/InGenera.pl (renamed from lib/unicore/In/GeneralP.pl)0
-rw-r--r--lib/unicore/lib/InGeomet.pl (renamed from lib/unicore/In/Geometri.pl)0
-rw-r--r--lib/unicore/lib/InGeorgi.pl (renamed from lib/unicore/In/Georgian.pl)0
-rw-r--r--lib/unicore/lib/InGothic.pl (renamed from lib/unicore/In/Gothic.pl)0
-rw-r--r--lib/unicore/lib/InGreek.pl (renamed from lib/unicore/In/Greek.pl)0
-rw-r--r--lib/unicore/lib/InGreekE.pl (renamed from lib/unicore/In/GreekExt.pl)0
-rw-r--r--lib/unicore/lib/InGujara.pl (renamed from lib/unicore/In/Gujarati.pl)0
-rw-r--r--lib/unicore/lib/InGurmuk.pl (renamed from lib/unicore/In/Gurmukhi.pl)0
-rw-r--r--lib/unicore/lib/InHalfwi.pl (renamed from lib/unicore/In/Halfwidt.pl)0
-rw-r--r--lib/unicore/lib/InHangu2.pl (renamed from lib/unicore/In/HangulSy.pl)0
-rw-r--r--lib/unicore/lib/InHangu3.pl (renamed from lib/unicore/In/HangulCo.pl)0
-rw-r--r--lib/unicore/lib/InHangul.pl (renamed from lib/unicore/In/HangulJa.pl)0
-rw-r--r--lib/unicore/lib/InHebrew.pl (renamed from lib/unicore/In/Hebrew.pl)0
-rw-r--r--lib/unicore/lib/InHighPr.pl (renamed from lib/unicore/In/HighPriv.pl)0
-rw-r--r--lib/unicore/lib/InHighSu.pl (renamed from lib/unicore/In/HighSurr.pl)0
-rw-r--r--lib/unicore/lib/InHiraga.pl (renamed from lib/unicore/In/Hiragana.pl)0
-rw-r--r--lib/unicore/lib/InIdeogr.pl (renamed from lib/unicore/In/Ideograp.pl)0
-rw-r--r--lib/unicore/lib/InIpaExt.pl (renamed from lib/unicore/In/IpaExten.pl)0
-rw-r--r--lib/unicore/lib/InKanbun.pl (renamed from lib/unicore/In/Kanbun.pl)0
-rw-r--r--lib/unicore/lib/InKangxi.pl (renamed from lib/unicore/In/KangxiRa.pl)0
-rw-r--r--lib/unicore/lib/InKannad.pl (renamed from lib/unicore/In/Kannada.pl)0
-rw-r--r--lib/unicore/lib/InKataka.pl (renamed from lib/unicore/In/Katakana.pl)0
-rw-r--r--lib/unicore/lib/InKhmer.pl (renamed from lib/unicore/In/Khmer.pl)0
-rw-r--r--lib/unicore/lib/InLao.pl (renamed from lib/unicore/In/Lao.pl)0
-rw-r--r--lib/unicore/lib/InLatin1.pl (renamed from lib/unicore/In/Latin1Su.pl)0
-rw-r--r--lib/unicore/lib/InLatin2.pl (renamed from lib/unicore/In/LatinEx2.pl)0
-rw-r--r--lib/unicore/lib/InLatin3.pl (renamed from lib/unicore/In/LatinEx3.pl)0
-rw-r--r--lib/unicore/lib/InLatinE.pl (renamed from lib/unicore/In/LatinExt.pl)0
-rw-r--r--lib/unicore/lib/InLetter.pl (renamed from lib/unicore/In/Letterli.pl)0
-rw-r--r--lib/unicore/lib/InLowSur.pl (renamed from lib/unicore/In/LowSurro.pl)0
-rw-r--r--lib/unicore/lib/InMalaya.pl (renamed from lib/unicore/In/Malayala.pl)0
-rw-r--r--lib/unicore/lib/InMathe2.pl (renamed from lib/unicore/In/Mathema2.pl)0
-rw-r--r--lib/unicore/lib/InMathem.pl (renamed from lib/unicore/In/Mathemat.pl)0
-rw-r--r--lib/unicore/lib/InMisce2.pl (renamed from lib/unicore/In/Miscell2.pl)0
-rw-r--r--lib/unicore/lib/InMiscel.pl (renamed from lib/unicore/In/Miscella.pl)0
-rw-r--r--lib/unicore/lib/InMongol.pl (renamed from lib/unicore/In/Mongolia.pl)0
-rw-r--r--lib/unicore/lib/InMusica.pl (renamed from lib/unicore/In/MusicalS.pl)0
-rw-r--r--lib/unicore/lib/InMyanma.pl (renamed from lib/unicore/In/Myanmar.pl)0
-rw-r--r--lib/unicore/lib/InNumber.pl (renamed from lib/unicore/In/NumberFo.pl)0
-rw-r--r--lib/unicore/lib/InOgham.pl (renamed from lib/unicore/In/Ogham.pl)0
-rw-r--r--lib/unicore/lib/InOldIta.pl (renamed from lib/unicore/In/OldItali.pl)0
-rw-r--r--lib/unicore/lib/InOptica.pl (renamed from lib/unicore/In/OpticalC.pl)0
-rw-r--r--lib/unicore/lib/InOriya.pl (renamed from lib/unicore/In/Oriya.pl)0
-rw-r--r--lib/unicore/lib/InPrivat.pl (renamed from lib/unicore/In/PrivateU.pl)0
-rw-r--r--lib/unicore/lib/InRunic.pl (renamed from lib/unicore/In/Runic.pl)0
-rw-r--r--lib/unicore/lib/InSinhal.pl (renamed from lib/unicore/In/Sinhala.pl)0
-rw-r--r--lib/unicore/lib/InSmallF.pl (renamed from lib/unicore/In/SmallFor.pl)0
-rw-r--r--lib/unicore/lib/InSpacin.pl (renamed from lib/unicore/In/SpacingM.pl)0
-rw-r--r--lib/unicore/lib/InSpecia.pl (renamed from lib/unicore/In/Specials.pl)0
-rw-r--r--lib/unicore/lib/InSupers.pl (renamed from lib/unicore/In/Superscr.pl)0
-rw-r--r--lib/unicore/lib/InSyriac.pl (renamed from lib/unicore/In/Syriac.pl)0
-rw-r--r--lib/unicore/lib/InTags.pl (renamed from lib/unicore/In/Tags.pl)0
-rw-r--r--lib/unicore/lib/InTamil.pl (renamed from lib/unicore/In/Tamil.pl)0
-rw-r--r--lib/unicore/lib/InTelugu.pl (renamed from lib/unicore/In/Telugu.pl)0
-rw-r--r--lib/unicore/lib/InThaana.pl (renamed from lib/unicore/In/Thaana.pl)0
-rw-r--r--lib/unicore/lib/InThai.pl (renamed from lib/unicore/In/Thai.pl)0
-rw-r--r--lib/unicore/lib/InTibeta.pl (renamed from lib/unicore/In/Tibetan.pl)0
-rw-r--r--lib/unicore/lib/InUnifie.pl (renamed from lib/unicore/In/UnifiedC.pl)0
-rw-r--r--lib/unicore/lib/InYiRadi.pl (renamed from lib/unicore/In/YiRadica.pl)0
-rw-r--r--lib/unicore/lib/InYiSyll.pl (renamed from lib/unicore/In/YiSyllab.pl)0
-rw-r--r--lib/unicore/lib/Inherite.pl (renamed from lib/unicore/Is/Inherite.pl)0
-rw-r--r--lib/unicore/lib/JoinCont.pl (renamed from lib/unicore/Is/JoinCont.pl)0
-rw-r--r--lib/unicore/lib/Kannada.pl (renamed from lib/unicore/Is/Kannada.pl)0
-rw-r--r--lib/unicore/lib/Katakana.pl (renamed from lib/unicore/Is/Katakana.pl)0
-rw-r--r--lib/unicore/lib/Khmer.pl (renamed from lib/unicore/Is/Khmer.pl)0
-rw-r--r--lib/unicore/lib/L.pl (renamed from lib/unicore/Is/L.pl)2
-rw-r--r--lib/unicore/lib/L_.pl (renamed from lib/unicore/Is/L_.pl)0
-rw-r--r--lib/unicore/lib/Lao.pl (renamed from lib/unicore/Is/Lao.pl)0
-rw-r--r--lib/unicore/lib/Latin.pl (renamed from lib/unicore/Is/Latin.pl)0
-rw-r--r--lib/unicore/lib/Ll.pl (renamed from lib/unicore/Is/Ll.pl)2
-rw-r--r--lib/unicore/lib/Lm.pl (renamed from lib/unicore/Is/Lm.pl)2
-rw-r--r--lib/unicore/lib/Lo.pl (renamed from lib/unicore/Is/Lo.pl)2
-rw-r--r--lib/unicore/lib/Lower.pl (renamed from lib/unicore/Is/Lower.pl)0
-rw-r--r--lib/unicore/lib/Lowercas.pl (renamed from lib/unicore/Is/Lowercas.pl)0
-rw-r--r--lib/unicore/lib/Lt.pl (renamed from lib/unicore/Is/Lt.pl)2
-rw-r--r--lib/unicore/lib/Lu.pl (renamed from lib/unicore/Is/Lu.pl)2
-rw-r--r--lib/unicore/lib/M.pl (renamed from lib/unicore/Is/M.pl)2
-rw-r--r--lib/unicore/lib/Malayala.pl (renamed from lib/unicore/Is/Malayala.pl)0
-rw-r--r--lib/unicore/lib/Math.pl (renamed from lib/unicore/Is/Math.pl)0
-rw-r--r--lib/unicore/lib/Mc.pl (renamed from lib/unicore/Is/Mc.pl)2
-rw-r--r--lib/unicore/lib/Me.pl (renamed from lib/unicore/Is/Me.pl)2
-rw-r--r--lib/unicore/lib/Mirrored.pl (renamed from lib/unicore/Is/Mirrored.pl)0
-rw-r--r--lib/unicore/lib/Mn.pl (renamed from lib/unicore/Is/Mn.pl)2
-rw-r--r--lib/unicore/lib/Mongolia.pl (renamed from lib/unicore/Is/Mongolia.pl)0
-rw-r--r--lib/unicore/lib/Myanmar.pl (renamed from lib/unicore/Is/Myanmar.pl)0
-rw-r--r--lib/unicore/lib/N.pl (renamed from lib/unicore/Is/N.pl)2
-rw-r--r--lib/unicore/lib/Nd.pl (renamed from lib/unicore/Is/Nd.pl)2
-rw-r--r--lib/unicore/lib/Nl.pl (renamed from lib/unicore/Is/Nl.pl)2
-rw-r--r--lib/unicore/lib/No.pl (renamed from lib/unicore/Is/No.pl)2
-rw-r--r--lib/unicore/lib/Nonchara.pl (renamed from lib/unicore/Is/Nonchara.pl)0
-rw-r--r--lib/unicore/lib/Ogham.pl (renamed from lib/unicore/Is/Ogham.pl)0
-rw-r--r--lib/unicore/lib/OldItali.pl (renamed from lib/unicore/Is/OldItali.pl)0
-rw-r--r--lib/unicore/lib/Oriya.pl (renamed from lib/unicore/Is/Oriya.pl)0
-rw-r--r--lib/unicore/lib/OtherAlp.pl (renamed from lib/unicore/Is/OtherAlp.pl)0
-rw-r--r--lib/unicore/lib/OtherLow.pl (renamed from lib/unicore/Is/OtherLow.pl)0
-rw-r--r--lib/unicore/lib/OtherMat.pl (renamed from lib/unicore/Is/OtherMat.pl)0
-rw-r--r--lib/unicore/lib/OtherUpp.pl (renamed from lib/unicore/Is/OtherUpp.pl)0
-rw-r--r--lib/unicore/lib/P.pl (renamed from lib/unicore/Is/P.pl)2
-rw-r--r--lib/unicore/lib/Pc.pl (renamed from lib/unicore/Is/Pc.pl)2
-rw-r--r--lib/unicore/lib/Pd.pl (renamed from lib/unicore/Is/Pd.pl)2
-rw-r--r--lib/unicore/lib/Pe.pl (renamed from lib/unicore/Is/Pe.pl)2
-rw-r--r--lib/unicore/lib/Pf.pl (renamed from lib/unicore/Is/Pf.pl)2
-rw-r--r--lib/unicore/lib/Pi.pl (renamed from lib/unicore/Is/Pi.pl)2
-rw-r--r--lib/unicore/lib/Po.pl (renamed from lib/unicore/Is/Po.pl)2
-rw-r--r--lib/unicore/lib/Print.pl (renamed from lib/unicore/Is/Print.pl)0
-rw-r--r--lib/unicore/lib/Ps.pl (renamed from lib/unicore/Is/Ps.pl)2
-rw-r--r--lib/unicore/lib/Punct.pl (renamed from lib/unicore/Is/Punct.pl)0
-rw-r--r--lib/unicore/lib/Quotatio.pl (renamed from lib/unicore/Is/Quotatio.pl)0
-rw-r--r--lib/unicore/lib/Runic.pl (renamed from lib/unicore/Is/Runic.pl)0
-rw-r--r--lib/unicore/lib/S.pl (renamed from lib/unicore/Is/S.pl)2
-rw-r--r--lib/unicore/lib/Sc.pl (renamed from lib/unicore/Is/Sc.pl)2
-rw-r--r--lib/unicore/lib/Sinhala.pl (renamed from lib/unicore/Is/Sinhala.pl)0
-rw-r--r--lib/unicore/lib/Sk.pl (renamed from lib/unicore/Is/Sk.pl)2
-rw-r--r--lib/unicore/lib/Sm.pl (renamed from lib/unicore/Is/Sm.pl)2
-rw-r--r--lib/unicore/lib/So.pl (renamed from lib/unicore/Is/So.pl)2
-rw-r--r--lib/unicore/lib/Space.pl (renamed from lib/unicore/Is/Space.pl)0
-rw-r--r--lib/unicore/lib/SpacePer.pl (renamed from lib/unicore/Is/SpacePer.pl)0
-rw-r--r--lib/unicore/lib/Syriac.pl (renamed from lib/unicore/Is/Syriac.pl)0
-rw-r--r--lib/unicore/lib/Tamil.pl (renamed from lib/unicore/Is/Tamil.pl)0
-rw-r--r--lib/unicore/lib/Telugu.pl (renamed from lib/unicore/Is/Telugu.pl)0
-rw-r--r--lib/unicore/lib/Terminal.pl (renamed from lib/unicore/Is/Terminal.pl)0
-rw-r--r--lib/unicore/lib/Thaana.pl (renamed from lib/unicore/Is/Thaana.pl)0
-rw-r--r--lib/unicore/lib/Thai.pl (renamed from lib/unicore/Is/Thai.pl)0
-rw-r--r--lib/unicore/lib/Tibetan.pl (renamed from lib/unicore/Is/Tibetan.pl)0
-rw-r--r--lib/unicore/lib/Title.pl (renamed from lib/unicore/Is/Title.pl)0
-rw-r--r--lib/unicore/lib/Upper.pl (renamed from lib/unicore/Is/Upper.pl)0
-rw-r--r--lib/unicore/lib/Uppercas.pl (renamed from lib/unicore/Is/Uppercas.pl)0
-rw-r--r--lib/unicore/lib/WhiteSpa.pl (renamed from lib/unicore/Is/WhiteSpa.pl)0
-rw-r--r--lib/unicore/lib/Word.pl (renamed from lib/unicore/Is/Word.pl)0
-rw-r--r--lib/unicore/lib/XDigit.pl (renamed from lib/unicore/Is/XDigit.pl)0
-rw-r--r--lib/unicore/lib/Yi.pl (renamed from lib/unicore/Is/Yi.pl)0
-rw-r--r--lib/unicore/lib/Z.pl (renamed from lib/unicore/Is/Z.pl)2
-rw-r--r--lib/unicore/lib/Zl.pl (renamed from lib/unicore/Is/Zl.pl)2
-rw-r--r--lib/unicore/lib/Zp.pl (renamed from lib/unicore/Is/Zp.pl)2
-rw-r--r--lib/unicore/lib/Zs.pl (renamed from lib/unicore/Is/Zs.pl)2
-rw-r--r--lib/unicore/lib/_CanonDC.pl (renamed from lib/unicore/Is/_CanonDC.pl)0
-rw-r--r--lib/unicore/lib/_CaseIgn.pl (renamed from lib/unicore/Is/_CaseIgn.pl)0
-rw-r--r--lib/unicore/lib/_CombAbo.pl (renamed from lib/unicore/Is/_CombAbo.pl)0
-rw-r--r--lib/unicore/mktables699
298 files changed, 1425 insertions, 2221 deletions
diff --git a/lib/unicore/Canonical.pl b/lib/unicore/Canonical.pl
new file mode 100644
index 0000000000..ac1a660390
--- /dev/null
+++ b/lib/unicore/Canonical.pl
@@ -0,0 +1,704 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is built by ./mktables from e.g. Unicode.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',
+
+ # 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 => 'InCombi3',
+
+ # InCombiningHalfMarks
+ combininghalfmarks => 'InCombin',
+
+ # InCombiningMarksForSymbols
+ combiningmarksforsymbols => 'InCombi2',
+
+ common => 'Common',
+
+ # ConnectorPunctuation
+ connectorpunctuation => 'Pc',
+
+ control => 'Cc',
+
+ # InControlPictures
+ controlpictures => 'InContro',
+
+ # CurrencySymbol
+ currencysymbol => 'Sc',
+
+ # InCurrencySymbols
+ currencysymbols => 'InCurren',
+
+ cyrillic => 'Cyrillic',
+ dash => 'Dash',
+
+ # DashPunctuation
+ dashpunctuation => 'Pd',
+
+ # DecimalNumber
+ decimalnumber => 'Nd',
+
+ 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',
+ greek => 'Greek',
+
+ # InGreekExtended
+ greekextended => 'InGreekE',
+
+ gujarati => 'Gujarati',
+ gurmukhi => 'Gurmukhi',
+
+ # InHalfwidthAndFullwidthForms
+ halfwidthandfullwidthforms => 'InHalfwi',
+
+ han => 'Han',
+ hangul => 'Hangul',
+
+ # InHangulCompatibilityJamo
+ hangulcompatibilityjamo => 'InHangu3',
+
+ # InHangulJamo
+ hanguljamo => 'InHangul',
+
+ # InHangulSyllables
+ hangulsyllables => 'InHangu2',
+
+ hebrew => 'Hebrew',
+
+ # HexDigit
+ hexdigit => 'HexDigit',
+
+ # InHighPrivateUseSurrogates
+ highprivateusesurrogates => 'InHighPr',
+
+ # InHighSurrogates
+ highsurrogates => 'InHighSu',
+
+ hiragana => 'Hiragana',
+ hyphen => 'Hyphen',
+
+ # IdContinue
+ idcontinue => 'IdContin',
+
+ ideographic => 'Ideograp',
+
+ # InIdeographicDescriptionCharacters
+ ideographicdescriptioncharacters => 'InIdeogr',
+
+ # IdStart
+ idstart => 'IdStart',
+
+ # 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',
+
+ # 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 => 'InCombi3',
+
+ # InCombiningHalfMarks
+ incombininghalfmarks => 'InCombin',
+
+ # InCombiningMarksForSymbols
+ incombiningmarksforsymbols => 'InCombi2',
+
+ # InControlPictures
+ incontrolpictures => 'InContro',
+
+ # InCurrencySymbols
+ incurrencysymbols => 'InCurren',
+
+ # InCyrillic
+ incyrillic => 'InCyrill',
+
+ # 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',
+
+ # InGreek
+ ingreek => 'InGreek',
+
+ # InGreekExtended
+ ingreekextended => 'InGreekE',
+
+ # InGujarati
+ ingujarati => 'InGujara',
+
+ # InGurmukhi
+ ingurmukhi => 'InGurmuk',
+
+ # InHalfwidthAndFullwidthForms
+ inhalfwidthandfullwidthforms => 'InHalfwi',
+
+ # InHangulCompatibilityJamo
+ inhangulcompatibilityjamo => 'InHangu3',
+
+ # InHangulJamo
+ inhanguljamo => 'InHangul',
+
+ # InHangulSyllables
+ inhangulsyllables => 'InHangu2',
+
+ # 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',
+
+ # 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',
+
+ # 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',
+
+ # InPrivateUse
+ inprivateuse => 'InPrivat',
+
+ # InRunic
+ inrunic => 'InRunic',
+
+ # InSinhala
+ insinhala => 'InSinhal',
+
+ # InSmallFormVariants
+ insmallformvariants => 'InSmallF',
+
+ # InSpacingModifierLetters
+ inspacingmodifierletters => 'InSpacin',
+
+ # InSpecials
+ inspecials => 'InSpecia',
+
+ # InSuperscriptsAndSubscripts
+ insuperscriptsandsubscripts => 'InSupers',
+
+ # InSyriac
+ insyriac => 'InSyriac',
+
+ # InTags
+ intags => 'InTags',
+
+ # InTamil
+ intamil => 'InTamil',
+
+ # InTelugu
+ intelugu => 'InTelugu',
+
+ # InThaana
+ inthaana => 'InThaana',
+
+ # InThai
+ inthai => 'InThai',
+
+ # InTibetan
+ intibetan => 'InTibeta',
+
+ # InUnifiedCanadianAboriginalSyllabics
+ inunifiedcanadianaboriginalsyllabics => 'InUnifie',
+
+ # InYiRadicals
+ inyiradicals => 'InYiRadi',
+
+ # InYiSyllables
+ inyisyllables => 'InYiSyll',
+
+ # InIpaExtensions
+ ipaextensions => 'InIpaExt',
+
+ # JoinControl
+ joincontrol => 'JoinCont',
+
+ # InKanbun
+ kanbun => 'InKanbun',
+
+ # InKangxiRadicals
+ kangxiradicals => 'InKangxi',
+
+ kannada => 'Kannada',
+ katakana => 'Katakana',
+ 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',
+
+ lowercase => 'Lowercas',
+
+ # LowercaseLetter
+ lowercaseletter => 'Ll',
+
+ # InLowSurrogates
+ lowsurrogates => 'InLowSur',
+
+ malayalam => 'Malayala',
+ mark => 'M',
+ math => 'Math',
+
+ # InMathematicalAlphanumericSymbols
+ mathematicalalphanumericsymbols => 'InMathe2',
+
+ # InMathematicalOperators
+ mathematicaloperators => 'InMathem',
+
+ # MathSymbol
+ mathsymbol => 'Sm',
+
+ # 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',
+
+ # 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',
+
+ punctuation => 'P',
+
+ # QuotationMark
+ quotationmark => 'Quotatio',
+
+ runic => 'Runic',
+ separator => 'Z',
+ sinhala => 'Sinhala',
+
+ # InSmallFormVariants
+ smallformvariants => 'InSmallF',
+
+ # SpaceSeparator
+ spaceseparator => 'Zs',
+
+ # SpacingMark
+ spacingmark => 'Mc',
+
+ # InSpacingModifierLetters
+ spacingmodifierletters => 'InSpacin',
+
+ # InSpecials
+ specials => 'InSpecia',
+
+ # InSuperscriptsAndSubscripts
+ superscriptsandsubscripts => 'InSupers',
+
+ surrogate => 'Cs',
+ symbol => 'S',
+ syriac => 'Syriac',
+
+ # InTags
+ tags => 'InTags',
+
+ tamil => 'Tamil',
+ telugu => 'Telugu',
+
+ # TerminalPunctuation
+ terminalpunctuation => 'Terminal',
+
+ thaana => 'Thaana',
+ thai => 'Thai',
+ tibetan => 'Tibetan',
+
+ # TitlecaseLetter
+ titlecaseletter => 'Lt',
+
+ unassigned => 'Cn',
+
+ # InUnifiedCanadianAboriginalSyllabics
+ unifiedcanadianaboriginalsyllabics => 'InUnifie',
+
+ uppercase => 'Uppercas',
+
+ # UppercaseLetter
+ uppercaseletter => 'Lu',
+
+ # WhiteSpace
+ whitespace => 'WhiteSpa',
+
+ yi => 'Yi',
+
+ # InYiRadicals
+ yiradicals => 'InYiRadi',
+
+ # InYiSyllables
+ yisyllables => 'InYiSyll',
+
+);
+1
diff --git a/lib/unicore/Exact.pl b/lib/unicore/Exact.pl
new file mode 100644
index 0000000000..c72557a122
--- /dev/null
+++ b/lib/unicore/Exact.pl
@@ -0,0 +1,110 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is built by ./mktables from e.g. Unicode.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/lib/unicore/In.pl b/lib/unicore/In.pl
deleted file mode 100644
index 00f16e1855..0000000000
--- a/lib/unicore/In.pl
+++ /dev/null
@@ -1,219 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. Unicode.txt.
-# Any changes made here will be lost!
-
-##
-## Data in this file used by ../utf8_heavy.pl
-##
-
-## Mapping from name to filename in ./In
-%utf8::In = (
-);
-
-## Mappings from regex to filename in ./In/
-%utf8::InPat = (
- 'al' => {
- 'Alphabetic(?:[-_]|\s+)?Presentation(?:[-_]|\s+)?Forms' => 'Alphabet',
- },
- 'ar' => {
- 'Arabic(?:[-_]|\s+)?Presentation(?:[-_]|\s+)?Forms(?:[-_]|\s+)?A' => 'ArabicP2',
- 'Armenian' => 'Armenian',
- 'Arabic' => 'Arabic',
- 'Arrows' => 'Arrows',
- 'Arabic(?:[-_]|\s+)?Presentation(?:[-_]|\s+)?Forms(?:[-_]|\s+)?B' => 'ArabicPr',
- },
- 'ba' => {
- 'Basic(?:[-_]|\s+)?Latin' => 'BasicLat',
- },
- 'be' => {
- 'Bengali' => 'Bengali',
- },
- 'bl' => {
- 'Block(?:[-_]|\s+)?Elements' => 'BlockEle',
- },
- 'bo' => {
- 'Bopomofo(?:[-_]|\s+)?Extended' => 'Bopomof2',
- 'Box(?:[-_]|\s+)?Drawing' => 'BoxDrawi',
- 'Bopomofo' => 'Bopomofo',
- },
- 'br' => {
- 'Braille(?:[-_]|\s+)?Patterns' => 'BrailleP',
- },
- 'by' => {
- 'Byzantine(?:[-_]|\s+)?Musical(?:[-_]|\s+)?Symbols' => 'Byzantin',
- },
- 'ch' => {
- 'Cherokee' => 'Cherokee',
- },
- 'cj' => {
- 'Cjk(?:[-_]|\s+)?Unified(?:[-_]|\s+)?Ideographs(?:[-_]|\s+)?Extension(?:[-_]|\s+)?A' => 'CjkUnif2',
- 'Cjk(?:[-_]|\s+)?Radicals(?:[-_]|\s+)?Supplement' => 'CjkRadic',
- 'Cjk(?:[-_]|\s+)?Compatibility(?:[-_]|\s+)?Ideographs' => 'CjkComp3',
- 'Cjk(?:[-_]|\s+)?Compatibility(?:[-_]|\s+)?Ideographs(?:[-_]|\s+)?Supplement' => 'CjkComp4',
- 'Cjk(?:[-_]|\s+)?Compatibility' => 'CjkCompa',
- 'Cjk(?:[-_]|\s+)?Unified(?:[-_]|\s+)?Ideographs' => 'CjkUnifi',
- 'Cjk(?:[-_]|\s+)?Symbols(?:[-_]|\s+)?And(?:[-_]|\s+)?Punctuation' => 'CjkSymbo',
- 'Cjk(?:[-_]|\s+)?Compatibility(?:[-_]|\s+)?Forms' => 'CjkComp2',
- 'Cjk(?:[-_]|\s+)?Unified(?:[-_]|\s+)?Ideographs(?:[-_]|\s+)?Extension(?:[-_]|\s+)?B' => 'CjkUnif3',
- },
- 'co' => {
- 'Combining(?:[-_]|\s+)?Diacritical(?:[-_]|\s+)?Marks' => 'Combini2',
- 'Combining(?:[-_]|\s+)?Half(?:[-_]|\s+)?Marks' => 'Combinin',
- 'Control(?:[-_]|\s+)?Pictures' => 'ControlP',
- 'Combining(?:[-_]|\s+)?Marks(?:[-_]|\s+)?For(?:[-_]|\s+)?Symbols' => 'Combini3',
- },
- 'cu' => {
- 'Currency(?:[-_]|\s+)?Symbols' => 'Currency',
- },
- 'cy' => {
- 'Cyrillic' => 'Cyrillic',
- },
- 'de' => {
- 'Deseret' => 'Deseret',
- 'Devanagari' => 'Devanaga',
- },
- 'di' => {
- 'Dingbats' => 'Dingbats',
- },
- 'en' => {
- 'Enclosed(?:[-_]|\s+)?Alphanumerics' => 'Enclosed',
- 'Enclosed(?:[-_]|\s+)?Cjk(?:[-_]|\s+)?Letters(?:[-_]|\s+)?And(?:[-_]|\s+)?Months' => 'Enclose2',
- },
- 'et' => {
- 'Ethiopic' => 'Ethiopic',
- },
- 'ge' => {
- 'Geometric(?:[-_]|\s+)?Shapes' => 'Geometri',
- 'General(?:[-_]|\s+)?Punctuation' => 'GeneralP',
- 'Georgian' => 'Georgian',
- },
- 'go' => {
- 'Gothic' => 'Gothic',
- },
- 'gr' => {
- 'Greek(?:[-_]|\s+)?Extended' => 'GreekExt',
- 'Greek' => 'Greek',
- },
- 'gu' => {
- 'Gujarati' => 'Gujarati',
- 'Gurmukhi' => 'Gurmukhi',
- },
- 'ha' => {
- 'Hangul(?:[-_]|\s+)?Syllables' => 'HangulSy',
- 'Hangul(?:[-_]|\s+)?Compatibility(?:[-_]|\s+)?Jamo' => 'HangulCo',
- 'Halfwidth(?:[-_]|\s+)?And(?:[-_]|\s+)?Fullwidth(?:[-_]|\s+)?Forms' => 'Halfwidt',
- 'Hangul(?:[-_]|\s+)?Jamo' => 'HangulJa',
- },
- 'he' => {
- 'Hebrew' => 'Hebrew',
- },
- 'hi' => {
- 'High(?:[-_]|\s+)?Surrogates' => 'HighSurr',
- 'Hiragana' => 'Hiragana',
- 'High(?:[-_]|\s+)?Private(?:[-_]|\s+)?Use(?:[-_]|\s+)?Surrogates' => 'HighPriv',
- },
- 'id' => {
- 'Ideographic(?:[-_]|\s+)?Description(?:[-_]|\s+)?Characters' => 'Ideograp',
- },
- 'ip' => {
- 'Ipa(?:[-_]|\s+)?Extensions' => 'IpaExten',
- },
- 'ka' => {
- 'Kannada' => 'Kannada',
- 'Kanbun' => 'Kanbun',
- 'Kangxi(?:[-_]|\s+)?Radicals' => 'KangxiRa',
- 'Katakana' => 'Katakana',
- },
- 'kh' => {
- 'Khmer' => 'Khmer',
- },
- 'la' => {
- 'Lao' => 'Lao',
- 'Latin(?:[-_]|\s+)?Extended(?:[-_]|\s+)?B' => 'LatinExt',
- 'Latin(?:[-_]|\s+)?Extended(?:[-_]|\s+)?A' => 'LatinEx2',
- 'Latin(?:[-_]|\s+)?Extended(?:[-_]|\s+)?Additional' => 'LatinEx3',
- 'Latin(?:[-_]|\s+)?1(?:[-_]|\s+)?Supplement' => 'Latin1Su',
- },
- 'le' => {
- 'Letterlike(?:[-_]|\s+)?Symbols' => 'Letterli',
- },
- 'lo' => {
- 'Low(?:[-_]|\s+)?Surrogates' => 'LowSurro',
- },
- 'ma' => {
- 'Mathematical(?:[-_]|\s+)?Operators' => 'Mathemat',
- 'Mathematical(?:[-_]|\s+)?Alphanumeric(?:[-_]|\s+)?Symbols' => 'Mathema2',
- 'Malayalam' => 'Malayala',
- },
- 'mi' => {
- 'Miscellaneous(?:[-_]|\s+)?Technical' => 'Miscell2',
- 'Miscellaneous(?:[-_]|\s+)?Symbols' => 'Miscella',
- },
- 'mo' => {
- 'Mongolian' => 'Mongolia',
- },
- 'mu' => {
- 'Musical(?:[-_]|\s+)?Symbols' => 'MusicalS',
- },
- 'my' => {
- 'Myanmar' => 'Myanmar',
- },
- 'nu' => {
- 'Number(?:[-_]|\s+)?Forms' => 'NumberFo',
- },
- 'og' => {
- 'Ogham' => 'Ogham',
- },
- 'ol' => {
- 'Old(?:[-_]|\s+)?Italic' => 'OldItali',
- },
- 'op' => {
- 'Optical(?:[-_]|\s+)?Character(?:[-_]|\s+)?Recognition' => 'OpticalC',
- },
- 'or' => {
- 'Oriya' => 'Oriya',
- },
- 'pr' => {
- 'Private(?:[-_]|\s+)?Use' => 'PrivateU',
- },
- 'ru' => {
- 'Runic' => 'Runic',
- },
- 'si' => {
- 'Sinhala' => 'Sinhala',
- },
- 'sm' => {
- 'Small(?:[-_]|\s+)?Form(?:[-_]|\s+)?Variants' => 'SmallFor',
- },
- 'sp' => {
- 'Spacing(?:[-_]|\s+)?Modifier(?:[-_]|\s+)?Letters' => 'SpacingM',
- 'Specials' => 'Specials',
- },
- 'su' => {
- 'Superscripts(?:[-_]|\s+)?And(?:[-_]|\s+)?Subscripts' => 'Superscr',
- },
- 'sy' => {
- 'Syriac' => 'Syriac',
- },
- 'ta' => {
- 'Tamil' => 'Tamil',
- 'Tags' => 'Tags',
- },
- 'te' => {
- 'Telugu' => 'Telugu',
- },
- 'th' => {
- 'Thaana' => 'Thaana',
- 'Thai' => 'Thai',
- },
- 'ti' => {
- 'Tibetan' => 'Tibetan',
- },
- 'un' => {
- 'Unified(?:[-_]|\s+)?Canadian(?:[-_]|\s+)?Aboriginal(?:[-_]|\s+)?Syllabics' => 'UnifiedC',
- },
- 'yi' => {
- 'Yi(?:[-_]|\s+)?Syllables' => 'YiSyllab',
- 'Yi(?:[-_]|\s+)?Radicals' => 'YiRadica',
- },
-);
diff --git a/lib/unicore/Is.pl b/lib/unicore/Is.pl
deleted file mode 100644
index 91debeedcc..0000000000
--- a/lib/unicore/Is.pl
+++ /dev/null
@@ -1,375 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. Unicode.txt.
-# Any changes made here will be lost!
-
-##
-## Data in this file used by ../utf8_heavy.pl
-##
-
-## Mapping from name to filename in ./Is
-%utf8::Is = (
- 'ASCII' => 'ASCII',
- 'Alnum' => 'Alnum',
- 'Alpha' => 'Alpha',
- '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_',
- 'LbrkAI' => 'LbrkAI',
- 'LbrkAL' => 'LbrkAL',
- 'LbrkB2' => 'LbrkB2',
- 'LbrkBA' => 'LbrkBA',
- 'LbrkBB' => 'LbrkBB',
- 'LbrkBK' => 'LbrkBK',
- 'LbrkCB' => 'LbrkCB',
- 'LbrkCL' => 'LbrkCL',
- 'LbrkCM' => 'LbrkCM',
- 'LbrkCR' => 'LbrkCR',
- 'LbrkEX' => 'LbrkEX',
- 'LbrkGL' => 'LbrkGL',
- 'LbrkHY' => 'LbrkHY',
- 'LbrkID' => 'LbrkID',
- 'LbrkIN' => 'LbrkIN',
- 'LbrkIS' => 'LbrkIS',
- 'LbrkLF' => 'LbrkLF',
- 'LbrkNS' => 'LbrkNS',
- 'LbrkNU' => 'LbrkNU',
- 'LbrkOP' => 'LbrkOP',
- 'LbrkPO' => 'LbrkPO',
- 'LbrkPR' => 'LbrkPR',
- 'LbrkQU' => 'LbrkQU',
- 'LbrkSA' => 'LbrkSA',
- 'LbrkSG' => 'LbrkSG',
- 'LbrkSP' => 'LbrkSP',
- 'LbrkSY' => 'LbrkSY',
- 'LbrkXX' => 'LbrkXX',
- 'LbrkZW' => 'LbrkZW',
- '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',
-);
-
-## Mappings from regex to filename in ./Is/
-%utf8::IsPat = (
- 'al' => {
- 'All' => 'Any',
- 'Alphabetic' => 'Alphabet',
- },
- 'an' => {
- 'Any' => 'Any',
- },
- 'ar' => {
- 'Armenian' => 'Armenian',
- 'Arabic' => 'Arabic',
- },
- 'as' => {
- 'Ascii(?:[-_]|\s+)?Hex(?:[-_]|\s+)?Digit' => 'AsciiHex',
- 'Assigned' => 'Assigned',
- },
- 'be' => {
- 'Bengali' => 'Bengali',
- },
- 'bi' => {
- 'Bidi(?:[-_]|\s+)?Control' => 'BidiCont',
- },
- 'bo' => {
- 'Bopomofo' => 'Bopomofo',
- },
- 'ca' => {
- 'Canadian(?:[-_]|\s+)?Aboriginal' => 'Canadian',
- },
- 'ch' => {
- 'Cherokee' => 'Cherokee',
- },
- 'cl' => {
- 'Close(?:[-_]|\s+)?Punctuation' => 'Pe',
- },
- 'co' => {
- 'Control' => 'Cc',
- 'Common' => 'Common',
- 'Connector(?:[-_]|\s+)?Punctuation' => 'Pc',
- },
- 'cu' => {
- 'Currency(?:[-_]|\s+)?Symbol' => 'Sc',
- },
- 'cy' => {
- 'Cyrillic' => 'Cyrillic',
- },
- 'da' => {
- 'Dash(?:[-_]|\s+)?Punctuation' => 'Pd',
- 'Dash' => 'Dash',
- },
- 'de' => {
- 'Deseret' => 'Deseret',
- 'Devanagari' => 'Devanaga',
- 'Decimal(?:[-_]|\s+)?Number' => 'Nd',
- },
- 'di' => {
- 'Diacritic' => 'Diacriti',
- },
- 'en' => {
- 'Enclosing(?:[-_]|\s+)?Mark' => 'Me',
- },
- 'et' => {
- 'Ethiopic' => 'Ethiopic',
- },
- 'ex' => {
- 'Extender' => 'Extender',
- },
- 'fi' => {
- 'Final(?:[-_]|\s+)?Punctuation' => 'Pf',
- },
- 'fo' => {
- 'Format' => 'Cf',
- },
- 'ge' => {
- 'Georgian' => 'Georgian',
- },
- 'go' => {
- 'Gothic' => 'Gothic',
- },
- 'gr' => {
- 'Greek' => 'Greek',
- },
- 'gu' => {
- 'Gujarati' => 'Gujarati',
- 'Gurmukhi' => 'Gurmukhi',
- },
- 'ha' => {
- 'Hangul' => 'Hangul',
- 'Han' => 'Han',
- },
- 'he' => {
- 'Hebrew' => 'Hebrew',
- 'Hex(?:[-_]|\s+)?Digit' => 'HexDigit',
- },
- 'hi' => {
- 'Hiragana' => 'Hiragana',
- },
- 'hy' => {
- 'Hyphen' => 'Hyphen',
- },
- 'id' => {
- 'Ideographic' => 'Ideograp',
- 'Id(?:[-_]|\s+)?Continue' => 'IdContin',
- 'Id(?:[-_]|\s+)?Start' => 'IdStart',
- },
- 'in' => {
- 'Inherited' => 'Inherite',
- 'Initial(?:[-_]|\s+)?Punctuation' => 'Pi',
- },
- 'jo' => {
- 'Join(?:[-_]|\s+)?Control' => 'JoinCont',
- },
- 'ka' => {
- 'Kannada' => 'Kannada',
- 'Katakana' => 'Katakana',
- },
- 'kh' => {
- 'Khmer' => 'Khmer',
- },
- 'la' => {
- 'Lao' => 'Lao',
- 'Latin' => 'Latin',
- },
- 'le' => {
- 'Letter(?:[-_]|\s+)?Number' => 'Nl',
- 'Letter' => 'L',
- },
- 'li' => {
- 'Line(?:[-_]|\s+)?Separator' => 'Zl',
- },
- 'lo' => {
- 'Lowercase' => 'Lowercas',
- 'Lowercase(?:[-_]|\s+)?Letter' => 'Ll',
- },
- 'ma' => {
- 'Math' => 'Math',
- 'Malayalam' => 'Malayala',
- 'Mark' => 'M',
- 'Math(?:[-_]|\s+)?Symbol' => 'Sm',
- },
- 'mo' => {
- 'Modifier(?:[-_]|\s+)?Symbol' => 'Sk',
- 'Mongolian' => 'Mongolia',
- 'Modifier(?:[-_]|\s+)?Letter' => 'Lm',
- },
- 'my' => {
- 'Myanmar' => 'Myanmar',
- },
- 'no' => {
- 'Noncharacter(?:[-_]|\s+)?Code(?:[-_]|\s+)?Point' => 'Nonchara',
- 'Non(?:[-_]|\s+)?Spacing(?:[-_]|\s+)?Mark' => 'Mn',
- },
- 'nu' => {
- 'Number' => 'N',
- },
- 'og' => {
- 'Ogham' => 'Ogham',
- },
- 'ol' => {
- 'Old(?:[-_]|\s+)?Italic' => 'OldItali',
- },
- 'op' => {
- 'Open(?:[-_]|\s+)?Punctuation' => 'Ps',
- },
- 'or' => {
- 'Oriya' => 'Oriya',
- },
- 'ot' => {
- 'Other(?:[-_]|\s+)?Punctuation' => 'Po',
- 'Other(?:[-_]|\s+)?Uppercase' => 'OtherUpp',
- 'Other(?:[-_]|\s+)?Alphabetic' => 'OtherAlp',
- 'Other(?:[-_]|\s+)?Symbol' => 'So',
- 'Other(?:[-_]|\s+)?Number' => 'No',
- 'Other' => 'C',
- 'Other(?:[-_]|\s+)?Math' => 'OtherMat',
- 'Other(?:[-_]|\s+)?Letter' => 'Lo',
- 'Other(?:[-_]|\s+)?Lowercase' => 'OtherLow',
- },
- 'pa' => {
- 'Paragraph(?:[-_]|\s+)?Separator' => 'Zp',
- },
- 'pr' => {
- 'Private(?:[-_]|\s+)?Use' => 'Co',
- },
- 'pu' => {
- 'Punctuation' => 'P',
- },
- 'qu' => {
- 'Quotation(?:[-_]|\s+)?Mark' => 'Quotatio',
- },
- 'ru' => {
- 'Runic' => 'Runic',
- },
- 'se' => {
- 'Separator' => 'Z',
- },
- 'si' => {
- 'Sinhala' => 'Sinhala',
- },
- 'sp' => {
- 'Space(?:[-_]|\s+)?Separator' => 'Zs',
- 'Spacing(?:[-_]|\s+)?Mark' => 'Mc',
- },
- 'su' => {
- 'Surrogate' => 'Cs',
- },
- 'sy' => {
- 'Syriac' => 'Syriac',
- 'Symbol' => 'S',
- },
- 'ta' => {
- 'Tamil' => 'Tamil',
- },
- 'te' => {
- 'Telugu' => 'Telugu',
- 'Terminal(?:[-_]|\s+)?Punctuation' => 'Terminal',
- },
- 'th' => {
- 'Thaana' => 'Thaana',
- 'Thai' => 'Thai',
- },
- 'ti' => {
- 'Tibetan' => 'Tibetan',
- 'Titlecase(?:[-_]|\s+)?Letter' => 'Lt',
- },
- 'un' => {
- 'Unassigned' => 'Cn',
- },
- 'up' => {
- 'Uppercase' => 'Uppercas',
- 'Uppercase(?:[-_]|\s+)?Letter' => 'Lu',
- },
- 'wh' => {
- 'White(?:[-_]|\s+)?Space' => 'WhiteSpa',
- },
- 'yi' => {
- 'Yi' => 'Yi',
- },
-);
diff --git a/lib/unicore/Is/LbrkAI.pl b/lib/unicore/Is/LbrkAI.pl
deleted file mode 100644
index 36e3e17951..0000000000
--- a/lib/unicore/Is/LbrkAI.pl
+++ /dev/null
@@ -1,145 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. Unicode.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{LbrkAI}
-#
-# Meaning: Linebreak category 'AI'
-#
-return <<'END';
-00A1
-00A7 00A8
-00AA
-00B2 00B3
-00B6 00BA
-00BC 00BF
-00C6
-00D0
-00D7 00D8
-00DE 00E1
-00E6
-00E8 00EA
-00EC 00ED
-00F0
-00F2 00F3
-00F7 00FA
-00FC
-00FE
-0101
-0111
-0113
-011B
-0126 0127
-012B
-0131 0133
-0138
-013F 0142
-0144
-0148 014A
-014D
-0152 0153
-0166 0167
-016B
-01CE
-01D0
-01D2
-01D4
-01D6
-01D8
-01DA
-01DC
-0251
-0261
-02C7
-02C9 02CB
-02CD
-02D0
-02D8 02DB
-02DD
-0391 03A1
-03A3 03A9
-03B1 03C1
-03C3 03C9
-0401
-0410 044F
-0451
-2015 2016
-2020 2021
-203B
-2074
-207F
-2081 2084
-2105
-2113
-2121 2122
-212B
-2154 2155
-215B
-215E
-2160 216B
-2170 2179
-2190 2199
-21D2
-21D4
-2200
-2202 2203
-2207 2208
-220B
-220F
-2211
-2215
-221A
-221D 2220
-2223
-2225
-2227 222C
-222E
-2234 2237
-223C 223D
-2248
-224C
-2252
-2260 2261
-2264 2267
-226A 226B
-226E 226F
-2282 2283
-2286 2287
-2295
-2299
-22A5
-22BF
-2312
-2460 24BF
-24D0 24E9
-2500 254B
-2550 2574
-2580 258F
-2592 2595
-25A0 25A1
-25A3 25A9
-25B2 25B3
-25B6 25B7
-25BC 25BD
-25C0 25C1
-25C6 25C8
-25CB
-25CE 25D1
-25E2 25E5
-25EF
-2605 2606
-2609
-260E 260F
-261C
-261E
-2640
-2642
-2660 2661
-2663 2665
-2667 266A
-266C 266D
-266F
-FFFD
-END
diff --git a/lib/unicore/Is/LbrkAL.pl b/lib/unicore/Is/LbrkAL.pl
deleted file mode 100644
index 59b3c4ae4b..0000000000
--- a/lib/unicore/Is/LbrkAL.pl
+++ /dev/null
@@ -1,425 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. Unicode.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{LbrkAL}
-#
-# Meaning: Linebreak category 'AL'
-#
-return <<'END';
-0023
-0026
-002A
-003C 003E
-0040 005A
-005E 007A
-007E
-00A6
-00A9
-00AC
-00AE 00AF
-00B5
-00C0 00C5
-00C7 00CF
-00D1 00D6
-00D9 00DD
-00E2 00E5
-00E7
-00EB
-00EE 00EF
-00F1
-00F4 00F6
-00FB
-00FD
-00FF 0100
-0102 0110
-0112
-0114 011A
-011C 0125
-0128 012A
-012C 0130
-0134 0137
-0139 013E
-0143
-0145 0147
-014B 014C
-014E 0151
-0154 0165
-0168 016A
-016C 01CD
-01CF
-01D1
-01D3
-01D5
-01D7
-01D9
-01DB
-01DD 021F
-0222 0233
-0250
-0252 0260
-0262 02AD
-02B0 02C6
-02CE 02CF
-02D1 02D7
-02DC
-02DE 02EE
-0374 0375
-037A
-037E
-0384 038A
-038C
-038E 0390
-03AA 03B0
-03C2
-03CA 03CE
-03D0 03D7
-03DA 03F5
-0400
-0402 040F
-0450
-0452 0482
-048C 04C4
-04C7 04C8
-04CB 04CC
-04D0 04F5
-04F8 04F9
-0531 0556
-0559 055F
-0561 0587
-05BE
-05C0
-05C3
-05D0 05EA
-05F0 05F4
-060C
-061B
-061F
-0621 063A
-0640 064A
-066A 066D
-0671 06D5
-06E5 06E6
-06E9
-06FA 06FE
-0700 070D
-0710
-0712 072C
-0780 07A5
-0905 0939
-093D
-0950
-0958 0961
-0964 0965
-0970
-0985 098C
-098F 0990
-0993 09A8
-09AA 09B0
-09B2
-09B6 09B9
-09DC 09DD
-09DF 09E1
-09F0 09F1
-09F4 09FA
-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
-0B70
-0B85 0B8A
-0B8E 0B90
-0B92 0B95
-0B99 0B9A
-0B9C
-0B9E 0B9F
-0BA3 0BA4
-0BA8 0BAA
-0BAE 0BB5
-0BB7 0BB9
-0BF0 0BF2
-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
-0DF4
-0E4F
-0F00 0F0A
-0F0D 0F17
-0F1A 0F1F
-0F2A 0F34
-0F36
-0F38
-0F40 0F47
-0F49 0F6A
-0F85
-0F88 0F8B
-0FBE 0FC5
-0FC7 0FCC
-0FCF
-104A 104F
-10A0 10C5
-10D0 10F6
-10FB
-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
-1362 1368
-1372 137C
-13A0 13F4
-1401 1676
-1681 169A
-16A0 16F0
-17DC
-1800 1805
-1807 180A
-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 1FC4
-1FC6 1FD3
-1FD6 1FDB
-1FDD 1FEF
-1FF2 1FF4
-1FF6 1FFE
-2017
-2022 2023
-2038
-203D 2043
-2048 204D
-2070
-2075 207C
-2080
-2085 208C
-2100 2102
-2104
-2106 2108
-210A 2112
-2114 2115
-2117 2120
-2123 2125
-2127 212A
-212C 213A
-2153
-2156 215A
-215C 215D
-215F
-216C 216F
-217A 2183
-219A 21D1
-21D3
-21D5 21F3
-2201
-2204 2206
-2209 220A
-220C 220E
-2210
-2214
-2216 2219
-221B 221C
-2221 2222
-2224
-2226
-222D
-222F 2233
-2238 223B
-223E 2247
-2249 224B
-224D 2251
-2253 225F
-2262 2263
-2268 2269
-226C 226D
-2270 2281
-2284 2285
-2288 2294
-2296 2298
-229A 22A4
-22A6 22BE
-22C0 22F1
-2300 2311
-2313 2328
-232B 237B
-237D 239A
-2400 2426
-2440 244A
-24C0 24CF
-24EA
-254C 254F
-2575 257F
-2590 2591
-25A2
-25AA 25B1
-25B4 25B5
-25B8 25BB
-25BE 25BF
-25C2 25C5
-25C9 25CA
-25CC 25CD
-25D2 25E1
-25E6 25EE
-25F0 25F7
-2600 2604
-2607 2608
-260A 260D
-2610 2613
-2619 261B
-261D
-261F 263F
-2641
-2643 265F
-2662
-2666
-266B
-266E
-2670 2671
-2701 2704
-2706 2709
-270C 2727
-2729 274B
-274D
-274F 2752
-2756
-2758 275E
-2761 2767
-2776 2794
-2798 27AF
-27B1 27BE
-2800 28FF
-FB00 FB06
-FB13 FB17
-FB1D
-FB1F FB36
-FB38 FB3C
-FB3E
-FB40 FB41
-FB43 FB44
-FB46 FBB1
-FBD3 FD3D
-FD50 FD8F
-FD92 FDC7
-FDF0 FDFB
-FE70 FE72
-FE74
-FE76 FEFC
-FF66
-FF71 FF9D
-FFA0 FFBE
-FFC2 FFC7
-FFCA FFCF
-FFD2 FFD7
-FFDA FFDC
-FFE8 FFEE
-10300 1031E
-10320 10323
-10330 1034A
-10400 10425
-10428 1044D
-1D000 1D0F5
-1D100 1D126
-1D12A 1D164
-1D16A 1D16C
-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
-END
diff --git a/lib/unicore/Is/LbrkB2.pl b/lib/unicore/Is/LbrkB2.pl
deleted file mode 100644
index dee0b69208..0000000000
--- a/lib/unicore/Is/LbrkB2.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. Unicode.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{LbrkB2}
-#
-# Meaning: Linebreak category 'B2'
-#
-return <<'END';
-2014
-END
diff --git a/lib/unicore/Is/LbrkBA.pl b/lib/unicore/Is/LbrkBA.pl
deleted file mode 100644
index fcc8c6186b..0000000000
--- a/lib/unicore/Is/LbrkBA.pl
+++ /dev/null
@@ -1,25 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. Unicode.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{LbrkBA}
-#
-# Meaning: Linebreak category 'BA'
-#
-return <<'END';
-0009
-007C
-00AD
-058A
-0F0B
-1361
-1680
-17D5
-2000 2006
-2008 200A
-2010
-2012 2013
-2027
-END
diff --git a/lib/unicore/Is/LbrkBB.pl b/lib/unicore/Is/LbrkBB.pl
deleted file mode 100644
index 5f71338f50..0000000000
--- a/lib/unicore/Is/LbrkBB.pl
+++ /dev/null
@@ -1,16 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. Unicode.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{LbrkBB}
-#
-# Meaning: Linebreak category 'BB'
-#
-return <<'END';
-00B4
-02C8
-02CC
-1806
-END
diff --git a/lib/unicore/Is/LbrkBK.pl b/lib/unicore/Is/LbrkBK.pl
deleted file mode 100644
index 27b43897ca..0000000000
--- a/lib/unicore/Is/LbrkBK.pl
+++ /dev/null
@@ -1,14 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. Unicode.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{LbrkBK}
-#
-# Meaning: Linebreak category 'BK'
-#
-return <<'END';
-000C
-2028 2029
-END
diff --git a/lib/unicore/Is/LbrkCB.pl b/lib/unicore/Is/LbrkCB.pl
deleted file mode 100644
index 2a71fd52aa..0000000000
--- a/lib/unicore/Is/LbrkCB.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. Unicode.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{LbrkCB}
-#
-# Meaning: Linebreak category 'CB'
-#
-return <<'END';
-FFFC
-END
diff --git a/lib/unicore/Is/LbrkCL.pl b/lib/unicore/Is/LbrkCL.pl
deleted file mode 100644
index beeeadc061..0000000000
--- a/lib/unicore/Is/LbrkCL.pl
+++ /dev/null
@@ -1,54 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. Unicode.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{LbrkCL}
-#
-# Meaning: Linebreak category 'CL'
-#
-return <<'END';
-0029
-005D
-007D
-0F3B
-0F3D
-169C
-2046
-207E
-208E
-232A
-3001 3002
-3009
-300B
-300D
-300F
-3011
-3015
-3017
-3019
-301B
-301E 301F
-FD3F
-FE36
-FE38
-FE3A
-FE3C
-FE3E
-FE40
-FE42
-FE44
-FE50
-FE52
-FE5A
-FE5C
-FE5E
-FF09
-FF0C
-FF0E
-FF3D
-FF5D
-FF61
-FF63 FF64
-END
diff --git a/lib/unicore/Is/LbrkCM.pl b/lib/unicore/Is/LbrkCM.pl
deleted file mode 100644
index 1db78a9901..0000000000
--- a/lib/unicore/Is/LbrkCM.pl
+++ /dev/null
@@ -1,130 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. Unicode.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{LbrkCM}
-#
-# Meaning: Linebreak category 'CM'
-#
-return <<'END';
-0000 0008
-000B
-000E 001F
-007F 009F
-0300 034E
-0360 0362
-0483 0486
-0488 0489
-0591 05A1
-05A3 05B9
-05BB 05BD
-05BF
-05C1 05C2
-05C4
-064B 0655
-0670
-06D6 06E4
-06E7 06E8
-06EA 06ED
-070F
-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 0B83
-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
-1160 11A2
-11A8 11F9
-17B4 17D3
-180B 180E
-18A9
-200C 200F
-202A 202E
-206A 206F
-20D0 20E3
-302A 302F
-3099 309A
-FB1E
-FE20 FE23
-FFF9 FFFB
-1D165 1D169
-1D16D 1D182
-1D185 1D18B
-1D1AA 1D1AD
-E0001
-E0020 E007F
-END
diff --git a/lib/unicore/Is/LbrkCR.pl b/lib/unicore/Is/LbrkCR.pl
deleted file mode 100644
index 22a470259c..0000000000
--- a/lib/unicore/Is/LbrkCR.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. Unicode.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{LbrkCR}
-#
-# Meaning: Linebreak category 'CR'
-#
-return <<'END';
-000D
-END
diff --git a/lib/unicore/Is/LbrkEX.pl b/lib/unicore/Is/LbrkEX.pl
deleted file mode 100644
index 48626e02a6..0000000000
--- a/lib/unicore/Is/LbrkEX.pl
+++ /dev/null
@@ -1,17 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. Unicode.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{LbrkEX}
-#
-# Meaning: Linebreak category 'EX'
-#
-return <<'END';
-0021
-003F
-FE56 FE57
-FF01
-FF1F
-END
diff --git a/lib/unicore/Is/LbrkGL.pl b/lib/unicore/Is/LbrkGL.pl
deleted file mode 100644
index ae2f909cb5..0000000000
--- a/lib/unicore/Is/LbrkGL.pl
+++ /dev/null
@@ -1,18 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. Unicode.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{LbrkGL}
-#
-# Meaning: Linebreak category 'GL'
-#
-return <<'END';
-00A0
-0F0C
-2007
-2011
-202F
-FEFF
-END
diff --git a/lib/unicore/Is/LbrkHY.pl b/lib/unicore/Is/LbrkHY.pl
deleted file mode 100644
index 09cfd3651a..0000000000
--- a/lib/unicore/Is/LbrkHY.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. Unicode.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{LbrkHY}
-#
-# Meaning: Linebreak category 'HY'
-#
-return <<'END';
-002D
-END
diff --git a/lib/unicore/Is/LbrkID.pl b/lib/unicore/Is/LbrkID.pl
deleted file mode 100644
index f91dd0ec2d..0000000000
--- a/lib/unicore/Is/LbrkID.pl
+++ /dev/null
@@ -1,91 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. Unicode.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{LbrkID}
-#
-# Meaning: Linebreak category 'ID'
-#
-return <<'END';
-1100 1159
-115F
-2E80 2E99
-2E9B 2EF3
-2F00 2FD5
-2FF0 2FFB
-3000
-3003 3004
-3006 3007
-3012 3013
-3020 3029
-3030 303A
-303E 303F
-3042
-3044
-3046
-3048
-304A 3062
-3064 3082
-3084
-3086
-3088 308D
-308F 3094
-30A2
-30A4
-30A6
-30A8
-30AA 30C2
-30C4 30E2
-30E4
-30E6
-30E8 30ED
-30EF 30F4
-30F7 30FA
-30FC
-30FE
-3105 312C
-3131 318E
-3190 31B7
-3200 321C
-3220 3243
-3260 327B
-327F 32B0
-32C0 32CB
-32D0 32FE
-3300 3376
-337B 33DD
-33E0 33FE
-3400 4DB5
-4E00 9FA5
-A000 A48C
-A490 A4A1
-A4A4 A4B3
-A4B5 A4C0
-A4C2 A4C4
-A4C6
-AC00 D7A3
-F900 FA2D
-FE30 FE34
-FE49 FE4F
-FE51
-FE58
-FE5F FE66
-FE68
-FE6B
-FF02 FF03
-FF06 FF07
-FF0A FF0B
-FF0D
-FF0F FF19
-FF1C FF1E
-FF20 FF3A
-FF3C
-FF3E FF5A
-FF5C
-FF5E
-FFE2 FFE4
-20000 2A6D6
-2F800 2FA1D
-END
diff --git a/lib/unicore/Is/LbrkIN.pl b/lib/unicore/Is/LbrkIN.pl
deleted file mode 100644
index e2920eb0e6..0000000000
--- a/lib/unicore/Is/LbrkIN.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. Unicode.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{LbrkIN}
-#
-# Meaning: Linebreak category 'IN'
-#
-return <<'END';
-2024 2026
-END
diff --git a/lib/unicore/Is/LbrkIS.pl b/lib/unicore/Is/LbrkIS.pl
deleted file mode 100644
index 32159badd4..0000000000
--- a/lib/unicore/Is/LbrkIS.pl
+++ /dev/null
@@ -1,16 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. Unicode.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{LbrkIS}
-#
-# Meaning: Linebreak category 'IS'
-#
-return <<'END';
-002C
-002E
-003A 003B
-0589
-END
diff --git a/lib/unicore/Is/LbrkLF.pl b/lib/unicore/Is/LbrkLF.pl
deleted file mode 100644
index 84d9ef433d..0000000000
--- a/lib/unicore/Is/LbrkLF.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. Unicode.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{LbrkLF}
-#
-# Meaning: Linebreak category 'LF'
-#
-return <<'END';
-000A
-END
diff --git a/lib/unicore/Is/LbrkNS.pl b/lib/unicore/Is/LbrkNS.pl
deleted file mode 100644
index 829d01b48e..0000000000
--- a/lib/unicore/Is/LbrkNS.pl
+++ /dev/null
@@ -1,48 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. Unicode.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{LbrkNS}
-#
-# Meaning: Linebreak category 'NS'
-#
-return <<'END';
-0E5A 0E5B
-17D4
-17D6 17DA
-203C
-2044
-3005
-301C
-3041
-3043
-3045
-3047
-3049
-3063
-3083
-3085
-3087
-308E
-309B 309E
-30A1
-30A3
-30A5
-30A7
-30A9
-30C3
-30E3
-30E5
-30E7
-30EE
-30F5 30F6
-30FB
-30FD
-FE54 FE55
-FF1A FF1B
-FF65
-FF67 FF70
-FF9E FF9F
-END
diff --git a/lib/unicore/Is/LbrkNU.pl b/lib/unicore/Is/LbrkNU.pl
deleted file mode 100644
index bfecec3da3..0000000000
--- a/lib/unicore/Is/LbrkNU.pl
+++ /dev/null
@@ -1,32 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. Unicode.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{LbrkNU}
-#
-# Meaning: Linebreak category 'NU'
-#
-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
-1D7CE 1D7FF
-END
diff --git a/lib/unicore/Is/LbrkOP.pl b/lib/unicore/Is/LbrkOP.pl
deleted file mode 100644
index 6560490a59..0000000000
--- a/lib/unicore/Is/LbrkOP.pl
+++ /dev/null
@@ -1,50 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. Unicode.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{LbrkOP}
-#
-# Meaning: Linebreak category 'OP'
-#
-return <<'END';
-0028
-005B
-007B
-0F3A
-0F3C
-169B
-201A
-201E
-2045
-207D
-208D
-2329
-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
-FF62
-END
diff --git a/lib/unicore/Is/LbrkPO.pl b/lib/unicore/Is/LbrkPO.pl
deleted file mode 100644
index 0ea55480cc..0000000000
--- a/lib/unicore/Is/LbrkPO.pl
+++ /dev/null
@@ -1,23 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. Unicode.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{LbrkPO}
-#
-# Meaning: Linebreak category 'PO'
-#
-return <<'END';
-0025
-00A2
-00B0
-2030 2037
-20A7
-2103
-2109
-2126
-FE6A
-FF05
-FFE0
-END
diff --git a/lib/unicore/Is/LbrkPR.pl b/lib/unicore/Is/LbrkPR.pl
deleted file mode 100644
index be6c3885bf..0000000000
--- a/lib/unicore/Is/LbrkPR.pl
+++ /dev/null
@@ -1,28 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. Unicode.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{LbrkPR}
-#
-# Meaning: Linebreak category 'PR'
-#
-return <<'END';
-0024
-002B
-005C
-00A3 00A5
-00B1
-09F2 09F3
-0E3F
-17DB
-20A0 20A6
-20A8 20AF
-2116
-2212 2213
-FE69
-FF04
-FFE1
-FFE5 FFE6
-END
diff --git a/lib/unicore/Is/LbrkQU.pl b/lib/unicore/Is/LbrkQU.pl
deleted file mode 100644
index f23ef75d9e..0000000000
--- a/lib/unicore/Is/LbrkQU.pl
+++ /dev/null
@@ -1,20 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. Unicode.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{LbrkQU}
-#
-# Meaning: Linebreak category 'QU'
-#
-return <<'END';
-0022
-0027
-00AB
-00BB
-2018 2019
-201B 201D
-201F
-2039 203A
-END
diff --git a/lib/unicore/Is/LbrkSA.pl b/lib/unicore/Is/LbrkSA.pl
deleted file mode 100644
index fc3d98c582..0000000000
--- a/lib/unicore/Is/LbrkSA.pl
+++ /dev/null
@@ -1,37 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. Unicode.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{LbrkSA}
-#
-# Meaning: Linebreak category 'SA'
-#
-return <<'END';
-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
-1000 1021
-1023 1027
-1029 102A
-1050 1055
-1780 17B3
-END
diff --git a/lib/unicore/Is/LbrkSG.pl b/lib/unicore/Is/LbrkSG.pl
deleted file mode 100644
index a5acf16112..0000000000
--- a/lib/unicore/Is/LbrkSG.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. Unicode.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{LbrkSG}
-#
-# Meaning: Linebreak category 'SG'
-#
-return <<'END';
-D800 DFFF
-END
diff --git a/lib/unicore/Is/LbrkSP.pl b/lib/unicore/Is/LbrkSP.pl
deleted file mode 100644
index c21e46de31..0000000000
--- a/lib/unicore/Is/LbrkSP.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. Unicode.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{LbrkSP}
-#
-# Meaning: Linebreak category 'SP'
-#
-return <<'END';
-0020
-END
diff --git a/lib/unicore/Is/LbrkSY.pl b/lib/unicore/Is/LbrkSY.pl
deleted file mode 100644
index 554b30232c..0000000000
--- a/lib/unicore/Is/LbrkSY.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. Unicode.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{LbrkSY}
-#
-# Meaning: Linebreak category 'SY'
-#
-return <<'END';
-002F
-END
diff --git a/lib/unicore/Is/LbrkXX.pl b/lib/unicore/Is/LbrkXX.pl
deleted file mode 100644
index 6ab9fcfc4d..0000000000
--- a/lib/unicore/Is/LbrkXX.pl
+++ /dev/null
@@ -1,15 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. Unicode.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{LbrkXX}
-#
-# Meaning: Linebreak category 'XX'
-#
-return <<'END';
-E000 F8FF
-F0000 FFFFD
-100000 10FFFD
-END
diff --git a/lib/unicore/Is/LbrkZW.pl b/lib/unicore/Is/LbrkZW.pl
deleted file mode 100644
index a338cbae6d..0000000000
--- a/lib/unicore/Is/LbrkZW.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by ./mktables from e.g. Unicode.txt.
-# Any changes made here will be lost!
-
-#
-# This file supports:
-# \p{LbrkZW}
-#
-# Meaning: Linebreak category 'ZW'
-#
-return <<'END';
-200B
-END
diff --git a/lib/unicore/Makefile b/lib/unicore/Makefile
index 948e982dbe..99b7026367 100644
--- a/lib/unicore/Makefile
+++ b/lib/unicore/Makefile
@@ -1,6 +1,12 @@
all:
../../miniperl -I../../lib ./mktables
+TestProp.pl: mktables Unicode.txt Scripts.txt Blocks.txt PropList.txt
+ ../../miniperl -I../../lib ./mktables -maketest
+
+test: TestProp.pl
+ ../../miniperl -I../../lib TestProp.pl
+
clean:
rm -f *.pl */*.pl
rm -f Properties
diff --git a/lib/unicore/Properties b/lib/unicore/Properties
index 377fa5a392..143ca5932b 100644
--- a/lib/unicore/Properties
+++ b/lib/unicore/Properties
@@ -6,15 +6,15 @@
##
\p{ASCII} [[:ASCII:]]
-* \p{All} Alias for \p{Any} ([\x{0000}-\x{10FFFF}])
\p{Alnum} [[:Alnum:]]
* \p{Alphabetic} [\p{L}\p{OtherAlphabetic}]
\p{Alpha} [[:Alpha:]]
-* \p{Any} [\x{0000}-\x{10FFFF}]
+ \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{Assigned} All assigned code points
* \p{Bengali} Script 'BENGALI'
\p{BidiAL} Bi-directional category 'AL'
\p{BidiAN} Bi-directional category 'AN'
@@ -40,20 +40,22 @@
* \p{Bopomofo} Script 'BOPOMOFO'
* \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{ClosePunctuation} Alias for \p{Pe} (General Category 'Pe')
\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{ConnectorPunctuation} Alias for \p{Pc} (General Category 'Pc')
-* \p{Control} Alias for \p{Cc} (General Category 'Cc')
+* \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{CurrencySymbol} Alias for \p{Sc} (General Category 'Sc')
* \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'
@@ -71,18 +73,13 @@
\p{DCsuper} Compatible with 'super'
\p{DCvertical} Compatible with 'vertical'
\p{DCwide} Compatible with 'wide'
-* \p{DashPunctuation} Alias for \p{Pd} (General Category 'Pd')
* \p{Dash} Extended property 'Dash'
-* \p{DecimalNumber} Alias for \p{Nd} (General Category 'Nd')
* \p{Deseret} Script 'DESERET'
* \p{Devanagari} Script 'DEVANAGARI'
* \p{Diacritic} Extended property 'Diacritic'
\p{Digit} [[:Digit:]]
-* \p{EnclosingMark} Alias for \p{Me} (General Category 'Me')
* \p{Ethiopic} Script 'ETHIOPIC'
* \p{Extender} Extended property 'Extender'
-* \p{FinalPunctuation} Alias for \p{Pf} (General Category 'Pf')
-* \p{Format} Alias for \p{Cf} (General Category 'Cf')
* \p{Georgian} Script 'GEORGIAN'
* \p{Gothic} Script 'GOTHIC'
\p{Graph} [[:Graph:]]
@@ -195,7 +192,6 @@
* \p{InYiRadicals} Block 'Yi Radicals'
* \p{InYiSyllables} Block 'Yi Syllables'
* \p{Inherited} Script 'INHERITED'
-* \p{InitialPunctuation} Alias for \p{Pi} (General Category 'Pi')
* \p{JoinControl} Extended property 'Join_Control'
* \p{Kannada} Script 'KANNADA'
* \p{Katakana} Script 'KATAKANA'
@@ -203,108 +199,82 @@
\p{L&} [\p{Ll}\p{Lu}\p{Lt}]
* \p{Lao} Script 'LAO'
* \p{Latin} Script 'LATIN'
- \p{LbrkAI} Linebreak category 'AI'
- \p{LbrkAL} Linebreak category 'AL'
- \p{LbrkB2} Linebreak category 'B2'
- \p{LbrkBA} Linebreak category 'BA'
- \p{LbrkBB} Linebreak category 'BB'
- \p{LbrkBK} Linebreak category 'BK'
- \p{LbrkCB} Linebreak category 'CB'
- \p{LbrkCL} Linebreak category 'CL'
- \p{LbrkCM} Linebreak category 'CM'
- \p{LbrkCR} Linebreak category 'CR'
- \p{LbrkEX} Linebreak category 'EX'
- \p{LbrkGL} Linebreak category 'GL'
- \p{LbrkHY} Linebreak category 'HY'
- \p{LbrkID} Linebreak category 'ID'
- \p{LbrkIN} Linebreak category 'IN'
- \p{LbrkIS} Linebreak category 'IS'
- \p{LbrkLF} Linebreak category 'LF'
- \p{LbrkNS} Linebreak category 'NS'
- \p{LbrkNU} Linebreak category 'NU'
- \p{LbrkOP} Linebreak category 'OP'
- \p{LbrkPO} Linebreak category 'PO'
- \p{LbrkPR} Linebreak category 'PR'
- \p{LbrkQU} Linebreak category 'QU'
- \p{LbrkSA} Linebreak category 'SA'
- \p{LbrkSG} Linebreak category 'SG'
- \p{LbrkSP} Linebreak category 'SP'
- \p{LbrkSY} Linebreak category 'SY'
- \p{LbrkXX} Linebreak category 'XX'
- \p{LbrkZW} Linebreak category 'ZW'
-* \p{LetterNumber} Alias for \p{Nl} (General Category 'Nl')
-* \p{Letter} Alias for \p{L} (Major Category 'L')
-* \p{LineSeparator} Alias for \p{Zl} (General Category 'Zl')
+* \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{LowercaseLetter} Alias for \p{Ll} (General Category 'Ll')
* \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{Mark} Alias for \p{M} (Major Category 'M')
-* \p{MathSymbol} Alias for \p{Sm} (General Category 'Sm')
* \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{ModifierLetter} Alias for \p{Lm} (General Category 'Lm')
-* \p{ModifierSymbol} Alias for \p{Sk} (General Category 'Sk')
* \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{NonSpacingMark} Alias for \p{Mn} (General Category 'Mn')
* \p{NoncharacterCodePoint} Extended property 'Noncharacter_Code_Point'
+* \p{No} Alias for \p{No} (General Category 'No')
\p{No} General Category 'No'
-* \p{Number} Alias for \p{N} (Major Category 'N')
+* \p{N} Alias for \p{N} (Major Category 'N')
\p{N} Major Category 'N'
* \p{Ogham} Script 'OGHAM'
* \p{OldItalic} Script 'OLD-ITALIC'
-* \p{OpenPunctuation} Alias for \p{Ps} (General Category 'Ps')
* \p{Oriya} Script 'ORIYA'
* \p{OtherAlphabetic} Extended property 'Other_Alphabetic'
-* \p{OtherLetter} Alias for \p{Lo} (General Category 'Lo')
* \p{OtherLowercase} Extended property 'Other_Lowercase'
* \p{OtherMath} Extended property 'Other_Math'
-* \p{OtherNumber} Alias for \p{No} (General Category 'No')
-* \p{OtherPunctuation} Alias for \p{Po} (General Category 'Po')
-* \p{OtherSymbol} Alias for \p{So} (General Category 'So')
* \p{OtherUppercase} Extended property 'Other_Uppercase'
-* \p{Other} Alias for \p{C} (Major Category 'C')
-* \p{ParagraphSeparator} Alias for \p{Zp} (General Category 'Zp')
+* \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{PrivateUse} Alias for \p{Co} (General Category 'Co')
+* \p{Ps} Alias for \p{Ps} (General Category 'Ps')
\p{Ps} General Category 'Ps'
-* \p{Punctuation} Alias for \p{P} (Major Category 'P')
\p{Punct} [[:Punct:]]
+* \p{P} Alias for \p{P} (Major Category 'P')
\p{P} Major Category 'P'
* \p{QuotationMark} Extended property 'Quotation_Mark'
* \p{Runic} Script 'RUNIC'
+* \p{Sc} Alias for \p{Sc} (General Category 'Sc')
\p{Sc} General Category 'Sc'
-* \p{Separator} Alias for \p{Z} (Major Category 'Z')
* \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{So} Alias for \p{So} (General Category 'So')
\p{So} General Category 'So'
\p{SpacePerl} \s
-* \p{SpaceSeparator} Alias for \p{Zs} (General Category 'Zs')
\p{Space} [[:Space:]]
-* \p{SpacingMark} Alias for \p{Mc} (General Category 'Mc')
-* \p{Surrogate} Alias for \p{Cs} (General Category 'Cs')
-* \p{Symbol} Alias for \p{S} (Major Category 'S')
* \p{Syriac} Script 'SYRIAC'
+* \p{S} Alias for \p{S} (Major Category 'S')
\p{S} Major Category 'S'
* \p{Tamil} Script 'TAMIL'
* \p{Telugu} Script 'TELUGU'
@@ -312,19 +282,20 @@
* \p{Thaana} Script 'THAANA'
* \p{Thai} Script 'THAI'
* \p{Tibetan} Script 'TIBETAN'
-* \p{TitlecaseLetter} Alias for \p{Lt} (General Category 'Lt')
\p{Title} [[:Title:]]
-* \p{Unassigned} Alias for \p{Cn} (General Category 'Cn' [not functional in Perl])
-* \p{UppercaseLetter} Alias for \p{Lu} (General Category 'Lu')
* \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)
diff --git a/lib/unicore/To/Digit.pl b/lib/unicore/To/Digit.pl
index 74b34a18e3..9531d15502 100644
--- a/lib/unicore/To/Digit.pl
+++ b/lib/unicore/To/Digit.pl
@@ -1,5 +1,5 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by mktables from e.g. Unicode.txt.
+# This file is built by ./mktables from e.g. Unicode.txt.
# Any changes made here will be lost!
return <<'END';
diff --git a/lib/unicore/To/Fold.pl b/lib/unicore/To/Fold.pl
index 5a9117fa89..ae5642d381 100644
--- a/lib/unicore/To/Fold.pl
+++ b/lib/unicore/To/Fold.pl
@@ -1,5 +1,5 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by mktables from e.g. Unicode.txt.
+# This file is built by ./mktables from e.g. Unicode.txt.
# Any changes made here will be lost!
diff --git a/lib/unicore/To/Lower.pl b/lib/unicore/To/Lower.pl
index 057491094a..0cf3d23dbe 100644
--- a/lib/unicore/To/Lower.pl
+++ b/lib/unicore/To/Lower.pl
@@ -1,5 +1,5 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by mktables from e.g. Unicode.txt.
+# This file is built by ./mktables from e.g. Unicode.txt.
# Any changes made here will be lost!
diff --git a/lib/unicore/To/Title.pl b/lib/unicore/To/Title.pl
index 576cff352b..445732f3df 100644
--- a/lib/unicore/To/Title.pl
+++ b/lib/unicore/To/Title.pl
@@ -1,5 +1,5 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by mktables from e.g. Unicode.txt.
+# This file is built by ./mktables from e.g. Unicode.txt.
# Any changes made here will be lost!
diff --git a/lib/unicore/To/Upper.pl b/lib/unicore/To/Upper.pl
index 3b3f07f6d4..3b57ed343b 100644
--- a/lib/unicore/To/Upper.pl
+++ b/lib/unicore/To/Upper.pl
@@ -1,5 +1,5 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is built by mktables from e.g. Unicode.txt.
+# This file is built by ./mktables from e.g. Unicode.txt.
# Any changes made here will be lost!
diff --git a/lib/unicore/Is/ASCII.pl b/lib/unicore/lib/ASCII.pl
index c40837d58b..c40837d58b 100644
--- a/lib/unicore/Is/ASCII.pl
+++ b/lib/unicore/lib/ASCII.pl
diff --git a/lib/unicore/Is/Alnum.pl b/lib/unicore/lib/Alnum.pl
index 9fdf74eb47..9fdf74eb47 100644
--- a/lib/unicore/Is/Alnum.pl
+++ b/lib/unicore/lib/Alnum.pl
diff --git a/lib/unicore/Is/Alpha.pl b/lib/unicore/lib/Alpha.pl
index c0923d8a3e..c0923d8a3e 100644
--- a/lib/unicore/Is/Alpha.pl
+++ b/lib/unicore/lib/Alpha.pl
diff --git a/lib/unicore/Is/Alphabet.pl b/lib/unicore/lib/Alphabet.pl
index d7462dd280..d7462dd280 100644
--- a/lib/unicore/Is/Alphabet.pl
+++ b/lib/unicore/lib/Alphabet.pl
diff --git a/lib/unicore/Is/Any.pl b/lib/unicore/lib/Any.pl
index 45a06365bf..8179ec7a4c 100644
--- a/lib/unicore/Is/Any.pl
+++ b/lib/unicore/lib/Any.pl
@@ -4,8 +4,8 @@
#
# This file supports:
-# \p{Any} (and fuzzy permutations)
-# \p{All} (and fuzzy permutations)
+# \p{Any}
+# \p{Any}
#
# Meaning: [\x{0000}-\x{10FFFF}]
#
diff --git a/lib/unicore/Is/Arabic.pl b/lib/unicore/lib/Arabic.pl
index 4b66297c51..4b66297c51 100644
--- a/lib/unicore/Is/Arabic.pl
+++ b/lib/unicore/lib/Arabic.pl
diff --git a/lib/unicore/Is/Armenian.pl b/lib/unicore/lib/Armenian.pl
index 567452d377..567452d377 100644
--- a/lib/unicore/Is/Armenian.pl
+++ b/lib/unicore/lib/Armenian.pl
diff --git a/lib/unicore/Is/AsciiHex.pl b/lib/unicore/lib/AsciiHex.pl
index ef8a62da0a..ef8a62da0a 100644
--- a/lib/unicore/Is/AsciiHex.pl
+++ b/lib/unicore/lib/AsciiHex.pl
diff --git a/lib/unicore/Is/Assigned.pl b/lib/unicore/lib/Assigned.pl
index 3646421d65..e1ace2efd5 100644
--- a/lib/unicore/Is/Assigned.pl
+++ b/lib/unicore/lib/Assigned.pl
@@ -4,7 +4,7 @@
#
# This file supports:
-# \p{Assigned} (and fuzzy permutations)
+# \p{Assigned}
#
# Meaning: All assigned code points
#
diff --git a/lib/unicore/Is/Bengali.pl b/lib/unicore/lib/Bengali.pl
index 8a04b2024e..8a04b2024e 100644
--- a/lib/unicore/Is/Bengali.pl
+++ b/lib/unicore/lib/Bengali.pl
diff --git a/lib/unicore/Is/BidiAL.pl b/lib/unicore/lib/BidiAL.pl
index 872a1a60f8..872a1a60f8 100644
--- a/lib/unicore/Is/BidiAL.pl
+++ b/lib/unicore/lib/BidiAL.pl
diff --git a/lib/unicore/Is/BidiAN.pl b/lib/unicore/lib/BidiAN.pl
index 6c401fce9b..6c401fce9b 100644
--- a/lib/unicore/Is/BidiAN.pl
+++ b/lib/unicore/lib/BidiAN.pl
diff --git a/lib/unicore/Is/BidiB.pl b/lib/unicore/lib/BidiB.pl
index d0c069c1b1..d0c069c1b1 100644
--- a/lib/unicore/Is/BidiB.pl
+++ b/lib/unicore/lib/BidiB.pl
diff --git a/lib/unicore/Is/BidiBN.pl b/lib/unicore/lib/BidiBN.pl
index f0e171b2d2..f0e171b2d2 100644
--- a/lib/unicore/Is/BidiBN.pl
+++ b/lib/unicore/lib/BidiBN.pl
diff --git a/lib/unicore/Is/BidiCS.pl b/lib/unicore/lib/BidiCS.pl
index 129154e496..129154e496 100644
--- a/lib/unicore/Is/BidiCS.pl
+++ b/lib/unicore/lib/BidiCS.pl
diff --git a/lib/unicore/Is/BidiCont.pl b/lib/unicore/lib/BidiCont.pl
index 62a70c8da7..62a70c8da7 100644
--- a/lib/unicore/Is/BidiCont.pl
+++ b/lib/unicore/lib/BidiCont.pl
diff --git a/lib/unicore/Is/BidiEN.pl b/lib/unicore/lib/BidiEN.pl
index 3834487af5..3834487af5 100644
--- a/lib/unicore/Is/BidiEN.pl
+++ b/lib/unicore/lib/BidiEN.pl
diff --git a/lib/unicore/Is/BidiES.pl b/lib/unicore/lib/BidiES.pl
index e62c1288c3..e62c1288c3 100644
--- a/lib/unicore/Is/BidiES.pl
+++ b/lib/unicore/lib/BidiES.pl
diff --git a/lib/unicore/Is/BidiET.pl b/lib/unicore/lib/BidiET.pl
index 092ac54307..092ac54307 100644
--- a/lib/unicore/Is/BidiET.pl
+++ b/lib/unicore/lib/BidiET.pl
diff --git a/lib/unicore/Is/BidiL.pl b/lib/unicore/lib/BidiL.pl
index bb13e01ad7..bb13e01ad7 100644
--- a/lib/unicore/Is/BidiL.pl
+++ b/lib/unicore/lib/BidiL.pl
diff --git a/lib/unicore/Is/BidiLRE.pl b/lib/unicore/lib/BidiLRE.pl
index 208ec0a28c..208ec0a28c 100644
--- a/lib/unicore/Is/BidiLRE.pl
+++ b/lib/unicore/lib/BidiLRE.pl
diff --git a/lib/unicore/Is/BidiLRO.pl b/lib/unicore/lib/BidiLRO.pl
index f85446bd22..f85446bd22 100644
--- a/lib/unicore/Is/BidiLRO.pl
+++ b/lib/unicore/lib/BidiLRO.pl
diff --git a/lib/unicore/Is/BidiNSM.pl b/lib/unicore/lib/BidiNSM.pl
index 303cdb88fc..303cdb88fc 100644
--- a/lib/unicore/Is/BidiNSM.pl
+++ b/lib/unicore/lib/BidiNSM.pl
diff --git a/lib/unicore/Is/BidiON.pl b/lib/unicore/lib/BidiON.pl
index 7a205bf0d2..7a205bf0d2 100644
--- a/lib/unicore/Is/BidiON.pl
+++ b/lib/unicore/lib/BidiON.pl
diff --git a/lib/unicore/Is/BidiPDF.pl b/lib/unicore/lib/BidiPDF.pl
index 35a417f77f..35a417f77f 100644
--- a/lib/unicore/Is/BidiPDF.pl
+++ b/lib/unicore/lib/BidiPDF.pl
diff --git a/lib/unicore/Is/BidiR.pl b/lib/unicore/lib/BidiR.pl
index 44d2445ba3..44d2445ba3 100644
--- a/lib/unicore/Is/BidiR.pl
+++ b/lib/unicore/lib/BidiR.pl
diff --git a/lib/unicore/Is/BidiRLE.pl b/lib/unicore/lib/BidiRLE.pl
index f85f09af41..f85f09af41 100644
--- a/lib/unicore/Is/BidiRLE.pl
+++ b/lib/unicore/lib/BidiRLE.pl
diff --git a/lib/unicore/Is/BidiRLO.pl b/lib/unicore/lib/BidiRLO.pl
index 03629888de..03629888de 100644
--- a/lib/unicore/Is/BidiRLO.pl
+++ b/lib/unicore/lib/BidiRLO.pl
diff --git a/lib/unicore/Is/BidiS.pl b/lib/unicore/lib/BidiS.pl
index a7ba061798..a7ba061798 100644
--- a/lib/unicore/Is/BidiS.pl
+++ b/lib/unicore/lib/BidiS.pl
diff --git a/lib/unicore/Is/BidiWS.pl b/lib/unicore/lib/BidiWS.pl
index 44414f0d5c..44414f0d5c 100644
--- a/lib/unicore/Is/BidiWS.pl
+++ b/lib/unicore/lib/BidiWS.pl
diff --git a/lib/unicore/Is/Blank.pl b/lib/unicore/lib/Blank.pl
index 73abe8220e..73abe8220e 100644
--- a/lib/unicore/Is/Blank.pl
+++ b/lib/unicore/lib/Blank.pl
diff --git a/lib/unicore/Is/Bopomofo.pl b/lib/unicore/lib/Bopomofo.pl
index f4f1b70f78..f4f1b70f78 100644
--- a/lib/unicore/Is/Bopomofo.pl
+++ b/lib/unicore/lib/Bopomofo.pl
diff --git a/lib/unicore/Is/C.pl b/lib/unicore/lib/C.pl
index f9f7420d23..c3a04e8099 100644
--- a/lib/unicore/Is/C.pl
+++ b/lib/unicore/lib/C.pl
@@ -5,7 +5,7 @@
#
# This file supports:
# \p{C}
-# \p{Other} (and fuzzy permutations)
+# \p{C} (and fuzzy permutations)
#
# Meaning: Major Category 'C'
#
diff --git a/lib/unicore/Is/Canadian.pl b/lib/unicore/lib/Canadian.pl
index dd223f1ff3..dd223f1ff3 100644
--- a/lib/unicore/Is/Canadian.pl
+++ b/lib/unicore/lib/Canadian.pl
diff --git a/lib/unicore/Is/Canon.pl b/lib/unicore/lib/Canon.pl
index f01176318c..f01176318c 100644
--- a/lib/unicore/Is/Canon.pl
+++ b/lib/unicore/lib/Canon.pl
diff --git a/lib/unicore/Is/Cc.pl b/lib/unicore/lib/Cc.pl
index 0d654abf50..4238ba8c9b 100644
--- a/lib/unicore/Is/Cc.pl
+++ b/lib/unicore/lib/Cc.pl
@@ -5,7 +5,7 @@
#
# This file supports:
# \p{Cc}
-# \p{Control} (and fuzzy permutations)
+# \p{Cc} (and fuzzy permutations)
#
# Meaning: General Category 'Cc'
#
diff --git a/lib/unicore/Is/Cf.pl b/lib/unicore/lib/Cf.pl
index efc1336eb1..9c05455cf3 100644
--- a/lib/unicore/Is/Cf.pl
+++ b/lib/unicore/lib/Cf.pl
@@ -5,7 +5,7 @@
#
# This file supports:
# \p{Cf}
-# \p{Format} (and fuzzy permutations)
+# \p{Cf} (and fuzzy permutations)
#
# Meaning: General Category 'Cf'
#
diff --git a/lib/unicore/Is/Cherokee.pl b/lib/unicore/lib/Cherokee.pl
index 9546fd7b21..9546fd7b21 100644
--- a/lib/unicore/Is/Cherokee.pl
+++ b/lib/unicore/lib/Cherokee.pl
diff --git a/lib/unicore/Is/Cn.pl b/lib/unicore/lib/Cn.pl
index b2598e7f41..c666285a7d 100644
--- a/lib/unicore/Is/Cn.pl
+++ b/lib/unicore/lib/Cn.pl
@@ -5,7 +5,7 @@
#
# This file supports:
# \p{Cn}
-# \p{Unassigned} (and fuzzy permutations)
+# \p{Cn} (and fuzzy permutations)
#
# Meaning: General Category 'Cn' [not functional in Perl]
#
diff --git a/lib/unicore/Is/Cntrl.pl b/lib/unicore/lib/Cntrl.pl
index cb64dffc01..cb64dffc01 100644
--- a/lib/unicore/Is/Cntrl.pl
+++ b/lib/unicore/lib/Cntrl.pl
diff --git a/lib/unicore/Is/Co.pl b/lib/unicore/lib/Co.pl
index 46da434ec9..bd792f3367 100644
--- a/lib/unicore/Is/Co.pl
+++ b/lib/unicore/lib/Co.pl
@@ -5,7 +5,7 @@
#
# This file supports:
# \p{Co}
-# \p{PrivateUse} (and fuzzy permutations)
+# \p{Co} (and fuzzy permutations)
#
# Meaning: General Category 'Co'
#
diff --git a/lib/unicore/Is/Common.pl b/lib/unicore/lib/Common.pl
index 39156aec8b..39156aec8b 100644
--- a/lib/unicore/Is/Common.pl
+++ b/lib/unicore/lib/Common.pl
diff --git a/lib/unicore/Is/Compat.pl b/lib/unicore/lib/Compat.pl
index 0d8519e037..0d8519e037 100644
--- a/lib/unicore/Is/Compat.pl
+++ b/lib/unicore/lib/Compat.pl
diff --git a/lib/unicore/Is/Cs.pl b/lib/unicore/lib/Cs.pl
index a6a181fd2b..5a1ea95629 100644
--- a/lib/unicore/Is/Cs.pl
+++ b/lib/unicore/lib/Cs.pl
@@ -5,7 +5,7 @@
#
# This file supports:
# \p{Cs}
-# \p{Surrogate} (and fuzzy permutations)
+# \p{Cs} (and fuzzy permutations)
#
# Meaning: General Category 'Cs'
#
diff --git a/lib/unicore/Is/Cyrillic.pl b/lib/unicore/lib/Cyrillic.pl
index c2da17985c..c2da17985c 100644
--- a/lib/unicore/Is/Cyrillic.pl
+++ b/lib/unicore/lib/Cyrillic.pl
diff --git a/lib/unicore/Is/DCcircle.pl b/lib/unicore/lib/DCcircle.pl
index 8cdd900855..8cdd900855 100644
--- a/lib/unicore/Is/DCcircle.pl
+++ b/lib/unicore/lib/DCcircle.pl
diff --git a/lib/unicore/Is/DCcompat.pl b/lib/unicore/lib/DCcompat.pl
index dedd1db6f9..dedd1db6f9 100644
--- a/lib/unicore/Is/DCcompat.pl
+++ b/lib/unicore/lib/DCcompat.pl
diff --git a/lib/unicore/Is/DCfinal.pl b/lib/unicore/lib/DCfinal.pl
index 35b7a2bbd1..35b7a2bbd1 100644
--- a/lib/unicore/Is/DCfinal.pl
+++ b/lib/unicore/lib/DCfinal.pl
diff --git a/lib/unicore/Is/DCfont.pl b/lib/unicore/lib/DCfont.pl
index d854833279..d854833279 100644
--- a/lib/unicore/Is/DCfont.pl
+++ b/lib/unicore/lib/DCfont.pl
diff --git a/lib/unicore/Is/DCfracti.pl b/lib/unicore/lib/DCfracti.pl
index 829f92c6a3..829f92c6a3 100644
--- a/lib/unicore/Is/DCfracti.pl
+++ b/lib/unicore/lib/DCfracti.pl
diff --git a/lib/unicore/Is/DCinitia.pl b/lib/unicore/lib/DCinitia.pl
index d1806fc575..d1806fc575 100644
--- a/lib/unicore/Is/DCinitia.pl
+++ b/lib/unicore/lib/DCinitia.pl
diff --git a/lib/unicore/Is/DCisolat.pl b/lib/unicore/lib/DCisolat.pl
index 4d6c1d67bf..4d6c1d67bf 100644
--- a/lib/unicore/Is/DCisolat.pl
+++ b/lib/unicore/lib/DCisolat.pl
diff --git a/lib/unicore/Is/DCmedial.pl b/lib/unicore/lib/DCmedial.pl
index 7fd7ee2561..7fd7ee2561 100644
--- a/lib/unicore/Is/DCmedial.pl
+++ b/lib/unicore/lib/DCmedial.pl
diff --git a/lib/unicore/Is/DCnarrow.pl b/lib/unicore/lib/DCnarrow.pl
index ed77c2e0be..ed77c2e0be 100644
--- a/lib/unicore/Is/DCnarrow.pl
+++ b/lib/unicore/lib/DCnarrow.pl
diff --git a/lib/unicore/Is/DCnoBrea.pl b/lib/unicore/lib/DCnoBrea.pl
index 57874cf570..57874cf570 100644
--- a/lib/unicore/Is/DCnoBrea.pl
+++ b/lib/unicore/lib/DCnoBrea.pl
diff --git a/lib/unicore/Is/DCsmall.pl b/lib/unicore/lib/DCsmall.pl
index aa89e45fca..aa89e45fca 100644
--- a/lib/unicore/Is/DCsmall.pl
+++ b/lib/unicore/lib/DCsmall.pl
diff --git a/lib/unicore/Is/DCsquare.pl b/lib/unicore/lib/DCsquare.pl
index 07dc325373..07dc325373 100644
--- a/lib/unicore/Is/DCsquare.pl
+++ b/lib/unicore/lib/DCsquare.pl
diff --git a/lib/unicore/Is/DCsub.pl b/lib/unicore/lib/DCsub.pl
index ea5467b1f3..ea5467b1f3 100644
--- a/lib/unicore/Is/DCsub.pl
+++ b/lib/unicore/lib/DCsub.pl
diff --git a/lib/unicore/Is/DCsuper.pl b/lib/unicore/lib/DCsuper.pl
index 13c7dd7485..13c7dd7485 100644
--- a/lib/unicore/Is/DCsuper.pl
+++ b/lib/unicore/lib/DCsuper.pl
diff --git a/lib/unicore/Is/DCvertic.pl b/lib/unicore/lib/DCvertic.pl
index 8fa6b8c7ba..8fa6b8c7ba 100644
--- a/lib/unicore/Is/DCvertic.pl
+++ b/lib/unicore/lib/DCvertic.pl
diff --git a/lib/unicore/Is/DCwide.pl b/lib/unicore/lib/DCwide.pl
index eb3f542cdf..eb3f542cdf 100644
--- a/lib/unicore/Is/DCwide.pl
+++ b/lib/unicore/lib/DCwide.pl
diff --git a/lib/unicore/Is/Dash.pl b/lib/unicore/lib/Dash.pl
index 00f3589682..00f3589682 100644
--- a/lib/unicore/Is/Dash.pl
+++ b/lib/unicore/lib/Dash.pl
diff --git a/lib/unicore/Is/Deseret.pl b/lib/unicore/lib/Deseret.pl
index 210e7a1661..210e7a1661 100644
--- a/lib/unicore/Is/Deseret.pl
+++ b/lib/unicore/lib/Deseret.pl
diff --git a/lib/unicore/Is/Devanaga.pl b/lib/unicore/lib/Devanaga.pl
index 904708bc35..904708bc35 100644
--- a/lib/unicore/Is/Devanaga.pl
+++ b/lib/unicore/lib/Devanaga.pl
diff --git a/lib/unicore/Is/Diacriti.pl b/lib/unicore/lib/Diacriti.pl
index ddd09eccc8..ddd09eccc8 100644
--- a/lib/unicore/Is/Diacriti.pl
+++ b/lib/unicore/lib/Diacriti.pl
diff --git a/lib/unicore/Is/Digit.pl b/lib/unicore/lib/Digit.pl
index d494682d09..d494682d09 100644
--- a/lib/unicore/Is/Digit.pl
+++ b/lib/unicore/lib/Digit.pl
diff --git a/lib/unicore/Is/Ethiopic.pl b/lib/unicore/lib/Ethiopic.pl
index 2627f83170..2627f83170 100644
--- a/lib/unicore/Is/Ethiopic.pl
+++ b/lib/unicore/lib/Ethiopic.pl
diff --git a/lib/unicore/Is/Extender.pl b/lib/unicore/lib/Extender.pl
index 587cc5b540..587cc5b540 100644
--- a/lib/unicore/Is/Extender.pl
+++ b/lib/unicore/lib/Extender.pl
diff --git a/lib/unicore/Is/Georgian.pl b/lib/unicore/lib/Georgian.pl
index 94d1445730..94d1445730 100644
--- a/lib/unicore/Is/Georgian.pl
+++ b/lib/unicore/lib/Georgian.pl
diff --git a/lib/unicore/Is/Gothic.pl b/lib/unicore/lib/Gothic.pl
index 6a25e6c234..6a25e6c234 100644
--- a/lib/unicore/Is/Gothic.pl
+++ b/lib/unicore/lib/Gothic.pl
diff --git a/lib/unicore/Is/Graph.pl b/lib/unicore/lib/Graph.pl
index cc76eb2a23..cc76eb2a23 100644
--- a/lib/unicore/Is/Graph.pl
+++ b/lib/unicore/lib/Graph.pl
diff --git a/lib/unicore/Is/Greek.pl b/lib/unicore/lib/Greek.pl
index 177a0d68c8..177a0d68c8 100644
--- a/lib/unicore/Is/Greek.pl
+++ b/lib/unicore/lib/Greek.pl
diff --git a/lib/unicore/Is/Gujarati.pl b/lib/unicore/lib/Gujarati.pl
index ef62ccc7fd..ef62ccc7fd 100644
--- a/lib/unicore/Is/Gujarati.pl
+++ b/lib/unicore/lib/Gujarati.pl
diff --git a/lib/unicore/Is/Gurmukhi.pl b/lib/unicore/lib/Gurmukhi.pl
index 4b16a9e433..4b16a9e433 100644
--- a/lib/unicore/Is/Gurmukhi.pl
+++ b/lib/unicore/lib/Gurmukhi.pl
diff --git a/lib/unicore/Is/Han.pl b/lib/unicore/lib/Han.pl
index 549ce1e5d6..549ce1e5d6 100644
--- a/lib/unicore/Is/Han.pl
+++ b/lib/unicore/lib/Han.pl
diff --git a/lib/unicore/Is/Hangul.pl b/lib/unicore/lib/Hangul.pl
index df24cd20a1..df24cd20a1 100644
--- a/lib/unicore/Is/Hangul.pl
+++ b/lib/unicore/lib/Hangul.pl
diff --git a/lib/unicore/Is/Hebrew.pl b/lib/unicore/lib/Hebrew.pl
index a4fb1eb435..a4fb1eb435 100644
--- a/lib/unicore/Is/Hebrew.pl
+++ b/lib/unicore/lib/Hebrew.pl
diff --git a/lib/unicore/Is/HexDigit.pl b/lib/unicore/lib/HexDigit.pl
index 38b30718f8..38b30718f8 100644
--- a/lib/unicore/Is/HexDigit.pl
+++ b/lib/unicore/lib/HexDigit.pl
diff --git a/lib/unicore/Is/Hiragana.pl b/lib/unicore/lib/Hiragana.pl
index 8731f2b84b..8731f2b84b 100644
--- a/lib/unicore/Is/Hiragana.pl
+++ b/lib/unicore/lib/Hiragana.pl
diff --git a/lib/unicore/Is/Hyphen.pl b/lib/unicore/lib/Hyphen.pl
index e868bcaf93..e868bcaf93 100644
--- a/lib/unicore/Is/Hyphen.pl
+++ b/lib/unicore/lib/Hyphen.pl
diff --git a/lib/unicore/Is/IdContin.pl b/lib/unicore/lib/IdContin.pl
index 365e88643c..365e88643c 100644
--- a/lib/unicore/Is/IdContin.pl
+++ b/lib/unicore/lib/IdContin.pl
diff --git a/lib/unicore/Is/IdStart.pl b/lib/unicore/lib/IdStart.pl
index 4d89817fac..4d89817fac 100644
--- a/lib/unicore/Is/IdStart.pl
+++ b/lib/unicore/lib/IdStart.pl
diff --git a/lib/unicore/Is/Ideograp.pl b/lib/unicore/lib/Ideograp.pl
index 505bbb9ab5..505bbb9ab5 100644
--- a/lib/unicore/Is/Ideograp.pl
+++ b/lib/unicore/lib/Ideograp.pl
diff --git a/lib/unicore/In/Alphabet.pl b/lib/unicore/lib/InAlphab.pl
index fe0723307f..fe0723307f 100644
--- a/lib/unicore/In/Alphabet.pl
+++ b/lib/unicore/lib/InAlphab.pl
diff --git a/lib/unicore/In/ArabicPr.pl b/lib/unicore/lib/InArabi2.pl
index 75ae10921a..75ae10921a 100644
--- a/lib/unicore/In/ArabicPr.pl
+++ b/lib/unicore/lib/InArabi2.pl
diff --git a/lib/unicore/In/ArabicP2.pl b/lib/unicore/lib/InArabi3.pl
index 1c4e4c085e..1c4e4c085e 100644
--- a/lib/unicore/In/ArabicP2.pl
+++ b/lib/unicore/lib/InArabi3.pl
diff --git a/lib/unicore/In/Arabic.pl b/lib/unicore/lib/InArabic.pl
index ae7cb8d6c3..ae7cb8d6c3 100644
--- a/lib/unicore/In/Arabic.pl
+++ b/lib/unicore/lib/InArabic.pl
diff --git a/lib/unicore/In/Armenian.pl b/lib/unicore/lib/InArmeni.pl
index 7ff3911c57..7ff3911c57 100644
--- a/lib/unicore/In/Armenian.pl
+++ b/lib/unicore/lib/InArmeni.pl
diff --git a/lib/unicore/In/Arrows.pl b/lib/unicore/lib/InArrows.pl
index 8a58c83644..8a58c83644 100644
--- a/lib/unicore/In/Arrows.pl
+++ b/lib/unicore/lib/InArrows.pl
diff --git a/lib/unicore/In/BasicLat.pl b/lib/unicore/lib/InBasicL.pl
index fd18493b3b..fd18493b3b 100644
--- a/lib/unicore/In/BasicLat.pl
+++ b/lib/unicore/lib/InBasicL.pl
diff --git a/lib/unicore/In/Bengali.pl b/lib/unicore/lib/InBengal.pl
index a941f061b8..a941f061b8 100644
--- a/lib/unicore/In/Bengali.pl
+++ b/lib/unicore/lib/InBengal.pl
diff --git a/lib/unicore/In/BlockEle.pl b/lib/unicore/lib/InBlockE.pl
index c0a2267105..c0a2267105 100644
--- a/lib/unicore/In/BlockEle.pl
+++ b/lib/unicore/lib/InBlockE.pl
diff --git a/lib/unicore/In/Bopomof2.pl b/lib/unicore/lib/InBopom2.pl
index 105f4daf93..105f4daf93 100644
--- a/lib/unicore/In/Bopomof2.pl
+++ b/lib/unicore/lib/InBopom2.pl
diff --git a/lib/unicore/In/Bopomofo.pl b/lib/unicore/lib/InBopomo.pl
index 78f2d225f9..78f2d225f9 100644
--- a/lib/unicore/In/Bopomofo.pl
+++ b/lib/unicore/lib/InBopomo.pl
diff --git a/lib/unicore/In/BoxDrawi.pl b/lib/unicore/lib/InBoxDra.pl
index b109be010e..b109be010e 100644
--- a/lib/unicore/In/BoxDrawi.pl
+++ b/lib/unicore/lib/InBoxDra.pl
diff --git a/lib/unicore/In/BrailleP.pl b/lib/unicore/lib/InBraill.pl
index 2e5d23d910..2e5d23d910 100644
--- a/lib/unicore/In/BrailleP.pl
+++ b/lib/unicore/lib/InBraill.pl
diff --git a/lib/unicore/In/Byzantin.pl b/lib/unicore/lib/InByzant.pl
index d619d601db..d619d601db 100644
--- a/lib/unicore/In/Byzantin.pl
+++ b/lib/unicore/lib/InByzant.pl
diff --git a/lib/unicore/In/Cherokee.pl b/lib/unicore/lib/InCherok.pl
index baba329fac..baba329fac 100644
--- a/lib/unicore/In/Cherokee.pl
+++ b/lib/unicore/lib/InCherok.pl
diff --git a/lib/unicore/In/CjkComp2.pl b/lib/unicore/lib/InCjkCo2.pl
index 782b00d31e..782b00d31e 100644
--- a/lib/unicore/In/CjkComp2.pl
+++ b/lib/unicore/lib/InCjkCo2.pl
diff --git a/lib/unicore/In/CjkComp3.pl b/lib/unicore/lib/InCjkCo3.pl
index dc3cc61a40..dc3cc61a40 100644
--- a/lib/unicore/In/CjkComp3.pl
+++ b/lib/unicore/lib/InCjkCo3.pl
diff --git a/lib/unicore/In/CjkComp4.pl b/lib/unicore/lib/InCjkCo4.pl
index 1446c1e740..1446c1e740 100644
--- a/lib/unicore/In/CjkComp4.pl
+++ b/lib/unicore/lib/InCjkCo4.pl
diff --git a/lib/unicore/In/CjkCompa.pl b/lib/unicore/lib/InCjkCom.pl
index e9f7da6f48..e9f7da6f48 100644
--- a/lib/unicore/In/CjkCompa.pl
+++ b/lib/unicore/lib/InCjkCom.pl
diff --git a/lib/unicore/In/CjkRadic.pl b/lib/unicore/lib/InCjkRad.pl
index 7933c42dbb..7933c42dbb 100644
--- a/lib/unicore/In/CjkRadic.pl
+++ b/lib/unicore/lib/InCjkRad.pl
diff --git a/lib/unicore/In/CjkSymbo.pl b/lib/unicore/lib/InCjkSym.pl
index 7c580d151e..7c580d151e 100644
--- a/lib/unicore/In/CjkSymbo.pl
+++ b/lib/unicore/lib/InCjkSym.pl
diff --git a/lib/unicore/In/CjkUnif3.pl b/lib/unicore/lib/InCjkUn2.pl
index c5a0da4bb9..c5a0da4bb9 100644
--- a/lib/unicore/In/CjkUnif3.pl
+++ b/lib/unicore/lib/InCjkUn2.pl
diff --git a/lib/unicore/In/CjkUnif2.pl b/lib/unicore/lib/InCjkUn3.pl
index 79091e0350..79091e0350 100644
--- a/lib/unicore/In/CjkUnif2.pl
+++ b/lib/unicore/lib/InCjkUn3.pl
diff --git a/lib/unicore/In/CjkUnifi.pl b/lib/unicore/lib/InCjkUni.pl
index fb5f06fcec..fb5f06fcec 100644
--- a/lib/unicore/In/CjkUnifi.pl
+++ b/lib/unicore/lib/InCjkUni.pl
diff --git a/lib/unicore/In/Combini3.pl b/lib/unicore/lib/InCombi2.pl
index 6a3c2e5428..6a3c2e5428 100644
--- a/lib/unicore/In/Combini3.pl
+++ b/lib/unicore/lib/InCombi2.pl
diff --git a/lib/unicore/In/Combini2.pl b/lib/unicore/lib/InCombi3.pl
index a1165752b9..a1165752b9 100644
--- a/lib/unicore/In/Combini2.pl
+++ b/lib/unicore/lib/InCombi3.pl
diff --git a/lib/unicore/In/Combinin.pl b/lib/unicore/lib/InCombin.pl
index 5a67b2af20..5a67b2af20 100644
--- a/lib/unicore/In/Combinin.pl
+++ b/lib/unicore/lib/InCombin.pl
diff --git a/lib/unicore/In/ControlP.pl b/lib/unicore/lib/InContro.pl
index d75ad86bd6..d75ad86bd6 100644
--- a/lib/unicore/In/ControlP.pl
+++ b/lib/unicore/lib/InContro.pl
diff --git a/lib/unicore/In/Currency.pl b/lib/unicore/lib/InCurren.pl
index 72b1dbacd6..72b1dbacd6 100644
--- a/lib/unicore/In/Currency.pl
+++ b/lib/unicore/lib/InCurren.pl
diff --git a/lib/unicore/In/Cyrillic.pl b/lib/unicore/lib/InCyrill.pl
index 06906a43a1..06906a43a1 100644
--- a/lib/unicore/In/Cyrillic.pl
+++ b/lib/unicore/lib/InCyrill.pl
diff --git a/lib/unicore/In/Deseret.pl b/lib/unicore/lib/InDesere.pl
index b13e7dcdc8..b13e7dcdc8 100644
--- a/lib/unicore/In/Deseret.pl
+++ b/lib/unicore/lib/InDesere.pl
diff --git a/lib/unicore/In/Devanaga.pl b/lib/unicore/lib/InDevana.pl
index bfa18cf3f6..bfa18cf3f6 100644
--- a/lib/unicore/In/Devanaga.pl
+++ b/lib/unicore/lib/InDevana.pl
diff --git a/lib/unicore/In/Dingbats.pl b/lib/unicore/lib/InDingba.pl
index a6408aea34..a6408aea34 100644
--- a/lib/unicore/In/Dingbats.pl
+++ b/lib/unicore/lib/InDingba.pl
diff --git a/lib/unicore/In/Enclose2.pl b/lib/unicore/lib/InEnclo2.pl
index 6aceaa7abc..6aceaa7abc 100644
--- a/lib/unicore/In/Enclose2.pl
+++ b/lib/unicore/lib/InEnclo2.pl
diff --git a/lib/unicore/In/Enclosed.pl b/lib/unicore/lib/InEnclos.pl
index 7f8e4816f4..7f8e4816f4 100644
--- a/lib/unicore/In/Enclosed.pl
+++ b/lib/unicore/lib/InEnclos.pl
diff --git a/lib/unicore/In/Ethiopic.pl b/lib/unicore/lib/InEthiop.pl
index 3cc7a3965a..3cc7a3965a 100644
--- a/lib/unicore/In/Ethiopic.pl
+++ b/lib/unicore/lib/InEthiop.pl
diff --git a/lib/unicore/In/GeneralP.pl b/lib/unicore/lib/InGenera.pl
index 3a608af75c..3a608af75c 100644
--- a/lib/unicore/In/GeneralP.pl
+++ b/lib/unicore/lib/InGenera.pl
diff --git a/lib/unicore/In/Geometri.pl b/lib/unicore/lib/InGeomet.pl
index 7e97d020a0..7e97d020a0 100644
--- a/lib/unicore/In/Geometri.pl
+++ b/lib/unicore/lib/InGeomet.pl
diff --git a/lib/unicore/In/Georgian.pl b/lib/unicore/lib/InGeorgi.pl
index 79539f4973..79539f4973 100644
--- a/lib/unicore/In/Georgian.pl
+++ b/lib/unicore/lib/InGeorgi.pl
diff --git a/lib/unicore/In/Gothic.pl b/lib/unicore/lib/InGothic.pl
index 12bba4947f..12bba4947f 100644
--- a/lib/unicore/In/Gothic.pl
+++ b/lib/unicore/lib/InGothic.pl
diff --git a/lib/unicore/In/Greek.pl b/lib/unicore/lib/InGreek.pl
index be15898d1f..be15898d1f 100644
--- a/lib/unicore/In/Greek.pl
+++ b/lib/unicore/lib/InGreek.pl
diff --git a/lib/unicore/In/GreekExt.pl b/lib/unicore/lib/InGreekE.pl
index 7e7e7c254b..7e7e7c254b 100644
--- a/lib/unicore/In/GreekExt.pl
+++ b/lib/unicore/lib/InGreekE.pl
diff --git a/lib/unicore/In/Gujarati.pl b/lib/unicore/lib/InGujara.pl
index cd05cf39ec..cd05cf39ec 100644
--- a/lib/unicore/In/Gujarati.pl
+++ b/lib/unicore/lib/InGujara.pl
diff --git a/lib/unicore/In/Gurmukhi.pl b/lib/unicore/lib/InGurmuk.pl
index 53ae08ffeb..53ae08ffeb 100644
--- a/lib/unicore/In/Gurmukhi.pl
+++ b/lib/unicore/lib/InGurmuk.pl
diff --git a/lib/unicore/In/Halfwidt.pl b/lib/unicore/lib/InHalfwi.pl
index 3700834bac..3700834bac 100644
--- a/lib/unicore/In/Halfwidt.pl
+++ b/lib/unicore/lib/InHalfwi.pl
diff --git a/lib/unicore/In/HangulSy.pl b/lib/unicore/lib/InHangu2.pl
index 0a46081111..0a46081111 100644
--- a/lib/unicore/In/HangulSy.pl
+++ b/lib/unicore/lib/InHangu2.pl
diff --git a/lib/unicore/In/HangulCo.pl b/lib/unicore/lib/InHangu3.pl
index ab9afaa79f..ab9afaa79f 100644
--- a/lib/unicore/In/HangulCo.pl
+++ b/lib/unicore/lib/InHangu3.pl
diff --git a/lib/unicore/In/HangulJa.pl b/lib/unicore/lib/InHangul.pl
index fcdd1d68c8..fcdd1d68c8 100644
--- a/lib/unicore/In/HangulJa.pl
+++ b/lib/unicore/lib/InHangul.pl
diff --git a/lib/unicore/In/Hebrew.pl b/lib/unicore/lib/InHebrew.pl
index 291111511f..291111511f 100644
--- a/lib/unicore/In/Hebrew.pl
+++ b/lib/unicore/lib/InHebrew.pl
diff --git a/lib/unicore/In/HighPriv.pl b/lib/unicore/lib/InHighPr.pl
index f0bf1c3808..f0bf1c3808 100644
--- a/lib/unicore/In/HighPriv.pl
+++ b/lib/unicore/lib/InHighPr.pl
diff --git a/lib/unicore/In/HighSurr.pl b/lib/unicore/lib/InHighSu.pl
index 40de27a331..40de27a331 100644
--- a/lib/unicore/In/HighSurr.pl
+++ b/lib/unicore/lib/InHighSu.pl
diff --git a/lib/unicore/In/Hiragana.pl b/lib/unicore/lib/InHiraga.pl
index 48599480f8..48599480f8 100644
--- a/lib/unicore/In/Hiragana.pl
+++ b/lib/unicore/lib/InHiraga.pl
diff --git a/lib/unicore/In/Ideograp.pl b/lib/unicore/lib/InIdeogr.pl
index 7e52105514..7e52105514 100644
--- a/lib/unicore/In/Ideograp.pl
+++ b/lib/unicore/lib/InIdeogr.pl
diff --git a/lib/unicore/In/IpaExten.pl b/lib/unicore/lib/InIpaExt.pl
index 9926bea2c5..9926bea2c5 100644
--- a/lib/unicore/In/IpaExten.pl
+++ b/lib/unicore/lib/InIpaExt.pl
diff --git a/lib/unicore/In/Kanbun.pl b/lib/unicore/lib/InKanbun.pl
index d99efdd72a..d99efdd72a 100644
--- a/lib/unicore/In/Kanbun.pl
+++ b/lib/unicore/lib/InKanbun.pl
diff --git a/lib/unicore/In/KangxiRa.pl b/lib/unicore/lib/InKangxi.pl
index 6dd91e0416..6dd91e0416 100644
--- a/lib/unicore/In/KangxiRa.pl
+++ b/lib/unicore/lib/InKangxi.pl
diff --git a/lib/unicore/In/Kannada.pl b/lib/unicore/lib/InKannad.pl
index b9a5a48907..b9a5a48907 100644
--- a/lib/unicore/In/Kannada.pl
+++ b/lib/unicore/lib/InKannad.pl
diff --git a/lib/unicore/In/Katakana.pl b/lib/unicore/lib/InKataka.pl
index 315725201d..315725201d 100644
--- a/lib/unicore/In/Katakana.pl
+++ b/lib/unicore/lib/InKataka.pl
diff --git a/lib/unicore/In/Khmer.pl b/lib/unicore/lib/InKhmer.pl
index e7919e9ba6..e7919e9ba6 100644
--- a/lib/unicore/In/Khmer.pl
+++ b/lib/unicore/lib/InKhmer.pl
diff --git a/lib/unicore/In/Lao.pl b/lib/unicore/lib/InLao.pl
index c6e9e503c2..c6e9e503c2 100644
--- a/lib/unicore/In/Lao.pl
+++ b/lib/unicore/lib/InLao.pl
diff --git a/lib/unicore/In/Latin1Su.pl b/lib/unicore/lib/InLatin1.pl
index 88fa91d3f2..88fa91d3f2 100644
--- a/lib/unicore/In/Latin1Su.pl
+++ b/lib/unicore/lib/InLatin1.pl
diff --git a/lib/unicore/In/LatinEx2.pl b/lib/unicore/lib/InLatin2.pl
index a56c71b152..a56c71b152 100644
--- a/lib/unicore/In/LatinEx2.pl
+++ b/lib/unicore/lib/InLatin2.pl
diff --git a/lib/unicore/In/LatinEx3.pl b/lib/unicore/lib/InLatin3.pl
index 09ed93941d..09ed93941d 100644
--- a/lib/unicore/In/LatinEx3.pl
+++ b/lib/unicore/lib/InLatin3.pl
diff --git a/lib/unicore/In/LatinExt.pl b/lib/unicore/lib/InLatinE.pl
index b17d1a0213..b17d1a0213 100644
--- a/lib/unicore/In/LatinExt.pl
+++ b/lib/unicore/lib/InLatinE.pl
diff --git a/lib/unicore/In/Letterli.pl b/lib/unicore/lib/InLetter.pl
index f87eadfce3..f87eadfce3 100644
--- a/lib/unicore/In/Letterli.pl
+++ b/lib/unicore/lib/InLetter.pl
diff --git a/lib/unicore/In/LowSurro.pl b/lib/unicore/lib/InLowSur.pl
index 56dd72e36d..56dd72e36d 100644
--- a/lib/unicore/In/LowSurro.pl
+++ b/lib/unicore/lib/InLowSur.pl
diff --git a/lib/unicore/In/Malayala.pl b/lib/unicore/lib/InMalaya.pl
index 90bfdf5ae9..90bfdf5ae9 100644
--- a/lib/unicore/In/Malayala.pl
+++ b/lib/unicore/lib/InMalaya.pl
diff --git a/lib/unicore/In/Mathema2.pl b/lib/unicore/lib/InMathe2.pl
index 0a1aca852f..0a1aca852f 100644
--- a/lib/unicore/In/Mathema2.pl
+++ b/lib/unicore/lib/InMathe2.pl
diff --git a/lib/unicore/In/Mathemat.pl b/lib/unicore/lib/InMathem.pl
index 97a874e3a7..97a874e3a7 100644
--- a/lib/unicore/In/Mathemat.pl
+++ b/lib/unicore/lib/InMathem.pl
diff --git a/lib/unicore/In/Miscell2.pl b/lib/unicore/lib/InMisce2.pl
index c11fd2bb06..c11fd2bb06 100644
--- a/lib/unicore/In/Miscell2.pl
+++ b/lib/unicore/lib/InMisce2.pl
diff --git a/lib/unicore/In/Miscella.pl b/lib/unicore/lib/InMiscel.pl
index 3b682441ea..3b682441ea 100644
--- a/lib/unicore/In/Miscella.pl
+++ b/lib/unicore/lib/InMiscel.pl
diff --git a/lib/unicore/In/Mongolia.pl b/lib/unicore/lib/InMongol.pl
index 1166665f01..1166665f01 100644
--- a/lib/unicore/In/Mongolia.pl
+++ b/lib/unicore/lib/InMongol.pl
diff --git a/lib/unicore/In/MusicalS.pl b/lib/unicore/lib/InMusica.pl
index 168f681817..168f681817 100644
--- a/lib/unicore/In/MusicalS.pl
+++ b/lib/unicore/lib/InMusica.pl
diff --git a/lib/unicore/In/Myanmar.pl b/lib/unicore/lib/InMyanma.pl
index c4e94f8982..c4e94f8982 100644
--- a/lib/unicore/In/Myanmar.pl
+++ b/lib/unicore/lib/InMyanma.pl
diff --git a/lib/unicore/In/NumberFo.pl b/lib/unicore/lib/InNumber.pl
index a15c2ffafb..a15c2ffafb 100644
--- a/lib/unicore/In/NumberFo.pl
+++ b/lib/unicore/lib/InNumber.pl
diff --git a/lib/unicore/In/Ogham.pl b/lib/unicore/lib/InOgham.pl
index 1e4ad3e03a..1e4ad3e03a 100644
--- a/lib/unicore/In/Ogham.pl
+++ b/lib/unicore/lib/InOgham.pl
diff --git a/lib/unicore/In/OldItali.pl b/lib/unicore/lib/InOldIta.pl
index e6f03e0470..e6f03e0470 100644
--- a/lib/unicore/In/OldItali.pl
+++ b/lib/unicore/lib/InOldIta.pl
diff --git a/lib/unicore/In/OpticalC.pl b/lib/unicore/lib/InOptica.pl
index 7112b783a0..7112b783a0 100644
--- a/lib/unicore/In/OpticalC.pl
+++ b/lib/unicore/lib/InOptica.pl
diff --git a/lib/unicore/In/Oriya.pl b/lib/unicore/lib/InOriya.pl
index 22d456f78f..22d456f78f 100644
--- a/lib/unicore/In/Oriya.pl
+++ b/lib/unicore/lib/InOriya.pl
diff --git a/lib/unicore/In/PrivateU.pl b/lib/unicore/lib/InPrivat.pl
index 3bf1c6ed40..3bf1c6ed40 100644
--- a/lib/unicore/In/PrivateU.pl
+++ b/lib/unicore/lib/InPrivat.pl
diff --git a/lib/unicore/In/Runic.pl b/lib/unicore/lib/InRunic.pl
index ff03ebfdd7..ff03ebfdd7 100644
--- a/lib/unicore/In/Runic.pl
+++ b/lib/unicore/lib/InRunic.pl
diff --git a/lib/unicore/In/Sinhala.pl b/lib/unicore/lib/InSinhal.pl
index 4518d7004d..4518d7004d 100644
--- a/lib/unicore/In/Sinhala.pl
+++ b/lib/unicore/lib/InSinhal.pl
diff --git a/lib/unicore/In/SmallFor.pl b/lib/unicore/lib/InSmallF.pl
index 20f44553f1..20f44553f1 100644
--- a/lib/unicore/In/SmallFor.pl
+++ b/lib/unicore/lib/InSmallF.pl
diff --git a/lib/unicore/In/SpacingM.pl b/lib/unicore/lib/InSpacin.pl
index ed1bda7be6..ed1bda7be6 100644
--- a/lib/unicore/In/SpacingM.pl
+++ b/lib/unicore/lib/InSpacin.pl
diff --git a/lib/unicore/In/Specials.pl b/lib/unicore/lib/InSpecia.pl
index bed30f4536..bed30f4536 100644
--- a/lib/unicore/In/Specials.pl
+++ b/lib/unicore/lib/InSpecia.pl
diff --git a/lib/unicore/In/Superscr.pl b/lib/unicore/lib/InSupers.pl
index 2db0bba609..2db0bba609 100644
--- a/lib/unicore/In/Superscr.pl
+++ b/lib/unicore/lib/InSupers.pl
diff --git a/lib/unicore/In/Syriac.pl b/lib/unicore/lib/InSyriac.pl
index 80c73af5f6..80c73af5f6 100644
--- a/lib/unicore/In/Syriac.pl
+++ b/lib/unicore/lib/InSyriac.pl
diff --git a/lib/unicore/In/Tags.pl b/lib/unicore/lib/InTags.pl
index eaa6a7910b..eaa6a7910b 100644
--- a/lib/unicore/In/Tags.pl
+++ b/lib/unicore/lib/InTags.pl
diff --git a/lib/unicore/In/Tamil.pl b/lib/unicore/lib/InTamil.pl
index 7a0ed655e8..7a0ed655e8 100644
--- a/lib/unicore/In/Tamil.pl
+++ b/lib/unicore/lib/InTamil.pl
diff --git a/lib/unicore/In/Telugu.pl b/lib/unicore/lib/InTelugu.pl
index 3849120952..3849120952 100644
--- a/lib/unicore/In/Telugu.pl
+++ b/lib/unicore/lib/InTelugu.pl
diff --git a/lib/unicore/In/Thaana.pl b/lib/unicore/lib/InThaana.pl
index bbf3f9518f..bbf3f9518f 100644
--- a/lib/unicore/In/Thaana.pl
+++ b/lib/unicore/lib/InThaana.pl
diff --git a/lib/unicore/In/Thai.pl b/lib/unicore/lib/InThai.pl
index 91feb421c7..91feb421c7 100644
--- a/lib/unicore/In/Thai.pl
+++ b/lib/unicore/lib/InThai.pl
diff --git a/lib/unicore/In/Tibetan.pl b/lib/unicore/lib/InTibeta.pl
index d118468aac..d118468aac 100644
--- a/lib/unicore/In/Tibetan.pl
+++ b/lib/unicore/lib/InTibeta.pl
diff --git a/lib/unicore/In/UnifiedC.pl b/lib/unicore/lib/InUnifie.pl
index be19c249ab..be19c249ab 100644
--- a/lib/unicore/In/UnifiedC.pl
+++ b/lib/unicore/lib/InUnifie.pl
diff --git a/lib/unicore/In/YiRadica.pl b/lib/unicore/lib/InYiRadi.pl
index d50561f995..d50561f995 100644
--- a/lib/unicore/In/YiRadica.pl
+++ b/lib/unicore/lib/InYiRadi.pl
diff --git a/lib/unicore/In/YiSyllab.pl b/lib/unicore/lib/InYiSyll.pl
index 06f417ff3e..06f417ff3e 100644
--- a/lib/unicore/In/YiSyllab.pl
+++ b/lib/unicore/lib/InYiSyll.pl
diff --git a/lib/unicore/Is/Inherite.pl b/lib/unicore/lib/Inherite.pl
index d52a465c54..d52a465c54 100644
--- a/lib/unicore/Is/Inherite.pl
+++ b/lib/unicore/lib/Inherite.pl
diff --git a/lib/unicore/Is/JoinCont.pl b/lib/unicore/lib/JoinCont.pl
index 9e8278a13f..9e8278a13f 100644
--- a/lib/unicore/Is/JoinCont.pl
+++ b/lib/unicore/lib/JoinCont.pl
diff --git a/lib/unicore/Is/Kannada.pl b/lib/unicore/lib/Kannada.pl
index 3fa302ff36..3fa302ff36 100644
--- a/lib/unicore/Is/Kannada.pl
+++ b/lib/unicore/lib/Kannada.pl
diff --git a/lib/unicore/Is/Katakana.pl b/lib/unicore/lib/Katakana.pl
index 1a55151f3f..1a55151f3f 100644
--- a/lib/unicore/Is/Katakana.pl
+++ b/lib/unicore/lib/Katakana.pl
diff --git a/lib/unicore/Is/Khmer.pl b/lib/unicore/lib/Khmer.pl
index 108bafb3ab..108bafb3ab 100644
--- a/lib/unicore/Is/Khmer.pl
+++ b/lib/unicore/lib/Khmer.pl
diff --git a/lib/unicore/Is/L.pl b/lib/unicore/lib/L.pl
index 663fd1e28b..b3f6df3294 100644
--- a/lib/unicore/Is/L.pl
+++ b/lib/unicore/lib/L.pl
@@ -5,7 +5,7 @@
#
# This file supports:
# \p{L}
-# \p{Letter} (and fuzzy permutations)
+# \p{L} (and fuzzy permutations)
#
# Meaning: Major Category 'L'
#
diff --git a/lib/unicore/Is/L_.pl b/lib/unicore/lib/L_.pl
index b2e89eb889..b2e89eb889 100644
--- a/lib/unicore/Is/L_.pl
+++ b/lib/unicore/lib/L_.pl
diff --git a/lib/unicore/Is/Lao.pl b/lib/unicore/lib/Lao.pl
index e4822238f1..e4822238f1 100644
--- a/lib/unicore/Is/Lao.pl
+++ b/lib/unicore/lib/Lao.pl
diff --git a/lib/unicore/Is/Latin.pl b/lib/unicore/lib/Latin.pl
index 4c26446105..4c26446105 100644
--- a/lib/unicore/Is/Latin.pl
+++ b/lib/unicore/lib/Latin.pl
diff --git a/lib/unicore/Is/Ll.pl b/lib/unicore/lib/Ll.pl
index 1cecfe7890..573c56aee3 100644
--- a/lib/unicore/Is/Ll.pl
+++ b/lib/unicore/lib/Ll.pl
@@ -5,7 +5,7 @@
#
# This file supports:
# \p{Ll}
-# \p{LowercaseLetter} (and fuzzy permutations)
+# \p{Ll} (and fuzzy permutations)
#
# Meaning: General Category 'Ll'
#
diff --git a/lib/unicore/Is/Lm.pl b/lib/unicore/lib/Lm.pl
index 7cbb55e60a..2dfd4f3d33 100644
--- a/lib/unicore/Is/Lm.pl
+++ b/lib/unicore/lib/Lm.pl
@@ -5,7 +5,7 @@
#
# This file supports:
# \p{Lm}
-# \p{ModifierLetter} (and fuzzy permutations)
+# \p{Lm} (and fuzzy permutations)
#
# Meaning: General Category 'Lm'
#
diff --git a/lib/unicore/Is/Lo.pl b/lib/unicore/lib/Lo.pl
index b0b46e69f5..7113103bd8 100644
--- a/lib/unicore/Is/Lo.pl
+++ b/lib/unicore/lib/Lo.pl
@@ -5,7 +5,7 @@
#
# This file supports:
# \p{Lo}
-# \p{OtherLetter} (and fuzzy permutations)
+# \p{Lo} (and fuzzy permutations)
#
# Meaning: General Category 'Lo'
#
diff --git a/lib/unicore/Is/Lower.pl b/lib/unicore/lib/Lower.pl
index 084a4b22c7..084a4b22c7 100644
--- a/lib/unicore/Is/Lower.pl
+++ b/lib/unicore/lib/Lower.pl
diff --git a/lib/unicore/Is/Lowercas.pl b/lib/unicore/lib/Lowercas.pl
index 969d821dfa..969d821dfa 100644
--- a/lib/unicore/Is/Lowercas.pl
+++ b/lib/unicore/lib/Lowercas.pl
diff --git a/lib/unicore/Is/Lt.pl b/lib/unicore/lib/Lt.pl
index ed8af130c0..b7589326ba 100644
--- a/lib/unicore/Is/Lt.pl
+++ b/lib/unicore/lib/Lt.pl
@@ -5,7 +5,7 @@
#
# This file supports:
# \p{Lt}
-# \p{TitlecaseLetter} (and fuzzy permutations)
+# \p{Lt} (and fuzzy permutations)
#
# Meaning: General Category 'Lt'
#
diff --git a/lib/unicore/Is/Lu.pl b/lib/unicore/lib/Lu.pl
index 7ded16b508..2923b3b2f3 100644
--- a/lib/unicore/Is/Lu.pl
+++ b/lib/unicore/lib/Lu.pl
@@ -5,7 +5,7 @@
#
# This file supports:
# \p{Lu}
-# \p{UppercaseLetter} (and fuzzy permutations)
+# \p{Lu} (and fuzzy permutations)
#
# Meaning: General Category 'Lu'
#
diff --git a/lib/unicore/Is/M.pl b/lib/unicore/lib/M.pl
index a4cd30ad3e..0274aed70e 100644
--- a/lib/unicore/Is/M.pl
+++ b/lib/unicore/lib/M.pl
@@ -5,7 +5,7 @@
#
# This file supports:
# \p{M}
-# \p{Mark} (and fuzzy permutations)
+# \p{M} (and fuzzy permutations)
#
# Meaning: Major Category 'M'
#
diff --git a/lib/unicore/Is/Malayala.pl b/lib/unicore/lib/Malayala.pl
index de2ec26851..de2ec26851 100644
--- a/lib/unicore/Is/Malayala.pl
+++ b/lib/unicore/lib/Malayala.pl
diff --git a/lib/unicore/Is/Math.pl b/lib/unicore/lib/Math.pl
index 389a73d37f..389a73d37f 100644
--- a/lib/unicore/Is/Math.pl
+++ b/lib/unicore/lib/Math.pl
diff --git a/lib/unicore/Is/Mc.pl b/lib/unicore/lib/Mc.pl
index 5cb32b8448..70181afb18 100644
--- a/lib/unicore/Is/Mc.pl
+++ b/lib/unicore/lib/Mc.pl
@@ -5,7 +5,7 @@
#
# This file supports:
# \p{Mc}
-# \p{SpacingMark} (and fuzzy permutations)
+# \p{Mc} (and fuzzy permutations)
#
# Meaning: General Category 'Mc'
#
diff --git a/lib/unicore/Is/Me.pl b/lib/unicore/lib/Me.pl
index 3afdefde2b..03ba369fbd 100644
--- a/lib/unicore/Is/Me.pl
+++ b/lib/unicore/lib/Me.pl
@@ -5,7 +5,7 @@
#
# This file supports:
# \p{Me}
-# \p{EnclosingMark} (and fuzzy permutations)
+# \p{Me} (and fuzzy permutations)
#
# Meaning: General Category 'Me'
#
diff --git a/lib/unicore/Is/Mirrored.pl b/lib/unicore/lib/Mirrored.pl
index 2c25ac3dd0..2c25ac3dd0 100644
--- a/lib/unicore/Is/Mirrored.pl
+++ b/lib/unicore/lib/Mirrored.pl
diff --git a/lib/unicore/Is/Mn.pl b/lib/unicore/lib/Mn.pl
index c86c640d82..c707ec22b1 100644
--- a/lib/unicore/Is/Mn.pl
+++ b/lib/unicore/lib/Mn.pl
@@ -5,7 +5,7 @@
#
# This file supports:
# \p{Mn}
-# \p{NonSpacingMark} (and fuzzy permutations)
+# \p{Mn} (and fuzzy permutations)
#
# Meaning: General Category 'Mn'
#
diff --git a/lib/unicore/Is/Mongolia.pl b/lib/unicore/lib/Mongolia.pl
index b440c67282..b440c67282 100644
--- a/lib/unicore/Is/Mongolia.pl
+++ b/lib/unicore/lib/Mongolia.pl
diff --git a/lib/unicore/Is/Myanmar.pl b/lib/unicore/lib/Myanmar.pl
index 7428b5123d..7428b5123d 100644
--- a/lib/unicore/Is/Myanmar.pl
+++ b/lib/unicore/lib/Myanmar.pl
diff --git a/lib/unicore/Is/N.pl b/lib/unicore/lib/N.pl
index 57b4170541..07d2da485a 100644
--- a/lib/unicore/Is/N.pl
+++ b/lib/unicore/lib/N.pl
@@ -5,7 +5,7 @@
#
# This file supports:
# \p{N}
-# \p{Number} (and fuzzy permutations)
+# \p{N} (and fuzzy permutations)
#
# Meaning: Major Category 'N'
#
diff --git a/lib/unicore/Is/Nd.pl b/lib/unicore/lib/Nd.pl
index c6fd1334a7..d51cb076fc 100644
--- a/lib/unicore/Is/Nd.pl
+++ b/lib/unicore/lib/Nd.pl
@@ -5,7 +5,7 @@
#
# This file supports:
# \p{Nd}
-# \p{DecimalNumber} (and fuzzy permutations)
+# \p{Nd} (and fuzzy permutations)
#
# Meaning: General Category 'Nd'
#
diff --git a/lib/unicore/Is/Nl.pl b/lib/unicore/lib/Nl.pl
index 690bed4a44..9b42189800 100644
--- a/lib/unicore/Is/Nl.pl
+++ b/lib/unicore/lib/Nl.pl
@@ -5,7 +5,7 @@
#
# This file supports:
# \p{Nl}
-# \p{LetterNumber} (and fuzzy permutations)
+# \p{Nl} (and fuzzy permutations)
#
# Meaning: General Category 'Nl'
#
diff --git a/lib/unicore/Is/No.pl b/lib/unicore/lib/No.pl
index f67310ab15..b0cc18cc09 100644
--- a/lib/unicore/Is/No.pl
+++ b/lib/unicore/lib/No.pl
@@ -5,7 +5,7 @@
#
# This file supports:
# \p{No}
-# \p{OtherNumber} (and fuzzy permutations)
+# \p{No} (and fuzzy permutations)
#
# Meaning: General Category 'No'
#
diff --git a/lib/unicore/Is/Nonchara.pl b/lib/unicore/lib/Nonchara.pl
index a46dc4ee1d..a46dc4ee1d 100644
--- a/lib/unicore/Is/Nonchara.pl
+++ b/lib/unicore/lib/Nonchara.pl
diff --git a/lib/unicore/Is/Ogham.pl b/lib/unicore/lib/Ogham.pl
index c44acffbda..c44acffbda 100644
--- a/lib/unicore/Is/Ogham.pl
+++ b/lib/unicore/lib/Ogham.pl
diff --git a/lib/unicore/Is/OldItali.pl b/lib/unicore/lib/OldItali.pl
index 8dc65e7f56..8dc65e7f56 100644
--- a/lib/unicore/Is/OldItali.pl
+++ b/lib/unicore/lib/OldItali.pl
diff --git a/lib/unicore/Is/Oriya.pl b/lib/unicore/lib/Oriya.pl
index 3a4959e04e..3a4959e04e 100644
--- a/lib/unicore/Is/Oriya.pl
+++ b/lib/unicore/lib/Oriya.pl
diff --git a/lib/unicore/Is/OtherAlp.pl b/lib/unicore/lib/OtherAlp.pl
index 82ef36b600..82ef36b600 100644
--- a/lib/unicore/Is/OtherAlp.pl
+++ b/lib/unicore/lib/OtherAlp.pl
diff --git a/lib/unicore/Is/OtherLow.pl b/lib/unicore/lib/OtherLow.pl
index 67d48ce4bd..67d48ce4bd 100644
--- a/lib/unicore/Is/OtherLow.pl
+++ b/lib/unicore/lib/OtherLow.pl
diff --git a/lib/unicore/Is/OtherMat.pl b/lib/unicore/lib/OtherMat.pl
index 199bbf05d4..199bbf05d4 100644
--- a/lib/unicore/Is/OtherMat.pl
+++ b/lib/unicore/lib/OtherMat.pl
diff --git a/lib/unicore/Is/OtherUpp.pl b/lib/unicore/lib/OtherUpp.pl
index 3e66567dee..3e66567dee 100644
--- a/lib/unicore/Is/OtherUpp.pl
+++ b/lib/unicore/lib/OtherUpp.pl
diff --git a/lib/unicore/Is/P.pl b/lib/unicore/lib/P.pl
index 599bc300db..df116cf7dd 100644
--- a/lib/unicore/Is/P.pl
+++ b/lib/unicore/lib/P.pl
@@ -5,7 +5,7 @@
#
# This file supports:
# \p{P}
-# \p{Punctuation} (and fuzzy permutations)
+# \p{P} (and fuzzy permutations)
#
# Meaning: Major Category 'P'
#
diff --git a/lib/unicore/Is/Pc.pl b/lib/unicore/lib/Pc.pl
index 04a8c1f471..f4a03a9d12 100644
--- a/lib/unicore/Is/Pc.pl
+++ b/lib/unicore/lib/Pc.pl
@@ -5,7 +5,7 @@
#
# This file supports:
# \p{Pc}
-# \p{ConnectorPunctuation} (and fuzzy permutations)
+# \p{Pc} (and fuzzy permutations)
#
# Meaning: General Category 'Pc'
#
diff --git a/lib/unicore/Is/Pd.pl b/lib/unicore/lib/Pd.pl
index 453ec5a671..be8412a246 100644
--- a/lib/unicore/Is/Pd.pl
+++ b/lib/unicore/lib/Pd.pl
@@ -5,7 +5,7 @@
#
# This file supports:
# \p{Pd}
-# \p{DashPunctuation} (and fuzzy permutations)
+# \p{Pd} (and fuzzy permutations)
#
# Meaning: General Category 'Pd'
#
diff --git a/lib/unicore/Is/Pe.pl b/lib/unicore/lib/Pe.pl
index 2be04aec70..72c1bae55d 100644
--- a/lib/unicore/Is/Pe.pl
+++ b/lib/unicore/lib/Pe.pl
@@ -5,7 +5,7 @@
#
# This file supports:
# \p{Pe}
-# \p{ClosePunctuation} (and fuzzy permutations)
+# \p{Pe} (and fuzzy permutations)
#
# Meaning: General Category 'Pe'
#
diff --git a/lib/unicore/Is/Pf.pl b/lib/unicore/lib/Pf.pl
index b8c60da170..9af533d9f2 100644
--- a/lib/unicore/Is/Pf.pl
+++ b/lib/unicore/lib/Pf.pl
@@ -5,7 +5,7 @@
#
# This file supports:
# \p{Pf}
-# \p{FinalPunctuation} (and fuzzy permutations)
+# \p{Pf} (and fuzzy permutations)
#
# Meaning: General Category 'Pf'
#
diff --git a/lib/unicore/Is/Pi.pl b/lib/unicore/lib/Pi.pl
index 868d4fb1ee..54fa4e6ad2 100644
--- a/lib/unicore/Is/Pi.pl
+++ b/lib/unicore/lib/Pi.pl
@@ -5,7 +5,7 @@
#
# This file supports:
# \p{Pi}
-# \p{InitialPunctuation} (and fuzzy permutations)
+# \p{Pi} (and fuzzy permutations)
#
# Meaning: General Category 'Pi'
#
diff --git a/lib/unicore/Is/Po.pl b/lib/unicore/lib/Po.pl
index c24a8f423f..d1ec8cc037 100644
--- a/lib/unicore/Is/Po.pl
+++ b/lib/unicore/lib/Po.pl
@@ -5,7 +5,7 @@
#
# This file supports:
# \p{Po}
-# \p{OtherPunctuation} (and fuzzy permutations)
+# \p{Po} (and fuzzy permutations)
#
# Meaning: General Category 'Po'
#
diff --git a/lib/unicore/Is/Print.pl b/lib/unicore/lib/Print.pl
index 5c0a3c7848..5c0a3c7848 100644
--- a/lib/unicore/Is/Print.pl
+++ b/lib/unicore/lib/Print.pl
diff --git a/lib/unicore/Is/Ps.pl b/lib/unicore/lib/Ps.pl
index 8c29336da3..f03aa02c7e 100644
--- a/lib/unicore/Is/Ps.pl
+++ b/lib/unicore/lib/Ps.pl
@@ -5,7 +5,7 @@
#
# This file supports:
# \p{Ps}
-# \p{OpenPunctuation} (and fuzzy permutations)
+# \p{Ps} (and fuzzy permutations)
#
# Meaning: General Category 'Ps'
#
diff --git a/lib/unicore/Is/Punct.pl b/lib/unicore/lib/Punct.pl
index ca2cdbbf0c..ca2cdbbf0c 100644
--- a/lib/unicore/Is/Punct.pl
+++ b/lib/unicore/lib/Punct.pl
diff --git a/lib/unicore/Is/Quotatio.pl b/lib/unicore/lib/Quotatio.pl
index 70e80f8124..70e80f8124 100644
--- a/lib/unicore/Is/Quotatio.pl
+++ b/lib/unicore/lib/Quotatio.pl
diff --git a/lib/unicore/Is/Runic.pl b/lib/unicore/lib/Runic.pl
index 08fdd5b073..08fdd5b073 100644
--- a/lib/unicore/Is/Runic.pl
+++ b/lib/unicore/lib/Runic.pl
diff --git a/lib/unicore/Is/S.pl b/lib/unicore/lib/S.pl
index 5e51785f5a..f9ded7d136 100644
--- a/lib/unicore/Is/S.pl
+++ b/lib/unicore/lib/S.pl
@@ -5,7 +5,7 @@
#
# This file supports:
# \p{S}
-# \p{Symbol} (and fuzzy permutations)
+# \p{S} (and fuzzy permutations)
#
# Meaning: Major Category 'S'
#
diff --git a/lib/unicore/Is/Sc.pl b/lib/unicore/lib/Sc.pl
index b9818c2435..31cabc3043 100644
--- a/lib/unicore/Is/Sc.pl
+++ b/lib/unicore/lib/Sc.pl
@@ -5,7 +5,7 @@
#
# This file supports:
# \p{Sc}
-# \p{CurrencySymbol} (and fuzzy permutations)
+# \p{Sc} (and fuzzy permutations)
#
# Meaning: General Category 'Sc'
#
diff --git a/lib/unicore/Is/Sinhala.pl b/lib/unicore/lib/Sinhala.pl
index d7de9bbc58..d7de9bbc58 100644
--- a/lib/unicore/Is/Sinhala.pl
+++ b/lib/unicore/lib/Sinhala.pl
diff --git a/lib/unicore/Is/Sk.pl b/lib/unicore/lib/Sk.pl
index 47febf5d7e..34d4ae3c90 100644
--- a/lib/unicore/Is/Sk.pl
+++ b/lib/unicore/lib/Sk.pl
@@ -5,7 +5,7 @@
#
# This file supports:
# \p{Sk}
-# \p{ModifierSymbol} (and fuzzy permutations)
+# \p{Sk} (and fuzzy permutations)
#
# Meaning: General Category 'Sk'
#
diff --git a/lib/unicore/Is/Sm.pl b/lib/unicore/lib/Sm.pl
index 5b423bfe1e..bde87a9a9d 100644
--- a/lib/unicore/Is/Sm.pl
+++ b/lib/unicore/lib/Sm.pl
@@ -5,7 +5,7 @@
#
# This file supports:
# \p{Sm}
-# \p{MathSymbol} (and fuzzy permutations)
+# \p{Sm} (and fuzzy permutations)
#
# Meaning: General Category 'Sm'
#
diff --git a/lib/unicore/Is/So.pl b/lib/unicore/lib/So.pl
index 7cb9987598..0cc548eeca 100644
--- a/lib/unicore/Is/So.pl
+++ b/lib/unicore/lib/So.pl
@@ -5,7 +5,7 @@
#
# This file supports:
# \p{So}
-# \p{OtherSymbol} (and fuzzy permutations)
+# \p{So} (and fuzzy permutations)
#
# Meaning: General Category 'So'
#
diff --git a/lib/unicore/Is/Space.pl b/lib/unicore/lib/Space.pl
index ed97335526..ed97335526 100644
--- a/lib/unicore/Is/Space.pl
+++ b/lib/unicore/lib/Space.pl
diff --git a/lib/unicore/Is/SpacePer.pl b/lib/unicore/lib/SpacePer.pl
index b84be26cd2..b84be26cd2 100644
--- a/lib/unicore/Is/SpacePer.pl
+++ b/lib/unicore/lib/SpacePer.pl
diff --git a/lib/unicore/Is/Syriac.pl b/lib/unicore/lib/Syriac.pl
index 355493a957..355493a957 100644
--- a/lib/unicore/Is/Syriac.pl
+++ b/lib/unicore/lib/Syriac.pl
diff --git a/lib/unicore/Is/Tamil.pl b/lib/unicore/lib/Tamil.pl
index aaad4ac10b..aaad4ac10b 100644
--- a/lib/unicore/Is/Tamil.pl
+++ b/lib/unicore/lib/Tamil.pl
diff --git a/lib/unicore/Is/Telugu.pl b/lib/unicore/lib/Telugu.pl
index 97d051d22a..97d051d22a 100644
--- a/lib/unicore/Is/Telugu.pl
+++ b/lib/unicore/lib/Telugu.pl
diff --git a/lib/unicore/Is/Terminal.pl b/lib/unicore/lib/Terminal.pl
index 4bfbd11025..4bfbd11025 100644
--- a/lib/unicore/Is/Terminal.pl
+++ b/lib/unicore/lib/Terminal.pl
diff --git a/lib/unicore/Is/Thaana.pl b/lib/unicore/lib/Thaana.pl
index 5007ea77a3..5007ea77a3 100644
--- a/lib/unicore/Is/Thaana.pl
+++ b/lib/unicore/lib/Thaana.pl
diff --git a/lib/unicore/Is/Thai.pl b/lib/unicore/lib/Thai.pl
index 1b72367d0e..1b72367d0e 100644
--- a/lib/unicore/Is/Thai.pl
+++ b/lib/unicore/lib/Thai.pl
diff --git a/lib/unicore/Is/Tibetan.pl b/lib/unicore/lib/Tibetan.pl
index 89c6c7cb6d..89c6c7cb6d 100644
--- a/lib/unicore/Is/Tibetan.pl
+++ b/lib/unicore/lib/Tibetan.pl
diff --git a/lib/unicore/Is/Title.pl b/lib/unicore/lib/Title.pl
index b13f42b354..b13f42b354 100644
--- a/lib/unicore/Is/Title.pl
+++ b/lib/unicore/lib/Title.pl
diff --git a/lib/unicore/Is/Upper.pl b/lib/unicore/lib/Upper.pl
index 6b3d280df5..6b3d280df5 100644
--- a/lib/unicore/Is/Upper.pl
+++ b/lib/unicore/lib/Upper.pl
diff --git a/lib/unicore/Is/Uppercas.pl b/lib/unicore/lib/Uppercas.pl
index c216b45ea7..c216b45ea7 100644
--- a/lib/unicore/Is/Uppercas.pl
+++ b/lib/unicore/lib/Uppercas.pl
diff --git a/lib/unicore/Is/WhiteSpa.pl b/lib/unicore/lib/WhiteSpa.pl
index 18c90dea1f..18c90dea1f 100644
--- a/lib/unicore/Is/WhiteSpa.pl
+++ b/lib/unicore/lib/WhiteSpa.pl
diff --git a/lib/unicore/Is/Word.pl b/lib/unicore/lib/Word.pl
index c65866bd3e..c65866bd3e 100644
--- a/lib/unicore/Is/Word.pl
+++ b/lib/unicore/lib/Word.pl
diff --git a/lib/unicore/Is/XDigit.pl b/lib/unicore/lib/XDigit.pl
index 3d3594e089..3d3594e089 100644
--- a/lib/unicore/Is/XDigit.pl
+++ b/lib/unicore/lib/XDigit.pl
diff --git a/lib/unicore/Is/Yi.pl b/lib/unicore/lib/Yi.pl
index 169d739e95..169d739e95 100644
--- a/lib/unicore/Is/Yi.pl
+++ b/lib/unicore/lib/Yi.pl
diff --git a/lib/unicore/Is/Z.pl b/lib/unicore/lib/Z.pl
index 4c13a1e269..3a053e16e8 100644
--- a/lib/unicore/Is/Z.pl
+++ b/lib/unicore/lib/Z.pl
@@ -5,7 +5,7 @@
#
# This file supports:
# \p{Z}
-# \p{Separator} (and fuzzy permutations)
+# \p{Z} (and fuzzy permutations)
#
# Meaning: Major Category 'Z'
#
diff --git a/lib/unicore/Is/Zl.pl b/lib/unicore/lib/Zl.pl
index 80f59025b5..2fa53b39cf 100644
--- a/lib/unicore/Is/Zl.pl
+++ b/lib/unicore/lib/Zl.pl
@@ -5,7 +5,7 @@
#
# This file supports:
# \p{Zl}
-# \p{LineSeparator} (and fuzzy permutations)
+# \p{Zl} (and fuzzy permutations)
#
# Meaning: General Category 'Zl'
#
diff --git a/lib/unicore/Is/Zp.pl b/lib/unicore/lib/Zp.pl
index 908dbb9326..7860fc3e10 100644
--- a/lib/unicore/Is/Zp.pl
+++ b/lib/unicore/lib/Zp.pl
@@ -5,7 +5,7 @@
#
# This file supports:
# \p{Zp}
-# \p{ParagraphSeparator} (and fuzzy permutations)
+# \p{Zp} (and fuzzy permutations)
#
# Meaning: General Category 'Zp'
#
diff --git a/lib/unicore/Is/Zs.pl b/lib/unicore/lib/Zs.pl
index 593fa23fd8..56ff72e941 100644
--- a/lib/unicore/Is/Zs.pl
+++ b/lib/unicore/lib/Zs.pl
@@ -5,7 +5,7 @@
#
# This file supports:
# \p{Zs}
-# \p{SpaceSeparator} (and fuzzy permutations)
+# \p{Zs} (and fuzzy permutations)
#
# Meaning: General Category 'Zs'
#
diff --git a/lib/unicore/Is/_CanonDC.pl b/lib/unicore/lib/_CanonDC.pl
index 849aef2208..849aef2208 100644
--- a/lib/unicore/Is/_CanonDC.pl
+++ b/lib/unicore/lib/_CanonDC.pl
diff --git a/lib/unicore/Is/_CaseIgn.pl b/lib/unicore/lib/_CaseIgn.pl
index db919574ea..db919574ea 100644
--- a/lib/unicore/Is/_CaseIgn.pl
+++ b/lib/unicore/lib/_CaseIgn.pl
diff --git a/lib/unicore/Is/_CombAbo.pl b/lib/unicore/lib/_CombAbo.pl
index 678ccc74df..678ccc74df 100644
--- a/lib/unicore/Is/_CombAbo.pl
+++ b/lib/unicore/lib/_CombAbo.pl
diff --git a/lib/unicore/mktables b/lib/unicore/mktables
index 1e1f7ed48b..a6c234c740 100644
--- a/lib/unicore/mktables
+++ b/lib/unicore/mktables
@@ -1,19 +1,20 @@
#!/usr/bin/perl -w
use strict;
use Carp;
+
##
## mktables -- create the runtime Perl Unicode files (lib/unicore/**/*.pl)
## from the Unicode database files (lib/unicore/*.txt).
##
-mkdir("In", 0755);
-mkdir("Is", 0755);
-mkdir("To", 0755);
+mkdir("lib", 0755);
+mkdir("To", 0755);
##
## Process any args.
##
-my $Verbose = 0;
+my $Verbose = 0;
+my $MakeTestScript = 0;
while (@ARGV)
{
@@ -22,8 +23,10 @@ while (@ARGV)
$Verbose = 1;
} elsif ($arg eq '-q') {
$Verbose = 0;
+ } elsif ($arg eq '-maketest') {
+ $MakeTestScript = 1;
} else {
- die "usage: $0 [-v|-q]";
+ die "usage: $0 [-v|-q] [-maketest]";
}
}
@@ -36,6 +39,35 @@ my $HEADER=<<"EOF";
EOF
+
+##
+## Given a filename and a reference to an array of lines,
+## write the lines to the file only if the contents have not changed.
+##
+sub WriteIfChanged($\@)
+{
+ my $file = shift;
+ my $lines = shift;
+
+ my $TextToWrite = join '', @$lines;
+ if (open IN, $file) {
+ local($/) = undef;
+ my $PreviousText = <IN>;
+ close IN;
+ if ($PreviousText eq $TextToWrite) {
+ print "$file unchanged.\n" if $Verbose;
+ return;
+ }
+ }
+ if (not open OUT, ">$file") {
+ die "$0: can't open $file for output: $!\n";
+ }
+ print "$file written.\n" if $Verbose;
+
+ print OUT $TextToWrite;
+ close OUT;
+}
+
##
## The main datastructure (a "Table") represents a set of code points that
## are part of a particular quality (that are part of \pL, \p{InGreek},
@@ -55,36 +87,25 @@ my %TableInfo;
my %TableDesc;
my %FuzzyNames;
my %AliasInfo;
+my %CanonicalToOrig;
##
## Turn something like
## OLD-ITALIC
-## to
+## into
## OldItalic
##
sub CanonicalName($)
{
- my $name = lc shift;
+ my $orig = shift;
+ my $name = lc $orig;
$name =~ s/(?<![a-z])(\w)/\u$1/g;
- $name =~ s/[_\W]+//g;
- return $name;
-}
+ $name =~ s/[-_\s]+//g;
-##
-## Turn something like
-## OLD-ITALIC
-## to
-## Old_Italic
-##
-sub CanonicalNameForPattern($)
-{
- my $name = lc shift;
- $name =~ s/(?<![a-z])(\w)/\u$1/g;
- $name =~ s/[_\W]+/_/;
+ $CanonicalToOrig{$name} = $orig if not $CanonicalToOrig{$name};
return $name;
}
-
##
## Associates a property ("Greek", "Lu", "Assigned",...) with a Table.
##
@@ -107,7 +128,7 @@ sub New_Prop($$$@)
my $Fuzzy = delete $Args{Fuzzy};
my $Desc = delete $Args{Desc}; # description
- $Name = CanonicalNameForPattern($Name) if $Fuzzy;
+ $Name = CanonicalName($Name) if $Fuzzy;
## sanity check a few args
if (%Args or ($Type ne 'Is' and $Type ne 'In') or not ref $Table) {
@@ -373,19 +394,13 @@ sub Table::Write
my $filename = shift;
my $comment = shift;
- print "$filename\n" if $Verbose;
-
- if (not open(OUT, ">$filename")) {
- die "$0: can't write $filename: $!\n";
- }
-
- print OUT $HEADER;
+ my @OUT = $HEADER;
if (defined $comment) {
$comment =~ s/\s+\Z//;
$comment =~ s/^/# /gm;
- print OUT "#\n$comment\n#\n";
+ push @OUT, "#\n$comment\n#\n";
}
- print OUT "return <<'END';\n";
+ push @OUT, "return <<'END';\n";
for my $set (@$Table)
{
@@ -394,14 +409,65 @@ sub Table::Write
my $name = $set->[RANGE_NAME];
if ($start == $end) {
- printf OUT "%04X\t\t%s\n", $start, $name;
+ push @OUT, sprintf "%04X\t\t%s\n", $start, $name;
} else {
- printf OUT "%04X\t%04X\t%s\n", $start, $end, $name;
+ push @OUT, sprintf "%04X\t%04X\t%s\n", $start, $end, $name;
}
}
- print OUT "END\n";
- close OUT;
+ push @OUT, "END\n";
+
+ WriteIfChanged($filename, @OUT);
+}
+
+## This used only for making the test script.
+## helper function
+sub IsUsable($)
+{
+ my $code = shift;
+ return 0 if $code <= 0x0000; ## don't use null
+ return 0 if $code >= $LastUnicodeCodepoint; ## keep in range
+ return 0 if ($code >= 0xD800 and $code <= 0xDFFF); ## no surrogates
+ return 0 if ($code >= 0xFDD0 and $code <= 0xFDEF); ## utf8.c says no good
+ return 0 if (($code & 0xFFFF) == 0xFFFE); ## utf8.c says no good
+ return 0 if (($code & 0xFFFF) == 0xFFFF); ## utf8.c says no good
+ return 1;
+}
+
+## Return a code point that's part of the table.
+## Returns nothing if the table is empty (or covers only surrogates).
+## This used only for making the test script.
+sub Table::ValidCode
+{
+ my $Table = shift; #self
+ for my $set (@$Table) {
+ return $set->[RANGE_END] if IsUsable($set->[RANGE_END]);
+ }
+ return ();
+}
+
+## Return a code point that's not part of the table
+## Returns nothing if the table covers all code points.
+## This used only for making the test script.
+sub Table::InvalidCode
+{
+ my $Table = shift; #self
+
+ return 0x1234 if $Table->IsEmpty();
+
+ for my $set (@$Table)
+ {
+ if (IsUsable($set->[RANGE_END] + 1))
+ {
+ return $set->[RANGE_END] + 1;
+ }
+
+ if (IsUsable($set->[RANGE_START] - 1))
+ {
+ return $set->[RANGE_START] - 1;
+ }
+ }
+ return ();
}
###########################################################################
@@ -434,8 +500,16 @@ sub New_Alias($$$@)
confess "$0: bad args to New_Alias"
}
- if (not $TableInfo{$Type}->{$Name}) {
- confess "$0: don't have orignial $Type => $Name to make alias"
+ $Alias = CanonicalName($Alias) if $Fuzzy;
+
+ if (not $TableInfo{$Type}->{$Name})
+ {
+ my $CName = CanonicalName($Name);
+ if ($TableInfo{$Type}->{$CName}) {
+ confess "$0: Use canonical form '$CName' instead of '$Name' for alias.";
+ } else {
+ confess "$0: don't have orignial $Type => $Name to make alias";
+ }
}
if ($TableInfo{$Alias}) {
confess "$0: already have original $Type => $Alias; can't make alias";
@@ -451,7 +525,7 @@ sub New_Alias($$$@)
## All assigned code points
my $Assigned = Table->New(Is => 'Assigned',
Desc => "All assigned code points",
- Fuzzy => 1);
+ Fuzzy => 0);
my $Name = Table->New(); ## all characters, individually by name
my $General = Table->New(); ## all characters, grouped by category
@@ -694,7 +768,7 @@ sub Unicode_Txt()
Fuzzy => 0);
## Unassigned is the same as 'Cn'
- New_Alias(Is => 'Unassigned', SameAs => 'Cn', Fuzzy => 1);
+ New_Alias(Is => 'Unassigned', SameAs => 'Cn', Fuzzy => 0);
$Cat{C}->Replace($Cat{C}->Merge($Cat{Cn})); ## Now merge in Cn into C
@@ -709,10 +783,10 @@ sub Unicode_Txt()
my $Any = Table->New(Is => 'Any',
Desc => sprintf("[\\x{0000}-\\x{%X}]",
$LastUnicodeCodepoint),
- Fuzzy => 1);
+ Fuzzy => 0);
$Any->RawAppendRange(0, $LastUnicodeCodepoint);
- New_Alias(Is => 'All', SameAs => 'Any', Fuzzy => 1);
+ New_Alias(Is => 'All', SameAs => 'Any', Fuzzy => 0);
##
## Build special properties for Perl's internal case-folding needs:
@@ -1106,6 +1180,199 @@ sub Make_GC_Aliases()
}
}
+
+##
+## These are used in:
+## MakePropTestScript()
+## WriteAllMappings()
+## for making the test script.
+##
+my %FuzzyNameToTest;
+my %ExactNameToTest;
+
+
+## This used only for making the test script
+sub GenTests($$$$)
+{
+ my $FH = shift;
+ my $Prop = shift;
+ my $MatchCode = shift;
+ my $FailCode = shift;
+
+ if (defined $MatchCode) {
+ printf $FH qq/Expect(1, "\\x{%04X}", '\\p{$Prop}' );\n/, $MatchCode;
+ printf $FH qq/Expect(0, "\\x{%04X}", '\\p{^$Prop}');\n/, $MatchCode;
+ printf $FH qq/Expect(0, "\\x{%04X}", '\\P{$Prop}' );\n/, $MatchCode;
+ printf $FH qq/Expect(1, "\\x{%04X}", '\\P{^$Prop}');\n/, $MatchCode;
+ }
+ if (defined $FailCode) {
+ printf $FH qq/Expect(0, "\\x{%04X}", '\\p{$Prop}' );\n/, $FailCode;
+ printf $FH qq/Expect(1, "\\x{%04X}", '\\p{^$Prop}');\n/, $FailCode;
+ printf $FH qq/Expect(1, "\\x{%04X}", '\\P{$Prop}' );\n/, $FailCode;
+ printf $FH qq/Expect(0, "\\x{%04X}", '\\P{^$Prop}');\n/, $FailCode;
+ }
+}
+
+## This used only for making the test script
+sub ExpectError($$)
+{
+ my $FH = shift;
+ my $prop = shift;
+
+ print $FH qq/Error('\\p{$prop}');\n/;
+ print $FH qq/Error('\\P{$prop}');\n/;
+}
+
+## This used only for making the test script
+my @GoodSeps = (
+ " ",
+ "-",
+ " \t ",
+ "",
+ "",
+ "_",
+ );
+my @BadSeps = (
+ "--",
+ "__",
+ " _",
+ "/"
+ );
+
+## This used only for making the test script
+sub RandomlyFuzzifyName($;$)
+{
+ my $Name = shift;
+ my $WantError = shift; ## if true, make an error
+
+ my @parts;
+ for my $part (split /[-\s_]+/, $Name)
+ {
+ if (@parts) {
+ if ($WantError and rand() < 0.3) {
+ push @parts, $BadSeps[rand(@BadSeps)];
+ $WantError = 0;
+ } else {
+ push @parts, $GoodSeps[rand(@GoodSeps)];
+ }
+ }
+ my $switch = int rand(4);
+ if ($switch == 0) {
+ push @parts, uc $part;
+ } elsif ($switch == 1) {
+ push @parts, lc $part;
+ } elsif ($switch == 2) {
+ push @parts, ucfirst $part;
+ } else {
+ push @parts, $part;
+ }
+ }
+ my $new = join('', @parts);
+
+ if ($WantError) {
+ if (rand() >= 0.5) {
+ $new .= $BadSeps[rand(@BadSeps)];
+ } else {
+ $new = $BadSeps[rand(@BadSeps)] . $new;
+ }
+ }
+ return $new;
+}
+
+## This used only for making the test script
+sub MakePropTestScript()
+{
+ ## this written directly -- it's huge.
+ if (not open OUT, ">TestProp.pl") {
+ die "$0: TestProp.pl: $!\n";
+ }
+ print OUT <DATA>;
+
+ while (my ($Name, $Table) = each %ExactNameToTest)
+ {
+ GenTests(*OUT, $Name, $Table->ValidCode, $Table->InvalidCode);
+ ExpectError(*OUT, uc $Name) if uc $Name ne $Name;
+ ExpectError(*OUT, lc $Name) if lc $Name ne $Name;
+ }
+
+
+ while (my ($Name, $Table) = each %FuzzyNameToTest)
+ {
+ my $Orig = $CanonicalToOrig{$Name};
+ my %Names = (
+ $Name => 1,
+ $Orig => 1,
+ RandomlyFuzzifyName($Orig) => 1
+ );
+
+ for my $N (keys %Names) {
+ GenTests(*OUT, $N, $Table->ValidCode, $Table->InvalidCode);
+ }
+
+ ExpectError(*OUT, RandomlyFuzzifyName($Orig, 'ERROR'));
+ }
+
+ print OUT "Finished();\n";
+ close OUT;
+}
+
+
+##
+## These are used only in:
+## RegisterFileForName()
+## WriteAllMappings()
+##
+my %Exact; ## will become %utf8::Exact;
+my %Canonical; ## will become %utf8::Canonical;
+my %CaComment; ## Comment for %Canonical entry of same key
+
+##
+## Given info about a name and a datafile that it should be associated with,
+## register that assocation in %Exact and %Canonical.
+sub RegisterFileForName($$$$)
+{
+ my $Type = shift;
+ my $Name = shift;
+ my $IsFuzzy = shift;
+ my $filename = shift;
+
+ ##
+ ## Now in details for the mapping. $Type eq 'Is' has the
+ ## Is removed, as it will be removed in utf8_heavy when this
+ ## data is being checked. In keeps its "In", but a second
+ ## sans-In record is written if it doesn't conflict with
+ ## anything already there.
+ ##
+ if (not $IsFuzzy)
+ {
+ if ($Type eq 'Is') {
+ die "oops[$Name]" if $Exact{$Name};
+ $Exact{$Name} = $filename;
+ } else {
+ die "oops[$Type$Name]" if $Exact{"$Type$Name"};
+ $Exact{"$Type$Name"} = $filename;
+ $Exact{$Name} = $filename if not $Exact{$Name};
+ }
+ }
+ else
+ {
+ my $CName = lc $Name;
+ if ($Type eq 'Is') {
+ die "oops[$CName]" if $Canonical{$CName};
+ $Canonical{$CName} = $filename;
+ $CaComment{$CName} = $Name if $Name =~ tr/A-Z// >= 2;
+ } else {
+ die "oops[$Type$CName]" if $Canonical{lc "$Type$CName"};
+ $Canonical{lc "$Type$CName"} = $filename;
+ $CaComment{lc "$Type$CName"} = "$Type$Name";
+ if (not $Canonical{$CName}) {
+ $Canonical{$CName} = $filename;
+ $CaComment{$CName} = "$Type$Name";
+ }
+ }
+ }
+}
+
##
## Writes the info accumulated in
##
@@ -1118,51 +1385,52 @@ sub WriteAllMappings()
{
my @MAP;
- for my $Type ('In', 'Is')
- {
- my %Filenames;
- my %NameToFile;
+ my %BaseNames; ## Base names already used (for avoiding 8.3 conflicts)
- my %Exact; ## will become %utf8::Is or %utf8::In
- my %Pat; ## will become %utf8::IsPat or %utf8::InPat
+ ## 'Is' *MUST* come first, so its names have precidence over 'In's
+ for my $Type ('Is', 'In')
+ {
+ my %RawNameToFile; ## a per-$Type cache
- ##
- ## First write all the files to the $Type/ directory
- ##
- for my $Name (sort { length $a <=> length $b } keys %{$TableInfo{$Type}})
+ for my $Name (sort {length $a <=> length $b} keys %{$TableInfo{$Type}})
{
+ ## Note: $Name is already canonical
my $Table = $TableInfo{$Type}->{$Name};
+ my $IsFuzzy = $FuzzyNames{$Type}->{$Name};
## Need an 8.3 safe filename (which means "an 8 safe" $filename)
- my $filename = $FuzzyNames{$Type}->{$Name} ? CanonicalName($Name): $Name;
- $filename =~ s/[^\w_]+/_/g; # "L&" -> "L_"
- substr($filename, 8) = '' if length($filename) > 8;
-
- ##
- ## Make sure the filename doesn't conflict with something we
- ## might have already written. If we have, say,
- ## GreekExtended1
- ## GreekExtended2
- ## they become
- ## GreekExt
- ## GreekEx2
- ##
- while (my $num = $Filenames{lc $filename}++)
+ my $filename;
{
- $num++; ## so filenames with numbers start with '2', which
- ## just looks more natural.
- ## Want to append $num, but if it'll make the filename longer
- ## than 8 characters, pre-truncate $filename so that the result
- ## is acceptable.
- my $delta = length($filename) + length($num) - 8;
- if ($delta > 0) {
- substr($filename, -$delta) = $num;
- } else {
- $filename .= $num;
+ ## 'Is' items lose 'Is' from the basename.
+ $filename = $Type eq 'Is' ? $Name : "$Type$Name";
+
+ $filename =~ s/[^\w_]+/_/g; # "L&" -> "L_"
+ substr($filename, 8) = '' if length($filename) > 8;
+
+ ##
+ ## Make sure the basename doesn't conflict with something we
+ ## might have already written. If we have, say,
+ ## InGreekExtended1
+ ## InGreekExtended2
+ ## they become
+ ## InGreekE
+ ## InGreek2
+ ##
+ while (my $num = $BaseNames{lc $filename}++)
+ {
+ $num++; ## so basenames with numbers start with '2', which
+ ## just looks more natural.
+ ## Want to append $num, but if it'll make the basename longer
+ ## than 8 characters, pre-truncate $filename so that the result
+ ## is acceptable.
+ my $delta = length($filename) + length($num) - 8;
+ if ($delta > 0) {
+ substr($filename, -$delta) = $num;
+ } else {
+ $filename .= $num;
+ }
}
- }
-
- $Exact{$Name} = $filename;
+ };
##
## Construct a nice comment to add to the file, and build data
@@ -1187,8 +1455,7 @@ sub WriteAllMappings()
for my $N (@Supported)
{
my $IsFuzzy = $FuzzyNames{$Type}->{$N};
- my $CName = $IsFuzzy ? CanonicalName($N): $N;
- my $Prop = "\\p{$TypeToShow$CName}";
+ my $Prop = "\\p{$TypeToShow$Name}";
$OrigProp = $Prop if not $OrigProp; #cache for aliases
if ($IsFuzzy) {
$Comment .= "\t$Prop (and fuzzy permutations)\n";
@@ -1208,98 +1475,119 @@ sub WriteAllMappings()
##
## Okay, write the file...
##
- $Table->Write("$Type/$filename.pl", $Comment);
- }
+ $Table->Write("lib/$filename.pl", $Comment);
- ##
- ## Write out the map
- ##
- if (not open MAP, ">Properties") {
- die "$0: can't write Properties: $!\n";
- }
- print MAP "##\n";
- print MAP "## This file created by $0\n";
- print MAP "## List of built-in \\p{...}/\\P{...} properties.\n";
- print MAP "##\n";
- print MAP "## '*' means name may be 'fuzzy'\n";
- print MAP "##\n";
- print MAP "\n";
- print MAP sort { substr($a,2) cmp substr($b, 2) } @MAP;
- close MAP;
+ ## and register it
+ $RawNameToFile{$Name} = $filename;
+ RegisterFileForName($Type => $Name, $IsFuzzy, $filename);
- ##
- ## Build %Pat
- ##
- while (my ($Fuzzy, $Real) = each %{$FuzzyNames{$Type}})
- {
- my $File = $Exact{$Real};
-
- if (not $File) {
- die "$0: oops [$Real]";
- }
-
- ## The prefix length of 2 is enough spread,
- ## and besides, we have 'Yi' as an In category.
- my $Prefix = lc(substr($Fuzzy, 0, 2));
- my $Regex = NameToRegex($Fuzzy);
-
- if ($Pat{$Prefix}->{$Regex}) {
- warn "WHOA, conflict with /$Regex/: $Pat{$Prefix}->{$Regex} vs $File\n";
+ if ($IsFuzzy)
+ {
+ my $CName = CanonicalName($Type . '_'. $Name);
+ $FuzzyNameToTest{$Name} = $Table if !$FuzzyNameToTest{$Name};
+ $FuzzyNameToTest{$CName} = $Table if !$FuzzyNameToTest{$CName};
+ } else {
+ $ExactNameToTest{$Name} = $Table;
}
- $Pat{$Prefix}->{$Regex} = $File;
}
- ##
- ## Since the fuzzy method will provide for a way to match $Fuzzy,
- ## there's no need for $Fuzzy to be in %Exact as well.
- ## This can't be done in the loop above because there could be
- ## multiple $Fuzzys pointing at the same $Real, and we don't want
- ## the first to delete the exact mapping out from under the second.
- ##
- for my $Fuzzy (keys %{$FuzzyNames{$Type}})
+ ## Register aliase info
+ for my $Name (sort {length $a <=> length $b} keys %{$AliasInfo{$Type}})
{
- delete $Exact{$Fuzzy};
+ my $Alias = $AliasInfo{$Type}->{$Name};
+ my $IsFuzzy = $FuzzyNames{$Type}->{$Alias};
+ my $filename = $RawNameToFile{$Name};
+ die "oops [$Alias]->[$Name]" if not $filename;
+ RegisterFileForName($Type => $Alias, $IsFuzzy, $filename);
+
+ my $Table = $TableInfo{$Type}->{$Name};
+ die "oops" if not $Table;
+ if ($IsFuzzy)
+ {
+ my $CName = CanonicalName($Type .'_'. $Alias);
+ $FuzzyNameToTest{$Alias} = $Table if !$FuzzyNameToTest{$Alias};
+ $FuzzyNameToTest{$CName} = $Table if !$FuzzyNameToTest{$CName};
+ } else {
+ $ExactNameToTest{$Alias} = $Table;
+ }
}
+ }
+ ##
+ ## Write out the property list
+ ##
+ {
+ my @OUT = (
+ "##\n",
+ "## This file created by $0\n",
+ "## List of built-in \\p{...}/\\P{...} properties.\n",
+ "##\n",
+ "## '*' means name may be 'fuzzy'\n",
+ "##\n\n",
+ sort { substr($a,2) cmp substr($b, 2) } @MAP,
+ );
+ WriteIfChanged('Properties', @OUT);
+ }
+ use Text::Tabs (); ## using this makes the files about half the size
+
+ ## Write Exact.pl
+ {
+ my @OUT = (
+ $HEADER,
+ "##\n",
+ "## Data in this file used by ../utf8_heavy.pl\n",
+ "##\n\n",
+ "## Mapping from name to filename in ./lib\n",
+ "%utf8::Exact = (\n",
+ );
- ##
- ## Now write In.pl / Is.pl
- ##
- if (not open OUT, ">$Type.pl") {
- die "$0: $Type.pl: $!\n";
- }
- print OUT $HEADER;
- print OUT "##\n";
- print OUT "## Data in this file used by ../utf8_heavy.pl\n";
- print OUT "##\n";
- print OUT "\n";
- print OUT "## Mapping from name to filename in ./$Type\n";
- print OUT "%utf8::$Type = (\n";
for my $Name (sort keys %Exact)
{
my $File = $Exact{$Name};
- printf OUT " %-41s => %s,\n", "'$Name'", "'$File'";
+ $Name = $Name =~ m/\W/ ? qq/'$Name'/ : " $Name ";
+ my $Text = sprintf("%-15s => %s,\n", $Name, qq/'$File'/);
+ push @OUT, Text::Tabs::unexpand($Text);
}
- print OUT ");\n\n";
+ push @OUT, ");\n1;\n";
+
+ WriteIfChanged('Exact.pl', @OUT);
+ }
- print OUT "## Mappings from regex to filename in ./$Type/\n";
- print OUT "%utf8::${Type}Pat = (\n";
- for my $Prefix (sort keys %Pat)
+ ## Write Canonical.pl
+ {
+ my @OUT = (
+ $HEADER,
+ "##\n",
+ "## Data in this file used by ../utf8_heavy.pl\n",
+ "##\n\n",
+ "## Mapping from lc(canonical name) to filename in ./lib\n",
+ "%utf8::Canonical = (\n",
+ );
+ my $Trail = ""; ## used just to keep the spacing pretty
+ for my $Name (sort keys %Canonical)
{
- print OUT " '$Prefix' => {\n";
- while (my ($Regex, $File) = each %{ $Pat{$Prefix} }) {
- print OUT "\t'$Regex' => '$File',\n";
+ my $File = $Canonical{$Name};
+ if ($CaComment{$Name}) {
+ push @OUT, "\n" if not $Trail;
+ push @OUT, " # $CaComment{$Name}\n";
+ $Trail = "\n";
+ } else {
+ $Trail = "";
}
- print OUT " },\n";
+ $Name = $Name =~ m/\W/ ? qq/'$Name'/ : " $Name ";
+ my $Text = sprintf(" %-41s => %s,\n$Trail", $Name, qq/'$File'/);
+ push @OUT, Text::Tabs::unexpand($Text);
}
- print OUT ");\n";
-
- close(OUT);
+ push @OUT, ");\n1\n";
+ WriteIfChanged('Canonical.pl', @OUT);
}
+
+ MakePropTestScript() if $MakeTestScript;
}
+
sub SpecCase_txt()
{
#
@@ -1338,24 +1626,25 @@ sub SpecCase_txt()
for my $case (qw(Lower Title Upper))
{
my $NormalCase = do "To/$case.pl" || die "$0: $@\n";
- if (not open OUT, ">To/$case.pl") {
- die "$0: To/$case.txt: $!";
- }
- print OUT $HEADER, "\n";
- print OUT "%utf8::ToSpec$case =\n(\n";
+ my @OUT = (
+ $HEADER, "\n",
+ "%utf8::ToSpec$case =\n(\n",
+ );
for my $prop (sort { $a->[0] <=> $b->[0] } @{$CaseInfo{$case}}) {
my ($ix, $code, $to) = @$prop;
my $tostr =
join "", map { sprintf "\\x{%s}", $_ } split ' ', $to;
- printf OUT qq['%04X' => "$tostr",\n], $ix;
+ push @OUT, sprintf qq['%04X' => "$tostr",\n], $ix;
}
- print OUT ");\n\n";
- print OUT "return <<'END';\n";
- print OUT $NormalCase;
- print OUT "END\n";
- close OUT;
+ push @OUT, (
+ ");\n\n",
+ "return <<'END';\n",
+ $NormalCase,
+ "END\n"
+ );
+ WriteIfChanged("To/$case.pl", @OUT);
}
}
@@ -1367,7 +1656,7 @@ sub SpecCase_txt()
sub CaseFold_txt()
{
if (not open IN, "CaseFold.txt") {
- die "$0: To/Fold.pl: $!\n";
+ die "$0: CaseFold.txt: $!\n";
}
my $Fold = Table->New();
@@ -1393,23 +1682,25 @@ sub CaseFold_txt()
#
# Prepend the special foldings to the common foldings.
#
-
my $CommonFold = do "To/Fold.pl" || die "$0: To/Fold.pl: $!\n";
- if (not open OUT, ">To/Fold.pl") {
- die "$0: To/Fold.pl: $!\n";
- }
- print OUT $HEADER, "\n";
- print OUT "%utf8::ToSpecFold =\n(\n";
+
+ my @OUT = (
+ $HEADER, "\n",
+ "%utf8::ToSpecFold =\n(\n",
+ );
for my $code (sort { $a <=> $b } keys %Fold) {
my $foldstr =
join "", map { sprintf "\\x{%s}", $_ } split ' ', $Fold{$code};
- printf OUT qq['%04X' => "$foldstr",\n], $code;
+ push @OUT, sprintf qq['%04X' => "$foldstr",\n], $code;
}
- print OUT ");\n\n";
- print OUT "return <<'END';\n";
- print OUT $CommonFold;
- print OUT "END\n";
- close OUT;
+ push @OUT, (
+ ");\n\n",
+ "return <<'END';\n",
+ $CommonFold,
+ "END\n",
+ );
+
+ WriteIfChanged("To/Fold.pl", @OUT);
}
## Do it....
@@ -1421,15 +1712,65 @@ PropList_txt();
Scripts_txt();
Blocks_txt();
+WriteAllMappings();
+
LineBrk_Txt();
ArabShap_txt();
Jamo_txt();
SpecCase_txt();
+CaseFold_txt();
-WriteAllMappings();
+exit(0);
-CaseFold_txt();
+## TRAILING CODE IS USED BY MakePropTestScript()
+__DATA__
+use strict;
+use warnings;
+
+my $Tests = 0;
+my $Fails = 0;
-# That's all, folks!
+sub Expect($$$)
+{
+ my $Expect = shift;
+ my $String = shift;
+ my $Regex = shift;
+ my $Line = (caller)[2];
+
+ $Tests++;
+ my $RegObj;
+ my $result = eval {
+ $RegObj = qr/$Regex/;
+ $String =~ $RegObj ? 1 : 0
+ };
+
+ if (not defined $result) {
+ print "couldn't compile /$Regex/ on $0 line $Line: $@\n";
+ $Fails++;
+ } elsif ($result ^ $Expect) {
+ print "bad result (expected $Expect) on $0 line $Line: $@\n";
+ $Fails++;
+ }
+}
-__END__
+sub Error($)
+{
+ my $Regex = shift;
+ $Tests++;
+ if (eval { 'x' =~ qr/$Regex/; 1 }) {
+ $Fails++;
+ my $Line = (caller)[2];
+ print "expected error for /$Regex/ on $0 line $Line: $@\n";
+ }
+}
+
+sub Finished()
+{
+ if ($Fails == 0) {
+ print "All $Tests tests passed.\n";
+ exit(0);
+ } else {
+ print "$Tests tests, $Fails failed!\n";
+ exit(-1);
+ }
+}