]> code.delx.au - gnu-emacs/blobdiff - lisp/gnus/gnus.el
; Merge from origin/emacs-25
[gnu-emacs] / lisp / gnus / gnus.el
index 30c89f5906f2b499f8c242eb5d49a9853d2bb7f8..edf46f173b153fa5c489a6ca02b4db141c4be46d 100644 (file)
@@ -1,6 +1,6 @@
 ;;; gnus.el --- a newsreader for GNU Emacs
 
-;; Copyright (C) 1987-1990, 1993-1998, 2000-2015 Free Software
+;; Copyright (C) 1987-1990, 1993-1998, 2000-2016 Free Software
 ;; Foundation, Inc.
 
 ;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
@@ -27,7 +27,7 @@
 
 ;;; Code:
 
-(eval '(run-hooks 'gnus-load-hook))
+(run-hooks 'gnus-load-hook)
 
 (eval-when-compile (require 'cl))
 (require 'wid-edit)
@@ -303,26 +303,9 @@ be set in `.emacs' instead."
   :group 'gnus-start
   :type 'boolean)
 
-(unless (featurep 'gnus-xmas)
-  (defalias 'gnus-make-overlay 'make-overlay)
-  (defalias 'gnus-copy-overlay 'copy-overlay)
-  (defalias 'gnus-delete-overlay 'delete-overlay)
-  (defalias 'gnus-overlay-get 'overlay-get)
-  (defalias 'gnus-overlay-put 'overlay-put)
-  (defalias 'gnus-move-overlay 'move-overlay)
-  (defalias 'gnus-overlay-buffer 'overlay-buffer)
-  (defalias 'gnus-overlay-start 'overlay-start)
-  (defalias 'gnus-overlay-end 'overlay-end)
-  (defalias 'gnus-overlays-at 'overlays-at)
-  (defalias 'gnus-overlays-in 'overlays-in)
-  (defalias 'gnus-extent-detached-p 'ignore)
-  (defalias 'gnus-extent-start-open 'ignore)
-  (defalias 'gnus-mail-strip-quoted-names 'mail-strip-quoted-names)
-  (defalias 'gnus-character-to-event 'identity)
-  (defalias 'gnus-assq-delete-all 'assq-delete-all)
-  (defalias 'gnus-add-text-properties 'add-text-properties)
-  (defalias 'gnus-put-text-property 'put-text-property)
-  (defvar gnus-mode-line-image-cache t)
+(defvar gnus-mode-line-image-cache t)
+
+(eval-and-compile
   (if (fboundp 'find-image)
       (defun gnus-mode-line-buffer-identification (line)
        (let ((str (car-safe line))
@@ -347,12 +330,7 @@ be set in `.emacs' instead."
                      str)
                     (list str))
            line)))
-    (defalias 'gnus-mode-line-buffer-identification 'identity))
-  (defalias 'gnus-deactivate-mark 'deactivate-mark)
-  (defalias 'gnus-window-edges 'window-edges)
-  (defalias 'gnus-key-press-event-p 'numberp)
-  ;;(defalias 'gnus-decode-rfc1522 'ignore)
-  )
+    (defalias 'gnus-mode-line-buffer-identification 'identity)))
 
 ;; We define these group faces here to avoid the display
 ;; update forced when creating new faces.
