Commit Diff


commit - b52f8f4f1c3d2afe83f4f84b56763bf6709810a5
commit + 7643f4bc0eacacb075dbbbc4176cae1a13b47e4e
blob - a0a66026dd33983fda352d5c8a2838218d41f8eb
blob + 7b243d0741195ed5c849d2b0cfc9c7a79e3f069f
--- de/mud/terminal/vt320.java
+++ de/mud/terminal/vt320.java
@@ -622,6 +622,8 @@ public abstract class vt320 extends VDU implements Key
    * @param s the string to be sent
    */
   private boolean writeSpecial(String s) {
+    if (s == null)
+      return true;
     if (((s.length() >= 3) && (s.charAt(0) == 27) && (s.charAt(1)=='O'))) {
       if (vt52mode) {
         if ((s.charAt(2) >= 'P') && (s.charAt(2) <= 'S')) {
@@ -754,7 +756,10 @@ public abstract class vt320 extends VDU implements Key
       write("\n",false);
       if (localecho) putString("\r\n"); // bad hack
     }
-    
+
+    if (keyCode == KeyEvent.VK_ESCAPE) // handled in keyPressed
+      return;
+
     // FIXME: on german PC keyboards you have to use Alt-Ctrl-q to get an @,
     // so we can't just use it here... will probably break some other VMS
     // codes.  -Marcus
@@ -1586,7 +1591,7 @@ public abstract class vt320 extends VDU implements Key
         term_state = TSTATE_VT52Y;
         break;
       default:
-        System.out.println("ESC unknown letter: ("+((int)c)+")");
+        System.out.println("ESC unknown letter: "+c+" ("+((int)c)+")");
         break;
       }
       break;