changeset 179:9ad43877534d r20-3b16

Import from CVS: tag r20-3b16
author cvs
date Mon, 13 Aug 2007 09:52:19 +0200
parents e703507b8a00
children add28d59e586
files CHANGES-beta ChangeLog INSTALL configure configure.in etc/BETA etc/InstallGuide lib-src/ChangeLog lib-src/Makefile.in.in lib-src/config.values lisp/ChangeLog lisp/custom/ChangeLog lisp/custom/cus-edit.el lisp/custom/cus-face.el lisp/custom/custom.el lisp/custom/wid-browse.el lisp/custom/wid-edit.el lisp/custom/widget-example.el lisp/custom/widget.el lisp/efs/dired-xemacs.el lisp/efs/dired.el lisp/gnats/gnats.el lisp/modes/make-mode.el lisp/modes/vhdl-mode.el lisp/packages/hyper-apropos.el lisp/prim/files.el lisp/prim/frame.el lisp/prim/help.el lisp/prim/packages.el lisp/prim/process.el lisp/prim/startup.el lisp/utils/config.el lisp/utils/forms.el lisp/vm/vm-autoload.el lisp/w3/ChangeLog lisp/w3/mm.el lisp/x11/x-menubar.el man/Makefile man/vhdl-mode.texi man/widget.texi nt/ChangeLog nt/xemacs.mak src/ChangeLog src/callint.c src/callproc.c src/config.h.in src/data.c src/device-x.c src/emacs.c src/eval.c src/event-Xt.c src/event-stream.c src/frame-x.c src/gui-x.c src/input-method-xlib.c src/mule-coding.c src/mule-wnnfns.c src/redisplay.c src/regex.c src/s/freebsd.h src/s/hpux9.h src/sysdep.c version.sh
diffstat 63 files changed, 940 insertions(+), 634 deletions(-) [+]
line wrap: on
line diff
--- a/CHANGES-beta	Mon Aug 13 09:51:18 2007 +0200
+++ b/CHANGES-beta	Mon Aug 13 09:52:19 2007 +0200
@@ -1,4 +1,14 @@
 							-*- 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
--- a/ChangeLog	Mon Aug 13 09:51:18 2007 +0200
+++ b/ChangeLog	Mon Aug 13 09:52:19 2007 +0200
@@ -1,3 +1,22 @@
+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.
--- a/INSTALL	Mon Aug 13 09:51:18 2007 +0200
+++ b/INSTALL	Mon Aug 13 09:52:19 2007 +0200
@@ -715,3 +715,5 @@
 problems sometimes encountered, and what to do about them.
 
 
+If all else fails, please see etc/InstallGuide courtesy
+of Jonathan Seth Hayward.
--- a/configure	Mon Aug 13 09:51:18 2007 +0200
+++ b/configure	Mon Aug 13 09:52:19 2007 +0200
@@ -303,9 +303,9 @@
 --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.
@@ -516,7 +516,7 @@
 	with_jpeg	| \
 	with_png	| \
 	with_tiff	| \
-	with_wm		| \
+	with_session	| \
 	with_xmu	| \
 	with_quantify	| \
 	with_toolbars	| \
@@ -5505,9 +5505,9 @@
   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
@@ -5530,14 +5530,14 @@
   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
 }
 
@@ -10467,7 +10467,7 @@
 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."
--- a/configure.in	Mon Aug 13 09:51:18 2007 +0200
+++ b/configure.in	Mon Aug 13 09:52:19 2007 +0200
@@ -418,9 +418,9 @@
 --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.
@@ -662,7 +662,7 @@
 	with_jpeg	| \
 	with_png	| \
 	with_tiff	| \
-	with_wm		| \
+	with_session	| \
 	with_xmu	| \
 	with_quantify	| \
 	with_toolbars	| \
@@ -2385,9 +2385,9 @@
   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])
@@ -2411,10 +2411,10 @@
   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
@@ -3504,7 +3504,7 @@
 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."
--- a/etc/BETA	Mon Aug 13 09:51:18 2007 +0200
+++ b/etc/BETA	Mon Aug 13 09:52:19 2007 +0200
@@ -106,9 +106,10 @@
 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.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/InstallGuide	Mon Aug 13 09:52:19 2007 +0200
@@ -0,0 +1,112 @@
+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].
--- a/lib-src/ChangeLog	Mon Aug 13 09:51:18 2007 +0200
+++ b/lib-src/ChangeLog	Mon Aug 13 09:52:19 2007 +0200
@@ -1,3 +1,8 @@
+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
--- a/lib-src/Makefile.in.in	Mon Aug 13 09:51:18 2007 +0200
+++ b/lib-src/Makefile.in.in	Mon Aug 13 09:52:19 2007 +0200
@@ -67,7 +67,7 @@
 ## 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
--- a/lib-src/config.values	Mon Aug 13 09:51:18 2007 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,232 +0,0 @@
-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
--- a/lisp/ChangeLog	Mon Aug 13 09:51:18 2007 +0200
+++ b/lisp/ChangeLog	Mon Aug 13 09:52:19 2007 +0200
@@ -1,3 +1,16 @@
+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
--- a/lisp/custom/ChangeLog	Mon Aug 13 09:51:18 2007 +0200
+++ b/lisp/custom/ChangeLog	Mon Aug 13 09:52:19 2007 +0200
@@ -1,3 +1,37 @@
+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.
--- a/lisp/custom/cus-edit.el	Mon Aug 13 09:51:18 2007 +0200
+++ b/lisp/custom/cus-edit.el	Mon Aug 13 09:52:19 2007 +0200
@@ -1,10 +1,10 @@
-;;; 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.
@@ -440,6 +440,11 @@
   :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)
