Commits

Anonymous committed 48d667d

Import from CVS: tag r20-1b8

Comments (0)

Files changed (67)

 							-*- indented-text -*-
+to 20.1 beta8
+-- GIF crash fix courtesy of David Moore
+-- Fix for problem dumping comint with sparcworks
+-- Fixes for problems during build with dynamic puresize
+-- xpm background color patch courtesy of Darrell Kindred
+-- Custom-1.64
+-- Gnus-5.4.28
+-- miscellaneous bug fixes
+-- timer.el backed out, we're not ready for it.
+-- GNATS-3.101 info documentation added, further integration of send-pr.el.
+
 to 20.1 beta7
 -- Update to time.el.
 -- htmlpro DTD, IE3 DTDs added to etc/sgml.
+Mon Mar 17 19:09:29 1997  Steven L Baur  <steve@altair.xemacs.org>
+
+	* XEmacs-20.1-b8 is released.
+	* XEmacs-19.15-b100 is released.
+
 Sat Mar 15 17:15:18 1997  Steven L Baur  <steve@altair.xemacs.org>
 
+	* XEmacs-20.1-b7 is released.
+	* XEmacs-19.15-b99 is released.
+
 	* etc/sgml/CATALOG: Added IE3 DTDs and htmlpro DTD.
 
 Thu Mar 13 10:40:11 1997  Steven L Baur  <steve@altair.xemacs.org>
   Should XEmacs use the relocating allocator for buffers? ${rel_alloc}
   What window system should XEmacs use?                   ${window_system}${x_includes+
   Where do we find X Windows header files?                }${x_includes}${x_libraries+
-  Where do we find X Windows libraries?                   }${x_libraries}"
+  Where do we find X Windows libraries?                   }${x_libraries}" >> Installation
 
 if test -n "$site_includes"; then
-  echo "  Additional header files:                                ${site_includes}"
+  echo "  Additional header files:                                ${site_includes}" >> Installation
 fi
 
 if test -n "$site_libraries" -a -n "$site_runtime_libraries"; then
-  echo "  Additional libraries:                                   ${site_libraries} ${site_runtime_libraries}"
+  echo "  Additional libraries:                                   ${site_libraries} ${site_runtime_libraries}" >> Installation
 elif test -n "$site_libraries"; then
-  echo "  Additional libraries:                                   ${site_libraries}"
+  echo "  Additional libraries:                                   ${site_libraries}" >> Installation
 elif test -n "$site_runtime_libraries"; then
-  echo "  Additional libraries:                                   ${site_runtime_libraries}"
+  echo "  Additional libraries:                                   ${site_runtime_libraries}" >> Installation
 fi
 if test "$with_wnn"; then
-  echo "  Finding WNN includes with:                              ${wnn_includes}"
-  echo "  Loading WNN libs with:                                  ${wnn_libraries}"
-fi
-test "$with_socks" = yes && echo "  Compiling in support for SOCKS."
-test "$with_term"  = yes && echo "  Compiling in support for TERM."
-test "$with_xauth" = yes && echo "  Compiling in support for XAUTH."
-test "$with_xpm"   = yes && echo "  Compiling in support for XPM."
+  echo "  Finding WNN includes with:                              ${wnn_includes}" >> Installation
+  echo "  Loading WNN libs with:                                  ${wnn_libraries}" >> Installation
+fi
+test "$with_socks" = yes && echo "  Compiling in support for SOCKS." >> Installation
+test "$with_term"  = yes && echo "  Compiling in support for TERM." >> Installation
+test "$with_xauth" = yes && echo "  Compiling in support for XAUTH." >> Installation
+test "$with_xpm"   = yes && echo "  Compiling in support for XPM." >> Installation
 if test "$with_xmu" != yes -a "$window_system" != none; then
-  echo "  No Xmu; substituting equivalent routines."
-fi
-test "$with_xface" = yes && echo "  Compiling in support for X-Face headers."
-test "$with_gif"   = yes && echo "  Compiling in support for GIF image conversion."
-test "$with_jpeg"  = yes && echo "  Compiling in support for JPEG image conversion."
+  echo "  No Xmu; substituting equivalent routines." >> Installation
+fi
+test "$with_xface" = yes && echo "  Compiling in support for X-Face headers." >> Installation
+test "$with_gif"   = yes && echo "  Compiling in support for GIF image conversion." >> Installation
+test "$with_jpeg"  = yes && echo "  Compiling in support for JPEG image conversion." >> Installation
 if test "$with_png"   = yes -o "$with_png" = gnuz; then
-  echo "  Compiling in support for PNG image conversion."
+  echo "  Compiling in support for PNG image conversion." >> Installation
 fi
 if test "$with_png" = gnuz; then
-  echo "  (Using -lgz instead of -lz.)"
-fi
-test "$with_tiff"  = yes && echo "  Compiling in support for TIFF image conversion (not implemented)."
-test "$with_epoch" = yes && echo "  Compiling in extra Epoch compatibility."
-
-test "$with_sound" = nas    && echo "  Compiling in network sound support."
-test "$with_sound" = native && echo "  Compiling in native sound support."
-test "$with_sound" = both   && echo "  Compiling in both network and native sound support."
-test "$old_nas"    = true   && echo "        nas library lacks error trapping, will play synchronously"
-
-test "$with_database_berkdb" = yes && echo "  Compiling in support for Berkeley DB."
-test "$with_database_dbm"    = yes && echo "  Compiling in support for DBM."
-test "$with_database_gnudbm" = yes && echo "  Compiling in support for GNU DBM."
-
-test "$with_ncurses"  = yes && echo "  Compiling in support for ncurses."
-test "$with_socks"    = yes && echo "  Compiling in support for SOCKS."
-
-test "$with_mule"     = yes && echo "  Compiling in Mule (multi-lingual) support."
-test "$with_xim"      != no && echo "  Compiling in XIM (X11R5+ I18N input method) support."
-test "$with_xim" = motif    && echo "    Using Motif to provide XIM support."
-test "$with_xim" = xlib     && echo "    Using raw Xlib to provide XIM support."
-test "$with_canna"    = yes && echo "  Compiling in support for Canna on Mule."
-test "$with_wnn"      = yes && echo "  Compiling in support for WNN on Mule."
-test "$with_wnn6"     = yes && echo "  WNN support for version 6."
-test "$with_i18n3"    = yes && echo "  Compiling in I18N support, level 3 (doesn't currently work)."
-
-test "$with_cde"      = yes && echo "  Compiling in support for CDE."
-test "$with_tooltalk" = yes && echo "  Compiling in support for ToolTalk."
-test "$with_offix"    = yes && echo "  Compiling in support for OffiX."
-test "$with_mocklisp" = yes && echo "  Compiling in support for Mocklisp."
-test "$with_sparcworks" = yes && echo "  Compiling in support for SparcWorks."
-test "$with_energize" = yes && echo "  Compiling in support for Lucid Energize (doesn't currently work)."
-test "$with_menubars" = "lucid" && echo "  Using the Lucid menubar."
+  echo "  (Using -lgz instead of -lz.)" >> Installation
+fi
+test "$with_tiff"  = yes && echo "  Compiling in support for TIFF image conversion (not implemented)." >> Installation
+test "$with_epoch" = yes && echo "  Compiling in extra Epoch compatibility." >> Installation
+
+test "$with_sound" = nas    && echo "  Compiling in network sound support." >> Installation
+test "$with_sound" = native && echo "  Compiling in native sound support." >> Installation
+test "$with_sound" = both   && echo "  Compiling in both network and native sound support." >> Installation
+test "$old_nas"    = true   && echo "        nas library lacks error trapping, will play synchronously" >> Installation
+
+test "$with_database_berkdb" = yes && echo "  Compiling in support for Berkeley DB." >> Installation
+test "$with_database_dbm"    = yes && echo "  Compiling in support for DBM." >> Installation
+test "$with_database_gnudbm" = yes && echo "  Compiling in support for GNU DBM." >> Installation
+
+test "$with_ncurses"  = yes && echo "  Compiling in support for ncurses." >> Installation
+test "$with_socks"    = yes && echo "  Compiling in support for SOCKS." >> Installation
+
+test "$with_mule"     = yes && echo "  Compiling in Mule (multi-lingual) support." >> Installation
+test "$with_xim"      != no && echo "  Compiling in XIM (X11R5+ I18N input method) support." >> Installation
+test "$with_xim" = motif    && echo "    Using Motif to provide XIM support." >> Installation
+test "$with_xim" = xlib     && echo "    Using raw Xlib to provide XIM support." >> Installation
+test "$with_canna"    = yes && echo "  Compiling in support for Canna on Mule." >> Installation
+test "$with_wnn"      = yes && echo "  Compiling in support for WNN on Mule." >> Installation
+test "$with_wnn6"     = yes && echo "  WNN support for version 6." >> Installation
+test "$with_i18n3"    = yes && echo "  Compiling in I18N support, level 3 (doesn't currently work)." >> Installation
+
+test "$with_cde"      = yes && echo "  Compiling in support for CDE." >> Installation
+test "$with_tooltalk" = yes && echo "  Compiling in support for ToolTalk." >> Installation
+test "$with_offix"    = yes && echo "  Compiling in support for OffiX." >> Installation
+test "$with_mocklisp" = yes && echo "  Compiling in support for Mocklisp." >> Installation
+test "$with_sparcworks" = yes && echo "  Compiling in support for SparcWorks." >> Installation
+test "$with_energize" = yes && echo "  Compiling in support for Lucid Energize (doesn't currently work)." >> Installation
+test "$with_menubars" = "lucid" && echo "  Using the Lucid menubar." >> Installation
 if test "$with_menubars" = "motif"; then
