]> arthur.barton.de Git - netatalk.git/commitdiff
Add 'showppd' utility for showing how papd parses PPD files.
authormorgana <morgana>
Fri, 28 Jul 2000 03:45:25 +0000 (03:45 +0000)
committermorgana <morgana>
Fri, 28 Jul 2000 03:45:25 +0000 (03:45 +0000)
Showppd will display the list of Font and Feature queries which
papd will respond to.
Showppd is installed in BINDIR of installation.

etc/papd/Makefile
etc/papd/ppd.c
etc/papd/showppd.c [new file with mode: 0644]

index 648e2b458b453fe5bcf47e2ac8e045fe8bcb886d..64148d776d47b71e5010c3c06bfbf9c75322a6f4 100644 (file)
@@ -23,7 +23,7 @@ all :
            SBINDIR="${SBINDIR}" BINDIR="${BINDIR}" RESDIR="${RESDIR}" \
            ETCDIR="${ETCDIR}" LIBDIR="${LIBDIR}" INCDIR="${INCDIR}" \
            KRBLIBS="$${KRBLIBS}" KRBLIBDIRS="$${KRBLIBDIRS}" \
-           KRBINCPATH="$${KRBINCPATH}" KRBDEFS="$${KRBDEFS}" papd
+           KRBINCPATH="$${KRBINCPATH}" KRBDEFS="$${KRBDEFS}" papd showppd
 
 # UMICH stuff.  Don't ask, I'm not telling.
 CRAP=/afs/umich.edu/group/itd/software/packages
@@ -47,6 +47,9 @@ papd.abs: FRC
 
 FRC:
 
+showppd: showppd.c ppd.c
+       ${CC} ${CFLAGS} -DSHOWPPD -o showppd showppd.c ppd.c
+
 papd : ${OBJ} ../../libatalk/libatalk.a
        ${CC} ${CFLAGS} ${LDFLAGS} -o papd ${OBJ} ${LIBDIRS} ${LIBS}
 
@@ -57,10 +60,12 @@ main.o : main.c
 
 install : all
        ${INSTALL} -c papd ${SBINDIR}
+       ${INSTALL} -c showppd ${BINDIR}
 
 clean :
        rm -f a.out core* *.o *.bak *[Ee]rrs tags
        rm -f papd
+       rm -f showppd
 
 tags : ${SRC}
        cwd=`pwd`; \
index 783719feaf4eaecc1ef6d103a02532875cbc83e0..7131bbb09124b2eb274c348a05550e3d2a7af055 100644 (file)
@@ -39,31 +39,7 @@ struct ppdent {
     char       *pe_value;
 };
 
-#ifdef notdef
-main( ac, av )
-    int                ac;
-    char       **av;
-{
-    struct ppd_feature *pfe;
-    struct ppd_font    *pfo;
-
-    if ( ac != 2 ) {
-       fprintf( stderr, "Usage:\t%s ppdfile\n", av[ 0 ] );
-       exit( 1 );
-    }
-
-    read_ppd( av[ 1 ], 0 );
-    for ( pfo = ppd_fonts; pfo; pfo = pfo->pd_next ) {
-       printf( "Font: %s\n", pfo->pd_font );
-    }
-    for ( pfe = ppd_features; pfe->pd_name; pfe++ ) {
-       printf( "Feature: %s %s\n", pfe->pd_name, pfe->pd_value );
-    }
-
-    exit( 0 );
-}
-#endif notdef
-
+#ifndef SHOWPPD
 int ppd_inited = 0;
 
 ppd_init()
@@ -75,6 +51,7 @@ ppd_init()
 
     read_ppd( printer->p_ppdfile, 0 );
 }
+#endif SHOWPPD
 
     struct ppdent *
 getppdent( stream )
@@ -258,9 +235,11 @@ ppd_font( 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 ) {
@@ -279,9 +258,11 @@ ppd_feature( feature, len )
     char               main[ 256 ];
     char               *end, *p, *q;
 
+#ifndef SHOWPPD
     if ( ! ppd_inited ) {
        ppd_init();
     }
+#endif SHOWPPD
 
     for ( end = feature + len, p = feature, q = main;
            p <= end && *p != '\n' && *p != '\r'; p++, q++ ) {
diff --git a/etc/papd/showppd.c b/etc/papd/showppd.c
new file mode 100644 (file)
index 0000000..57fb793
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 1995 Regents of The University of Michigan.
+ * All Rights Reserved.  See COPYRIGHT.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/syslog.h>
+#include <sys/types.h>
+#include <sys/param.h>
+#include <sys/time.h>
+#include <netatalk/at.h>
+#include <atalk/atp.h>
+
+#include "ppd.h"
+
+extern struct ppd_font         *ppd_fonts;
+
+extern struct ppd_feature      ppd_features[];
+
+
+main( ac, av )
+    int                ac;
+    char       **av;
+{
+    struct ppd_feature *pfe;
+    struct ppd_font    *pfo;
+
+    if ( ac != 2 ) {
+       fprintf( stderr, "Usage:\t%s ppdfile\n", av[ 0 ] );
+       exit( 1 );
+    }
+
+    read_ppd( av[ 1 ], 0 );
+    for ( pfo = ppd_fonts; pfo; pfo = pfo->pd_next ) {
+       printf( "Font: %s\n", pfo->pd_font );
+    }
+    for ( pfe = ppd_features; pfe->pd_name; pfe++ ) {
+       printf( "Feature: %s %s\n", pfe->pd_name, pfe->pd_value );
+    }
+
+    exit( 0 );
+}