1*3b188dabSeric /* $OpenBSD: lp_banner.c,v 1.1.1.1 2018/04/27 16:14:36 eric Exp $ */
2*3b188dabSeric
3*3b188dabSeric /*
4*3b188dabSeric * Adapted from the following files in src/usr.sbin/lpr/lpd:
5*3b188dabSeric *
6*3b188dabSeric * lpdchar.c,v 1.8 2016/02/28 20:55:40
7*3b188dabSeric * printjob.c,v 1.58 2016/11/22 16:03:57
8*3b188dabSeric */
9*3b188dabSeric
10*3b188dabSeric /*
11*3b188dabSeric * Copyright (c) 1983, 1993
12*3b188dabSeric * The Regents of the University of California. All rights reserved.
13*3b188dabSeric *
14*3b188dabSeric * Redistribution and use in source and binary forms, with or without
15*3b188dabSeric * modification, are permitted provided that the following conditions
16*3b188dabSeric * are met:
17*3b188dabSeric * 1. Redistributions of source code must retain the above copyright
18*3b188dabSeric * notice, this list of conditions and the following disclaimer.
19*3b188dabSeric * 2. Redistributions in binary form must reproduce the above copyright
20*3b188dabSeric * notice, this list of conditions and the following disclaimer in the
21*3b188dabSeric * documentation and/or other materials provided with the distribution.
22*3b188dabSeric * 3. Neither the name of the University nor the names of its contributors
23*3b188dabSeric * may be used to endorse or promote products derived from this software
24*3b188dabSeric * without specific prior written permission.
25*3b188dabSeric *
26*3b188dabSeric * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
27*3b188dabSeric * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28*3b188dabSeric * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
29*3b188dabSeric * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
30*3b188dabSeric * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
31*3b188dabSeric * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
32*3b188dabSeric * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
33*3b188dabSeric * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
34*3b188dabSeric * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
35*3b188dabSeric * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
36*3b188dabSeric * SUCH DAMAGE.
37*3b188dabSeric */
38*3b188dabSeric
39*3b188dabSeric #include "lp.h"
40*3b188dabSeric
41*3b188dabSeric #define LINELEN 132
42*3b188dabSeric #define BACKGND ' '
43*3b188dabSeric #define HEIGHT 9
44*3b188dabSeric #define DROP 3
45*3b188dabSeric #define WIDTH 8
46*3b188dabSeric
47*3b188dabSeric /*
48*3b188dabSeric * from lpdchar.c
49*3b188dabSeric */
50*3b188dabSeric
51*3b188dabSeric /*
52*3b188dabSeric * Character set for line printer daemon
53*3b188dabSeric */
54*3b188dabSeric
55*3b188dabSeric #define c_______ 0
56*3b188dabSeric #define c______1 01
57*3b188dabSeric #define c_____1_ 02
58*3b188dabSeric #define c____1__ 04
59*3b188dabSeric #define c____11_ 06
60*3b188dabSeric #define c___1___ 010
61*3b188dabSeric #define c___1__1 011
62*3b188dabSeric #define c___1_1_ 012
63*3b188dabSeric #define c___11__ 014
64*3b188dabSeric #define c__1____ 020
65*3b188dabSeric #define c__1__1_ 022
66*3b188dabSeric #define c__1_1__ 024
67*3b188dabSeric #define c__11___ 030
68*3b188dabSeric #define c__111__ 034
69*3b188dabSeric #define c__111_1 035
70*3b188dabSeric #define c__1111_ 036
71*3b188dabSeric #define c__11111 037
72*3b188dabSeric #define c_1_____ 040
73*3b188dabSeric #define c_1____1 041
74*3b188dabSeric #define c_1___1_ 042
75*3b188dabSeric #define c_1__1__ 044
76*3b188dabSeric #define c_1_1___ 050
77*3b188dabSeric #define c_1_1__1 051
78*3b188dabSeric #define c_1_1_1_ 052
79*3b188dabSeric #define c_11____ 060
80*3b188dabSeric #define c_11_11_ 066
81*3b188dabSeric #define c_111___ 070
82*3b188dabSeric #define c_111__1 071
83*3b188dabSeric #define c_111_1_ 072
84*3b188dabSeric #define c_1111__ 074
85*3b188dabSeric #define c_1111_1 075
86*3b188dabSeric #define c_11111_ 076
87*3b188dabSeric #define c_111111 077
88*3b188dabSeric #define c1______ 0100
89*3b188dabSeric #define c1_____1 0101
90*3b188dabSeric #define c1____1_ 0102
91*3b188dabSeric #define c1____11 0103
92*3b188dabSeric #define c1___1__ 0104
93*3b188dabSeric #define c1___1_1 0105
94*3b188dabSeric #define c1___11_ 0106
95*3b188dabSeric #define c1__1___ 0110
96*3b188dabSeric #define c1__1__1 0111
97*3b188dabSeric #define c1__11_1 0115
98*3b188dabSeric #define c1__1111 0117
99*3b188dabSeric #define c1_1____ 0120
100*3b188dabSeric #define c1_1___1 0121
101*3b188dabSeric #define c1_1_1_1 0125
102*3b188dabSeric #define c1_1_11_ 0126
103*3b188dabSeric #define c1_111__ 0134
104*3b188dabSeric #define c1_1111_ 0136
105*3b188dabSeric #define c11____1 0141
106*3b188dabSeric #define c11___1_ 0142
107*3b188dabSeric #define c11___11 0143
108*3b188dabSeric #define c11_1___ 0150
109*3b188dabSeric #define c11_1__1 0151
110*3b188dabSeric #define c111_11_ 0166
111*3b188dabSeric #define c1111___ 0170
112*3b188dabSeric #define c11111__ 0174
113*3b188dabSeric #define c111111_ 0176
114*3b188dabSeric #define c1111111 0177
115*3b188dabSeric
116*3b188dabSeric static const char scnkey[][HEIGHT] = /* this is relatively easy to modify */
117*3b188dabSeric /* just look: */
118*3b188dabSeric {
119*3b188dabSeric { c_______,
120*3b188dabSeric c_______,
121*3b188dabSeric c_______,
122*3b188dabSeric c_______,
123*3b188dabSeric c_______,
124*3b188dabSeric c_______,
125*3b188dabSeric c_______,
126*3b188dabSeric c_______,
127*3b188dabSeric c_______ }, /* */
128*3b188dabSeric
129*3b188dabSeric { c__11___,
130*3b188dabSeric c__11___,
131*3b188dabSeric c__11___,
132*3b188dabSeric c__11___,
133*3b188dabSeric c__11___,
134*3b188dabSeric c_______,
135*3b188dabSeric c_______,
136*3b188dabSeric c__11___,
137*3b188dabSeric c__11___ }, /* ! */
138*3b188dabSeric
139*3b188dabSeric { c_1__1__,
140*3b188dabSeric c_1__1__,
141*3b188dabSeric c_______,
142*3b188dabSeric c_______,
143*3b188dabSeric c_______,
144*3b188dabSeric c_______,
145*3b188dabSeric c_______,
146*3b188dabSeric c_______,
147*3b188dabSeric c_______ }, /* " */
148*3b188dabSeric
149*3b188dabSeric { c_______,
150*3b188dabSeric c__1_1__,
151*3b188dabSeric c__1_1__,
152*3b188dabSeric c1111111,
153*3b188dabSeric c__1_1__,
154*3b188dabSeric c1111111,
155*3b188dabSeric c__1_1__,
156*3b188dabSeric c__1_1__,
157*3b188dabSeric c_______ }, /* # */
158*3b188dabSeric
159*3b188dabSeric { c___1___,
160*3b188dabSeric c_11111_,
161*3b188dabSeric c1__1__1,
162*3b188dabSeric c1__1___,
163*3b188dabSeric c_11111_,
164*3b188dabSeric c___1__1,
165*3b188dabSeric c1__1__1,
166*3b188dabSeric c_11111_,
167*3b188dabSeric c___1___ }, /* $ */
168*3b188dabSeric
169*3b188dabSeric { c_1_____,
170*3b188dabSeric c1_1___1,
171*3b188dabSeric c_1___1_,
172*3b188dabSeric c____1__,
173*3b188dabSeric c___1___,
174*3b188dabSeric c__1____,
175*3b188dabSeric c_1___1_,
176*3b188dabSeric c1___1_1,
177*3b188dabSeric c_____1_ }, /* % */
178*3b188dabSeric
179*3b188dabSeric { c_11____,
180*3b188dabSeric c1__1___,
181*3b188dabSeric c1___1__,
182*3b188dabSeric c_1_1___,
183*3b188dabSeric c__1____,
184*3b188dabSeric c_1_1__1,
185*3b188dabSeric c1___11_,
186*3b188dabSeric c1___11_,
187*3b188dabSeric c_111__1 }, /* & */
188*3b188dabSeric
189*3b188dabSeric { c___11__,
190*3b188dabSeric c___11__,
191*3b188dabSeric c___1___,
192*3b188dabSeric c__1____,
193*3b188dabSeric c_______,
194*3b188dabSeric c_______,
195*3b188dabSeric c_______,
196*3b188dabSeric c_______,
197*3b188dabSeric c_______ }, /* ' */
198*3b188dabSeric
199*3b188dabSeric { c____1__,
200*3b188dabSeric c___1___,
201*3b188dabSeric c__1____,
202*3b188dabSeric c__1____,
203*3b188dabSeric c__1____,
204*3b188dabSeric c__1____,
205*3b188dabSeric c__1____,
206*3b188dabSeric c___1___,
207*3b188dabSeric c____1__ }, /* ( */
208*3b188dabSeric
209*3b188dabSeric { c__1____,
210*3b188dabSeric c___1___,
211*3b188dabSeric c____1__,
212*3b188dabSeric c____1__,
213*3b188dabSeric c____1__,
214*3b188dabSeric c____1__,
215*3b188dabSeric c____1__,
216*3b188dabSeric c___1___,
217*3b188dabSeric c__1____ }, /* ) */
218*3b188dabSeric
219*3b188dabSeric { c_______,
220*3b188dabSeric c___1___,
221*3b188dabSeric c1__1__1,
222*3b188dabSeric c_1_1_1_,
223*3b188dabSeric c__111__,
224*3b188dabSeric c_1_1_1_,
225*3b188dabSeric c1__1__1,
226*3b188dabSeric c___1___,
227*3b188dabSeric c_______ }, /* * */
228*3b188dabSeric
229*3b188dabSeric { c_______,
230*3b188dabSeric c___1___,
231*3b188dabSeric c___1___,
232*3b188dabSeric c___1___,
233*3b188dabSeric c1111111,
234*3b188dabSeric c___1___,
235*3b188dabSeric c___1___,
236*3b188dabSeric c___1___,
237*3b188dabSeric c_______ }, /* + */
238*3b188dabSeric
239*3b188dabSeric { c_______,
240*3b188dabSeric c_______,
241*3b188dabSeric c_______,
242*3b188dabSeric c_______,
243*3b188dabSeric c__11___,
244*3b188dabSeric c__11___,
245*3b188dabSeric c__1____,
246*3b188dabSeric c_1_____,
247*3b188dabSeric c_______ }, /* , */
248*3b188dabSeric
249*3b188dabSeric { c_______,
250*3b188dabSeric c_______,
251*3b188dabSeric c_______,
252*3b188dabSeric c_______,
253*3b188dabSeric c1111111,
254*3b188dabSeric c_______,
255*3b188dabSeric c_______,
256*3b188dabSeric c_______,
257*3b188dabSeric c_______ }, /* - */
258*3b188dabSeric
259*3b188dabSeric { c_______,
260*3b188dabSeric c_______,
261*3b188dabSeric c_______,
262*3b188dabSeric c_______,
263*3b188dabSeric c_______,
264*3b188dabSeric c_______,
265*3b188dabSeric c_______,
266*3b188dabSeric c__11___,
267*3b188dabSeric c__11___ }, /* . */
268*3b188dabSeric
269*3b188dabSeric { c_______,
270*3b188dabSeric c______1,
271*3b188dabSeric c_____1_,
272*3b188dabSeric c____1__,
273*3b188dabSeric c___1___,
274*3b188dabSeric c__1____,
275*3b188dabSeric c_1_____,
276*3b188dabSeric c1______,
277*3b188dabSeric c_______ }, /* / */
278*3b188dabSeric
279*3b188dabSeric { c_11111_,
280*3b188dabSeric c1_____1,
281*3b188dabSeric c1____11,
282*3b188dabSeric c1___1_1,
283*3b188dabSeric c1__1__1,
284*3b188dabSeric c1_1___1,
285*3b188dabSeric c11____1,
286*3b188dabSeric c1_____1,
287*3b188dabSeric c_11111_ }, /* 0 */
288*3b188dabSeric
289*3b188dabSeric { c___1___,
290*3b188dabSeric c__11___,
291*3b188dabSeric c_1_1___,
292*3b188dabSeric c___1___,
293*3b188dabSeric c___1___,
294*3b188dabSeric c___1___,
295*3b188dabSeric c___1___,
296*3b188dabSeric c___1___,
297*3b188dabSeric c_11111_ }, /* 1 */
298*3b188dabSeric
299*3b188dabSeric { c_11111_,
300*3b188dabSeric c1_____1,
301*3b188dabSeric c______1,
302*3b188dabSeric c_____1_,
303*3b188dabSeric c__111__,
304*3b188dabSeric c_1_____,
305*3b188dabSeric c1______,
306*3b188dabSeric c1______,
307*3b188dabSeric c1111111 }, /* 2 */
308*3b188dabSeric
309*3b188dabSeric { c_11111_,
310*3b188dabSeric c1_____1,
311*3b188dabSeric c______1,
312*3b188dabSeric c______1,
313*3b188dabSeric c__1111_,
314*3b188dabSeric c______1,
315*3b188dabSeric c______1,
316*3b188dabSeric c1_____1,
317*3b188dabSeric c_11111_ }, /* 3 */
318*3b188dabSeric
319*3b188dabSeric { c_____1_,
320*3b188dabSeric c____11_,
321*3b188dabSeric c___1_1_,
322*3b188dabSeric c__1__1_,
323*3b188dabSeric c_1___1_,
324*3b188dabSeric c1____1_,
325*3b188dabSeric c1111111,
326*3b188dabSeric c_____1_,
327*3b188dabSeric c_____1_ }, /* 4 */
328*3b188dabSeric
329*3b188dabSeric { c1111111,
330*3b188dabSeric c1______,
331*3b188dabSeric c1______,
332*3b188dabSeric c11111__,
333*3b188dabSeric c_____1_,
334*3b188dabSeric c______1,
335*3b188dabSeric c______1,
336*3b188dabSeric c1____1_,
337*3b188dabSeric c_1111__ }, /* 5 */
338*3b188dabSeric
339*3b188dabSeric { c__1111_,
340*3b188dabSeric c_1_____,
341*3b188dabSeric c1______,
342*3b188dabSeric c1______,
343*3b188dabSeric c1_1111_,
344*3b188dabSeric c11____1,
345*3b188dabSeric c1_____1,
346*3b188dabSeric c1_____1,
347*3b188dabSeric c_11111_ }, /* 6 */
348*3b188dabSeric
349*3b188dabSeric { c1111111,
350*3b188dabSeric c1_____1,
351*3b188dabSeric c_____1_,
352*3b188dabSeric c____1__,
353*3b188dabSeric c___1___,
354*3b188dabSeric c__1____,
355*3b188dabSeric c__1____,
356*3b188dabSeric c__1____,
357*3b188dabSeric c__1____ }, /* 7 */
358*3b188dabSeric
359*3b188dabSeric { c_11111_,
360*3b188dabSeric c1_____1,
361*3b188dabSeric c1_____1,
362*3b188dabSeric c1_____1,
363*3b188dabSeric c_11111_,
364*3b188dabSeric c1_____1,
365*3b188dabSeric c1_____1,
366*3b188dabSeric c1_____1,
367*3b188dabSeric c_11111_ }, /* 8 */
368*3b188dabSeric
369*3b188dabSeric { c_11111_,
370*3b188dabSeric c1_____1,
371*3b188dabSeric c1_____1,
372*3b188dabSeric c1_____1,
373*3b188dabSeric c_111111,
374*3b188dabSeric c______1,
375*3b188dabSeric c______1,
376*3b188dabSeric c1_____1,
377*3b188dabSeric c_1111__ }, /* 9 */
378*3b188dabSeric
379*3b188dabSeric { c_______,
380*3b188dabSeric c_______,
381*3b188dabSeric c_______,
382*3b188dabSeric c__11___,
383*3b188dabSeric c__11___,
384*3b188dabSeric c_______,
385*3b188dabSeric c_______,
386*3b188dabSeric c__11___,
387*3b188dabSeric c__11___ }, /* : */
388*3b188dabSeric
389*3b188dabSeric { c__11___,
390*3b188dabSeric c__11___,
391*3b188dabSeric c_______,
392*3b188dabSeric c_______,
393*3b188dabSeric c__11___,
394*3b188dabSeric c__11___,
395*3b188dabSeric c__1____,
396*3b188dabSeric c_1_____,
397*3b188dabSeric c_______ }, /* ; */
398*3b188dabSeric
399*3b188dabSeric { c____1__,
400*3b188dabSeric c___1___,
401*3b188dabSeric c__1____,
402*3b188dabSeric c_1_____,
403*3b188dabSeric c1______,
404*3b188dabSeric c_1_____,
405*3b188dabSeric c__1____,
406*3b188dabSeric c___1___,
407*3b188dabSeric c____1__ }, /* < */
408*3b188dabSeric
409*3b188dabSeric { c_______,
410*3b188dabSeric c_______,
411*3b188dabSeric c_______,
412*3b188dabSeric c1111111,
413*3b188dabSeric c_______,
414*3b188dabSeric c1111111,
415*3b188dabSeric c_______,
416*3b188dabSeric c_______,
417*3b188dabSeric c_______ }, /* = */
418*3b188dabSeric
419*3b188dabSeric { c__1____,
420*3b188dabSeric c___1___,
421*3b188dabSeric c____1__,
422*3b188dabSeric c_____1_,
423*3b188dabSeric c______1,
424*3b188dabSeric c_____1_,
425*3b188dabSeric c____1__,
426*3b188dabSeric c___1___,
427*3b188dabSeric c__1____ }, /* > */
428*3b188dabSeric
429*3b188dabSeric { c__1111_,
430*3b188dabSeric c_1____1,
431*3b188dabSeric c_1____1,
432*3b188dabSeric c______1,
433*3b188dabSeric c____11_,
434*3b188dabSeric c___1___,
435*3b188dabSeric c___1___,
436*3b188dabSeric c_______,
437*3b188dabSeric c___1___ }, /* ? */
438*3b188dabSeric
439*3b188dabSeric { c__1111_,
440*3b188dabSeric c_1____1,
441*3b188dabSeric c1__11_1,
442*3b188dabSeric c1_1_1_1,
443*3b188dabSeric c1_1_1_1,
444*3b188dabSeric c1_1111_,
445*3b188dabSeric c1______,
446*3b188dabSeric c_1____1,
447*3b188dabSeric c__1111_ }, /* @ */
448*3b188dabSeric
449*3b188dabSeric { c__111__,
450*3b188dabSeric c_1___1_,
451*3b188dabSeric c1_____1,
452*3b188dabSeric c1_____1,
453*3b188dabSeric c1111111,
454*3b188dabSeric c1_____1,
455*3b188dabSeric c1_____1,
456*3b188dabSeric c1_____1,
457*3b188dabSeric c1_____1 }, /* A */
458*3b188dabSeric
459*3b188dabSeric { c111111_,
460*3b188dabSeric c_1____1,
461*3b188dabSeric c_1____1,
462*3b188dabSeric c_1____1,
463*3b188dabSeric c_11111_,
464*3b188dabSeric c_1____1,
465*3b188dabSeric c_1____1,
466*3b188dabSeric c_1____1,
467*3b188dabSeric c111111_ }, /* B */
468*3b188dabSeric
469*3b188dabSeric { c__1111_,
470*3b188dabSeric c_1____1,
471*3b188dabSeric c1______,
472*3b188dabSeric c1______,
473*3b188dabSeric c1______,
474*3b188dabSeric c1______,
475*3b188dabSeric c1______,
476*3b188dabSeric c_1____1,
477*3b188dabSeric c__1111_ }, /* C */
478*3b188dabSeric
479*3b188dabSeric { c11111__,
480*3b188dabSeric c_1___1_,
481*3b188dabSeric c_1____1,
482*3b188dabSeric c_1____1,
483*3b188dabSeric c_1____1,
484*3b188dabSeric c_1____1,
485*3b188dabSeric c_1____1,
486*3b188dabSeric c_1___1_,
487*3b188dabSeric c11111__ }, /* D */
488*3b188dabSeric
489*3b188dabSeric { c1111111,
490*3b188dabSeric c1______,
491*3b188dabSeric c1______,
492*3b188dabSeric c1______,
493*3b188dabSeric c111111_,
494*3b188dabSeric c1______,
495*3b188dabSeric c1______,
496*3b188dabSeric c1______,
497*3b188dabSeric c1111111 }, /* E */
498*3b188dabSeric
499*3b188dabSeric { c1111111,
500*3b188dabSeric c1______,
501*3b188dabSeric c1______,
502*3b188dabSeric c1______,
503*3b188dabSeric c111111_,
504*3b188dabSeric c1______,
505*3b188dabSeric c1______,
506*3b188dabSeric c1______,
507*3b188dabSeric c1______ }, /* F */
508*3b188dabSeric
509*3b188dabSeric { c__1111_,
510*3b188dabSeric c_1____1,
511*3b188dabSeric c1______,
512*3b188dabSeric c1______,
513*3b188dabSeric c1______,
514*3b188dabSeric c1__1111,
515*3b188dabSeric c1_____1,
516*3b188dabSeric c_1____1,
517*3b188dabSeric c__1111_ }, /* G */
518*3b188dabSeric
519*3b188dabSeric { c1_____1,
520*3b188dabSeric c1_____1,
521*3b188dabSeric c1_____1,
522*3b188dabSeric c1_____1,
523*3b188dabSeric c1111111,
524*3b188dabSeric c1_____1,
525*3b188dabSeric c1_____1,
526*3b188dabSeric c1_____1,
527*3b188dabSeric c1_____1 }, /* H */
528*3b188dabSeric
529*3b188dabSeric { c_11111_,
530*3b188dabSeric c___1___,
531*3b188dabSeric c___1___,
532*3b188dabSeric c___1___,
533*3b188dabSeric c___1___,
534*3b188dabSeric c___1___,
535*3b188dabSeric c___1___,
536*3b188dabSeric c___1___,
537*3b188dabSeric c_11111_ }, /* I */
538*3b188dabSeric
539*3b188dabSeric { c__11111,
540*3b188dabSeric c____1__,
541*3b188dabSeric c____1__,
542*3b188dabSeric c____1__,
543*3b188dabSeric c____1__,
544*3b188dabSeric c____1__,
545*3b188dabSeric c____1__,
546*3b188dabSeric c1___1__,
547*3b188dabSeric c_111___ }, /* J */
548*3b188dabSeric
549*3b188dabSeric { c1_____1,
550*3b188dabSeric c1____1_,
551*3b188dabSeric c1___1__,
552*3b188dabSeric c1__1___,
553*3b188dabSeric c1_1____,
554*3b188dabSeric c11_1___,
555*3b188dabSeric c1___1__,
556*3b188dabSeric c1____1_,
557*3b188dabSeric c1_____1 }, /* K */
558*3b188dabSeric
559*3b188dabSeric { c1______,
560*3b188dabSeric c1______,
561*3b188dabSeric c1______,
562*3b188dabSeric c1______,
563*3b188dabSeric c1______,
564*3b188dabSeric c1______,
565*3b188dabSeric c1______,
566*3b188dabSeric c1______,
567*3b188dabSeric c1111111 }, /* L */
568*3b188dabSeric
569*3b188dabSeric { c1_____1,
570*3b188dabSeric c11___11,
571*3b188dabSeric c1_1_1_1,
572*3b188dabSeric c1__1__1,
573*3b188dabSeric c1_____1,
574*3b188dabSeric c1_____1,
575*3b188dabSeric c1_____1,
576*3b188dabSeric c1_____1,
577*3b188dabSeric c1_____1 }, /* M */
578*3b188dabSeric
579*3b188dabSeric { c1_____1,
580*3b188dabSeric c11____1,
581*3b188dabSeric c1_1___1,
582*3b188dabSeric c1__1__1,
583*3b188dabSeric c1___1_1,
584*3b188dabSeric c1____11,
585*3b188dabSeric c1_____1,
586*3b188dabSeric c1_____1,
587*3b188dabSeric c1_____1 }, /* N */
588*3b188dabSeric
589*3b188dabSeric { c__111__,
590*3b188dabSeric c_1___1_,
591*3b188dabSeric c1_____1,
592*3b188dabSeric c1_____1,
593*3b188dabSeric c1_____1,
594*3b188dabSeric c1_____1,
595*3b188dabSeric c1_____1,
596*3b188dabSeric c_1___1_,
597*3b188dabSeric c__111__ }, /* O */
598*3b188dabSeric
599*3b188dabSeric { c111111_,
600*3b188dabSeric c1_____1,
601*3b188dabSeric c1_____1,
602*3b188dabSeric c1_____1,
603*3b188dabSeric c111111_,
604*3b188dabSeric c1______,
605*3b188dabSeric c1______,
606*3b188dabSeric c1______,
607*3b188dabSeric c1______ }, /* P */
608*3b188dabSeric
609*3b188dabSeric { c__111__,
610*3b188dabSeric c_1___1_,
611*3b188dabSeric c1_____1,
612*3b188dabSeric c1_____1,
613*3b188dabSeric c1_____1,
614*3b188dabSeric c1__1__1,
615*3b188dabSeric c1___1_1,
616*3b188dabSeric c_1___1_,
617*3b188dabSeric c__111_1 }, /* Q */
618*3b188dabSeric
619*3b188dabSeric { c111111_,
620*3b188dabSeric c1_____1,
621*3b188dabSeric c1_____1,
622*3b188dabSeric c1_____1,
623*3b188dabSeric c111111_,
624*3b188dabSeric c1__1___,
625*3b188dabSeric c1___1__,
626*3b188dabSeric c1____1_,
627*3b188dabSeric c1_____1 }, /* R */
628*3b188dabSeric
629*3b188dabSeric { c_11111_,
630*3b188dabSeric c1_____1,
631*3b188dabSeric c1______,
632*3b188dabSeric c1______,
633*3b188dabSeric c_11111_,
634*3b188dabSeric c______1,
635*3b188dabSeric c______1,
636*3b188dabSeric c1_____1,
637*3b188dabSeric c_11111_ }, /* S */
638*3b188dabSeric
639*3b188dabSeric { c1111111,
640*3b188dabSeric c___1___,
641*3b188dabSeric c___1___,
642*3b188dabSeric c___1___,
643*3b188dabSeric c___1___,
644*3b188dabSeric c___1___,
645*3b188dabSeric c___1___,
646*3b188dabSeric c___1___,
647*3b188dabSeric c___1___ }, /* T */
648*3b188dabSeric
649*3b188dabSeric { c1_____1,
650*3b188dabSeric c1_____1,
651*3b188dabSeric c1_____1,
652*3b188dabSeric c1_____1,
653*3b188dabSeric c1_____1,
654*3b188dabSeric c1_____1,
655*3b188dabSeric c1_____1,
656*3b188dabSeric c1_____1,
657*3b188dabSeric c_11111_ }, /* U */
658*3b188dabSeric
659*3b188dabSeric { c1_____1,
660*3b188dabSeric c1_____1,
661*3b188dabSeric c1_____1,
662*3b188dabSeric c_1___1_,
663*3b188dabSeric c_1___1_,
664*3b188dabSeric c__1_1__,
665*3b188dabSeric c__1_1__,
666*3b188dabSeric c___1___,
667*3b188dabSeric c___1___ }, /* V */
668*3b188dabSeric
669*3b188dabSeric { c1_____1,
670*3b188dabSeric c1_____1,
671*3b188dabSeric c1_____1,
672*3b188dabSeric c1_____1,
673*3b188dabSeric c1__1__1,
674*3b188dabSeric c1__1__1,
675*3b188dabSeric c1_1_1_1,
676*3b188dabSeric c11___11,
677*3b188dabSeric c1_____1 }, /* W */
678*3b188dabSeric
679*3b188dabSeric { c1_____1,
680*3b188dabSeric c1_____1,
681*3b188dabSeric c_1___1_,
682*3b188dabSeric c__1_1__,
683*3b188dabSeric c___1___,
684*3b188dabSeric c__1_1__,
685*3b188dabSeric c_1___1_,
686*3b188dabSeric c1_____1,
687*3b188dabSeric c1_____1 }, /* X */
688*3b188dabSeric
689*3b188dabSeric { c1_____1,
690*3b188dabSeric c1_____1,
691*3b188dabSeric c_1___1_,
692*3b188dabSeric c__1_1__,
693*3b188dabSeric c___1___,
694*3b188dabSeric c___1___,
695*3b188dabSeric c___1___,
696*3b188dabSeric c___1___,
697*3b188dabSeric c___1___ }, /* Y */
698*3b188dabSeric
699*3b188dabSeric { c1111111,
700*3b188dabSeric c______1,
701*3b188dabSeric c_____1_,
702*3b188dabSeric c____1__,
703*3b188dabSeric c___1___,
704*3b188dabSeric c__1____,
705*3b188dabSeric c_1_____,
706*3b188dabSeric c1______,
707*3b188dabSeric c1111111 }, /* Z */
708*3b188dabSeric
709*3b188dabSeric { c_1111__,
710*3b188dabSeric c_1_____,
711*3b188dabSeric c_1_____,
712*3b188dabSeric c_1_____,
713*3b188dabSeric c_1_____,
714*3b188dabSeric c_1_____,
715*3b188dabSeric c_1_____,
716*3b188dabSeric c_1_____,
717*3b188dabSeric c_1111__ }, /* [ */
718*3b188dabSeric
719*3b188dabSeric { c_______,
720*3b188dabSeric c1______,
721*3b188dabSeric c_1_____,
722*3b188dabSeric c__1____,
723*3b188dabSeric c___1___,
724*3b188dabSeric c____1__,
725*3b188dabSeric c_____1_,
726*3b188dabSeric c______1,
727*3b188dabSeric c_______ }, /* \ */
728*3b188dabSeric
729*3b188dabSeric { c__1111_,
730*3b188dabSeric c_____1_,
731*3b188dabSeric c_____1_,
732*3b188dabSeric c_____1_,
733*3b188dabSeric c_____1_,
734*3b188dabSeric c_____1_,
735*3b188dabSeric c_____1_,
736*3b188dabSeric c_____1_,
737*3b188dabSeric c__1111_ }, /* ] */
738*3b188dabSeric
739*3b188dabSeric { c___1___,
740*3b188dabSeric c__1_1__,
741*3b188dabSeric c_1___1_,
742*3b188dabSeric c1_____1,
743*3b188dabSeric c_______,
744*3b188dabSeric c_______,
745*3b188dabSeric c_______,
746*3b188dabSeric c_______ }, /* ^ */
747*3b188dabSeric
748*3b188dabSeric { c_______,
749*3b188dabSeric c_______,
750*3b188dabSeric c_______,
751*3b188dabSeric c_______,
752*3b188dabSeric c_______,
753*3b188dabSeric c_______,
754*3b188dabSeric c_______,
755*3b188dabSeric c1111111,
756*3b188dabSeric c_______ }, /* _ */
757*3b188dabSeric
758*3b188dabSeric { c__11___,
759*3b188dabSeric c__11___,
760*3b188dabSeric c___1___,
761*3b188dabSeric c____1__,
762*3b188dabSeric c_______,
763*3b188dabSeric c_______,
764*3b188dabSeric c_______,
765*3b188dabSeric c_______,
766*3b188dabSeric c_______ }, /* ` */
767*3b188dabSeric
768*3b188dabSeric { c_______,
769*3b188dabSeric c_______,
770*3b188dabSeric c_______,
771*3b188dabSeric c_1111__,
772*3b188dabSeric c_____1_,
773*3b188dabSeric c_11111_,
774*3b188dabSeric c1_____1,
775*3b188dabSeric c1____11,
776*3b188dabSeric c_1111_1 }, /* a */
777*3b188dabSeric
778*3b188dabSeric { c1______,
779*3b188dabSeric c1______,
780*3b188dabSeric c1______,
781*3b188dabSeric c1_111__,
782*3b188dabSeric c11___1_,
783*3b188dabSeric c1_____1,
784*3b188dabSeric c1_____1,
785*3b188dabSeric c11___1_,
786*3b188dabSeric c1_111__ }, /* b */
787*3b188dabSeric
788*3b188dabSeric { c_______,
789*3b188dabSeric c_______,
790*3b188dabSeric c_______,
791*3b188dabSeric c_1111__,
792*3b188dabSeric c1____1_,
793*3b188dabSeric c1______,
794*3b188dabSeric c1______,
795*3b188dabSeric c1____1_,
796*3b188dabSeric c_1111__ }, /* c */
797*3b188dabSeric
798*3b188dabSeric { c_____1_,
799*3b188dabSeric c_____1_,
800*3b188dabSeric c_____1_,
801*3b188dabSeric c_111_1_,
802*3b188dabSeric c1___11_,
803*3b188dabSeric c1____1_,
804*3b188dabSeric c1____1_,
805*3b188dabSeric c1___11_,
806*3b188dabSeric c_111_1_ }, /* d */
807*3b188dabSeric
808*3b188dabSeric { c_______,
809*3b188dabSeric c_______,
810*3b188dabSeric c_______,
811*3b188dabSeric c_1111__,
812*3b188dabSeric c1____1_,
813*3b188dabSeric c111111_,
814*3b188dabSeric c1______,
815*3b188dabSeric c1____1_,
816*3b188dabSeric c_1111__ }, /* e */
817*3b188dabSeric
818*3b188dabSeric { c___11__,
819*3b188dabSeric c__1__1_,
820*3b188dabSeric c__1____,
821*3b188dabSeric c__1____,
822*3b188dabSeric c11111__,
823*3b188dabSeric c__1____,
824*3b188dabSeric c__1____,
825*3b188dabSeric c__1____,
826*3b188dabSeric c__1____ }, /* f */
827*3b188dabSeric
828*3b188dabSeric { c_111_1_,
829*3b188dabSeric c1___11_,
830*3b188dabSeric c1____1_,
831*3b188dabSeric c1____1_,
832*3b188dabSeric c1___11_,
833*3b188dabSeric c_111_1_,
834*3b188dabSeric c_____1_,
835*3b188dabSeric c1____1_,
836*3b188dabSeric c_1111__ }, /* g */
837*3b188dabSeric
838*3b188dabSeric { c1______,
839*3b188dabSeric c1______,
840*3b188dabSeric c1______,
841*3b188dabSeric c1_111__,
842*3b188dabSeric c11___1_,
843*3b188dabSeric c1____1_,
844*3b188dabSeric c1____1_,
845*3b188dabSeric c1____1_,
846*3b188dabSeric c1____1_ }, /* h */
847*3b188dabSeric
848*3b188dabSeric { c_______,
849*3b188dabSeric c___1___,
850*3b188dabSeric c_______,
851*3b188dabSeric c__11___,
852*3b188dabSeric c___1___,
853*3b188dabSeric c___1___,
854*3b188dabSeric c___1___,
855*3b188dabSeric c___1___,
856*3b188dabSeric c__111__ }, /* i */
857*3b188dabSeric
858*3b188dabSeric { c____11_,
859*3b188dabSeric c_____1_,
860*3b188dabSeric c_____1_,
861*3b188dabSeric c_____1_,
862*3b188dabSeric c_____1_,
863*3b188dabSeric c_____1_,
864*3b188dabSeric c_____1_,
865*3b188dabSeric c_1___1_,
866*3b188dabSeric c__111__ }, /* j */
867*3b188dabSeric
868*3b188dabSeric { c1______,
869*3b188dabSeric c1______,
870*3b188dabSeric c1______,
871*3b188dabSeric c1___1__,
872*3b188dabSeric c1__1___,
873*3b188dabSeric c1_1____,
874*3b188dabSeric c11_1___,
875*3b188dabSeric c1___1__,
876*3b188dabSeric c1____1_ }, /* k */
877*3b188dabSeric
878*3b188dabSeric { c__11___,
879*3b188dabSeric c___1___,
880*3b188dabSeric c___1___,
881*3b188dabSeric c___1___,
882*3b188dabSeric c___1___,
883*3b188dabSeric c___1___,
884*3b188dabSeric c___1___,
885*3b188dabSeric c___1___,
886*3b188dabSeric c__111__ }, /* l */
887*3b188dabSeric
888*3b188dabSeric { c_______,
889*3b188dabSeric c_______,
890*3b188dabSeric c_______,
891*3b188dabSeric c1_1_11_,
892*3b188dabSeric c11_1__1,
893*3b188dabSeric c1__1__1,
894*3b188dabSeric c1__1__1,
895*3b188dabSeric c1__1__1,
896*3b188dabSeric c1__1__1 }, /* m */
897*3b188dabSeric
898*3b188dabSeric { c_______,
899*3b188dabSeric c_______,
900*3b188dabSeric c_______,
901*3b188dabSeric c1_111__,
902*3b188dabSeric c11___1_,
903*3b188dabSeric c1____1_,
904*3b188dabSeric c1____1_,
905*3b188dabSeric c1____1_,
906*3b188dabSeric c1____1_ }, /* n */
907*3b188dabSeric
908*3b188dabSeric { c_______,
909*3b188dabSeric c_______,
910*3b188dabSeric c_______,
911*3b188dabSeric c_1111__,
912*3b188dabSeric c1____1_,
913*3b188dabSeric c1____1_,
914*3b188dabSeric c1____1_,
915*3b188dabSeric c1____1_,
916*3b188dabSeric c_1111__ }, /* o */
917*3b188dabSeric
918*3b188dabSeric { c1_111__,
919*3b188dabSeric c11___1_,
920*3b188dabSeric c1____1_,
921*3b188dabSeric c1____1_,
922*3b188dabSeric c11___1_,
923*3b188dabSeric c1_111__,
924*3b188dabSeric c1______,
925*3b188dabSeric c1______,
926*3b188dabSeric c1______ }, /* p */
927*3b188dabSeric
928*3b188dabSeric { c_111_1_,
929*3b188dabSeric c1___11_,
930*3b188dabSeric c1____1_,
931*3b188dabSeric c1____1_,
932*3b188dabSeric c1___11_,
933*3b188dabSeric c_111_1_,
934*3b188dabSeric c_____1_,
935*3b188dabSeric c_____1_,
936*3b188dabSeric c_____1_ }, /* q */
937*3b188dabSeric
938*3b188dabSeric { c_______,
939*3b188dabSeric c_______,
940*3b188dabSeric c_______,
941*3b188dabSeric c1_111__,
942*3b188dabSeric c11___1_,
943*3b188dabSeric c1______,
944*3b188dabSeric c1______,
945*3b188dabSeric c1______,
946*3b188dabSeric c1______ }, /* r */
947*3b188dabSeric
948*3b188dabSeric { c_______,
949*3b188dabSeric c_______,
950*3b188dabSeric c_______,
951*3b188dabSeric c_1111__,
952*3b188dabSeric c1____1_,
953*3b188dabSeric c_11____,
954*3b188dabSeric c___11__,
955*3b188dabSeric c1____1_,
956*3b188dabSeric c_1111__ }, /* s */
957*3b188dabSeric
958*3b188dabSeric { c_______,
959*3b188dabSeric c__1____,
960*3b188dabSeric c__1____,
961*3b188dabSeric c11111__,
962*3b188dabSeric c__1____,
963*3b188dabSeric c__1____,
964*3b188dabSeric c__1____,
965*3b188dabSeric c__1__1_,
966*3b188dabSeric c___11__ }, /* t */
967*3b188dabSeric
968*3b188dabSeric { c_______,
969*3b188dabSeric c_______,
970*3b188dabSeric c_______,
971*3b188dabSeric c1____1_,
972*3b188dabSeric c1____1_,
973*3b188dabSeric c1____1_,
974*3b188dabSeric c1____1_,
975*3b188dabSeric c1___11_,
976*3b188dabSeric c_111_1_ }, /* u */
977*3b188dabSeric
978*3b188dabSeric { c_______,
979*3b188dabSeric c_______,
980*3b188dabSeric c_______,
981*3b188dabSeric c1_____1,
982*3b188dabSeric c1_____1,
983*3b188dabSeric c1_____1,
984*3b188dabSeric c_1___1_,
985*3b188dabSeric c__1_1__,
986*3b188dabSeric c___1___ }, /* v */
987*3b188dabSeric
988*3b188dabSeric { c_______,
989*3b188dabSeric c_______,
990*3b188dabSeric c_______,
991*3b188dabSeric c1_____1,
992*3b188dabSeric c1__1__1,
993*3b188dabSeric c1__1__1,
994*3b188dabSeric c1__1__1,
995*3b188dabSeric c1__1__1,
996*3b188dabSeric c_11_11_ }, /* w */
997*3b188dabSeric
998*3b188dabSeric { c_______,
999*3b188dabSeric c_______,
1000*3b188dabSeric c_______,
1001*3b188dabSeric c1____1_,
1002*3b188dabSeric c_1__1__,
1003*3b188dabSeric c__11___,
1004*3b188dabSeric c__11___,
1005*3b188dabSeric c_1__1__,
1006*3b188dabSeric c1____1_ }, /* x */
1007*3b188dabSeric
1008*3b188dabSeric { c1____1_,
1009*3b188dabSeric c1____1_,
1010*3b188dabSeric c1____1_,
1011*3b188dabSeric c1____1_,
1012*3b188dabSeric c1___11_,
1013*3b188dabSeric c_111_1_,
1014*3b188dabSeric c_____1_,
1015*3b188dabSeric c1____1_,
1016*3b188dabSeric c_1111__ }, /* y */
1017*3b188dabSeric
1018*3b188dabSeric { c_______,
1019*3b188dabSeric c_______,
1020*3b188dabSeric c_______,
1021*3b188dabSeric c111111_,
1022*3b188dabSeric c____1__,
1023*3b188dabSeric c___1___,
1024*3b188dabSeric c__1____,
1025*3b188dabSeric c_1_____,
1026*3b188dabSeric c111111_ }, /* z */
1027*3b188dabSeric
1028*3b188dabSeric { c___11__,
1029*3b188dabSeric c__1____,
1030*3b188dabSeric c__1____,
1031*3b188dabSeric c__1____,
1032*3b188dabSeric c_1_____,
1033*3b188dabSeric c__1____,
1034*3b188dabSeric c__1____,
1035*3b188dabSeric c__1____,
1036*3b188dabSeric c___11__ }, /* { */
1037*3b188dabSeric
1038*3b188dabSeric { c___1___,
1039*3b188dabSeric c___1___,
1040*3b188dabSeric c___1___,
1041*3b188dabSeric c___1___,
1042*3b188dabSeric c___1___,
1043*3b188dabSeric c___1___,
1044*3b188dabSeric c___1___,
1045*3b188dabSeric c___1___,
1046*3b188dabSeric c___1___ }, /* | */
1047*3b188dabSeric
1048*3b188dabSeric { c__11___,
1049*3b188dabSeric c____1__,
1050*3b188dabSeric c____1__,
1051*3b188dabSeric c____1__,
1052*3b188dabSeric c_____1_,
1053*3b188dabSeric c____1__,
1054*3b188dabSeric c____1__,
1055*3b188dabSeric c____1__,
1056*3b188dabSeric c__11___ }, /* } */
1057*3b188dabSeric
1058*3b188dabSeric { c_11____,
1059*3b188dabSeric c1__1__1,
1060*3b188dabSeric c____11_,
1061*3b188dabSeric c_______,
1062*3b188dabSeric c_______,
1063*3b188dabSeric c_______,
1064*3b188dabSeric c_______,
1065*3b188dabSeric c_______,
1066*3b188dabSeric c_______ }, /* ~ */
1067*3b188dabSeric
1068*3b188dabSeric { c_1__1__,
1069*3b188dabSeric c1__1__1,
1070*3b188dabSeric c__1__1_,
1071*3b188dabSeric c_1__1__,
1072*3b188dabSeric c1__1__1,
1073*3b188dabSeric c__1__1_,
1074*3b188dabSeric c_1__1__,
1075*3b188dabSeric c1__1__1,
1076*3b188dabSeric c__1__1_ } /* rub-out */
1077*3b188dabSeric };
1078*3b188dabSeric
1079*3b188dabSeric
1080*3b188dabSeric /*
1081*3b188dabSeric * from printjob.c
1082*3b188dabSeric */
1083*3b188dabSeric
1084*3b188dabSeric #include <unistd.h>
1085*3b188dabSeric
1086*3b188dabSeric static char *
scnline(int key,char * p,int c)1087*3b188dabSeric scnline(int key, char *p, int c)
1088*3b188dabSeric {
1089*3b188dabSeric int scnwidth;
1090*3b188dabSeric
1091*3b188dabSeric for (scnwidth = WIDTH; --scnwidth;) {
1092*3b188dabSeric key <<= 1;
1093*3b188dabSeric *p++ = key & 0200 ? c : BACKGND;
1094*3b188dabSeric }
1095*3b188dabSeric return (p);
1096*3b188dabSeric }
1097*3b188dabSeric
1098*3b188dabSeric #define TRC(q) (((q)-' ')&0177)
1099*3b188dabSeric
1100*3b188dabSeric static int
dropit(int c)1101*3b188dabSeric dropit(int c)
1102*3b188dabSeric {
1103*3b188dabSeric switch(c) {
1104*3b188dabSeric
1105*3b188dabSeric case TRC('_'):
1106*3b188dabSeric case TRC(';'):
1107*3b188dabSeric case TRC(','):
1108*3b188dabSeric case TRC('g'):
1109*3b188dabSeric case TRC('j'):
1110*3b188dabSeric case TRC('p'):
1111*3b188dabSeric case TRC('q'):
1112*3b188dabSeric case TRC('y'):
1113*3b188dabSeric return (DROP);
1114*3b188dabSeric
1115*3b188dabSeric default:
1116*3b188dabSeric return (0);
1117*3b188dabSeric }
1118*3b188dabSeric }
1119*3b188dabSeric
1120*3b188dabSeric int
lp_banner(int scfd,char * scsp,int pw)1121*3b188dabSeric lp_banner(int scfd, char *scsp, int pw)
1122*3b188dabSeric {
1123*3b188dabSeric char *strp;
1124*3b188dabSeric int nchrs, j;
1125*3b188dabSeric char outbuf[LINELEN+1], *sp, c, cc;
1126*3b188dabSeric int d, scnhgt;
1127*3b188dabSeric
1128*3b188dabSeric for (scnhgt = 0; scnhgt++ < HEIGHT+DROP; ) {
1129*3b188dabSeric strp = &outbuf[0];
1130*3b188dabSeric sp = scsp;
1131*3b188dabSeric for (nchrs = 0; ; ) {
1132*3b188dabSeric d = dropit(c = TRC(cc = *sp++));
1133*3b188dabSeric if ((!d && scnhgt > HEIGHT) || (scnhgt <= DROP && d))
1134*3b188dabSeric for (j = WIDTH; --j;)
1135*3b188dabSeric *strp++ = BACKGND;
1136*3b188dabSeric else
1137*3b188dabSeric strp = scnline(scnkey[(int)c][scnhgt-1-d],
1138*3b188dabSeric strp, cc);
1139*3b188dabSeric if (*sp == '\0' || nchrs++ >= pw/(WIDTH+1)-1)
1140*3b188dabSeric break;
1141*3b188dabSeric *strp++ = BACKGND;
1142*3b188dabSeric *strp++ = BACKGND;
1143*3b188dabSeric }
1144*3b188dabSeric while (*--strp == BACKGND && strp >= outbuf)
1145*3b188dabSeric ;
1146*3b188dabSeric strp++;
1147*3b188dabSeric *strp++ = '\n';
1148*3b188dabSeric if (write(scfd, outbuf, strp-outbuf) == -1)
1149*3b188dabSeric return -1;
1150*3b188dabSeric }
1151*3b188dabSeric
1152*3b188dabSeric return 0;
1153*3b188dabSeric }
1154