(FILECREATED " 5-NOV-82 15:15:37" {IVY}<BOBROW>LISP>PATCHUP.;2 2438   

      changes to:  (VARS PATCHUPCOMS))


(PRETTYCOMPRINT PATCHUPCOMS)

(RPAQQ PATCHUPCOMS ((FNS PatchUp MakeChangeComs)))
(DEFINEQ

(PatchUp
  [LAMBDA (filesOrEditFlg patchFileName)                     (* dgb: " 5-NOV-82 15:13")

          (* Make a patch file with all changes to current system. A default name is computed as <date>-<username>.PATCH.
	  If filesOrEditFlg it is given, it should be T (meaning edit the comsList) or a list of files whose changes want to
	  be captured.)


    (PROG (date comName editFlg)
          (COND
	    ((EQ filesOrEditFlg T)                           (* No file names given, but editing wanted)
	      (SETQ editFlg T)
	      (SETQ filesOrEditFlg NIL)))
          [COND
	    ((NULL patchFileName)
	      (SETQ date (DATE))
	      (SETQ patchFileName (PACK* (SUBSTRING date (COND
						      ((EQ (QUOTE % )
							   (NTHCHAR date 1))
							2)
						      (T 1))
						    9)
					 (QUOTE -)
					 USERNAME))
	      (SETQ comName (PACK* patchFileName (QUOTE COMS)))
	      (SETQ patchFileName (PACK* patchFileName ".PATCH")))
	    (T (SETQ patchFileName (U-CASE patchFileName))
	       (SETQ comName (PACK* patchFileName (QUOTE COMS]
          (MakeChangeComs comName filesOrEditFlg)
          (COND
	    (editFlg (APPLY* (QUOTE EDITV)
			     comName)))
          (MAKEFILE patchFileName)
          (SETQ FILELST (DREMOVE patchFileName FILELST))
          (RETURN patchFileName])

(MakeChangeComs
  [LAMBDA (comVarName files)                                 (* dgb: " 5-NOV-82 15:15")

          (* Make a fileComs list which all changes, or just those on files if given. Make comslist be the value of 
	  comVarName. Use CHANGECOMS if comVarName is not given. Always add changes not on any file.)


    (UPDATEFILES)
    (SETTOPVAL (OR comVarName (QUOTE CHANGECOMS))
	       (PROG (fileCom (coms (FILEPKGCHANGES)))
		     [COND
		       (coms (SETQ coms (CONS (COPY (QUOTE (* Changes not on any file)))
					      coms]
		     [for file in FILELST when (OR (NULL files)
						   (FMEMB file files))
			do (COND
			     ([SETQ fileCom (CDR (GETPROP file (QUOTE FILE]
			       (SETQ coms (NCONC coms (CONS (LIST (QUOTE *)
								  (QUOTE *)
								  file
								  (QUOTE changes))
							    (COPY fileCom]
		     (RETURN coms])
)
(DECLARE: DONTCOPY
  (FILEMAP (NIL (202 2416 (PatchUp 212 . 1530) (MakeChangeComs 1532 . 2414)))))
STOP