% This is the file UTF8.chr of the CJK package
%   for using asiatic logographs (Chinese/Japanese/Korean) with LaTeX2e
%
% created by Werner Lemberg <a7621gac@awiuni11.bitnet>
%
% Version 2.5 (10-Apr-1995)

\def\fileversion{2.5}
\def\filedate{1995/04/10}
\ProvidesFile{UTF8.chr}[\filedate\space\fileversion]


% define macros for handling CJK fonts and characters in UTF 8 encoding.

% two bytes per character; covers range 0x80 - 0x7FF

\def\CJK@@@char#1#2#3{
  {\ifnum `#3 < \CJK@min
     \CJK@err
   \else
     \ifnum `#3 > \CJK@max
       \CJK@err
     \else
       \CJKglue

       \@tempcnta `#3
       \advance\@tempcnta #2
       \edef\CJK@plane{#1}
       \usefont{U}{\CJK@enc}{\CJK@series}{\CJK@shape}
       \symbol{\@tempcnta}
     \fi
   \fi}}

% three bytes per character; covers range 0x800 - 0xFFFF

\def\CJK@@@altchar#1#2#3{
  {\ifnum `#2 < \CJK@min
     \CJK@err
   \else
     \ifnum `#2 > \CJK@max
       \CJK@err
     \else
       \ifnum `#3 < \CJK@min
         \CJK@errx
       \else
         \ifnum `#3 > \CJK@max
           \CJK@errx
         \else
           \CJKglue
           \@tempcnta #1
           \@tempcntb `#2
           \divide\@tempcntb 4
           \advance\@tempcnta \@tempcntb
           \CJK@numbToHex{\CJK@temp}{\@tempcnta}
           \edef\CJK@plane{\CJK@temp}

           \@tempcnta `#2
           \multiply\@tempcntb -4
           \advance\@tempcnta \@tempcntb
           \multiply\@tempcnta 64
           \advance\@tempcnta `#3
           \advance\@tempcnta -128
           \usefont{U}{\CJK@enc}{\CJK@series}{\CJK@shape}
           \symbol{\@tempcnta}
         \fi
       \fi
     \fi
   \fi}}

% define macro for handling punctuation characters.

\def\CJK@@@punctchar#1#2#3#4{
  {\ifnum `#3 < \CJK@min
     \CJK@err
   \else
     \ifnum `#3 > \CJK@max
       \CJK@err
     \else
       \ifnum `#4 < \CJK@min
         \CJK@errx
       \else
         \ifnum `#4 > \CJK@max
           \CJK@errx
         \else
           \@tempcnta #2
           \@tempcntb `#3
           \divide\@tempcntb 4
           \advance\@tempcnta \@tempcntb
           \CJK@numbToHex{\CJK@temp}{\@tempcnta}
           \edef\CJK@plane{\CJK@temp}

           \@tempcnta `#3
           \multiply\@tempcntb -4
           \advance\@tempcnta \@tempcntb
           \multiply\@tempcnta 64
           \advance\@tempcnta `#4
           \advance\@tempcnta -128
           \usefont{U}{\CJK@enc}{\CJK@series}{\CJK@shape}

           \expandafter\CJK@ifNotInList
            \expandafter{\expandafter#1\expandafter}
            \expandafter{\CJK@plane}
             \CJK@testLastKern
             \symbol{\@tempcnta}
           \else
             \CJK@numbToHex{\CJK@temp}{\@tempcnta}
             \CJK@ifNotPostPunct{UTF8}{\CJK@plane}{\CJK@temp}
               \CJKglue
             \fi
             \symbol{\@tempcnta}
             \CJK@ifNotPrePunct{UTF8}{\CJK@plane}{\CJK@temp}
             \else
               \CJK@kern
             \fi
           \fi
         \fi
       \fi
     \fi
   \fi}}

\endinput
