X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=lisp%2Fgnus-group.el;h=ff81bf7eb1ca2b9e4d274c072c21f575ed8e68c1;hb=0563df167689ba46e219f7915c6f5b321da614ce;hp=c9eb4271d81c091498ffb3bf9fd757081adebf60;hpb=d5c76a088ce7de15a4e41960dcd80d0f7eff31eb;p=elisp%2Fgnus.git- diff --git a/lisp/gnus-group.el b/lisp/gnus-group.el index c9eb427..ff81bf7 100644 --- a/lisp/gnus-group.el +++ b/lisp/gnus-group.el @@ -2426,29 +2426,42 @@ If SOLID (the prefix), create a solid group." (nnwarchive-login ,login)))) (gnus-group-make-group group method))) -(defvar nnshimbun-type-definition) (defvar gnus-group-shimbun-server-history nil) (defun gnus-group-make-shimbun-group () "Create a nnshimbun group." (interactive) (require 'nnshimbun) - (let* ((minibuffer-setup-hook (append minibuffer-setup-hook - '(beginning-of-line))) - (server (completing-read "Shimbun address: " - nnshimbun-type-definition nil t - (or (car gnus-group-shimbun-server-history) - (caar nnshimbun-type-definition)) - 'gnus-group-shimbun-server-history)) - (group (completing-read - "Group name: " + (let* ((minibuffer-setup-hook + (append minibuffer-setup-hook '(beginning-of-line))) + (alist + (apply 'nconc (mapcar - 'list - (cdr (assq 'groups - (cdr (assoc server nnshimbun-type-definition))))) - nil t nil)) - (nnshimbun-pre-fetch-article nil)) - (gnus-group-make-group group (list 'nnshimbun server)))) + (lambda (d) + (and (stringp d) + (file-directory-p d) + (delq nil + (mapcar + (lambda (f) + (and (string-match "^sb-\\(.*\\)\\.el$" f) + (list (match-string 1 f)))) + (directory-files d))))) + load-path))) + (server (completing-read + "Shimbun address: " + alist nil t + (or (car gnus-group-shimbun-server-history) + (caar alist)) + 'gnus-group-shimbun-server-history)) + (groups) + (nnshimbun-pre-fetch-article)) + (require (intern (concat "sb-" server))) + (when (setq groups (intern-soft (concat "shimbun-" server "-groups"))) + (gnus-group-make-group + (completing-read "Group name: " + (mapcar 'list (symbol-value groups)) + nil t nil) + (list 'nnshimbun server))))) (defun gnus-group-make-archive-group (&optional all) "Create the (ding) Gnus archive group of the most recent articles.