From af0a12985674bb2c95947a4c9c439887b679f168 Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Mon, 26 Feb 2007 01:15:02 +0000
Subject: new latex package qstest (22feb07)

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

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

diff --git a/Master/texmf-dist/tex/latex/qstest/makematch.sty b/Master/texmf-dist/tex/latex/qstest/makematch.sty
new file mode 100644
index 00000000000..c57a8a66b22
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/qstest/makematch.sty
@@ -0,0 +1,134 @@
+%%
+%% This is file `makematch.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% makematch.dtx  (with options: `package,etex')
+%% 
+%% IMPORTANT NOTICE:
+%% 
+%% For the copyright see the source file.
+%% 
+%% Any modified versions of this file must be renamed
+%% with new filenames distinct from makematch.sty.
+%% 
+%% For distribution of the original source see the terms
+%% for copying and modification in the file makematch.dtx.
+%% 
+%% This generated file may be distributed as long as the
+%% original source files, as listed above, are part of the
+%% same distribution. (The sources need not necessarily be
+%% in the same archive or directory.)
+%%
+%% Copyright (C) 2006, 2007 QuinScape GmbH
+%% http://www.quinscape.de
+\NeedsTeXFormat{LaTeX2e}
+\def\next$#1: #2.dtx #3 #4-#5-#6 #7${%
+  \ProvidesPackage{#2}[#4/#5/#6 1.#3 Pattern matching with
+  wildcards]
+}
+\next
+$Id: makematch.dtx 7925 2007-02-23 14:22:19Z dkastrup $
+\newcommand\MakeMatcher[3][\relax]{%
+ \edef#2{\detokenize{#3}}%
+  \def\qst@mmtmp##1##2#1{\qst@parseonecase{##1}{##2}}%
+  \let\qst@comma= #1\relax
+  \edef#2##1{\noexpand\qst@setup##1%
+    \expandafter\qst@parsestart\expandafter\@firstoftwo
+    #2#1{#1\m@ne}\noexpand\qst@finish}}
+\long\def\qst@matchalways#1#2#3{#2}
+\long\def\qst@matchnever#1#2#3{#3}
+\def\qst@setup{\let\MatchedTarget\@undefined
+  \let\qst@finish\@secondoftwo
+  \futurelet\qst@matchlist\qst@setupii}
+\def\qst@setupii{\ifcase
+    \ifcat\noexpand\qst@matchlist\bgroup\@ne\fi
+    \ifx\qst@matchlist[\tw@\fi %]
+    \m@ne
+  \or
+    \expandafter\MakeMatchTarget\expandafter\qst@matchlist
+  \or
+    \expandafter\qst@setupiii
+  \else \expandafter\@gobble
+  \fi}
+\def\qst@setupiii[#1]{\MakeMatchTarget[{#1}]\qst@matchlist}
+\def\qst@parsestart#1#2{%
+  \ifcase
+    \ifx\qst@comma#2\@ne\fi
+    \ifx\qst@comma\relax
+      \else\ifx!#2#1\tw@\@ne\fi
+    \fi
+    \thr@@
+  \or
+    \expandafter\qst@parsestart
+    \expandafter\@firstoftwo
+  \or
+    \expandafter\qst@parsestart
+    \expandafter\@secondoftwo
+  \or
+    \expandafter\qst@mmtmp
+    \expandafter#1%
+    \expandafter#2%
+  \fi
+}
+\def\qst@afterfi#1#2\fi{\fi#1}
+\def\qst@parseonecase#1#2{%
+  \noexpand\qst@checkname {\qst@parsewild#2*\,23456789*}%
+  \noexpand#1\qst@parsestart\@firstoftwo}
+\def\qst@parsewild#1*#2\,#3#4*{%
+  #1%
+  \ifx\,#2\,%
+  \else
+    #####3%
+    \qst@afterfi{\qst@skipwild#2\,#4*}%
+  \fi}
+\def\qst@skipwild#1*#2\,{%
+  #1%
+  \ifcase
+    \ifx *#1*\ifx\,#2\,\else \@ne \fi \fi
+    \tw@
+  \or
+    \expandafter\qst@skipwild
+  \or
+    \expandafter\qst@parsewild\expandafter*%
+  \fi#2\,}
+\def\qst@checkname#1{%
+  \def\qst@mmtmp##1\,#1\,{#1\,\@nil}%
+  \expandafter\expandafter\expandafter\qst@checknameii
+  \expandafter\qst@mmtmp
+  \expandafter\,\qst@matchlist\,#1\,\@nil}
+\def\qst@checknameii#1\,#2\@nil#3{%
+  \ifcase
+    \ifx\@nil#3\@ne\fi
+    \ifx\@nil#2\@nil \tw@\fi
+    \m@ne
+  \or
+    \expandafter\qst@checknamenomatch
+  \or
+    \expandafter\qst@checknamematch
+  \fi \expandafter\qst@checknameii\qst@mmtmp#1\,#2#3}
+\def\qst@checknamenomatch#1\@nil#2{}
+\def\qst@checknamematch#1\qst@mmtmp#2\,#3\@nil{%
+  \def\MatchedTarget{#2}%
+  \let\qst@finish}
+\def\RemoveMatched#1{\ifx#1\MatchedTarget
+    \let#1\@empty
+  \else
+    \expandafter\def\expandafter\qst@mmtmp
+    \expandafter##\expandafter1\expandafter\,\MatchedTarget\,{##1\,}%
+    \expandafter\def\expandafter#1\expandafter{%
+      \romannumeral\expandafter\expandafter\expandafter\z@
+      \expandafter\qst@remmat
+      \romannumeral\expandafter\expandafter\expandafter\z@
+      \expandafter\qst@mmtmp\expandafter\,#1\,\@nil}%
+  \fi}
+\def\qst@remmat\,#1\,\@nil{#1}
+\newcommand\MakeMatchTarget[3][\relax]{%
+  \def\qst@mmtmp##1#1##2{##1\noexpand\,\qst@mmtmp##2}%
+  \edef#2{\expandafter\qst@mmtmp\expandafter
+    \@gobbletwo\expandafter#1\detokenize{#3}\iffalse#1\fi}%
+}
+\endinput
+%%
+%% End of file `makematch.sty'.
-- 
cgit v1.2.3

