X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/c9ec040a0de0c3d2b336adddbe697a1eaaca3210..838d78d411955dbe3ef5d75ff404ced8ca832c5a:/lisp/emerge.el diff --git a/lisp/emerge.el b/lisp/emerge.el index f9821111e7..182cfa4b7f 100644 --- a/lisp/emerge.el +++ b/lisp/emerge.el @@ -44,6 +44,18 @@ ;;;###autoload (define-key menu-bar-emerge-menu [emerge-buffers] ;;;###autoload '("Buffers..." . emerge-buffers)) +;; There aren't really global variables, just dynamic bindings +(defvar A-begin) +(defvar A-end) +(defvar B-begin) +(defvar B-end) +(defvar diff) +(defvar diff-vector) +(defvar merge-begin) +(defvar merge-end) +(defvar template) +(defvar valid-diff) + ;;; Macros (defmacro emerge-eval-in-buffer (buffer &rest forms) @@ -621,7 +633,7 @@ This is *not* a user option, since Emerge uses it for its own processing.") (if output-file (concat "Output to file: " output-file) (concat "Output to buffer: " (buffer-name merge-buffer)))) - (insert-buffer emerge-A-buffer) + (save-excursion (insert-buffer-substring emerge-A-buffer)) (emerge-set-keys) (setq emerge-difference-list (emerge-make-diff-list file-A file-B)) (setq emerge-number-of-differences (length emerge-difference-list)) @@ -657,20 +669,20 @@ This is *not* a user option, since Emerge uses it for its own processing.") diff-buffer (goto-char (point-min)) (while (re-search-forward emerge-match-diff-line nil t) - (let* ((a-begin (string-to-int (buffer-substring (match-beginning 1) - (match-end 1)))) + (let* ((a-begin (string-to-number (buffer-substring (match-beginning 1) + (match-end 1)))) (a-end (let ((b (match-beginning 3)) (e (match-end 3))) (if b - (string-to-int (buffer-substring b e)) + (string-to-number (buffer-substring b e)) a-begin))) (diff-type (buffer-substring (match-beginning 4) (match-end 4))) - (b-begin (string-to-int (buffer-substring (match-beginning 5) - (match-end 5)))) + (b-begin (string-to-number (buffer-substring (match-beginning 5) + (match-end 5)))) (b-end (let ((b (match-beginning 7)) (e (match-end 7))) (if b - (string-to-int (buffer-substring b e)) + (string-to-number (buffer-substring b e)) b-begin)))) ;; fix the beginning and end numbers, because diff is somewhat ;; strange about how it numbers lines @@ -700,7 +712,7 @@ This is *not* a user option, since Emerge uses it for its own processing.") (emerge-eval-in-buffer emerge-diff-error-buffer (erase-buffer) - (insert-buffer emerge-diff-buffer) + (save-excursion (insert-buffer-substring emerge-diff-buffer)) (delete-matching-lines ok-regexp))) ;;; Top-level and setup functions for three-file mode. @@ -790,7 +802,7 @@ This is *not* a user option, since Emerge uses it for its own processing.") (if output-file (concat "Output to file: " output-file) (concat "Output to buffer: " (buffer-name merge-buffer)))) - (insert-buffer emerge-A-buffer) + (save-excursion (insert-buffer-substring emerge-A-buffer)) (emerge-set-keys) (setq emerge-difference-list (emerge-make-diff3-list file-A file-B file-ancestor)) @@ -862,16 +874,16 @@ This is *not* a user option, since Emerge uses it for its own processing.") ;; it is a "c" group (if (match-beginning 2) ;; it has two numbers - (list (string-to-int + (list (string-to-number (buffer-substring (match-beginning 1) (match-end 1))) - (1+ (string-to-int + (1+ (string-to-number (buffer-substring (match-beginning 3) (match-end 3))))) ;; it has one number - (let ((x (string-to-int + (let ((x (string-to-number (buffer-substring (match-beginning 1) (match-end 1))))) (list x (1+ x)))) ;; it is an "a" group - (let ((x (1+ (string-to-int + (let ((x (1+ (string-to-number (buffer-substring (match-beginning 1) (match-end 1)))))) (list x x))))) @@ -1874,13 +1886,13 @@ buffer after this will cause serious problems." (emerge-restore-buffer-characteristics) ;; null out the difference markers so they don't slow down future editing ;; operations - (mapcar (function (lambda (d) - (set-marker (aref d 0) nil) - (set-marker (aref d 1) nil) - (set-marker (aref d 2) nil) - (set-marker (aref d 3) nil) - (set-marker (aref d 4) nil) - (set-marker (aref d 5) nil))) + (mapc (function (lambda (d) + (set-marker (aref d 0) nil) + (set-marker (aref d 1) nil) + (set-marker (aref d 2) nil) + (set-marker (aref d 3) nil) + (set-marker (aref d 4) nil) + (set-marker (aref d 5) nil))) emerge-difference-list) ;; allow them to be garbage collected (setq emerge-difference-list nil) @@ -3209,5 +3221,5 @@ More precisely, a [...] regexp to match any one such character." (provide 'emerge) -;;; arch-tag: a575f092-6e44-400e-b8a2-4124e9377585 +;; arch-tag: a575f092-6e44-400e-b8a2-4124e9377585 ;;; emerge.el ends here