% Load plain if necessary, i.e., if running under initex.
 \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
 %
-\def\texinfoversion{2001-01-12.11}
+\def\texinfoversion{2001-02-02.17}
 %
 % Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2000
 % Free Software Foundation, Inc.
         % Now the real index entry with the fonts.
         \toks0 = {#2}%
         %
-        % If third (subentry) arg is present, add it to the index
-        % string.  And include a space.
+        % If the third (subentry) arg is present, add it to the index
+        % line to write.
         \ifx\thirdarg\emptymacro \else
-          \toks0 = \expandafter{\the\toks0 \space #3}%
+          \toks0 = \expandafter{\the\toks0{#3}}%
         \fi
         %
-        % Set up the complete index entry, with both the sort key
-        % and the original text, including any font commands.  We write
-        % three arguments to \entry to the .?? file, texindex reduces to
-        % two when writing the .??s sorted result.
+        % Set up the complete index entry, with both the sort key and
+        % the original text, including any font commands.  We write
+        % three arguments to \entry to the .?? file (four in the
+        % subentry case), texindex reduces to two when writing the .??s
+        % sorted result.
         \edef\temp{%
           \write\csname#1indfile\endcsname{%
             \realbackslash entry{\indexsorttmp}{\folio}{\the\toks0}}%
 \def\primary #1{\line{#1\hfil}}
 
 \newskip\secondaryindent \secondaryindent=0.5cm
-
-\def\secondary #1#2{
-{\parfillskip=0in \parskip=0in
-\hangindent =1in \hangafter=1
-\noindent\hskip\secondaryindent\hbox{#1}\indexdotfill #2\par
+\def\secondary#1#2{{%
+  \parfillskip=0in
+  \parskip=0in
+  \hangindent=1in
+  \hangafter=1
+  \noindent\hskip\secondaryindent\hbox{#1}\indexdotfill
+  \ifpdf
+    \pdfgettoks#2.\ \the\toksA % The page number ends the paragraph.
+  \else
+    #2
+  \fi
+  \par
 }}
 
 % Define two-column mode, which we use to typeset indexes.
 
 \e$B?d>)$5$l$k\e(B APEL, FLIM, SEMI \e$B$N%P!<%8%g%s$NAH9g$;$O!"0J2<$NDL$j$G$9!#\e(B
 
 @itemize @minus
-@item APEL 10.2, FLIM 1.13.2, SEMI 1.13.7
+@item APEL 10.3, FLIM 1.14.2, SEMI 1.14.3
 @end itemize
 
 \e$B$=$NB>!"\e(BFLIM, SEMI \e$B$K$O$$$m$$$m$JJQ7A%P!<%8%g%s$,B8:_$7$^$9$,!"\e(B
 Non-nil \e$B$J$i!"<+J,08$F$N%a!<%k$KJV?.$9$k>l9g!">o$K\e(B @samp{To:},
 @samp{Cc:} \e$B$+$i<+J,$N%a!<%k%"%I%l%9$r:o=|$7$^$9!#\e(B
 
+@item wl-draft-delete-myself-from-bcc-fcc
+@vindex wl-draft-delete-myself-from-bcc-fcc
+Non-nil \e$B$G!"\e(B@samp{To:}, @samp{Cc:} \e$B$,\e(B \e$BJQ?t\e(B @code{wl-subscribed-mailing-list} \e$B$K\e(B
+\e$B4^$^$l$F$$$k>l9g!"\e(B@samp{Bcc:} , @samp{FCC:} \e$B$r$D$1$^$;$s!%\e(B
+
 @item wl-smtp-posting-server
 @vindex wl-smtp-posting-server
 \e$B=i4|@_Dj$O\e(B @code{nil}\e$B!#\e(B
 
 @node Draft for Reply, Thread Format, Advanced Settings, Advanced Settings
 @subsection \e$BJV;vMQ%I%i%U%H\e(B
+@vindex wl-draft-reply-with-argument-list
+@vindex wl-draft-reply-without-argument-list
+@vindex wl-draft-reply-myself-with-argument-list
+@vindex wl-draft-reply-myself-without-argument-list
 
 \e$B%a!<%j%s%0%j%9%H$N5-;v$KJV;v$r=q$/$H$-$O!"%5%^%j%b!<%I$G\e(B @kbd{a} \e$B$r2!$7\e(B
 \e$B$?$@$1$G855-;v$N\e(B @samp{Reply-To:} \e$B$K$"$k%"%I%l%9$r\e(B @samp{To:} \e$B$KMQ0U$7$F\e(B
 
 Recommended combination of APEL, FLIM and SEMI are following:
 
 @itemize @minus
-@item APEL 10.2, FLIM 1.13.2 and SEMI 1.13.7
+@item APEL 10.3, FLIM 1.14.2 and SEMI 1.14.3
 @end itemize
 
 You can also use many other FLIM/SEMI variants. Combination of the
 If non-nil, always removes your own address from @samp{To:} and
 @samp{Cc:} when you are replying to the mail addressed to you.
 
+@item wl-draft-delete-myself-from-bcc-fcc
+@vindex wl-draft-delete-myself-from-bcc-fcc
+If any of @code{wl-subscribed-mailing-list} are contained in @samp{To:}
+or @samp{Cc:} field, do not insert @samp{Bcc:} or @samp{FCC:} field.
+
 @item wl-smtp-posting-server
 @vindex wl-smtp-posting-server
 The initial setting is @code{nil}.
 
 @node Draft for Reply, Thread Format, Advanced Settings, Advanced Settings
 @subsection Draft for Replay
+@vindex wl-draft-reply-with-argument-list
+@vindex wl-draft-reply-without-argument-list
+@vindex wl-draft-reply-myself-with-argument-list
+@vindex wl-draft-reply-myself-without-argument-list
 
 If you want, when you replying to articles in mailing lists, the address
 in Reply-To field of the original message to be prepared to To field of
 
 2001-02-20  Yuuichi Teranishi  <teranisi@gohome.org>
 
+       * Luna-fy Kenichi OKADA's following changes.
+       * elmo.el (elmo-folder-list-messages-internal): Added optional argument
+       `nohide'.
+       (elmo-folder-synchronize): Changed meaning of argument `ignore-msgdb'.
+
+2000-02-20  Kenichi OKADA  <okada@opaopa.org>
+
+       * elmo-imap4.el (elmo-imap4-list-folder): Added 'uid'
+
+2000-02-19  Kenichi OKADA  <okada@opaopa.org>
+
+       * elmo2.el (elmo-list-folder): Added optional argument `nohide'.
+       * elmo-imap4.el (elmo-imap4-list-folder): Added optional argument `nohide'.
+       * elmo-pop3.el (elmo-pop3-list-folder): Ditto.
+       * elmo-nntp.el (elmo-nntp-list-folder): Ditto.
+       * elmo-localdir.el (elmo-localdir-list-folder): Ditto.
+       * elmo-localnews.el (elmo-localnews-list-folder): Ditto.
+       * elmo-archive.el (elmo-archive-list-folder): Ditto.
+       * elmo-filter.el (elmo-filter-list-folder): Ditto.
+       * elmo-internal.el (elmo-internal-list-folder): Ditto.
+       * elmo-pipe.el (elmo-pipe-list-folder): Ditto.
+       * elmo-multi.el (elmo-multi-list-folder): Ditto.
+       * elmo-maildir.el (elmo-maildir-list-folder): Ditto.
+       * elmo-dop.el (elmo-dop-list-folder): Ditto.
+
+2000-02-17  Kenichi OKADA  <okada@opaopa.org>
+
+       * elmo-msgdb.el (elmo-msgdb-max-of-killed): New function.
+       * elmo-imap4.el (elmo-imap4-list-folder): Use killed-list.
+
+2001-02-20  Yuuichi Teranishi  <teranisi@gohome.org>
+
        * elmo.el (elmo-folder-process-crosspost): New generic method.
        (elmo-folder-writable-p): Ditto.
        (elmo-folder-message-appendable-p): Eliminated.
 
        * elmo-cache.el: Rewrite.
 
+2000-02-17  Kenichi OKADA  <okada@opaopa.org>
+
+       * elmo-pop3.el (elmo-network-authenticate-session): Bind `sasl-mechanisms'
+
 2000-12-08  Yuuichi Teranishi  <teranisi@gohome.org>
 
        * elmo-vars.el (elmo): New group.
 
       (elmo-living-messages numbers killed))))
 
 (luna-define-method elmo-folder-list-messages-internal ((folder
-                                                        elmo-archive-folder))
+                                                        elmo-archive-folder)
+                                                       &optional nohide)
   (elmo-archive-list-folder-subr folder))
 
 (luna-define-method elmo-folder-status ((folder elmo-archive-folder))
 
   (save-match-data
     (elmo-dop-queue-append folder "prefetch-msgs" msgs)))
 
-(defun elmo-dop-list-messages (folder)
-  (let* ((path (elmo-msgdb-expand-path folder))
-        (number-alist (elmo-msgdb-number-load path))
-        (number-list (mapcar 'car number-alist))
-        (append-list (elmo-dop-append-list-load folder))
-        (append-num (length append-list))
-        alreadies
-        killed
-        max-num
-        (i 0))
-    (setq killed (elmo-dop-list-deleted folder number-alist))
-    (while append-list
-      (if (rassoc (car append-list) number-alist)
-         (setq alreadies (append alreadies
-                                 (list (car append-list)))))
-      (setq append-list (cdr append-list)))
-    (setq append-num (- append-num (length alreadies)))
-    (setq max-num
-         (or (nth (max (- (length number-list) 1) 0)
-                  number-list) 0))
-    (while (< i append-num)
-      (setq number-list
-           (append number-list
-                   (list (+ max-num i 1))))
-      (setq i (+ 1 i)))
-    (elmo-living-messages number-list killed)))
+(defun elmo-dop-list-folder (folder &optional nohide)
+  (if (or (memq (elmo-folder-get-type folder)
+               '(imap4 nntp pop3 filter pipe))
+         (and (elmo-multi-p folder) (not (elmo-folder-local-p folder))))
+      (if elmo-enable-disconnected-operation
+         (let* ((path (elmo-msgdb-expand-path folder))
+                (number-alist (elmo-msgdb-number-load path))
+                (number-list (mapcar 'car number-alist))
+                (append-list (elmo-dop-append-list-load folder))
+                (append-num (length append-list))
+                (killed (and elmo-use-killed-list
+                             (elmo-msgdb-killed-list-load path)))
+                alreadies
+                max-num
+                (i 0))
+           (setq killed (nconc (elmo-dop-list-deleted folder number-alist)
+                               killed))
+           (while append-list
+             (if (rassoc (car append-list) number-alist)
+                 (setq alreadies (append alreadies
+                                         (list (car append-list)))))
+             (setq append-list (cdr append-list)))
+           (setq append-num (- append-num (length alreadies)))
+           (setq max-num
+                 (or (nth (max (- (length number-list) 1) 0)
+                          number-list) 0))
+           (while (< i append-num)
+             (setq number-list
+                   (append number-list
+                           (list (+ max-num i 1))))
+             (setq i (+ 1 i)))
+           (elmo-living-messages number-list killed))
+       (error "Unplugged"))
+    ;; not imap4 folder...list folder
+    (elmo-call-func folder "list-folder")))
 
 (defun elmo-dop-count-appended (folder)
   (length (elmo-dop-append-list-load folder)))
 
    (elmo-filter-folder-target-internal folder) numbers))
 
 (luna-define-method elmo-folder-list-messages-internal
-  ((folder elmo-filter-folder))
+  ((folder elmo-filter-folder) &optional nohide)
   (elmo-folder-search (elmo-filter-folder-target-internal folder)
                      (elmo-filter-folder-condition-internal folder)))
 
 
        (elmo-imap4-response-value status 'messages)))))
 
 (luna-define-method elmo-folder-list-messages-plugged ((folder
-                                                       elmo-imap4-folder))
-  (elmo-imap4-list folder "all"))
+                                                       elmo-imap4-folder)
+                                                      &optional nohide)
+  (elmo-imap4-list folder
+                  (let ((max (elmo-msgdb-max-of-killed
+                              (elmo-folder-killed-list-internal folder))))
+                    (if (or nohide
+                            (null (eq max 0)))
+                        (format "uid %d:*" (1+ max))
+                      "all"))))
 
 (luna-define-method elmo-folder-list-unreads-plugged
   ((folder elmo-imap4-folder))
 
       (buffer-string))))
 
 (luna-define-method elmo-folder-list-messages-internal
-  ((folder elmo-localdir-folder))
+  ((folder elmo-localdir-folder) &optional nohide)
   (elmo-localdir-list-subr folder))
 
 (luna-define-method elmo-folder-status ((folder elmo-localdir-folder))
 
    (elmo-map-folder-list-message-locations folder)))
 
 (luna-define-method elmo-folder-list-messages-internal
-  ((folder elmo-map-folder))
+  ((folder elmo-map-folder) &optional nohide)
   (mapcar 'car (elmo-map-folder-location-alist-internal folder)))
 
 (luna-define-method elmo-folder-unmark-important ((folder elmo-map-folder)
 
       (setq killed (cdr killed)))
     ret-val))
 
+(defun elmo-msgdb-max-of-killed (killed-list)
+  (let ((klist killed-list)
+       (max 0)
+       k)
+    (while (car klist)
+      (if (< max
+            (setq k
+                  (if (consp (car klist))
+                      (cdar klist)
+                    (car klist))))
+         (setq max k))
+      (setq klist (cdr klist)))
+    max))
+
 (defun elmo-living-messages (messages killed-list)
   (if killed-list
       (delq nil
 
     all-importants))
 
 (luna-define-method elmo-folder-list-messages-internal
-  ((folder elmo-multi-folder))
+  ((folder elmo-multi-folder) &optional nohide)
   (let* ((flds (elmo-multi-folder-children-internal folder))
         (cur-number 0)
         numbers)
 
     (error "Unplugged")))
 
 (luna-define-method elmo-folder-list-messages-internal
-  ((folder elmo-net-folder))
-  (elmo-net-folder-list-messages-internal folder))
+  ((folder elmo-net-folder) &optional nohide)
+  (elmo-net-folder-list-messages-internal folder nohide))
 
-(defun elmo-net-folder-list-messages-internal (folder)
+(defun elmo-net-folder-list-messages-internal (folder nohide)
   (if (elmo-folder-plugged-p folder)
-      (elmo-folder-send folder 'elmo-folder-list-messages-plugged)
+      (elmo-folder-send folder 'elmo-folder-list-messages-plugged nohide)
     (elmo-folder-send folder 'elmo-folder-list-messages-unplugged)))
 
 (luna-define-method elmo-folder-list-messages-plugged
 
      (read (current-buffer)))))
 
 (luna-define-method elmo-folder-list-messages-internal ((folder
-                                                        elmo-nntp-folder))
+                                                        elmo-nntp-folder)
+                                                       &optional nohide)
   (let ((session (elmo-nntp-get-session folder))
        (group   (elmo-nntp-folder-group-internal folder))
        response numbers use-listgroup)
 
   (elmo-folder-close-internal(elmo-pipe-folder-dst-internal folder)))
 
 (luna-define-method elmo-folder-list-messages-internal
-  ((folder elmo-pipe-folder))
+  ((folder elmo-pipe-folder) &optional nohide)
   (elmo-folder-list-messages-internal (elmo-pipe-folder-dst-internal
-                                      folder)))
+                                      folder) nohide))
 
 (luna-define-method elmo-folder-list-unreads-internal
   ((folder elmo-pipe-folder) unread-marks &optional mark-alist)
 
   "(Internal switch for using UIDL on POP3).")
 
 (defvar elmo-pop3-exists-exactly t)
+(defvar sasl-mechanism-alist)
 
 ;;; ELMO POP3 folder
 (eval-and-compile
           (auth (elmo-network-session-auth-internal session))
           (auth (mapcar '(lambda (mechanism) (upcase (symbol-name mechanism)))
                         (if (listp auth) auth (list auth))))
+          sasl-mechanisms
           client name step response mechanism
           sasl-read-passphrase)
       (or (and (string= "USER" (car auth))
          (and (string= "APOP" (car auth))
               (elmo-pop3-auth-apop session))
          (progn
+           (require 'sasl)
+           (setq sasl-mechanisms (mapcar 'car sasl-mechanism-alist))
            (setq mechanism (sasl-find-mechanism auth))
            (unless mechanism
              (signal 'elmo-authenticate-error '(elmo-pop3-auth-no-mechanisms)))
             process
             (concat "AUTH " name
                     (and (sasl-step-data step)
-                         (concat 
+                         (concat
                           " "
                           (elmo-base64-encode-string
                            (sasl-step-data step) 'no-line-break))))) ;)
     (elmo-pop3-list-by-list folder)))
 
 (luna-define-method elmo-folder-list-messages-internal
-  ((folder elmo-pop3-folder))
+  ((folder elmo-pop3-folder) &optional nohide)
   (elmo-pop3-folder-list-messages folder))
 
 (luna-define-method elmo-folder-status ((folder elmo-pop3-folder))
 
 (luna-define-generic elmo-folder-status (folder)
   "Returns a cons cell of (MAX-NUMBER . MESSAGES) in the FOLDER.")
 
-(defun elmo-folder-list-messages (folder)
-  "Return a list of message numbers contained in FOLDER."
-  (let ((list (elmo-folder-list-messages-internal folder))
+(defun elmo-folder-list-messages (folder &optional visible-only)
+  "Return a list of message numbers contained in FOLDER.
+If optional VISIBLE-ONLY is non-nil, killed messages are not listed."
+  (let ((list (elmo-folder-list-messages-internal folder visible-only))
        (killed (elmo-folder-killed-list-internal folder))
        numbers)
     (setq numbers
                    (car x))))
             (elmo-msgdb-get-mark-alist (elmo-folder-msgdb folder)))))))
 
-(luna-define-generic elmo-folder-list-messages-internal (folder)
+(luna-define-generic elmo-folder-list-messages-internal (folder &optional
+                                                               visible-only)
   ;; Return a list of message numbers contained in FOLDER.
   ;; Return t if the message list is not available.
   )
 are mark strings for new messages, unread but cached messages,
 read but not cached messages, and important messages.
 If optional IGNORE-MSGDB is non-nil, current msgdb is thrown away except
-read mark status.
+read mark status. If IGNORE-MSGDB is 'visible-only, only visible messages
+are thrown away and synchronized.
 
 Return a list of
 \(NEW-MSGDB DELETE-LIST CROSSED\)
                            (concat important-mark read-uncached-mark))
                           seen-list))
          ;; Make killed list as nil.
-         (elmo-folder-set-killed-list-internal folder nil)
+         (unless (eq ignore-msgdb 'visible-only)
+           (elmo-folder-set-killed-list-internal folder nil))
          (elmo-folder-set-msgdb-internal folder
                                          (elmo-msgdb-clear))))
     (elmo-folder-check folder)
          (message "Checking folder diff...")
          ;; TODO: killed list is loaded in elmo-folder-open and
          ;; list-messages use internal killed-list-folder.
-         (setq diff (elmo-list-diff (elmo-folder-list-messages folder)
+         (setq diff (elmo-list-diff (elmo-folder-list-messages
+                                     folder
+                                     (eq 'visible-only ignore-msgdb))
                                     (unless ignore-msgdb
                                       (sort (mapcar 
                                              'car 
 
 ;; Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993,
 ;;               1994, 1995, 1996, 1997 Free Software Foundation, Inc.
 ;; Copyright (C) 1999 Yoshiki Hayashi <yoshiki@xemacs.org>
-;; Copyright (C) 2000 TAKAHASHI Kaoru <kaoru@kaisei.org>
+;; Copyright (C) 2000, 2001 TAKAHASHI Kaoru <kaoru@kaisei.org>
 
 ;; Author: TAKAHASHI Kaoru <kaoru@kaisei.org>
 ;;     Yoshiki Hayashi <yoshiki@xemacs.org>
 (require 'poe)
 (require 'broken)
 
-(provide 'ptexinfmt)
-
 ;;; Broken
 (defvar ptexinfmt-disable-broken-notice-flag t
   "If non-nil disable notice, when call `broken-facility'.
 ;; @image{FILENAME, [WIDTH], [HEIGHT]}
 (put 'image 'texinfo-format 'texinfo-format-image)
 (defun-maybe texinfo-format-image ()
-  (let ((args (texinfo-format-parse-args)) ; parse FILENAME?
+  ;; I don't know makeinfo parse FILENAME.
+  (let ((args (texinfo-format-parse-args))
        filename)
     (when (null (nth 0 args))
       (error "Invalid image command"))
         (texinfo-sort-region opoint (point))
       (shell-command-on-region opoint (point) "sort -fd" 1))))
 
+(provide 'ptexinfmt)
+
 ;;; ptexinfmt.el ends here
 
+2000-02-20  Yuuichi Teranishi  <teranisi@gohome.org>
+
+       * wl-summary.el (wl-summary-sync): Rename 'all-shown' to `all-visible'.
+       (wl-summary-input-range): Ditto.
+
 2001-02-20  Yuuichi Teranishi  <teranisi@gohome.org>
 
        * wl-summary.el (wl-summary-edit-addresses): Use
        * wl-summary.el (wl-summary-save-view): Renamed from
        `wl-summary-save-status'.
 
-2001-01-23  Yuuichi Teranishi  <teranisi@gohome.org>
+2000-02-20  Kenichi OKADA  <okada@opaopa.org>
+
+       * wl-summary.el (wl-summary-sync): Added 'all-shown'
+
+2000-02-20  Kenichi OKADA  <okada@opaopa.org>
+
+       * wl-summary.el (wl-summary-input-range): Added `all-shown'
+
+2000-02-19  Kenichi OKADA  <okada@opaopa.org>
+
+       * wl-summary.el (wl-summary-sync-update3): Bind 'nohide as t if sync-all.
+
+2001-02-19  OKAZAKI Tetsurou  <okazaki@be.to>
+
+       * wl-highlight.el (wl-highlight-summary-line-string): Use
+       `zerop' instead of `= 0'.
+       (wl-highlight-summary): Use `zerop' instead of `eq 0'.
+
+       * wl-template.el (wl-template-next): Use `=' instead of `eq'
+       for comparing numbers.
+       (wl-template-prev): Use `zerop' instead of `eq 0'.
+
+       * wl-draft.el (wl-draft-insert-current-message): Use
+       `with-current-buffer' instead of `save-excursion'.
+       Use `zerop' instead of `eq 0'.
+
+2001-02-17  Kenichi OKADA  <okada@opaopa.org>
+
+       * wl-draft.el (wl-draft-insert-ccs): New function.
+       (wl-draft): Use `wl-draft-insert-ccs' for Bcc and FCC.
+       * wl-vars.el (wl-draft-delete-myself-from-bcc-fcc): New variable.
+
+2001-02-15  Yuuichi Teranishi  <teranisi@gohome.org>
+
+       * wl-summary.el (wl-cache-prefetch-message): Fixed last change.
+
+2001-02-14  Yuuichi Teranishi  <teranisi@gohome.org>
 
        * wl-expire.el (wl-expire-refile): Don't call
        elmo-msgdb-add-msgs-to-seen-list;
 
     (with-current-buffer wl-draft-buffer-cur-summary-buffer
       (with-current-buffer wl-message-buffer
        (setq mail-reply-buffer (wl-message-get-original-buffer))))
-    (if (eq 0
-           (save-excursion
-             (set-buffer mail-reply-buffer)
+    (if (zerop
+           (with-current-buffer mail-reply-buffer
              (buffer-size)))
        (error "No current message")
       (wl-draft-yank-from-mail-reply-buffer
     (setq wl-draft-buffer-file-name file-name)
     (if mail-default-reply-to
        (insert "Reply-To: " mail-default-reply-to "\n"))
-    (if (or wl-bcc mail-self-blind)
-       (insert "Bcc: " (or wl-bcc (user-login-name)) "\n"))
-    (if wl-fcc
-       (insert "FCC: " (if (functionp wl-fcc) (funcall wl-fcc) wl-fcc) "\n"))
+    (wl-draft-insert-ccs "Bcc: " (or wl-bcc
+                              (and mail-self-blind (user-login-name))))
+    (wl-draft-insert-ccs "FCC: " wl-fcc)
     (if wl-organization
        (insert "Organization: " wl-organization "\n"))
     (and wl-auto-insert-x-face
          (when content-type
            (insert "Content-type: " content-type "\n"))
          (when content-transfer-encoding
-           (insert "Content-Transfer-encoding: " content-transfer-encoding "\n"))
+           (insert "Content-Transfer-Encoding: " content-transfer-encoding "\n"))
          (if (or content-type content-transfer-encoding)
              (insert "\n"))
          (and body (insert body))
                                                  wl-summary-buffer-name)))
     buf-name))
 
+(defsubst wl-draft-insert-ccs (str cc)
+  (let ((field
+        (if (functionp cc)
+            (funcall cc)
+          cc)))
+    (if (and field
+            (null (and wl-draft-delete-myself-from-bcc-fcc
+                       (elmo-list-member
+                        (mapcar 'wl-address-header-extract-address
+                                (append
+                                 (wl-parse-addresses (std11-field-body "To"))
+                                 (wl-parse-addresses (std11-field-body "Cc"))))
+                        (mapcar 'downcase wl-subscribed-mailing-list)))))
+       (insert str field "\n"))))
+
 (defun wl-draft-elmo-nntp-send ()
   (let ((elmo-nntp-post-pre-hook wl-news-send-pre-hook)
        (elmo-default-nntp-user
 
           (setq fsymbol 'wl-highlight-summary-low-read-face))
          ((string= temp-mark "+")
           (setq fsymbol 'wl-highlight-summary-high-read-face))
-         (t (if (= 0 (length indent))
+         (t (if (zerop (length indent))
                 (setq fsymbol 'wl-highlight-summary-thread-top-face)
               (setq fsymbol 'wl-highlight-summary-normal-face))))
     (put-text-property 0 (length line) 'face fsymbol line))
                (when (> lines elmo-display-progress-threshold)
                  (setq i (+ i 1))
                  (setq percent (/ (* i 100) lines))
-                 (if (or (eq (% percent 5) 0) (= i lines))
+                 (if (or (zerop (% percent 5)) (= i lines))
                      (elmo-display-progress
                       'wl-highlight-summary "Highlighting..."
                       percent)))
 
            'force-update nil nil t))
          (t
           (wl-summary-sync-update unset-cursor
-                                  (string= range "all"))))))
+                                  (cond ((string= range "all") 'all)
+                                        ((string= range "all-visible")
+                                         'visible-only)))))))
 
 (defvar wl-summary-edit-addresses-candidate-fields
   ;; First element becomes default.
   "returns update or all or rescan."
   ;; for the case when parts are expanded in the bottom of the folder
   (let ((input-range-list '("update" "all" "rescan" "first:" "last:"
-                           "rescan-noscore"))
+                           "no-sync" "rescan-noscore" "all-visible"))
        (default (or (wl-get-assoc-list-value
                      wl-folder-sync-range-alist
                      folder)
 
 (defun wl-template-next ()
   "Display next reference in other buffer."
   (interactive)
-  (if (eq wl-template-max-num
-         (setq wl-template-cur-num (1+ wl-template-cur-num)))
+  (if (= wl-template-max-num
+        (setq wl-template-cur-num (1+ wl-template-cur-num)))
       (setq wl-template-cur-num 0))
   (wl-template-show))
 
 (defun wl-template-prev ()
   "Display previous reference in other buffer."
   (interactive)
-  (setq wl-template-cur-num (if (eq wl-template-cur-num 0)
+  (setq wl-template-cur-num (if (zerop wl-template-cur-num)
                                (1- wl-template-max-num)
                              (1- wl-template-cur-num)))
   (wl-template-show))
 
   :type 'boolean
   :group 'wl-draft)
 
+(defcustom wl-draft-delete-myself-from-bcc-fcc nil
+  "*Do not insert bcc or fcc if To and Cc fields is a member of
+`wl-subscribed-mailing-list'"
+  :type 'boolean
+  :group 'wl-draft)
+
 (defcustom wl-draft-resume-folder-window t
   "*Resume folder window in `wl-draft-hide'."
   :type 'boolean