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