-  echo "  Using the Motif menubar."
-  echo " *WARNING*  The Motif menubar is currently buggy.  We recommend"
-  echo "            that you use the Lucid menubar instead.  Re-run"
-  echo "            configure with --with-menubars='lucid'."
-fi
-test "$with_scrollbars" = lucid  && echo "  Using the Lucid scrollbar."
-test "$with_scrollbars" = motif  && echo "  Using the Motif scrollbar."
-test "$with_scrollbars" = athena && echo "  Using the Athena scrollbar."
-test "$with_scrollbars" = athena3d && echo "  Using the Athena-3d scrollbar."
-test "$with_dialogs"    = motif  && echo "  Using the Motif dialog boxes."
-test "$with_dialogs"    = athena && echo "  Using the Athena dialog boxes."
-test "$with_dialogs"    = athena3d && echo "  Using the Athena-3d dialog boxes."
-
-test "${use_union_type}"     = yes && echo "  Using the union type for Lisp_Objects."
-test "${debug}"              = yes && echo "  Compiling in extra code for debugging."
-test "${memory_usage_stats}" = yes && echo "  Compiling in code for checking XEmacs memory usage."
-test "$usage_tracking"       = yes && echo "  Compiling with usage tracking active (Sun internal)."
-echo "
-"
-
+  echo "  Using the Motif menubar." >> Installation
+  echo " *WARNING*  The Motif menubar is currently buggy.  We recommend" >> Installation
+  echo "            that you use the Lucid menubar instead.  Re-run" >> Installation
+  echo "            configure with --with-menubars='lucid'." >> Installation
+fi
+test "$with_scrollbars" = lucid  && echo "  Using the Lucid scrollbar." >> Installation
+test "$with_scrollbars" = motif  && echo "  Using the Motif scrollbar." >> Installation
+test "$with_scrollbars" = athena && echo "  Using the Athena scrollbar." >> Installation
+test "$with_scrollbars" = athena3d && echo "  Using the Athena-3d scrollbar." >> Installation
+test "$with_dialogs"    = motif  && echo "  Using the Motif dialog boxes." >> Installation
+test "$with_dialogs"    = athena && echo "  Using the Athena dialog boxes." >> Installation
+test "$with_dialogs"    = athena3d && echo "  Using the Athena-3d dialog boxes." >> Installation
+
+test "${use_union_type}"     = yes && echo "  Using the union type for Lisp_Objects." >> Installation
+test "${debug}"              = yes && echo "  Compiling in extra code for debugging." >> Installation
+test "${memory_usage_stats}" = yes && echo "  Compiling in code for checking XEmacs memory usage." >> Installation
+test "$usage_tracking"       = yes && echo "  Compiling with usage tracking active (Sun internal)." >> Installation
+echo " >> Installation
+"
+
+test -r Installation && cat Installation
 
  
 # Remove any trailing slashes in these variables.
   Should XEmacs use the relocating allocator for buffers? ${rel_alloc}
   What window system should XEmacs use?                   ${window_system}${x_includes+
   Where do we find X Windows header files?                }${x_includes}${x_libraries+
-  Where do we find X Windows libraries?                   }${x_libraries}"
+  Where do we find X Windows libraries?                   }${x_libraries}" >> Installation
 
 if test -n "$site_includes"; then
-  echo "  Additional header files:                                ${site_includes}"
+  echo "  Additional header files:                                ${site_includes}" >> Installation
 fi
 
 if test -n "$site_libraries" -a -n "$site_runtime_libraries"; then
-  echo "  Additional libraries:                                   ${site_libraries} ${site_runtime_libraries}"
+  echo "  Additional libraries:                                   ${site_libraries} ${site_runtime_libraries}" >> Installation
 elif test -n "$site_libraries"; then
-  echo "  Additional libraries:                                   ${site_libraries}"
+  echo "  Additional libraries:                                   ${site_libraries}" >> Installation
 elif test -n "$site_runtime_libraries"; then
-  echo "  Additional libraries:                                   ${site_runtime_libraries}"
+  echo "  Additional libraries:                                   ${site_runtime_libraries}" >> Installation
 fi
 if test "$with_wnn"; then
-  echo "  Finding WNN includes with:                              ${wnn_includes}"
-  echo "  Loading WNN libs with:                                  ${wnn_libraries}"
+  echo "  Finding WNN includes with:                              ${wnn_includes}" >> Installation
+  echo "  Loading WNN libs with:                                  ${wnn_libraries}" >> Installation
 fi
-test "$with_socks" = yes && echo "  Compiling in support for SOCKS."
-test "$with_term"  = yes && echo "  Compiling in support for TERM."
-test "$with_xauth" = yes && echo "  Compiling in support for XAUTH."
-test "$with_xpm"   = yes && echo "  Compiling in support for XPM."
+test "$with_socks" = yes && echo "  Compiling in support for SOCKS." >> Installation
+test "$with_term"  = yes && echo "  Compiling in support for TERM." >> Installation
+test "$with_xauth" = yes && echo "  Compiling in support for XAUTH." >> Installation
+test "$with_xpm"   = yes && echo "  Compiling in support for XPM." >> Installation
 if test "$with_xmu" != yes -a "$window_system" != none; then
-  echo "  No Xmu; substituting equivalent routines."
+  echo "  No Xmu; substituting equivalent routines." >> Installation
 fi
-test "$with_xface" = yes && echo "  Compiling in support for X-Face headers."
-test "$with_gif"   = yes && echo "  Compiling in support for GIF image conversion."
-test "$with_jpeg"  = yes && echo "  Compiling in support for JPEG image conversion."
+test "$with_xface" = yes && echo "  Compiling in support for X-Face headers." >> Installation
+test "$with_gif"   = yes && echo "  Compiling in support for GIF image conversion." >> Installation
+test "$with_jpeg"  = yes && echo "  Compiling in support for JPEG image conversion." >> Installation
 if test "$with_png"   = yes -o "$with_png" = gnuz; then
-  echo "  Compiling in support for PNG image conversion."
+  echo "  Compiling in support for PNG image conversion." >> Installation
 fi
 if test "$with_png" = gnuz; then
-  echo "  (Using -lgz instead of -lz.)"
+  echo "  (Using -lgz instead of -lz.)" >> Installation
 fi
-test "$with_tiff"  = yes && echo "  Compiling in support for TIFF image conversion (not implemented)."
-test "$with_epoch" = yes && echo "  Compiling in extra Epoch compatibility."
-
-test "$with_sound" = nas    && echo "  Compiling in network sound support."
-test "$with_sound" = native && echo "  Compiling in native sound support."
-test "$with_sound" = both   && echo "  Compiling in both network and native sound support."
-test "$old_nas"    = true   && echo "        nas library lacks error trapping, will play synchronously"
-
-test "$with_database_berkdb" = yes && echo "  Compiling in support for Berkeley DB."
-test "$with_database_dbm"    = yes && echo "  Compiling in support for DBM."
-test "$with_database_gnudbm" = yes && echo "  Compiling in support for GNU DBM."
-
-test "$with_ncurses"  = yes && echo "  Compiling in support for ncurses."
-test "$with_socks"    = yes && echo "  Compiling in support for SOCKS."
-
-test "$with_mule"     = yes && echo "  Compiling in Mule (multi-lingual) support."
-test "$with_xim"      != no && echo "  Compiling in XIM (X11R5+ I18N input method) support."
-test "$with_xim" = motif    && echo "    Using Motif to provide XIM support."
-test "$with_xim" = xlib     && echo "    Using raw Xlib to provide XIM support."
-test "$with_canna"    = yes && echo "  Compiling in support for Canna on Mule."
-test "$with_wnn"      = yes && echo "  Compiling in support for WNN on Mule."
-test "$with_wnn6"     = yes && echo "  WNN support for version 6."
-test "$with_i18n3"    = yes && echo "  Compiling in I18N support, level 3 (doesn't currently work)."
-
-test "$with_cde"      = yes && echo "  Compiling in support for CDE."
-test "$with_tooltalk" = yes && echo "  Compiling in support for ToolTalk."
-test "$with_offix"    = yes && echo "  Compiling in support for OffiX."
-test "$with_mocklisp" = yes && echo "  Compiling in support for Mocklisp."
-test "$with_sparcworks" = yes && echo "  Compiling in support for SparcWorks."
-test "$with_energize" = yes && echo "  Compiling in support for Lucid Energize (doesn't currently work)."
-test "$with_menubars" = "lucid" && echo "  Using the Lucid menubar."
+test "$with_tiff"  = yes && echo "  Compiling in support for TIFF image conversion (not implemented)." >> Installation
+test "$with_epoch" = yes && echo "  Compiling in extra Epoch compatibility." >> Installation
+
+test "$with_sound" = nas    && echo "  Compiling in network sound support." >> Installation
+test "$with_sound" = native && echo "  Compiling in native sound support." >> Installation
+test "$with_sound" = both   && echo "  Compiling in both network and native sound support." >> Installation
+test "$old_nas"    = true   && echo "        nas library lacks error trapping, will play synchronously" >> Installation
+
+test "$with_database_berkdb" = yes && echo "  Compiling in support for Berkeley DB." >> Installation
+test "$with_database_dbm"    = yes && echo "  Compiling in support for DBM." >> Installation
+test "$with_database_gnudbm" = yes && echo "  Compiling in support for GNU DBM." >> Installation
+
+test "$with_ncurses"  = yes && echo "  Compiling in support for ncurses." >> Installation
+test "$with_socks"    = yes && echo "  Compiling in support for SOCKS." >> Installation
+
+test "$with_mule"     = yes && echo "  Compiling in Mule (multi-lingual) support." >> Installation
+test "$with_xim"      != no && echo "  Compiling in XIM (X11R5+ I18N input method) support." >> Installation
+test "$with_xim" = motif    && echo "    Using Motif to provide XIM support." >> Installation
+test "$with_xim" = xlib     && echo "    Using raw Xlib to provide XIM support." >> Installation
+test "$with_canna"    = yes && echo "  Compiling in support for Canna on Mule." >> Installation
+test "$with_wnn"      = yes && echo "  Compiling in support for WNN on Mule." >> Installation
+test "$with_wnn6"     = yes && echo "  WNN support for version 6." >> Installation
+test "$with_i18n3"    = yes && echo "  Compiling in I18N support, level 3 (doesn't currently work)." >> Installation
+
+test "$with_cde"      = yes && echo "  Compiling in support for CDE." >> Installation
+test "$with_tooltalk" = yes && echo "  Compiling in support for ToolTalk." >> Installation
+test "$with_offix"    = yes && echo "  Compiling in support for OffiX." >> Installation
+test "$with_mocklisp" = yes && echo "  Compiling in support for Mocklisp." >> Installation
+test "$with_sparcworks" = yes && echo "  Compiling in support for SparcWorks." >> Installation
+test "$with_energize" = yes && echo "  Compiling in support for Lucid Energize (doesn't currently work)." >> Installation
+test "$with_menubars" = "lucid" && echo "  Using the Lucid menubar." >> Installation
 if test "$with_menubars" = "motif"; then
