diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/base/utf8.def')
-rw-r--r-- | Master/texmf-dist/tex/latex/base/utf8.def | 58 |
1 files changed, 56 insertions, 2 deletions
diff --git a/Master/texmf-dist/tex/latex/base/utf8.def b/Master/texmf-dist/tex/latex/base/utf8.def index 86604418d19..eeb320c9aaa 100644 --- a/Master/texmf-dist/tex/latex/base/utf8.def +++ b/Master/texmf-dist/tex/latex/base/utf8.def @@ -42,7 +42,7 @@ %% and covered by LPPL is defined by the unpacking scripts (with %% extension .ins) which are part of the distribution. \ProvidesFile{utf8.def} - [2015/06/27 v1.1n UTF-8 support for inputenc] + [2015/09/07 v1.1p UTF-8 support for inputenc] \makeatletter \catcode`\ \saved@space@catcode \def\UTFviii@two@octets#1#2{\expandafter @@ -53,7 +53,9 @@ \UTFviii@defined\csname u8:#1\string#2\string#3\string#4\endcsname} \def\UTFviii@defined#1{% \ifx#1\relax - \PackageError{inputenc}{Unicode\space char\space \string#1\space + \PackageError{inputenc}{Unicode\space char\space\expandafter + \UTFviii@splitcsname\string#1\relax + \MessageBreak not\space set\space up\space for\space use\space with\space LaTeX}\@eha \else\expandafter @@ -144,6 +146,58 @@ \advance\count@ "#10\relax \uccode`#3\count@ \uppercase{\gdef\UTFviii@tmp{#2#3#4}}} +\ifx\numexpr\@undefined +\gdef\decode@UTFviii#1{0} +\else +\gdef\decode@UTFviii#1\relax{% + \expandafter\UTFviii@cleanup + \the\numexpr\dec@de@UTFviii#1\relax)))))\@empty} +\gdef\UTFviii@cleanup#1)#2\@empty{#1} +\gdef\dec@de@UTFviii#1{% +\ifx\relax#1% +\else + \ifnum`#1>"EF + ((((`#1-"F0)% + \else + \ifnum`#1>"DF + (((`#1-"E0)% + \else + \ifnum`#1>"BF + ((`#1-"C0)% + \else + \ifnum`#1>"7F + )*64+(`#1-"80)% + \else + +`#1 % + \fi + \fi + \fi + \fi + \expandafter\dec@de@UTFviii +\fi} +\fi +\ifx\numexpr\@undefined +\global\let\UTFviii@hexnumber\@firstofone +\global\UTFviii@hexdigit\hexnumber@ +\else +\gdef\UTFviii@hexnumber#1{% +\ifnum#1>15 % +\expandafter\UTFviii@hexnumber\expandafter{\the\numexpr(#1-8)/16\relax}% +\fi +\UTFviii@hexdigit{\numexpr#1\ifnum#1>0-((#1-8)/16)*16\fi\relax}% +} +\gdef\UTFviii@hexdigit#1{\ifcase\numexpr#1\relax + 0\or1\or2\or3\or4\or5\or6\or7\or8\or9\or + A\or B\or C\or D\or E\or F\fi} +\fi +\ifx\numexpr\@undefined +\gdef\UTFviii@splitcsname#1:#2\relax{#2}} +\else +\gdef\UTFviii@splitcsname#1:#2\relax{% +#2 (U+\expandafter\UTFviii@hexnumber\expandafter{% + \the\numexpr\decode@UTFviii#2\relax}) +} +\fi \endgroup \@onlypreamble\DeclareUnicodeCharacter \@onlypreamble\parse@XML@charref |