summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/eolang/eolang.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2023-12-28 23:03:57 +0000
committerKarl Berry <karl@freefriends.org>2023-12-28 23:03:57 +0000
commit514673f256938197511d1c600074fadd288d8cfe (patch)
tree51a10fed599c648c3c9655eea6e13ab0ca124276 /Master/texmf-dist/tex/latex/eolang/eolang.sty
parent178327a035c24607bf4f6ccdf09de05680ec9fbe (diff)
eolang (28dec23)
git-svn-id: svn://tug.org/texlive/trunk@69229 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/eolang/eolang.sty')
-rw-r--r--Master/texmf-dist/tex/latex/eolang/eolang.sty98
1 files changed, 66 insertions, 32 deletions
diff --git a/Master/texmf-dist/tex/latex/eolang/eolang.sty b/Master/texmf-dist/tex/latex/eolang/eolang.sty
index a8637e129c9..33b104035f6 100644
--- a/Master/texmf-dist/tex/latex/eolang/eolang.sty
+++ b/Master/texmf-dist/tex/latex/eolang/eolang.sty
@@ -31,7 +31,7 @@
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{eolang}
-[2023-08-10 0.15.0 Formulas and Graphs for EO Programming Language]
+[2023-12-28 0.17.0 Formulas and Graphs for EO Programming Language]
@@ -99,7 +99,12 @@
}
\ProcessPgfPackageOptions{/eolang}
-\iexec[null]{mkdir -p "\eolang@tmpdir/\jobname"}%
+\ifnum\ShellEscapeStatus=1%
+ \iexec[null]{mkdir -p "\eolang@tmpdir/\jobname"}%
+\else%
+ \message{eolang: Temporary directory "\eolang@tmpdir/\jobname"
+ is not created, because --shell-escape is not set^^J}%
+\fi%
\makeatletter\newcounter{eolang@lineno}\makeatother
@@ -113,7 +118,7 @@
$macro = $ARGV[0];
open(my $fh, '<', $ARGV[1]);
my $tex; { local $/; $tex = <$fh>; }
-print "% This file is auto-generated by 0.15.0\n";
+print "% This file is auto-generated by 0.17.0\n";
print '% There are ', length($tex),
' chars in the input: ', $ARGV[1], "\n";
print '% ---', "\n";
@@ -287,18 +292,40 @@ print '\endinput';
\newcommand\phiSaveTo[1]{\def\eolang@phiSaveTo{#1}}
\makeatother
+\makeatletter
+\newcommand\eolang@ifabsent[2]{%
+ \IfFileExists
+ {#1}
+ {%
+ \message{eolang: File "#1" already exists ^^J}%
+ \input{#1}}
+ {%
+ \ifnum\ShellEscapeStatus=1\else%
+ \message{eolang: The --shell-escape command line
+ option is not provided, most probably compilation
+ will fail now:^^J}%
+ \fi%
+ #2%
+ }%
+}
+\makeatother
+
\makeatletter\newcommand\eolang@process[1]{
\def\hash{\eolang@mdfive
- {\eolang@tmpdir/\jobname/phiquation.tex}}%
- \iexec[null]{cp "\eolang@tmpdir/\jobname/phiquation.tex"
- "\eolang@tmpdir/\jobname/\hash.tex"}%
- \message{Start parsing 'phi' at line no. \the\inputlineno^^J}
- \iexec[trace,stdout=\eolang@tmpdir/\jobname/\hash-post.tex]{
- perl "\eolang@tmpdir/eolang-phi.pl"
- '#1'
- "\eolang@tmpdir/\jobname/\hash.tex"
- \ifdefined\eolang@nocomments | perl -pe 's/\%.*(\\n|$)//g'\fi
- \ifdefined\eolang@phiSaveTo > \eolang@phiSaveTo\fi}%
+ {\eolang@tmpdir/\jobname/phiquation.tex}-\the\inputlineno}%
+ \eolang@ifabsent
+ {\eolang@tmpdir/\jobname/\hash-post.tex}
+ {%
+ \iexec[null]{cp "\eolang@tmpdir/\jobname/phiquation.tex"
+ "\eolang@tmpdir/\jobname/\hash.tex"}%
+ \message{Start parsing 'phi' at line no. \the\inputlineno^^J}
+ \iexec[trace,stdout=\eolang@tmpdir/\jobname/\hash-post.tex]{
+ perl "\eolang@tmpdir/eolang-phi.pl"
+ '#1'
+ "\eolang@tmpdir/\jobname/\hash.tex"
+ \ifdefined\eolang@nocomments | perl -pe 's/\%.*(\\n|$)//g'\fi
+ \ifdefined\eolang@phiSaveTo > \eolang@phiSaveTo\fi}%
+ }%
\setcounter{FancyVerbLine}{\value{eolang@lineno}}%
\def\eolang@phiSaveTo{\relax}%
}
@@ -319,17 +346,20 @@ print '\endinput';
\RequirePackage{xstring}
\makeatletter\newcommand\phiq[1]{%
\StrSubstitute{\detokenize{#1}}{'}{'"'"'}[\clean]%
- \iexec[log,trace,quiet,stdout=\eolang@tmpdir/\jobname/phiq.tex]{
- /bin/echo '\clean'}%
- \def\hash{\eolang@mdfive
- {\eolang@tmpdir/\jobname/phiq.tex}}%
- \iexec[null]{cp "\eolang@tmpdir/\jobname/phiq.tex"
- "\eolang@tmpdir/\jobname/\hash.tex"}%
+ \def\hash{\pdf@mdfivesum{\clean}-\the\inputlineno}%
\ifdefined\eolang@nodollar\else\catcode`\$=3 \fi%
- \iexec[trace,stdout=\eolang@tmpdir/\jobname/\hash-post.tex]{
- perl \eolang@tmpdir/eolang-phi.pl 'phiq'
- "\eolang@tmpdir/\jobname/\hash.tex"
- \ifdefined\eolang@nocomments | perl -pe 's/\%.*(\\n|$)//g'\fi}%
+ \eolang@ifabsent
+ {\eolang@tmpdir/\jobname/\hash-phiq-post.tex}
+ {%
+ \iexec[log,trace,quiet,stdout=\eolang@tmpdir/\jobname/phiq.tex]{
+ /bin/echo '\clean'}%
+ \iexec[quiet,null]{cp "\eolang@tmpdir/\jobname/phiq.tex"
+ "\eolang@tmpdir/\jobname/\hash-phiq.tex"}%
+ \iexec[trace,stdout=\eolang@tmpdir/\jobname/\hash-phiq-post.tex]{
+ perl \eolang@tmpdir/eolang-phi.pl 'phiq'
+ "\eolang@tmpdir/\jobname/\hash-phiq.tex"
+ \ifdefined\eolang@nocomments | perl -pe 's/\%.*(\\n|$)//g' \fi}%
+ }%
\ifdefined\eolang@nodollar\else\catcode`\$\active\fi%
}\makeatother
@@ -722,16 +752,20 @@ print '\endinput';
{\eolang@tmpdir/\jobname/sodg.tex}}
{\end{VerbatimOut}%
\def\hash{\eolang@mdfive
- {\eolang@tmpdir/\jobname/sodg.tex}}%
- \iexec[null]{cp "\eolang@tmpdir/\jobname/sodg.tex"
- "\eolang@tmpdir/\jobname/\hash.tex"}%
+ {\eolang@tmpdir/\jobname/sodg.tex}-\the\inputlineno}%
\catcode`\$=3 %
- \message{Start parsing `sodg' at line no. \the\inputlineno^^J}
- \iexec[trace,stdout=\eolang@tmpdir/\jobname/\hash-post.tex]{
- perl "\eolang@tmpdir/eolang-sodg.pl"
- "\eolang@tmpdir/\jobname/\hash.tex"
- \ifdefined\eolang@nocomments | perl -pe 's/\%.*(\\n|$)//g'\fi
- \ifdefined\eolang@sodgSaveTo > \eolang@sodgSaveTo\fi}%
+ \eolang@ifabsent
+ {\eolang@tmpdir/\jobname/\hash-sodg-post.tex}
+ {%
+ \iexec[null]{cp "\eolang@tmpdir/\jobname/sodg.tex"
+ "\eolang@tmpdir/\jobname/\hash.tex"}%
+ \message{eolang: Start parsing `sodg' at line no. \the\inputlineno^^J}
+ \iexec[trace,stdout=\eolang@tmpdir/\jobname/\hash-sodg-post.tex]{
+ perl "\eolang@tmpdir/eolang-sodg.pl"
+ "\eolang@tmpdir/\jobname/\hash.tex"
+ \ifdefined\eolang@nocomments | perl -pe 's/\%.*(\\n|$)//g'\fi
+ \ifdefined\eolang@sodgSaveTo > \eolang@sodgSaveTo\fi}%
+ }
\catcode`\$\active%
\setcounter{FancyVerbLine}{\value{eolang@lineno}}%
\def\eolang@sodgSaveTo{\relax}%