-  echo "  Using the Motif menubar."
-  echo " *WARNING*  The Motif menubar is currently buggy.  We recommend"
-  echo "            that you use the Lucid menubar instead.  Re-run"
-  echo "            configure with --with-menubars='lucid'."
+  echo "  Using the Motif menubar." >> Installation
+  echo " *WARNING*  The Motif menubar is currently buggy.  We recommend" >> Installation
+  echo "            that you use the Lucid menubar instead.  Re-run" >> Installation
+  echo "            configure with --with-menubars='lucid'." >> Installation
 fi
-test "$with_scrollbars" = lucid  && echo "  Using the Lucid scrollbar."
-test "$with_scrollbars" = motif  && echo "  Using the Motif scrollbar."
-test "$with_scrollbars" = athena && echo "  Using the Athena scrollbar."
-test "$with_scrollbars" = athena3d && echo "  Using the Athena-3d scrollbar."
-test "$with_dialogs"    = motif  && echo "  Using the Motif dialog boxes."
-test "$with_dialogs"    = athena && echo "  Using the Athena dialog boxes."
-test "$with_dialogs"    = athena3d && echo "  Using the Athena-3d dialog boxes."
-
-test "${use_union_type}"     = yes && echo "  Using the union type for Lisp_Objects."
-test "${debug}"              = yes && echo "  Compiling in extra code for debugging."
-test "${memory_usage_stats}" = yes && echo "  Compiling in code for checking XEmacs memory usage."
-test "$usage_tracking"       = yes && echo "  Compiling with usage tracking active (Sun internal)."
-echo "
+test "$with_scrollbars" = lucid  && echo "  Using the Lucid scrollbar." >> Installation
+test "$with_scrollbars" = motif  && echo "  Using the Motif scrollbar." >> Installation
+test "$with_scrollbars" = athena && echo "  Using the Athena scrollbar." >> Installation
+test "$with_scrollbars" = athena3d && echo "  Using the Athena-3d scrollbar." >> Installation
+test "$with_dialogs"    = motif  && echo "  Using the Motif dialog boxes." >> Installation
+test "$with_dialogs"    = athena && echo "  Using the Athena dialog boxes." >> Installation
+test "$with_dialogs"    = athena3d && echo "  Using the Athena-3d dialog boxes." >> Installation
+
+test "${use_union_type}"     = yes && echo "  Using the union type for Lisp_Objects." >> Installation
+test "${debug}"              = yes && echo "  Compiling in extra code for debugging." >> Installation
+test "${memory_usage_stats}" = yes && echo "  Compiling in code for checking XEmacs memory usage." >> Installation
+test "$usage_tracking"       = yes && echo "  Compiling with usage tracking active (Sun internal)." >> Installation
+echo " >> Installation
 "
 
+test -r Installation && cat Installation
 dnl ############################################################################
 dnl #                                Now generate!                             #
 dnl ############################################################################
+#		    Possible categories for a PR.
+#
+# Any line which begins with a `#' is considered a comment, and GNATS
+# will ignore it. 
+#
+# Each entry has the format:
+#
+# 	category:description:responsible:notify
+#
+# * `category' is the name of the classification for the PR.
+# * `description' can be a normal text description for the
+#   category, like "Development Tools" for the `tools' category.
+# * `responsible' gives the name (which can be found in the remote
+#   file) of the person who will be given responsibility for any PR
+#   appearing in this category.
+# * `notify' are other email addresses which should be given copies of
+#    any PR in this category.
+#
+# The following category is mandatory for GNATS to work.
+#
+pending:Category for faulty PRs:gnats-admin:
+#
+# Sample categories:
+#
+auxillary:Auxillary Programs:gnats-admin:
+configuration:Configuration:gnats-admin:mrb@eng.sun.com
+documentation:Documentation Bug:gnats-admin:weiner@infodock.com
+frames:X11 Frames:gnats-admin:
+i18n:I18n Internationalization:gnats-admin:mrb@eng.sun.com
+lisp:Emacs Lisp code:gnats-admin:
+menubars:X11 menubars:gnats-admin:
+misc:Miscellaneous:gnats-admin:
+performance:Performance Issues:gnats-admin:dmoore@ucsd.edu
+redisplay:Redisplay Issues:gnats-admin:cthomp@xemacs.org
+scrollbars:X11 scrollbars:gnats-amdin:mrb@eng.sun.com
+tooblbars:X11 toolbars:gnats-admin:
+test:*Test Category:gnats-admin:
 	        XEmacs User's Guide for XEmacs 20.0.
 * XEmacs-FAQ::	XEmacs Frequently Asked Questions for 20.0.
 * Internals::	Guide to the internals of XEmacs.
+* send-pr::	Submitting Bug Reports
+* gnats::	GNU Problem Report Management System
 
 Packages:
 

lib-src/ChangeLog

