X-Git-Url: http://cgit.sxemacs.org/?a=blobdiff_plain;f=lisp%2Fgnus-srvr.el;h=2f151e570d7c4a6318e4c28c3a44fd3fbe35735e;hb=0a8e4842c6797997b332078158501523f1233f7e;hp=ec98b2ff7497f90cc30d349bb3b82c0bffa6c423;hpb=831913f3adf29e739eac8e50ace75ba772a4985c;p=gnus diff --git a/lisp/gnus-srvr.el b/lisp/gnus-srvr.el index ec98b2ff7..2f151e570 100644 --- a/lisp/gnus-srvr.el +++ b/lisp/gnus-srvr.el @@ -1,6 +1,6 @@ ;;; gnus-srvr.el --- virtual server support for Gnus -;; Copyright (C) 1995-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995-2013 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen ;; Keywords: news @@ -244,6 +244,7 @@ For more in-depth information on this mode, read the manual The following commands are available: \\{gnus-server-mode-map}" + ;; FIXME: Use define-derived-mode. (interactive) (when (gnus-visual-p 'server-menu 'menu) (gnus-server-make-menu-bar)) @@ -330,7 +331,7 @@ The following commands are available: (dolist (open gnus-opened-servers) (when (and (not (member (car open) done)) ;; Just ignore ephemeral servers. - (not (member (car open) gnus-ephemeral-servers))) + (not (gnus-method-ephemeral-p (car open)))) (push (car open) done) (gnus-server-insert-server-line (setq op-ser (format "%s:%s" (caar open) (nth 1 (car open)))) @@ -490,8 +491,7 @@ The following commands are available: (error "No such server: %s" server)) (gnus-server-set-status method 'ok) (prog1 - (or (gnus-open-server method) - (progn (message "Couldn't open %s" server) nil)) + (gnus-open-server method) (gnus-server-update-server server) (gnus-server-position-point)))) @@ -553,7 +553,7 @@ The following commands are available: (gnus-server-list-servers)) (defun gnus-server-copy-server (from to) - "Copy a server definiton to a new name." + "Copy a server definition to a new name." (interactive (list (or (gnus-server-server-name) @@ -714,6 +714,7 @@ claim them." "q" gnus-browse-exit "Q" gnus-browse-exit "d" gnus-browse-describe-group + [delete] gnus-browse-delete-group "\C-c\C-c" gnus-browse-exit "?" gnus-browse-describe-briefly @@ -869,7 +870,7 @@ claim them." (gnus-message 5 "Connecting to %s...done" (nth 1 method)) t)))) -(defun gnus-browse-mode () +(define-derived-mode gnus-browse-mode fundamental-mode "Browse Server" "Major mode for browsing a foreign server. All normal editing commands are switched off. @@ -884,20 +885,14 @@ buffer. 2) `\\[gnus-browse-read-group]' to read a group ephemerally. 3) `\\[gnus-browse-exit]' to return to the group buffer." - (interactive) - (kill-all-local-variables) (when (gnus-visual-p 'browse-menu 'menu) (gnus-browse-make-menu-bar)) (gnus-simplify-mode-line) - (setq major-mode 'gnus-browse-mode) - (setq mode-name "Browse Server") (setq mode-line-process nil) - (use-local-map gnus-browse-mode-map) (buffer-disable-undo) (setq truncate-lines t) (gnus-set-default-directory) - (setq buffer-read-only t) - (gnus-run-mode-hooks 'gnus-browse-mode-hook)) + (setq buffer-read-only t)) (defun gnus-browse-read-group (&optional no-article number) "Enter the group at the current line. @@ -965,6 +960,16 @@ how new groups will be entered into the group buffer." (interactive (list (gnus-browse-group-name))) (gnus-group-describe-group nil group)) +(defun gnus-browse-delete-group (group force) + "Delete the current group. Only meaningful with editable groups. +If FORCE (the prefix) is non-nil, all the articles in the group will +be deleted. This is \"deleted\" as in \"removed forever from the face +of the Earth\". There is no undo. The user will be prompted before +doing the deletion." + (interactive (list (gnus-browse-group-name) + current-prefix-arg)) + (gnus-group-delete-group group force)) + (defun gnus-browse-unsubscribe-group () "Toggle subscription of the current group in the browse buffer." (let ((sub nil) @@ -1012,7 +1017,7 @@ how new groups will be entered into the group buffer." (defun gnus-browse-exit () "Quit browsing and return to the group buffer." (interactive) - (when (eq major-mode 'gnus-browse-mode) + (when (derived-mode-p 'gnus-browse-mode) (gnus-kill-buffer (current-buffer))) ;; Insert the newly subscribed groups in the group buffer. (with-current-buffer gnus-group-buffer