@@ -458,15 +463,16 @@
 		      (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 
@@ -1134,25 +1140,19 @@
 ;;; 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")
@@ -1603,6 +1603,8 @@
 		   (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
@@ -2585,7 +2587,7 @@
   "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))
@@ -2600,7 +2602,7 @@
 	   (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")
@@ -3031,44 +3033,6 @@
 
 ;;; 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
@@ -3169,6 +3133,8 @@
   (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)
   )
 
--- a/lisp/custom/cus-face.el	Mon Aug 13 09:51:18 2007 +0200
+++ b/lisp/custom/cus-face.el	Mon Aug 13 09:52:19 2007 +0200
@@ -4,7 +4,7 @@
 ;;
 ;; 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:
--- a/lisp/custom/custom.el	Mon Aug 13 09:51:18 2007 +0200
+++ b/lisp/custom/custom.el	Mon Aug 13 09:52:19 2007 +0200
@@ -4,7 +4,7 @@
 ;;
 ;; 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.
--- a/lisp/custom/wid-browse.el	Mon Aug 13 09:51:18 2007 +0200
+++ b/lisp/custom/wid-browse.el	Mon Aug 13 09:52:19 2007 +0200
@@ -4,7 +4,7 @@
 ;;
 ;; 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.
--- a/lisp/custom/wid-edit.el	Mon Aug 13 09:51:18 2007 +0200
+++ b/lisp/custom/wid-edit.el	Mon Aug 13 09:52:19 2007 +0200
@@ -4,7 +4,7 @@
 ;;
 ;; 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.
@@ -280,6 +280,7 @@
 	 (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 " "
@@ -294,11 +295,14 @@
 		   (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)))
@@ -329,7 +333,9 @@
 ;; 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)))
@@ -354,13 +360,13 @@
 
 (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)))
@@ -593,7 +599,7 @@
 respectively."
   (let ((cur (point-min))
 	(widget nil)
-	(parent nil)
+	;; (parent nil)
 	(overlays (if buffer
 		      (save-excursion (set-buffer buffer) (overlay-lists))
 		    (overlay-lists))))
@@ -841,8 +847,7 @@
   "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
@@ -1095,8 +1100,7 @@
   (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)
--- a/lisp/custom/widget-example.el	Mon Aug 13 09:51:18 2007 +0200
+++ b/lisp/custom/widget-example.el	Mon Aug 13 09:52:19 2007 +0200
@@ -4,7 +4,7 @@
 ;;
 ;; 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)
--- a/lisp/custom/widget.el	Mon Aug 13 09:51:18 2007 +0200
+++ b/lisp/custom/widget.el	Mon Aug 13 09:52:19 2007 +0200
@@ -4,7 +4,7 @@
 ;;
 ;; 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.
--- a/lisp/efs/dired-xemacs.el	Mon Aug 13 09:51:18 2007 +0200
+++ b/lisp/efs/dired-xemacs.el	Mon Aug 13 09:52:19 2007 +0200
@@ -86,7 +86,7 @@
      ["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
@@ -293,20 +293,39 @@
 
 ;;; 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."
@@ -404,11 +423,13 @@
 (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.")
 
--- a/lisp/efs/dired.el	Mon Aug 13 09:51:18 2007 +0200
+++ b/lisp/efs/dired.el	Mon Aug 13 09:52:19 2007 +0200
@@ -2831,11 +2831,11 @@
 	    (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))))
 
