--- /dev/null
+
+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.
+
--- /dev/null
+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)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~
(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)
;;; 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
;;; 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.
;;; (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"
)
: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.
(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)
(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...
(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
;;
(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)
["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]
["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]
"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]
"----"
["\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]
;;; 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>
(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"))
)
(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.
(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."
;;; 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>
(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)
""))
;;; 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>
(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 '((?: . ?_)))")
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)))
(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)
(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))