mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-04-21 04:55:02 -05:00
Printer support: cfg.printer is assumed to be a Unix command through
which to pipe printed data. Of course by default printing is disabled; typically cfg.printer would be set to `lpr', perhaps with some arguments. [originally from svn r2073]
This commit is contained in:
parent
80063aeef7
commit
12189e7193
@ -3,22 +3,41 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
#include <stdio.h>
|
||||||
#include "putty.h"
|
#include "putty.h"
|
||||||
|
|
||||||
|
struct printer_job_tag {
|
||||||
|
FILE *fp;
|
||||||
|
};
|
||||||
|
|
||||||
printer_job *printer_start_job(char *printer)
|
printer_job *printer_start_job(char *printer)
|
||||||
{
|
{
|
||||||
/* FIXME: open pipe to lpr */
|
printer_job *ret = smalloc(sizeof(printer_job));
|
||||||
return NULL;
|
/*
|
||||||
|
* On Unix, we treat cfg.printer as the name of a command to
|
||||||
|
* pipe to - typically lpr, of course.
|
||||||
|
*/
|
||||||
|
ret->fp = popen(cfg.printer, "w");
|
||||||
|
if (!ret->fp) {
|
||||||
|
sfree(ret);
|
||||||
|
ret = NULL;
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
void printer_job_data(printer_job *pj, void *data, int len)
|
void printer_job_data(printer_job *pj, void *data, int len)
|
||||||
{
|
{
|
||||||
/* FIXME: receive a pipe to lpr, write things to it */
|
if (!pj)
|
||||||
assert(!"We shouldn't get here");
|
return;
|
||||||
|
|
||||||
|
fwrite(data, 1, len, pj->fp);
|
||||||
}
|
}
|
||||||
|
|
||||||
void printer_finish_job(printer_job *pj)
|
void printer_finish_job(printer_job *pj)
|
||||||
{
|
{
|
||||||
/* FIXME: receive a pipe to lpr, close it */
|
if (!pj)
|
||||||
assert(!"We shouldn't get here either");
|
return;
|
||||||
|
|
||||||
|
pclose(pj->fp);
|
||||||
|
sfree(pj);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user