summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/context/base/core-ctx.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/context/base/core-ctx.tex')
-rw-r--r--Master/texmf-dist/tex/context/base/core-ctx.tex22
1 files changed, 17 insertions, 5 deletions
diff --git a/Master/texmf-dist/tex/context/base/core-ctx.tex b/Master/texmf-dist/tex/context/base/core-ctx.tex
index 9cd3de2b9c2..22f2ded4ad6 100644
--- a/Master/texmf-dist/tex/context/base/core-ctx.tex
+++ b/Master/texmf-dist/tex/context/base/core-ctx.tex
@@ -17,6 +17,8 @@
%D overloades a few file reading macros and permits runtime
%D conversion and job control.
+% todo: rewrite in lua
+
\unprotect
\chardef\preprocessmethod 2 % 0=no check 1=present_check 2=log_check
@@ -77,19 +79,27 @@
\iftracefiles\writestatus\m!systems{preprocessing - no suffix}\fi
\egroup
\else\ifcase\preprocesslocal
+ % also ./ strippen
\iftracefiles\writestatus\m!systems{preprocessing - check presence of \readfilename\preprocesssuffix}\fi
\doifdefinedelse{fp..\readfilename}
{\egroup
\doiffileexistselse{\readfilename\preprocesssuffix}
{\chardef\preprocessstate\plusone}
{\chardef\preprocessstate\plustwo}}%
- {\doifdefinedelse{fp..\splitoffbase}%
+ {\doifdefinedelse{fp.../\readfilename}
{\egroup
+ \edef\readfilename{./\readfilename}%
\doiffileexistselse{\readfilename\preprocesssuffix}
{\chardef\preprocessstate\plusone}
{\chardef\preprocessstate\plustwo}}%
- {\egroup}}%
+ {\doifdefinedelse{fp..\splitoffbase}%
+ {\egroup
+ \doiffileexistselse{\readfilename\preprocesssuffix}
+ {\chardef\preprocessstate\plusone}
+ {\chardef\preprocessstate\plustwo}}%
+ {\egroup}}}%
\else
+ % maybe just filecheck, why ctl
\iftracefiles\writestatus\m!systems{preprocessing - check local presence of \readfilename\preprocesssuffix}\fi
\doifdefinedelse{fp..\readfilename}
{\egroup
@@ -157,7 +167,7 @@
\iftracefiles\writestatus\m!systems{#1 located}\fi
\def\next{#2\dodoreadfile}}%
{\iftracefiles\writestatus\m!systems{cannot locate #1}\fi
- \decrement\readlevel\relax
+ \advance\readlevel\minusone
\ifnum\readlevel>\zerocount
\edef\readfilename{\pathplusfile{\f!parentpath}{\readfilename}}%
\def\next{\redoreadfile\readfilename{#2}{#3}}%
@@ -184,13 +194,15 @@
\the\everybeforereadfile
\ifcase\preprocessstate
% no checking or not found when using method 1
- \normalinput\readfilename
+ \def\dodoreadfileindeed{\inputgivenfile\readfilename}%
\or
% found when using method 1 or 2
- \normalinput\readfilename\preprocesssuffix
+ \def\dodoreadfileindeed{\inputgivenfile{\readfilename\preprocesssuffix}}%
\or
% not found when using method 2
+ \let\dodoreadfileindeed\relax
\fi
+ \dodoreadfileindeed
\relax
\the\everyafterreadfile}