4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
23 * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
24 * Use is subject to license terms.
28 /* $Id: lpq.c 146 2006-03-24 00:26:54Z njacobs $ */
30 #pragma ident "%Z%%M% %I% %E% SMI"
46 if ((name
= strrchr(program
, '/')) == NULL
)
51 fprintf(stdout
, gettext("Usage: %s [-P printer] (user|id ...)\n"),
61 /* quick and dirty for now, this should be fixed real soon */
63 FILE *fp
= popen("/bin/tput clear", "r");
65 fgets(buf
, sizeof (buf
), fp
);
73 main(int ac
, char *av
[])
77 papi_service_t svc
= NULL
;
78 papi_encryption_t encryption
= PAPI_ENCRYPT_NEVER
;
79 int format
= 3; /* lpq short format */
84 (void) setlocale(LC_ALL
, "");
85 (void) textdomain("SUNW_OST_OSCMD");
87 while ((c
= getopt(ac
, av
, "EP:l")) != EOF
)
90 encryption
= PAPI_ENCRYPT_REQUIRED
;
96 format
= 4; /* lpq long format */
102 if ((optind
< ac
) && (av
[optind
][0] == '+'))
103 interval
= atoi(av
[optind
++]);
105 if ((printer
== NULL
) &&
106 ((printer
= getenv("PRINTER")) == NULL
) &&
107 ((printer
= getenv("LPDEST")) == NULL
))
108 printer
= DEFAULT_DEST
;
110 status
= papiServiceCreate(&svc
, printer
, NULL
, NULL
, cli_auth_callback
,
112 if (status
!= PAPI_OK
) {
113 fprintf(stderr
, gettext(
114 "Failed to contact service for %s: %s\n"), printer
,
115 verbose_papi_message(svc
, status
));
116 papiServiceDestroy(svc
);
124 num_jobs
= berkeley_queue_report(svc
, stdout
, printer
, format
,
125 ac
- optind
, &av
[optind
]);
127 if ((interval
!= 0) && (num_jobs
> 0))
129 } while ((interval
> 0) && (num_jobs
> 0));
131 papiServiceDestroy(svc
);