summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/cweb/keyvald.sty
blob: 2f6e49cef8af4f56725fc8b8aa4cab99c400ab0d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
%% 
%% This is file `keyvald.sty', generated on <1995/11/30> 
%% with the docstrip utility (2.2i).
%% 
%% The original source files were:
%% 
%% keyvald.dtx  (with options: `package')
%% 
%% IMPORTANT NOTICE:
%% You are not allowed to distribute this file.
%% For distribution of the original source see
%% the copyright notice in the file keyvald.dtx .
%% 
%% $ITI: keyvald.dtx,v 1.2 1995/08/25 19:00:31 schrod Exp $
%%------------------------------------------------------------
%% (history at end)
%% File: keyvald.dtx; changed version of
%% File: keyval.dtx Copyright (C) 1993-1994 David Carlisle
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{keyvald}
                 [1994/08/23 v1.08.1 key=value parser (DPC) w/ defaults (js)]
\def\setkeys#1#2{%
  \def\KV@prefix{KV@#1@}%
  \KV@do#2,\relax,}
\def\KV@do#1,{%
 \ifx\relax#1\empty\else
  \KV@split#1==\relax
  \expandafter\KV@do\fi}
\def\KV@split#1=#2=#3\relax{%
  \KV@@sp@def\KV@key{#1}%
  \ifx\KV@key\@empty\else
    \expandafter\let\expandafter\@tempc
      \csname\KV@prefix\KV@key\endcsname
    \ifx \@tempc\relax
      \expandafter\let \expandafter\@tempc
        \csname\KV@prefix*\endcsname
      \def\@tempa{*}%
    \else
      \let\@tempa\KV@key
    \fi
    \ifx\@tempc\relax
      \KV@err{\KV@key\space undefined}%
    \else
      \ifx\@empty#3\@empty
        \KV@default
      \else
        \KV@@sp@def\@tempb{#2}%
        \expandafter\@tempc\expandafter{\@tempb}\relax
      \fi
    \fi
  \fi}
\def\KV@default{%
  \expandafter\let\expandafter\@tempb
    \csname\KV@prefix\@tempa @default\endcsname
  \ifx\@tempb\relax
    \KV@err{No value specified for \KV@key}%
  \else
    \@tempb\relax
  \fi}
\def\KV@err#1{\PackageError{keyvald}{#1}{}}
\def\@tempa#1{%
\def\KV@@sp@def##1##2{\KV@@sp@b##2\@nil\@nil#1\@nil\relax##1}}
\@tempa{ }
\def\KV@@sp@b#1#2 \@nil{\KV@@sp@c#1#2}
\def\KV@@sp@c#1\@nil#2\relax#3{\def#3{#1}}
\def\define@key#1#2{%
  \@ifnextchar[{\KV@def{#1}{#2}}{\@namedef{KV@#1@#2}####1}}
\def\KV@def#1#2[#3]{%
  \@namedef{KV@#1@#2@default\expandafter}\expandafter
    {\csname KV@#1@#2\endcsname{#3}}%
  \@namedef{KV@#1@#2}##1}
\endinput
%% 
%% End of file `keyvald.sty'.