diff options
author | Gowtham Thommandra <Gowtham.Thommandra@Sun.COM> | 2009-04-02 11:25:44 +0530 |
---|---|---|
committer | Gowtham Thommandra <Gowtham.Thommandra@Sun.COM> | 2009-04-02 11:25:44 +0530 |
commit | c389c7f85e1e94d7078f66fbb37362b0387243d0 (patch) | |
tree | 550023dad568857c91d0215da45941a035408a5d /usr/src/cmd/print/bsd-sysv-commands | |
parent | 35a603ad9532c431e0923d22b1e5151c73aca44e (diff) | |
download | illumos-joyent-c389c7f85e1e94d7078f66fbb37362b0387243d0.tar.gz |
6752372 lpstat -o output is incorrect
Diffstat (limited to 'usr/src/cmd/print/bsd-sysv-commands')
-rw-r--r-- | usr/src/cmd/print/bsd-sysv-commands/disable.c | 19 | ||||
-rw-r--r-- | usr/src/cmd/print/bsd-sysv-commands/lpstat.c | 34 |
2 files changed, 31 insertions, 22 deletions
diff --git a/usr/src/cmd/print/bsd-sysv-commands/disable.c b/usr/src/cmd/print/bsd-sysv-commands/disable.c index 8b813b6d56..d57abe5728 100644 --- a/usr/src/cmd/print/bsd-sysv-commands/disable.c +++ b/usr/src/cmd/print/bsd-sysv-commands/disable.c @@ -20,14 +20,13 @@ */ /* - * Copyright 2006 Sun Microsystems, Inc. All rights reserved. + * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. * */ /* $Id: disable.c 146 2006-03-24 00:26:54Z njacobs $ */ -#pragma ident "%Z%%M% %I% %E% SMI" #include <stdio.h> #include <stdlib.h> @@ -49,8 +48,8 @@ usage(char *program) name++; fprintf(stdout, - gettext("Usage: %s [-c] [-W] [-r reason] destination ...\n"), - name); + gettext("Usage: %s [-c] [-W] [-r reason] destination ...\n"), + name); exit(1); } @@ -73,8 +72,8 @@ cancel_active_job(papi_service_t svc, char *dest) continue; (void) papiAttributeListGetInteger(a, NULL, - "job-state", &state); - if (state == 0x05) { /* processing */ + "job-state", &state); + if (state & 0x082A) { /* If state is RS_ACTIVE */ int32_t id = papiJobGetId(j[i]); (void) papiJobCancel(svc, dest, id); @@ -124,18 +123,18 @@ main(int ac, char *av[]) char *printer = av[optind++]; status = papiServiceCreate(&svc, printer, NULL, NULL, - cli_auth_callback, encryption, 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)); + "Failed to contact service for %s: %s\n"), + printer, verbose_papi_message(svc, status)); exit_status = 1; } status = papiPrinterDisable(svc, printer, reason); if (status != PAPI_OK) { fprintf(stderr, gettext("disable: %s: %s\n"), printer, - verbose_papi_message(svc, status)); + verbose_papi_message(svc, status)); exit_status = 1; } diff --git a/usr/src/cmd/print/bsd-sysv-commands/lpstat.c b/usr/src/cmd/print/bsd-sysv-commands/lpstat.c index 42e56b2fe3..9e446bee19 100644 --- a/usr/src/cmd/print/bsd-sysv-commands/lpstat.c +++ b/usr/src/cmd/print/bsd-sysv-commands/lpstat.c @@ -391,13 +391,10 @@ report_printer(papi_service_t svc, char *name, papi_printer_t printer, NULL, "job-id", &jobid); /* - * If the job-state is not - * "held", "cancelled" or - * "completed" then only print. + * If the job-state is in + * RS_PRINTING then only print. */ - if ((jstate != 0x04) && - (jstate != 0x07) && - (jstate != 0x09)) { + if (jstate == 0x0008) { if (flag == 0) printf(gettext ("now printing"\ @@ -814,12 +811,25 @@ report_job(char *printer, papi_job_t job, int show_rank, int verbose) (void) papiAttributeListGetInteger(attrs, NULL, "job-state", &jstate); - if (jstate == 0x04) - printf(gettext(", being held")); - else if (jstate == 0x07) - printf(gettext(", cancelled")); - else if (jstate == 0x09) - printf(gettext(", complete")); + + if (jstate == 0x0001) + printf(gettext(" being held")); + else if (jstate == 0x0800) + printf(gettext(" notifying user")); + else if (jstate == 0x0040) + printf(gettext(" cancelled")); + else if (jstate == 0x0010) + printf(gettext(" finished printing")); + else if (jstate == 0x0008) + printf(gettext(" on %s"), destination); + else if (jstate == 0x2000) + printf(gettext(" held by admin")); + else if (jstate == 0x0002) + printf(gettext(" being filtered")); + else if (jstate == 0x0004) + printf(gettext(" filtered")); + else if (jstate == 0x0020) + printf(gettext(" held for change")); if (verbose == 1) { char *form = NULL; |