summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/emacs/ChangeLog20
-rw-r--r--doc/emacs/basic.texi4
-rw-r--r--doc/emacs/cmdargs.texi49
-rw-r--r--doc/emacs/display.texi2
-rw-r--r--doc/emacs/mini.texi2
-rw-r--r--doc/emacs/misc.texi2
-rw-r--r--doc/emacs/msdos-xtra.texi2
-rw-r--r--doc/emacs/msdos.texi2
-rw-r--r--doc/emacs/programs.texi4
-rw-r--r--doc/emacs/text.texi2
-rw-r--r--doc/lispref/ChangeLog4
-rw-r--r--doc/lispref/minibuf.texi2
-rw-r--r--doc/misc/ChangeLog10
-rw-r--r--doc/misc/efaq-w32.texi425
-rw-r--r--doc/misc/efaq.texi12
-rw-r--r--src/ChangeLog5
-rw-r--r--src/frame.h2
17 files changed, 293 insertions, 256 deletions
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog
index 13536406158..644281c76b7 100644
--- a/doc/emacs/ChangeLog
+++ b/doc/emacs/ChangeLog
@@ -1,3 +1,23 @@
+2015-03-18 Eli Zaretskii <eliz@gnu.org>
+
+ * misc.texi (Term Mode):
+ * programs.texi (Basic Indent, Custom C Indent):
+ * mini.texi (Minibuffer History):
+ * text.texi (Org Mode):
+ * display.texi (View Mode): Use @kbd where @key was mistakenly
+ used. (Bug#20135)
+
+2015-03-18 Eli Zaretskii <eliz@gnu.org>
+
+ * basic.texi (Moving Point): Improve indexing for HOME and END.
+
+ * cmdargs.texi (General Variables): Improve indexing for
+ environment variables.
+
+ * msdog.texi (Windows HOME):
+ * msdog-xtra.texi (MS-DOS File Names): Remove markup from HOME in
+ the index entries. (Bug#20105)
+
2015-02-26 Eli Zaretskii <eliz@gnu.org>
* msdog.texi (Windows Files): Document characters invalid in
diff --git a/doc/emacs/basic.texi b/doc/emacs/basic.texi
index 2594608e947..be45856a6dd 100644
--- a/doc/emacs/basic.texi
+++ b/doc/emacs/basic.texi
@@ -206,14 +206,14 @@ preserves position within the line, like @kbd{C-n}.
@item C-a
@itemx @key{Home}
@kindex C-a
-@kindex HOME
+@kindex HOME key
@findex move-beginning-of-line
Move to the beginning of the line (@code{move-beginning-of-line}).
@item C-e
@itemx @key{End}
@kindex C-e
-@kindex END
+@kindex END key
@findex move-end-of-line
Move to the end of the line (@code{move-end-of-line}).
diff --git a/doc/emacs/cmdargs.texi b/doc/emacs/cmdargs.texi
index 42c8e33d5c7..071cd68f906 100644
--- a/doc/emacs/cmdargs.texi
+++ b/doc/emacs/cmdargs.texi
@@ -442,22 +442,31 @@ special meanings in Emacs. Most of these variables are also used by
some other programs. Emacs does not require any of these environment
variables to be set, but it uses their values if they are set.
-@vtable @env
+@c This used to be @vtable, but that enters the variables alone into
+@c the Variable Index, which in some cases, like ``HOME'', might be
+@c confused with keys by that name, and other cases, like ``NAME'',
+@c might be confused with general-purpose phrases.
+@table @env
@item CDPATH
+@vindex CDPATH, environment variable
Used by the @code{cd} command to search for the directory you specify,
when you specify a relative directory name.
@item DBUS_SESSION_BUS_ADDRESS
+@vindex DBUS_SESSION_BUS_ADDRESS, environment variable
Used by D-Bus when Emacs is compiled with it. Usually, there is no
need to change it. Setting it to a dummy address, like
@samp{unix:path=/dev/null}, suppresses connections to the D-Bus session
bus as well as autolaunching the D-Bus session bus if not running yet.
@item EMACSDATA
+@vindex EMACSDATA, environment variable
Directory for the architecture-independent files that come with Emacs.
This is used to initialize the variable @code{data-directory}.
@item EMACSDOC
+#vindex EMACSDOC, environment variable
Directory for the documentation string file, which is used to
initialize the Lisp variable @code{doc-directory}.
@item EMACSLOADPATH
+#vindex EMACSLOADPATH, environment variable
A colon-separated list of directories@footnote{Here and below,
whenever we say ``colon-separated list of directories'', it pertains
to Unix and GNU/Linux systems. On MS-DOS and MS-Windows, the
@@ -471,23 +480,28 @@ the default @code{load-path}. To specify an empty element in the
middle of the list, use 2 colons in a row, as in
@samp{EMACSLOADPATH="/tmp::/foo"}.
@item EMACSPATH
+@vindex EMACSPATH, environment variable
A colon-separated list of directories to search for executable files.
If set, Emacs uses this in addition to @env{PATH} (see below) when
initializing the variable @code{exec-path} (@pxref{Shell}).
@item EMAIL
+@vindex EMAIL, environment variable
@vindex user-mail-address@r{, initialization}
Your email address; used to initialize the Lisp variable
@code{user-mail-address}, which the Emacs mail interface puts into the
@samp{From} header of outgoing messages (@pxref{Mail Headers}).
@item ESHELL
+@vindex ESHELL, environment variable
Used for shell-mode to override the @env{SHELL} environment variable
(@pxref{Interactive Shell}).
@item HISTFILE
+@vindex HISTFILE, environment variable
The name of the file that shell commands are saved in between logins.
This variable defaults to @file{~/.bash_history} if you use Bash, to
@file{~/.sh_history} if you use ksh, and to @file{~/.history}
otherwise.
@item HOME
+@vindex HOME, environment variable
The location of your files in the directory tree; used for
expansion of file names starting with a tilde (@file{~}). On MS-DOS,
it defaults to the directory from which Emacs was started, with
@@ -499,6 +513,7 @@ where @var{username} is your user name), though for backwards
compatibility @file{C:/} will be used instead if a @file{.emacs} file
is found there.
@item HOSTNAME
+@vindex HOSTNAME, environment variable
The name of the machine that Emacs is running on.
@c complete.el is obsolete since 24.1.
@ignore
@@ -507,15 +522,24 @@ A colon-separated list of directories. Used by the @code{complete} package
to search for files.
@end ignore
@item INFOPATH
+@vindex INFOPATH, environment variable
A colon-separated list of directories in which to search for Info files.
@item LC_ALL
+@vindex LC_ALL, environment variable
@itemx LC_COLLATE
+@vindex LC_COLLATE, environment variable
@itemx LC_CTYPE
+@vindex LC_CTYPE, environment variable
@itemx LC_MESSAGES
+@vindex LC_MESSAGES, environment variable
@itemx LC_MONETARY
+@vindex LC_MONETARY, environment variable
@itemx LC_NUMERIC
+@vindex LC_NUMERIC, environment variable
@itemx LC_TIME
+@vindex LC_TIME, environment variable
@itemx LANG
+@vindex LANG, environment variable
The user's preferred locale. The locale has six categories, specified
by the environment variables @env{LC_COLLATE} for sorting,
@env{LC_CTYPE} for character encoding, @env{LC_MESSAGES} for system
@@ -537,73 +561,92 @@ matched against entries in @code{locale-language-names},
@code{locale-preferred-coding-systems}, to select a default language
environment and coding system. @xref{Language Environments}.
@item LOGNAME
+@vindex LOGNAME, environment variable
The user's login name. See also @env{USER}.
@item MAIL
+@vindex MAIL, environment variable
The name of your system mail inbox.
@ifnottex
@item MH
+@vindex MH, environment variable
Name of setup file for the mh system. @xref{Top,,MH-E,mh-e, The Emacs
Interface to MH}.
@end ifnottex
@item NAME
+@vindex NAME, environment variable
Your real-world name. This is used to initialize the variable
@code{user-full-name} (@pxref{Mail Headers}).
@item NNTPSERVER
+@vindex NNTPSERVER, environment variable
The name of the news server. Used by the mh and Gnus packages.
@item ORGANIZATION
+@vindex ORGANIZATION, environment variable
The name of the organization to which you belong. Used for setting the
`Organization:' header in your posts from the Gnus package.
@item PATH
+@vindex PATH, environment variable
A colon-separated list of directories containing executable files.
This is used to initialize the variable @code{exec-path}
(@pxref{Shell}).
@item PWD
+@vindex PWD, environment variable
If set, this should be the default directory when Emacs was started.
@item REPLYTO
+@vindex REPLYTO, environment variable
If set, this specifies an initial value for the variable
@code{mail-default-reply-to} (@pxref{Mail Headers}).
@item SAVEDIR
+@vindex SAVEDIR, environment variable
The name of a directory in which news articles are saved by default.
Used by the Gnus package.
@item SHELL
+@vindex SHELL, environment variable
The name of an interpreter used to parse and execute programs run from
inside Emacs.
@item SMTPSERVER
+@vindex SMTPSERVER, environment variable
The name of the outgoing mail server. This is used to initialize the
variable @code{smtpmail-smtp-server} (@pxref{Mail Sending}).
@cindex background mode, on @command{xterm}
@item TERM
+@vindex TERM, environment variable
The type of the terminal that Emacs is using. This variable must be
set unless Emacs is run in batch mode. On MS-DOS, it defaults to
@samp{internal}, which specifies a built-in terminal emulation that
handles the machine's own display.
@item TERMCAP
+@vindex TERMCAP, environment variable
The name of the termcap library file describing how to program the
terminal specified by @env{TERM}. This defaults to
@file{/etc/termcap}.
@item TMPDIR
+@vindex TMPDIR, environment variable
@itemx TMP
+@vindex TMP, environment variable
@itemx TEMP
+@vindex TEMP, environment variable
These environment variables are used to initialize the variable
@code{temporary-file-directory}, which specifies a directory in which
to put temporary files (@pxref{Backup}). Emacs tries to use
@env{TMPDIR} first. If that is unset, Emacs normally falls back on
@file{/tmp}, but on MS-Windows and MS-DOS it instead falls back on
@env{TMP}, then @env{TEMP}, and finally @file{c:/temp}.
-
@item TZ
+@vindex TZ, environment variable
This specifies the current time zone and possibly also daylight
saving time information. On MS-DOS, if @env{TZ} is not set in the
environment when Emacs starts, Emacs defines a default value as
appropriate for the country code returned by DOS@. On MS-Windows, Emacs
does not use @env{TZ} at all.
@item USER
+@vindex USER, environment variable
The user's login name. See also @env{LOGNAME}. On MS-DOS, this
defaults to @samp{root}.
@item VERSION_CONTROL
+@vindex VERSION_CONTROL, environment variable
Used to initialize the @code{version-control} variable (@pxref{Backup
Names}).
-@end vtable
+@end table
@node Misc Variables
@appendixsubsec Miscellaneous Variables
diff --git a/doc/emacs/display.texi b/doc/emacs/display.texi
index 38acc20955e..083bb2e2170 100644
--- a/doc/emacs/display.texi
+++ b/doc/emacs/display.texi
@@ -441,7 +441,7 @@ it. @xref{Disabling}.
screenfuls. It provides commands for scrolling through the buffer
conveniently but not for changing it. Apart from the usual Emacs
cursor motion commands, you can type @key{SPC} to scroll forward one
-windowful, @key{S-@key{SPC}} or @key{DEL} to scroll backward, and @kbd{s} to
+windowful, @kbd{S-@key{SPC}} or @key{DEL} to scroll backward, and @kbd{s} to
start an incremental search.
@kindex q @r{(View mode)}
diff --git a/doc/emacs/mini.texi b/doc/emacs/mini.texi
index 2a86af3ec2f..f0bedf8854d 100644
--- a/doc/emacs/mini.texi
+++ b/doc/emacs/mini.texi
@@ -622,7 +622,7 @@ typed @kbd{M-p}), Emacs tries fetching from a list of default
arguments: values that you are likely to enter. You can think of this
as moving through the ``future history'' list.
- If you edit the text inserted by the @kbd{M-p} or @key{M-n}
+ If you edit the text inserted by the @kbd{M-p} or @kbd{M-n}
minibuffer history commands, this does not change its entry in the
history list. However, the edited argument does go at the end of the
history list when you submit it.
diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi
index e12fca7ebdd..46585ed52d7 100644
--- a/doc/emacs/misc.texi
+++ b/doc/emacs/misc.texi
@@ -1426,7 +1426,7 @@ char mode.
@table @kbd
@item C-c C-c
-Send a literal @key{C-c} to the sub-shell.
+Send a literal @kbd{C-c} to the sub-shell.
@item C-c @var{char}
This is equivalent to @kbd{C-x @var{char}} in normal Emacs. For
diff --git a/doc/emacs/msdos-xtra.texi b/doc/emacs/msdos-xtra.texi
index b0fa3e919d5..9996158f161 100644
--- a/doc/emacs/msdos-xtra.texi
+++ b/doc/emacs/msdos-xtra.texi
@@ -351,7 +351,7 @@ long file name support, set the environment variable @env{LFN} to
DOS programs to access long file names, so Emacs built for MS-DOS will
only see their short 8+3 aliases.
-@cindex @env{HOME} directory under MS-DOS
+@cindex HOME directory under MS-DOS
MS-DOS has no notion of home directory, so Emacs on MS-DOS pretends
that the directory where it is installed is the value of the @env{HOME}
environment variable. That is, if your Emacs binary,
diff --git a/doc/emacs/msdos.texi b/doc/emacs/msdos.texi
index 10e79236938..f1cdb26a0eb 100644
--- a/doc/emacs/msdos.texi
+++ b/doc/emacs/msdos.texi
@@ -425,7 +425,7 @@ names, which might cause misalignment of columns in Dired display.
@node Windows HOME
@section HOME and Startup Directories on MS-Windows
-@cindex @code{HOME} directory on MS-Windows
+@cindex HOME directory on MS-Windows
The Windows equivalent of @code{HOME} is the @dfn{user-specific
application data directory}. The actual location depends on the
diff --git a/doc/emacs/programs.texi b/doc/emacs/programs.texi
index 73aed087f45..b161a0cc63b 100644
--- a/doc/emacs/programs.texi
+++ b/doc/emacs/programs.texi
@@ -383,7 +383,7 @@ the preceding lines; if the region is active, @key{TAB} indents each
line within the region, not just the current line.
The command @key{RET} (@code{newline}), which was documented in
-@ref{Inserting Text}, does the same as @key{C-j} followed by
+@ref{Inserting Text}, does the same as @kbd{C-j} followed by
@key{TAB}: it inserts a new line, then adjusts the line's indentation.
When indenting a line that starts within a parenthetical grouping,
@@ -559,7 +559,7 @@ predefined styles, including @code{gnu}, @code{k&r}, @code{bsd},
styles are primarily intended for one language, but any of them can be
used with any of the languages supported by these modes. To find out
what a style looks like, select it and reindent some code, e.g., by
-typing @key{C-M-q} at the start of a function definition.
+typing @kbd{C-M-q} at the start of a function definition.
@kindex C-c . @r{(C mode)}
@findex c-set-style
diff --git a/doc/emacs/text.texi b/doc/emacs/text.texi
index 11b916ab044..9bc5ade81a2 100644
--- a/doc/emacs/text.texi
+++ b/doc/emacs/text.texi
@@ -1293,7 +1293,7 @@ executed.
@kindex S-TAB @r{(Org Mode)}
@findex org-shifttab
- Typing @key{S-TAB} (@code{org-shifttab}) anywhere in an Org mode
+ Typing @kbd{S-@key{TAB}} (@code{org-shifttab}) anywhere in an Org mode
buffer cycles the visibility of the entire outline structure, between
(i) showing only top-level heading lines, (ii) showing all heading
lines but no body lines, and (iii) showing everything.
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog
index 260656c6cf7..3644d40fabf 100644
--- a/doc/lispref/ChangeLog
+++ b/doc/lispref/ChangeLog
@@ -1,3 +1,7 @@
+2015-03-18 Eli Zaretskii <eliz@gnu.org>
+
+ * minibuf.texi (Basic Completion): Fix a typo. (Bug#20108)
+
2015-03-09 Nicolas Petton <nicolas@petton.fr>
* sequences.texi (seq-into): Add documentation for the new
diff --git a/doc/lispref/minibuf.texi b/doc/lispref/minibuf.texi
index 4fec757393f..24c7559c7d9 100644
--- a/doc/lispref/minibuf.texi
+++ b/doc/lispref/minibuf.texi
@@ -723,7 +723,7 @@ just one matching completion, and the match is exact, it returns
@code{t}. Otherwise, it returns the longest initial sequence common
to all possible matching completions.
-If @var{collection} is an list, the permissible completions are
+If @var{collection} is a list, the permissible completions are
specified by the elements of the list, each of which should be either
a string, or a cons cell whose @sc{car} is either a string or a symbol
(a symbol is converted to a string using @code{symbol-name}). If the
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog
index fc85bd97f73..62f565191dc 100644
--- a/doc/misc/ChangeLog
+++ b/doc/misc/ChangeLog
@@ -1,3 +1,11 @@
+2015-03-18 Eli Zaretskii <eliz@gnu.org>
+
+ * efaq-w32.texi: Remove outdated information and update.
+
+2015-03-18 Martin Rudalics <rudalics@gmx.at>
+
+ * efaq.texi (Fullscreen mode on MS-Windows): Fix description (Bug#20110).
+
2015-03-04 Michael Albinus <michael.albinus@gmx.de>
* tramp.texi (External methods) <adb>: Explain, when Tramp
@@ -12,7 +20,7 @@
* erc.texi (Advanced Usage, Options): Add descriptions and examples
for erc-format-nick-function and erc-rename-buffers options.
- (Connecting): fix typo
+ (Connecting): Fix typo
2015-03-02 Daniel Colascione <dancol@dancol.org>
diff --git a/doc/misc/efaq-w32.texi b/doc/misc/efaq-w32.texi
index 9691a731123..d95fa7e4790 100644
--- a/doc/misc/efaq-w32.texi
+++ b/doc/misc/efaq-w32.texi
@@ -128,10 +128,12 @@ systems.
@cindex supported versions of Windows
Emacs @value{EMACSVER} is known to run on all versions of Windows from
-@c FIXME does it really still support Windows 98? Does it matter?
-Windows 98 and Windows NT 4.0 through to Windows 7. The Windows port is
-built using the Win32 API and supports most features of the X version,
-including variable width fonts, images and tooltips.
+Windows 98 and Windows NT 4.0 through to Windows 8.1. The Windows
+port is built using the Win32 API and supports most features of the X
+version, including variable width fonts, images and tooltips.
+
+Emacs on Windows can be compiled as either a 32-bit or a 64-bit
+executable, using the MinGW GCC compiler and development tools.
@node Other versions of Emacs
@section What other versions of Emacs run on Windows?
@@ -163,10 +165,12 @@ instructions (requires DJGPP).
@cindex where to get Emacs binaries
Pre-compiled versions are distributed from
@uref{http://ftpmirror.gnu.org/emacs/windows/, ftp.gnu.org mirrors}.
-Emacs binaries are distributed as zip files, digitally
-signed by the developer who built them. Generally most users will
-want the file @file{emacs-@value{EMACSVER}-bin-i386.zip}, which
-contains everything you need to get started.
+Emacs binaries are distributed as zip files, digitally signed by the
+developer who built them. Generally most users will want the file
+@file{emacs-@value{EMACSVER}-bin-i686-pc-mingw.zip} for the 32-bit
+build, and @file{emacs-@value{EMACSVER}-bin-x86_64-w64-mingw32.zip}
+for the 64-bit build. The zip archive contains everything you need to
+get started.
@cindex where to get sources
@cindex Emacs source code
@@ -187,17 +191,18 @@ development site.
@section How can I compile Emacs myself?
@cindex compiling Emacs
-To compile Emacs on Windows, you will need the MingW or Cygwin port of
-GCC with MingW make, or a Microsoft C compiler with nmake and the
-single threaded C runtime library. Recent versions of Microsoft
-Visual Studio no longer come with the single threaded C runtime
-library, which is required for certain POSIX compatibility, so MingW
-is usually the best choice. Image support requires external
-libraries, the headers and import libraries for which will need to be
-installed where your compiler can find them. You will also need ports
-of GNU @command{rm} and @command{cp}, as the Windows native
-equivalents are not consistent between versions. GNU texinfo will be
-required to build the manuals. @xref{Other useful ports}.
+To compile Emacs on Windows, you will need the MinGW port of GCC and
+Binutils, the MinGW runtime and development environment, and the MSYS
+suite of tools. For the details, see the file @file{nt/INSTALL} in
+the Emacs source distribution.
+
+Support for displaying images, as well as XML/HTML rendering and TLS
+networking requires external libraries, the headers and import
+libraries for which will need to be installed where your compiler can
+find them. Again, the details, including URLs of sites where you can
+download these libraries are in @file{nt/INSTALL}. @xref{Other useful
+ports}, for auxiliary tools you may wish to install and use in
+conjunction with Emacs.
After unpacking the source, or checking out of the repository, be sure
to read the instructions in @file{nt/README} and @file{nt/INSTALL}.
@@ -211,39 +216,25 @@ to read the instructions in @file{nt/README} and @file{nt/INSTALL}.
By default, Emacs is compiled with debugging on, and optimizations enabled.
The optimizations may interfere with some types of debugging; the debugger
may not show clearly where it is, or may not be able to inspect certain
-variables. If this is the case, reconfigure with @option{--no-opt}.
+variables. If this is the case, reconfigure with @kbd{CFLAGS='-O0 -g3'}
The file @file{etc/DEBUG} contains general debugging hints, as well as
-specific notes about debugging Emacs with both gdb and Microsoft debuggers.
-
-@menu
-* GDB::
-* Microsoft Developer Studio::
-@end menu
+specific notes about debugging Emacs.
-@node GDB
-@subsection GDB
-@cindex GDB, debugging Emacs with
@cindex debugging Emacs with GDB
-
GDB is the GNU debugger, which can be used to debug Emacs when it has
-been compiled with GCC. The best results will be obtained if you
-start gdb from the @file{src} directory as @samp{gdb oo/i386/emacs.exe}.
-This will load the init file @file{.gdbinit} in that directory, to
-define some extra commands for working with lisp while debugging, and
-set up breakpoints to catch abnormal aborts.
-
-@node Microsoft Developer Studio
-@subsection Microsoft Developer Studio
-@cindex MSVC++, debugging Emacs with
-@cindex DevStudio, debugging Emacs with
-@cindex debugging Emacs with MS DevStudio
-
-MS DevStudio can be used to debug Emacs when it has been compiled with
-a Microsoft compiler. To view lisp variables, you can call the
-function @code{debug_print} from the Quickwatch window. Some
-@uref{http://www.gnu.org/software/emacs/windows/ntemacs/discuss/debug.txt,
-old tips} are probably still valid.
+been compiled with MinGW GCC. The best results will be obtained if
+you start gdb from the @file{src} directory as @kbd{gdb ./emacs.exe}.
+This will load the init file @file{.gdbinit}@footnote{
+Latest versions of GDB might refuse to load the init file for security
+reasons, unless you customize GDB; alternatively, use an explicit
+@kbd{source ./gdbinit} command after entering GDB.
+} in that directory, to define some extra commands for working with
+lisp while debugging, and set up breakpoints to catch abnormal
+aborts.
+
+A Windows port of GDB can be found on MinGW download sites and on some
+others.
@c ------------------------------------------------------------
@node Installing Emacs
@@ -251,7 +242,7 @@ old tips} are probably still valid.
@menu
* Unpacking::
-* Installing::
+* Installing binaries::
* Image support::
* Init file::
* Location of init file::
@@ -279,24 +270,27 @@ old tips} are probably still valid.
The binary distributions are distributed as zip files, which are handled
natively by Windows XP and later. For earlier versions, there are many
tools that can handle the zip format, from InfoZip's command line unzip
-tool, to 7zip's multi-format graphical archive explorer. Although
+tool, to 7zip's multi-format graphical archive explorer. (Although
popular, WinZip has caused problems with line-ends in the past, and is not
-Free software, so we do not recommend it.
+Free software, so we do not recommend it.)
-Source distributions are distributed as gzipped tar files. 7zip and
-similar multi-format graphical tools can handle these, or you can get
-Windows ports of the command line gzip and tar tools from multiple sources.
+Source distributions are distributed as @file{.tar.gz} or
+@file{.tar.xz} files. 7zip and similar multi-format graphical tools
+can handle these, or you can get Windows ports of the command line
+gzip and tar tools from multiple sources, or use @command{bsdtar}.
@xref{Other useful ports}.
The command to unpack a source distribution from the command line is:
+
@example
tar xzf emacs-@value{EMACSVER}.tar.gz
@end example
If this does not work with the versions of tar and gzip that you have,
you may need to try a two step process:
+
@example
-gzip -dc emacs-@value{EMACSVER}.tar.gz | tar xvf -
+gzip -dc emacs-@value{EMACSVER}.tar.gz | tar xf -
@end example
You may see many messages from tar complaining about being unable to change
@@ -304,8 +298,21 @@ the modification time on directories, and from gzip complaining about a
broken pipe. These messages are usually harmless, caused by incomplete ports
that are not fully aware of the limitations of Windows.
-@node Installing
-@section How do I install Emacs after unpacking?
+And here's an example of using @command{bsdtar} (from the
+@samp{libarchive} package) to unpack a @file{.tar.xz} archive:
+
+@example
+bsdtar -xf emacs-@value{EMACSVER}.tar.xz
+@end example
+
+Expect @command{bsdtar} to unpack the whole distribution without any
+complaints.
+
+Once you unpack the source distribution, look in @file{nt/INSTALL}
+file for build instructions.
+
+@node Installing binaries
+@section How do I install Emacs after unpacking the binary zip?
@cindex installing Emacs
@pindex addpm
@cindex Start Menu, creating icons for Emacs
@@ -313,7 +320,8 @@ that are not fully aware of the limitations of Windows.
You can run Emacs without any extra steps, but if you want icons in your
Start Menu, or for Emacs to detect the image libraries that are already
installed on your system as part of GTK, then you should run the program
-@file{emacs-@value{EMACSVER}\bin\addpm.exe}.
+@file{addpm.exe}, which is usually installed into the same @file{bin}
+directory with @file{emacs.exe}.
@node Image support
@section How do I get image support?
@@ -323,6 +331,7 @@ installed on your system as part of GTK, then you should run the program
@cindex gif, installing image support in Emacs
@cindex tiff, installing image support in Emacs
@cindex xpm, installing image support in Emacs
+@cindex rsvg, installing image support in Emacs
@cindex toolbar, installing color icons in
@cindex color images, installing support for images in Emacs
@cindex monochrome images, getting color images in Emacs
@@ -330,12 +339,12 @@ installed on your system as part of GTK, then you should run the program
Emacs has built in support for XBM and PBM/PGM/PPM images. This is
sufficient to see the monochrome splash screen and tool-bar icons.
-Since 22.2, the official precompiled binaries for Windows have bundled
+Since v22.2, the official precompiled binaries for Windows have bundled
libXpm, which is required to display the color versions of those images.
-Emacs is compiled to recognize JPEG, PNG, GIF and TIFF images also,
-but displaying these image types require external DLLs which are not
-bundled with Emacs. @xref{Other useful ports}.
+Emacs is compiled to recognize JPEG, PNG, GIF, TIFF, and RSVG images
+also, but displaying these image types require external DLLs which are
+not bundled with Emacs. @xref{Other useful ports}.
@node Init file
@section What is my init file?
@@ -344,11 +353,11 @@ bundled with Emacs. @xref{Other useful ports}.
When Emacs starts up, it attempts to load and execute the contents of
a file commonly called @file{.emacs} (though it may have other names,
-@pxref{Installing Emacs,,Where do I put my init file?}) which contains any
-customizations you have made. You can manually add lisp code to your
-.emacs, or you can use the Customization interface accessible from the
-@emph{Options} menu. If the file does not exist, Emacs will start
-with the default settings.
+@pxref{Location of init file,,Where do I put my init file?}) which
+contains any customizations you have made. You can manually add lisp
+code to your .emacs, or you can use the Customization interface
+accessible from the @emph{Options} menu. If the file does not exist,
+Emacs will start with the default settings.
@node Location of init file
@section Where do I put my init file?
@@ -358,15 +367,15 @@ with the default settings.
@cindex init.el
@cindex registry, setting the HOME directory in
-On Windows, the .emacs file may be called _emacs for backward
-compatibility with DOS and FAT filesystems where filenames could not
-start with a dot. Some users prefer to continue using such a name,
-because Explorer cannot create a file with a name starting with a dot,
-even though the filesystem and most other programs can handle it.
-In Emacs 22 and later, the init file may also be called
-@file{.emacs.d/init.el}. Many of the other files that are created
-by lisp packages are now stored in the @file{.emacs.d} directory too,
-so this keeps all your Emacs related files in one place.
+On Windows, the @file{.emacs} file may be called @file{_emacs} for
+backward compatibility with DOS and FAT filesystems where filenames
+could not start with a dot. Some users prefer to continue using such
+a name due to historical problems various Windows tools had in the
+past with file names that begin with a dot. In Emacs 22 and later,
+the init file may also be called @file{.emacs.d/init.el}. Many of the
+other files that are created by lisp packages are now stored in the
+@file{.emacs.d} directory too, so this keeps all your Emacs related
+files in one place.
All the files mentioned above should go in your @env{HOME} directory.
The @env{HOME} directory is determined by following the steps below:
@@ -387,14 +396,14 @@ backward compatibility, as previous versions defaulted to @file{C:/}
if @env{HOME} was not set.
@item
Use the user's AppData directory, usually a directory called
-@file{Application Data} under the user's profile directory, the location
+@file{AppData} under the user's profile directory, the location
of which varies according to Windows version and whether the computer is
part of a domain.
@end enumerate
Within Emacs, @key{~} at the beginning of a file name is expanded to your
-@env{HOME} directory, so you can always find your .emacs file with
-@kbd{C-x C-f ~/.emacs}.
+@env{HOME} directory, so you can always find your @file{.emacs} file
+by typing the command @kbd{C-x C-f ~/.emacs}.
@node Troubleshooting init file
@section Troubleshooting init file problems
@@ -409,15 +418,16 @@ to. You can do this by evaluating the following expression in the
@file{*scratch*} buffer using @kbd{C-x C-e}:
@example
-(insert (getenv "HOME"))
+(getenv "HOME")
@end example
-Look carefully at what is printed and make sure the value is
-valid. For example, if the value has trailing whitespace, Emacs won't
-be able to find the directory. Also, be sure that the value isn't a
-relative drive letter (e.g., @file{d:} without a backslash); if it is,
-then @env{HOME} is going to be whatever the current directory on that
-drive is, which is likely not what you want to happen.
+Look carefully at what is printed in the echo area, and make sure the
+value is valid. For example, if the value has trailing whitespace,
+Emacs won't be able to find the directory. Also, be sure that the
+value isn't a relative drive letter (e.g., @file{d:} without a
+backslash or a forward slash after the colon); if it is, then
+@env{HOME} is going to be whatever the current directory on that drive
+is, which is likely not what you want to happen.
@node Associate files with Emacs
@section How do I associate files with Emacs?
@@ -488,9 +498,9 @@ Thanks to Jason Rumney and Sigbjorn Finne for these tips.
The location of the Desktop varies between different versions of
Windows, and in a corporate environment can be moved around by the
-network administrator. On NT derivatives, you can use the value of
-the @env{USERPROFILE} environment variable to find where the desktop
-might be:
+network administrator. On latest Windows versions, you can use the
+value of the @env{USERPROFILE} environment variable to find where the
+desktop might be:
@example
@kbd{C-x C-f $USERPROFILE/Desktop}
@@ -512,7 +522,7 @@ menu by default). Once you have a file from the Desktop inside Emacs,
@end menu
@node Focus follows mouse
-@subsection How do it make the active window follow the mouse?
+@subsection How do I make the active window follow the mouse?
@vindex focus-follows-mouse
@cindex point to focus
@cindex mouse over to focus
@@ -524,6 +534,11 @@ even though Windows has a click to focus policy by default (there is
software available to change that though). The latter can be used to
make Emacs use a focus-follow-mouse policy within its own frames.
+You can also change the Windows click-to-focus policy by changing
+settings in the Registry. The details vary according to your Windows
+version; look on the Internet for instructions to enable ``active
+window tracking'' for your version of Windows.
+
@node Swap CapsLock and Control
@subsection How do I swap CapsLock and Control?
@cindex scan codes, modifying
@@ -576,7 +591,7 @@ Date: 04 Dec 1996 14:36:21 -0600
Message-ID: <fawg21mm4hm.fsf@@mordor.rsn.hp.com>
Subject: Re: Re[2]: problem with caps/ctrl swap on NT 4.0
@end ignore
-@example
+@smallexample
It's a binary value that lets you map keystrokes in the low-level keyboard
drivers in NT. As a result you don't have to worry about applications
bypassing mappings that you've done at a higher level (i.e. it just works).
@@ -600,7 +615,7 @@ lock key will behave as caps-lock. To swap, you also need to map 0x3a to
This registry value is system wide, and can't be made user-specific. It
also only takes affect on reboot.
-@end example
+@end smallexample
@item
Ulfar Erlingsson has provided a registry file that sets the CapsLock key
to be a Control key and the Windows key to be an Alt key:
@@ -663,7 +678,8 @@ buffers etc. will instead act on the region. An inactive mark needs
to be reactivated to operate on it, unless @code{mark-even-if-inactive}
is set. Secondly, @code{transient-mark-mode} also highlights the
region when it is active, providing the same visual clue that you get
-in other programs.
+in other programs. This mode is turned on by default in latest
+versions of Emacs.
In addition to seeing the highlighting, new Emacs users often expect
editing commands to replace the region when it is active. This behavior
@@ -717,14 +733,16 @@ message as documented in Microsoft's API documentation.
@cindex delete Emacs directory
Emacs does not come with an uninstall program. No files are installed
-outside of the Emacs base directory, so deleting that directory is
-sufficient to clean away the files. If you ran @command{addpm},
-you'll need to delete the Start Menu group too. The registry entries
-inserted by @command{addpm} will not cause any problems if you leave
-them there, but for the sake of completeness, you can use @command{regedit}
-to remove the keys under @code{HKEY_LOCAL_MACHINE} orx
-@code{HKEY_CURRENT_USER}: @code{SOFTWARE\GNU\Emacs}, and the key
-@code{HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\emacs.exe} if it exists.
+outside of the directories you find in the binary zip archive, so
+deleting those directories is sufficient to clean away the files. If
+you ran @command{addpm}, you'll need to delete the Start Menu group
+too. The registry entries inserted by @command{addpm} will not cause
+any problems if you leave them there, but for the sake of
+completeness, you can use @command{regedit} to remove the keys under
+@code{HKEY_LOCAL_MACHINE} or @code{HKEY_CURRENT_USER}:
+@code{SOFTWARE\GNU\Emacs}, and the key
+@code{HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App
+Paths\emacs.exe} if it exists.
@node Does not run
@section When I run Emacs nothing happens
@@ -751,9 +769,10 @@ been truncated to CONTRIBU or CONTRI~1, your distribution has been
corrupted while unpacking and Emacs will not start.
@end enumerate
-If it is still not working, send mail to the list, describing what
-you've done, and what you are seeing. (The more information you send
-the more likely it is that you'll receive a helpful response..
+If it is still not working, send mail to the
+@email{help-gnu-emacs@@gnu.org} mailing list, describing what you've
+done, and what you are seeing. (The more information you send the more
+likely it is that you'll receive a helpful response.)
@node Virus
@section Does Emacs contain a virus?
@@ -880,7 +899,6 @@ The doc string contains a list of the system sounds you can use.
* Font names::
* Bold and italic::
* Multilingual fonts::
-* BDF fonts::
* Font menu::
* Line ends::
@end menu
@@ -910,9 +928,9 @@ an indication of whether the font is outline (.TTF, .ATM) or raster (.FON)
based when fonts are listed, which may let you differentiate between two
fonts with the same name and different technologies.
-From Emacs 23, the preferred font name format will be moving to the simpler
-and more flexible fontconfig format. XLFD names will continue to be
-supported for backward compatibility.
+Starting with Emacs 23, the preferred font name format will be moving
+to the simpler and more flexible fontconfig format. XLFD names will
+continue to be supported for backward compatibility.
@example
XLFD: -*-Courier New-normal-r-*-*-13-*-*-*-c-*-iso8859-1
@@ -959,6 +977,9 @@ and manually set the font for italic, bold and bold-italic as follows:
(set-face-font 'bold-italic "-*-Courier New-bold-i-*-*-11-*-*-*-c-*-iso8859-1")
@end example
+The @code{w32-enable-synthesized-fonts} variable is obsolete starting
+from Emacs 24.4, as Emacs no longer has this limitation.
+
@node Multilingual fonts
@section Multilingual font support
@cindex multilingual display, fonts
@@ -985,11 +1006,8 @@ require the BDF fonts from the GNU intlfonts package.
For many languages, native truetype fonts are sufficient, and in Emacs
23 the need for BDF fonts will disappear for almost all languages. At
-the time of writing, some Arabic characters in the HELLO file still do
-not display with native fonts, because they are pre-composed characters
-from MULE character sets rather than standard Unicode Arabic, but all
-other characters are able to be displayed with appropriate truetype or
-opentype fonts.
+the time of writing, all supported characters are able to be displayed
+with appropriate truetype or opentype fonts.
@node Non-latin display
@subsection How do I get Emacs to display non-latin characters?
@@ -1025,6 +1043,12 @@ new fontset with @code{create-fontset-from-ascii-font} or
chinese-big5-2:-*-MingLiU-normal-r-*-*-12-*-*-*-c-*-big5-*" t)
@end example
+Alternatively, you can augment the default fontset with information of
+which fonts to use for certain ranges of characters or for specific
+scripts/character sets. @xref{Modifying Fontsets,, Modifying
+Fontsets, emacs, The GNU Emacs Manual}, for details and some useful
+examples.
+
@node International fonts
@subsection Where can I find fonts for other languages?
@cindex language support, finding fonts
@@ -1037,10 +1061,10 @@ new fontset with @code{create-fontset-from-ascii-font} or
In addition to the wide range of fonts that come with the language
support packages of various components of Windows itself, GNU/Linux
distributions these days come with a number of Free truetype fonts
-that cover a wide range of languages. The GNU intlfonts source
-distribution contains BDF fonts covering all of the languages that can
-be displayed by Emacs 22, and can be downloaded from
-@uref{http://ftpmirror.gnu.org/intlfonts, ftp.gnu.org mirrors}.
+that cover a wide range of languages. The GNU Unifont project
+contains glyphs for most of the Unicode codespace, and can be
+downloaded from @uref{http://ftpmirror.gnu.org/unifont, ftp.gnu.org
+mirrors}.
@node Third-party multibyte
@subsection How do I use third party programs to display multibyte characters?
@@ -1058,12 +1082,6 @@ for that language, but the third party software is intercepting it
and using a different font behind the scenes).
@xref{Non-latin display}.
-In addition to defining a fontset with the expected font, you may also need
-to disable unicode output with:
-@example
-(setq w32-enable-unicode-output nil)
-@end example
-
@node Localized fonts
@subsection Can I use a font with a name in my language?
@cindex fonts, localized font names
@@ -1073,87 +1091,9 @@ Normally Emacs should initialize @code{locale-coding-system} appropriately
based on your locale, which will let Emacs use font names in your local
language successfully.
-@node BDF fonts
-@section How do I use bdf fonts with Emacs?
-@cindex BDF fonts, using
-@cindex GNU intlfonts, using
-@cindex intlfonts, using
-@vindex w32-bdf-filename-alist
-@vindex bdf-directory-alist
-@vindex font-encoding-alist
-@findex w32-find-bdf-fonts
-@findex set-frame-font
-
-To use bdf fonts with Emacs, you need to tell Emacs where the fonts
-are located, create fontsets for them, and then use them. We'll use
-the 16 dot international fonts from @uref{http://ftpmirror.gnu.org/intlfonts,
-ftp.gnu.org/gnu/intlfonts} as an
-example put together by Jason Rumney.
-
-Download @file{16dots.tar.gz} and unpack it; I'll assume that they are in
-@file{c:\intlfonts}. Then set @code{w32-bdf-filename-alist} to the list of
-fonts returned by using @code{w32-find-bdf-fonts} to enumerate all of
-the font files. It is a good idea to set the variable
-@code{bdf-directory-list} at the same time so @code{ps-print} knows where
-to find the fonts:
-@example
-(setq bdf-directory-list
- '("c:/intlfonts/Asian" "c:/intlfonts/Chinese"
- "c:/intlfonts/Chinese-X" "c:/intlfonts/Ethiopic"
- "c:/intlfonts/European" "c:/intlfonts/Japanese"
- "c:/intlfonts/Japanese-X" "c:/intlfonts/Korean-X"
- "c:/intlfonts/Misc/"))
-
-(setq w32-bdf-filename-alist (w32-find-bdf-fonts bdf-directory-list))
-@end example
-
-Then create fontsets for the BDF fonts:
-
-@example
-(create-fontset-from-fontset-spec
- "-*-fixed-medium-r-normal-*-16-*-*-*-c-*-fontset-bdf,
-japanese-jisx0208:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0208.1983-*,
-katakana-jisx0201:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0201*-*,
-latin-jisx0201:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0201*-*,
-japanese-jisx0208-1978:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0208.1978-*,
-thai-tis620:-misc-fixed-medium-r-normal--16-160-72-72-m-80-tis620.2529-1,
-lao:-misc-fixed-medium-r-normal--16-160-72-72-m-80-MuleLao-1,
-tibetan-1-column:-TibMdXA-fixed-medium-r-normal--16-160-72-72-m-80-MuleTibetan-1,
-ethiopic:-Admas-Ethiomx16f-Medium-R-Normal--16-150-100-100-M-160-Ethiopic-Unicode,
-tibetan:-TibMdXA-fixed-medium-r-normal--16-160-72-72-m-160-MuleTibetan-0")
-@end example
-
-Many of the international bdf fonts from gnu.org are type 0, and therefore
-need to be added to font-encoding-alist:
-
-@example
-;; Need to add some fonts to font-encoding-alist since the bdf fonts
-;; are type 0 not the default type 1.
-(setq font-encoding-alist
- (append '(("MuleTibetan-0" (tibetan . 0))
- ("GB2312" (chinese-gb2312 . 0))
- ("JISX0208" (japanese-jisx0208 . 0))
- ("JISX0212" (japanese-jisx0212 . 0))
- ("VISCII" (vietnamese-viscii-lower . 0))
- ("KSC5601" (korean-ksc5601 . 0))
- ("MuleArabic-0" (arabic-digit . 0))
- ("MuleArabic-1" (arabic-1-column . 0))
- ("MuleArabic-2" (arabic-2-column . 0))) font-encoding-alist))
-@end example
-
-You can now use the Emacs font menu (@pxref{Fonts and text
-translation,,How can I have Emacs use a font menu like on X?}) to
-select the @emph{bdf: 16-dot medium} fontset, or you can select it by
-setting the default font:
-
-@example
- (set-frame-font "fontset-bdf")
-@end example
-
-Try loading the file @file{etc/HELLO}, and you should be able to see the
-various international fonts displayed (except for Hindi, which is not
-included in the 16-dot font distribution).
-
+@c This feature disappeared in Emacs 23, but I'm keeping its
+@c description here, since I think it was a mistake to remove it, and
+@c resurrecting it doesn't sound too problematic.
@node Font menu
@section How can I have Emacs use a font menu like on X?
@cindex fonts, displaying a menu
@@ -1171,6 +1111,8 @@ Place the following in your init file:
* Add fonts to menu::
@end menu
+@c This variable still exists, but will have no effect until
+@c w32-use-w32-font-dialog support is resurrected, see above.
@node Add fonts to menu
@subsection How can I add my font to the font menu?
@cindex font menu, adding fonts
@@ -1204,7 +1146,6 @@ this collection of email messages} on the topic.
@menu
* Automatic line ends::
-* Line ends by filename::
* Line ends by file system::
@end menu
@@ -1220,19 +1161,6 @@ file in Unix (LF) mode with the Ctrl-M characters displayed as @samp{^M}.
It does this to be safe, as no data loss will occur if the file is really
binary and the Ctrl-M characters are significant.
-@node Line ends by filename
-@subsection CR/LF translation by file extension
-@cindex line ends, determining by filename
-@cindex binary files, determining by file name
-@vindex file-name-buffer-file-type-alist
-
-The variable @code{file-name-buffer-file-type-alist} holds a list of
-filename patterns and their associated type; binary or text. Files marked
-as binary will not have line-end detection performed on them, and instead
-will always be displayed as is. With auto-detection in recent versions of
-Emacs, this is seldom useful for existing files, but can still be used
-to influence the choice of line ends for newly created files.
-
@node Line ends by file system
@subsection CR/LF translation by file system
@cindex line ends, determining by filesystem
@@ -1260,8 +1188,9 @@ MS Windows, but this has still been insufficient to keep up with
changes in printing technology from text and postscript based printers
connected via ports that can be accessed directly, to graphical
printers that are only accessible via USB. For details, see
-@uref{http://www.emacswiki.org/cgi-bin/wiki/PrintingFromEmacs, Emacs
-Wiki}.
+@uref{http://www.emacswiki.org/emacs/PrintingFromEmacs, Emacs
+Wiki}, @uref{http://www.emacswiki.org/emacs/PrintWithWebBrowser}, and
+@uref{http://www.emacswiki.org/emacs/PrintFromWindowsExplorer}.
@c ------------------------------------------------------------
@node Sub-processes
@@ -1293,9 +1222,7 @@ Wiki}.
The quoting rules for native Windows shells and Cygwin shells have
some subtle differences. When Emacs spawns subprocesses, it tries to
determine whether the process is a Cygwin program and changes its
-quoting mechanism appropriately. See this
-@uref{http://www.gnu.org/software/emacs/windows/ntemacs/discuss/shell-quoting,
-previous discussion} for details.
+quoting mechanism appropriately.
@node Subprocess hang
@section Programs reading input hang
@@ -1357,9 +1284,11 @@ you can use @code{setbuf} and @code{setvbuf} to manipulate
the buffering semantics.
Some programs handle this by having an explicit flag to control their
-buffering behavior, typically @option{-i} for interactive. Other
-programs manage to detect that they are running under Emacs, by
-using @samp{getenv("emacs")} internally.
+buffering behavior, typically @option{-i} for interactive, or by a
+special environment variable. Other programs manage to detect that
+they are running under Emacs, by using @samp{getenv("emacs")}
+internally. Look in the program's documentation for the way around
+this issue.
@menu
* Perl script buffering::
@@ -1428,6 +1357,7 @@ this discussion} for more details.
@vindex explicit-shell-file-name
You can start an interactive shell in Emacs by typing @kbd{M-x shell}.
+By default, this will start the standard Windows shell @file{cmd.exe}.
Emacs uses the @env{SHELL} environment variable to determine which
program to use as the shell. To instruct Emacs to use a non-default
shell, you can either set this environment variable, or customize
@@ -1467,11 +1397,6 @@ default shell in Emacs, you can place the following in your init file:
(add-hook 'shell-mode-hook 'my-shell-setup)
@end example
-If you find that you are having trouble with Emacs tracking drive
-changes with bash, see Mike Fabian's
-@uref{http://www.gnu.org/software/emacs/windows/ntemacs/discuss/drive-tracking,
-note}.
-
WARNING: Some versions of bash set and use the environment variable
PID. For some as yet unknown reason, if @env{PID} is set and Emacs
passes it on to bash subshells, bash dies (Emacs can inherit the
@@ -1489,7 +1414,7 @@ continue to use bash as your subshell:
@cindex cygwin mount points, using within Emacs
The package
-@uref{http://www.emacswiki.org/cgi-bin/wiki/cygwin-mount.el,
+@uref{http://www.emacswiki.org/emacs/cygwin-mount.el,
cygwin-mount.el} teaches Emacs about Cygwin mount points.
@node Dired ls
@@ -1849,11 +1774,15 @@ your type (@code{flyspell}). Both packages depend on a copy of
@command{ispell} 3.2 or a compatible spell-checking program.
GNU Aspell is a popular choice these days, Windows installers are
available from the @uref{http://aspell.net/win32/, official site}.
+Another possibility is Hunspell, which is available from
+@uref{https://sourceforge.net/projects/ezwinports/files/?source=navbar,
+the ezwinports site}.
Once installed, you will need to configure @code{ispell-program-name}
-to tell ispell and flyspell to use @command{aspell} as a replacement for
-ispell. You can include the full path to the @file{aspell} binary, which
-means you do not need to add its installation directory to the @env{PATH}.
+to tell ispell and flyspell to use @command{aspell} or
+@command{hunspell} as a replacement for ispell. You can include the
+full path to the @file{aspell}/@file{hunspell} binary, which means you
+do not need to add its installation directory to the @env{PATH}.
@node Encryption
@section Emacs and encryption
@@ -1942,6 +1871,13 @@ of grep is to use @samp{findstr /n /r}.
@node Developing with Emacs
@chapter Developing with Emacs
+We recommend using the GNU Compiler Collection for developing C/C++
+code from Emacs. The MinGW development toolchain provides Windows
+ports of GCC and other compilers.
+
+The rest of this chapter describes other alternatives which you may
+need to use.
+
@menu
* MSVC::
* Borland C++ Builder::
@@ -1971,7 +1907,7 @@ tools to build your project.
Christopher Payne wrote a Visual Studio add-in that makes Emacs the
default text editor, this has now been taken over by Jeff Paquette.
-See the following two URLS for details:
+See the following two URLs for details:
@itemize
@item @uref{http://sourceforge.net/projects/visemacs/} for the latest version.
@item @uref{http://www.smathers.net/VisEmacs.htm} for notes on usage.
@@ -2178,6 +2114,7 @@ suggestions} for improving the interaction of perldb and Emacs.
@menu
* Cygwin::
* MinGW::
+* EZWinPorts::
* UWIN::
* GnuWin32::
* GTK::
@@ -2230,6 +2167,17 @@ filesystem mapping to appear more POSIX like to the scripts that it
runs. This is intended to complement the MinGW tools to make it easier
to port software to Windows.
+@node EZWinPorts
+@section EZWinPorts
+@cindex ezwinports
+
+The @uref{https://sourceforge.net/projects/ezwinports/, EZWinPorts
+project} provides many useful ports of recent versions of GNU and Unix
+software. This includes all the optional libraries used by Emacs
+(image libraries, libxml2, GnuTLS), RCS, Texinfo, a clone of
+@command{man} command, Grep, xz, bzip2, bsdtar, ID Utils, Findutils,
+Hunspell, Gawk, GNU Make, Groff, GDB.
+
@node UWIN
@section UWIN
@cindex uwin environment
@@ -2251,8 +2199,8 @@ is @command{ksh}, the Korn shell.
@uref{http://gnuwin32.sourceforge.net/}
GnuWin32 provides precompiled native Windows ports of a wide selection
-of Free software and libraries. Tools available here that are useful
-for Emacs include:
+of Free software and libraries. Unfortunately, the ports are
+outdated. Tools available here that are useful for Emacs include:
@itemize
@item Arc - used by @code{archive-mode} to edit .arc files.
@@ -2302,7 +2250,8 @@ Man pages for Emacs and other ported programs that you have can be
read using Emacs' built-in manual reader @code{woman}. This
requires no external programs, but if you do have a port of
@command{man}, there is also an Emacs wrapper @code{man} that
-which may be slightly faster.
+which may be slightly faster. A Windows version of @command{man} is
+available from the EZWinPorts site (@pxref{EZWinPorts}).
@c ------------------------------------------------------------
@node Further information
diff --git a/doc/misc/efaq.texi b/doc/misc/efaq.texi
index 84178277aab..cdf944041b6 100644
--- a/doc/misc/efaq.texi
+++ b/doc/misc/efaq.texi
@@ -2674,8 +2674,16 @@ variable in the environment.
@cindex Maximize frame
@cindex Fullscreen mode
-Use the function @code{w32-send-sys-command}. For example, you can
-put the following in your @file{.emacs} file:
+Beginning with Emacs 24.4 either run Emacs with the @samp{--maximized}
+command-line option or put the following form in your @file{.emacs}
+file:
+
+@lisp
+(add-hook 'emacs-startup-hook 'toggle-frame-maximized)
+@end lisp
+
+With older versions use the function @code{w32-send-sys-command}. For
+example, you can put the following in your @file{.emacs} file:
@lisp
(add-hook 'emacs-startup-hook
diff --git a/src/ChangeLog b/src/ChangeLog
index 1b1a9c59033..bdec3c9cde1 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2015-03-18 Glenn Morris <rgm@gnu.org>
+
+ * frame.h (x_set_bitmap_icon): Don't set the icon if icon-type is
+ nil/not present in the parameter alist. (Bug#19680)
+
2015-03-18 Stefan Monnier <monnier@iro.umontreal.ca>
* alloc.c (purecopy): Handle hash-tables.
diff --git a/src/frame.h b/src/frame.h
index ddbf93e98f5..d4dfd1c8f94 100644
--- a/src/frame.h
+++ b/src/frame.h
@@ -1425,7 +1425,7 @@ x_set_bitmap_icon (struct frame *f)
{
Lisp_Object obj = assq_no_quit (Qicon_type, f->param_alist);
- if (CONSP (obj))
+ if (CONSP (obj) && !NILP (XCDR (obj)))
x_bitmap_icon (f, XCDR (obj));
}