summaryrefslogtreecommitdiff
path: root/tex/context/base/core-ver.tex
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/core-ver.tex')
-rw-r--r--tex/context/base/core-ver.tex289
1 files changed, 221 insertions, 68 deletions
diff --git a/tex/context/base/core-ver.tex b/tex/context/base/core-ver.tex
index e85f23c7a..31a32f408 100644
--- a/tex/context/base/core-ver.tex
+++ b/tex/context/base/core-ver.tex
@@ -1,6 +1,6 @@
%D \module
%D [ file=core-ver,
-%D version=1996.06.01,
+%D version=2000.05.09,
%D title=\CONTEXT\ Core Macros,
%D subtitle=Verbatim,
%D author=Hans Hagen,
@@ -33,6 +33,16 @@
1: soubor -- neexistuje
\stopmessages
+\startmessages italian library: verbatims
+ title: verbatim
+ 1: il file -- non esiste
+\stopmessages
+
+\startmessages norwegian library: verbatims
+ title: verbatim
+ 1: fil -- eksisterer ikke
+\stopmessages
+
\unprotect
% \type{ <crlf> char} geeft bagger
@@ -46,41 +56,104 @@
\def\prettyidentifier {TEX}
\def\prettypalet {}
+% \def\setupprettiesintype#1%
+% {\edef\prettyidentifier{#1}%
+% \doifinstringelse{\prettyidentifier}{tex,TEX}
+% {\def\prettyidentifier{TEX}}
+% {\doifinstringelse{\prettyidentifier}{perl,pl,pm,PERL,PL,PM}
+% {\def\prettyidentifier{PL}}
+% {\doifinstringelse{\prettyidentifier}{metapost,mp,metafont,mf,METAPOST,MP,METAFONT,MF}
+% {\def\prettyidentifier{MP}}
+% {\doifinstringelse{\prettyidentifier}{javascript,js,java,jv,JAVASCRIPT,JS,JAVA,JV}
+% {\def\prettyidentifier{JV}}
+% {\doifinstringelse{\prettyidentifier}{sql,SQL}
+% {\def\prettyidentifier{SQL}}
+% {\doifinstringelse{\prettyidentifier}{pascal,pas,PAS,modula,mod,MOD,delphi,DELPHI}
+% {\def\prettyidentifier{PAS}}
+% {\doifinstringelse{\prettyidentifier}{eiffel,e,E,EIFFEL}
+% {\def\prettyidentifier{EIF}}
+% {\doifinstringelse{\prettyidentifier}{xml,XML}
+% {\def\prettyidentifier{XML}}
+% {\def\prettyidentifier{TEX}}}}}}}}}%
+% \doifundefined{setuppretty\prettyidentifier type}%
+% {\bgroup
+% \setbox0=\hbox % get rid of spaces when in-line \newpretty loading
+% {\restorecatcodes % also needed when loading during \newpretty
+% \startreadingfile % restore < and > if needed
+% \lowercasestring verb-\prettyidentifier.tex\to\filename
+% \readsysfile{\filename}{}{}
+% \stopreadingfile}%
+% \egroup}%
+% \doifdefinedelse{setuppretty\prettyidentifier type}%
+% {\def\setupprettytype{\getvalue{setuppretty\prettyidentifier type}}}
+% {\let\setupprettytype=\relax}}
+
+\def\installprettytype%
+ {\dodoubleargument\doinstallprettytype}
+
+\def\doinstallprettytype[#1][#2]% map #1 onto #2
+ {\uppercasestring#1\to\asciiA
+ \uppercasestring#2\to\asciiB
+ \setevalue{\??ty\??ty\asciiA}{\asciiB}}
+
\def\setupprettiesintype#1%
- {\edef\prettyidentifier{#1}%
- \doifinstringelse{\prettyidentifier}{tex,TEX}
- {\def\prettyidentifier{TEX}}
- {\doifinstringelse{\prettyidentifier}{perl,pl,pm,PERL,PL,PM}
- {\def\prettyidentifier{PL}}
- {\doifinstringelse{\prettyidentifier}{metapost,mp,metafont,mf,METAPOST,MP,METAFONT,MF}
- {\def\prettyidentifier{MP}}
- {\doifinstringelse{\prettyidentifier}{javascript,js,java,jv,JAVASCRIPT,JS,JAVA,JV}
- {\def\prettyidentifier{JV}}
- {\doifinstringelse{\prettyidentifier}{sql,SQL}
- {\def\prettyidentifier{SQL}}
- {\def\prettyidentifier{TEX}}}}}}%
+ {\uppercasestring#1\to\ascii
+ \edef\prettyidentifier%
+ {\ifundefined{\??ty\??ty\ascii}TEX%
+ \else\getvalue{\??ty\??ty\ascii}\fi}%
\doifundefined{setuppretty\prettyidentifier type}%
{\bgroup
\setbox0=\hbox % get rid of spaces when in-line \newpretty loading
{\restorecatcodes % also needed when loading during \newpretty
\startreadingfile % restore < and > if needed
\lowercasestring verb-\prettyidentifier.tex\to\filename
- \readsysfile{\filename}{}{}
+ \readsysfile{\filename}{}{}%
\stopreadingfile}%
\egroup}%
\doifdefinedelse{setuppretty\prettyidentifier type}%
{\def\setupprettytype{\getvalue{setuppretty\prettyidentifier type}}}
{\let\setupprettytype=\relax}}
+\installprettytype [TEX] [TEX]
+
+\installprettytype [PERL] [PL]
+\installprettytype [PL] [PL]
+\installprettytype [PM] [PL]
+
+\installprettytype [METAPOST] [MP]
+\installprettytype [METAFONT] [MP]
+\installprettytype [MP] [MP]
+\installprettytype [MF] [MP]
+
+\installprettytype [JAVASCRIPT] [JV]
+\installprettytype [JAVA] [JV]
+\installprettytype [JS] [JV]
+\installprettytype [JV] [JV]
+
+\installprettytype [SQL] [SQL]
+
+\installprettytype [PASCAL] [PAS]
+\installprettytype [PAS] [PAS]
+\installprettytype [MODULA] [PAS]
+\installprettytype [MOD] [PAS]
+
+\installprettytype [EIFFEL] [EIF]
+\installprettytype [EIF] [EIF]
+\installprettytype [E] [EIF]
+
+\installprettytype [XML] [XML]
+
\installnewpretty M {\setupprettiesintype {MP}\setupprettytype}
\installnewpretty P {\setupprettiesintype {PL}\setupprettytype}
\installnewpretty T {\setupprettiesintype{TEX}\setupprettytype}
\installnewpretty J {\setupprettiesintype {JV}\setupprettytype}
\installnewpretty S {\setupprettiesintype{SQL}\setupprettytype}
+\installnewpretty W {\setupprettiesintype{PAS}\setupprettytype} % Wirth
+\installnewpretty E {\setupprettiesintype{EIF}\setupprettytype}
+\installnewpretty X {\setupprettiesintype{XML}\setupprettytype}
\def\setupcommonverbatim#1%
- {\def\verbatimfont{\tttf}%
- \def\prettyidentifier{TEX}%
+ {\def\prettyidentifier{TEX}%
%
\doifelsevalue{#1\c!tekst}{\v!ja}
{\naturaltextexttrue}{\naturaltextextfalse}%
@@ -106,8 +179,8 @@
\s!unknown=>\setupprettiesintype{\getvalue{#1\c!optie}}%
\let\obeycharacters=\setupprettytype
\let\obeytabs=\ignoretabs]%
- \edef\prettypalet%
- {\prettyidentifier\getvalue{#1\c!palet}}}
+ \def\verbatimfont{\getvalue{#1\c!letter}}%
+ \setupverbatimcolor{#1}}
%D The verbatim commands have a rather long and turbulent
%D history. Most users of \CONTEXT\ probably will never use
@@ -153,7 +226,7 @@
\unexpanded\def\type%
{\bgroup
- \getvalue{\getvalue{\??ty\c!kleur}}% hm, assumes \somecolor
+ \verbatimcolor
\catcode`\<=\@@other
\catcode`\>=\@@other
\futurelet\next\dotype}
@@ -321,10 +394,36 @@
\fi
\fi}
+%\def\setupcommandsintype#1%
+% {\setupgroupedtype
+% \edef\!!stringa{\getvalue{#1\c!escape}}%
+% \@EA\catcode\@EA`\!!stringa=\@@escape}
+
\def\setupcommandsintype#1%
{\setupgroupedtype
- \edef\!!stringa{\getvalue{#1\c!escape}}%
- \@EA\catcode\@EA`\!!stringa=\@@escape}
+ \edef\\{\getvalue{#1\c!escape}}%
+ \letvalue{\\}=\\% for instance \/=/
+ \@EA\catcode\@EA`\\=\@@escape
+ \def\BTEX##1\ETEX##2% ##2 gobbles active space
+ {\naturaltextext##1\unskip\relax}}
+
+%D The following lines show what happens when we set
+%D \type {option=commands}.
+%D
+%D \startbuffer
+%D \starttyping
+%D test//test test/BTEX \footnote{test test test}/ETEX test
+%D test//test test/BTEX \footnote{test test test}/ETEX test
+%D test test test/BTEX \bf(nota bene)/ETEX test
+%D test test test /BTEX \bf(nota bene)/ETEX test
+%D \stoptyping
+%D \stopbuffer
+%D
+%D % \bgroup\setuptyping[option=commands]\getbuffer\egroup
+%D
+%D this was keyed in as:
+%D
+%D \typebuffer
\def\setupslantedtype%
{\setupgroupedtype
@@ -357,7 +456,7 @@
\def\initializetype%
{\let\obeylines=\ignorelines
- \setupcommonverbatim{\??ty}%
+ \setupcommonverbatim\??ty
\setupinlineverbatim}
%D \macros
@@ -373,6 +472,7 @@
\setuptype
[\c!spatie=\v!uit,
\c!kleur=,
+ \c!letter=\tttf,
\c!pagina=\v!nee,
\c!tab=\v!nee,
\c!optie=\v!normaal]
@@ -514,7 +614,11 @@
\v!geen=>\scratchskip=\!!zeropoint,
\s!unknown=>\scratchskip=\commalistelement]%
\ifgridsnapping
- \edef\verbatimbaselineskip{\the\baselineskip}%
+ \ifdim\scratchskip=.5\baselineskip\relax
+ \edef\verbatimbaselineskip{\the\scratchskip}% new
+ \else
+ \edef\verbatimbaselineskip{\the\baselineskip}%
+ \fi
\else
\edef\verbatimbaselineskip{\the\scratchskip}%
\fi
@@ -527,12 +631,12 @@
\def\dostarttyping#1%
{\getvalue{\??tp#1\c!voor}%
\startopelkaar % includes \bgroup
- \startcolor[\getvalue{\??tp#1\c!kleur}]%
\initializetyping{#1}%
+ \startverbatimcolor
\expandafter\processdisplayverbatim\expandafter{\s!stop#1}}
\def\dostoptyping#1%
- {\stopcolor
+ {\stopverbatimcolor
\stopopelkaar % includes \egroup
\getvalue{\??tp#1\c!na}%
\doifvalue{\??tp#1\c!springvolgendein}{\v!nee}{\noindentation}}
@@ -584,9 +688,10 @@
\c!optie=\v!geen,
\c!palet=colorpretty,
\c!tekst=\v!nee,
+ \c!letter=\tttf,
\c!icommando=\ttsl,
\c!vcommando=,
- \c!ccommando=\tf,
+ \c!ccommando=\tttf,
\c!springvolgendein=\v!ja,
\c!marge=\!!zeropoint,
\c!evenmarge=\!!zeropoint,
@@ -614,7 +719,7 @@
\def\presettyping[#1][#2]%
{\copyparameters
[\??tp#1][\??tp]
- [\c!voor,\c!na,\c!spatie,\c!pagina,\c!tab,\c!kleur,
+ [\c!voor,\c!na,\c!spatie,\c!pagina,\c!tab,\c!kleur,\c!letter,
\c!tekst,\c!icommando,\c!vcommando,\c!ccommando,
\c!optie,\c!palet,\c!marge,\c!evenmarge,\c!onevenmarge,
\c!springvolgendein,\c!blanko,\c!escape]%
@@ -632,13 +737,20 @@
\definetyping[\v!typen]
-\definetyping[MP] [\c!optie=MP]
-\definetyping[PL] [\c!optie=PL]
-\definetyping[PM] [\c!optie=PL]
-\definetyping[JS] [\c!optie=JS]
-\definetyping[JV] [\c!optie=JV]
-\definetyping[SQL][\c!optie=SQL]
-\definetyping[TEX][\c!optie=TEX]
+\definetyping[MP] [\c!optie=MP]
+\definetyping[PL] [\c!optie=PL]
+\definetyping[PM] [\c!optie=PL]
+\definetyping[JS] [\c!optie=JS]
+\definetyping[JV] [\c!optie=JV]
+\definetyping[SQL] [\c!optie=SQL]
+\definetyping[TEX] [\c!optie=TEX]
+\definetyping[PAS] [\c!optie=PAS]
+\definetyping[PASCAL][\c!optie=PAS]
+\definetyping[MOD] [\c!optie=PAS]
+\definetyping[MODULA][\c!optie=PAS]
+\definetyping[DELPHI][\c!optie=PAS]
+\definetyping[EIFFEL][\c!optie=EIF]
+\definetyping[XML] [\c!optie=XML]
%D We use the \CONTEXT\ color system for switching to and from
%D color mode. We can always redefine these colors afterwards.
@@ -669,29 +781,65 @@
% ---> naar verb-* ? of predefine als undefined?
-\definepalet [TEXcolorpretty] [colorpretty]
-\definepalet [TEXgraypretty] [graypretty]
-\definepalet [PLcolorpretty] [colorpretty]
-\definepalet [PLgraypretty] [graypretty]
-\definepalet [PMcolorpretty] [colorpretty]
-\definepalet [PMgraypretty] [graypretty]
-\definepalet [MPcolorpretty] [colorpretty]
-\definepalet [MPgraypretty] [graypretty]
-\definepalet [JVcolorpretty] [colorpretty]
-\definepalet [JVgraypretty] [graypretty]
-\definepalet [JScolorpretty] [colorpretty]
-\definepalet [JSgraypretty] [graypretty]
-\definepalet [SQLcolorpretty] [colorpretty]
-\definepalet [SQLgraypretty] [graypretty]
+\definepalet [TEXcolorpretty] [colorpretty]
+\definepalet [TEXgraypretty] [graypretty]
+\definepalet [PLcolorpretty] [colorpretty]
+\definepalet [PLgraypretty] [graypretty]
+\definepalet [PMcolorpretty] [colorpretty]
+\definepalet [PMgraypretty] [graypretty]
+\definepalet [MPcolorpretty] [colorpretty]
+\definepalet [MPgraypretty] [graypretty]
+\definepalet [JVcolorpretty] [colorpretty]
+\definepalet [JVgraypretty] [graypretty]
+\definepalet [JScolorpretty] [colorpretty]
+\definepalet [JSgraypretty] [graypretty]
+\definepalet [SQLcolorpretty] [colorpretty]
+\definepalet [SQLgraypretty] [graypretty]
+\definepalet [PAScolorpretty] [colorpretty]
+\definepalet [PASgraypretty] [graypretty]
+\definepalet [EIFcolorpretty] [colorpretty]
+\definepalet [EIFgraypretty] [graypretty]
+\definepalet [XMLcolorpretty] [colorpretty]
+\definepalet [XMLgraypretty] [graypretty]
+
+% Some real in-depth knowlegde of palets: `palet:color' it is!
%D We can use some core color commands. These are faster than
%D the standard color switching ones and work ok on a line by
%D line basis.
-
-% Some real in-depth knowlegde of palets: `palet:color' it is!
-
-\def\beginofpretty[#1]{\startcolormode{\prettypalet:#1}}
-\def\endofpretty {\stopcolormode}
+%D
+%D \starttypen
+%D \def\setupverbatimcolor#1%
+%D {\edef\prettypalet{\prettyidentifier\getvalue{#1\c!palet}}%
+%D \def\beginofpretty[##1]{\startcolormode{\prettypalet:##1}}%
+%D \def\endofpretty {\stopcolormode}}
+%D \stoptypen
+%D
+%D Since we support a global color too, the folowing
+%D definition is better:
+
+\def\setupverbatimcolor#1% fast and local versus slow and global
+ {\doifelsevaluenothing{#1\c!kleur}
+ {\def\beginofpretty[##1]{\startcolormode{\prettypalet:##1}}%
+ \let\endofpretty \stopcolormode
+ \let\startverbatimcolor \relax
+ \let\stopverbatimcolor \relax
+ \let\verbatimcolor \relax}
+ {\def\beginofpretty[##1]{\startcolor[\prettypalet:##1]}%
+ \let\endofpretty \stopcolor
+ \def\startverbatimcolor{\startcolor[\getvalue{#1\c!kleur}]}%
+ \let\stopverbatimcolor \stopcolor
+ \def\verbatimcolor {\getvalue{\getvalue{#1\c!kleur}}}}%
+ \doifelsevaluenothing{#1\c!palet}
+ {\let\prettypalet\empty
+ \let\endofpretty\relax
+ \def\beginofpretty[##1]{}}
+ {\edef\prettypalet{\prettyidentifier\getvalue{#1\c!palet}}}}
+
+\let\prettypalet \empty
+\let\startverbatimcolor\relax
+\let\stopverbatimcolor \relax
+\let\verbatimcolor \relax
%D In the verbatim module, there are some examples given of
%D the more obscure features of the verbatim environments.
@@ -802,23 +950,28 @@
\presettyping[\v!file][]
-\def\typefile#1%
- {\getvalue{\??tp\v!file\c!voor}%
- \doiflocfileelse{\pathplusfile\f!currentpath{#1}}
+\definecomplexorsimple\typefile
+
+\def\simpletypefile%
+ {\complextypefile[\v!file]}
+
+\def\complextypefile[#1]#2%
+ {\getvalue{\??tp#1\c!voor}%
+ \doiflocfileelse{\pathplusfile\f!currentpath{#2}}
{\startopelkaar % includes \bgroup
- \startcolor[\getvalue{\??tp\v!file\c!kleur}]%
- \doifinset{\getvalue{\??tp\v!file\c!optie}}{\v!commandos,\v!schuin,\v!normaal}
- {\setuptyping[\v!file][\c!optie=\v!geen]}%
- \doifvalue{\??tp\v!file\c!optie}{\v!kleur}
- {\expandafter\aftersplitstring#1\at.\to\prettyidentifier
- \letvalue{\??tp\v!file\c!optie}=\prettyidentifier}%
- \initializetyping\v!file
- \processfileverbatim{\pathplusfile\f!currentpath{#1}}%
- \stopcolor
+ \doifinset{\getvalue{\??tp#1\c!optie}}{\v!commandos,\v!schuin,\v!normaal}
+ {\setuptyping[#1][\c!optie=\v!geen]}%
+ \doifvalue{\??tp#1\c!optie}{\v!kleur}
+ {\expandafter\aftersplitstring#2\at.\to\prettyidentifier
+ \letvalue{\??tp#1\c!optie}=\prettyidentifier}%
+ \initializetyping{#1}%
+ \startverbatimcolor
+ \processfileverbatim{\pathplusfile\f!currentpath{#2}}%
+ \stopverbatimcolor
\stopopelkaar} % includes \egroup
- {{\tttf[\makemessage{\m!verbatims}{1}{#1}]}%
- \showmessage{\m!verbatims}{1}{#1}}%
- \getvalue{\??tp\v!file\c!na}}
+ {{\tttf[\makemessage{\m!verbatims}{1}{#2}]}%
+ \showmessage{\m!verbatims}{1}{#2}}%
+ \getvalue{\??tp#1\c!na}}
%D \macros
%D {filename}