blob: 1daeba2bbe8f4c87f0604cd2a9ba95494265994d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
% Makes a listing of one or more files
% Typical usage:
% tex list *.c \\end
\def\grabfile#1 {\setbox0=\lastbox\endgraf\doit{#1}}
\everypar{\grabfile}
\font\filenamefont= cmtt8 scaled\magstep3
\font\headlinefont= cmr8
\font\listingfont= cmtex10
\font\eoffont= cmti8
\def\today{\ifcase\month\or
January\or February\or March\or April\or May\or June\or
July\or August\or September\or October\or November\or December\fi
\space\number\day, \number\year}
\newcount\m \newcount\n
\n=\time \divide\n 60 \m=-\n \multiply\m 60 \advance\m \time
\def\hours{\twodigits\n\twodigits\m}
\def\twodigits#1{\ifnum #1<10 0\fi \number#1}
\newlinechar=`@
\message{@\today\space at \hours}
\raggedbottom
\nopagenumbers
\chardef\other=12
\def\doit#1{\message{@Listing #1@}
\begingroup \everypar{} \frenchspacing
\headline{\filenamefont#1\quad\headlinefont \today\ at \hours
\hfill Page \folio}
\def\do##1{\catcode`##1=\other}\dospecials
\catcode127=\other \catcode9=\other \catcode12=\other
\parindent 0pt \parfillskip=0pt plus 1fil minus 1in
\everypar{\hangindent 1in} \rightskip=0pt plus 2in
\def\par{\ifvmode\penalty-500\medskip\else\endgraf\fi}
\listingfont \obeylines \obeyspaces \global\pageno=1
\input #1 {\eoffont(end of\/ file)}\endgraf\vfill\eject\endgroup}
{\obeyspaces\global\let =\ }
\catcode`\_=\other % allow _ in file names
% A tab (^^I) prints as lowercase gamma.
% Character ^^M could be made visible, with a bit of work;
% at present, it's indistinguishable from newline (^^J).
% You can get up to 103 characters on a line without an overfull box.
|