Synch with Oort Gnus.
authoryamaoka <yamaoka>
Tue, 13 Feb 2001 01:47:13 +0000 (01:47 +0000)
committeryamaoka <yamaoka>
Tue, 13 Feb 2001 01:47:13 +0000 (01:47 +0000)
23 files changed:
ChangeLog
GNUS-NEWS
aclocal.m4
configure
configure.in
lisp/ChangeLog
lisp/Makefile.in
lisp/dgnushack.el
lisp/gnus-art.el
lisp/gnus-cus.el
lisp/gnus-group.el
lisp/gnus-load.el [deleted file]
lisp/gnus-start.el
lisp/gnus-sum.el
lisp/gnus-topic.el
lisp/gnus-vers.el
lisp/mm-decode.el
lisp/mm-extern.el
lisp/mm-partial.el
lisp/mm-view.el
texi/ChangeLog
texi/gnus-ja.texi
texi/gnus.texi

index 51c17c8..7e6418f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2001-02-11 18:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+       * GNUS-NEWS: Copyright and others.
+
+2001-02-09 20:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+       * aclocal.m4 (AC_CHECK_URL): Add.
+
+       * configure.in: Use it.
+
 2001-02-08  Katsumi Yamaoka <yamaoka@jpl.org>
 
        * lisp/nnshimbun.el (nnshimbun-fml-get-headers): Fix unbalanced
index 720c857..2551fa0 100644 (file)
--- a/GNUS-NEWS
+++ b/GNUS-NEWS
@@ -1,17 +1,30 @@
-** Gnus changes since 5.8.
+GNUS NEWS -- history of user-visible changes.
+Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
+See the end for copying conditions.
 
-*** MML (Mime compose) prefix changed from `M-m' to `C-c C-m'.
+Please send Gnus bug reports to bugs@gnus.org.
+For older news, see Gnus info node "New Features".
+
+\f
+* Changes in Oort Gnus
+
+** Gnus now supports PGP-MIME (RFC2015) and SMIME.
+
+** Gnus inlines external parts (message/external).
+
+** MML (Mime compose) prefix changed from `M-m' to `C-c C-m'.
 
 This change was made to avoid conflict with the standard binding of
 `back-to-indentation', which is also useful in message mode.
 
-** Gnus changes.
+\f
+* Changes in Pterodactyl Gnus (5.8/5.9)
 
 The Gnus NEWS entries are short, but they reflect sweeping changes in
 four areas: Article display treatment, MIME treatment,
 internationalization and mail-fetching.
 
-*** The mail-fetching functions have changed.  See the manual for the
+** The mail-fetching functions have changed.  See the manual for the
 many details.  In particular, all procmail fetching variables are gone.
 
 If you used procmail like in
@@ -30,30 +43,47 @@ this now has changed to
 More information is available in the info doc at Select Methods ->
 Getting Mail -> Mail Sources
 
-*** Gnus is now a MIME-capable reader.  This affects many parts of
+** Gnus is now a MIME-capable reader.  This affects many parts of
 Gnus, and adds a slew of new commands.  See the manual for details.
 
-*** Gnus has also been multilingualized.  This also affects too
+** Gnus has also been multilingualized.  This also affects too
 many parts of Gnus to summarize here, and adds many new variables.
 
-*** gnus-auto-select-first can now be a function to be
+** gnus-auto-select-first can now be a function to be
 called to position point.
 
-*** The user can now decide which extra headers should be included in
+** The user can now decide which extra headers should be included in
 summary buffers and NOV files.
 
-*** `gnus-article-display-hook' has been removed.  Instead, a number
+** `gnus-article-display-hook' has been removed.  Instead, a number
 of variables starting with `gnus-treat-' have been added.
 
-*** The Gnus posting styles have been redone again and now works in a
+** The Gnus posting styles have been redone again and now works in a
 subtly different manner.
 
-*** New web-based backends have been added: nnslashdot, nnwarchive
+** New web-based backends have been added: nnslashdot, nnwarchive
 and nnultimate.  nnweb has been revamped, again, to keep up with
 ever-changing layouts.
 
-*** Gnus can now read IMAP mail via nnimap.
+** Gnus can now read IMAP mail via nnimap.
+
+\f
+* For older news, see Gnus info node "New Features".
+
+----------------------------------------------------------------------
+Copyright information:
+
+Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
+
+   Permission is granted to anyone to make or distribute verbatim copies
+   of this document as received, in any medium, provided that the
+   copyright notice and this permission notice are preserved,
+   thus giving the recipient permission to redistribute in turn.
 
+   Permission is granted to distribute modified versions
+   of this document, or of portions of it,
+   under the above conditions, provided also that they
+   carry prominent notices stating who last changed them.
 \f
 Local variables:
 mode: outline
index bdd2c08..aec56f3 100644 (file)
@@ -182,6 +182,40 @@ fi
    fi
 ])
 
