diff options
-rw-r--r-- | print.c | 23 | ||||
-rw-r--r-- | xlogo.c | 3 | ||||
-rw-r--r-- | xlogo.h | 2 |
3 files changed, 28 insertions, 0 deletions
@@ -111,6 +111,8 @@ PageSetupCB(Widget widget, XtPointer client_data, XtPointer call_data) void FinishPrinting(AppPrintData *p) { + char *scr; + if (p->printtofile_handle) { if (XpuWaitForPrintFileChild(p->printtofile_handle) != XPGetDocFinished) { fprintf(stderr, "%s: Error while printing to file.\n", ProgramName); @@ -118,6 +120,27 @@ void FinishPrinting(AppPrintData *p) p->printtofile_handle = NULL; } + /* Job completed, check if there are any messages from the spooler command */ + scr = XpGetOneAttribute(p->pdpy, p->pcontext, XPJobAttr, "xp-spooler-command-results"); + if( scr ) + { + if( strlen(scr) > 0 ) + { + const char *msg = XpuCompoundTextToXmb(p->pdpy, scr); + if( msg ) + { + Msg(("Spooler command returned '%s'.\n", msg)); + XpuFreeXmbString(msg); + } + else + { + Msg(("Spooler command returned '%s' (unconverted).\n", scr)); + } + } + + XFree((void *)scr); + } + if (p->printshell) { XtDestroyWidget(p->printshell); p->printshell = NULL; @@ -57,6 +57,7 @@ static XrmOptionDescRec options[] = { {"-sharp", "*sharp", XrmoptionNoArg, "TRUE"}, #endif {"-v", "Verbose", XrmoptionNoArg, "TRUE"}, +{"-q", "Quiet", XrmoptionNoArg, "TRUE"}, #ifdef INCLUDE_XPRINT_SUPPORT {"-print", "Print", XrmoptionNoArg, "TRUE"}, {"-printer", "printer", XrmoptionSepArg, NULL}, @@ -80,6 +81,7 @@ XLogoResourceData userOptions; XtResource resources[] = { {"verbose", "Verbose", XtRBoolean, sizeof(Boolean), Offset(verbose), XtRImmediate, (XtPointer)False}, + {"quiet", "Quiet", XtRBoolean, sizeof(Boolean), Offset(quiet), XtRImmediate, (XtPointer)False}, #ifdef INCLUDE_XPRINT_SUPPORT {"print", "Print", XtRBoolean, sizeof(Boolean), Offset(printAndExit), XtRImmediate, (XtPointer)False}, {"printer", "Printer", XtRString, sizeof(String), Offset(printername), XtRImmediate, (XtPointer)NULL}, @@ -128,6 +130,7 @@ Syntax(Widget toplevel) reasons[n++] = "Usage: "; reasons[n++] = (String)ProgramName; reasons[n++] = " [-fg <color>] [-bg <color>] [-rv] [-bw <pixels>] [-bd <color>]\n"; + reasons[n++] = " [-v] [-q]\n"; reasons[n++] = " [-d [<host>]:[<vs>]]\n"; reasons[n++] = " [-g [<width>][x<height>][<+-><xoff>[<+-><yoff>]]]\n"; #ifdef INCLUDE_XPRINT_SUPPORT @@ -35,9 +35,11 @@ in this Software without prior written authorization from The Open Group. #define Error(x) { printf x ; exit(EXIT_FAILURE); } #define Log(x) { if(userOptions.verbose) printf x; } +#define Msg(x) { if((!userOptions.quiet) || userOptions.verbose) printf x; } typedef struct { Boolean verbose; + Boolean quiet; Boolean printAndExit; String printername; String printfile; |