@@ -2954,6 +2954,10 @@
       (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
--- a/lisp/gnats/gnats.el	Mon Aug 13 09:51:18 2007 +0200
+++ b/lisp/gnats/gnats.el	Mon Aug 13 09:52:19 2007 +0200
@@ -1019,8 +1019,10 @@
 				 "%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.
--- a/lisp/modes/make-mode.el	Mon Aug 13 09:51:18 2007 +0200
+++ b/lisp/modes/make-mode.el	Mon Aug 13 09:52:19 2007 +0200
@@ -101,7 +101,8 @@
 
 ;; Sadly we need this for a macro.
 (eval-when-compile
-  (require 'imenu))
+  (unless (featurep 'xemacs)
+    (require 'imenu)))
 
 ;;; ------------------------------------------------------------
 ;;; Configurable stuff
@@ -585,8 +586,9 @@
   (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)
--- a/lisp/modes/vhdl-mode.el	Mon Aug 13 09:51:18 2007 +0200
+++ b/lisp/modes/vhdl-mode.el	Mon Aug 13 09:52:19 2007 +0200
@@ -1,16 +1,16 @@
 ;;; 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!
 
@@ -34,7 +34,7 @@
 
 ;; 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
@@ -63,14 +63,12 @@
 ;; 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:
@@ -283,17 +281,17 @@
 	(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.
@@ -347,6 +345,7 @@
   (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)
@@ -538,11 +537,11 @@
 ;;;###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
@@ -808,6 +807,28 @@
      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
@@ -2592,9 +2613,9 @@
 
 ;; 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 ()
--- a/lisp/packages/hyper-apropos.el	Mon Aug 13 09:51:18 2007 +0200
+++ b/lisp/packages/hyper-apropos.el	Mon Aug 13 09:52:19 2007 +0200
@@ -303,6 +303,11 @@
 			 (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)))
--- a/lisp/prim/files.el	Mon Aug 13 09:51:18 2007 +0200
+++ b/lisp/prim/files.el	Mon Aug 13 09:52:19 2007 +0200
@@ -957,9 +957,9 @@
 	(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))
--- a/lisp/prim/frame.el	Mon Aug 13 09:51:18 2007 +0200
+++ b/lisp/prim/frame.el	Mon Aug 13 09:52:19 2007 +0200
@@ -817,18 +817,36 @@
 (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
--- a/lisp/prim/help.el	Mon Aug 13 09:51:18 2007 +0200
+++ b/lisp/prim/help.el	Mon Aug 13 09:52:19 2007 +0200
@@ -1292,3 +1292,161 @@
                     (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
--- a/lisp/prim/packages.el	Mon Aug 13 09:51:18 2007 +0200
+++ b/lisp/prim/packages.el	Mon Aug 13 09:52:19 2007 +0200
@@ -188,7 +188,7 @@
 	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)))))
 
--- a/lisp/prim/process.el	Mon Aug 13 09:51:18 2007 +0200
+++ b/lisp/prim/process.el	Mon Aug 13 09:52:19 2007 +0200
@@ -101,7 +101,7 @@
   (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")
@@ -113,7 +113,7 @@
     (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))
--- a/lisp/prim/startup.el	Mon Aug 13 09:51:18 2007 +0200
+++ b/lisp/prim/startup.el	Mon Aug 13 09:52:19 2007 +0200
@@ -1010,7 +1010,7 @@
     (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
      ;;
--- a/lisp/utils/config.el	Mon Aug 13 09:51:18 2007 +0200
+++ b/lisp/utils/config.el	Mon Aug 13 09:52:19 2007 +0200
@@ -48,7 +48,15 @@
 	(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)
--- a/lisp/utils/forms.el	Mon Aug 13 09:51:18 2007 +0200
+++ b/lisp/utils/forms.el	Mon Aug 13 09:52:19 2007 +0200
@@ -300,10 +300,10 @@
 (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.")
@@ -1677,6 +1677,8 @@
   (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.
--- a/lisp/vm/vm-autoload.el	Mon Aug 13 09:51:18 2007 +0200
+++ b/lisp/vm/vm-autoload.el	Mon Aug 13 09:52:19 2007 +0200
@@ -1,5 +1,8 @@
 (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
--- a/lisp/w3/ChangeLog	Mon Aug 13 09:51:18 2007 +0200
+++ b/lisp/w3/ChangeLog	Mon Aug 13 09:52:19 2007 +0200
@@ -1,3 +1,7 @@
+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.
--- a/lisp/w3/mm.el	Mon Aug 13 09:51:18 2007 +0200
+++ b/lisp/w3/mm.el	Mon Aug 13 09:52:19 2007 +0200
@@ -1033,7 +1033,7 @@
 (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)))
 
--- a/lisp/x11/x-menubar.el	Mon Aug 13 09:51:18 2007 +0200
+++ b/lisp/x11/x-menubar.el	Mon Aug 13 09:52:19 2007 +0200
@@ -779,7 +779,9 @@
 		 (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))
 
--- a/man/Makefile	Mon Aug 13 09:51:18 2007 +0200
+++ b/man/Makefile	Mon Aug 13 09:52:19 2007 +0200
@@ -82,11 +82,6 @@
 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:
--- a/man/vhdl-mode.texi	Mon Aug 13 09:51:18 2007 +0200
+++ b/man/vhdl-mode.texi	Mon Aug 13 09:52:19 2007 +0200
@@ -30,7 +30,7 @@
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
 @ifinfo
-Copyright @copyright{} 1995 Rodney J. Whitby
+Copyright @copyright{} 1995 - 1997 Rodney J. Whitby <rwhitby@@geocities.com>
 @end ifinfo
 
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -48,10 +48,10 @@
 @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 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -61,7 +61,7 @@
 
 @page
 @vskip 0pt plus 1filll
-Copyright @copyright{} 1995 Rodney J. Whitby
+Copyright @copyright{} 1995 - 1997 Rodney J. Whitby <rwhitby@@geocities.com>
 @end titlepage
 
 
@@ -1104,10 +1104,8 @@
 @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
@@ -1217,16 +1215,16 @@
 @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
--- a/man/widget.texi	Mon Aug 13 09:51:18 2007 +0200
+++ b/man/widget.texi	Mon Aug 13 09:52:19 2007 +0200
@@ -13,7 +13,7 @@
 @comment  node-name,  next,  previous,  up
 @top The Emacs Widget Library
 
-Version: 1.9951
+Version: 1.9953
 
 @menu
 * Introduction::                
--- a/nt/ChangeLog	Mon Aug 13 09:51:18 2007 +0200
+++ b/nt/ChangeLog	Mon Aug 13 09:52:19 2007 +0200
@@ -1,3 +1,14 @@
+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.
--- a/nt/xemacs.mak	Mon Aug 13 09:51:18 2007 +0200
+++ b/nt/xemacs.mak	Mon Aug 13 09:52:19 2007 +0200
@@ -5,7 +5,7 @@
 
 EMACS_MAJOR_VERSION=20
 EMACS_MINOR_VERSION=3
-XEMACS_CODENAME=\"Copenhagen\"
+XEMACS_CODENAME=\"Stockholm\"
 
 #------------------------------------------------------------------------------
 
@@ -32,7 +32,7 @@
 LASTFILE_FLAGS=-nologo -w -Od $(INCLUDES) -Fo$@ -c
 LASTFILE_OBJS= \
 	$(OUTDIR)/lastfile.obj
-	
+
 $(LASTFILE): $(LASTFILE_OBJS)
 	link.exe -lib /nologo /out:$@ $(LASTFILE_OBJS)
 
@@ -338,7 +338,7 @@
 $(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
 
@@ -370,7 +370,7 @@
 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
@@ -861,11 +861,11 @@
 
 # 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"
 
 #------------------------------------------------------------------------------
 
--- a/src/ChangeLog	Mon Aug 13 09:51:18 2007 +0200
+++ b/src/ChangeLog	Mon Aug 13 09:52:19 2007 +0200
@@ -1,3 +1,41 @@
+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
--- a/src/callint.c	Mon Aug 13 09:51:18 2007 +0200
+++ b/src/callint.c	Mon Aug 13 09:52:19 2007 +0200
@@ -741,7 +741,7 @@
 	  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;
--- a/src/callproc.c	Mon Aug 13 09:51:18 2007 +0200
+++ b/src/callproc.c	Mon Aug 13 09:52:19 2007 +0200
@@ -1086,23 +1086,37 @@
 
 #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
--- a/src/config.h.in	Mon Aug 13 09:51:18 2007 +0200
+++ b/src/config.h.in	Mon Aug 13 09:52:19 2007 +0200
@@ -409,8 +409,8 @@
 /* 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
--- a/src/data.c	Mon Aug 13 09:51:18 2007 +0200
+++ b/src/data.c	Mon Aug 13 09:52:19 2007 +0200
@@ -930,11 +930,10 @@
        (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, /*
@@ -945,7 +944,6 @@
        (function))
 {
   CHECK_COMPILED_FUNCTION (function);
-
   return compiled_function_documentation (XCOMPILED_FUNCTION (function));
 }
 
@@ -975,9 +973,9 @@
        (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;
 }
 
 
--- a/src/device-x.c	Mon Aug 13 09:51:18 2007 +0200
+++ b/src/device-x.c	Mon Aug 13 09:52:19 2007 +0200
@@ -303,7 +303,7 @@
   XIM_init_device(d);
 #endif /* HAVE_XIM */
 
-#ifdef HAVE_WINDOWMAKER
+#ifdef HAVE_SESSION
   XtVaSetValues(DEVICE_XT_APP_SHELL (d),
                 XtNmappedWhenManaged, False,
                 XtNwidth, 1,
@@ -320,7 +320,7 @@
     free_argc_argv (argv);
 
   }
-#endif /* HAVE_WINDOWMAKER */
+#endif /* HAVE_SESSION */
 
   Vx_initial_argv_list = make_arg_list (argc, argv);
   free_argc_argv (argv);
--- a/src/emacs.c	Mon Aug 13 09:51:18 2007 +0200
+++ b/src/emacs.c	Mon Aug 13 09:52:19 2007 +0200
@@ -62,6 +62,9 @@
 #endif
 #endif
 
+/* For PATH_EXEC */
+#include "paths.h"
+
 extern void memory_warnings (void *, void (*warnfun) (CONST char *));
 
 #ifndef SYSTEM_MALLOC
@@ -2360,7 +2363,7 @@
 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);
 
--- a/src/eval.c	Mon Aug 13 09:51:18 2007 +0200
+++ b/src/eval.c	Mon Aug 13 09:52:19 2007 +0200
@@ -330,7 +330,7 @@
 static Lisp_Object
 restore_entering_debugger (Lisp_Object arg)
 {
-  entering_debugger = ((NILP (arg)) ? 0 : 1);
+  entering_debugger = ! NILP (arg);
   return arg;
 }
 
@@ -404,9 +404,9 @@
   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
@@ -2124,7 +2124,7 @@
 */
 
 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, ...)
 {
--- a/src/event-Xt.c	Mon Aug 13 09:51:18 2007 +0200
+++ b/src/event-Xt.c	Mon Aug 13 09:52:19 2007 +0200
@@ -612,112 +612,9 @@
 /************************************************************************/
 
 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 \
-		  (get_device_from_display (event->display), event->window)), \
-     event, bufptr, bufsiz, &keysym, &status);
-#endif /* XIM_XLIB */
- LOOKUPSTRING;
- check_status: /* Come-From XBufferOverflow */
-
-#ifdef DEBUG_XEMACS
-  if (x_debug_events > 0)
-    {
-      stderr_out ("   status=");
-#define print_status_when(S) if (status == S) stderr_out (#S)
-      print_status_when (XLookupKeySym);
-      print_status_when (XLookupBoth);
-      print_status_when (XLookupChars);
-      print_status_when (XLookupNone);
-      print_status_when (XBufferOverflow);
-      
-      if (status == XLookupKeySym || status == XLookupBoth)
-	stderr_out (" keysym=%s",  XKeysymToString (keysym));
-      if (status == XLookupChars  || status == XLookupBoth)
-	{
-	  if (len != 1)
-	    {
-	      int j;
-	      stderr_out (" chars=\"");
-	      for (j=0; j<len; j++)
-		stderr_out ("%c", bufptr[j]);
-	      stderr_out ("\"");
-	    }
-	  else if (bufptr[0] <= 32 || bufptr[0] >= 127)
-	    stderr_out (" char=0x%x", bufptr[0]);
-	  else
-	    stderr_out (" char=%c", bufptr[0]);
-	}
-      stderr_out ("\n");
-    }
-#endif /* DEBUG_XEMACS */
-
-  switch (status)
-    {
-    case XLookupKeySym:
-    case XLookupBoth: break;
-
-    case XLookupChars:
-      {
-	/* Generate multiple emacs events */
-	struct device *d = get_device_from_display (event->display);
-        Emchar ch;
-        Lisp_Object instream =
-          make_fixed_buffer_input_stream ((unsigned char *) bufptr, len);
-
-        /* ### Use Fget_coding_system (Vcomposed_input_coding_system) */
-        instream =
-	  make_decoding_input_stream
-	  (XLSTREAM (instream), Fget_coding_system (Qautomatic_conversion));
-        
-        while ((ch = Lstream_get_emchar (XLSTREAM (instream))) != EOF)
-          {
-            Lisp_Object emacs_event = Fmake_event ();
-            XEVENT (emacs_event)->channel	      = DEVICE_CONSOLE (d);
-            XEVENT (emacs_event)->event_type	      = key_press_event;
-            XEVENT (emacs_event)->timestamp	      = event->time;
-            XEVENT (emacs_event)->event.key.modifiers = 0;
-            XEVENT (emacs_event)->event.key.keysym    = make_char (ch);
-            enqueue_Xt_dispatch_event (emacs_event);
-          }
-        Lstream_close (XLSTREAM (instream));
-	return Qnil;
-      }
-    case XLookupNone: return Qnil;
-    case XBufferOverflow:
-      bufptr = alloca (len+1);
-      bufsiz = len+1;
-      LOOKUPSTRING;
-      goto check_status;
-    }
-#else /* ! HAVE_XIM */
-  XLookupString (event, dummy, 200, &keysym, 0);
-#endif /* HAVE_XIM */
-
   if (keysym >= XK_exclam && keysym <= XK_asciitilde)
     /* We must assume that the X keysym numbers for the ASCII graphic
        characters are the same as their ASCII codes.  */
