]> code.delx.au - gnu-emacs/blobdiff - admin/gitmerge.el
* lisp/mail/rmailsum.el: Commas no longer separate regexps. (Bug#19026)
[gnu-emacs] / admin / gitmerge.el
index 88c633393a69b61c7e72a7edc1402e582dd0aef7..43773f5cb3538469c40a716756245f77da009382 100644 (file)
@@ -1,6 +1,6 @@
 ;;; gitmerge.el --- help merge one Emacs branch into another
 
-;; Copyright (C) 2010-2014 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2015 Free Software Foundation, Inc.
 
 ;; Authors: David Engster <deng@randomsample.de>
 ;;          Stefan Monnier <monnier@iro.umontreal.ca>
@@ -90,6 +90,14 @@ Auto-commit"
     map)
   "Keymap for gitmerge major mode.")
 
+
+(defvar gitmerge-mode-font-lock-keywords
+  `((,gitmerge-log-regexp
+     (1 font-lock-warning-face)
+     (2 font-lock-constant-face)
+     (3 font-lock-builtin-face)
+     (4 font-lock-comment-face))))
+
 (defvar gitmerge--commits nil)
 (defvar gitmerge--from nil)
 
@@ -157,7 +165,7 @@ Auto-commit"
          (delete-char 1)
          (insert (if skip "M" " "))
          (setq buffer-read-only t))))))
-         
+
 (defun gitmerge-highlight-skip-regexp ()
   "Highlight strings that match `gitmerge-skip-regexp'."
   (save-excursion
@@ -361,7 +369,7 @@ Throw an user-error if we cannot resolve automatically."
        (goto-char (point-min))
        (while (not (eobp))
          (push (buffer-substring (point) (line-end-position)) files)
-         (forward-line))      
+         (forward-line))
        (dolist (file files)
          (if (gitmerge-resolve file)
              ;; File still has conflicts
@@ -393,7 +401,7 @@ Throw an user-error if we cannot resolve automatically."
       (call-process "git" nil t nil
                    "diff" "--name-only")
       (zerop (buffer-size))))
-  
+
 (defun gitmerge-maybe-resume ()
   "Check if we have to resume a merge.
 If so, add no longer conflicted files and commit."
@@ -420,7 +428,7 @@ If so, add no longer conflicted files and commit."
            (unless (zerop (call-process "git" nil t nil
                                         "commit" "--no-edit"))
              (error "Git error during merge - fix it manually"))))
-       ;; Sucesfully resumed.
+       ;; Successfully resumed.
        t))))
 
 (defun gitmerge-get-all-branches ()
@@ -459,23 +467,12 @@ Branch FROM will be prepended to the list."
       (prog1 (read (buffer-string))
        (kill-buffer)))))
 
-(defun gitmerge-mode ()
+(define-derived-mode gitmerge-mode special-mode "gitmerge"
   "Major mode for Emacs branch merging."
-  (interactive)
-  (kill-all-local-variables)
-  (setq major-mode 'gitmerge-mode)
-  (setq mode-name "gitmerge")
   (set-syntax-table text-mode-syntax-table)
-  (use-local-map gitmerge-mode-map)
-  (make-local-variable 'font-lock-defaults)
-  (setq gitmerge-mode-font-lock-keywords
-       (list (list gitmerge-log-regexp
-                   '(1 font-lock-warning-face)
-                   '(2 font-lock-constant-face)
-                   '(3 font-lock-builtin-face)
-                   '(4 font-lock-comment-face))))
   (setq buffer-read-only t)
-  (setq font-lock-defaults '(gitmerge-mode-font-lock-keywords)))
+  (setq-local truncate-lines t)
+  (setq-local font-lock-defaults '(gitmerge-mode-font-lock-keywords)))
 
 (defun gitmerge (from)
   "Merge from branch FROM into `default-directory'."