2 * Copyright (c) 1990,1994 Regents of The University of Michigan.
3 * All Rights Reserved. See COPYRIGHT.
6 #include <sys/syslog.h>
14 markline( pf, start, linelength, crlflength )
16 int *linelength, *crlflength;
21 if ( pf->pf_datalen == 0 && ( pf->pf_state & PF_EOF )) {
28 for ( *linelength=0; *linelength < pf->pf_datalen; (*linelength)++) {
29 if (pf->pf_data[*linelength] == '\n' ||
30 pf->pf_data[*linelength] == '\r') {
35 if ( *linelength >= pf->pf_datalen ) {
36 if ( pf->pf_state & PF_EOF ) {
37 append( pf, "\n", 1 );
38 } else if (*linelength < 1024) {
43 p = pf->pf_data + *linelength;
46 while(*crlflength < pf->pf_datalen-*linelength &&
47 (p[*crlflength]=='\r' || p[*crlflength]=='\n')) {
54 morespace( pf, data, len )
62 if ( pf->pf_data != pf->pf_buf ) { /* pull up */
63 bcopy( pf->pf_data, pf->pf_buf, pf->pf_datalen);
64 pf->pf_data = pf->pf_buf;
67 if ( pf->pf_datalen + len > pf->pf_bufsize ) { /* make more space */
68 nsize = (( pf->pf_bufsize + len ) / PF_MORESPACE +
69 (( pf->pf_bufsize + len ) % PF_MORESPACE != 0 )) * PF_MORESPACE;
71 if (( nbuf = (char *)realloc( pf->pf_buf, nsize )) == 0 ) {
75 if (( nbuf = (char *)malloc( nsize )) == 0 ) {
79 pf->pf_bufsize = nsize;
80 pf->pf_data = nbuf + ( pf->pf_data - pf->pf_buf );
84 bcopy( data, pf->pf_data + pf->pf_datalen, len );
85 pf->pf_datalen += len;
94 if ((pf->pf_data + pf->pf_datalen + len) >
95 (pf->pf_buf + pf->pf_bufsize)) {
96 morespace(pf, data, len);
98 bcopy(data, pf->pf_data + pf->pf_datalen, len);
99 pf->pf_datalen += len;
104 spoolerror( out, str )
108 char *pserr1 = "%%[ Error: ";
109 char *pserr2 = " ]%%\n";
112 str = "Spooler error.";
115 append( out, pserr1, strlen( pserr1 ));
116 append( out, str, strlen( str ));
117 append( out, pserr2, strlen( pserr2 ));