+ printer_job *ret = smalloc(sizeof(printer_job));
+ /*
+ * On Unix, we treat the printer string as the name of a
+ * command to pipe to - typically lpr, of course.
+ */
+ ret->fp = popen(printer, "w");
+ if (!ret->fp) {
+ sfree(ret);
+ ret = NULL;
+ }
+ return ret;