;;; -*- Mode:Lisp; Readtable:ZL; Package:USER; Base:8; Patch-File:T -*-
;;; Patch file for System version 123.179
;;; Reason:
;;;  The Explorer keyboard doesn't have Greek or Top keys.  A rubout handler
;;;  command existed that documented what keys you type to get all the special
;;;  symbols.  Unfortunately, this command superceded the normal Help command.
;;;  Solution:  move it to Meta-Help.  Also make it do something meaningful
;;;  on a Lambda.
;;; Written 7-Jan-88 15:58:40 by pld at site Gigamos Cambridge
;;; while running on Jack Flanders from band 2
;;; with Experimental System 123.178, Experimental Local-File 73.3, Experimental FILE-Server 22.1, Experimental Unix-Interface 11.0, Experimental Tape 18.0, Experimental KERMIT 34.3, Experimental ZMail 71.0, Experimental Lambda-Diag 15.0, microcode 1754, SDU Boot Tape 3.12, SDU ROM 8.



; From modified file DJ: L.WINDOW; RH.LISP#184 at 7-Jan-88 16:27:13
#8R TV#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "TV")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: WINDOW; RH  "

(DEFCONST RH-HELP-INFO
  "You are typing input to ~A.
Click the rightmost mouse button to select a menu of programs and window operations.
Type Control-~C for a list of commands for editing input.
Type Meta-~C for a list of special symbols.
Type ~C ~C for a list of programs.
Type ~C ~C for a list of console operations.~2%")

(DEFINE-RH-COMMAND RH-COM-BASIC-HELP (#/HELP) (IGNORE)
  (RH-DISPLAY-INFO
    (FORMAT SELF RH-HELP-INFO SELF #/HELP #/HELP #/SYSTEM #/HELP #/TERMINAL #/HELP)))

;;; Help for explorer keyboard which doesn't have the greek letters.
(DEFINE-RH-COMMAND RH-COM-LIST-SPECIAL-SYMBOLS (#/Meta-help) (IGNORE)
  (if (send-if-handles self :no-inferior-windows-p)
      (rh-display-info
	(rh-print-special-symbol-help self))
    (LET ((RUBOUT-HANDLER NIL))
      (SI:WITH-HELP-STREAM (HELP-WINDOW :LABEL "Special Keyboard Symbols" :width *width
					:SUPERIOR
					(IF (TYPEP SELF 'SHEET)
					    (SHEET-GET-SCREEN SELF)
					  SELF))
	(rh-print-special-symbol-help help-window width)))))

(defun rh-print-special-symbol-help (help-window &optional width)
  (cond (width)
	((operation-handled-p help-window :size-in-characters)
	 (setq width (send help-window :size-in-characters)))
	(t
	 (setq width 85.)))
  (format help-window "Special Symbol Translations:~2%")
  (rh-print-help-double-columns (select-processor
				  ((:lambda :cadr)
				   '((#/ "Greek-a")
				     (#/ "Greek-b")
				     (#/
 "Greek-d")
				     (#/ "Greek-e")
				     (#/	 "Greek-g")
				     (#/ "Greek-l")
				     (#/ "Greek-p")
				     (#/  "Greek-'")
				     (#/ "Greek-//")
				     (#/ "Top-q")
				     (#/ "Top-w")
				     (#/ "Top-e")
				     (#/ "Top-r")
				     (#/ "Top-t")
				     (#/ "Top-y")
				     (#/ "Top-u")
				     (#/ "Top-i")
				     (#/ "Top-o")
				     (#/ "Top-p")
				     (#/ "Top-g")
				     (#/ "Top-h")
				     (#/ "Top-j")
				     (#/ "Top-k")
				     (#/ "Top-l")
				     (#/ "Top-c")
				     (#/ "Top-m")
				     (#/ "Top-n")
				     (#/ "Top-b")))
				  (:explorer
				   '((#/ "Symbol-a")
				     (#/ "Symbol-b")
				     (#/
 "Symbol-d")
				     (#/ "Symbol-e")
				     (#/	 "Symbol-g")
				     (#/ "Symbol-l")
				     (#/ "Symbol-p")
				     (#/  "Symbol-'")
				     (#/ "Symbol-//")
				     (#/ "Shift-Symbol-q")
				     (#/ "Shift-Symbol-w")
				     (#/ "Shift-Symbol-e")
				     (#/ "Shift-Symbol-r")
				     (#/ "Shift-Symbol-t")
				     (#/ "Shift-Symbol-y")
				     (#/ "Shift-Symbol-u")
				     (#/ "Shift-Symbol-i")
				     (#/ "Shift-Symbol-o")
				     (#/ "Shift-Symbol-p")
				     (#/ "Shift-Symbol-g")
				     (#/ "Shift-Symbol-h")
				     (#/ "Shift-Symbol-j")
				     (#/ "Shift-Symbol-k")
				     (#/ "Shift-Symbol-l")
				     (#/ "Shift-Symbol-c")
				     (#/ "Shift-Symbol-m")
				     (#/ "Shift-Symbol-n")
				     (#/ "Shift-Symbol-b"))))
				help-window
				width)
  (terpri help-window))
))
