%% 
%% This is file `switch.def',
%% generated with the docstrip utility.
%% 
%% The original source files were:
%% 
%% babel.dtx  (with options: `kernel')
%% 
%% 
%% This is a generated file. 
%% 
%% Copyright 1989-1995 Johannes L. Braams and any individual authors 
%% listed elsewhere in this file. All rights reserved. 
%% 
%% For further copyright information see any other copyright notices in 
%% this file. 
%% 
%% This file is part of the Babel system, release 3.5. 
%% --------------------------------------------------- 
%% This system is distributed in the hope that it will be useful, 
%% but WITHOUT ANY WARRANTY; without even the implied warranty of 
%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
%% 
%% For error reports concerning UNCHANGED versions of this file no more 
%% than one year old, see bugs.txt. 
%% 
%% Please do not request updates from me directly. Primary 
%% distribution is through the CTAN archives. 
%% 
%% 
%% IMPORTANT COPYRIGHT NOTICE: 
%% 
%% You are NOT ALLOWED to distribute this file alone. 
%% 
%% You are allowed to distribute this file under the condition that it is 
%% distributed together with all the files listed in manifest.txt. 
%% 
%% If you receive only some of these files from someone, complain! 
%% 
%% Permission is granted to copy this file to another file with a clearly 
%% different name and to customize the declarations in that copy to serve 
%% the needs of your installation, provided that you comply with 
%% the conditions in the file legal.txt from the LaTeX2e distribution. 
%% 
%% However, NO PERMISSION is granted to generate or to distribute a 
%% modified version of this file under its original name. 
%% 
%% You are NOT ALLOWED to change this file. 
%% 
%% 
%% MODIFICATION ADVICE: 
%% 
%% If you want to customize this file, it is best to make a copy of the 
%% source file(s) from which it was produced. Use a different name for 
%% your copy(ies) and modify the copy(ies); this will ensure that your 
%% modifications do not get overwritten when you install a new release of 
%% the standard system. You should also ensure that your modified source 
%% file does not generate any modified file with the same name as a 
%% standard file. You can then easily distribute your modifications by 
%% distributing the modified and renamed copy of the source file, taking 
%% care to observe the conditions in legal.txt; this will ensure that 
%% other users can safely use your modifications. 
%% 
%% You will also need to produce your own, suitably named, .ins file to 
%% control the generation of files from your source file; this file 
%% should contain your own preambles for the files it generates, not 
%% those in the standard .ins files. 
%% 
%% The names of the source files used are shown above. 
%% 
%% 
%% 
%%%\iffalse
%%%  @LaTeX-file{
%%%     author          = "Johannes L. Braams",
%%%     version         = "3.5c",
%%%     date            = "21 june 1995",
%%%     time            = "23:55:00 MET",
%%%     filename        = "babel.dtx",
%%%     address         = "Kooienswater 62
%%%                        The Netherlands",
%%%     telephone       = "(70) 3432037",
%%%     FAX             = "(70) 3432395",
%%%     checksum        = "54332 2092 9869 81235",
%%%     email           = "JLBraams@cistron.nl (Internet)",
%%%     codetable       = "ISO/ASCII",
%%%     keywords        = "babel",
%%%     supported       = "yes",
%%%     docstring       = "This file, babel.dtx contains the core of
%%%                        the babel system as it was described in
%%%                        TuGboat Volume 12 no 2 and Volume 14 no 1.
%%%
%%%                        The checksum field above contains a CRC-16
%%%                        checksum as the first value, followed by the
%%%                        equivalent of the standard UNIX wc (word
%%%                        count) utility output of lines, words, and
%%%                        characters.  This is produced by Robert
%%%                        Solovay's checksum utility.",
%%%      }
%%% \fi
%%
%% Copyright (C) 1989 -- 1995 by Johannes Braams,
%%                            TeXniek
%%                            all rights reserved.
%% Please report errors to: J.L. Braams
%%                          JLBraams@cistron.nl
\ifx\ProvidesFile\undefined
  \def\ProvidesFile#1[#2 #3 #4]{\wlog{#4 #3 <#2>}}\fi
\ProvidesFile{switch.def}
                [1995/07/11 v3.5e
      Babel language switching mechanism]
\ifx\AtBeginDocument\undefined
  \input plain.def\relax
\fi
\expandafter\ifx\csname iflanguage\endcsname\relax \else
\expandafter\endinput
\fi
\ifx\language\undefined
  \csname newcount\endcsname\language
\fi
\ifx\newlanguage\undefined
  \csname newcount\endcsname\last@language
\else
  \countdef\last@language=19