+dnl
+dnl Perform sanity checking and try to locate the W3 package
+dnl
+AC_DEFUN(AC_CHECK_URL, [
+AC_MSG_CHECKING(for acceptable URL version)
+
+dnl Ignore cache.
+unset EMACS_cv_ACCEPTABLE_URL;
+unset EMACS_cv_SYS_url_dir;
+unset EMACS_cv_SYS_url;
+
+AC_CACHE_VAL(EMACS_cv_ACCEPTABLE_URL,[
+AC_EMACS_CHECK_LIB(url, url-retrieve, "noecho")
+if test "${HAVE_url}" = "yes"; then
+       EMACS_cv_ACCEPTABLE_URL=yes
+else
+       EMACS_cv_ACCEPTABLE_URL=
+fi
+
+if test "x${EMACS_cv_ACCEPTABLE_URL}" = "xyes"; then
+       AC_EMACS_LISP(url_dir,(file-name-directory (locate-library \"url\")),"noecho")
+       EMACS_cv_ACCEPTABLE_URL=$EMACS_cv_SYS_url_dir
+fi
+])
+   AC_ARG_WITH(url,[  --with-url=DIR          Specify where to find the url package], [ EMACS_cv_ACCEPTABLE_URL=`( cd $withval && pwd || echo "$withval" ) 2> /dev/null` ])
+   URL=${EMACS_cv_ACCEPTABLE_URL}
+   AC_SUBST(URL)
+   if test "x${EMACS_cv_ACCEPTABLE_URL}" = "x"; then
+       AC_MSG_RESULT(not found)
+   else
+       AC_MSG_RESULT("${URL}")
+   fi
+])
+
 AC_DEFUN(AC_EXAMINE_PACKAGEDIR,
  [dnl Examine PACKAGEDIR.
   AC_EMACS_LISP(PACKAGEDIR,
index f71a398..d93cbb7 100755 (executable)
--- a/configure
+++ b/configure
@@ -21,6 +21,8 @@ ac_help="$ac_help
 ac_help="$ac_help
   --with-etcdir=DIR       Where to install etc files"
 ac_help="$ac_help
+  --with-url=DIR          Specify where to find the url package"
+ac_help="$ac_help
   --with-w3=DIR           Specify where to find the w3 package"
 ac_help="$ac_help
   --with-packagedir=DIR   package DIR for XEmacs"
@@ -548,7 +550,7 @@ fi
   echo "$ac_t""${GNUS_PRODUCT_NAME}" 1>&6
   
 echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:552: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "configure:554: checking whether ${MAKE-make} sets \${MAKE}" >&5
 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
 if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -605,7 +607,7 @@ ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 # ./install, which can be erroneously created by make from ./install.sh.
 echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:609: checking for a BSD compatible install" >&5
+echo "configure:611: checking for a BSD compatible install" >&5
 if test -z "$INSTALL"; then
 if eval "test \"\${ac_cv_path_install+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -664,7 +666,7 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 # Extract the first word of "makeinfo", so it can be a program name with args.
 set dummy makeinfo; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:668: checking for $ac_word" >&5
+echo "configure:670: checking for $ac_word" >&5
 if eval "test \"\${ac_cv_prog_MAKEINFO+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -705,7 +707,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:709: checking for $ac_word" >&5
+echo "configure:711: checking for $ac_word" >&5
 if eval "test \"\${ac_cv_prog_EMACS+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -739,7 +741,7 @@ test -n "$EMACS" || EMACS="emacs"
       # Extract the first word of "$withval", so it can be a program name with args.
 set dummy $withval; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:743: checking for $ac_word" >&5
+echo "configure:745: checking for $ac_word" >&5
 if eval "test \"\${ac_cv_prog_EMACS+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -776,7 +778,7 @@ if test "${with_xemacs+set}" = set; then
       # Extract the first word of "xemacs", so it can be a program name with args.
 set dummy xemacs; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:780: checking for $ac_word" >&5
+echo "configure:782: checking for $ac_word" >&5
 if eval "test \"\${ac_cv_prog_XEMACS+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -807,7 +809,7 @@ fi
       # Extract the first word of "$withval", so it can be a program name with args.
 set dummy $withval; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:811: checking for $ac_word" >&5
+echo "configure:813: checking for $ac_word" >&5
 if eval "test \"\${ac_cv_prog_XEMACS+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -844,7 +846,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:848: checking for $ac_word" >&5
+echo "configure:850: checking for $ac_word" >&5
 if eval "test \"\${ac_cv_prog_EMACS+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -880,7 +882,7 @@ fi
   
 
   echo $ac_n "checking what a flavor does $EMACS have""... $ac_c" 1>&6
-echo "configure:884: checking what a flavor does $EMACS have" >&5
+echo "configure:886: checking what a flavor does $EMACS have" >&5
 
     unset EMACS_cv_SYS_flavor;
 
@@ -890,7 +892,7 @@ elisp="(cond ((featurep (quote xemacs)) \"XEmacs\")\
           (t \"FSF Emacs\"))"
 if test -z ""noecho""; then
        echo $ac_n "checking for flavor""... $ac_c" 1>&6
-echo "configure:894: checking for flavor" >&5
+echo "configure:896: checking for flavor" >&5
 fi
 if eval "test \"\${EMACS_cv_SYS_flavor+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -922,12 +924,12 @@ fi
   echo "$ac_t""$EMACS_cv_SYS_flavor" 1>&6
   if test "$prefix" = "NONE"; then
        echo $ac_n "checking prefix for your Emacs""... $ac_c" 1>&6
-echo "configure:926: checking prefix for your Emacs" >&5
+echo "configure:928: checking prefix for your Emacs" >&5
        
 elisp="(expand-file-name \"..\" invocation-directory)"
 if test -z ""noecho""; then
        echo $ac_n "checking for prefix""... $ac_c" 1>&6
-echo "configure:931: checking for prefix" >&5
+echo "configure:933: checking for prefix" >&5
 fi
 if eval "test \"\${EMACS_cv_SYS_prefix+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -958,7 +960,7 @@ if test "${with_lispdir+set}" = set; then
 fi
 
   echo $ac_n "checking where lisp files should go""... $ac_c" 1>&6
-echo "configure:962: checking where lisp files should go" >&5
+echo "configure:964: checking where lisp files should go" >&5
   if test -z "$lispdir"; then
         theprefix=$prefix
     if test "x$theprefix" = "xNONE"; then
@@ -989,7 +991,7 @@ if test "${with_etcdir+set}" = set; then
 fi
 
   echo $ac_n "checking where etc files should go""... $ac_c" 1>&6
-echo "configure:993: checking where etc files should go" >&5
+echo "configure:995: checking where etc files should go" >&5
   if test -z "$etcdir"; then
         etcdir="\$(lispdir)/../etc"
   fi
@@ -997,8 +999,114 @@ echo "configure:993: checking where etc files should go" >&5
   
 
 
+echo $ac_n "checking for acceptable URL version""... $ac_c" 1>&6
+echo "configure:1004: checking for acceptable URL version" >&5
+
+unset EMACS_cv_ACCEPTABLE_URL;
+unset EMACS_cv_SYS_url_dir;
+unset EMACS_cv_SYS_url;
+
+if eval "test \"\${EMACS_cv_ACCEPTABLE_URL+set}\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+
+if test -z ""noecho""; then
+       echo $ac_n "checking for url-retrieve in url""... $ac_c" 1>&6
+echo "configure:1017: checking for url-retrieve in url" >&5
+fi
+library=`echo url | tr _ -`
+
+elisp="(progn (fmakunbound (quote url-retrieve)) (condition-case nil (progn (require (quote $library)) (fboundp (quote url-retrieve))) (error (prog1 nil (message \"$library not found\")))))"
+if test -z ""noecho""; then
+       echo $ac_n "checking for url""... $ac_c" 1>&6
+echo "configure:1024: checking for url" >&5
+fi
+if eval "test \"\${EMACS_cv_SYS_url+set}\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+       OUTPUT=./conftest-$$
+       echo ${EMACS}' -batch -eval '\''(let ((x '${elisp}')) (write-region (if (stringp x) (princ x) (prin1-to-string x)) nil "'${OUTPUT}'" nil 5))'\' >& 5 2>&1
+       eval ${EMACS}' -batch -eval '\''(let ((x '${elisp}')) (write-region (if (stringp x) (princ x) (prin1-to-string x)) nil "'${OUTPUT}'" nil 5))'\' >& 5 2>&1
+       retval=`cat ${OUTPUT}`
+       echo "=> ${retval}" >& 5 2>&1
+       rm -f ${OUTPUT}
+       EMACS_cv_SYS_url=$retval
+
+fi
+
+url=${EMACS_cv_SYS_url}
+if test -z ""noecho""; then
+       echo "$ac_t""$url" 1>&6
+fi
+
+if test "${EMACS_cv_SYS_url}" = "nil"; then
+       EMACS_cv_SYS_url=no
+fi
+if test "${EMACS_cv_SYS_url}" = "t"; then
+       EMACS_cv_SYS_url=yes
+fi
+HAVE_url=${EMACS_cv_SYS_url}
+
+if test -z ""noecho""; then
+       echo "$ac_t""$HAVE_url" 1>&6
+fi
+
+if test "${HAVE_url}" = "yes"; then
+       EMACS_cv_ACCEPTABLE_URL=yes
+else
+       EMACS_cv_ACCEPTABLE_URL=
+fi
+
+if test "x${EMACS_cv_ACCEPTABLE_URL}" = "xyes"; then
+       
+elisp="(file-name-directory (locate-library \"url\"))"
+if test -z ""noecho""; then
+       echo $ac_n "checking for url_dir""... $ac_c" 1>&6
+echo "configure:1068: checking for url_dir" >&5
+fi
+if eval "test \"\${EMACS_cv_SYS_url_dir+set}\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+       OUTPUT=./conftest-$$
+       echo ${EMACS}' -batch -eval '\''(let ((x '${elisp}')) (write-region (if (stringp x) (princ x) (prin1-to-string x)) nil "'${OUTPUT}'" nil 5))'\' >& 5 2>&1
+       eval ${EMACS}' -batch -eval '\''(let ((x '${elisp}')) (write-region (if (stringp x) (princ x) (prin1-to-string x)) nil "'${OUTPUT}'" nil 5))'\' >& 5 2>&1
+       retval=`cat ${OUTPUT}`
+       echo "=> ${retval}" >& 5 2>&1
+       rm -f ${OUTPUT}
+       EMACS_cv_SYS_url_dir=$retval
+
+fi
+
+url_dir=${EMACS_cv_SYS_url_dir}
+if test -z ""noecho""; then
+       echo "$ac_t""$url_dir" 1>&6
+fi
+
+       EMACS_cv_ACCEPTABLE_URL=$EMACS_cv_SYS_url_dir
+fi
+
+fi
+
+   # Check whether --with-url or --without-url was given.
+if test "${with_url+set}" = set; then
+  withval="$with_url"
+   EMACS_cv_ACCEPTABLE_URL=`( cd $withval && pwd || echo "$withval" ) 2> /dev/null` 
+fi
+
+   URL=${EMACS_cv_ACCEPTABLE_URL}
+   
+   if test "x${EMACS_cv_ACCEPTABLE_URL}" = "x"; then
+       echo "$ac_t""not found" 1>&6
+   else
+       echo "$ac_t"""${URL}"" 1>&6
+   fi
+
+
 echo $ac_n "checking for acceptable W3 version""... $ac_c" 1>&6
-echo "configure:1002: checking for acceptable W3 version" >&5
+echo "configure:1110: checking for acceptable W3 version" >&5
 
 unset EMACS_cv_ACCEPTABLE_W3;
 unset EMACS_cv_SYS_w3_dir;
@@ -1011,14 +1119,14 @@ else
 
 if test -z ""noecho""; then
        echo $ac_n "checking for w3-form-encode-xwfu in w3_forms""... $ac_c" 1>&6
-echo "configure:1015: checking for w3-form-encode-xwfu in w3_forms" >&5
+echo "configure:1123: checking for w3-form-encode-xwfu in w3_forms" >&5
 fi
 library=`echo w3_forms | tr _ -`
 
 elisp="(progn (fmakunbound (quote w3-form-encode-xwfu)) (condition-case nil (progn (require (quote $library)) (fboundp (quote w3-form-encode-xwfu))) (error (prog1 nil (message \"$library not found\")))))"
 if test -z ""noecho""; then
        echo $ac_n "checking for w3_forms""... $ac_c" 1>&6
-echo "configure:1022: checking for w3_forms" >&5
+echo "configure:1130: checking for w3_forms" >&5
 fi
 if eval "test \"\${EMACS_cv_SYS_w3_forms+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1062,7 +1170,7 @@ if test "x${EMACS_cv_ACCEPTABLE_W3}" = "xyes"; then
 elisp="(file-name-directory (locate-library \"w3-forms\"))"
 if test -z ""noecho""; then
        echo $ac_n "checking for w3_dir""... $ac_c" 1>&6
-echo "configure:1066: checking for w3_dir" >&5
+echo "configure:1174: checking for w3_dir" >&5
 fi
 if eval "test \"\${EMACS_cv_SYS_w3_dir+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1104,7 +1212,7 @@ fi
 
   if test ${EMACS_FLAVOR} = xemacs; then
     echo $ac_n "checking where the XEmacs package is""... $ac_c" 1>&6
-echo "configure:1108: checking where the XEmacs package is" >&5
+echo "configure:1216: checking where the XEmacs package is" >&5
     # Check whether --with-packagedir or --without-packagedir was given.
 if test "${with_packagedir+set}" = set; then
   withval="$with_packagedir"
@@ -1127,7 +1235,7 @@ elisp="(let (package-dir)\
       (or package-dir \"\"))"
 if test -z ""noecho""; then
        echo $ac_n "checking for PACKAGEDIR""... $ac_c" 1>&6
-echo "configure:1131: checking for PACKAGEDIR" >&5
+echo "configure:1239: checking for PACKAGEDIR" >&5
 fi
 if eval "test \"\${EMACS_cv_SYS_PACKAGEDIR+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1166,7 +1274,7 @@ elisp="(let (package-dir)\
       (or package-dir \"\"))"
 if test -z ""noecho""; then
        echo $ac_n "checking for PACKAGEDIR""... $ac_c" 1>&6
-echo "configure:1170: checking for PACKAGEDIR" >&5
+echo "configure:1278: checking for PACKAGEDIR" >&5
 fi
 if eval "test \"\${EMACS_cv_SYS_PACKAGEDIR+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1203,7 +1311,7 @@ if test "${with_addpath+set}" = set; then
   withval="$with_addpath"
   if test x$withval != xyes -a x$withval != x; then
       echo $ac_n "checking where to find the additional elisp libraries""... $ac_c" 1>&6
-echo "configure:1207: checking where to find the additional elisp libraries" >&5
+echo "configure:1315: checking where to find the additional elisp libraries" >&5
       ADDITIONAL_LOAD_PATH=$withval
       echo "$ac_t""$ADDITIONAL_LOAD_PATH" 1>&6
     fi
@@ -1367,6 +1475,8 @@ s%@EMACS@%$EMACS%g
 s%@XEMACS@%$XEMACS%g
 s%@lispdir@%$lispdir%g
 s%@etcdir@%$etcdir%g
+s%@HAVE_url@%$HAVE_url%g
+s%@URL@%$URL%g
 s%@HAVE_w3_forms@%$HAVE_w3_forms%g
 s%@W3@%$W3%g
 s%@PACKAGEDIR@%$PACKAGEDIR%g
index 2e24198..839c1cf 100644 (file)
@@ -6,6 +6,7 @@ AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, no)
 AC_CHECK_EMACS
 AC_PATH_LISPDIR
 AC_PATH_ETCDIR
+AC_CHECK_URL
 AC_CHECK_W3
 AC_PATH_PACKAGEDIR
 AC_ADD_LOAD_PATH
index 47064b6..85a7cb7 100644 (file)
@@ -1,3 +1,75 @@
+2001-02-12 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+       * gnus-topic.el (gnus-subscribe-topics): Return nil if not
+       subscribe.
+
+       * gnus-start.el (gnus-call-subscribe-functions): New.
+       (gnus-find-new-newsgroups): Use it.
+       (gnus-ask-server-for-new-groups): Use it.
+       (gnus-check-first-time-used): Use it.
+       (gnus-subscribe-newsgroup-method): Grok a list of functions.
+       (gnus-subscribe-options-newsgroup-method): Ditto.
+       (gnus-subscribe-hierarchically): Return gnus-subscribe-newsgroup's
+       return .
+
+2001-02-12  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+       * gnus-cus.el (gnus-score-customize): Doc fix.
+
+2001-02-11  Jesper Harder <harder@ifa.au.dk>
+
+       * dgnushack.el (my-getenv): Typo.
+
+2001-02-11 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+       * dgnushack.el (dgnushack-make-load): Don't autoload smiley functions.
+
+2001-02-11 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+       * gnus-group.el (gnus-group-suspend): Offer save summaries.
+
+       * gnus-art.el (gnus-treat-leading-whitespace): New.
+       (gnus-treatment-function-alist): Use it.
+       (article-remove-leading-whitespace): New.
+       (gnus-article-make-menu-bar): Use it.
+
+       * gnus-sum.el (gnus-summary-wash-empty-map): Add
+       remove-leading-whitespace.
+       (gnus-summary-wash-map): Bind strip-headers-in-body to `W a',
+       because of conflict.
+
+2001-02-09 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+       * Makefile.in: Hack generating gnus-load.el.
+       * dgnushack.el: Ditto.
+       * gnus-load.el: Remove it.
+
+2001-02-09 20:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+       * dgnushack.el : Add URLDIR.
+       
+       * Makefile.in (EMACS_COMP): Ditto.
+
+2001-02-09 19:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+       * gnus-cus.el (gnus-score-customize): Error on no score file.
+
+2001-02-09 08:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+       * mm-decode.el (mm-merge-handles): New function.
+
+       * mm-view.el (mm-inline-message): Use it.
+       (mm-view-message): Ditto.
+       
+       * mm-partial.el (mm-inline-partial): Ditto.
+
+       * mm-extern.el (mm-inline-external-body): Ditto.
+
+       * gnus-art.el (gnus-mime-view-part): Ditto.
+       (gnus-mime-view-part-as-type): Ditto.
+       (gnus-mime-save-part-and-strip): Prevent users to strip in some
+       cases.
+
 2001-02-08 20:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
 
        * message.el (message-cancel-news): Allow to shoot foot.
index 4408bca..e31b705 100644 (file)
@@ -13,21 +13,23 @@ SHELL = /bin/sh
 VPATH = @srcdir@
 PACKAGEDIR = @PACKAGEDIR@
 W3DIR = @W3@
+URLDIR = @URL@
+EMACS_COMP = URLDIR=$(URLDIR) W3DIR=$(W3DIR) lispdir=$(lispdir) srcdir=$(srcdir) $(EMACS) $(FLAGS)
 GNUS_PRODUCT_NAME = @GNUS_PRODUCT_NAME@
-EXPORTING_FILES = $(EMACS) $(FLAGS) -f dgnushack-exporting-files 2>/dev/null
+EXPORTING_FILES = $(EMACS_COMP) -f dgnushack-exporting-files 2>/dev/null
 
-all total:
-       rm -f *.elc auto-autoloads.el custom-load.el
-       W3DIR=$(W3DIR) lispdir=$(lispdir) \
-               srcdir=$(srcdir) $(EMACS) $(FLAGS) -f dgnushack-compile
+all total: clean-some gnus-load.elc
+       $(EMACS_COMP) -f dgnushack-compile
 
-warn:
-       rm -f *.elc
-       W3DIR=$(W3DIR) lispdir=$(lispdir) srcdir=$(srcdir) $(EMACS) $(FLAGS) --eval '(dgnushack-compile t)' 2>&1 | egrep -v "variable G|inhibit-point-motion-hooks|coding-system|temp-results|variable gnus|variable nn|scroll-in-place|deactivate-mark|filladapt-mode|byte-code-function-p|print-quoted|ps-right-header|ps-left-header|article-inhibit|print-escape|ssl-program-arguments|message-log-max"
+clean-some:
+       rm -f *.elc gnus-load.el
+
+warn: clean-some gnus-load.elc
+       $(EMACS_COMP) --eval '(dgnushack-compile t)' 2>&1 | egrep -v "variable G|inhibit-point-motion-hooks|coding-system|temp-results|variable gnus|variable nn|scroll-in-place|deactivate-mark|filladapt-mode|byte-code-function-p|print-quoted|ps-right-header|ps-left-header|article-inhibit|print-escape|ssl-program-arguments|message-log-max"
 
 # The "clever" rule is unsafe, since redefined macros are loaded from
 # .elc files, and not the .el file.
-clever some:
+clever some: gnus-load.elc
        @if test -f $(srcdir)/gnus.elc; then \
          echo \
            "checking for whether the all elc files should be recompiled..."; \
@@ -47,8 +49,7 @@ clever some:
            echo " => maybe unnecessary"; \
          fi; \
        fi
-       W3DIR=$(W3DIR) lispdir=$(lispdir) \
-               srcdir=$(srcdir) $(EMACS) $(FLAGS) -f dgnushack-compile
+       $(EMACS_COMP) -f dgnushack-compile
 
 install: clever install-without-compiling
 
@@ -65,16 +66,14 @@ install-without-compiling:
 
 # Rule for XEmacs package.
 install-package-manifest:
-       srcdir=$(srcdir) $(EMACS) $(FLAGS) \
-               -f dgnushack-install-package-manifest \
+       $(EMACS_COMP) -f dgnushack-install-package-manifest \
                $(PACKAGEDIR) $(GNUS_PRODUCT_NAME)
 
 compose-package:
-       srcdir=$(srcdir) $(EMACS) $(FLAGS) -f dgnushack-make-autoloads
+       $(EMACS_COMP) -f dgnushack-make-autoloads
 
 remove-extra-files-in-package:
-       srcdir=$(srcdir) $(EMACS) $(FLAGS) \
-               -f dgnushack-remove-extra-files-in-package \
+       $(EMACS_COMP) -f dgnushack-remove-extra-files-in-package \
                $(PACKAGEDIR) $(GNUS_PRODUCT_NAME)
 #
 
@@ -95,17 +94,10 @@ separately:
 pot:
        xpot -drgnus -r`cat ./version` *.el > rgnus.pot
 
-gnus-load.el:
-       echo ";;; gnus-load.el --- automatically extracted custom dependencies" > gnus-load.el
-       echo ";;" >> gnus-load.el
-       echo ";;; Code:" >> gnus-load.el
-       echo >> gnus-load.el
-       $(EMACS)  $(FLAGS) -l ./dgnushack.el -l cus-edit.el *.el \
-               -f custom-make-dependencies >> gnus-load.el
-       echo >> gnus-load.el
-       echo "(provide 'gnus-load)" >> gnus-load.el
-       echo >> gnus-load.el
-       echo ";;; gnus-load.el ends here" >> gnus-load.el
+gnus-load.elc:
+       $(EMACS_COMP) -f dgnushack-make-cus-load $(srcdir)
+       $(EMACS_COMP) -f dgnushack-make-auto-load $(srcdir)
+       $(EMACS_COMP) -f dgnushack-make-load
 
 clean:
        rm -f *.orig *.rej *.elc *~
index 7d9457f..a5dccb9 100644 (file)
 
 (defvar srcdir (or (getenv "srcdir") "."))
 
-(defvar dgnushack-w3-dir (let ((w3dir (getenv "W3DIR")))
-                          (unless (zerop (length w3dir))
-                            (file-name-as-directory w3dir))))
-(when dgnushack-w3-dir
-  (push dgnushack-w3-dir load-path))
+(let ((urldir (getenv "URLDIR")))
+  (unless (zerop (length urldir))
+    (push (file-name-as-directory urldir) load-path)))
+
+(defvar dgnushack-w3-directory (let ((w3dir (getenv "W3DIR")))
+                                (unless (zerop (length w3dir))
+                                  (file-name-as-directory w3dir))))
+(when dgnushack-w3-directory
+  (push dgnushack-w3-directory load-path))
 
 ;; If we are building w3 in a different directory than the source
 ;; directory, we must read *.el from source directory and write *.elc
@@ -269,7 +273,7 @@ Try to re-configure with --with-addpath=FLIM_PATH and run make again.
                         nil))
                      ;; Maybe mis-configured Makefile is used (e.g.
                      ;; configured for FSFmacs but XEmacs is running).
-                     (let ((lp (delete dgnushack-w3-dir
+                     (let ((lp (delete dgnushack-w3-directory
                                        (copy-sequence load-path))))
                        (if (let ((load-path lp))
                              (condition-case nil
@@ -357,6 +361,93 @@ Modify to suit your needs."))
   (require 'gnus)
   (byte-recompile-directory "." 0))
 
+(defvar dgnushack-gnus-load-file (expand-file-name "gnus-load.el"))
+(defvar        dgnushack-cus-load-file (expand-file-name "cus-load.el"))
+
+(defun dgnushack-make-cus-load ()
+  (when (condition-case nil
+           (load "cus-dep")
+         (error nil))
+    (let ((cusload-base-file dgnushack-cus-load-file))
+      (if (fboundp 'custom-make-dependencies)
+         (custom-make-dependencies)
+       (Custom-make-dependencies)))))
+
+(defun dgnushack-make-auto-load ()
+  (require 'autoload)
+  (let ((generated-autoload-file dgnushack-gnus-load-file)
+       (make-backup-files nil)
+       (autoload-package-name "gnus"))
+    (if (featurep 'xemacs)
+       (if (file-exists-p generated-autoload-file)
+           (delete-file generated-autoload-file))
+      (with-temp-file generated-autoload-file
+       (insert ?\014)))
+    (if (featurep 'xemacs)
+       (let ((si:message (symbol-function 'message)))
+         (defun message (fmt &rest args)
+           (cond ((and (string-equal "Generating autoloads for %s..." fmt)
+                       (file-exists-p (file-name-nondirectory (car args))))
+                  (funcall si:message
+                           fmt (file-name-nondirectory (car args))))
+                 ((string-equal "No autoloads found in %s" fmt))
+                 ((string-equal "Generating autoloads for %s...done" fmt))
+                 (t (apply si:message fmt args))))
+         (unwind-protect
+             (batch-update-autoloads)
+           (fset 'message si:message)))
+      (batch-update-autoloads))))
+
+(defun dgnushack-make-load ()
+  (message (format "Generating %s..." dgnushack-gnus-load-file))
+  (with-temp-file dgnushack-gnus-load-file
+    (insert-file-contents dgnushack-cus-load-file)
+    (delete-file dgnushack-cus-load-file)
+    (goto-char (point-min))
+    (search-forward ";;; Code:")
+    (forward-line)
+    (delete-region (point-min) (point))
+    (insert "\
+;;; gnus-load.el --- automatically extracted custom dependencies and autoload
+;;
+;;; Code:
+")
+    (goto-char (point-max))
+    (if (search-backward "custom-versions-load-alist" nil t)
+       (forward-line -1)
+      (forward-line -1)
+      (while (eq (char-after) ?\;)
+       (forward-line -1))
+      (forward-line))
+    (delete-region (point) (point-max))
+    (insert "\n")
+    ;; smiley-* are duplicated. Remove them all.
+    (let ((point (point)))
+      (insert-file-contents dgnushack-gnus-load-file)
+      (goto-char point)
+      (while (search-forward "smiley-" nil t)
+       (beginning-of-line)
+       (if (looking-at "(autoload ")
+           (delete-region (point) (progn (forward-sexp) (point)))
+         (forward-line))))
+    ;;
+    (goto-char (point-max))
+    (when (search-backward "\n(provide " nil t)
+      (forward-line -1)
+      (delete-region (point) (point-max)))
+    (insert "\
+
+\(provide 'gnus-load)
+
+;;; Local Variables:
+;;; version-control: never
+;;; no-byte-compile: t
+;;; no-update-autoloads: t
+;;; End:
+;;; gnus-load.el ends here\n"))
+  (message (format "Compiling %s..." dgnushack-gnus-load-file))
+  (byte-compile-file dgnushack-gnus-load-file))
+
 \f
 (defconst dgnushack-info-file-regexp-en
   (let ((names '("gnus" "message" "emacs-mime"))
index bf9ca8b..2590b0c 100644 (file)
@@ -842,6 +842,13 @@ See the manual for details."
   :group 'gnus-article-treat
   :type gnus-article-treat-custom)
 
+(defcustom gnus-treat-leading-whitespace nil
+  "Remove leading whitespace in headers.
+Valid values are nil, t, `head', `last', an integer or a predicate.
+See the manual for details."
+  :group 'gnus-article-treat
+  :type gnus-article-treat-custom)
+
 (defcustom gnus-treat-hide-headers 'head
   "Hide headers.
 Valid values are nil, t, `head', `last', an integer or a predicate.
@@ -1163,6 +1170,7 @@ It is a string, such as \"PGP\". If nil, ask user."
     (gnus-treat-hide-citation gnus-article-hide-citation)
     (gnus-treat-hide-citation-maybe gnus-article-hide-citation-maybe)
     (gnus-treat-strip-list-identifiers gnus-article-hide-list-identifiers)
+    (gnus-treat-leading-whitespace gnus-article-remove-leading-whitespace)
     (gnus-treat-strip-pgp gnus-article-hide-pgp)
     (gnus-treat-strip-pem gnus-article-hide-pem)
     (gnus-treat-highlight-headers gnus-article-highlight-headers)
@@ -2604,6 +2612,17 @@ This format is defined by the `gnus-article-time-format' variable."
       (let ((buffer-read-only nil))
        (gnus-article-unhide-text (point-min) (point-max))))))
 
+(defun article-remove-leading-whitespace ()
+  "Remove excessive whitespace from all headers."
+  (interactive)
+  (save-excursion
+    (save-restriction
+      (let ((buffer-read-only nil))
+       (article-narrow-to-head)
+       (goto-char (point-min))
+       (while (re-search-forward "^[^ :]+: \\([ \t]+\\)" nil t)
+         (delete-region (match-beginning 1) (match-end 1)))))))
+
 (defun article-emphasize (&optional arg)
   "Emphasize text according to `gnus-emphasis-alist'."
   (interactive (gnus-article-hidden-arg))
@@ -3041,6 +3060,7 @@ If variable `gnus-use-long-file-name' is non-nil, it is
      article-fill-long-lines
      article-capitalize-sentences
      article-remove-cr
+     article-remove-leading-whitespace
      article-display-x-face
      article-de-quoted-unreadable
      article-de-base64-unreadable
@@ -3156,6 +3176,7 @@ If variable `gnus-use-long-file-name' is non-nil, it is
        ["Hide citation" gnus-article-hide-citation t]
        ["Treat overstrike" gnus-article-treat-overstrike t]
        ["Remove carriage return" gnus-article-remove-cr t]
+       ["Remove leading whitespace" gnus-article-remove-leading-whitespace t]
        ["Decode HZ" gnus-article-decode-HZ t]))
 
     ;; Note "Commands" menu is defined in gnus-sum.el for consistency
@@ -3656,8 +3677,10 @@ value of the variable `gnus-show-mime' is non-nil."
   (interactive)
   (gnus-article-check-buffer)
   (let* ((data (get-text-property (point) 'gnus-data))
-        (file (and data (mm-save-part data)))
-        param)
+        file param)
+    (if (mm-multiple-handles gnus-article-mime-handles)
+       (error "This function is not implemented."))
+    (setq file (and data (mm-save-part data)))
     (when file
       (with-current-buffer (mm-handle-buffer data)
        (erase-buffer)
@@ -3732,7 +3755,9 @@ value of the variable `gnus-show-mime' is non-nil."
   (gnus-article-check-buffer)
   (let ((data (get-text-property (point) 'gnus-data)))
     (when data
-      (push (setq data (copy-sequence data)) gnus-article-mime-handles)
+      (setq gnus-article-mime-handles
+           (mm-merge-handles
+            gnus-article-mime-handles (setq data (copy-sequence data))))
       (mm-interactively-view-part data))))
 
 (defun gnus-mime-view-part-as-type-internal ()
@@ -3764,7 +3789,8 @@ value of the variable `gnus-show-mime' is non-nil."
                            (mm-handle-description handle)
                            (mm-handle-cache handle)
                            (mm-handle-id handle)))
-      (push handle gnus-article-mime-handles)
+      (setq gnus-article-mime-handles
+           (mm-merge-handles gnus-article-mime-handles handle))
       (gnus-mm-display-part handle))))
 
 (defun gnus-mime-copy-part (&optional handle)
index 444ff9a..aff531b 100644 (file)
@@ -682,8 +682,13 @@ eh?")))
 (defvar gnus-custom-score-alist)
 
 (defun gnus-score-customize (file)
-  "Customize score file FILE."
+  "Customize score file FILE.
+When called interactively, FILE defaults to the current score file.
+This can be changed using the `\\[gnus-score-change-score-file]' command."
   (interactive (list gnus-current-score-file))
+  (unless file
+    (error (format "No score file for %s." 
+                  (gnus-group-decoded-name gnus-newsgroup-name))))
   (let ((scores (gnus-score-load file))
        (types (mapcar (lambda (entry)
                         `(group :format "%v%h\n"
index d048d1e..8e75ae4 100644 (file)
@@ -3660,11 +3660,12 @@ In fact, cleanup buffers except for group mode buffer.
 The hook gnus-suspend-gnus-hook is called before actually suspending."
   (interactive)
   (gnus-run-hooks 'gnus-suspend-gnus-hook)
+  (gnus-offer-save-summaries)
   ;; Kill Gnus buffers except for group mode buffer.
   (let ((group-buf (get-buffer gnus-group-buffer)))
     (mapcar (lambda (buf)
              (unless (member buf (list group-buf gnus-dribble-buffer))
-               (kill-buffer buf)))
+               (gnus-kill-buffer buf)))
            (gnus-buffers))
     (gnus-kill-gnus-frames)
     (when group-buf
diff --git a/lisp/gnus-load.el b/lisp/gnus-load.el
deleted file mode 100644 (file)
index 53784fb..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-;;; gnus-load.el --- automatically extracted custom dependencies
-;;
-;;; Code:
-
-(put 'nnmail 'custom-loads '("nnmail"))
-(put 'gnus-article-emphasis 'custom-loads '("gnus-art"))
-(put 'gnus-article-headers 'custom-loads '("gnus-sum" "gnus-art"))
-(put 'nnmail-procmail 'custom-loads '("nnmail"))
-(put 'gnus-score-kill 'custom-loads '("gnus-kill"))
-(put 'gnus-visual 'custom-loads '("smiley" "gnus" "gnus-picon" "gnus-art" "earcon"))
-(put 'gnus-score-expire 'custom-loads '("gnus-score" "gnus-kill"))
-(put 'gnus-summary-maneuvering 'custom-loads '("gnus-sum"))
-(put 'gnus-start 'custom-loads '("gnus" "gnus-util" "gnus-start" "gnus-int" "gnus-group"))
-(put 'gnus-extract-view 'custom-loads '("gnus-uu" "gnus-sum"))
-(put 'gnus-various 'custom-loads '("gnus-sum"))
-(put 'gnus-article-washing 'custom-loads '("gnus-art"))
-(put 'gnus-score-files 'custom-loads '("gnus-score"))
-(put 'message-news 'custom-loads '("message"))
-(put 'gnus-thread 'custom-loads '("gnus-sum"))
-(put 'languages 'custom-loads '("cus-edit"))
-(put 'development 'custom-loads '("cus-edit"))
-(put 'nnmail-various 'custom-loads '("nnmail"))
-(put 'extensions 'custom-loads '("wid-edit"))
-(put 'message-various 'custom-loads '("message"))
-(put 'gnus-summary-exit 'custom-loads '("gnus-sum"))
-(put 'news 'custom-loads '("message" "gnus"))
-(put 'gnus 'custom-loads '("nnmail" "gnus" "gnus-win" "gnus-uu" "gnus-eform" "gnus-dup" "gnus-demon" "gnus-cache" "gnus-async" "gnus-art"))
-(put 'gnus-summary-visual 'custom-loads '("gnus-sum"))
-(put 'gnus-group-listing 'custom-loads '("gnus-group"))
-(put 'gnus-score 'custom-loads '("gnus" "gnus-nocem"))
-(put 'gnus-group-select 'custom-loads '("gnus-sum"))
-(put 'message-buffers 'custom-loads '("message"))
-(put 'gnus-threading 'custom-loads '("gnus-sum"))
-(put 'gnus-score-decay 'custom-loads '("gnus-score"))
-(put 'help 'custom-loads '("cus-edit"))
-(put 'gnus-nocem 'custom-loads '("gnus-nocem"))
-(put 'gnus-cite 'custom-loads '("gnus-cite"))
-(put 'gnus-demon 'custom-loads '("gnus-demon"))
-(put 'gnus-message 'custom-loads '("message"))
-(put 'gnus-score-delta-default 'custom-loads '("gnus-sum" "gnus-score"))
-(put 'nnmail-duplicate 'custom-loads '("nnmail"))
-(put 'message-interface 'custom-loads '("message"))
-(put 'nnmail-files 'custom-loads '("nnmail"))
-(put 'gnus-edit-form 'custom-loads '("gnus-eform"))
-(put 'emacs 'custom-loads '("cus-edit"))
-(put 'gnus-summary-mail 'custom-loads '("gnus-sum"))
-(put 'gnus-topic 'custom-loads '("gnus-topic"))
-(put 'wp 'custom-loads '("cus-edit"))
-(put 'gnus-summary-choose 'custom-loads '("gnus-sum"))
-(put 'widget-browse 'custom-loads '("wid-browse"))
-(put 'external 'custom-loads '("cus-edit"))
-(put 'message-headers 'custom-loads '("message"))
-(put 'message-forwarding 'custom-loads '("message"))
-(put 'message-faces 'custom-loads '("message"))
-(put 'environment 'custom-loads '("cus-edit"))
-(put 'gnus-article-mime 'custom-loads '("gnus-sum" "gnus-art"))
-(put 'gnus-duplicate 'custom-loads '("gnus-dup"))
-(put 'nnmail-retrieve 'custom-loads '("nnmail"))
-(put 'widgets 'custom-loads '("wid-edit" "wid-browse"))
-(put 'earcon 'custom-loads '("earcon"))
-(put 'hypermedia 'custom-loads '("wid-edit"))
-(put 'gnus-group-levels 'custom-loads '("gnus-group"))
-(put 'gnus-summary-format 'custom-loads '("gnus-sum"))
-(put 'gnus-files 'custom-loads '("nnmail" "gnus"))
-(put 'gnus-windows 'custom-loads '("gnus-win"))
-(put 'gnus-article-buttons 'custom-loads '("gnus-art"))
-(put 'gnus-summary 'custom-loads '("gnus" "gnus-sum"))
-(put 'gnus-article-hiding 'custom-loads '("gnus-sum" "gnus-art"))
-(put 'gnus-group 'custom-loads '("gnus" "gnus-topic"))
-(put 'gnus-article-various 'custom-loads '("gnus-sum" "gnus-art"))
-(put 'gnus-summary-marks 'custom-loads '("gnus-sum"))
-(put 'gnus-article-saving 'custom-loads '("gnus-art"))
-(put 'nnmail-expire 'custom-loads '("nnmail"))
-(put 'message-mail 'custom-loads '("message"))
-(put 'faces 'custom-loads '("wid-edit" "cus-edit" "message" "gnus"))
-(put 'gnus-summary-various 'custom-loads '("gnus-sum"))
-(put 'applications 'custom-loads '("cus-edit"))
-(put 'gnus-extract-archive 'custom-loads '("gnus-uu"))
-(put 'message 'custom-loads '("message"))
-(put 'message-sending 'custom-loads '("message"))
-(put 'editing 'custom-loads '("cus-edit"))
-(put 'gnus-score-adapt 'custom-loads '("gnus-score"))
-(put 'message-insertion 'custom-loads '("message"))
-(put 'gnus-extract-post 'custom-loads '("gnus-uu"))
-(put 'mail 'custom-loads '("message" "gnus"))
-(put 'gnus-summary-sort 'custom-loads '("gnus-sum"))
-(put 'customize 'custom-loads '("wid-edit" "custom" "cus-face" "cus-edit"))
-(put 'nnmail-split 'custom-loads '("nnmail"))
-(put 'gnus-asynchronous 'custom-loads '("gnus-async"))
-(put 'gnus-article-highlight 'custom-loads '("gnus-art"))
-(put 'gnus-extract 'custom-loads '("gnus-uu"))
-(put 'gnus-article 'custom-loads '("gnus-cite" "gnus-art"))
-(put 'gnus-group-foreign 'custom-loads '("gnus-group"))
-(put 'programming 'custom-loads '("cus-edit"))
-(put 'nnmail-prepare 'custom-loads '("nnmail"))
-(put 'picons 'custom-loads '("gnus-picon"))
-(put 'gnus-article-signature 'custom-loads '("gnus-art"))
-(put 'gnus-group-various 'custom-loads '("gnus-group"))
-
-(provide 'gnus-load)
-
-;;; gnus-load.el ends here
index c8204ce..00ea145 100644 (file)
@@ -1,5 +1,5 @@
 ;;; gnus-start.el --- startup functions for Gnus
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
 ;;        Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -249,7 +249,7 @@ thus making them effectively non-existent."
   :type 'regexp)
 
 (defcustom gnus-subscribe-newsgroup-method 'gnus-subscribe-zombies
-  "*Function called with a group name when new group is detected.
+  "*Function(s) called with a group name when new group is detected.
 A few pre-made functions are supplied: `gnus-subscribe-randomly'
 inserts new groups at the beginning of the list of groups;
 `gnus-subscribe-alphabetically' inserts new groups in strict
@@ -267,11 +267,12 @@ claim them."
                (function-item gnus-subscribe-killed)
                (function-item gnus-subscribe-zombies)
                (function-item gnus-subscribe-topics)
-               function))
+               function
+               (repeat function)))
 
 (defcustom gnus-subscribe-options-newsgroup-method
   'gnus-subscribe-alphabetically
-  "*This function is called to subscribe newsgroups mentioned on \"options -n\" lines.
+  "*Function(s) called to subscribe newsgroups mentioned on \"options -n\" lines.
 If, for instance, you want to subscribe to all newsgroups in the
 \"no\" and \"alt\" hierarchies, you'd put the following in your
 .newsrc file:
@@ -288,7 +289,8 @@ the subscription method in this variable."
                (function-item gnus-subscribe-killed)
                (function-item gnus-subscribe-zombies)
                (function-item gnus-subscribe-topics)
-               function))
+               function
+               (repeat function)))
 
 (defcustom gnus-subscribe-hierarchical-interactive nil
   "*If non-nil, Gnus will offer to subscribe hierarchically.
@@ -536,22 +538,22 @@ Can be used to turn version control on or off."
   ;; Basic ideas by mike-w@cs.aukuni.ac.nz (Mike Williams)
   (save-excursion
     (set-buffer (nnheader-find-file-noselect gnus-current-startup-file))
-    (let ((groupkey newgroup)
-         before)
-      (while (and (not before) groupkey)
-       (goto-char (point-min))
-       (let ((groupkey-re
-              (concat "^\\(" (regexp-quote groupkey) ".*\\)[!:]")))
-         (while (and (re-search-forward groupkey-re nil t)
-                     (progn
-                       (setq before (match-string 1))
-                       (string< before newgroup)))))
-       ;; Remove tail of newsgroup name (eg. a.b.c -> a.b)
-       (setq groupkey
-             (when (string-match "^\\(.*\\)\\.[^.]+$" groupkey)
-               (substring groupkey (match-beginning 1) (match-end 1)))))
-      (gnus-subscribe-newsgroup newgroup before))
-    (kill-buffer (current-buffer))))
+    (prog1
+       (let ((groupkey newgroup) before)
+         (while (and (not before) groupkey)
+           (goto-char (point-min))
+           (let ((groupkey-re
+                  (concat "^\\(" (regexp-quote groupkey) ".*\\)[!:]")))
+             (while (and (re-search-forward groupkey-re nil t)
+                         (progn
+                           (setq before (match-string 1))
+                           (string< before newgroup)))))
+           ;; Remove tail of newsgroup name (eg. a.b.c -> a.b)
+           (setq groupkey
+                 (when (string-match "^\\(.*\\)\\.[^.]+$" groupkey)
+                   (substring groupkey (match-beginning 1) (match-end 1)))))
+         (gnus-subscribe-newsgroup newgroup before))
+      (kill-buffer (current-buffer)))))
 
 (defun gnus-subscribe-interactively (group)
   "Subscribe the new GROUP interactively.
@@ -580,7 +582,8 @@ the first newsgroup."
      newsgroup gnus-level-default-subscribed
      gnus-level-killed (gnus-gethash (or next "dummy.group")
                                     gnus-newsrc-hashtb))
-    (gnus-message 5 "Subscribe newsgroup: %s" newsgroup)))
+    (gnus-message 5 "Subscribe newsgroup: %s" newsgroup)
+    t))
 
 (defun gnus-read-active-file-p ()
   "Say whether the active file has been read from `gnus-select-method'."
@@ -968,6 +971,21 @@ If LEVEL is non-nil, the news will be set up at level LEVEL."
               (gnus-server-opened gnus-select-method))
       (gnus-check-bogus-newsgroups))))
 
+(defun gnus-call-subscribe-functions (method group)
+  "Call METHOD to subscribe GROUP.
+If no function returns `non-nil', call `gnus-subscribe-zombies'."
+  (unless (cond
+          ((gnus-functionp method)
+           (funcall method group))
+          ((listp method)
+           (catch 'found
+             (dolist (func method)
+               (if (funcall func group)
+                   (throw 'found t)))
+             nil))
+          (t nil))
+    (gnus-subscribe-zombies group)))
+
 (defun gnus-find-new-newsgroups (&optional arg)
   "Search for new newsgroups and add them.
 Each new newsgroup will be treated with `gnus-subscribe-newsgroup-method'.
@@ -1020,7 +1038,8 @@ for new groups, and subscribe the new groups as zombies."
                  ((eq do-sub 'subscribe)
                   (setq groups (1+ groups))
                   (gnus-sethash group group gnus-killed-hashtb)
-                  (funcall gnus-subscribe-options-newsgroup-method group))
+                  (gnus-call-subscribe-functions
+                   gnus-subscribe-options-newsgroup-method group))
                  ((eq do-sub 'ignore)
                   nil)
                  (t
@@ -1028,7 +1047,8 @@ for new groups, and subscribe the new groups as zombies."
                   (gnus-sethash group group gnus-killed-hashtb)
                   (if gnus-subscribe-hierarchical-interactive
                       (push group new-newsgroups)
-                    (funcall gnus-subscribe-newsgroup-method group)))))))
+                    (gnus-call-subscribe-functions
+                     gnus-subscribe-newsgroup-method group)))))))
           gnus-active-hashtb)
          (when new-newsgroups
            (gnus-subscribe-hierarchical-interactive new-newsgroups))
@@ -1113,7 +1133,8 @@ for new groups, and subscribe the new groups as zombies."
                ((eq do-sub 'subscribe)
                 (incf groups)
                 (gnus-sethash group group gnus-killed-hashtb)
-                (funcall gnus-subscribe-options-newsgroup-method group))
+                (gnus-call-subscribe-functions
+                 gnus-subscribe-options-newsgroup-method group))
                ((eq do-sub 'ignore)
                 nil)
                (t
@@ -1121,7 +1142,8 @@ for new groups, and subscribe the new groups as zombies."
                 (gnus-sethash group group gnus-killed-hashtb)
                 (if gnus-subscribe-hierarchical-interactive
                     (push group new-newsgroups)
-                  (funcall gnus-subscribe-newsgroup-method group)))))))
+                  (gnus-call-subscribe-functions
+                   gnus-subscribe-newsgroup-method group)))))))
         hashtb))
       (when new-newsgroups
        (gnus-subscribe-hierarchical-interactive new-newsgroups)))
@@ -1163,7 +1185,8 @@ for new groups, and subscribe the new groups as zombies."
               (cond
                ((eq do-sub 'subscribe)
                 (gnus-sethash group group gnus-killed-hashtb)
-                (funcall gnus-subscribe-options-newsgroup-method group))
+                (gnus-call-subscribe-functions
+                 gnus-subscribe-options-newsgroup-method group))
                ((eq do-sub 'ignore)
                 nil)
                (t
index 5f32936..40335d0 100644 (file)
@@ -1629,7 +1629,7 @@ increase the score of each group you read."
     "t" gnus-article-toggle-headers
     "v" gnus-summary-verbose-headers
     "m" gnus-summary-toggle-mime
-    "H" gnus-article-strip-headers-in-body
+    "a" gnus-article-strip-headers-in-body ;; mnemonic: wash archive
     "p" gnus-article-verify-x-pgp-sig
     "d" gnus-article-treat-dumbquotes
     "s" gnus-smiley-display)
@@ -1670,7 +1670,8 @@ increase the score of each group you read."
     "a" gnus-article-strip-blank-lines
     "A" gnus-article-strip-all-blank-lines
     "s" gnus-article-strip-leading-space
-    "e" gnus-article-strip-trailing-space)
+    "e" gnus-article-strip-trailing-space
+    "w" gnus-article-remove-leading-whitespace)
 
   (gnus-define-keys (gnus-summary-help-map "H" gnus-summary-mode-map)
     "v" gnus-version
@@ -1783,7 +1784,9 @@ increase the score of each group you read."
                ["All of the above" gnus-article-strip-blank-lines t]
                ["All" gnus-article-strip-all-blank-lines t]
                ["Leading space" gnus-article-strip-leading-space t]
-              ["Trailing space" gnus-article-strip-trailing-space t])
+              ["Trailing space" gnus-article-strip-trailing-space t]
+               ["Leading space in headers" 
+               gnus-article-remove-leading-whitespace t])
               ["Overstrike" gnus-article-treat-overstrike t]
               ["Dumb quotes" gnus-article-treat-dumbquotes t]
               ["Emphasis" gnus-article-emphasize t]
index 62ed815..e9e56bf 100644 (file)
@@ -1664,7 +1664,8 @@ If REVERSE, reverse the sorting order."
          (gnus-subscribe-alphabetically newsgroup)
          ;; Add the group to the topic.
          (nconc (assoc topic gnus-topic-alist) (list newsgroup))
-         (throw 'end t))))))
+         (throw 'end t)))
+      nil)))
 
 (provide 'gnus-topic)
 
index cb91cff..be91ca8 100644 (file)
@@ -31,7 +31,7 @@
 (require 'product)
 (provide 'gnus-vers)
 
-(defconst gnus-revision-number "05"
+(defconst gnus-revision-number "06"
   "Revision number for this version of gnus.")
 
 ;; Product information of this gnus.
index fe50694..5ad43a9 100644 (file)
@@ -1111,6 +1111,19 @@ If RECURSIVE, search recursively."
      (t nil))
     parts))
 
+(defun mm-multiple-handles (handles)
+   (and (listp (car handles)) 
+       (> (length handles) 1)))
+
+(defun mm-merge-handles (handles1 handles2) 
+  (append
+   (if (listp (car handles1)) 
+       handles1
+     (list handles1))
+   (if (listp (car handles2))
+       handles2
+     (list handles2))))
+
 (provide 'mm-decode)
 
 ;;; mm-decode.el ends here
index 5e58a12..ec5c9b1 100644 (file)
@@ -1,5 +1,5 @@
 ;;; mm-extern.el --- showing message/external-body
-;; Copyright (C) 2000 Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2001 Free Software Foundation, Inc.
 
 ;; Author: Shenghuo Zhu <zsh@cs.rochester.edu>
 ;; Keywords: message external-body
@@ -25,7 +25,7 @@
 
 ;;; Code:
 
-(eval-when-compile 
+(eval-when-compile
   (require 'cl))
 
 (require 'mm-util)
 ;;;###autoload
 (defun mm-inline-external-body (handle &optional no-display)
   "Show the external-body part of HANDLE.
-This function replaces the buffer of HANDLE with a buffer contains 
+This function replaces the buffer of HANDLE with a buffer contains
 the entire message.
 If NO-DISPLAY is nil, display it. Otherwise, do nothing after replacing."
-  (let* ((access-type (cdr (assq 'access-type 
+  (let* ((access-type (cdr (assq 'access-type
                                 (cdr (mm-handle-type handle)))))
-        (func (cdr (assq (intern 
-                          (downcase 
+        (func (cdr (assq (intern
+                          (downcase
                            (or access-type
                                (error "Couldn't find access type."))))
                          mm-extern-function-alist)))
@@ -144,10 +144,8 @@ If NO-DISPLAY is nil, display it. Otherwise, do nothing after replacing."
            (unless good
              (mm-destroy-parts handles))))
        (mm-handle-set-cache handle handles))
-      (if (listp (car gnus-article-mime-handles))
-         (push handles gnus-article-mime-handles)
-       (setq gnus-article-mime-handles
-             (list handles gnus-article-mime-handles))))
+      (setq gnus-article-mime-handles
+           (mm-merge-handles gnus-article-mime-handles handles)))
     (unless no-display
       (save-excursion
        (save-restriction
index 38986c4..d05283c 100644 (file)
@@ -1,5 +1,5 @@
 ;;; mm-partial.el --- showing message/partial
-;; Copyright (C) 2000 Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2001 Free Software Foundation, Inc.
 
 ;; Author: Shenghuo Zhu <zsh@cs.rochester.edu>
 ;; Keywords: message partial
@@ -25,7 +25,7 @@
 
 ;;; Code:
 
-(eval-when-compile 
+(eval-when-compile
   (require 'cl))
 
 (require 'gnus-sum)
     (while (setq header (pop headers))
       (unless (eq (aref header 0) art)
        (mm-with-unibyte-buffer
-         (gnus-request-article-this-buffer (aref header 0) 
+         (gnus-request-article-this-buffer (aref header 0)
                                            gnus-newsgroup-name)
          (when (search-forward id nil t)
            (let ((nhandles (mm-dissect-buffer)) nid)
              (if (consp (car nhandles))
                  (mm-destroy-parts nhandles)
-               (setq nid (cdr (assq 'id 
+               (setq nid (cdr (assq 'id
                                     (cdr (mm-handle-type nhandles)))))
                (if (not (equal id nid))
                    (mm-destroy-parts nhandles)
 ;;;###autoload
 (defun mm-inline-partial (handle &optional no-display)
   "Show the partial part of HANDLE.
-This function replaces the buffer of HANDLE with a buffer contains 
+This function replaces the buffer of HANDLE with a buffer contains
 the entire message.
 If NO-DISPLAY is nil, display it. Otherwise, do nothing after replacing."
-  (let ((id (cdr (assq 'id (cdr (mm-handle-type handle))))) 
+  (let ((id (cdr (assq 'id (cdr (mm-handle-type handle)))))
        phandles
        (b (point)) (n 1) total
        phandle nn ntotal
@@ -68,37 +68,34 @@ If NO-DISPLAY is nil, display it. Otherwise, do nothing after replacing."
       (unless id
        (error "Can not find message/partial id."))
       (setq phandles
-           (sort (cons handle 
+           (sort (cons handle
                        (mm-partial-find-parts
-                        id 
+                        id
                         (save-excursion
                           (set-buffer gnus-summary-buffer)
                           (gnus-summary-article-number))))
                  #'(lambda (a b)
-                     (let ((anumber (string-to-number 
-                                     (cdr (assq 'number 
+                     (let ((anumber (string-to-number
+                                     (cdr (assq 'number
                                                 (cdr (mm-handle-type a))))))
-                           (bnumber (string-to-number 
-                                     (cdr (assq 'number 
+                           (bnumber (string-to-number
+                                     (cdr (assq 'number
                                                 (cdr (mm-handle-type b)))))))
                        (< anumber bnumber)))))
       (setq gnus-article-mime-handles
-           (append (if (listp (car gnus-article-mime-handles))
-                       gnus-article-mime-handles
-                     (list gnus-article-mime-handles))
-                   phandles))
+           (mm-merge-handles gnus-article-mime-handles phandles))
       (save-excursion
        (set-buffer (generate-new-buffer " *mm*"))
        (while (setq phandle (pop phandles))
-         (setq nn (string-to-number 
-                   (cdr (assq 'number 
+         (setq nn (string-to-number
+                   (cdr (assq 'number
                               (cdr (mm-handle-type phandle))))))
-         (setq ntotal (string-to-number 
-                       (cdr (assq 'total 
+         (setq ntotal (string-to-number
+                       (cdr (assq 'total
                                   (cdr (mm-handle-type phandle))))))
          (if ntotal
              (if total
-                 (unless (eq total ntotal) 
+                 (unless (eq total ntotal)
                  (error "The numbers of total are different."))
                (setq total ntotal)))
          (unless (< nn n)
@@ -118,7 +115,7 @@ If NO-DISPLAY is nil, display it. Otherwise, do nothing after replacing."
            (error "Missing part %d" n))
        (kill-buffer (mm-handle-buffer handle))
        (goto-char (point-min))
-       (let ((point (if (search-forward "\n\n" nil t) 
+       (let ((point (if (search-forward "\n\n" nil t)
                         (1- (point))
                       (point-max))))
          (goto-char (point-min))
@@ -138,11 +135,7 @@ If NO-DISPLAY is nil, display it. Otherwise, do nothing after replacing."
          (when handles
            ;; It is in article buffer.
            (setq gnus-article-mime-handles
-                 (nconc (if (listp (car gnus-article-mime-handles))
-                          gnus-article-mime-handles
-                          (list gnus-article-mime-handles))
-                        (if (listp (car handles)) 
-                            handles (list handles)))))
+                 (mm-merge-handles gnus-article-mime-handles handles)))
          (mm-handle-set-undisplayer
           handle
           `(lambda ()
index 11026f9..639c32e 100644 (file)
       (setq handles gnus-article-mime-handles))
     (when handles
       (setq gnus-article-mime-handles
-           (nconc gnus-article-mime-handles
-                  (if (listp (car handles))
-                      handles (list handles))))))
+           (mm-merge-handles gnus-article-mime-handles handles))))
   (fundamental-mode)
   (goto-char (point-min)))
 
        (insert "----------\n\n")
        (when handles
          (setq gnus-article-mime-handles
-               (nconc gnus-article-mime-handles
-                      (if (listp (car handles))
-                          handles (list handles)))))
+               (mm-merge-handles gnus-article-mime-handles handles)))
        (mm-handle-set-undisplayer
         handle
         `(lambda ()
index c435208..d816b9b 100644 (file)
@@ -1,3 +1,12 @@
+2001-02-11 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+       * gnus.texi (Choosing Commands): Move `G j' here.
+
+2001-02-09 15:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+       * gnus.texi (Pterodactyl Gnus): Added.
+       (Newest Features): Removed. Suggested by RMS.
+
 2001-02-08  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Group Parameters): Mention `G c' in addition to `G p'.
index 9be9372..5657d39 100644 (file)
@@ -898,14 +898,15 @@ History
 * Gnus Development::    Gnus \e$B$,3+H/$5$l$F$$$kJ}K!\e(B
 * Contributors::        \e$BBgNL$N?M!9\e(B
 * New Features::        Gnus \e$B$N?7$7$$;v$K4X$9$k<j$,$+$j\e(B
-* Newest Features::     \e$B$"$^$j$K$b?7$7$$$?$a$K$^$@=q$+$l$F$$$J$$$b$N\e(B
 
 New Features
 
 * ding Gnus::      \e$B:G=i$N?7$7$$\e(B Gnus \e$B$G$"$k\e(B Gnus 5.0/5.1 \e$B$N?7$7$$;v\e(B
-* September Gnus:: \e$B8x<0$K\e(B GNus 5.2/5.3 \e$B$H$7$FCN$i$l$F$$$k$b$N\e(B
+* September Gnus:: \e$B8x<0$K\e(B Gnus 5.2/5.3 \e$B$H$7$FCN$i$l$F$$$k$b$N\e(B
 * Red Gnus::       \e$B;0HVL\$N:G>e$N$b$N\e(B---Gnus 5.4/5.5
 * Quassia Gnus::   2 \e$B$+$1$k\e(B 2 \e$B$O\e(B 4\e$B!"$b$7$/$O\e(B Gnus 5.6/5.7
+* Pterodactyl Gnus::   \e$B8^HVL\!"\e(BP \e$B$G;O$^$k!"$b$7$/$O\e(B Gnus 5.8/5.9 \e$B$H$7$F\e(B
+                       \e$BCN$i$l$F$$$k$b$N\e(B
 
 Customization
 
@@ -4263,14 +4264,6 @@ Gnus \e$B%P!<%8%g%s!#\e(B
 @findex gnus-summary-prev-unread-subject
 \e$B35N,9T$NA0$NL$FI5-;v$K0\$k\e(B (@code{gnus-summary-prev-unread-subject})\e$B!#\e(B
 
-@item G j
-@item j
-@kindex j (\e$B35N,\e(B)
-@kindex G j (\e$B35N,\e(B)
-@findex gnus-summary-goto-article
-\e$B5-;vHV9f$+\e(B @code{Message-ID} \e$B$r?R$M!"$=$l$+$i$=$N5-;v$K9T$/!#\e(B
-(@code{gnus-summary-goto-article})\e$B!#\e(B
-
 @item G g
 @kindex G g (\e$B35N,\e(B)
 @findex gnus-summary-goto-subject
@@ -4419,6 +4412,14 @@ Summary Buffer} \e$B$r;2>H$7$F2<$5$$!#\e(B
 \e$B;v$rMzNr$+$iA*$S=P$9$3$H$,$G$-$kE@$G$9!#2?$i$+$N$3$l$K4X78$7$?$3$H\e(B
 \e$B$O\e(B (\e$B$b$7$3$l$i$NL?Na$r$?$/$5$s;H$&$N$G$"$l$P\e(B)\e$B!"\e(B
 @pxref{Article Backlog} \e$B$r;2>H$7$F$/$@$5$$!#\e(B
+
+@item G j
+@item j
+@kindex j (\e$B35N,\e(B)
+@kindex G j (\e$B35N,\e(B)
+@findex gnus-summary-goto-article
+\e$B5-;vHV9f$+\e(B @code{Message-ID} \e$B$r?R$M!"$=$l$+$i$=$N5-;v$K9T$/!#\e(B
+(@code{gnus-summary-goto-article})\e$B!#\e(B
 @end table
 
 @node Choosing Variables
@@ -11007,12 +11008,12 @@ UNDELETED} \e$B$O$*$=$i$/$?$$$F$$$N?M$K$O:GNI$NA*Br$G$7$g$&$,!"$H$-$I\e(B
 \e$B$-\e(B @sc{imap} \e$B%/%i%$%"%s%H$G%a!<%k%\%C%/%9$r=|$-!"$$$/$D$+$N5-;v$K4{\e(B
 \e$BFI\e(B (\e$B$b$7$/$O!"\e(BSEEN) \e$B$N0u$rIU$1$k$J$i!"\e(B@samp{nil} \e$B$K@_Dj$7$?$$$+$b$7$l$^\e(B
 \e$B$;$s!#$=$&$9$l$P!"%a!<%k%\%C%/%9$NA4$F$N5-;v$O0u$NG!2?$K4X$o$i$:<hF@$5$l\e(B
-\e$B$^$9!#=R8l$N40A4$J0lMw$O!"\e(BRFC2060 \eN'6.4.4 \e$B$rFI$s$G$/$@$5$$!#\e(B
+\e$B$^$9!#=R8l$N40A4$J0lMw$O!"\e(BRFC2060 \e.A\eN'6.4.4 \e$B$rFI$s$G$/$@$5$$!#\e(B
 
 @item :fetchflag
 \e$B%5!<%P!<$G!"<hF@$7$?5-;v$K0u$rIU$1$kJ}K!!#=i4|CM$N\e(B @samp{\Deleted} \e$B$O$=\e(B
 \e$B$l$i$K>C5n$N0u$rIU$1$^$9$,!"B>$K\e(B @samp{\Seen} \e$B$G$OC1$K4{FI$N0u$rIU$1$^$9!#\e(B
-\e$B$3$l$i$O:G$b$"$j$=$&$JFs$D$NA*Br$G$9$,!"B>$N0u$b\e(B RFC2060 \eN'2.3.2 \e$B$GDj5A$5\e(B
+\e$B$3$l$i$O:G$b$"$j$=$&$JFs$D$NA*Br$G$9$,!"B>$N0u$b\e(B RFC2060 \e.A\eN'2.3.2 \e$B$GDj5A$5\e(B
 \e$B$l$F$$$^$9!#\e(B
 
 @item :dontexpunge
@@ -16335,7 +16336,7 @@ bbbd \e$B%5!<%P!<$,<B9T$5$l$F$$$k%[%9%H$N%]!<%H$G$9!#=i4|CM$O\e(B 9000 \e$B$G$9!#\e(
 
 @item !
 @itemx not
-@itemx \eN,
+@itemx \e.A\eN,
 \e$B$3$NO@M}:nMQ;R$OC10l$N0z?t$N$_$r$H$j$^$9!#$=$l$O$=$N0z?t$NCM$NO@M}H]Dj$r\e(B
 \e$BJV$7$^$9!#\e(B
 
@@ -18365,7 +18366,6 @@ but at the common table.@*
 * Gnus Development::    Gnus \e$B$,3+H/$5$l$F$$$kJ}K!\e(B
 * Contributors::        \e$BBgNL$N?M!9\e(B
 * New Features::        Gnus \e$B$N?7$7$$;v$K4X$9$k<j$,$+$j\e(B
-* Newest Features::     \e$B$"$^$j$K$b?7$7$$$?$a$K$^$@=q$+$l$F$$$J$$$b$N\e(B
 @end menu
 
 @node Gnus Versions
@@ -18716,7 +18716,7 @@ Kevin Davidson---@dfn{ding} \e$B$NL>A0$r;W$$IU$-$^$7$?!#$G$9$+$i!"H`$r@U$a$F\e(B
 \e$B2<$5$$!#\e(B
 
 @item
-Fran\eNgois Pinard---\e$BB?$/$N!"B?$/$N6=L#?<$/40A4$J%P%0%l%]!<%H$H\e(B autoconf \e$B$N\e(B
+Fran\e.A\eNgois Pinard---\e$BB?$/$N!"B?$/$N6=L#?<$/40A4$J%P%0%l%]!<%H$H\e(B autoconf \e$B$N\e(B
 \e$B%5%]!<%H!#\e(B
 
 @end itemize
@@ -18729,7 +18729,7 @@ Borges \e$B$K$h$C$F9;@5$5$l!"\e(BJost Krieger \e$B$K$h$C$F0lItJ,$r9;@5$5$l$^$7$?!#\e
 Christopher Davis,
 Andrew Eskilsson,
 Kai Grossjohann,
-David K\eNegedal,
+David K\e.A\eNegedal,
 Richard Pieri,
 Fabrice Popineau,
 Daniel Quinlan,
@@ -18815,7 +18815,7 @@ Gunnar Horrigmo,
 Richard Hoskins,
 Brad Howes,
 Miguel de Icaza,
-Fran\eNgois Felix Ingrand,
+Fran\e.A\eNgois Felix Ingrand,
 Tatsuya Ichikawa, @c ?
 Ishikawa Ichiro, @c Ishikawa
 Lee Iverson,
@@ -18951,9 +18951,11 @@ Lloyd Zusman.
 
 @menu
 * ding Gnus::      \e$B:G=i$N?7$7$$\e(B Gnus \e$B$G$"$k\e(B Gnus 5.0/5.1 \e$B$N?7$7$$;v\e(B
-* September Gnus:: \e$B8x<0$K\e(B GNus 5.2/5.3 \e$B$H$7$FCN$i$l$F$$$k$b$N\e(B
+* September Gnus:: \e$B8x<0$K\e(B Gnus 5.2/5.3 \e$B$H$7$FCN$i$l$F$$$k$b$N\e(B
 * Red Gnus::       3 \e$BHVL\$N:G>e$N$b$N\e(B---Gnus 5.4/5.5
 * Quassia Gnus::   2 \e$B$+$1$k\e(B 2 \e$B$O\e(B 4\e$B!"$b$7$/$O\e(B Gnus 5.6/5.7
+* Pterodactyl Gnus::   \e$B8^HVL\!"\e(BP \e$B$G;O$^$k!"$b$7$/$O\e(B Gnus 5.8/5.9 \e$B$H$7$F\e(B
+                       \e$BCN$i$l$F$$$k$b$N\e(B
 @end menu
 
 \e$B$3$N%j%9%H$O!"$b$A$m$s!"\e(B@emph{\e$B$?$$$F$$$N\e(B} \e$B=EMW$J?7$7$$5!G=$K4X$9\e(B
@@ -19601,1295 +19603,64 @@ M******** sm*rtq**t*s \e$B$rE,@Z$JJ8>O$KK]0F$9$k?7$7$$L?Na$,$"$j$^$9\e(B---
 
 @end itemize
 
-@node Newest Features
-@subsection \e$B:G?7$N5!G=\e(B
-@cindex todo
-
-@dfn{todo list} \e$B$H$7$F$bCN$i$l$F$$$^$9!#<!$N@iG/:W$^$G$K$O3N<B$K<BAu$5$l\e(B
-\e$B$k$G$7$g$&!#\e(B
-
-\e$B62$l$F2<$5$$!#Hs>o$K62$l$F2<$5$$!#\e(B
-
-(\e$B$3$N0lMw$K8=$o$l$F$$$k5!G=$OI,$:$7$b;d$,$=$l$r<B:]$K<BAu$7$h$&$H7h$a$?\e(B
-\e$B$H$$$&$o$1$G$O$"$j$^$;$s!#$=$l$O;d$,$*$b$7$m$=$&$@$J!"$H;W$C$?$H$$$&$@$1\e(B
-\e$B$G$9!#\e(B)
-
-(\e$B$O$$!"$3$l$O<B:]$N!":GM%@h$+$i$=$N<!$X$N\e(B todo list \e$B$G$9!#\e(B)
+@node Pterodactyl Gnus
+@subsubsection Pterodactyl Gnus
 
+Gnus 5.8 \e$B$N?7$7$$5!G=\e(B:
+  
 @itemize @bullet
 
-@item
- I would like the zombie-page to contain an URL to the source of the
-latest version of gnus or some explanation on where to find it.
-
-@item
- A way to continue editing the latest Message composition.
-
-@item
-@uref{http://www.sonicnet.com/feature/ari3/}
-
-@item
- facep is not declared.
+@item \e$B%a!<%k$r<h$j9~$`5!G=$,JQ$o$j$^$7$?!#$?$/$5$s$N>\:Y$K$D$$$F$O%^%K%e\e(B
+\e$B%"%k$r8+$F2<$5$$!#FC$K!"\e(Bprocmail \e$B$G<h$j9~$`$?$a$N$9$Y$F$NJQ?t$,L5$/$J$C\e(B
+\e$B$F$$$^$9!#\e(B
 
-@item
- Include a section in the manual on why the number of articles
-isn't the same in the group buffer and on the SPC prompt.
+\e$B$3$N$h$&$J\e(B procmail \e$B$N;H$$J}$O\e(B
 
-@item
- Interacting with rmail fcc isn't easy.
+@lisp
+(setq nnmail-use-procmail t)
+(setq nnmail-spool-file 'procmail)
+(setq nnmail-procmail-directory "~/mail/incoming/")
+(setq nnmail-procmail-suffix "\\.in")
+@end lisp
 
-@item
-@example
- Hypermail:
-<URL:http://www.falch.no/people/pepper/DSSSL-Lite/archives/>
-<URL:http://www.eit.com/software/hypermail/hypermail.html>
-<URL:http://homer.ncm.com/>
-<URL:http://www.yahoo.com/Computers_and_Internet/Internet/World_Wide_Web/HTML_Converters/>
-http://www.uwsg.indiana.edu/hypermail/linux/kernel/9610/index.html
-<URL:http://union.ncsa.uiuc.edu/HyperNews/get/www/html/converters.html>
-http://www.miranova.com/gnus-list/
+\e$B8=:_$O<!$N$h$&$KJQ$o$C$F$$$^$9!#\e(B
 
-@end example
+@lisp
+(setq mail-sources
+      '((directory :path "~/mail/incoming/"
+                  :suffix ".in")))
+@end lisp
 
-@item
-@samp{^-- } is made into - in LaTeX.
+\e$B$b$C$H>\$7$$>pJs$O\e(B info \e$B$N\e(B Select Methods -> Getting Mail -> Mail
+Sources \e$B$GF@$k$3$H$,$G$-$^$9!#\e(B
 
-@item
- gnus-kill is much slower than it was in GNUS 4.1.3.
+@item Gnus \e$B$O\e(B MIME \e$B$KBP1~$7$?%j!<%@!<$K$J$j$^$7$?!#$3$l$O\e(B Gnus \e$B$NB?$/$N\e(B
+\e$BItJ,$K1F6A$7$F$$$F!"$?$/$5$s$N?7$7$$%3%^%s%I$,DI2C$5$l$F$$$^$9!#>\:Y$O%^\e(B
+\e$B%K%e%"%k$r;2>H$7$F2<$5$$!#\e(B(\e$BLuCm\e(B: T-gnus \e$B$O\e(B SEMI \e$B$*$h$S\e(B FLIM \e$B$N=t5!G=$K4p\e(B
+\e$B$E$$$F$$$^$9!#\e(B)
 
-@item
- when expunging articles on low score, the sparse nodes keep hanging on?
-@item
- starting the first time seems to hang Gnus on some systems.  Does
-NEWGROUPS answer too fast?
-@item
- nndir doesn't read gzipped files.
-@item
- FAQ doesn't have an up node?
-@item
- when moving mail from a procmail spool to the crash-box,
-the crash-box is only appropriate to one specific group.
-@item
- `t' `t' makes X-Faces disappear.
-@item
- nnmh-be-safe means that crossposted articles will
-be marked as unread.
-@item
- Orphan score entries don't show on "V t" score trace
-@item
- when clearing out data, the cache data should also be reset.
-@item
- rewrite gnus-summary-limit-children to be non-recursive
-to avoid exceeding lisp nesting on huge groups.
-@item
- expunged articles are counted when computing scores.
-@item
- implement gnus-batch-brew-soup
-@item
- ticked articles aren't easy to read in pick mode -- `n' and
-stuff just skips past them.  Read articles are the same.
-@item
- topics that contain just groups with ticked
-articles aren't displayed.
-@item
- nndoc should always allocate unique Message-IDs.
-@item
- If there are mail groups the first time you use Gnus, Gnus'll
-make the mail groups killed.
-@item
- no "no news is good news" when using topics.
-@item
- when doing crosspost marking, the cache has to be consulted
-and articles have to be removed.
-@item
- nnweb should fetch complete articles when they are split into several
-parts.
-@item
- scoring on head immediate doesn't work.
-@item
- finding short score file names takes forever.
-@item
- canceling articles in foreign groups.
-@item
- nntp-open-rlogin no longer works.
-@item
- C-u C-x C-s (Summary) switches to the group buffer.
-@item
- move nnmail-split-history out to the backends.
-@item
- nnweb doesn't work properly.
-@item
- using a virtual server name as `gnus-select-method' doesn't work?
-@item
- when killing/yanking a group from one topic to another in a slave, the
-master will yank it first to one topic and then add it to another.
-Perhaps.
+@item Gnus \e$B$O$^$?3F9q8lBP1~$K$J$j$^$7$?!#$3$3$G$OMWLs$G$-$J$$$/$i$$\e(B
+\e$B$K\e(B Gnus \e$B$NB?$/$NItJ,$K1F6A$7$F$$$F!"?7$7$$$?$/$5$s$NJQ?t$,DI2C$5$l$F$$$^\e(B
+\e$B$9!#\e(B(\e$BLuCm\e(B: T-gnus \e$B$O\e(B SEMI \e$B$*$h$S\e(B FLIM \e$B$N=t5!G=$K4p$E$$$F$$$^$9!#\e(B)
 
-@item
- warn user about `=' redirection of a group in the active file?
-@item
- take over the XEmacs menubar and offer a toggle between the XEmacs
-bar and the Gnus bar.
-@item
-@example
- push active file and NOV file parsing down into C code.
-`(canonize-message-id id)'
-`(mail-parent-message-id references n)'
-`(parse-news-nov-line &optional dependency-hashtb)'
-`(parse-news-nov-region beg end &optional dependency-hashtb fullp)'
-`(parse-news-active-region beg end hashtb)'
+@item @code{gnus-auto-select-first} \e$B$,4X?t$G$"$C$F$b$h$/$J$j$^$7$?!#\e(B
 
-@end example
+@item Summary \e$B%P%C%U%!$H\e(B NOV \e$B%U%!%$%k$K4^$a$kDI2C$N%X%C%@!<$r!"%f!<%6$,\e(B
+\e$B7h$a$k$3$H$,$G$-$k$h$&$K$J$j$^$7$?!#\e(B
 
-@item
- nnml .overview directory with splits.
-@item
- asynchronous cache
-@item
- postponed commands.
-@item
- the selected article show have its Subject displayed in its summary line.
-@item
- when entering groups, get the real number of unread articles from
-the server?
-@item
- sort after gathering threads -- make false roots have the
-headers of the oldest orphan with a 0 article number?
-@item
- nndoc groups should inherit the score files of their parents?  Also
-inherit copy prompts and save files.
-@item
- command to start up Gnus (if not running) and enter a mail mode buffer.
-@item
- allow editing the group description from the group buffer
-for backends that support that.
-@item
-gnus-hide,show-all-topics
-@item
- groups and sub-topics should be allowed to mingle inside each topic,
-and not just list all subtopics at the end.
-@item
- a command to remove all read articles that are not needed to connect
-threads -- `gnus-summary-limit-to-sparse-unread'?
-@item
- a variable to turn off limiting/cutting of threads in the tree buffer.
-@item
- a variable to limit how many files are uudecoded.
-@item
- add zombie groups to a special "New Groups" topic.
-@item
- server mode command: close/open all connections
-@item
- put a file date in gnus-score-alist and check whether the file
-has been changed before using it.
-@item
- on exit from a digest group, go to the next article in the parent group.
-@item
- hide (sub)threads with low score.
-@item
- when expiring, remove all marks from expired articles.
-@item
- gnus-summary-limit-to-body
-@item
- a regexp alist that says what level groups are to be subscribed
-on.  Eg. -- `(("nnml:" . 1))'.
-@item
- easier interface to nnkiboze to create ephemeral groups that
-contain groups that match a regexp.
-@item
- allow newlines in <URL:> urls, but remove them before using
-the URL.
-@item
- If there is no From line, the mail backends should fudge one from the
-"From " line.
-@item
- fuzzy simplifying should strip all non-alpha-numerical info
-from subject lines.
-@item
- gnus-soup-brew-soup-with-high-scores.
-@item
- nntp-ping-before-connect
-@item
- command to check whether NOV is evil.  "list overview.fmt".
-@item
- when entering a group, Gnus should look through the score
-files very early for `local' atoms and set those local variables.
-@item
- message annotations.
-@item
- topics are always yanked before groups, and that's not good.
-@item
- (set-extent-property extent 'help-echo "String to display in minibuf")
-to display help in the minibuffer on buttons under XEmacs.
-@item
- allow group line format spec to say how many articles there
-are in the cache.
-@item
- AUTHINFO GENERIC
-@item
- `run-with-idle-timer' in gnus-demon.
-@item
- stop using invisible text properties and start using overlays instead
-@item
- C-c C-f C-e to add an Expires header.
-@item
- go from one group to the next; everything is expunged; go to the
-next group instead of going to the group buffer.
-@item
- gnus-renumber-cache -- to renumber the cache using "low" numbers.
-@item
- record topic changes in the dribble buffer.
-@item
- `nnfolder-generate-active-file' should look at the folders it
-finds and generate proper active ranges.
-@item
- nneething-look-in-files-for-article-heads variable to control
-whether nneething should sniff all files in the directories.
-@item
- gnus-fetch-article -- start Gnus, enter group, display article
-@item
- gnus-dont-move-articles-to-same-group variable when respooling.
-@item
- when messages are crossposted between several auto-expirable groups,
-articles aren't properly marked as expirable.
-@item
- nneething should allow deletion/moving.
-@item
- TAB on the last button should go to the first button.
-@item
- if the car of an element in `mail-split-methods' is a function,
-and the function returns non-nil, use that as the name of the group(s) to
-save mail in.
-@item
- command for listing all score files that have been applied.
-@item
- a command in the article buffer to return to `summary' config.
-@item
- `gnus-always-post-using-current-server' -- variable to override
-`C-c C-c' when posting.
-@item
- nnmail-group-spool-alist -- says where each group should use
-as a spool file.
-@item
- when an article is crossposted to an auto-expirable group, the article
-should be marker as expirable.
-@item
- article mode command/menu for "send region as URL to browser".
-@item
- on errors, jump to info nodes that explain the error.  For instance,
-on invalid From headers, or on error messages from the nntp server.
-@item
- when gathering threads, make the article that has no "Re: " the parent.
-Also consult Date headers.
-@item
- a token in splits to call shrink-window-if-larger-than-buffer
-@item
- `1 0 A M' to do matches on the active hashtb.
-@item
- duplicates -- command to remove Gnus-Warning header, use the read
-Message-ID, delete the "original".
-@item
- when replying to several messages at once, put the "other" message-ids
-into a See-Also header.
-@item
- support setext: @uref{http://www.bsdi.com/setext/}
-@item
- support ProleText: @uref{http://proletext.clari.net/prole/proletext.html}
-@item
- when browsing a foreign server, the groups that are already subscribed
-should be listed as such and not as "K".
-@item
- generate font names dynamically.
-@item
- score file mode auto-alist.
-@item
- allow nndoc to change/add/delete things from documents.  Implement
-methods for each format for adding an article to the document.
-@item
- `gnus-fetch-old-headers' `all' value to incorporate
-absolutely all headers there is.
-@item
- function like `|', but concatenate all marked articles
-and pipe them to the process.
-@item
- cache the list of killed (or active) groups in a separate file.  Update
-the file whenever we read the active file or the list
-of killed groups in the .eld file reaches a certain length.
-@item
- function for starting to edit a file to put into
-the current mail group.
-@item
- score-find-trace should display the total score of the article.
-@item
- "ghettozie" -- score on Xref header and nix it out after using it
-to avoid marking as read in other groups it has been crossposted to.
-@item
- look at procmail splitting.  The backends should create
-the groups automatically if a spool file exists for that group.
-@item
- function for backends to register themselves with Gnus.
-@item
- when replying to several process-marked articles,
-have all the From end up in Cc headers?  Variable to toggle.
-@item
- command to delete a crossposted mail article from all
-groups it has been mailed to.
-@item
- `B c' and `B m' should be crosspost aware.
-@item
- hide-pgp should also hide PGP public key blocks.
-@item
- Command in the group buffer to respool process-marked groups.
-@item
- `gnus-summary-find-matching' should accept
-pseudo-"headers" like "body", "head" and "all"
-@item
- When buttifying <URL: > things, all white space (including
-newlines) should be ignored.
-@item
- Process-marking all groups in a topic should process-mark
-groups in subtopics as well.
-@item
- Add non-native groups to the list of killed groups when killing them.
-@item
- nntp-suggest-kewl-config to probe the nntp server and suggest
-variable settings.
-@item
- add edit and forward secondary marks.
-@item
- nnml shouldn't visit its .overview files.
-@item
- allow customizing sorting within gathered threads.
-@item
- `B q' shouldn't select the current article.
-@item
- nnmbox should support a newsgroups file for descriptions.
-@item
- allow fetching mail from several pop servers.
-@item
- Be able to specify whether the saving commands save the original
-or the formatted article.
-@item
- a command to reparent with the child process-marked (cf. `T ^'.).
-@item
- I think the possibility to send a password with nntp-open-rlogin
-should be a feature in Red Gnus.
-@item
- The `Z n' command should be possible to execute from a mouse click.
-@item
- more limiting functions -- date, etc.
-@item
- be able to limit on a random header; on body; using reverse matches.
-@item
- a group parameter (`absofucking-total-expiry') that will make Gnus expire
-even unread articles.
-@item
- a command to print the article buffer as postscript.
-@item
- variable to disable password fetching when opening by nntp-open-telnet.
-@item
- manual: more example servers -- nntp with rlogin, telnet
-@item
- checking for bogus groups should clean topic alists as well.
-@item
- canceling articles in foreign groups.
-@item
- article number in folded topics isn't properly updated by
-Xref handling.
-@item
- Movement in the group buffer to the next unread group should go to the
-next closed topic with unread messages if no group can be found.
-@item
- Extensive info pages generated on the fly with help everywhere --
-in the "*Gnus edit*" buffers, for instance.
-@item
- Topic movement commands -- like thread movement.  Up, down, forward, next.
-@item
- a way to tick/mark as read Gcc'd articles.
-@item
- a way to say that all groups within a specific topic comes
-from a particular server?  Hm.
-@item
- `gnus-article-fill-if-long-lines' -- a function to fill
-the article buffer if there are any looong lines there.
-@item
- `T h' should jump to the parent topic and fold it.
-@item
- a command to create an ephemeral nndoc group out of a file,
-and then splitting it/moving it to some other group/backend.
-@item
- a group parameter for nnkiboze groups that says that
-all kibozed articles should be entered into the cache.
-@item
- It should also probably be possible to delimit what
-`gnus-jog-cache' does -- for instance, work on just some groups, or on
-some levels, and entering just articles that have a score higher than
-a certain number.
-@item
- nnfolder should append to the folder instead of re-writing
-the entire folder to disk when accepting new messages.
-@item
- allow all backends to do the proper thing with .gz files.
-@item
- a backend for reading collections of babyl files nnbabylfolder?
-@item
- a command for making the native groups into foreign groups.
-@item
- server mode command for clearing read marks from all groups
-from a server.
-@item
- when following up multiple articles, include all To, Cc, etc headers
-from all articles.
-@item
- a command for deciding what the total score of the current
-thread is.  Also a way to highlight based on this.
-@item
- command to show and edit group scores
-@item
- a gnus-tree-minimize-horizontal to minimize tree buffers
-horizontally.
-@item
- command to generate nnml overview file for one group.
-@item
- `C-u C-u a' -- prompt for many crossposted groups.
-@item
- keep track of which mail groups have received new articles (in this session).
-Be able to generate a report and perhaps do some marking in the group
-buffer.
-@item
- gnus-build-sparse-threads to a number -- build only sparse threads
-that are of that length.
-@item
- have nnmh respect mh's unseen sequence in .mh_profile.
-@item
- cache the newsgroups descriptions locally.
-@item
- asynchronous posting under nntp.
-@item
- be able to control word adaptive scoring from the score files.
-@item
- a variable to make `C-c C-c' post using the "current" select method.
-@item
- `limit-exclude-low-scored-articles'.
-@item
- if `gnus-summary-show-thread' is a number, hide threads that have
-a score lower than this number.
-@item
- split newsgroup subscription variable up into "order" and "method".
-@item
- buttonize ange-ftp file names.
-@item
- a command to make a duplicate copy of the current article
-so that each copy can be edited separately.
-@item
- nnweb should allow fetching from the local nntp server.
-@item
- record the sorting done in the summary buffer so that
-it can be repeated when limiting/regenerating the buffer.
-@item
- nnml-generate-nov-databses should generate for
-all nnml servers.
-@item
- when the user does commands in the group buffer, check
-the modification time of the .newsrc.eld file and use
-ask-user-about-supersession-threat.  Also warn when trying
-to save .newsrc.eld and it has changed.
-@item
- M-g on a topic will display all groups with 0 articles in
-the topic.
-@item
- command to remove all topic stuff.
-@item
- allow exploding incoming digests when reading incoming mail
-and splitting the resulting digests.
-@item
- nnsoup shouldn't set the `message-' variables.
-@item
- command to nix out all nnoo state information.
-@item
- nnmail-process-alist that calls functions if group names
-matches an alist -- before saving.
-@item
- use buffer-invisibility-spec everywhere for hiding text.
-@item
- variable to activate each group before entering them
-to get the (new) number of articles.  `gnus-activate-before-entering'.
-@item
- command to fetch a Message-ID from any buffer, even
-starting Gnus first if necessary.
-@item
- when posting and checking whether a group exists or not, just
-ask the nntp server instead of relying on the active hashtb.
-@item
- buttonize the output of `C-c C-a' in an apropos-like way.
-@item
- `G p' should understand process/prefix, and allow editing
-of several groups at once.
-@item
- command to create an ephemeral nnvirtual group that
-matches some regexp(s).
-@item
- nndoc should understand "Content-Type: message/rfc822" forwarded messages.
-@item
- it should be possible to score "thread" on the From header.
-@item
- hitting RET on a "gnus-uu-archive" pseudo article should unpack it.
-@item
- `B i' should display the article at once in the summary buffer.
-@item
- remove the "*" mark at once when unticking an article.
-@item
- `M-s' should highlight the matching text.
-@item
- when checking for duplicated mails, use Resent-Message-ID if present.
-@item
- killing and yanking groups in topics should be better.  If killing one copy
-of a group that exists in multiple topics, only that copy should
-be removed.  Yanking should insert the copy, and yanking topics
-should be possible to be interspersed with the other yankings.
-@item
- command for enter a group just to read the cached articles.  A way to say
-"ignore the nntp connection; just read from the cache."
-@item
- `X u' should decode base64 articles.
-@item
- a way to hide all "inner" cited text, leaving just the most
-recently cited text.
-@item
- nnvirtual should be asynchronous.
-@item
- after editing an article, gnus-original-article-buffer should
-be invalidated.
-@item
- there should probably be a way to make Gnus not connect to the
-server and just read the articles in the server
-@item
- allow a `set-default' (or something) to change the default
-value of nnoo variables.
-@item
- a command to import group infos from a .newsrc.eld file.
-@item
- groups from secondary servers have the entire select method
-listed in each group info.
-@item
- a command for just switching from the summary buffer to the group
-buffer.
-@item
- a way to specify that some incoming mail washing functions
-should only be applied to some groups.
-@item
- Message `C-f C-t' should ask the user whether to heed
-mail-copies-to: never.
-@item
- new group parameter -- `post-to-server' that says to post
-using the current server.  Also a variable to do the same.
-@item
- the slave dribble files should auto-save to the slave file names.
-@item
- a group parameter that says what articles to display on group entry, based
-on article marks.
-@item
- a way to visually distinguish slave Gnusae from masters.  (Whip instead
-of normal logo?)
-@item
- Use DJ Bernstein "From " quoting/dequoting, where applicable.
-@item
- Why is hide-citation-maybe and hide-citation different?  Also
-clear up info.
-@item
- group user-defined meta-parameters.
+@item @code{gnus-article-display-hook} \e$B$,:o=|$5$l$^$7$?\e(B (\e$BLuCm\e(B: T-gnus \e$B$G\e(B
+\e$B$OB8:_$7$F$$$^$9$,!"$3$l$r;H$&$3$H$O?d>)$5$l$F$$$^$;$s\e(B)\e$B!#Be$o$j\e(B
+\e$B$K\e(B @code{gnus-treat-} \e$B$G;O$^$k$?$/$5$s$NJQ?t$,DI2C$5$l$^$7$?!#\e(B
 
-From: John Griffith <griffith@@sfs.nphil.uni-tuebingen.de>
-@item
- I like the option for trying to retrieve the FAQ for a group and I was
-thinking it would be great if for those newsgroups that had archives
-you could also try to read the archive for that group.  Part of the
-problem is that archives are spread all over the net, unlike FAQs.
-What would be best I suppose is to find the one closest to your site.
+@item Gnus posting styles \e$B$,:F$S2~Au$5$l$^$7$?!#8=:_$OHyL/$K0c$&5,B'$GF0\e(B
+\e$B:n$7$^$9!#\e(B
 
-In any case, there is a list of general news group archives at @*
-@uref{ftp://ftp.neosoft.com/pub/users/claird/news.lists/newsgroup_archives.html}
+@item \e$B?7$7$$%&%'%V$K4p$E$$$?%P%C%/%(%s%I$,DI2C$5$l$^$7$?!#\e(B
+@code{nnslashdot}, @code{nnwarchive} \e$B$*$h$S\e(B @code{nnultimate} \e$B$G$9!#\e(B
+nnweb \e$B$O:F$S2~:n$5$l!">o$KJQ2=$9$k9=@.$rB3$1$^$9!#\e(B
 
-@item
-@example
-From: Jason L Tibbitts III <tibbs@@hpc.uh.edu>
-(add-hook 'gnus-select-group-hook
-  (lambda ()
-    (gnus-group-add-parameter group
-       (cons 'gnus-group-date-last-entered (list (current-time-string))))))
-
-(defun gnus-user-format-function-d (headers)
-  "Return the date the group was last read."
-  (cond ((car (gnus-group-get-parameter gnus-tmp-group 'gnus-group-date-last-entered)))
-      (t "")))
-@end example
-
-@item
- tanken var at n\eNer du bruker `gnus-startup-file' som prefix (FOO) til \eNe lete
-opp en fil FOO-SERVER, FOO-SERVER.el, FOO-SERVER.eld, kan du la den v\eNfre en
-liste hvor du bruker hvert element i listen som FOO, istedet.  da kunne man
-hatt forskjellige serveres startup-filer forskjellige steder.
-
-@item
-LMI> Well, nnbabyl could alter the group info to heed labels like
-LMI> answered and read, I guess.
-
-It could also keep them updated (the same for the Status: header of
-unix mbox files).
-
-They could be used like this:
-
-@example
-`M l <name> RET' add label <name> to current message.
-`M u <name> RET' remove label <name> from current message.
-`/ l <expr> RET' limit summary buffer according to <expr>.
-
-<expr> would be a boolean expression on the labels, e.g.
-
-`/ l bug & !fixed RET'
-@end example
-
-would show all the messages which are labeled `bug' but not labeled
-`fixed'.
-
-One could also imagine the labels being used for highlighting, or
-affect the summary line format.
-
-@item
-Sender: abraham@@dina.kvl.dk
-
-I'd like a gnus-find-file which work like find file, except that it
-would recognize things that looks like messages or folders:
-
-- If it is a directory containing numbered files, create an nndir
-summary buffer.
-
-- For other directories, create a nneething summary buffer.
-
-- For files matching "\\`From ", create a nndoc/mbox summary.
-
-- For files matching "\\`BABYL OPTIONS:", create a nndoc/baby summary.
-
-- For files matching "\\`[^ \t\n]+:", create an *Article* buffer.
-
-- For other files, just find them normally.
-
-I'd like `nneething' to use this function, so it would work on a
-directory potentially containing mboxes or babyl files.
-
-@item
-Please send a mail to bwarsaw@@cnri.reston.va.us (Barry A. Warsaw) and
-tell him what you are doing.
-
-@item
-Currently, I get prompted:
-
-decend into sci?
-- type y
-decend into sci.something ?
-- type n
-decend into ucd?
-
-The problem above is that since there is really only one subsection of
-science, shouldn't it prompt you for only descending sci.something?  If
-there was a sci.somethingelse group or section, then it should prompt
-for sci? first the sci.something? then sci.somethingelse?...
-
-@item
-Ja, det burde v\eNfre en m\eNete \eNe si slikt.  Kanskje en ny variabel?
-`gnus-use-few-score-files'?  S\eNe kunne score-regler legges til den
-"mest" lokale score-fila.  F. eks. ville no-gruppene betjenes av
-"no.all.SCORE", osv.
-
-@item
-What i want is for Gnus to treat any sequence or combination of the following
-as a single spoiler warning and hide it all, replacing it with a "Next Page"
-button:
-
-^L's
-
-more than n blank lines
-
-more than m identical lines
-(which should be replaced with button to show them)
-
-any whitespace surrounding any of the above
-
-@item
-Well, we could allow a new value to `gnus-thread-ignore-subject' --
-`spaces', or something.  (We could even default to that.)  And then
-subjects that differ in white space only could be considered the
-"same" subject for threading purposes.
-
-@item
-Modes to preprocess the contents (e.g. jka-compr) use the second form
-"(REGEXP FUNCTION NON-NIL)" while ordinary modes (e.g. tex) use the first
-form "(REGEXP . FUNCTION)", so you could use it to distinguish between
-those two types of modes. (auto-modes-alist, insert-file-contents-literally.)
-
-@item
- Under XEmacs -- do funny article marks:
-tick - thumb tack
-killed - skull
-soup - bowl of soup
-score below - dim light bulb
-score over - bright light bulb
-
-@item
-Yes. I think the algorithm is as follows:
-
-@example
-Group-mode
-
-   show-list-of-articles-in-group
-        if (key-pressed == SPACE)
-                if (no-more-articles-in-group-to-select)
-                        if (articles-selected)
-                                start-reading-selected-articles;
-                        junk-unread-articles;
-                        next-group;
-                 else
-                        show-next-page;
-
-         else if (key-pressed = '.')
-                if (consolidated-menus)         # same as hide-thread in Gnus
-                        select-thread-under-cursor;
-                else
-                        select-article-under-cursor;
-
-Article-mode
-        if (key-pressed == SPACE)
-                if (more-pages-in-article)
-                        next-page;
-                else if (more-selected-articles-to-read)
-                        next-article;
-                else
-                        next-group;
-@end example
-
-@item
-My precise need here would have been to limit files to Incoming*.
-One could think of some `nneething-only-files' variable, but I guess
-it would have been unacceptable if one was using many unrelated such
-nneething groups.
-
-A more useful approach would be to, in response to the `G D' prompt, be
-allowed to say something like: `~/.mail/Incoming*', somewhat limiting
-the top-level directory only (in case directories would be matched by
-the wildcard expression).
-
-@item
-It would be nice if it also handled
-
-        <URL:news://sunsite.auc.dk/>
-
-which should correspond to `B nntp RET sunsite.auc.dk' in *Group*.
-
-@item
-
-  Take a look at w3-menu.el in the Emacs-W3 distribution - this works out
-really well.  Each menu is 'named' by a symbol that would be on a
-gnus-*-menus (where * would be whatever, but at least group, summary, and
-article versions) variable.
-
-  So for gnus-summary-menus, I would set to '(sort mark dispose ...)
-
-  A value of '1' would just put _all_ the menus in a single 'GNUS' menu in
-the main menubar.  This approach works really well for Emacs-W3 and VM.
-
-@item
- nndoc should take care to create unique Message-IDs for all its
-articles.
-@item
- gnus-score-followup-article only works when you have a summary buffer
-active.  Make it work when posting from the group buffer as well.
-(message-sent-hook).
-@item
- rewrite gnus-demon to use run-with-idle-timers.
-
-@item
- * Enhancements to Gnus:
-
-  Add two commands:
-
-  * gnus-servers (gnus-start-server-buffer?)--enters Gnus and goes
-    straight to the server buffer, without opening any connections to
-    servers first.
-
-  * gnus-server-read-server-newsrc--produces a buffer very similar to
-    the group buffer, but with only groups from that server listed;
-    quitting this buffer returns to the server buffer.
-
-@item
- add a command to check the integrity of an nnfolder folder --
-go through the article numbers and see that there are no duplicates,
-and stuff.
-
-@item
- `unsmileyfy-buffer' to undo smileification.
-
-@item
- a command to give all relevant info on an article, including all
-secondary marks.
-
-@item
- when doing `-request-accept-article', the backends should do
-the nnmail duplicate checking.
-
-@item
- allow `message-signature-file' to be a function to return the
-value of the signature file.
-
-@item
- In addition, I would love it if I could configure message-tab so that it
-could call `bbdb-complete-name' in other headers.  So, some sort of
-interface like
-
-(setq message-tab-alist
-      '((message-header-regexp message-expand-group)
-        ("^\\(To\\|[cC]c\\|[bB]cc\\)"  bbdb-complete-name)))
-
-then you could run the relevant function to complete the information in
-the header
-
-@item
- cache the newsgroups file locally to avoid reloading it all the time.
-
-@item
- a command to import a buffer into a group.
-
-@item
- nnweb should allow fetching by Message-ID from servers.
-
-@item
- point in the article buffer doesn't always go to the
-beginning of the buffer when selecting new articles.
-
-@item
- a command to process mark all unread articles.
-
-@item
- `gnus-gather-threads-by-references-and-subject' -- first
-do gathering by references, and then go through the dummy roots and
-do more gathering by subject.
-
-@item
- gnus-uu-mark-in-numerical-order -- process mark articles in
-article numerical order.
-
-@item
- (gnus-thread-total-score
- (gnus-id-to-thread (mail-header-id (gnus-summary-article-header))))
-bind to a key.
-
-@item
- sorting by score is wrong when using sparse threads.
-
-@item
- a command to fetch an arbitrary article -- without having to be
-in the summary buffer.
-
-@item
- a new nncvs backend.  Each group would show an article, using
-version branches as threading, checkin date as the date, etc.
-
-@item
-@uref{http://www.dejanews.com/forms/dnsetfilter_exp.html}?
-This filter allows one to construct advance queries on the Dejanews
-database such as specifying start and end dates, subject, author,
-and/or newsgroup name.
-
-@item
- new Date header scoring type -- older, newer
-
-@item
- use the summary toolbar in the article buffer.
-
-@item
- a command to fetch all articles that are less than X days old.
-
-@item
- in pick mode, `q' should save the list of selected articles in the
-group info.  The next time the group is selected, these articles
-will automatically get the process mark.
-
-@item
- Isn't it possible to (also?) allow M-^ to automatically try the
-default server if it fails on the current server?  (controlled by a
-user variable, (nil, t, 'ask)).
-
-@item
- make it possible to cancel articles using the select method for the
-current group.
-
-@item
- `gnus-summary-select-article-on-entry' or something.  It'll default
-to t and will select whatever article decided by `gnus-auto-select-first'.
-
-@item
- a new variable to control which selection commands should be unselecting.
-`first', `best', `next', `prev', `next-unread', `prev-unread' are
-candidates.
-
-@item
- be able to select groups that have no articles in them
-to be able to post in them (using the current select method).
-
-@item
- be able to post via DejaNews.
-
-@item
- `x' should retain any sortings that have been performed.
-
-@item
- allow the user to specify the precedence of the secondary marks.  Also
-allow them to be displayed separately.
-
-@item
- gnus-summary-save-in-pipe should concatenate the results from
-the processes when doing a process marked pipe.
-
-@item
- a new match type, like Followup, but which adds Thread matches on all
-articles that match a certain From header.
-
-@item
- a function that can be read from kill-emacs-query-functions to offer
-saving living summary buffers.
-
-@item
- a function for selecting a particular group which will contain
-the articles listed in a list of article numbers/id's.
-
-@item
- a battery of character translation functions to translate common
-Mac, MS (etc) characters into ISO 8859-1.
-
-@example
-(defun article-fix-m$word ()
-  "Fix M$Word smartquotes in an article."
-  (interactive)
-  (save-excursion
-    (let ((buffer-read-only nil))
-      (goto-char (point-min))
-      (while (search-forward "\221" nil t)
-        (replace-match "`" t t))
-      (goto-char (point-min))
-      (while (search-forward "\222" nil t)
-        (replace-match "'" t t))
-      (goto-char (point-min))
-      (while (search-forward "\223" nil t)
-        (replace-match "\"" t t))
-      (goto-char (point-min))
-      (while (search-forward "\224" nil t)
-        (replace-match "\"" t t)))))
-@end example
-
-@item
-@example
- (add-hook 'gnus-exit-query-functions
- (lambda ()
-   (if (and (file-exists-p nnmail-spool-file)
-            (> (nnheader-file-size nnmail-spool-file) 0))
-       (yes-or-no-p "New mail has arrived.  Quit Gnus anyways? ")
-       (y-or-n-p "Are you sure you want to quit Gnus? "))))
-@end example
-
-@item
- allow message-default-headers to be a function.
-
-@item
- new Date score match types -- < > = (etc) that take floating point
-numbers and match on the age of the article.
-
-@item
-@example
->  > > If so, I've got one gripe: It seems that when I fire up gnus 5.2.25
->  > > under xemacs-19.14, it's creating a new frame, but is erasing the
->  > > buffer in the frame that it was called from =:-O
->
->  > Hm.  How do you start up Gnus?  From the toolbar or with
->  > `M-x gnus-other-frame'?
->
->    I normally start it up from the toolbar; at
-> least that's the way I've caught it doing the
-> deed before.
-@end example
-
-@item
- all commands that react to the process mark should push
-the current process mark set onto the stack.
-
-@item
- gnus-article-hide-pgp
-Selv ville jeg nok ha valgt \eNe slette den dersom teksten matcher
-@example
-"\\(This\s+\\)?[^ ]+ has been automatically signed by"
-@end example
-og det er maks hundre tegn mellom match-end og ----linja.  Men -det-
-er min type heuristikk og langt fra alles.
-
-@item
- `gnus-subscribe-sorted' -- insert new groups where they would have been
-sorted to if `gnus-group-sort-function' were run.
-
-@item
- gnus-(group,summary)-highlight should respect any `face' text props set
-on the lines.
-
-@item
- use run-with-idle-timer for gnus-demon instead of the
-home-brewed stuff for better reliability.
-
-@item
- add a way to select which NoCeM type to apply -- spam, troll, etc.
-
-@item
- nndraft-request-group should tally auto-save files.
-
-@item
- implement nntp-retry-on-break and nntp-command-timeout.
-
-@item
- gnus-article-highlight-limit that says when not to highlight (long)
-articles.
-
-@item
- (nnoo-set SERVER VARIABLE VALUE)
-
-@item
- nn*-spool-methods
-
-@item
- interrupitng agent fetching of articles should save articles.
-
-@item
- command to open a digest group, and copy all the articles there to the
-current group.
-
-@item
- a variable to disable article body highlights if there's more than
-X characters in the body.
-
-@item
- handle 480/381 authinfo requests separately.
-
-@item
- include the texi/dir file in the distribution.
-
-@item
- format spec to "tab" to a position.
-
-@item
- Move all prompting to the new `M-n' default style.
-
-@item
- command to display all dormant articles.
-
-@item
- gnus-auto-select-next makeover -- list of things it should do.
-
-@item
- a score match type that adds scores matching on From if From has replied
-to something someone else has said.
-
-@item
- Read Netscape discussion groups:
-snews://secnews.netscape.com/netscape.communicator.unix
-
-@item
-One command to edit the original version if an article, and one to edit
-the displayed version.
-
-@item
-@kbd{T v} -- make all process-marked articles the children of the
-current article.
-
-@item
-Switch from initial text to the new default text mechanism.
-
-@item
-How about making it possible to expire local articles?  Will it be
-possible to make various constraints on when an article can be
-expired, e.g. (read), (age > 14 days), or the more interesting (read
-& age > 14 days)?
-
-@item
-New limit command---limit to articles that have a certain string
-in the head or body.
-
-@item
-Allow breaking lengthy @sc{nntp} commands.
-
-@item
-gnus-article-highlight-limit, to disable highlighting in big articles.
-
-@item
-Editing an article should put the article to be edited
-in a special, unique buffer.
-
-@item
-A command to send a mail to the admin-address group param.
-
-@item
-A Date scoring type that will match if the article
-is less than a certain number of days old.
-
-@item
-New spec: %~(tab 56) to put point on column 56
-
-@item
-Allow Gnus Agent scoring to use normal score files.
-
-@item
-Rething the Agent active file thing.  `M-g' doesn't update the active
-file, for instance.
-
-@item
-With dummy roots, `^' and then selecing the first article
-in any other dummy thread will make gnus highlight the
-dummy root instead of the first article.
-
-@item
-Propagate all group properties (marks, article numbers, etc) up to the
-topics for displaying.
-
-@item
-`n' in the group buffer with topics should go to the next group
-with unread articles, even if that group is hidden in a topic.
-
-@item
-gnus-summary-limit-include-cached is slow when there are
-many articles in the cache, since it regenerates big parts of the
-summary buffer for each article.
-
-@item
-Implement gnus-batch-brew-soup.
-
-@item
-Group parameters and summary commands for un/subscribing to mailing
-lists.
-
-@item
-Introduce nnmail-home-directory.
-
-@item
-gnus-fetch-group and friends should exit Gnus when the user
-exits the group.
-
-@item
-The jingle is only played on the second invocation of Gnus.
-
-@item
-Bouncing articles should do MIME.
-
-@item
-Crossposted articles should "inherit" the % or @@ mark from the other
-groups it has been crossposted to, or something.  (Agent.)
-
-@item
-If point is on a group that appears multiple times in topics, and
-you press `l', point will move to the first instance of the group.
-
-@item
-A spec for the group line format to display the number of
-agent-downloaded articles in the group.
-
-@item
-Some nntp servers never respond when posting, so there should be a
-timeout for all commands.
-
-@item
-When stading on a topic line and `t'-ing, point goes to the last line.
-It should go somewhere else.
-
-@item
-I'm having trouble accessing a newsgroup with a "+" in its name with
-Gnus.  There is a new newsgroup on msnews.microsoft.com named
-"microsoft.public.multimedia.directx.html+time" that I'm trying to
-access as
-"nntp+msnews.microsoft.com:microsoft.public.multimedia.directx.html+time"
-but it gives an error that it cant access the group.
-
-Is the "+" character illegal in newsgroup names?  Is there any way in
-Gnus to work around this?  (gnus 5.6.45 - XEmacs 20.4)
-
-@item
-
-When `#F', do:
-
-@example
-Subject: Answer to your mails 01.01.1999-01.05.1999
- --text follows this line--
-Sorry I killfiled you...
-
-Under the subject "foo", you wrote on 01.01.1999:
-> bar
-Under the subject "foo1", you wrote on 01.01.1999:
-> bar 1
-@end example
-
-@item
-Allow "orphan" scores in the Agent scoring.
-
-@item
-@example
-    - Edit article's summary line.
-    - End edit
-    - Sort lines in buffer by subject
-
-    --> the old subject line appears in Summary buffer, not the one that was
-    just changed to.
-@end example
-
-@item
-Remove list identifiers from the subject in the summary when doing `^'
-and the like.
-
-@item
-Have the Agent write out articles, one by one, as it retrieves them,
-to avoid having to re-fetch them all if Emacs should crash while
-fetching.
-
-@item
-Be able to forward groups of messages as MIME digests.
-
-@item
-nnweb should include the "get whole article" article when getting articles.
-
-@item
-When I type W W c (gnus-article-hide-citation) in the summary
-buffer, the citations are revealed, but the [+] buttons don't turn
-into [-] buttons.  (If I click on one of the [+] buttons, it does
-turn into a [-] button.)
-
-@item
-Perhaps there should be a command to "attach" a buffer of comments to
-a message?  That is, `B WHATEVER', you're popped into a buffer, write
-something, end with `C-c C-c', and then the thing you've written gets
-to be the child of the message you're commenting.
-
-@item
-Handle external-body parts.
-
-@item
-When renaming a group name, nnmail-split-history does not get the group
-name renamed.
-
-@item
-Allow mail splitting on bodies when using advanced mail splitting.
-
-@lisp
-  (body "whatever.text")
-@end lisp
-
-@item
-Be able to run `J u' from summary buffers.
-
-@item
-Solve the halting problem.
+@item Gnus \e$B$O\e(B @code{nnimap} \e$B$K$h$C$F\e(B IMAP \e$B%a!<%k$rFI$`$3$H$,$G$-$^$9!#\e(B
 
-@c TODO
 @end itemize
 
 @iftex
index a46d0c0..351c8a1 100644 (file)
@@ -826,14 +826,14 @@ History
 * Gnus Development::    How Gnus is developed.
 * Contributors::        Oodles of people.
 * New Features::        Pointers to some of the new stuff in Gnus.
-* Newest Features::     Features so new that they haven't been written yet.
 
 New Features
 
 * ding Gnus::          New things in Gnus 5.0/5.1, the first new Gnus.
-* September Gnus::     The Thing Formally Known As Gnus 5.3/5.3.
+* September Gnus::     The Thing Formally Known As Gnus 5.2/5.3.
 * Red Gnus::           Third time best---Gnus 5.4/5.5.
 * Quassia Gnus::       Two times two is four, or Gnus 5.6/5.7.
+* Pterodactyl Gnus::   Pentad also starts with P, AKA Gnus 5.8/5.9.
 
 Customization
 
@@ -4258,14 +4258,6 @@ Go to the next summary line of an unread article
 Go to the previous summary line of an unread article
 (@code{gnus-summary-prev-unread-subject}).
 
-@item G j
-@itemx j
-@kindex j (Summary)
-@kindex G j (Summary)
-@findex gnus-summary-goto-article
-Ask for an article number or @code{Message-ID}, and then go to that
-article (@code{gnus-summary-goto-article}).
-
 @item G g
 @kindex G g (Summary)
 @findex gnus-summary-goto-subject
@@ -4430,6 +4422,15 @@ command above in that you can pop as many previous articles off the
 history as you like, while @kbd{l} toggles the two last read articles.
 For a somewhat related issue (if you use these commands a lot),
 @pxref{Article Backlog}.
+
+@item G j
+@itemx j
+@kindex j (Summary)
+@kindex G j (Summary)
+@findex gnus-summary-goto-article
+Ask for an article number or @code{Message-ID}, and then go to that
+article (@code{gnus-summary-goto-article}).
+
 @end table
 
 
@@ -18941,7 +18942,6 @@ renamed it back again to ``Gnus''.  But in mixed case.  ``Gnus'' vs.
 * Gnus Development::    How Gnus is developed.
 * Contributors::        Oodles of people.
 * New Features::        Pointers to some of the new stuff in Gnus.
-* Newest Features::     Features so new that they haven't been written yet.
 @end menu
 
 
@@ -19538,16 +19538,16 @@ actually are people who are using Gnus.  Who'd'a thunk it!
 
 @menu
 * ding Gnus::          New things in Gnus 5.0/5.1, the first new Gnus.
-* September Gnus::     The Thing Formally Known As Gnus 5.3/5.3.
+* September Gnus::     The Thing Formally Known As Gnus 5.2/5.3.
 * Red Gnus::           Third time best---Gnus 5.4/5.5.
 * Quassia Gnus::       Two times two is four, or Gnus 5.6/5.7.
+* Pterodactyl Gnus::   Pentad also starts with P, AKA Gnus 5.8/5.9.
 @end menu
 
 These lists are, of course, just @emph{short} overviews of the
 @emph{most} important new features.  No, really.  There are tons more.
 Yes, we have feeping creaturism in full effect.
 
-
 @node ding Gnus
 @subsubsection (ding) Gnus
 
@@ -20187,1313 +20187,60 @@ updated by the @code{gnus-start-date-timer} command.
 
 @end itemize
 
+@node Pterodactyl Gnus
+@subsubsection Pterodactyl Gnus
 
-@node Newest Features
-@subsection Newest Features
-@cindex todo
-
-Also known as the @dfn{todo list}.  Sure to be implemented before the
-next millennium.
-
-Be afraid.  Be very afraid.
-
-(That a feature appears in this list doesn't necessarily mean that I've
-decided to actually implement it.  It just means that I think it sounds
-interesting.)
-
-(Yes, this is the actual, up-to-the-second todo list.)
-
+New features in Gnus 5.8:
+  
 @itemize @bullet
 
-@item
- I would like the zombie-page to contain an URL to the source of the
-latest version of gnus or some explanation on where to find it.
+@item The mail-fetching functions have changed.  See the manual for the
+many details.  In particular, all procmail fetching variables are gone.
 
-@item
- A way to continue editing the latest Message composition.
+If you used procmail like in
 
-@item
-@uref{http://www.sonicnet.com/feature/ari3/}
+@lisp
+(setq nnmail-use-procmail t)
+(setq nnmail-spool-file 'procmail)
+(setq nnmail-procmail-directory "~/mail/incoming/")
+(setq nnmail-procmail-suffix "\\.in")
+@end lisp
 
-@item
- facep is not declared.
+this now has changed to 
 
-@item
- Include a section in the manual on why the number of articles
-isn't the same in the group buffer and on the SPC prompt.
+@lisp
+(setq mail-sources
+      '((directory :path "~/mail/incoming/"
+                  :suffix ".in")))
+@end lisp
 
-@item
- Interacting with rmail fcc isn't easy.
+More information is available in the info doc at Select Methods ->
+Getting Mail -> Mail Sources
 
-@item
-@example
- Hypermail:
-<URL:http://www.falch.no/people/pepper/DSSSL-Lite/archives/>
-<URL:http://www.eit.com/software/hypermail/hypermail.html>
-<URL:http://homer.ncm.com/>
-<URL:http://www.yahoo.com/Computers_and_Internet/Internet/World_Wide_Web/HTML_Converters/>
-http://www.uwsg.indiana.edu/hypermail/linux/kernel/9610/index.html
-<URL:http://union.ncsa.uiuc.edu/HyperNews/get/www/html/converters.html>
-http://www.miranova.com/gnus-list/
+@item Gnus is now a MIME-capable reader.  This affects many parts of
+Gnus, and adds a slew of new commands.  See the manual for details.
 
-@end example
+@item Gnus has also been multilingualized.  This also affects too
+many parts of Gnus to summarize here, and adds many new variables.
 
-@item
-@samp{^-- } is made into - in LaTeX.
+@item @code{gnus-auto-select-first} can now be a function to be
+called to position point.
 
-@item
- gnus-kill is much slower than it was in GNUS 4.1.3.
+@item The user can now decide which extra headers should be included in
+summary buffers and NOV files.
 
-@item
- when expunging articles on low score, the sparse nodes keep hanging on?
-@item
- starting the first time seems to hang Gnus on some systems.  Does
-NEWGROUPS answer too fast?
-@item
- nndir doesn't read gzipped files.
-@item
- FAQ doesn't have an up node?
-@item
- when moving mail from a procmail spool to the crash-box,
-the crash-box is only appropriate to one specific group.
-@item
- `t' `t' makes X-Faces disappear.
-@item
- nnmh-be-safe means that crossposted articles will
-be marked as unread.
-@item
- Orphan score entries don't show on "V t" score trace
-@item
- when clearing out data, the cache data should also be reset.
-@item
- rewrite gnus-summary-limit-children to be non-recursive
-to avoid exceeding lisp nesting on huge groups.
-@item
- expunged articles are counted when computing scores.
-@item
- implement gnus-batch-brew-soup
-@item
- ticked articles aren't easy to read in pick mode -- `n' and
-stuff just skips past them.  Read articles are the same.
-@item
- topics that contain just groups with ticked
-articles aren't displayed.
-@item
- nndoc should always allocate unique Message-IDs.
-@item
- If there are mail groups the first time you use Gnus, Gnus'll
-make the mail groups killed.
-@item
- no "no news is good news" when using topics.
-@item
- when doing crosspost marking, the cache has to be consulted
-and articles have to be removed.
-@item
- nnweb should fetch complete articles when they are split into several
-parts.
-@item
- scoring on head immediate doesn't work.
-@item
- finding short score file names takes forever.
-@item
- canceling articles in foreign groups.
-@item
- nntp-open-rlogin no longer works.
-@item
- C-u C-x C-s (Summary) switches to the group buffer.
-@item
- move nnmail-split-history out to the backends.
-@item
- nnweb doesn't work properly.
-@item
- using a virtual server name as `gnus-select-method' doesn't work?
-@item
- when killing/yanking a group from one topic to another in a slave, the
-master will yank it first to one topic and then add it to another.
-Perhaps.
+@item @code{gnus-article-display-hook} has been removed.  Instead, a number
+of variables starting with @code{gnus-treat-} have been added.
 
-@item
- warn user about `=' redirection of a group in the active file?
-@item
- take over the XEmacs menubar and offer a toggle between the XEmacs
-bar and the Gnus bar.
-@item
-@example
- push active file and NOV file parsing down into C code.
-`(canonize-message-id id)'
-`(mail-parent-message-id references n)'
-`(parse-news-nov-line &optional dependency-hashtb)'
-`(parse-news-nov-region beg end &optional dependency-hashtb fullp)'
-`(parse-news-active-region beg end hashtb)'
+@item The Gnus posting styles have been redone again and now works in a
+subtly different manner.
 
-@end example
+@item New web-based backends have been added: @code{nnslashdot}, 
+@code{nnwarchive} and @code{nnultimate}.  nnweb has been revamped,
+again, to keep up with ever-changing layouts.
 
-@item
- nnml .overview directory with splits.
-@item
- asynchronous cache
-@item
- postponed commands.
-@item
- the selected article show have its Subject displayed in its summary line.
-@item
- when entering groups, get the real number of unread articles from
-the server?
-@item
- sort after gathering threads -- make false roots have the
-headers of the oldest orphan with a 0 article number?
-@item
- nndoc groups should inherit the score files of their parents?  Also
-inherit copy prompts and save files.
-@item
- command to start up Gnus (if not running) and enter a mail mode buffer.
-@item
- allow editing the group description from the group buffer
-for backends that support that.
-@item
-gnus-hide,show-all-topics
-@item
- groups and sub-topics should be allowed to mingle inside each topic,
-and not just list all subtopics at the end.
-@item
- a command to remove all read articles that are not needed to connect
-threads -- `gnus-summary-limit-to-sparse-unread'?
-@item
- a variable to turn off limiting/cutting of threads in the tree buffer.
-@item
- a variable to limit how many files are uudecoded.
-@item
- add zombie groups to a special "New Groups" topic.
-@item
- server mode command: close/open all connections
-@item
- put a file date in gnus-score-alist and check whether the file
-has been changed before using it.
-@item
- on exit from a digest group, go to the next article in the parent group.
-@item
- hide (sub)threads with low score.
-@item
- when expiring, remove all marks from expired articles.
-@item
- gnus-summary-limit-to-body
-@item
- a regexp alist that says what level groups are to be subscribed
-on.  Eg. -- `(("nnml:" . 1))'.
-@item
- easier interface to nnkiboze to create ephemeral groups that
-contain groups that match a regexp.
-@item
- allow newlines in <URL:> urls, but remove them before using
-the URL.
-@item
- If there is no From line, the mail backends should fudge one from the
-"From " line.
-@item
- fuzzy simplifying should strip all non-alpha-numerical info
-from subject lines.
-@item
- gnus-soup-brew-soup-with-high-scores.
-@item
- nntp-ping-before-connect
-@item
- command to check whether NOV is evil.  "list overview.fmt".
-@item
- when entering a group, Gnus should look through the score
-files very early for `local' atoms and set those local variables.
-@item
- message annotations.
-@item
- topics are always yanked before groups, and that's not good.
-@item
- (set-extent-property extent 'help-echo "String to display in minibuf")
-to display help in the minibuffer on buttons under XEmacs.
-@item
- allow group line format spec to say how many articles there
-are in the cache.
-@item
- AUTHINFO GENERIC
-@item
- `run-with-idle-timer' in gnus-demon.
-@item
- stop using invisible text properties and start using overlays instead
-@item
- C-c C-f C-e to add an Expires header.
-@item
- go from one group to the next; everything is expunged; go to the
-next group instead of going to the group buffer.
-@item
- gnus-renumber-cache -- to renumber the cache using "low" numbers.
-@item
- record topic changes in the dribble buffer.
-@item
- `nnfolder-generate-active-file' should look at the folders it
-finds and generate proper active ranges.
-@item
- nneething-look-in-files-for-article-heads variable to control
-whether nneething should sniff all files in the directories.
-@item
- gnus-fetch-article -- start Gnus, enter group, display article
-@item
- gnus-dont-move-articles-to-same-group variable when respooling.
-@item
- when messages are crossposted between several auto-expirable groups,
-articles aren't properly marked as expirable.
-@item
- nneething should allow deletion/moving.
-@item
- TAB on the last button should go to the first button.
-@item
- if the car of an element in `mail-split-methods' is a function,
-and the function returns non-nil, use that as the name of the group(s) to
-save mail in.
-@item
- command for listing all score files that have been applied.
-@item
- a command in the article buffer to return to `summary' config.
-@item
- `gnus-always-post-using-current-server' -- variable to override
-`C-c C-c' when posting.
-@item
- nnmail-group-spool-alist -- says where each group should use
-as a spool file.
-@item
- when an article is crossposted to an auto-expirable group, the article
-should be marker as expirable.
-@item
- article mode command/menu for "send region as URL to browser".
-@item
- on errors, jump to info nodes that explain the error.  For instance,
-on invalid From headers, or on error messages from the nntp server.
-@item
- when gathering threads, make the article that has no "Re: " the parent.
-Also consult Date headers.
-@item
- a token in splits to call shrink-window-if-larger-than-buffer
-@item
- `1 0 A M' to do matches on the active hashtb.
-@item
- duplicates -- command to remove Gnus-Warning header, use the read
-Message-ID, delete the "original".
-@item
- when replying to several messages at once, put the "other" message-ids
-into a See-Also header.
-@item
- support setext: @uref{http://www.bsdi.com/setext/}
-@item
- support ProleText: @uref{http://proletext.clari.net/prole/proletext.html}
-@item
- when browsing a foreign server, the groups that are already subscribed
-should be listed as such and not as "K".
-@item
- generate font names dynamically.
-@item
- score file mode auto-alist.
-@item
- allow nndoc to change/add/delete things from documents.  Implement
-methods for each format for adding an article to the document.
-@item
- `gnus-fetch-old-headers' `all' value to incorporate
-absolutely all headers there is.
-@item
- function like `|', but concatenate all marked articles
-and pipe them to the process.
-@item
- cache the list of killed (or active) groups in a separate file.  Update
-the file whenever we read the active file or the list
-of killed groups in the .eld file reaches a certain length.
-@item
- function for starting to edit a file to put into
-the current mail group.
-@item
- score-find-trace should display the total score of the article.
-@item
- "ghettozie" -- score on Xref header and nix it out after using it
-to avoid marking as read in other groups it has been crossposted to.
-@item
- look at procmail splitting.  The backends should create
-the groups automatically if a spool file exists for that group.
-@item
- function for backends to register themselves with Gnus.
-@item
- when replying to several process-marked articles,
-have all the From end up in Cc headers?  Variable to toggle.
-@item
- command to delete a crossposted mail article from all
-groups it has been mailed to.
-@item
- `B c' and `B m' should be crosspost aware.
-@item
- hide-pgp should also hide PGP public key blocks.
-@item
- Command in the group buffer to respool process-marked groups.
-@item
- `gnus-summary-find-matching' should accept
-pseudo-"headers" like "body", "head" and "all"
-@item
- When buttifying <URL: > things, all white space (including
-newlines) should be ignored.
-@item
- Process-marking all groups in a topic should process-mark
-groups in subtopics as well.
-@item
- Add non-native groups to the list of killed groups when killing them.
-@item
- nntp-suggest-kewl-config to probe the nntp server and suggest
-variable settings.
-@item
- add edit and forward secondary marks.
-@item
- nnml shouldn't visit its .overview files.
-@item
- allow customizing sorting within gathered threads.
-@item
- `B q' shouldn't select the current article.
-@item
- nnmbox should support a newsgroups file for descriptions.
-@item
- allow fetching mail from several pop servers.
-@item
- Be able to specify whether the saving commands save the original
-or the formatted article.
-@item
- a command to reparent with the child process-marked (cf. `T ^'.).
-@item
- I think the possibility to send a password with nntp-open-rlogin
-should be a feature in Red Gnus.
-@item
- The `Z n' command should be possible to execute from a mouse click.
-@item
- more limiting functions -- date, etc.
-@item
- be able to limit on a random header; on body; using reverse matches.
-@item
- a group parameter (`absofucking-total-expiry') that will make Gnus expire
-even unread articles.
-@item
- a command to print the article buffer as postscript.
-@item
- variable to disable password fetching when opening by nntp-open-telnet.
-@item
- manual: more example servers -- nntp with rlogin, telnet
-@item
- checking for bogus groups should clean topic alists as well.
-@item
- canceling articles in foreign groups.
-@item
- article number in folded topics isn't properly updated by
-Xref handling.
-@item
- Movement in the group buffer to the next unread group should go to the
-next closed topic with unread messages if no group can be found.
-@item
- Extensive info pages generated on the fly with help everywhere --
-in the "*Gnus edit*" buffers, for instance.
-@item
- Topic movement commands -- like thread movement.  Up, down, forward, next.
-@item
- a way to tick/mark as read Gcc'd articles.
-@item
- a way to say that all groups within a specific topic comes
-from a particular server?  Hm.
-@item
- `gnus-article-fill-if-long-lines' -- a function to fill
-the article buffer if there are any looong lines there.
-@item
- `T h' should jump to the parent topic and fold it.
-@item
- a command to create an ephemeral nndoc group out of a file,
-and then splitting it/moving it to some other group/backend.
-@item
- a group parameter for nnkiboze groups that says that
-all kibozed articles should be entered into the cache.
-@item
- It should also probably be possible to delimit what
-`gnus-jog-cache' does -- for instance, work on just some groups, or on
-some levels, and entering just articles that have a score higher than
-a certain number.
-@item
- nnfolder should append to the folder instead of re-writing
-the entire folder to disk when accepting new messages.
-@item
- allow all backends to do the proper thing with .gz files.
-@item
- a backend for reading collections of babyl files nnbabylfolder?
-@item
- a command for making the native groups into foreign groups.
-@item
- server mode command for clearing read marks from all groups
-from a server.
-@item
- when following up multiple articles, include all To, Cc, etc headers
-from all articles.
-@item
- a command for deciding what the total score of the current
-thread is.  Also a way to highlight based on this.
-@item
- command to show and edit group scores
-@item
- a gnus-tree-minimize-horizontal to minimize tree buffers
-horizontally.
-@item
- command to generate nnml overview file for one group.
-@item
- `C-u C-u a' -- prompt for many crossposted groups.
-@item
- keep track of which mail groups have received new articles (in this session).
-Be able to generate a report and perhaps do some marking in the group
-buffer.
-@item
- gnus-build-sparse-threads to a number -- build only sparse threads
-that are of that length.
-@item
- have nnmh respect mh's unseen sequence in .mh_profile.
-@item
- cache the newsgroups descriptions locally.
-@item
- asynchronous posting under nntp.
-@item
- be able to control word adaptive scoring from the score files.
-@item
- a variable to make `C-c C-c' post using the "current" select method.
-@item
- `limit-exclude-low-scored-articles'.
-@item
- if `gnus-summary-show-thread' is a number, hide threads that have
-a score lower than this number.
-@item
- split newsgroup subscription variable up into "order" and "method".
-@item
- buttonize ange-ftp file names.
-@item
- a command to make a duplicate copy of the current article
-so that each copy can be edited separately.
-@item
- nnweb should allow fetching from the local nntp server.
-@item
- record the sorting done in the summary buffer so that
-it can be repeated when limiting/regenerating the buffer.
-@item
- nnml-generate-nov-databses should generate for
-all nnml servers.
-@item
- when the user does commands in the group buffer, check
-the modification time of the .newsrc.eld file and use
-ask-user-about-supersession-threat.  Also warn when trying
-to save .newsrc.eld and it has changed.
-@item
- M-g on a topic will display all groups with 0 articles in
-the topic.
-@item
- command to remove all topic stuff.
-@item
- allow exploding incoming digests when reading incoming mail
-and splitting the resulting digests.
-@item
- nnsoup shouldn't set the `message-' variables.
-@item
- command to nix out all nnoo state information.
-@item
- nnmail-process-alist that calls functions if group names
-matches an alist -- before saving.
-@item
- use buffer-invisibility-spec everywhere for hiding text.
-@item
- variable to activate each group before entering them
-to get the (new) number of articles.  `gnus-activate-before-entering'.
-@item
- command to fetch a Message-ID from any buffer, even
-starting Gnus first if necessary.
-@item
- when posting and checking whether a group exists or not, just
-ask the nntp server instead of relying on the active hashtb.
-@item
- buttonize the output of `C-c C-a' in an apropos-like way.
-@item
- `G p' should understand process/prefix, and allow editing
-of several groups at once.
-@item
- command to create an ephemeral nnvirtual group that
-matches some regexp(s).
-@item
- nndoc should understand "Content-Type: message/rfc822" forwarded messages.
-@item
- it should be possible to score "thread" on the From header.
-@item
- hitting RET on a "gnus-uu-archive" pseudo article should unpack it.
-@item
- `B i' should display the article at once in the summary buffer.
-@item
- remove the "*" mark at once when unticking an article.
-@item
- `M-s' should highlight the matching text.
-@item
- when checking for duplicated mails, use Resent-Message-ID if present.
-@item
- killing and yanking groups in topics should be better.  If killing one copy
-of a group that exists in multiple topics, only that copy should
-be removed.  Yanking should insert the copy, and yanking topics
-should be possible to be interspersed with the other yankings.
-@item
- command for enter a group just to read the cached articles.  A way to say
-"ignore the nntp connection; just read from the cache."
-@item
- `X u' should decode base64 articles.
-@item
- a way to hide all "inner" cited text, leaving just the most
-recently cited text.
-@item
- nnvirtual should be asynchronous.
-@item
- after editing an article, gnus-original-article-buffer should
-be invalidated.
-@item
- there should probably be a way to make Gnus not connect to the
-server and just read the articles in the server
-@item
- allow a `set-default' (or something) to change the default
-value of nnoo variables.
-@item
- a command to import group infos from a .newsrc.eld file.
-@item
- groups from secondary servers have the entire select method
-listed in each group info.
-@item
- a command for just switching from the summary buffer to the group
-buffer.
-@item
- a way to specify that some incoming mail washing functions
-should only be applied to some groups.
-@item
- Message `C-f C-t' should ask the user whether to heed
-mail-copies-to: never.
-@item
- new group parameter -- `post-to-server' that says to post
-using the current server.  Also a variable to do the same.
-@item
- the slave dribble files should auto-save to the slave file names.
-@item
- a group parameter that says what articles to display on group entry, based
-on article marks.
-@item
- a way to visually distinguish slave Gnusae from masters.  (Whip instead
-of normal logo?)
-@item
- Use DJ Bernstein "From " quoting/dequoting, where applicable.
-@item
- Why is hide-citation-maybe and hide-citation different?  Also
-clear up info.
-@item
- group user-defined meta-parameters.
-
-
-
-From: John Griffith <griffith@@sfs.nphil.uni-tuebingen.de>
-@item
- I like the option for trying to retrieve the FAQ for a group and I was
-thinking it would be great if for those newsgroups that had archives
-you could also try to read the archive for that group.  Part of the
-problem is that archives are spread all over the net, unlike FAQs.
-What would be best I suppose is to find the one closest to your site.
-
-In any case, there is a list of general news group archives at @*
-@uref{ftp://ftp.neosoft.com/pub/users/claird/news.lists/newsgroup_archives.html}
-
-
-
-
-@item
-@example
-From: Jason L Tibbitts III <tibbs@@hpc.uh.edu>
-(add-hook 'gnus-select-group-hook
-  (lambda ()
-    (gnus-group-add-parameter group
-       (cons 'gnus-group-date-last-entered (list (current-time-string))))))
-
-(defun gnus-user-format-function-d (headers)
-  "Return the date the group was last read."
-  (cond ((car (gnus-group-get-parameter gnus-tmp-group 'gnus-group-date-last-entered)))
-      (t "")))
-@end example
-
-@item
- tanken var at når du bruker `gnus-startup-file' som prefix (FOO) til å lete
-opp en fil FOO-SERVER, FOO-SERVER.el, FOO-SERVER.eld, kan du la den være en
-liste hvor du bruker hvert element i listen som FOO, istedet.  da kunne man
-hatt forskjellige serveres startup-filer forskjellige steder.
-
-
-@item
-LMI> Well, nnbabyl could alter the group info to heed labels like
-LMI> answered and read, I guess.
-
-It could also keep them updated (the same for the Status: header of
-unix mbox files).
-
-They could be used like this:
-
-
-@example
-`M l <name> RET' add label <name> to current message.
-`M u <name> RET' remove label <name> from current message.
-`/ l <expr> RET' limit summary buffer according to <expr>.
-
-<expr> would be a boolean expression on the labels, e.g.
-
-`/ l bug & !fixed RET'
-@end example
-
-would show all the messages which are labeled `bug' but not labeled
-`fixed'.
-
-One could also imagine the labels being used for highlighting, or
-affect the summary line format.
-
-
-@item
-Sender: abraham@@dina.kvl.dk
-
-I'd like a gnus-find-file which work like find file, except that it
-would recognize things that looks like messages or folders:
-
-- If it is a directory containing numbered files, create an nndir
-summary buffer.
-
-- For other directories, create a nneething summary buffer.
-
-- For files matching "\\`From ", create a nndoc/mbox summary.
-
-- For files matching "\\`BABYL OPTIONS:", create a nndoc/baby summary.
-
-- For files matching "\\`[^ \t\n]+:", create an *Article* buffer.
-
-- For other files, just find them normally.
-
-I'd like `nneething' to use this function, so it would work on a
-directory potentially containing mboxes or babyl files.
-
-@item
-Please send a mail to bwarsaw@@cnri.reston.va.us (Barry A. Warsaw) and
-tell him what you are doing.
-
-@item
-Currently, I get prompted:
-
-decend into sci?
-- type y
-decend into sci.something ?
-- type n
-decend into ucd?
-
-The problem above is that since there is really only one subsection of
-science, shouldn't it prompt you for only descending sci.something?  If
-there was a sci.somethingelse group or section, then it should prompt
-for sci? first the sci.something? then sci.somethingelse?...
-
-@item
-Ja, det burde være en måte å si slikt.  Kanskje en ny variabel?
-`gnus-use-few-score-files'?  Så kunne score-regler legges til den
-"mest" lokale score-fila.  F. eks. ville no-gruppene betjenes av
-"no.all.SCORE", osv.
-
-@item
-What i want is for Gnus to treat any sequence or combination of the following
-as a single spoiler warning and hide it all, replacing it with a "Next Page"
-button:
-
-
-^L's
-
-more than n blank lines
-
-more than m identical lines
-(which should be replaced with button to show them)
-
-any whitespace surrounding any of the above
-
-
-@item
-Well, we could allow a new value to `gnus-thread-ignore-subject' --
-`spaces', or something.  (We could even default to that.)  And then
-subjects that differ in white space only could be considered the
-"same" subject for threading purposes.
-
-@item
-Modes to preprocess the contents (e.g. jka-compr) use the second form
-"(REGEXP FUNCTION NON-NIL)" while ordinary modes (e.g. tex) use the first
-form "(REGEXP . FUNCTION)", so you could use it to distinguish between
-those two types of modes. (auto-modes-alist, insert-file-contents-literally.)
-
-@item
- Under XEmacs -- do funny article marks:
-tick - thumb tack
-killed - skull
-soup - bowl of soup
-score below - dim light bulb
-score over - bright light bulb
-
-@item
-Yes. I think the algorithm is as follows:
-
-@example
-Group-mode
-
-   show-list-of-articles-in-group
-        if (key-pressed == SPACE)
-                if (no-more-articles-in-group-to-select)
-                        if (articles-selected)
-                                start-reading-selected-articles;
-                        junk-unread-articles;
-                        next-group;
-                 else
-                        show-next-page;
-
-         else if (key-pressed = '.')
-                if (consolidated-menus)         # same as hide-thread in Gnus
-                        select-thread-under-cursor;
-                else
-                        select-article-under-cursor;
-
-
-Article-mode
-        if (key-pressed == SPACE)
-                if (more-pages-in-article)
-                        next-page;
-                else if (more-selected-articles-to-read)
-                        next-article;
-                else
-                        next-group;
-@end example
-
-@item
-My precise need here would have been to limit files to Incoming*.
-One could think of some `nneething-only-files' variable, but I guess
-it would have been unacceptable if one was using many unrelated such
-nneething groups.
-
-A more useful approach would be to, in response to the `G D' prompt, be
-allowed to say something like: `~/.mail/Incoming*', somewhat limiting
-the top-level directory only (in case directories would be matched by
-the wildcard expression).
-
-@item
-It would be nice if it also handled
-
-        <URL:news://sunsite.auc.dk/>
-
-which should correspond to `B nntp RET sunsite.auc.dk' in *Group*.
-
-
-@item
-
-  Take a look at w3-menu.el in the Emacs-W3 distribution - this works out
-really well.  Each menu is 'named' by a symbol that would be on a
-gnus-*-menus (where * would be whatever, but at least group, summary, and
-article versions) variable.
-
-  So for gnus-summary-menus, I would set to '(sort mark dispose ...)
-
-  A value of '1' would just put _all_ the menus in a single 'GNUS' menu in
-the main menubar.  This approach works really well for Emacs-W3 and VM.
-
-
-@item
- nndoc should take care to create unique Message-IDs for all its
-articles.
-@item
- gnus-score-followup-article only works when you have a summary buffer
-active.  Make it work when posting from the group buffer as well.
-(message-sent-hook).
-@item
- rewrite gnus-demon to use run-with-idle-timers.
-
-@item
- * Enhancements to Gnus:
-
-  Add two commands:
-
-  * gnus-servers (gnus-start-server-buffer?)--enters Gnus and goes
-    straight to the server buffer, without opening any connections to
-    servers first.
-
-  * gnus-server-read-server-newsrc--produces a buffer very similar to
-    the group buffer, but with only groups from that server listed;
-    quitting this buffer returns to the server buffer.
-
-@item
- add a command to check the integrity of an nnfolder folder --
-go through the article numbers and see that there are no duplicates,
-and stuff.
-
-@item
- `unsmileyfy-buffer' to undo smileification.
-
-@item
- a command to give all relevant info on an article, including all
-secondary marks.
-
-@item
- when doing `-request-accept-article', the backends should do
-the nnmail duplicate checking.
-
-@item
- allow `message-signature-file' to be a function to return the
-value of the signature file.
-
-@item
- In addition, I would love it if I could configure message-tab so that it
-could call `bbdb-complete-name' in other headers.  So, some sort of
-interface like
-
-(setq message-tab-alist
-      '((message-header-regexp message-expand-group)
-        ("^\\(To\\|[cC]c\\|[bB]cc\\)"  bbdb-complete-name)))
-
-then you could run the relevant function to complete the information in
-the header
-
-@item
- cache the newsgroups file locally to avoid reloading it all the time.
-
-@item
- a command to import a buffer into a group.
-
-@item
- nnweb should allow fetching by Message-ID from servers.
-
-@item
- point in the article buffer doesn't always go to the
-beginning of the buffer when selecting new articles.
-
-@item
- a command to process mark all unread articles.
-
-@item
- `gnus-gather-threads-by-references-and-subject' -- first
-do gathering by references, and then go through the dummy roots and
-do more gathering by subject.
-
-@item
- gnus-uu-mark-in-numerical-order -- process mark articles in
-article numerical order.
-
-@item
- (gnus-thread-total-score
- (gnus-id-to-thread (mail-header-id (gnus-summary-article-header))))
-bind to a key.
-
-@item
- sorting by score is wrong when using sparse threads.
-
-@item
- a command to fetch an arbitrary article -- without having to be
-in the summary buffer.
-
-@item
- a new nncvs backend.  Each group would show an article, using
-version branches as threading, checkin date as the date, etc.
-
-@item
-@uref{http://www.dejanews.com/forms/dnsetfilter_exp.html}?
-This filter allows one to construct advance queries on the Dejanews
-database such as specifying start and end dates, subject, author,
-and/or newsgroup name.
-
-@item
- new Date header scoring type -- older, newer
-
-@item
- use the summary toolbar in the article buffer.
-
-@item
- a command to fetch all articles that are less than X days old.
-
-@item
- in pick mode, `q' should save the list of selected articles in the
-group info.  The next time the group is selected, these articles
-will automatically get the process mark.
-
-@item
- Isn't it possible to (also?) allow M-^ to automatically try the
-default server if it fails on the current server?  (controlled by a
-user variable, (nil, t, 'ask)).
-
-@item
- make it possible to cancel articles using the select method for the
-current group.
-
-@item
- `gnus-summary-select-article-on-entry' or something.  It'll default
-to t and will select whatever article decided by `gnus-auto-select-first'.
-
-@item
- a new variable to control which selection commands should be unselecting.
-`first', `best', `next', `prev', `next-unread', `prev-unread' are
-candidates.
-
-@item
- be able to select groups that have no articles in them
-to be able to post in them (using the current select method).
-
-@item
- be able to post via DejaNews.
-
-@item
- `x' should retain any sortings that have been performed.
-
-@item
- allow the user to specify the precedence of the secondary marks.  Also
-allow them to be displayed separately.
-
-@item
- gnus-summary-save-in-pipe should concatenate the results from
-the processes when doing a process marked pipe.
-
-@item
- a new match type, like Followup, but which adds Thread matches on all
-articles that match a certain From header.
-
-@item
- a function that can be read from kill-emacs-query-functions to offer
-saving living summary buffers.
-
-@item
- a function for selecting a particular group which will contain
-the articles listed in a list of article numbers/id's.
-
-@item
- a battery of character translation functions to translate common
-Mac, MS (etc) characters into ISO 8859-1.
-
-@example
-(defun article-fix-m$word ()
-  "Fix M$Word smartquotes in an article."
-  (interactive)
-  (save-excursion
-    (let ((buffer-read-only nil))
-      (goto-char (point-min))
-      (while (search-forward "\221" nil t)
-        (replace-match "`" t t))
-      (goto-char (point-min))
-      (while (search-forward "\222" nil t)
-        (replace-match "'" t t))
-      (goto-char (point-min))
-      (while (search-forward "\223" nil t)
-        (replace-match "\"" t t))
-      (goto-char (point-min))
-      (while (search-forward "\224" nil t)
-        (replace-match "\"" t t)))))
-@end example
-
-@item
-@example
- (add-hook 'gnus-exit-query-functions
- (lambda ()
-   (if (and (file-exists-p nnmail-spool-file)
-            (> (nnheader-file-size nnmail-spool-file) 0))
-       (yes-or-no-p "New mail has arrived.  Quit Gnus anyways? ")
-       (y-or-n-p "Are you sure you want to quit Gnus? "))))
-@end example
-
-@item
- allow message-default-headers to be a function.
-
-@item
- new Date score match types -- < > = (etc) that take floating point
-numbers and match on the age of the article.
-
-@item
-@example
->  > > If so, I've got one gripe: It seems that when I fire up gnus 5.2.25
->  > > under xemacs-19.14, it's creating a new frame, but is erasing the
->  > > buffer in the frame that it was called from =:-O
->
->  > Hm.  How do you start up Gnus?  From the toolbar or with
->  > `M-x gnus-other-frame'?
->
->    I normally start it up from the toolbar; at
-> least that's the way I've caught it doing the
-> deed before.
-@end example
-
-@item
- all commands that react to the process mark should push
-the current process mark set onto the stack.
-
-@item
- gnus-article-hide-pgp
-Selv ville jeg nok ha valgt å slette den dersom teksten matcher
-@example
-"\\(This\s+\\)?[^ ]+ has been automatically signed by"
-@end example
-og det er maks hundre tegn mellom match-end og ----linja.  Men -det-
-er min type heuristikk og langt fra alles.
-
-@item
- `gnus-subscribe-sorted' -- insert new groups where they would have been
-sorted to if `gnus-group-sort-function' were run.
-
-@item
- gnus-(group,summary)-highlight should respect any `face' text props set
-on the lines.
-
-@item
- use run-with-idle-timer for gnus-demon instead of the
-home-brewed stuff for better reliability.
-
-@item
- add a way to select which NoCeM type to apply -- spam, troll, etc.
-
-@item
- nndraft-request-group should tally auto-save files.
-
-@item
- implement nntp-retry-on-break and nntp-command-timeout.
-
-@item
- gnus-article-highlight-limit that says when not to highlight (long)
-articles.
-
-@item
- (nnoo-set SERVER VARIABLE VALUE)
-
-@item
- nn*-spool-methods
-
-@item
- interrupitng agent fetching of articles should save articles.
-
-@item
- command to open a digest group, and copy all the articles there to the
-current group.
-
-@item
- a variable to disable article body highlights if there's more than
-X characters in the body.
-
-@item
- handle 480/381 authinfo requests separately.
-
-@item
- include the texi/dir file in the distribution.
-
-@item
- format spec to "tab" to a position.
-
-@item
- Move all prompting to the new `M-n' default style.
-
-@item
- command to display all dormant articles.
-
-@item
- gnus-auto-select-next makeover -- list of things it should do.
-
-@item
- a score match type that adds scores matching on From if From has replied
-to something someone else has said.
-
-@item
- Read Netscape discussion groups:
-snews://secnews.netscape.com/netscape.communicator.unix
-
-@item
-One command to edit the original version if an article, and one to edit
-the displayed version.
-
-@item
-@kbd{T v} -- make all process-marked articles the children of the
-current article.
-
-@item
-Switch from initial text to the new default text mechanism.
-
-@item
-How about making it possible to expire local articles?  Will it be
-possible to make various constraints on when an article can be
-expired, e.g. (read), (age > 14 days), or the more interesting (read
-& age > 14 days)?
-
-@item
-New limit command---limit to articles that have a certain string
-in the head or body.
-
-@item
-Allow breaking lengthy @sc{nntp} commands.
-
-@item
-gnus-article-highlight-limit, to disable highlighting in big articles.
-
-@item
-Editing an article should put the article to be edited
-in a special, unique buffer.
-
-@item
-A command to send a mail to the admin-address group param.
-
-@item
-A Date scoring type that will match if the article
-is less than a certain number of days old.
-
-@item
-New spec: %~(tab 56) to put point on column 56
-
-@item
-Allow Gnus Agent scoring to use normal score files.
-
-@item
-Rething the Agent active file thing.  `M-g' doesn't update the active
-file, for instance.
-
-@item
-With dummy roots, `^' and then selecing the first article
-in any other dummy thread will make gnus highlight the
-dummy root instead of the first article.
-
-@item
-Propagate all group properties (marks, article numbers, etc) up to the
-topics for displaying.
-
-@item
-`n' in the group buffer with topics should go to the next group
-with unread articles, even if that group is hidden in a topic.
-
-@item
-gnus-posting-styles doesn't work in drafts.
-
-@item
-gnus-summary-limit-include-cached is slow when there are
-many articles in the cache, since it regenerates big parts of the
-summary buffer for each article.
-
-@item
-Implement gnus-batch-brew-soup.
-
-@item
-Group parameters and summary commands for un/subscribing to mailing
-lists.
-
-@item
-Introduce nnmail-home-directory.
-
-@item
-gnus-fetch-group and friends should exit Gnus when the user
-exits the group.
-
-@item
-The jingle is only played on the second invocation of Gnus.
-
-@item
-Bouncing articles should do MIME.
-
-@item
-Crossposted articles should "inherit" the % or @ mark from the other
-groups it has been crossposted to, or something.  (Agent.)
-
-@item
-If point is on a group that appears multiple times in topics, and
-you press `l', point will move to the first instance of the group.
-
-@item
-A spec for the group line format to display the number of
-agent-downloaded articles in the group.
-
-@item
-Some nntp servers never respond when posting, so there should be a
-timeout for all commands.
-
-@item
-When stading on a topic line and `t'-ing, point goes to the last line.
-It should go somewhere else.
-
-@item
-I'm having trouble accessing a newsgroup with a "+" in its name with
-Gnus.  There is a new newsgroup on msnews.microsoft.com named
-"microsoft.public.multimedia.directx.html+time" that I'm trying to
-access as
-"nntp+msnews.microsoft.com:microsoft.public.multimedia.directx.html+time"
-but it gives an error that it cant access the group.
-
-Is the "+" character illegal in newsgroup names?  Is there any way in
-Gnus to work around this?  (gnus 5.6.45 - XEmacs 20.4)
-
-@item
-
-When `#F', do:
-
-@example
-Subject: Answer to your mails 01.01.1999-01.05.1999
- --text follows this line--
-Sorry I killfiled you...
-
-Under the subject "foo", you wrote on 01.01.1999:
-> bar
-Under the subject "foo1", you wrote on 01.01.1999:
-> bar 1
-@end example
-
-@item
-Allow "orphan" scores in the Agent scoring.
-
-@item
-@example
-    - Edit article's summary line.
-    - End edit
-    - Sort lines in buffer by subject
-
-    --> the old subject line appears in Summary buffer, not the one that was
-    just changed to.
-@end example
-
-
-@item
-Remove list identifiers from the subject in the summary when doing `^'
-and the like.
-
-@item
-Have the Agent write out articles, one by one, as it retrieves them,
-to avoid having to re-fetch them all if Emacs should crash while
-fetching. 
-
-@item
-Be able to forward groups of messages as MIME digests.
-
-@item
-nnweb should include the "get whole article" article when getting articles. 
-
-@item
-When I type W W c (gnus-article-hide-citation) in the summary
-buffer, the citations are revealed, but the [+] buttons don't turn
-into [-] buttons.  (If I click on one of the [+] buttons, it does
-turn into a [-] button.)
-
-@item
-Perhaps there should be a command to "attach" a buffer of comments to
-a message?  That is, `B WHATEVER', you're popped into a buffer, write
-something, end with `C-c C-c', and then the thing you've written gets
-to be the child of the message you're commenting.
-
-@item
-Handle external-body parts.
-
-@item
-When renaming a group name, nnmail-split-history does not get the group
-name renamed.
-
-@item
-Allow mail splitting on bodies when using advanced mail splitting.
-
-@lisp
-  (body "whatever.text")
-@end lisp
-
-@item
-Be able to run `J u' from summary buffers.
-
-@item
-Solve the halting problem.
+@item Gnus can now read IMAP mail via @code{nnimap}.
 
-@c TODO
 @end itemize
 
 @iftex