;;; -*- Mode:Lisp; Readtable:COMMON-LISP; Package:USER; Base:10; Patch-File:T -*- ;;; Patch file for System version 124.124 ;;; Reason: ;;; Fix ZWEI:DOCUMENT-KEY so command function names print on normal output streams. ;;; Written 1-Jul-88 17:56:18 by keith (Keith Corbett) at site Gigamos Cambridge ;;; while running on Breaking Glass from band 1 ;;; with Experimental System 124.123, Experimental Local-File 74.3, Experimental File-Server 23.1, Unix-Interface 12.0, Experimental ZMail 72.1, Experimental Tape 23.6, Experimental Lambda-Diag 16.2, Tiger 28.0, microcode 1761, SDU Boot Tape 3.14, SDU ROM 103, Beta 3 plus patches. ; From modified file DJ: L.ZWEI; DOC.LISP#83 at 1-Jul-88 17:56:38 #8R ZWEI#: #!:ZL (COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "ZWEI"))) (COMPILER::PATCH-SOURCE-FILE "SYS: ZWEI; DOC  " (DEFUN DOCUMENT-KEY (CHAR COMTAB) "Print full documentation of character CHAR's definition in COMTAB, on *STANDARD-OUTPUT*." (IF (OR (ATOM CHAR) (AND (EQ (CAR-SAFE CHAR) :MOUSE-BUTTON) (SETQ CHAR (CADR CHAR)))) (FORMAT T "~&~:@C" CHAR) (FORMAT T "~&~S" CHAR)) (PROG (TEM PREFIX) L (SETQ TEM (COMMAND-LOOKUP CHAR COMTAB T)) (COND ((NULL TEM) (FORMAT T " is undefined.~%")) ((SYMBOLP TEM) (IF (NOT (GET TEM 'COMMAND-NAME)) (FORMAT T " is ~A, which is not implemented.~%" TEM) (FORMAT T " is ~A, implemented by " (COMMAND-NAME TEM)) (if (get-handler-for *standard-output* :item) (SEND-IF-HANDLES *STANDARD-OUTPUT* :ITEM 'FUNCTION-NAME TEM) (format t "~a" tem)) (FORMAT T ":~%") (DO L *COMMAND-HOOK* (CDR L) (NULL L) (LET ((DOCFN (GET (CAR L) 'HOOK-DOCUMENTATION-FUNCTION))) (AND DOCFN (FUNCALL DOCFN TEM CHAR)))) (PRINT-DOC :FULL TEM CHAR))) ((CONSP TEM) (FORMAT T " is an alias for ~@[~:@C ~]~:@C.~%~@[~:@C ~]~:@C" PREFIX (SETQ CHAR (%LOGDPB (FIRST TEM) %%KBD-CONTROL-META (SECOND TEM))) PREFIX CHAR) (GO L)) ((MACRO-COMMAND-P TEM) (FORMAT T " is a user defined macro named ~A. With no argument, run the macro with the repeat count in its definition. With an argument, ignore the repeat count in its definition and use the argument instead.~%" (SYMEVAL-IN-CLOSURE TEM 'SYMBOL))) ((PREFIX-COMMAND-P TEM) (FORMAT T " is an escape-prefix for more commands. It reads a character (subcommand) and dispatches on it. Type a subcommand to document (or * for all):~%") (SETQ PREFIX CHAR CHAR (WITHOUT-IO-BUFFER-OUTPUT-FUNCTION (READ-CHAR *STANDARD-INPUT*))) (FORMAT T "~%~:@C" PREFIX) (COND ((CHAR= CHAR #/*) (FORMAT T " has these subcommands:~%") (DOCUMENT-PREFIX-CHAR-TABLE (GET-PREFIX-COMMAND-COMTAB TEM))) (T (FORMAT T " ~:@C" CHAR) (SETQ COMTAB (GET-PREFIX-COMMAND-COMTAB TEM)) (GO L)))) ((MENU-COMMAND-P TEM) (FORMAT T " is a menu command with the following subcommands:~%") (DO ((L (GET-MENU-COMMAND-COMMANDS TEM) (CDR L)) (FLAG T NIL)) ((NULL L) (TERPRI)) ;>> should makes these items (FORMAT T "~:[, ~]~A" FLAG (CAAR L)))) (T (FORMAT T " is garbage!?~%"))))) ))