summaryrefslogtreecommitdiffstats
path: root/usr.sbin/lpr/lpc/lpc.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/lpr/lpc/lpc.c')
-rw-r--r--usr.sbin/lpr/lpc/lpc.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/usr.sbin/lpr/lpc/lpc.c b/usr.sbin/lpr/lpc/lpc.c
index 80e9f3e..d01c935 100644
--- a/usr.sbin/lpr/lpc/lpc.c
+++ b/usr.sbin/lpr/lpc/lpc.c
@@ -115,7 +115,7 @@ main(int argc, char *argv[])
exit(1);
}
if (c->c_generic != 0)
- generic(c->c_generic, argc, argv);
+ generic(c->c_generic, c->c_handler, argc, argv);
else
(*c->c_handler)(argc, argv);
exit(0);
@@ -200,8 +200,16 @@ cmdscanner(void)
printf("?Privileged command\n");
continue;
}
+
+ /*
+ * Two different commands might have the same generic rtn
+ * (eg: "clean" and "tclean"), and just use different
+ * handler routines for distinct command-setup. The handler
+ * routine might also be set on a generic routine for
+ * initial parameter processing.
+ */
if (c->c_generic != 0)
- generic(c->c_generic, margc, margv);
+ generic(c->c_generic, c->c_handler, margc, margv);
else
(*c->c_handler)(margc, margv);
}
OpenPOWER on IntegriCloud