;;; -*- Mode:LISP; Package:ZWEI; Base:8; Readtable:ZL -*- (DEFUN SAVE-BUFFER (BUFFER &AUX FILE-ID PATHNAME (FILE-FILE-ID NIL)) "Save BUFFER unconditionally into its visited file, or a file read from the mini buffer." (READ-BUFFER-PATHNAME-FOR-SAVING BUFFER) (SETQ FILE-ID (BUFFER-FILE-ID BUFFER) PATHNAME (BUFFER-PATHNAME BUFFER)) (AND (OR (SYMBOLP FILE-ID) (WITH-OPEN-FILE (S PATHNAME '(:PROBE :ASCII)) (AND (NOT (ERRORP S)) (EQUAL (SETQ FILE-FILE-ID (SEND S :INFO)) FILE-ID))) (LET ((*QUERY-IO* *STANDARD-OUTPUT*)) (FQUERY '#,`(:BEEP T :TYPE :READLINE :CHOICES ,FORMAT:YES-OR-NO-P-CHOICES) "When you last read or wrote ~A~@ it was ~A,~@ but now it is ~A.~@ Save it anyway? " PATHNAME (DESCRIBE-FILE-ID FILE-ID) (IF FILE-FILE-ID (DESCRIBE-FILE-ID FILE-FILE-ID) "deleted")))) (WRITE-FILE-INTERNAL PATHNAME BUFFER)) T)