summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/oberdiek/se-utf8.def
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/generic/oberdiek/se-utf8.def')
-rw-r--r--Master/texmf-dist/tex/generic/oberdiek/se-utf8.def62
1 files changed, 53 insertions, 9 deletions
diff --git a/Master/texmf-dist/tex/generic/oberdiek/se-utf8.def b/Master/texmf-dist/tex/generic/oberdiek/se-utf8.def
index 3750111733d..6f8e680ca5d 100644
--- a/Master/texmf-dist/tex/generic/oberdiek/se-utf8.def
+++ b/Master/texmf-dist/tex/generic/oberdiek/se-utf8.def
@@ -39,7 +39,7 @@
%% se-cp1251.def, se-cp1257.def, stringenc-test1.tex,
%% stringenc-test2.tex.
%%
-\ProvidesFile{se-utf8.def}[2007/06/14 v1.0 stringenc: UTF-8]
+\ProvidesFile{se-utf8.def}[2007/06/16 v1.1 stringenc: UTF-8]
\expandafter\gdef\csname\SE@PrefixTo utf8\endcsname#1#2#3#4{%
\ifnum"#1#2#3#4<"80 %
\SE@ResultAdd{#3#4}%
@@ -122,12 +122,24 @@
}
\expandafter\gdef\csname\SE@PrefixFrom utf8\endcsname#1{%
\let\SE@temp\SE@Empty
+ \let\SE@next\SE@utfviii@filter
\expandafter\SE@utfviii@filter#1\relax\relax
- \expandafter\SE@utfviii@from\SE@temp\relax\relax\relax\relax
- \relax\relax\relax\relax
+ \ifcase\ifSE@TestMode
+ \ifSE@invalid
+ \SE@one
+ \else
+ \SE@zero
+ \fi
+ \else
+ \SE@zero
+ \fi
+ \expandafter\SE@utfviii@from\SE@temp\relax\relax\relax\relax
+ \relax\relax\relax\relax
+ \fi
}
\gdef\SE@utfviii@filter#1#2{%
\ifx#1\relax
+ \let\SE@next\relax
\else
\ifcase\ifnum"#1#2>"F4 %
\SE@zero
@@ -143,11 +155,14 @@
\fi
\fi
\SE@InvalidCharacter
+ \ifSE@TestMode
+ \let\SE@next\SE@SkipRemaining
+ \fi
\else
\edef\SE@temp{\SE@temp#1#2}%
\fi
- \expandafter\SE@utfviii@filter
\fi
+ \SE@next
}
\gdef\SE@utfviii@from#1#2#3#4#5#6#7#8{%
\ifx#1\relax
@@ -159,7 +174,11 @@
\else
\ifnum"#1<12 % 10xx xxxx
\SE@InvalidCharacter
- \def\SE@next{\SE@utfviii@from#3#4#5#6#7#8}%
+ \ifSE@TestMode
+ \let\SE@next\SE@SkipRemaining
+ \else
+ \def\SE@next{\SE@utfviii@from#3#4#5#6#7#8}%
+ \fi
\else
\ifx#3\relax
\let\SE@next\relax
@@ -167,7 +186,11 @@
\else
\ifcase\SE@utfviii@CheckCont#3%
\SE@InvalidCharacter
- \def\SE@next{\SE@utfviii@from#3#4#5#6#7#8}%
+ \ifSE@TestMode
+ \let\SE@next\SE@SkipRemaining
+ \else
+ \def\SE@next{\SE@utfviii@from#3#4#5#6#7#8}%
+ \fi
\else
\ifnum"#1<14 % 110y yyyy 10xx xxxx
% 0000 0yyy yyxx xxxx
@@ -192,7 +215,11 @@
\else
\ifcase\SE@utfviii@CheckCont#5%
\SE@InvalidCharacter
- \def\SE@next{\SE@utfviii@from#5#6#7#8}%
+ \ifSE@TestMode
+ \let\SE@next\SE@SkipRemaining
+ \else
+ \def\SE@next{\SE@utfviii@from#5#6#7#8}%
+ \fi
\else
\ifnum"#1=14 % 1110 zzzz 10yy yyyy 10xx xxxx
% zzzz yyyy yyxx xxxx
@@ -214,7 +241,11 @@
\fi
\fi
\SE@InvalidCharacter
- \def\SE@next{\SE@utfviii@from#7#8}%
+ \ifSE@TestMode
+ \let\SE@next\SE@SkipRemaining
+ \else
+ \def\SE@next{\SE@utfviii@from#7#8}%
+ \fi
\else
\edef\SE@a{\SE@Nibble@NumToBin{"#3}}%
\edef\SE@b{\SE@Nibble@NumToBin{"#5}}%
@@ -237,7 +268,11 @@
\else
\ifcase\SE@utfviii@CheckCont#7%
\SE@InvalidCharacter
- \def\SE@next{\SE@utfviii@from#7#8}%
+ \ifSE@TestMode
+ \let\SE@next\SE@SkipRemaining
+ \else
+ \def\SE@next{\SE@utfviii@from#7#8}%
+ \fi
\else
\let\SE@next\SE@utfviii@from
\ifnum"#2<8 % 1111 0uuu 10uu zzzz 10yy yyyy 10xx xxxx
@@ -252,9 +287,15 @@
\SE@Add\SE@w{\expandafter"\SE@w}{-1}%
\ifnum\SE@w>15 %
\SE@InvalidCharacter
+ \ifSE@TestMode
+ \let\SE@next\SE@SkipRemaining
+ \fi
\else
\ifnum\SE@w<\SE@zero
\SE@InvalidCharacter
+ \ifSE@TestMode
+ \let\SE@next\SE@SkipRemaining
+ \fi
\else
\edef\SE@a{\SE@Nibble@NumToBin{"#5}}%
\edef\SE@b{\SE@Nibble@NumToBin{"#7}}%
@@ -277,6 +318,9 @@
\fi
\else
\SE@InvalidCharacter
+ \if\SE@TestMode
+ \let\SE@next\SE@SkipRemaining
+ \fi
\fi
\fi
\fi