struct ppd_feature *ppd_feature( const char *feature, int len) { struct ppd_feature *pfe; char ppd_feature_main[ 256 ]; const char *end, *p; char *q; #ifndef SHOWPPD if ( ! ppd_inited ) { ppd_init(); } #endif /* SHOWPPD */ if (len > sizeof(ppd_feature_main) -1) return( NULL ); for ( end = feature + len, p = feature, q = ppd_feature_main; (p <= end) && (*p != '\n') && (*p != '\r'); p++, q++ ) { *q = *p; } if ( p > end ) { return( NULL ); } *q = '\0'; for ( pfe = ppd_features; pfe->pd_name; pfe++ ) { if ( (strcmp( pfe->pd_name, ppd_feature_main ) == 0) && pfe->pd_value ) { return( pfe ); } } return( NULL ); }
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 ); } }
struct ppd_font *ppd_font( char *font) { struct ppd_font *pfo; #ifndef SHOWPPD if ( ! ppd_inited ) { ppd_init(); } #endif /* SHOWPPD */ for ( pfo = ppd_fonts; pfo; pfo = pfo->pd_next ) { if ( strcmp( pfo->pd_font, font ) == 0 ) { return( pfo ); } } return( NULL ); }