diff options
| author | Stefan Monnier | 2001-11-15 01:25:35 +0000 |
|---|---|---|
| committer | Stefan Monnier | 2001-11-15 01:25:35 +0000 |
| commit | e29f823e0d54b05ee30b66b286589e4b465b3ac4 (patch) | |
| tree | 71ee071c2d1bdf9b530aab19aec822094c69e0ec | |
| parent | d2936d21a1168390b2798956db4638b21906afbf (diff) | |
| download | emacs-e29f823e0d54b05ee30b66b286589e4b465b3ac4.tar.gz emacs-e29f823e0d54b05ee30b66b286589e4b465b3ac4.zip | |
(smerge-match-conflict): Fix typo.
(smerge-diff): Be careful to read match-data early enough.
| -rw-r--r-- | lisp/smerge-mode.el | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/lisp/smerge-mode.el b/lisp/smerge-mode.el index f561992fb24..5ce9328048d 100644 --- a/lisp/smerge-mode.el +++ b/lisp/smerge-mode.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Stefan Monnier <monnier@cs.yale.edu> | 5 | ;; Author: Stefan Monnier <monnier@cs.yale.edu> |
| 6 | ;; Keywords: merge diff3 cvs conflict | 6 | ;; Keywords: merge diff3 cvs conflict |
| 7 | ;; Revision: $Id: smerge-mode.el,v 1.13 2001/07/31 08:26:47 gerd Exp $ | 7 | ;; Revision: $Id: smerge-mode.el,v 1.14 2001/07/31 08:28:43 gerd Exp $ |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
| @@ -332,7 +332,7 @@ An error is raised if not inside a conflict." | |||
| 332 | (when base-start (1- base-start)) base-start | 332 | (when base-start (1- base-start)) base-start |
| 333 | (1- other-start) other-start)) | 333 | (1- other-start) other-start)) |
| 334 | t) | 334 | t) |
| 335 | (error "Point not in conflict region")))) | 335 | (search-failed (error "Point not in conflict region"))))) |
| 336 | 336 | ||
| 337 | (defun smerge-find-conflict (&optional limit) | 337 | (defun smerge-find-conflict (&optional limit) |
| 338 | "Find and match a conflict region. Intended as a font-lock MATCHER. | 338 | "Find and match a conflict region. Intended as a font-lock MATCHER. |
| @@ -350,12 +350,18 @@ The point is moved to the end of the conflict." | |||
| 350 | (smerge-ensure-match n2) | 350 | (smerge-ensure-match n2) |
| 351 | (let ((name1 (aref smerge-match-names n1)) | 351 | (let ((name1 (aref smerge-match-names n1)) |
| 352 | (name2 (aref smerge-match-names n2)) | 352 | (name2 (aref smerge-match-names n2)) |
| 353 | ;; Read them before the match-data gets clobbered. | ||
| 354 | (beg1 (match-beginning n1)) | ||
| 355 | (end1 (match-end n1)) | ||
| 356 | (beg2 (match-beginning n2)) | ||
| 357 | (end2 (match-end n2)) | ||
| 353 | (file1 (make-temp-file "smerge1")) | 358 | (file1 (make-temp-file "smerge1")) |
| 354 | (file2 (make-temp-file "smerge2")) | 359 | (file2 (make-temp-file "smerge2")) |
| 355 | (dir default-directory) | 360 | (dir default-directory) |
| 356 | (file (file-relative-name buffer-file-name))) | 361 | (file (file-relative-name buffer-file-name)) |
| 357 | (write-region (match-beginning n1) (match-end n1) file1) | 362 | (coding-system-for-read buffer-file-coding-system)) |
| 358 | (write-region (match-beginning n2) (match-end n2) file2) | 363 | (write-region beg1 end1 file1) |
| 364 | (write-region beg2 end2 file2) | ||
| 359 | (unwind-protect | 365 | (unwind-protect |
| 360 | (with-current-buffer (get-buffer-create smerge-diff-buffer-name) | 366 | (with-current-buffer (get-buffer-create smerge-diff-buffer-name) |
| 361 | (setq default-directory dir) | 367 | (setq default-directory dir) |