1/***************************************************************************
2 * LPRng - An Extended Print Spooler System
3 *
4 * Copyright 1988-2003, Patrick Powell, San Diego, CA
5 *     papowell@lprng.com
6 * See LICENSE for conditions of use.
7 * $Id: lpr.h,v 1.1.1.1 2008/10/15 03:28:27 james26_jang Exp $
8 ***************************************************************************/
9
10
11
12#ifndef _LPR_1_
13#define _LPR_1_
14
15EXTERN char *Accntname_JOB; /* Accounting name: PLP 'R' control file option */
16EXTERN int Auth_JOB;        /* Use authentication */
17EXTERN int Binary_JOB;      /* Binary format: 'l' Format */
18EXTERN char *Bnrname_JOB;   /* Banner name: RFC 'L' option */
19EXTERN char *Classname_JOB; /* Class name:  RFC 'C' option */
20EXTERN int Copies_JOB;      /* Copies */
21EXTERN int Direct_JOB;      /* Connect and send to TCP/IP port */
22EXTERN int Format_JOB;      /* format for printing: lower case letter */
23EXTERN char *Font1_JOB;     /* Font information 1 */
24EXTERN char *Font2_JOB;     /* Font information 2 */
25EXTERN char *Font3_JOB;     /* Font information 3 */
26EXTERN char *Font4_JOB;     /* Font information 4 */
27EXTERN int Indent_JOB;      /* indent:      RFC 'I' option */
28EXTERN char *Jobname_JOB;   /* Job name:    RFC 'J' option */
29EXTERN int Lpr_zero_file_JOB;  /* LPR does file filtering and job flattening */
30EXTERN int Lpr_bounce_JOB;  /* LPR does file filtering and job flattening */
31EXTERN char *Mailname_JOB;  /* Mail name:   RFC 'M' option */
32EXTERN int No_header_JOB;   /* No header flag: no L option in control file */
33EXTERN int Priority_JOB;	/* Priority */
34EXTERN char *Printer_JOB;		/* Printer passed as option */
35EXTERN char *Prtitle_JOB;   /* Pr title:    RFC 'T' option */
36EXTERN int Pwidth_JOB;	    /* Width paper: RFC 'W' option */
37EXTERN int Removefiles_JOB;	    /* Remove files */
38EXTERN char *Username_JOB;	/* Specified with the -U option */
39EXTERN char *Zopts_JOB;     /* Z options */
40EXTERN char * User_filter_JOB; /* User specified filter for job files */
41
42extern struct jobwords Lpr_parms[]; /* parameters for LPR */
43EXTERN int LP_mode_JOB;		/* look like LP */
44EXTERN int Silent_JOB;			/* lp -s option */
45EXTERN int Job_number;
46
47/* PROTOTYPES */
48int main(int argc, char *argv[], char *envp[]);
49void Get_parms(int argc, char *argv[] );
50void prmsg( char **msg );
51void usage(void);
52int Make_job( struct job *job );
53void get_job_number( struct job *job );
54double Copy_STDIN( struct job *job );
55double Check_files( struct job *job );
56int Check_lpr_printable(char *file, int fd, struct stat *statb, int format );
57int is_exec( char *buf, int n);
58int is_arch(char *buf, int n);
59void Dienoarg(int option);
60void Check_int_dup (int option, int *value, char *arg, int maxvalue);
61void Check_str_dup(int option, char **value, char *arg, int maxlen );
62void Check_dup(int option, int *value);
63
64#endif
65