diff options
| author | Glenn Morris | 2010-11-06 11:51:11 -0700 |
|---|---|---|
| committer | Glenn Morris | 2010-11-06 11:51:11 -0700 |
| commit | b05fde666f574dd48e8bd2a72fafe3b049608a61 (patch) | |
| tree | dc545ae0c1cfb3e52b16f2b9946b6db17d2fe00d /lisp | |
| parent | 7d7cd6cef89a477357ec49b32565fd6659e983fe (diff) | |
| download | emacs-b05fde666f574dd48e8bd2a72fafe3b049608a61.tar.gz emacs-b05fde666f574dd48e8bd2a72fafe3b049608a61.zip | |
Minor emerge changes.
* lisp/vc/emerge.el (emerge-eval-in-buffer): Remove, and replace all uses
with with-current-buffer.
(diff, template): Give dynamic local variables a prefix.
(emerge-line-numbers): Rename local `diff' to emerge-line-diff.
(emerge-line-number-in-buf): Update for above name change.
(emerge-combine-versions-internal): Rename local `template' to
emerge-combine-template.
(emerge-combine-versions-edit): Update for above name change.
Diffstat (limited to 'lisp')
| -rw-r--r-- | lisp/ChangeLog | 11 | ||||
| -rw-r--r-- | lisp/vc/emerge.el | 236 |
2 files changed, 124 insertions, 123 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 9407c62075f..09e6c962f19 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,14 @@ | |||
| 1 | 2010-11-06 Glenn Morris <rgm@gnu.org> | ||
| 2 | |||
| 3 | * vc/emerge.el (emerge-eval-in-buffer): Remove, and replace all uses | ||
| 4 | with with-current-buffer. | ||
| 5 | (diff, template): Give dynamic local variables a prefix. | ||
| 6 | (emerge-line-numbers): Rename local `diff' to emerge-line-diff. | ||
| 7 | (emerge-line-number-in-buf): Update for above name change. | ||
| 8 | (emerge-combine-versions-internal): Rename local `template' to | ||
| 9 | emerge-combine-template. | ||
| 10 | (emerge-combine-versions-edit): Update for above name change. | ||
| 11 | |||
| 1 | 2010-11-06 Ralf Angeli <angeli@caeruleus.net> | 12 | 2010-11-06 Ralf Angeli <angeli@caeruleus.net> |
| 2 | 13 | ||
| 3 | * textmodes/reftex-cite.el | 14 | * textmodes/reftex-cite.el |
diff --git a/lisp/vc/emerge.el b/lisp/vc/emerge.el index 4946df6dcd3..b32eed01c81 100644 --- a/lisp/vc/emerge.el +++ b/lisp/vc/emerge.el | |||
| @@ -29,25 +29,13 @@ | |||
| 29 | (defvar A-end) | 29 | (defvar A-end) |
| 30 | (defvar B-begin) | 30 | (defvar B-begin) |
| 31 | (defvar B-end) | 31 | (defvar B-end) |
| 32 | (defvar diff) | ||
| 33 | (defvar diff-vector) | 32 | (defvar diff-vector) |
| 34 | (defvar merge-begin) | 33 | (defvar merge-begin) |
| 35 | (defvar merge-end) | 34 | (defvar merge-end) |
| 36 | (defvar template) | ||
| 37 | (defvar valid-diff) | 35 | (defvar valid-diff) |
| 38 | 36 | ||
| 39 | ;;; Macros | 37 | ;;; Macros |
| 40 | 38 | ||
| 41 | (defmacro emerge-eval-in-buffer (buffer &rest forms) | ||
| 42 | "Macro to switch to BUFFER, evaluate FORMS, returns to original buffer. | ||
| 43 | Differs from `save-excursion' in that it doesn't save the point and mark." | ||
| 44 | `(let ((StartBuffer (current-buffer))) | ||
| 45 | (unwind-protect | ||
| 46 | (progn | ||
| 47 | (set-buffer ,buffer) | ||
| 48 | ,@forms) | ||
| 49 | (set-buffer StartBuffer)))) | ||
| 50 | |||
| 51 | (defmacro emerge-defvar-local (var value doc) | 39 | (defmacro emerge-defvar-local (var value doc) |
| 52 | "Defines SYMBOL as an advertised variable. | 40 | "Defines SYMBOL as an advertised variable. |
| 53 | Performs a defvar, then executes `make-variable-buffer-local' on | 41 | Performs a defvar, then executes `make-variable-buffer-local' on |
| @@ -565,7 +553,7 @@ This is *not* a user option, since Emerge uses it for its own processing.") | |||
| 565 | (if output-file | 553 | (if output-file |
| 566 | (setq emerge-last-dir-output (file-name-directory output-file))) | 554 | (setq emerge-last-dir-output (file-name-directory output-file))) |
| 567 | ;; Make sure the entire files are seen, and they reflect what is on disk | 555 | ;; Make sure the entire files are seen, and they reflect what is on disk |
| 568 | (emerge-eval-in-buffer | 556 | (with-current-buffer |
| 569 | buffer-A | 557 | buffer-A |
| 570 | (widen) | 558 | (widen) |
| 571 | (let ((temp (file-local-copy file-A))) | 559 | (let ((temp (file-local-copy file-A))) |
| @@ -576,7 +564,7 @@ This is *not* a user option, since Emerge uses it for its own processing.") | |||
| 576 | startup-hooks)) | 564 | startup-hooks)) |
| 577 | ;; Verify that the file matches the buffer | 565 | ;; Verify that the file matches the buffer |
| 578 | (emerge-verify-file-buffer)))) | 566 | (emerge-verify-file-buffer)))) |
| 579 | (emerge-eval-in-buffer | 567 | (with-current-buffer |
| 580 | buffer-B | 568 | buffer-B |
| 581 | (widen) | 569 | (widen) |
| 582 | (let ((temp (file-local-copy file-B))) | 570 | (let ((temp (file-local-copy file-B))) |
| @@ -599,10 +587,10 @@ This is *not* a user option, since Emerge uses it for its own processing.") | |||
| 599 | (let* ((merge-buffer-name (emerge-unique-buffer-name "*merge" "*")) | 587 | (let* ((merge-buffer-name (emerge-unique-buffer-name "*merge" "*")) |
| 600 | ;; create the merge buffer from buffer A, so it inherits buffer A's | 588 | ;; create the merge buffer from buffer A, so it inherits buffer A's |
| 601 | ;; default directory, etc. | 589 | ;; default directory, etc. |
| 602 | (merge-buffer (emerge-eval-in-buffer | 590 | (merge-buffer (with-current-buffer |
| 603 | buffer-A | 591 | buffer-A |
| 604 | (get-buffer-create merge-buffer-name)))) | 592 | (get-buffer-create merge-buffer-name)))) |
| 605 | (emerge-eval-in-buffer | 593 | (with-current-buffer |
| 606 | merge-buffer | 594 | merge-buffer |
| 607 | (emerge-copy-modes buffer-A) | 595 | (emerge-copy-modes buffer-A) |
| 608 | (setq buffer-read-only nil) | 596 | (setq buffer-read-only nil) |
| @@ -625,14 +613,14 @@ This is *not* a user option, since Emerge uses it for its own processing.") | |||
| 625 | (emerge-remember-buffer-characteristics) | 613 | (emerge-remember-buffer-characteristics) |
| 626 | (emerge-handle-local-variables)) | 614 | (emerge-handle-local-variables)) |
| 627 | (emerge-setup-windows buffer-A buffer-B merge-buffer t) | 615 | (emerge-setup-windows buffer-A buffer-B merge-buffer t) |
| 628 | (emerge-eval-in-buffer merge-buffer | 616 | (with-current-buffer merge-buffer |
| 629 | (run-hooks 'startup-hooks 'emerge-startup-hook) | 617 | (run-hooks 'startup-hooks 'emerge-startup-hook) |
| 630 | (setq buffer-read-only t)))) | 618 | (setq buffer-read-only t)))) |
| 631 | 619 | ||
| 632 | ;; Generate the Emerge difference list between two files | 620 | ;; Generate the Emerge difference list between two files |
| 633 | (defun emerge-make-diff-list (file-A file-B) | 621 | (defun emerge-make-diff-list (file-A file-B) |
| 634 | (setq emerge-diff-buffer (get-buffer-create "*emerge-diff*")) | 622 | (setq emerge-diff-buffer (get-buffer-create "*emerge-diff*")) |
| 635 | (emerge-eval-in-buffer | 623 | (with-current-buffer |
| 636 | emerge-diff-buffer | 624 | emerge-diff-buffer |
| 637 | (erase-buffer) | 625 | (erase-buffer) |
| 638 | (shell-command | 626 | (shell-command |
| @@ -648,7 +636,7 @@ This is *not* a user option, since Emerge uses it for its own processing.") | |||
| 648 | 636 | ||
| 649 | (defun emerge-extract-diffs (diff-buffer) | 637 | (defun emerge-extract-diffs (diff-buffer) |
| 650 | (let (list) | 638 | (let (list) |
| 651 | (emerge-eval-in-buffer | 639 | (with-current-buffer |
| 652 | diff-buffer | 640 | diff-buffer |
| 653 | (goto-char (point-min)) | 641 | (goto-char (point-min)) |
| 654 | (while (re-search-forward emerge-match-diff-line nil t) | 642 | (while (re-search-forward emerge-match-diff-line nil t) |
| @@ -692,7 +680,7 @@ This is *not* a user option, since Emerge uses it for its own processing.") | |||
| 692 | ;; Set up buffer of diff/diff3 error messages. | 680 | ;; Set up buffer of diff/diff3 error messages. |
| 693 | (defun emerge-prepare-error-list (ok-regexp) | 681 | (defun emerge-prepare-error-list (ok-regexp) |
| 694 | (setq emerge-diff-error-buffer (get-buffer-create "*emerge-diff-errors*")) | 682 | (setq emerge-diff-error-buffer (get-buffer-create "*emerge-diff-errors*")) |
| 695 | (emerge-eval-in-buffer | 683 | (with-current-buffer |
| 696 | emerge-diff-error-buffer | 684 | emerge-diff-error-buffer |
| 697 | (erase-buffer) | 685 | (erase-buffer) |
| 698 | (save-excursion (insert-buffer-substring emerge-diff-buffer)) | 686 | (save-excursion (insert-buffer-substring emerge-diff-buffer)) |
| @@ -719,7 +707,7 @@ This is *not* a user option, since Emerge uses it for its own processing.") | |||
| 719 | (if output-file | 707 | (if output-file |
| 720 | (setq emerge-last-dir-output (file-name-directory output-file))) | 708 | (setq emerge-last-dir-output (file-name-directory output-file))) |
| 721 | ;; Make sure the entire files are seen, and they reflect what is on disk | 709 | ;; Make sure the entire files are seen, and they reflect what is on disk |
| 722 | (emerge-eval-in-buffer | 710 | (with-current-buffer |
| 723 | buffer-A | 711 | buffer-A |
| 724 | (widen) | 712 | (widen) |
| 725 | (let ((temp (file-local-copy file-A))) | 713 | (let ((temp (file-local-copy file-A))) |
| @@ -730,7 +718,7 @@ This is *not* a user option, since Emerge uses it for its own processing.") | |||
| 730 | startup-hooks)) | 718 | startup-hooks)) |
| 731 | ;; Verify that the file matches the buffer | 719 | ;; Verify that the file matches the buffer |
| 732 | (emerge-verify-file-buffer)))) | 720 | (emerge-verify-file-buffer)))) |
| 733 | (emerge-eval-in-buffer | 721 | (with-current-buffer |
| 734 | buffer-B | 722 | buffer-B |
| 735 | (widen) | 723 | (widen) |
| 736 | (let ((temp (file-local-copy file-B))) | 724 | (let ((temp (file-local-copy file-B))) |
| @@ -741,7 +729,7 @@ This is *not* a user option, since Emerge uses it for its own processing.") | |||
| 741 | startup-hooks)) | 729 | startup-hooks)) |
| 742 | ;; Verify that the file matches the buffer | 730 | ;; Verify that the file matches the buffer |
| 743 | (emerge-verify-file-buffer)))) | 731 | (emerge-verify-file-buffer)))) |
| 744 | (emerge-eval-in-buffer | 732 | (with-current-buffer |
| 745 | buffer-ancestor | 733 | buffer-ancestor |
| 746 | (widen) | 734 | (widen) |
| 747 | (let ((temp (file-local-copy file-ancestor))) | 735 | (let ((temp (file-local-copy file-ancestor))) |
| @@ -768,10 +756,10 @@ This is *not* a user option, since Emerge uses it for its own processing.") | |||
| 768 | (let* ((merge-buffer-name (emerge-unique-buffer-name "*merge" "*")) | 756 | (let* ((merge-buffer-name (emerge-unique-buffer-name "*merge" "*")) |
| 769 | ;; create the merge buffer from buffer A, so it inherits buffer A's | 757 | ;; create the merge buffer from buffer A, so it inherits buffer A's |
| 770 | ;; default directory, etc. | 758 | ;; default directory, etc. |
| 771 | (merge-buffer (emerge-eval-in-buffer | 759 | (merge-buffer (with-current-buffer |
| 772 | buffer-A | 760 | buffer-A |
| 773 | (get-buffer-create merge-buffer-name)))) | 761 | (get-buffer-create merge-buffer-name)))) |
| 774 | (emerge-eval-in-buffer | 762 | (with-current-buffer |
| 775 | merge-buffer | 763 | merge-buffer |
| 776 | (emerge-copy-modes buffer-A) | 764 | (emerge-copy-modes buffer-A) |
| 777 | (setq buffer-read-only nil) | 765 | (setq buffer-read-only nil) |
| @@ -796,14 +784,14 @@ This is *not* a user option, since Emerge uses it for its own processing.") | |||
| 796 | (emerge-select-prefer-Bs) | 784 | (emerge-select-prefer-Bs) |
| 797 | (emerge-handle-local-variables)) | 785 | (emerge-handle-local-variables)) |
| 798 | (emerge-setup-windows buffer-A buffer-B merge-buffer t) | 786 | (emerge-setup-windows buffer-A buffer-B merge-buffer t) |
| 799 | (emerge-eval-in-buffer merge-buffer | 787 | (with-current-buffer merge-buffer |
| 800 | (run-hooks 'startup-hooks 'emerge-startup-hook) | 788 | (run-hooks 'startup-hooks 'emerge-startup-hook) |
| 801 | (setq buffer-read-only t)))) | 789 | (setq buffer-read-only t)))) |
| 802 | 790 | ||
| 803 | ;; Generate the Emerge difference list between two files with an ancestor | 791 | ;; Generate the Emerge difference list between two files with an ancestor |
| 804 | (defun emerge-make-diff3-list (file-A file-B file-ancestor) | 792 | (defun emerge-make-diff3-list (file-A file-B file-ancestor) |
| 805 | (setq emerge-diff-buffer (get-buffer-create "*emerge-diff*")) | 793 | (setq emerge-diff-buffer (get-buffer-create "*emerge-diff*")) |
| 806 | (emerge-eval-in-buffer | 794 | (with-current-buffer |
| 807 | emerge-diff-buffer | 795 | emerge-diff-buffer |
| 808 | (erase-buffer) | 796 | (erase-buffer) |
| 809 | (shell-command | 797 | (shell-command |
| @@ -820,7 +808,7 @@ This is *not* a user option, since Emerge uses it for its own processing.") | |||
| 820 | 808 | ||
| 821 | (defun emerge-extract-diffs3 (diff-buffer) | 809 | (defun emerge-extract-diffs3 (diff-buffer) |
| 822 | (let (list) | 810 | (let (list) |
| 823 | (emerge-eval-in-buffer | 811 | (with-current-buffer |
| 824 | diff-buffer | 812 | diff-buffer |
| 825 | (while (re-search-forward "^====\\(.?\\)$" nil t) | 813 | (while (re-search-forward "^====\\(.?\\)$" nil t) |
| 826 | ;; leave point after matched line | 814 | ;; leave point after matched line |
| @@ -928,10 +916,10 @@ This is *not* a user option, since Emerge uses it for its own processing.") | |||
| 928 | (interactive "bBuffer A to merge: \nbBuffer B to merge: ") | 916 | (interactive "bBuffer A to merge: \nbBuffer B to merge: ") |
| 929 | (let ((emerge-file-A (emerge-make-temp-file "A")) | 917 | (let ((emerge-file-A (emerge-make-temp-file "A")) |
| 930 | (emerge-file-B (emerge-make-temp-file "B"))) | 918 | (emerge-file-B (emerge-make-temp-file "B"))) |
| 931 | (emerge-eval-in-buffer | 919 | (with-current-buffer |
| 932 | buffer-A | 920 | buffer-A |
| 933 | (write-region (point-min) (point-max) emerge-file-A nil 'no-message)) | 921 | (write-region (point-min) (point-max) emerge-file-A nil 'no-message)) |
| 934 | (emerge-eval-in-buffer | 922 | (with-current-buffer |
| 935 | buffer-B | 923 | buffer-B |
| 936 | (write-region (point-min) (point-max) emerge-file-B nil 'no-message)) | 924 | (write-region (point-min) (point-max) emerge-file-B nil 'no-message)) |
| 937 | (emerge-setup (get-buffer buffer-A) emerge-file-A | 925 | (emerge-setup (get-buffer buffer-A) emerge-file-A |
| @@ -953,13 +941,13 @@ This is *not* a user option, since Emerge uses it for its own processing.") | |||
| 953 | (let ((emerge-file-A (emerge-make-temp-file "A")) | 941 | (let ((emerge-file-A (emerge-make-temp-file "A")) |
| 954 | (emerge-file-B (emerge-make-temp-file "B")) | 942 | (emerge-file-B (emerge-make-temp-file "B")) |
| 955 | (emerge-file-ancestor (emerge-make-temp-file "anc"))) | 943 | (emerge-file-ancestor (emerge-make-temp-file "anc"))) |
| 956 | (emerge-eval-in-buffer | 944 | (with-current-buffer |
| 957 | buffer-A | 945 | buffer-A |
| 958 | (write-region (point-min) (point-max) emerge-file-A nil 'no-message)) | 946 | (write-region (point-min) (point-max) emerge-file-A nil 'no-message)) |
| 959 | (emerge-eval-in-buffer | 947 | (with-current-buffer |
| 960 | buffer-B | 948 | buffer-B |
| 961 | (write-region (point-min) (point-max) emerge-file-B nil 'no-message)) | 949 | (write-region (point-min) (point-max) emerge-file-B nil 'no-message)) |
| 962 | (emerge-eval-in-buffer | 950 | (with-current-buffer |
| 963 | buffer-ancestor | 951 | buffer-ancestor |
| 964 | (write-region (point-min) (point-max) emerge-file-ancestor nil | 952 | (write-region (point-min) (point-max) emerge-file-ancestor nil |
| 965 | 'no-message)) | 953 | 'no-message)) |
| @@ -1093,7 +1081,7 @@ This is *not* a user option, since Emerge uses it for its own processing.") | |||
| 1093 | (emerge-file-A (emerge-make-temp-file "A")) | 1081 | (emerge-file-A (emerge-make-temp-file "A")) |
| 1094 | (emerge-file-B (emerge-make-temp-file "B"))) | 1082 | (emerge-file-B (emerge-make-temp-file "B"))) |
| 1095 | ;; Get the revisions into buffers | 1083 | ;; Get the revisions into buffers |
| 1096 | (emerge-eval-in-buffer | 1084 | (with-current-buffer |
| 1097 | buffer-A | 1085 | buffer-A |
| 1098 | (erase-buffer) | 1086 | (erase-buffer) |
| 1099 | (shell-command | 1087 | (shell-command |
| @@ -1101,7 +1089,7 @@ This is *not* a user option, since Emerge uses it for its own processing.") | |||
| 1101 | t) | 1089 | t) |
| 1102 | (write-region (point-min) (point-max) emerge-file-A nil 'no-message) | 1090 | (write-region (point-min) (point-max) emerge-file-A nil 'no-message) |
| 1103 | (set-buffer-modified-p nil)) | 1091 | (set-buffer-modified-p nil)) |
| 1104 | (emerge-eval-in-buffer | 1092 | (with-current-buffer |
| 1105 | buffer-B | 1093 | buffer-B |
| 1106 | (erase-buffer) | 1094 | (erase-buffer) |
| 1107 | (shell-command | 1095 | (shell-command |
| @@ -1131,7 +1119,7 @@ This is *not* a user option, since Emerge uses it for its own processing.") | |||
| 1131 | (emerge-file-B (emerge-make-temp-file "B")) | 1119 | (emerge-file-B (emerge-make-temp-file "B")) |
| 1132 | (emerge-ancestor (emerge-make-temp-file "ancestor"))) | 1120 | (emerge-ancestor (emerge-make-temp-file "ancestor"))) |
| 1133 | ;; Get the revisions into buffers | 1121 | ;; Get the revisions into buffers |
| 1134 | (emerge-eval-in-buffer | 1122 | (with-current-buffer |
| 1135 | buffer-A | 1123 | buffer-A |
| 1136 | (erase-buffer) | 1124 | (erase-buffer) |
| 1137 | (shell-command | 1125 | (shell-command |
| @@ -1140,7 +1128,7 @@ This is *not* a user option, since Emerge uses it for its own processing.") | |||
| 1140 | t) | 1128 | t) |
| 1141 | (write-region (point-min) (point-max) emerge-file-A nil 'no-message) | 1129 | (write-region (point-min) (point-max) emerge-file-A nil 'no-message) |
| 1142 | (set-buffer-modified-p nil)) | 1130 | (set-buffer-modified-p nil)) |
| 1143 | (emerge-eval-in-buffer | 1131 | (with-current-buffer |
| 1144 | buffer-B | 1132 | buffer-B |
| 1145 | (erase-buffer) | 1133 | (erase-buffer) |
| 1146 | (shell-command | 1134 | (shell-command |
| @@ -1148,7 +1136,7 @@ This is *not* a user option, since Emerge uses it for its own processing.") | |||
| 1148 | t) | 1136 | t) |
| 1149 | (write-region (point-min) (point-max) emerge-file-B nil 'no-message) | 1137 | (write-region (point-min) (point-max) emerge-file-B nil 'no-message) |
| 1150 | (set-buffer-modified-p nil)) | 1138 | (set-buffer-modified-p nil)) |
| 1151 | (emerge-eval-in-buffer | 1139 | (with-current-buffer |
| 1152 | buffer-ancestor | 1140 | buffer-ancestor |
| 1153 | (erase-buffer) | 1141 | (erase-buffer) |
| 1154 | (shell-command | 1142 | (shell-command |
| @@ -1379,7 +1367,7 @@ Otherwise, the A or B file present is copied to the output file." | |||
| 1379 | (if pos | 1367 | (if pos |
| 1380 | (goto-char (point-min))) | 1368 | (goto-char (point-min))) |
| 1381 | ;; If diff/diff3 reports errors, display them rather than the merge buffer. | 1369 | ;; If diff/diff3 reports errors, display them rather than the merge buffer. |
| 1382 | (if (/= 0 (emerge-eval-in-buffer emerge-diff-error-buffer (buffer-size))) | 1370 | (if (/= 0 (with-current-buffer emerge-diff-error-buffer (buffer-size))) |
| 1383 | (progn | 1371 | (progn |
| 1384 | (ding) | 1372 | (ding) |
| 1385 | (message "Errors found in diff/diff3 output. Merge buffer is %s." | 1373 | (message "Errors found in diff/diff3 output. Merge buffer is %s." |
| @@ -1434,14 +1422,14 @@ These characteristics are restored by `emerge-restore-buffer-characteristics'." | |||
| 1434 | (do-auto-save) | 1422 | (do-auto-save) |
| 1435 | ;; remember and alter buffer characteristics | 1423 | ;; remember and alter buffer characteristics |
| 1436 | (setq emerge-A-buffer-values | 1424 | (setq emerge-A-buffer-values |
| 1437 | (emerge-eval-in-buffer | 1425 | (with-current-buffer |
| 1438 | emerge-A-buffer | 1426 | emerge-A-buffer |
| 1439 | (prog1 | 1427 | (prog1 |
| 1440 | (emerge-save-variables emerge-saved-variables) | 1428 | (emerge-save-variables emerge-saved-variables) |
| 1441 | (emerge-restore-variables emerge-saved-variables | 1429 | (emerge-restore-variables emerge-saved-variables |
| 1442 | emerge-merging-values)))) | 1430 | emerge-merging-values)))) |
| 1443 | (setq emerge-B-buffer-values | 1431 | (setq emerge-B-buffer-values |
| 1444 | (emerge-eval-in-buffer | 1432 | (with-current-buffer |
| 1445 | emerge-B-buffer | 1433 | emerge-B-buffer |
| 1446 | (prog1 | 1434 | (prog1 |
| 1447 | (emerge-save-variables emerge-saved-variables) | 1435 | (emerge-save-variables emerge-saved-variables) |
| @@ -1452,10 +1440,10 @@ These characteristics are restored by `emerge-restore-buffer-characteristics'." | |||
| 1452 | "Restore characteristics saved by `emerge-remember-buffer-characteristics'." | 1440 | "Restore characteristics saved by `emerge-remember-buffer-characteristics'." |
| 1453 | (let ((A-values emerge-A-buffer-values) | 1441 | (let ((A-values emerge-A-buffer-values) |
| 1454 | (B-values emerge-B-buffer-values)) | 1442 | (B-values emerge-B-buffer-values)) |
| 1455 | (emerge-eval-in-buffer emerge-A-buffer | 1443 | (with-current-buffer emerge-A-buffer |
| 1456 | (emerge-restore-variables emerge-saved-variables | 1444 | (emerge-restore-variables emerge-saved-variables |
| 1457 | A-values)) | 1445 | A-values)) |
| 1458 | (emerge-eval-in-buffer emerge-B-buffer | 1446 | (with-current-buffer emerge-B-buffer |
| 1459 | (emerge-restore-variables emerge-saved-variables | 1447 | (emerge-restore-variables emerge-saved-variables |
| 1460 | B-values)))) | 1448 | B-values)))) |
| 1461 | 1449 | ||
| @@ -1470,15 +1458,15 @@ These characteristics are restored by `emerge-restore-buffer-characteristics'." | |||
| 1470 | merge-buffer | 1458 | merge-buffer |
| 1471 | lineno-list) | 1459 | lineno-list) |
| 1472 | (let* (marker-list | 1460 | (let* (marker-list |
| 1473 | (A-point-min (emerge-eval-in-buffer A-buffer (point-min))) | 1461 | (A-point-min (with-current-buffer A-buffer (point-min))) |
| 1474 | (offset (1- A-point-min)) | 1462 | (offset (1- A-point-min)) |
| 1475 | (B-point-min (emerge-eval-in-buffer B-buffer (point-min))) | 1463 | (B-point-min (with-current-buffer B-buffer (point-min))) |
| 1476 | ;; Record current line number in each buffer | 1464 | ;; Record current line number in each buffer |
| 1477 | ;; so we don't have to count from the beginning. | 1465 | ;; so we don't have to count from the beginning. |
| 1478 | (a-line 1) | 1466 | (a-line 1) |
| 1479 | (b-line 1)) | 1467 | (b-line 1)) |
| 1480 | (emerge-eval-in-buffer A-buffer (goto-char (point-min))) | 1468 | (with-current-buffer A-buffer (goto-char (point-min))) |
| 1481 | (emerge-eval-in-buffer B-buffer (goto-char (point-min))) | 1469 | (with-current-buffer B-buffer (goto-char (point-min))) |
| 1482 | (while lineno-list | 1470 | (while lineno-list |
| 1483 | (let* ((list-element (car lineno-list)) | 1471 | (let* ((list-element (car lineno-list)) |
| 1484 | a-begin-marker | 1472 | a-begin-marker |
| @@ -1493,13 +1481,13 @@ These characteristics are restored by `emerge-restore-buffer-characteristics'." | |||
| 1493 | (b-end (aref list-element 3)) | 1481 | (b-end (aref list-element 3)) |
| 1494 | (state (aref list-element 4))) | 1482 | (state (aref list-element 4))) |
| 1495 | ;; place markers at the appropriate places in the buffers | 1483 | ;; place markers at the appropriate places in the buffers |
| 1496 | (emerge-eval-in-buffer | 1484 | (with-current-buffer |
| 1497 | A-buffer | 1485 | A-buffer |
| 1498 | (setq a-line (emerge-goto-line a-begin a-line)) | 1486 | (setq a-line (emerge-goto-line a-begin a-line)) |
| 1499 | (setq a-begin-marker (point-marker)) | 1487 | (setq a-begin-marker (point-marker)) |
| 1500 | (setq a-line (emerge-goto-line a-end a-line)) | 1488 | (setq a-line (emerge-goto-line a-end a-line)) |
| 1501 | (setq a-end-marker (point-marker))) | 1489 | (setq a-end-marker (point-marker))) |
| 1502 | (emerge-eval-in-buffer | 1490 | (with-current-buffer |
| 1503 | B-buffer | 1491 | B-buffer |
| 1504 | (setq b-line (emerge-goto-line b-begin b-line)) | 1492 | (setq b-line (emerge-goto-line b-begin b-line)) |
| 1505 | (setq b-begin-marker (point-marker)) | 1493 | (setq b-begin-marker (point-marker)) |
| @@ -1759,7 +1747,7 @@ This resets the horizontal scrolling of all three merge buffers | |||
| 1759 | to the left margin, if they are in windows." | 1747 | to the left margin, if they are in windows." |
| 1760 | (interactive) | 1748 | (interactive) |
| 1761 | (emerge-operate-on-windows | 1749 | (emerge-operate-on-windows |
| 1762 | (function (lambda (x) (set-window-hscroll (selected-window) 0))) | 1750 | (lambda (x) (set-window-hscroll (selected-window) 0)) |
| 1763 | nil)) | 1751 | nil)) |
| 1764 | 1752 | ||
| 1765 | ;; Attempt to show the region nicely. | 1753 | ;; Attempt to show the region nicely. |
| @@ -1869,13 +1857,13 @@ buffer after this will cause serious problems." | |||
| 1869 | (emerge-restore-buffer-characteristics) | 1857 | (emerge-restore-buffer-characteristics) |
| 1870 | ;; null out the difference markers so they don't slow down future editing | 1858 | ;; null out the difference markers so they don't slow down future editing |
| 1871 | ;; operations | 1859 | ;; operations |
| 1872 | (mapc (function (lambda (d) | 1860 | (mapc (lambda (d) |
| 1873 | (set-marker (aref d 0) nil) | 1861 | (set-marker (aref d 0) nil) |
| 1874 | (set-marker (aref d 1) nil) | 1862 | (set-marker (aref d 1) nil) |
| 1875 | (set-marker (aref d 2) nil) | 1863 | (set-marker (aref d 2) nil) |
| 1876 | (set-marker (aref d 3) nil) | 1864 | (set-marker (aref d 3) nil) |
| 1877 | (set-marker (aref d 4) nil) | 1865 | (set-marker (aref d 4) nil) |
| 1878 | (set-marker (aref d 5) nil))) | 1866 | (set-marker (aref d 5) nil)) |
| 1879 | emerge-difference-list) | 1867 | emerge-difference-list) |
| 1880 | ;; allow them to be garbage collected | 1868 | ;; allow them to be garbage collected |
| 1881 | (setq emerge-difference-list nil) | 1869 | (setq emerge-difference-list nil) |
| @@ -1900,19 +1888,18 @@ A prefix argument forces the variant to be selected | |||
| 1900 | even if the difference has been edited." | 1888 | even if the difference has been edited." |
| 1901 | (interactive "P") | 1889 | (interactive "P") |
| 1902 | (let ((operate | 1890 | (let ((operate |
| 1903 | (function (lambda () | 1891 | (lambda () |
| 1904 | (emerge-select-A-edit merge-begin merge-end A-begin A-end) | 1892 | (emerge-select-A-edit merge-begin merge-end A-begin A-end) |
| 1905 | (if emerge-auto-advance | 1893 | (if emerge-auto-advance |
| 1906 | (emerge-next-difference))))) | 1894 | (emerge-next-difference)))) |
| 1907 | (operate-no-change | 1895 | (operate-no-change |
| 1908 | (function (lambda () | 1896 | (lambda () (if emerge-auto-advance |
| 1909 | (if emerge-auto-advance | 1897 | (emerge-next-difference))))) |
| 1910 | (emerge-next-difference)))))) | ||
| 1911 | (emerge-select-version force operate-no-change operate operate))) | 1898 | (emerge-select-version force operate-no-change operate operate))) |
| 1912 | 1899 | ||
| 1913 | ;; Actually select the A variant | 1900 | ;; Actually select the A variant |
| 1914 | (defun emerge-select-A-edit (merge-begin merge-end A-begin A-end) | 1901 | (defun emerge-select-A-edit (merge-begin merge-end A-begin A-end) |
| 1915 | (emerge-eval-in-buffer | 1902 | (with-current-buffer |
| 1916 | emerge-merge-buffer | 1903 | emerge-merge-buffer |
| 1917 | (delete-region merge-begin merge-end) | 1904 | (delete-region merge-begin merge-end) |
| 1918 | (goto-char merge-begin) | 1905 | (goto-char merge-begin) |
| @@ -1929,19 +1916,18 @@ A prefix argument forces the variant to be selected | |||
| 1929 | even if the difference has been edited." | 1916 | even if the difference has been edited." |
| 1930 | (interactive "P") | 1917 | (interactive "P") |
| 1931 | (let ((operate | 1918 | (let ((operate |
| 1932 | (function (lambda () | 1919 | (lambda () |
| 1933 | (emerge-select-B-edit merge-begin merge-end B-begin B-end) | 1920 | (emerge-select-B-edit merge-begin merge-end B-begin B-end) |
| 1934 | (if emerge-auto-advance | 1921 | (if emerge-auto-advance |
| 1935 | (emerge-next-difference))))) | 1922 | (emerge-next-difference)))) |
| 1936 | (operate-no-change | 1923 | (operate-no-change |
| 1937 | (function (lambda () | 1924 | (lambda () (if emerge-auto-advance |
| 1938 | (if emerge-auto-advance | 1925 | (emerge-next-difference))))) |
| 1939 | (emerge-next-difference)))))) | ||
| 1940 | (emerge-select-version force operate operate-no-change operate))) | 1926 | (emerge-select-version force operate operate-no-change operate))) |
| 1941 | 1927 | ||
| 1942 | ;; Actually select the B variant | 1928 | ;; Actually select the B variant |
| 1943 | (defun emerge-select-B-edit (merge-begin merge-end B-begin B-end) | 1929 | (defun emerge-select-B-edit (merge-begin merge-end B-begin B-end) |
| 1944 | (emerge-eval-in-buffer | 1930 | (with-current-buffer |
| 1945 | emerge-merge-buffer | 1931 | emerge-merge-buffer |
| 1946 | (delete-region merge-begin merge-end) | 1932 | (delete-region merge-begin merge-end) |
| 1947 | (goto-char merge-begin) | 1933 | (goto-char merge-begin) |
| @@ -2134,12 +2120,12 @@ Use C-u l to reset the windows afterward." | |||
| 2134 | (interactive) | 2120 | (interactive) |
| 2135 | (delete-other-windows) | 2121 | (delete-other-windows) |
| 2136 | (let ((temp-buffer-show-function | 2122 | (let ((temp-buffer-show-function |
| 2137 | (function (lambda (buf) | 2123 | (lambda (buf) |
| 2138 | (split-window-vertically) | 2124 | (split-window-vertically) |
| 2139 | (switch-to-buffer buf) | 2125 | (switch-to-buffer buf) |
| 2140 | (other-window 1))))) | 2126 | (other-window 1)))) |
| 2141 | (with-output-to-temp-buffer "*Help*" | 2127 | (with-output-to-temp-buffer "*Help*" |
| 2142 | (emerge-eval-in-buffer emerge-A-buffer | 2128 | (with-current-buffer emerge-A-buffer |
| 2143 | (if buffer-file-name | 2129 | (if buffer-file-name |
| 2144 | (progn | 2130 | (progn |
| 2145 | (princ "File A is: ") | 2131 | (princ "File A is: ") |
| @@ -2148,7 +2134,7 @@ Use C-u l to reset the windows afterward." | |||
| 2148 | (princ "Buffer A is: ") | 2134 | (princ "Buffer A is: ") |
| 2149 | (princ (buffer-name)))) | 2135 | (princ (buffer-name)))) |
| 2150 | (princ "\n")) | 2136 | (princ "\n")) |
| 2151 | (emerge-eval-in-buffer emerge-B-buffer | 2137 | (with-current-buffer emerge-B-buffer |
| 2152 | (if buffer-file-name | 2138 | (if buffer-file-name |
| 2153 | (progn | 2139 | (progn |
| 2154 | (princ "File B is: ") | 2140 | (princ "File B is: ") |
| @@ -2158,7 +2144,7 @@ Use C-u l to reset the windows afterward." | |||
| 2158 | (princ (buffer-name)))) | 2144 | (princ (buffer-name)))) |
| 2159 | (princ "\n")) | 2145 | (princ "\n")) |
| 2160 | (if emerge-ancestor-buffer | 2146 | (if emerge-ancestor-buffer |
| 2161 | (emerge-eval-in-buffer emerge-ancestor-buffer | 2147 | (with-current-buffer emerge-ancestor-buffer |
| 2162 | (if buffer-file-name | 2148 | (if buffer-file-name |
| 2163 | (progn | 2149 | (progn |
| 2164 | (princ "Ancestor file is: ") | 2150 | (princ "Ancestor file is: ") |
| @@ -2229,9 +2215,9 @@ With a prefix argument, join with the preceding one." | |||
| 2229 | ;; check that this is a valid difference | 2215 | ;; check that this is a valid difference |
| 2230 | (emerge-validate-difference) | 2216 | (emerge-validate-difference) |
| 2231 | ;; get the point values and old difference | 2217 | ;; get the point values and old difference |
| 2232 | (let ((A-point (emerge-eval-in-buffer emerge-A-buffer | 2218 | (let ((A-point (with-current-buffer emerge-A-buffer |
| 2233 | (point-marker))) | 2219 | (point-marker))) |
| 2234 | (B-point (emerge-eval-in-buffer emerge-B-buffer | 2220 | (B-point (with-current-buffer emerge-B-buffer |
| 2235 | (point-marker))) | 2221 | (point-marker))) |
| 2236 | (merge-point (point-marker)) | 2222 | (merge-point (point-marker)) |
| 2237 | (old-diff (aref emerge-difference-list n))) | 2223 | (old-diff (aref emerge-difference-list n))) |
| @@ -2313,10 +2299,10 @@ ancestor version does not share.)" | |||
| 2313 | (while success | 2299 | (while success |
| 2314 | (setq size (min size (- bottom-a top-a) (- bottom-b top-b) | 2300 | (setq size (min size (- bottom-a top-a) (- bottom-b top-b) |
| 2315 | (- bottom-m top-m))) | 2301 | (- bottom-m top-m))) |
| 2316 | (setq sa (emerge-eval-in-buffer emerge-A-buffer | 2302 | (setq sa (with-current-buffer emerge-A-buffer |
| 2317 | (buffer-substring top-a | 2303 | (buffer-substring top-a |
| 2318 | (+ size top-a)))) | 2304 | (+ size top-a)))) |
| 2319 | (setq sb (emerge-eval-in-buffer emerge-B-buffer | 2305 | (setq sb (with-current-buffer emerge-B-buffer |
| 2320 | (buffer-substring top-b | 2306 | (buffer-substring top-b |
| 2321 | (+ size top-b)))) | 2307 | (+ size top-b)))) |
| 2322 | (setq sm (buffer-substring top-m (+ size top-m))) | 2308 | (setq sm (buffer-substring top-m (+ size top-m))) |
| @@ -2335,10 +2321,10 @@ ancestor version does not share.)" | |||
| 2335 | (while success | 2321 | (while success |
| 2336 | (setq size (min size (- bottom-a top-a) (- bottom-b top-b) | 2322 | (setq size (min size (- bottom-a top-a) (- bottom-b top-b) |
| 2337 | (- bottom-m top-m))) | 2323 | (- bottom-m top-m))) |
| 2338 | (setq sa (emerge-eval-in-buffer emerge-A-buffer | 2324 | (setq sa (with-current-buffer emerge-A-buffer |
| 2339 | (buffer-substring (- bottom-a size) | 2325 | (buffer-substring (- bottom-a size) |
| 2340 | bottom-a))) | 2326 | bottom-a))) |
| 2341 | (setq sb (emerge-eval-in-buffer emerge-B-buffer | 2327 | (setq sb (with-current-buffer emerge-B-buffer |
| 2342 | (buffer-substring (- bottom-b size) | 2328 | (buffer-substring (- bottom-b size) |
| 2343 | bottom-b))) | 2329 | bottom-b))) |
| 2344 | (setq sm (buffer-substring (- bottom-m size) bottom-m)) | 2330 | (setq sm (buffer-substring (- bottom-m size) bottom-m)) |
| @@ -2351,14 +2337,14 @@ ancestor version does not share.)" | |||
| 2351 | ;; {top,bottom}-{a,b,m} are now set at the new beginnings and ends | 2337 | ;; {top,bottom}-{a,b,m} are now set at the new beginnings and ends |
| 2352 | ;; of the difference regions. Move them to the beginning of lines, as | 2338 | ;; of the difference regions. Move them to the beginning of lines, as |
| 2353 | ;; appropriate. | 2339 | ;; appropriate. |
| 2354 | (emerge-eval-in-buffer emerge-A-buffer | 2340 | (with-current-buffer emerge-A-buffer |
| 2355 | (goto-char top-a) | 2341 | (goto-char top-a) |
| 2356 | (beginning-of-line) | 2342 | (beginning-of-line) |
| 2357 | (aset diff 0 (point-marker)) | 2343 | (aset diff 0 (point-marker)) |
| 2358 | (goto-char bottom-a) | 2344 | (goto-char bottom-a) |
| 2359 | (beginning-of-line 2) | 2345 | (beginning-of-line 2) |
| 2360 | (aset diff 1 (point-marker))) | 2346 | (aset diff 1 (point-marker))) |
| 2361 | (emerge-eval-in-buffer emerge-B-buffer | 2347 | (with-current-buffer emerge-B-buffer |
| 2362 | (goto-char top-b) | 2348 | (goto-char top-b) |
| 2363 | (beginning-of-line) | 2349 | (beginning-of-line) |
| 2364 | (aset diff 2 (point-marker)) | 2350 | (aset diff 2 (point-marker)) |
| @@ -2413,7 +2399,7 @@ the nearest previous difference." | |||
| 2413 | ;; search for the point in the A buffer, using the markers | 2399 | ;; search for the point in the A buffer, using the markers |
| 2414 | ;; for the beginning and end of the differences in the A buffer | 2400 | ;; for the beginning and end of the differences in the A buffer |
| 2415 | (emerge-find-difference1 arg | 2401 | (emerge-find-difference1 arg |
| 2416 | (emerge-eval-in-buffer emerge-A-buffer (point)) | 2402 | (with-current-buffer emerge-A-buffer (point)) |
| 2417 | 0 1)) | 2403 | 0 1)) |
| 2418 | 2404 | ||
| 2419 | (defun emerge-find-difference-B (arg) | 2405 | (defun emerge-find-difference-B (arg) |
| @@ -2426,7 +2412,7 @@ the nearest previous difference." | |||
| 2426 | ;; search for the point in the B buffer, using the markers | 2412 | ;; search for the point in the B buffer, using the markers |
| 2427 | ;; for the beginning and end of the differences in the B buffer | 2413 | ;; for the beginning and end of the differences in the B buffer |
| 2428 | (emerge-find-difference1 arg | 2414 | (emerge-find-difference1 arg |
| 2429 | (emerge-eval-in-buffer emerge-B-buffer (point)) | 2415 | (with-current-buffer emerge-B-buffer (point)) |
| 2430 | 2 3)) | 2416 | 2 3)) |
| 2431 | 2417 | ||
| 2432 | (defun emerge-find-difference1 (arg location begin end) | 2418 | (defun emerge-find-difference1 (arg location begin end) |
| @@ -2474,16 +2460,19 @@ merge buffers." | |||
| 2474 | (let* ((valid-diff | 2460 | (let* ((valid-diff |
| 2475 | (and (>= emerge-current-difference 0) | 2461 | (and (>= emerge-current-difference 0) |
| 2476 | (< emerge-current-difference emerge-number-of-differences))) | 2462 | (< emerge-current-difference emerge-number-of-differences))) |
| 2477 | (diff (and valid-diff | 2463 | (emerge-line-diff (and valid-diff |
| 2478 | (aref emerge-difference-list emerge-current-difference))) | 2464 | (aref emerge-difference-list |
| 2479 | (merge-line (emerge-line-number-in-buf 4 5)) | 2465 | emerge-current-difference))) |
| 2480 | (A-line (emerge-eval-in-buffer emerge-A-buffer | 2466 | (merge-line (emerge-line-number-in-buf 4 5)) |
| 2481 | (emerge-line-number-in-buf 0 1))) | 2467 | (A-line (with-current-buffer emerge-A-buffer |
| 2482 | (B-line (emerge-eval-in-buffer emerge-B-buffer | 2468 | (emerge-line-number-in-buf 0 1))) |
| 2483 | (emerge-line-number-in-buf 2 3)))) | 2469 | (B-line (with-current-buffer emerge-B-buffer |
| 2470 | (emerge-line-number-in-buf 2 3)))) | ||
| 2484 | (message "At lines: merge = %d, A = %d, B = %d" | 2471 | (message "At lines: merge = %d, A = %d, B = %d" |
| 2485 | merge-line A-line B-line))) | 2472 | merge-line A-line B-line))) |
| 2486 | 2473 | ||
| 2474 | (defvar emerge-line-diff) | ||
| 2475 | |||
| 2487 | (defun emerge-line-number-in-buf (begin-marker end-marker) | 2476 | (defun emerge-line-number-in-buf (begin-marker end-marker) |
| 2488 | (let (temp) | 2477 | (let (temp) |
| 2489 | (setq temp (save-excursion | 2478 | (setq temp (save-excursion |
| @@ -2491,9 +2480,9 @@ merge buffers." | |||
| 2491 | (1+ (count-lines 1 (point))))) | 2480 | (1+ (count-lines 1 (point))))) |
| 2492 | (if valid-diff | 2481 | (if valid-diff |
| 2493 | (progn | 2482 | (progn |
| 2494 | (if (> (point) (aref diff begin-marker)) | 2483 | (if (> (point) (aref emerge-line-diff begin-marker)) |
| 2495 | (setq temp (- temp emerge-before-flag-lines))) | 2484 | (setq temp (- temp emerge-before-flag-lines))) |
| 2496 | (if (> (point) (aref diff end-marker)) | 2485 | (if (> (point) (aref emerge-line-diff end-marker)) |
| 2497 | (setq temp (- temp emerge-after-flag-lines))))) | 2486 | (setq temp (- temp emerge-after-flag-lines))))) |
| 2498 | temp)) | 2487 | temp)) |
| 2499 | 2488 | ||
| @@ -2548,30 +2537,32 @@ been edited." | |||
| 2548 | (error "Register does not contain text")) | 2537 | (error "Register does not contain text")) |
| 2549 | (emerge-combine-versions-internal template force))) | 2538 | (emerge-combine-versions-internal template force))) |
| 2550 | 2539 | ||
| 2551 | (defun emerge-combine-versions-internal (template force) | 2540 | (defun emerge-combine-versions-internal (emerge-combine-template force) |
| 2552 | (let ((operate | 2541 | (let ((operate |
| 2553 | (function (lambda () | 2542 | (lambda () |
| 2554 | (emerge-combine-versions-edit merge-begin merge-end | 2543 | (emerge-combine-versions-edit merge-begin merge-end |
| 2555 | A-begin A-end B-begin B-end) | 2544 | A-begin A-end B-begin B-end) |
| 2556 | (if emerge-auto-advance | 2545 | (if emerge-auto-advance |
| 2557 | (emerge-next-difference)))))) | 2546 | (emerge-next-difference))))) |
| 2558 | (emerge-select-version force operate operate operate))) | 2547 | (emerge-select-version force operate operate operate))) |
| 2559 | 2548 | ||
| 2549 | (defvar emerge-combine-template) | ||
| 2550 | |||
| 2560 | (defun emerge-combine-versions-edit (merge-begin merge-end | 2551 | (defun emerge-combine-versions-edit (merge-begin merge-end |
| 2561 | A-begin A-end B-begin B-end) | 2552 | A-begin A-end B-begin B-end) |
| 2562 | (emerge-eval-in-buffer | 2553 | (with-current-buffer |
| 2563 | emerge-merge-buffer | 2554 | emerge-merge-buffer |
| 2564 | (delete-region merge-begin merge-end) | 2555 | (delete-region merge-begin merge-end) |
| 2565 | (goto-char merge-begin) | 2556 | (goto-char merge-begin) |
| 2566 | (let ((i 0)) | 2557 | (let ((i 0)) |
| 2567 | (while (< i (length template)) | 2558 | (while (< i (length emerge-combine-template)) |
| 2568 | (let ((c (aref template i))) | 2559 | (let ((c (aref emerge-combine-template i))) |
| 2569 | (if (= c ?%) | 2560 | (if (= c ?%) |
| 2570 | (progn | 2561 | (progn |
| 2571 | (setq i (1+ i)) | 2562 | (setq i (1+ i)) |
| 2572 | (setq c | 2563 | (setq c |
| 2573 | (condition-case nil | 2564 | (condition-case nil |
| 2574 | (aref template i) | 2565 | (aref emerge-combine-template i) |
| 2575 | (error ?%))) | 2566 | (error ?%))) |
| 2576 | (cond ((= c ?a) | 2567 | (cond ((= c ?a) |
| 2577 | (insert-buffer-substring emerge-A-buffer A-begin A-end)) | 2568 | (insert-buffer-substring emerge-A-buffer A-begin A-end)) |
| @@ -2620,7 +2611,7 @@ keymap. Leaves merge in fast mode." | |||
| 2620 | (defun emerge-place-flags-in-buffer (buffer difference before-index | 2611 | (defun emerge-place-flags-in-buffer (buffer difference before-index |
| 2621 | after-index) | 2612 | after-index) |
| 2622 | (if buffer | 2613 | (if buffer |
| 2623 | (emerge-eval-in-buffer | 2614 | (with-current-buffer |
| 2624 | buffer | 2615 | buffer |
| 2625 | (emerge-place-flags-in-buffer1 difference before-index after-index)) | 2616 | (emerge-place-flags-in-buffer1 difference before-index after-index)) |
| 2626 | (emerge-place-flags-in-buffer1 difference before-index after-index))) | 2617 | (emerge-place-flags-in-buffer1 difference before-index after-index))) |
| @@ -2689,7 +2680,7 @@ keymap. Leaves merge in fast mode." | |||
| 2689 | (run-hooks 'emerge-unselect-hook)) | 2680 | (run-hooks 'emerge-unselect-hook)) |
| 2690 | 2681 | ||
| 2691 | (defun emerge-remove-flags-in-buffer (buffer before after) | 2682 | (defun emerge-remove-flags-in-buffer (buffer before after) |
| 2692 | (emerge-eval-in-buffer | 2683 | (with-current-buffer |
| 2693 | buffer | 2684 | buffer |
| 2694 | (let ((buffer-read-only nil)) | 2685 | (let ((buffer-read-only nil)) |
| 2695 | ;; remove the flags, if they're there | 2686 | ;; remove the flags, if they're there |
| @@ -2838,11 +2829,11 @@ keymap. Leaves merge in fast mode." | |||
| 2838 | (while (< x-begin x-end) | 2829 | (while (< x-begin x-end) |
| 2839 | ;; bite off and compare no more than 1000 characters at a time | 2830 | ;; bite off and compare no more than 1000 characters at a time |
| 2840 | (let* ((compare-length (min (- x-end x-begin) 1000)) | 2831 | (let* ((compare-length (min (- x-end x-begin) 1000)) |
| 2841 | (x-string (emerge-eval-in-buffer | 2832 | (x-string (with-current-buffer |
| 2842 | buffer-x | 2833 | buffer-x |
| 2843 | (buffer-substring x-begin | 2834 | (buffer-substring x-begin |
| 2844 | (+ x-begin compare-length)))) | 2835 | (+ x-begin compare-length)))) |
| 2845 | (y-string (emerge-eval-in-buffer | 2836 | (y-string (with-current-buffer |
| 2846 | buffer-y | 2837 | buffer-y |
| 2847 | (buffer-substring y-begin | 2838 | (buffer-substring y-begin |
| 2848 | (+ y-begin compare-length))))) | 2839 | (+ y-begin compare-length))))) |
| @@ -2879,9 +2870,9 @@ keymap. Leaves merge in fast mode." | |||
| 2879 | ;; A "function" is anything that funcall can handle as an argument. | 2870 | ;; A "function" is anything that funcall can handle as an argument. |
| 2880 | 2871 | ||
| 2881 | (defun emerge-save-variables (vars) | 2872 | (defun emerge-save-variables (vars) |
| 2882 | (mapcar (function (lambda (v) (if (symbolp v) | 2873 | (mapcar (lambda (v) (if (symbolp v) |
| 2883 | (symbol-value v) | 2874 | (symbol-value v) |
| 2884 | (funcall (car v))))) | 2875 | (funcall (car v)))) |
| 2885 | vars)) | 2876 | vars)) |
| 2886 | 2877 | ||
| 2887 | (defun emerge-restore-variables (vars values) | 2878 | (defun emerge-restore-variables (vars values) |
| @@ -2972,7 +2963,7 @@ around the current difference are removed." | |||
| 2972 | ;; buffer. | 2963 | ;; buffer. |
| 2973 | (defun emerge-copy-modes (buffer) | 2964 | (defun emerge-copy-modes (buffer) |
| 2974 | ;; Set the major mode | 2965 | ;; Set the major mode |
| 2975 | (funcall (emerge-eval-in-buffer buffer major-mode))) | 2966 | (funcall (with-current-buffer buffer major-mode))) |
| 2976 | 2967 | ||
| 2977 | ;; Define a key, even if a prefix of it is defined | 2968 | ;; Define a key, even if a prefix of it is defined |
| 2978 | (defun emerge-force-define-key (keymap key definition) | 2969 | (defun emerge-force-define-key (keymap key definition) |
| @@ -3163,11 +3154,11 @@ See also `auto-save-file-name-p'." | |||
| 3163 | (aref s i)) | 3154 | (aref s i)) |
| 3164 | 65536)) | 3155 | 65536)) |
| 3165 | (setq i (1+ i))) | 3156 | (setq i (1+ i))) |
| 3166 | (mapconcat (function (lambda (b) | 3157 | (mapconcat (lambda (b) |
| 3167 | (setq b (+ (% b 93) ?!)) | 3158 | (setq b (+ (% b 93) ?!)) |
| 3168 | (if (>= b ?/) | 3159 | (if (>= b ?/) |
| 3169 | (setq b (1+ b))) | 3160 | (setq b (1+ b))) |
| 3170 | (char-to-string b))) | 3161 | (char-to-string b)) |
| 3171 | bins ""))) | 3162 | bins ""))) |
| 3172 | 3163 | ||
| 3173 | ;; Quote any /s in a string by replacing them with \!. | 3164 | ;; Quote any /s in a string by replacing them with \!. |
| @@ -3205,5 +3196,4 @@ More precisely, a [...] regexp to match any one such character." | |||
| 3205 | 3196 | ||
| 3206 | (provide 'emerge) | 3197 | (provide 'emerge) |
| 3207 | 3198 | ||
| 3208 | ;; arch-tag: a575f092-6e44-400e-b8a2-4124e9377585 | ||
| 3209 | ;;; emerge.el ends here | 3199 | ;;; emerge.el ends here |