mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-10 09:58:01 +00:00
d36a4c3685
malloc functions, which automatically cast to the same type they're allocating the size of. Should prevent any future errors involving mallocing the size of the wrong structure type, and will also make life easier if we ever need to turn the PuTTY core code from real C into C++-friendly C. I haven't touched the Mac frontend in this checkin because I couldn't compile or test it. [originally from svn r3014]
44 lines
694 B
C
44 lines
694 B
C
/*
|
|
* Printing interface for PuTTY.
|
|
*/
|
|
|
|
#include <assert.h>
|
|
#include <stdio.h>
|
|
#include "putty.h"
|
|
|
|
struct printer_job_tag {
|
|
FILE *fp;
|
|
};
|
|
|
|
printer_job *printer_start_job(char *printer)
|
|
{
|
|
printer_job *ret = snew(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;
|
|
}
|
|
|
|
void printer_job_data(printer_job *pj, void *data, int len)
|
|
{
|
|
if (!pj)
|
|
return;
|
|
|
|
fwrite(data, 1, len, pj->fp);
|
|
}
|
|
|
|
void printer_finish_job(printer_job *pj)
|
|
{
|
|
if (!pj)
|
|
return;
|
|
|
|
pclose(pj->fp);
|
|
sfree(pj);
|
|
}
|