2002-03-16 Eli Zaretskii * Version 21.2 released. 2002-02-18 Jason Rumney * emacs.rc: Define VS_VERSION_INFO if not already. Update version info. 2002-02-11 Andrew Innes * gmake.defs (CFLAGS): Define _WIN32_WINNT as 0x0400, in order to pick up relevant bits of the Windows API definitions. * nmake.defs (CFLAGS): Define _WIN32_WINNT as 0x0400, in order to pick up relevant bits of the Windows API definitions. 2001-11-20 Jason Rumney * INSTALL: Update table of versions of make that are suitable for building Emacs, based on recent feedback. * TODO, _emacs, emacs.bat.in, debug.bat.in: Removed. 2001-11-17 Jason Rumney * nmake.defs (SYS_LDFLAGS): Add setargv.obj for wildcard expansion. From Juanma Barranquero . 2001-10-20 Gerd Moellmann * Version 21.1 released. 2001-09-08 Eli Zaretskii * README: Update the address of the mailing list and subscription instructions. From Geoff Voelker . 2001-09-06 Eli Zaretskii * INSTALL: Suggest to avoid using WinZip. * configure.bat: Make sure ../site-lisp exists; create if necessary. 2001-09-05 Eli Zaretskii * INSTALL: Mention that "make install" can be "nmake install". 2001-09-04 Eli Zaretskii * makefile.w32-in ($(INSTALL_DIR)/bin): Depend on $(INSTALL_DIR), since some versions of `mkdir' don't automatically create parent directories. From Bruno Grossniklaus . 2001-08-31 Eli Zaretskii * subdirs.el: New file. * configure.bat: Copy subdirs.el to the site-lisp directory. * makefile.w32-in (install): Copy subdirs.el to the installation directory. 2001-06-20 Jason Rumney * runemacs.c (WinMain): Add quotes around command in case of spaces. 2001-06-01 Andrew Innes * gmake.defs (sh_output): Don't use $(warning ...) to output messages, since that is not supported by GNU make 3.77. 2001-05-24 Jason Rumney * INSTALL: Clarify that building with MSVC requires nmake. 2001-05-17 Andrew Innes * gmake.defs (NEW_CYGWIN): Output message about spurious error message that is to be ignored. 2001-05-13 Andrew Innes * TODO: Remove file, since it is completely out of date. * README: Add copyright notice. * INSTALL: Add copyright notice. 2001-04-18 Andrew Innes * nmake.defs (EMACSLOADPATH): Ensure EMACSLOADPATH is defined in the environment. * gmake.defs (SETLOADPATH): Remove definition. (EMACSLOADPATH): Ensure EMACSLOADPATH is defined in the environment. 2001-03-26 Eli Zaretskii * configure.bat: Make the checkw32api* labels be distinct in the first 8 characters. 2001-03-17 Andrew Innes * cmdproxy.c (get_next_token): Fix indefinite loop bug scanning escaped quotes. * gmake.defs (DEBUG_LINK): New macro. (LINK_FLAGS): Use it. * nmake.defs (DEBUG_LINK): New macro. (LINK_FLAGS): Use it. 2001-03-06 Andrew Innes * INSTALL: Add --ldflags to configure line for building with recent versions of Cygwin GCC. 2001-03-05 Eli Zaretskii * configure.bat: Use correct options when compiling a test program with Cygwin. From David Ponce . 2001-02-24 Andrew Innes * _emacs: Remove obsolete file. * emacs.bat.in: Remove obsolete file. * debug.bat.in: Remove obsolete file. * inc/sys/socket.h: Add copyright notice. * paths.h: Add copyright notice. * makefile.nt: Update copyright notice. * makefile.def: Update copyright notice. * configure.bat: Update copyright notice. * nmake.defs: Add copyright notice. * gmake.defs: Add copyright notice. * makefile.w32-in: Add copyright notice. 2001-02-05 Andrew Innes * nmake.defs (THISDIR): New definition. * gmake.defs (THISDIR): New definition. 2001-02-03 Andrew Innes * configure.bat: Leave a space before >> only when there is a preceding digit. Add a comment about the importance of this. * README: Replace outdated information. * INSTALL (Trouble-shooting): Add note about need to specify extra compiler flags with recent Cygwin ports of gcc. 2001-02-01 Eli Zaretskii * configure.bat: Use "rm -f" instead of "del /f", as the latter is not supported by Windows 9X's COMMAND.COM. 2001-01-31 Eli Zaretskii * configure.bat: Make sure redirection is preceeded by a blank, to avoid problems with "1>>foo" when CMD.EXE is the shell, which eats up the "1" part. From Rob Giardina . 2001-01-30 Eli Zaretskii * INSTALL: Copy the table of tested combinations of development tools from confuigure.bat. Add suggestion to install Bash on Windows 9X. * configure.bat: Don't copy lisp/Makefile, it doesn't exist; copy lisp/Makefile.in instead. Use "rm -f" where more than one file needs to be deleted, since command.com in Windows 9X doesn't grok more than one argument. 2001-01-24 Andrew Innes * makefile.w32-in (cleanall-other-dirs-nmake): (cleanall-other-dirs-gmake): New targets. (cleanall): Invoke them. 2001-01-19 Andrew Innes * addpm.c (env_vars): Add a version-independent site-lisp directory to EMACSLOADPATH, after the version dependent one. 2001-01-06 Andrew Innes * README: Update info about compilers. * makefile.w32-in: Use $(MAKETYPE) instead of $(SHELLTYPE) to select correct rule for invoking make in another directory. Amend rules accordingly. (clean): Delete $(COMPILER_TEMP_FILES) instead of *.pdb. * nmake.defs (EMACS_ICON_PATH): Delete definition. (COMPILER_TEMP_FILES): New definition. (MAKETYPE): New definition. * gmake.defs (EMACS_ICON_PATH): Delete definition. (COMPILER_TEMP_FILES): New definition. (MAKETYPE): New definition. * makefile.def (EMACS_ICON_PATH): Delete definition. * configure.bat: Be careful not to add trailing spaces when outputting to config.settings. 2001-01-02 Andrew Innes * config.nt (RE_TRANSLATE): Use CHAR_TABLE_TRANSLATE macro rather than the function. 2000-12-17 Andrew Innes * makefile.w32-in (install): Copy directories to the correct places. (real_install): Remove obsolete target. 2000-12-06 Andrew Innes * nmake.defs (CURDIR): New define. (INSTALL_DIR): Use it. * gmake.defs (NEW_CYGWIN): New define. (DQUOTE) [NEW_CYGWIN]: Cygnus changed the quoting rules since b20, so we need to adjust how we escape embedded quotes. (SETLOADPATH): Set EMACSLOADPATH to an absolute directory, relative to $(CURDIR). 2000-11-25 Jason Rumney * config.nt (GC_MARK_STACK, GC_SETJMP_WORKS): Define. 2000-10-17 Andrew Innes * makefile.w32-in (recompile): New target to recompile lisp directory. (recompile-CMD, recompile-SH): New support targets. 2000-09-24 Jason Rumney * config.nt (NO_RETURN): Define it. 2000-09-17 Andrew Innes * gmake.defs: Revert to Unix line endings. * nmake.defs: Revert to Unix line endings. 2000-09-16 Andrew Innes * gmake.defs (SETLOADPATH): Change definition to work from any subdirectory. 2000-09-14 Andrew Innes * makefile.w32-in: Revert to Unix line endings. 2000-09-14 Andrew Innes * INSTALL: Add note about expected error messages when configure is run. * configure.bat: Simplify the generation of makefiles (don't need to generate various top-level targets that invoke make in other directories). * gmake.defs (SHELLTYPE): New define. (SETLOADPATH): New define. * nmake.defs (SHELLTYPE): New define. * makefile.w32-in: Standardize indentation somewhat. Add bootstrap support. Pass $(MFLAGS) when invoking make recursively. Add shell-specific variants of top-level targets that invoke make recursively in other directories, and add necessary computed dependencies. 2000-09-03 Andrew Innes * makefile.w32-in: Change to DOS line endings. * configure.bat: Change to DOS line endings. * addsection.c (_ANONYMOUS_UNION) [__GNUC__]: New define. (_ANONYMOUS_STRUCT) [__GNUC__]: New define. * preprep.c (_ANONYMOUS_UNION) [__GNUC__]: New define. (_ANONYMOUS_STRUCT) [__GNUC__]: New define. * gmake.defs (CFLAGS): No need for -D_ANONYMOUS_UNION -D_ANONYMOUS_STRUCT on compile line. (EMACS_EXTRA_C_FLAGS): No need for -DORDINARY_LINK. (ARCH_CFLAGS): Change optimization flags to -O2. (FOREACH, FORVAR, FORDO, ENDFOR): New definitions. (ARGQUOTE, DQUOTE): New defines. * nmake.defs (CFLAGS): No need for -D_ANONYMOUS_UNION -D_ANONYMOUS_STRUCT on compile line. (FOREACH, FORVAR, FORDO, ENDFOR): New definitions. (ARGQUOTE, DQUOTE): New defines. 2000-08-22 Andrew Innes * configure.bat: New file. * gmake.defs: New file. * nmake.defs: New file. * makefile.w32-in: New file. * INSTALL: Rewrite to match new configure process. * config.nt [WINDOWSNT]: Don't declare getenv. (EMACS_CONFIG_OPTIONS): Define according to compiler being used. * addpm.c (main): Accept /q to mean install based on addpm's location without asking. Remove reference to emacs.bat which is now obsolete. * addsection.c (PTR_TO_OFFSET): Cast ptr to unsigned char*. * paths.h: Use forward slash as directory separator in all path definitions. (PATH_DUMPLOADSEARCH): Revert to definition used on Unix. * preprep.c (PTR_TO_OFFSET): Cast ptr to unsigned char *. * runemacs.c: Remove WIN32 define. * inc/sys/file.h (F_OK, X_OK, W_OK, R_OK, D_OK): Define if D_OK is not defined. * inc/sys/socket.h (_WINSOCK_H): Undefine if defined. (fd_set): Define to new name, after including winsock.h, so we can provide our own implementation. 2000-07-05 Andrew Innes * ebuild.bat: Add support for specifying make arguments. * makefile.nt: Add support for `bootstrap' and related targets. 2000-06-11 Jason Rumney * config.nt: Define POINTER_TYPE, PTR, PROTOTYPES and __P. 2000-02-06 Andrew Innes * inc/sys/time.h: Add inclusion protection. * makefile.def (SYS_LDFLAGS): Add -nologo. 1999-11-22 Andrew Innes * install.bat: Pass on command line arguments to make. * makefile.nt (fast_install): Bring commands up-to-date, and fix typo. 1999-11-21 Andrew Innes * makefile.nt (all): Build leim if present. (install): Install leim if present. (clean): Clean leim if present. * addpm.c (env_vars): Include leim in default EMACSLOADPATH definition. * emacs.bat.in (EMACSLOADPATH): Include leim. 1999-07-12 Richard Stallman * Version 20.4 released. 1999-06-16 Andrew Innes * emacs.rc: Use an icon with a transparent background, to be in keeping with other applications. 1999-06-03 Andrew Innes * preprep.c: Fix typo. 1999-05-02 Andrew Innes * config.h: Remove obsolete file. * preprep.c (copy_executable_and_move_sections): Ifdef out a couple of unused switch cases that aren't defined on all platforms. * ftime.bat: Add another variation of the profile command, which only profiles extended commands. 1999-03-31 Geoff Voelker * cmdproxy.c (main): Fix parens. 1999-03-25 Andrew Innes * cmdproxy.c (main): Call GetShortPathName to normalize program names for comparison. 1999-03-05 Geoff Voelker * makefile.def: Compile multiple .c files when possible. Use BLD instead of assuming i386. * makefile.nt: Remove common multiple file compilation commands. 1999-03-04 Geoff Voelker * cmdproxy.c (main): Add missing parens. 1999-02-20 Andrew Innes * preprep.c: New program to allow dumped image to be profiled. * makefile.nt (preprep): New target. (ALL): Build it. * makefile.def (ARCH_CFLAGS): Set struct packing to 8. * ftime.bat: Invoke preprep to prepare dumped image for profiling. Change prep options to profile libc functions and skip the startup code. 1999-02-15 Geoff Voelker * makefile.nt: Create installation directory as first step. 1999-01-31 Andrew Innes * addsection.c: (ROUND_UP_DST_AND_ZERO): Renamed from ROUND_UP_DST. Zeroes the alignment slop. (copy_executable_and_add_section): Update the SizeOfHeaders field properly. 1999-01-27 Andrew Innes * makefile.nt: Do make version comparison as strings. 1999-01-26 Andrew Innes * runemacs.c (WinMain): Pass explicit environment block to CreateProcess, to work around a bug in Windows 95/98. 1999-01-22 Geoff Voelker * icons: New directory with Davenport's icons. icons/sink.ico: Renamed from emacs.ico. * makefile.nt (install, fast_install): Install Windows icons into etc/icons. * emacs.rc (ICON): Use icons/gnu2a32.ico as the default icon. 1999-01-17 Andrew Innes * makefile.nt: (ALL): List top-level targets. (addsection): New top-level target. (install): Copy fns-*.el to bin directory. * addsection.c: New program to add static heap section to temacs.exe after linking, in support of new unexec method. 1998-12-28 Andrew Innes * cmdproxy.c (spawn): Pass directory for child as parameter. (main): Save startup directory to give to spawn, then change directory to location of .exe in order not to prevent startup directory from being deleted. 1998-12-08 Geoff Voelker * makefile.nt: Do string comparision of _NMAKE_VER. 1998-12-02 Geoff Voelker * config.nt (LOCALTIME_CACHE): Define. 1998-11-13 Andrew Innes * install.bat: Convert to DOS format. 1998-11-10 Andrew Innes * cmdproxy.c (main): Set environment size only when running command.com. 1998-11-03 Theodore Jump * makefile.def (SYS_LDFLAGS): Use swapfile when running from cd or net. (DEL_TREE): Use rd instead of rmdir. (ARCH_CFLAGS): Optimize for P6. Align structures on 8-byte boundaries. * makefile.nt: Compile multiple source files when possible. 1998-10-05 Geoff Voelker * cmdproxy.c (main): Treat command line options as case-insensitive. 1998-08-19 Richard Stallman * Version 20.3 released. 1998-07-20 Geoff Voelker * addpm.c (main): Explicitly check result of message box for OK. 1998-06-05 Andrew Innes * inc/sys/file.h (D_OK): Define new macro. 1998-06-01 Andrew Innes * makefile.def (CFLAGS): Do not define HAVE_NTGUI. 1998-05-30 Geoff Voelker * emacs.rc (VS_VERSION_INFO): Define. 1998-04-23 Geoff Voelker * makefile.nt (emacs.bat, debug.bat): Create them in the installation directory. 1998-04-23 Andrew Innes * ddeclient.c: New file. (Support program for performing limited interprocess communication on Windows.) * makefile.nt: Build ddeclient. * cmdproxy.c (main): Only set environment size for real shell, and provide extra directory argument, when running on Windows 95. 1998-04-17 Geoff Voelker * cmdproxy.c (fail): Exit with a negative return value. (spawn): Return subprocess return code as an argument. Explicitly copy environment block. (main): Update to use return value argument with spawn. Retry if spawn failed when a subshell was not tried. * config.nt: Include new macros from src/config.in. (GNU_MALLOC, REL_ALLOC): Define. (RE_TRANSLATE_TYPE): Use Lisp_Object as type. (RE_TRANSLATE): Use char_table_translate. * makefile.def (CP_DIR): Preserve attributes. * makefile.nt (clean): Delete patch generated files, optimized build directory. 1997-10-01 Geoff Voelker * addpm.c (env_vars): Fix misplaced % in SHELL entry. 1997-09-19 Richard Stallman * Version 20.2 released. 1997-09-15 Richard Stallman * Version 20.1 released. 1997-09-11 Geoff Voelker * debug.bat.in: New file. * makefile.nt (debug.bat): New target. 1997-09-02 Andrew Innes * addpm.c (env_vars): Put site-lisp before lisp in EMACSLOADPATH. Quote group name. Allow different icons to be specified. * cmdproxy.c (get_env_size): New function. (spawn): Explicitly pass in environment when creating subprocess. (main): Cleaup error messages. Specify dynamically sized environment block for real shell. Pass on unhandled switches to real shell. Quote program name. * makefile.def (CFLAGS_COMMON): Place pdb file in object build directory. (CFLAGS) [!MSVCNT11]: Define _CRTAPI1. * runemacs.c (WinMain): Allow Emacs process to be started with high or low priority. * emacs.bat.in: Remove OS dependent operations. 1997-09-02 Geoff Voelker * addpm.c (env_vars): No longer set INFOPATH. * cmdproxy.c (get_next_token): Null terminate token returned. * emacs.bat.in (INFOPATH): No longer set INFOPATH. 1997-08-10 Andrew Innes * addpm.c (env_vars): Set SHELL to cmdproxy. (main): Initialize idDde to 0. Determine emacs_path from module file name. Prompt for install. * makefile.def (MSVCNT11): Conditionally define it. (BASE_LIBS): Do not use oldnames.lib. (SYS_LDFLAGS): Use pdb files. (CFLAGS_COMMON) [!spd]: Define EMACSDEBUG. (ARCH_CFLAGS) [i386 && spd]: Use space optimizations. (ARCH_CFLAGS) [alpha && spd]: Use optimizations. * makefile.nt (ALL): Build cmdproxy. (cmdproxy): New target. (install): Install cmdproxy. * ftime.bat, debug.bat, cmdproxy.c: New files. 1997-07-10 Geoff Voelker * inc/sys/socket.h: (shutdown): Define. (sys_shutdown): Export. 1997-07-08 Richard Stallman * config.nt (RE_TRANSLATE): Copy definition from config.in. 1997-07-01 Geoff Voelker * config.nt: Update file comments. Update undefs added/removed in src/config.in. 1997-06-19 Geoff Voelker * makefil.def, emacs.bat: Use windows95 and windowsnt instead of win95 and winnt, respectively. 1997-01-04 Geoff Voelker * makefile.nt (real_install): Create site-lisp in installation dir. * addpm.c (env_vars): Add site-lisp to EMACSLOADPATH. * emacs.bat.in: Add site-lisp to EMACSLOADPATH. 1996-08-11 Richard Stallman * Version 19.33 released. 1996-08-09 Geoff Voelker * runemacs.c (WinMain): Put a space between the binary and its args. 1996-07-31 Richard Stallman * Version 19.32 released. 1996-07-16 Andrew Innes * makefile.nt (clean): Use OBJDIR macro. 1996-06-03 Kim F. Storm * runemacs.c (CHOOSE_NEWEST_EXE): New parameter macro. Not defined by default. (WinMain): Add conditional testing CHOOSE_NEWEST_EXE. (WinMain): Convert backslashes to slashes in env var values. * addpm.c (env_vars): Use slashes, not backslashes. 1996-05-25 Karl Heuer * Version 19.31 released. 1996-05-13 Andrew Innes * install.bat: Set BUILD_TYPE and INSTALL_DIR before calling make; undo settings afterwards. 1996-05-08 Andrew Innes * addpm.c (env_vars): Set SHELL registry entry to value of COMSPEC environment variable. 1996-05-03 Andrew Innes * install.bat: Allow for optimized build. * makefile.def [BUILD_TYPE]: Build optimized version in its own dir. (ARCH_CFLAGS) [BUILD_TYPE == spd]: Build optimized version. 1996-05-03 Andrew Innes * addpm.c (REG_ROOT): Don't use a trailing backslash. (env_vars): Rename field emacs_path to emacs_dir. (main): Add link to runemacs instead of emacs. * install.bat: Check if INSTALL_DIR is passed as an argument. * makefile.def (CONFIG_H) [WIN95]: Use config.nt. * makefile.nt: Build and install runemacs.exe. * runemacs.c: New file. * config.w95: File removed. * inc/netdb.h, inc/unistd.h, inc/arpa/inet.h, inc/netinet/in.h, inc/sys/socket.h, inc/sys/time.h: New header files. * inc/sys/file.h (F_OK, X_OK, W_OK, R_OK): New macros. 1996-03-27 Geoff Voelker * makefile.def (DEL): Defined. (DEL_TREE) [win95]: Defined. (SYS_LDFLAGS): Set executable versions to 3.10. * makefile.nt: Change uses of del to $(DEL). 1996-01-17 Erik Naggum * All files: Update FSF's address in comment preamble. 1996-01-03 George V. Reilly * emacs.ico: Now the proverbial kitchen sink icon. 1995-11-24 Richard Stallman * Version 19.30 released. 1995-11-22 Geoff Voelker * makefile.def (CP_DIR): Use platform independent switches for xcopy. * makefile.nt (install, fast_install, real_install, clean): Don't use switches to del not supported by Win95. 1995-11-07 Kevin Gallo * makefile.nt (addpm.exe): Link with $(ADVAPI32). (install, fast_install): Change same-dir test to create test file in installation tree and thereby support read-only shares. (clean): Remove .pdb files. * makefile.def (NTGUI): New macro. [NTGUI] (CFLAGS): Define HAVE_NTGUI. * config.nt, config.w95: Update to latest src/config.in. * addpm.c (env_vars): New variable. (add_registry): New procedure. (main): Use values of configuration environment variables from the registry if defined, the process environment otherwise. 1995-06-19 Richard Stallman * Version 19.29 released. * makefile.nt (addpm.exe): Change WinMainCRTStartup to mainCRTStartup. 1995-06-13 Geoff Voelker * makefile.nt: Define .c to .obj suffix rule. (addpm.obj): Compile directly, use CFLAGS. (addpm.exe): Link from addpm.obj. * makefile.def (MSVCNT11): Defined. (BASE_LIBS) [MSVCNT11]: Use oldnames.lib. (CFLAGS_COMMON): Defined. (CFLAGS) [MSVCNT11]: Define _CRTAPI1 to _cdecl. 1995-06-09 Geoff Voelker * emacs.bat.in: Renamed from emacs.bat (emacs_dir): Renamed from emacs_path Definition removed. * addpm.c: New file. * makefile.nt (ALL,addpm,addpm.exe,addpm.obj): Defined. (all): Depend upon $(BLD) and $(ALL). (install): Depend upon emacs.bat. Create program item for Emacs. (clean): Delete obj. (emacs.bat): Defined. * makefile.def (EMACS_ICON_PATH,ADDPM): Defined. 1995-05-27 Geoff Voelker * ebuild.bat, emacs.bat, fast-install.bat, install.bat: Add carriage returns; necessary for batch files on Win95. 1995-05-25 Geoff Voelker * config.w95: Created. * config.h: Changed to config.nt. * makefile.nt (SUBDIRS): Commented out. (all,install,clean): Expand for-loops. (BUILD_CMD,INSTALL_CMD,CLEAN_CMD): Defined. * makefile.def (SYS_LIB_DIR,SYS_INC_DIR): Undefined. (ARCH): New definition. (CPU,CONFIG_H,OS_TYPE): Defined. (INCLUDE,LIB): Checked if valid. (ntwin32.mak): Included. (AR,CC,LINK): New definition. (ADVAPI32,libc,BASE_LIBS): Defined. (SYS_LDFLAGS): New definition. Update comments and preprocessor conditionals. * emacs.bat (SHELL): Conditionally defined. (HOME): Conditionally defined. (emacs_path,HOME): Update comments. Turn off all echo. 1995-05-09 Geoff Voelker * _emacs, config.h, ebuild.bat, emacs.bat, emacs.rc, fast-install.bat, install.bat, makefile.def, makefile.nt, paths.h, inc/pwd.h, inc/sys/dir.h, inc/sys/file.h, inc/sys/ioctl.h, inc/sys/param.h: Removed carriage-returns. 1995-05-06 Geoff Voelker * makefile.def (CVTRES): Defined. * emacs.ico, emacs.rc: New files by Kevin Gallo. 1995-04-10 Geoff Voelker * src: Removed. * src\config.h, src\paths.h: Moved to parent dir, src removed. 1995-04-09 Geoff Voelker * makefile.def (INSTALL_DIR): Changed to generic directory. * emacs.bat: Added arguments when emacs.exe invoked. * ebuild.cmd, emacs.cmd, install.cmd: Changed extension to .bat. 1994-12-13 voelker * makefile.def (CC): In configuration section. (COMPAT_LIB): Defined. 1994-11-01 voelker * src/paths.h: New file. * src/config.h: New file. * inc/pwd.h: New file. * inc/sys/dir.h: New file. * inc/sys/file.h: New file. * inc/sys/ioctl.h: New file. * inc/sys/param.h: New file. * todo: New file. * readme: New file. * makefile.nt: New file. * makefile.def: New file. * install.cmd: New file. * install: New file. * fast-install.cmd: New file. * emacs.cmd: New file. * ebuild.cmd: New file. * _emacs: New file. ;; Local Variables: ;; coding: iso-2022-7bit ;; End: Copyright (C) 1995, 1996, 1997, 1998, 1999, 2001 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted provided the copyright notice and this notice are preserved.