Sync up with gnus-6_10.
authorkeiichi <keiichi>
Fri, 5 Feb 1999 02:59:14 +0000 (02:59 +0000)
committerkeiichi <keiichi>
Fri, 5 Feb 1999 02:59:14 +0000 (02:59 +0000)
README-offline.en [new file with mode: 0644]
README-offline.ja [new file with mode: 0644]
lisp/gnus-msg.el
lisp/gnus-offline.el
lisp/gnus-ofsetup.el
lisp/gnus-start.el
lisp/gnus-sum.el
lisp/nnheader.el
lisp/smiley.el

diff --git a/README-offline.en b/README-offline.en
new file mode 100644 (file)
index 0000000..58c379c
--- /dev/null
@@ -0,0 +1,104 @@
+
+User definable variables in gnus-offline
+
+o gnus-offline-dialup-program  
+    Program name to dialup.
+
+o gnus-offline-dialup-program-arguments
+    List of dialup program arguments.
+
+o gnus-offline-hangup-program
+    Program name to hangup.
+
+o gnus-offline-hangup-program-arguments
+    List of hangup program arguments.
+
+o gnus-offline-mail-spool-directory
+    Spool directory for sending mail.
+    This variable is available only using MIEE.
+
+o gnus-offline-news-spool-directory
+    Spool directory for sending news.
+    This variable is available only using MIEE.
+
+o gnus-offline-mail-treat-environ
+    If t , gnus-offline sends mail to spool first.
+    If nil , gnus-offline sends mail immediatry.
+
+o gnus-offline-articles-to-fetch
+    Article type you want to fetch.
+
+       'both ... Fetch both Mail/News.
+       'Mail ... Fetch only Mail.
+       'News ... Fetch only News.
+
+    Default value is both.
+
+o gnus-offline-popup-menu
+    Whether use menu.
+
+o gnus-offline-load-hook
+    Hook before gnus-offline load.
+
+o gnus-offline-before-online-hook
+    Hook before all online jobs.
+
+o gnus-offline-after-online-hook
+    Hook after all online jobs.
+
+o gnus-offline-interval-time
+    Interval time to do all online jobs.(minutes)
+
+o gnus-offline-MTA-type
+    MTA type to sending mail.
+
+   'smtp     ... Use smtp.el.
+   'sendmail ... Use sendmail.el.
+
+o gnus-offline-drafts-queue-type
+   Message queue type when spooling message.
+   
+   'miee  ... Use miee.el.
+   'agent ... Use gnus-agent.el.
+
+o gnus-offline-after-empting-spool-hook
+   Hook before empting spool.
+
+o gnus-offline-before-empting-spool-hook
+   Hook after emoting spool.
+
+o gnus-offline-dialup-function
+   Function to dialup.
+
+o gnus-offline-hangup-function
+   Function to hangup.
+
+o gnus-offline-pop-password-file 
+   File name to save username , mailserver and password.
+
+o gnus-offline-pop-password-decoding-function 
+   Function to decode password.
+
+Commands in gnus-offline.
+
+o M-x gnus-offline-toggle-plugged
+   Toggle offline/online state.
+
+o M-x gnus-offline-toggle-auto-hangup
+   Change current state to offline.
+
+o M-x gnus-offline-toggle-on/off-send-mail
+   Toggle method to sending mail.
+
+o M-x gnus-offline-toggle-articles-to-fetch
+   Toggle articles you want to fetch.
+
+o M-x gnus-offline-toggle-movemail-program
+   Toggle movemail program.
+
+o M-x gnus-offline-set-interval-time
+   Set interval time(minute) to fetch article.
+
+o M-x gnus-offline-agent-expire
+   Expire articles.
+
diff --git a/README-offline.ja b/README-offline.ja
new file mode 100644 (file)
index 0000000..c9001d5
--- /dev/null
@@ -0,0 +1,239 @@
+1) gnus-offline (Gnus Offline Backend Utility)\e$B$C$F2?\e(B?
+
+\e$B$3$l$O\e(B Semi-gnus \e$B$G%a%C%;!<%8$r$h$jMF0W$K%*%U%i%$%s4D6-$G07$&$?$a$N%f!<\e(B
+\e$B%F%#%j%F%#$G$9!#\e(B
+
+\e$B<g$H$7$F\e(B Semi-gnus \e$B$N\e(B `Agent' \e$B$H8F$P$l$k5!G=$N$?$a$K=q$+\e(B
+\e$B$l$F$$$^$9!#\e(B
+
+\e$B$^$?!"\e(Bgnspool \e$B$J$I$N30It%W%m%0%i%`$rMQ$$$?\e(B nnspool \e$B$G$b;H$&$3$H$,$G$-$^\e(B
+\e$B$9!#$^$?!"JLESG[I[$N\e(B Miee.el \e$B$rAw?.$K;HMQ$9$k$3$H$b2DG=$G$9!#\e(B
+
+;; gnus-offline \e$B$r;H$o$J$/$F$b%*%U%i%$%s$G$NFI$_=q$-$O=PMh$^$9$,!"\e(B
+;; gnus-offline \e$B$r;H$($P$h$j@_Dj!&A`:n$,4JC1$K=PMh$^$9!#\e(B
+
+\e$B6qBNE*$K$O\e(B
+
+\e$B!&F0:n$KI,MW$JJQ?t$NBPOCE*@_Dj$,2DG=\e(B
+
+\e$B!&%0%k!<%W%P%C%U%!$G!H\e(Bg\e$B!I$H%?%$%W$9$k$@$1$G\e(B \e$B%@%$%"%k%"%C%W\e(B->\e$B%a%$%k$*$h$S\e(B
+\e$B%M%C%H%K%e!<%9$NAw<u?.\e(B->\e$B%@%$%"%k%"%C%W$N@ZCG\e(B \e$B$H$$$&F0:n$r0l5$$K9T$&$3$H\e(B
+\e$B$,2DG=$K$J$j$^$9!#\e(B(\e$B$?$@$7@\B3!&$*$h$S@ZCG$OJLES@lMQ$N%D!<%k$,I,MW$G$9\e(B)
+
+\e$B$J$*!"$3$N%I%-%e%a%s%H$G$OAw<u?.$H$b$K\e(B gnus-agent \e$B$r;H$&$3$H$rA0Ds$K2r@b\e(B
+\e$B$7$^$9!#\e(B
+
+2) \e$B%$%s%9%H!<%k\e(B
+
+Semi-gnus \e$B$r$*;H$$$N>l9g!"\e(Bgnus-offline.el \e$B$OFC$K2?$b9M$($J$/$F$b\e(B
+Semi-gnus \e$B$HF1;~$K%$%s%9%H!<%k$5$l$^$9!#$=$&$G$J$$>l9g$O\e(B load-path \e$B$N\e(B
+\e$BDL$C$?%G%#%l%/%H%j$K\e(B gnus-offline.el \e$B$H\e(B gnus-ofsetup.el \e$B$r\e(B(\e$B%P%$%H%3%s\e(B
+\e$B%Q%$%k$7$F\e(B)\e$BCV$-$^$9!#\e(B
+
+3) \e$B;H$$J}\e(B
+
+\e$B!&\e(BSemi-gnus \e$B$N0lHLE*$J;HMQJ}K!$K$D$$$F\e(B info \e$B$J$I$GD4$Y$F@_Dj$7$F$/$@$5$$!#\e(B
+
+\e$B!&0J2<$N%3!<%I$r\e(B .emacs \e$B$K2C$($^$9!#\e(B
+
+       (load "gnus-ofsetup")
+       (gnus-setup-for-offline)
+       (load gnus-offline-setting-file)
+
+\e$B!&0J2<$N%3!<%I$r\e(B .gnus \e$B$K2C$($^$9!#\e(B
+
+       (gnus-agentize)
+
+\e$B!&\e(BEmacs \e$B$r:F5/F0$7$^$9!#$9$k$H!"\e(Bgnus-ofsetup.el \e$B$,5/F0$7$^$9$N$G!"BPOCE*\e(B
+\e$B$KI,MW$JJQ?t$N@_Dj$r9T$$$^$9!#\e(B(\e$B2?$rF~NO$7$?$i$$$$$+$o$+$i$J$$>l9g$O\e(B 4) 
+\e$B$r;2>H$9$k$+!"\e(BTAB \e$B$GF~NO2DG=$J8uJd$r0lMwI=<($5$;$k$+$7$F$/$@$5$$\e(B)\e$B$9$Y$F\e(B
+\e$B@_Dj$9$k$H%[!<%`%G%#%l%/%H%j$K\e(B .gnus-offline.el \e$B$H$$$&%U%!%$%k$,=PMh>e$,\e(B
+\e$B$j$^$9!#\e(B
+
+\e$B!&$3$N$"$H0lC6%*%s%i%$%s$G%5!<%P!<$K@\B3$7$F!"9XFI$9$k%0%k!<%W$r7h$a$F$/\e(B
+\e$B$@$5$$!#\e(B(\e$B>\$7$$J}K!$O\e(B Gnus \e$B$N\e(B info \e$B$r8+$F$/$@$5$$\e(B)
+
+\e$B!&\e(B.gnus \e$B$K0J2<$N%3!<%I$r2C$($^$9!#\e(B
+
+(gnus-agent-toggle-plugged nil)
+
+\e$B$3$l$G\e(B Gnus \e$B$r:F5/F0$9$l$P%0%k!<%W%P%C%U%!$G!H\e(Bg\e$B!I$H%?%$%W$9$k$3$H$K$h$j\e(B
+\e$BA05-$NF0:n$r$9$k$O$:$G$9!#\e(B
+
+
+\e$B"!$^$?!"F1:-$N\e(B pop3-fma.el \e$B$rMQ$$$k$HJ#?t$N%a%$%k%"%+%&%s%H$r4IM}$9$k$3\e(B
+\e$B$H$,=PMh$^$9!#\e(B
+
+\e$B!&\e(Bpop3-fma-spool-file-alist 
+\e$B!!!!!!!!\e(B'(
+       ("po:\e$B%"%+%&%s%H\e(B1@pop\e$B%5!<%P\e(B1" pass) 
+       ("po:\e$B%"%+%&%s%H\e(B2@pop\e$B%5!<%P\e(B2" pass)
+       :
+       :
+       ))
+\e$B!&\e(Bpop3-fma-movemail-type 
+      \e$B%a%$%k<u?.$K\e(B movemail.exe \e$B$r;H$&\e(B('exe)\e$B$+\e(B pop3.el('lisp) \e$B$r;H$&$+!#\e(B
+
+
+4) gnus-offline \e$B$G@_Dj2DG=$JJQ?t0lMw\e(B
+
+\e$B!&\e(Bgnus-offline-dialup-program  
+    \e$B%@%$%"%k%"%C%W$9$k%W%m%0%i%`L>\e(B
+
+\e$B!&\e(Bgnus-offline-dialup-program-arguments
+    \e$B%@%$%"%k%"%C%W%W%m%0%i%`$N0z?t$N%j%9%H\e(B
+    \e$BNc$($P!"\e(Bgnus-offline-dialup-program \e$B$K\e(B "-s AAA" \e$B$rEO$9>l9g$O\e(B
+    (setq gnus-offline-dialup-program-arguments '("-s" "AAA"))
+    \e$B$H5-=R$7$F$/$@$5$$!#\e(B
+
+\e$B!&\e(Bgnus-offline-hangup-program
+    \e$B2s@~$r@ZCG$9$k%W%m%0%i%`L>\e(B
+
+\e$B!&\e(Bgnus-offline-hangup-program-arguments
+    \e$B@ZCG$9$k%W%m%0%i%`$N0z?t$N%j%9%H\e(B
+    \e$BNc$($P!"\e(Bgnus-offline-hangup-program \e$B$K\e(B "-s AAA" \e$B$rEO$9>l9g$O\e(B
+    (setq gnus-offline-hangup-program-arguments '("-s" "AAA"))
+    \e$B$H5-=R$7$F$/$@$5$$!#\e(B
+
+\e$B!&\e(Bgnus-offline-mail-spool-directory
+    \e$BAw?.%a!<%k$N%9%W!<%k%G%#%l%/%H%j\e(B
+    Offline \e$B>uBV$G\e(B Mail \e$B$rAw?.$9$k$H0lC6$3$3$G;XDj$7$?%G%#%l%/%H%j$KJ]B8$5$l\e(B
+    \e$B$^$9!#\e(B
+    MIEE \e$B$r;HMQ$9$k>l9g0J30L58z$G$9!#\e(B
+
+\e$B!&\e(Bgnus-offline-news-spool-directory
+    \e$BAw?.%K%e!<%9$N%9%W!<%k%G%#%l%/%H%j\e(B
+    Offline \e$B>uBV$G\e(B News \e$B$rAw?.$9$k$H0lC6$3$3$G;XDj$7$?%G%#%l%/%H%j$KJ]B8$5$l\e(B
+    \e$B$^$9!#\e(B
+    MIEE \e$B$r;HMQ$9$k>l9g0J30L58z$G$9!#\e(B
+
+\e$B!&\e(Bgnus-offline-mail-treat-environ
+    Mail \e$B$NAw?.$r\e(B Online/Offline \e$B$G9T$&;v$r@Z$jBX$($k\e(B
+
+\e$B!&\e(Bgnus-offline-articles-to-fetch
+    fetch \e$B$9$k5-;v$r@Z$jBX$($k\e(B both->mail->news->both...
+       'both ... Mail/News \e$B$rN>J}<u?.\e(B
+       'Mail ... Mail \e$B$@$1<u?.\e(B
+       'News ... News \e$B$@$1<u?.\e(B
+    \e$B%G%U%)%k%HCM$O\e(B 'both \e$B$G$9!#\e(B
+
+\e$B!&\e(Bgnus-offline-popup-menu
+    \e$B%a%K%e!<$r;H$&$+$I$&$+$r;XDj$7$^$9!#%G%U%)%k%H$O\e(B "t" \e$B$G$9!#\e(B
+
+\e$B!&\e(Bgnus-offline-load-hook
+    gnus-offline \e$B$,\e(B load \e$B$5$l$k$H$-$KI>2A$5$l$k\e(B hook
+
+\e$B!&\e(Bgnus-offline-before-online-hook
+    Online job \e$BD>A0$KI>2A$5$l$k\e(B hook
+
+\e$B!&\e(Bgnus-offline-after-online-hook
+    Online job \e$B=*N;D>A0$KI>2A$5$l$k\e(B hook
+
+\e$B!&\e(Bgnus-offline-interval-time
+    Online job \e$B$r9T$&4V3V\e(B(\e$BJ,\e(B)
+    Emacs \e$B$,\e(B idle \e$B>uBV$K$J$C$F$+$i$3$3$G;XDj$7$?;~4VKh$K\e(B Online \e$B>uBV$K$7\e(B
+    Mail/News \e$B$r<hF@$7$^$9!#\e(B
+
+\e$B!&\e(Bgnus-offline-MTA-type
+    Message \e$B$r\e(B Online \e$B;~$KAw?.$9$k%W%m%0%i%`$N%?%$%W$G!"%G%U%)%k%H$O\e(B 'smtp 
+    \e$B$G$9!#\e(B
+   'smtp     ... smtp.el \e$B$r;HMQ\e(B
+   'sendmail ... sendmail.el \e$B$r;HMQ\e(B
+
+\e$B!&\e(Bgnus-offline-drafts-queue-type
+   \e$BAw?.%a%C%;!<%8$r%-%e!<$KN/$a$k$b$N$N%?%$%W$G!"%G%U%)%k%H$O\e(B 'miee \e$B$G$9!#\e(B
+   'miee \e$B$O\e(B miee.el \e$B$r;HMQ\e(B.
+   'agent \e$B$O\e(B gnus-agent.el \e$B$r;HMQ\e(B.
+
+\e$B!&\e(Bgnus-offline-after-empting-spool-hook
+  \e$BAw?.%a%C%;!<%8$N%-%e!<$r6u$K$9$kA0$KI>2A$5$l$k\e(B hook
+
+\e$B!&\e(Bgnus-offline-before-empting-spool-hook
+  \e$BAw?.%a%C%;!<%8$rAw?.8e$K!"6u$K$J$C$?8eI>2A$5$l$k\e(B hook
+
+\e$B!&\e(Bgnus-offline-dialup-function
+  \e$B@\B3$K;HMQ$9$k4X?tL>\e(B
+
+\e$B!&\e(Bgnus-offline-hangup-function
+  \e$B@ZCG$K;HMQ$9$k4X?tL>\e(B
+
+\e$B!&\e(Bgnus-offline-pop-password-file 
+  \e$B%f!<%6!<L>!"%a!<%k%5!<%P!<!"%Q%9%o!<%I$rJ]B8$9$k$?$a$N%U%!%$%kL>\e(B
+
+\e$B!&\e(Bgnus-offline-pop-password-decoding-function 
+  \e$B%Q%9%o!<%I$rJ]B8$9$k:]$N0E9f2=$r9T$&$?$a$N4X?t!#\e(B
+
+5) gnus-offline M-x \e$B$G<B9T2DG=$J%3%^%s%I0lMw\e(B
+
+\e$B!&\e(BM-x gnus-offline-toggle-plugged
+  offline \e$B>uBV\e(B/Online \e$B>uBV$r@ZBX$($^$9!#\e(B
+
+\e$B!&\e(BM-x gnus-offline-toggle-auto-hangup
+  offline \e$B>uBV$K$7$^$9!#\e(B
+
+\e$B!&\e(BM-x gnus-offline-toggle-on/off-send-mail
+  Online \e$B>uBV\e(B/Offline \e$B>uBV$G$N\e(B Mail \e$BAw?.>uBV$r@ZBX$($^$9!#\e(B
+  Online \e$B>uBV$G$OD>@\Aw?.$7$^$9$,!"\e(BOffline \e$B>uBV$G$O0lC6\e(B spool \e$B$K=q$-9~$_!"\e(B
+  "g" \e$B$r2!$7$?;~$KA4ItAw?.$5$l$^$9!#\e(B
+
+\e$B!&\e(BM-x gnus-offline-toggle-articles-to-fetch
+  \e$B<hF@$9$k5-;v$rA*Br$7$^$9!#\e(Bboth -> mail -> news -> both ... \e$B$N$h$&$K\e(B
+  \e$B@Z$jBX$o$j$^$9!#\e(B
+
+\e$B!&\e(BM-x gnus-offline-toggle-movemail-program
+  movemail \e$B%W%m%0%i%`$r@ZBX$($^$9!#\e(B
+
+\e$B!&\e(BM-x gnus-offline-set-interval-time
+  \e$B5-;v\e(B/Mail \e$B$N<hF@!"Aw?.$r<+F0E*$K9T$&4V3V\e(B(\e$BJ,\e(B)\e$B$r@_Dj$7$^$9!#\e(B
+  \e$B$3$N4V3V$O\e(B Emacs \e$B$,\e(B Idle \e$B$K$J$C$F$+$i$N;~4V$G$9!#\e(B
+
+\e$B!&\e(BM-x gnus-offline-agent-expire
+  \e$B4{FI$N5-;v$r\e(B expire \e$B$7$^$9!#\e(B
+
+6)\e$B!Z\e(B!!!\e$B=EMW\e(B!!!\e$B![\e(B pop \e$B%Q%9%o!<%I$N4IM}J}K!$K$D$$$F\e(B
+
+\e$B%G%U%)%k%H$G$O\e(B pop \e$B%5!<%P$N%Q%9%o!<%I$O\e(B pop \e$B%5!<%P!<$K%"%/%;%9$9$kEY$KF~\e(B
+\e$BNO$9$kI,MW$,$"$j$^$9!#\e(B(\e$B4pK\E*$K$3$N$^$^$K$7$F$*$/$3$H$r?d>)$7$^$9\e(B)
+
+\e$B$7$+$7!"!V$3$l$@$HLLE]$@$7$I$&$;<+J,0l?M$7$+;H$o$J$$%3%s%T%e!<%?$@$+$i$=\e(B
+\e$B$l$[$I%Q%9%o!<%I$N4IM}$K$OCm0U$rJ'$&I,MW$,$J$$!W$H$$$&>l9g$K$O$$$/$D$+$N\e(B
+(\e$B<j4V$r>J$/\e(B)\e$BJ}K!$,$"$j$^$9!#$?$@$7!"EvA3%Q%9%o!<%I$rEp$^$l$k4m81$OA}$7$^\e(B
+\e$B$9$N$G0J2<$NJ}K!$N$$$:$l$+$r<B9T$9$k:]$K$O\e(B 100% \e$B<+8J$N@UG$$N$b$H$G9T$C$F\e(B
+\e$B$/$@$5$$!#\e(B
+
+
+\e$B$^$:!"%Q%9%o!<%I$r%U%!%$%k$K;D$7$F$OCV$-$?$/$J$$$,%a%b%j>e$KJQ?t$H$7$F;D$C\e(B
+\e$B$F$$$F$b9=$o$J$$!"$H$$$&>l9g$O!"\e(B~/.gnus-offline.el \e$B$K0J2<$N$h$&$J%3!<%I\e(B
+\e$B$r2C$($F$/$@$5$$!#\e(B
+
+(setq pop3-fma-save-password-information t)
+
+\e$B$3$&$9$k$3$H$K$h$j!"%Q%9%o!<%I$O\e(B Gnus \e$B5/F0;~$KF~NO$9$k$@$1$K$J$j$^$9!#\e(B
+
+\e$B$^$?!"%U%!%$%k$K;D$7$F$b9=$o$J$$$,%a%b%j>e$NJQ?t$H$7$F;D$7$?$/$J$$>l9g!"\e(B
+\e$B$^$?$OA4$/%Q%9%o!<%I$NF~NO$r>J$-$?$$>l9g$O!"\e(B.gnus-offline.el \e$B$K0J2<$N$h\e(B
+\e$B$&$J%3!<%I$r2C$(!"%Q%9%o!<%I%U%!%$%k$r;XDj$7$^$9!#\e(B
+
+(setq gnus-offline-pop-password-file "~/.pop.passwd")
+
+\e$B;XDj$7$?%Q%9%o!<%I%U%!%$%k\e(B(\e$B$3$NNc$G$O\e(B~/.pop.passwd)\e$B$r:n@.$7!"%Q%9%o!<%I\e(B
+\e$B$N>pJs$r0J2<$N$h$&$J7A<0$G=q$-$^$9!#\e(B
+
+   (setq pop3-fma-password
+        '(("SERVER1" "ACCOUNT1" "PASSWORD1")
+          ("SERVER2" "ACCOUNT2" "PASSWORD2")
+          ............................
+          ))
+
+\e$B$3$N%U%!%$%k$r$&$C$+$j3+$$$F$7$^$C$F$b%Q%9%o!<%I$,8+$($J$$$h$&$K!"\e(B
+base64 \e$B$G%(%s%3!<%I$9$k$3$H$r$*4+$a$7$^$9!#$=$N0Y$K$O\e(B
+
+    M-: (base64-encode-region (point-min) (point-max))
+
+\e$B$N$h$&$K$7$^$9\e(B(M-: \e$B$ODL>o\e(B eval-expression \e$B$K3d$j$"$F$i$l$F$$$^$9\e(B)\e$B!#\e(B
+\e$B$b$7$3$3$G%(%s%3!<%I$7$J$+$C$?$J$i$P!"\e(B~/.gnus-offline.el \e$B$K\e(B
+
+ (setq gnus-offline-pop-password-decoding-function nil)
+
+\e$B$H=q$-$^$9!#\e(B(\e$B$?$@$7$3$l$OHs>o$K4m81$G$9!#\e(B)
+             ~~~~~~~~~~~~~~~~~~~~~~~~~~
index 3ff6494..5ca0e78 100644 (file)
@@ -698,16 +698,20 @@ If FULL-HEADERS (the prefix), include full headers when forwarding."
   (interactive "P")
   (let ((subject "Digested Articles")
        (articles (gnus-summary-work-articles n))
-       article)
+       article frame)
     (gnus-setup-message 'forward
       (gnus-summary-select-article)
       (if post (message-news nil subject) (message-mail nil subject))
+      (when (and message-use-multi-frames (cdr articles))
+       (setq frame (window-frame (get-buffer-window (current-buffer)))))
       (message-goto-body)
       (while (setq article (pop articles))
        (save-window-excursion
          (set-buffer gnus-summary-buffer)
          (gnus-summary-select-article nil nil nil article)
          (gnus-summary-remove-process-mark article))
+       (when frame
+         (select-frame frame))
        (insert (mime-make-tag "message" "rfc822") "\n")
        (insert-buffer-substring gnus-original-article-buffer))
       (push-mark)
index d43b850..b573c30 100644 (file)
@@ -1,5 +1,5 @@
 ;;; gnus-offline.el --- To process mail & news at offline environment.
-;;; $Id: gnus-offline.el,v 1.1.6.1 1999-01-18 10:29:35 keiichi Exp $
+;;; $Id: gnus-offline.el,v 1.1.6.2 1999-02-05 02:59:06 keiichi Exp $
 
 ;;; Copyright (C) 1998 Tatsuya Ichikawa
 ;;;                    Yukihiro Ito
@@ -8,7 +8,7 @@
 ;;;         Hidekazu Nakamura <u90121@uis-inf.co.jp>
 ;;;         Tsukamoto Tetsuo <czkmt@remus.dti.ne.jp>
 
-;;; Version: 2.02
+;;; Version: 2.10
 ;;; Keywords: news , mail , offline , gnus
 ;;;
 ;;; SPECIAL THANKS
 ;;; In Gnus group buffer , type g to get all news and mail.
 ;;; Then send mail and news in spool directory.
 ;;;
+;;; Security Notice. (This is available before version 2.02)
+;;;
+;;; You can set the variable gnus-offline-pop-password-file to save your POP
+;;; passwords. But TAKE CARE. Use it at your own risk.
+;;; If you decide to use it, then write in .emacs or .gnus-offline.el 
+;;; something like:
+;;;
+;;;  (setq gnus-offline-pop-password-file "~/.pop.passwd")
+;;;
+;;; and write in this file something like:
+;;;
+;;;  (setq pop3-fma-password
+;;;     '(("SERVER1" "ACCOUNT1" "PASSWORD1")
+;;;       ("SERVER2" "ACCOUNT2" "PASSWORD2")
+;;;        ............................
+;;;        ))
+;;;
+;;; If you want to encode the file with base64, try:
+;;;
+;;;    M-: (base64-encode-region (point-min) (point-max))
+;;;
 ;;; Variables.
 ;;;  gnus-offline-dialup-program-arguments
 ;;;                                   ... List of dialup program arguments.
@@ -74,6 +95,9 @@
 ;;;                                        (minutes)
 ;;;  gnus-offline-dialup-function     ... Function to diualup.
 ;;;  gnus-offline-hangup-function     ... Function to hangup.
+;;;  gnus-offline-pop-password-file   ... File to keep the POP password info.
+;;;  gnus-offline-pop-password-decoding-function
+;;;                                   ... Function to decode the password info.
 
 ;;; Code:
 
 
 (require 'cl)
 (require 'custom)
-(require 'pop3-fma)
 (require 'easymenu)
 
 (unless (and (condition-case ()
   :group 'mail
   :group 'news)
 
-(defconst gnus-offline-version-number "2.02")
+(defconst gnus-offline-version-number "2.10b1")
 (defconst gnus-offline-codename
 ;;  "Beta5"                    ; Beta
 ;;  "This is the time"         ; 2.00
 ;;  "A matter of trust"
-  "Modern Woman"
+;;  "Modern Woman"
+  "Ahhhhhhh!!"                 ; 2.10b1
 ;;  "Code of silence"
   )
 
@@ -189,6 +213,23 @@ If set to 0 , timer call is disabled."
   :group 'gnus-offline
   :type 'function)
 
+(defcustom gnus-offline-pop-password-file nil
+  "*File name for saving one's POP password information.
+This variable should be nil if there's some possibility that
+your passwords be stolen."
+  :group 'gnus-offline
+  :type '(choice (file :tag "File")
+                (const nil)))
+
+(defcustom gnus-offline-pop-password-decoding-function 
+  (function (lambda () (base64-decode-region (point-min) (point-max))))
+  "*Function for decoding one's password information.
+The value has no effect when `gnus-offline-pop-password-file'
+is nil.
+This variable might be nil if you don't need to encode your passwords."
+  :group 'gnus-offline
+  :type 'function)
+
 ;;; Internal variables.
 (defvar gnus-offline-connected nil
   "*If value is t , dialup line is connected status.
@@ -212,6 +253,9 @@ If value is nil , dialup line is disconnected status.")
 (defvar gnus-offline-movemail-arguments nil
   "*All command line arguments of exec-directory/movemail.")
 
+(defvar gnus-offline-mail-source nil
+  "*nnmail-spool-file save variable.")
+
 ;;; Temporary variable:
 (defvar string)
 (defvar hdr)
@@ -340,7 +384,26 @@ If value is nil , dialup line is disconnected status.")
   (if (functionp gnus-offline-dialup-function)
       (funcall gnus-offline-dialup-function))
   (gnus-offline-get-new-news-function)
-  (gnus-group-get-new-news arg))
+  (if (null gnus-offline-pop-password-file)
+      (gnus-group-get-new-news arg)
+    (let ((buffer (get-buffer-create "*offline-temp*")))
+      (unwind-protect
+         (progn
+           (if (boundp 'pop3-fma-password)
+               (setq pop3-fma-save-password-information t))
+           (save-excursion
+             (set-buffer buffer)
+             (erase-buffer)
+             (insert-file-contents-as-binary gnus-offline-pop-password-file)
+             (and gnus-offline-pop-password-decoding-function
+                  (funcall gnus-offline-pop-password-decoding-function))
+             (eval-buffer))
+           (gnus-group-get-new-news arg))
+       (if (boundp 'pop3-fma-password)
+           (setq pop3-fma-password nil
+                 pop3-fma-save-password-information nil)
+         (setq mail-source-password-cache nil))
+       (kill-buffer buffer)))))
 
 ;;
 ;; dialup...
@@ -477,13 +540,16 @@ If value is nil , dialup line is disconnected status.")
 (defun gnus-offline-enable-fetch-mail ()
   "*Set to fetch mail."
   (setq gnus-offline-mail-fetch-method 'nnmail)
-  (setq nnmail-movemail-program 'pop3-fma-movemail)
-  (setq nnmail-spool-file (append
-                          pop3-fma-local-spool-file-alist
-                          (mapcar
-                           (lambda (spool)
-                             (car spool))
-                           pop3-fma-spool-file-alist))))
+  (if (not (featurep 'running-pterodactyl-gnus-0_73-or-later))
+      (progn
+       (setq nnmail-movemail-program 'pop3-fma-movemail)
+       (setq nnmail-spool-file (append
+                                pop3-fma-local-spool-file-alist
+                                (mapcar
+                                 (lambda (spool)
+                                   (car spool))
+                                 pop3-fma-spool-file-alist))))
+    (setq nnmail-spool-file gnus-offline-mail-source)))
 ;;
 ;; Enable fetch news
 ;;
@@ -727,7 +793,8 @@ If value is nil , dialup line is disconnected status.")
   (add-hook 'gnus-group-mode-hook
            '(lambda ()
               (local-set-key "\C-coh" 'gnus-offline-set-unplugged-state)
-              (local-set-key "\C-com" 'gnus-offline-toggle-movemail-program)
+              (if (not (featurep 'running-pterodactyl-gnus-0_73-or-later))
+                  (local-set-key "\C-com" 'gnus-offline-toggle-movemail-program))
               (local-set-key "\C-cof" 'gnus-offline-toggle-articles-to-fetch)
               (local-set-key "\C-coo" 'gnus-offline-toggle-on/off-send-mail)
               (local-set-key "\C-cox" 'gnus-offline-toggle-auto-hangup)
@@ -778,7 +845,8 @@ If value is nil , dialup line is disconnected status.")
         ["Online \e$B>uBV$X\e(B" message-online-state message-offline-state]
         "----"
         ("Gnus Offline"
-         ["movemail \e$B$N@ZBX$(\e(B" gnus-offline-toggle-movemail-program t]
+         ["movemail \e$B$N@ZBX$(\e(B" gnus-offline-toggle-movemail-program
+          (not (featurep 'running-pterodactyl-gnus-0_73-or-later))]
          ["\e$B<hF@5-;v<oN`$NJQ99\e(B" gnus-offline-toggle-articles-to-fetch t]
          ["Mail \e$BAw?.J}K!\e(B(On/Off)\e$B$N@ZBX$(\e(B" gnus-offline-toggle-on/off-send-mail t]
          ["\e$B<+F0@ZCG$N@ZBX$(\e(B" gnus-offline-toggle-auto-hangup t]
@@ -799,7 +867,8 @@ If value is nil , dialup line is disconnected status.")
        ["Message Online" message-online-state message-offline-state]
        "----"
        ("Gnus Offline"
-       ["Toggle movemail program" gnus-offline-toggle-movemail-program t]
+       ["Toggle movemail program" gnus-offline-toggle-movemail-program
+        (not (featurep 'running-pterodactyl-gnus-0_73-or-later))]
        ["Toggle articles to fetch" gnus-offline-toggle-articles-to-fetch t]
        ["Toggle online/offline send mail" gnus-offline-toggle-on/off-send-mail t]
        ["Toggle auto hangup" gnus-offline-toggle-auto-hangup t]
@@ -822,7 +891,8 @@ If value is nil , dialup line is disconnected status.")
    "Gnus offline Menu"
    (if (featurep 'meadow)
        '("Offline"
-        ["movemail \e$B$N@ZBX$(\e(B" gnus-offline-toggle-movemail-program t]
+        ["movemail \e$B$N@ZBX$(\e(B" gnus-offline-toggle-movemail-program
+         (not (featurep 'running-pterodactyl-gnus-0_73-or-later))]
         ["\e$B<hF@5-;v<oN`$NJQ99\e(B" gnus-offline-toggle-articles-to-fetch t]
         ["Mail \e$BAw?.J}K!\e(B(On/Off)\e$B$N@ZBX$(\e(B" gnus-offline-toggle-on/off-send-mail t]
         ["\e$B<+F0@ZCG$N@ZBX$(\e(B" gnus-offline-toggle-auto-hangup t]
@@ -832,7 +902,8 @@ If value is nil , dialup line is disconnected status.")
         "----"
         ["\e$B2s@~$N@ZCG\e(B" gnus-offline-set-unplugged-state gnus-offline-connected])
      '("Offline"
-       ["Toggle movemail program" gnus-offline-toggle-movemail-program t]
+       ["Toggle movemail program" gnus-offline-toggle-movemail-program
+       (not (featurep 'running-pterodactyl-gnus-0_73-or-later))]
        ["Toggle articles to fetch" gnus-offline-toggle-articles-to-fetch t]
        ["Toggle online/offline send mail" gnus-offline-toggle-on/off-send-mail t]
        ["Toggle auto hangup" gnus-offline-toggle-auto-hangup t]
index a711a88..a183c1a 100644 (file)
@@ -1,6 +1,6 @@
 ;;; gnus-ofsetup.el --- Setup advisor for Offline reading for Mail/News.
 ;;;
-;;; $Id: gnus-ofsetup.el,v 1.1.6.1 1999-01-18 10:29:36 keiichi Exp $
+;;; $Id: gnus-ofsetup.el,v 1.1.6.2 1999-02-05 02:59:08 keiichi Exp $
 ;;;
 ;;; Copyright (C) 1998 Tatsuya Ichikawa
 ;;; Author: Tatsuya Ichikawa <t-ichi@po.shiojiri.ne.jp>
@@ -41,8 +41,9 @@
 (defvar pop3-fma-movemail-type nil)
 (defvar pop3-fma-movemail-arguments nil)
 (defvar use-miee nil)
-(defvar address)
-(defvar options)
+(defvar address nil)
+(defvar mail-source nil)
+(defvar options nil)
 
 ;;; To silence byte compiler
 (and
          ;; Set E-Mail Address and pop3 movemail type.
          (setq i (string-to-int num-of-address))
          (setq address nil)
-         (while (> i 0)
-           (setq address
-                 (append address
-                         (list
-                          (list
-                           (concat "po:"
-                                   (read-from-minibuffer
-                                    "Email address (user@mailhost): "))
-                           (completing-read
-                            "Authentification Method (TAB to completion): "
-                            '(("pass" 1) ("apop" 2)) nil t nil)))))
-           (setq i (- i 1)))
-         
-         ;; Replace "hoge" -> 'hoge
-         (mapcar
-          (lambda (x)
-            (if (string-equal (nth 1 x) "pass")
-                (setcar (cdr x) 'pass)
-              (setcar (cdr x) 'apop)))
-          address)
-         (setq pop3-fma-spool-file-alist address)
-         
-         ;; Set movemail type.
-         (let ((movemail-type
-                (completing-read
-                 "Select movemail type for retreave mail (TAB to completion): "
-                 '(("exe" 1) ("lisp" 2))
-                 nil t nil))
-               )
-           (if (string-equal movemail-type "exe")
-               (let ((options
-                      (read-from-minibuffer "movemail options: ")))
-                 (setq pop3-fma-movemail-arguments (split-string options "[\t ]+"))))
-           (if (string-equal movemail-type "exe")
-               (setq pop3-fma-movemail-type 'exe)
-             (setq pop3-fma-movemail-type 'lisp))))
+         (if (not (locate-library "mail-source"))
+             (progn
+               (while (> i 0)
+                 (setq address
+                       (append address
+                               (list
+                                (list
+                                 (concat "po:"
+                                         (read-from-minibuffer
+                                          "Email address (user@mailhost): "))
+                                 (completing-read
+                                  "Authentification Method (TAB to completion): "
+                                  '(("pass" 1) ("apop" 2)) nil t nil)))))
+                 (setq i (- i 1)))
+               ;; Replace "hoge" -> 'hoge
+               (mapcar
+                (lambda (x)
+                  (if (string-equal (nth 1 x) "pass")
+                      (setcar (cdr x) 'pass)
+                    (setcar (cdr x) 'apop)))
+                address)
+               (setq pop3-fma-spool-file-alist address)
+               ;; Set movemail type.
+               (let ((movemail-type
+                      (completing-read
+                       "Select movemail type for retreave mail (TAB to completion): "
+                       '(("exe" 1) ("lisp" 2))
+                       nil t nil))
+                     )
+                 (if (string-equal movemail-type "exe")
+                     (let ((options
+                            (read-from-minibuffer "movemail options: ")))
+                       (setq pop3-fma-movemail-arguments (split-string options "[\t ]+"))))
+                 (if (string-equal movemail-type "exe")
+                     (setq pop3-fma-movemail-type 'exe)
+                   (setq pop3-fma-movemail-type 'lisp))))
+           ;;
+           ;; Use mail-source.el
+           (setq mail-source nil)
+           (while (> i 0)
+             (let ((user (read-from-minibuffer "Mail Account name : "))
+                   (server (read-from-minibuffer "Mail server : "))
+                   (auth (completing-read
+                         "Authentification Method (TAB to completion): "
+                         '(("pop" 1) ("apop" 2)) nil t nil))
+                   (islisp (y-or-n-p "Do you use pop3.el to fetch mail? ")))
+               (if (not islisp)
+                   (let ((prog (read-file-name "movemail program name: "
+                                               exec-directory "movemail"))
+                         (args (read-from-minibuffer "movemail options: " "-pf")))
+                     (setq mail-source
+                           (append mail-source
+                                   (list
+                                    (list
+                                     auth
+                                     :user user
+                                     :server server
+                                     :program prog
+                                     :args (format "%s %s" args
+                                                   (concat "po:" user)))))))
+                 (setq mail-source
+                       (append mail-source
+                               (list
+                                (list
+                                 auth
+                                 :user user
+                                 :server server))))))
+             (setq i (- i 1)))
+           ;; Replace "hoge" -> 'hoge
+           (mapcar
+            (lambda (x)
+              (if (string-equal (nth 0 x) "pop")
+                  (setcar x 'pop)
+                (setcar x 'apop)))
+            mail-source)
+           (setq gnus-offline-mail-source mail-source)))
+
+       (setq save-passwd
+             (y-or-n-p "Do you save password information to newsrc file? "))
        
        ;; Write to setting file.
        (setq tmp-buffer (get-buffer-create "* Setting"))
        ;; Offline setting for gnus-nntp-*
        (insert "(setq gnus-nntp-service nil)\n")
        (insert "(setq gnus-nntp-server nil)\n")
-       (insert "(setq nnmail-spool-file nil)\n")
 
        ;; Write setting about hooks.
        (insert "(add-hook 'gnus-group-mode-hook 'gnus-offline-processed-by-timer t)\n")
        (insert "(autoload 'gnus-offline-setup \"gnus-offline\")\n")
        (insert "(add-hook 'gnus-load-hook 'gnus-offline-setup)\n")
 
-       ;; Write setting about pop3-fma.
-       (insert "(require 'pop3-fma)\n")
-       (insert "(add-hook 'message-send-hook 'pop3-fma-message-add-header)\n")
-       (insert "(setq pop3-fma-spool-file-alist '")
-       (insert (prin1-to-string pop3-fma-spool-file-alist))
-       (insert ")\n")
-       (insert "(setq pop3-fma-movemail-type '")
-       (insert (prin1-to-string pop3-fma-movemail-type))
-       (insert ")\n")
-       (if (eq pop3-fma-movemail-type 'exe)
+       (if (not (locate-library "mail-source"))
            (progn
-             (insert "(setq pop3-fma-movemail-arguments '")
-             (insert (prin1-to-string pop3-fma-movemail-arguments))
-             (insert ")\n")))
+             ;; Write setting about pop3-fma.
+             (insert "(setq nnmail-spool-file nil)\n")
+             (insert "(require 'pop3-fma)\n")
+             (insert "(add-hook 'message-send-hook 'pop3-fma-message-add-header)\n")
+             (insert "(setq pop3-fma-spool-file-alist '")
+             (insert (prin1-to-string pop3-fma-spool-file-alist))
+             (insert ")\n")
+             (insert "(setq pop3-fma-movemail-type '")
+             (insert (prin1-to-string pop3-fma-movemail-type))
+             (insert ")\n")
+             (if save-passwd
+                 (insert "(add-hook 'gnus-setup-news-hook \n    (lambda ()\n        (add-to-list 'gnus-variable-list 'pop3-fma-password)))\n"))
+             (if (eq pop3-fma-movemail-type 'exe)
+                 (progn
+                   (insert "(setq pop3-fma-movemail-arguments '")
+                   (insert (prin1-to-string pop3-fma-movemail-arguments))
+                   (insert ")\n"))))
+         ;; Write stting about mail-source.el
+         (insert "(setq gnus-offline-mail-source '")
+         (insert (prin1-to-string gnus-offline-mail-source))
+         (insert ")\n")
+         (insert "(setq nnmail-spool-file gnus-offline-mail-source)\n")
+         (insert "(require 'read-passwd)\n")
+         (insert "(setq mail-source-read-passwd 'read-pw-read-passwd)\n")
+         (insert "(add-hook 'gnus-setup-news-hook 'read-pw-set-mail-source-passwd-cache)\n")
+         (if save-passwd
+             (insert "(add-hook 'gnus-setup-news-hook \n    (lambda ()\n        (add-to-list 'gnus-variable-list 'mail-source-password-cache)))\n"))
+         )
        (write-region (point-min) (point-max) gnus-offline-setting-file)
        (kill-buffer "* Setting"))
     )
index 9a5aa09..e2e30d8 100644 (file)
@@ -1632,30 +1632,30 @@ newsgroup."
 (defun gnus-read-active-file (&optional force not-native)
   (gnus-group-set-mode-line)
   (let ((methods
-        (append
-         (if (and (not not-native)
-                  (gnus-check-server gnus-select-method))
-             ;; The native server is available.
-             (cons gnus-select-method gnus-secondary-select-methods)
-           ;; The native server is down, so we just do the
-           ;; secondary ones.
-           gnus-secondary-select-methods)
-         ;; Also read from the archive server.
-         (when (gnus-archive-server-wanted-p)
-           (list "archive"))))
-       list-type)
+        (mapcar
+         (lambda (m) (if (stringp m) (gnus-server-get-method nil m) m))
+         (append
+          (if (and (not not-native)
+                   (gnus-check-server gnus-select-method))
+              ;; The native server is available.
+              (cons gnus-select-method gnus-secondary-select-methods)
+            ;; The native server is down, so we just do the
+            ;; secondary ones.
+            gnus-secondary-select-methods)
+          ;; Also read from the archive server.
+          (when (gnus-archive-server-wanted-p)
+            (list "archive")))))
+       method where mesg list-type)
     (setq gnus-have-read-active-file nil)
     (save-excursion
       (set-buffer nntp-server-buffer)
-      (while methods
-       (let* ((method (if (stringp (car methods))
-                          (gnus-server-get-method nil (car methods))
-                        (car methods)))
-              (where (nth 1 method))
-              (mesg (format "Reading active file%s via %s..."
+      (while (setq method (pop methods))
+       (unless (member method methods)
+         (setq where (nth 1 method)
+               mesg (format "Reading active file%s via %s..."
                             (if (and where (not (zerop (length where))))
                                 (concat " from " where) "")
-                            (car method))))
+                            (car method)))
          (gnus-message 5 mesg)
          (when (gnus-check-server method)
            ;; Request that the backend scan its incoming messages.
@@ -1702,9 +1702,7 @@ newsgroup."
                (gnus-active-to-gnus-format method gnus-active-hashtb nil t)
                ;; We mark this active file as read.
                (push method gnus-have-read-active-file)
-               (gnus-message 5 "%sdone" mesg))))))
-       (setq methods (cdr methods))))))
-
+               (gnus-message 5 "%sdone" mesg))))))))))
 
 (defun gnus-ignored-newsgroups-has-to-p ()
   "Non-nil iff gnus-ignored-newsgroups includes \"^to\\\\.\" as an element."
index b2b0fe6..82f93d2 100644 (file)
@@ -1,5 +1,5 @@
 ;;; gnus-sum.el --- summary mode commands for Semi-gnus
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;;         MORIOKA Tomohiko <morioka@jaist.ac.jp>
@@ -3454,11 +3454,11 @@ If LINE, insert the rebuilt thread starting on line LINE."
 (defsubst gnus-article-sort-by-author (h1 h2)
   "Sort articles by root author."
   (string-lessp
-   (let ((addr (mime-read-field 'From h1)))
+   (let ((addr (car (mime-read-field 'From h1))))
      (or (std11-full-name-string addr)
         (std11-address-string addr)
         ""))
-   (let ((addr (mime-read-field 'From h2)))
+   (let ((addr (car (mime-read-field 'From h2))))
      (or (std11-full-name-string addr)
         (std11-address-string addr)
         ""))
index 4249394..7f1e947 100644 (file)
@@ -1,5 +1,5 @@
 ;;; nnheader.el --- header access macros for Semi-gnus and its backends
-;; Copyright (C) 1987,88,89,90,93,94,95,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1987-1990,1993-1999 Free Software Foundation, Inc.
 
 ;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
 ;;         Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -52,7 +52,7 @@
 
 (defvar nnheader-file-name-translation-alist nil
   "*Alist that says how to translate characters in file names.
-For instance, if \":\" is illegal as a file character in file names
+For instance, if \":\" is invalid as a file character in file names
 on your system, you could say something like:
 
 \(setq nnheader-file-name-translation-alist '((?: . ?_)))")
@@ -277,7 +277,8 @@ on your system, you could say something like:
           0
         (let ((num (ignore-errors (read (current-buffer)))))
           (if (numberp num) num 0)))
-     (or (eobp) (forward-char 1))))
+     (unless (eobp)
+       (search-forward "\t" eol 'move))))
 
 (defun nnheader-parse-nov ()
   (let ((eol (gnus-point-at-eol)))
@@ -457,7 +458,8 @@ the line could be found."
 (defun nnheader-insert-references (references message-id)
   "Insert a References header based on REFERENCES and MESSAGE-ID."
   (if (and (not references) (not message-id))
-      ()                               ; This is illegal, but not all articles have Message-IDs.
+      ; This is invalid, but not all articles have Message-IDs.
+      ()
     (mail-position-on-field "References")
     (let ((begin (save-excursion (beginning-of-line) (point)))
          (fill-column 78)
index 87ea5e0..65dc913 100644 (file)
@@ -255,8 +255,13 @@ above them."
          (while (re-search-forward regexp nd t)
            (let* ((start (match-beginning group))
                   (end (match-end group))
-                  (glyph (smiley-create-glyph (buffer-substring start end)
-                                              file)))
+                  (glyph
+                   (and (or (eq start 1)
+                            (not (string-match "\\(\\^\\|;\\|_\\);)" 
+                                               (buffer-substring 
+                                                (1- start) (+ start 2)))))
+                        (smiley-create-glyph (buffer-substring start end)
+                                             file))))
              (when glyph
                (mapcar 'delete-annotation (annotations-at end))
                (let ((ext (make-extent start end))