Exemplo n.º 1
0
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 );
	}
}
Exemplo n.º 3
0
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 );
}