+Mon Mar 17 10:12:03 1997  Steven L Baur  <steve@altair.xemacs.org>
+
+	* Makefile.in.in (INSTALLABLE_SCRIPTS): Add install-sid and
+	send-pr (from GNATS).
+
+	* update-elc.sh (prune_vc): Use full path to cleantree.el.
+	(NUMTOCOMPILE): Remove useless rule to recompile out-of-date .elcs.
+
+Sun Mar 16 21:13:29 1997  Steven L Baur  <steve@altair.xemacs.org>
+
+	* install-sid: New file (GNATS integration).
+
+	* send-pr: New file (GNATS integration).
+
 Fri Mar 14 17:59:57 1997  Steven L Baur  <steve@altair.xemacs.org>
 
 	* update-elc.sh (ignore_dirs): Build VM with `make autoload'.

lib-src/Makefile.in.in

 /* Things that a user might actually run,
    which should be installed in bindir. */
 INSTALLABLES = etags ctags emacsclient b2m gnuclient gnuattach gnudoit
-INSTALLABLE_SCRIPTS = rcs-checkin pstogif
+INSTALLABLE_SCRIPTS = rcs-checkin pstogif install-sid send-pr
 
 /* Things that Emacs runs internally, or during the build process,
    which should not be installed in bindir. */
 /* Like UTILITIES, but they are not system-dependent, and should not be
    deleted by the distclean target. */
 TM_SCRIPTS=tm-au tm-file tm-html tm-image tm-mpeg tm-plain tm-ps tmdecode
-SCRIPTS= rcs2log vcdiff $(TM_SCRIPTS)
+SCRIPTS= rcs2log vcdiff install-sid send-pr $(TM_SCRIPTS)
 
 EXECUTABLES= ${UTILITIES} ${INSTALLABLES} ${SCRIPTS} ${INSTALLABLE_SCRIPTS}
 

lib-src/install-sid

+#!/bin/sh
+# Drop in the SUBMITTER id into a site's installed send-pr script.
+# Copyright (C) 1993 Free Software Foundation, Inc.
+# Contributed by Brendan Kehoe (brendan@cygnus.com), based on a
+# version written by Heinz G. Seidl (hgs@ide.com).
+#
+# This file is part of GNU GNATS.
+#
+# GNU GNATS is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# GNU GNATS is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU GNATS; see the file COPYING.  If not, write to
+# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+
+COMMAND=`echo $0 | sed -e 's,.*/,,g'`
+USAGE="Usage: $COMMAND [--install-dir=prefix] [--help] [--version] submitter-id"
+
+VERSION=3.101
+
+BINDIR=/usr/bin
+
+SUBMITTER=
+TEMP=/tmp/sp$$
+
+if [ $# -eq 0 ]; then
+  echo "$USAGE"
+  exit 1
+fi
+
+while [ $# -gt 0 ]; do
+  case "$1" in
+    -install-dir=*|--install-dir=*|--install-di=*|--install-d=*|--install-=*|--install=*|--instal=*|--insta=*|--inst=*|--ins=*|--in=*|--i=*)
+    I=`echo "$1" | sed 's/-*i[a-z\-]*=//'`
+    BINDIR=$I/bin ;;
+    --version) echo $COMMAND version $VERSION ; exit 1 ;;
+    -*) echo "$USAGE" ; exit 1 ;;
+    *) SUBMITTER=$1 ;;
+  esac
+  shift
+done
+
+path=`echo $0 | sed -e "s;${COMMAND};;"`
+
+[ -z "$path" ] && path=.
+
+examinebindir=yes
+
+if [ "$examinebindir" = yes ] && [ -f $BINDIR/send-pr ]; then
+  SPPATHLIST=$BINDIR/send-pr
+else
+      if [ -f $path/send-pr ]; then
+	 SPPATHLIST=$path/send-pr
+      else
+	 echo "$COMMAND: cannot find \`$BINDIR/send-pr' or \`$path/send-pr'" >&2
+	 exit 1
+      fi
+fi
+
+trap 'rm -f $TEMP ; exit 0' 0
+trap 'echo "$COM: Aborting ..."; rm -f $TEMP ; exit 1' 1 2 3 13 15
+
+for SPPATH in $SPPATHLIST; do
+   sed -e "s/^SUBMITTER=.*/SUBMITTER=${SUBMITTER}/" $SPPATH > $TEMP
+
+   if grep $SUBMITTER $TEMP > /dev/null; then
+      cp $SPPATH $SPPATH.orig &&
+      rm -f $SPPATH &&
+      cp $TEMP $SPPATH &&
+      chmod a+rx $SPPATH &&
+      rm -f $TEMP $SPPATH.orig ||
+      { echo "$COMMAND: unable to replace send-pr" >&2 ; exit 1; }  
+   else
+      echo "$COMMAND: something went wrong when sed-ing the submitter into send-pr" >&2
+      exit 1
+   fi
+done
+
+echo "$COMMAND: \`$SUBMITTER' is now the default submitter ID for send-pr"
+
+exit 0
+#!/bin/sh
+# Submit a problem report to a GNATS site.
+# Copyright (C) 1993 Free Software Foundation, Inc.
+# Contributed by Brendan Kehoe (brendan@cygnus.com), based on a
+# version written by Heinz G. Seidl (hgs@cygnus.com).
+#
+# This file is part of GNU GNATS.
+#
+# GNU GNATS is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# GNU GNATS is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU GNATS; see the file COPYING.  If not, write to
+# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+
+# The version of this send-pr.
+VERSION=3.101
+
+# The submitter-id for your site.
+SUBMITTER=unknown
+
+# Where the GNATS directory lives, if at all.
+[ -z "$GNATS_ROOT" ] && 
+GNATS_ROOT=/usr/lib/gnats/gnats-db
+
+# The default mail address for PR submissions. 
+GNATS_ADDR=bugs@altair.xemacs.org
+
+# Where the gnats category tree lives.
+DATADIR=/usr/share
+
+# If we've been moved around, try using GCC_EXEC_PREFIX.
+[ ! -d $DATADIR/gnats -a -d "$GCC_EXEC_PREFIX" ] && 
+  DATADIR=${GCC_EXEC_PREFIX}../../../lib
+
+
+# The default release for this host.
+DEFAULT_RELEASE="gnats-3.101"
+
+# The default organization.
+DEFAULT_ORGANIZATION="XEmacs Users"
+
+# The default site to look for.
+GNATS_SITE=altair.xemacs.org
+
+# Newer config information?
+[ -f ${GNATS_ROOT}/gnats-adm/config ] && . ${GNATS_ROOT}/gnats-adm/config
+
+# What mailer to use.  This must come after the config file, since it is
+# host-dependent.
+MAIL_AGENT="/usr/lib/sendmail -oi -t"
+
+# How to read the passwd database.
+PASSWD="cat /etc/passwd"
+
+ECHON=bsd
+
+if [ $ECHON = bsd ] ; then
+  ECHON1="echo -n"
+  ECHON2=
+elif [ $ECHON = sysv ] ; then
+  ECHON1=echo
+  ECHON2='\c'
+else
+  ECHON1=echo
+  ECHON2=
+fi
+
+#
+
+if [ -z "$TMPDIR" ]; then
+  TMPDIR=/tmp
+else
+  if [ "`echo $TMPDIR | grep '/$'`" != "" ]; then
+    TMPDIR="`echo $TMPDIR | sed -e 's,/$,,'`"
+  fi
+fi
+
+TEMP=$TMPDIR/p$$
+BAD=$TMPDIR/pbad$$
+REF=$TMPDIR/pf$$
+
+# find a user name
+if [ "$LOGNAME" = "" ]; then
+	if [ "$USER" != "" ]; then
+		LOGNAME="$USER"
+	else
+		LOGNAME="UNKNOWN"
+	fi
+fi
+
+FROM="$LOGNAME"
+if [ -z "$REPLYTO" ]; then
+  REPLYTO="$LOGNAME"
+fi
+
+# Find out the name of the originator of this PR.
+if [ -n "$NAME" ]; then
+  ORIGINATOR="$NAME"
+elif [ -f $HOME/.fullname ]; then
+  ORIGINATOR="`sed -e '1q' $HOME/.fullname`"
+else
+  # Must use temp file due to incompatibilities in quoting behavior
+  # and to protect shell metacharacters in the expansion of $LOGNAME
+  $PASSWD | grep "^$LOGNAME:" | awk -F: '{print $5}' | sed -e 's/,.*//' > $TEMP
+  ORIGINATOR="`cat $TEMP`"
+  rm -f $TEMP
+fi
+
+if [ -n "$ORGANIZATION" ]; then
+  if [ -f "$ORGANIZATION" ]; then
+    ORGANIZATION="`cat $ORGANIZATION`"
+  fi
+else
+  if [ -n "$DEFAULT_ORGANIZATION" ]; then
+    ORGANIZATION="$DEFAULT_ORGANIZATION"
+  elif [ -f $HOME/.organization ]; then
+    ORGANIZATION="`cat $HOME/.organization`"
+  elif [ -f $HOME/.signature ]; then
+    ORGANIZATION="`cat $HOME/.signature`"
+  fi
+fi
+
+# If they don't have a preferred editor set, then use
+if [ -z "$VISUAL" ]; then
+  if [ -z "$EDITOR" ]; then
+    EDIT=vi
+  else
+    EDIT="$EDITOR"
+  fi
+else
+  EDIT="$VISUAL"
+fi
+
+# Find out some information.
+SYSTEM=`( [ -f /bin/uname ] && /bin/uname -a ) || \
+        ( [ -f /usr/bin/uname ] && /usr/bin/uname -a ) || echo ""`
+ARCH=`[ -f /bin/arch ] && /bin/arch`
+MACHINE=`[ -f /bin/machine ] && /bin/machine`
+
+COMMAND=`echo $0 | sed -e 's,.*/,,'`
+USAGE="Usage: $COMMAND [-PVL] [-t address] [-f filename] [-s severity]
+       [-c address] [--request-id] [--version]"
+REMOVE=
+BATCH=
+CC=
+SEVERITY_C=
+
+while [ $# -gt 0 ]; do
+  case "$1" in
+    -r) ;; 		# Ignore for backward compat.
+    -t | --to) if [ $# -eq 1 ]; then echo "$USAGE"; exit 1; fi
+	shift ; GNATS_ADDR="$1"
+	EXPLICIT_GNATS_ADDR=true
+        ;;
+    -f | --file) if [ $# -eq 1 ]; then echo "$USAGE"; exit 1; fi
+	shift ; IN_FILE="$1"
+	if [ "$IN_FILE" != "-" -a ! -r "$IN_FILE" ]; then
+	  echo "$COMMAND: cannot read $IN_FILE"
+	  exit 1
+	fi
+	;;
+    -b | --batch) BATCH=true ;;
+    -c | --cc) if [ $# -eq 1 ]; then echo "$USAGE"; exit 1; fi
+	shift ; CC="$1"
+	;;
+    -s | --severity) if [ $# -eq 1 ]; then echo "$USAGE"; exit 1; fi
+	shift ; SEVERITY_C="$1"
+	;;
+    -p | -P | --print) PRINT=true ;;
+    -L | --list) FORMAT=norm ;;
+    -l | -CL | --lisp) FORMAT=lisp ;;
+    --request-id) REQUEST_ID=true ;;
+    -h | --help) echo "$USAGE"; exit 0 ;;
+    -V | --version) echo "$VERSION"; exit 0 ;;
+    -*) echo "$USAGE" ; exit 1 ;;
+    *) if [ -z "$USER_GNATS_SITE" ]; then
+	 if [ ! -r "$DATADIR/gnats/$1" ]; then
+	   echo "$COMMAND: the GNATS site $1 does not have a categories list."
+	   exit 1
+	 else
+	   # The site name is the alias they'll have to have created.
+	   USER_GNATS_SITE=$1
+	 fi
+       else
+	 echo "$USAGE" ; exit 1
+       fi
+       ;;
+ esac
+ shift
+done
+
+if [ -n "$USER_GNATS_SITE" ] && [ "$USER_GNATS_SITE" != "$GNATS_SITE" ]; then
+  GNATS_SITE=$USER_GNATS_SITE
+  GNATS_ADDR=$USER_GNATS_SITE-gnats
+fi
+
+if [ "$SUBMITTER" = "unknown" -a -z "$REQUEST_ID" -a -z "$IN_FILE" ]; then
+  cat << '__EOF__'
+It seems that send-pr is not installed with your unique submitter-id.
+You need to run
+
+          install-sid YOUR-SID
+
+where YOUR-SID is the identification code you received with `send-pr'.
+`send-pr' will automatically insert this value into the template field
+`>Submitter-Id'.  If you've downloaded `send-pr' from the Net, use `net'
+for this value.  If you do not know your id, run `send-pr --request-id' to 
+get one from your support site.
+__EOF__
+  exit 1
+fi
+
+if [ -r "$DATADIR/gnats/$GNATS_SITE" ]; then
+  CATEGORIES=`grep -v '^#' $DATADIR/gnats/$GNATS_SITE | sort`
+else
+  echo "$COMMAND: could not read $DATADIR/gnats/$GNATS_SITE for categories list."
+  exit 1
+fi
+
+if [ -z "$CATEGORIES" ]; then
+  echo "$COMMAND: the categories list for $GNATS_SITE was empty!"
+  exit 1
+fi
+
+case "$FORMAT" in
+  lisp) echo "$CATEGORIES" | \
+        awk 'BEGIN {printf "( "} {printf "(\"%s\") ",$0} END {printf ")\n"}'
+        exit 0
+        ;;
+  norm) l=`echo "$CATEGORIES" | \
+	awk 'BEGIN {max = 0; } { if (length($0) > max) { max = length($0); } }
+	     END {print max + 1;}'`
+	c=`expr 70 / $l`
+	if [ $c -eq 0 ]; then c=1; fi
+	echo "$CATEGORIES" | \
+        awk 'BEGIN {print "Known categories:"; i = 0 }
+          { printf ("%-'$l'.'$l's", $0); if ((++i % '$c') == 0) { print "" } }
+            END { print ""; }'
+        exit 0
+        ;;
+esac
+
+ORIGINATOR_C='<name of the PR author (one line)>'
+ORGANIZATION_C='<organization of PR author (multiple lines)>'
+CONFIDENTIAL_C='<[ yes | no ] (one line)>'
+SYNOPSIS_C='<synopsis of the problem (one line)>'
+if [ -z "$SEVERITY_C" ]; then
+  SEVERITY_C='<[ non-critical | serious | critical ] (one line)>'
+fi
+PRIORITY_C='<[ low | medium | high ] (one line)>'
+CATEGORY_C='<name of the product (one line)>'
+CLASS_C='<[ sw-bug | doc-bug | change-request | support ] (one line)>'
+RELEASE_C='<release number or tag (one line)>'
+ENVIRONMENT_C='<machine, os, target, libraries (multiple lines)>'
+DESCRIPTION_C='<precise description of the problem (multiple lines)>'
+HOW_TO_REPEAT_C='<code/input/activities to reproduce the problem (multiple lines)>'
+FIX_C='<how to correct or work around the problem, if known (multiple lines)>'
+
+# Catch some signals. ($xs kludge needed by Sun /bin/sh)
+xs=0
+trap 'rm -f $REF $TEMP; exit $xs' 0
+trap 'echo "$COMMAND: Aborting ..."; rm -f $REF $TEMP; xs=1; exit' 1 2 3 13 15
+
+# If they told us to use a specific file, then do so.
+if [ -n "$IN_FILE" ]; then
+  if [ "$IN_FILE" = "-" ]; then
+    # The PR is coming from the standard input.
+    if [ -n "$EXPLICIT_GNATS_ADDR" ]; then
+      sed -e "s;^[Tt][Oo]:.*;To: $GNATS_ADDR;" > $TEMP
+    else
+      cat > $TEMP
+    fi
+  else
+    # Use the file they named.
+    if [ -n "$EXPLICIT_GNATS_ADDR" ]; then
+      sed -e "s;^[Tt][Oo]:.*;To: $GNATS_ADDR;" $IN_FILE > $TEMP
+    else
+      cat $IN_FILE > $TEMP
+    fi
+  fi
+else
+
+  if [ -n "$PR_FORM" -a -z "$PRINT_INTERN" ]; then
+    # If their PR_FORM points to a bogus entry, then bail.
+    if [ ! -f "$PR_FORM" -o ! -r "$PR_FORM" -o ! -s "$PR_FORM" ]; then
+      echo "$COMMAND: can't seem to read your template file (\`$PR_FORM'), ignoring PR_FORM"
+      sleep 1
+      PRINT_INTERN=bad_prform
+    fi
+  fi
+
+  if [ -n "$PR_FORM" -a -z "$PRINT_INTERN" ]; then
+    cp $PR_FORM $TEMP || 
+      ( echo "$COMMAND: could not copy $PR_FORM" ; xs=1; exit )
+  else
+    for file in $TEMP $REF ; do
+      cat  > $file << '__EOF__'
+SEND-PR: -*- send-pr -*-
+SEND-PR: Lines starting with `SEND-PR' will be removed automatically, as
+SEND-PR: will all comments (text enclosed in `<' and `>').
+SEND-PR: 
+SEND-PR: Please consult the send-pr man page `send-pr(1)' or the Texinfo
+SEND-PR: manual if you are not sure how to fill out a problem report.
+SEND-PR:
+SEND-PR: Choose from the following categories:
+SEND-PR:
+__EOF__
+
+      # Format the categories so they fit onto lines.
+	l=`echo "$CATEGORIES" | \
+	awk 'BEGIN {max = 0; } { if (length($0) > max) { max = length($0); } }
+	     END {print max + 1;}'`
+	c=`expr 61 / $l`
+	if [ $c -eq 0 ]; then c=1; fi
+	echo "$CATEGORIES" | \
+        awk 'BEGIN {printf "SEND-PR: "; i = 0 }
+          { printf ("%-'$l'.'$l's", $0);
+	    if ((++i % '$c') == 0) { printf "\nSEND-PR: " } }
+            END { printf "\nSEND-PR:\n"; }' >> $file
+
+      cat >> $file << __EOF__
+To: $GNATS_ADDR
+Subject: 
+From: $FROM
+Reply-To: $REPLYTO
+Cc: $CC
+X-send-pr-version: $VERSION
+
+
+>Submitter-Id:	$SUBMITTER
+>Originator:	$ORIGINATOR
+>Organization:
+${ORGANIZATION-	$ORGANIZATION_C}
+>Confidential:	$CONFIDENTIAL_C
+>Synopsis:	$SYNOPSIS_C
+>Severity:	$SEVERITY_C
+>Priority:	$PRIORITY_C
+>Category:	$CATEGORY_C
+>Class:		$CLASS_C
+>Release:	${DEFAULT_RELEASE-$RELEASE_C}
+>Environment:
+	$ENVIRONMENT_C
+`[ -n "$SYSTEM" ] && echo System: $SYSTEM`
+`[ -n "$ARCH" ] && echo Architecture: $ARCH`
+`[ -n "$MACHINE" ] && echo Machine: $MACHINE`
+>Description:
+	$DESCRIPTION_C
+>How-To-Repeat:
+	$HOW_TO_REPEAT_C
+>Fix:
+	$FIX_C
+__EOF__
+    done
+  fi
+
+  if [ "$PRINT" = true -o "$PRINT_INTERN" = true ]; then
+    cat $TEMP
+    xs=0; exit
+  fi
+
+  chmod u+w $TEMP
+  if [ -z "$REQUEST_ID" ]; then
+    eval $EDIT $TEMP
+  else
+    ed -s $TEMP << '__EOF__'
+/^Subject/s/^Subject:.*/Subject: request for a customer id/
+/^>Category/s/^>Category:.*/>Category: send-pr/
+w
+q
+__EOF__
+  fi
+
+  if cmp -s $REF $TEMP ; then
+    echo "$COMMAND: problem report not filled out, therefore not sent"
+    xs=1; exit
+  fi
+fi
+
+#
+#	Check the enumeration fields
+
+# This is a "sed-subroutine" with one keyword parameter 
+# (with workaround for Sun sed bug)
+#
+SED_CMD='
+/$PATTERN/{
+s|||
+s|<.*>||
+s|^[ 	]*||
+s|[ 	]*$||
+p
+q
+}'
+
+
+while [ -z "$REQUEST_ID" ]; do
+  CNT=0
+
+  # 1) Confidential
+  #
+  PATTERN=">Confidential:"
+  CONFIDENTIAL=`eval sed -n -e "\"$SED_CMD\"" $TEMP`
+  case "$CONFIDENTIAL" in
+    ""|yes|no) CNT=`expr $CNT + 1` ;;
+    *) echo "$COMMAND: \`$CONFIDENTIAL' is not a valid value for \`Confidential'." ;;
+  esac
+  #
+  # 2) Severity
+  #
+  PATTERN=">Severity:"
+  SEVERITY=`eval sed -n -e "\"$SED_CMD\"" $TEMP`
+  case "$SEVERITY" in
+    ""|non-critical|serious|critical) CNT=`expr $CNT + 1` ;;
+    *)  echo "$COMMAND: \`$SEVERITY' is not a valid value for \`Severity'."
+  esac
+  #
+  # 3) Priority
+  #
+  PATTERN=">Priority:"
+  PRIORITY=`eval sed -n -e "\"$SED_CMD\"" $TEMP`
+  case "$PRIORITY" in
+    ""|low|medium|high) CNT=`expr $CNT + 1` ;;
+    *)  echo "$COMMAND: \`$PRIORITY' is not a valid value for \`Priority'."
+  esac
+  #
+  # 4) Category
+  #
+  PATTERN=">Category:"
+  CATEGORY=`eval sed -n -e "\"$SED_CMD\"" $TEMP`
+  FOUND=
+  for C in $CATEGORIES
+  do
+    if [ "$C" = "$CATEGORY" ]; then FOUND=true ; break ; fi
+  done
+  if [ -n "$FOUND" ]; then
+    CNT=`expr $CNT + 1`	
+  else
+    if [ -z "$CATEGORY" ]; then
+      echo "$COMMAND: you must include a Category: field in your report."
+    else
+      echo "$COMMAND: \`$CATEGORY' is not a known category."
+    fi
+  fi
+  #
+  # 5) Class
+  #
+  PATTERN=">Class:"
+  CLASS=`eval sed -n -e "\"$SED_CMD\"" $TEMP`
+  case "$CLASS" in
+    ""|sw-bug|doc-bug|change-request|support) CNT=`expr $CNT + 1` ;;
+    *)  echo "$COMMAND: \`$CLASS' is not a valid value for \`Class'."
+  esac
+
+  [ $CNT -lt 5 -a -z "$BATCH" ] && 
+    echo "Errors were found with the problem report."
+
+  while true; do
+    if [ -z "$BATCH" ]; then
+      $ECHON1 "a)bort, e)dit or s)end? $ECHON2"
+      read input
+    else
+      if [ $CNT -eq 5 ]; then
+        input=s
+      else
+        input=a
+      fi
+    fi
+    case "$input" in
+      a*)
+	if [ -z "$BATCH" ]; then
+	  echo "$COMMAND: the problem report remains in $BAD and is not sent."
+	  mv $TEMP $BAD
+        else
+	  echo "$COMMAND: the problem report is not sent."
+	fi
+	xs=1; exit
+	;;
+      e*)
+        eval $EDIT $TEMP
+	continue 2
+	;;
+      s*)
+	break 2
+	;;
+    esac
+  done
+done
+#
+#	Remove comments and send the problem report
+#	(we have to use patterns, where the comment contains regex chars)
+#
+# /^>Originator:/s;$ORIGINATOR;;
+sed  -e "
+/^SEND-PR:/d
+/^>Organization:/,/^>[A-Za-z-]*:/s;$ORGANIZATION_C;;
+/^>Confidential:/s;<.*>;;
+/^>Synopsis:/s;$SYNOPSIS_C;;
+/^>Severity:/s;<.*>;;
+/^>Priority:/s;<.*>;;
+/^>Category:/s;$CATEGORY_C;;
+/^>Class:/s;<.*>;;
+/^>Release:/,/^>[A-Za-z-]*:/s;$RELEASE_C;;
+/^>Environment:/,/^>[A-Za-z-]*:/s;$ENVIRONMENT_C;;
+/^>Description:/,/^>[A-Za-z-]*:/s;$DESCRIPTION_C;;
+/^>How-To-Repeat:/,/^>[A-Za-z-]*:/s;$HOW_TO_REPEAT_C;;
+/^>Fix:/,/^>[A-Za-z-]*:/s;$FIX_C;;
+" $TEMP > $REF
+
+if $MAIL_AGENT < $REF; then
+  echo "$COMMAND: problem report sent"
+  xs=0; exit
+else
+  echo "$COMMAND: mysterious mail failure."
+  if [ -z "$BATCH" ]; then
+    echo "$COMMAND: the problem report remains in $BAD and is not sent."
+    mv $REF $BAD
+  else
+    echo "$COMMAND: the problem report is not sent."
+  fi
+  xs=1; exit
+fi