@@ -773,6 +670,124 @@
     }
 }
 
+static Lisp_Object
+x_to_emacs_keysym (XKeyPressedEvent *event, int simple_p)
+     /* simple_p means don't try too hard (ASCII only) */
+{
+  KeySym keysym = 0;
+
+#ifdef HAVE_XIM
+  int len;
+  char buffer[64];
+  char *bufptr = buffer;
+  int   bufsiz = sizeof (buffer);
+  Status status;
+#ifdef XIM_XLIB
+  XIC xic = FRAME_X_XIC (x_any_window_to_frame
+			 (get_device_from_display (event->display),
+			  event->window));
+#endif /* XIM_XLIB */
+#endif /* HAVE_XIM */
+
+  if (
+#ifndef HAVE_XIM
+      1
+#elif defined (XIM_MOTIF)
+      0
+#else /* XIM_XLIB */
+      !xic
+#endif
+      )
+    {
+      /* Apparently it's necessary to specify a dummy here (rather
+         than passing in 0) to avoid crashes on German IRIX */
+      char dummy[256];
+      XLookupString (event, dummy, 200, &keysym, 0);
+      return x_keysym_to_emacs_keysym (keysym, simple_p);
+    }
+
+#ifdef HAVE_XIM
+ Lookup_String: /* Come-From XBufferOverflow */
+#ifdef XIM_MOTIF
+  len = XmImMbLookupString (XtWindowToWidget (event->display, event->window),
+			    event, bufptr, bufsiz, &keysym, &status);
+#else /* XIM_XLIB */
+  len = XmbLookupString (xic, event, bufptr, bufsiz, &keysym, &status);
+#endif /* XIM_XLIB */
+
+#ifdef DEBUG_XEMACS
+  if (x_debug_events > 0)
+    {
+      stderr_out ("   status=");
+#define print_status_when(S) if (status == S) stderr_out (#S)
+      print_status_when (XLookupKeySym);
+      print_status_when (XLookupBoth);
+      print_status_when (XLookupChars);
+      print_status_when (XLookupNone);
+      print_status_when (XBufferOverflow);
+      
+      if (status == XLookupKeySym || status == XLookupBoth)
+	stderr_out (" keysym=%s",  XKeysymToString (keysym));
+      if (status == XLookupChars  || status == XLookupBoth)
+	{
+	  if (len != 1)
+	    {
+	      int j;
+	      stderr_out (" chars=\"");
+	      for (j=0; j<len; j++)
+		stderr_out ("%c", bufptr[j]);
+	      stderr_out ("\"");
+	    }
+	  else if (bufptr[0] <= 32 || bufptr[0] >= 127)
+	    stderr_out (" char=0x%x", bufptr[0]);
+	  else
+	    stderr_out (" char=%c", bufptr[0]);
+	}
+      stderr_out ("\n");
+    }
+#endif /* DEBUG_XEMACS */
+
+  switch (status)
+    {
+    case XLookupKeySym:
+    case XLookupBoth:
+      return x_keysym_to_emacs_keysym (keysym, simple_p);
+
+    case XLookupChars:
+      {
+	/* Generate multiple emacs events */
+	struct device *d = get_device_from_display (event->display);
+        Emchar ch;
+        Lisp_Object instream =
+          make_fixed_buffer_input_stream ((unsigned char *) bufptr, len);
+
+        /* ### Use Fget_coding_system (Vcomposed_input_coding_system) */
+        instream =
+	  make_decoding_input_stream (XLSTREAM (instream),
+				      Fget_coding_system (Qautomatic_conversion));
+        
+        while ((ch = Lstream_get_emchar (XLSTREAM (instream))) != EOF)
+          {
+            Lisp_Object emacs_event = Fmake_event ();
+            XEVENT (emacs_event)->channel	      = DEVICE_CONSOLE (d);
+            XEVENT (emacs_event)->event_type	      = key_press_event;
+            XEVENT (emacs_event)->timestamp	      = event->time;
+            XEVENT (emacs_event)->event.key.modifiers = 0;
+            XEVENT (emacs_event)->event.key.keysym    = make_char (ch);
+            enqueue_Xt_dispatch_event (emacs_event);
+          }
+        Lstream_close (XLSTREAM (instream));
+	return Qnil;
+      }
+    case XLookupNone: return Qnil;
+    case XBufferOverflow:
+      bufptr = alloca (len+1);
+      bufsiz = len+1;
+      goto Lookup_String;
+    }
+#endif /* HAVE_XIM */
+}
+
 static void
 set_last_server_timestamp (struct device *d, XEvent *x_event)
 {
--- a/src/event-stream.c	Mon Aug 13 09:51:18 2007 +0200
+++ b/src/event-stream.c	Mon Aug 13 09:52:19 2007 +0200
@@ -3652,7 +3652,7 @@
     return Qnil;
 
   /* if we're currently in a menu accelerator, check there for further events */
-#if defined(HAVE_X_WINDOWS) && defined(HAVE_MENUBAR)
+#if defined(HAVE_X_WINDOWS) && defined(HAVE_MENUBARS)
   if (lw_menu_active)
     {
       result = command_builder_operate_menu_accelerator (builder);
@@ -3666,7 +3666,7 @@
       if (NILP (result))
 #endif
 	result = command_builder_find_leaf_1 (builder);
-#if defined(HAVE_X_WINDOWS) && defined(HAVE_MENUBAR)
+#if defined(HAVE_X_WINDOWS) && defined(HAVE_MENUBARS)
       if (NILP (result)
 	  && EQ (Vmenu_accelerator_enabled, Qmenu_fallback))
 	result = command_builder_find_menu_accelerator (builder);
@@ -4864,7 +4864,9 @@
   DEFSUBR (Fthis_command_keys);
   DEFSUBR (Freset_this_command_lengths);
   DEFSUBR (Fopen_dribble_file);
+#if defined(HAVE_X_WINDOWS) && defined(HAVE_MENUBAR)
   DEFSUBR (Faccelerate_menu);
+#endif
 
   defsymbol (&Qpre_command_hook, "pre-command-hook");
   defsymbol (&Qpost_command_hook, "post-command-hook");
--- a/src/frame-x.c	Mon Aug 13 09:51:18 2007 +0200
+++ b/src/frame-x.c	Mon Aug 13 09:52:19 2007 +0200
@@ -366,9 +366,9 @@
 	return;
       f = XFRAME (XCAR (rest));
 
-#ifndef HAVE_WINDOWMAKER
+#ifndef HAVE_SESSION
       x_wm_maybe_store_wm_command (f);
-#endif /* HAVE_WINDOWMAKER */
+#endif /* HAVE_SESSION */
 
     }
 }
