Commits

Anonymous committed 1ce6082

Import from CVS: tag r20-0b90

  • Participants
  • Parent commits 5b0a5bb
  • Tags r20-0b90

Comments (0)

Files changed (190)

File CHANGES-beta

 							-*- indented-text -*-
+to 20.0 beta90
+-- ediff-2.64
+-- viper-2.92
+-- bench.el-1.2
+-- Degenerate extent insertion speedup courtesy of David Moore
+-- decipher.el (from Emacs 19.34)
+-- w3-3.0.43
+-- Miscellaneous bug fixes
+
 to 20.0 beta34
 -- backup-dir 2.0 courtesy of Greg Klanderman
 -- lazy-lock-1.15
+Sat Jan 11 12:05:31 1997  Steven L Baur  <steve@altair.xemacs.org>
+	* XEmacs 20.0 beta90 (prerelease 1) is released.
+	* XEmacs 19.15 beta90 (prerelease 1) is released.
+	
+Tue Jan  7 08:45:16 1997  Steven L Baur  <steve@altair.xemacs.org>
+
+	* configure.in (LIBS): Revise test for XFree86 (look for XF86Config).
+
 Sat Jan  4 14:52:57 1997  Steven L Baur  <steve@altair.xemacs.org>
 	* XEmacs 20.0 beta 34 is released.
 	* XEmacs 19.15 beta 7 is released.
 
 	* lwlib/Makefile.in.in: lwlib is required if X11 is used.
 
+Wed Jan  1 08:30:48 1997  Martin Buchholz  <mrb@eng.sun.com>
+
+	* src/emacs.c: Make sure 
+	`./temacs -batch -l loadup.el run-temacs <emacs-args>' 
+	works properly
+
+	* src/Makefile.in.in (rtcmacs): Add support for RTC, Sun's
+	  competitor to Purify.
+
+	* man/lispref/symbols.texi: Fix up bit vector documentation
+	* man/lispref/sequences.texi: Fix up bit vector documentation
+
+	* lisp/sunpro/sunpro-load.el: Only preload mime-setup for Sun.
+
+	* lisp/prim/update-elc.el: Don't rely on autoloads.
+
+Tue Dec 31 09:46:13 1996  Martin Buchholz  <mrb@eng.sun.com>
+
+	* lisp/prim/auto-autoloads.el: New, completely program-generated, file
+	* lib-src/update-autoloads.sh: Rewritten to use auto-autoloads.el.
+	* lisp/utils/autoload.el: Reorganization of autoload mechanism:
+	Errors during autoload generation are just that - errors.
+	
+	Generated autoloads are now in a separate file of their own.
+	
+	Reliability of autoload generation greatly increased.
+	
+	Distribution smaller by about 100k.
+	
+	`make autoloads' is still the preferred mechanism for update.
+	
+	Autoloads are always regenerated completely from scratch.  This
+ 	avoids errors with obsolete or corrupted autoload entries.
+
+	Caching of autoload entries using timestamps has been eliminated.
+	
+	Files that have no autoloads no longer have a comment placed into
+ 	the generated autoloads file.
+
+	There was a bug where autoload entries would sometimes end up
+	being inserted into the *middle* of other autoload entries,
+	thereby corrupting them.
+
+	* src/event-Xt.c: Remove SUNOS_GCC_L0_BUG kludge.
+
+Sun Dec 29 05:37:43 1996  Martin Buchholz  <mrb@eng.sun.com>
+
+	* lib-src/update-autoloads.sh: Make sure that `make autoloads'
+	  doesn't use the autoload facility to load `autoload';
+	  load it explicity instead.
+
+	* lib-src/update-elc.sh (ignore_dirs): ignore SCCS, CVS, RCS dirs
+
+	* man/Makefile: Reinstate hyperbole & oo-browser manuals
+
+	* lisp/modes/mail-abbrevs.el: Apply patch originated from Noah Friedman
+
+	* src/mule-charset.c: Use lower case for charset registry, to
+	  match XLFD.
+
+	* Makefile.in: replace list of info files with *.info* - one less
+	  maintenance headache
+
+	* etc/sample.emacs: Add sample code to highlight continuation glyph
+
+	* man/oo-browser.texi: Fix TeXability
+
+	* man/hyperbole.texi: Fix TeXability
+
+	* man/vhdl-mode.texi: Fix TeXability
+
+	* lisp/prim/loaddefs.el: Wholesale housecleaning
+	  `make autoloads' should finally work.
+
+	* lib-src/emacsclient.c (main): ANSIfication, compiler warning removal
+
+	* lisp/mule/mule-files.el: Add support for multi-lingual info files.
+
+	* lib-src/update-elc.sh: `make all-elc' was updating files in
+	  `special' directories without using the Makefiles
+	  designed for that purpose.
+	  - make sure ilisp isn't remade every time through `make all-elc'.
+
+	* info/dir (Packages): Add Japanese TM info files
+
+	* src/inline.c:  Allow compilation with `gcc -g'
+
+	* src/syntax.c (word_constituent_p): Allow compilation with `gcc -g'
+
+	* src/lread.c: Don't put `...' immediately after a filename, so
+	  that various tools can recognize the filename as such.
+
+	* src/event-Xt.c (x_to_emacs_keysym): Fix crash when
+	  --with-xim=xlib and key event on window frame.  
+	  Change return foo to return (foo) when return is a macro.
+
+	* src/editfns.c (Ffollowing_char): docstring fixes.
+
+	* man/tm/Makefile: Add support for Japanese TM info (but not dvi) files.
+	  This Makefile is no longer officially broken.
+
+	* info/dir: Add Japanese tm documents.
+
+	* man/tm/tm-vm-en.texi: Make document TeX-friendly.
+
+	* lib-src/update-autoloads.sh (EMACS): Don't rely on non-portable
+	  xargs -i flag.
+
+	* lisp/mule/mule-files.el (file-coding-system-alist): Make sure
+	  the `binary' coding system is used for .gz and .Z extensions.
+
+	* man/viper.texi: Viper version 2.90
+
+	* man/ediff.texi: Ediff Version 2.62
+
+	* lisp/packages/ispell.el (ispell-word): Avoid using strings with
+	  define-key, for compatibility with loaddefs.el
+
+	* lisp/modes/eiffel3.el: Make compatible with update-autoloads.
+
+	* lisp/ilisp/Makefile (elc): Add target to avoid re-compilation.
+
+	* lib-src/update-elc.sh: XEmacs sometimes re-byte-compiled elisp
+	  files in dirs that have their own Makefiles.
+
+
+
 Sun Dec 29 17:02:49 1996  Steven L Baur  <steve@altair.xemacs.org>
 
 	* Makefile.in (install-arch-indep): Force compression with `gzip -f'.
 
 # Sub-target for all-elc.
 dump-elc dump-elcs:  FRC.dump-elcs
-	cd src; $(MAKE) dump-elcs $(MFLAGS) \
+	cd src && $(MAKE) dump-elcs $(MFLAGS) \
 		CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}'
 
 autoloads:	src
 .RECURSIVE: ${SUBDIR}
 
 ${SUBDIR}: ${SUBDIR_MAKEFILES} src/config.h FRC
-	cd $@; $(MAKE) all $(MFLAGS) \
+	cd $@ && $(MAKE) all $(MFLAGS) \
 		CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}'
 
 Makefile: ${srcdir}/Makefile.in config.status
 	  $(MAKE) install $(MFLAGS) prefix=${prefix} \
 	    exec_prefix=${exec_prefix} bindir=${bindir} libdir=${libdir} \
 	    archlibdir=${archlibdir})
-	if [ `(cd ${archlibdir}; /bin/pwd)` != `(cd ./lib-src; /bin/pwd)` ]; \
+	if [ `(cd ${archlibdir} && /bin/pwd)` != `(cd ./lib-src && /bin/pwd)` ]; \
 	then \
 	   ${INSTALL_DATA} lib-src/DOC ${archlibdir}/DOC ; \
 	   for subdir in `find ${archlibdir} -type d ! -name RCS ! -name SCCS ! -name CVS -print` ; do \
 	${INSTALL_PROGRAM} src/xemacs ${bindir}/xemacs-${version}
 	-chmod 0755 ${bindir}/xemacs-${version}
 	rm -f ${bindir}/xemacs
