summaryrefslogtreecommitdiff
path: root/usr/src/cmd/lp/lib/papi/ppd.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/cmd/lp/lib/papi/ppd.c')
-rw-r--r--usr/src/cmd/lp/lib/papi/ppd.c164
1 files changed, 0 insertions, 164 deletions
diff --git a/usr/src/cmd/lp/lib/papi/ppd.c b/usr/src/cmd/lp/lib/papi/ppd.c
deleted file mode 100644
index 5facf902be..0000000000
--- a/usr/src/cmd/lp/lib/papi/ppd.c
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#pragma ident "%Z%%M% %I% %E% SMI"
-
-/*
- * This file contains an extremely rudimentary implementation of PPD file
- * parsing support. The parsing done here converts the contents of a PPD
- * file into a set of PAPI attributes that applications can use to build
- * print panels.
- */
-
-#include <stdio.h>
-#include <ctype.h>
-#include <string.h>
-#include <papi.h>
-
-static void
-process_line(char *line, char **key, char **value, char **comment)
-{
- char *ptr, *ptr2;
-
- *key = &line[1];
- *value = NULL;
- *comment = NULL;
-
- if ((ptr = strchr(line, ':')) == NULL)
- return;
-
- /*
- * line is in the form:
- * *key: value/comment
- * or
- * *key value/comment: data
- */
- *ptr++ = NULL;
- while (isspace(*ptr) != 0)
- ptr++;
-
- if ((ptr2 = strchr(line, ' ')) != NULL) {
- ptr = ptr2;
- /*
- * line is in the form:
- * *key value/comment: data
- */
- *ptr++ = NULL;
- while (*ptr == ' ')
- ptr++;
- }
-
- if (*ptr == '*')
- ptr++;
-
- *value = ptr;
-
- if ((ptr = strchr(ptr, '/')) != NULL) {
- *ptr++ = NULL;
- *comment = ptr;
- }
-}
-
-papi_status_t
-PPDFileToAttributesList(papi_attribute_t ***attributes, char *filename)
-{
- papi_status_t status = PAPI_OK;
- FILE *fp;
- char line[256];
- char capability[256];
- char def[256];
- char supported[256];
- char *current_group_name = NULL;
-
- int ui = 0;
-
- if ((fp = fopen(filename, "r")) == NULL)
- return (PAPI_NOT_POSSIBLE);
-
- while ((status == PAPI_OK) &&
- (fgets(line, sizeof (line), fp) != NULL)) {
- char *key = NULL, *value = NULL, *text = NULL;
-
- /* we want *key...: "value" */
- if (line[0] != '*')
- continue;
-
- if (strchr(line, ':') == NULL)
- continue;
-
- if ((text = strrchr(line, '\n')) != NULL)
- *text = NULL;
-
- process_line(line, &key, &value, &text);
-
- if ((strcasecmp(key, "PageSize") == 0) ||
- (strcasecmp(key, "InputSlot") == 0))
- key = "media";
-
- if (strcasecmp(key, "OpenGroup") == 0) {
- if (value == NULL)
- value = "unknown";
- current_group_name = strdup(value);
- } else if (strcasecmp(key, "OpenUI") == 0) {
- if ((strcasecmp(value, "PageSize") == 0) ||
- (strcasecmp(value, "InputSlot") == 0))
- value = "media";
- snprintf(capability, sizeof (capability), "%s", value);
- snprintf(def, sizeof (def),
- "%s-default", value);
- snprintf(supported, sizeof (supported),
- "%s-supported", value);
- ui = 1;
- } else if (strcasecmp(key, "CloseGroup") == 0) {
- /* do nothing */
- } else if (strcasecmp(key, "CloseUI") == 0) {
- ui = 0;
- /* do nothing */
- } else if (strcasecmp(key, "Manufacturer") == 0) {
- status = papiAttributeListAddString(attributes,
- PAPI_ATTR_EXCL,
- "printer-make", value);
- } else if (strcasecmp(key, "ModelName") == 0) {
- status = papiAttributeListAddString(attributes,
- PAPI_ATTR_EXCL,
- "printer-model", value);
- } else if (strcasecmp(key, "ShortNickName") == 0) {
- status = papiAttributeListAddString(attributes,
- PAPI_ATTR_EXCL,
- "printer-make-and-model", value);
- } else if ((strncasecmp(key, "Default", 7) == 0) && ui) {
- status = papiAttributeListAddString(attributes,
- PAPI_ATTR_EXCL,
- def, value);
- } else if ((strcasecmp(key, capability) == 0) && ui) {
- status = papiAttributeListAddString(attributes,
- PAPI_ATTR_APPEND,
- supported, value);
- }
- }
- fclose(fp);
-
- return (status);
-}