File: stdconv.xh

package info (click to toggle)
magicfilter 1.2-63
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 1,280 kB
  • ctags: 142
  • sloc: ansic: 1,292; makefile: 289; perl: 220; sh: 193
file content (342 lines) | stat: -rw-r--r-- 9,470 bytes parent folder | download | duplicates (6)
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
/*
 * Generic conversions for magicfilters
 */
# PostScript
%ifdef HANDLE_PS
%define PS_OK 1
%define PSACT	pipe
%define FPSACT	fpipe
%else
%ifdef NATIVE_PS
%define HANDLE_PS	text
%define PS_OK 1
%define PSACT	filter
%define FPSACT	ffilter
%else
%define HANDLE_PS	reject	Cannot print PostScript on this printer.
%endif
%endif
0	%!		HANDLE_PS
0	\004%!		HANDLE_PS

# Wind/U postscript driver. This one creates broken postscript, so we have to
# put in a special case to convert it to PCL first
65     "%%Creator: Wind/U"     HANDLE_PS

# PDF
/* PDF */
%ifdef HANDLE_PDF
%define HANDLE_PDF	fpipe PATH_PDFTOPS $FILE -
%else
%define HANDLE_PDF	reject	Cannot print PDF on this printer.
%endif
0	%PDF		HANDLE_PDF

/* Check out a couple of common data types; if we can't handle them, see
   if we can find something that can; also define _OK entries and appropriate
   rejects. */
/* ASCII/Latin1 text */
%if !defined(HANDLE_TEXT) && defined(PS_OK)
%if defined(HAVE_NENSCRIPT)
%define	HANDLE_TEXT	pipe	PATH_NENSCRIPT -B -p-
%define LATIN1_OK 1
%elif defined(HAVE_A2X)
%define HANDLE_TEXT	pipe	PATH_A2X -p -dps -man
%define LATIN1_OK 1
%elif defined(HAVE_A2PS)
%define HANDLE_TEXT	pipe	PATH_A2PS -p -nh -nn -f12 -b
%define LATIN1_OK 1
%endif
%endif
%ifdef HANDLE_TEXT
%define ASCII_OK 1
%else
%define HANDLE_TEXT	reject	Cannot print text files on this printer.
%endif
/* HP PCL */
%ifdef HANDLE_PCL5E
%define PCL5E_OK 1
%define PCL_OK 1
%ifndef HANDLE_PCL
%define HANDLE_PCL HANDLE_PCL5E
%endif
%else
%define HANDLE_PCL5E	reject	Cannot print PCL5E files on this printer.
%ifdef HANDLE_PCL
%define PCL_OK 1
%else
%define HANDLE_PCL	reject	Cannot print PCL files on this printer.
%endif
%endif
/* HP PJL */
%ifdef HANDLE_PJL
%define PJL_OK 1
%else
%define HANDLE_PJL	reject	Cannot print PJL files on this printer.
%endif
/* TeX DVI */
%ifndef HANDLE_DVI
%if defined(HAVE_DVIPS) && defined(PS_OK)
%ifdef NATIVE_PS
%ifdef XDPI
%define HANDLE_DVI	ffilter	PATH_DVIPS -X XDPI -Y YDPI -R -q -F -f
%else
%define HANDLE_DVI	ffilter	PATH_DVIPS -D DPI -R -q -F -f
%endif
%else
%ifdef XDPI
%define HANDLE_DVI	fpipe	PATH_DVIPS -X XDPI -Y YDPI -R -q -f
%else
%define HANDLE_DVI	fpipe	PATH_DVIPS -D DPI -R -q -f
%endif
%endif
%endif
%endif
%ifdef HANDLE_DVI
%define DVI_OK 1
%else
%define HANDLE_DVI	reject	Cannot print DVI files on this printer.
%endif
/* troff */
%ifndef HANDLE_TROFF
%ifdef HAVE_GROG
%if defined(HAVE_GROLJ4) && defined(PCL5E_OK)
%define HANDLE_TROFF	ffilter	`PATH_GROG -Tlj4 $FILE`
%elif defined(HAVE_GROPS) && defined(PS_OK)
%define HANDLE_TROFF	FPSACT	`PATH_GROG -Tps $FILE`
%elif defined(HAVE_GRODVI) && defined(DVI_OK)
%define HANDLE_TROFF	fpipe	`PATH_GROG -Tdvi $FILE`
%elif defined(HAVE_GROTTY) && defined(LATIN1_OK)
%define HANDLE_TROFF	fpipe	`PATH_GROG -Tlatin1 $FILE`
%elif defined(HAVE_GROTTY) && defined(ASCII_OK)
%define HANDLE_TROFF	fpipe	`PATH_GROG -Tascii $FILE`
%endif
%elif defined(HAVE_GROFF)
/* We don't have grog -- use options seemingly appropriate for man pages */
%if defined(HAVE_GROLJ4) && defined(PCL5E_OK)
%define HANDLE_TROFF	filter	PATH_GROFF -Tlj4 -t -mandoc
%elif defined(HAVE_GROPS) && defined(PS_OK)
%define HANDLE_TROFF	PSACT	PATH_GROFF -Tps -t -mandoc
%elif defined(HAVE_GRODVI) && defined(DVI_OK)
%define HANDLE_TROFF	pipe	PATH_GROFF -Tdvi -t -mandoc
%elif defined(HAVE_GROTTY) && defined(LATIN1_OK)
%define HANDLE_TROFF	pipe	PATH_GROFF -Tlatin1 -t -mandoc
%elif defined(HAVE_GROTTY) && defined(ASCII_OK)
%define HANDLE_TROFF	pipe	PATH_GROFF -Tascii -t -mandoc
%endif
%endif
%endif
%ifdef HANDLE_TROFF
%define TROFF_OK 1
%else
%define HANDLE_TROFF	reject	Cannot print troff files on this printer.
%endif

