diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/eskdx/source/eskdhash.sty.in |
Initial commit
Diffstat (limited to 'macros/latex/contrib/eskdx/source/eskdhash.sty.in')
-rw-r--r-- | macros/latex/contrib/eskdx/source/eskdhash.sty.in | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/macros/latex/contrib/eskdx/source/eskdhash.sty.in b/macros/latex/contrib/eskdx/source/eskdhash.sty.in new file mode 100644 index 0000000000..1edc76f611 --- /dev/null +++ b/macros/latex/contrib/eskdx/source/eskdhash.sty.in @@ -0,0 +1,59 @@ +% Copyright 2006 Konstantin Korikov <lostclus@ua.fm> +% +% 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 Konstantin Korikov. +% +% This work consists of all files listed in manifest.txt. +% +m4_ESKDX_INIT +m4_FILE_INIT +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{eskdhash}[m4_dnl +m4_FILE_ID([[$Date:: 2010-01-14#$]]) Hash Routines] + +\newcommand{\ESKD@hash@new}[1]{% + \global\expandafter\newcount\csname ESKD@hash@c@#1\endcsname + \global\csname ESKD@hash@c@#1\endcsname = 0 + \global\expandafter\newcount\csname ESKD@hash@p@#1\endcsname + \global\csname ESKD@hash@p@#1\endcsname = 0\relax} + +\newcommand{\ESKD@hash@set}[3]{% + \expandafter\ifx\csname ESKD@hash@v@#1@#2\endcsname\relax + \expandafter\gdef\csname ESKD@hash@k@#1@\expandafter\number\csname + ESKD@hash@c@#1\endcsname\endcsname{#2} + \expandafter\advance\csname ESKD@hash@c@#1\endcsname 1 + \fi + \expandafter\gdef\csname ESKD@hash@v@#1@#2\endcsname{#3}} + +\newcommand{\ESKD@hash@get}[2]{% + \csname ESKD@hash@v@#1@#2\endcsname} + +\newcommand{\ESKD@hash@reset}[1]{% + \csname ESKD@hash@p@#1\endcsname = 0\relax} + +\newcommand{\ESKD@hash@next@key}[1]{% + \csname ESKD@hash@k@#1@\expandafter\number\csname + ESKD@hash@p@#1\endcsname\endcsname + \expandafter\advance\csname ESKD@hash@p@#1\endcsname 1\relax} + +\newcommand{\ESKD@hash@next@value}[1]{% + \csname ESKD@hash@v@#1@\csname ESKD@hash@k@#1@\expandafter\number\csname + ESKD@hash@p@#1\endcsname\endcsname\endcsname + \expandafter\advance\csname ESKD@hash@p@#1\endcsname 1\relax} + +\newcommand{\ESKD@hash@count}[1]{% + \expandafter\number\csname ESKD@hash@c@#1\endcsname} + +\newcommand{\ESKD@hash@pos}[1]{% + \expandafter\number\csname ESKD@hash@p@#1\endcsname} + +m4_dnl vim:ft=tex:sw=2:ai |