summaryrefslogtreecommitdiff
path: root/tex/context/base/tabl-pln.mkiv
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/tabl-pln.mkiv')
-rw-r--r--tex/context/base/tabl-pln.mkiv155
1 files changed, 57 insertions, 98 deletions
diff --git a/tex/context/base/tabl-pln.mkiv b/tex/context/base/tabl-pln.mkiv
index 3638006c7..9e65f7e40 100644
--- a/tex/context/base/tabl-pln.mkiv
+++ b/tex/context/base/tabl-pln.mkiv
@@ -9,124 +9,83 @@
\writestatus{loading}{ConTeXt Table Macros / Plain Tabular}
-%D This code might become a module.
-
\unprotect
-\newconditional \c_tabl_plain_cr
-\newconditional \c_tabl_plain_use_tab
-\newbox \b_tabl_plain_tabs
-\newbox \b_tabl_plain_tabs_yet
-\newbox \b_tabl_plain_tabs_done
-\newdimen \d_tabl_plain_tab
-
-\let\m_tabl_plain_next\relax
+\newif \if@@plnusetab
+\newif \if@@plncr
+\newbox \@@plntabs
+\newbox \@@plntabsyet
+\newbox \@@plntabsdone
+\newdimen \@@plntabdimen
\def\cleartabs % visible
- {\global\setbox\b_tabl_plain_tabs_yet\emptyhbox
- \setbox\b_tabl_plain_tabs\emptyhbox}
+ {\global\setbox\@@plntabsyet\emptyhbox
+ \setbox\@@plntabs\emptyhbox}
\def\settabs % visible
- {\setbox\b_tabl_plain_tabs\emptyhbox
- \futurelet\m_tabl_plain_next\tabl_plain_set_tabs}
+ {\setbox\@@plntabs\emptyhbox
+ \futurelet\next\@@plnsettabs}
\def\tabalign % visible
- {\settrue\c_tabl_plain_use_tab
- \tabl_plain_make_tab_box}
+ {\@@plnusetabtrue\@@plnmaketabbox}
-\ifdefined\+ \else
- \let\+\tabalign % no outer here (can be overloaded)
-\fi
+\let\+\tabalign % no outer here (can be overloaded)
-\def\tabl_plain_set_tabs
- {\ifx\m_tabl_plain_next\+%
- \let\tabl_plain_nxt\tabl_plain_align
- \else\ifx\m_tabl_plain_next\tabalign % added hh
- \let\tabl_plain_nxt\tabl_plain_align
+\def\@@plnsettabs
+ {\ifx\next\+%
+ \def\nxt{\afterassignment\@@plnsettab\let\nxt}%
\else
- \let\tabl_plain_nxt\tabl_plain_set_cols
- \fi\fi
- \let\m_tabl_plain_next\relax
- \tabl_plain_nxt}
-
-\def\tabl_plain_align
- {\afterassignment\tabl_plain_set_tab
- \let\tabl_plain_nxt}
+ \let\nxt\@@plnsetcols
+ \fi
+ \let\next\relax
+ \nxt}
-\def\tabl_plain_set_tab
- {\let\tabl_plain_nxt\relax
- \setfalse\c_tabl_plain_use_tab
- \tabl_plain_make_tab_box}
+\def\@@plnsettab
+ {\let\nxt\relax
+ \@@plnusetabfalse\@@plnmaketabbox}
-\def\tabl_plain_set_cols#1\columns
- {\scratchcounter#1\relax
- \d_tabl_plain_tab\hsize
+\def\@@plnsetcols#1\columns
+ {\scratchcounter#1%
+ \@@plntabdimen\hsize
\loop
- \ifnum\scratchcounter>\zerocount
- \tabl_plain_other
+ \ifnum\scratchcounter>\zerocount \@nother
\repeat}
-\def\tabl_plain_other
- {\scratchdimen\d_tabl_plain_tab
+\def\@nother
+ {\scratchdimen\@@plntabdimen
\divide\scratchdimen\scratchcounter
- \setbox\b_tabl_plain_tabs\hbox
- {\hbox to\scratchdimen{}%
- \unhbox\b_tabl_plain_tabs}%
- \advance\d_tabl_plain_tab-\scratchdimen
+ \setbox\@@plntabs\hbox{\hbox to\scratchdimen{}\unhbox\@@plntabs}%
+ \advance\@@plntabdimen-\scratchdimen
\advance\scratchcounter\minusone}
-\def\tabl_plain_make_tab_box
+\def\@@plnmaketabbox
{\begingroup
- \let\+\tabalign % added hh
- \global\setbox\b_tabl_plain_tabs_yet\copy\b_tabl_plain_tabs
- \global\setbox\b_tabl_plain_tabs_done\emptyhbox
- \let\cr\tabl_plain_cr
- \setbox\scratchbox\vbox\bgroup
- \setfalse\c_tabl_plain_cr
- \ialign\bgroup
- \aligntab
- \tabl_plain_begin_tab_box
- \alignmark\alignmark
- \tabl_plain_end_tab_box
- \crcr}
-
-\def\tabl_plain_cr
- {\settrue\c_tabl_plain_cr
- \crcr
- \egroup
- \egroup
- \ifconditional\c_tabl_plain_use_tab
- \unvbox\scratchbox
- \lastbox % okay?
- \fi
- \endgroup
- \setbox\b_tabl_plain_tabs\hbox
- {\unhbox\b_tabl_plain_tabs_yet
- \unhbox\b_tabl_plain_tabs_done}}
-
-\def\tabl_plain_begin_tab_box
- {\setbox\scratchbox\hbox\bgroup}
-
-\def\tabl_plain_end_tab_box
- {\ifconditional\c_tabl_plain_cr
- \egroup % now \box\scratchbox holds the column
+ \global\setbox\@@plntabsyet\copy\@@plntabs
+ \global\setbox\@@plntabsdone\emptyhbox
+ \def\cr
+ {\@@plncrtrue\crcr\egroup\egroup
+ \if@@plnusetab\unvbox\zerocount\lastbox\fi\endgroup
+ \setbox\@@plntabs\hbox{\unhbox\@@plntabsyet\unhbox\@@plntabsdone}}%
+ \setbox\zerocount\vbox\bgroup\@@plncrfalse
+ \ialign\bgroup&\@@plnbegintabbox##\@@plnendtabbox\crcr}
+
+\def\@@plnbegintabbox
+ {\setbox\zerocount\hbox\bgroup}
+
+\def\@@plnendtabbox
+ {\if@@plncr
+ \egroup % now \box\zerocount holds the column
\else
- \hss
- \egroup
- \global\setbox\b_tabl_plain_tabs_yet\hbox
- {\unhbox\b_tabl_plain_tabs_yet
- \global\setbox\globalscratchbox\lastbox}% now \box\globalscratchbox holds its size
- \ifvoid\globalscratchbox
- \global\setbox\globalscratchbox\hbox to \wd\scratchbox
- {}%
- \else
- \setbox\scratchbox\hbox to \wd\globalscratchbox
- {\unhbox\scratchbox}%
- \fi
- \global\setbox\b_tabl_plain_tabs_done\hbox
- {\box\globalscratchbox
- \unhbox\b_tabl_plain_tabs_done}%
- \fi
- \box\scratchbox}
+ \hss\egroup
+ \global\setbox\@@plntabsyet\hbox
+ {\unhbox\@@plntabsyet\global\setbox\plusone\lastbox}% now \box\plusone holds its size
+ \ifvoid\plusone
+ \global\setbox\plusone\hbox to\wd\zerocount{}%
+ \else
+ \setbox\zerocount\hbox to\wd\plusone{\unhbox\zerocount}%
+ \fi
+ \global\setbox\@@plntabsdone\hbox{\box\plusone\unhbox\@@plntabsdone}%
+ \fi
+ \box\zerocount}
\protect \endinput