texlive[53766] Master/texmf-dist/tex/csplain: csplain (13feb20)

commits+karl at tug.org commits+karl at tug.org
Thu Feb 13 23:09:48 CET 2020


Revision: 53766
          http://tug.org/svn/texlive?view=revision&revision=53766
Author:   karl
Date:     2020-02-13 23:09:47 +0100 (Thu, 13 Feb 2020)
Log Message:
-----------
csplain (13feb20)

Modified Paths:
--------------
    trunk/Master/texmf-dist/tex/csplain/base/csplain.ini
    trunk/Master/texmf-dist/tex/csplain/base/hyphen.lan
    trunk/Master/texmf-dist/tex/csplain/opmac/opmac-xetex.tex
    trunk/Master/texmf-dist/tex/csplain/opmac/opmac.tex

Modified: trunk/Master/texmf-dist/tex/csplain/base/csplain.ini
===================================================================
--- trunk/Master/texmf-dist/tex/csplain/base/csplain.ini	2020-02-13 00:47:39 UTC (rev 53765)
+++ trunk/Master/texmf-dist/tex/csplain/base/csplain.ini	2020-02-13 22:09:47 UTC (rev 53766)
@@ -274,7 +274,10 @@
 * More hyphen patterns preloaded in pdftex: (pdf)csplain
 * Only three hyphen patterns preloaded in xetex: pdfcsplain 
 
+  Feb. 2020
+* hyphen.lan: skip loading patters when missing file
 
+
 COPYRIGHT
 =========
 

Modified: trunk/Master/texmf-dist/tex/csplain/base/hyphen.lan
===================================================================
--- trunk/Master/texmf-dist/tex/csplain/base/hyphen.lan	2020-02-13 00:47:39 UTC (rev 53765)
+++ trunk/Master/texmf-dist/tex/csplain/base/hyphen.lan	2020-02-13 22:09:47 UTC (rev 53766)
@@ -3,6 +3,7 @@
 %  Created by Oldrich Ulrych,            January 5, 1993
 %  General changes by Petr Olsak         November 2012
 %  More default preloaded patterns       March 2019 
+%  Skip loading patterns when missing file  Feb. 2020
 
 % See the end of this file for more inforamtion 
 
@@ -10,7 +11,8 @@
 
 \input il2code  % extra codes for czech / slovak letters in ISO-8859-2 encoding
 