%ifdef HAVE_BZIP2
%define BZCAT PATH_BZIP2 -cdq
%endif

# TeX DVI
0	\367\002	HANDLE_DVI

# compress'd data
%ifdef ZCAT
0	\037\235	pipe	ZCAT
%else
0	\037\235	reject	Cannot print compressed files on this printer.
%endif

# packed, gzipped, frozen and SCO LZH data
%ifdef GZCAT
0	\037\036	pipe	GZCAT
0	\037\213	pipe	GZCAT
0	\037\236	pipe	GZCAT
0	\037\240	pipe	GZCAT
%else
0	\037\036	reject	Cannot print packed files on this printer.
0	\037\213	reject	Cannot print gzipped files on this printer.
0	\037\236	reject	Cannot print frozen files on this printer.
0	\037\240	reject	Cannot print SCO LZH files on this printer.
%endif

%ifdef BZCAT
0	BZh		pipe	BZCAT
%else
0	BZh		reject	Cannot print bzip files on this printer.
%endif

# troff documents
0	.\?\?\040	HANDLE_TROFF
0       .\?\?\012       HANDLE_TROFF
0	.\\\"		HANDLE_TROFF
0	'\\\"		HANDLE_TROFF
0	'.\\\"		HANDLE_TROFF
0	\\\"		HANDLE_TROFF

# ditroff
%if defined(HAVE_GROPS) && defined(PS_OK)
0	"x T ps"	PSACT	PATH_GROPS
%else
0	"x T ps"	reject	Cannot print PostScript ditroff files.
%endif
%if defined(HAVE_GRODVI) && defined(DVI_OK)
0	"x T dvi"	pipe	PATH_GRODVI
%else
0	"x T dvi"	reject	Cannot print DVI ditroff files.
%endif
%if defined(HAVE_GROTTY) && defined(ASCII_OK)
0	"x T ascii"	pipe	PATH_GROTTY
0	"x T latin1"	pipe	PATH_GROTTY
%else
0	"x T ascii"	reject	Cannot print ASCII ditroff files.
0	"x T latin1"	reject	Cannot print Latin-1 ditroff files.
%endif
%if defined(HAVE_GROLJ4) && defined(PCL5E_OK)
0	"x T lj4"	filter	PATH_GROLJ4
%else
0	"x T lj4"	reject	Cannot print LaserJet 4 ditroff files.
%endif

# Portable bit-, grey- and pixmaps
%ifdef HANDLE_PNM
%define PNM_OK 1
%else
%if defined(HAVE_PNMTOPS) && defined(PS_OK)
%define HANDLE_PNM	PSACT	PATH_PNMTOPS -scale 1000 -dpi DPI 2>/dev/null
%define PNM_OK 1
%else
%define	HANDLE_PNM	reject	Cannot print PBM/PGM/PPM files on this printer.
%endif
%endif
0	P1\n		HANDLE_PNM
0	P2\n		HANDLE_PNM
0	P3\n		HANDLE_PNM
0	P4\n		HANDLE_PNM
0	P5\n		HANDLE_PNM
0	P6\n		HANDLE_PNM

# PNG - Portable network graphics
%if defined(HAVE_PNGTOPNM) && defined(PNM_OK)
0	\x89PNG		pipe	PATH_PNGTOPNM
%else
0	\x89PNG		reject	Cannot print PNG images on this printer.
%endif

# HP Printer Control Language (PCL) -- assume start with reset code
0	\033E\033	HANDLE_PCL

# HP Printer Job Language (PJL)
0	\033%-12345X	HANDLE_PJL
0	"@PJL "		HANDLE_PJL
0	@PJL\t		HANDLE_PJL
0	@PJL\r		HANDLE_PJL
0	@PJL\n		HANDLE_PJL

# GIF files
%if defined(HAVE_GIFTOPPM) && defined(PNM_OK)
0	GIF87a		pipe	PATH_GIFTOPPM 2>/dev/null
0	GIF89a		pipe	PATH_GIFTOPPM 2>/dev/null
%else
0	GIF87a		reject	Cannot print GIF images on this printer.
0	GIF89a		reject	Cannot print GIF images on this printer.
%endif