-	(cd ${bindir} ; ${LN_S} xemacs-${version} ./xemacs)
+	(cd ${bindir} && ${LN_S} xemacs-${version} ./xemacs)
 
 install-arch-indep: mkdir
 	-set ${COPYDESTS} ; \
 	   [ -d $${dir} ] \
 	   && [ `(cd $${dir} && /bin/pwd)` != `(cd $${dest} && /bin/pwd)` ] \
 	   && (echo "Copying $${dir}..." ; \
-	       (cd $${dir}; tar -cf - . )|(cd $${dest};umask 022; tar -xf - );\
+	       (cd $${dir} && tar -cf - . ) | \
+		(cd $${dest} && umask 022 && tar -xf - );\
 	       chmod 0755 $${dest}; \
 	       for subdir in `find $${dest} -type d ! -name RCS ! -name SCCS ! -name CVS -print` ; do \
 		 rm -rf $${subdir}/RCS $${subdir}/CVS $${subdir}/SCCS ; \
 	 done
 	if [ `(cd ${srcdir}/info && /bin/pwd)` != `(cd ${infodir} && /bin/pwd)` ]; \
 	then \
-	  (cd ${srcdir}/info ; \
+	  (cd ${srcdir}/info && \
 	   if [ ! -f ${infodir}/dir ] && [ -f dir ]; then \
 	     ${INSTALL_DATA} ${srcdir}/info/dir ${infodir}/dir ; \
 	   fi ; \
 	   for f in *.info* ; do \
 	     ${INSTALL_DATA} ${srcdir}/info/$$f ${infodir}/$$f ; \
 	     chmod 0644 ${infodir}/$$f; \
-	     gzip -f9 ${infodir}/$$f; \
+	     gzip -9 -f ${infodir}/$$f; \
 	   done); \
 	else true; fi
-	cd ${srcdir}/etc; for page in xemacs etags ctags gnuserv \
+	cd ${srcdir}/etc && for page in xemacs etags ctags gnuserv \
 				      gnuclient gnuattach gnudoit ; do \
 	  ${INSTALL_DATA} ${srcdir}/etc/$${page}.1 ${mandir}/$${page}${manext} ; \
 	  chmod 0644 ${mandir}/$${page}${manext} ; \
 	@echo "If you don't have a copy of etags around, then do 'make lib-src' first."
 	@PATH=`pwd`/lib-src:$$PATH HOME=/-=-; export PATH HOME; \
 	  echo "Using etags from `which etags`."
-	PATH=`pwd`/lib-src:$$PATH ; export PATH; cd ${srcdir} ; \
+	PATH=`pwd`/lib-src:$$PATH ; export PATH; cd ${srcdir} && \
 	etags --regex='/[ 	]*DEF\(VAR\|INE\)_[A-Z_]+[ 	]*([ 	]*"\([^"]+\)"/\2/' src/*.[ch] ; \
 	for d in `find lisp -name SCCS -prune -o -name RCS -prune -o -type d -print` ; do \
-	  (cd $$d ; if [ "`echo *.el`" != "*.el" ] ; then etags -a -o ${srcdir}/TAGS *.el ; fi ) ; \
+	  (cd $$d && if [ "`echo *.el`" != "*.el" ] ; then etags -a -o ${srcdir}/TAGS *.el ; fi ) ; \
 	done ; \
 	etags -a lwlib/*.[ch]
 
   if test -d /usr/X386/include; then
     HAVE_XFREE386=yes
     test -z "${C_SWITCH_X_SITE}" && C_SWITCH_X_SITE="-I/usr/X386/include"
-  elif test -d /usr/X11R6/include; then
+  elif test -f /etc/XF86Config -o \
+	    -f /etc/X11/XF86Config -o \
+	    -f /usr/X11R6/lib/X11/XF86Config; then
     HAVE_XFREE386=yes
     test -z "${C_SWITCH_X_SITE}" && C_SWITCH_X_SITE="-I/usr/X11R6/include"
   else
 
 
 # AIX export list
-for export in /usr/lpp/X11/bin/smt.exp /usr/bin/X11/smt.exp ; do
-  if test -f "$export" ; then
-    
-{
-test -n "$verbose" && \
-echo "	defining" AIX_SMT_EXP to be "-bI:$export"
-echo "#define" AIX_SMT_EXP "-bI:$export" >> confdefs.h
-DEFS="$DEFS -DAIX_SMT_EXP=-bI:$export"
-ac_sed_defs="${ac_sed_defs}\${ac_dA}AIX_SMT_EXP\${ac_dB}AIX_SMT_EXP\${ac_dC}-bI:\\\\\\\$export\${ac_dD}
-\${ac_uA}AIX_SMT_EXP\${ac_uB}AIX_SMT_EXP\${ac_uC}-bI:\\\\\\\$export\${ac_uD}
-\${ac_eA}AIX_SMT_EXP\${ac_eB}AIX_SMT_EXP\${ac_eC}-bI:\\\\\\\$export\${ac_eD}
-"
-}
-
-    break
-  fi
-done
+if test -f /usr/lpp/X11/bin/smt.exp ; then
+  
+{
+test -n "$verbose" && \
+echo "	defining" AIX_SMT_EXP to be "-bI:/usr/lpp/X11/bin/smt.exp"
+echo "#define" AIX_SMT_EXP "-bI:/usr/lpp/X11/bin/smt.exp" >> confdefs.h
+DEFS="$DEFS -DAIX_SMT_EXP=-bI:/usr/lpp/X11/bin/smt.exp"
+ac_sed_defs="${ac_sed_defs}\${ac_dA}AIX_SMT_EXP\${ac_dB}AIX_SMT_EXP\${ac_dC}-bI:/usr/lpp/X11/bin/smt.exp\${ac_dD}
+\${ac_uA}AIX_SMT_EXP\${ac_uB}AIX_SMT_EXP\${ac_uC}-bI:/usr/lpp/X11/bin/smt.exp\${ac_uD}
+\${ac_eA}AIX_SMT_EXP\${ac_eB}AIX_SMT_EXP\${ac_eC}-bI:/usr/lpp/X11/bin/smt.exp\${ac_eD}
+"
+}
+
+elif test -f /usr/bin/X11/smt.exp ; then
+  
+{
+test -n "$verbose" && \
+echo "	defining" AIX_SMT_EXP to be "-bI:/usr/bin/X11/smt.exp"
+echo "#define" AIX_SMT_EXP "-bI:/usr/bin/X11/smt.exp" >> confdefs.h
+DEFS="$DEFS -DAIX_SMT_EXP=-bI:/usr/bin/X11/smt.exp"
+ac_sed_defs="${ac_sed_defs}\${ac_dA}AIX_SMT_EXP\${ac_dB}AIX_SMT_EXP\${ac_dC}-bI:/usr/bin/X11/smt.exp\${ac_dD}
+\${ac_uA}AIX_SMT_EXP\${ac_uB}AIX_SMT_EXP\${ac_uC}-bI:/usr/bin/X11/smt.exp\${ac_uD}
+\${ac_eA}AIX_SMT_EXP\${ac_eB}AIX_SMT_EXP\${ac_eC}-bI:/usr/bin/X11/smt.exp\${ac_eD}
+"
+}
+
+fi
 
 CFLAGS="$REAL_CFLAGS"
 

File configure.in

   if test -d /usr/X386/include; then
     HAVE_XFREE386=yes
     test -z "${C_SWITCH_X_SITE}" && C_SWITCH_X_SITE="-I/usr/X386/include"
-  elif test -d /usr/X11R6/include; then
+  elif test -f /etc/XF86Config -o \
+	    -f /etc/X11/XF86Config -o \
+	    -f /usr/X11R6/lib/X11/XF86Config; then
     HAVE_XFREE386=yes
     test -z "${C_SWITCH_X_SITE}" && C_SWITCH_X_SITE="-I/usr/X11R6/include"
   else

File dynodump/Makefile.in.in

 #endif
 
 dynodump.so: ${srcdir}/_dynodump.h $(OBJS)
-	PATH=/usr/ccs/bin:/bin:$PATH ld -o dynodump.so -G $(OBJS) -lelf -lmapmalloc
+	PATH=/usr/ccs/bin:/bin:$$PATH ld -o dynodump.so -G $(OBJS) -lelf -lmapmalloc
 
 _relocate.o: ${srcdir}/$(ARCH)/_relocate.c
 	$(CC) -c $(ALL_CFLAGS) ${srcdir}/$(ARCH)/_relocate.c

File etc/sample.emacs

 (resize-minibuffer-mode)
 (setq resize-minibuffer-window-exactly nil)
 
-;; Create a single detached minibuffer used by all frames.
-;; Uncomment to try this out.
-;(when running-xemacs
-;  (setq initial-frame-plist '(minibuffer nil))
-;  (setq default-frame-plist '(minibuffer nil))
-;  (setq default-minibuffer-frame
-;	(make-frame
-;	 '(minibuffer only
-;		      width 86
-;		      height 1
-;		      menubar-visible-p nil
-;		      default-toolbar-visible-p nil
-;		      name "minibuffer"
-;		      top -2
-;		      left -2
-;		      has-modeline-p nil)))
-;  (frame-notice-user-settings))
-
 ;;; ********************
 ;;; W3 is a browser for the World Wide Web, and takes advantage of the very
 ;;; latest redisplay features in XEmacs.  You can access it simply by typing 

File etc/viperCard.tex

 are preserved on all copies.
 
 For copies of the GNU Emacs manual, write to the Free Software
-Foundation, Inc., 1000 Massachusetts Ave, Cambridge MA 02138.
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 
 \endgroup}
 

File lib-src/Makefile.in.in

 	./make-path ${archlibdir}
 	if [ `(cd ${archlibdir} && /bin/pwd)` != `/bin/pwd` ]; then \
 	  for file in ${UTILITIES}; do \
-	    (cd ..; $(INSTALL_PROGRAM) lib-src/$$file ${archlibdir}/$$file) ; \
+	    (cd .. && $(INSTALL_PROGRAM) lib-src/$$file ${archlibdir}/$$file) ; \
 	  done ; \
 	fi
 	if [ `(cd ${archlibdir} && /bin/pwd)` \
 	     != `(cd ${srcdir} && /bin/pwd)` ]; then \
 	  for file in ${SCRIPTS}; do \
-	    (cd ..; $(INSTALL_PROGRAM) ${srcdir}/$$file ${archlibdir}/$$file); \
+	    (cd .. && $(INSTALL_PROGRAM) ${srcdir}/$$file ${archlibdir}/$$file); \
 	  done ; \
 	fi
 
 	@echo
 	@echo "Installing utilities for users to run."
 	for file in ${INSTALLABLES} ; do \
-	  (cd ..; $(INSTALL_PROGRAM) lib-src/$${file} ${bindir}/$${file}) ; \
+	  (cd .. && $(INSTALL_PROGRAM) lib-src/$${file} ${bindir}/$${file}) ; \
 	done
 	for file in ${INSTALLABLE_SCRIPTS} ; do \
-	  (cd ..; $(INSTALL_PROGRAM) ${srcdir}/$${file} ${bindir}/$${file}) ; \
+	  (cd .. && $(INSTALL_PROGRAM) ${srcdir}/$${file} ${bindir}/$${file}) ; \
 	done
 
 uninstall:
-	(cd ${bindir}; \
+	(cd ${bindir} && \
 	 rm -f ${INSTALLABLES} ${INSTALLABLE_SCRIPTS})
-	(cd ${archlibdir}; \
+	(cd ${archlibdir} && \
 	 rm -f ${UTILITIES} ${INSTALLABLES} ${SCRIPTS} ${INSTALLABLE_SCRIPTS})
 
 mostlyclean:
 etags: ${srcdir}/etags.c $(GETOPTDEPS) $(REGEXDEPS) ../src/config.h
 	$(CC) ${ALL_CFLAGS} -DVERSION="\"${version}\"" -DETAGS_REGEXPS ${srcdir}/etags.c $(GETOPTOBJS) $(REGEXOBJ) $(LOADLIBES) -o etags
 
-/* We depend on etags to assure that parallel makes don't write two
+/* We depend on etags to assure that parallel makes do not write two
    etags.o files on top of each other.  */
 ctags: ${srcdir}/etags.c $(GETOPTDEPS) etags
 	$(CC) ${ALL_CFLAGS} -DCTAGS -DVERSION="\"${version}\"" ${srcdir}/etags.c $(GETOPTOBJS) $(LOADLIBES) -o ctags
 make-po: ${srcdir}/make-po.c
 	$(CC) ${CPP_CFLAGS} ${srcdir}/make-po.c $(LOADLIBES) -o make-po
 
-/* Why oh why doesn't HP include half of the standard X distribution? */
+/* Why oh why does HP not include half of the standard X distribution? */
 
 #if defined (HAVE_XAUTH)
 gnuslib.o: ${srcdir}/gnuslib.c ${srcdir}/gnuserv.h ../src/config.h

File lib-src/emacsclient.c

   fprintf (stderr, "%s: Sorry, the Emacs server is supported only\n",
 	   argv[0]);
   fprintf (stderr, "on systems with Berkeley sockets or System V IPC.\n");
-  exit (1);
+  return 1;
 }
 
 #else /* HAVE_SOCKETS or HAVE_SYSVIPC */
   strcpy (buf, msgp->mtext);
 
   printf ("\n%s\n", buf);
-  exit (0);
+  return 0;
 }
 
 #endif /* HAVE_SYSVIPC */

