]> git.ipfire.org Git - thirdparty/cups.git/commitdiff
lpstat.c: Implement successful filter for jobs
authorZdenek Dohnal <zdohnal@redhat.com>
Thu, 23 Nov 2023 12:02:54 +0000 (13:02 +0100)
committerZdenek Dohnal <zdohnal@redhat.com>
Thu, 23 Nov 2023 12:02:54 +0000 (13:02 +0100)
doc/help/man-lpstat.html
man/lpstat.1
systemv/lpstat.c

index b694d5b9c620adbdc4954850e89e56a1b106ca61..cc06104f9f77936b792911a6483eaa44fbb39f3d 100644 (file)
@@ -83,7 +83,7 @@ Shows the ranking of print jobs.
 Specifies an alternate username.
 </p>
     <p style="margin-left: 2.5em; text-indent: -2.5em;"><strong>-W </strong><em>which-jobs</em><br>
-Specifies which jobs to show, &quot;completed&quot; or &quot;not-completed&quot; (the default).
+Specifies which jobs to show, &quot;all&quot;, &quot;successful&quot;, &quot;completed&quot; or &quot;not-completed&quot; (the default).
 This option <em>must</em> appear before the <em>-o</em> option and/or any printer names, otherwise the default (&quot;not-completed&quot;) value will be used in the request to the scheduler.
 </p>
     <p style="margin-left: 2.5em; text-indent: -2.5em;"><strong>-a </strong>[<em>printer(s)</em>]<br>
index dec52e2bd2aa50a230bc5fbbc1e4dc719deab33e..9197ed282027629813749cd5d6fc1b9c0ea7f61f 100644 (file)
@@ -82,7 +82,7 @@ Shows the ranking of print jobs.
 Specifies an alternate username.
 .TP 5
 \fB\-W \fIwhich-jobs\fR
-Specifies which jobs to show, "completed" or "not-completed" (the default).
+Specifies which jobs to show, "all, "successful", "completed" or "not-completed" (the default).
 This option \fImust\fR appear before the \fI-o\fR option and/or any printer names, otherwise the default ("not-completed") value will be used in the request to the scheduler.
 .TP 5
 \fB\-a \fR[\fIprinter(s)\fR]
index f4a35e4e5a5af4e67dfea4ca36f96f23018ac3f2..4dae7358bc5aa542748b4bdaedecaaa7cea9ac72 100644 (file)
@@ -141,16 +141,16 @@ main(int  argc,                           /* I - Number of command-line arguments */
 
                if (i >= argc)
                {
-                 _cupsLangPrintf(stderr, _("%s: Error - need \"completed\", \"not-completed\", or \"all\" after \"-W\" option."), argv[0]);
+                 _cupsLangPrintf(stderr, _("%s: Error - need \"completed\", \"not-completed\", \"successful\", or \"all\" after \"-W\" option."), argv[0]);
                  usage();
                }
 
                which = argv[i];
              }
 
-             if (strcmp(which, "completed") && strcmp(which, "not-completed") && strcmp(which, "all"))
+             if (strcmp(which, "completed") && strcmp(which, "not-completed") && strcmp(which, "all") && strcmp(which, "successful"))
              {
-               _cupsLangPrintf(stderr, _("%s: Error - need \"completed\", \"not-completed\", or \"all\" after \"-W\" option."), argv[0]);
+               _cupsLangPrintf(stderr, _("%s: Error - need \"completed\", \"not-completed\", \"successful\", or \"all\" after \"-W\" option."), argv[0]);
                usage();
              }
              break;
@@ -1358,7 +1358,7 @@ show_jobs(const char *dests,              /* I - Destinations */
                NULL, cupsGetUser());
 
   ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_KEYWORD, "which-jobs",
-               NULL, which);
+               NULL, !strcmp(which, "successful") ? "completed" : which);
 
  /*
   * Do the request and get back a response...
@@ -1396,6 +1396,7 @@ show_jobs(const char *dests,              /* I - Destinations */
 
     if (!strcmp(which, "aborted") ||
         !strcmp(which, "canceled") ||
+        !strcmp(which, "successful") ||
         !strcmp(which, "completed"))
       time_at = "time-at-completed";
     else
@@ -1476,7 +1477,11 @@ show_jobs(const char *dests,             /* I - Destinations */
 
       if (match_list(dests, dest) && match_list(users, username))
       {
-        snprintf(temp, sizeof(temp), "%s-%d", dest, jobid);
+       if (!strcmp(which, "successful") && (!reasons || (reasons &&
+           strcmp(reasons->name, "job-completed-successfully"))))
+         continue;
+
+       snprintf(temp, sizeof(temp), "%s-%d", dest, jobid);
 
        _cupsStrDate(date, sizeof(date), jobtime);
 
@@ -1557,7 +1562,7 @@ show_printers(const char  *printers,      /* I - Destinations */
   int          jobid;                  /* Job ID of current job */
   char         printer_uri[HTTP_MAX_URI],
                                        /* Printer URI */
-               printer_state_time[255];/* Printer state time */
+       printer_state_time[255];/* Printer state time */
   _cups_globals_t *cg = _cupsGlobals();        /* Global data */
   static const char *pattrs[] =                /* Attributes we need for printers... */
                {