% dehyphn-x-2024-02-28.tex
%
% Copyright 2008-2024 Werner Lemberg <wl@gnu.org>
% You may freely use, modify and/or distribute this file.
%
%
% Put the whole wrapper into a group (\patterns acts globally).
\begingroup
%
% Create local flag for checking UTF-8 support of non-pTeX engines.
% \newif must be defined outside any \ifx command.
\newif\if@dehyphx@UTF@
\@dehyphx@UTF@false
% Test for pTeX engine.  pTeX needs explicit 8 bit patterns.
\ifx\kanjiskip\undefined
  % Non-pTeX engine.  Test for UTF-8 aware engine.
  \def\testengine#1#2!{\def\secondarg{#2}}%
  \testengine χ!\relax % That's Chi, a 2-byte UTF-8 sequence
  \ifx\secondarg\empty
    \message{dehyph-exptl: using a TeX engine with native UTF-8 support.}%
    \@dehyphx@UTF@true
  \else
    \message{dehyph-exptl: using an 8-bit TeX engine.}%
  \fi
%
  \if@dehyphx@UTF@
  \else
    % For 8-bit engines we define macros to convert the patterns from UTF-8
    % to EC encoding.
    \catcode"C3=\active
    \def^^c3#1{%
      \ifx#1^^9f^^ff\else % ß - U+00DF - germandbls
      \ifx#1^^a0^^e0\else % à - U+00E0 - agrave
      \ifx#1^^a1^^e1\else % á - U+00E1 - aacute
      \ifx#1^^a2^^e2\else % â - U+00E2 - acircumflex
      \ifx#1^^a3^^e3\else % ã - U+00E3 - atilde
      \ifx#1^^a4^^e4\else % ä - U+00E4 - adieresis
      \ifx#1^^a5^^e5\else % å - U+00E5 - aring
      \ifx#1^^a6^^e6\else % æ - U+00E6 - ae
      \ifx#1^^a7^^e7\else % ç - U+00E7 - ccedilla
      \ifx#1^^a8^^e8\else % è - U+00E8 - egrave
%
      \ifx#1^^a9^^e9\else % é - U+00E9 - eacute
      \ifx#1^^aa^^ea\else % ê - U+00EA - ecircumflex
      \ifx#1^^ab^^eb\else % ë - U+00EB - edieresis
      \ifx#1^^ac^^ec\else % ì - U+00EC - igrave
      \ifx#1^^ad^^ed\else % í - U+00ED - iacute
      \ifx#1^^ae^^ee\else % î - U+00EE - icircumflex
      \ifx#1^^af^^ef\else % ï - U+00EF - idieresis
      \ifx#1^^b0^^f0\else % ð - U+00F0 - eth
      \ifx#1^^b1^^f1\else % ñ - U+00F1 - ntilde
      \ifx#1^^b2^^f2\else % ò - U+00F2 - ograve
%
      \ifx#1^^b3^^f3\else % ó - U+00F3 - oacute
      \ifx#1^^b4^^f4\else % ô - U+00F4 - ocircumflex
      \ifx#1^^b5^^f5\else % õ - U+00F5 - otilde
      \ifx#1^^b6^^f6\else % ö - U+00F6 - odieresis
      \ifx#1^^b8^^f8\else % ø - U+00F8 - oslash
      \ifx#1^^b9^^f9\else % ù - U+00F9 - ugrave
      \ifx#1^^ba^^fa\else % ú - U+00FA - uacute
      \ifx#1^^bb^^fb\else % û - U+00FB - ucircumflex
      \ifx#1^^bc^^fc\else % ü - U+00FC - udieresis
      \ifx#1^^bd^^fd\else % ý - U+00FD - yacute
%
      \ifx#1^^be^^fe\else % þ - U+00FE - thorn
      \ifx#1^^bf^^b8\else % ÿ - U+00FF - ydieresis
      \errmessage{Hyphenation pattern file `dehyphn-x-2024-02-28.tex' corrupted!}%
      \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
       \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
       \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
       \fi\fi}%
%
    \catcode"C5=\active
    \def^^c5#1{%
      \ifx#1^^a1^^b2\else % š - U+0161 - scaron
      \ifx#1^^be^^ba\else % ž - U+017E - zcaron
      \ifx#1^^93^^f7\else % œ - U+0163 - oe
      \errmessage{Hyphenation pattern file `dehyphn-x-2024-02-28.tex' corrupted!}%
      \fi\fi\fi}%
%
    \lccode"B2="B2 % š - U+0161 - scaron
    \lccode"B8="B8 % ÿ - U+00FF - ydieresis
    \lccode"BA="BA % ž - U+017E - zcaron
    \lccode"E0="E0 % à - U+00E0 - agrave
    \lccode"E1="E1 % á - U+00E1 - aacute
    \lccode"E2="E2 % â - U+00E2 - acircumflex
    \lccode"E3="E3 % ã - U+00E3 - atilde
    \lccode"E4="E4 % ä - U+00E4 - adieresis
    \lccode"E5="E5 % å - U+00E5 - aring
    \lccode"E6="E6 % æ - U+00E6 - ae
%
    \lccode"E7="E7 % ç - U+00E7 - ccedilla
    \lccode"E8="E8 % è - U+00E8 - egrave
    \lccode"E9="E9 % é - U+00E9 - eacute
    \lccode"EA="EA % ê - U+00EA - ecircumflex
    \lccode"EB="EB % ë - U+00EB - edieresis
    \lccode"EC="EC % ì - U+00EC - igrave
    \lccode"ED="ED % í - U+00ED - iacute
    \lccode"EE="EE % î - U+00EE - icircumflex
    \lccode"EF="EF % ï - U+00EF - idieresis
    \lccode"F0="F0 % ð - U+00F0 - eth
%
    \lccode"F1="F1 % ñ - U+00F1 - ntilde
    \lccode"F2="F2 % ò - U+00F2 - ograve
    \lccode"F3="F3 % ó - U+00F3 - oacute
    \lccode"F4="F4 % ô - U+00F4 - ocircumflex
    \lccode"F5="F5 % õ - U+00F5 - otilde
    \lccode"F6="F6 % ö - U+00F6 - odieresis
    \lccode"F7="F7 % œ - U+0163 - oe
    \lccode"F8="F8 % ø - U+00F8 - oslash
    \lccode"F9="F9 % ù - U+00F9 - ugrave
    \lccode"FA="FA % ú - U+00FA - uacute
%
    \lccode"FB="FB % û - U+00FB - ucircumflex
    \lccode"FC="FC % ü - U+00FC - udieresis
    \lccode"FD="FD % ý - U+00FD - yacute
    \lccode"FE="FE % þ - U+00FE - thorn
    \lccode"FF="FF % ß - U+00DF - germandbls
  \fi
%
  \input dehyphn-x-2024-02-28.pat
\else
  % pTeX engine.  Fall-back to using 8 bit (EC) patterns provided by
  % package hyph-utf8.
  \message{dehyph-exptl: using pTeX engine. Loading patterns provided by package hyph-utf8.}%
  \input hyph-de-1996.ec.tex
\fi
%
\endgroup
%
\endinput

%%% Local Variables:
%%% mode: tex
%%% coding: utf-8
%%% End:
