summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/base/utf8.def
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2015-10-01 22:00:12 +0000
committerKarl Berry <karl@freefriends.org>2015-10-01 22:00:12 +0000
commitb0a27fa1b235b8769c32d6a4af90697503bc5f7f (patch)
tree8d46da006822aaf3f3637823712a86f545512feb /Master/texmf-dist/tex/latex/base/utf8.def
parentdc8208998ecb52e2206b7943b322681502dd0ced (diff)
latex 2015/10/01
git-svn-id: svn://tug.org/texlive/trunk@38512 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/base/utf8.def')
-rw-r--r--Master/texmf-dist/tex/latex/base/utf8.def58
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