summaryrefslogtreecommitdiff
path: root/nt
diff options
context:
space:
mode:
authorDave Love <fx@gnu.org>1999-10-03 15:56:58 +0000
committerDave Love <fx@gnu.org>1999-10-03 15:56:58 +0000
commita4a9692da15ec1531a5075b671b62ebf1f2b9d92 (patch)
tree13d2395598273a1e6667211e29c6d286480d65b6 /nt
parentd7f3b2023f6105f04e90791ee19efd5a872ce33a (diff)
downloademacs-a4a9692da15ec1531a5075b671b62ebf1f2b9d92.tar.gz
#
Diffstat (limited to 'nt')
-rw-r--r--nt/ChangeLog512
-rw-r--r--nt/INSTALL165
-rw-r--r--nt/README61
-rw-r--r--nt/TODO28
-rw-r--r--nt/icons/emacs.icobin0 -> 766 bytes
-rw-r--r--nt/icons/gnu2a32.icobin0 -> 2238 bytes
-rw-r--r--nt/icons/gnu2a32t.icobin0 -> 2238 bytes
-rw-r--r--nt/icons/gnu2b48.icobin0 -> 3774 bytes
-rw-r--r--nt/icons/gnu2b48t.icobin0 -> 3774 bytes
-rw-r--r--nt/icons/gnu3b32.icobin0 -> 2238 bytes
-rw-r--r--nt/icons/gnu3b32t.icobin0 -> 2238 bytes
-rw-r--r--nt/icons/gnu4g48.icobin0 -> 3774 bytes
-rw-r--r--nt/icons/gnu4g48t.icobin0 -> 3774 bytes
-rw-r--r--nt/icons/gnu5w32.icobin0 -> 2238 bytes
-rw-r--r--nt/icons/gnu5w32t.icobin0 -> 2238 bytes
-rw-r--r--nt/icons/gnu6w48.icobin0 -> 3774 bytes
-rw-r--r--nt/icons/gnu6w48t.icobin0 -> 3774 bytes
-rw-r--r--nt/icons/gnu7.icobin0 -> 766 bytes
-rw-r--r--nt/icons/gnu8.icobin0 -> 766 bytes
-rw-r--r--nt/icons/gnu9.icobin0 -> 766 bytes
-rw-r--r--nt/icons/sink.icobin0 -> 766 bytes
21 files changed, 766 insertions, 0 deletions
diff --git a/nt/ChangeLog b/nt/ChangeLog
new file mode 100644
index 00000000000..f15c84d48dd
--- /dev/null
+++ b/nt/ChangeLog
@@ -0,0 +1,512 @@
+1999-07-12 Richard Stallman <rms@gnu.org>
+
+ * Version 20.4 released.
+
+1999-06-16 Andrew Innes <andrewi@gnu.org>
+
+ * emacs.rc: Use an icon with a transparent background, to be in
+ keeping with other applications.
+
+1999-06-03 Andrew Innes <andrewi@gnu.org>
+
+ * preprep.c: Fix typo.
+
+1999-05-02 Andrew Innes <andrewi@gnu.org>
+
+ * 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 <voelker@cs.washington.edu>
+
+ * cmdproxy.c (main): Fix parens.
+
+1999-03-25 Andrew Innes <andrewi@gnu.org>
+
+ * cmdproxy.c (main): Call GetShortPathName to normalize program
+ names for comparison.
+
+1999-03-05 Geoff Voelker <voelker@cs.washington.edu>
+
+ * 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 <voelker@cs.washington.edu>
+
+ * cmdproxy.c (main): Add missing parens.
+
+1999-02-20 Andrew Innes <andrewi@gnu.org>
+
+ * 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 <voelker@cs.washington.edu>
+
+ * makefile.nt: Create installation directory as first step.
+
+1999-01-31 Andrew Innes <andrewi@gnu.org>
+
+ * 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 <andrewi@gnu.org>
+
+ * makefile.nt: Do make version comparison as strings.
+
+1999-01-26 Andrew Innes <andrewi@harlequin.co.uk>
+
+ * runemacs.c (WinMain): Pass explicit environment block to
+ CreateProcess, to work around a bug in Windows 95/98.
+
+1999-01-22 Geoff Voelker <voelker@cs.washington.edu>
+
+ * 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 <andrewi@gnu.org>
+
+ * 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 <andrewi@delysid.gnu.org>
+
+ * 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 <voelker@cs.washington.edu>
+
+ * makefile.nt: Do string comparision of _NMAKE_VER.
+
+1998-12-02 Geoff Voelker <voelker@cs.washington.edu>
+
+ * config.nt (LOCALTIME_CACHE): Define.
+
+1998-11-13 Andrew Innes <andrewi@delysid.gnu.org>
+
+ * install.bat: Convert to DOS format.
+
+1998-11-10 Andrew Innes <andrewi@harlequin.co.uk>
+
+ * cmdproxy.c (main): Set environment size only when running
+ command.com.
+
+1998-11-03 Theodore Jump <tjump@tertius.com>
+
+ * 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 <voelker@cs.washington.edu>
+
+ * cmdproxy.c (main): Treat command line options as case-insensitive.
+
+1998-08-19 Richard Stallman <rms@psilocin.ai.mit.edu>
+
+ * Version 20.3 released.
+
+1998-07-20 Geoff Voelker <voelker@cs.washington.edu>
+
+ * addpm.c (main): Explicitly check result of message box for OK.
+
+1998-06-05 Andrew Innes <andrewi@harlequin.co.uk>
+
+ * inc/sys/file.h (D_OK): Define new macro.
+
+1998-06-01 Andrew Innes <andrewi@mescaline.gnu.org>
+
+ * makefile.def (CFLAGS): Do not define HAVE_NTGUI.
+
+1998-05-30 Geoff Voelker <voelker@cs.washington.edu>
+
+ * emacs.rc (VS_VERSION_INFO): Define.
+
+1998-04-23 Geoff Voelker <voelker@cs.washington.edu>
+
+ * makefile.nt (emacs.bat, debug.bat): Create them in the
+ installation directory.
+
+1998-04-23 Andrew Innes <andrewi@harlequin.co.uk>
+
+ * 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 <voelker@cs.washington.edu>
+
+ * 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 <voelker@cs.washington.edu>
+
+ * addpm.c (env_vars): Fix misplaced % in SHELL entry.
+
+1997-09-19 Richard Stallman <rms@psilocin.gnu.ai.mit.edu>
+
+ * Version 20.2 released.
+
+1997-09-15 Richard Stallman <rms@psilocin.gnu.ai.mit.edu>
+
+ * Version 20.1 released.
+
+1997-09-11 Geoff Voelker <voelker@cs.washington.edu>
+
+ * debug.bat.in: New file.
+ * makefile.nt (debug.bat): New target.
+
+1997-09-02 Andrew Innes <andrewi@harlequin.co.uk>
+
+ * 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 <voelker@cs.washington.edu>
+
+ * 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 <andrewi@harlequin.co.uk>
+
+ * 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 <voelker@cs.washington.edu>
+
+ * inc/sys/socket.h: (shutdown): Define.
+ (sys_shutdown): Export.
+
+1997-07-08 Richard Stallman <rms@psilocin.gnu.ai.mit.edu>
+
+ * config.nt (RE_TRANSLATE): Copy definition from config.in.
+
+1997-07-01 Geoff Voelker <voelker@cs.washington.edu>
+
+ * config.nt: Update file comments.
+ Update undefs added/removed in src/config.in.
+
+1997-06-19 Geoff Voelker <voelker@cs.washington.edu>
+
+ * makefil.def, emacs.bat: Use windows95 and windowsnt instead
+ of win95 and winnt, respectively.
+
+1997-01-04 Geoff Voelker <voelker@cs.washington.edu>
+
+ * 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 <rms@psilocin.gnu.ai.mit.edu>
+
+ * Version 19.33 released.
+
+1996-08-09 Geoff Voelker <voelker@cs.washington.edu>
+
+ * runemacs.c (WinMain): Put a space between the binary and its args.
+
+1996-07-31 Richard Stallman <rms@psilocin.gnu.ai.mit.edu>
+
+ * Version 19.32 released.
+
+1996-07-16 Andrew Innes <andrewi@harlequin.co.uk>
+
+ * makefile.nt (clean): Use OBJDIR macro.
+
+1996-06-03 Kim F. Storm <kfs@olicom.dk>
+
+ * 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 <kwzh@gnu.ai.mit.edu>
+
+ * Version 19.31 released.
+
+1996-05-13 Andrew Innes <andrewi@harlequin.co.uk>
+
+ * install.bat: Set BUILD_TYPE and INSTALL_DIR before calling make;
+ undo settings afterwards.
+
+1996-05-08 Andrew Innes <andrewi@harlequin.co.uk>
+
+ * addpm.c (env_vars): Set SHELL registry entry to value of COMSPEC
+ environment variable.
+
+1996-05-03 Andrew Innes <andrewi@harlequin.co.uk>
+
+ * 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 <andrewi@harlequin.co.uk>
+
+ * 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 <voelker@cs.washington.edu>
+
+ * 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 <erik@naggum.no>
+
+ * All files: Update FSF's address in comment preamble.
+
+1996-01-03 George V. Reilly <georger@microcrafts.com>
+
+ * emacs.ico: Now the proverbial kitchen sink icon.
+
+1995-11-24 Richard Stallman <rms@mole.gnu.ai.mit.edu>
+
+ * Version 19.30 released.
+
+1995-11-22 Geoff Voelker <voelker@cs.washington.edu>
+
+ * 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 <kgallo@microsoft.com>
+
+ * 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 <rms@mole.gnu.ai.mit.edu>
+
+ * Version 19.29 released.
+
+ * makefile.nt (addpm.exe): Change WinMainCRTStartup to mainCRTStartup.
+
+1995-06-13 Geoff Voelker <voelker@cs.washington.edu>
+
+ * 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 <voelker@cs.washington.edu>
+
+ * 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 <voelker@cs.washington.edu>
+
+ * ebuild.bat, emacs.bat, fast-install.bat, install.bat:
+ Add carriage returns; necessary for batch files on Win95.
+
+1995-05-25 Geoff Voelker <voelker@cs.washington.edu>
+
+ * 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 <voelker@cs.washington.edu>
+
+ * _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 <voelker@cs.washington.edu>
+
+ * makefile.def (CVTRES): Defined.
+
+ * emacs.ico, emacs.rc: New files by Kevin Gallo.
+
+1995-04-10 Geoff Voelker <voelker@cs.washington.edu>
+
+ * src: Removed.
+
+ * src\config.h, src\paths.h: Moved to parent dir, src removed.
+
+1995-04-09 Geoff Voelker <voelker@cs.washington.edu>
+
+ * 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 <voelker@cs.washington.edu>
+
+ * makefile.def (CC): In configuration section.
+ (COMPAT_LIB): Defined.
+
+1994-11-01 voelker <voelker@cs.washington.edu>
+
+ * 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.
diff --git a/nt/INSTALL b/nt/INSTALL
new file mode 100644
index 00000000000..d21fd0c12b7
--- /dev/null
+++ b/nt/INSTALL
@@ -0,0 +1,165 @@
+ Building and Installing Emacs
+ on Windows NT and Windows 95
+
+You need a compiler package to build and install Emacs on NT or Win95.
+If you don't have one, precompiled versions are available in
+ftp://ftp.cs.washington.edu/pub/ntemacs/<version>.
+
+Configuring:
+
+(1) In previous versions, you needed to edit makefile.def
+ to reflect the compiler package that you are using. You should no
+ longer have to do this if you have defined the INCLUDE and LIB
+ environment variables, as is customary for use with Windows compilers.
+ (Unless you are using MSVCNT 1.1, in which case you will need
+ to set MSVCNT11 to be a non-zero value at the top of makefile.def.)
+
+(2) Choose the directory into which Emacs will be installed, and
+ edit makefile.def to define INSTALL_DIR to be this directory.
+ (Alternatively, if you have INSTALL_DIR set as an environment
+ variable, the build process will ignore the value in makefile.def
+ and use the value of the environment variable instead.) Note
+ that if it is not installed in the directory in which it is built,
+ the ~16 MB of lisp files will be copied into the installation directory.
+
+ Also, makefile.def is sometimes unpacked read-only; use
+
+ > attrib -r makefile.def
+
+ to make it writable.
+
+(3) You may need to edit nt/paths.h to specify some other device
+ instead of `C:'.
+
+Building:
+
+(4) The target to compile the sources is "all", and is recursive starting
+ one directory up. The makefiles for the NT port are in files named
+ "makefile.nt". To get things started, type in this directory:
+
+ > nmake -f makefile.nt all
+
+ or use the ebuild.bat file.
+
+ When the files are compiled, you will see some warning messages declaring
+ that some functions don't return a value, or that some data conversions
+ will be lossy, etc. You can safely ignore these messages. The warnings
+ may be fixed in the main FSF source at some point, but until then we
+ will just live with them.
+
+ NOTE: You should not have to edit src\paths.h to get Emacs to run
+ correctly. All of the variables in src\paths.h are configured
+ during start up using the nt\emacs.bat file (which gets installed
+ as bin\emacs.bat -- see below).
+
+Installing:
+
+(5) Currently, Emacs requires a number of environment variables to be set
+ for it to run correctly. A batch file, emacs.bat, is provided that
+ sets these variables appropriately and then runs the executable
+ (emacs.bat is generated using the definition of INSTALL_DIR in
+ nt\makefile.def and the contents of nt\emacs.bat.in).
+
+(6) The install process will install the files necessary to run Emacs in
+ INSTALL_DIR (which may be the directory in which it was built),
+ and create a program manager/folder icon in a folder called GNU Emacs.
+ From this directory, type:
+
+ > nmake -f makefile.nt install
+
+ or use the install.bat file.
+
+(7) Create the Emacs startup file. This file can be named either .emacs,
+ as on Unix, or _emacs. Note that Emacs requires the environment
+ variable HOME to be set in order for it to locate the startup file.
+ HOME could be set, for example, in the System panel of the Control
+ Panel on NT, or in autoexec.bat on Win95.
+
+(8) Start up Emacs.
+
+ The installation process should have run the addpm.exe program, which
+ does two things. First, it will create a set of registry keys that
+ tell Emacs where to find its support files (lisp, info, etc.).
+ Second, it will create a folder containing an icon linked to
+ runemacs.exe (a wrapper program for invoking Emacs). You can
+ also invoke addpm.exe by hand, giving the absolute directory name
+ of the installation directory as the first argument:
+
+ addpm.exe %INSTALL_DIR%
+
+ Now, to run Emacs, simply click on the icon in the newly created
+ folder or invoke runemacs.exe from a command prompt.
+
+ Another alternative for running Emacs is to use the emacs.bat batch
+ file in the bin directory (this was the traditional method of invoking
+ Emacs). Edit the emacs.bat file to change the emacs_dir environment
+ variable to point to the Emacs installation directory and invoke the
+ emacs.bat file to run Emacs.
+
+ Note that, on Win95, you are likely to get "Out of environment space"
+ messages when invoking the emacs.bat batch file. The problem is that
+ the console process in which the script is executed runs out of memory
+ in which to set the Emacs environment variables. To get around this
+ problem, create a shortcut icon to the emacs.bat script. Then right
+ click on the icon and select Properties. In the dialog box that pops
+ up, select the Memory tab and then change the Environment memory
+ allocation from "Auto" to "1024". Close the dialog box and then
+ double click on the icon to start Emacs.
+
+Debugging:
+
+(9) You should be able to debug Emacs using the MSVC debugger as you would
+ any other program. To ensure that Emacs uses the lisp files associated
+ with the source distribution that you are debugging, it is useful
+ to set the Emacs environment variables to point Emacs to the
+ source distribution. You can use the debug.bat batch file in this
+ directory to setup the environment and invoke msdev on the
+ emacs.exe executable.
+
+ Emacs functions implemented in C use a naming convention that
+ reflects their names in lisp. The names of the C routines are
+ the lisp names prefixed with 'F', and with dashes converted to
+ underscores. For example, the function call-process is implemented
+ in C by Fcall_process. Similarly, lisp variables are prefixed
+ with 'V', again with dashes converted to underscores. These
+ conventions enable you to easily set breakpoints or examine familiar
+ lisp variables by name.
+
+ Since Emacs data is often in the form of a lisp object, and the
+ Lisp_Object type is difficult to examine manually in the debugger,
+ Emacs provides a helper routine called debug_print that prints out
+ a readable representation of a Lisp_Object. The output from
+ debug_print is sent to stderr, and to the debugger via the
+ OutputDebugString routine. The output sent to stderr should be
+ displayed in the console window that was opened when the emacs.exe
+ executable was started. The output sent to the debugger should be
+ displayed in its "Debug" output window.
+
+ When you are in the process of debugging Emacs and you would like
+ to examine the contents of a Lisp_Object variable, popup the
+ QuickWatch window (QuickWatch has an eyeglass symbol on its button
+ in the toolbar). In the text field at the top of the window, enter
+ debug_print(<variable>) and hit return. For example, start
+ and run Emacs in the debugger until it is waiting for user input.
+ Then click on the Break button in the debugger to halt execution.
+ Emacs should halt in ZwUserGetMessage waiting for an input event.
+ Use the Call Stack window to select the procedure w32_msp_pump
+ up the call stack (see below for why you have to do this). Open
+ the QuickWatch window and enter debug_print(Vexec_path). Evaluating
+ this expression will then print out the contents of the lisp
+ variable exec-path.
+
+ If QuickWatch reports that the symbol is unknown, then check the
+ call stack in the Call Stack window. If the selected frame in the
+ call stack is not an Emacs procedure, then the debugger won't
+ recognize Emacs symbols. Instead, select a frame that is inside
+ an Emacs procedure and try using debug_print again.
+
+ If QuickWatch invokes debug_print but nothing happens, then check
+ the thread that is selected in the debugger. If the selected
+ thread is not the last thread to run (the "current" thread), then
+ it cannot be used to execute debug_print. Use the Debug menu
+ to select the current thread and try using debug_print again.
+ Note that the debugger halts execution (e.g., due to a breakpoint)
+ in the context of the current thread, so this should only be a problem
+ if you've explicitly switched threads.
diff --git a/nt/README b/nt/README
new file mode 100644
index 00000000000..816a8a2d495
--- /dev/null
+++ b/nt/README
@@ -0,0 +1,61 @@
+ Emacs for Windows NT and Windows 95
+
+This directory contains support for compiling and running GNU Emacs on
+Windows NT and Windows 95. This port supports all of the major
+functionality of the Unix version, including subprocesses, windowing
+features (fonts, colors, scroll bars, multiple frames, etc.), and
+networking support.
+
+Precompiled distributions are also available; ftp to
+
+ ftp://ftp.cs.washington.edu/pub/ntemacs/latest
+
+for the latest precompiled distributions.
+
+* Preliminaries
+
+To compile Emacs, you will need a Microsoft C compiler package. For
+NT, this can be any of the SDK compilers from NT 3.1 and up, Microsoft
+Visual C++ for NT (versions 1.0 and up), or Microsoft Visual C++
+(versions 2.0 and up). For Windows 95, this can be Microsoft Visual
+C++ versions 2.0 and up.
+
+* Building and installing
+
+See the INSTALL file in this directory for detailed instructions on
+building and installing Emacs on your system.
+
+* Further information
+
+If you have access to the World Wide Web, I would recommend pointing
+your favorite web browser to the document (if you haven't already):
+
+ http://www.cs.washington.edu/homes/voelker/ntemacs.html
+
+This web document serves as a FAQ and a source for further information
+about the port and related software packages.
+
+There is also a mailing list for discussing issues related to this
+port of Emacs. For information about the list, send a message to
+ntemacs-users-request@cs.washington.edu with the word "info" in the
+*body* of the message. To subscribe to the list, send a message to
+the same address with the word "subscribe" in the body of the message;
+similarly, to unsubscribe from the list, send a message with the word
+"unsubscribe" in the message body.
+
+You are also always welcome to send me mail directly. If you don't
+hear from me immediately, however, don't worry; it sometimes takes me
+a few days (or longer) to get to all of my mail regarding Emacs.
+
+* Reporting bugs
+
+If you encounter bugs in this port of Emacs, first check the FAQ on
+the web page above to see if the bug is already known and if there are
+any workarounds. If not, then I would like to hear about it; either
+send a bug report to the mailing list, or to me directly (I would
+recommend sending to the list first).
+
+Enjoy.
+
+-geoff
+(voelker@cs.washington.edu)
diff --git a/nt/TODO b/nt/TODO
new file mode 100644
index 00000000000..8cf30f81ea3
--- /dev/null
+++ b/nt/TODO
@@ -0,0 +1,28 @@
+
+This is a list of known problems to date with the Windows NT/95 port of
+GNU Emacs.
+
+* Handle wildcards in ls-lisp (e.g., C-x d *.c).
+
+* Interactive subprocess output is buffered in jerky
+
+* Presently, C:\foo\bar and C:/foo/bar bring up two buffers on the same file.
+ Solve this by adding a switch that canonicalizes path separators
+ (e.g., make them all / or all \)?
+
+* call-process-region: Another tricky situation with binary and text modes.
+ An example by dsrosing@reston.ingr.com: use crypt++ to load compressed
+ data into a buffer, edit the buffer, save the data back out. (Also
+ need to propagate the "/C" switch change sent the shell in crypt++.el
+ back to the author.)
+
+* Dired uses ls-lisp, which reports all files as being owned by the
+ current user. Need to dig through the security descriptor to extract
+ the owner of the file (and the group?) using LookupAccountSid.
+
+* Integrate the build for NT into the GNU config process once
+ a decent shell becomes freely available
+
+* Integrate networking.
+
+* Fix Win95 subprocesses.
diff --git a/nt/icons/emacs.ico b/nt/icons/emacs.ico
new file mode 100644
index 00000000000..39a6a6a7c84
--- /dev/null
+++ b/nt/icons/emacs.ico
Binary files differ
diff --git a/nt/icons/gnu2a32.ico b/nt/icons/gnu2a32.ico
new file mode 100644
index 00000000000..c653ba9049b
--- /dev/null
+++ b/nt/icons/gnu2a32.ico
Binary files differ
diff --git a/nt/icons/gnu2a32t.ico b/nt/icons/gnu2a32t.ico
new file mode 100644
index 00000000000..3b32e3a15db
--- /dev/null
+++ b/nt/icons/gnu2a32t.ico
Binary files differ
diff --git a/nt/icons/gnu2b48.ico b/nt/icons/gnu2b48.ico
new file mode 100644
index 00000000000..4c2c1d9e71c
--- /dev/null
+++ b/nt/icons/gnu2b48.ico
Binary files differ
diff --git a/nt/icons/gnu2b48t.ico b/nt/icons/gnu2b48t.ico
new file mode 100644
index 00000000000..3154c47966d
--- /dev/null
+++ b/nt/icons/gnu2b48t.ico
Binary files differ
diff --git a/nt/icons/gnu3b32.ico b/nt/icons/gnu3b32.ico
new file mode 100644
index 00000000000..eb49656fa69
--- /dev/null
+++ b/nt/icons/gnu3b32.ico
Binary files differ
diff --git a/nt/icons/gnu3b32t.ico b/nt/icons/gnu3b32t.ico
new file mode 100644
index 00000000000..24ac5593bf3
--- /dev/null
+++ b/nt/icons/gnu3b32t.ico
Binary files differ
diff --git a/nt/icons/gnu4g48.ico b/nt/icons/gnu4g48.ico
new file mode 100644
index 00000000000..88fdab3111b
--- /dev/null
+++ b/nt/icons/gnu4g48.ico
Binary files differ
diff --git a/nt/icons/gnu4g48t.ico b/nt/icons/gnu4g48t.ico
new file mode 100644
index 00000000000..883b736a685
--- /dev/null
+++ b/nt/icons/gnu4g48t.ico
Binary files differ
diff --git a/nt/icons/gnu5w32.ico b/nt/icons/gnu5w32.ico
new file mode 100644
index 00000000000..ab9c039151f
--- /dev/null
+++ b/nt/icons/gnu5w32.ico
Binary files differ
diff --git a/nt/icons/gnu5w32t.ico b/nt/icons/gnu5w32t.ico
new file mode 100644
index 00000000000..cc25be86b85
--- /dev/null
+++ b/nt/icons/gnu5w32t.ico
Binary files differ
diff --git a/nt/icons/gnu6w48.ico b/nt/icons/gnu6w48.ico
new file mode 100644
index 00000000000..1c83c10ed96
--- /dev/null
+++ b/nt/icons/gnu6w48.ico
Binary files differ
diff --git a/nt/icons/gnu6w48t.ico b/nt/icons/gnu6w48t.ico
new file mode 100644
index 00000000000..a4228ee5f9d
--- /dev/null
+++ b/nt/icons/gnu6w48t.ico
Binary files differ
diff --git a/nt/icons/gnu7.ico b/nt/icons/gnu7.ico
new file mode 100644
index 00000000000..5a32b413bee
--- /dev/null
+++ b/nt/icons/gnu7.ico
Binary files differ
diff --git a/nt/icons/gnu8.ico b/nt/icons/gnu8.ico
new file mode 100644
index 00000000000..4583fc800f9
--- /dev/null
+++ b/nt/icons/gnu8.ico
Binary files differ
diff --git a/nt/icons/gnu9.ico b/nt/icons/gnu9.ico
new file mode 100644
index 00000000000..8c4830e24c0
--- /dev/null
+++ b/nt/icons/gnu9.ico
Binary files differ
diff --git a/nt/icons/sink.ico b/nt/icons/sink.ico
new file mode 100644
index 00000000000..d0804108af9
--- /dev/null
+++ b/nt/icons/sink.ico
Binary files differ