\fi
\ifx\newlanguage\undefined
  \def\addlanguage#1{%
    \global\advance\last@language \@ne
    \ifnum\last@language<\@cclvi
    \else
        \errmessage{No room for a new \string\language!}%
    \fi
    \global\chardef#1\last@language
    \wlog{\string#1 = \string\language\the\last@language}}
\else
  \def\addlanguage{\alloc@9\language\chardef\@cclvi}
\fi
\def\adddialect#1#2{%
    \global\chardef#1#2\relax
    \wlog{\string#1 = a dialect from \string\language#2}}
\def\iflanguage#1#2#3{%
  \expandafter\ifx\csname l@#1\endcsname\relax
    \@nolanerr{#1}%
  \else
    \ifnum\csname l@#1\endcsname=\language #2%
    \else#3\fi
  \fi}

\def\selectlanguage#1{%
  \edef\languagename{%
    \ifnum\escapechar=\expandafter`\string#1\empty
     \else \string#1\empty\fi}
  \expandafter\protect\csname selectlanguage \expandafter\endcsname
  \expandafter{\languagename}}
\ifx\undefined\protect\let\protect\relax\fi
\expandafter\def\csname selectlanguage \endcsname#1{%
  \select@language{#1}%
  \if@filesw
    \protected@write\@auxout{}{\string\select@language{#1}}%
    \addtocontents{toc}{\string\select@language{#1}}%
    \addtocontents{lof}{\string\select@language{#1}}%
    \addtocontents{lot}{\string\select@language{#1}}%
  \fi}
\def\select@language#1{%
  \expandafter\ifx\csname l@#1\endcsname\relax
    \@nolanerr{#1}%
  \else
    \language=\csname l@#1\endcsname\relax
    \originalTeX
    \expandafter\def\expandafter\originalTeX
        \expandafter{\csname noextras#1\endcsname
                     \let\originalTeX\empty}%
    \babel@beginsave
    \csname captions#1\endcsname
    \csname date#1\endcsname
    \csname extras#1\endcsname\relax
    \babel@savevariable\lefthyphenmin
    \babel@savevariable\righthyphenmin
    \expandafter\ifx\csname #1hyphenmins\endcsname\relax
      \lefthyphenmin\tw@\righthyphenmin\thr@@
    \else
      \expandafter\expandafter\expandafter\set@hyphenmins
        \csname #1hyphenmins\endcsname
    \fi
  \fi}
\long\def\otherlanguage#1{%
  \def\languagename{#1}%
  \csname selectlanguage \endcsname{#1}%
  \ignorespaces
  }
\long\def\endotherlanguage{%
  \originalTeX
  \global\@ignoretrue\ignorespaces
  }
\def\foreignlanguage#1#2{%
  \begingroup
    \def\languagename{#1}%
    \expandafter\ifx\csname l@#1\endcsname\relax
      \@nolanerr{#1}%
    \else
      \language=\csname l@#1\endcsname\relax
      \csname extras#1\endcsname
      \expandafter\ifx\csname #1hyphenmins\endcsname\relax
        \lefthyphenmin\tw@\righthyphenmin\thr@@
      \else
        \expandafter\expandafter\expandafter\set@hyphenmins
          \csname #1hyphenmins\endcsname
      \fi
    \fi
    #2
    \csname noextras#1\endcsname
    \endgroup
  }
\def\set@hyphenmins#1#2{\lefthyphenmin#1\righthyphenmin#2}
\ifx\undefined\originalTeX\let\originalTeX\empty\fi
\ifx\undefined\babel@beginsave\let\babel@beginsave\relax\fi
\ifx\PackageError\undefined
  \def\@nolanerr#1{%
    \errhelp{Your command will be ignored, type <return> to proceed}%
    \errmessage{You haven't defined the language #1\space yet}}
  \def\@nopatterns#1{%
    \message{No hyphenation patterns were loaded for}
    \message{the language `#1'}
    \message{I will use the patterns loaded for \string\language=0
          instead}}
  \def\@activated#1{%
    \wlog{Package babel Info: Making #1 an active character}}
\else
  \newcommand*{\@nolanerr}[1]{%
    \PackageError{babel}%
                 {You haven't defined the language #1\space yet}%
        {Your command will be ignored, type <return> to proceed}}
  \newcommand*{\@nopatterns}[1]{%
    \PackageWarningNoLine{babel}%
        {No hyphenation patterns were loaded for\MessageBreak
          the language `#1'\MessageBreak
          I will use the patterns loaded for \string\language=0
          instead}}
  \newcommand*{\@activated}[1]{%
    \PackageInfo{babel}{%
      Making #1 an active character}}
\fi
%%
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
\endinput
%% 
%% End of file `switch.def'.
