summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/datatool
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2014-03-09 21:36:55 +0000
committerKarl Berry <karl@freefriends.org>2014-03-09 21:36:55 +0000
commit38ec9aef43ec2ac43feceade32200c22d6e1c436 (patch)
treea93df9522cc48756229b1908571e0c4e2d89349b /Master/texmf-dist/source/latex/datatool
parent630961707af41c344d014c8589d4b793069a98fc (diff)
datatool
git-svn-id: svn://tug.org/texlive/trunk@33136 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/datatool')
-rw-r--r--Master/texmf-dist/source/latex/datatool/datatool.dtx204
-rw-r--r--Master/texmf-dist/source/latex/datatool/datatool.ins2
2 files changed, 178 insertions, 28 deletions
diff --git a/Master/texmf-dist/source/latex/datatool/datatool.dtx b/Master/texmf-dist/source/latex/datatool/datatool.dtx
index 9e9ddec7ae3..7ab993f3c21 100644
--- a/Master/texmf-dist/source/latex/datatool/datatool.dtx
+++ b/Master/texmf-dist/source/latex/datatool/datatool.dtx
@@ -19,7 +19,7 @@
% -author "Nicola Talbot"
% -codetitle ""
% datatool
-% Created on 2014/2/3 15:28
+% Created on 2014/3/8 20:11
%\fi
%\iffalse
%<*package>
@@ -66,7 +66,7 @@ datatool.dtx
\doxitem{Counter}{counter}{counters}
\doxitem{Option}{option}{package options}
-\CheckSum{22983}
+\CheckSum{23069}
\RecordChanges
\PageIndex
@@ -79,11 +79,11 @@ datatool.dtx
%\fi
%\MakeShortVerb{"}
%
-%\title{Documented Code for datatool v2.20}
+%\title{Documented Code for datatool v2.21}
%\author{Nicola L. C. Talbot\\
%\url{http://www.dickimaw-books.com/}}
%
-%\date{2014-02-03}
+%\date{2014-03-08}
%\maketitle
%
%\pagenumbering{roman}
@@ -481,7 +481,7 @@ datatool.dtx
% Performs an insertion sort on \meta{list}, where \meta{criteria cmd}
% is a macro which takes two arguments \meta{a} and \meta{b}.
% \meta{criteria cmd} must set the count register \cs{dtl@sortresult}
-% to either -1 (\meta{a} less than \meta{b}), 0 (\meta{a} is
+% to either $-1$ (\meta{a} less than \meta{b}), 0 (\meta{a} is
% equal to \meta{b}) or 1 (\meta{a} is greater than \meta{b}.)
% \begin{macrocode}
\newcommand{\dtl@sortlist}[2]{%
@@ -5708,7 +5708,7 @@ datatool.dtx
%\section{Package Declaration}
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{datatool}[2014/02/03 v2.20 (NLCT)]
+\ProvidesPackage{datatool}[2014/03/08 v2.21 (NLCT)]
% \end{macrocode}
% Load required packages:
% \begin{macrocode}
@@ -7184,7 +7184,7 @@ datatool.dtx
%\end{definition}
% Applies the assignment list to the first row that has the given
% value in the given column. (Value must be expanded.)
-%\changes{2.20}{2014-02-14}{new}
+%\changes{2.20}{2014-02-03}{new}
% \begin{macrocode}
\newcommand*{\DTLassignfirstmatch}[4]{%
\dtl@assignfirstmatch{#3}{#1}{#2}{#4}%
@@ -7198,7 +7198,7 @@ datatool.dtx
% Applies the assignment list to the first row that has the given
% value in the given column. (Performs \emph{one level} expansion on
% \meta{value}.)
-%\changes{2.20}{2014-02-14}{new}
+%\changes{2.20}{2014-02-03}{new}
% \begin{macrocode}
\newcommand*{\xDTLassignfirstmatch}[4]{%
\protected@edef\@dtl@asg@value{\expandonce{#3}}%
@@ -7246,7 +7246,7 @@ datatool.dtx
% The current row must be stored in \cs{dtlcurrentrow}.
%\changes{2.0}{2009 February 27}{updated to use new database
% structure}
-%\changes{2.20}{2014-02-14}{Added check for empty argument}%
+%\changes{2.20}{2014-02-03}{Added check for empty argument}%
% \begin{macrocode}
\newcommand*{\@dtl@assign}[2]{%
\ifstrempty{#1}{}%
@@ -7433,7 +7433,7 @@ datatool.dtx
%\begin{definition}
%\cs{DTLifnullorempty}\marg{command}\marg{true part}\marg{false part}
%\end{definition}
-%\changes{2.20}{2014-02-14}{new}
+%\changes{2.20}{2014-02-03}{new}
% \begin{macrocode}
\newcommand*{\DTLifnullorempty}[3]{%
\ifdefempty{#1}{#2}{\DTLifnull{#1}{#2}{#3}}%
@@ -7534,7 +7534,10 @@ datatool.dtx
\newcommand{\dtl@gathervalues}[3][key]{%
\dtlforeachkey(\@dtl@key,\@dtl@col,\@dtl@type,\@dtl@head)\in{#2}\do
{%
- \dtlgetentryfromrow{\@dtl@tmp}{\@dtl@col}{\dtlcurrentrow}%
+% \end{macrocode}
+%\changes{2.21}{2014-03-08}{fixed bug that ignore row tok argument}
+% \begin{macrocode}
+ \dtlgetentryfromrow{\@dtl@tmp}{\@dtl@col}{#3}%
\ifx\@dtl@tmp\dtlnovalue
\@dtl@setnull{\@dtl@tmp}{\@dtl@key}%
\fi
@@ -7544,6 +7547,27 @@ datatool.dtx
% \end{macrocode}
%\end{macro}
%
+%\begin{macro}{\dtl@g@gathervalues}
+%\begin{definition}
+%\cs{dtl@g@gathervalues}\oarg{label}\marg{db name}\marg{row toks}
+%\end{definition}
+% As above but makes global assignments
+%\changes{2.21}{2014-03-08}{new}
+% \begin{macrocode}
+\newcommand{\dtl@g@gathervalues}[3][key]{%
+ \dtlforeachkey(\@dtl@key,\@dtl@col,\@dtl@type,\@dtl@head)\in{#2}\do
+ {%
+ \dtlgetentryfromrow{\@dtl@tmp}{\@dtl@col}{#3}%
+ \ifx\@dtl@tmp\dtlnovalue
+ \@dtl@setnull{\@dtl@tmp}{\@dtl@key}%
+ \fi
+ \expandafter\global
+ \expandafter\let\csname @dtl@#1@\@dtl@key\endcsname\@dtl@tmp
+ }%
+}
+% \end{macrocode}
+%\end{macro}
+%
%\begin{macro}{\dtlcurrentrow}
% Define token register to store current row.
% \begin{macrocode}
@@ -10159,10 +10183,6 @@ datatool.dtx
\edef\@dtl@dobegintab{\noexpand\begin{longtable}{\@dtl@tabargs}}%
\@dtl@dobegintab
% \end{macrocode}
-% Do start hook.
-% \begin{macrocode}
- \dtldisplaystarttab
-% \end{macrocode}
% Is a foot required?
% \begin{macrocode}
\ifx\@dtl@foot\@nnil
@@ -10184,6 +10204,7 @@ datatool.dtx
% No caption required, just do header row.
% \begin{macrocode}
\@dtl@resetdoamp
+ \dtldisplaystarttab
\dtlforeachkey(\@dtl@key,\@dtl@idx,\@dtl@type,\@dtl@head)%
\in{#2}\do
{%
@@ -10208,7 +10229,12 @@ datatool.dtx
\else
\label{\@dtl@label}%
\fi
- \\%
+ \dtldisplaycr
+% \end{macrocode}
+%\changes{2.21}{2014-03-08}{fixed location of \cs{dtldisplaystarttab}}
+% Do start hook.
+% \begin{macrocode}
+ \dtldisplaystarttab
% \end{macrocode}
% Do header row.
% \begin{macrocode}
@@ -10223,7 +10249,10 @@ datatool.dtx
}%
}%
\@dtl@resetdoamp
- \@dtl@resetdostartrow
+% \end{macrocode}
+%\changes{2.21}{2014-03-08}{added missing \cs{dtldisplayafterhead}}
+% \begin{macrocode}
+ \dtldisplaycr\dtldisplayafterhead
\endfirsthead
% \end{macrocode}
% Is a continuation caption required?
@@ -10233,7 +10262,11 @@ datatool.dtx
\else
\caption{\@dtl@contcap}%
\fi
- \\%
+% \end{macrocode}
+%\changes{2.21}{2014-03-08}{fixed location of \cs{dtldisplaystarttab}}
+% Do start hook.
+% \begin{macrocode}
+ \dtldisplaycr\dtldisplaystarttab
% \end{macrocode}
% Do header row.
% \begin{macrocode}
@@ -10249,7 +10282,11 @@ datatool.dtx
}%
\@dtl@resetdoamp
\@dtl@resetdostartrow
- \endhead\dtldisplayafterhead
+% \end{macrocode}
+%\changes{2.21}{2014-03-08}{moved misplaced \cs{dtldisplayafterhead}}
+% \begin{macrocode}
+ \dtldisplaycr\dtldisplayafterhead
+ \endhead
\fi
% \end{macrocode}
% Iterate through each row of the database
@@ -12484,7 +12521,7 @@ datatool.dtx
% Load a \texttt{.dbtex} file and assign the database name to the
% control sequence \meta{cs}. Checks the file name exists and the
% control sequence doesn't exist.
-%\changes{2.20}{2014-02-14}{new}
+%\changes{2.20}{2014-02-03}{new}
% \begin{macrocode}
\newcommand*{\DTLloaddbtex}[2]{%
\IfFileExists{#2}%
@@ -16158,8 +16195,10 @@ datatool.dtx
% \end{macrocode}
% If the format is different, let the non-empty format over-ride
% the empty format.
+%\changes{2.21}{2014-03-08}{replaced \cs{ifstrequal} with
+%\cs{ifdefequal}}
% \begin{macrocode}
- \ifstrequal{\datagidx@prev@format}{\datagidx@current@format}%
+ \ifdefequal{\datagidx@prev@format}{\datagidx@current@format}%
{%
}%
{%
@@ -19135,7 +19174,7 @@ datatool.dtx
%\section{Package Declaration}
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{databib}[2013/06/28 v2.14 (NLCT)]
+\ProvidesPackage{databib}[2014/03/08 v2.21 (NLCT)]
% \end{macrocode}
% Load required packages:
% \begin{macrocode}
@@ -19312,11 +19351,46 @@ datatool.dtx
% \end{macrocode}
% Initialise
% \begin{macrocode}
- \DTLstartsentencefalse\DTLmidsentencefalse\DTLperiodfalse
+ \DTLstartsentencefalse\DTLmidsentencefalse\DTLperiodfalse
+% \end{macrocode}
+% Format this entry
+% \begin{macrocode}
+ \csname DTLformat\DBIBentrytype\endcsname
+ }%
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\gDTLformatbibentry}
+%\begin{definition}
+%\cs{gDTLformatbibentry}
+%\end{definition}
+%\changes{2.21}{2014-03-08}{new}
+% Global version.
+% \begin{macrocode}
+\newcommand*{\gDTLformatbibentry}{%
+% \end{macrocode}
+% Check format for this type is defined.
+% \begin{macrocode}
+ \@ifundefined{DTLformat\DBIBentrytype}%
+ {%
+ \PackageError{databib}{Don't know how to format bibliography
+ entries of type `\DBIBentrytype'}{}%
+ }%
+ {%
+% \end{macrocode}
+% Print information to terminal and log file if in verbose mode.
+% \begin{macrocode}
+ \dtl@message{[\DBIBcitekey]}%
+% \end{macrocode}
+% Initialise
+% \begin{macrocode}
+ \global\DTLstartsentencefalse
+ \global\DTLmidsentencefalse
+ \global\DTLperiodfalse
% \end{macrocode}
% Format this entry
% \begin{macrocode}
- \csname DTLformat\DBIBentrytype\endcsname
+ \csname DTLformat\DBIBentrytype\endcsname
}%
}
% \end{macrocode}
@@ -19370,9 +19444,10 @@ datatool.dtx
% Iterates through the database called \meta{db name} and does
% \meta{text} if \meta{condition} is met. As with
% \cs{DTLforeach}, the starred version is read only.
+%\changes{2.21}{2014-03-08}{fixed bug in starred version}
% \begin{macrocode}
\newcommand*{\DTLforeachbibentry}{%
-\@ifstar\@DTLforeachbibentry\@DTLforeachbibentry}
+\@ifstar\@sDTLforeachbibentry\@DTLforeachbibentry}
% \end{macrocode}
%\end{macro}
%\begin{macro}{\@DTLforeachbibentry}
@@ -19422,6 +19497,81 @@ datatool.dtx
% \end{macrocode}
%\end{macro}
%
+%\begin{macro}{\gDTLforeachbibentry}
+%\begin{definition}
+%\cs{gDTLforeachbibentry}\oarg{condition}\marg{db name}\marg{text}
+%\end{definition}
+%\begin{definition}
+%\cs{gDTLforeachbibentry*}\oarg{condition}\marg{db name}\marg{text}
+%\end{definition}
+% Global version.
+%\changes{2.21}{2014-03-08}{new}
+% \begin{macrocode}
+\newcommand{\gDTLforeachbibentry}{%
+\@ifstar\@sgDTLforeachbibentry\@gDTLforeachbibentry}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\@gDTLforeachbibentry}
+%\changes{2.21}{2014-03-08}{new}
+% Unstarred version
+% \begin{macrocode}
+\newcommand*{\@gDTLforeachbibentry}[3][\boolean{true}]{%
+% \end{macrocode}
+% Store database name.
+% \begin{macrocode}
+ \xdef\DBIBname{#2}%
+% \end{macrocode}
+% Reset row counter.
+% \begin{macrocode}
+ \global\c@DTLbibrow = 0\relax
+% \end{macrocode}
+% Iterate through the database.
+% \begin{macrocode}
+ \@DTLforeach{#2}{\DBIBcitekey=CiteKey,\DBIBentrytype=EntryType}%
+ {%
+ \dtl@g@gathervalues{#2}{\dtlcurrentrow}%
+ \ifthenelse{#1}%
+ {%
+ \refstepcounter{DTLbibrow}%
+ \global\c@DTLbibrow=\c@DTLbibrow
+ #3%
+ }%
+ {}%
+ }%
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\@sgDTLforeachbibentry}
+%\changes{2.21}{2014-03-08}{new}
+% Starred version
+% \begin{macrocode}
+\newcommand*{\@sgDTLforeachbibentry}[3][\boolean{true}]{%
+% \end{macrocode}
+% Store database name.
+% \begin{macrocode}
+ \xdef\DBIBname{#2}%
+% \end{macrocode}
+% Reset row counter.
+% \begin{macrocode}
+ \global\c@DTLbibrow = 0\relax
+% \end{macrocode}
+% Iterate through the database (read only).
+% \begin{macrocode}
+ \@sDTLforeach{#2}{\DBIBcitekey=CiteKey,\DBIBentrytype=EntryType}%
+ {%
+ \dtl@g@gathervalues{#2}{\dtlcurrentrow}%
+ \ifthenelse{#1}%
+ {%
+ \refstepcounter{DTLbibrow}%
+ \global\c@DTLbibrow=\c@DTLbibrow
+ #3%
+ }%
+ {}%
+ }%
+}
+% \end{macrocode}
+%\end{macro}
+%
%\begin{counter}{DTLbibrow}
%The counter \ctrfmt{DTLbibrow} keeps track of the current
%row in the body of \cs{DTLforeachbibentry}. (You can't rely on
@@ -20141,9 +20291,9 @@ datatool.dtx
%
%\subsection{ifthen conditionals}
% The conditionals defined in this section may be used in the
-% optional argument of \cs{DTLforeachbib}. They may also be
+% optional argument of \cs{DTLforeachbibentry}. They may also be
% used in the first argument of \cs{ifthenelse}, but only if the
-% command occurs within the body of \cs{DTLforeachbib}.
+% command occurs within the body of \cs{DTLforeachbibentry}.
%
%\begin{macro}{\DTLbibfieldexists}
%\begin{definition}
diff --git a/Master/texmf-dist/source/latex/datatool/datatool.ins b/Master/texmf-dist/source/latex/datatool/datatool.ins
index a4eb3b78d52..9a85ef0cf8c 100644
--- a/Master/texmf-dist/source/latex/datatool/datatool.ins
+++ b/Master/texmf-dist/source/latex/datatool/datatool.ins
@@ -1,4 +1,4 @@
-% datatool.ins generated using makedtx version 1.1 2014/2/3 15:28
+% datatool.ins generated using makedtx version 1.1 2014/3/8 20:11
\input docstrip
\preamble