File lib-src/gnudoit.c

 #else /* SYSV_IPC || UNIX_DOMAIN_SOCKETS || INTERNET_DOMAIN_SOCKETS */
 
 int
-main(int argc, char *argv[])
+main (int argc, char *argv[])
 {
   int qflg = 0;					/* don't wait around for 
 						 * gnu emacs to eval cmd */

File lib-src/tm-au

 #!/bin/sh -
 #
-# $Id: tm-au,v 1.2 1996/12/28 21:02:51 steve Exp $
+# $Id: tm-au,v 1.3 1997/01/11 20:13:51 steve Exp $
 #
 
+PATH=${PATH:-/usr/bin:/bin}:`dirname $0 2>/dev/null`; export PATH
+
 if [ "$TM_TMP_DIR" = "" ]; then
 	TM_TMP_DIR=/tmp
 	export TM_TMP_DIR

File lib-src/tm-file

 #!/bin/sh -
 #
-# $Id: tm-file,v 1.2 1996/12/28 21:02:51 steve Exp $
+# $Id: tm-file,v 1.3 1997/01/11 20:13:51 steve Exp $
 #
 
+PATH=${PATH:-/usr/bin:/bin}:`dirname $0 2>/dev/null`; export PATH
+
 if [ "$TM_TMP_DIR" = "" ]; then
 	TM_TMP_DIR=/tmp
 	export TM_TMP_DIR

File lib-src/tm-html

 #!/bin/sh
 #
-# $Id: tm-html,v 1.2 1996/12/28 21:02:51 steve Exp $
+# $Id: tm-html,v 1.3 1997/01/11 20:13:51 steve Exp $
 #
 
+PATH=${PATH:-/usr/bin:/bin}:`dirname $0 2>/dev/null`; export PATH
+
 if [ "$TM_TMP_DIR" = "" ]; then
     TM_TMP_DIR=/tmp
     export TM_TMP_DIR

File lib-src/tm-image

 #!/bin/sh -
 #
-# $Id: tm-image,v 1.2 1996/12/28 21:02:52 steve Exp $
+# $Id: tm-image,v 1.3 1997/01/11 20:13:51 steve Exp $
 #
 # Copyright 1994, 1995, 1996 Free Software Foundation, Inc.
 
 # Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 # Boston, MA 02111-1307, USA.
 
+PATH=${PATH:-/usr/bin:/bin}:`dirname $0 2>/dev/null`; export PATH
+
 if [ "$TM_TMP_DIR" = "" ]; then
 	TM_TMP_DIR=/tmp
 	export TM_TMP_DIR

File lib-src/tm-mpeg

 #!/bin/sh -
 #
-# $Id: tm-mpeg,v 1.2 1996/12/28 21:02:52 steve Exp $
+# $Id: tm-mpeg,v 1.3 1997/01/11 20:13:51 steve Exp $
 #
 # Copyright 1994, 1995, 1996 Free Software Foundation, Inc.
 
 # Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 # Boston, MA 02111-1307, USA.
 
+PATH=${PATH:-/usr/bin:/bin}:`dirname $0 2>/dev/null`; export PATH
+
 if [ "$TM_TMP_DIR" = "" ]; then
 	TM_TMP_DIR=/tmp
 	export TM_TMP_DIR

File lib-src/tm-plain

 #!/bin/sh -
 #
-# $Id: tm-plain,v 1.2 1996/12/28 21:02:52 steve Exp $
+# $Id: tm-plain,v 1.3 1997/01/11 20:13:52 steve Exp $
 #
 
+PATH=${PATH:-/usr/bin:/bin}:`dirname $0 2>/dev/null`; export PATH
+
 if [ "$TM_TMP_DIR" = "" ]; then
 	TM_TMP_DIR=/tmp
 	export TM_TMP_DIR

File lib-src/tm-ps

 #!/bin/sh -
 #
-# $Id: tm-ps,v 1.2 1996/12/28 21:02:52 steve Exp $
+# $Id: tm-ps,v 1.3 1997/01/11 20:13:52 steve Exp $
 #
 # Copyright 1994, 1995, 1996 Free Software Foundation, Inc.
 
 # Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 # Boston, MA 02111-1307, USA.
 
+PATH=${PATH:-/usr/bin:/bin}:`dirname $0 2>/dev/null`; export PATH
+
 if [ "$TM_TMP_DIR" = "" ]; then
 	TM_TMP_DIR=/tmp
 	export TM_TMP_DIR

File lib-src/tmdecode

 #!/bin/sh -
 #
-# $Id: tmdecode,v 1.2 1996/12/28 21:02:52 steve Exp $
+# $Id: tmdecode,v 1.3 1997/01/11 20:13:52 steve Exp $
 #
 # Copyright 1994, 1995, 1996 Free Software Foundation, Inc.
 
 # Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 # Boston, MA 02111-1307, USA.
 
+PATH=${PATH:-/usr/bin:/bin}:`dirname $0 2>/dev/null`; export PATH
+
 trap 'rm -f $2' 0 1 2 3 13 15
 
 case "$3" in

File lib-src/update-autoloads.sh

 #!/bin/sh
-### update-autoloads.sh --- update auto-loaddefs.el as necessary
+### update-autoloads.sh --- update auto-autoloads.el as necessary
 
 set -eu
 

File lib-src/update-elc.sh

 els=/tmp/rcl1.$$ ; elcs=/tmp/rcl2.$$
 rm -f $els $elcs
 trap "rm -f $els $elcs" 0 1 2 3 15
-find lisp/. -name SCCS -prune -o -name '*.el'  -print                    | sort > $els
-find lisp/. -name SCCS -prune -o -name '*.elc' -print | sed 's/elc$/el/' | sort > $elcs
+find lisp/. $prune_vc -name '*.el'  -print                    | sort > $els
+find lisp/. $prune_vc -name '*.elc' -print | sed 's/elc$/el/' | sort > $elcs
 
 
 echo "Deleting .elc files without .el files..."
 }
 
 make_special vm