-\def\loadpatterns #1#2 #3 #4#5#6#7#8#9{\ifx#1\undefined \else \global\chardef#1=#2
+\def\loadpatterns #1#2 #3 #4#5#6 #7#8#9{\ifx#1\undefined \else 
+      \ishyphen{#7}{#3}\iftrue \global\chardef#1=#2
       \begingroup \language=#2 \def\doaccents{\def\csaccentsmessage{}\csaccents}
                   \let\global=\relax
                   \message{Loading #4 encoding, \string#1=#2 (#3).} #5
@@ -18,7 +20,7 @@
       \expandafter \gdef \csname lan:#2\endcsname {#3}
       \expandafter \gdef \csname #3lang\endcsname {\langpatterntest#9%
          \language=#9\relax \initlanguage{#3}\frenchspacing 
-         \lefthyphenmin=#6\righthyphenmin=#7%
+         \sethyphenmins#6%
          \message{#3 hyphenation used (\string\language=\the\language).
                     \string\frenchspacing\space is set on.}}
       \ifx#8\relax \else
@@ -25,8 +27,13 @@
          \expandafter\gdef\expandafter#8\expandafter{#8\let#9#1}\fi
       \xdef\pattlist{\pattlist #1=#2 }
       \global\advance\numpatterns by1
-   \fi
+   \fi\fi
 }
+\def\sethyphenmins#1#2{\lefthyphenmin=#1\righthyphenmin=#2\relax}
+\def\ishyphen#1#2#3{\openin7=#1 \ifeof7 
+   \message{Warning: Hyphenation (#2) cannot be loaded, missing "#1" file.}
+   \else \closein7 }
+
 \def\langpatterntest#1{\ifx\undefined#1\langpatterntestA#1\fi}
 \def\langpatterntestA#1{%
    \errmessage{Pattern \noexpand#1 ins't supported in ISO-8859-2.
@@ -190,117 +197,117 @@
 \def\patt{hyphenation patterns } 
 
 \loadpatterns \enPatt 0 en {US English \patt in ASCII}
-              {\input hyphen.ex }23 \relax \enPatt
+              {\input hyphen.ex }23 {hyphen.tex} \relax \enPatt
 
 \loadpatterns \enusPatt 100 enus {US English extended \patt in ASCII}
-              {\input hyph-en-us }23 \relax \enusPatt
+              {\input hyph-en-us }23 {hyph-en-us} \relax \enusPatt
 
 \loadpatterns \engbPatt 101 engb {UK English \patt in ASCII}
-              {\input hyph-en-gb }23 \relax \engbPatt
+              {\input hyph-en-gb }23 {hyph-en-gb} \relax \engbPatt
 
 \loadpatterns \itPatt 102 it {Italian \patt in ASCII}
-              {\lccode`\'=`\' \input hyph-it }22 \relax \itPatt
+              {\lccode`\'=`\' \input hyph-it }22 {hyph-it} \relax \itPatt
 
 \loadpatterns \iaPatt 103 ia {Interlingua \patt in ASCII}
-              {\input hyph-ia }22 \relax \iaPatt
+              {\input hyph-ia }22 {hyph-ia} \relax \iaPatt
 
 \loadpatterns \idPatt 104 id {Indonesian \patt in ASCII}
-              {\input hyph-id }23 \relax \idPatt
+              {\input hyph-id }23 {hyph-id} \relax \idPatt
 
 \loadpatterns \csILtwo 5 cs {Czech \patt in ISO-8859-2}
-              {\doaccents \input czhyphen.tex \input czhyphen.ex }23 \iltwolangs \csPatt
+              {\doaccents \input czhyphen.tex \input czhyphen.ex }23 {czhyphen} \iltwolangs \csPatt
 
 \loadpatterns \skILtwo 6 sk {Slovak \patt in ISO-8859-2}
-              {\doaccents \input skhyphen.tex \input skhyphen.ex }23 \iltwolangs \skPatt
+              {\doaccents \input skhyphen.tex \input skhyphen.ex }23 {skhyphen} \iltwolangs \skPatt
 
 \begingroup \ifx\Cork\undefined \input t1code \input conv-utf8-ec \fi
 
 \loadpatterns \csCork 15 cs {Czech \patt in Cork}
-              {\input hyph-cs.tex }23 \corklangs \csPatt
+              {\input hyph-cs.tex }23 {hyph-cs} \corklangs \csPatt
 
 \loadpatterns \skCork 16 sk {Slovak \patt in Cork}
-              {\input hyph-sk.tex }23 \corklangs \skPatt
+              {\input hyph-sk.tex }23 {hyph-sk} \corklangs \skPatt
 
 \loadpatterns \deCork 21 de {German \patt in Cork}
-              {\input hyph-de-1996 }22 \corklangs \dePatt
+              {\input hyph-de-1996 }22 {hyph-de-1996} \corklangs \dePatt
 
 \loadpatterns \frCork 22 fr {French \patt in Cork}
-              {\lccode`\'=`\' \input hyph-fr }23 \corklangs \frPatt
+              {\lccode`\'=`\' \input hyph-fr }23 {hyph-fr} \corklangs \frPatt
 
 \loadpatterns \plCork 23 pl {Polish \patt in Cork}
-              {\input hyph-pl }22 \corklangs \plPatt
+              {\input hyph-pl }22 {hyph-pl} \corklangs \plPatt
 
 \loadpatterns \cyCork 24 cy {Welsh \patt in Cork}
-              {\input hyph-cy }23 \corklangs \cyPatt
+              {\input hyph-cy }23 {hyph-cy} \corklangs \cyPatt
 
 \loadpatterns \daCork 25 da {Danish \patt in Cork}
-              {\input hyph-da }22 \corklangs \daPatt
+              {\input hyph-da }22 {hyph-da} \corklangs \daPatt
 
 \loadpatterns \esCork 26 es {Spanish \patt in Cork}
-              {\input hyph-es }22 \corklangs \esPatt
+              {\input hyph-es }22 {hyph-es} \corklangs \esPatt
 
 \loadpatterns \slCork 28 sl {Slovenian \patt in Cork}
-              {\input hyph-sl }22 \corklangs \slPatt
+              {\input hyph-sl }22 {hyph-sl} \corklangs \slPatt
 
 \loadpatterns \fiCork 29 fi {Finnish \patt in Cork}
-              {\input hyph-fi }22 \corklangs \fiPatt
+              {\input hyph-fi }22 {hyph-fi} \corklangs \fiPatt
 
 \loadpatterns \huCork 30 hu {Hungarian \patt in Cork}
-              {\input hyph-hu }22 \corklangs \huPatt
+              {\input hyph-hu }22 {hyph-hu} \corklangs \huPatt
 
 \loadpatterns \trCork 31 tr {Turkish \patt in Cork}
-              {\input hyph-tr }22 \corklangs \trPatt
+              {\input hyph-tr }22 {hyph-tr} \corklangs \trPatt
 
 \loadpatterns \etCork 32 et {Estonian \patt in Cork}
-              {\input hyph-et }23 \corklangs \etPatt
+              {\input hyph-et }23 {hyph-et} \corklangs \etPatt
 
 \loadpatterns \euCork 33 eu {Basque \patt in Cork}
-              {\input hyph-eu }22 \corklangs \euPatt
+              {\input hyph-eu }22 {hyph-eu} \corklangs \euPatt
 
 \loadpatterns \gaCork 34 ga {Irish \patt in Cork}
-              {\input hyph-ga }23 \corklangs \gaPatt
+              {\input hyph-ga }23 {hyph-ga} \corklangs \gaPatt
 
 \loadpatterns \nbCork 35 nb {Norwegian Bokmal \patt in Cork}
-              {\input hyph-nb }22 \corklangs \nbPatt
+              {\input hyph-nb }22 {hyph-nb} \corklangs \nbPatt
 
 \loadpatterns \nnCork 36 nn {Norwegian Nynorsk \patt in Cork}
-              {\input hyph-nn }22 \corklangs \nnPatt
+              {\input hyph-nn }22 {hyph-nn} \corklangs \nnPatt
 
 \loadpatterns \nlCork 37 nl {Dutch \patt in Cork}
-              {\input hyph-nl }22 \corklangs \nlPatt
+              {\input hyph-nl }22 {hyph-nl} \corklangs \nlPatt
 
 \loadpatterns \ptCork 38 pt {Portuguese \patt in Cork}
-              {\lccode`\-=`\- \input hyph-pt }23 \corklangs \ptPatt
+              {\lccode`\-=`\- \input hyph-pt }23 {hyph-pt} \corklangs \ptPatt
 
 \loadpatterns \roCork 39 ro {Romanian \patt in Cork}
-              {\input hyph-ro }22 \corklangs \roPatt
+              {\input hyph-ro }22 {hyph-ro} \corklangs \roPatt
 
 \loadpatterns \hrCork 40 hr {Croatian \patt in Cork}
-              {\input hyph-hr }22 \corklangs \hrPatt
+              {\input hyph-hr }22 {hyph-hr} \corklangs \hrPatt
 
 \loadpatterns \zhCork 41 zh {Unaccented Pinyin Syllables \patt in Cork}
-              {\lccode`\'=`\' \input hyph-zh-latn-pinyin.ec }11 \corklangs \zhPatt
+              {\lccode`\'=`\' \input hyph-zh-latn-pinyin.ec }11 {hyph-zh-latn-pinyin.ec} \corklangs \zhPatt
 
 \loadpatterns \isCork 42 is {Icelandic \patt in Cork}
-              {\input hyph-is }22 \corklangs \isPatt
+              {\input hyph-is }22 {hyph-is} \corklangs \isPatt
 
 \loadpatterns \hsbCork 43 hsb {EC Upper Sorbian \patt in Cork}
-              {\input hyph-hsb }22 \corklangs \hsbPatt
+              {\input hyph-hsb }22 {hyph-hsb} \corklangs \hsbPatt
 
 \loadpatterns \afCork 44 af {Afrikaans \patt in Cork}
-              {\lccode`\-=`\- \lccode`\'=`\' \input hyph-af }22 \corklangs \afPatt
+              {\lccode`\-=`\- \lccode`\'=`\' \input hyph-af }22 {hyph-af} \corklangs \afPatt
 
 \loadpatterns \glCork 45 gl {Galician \patt in Cork}
-              {\input hyph-gl }22 \corklangs \glPatt
+              {\input hyph-gl }22 {hyph-gl} \corklangs \glPatt
 
 \loadpatterns \kmrCork 46 kmr {Kurmanji \patt in Cork}
-              {\input hyph-kmr }22 \corklangs \kmrPatt
+              {\input hyph-kmr }22 {hyph-kmr} \corklangs \kmrPatt
 
 \loadpatterns \tkCork 47 tk {Turkmen \patt in Cork}
-              {\lccode`\-=`\- \input hyph-tk }22 \corklangs \tkPatt
+              {\lccode`\-=`\- \input hyph-tk }22 {hyph-tk} \corklangs \tkPatt
 
 \loadpatterns \laCork 48 la {Latin \patt in Cork}
-              {\lccode`\'=`\' \input hyph-la }22 \corklangs \laPatt
+              {\lccode`\'=`\' \input hyph-la }22 {hyph-la} \corklangs \laPatt
 
 \endgroup
 
@@ -308,172 +315,172 @@
 \ifx\UnicodeLcUc y \input uni-lcuc \let\robustpatterns=\relax \fi
 
 \loadpatterns \csUnicode 115 cs {Czech \patt in Unicode}
-              {\robustpatterns \input hyph-cs.tex }23 \unicodelangs \csPatt
+              {\robustpatterns \input hyph-cs.tex }23 {hyph-cs} \unicodelangs \csPatt
 
 \loadpatterns \skUnicode 116 sk {Slovak \patt in Unicode}
-              {\robustpatterns \input hyph-sk.tex }23 \unicodelangs \skPatt
+              {\robustpatterns \input hyph-sk.tex }23 {hyph-sk} \unicodelangs \skPatt
 
 \loadpatterns \deUnicode 121 de {German \patt in Unicode}
-              {\robustpatterns \input hyph-de-1996 }22 \unicodelangs \dePatt
+              {\robustpatterns \input hyph-de-1996 }22 {hyph-de-1996} \unicodelangs \dePatt
 
 \loadpatterns \frUnicode 122 fr {French \patt in Unicode}
-              {\robustpatterns \lccode`\'=`\' \input hyph-fr }23 \unicodelangs \frPatt
+              {\robustpatterns \lccode`\'=`\' \input hyph-fr }23 {hyph-fr} \unicodelangs \frPatt
 
 \loadpatterns \plUnicode 123 pl {Polish \patt in Unicode}
-              {\robustpatterns \input hyph-pl }22 \unicodelangs \plPatt
+              {\robustpatterns \input hyph-pl }22 {hyph-pl} \unicodelangs \plPatt
 
 \loadpatterns \cyUnicode 124 cy {Welsh \patt in Unicode}
-              {\robustpatterns \input hyph-cy }23 \unicodelangs \cyPatt
+              {\robustpatterns \input hyph-cy }23 {hyph-cy} \unicodelangs \cyPatt
 
 \loadpatterns \daUnicode 125 da {Danish \patt in Unicode}
-              {\robustpatterns \input hyph-da }22 \unicodelangs \daPatt
+              {\robustpatterns \input hyph-da }22 {hyph-da} \unicodelangs \daPatt
 
 \loadpatterns \esUnicode 126 es {Spanish \patt in Unicode}
-              {\robustpatterns \input hyph-es }22 \unicodelangs \esPatt
+              {\robustpatterns \input hyph-es }22 {hyph-es} \unicodelangs \esPatt
 
 \loadpatterns \slUnicode 128 sl {Slovenian \patt in Unicode}
-              {\robustpatterns \input hyph-sl }22 \unicodelangs \slPatt
+              {\robustpatterns \input hyph-sl }22 {hyph-sl} \unicodelangs \slPatt
 
 \loadpatterns \fiUnicode 129 fi {Finnish \patt in Unicode}
-              {\robustpatterns \input hyph-fi }22 \unicodelangs \fiPatt
+              {\robustpatterns \input hyph-fi }22 {hyph-fi} \unicodelangs \fiPatt
 
 \loadpatterns \huUnicode 130 hu {Hungarian \patt in Unicode}
-              {\robustpatterns input hyph-hu }22 \unicodelangs \huPatt
+              {\robustpatterns input hyph-hu }22 {hyph-hu} \unicodelangs \huPatt
 
 \loadpatterns \trUnicode 131 tr {Turkish \patt in Unicode}
-              {\robustpatterns \input hyph-tr }22 \unicodelangs \trPatt
+              {\robustpatterns \input hyph-tr }22 {hyph-tr} \unicodelangs \trPatt
 
 \loadpatterns \etUnicode 132 et {Estonian \patt in Unicode}
-              {\robustpatterns \input hyph-et }23 \unicodelangs \etPatt
+              {\robustpatterns \input hyph-et }23 {hyph-et} \unicodelangs \etPatt
 
 \loadpatterns \euUnicode 133 eu {Basque \patt in Unicode}
-              {\robustpatterns \input hyph-eu }22 \unicodelangs \euPatt
+              {\robustpatterns \input hyph-eu }22 {hyph-eu} \unicodelangs \euPatt
 
 \loadpatterns \gaUnicode 134 ga {Irish \patt in Unicode}
-              {\robustpatterns \input hyph-ga }23 \unicodelangs \gaPatt
+              {\robustpatterns \input hyph-ga }23 {hyph-ga} \unicodelangs \gaPatt
 
 \loadpatterns \nbUnicode 135 nb {Norwegian Bokmal \patt in Unicode}
-              {\robustpatterns \input hyph-nb }22 \unicodelangs \nbPatt
+              {\robustpatterns \input hyph-nb }22 {hyph-nb} \unicodelangs \nbPatt
 
 \loadpatterns \nnUnicode 136 nn {Norwegian Nynorsk \patt in Unicode}
-              {\robustpatterns \input hyph-nn }22 \unicodelangs \nnPatt
+              {\robustpatterns \input hyph-nn }22 {hyph-nn} \unicodelangs \nnPatt
 
 \loadpatterns \nlUnicode 137 nl {Dutch \patt in Unicode}
-              {\robustpatterns \input hyph-nl }22 \unicodelangs \nlPatt
+              {\robustpatterns \input hyph-nl }22 {hyph-nl} \unicodelangs \nlPatt
 
 \loadpatterns \ptUnicode 138 pt {Portuguese \patt in Unicode}
-              {\robustpatterns \lccode`\-=`\- \input hyph-pt }23 \unicodelangs \ptPatt
+              {\robustpatterns \lccode`\-=`\- \input hyph-pt }23 {hyph-pt} \unicodelangs \ptPatt
 
 \loadpatterns \roUnicode 139 ro {Romanian \patt in Unicode}
-              {\robustpatterns \input hyph-ro }22 \unicodelangs \roPatt
+              {\robustpatterns \input hyph-ro }22 {hyph-ro} \unicodelangs \roPatt
 
 \loadpatterns \hrUnicode 140 hr {Croatian \patt in Unicode}
-              {\robustpatterns \input hyph-hr }22 \unicodelangs \hrPatt
+              {\robustpatterns \input hyph-hr }22 {hyph-hr} \unicodelangs \hrPatt
 
 \loadpatterns \zhUnicode 141 zh {Unaccented Pinyin Syllables \patt in Unicode}
-              {\robustpatterns \lccode`\'=`\' \input hyph-zh-latn-pinyin }11 \unicodelangs \zhPatt
+              {\robustpatterns \lccode`\'=`\' \input hyph-zh-latn-pinyin }11 {hyph-zh-latn-pinyin} \unicodelangs \zhPatt
 
 \loadpatterns \isUnicode 142 is {Icelandic \patt in Unicode}
-              {\robustpatterns \input hyph-is }22 \unicodelangs \isPatt
+              {\robustpatterns \input hyph-is }22 {hyph-is} \unicodelangs \isPatt
 
 \loadpatterns \hsbUnicode 143 hsb {EC Upper Sorbian \patt in Unicode}
-              {\robustpatterns \input hyph-hsb }22 \unicodelangs \hsbPatt
+              {\robustpatterns \input hyph-hsb }22 {hyph-hsb} \unicodelangs \hsbPatt
 
 \loadpatterns \afUnicode 144 af {Afrikaans \patt in Unicode}
               {\robustpatterns \lccode`\-=`\- \lccode`\'=`\'
-               \input hyph-af }22 \corklangs \afPatt
+               \input hyph-af }22 {hyph-af} \corklangs \afPatt
 
 \loadpatterns \glUnicode 145 gl {Galician \patt in Unicode}
-              {\robustpatterns \input hyph-gl }22 \corklangs \glPatt
+              {\robustpatterns \input hyph-gl }22 {hyph-gl} \corklangs \glPatt
 
 \loadpatterns \kmrUnicode 146 kmr {Kurmanji \patt in Unicode}
-              {\robustpatterns \input hyph-kmr }22 \corklangs \kmrPatt
+              {\robustpatterns \input hyph-kmr }22 {hyph-kmr} \corklangs \kmrPatt
 
 \loadpatterns \tkUnicode 147 tk {Turkmen \patt in Unicode}
-              {\robustpatterns \lccode`\-=`\- \input hyph-tk }22 \corklangs \tkPatt
+              {\robustpatterns \lccode`\-=`\- \input hyph-tk }22 {hyph-tk} \corklangs \tkPatt
 
 \loadpatterns \laUnicode 148 la {Latin \patt in Unicode}
-              {\robustpatterns \lccode`\'=`\' \input hyph-la }22 \unicodelangs \laPatt
+              {\robustpatterns \lccode`\'=`\' \input hyph-la }22 {hyph-la} \unicodelangs \laPatt
 
 \loadpatterns \elmUnicode 201 elm {Modern Monotonic Greek \patt in Unicode}
               {\lccode`\'=`\' \lccode"2019="2019 \lccode"02BC="02BC \lccode"1FBD="1FBD \lccode"1FBF="1FBF
-               \robustpatterns \input hyph-el-monoton }11 \unicodelangs \elmPatt
+               \robustpatterns \input hyph-el-monoton }11 {hyph-el-monoton} \unicodelangs \elmPatt
 
 \loadpatterns \elpUnicode 202 elp {Modern Polytonic Greek \patt in Unicode}
               {\lccode`\'=`\' \lccode"2019="2019 \lccode"02BC="02BC \lccode"1FBD="1FBD \lccode"1FBF="1FBF
-               \robustpatterns \input hyph-el-polyton }11 \unicodelangs \elpPatt
+               \robustpatterns \input hyph-el-polyton }11 {hyph-el-polyton} \unicodelangs \elpPatt
 
 \loadpatterns \grcUnicode 203 grc {Ancient Greek \patt in Unicode}
               {\lccode`\'=`\' \lccode"2019="2019 \lccode"02BC="02BC \lccode"1FBD="1FBD \lccode"1FBF="1FBF
-               \robustpatterns \input hyph-grc }11 \unicodelangs \grcPatt
+               \robustpatterns \input hyph-grc }11 {hyph-grc} \unicodelangs \grcPatt
 
 \loadpatterns \caUnicode 204 ca {Catalan \patt in Unicode}
-              {\robustpatterns \lccode`\'=`\' \input hyph-ca }22 \unicodelangs \caPatt
+              {\robustpatterns \lccode`\'=`\' \input hyph-ca }22 {hyph-ca} \unicodelangs \caPatt
 
 \loadpatterns \copUnicode 205 cop {Coptic \patt in Unicode}
-              {\robustpatterns \lccode`\'=`\' \input hyph-cop }11 \unicodelangs \copPatt
+              {\robustpatterns \lccode`\'=`\' \input hyph-cop }11 {hyph-cop} \unicodelangs \copPatt
 
 \loadpatterns \mnUnicode 206 mn {Mongolian \patt in Unicode}
-              {\robustpatterns \lccode`\'=`\' \input hyph-mn-cyrl }22 \unicodelangs \mnPatt
+              {\robustpatterns \lccode`\'=`\' \input hyph-mn-cyrl }22 {hyph-mn-cyrl} \unicodelangs \mnPatt
 
 \loadpatterns \saUnicode 207 sa {Sanskrit \patt in Unicode}
               {\robustpatterns \lccode"200C="200C \lccode"200D="200D 
-               \input hyph-sa }15 \unicodelangs \saPatt
+               \input hyph-sa }15 {hyph-sa} \unicodelangs \saPatt
 
 \loadpatterns \ruUnicode 208 ru {Russian \patt in Unicode}
-              {\robustpatterns \lccode`\-=`\- \input hyph-ru }22 \unicodelangs \ruPatt
+              {\robustpatterns \lccode`\-=`\- \input hyph-ru }22 {hyph-ru} \unicodelangs \ruPatt
 
 \loadpatterns \ukUnicode 209 uk {Ukrainian \patt in Unicode}
               {\robustpatterns \lccode`\'=`\' \lccode`\-=`\-
-               \input hyph-uk }22 \unicodelangs \ukPatt
+               \input hyph-uk }22 {hyph-uk} \unicodelangs \ukPatt
 
 \loadpatterns \hyUnicode 210 hy {Armenian \patt in Unicode}
-              {\robustpatterns \input hyph-hy }12 \unicodelangs \hyPatt
+              {\robustpatterns \input hyph-hy }12 {hyph-hy} \unicodelangs \hyPatt
 
 \loadpatterns \asUnicode 211 as {Assamesse \patt in Unicode}
               {\lccode"200C="200C \lccode"200D="200D 
-               \robustpatterns \input hyph-as }11 \unicodelangs \asPatt
+               \robustpatterns \input hyph-as }11 {hyph-as} \unicodelangs \asPatt
 
 \loadpatterns \hiUnicode 212 hi {Hindi \patt in Unicode}
               {\lccode"200C="200C \lccode"200D="200D 
-               \robustpatterns \input hyph-hi }11 \unicodelangs \hiPatt
+               \robustpatterns \input hyph-hi }11 {hyph-hi} \unicodelangs \hiPatt
 
 \loadpatterns \knUnicode 213 kn {Kannada \patt in Unicode}
               {\lccode"200C="200C \lccode"200D="200D 
-               \robustpatterns \input hyph-kn }11 \unicodelangs \knPatt
+               \robustpatterns \input hyph-kn }11 {hyph-kn} \unicodelangs \knPatt
 
 %\loadpatterns \loUnicode 214 lo {Lao \patt in Unicode}
-%              {\robustpatterns \input hyph-lo }11 \unicodelangs \loPatt
+%              {\robustpatterns \input hyph-lo }11 {hyph-lo} \unicodelangs \loPatt
 
 \loadpatterns \lvUnicode 215 lv {Latvian \patt in Unicode}
-              {\robustpatterns \input hyph-lv }22 \unicodelangs \lvPatt
+              {\robustpatterns \input hyph-lv }22 {hyph-lv} \unicodelangs \lvPatt
 
 \loadpatterns \ltUnicode 216 lt {Lithuanian \patt in Unicode}
-              {\robustpatterns \input hyph-lt }22 \unicodelangs \ltPatt
+              {\robustpatterns \input hyph-lt }22 {hyph-lt} \unicodelangs \ltPatt
 
 \loadpatterns \mlUnicode 217 ml {Malayalam \patt in Unicode}
               {\lccode"200C="200C \lccode"200D="200D 
-               \robustpatterns \input hyph-ml }11 \unicodelangs \mlPatt
+               \robustpatterns \input hyph-ml }11 {hyph-ml} \unicodelangs \mlPatt
 
 \loadpatterns \mrUnicode 218 mr {Marathi \patt in Unicode}
               {\lccode"200C="200C \lccode"200D="200D 
-               \robustpatterns \input hyph-mr }11 \unicodelangs \mrPatt
+               \robustpatterns \input hyph-mr }11 {hyph-mr} \unicodelangs \mrPatt
 
 \loadpatterns \orUnicode 219 or {Oriya \patt in Unicode}
               {\lccode"200C="200C \lccode"200D="200D 
-               \robustpatterns \input hyph-or }11 \unicodelangs \orPatt
+               \robustpatterns \input hyph-or }11 {hyph-or} \unicodelangs \orPatt
 
 \loadpatterns \paUnicode 220 pa {Panjabi \patt in Unicode}
               {\lccode"200C="200C \lccode"200D="200D 
-               \robustpatterns \input hyph-pa }11 \unicodelangs \paPatt
+               \robustpatterns \input hyph-pa }11 {hyph-pa} \unicodelangs \paPatt
 
 \loadpatterns \taUnicode 221 ta {Tamil \patt in Unicode}
               {\lccode"200C="200C \lccode"200D="200D 
-               \robustpatterns \input hyph-ta }11 \unicodelangs \taPatt
+               \robustpatterns \input hyph-ta }11 {hyph-ta} \unicodelangs \taPatt
 
 \loadpatterns \teUnicode 222 te {Telugu \patt in Unicode}
               {\lccode"200C="200C \lccode"200D="200D 
-               \robustpatterns \input hyph-te }11 \unicodelangs \tePatt
+               \robustpatterns \input hyph-te }11 {hyph-te} \unicodelangs \tePatt
 
 \message{\the\numpatterns\space patterns preloaded: \pattlist}
 \message{Defaults: \string\language=\the\language,

Modified: trunk/Master/texmf-dist/tex/csplain/opmac/opmac-xetex.tex
===================================================================
--- trunk/Master/texmf-dist/tex/csplain/opmac/opmac-xetex.tex	2020-02-13 00:47:39 UTC (rev 53765)
+++ trunk/Master/texmf-dist/tex/csplain/opmac/opmac-xetex.tex	2020-02-13 22:09:47 UTC (rev 53766)
@@ -53,9 +53,10 @@
 
 % \pdfcolorstack is implemented by \special{color push <text>} and \special{color pop}
 
-\def\colorstackpush#1{\colorspecialinit \special{color push cmyk #1}}
+\def\formatcmyk#1{cmyk #1}  \def\formatrgb#1{rgb #1}  \def\pdfblackcolor{gray 0}
+\def\colorstackpush#1{\colorspecialinit \special{color push #1}}
 \def\colorstackpop{\special{color pop}}
-\def\colorstackset#1{\colorspecialinit \special{color pop}\special{color push cmyk #1}}
+\def\colorstackset#1{\colorspecialinit \special{color pop}\special{color push #1}}
 \def\colorspecialinit{\special{color push gray 0}\gdef\colorspecialinit{}}
 %\def\special#1{\message{special:{#1}}}
 

Modified: trunk/Master/texmf-dist/tex/csplain/opmac/opmac.tex
===================================================================
--- trunk/Master/texmf-dist/tex/csplain/opmac/opmac.tex	2020-02-13 00:47:39 UTC (rev 53765)
+++ trunk/Master/texmf-dist/tex/csplain/opmac/opmac.tex	2020-02-13 22:09:47 UTC (rev 53766)
@@ -5,7 +5,7 @@
 %% The history of versions is at the end of this file, after \endpinput
 
 \ifx\OPmacversion\undefined \else \endinput \fi
-\def\OPmacversion{Jun. 2019}  
+\def\OPmacversion{Jul. 2019}  
 \immediate\write16{This is OPmac (Olsak's Plain macros), version <\OPmacversion>}
 
 %%%%%%%%%%%%%% Basic macros, sec. 3.1 in opmac-d.pdf
@@ -861,32 +861,38 @@
 \def\White{\setcmykcolor{0 0 0 0}}
 \def\Grey{\setcmykcolor{0 0 0 0.5}}
 \def\LightGrey{\setcmykcolor{0 0 0 0.2}}
-\def\Black{\setcmykcolor{0 0 0 1}}
+\def\Black{\setcolor{\pdfblackcolor}}
 
-\def\setcmykcolor#1{\global\let\ensureblacko=\ensureblackoA
+\def\setcmykcolor#1{\setcolor{\formatcmyk{#1}}}
+\def\setrgbcolor#1{\setcolor{\formatrgb{#1}}}
+\def\formatcmyk#1{#1 k #1 K}
+\def\formatrgb#1{#1 rg #1 RG}
+
+\def\setcolor#1{\global\let\ensureblacko=\ensureblackoA
    \iflocalcolor \edef\currentcolor{#1}\colorstackpush\currentcolor \aftergroup\colorstackpop
    \else         \xdef\currentcolor{#1}\colorstackset\currentcolor \fi
 }
-\def\pdfblackcolor{0 0 0 1}
-\xdef\currentcolor{\pdfblackcolor}
+
+\def\pdfblackcolor{0 g 0 G}
+\edef\currentcolor{\pdfblackcolor}
 \def\ensureblacko#1{#1}
 \def\ensureblackoA#1{\colorstackpush\pdfblackcolor #1\colorstackpop}
 
 \ifx\pdfcolorstackinit\undefined
-   \def\colorstackpush#1{\pdfliteral{#1 k #1 K}}
+   \def\colorstackpush#1{\pdfliteral{#1}}
    \def\colorstackpop{\colorstackpush\currentcolor}
    \let\colorstackset=\colorstackpush
 \else
-   \mathchardef\colorstackcnt=\pdfcolorstackinit page {0 g 0 G}
-   \def\colorstackpush#1{\pdfcolorstack\colorstackcnt push{#1 k #1 K}}
+   \mathchardef\colorstackcnt=0 % Implicit stack usage
+   \def\colorstackpush#1{\pdfcolorstack\colorstackcnt push{#1}}
    \def\colorstackpop{\pdfcolorstack\colorstackcnt pop}
-   \def\colorstackset#1{\pdfcolorstack\colorstackcnt set{#1 k #1 K}}
+   \def\colorstackset#1{\pdfcolorstack\colorstackcnt set{#1}}
 \fi
 
-\addprotect\setcmykcolor  \addprotect\localcolor  \addprotect\longlocalcolor
+\addprotect\setcolor  \addprotect\localcolor  \addprotect\longlocalcolor
 
 \ifpdftex\else
-   \def\setcmykcolor#1{} \def\pdfliteral#1{}
+   \def\setcolor#1{} \def\pdfliteral#1{}
 \fi
 
 \def\draft{\addto\prepghook{\draftbox{\tenbf DRAFT}\nointerlineskip}}
@@ -1307,19 +1313,17 @@
 \newcount\fnotenumlocal
 \newif\iflocfnum \locfnumtrue
 
-\long\def\fnote#1{\global\advance \fnotenum by1 \leavevmode
+\long\def\fnoteG#1#2{\global\advance \fnotenum by1
+   \ifx\relax#1\relax\else\leavevmode\fi
    \iflocfnum \openref\wref\Xfnote{}%
       \isdefined{fn:\the\fnotenum}\iftrue
       \else\opwarning{unknown \noexpand\fnote mark. TeX me again}\fi\fi
-   \fnmarkx{\fnotehook\typobase\typoscale[800/800]\vfootnote\fnmarkx{#1}}%
+   #1{\everypar={}\fnotehook\typobase\typoscale[800/800]\vfootnote\fnmarkx{#2}}%
 }
-\def\fnotemark#1{{\advance\fnotenum by#1\relax
-   \isdefined{fn:\the\fnotenum}\iftrue\thefnote
-   \else$^?$\opwarning{unknown \string\fnotemark. TeX me again}\fi}%
-}
-\long\def\fnotetext#1{\global\advance \fnotenum by1 \openref\wref\Xfnote{}%
-   {\everypar={}\fnotehook\typobase\typoscale[800/800]\vfootnote\fnmarkx{#1}}%
-}
+\def\fnote{\fnoteG\fnmarkx}
+\def\fnotetext{\fnoteG{}}
+
+\def\fnotemark#1{{\advance\fnotenum by#1\relax \fnmarkx}}
 \def\fnmarkx{\isdefined{fn:\the\fnotenum}\iftrue\thefnote\else$^?$\fi}
 \def\thefnote{$^{\locfnum}$}
 \def\locfnum{\csname fn:\the\fnotenum\endcsname}
@@ -1855,7 +1859,8 @@
            \fnote corrected: \iflocfnum\openref.
 May  2019  \table declarator () added.
 Jun. 2019  \mspan improved.
+Jul. 2019  \fnoteG introduced, \fnotemark bug fixed (if \runningfnotes).
+           \colorstackcnt=0 used, \setrgbcolor, \formatcmyk, \formatrgb introduced.
 
-
 %%%%%%%%%%%%%% End of opmac.tex
 



More information about the tex-live-commits mailing list.