summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/lisp-on-tex/lisp-prim.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/lisp-on-tex/lisp-prim.sty')
-rw-r--r--Master/texmf-dist/tex/latex/lisp-on-tex/lisp-prim.sty32
1 files changed, 19 insertions, 13 deletions
diff --git a/Master/texmf-dist/tex/latex/lisp-on-tex/lisp-prim.sty b/Master/texmf-dist/tex/latex/lisp-on-tex/lisp-prim.sty
index 0bd19e52081..95432a86ef3 100644
--- a/Master/texmf-dist/tex/latex/lisp-on-tex/lisp-prim.sty
+++ b/Master/texmf-dist/tex/latex/lisp-on-tex/lisp-prim.sty
@@ -9,7 +9,7 @@
\addassoc\@globalenv\setB{\@tlabel@setb{}}
\addassoc\@globalenv\@let{\@tlabel@@let{}}
\addassoc\@globalenv\@mlet{\@tlabel@@mlet{}}
-
+\addassoc\@globalenv\macroexpand{\@tlabel@macroexpand{}}
\addassoc\@globalenv\car{\@tlabel@func{\@get@car}}
@@ -97,15 +97,14 @@
\addassoc\@globalenv\stdprint{\@tlabel@func{\@tex@stdprint}}
\def\@tex@stdprint#1#2#3{%
- \gdef#1{\@tlabel@nil{}}\@@tex@stdprint#2{#3}}
-\def\@@tex@stdprint#1#2{%
- \ifx#1\@tlabel@string
- \message{#2}%
- \else\ifx#1\@tlabel@int
- \message{#2}%
- \else
- \message{INNER TOKEN}%
- \fi\fi}
+ \gdef#1{\@tlabel@nil{}}%
+ \let\@save@write@buffer\@temp@write@buffer
+ \def\@temp@write@buffer{}%
+ \@tex@print@#2{#3}%
+ \toks0\expandafter{\@temp@write@buffer}%
+ \immediate\write16{\the\toks0}%
+ \let\@temp@write@buffer\@save@write@buffer}
+
% Type predicates
\def\@type@pred@add#1{\expandafter\@@type@pred@add\expandafter#1}
@@ -134,6 +133,13 @@
{\expandafter\@@select@@apply#2{#3}#1\@{#4}#5}}
% values
-\addassoc\@globalenv\values{\@tlabel@func{\@lisp@multivalues}}
-\def\@lisp@multivalues#1#2\relax{\gdef#1{#2}}
-
+%\addassoc\@globalenv\values{\@tlabel@func{\@lisp@multivalues}}
+%\def\@lisp@multivalues#1#2\relax{\gdef#1{#2}}
+
+% read
+\addassoc\@globalenv\read{\@tlabel@func{\@lisp@read@stdin}}
+\def\@lisp@read@stdin#1{%
+ \read-1 to#1%
+ \def\@lisp@read@stdin@callback##1##2{%
+ \gdef#1{##1{##2}}}%
+ \expandafter\@lispread\expandafter\@lisp@read@stdin@callback#1}