Hi Ralph,

Stas did not only try to fix something, but also cleaned up. This cleaning 
up was problematic (note to Stas: fops.write can be either printer_write 
or stub_printer_write; printer_write is not a wrapper that calls the 
function pointer -- and *if* you're cleaning up you should change *that* 
and preferably in a seperate patch to make it easier for me to merge with 
-stable!)

Ralph, please revert Stas' patch using
patch -R < lpt.diff
(or by untarring the 1.3.1 or 1.2.2 source code) and then apply my patch 
(attached):

patch < lpt2.diff

and try again.

Bart
--- src/base/dev/misc/lpt.c     Wed Jul 21 15:11:38 2004
+++ src/base/dev/misc/lpt.c     Wed Jul 21 15:14:31 2004
@@ -20,6 +20,7 @@
 #include <sys/wait.h>
 
 #include "emu.h"
+#include "timers.h"
 #include "lpt.h"
 #include "utilities.h"
 #include "dos2linux.h"
@@ -53,6 +54,8 @@
     return 1;
   }
 
+  reset_idle();
+
   switch (HI(ax)) {
   case 0:                      /* write char */
     /* p_printf("print character on lpt%d : %c (%d)\n",
@@ -248,6 +251,7 @@
     if (lpt[i].remaining >= 0) {
       p_printf("LPT: doing real tick for %d\n", i);
       if (lpt[i].remaining) {
+        reset_idle();
        lpt[i].remaining--;
        if (!lpt[i].remaining)
          (lpt[i].fops.flush) (i);

Reply via email to