diff options
| author | Matthew Carter | 2016-01-30 22:09:28 -0500 |
|---|---|---|
| committer | Matthew Carter | 2016-01-30 22:09:28 -0500 |
| commit | 4699c325be1fa5daa258719a935f40b36664fcf2 (patch) | |
| tree | 3d88dfd9a52485ae7bc37dfffc34ee6655d446ce | |
| parent | 440a35f6b5770596981189ad65eaa5750b901908 (diff) | |
| parent | bdfee01a6567b9f08f82bc84d1196e6cb62587ca (diff) | |
| download | emacs-4699c325be1fa5daa258719a935f40b36664fcf2.tar.gz emacs-4699c325be1fa5daa258719a935f40b36664fcf2.zip | |
Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
| -rw-r--r-- | lisp/vc/smerge-mode.el | 179 | ||||
| -rw-r--r-- | src/lastfile.c | 4 |
2 files changed, 106 insertions, 77 deletions
diff --git a/lisp/vc/smerge-mode.el b/lisp/vc/smerge-mode.el index 489ece81bec..5198624ea7f 100644 --- a/lisp/vc/smerge-mode.el +++ b/lisp/vc/smerge-mode.el | |||
| @@ -67,34 +67,34 @@ | |||
| 67 | (append '("-d" "-b") | 67 | (append '("-d" "-b") |
| 68 | (if (listp diff-switches) diff-switches (list diff-switches))) | 68 | (if (listp diff-switches) diff-switches (list diff-switches))) |
| 69 | "A list of strings specifying switches to be passed to diff. | 69 | "A list of strings specifying switches to be passed to diff. |
| 70 | Used in `smerge-diff-base-mine' and related functions." | 70 | Used in `smerge-diff-base-upper' and related functions." |
| 71 | :type '(repeat string)) | 71 | :type '(repeat string)) |
| 72 | 72 | ||
| 73 | (defcustom smerge-auto-leave t | 73 | (defcustom smerge-auto-leave t |
| 74 | "Non-nil means to leave `smerge-mode' when the last conflict is resolved." | 74 | "Non-nil means to leave `smerge-mode' when the last conflict is resolved." |
| 75 | :type 'boolean) | 75 | :type 'boolean) |
| 76 | 76 | ||
| 77 | (defface smerge-mine | 77 | (defface smerge-upper |
| 78 | '((((class color) (min-colors 88) (background light)) | 78 | '((((class color) (min-colors 88) (background light)) |
| 79 | :background "#ffdddd") | 79 | :background "#ffdddd") |
| 80 | (((class color) (min-colors 88) (background dark)) | 80 | (((class color) (min-colors 88) (background dark)) |
| 81 | :background "#553333") | 81 | :background "#553333") |
| 82 | (((class color)) | 82 | (((class color)) |
| 83 | :foreground "red")) | 83 | :foreground "red")) |
| 84 | "Face for your code.") | 84 | "Face for the `upper' version of a conflict.") |
| 85 | (define-obsolete-face-alias 'smerge-mine-face 'smerge-mine "22.1") | 85 | (define-obsolete-face-alias 'smerge-mine 'smerge-upper "25.2") |
| 86 | (defvar smerge-mine-face 'smerge-mine) | 86 | (defvar smerge-upper-face 'smerge-upper) |
| 87 | 87 | ||
| 88 | (defface smerge-other | 88 | (defface smerge-lower |
| 89 | '((((class color) (min-colors 88) (background light)) | 89 | '((((class color) (min-colors 88) (background light)) |
| 90 | :background "#ddffdd") | 90 | :background "#ddffdd") |
| 91 | (((class color) (min-colors 88) (background dark)) | 91 | (((class color) (min-colors 88) (background dark)) |
| 92 | :background "#335533") | 92 | :background "#335533") |
| 93 | (((class color)) | 93 | (((class color)) |
| 94 | :foreground "green")) | 94 | :foreground "green")) |
| 95 | "Face for the other code.") | 95 | "Face for the `lower' version of a conflict.") |
| 96 | (define-obsolete-face-alias 'smerge-other-face 'smerge-other "22.1") | 96 | (define-obsolete-face-alias 'smerge-other 'smerge-lower "25.2") |
| 97 | (defvar smerge-other-face 'smerge-other) | 97 | (defvar smerge-lower-face 'smerge-lower) |
| 98 | 98 | ||
| 99 | (defface smerge-base | 99 | (defface smerge-base |
| 100 | '((((class color) (min-colors 88) (background light)) | 100 | '((((class color) (min-colors 88) (background light)) |
| @@ -149,16 +149,18 @@ Used in `smerge-diff-base-mine' and related functions." | |||
| 149 | ("r" . smerge-resolve) | 149 | ("r" . smerge-resolve) |
| 150 | ("a" . smerge-keep-all) | 150 | ("a" . smerge-keep-all) |
| 151 | ("b" . smerge-keep-base) | 151 | ("b" . smerge-keep-base) |
| 152 | ("o" . smerge-keep-other) | 152 | ("o" . smerge-keep-lower) ; for the obsolete keep-other |
| 153 | ("m" . smerge-keep-mine) | 153 | ("l" . smerge-keep-lower) |
| 154 | ("m" . smerge-keep-upper) ; for the obsolete keep-mine | ||
| 155 | ("u" . smerge-keep-upper) | ||
| 154 | ("E" . smerge-ediff) | 156 | ("E" . smerge-ediff) |
| 155 | ("C" . smerge-combine-with-next) | 157 | ("C" . smerge-combine-with-next) |
| 156 | ("R" . smerge-refine) | 158 | ("R" . smerge-refine) |
| 157 | ("\C-m" . smerge-keep-current) | 159 | ("\C-m" . smerge-keep-current) |
| 158 | ("=" . ,(make-sparse-keymap "Diff")) | 160 | ("=" . ,(make-sparse-keymap "Diff")) |
| 159 | ("=<" "base-mine" . smerge-diff-base-mine) | 161 | ("=<" "base-upper" . smerge-diff-base-upper) |
| 160 | ("=>" "base-other" . smerge-diff-base-other) | 162 | ("=>" "base-lower" . smerge-diff-base-lower) |
| 161 | ("==" "mine-other" . smerge-diff-mine-other)) | 163 | ("==" "upper-lower" . smerge-diff-upper-lower)) |
| 162 | "The base keymap for `smerge-mode'.") | 164 | "The base keymap for `smerge-mode'.") |
| 163 | 165 | ||
| 164 | (defcustom smerge-command-prefix "\C-c^" | 166 | (defcustom smerge-command-prefix "\C-c^" |
| @@ -196,19 +198,19 @@ Used in `smerge-diff-base-mine' and related functions." | |||
| 196 | "--" | 198 | "--" |
| 197 | ["Revert to Base" smerge-keep-base :help "Revert to base version" | 199 | ["Revert to Base" smerge-keep-base :help "Revert to base version" |
| 198 | :active (smerge-check 2)] | 200 | :active (smerge-check 2)] |
| 199 | ["Keep Other" smerge-keep-other :help "Keep `other' version" | 201 | ["Keep Upper" smerge-keep-upper :help "Keep `upper' version" |
| 200 | :active (smerge-check 3)] | ||
| 201 | ["Keep Yours" smerge-keep-mine :help "Keep your version" | ||
| 202 | :active (smerge-check 1)] | 202 | :active (smerge-check 1)] |
| 203 | ["Keep Lower" smerge-keep-lower :help "Keep `lower' version" | ||
| 204 | :active (smerge-check 3)] | ||
| 203 | "--" | 205 | "--" |
| 204 | ["Diff Base/Mine" smerge-diff-base-mine | 206 | ["Diff Base/Upper" smerge-diff-base-upper |
| 205 | :help "Diff `base' and `mine' for current conflict" | 207 | :help "Diff `base' and `upper' for current conflict" |
| 206 | :active (smerge-check 2)] | 208 | :active (smerge-check 2)] |
| 207 | ["Diff Base/Other" smerge-diff-base-other | 209 | ["Diff Base/Lower" smerge-diff-base-lower |
| 208 | :help "Diff `base' and `other' for current conflict" | 210 | :help "Diff `base' and `lower' for current conflict" |
| 209 | :active (smerge-check 2)] | 211 | :active (smerge-check 2)] |
| 210 | ["Diff Mine/Other" smerge-diff-mine-other | 212 | ["Diff Upper/Lower" smerge-diff-upper-lower |
| 211 | :help "Diff `mine' and `other' for current conflict" | 213 | :help "Diff `upper' and `lower' for current conflict" |
| 212 | :active (smerge-check 1)] | 214 | :active (smerge-check 1)] |
| 213 | "--" | 215 | "--" |
| 214 | ["Invoke Ediff" smerge-ediff | 216 | ["Invoke Ediff" smerge-ediff |
| @@ -223,7 +225,7 @@ Used in `smerge-diff-base-mine' and related functions." | |||
| 223 | )) | 225 | )) |
| 224 | 226 | ||
| 225 | (easy-menu-define smerge-context-menu nil | 227 | (easy-menu-define smerge-context-menu nil |
| 226 | "Context menu for mine area in `smerge-mode'." | 228 | "Context menu for upper area in `smerge-mode'." |
| 227 | '(nil | 229 | '(nil |
| 228 | ["Keep Current" smerge-keep-current :help "Use current (at point) version"] | 230 | ["Keep Current" smerge-keep-current :help "Use current (at point) version"] |
| 229 | ["Kill Current" smerge-kill-current :help "Remove current (at point) version"] | 231 | ["Kill Current" smerge-kill-current :help "Remove current (at point) version"] |
| @@ -234,9 +236,9 @@ Used in `smerge-diff-base-mine' and related functions." | |||
| 234 | 236 | ||
| 235 | (defconst smerge-font-lock-keywords | 237 | (defconst smerge-font-lock-keywords |
| 236 | '((smerge-find-conflict | 238 | '((smerge-find-conflict |
| 237 | (1 smerge-mine-face prepend t) | 239 | (1 smerge-upper-face prepend t) |
| 238 | (2 smerge-base-face prepend t) | 240 | (2 smerge-base-face prepend t) |
| 239 | (3 smerge-other-face prepend t) | 241 | (3 smerge-lower-face prepend t) |
| 240 | ;; FIXME: `keep' doesn't work right with syntactic fontification. | 242 | ;; FIXME: `keep' doesn't work right with syntactic fontification. |
| 241 | (0 smerge-markers-face keep) | 243 | (0 smerge-markers-face keep) |
| 242 | (4 nil t t) | 244 | (4 nil t t) |
| @@ -246,7 +248,7 @@ Used in `smerge-diff-base-mine' and related functions." | |||
| 246 | (defconst smerge-begin-re "^<<<<<<< \\(.*\\)\n") | 248 | (defconst smerge-begin-re "^<<<<<<< \\(.*\\)\n") |
| 247 | (defconst smerge-end-re "^>>>>>>> \\(.*\\)\n") | 249 | (defconst smerge-end-re "^>>>>>>> \\(.*\\)\n") |
| 248 | (defconst smerge-base-re "^||||||| \\(.*\\)\n") | 250 | (defconst smerge-base-re "^||||||| \\(.*\\)\n") |
| 249 | (defconst smerge-other-re "^=======\n") | 251 | (defconst smerge-lower-re "^=======\n") |
| 250 | 252 | ||
| 251 | (defvar smerge-conflict-style nil | 253 | (defvar smerge-conflict-style nil |
| 252 | "Keep track of which style of conflict is in use. | 254 | "Keep track of which style of conflict is in use. |
| @@ -267,7 +269,7 @@ Can be nil if the style is undecided, or else: | |||
| 267 | (if diff-auto-refine-mode | 269 | (if diff-auto-refine-mode |
| 268 | (condition-case nil (smerge-refine) (error nil)))) | 270 | (condition-case nil (smerge-refine) (error nil)))) |
| 269 | 271 | ||
| 270 | (defconst smerge-match-names ["conflict" "mine" "base" "other"]) | 272 | (defconst smerge-match-names ["conflict" "upper" "base" "lower"]) |
| 271 | 273 | ||
| 272 | (defun smerge-ensure-match (n) | 274 | (defun smerge-ensure-match (n) |
| 273 | (unless (match-end n) | 275 | (unless (match-end n) |
| @@ -570,7 +572,7 @@ major modes. Uses `smerge-resolve-function' to do the actual work." | |||
| 570 | (zerop (call-process diff-command nil buf nil "-bc" b m))) | 572 | (zerop (call-process diff-command nil buf nil "-bc" b m))) |
| 571 | (set-match-data md) | 573 | (set-match-data md) |
| 572 | (smerge-keep-n 3)) | 574 | (smerge-keep-n 3)) |
| 573 | ;; Try "diff -b BASE MINE | patch OTHER". | 575 | ;; Try "diff -b BASE UPPER | patch LOWER". |
| 574 | ((when (and (not safe) m2e b | 576 | ((when (and (not safe) m2e b |
| 575 | ;; If the BASE is empty, this would just concatenate | 577 | ;; If the BASE is empty, this would just concatenate |
| 576 | ;; the two, which is rarely right. | 578 | ;; the two, which is rarely right. |
| @@ -585,7 +587,7 @@ major modes. Uses `smerge-resolve-function' to do the actual work." | |||
| 585 | (narrow-to-region m0b m0e) | 587 | (narrow-to-region m0b m0e) |
| 586 | (smerge-remove-props m0b m0e) | 588 | (smerge-remove-props m0b m0e) |
| 587 | (insert-file-contents o nil nil nil t))) | 589 | (insert-file-contents o nil nil nil t))) |
| 588 | ;; Try "diff -b BASE OTHER | patch MINE". | 590 | ;; Try "diff -b BASE LOWER | patch UPPER". |
| 589 | ((when (and (not safe) m2e b | 591 | ((when (and (not safe) m2e b |
| 590 | ;; If the BASE is empty, this would just concatenate | 592 | ;; If the BASE is empty, this would just concatenate |
| 591 | ;; the two, which is rarely right. | 593 | ;; the two, which is rarely right. |
| @@ -685,22 +687,40 @@ major modes. Uses `smerge-resolve-function' to do the actual work." | |||
| 685 | (smerge-keep-n 2) | 687 | (smerge-keep-n 2) |
| 686 | (smerge-auto-leave)) | 688 | (smerge-auto-leave)) |
| 687 | 689 | ||
| 688 | (defun smerge-keep-other () | 690 | (defun smerge-keep-lower () |
| 689 | "Use \"other\" version." | 691 | "Keep the \"lower\" version of a merge conflict. |
| 692 | In a conflict that looks like: | ||
| 693 | <<<<<<< | ||
| 694 | UUU | ||
| 695 | ======= | ||
| 696 | LLL | ||
| 697 | >>>>>>> | ||
| 698 | this keeps \"LLL\"." | ||
| 690 | (interactive) | 699 | (interactive) |
| 691 | (smerge-match-conflict) | 700 | (smerge-match-conflict) |
| 692 | ;;(smerge-ensure-match 3) | 701 | ;;(smerge-ensure-match 3) |
| 693 | (smerge-keep-n 3) | 702 | (smerge-keep-n 3) |
| 694 | (smerge-auto-leave)) | 703 | (smerge-auto-leave)) |
| 695 | 704 | ||
| 696 | (defun smerge-keep-mine () | 705 | (define-obsolete-function-alias 'smerge-keep-other 'smerge-keep-lower "25.2") |
| 697 | "Keep your version." | 706 | |
| 707 | (defun smerge-keep-upper () | ||
| 708 | "Keep the \"upper\" version of a merge conflict. | ||
| 709 | In a conflict that looks like: | ||
| 710 | <<<<<<< | ||
| 711 | UUU | ||
| 712 | ======= | ||
| 713 | LLL | ||
| 714 | >>>>>>> | ||
| 715 | this keeps \"UUU\"." | ||
| 698 | (interactive) | 716 | (interactive) |
| 699 | (smerge-match-conflict) | 717 | (smerge-match-conflict) |
| 700 | ;;(smerge-ensure-match 1) | 718 | ;;(smerge-ensure-match 1) |
| 701 | (smerge-keep-n 1) | 719 | (smerge-keep-n 1) |
| 702 | (smerge-auto-leave)) | 720 | (smerge-auto-leave)) |
| 703 | 721 | ||
| 722 | (define-obsolete-function-alias 'smerge-keep-mine 'smerge-keep-upper "25.2") | ||
| 723 | |||
| 704 | (defun smerge-get-current () | 724 | (defun smerge-get-current () |
| 705 | (let ((i 3)) | 725 | (let ((i 3)) |
| 706 | (while (or (not (match-end i)) | 726 | (while (or (not (match-end i)) |
| @@ -734,28 +754,37 @@ major modes. Uses `smerge-resolve-function' to do the actual work." | |||
| 734 | (smerge-keep-n (car left)) | 754 | (smerge-keep-n (car left)) |
| 735 | (smerge-auto-leave)))))) | 755 | (smerge-auto-leave)))))) |
| 736 | 756 | ||
| 737 | (defun smerge-diff-base-mine () | 757 | (defun smerge-diff-base-upper () |
| 738 | "Diff `base' and `mine' version in current conflict region." | 758 | "Diff `base' and `upper' version in current conflict region." |
| 739 | (interactive) | 759 | (interactive) |
| 740 | (smerge-diff 2 1)) | 760 | (smerge-diff 2 1)) |
| 741 | 761 | ||
| 742 | (defun smerge-diff-base-other () | 762 | (define-obsolete-function-alias 'smerge-diff-base-mine |
| 743 | "Diff `base' and `other' version in current conflict region." | 763 | 'smerge-diff-base-upper "25.2") |
| 764 | |||
| 765 | (defun smerge-diff-base-lower () | ||
| 766 | "Diff `base' and `lower' version in current conflict region." | ||
| 744 | (interactive) | 767 | (interactive) |
| 745 | (smerge-diff 2 3)) | 768 | (smerge-diff 2 3)) |
| 746 | 769 | ||
| 747 | (defun smerge-diff-mine-other () | 770 | (define-obsolete-function-alias 'smerge-diff-base-other |
| 748 | "Diff `mine' and `other' version in current conflict region." | 771 | 'smerge-diff-base-lower "25.2") |
| 772 | |||
| 773 | (defun smerge-diff-upper-lower () | ||
| 774 | "Diff `upper' and `lower' version in current conflict region." | ||
| 749 | (interactive) | 775 | (interactive) |
| 750 | (smerge-diff 1 3)) | 776 | (smerge-diff 1 3)) |
| 751 | 777 | ||
| 778 | (define-obsolete-function-alias 'smerge-diff-mine-other | ||
| 779 | 'smerge-diff-upper-lower "25.2") | ||
| 780 | |||
| 752 | (defun smerge-match-conflict () | 781 | (defun smerge-match-conflict () |
| 753 | "Get info about the conflict. Puts the info in the `match-data'. | 782 | "Get info about the conflict. Puts the info in the `match-data'. |
| 754 | The submatches contain: | 783 | The submatches contain: |
| 755 | 0: the whole conflict. | 784 | 0: the whole conflict. |
| 756 | 1: your code. | 785 | 1: upper version of the code. |
| 757 | 2: the base code. | 786 | 2: base version of the code. |
| 758 | 3: other code. | 787 | 3: lower version of the code. |
| 759 | An error is raised if not inside a conflict." | 788 | An error is raised if not inside a conflict." |
| 760 | (save-excursion | 789 | (save-excursion |
| 761 | (condition-case nil | 790 | (condition-case nil |
| @@ -765,26 +794,26 @@ An error is raised if not inside a conflict." | |||
| 765 | (_ (re-search-backward smerge-begin-re)) | 794 | (_ (re-search-backward smerge-begin-re)) |
| 766 | 795 | ||
| 767 | (start (match-beginning 0)) | 796 | (start (match-beginning 0)) |
| 768 | (mine-start (match-end 0)) | 797 | (upper-start (match-end 0)) |
| 769 | (filename (or (match-string 1) "")) | 798 | (filename (or (match-string 1) "")) |
| 770 | 799 | ||
| 771 | (_ (re-search-forward smerge-end-re)) | 800 | (_ (re-search-forward smerge-end-re)) |
| 772 | (_ (cl-assert (< orig-point (match-end 0)))) | 801 | (_ (cl-assert (< orig-point (match-end 0)))) |
| 773 | 802 | ||
| 774 | (other-end (match-beginning 0)) | 803 | (lower-end (match-beginning 0)) |
| 775 | (end (match-end 0)) | 804 | (end (match-end 0)) |
| 776 | 805 | ||
| 777 | (_ (re-search-backward smerge-other-re start)) | 806 | (_ (re-search-backward smerge-lower-re start)) |
| 778 | 807 | ||
| 779 | (mine-end (match-beginning 0)) | 808 | (upper-end (match-beginning 0)) |
| 780 | (other-start (match-end 0)) | 809 | (lower-start (match-end 0)) |
| 781 | 810 | ||
| 782 | base-start base-end) | 811 | base-start base-end) |
| 783 | 812 | ||
| 784 | ;; handle the various conflict styles | 813 | ;; handle the various conflict styles |
| 785 | (cond | 814 | (cond |
| 786 | ((save-excursion | 815 | ((save-excursion |
| 787 | (goto-char mine-start) | 816 | (goto-char upper-start) |
| 788 | (re-search-forward smerge-begin-re end t)) | 817 | (re-search-forward smerge-begin-re end t)) |
| 789 | ;; There's a nested conflict and we're after the beginning | 818 | ;; There's a nested conflict and we're after the beginning |
| 790 | ;; of the outer one but before the beginning of the inner one. | 819 | ;; of the outer one but before the beginning of the inner one. |
| @@ -797,8 +826,8 @@ An error is raised if not inside a conflict." | |||
| 797 | ((re-search-backward smerge-base-re start t) | 826 | ((re-search-backward smerge-base-re start t) |
| 798 | ;; a 3-parts conflict | 827 | ;; a 3-parts conflict |
| 799 | (set (make-local-variable 'smerge-conflict-style) 'diff3-A) | 828 | (set (make-local-variable 'smerge-conflict-style) 'diff3-A) |
| 800 | (setq base-end mine-end) | 829 | (setq base-end upper-end) |
| 801 | (setq mine-end (match-beginning 0)) | 830 | (setq upper-end (match-beginning 0)) |
| 802 | (setq base-start (match-end 0))) | 831 | (setq base-start (match-end 0))) |
| 803 | 832 | ||
| 804 | ((string= filename (file-name-nondirectory | 833 | ((string= filename (file-name-nondirectory |
| @@ -811,17 +840,17 @@ An error is raised if not inside a conflict." | |||
| 811 | (equal filename "ANCESTOR") | 840 | (equal filename "ANCESTOR") |
| 812 | (string-match "\\`[.0-9]+\\'" filename))) | 841 | (string-match "\\`[.0-9]+\\'" filename))) |
| 813 | ;; a same-diff conflict | 842 | ;; a same-diff conflict |
| 814 | (setq base-start mine-start) | 843 | (setq base-start upper-start) |
| 815 | (setq base-end mine-end) | 844 | (setq base-end upper-end) |
| 816 | (setq mine-start other-start) | 845 | (setq upper-start lower-start) |
| 817 | (setq mine-end other-end))) | 846 | (setq upper-end lower-end))) |
| 818 | 847 | ||
| 819 | (store-match-data (list start end | 848 | (store-match-data (list start end |
| 820 | mine-start mine-end | 849 | upper-start upper-end |
| 821 | base-start base-end | 850 | base-start base-end |
| 822 | other-start other-end | 851 | lower-start lower-end |
| 823 | (when base-start (1- base-start)) base-start | 852 | (when base-start (1- base-start)) base-start |
| 824 | (1- other-start) other-start)) | 853 | (1- lower-start) lower-start)) |
| 825 | t) | 854 | t) |
| 826 | (search-failed (user-error "Point not in conflict region"))))) | 855 | (search-failed (user-error "Point not in conflict region"))))) |
| 827 | 856 | ||
| @@ -1133,10 +1162,10 @@ repeating the command will highlight other two parts." | |||
| 1133 | '((smerge . refine) (face . smerge-refined-added)))))) | 1162 | '((smerge . refine) (face . smerge-refined-added)))))) |
| 1134 | 1163 | ||
| 1135 | (defun smerge-swap () | 1164 | (defun smerge-swap () |
| 1136 | "Swap the \"Mine\" and the \"Other\" chunks. | 1165 | "Swap the \"Upper\" and the \"Lower\" chunks. |
| 1137 | Can be used before things like `smerge-keep-all' or `smerge-resolve' where the | 1166 | Can be used before things like `smerge-keep-all' or `smerge-resolve' where the |
| 1138 | ordering can have some subtle influence on the result, such as preferring the | 1167 | ordering can have some subtle influence on the result, such as preferring the |
| 1139 | spacing of the \"Other\" chunk." | 1168 | spacing of the \"Lower\" chunk." |
| 1140 | (interactive) | 1169 | (interactive) |
| 1141 | (smerge-match-conflict) | 1170 | (smerge-match-conflict) |
| 1142 | (goto-char (match-beginning 3)) | 1171 | (goto-char (match-beginning 3)) |
| @@ -1205,9 +1234,9 @@ spacing of the \"Other\" chunk." | |||
| 1205 | default))) | 1234 | default))) |
| 1206 | 1235 | ||
| 1207 | ;;;###autoload | 1236 | ;;;###autoload |
| 1208 | (defun smerge-ediff (&optional name-mine name-other name-base) | 1237 | (defun smerge-ediff (&optional name-upper name-lower name-base) |
| 1209 | "Invoke ediff to resolve the conflicts. | 1238 | "Invoke ediff to resolve the conflicts. |
| 1210 | NAME-MINE, NAME-OTHER, and NAME-BASE, if non-nil, are used for the | 1239 | NAME-UPPER, NAME-LOWER, and NAME-BASE, if non-nil, are used for the |
| 1211 | buffer names." | 1240 | buffer names." |
| 1212 | (interactive) | 1241 | (interactive) |
| 1213 | (let* ((buf (current-buffer)) | 1242 | (let* ((buf (current-buffer)) |
| @@ -1215,18 +1244,18 @@ buffer names." | |||
| 1215 | ;;(ediff-default-variant 'default-B) | 1244 | ;;(ediff-default-variant 'default-B) |
| 1216 | (config (current-window-configuration)) | 1245 | (config (current-window-configuration)) |
| 1217 | (filename (file-name-nondirectory (or buffer-file-name "-"))) | 1246 | (filename (file-name-nondirectory (or buffer-file-name "-"))) |
| 1218 | (mine (generate-new-buffer | 1247 | (upper (generate-new-buffer |
| 1219 | (or name-mine | 1248 | (or name-upper |
| 1220 | (concat "*" filename " " | 1249 | (concat "*" filename " " |
| 1221 | (smerge--get-marker smerge-begin-re "MINE") | 1250 | (smerge--get-marker smerge-begin-re "UPPER") |
| 1222 | "*")))) | 1251 | "*")))) |
| 1223 | (other (generate-new-buffer | 1252 | (lower (generate-new-buffer |
| 1224 | (or name-other | 1253 | (or name-lower |
| 1225 | (concat "*" filename " " | 1254 | (concat "*" filename " " |
| 1226 | (smerge--get-marker smerge-end-re "OTHER") | 1255 | (smerge--get-marker smerge-end-re "LOWER") |
| 1227 | "*")))) | 1256 | "*")))) |
| 1228 | base) | 1257 | base) |
| 1229 | (with-current-buffer mine | 1258 | (with-current-buffer upper |
| 1230 | (buffer-disable-undo) | 1259 | (buffer-disable-undo) |
| 1231 | (insert-buffer-substring buf) | 1260 | (insert-buffer-substring buf) |
| 1232 | (goto-char (point-min)) | 1261 | (goto-char (point-min)) |
| @@ -1237,7 +1266,7 @@ buffer names." | |||
| 1237 | (set-buffer-modified-p nil) | 1266 | (set-buffer-modified-p nil) |
| 1238 | (funcall mode)) | 1267 | (funcall mode)) |
| 1239 | 1268 | ||
| 1240 | (with-current-buffer other | 1269 | (with-current-buffer lower |
| 1241 | (buffer-disable-undo) | 1270 | (buffer-disable-undo) |
| 1242 | (insert-buffer-substring buf) | 1271 | (insert-buffer-substring buf) |
| 1243 | (goto-char (point-min)) | 1272 | (goto-char (point-min)) |
| @@ -1269,9 +1298,9 @@ buffer names." | |||
| 1269 | ;; Fire up ediff. | 1298 | ;; Fire up ediff. |
| 1270 | (set-buffer | 1299 | (set-buffer |
| 1271 | (if base | 1300 | (if base |
| 1272 | (ediff-merge-buffers-with-ancestor mine other base) | 1301 | (ediff-merge-buffers-with-ancestor upper lower base) |
| 1273 | ;; nil 'ediff-merge-revisions-with-ancestor buffer-file-name) | 1302 | ;; nil 'ediff-merge-revisions-with-ancestor buffer-file-name) |
| 1274 | (ediff-merge-buffers mine other))) | 1303 | (ediff-merge-buffers upper lower))) |
| 1275 | ;; nil 'ediff-merge-revisions buffer-file-name))) | 1304 | ;; nil 'ediff-merge-revisions buffer-file-name))) |
| 1276 | 1305 | ||
| 1277 | ;; Ediff is now set up, and we are in the control buffer. | 1306 | ;; Ediff is now set up, and we are in the control buffer. |
| @@ -1313,21 +1342,21 @@ with a \\[universal-argument] prefix, makes up a 3-way conflict." | |||
| 1313 | (pcase-let ((`(,pt1 ,pt2 ,pt3 ,pt4) | 1342 | (pcase-let ((`(,pt1 ,pt2 ,pt3 ,pt4) |
| 1314 | (sort `(,pt1 ,pt2 ,pt3 ,@(if pt4 (list pt4))) '>=))) | 1343 | (sort `(,pt1 ,pt2 ,pt3 ,@(if pt4 (list pt4))) '>=))) |
| 1315 | (goto-char pt1) (beginning-of-line) | 1344 | (goto-char pt1) (beginning-of-line) |
| 1316 | (insert ">>>>>>> OTHER\n") | 1345 | (insert ">>>>>>> LOWER\n") |
| 1317 | (goto-char pt2) (beginning-of-line) | 1346 | (goto-char pt2) (beginning-of-line) |
| 1318 | (insert "=======\n") | 1347 | (insert "=======\n") |
| 1319 | (goto-char pt3) (beginning-of-line) | 1348 | (goto-char pt3) (beginning-of-line) |
| 1320 | (when pt4 | 1349 | (when pt4 |
| 1321 | (insert "||||||| BASE\n") | 1350 | (insert "||||||| BASE\n") |
| 1322 | (goto-char pt4) (beginning-of-line)) | 1351 | (goto-char pt4) (beginning-of-line)) |
| 1323 | (insert "<<<<<<< MINE\n")) | 1352 | (insert "<<<<<<< UPPER\n")) |
| 1324 | (if smerge-mode nil (smerge-mode 1)) | 1353 | (if smerge-mode nil (smerge-mode 1)) |
| 1325 | (smerge-refine)) | 1354 | (smerge-refine)) |
| 1326 | 1355 | ||
| 1327 | 1356 | ||
| 1328 | (defconst smerge-parsep-re | 1357 | (defconst smerge-parsep-re |
| 1329 | (concat smerge-begin-re "\\|" smerge-end-re "\\|" | 1358 | (concat smerge-begin-re "\\|" smerge-end-re "\\|" |
| 1330 | smerge-base-re "\\|" smerge-other-re "\\|")) | 1359 | smerge-base-re "\\|" smerge-lower-re "\\|")) |
| 1331 | 1360 | ||
| 1332 | ;;;###autoload | 1361 | ;;;###autoload |
| 1333 | (define-minor-mode smerge-mode | 1362 | (define-minor-mode smerge-mode |
diff --git a/src/lastfile.c b/src/lastfile.c index 9c73fb44700..de4e4f45362 100644 --- a/src/lastfile.c +++ b/src/lastfile.c | |||
| @@ -38,8 +38,8 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 38 | 38 | ||
| 39 | #include "lisp.h" | 39 | #include "lisp.h" |
| 40 | 40 | ||
| 41 | #if ((!defined SYSTEM_MALLOC && !defined HYBRID_MALLOC && !defined WINDOWSNT) \ | 41 | #if ((!defined SYSTEM_MALLOC && !defined HYBRID_MALLOC) \ |
| 42 | || defined CYGWIN || defined DARWIN_OS) | 42 | || defined WINDOWSNT || defined CYGWIN || defined DARWIN_OS) |
| 43 | char my_edata[] = "End of Emacs initialized data"; | 43 | char my_edata[] = "End of Emacs initialized data"; |
| 44 | #endif | 44 | #endif |
| 45 | 45 | ||