From 9e03dd49eee57e61c49878d62fcc67a57a652a8d Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Fri, 13 Jan 2006 00:11:40 +0000
Subject: xkeyval

git-svn-id: svn://tug.org/texlive/trunk@1459 c570f23f-e606-0410-a88d-b1316a301751
---
 Master/texmf-dist/tex/latex/xkeyval/xkeyval.sty | 152 ++++++++++++++++++++++++
 1 file changed, 152 insertions(+)
 create mode 100644 Master/texmf-dist/tex/latex/xkeyval/xkeyval.sty

(limited to 'Master/texmf-dist/tex/latex/xkeyval/xkeyval.sty')

diff --git a/Master/texmf-dist/tex/latex/xkeyval/xkeyval.sty b/Master/texmf-dist/tex/latex/xkeyval/xkeyval.sty
new file mode 100644
index 00000000000..eac101c3e4f
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/xkeyval/xkeyval.sty
@@ -0,0 +1,152 @@
+%%
+%% This is file `xkeyval.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% xkeyval.dtx  (with options: `xkvlatex')
+%% 
+%% ---------------------------------------
+%% Copyright (C) 2004-2005 Hendri Adriaens
+%% ---------------------------------------
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%%   http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2003/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% This Current Maintainer of this work is Hendri Adriaens.
+%%
+%% This work consists of the file xkeyval.dtx and derived files
+%% keyval.tex, xkvtxhdr.tex, xkeyval.sty, xkeyval.tex, xkvview.sty,
+%% xkvltxp.sty, pst-xkey.tex, pst-xkey.sty, xkveca.cls, xkvecb.cls,
+%% xkvesa.sty, xkvesb.sty, xkvesc.sty, xkvex1.tex, xkvex2.tex,
+%% xkvex3.tex and xkvex4.tex.
+%%
+%% The following files constitute the xkeyval bundle and must be
+%% distributed as a whole: readme, xkeyval.pdf, keyval.tex,
+%% pst-xkey.sty, pst-xkey.tex, xkeyval.sty, xkeyval.tex, xkvview.sty,
+%% xkvltxp.sty, xkvtxhdr.tex, pst-xkey.dtx and xkeyval.dtx.
+%%
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+\ProvidesPackage{xkeyval}
+  [2005/08/12 v2.5d package option processing (HA)]
+\ifx\XKeyValLoaded\endinput\else\input xkeyval \fi
+\edef\XKVcatcodes{%
+  \catcode`\noexpand\=\the\catcode`\=\relax
+  \catcode`\noexpand\,\the\catcode`\,\relax
+  \let\noexpand\XKVcatcodes\relax
+}
+\catcode`\=12\relax
+\catcode`\,12\relax
+\let\XKV@doxs\relax
+\def\XKV@warn#1{\PackageWarning{xkeyval}{#1}}
+\def\XKV@err#1{\PackageError{xkeyval}{#1}\@ehc}
+\XKV@whilist\@filelist\XKV@tempa\ifx\XKV@documentclass\@undefined\fi{%
+  \filename@parse\XKV@tempa
+  \ifx\filename@ext\@clsextension
+    \XKV@ifundefined{opt@\filename@area\filename@base.\filename@ext
+    }{}{%
+      \edef\XKV@documentclass{%
+        \filename@area\filename@base.\filename@ext
+      }%
+    }%
+  \fi
+}
+\ifx\XKV@documentclass\@undefined
+  \XKV@err{xkeyval loaded before \protect\documentclass}%
+  \let\XKV@documentclass\@empty
+  \let\XKV@classoptionslist\@empty
+\else
+  \let\XKV@classoptionslist\@classoptionslist
+  \def\XKV@tempa#1{%
+    \let\@classoptionslist\@empty
+    \XKV@for@n{#1}\XKV@tempa{%
+      \expandafter\in@\expandafter=\expandafter{\XKV@tempa}%
+      \ifin@\else\XKV@addtolist@o\@classoptionslist\XKV@tempa\fi
+    }%
+  }
+  \expandafter\XKV@tempa\expandafter{\@classoptionslist}
+\fi
+\def\XKV@testopte#1{%
+  \XKV@ifstar{\XKV@sttrue\XKV@t@stopte#1}{\XKV@stfalse\XKV@t@stopte#1}%
+}
+\def\XKV@t@stopte#1{\@testopt{\XKV@t@st@pte#1}{KV}}
+\def\XKV@t@st@pte#1[#2]{%
+  \XKV@makepf{#2}%
+  \@ifnextchar<{\XKV@@t@st@pte#1}%
+    {\XKV@@t@st@pte#1<\@currname.\@currext>}%
+}
+\def\XKV@@t@st@pte#1<#2>{%
+  \XKV@sp@deflist\XKV@fams{#2}%
+  \@testopt#1{}%
+}
+\def\DeclareOptionX{%
+  \let\@fileswith@pti@ns\@badrequireerror
+  \XKV@ifstar\XKV@dox\XKV@d@x
+}
+\long\def\XKV@dox#1{\XKV@toks{#1}\edef\XKV@doxs{\the\XKV@toks}}
+\def\XKV@d@x{\@testopt\XKV@@d@x{KV}}
+\def\XKV@@d@x[#1]{%
+  \@ifnextchar<{\XKV@@@d@x[#1]}{\XKV@@@d@x[#1]<\@currname.\@currext>}%
+}
+\def\XKV@@@d@x[#1]<#2>#3{\@testopt{\define@key[#1]{#2}{#3}}{}}
+\def\ExecuteOptionsX{\XKV@stfalse\XKV@plfalse\XKV@t@stopte\XKV@setkeys}
+\def\ProcessOptionsX{\XKV@plfalse\XKV@testopte\XKV@pox}
+\def\XKV@pox[#1]{%
+  \let\XKV@tempa\@empty
+  \XKV@inpoxtrue
+  \let\@fileswith@pti@ns\@badrequireerror
+  \edef\XKV@testclass{\@currname.\@currext}%
+  \ifx\XKV@testclass\XKV@documentclass
+    \let\@unusedoptionlist\XKV@classoptionslist
+    \XKV@ifundefined{ver@xkvltxp.sty}{}{%
+      \@onelevel@sanitize\@unusedoptionlist
+    }%
+  \else
+    \ifXKV@st
+      \def\XKV@tempb##1,{%
+        \def\CurrentOption{##1}%
+        \ifx\CurrentOption\@nnil\else
+          \XKV@g@tkeyname##1=\@nil\CurrentOption
+          \XKV@key@if@ndefined{\CurrentOption}{}{%
+            \XKV@useoption{##1}%
+            \XKV@addtolist@n\XKV@tempa{##1}%
+          }%
+          \expandafter\XKV@tempb
+        \fi
+      }%
+      \expandafter\XKV@tempb\XKV@classoptionslist,\@nil,%
+    \fi
+  \fi
+  \expandafter\XKV@addtolist@o\expandafter
+    \XKV@tempa\csname opt@\@currname.\@currext\endcsname
+  \def\XKV@tempb{\XKV@setkeys[#1]}%
+  \expandafter\XKV@tempb\expandafter{\XKV@tempa}%
+  \let\XKV@doxs\relax
+  \let\XKV@rm\@empty
+  \XKV@inpoxfalse
+  \let\@fileswith@pti@ns\@@fileswith@pti@ns
+  \AtEndOfPackage{\let\@unprocessedoptions\relax}%
+}
+\def\XKV@useoption#1{%
+  \def\XKV@resa{#1}%
+  \XKV@ifundefined{ver@xkvltxp.sty}{}{%
+    \@onelevel@sanitize\XKV@resa
+  }%
+  \@expandtwoargs\@removeelement{\XKV@resa}%
+    {\@unusedoptionlist}\@unusedoptionlist
+}
+\DeclareOptionX*{%
+  \PackageWarning{xkeyval}{Unknown option `\CurrentOption'}%
+}
+\ProcessOptionsX
+\XKVcatcodes
+\endinput
+%%
+%% End of file `xkeyval.sty'.
-- 
cgit v1.2.3

