diff -ru oldpup/lexcalls.c pup/lexcalls.c
--- oldpup/lexcalls.c	Wed Aug 18 22:44:10 1999
+++ pup/lexcalls.c	Sat Jan  8 19:17:55 2000
@@ -64,6 +64,7 @@
     return(0);
   }
 } 
+
 /* -------------------------------------------------------------------------
         park_cartridges()
    ------------------------------------------------------------------------- */
@@ -83,6 +84,8 @@
       myputs(sniff, sniffLength, fp, prog, top_msglabel);
       myputs(park, parkLength, fp, prog, top_msglabel);
   }
+
+  open_output();
 }
 /* -------------------------------------------------------------------------
          print_menu() 
@@ -95,6 +98,8 @@
 
   myputs(sniff, sniffLength, fp, prog, top_msglabel);
   myputs(pmenu, pmenuLength, fp, prog, top_msglabel);
+
+  open_output();
 }
 /* -------------------------------------------------------------------------
          clean_nozzles() 
@@ -107,6 +112,8 @@
 
   myputs(sniff, sniffLength, fp, prog, top_msglabel);
   myputs(clean, cleanLength, fp, prog, top_msglabel);
+
+  open_output();
 }
 /* -------------------------------------------------------------------------
         reset_ink_gauge()
@@ -122,6 +129,8 @@
   char *prog = (char *) output;
   myputs(sniff, sniffLength, fp, prog, gauge_msglabel);
   myputs(reset[ink], resetLength[ink], fp, prog, gauge_msglabel);  
+
+  open_output();
 }
 /* -------------------------------------------------------------------------
         print_alignment()
@@ -134,6 +143,8 @@
 
   myputs(sniff, sniffLength, fp, prog, align_msglabel);
   myputs(palign, palignLength, fp, prog, align_msglabel);
+
+  open_output();
 }
 /* -------------------------------------------------------------------------
         send_alignment()
@@ -156,6 +167,8 @@
     align[i][alignLength[i] - 1] = selection[i];
     myputs(align[i], alignLength[i], fp, prog, align_msglabel);
   }
+
+  open_output();
 }
 /* -------------------------------------------------------------------------
         moveto_install()
@@ -168,6 +181,8 @@
 
   myputs(sniff, sniffLength, fp, prog, inst_msglabel);
   myputs(install, installLength, fp, prog, inst_msglabel);
+
+  open_output();
 }
 /* -------------------------------------------------------------------------
         send_types()
@@ -186,4 +201,6 @@
   head[7] = headCode[1][rtype];
   myputs(sniff, sniffLength, fp, prog, inst_msglabel);
   myputs(head, headLength, fp, prog, inst_msglabel);
+  
+  open_output();
 }
diff -ru oldpup/lexgui.h pup/lexgui.h
--- oldpup/lexgui.h	Wed Aug 18 22:49:12 1999
+++ pup/lexgui.h	Sat Jan  8 18:52:19 2000
@@ -20,7 +20,7 @@
 #define TITLE "Printer Utility Program"
 #define VERSION "v1.0"
 #define CURYEAR "1999" 
-#define DEFAULT_DEV "/dev/lp0"
+#define DEFAULT_DEV "|lpr"
 /* The above can be over-ridden by setting the env var PUPDEV  */
 
 /* ============= Function Prototypes ====================== */
diff -ru oldpup/lexroutines.c pup/lexroutines.c
--- oldpup/lexroutines.c	Wed Aug 18 22:45:47 1999
+++ pup/lexroutines.c	Sat Jan  8 18:48:11 2000
@@ -777,7 +777,8 @@
   }
 
   /* if blank */
-  if(output[0] == 0 || output[0] == ' ')
+  if((output[0] == 0 || output[0] == ' ')
+     || (output[0] == '|' && strlen(output+1) < 1))
   {
     gtk_widget_set_sensitive(toptable, FALSE);
     freeze = 1; /* make this a fixed message */
@@ -786,7 +787,14 @@
     return(1);
   }
   open_file_errno = 0;
-  if((fp = fopen(output, "w")) == NULL)
+
+  if (output[0] == '|') {
+    fp = popen(output+1, "w");
+  } else {
+    fp = fopen(output, "w");
+  }
+
+  if(fp == NULL)
   {
     open_file_errno = errno;
     gtk_widget_set_sensitive(toptable, FALSE);
@@ -800,7 +808,7 @@
     entry_flag = 2;
     gtk_widget_set_sensitive(toptable, TRUE);
   }
-  return(0);
+ return(0);
 }
 /* -------------------------------------------------------------------------
         reset_top()
Only in pup: pup

