In the hex dump, generate the offset at the beginning of each line in
[obnox/wireshark/wip.git] / print.ps
1 %!
2 %
3 % Code between start/end remarks is put into ps.c
4 % Anything else is thrown away, and is for testing only.
5 %
6 % ---- ethereal preamble start ---- %
7 %!
8 %!PS-Adobe-2.0
9 %
10 % Ethereal - Network traffic analyzer
11 % By Gerald Combs <gerald@ethereal.com>
12 % Copyright 1998 Gerald Combs
13 %
14 %%Creator: Ethereal
15 %%Title: ethereal.ps
16 %%DocumentFonts: Helvetica Courier
17 %%EndComments
18 %!
19
20 % Get the Imagable Area of the page
21 clippath pathbbox
22
23 % Set vmax to the vertical size of the page,
24 % hmax to the horizontal size of the page.
25 /vmax exch def
26 /hmax exch def
27 pop pop         % junk
28
29 % 1-inch margins
30 /lmargin 72 def
31 /tmargin vmax 72 sub def
32 /bmargin 72 def
33 /pagenumtab hmax 72 sub def
34
35 % Counters
36 /vpos vmax 40 sub def
37 /thispagenum 1 def
38
39 % Strings
40 /pagenostr 7 string def
41
42 % Prints text with possible indenting
43 /putline {
44         exch 10 mul lmargin add         % X
45         vpos                                            % Y
46         moveto
47         show
48
49         /vpos vpos 10 sub def
50
51         vpos bmargin le                         % is vpos <= bottom margin?
52         {
53                 printpagenum showpage
54                 /vpos tmargin def
55         }
56         if                                                      % then formfeed and start at top
57 } def
58
59 % A putline with no indenting
60 /hexdump {
61         lmargin                                         % X
62         vpos                                            % Y
63         moveto
64         show
65
66         /vpos vpos 10 sub def
67
68         vpos bmargin le                         % is vpos <= bottom margin?
69         {
70                 printpagenum showpage
71                 /vpos tmargin def
72         }
73         if                                                      % then formfeed and start at top
74 } def
75
76 % A put line with smaller spacing and no formfeed
77 /titleline {
78         lmargin                                         % X
79         vpos                                            % Y
80         moveto
81         show
82
83         /vpos vpos 8 sub def
84 } def
85
86 % Prints the page number at the top right
87 /printpagenum {
88         gsave
89                 % Set the font to 8 point
90                 /Helvetica findfont 8 scalefont setfont
91
92                 pagenumtab                                      % X
93                 vmax 40 sub                                     % Y
94                 moveto
95                 (Page ) show
96                 thispagenum pagenostr cvs show
97
98                 % thispagenum++
99                 /thispagenum thispagenum 1 add def
100         grestore
101 } def
102         
103 % Set the font to 8 point
104 /Helvetica findfont 8 scalefont setfont
105
106 % Create the title
107 (Ethereal) titleline
108
109 % Reset the vertical position
110 /vpos tmargin def
111
112 % Set the font to 10 point
113 /Courier findfont 10 scalefont setfont
114 % ---- ethereal preamble end ---- %
115
116 % Display our output lines.
117 0 (Ethernet II \(98 on wire, 68 captured\)) putline
118 1 (Destination: 00:00:0c:36:00:2a) putline
119 1 (Source: 00:c0:4f:c7:eb:c0) putline
120 1 (Type: IP \(0x0800\)) putline
121 0 (Ethernet II \(98 on wire, 68 captured\)) putline
122 1 (Source: 00:c0:4f:c7:eb:c0) putline
123 1 (Type: IP \(0x0800\)) putline
124 0 (Source: 00:c0:4f:c7:eb:c0) putline
125
126 % ---- ethereal hex start ---- %
127 % Set the font to 10 point
128 /Courier findfont 10 scalefont setfont
129 % ---- ethereal hex end ---- %
130
131 () hexdump
132 (0000  cc 00 00 00 00 00 07 02 00 00 00 00 00 00 00 00   ................ ) hexdump
133 (0010  00 00 bd 0e fe 16 01 00 3e 00 03 08 58 4c 20 38   ........>...XL 8 ) hexdump
134 (0020  30 20 49 4d 33 00 16 01 00 34 00 16 01 01 35 00   0 IM3....4....5. ) hexdump
135 (0030  16 01 02 36 00 16 01 03 6e 00 16 01 ff 6f 00 16   ...6....n....o.. ) hexdump
136 (0040  01 ff 70 00 16 01 ff 71 00 16 01 ff 48 00 01 04   ..p....q....H... ) hexdump
137 (0050  ff 03 07 00 24 00 01 01 05 25 00 01 01 05 26 00   ....$....%....&. ) hexdump
138 (0060  01 01 05 27 00 01 01 05 6a 00 01 01 00 6b 00 01   ...'....j....k.. ) hexdump
139 (0070  01 00 6c 00 01 01 00 6d 00 01 01 00 3d 00 01 02   ..l....m....=... ) hexdump
140 (0080  02 00 c0 00 03 08 80 00 00 00 00 00 00 00 b4 00   ................ ) hexdump
141 (0090  01 04 c0 a8 42 ef 39 00 16 08 05 05 05 05 00 00   ....B.9......... ) hexdump
142 (00a0  00 00 00 03 20 36 41 20 52 69 6e 67 00 00 00 00   .... 6A Ring.... ) hexdump
143 (00b0  00 00 00 00 00 00                                 ......           ) hexdump
144
145 % ---- ethereal finale start ---- %
146 % If this is not the first page, then print the page number
147 thispagenum 1 gt                                % is thispagenum > 1 ?
148 {
149         printpagenum
150 }
151 if
152
153 showpage
154 % ---- ethereal finale end ---- %