Added functions to move memory to and from user space.
[cascardo/kernel/old_slides/.git] / utf-8.def
1 % Copyright 2000 Vladimir Volovich <vvv@vsu.ru>
2 \ProvidesFile{utf-8.def}[2000/08/19 v0.1 input encoding file for utf-8]
3
4 \makeatletter
5 \let\@inpenc@test\relax
6
7 \count@192
8 \loop
9   \bgroup
10     \uccode`\~\count@
11     \uppercase{%
12   \egroup
13     \def~##1{\csname U2\string~\string##1\endcsname}%
14     }
15 \ifnum\count@<223\relax
16   \advance\count@\@ne
17 \repeat
18
19 \count@224
20 \loop
21   \bgroup
22     \uccode`\~\count@
23     \uppercase{%
24   \egroup
25     \def~##1##2{\csname U3\string~\string##1\string##2\endcsname}%
26     }
27 \ifnum\count@<239\relax
28   \advance\count@\@ne
29 \repeat
30
31 % FIXME: define U4, U5, U6
32
33 \def\get@code#1#2;{\count@\if x\noexpand#1"\else#1\fi#2\relax}
34
35 \def\UnicodeCharacter#1#2{%
36   \get@code#1;%
37   \ifnum\count@<"80\relax
38     \Error
39   \else\ifnum\count@<"800\relax
40     \@tempcnta\count@
41     \divide\count@64
42     \bgroup
43       \advance\count@192
44       \uccode`\~\count@
45       \uppercase{%
46     \egroup
47       \toks@{U2\string~}%
48       }%
49     \multiply\count@64
50     \advance\@tempcnta-\count@
51     \advance\@tempcnta"80
52     \bgroup
53       \uccode`\~\@tempcnta
54       \uppercase{%
55     \egroup
56       \toks@\expandafter{\the\toks@\string~}%
57       }%
58     \expandafter\expandafter\expandafter
59     \def\expandafter\csname\the\toks@\endcsname{#2}%
60   \else
61     \Error
62   \fi\fi
63 }
64
65 \@ifundefined{ver@utfcyr.def}{\input{utfcyr.def}}\relax
66 \@ifundefined{ver@utflat.def}{\input{utflat.def}}\relax
67
68 \makeatother