@@ -1178,32 +1178,61 @@
 
   Lisp_Object path = Qnil;
   Lisp_Object frame = Qnil;
+  Lisp_Object dnd_data = Qnil;
+  Lisp_Object dnd_type = Qnil;
 
-  struct gcpro gcpro1, gcpro2;
+  struct gcpro gcpro1, gcpro2, gcpro3, gcpro4;
 
   Type = DndDataType (event); 
-  if ((Type != DndFile) && (Type != DndFiles) && (Type != DndExe))
-    return;
+  if (Type < 0)  /* pseudo event produces -1 as type */
+    {
+      stderr_out("DndDropHandler: pseudo drop received\n");
+      return;
+    }
+
   DndGetData (&Data, &Size);
   
-  GCPRO2 (path, frame);
+  GCPRO4 (path, frame, dnd_data, dnd_type);
 
   frame = make_frame ((struct frame *) data);
 
-  if (Type == DndFiles)
+  stderr_out("DndDropHandler: real drop received (T%d Sl%d)\n",Type,Size);
+  
+  switch (Type)
     {
+    case DndFiles:
       while (*Data)
 	{
 	  len = strlen ((char*) Data);
-	  path = make_string ((char*) Data, len);
+	  path = make_ext_string ((char*) Data, len, FORMAT_FILENAME);
 	  va_run_hook_with_args (Qdrag_and_drop_functions, 2, frame, path);
 	  Data += len+1;
 	}
-    }
-  else
-    {
-      path = make_string ((char*) Data, strlen (Data));    
+      break;
+    case DndFile:
+      path = make_ext_string ((char*) Data, strlen(Data), FORMAT_FILENAME);
       va_run_hook_with_args (Qdrag_and_drop_functions, 2, frame, path);
+      break;
+    case DndText:
+      dnd_data = make_ext_string ((char *) Data, strlen(Data), FORMAT_FILENAME);
+      va_run_hook_with_args (Qdrag_and_drop_functions, 3, frame, path, dnd_data);
+      break;
+    case DndDir:
+    case DndLink:
+    case DndExe:
+    case DndURL:
+    case DndMIME:
+      dnd_type = make_int (Type);
+      dnd_data = make_ext_string ((char*) Data, strlen(Data), FORMAT_FILENAME);
+      va_run_hook_with_args (Qdrag_and_drop_functions, 4,
+			     frame, path, dnd_data, dnd_type);
+      break;
+    default: /* Unknown, RawData and any other type */
+      dnd_type = make_int (Type);
+      dnd_data = make_ext_string ((char*) Data, Size, FORMAT_BINARY);
+      va_run_hook_with_args (Qdrag_and_drop_functions, 4,
+			     frame, path, dnd_data, dnd_type);
+      break;
     }
 
   UNGCPRO;
@@ -1870,9 +1899,9 @@
 	/* tell the window manager about us. */
 	x_wm_store_class_hints (shell_widget, XtName (frame_widget));
 
-#ifndef HAVE_WINDOWMAKER
+#ifndef HAVE_SESSION
 	x_wm_maybe_store_wm_command (f);
-#endif /* HAVE_WINDOWMAKER */
+#endif /* HAVE_SESSION */
 
 	x_wm_hack_wm_protocols (shell_widget);
       }
@@ -2447,10 +2476,10 @@
   Widget w = FRAME_X_SHELL_WIDGET (f);
   Lisp_Object popup, frame;
 
-#ifndef HAVE_WINDOWMAKER
+#ifndef HAVE_SESSION
   if (FRAME_X_TOP_LEVEL_FRAME_P (f))
     x_wm_maybe_move_wm_command (f);
-#endif /* HAVE_WINDOWMAKER */
+#endif /* HAVE_SESSION */
 
   /* Frames with the popup property are using other frames as their
      widget parent.  Deleting them are their parent has already been
--- a/src/gui-x.c	Mon Aug 13 09:51:18 2007 +0200
+++ b/src/gui-x.c	Mon Aug 13 09:52:19 2007 +0200
@@ -293,7 +293,7 @@
   /* This is the timestamp used for asserting focus so we need to get an
      up-to-date value event if no events has been dispatched to emacs
      */
-#if defined(HAVE_MENUBAR)
+#if defined(HAVE_MENUBARS)
   DEVICE_X_MOUSE_TIMESTAMP (d) = x_focus_timestamp_really_sucks_fix_me_better;
 #else
   DEVICE_X_MOUSE_TIMESTAMP (d) = DEVICE_X_GLOBAL_MOUSE_TIMESTAMP (d);
--- a/src/input-method-xlib.c	Mon Aug 13 09:51:18 2007 +0200
+++ b/src/input-method-xlib.c	Mon Aug 13 09:52:19 2007 +0200
@@ -154,7 +154,7 @@
   XIC xic;
   Widget w = FRAME_X_TEXT_WIDGET (f);
   Window win = XtWindow (w);
-  XRectangle p_area = {0,0,0,0}, s_area={0,0,0,0};
+  XRectangle p_area = {0,0,1,1}, s_area={0,0,1,1};
   XPoint spot = {0,0};
   XIMStyle style;
   XVaNestedList p_list, s_list;
@@ -224,7 +224,6 @@
                                 XNBackground,   xic_vars.bg,
                                 XNFontSet,      xic_vars.fontset,
                                 NULL);
-
   FRAME_X_XIC (f) = xic =
     XCreateIC (xim,
                XNInputStyle,        style,
--- a/src/mule-coding.c	Mon Aug 13 09:51:18 2007 +0200
+++ b/src/mule-coding.c	Mon Aug 13 09:52:19 2007 +0200
@@ -316,33 +316,30 @@
     }
 }
 
-static int
+static enum eol_type
 symbol_to_eol_type (Lisp_Object symbol)
 {
   CHECK_SYMBOL (symbol);
-  if (NILP (symbol))           return EOL_AUTODETECT;
-  else if (EQ (symbol, Qlf))   return EOL_LF;
-  else if (EQ (symbol, Qcrlf)) return EOL_CRLF;
-  else if (EQ (symbol, Qcr))   return EOL_CR;
-  else
-    signal_simple_error ("Unrecognized eol type", symbol);
-
-  return 0; /* not reached */
+  if (NILP (symbol))      return EOL_AUTODETECT;
+  if (EQ (symbol, Qlf))   return EOL_LF;
+  if (EQ (symbol, Qcrlf)) return EOL_CRLF;
+  if (EQ (symbol, Qcr))   return EOL_CR;
+
+  signal_simple_error ("Unrecognized eol type", symbol);
+  return EOL_AUTODETECT; /* not reached */
 }
 
 static Lisp_Object
-eol_type_to_symbol (int eol_type)
+eol_type_to_symbol (enum eol_type type)
 {
-  switch (eol_type)
+  switch (type)
     {
     case EOL_LF:         return Qlf;
     case EOL_CRLF:       return Qcrlf;
     case EOL_CR:         return Qcr;
     case EOL_AUTODETECT: return Qnil;
-    default:             abort ();
+    default:             abort (); return Qnil; /* not reached */
     }
-
-  return Qnil; /* not reached */
 }
 
 static void
@@ -483,7 +480,7 @@
 }
 
 static struct Lisp_Coding_System *
-allocate_coding_system (int type, Lisp_Object name)
+allocate_coding_system (enum coding_system_type type, Lisp_Object name)
 {
   struct Lisp_Coding_System *codesys;
 
@@ -894,18 +891,17 @@
 }
 
 static Lisp_Object
-subsidiary_coding_system (Lisp_Object coding_system, int eol_type)
+subsidiary_coding_system (Lisp_Object coding_system, enum eol_type type)
 {
   struct Lisp_Coding_System *cs = XCODING_SYSTEM (coding_system);
   Lisp_Object new_coding_system;
 
   if (CODING_SYSTEM_EOL_TYPE (cs) != EOL_AUTODETECT)
     return coding_system;
-  if (eol_type == EOL_AUTODETECT)
-    return coding_system;
-
-  switch (eol_type)
+
+  switch (type)
     {
+    case EOL_AUTODETECT: return coding_system;
     case EOL_LF:   new_coding_system = CODING_SYSTEM_EOL_LF   (cs); break;
     case EOL_CR:   new_coding_system = CODING_SYSTEM_EOL_CR   (cs); break;
     case EOL_CRLF: new_coding_system = CODING_SYSTEM_EOL_CRLF (cs); break;
@@ -1210,7 +1206,7 @@
 
 struct detection_state
 {
-  int eol_type;
+  enum eol_type eol_type;
   int seen_non_ascii;
   int mask;
   
@@ -1276,7 +1272,7 @@
   return (mask & (mask - 1)) == 0;
 }
 
-static int
+static enum eol_type
 detect_eol_type (struct detection_state *st, CONST unsigned char *src,
 		 unsigned int n)
 {
@@ -1428,7 +1424,7 @@
 
 static void
 determine_real_coding_system (Lstream *stream, Lisp_Object *codesys_in_out,
-			      int *eol_type_in_out)
+			      enum eol_type *eol_type_in_out)
 {
   struct detection_state decst;
 
@@ -1507,11 +1503,8 @@
     }
 
   if (decst.mask == ~0)
-    {
-      val = subsidiary_coding_system (Fget_coding_system
-				      (Qautomatic_conversion),
-				      decst.eol_type);
-    }
+    val = subsidiary_coding_system (Fget_coding_system (Qautomatic_conversion),
+				    decst.eol_type);
   else
     {
       int i;
@@ -1645,7 +1638,7 @@
      EOL type stored in CODESYS because the latter might indicate
      automatic EOL-type detection while the former will always
      indicate a particular EOL type. */
-  int eol_type;
+  enum eol_type eol_type;
 
   /* Additional ISO2022 information.  We define the structure above
      because it's also needed by the detection routines. */
@@ -3311,7 +3304,7 @@
 	default:
 	  if (0x28 <= c && c <= 0x2F)
 	    {
-	      iso->esc = c - 0x28 + ISO_ESC_2_8;
+	      iso->esc = (enum iso_esc_flag) (c - 0x28 + ISO_ESC_2_8);
 	      goto not_done;
 	    }
 
@@ -3414,7 +3407,7 @@
     case ISO_ESC_2_4:
       if (0x28 <= c && c <= 0x2F)
 	{
-	  iso->esc = c - 0x28 + ISO_ESC_2_4_8;
+	  iso->esc = (enum iso_esc_flag) (c - 0x28 + ISO_ESC_2_4_8);
 	  goto not_done;
 	}
       if (0x40 <= c && c <= 0x42)
@@ -3430,7 +3423,7 @@
 
     default:
       {
-	int type;
+	int type =-1;
 
 	if (c < '0' || c > '~')
 	  return 0; /* bad final byte */
@@ -3449,6 +3442,11 @@
 		    CHARSET_TYPE_96X96 : CHARSET_TYPE_94X94);
 	    reg = (iso->esc - ISO_ESC_2_4_8) & 3;
 	  }
+	else
+	  {
+	    /* Can this ever be reached? -slb */
+	    abort();
+	  }
 	
 	cs = CHARSET_BY_ATTRIBUTES (type, c,
 				    *flags & CODING_STATE_R2L ?
--- a/src/mule-wnnfns.c	Mon Aug 13 09:51:18 2007 +0200
+++ b/src/mule-wnnfns.c	Mon Aug 13 09:52:19 2007 +0200
@@ -702,7 +702,6 @@
 */
      (bunNo, len, dai))
 {
-  Lisp_Object	val;
   int		cnt, no;
   int	snum;
   CHECK_INT (bunNo);
@@ -728,7 +727,6 @@
      (bunNo))
 {
   Lisp_Object		val;
-  struct wnn_jdata	*info_buf;
   unsigned char		cbuf[512];
   w_char		wbuf[256];
   int			bun_no, yomilen, jirilen, i;
@@ -833,7 +831,6 @@
      (bunNo))
 {
   int		no;
-  Lisp_Object	val;
   int	snum;
   if ((snum = check_wnn_server_type ()) == -1) return Qnil;
   if (EQ(bunNo, Qnil)) no = -1;
@@ -978,7 +975,6 @@
   int			i, count;
   w_char			wbuf[256];
   unsigned char		kanji_buf[256];
-  int			kanji_len;
   int			snum;
   unsigned char		lb;
   CHECK_STRING (yomi);
--- a/src/redisplay.c	Mon Aug 13 09:51:18 2007 +0200
+++ b/src/redisplay.c	Mon Aug 13 09:52:19 2007 +0200
@@ -8259,11 +8259,9 @@
 */ );
   no_redraw_on_reenter = 0;
 
-  /* #### This should be removed in 19.14 */
   DEFVAR_LISP ("window-system", &Vwindow_system /*
 A symbol naming the window-system under which Emacs is running,
 such as `x', or nil if emacs is running on an ordinary terminal.
-This variable is OBSOLETE and will be removed in a future version.
 */ );
   Vwindow_system = Qnil;
 
--- a/src/regex.c	Mon Aug 13 09:51:18 2007 +0200
+++ b/src/regex.c	Mon Aug 13 09:52:19 2007 +0200
@@ -5018,7 +5018,7 @@
           EXTRACT_NUMBER_AND_INCR (mcnt, p);
           DEBUG_PRINT3 (" %d (to 0x%p):\n", mcnt, p + mcnt);
 
-          PUSH_FAILURE_POINT (p + mcnt, NULL, -2);
+          PUSH_FAILURE_POINT (p + mcnt, (void *) 0, -2);
           break;
 
 
@@ -5274,7 +5274,7 @@
           DEBUG_PRINT1 ("EXECUTING dummy_failure_jump.\n");
           /* It doesn't matter what we push for the string here.  What
              the code at `fail' tests is the value for the pattern.  */
-          PUSH_FAILURE_POINT (NULL, NULL, -2);
+          PUSH_FAILURE_POINT ((void *) 0, (void *) 0, -2);
           goto unconditional_jump;
 
 
@@ -5287,7 +5287,7 @@
           DEBUG_PRINT1 ("EXECUTING push_dummy_failure.\n");
           /* See comments just above at `dummy_failure_jump' about the
              two zeroes.  */
-          PUSH_FAILURE_POINT (NULL, NULL, -2);
+          PUSH_FAILURE_POINT ((void *) 0, (void *) 0, -2);
           break;
 
         /* Have to succeed matching what follows at least n times.
--- a/src/s/freebsd.h	Mon Aug 13 09:51:18 2007 +0200
+++ b/src/s/freebsd.h	Mon Aug 13 09:52:19 2007 +0200
@@ -35,8 +35,10 @@
 
 /* Kludge to work around setlocale(LC_ALL,...) not working after 01/1997 */
 #if __FreeBSD_version >= 199701
+#ifndef NOT_C_CODE
 #include <X11/Xlocale.h>
 #define setlocale(locale_category, locale_spec) setlocale(LC_CTYPE, locale_spec)
+#endif /* C code */
 #endif
 
 #define LIBS_TERMCAP "-ltermcap"
--- a/src/s/hpux9.h	Mon Aug 13 09:51:18 2007 +0200
+++ b/src/s/hpux9.h	Mon Aug 13 09:52:19 2007 +0200
@@ -34,7 +34,7 @@
 #ifdef __hp9000s300
 #define C_SWITCH_SYSTEM "-Aa -D_HPUX_SOURCE"
 #else
-#define C_SWITCH_SYSTEM "-Ae -Wp,-H100000"
+#define C_SWITCH_SYSTEM "-Ae -Wp,-H100000 +Olibcalls"
 #endif
 /* XEmacs: commented out
 #else
--- a/src/sysdep.c	Mon Aug 13 09:51:18 2007 +0200
+++ b/src/sysdep.c	Mon Aug 13 09:52:19 2007 +0200
@@ -67,6 +67,14 @@
 #include <sys/times.h>
 #endif
 
+#ifdef WINDOWSNT
+#include <direct.h>
+/* In process.h which conflicts with the local copy.  */
+#define _P_WAIT 0
+int _CRTAPI1 _spawnlp (int, const char *, const char *, ...);
+int _CRTAPI1 _getpid (void);
+#endif
+
 /* ------------------------------- */
 /*           VMS includes          */
 /* ------------------------------- */
@@ -604,11 +612,17 @@
   str[len] = 0;
  xyzzy:
 
+#ifdef WINDOWSNT
+  pid = -1;
+#else /* not WINDOWSNT */
+
   pid = vfork ();
 
   if (pid == -1)
     error ("Can't spawn subshell");
   if (pid == 0)
+
+#endif /* not WINDOWSNT */
   {
       char *sh = 0;
 
@@ -644,9 +658,21 @@
 			   Fcons (build_string (sh), Qnil));
 #endif
 #else /* not MSDOS */
+#ifdef WINDOWSNT
+      /* Waits for process completion */
+      pid = _spawnlp (_P_WAIT, sh, sh, NULL);
+      if (pid == -1)
+        write (1, "Can't execute subshell", 22);
+
+#if 0
+/* This relates to the GNU Emacs console port, not required under X ? */
+      take_console ();
+#endif
+#else   /* not WINDOWSNT */
     execlp (sh, sh, 0);
     write (1, "Can't execute subshell", 22);
     _exit (1);
+#endif /* not WINDOWSNT */
 #endif /* not MSDOS */
   }
 
@@ -2640,7 +2666,7 @@
   new_action.sa_flags = 0;
 #endif
   sigaction (signal_number, &new_action, &old_action);
-  return (old_action.sa_handler);
+  return (signal_handler_t) (old_action.sa_handler);
 
 #endif /* not 0 */
 }
--- a/version.sh	Mon Aug 13 09:51:18 2007 +0200
+++ b/version.sh	Mon Aug 13 09:52:19 2007 +0200
@@ -1,5 +1,5 @@
 #!/bin/sh
 emacs_major_version=20
 emacs_minor_version=3
-emacs_beta_version=15
-xemacs_codename="Berlin"
+emacs_beta_version=16
+xemacs_codename="Budapest"