summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/stringenc/se-utf8.def
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/generic/stringenc/se-utf8.def')
-rw-r--r--Master/texmf-dist/tex/generic/stringenc/se-utf8.def364
1 files changed, 364 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/generic/stringenc/se-utf8.def b/Master/texmf-dist/tex/generic/stringenc/se-utf8.def
new file mode 100644
index 00000000000..b527c8cd229
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/stringenc/se-utf8.def
@@ -0,0 +1,364 @@
+%%
+%% 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.
+%%
+%% Project: stringenc
+%% Version: 2019/11/29 v1.12
+%%
+%% Copyright (C)
+%% 2007-2011 Heiko Oberdiek
+%% 2016-2019 Oberdiek Package Support Group
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3c of this license or (at your option) any later
+%% version. This version of this license is in
+%% https://www.latex-project.org/lppl/lppl-1-3c.txt
+%% and the latest version of this license is in
+%% https://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".
+%%
+%% The Current Maintainers of this work are
+%% Heiko Oberdiek and the Oberdiek Package Support Group
+%% https://github.com/ho-tex/stringenc/issues
+%%
+%%
+%% The Base Interpreter refers to any `TeX-Format',
+%% because some files are installed in TDS:tex/generic//.
+%%
+%% 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-ascii-print.def, se-clean7bit.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}[2019/11/29 v1.12 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\ltx@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\ltx@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\ltx@gobbletwo\SE@w
+ \expandafter\SE@CarTwo\SE@a\@nil
+ }%
+ \edef\SE@w{%
+ \SE@Nibbles@BinToHex\SE@w
+ }%
+ \SE@Add\SE@w{\expandafter"\SE@w}\ltx@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\ltx@gobbletwo\SE@w
+ \expandafter\ltx@gobbletwo\SE@a
+ \expandafter\SE@CarTwo\SE@b\@nil
+ 10%
+ \expandafter\ltx@gobbletwo\SE@b
+ \expandafter\ltx@gobbletwo\SE@c
+ \expandafter\SE@CarTwo\SE@d\@nil
+ 10%
+ \expandafter\ltx@gobbletwo\SE@d
+ }%
+ \SE@ResultAdd{%
+ F%
+ \SE@Nibbles@BinToHex\SE@temp
+ #8%
+ }%
+}
+\expandafter\gdef\csname\SE@PrefixFrom utf8\endcsname#1{%
+ \let\SE@temp\ltx@empty
+ \let\SE@next\SE@utfviii@filter
+ \expandafter\SE@utfviii@filter#1\relax\relax
+ \ifcase\ifSE@TestMode
+ \ifSE@invalid
+ \ltx@one
+ \else
+ \ltx@zero
+ \fi
+ \else
+ \ltx@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 %
+ \ltx@zero
+ \else
+ \ifnum"#1#2="C0 %
+ \ltx@zero
+ \else
+ \ifnum"#1#2="C1 %
+ \ltx@zero
+ \else
+ \ltx@one
+ \fi
+ \fi
+ \fi
+ \SE@InvalidCharacter
+ \ifSE@TestMode
+ \let\SE@next\SE@SkipRemaining
+ \fi
+ \else
+ \edef\SE@temp{\SE@temp#1#2}%
+ \fi
+ \fi
+ \SE@next
+}
+\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
+ \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
+ \SE@InvalidCharacter
+ \else
+ \ifcase\SE@utfviii@CheckCont#3%
+ \SE@InvalidCharacter
+ \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
+ \edef\SE@temp{%
+ \SE@Nibble@NumToBin{"#3}%
+ }%
+ \edef\SE@temp{%
+ 0\ifodd"#1 1\else 0\fi
+ \SE@Nibble@NumToBin{"#2}%
+ \expandafter\ltx@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
+ \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
+ \ifcase\ifnum"#2="D %
+ \ifnum"#3#4>"9F %
+ \ltx@zero
+ \else
+ \ltx@one
+ \fi
+ \else
+ \ifnum"#2=\ltx@zero
+ \ifnum"#3<"A %
+ \ltx@zero
+ \else
+ \ltx@one
+ \fi
+ \else
+ \ltx@one
+ \fi
+ \fi
+ \SE@InvalidCharacter
+ \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}}%
+ \edef\SE@temp{%
+ \expandafter\ltx@gobbletwo\SE@a
+ \SE@Nibble@NumToBin{"#4}%
+ \expandafter\ltx@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
+ \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
+ % 1101 10ww wwzz zzyy 1101 11yy yyxx xxxx
+ \edef\SE@w{\SE@Nibble@NumToBin{"#3}}%
+ \edef\SE@w{%
+ 00%
+ \SE@Nibble@NumToBin{"#2}%
+ \expandafter\ltx@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
+ \ifSE@TestMode
+ \let\SE@next\SE@SkipRemaining
+ \fi
+ \else
+ \ifnum\SE@w<\ltx@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}}%
+ \edef\SE@temp{%
+ 10%
+ \SE@Nibble@NumToBin\SE@w
+ \SE@Nibble@NumToBin{"#4}%
+ \expandafter\ltx@gobbletwo\SE@a
+ 1101%
+ 11%
+ \SE@Nibble@NumToBin{"#6}%
+ \expandafter\ltx@gobbletwo\SE@b
+ }%
+ \SE@ResultAdd{%
+ D%
+ \SE@Nibbles@BinToHex\SE@temp
+ #8%
+ }%
+ \fi
+ \fi
+ \else
+ \SE@InvalidCharacter
+ \if\SE@TestMode
+ \let\SE@next\SE@SkipRemaining
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \SE@next
+}
+\gdef\SE@utfviii@CheckCont#1{%
+ \ifnum"#1<8 %
+ \ltx@zero
+ \else
+ \ifnum"#1<12 %
+ \ltx@one
+ \else
+ \ltx@zero
+ \fi
+ \fi
+}
+\endinput
+%%
+%% End of file `se-utf8.def'.