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.def307
1 files changed, 307 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/generic/oberdiek/se-utf8.def b/Master/texmf-dist/tex/generic/oberdiek/se-utf8.def
new file mode 100644
index 00000000000..3750111733d
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/oberdiek/se-utf8.def
@@ -0,0 +1,307 @@
+%%
+%% This is file `se-utf8.def',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% stringenc.dtx (with options: `utf8')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2007 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% This Current Maintainer of this work is Heiko Oberdiek.
+%%
+%% This work consists of the main source file stringenc.dtx
+%% and the derived files
+%% stringenc.sty, stringenc.pdf, stringenc.ins, stringenc.drv,
+%% se-utf32be.def, se-utf32le.def, se-utf8.def, se-utf16le.def,
+%% se-pdfdoc.def, se-iso-8859-1.def, se-cp1252.def,
+%% se-ascii.def, se-iso-8859-2.def, se-iso-8859-3.def,
+%% se-iso-8859-4.def, se-iso-8859-5.def, se-iso-8859-6.def,
+%% se-iso-8859-7.def, se-iso-8859-8.def, se-iso-8859-9.def,
+%% se-iso-8859-10.def, se-iso-8859-11.def, se-iso-8859-13.def,
+%% se-iso-8859-14.def, se-iso-8859-15.def, se-iso-8859-16.def,
+%% se-koi8-r.def, se-nextstep.def, se-mac-centeuro.def,
+%% se-mac-cyrillic.def, se-mac-roman.def, se-dec-mcs.def,
+%% se-cp437.def, se-cp850.def, se-cp852.def, se-cp855.def,
+%% se-cp858.def, se-cp865.def, se-cp866.def, se-cp1250.def,
+%% se-cp1251.def, se-cp1257.def, stringenc-test1.tex,
+%% stringenc-test2.tex.
+%%
+\ProvidesFile{se-utf8.def}[2007/06/14 v1.0 stringenc: UTF-8]
+\expandafter\gdef\csname\SE@PrefixTo utf8\endcsname#1#2#3#4{%
+ \ifnum"#1#2#3#4<"80 %
+ \SE@ResultAdd{#3#4}%
+ \else
+ \ifnum"#1#2#3#4<"800 %
+ \edef\SE@temp{%
+ \SE@Nibble@NumToBin{"#3}%
+ }%
+ \edef\SE@temp{%
+ 11%
+ \SE@Nibble@NumToBin{"#2}%
+ \expandafter\SE@CarTwo\SE@temp\@nil
+ 10%
+ \expandafter\SE@GobbleTwo\SE@temp
+ }%
+ \SE@ResultAdd{%
+ \SE@Nibbles@BinToHex\SE@temp
+ #4%
+ }%
+ \else
+ \edef\SE@temp{%
+ \SE@Nibble@NumToBin{"#3}%
+ }%
+ \edef\SE@temp{%
+ 10%
+ \SE@Nibble@NumToBin{"#2}%
+ \expandafter\SE@CarTwo\SE@temp\@nil
+ 10%
+ \expandafter\SE@GobbleTwo\SE@temp
+ }%
+ \SE@ResultAdd{%
+ E#1%
+ \SE@Nibbles@BinToHex\SE@temp
+ #4%
+ }%
+ \fi
+ \fi
+}
+\expandafter\gdef\csname\SE@PrefixSurrogateTo utf8\endcsname
+ #1#2#3#4#5#6#7#8{%
+ \edef\SE@w{\SE@Nibble@NumToBin{"#2}}%
+ \edef\SE@a{\SE@Nibble@NumToBin{"#3}}%
+ \edef\SE@b{\SE@Nibble@NumToBin{"#4}}%
+ \edef\SE@c{\SE@Nibble@NumToBin{"#6}}%
+ \edef\SE@d{\SE@Nibble@NumToBin{"#7}}%
+ \edef\SE@w{%
+ \expandafter\SE@GobbleTwo\SE@w
+ \expandafter\SE@CarTwo\SE@a\@nil
+ }%
+ \edef\SE@w{%
+ \SE@Nibbles@BinToHex\SE@w
+ }%
+ \SE@Add\SE@w{\expandafter"\SE@w}\SE@one
+ \ifnum\SE@w>15 %
+ \def\SE@char{1}%
+ \SE@Add\SE@w\SE@w{-16}%
+ \else
+ \def\SE@char{0}%
+ \fi
+ \edef\SE@w{\SE@Nibble@NumToBin\SE@w}%
+ \edef\SE@temp{%
+ 0\SE@char
+ \expandafter\SE@CarTwo\SE@w\@nil
+ 10%
+ \expandafter\SE@GobbleTwo\SE@w
+ \expandafter\SE@GobbleTwo\SE@a
+ \expandafter\SE@CarTwo\SE@b\@nil
+ 10%
+ \expandafter\SE@GobbleTwo\SE@b
+ \expandafter\SE@GobbleTwo\SE@c
+ \expandafter\SE@CarTwo\SE@d\@nil
+ 10%
+ \expandafter\SE@GobbleTwo\SE@d
+ }%
+ \SE@ResultAdd{%
+ F%
+ \SE@Nibbles@BinToHex\SE@temp
+ #8%
+ }%
+}
+\expandafter\gdef\csname\SE@PrefixFrom utf8\endcsname#1{%
+ \let\SE@temp\SE@Empty
+ \expandafter\SE@utfviii@filter#1\relax\relax
+ \expandafter\SE@utfviii@from\SE@temp\relax\relax\relax\relax
+ \relax\relax\relax\relax
+}
+\gdef\SE@utfviii@filter#1#2{%
+ \ifx#1\relax
+ \else
+ \ifcase\ifnum"#1#2>"F4 %
+ \SE@zero
+ \else
+ \ifnum"#1#2="C0 %
+ \SE@zero
+ \else
+ \ifnum"#1#2="C1 %
+ \SE@zero
+ \else
+ \SE@one
+ \fi
+ \fi
+ \fi
+ \SE@InvalidCharacter
+ \else
+ \edef\SE@temp{\SE@temp#1#2}%
+ \fi
+ \expandafter\SE@utfviii@filter
+ \fi
+}
+\gdef\SE@utfviii@from#1#2#3#4#5#6#7#8{%
+ \ifx#1\relax
+ \let\SE@next\relax
+ \else
+ \ifnum"#1<8 % 0xxx xxxx
+ \SE@ResultAdd{00#1#2}%
+ \def\SE@next{\SE@utfviii@from#3#4#5#6#7#8}%
+ \else
+ \ifnum"#1<12 % 10xx xxxx
+ \SE@InvalidCharacter
+ \def\SE@next{\SE@utfviii@from#3#4#5#6#7#8}%
+ \else
+ \ifx#3\relax
+ \let\SE@next\relax
+ \SE@InvalidCharacter
+ \else
+ \ifcase\SE@utfviii@CheckCont#3%
+ \SE@InvalidCharacter
+ \def\SE@next{\SE@utfviii@from#3#4#5#6#7#8}%
+ \else
+ \ifnum"#1<14 % 110y yyyy 10xx xxxx
+ % 0000 0yyy yyxx xxxx
+ \edef\SE@temp{%
+ \SE@Nibble@NumToBin{"#3}%
+ }%
+ \edef\SE@temp{%
+ 0\ifodd"#1 1\else 0\fi
+ \SE@Nibble@NumToBin{"#2}%
+ \expandafter\SE@GobbleTwo\SE@temp
+ }%
+ \SE@ResultAdd{%
+ 0%
+ \SE@Nibbles@BinToHex\SE@temp
+ #4%
+ }%
+ \def\SE@next{\SE@utfviii@from#5#6#7#8}%
+ \else
+ \ifx#5\relax
+ \let\SE@next\relax
+ \SE@InvalidCharacter
+ \else
+ \ifcase\SE@utfviii@CheckCont#5%
+ \SE@InvalidCharacter
+ \def\SE@next{\SE@utfviii@from#5#6#7#8}%
+ \else
+ \ifnum"#1=14 % 1110 zzzz 10yy yyyy 10xx xxxx
+ % zzzz yyyy yyxx xxxx
+ \ifcase\ifnum"#2="D %
+ \ifnum"#3#4>"9F %
+ \SE@zero
+ \else
+ \SE@one
+ \fi
+ \else
+ \ifnum"#2=\SE@zero
+ \ifnum"#3<"A %
+ \SE@zero
+ \else
+ \SE@one
+ \fi
+ \else
+ \SE@one
+ \fi
+ \fi
+ \SE@InvalidCharacter
+ \def\SE@next{\SE@utfviii@from#7#8}%
+ \else
+ \edef\SE@a{\SE@Nibble@NumToBin{"#3}}%
+ \edef\SE@b{\SE@Nibble@NumToBin{"#5}}%
+ \edef\SE@temp{%
+ \expandafter\SE@GobbleTwo\SE@a
+ \SE@Nibble@NumToBin{"#4}%
+ \expandafter\SE@GobbleTwo\SE@b
+ }%
+ \SE@ResultAdd{%
+ #2%
+ \SE@Nibbles@BinToHex\SE@temp
+ #6%
+ }%
+ \def\SE@next{\SE@utfviii@from#7#8}%
+ \fi
+ \else
+ \ifx#7\relax
+ \let\SE@next\relax
+ \SE@InvalidCharacter
+ \else
+ \ifcase\SE@utfviii@CheckCont#7%
+ \SE@InvalidCharacter
+ \def\SE@next{\SE@utfviii@from#7#8}%
+ \else
+ \let\SE@next\SE@utfviii@from
+ \ifnum"#2<8 % 1111 0uuu 10uu zzzz 10yy yyyy 10xx xxxx
+ % 1101 10ww wwzz zzyy 1101 11yy yyxx xxxx
+ \edef\SE@w{\SE@Nibble@NumToBin{"#3}}%
+ \edef\SE@w{%
+ 00%
+ \SE@Nibble@NumToBin{"#2}%
+ \expandafter\SE@GobbleTwo\SE@w
+ }%
+ \edef\SE@w{\SE@Nibbles@BinToHex\SE@w}%
+ \SE@Add\SE@w{\expandafter"\SE@w}{-1}%
+ \ifnum\SE@w>15 %
+ \SE@InvalidCharacter
+ \else
+ \ifnum\SE@w<\SE@zero
+ \SE@InvalidCharacter
+ \else
+ \edef\SE@a{\SE@Nibble@NumToBin{"#5}}%
+ \edef\SE@b{\SE@Nibble@NumToBin{"#7}}%
+ \edef\SE@temp{%
+ 10%
+ \SE@Nibble@NumToBin\SE@w
+ \SE@Nibble@NumToBin{"#4}%
+ \expandafter\SE@GobbleTwo\SE@a
+ 1101%
+ 11%
+ \SE@Nibble@NumToBin{"#6}%
+ \expandafter\SE@GobbleTwo\SE@b
+ }%
+ \SE@ResultAdd{%
+ D%
+ \SE@Nibbles@BinToHex\SE@temp
+ #8%
+ }%
+ \fi
+ \fi
+ \else
+ \SE@InvalidCharacter
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \SE@next
+}
+\gdef\SE@utfviii@CheckCont#1{%
+ \ifnum"#1<8 %
+ \SE@zero
+ \else
+ \ifnum"#1<12 %
+ \SE@one
+ \else
+ \SE@zero
+ \fi
+ \fi
+}
+\endinput
+%%
+%% End of file `se-utf8.def'.