X-Git-Url: http://cgit.sxemacs.org/?a=blobdiff_plain;f=lisp%2Fgnus.el;h=22676771d3493fe4186678df0294f5cafe5078f3;hb=0e58eccaf2bea9d2698f275a6937ba8cdf66fa6c;hp=5fc357cf5a50792f7c7f1eee09a07231e55935a1;hpb=6acac76dbfeaa2e3e042fda84fb9afaac3f4968f;p=gnus diff --git a/lisp/gnus.el b/lisp/gnus.el index 5fc357cf5..22676771d 100644 --- a/lisp/gnus.el +++ b/lisp/gnus.el @@ -260,7 +260,7 @@ is restarted, and sometimes reloaded." :link '(custom-manual "(gnus)Exiting Gnus") :group 'gnus) -(defconst gnus-version-number "0.84" +(defconst gnus-version-number "0.99" "Version number for this version of Gnus.") (defconst gnus-version (format "Pterodactyl Gnus v%s" gnus-version-number) @@ -1233,8 +1233,11 @@ slower." ("nnfolder" mail respool address) ("nngateway" post-mail address prompt-address physical-address) ("nnweb" none) + ("nnslashdot" none) + ("nnultimate" none) ("nnlistserv" none) - ("nnagent" post-mail)) + ("nnagent" post-mail) + ("nnimap" post-mail address prompt-address physical-address)) "*An alist of valid select methods. The first element of each list lists should be a string with the name of the select method. The other elements may be the category of @@ -1607,6 +1610,7 @@ gnus-newsrc-hashtb should be kept so that both hold the same information.") ("browse-url" browse-url) ("message" :interactive t message-send-and-exit message-yank-original) + ("babel" babel-as-string) ("nnmail" nnmail-split-fancy nnmail-article-group) ("nnvirtual" nnvirtual-catchup-group nnvirtual-convert-headers) ("rmailout" rmail-output rmail-output-to-rmail-file) @@ -1666,7 +1670,8 @@ gnus-newsrc-hashtb should be kept so that both hold the same information.") gnus-score-find-trace gnus-score-file-name) ("gnus-cus" :interactive t gnus-group-customize gnus-score-customize) ("gnus-topic" :interactive t gnus-topic-mode) - ("gnus-topic" gnus-topic-remove-group gnus-topic-set-parameters) + ("gnus-topic" gnus-topic-remove-group gnus-topic-set-parameters + gnus-subscribe-topics) ("gnus-salt" :interactive t gnus-pick-mode gnus-binary-mode) ("gnus-uu" (gnus-uu-extract-map keymap) (gnus-uu-mark-map keymap)) ("gnus-uu" :interactive t @@ -1760,7 +1765,10 @@ gnus-newsrc-hashtb should be kept so that both hold the same information.") gnus-unplugged gnus-agentize gnus-agent-batch) ("gnus-vm" :interactive t gnus-summary-save-in-vm gnus-summary-save-article-vm) - ("gnus-draft" :interactive t gnus-draft-mode gnus-group-send-drafts)))) + ("gnus-draft" :interactive t gnus-draft-mode gnus-group-send-drafts) + ("gnus-mlspl" gnus-group-split gnus-group-split-fancy) + ("gnus-mlspl" :interactive t gnus-group-split-setup + gnus-group-split-update)))) ;;; gnus-sum.el thingies @@ -2455,12 +2463,14 @@ You should probably use `gnus-find-method-for-group' instead." (defun gnus-method-simplify (method) "Return the shortest uniquely identifying string or method for METHOD." - (cond ((gnus-native-method-p method) - nil) - ((gnus-secondary-method-p method) - (format "%s:%s" (nth 0 method) (nth 1 method))) - (t - method))) + (cond ((stringp method) + method) + ((gnus-native-method-p method) + nil) + ((gnus-secondary-method-p method) + (format "%s:%s" (nth 0 method) (nth 1 method))) + (t + method))) (defun gnus-groups-from-server (server) "Return a list of all groups that are fetched from SERVER." @@ -2576,31 +2586,33 @@ just the host name." (setq skip (match-end 0) depth (+ depth 1))) depth)))) - ;; separate foreign select method from group name and collapse. - ;; if method contains a server, collapse to non-domain server name, - ;; otherwise collapse to select method - (let* ((colon (string-match ":" group)) + ;; Separate foreign select method from group name and collapse. + ;; If method contains a server, collapse to non-domain server name, + ;; otherwise collapse to select method. + (let* ((colon (string-match ":" group)) (server (and colon (substring group 0 colon))) - (plus (and server (string-match "+" server)))) + (plus (and server (string-match "+" server)))) (when server - (cond (plus - (setq foreign (substring server (+ 1 plus) - (string-match "\\." server)) - group (substring group (+ 1 colon)))) - (t - (setq foreign server - group (substring group (+ 1 colon))))) - (setq foreign (concat foreign ":")))) - ;; collapse group name leaving LEVELS uncollapsed elements - (while group - (if (and (string-match "\\." group) (> levels 0)) - (setq name (concat name (substring group 0 1)) - group (substring group (match-end 0)) - levels (- levels 1) - name (concat name ".")) - (setq name (concat foreign name group) - group nil))) - name)) + (if plus + (setq foreign (substring server (+ 1 plus) + (string-match "\\." server)) + group (substring group (+ 1 colon))) + (setq foreign server + group (substring group (+ 1 colon)))) + (setq foreign (concat foreign ":"))) + ;; Collapse group name leaving LEVELS uncollapsed elements + (let* ((glist (split-string group "\\.")) + (glen (length glist)) + res) + (setq levels (- glen levels)) + (dolist (g glist) + (push (if (>= (decf levels) 0) + (if (zerop (length g)) + "" + (substring g 0 1)) + g) + res)) + (concat foreign (mapconcat 'identity (nreverse res) ".")))))) (defun gnus-narrow-to-body () "Narrow to the body of an article." @@ -2765,6 +2777,9 @@ Disallow invalid group names." Allow completion over sensible values." (let* ((servers (append gnus-valid-select-methods + (mapcar (lambda (i) (list (format "%s:%s" (caar i) + (cadar i)))) + gnus-opened-servers) gnus-predefined-server-alist gnus-server-alist)) (method @@ -2775,11 +2790,18 @@ Allow completion over sensible values." ((equal method "") (setq method gnus-select-method)) ((assoc method gnus-valid-select-methods) - (list (intern method) - (if (memq 'prompt-address - (assoc method gnus-valid-select-methods)) - (read-string "Address: ") - ""))) + (let ((address (if (memq 'prompt-address + (assoc method gnus-valid-select-methods)) + (read-string "Address: ") + ""))) + (or (let ((opened gnus-opened-servers)) + (while (and opened + (not (equal (format "%s:%s" method address) + (format "%s:%s" (caaar opened) + (cadaar opened))))) + (pop opened)) + (caar opened)) + (list (intern method) address)))) ((assoc method servers) method) (t