+(defun wl-folder-get-newsgroups (folder)
+ "Return Newsgroups field value string for FOLDER newsgroup.
+If FOLDER is multi, return comma separated string (cross post)."
+ (let ((flist (elmo-folder-get-primitive-folder-list folder)) ; multi
+ newsgroups fld ret)
+ (while (setq fld (car flist))
+ (if (setq ret
+ (cond ((eq 'nntp (elmo-folder-get-type fld))
+ (nth 1 (elmo-folder-get-spec fld)))
+ ((eq 'localnews (elmo-folder-get-type fld))
+ (elmo-replace-in-string
+ (nth 1 (elmo-folder-get-spec fld)) "/" "\\."))))
+ ;; append newsgroup
+ (setq newsgroups (if (stringp newsgroups)
+ (concat newsgroups "," ret)
+ ret)))
+ (setq flist (cdr flist)))
+ (list nil nil newsgroups)))
+
+(defun wl-folder-guess-mailing-list-by-refile-rule (folder)
+ "Return ML address guess by FOLDER.
+Use `wl-subscribed-mailing-list' and `wl-refile-rule-alist'.
+Don't care multi."
+ (setq folder (car (elmo-folder-get-primitive-folder-list folder)))
+ (unless (memq (elmo-folder-get-type folder)
+ '(localnews nntp))
+ (let ((rules wl-refile-rule-alist)
+ mladdress tokey toalist histkey)
+ (while rules
+ (if (or (and (stringp (car (car rules)))
+ (string-match "[Tt]o" (car (car rules))))
+ (and (listp (car (car rules)))
+ (elmo-string-matched-member "to" (car (car rules))
+ 'case-ignore)))
+ (setq toalist (append toalist (cdr (car rules)))))
+ (setq rules (cdr rules)))
+ (setq tokey (car (rassoc folder toalist)))
+;;; (setq histkey (car (rassoc folder wl-refile-alist)))
+ ;; case-ignore search `wl-subscribed-mailing-list'
+ (if (stringp tokey)
+ (list
+ (elmo-string-matched-member tokey wl-subscribed-mailing-list t)
+ nil nil)
+ nil))))
+