# JFIF (JPEG) files
%if defined(HAVE_DJPEG) && defined(PNM_OK)
0	\377\330\377\340\?\?JFIF\0	pipe	PATH_DJPEG -pnm
# Bug 40599
0	\377\330\377\341\?\?Exif\0	pipe	PATH_DJPEG -pnm
6       JFIF                            pipe    PATH_DJPEG -pnm
%else
0	\377\330\377\340\?\?JFIF\0	reject	Cannot print JPEG images \
	on this printer.
0	\377\330\377\341\?\?Exif\0	reject	Cannot print JPEG images \
	on this printer.
6       JFIF                            reject	Cannot print JPEG images \
	on this printer.
%endif

# TIFF files (the last two bytes of the "magic" is really a version number;
# but the magic is really lame and as far as I have understood the version
# number has never changed and never will, so we include it.)
%if defined(HAVE_TIFFTOPS)
0	MM\0\x2a	fpipe   PATH_TIFFTOPS -a $FILE
0	II\x2a\0	fpipe   PATH_TIFFTOPS -a $FILE
%else
%if defined(HAVE_TIFFTOPNM) && defined(PNM_OK)
0	MM\0\x2a	pipe	PATH_TIFFTOPNM 2>/dev/null
0	II\x2a\0	pipe	PATH_TIFFTOPNM 2>/dev/null
%else
0	MM\0\x2a	pipe	Cannot print TIFF images on this printer.
0	II\x2a\0	pipe	Cannot print TIFF images on this printer.
%endif
%endif

# BMP files (even lousier magic -- Microsoft strikes again!)
%if defined(HAVE_BMPTOPPM) && defined(PNM_OK)
0	BM\?\?\?\?\?\?\?\?\?\?\?\?\x0c	pipe	\
	PATH_BMPTOPPM 2>/dev/null
0	BM\?\?\?\?\?\?\?\?\?\?\?\?\x40	pipe	\
	PATH_BMPTOPPM 2>/dev/null
0	BM\?\?\?\?\?\?\?\?\?\?\?\?\x28	pipe	\
	PATH_BMPTOPPM 2>/dev/null
%else
0	BM\?\?\?\?\?\?\?\?\?\?\?\?\x0c	reject	\
	Cannot print BMP files on this printer.
0	BM\?\?\?\?\?\?\?\?\?\?\?\?\x40	reject	\
	Cannot print BMP files on this printer.
0	BM\?\?\?\?\?\?\?\?\?\?\?\?\x28	reject	\
	Cannot print BMP files on this printer.
%endif

# Garbage delivered from Windows via Samba
# (donated by Andree Leidenfrost <leidenfrost@dkrz.de>)
# 300     \033\052\157    cat
# later changed to
# (Bug report #22866: magicfilter: Incorrect magic for Win95/Samba print jobs)
0       \000\000\000\000\000   cat

# Sun rasterfiles
%if defined(HAVE_RASTTOPNM) && defined(PNM_OK)
0	\x59\xa6\x6a\x95 pipe	PATH_RASTTOPNM 2>/dev/null
%else
0	\x59\xa6\x6a\x95 reject	Cannot print Sun rasterfiles on this printer.
%endif

# SGI Imagelib (IRIS RGB) files
%ifdef IS_COLOR
%define SGITOPS_OPT	$FILE -cmyk
%else
%define	SGITOPS_OPT	$FILE
%endif
%if defined(HAVE_SGITOPNM) && defined(PNM_OK)
0	\x1\xda		pipe	PATH_SGITOPNM 2>/dev/null
0	\xda\x1		pipe	PATH_SGITOPNM 2>/dev/null
%elif defined(HAVE_TOPS) && defined(sgi) && defined(PS_OK)
0	\x1\xda		FPSACT	PATH_TOPS SGITOPS_OPT
0	\xda\x1		FPSACT	PATH_TOPS SGITOPS_OPT
%elif defined(HAVE_SGITOPS) && defined(PS_OK)
0	\x1\xda		FPSACT	PATH_SGITOPS SGITOPS_OPT
0	\xda\x1		FPSACT	PATH_SGITOPS SGITOPS_OPT
%else
0	\x1\xda		reject	Cannot print SGI RGB files on this printer.
0	\xda\x1		reject	Cannot print SGI RGB files on this printer.
%endif

# FIG files; reported by Steven P. Hill <sph@uscbu.ih.att.com>
%if defined(HAVE_FIG2DEV) && defined(PS_OK)
0	#FIG		pipe	PATH_FIG2DEV -Lps -P -l dummy
%else
0	#FIG		reject	Cannot print FIG files on this printer.
%endif

%include <stdrejects.mh>

%ifdef TROFF_OK
%if 0
# optimistic troff magic
0	.		HANDLE_TROFF
%endif
# wacko troff magic
0	'''		HANDLE_TROFF
%endif