@@ -925,14 +903,20 @@ be set in `.emacs' instead."
 
 (defun gnus-add-buffer ()
   "Add the current buffer to the list of Gnus buffers."
+  (gnus-prune-buffers)
   (push (current-buffer) gnus-buffers))
 
 (defmacro gnus-kill-buffer (buffer)
   "Kill BUFFER and remove from the list of Gnus buffers."
   `(let ((buf ,buffer))
      (when (gnus-buffer-exists-p buf)
-       (setq gnus-buffers (delete (get-buffer buf) gnus-buffers))
-       (kill-buffer buf))))
+       (kill-buffer buf)
+       (gnus-prune-buffers))))
+
+(defun gnus-prune-buffers ()
+  (dolist (buf gnus-buffers)
+    (unless (buffer-live-p buf)
+      (setq gnus-buffers (delete buf gnus-buffers)))))
 
 (defun gnus-buffers ()
   "Return a list of live Gnus buffers."
@@ -1319,11 +1303,11 @@ news is to be fetched, the second is the address.
 For instance, if you want to get your news via \"flab.flab.edu\" using
 NNTP, you could say:
 
-\(setq gnus-select-method '(nntp \"flab.flab.edu\"))
+\(setq gnus-select-method \\='(nntp \"flab.flab.edu\"))
 
 If you want to use your local spool, say:
 
-\(setq gnus-select-method (list 'nnspool (system-name)))
+\(setq gnus-select-method (list \\='nnspool (system-name)))
 
 If you use this variable, you must set `gnus-nntp-server' to nil.
 
@@ -1372,8 +1356,8 @@ group (or nil) as a parameter.
 If you want to save your mail in one group and the news articles you
 write in another group, you could say something like:
 
\(setq gnus-message-archive-group
-       '((if (message-news-p)
 (setq gnus-message-archive-group
+       \\='((if (message-news-p)
              \"misc-news\"
            \"misc-mail\")))
 
@@ -1408,7 +1392,7 @@ This is a list where each element is a complete select method (see
 If, for instance, you want to read your mail with the nnml back end,
 you could set this variable:
 
-\(setq gnus-secondary-select-methods '((nnml \"\")))"
+\(setq gnus-secondary-select-methods \\='((nnml \"\")))"
   :group 'gnus-server
   :type '(repeat gnus-select-method))
 
@@ -1648,6 +1632,7 @@ this variable.  I think."
                                             (const post-mail))
                        (checklist :inline t :greedy t
                                   (const :format "%v " address)
+                                  (const cloud)
                                   (const global)
                                   (const :format "%v " prompt-address)
                                   (const :format "%v " physical-address)
@@ -2407,7 +2392,7 @@ less space and be faster as a result.
 This variable can also be a list of visual elements to switch on.  For
 instance, to switch off all visual things except menus, you can say:
 
-   (setq gnus-visual '(menu))
+   (setq gnus-visual \\='(menu))
 
 Valid elements include `summary-highlight', `group-highlight',
 `article-highlight', `mouse-face', `summary-menu', `group-menu',
@@ -2513,25 +2498,20 @@ Disabling the agent may result in noticeable loss of performance."
                 (function-item gnus-slave-no-server)))
 
 (defcustom gnus-other-frame-parameters nil
-  "Frame parameters used by `gnus-other-frame' to create a Gnus frame.
-This should be an alist for Emacs, or a plist for XEmacs."
+  "Frame parameters used by `gnus-other-frame' to create a Gnus frame."
   :group 'gnus-start
-  :type (if (featurep 'xemacs)
-           '(repeat (list :inline t :format "%v"
-                          (symbol :tag "Property")
-                          (sexp :tag "Value")))
-         '(repeat (cons :format "%v"
-                        (symbol :tag "Parameter")
-                        (sexp :tag "Value")))))
+  :type '(repeat (cons :format "%v"
+                      (symbol :tag "Parameter")
+                      (sexp :tag "Value"))))
 
 (defcustom gnus-user-agent '(emacs gnus type)
   "Which information should be exposed in the User-Agent header.
 
 Can be a list of symbols or a string.  Valid symbols are `gnus'
-\(show Gnus version\) and `emacs' \(show Emacs version\).  In
+\(show Gnus version) and `emacs' \(show Emacs version).  In
 addition to the Emacs version, you can add `codename' \(show
-\(S\)XEmacs codename\) or either `config' \(show system
-configuration\) or `type' \(show system type\).  If you set it to
+\(S)XEmacs codename) or either `config' \(show system
+configuration) or `type' \(show system type).  If you set it to
 a string, be sure to use a valid format, see RFC 2616."
 
   :version "22.1"
@@ -3036,7 +3016,7 @@ See Info node `(gnus)Formatting Variables'."
 
 (defun gnus-suppress-keymap (keymap)
   (suppress-keymap keymap)
-  (let ((keys `([delete] "\177" "\M-u"))) ;gnus-mouse-2
+  (let ((keys `([delete] "\177" "\M-u"))) ;[mouse-2]
     (while keys
       (define-key keymap (pop keys) 'undefined))))
 
@@ -3165,10 +3145,6 @@ Return nil if not defined."
   (setcar (nthcdr 2 (gnus-gethash group gnus-newsrc-hashtb))
          info))
 
-;;; Load the compatibility functions.
-
-(require 'gnus-ems)
-
 \f
 ;;;
 ;;; Shutdown
@@ -3253,8 +3229,7 @@ If ARG, insert string at point."
                         4.99
                       (+ 5 (* 0.02
                               (abs
-                               (- (mm-char-int (aref (downcase alpha) 0))
-                                  (mm-char-int ?t))))
+                               (- (aref (downcase alpha) 0) ?t)))
                          -0.01))
                     minor least)
         (format "%d.%02d%02d" major minor least))))))
@@ -3458,7 +3433,7 @@ that that variable is buffer-local to the summary buffers."
 
 (defun gnus-simplify-mode-line ()
   "Make mode lines a bit simpler."
-  (setq mode-line-modified (cdr gnus-mode-line-modified))
+  (setq mode-line-modified "--")
   (when (listp mode-line-format)
     (make-local-variable 'mode-line-format)
     (setq mode-line-format (copy-sequence mode-line-format))
@@ -4396,12 +4371,12 @@ current display is used."
                                 (with-current-buffer (window-buffer window)
                                   (string-match "\\`gnus-"
                                                 (symbol-name major-mode))))
-                       (gnus-select-frame-set-input-focus
+                       (select-frame-set-input-focus
                         (setq gnus-other-frame-object (window-frame window)))
                        (select-window window)
                        (throw 'found t)))
                    'ignore t)))
-      (gnus-select-frame-set-input-focus
+      (select-frame-set-input-focus
        (setq gnus-other-frame-object
             (if display
                 (make-frame-on-display display gnus-other-frame-parameters)
@@ -4445,10 +4420,6 @@ prompt the user for the name of an NNTP server to use."
   (require 'debbugs-gnu)
   (debbugs-gnu nil "gnus"))
 
-;; Allow redefinition of Gnus functions.
-
-(gnus-ems-redefine)
-
 (provide 'gnus)
 
 ;;; gnus.el ends here