;;; -*- Mode:Lisp; Readtable:ZL; Package:USER; Base:8; Patch-File:T -*-
;;; Patch file for System version 126.121
;;; Reason:
;;;  I hope nobody really wants GRINDEF to be a special form.
;;;  
;;;  It isn't now, it's a macro.
;;; Written 21-Oct-88 23:45:28 by keith (Keith Corbett) at site Gigamos Cambridge
;;; while running on Johannes Brahms from band 1
;;; with Experimental System 126.119, Experimental ZWEI 126.21, Experimental ZMail 74.9, Experimental Local-File 76.0, Experimental File-Server 25.0, Experimental Lambda-Diag 18.0, Experimental Unix-Interface 15.0, Experimental Tape 26.4, Microcode 1762, SDU Boot Tape 3.14, SDU ROM 103, 10/17.



; From modified file DJ: L.IO; GRIND.LISP#152 at 21-Oct-88 23:46:50
#8R SYSTEM-INTERNALS#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: IO; GRIND  "

;;;; Grind Definitions

(DEFVAR GRINDEF NIL "Holds argument list to last invocation of GRINDEF")

;;; Grind the definitions of one or more functions.  With no arguments,
;;; repeat the last operation.

;;;Needn't be a Special form.
;(DEFUN GRINDEF (&QUOTE &REST FCNS)
;  "Pretty print the definitions of each of FCNS.
;This prints expressions such as could be evaluated to give
;each of FCNS its current value and//or function definition."
;  (AND FCNS (SETQ GRINDEF (COPY-LIST FCNS)))
;  (MAPC 'GRIND-1 GRINDEF)			;Grind each function
;  '*)						;Return silly result

;;;@@@Shouldn't set GRINDEF globally until return from GRIND-1.
;;;Currently,  (GRINDEF A B . C) blows up, and (GRINDEF) after that
;;;will too. --Keith 21-Oct-88

(defmacro grindef (&rest fcns)
  "Nicely print out the definitions of each of FCNS.
This prints expressions such as could be evaluated to give
each of FCNS its current value and//or function definition."
  (let ((forms '((mapc 'grind-1 grindef) '*)))
    (when fcns (push `(setq grindef ',fcns) forms))
    `(progn ,@forms)))

))
