This is an updated version of my patch to provide a Windows compatible implementation of play-sound. Currently only Emacs version 21.3.5 is supported by this patch. I will later be releasing a version of this patch that supports version 21.2. The changes made by this patch are as follows: * nt/nmake.defs and nt/gmake.defs have been modified so that the constant WINMM is defined in such a way to indicate how to link with the library WINMM.LIB. This constant was defined much like the constants ADVAPI32, COMDLG32, GDI32, MPR, SHELL32, USER32, and WSOCK32. * src/lisp.h has been modified so that the preprocessor symbol _USE_PLAY_SOUND_INTERNAL is defined. In the pending 21.2 compatible version of this patch, this change will not be included. This change is necessary for version 21.3 because the file w32sound.c is used for both versions and the name of the play-sound internal function is different in version 21.3 (play-sound-internal) than it is in version 21.2 (play-sound). If the preprocessor function _USE_PLAY_SOUND_INTERNAL is defined, the primary function in w32sound.c is defined as play-sound-internal and it is defined as play-sound otherwise. * src/makefile.w32-in has been modified to compile w32sound.c and to link with WINMM.LIB. * src/s/ms-w32.h has been modified so that the preprocessor symbol HAVE_SOUND is defined. This enables sound support in Emacs. * src/sound.c has been modified to avoid any chance of a conflict between w32sound.c and sound.c. Previously the statement #ifdef HAVE_SOUND was used to determine whether or not to compile the file. This has been changed to #if defined(HAVE_SOUND) && !defined(_WIN32) * src/w32sound.c has been added. This contains my Windows implementation of play-sound. It is conditionally compiled as follows: #if defined(HAVE_SOUND) && defined(_WIN32) This compound test is used to eliminate any possibility of a conflict between sound.c and w32sound.c. Also included in this ZIP file is a shell script designed to make applying this patch easier. Simply copy both dopatch21_3.sh and emacs-21.3.50-w32-play-sound.diff into the directory containing your Emacs source and run the shell script. Then compile as you normally would. This version of this patch is much cleaner than my previous version. I am no longer defining _WIN32_WINNT or WINVER to 0x0501. This will eliminate a large number of compiler warnings. I also was very careful to make certain that no changes were added into the patch inadvertently. This patch has been tested using MSVC 6.0 and MingW 2.0. I hope that this patch addresses all the issues that arose from my previous patch.