mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-27 07:37:33 +00:00
* diff-mode.el (diff-mode): Set buffer-read-only to t when
diff-default-read-only is non-nill. * diff.el (diff-sentinel, diff): Set inhibit-read-only to t when modifying the *Diff* buffer. (diff-process-filter): New filter function for diff process that sets inhibit-read-only to t when modifying the *Diff* buffer.
This commit is contained in:
parent
2e8e9e9195
commit
53dd481c3f
@ -1,3 +1,13 @@
|
||||
2006-06-06 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* diff-mode.el (diff-mode): Set buffer-read-only to t when
|
||||
diff-default-read-only is non-nill.
|
||||
|
||||
* diff.el (diff-sentinel, diff): Set inhibit-read-only to t when
|
||||
modifying the *Diff* buffer.
|
||||
(diff-process-filter): New filter function for diff process that
|
||||
sets inhibit-read-only to t when modifying the *Diff* buffer.
|
||||
|
||||
2006-06-06 Carsten Dominik <dominik@science.uva.nl>
|
||||
|
||||
* textmodes/org.el: (org-archive-subtree): Use end-of-subtree as
|
||||
|
@ -993,8 +993,7 @@ a diff with \\[diff-reverse-direction]."
|
||||
;; compile support
|
||||
(set (make-local-variable 'next-error-function) 'diff-next-error)
|
||||
|
||||
(when (and (> (point-max) (point-min)) diff-default-read-only)
|
||||
(toggle-read-only t))
|
||||
(setq buffer-read-only diff-default-read-only)
|
||||
;; setup change hooks
|
||||
(if (not diff-update-on-the-fly)
|
||||
(add-hook 'write-contents-functions 'diff-write-contents-hooks nil t)
|
||||
|
32
lisp/diff.el
32
lisp/diff.el
@ -67,9 +67,10 @@ CODE is the exit code of the process. It should be 0 iff no diffs were found."
|
||||
(if diff-new-temp-file (delete-file diff-new-temp-file))
|
||||
(save-excursion
|
||||
(goto-char (point-max))
|
||||
(insert (format "\nDiff finished%s. %s\n"
|
||||
(if (equal 0 code) " (no differences)" "")
|
||||
(current-time-string)))))
|
||||
(let ((inhibit-read-only t))
|
||||
(insert (format "\nDiff finished%s. %s\n"
|
||||
(if (equal 0 code) " (no differences)" "")
|
||||
(current-time-string))))))
|
||||
|
||||
;;;###autoload
|
||||
(defun diff (old new &optional switches no-async)
|
||||
@ -119,7 +120,8 @@ With prefix arg, prompt for diff switches."
|
||||
(set-buffer buf)
|
||||
(setq buffer-read-only nil)
|
||||
(buffer-disable-undo (current-buffer))
|
||||
(erase-buffer)
|
||||
(let ((inhibit-read-only t))
|
||||
(erase-buffer))
|
||||
(buffer-enable-undo (current-buffer))
|
||||
(diff-mode)
|
||||
(set (make-local-variable 'revert-buffer-function)
|
||||
@ -128,21 +130,35 @@ With prefix arg, prompt for diff switches."
|
||||
(set (make-local-variable 'diff-old-temp-file) old-alt)
|
||||
(set (make-local-variable 'diff-new-temp-file) new-alt)
|
||||
(setq default-directory thisdir)
|
||||
(insert command "\n")
|
||||
(let ((inhibit-read-only t))
|
||||
(insert command "\n"))
|
||||
(if (and (not no-async) (fboundp 'start-process))
|
||||
(progn
|
||||
(setq proc (start-process "Diff" buf shell-file-name
|
||||
shell-command-switch command))
|
||||
(set-process-filter proc 'diff-process-filter)
|
||||
(set-process-sentinel
|
||||
proc (lambda (proc msg)
|
||||
(with-current-buffer (process-buffer proc)
|
||||
(diff-sentinel (process-exit-status proc))))))
|
||||
;; Async processes aren't available.
|
||||
(diff-sentinel
|
||||
(call-process shell-file-name nil buf nil
|
||||
shell-command-switch command))))
|
||||
(let ((inhibit-read-only t))
|
||||
(diff-sentinel
|
||||
(call-process shell-file-name nil buf nil
|
||||
shell-command-switch command)))))
|
||||
buf))
|
||||
|
||||
(defun diff-process-filter (proc string)
|
||||
(with-current-buffer (process-buffer proc)
|
||||
(let ((moving (= (point) (process-mark proc))))
|
||||
(save-excursion
|
||||
;; Insert the text, advancing the process marker.
|
||||
(goto-char (process-mark proc))
|
||||
(let ((inhibit-read-only t))
|
||||
(insert string))
|
||||
(set-marker (process-mark proc) (point)))
|
||||
(if moving (goto-char (process-mark proc))))))
|
||||
|
||||
;;;###autoload
|
||||
(defun diff-backup (file &optional switches)
|
||||
"Diff this file with its backup file or vice versa.
|
||||
|
Loading…
Reference in New Issue
Block a user