int cq_font_list(int port, struct Mypapfile *in,struct papfile *out) { char *start, *stop, *p; struct comment *comment = compeek(port); struct ppd_font *pfo; ppd_init(port); for (;;) { switch ( markline( &start, &stop, in )) { case 0 : // return( 0 ); //8/4/99 case -1 : return( CH_MORE ); } if(comgetflags(port) == 0) { comsetflags(port, 1 ); for ( pfo = ppd_fonts; pfo; pfo = pfo->pd_next ) { APPEND( out, "/", 1 ); APPEND( out, pfo->pd_font, strlen(pfo->pd_font)); APPEND( out, "\n", 1 ); } } else { if ( comcmp( start, stop, comment->c_end, 0 ) == 0 ) { APPEND( out, "*\n", 2 ); compop(port); consumetomark( in ); return( CH_DONE ); } } consumetomark( in ); } }
int cq_font(int port, struct Mypapfile *in,struct papfile *out) { char *start, *stop, *p; struct comment *comment = compeek(port); for (;;) { switch ( markline( &start, &stop, in )) { case 0 : // return( 0 ); //8/4/99 marked return(CH_ERROR );//In normal case cann't into this statement case -1 : return( CH_MORE ); } if(comgetflags(port) == 0) { comsetflags(port, 1 ); for ( p = start; p < stop; p++ ) { if (*p == ':' ) break; } p++; cq_font_answer(port, p, stop, out ); } else { if ( comgetflags(port) == 1 && comcmp( start, stop, COMM_CONT, 0 ) == 0 ) { // continuation for ( p = start; p < stop; p++ ) { if ( *p == ' ' ) break; } p++; cq_font_answer(port, p, stop, out ); } else { comsetflags(port, 2 ); if ( comcmp( start, stop, comment->c_end, 0 ) == 0 ) { APPEND( out, "*\n", 2 ); compop(port); consumetomark( in ); return( CH_DONE ); } } } consumetomark( in ); } }
int cq_query(int port, struct Mypapfile *in,struct papfile *out) { char *start, *stop, *p; struct comment *c, *comment = compeek(port); struct ppd_feature *pfe; for (;;) { switch ( markline( &start, &stop, in )) { case 0 : // return( 0 ); //8/4/99 return(CH_MORE ); //In normal case cann't into this statement case -1 : return( CH_MORE ); } if ( comgetflags(port) == 0 ) { comsetflags(port, 1 ); // parse for query for ( p = start; p < stop; p++ ) { if ( *p == ':' ) { break; } } p++; while ( *p == ' ' ) { p++; } if(memcmp(p,"ADOSpooler",10) != NULL || (p[10] != '\r' && p[10] != '\n')) { if ( comswitch(port, queries, cq_default ) < 0 ) { #ifdef PC_OUTPUT printf("cq_feature: can't find default!\n" ); #endif PC_OUTPUT } return( CH_DONE ); } APPEND( out, "0\n", 2 ); } else { if ( comcmp( start, stop, comment->c_end, 0 ) == 0 ) { compop(port); consumetomark( in ); return( CH_DONE ); } } consumetomark( in ); }//for (;;)..... }
int find_ini_field(TSTR_LIST ls,const char *name) { const char *a; char *b; int i,cnt=str_count(ls); for (i=0;i<cnt;i++) if (ls[i]!=NULL) { a=name; b=ls[i]; while (*b==32) b++; if (*b==';') continue; if (comcmp(b,a)) return i; } return -1; }
int cq_default(int port, struct Mypapfile *in,struct papfile *out) { char *start, *stop, *p; struct comment *comment = compeek(port); for (;;) { switch ( markline( &start, &stop, in )) { case 0 : // return( 0 ); //8/4/99 marked return(CH_MORE ); //In normal case cann't into this statement case -1 : return( CH_MORE ); } if ( comgetflags(port) == 0 ) { // started if ( comment->c_end ) { comsetflags(port, 1 ); } else { compop(port); consumetomark( in ); return( CH_DONE ); } } else { // return default if (comcmp( start, stop, comment->c_end, 0 ) == 0 ) { for ( p = start; p < stop; p++ ) { if ( *p == ':' ) break; } p++; while ( *p == ' ' ) { p++; } *stop = '\n'; APPEND( out, p, stop - p + 1 ); compop(port); consumetomark( in ); return( CH_DONE ); } } consumetomark( in ); } }