mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-30 04:10:54 -08:00
forms-save-buffer): Call set-buffer-modified-p to
force the data buffer to be saved, even if the data didn't change, in case the write filter was modified. Restore the current record after read-file-filter finishes.
This commit is contained in:
parent
264f512a8d
commit
f3ae6c2a76
1 changed files with 18 additions and 5 deletions
|
|
@ -301,10 +301,10 @@
|
|||
(provide 'forms) ;;; official
|
||||
(provide 'forms-mode) ;;; for compatibility
|
||||
|
||||
(defconst forms-version (substring "$Revision: 2.37 $" 11 -2)
|
||||
(defconst forms-version (substring "$Revision: 2.38 $" 11 -2)
|
||||
"The version number of forms-mode (as string). The complete RCS id is:
|
||||
|
||||
$Id: forms.el,v 2.37 1999/01/15 16:19:53 rms Exp kwzh $")
|
||||
$Id: forms.el,v 2.38 1999/05/01 01:11:12 kwzh Exp eliz $")
|
||||
|
||||
(defcustom forms-mode-hooks nil
|
||||
"Hook functions to be run upon entering Forms mode."
|
||||
|
|
@ -1924,19 +1924,32 @@ after writing out the data."
|
|||
(interactive "p")
|
||||
(forms--checkmod)
|
||||
(let ((write-file-filter forms-write-file-filter)
|
||||
(read-file-filter forms-read-file-filter))
|
||||
(read-file-filter forms-read-file-filter)
|
||||
(cur forms--current-record))
|
||||
(save-excursion
|
||||
(set-buffer forms--file-buffer)
|
||||
(let ((inhibit-read-only t))
|
||||
;; Write file hooks are run via local-write-file-hooks.
|
||||
;; (if write-file-filter
|
||||
;; (save-excursion
|
||||
;; (run-hooks 'write-file-filter)))
|
||||
;; (run-hooks 'write-file-filter)))
|
||||
|
||||
;; If they have a write-file-filter, force the buffer to be
|
||||
;; saved even if it doesn't seem to be changed. First, they
|
||||
;; might have changed the write-file-filter; and second, if
|
||||
;; save-buffer does nothing, write-file-filter won't get run,
|
||||
;; and then read-file-filter will be mightily confused.
|
||||
(or (null write-file-filter)
|
||||
(set-buffer-modified-p t))
|
||||
(save-buffer args)
|
||||
(if read-file-filter
|
||||
(save-excursion
|
||||
(run-hooks 'read-file-filter)))
|
||||
(set-buffer-modified-p nil))))
|
||||
(set-buffer-modified-p nil)))
|
||||
;; Make sure we end up with the same record number as we started.
|
||||
;; Since read-file-filter may perform arbitrary transformations on
|
||||
;; the data buffer contents, save-excursion is not enough.
|
||||
(forms-jump-record cur))
|
||||
t)
|
||||
|
||||
(defun forms--revert-buffer (&optional arg noconfirm)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue