Commits

Anonymous committed 9ad4387

Import from CVS: tag r20-3b16

Comments (0)

Files changed (63)

 							-*- indented-text -*-
+to 20.3 beta16 "Budapest"
+-- New lisp finding functions courtesy of Jens Petersen
+   New keybindings:  C-c f -- find-function
+		     C-x 4 F -- find-function-other-window
+		     C-x 5 F -- find-function-other-frame
+-- vhdl-mode.el-2.74 Courtesy of Rod Whitby
+-- Custom-1.9953
+-- OffiX DnD extensions courtesy of Oliver Graf
+-- Miscellaneous bug fixes
+
 to 20.3 beta15 "Berlin"
 -- cc-mode-5.14
 -- hm--html-menus-5.8
+1997-07-31  SL Baur  <steve@altair.xemacs.org>
+
+	* XEmacs 20.3-beta16 is released.
+
+1997-07-31  Martin Buchholz  <mrb@eng.sun.com>
+
+	* configure.in: --with-x11=no --> --with-xface=no
+	* lisp/efs/dired-xemacs.el: Rationalize mouse file functions
+	* src/input-method-xlib.c: Allow xemacs to connect to kinput2
+	* event-Xt.c: Fix crashes when no input context available.
+	* src/mule-coding.c: Use enum eol_type instead of int consistently
+	* regex.c:  Use (void *) 0 instead of NULL in varargs function calls
+	* src/s/freebsd.h: Wrap #include X11/Xlocale.h inside #ifndef
+	NOT_C_CODE
+
+1997-07-27  SL Baur  <steve@altair.xemacs.org>
+
+	* etc/BETA: Update patching instructions.
+
 1997-07-26  SL Baur  <steve@altair.xemacs.org>
 
 	* XEmacs 20.3-beta15 is released.
 problems sometimes encountered, and what to do about them.
 
 
+If all else fails, please see etc/InstallGuide courtesy
+of Jonathan Seth Hayward.
 --x-includes=DIR 	Search for X header files in DIR.
 --x-libraries=DIR	Search for X libraries in DIR.
 --with-toolbars=no	Don't compile with any toolbar support.
---with-wm		Compile with realized leader window for proper
-			creation of the ApplicationIcon with the
-			WindowMaker windowmanager (SESSION MANAGEMENT).
+--with-session=no	Compile without realized leader window which will
+			keep the WM_COMMAND property. Required for proper
+			session-management. (ON by default for testing)
 --with-menubars=TYPE	Use TYPE menubars (lucid, motif, or no).  The Lucid
 			widgets emulate Motif (mostly) but are faster.
 			*WARNING*  The Motif menubar is currently broken.
 	with_jpeg	| \
 	with_png	| \
 	with_tiff	| \
-	with_wm		| \
+	with_session	| \
 	with_xmu	| \
 	with_quantify	| \
 	with_toolbars	| \
   if test "$with_tty" = "no" ; then
     { echo "configure: error: No window system support and no TTY support - Unable to proceed." 1>&2; exit 1; }
   fi
-  for feature in tooltalk cde offix wm \
+  for feature in tooltalk cde offix session \
                  menubars scrollbars toolbars dialogs xim xmu \
-                 tiff png jpeg gif compface xpm
+                 tiff png jpeg gif xface xpm
   do
     if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
        echo "configure: warning: --with-$feature ignored:  Not valid without X support" 1>&2
   test "$opsys" = "hpux9-shr" && opsysfile="s/hpux9shxr4.h"
 esac
 
-echo "checking for WindowMaker option" 1>&6
-echo "configure:5535: checking for WindowMaker option" >&5;
-if test "$with_wm" = "yes"; then
+echo "checking for session-management option" 1>&6
+echo "configure:5535: checking for session-management option" >&5;
+if test "$with_session" != "no"; then
   { test "$extra_verbose" = "yes" && cat << \EOF
-    Defining HAVE_WINDOWMAKER
-EOF
-cat >> confdefs.h <<\EOF
-#define HAVE_WINDOWMAKER 1
+    Defining HAVE_SESSION
+EOF
+cat >> confdefs.h <<\EOF
+#define HAVE_SESSION 1
 EOF
 }
 
 test "$with_offix"    = yes && echo "  Compiling in support for OffiX."
 test "$with_workshop" = yes && echo "  Compiling in support for Sun WorkShop."
 test "$with_energize" = yes && echo "  Compiling in support for Lucid Energize (doesn't currently work)."
-test "$with_wm"       = yes && echo "  Compiling in support for WindowMaker."
+test "$with_session"  != no && echo "  Compiling in support for proper session-management."
 case  "$with_menubars" in
   lucid ) echo "  Using Lucid menubars." ;;
   motif ) echo "  Using Motif menubars."
 --x-includes=DIR 	Search for X header files in DIR.
 --x-libraries=DIR	Search for X libraries in DIR.
 --with-toolbars=no	Don't compile with any toolbar support.
---with-wm		Compile with realized leader window for proper
-			creation of the ApplicationIcon with the
-			WindowMaker windowmanager (SESSION MANAGEMENT).
+--with-session=no	Compile without realized leader window which will
+			keep the WM_COMMAND property. Required for proper
+			session-management. (ON by default for testing)
 --with-menubars=TYPE	Use TYPE menubars (lucid, motif, or no).  The Lucid
 			widgets emulate Motif (mostly) but are faster.
 			*WARNING*  The Motif menubar is currently broken.
 	with_jpeg	| \
 	with_png	| \
 	with_tiff	| \
-	with_wm		| \
+	with_session	| \
 	with_xmu	| \
 	with_quantify	| \
 	with_toolbars	| \
   if test "$with_tty" = "no" ; then
     AC_MSG_ERROR([No window system support and no TTY support - Unable to proceed.])
   fi
-  for feature in tooltalk cde offix wm \
+  for feature in tooltalk cde offix session \
                  menubars scrollbars toolbars dialogs xim xmu \
-                 tiff png jpeg gif compface xpm
+                 tiff png jpeg gif xface xpm
   do
     if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
        AC_MSG_WARN([--with-$feature ignored:  Not valid without X support])
   test "$opsys" = "hpux9-shr" && opsysfile="s/hpux9shxr4.h"
 esac
 
-dnl Check for WindowMaker
-AC_CHECKING(for WindowMaker option);
-if test "$with_wm" = "yes"; then
-  AC_DEFINE(HAVE_WINDOWMAKER)
+dnl Enable or disable proper session-management
+AC_CHECKING(for session-management option);
+if test "$with_session" != "no"; then
+  AC_DEFINE(HAVE_SESSION)
 fi
 
 dnl Autodetect Xauth
 test "$with_offix"    = yes && echo "  Compiling in support for OffiX."
 test "$with_workshop" = yes && echo "  Compiling in support for Sun WorkShop."
 test "$with_energize" = yes && echo "  Compiling in support for Lucid Energize (doesn't currently work)."
-test "$with_wm"       = yes && echo "  Compiling in support for WindowMaker."
+test "$with_session"  != no && echo "  Compiling in support for proper session-management."
 case  "$with_menubars" in
   lucid ) echo "  Using Lucid menubars." ;;
   motif ) echo "  Using Motif menubars."
 Any rejections should be treated as serious problems to be resolved
 before starting compilation.
 
-After seeing that there were no rejections, issue the command
+After seeing that there were no rejections, issue the commands
 
-$ make all-elc
+$ ./config.status --recheck
+$ make beta
 
 and go play minesweep for awhile on an older XEmacs while the binary
 is rebuilt.
+Introduction
+
+Thank you for downloading XEmacs.  We of the XEmacs development team
+believe user satisfaction is our number one priority, and we hope that
+you will be pleased with the power of our editor.  Please follow all
+of the instructions in order to enjoy a quick and easy installation.
+
+
+Getting Started
+
+In this guide, information which you will need to supply will be enclosed in
+angle brackets, <like this>.  Commands which you will have to enter will be
+indented,
+
+	like this.
+
+You will need to provide a loading directory, in which to load the
+material from tape (/tmp/xemacs is recommended), and a permanent
+installation directory (/usr/local/xemacs is recommended).
+
+
+Loading From Tape
+
+First create and change directory to the loading directory:
+
+	mkdir <working directory>
+	cd <working directory>
+
+Now you are ready to load the software from tape.
+
+The specific device name needed to load the tape varies with hardware vendors,
+and may be found in Appendix A, "Vendors and Device Names".
+
+Load the software from tape:
+
+	tar xvf /dev/<device name>
+
+You have now loaded all of the software from tape, and are ready to compile and
+install the XEmacs Text Editor.
+
+
+Compiling and Installing the XEmacs Editor
+
+Compiling and installing the libraries is handled by a user-friendly shell
+script.  You will need to provide some information to the script, such as your
+organization name and registration number.  To run the script, type
+
+	/bin/sh xemacs/xemacs.install -d <installation directory>
+
+Follow the script's directions, and provide the information which it prompts
+for.
+
+When the script prompts you for the directory in which the distribution files
+are located, you will find that you are unable to provide it with any directory
+which the script will deem satisfactory.  That is because it is necessary to
+order the following additional parts which are necessary to continue with the
+installation:
+
+	Part Number	Qty	Name				Price
+
+	GM-96-3026	1	Goat, male			 1000.00
+	CB-13-2395	1	Candle, black			   50.00
+	CG-63-6376	1	Chalk dust container		   10.00
+	IB-89-3335	5	Incense sticks			    5.00
+	DE-44-8846	1	Dagger, ebon, curved		  500.00
+	AS-87-2319	1	Altar, silver			10000.00
+
+Wait until the additional parts arrive; you will be ready to continue the
+installation the next Friday the 13th at midnight.
+
+
+Ritual for Successfully Completing Installation
+
+Stand in front of the computer.  Pour out the chalk dust in an inscribed
+pentagram around you; be sure that it is without breaks.  Set an incense stick
+at each of the five corners, the altar in front of the computer, and the candle
+in front of the altar.
+
+Light each of the incense sticks and the candles, chanting in a low voice:
+
+	Daemons and spirits of the netherworld
+	Forces of all that is chaotic and mysterious
+	Essence of Netscape and MicroSoft
+
+	I am coming here to appease you
+	I offer you this goat
+	That my software may work
+
+	I bind you here
+	Do not make my system crash
+	Let the software install as advertised
+
+Place the goat on the altar, and slaughter it with the dagger.
+
+	May this goat feed you
+	Sate your lust for blood
+	Into it may your mischief fly
+	Not my computer
+	Make the software work
+	For this is the only way
+
+Then spit into the computer's ventilation slots.  This will complete different
+circuits inside the computer, causing its motherboard and cards to function in
+ways that the engineers never intended, thereby making your system compatible
+with our libraries.
+
+Reboot your computer.  The installation is now complete.
+
+[This has undergone a minor rewrite for XEmacs.  It originally
+appeared on rec.humor.funny courtesy of jonathan seth hayward
+<jhayward@students.uiuc.edu>, and is included by permission of the
+author].

lib-src/ChangeLog

+1997-07-27  SL Baur  <steve@altair.xemacs.org>
+
+	* Makefile.in.in (UTILITIES): Add config.values so it can be
+	cleared away by `make distclean'.
+
 1997-07-21  SL Baur  <steve@altair.xemacs.org>
 
 	* update-elc.sh (make_special_commands): Remove processing for

lib-src/Makefile.in.in

 ## which should not be installed in bindir.
 UTILITIES= make-path wakeup profile make-docfile digest-doc \
 	sorted-doc movemail cvtmail fakemail yow hexl \
-	gnuserv mmencode
+	gnuserv mmencode config.values
 ## These need to be conditional on I18N3 make-msgfile make-po
 
 ## Like UTILITIES, but they are not system-dependent, and should not be

lib-src/config.values

-CFLAGS "-m486 -Wall -O4 -fno-strength-reduce -malign-loops=2 -malign-jumps=2 -malign-functions=2 -fomit-frame-pointer"
-CPPFLAGS ""
-CXXFLAGS ""
-DEFS "-DHAVE_CONFIG_H"
-LDFLAGS ""
-LIBS "-ldb -lgdbm -lgpm -lncurses -lintl -lm "
-exec_prefix "/usr/src/junk2"
-prefix "/usr/src/junk1"
-program_transform_name "s,x,x,"
-bindir "${exec_prefix}/bin"
-sbindir "${exec_prefix}/sbin"
-libexecdir "${exec_prefix}/libexec"
-datadir "${prefix}/lib"
-sysconfdir "${prefix}/etc"
-sharedstatedir "${prefix}/com"
-localstatedir "${prefix}/var"
-libdir "${exec_prefix}/lib"
-includedir "${prefix}/include"
-oldincludedir "/usr/include"
-infodir "${prefix}/lib/xemacs-${version}/info"
-mandir "${prefix}/man/man1"
-LN_S "ln -s"
-CC "gcc"
-CPP "gcc -E"
-ld_switch_shared "-c"
-start_files ""
-start_flags ""
-ld "$(CC) $(CFLAGS)"
-lib_gcc ""
-RANLIB "ranlib"
-INSTALL_PROGRAM "${INSTALL}"
-INSTALL_DATA "${INSTALL} -m 644"
-YACC "bison -y"
-SET_MAKE ""
-X_CFLAGS " -I/usr/X11R6/include"
-X_PRE_LIBS " -lSM -lICE"
-X_LIBS " -L/usr/X11R6/lib"
-X_EXTRA_LIBS ""
-libs_xauth "-lXau -lXmu -lXt -lXext -lX11 -lSM -lICE"
-lwlib_objs " lwlib-Xaw.o xlwmenu.o lwlib-Xlw.o"
-ALLOCA ""
-SRC_SUBDIR_DEPS " lwlib"
-INSTALL_ARCH_DEP_SUBDIR " lib-src pkg-src/tree-x"
-MAKE_SUBDIR " lib-src lwlib pkg-src/tree-x src"
-SUBDIR_MAKEFILES "lib-src/Makefile lwlib/Makefile pkg-src/tree-x/Makefile src/Makefile"
-version "20.3-b15"
-configuration "i586-pc-linux"
-canonical "i586-pc-linux"
-srcdir "/b/XEmacs/xemacs-20.0"
-pkgdir ""
-statedir "${prefix}/lib"
-infodir_user_defined "no"
-lispdir "${datadir}/xemacs-${version}/lisp"
-lispdir_user_defined "no"
-sitelispdir "${datadir}/xemacs/site-lisp"
-etcdir "${datadir}/xemacs-${version}/etc"
-etcdir_user_defined "no"
-lockdir "${statedir}/xemacs/lock"
-lockdir_user_defined "no"
-archlibdir "${libdir}/xemacs-${version}/${configuration}"
-archlibdir_user_defined "yes"
-docdir ""
-bitmapdir ""
-extra_objs "debug.o unexelf.o dgif_lib.o gif_err.o gifalloc.o menubar.o scrollbar.o dialog.o toolbar.o gui.o menubar-x.o scrollbar-x.o dialog-x.o toolbar-x.o gui-x.o mule.o mule-ccl.o mule-charset.o mule-coding.o mule-wnnfns.o mule-canna.o realpath.o inline.o console-tty.o device-tty.o event-tty.o frame-tty.o objects-tty.o redisplay-tty.o cm.o terminfo.o gpmevent.o event-unixoid.o database.o"
-machfile "m/intel386.h"
-opsysfile "s/linux.h"
-c_switch_general "-DHAVE_CONFIG_H"
-c_switch_window_system "-I/usr/X11R6/include"
-c_switch_all "-DHAVE_CONFIG_H -I/usr/X11R6/include"
-ld_switch_general ""
-ld_switch_window_system "-L/usr/X11R6/lib"
-ld_switch_all "-L/usr/X11R6/lib"
-ld_libs_general "-ldb -lgdbm -lgpm -lncurses -lintl -lm"
-ld_libs_window_system "-lcanna -lRKC -lwnn -lXaw -lpng -lz -ljpeg -lcompface -lXpm -lDnd -lXmu -lXt -lXext -lX11 -lSM -lICE"
-ld_libs_all "-lcanna -lRKC -lwnn -lXaw -lpng -lz -ljpeg -lcompface -lXpm -lDnd -lXmu -lXt -lXext -lX11 -lSM -lICE -ldb -lgdbm -lgpm -lncurses -lintl -lm"
-RECURSIVE_MAKE "$(MAKE) $(MFLAGS) CC='$(CC)' CFLAGS='$(CFLAGS)' LDFLAGS='$(LDFLAGS)' CPPFLAGS='$(CPPFLAGS)'"
-native_sound_lib ""
-sound_cflags ""
-dynodump_arch ""
-internal_makefile_list "Makefile lib-src/Makefile.in lwlib/Makefile.in pkg-src/tree-x/Makefile.in src/Makefile.in"
-configure_input "$configure_input"
-srcdir "$srcdir"
-top_srcdir "$top_srcdir"
-INSTALL "$INSTALL"
-EMACS_MAJOR_VERSION 20
-EMACS_MINOR_VERSION 3
-EMACS_BETA_VERSION 15
-XEMACS_CODENAME "Berlin"
-EMACS_VERSION "20.3-b15"
-DEBUG_XEMACS t
-USE_ASSERTIONS t
-MEMORY_USAGE_STATS t
-CANONICAL_VERSION 20_3_b15_i586_pc_linux
-HAVE_SYS_TIMEB_H t
-HAVE_SYS_TIME_H t
-HAVE_UNISTD_H t
-HAVE_UTIME_H t
-HAVE_LOCALE_H t
-HAVE_FCNTL_H t
-HAVE_ULIMIT_H t
-HAVE_LINUX_VERSION_H t
-HAVE_LIMITS_H t
-HAVE_SYS_WAIT_H t
-STDC_HEADERS t
-TIME_WITH_SYS_TIME t
-SYS_SIGLIST_DECLARED t
-HAVE_STRUCT_UTIMBUF t
-RETSIGTYPE void
-HAVE_TIMEVAL t
-HAVE_TZNAME t
-SIZEOF_SHORT 2
-SIZEOF_INT 4
-SIZEOF_LONG 4
-SIZEOF_LONG_LONG 8
-SIZEOF_VOID_P 4
-HAVE_LONG_FILE_NAMES t
-HAVE_LIBM t
-LISP_FLOAT_TYPE t
-HAVE_X_WINDOWS t
-NARROWPROTO t
-_POSIX_SOURCE t
-_BSD_SOURCE t
-_SVID_SOURCE t
-linux t
-__i386__ t
-X_LOCALE t
-THIS_IS_X11R6 t
-HAVE_X11_XLOCALE_H t
-HAVE_XFREE386 t
-HAVE_XAUTH t
-HAVE_OFFIX_DND t
-HAVE_GIF t
-HAVE_XPM t
-HAVE_XFACE t
-HAVE_JPEG t
-HAVE_PNG t
-LWLIB_USES_ATHENA t
-NEED_ATHENA t
-NEED_LUCID t
-LWLIB_SCROLLBARS_ATHENA t
-LWLIB_DIALOGS_ATHENA t
-LWLIB_SCROLLBARS_ATHENA3D t
-LWLIB_DIALOGS_ATHENA3D t
-HAVE_MENUBARS t
-HAVE_SCROLLBARS t
-HAVE_DIALOGS t
-HAVE_TOOLBARS t
-LWLIB_MENUBARS_LUCID t
-MULE t
-HAVE_LIBINTL_H t
-HAVE_LIBINTL t
-HAVE_CRYPT t
-HAVE_WNN t
-HAVE_CANNA t
-HAVE_ACOSH t
-HAVE_ASINH t
-HAVE_ATANH t
-HAVE_CBRT t
-HAVE_CLOSEDIR t
-HAVE_DUP2 t
-HAVE_FMOD t
-HAVE_FPATHCONF t
-HAVE_FREXP t
-HAVE_FTIME t
-HAVE_GETHOSTNAME t
-HAVE_GETPAGESIZE t
-HAVE_GETTIMEOFDAY t
-HAVE_GETCWD t
-HAVE_GETWD t
-HAVE_LRAND48 t
-HAVE_MKDIR t
-HAVE_MKTIME t
-HAVE_PERROR t
-HAVE_POLL t
-HAVE_RANDOM t
-HAVE_RENAME t
-HAVE_RES_INIT t
-HAVE_RINT t
-HAVE_RMDIR t
-HAVE_SELECT t
-HAVE_SETITIMER t
-HAVE_SETPGID t
-HAVE_SETLOCALE t
-HAVE_SETSID t
-HAVE_SIGBLOCK t
-HAVE_SIGPROCMASK t
-HAVE_STRCASECMP t
-HAVE_STRERROR t
-HAVE_TZSET t
-HAVE_ULIMIT t
-HAVE_USLEEP t
-HAVE_UTIMES t
-HAVE_WAITPID t
-HAVE_H_ERRNO t
-HAVE_SIGSETJMP t
-LOCALTIME_CACHE t
-HAVE_INLINE t
-HAVE_ALLOCA_H t
-HAVE_ALLOCA t
-HAVE_STRCOLL t
-HAVE_GETPGRP t
-GETPGRP_VOID t
-HAVE_MMAP t
-REL_ALLOC t
-HAVE_TERMIOS t
-SIGNALS_VIA_CHARACTERS t
-NO_TERMIO t
-HAVE_SOCKETS t
-HAVE_SYSVIPC t
-SYSV_SYSTEM_DIR t
-NLIST_STRUCT t
-HAVE_TTY t
-HAVE_NCURSES t
-CURSES_H_PATH "ncurses/curses.h"
-TERM_H_PATH "ncurses/term.h"
-HAVE_GPM t
-HAVE_DBM t
-DB_H_PATH "db.h"
-HAVE_BERKELEY_DB t
-HAVE_DATABASE t
-EMACS_CONFIGURATION "i586-pc-linux"
-EMACS_CONFIG_OPTIONS " '--cflags=-m486 -Wall -O4 -fno-strength-reduce -malign-loops=2 -malign-jumps=2 -malign-functions=2 -fomit-frame-pointer' --with-sound=no --error-checking=none --debug=yes --with-mule=yes --with-dialogs=athena3d --with-scrollbars=athena3d --use-union-type=yes --with-xim=no --mail-locking=file --prefix=/usr/src/junk1 --exec-prefix=/usr/src/junk2"
-config_machfile "m/intel386.h"
-config_opsysfile "s/linux.h"
-LD_SWITCH_X_SITE ""
-LD_SWITCH_X_SITE_AUX ""
-C_SWITCH_X_SITE ""
-LD_SWITCH_SITE ""
-C_SWITCH_SITE ""
-GNU_MALLOC t
-USE_GCC t
-CONST_IS_LOSING t
+1997-07-30  SL Baur  <steve@altair.xemacs.org>
+
+	* prim/startup.el (find-emacs-root-internal-1): Remove diagnostic.
+
+	* prim/packages.el (packages-find-packages): Remove diagnostic.
+
+1997-07-27  SL Baur  <steve@altair.xemacs.org>
+
+	* utils/config.el (config-value-hash-table): Only store the first
+	occurrence of a symbol.
+
+	* modes/make-mode.el: Remove imenu stuffs.
+
 Sat Jul 26 12:24:20 1997  Barry A. Warsaw  <cc-mode-help@python.org>
 
 	* cc-mode/  Release 5.14

lisp/custom/ChangeLog

+Mon Jul 28 19:23:37 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 1.9953 released.
+
+Mon Jul 28 18:04:46 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* wid-edit.el (widget-field-add-space): Default to t on all
+	plaforms. 
+
+	* custom.el (defgroup): Doc fix.
+	Patch by karlheg+xemacs@inetarena.com (Karl M. Hegbloom).
+
+	* wid-edit.el (functionp): Use `byte-code-function-p' instead of
+	`compiled-function-p'. 
+	
+	* Version 1.9952 released.
+
+Mon Jul 28 17:52:55 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* wid-edit.el (functionp): Use `compiled-function-p' instead of
+	`byte-code-function-p'. 
+	(widget-map-buttons): Comment out `parent'.
+	(widget-insert): Don't bind `from'.
+	(widget-move): Dont' bind `new' at start.
+
+	* cus-edit.el (custom-buffer-create-internal): Refer to `mouse-2'
+	instead of `mouse-1'.
+	(customize-browse): Ditto.
+	(custom-mode-map): Don't bind `mouse-1'.
+	(custom-load-symbol): Check that `preloaded-file-list' is bound.
+	(custom-group-value-create): Comment out `indent'.
+
+	* all: Synched with FSF.
+
 Sat Jul 12 01:24:32 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
 
 	* Version 1.9951 released.

lisp/custom/cus-edit.el

-;;; cus-edit.el --- Tools for customization Emacs.
+;;; cus-edit.el --- Tools for customizating Emacs and Lisp packages.
 ;;
 ;; Copyright (C) 1996, 1997 Free Software Foundation, Inc.
 ;;
 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
 ;; Keywords: help, faces
-;; Version: 1.9951
+;; Version: 1.9953
 ;; X-URL: http://www.dina.kvl.dk/~abraham/custom/
 
 ;; This file is part of GNU Emacs.
   :group 'custom-menu
   :type 'boolean)
 
+(defcustom custom-unlispify-remove-prefixes nil
+  "Non-nil means remove group prefixes from option names in buffer."
+  :group 'custom-menu
+  :type 'boolean)
+
 (defun custom-unlispify-menu-entry (symbol &optional no-suffix)
   "Convert symbol into a menu entry."
   (cond ((not custom-unlispify-menu-entries)
 		      (re-search-forward "-p\\'" nil t))
 	     (replace-match "" t t)
 	     (goto-char (point-min)))
-	   (let ((prefixes custom-prefix-list)
-		 prefix)
-	     (while prefixes
-	       (setq prefix (car prefixes))
-	       (if (search-forward prefix (+ (point) (length prefix)) t)
-		   (progn 
-		     (setq prefixes nil)
-		     (delete-region (point-min) (point)))
-		 (setq prefixes (cdr prefixes)))))
+	   (if custom-unlispify-remove-prefixes
+	       (let ((prefixes custom-prefix-list)
+		     prefix)
+		 (while prefixes
+		   (setq prefix (car prefixes))
+		   (if (search-forward prefix (+ (point) (length prefix)) t)
+		       (progn 
+			 (setq prefixes nil)
+			 (delete-region (point-min) (point)))
+		     (setq prefixes (cdr prefixes))))))
 	   (subst-char-in-region (point-min) (point-max) ?- ?\  t)
 	   (capitalize-region (point-min) (point-max))
 	   (unless no-suffix 
 ;;; The Tree Browser.
 
 ;;;###autoload
-(defun customize-browse (group)
+(defun customize-browse (&optional group)
   "Create a tree browser for the customize hierarchy."
-  (interactive (list (let ((completion-ignore-case t))
-		       (completing-read "Customize group: (default emacs) "
-					obarray 
-					(lambda (symbol)
-					  (get symbol 'custom-group))
-					t))))
-
-  (when (stringp group)
-    (if (string-equal "" group)
-	(setq group 'emacs)
-      (setq group (intern group))))
+  (interactive)
+  (unless group
+    (setq group 'emacs))
   (let ((name "*Customize Browser*"))
     (kill-buffer (get-buffer-create name))
     (switch-to-buffer (get-buffer-create name)))
   (custom-mode)
   (widget-insert "\
-Invoke [+] or [?] below to expand items, and [-] to collapse items.\n")
+Square brackets show active fields; type RET or click mouse-2
+on an active field to invoke its action.
+Invoke [+] below to expand a group, and [-] to collapse an expanded group.\n")
   (if custom-browse-only-groups
       (widget-insert "\
 Invoke the [Group] button below to edit that item in another window.\n\n")
 		   (require load)
 		 (error nil)))
 	      ;; Don't reload a file already loaded.
+	      ((and (boundp 'preloaded-file-list)
+		    (member load preloaded-file-list)))
 	      ((assoc load load-history))
 	      ((assoc (locate-library load) load-history))
 	      (t
   "Insert a customize group for WIDGET in the current buffer."
   (let* ((state (widget-get widget :custom-state))
 	 (level (widget-get widget :custom-level))
-	 (indent (widget-get widget :indent))
+	 ;; (indent (widget-get widget :indent))
 	 (prefix (widget-get widget :custom-prefix))
 	 (buttons (widget-get widget :buttons))
 	 (tag (widget-get widget :tag))
 	   (push (widget-create-child-and-convert
 		  widget 'custom-browse-visibility 
 		  ;; :tag-glyph "plus"
-		  :tag (if (custom-unloaded-widget-p widget) "?" "+"))
+		  :tag "+")
 		 buttons)
 	   (insert "-- ")
 	   ;; (widget-glyph-insert nil "-- " "horizontal")
 
 ;;; Menu support
 
-(unless (string-match "XEmacs" emacs-version)
-  (defconst custom-help-menu
-    '("Customize"
-      ["Update menu" Custom-menu-update t]
-      ["Browse" (customize-browse 'emacs) t]
-      ["Group..." customize-group t]
-      ["Option..." customize-option t]
-      ["Face..." customize-face t]
-      ["Saved..." customize-saved t]
-      ["Set..." customize-customized t]
-      "--"
-      ["Apropos..." customize-apropos t]
-      ["Group apropos..." customize-apropos-groups t]
-      ["Option apropos..." customize-apropos-options t]
-      ["Face apropos..." customize-apropos-faces t])
-    ;; This menu should be identical to the one defined in `menu-bar.el'. 
-    "Customize menu")
-
-  (defun custom-menu-reset ()
-    "Reset customize menu."
-    (remove-hook 'custom-define-hook 'custom-menu-reset)
-    (define-key global-map [menu-bar help-menu customize-menu]
-      (cons (car custom-help-menu)
-	    (easy-menu-create-keymaps (car custom-help-menu)
-				      (cdr custom-help-menu)))))
-
-  (defun Custom-menu-update (event)
-    "Update customize menu."
-    (interactive "e")
-    (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)))))
-      (let ((map (easy-menu-create-keymaps (car menu) (cdr menu))))
-	(define-key global-map [menu-bar help-menu customize-menu]
-	  (cons (car menu) map))))))
-
 (defcustom custom-menu-nesting 2
   "Maximum nesting in custom menus."
   :type 'integer
   (define-key custom-mode-map "\177" 'scroll-down)
   (define-key custom-mode-map "q" 'bury-buffer)
   (define-key custom-mode-map "u" 'Custom-goto-parent)
+  (define-key custom-mode-map "n" 'widget-forward)
+  (define-key custom-mode-map "p" 'widget-backward)
   ;; (define-key custom-mode-map [mouse-1] 'Custom-move-and-invoke)
   )
 

lisp/custom/cus-face.el

 ;;
 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
 ;; Keywords: help, faces
-;; Version: 1.9951
+;; Version: 1.9953
 ;; 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.9951
+;; Version: 1.9953
 ;; X-URL: http://www.dina.kvl.dk/~abraham/custom/
 
 ;; This file is part of GNU Emacs.

lisp/custom/wid-browse.el

 ;;
 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
 ;; Keywords: extensions
-;; Version: 1.9951
+;; Version: 1.9953
 ;; X-URL: http://www.dina.kvl.dk/~abraham/custom/
 
 ;; This file is part of GNU Emacs.

lisp/custom/wid-edit.el

 ;;
 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
 ;; Keywords: extensions
-;; Version: 1.9951
+;; Version: 1.9953
 ;; X-URL: http://www.dina.kvl.dk/~abraham/custom/
 
 ;; This file is part of GNU Emacs.
 	 (let* ((overriding-terminal-local-map
 		 (make-sparse-keymap))
 		map choice (next-digit ?0)
+		some-choice-enabled
 		value)
 	   ;; Define SPC as a prefix char to get to this menu.
 	   (define-key overriding-terminal-local-map " "
 		   (let* ((name (car choice))
 			 (function (cdr choice)))
 		     (insert (format "%c = %s\n" next-digit name))
-		     (define-key map (vector next-digit) function)))
+		     (define-key map (vector next-digit) function)
+		     (setq some-choice-enabled t)))
 	       ;; Allocate digits to disabled alternatives
 	       ;; so that the digit of a given alternative never varies.
 	       (setq next-digit (1+ next-digit)))
 	     (insert "\nC-g = Quit"))
+	   (or some-choice-enabled
+	       (error "None of the choices is currently meaningful"))
 	   (define-key map [?\C-g] 'keyboard-quit)
 	   (define-key map [t] 'keyboard-quit)
 	   (setcdr map (nreverse (cdr map)))
 ;; These functions are for specifying text properties. 
 
 (defcustom widget-field-add-space 
-  (or (< emacs-major-version 20)
+  (or t
+      ;; It shouldn't be necessary in 20.3, but I need to debug it first.
+      (< emacs-major-version 20)
       (and (eq emacs-major-version 20)
 	   (< emacs-minor-version 3))
       (not (string-match "XEmacs" emacs-version)))
 
 (defun widget-specify-field (widget from to)
   "Specify editable button for WIDGET between FROM and TO."
-  ;; Terminating space is not part of the field, but necessary in
-  ;; order for local-map to work.  Remove next sexp if local-map works
-  ;; at the end of the overlay.
   (save-excursion
     (goto-char to)
     (cond ((null (widget-get widget :size))
 	   (forward-char 1))
+	  ;; Terminating space is not part of the field, but necessary in
+	  ;; order for local-map to work.  Remove next sexp if local-map works
+	  ;; at the end of the overlay.
 	  (widget-field-add-space
 	   (insert-and-inherit " ")))
     (setq to (point)))
 respectively."
   (let ((cur (point-min))
 	(widget nil)
-	(parent nil)
+	;; (parent nil)
 	(overlays (if buffer
 		      (save-excursion (set-buffer buffer) (overlay-lists))
 		    (overlay-lists))))
   "Call `insert' with ARGS and make the text read only."
   (let ((inhibit-read-only t)
 	before-change-functions
-	after-change-functions
-	(from (point)))
+	after-change-functions)
     (apply 'insert args)))
 
 (defun widget-convert-text (type from to
   (or (bobp) (> arg 0) (backward-char))
   (let ((pos (point))
 	(number arg)
-	(old (widget-tabable-at))
-	new)
+	(old (widget-tabable-at)))
     ;; Forward.
     (while (> arg 0)
       (cond ((eobp)

lisp/custom/widget-example.el

 ;;
 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
 ;; Keywords: help, extensions, faces, hypermedia
-;; Version: 1.9951
+;; Version: 1.9953
 ;; 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.9951
+;; Version: 1.9953
 ;; X-URL: http://www.dina.kvl.dk/~abraham/custom/
 
 ;; This file is part of GNU Emacs.

lisp/efs/dired-xemacs.el

      ["Find in Other Window" dired-find-file-other-window t]
      ["Find in Other Frame" dired-find-file-other-frame t]
      ["View File" dired-view-file t]
-     ["Display in Other Window" dired-find-file-other-window t]))
+     ["Display in Other Window" dired-display-file t]))
 
   (setq
    dired-do-popup-menu
 
 ;;; Mouse functions
 
-(defun dired-mouse-find-file (event)
-  "In dired, visit the file or directory name you click on."
-  (interactive "e")
+(defun dired-mouse-file-action (event fun)
+  "In dired, apply function FUN to the file or directory name you click on."
   (save-excursion
     (set-buffer (window-buffer (event-window event)))
     (if dired-subdir-alist
 	(save-excursion
 	  (goto-char (event-point event))
-	  (dired-find-file))
+	  (funcall fun))
       (error
        (concat "dired-subdir-alist seems to be mangled.  "
 	       (substitute-command-keys
 		"\\<dired-mode-map>Try dired-revert (\\[dired-revert])."))))))
 
+(defun dired-mouse-find-file (event)
+  "In dired, visit the file or directory name you click on."
+  (interactive "e")
+  (dired-mouse-file-action event 'dired-find-file))
+
+(defun dired-mouse-display-file (event)
+  "In dired, display the file or directory name you click on."
+  (interactive "e")
+  (dired-mouse-file-action event 'dired-display-file))
+
+(defun dired-mouse-find-file-other-window (event)
+  "In dired, visit the file or directory name you click on in another window."
+  (interactive "e")
+  (dired-mouse-file-action event 'dired-find-file-other-window))
+
+(defun dired-mouse-find-file-other-frame (event)
+  "In dired, visit the file or directory name you click on in another frame."
+  (interactive "e")
+  (dired-mouse-file-action event 'dired-find-file-other-frame))
+
 (defun dired-mouse-mark (event)
   "In dired, mark the file name that you click on.
 If the file name is already marked, this unmarks it."
 (defvar dired-filename-local-map
   (let ((map (make-sparse-keymap)))
     (set-keymap-name map 'dired-filename-local-map)
-    (define-key map 'button2 'dired-mouse-find-file)
-    (define-key map 'button3 'dired-visit-popup-menu)
-    (define-key map '(control button2) 'dired-do-popup-menu)
-    (define-key map '(shift button1) 'dired-mouse-mark)
-    (define-key map '(control shift button1) 'dired-mouse-flag)
+    (define-key map [button2]           'dired-mouse-find-file)
+    (define-key map [(shift button2)]   'dired-mouse-display-file)
+    (define-key map [(meta button2)]    'dired-mouse-find-file-other-frame)
+    (define-key map [button3]           'dired-visit-popup-menu)
+    (define-key map [(control button2)] 'dired-do-popup-menu)
+    (define-key map [(shift button1)]   'dired-mouse-mark)
+    (define-key map [(control shift button1)] 'dired-mouse-flag)
     map)
   "Keymap used to activate actions on files in dired.")
 

lisp/efs/dired.el

 	    (dired file))
       (view-file file))))
 
-(defun dired-find-file-other-window (&optional display)
+(defun dired-find-file-other-window (&optional displayp)
   "In dired, visit this file or directory in another window.
 With a prefix, the file is displayed, but the window is not selected."
   (interactive "P")
-  (if display
+  (if displayp
       (dired-display-file)
     (find-file-other-window (dired-get-filename))))
 
       (and
        (setq p1 (dired-move-to-filename (not no-error-if-not-filep) bol eol))
        (setq p2 (dired-move-to-end-of-filename no-error-if-not-filep bol eol))
+       ;; We seem to be picking up the carriage-return at the end of the
+       ;; line, so here's a quick fix to get dired working.
+       (if (eq system-type 'windows-nt)
+         (setq p2 (1- p2)))
        (setq file (buffer-substring p1 p2))
        ;; Check if ls quoted the names, and unquote them.
        ;; Using read to unquote is much faster than substituting

lisp/gnats/gnats.el

 				 "%s/gnats/npr-edit"
 			       "%s/gnats/pr-edit")
 			     gnats:libdir)
-		     (if gnats:network-server (format  "--host=%s" gnats:network-server))
-		     args
+		     (if gnats:network-server 
+			(concat (format  "--host=%s" gnats:network-server) args)
+		       args
+		       )
 		     ))
 
 	;; Only set up the sentinel if they want stuff done in the background.

lisp/modes/make-mode.el

 
 ;; Sadly we need this for a macro.
 (eval-when-compile
-  (require 'imenu))
+  (unless (featurep 'xemacs)
+    (require 'imenu)))
 
 ;;; ------------------------------------------------------------
 ;;; Configurable stuff
   (setq add-log-current-defun-function 'makefile-add-log-defun)
 
   ;; Imenu.
-  (make-local-variable 'imenu-create-index-function)
-  (setq imenu-create-index-function 'makefile-menu-index-function)
+  (unless (featurep 'xemacs)
+    (make-local-variable 'imenu-create-index-function)
+    (setq imenu-create-index-function 'makefile-menu-index-function))
 
   ;; Dabbrev.
   (make-local-variable 'dabbrev-abbrev-skip-leading-regexp)

lisp/modes/vhdl-mode.el

 ;;; vhdl-mode.el --- major mode for editing VHDL code
 
-;; Copyright (C) 1994, 1995 Rodney J. Whitby
+;; Copyright (C) 1994 - 1997 Rodney J. Whitby
 ;; Copyright (C) 1992, 1993, 1994 Barry A. Warsaw
 ;; Copyright (C) 1992, 1993, 1994 Free Software Foundation, Inc.
 
-;; Author:	  Rodney J. Whitby <rwhitby@asc.corp.mot.com>
-;; Maintainer:	  Rodney J. Whitby <rwhitby@asc.corp.mot.com>
+;; Author:	  Rodney J. Whitby <rwhitby@geocities.com>
+;; Maintainer:	  Rodney J. Whitby <rwhitby@geocities.com>
 ;; Created:	  June 1994, adapted from cc-mode.el 4.29 by Barry A. Warsaw.
-;; Version:	  $Revision: 1.5 $
-;; Last Modified: $Date: 1997/06/14 20:31:18 $
+;; Version:	  $Revision: 1.6 $
+;; Last Modified: $Date: 1997/08/01 03:27:57 $
 ;; Keywords:	  languages VHDL
-;; Archive:	  ftp.eda.com.au:/pub/emacs/vhdl-mode.tar.gz
+;; Archive:	  http://www.geocities.com/SiliconValley/Park/8287/
 
 ;; NOTE: Read the commentary below for the right way to submit bug reports!
 
 
 ;; This package provides indentation support for VHDL code.
 
-;; Details on VHDL-MODE are  now contained in an  accompanying texinfo
+;; Details on VHDL-MODE are now contained in an accompanying texinfo
 ;; manual (vhdl-mode.texi).
 
 ;; To submit bug reports, hit "C-c C-b", and please try to include a
 ;; Many, many thanks go out to all the folks on the beta test list.
 ;; Without their patience, testing, insight, and code contributions,
 ;; and encouragement vhdl-mode.el would be a far inferior package.
-;; Special thanks to Ken Wood <ken@eda.com.au> for providing an FTP
-;; repository for vhdl-mode.
 
 ;; LCD Archive Entry:
-;; vhdl-mode.el|Rodney J. Whitby|rwhitby@asc.corp.mot.com
+;; vhdl-mode.el|Rodney J. Whitby|rwhitby@geocities.com
 ;; |Major mode for editing VHDL code
-;; |$Date: 1997/06/14 20:31:18 $|$Revision: 1.5 $
-;; |ftp.eda.com.au:/pub/emacs/vhdl-mode.tar.gz
+;; |$Date: 1997/08/01 03:27:57 $|$Revision: 1.6 $
+;; |http://www.geocities.com/SiliconValley/Park/8287/
 
 
 ;;; Code:
 	(error "Cannot figure out the major and minor version numbers."))
     ;; calculate the major version
     (cond
-     ((= major 18) (setq major 'v18))	;Emacs 18
-     ((= major 4)  (setq major 'v18))	;Epoch 4
-     ((>= major 19) (setq major 'v19	;Emacs 19
-			 flavor (cond
-				 ((string-match "Win-Emacs" emacs-version)
-				  'Win-Emacs)
-				 ((or (string-match "Lucid" emacs-version)
-				      (string-match "XEmacs" emacs-version))
-				  'XEmacs)
-				 (t
-				  'FSF))))
+     ((= major 18)  (setq major 'v18))	;Emacs 18
+     ((= major 4)   (setq major 'v18))	;Epoch 4
+     ((>= major 19) (setq major 'v19	;Emacs 19 or later
+			  flavor (cond
+				  ((string-match "Win-Emacs" emacs-version)
+				   'Win-Emacs)
+				  ((or (string-match "Lucid" emacs-version)
+				       (string-match "XEmacs" emacs-version))
+				   'XEmacs)
+				  (t
+				   'FSF))))
      ;; I don't know
      (t (error "Cannot recognize major version number: %s" major)))
     ;; lets do some minimal sanity checking.
   (define-key vhdl-mode-map "\M-\C-h"	'vhdl-mark-defun)
   (define-key vhdl-mode-map "\M-\C-q"	'vhdl-indent-sexp)
   (define-key vhdl-mode-map "\t"        'vhdl-indent-command)
+  (define-key vhdl-mode-map "\177"      'backward-delete-char-untabify)
   ;; these are new keybindings, with no counterpart to BOCM
   (define-key vhdl-mode-map "\C-c\C-b"  'vhdl-submit-bug-report)
   (define-key vhdl-mode-map "\C-c\C-c"  'comment-region)
 ;;;###autoload
 (defun vhdl-mode ()
   "Major mode for editing VHDL code.
-vhdl-mode $Revision: 1.5 $
+vhdl-mode $Revision: 1.6 $
 To submit a problem report, enter `\\[vhdl-submit-bug-report]' from a
 vhdl-mode buffer.  This automatically sets up a mail buffer with version
 information already added.  You just need to add a description of the
-problem, including a reproducible test case and send the message.
+problem, including a reproducable test case and send the message.
 
 Note that the details of configuring vhdl-mode will soon be moved to the
 accompanying texinfo manual.  Until then, please read the README file
      vars))
   (vhdl-keep-region-active))
 
+(defun vhdl-add-style (style descrip &optional set-p)
+  "Adds a style to `vhdl-style-alist', or updates an existing one.
+STYLE is a string identifying the style to add or update.  DESCRIP is
+an association list describing the style and must be of the form:
+
+  ((VARIABLE . VALUE) [(VARIABLE . VALUE) ...])
+
+See the variable `vhdl-style-alist' for the semantics of VARIABLE and
+VALUE.  This function also sets the current style to STYLE using
+`vhdl-set-style' if the optional SET-P flag is non-nil."
+  (interactive
+   (let ((stylename (completing-read "Style to add: " vhdl-style-alist))
+	 (description (eval-minibuffer "Style description: ")))
+     (list stylename description
+	   (y-or-n-p "Set the style too? "))))
+  (setq style (downcase style))
+  (let ((s (assoc style vhdl-style-alist)))
+    (if s
+	(setcdr s (copy-alist descrip))	; replace
+      (setq vhdl-style-alist (cons (cons style descrip) vhdl-style-alist))))
+  (and set-p (vhdl-set-style style)))
+
 (defun vhdl-get-offset (langelem)
   ;; Get offset from LANGELEM which is a cons cell of the form:
   ;; (SYMBOL . RELPOS).  The symbol is matched against
 
 ;; Defuns for submitting bug reports:
 
-(defconst vhdl-version "$Revision: 1.5 $"
+(defconst vhdl-version "$Revision: 1.6 $"
   "vhdl-mode version number.")
-(defconst vhdl-mode-help-address "rwhitby@asc.corp.mot.com"
+(defconst vhdl-mode-help-address "rwhitby@geocities.com"
   "Address accepting submission of bug reports.")
 
 (defun vhdl-version ()

lisp/packages/hyper-apropos.el

 			 (if (natnump l) l 0)))
       (and hyper-apropos-show-brief-docs
 	   (setq doc (documentation fn))
+	   (if  (string-match
+		 "^([^\n\t )]+[\t ]*\\([^\n)]+\\)?)\\(:[\t ]*\\|\n?\\'\\)"
+		 doc)
+	       (setq doc (substring doc (match-end 0) (string-match "\n" doc)))
+	     t)
 	   (insert-face (if doc
 			    (concat " - "
 				    (substring doc 0 (string-match "\n" doc)))

lisp/prim/files.el

 	(error "%s is a directory." filename))
     (let* ((buf (get-file-buffer filename))
 ;	   (truename (abbreviate-file-name (file-truename filename)))
-;	   (number (nthcdr 10 (file-attributes truename)))
-	   (number (and buffer-file-truename
-			(nthcdr 10 (file-attributes buffer-file-truename))))
+	   (number (nthcdr 10 (file-attributes (file-truename filename))))
+;	   (number (and buffer-file-truename
+;			(nthcdr 10 (file-attributes buffer-file-truename))))
 ;	   ;; Find any buffer for a file which has same truename.
 ;	   (other (and (not buf) (find-buffer-visiting filename)))
            (error nil))

lisp/prim/frame.el

 (or deselect-frame-hook
     (add-hook 'deselect-frame-hook 'default-deselect-frame-hook))
 
-(defun default-drag-and-drop-functions (frame filepath &optional data)
+(defun default-drag-and-drop-functions (frame filepath &optional data type)
   "Implements the `drag-and-drop-functions' variable.
 For use as the value of `drag-and-drop-functions'.
-This default simply pops up the file in the selected frame or,
-if the dragged object is a buffer, inserts it at point."
-  (if data
-      (insert data)
-    (let ((x pop-up-windows))
-      (setq pop-up-windows nil)
-      (pop-to-buffer (find-file-noselect filepath) nil frame)
-      (make-frame-visible frame)
-      (setq pop-up-windows x))))
+A file is popped up in a new buffer, some data without
+is inserted at point, and data with a type is handled
+for it's type (NOTE: type is only set for OffiX DnD)."
+  (cond (type 
+	 (cond ((or (< type 2) (> type 9)) ;; this is raw data or unknown stuff
+		(let ((buf (generate-new-buffer "DndRawData")))
+		  (set-buffer buf)
+		  (pop-to-buffer buf nil frame)
+		  (insert data)
+		  (hexlify-buffer)
+		  (make-frame-visible frame)))
+	       ((= type 5) (dired data))
+	       ((= type 8) (funcall browse-url-browser-function data))
+	       ((= type 9)
+		(let ((buf (generate-new-buffer "DndMIME")))
+		  (set-buffer buf)
+		  (pop-to-buffer buf nil frame)
+		  (insert data)
+		  (make-frame-visible frame)))
+	       (t (ding))))
+	(data (insert data))
+	(t
+	 (let ((x pop-up-windows))
+	   (setq pop-up-windows nil)
+	   (pop-to-buffer (find-file-noselect filepath) nil frame)
+	   (make-frame-visible frame)
+	   (setq pop-up-windows x)))))
 
 (and (boundp 'drag-and-drop-functions)
      (or drag-and-drop-functions

lisp/prim/help.el

                     (setq cmd (cdr cmd))
                     (if cmd (princ " " stream)))))
             (terpri stream)))))))
+
+(defvar find-function-function 'ff-function-at-point
+  "The function used by `find-function' to select the function near
+point.
+
+For example `ff-function-at-point' or `function-called-at-point'.")
+
+(defvar find-function-source-path nil
+  "The default list of directories where find-function searches.
+
+If this variable is `nil' then find-function searches `load-path' by
+default.")
+
+;;; Code:
+
+(defun find-function-noselect (function &optional path)
+  "Put point at the definition of the function at point and return the buffer.
+
+Finds the emacs-lisp package containing the definition of FUNCTION
+into a buffer and place point before the definition.  The buffer is
+not selected.
+
+If the optional argument PATH is given, the package where FUNCTION is
+defined is searched in PATH instead of `load-path' (see
+`find-function-source-path')."
+  (and (subrp (symbol-function function))
+       (error "%s is a primitive function" function))
+  (if (not function)
+      (error "You didn't specify a function"))
+  (let ((def (symbol-function function))
+	package aliases)
+    (while (symbolp def)
+      (or (eq def function)
+	  (if aliases
+	      (setq aliases (concat aliases 
+				    (format ", which is an alias for %s"
+					    (symbol-name def))))
+	    (setq aliases (format "an alias for %s" (symbol-name
+						       def)))))
+      (setq function (symbol-function function)
+	    def (symbol-function function)))
+    (if aliases
+	(message aliases))
+    (setq package
+	  (cond ((eq (car-safe def) 'autoload)
+		 (nth 1 def))
+		((describe-function-find-file function))
+		((and (compiled-function-p def)
+		      (fboundp 'compiled-function-annotation))
+		 (substring (compiled-function-annotation def) 0 -4))))
+    (if (null package)
+	(error "Can't find package"))
+    (if (string-match "\\(\\.elc?\\'\\)" package)
+	(setq package (substring package 0 (match-beginning 1))))
+    (setq package (concat package ".el"))
+    (let ((filename (locate-library package t
+				    (if path
+					path
+				      find-function-source-path)))
+	  (calling-buffer (current-buffer)))
+      (if (not filename)
+	  (error "The package \"%s\" is not in the path." package))
+      (set-buffer (find-file-noselect filename))
+      (save-match-data
+	(let ((p (point))
+	      ;; avoid defconst, defgroup, defvar (any others?)
+	      (re (format "^(def[^cgv\W]\\w+\\s-+%s\\s-" function))
+	      (syntable (syntax-table)))
+	  (set-syntax-table emacs-lisp-mode-syntax-table)
+	  (goto-char (point-min))
+	  (if (prog1
+		  (re-search-forward re nil t)
+		(set-syntax-table syntable))
+	      (prog2
+		  (beginning-of-line)
+		  (current-buffer)
+		(set-buffer calling-buffer))
+	    (goto-char p)
+	    (set-buffer calling-buffer)
+	    (error "Cannot find definition of %s" function)))))))
+
+(defun ff-function-at-point ()
+  (condition-case ()
+      (let ((stab (syntax-table)))
+	(unwind-protect
+	    (save-excursion
+	      (set-syntax-table emacs-lisp-mode-syntax-table)
+	      (or (not (zerop (skip-syntax-backward "_w")))
+		  (eq (char-syntax (char-after (point))) ?w)
+		  (eq (char-syntax (char-after (point))) ?_)
+		  (forward-sexp -1))
+	      (skip-chars-forward "'")
+	      (let ((obj (read (current-buffer))))
+		(and (symbolp obj) (fboundp obj) obj)))
+	  (set-syntax-table stab)))
+    (error nil)))
+
+(defun ff-read-function ()
+  "Read and return a function, defaulting to the one near point.
+
+The function named by `find-function-function' is used to select the
+default function."
+  (let ((fn (funcall find-function-function))
+	(enable-recursive-minibuffers t)	     
+	val)
+    (setq val (completing-read
+	       (if fn
+		   (format "Find function (default %s): " fn)
+		 "Find function: ")
+	       obarray 'fboundp t))
+    (list (if (equal val "")
+	      fn (intern val)))))
+
+
+(defun find-function (function &optional path)
+  "Find the definition of the function near point in the current window.
+
+Finds the emacs-lisp package containing the definition of the function
+near point (selected by `find-function-function') and places point
+before the definition.
+
+If the optional argument PATH is given, the package where FUNCTION is
+defined is searched in PATH instead of `load-path'"
+  (interactive (ff-read-function))
+  (switch-to-buffer
+   (find-function-noselect function path)))
+
+(defun find-function-other-window (function &optional path)
+  "Find the definition of the function near point in the other window.
+
+Finds the emacs-lisp package containing the definition of the function
+near point (selected by `find-function-function') and places point
+before the definition.
+
+If the optional argument PATH is given, the package where FUNCTION is
+defined is searched in PATH instead of `load-path'"
+  (interactive (ff-read-function))
+  (switch-to-buffer-other-window
+   (find-function-noselect function path)))
+
+(defun find-function-other-frame (function &optional path)
+  "Find the definition of the function near point in the another frame.
+
+Finds the emacs-lisp package containing the definition of the function
+near point (selected by `find-function-function') and places point
+before the definition.
+
+If the optional argument PATH is given, the package where FUNCTION is
+defined is searched in PATH instead of `load-path'"
+  (interactive (ff-read-function))
+  (switch-to-buffer-other-frame
+   (find-function-noselect function path)))
+
+(define-key mode-specific-map "f" 'find-function)
+(define-key ctl-x-4-map "F" 'find-function-other-window)
+(define-key ctl-x-5-map "F" 'find-function-other-frame)
+
+;;; help.el ends here

lisp/prim/packages.el

 	dir)
     (while path
       (setq dir (car path))
-      (prin1 (concat "Find: " (expand-file-name dir) "\n"))
+      ;; (prin1 (concat "Find: " (expand-file-name dir) "\n"))
       (packages-find-packages-1 (expand-file-name dir) path-only)
       (setq path (cdr path)))))
 

lisp/prim/process.el

   (let ((temp (cond ((eq system-type 'vax-vms)
                      (make-temp-name "tmp:emacs"))
 		    ((or (eq system-type 'ms-dos)
-			 (eq system-type 'windowsnt))
+			 (eq system-type 'windows-nt))
 		     (make-temp-name
 		      (concat (file-name-as-directory
 			       (or (getenv "TMP")
     (unwind-protect
 	(progn
 	  (if (or (eq system-type 'ms-dos)
-		  (eq system-type 'windowsnt))
+		  (eq system-type 'windows-nt))
 	      (let ((buffer-file-type binary-process-output))
 		(write-region start end temp nil 'silent))
 	    (write-region start end temp nil 'silent))

lisp/prim/startup.el

     (concat "lib/xemacs-" version)))
 
 (defun find-emacs-root-internal-1 (path lisp-p)
-  (prin1 (format "f-e-r-i-1:  %s\n" path))
+  ;; (prin1 (format "f-e-r-i-1:  %s\n" path))
   (let ((dir (file-name-directory path)))
     (or
      ;;

lisp/utils/config.el

 	(goto-char (point-min))
 	(condition-case nil
 	    (while t
-	      (puthash (read buf) (read buf) config-value-hash-table))
+	      (let* ((key (read buf))
+		     (value (read buf))
+		     (prev (gethash key config-value-hash-table)))
+		(cond ((null prev)
+		       (puthash key value config-value-hash-table))
+		      ((atom prev)
+		       (puthash key (list prev value) config-value-hash-table))
+		      (t
+		       (nconc prev (list value))))))
 	  (end-of-file nil)))
       (kill-buffer " *Config*")))
   config-value-hash-table)

lisp/utils/forms.el

 (provide 'forms)			;;; official
 (provide 'forms-mode)			;;; for compatibility
 
-(defconst forms-version (substring "$Revision: 1.1.1.2 $" 11 -2)
+(defconst forms-version (substring "$Revision: 1.2 $" 11 -2)
   "The version number of forms-mode (as string).  The complete RCS id is:
 
-  $Id: forms.el,v 1.1.1.2 1996/12/18 22:51:25 steve Exp $")
+  $Id: forms.el,v 1.2 1997/08/01 03:28:08 steve Exp $")
 
 (defvar forms-mode-hooks nil
   "Hook functions to be run upon entering Forms mode.")
   (if forms-use-text-properties
       (let ((inhibit-read-only t))
 	(set-text-properties (point-min) (point-max) nil)))
+  (if forms-use-extents
+      (map-extents (lambda (x ignore) (detach-extent x) nil)))
   (erase-buffer)
 
   ;; Verify the number of fields, extend forms--the-record-list if needed.

lisp/vm/vm-autoload.el

 (provide 'vm-autoload)
-
+"f-e-r-i-1:  /b/XEmacs/xemacs-20.0/src/xemacs
+""Find: /etc/xemacs
+""Find: /home/steve/.xemacs
+"
 (autoload (quote vm-delete-message) "vm-delete" "Add the `deleted' attribute to the current message.
 
 The message will be physically deleted from the current folder the next

lisp/w3/ChangeLog

+1997-07-26  SL Baur  <steve@altair.xemacs.org>
+
+	* mm.el (mm-extension-to-mime): Use `eq' for character comparison.
+
 Wed Mar 19 20:53:23 1997  Steven L Baur  <steve@altair.xemacs.org>
 
 * Makefile (xemacs-w3): Special target for XEmacs Build.
 (defun mm-extension-to-mime (extn)
   "Return the MIME content type of the file extensions EXTN"
   (if (and (stringp extn)
-	   (not (= (string-to-char extn) ?.)))
+	   (not (eq (string-to-char extn) ?.)))
       (setq extn (concat "." extn)))
   (cdr (assoc (downcase extn) mm-mime-extensions)))
 

lisp/x11/x-menubar.el

 		 (aset item 2 (not (not (or buffer-file-name
 					    revert-buffer-function)))))
 	    (and (string= "Delete Frame" name)
-		 (aset item 2 (device-or-frame-p (second (frame-list)))))
+		 (aset item 2 (not (eq (next-frame (selected-frame)
+						   'nomini 'window-system)
+				       (selected-frame)))))
 	    )))
     result))
 
 PERL = perl
 TEXI2DVI = texi2dvi
 
-gnus.dvi : gnus.texi
-	$(PERL) -n -e 'print unless (/\@iflatex/ .. /\@end iflatex/)' gnus.texi > gnus.tmptexi
-	$(TEXI2DVI) gnus.tmptexi
-	rm -f gnus.tmptexi
-
 texinfo.dvi: texinfo.texi
 	$(TEXI2DVI) $<
 .texi.dvi:

man/vhdl-mode.texi

 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
 @ifinfo
-Copyright @copyright{} 1995 Rodney J. Whitby
+Copyright @copyright{} 1995 - 1997 Rodney J. Whitby <rwhitby@@geocities.com>
 @end ifinfo
 
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 @center @titlefont{VHDL-MODE Version 2}
 @sp 2
 @center A GNU Emacs mode for editing VHDL code.
-@center (manual revision: 2.1)
+@center (manual revision: 2.2)
 @sp 2
 @center Rod Whitby
-@center @code{rwhitby@@asc.corp.mot.com}
+@center @code{rwhitby@@geocities.com}
 
 
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
 @page
 @vskip 0pt plus 1filll
-Copyright @copyright{} 1995 Rodney J. Whitby
+Copyright @copyright{} 1995 - 1997 Rodney J. Whitby <rwhitby@@geocities.com>
 @end titlepage
 
 
 @code{vhdl-mode-victims} mailing list.  Send email to the author to join
 either of these lists.
 
-The canonical anonymous FTP URL for @code{vhdl-mode} is
-@code{ftp://ftp.eda.com.au/pub/emacs/vhdl-mode.tar.gz}.  Special thanks
-to Ken Wood <ken@@eda.com.au> for providing an FTP repository for
-@code{vhdl-mode}.
+The Official @code{VHDL-Mode} Home Page can be found at
+@code{http://www.geocities.com/SiliconValley/Park/8287/vhdl-mode.html}.
 
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 @node  Sample .emacs File, Requirements, Getting the latest vhdl-mode release, Top
 @emph{before} your bug example.
 
 For other help or suggestions, send a message to
-@code{rwhitby@@asc.corp.mot.com}.
+@code{rwhitby@@geocities.com}.
 
-Send an add message to @code{rwhitby@@asc.corp.mot.com} to get on the
+Send an add message to @code{rwhitby@@geocities.com} to get on the
 @code{vhdl-mode-victims} beta testers list where beta releases of
 @code{vhdl-mode} are posted.  Note that you shouldn't expect beta
 releases to be as stable as public releases.
 
 There is also an announce only list where the latest public releases of
 @code{vhdl-mode} are posted.  Send an add message to
-@code{rwhitby@@asc.corp.mot.com} to be added to this list.
+@code{rwhitby@@geocities.com} to be added to this list.
 
 @c !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 @node    Concept Index, Command Index,  Mailing Lists and Submitting Bug Reports, Top
 @comment  node-name,  next,  previous,  up
 @top The Emacs Widget Library
 
-Version: 1.9951
+Version: 1.9953
 
 @menu
 * Introduction::                
+Tue July 15 19:32:21 1997 davidh
+
+        * August Hill provided some more patches to make things better
+          - there is a workaround for dired to make the ^M's disappear
+          - a patch to fix shell-command
+
+Tue July 08 22:01:36 1997 davidh
+
+        * #ifdef'd call to vfork and replaced with spawn as per GNU Emacs;
+          as a result, removed /force - XEmacs now links normally.
+
 Thu June 31 21:16:21 1997 davidh
 
 	* nt/TODO created.
 
 EMACS_MAJOR_VERSION=20
 EMACS_MINOR_VERSION=3
-XEMACS_CODENAME=\"Copenhagen\"
+XEMACS_CODENAME=\"Stockholm\"
 
 #------------------------------------------------------------------------------
 
 LASTFILE_FLAGS=-nologo -w -Od $(INCLUDES) -Fo$@ -c
 LASTFILE_OBJS= \
 	$(OUTDIR)/lastfile.obj
-	
+
 $(LASTFILE): $(LASTFILE_OBJS)
 	link.exe -lib /nologo /out:$@ $(LASTFILE_OBJS)
 
 $(RUNEMACS): $(OUTDIR)\runemacs.obj
 	link.exe /out:$@ /subsystem:windows /entry:WinMainCRTStartup \
 	/pdb:none /release /incremental:no $** \
- 	kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib \
+	kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib \
 	advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib \
 	odbccp32.lib libc.lib
 
 TEMACS_LFLAGS=/nologo $(LIBRARIES) /base:0x1000000\
  /stack:0x800000 /entry:_start /subsystem:console /pdb:none\
  /map:$(TEMACS_DIR)/temacs.map /debug:full /debugtype:both /machine:I386\
- /nodefaultlib /force /out:$@\
+ /nodefaultlib /out:$@\
  /heap:0x00100000
 
 TEMACS_CPP=c:/usr/local/bin/cpp.exe
 
 # LISP bits 'n bobs
 
-dump-elcs: $(TEMACS)
-        $(LOADPATH) $(TEMACS) -batch -l ../prim/update-elc.el $(LISP)
+dump-elcs:
+	!"$(TEMACS) -batch -l update-elc.el $(LISP)"
 
-dump-xemacs: $(TEMACS)
-	$(TEMACS) -batch -l loadup.el dump
+dump-xemacs:
+	!"$(TEMACS) -batch -l loadup.el dump"
 
 #------------------------------------------------------------------------------
 
+1997-07-31  SL Baur  <steve@altair.xemacs.org>
+
+	* frame-x.c (x_offix_drop_event_handler): Use stderr_out instead
+	of fprintf.
+
+	* mule-coding.c (parse_iso2022_esc): Add abort() trap on unhandled 
+	condition.
+
+	* mule-wnnfns.c (Fwnn_dict_search): Remove unused variable.
+	(Fwnn_hindo_update): Ditto.
+	(Fwnn_inspect): Ditto.
+	(Fwnn_bunsetu_henkou): Ditto.
+
+	* eval.c (call_with_suspended_errors): Fix Gcc warning:
+	argument `retval' might be clobbered by `longjmp' or `vfork'
+
+1997-07-30  SL Baur  <steve@altair.xemacs.org>
+
+	* redisplay.c: `window-system' isn't going away any time soon.
+
+1997-07-29  SL Baur  <steve@altair.xemacs.org>
+
+	* callint.c (Fcall_interactively): Allow floating point numbers
+	for `n' and `N' interactive specs.
+
+1997-07-27  SL Baur  <steve@altair.xemacs.org>
+
+	* event-stream.c (command_builder_find_leaf): Fix typo in
+	HAVE_MENUBARS.
+
+	* gui-x.c (popup_selection_callback): Fix typo in HAVE_MENUBARS.
+
+	* event-stream.c (syms_of_event_stream): accelerate_menu needed
+	guards.
+
+	* emacs.c (vars_of_emacs): Main default package directory is now
+	${prefix}/lib/xemacs/packages.
+
 1997-07-25  David Moore  <dmoore@ucsd.edu>
 
 	* alloc.c (Fmake_byte_code): GC protect newly allocated function
 	  case 'n':		/* Read number from minibuffer.  */
 	    {
 	    read_number:
-	      args[argnum] = call2 (Qread_number, PROMPT (), Qt);
+	      args[argnum] = call2 (Qread_number, PROMPT (), Qnil);
 	      /* numbers are too boring to go on command history */
 	      /* arg_from_tty = 1; */
               break;
 
 #ifdef VMS
   Vshell_file_name = build_string ("*dcl*");
-#else /* not VMS */
-  sh = (char *) egetenv ("SHELL");
-#ifdef DOS_NT
-  if (!sh) sh = egetenv ("COMSPEC");
+#elif defined(WINDOWSNT)
+  /*
+  ** If NT then we look at COMSPEC for the shell program.
+  */
+  sh = egetenv ("COMSPEC");
   {
     char *tem;
+	/*
+	** If COMSPEC has been set, then convert the
+	** DOS formatted name into a UNIX format. Then 
+	** create a LISP object.
+	*/
     if (sh)
-      {
-	tem = (char *) alloca (strlen (sh) + 1);
-	sh = dostounix_filename (strcpy (tem, sh));
-      }
+    {
+		tem = (char *) alloca (strlen (sh) + 1);
+		dostounix_filename (strcpy (tem, sh));
+		Vshell_file_name = build_string (tem);
+	}
+	/*
+	** Odd, no COMSPEC, so let's default to our
+	** best guess for NT.
+	*/
+	else
+	{
+		Vshell_file_name = build_string ("/WINNT/system32/cmd.exe");
+	}
   }
-  Vshell_file_name = build_string (sh ? sh : "/command.com");
-#else /* not DOS_NT */
+#else /* not VMS or WINDOWSNT */
+  sh = (char *) egetenv ("SHELL");
   Vshell_file_name = build_string (sh ? sh : "/bin/sh");
-#endif /* not DOS_NT */
-#endif /* not VMS */
+#endif 
 }
 
 #if 0
 /* Compile in support for OffiX Drag and Drop?  Requires libdnd. */
 #undef HAVE_OFFIX_DND
 
-/* Compile in support for WindowMaker Application Icons. */
-#undef HAVE_WINDOWMAKER
+/* Compile in support for proper session-management. */
+#undef HAVE_SESSION
 
 /* Define this if you want Mule support (multi-byte character support).
    There may be some performance penalty, although it should be small
        (function))
 {
   CHECK_COMPILED_FUNCTION (function);
-  if (!XCOMPILED_FUNCTION (function)->flags.interactivep)
-    return Qnil;
-  return (list2 (Qinteractive,
-		 compiled_function_interactive
-		 (XCOMPILED_FUNCTION (function))));
+  return XCOMPILED_FUNCTION (function)->flags.interactivep
+    ? list2 (Qinteractive,
+	     compiled_function_interactive (XCOMPILED_FUNCTION (function)))
+    : Qnil;
 }
 
 DEFUN ("compiled-function-doc-string", Fcompiled_function_doc_string, 1, 1, 0, /*
        (function))
 {
   CHECK_COMPILED_FUNCTION (function);
-
   return compiled_function_documentation (XCOMPILED_FUNCTION (function));
 }
 
        (function))
 {
   CHECK_COMPILED_FUNCTION (function);
-  if (!XCOMPILED_FUNCTION (function)->flags.domainp)
-    return Qnil;
-  return compiled_function_domain (XCOMPILED_FUNCTION (function));
+  return XCOMPILED_FUNCTION (function)->flags.domainp
+    ? compiled_function_domain (XCOMPILED_FUNCTION (function))
+    : Qnil;
 }
 
 
   XIM_init_device(d);
 #endif /* HAVE_XIM */
 
-#ifdef HAVE_WINDOWMAKER
+#ifdef HAVE_SESSION
   XtVaSetValues(DEVICE_XT_APP_SHELL (d),
                 XtNmappedWhenManaged, False,
                 XtNwidth, 1,
     free_argc_argv (argv);
 
   }
-#endif /* HAVE_WINDOWMAKER */
+#endif /* HAVE_SESSION */
 
   Vx_initial_argv_list = make_arg_list (argc, argv);
   free_argc_argv (argv);
 #endif
 #endif
 
+/* For PATH_EXEC */
+#include "paths.h"
+
 extern void memory_warnings (void *, void (*warnfun) (CONST char *));
 
 #ifndef SYSTEM_MALLOC
 List of directories configured for package searching.
 */ );
 #ifndef PACKAGE_PATH
-#define PACKAGE_PATH "/etc/xemacs:~/.xemacs"
+#define PACKAGE_PATH PATH_PREFIX "/lib/xemacs/packages:~/.xemacs"
 #endif
   Vpackage_path = decode_path(PACKAGE_PATH);
 
 static Lisp_Object
 restore_entering_debugger (Lisp_Object arg)
 {
-  entering_debugger = ((NILP (arg)) ? 0 : 1);
+  entering_debugger = ! NILP (arg);
   return arg;
 }
 
   entering_debugger = 1;
   val = internal_catch (Qdebugger, call_debugger_259, arg, &threw);
 
-  return (unbind_to (speccount, ((threw) 
-                                 ? Qunbound /* Not returning a value */
-                                 : val)));
+  return unbind_to (speccount, ((threw) 
+				? Qunbound /* Not returning a value */
+				: val));
 }
 
 /* Called when debug-on-exit behavior is called for.  Enter the debugger
 */
 
 Lisp_Object
-call_with_suspended_errors (lisp_fn_t fun, Lisp_Object retval,
+call_with_suspended_errors (lisp_fn_t fun, volatile Lisp_Object retval,
 			    Lisp_Object class, Error_behavior errb,
 			    int nargs, ...)
 {
 /************************************************************************/
 
 static Lisp_Object
-x_to_emacs_keysym (XKeyPressedEvent *event, int simple_p)
-     /* simple_p means don't try too hard (ASCII only) */
+x_keysym_to_emacs_keysym (KeySym keysym, int simple_p)
 {
   char *name;
-  KeySym keysym = 0;
-  /* Apparently it's necessary to specify a dummy here (rather than
-     passing in 0) to avoid crashes on German IRIX */
-  char dummy[256];
-
-#ifdef HAVE_XIM
-  int len;
-  char buffer[64];
-  char *bufptr = buffer;
-  int   bufsiz = sizeof (buffer);
-  Status status;
-#endif
-
-#ifdef HAVE_XIM
-#ifdef XIM_MOTIF
-#define LOOKUPSTRING \
-  len = XmImMbLookupString (XtWindowToWidget (event->display, event->window), \
-			  event, bufptr, bufsiz, &keysym, &status);
-#else /* XIM_XLIB */
-#define LOOKUPSTRING \
-  len = XmbLookupString \
-    (FRAME_X_XIC (x_any_window_to_frame \