-make_special ediff elc
-make_special viper elc
+#make_special ediff elc
+#make_special viper elc
 make_special gnus  some
 make_special w3
-make_special url		# really part of w3
 make_special hyperbole elc
 make_special oobr HYPB_ELC='' elc
 make_special eos -k		# not stricly necessary...
-make_special ilisp elc -f Makefile
+make_special ilisp elc
 
 ignore_pattern=''
 for dir in $ignore_dirs ; do
 
 
 echo "Compiling files with out-of-date .elc..."
-find lisp/. -name CVS -prune -o -name SCCS -prune -o -type d -print | \
+find lisp/* $prune_vc -type d -print | \
  sed "$ignore_pattern" | \
- xargs -t $REAL -batch -q -no-site-file -f batch-byte-recompile-directory
+ xargs -t $BYTECOMP -f batch-byte-recompile-directory
 echo "Compiling files with out-of-date .elc... Done"
 
 

File lisp/ChangeLog

+Fri Jan 10 22:27:58 1997  Shane Holder  <holder@rsn.hp.com>
+
+	* utils/bench.el:  New version.
+
+Fri Jan 10 13:22:26 1997  Christoph Wedler  <wedler@fmi.uni-passau.de>
+
+	* packages/man.el (Manual-entry-switches): New variable.
+	(Manual-apropos-switches): New variable.
+	(Manual-run-formatter): Use them.
+
+Thu Jan  9 22:04:42 1997  Greg Klanderman  <greg@alphatech.com>
+
+	* modes/make-mode.el: Allow disabling of suspicious line warnings
+	allow macro pickup when a macro is entered normally
+	add the runtime macros to the completion list so confirmation is
+	not necessary when minibuffer-confirm-incomplete is t.
+	(these last two only in effect when makefile-electric-keys=t)
+
+Thu Jan  9 11:44:11 1997  Martin Buchholz  <mrb@eng.sun.com>
+
+	* mule/mule-files.el (file-coding-system-alist): Default to 8 bit
+	on .el and .info files.
+
+Wed Jan  8 20:57:16 1997  Steven L Baur  <steve@altair.xemacs.org>
+
+	* prim/help.el (help-mode-quit): Correct typo in docstring.
+	(help-mode-quit): Bury help buffer before restoring previous
+	window configuration.
+
+Wed Jan  8 20:20:01 1997  Joe Nuspl  <nuspl@nvwls.cc.purdue.edu>
+
+	* x11/x-menubar.el (default-menubar): Include enriched.doc in the
+	samples in the help menu.
+
+Wed Jan  8 20:09:32 1997  Jens Krinke  <krinke@ips.cs.tu-bs.de>
+
+	* x11/x-toolbar.el (toolbar-news-frame-properties): New variable.
+	(toolbar-news): Use it.
+
+Wed Jan  8 10:11:35 1997  Steven L Baur  <steve@altair.xemacs.org>
+
+	* x11/x-compose.el (global-map): Keysyms use `-' not `_'.
+
+Mon Jan  6 18:19:03 1997  Steven L Baur  <steve@altair.xemacs.org>
+
+	* comint/telnet.el (telnet-initial-filter): Enable
+	case-fold-search.
+	(telnet-maximum-count): Bump up to 6, since 4 does not always
+	appear to be enough.
+
+Mon Jan  6 08:30:55 1997  Andrew Cohen  <cohen@andy.bu.edu>
+
+	* psgml/psgml-parse.el (sgml-compile-dtd): noconv coding system
+	has been renamed to no-conversion.
+	(sgml-bdtd-merge): Ditto.
+	(sgml-push-to-entity): Ditto.
+
+Sun Jan  5 14:35:30 1997  Steven L Baur  <steve@altair.xemacs.org>
+
+	* utils/loadhist.el (symbol-file): Make interactive.
+
+Sun Jan  5 00:40:02 1997  Bob Weiner  <weiner@infodock.com>
+
+	* packages/avoid.el (mouse-avoidance-mode): autoload.
+
+	* x11/x-menubar.el (options-menu-saved-forms): Mouse avoidance
+	mode option.
+
 Sat Jan  4 12:25:34 1997  Steven L Baur  <steve@altair.xemacs.org>
 
 	* prim/faces.el (init-other-random-faces): Guard against adding

File lisp/comint/telnet.el

 (defvar telnet-program "telnet"
   "Program to run to open a telnet connection.")
 
-(defvar telnet-initial-count -50
+(defvar telnet-initial-count -75
   "Initial value of `telnet-count'.  Should be set to the negative of the
 number of terminal writes telnet will make setting up the host connection.")
 
   (setq comint-prompt-regexp telnet-prompt-pattern))
 
 (defun telnet-initial-filter (proc string)
-  ;For reading up to and including password; also will get machine type.
-  (cond ((string-match "No such host" string)
-	 (kill-buffer (process-buffer proc))
-	 (error "No such host."))
-	((string-match "passw" string)
-	 (telnet-filter proc string)
-	 (let ((password (comint-read-noecho "Password: " t)))
-	   (setq telnet-count 0)
-	   (process-send-string proc (concat password telnet-new-line))))
-	(t (telnet-check-software-type-initialize string)
+  (let ((case-fold-search t))
+    ;For reading up to and including password; also will get machine type.
+    (cond ((string-match "No such host" string)
+	   (kill-buffer (process-buffer proc))
+	   (error "No such host."))
+	  ((string-match "passw" string)
 	   (telnet-filter proc string)
-	   (cond ((> telnet-count telnet-maximum-count)
-		  ;; (set-process-filter proc 'telnet-filter)
-		  ;; Kludge for shell-fonts -- this is the only mode that
-		  ;; actually changes what its process filter is at run time,
-		  ;; which confuses shell-font.  So we special-case that here.
-		  ;; #### Danger, knows an internal shell-font variable name.
-		  (let ((old-filter (process-filter proc)))
-		    (if (eq old-filter 'shell-font-process-filter)
-			(set (make-local-variable 'shell-font-process-filter)
-			     'telnet-filter)
-		      (set-process-filter proc 'telnet-filter))))
-		 (t (setq telnet-count (1+ telnet-count)))))))
+	   (let ((password (comint-read-noecho "Password: " t)))
+	     (setq telnet-count 0)
+	     (process-send-string proc (concat password telnet-new-line))))
+	  (t (telnet-check-software-type-initialize string)
+	     (telnet-filter proc string)
+	     (cond ((> telnet-count telnet-maximum-count)
+		    ;; (set-process-filter proc 'telnet-filter) Kludge
+		    ;; for shell-fonts -- this is the only mode that
+		    ;; actually changes what its process filter is at
+		    ;; run time, which confuses shell-font.  So we
+		    ;; special-case that here.
+		    ;; #### Danger, knows an internal shell-font variable name.
+		    (let ((old-filter (process-filter proc)))
+		      (if (eq old-filter 'shell-font-process-filter)
+			  (set (make-local-variable 'shell-font-process-filter)
+			       'telnet-filter)
+			(set-process-filter proc 'telnet-filter))))
+		   (t (setq telnet-count (1+ telnet-count))))))))
 
 ;; Identical to comint-simple-send, except that it sends telnet-new-line
 ;; instead of "\n".

File lisp/ediff/Makefile

            ediff-ptch.elc ediff.elc ediff-hook.elc
 # ediff-tbar.elc
 
-PRELOADS = -l ./ediff-init.el -l ./ediff-help.el -l ./ediff-diff.el \
-           -l ./ediff-wind.el -l ./ediff-merg.el -l ./ediff-mult.el \
-           -l ./ediff-util.el -l ./ediff.el
-# -l ./ediff-tbar.el
 
 all: hello elc goodbye dvi info
 
 
 ediff-tbar.elc: ediff-tbar.el
 	@echo ""
-	$(EMACS) -batch $(PRELOADS) -f batch-byte-compile ediff-tbar.el
+	$(EMACS) -batch -f batch-byte-compile ediff-tbar.el
 
 ediff-diff.elc: ediff-init.el ediff-diff.el
 	@echo ""
-	$(EMACS) -batch $(PRELOADS) -f batch-byte-compile ediff-diff.el
+	$(EMACS) -batch -f batch-byte-compile ediff-diff.el
 
 ediff-merg.elc: ediff-init.el ediff-merg.el
 	@echo ""
-	$(EMACS) -batch $(PRELOADS) -f batch-byte-compile ediff-merg.el
+	$(EMACS) -batch -f batch-byte-compile ediff-merg.el
 
 ediff-mult.elc: ediff-init.el ediff-mult.el
 	@echo ""
-	$(EMACS) -batch $(PRELOADS) -f batch-byte-compile ediff-mult.el
+	$(EMACS) -batch -f batch-byte-compile ediff-mult.el
 
 ediff-vers.elc: ediff-init.el ediff-vers.el
 	@echo ""
-	$(EMACS) -batch $(PRELOADS) -f batch-byte-compile ediff-vers.el
+	$(EMACS) -batch -f batch-byte-compile ediff-vers.el
 
 ediff-ptch.elc: ediff-init.el ediff-ptch.el
 	@echo ""
-	$(EMACS) -batch $(PRELOADS) -f batch-byte-compile ediff-ptch.el
+	$(EMACS) -batch -f batch-byte-compile ediff-ptch.el
 
 ediff.elc: ediff-init.el ediff.el
 	@echo ""
-	$(EMACS) -batch $(PRELOADS) -f batch-byte-compile ediff.el
+	$(EMACS) -batch -f batch-byte-compile ediff.el
 
 ediff-util.elc: ediff-init.el ediff-util.el
 	@echo ""
-	$(EMACS) -batch $(PRELOADS) -f batch-byte-compile ediff-util.el
+	$(EMACS) -batch -f batch-byte-compile ediff-util.el
 
 ediff-wind.elc: ediff-init.el ediff-wind.el
 	@echo ""
-	$(EMACS) -batch $(PRELOADS) -f batch-byte-compile ediff-wind.el
+	$(EMACS) -batch -f batch-byte-compile ediff-wind.el
 
 ediff.dvi: ediff.texi
 	@echo ""

File lisp/ediff/README

 
 ediff.el    	-- Ediff Emacs Lisp code
 ediff-init.el	-- Ediff Emacs Lisp code
+ediff-help.el	-- Ediff Emacs Lisp code
 ediff-wind.el	-- Ediff Emacs Lisp code
 ediff-util.el	-- Ediff Emacs Lisp code
 ediff-diff.el	-- Ediff Emacs Lisp code

File lisp/ediff/ediff-diff.el

 
 ;;; Code:
 
+(provide 'ediff-diff)
+
+;; compiler pacifier
+(defvar ediff-default-variant)
+
+(eval-when-compile
+  (let ((load-path (cons "." load-path)))
+    (or (featurep 'ediff-init)
+	(load "ediff-init.el" nil nil 'nosuffix))
+    (or (featurep 'ediff-util)
+	(load "ediff-util.el" nil nil 'nosuffix))
+    ))
+;; end pacifier
+
 (require 'ediff-init)
 
 
 ;;; eval: (put 'ediff-eval-in-buffer 'edebug-form-spec '(form body))
 ;;; End:
 
-(provide 'ediff-diff)
-
 
 ;; ediff-diff.el ends here

File lisp/ediff/ediff-help.el

 ;; Boston, MA 02111-1307, USA.
 
 ;;; Code:
-
-(require 'ediff-init)
+	 
+(provide 'ediff-help)
 
 ;; Compiler pacifier start
 (defvar ediff-multiframe)
-(and noninteractive
-     (eval-when-compile
-       (let ((load-path (cons (expand-file-name ".") load-path)))
-	 (load-file "ediff-init.el"))))
+
+(eval-when-compile
+  (let ((load-path (cons "." load-path)))
+    (or (featurep 'ediff-init)
+	(load "ediff-init.el" nil nil 'nosuffix))
+    ))
 ;; end pacifier
 
+(require 'ediff-init)
+
 ;; Help messages
 
 (defconst ediff-long-help-message-head
   "Explain Ediff commands in more detail."
   (interactive)
   (ediff-barf-if-not-control-buffer)
-  (let ((ctl-buf (current-buffer))
-	(pos (ediff-event-point last-command-event))
+  (let ((pos (ediff-event-point last-command-event))
 	overl cmd)
 
     (if ediff-xemacs-p
 			     ediff-brief-help-message))
   (run-hooks 'ediff-display-help-hook))
 
-(provide 'ediff-help)
 
 ;;; ediff-help.el ends here

File lisp/ediff/ediff-hook.el

 (defvar epatch-menu)
 ;; end pacifier
 
+;; allow menus to be set up without ediff-wind.el being loaded
+(defvar ediff-window-setup-function)
+
 
 (defun ediff-xemacs-init-menus ()
+  (setq ediff-window-setup-function
+	(if (console-on-window-system-p)
+	    'ediff-setup-windows-multiframe
+	  'ediff-setup-windows-plain))
   (if (featurep 'menubar)
       (progn
-;;	(add-menu-button
-;;	 '("Tools")
-;;	 ["Use separate frame for Ediff control buffer"
-;;	  ediff-toggle-multiframe
-;;	  :style toggle
-;;	  :selected (eq ediff-window-setup-function 'ediff-setup-windows-multiframe)]
-;;	 "00-Browser...")
-;;	(add-menu-button
-;;	 '("Tools")
-;;	 ["Use a toolbar with Ediff control buffer"
-;;	  ediff-menu-toggle-use-toolbar
-;;	  :style toggle
-;;	  :selected (ediff-use-toolbar-p)]
-;;	 "00-Browser...")
+	(add-menu-button
+	 '("Tools")
+	 ["Use separate frame for Ediff control buffer"
+	  ediff-toggle-multiframe
+	  :style toggle
+	  :selected (eq ediff-window-setup-function 'ediff-setup-windows-multiframe)]
+	 "00-Browser...")
+	;;(add-menu-button
+	;; '("Tools")
+	;; ["Use a toolbar with Ediff control buffer"
+	;;  ediff-toggle-use-toolbar
+	;;  :style toggle
+	;;  :selected (ediff-use-toolbar-p)]
+	;; "00-Browser...")
 	(add-submenu
 	 '("Tools") ediff-menu "OO-Browser...")
 	(add-submenu
 	(add-submenu
 	 '("Tools") epatch-menu "OO-Browser...")
 	(add-menu-button
-	 '("Tools") "-------" "OO-Browser...")
+	 '("Tools")
+	 ["-------" nil nil] "OO-Browser...")
 	)))
 
 
        (define-key menu-bar-ediff-menu [ediff-doc]
 	 '("Ediff Manual..." . ediff-documentation))
        (define-key menu-bar-ediff-menu [emultiframe]
-	 '("Toggle separate control buffer frame..."
-	   . ediff-toggle-multiframe))
+	'("Toggle separate control buffer frame..."
+	  . ediff-toggle-multiframe))
        (define-key menu-bar-ediff-menu [eregistry]
 	'("List Ediff Sessions..." . ediff-show-registry))
        (define-key menu-bar-ediff-menu [separator-ediff-manual] '("--"))
        (define-key menu-bar-ediff-merge-menu [ediff-doc2]
 	 '("Ediff Manual..." . ediff-documentation))
        (define-key menu-bar-ediff-merge-menu [emultiframe2]
-	 '("Toggle separate control buffer frame..."
-	   . ediff-toggle-multiframe))
+	'("Toggle separate control buffer frame..."
+	  . ediff-toggle-multiframe))
        (define-key menu-bar-ediff-merge-menu [eregistry2]
 	'("List Ediff Sessions..." . ediff-show-registry))
        (define-key
        (define-key menu-bar-epatch-menu [ediff-doc3]
 	 '("Ediff Manual..." . ediff-documentation))
        (define-key menu-bar-epatch-menu [emultiframe3]
-	 '("Toggle separate control buffer frame..."
-	   . ediff-toggle-multiframe))
+	'("Toggle separate control buffer frame..."
+	  . ediff-toggle-multiframe))
        (define-key menu-bar-epatch-menu [eregistry3]
-	 '("List Ediff Sessions..." . ediff-show-registry))
+	'("List Ediff Sessions..." . ediff-show-registry))
        (define-key menu-bar-epatch-menu [separator-epatch] '("--"))
        (define-key menu-bar-epatch-menu [ediff-patch-buffer]
 	 '("To a Buffer..." . ediff-patch-buffer))
     "ediff-util"
     "Toggle the use of separate frame for Ediff control buffer."
     t)
-;;(if (string-match "XEmacs" emacs-version)
-;;    (autoload 'ediff-toggle-use-toolbar
-;;	"ediff-tbar"
-;;	"Toggle the use of Ediff toolbar."
-;;	t))
+  (condition-case nil
+      (if (string-match "XEmacs" emacs-version)
+	  (autoload 'ediff-toggle-use-toolbar
+	    "ediff-tbar"
+	    "Toggle the use of Ediff toolbar."
+	    t))
+    (error))
   ) ; if purify-flag
 
 

File lisp/ediff/ediff-init.el

 	(ediff-emacs-p (memq (ediff-device-type) '(pc)))
 	(ediff-xemacs-p (memq (ediff-device-type) '(tty pc)))))
 
-
+  
 ;; Defines SYMBOL as an advertised local variable.  
 ;; Performs a defvar, then executes `make-variable-buffer-local' on
 ;; the variable.  Also sets the `permanent-local' property,
 *** 
 *** Please contact your system administrator. "
 				 (if ediff-xemacs-p "X" "")))
-
+ 
 ;; Selective browsing
 
 (ediff-defvar-local ediff-skip-diff-region-function 'ediff-show-all-diffs
 ;; Buffer-local variables to be saved then restored during Ediff sessions
 ;; Buffer-local variables to be saved then restored during Ediff sessions
 (defconst ediff-protected-variables '(
-				      ;;buffer-read-only
+				      ;;buffer-read-only 
 				      mode-line-format))
 
 ;; Vector of differences between the variants.  Each difference is
   (car (if ediff-xemacs-p
 	   (ange-ftp-ftp-path file-name)
 	 (ange-ftp-ftp-name file-name))))
+
     
 (defsubst ediff-frame-unsplittable-p (frame)
   (cdr (assq 'unsplittable (frame-parameters frame))))
   (if (ediff-buffer-live-p buf)
       (kill-buffer (get-buffer buf))))
 
+(defsubst ediff-background-face (buf-type dif-num)
+  ;; The value of dif-num is always 1- the one that user sees.
+  ;; This is why even face is used when dif-num is odd.
+  (intern (format (if (ediff-odd-p dif-num)
+		      "ediff-even-diff-face-%S"
+		    "ediff-odd-diff-face-%S")
+		  buf-type)))
+
 
 ;; activate faces on diff regions in buffer
 (defun ediff-paint-background-regions-in-one-buffer (buf-type unhighlight)
 	     (lambda (rec)
 	       (setq overl (ediff-get-diff-overlay-from-diff-record rec)
 		     diff-num (ediff-overlay-get overl 'ediff-diff-num))
-	       (ediff-set-overlay-face
-		overl
-		(if (not unhighlight)
-		    (ediff-background-face buf-type diff-num))
-		)))
+	       (if (ediff-overlay-buffer overl)
+		   ;; only if overlay is alive
+		   (ediff-set-overlay-face
+		    overl
+		    (if (not unhighlight)
+			(ediff-background-face buf-type diff-num))))
+	       ))
 	    diff-vector)))
 
 
 	    (ediff-delete-overlay current-diff-overlay))
 	(set current-diff-overlay-var nil)
 	)))
+      
 
 (defsubst ediff-highlight-diff (n)
   "Put face on diff N.  Invoked for X displays only."
   (ediff-unhighlight-diffs-totally-in-one-buffer 'Ancestor)
   )
 
-(defsubst ediff-background-face (buf-type dif-num)
-  ;; The value of dif-num is always 1- the one that user sees.
-  ;; This is why even face is used when dif-num is odd.
-  (intern (format (if (ediff-odd-p dif-num)
-		      "ediff-even-diff-face-%S"
-		    "ediff-odd-diff-face-%S")
-		  buf-type)))
-    
       
 ;; arg is a record for a given diff in a difference vector
 ;; this record is itself a vector
     
 ;; Some overlay functions
 
+(defsubst ediff-overlay-start (overl)
+  (if (ediff-overlayp overl)
+      (if ediff-emacs-p
+	  (overlay-start overl)
+	(extent-start-position overl))))
+	
+(defsubst ediff-overlay-end  (overl)
+  (if (ediff-overlayp overl)
+      (if ediff-emacs-p
+	  (overlay-end overl)
+	(extent-end-position overl))))
+
 (defsubst ediff-empty-overlay-p (overl)
   (= (ediff-overlay-start overl) (ediff-overlay-end overl)))
 
 
 
 (defun ediff-convert-standard-filename (fname)
-  (if ediff-emacs-p
+  (if (fboundp 'convert-standard-filename)
       (convert-standard-filename fname)
-    ;; hopefully, XEmacs adds this functionality
     fname))
 
+
 ;;; Local Variables:
 ;;; eval: (put 'ediff-defvar-local 'lisp-indent-hook 'defun)
 ;;; eval: (put 'ediff-eval-in-buffer 'lisp-indent-hook 1)
 ;;; eval: (put 'ediff-eval-in-buffer 'edebug-form-spec '(form body))
 ;;; End:
-
+     
 (provide 'ediff-init)
 
 

File lisp/ediff/ediff-merg.el

 
 ;;; Code:
 
+(provide 'ediff-merg)
+
+;; compiler pacifier
+(defvar ediff-window-A)
+(defvar ediff-window-B)
+(defvar ediff-window-C)
+(defvar ediff-merge-window-share)
+(defvar ediff-window-config-saved)
+
+(eval-when-compile
+  (let ((load-path (cons "." load-path)))
+    (or (featurep 'ediff-init)
+	(load "ediff-init.el" nil nil 'nosuffix))
+    (or (featurep 'ediff-util)
+	(load "ediff-util.el" nil nil 'nosuffix))
+    ))
+;; end pacifier
+
 (require 'ediff-init)
 
 
 ;;; eval: (put 'ediff-eval-in-buffer 'edebug-form-spec '(form body))
 ;;; End:
 
-(provide 'ediff-merg)
-
 ;; ediff-merg.el ends here

File lisp/ediff/ediff-mult.el

 ;; Users are encouraged to add functionality to this file.
 ;; The present file contains all the infrastructure needed for that.
 ;;
-;; Generally, to implement a new multisession capability within Ediff,
+;; Generally, to to implement a new multisession capability within Ediff,
 ;; you need to tell it 
 ;;
 ;;	1. How to display the session group buffer.
 
 ;;; Code:
 
+(provide 'ediff-mult)
+
+;; compiler pacifier
+(eval-when-compile
+  (let ((load-path (cons (expand-file-name ".") load-path)))
+    (or (featurep 'ediff-init)
+	(load "ediff-init.el" nil nil 'nosuffix))
+    (or (featurep 'ediff-util)
+	(load "ediff-util.el" nil nil 'nosuffix))
+    ))
+;; end pacifier
+
 (require 'ediff-init)
+(require 'ediff-util)
 
 ;; meta-buffer
 (ediff-defvar-local ediff-meta-buffer nil "")
 				  (ediff-add-slash-if-directory auxdir1 elt)))
 			 lis1)
 	  auxdir2	(file-name-as-directory dir2)
-	  lis2		(mapcar
+	  lis2		(mapcar 
 			 (function
 			  (lambda (elt)
 				  (ediff-add-slash-if-directory auxdir2 elt)))
 
     (if (stringp dir3)
 	(setq auxdir3	(file-name-as-directory dir3)
-	      lis3	(mapcar
+	      lis3	(mapcar 
 			 (function
 			  (lambda (elt)
 				  (ediff-add-slash-if-directory auxdir3 elt)))
 	(feq (ediff-get-file-eqstatus fileinfo))
 	file-modtime file-size)
 
-    (cond ((not (stringp fname)) (setq file-size -2)) ; file doesn't exist
+    (cond ((not (stringp fname)) (setq file-size -2)) ; file doesn't exits
 	  ((not (ediff-file-remote-p fname))
 	   (if (file-exists-p fname)
 	       ;; set real size and modtime
 	 (meta-buf (ediff-event-buffer last-command-event))
 	 ;; ediff-get-meta-info gives error if meta-buf or pos are invalid
 	 (info (ediff-get-meta-info meta-buf pos))
-	 merge-autostore-dir
 	 (session-buf (ediff-get-session-buffer info)))
 
     (if (eq (ediff-get-session-status info) ?H)
 	 (meta-buf (ediff-event-buffer last-command-event))
 	 ;; ediff-get-meta-info gives error if meta-buf or pos are invalid
 	 (info (ediff-get-meta-info meta-buf pos))
+	 merge-autostore-dir
 	 session-buf file1 file2 file3 regexp)
 
     (setq session-buf (ediff-get-session-buffer info)
 ;;; eval: (put 'ediff-eval-in-buffer 'edebug-form-spec '(form body))
 ;;; End:
 
-(provide 'ediff-mult)
-(require 'ediff-util)
-
 ;;; ediff-mult.el ends here

File lisp/ediff/ediff-ptch.el

 
 
 ;;; Code:
+	 
+(provide 'ediff-ptch)
+
+;; compiler pacifier
+(defvar ediff-window-A)
+(defvar ediff-window-B)
+(defvar ediff-window-C)
+(defvar ediff-use-last-dir)
+(defvar ediff-shell)
+
+(eval-when-compile
+  (let ((load-path (cons "." load-path)))
+    (or (featurep 'ediff-init)
+	(load "ediff-init.el" nil nil 'nosuffix))
+    (or (featurep 'ediff)
+	(load "ediff.el" nil nil 'nosuffix))
+    (or (featurep 'ange-ftp)
+	(load "ange-ftp" 'noerror))
+    ))
+;; end pacifier
 
 (require 'ediff-init)
 
 		(select-window aux-wind)
 		(bury-buffer)))
 	  (error "Patch appears to have failed")))
-
+    
     ;; If black magic is involved, apply patch to a temp copy of the
     ;; file. Otherwise, apply patch to the orig copy.  If patch is applied
     ;; to temp copy, we name the result old-name_patched for local files
       ;; arrange that the temp copy of orig will be deleted
       (rename-file (concat true-source-filename ediff-backup-extension)
 		   true-source-filename t))
-
+    
     ;; make orig buffer read-only
     (setq startup-hooks
 	  (cons 'ediff-set-read-only-in-buf-A startup-hooks))
-
+    
     ;; set up a buf for the patched file
     (setq target-buf (find-file-noselect target-filename))
     
 ;;; eval: (put 'ediff-eval-in-buffer 'edebug-form-spec '(form body))
 ;;; End:
 
-(provide 'ediff-ptch)
-
 ;;; ediff-ptch.el ends here

File lisp/ediff/ediff-util.el

 ;; Boston, MA 02111-1307, USA.
 
 ;;; Code:
+	 
+(provide 'ediff-util)
 
-;; Pacify compiler and avoid the need in checking for boundp
-(defvar ediff-patch-diagnostics nil)
-(defvar ediff-patchbufer nil)
-(and noninteractive
-     (eval-when-compile
-       (let ((load-path (cons (expand-file-name ".") load-path)))
-	 (load-file "ediff-init.el")
-	 (load-file "ediff-help.el"))))
+;; Compiler pacifier
+(defvar ediff-patch-diagnostics)
+(defvar ediff-patchbufer)
+(defvar ediff-toolbar)
+(defvar mark-active)
+
+(eval-when-compile
+  (let ((load-path (cons "." load-path)))
+    (or (featurep 'ediff-init)
+	(load "ediff-init.el" nil nil 'nosuffix))
+    (or (featurep 'ediff-help)
+	(load "ediff-help.el" nil nil 'nosuffix))
+    (or (featurep 'ediff-mult)
+	(load "ediff-mult.el" nil nil 'nosuffix))
+    (or (featurep 'ediff-wind)
+	(load "ediff-wind.el" nil nil 'nosuffix))
+    (or (featurep 'ediff-diff)
+	(load "ediff-diff.el" nil nil 'nosuffix))
+    (or (featurep 'ediff-merg)
+	(load "ediff-merg.el" nil nil 'nosuffix))
+    (or (featurep 'ediff)
+	(load "ediff.el" nil nil 'nosuffix))
+    (or (featurep 'ediff-tbar)
+	(load "ediff-tbar.el" 'noerror nil 'nosuffix))
+    ))
 ;; end pacifier
 
 (require 'ediff-init)
 (require 'ediff-help)
 (require 'ediff-mult)
+(require 'ediff-wind)
+(require 'ediff-diff)
+(require 'ediff-merg)
 
-;;(if ediff-xemacs-p
-;;    (require 'ediff-tbar)
-;;  (defun ediff-use-toolbar-p () nil))
-;;
-;; for the time being
-(defun ediff-use-toolbar-p () nil)
+
+;; be careful with ediff-tbar
+(if ediff-xemacs-p
+    (condition-case nil
+	(require 'ediff-tbar)
+      (error
+       (defun ediff-use-toolbar-p () nil)))
+  (defun ediff-use-toolbar-p () nil))
 
 
 ;;; Functions
   (run-hooks 'ediff-mode-hook))
 
     
-(require 'ediff-diff)
-(require 'ediff-merg)
-  
 
 ;;; Build keymaps
 
 
 ;;; Setup functions
 
-(require 'ediff-wind)
-
 ;; No longer needed: XEmacs has surrogate minibuffers now.
 ;;(or (boundp 'synchronize-minibuffers)
 ;;    (defvar synchronize-minibuffers nil))
     (goto-char (point-min))
     (skip-chars-forward ediff-whitespace)))
     
-
+    
 
 
 ;;; Commands for working with Ediff
 		     (ediff-abbreviate-file-name file) (beep 1)))
 	))))
 
-
 ;; checkout if visited file is checked in
 (defun ediff-maybe-checkout (buf)
   (let ((file (buffer-file-name buf))
       (ediff-eval-in-buffer ctl-buf
 	(setq ediff-window-B nil) ; force update of window config
 	(ediff-recenter 'no-rehighlight)))))
-
+	
 ;;;###autoload
 (defun ediff-toggle-multiframe ()
   "Switch from the multiframe display to single-frame display and back.
 For a permanent change, set the variable `ediff-window-setup-function',
 which see."
   (interactive)
-  (let (set-func)
-  (or (ediff-window-display-p)
-      (error "%sEmacs is not running as a window application"
-	     (if ediff-emacs-p "" "X")))
+  (let (set-func window-setup-func)
+    (or (ediff-window-display-p)
+	(error "%sEmacs is not running as a window application"
+	       (if ediff-emacs-p "" "X")))
 
-  (setq set-func (if (ediff-in-control-buffer-p) 'setq 'setq-default))
+  ;;(setq set-func (if (ediff-in-control-buffer-p) 'setq 'setq-default))
 
   (cond ((eq ediff-window-setup-function 'ediff-setup-windows-multiframe)
-	 (eval
-	  (list
-	   set-func
-	   'ediff-window-setup-function ''ediff-setup-windows-plain)))
+	 ;; (eval
+	 ;;  (list
+	 ;;   set-func
+	 ;;   'ediff-window-setup-function ''ediff-setup-windows-plain))
+	 (setq window-setup-func 'ediff-setup-windows-plain)
+	 )
 	((eq ediff-window-setup-function 'ediff-setup-windows-plain)
 	 (if (ediff-in-control-buffer-p)
 	     (ediff-kill-bottom-toolbar))
-	 (eval
-	  (list
-	   set-func
-	   'ediff-window-setup-function ''ediff-setup-windows-multiframe))))
+	 ;;(eval
+	 ;; (list
+	 ;;  set-func
+	 ;;  'ediff-window-setup-function 'ediff-setup-windows-multiframe))
+	 (setq window-setup-func 'ediff-setup-windows-multiframe)
+	 ))
+
+  ;; change default
+  (setq-default ediff-window-setup-function window-setup-func)
+  ;; change in all active ediff sessions
+  (mapcar (function (lambda(buf)
+		      (ediff-eval-in-buffer buf
+			(setq ediff-window-setup-function window-setup-func
+			      ediff-window-B nil))))
+	  ediff-session-registry)
   (if (ediff-in-control-buffer-p)
-      (progn
-	(setq ediff-window-B nil)
-	(ediff-recenter 'no-rehighlight)))))
+      (ediff-recenter 'no-rehighlight))))
 
 ;; if was using toolbar, kill it
 (defun ediff-kill-bottom-toolbar ()
 	(narrow-to-region
 	 (ediff-overlay-start overl-B) (ediff-overlay-end overl-B)))
       
-      (if ediff-3way-comparison-job
+      (if ediff-3way-job
 	  (ediff-eval-in-buffer ediff-buffer-C
 	    (narrow-to-region
 	     (ediff-overlay-start overl-C) (ediff-overlay-end overl-C))))
 		    (+ ediff-current-difference arg)))
 	    regexp-skip)
 	    
+	(ediff-visible-region)
 	(or (>= n ediff-number-of-differences)
 	    (setq regexp-skip (funcall ediff-skip-diff-region-function n))
 	    (ediff-install-fine-diff-if-necessary n))
       (let ((n (max -1 (- ediff-current-difference arg)))
 	    regexp-skip)
 	    
+	(ediff-visible-region)
 	(or (< n 0)
 	    (setq regexp-skip (funcall ediff-skip-diff-region-function n))
 	    (ediff-install-fine-diff-if-necessary n))
     (ediff-kill-buffer-carefully ediff-fine-diff-buffer)
     (ediff-kill-buffer-carefully ediff-tmp-buffer)
     (ediff-kill-buffer-carefully ediff-error-buffer)
-    (ediff-kill-buffer-carefully ediff-patch-diagnostics)
     (ediff-kill-buffer-carefully ediff-msg-buffer)
     (ediff-kill-buffer-carefully ediff-debug-buffer)
+    (if (boundp 'ediff-patch-diagnostics)
+	(ediff-kill-buffer-carefully ediff-patch-diagnostics))
 
     (if (and (ediff-window-display-p) (frame-live-p ctl-frame))
 	(delete-frame ctl-frame))
 	 (buf-A-wind (ediff-get-visible-buffer-window buf-A))
 	 (buf-B-wind (ediff-get-visible-buffer-window buf-B))
 	 (buf-C-wind (ediff-get-visible-buffer-window buf-C))
-	 (buf-patch  ediff-patchbufer)
-	 (buf-patch-diag ediff-patch-diagnostics)
+	 (buf-patch  (if (boundp 'ediff-patchbufer) ediff-patchbufer nil))
+	 (buf-patch-diag (if (boundp 'ediff-patch-diagnostics)
+			     ediff-patch-diagnostics nil))
 	 (buf-err  ediff-error-buffer)
 	 (buf-diff ediff-diff-buffer)
 	 (buf-custom-diff ediff-custom-diff-buffer)
 	  (select-window buf-A-wind)
 	  (delete-other-windows)
 	  (bury-buffer))
-      (if (ediff-buffer-live-p buf-A) (bury-buffer buf-A)))
+      (if (ediff-buffer-live-p buf-A)
+	  (progn
+	    (set-buffer buf-A)
+	    (bury-buffer))))
     (if (window-live-p buf-B-wind)
 	(progn
 	  (select-window buf-B-wind)
 	  (delete-other-windows)
 	  (bury-buffer))
-      (if (ediff-buffer-live-p buf-B) (bury-buffer buf-B)))
+      (if (ediff-buffer-live-p buf-B)
+	  (progn
+	    (set-buffer buf-B)
+	    (bury-buffer))))
     (if (window-live-p buf-C-wind)
 	(progn
 	  (select-window buf-C-wind)
 	  (delete-other-windows)
 	  (bury-buffer))
-      (if (ediff-buffer-live-p buf-C) (bury-buffer buf-C)))
-
+      (if (ediff-buffer-live-p buf-C)
+	  (progn
+	    (set-buffer buf-C)
+	    (bury-buffer))))
     ))
 
      
   (let ((answer "")
 	(possibilities (list ?A ?B ?C))
 	(zmacs-regions t)
+	(ctl-buf (current-buffer))
 	quit-now
 	begA begB endA endB bufA bufB)
 
     (cond ((ediff-merge-job)
 	   (setq bufB ediff-buffer-C)
-	   (while (cond ((memq answer '(?A ?a))
-			 (setq bufA ediff-buffer-A)
+	   (while (cond ((eq answer ?A)
+			 (setq bufA ediff-buffer-A
+			       possibilities '(?B))
 			 nil)
-			((memq answer '(?B ?b))
-			 (setq bufA ediff-buffer-B)
+			((eq answer ?B)
+			 (setq bufA ediff-buffer-B
+			       possibilities '(?A))
 			 nil)
 			((equal answer ""))
 			(t (beep 1)
 			   t))
 	     (let ((cursor-in-echo-area t))
 	       (message "Which buffer to compare to the merge buffer (A/B)? ")
-	       (setq answer (read-char-exclusive)))))
+	       (setq answer (capitalize (read-char-exclusive))))))
 
 	  ((ediff-3way-comparison-job)
 	   (while (cond ((memq answer possibilities)
 	       (setq answer (capitalize (read-char-exclusive))))))
 	  (t ; 2way comparison
 	   (setq bufA ediff-buffer-A
-		 bufB ediff-buffer-B)))
+		 bufB ediff-buffer-B
+		 possibilities nil)))
 
     (ediff-eval-in-buffer bufA
       (or (mark t)
       )
     ;; (sit-for 0)
     
+    ;; At this point, possibilities contains either the window char A/B/C
+    ;; that was not selected, or it is nil. We delete the window that is not
+    ;; selected.
+    (if possibilities
+	(ediff-eval-in-buffer ctl-buf
+	  (let* ((wind-to-delete (eval
+				  (intern
+				   (format
+				    "ediff-window-%c" (car possibilities)))))
+		 (frame (window-frame wind-to-delete)))
+	    (delete-window wind-to-delete)
+	    (select-frame frame)
+	    (balance-windows))))
     (or (y-or-n-p 
-	 "Please check the selected regions. Continue? ")
+	 "Please check regions selected for comparison. Continue? ")
 	(setq quit-now t))
     
     (ediff-eval-in-buffer bufA
     (ediff-eval-in-buffer bufB
       (widen))
     (if quit-now
-	(error "Thank you. Come back another day..."))
+	(ediff-eval-in-buffer ctl-buf
+	  (ediff-recenter)
+	  (sit-for 0)
+	  (error "All right. Make up your mind and come back...")))
 
     (ediff-regions-internal
      bufA begA endA bufB begB endB
      'ediff-regions-linewise	; job name
      nil)			; no word mode
     ))
-
-
+      
+    
 
 (defun ediff-remove-flags-from-buffer (buffer overlay)
   (ediff-eval-in-buffer buffer
 	  (ediff-overlay-put overl 'ediff-diff-num 0)
 	  overl))))
 	  
-(defsubst ediff-overlay-start (overl)
-  (if (ediff-overlayp overl)
-      (if ediff-emacs-p
-	  (overlay-start overl)
-	(extent-start-position overl))))
-	
-(defsubst ediff-overlay-end  (overl)
-  (if (ediff-overlayp overl)
-      (if ediff-emacs-p
-	  (overlay-end overl)
-	(extent-end-position overl))))
-
   
 ;; Like other-buffer, but prefers visible buffers and ignores temporary or
 ;; other insignificant buffers (those beginning with "^[ *]").
 ;;; eval: (put 'ediff-eval-in-buffer 'edebug-form-spec '(form body))
 ;;; End:
 
-(provide 'ediff-util)
-
 ;;; ediff-util.el ends here

File lisp/ediff/ediff-vers.el

 (defvar cvs-shell)
 (defvar cvs-program)
 (defvar cvs-cookie-handle)
+(defvar ediff-temp-file-prefix)
 
-(and noninteractive
-     (eval-when-compile
-       (load "pcl-cvs" 'noerror)
-       (load "rcs" 'noerror)
-       (load "generic-sc" 'noerror)
-       (load "vc" 'noerror)))
+(eval-when-compile
+  (load "pcl-cvs" 'noerror)
+  (load "rcs" 'noerror)
+  (load "generic-sc" 'noerror)
+  (load "vc" 'noerror))
 ;; end pacifier
       
 ;; VC.el support
      'ediff-revision)))
     
 ;; RCS.el support
-(defun ediff-rcs-view-revision (&optional rev)
+(defun rcs-ediff-view-revision (&optional rev)
 ;; View previous RCS revision of current file.
 ;; With prefix argument, prompts for a revision name.
   (interactive (list (if current-prefix-arg 

File lisp/ediff/ediff-wind.el

 ;; Boston, MA 02111-1307, USA.
 
 ;;; Code:
-
-(require 'ediff-init)
-;;(if ediff-xemacs-p
-;;    (nil) (require 'ediff-tbar)
-(defun ediff-compute-toolbar-width () 0)
+	 
+(provide 'ediff-wind)
 
 ;; Compiler pacifier
 (defvar icon-title-format)
 (defvar right-toolbar-width)
 (defvar default-menubar)
 (defvar frame-icon-title-format)
+(defvar ediff-diff-status)
+
+(eval-when-compile
+  (let ((load-path (cons  "." load-path)))
+    (or (featurep 'ediff-init)
+	(load "ediff-init.el" nil nil 'nosuffix))
+    (or (featurep 'ediff-help)
+	(load "ediff-help.el" nil nil 'nosuffix))
+    (or (featurep 'ediff-util)
+	(load "ediff-util.el" nil nil 'nosuffix))
+    (or (featurep 'ediff-tbar)
+	(load "ediff-tbar.el" 'noerror nil 'nosuffix))
+    ))
 ;; end pacifier
 
+(require 'ediff-init)
+
+;; be careful with ediff-tbar
+(if ediff-xemacs-p
+    (condition-case nil
+	(require 'ediff-tbar)
+      (error
+       (defun ediff-compute-toolbar-width () 0)))
+  (defun ediff-compute-toolbar-width () 0))
+
 
 (defvar ediff-window-setup-function (if (ediff-window-display-p)
 					'ediff-setup-windows-multiframe
     (modify-frame-parameters ctl-frame adjusted-parameters)
     (make-frame-visible ctl-frame)
     (ediff-make-bottom-toolbar) ; no effect if the toolbar is not requested
-
+    
     ;; This works around a bug in 19.25 and earlier. There, if frame gets
     ;; iconified, the current buffer changes to that of the frame that
     ;; becomes exposed as a result of this iconification.
 ;;; eval: (put 'ediff-eval-in-buffer 'edebug-form-spec '(form body))
 ;;; End:
 
-(provide 'ediff-wind)
-
-
 ;;; ediff-wind.el ends here

File lisp/ediff/ediff.el

 ;; Created: February 2, 1994
 ;; Keywords: comparing, merging, patching, version control.
 
-(defconst ediff-version "2.63" "The current version of Ediff")
-(defconst ediff-date "September 12, 1996" "Date of last update")
+(defconst ediff-version "2.64" "The current version of Ediff")
+(defconst ediff-date "January 3, 1997" "Date of last update")  
 
 
 ;; This file is part of GNU Emacs.
 
 ;;; Code:
 
+(provide 'ediff)
+
+;; Compiler pacifier
+(eval-when-compile
+  (let ((load-path (cons "." load-path)))
+    (load "dired")
+    (or (featurep 'ediff-init)
+	(load "ediff-init.el" nil nil 'nosuffix))
+    (or (featurep 'ediff-mult)
+	(load "ediff-mult.el" nil nil 'nosuffix))
+    (or (featurep 'ediff-ptch)
+	(load "ediff-ptch.el" nil nil 'nosuffix))
+    (or (featurep 'ediff-vers)
+	(load "ediff-vers.el" nil nil 'nosuffix))
+    (load "pcl-cvs" 'noerror)
+    ))
+;; end pacifier
+
 (require 'ediff-init)
-;; ediff-mult is always required, because of the registry stuff
-(require 'ediff-mult)
-
-(and noninteractive
-     (eval-when-compile
-       (let ((load-path (cons (expand-file-name ".") load-path)))
-	 (load-library "dired")