Try to print if the user hits PrtSc. Careful, mkdtemp() is OpenBSD and
glibc 2.2+ only AFAIK, so we have to implement one for older systems.
How the heck do we get Imake to tell us *that*?
--- mgetty-1.1.25/frontends/X11/viewfax-2.5/viewfax.c Tue Mar 13 14:20:33 2001
+++ mgetty-1.1.25/frontends/X11/viewfax-2.5/viewfax.c Tue Mar 13 14:25:02 2001
@@ -125,6 +125,29 @@
"\t-2\traw files are g3-2d\n"
"\t-4\traw files are g4\n";
+#ifdef NEED_MKDTEMP
+#include <errno.h>
+static int
+mkdtemp(char *template)
+{
+ char temp[strlen(template) + 1];
+ int i, old_errno = errno;
+ do {
+ strcpy(temp, template);
+ if(mktemp(temp)) {
+ i = mkdir(temp, 0700);
+ } else {
+ i = -1;
+ }
+ } while ((i == -1) && (errno == EEXIST));
+ if(i == 0) {
+ strcpy(template, temp);
+ errno = old_errno;
+ }
+ return i;
+}
+#endif
+
int
main(int argc, char **argv)
{
@@ -758,6 +781,16 @@
0, 0, PaneWidth, PaneHeight);
XDefineCursor(Disp, Win, ReadyCursor);
break;
+ case XK_Print:
+ {char cmd[256], tmpdir[256] = "/tmp/viewfaxXXXXXX";
+ struct pagenode *p = firstpage;
+ if(mkdtemp(tmpdir) != -1) {
+ snprintf(cmd, sizeof(cmd), "tiffsplit %s %s/viewfax.; "
+ "tiff2ps %s/viewfax.* | lpr; "
+ "rm -fr %s", thispage->pathname, tmpdir, tmpdir,
+ tmpdir);
+ system(cmd);}}
+ break;
case XK_z:
if (Event.xkey.state & ShiftMask)
goto Zoomout;