aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lisp/gnus/gnus-agent.el10
-rw-r--r--lisp/gnus/gnus-art.el8
-rw-r--r--lisp/gnus/gnus-group.el8
-rw-r--r--lisp/gnus/gnus-kill.el5
-rw-r--r--lisp/gnus/gnus-salt.el9
-rw-r--r--lisp/gnus/gnus-srvr.el44
-rw-r--r--lisp/gnus/gnus-sum.el51
-rw-r--r--lisp/gnus/gnus.el6
8 files changed, 48 insertions, 93 deletions
diff --git a/lisp/gnus/gnus-agent.el b/lisp/gnus/gnus-agent.el
index 18e6174fa02..93a675584f5 100644
--- a/lisp/gnus/gnus-agent.el
+++ b/lisp/gnus/gnus-agent.el
@@ -2575,9 +2575,6 @@ modified) original contents, they are first saved to their own file."
2575;;; Agent Category Mode 2575;;; Agent Category Mode
2576;;; 2576;;;
2577 2577
2578(defvar gnus-category-mode-hook nil
2579 "Hook run in `gnus-category-mode' buffers.")
2580
2581(defvar gnus-category-line-format " %(%20c%): %g\n" 2578(defvar gnus-category-line-format " %(%20c%): %g\n"
2582 "Format of category lines. 2579 "Format of category lines.
2583 2580
@@ -2613,7 +2610,6 @@ General format specifiers can also be used. See Info node
2613(defvar gnus-category-mode-line-format-spec nil) 2610(defvar gnus-category-mode-line-format-spec nil)
2614 2611
2615(defvar gnus-category-mode-map nil) 2612(defvar gnus-category-mode-map nil)
2616(put 'gnus-category-mode 'mode-class 'special)
2617 2613
2618(unless gnus-category-mode-map 2614(unless gnus-category-mode-map
2619 (setq gnus-category-mode-map (make-sparse-keymap)) 2615 (setq gnus-category-mode-map (make-sparse-keymap))
@@ -2655,9 +2651,8 @@ General format specifiers can also be used. See Info node
2655 2651
2656 (gnus-run-hooks 'gnus-category-menu-hook))) 2652 (gnus-run-hooks 'gnus-category-menu-hook)))
2657 2653
2658(define-derived-mode gnus-category-mode fundamental-mode "Category" 2654(define-derived-mode gnus-category-mode gnus-mode "Category"
2659 "Major mode for listing and editing agent categories. 2655 "Major mode for listing and editing agent categories.
2660
2661All normal editing commands are switched off. 2656All normal editing commands are switched off.
2662\\<gnus-category-mode-map> 2657\\<gnus-category-mode-map>
2663For more in-depth information on this mode, read the manual 2658For more in-depth information on this mode, read the manual
@@ -2672,8 +2667,7 @@ The following commands are available:
2672 (gnus-set-default-directory) 2667 (gnus-set-default-directory)
2673 (setq mode-line-process nil) 2668 (setq mode-line-process nil)
2674 (buffer-disable-undo) 2669 (buffer-disable-undo)
2675 (setq truncate-lines t) 2670 (setq truncate-lines t))
2676 (setq buffer-read-only t))
2677 2671
2678(defalias 'gnus-category-position-point 'gnus-goto-colon) 2672(defalias 'gnus-category-position-point 'gnus-goto-colon)
2679 2673
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
index f28e6db3c7e..c78bb3325f0 100644
--- a/lisp/gnus/gnus-art.el
+++ b/lisp/gnus/gnus-art.el
@@ -4388,8 +4388,6 @@ If variable `gnus-use-long-file-name' is non-nil, it is
4388;;; Gnus article mode 4388;;; Gnus article mode
4389;;; 4389;;;
4390 4390
4391(put 'gnus-article-mode 'mode-class 'special)
4392
4393(set-keymap-parent gnus-article-mode-map widget-keymap) 4391(set-keymap-parent gnus-article-mode-map widget-keymap)
4394 4392
4395(gnus-define-keys gnus-article-mode-map 4393(gnus-define-keys gnus-article-mode-map
@@ -4467,9 +4465,8 @@ If variable `gnus-use-long-file-name' is non-nil, it is
4467(defvar bookmark-make-record-function) 4465(defvar bookmark-make-record-function)
4468(defvar shr-put-image-function) 4466(defvar shr-put-image-function)
4469 4467
4470(define-derived-mode gnus-article-mode fundamental-mode "Article" 4468(define-derived-mode gnus-article-mode gnus-mode "Article"
4471 "Major mode for displaying an article. 4469 "Major mode for displaying an article.
4472
4473All normal editing commands are switched off. 4470All normal editing commands are switched off.
4474 4471
4475The following commands are available in addition to all summary mode 4472The following commands are available in addition to all summary mode
@@ -4510,8 +4507,7 @@ commands:
4510 (setq cursor-in-non-selected-windows nil)) 4507 (setq cursor-in-non-selected-windows nil))
4511 (gnus-set-default-directory) 4508 (gnus-set-default-directory)
4512 (buffer-disable-undo) 4509 (buffer-disable-undo)
4513 (setq buffer-read-only t 4510 (setq show-trailing-whitespace nil)
4514 show-trailing-whitespace nil)
4515 (mm-enable-multibyte)) 4511 (mm-enable-multibyte))
4516 4512
4517(defun gnus-article-setup-buffer () 4513(defun gnus-article-setup-buffer ()
diff --git a/lisp/gnus/gnus-group.el b/lisp/gnus/gnus-group.el
index 6af27afbfaa..d526894b3ac 100644
--- a/lisp/gnus/gnus-group.el
+++ b/lisp/gnus/gnus-group.el
@@ -567,8 +567,6 @@ simple manner."
567;;; Gnus group mode 567;;; Gnus group mode
568;;; 568;;;
569 569
570(put 'gnus-group-mode 'mode-class 'special)
571
572(gnus-define-keys gnus-group-mode-map 570(gnus-define-keys gnus-group-mode-map
573 " " gnus-group-read-group 571 " " gnus-group-read-group
574 "=" gnus-group-select-group 572 "=" gnus-group-select-group
@@ -1106,9 +1104,8 @@ When FORCE, rebuild the tool bar."
1106 (set (make-local-variable 'tool-bar-map) map)))) 1104 (set (make-local-variable 'tool-bar-map) map))))
1107 gnus-group-tool-bar-map) 1105 gnus-group-tool-bar-map)
1108 1106
1109(define-derived-mode gnus-group-mode fundamental-mode "Group" 1107(define-derived-mode gnus-group-mode gnus-mode "Group"
1110 "Major mode for reading news. 1108 "Major mode for reading news.
1111
1112All normal editing commands are switched off. 1109All normal editing commands are switched off.
1113\\<gnus-group-mode-map> 1110\\<gnus-group-mode-map>
1114The group buffer lists (some of) the groups available. For instance, 1111The group buffer lists (some of) the groups available. For instance,
@@ -1131,8 +1128,7 @@ The following commands are available:
1131 (setq mode-line-process nil) 1128 (setq mode-line-process nil)
1132 (buffer-disable-undo) 1129 (buffer-disable-undo)
1133 (setq truncate-lines t) 1130 (setq truncate-lines t)
1134 (setq buffer-read-only t 1131 (setq show-trailing-whitespace nil)
1135 show-trailing-whitespace nil)
1136 (gnus-set-default-directory) 1132 (gnus-set-default-directory)
1137 (gnus-update-format-specifications nil 'group 'group-mode) 1133 (gnus-update-format-specifications nil 'group 'group-mode)
1138 (gnus-update-group-mark-positions) 1134 (gnus-update-group-mark-positions)
diff --git a/lisp/gnus/gnus-kill.el b/lisp/gnus/gnus-kill.el
index 60732c11d54..e65ff51ce78 100644
--- a/lisp/gnus/gnus-kill.el
+++ b/lisp/gnus/gnus-kill.el
@@ -29,11 +29,6 @@
29(require 'gnus-art) 29(require 'gnus-art)
30(require 'gnus-range) 30(require 'gnus-range)
31 31
32(defcustom gnus-kill-file-mode-hook nil
33 "Hook for Gnus kill file mode."
34 :group 'gnus-score-kill
35 :type 'hook)
36
37(defcustom gnus-kill-expiry-days 7 32(defcustom gnus-kill-expiry-days 7
38 "Number of days before expiring unused kill file entries." 33 "Number of days before expiring unused kill file entries."
39 :group 'gnus-score-kill 34 :group 'gnus-score-kill
diff --git a/lisp/gnus/gnus-salt.el b/lisp/gnus/gnus-salt.el
index aff841760ae..0504465de3e 100644
--- a/lisp/gnus/gnus-salt.el
+++ b/lisp/gnus/gnus-salt.el
@@ -396,11 +396,6 @@ Two predefined functions are available:
396 (function :tag "Other" nil)) 396 (function :tag "Other" nil))
397 :group 'gnus-summary-tree) 397 :group 'gnus-summary-tree)
398 398
399(defcustom gnus-tree-mode-hook nil
400 "Hook run in tree mode buffers."
401 :type 'hook
402 :group 'gnus-summary-tree)
403
404;;; Internal variables. 399;;; Internal variables.
405 400
406(defvar gnus-tmp-name) 401(defvar gnus-tmp-name)
@@ -445,8 +440,6 @@ Two predefined functions are available:
445 'undefined 'gnus-tree-read-summary-keys map) 440 'undefined 'gnus-tree-read-summary-keys map)
446 map)) 441 map))
447 442
448(put 'gnus-tree-mode 'mode-class 'special)
449
450(defun gnus-tree-make-menu-bar () 443(defun gnus-tree-make-menu-bar ()
451 (unless (boundp 'gnus-tree-menu) 444 (unless (boundp 'gnus-tree-menu)
452 (easy-menu-define 445 (easy-menu-define
@@ -454,7 +447,7 @@ Two predefined functions are available:
454 '("Tree" 447 '("Tree"
455 ["Select article" gnus-tree-select-article t])))) 448 ["Select article" gnus-tree-select-article t]))))
456 449
457(define-derived-mode gnus-tree-mode fundamental-mode "Tree" 450(define-derived-mode gnus-tree-mode gnus-mode "Tree"
458 "Major mode for displaying thread trees." 451 "Major mode for displaying thread trees."
459 (gnus-set-format 'tree-mode) 452 (gnus-set-format 'tree-mode)
460 (gnus-set-format 'tree t) 453 (gnus-set-format 'tree t)
diff --git a/lisp/gnus/gnus-srvr.el b/lisp/gnus/gnus-srvr.el
index 34ebd00ef24..4d15f36ffc4 100644
--- a/lisp/gnus/gnus-srvr.el
+++ b/lisp/gnus/gnus-srvr.el
@@ -36,11 +36,6 @@
36 36
37(autoload 'gnus-group-make-nnir-group "nnir") 37(autoload 'gnus-group-make-nnir-group "nnir")
38 38
39(defcustom gnus-server-mode-hook nil
40 "Hook run in `gnus-server-mode' buffers."
41 :group 'gnus-server
42 :type 'hook)
43
44(defcustom gnus-server-exit-hook nil 39(defcustom gnus-server-exit-hook nil
45 "Hook run when exiting the server buffer." 40 "Hook run when exiting the server buffer."
46 :group 'gnus-server 41 :group 'gnus-server
@@ -108,7 +103,7 @@ If nil, a faster, but more primitive, buffer is used instead."
108(defvar gnus-server-mode-line-format-spec nil) 103(defvar gnus-server-mode-line-format-spec nil)
109(defvar gnus-server-killed-servers nil) 104(defvar gnus-server-killed-servers nil)
110 105
111(defvar gnus-server-mode-map) 106(defvar gnus-server-mode-map nil)
112 107
113(defcustom gnus-server-menu-hook nil 108(defcustom gnus-server-menu-hook nil
114 "Hook run after the creation of the server mode menu." 109 "Hook run after the creation of the server mode menu."
@@ -150,11 +145,8 @@ If nil, a faster, but more primitive, buffer is used instead."
150 145
151 (gnus-run-hooks 'gnus-server-menu-hook))) 146 (gnus-run-hooks 'gnus-server-menu-hook)))
152 147
153(defvar gnus-server-mode-map nil)
154(put 'gnus-server-mode 'mode-class 'special)
155
156(unless gnus-server-mode-map 148(unless gnus-server-mode-map
157 (setq gnus-server-mode-map (make-sparse-keymap)) 149 (setq gnus-server-mode-map (make-keymap))
158 (suppress-keymap gnus-server-mode-map) 150 (suppress-keymap gnus-server-mode-map)
159 151
160 (gnus-define-keys gnus-server-mode-map 152 (gnus-define-keys gnus-server-mode-map
@@ -253,9 +245,8 @@ If nil, a faster, but more primitive, buffer is used instead."
253 ("(\\(offline\\))" 1 'gnus-server-offline) 245 ("(\\(offline\\))" 1 'gnus-server-offline)
254 ("(\\(denied\\))" 1 'gnus-server-denied))) 246 ("(\\(denied\\))" 1 'gnus-server-denied)))
255 247
256(defun gnus-server-mode () 248(define-derived-mode gnus-server-mode gnus-mode "Server"
257 "Major mode for listing and editing servers. 249 "Major mode for listing and editing servers.
258
259All normal editing commands are switched off. 250All normal editing commands are switched off.
260\\<gnus-server-mode-map> 251\\<gnus-server-mode-map>
261For more in-depth information on this mode, read the manual 252For more in-depth information on this mode, read the manual
@@ -264,23 +255,16 @@ For more in-depth information on this mode, read the manual
264The following commands are available: 255The following commands are available:
265 256
266\\{gnus-server-mode-map}" 257\\{gnus-server-mode-map}"
267 ;; FIXME: Use define-derived-mode.
268 (interactive)
269 (when (gnus-visual-p 'server-menu 'menu) 258 (when (gnus-visual-p 'server-menu 'menu)
270 (gnus-server-make-menu-bar)) 259 (gnus-server-make-menu-bar))
271 (kill-all-local-variables)
272 (gnus-simplify-mode-line) 260 (gnus-simplify-mode-line)
273 (setq major-mode 'gnus-server-mode)
274 (setq mode-name "Server")
275 (gnus-set-default-directory) 261 (gnus-set-default-directory)
276 (setq mode-line-process nil) 262 (setq mode-line-process nil)
277 (use-local-map gnus-server-mode-map)
278 (buffer-disable-undo) 263 (buffer-disable-undo)
279 (setq truncate-lines t) 264 (setq truncate-lines t)
280 (setq buffer-read-only t)
281 (set (make-local-variable 'font-lock-defaults) 265 (set (make-local-variable 'font-lock-defaults)
282 '(gnus-server-font-lock-keywords t)) 266 '(gnus-server-font-lock-keywords t)))
283 (gnus-run-mode-hooks 'gnus-server-mode-hook)) 267
284 268
285(defun gnus-server-insert-server-line (name method) 269(defun gnus-server-insert-server-line (name method)
286 (let* ((gnus-tmp-name name) 270 (let* ((gnus-tmp-name name)
@@ -320,21 +304,15 @@ The following commands are available:
320 304
321(defun gnus-enter-server-buffer () 305(defun gnus-enter-server-buffer ()
322 "Set up the server buffer." 306 "Set up the server buffer."
323 (gnus-server-setup-buffer)
324 (gnus-configure-windows 'server) 307 (gnus-configure-windows 'server)
325 ;; Usually `gnus-configure-windows' will finish with the 308 ;; Usually `gnus-configure-windows' will finish with the
326 ;; `gnus-server-buffer' selected as the current buffer, but not always (I 309 ;; `gnus-server-buffer' selected as the current buffer, but not always (I
327 ;; bumped into it when starting from a dedicated *Group* frame, and 310 ;; bumped into it when starting from a dedicated *Group* frame, and
328 ;; gnus-configure-windows opened *Server* into its own dedicated frame). 311 ;; gnus-configure-windows opened *Server* into its own dedicated frame).
329 (with-current-buffer (get-buffer gnus-server-buffer) 312 (with-current-buffer (get-buffer-create gnus-server-buffer)
313 (gnus-server-mode)
330 (gnus-server-prepare))) 314 (gnus-server-prepare)))
331 315
332(defun gnus-server-setup-buffer ()
333 "Initialize the server buffer."
334 (unless (get-buffer gnus-server-buffer)
335 (with-current-buffer (gnus-get-buffer-create gnus-server-buffer)
336 (gnus-server-mode))))
337
338(defun gnus-server-prepare () 316(defun gnus-server-prepare ()
339 (gnus-set-format 'server-mode) 317 (gnus-set-format 'server-mode)
340 (gnus-set-format 'server t) 318 (gnus-set-format 'server t)
@@ -717,9 +695,7 @@ claim them."
717 function 695 function
718 (repeat function))) 696 (repeat function)))
719 697
720(defvar gnus-browse-mode-hook nil)
721(defvar gnus-browse-mode-map nil) 698(defvar gnus-browse-mode-map nil)
722(put 'gnus-browse-mode 'mode-class 'special)
723 699
724(unless gnus-browse-mode-map 700(unless gnus-browse-mode-map
725 (setq gnus-browse-mode-map (make-keymap)) 701 (setq gnus-browse-mode-map (make-keymap))
@@ -897,9 +873,8 @@ claim them."
897 (gnus-message 5 "Connecting to %s...done" (nth 1 method)) 873 (gnus-message 5 "Connecting to %s...done" (nth 1 method))
898 t)))) 874 t))))
899 875
900(define-derived-mode gnus-browse-mode fundamental-mode "Browse Server" 876(define-derived-mode gnus-browse-mode gnus-mode "Browse Server"
901 "Major mode for browsing a foreign server. 877 "Major mode for browsing a foreign server.
902
903All normal editing commands are switched off. 878All normal editing commands are switched off.
904 879
905\\<gnus-browse-mode-map> 880\\<gnus-browse-mode-map>
@@ -918,8 +893,7 @@ buffer.
918 (setq mode-line-process nil) 893 (setq mode-line-process nil)
919 (buffer-disable-undo) 894 (buffer-disable-undo)
920 (setq truncate-lines t) 895 (setq truncate-lines t)
921 (gnus-set-default-directory) 896 (gnus-set-default-directory))
922 (setq buffer-read-only t))
923 897
924(defun gnus-browse-read-group (&optional no-article number) 898(defun gnus-browse-read-group (&optional no-article number)
925 "Enter the group at the current line. 899 "Enter the group at the current line.
diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el
index f9fae3792b1..1c4be09e2e9 100644
--- a/lisp/gnus/gnus-sum.el
+++ b/lisp/gnus/gnus-sum.el
@@ -1842,8 +1842,6 @@ increase the score of each group you read."
1842;;; Gnus summary mode 1842;;; Gnus summary mode
1843;;; 1843;;;
1844 1844
1845(put 'gnus-summary-mode 'mode-class 'special)
1846
1847(defvar gnus-article-commands-menu) 1845(defvar gnus-article-commands-menu)
1848 1846
1849;; Non-orthogonal keys 1847;; Non-orthogonal keys
@@ -3052,10 +3050,8 @@ When FORCE, rebuild the tool bar."
3052 3050
3053(defvar bidi-paragraph-direction) 3051(defvar bidi-paragraph-direction)
3054 3052
3055(defun gnus-summary-mode (&optional group) 3053(define-derived-mode gnus-summary-mode gnus-mode "Summary"
3056 "Major mode for reading articles. 3054 "Major mode for reading articles.
3057
3058All normal editing commands are switched off.
3059\\<gnus-summary-mode-map> 3055\\<gnus-summary-mode-map>
3060Each line in this buffer represents one article. To read an 3056Each line in this buffer represents one article. To read an
3061article, you can, for instance, type `\\[gnus-summary-next-page]'. To move forwards 3057article, you can, for instance, type `\\[gnus-summary-next-page]'. To move forwards
@@ -3072,24 +3068,16 @@ buffer; read the info pages for more information (`\\[gnus-info-find-node]').
3072The following commands are available: 3068The following commands are available:
3073 3069
3074\\{gnus-summary-mode-map}" 3070\\{gnus-summary-mode-map}"
3075 ;; FIXME: Use define-derived-mode.
3076 (interactive)
3077 (kill-all-local-variables)
3078 (let ((gnus-summary-local-variables gnus-newsgroup-variables)) 3071 (let ((gnus-summary-local-variables gnus-newsgroup-variables))
3079 (gnus-summary-make-local-variables)) 3072 (gnus-summary-make-local-variables))
3080 (gnus-summary-make-local-variables) 3073 (gnus-summary-make-local-variables)
3081 (setq gnus-newsgroup-name group)
3082 (when (gnus-visual-p 'summary-menu 'menu) 3074 (when (gnus-visual-p 'summary-menu 'menu)
3083 (gnus-summary-make-menu-bar) 3075 (gnus-summary-make-menu-bar)
3084 (gnus-summary-make-tool-bar)) 3076 (gnus-summary-make-tool-bar))
3085 (gnus-make-thread-indent-array) 3077 (gnus-make-thread-indent-array)
3086 (gnus-simplify-mode-line) 3078 (gnus-simplify-mode-line)
3087 (setq major-mode 'gnus-summary-mode)
3088 (setq mode-name "Summary")
3089 (use-local-map gnus-summary-mode-map)
3090 (buffer-disable-undo) 3079 (buffer-disable-undo)
3091 (setq buffer-read-only t 3080 (setq show-trailing-whitespace nil
3092 show-trailing-whitespace nil
3093 truncate-lines t 3081 truncate-lines t
3094 bidi-paragraph-direction 'left-to-right) 3082 bidi-paragraph-direction 'left-to-right)
3095 (add-to-invisibility-spec '(gnus-sum . t)) 3083 (add-to-invisibility-spec '(gnus-sum . t))
@@ -3100,14 +3088,13 @@ The following commands are available:
3100 (make-local-variable 'gnus-summary-dummy-line-format) 3088 (make-local-variable 'gnus-summary-dummy-line-format)
3101 (make-local-variable 'gnus-summary-dummy-line-format-spec) 3089 (make-local-variable 'gnus-summary-dummy-line-format-spec)
3102 (make-local-variable 'gnus-summary-mark-positions) 3090 (make-local-variable 'gnus-summary-mark-positions)
3091 (make-local-variable 'gnus-article-buffer)
3092 (make-local-variable 'gnus-article-current)
3093 (make-local-variable 'gnus-original-article-buffer)
3103 (add-hook 'pre-command-hook 'gnus-set-global-variables nil t) 3094 (add-hook 'pre-command-hook 'gnus-set-global-variables nil t)
3104 (gnus-run-mode-hooks 'gnus-summary-mode-hook)
3105 (turn-on-gnus-mailing-list-mode)
3106 (mm-enable-multibyte) 3095 (mm-enable-multibyte)
3107 (set (make-local-variable 'bookmark-make-record-function) 3096 (set (make-local-variable 'bookmark-make-record-function)
3108 'gnus-summary-bookmark-make-record) 3097 'gnus-summary-bookmark-make-record))
3109 (gnus-update-format-specifications nil 'summary 'summary-mode 'summary-dummy)
3110 (gnus-update-summary-mark-positions))
3111 3098
3112(defun gnus-summary-make-local-variables () 3099(defun gnus-summary-make-local-variables ()
3113 "Make all the local summary buffer variables." 3100 "Make all the local summary buffer variables."
@@ -3478,8 +3465,11 @@ display only a single character."
3478 (current-buffer)))))) 3465 (current-buffer))))))
3479 3466
3480(defun gnus-summary-setup-buffer (group) 3467(defun gnus-summary-setup-buffer (group)
3481 "Initialize summary buffer. 3468 "Initialize summary buffer for GROUP.
3482If the setup was successful, non-nil is returned." 3469This function does all setup work that relies on the specific
3470value of GROUP, and puts the buffer in `gnus-summary-mode'.
3471
3472Returns non-nil if the setup was successful."
3483 (let ((buffer (gnus-summary-buffer-name group)) 3473 (let ((buffer (gnus-summary-buffer-name group))
3484 (dead-name (concat "*Dead Summary " 3474 (dead-name (concat "*Dead Summary "
3485 (gnus-group-decoded-name group) "*"))) 3475 (gnus-group-decoded-name group) "*")))
@@ -3493,13 +3483,15 @@ If the setup was successful, non-nil is returned."
3493 (not gnus-newsgroup-prepared)) 3483 (not gnus-newsgroup-prepared))
3494 (set-buffer (gnus-get-buffer-create buffer)) 3484 (set-buffer (gnus-get-buffer-create buffer))
3495 (setq gnus-summary-buffer (current-buffer)) 3485 (setq gnus-summary-buffer (current-buffer))
3496 (gnus-summary-mode group) 3486 (gnus-summary-mode)
3497 (when (gnus-group-quit-config group) 3487 (when (gnus-group-quit-config group)
3498 (set (make-local-variable 'gnus-single-article-buffer) nil)) 3488 (set (make-local-variable 'gnus-single-article-buffer) nil))
3499 (make-local-variable 'gnus-article-buffer)
3500 (make-local-variable 'gnus-article-current)
3501 (make-local-variable 'gnus-original-article-buffer)
3502 (setq gnus-newsgroup-name group) 3489 (setq gnus-newsgroup-name group)
3490 (turn-on-gnus-mailing-list-mode)
3491 ;; These functions don't currently depend on GROUP, but might in
3492 ;; the future.
3493 (gnus-update-format-specifications nil 'summary 'summary-mode 'summary-dummy)
3494 (gnus-update-summary-mark-positions)
3503 ;; Set any local variables in the group parameters. 3495 ;; Set any local variables in the group parameters.
3504 (gnus-summary-set-local-parameters gnus-newsgroup-name) 3496 (gnus-summary-set-local-parameters gnus-newsgroup-name)
3505 t))) 3497 t)))
@@ -3935,6 +3927,15 @@ If SELECT-ARTICLES, only select those articles from GROUP."
3935(defun gnus-summary-read-group-1 (group show-all no-article 3927(defun gnus-summary-read-group-1 (group show-all no-article
3936 kill-buffer no-display 3928 kill-buffer no-display
3937 &optional select-articles) 3929 &optional select-articles)
3930 "Display articles and threads in a Summary buffer for GROUP."
3931 ;; This function calls `gnus-summary-setup-buffer' to create the
3932 ;; buffer, put it in `gnus-summary-mode', and set local variables;
3933 ;; `gnus-select-newsgroup' to update the group's active and marks
3934 ;; from the server; and `gnus-summary-prepare' to actually insert
3935 ;; lines for articles. The rest of the function is mostly concerned
3936 ;; with limiting and positioning and windowing and other visual
3937 ;; effects.
3938
3938 ;; Killed foreign groups can't be entered. 3939 ;; Killed foreign groups can't be entered.
3939 ;; (when (and (not (gnus-group-native-p group)) 3940 ;; (when (and (not (gnus-group-native-p group))
3940 ;; (not (gnus-gethash group gnus-newsrc-hashtb))) 3941 ;; (not (gnus-gethash group gnus-newsrc-hashtb)))
diff --git a/lisp/gnus/gnus.el b/lisp/gnus/gnus.el
index 2786323f671..6c59b135742 100644
--- a/lisp/gnus/gnus.el
+++ b/lisp/gnus/gnus.el
@@ -637,6 +637,12 @@ be set in `.emacs' instead."
637 "Face used for low interest read articles." 637 "Face used for low interest read articles."
638 :group 'gnus-summary) 638 :group 'gnus-summary)
639 639
640;;; Base gnus-mode
641
642(define-derived-mode gnus-mode special-mode nil
643 "Base mode from which all other gnus modes derive.
644This does nothing but derive from `special-mode', and should not
645be used directly.")
640 646
641;;; 647;;;
642;;; Gnus buffers 648;;; Gnus buffers