diff options
Diffstat (limited to 'usr/src/cmd/print/bsd-sysv-commands/lpr.c')
| -rw-r--r-- | usr/src/cmd/print/bsd-sysv-commands/lpr.c | 276 | 
1 files changed, 0 insertions, 276 deletions
| diff --git a/usr/src/cmd/print/bsd-sysv-commands/lpr.c b/usr/src/cmd/print/bsd-sysv-commands/lpr.c deleted file mode 100644 index 547e0df36f..0000000000 --- a/usr/src/cmd/print/bsd-sysv-commands/lpr.c +++ /dev/null @@ -1,276 +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 2008 Sun Microsystems, Inc.  All rights reserved. - * Use is subject to license terms. - * - */ - -/* $Id: lpr.c 146 2006-03-24 00:26:54Z njacobs $ */ - -#pragma ident	"%Z%%M%	%I%	%E% SMI" - -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include <string.h> -#include <locale.h> -#include <libintl.h> -#include <papi.h> -#include "common.h" - -#ifdef HAVE_LIBMAGIC	/* for mimetype auto-detection */ -#include <magic.h> -#endif /* HAVE_LIBMAGIC */ - -static void -usage(char *program) -{ -	char *name; - -	if ((name = strrchr(program, '/')) == NULL) -		name = program; -	else -		name++; - -	fprintf(stdout, -		gettext("Usage: %s [-P printer] [-# copies] [-C class] " -				"[-J job] [-T title] " -				"[-p [-i indent] [-w width]] " -				"[-1|-2|-3|-4 font] [-m] [-h] [-s] " -				"[-filter_option] [file ..]\n"), name); -	exit(1); -} - -int -main(int ac, char *av[]) -{ -	papi_status_t status; -	papi_service_t svc = NULL; -	papi_attribute_t **list = NULL; -	papi_job_t job = NULL; -	int exit_code = 0; -	char *printer = NULL; -	char prefetch[3]; -	int prefetch_len = sizeof (prefetch); -	papi_encryption_t encryption = PAPI_ENCRYPT_NEVER; -	int dump = 0; -	int validate = 0; -	int remove = 0; -	int copy = 1;	/* default is to copy the data */ -	char *document_format = "text/plain"; -	int c; - -	(void) setlocale(LC_ALL, ""); -	(void) textdomain("SUNW_OST_OSCMD"); - -	while ((c = getopt(ac, av, -			"EP:#:C:DVJ:T:w:i:hplrstdgvcfmn1:2:3:4:")) != EOF) -		switch (c) { -		case 'E': -			encryption = PAPI_ENCRYPT_REQUIRED; -			break; -		case 'P': -			printer = optarg; -			break; -		case '#': -			papiAttributeListAddInteger(&list, PAPI_ATTR_EXCL, -					"copies", atoi(optarg)); -			break; -		case 'C': -			papiAttributeListAddString(&list, PAPI_ATTR_EXCL, -					"rfc-1179-class", optarg); -			break; -		case 'D': -			dump = 1; -			break; -		case 'J': -			papiAttributeListAddString(&list, PAPI_ATTR_EXCL, -					"job-name", optarg); -			break; -		case 'T': -			papiAttributeListAddString(&list, PAPI_ATTR_EXCL, -					"pr-title", optarg); -			break; -		case 'p': -			papiAttributeListAddString(&list, PAPI_ATTR_EXCL, -				"document-format", "application/x-pr"); -			papiAttributeListAddBoolean(&list, PAPI_ATTR_EXCL, -					"pr-filter", 1); -			break; -		case 'i': -			papiAttributeListAddInteger(&list, PAPI_ATTR_EXCL, -					"pr-indent", atoi(optarg)); -			break; -		case 'w': -			papiAttributeListAddInteger(&list, PAPI_ATTR_EXCL, -					"pr-width", atoi(optarg)); -			break; -		case 'h': -			papiAttributeListAddString(&list, PAPI_ATTR_EXCL, -					"job-sheets", "none"); -			break; -		case 'l': -			papiAttributeListAddString(&list, PAPI_ATTR_EXCL, -				"document-format", "application/octet-stream"); -			break; -		case 'o': -			papiAttributeListAddString(&list, PAPI_ATTR_EXCL, -				"document-format", "application/postscript"); -			break; -		case 'c': -			papiAttributeListAddString(&list, PAPI_ATTR_EXCL, -				"document-format", "application/x-cif"); -			break; -		case 'd': -			papiAttributeListAddString(&list, PAPI_ATTR_EXCL, -				"document-format", "application/x-dvi"); -			break; -		case 'f': -			papiAttributeListAddString(&list, PAPI_ATTR_EXCL, -				"document-format", "application/x-fortran"); -			break; -		case 'g': -			papiAttributeListAddString(&list, PAPI_ATTR_EXCL, -				"document-format", "application/x-plot"); -			break; -		case 'n': -			papiAttributeListAddString(&list, PAPI_ATTR_EXCL, -				"document-format", "application/x-ditroff"); -			break; -		case 't': -			papiAttributeListAddString(&list, PAPI_ATTR_EXCL, -				"document-format", "application/x-troff"); -			break; -		case 'v': -			papiAttributeListAddString(&list, PAPI_ATTR_EXCL, -				"document-format", "application/x-raster"); -			break; -		case 'm': -			papiAttributeListAddBoolean(&list, PAPI_ATTR_EXCL, -				"rfc-1179-mail", 1); -			break; -		case 'r': -			remove = 1; -			break; -		case 's': -			copy = 0; -			break; -		case 'V':	/* validate */ -			validate = 1; -			break; -		case '1': -			papiAttributeListAddString(&list, PAPI_ATTR_EXCL, -				"rfc-1179-font-r", optarg); -			break; -		case '2': -			papiAttributeListAddString(&list, PAPI_ATTR_EXCL, -				"rfc-1179-font-i", optarg); -			break; -		case '3': -			papiAttributeListAddString(&list, PAPI_ATTR_EXCL, -				"rfc-1179-font-b", optarg); -			break; -		case '4': -			papiAttributeListAddString(&list, PAPI_ATTR_EXCL, -				"rfc-1179-font-s", optarg); -			break; -		default: -			usage(av[0]); -		} - -	if ((printer == NULL) && -	    ((printer = getenv("PRINTER")) == NULL) && -	    ((printer = getenv("LPDEST")) == NULL)) -		printer = DEFAULT_DEST; - -	if (((optind + 1) == ac) && (strcmp(av[optind], "-") == 0)) -		optind = ac; - -	if (optind != ac) { -		/* get the mime type of the file data */ -#ifdef MAGIC_MIME -		magic_t ms; - -		if ((ms = magic_open(MAGIC_MIME)) != NULL) { -			document_format = magic_file(ms, av[optind]); -			magic_close(ms); -		} -#else -		if (is_postscript(av[optind]) == 1) -			document_format = "application/postscript"; -#endif -	} else { -		if (is_postscript_stream(0, prefetch, &prefetch_len) == 1) -			document_format = "application/postscript"; -	} - -	papiAttributeListAddInteger(&list, PAPI_ATTR_EXCL, "copies", 1); -	papiAttributeListAddString(&list, PAPI_ATTR_EXCL, -				"document-format", document_format); -	papiAttributeListAddString(&list, PAPI_ATTR_EXCL, -				"job-sheets", "standard"); - -	status = papiServiceCreate(&svc, printer, NULL, NULL, cli_auth_callback, -					encryption, NULL); -	if (status != PAPI_OK) { -		fprintf(stderr, gettext( -			"Failed to contact service for %s: %s\n"), printer, -			verbose_papi_message(svc, status)); -		exit(1); -	} - -	if (validate == 1)	/* validate the request can be processed */ -		status = papiJobValidate(svc, printer, list, -					NULL, &av[optind], &job); -	else if (optind == ac)	/* no file list, use stdin */ -		status = jobSubmitSTDIN(svc, printer, prefetch, prefetch_len, -					list, &job); -	else if (copy == 0)	/* reference the files in the job, default */ -		status = papiJobSubmitByReference(svc, printer, list, -					NULL, &av[optind], &job); -	else			/* copy the files before return, -c */ -		status = papiJobSubmit(svc, printer, list, -					NULL, &av[optind], &job); - -	papiAttributeListFree(list); - -	if (status != PAPI_OK) { -		fprintf(stderr, gettext("%s: %s\n"), printer, -			verbose_papi_message(svc, status)); -		papiJobFree(job); -		papiServiceDestroy(svc); -		exit(1); -	} - -	if (dump != 0) { -		list = papiJobGetAttributeList(job); -		printf("job attributes:\n"); -		papiAttributeListPrint(stdout, list, "\t"); -		printf("\n"); -	} - -	papiJobFree(job); -	papiServiceDestroy(svc); - -	return (exit_code); -} | 
