summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--print.c23
-rw-r--r--xlogo.c3
-rw-r--r--xlogo.h2
3 files changed, 28 insertions, 0 deletions
diff --git a/print.c b/print.c
index 20cdeea..2826ac2 100644
--- a/print.c
+++ b/print.c
@@ -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;
diff --git a/xlogo.c b/xlogo.c
index ab053a0..b5b91b9 100644
--- a/xlogo.c
+++ b/xlogo.c
@@ -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
diff --git a/xlogo.h b/xlogo.h
index 50d96c3..f3fa722 100644
--- a/xlogo.h
+++ b/xlogo.h
@@ -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;