]> arthur.barton.de Git - netatalk.git/blob - etc/papd/headers.c
Add 'showppd' utility for showing how papd parses PPD files.
[netatalk.git] / etc / papd / headers.c
1 /*
2  * Copyright (c) 1990,1994 Regents of The University of Michigan.
3  * All Rights Reserved.  See COPYRIGHT.
4  */
5
6 #include <sys/syslog.h>
7 #include <sys/param.h>
8 #include <stdio.h>
9
10 #include "file.h"
11 #include "comment.h"
12
13 ch_title( in, out )
14     struct papfile      *in, *out;
15 {
16     char                *start, *stop, *p, *q, c;
17     struct comment      *comment = compeek();
18
19     switch ( markline( &start, &stop, in )) {
20     case 0 :
21         return( 0 );
22
23     case -1 :
24         return( CH_MORE );
25     }
26
27     for ( p = start; p < stop; p++ ) {
28         if ( *p == ':' ) {
29             break;
30         }
31     }
32
33     for ( ; p < stop; p++ ) {
34         if ( *p == '(' ) {
35             break;
36         }
37     }
38
39     for ( q = p; q < stop; q++ ) {
40         if ( *q == ')' ) {
41             break;
42         }
43     }
44
45     if ( q < stop && p < stop ) {
46         p++;
47         c = *q;
48         *q = '\0';
49         lp_job( p );
50         *q = c;
51     }
52
53     *stop = '\n';
54     lp_write( start, stop - start + 1 );
55     compop();
56     consumetomark( start, stop, in );
57     return( CH_DONE );
58 }
59
60 /*
61  * "Header" comments.
62  */
63 struct comment  headers[] = {
64     { "%%Title:",                       0,              ch_title,       0 },
65     { 0 },
66 };