1
2
3
4
5
6
7
8
9
10
11
12
13
14\writestatus{loading}{ConTeXt Page Macros Tracing Info}
15
16
17
18\unprotect
19
20\installcorenamespace{layoutinfo}
21
22\newtoks\everyresetversion
23\newtoks\everysetupversion
24
25\mutable\lettonothing\currentversioninfo
26\mutable\lettonothing\currentversiontext
27
28\let\page_info_add_to_box\gobbleoneargument
29
30\permanent\tolerant\protected\def\setupversion[#1]
31 {\expand\everyresetversion
32 \ifhastok={#1}
33 \getdummyparameters[\c!alternative=,\c!text=,#1]
34 \edef\currentversioninfo{\dummyparameter\c!alternative}
35 \edef\currentversiontext{\dummyparameter\c!text}
36 \else
37 \edef\currentversioninfo{#1}
38 \lettonothing\currentversiontext
39 \fi
40 \ifcsname\??layoutinfo\currentversioninfo\endcsname
41 \let\page_info_add_to_box\page_info_add_to_box_indeed
42 \else
43 \lettonothing\currentversioninfo
44 \let\page_info_add_to_box\gobbleoneargument
45 \fi
46 \expand\everysetupversion}
47
48\aliased\let\version\setupversion
49
50\protected\def\page_info_place_info
51 {\begincsname\??layoutinfo\currentversioninfo\endcsname}
52
53\permanent\protected\def\installversioninfo#1#2
54 {\defcsname\??layoutinfo#1\endcsname{#2}}
55
56\permanent\protected\def\includeversioninfo#1
57 {\begincsname\??layoutinfo#1\endcsname}
58
59\installversioninfo\v!final
60 {\lettonothing\currentversioninfo
61 \let\page_info_add_to_box\gobbleoneargument}
62
63\installversioninfo\v!concept
64 {\vskip6\points
65 \hbox to \makeupwidth
66 {\infofont
67 \rlap{\v!concept:\space\currentdate}
68 \hss
69 \currentversiontext
70 \hss
71 \llap{\page_adapts_status_info}}}
72
73\installversioninfo\v!file
74 {\vskip6\points
75 \hbox to \makeupwidth
76 {\infofont
77 \getmessage\m!system{27}:\space\currentdate\quad
78 \donefalse
79 \ifcstok{\currentproject}{\currentproduct}
80 \ifcstok{\currentproduct}{\currentcomponent}
81 \donetrue
82 \fi
83 \fi
84 \ifdone
85 \donefalse
86 \else
87 \ifempty\currentproject \else \space\v!project :\space\currentproject \space \donetrue \fi
88 \ifempty\currentproduct \else \space\v!product :\space\currentproduct \space \donetrue \fi
89 \ifempty\currentcomponent \else \space\v!component:\space\currentcomponent\space \donetrue \fi
90 \fi
91 \ifdone \else \space\v!file :\space\jobname \space \fi
92 \hss
93 \currentversiontext
94 \quad
95 \page_adapts_status_info}}
96
97\installversioninfo\v!temporary
98 {\includeversioninfo\v!file}
99
100\appendtoks
101 \overfullrule\zeropoint
102\to \everyresetversion
103
104\appendtoks
105 \ifx\currentversioninfo\v!temporary
106 \overfullrule5\points
107 \fi
108\to \everysetupversion
109
110\newbox\b_page_versions
111
112\def\page_info_add_to_box_indeed#1
113 {\scratchdimen\wd#1
114 \setbox\b_page_versions\vpack to \ht#1
115 {\vfill
116 \settexthoffset
117 \hsize{\scratchdimen2\texthoffset}
118 \hkern\texthoffset
119 \vbox to \zeropoint{\vss\page_info_place_info}
120 \vkern\bodyfontsize}
121 \dp\b_page_versions\zeropoint
122 \wd\b_page_versions\scratchdimen
123 \setbox#1\hpack{\box#1\hkern\scratchdimen\box\b_page_versions}}
124
125\setupversion
126 [\v!final]
127
128\let\page_info_add_to_box\gobbleoneargument
129
130\protect \endinput
131 |