(FILECREATED " 3-Dec-86 17:58:50" {QV}<NOTECARDS>1.3K>NEXT>PMIPATCH004.;2 5494   

      changes to:  (VARS PMIPATCH004COMS)
		   (FNS NC.DeleteDatabaseFile)

      previous date: " 3-Dec-86 17:45:37" {QV}<NOTECARDS>1.3K>NEXT>PMIPATCH004.;1)


(* Copyright (c) 1986 by Xerox Corporation. All rights reserved.)

(PRETTYCOMPRINT PMIPATCH004COMS)

(RPAQQ PMIPATCH004COMS ((* * Fixes bug #221: Deleting an open NoteFile now aborts.)
			  (* * Change to NCDATABASE)
			  (FNS NC.DeleteDatabaseFile)))
(* * Fixes bug #221: Deleting an open NoteFile now aborts.)

(* * Change to NCDATABASE)

(DEFINEQ

(NC.DeleteDatabaseFile
  (LAMBDA (FileNameOrNoteFile InterestedWindow Don'tConfirmFlg QuietFlg)
                                                             (* pmi: " 3-Dec-86 17:40")
                                                             (* Delete file FileName)

          (* * rht 8/7/84: If delete happens, clear NC.DatabaseFileNameSuggestion.)



          (* * rht 3/17/85: Fixed for case when user specifies version number of file to delete.)



          (* * fkr 11/8/85: Ripped out PSA.Database check. Added check for file open.)



          (* * kirk 23Jan86 Changed to use NC.AskYesOrNo)



          (* * fgh 6/24/86 Added ability to pass down NoteFile object as well as file name. Added code to remove NF from NFs 
	  hash array and remove the menu on the screen.)



          (* * rht 7/2/86: No longer prints completed message with DISMISS. Now returns non-nil if successful.
	  Accepts Don'tConfirmFlg arg.)



          (* * fgh 7/5/86 Added call to RemoveAccessToNoteFile.)



          (* * rht 7/13/86: Added QuietFlg arg.)



          (* * kef 8/8/86: Factored out into device specific vectors.)



          (* * pmi 12/3/86 Added check for open file)


    (DECLARE (GLOBALVARS NC.MsgDelay))
    (PROG ((FileName (if (type? NoteFile FileNameOrNoteFile)
			   then (fetch (NoteFile FullFileName) of FileNameOrNoteFile)
			 else FileNameOrNoteFile))
	     FullFileName)                                   (* Make sure no open databases)
                                                             (* Get file name)
	    (AND (NULL FileName)
		   (NULL (SETQ FileName (NC.DatabaseFileName "Name of Notefile to be deleted:" 
								   " -- "
								   T NIL NIL InterestedWindow)))
		   (RETURN NIL))                           (* make sure to be deleted file exists)
	    (SETQ FullFileName (if (EQ (FILENAMEFIELD FileName (QUOTE HOST))
					     (QUOTE DSK))
				     then (if (FILENAMEFIELD FileName (QUOTE VERSION))
						then (FULLNAME FileName)
					      else (CAR (FILDIR-EARLIEST FileName)))
				   else FileName))

          (* * Don't try to delete if the NoteFile is open)


	    (if (OPENP FullFileName)
		then (NC.PrintMsg InterestedWindow T "Can't delete an open notefile."
				      (CHARACTER 13))
		       (DISMISS NC.MsgDelay)
		       (NC.ClearMsg InterestedWindow T)
		       (RETURN NIL))

          (* * Can't delete a non-existent file.)


	    (if (NULL FullFileName)
		then (NC.PrintMsg (NC.AttachPromptWindow InterestedWindow)
				      T FileName " does not exist." (CHARACTER 13)
				      "Delete cancelled."
				      (CHARACTER 13))
		       (RETURN))

          (* * Ask user to confirm twice.)


	    (OR Don'tConfirmFlg (if (NOT (NC.AskYesOrNo (CONCAT 
							       "Are you sure you want to delete "
									  (CHARACTER 13)
									  FullFileName "?"
									  (CHARACTER 13))
								" -- " "No" T (NC.AttachPromptWindow
								  InterestedWindow)
								(NOT InterestedWindow)))
				      then (OR QuietFlg (NC.PrintMsg (NC.AttachPromptWindow
									     InterestedWindow)
									   T FullFileName 
									   " not deleted."
									   (CHARACTER 13)))
					     (RETURN)))
	    (OR QuietFlg (NC.PrintMsg (NC.AttachPromptWindow InterestedWindow)
					  T "Deleting" FullFileName (CHARACTER 13)))
	    (DISMISS 1000)
	    (OR Don'tConfirmFlg (if (NOT (NC.AskYesOrNo (CONCAT 
							 "Are you still sure you want to delete "
									  (CHARACTER 13)
									  FullFileName "?"
									  (CHARACTER 13))
								" -- " "No" T (NC.AttachPromptWindow
								  InterestedWindow)
								(NOT InterestedWindow)))
				      then (OR QuietFlg (NC.PrintMsg (NC.AttachPromptWindow
									     InterestedWindow)
									   T FullFileName 
									   " not deleted."
									   (CHARACTER 13)))
					     (RETURN)))

          (* * Delete the file)


	    (SETQ FullFileName (APPLY* (fetch (NoteFileDevice DeleteNoteFileFn)
					      of (GETHASH (COND
								((NC.RemoteHostP FullFileName)
								  (QUOTE REMOTEMULTIUSER))
								(T (QUOTE LOCALSINGLEUSER)))
							      NC.DeviceVectorsHashArray))
					   FullFileName))
	    (if (NULL FullFileName)
		then (RETURN))
	    (NC.RemoveAccessToNoteFile FullFileName)
	    (SETQ NC.DatabaseFileNameSuggestion NIL)
	    (NC.ClearMsg InterestedWindow T)
	    (RETURN FullFileName))))
)
(PUTPROPS PMIPATCH004 COPYRIGHT ("Xerox Corporation" 1986))
(DECLARE: DONTCOPY
  (FILEMAP (NIL (605 5412 (NC.DeleteDatabaseFile 615 . 5410)))))
STOP