diff options
Diffstat (limited to 'Master/texmf-dist/tex/generic/oberdiek/se-utf8.def')
-rw-r--r-- | Master/texmf-dist/tex/generic/oberdiek/se-utf8.def | 62 |
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 |