lib-src/update-elc.sh

 
 prune_vc="( -name SCCS -o -name RCS -o -name CVS ) -prune -o"
 
-$EMACS -batch -q -no-site-file -l cleantree -f batch-remove-old-elc lisp
+$EMACS -batch -q -l `pwd`/lisp/prim/cleantree -f batch-remove-old-elc lisp
 
 # $els  is a list of all .el  files
 # $elcs is a list of all .elc files
  xargs -t -n$NUMTOCOMPILE $BYTECOMP -f batch-byte-compile
 echo "Compiling files without .elc... Done"
 
-
-echo "Compiling files with out-of-date .elc..."
-find lisp/* $prune_vc -type d -print | \
- sed "$ignore_pattern" | \
- xargs -t $BYTECOMP -f batch-byte-recompile-directory
-echo "Compiling files with out-of-date .elc... Done"
-
 eval "$make_special_commands"
+Mon Mar 17 15:34:06 1997  Steven L Baur  <steve@altair.xemacs.org>
+
+	* comint/comint.el (comint-input-setup): Require comint-xemacs.
+
+	* utils/autoload.el (autoload-snarf-defcustom): Don't snarf from
+	auto-autoloads.el.
+
+	* comint/comint-xemacs.el: New file.  Contains face declarations
+	for comint.
+
+	* comint/comint.el: Remove inline defface.
+
 Sat Mar 15 15:14:06 1997  Steven L Baur  <steve@altair.xemacs.org>
 
 	* prim/loadup.el: Add prim/auto-customize.elc to dumped files.

lisp/comint/comint-xemacs.el

+;;; comint-xemacs.el --- Face customizations for comint
+
+;; Copyright (C) 1997 by Free Software Foundation, Inc.
+
+;; Author: Steven L Baur <steve@altair.xemacs.org>
+;; Keywords: help, faces
+
+;; This file is part of XEmacs.
+
+;; XEmacs is free software; you can redistribute it and/or modify it
+;; under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; XEmacs is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with XEmacs; see the file COPYING.  If not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; Synched up with: Not in FSF
+
+;;; Commentary:
+
+;; Declare customizable faces for comint outside the main code so it can
+;; be dumped with XEmacs.
+
+;;; Code:
+
+(defface comint-input-face '((((class color)
+			      (background dark))
+			     (:foreground "red"))
+			    (((class color)
+			      (background light))
+			     (:foreground "blue"))
+			    (((class mono))
+			     (:bold t))
+			    (((class grayscale))
+			     (:bold t))
+			    (t 
+			     (:bold t)))
+  "How to display user input for comint shells."
+  :group 'comint-input-face)
+
+
+
+(provide 'comint-xemacs)
+
+;;; comint-xemacs.el ends here

lisp/comint/comint.el

 (put 'comint-scroll-show-maximum-output 'permanent-local t)
 (put 'comint-ptyp 'permanent-local t)
 
-(defface comint-input-face '((((class color)
-			      (background dark))
-			     (:foreground "red"))
-			    (((class color)
-			      (background light))
-			     (:foreground "blue"))
-			    (((class mono))
-			     (:bold t))
-			    (((class grayscale))
-			     (:bold t))
-			    (t 
-			     (:bold t)))
-  "How to display user input for comint shells."
-  :group 'comint-input-face)
-
 
 
 (defun comint-mode ()
 
 (defun comint-input-setup ()
   "Insure the comint-input-extent is ready."
+  (require 'comint-xemacs)
   (setq comint-input-extent (make-extent (point) (point-max)))
   (set-extent-property comint-input-extent 'detachable nil)
   (set-extent-property comint-input-extent 'start-closed t)

lisp/custom/ChangeLog

+Mon Mar 17 11:32:51 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 1.64 released.
+
+Mon Mar 17 10:43:10 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* cus-edit.el (custom-group-menu-create): Split definition into
+	XEmacs and Emacs.  XEmacs uses :filter.  Emacs limits
+	`custom-menu-nesting'. 
+	(custom-menu-create): Do noy limit `custom-menu-nesting' here. 
+	(custom-menu-update): Removed XEmacs support.
+
+	* custom.el (custom-help-menu): Use `custom-menu-create' in XEmacs
+	:filter.
+
 Fri Mar 14 18:03:55 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
 
 	* Version 1.63 released.

lisp/custom/cus-edit.el

 ;;
 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
 ;; Keywords: help, faces
-;; Version: 1.63
+;; Version: 1.64
 ;; X-URL: http://www.dina.kvl.dk/~abraham/custom/
 
 ;;; Commentary:
 				   ':style 'toggle
 				   ':selected symbol)))
 
-(defun custom-group-menu-create (widget symbol)
-  "Ignoring WIDGET, create a menu entry for customization group SYMBOL."
-  (custom-menu-create symbol))
+(if (string-match "XEmacs" emacs-version)
+    ;; XEmacs can create menus dynamically.
+    (defun custom-group-menu-create (widget symbol)
+      "Ignoring WIDGET, create a menu entry for customization group SYMBOL."
+      `( ,(custom-unlispify-menu-entry symbol t)
+	  :filter (lambda (&rest junk)
+		    (cdr (custom-menu-create ',symbol)))))
+  ;; But emacs can't.
+  (defun custom-group-menu-create (widget symbol)
+    "Ignoring WIDGET, create a menu entry for customization group SYMBOL."
+    ;; Limit the nesting.
+    (let ((custom-menu-nesting (1- custom-menu-nesting)))
+      (custom-menu-create symbol))))
 
 (defun custom-menu-create (symbol &optional name)
   "Create menu for customization group SYMBOL.
   (let ((item (vector name
 		      `(custom-buffer-create '((,symbol custom-group)))
 		      t)))
-    (if (and (> custom-menu-nesting 0)
+    (if (and (>= custom-menu-nesting 0)
 	     (< (length (get symbol 'custom-group)) widget-menu-max-size))
-	(let ((custom-menu-nesting (1- custom-menu-nesting))
-	      (custom-prefix-list (custom-prefix-add symbol
+	(let ((custom-prefix-list (custom-prefix-add symbol
 						     custom-prefix-list)))
 	  (custom-load-symbol symbol)
 	  `(,(custom-unlispify-menu-entry symbol t)
   (add-hook 'custom-define-hook 'custom-menu-reset)
   (let* ((emacs (widget-apply '(custom-group) :custom-menu 'emacs))
 	 (menu `(,(car custom-help-menu)
-		,emacs
-		,@(cdr (cdr custom-help-menu)))))
-    (if (fboundp 'add-submenu)
-	(progn 
-	  (add-submenu '("Options") menu)
-	  (cdr emacs))
-      (let ((map (easy-menu-create-keymaps (car menu) (cdr menu))))
-	(define-key global-map [menu-bar help-menu customize-menu]
-	  (cons (car menu) map))
-	(when (fboundp 'x-popup-menu)
-	  (x-popup-menu event map))))))
+		 ,emacs
+		 ,@(cdr (cdr custom-help-menu)))))
+    (let ((map (easy-menu-create-keymaps (car menu) (cdr menu))))
+      (define-key global-map [menu-bar help-menu customize-menu]
+	(cons (car menu) map)))))
 
 ;;; Dependencies.
 

lisp/custom/cus-face.el

 ;;
 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
 ;; Keywords: help, faces
-;; Version: 1.63
+;; Version: 1.64
 ;; X-URL: http://www.dina.kvl.dk/~abraham/custom/
 
 ;;; Commentary:

lisp/custom/custom.el

 ;;
 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
 ;; Keywords: help, faces
-;; Version: 1.63
+;; Version: 1.64
 ;; X-URL: http://www.dina.kvl.dk/~abraham/custom/
 
 ;;; Commentary:
 
 ;;; Menu support
 
-(defconst custom-help-menu `("Customize"
-			     ,(if (string-match "XEmacs" emacs-version)
-				  '("Emacs" :filter custom-menu-update)
-				["Update menu..." custom-menu-update t])
-			     ["Group..." customize t]
-			     ["Variable..." customize-variable t]
-			     ["Face..." customize-face t]
-			     ["Saved..." customize-customized t]
-			     ["Apropos..." customize-apropos t])
+(defconst custom-help-menu
+  `("Customize"
+    ,(if (string-match "XEmacs" emacs-version)
+	 '("Emacs" :filter (lambda (&rest junk)
+			     (cdr (custom-menu-create 'emacs))))
+       ["Update menu..." custom-menu-update t])
+    ["Group..." customize t]
+    ["Variable..." customize-variable t]
+    ["Face..." customize-face t]
+    ["Saved..." customize-customized t]
+    ["Apropos..." customize-apropos t])
   "Customize menu")
 
 (defun custom-menu-reset ()
 	    (easy-menu-create-keymaps (car custom-help-menu)
 				      (cdr custom-help-menu))))))
 
-(unless (string-match "XEmacs" emacs-version)
+(if (string-match "XEmacs" emacs-version)
+    (autoload 'custom-menu-create "cus-edit")
   (custom-menu-reset))
 
 ;;; The End.

lisp/custom/wid-browse.el

 ;;
 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
 ;; Keywords: extensions
-;; Version: 1.63
+;; Version: 1.64
 ;; X-URL: http://www.dina.kvl.dk/~abraham/custom/
 
 ;;; Commentary:

lisp/custom/wid-edit.el

 ;;
 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
 ;; Keywords: extensions
-;; Version: 1.63
+;; Version: 1.64
 ;; X-URL: http://www.dina.kvl.dk/~abraham/custom/
 
 ;;; Commentary:

lisp/custom/widget-example.el

 ;;
 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
 ;; Keywords: help, extensions, faces, hypermedia
-;; Version: 1.63
+;; Version: 1.64
 ;; X-URL: http://www.dina.kvl.dk/~abraham/custom/
 
 (require 'widget)

lisp/custom/widget.el

 ;;
 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
 ;; Keywords: help, extensions, faces, hypermedia
-;; Version: 1.63
+;; Version: 1.64
 ;; X-URL: http://www.dina.kvl.dk/~abraham/custom/
 
 ;;; Commentary:

lisp/gnats/send-pr.el

 
 (defconst send-pr::version "3.101")
 
-(defvar gnats:root ""
+(defvar gnats:root "/usr/lib/gnats/gnats-db"
   "*The top of the tree containing the GNATS database.")
 
 ;;;;---------------------------------------------------------------------------
     ret))
 
 ;; const because it must match the script's value
-(defconst send-pr:datadir (or (gnats::get-config "DATADIR") "/usr/local/share")
+(defconst send-pr:datadir (or (gnats::get-config "DATADIR") "/usr/share")
   "*Where the `gnats' subdirectory containing category lists lives.")
 
 (defvar send-pr::sites nil
   "List of GNATS support sites; computed at runtime.")
 (defvar send-pr:default-site
-  (or (gnats::get-config "GNATS_SITE") "cygnus")
+  (or (gnats::get-config "GNATS_SITE") "altair.xemacs.org")
   "Default site to send bugs to.")
 (defvar send-pr:::site send-pr:default-site
   "The site to which a problem report is currently being submitted, or NIL
       (save-excursion
 	;; Clear cruft inserted by bdamaged .cshrcs
 	(goto-char 1)
-	(re-search-forward "^SEND-PR:")
-	(delete-region 1 (match-beginning 0)))))
+	;; XEmacs change
+	(when (re-search-forward "^SEND-PR:" nil t)
+	  (delete-region 1 (match-beginning 0))))))
   (set-buffer-modified-p nil)
   (send-pr:send-pr-mode)
   (setq send-pr:::site site)

lisp/gnus/ChangeLog

+Tue Mar 18 00:35:06 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
+
+	* gnus.el: Gnus v5.4.28 is released.
+
+Mon Mar 17 18:36:11 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+	* gnus-sum.el (gnus-update-marks): Use `list' instead of
+	`articles'.
+
+	* nndoc.el (nndoc-rfc822-forward-type-p): Renamed.
+	(nndoc-rfc822-forward-body-end-function): Ditto.
+
+Mon Mar 17 17:35:35 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
+
+	* gnus.el: Gnus v5.4.27 is released.
+
+Mon Mar 17 15:59:11 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+	* nndoc.el (nndoc-x400-forward-type-p): New function.
+	(nndoc-x400-forward-body-end-function): Ditto.
+
+	* nnfolder.el (nnfolder-adjust-min-active): Be in the right
+	buffer. 
+
+Sat Mar 15 16:09:44 1997  Steven L Baur  <steve@altair.xemacs.org>
+
+	* message.el (message-post-method): Fix typo.
+
+	* gnus-load.el (message-sending): Fix typo.
+
+Mon Mar 17 15:47:59 1997  Gordon Matzigkeit  <gord@m-tech.ab.ca>
+
+	* message.el (message-set-auto-save-file-name): Expand before
+	temping. 
+
+Mon Mar 17 15:05:44 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+	* gnus-sum.el (gnus-update-marks): Get rid of article entries of
+	articles with the default score.
+
+	* gnus-group.el (gnus-group-read-ephemeral-group): Be more careful
+	when uniquifying methods.
+
+	* gnus-sum.el (gnus-execute-command): Insert asynch into buffer.
+
+	* nnfolder.el (nnfolder-possibly-change-group): Didn't set the
+	current group.
+
+Mon Mar 17 15:03:02 1997  Paul Stodghill  <stodghil@cs.cornell.edu>
+
+	* gnus-srvr.el (gnus-server-prepare): Would infloop.
+
+Mon Mar 17 06:37:07 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+	* nnmail.el (nnmail-crosspost-link-function): Change default on
+	NT. 
+
+Fri Mar 14 12:07:12 1997  Steven L Baur  <steve@altair.xemacs.org>
+
+	* gnus-msg.el (gnus-extended-version): Add XEmacs beta # to
+	default X-Mailer/X-Newsreader.
+
+Fri Mar 14 20:57:03 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+	* nnfolder.el (nnfolder-possibly-change-group): Check folder
+	buffer. 
+
+	* nnheader.el (nnheader-parse-head): Understand Message-ID with
+	spaces. 
+	* gnus-sum.el (gnus-get-newsgroup-headers): Ditto.
+	(gnus-group-make-articles-read): Doc fix.
+
+	* nnml.el (nnml-generate-nov-databases-1): Made interactive.
+
+	* gnus-msg.el (gnus-inews-narrow-to-headers): Removed.
+	(gnus-post-news): Add `to-list' to the right group.
+
 Fri Mar 14 20:11:01 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
 	* gnus.el: Gnus v5.4.26 is released.
 
 	* nnfolder.el (nnfolder-generate-active-file): Didn't work.
 
-Fri Mar 14 12:07:12 1997  Steven L Baur  <steve@altair.xemacs.org>
-
-	* gnus-msg.el (gnus-extended-version): Add XEmacs beta # to
-	default X-Mailer/X-Newsreader.
-
 Sun Mar  9 18:38:37 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
 	* gnus.el: Gnus v5.4.25 is released.

lisp/gnus/gnus-group.el

   ;; Transform the select method into a unique server.
   (let ((saddr (intern (format "%s-address" (car method)))))
     (setq method (gnus-copy-sequence method))
-    (unless (assq saddr method)
-      (nconc method `((,saddr ,(cadr method)))))
-    (setf (cadr method) (format "%s-%d" (cadr method)
-				(incf gnus-ephemeral-group-server))))
+    (require (car method))
+    (when (boundp saddr)
+      (unless (assq saddr method)
+	(nconc method `((,saddr ,(cadr method)))))
+      (setf (cadr method) (format "%s-%d" (cadr method)
+				  (incf gnus-ephemeral-group-server)))))
   (let ((group (if (gnus-group-foreign-p group) group
 		 (gnus-group-prefixed-name group method))))
     (gnus-sethash

lisp/gnus/gnus-load.el

 (put 'nnmail 'custom-loads '("nnmail"))
 (put 'gnus-article-emphasis 'custom-loads '("gnus-art"))
 (put 'gnus-article-headers 'custom-loads '("gnus-sum" "gnus-art"))
-(put 'gnus-newsrc 'custom-loads '("gnus-start"))
 (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-exit 'custom-loads '("gnus-group"))
 (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-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-server 'custom-loads '("gnus"))
 (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-score-decay 'custom-loads '("gnus-score"))
 (put 'help 'custom-loads '("cus-edit"))
 (put 'gnus-nocem 'custom-loads '("gnus-nocem"))
-(put 'gnus-group-visual 'custom-loads '("gnus-group"))
 (put 'gnus-cite 'custom-loads '("gnus-cite"))
 (put 'gnus-demon 'custom-loads '("gnus-demon"))
 (put 'gnus-message 'custom-loads '("message"))
 (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 '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-start" "gnus-group"))
+(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-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" "gnus"))
+(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-start-server 'custom-loads '("gnus-start"))
 (put 'gnus-extract-archive 'custom-loads '("gnus-uu"))
 (put 'message 'custom-loads '("message"))
 (put 'message-sending '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 'gnus-group-new 'custom-loads '("gnus-start"))
 (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-dribble-file 'custom-loads '("gnus-start"))
 (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 'message-sending 'custom-loads '("message"))
 (put 'nnmail-prepare 'custom-loads '("nnmail"))
 (put 'picons 'custom-loads '("gnus-picon"))
 (put 'gnus-article-signature 'custom-loads '("gnus-art"))

lisp/gnus/gnus-msg.el

 		(message-mail (or to-address to-list))
 		;; Arrange for mail groups that have no `to-address' to
 		;; get that when the user sends off the mail.
-		(push (list 'gnus-inews-add-to-address group)
+		(push (list 'gnus-inews-add-to-address pgroup)
 		      message-send-actions))
 	    (set-buffer gnus-article-copy)
 	    (message-wide-reply to-address)))
      ;; Use the normal select method.
      (t gnus-select-method))))
 
-(defun gnus-inews-narrow-to-headers ()
-  (widen)
-  (narrow-to-region
-   (goto-char (point-min))
-   (or (and (re-search-forward
-	     (concat "^" (regexp-quote mail-header-separator) "$") nil t)
-	    (match-beginning 0))
-       (point-max)))
-  (goto-char (point-min)))
-
 ;;;
 ;;; Check whether the message has been sent already.
 ;;;
 (defun gnus-inews-reject-message ()
   "Check whether this message has already been sent."
   (when gnus-sent-message-ids-file
-    (let ((message-id (save-restriction (gnus-inews-narrow-to-headers)
+    (let ((message-id (save-restriction (message-narrow-to-headers)
 					(mail-fetch-field "message-id")))
 	  end)
       (when message-id
     (save-excursion
       (save-restriction
 	(widen)
-	(gnus-inews-narrow-to-headers)
+	(message-narrow-to-headers)
 	(let (gnus-deletable-headers)
 	  (if (message-news-p)
 	      (message-generate-headers message-required-news-headers)
   "Insert Gcc headers based on `gnus-outgoing-message-group'."
   (save-excursion
     (save-restriction
-      (gnus-inews-narrow-to-headers)
+      (message-narrow-to-headers)
       (let* ((group gnus-outgoing-message-group)
 	     (gcc (cond
 		   ((gnus-functionp group)
 	(setq groups (list groups)))
       (save-excursion
 	(save-restriction
-	  (gnus-inews-narrow-to-headers)
+	  (message-narrow-to-headers)
 	  (goto-char (point-max))
 	  (insert "Gcc: ")
 	  (if (and gnus-newsgroup-name

lisp/gnus/gnus-srvr.el

 	(push (cdar alist) done)
 	(cdr (setq server (pop alist)))
 	(when (and server (car server) (cdr server))
-	  (gnus-server-insert-server-line (car server) (cdr server)))))
+	  (gnus-server-insert-server-line (car server) (cdr server))))
+      (when (member (cdar alist) done)
+	(pop alist)))
     ;; Then we insert the list of servers that have been opened in
     ;; this session.
     (while opened

lisp/gnus/gnus-sum.el

 		 (const more)
 		 (sexp :menu-tag "all" t)))
 
-(defcustom gnus-summary-thread-gathering-function 'gnus-gather-threads-by-subject
+(defcustom gnus-summary-thread-gathering-function
+  'gnus-gather-threads-by-subject
   "Function used for gathering loose threads.
 There are two pre-defined functions: `gnus-gather-threads-by-subject',
 which only takes Subjects into consideration; and
 	type list newmarked symbol)
     (when info
       ;; Add all marks lists that are non-nil to the list of marks lists.
-      (while types
-	(setq type (pop types))
+      (while (setq type (pop types))
 	(when (setq list (symbol-value
 			  (setq symbol
 				(intern (format "gnus-newsgroup-%s"
 						(car type))))))
+
+	  ;; Get rid of the entries of the articles that have the
+	  ;; default score.
+	  (when (and (eq (cdr type) 'score)
+		     gnus-save-score
+		     list)
+	    (let* ((arts list)
+		   (prev (cons nil articles))
+		   (all prev))
+	      (while arts
+		(if (or (not (consp (car arts)))
+			(= (cdar arts) gnus-summary-default-score))
+		    (setcdr prev (cdr arts))
+		  (setq prev arts))
+		(setq arts (cdr arts)))
+	      (setq list (cdr all))))
+
 	  (push (cons (cdr type)
 		      (if (memq (cdr type) uncompressed) list
 			(gnus-compress-sequence
 	 xref-hashtb)))))
 
 (defun gnus-group-make-articles-read (group articles)
-  "Update the info of GROUP to say that only ARTICLES are unread."
+  "Update the info of GROUP to say that ARTICLES are read."
   (let* ((num 0)
 	 (entry (gnus-gethash group gnus-newsrc-hashtb))
 	 (info (nth 2 entry))
 	    ;; Message-ID.
 	    (progn
 	      (goto-char p)
-	      (setq id (if (search-forward "\nmessage-id: " nil t)
-			   (nnheader-header-value)
+	      (setq id (if (search-forward "\nmessage-id:" nil t)
+			   (buffer-substring
+			    (1- (or (search-forward "<" nil t) (point)))
+			    (or (search-forward ">" nil t) (point)))
 			 ;; If there was no message-id, we just fake one
 			 ;; to make subsequent routines simpler.
 			 (nnheader-generate-fake-message-id))))
     (gnus-article-setup-buffer)
     (set-buffer gnus-article-buffer)
     (setq buffer-read-only nil)
-    (let ((command (if automatic command (read-string "Command: " command)))
-	  ;; Just binding this here doesn't help, because there might
-	  ;; be output from the process after exiting the scope of
-	  ;; this `let'.
-	  ;; (buffer-read-only nil)
-	  )
+    (let ((command (if automatic command (read-string "Command: " command))))
       (erase-buffer)
       (insert "$ " command "\n\n")
       (if gnus-view-pseudo-asynchronously
-	  (start-process "gnus-execute" nil shell-file-name
+	  (start-process "gnus-execute" (current-buffer) shell-file-name
 			 shell-command-switch command)
 	(call-process shell-file-name nil t nil
 		      shell-command-switch command)))))

lisp/gnus/gnus.el

   :link '(custom-manual "(gnus)Exiting Gnus")
   :group 'gnus)
 
-(defconst gnus-version-number "5.4.26"
+(defconst gnus-version-number "5.4.28"
   "Version number for this version of Gnus.")
 
 (defconst gnus-version (format "Gnus v%s" gnus-version-number)

lisp/gnus/message.el

     (unless (file-exists-p message-autosave-directory)
       (make-directory message-autosave-directory t))
     (let ((name (make-temp-name
-		 (concat (file-name-as-directory message-autosave-directory)
-			 "msg."))))
+		 (expand-file-name
+		  (concat (file-name-as-directory message-autosave-directory)
+			  "msg.")))))
       (setq buffer-auto-save-file-name
 	    (save-excursion
 	      (prog1

lisp/gnus/nndoc.el

 (defvoo nndoc-article-type 'guess
   "*Type of the file.
 One of `mbox', `babyl', `digest', `news', `rnews', `mmdf', `forward',
-`rfc934', `mime-digest', `standard-digest', `slack-digest',
-`clari-briefs' or `guess'.")
+`rfc934', `rfc822-forward', `mime-digest', `standard-digest',
+`slack-digest', `clari-briefs' or `guess'.")
 
 (defvoo nndoc-post-type 'mail
   "*Whether the nndoc group is `mail' or `post'.")
      (prepare-body-function . nndoc-unquote-dashes)
      (subtype digest guess))
     (lanl-gov-announce
-      (article-begin . "^\\\\\\\\\n")
-      (head-begin . "^Paper.*:")
-      (head-end   . "\\(^\\\\\\\\.*\n\\|-----------------\\)")
-      (body-begin . "")
-      (body-end   . "-------------------------------------------------")
-      (file-end   . "^Title: Recent Seminal")
-      (generate-head-function . nndoc-generate-lanl-gov-head)
-      (article-transform-function . nndoc-transform-lanl-gov-announce)
-      (subtype preprints guess))
+     (article-begin . "^\\\\\\\\\n")
+     (head-begin . "^Paper.*:")
+     (head-end   . "\\(^\\\\\\\\.*\n\\|-----------------\\)")
+     (body-begin . "")
+     (body-end   . "-------------------------------------------------")
+     (file-end   . "^Title: Recent Seminal")
+     (generate-head-function . nndoc-generate-lanl-gov-head)
+     (article-transform-function . nndoc-transform-lanl-gov-announce)
+     (subtype preprints guess))
+    (rfc822-forward
+     (article-begin . "^\n")
+     (body-end-function . nndoc-rfc822-forward-body-end-function))
     (guess
      (guess . t)
      (subtype nil))
      (subtype nil))
     (preprints
      (guess . t)
-     (subtype nil))
-    ))
+     (subtype nil))))
 
 
 
 	     (not (re-search-forward "^From:" nil t 2)))
     t))
 
+(defun nndoc-rfc822-forward-type-p ()
+  (save-restriction
+    (message-narrow-to-head)
+    (when (re-search-forward "^Content-Type: *message/rfc822" nil t)
+      t)))
+
+(defun nndoc-rfc822-forward-body-end-function ()
+  (goto-char (point-max)))
+
 (defun nndoc-clari-briefs-type-p ()
   (when (let ((case-fold-search nil))
 	  (re-search-forward "^\t[^a-z]+ ([^a-z]+) --" nil t))

lisp/gnus/nneething.el

 
 ;;; Commentary:
 
-;; Based on nnspool.el by Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>.
-;; For an overview of what the interface functions do, please see the
-;; Gnus sources.
-
 ;;; Code:
 
 (require 'nnheader)
 (nnoo-declare nneething)
 
 (defvoo nneething-map-file-directory "~/.nneething/"
-  "*Where nneething stores the map files.")
+  "Where nneething stores the map files.")
 
 (defvoo nneething-map-file ".nneething"
-  "*Name of the map files.")
+  "Name of the map files.")
 
 (defvoo nneething-exclude-files nil
-  "*Regexp saying what files to exclude from the group.
+  "Regexp saying what files to exclude from the group.
 If this variable is nil, no files will be excluded.")
 
 
 (defvoo nneething-message-id-number 0)
 (defvoo nneething-work-buffer " *nneething work*")
 
-(defvoo nneething-directory nil)
 (defvoo nneething-group nil)
 (defvoo nneething-map nil)
 (defvoo nneething-read-only nil)
 	     (insert "\n"))
 	   t))))
 
-(deffoo nneething-request-group (group &optional dir dont-check)
-  (nneething-possibly-change-directory group dir)
+(deffoo nneething-request-group (group &optional server dont-check)
+  (nneething-possibly-change-directory group server)
   (unless dont-check
     (nneething-create-mapping)
     (if (> (car nneething-active) (cdr nneething-active))

lisp/gnus/nnfolder.el

 	 (nnfolder-delete-mail))
        (when last
 	 (nnfolder-save-buffer)
-	 (nnfolder-adjust-min-active group))))
+	 (nnfolder-adjust-min-active group)
+	 (nnmail-save-active nnfolder-group-alist nnfolder-active-file))))
     result))
 
 (deffoo nnfolder-request-accept-article (group &optional server last)
 	 (marker (concat "\n" nnfolder-article-marker))
 	 (number "[0-9]+")
 	 (activemin (cdr active)))
-    (goto-char (point-min))
-    (while (and (search-forward marker nil t)
-		(re-search-forward number nil t))
-      (setq activemin (min activemin
-			   (string-to-number (buffer-substring
-					      (match-beginning 0)
-					      (match-end 0))))))
-    (setcar active activemin)))
+    (save-excursion
+      (set-buffer nnfolder-current-buffer)
+      (goto-char (point-min))
+      (while (and (search-forward marker nil t)
+		  (re-search-forward number nil t))
+	(setq activemin (min activemin
+			     (string-to-number (buffer-substring
+						(match-beginning 0)
+						(match-end 0))))))
+      (setcar active activemin))))
 
 (defun nnfolder-article-string (article)
   (if (numberp article)
   (when (and server
 	     (not (nnfolder-server-opened server)))
     (nnfolder-open-server server))
+  (unless (gnus-buffer-live-p nnfolder-current-buffer)
+    (setq nnfolder-current-buffer nil
+	  nnfolder-current-group nil))
   ;; Change group.
   (when (and group
 	     (not (equal group nnfolder-current-group)))
       (push (list group (cons 1 0)) nnfolder-group-alist)
       (nnmail-save-active nnfolder-group-alist nnfolder-active-file))
 
-    (unless dont-check
+    (if dont-check
+	(setq nnfolder-current-group group)
       (let (inf file)
 	;; If we have to change groups, see if we don't already have the
 	;; folder in memory.  If we do, verify the modtime and destroy

lisp/gnus/nnheader.el

 	  ;; a case (which basically was the old function) is actually
 	  ;; about twice as fast, even though it looks messier.	 You
 	  ;; can't have everything, I guess.  Speed and elegance
-	  ;; doesn't always go hand in hand.
+	  ;; don't always go hand in hand.
 	  (vector
 	   ;; Number.
 	   (if naked
 	   ;; Message-ID.
 	   (progn
 	     (goto-char p)
-	     (if (search-forward "\nmessage-id: " nil t)
-		 (nnheader-header-value)
+	     (if (search-forward "\nmessage-id:" nil t)
+		 (buffer-substring
+		  (1- (or (search-forward "<" nil t) (point)))
+		  (or (search-forward ">" nil t) (point)))
 	       ;; If there was no message-id, we just fake one to make
 	       ;; subsequent routines simpler.
 	       (nnheader-generate-fake-message-id)))

lisp/gnus/nnmail.el

   :group 'nnmail-files
   :type 'function)
 
-(defcustom nnmail-crosspost-link-function 'add-name-to-file
+(defcustom nnmail-crosspost-link-function
+  (if (string-match "windows-nt\\|emx" (format "%s" system-type))
+      'copy-file
+    'add-name-to-file)
   "Function called to create a copy of a file.
 This is `add-name-to-file' by default, which means that crossposts
 will use hard links.  If your file system doesn't allow hard

lisp/gnus/nnml.el

 
 ;;;###autoload
 (defun nnml-generate-nov-databases ()
-  "Generate nov databases in all nnml directories."
+  "Generate NOV databases in all nnml directories."
   (interactive)
   ;; Read the active file to make sure we don't re-use articles
   ;; numbers in empty groups.
   (nnmail-save-active nnml-group-alist nnml-active-file))
 
 (defun nnml-generate-nov-databases-1 (dir &optional seen)
+  "Regenerate the NOV database in DIR."
+  (interactive "DRegenerate NOV in: ")
   (setq dir (file-name-as-directory dir))
   ;; Only scan this sub-tree if we haven't been here yet.
   (unless (member (file-truename dir) seen)

lisp/mule/mule-files.el

 (setq-default buffer-file-coding-system 'iso-2022-8)
 (put 'buffer-file-coding-system 'permanent-local t)
 
+(define-obsolete-variable-alias 'file-coding-system 'buffer-file-coding-system)
+