printer_job *printer_start_job(char *printer)
{
- printer_job *ret = smalloc(sizeof(printer_job));
+ printer_job *ret = snew(printer_job);
/*
- * On Unix, we treat cfg.printer as the name of a command to
- * pipe to - typically lpr, of course.
+ * On Unix, we treat the printer string as the name of a
+ * command to pipe to - typically lpr, of course.
*/
- ret->fp = popen(cfg.printer, "w");
+ ret->fp = popen(printer, "w");
if (!ret->fp) {
sfree(ret);
ret = NULL;
pclose(pj->fp);
sfree(pj);
}
+
+/*
+ * There's no sensible way to enumerate printers under Unix, since
+ * practically any valid Unix command is a valid printer :-) So
+ * these are useless stub functions, and uxcfg.c will disable the
+ * drop-down list in the printer configurer.
+ */
+printer_enum *printer_start_enum(int *nprinters_ptr) {
+ *nprinters_ptr = 0;
+ return NULL;
+}
+char *printer_get_name(printer_enum *pe, int i) { return NULL;
+}
+void printer_finish_enum(printer_enum *pe) { }