2_8-4'.
+2001-12-26 Yuuichi Teranishi <teranisi@gohome.org>
+
+ * NEWS, NEWS.ja: Added description about
+ `elmo-enable-disconnected-operation';
+ Added description about "$" mark.
+
+ * WL-MK (update-version): New function.
+
+ * Makefile (update-version): Added.
+
2001-12-18 Yuuichi Teranishi <teranisi@gohome.org>
* samples/ja/dot.wl,samples/en/dot.wl (my-wl-summary-subject-func-ml):
test:
$(EMACS) $(FLAGS) -l WL-MK -f test-wl $(LISPDIR) $(PIXMAPDIR)
+update-version:
+ $(EMACS) $(FLAGS) -l WL-MK -f update-version $(LISPDIR) $(PIXMAPDIR)
+
install-elc:
$(EMACS) $(FLAGS) -l WL-MK -f install-wl-package $(LISPDIR) $(PIXMAPDIR)
** Now available `make check' environment test for user.
-** If you set obsolete variables (e.g. renamed ones), Wanderlust shows warning
- messages and urge you to change settings.
- Please change your settings according to the messages.
- To suppress warning messages, set elmo-obsolete-variable-show-warnings to
- nil.
+** If you set obsolete variables (e.g. renamed ones) in .wl etc, Wanderlust
+ shows warning messages and urge you to change settings.
+ Change your settings according to the messages, please.
+ If you want to suppress warnings, set elmo-obsolete-variable-show-warnings
+ to nil.
** Added new internal folders: 'sendlog folder
** elmo-cache-dirname is abolished and elmo-cache-directory is newly created.
You can put cache directory to another place by setting
- elmo-cache-directory (e.g. for whom put symbolic link for ~/.elmo/cache
- on NFS environment).
+ elmo-cache-directory.
+
+** Default value of elmo-enable-disconnected-operation is now `t'.
+ When the relevant messages are cached, you can do some operations
+ even in the off-line state.
+
+** Now messages with "$" mark is not remained in the summary buffer when
+ the actual message itself is deleted.
+ Please visit the 'mark folder to review the messages with the "$" mark.
* Version 2.6.1 is basically a bug fix version of 2.6.0.
** make check \e$B$G4JC1$J4D6-%F%9%H$,$G$-$k$h$&$K$J$j$^$7$?!#\e(B
-** \e$BL>A0JQ99Ey$G4{$K;H$o$l$J$/$J$C$?JQ?t$,@_Dj$5$l$F$$$k$H\e(B warning
- \e$B$,I=<($5$l$k$h$&$K$J$j$^$7$?!#\e(B
- \e$B%a%C%;!<%8$r;29M$K$7$F!"?7$7$$@_Dj$KJQ99$7$F$/$@$5$$!#\e(B
- warning \e$B$NI=<($rM^@)$9$k$K$O!"JQ?t\e(B elmo-obsolete-variable-show-warnings \e$B$r\e(B
- nil \e$B$K$7$F$/$@$5$$!#\e(B
+** \e$BL>A0JQ99Ey$G;H$o$l$J$/$J$C$?JQ?t$r\e(B .wl \e$BEy$G@_Dj$7$F$$$k$H!"7Y9p$,I=<($5$l\e(B
+ \e$B$^$9!#%a%C%;!<%8$r;29M$K$7$F!"@_Dj$rJQ99$7$F$/$@$5$$!#\e(B
+ \e$B$b$72?$i$+$NM}M3$G7Y9p$NI=<($rM^@)$7$?$$>l9g$K$O!"JQ?t\e(B
+ elmo-obsolete-variable-show-warnings \e$B$r\e(B nil \e$B$K$7$F$/$@$5$$!#\e(B
** \e$B?75,FbIt%U%)%k%@\e(B 'sendlog \e$B$,DI2C$5$l$^$7$?!#\e(B
** xxx-dir \e$B$H$$$&L>A0$NJQ?t$O\e(B xxx-directory \e$B$H$$$&L>A0$KJQ99$5$l$^$7$?!#\e(B
\e$BNc$($P!"\e(Bwl-icon-dir \e$B$O\e(B wl-icon-directory \e$B$KJQ99$5$l$F$$$^$9!#\e(B
- Emacs21 \e$B$G\e(B logo \e$BI=<($J$I$N@_Dj$7$F$$$kJ}$OFC$KCm0U$7$F$/$@$5$$!#\e(B
+ Emacs21 \e$B$G\e(B logo \e$BI=<($J$I$N@_Dj$r$7$F$$$kJ}$OFC$KCm0U$7$F$/$@$5$$!#\e(B
** elmo-cache-dirname \e$B$rGQ;_$7$F\e(B elmo-cache-directory \e$B$r?7@_$7$^$7$?!#\e(B
- NFS \e$B4D6-$J$I$G\e(B ~/.elmo/cache \e$B$r%7%s%\%j%C%/%j%s%/$GHt$P$7$F$$$?\e(B
- \e$BJ}$O!"\e(Belmo-cache-directory \e$B$r@_Dj$9$k$3$H$K$h$C$F%-%c%C%7%e$@$1\e(B
- \e$B$rA4$/JL$N%G%#%l%/%H%j$K$G$-$^$9!#\e(B
+ elmo-cache-directory \e$B$r@_Dj$9$k$3$H$K$h$C$F%-%c%C%7%e$@$1$rA4$/JL$N\e(B
+ \e$B%G%#%l%/%H%j$KCV$/$3$H$,$G$-$^$9!#\e(B
+
+** elmo-enable-disconnected-operation \e$B$N%G%U%)%k%HCM$,\e(B t \e$B$K$J$j$^$7$?!#\e(B
+ \e$B%*%U%i%$%s>uBV$G$b%a%C%;!<%8$,%-%c%C%7%e$5$l$F$$$l$P!"$"$kDxEY$N\e(B
+ \e$B%a%C%;!<%8A`:n$,2DG=$G$9!#\e(B
+
+** "$" \e$B%^!<%/$NIU$$$?%a%C%;!<%8$O!"%a%C%;!<%8$N<BBN$,>C$($?>l9g$K$O%5%^%j$+$i\e(B
+ \e$B$b>C$($k$h$&$K$J$j$^$7$?!#\e(B
+ "$" \e$B%^!<%/$NIU$$$?%a%C%;!<%8$r8+D>$7$?$$>l9g$O\e(B 'mark \e$B%U%)%k%@$r;2>H$7$F\e(B
+ \e$B$/$@$5$$!#\e(B
* 2.6.1 \e$B$O\e(B 2.6.0 \e$B$N=$@5HG$G$9!#\e(B
Web Page:
- Wanderlust \e$B$N\e(B Official Web \e$B%Z!<%8$N\e(B URL \e$B$O0J2<$NDL$j$G$9!#\e(B
+ Wanderlust \e$B8x<0\e(B Web \e$B%Z!<%8$N\e(B URL \e$B$O0J2<$NDL$j$G$9!#\e(B
http://www.gohome.org/wl/
% cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/root checkout wanderlust
- \e$B0BDjHG$N;^$+$i\e(B Wanderlust \e$B<h$j=P$9>l9g$O!"0J2<$N$h$&$K$7$F$/$@$5$$!#\e(B
+ \e$B0BDjHG$N;^$+$i\e(B Wanderlust \e$B$r<h$j=P$9>l9g$O!"0J2<$NMM$K$7$F$/$@$5$$!#\e(B
% cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/root checkout -r wl-2_8 wanderlust
http://cvs.m17n.org/cgi-bin/viewcvs/wanderlust/
- CVS \e$B$N\e(B commit log \e$B$r%a!<%k$G<u$1<h$j$?$$$H$-$O!"0J2<$N%"%I%l%9$K6u$N\e(B
+ CVS \e$B$N\e(B commit log \e$B$r%a!<%k$G<u$1<h$j$?$$J}$O!"<!$N%"%I%l%9$K6u$N\e(B
\e$B%a!<%k$rAw$C$F$/$@$5$$!#\e(B
cvs-info-help@cvs.m17n.org
Development:
- CVS \e$B$K4p$E$$$?3+H/$K;22C$7$?$$$H$-$O!"\e(B
+ CVS \e$B$K4p$E$$$?3+H/$K;22C$7$?$$J}$O!"\e(B
cvs@cvs.m17n.org
(config-wl-pixmap-dir)
(princ "\n"))
+(defun update-version ()
+ "Update version number of documents."
+ (config-wl-package)
+ (load-file "elmo/elmo-version.el")
+ (let ((version (mapconcat
+ 'number-to-string
+ (product-version (product-find 'elmo-version))
+ ".")))
+ (princ (concat "Update version number to " version "\n"))
+ ;; generate version.tex
+ (with-temp-buffer
+ (insert "\\def\\versionnumber{" version "}\n")
+ (write-region (point-min) (point-max) (expand-file-name
+ "version.tex" "doc")))
+ ;; generate version.texi
+ (with-temp-buffer
+ (insert "@set VERSION " version "\n")
+ (write-region (point-min) (point-max) (expand-file-name
+ "version.texi" "doc")))))
+
(defun test-wl ()
"Run test suite for developer."
(config-wl-package)
NNTP \e$B4XO"\e(B(wl-folder-check-entity-async)
msgdb \e$B9=B$$N8+D>$7$H\e(B obarray \e$B2=\e(B
\e$B=EMW%^!<%/$N4IM}\e(B
-\e$B%5%^%j%U%)!<%^%C%H<+M32=\e(B
+\e$B%5%^%j%U%)!<%^%C%H<+M32=\e(B(WL:8748)
\e$B%W%j%U%'%C%AM=Ls%^!<%/\e(B
\e$BJV;v:Q$_!"%U%)%o!<%I:Q$_%^!<%/\e(B
virtual \e$B4V$G\e(B msgdb \e$B6&M-\e(B
wl-summary-other-frame-list
rfc2192, rfc2193, rfc2221 (imap referral \e$B$N=hM}\e(B)
\e$B$"$d$7$2$J%3!<%I$r$X$i$7$?$$\e(B
+too many arguments for wl-draft(WL:8475)
+\e$B%Q!<%H$N:o=|\e(B(\e$B<u$1<h$C$?%a%$%k\e(B)
-@set VERSION 2.8.0
+@set VERSION 2.9.2
@item $
@kbd{$} \e$B%-!<$r2!$9$H!"\e(B@samp{$} \e$B%^!<%/$,IU$-$^$9!#$3$N%^!<%/$O\e(B Emacs \e$B$r=*N;\e(B
\e$B$7$F$bJ]B8$5$l$k$?$a!"$"$H$GJV;v$r=q$-$?$$>l9g$J$I!"3P$($F$*$-$?$$=EMW$J\e(B
-\e$B%a%C%;!<%8$KIU$1$F$*$/$HJXMx$G$9!#\e(B@samp{$} \e$B$NIU$$$?%a%C%;!<%8$O!"%K%e!<\e(B
-\e$B%95-;v$d%5!<%P>e$N\e(B IMAP \e$B%U%)%k%@$N%a%C%;!<%8$,\e(B expire \e$B$5$l$k$J$I$7$F>C$(\e(B
-\e$B$?>l9g$b;D$j$^$9!#\e(B
+\e$B%a%C%;!<%8$KIU$1$F$*$/$HJXMx$G$9!#\e(B@samp{$} \e$B$NIU$$$?%a%C%;!<%8$O!"\e(B
+(\e$B<B:]$N%a%C%;!<%8$,>C$5$l$?$H$7$F$b\e(B) @samp{'mark} \e$B%U%)%k%@$G1\Mw$G$-$^$9!#\e(B
+
@item \e$B$J$7\e(B
\e$B4{FI%a%C%;!<%8$K$O%^!<%/$,B8:_$7$^$;$s!#\e(B
@end table
IMAP \e$B%U%)%k%@$N%a%C%;!<%8$d\e(B NNTP \e$B%U%)%k%@$N%K%e!<%95-;v$rFI$`$3$H$,$G$-\e(B
\e$B$^$9!#\e(B
+\e$B1JB3E*%^!<%/$N$&$A!"\e(B@code{wl-summary-expire-reserve-marks} \e$B$G;XDj$5$l$?\e(B
+\e$B%^!<%/$NIU$$$?%a%C%;!<%8$O!"8e$G@bL@$9$k\e(B (Wanderlust \e$B$N5!G=$H$7$F$N\e(B)
+expire \e$B$NBP>]$+$i$O=|30$5$l$^$9!#\e(B@xref{Expire and Archive}
+
@subsection \e$B%a%C%;!<%8$NFI$_?J$a$+$?\e(B
\e$B4pK\E*$K%9%Z!<%9%-!<$r2!$9$@$1$GFI$_?J$a$k$3$H$,$G$-$^$9!#\e(B
\e$B;XDj$7$?%a%C%;!<%8$b4^$s$@%j%9%H$,EO$5$l$^$9$N$G!"FH<+$K4X?t$r:n$k>l9g$O\e(B
\e$BCm0U$7$F$/$@$5$$!#\e(B
-\e$B$3$3$G;XDj$G$-$k4X?t$K$O!"I8=`$G<!$N\e(B3\e$B$D$,MQ0U$5$l$F$$$^$9!#\e(B
-\e$B$3$l$i$O;XDj$7$?J}K!$G%"!<%+%$%V%U%)%k%@$K%a%C%;!<%8$r0\F0$9$k$b$N$G$9!#\e(B
-\e$B$D$^$j!"8E$$%a%C%;!<%8$r%U%)%k%@$+$i:o=|$7$J$,$iJL%U%!%$%k$K05=L$7$FJ]B8\e(B
+\e$B$3$3$G;XDj$G$-$k4X?t$K$O!"I8=`$G<!$N\e(B4\e$B$D$,MQ0U$5$l$F$$$^$9!#$=$N$&$A\e(B
+3\e$B$D$O;XDj$7$?J}K!$G%"!<%+%$%V%U%)%k%@$K%a%C%;!<%8$r0\F0$9$k$b$N$G!"\e(B
+\e$B8E$$%a%C%;!<%8$r%U%)%k%@$+$i:o=|$7$J$,$iJL%U%!%$%k$K05=L$7$FJ]B8\e(B
\e$B$7$F$*$/$3$H$,$G$-$^$9!#\e(B
+\e$B;D$j\e(B1\e$B$D$O%a%C%;!<%8$r\e(B MH \e$B%U%)%k%@$K?6$jJ,$1$k$b$N$G$9!#\e(B
@table @code
@item wl-expire-archive-number1
\e$BNc$($P!"\e(B1998\e$BG/\e(B12\e$B7n$N%a%C%;!<%8$O\e(B @code{$folder-199812;zip} \e$B$K%j%U%!%$%k\e(B
\e$B$5$l$^$9!#$J$*!"F|IU$NItJ,0J30$N%"!<%+%$%V%U%)%k%@L>$O\e(B
@code{wl-expire-archive-number1}\e$B$HF1$8$h$&$K7hDj$5$l$^$9!#\e(B
-@end table
+
\e$B$^$?!">e5-$N\e(B3\e$B$D$NI8=`4X?t$G$O\e(B @code{wl-expire-alist} \e$B$G$NBh\e(B1\e$B0z?t$K\e(B
non-nil \e$B$r;XDj$9$k$H!"%U%)%k%@$N%a%C%;!<%8HV9f$r$=$N$^$^J]B8$9$k$3$H$,$G\e(B
\e$B0z?t$r;XDj$7$J$$>l9g$O!"3F%"!<%+%$%V%U%)%k%@$4$H$K\e(B 1 \e$B$+$i=g$KHV9f$,M?$(\e(B
\e$B$i$l$FJ]B8$5$l$^$9!#\e(B
+
+@item wl-expire-localdir-date
+\e$B%a%C%;!<%8$NF|IU!JG/7n!K$4$H$K!"Nc$($P!"\e(B@samp{+ml/wl/1999_11/},
+@samp{+ml/wl/1999_12/} \e$B$H$$$C$?\e(B MH \e$B%U%)%k%@$K%j%U%!%$%k$7$^$9!#\e(B
+@end table
@end table
@subsection \e$B=EMW%a%C%;!<%8$dL$FI%a%C%;!<%8$N07$$\e(B
% If there were room, it would be nice to see a section on Dired.
-\def\versionnumber{2.8.0}
+\input version.tex
\def\year{2001}
\def\shortcopyrightnotice{\vskip 1ex plus 2 fill
\section{Folder Mode}
\key{Quit Wanderlust}{q}
-
\key{Move to next entity}{n}
\key{Move to previous entity}{p}
\key{Move to next unread entity}{N}
\key{Move to previous unread entity}{P}
-
\key{Go to specified folder}{g}
\key{Go into current folder}{SPC}
\key{Open/Close current group}{SPC}
\key{Rescan folders in current access group}{C-u SPC}
-
\key{Check new messages for current entity}{s}
\key{Synchronize current entity}{S}
\key{Prefetch for current folder/group}{I}
\key{Set as read all messages in current entity}{c}
\key{Expire current entity}{e}
-
\key{Compose message}{w}
\key{Compose message for current folder}{W}
\key{Reload address book}{Z}
-
\key{Empty trash folder}{E}
\section{folder management}
\key{Cut region}{C-k}
\key{Cut current entity}{C-w}
\key{Yank}{C-y}
-
\key{Add folder}{m a}
\key{Add group}{m g}
\key{Add access group}{m A}
\key{Go back to folder mode}{q}
\key{Go to specified folder}{g}
-
\key{Next message}{n}
\key{Previous message}{p}
\key{Next unread message}{N}
\key{First message}{<}
\key{Last message}{>}
\key{Jump to previously shown message}{TAB}
-
\key{View current message}{SPC}
\key{Force reloading current message}{C-u .}
\key{Toggle display of message}{v}
-
\key{Compose message}{w}
\key{Compose message for current folder}{W}
\key{Compose reply message}{a}
\key{Compose reply message with citation}{A}
\key{Forward current message}{f}
-
\key{(Re-)Edit current message}{E}
\key{Jump to message buffer}{j}
-
\key{Reload address book}{Z}
\section{mark command}
\key{Mark for copying}{O}
\key{Mark for deleting}{d}
\key{Mark as important}{\$}
-
\key{Mark as target}{*}
\key{Mark all messages as target}{m a}
\key{Mark current thread as target}{m t}
-
\key{Pick messages and mark}{*}
\key{Pick messages from marked ones}{m *}
-
\key{Mark target messages for refiling}{m o}
\key{Mark target messages for deleting}{m d}
-
\key{Execute refile/delete/copy}{x}
\section{prefix arguments for marking}
\section{Message Mode}
\key{Go back to summary buffer}{q}
-
\key{Scroll up or move to next content}{SPC}
\key{Scroll down or move to previous content}{DEL}
-
\key{Move to upper content}{u}
\key{Move to previous content}{p}
\key{Decode current content as `play mode'}{v}
\key{Insert message to cite}{C-c C-y}
\key{Insert template}{C-c C-j}
\key{Insert signature}{C-c C-w}
-
+\key{Elide the region}{C-c C-d}
\key{Preview current draft}{C-c C-p}
-
\key{Send current draft}{C-c C-c}
\key{Save current draft}{C-c C-z}
\key{Discard current draft}{C-c C-k}
+\key{Jump to another draft}{C-c C-o}
\section{compose multipart message}
\key{Toggle plugged status}{M-t}
\key{Enter/Exit plugged mode}{C-t}
-
\key{Toggle plugged state for current entity}{SPC}
\section{Address Book Management}
\key{Enter address book manager}{C-c C-a}
\key{Exit address book manager}{q}
-
\key{Set as {\tt To:}}{t}
\key{Set as {\tt Cc:}}{c}
\key{Set as {\tt Bcc:}}{b}
\key{Unset}{u}
\key{Compose message with current mark}{x}
-
\key{Add new entry}{a}
\key{Edit current entry}{e}
\key{Delete current entry}{d}
key (if already exists, the mark is deleted). It is convenient to put
this mark on the messages to remember (If you want to remember to write
a reply for the message, for example) because this mark remains after
-you exited Emacs. Messages with the @samp{$} mark remains in the folder
-even the message itself is deleted in the actual folder.
+you exited Emacs. Messages with the @samp{$} mark can be reviewed in the
+@{'mark} folder even the message itself is deleted in the actual folder.
@item None
If the message is read and cached (or local message),there are no
cache. Messages with the marks other than these, you can read them in
the offline status even they are in the IMAP folder or netnews folder.
+Among messages with persistent marks, ones with marks specified by
+@code{wl-summary-expire-reserve-marks} are excluded from the expiration
+(as a function of wanderlust) explained later. @xref{Expire and Archive}
+
@subsection How To Read
Basically, you can read messages only typing space key again and again.
@code{wl-summary-expire-reserve-marks}, be careful in writing your own
function.
-These are three standard functions; they moves messages to an archive
+These are four standard functions; three of them move messages to an archive
folder in the specified way. This means old messages can be compressed
and saved in a file, being deleted from the original folder.
+The last one divides messages to some MH folders.
@table @code
@item wl-expire-archive-number1
@code{$folder-199812;zip}. The name of the archiving folders except the
date part are determined in the same way as
@code{wl-expire-archive-number1}.
-@end table
+
You can set the first argument to these three standard functions to non-nil
in @code{wl-expire-alist} so as to retain message numbers in the folder.
If you omit the argument, consecutive numbers from 1 are assigned for
each archiving folder.
+
+@item wl-expire-localdir-date
+divedes messages depending on its date (year and month) to MH folders
+e.g. to @samp{+ml/wl/1999_11/}, @samp{+ml/wl/1999_12/}.
+@end table
@end table
@subsection Treatment for Important or Unread Messages
+2001-12-26 Yuuichi Teranishi <teranisi@gohome.org>
+
+ * elmo-imap4.el (elmo-imap4-message-fetch): Fixed '100%' message.
+
+ * elmo-pop3.el (elmo-message-fetch-plugged): Ditto.
+
+ * elmo-util.el (elmo-progress-clear): Ditto.
+
+ * elmo-date.el (elmo-date-get-datevec): Fix timezone of
+ `DD-Mon-YYYY' type date.
+
+2001-12-26 Hiroya Murata <lapis-lazuli@pop06.odn.ne.jp>
+
+ * elmo-util.el (elmo-buffer-field-primitive-condition-match): Use
+ `elmo-date-make-sortable-string' instead of
+ `timezone-make-date-sortable'.
+
+ * elmo-date.el (elmo-date-make-sortable-string): Use
+ `timezone-make-time-string'.
+
+2001-12-26 Yuuichi Teranishi <teranisi@gohome.org>
+
+ * elmo.el (elmo-folder-synchronize): Delete important messages too.
+
+ * elmo-util.el (elmo-buffer-field-primitive-condition-match): Fixed
+ `since'; Fix timezone.
+
+ * elmo-msgdb.el (elmo-msgdb-search-internal-primitive): Ditto.
+
+ * elmo-nntp.el (elmo-nntp-search-primitive): Likewise.
+
+2001-12-25 Hiroya Murata <lapis-lazuli@pop06.odn.ne.jp>
+
+ * elmo.el (elmo-message-fetch-with-cache-process): Rewrite.
+
+2001-12-23 Hiroya Murata <lapis-lazuli@pop06.odn.ne.jp>
+
+ * elmo.el (elmo-generic-folder-append-messages): Make
+ fetch-strategy with `use-cache' as 'maybe. Check return value of
+ `elmo-message-fetch'.
+ (elmo-message-fetch): Return return value of
+ `elmo-message-fetch-with-cache-process'.
+ (elmo-message-fetch-with-cache-process): Return non-nil if
+ fetching was succeed. Load cache when fetching was failed and
+ fetch-strategy-use-cache is 'maybe.
+
+ * elmo-util.el (elmo-file-cache-load): New function.
+
+ * elmo-multi.el (elmo-message-use-cache-p): Remove duplicated
+ defun.
+
+ * elmo-archive.el (elmo-archive-message-fetch-internal): Return
+ non-nil if fetching was succeed.
+
+ * elmo-imap4.el (elmo-imap4-message-fetch): Likewise.
+
+ * elmo-nmz.el (elmo-map-message-fetch): Likewise.
+
+ * elmo-nntp.el (elmo-nntp-read-body): Likewise.
+ (elmo-message-fetch-with-cache-process): Likwise.
+
+ * elmo-pop3.el (elmo-pop3-read-body): Likewise.
+
+ * elmo-shimbun.el (elmo-map-message-fetch): Likewise.
+
+ * elmo-version.el (elmo-version): Up to 2.9.2.
+
2001-12-23 Yuuichi Teranishi <teranisi@gohome.org>
* elmo.el (elmo-folder-delete): Delete msgdb path.
* elmo-imap4.el (elmo-imap4-send-command): Modified error message.
(elmo-imap4-get-session): Set prefix 'BIFF' if biff folder.
+ * elmo-version.el (elmo-version): Up to 2.9.1.
+
* elmo-util.el (elmo-file-field-primitive-condition-match): Fixed
unmatch condition checking.
2001-12-15 Yuuichi Teranishi <teranisi@gohome.org>
- * elmo-version.el (elmo-version): Up to 2.8.0.
+ * elmo-version.el (elmo-version): Up to 2.9.0.
2001-12-14 Yuuichi Teranishi <teranisi@gohome.org>
(method (elmo-archive-get-method type 'cat))
(args (list arc (elmo-concat-path
prefix (int-to-string number)))))
- (when (file-exists-p arc)
- (and
- (as-binary-process
- (elmo-archive-call-method method args t))
- (elmo-delete-cr-buffer)))))
+ (and (file-exists-p arc)
+ (as-binary-process
+ (elmo-archive-call-method method args t))
+ (progn
+ (elmo-delete-cr-buffer)
+ t))))
(luna-define-method elmo-message-fetch-internal ((folder elmo-archive-folder)
number strategy
(error "%s is not supported yet" suffix)))))
((string-match "[0-9]+-[A-Za-z]+-[0-9]+" description)
(timezone-fix-time
- (concat (elmo-replace-in-string description "-" " ") " 0:00")
- nil nil))))
+ (concat (elmo-replace-in-string description "-" " ") " 0:0")
+ (current-time-zone) nil))))
(defun elmo-datevec-substitute (datevec1 datevec2)
(if (/= (aref datevec2 2) 0)
(setq p 1)
(while (< p month)
(setq days (+ days (timezone-last-day-of-month p year)))
- (setq p (+ p 1))
- )
+ (setq p (+ p 1)))
(setq days (+ days mday))
(aref wday (% days 7))))
(aref (, datevec) 0)
(aref (, datevec) 1)
(aref (, datevec) 2)
- (aref (, datevec) 3))))
+ (timezone-make-time-string
+ (aref (, datevec) 3)
+ (aref (, datevec) 4)
+ (aref (, datevec) 5)))))
(require 'product)
(product-provide (provide 'elmo-date) (require 'elmo-version))
(setq elmo-imap4-display-literal-progress nil))
(unless elmo-inhibit-display-retrieval-progress
(elmo-display-progress 'elmo-imap4-display-literal-progress
- "" 100) ; remove progress bar.
+ "Retrieving..." 100) ; remove progress bar.
(message "Retrieving...done."))
(if (setq response (elmo-imap4-response-bodydetail-text
(elmo-imap4-response-value-all
response 'fetch)))
(with-current-buffer outbuf
(erase-buffer)
- (insert response)))))
+ (insert response)
+ t))))
(luna-define-method elmo-message-fetch-plugged ((folder elmo-imap4-folder)
number strategy
(elmo-msgdb-overview-entity-get-cc entity))))
((or (string= key "since")
(string= key "before"))
- (let ((res (string< (timezone-make-date-sortable
- (elmo-msgdb-overview-entity-get-date entity))
- (elmo-date-make-sortable-string
- (elmo-date-get-datevec
- (elmo-filter-value condition))))))
- (setq result (if (string= key "before") res (not res)))))
+ (let ((field-date (elmo-date-make-sortable-string
+ (timezone-fix-time
+ (elmo-msgdb-overview-entity-get-date entity)
+ (current-time-zone) nil)))
+ (specified-date
+ (elmo-date-make-sortable-string
+ (elmo-date-get-datevec
+ (elmo-filter-value condition)))))
+ (setq result (if (string= key "since")
+ (or (string= specified-date field-date)
+ (string< specified-date field-date))
+ (string< field-date specified-date)))))
((member key elmo-msgdb-extra-fields)
(let ((extval (elmo-msgdb-overview-entity-get-extra-field entity key)))
(if (stringp extval)
(setq children (cdr children)))
match))
-(luna-define-method elmo-message-use-cache-p ((folder elmo-multi-folder)
- number)
- (elmo-message-use-cache-p
- (nth (- (/ number (elmo-multi-folder-divide-number-internal folder)) 1)
- (elmo-multi-folder-children-internal folder))
- (% number (elmo-multi-folder-divide-number-internal folder))))
-
(luna-define-method elmo-message-folder ((folder elmo-multi-folder)
number)
(nth (- (/ number (elmo-multi-folder-divide-number-internal folder)) 1)
(luna-define-method elmo-message-file-name ((folder elmo-multi-folder) number)
(let ((pair (elmo-multi-real-folder-number folder number)))
(elmo-message-file-name (car pair) (cdr pair))))
-
+
(luna-define-method elmo-folder-plugged-p ((folder elmo-multi-folder))
(let ((flds (elmo-multi-folder-children-internal folder)))
(catch 'plugged
location strategy
&optional section unseen)
(when (file-exists-p location)
- (insert-file-contents-as-binary location)
- (unless (or (std11-field-body "To")
- (std11-field-body "Cc")
- (std11-field-body "Subject"))
- (let (charset guess uid)
- (erase-buffer)
- (set-buffer-multibyte t)
- (insert-file-contents location)
- (setq charset (detect-mime-charset-region (point-min)
- (point-max)))
- (goto-char (point-min))
- (setq guess (mime-find-file-type location))
- (setq uid (nth 2 (file-attributes location)))
- (insert "From: " (concat (user-full-name uid)
- " <"(user-login-name uid) "@"
- (system-name) ">") "\n")
- (insert "Subject: " location "\n")
- (insert "Content-Type: "
- (concat (nth 0 guess) "/" (nth 1 guess))
- "; charset=" (upcase (symbol-name charset))
- "\nMIME-Version: 1.0\n\n")
- (encode-mime-charset-region (point-min) (point-max) charset)
- (set-buffer-multibyte nil)))))
+ (prog1
+ (insert-file-contents-as-binary location)
+ (unless (or (std11-field-body "To")
+ (std11-field-body "Cc")
+ (std11-field-body "Subject"))
+ (let (charset guess uid)
+ (erase-buffer)
+ (set-buffer-multibyte t)
+ (insert-file-contents location)
+ (setq charset (detect-mime-charset-region (point-min)
+ (point-max)))
+ (goto-char (point-min))
+ (setq guess (mime-find-file-type location))
+ (setq uid (nth 2 (file-attributes location)))
+ (insert "From: " (concat (user-full-name uid)
+ " <"(user-login-name uid) "@"
+ (system-name) ">") "\n")
+ (insert "Subject: " location "\n")
+ (insert "Content-Type: "
+ (concat (nth 0 guess) "/" (nth 1 guess))
+ "; charset=" (upcase (symbol-name charset))
+ "\nMIME-Version: 1.0\n\n")
+ (encode-mime-charset-region (point-min) (point-max) charset)
+ (set-buffer-multibyte nil))))))
(luna-define-method elmo-map-folder-list-message-locations
((folder elmo-nmz-folder))
(with-current-buffer outbuf
(erase-buffer)
(insert-buffer-substring (elmo-network-session-buffer session)
- start (- end 3))))))
+ start (- end 3))))
+ t))
(defun elmo-nntp-select-group (session group &optional force)
(let (response)
(with-current-buffer (elmo-network-session-buffer session)
(std11-field-body "Newsgroups")))))
-(luna-define-method elmo-message-fetch-with-cache-process :after
+(luna-define-method elmo-message-fetch-with-cache-process :around
((folder elmo-nntp-folder) number strategy &optional section unread)
- (elmo-nntp-setup-crosspost-buffer folder number)
- (unless unread
- (elmo-nntp-folder-update-crosspost-message-alist
- folder (list number))))
+ (when (luna-call-next-method)
+ (elmo-nntp-setup-crosspost-buffer folder number)
+ (unless unread
+ (elmo-nntp-folder-update-crosspost-message-alist
+ folder (list number)))
+ t))
(luna-define-method elmo-message-fetch-plugged ((folder elmo-nntp-folder)
number strategy
numbers))
((or (string= "since" search-key)
(string= "before" search-key))
- (let* ((key-date (elmo-date-get-datevec (elmo-filter-value condition)))
- (key-datestr (elmo-date-make-sortable-string key-date))
+ (let* ((specified-date (elmo-date-make-sortable-string
+ (elmo-date-get-datevec (elmo-filter-value
+ condition))))
(since (string= "since" search-key))
- result)
+ field-date result)
(if (eq (elmo-filter-type condition) 'unmatch)
(setq since (not since)))
(setq result
(delq nil
(mapcar
(lambda (pair)
+ (setq field-date
+ (elmo-date-make-sortable-string
+ (timezone-fix-time
+ (cdr pair)
+ (current-time-zone) nil)))
(if (if since
- (string< key-datestr
- (elmo-date-make-sortable-string
- (timezone-fix-time
- (cdr pair)
- (current-time-zone) nil)))
- (not (string< key-datestr
- (elmo-date-make-sortable-string
- (timezone-fix-time
- (cdr pair)
- (current-time-zone) nil)))))
+ (or (string= specified-date field-date)
+ (string< specified-date field-date))
+ (string< field-date
+ specified-date))
(car pair)))
(elmo-nntp-retrieve-field spec "date" from-msgs))))
(if from-msgs
(setq end (point))
(with-current-buffer outbuf
(erase-buffer)
- (insert-buffer-substring (process-buffer process) start (- end 3))))))
+ (insert-buffer-substring (process-buffer process) start (- end 3)))
+ t)))
(luna-define-method elmo-folder-open-internal ((folder elmo-pop3-folder))
(if (and (not elmo-inhibit-number-mapping)
(when (null (setq response (elmo-pop3-read-response
process t)))
(error "Fetching message failed"))
- (setq response (elmo-pop3-read-body process outbuf)))
+ (setq response (elmo-pop3-read-body process outbuf)))
(setq elmo-pop3-total-size nil))
(unless elmo-inhibit-display-retrieval-progress
(elmo-display-progress
- 'elmo-display-retrieval-progress "" 100) ; remove progress bar.
+ 'elmo-display-retrieval-progress
+ "Retrieving..." 100) ; remove progress bar.
(message "Retrieving...done."))
(set-buffer outbuf)
(goto-char (point-min))
(when (setq shimbun-id
(elmo-shimbun-header-extra-field header "x-shimbun-id"))
(goto-char (point-min))
- (insert (format "X-Shimbun-Id: %s\n" shimbun-id))))
+ (insert (format "X-Shimbun-Id: %s\n" shimbun-id)))
+ t)
(error "Unplugged")))
(luna-define-method elmo-message-encache :around ((folder
(length (memq number number-list)))
(string-to-int (elmo-filter-value condition)))))
((string= (elmo-filter-key condition) "since")
- (let ((date (elmo-date-get-datevec (elmo-filter-value condition))))
+ (let ((field-date (elmo-date-make-sortable-string
+ (timezone-fix-time
+ (std11-field-body "date")
+ (current-time-zone) nil)))
+ (specified-date (elmo-date-make-sortable-string
+ (elmo-date-get-datevec
+ (elmo-filter-value condition)))))
(setq result
- (string<
- (timezone-make-sortable-date (aref date 0)
- (aref date 1)
- (aref date 2)
- (timezone-make-time-string
- (aref date 3)
- (aref date 4)
- (aref date 5)))
- (timezone-make-date-sortable (std11-field-body "date"))))))
+ (or (string= field-date specified-date)
+ (string< specified-date field-date)))))
((string= (elmo-filter-key condition) "before")
- (let ((date (elmo-date-get-datevec (elmo-filter-value condition))))
- (setq result
- (string<
- (timezone-make-date-sortable (std11-field-body "date"))
- (timezone-make-sortable-date (aref date 0)
- (aref date 1)
- (aref date 2)
- (timezone-make-time-string
- (aref date 3)
- (aref date 4)
- (aref date 5)))))))
+ (setq result
+ (string<
+ (elmo-date-make-sortable-string
+ (timezone-fix-time
+ (std11-field-body "date")
+ (current-time-zone) nil))
+ (elmo-date-make-sortable-string
+ (elmo-date-get-datevec
+ (elmo-filter-value condition))))))
((string= (elmo-filter-key condition) "body")
(and (re-search-forward "^$" nil t) ; goto body
(setq result (search-forward (elmo-filter-value condition)
(defun elmo-progress-clear (label)
(let ((counter (assq label elmo-progress-counter-alist)))
(when counter
- (elmo-display-progress label "" 100)
+ (elmo-display-progress label
+ (elmo-progress-counter-format counter)
+ 100)
(setq elmo-progress-counter-alist
(delq counter elmo-progress-counter-alist)))))
;; ignore error
(error)))
+(defun elmo-file-cache-load (cache-path section)
+ "Load cache on PATH into the current buffer.
+Return t if cache is loaded successfully."
+ (condition-case nil
+ (let (cache-file)
+ (when (and cache-path
+ (if (elmo-cache-path-section-p cache-path)
+ section
+ (null section))
+ (setq cache-file (elmo-file-cache-expand-path
+ cache-path
+ section))
+ (file-exists-p cache-file))
+ (insert-file-contents-as-binary cache-file)
+ t))
+ ;; igore error
+ (error)))
+
(defun elmo-cache-path-section-p (path)
"Return non-nil when PATH is `section' cache path."
(file-directory-p path))
;; product-define in the first place
(product-provide 'elmo-version
;; Don't forget to check `wl-version.el' and Info.
- (product-define "ELMO" nil '(2 8 0)))
+ (product-define "ELMO" nil '(2 9 2)))
;; set version-string
(product-version-as-string 'elmo-version)
(while numbers
(setq failure nil)
(condition-case nil
- (progn
- (elmo-message-fetch
- src-folder (car numbers)
- (if (and (not (elmo-folder-plugged-p src-folder))
- elmo-enable-disconnected-operation
- (setq cache (elmo-file-cache-get
- (elmo-message-field
- src-folder (car numbers)
- 'message-id)))
- (eq (elmo-file-cache-status cache) 'entire))
- (elmo-make-fetch-strategy
- 'entire t nil (elmo-file-cache-path cache))
- (elmo-make-fetch-strategy 'entire t))
- nil (current-buffer)
- 'unread)
- (unless (eq (buffer-size) 0)
- (setq failure (not
- (elmo-folder-append-buffer
- folder
- (setq unseen (member (elmo-message-mark
- src-folder (car numbers))
- unread-marks))
- (if same-number (car numbers)))))))
+ (setq cache (elmo-file-cache-get
+ (elmo-message-field src-folder
+ (car numbers)
+ 'message-id))
+ failure
+ (not
+ (and
+ (elmo-message-fetch
+ src-folder (car numbers)
+ (if (elmo-folder-plugged-p src-folder)
+ (elmo-make-fetch-strategy
+ 'entire 'maybe nil
+ (and cache (elmo-file-cache-path cache)))
+ (or (and elmo-enable-disconnected-operation
+ cache
+ (eq (elmo-file-cache-status cache) 'entire)
+ (elmo-make-fetch-strategy
+ 'entire t nil
+ (elmo-file-cache-path cache)))
+ (error "Unplugged")))
+ nil (current-buffer)
+ 'unread)
+ (> (buffer-size) 0)
+ (elmo-folder-append-buffer
+ folder
+ (setq unseen (member (elmo-message-mark
+ src-folder (car numbers))
+ unread-marks))
+ (if same-number (car numbers))))))
(error (setq failure t)))
;; FETCH & APPEND finished
(unless failure
(with-current-buffer outbuf
(erase-buffer)
(elmo-message-fetch-with-cache-process folder number
- strategy section unread)
- t)
+ strategy section unread))
(with-temp-buffer
(elmo-message-fetch-with-cache-process folder number
strategy section unread)
number strategy
&optional
section unread)
- (let (cache-path cache-file)
- (if (and (elmo-fetch-strategy-use-cache strategy)
- (setq cache-path (elmo-fetch-strategy-cache-path strategy))
- (setq cache-file (elmo-file-cache-expand-path
- cache-path
- section))
- (file-exists-p cache-file)
- (or (not (elmo-cache-path-section-p cache-file))
- (not (eq (elmo-fetch-strategy-entireness strategy) 'entire))))
- (insert-file-contents-as-binary cache-file)
- (elmo-message-fetch-internal folder number strategy section unread)
- (elmo-delete-cr-buffer)
- (when (and (> (buffer-size) 0)
- (elmo-fetch-strategy-save-cache strategy)
- (elmo-fetch-strategy-cache-path strategy))
- (elmo-file-cache-save
- (elmo-fetch-strategy-cache-path strategy)
- section)))))
+ (let ((cache-path (elmo-fetch-strategy-cache-path strategy))
+ (method-priorities
+ (cond ((eq (elmo-fetch-strategy-use-cache strategy) 'meybe)
+ '(entity cache))
+ ((elmo-fetch-strategy-use-cache strategy)
+ '(cache entity))
+ (t
+ '(entity))))
+ result err)
+ (while (and method-priorities
+ (null result))
+ (setq result
+ (case (car method-priorities)
+ (cache
+ (elmo-file-cache-load cache-path section))
+ (entity
+ (when (and (condition-case error
+ (elmo-message-fetch-internal folder number
+ strategy
+ section
+ unread)
+ (error (setq err error) nil))
+ (> (buffer-size) 0))
+ (elmo-delete-cr-buffer)
+ (when (and (elmo-fetch-strategy-save-cache strategy)
+ cache-path)
+ (elmo-file-cache-save cache-path section))
+ t)))
+ method-priorities (cdr method-priorities)))
+ (or result
+ (and err (signal (car err) (cdr err))))))
(luna-define-method elmo-folder-clear ((folder elmo-folder)
&optional keep-killed)
(length new-list)))
(setq diff-2 (elmo-list-diff (car diff) new-list)))
(elmo-msgdb-append-to-killed-list folder (car diff-2)))
- ;; Don't delete important marked messages.
- (setq delete-list
- (if (eq (elmo-folder-type-internal folder) 'mark)
- (cadr diff)
- (elmo-delete-if
- (lambda (x)
- (and (setq mark (cadr (assq x mark-alist)))
- (string= mark important-mark)))
- ;; delete message list
- (cadr diff))))
+ (setq delete-list (cadr diff))
(if (or (equal diff '(nil nil))
(equal diff '(nil))
(and (eq (length (car diff)) 0)
2.7.x Too Funky
2.8.0 Something
+
+2.9.x Unchained Melody
+2001-12-24 Yuuichi Teranishi <teranisi@gohome.org>
+
+ * wl-draft.el (wl-draft-hide): Removed `interactive'.
+ (Pointed out by YAMASHITA Junji <ysjj@unixuser.org>)
+
+2001-12-23 Hiroya Murata <lapis-lazuli@pop06.odn.ne.jp>
+
+ * Version number is increased to 2.9.2.
+
2001-12-21 Katsumi Yamaoka <yamaoka@jpl.org>
* wl-draft.el (wl-draft-elide-region): New user command.
(wl-folder-check-one-entity): Added `biff' argument;
Setup `biff' slot of folder.
+ * Version number is increased to 2.9.1.
+
2001-12-18 Yuuichi Teranishi <teranisi@gohome.org>
* wl-fldmgr.el (wl-fldmgr-add-completion-all-completions): Removed
* wl-version.el (wl-version): Changed codename.
- * Version number is increased to 2.8.0.
+ * Version number is increased to 2.9.0.
2001-12-14 Takuo KITAME <kitame@northeye.org>
(defun wl-draft-hide (editing-buffer)
"Hide the editing draft buffer if possible."
- (interactive)
(when (and editing-buffer
(buffer-live-p editing-buffer))
(set-buffer editing-buffer)
"Wanderlust" nil
(eval-when-compile
(product-version (product-find 'elmo-version))) ; equals to ELMO version.
- "Something-pre2"))
+ "Unchained Melody"))
(defconst wl-version-status nil
"Wanderlust verstion status. For override default rule.