diff --git a/unicodedomino.sty b/unicodedomino.sty index d8d95ba2c3a12458f3477e11420b7bcc4e562ed6..278c29baf9c74e96d900d08d2e7e03c8c242d187 100644 --- a/unicodedomino.sty +++ b/unicodedomino.sty @@ -28,7 +28,7 @@ % makes all UTF-8 available in listings. \NeedsTeXFormat{LaTeX2e}% -\ProvidesPackage{unicodedomino}[2018/08/05 1.3 Domino for unknown codepoints]% +\ProvidesPackage{unicodedomino}[2018/08/05 1.4~ Domino for unknown codepoints]% \makeatletter% \ifx\numexpr\@undefined% @@ -194,7 +194,7 @@ % main handler \def\UTFviii@defined#1{% \ifx#1\relax% - \if\relax\expandafter\UTFviii@chkseq\string#1\empty\relax% + \if\relax\expandafter\UTFviii@checkseq\string#1\empty\relax% % unknown char \ifx\protect\@typeset@protect% % not protected @@ -224,7 +224,7 @@ }% % input validation, including security-relevant checks -\def\UTFviii@chkseq#1:#2#3\empty{% +\def\UTFviii@checkseq#1:#2#3\empty{% \ifnum`#2<"80 % \ifx\empty#3\empty% \else% @@ -236,27 +236,27 @@ \else% \ifnum`#2<"E0 % % one 80-BF - \UTFviii@chksq@onetrail#3\empty% + \UTFviii@check@one#3\empty% \else% \ifnum`#2<"E1 % % A0-BF + one 80-BF - \UTFviii@chksq@a@trail#3\empty% + \UTFviii@check@two"A0.#3\empty% \else% \ifnum`#2<"F0 % % two 80-BF - \UTFviii@chksq@twotrail#3\empty% + \UTFviii@check@two"80.#3\empty% \else% \ifnum`#2<"F1 % % 90-BF + two 80-BF - \UTFviii@chksq@ninetytrails#3\empty% + \UTFviii@check@three"90."BF.#3\empty% \else% \ifnum`#2<"F4 % % three 80-BF - \UTFviii@chksq@threetrail#3\empty% + \UTFviii@check@three"80."BF.#3\empty% \else% \ifnum`#2<"F5 % % 80-8F + two 80-BF - \UTFviii@chksq@belowninetytrails#3\empty% + \UTFviii@check@three"80."8F.#3\empty% \else% 1% \fi% @@ -268,13 +268,12 @@ \fi% \fi% }% -\def\UTFviii@chksq@onetrail#1#2\empty{% +\def\UTFviii@check@one#1#2\empty{% \ifx\empty#2\empty% \ifnum`#1<"80 % 1% \else% - \ifnum`#1<"C0 % - \else% + \ifnum`#1>"BF % 1% \fi% \fi% @@ -282,77 +281,32 @@ 1% \fi% }% -\def\UTFviii@chksq@a@trail#1#2\empty{% - \ifx\empty#2\empty% +\def\UTFviii@check@two#1.#2#3\empty{% + \ifx\empty#3\empty% 1% \else% - \ifnum`#1<"A0 % + \ifnum`#2<#1 % 1% \else% - \ifnum`#1<"C0 % - \UTFviii@chksq@onetrail#2\empty% - \else% + \ifnum`#2>"BF % 1% - \fi% - \fi% - \fi% -}% -\def\UTFviii@chksq@twotrail#1#2\empty{% - \ifx\empty#2\empty% - 1% - \else% - \ifnum`#1<"80 % - 1% - \else% - \ifnum`#1<"C0 % - \UTFviii@chksq@onetrail#2\empty% \else% - 1% + \UTFviii@check@one#3\empty% \fi% \fi% \fi% }% -\def\UTFviii@chksq@ninetytrails#1#2\empty{% - \ifx\empty#2\empty% +\def\UTFviii@check@three#1.#2.#3#4\empty{% + \ifx\empty#4\empty% 1% \else% - \ifnum`#1<"90 % + \ifnum`#3<#1 % 1% \else% - \ifnum`#1<"C0 % - \UTFviii@chksq@twotrail#2\empty% - \else% + \ifnum`#3>#2 % 1% - \fi% - \fi% - \fi% -}% -\def\UTFviii@chksq@threetrail#1#2\empty{% - \ifx\empty#2\empty% - 1% - \else% - \ifnum`#1<"80 % - 1% - \else% - \ifnum`#1<"C0 % - \UTFviii@chksq@twotrail#2\empty% \else% - 1% - \fi% - \fi% - \fi% -}% -\def\UTFviii@chksq@belowninetytrails#1#2\empty{% - \ifx\empty#2\empty% - 1% - \else% - \ifnum`#1<"80 % - 1% - \else% - \ifnum`#1<"90 % - \UTFviii@chksq@twotrail#2\empty% - \else% - 1% + \UTFviii@check@two"80.#4\empty% \fi% \fi% \fi%