comparison lisp/smerge-mode.el @ 47756:b2c9ea334a34

(smerge-ediff): Add name-{mine,other,base} args.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Fri, 04 Oct 2002 15:25:22 +0000
parents f06f993cfd92
children 45dcf3407814
comparison
equal deleted inserted replaced
47755:aeb8117c2101 47756:b2c9ea334a34
2 2
3 ;; Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc. 3 ;; Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
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.16 2002/08/15 00:24:56 monnier Exp $ 7 ;; Revision: $Id: smerge-mode.el,v 1.17 2002/09/03 01:20:20 monnier Exp $
8 8
9 ;; This file is part of GNU Emacs. 9 ;; This file is part of GNU Emacs.
10 10
11 ;; GNU Emacs is free software; you can redistribute it and/or modify 11 ;; GNU Emacs is free software; you can redistribute it and/or modify
12 ;; it under the terms of the GNU General Public License as published by 12 ;; it under the terms of the GNU General Public License as published by
415 (defvar smerge-ediff-buf) 415 (defvar smerge-ediff-buf)
416 (defvar ediff-buffer-A) 416 (defvar ediff-buffer-A)
417 (defvar ediff-buffer-B) 417 (defvar ediff-buffer-B)
418 (defvar ediff-buffer-C) 418 (defvar ediff-buffer-C)
419 419
420 (defun smerge-ediff () 420 (defun smerge-ediff (&optional name-mine name-other name-base)
421 "Invoke ediff to resolve the conflicts." 421 "Invoke ediff to resolve the conflicts.
422 NAME-MINE, NAME-OTHER, and NAME-BASE, if non-nil, are used for the
423 buffer names."
422 (interactive) 424 (interactive)
423 (let* ((buf (current-buffer)) 425 (let* ((buf (current-buffer))
424 (mode major-mode) 426 (mode major-mode)
425 ;;(ediff-default-variant 'default-B) 427 ;;(ediff-default-variant 'default-B)
426 (config (current-window-configuration)) 428 (config (current-window-configuration))
427 (filename (file-name-nondirectory buffer-file-name)) 429 (filename (file-name-nondirectory buffer-file-name))
428 (mine (generate-new-buffer (concat "*" filename " MINE*"))) 430 (mine (generate-new-buffer
429 (other (generate-new-buffer (concat "*" filename " OTHER*"))) 431 (or name-mine (concat "*" filename " MINE*"))))
432 (other (generate-new-buffer
433 (or name-other (concat "*" filename " OTHER*"))))
430 base) 434 base)
431 (with-current-buffer mine 435 (with-current-buffer mine
432 (buffer-disable-undo) 436 (buffer-disable-undo)
433 (insert-buffer-substring buf) 437 (insert-buffer-substring buf)
434 (goto-char (point-min)) 438 (goto-char (point-min))
448 (buffer-enable-undo) 452 (buffer-enable-undo)
449 (set-buffer-modified-p nil) 453 (set-buffer-modified-p nil)
450 (funcall mode)) 454 (funcall mode))
451 455
452 (when base 456 (when base
453 (setq base (generate-new-buffer (concat "*" filename " BASE*"))) 457 (setq base (generate-new-buffer
458 (or name-base (concat "*" filename " BASE*"))))
454 (with-current-buffer base 459 (with-current-buffer base
455 (buffer-disable-undo) 460 (buffer-disable-undo)
456 (insert-buffer-substring buf) 461 (insert-buffer-substring buf)
457 (goto-char (point-min)) 462 (goto-char (point-min))
458 (while (smerge-find-conflict) 463 (while (smerge-find-conflict)