;;; -*- Mode:Lisp; Readtable:T; Package:USER; Base:10; Patch-File:T -*-
;;; Private patches made by GJC
;;; Written 11-Dec-85 10:00:05 by GJC,
;;; while running on Lambda Six from band 1
;;; with System 102.173, Local-File 56.12, FILE-Server 13.2, Unix-Interface 5.6, MagTape 40.23, ZMail 57.10, Tiger 20.12, KERMIT 26.25, MEDIUM-RESOLUTION-COLOR 17.4, TCP-Kernel 30.8, TCP-User 57.11, TCP-Server 33.3, microcode 778, 2.0 Process Systems 5/2/85 Fork..



; From file TERMCAP.LISP#> TCP.SERVER; LAM6: (12)
#10R TCP-APPLICATION#:
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "TCP-APPLICATION")))
  (COMPILER#:PATCH-SOURCE-FILE "TCP: SERVER; TERMCAP  "

(DEFMETHOD (SIMPLE-ASCII-STREAM-TERMINAL :SUBTYI) ()
  (BLOCK EOF
    (LET ((C))
      (IF NEED-FORCE-OUTPUT (SEND SELF :FORCE-OUTPUT))
      (OR (SETQ C (SEND INPUT :TYI)) (RETURN-FROM EOF NIL))
      (SETQ C (OR (CADR (ASSQ C
			      '((#o10 #\BS)
				(#o11 #\TAB)
				(#o12 #\LINE)
				(#o14 #\FF)
				(#o15 #\RETURN)
				(#o177 #\RUBOUT))))
		  C))
      (IF (< C #o40) (SETQ C (TOGGLE-CHAR-BIT (LOGIOR #o100 C) :CONTROL)))
      (COND ((EQ C #\CONTROL-[)
	     (TOGGLE-CHAR-BIT (SEND SELF :SUBTYI) :META))
	    ((EQ C #\CONTROL-^)
	     (TOGGLE-CHAR-BIT (SEND SELF :SUBTYI) :CONTROL))
	    ((EQ C #\CONTROL-])
	     (TOGGLE-CHAR-BIT (SEND SELF :SUBTYI) :SUPER))
	    ((CADR (ASSQ C '((#\CONTROL-A #\ABORT)
			     (#\CONTROL-R #\RESUME)
			     (#\CONTROL-H #\HELP)
			     (#\CONTROL-B #\BREAK)))))
	    ('ELSE  C)))))


(defun toggle-char-bit (c name)
  (set-char-bit c name (not (char-bit c name))))

))
