Add hooks for gcc handling
[gnus] / lisp / sieve.el
index 0ba9910..c047a17 100644 (file)
@@ -1,6 +1,6 @@
 ;;; sieve.el --- Utilities to manage sieve scripts
 
-;; Copyright (C) 2001-2011 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2012 Free Software Foundation, Inc.
 
 ;; Author: Simon Josefsson <simon@josefsson.org>
 
@@ -21,7 +21,7 @@
 
 ;;; Commentary:
 
-;; This file contain utilities to facilate upload, download and
+;; This file contain utilities to facilitate upload, download and
 ;; general management of sieve scripts.  Currently only the
 ;; Managesieve protocol is supported (using sieve-manage.el), but when
 ;; (useful) alternatives become available, they might be supported as
@@ -104,36 +104,34 @@ require \"fileinto\";
 
 ;; Sieve-manage mode:
 
-(defvar sieve-manage-mode-map nil
+(defvar sieve-manage-mode-map
+  (let ((map (make-sparse-keymap)))
+    ;; various
+    (define-key map "?" 'sieve-help)
+    (define-key map "h" 'sieve-help)
+    (define-key map "q" 'sieve-bury-buffer)
+    ;; activating
+    (define-key map "m" 'sieve-activate)
+    (define-key map "u" 'sieve-deactivate)
+    (define-key map "\M-\C-?" 'sieve-deactivate-all)
+    ;; navigation keys
+    (define-key map "\C-p" 'sieve-prev-line)
+    (define-key map [up] 'sieve-prev-line)
+    (define-key map "\C-n" 'sieve-next-line)
+    (define-key map [down] 'sieve-next-line)
+    (define-key map " " 'sieve-next-line)
+    (define-key map "n" 'sieve-next-line)
+    (define-key map "p" 'sieve-prev-line)
+    (define-key map "\C-m" 'sieve-edit-script)
+    (define-key map "f" 'sieve-edit-script)
+    (define-key map "o" 'sieve-edit-script-other-window)
+    (define-key map "r" 'sieve-remove)
+    (define-key map "q" 'sieve-manage-quit)
+    (define-key map [(down-mouse-2)] 'sieve-edit-script)
+    (define-key map [(down-mouse-3)] 'sieve-manage-mode-menu)
+    map)
   "Keymap for `sieve-manage-mode'.")
 
-(if sieve-manage-mode-map
-    ()
-  (setq sieve-manage-mode-map (make-sparse-keymap))
-  (suppress-keymap sieve-manage-mode-map)
-  ;; various
-  (define-key sieve-manage-mode-map "?" 'sieve-help)
-  (define-key sieve-manage-mode-map "h" 'sieve-help)
-  (define-key sieve-manage-mode-map "q" 'sieve-bury-buffer)
-  ;; activating
-  (define-key sieve-manage-mode-map "m" 'sieve-activate)
-  (define-key sieve-manage-mode-map "u" 'sieve-deactivate)
-  (define-key sieve-manage-mode-map "\M-\C-?" 'sieve-deactivate-all)
-  ;; navigation keys
-  (define-key sieve-manage-mode-map "\C-p" 'sieve-prev-line)
-  (define-key sieve-manage-mode-map [up] 'sieve-prev-line)
-  (define-key sieve-manage-mode-map "\C-n" 'sieve-next-line)
-  (define-key sieve-manage-mode-map [down] 'sieve-next-line)
-  (define-key sieve-manage-mode-map " " 'sieve-next-line)
-  (define-key sieve-manage-mode-map "n" 'sieve-next-line)
-  (define-key sieve-manage-mode-map "p" 'sieve-prev-line)
-  (define-key sieve-manage-mode-map "\C-m" 'sieve-edit-script)
-  (define-key sieve-manage-mode-map "f" 'sieve-edit-script)
-  (define-key sieve-manage-mode-map "o" 'sieve-edit-script-other-window)
-  (define-key sieve-manage-mode-map "r" 'sieve-remove)
-  (define-key sieve-manage-mode-map [(down-mouse-2)] 'sieve-edit-script)
-  (define-key sieve-manage-mode-map [(down-mouse-3)] 'sieve-manage-mode-menu))
-
 (easy-menu-define sieve-manage-mode-menu sieve-manage-mode-map
   "Sieve Menu."
   '("Manage Sieve"
@@ -141,21 +139,21 @@ require \"fileinto\";
     ["Activate script" sieve-activate t]
     ["Deactivate script" sieve-deactivate t]))
 
-(define-derived-mode sieve-manage-mode fundamental-mode "SIEVE"
+(define-derived-mode sieve-manage-mode fundamental-mode "Sieve-manage"
   "Mode used for sieve script management."
-  (setq mode-name "SIEVE")
   (buffer-disable-undo (current-buffer))
   (setq truncate-lines t)
   (easy-menu-add sieve-manage-mode-menu sieve-manage-mode-map))
 
 (put 'sieve-manage-mode 'mode-class 'special)
 
-;; This is necessary to allow correct handling of \\[cvs-mode-diff-map]
-;; in substitute-command-keys.
-;(fset 'sieve-manage-mode-map sieve-manage-mode-map)
-
 ;; Commands used in sieve-manage mode:
 
+(defun sieve-manage-quit ()
+  "Quit."
+  (interactive)
+  (kill-buffer (current-buffer)))
+
 (defun sieve-activate (&optional pos)
   (interactive "d")
   (let ((name (sieve-script-at-point)) err)