summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/fink
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2007-06-17 23:26:53 +0000
committerKarl Berry <karl@freefriends.org>2007-06-17 23:26:53 +0000
commitaf0203ab8d35127f3a5b1aaeed7433deb114878c (patch)
tree51ace2ecccf1b280e6a24ad1e725f7897b06ce08 /Master/texmf-dist/tex/latex/fink
parentde976b5e75878b17c6342e05a14548999a38078e (diff)
fink 2.0 (11jun07)
git-svn-id: svn://tug.org/texlive/trunk@4464 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/fink')
-rw-r--r--Master/texmf-dist/tex/latex/fink/fink.sty105
1 files changed, 59 insertions, 46 deletions
diff --git a/Master/texmf-dist/tex/latex/fink/fink.sty b/Master/texmf-dist/tex/latex/fink/fink.sty
index fc68b5da015..b628b16d57d 100644
--- a/Master/texmf-dist/tex/latex/fink/fink.sty
+++ b/Master/texmf-dist/tex/latex/fink/fink.sty
@@ -8,7 +8,7 @@
%%
-%% Copyright (C) 1999-2002 Didier Verna
+%% Copyright (C) 1999, 2000, 2001, 2002, 2007 Didier Verna
%% This file is part of FiNK.
@@ -38,65 +38,78 @@
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
-
-\ProvidesPackage{fink}[2002/04/03 v1.2
+\ProvidesPackage{fink}[2007/06/11 2.0
Keep track of the current filename]
-\newcommand\finkfile{}
-\def\fink@extension#1{\xdef\finkfile{\jobname#1}}
-\newcommand\finkextension[1]{
- \fink@extension{#1}
- \PackageInfo{FiNK}{main filename switched to `\finkfile'}
- \renewcommand\finkextension[1]{
- \PackageError{FiNK}{\protect\finkextension\space can only be used once}{%
- You seem to have called \protect\finkextension\space twice.\MessageBreak
- Type X to quit, remove spurious call(s) and rerun LaTeX.}}}
+\RequirePackage{kvoptions}
+\SetupKeyvalOptions{family=fnk,prefix=fnk@}
+
+\DeclareStringOption[\@currdir]{maindir}
+\DeclareStringOption[tex]{mainext}
+
+\newcommand*\@fink@mainext[1]{\setkeys{fnk}{mainext={#1}}}
+\newcommand*\fink@mainext{%
+ \expandafter\@fink@mainext\expandafter{\CurrentOption}}
+\DeclareVoidOption{tex}{\fink@mainext}
+\DeclareVoidOption{ltx}{\fink@mainext}
+
+\newcommand*\finkextension[1]{%
+ \PackageError{FiNK}{%
+ \protect\finkextension\space shouldn't be used anymore.\MessageBreak
+ Please use the `mainext' package option instead.}{%
+ No big deal right ?\MessageBreak
+ Type X to quit and modify your source.}}
\@onlypreamble\finkextension
-\DeclareOption{tex}{\fink@extension{.tex}}
-\DeclareOption{ltx}{\fink@extension{.ltx}}
-\AtEndOfPackage{\PackageInfo{FiNK}{main filename is `\finkfile'}}
+\ProcessKeyvalOptions*
+
+\newcommand*\finkdir{\fnk@maindir}
+\newcommand*\finkbase{\jobname}
+\newcommand*\finkext{\fnk@mainext}
-\ExecuteOptions{tex}
-\ProcessOptions*
+\newcommand*\finkfile{}
+\newcommand*\fink@file[2]{#1\ifx\\#2\\\else.#2\fi}
+\xdef\finkfile{\fink@file{\jobname}{\fnk@mainext}}
-\def\fink@setnewfile#1{%
+\newcommand*\finkpath{}
+\xdef\finkpath{\finkdir\finkfile}
+
+\PackageInfo{FiNK}{main file set to "\finkpath"}
+
+\newcommand*\fink@prepare[1]{%
{\filename@parse{#1}%
- \xdef\@finkfile{%
- \filename@base.\ifx\filename@ext\relax tex\else\filename@ext\fi}}}
+ \xdef\fink@nextdir{%
+ \ifx\filename@area\@empty%
+ \fnk@maindir%
+ \else%
+ \fnk@maindir\filename@area%
+ \fi}%
+ \xdef\fink@nextbase{\filename@base}%
+ \xdef\fink@nextext{\ifx\filename@ext\relax tex\else\filename@ext\fi}%
+ \xdef\fink@nextfile{\fink@file{\fink@nextbase}{\fink@nextext}}%
+ \xdef\fink@nextpath{\fink@nextdir\fink@nextfile}}}
-\def\fink@input{%
- \xdef\finkfile{\@finkfile}%
+\newcommand*\fink@input{%
+ \xdef\finkdir{\fink@nextdir}%
+ \xdef\finkbase{\fink@nextbase}%
+ \xdef\finkext{\fink@nextext}%
+ \xdef\finkfile{\fink@nextfile}%
+ \xdef\finkpath{\fink@nextpath}%
\@@input\@filef@und}
-\def\fink@restore{\xdef\finkfile}
-
-\long\def\IfFileExists#1#2#3{%
- \openin\@inputcheck#1 %
- \ifeof\@inputcheck
- \ifx\input@path\@undefined
- \def\reserved@a{#3}%
- \else
- \def\reserved@a{\@iffileonpath{#1}{#2}{#3}}%
- \fi
- \else
- \closein\@inputcheck
- \edef\@filef@und{#1 }%
- \fink@setnewfile{#1}%
- \def\reserved@a{#2}%
- \fi
- \reserved@a}
+\newcommand*\fink@restore[1]{%
+ {\filename@parse{#1}%
+ \xdef\finkdir{\filename@area}%
+ \xdef\finkbase{\filename@base}%
+ \xdef\finkext{\filename@ext}%
+ \xdef\finkfile{\fink@file{\finkbase}{\finkext}}
+ \xdef\finkpath{\finkdir\finkfile}}}
\long\def\InputIfFileExists#1#2{%
\IfFileExists{#1}{%
#2\@addtofilelist{#1}%
+ \fink@prepare{#1}%
\expandafter\fink@input%
- \expandafter\fink@restore\expandafter{\finkfile}}}
-\def\@input#1{%
- \IfFileExists{#1}{%
- \expandafter\fink@input%
- \expandafter\fink@restore\expandafter{\finkfile}}{%
- %% else
- \GenericWarning{}{no file #1.}}}
+ \expandafter\fink@restore\expandafter{\finkpath}}}
\endinput
%%