]> git.eshelyaron.com Git - emacs.git/commitdiff
Merge from origin/emacs-24
authorPaul Eggert <eggert@cs.ucla.edu>
Wed, 18 Mar 2015 18:45:36 +0000 (11:45 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Wed, 18 Mar 2015 18:45:36 +0000 (11:45 -0700)
1a941d6 Fix incorrect usage of @key in the User Manual  (Bug#20135)
14c47d3 doc/misc/efaq-w32.texi: Spell-check.
ac85901 doc/misc/efaq-w32.texi: Remove outdated information and update.
c43762d Fix description of fullscreen mode on MS-Windows (Bug#20110).
ea8cab3 doc/lispref/minibuf.texi (Basic Completion): Fix a typo.  (Bug#20108)
2fdec80 Improve indexing in Emacs manual  (Bug#20105)
cc11321 Fix --no-bitmap-icon

Conflicts:
doc/emacs/ChangeLog
doc/lispref/ChangeLog
doc/misc/ChangeLog
src/ChangeLog

13 files changed:
1  2 
doc/emacs/ChangeLog
doc/emacs/display.texi
doc/emacs/misc.texi
doc/emacs/msdos-xtra.texi
doc/emacs/msdos.texi
doc/emacs/programs.texi
doc/lispref/ChangeLog
doc/lispref/minibuf.texi
doc/misc/ChangeLog
doc/misc/efaq-w32.texi
doc/misc/efaq.texi
src/ChangeLog
src/frame.h

index 13536406158d7929d8069fefdf7b0deae3d27101,aba1e92bbfa54414ebf402f887a2a0a1887a313f..644281c76b77ca2ecd0ee07b0f504ec7d8dfba65
@@@ -1,4 -1,24 +1,24 @@@
 -2015-03-14  Eli Zaretskii  <eliz@gnu.org>
+ 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-01-31  Eli Zaretskii  <eliz@gnu.org>
++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
        Windows file names.  (Bug#19463)
Simple merge
Simple merge
index b0fa3e919d5d32ef2977f4e301b639f967d618df,0000000000000000000000000000000000000000..9996158f16186a93532b6dd2dc8e38b6df41d55b
mode 100644,000000..100644
--- /dev/null
@@@ -1,619 -1,0 +1,619 @@@
- @cindex @env{HOME} directory under MS-DOS
 +@c This is part of the Emacs manual.
 +@c Copyright (C) 2004-2015 Free Software Foundation, Inc.
 +@c See file emacs.texi for copying conditions.
 +@c
 +@c This file is included either in emacs-xtra.texi (when producing the
 +@c printed version) or in the main Emacs manual (for the on-line version).
 +@node MS-DOS
 +@section Emacs and MS-DOS
 +@cindex MS-DOS peculiarities
 +
 +  This section briefly describes the peculiarities of using Emacs on
 +the MS-DOS ``operating system''.
 +@iftex
 +Information about Emacs and Microsoft's current operating system
 +Windows is in the main Emacs manual
 +(@pxref{Microsoft Windows,,, emacs, the Emacs Manual}).
 +@end iftex
 +@ifnottex
 +Information about peculiarities common to MS-DOS and Microsoft's
 +current operating systems Windows is in
 +@ref{Microsoft Windows}.
 +@end ifnottex
 +
 +  If you build Emacs for MS-DOS, the binary will also run on Windows
 +3.X, Windows NT, Windows 9X/ME, Windows 2000/XP, or OS/2 as a DOS
 +application; all of this chapter applies for all of those systems, if
 +you use an Emacs that was built for MS-DOS.
 +
 +@iftex
 +  @xref{Text and Binary,,,emacs, the Emacs Manual}, for information
 +@end iftex
 +@ifnottex
 +  @xref{Text and Binary}, for information
 +@end ifnottex
 +about Emacs's special handling of text files under MS-DOS (and Windows).
 +
 +@menu
 +* Keyboard: MS-DOS Keyboard.   Keyboard conventions on MS-DOS.
 +* Mouse: MS-DOS Mouse.         Mouse conventions on MS-DOS.
 +* Display: MS-DOS Display.     Fonts, frames and display size on MS-DOS.
 +* Files: MS-DOS File Names.    File name conventions on MS-DOS.
 +* Printing: MS-DOS Printing.   Printing specifics on MS-DOS.
 +* I18N: MS-DOS and MULE.       Support for internationalization on MS-DOS.
 +* Processes: MS-DOS Processes. Running subprocesses on MS-DOS.
 +@end menu
 +
 +@node MS-DOS Keyboard
 +@subsection Keyboard Usage on MS-DOS
 +
 +@kindex DEL @r{(MS-DOS)}
 +@kindex BS @r{(MS-DOS)}
 +  The key that is called @key{DEL} in Emacs (because that's how it is
 +designated on most workstations) is known as @key{BS} (backspace) on a
 +PC@.  That is why the PC-specific terminal initialization remaps the
 +@key{BS} key to act as @key{DEL}; the @key{Delete} key is remapped to act
 +as @kbd{C-d} for the same reasons.
 +
 +@kindex C-g @r{(MS-DOS)}
 +@kindex C-Break @r{(MS-DOS)}
 +@cindex quitting on MS-DOS
 +  Emacs built for MS-DOS recognizes @kbd{C-@key{Break}} as a quit
 +character, just like @kbd{C-g}.  This is because Emacs cannot detect
 +that you have typed @kbd{C-g} until it is ready for more input.  As a
 +consequence, you cannot use @kbd{C-g} to stop a running command
 +@iftex
 +(@pxref{Quitting,,,emacs, the Emacs Manual}).
 +@end iftex
 +@ifnottex
 +(@pxref{Quitting}).
 +@end ifnottex
 +By contrast, @kbd{C-@key{Break}} @emph{is} detected as soon as you
 +type it (as @kbd{C-g} is on other systems), so it can be used to stop
 +a running command and for emergency escape
 +@iftex
 +(@pxref{Emergency Escape,,,emacs, the Emacs Manual}).
 +@end iftex
 +@ifnottex
 +(@pxref{Emergency Escape}).
 +@end ifnottex
 +
 +@cindex Meta (under MS-DOS)
 +@cindex Hyper (under MS-DOS)
 +@cindex Super (under MS-DOS)
 +@vindex dos-super-key
 +@vindex dos-hyper-key
 +  The PC keyboard maps use the left @key{Alt} key as the @key{META} key.
 +You have two choices for emulating the @key{SUPER} and @key{HYPER} keys:
 +choose either the right @key{Ctrl} key or the right @key{Alt} key by
 +setting the variables @code{dos-hyper-key} and @code{dos-super-key} to 1
 +or 2 respectively.  If neither @code{dos-super-key} nor
 +@code{dos-hyper-key} is 1, then by default the right @key{Alt} key is
 +also mapped to the @key{META} key.  However, if the MS-DOS international
 +keyboard support program @file{KEYB.COM} is installed, Emacs will
 +@emph{not} map the right @key{Alt} to @key{META}, since it is used for
 +accessing characters like @kbd{~} and @kbd{@@} on non-US keyboard
 +layouts; in this case, you may only use the left @key{Alt} as @key{META}
 +key.
 +
 +@kindex C-j @r{(MS-DOS)}
 +@vindex dos-keypad-mode
 +  The variable @code{dos-keypad-mode} is a flag variable that controls
 +what key codes are returned by keys in the numeric keypad.  You can also
 +define the keypad @key{ENTER} key to act like @kbd{C-j}, by putting the
 +following line into your @file{_emacs} file:
 +
 +@smallexample
 +;; @r{Make the @key{ENTER} key from the numeric keypad act as @kbd{C-j}.}
 +(define-key function-key-map [kp-enter] [?\C-j])
 +@end smallexample
 +
 +@node MS-DOS Mouse
 +@subsection Mouse Usage on MS-DOS
 +
 +@cindex mouse support under MS-DOS
 +  Emacs on MS-DOS supports a mouse (on the default terminal only).
 +The mouse commands work as documented, including those that use menus
 +and the menu bar
 +@iftex
 +(@pxref{Menu Bar,,,emacs, the Emacs Manual}).
 +@end iftex
 +@ifnottex
 +(@pxref{Menu Bar}).
 +@end ifnottex
 + Scroll bars don't work in MS-DOS Emacs.  PC mice usually have only
 +two buttons; these act as @kbd{Mouse-1} and @kbd{Mouse-2}, but if you
 +press both of them together, that has the effect of @kbd{Mouse-3}.  If
 +the mouse does have 3 buttons, Emacs detects that at startup, and all
 +the 3 buttons function normally, as on X.
 +
 +  Help strings for menu-bar and pop-up menus are displayed in the echo
 +area when the mouse pointer moves across the menu items.  Highlighting
 +of mouse-sensitive text
 +@iftex
 +(@pxref{Mouse References,,,emacs, the Emacs Manual})
 +@end iftex
 +@ifnottex
 +(@pxref{Mouse References})
 +@end ifnottex
 +is also supported.
 +
 +@cindex mouse, set number of buttons
 +@findex msdos-set-mouse-buttons
 +  Some versions of mouse drivers don't report the number of mouse
 +buttons correctly.  For example, mice with a wheel report that they
 +have 3 buttons, but only 2 of them are passed to Emacs; the clicks on
 +the wheel, which serves as the middle button, are not passed.  In
 +these cases, you can use the @kbd{M-x msdos-set-mouse-buttons} command
 +to tell Emacs how many mouse buttons to expect.  You could make such a
 +setting permanent by adding this fragment to your @file{_emacs} init
 +file:
 +
 +@example
 +;; @r{Treat the mouse like a 2-button mouse.}
 +(msdos-set-mouse-buttons 2)
 +@end example
 +
 +@cindex Windows clipboard support
 +  Emacs built for MS-DOS supports clipboard operations when it runs on
 +Windows.  Commands that put text on the kill ring, or yank text from
 +the ring, check the Windows clipboard first, just as Emacs does on the
 +X Window System
 +@iftex
 +(@pxref{Mouse Commands,,,emacs, the Emacs Manual}).
 +@end iftex
 +@ifnottex
 +(@pxref{Mouse Commands}).
 +@end ifnottex
 +Only the primary selection and the cut buffer are supported by MS-DOS
 +Emacs on Windows; the secondary selection always appears as empty.
 +
 +  Due to the way clipboard access is implemented by Windows, the
 +length of text you can put into the clipboard is limited by the amount
 +of free DOS memory that is available to Emacs.  Usually, up to 620KB of
 +text can be put into the clipboard, but this limit depends on the system
 +configuration and is lower if you run Emacs as a subprocess of
 +another program.  If the killed text does not fit, Emacs outputs a
 +message saying so, and does not put the text into the clipboard.
 +
 +  Null characters also cannot be put into the Windows clipboard.  If the
 +killed text includes null characters, Emacs does not put such text into
 +the clipboard, and displays in the echo area a message to that effect.
 +
 +@vindex dos-display-scancodes
 +  The variable @code{dos-display-scancodes}, when non-@code{nil},
 +directs Emacs to display the @acronym{ASCII} value and the keyboard scan code of
 +each keystroke; this feature serves as a complement to the
 +@code{view-lossage} command, for debugging.
 +
 +@node MS-DOS Display
 +@subsection Display on MS-DOS
 +@cindex faces under MS-DOS
 +@cindex fonts, emulating under MS-DOS
 +
 +  Display on MS-DOS cannot use font variants, like bold or italic, but
 +it does support multiple faces, each of which can specify a foreground
 +and a background color.  Therefore, you can get the full functionality
 +of Emacs packages that use fonts (such as @code{font-lock}, Enriched
 +Text mode, and others) by defining the relevant faces to use different
 +colors.  Use the @code{list-colors-display} command
 +@iftex
 +(@pxref{Colors,,,emacs, the Emacs Manual})
 +@end iftex
 +@ifnottex
 +(@pxref{Colors})
 +@end ifnottex
 +and the @code{list-faces-display} command
 +@iftex
 +(@pxref{Faces,,,emacs, the Emacs Manual})
 +@end iftex
 +@ifnottex
 +(@pxref{Faces})
 +@end ifnottex
 +to see what colors and faces are available and what they look like.
 +
 +  @xref{MS-DOS and MULE}, later in this chapter, for information on
 +how Emacs displays glyphs and characters that aren't supported by the
 +native font built into the DOS display.
 +
 +@cindex cursor shape on MS-DOS
 +  When Emacs starts, it changes the cursor shape to a solid box.  This
 +is for compatibility with other systems, where the box cursor is the
 +default in Emacs.  This default shape can be changed to a bar by
 +specifying the @code{cursor-type} parameter in the variable
 +@code{default-frame-alist}
 +@iftex
 +(@pxref{Creating Frames,,,emacs, the Emacs Manual}).
 +@end iftex
 +@ifnottex
 +(@pxref{Creating Frames}).
 +@end ifnottex
 +The MS-DOS terminal doesn't support a vertical-bar cursor,
 +so the bar cursor is horizontal, and the @code{@var{width}} parameter,
 +if specified by the frame parameters, actually determines its height.
 +For this reason, the @code{bar} and @code{hbar} cursor types produce
 +the same effect on MS-DOS@.  As an extension, the bar cursor
 +specification can include the starting scan line of the cursor as well
 +as its width, like this:
 +
 +@example
 + '(cursor-type bar @var{width} . @var{start})
 +@end example
 +
 +@noindent
 +In addition, if the @var{width} parameter is negative, the cursor bar
 +begins at the top of the character cell.
 +
 +@cindex frames on MS-DOS
 +  The MS-DOS terminal can only display a single frame at a time.  The
 +Emacs frame facilities work on MS-DOS much as they do on text
 +terminals
 +@iftex
 +(@pxref{Frames,,,emacs, the Emacs Manual}).
 +@end iftex
 +@ifnottex
 +(@pxref{Frames}).
 +@end ifnottex
 +When you run Emacs from a DOS window on MS-Windows, you can make the
 +visible frame smaller than the full screen, but Emacs still cannot
 +display more than a single frame at a time.
 +
 +@cindex frame size under MS-DOS
 +@findex dos-mode4350
 +@findex dos-mode25
 +  The @code{dos-mode4350} command switches the display to 43 or 50
 +lines, depending on your hardware; the @code{dos-mode25} command switches
 +to the default 80x25 screen size.
 +
 +  By default, Emacs only knows how to set screen sizes of 80 columns by
 +25, 28, 35, 40, 43 or 50 rows.  However, if your video adapter has
 +special video modes that will switch the display to other sizes, you can
 +have Emacs support those too.  When you ask Emacs to switch the frame to
 +@var{n} rows by @var{m} columns dimensions, it checks if there is a
 +variable called @code{screen-dimensions-@var{n}x@var{m}}, and if so,
 +uses its value (which must be an integer) as the video mode to switch
 +to.  (Emacs switches to that video mode by calling the BIOS @code{Set
 +Video Mode} function with the value of
 +@code{screen-dimensions-@var{n}x@var{m}} in the @code{AL} register.)
 +For example, suppose your adapter will switch to 66x80 dimensions when
 +put into video mode 85.  Then you can make Emacs support this screen
 +size by putting the following into your @file{_emacs} file:
 +
 +@example
 +(setq screen-dimensions-66x80 85)
 +@end example
 +
 +  Since Emacs on MS-DOS can only set the frame size to specific
 +supported dimensions, it cannot honor every possible frame resizing
 +request.  When an unsupported size is requested, Emacs chooses the next
 +larger supported size beyond the specified size.  For example, if you
 +ask for 36x80 frame, you will get 40x80 instead.
 +
 +  The variables @code{screen-dimensions-@var{n}x@var{m}} are used only
 +when they exactly match the specified size; the search for the next
 +larger supported size ignores them.  In the above example, even if your
 +VGA supports 38x80 dimensions and you define a variable
 +@code{screen-dimensions-38x80} with a suitable value, you will still get
 +40x80 screen when you ask for a 36x80 frame.  If you want to get the
 +38x80 size in this case, you can do it by setting the variable named
 +@code{screen-dimensions-36x80} with the same video mode value as
 +@code{screen-dimensions-38x80}.
 +
 +  Changing frame dimensions on MS-DOS has the effect of changing all the
 +other frames to the new dimensions.
 +
 +@node MS-DOS File Names
 +@subsection File Names on MS-DOS
 +@cindex file names under MS-DOS
 +@cindex init file, default name under MS-DOS
 +
 +  On MS-DOS, file names are case-insensitive and limited to eight
 +characters, plus optionally a period and three more characters.  Emacs
 +knows enough about these limitations to handle file names that were
 +meant for other operating systems.  For instance, leading dots
 +@samp{.}  in file names are invalid in MS-DOS, so Emacs transparently
 +converts them to underscores @samp{_}; thus your default init file
 +@iftex
 +(@pxref{Init File,,,emacs, the Emacs Manual})
 +@end iftex
 +@ifnottex
 +(@pxref{Init File})
 +@end ifnottex
 +is called @file{_emacs} on MS-DOS@.  Excess characters before or after
 +the period are generally ignored by MS-DOS itself; thus, if you visit
 +the file @file{LongFileName.EvenLongerExtension}, you will silently
 +get @file{longfile.eve}, but Emacs will still display the long file
 +name on the mode line.  Other than that, it's up to you to specify
 +file names which are valid under MS-DOS; the transparent conversion as
 +described above only works on file names built into Emacs.
 +
 +@cindex backup file names on MS-DOS
 +  The above restrictions on the file names on MS-DOS make it almost
 +impossible to construct the name of a backup file
 +@iftex
 +(@pxref{Backup Names,,,emacs, the Emacs Manual})
 +@end iftex
 +@ifnottex
 +(@pxref{Backup Names})
 +@end ifnottex
 +without losing some of the original file name characters.  For
 +example, the name of a backup file for @file{docs.txt} is
 +@file{docs.tx~} even if single backup is used.
 +
 +@cindex file names under Windows 95/NT
 +@cindex long file names in DOS box under Windows 95/NT
 +  If you run Emacs as a DOS application under Windows 9X, Windows ME, or
 +Windows 2000/XP, you can turn on support for long file names.  If you do
 +that, Emacs doesn't truncate file names or convert them to lower case;
 +instead, it uses the file names that you specify, verbatim.  To enable
 +long file name support, set the environment variable @env{LFN} to
 +@samp{y} before starting Emacs.  Unfortunately, Windows NT doesn't allow
 +DOS programs to access long file names, so Emacs built for MS-DOS will
 +only see their short 8+3 aliases.
 +
++@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,
 +@file{emacs.exe}, is in the directory @file{c:/utils/emacs/bin}, then
 +Emacs acts as if @env{HOME} were set to @samp{c:/utils/emacs}.  In
 +particular, that is where Emacs looks for the init file @file{_emacs}.
 +With this in mind, you can use @samp{~} in file names as an alias for
 +the home directory, as you would on GNU or Unix.  You can also set
 +@env{HOME} variable in the environment before starting Emacs; its
 +value will then override the above default behavior.
 +
 +  Emacs on MS-DOS handles the directory name @file{/dev} specially,
 +because of a feature in the emulator libraries of DJGPP that pretends
 +I/O devices have names in that directory.  We recommend that you avoid
 +using an actual directory named @file{/dev} on any disk.
 +
 +@node MS-DOS Printing
 +@subsection Printing and MS-DOS
 +
 +  Printing commands, such as @code{lpr-buffer}
 +@iftex
 +(@pxref{Printing,,,emacs, the Emacs Manual}) and @code{ps-print-buffer}
 +(@pxref{PostScript,,,emacs, the Emacs Manual})
 +@end iftex
 +@ifnottex
 +(@pxref{Printing}) and @code{ps-print-buffer} (@pxref{PostScript})
 +@end ifnottex
 +can work on MS-DOS by sending the output to one of the printer ports,
 +if a Posix-style @code{lpr} program is unavailable.  The same Emacs
 +variables control printing on all systems, but in some cases they have
 +different default values on MS-DOS.
 +
 +@iftex
 +@xref{Windows Printing,,,emacs, the Emacs Manual},
 +@end iftex
 +@ifnottex
 +@xref{Windows Printing},
 +@end ifnottex
 +for details about setting up printing to a networked printer.
 +
 +  Some printers expect DOS codepage encoding of non-@acronym{ASCII} text, even
 +though they are connected to a Windows machine that uses a different
 +encoding for the same locale.  For example, in the Latin-1 locale, DOS
 +uses codepage 850 whereas Windows uses codepage 1252.  @xref{MS-DOS and
 +MULE}.  When you print to such printers from Windows, you can use the
 +@kbd{C-x @key{RET} c} (@code{universal-coding-system-argument}) command
 +before @kbd{M-x lpr-buffer}; Emacs will then convert the text to the DOS
 +codepage that you specify.  For example,
 +@kbd{C-x @key{RET} c cp850-dos @key{RET} M-x lpr-region @key{RET}}
 +will print the region while converting it to the codepage 850 encoding.
 +
 +@vindex dos-printer
 +@vindex dos-ps-printer
 +  For backwards compatibility, the value of @code{dos-printer}
 +(@code{dos-ps-printer}), if it has a value, overrides the value of
 +@code{printer-name} (@code{ps-printer-name}), on MS-DOS.
 +
 +
 +@node MS-DOS and MULE
 +@subsection International Support on MS-DOS
 +@cindex international support @r{(MS-DOS)}
 +
 +  Emacs on MS-DOS supports the same international character sets as it
 +does on GNU, Unix and other platforms
 +@iftex
 +(@pxref{International,,,emacs, the Emacs Manual}),
 +@end iftex
 +@ifnottex
 +(@pxref{International}),
 +@end ifnottex
 +including coding systems for converting between the different
 +character sets.  However, due to incompatibilities between
 +MS-DOS/MS-Windows and other systems, there are several DOS-specific
 +aspects of this support that you should be aware of.  This section
 +describes these aspects.
 +
 +  The description below is largely specific to the MS-DOS port of
 +Emacs, especially where it talks about practical implications for
 +Emacs users.
 +
 +@table @kbd
 +@item M-x dos-codepage-setup
 +Set up Emacs display and coding systems as appropriate for the current
 +DOS codepage.
 +@end table
 +
 +@cindex codepage, MS-DOS
 +@cindex DOS codepages
 +  MS-DOS is designed to support one character set of 256 characters at
 +any given time, but gives you a variety of character sets to choose
 +from.  The alternative character sets are known as @dfn{DOS codepages}.
 +Each codepage includes all 128 @acronym{ASCII} characters, but the other 128
 +characters (codes 128 through 255) vary from one codepage to another.
 +Each DOS codepage is identified by a 3-digit number, such as 850, 862,
 +etc.
 +
 +  In contrast to X, which lets you use several fonts at the same time,
 +MS-DOS normally doesn't allow use of several codepages in a single
 +session.  MS-DOS was designed to load a single codepage at system
 +startup, and require you to reboot in order to change
 +it@footnote{Normally, one particular codepage is burnt into the
 +display memory, while other codepages can be installed by modifying
 +system configuration files, such as @file{CONFIG.SYS}, and rebooting.
 +While there is third-party software that allows changing the codepage
 +without rebooting, we describe here how a stock MS-DOS system
 +behaves.}.  Much the same limitation applies when you run DOS
 +executables on other systems such as MS-Windows.
 +
 +@vindex dos-codepage
 +  For multibyte operation on MS-DOS, Emacs needs to know which
 +characters the chosen DOS codepage can display.  So it queries the
 +system shortly after startup to get the chosen codepage number, and
 +stores the number in the variable @code{dos-codepage}.  Some systems
 +return the default value 437 for the current codepage, even though the
 +actual codepage is different.  (This typically happens when you use the
 +codepage built into the display hardware.)  You can specify a different
 +codepage for Emacs to use by setting the variable @code{dos-codepage} in
 +your init file.
 +
 +@cindex language environment, automatic selection on @r{MS-DOS}
 +  Multibyte Emacs supports only certain DOS codepages: those which can
 +display Far-Eastern scripts, like the Japanese codepage 932, and those
 +that encode a single ISO 8859 character set.
 +
 +  The Far-Eastern codepages can directly display one of the MULE
 +character sets for these countries, so Emacs simply sets up to use the
 +appropriate terminal coding system that is supported by the codepage.
 +The special features described in the rest of this section mostly
 +pertain to codepages that encode ISO 8859 character sets.
 +
 +  For the codepages that correspond to one of the ISO character sets,
 +Emacs knows the character set based on the codepage number.  Emacs
 +automatically creates a coding system to support reading and writing
 +files that use the current codepage, and uses this coding system by
 +default.  The name of this coding system is @code{cp@var{nnn}}, where
 +@var{nnn} is the codepage number.@footnote{The standard Emacs coding
 +systems for ISO 8859 are not quite right for the purpose, because
 +typically the DOS codepage does not match the standard ISO character
 +codes.  For example, the letter @samp{@,{c}} (@samp{c} with cedilla) has
 +code 231 in the standard Latin-1 character set, but the corresponding
 +DOS codepage 850 uses code 135 for this glyph.}
 +
 +@cindex mode line @r{(MS-DOS)}
 +  All the @code{cp@var{nnn}} coding systems use the letter @samp{D}
 +(for ``DOS'') as their mode-line mnemonic.  Since both the terminal
 +coding system and the default coding system for file I/O are set to
 +the proper @code{cp@var{nnn}} coding system at startup, it is normal
 +for the mode line on MS-DOS to begin with @samp{-DD\-}.
 +@iftex
 +@xref{Mode Line,,,emacs, the Emacs Manual}.
 +@end iftex
 +@ifnottex
 +@xref{Mode Line}.
 +@end ifnottex
 +Far-Eastern DOS terminals do not use the @code{cp@var{nnn}} coding
 +systems, and thus their initial mode line looks like the Emacs
 +default.
 +
 +  Since the codepage number also indicates which script you are using,
 +Emacs automatically runs @code{set-language-environment} to select the
 +language environment for that script
 +@iftex
 +(@pxref{Language Environments,,,emacs, the Emacs Manual}).
 +@end iftex
 +@ifnottex
 +(@pxref{Language Environments}).
 +@end ifnottex
 +
 +  If a buffer contains a character belonging to some other ISO 8859
 +character set, not the one that the chosen DOS codepage supports, Emacs
 +displays it using a sequence of @acronym{ASCII} characters.  For example, if the
 +current codepage doesn't have a glyph for the letter @samp{@`o} (small
 +@samp{o} with a grave accent), it is displayed as @samp{@{`o@}}, where
 +the braces serve as a visual indication that this is a single character.
 +(This may look awkward for some non-Latin characters, such as those from
 +Greek or Hebrew alphabets, but it is still readable by a person who
 +knows the language.)  Even though the character may occupy several
 +columns on the screen, it is really still just a single character, and
 +all Emacs commands treat it as one.
 +
 +@cindex MS-Windows codepages
 +  MS-Windows provides its own codepages, which are different from the
 +DOS codepages for the same locale.  For example, DOS codepage 850
 +supports the same character set as Windows codepage 1252; DOS codepage
 +855 supports the same character set as Windows codepage 1251, etc.
 +The MS-Windows version of Emacs uses the current codepage for display
 +when invoked with the @samp{-nw} option.
 +
 +@node MS-DOS Processes
 +@subsection Subprocesses on MS-DOS
 +
 +@cindex compilation under MS-DOS
 +@cindex inferior processes under MS-DOS
 +@findex compile @r{(MS-DOS)}
 +@findex grep @r{(MS-DOS)}
 +  Because MS-DOS is a single-process ``operating system'',
 +asynchronous subprocesses are not available.  In particular, Shell
 +mode and its variants do not work.  Most Emacs features that use
 +asynchronous subprocesses also don't work on MS-DOS, including
 +Shell mode and GUD@.  When in doubt, try and see; commands that
 +don't work output an error message saying that asynchronous processes
 +aren't supported.
 +
 +  Compilation under Emacs with @kbd{M-x compile}, searching files with
 +@kbd{M-x grep} and displaying differences between files with @kbd{M-x
 +diff} do work, by running the inferior processes synchronously.  This
 +means you cannot do any more editing until the inferior process
 +finishes.
 +
 +  Spell checking also works, by means of special support for synchronous
 +invocation of the @code{ispell} program.  This is slower than the
 +asynchronous invocation on other platforms
 +
 +  Instead of the Shell mode, which doesn't work on MS-DOS, you can use
 +the @kbd{M-x eshell} command.  This invokes the Eshell package that
 +implements a Posix-like shell entirely in Emacs Lisp.
 +
 +  By contrast, Emacs compiled as a native Windows application
 +@strong{does} support asynchronous subprocesses.
 +@iftex
 +@xref{Windows Processes,,,emacs, the Emacs Manual}.
 +@end iftex
 +@ifnottex
 +@xref{Windows Processes}.
 +@end ifnottex
 +
 +@cindex printing under MS-DOS
 +  Printing commands, such as @code{lpr-buffer}
 +@iftex
 +(@pxref{Printing,,,emacs, the Emacs Manual}) and
 +@code{ps-print-buffer} (@pxref{PostScript,,,emacs, the Emacs Manual}),
 +work in MS-DOS by sending the output to one of the printer ports.
 +@xref{MS-DOS Printing,,,emacs, the Emacs Manual}.
 +@end iftex
 +@ifnottex
 +(@pxref{Printing}) and @code{ps-print-buffer} (@pxref{PostScript}),
 +work in MS-DOS by sending the output to one of the printer ports.
 +@xref{MS-DOS Printing}.
 +@end ifnottex
 +
 +  When you run a subprocess synchronously on MS-DOS, make sure the
 +program terminates and does not try to read keyboard input.  If the
 +program does not terminate on its own, you will be unable to terminate
 +it, because MS-DOS provides no general way to terminate a process.
 +Pressing @kbd{C-c} or @kbd{C-@key{Break}} might sometimes help in these
 +cases.
 +
 +  Accessing files on other machines is not supported on MS-DOS@.  Other
 +network-oriented commands such as sending mail, Web browsing, remote
 +login, etc., don't work either, unless network access is built into
 +MS-DOS with some network redirector.
 +
 +@cindex directory listing on MS-DOS
 +@vindex dired-listing-switches @r{(MS-DOS)}
 +  Dired on MS-DOS uses the @code{ls-lisp} package
 +@iftex
 +(@pxref{ls in Lisp,,,emacs, the Emacs Manual}).
 +@end iftex
 +@ifnottex
 +(@pxref{ls in Lisp}).
 +@end ifnottex
 +Therefore, Dired on MS-DOS supports only some of the possible options
 +you can mention in the @code{dired-listing-switches} variable.  The
 +options that work are @samp{-A}, @samp{-a}, @samp{-c}, @samp{-i},
 +@samp{-r}, @samp{-S}, @samp{-s}, @samp{-t}, and @samp{-u}.
index 10e792369385436f4e140a16c5181a4a8802a74a,0000000000000000000000000000000000000000..f1cdb26a0eb0b8d8ef7645f1ad4f0ee2d93653ec
mode 100644,000000..100644
--- /dev/null
@@@ -1,1025 -1,0 +1,1025 @@@
- @cindex @code{HOME} directory on MS-Windows
 +@c This is part of the Emacs manual.
 +@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2015 Free Software
 +@c Foundation, Inc.
 +@c See file emacs.texi for copying conditions.
 +@node Microsoft Windows
 +@appendix Emacs and Microsoft Windows/MS-DOS
 +@cindex Microsoft Windows
 +@cindex MS-Windows, Emacs peculiarities
 +
 +  This section describes peculiarities of using Emacs on Microsoft
 +Windows.  Some of these peculiarities are also relevant to Microsoft's
 +older MS-DOS operating system.
 +However, Emacs features that are relevant @emph{only} to MS-DOS are
 +described in a separate
 +@iftex
 +manual (@pxref{MS-DOS,,, emacs-xtra, Specialized Emacs Features}).
 +@end iftex
 +@ifnottex
 +section (@pxref{MS-DOS}).
 +@end ifnottex
 +
 +
 +  The behavior of Emacs on MS-Windows is reasonably similar to what is
 +documented in the rest of the manual, including support for long file
 +names, multiple frames, scroll bars, mouse menus, and subprocesses.
 +However, a few special considerations apply, and they are described
 +here.
 +
 +@menu
 +* Windows Startup::     How to start Emacs on Windows.
 +* Text and Binary::     Text files use CRLF to terminate lines.
 +* Windows Files::       File-name conventions on Windows.
 +* ls in Lisp::          Emulation of @code{ls} for Dired.
 +* Windows HOME::        Where Emacs looks for your @file{.emacs} and
 +                          where it starts up.
 +* Windows Keyboard::    Windows-specific keyboard features.
 +* Windows Mouse::       Windows-specific mouse features.
 +* Windows Processes::   Running subprocesses on Windows.
 +* Windows Printing::    How to specify the printer on MS-Windows.
 +* Windows Fonts::       Specifying fonts on MS-Windows.
 +* Windows Misc::        Miscellaneous Windows features.
 +@ifnottex
 +* MS-DOS::              Using Emacs on MS-DOS.
 +@end ifnottex
 +@end menu
 +
 +@node Windows Startup
 +@section How to Start Emacs on MS-Windows
 +@cindex starting Emacs on MS-Windows
 +
 +  There are several ways of starting Emacs on MS-Windows:
 +
 +@enumerate
 +@item
 +@pindex runemacs.exe
 +@cindex desktop shortcut, MS-Windows
 +@cindex start directory, MS-Windows
 +@cindex directory where Emacs starts on MS-Windows
 +From the desktop shortcut icon: either double-click the left mouse
 +button on the icon, or click once, then press @key{RET}.  The desktop
 +shortcut should specify as its ``Target'' (in the ``Properties'' of
 +the shortcut) the full absolute file name of @file{runemacs.exe},
 +@emph{not} of @file{emacs.exe}.  This is because @file{runemacs.exe}
 +hides the console window that would have been created if the target of
 +the shortcut were @file{emacs.exe} (which is a console program, as far
 +as Windows is concerned).  If you use this method, Emacs starts in the
 +directory specified by the shortcut.  To control where that is,
 +right-click on the shortcut, select ``Properties'', and in the
 +``Shortcut'' tab modify the ``Start in'' field to your liking.
 +
 +@item
 +From the Command Prompt window, by typing @kbd{emacs @key{RET}} at the
 +prompt.  The Command Prompt window where you did that will not be
 +available for invoking other commands until Emacs exits.  In this
 +case, Emacs will start in the current directory of the Windows shell.
 +
 +@item
 +From the Command Prompt window, by typing @kbd{runemacs @key{RET}} at
 +the prompt.  The Command Prompt window where you did that will be
 +immediately available for invoking other commands.  In this case,
 +Emacs will start in the current directory of the Windows shell.
 +
 +@item
 +@cindex invoking Emacs from Windows Explorer
 +@pindex emacsclient.exe
 +@pindex emacsclientw.exe
 +Via @file{emacsclient.exe} or @file{emacsclientw.exe}, which allow you
 +to invoke Emacs from other programs, and to reuse a running Emacs
 +process for serving editing jobs required by other programs.
 +@xref{Emacs Server}.  The difference between @file{emacsclient.exe}
 +and @file{emacsclientw.exe} is that the former is a console program,
 +while the latter is a Windows GUI program.  Both programs wait for
 +Emacs to signal that the editing job is finished, before they exit and
 +return control to the program that invoked them.  Which one of them to
 +use in each case depends on the expectations of the program that needs
 +editing services.  If that program is itself a console (text-mode)
 +program, you should use @file{emacsclient.exe}, so that any of its
 +messages and prompts appear in the same command window as those of the
 +invoking program.  By contrast, if the invoking program is a GUI
 +program, you will be better off using @file{emacsclientw.exe}, because
 +@file{emacsclient.exe} will pop up a command window if it is invoked
 +from a GUI program.  A notable situation where you would want
 +@file{emacsclientw.exe} is when you right-click on a file in the
 +Windows Explorer and select ``Open With'' from the pop-up menu.  Use
 +the @samp{--alternate-editor=} or @samp{-a} options if Emacs might not
 +be running (or not running as a server) when @command{emacsclient} is
 +invoked---that will always give you an editor.  When invoked via
 +@command{emacsclient}, Emacs will start in the current directory of
 +the program that invoked @command{emacsclient}.
 +@end enumerate
 +
 +@cindex emacsclient, on MS-Windows
 +Note that, due to limitations of MS-Windows, Emacs cannot have both
 +GUI and text-mode frames in the same session.  It also cannot open
 +text-mode frames on more than a single @dfn{Command Prompt} window,
 +because each Windows program can have only one console at any given
 +time.  For these reasons, if you invoke @command{emacsclient} with the
 +@option{-c} option, and the Emacs server runs in a text-mode session,
 +Emacs will always create a new text-mode frame in the same
 +@dfn{Command Prompt} window where it was started; a GUI frame will be
 +created only if the server runs in a GUI session.  Similarly, if you
 +invoke @command{emacsclient} with the @option{-t} option, Emacs will
 +create a GUI frame if the server runs in a GUI session, or a text-mode
 +frame when the session runs in text mode in a @dfn{Command Prompt}
 +window.  @xref{emacsclient Options}.
 +
 +@node Text and Binary
 +@section Text Files and Binary Files
 +@cindex text and binary files on MS-DOS/MS-Windows
 +
 +  GNU Emacs uses newline characters to separate text lines.  This is the
 +convention used on GNU, Unix, and other Posix-compliant systems.
 +
 +@cindex end-of-line conversion on MS-DOS/MS-Windows
 +  By contrast, MS-DOS and MS-Windows normally use carriage-return linefeed,
 +a two-character sequence, to separate text lines.  (Linefeed is the same
 +character as newline.)  Therefore, convenient editing of typical files
 +with Emacs requires conversion of these end-of-line (EOL) sequences.
 +And that is what Emacs normally does: it converts carriage-return
 +linefeed into newline when reading files, and converts newline into
 +carriage-return linefeed when writing files.  The same mechanism that
 +handles conversion of international character codes does this conversion
 +also (@pxref{Coding Systems}).
 +
 +@cindex cursor location, on MS-DOS
 +@cindex point location, on MS-DOS
 +  One consequence of this special format-conversion of most files is
 +that character positions as reported by Emacs (@pxref{Position Info}) do
 +not agree with the file size information known to the operating system.
 +
 +  In addition, if Emacs recognizes from a file's contents that it uses
 +newline rather than carriage-return linefeed as its line separator, it
 +does not perform EOL conversion when reading or writing that file.
 +Thus, you can read and edit files from GNU and Unix systems on MS-DOS
 +with no special effort, and they will retain their Unix-style
 +end-of-line convention after you edit them.
 +
 +  The mode line indicates whether end-of-line translation was used for
 +the current buffer.  If MS-DOS end-of-line translation is in use for the
 +buffer, the MS-Windows build of Emacs displays a backslash @samp{\} after
 +the coding system mnemonic near the beginning of the mode line
 +(@pxref{Mode Line}).  If no EOL translation was performed, the string
 +@samp{(Unix)} is displayed instead of the backslash, to alert you that the
 +file's EOL format is not the usual carriage-return linefeed.
 +
 +@cindex DOS-to-Unix conversion of files
 +  To visit a file and specify whether it uses DOS-style or Unix-style
 +end-of-line, specify a coding system (@pxref{Text Coding}).  For
 +example, @kbd{C-x @key{RET} c unix @key{RET} C-x C-f foobar.txt}
 +visits the file @file{foobar.txt} without converting the EOLs; if some
 +line ends with a carriage-return linefeed pair, Emacs will display
 +@samp{^M} at the end of that line.  Similarly, you can direct Emacs to
 +save a buffer in a specified EOL format with the @kbd{C-x @key{RET} f}
 +command.  For example, to save a buffer with Unix EOL format, type
 +@kbd{C-x @key{RET} f unix @key{RET} C-x C-s}.  If you visit a file
 +with DOS EOL conversion, then save it with Unix EOL format, that
 +effectively converts the file to Unix EOL style, like the
 +@code{dos2unix} program.
 +
 +@cindex untranslated file system
 +@findex add-untranslated-filesystem
 +  When you use NFS, Samba, or some other similar method to access file
 +systems that reside on computers using GNU or Unix systems, Emacs
 +should not perform end-of-line translation on any files in these file
 +systems---not even when you create a new file.  To request this,
 +designate these file systems as @dfn{untranslated} file systems by
 +calling the function @code{add-untranslated-filesystem}.  It takes one
 +argument: the file system name, including a drive letter and
 +optionally a directory.  For example,
 +
 +@example
 +(add-untranslated-filesystem "Z:")
 +@end example
 +
 +@noindent
 +designates drive Z as an untranslated file system, and
 +
 +@example
 +(add-untranslated-filesystem "Z:\\foo")
 +@end example
 +
 +@noindent
 +designates directory @file{\foo} on drive Z as an untranslated file
 +system.
 +
 +  Most often you would use @code{add-untranslated-filesystem} in your
 +@file{.emacs} file, or in @file{site-start.el} so that all the users at
 +your site get the benefit of it.
 +
 +@findex remove-untranslated-filesystem
 +  To countermand the effect of @code{add-untranslated-filesystem}, use
 +the function @code{remove-untranslated-filesystem}.  This function takes
 +one argument, which should be a string just like the one that was used
 +previously with @code{add-untranslated-filesystem}.
 +
 +  Designating a file system as untranslated does not affect character
 +set conversion, only end-of-line conversion.  Essentially, it directs
 +Emacs to create new files with the Unix-style convention of using
 +newline at the end of a line.  @xref{Coding Systems}.
 +
 +@node Windows Files
 +@section File Names on MS-Windows
 +@cindex file names on MS-Windows
 +
 +  MS-Windows and MS-DOS normally use a backslash, @samp{\}, to
 +separate name units within a file name, instead of the slash used on
 +other systems.  Emacs on MS-DOS/MS-Windows permits use of either slash or
 +backslash, and also knows about drive letters in file names.
 +
 +@cindex file-name completion, on MS-Windows
 +  On MS-DOS/MS-Windows, file names are case-insensitive, so Emacs by
 +default ignores letter-case in file names during completion.
 +
 +@vindex w32-get-true-file-attributes
 +  The variable @code{w32-get-true-file-attributes} controls whether
 +Emacs should issue additional system calls to determine more
 +accurately file attributes in primitives like @code{file-attributes}
 +and @code{directory-files-and-attributes}.  These additional calls are
 +needed to report correct file ownership, link counts and file types
 +for special files such as pipes.  Without these system calls, file
 +ownership will be attributed to the current user, link counts will be
 +always reported as 1, and special files will be reported as regular
 +files.
 +
 +  If the value of this variable is @code{local} (the default), Emacs
 +will issue these additional system calls only for files on local fixed
 +drives.  Any other non-@code{nil} value means do this even for
 +removable and remote volumes, where this could potentially slow down
 +Dired and other related features.  The value of @code{nil} means never
 +issue those system calls.  Non-@code{nil} values are more useful on
 +NTFS volumes, which support hard links and file security, than on FAT,
 +FAT32, and exFAT volumes.
 +
 +@cindex file names, invalid characters on MS-Windows
 +  Unlike Unix, MS-Windows file systems restrict the set of characters
 +that can be used in a file name.  The following characters are not
 +allowed:
 +
 +@itemize @bullet
 +@item
 +Shell redirection symbols @samp{<}, @samp{>}, and @samp{|}.
 +
 +@item
 +Colon @samp{:} (except after the drive letter).
 +
 +@item
 +Forward slash @samp{/} and backslash @samp{\} (except as directory
 +separators).
 +
 +@item
 +Wildcard characters @samp{*} and @samp{?}.
 +
 +@item
 +Control characters whose codepoints are 1 through 31 decimal.  In
 +particular, newlines in file names are not allowed.
 +
 +@item
 +The null character, whose codepoint is zero (this limitation exists on
 +Unix filesystems as well).
 +@end itemize
 +
 +@noindent
 +In addition, referencing any file whose name matches a DOS character
 +device, such as @file{NUL} or @file{LPT1} or @file{PRN} or @file{CON},
 +with or without any file-name extension, will always resolve to those
 +character devices, in any directory.  Therefore, only use such file
 +names when you want to use the corresponding character device.
 +
 +@node ls in Lisp
 +@section Emulation of @code{ls} on MS-Windows
 +@cindex Dired, and MS-Windows/MS-DOS
 +@cindex @code{ls} emulation
 +
 +  Dired normally uses the external program @code{ls}
 +to produce the directory listing displayed in Dired
 +buffers (@pxref{Dired}).  However, MS-Windows and MS-DOS systems don't
 +come with such a program, although several ports of @sc{gnu} @code{ls}
 +are available.  Therefore, Emacs on those systems @emph{emulates}
 +@code{ls} in Lisp, by using the @file{ls-lisp.el} package.  While
 +@file{ls-lisp.el} provides a reasonably full emulation of @code{ls},
 +there are some options and features peculiar to that emulation;
 +@iftex
 +for more details, see the documentation of the variables whose names
 +begin with @code{ls-lisp}.
 +@end iftex
 +@ifnottex
 +they are described in this section.
 +
 +  The @code{ls} emulation supports many of the @code{ls} switches, but
 +it doesn't support all of them.  Here's the list of the switches it
 +does support: @option{-A}, @option{-a}, @option{-B}, @option{-C},
 +@option{-c}, @option{-G}, @option{-g}, @option{-h}, @option{-i}, @option{-n},
 +@option{-R}, @option{-r}, @option{-S}, @option{-s}, @option{-t}, @option{-U},
 +@option{-u}, and @option{-X}.  The @option{-F} switch is partially
 +supported (it appends the character that classifies the file, but does
 +not prevent symlink following).
 +
 +@vindex ls-lisp-use-insert-directory-program
 +  On MS-Windows and MS-DOS, @file{ls-lisp.el} is preloaded when Emacs
 +is built, so the Lisp emulation of @code{ls} is always used on those
 +platforms.  If you have a ported @code{ls}, setting
 +@code{ls-lisp-use-insert-directory-program} to a non-@code{nil} value
 +will revert to using an external program named by the variable
 +@code{insert-directory-program}.
 +
 +@vindex ls-lisp-ignore-case
 +  By default, @file{ls-lisp.el} uses a case-sensitive sort order for
 +the directory listing it produces; this is so the listing looks the
 +same as on other platforms.  If you wish that the files be sorted in
 +case-insensitive order, set the variable @code{ls-lisp-ignore-case} to
 +a non-@code{nil} value.
 +
 +@vindex ls-lisp-dirs-first
 +  By default, files and subdirectories are sorted together, to emulate
 +the behavior of @code{ls}.  However, native MS-Windows/MS-DOS file
 +managers list the directories before the files; if you want that
 +behavior, customize the option @code{ls-lisp-dirs-first} to a
 +non-@code{nil} value.
 +
 +@vindex ls-lisp-verbosity
 +  The variable @code{ls-lisp-verbosity} controls the file attributes
 +that @file{ls-lisp.el} displays.  The value should be a list that
 +contains one or more of the symbols @code{links}, @code{uid}, and
 +@code{gid}.  @code{links} means display the count of different file
 +names that are associated with (a.k.a.@: @dfn{links to}) the file's
 +data; this is only useful on NTFS volumes.  @code{uid} means display
 +the numerical identifier of the user who owns the file.  @code{gid}
 +means display the numerical identifier of the file owner's group.  The
 +default value is @code{(links uid gid)} i.e., all the 3 optional
 +attributes are displayed.
 +
 +@vindex ls-lisp-emulation
 +  The variable @code{ls-lisp-emulation} controls the flavor of the
 +@code{ls} emulation by setting the defaults for the 3 options
 +described above: @code{ls-lisp-ignore-case},
 +@code{ls-lisp-dirs-first}, and @code{ls-lisp-verbosity}.  The value of
 +this option can be one of the following symbols:
 +
 +@table @code
 +@item GNU
 +@itemx nil
 +Emulate @sc{gnu} systems; this is the default.  This sets
 +@code{ls-lisp-ignore-case} and @code{ls-lisp-dirs-first} to
 +@code{nil}, and @code{ls-lisp-verbosity} to @code{(links uid gid)}.
 +@item UNIX
 +Emulate Unix systems.  Like @code{GNU}, but sets
 +@code{ls-lisp-verbosity} to @code{(links uid)}.
 +@item MacOS
 +Emulate MacOS@.  Sets @code{ls-lisp-ignore-case} to @code{t}, and
 +@code{ls-lisp-dirs-first} and @code{ls-lisp-verbosity} to @code{nil}.
 +@item MS-Windows
 +Emulate MS-Windows.  Sets @code{ls-lisp-ignore-case} and
 +@code{ls-lisp-dirs-first} to @code{t}, and @code{ls-lisp-verbosity} to
 +@code{(links)} on Windows NT/2K/XP/2K3 and to @code{nil} on Windows 9X@.
 +Note that the default emulation is @emph{not} @code{MS-Windows}, even
 +on Windows, since many users of Emacs on those platforms prefer the
 +@sc{gnu} defaults.
 +@end table
 +
 +@noindent
 +Any other value of @code{ls-lisp-emulation} means the same as @code{GNU}.
 +Customizing this option calls the function @code{ls-lisp-set-options} to
 +update the 3 dependent options as needed.  If you change the value of
 +this variable without using customize after @file{ls-lisp.el} is loaded
 +(note that it is preloaded on MS-Windows and MS-DOS), you can call that
 +function manually for the same result.
 +
 +@vindex ls-lisp-support-shell-wildcards
 +  The variable @code{ls-lisp-support-shell-wildcards} controls how
 +file-name patterns are supported: if it is non-@code{nil} (the
 +default), they are treated as shell-style wildcards; otherwise they
 +are treated as Emacs regular expressions.
 +
 +@vindex ls-lisp-format-time-list
 +  The variable @code{ls-lisp-format-time-list} defines how to format
 +the date and time of files.  @emph{The value of this variable is
 +ignored}, unless Emacs cannot determine the current locale.  (However,
 +if the value of @code{ls-lisp-use-localized-time-format} is
 +non-@code{nil}, Emacs obeys @code{ls-lisp-format-time-list} even if
 +the current locale is available; see below.)
 +
 +The value of @code{ls-lisp-format-time-list} is a list of 2 strings.
 +The first string is used if the file was modified within the current
 +year, while the second string is used for older files.  In each of
 +these two strings you can use @samp{%}-sequences to substitute parts
 +of the time.  For example:
 +@lisp
 +("%b %e %H:%M" "%b %e  %Y")
 +@end lisp
 +
 +@noindent
 +Note that the strings substituted for these @samp{%}-sequences depend
 +on the current locale.  @xref{Time Parsing,,, elisp, The Emacs Lisp
 +Reference Manual}, for more about format time specs.
 +
 +@vindex ls-lisp-use-localized-time-format
 +  Normally, Emacs formats the file time stamps in either traditional
 +or ISO-style time format.  However, if the value of the variable
 +@code{ls-lisp-use-localized-time-format} is non-@code{nil}, Emacs
 +formats file time stamps according to what
 +@code{ls-lisp-format-time-list} specifies.  The @samp{%}-sequences in
 +@code{ls-lisp-format-time-list} produce locale-dependent month and day
 +names, which might cause misalignment of columns in Dired display.
 +@end ifnottex
 +
 +@node Windows HOME
 +@section HOME and Startup Directories 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
 +Windows version; typical values are @file{C:\Documents and
 +Settings\@var{username}\Application Data} on Windows 2000/XP/2K3,
 +@file{C:\Users\@var{username}\AppData\Roaming} on Windows
 +Vista/7/2008, and either @file{C:\WINDOWS\Application Data} or
 +@file{C:\WINDOWS\Profiles\@var{username}\Application Data} on Windows
 +9X/ME@.  If this directory does not exist or cannot be accessed, Emacs
 +falls back to @file{C:\} as the default value of @code{HOME}.
 +
 +  You can override this default value of @code{HOME} by explicitly
 +setting the environment variable @env{HOME} to point to any directory
 +on your system.  @env{HOME} can be set either from the command shell
 +prompt or from @samp{Properties} dialog of @samp{My Computer}.
 +@code{HOME} can also be set in the system registry,
 +@pxref{MS-Windows Registry}.
 +
 +  For compatibility with older versions of Emacs@footnote{
 +Older versions of Emacs didn't check the application data directory.
 +}, if there is a file named @file{.emacs} in @file{C:\}, the root
 +directory of drive @file{C:}, and @env{HOME} is set neither in the
 +environment nor in the Registry, Emacs will treat @file{C:\} as the
 +default @code{HOME} location, and will not look in the application
 +data directory, even if it exists.  Note that only @file{.emacs} is
 +looked for in @file{C:\}; the older name @file{_emacs} (see below) is
 +not.  This use of @file{C:\.emacs} to define @code{HOME} is
 +deprecated.
 +
 +  Whatever the final place is, Emacs sets the internal value of the
 +@env{HOME} environment variable to point to it, and it will use that
 +location for other files and directories it normally looks for or
 +creates in your home directory.
 +
 +  You can always find out what Emacs thinks is your home directory's
 +location by typing @kbd{C-x d ~/ @key{RET}}.  This should present the
 +list of files in the home directory, and show its full name on the
 +first line.  Likewise, to visit your init file, type @kbd{C-x C-f
 +~/.emacs @key{RET}} (assuming the file's name is @file{.emacs}).
 +
 +@cindex init file @file{.emacs} on MS-Windows
 +  The home directory is where your init file is stored.  It can have
 +any name mentioned in @ref{Init File}.
 +
 +@cindex @file{_emacs} init file, MS-Windows
 +  Because MS-DOS does not allow file names with leading dots, and
 +older Windows systems made it hard to create files with such names,
 +the Windows port of Emacs supports an init file name @file{_emacs}, if
 +such a file exists in the home directory and @file{.emacs} does not.
 +This name is considered obsolete.
 +
 +@node Windows Keyboard
 +@section Keyboard Usage on MS-Windows
 +@cindex keyboard, MS-Windows
 +
 +  This section describes the Windows-specific features related to
 +keyboard input in Emacs.
 +
 +@cindex MS-Windows keyboard shortcuts
 +  Many key combinations (known as ``keyboard shortcuts'') that have
 +conventional uses in MS-Windows programs conflict with traditional
 +Emacs key bindings.  (These Emacs key bindings were established years
 +before Microsoft was founded.)  Examples of conflicts include
 +@kbd{C-c}, @kbd{C-x}, @kbd{C-z}, @kbd{C-a}, and @kbd{W-@key{SPC}}.
 +You can redefine some of them with meanings more like the MS-Windows
 +meanings by enabling CUA Mode (@pxref{CUA Bindings}).
 +
 +@iftex
 +@inforef{Windows Keyboard, , emacs}, for information about additional
 +Windows-specific variables in this category.
 +@end iftex
 +@ifnottex
 +@vindex w32-alt-is-meta
 +@cindex @code{Alt} key (MS-Windows)
 +  By default, the key labeled @key{Alt} is mapped as the @key{META}
 +key.  If you wish it to produce the @code{Alt} modifier instead, set
 +the variable @code{w32-alt-is-meta} to a @code{nil} value.
 +
 +@findex w32-register-hot-key
 +@findex w32-unregister-hot-key
 +  MS-Windows reserves certain key combinations, such as
 +@kbd{@key{Alt}-@key{TAB}}, for its own use.  These key combinations are
 +intercepted by the system before Emacs can see them.  You can use the
 +@code{w32-register-hot-key} function to allow a key sequence to be
 +seen by Emacs instead of being grabbed by Windows.  This function
 +registers a key sequence as a @dfn{hot key}, overriding the special
 +meaning of that key sequence for Windows.  (MS-Windows is told that
 +the key sequence is a hot key only when one of the Emacs windows has
 +focus, so that the special keys still have their usual meaning for
 +other Windows applications.)
 +
 +  The argument to @code{w32-register-hot-key} must be a single key,
 +with or without modifiers, in vector form that would be acceptable to
 +@code{define-key}.  The meta modifier is interpreted as the @key{Alt}
 +key if @code{w32-alt-is-meta} is @code{t} (the default), and the hyper
 +modifier is always interpreted as the Windows key (usually labeled
 +with @key{start} and the Windows logo).  If the function succeeds in
 +registering the key sequence, it returns the hotkey ID, a number;
 +otherwise it returns @code{nil}.
 +
 +@kindex M-TAB@r{, (MS-Windows)}
 +@cindex @kbd{M-@key{TAB}} vs @kbd{@key{Alt}-@key{TAB}} (MS-Windows)
 +@cindex @kbd{@key{Alt}-@key{TAB}} vs @kbd{M-@key{TAB}} (MS-Windows)
 +  For example, @code{(w32-register-hot-key [M-tab])} lets you use
 +@kbd{M-@key{TAB}} normally in Emacs; for instance, to complete the word or
 +symbol at point at top level, or to complete the current search string
 +against previously sought strings during incremental search.
 +
 +  The function @code{w32-unregister-hot-key} reverses the effect of
 +@code{w32-register-hot-key} for its argument key sequence.
 +
 +@vindex w32-capslock-is-shiftlock
 +  By default, the @key{CapsLock} key only affects normal character
 +keys (it converts lower-case characters to their upper-case
 +variants).  However, if you set the variable
 +@code{w32-capslock-is-shiftlock} to a non-@code{nil} value, the
 +@key{CapsLock} key will affect non-character keys as well, as if you
 +pressed the @key{Shift} key while typing the non-character key.
 +
 +@vindex w32-enable-caps-lock
 +  If the variable @code{w32-enable-caps-lock} is set to a @code{nil}
 +value, the @key{CapsLock} key produces the symbol @code{capslock}
 +instead of the shifted version of they keys.  The default value is
 +@code{t}.
 +
 +@vindex w32-enable-num-lock
 +@cindex keypad keys (MS-Windows)
 +  Similarly, if @code{w32-enable-num-lock} is @code{nil}, the
 +@key{NumLock} key will produce the symbol @code{kp-numlock}.  The
 +default is @code{t}, which causes @key{NumLock} to work as expected:
 +toggle the meaning of the keys on the numeric keypad.
 +@end ifnottex
 +
 +@vindex w32-apps-modifier
 +  The variable @code{w32-apps-modifier} controls the effect of the
 +@key{Apps} key (usually located between the right @key{Alt} and the
 +right @key{Ctrl} keys).  Its value can be one of the symbols
 +@code{hyper}, @code{super}, @code{meta}, @code{alt}, @code{control},
 +or @code{shift} for the respective modifier, or @code{nil} to appear
 +as the key @code{apps}.  The default is @code{nil}.
 +
 +@vindex w32-lwindow-modifier
 +@vindex w32-rwindow-modifier
 +@vindex w32-scroll-lock-modifier
 +  The variable @code{w32-lwindow-modifier} determines the effect of
 +the left Windows key (usually labeled with @key{start} and the Windows
 +logo).  If its value is @code{nil} (the default), the key will produce
 +the symbol @code{lwindow}.  Setting it to one of the symbols
 +@code{hyper}, @code{super}, @code{meta}, @code{alt}, @code{control},
 +or @code{shift} will produce the respective modifier.  A similar
 +variable @code{w32-rwindow-modifier} controls the effect of the right
 +Windows key, and @code{w32-scroll-lock-modifier} does the same for the
 +@key{ScrLock} key.  If these variables are set to @code{nil}, the
 +right Windows key produces the symbol @code{rwindow} and @key{ScrLock}
 +produces the symbol @code{scroll}.
 +
 +@vindex w32-pass-alt-to-system
 +@cindex Windows system menu
 +@cindex @code{Alt} key invokes menu (Windows)
 +  Emacs compiled as a native Windows application normally turns off
 +the Windows feature that tapping the @key{Alt} key invokes the Windows
 +menu.  The reason is that the @key{Alt} serves as @key{META} in Emacs.
 +When using Emacs, users often press the @key{META} key temporarily and
 +then change their minds; if this has the effect of bringing up the
 +Windows menu, it alters the meaning of subsequent commands.  Many
 +users find this frustrating.
 +
 +  You can re-enable Windows's default handling of tapping the @key{Alt}
 +key by setting @code{w32-pass-alt-to-system} to a non-@code{nil}
 +value.
 +
 +@ifnottex
 +@vindex w32-pass-lwindow-to-system
 +@vindex w32-pass-rwindow-to-system
 +  The variables @code{w32-pass-lwindow-to-system} and
 +@code{w32-pass-rwindow-to-system} determine whether the respective
 +keys are passed to Windows or swallowed by Emacs.  If the value is
 +@code{nil}, the respective key is silently swallowed by Emacs,
 +otherwise it is passed to Windows.  The default is @code{t} for both
 +of these variables.  Passing each of these keys to Windows produces
 +its normal effect: for example, @kbd{@key{Lwindow}} opens the
 +@code{Start} menu, etc.@footnote{
 +Some combinations of the ``Windows'' keys with other keys are caught
 +by Windows at a low level in a way that Emacs currently cannot prevent.
 +For example, @kbd{@key{Lwindow} r} always pops up the Windows
 +@samp{Run} dialog.  Customizing the value of
 +@code{w32-phantom-key-code} might help in some cases, though.}
 +
 +@vindex w32-recognize-altgr
 +@kindex AltGr @r{(MS-Windows)}
 +@cindex AltGr key (MS-Windows)
 +  The variable @code{w32-recognize-altgr} controls whether the
 +@key{AltGr} key (if it exists on your keyboard), or its equivalent,
 +the combination of the right @key{Alt} and left @key{Ctrl} keys
 +pressed together, is recognized as the @key{AltGr} key.  The default
 +is @code{t}, which means these keys produce @code{AltGr}; setting it
 +to @code{nil} causes @key{AltGr} or the equivalent key combination to
 +be interpreted as the combination of @key{Ctrl} and @key{META}
 +modifiers.
 +@end ifnottex
 +
 +@node Windows Mouse
 +@section Mouse Usage on MS-Windows
 +@cindex mouse, and MS-Windows
 +
 +  This section describes the Windows-specific variables related to
 +the mouse.
 +
 +@vindex w32-mouse-button-tolerance
 +@cindex simulation of middle mouse button
 +  The variable @code{w32-mouse-button-tolerance} specifies the
 +time interval, in milliseconds, for faking middle mouse button press
 +on 2-button mice.  If both mouse buttons are depressed within this
 +time interval, Emacs generates a middle mouse button click event
 +instead of a double click on one of the buttons.
 +
 +@vindex w32-pass-extra-mouse-buttons-to-system
 +  If the variable @code{w32-pass-extra-mouse-buttons-to-system} is
 +non-@code{nil}, Emacs passes the fourth and fifth mouse buttons to
 +Windows.
 +
 +@vindex w32-swap-mouse-buttons
 +  The variable @code{w32-swap-mouse-buttons} controls which of the 3
 +mouse buttons generates the @kbd{mouse-2} events.  When it is
 +@code{nil} (the default), the middle button generates @kbd{mouse-2}
 +and the right button generates @kbd{mouse-3} events.  If this variable
 +is non-@code{nil}, the roles of these two buttons are reversed.
 +
 +@node Windows Processes
 +@section Subprocesses on Windows 9X/ME and Windows NT/2K/XP
 +@cindex subprocesses on MS-Windows
 +
 +@cindex DOS applications, running from Emacs
 +  Emacs compiled as a native Windows application (as opposed to the DOS
 +version) includes full support for asynchronous subprocesses.
 +In the Windows version, synchronous and asynchronous subprocesses work
 +fine on both
 +Windows 9X/ME and Windows NT/2K/XP as long as you run only 32-bit Windows
 +applications.  However, when you run a DOS application in a subprocess,
 +you may encounter problems or be unable to run the application at all;
 +and if you run two DOS applications at the same time in two
 +subprocesses, you may have to reboot your system.
 +
 +Since the standard command interpreter (and most command line utilities)
 +on Windows 9X are DOS applications, these problems are significant when
 +using that system.  But there's nothing we can do about them; only
 +Microsoft can fix them.
 +
 +If you run just one DOS application subprocess, the subprocess should
 +work as expected as long as it is ``well-behaved'' and does not perform
 +direct screen access or other unusual actions.  If you have a CPU
 +monitor application, your machine will appear to be 100% busy even when
 +the DOS application is idle, but this is only an artifact of the way CPU
 +monitors measure processor load.
 +
 +You must terminate the DOS application before you start any other DOS
 +application in a different subprocess.  Emacs is unable to interrupt or
 +terminate a DOS subprocess.  The only way you can terminate such a
 +subprocess is by giving it a command that tells its program to exit.
 +
 +If you attempt to run two DOS applications at the same time in separate
 +subprocesses, the second one that is started will be suspended until the
 +first one finishes, even if either or both of them are asynchronous.
 +
 +@cindex kill DOS application
 +If you can go to the first subprocess, and tell it to exit, the second
 +subprocess should continue normally.  However, if the second subprocess
 +is synchronous, Emacs itself will be hung until the first subprocess
 +finishes.  If it will not finish without user input, then you have no
 +choice but to reboot if you are running on Windows 9X@.  If you are
 +running on Windows NT/2K/XP, you can use a process viewer application to kill
 +the appropriate instance of NTVDM instead (this will terminate both DOS
 +subprocesses).
 +
 +If you have to reboot Windows 9X in this situation, do not use the
 +@code{Shutdown} command on the @code{Start} menu; that usually hangs the
 +system.  Instead, type @kbd{@key{Ctrl}-@key{Alt}-@key{DEL}} and then choose
 +@code{Shutdown}.  That usually works, although it may take a few minutes
 +to do its job.
 +
 +@vindex w32-quote-process-args
 +  The variable @code{w32-quote-process-args} controls how Emacs quotes
 +the process arguments.  Non-@code{nil} means quote with the @code{"}
 +character.  If the value is a character, Emacs uses that character to escape
 +any quote characters that appear; otherwise it chooses a suitable escape
 +character based on the type of the program.
 +
 +@ifnottex
 +@findex w32-shell-execute
 +  The function @code{w32-shell-execute} can be useful for writing
 +customized commands that run MS-Windows applications registered to
 +handle a certain standard Windows operation for a specific type of
 +document or file.  This function is a wrapper around the Windows
 +@code{ShellExecute} API@.  See the MS-Windows API documentation for
 +more details.
 +@end ifnottex
 +
 +@node Windows Printing
 +@section Printing and MS-Windows
 +
 +  Printing commands, such as @code{lpr-buffer} (@pxref{Printing}) and
 +@code{ps-print-buffer} (@pxref{PostScript}) work in MS-DOS and
 +MS-Windows by sending the output to one of the printer ports, if a
 +Posix-style @code{lpr} program is unavailable.  The same Emacs
 +variables control printing on all systems, but in some cases they have
 +different default values on MS-DOS and MS-Windows.
 +
 +  Emacs on MS Windows attempts to determine your default printer
 +automatically (using the function @code{default-printer-name}).
 +But in some rare cases this can fail, or you may wish to use a different
 +printer from within Emacs.  The rest of this section explains how to
 +tell Emacs which printer to use.
 +
 +@vindex printer-name@r{, (MS-DOS/MS-Windows)}
 +  If you want to use your local printer, then set the Lisp variable
 +@code{lpr-command} to @code{""} (its default value on Windows) and
 +@code{printer-name} to the name of the printer port---for example,
 +@code{"PRN"}, the usual local printer port, or @code{"LPT2"}, or
 +@code{"COM1"} for a serial printer.  You can also set
 +@code{printer-name} to a file name, in which case ``printed'' output
 +is actually appended to that file.  If you set @code{printer-name} to
 +@code{"NUL"}, printed output is silently discarded (sent to the system
 +null device).
 +
 +  You can also use a printer shared by another machine by setting
 +@code{printer-name} to the UNC share name for that printer---for
 +example, @code{"//joes_pc/hp4si"}.  (It doesn't matter whether you use
 +forward slashes or backslashes here.)  To find out the names of shared
 +printers, run the command @samp{net view} from the command prompt to
 +obtain a list of servers, and @samp{net view @var{server-name}} to see
 +the names of printers (and directories) shared by that server.
 +Alternatively, click the @samp{Network Neighborhood} icon on your
 +desktop, and look for machines that share their printers via the
 +network.
 +
 +@cindex @samp{net use}, and printing on MS-Windows
 +@cindex networked printers (MS-Windows)
 +  If the printer doesn't appear in the output of @samp{net view}, or
 +if setting @code{printer-name} to the UNC share name doesn't produce a
 +hardcopy on that printer, you can use the @samp{net use} command to
 +connect a local print port such as @code{"LPT2"} to the networked
 +printer.  For example, typing @kbd{net use LPT2: \\joes_pc\hp4si}@footnote{
 +Note that the @samp{net use} command requires the UNC share name to be
 +typed with the Windows-style backslashes, while the value of
 +@code{printer-name} can be set with either forward- or backslashes.}
 +causes Windows to @dfn{capture} the @code{LPT2} port and redirect the
 +printed material to the printer connected to the machine @code{joes_pc}.
 +After this command, setting @code{printer-name} to @code{"LPT2"}
 +should produce the hardcopy on the networked printer.
 +
 +  With some varieties of Windows network software, you can instruct
 +Windows to capture a specific printer port such as @code{"LPT2"}, and
 +redirect it to a networked printer via the @w{@code{Control
 +Panel->Printers}} applet instead of @samp{net use}.
 +
 +  If you set @code{printer-name} to a file name, it's best to use an
 +absolute file name.  Emacs changes the working directory according to
 +the default directory of the current buffer, so if the file name in
 +@code{printer-name} is relative, you will end up with several such
 +files, each one in the directory of the buffer from which the printing
 +was done.
 +
 +  If the value of @code{printer-name} is correct, but printing does
 +not produce the hardcopy on your printer, it is possible that your
 +printer does not support printing plain text (some cheap printers omit
 +this functionality).  In that case, try the PostScript print commands,
 +described below.
 +
 +@findex print-buffer @r{(MS-DOS)}
 +@findex print-region @r{(MS-DOS)}
 +@vindex lpr-headers-switches @r{(MS-DOS)}
 +  The commands @code{print-buffer} and @code{print-region} call the
 +@code{pr} program, or use special switches to the @code{lpr} program, to
 +produce headers on each printed page.  MS-DOS and MS-Windows don't
 +normally have these programs, so by default, the variable
 +@code{lpr-headers-switches} is set so that the requests to print page
 +headers are silently ignored.  Thus, @code{print-buffer} and
 +@code{print-region} produce the same output as @code{lpr-buffer} and
 +@code{lpr-region}, respectively.  If you do have a suitable @code{pr}
 +program (for example, from GNU Coreutils), set
 +@code{lpr-headers-switches} to @code{nil}; Emacs will then call
 +@code{pr} to produce the page headers, and print the resulting output as
 +specified by @code{printer-name}.
 +
 +@vindex print-region-function @r{(MS-DOS)}
 +@cindex lpr usage under MS-DOS
 +@vindex lpr-command @r{(MS-DOS)}
 +@vindex lpr-switches @r{(MS-DOS)}
 +  Finally, if you do have an @code{lpr} work-alike, you can set the
 +variable @code{lpr-command} to @code{"lpr"}.  Then Emacs will use
 +@code{lpr} for printing, as on other systems.  (If the name of the
 +program isn't @code{lpr}, set @code{lpr-command} to the appropriate value.)
 +The variable @code{lpr-switches} has its standard meaning
 +when @code{lpr-command} is not @code{""}.  If the variable
 +@code{printer-name} has a string value, it is used as the value for the
 +@code{-P} option to @code{lpr}, as on Unix.
 +
 +@findex ps-print-buffer @r{(MS-DOS)}
 +@findex ps-spool-buffer @r{(MS-DOS)}
 +@vindex ps-printer-name @r{(MS-DOS)}
 +@vindex ps-lpr-command @r{(MS-DOS)}
 +@vindex ps-lpr-switches @r{(MS-DOS)}
 +  A parallel set of variables, @code{ps-lpr-command},
 +@code{ps-lpr-switches}, and @code{ps-printer-name} (@pxref{PostScript
 +Variables}), defines how PostScript files should be printed.  These
 +variables are used in the same way as the corresponding variables
 +described above for non-PostScript printing.  Thus, the value of
 +@code{ps-printer-name} is used as the name of the device (or file) to
 +which PostScript output is sent, just as @code{printer-name} is used
 +for non-PostScript printing.  (There are two distinct sets of
 +variables in case you have two printers attached to two different
 +ports, and only one of them is a PostScript printer.)
 +
 +@cindex Ghostscript, use for PostScript printing
 +  The default value of the variable @code{ps-lpr-command} is @code{""},
 +which causes PostScript output to be sent to the printer port specified
 +by @code{ps-printer-name}; but @code{ps-lpr-command} can also be set to
 +the name of a program which will accept PostScript files.  Thus, if you
 +have a non-PostScript printer, you can set this variable to the name of
 +a PostScript interpreter program (such as Ghostscript).  Any switches
 +that need to be passed to the interpreter program are specified using
 +@code{ps-lpr-switches}.  (If the value of @code{ps-printer-name} is a
 +string, it will be added to the list of switches as the value for the
 +@code{-P} option.  This is probably only useful if you are using
 +@code{lpr}, so when using an interpreter typically you would set
 +@code{ps-printer-name} to something other than a string so it is
 +ignored.)
 +
 +  For example, to use Ghostscript for printing on the system's default
 +printer, put this in your @file{.emacs} file:
 +
 +@example
 +(setq ps-printer-name t)
 +(setq ps-lpr-command "D:/gs6.01/bin/gswin32c.exe")
 +(setq ps-lpr-switches '("-q" "-dNOPAUSE" "-dBATCH"
 +                        "-sDEVICE=mswinpr2"
 +                        "-sPAPERSIZE=a4"))
 +@end example
 +
 +@noindent
 +(This assumes that Ghostscript is installed in the
 +@file{D:/gs6.01} directory.)
 +
 +@node Windows Fonts
 +@section Specifying Fonts on MS-Windows
 +@cindex font specification (MS Windows)
 +
 +  Starting with Emacs 23, fonts are specified by their name, size
 +and optional properties.  The format for specifying fonts comes from the
 +fontconfig library used in modern Free desktops:
 +
 +@example
 +  [Family[-PointSize]][:Option1=Value1[:Option2=Value2[...]]]
 +@end example
 +
 +  The old XLFD based format is also supported for backwards compatibility.
 +
 +@cindex font backend selection (MS-Windows)
 +  Emacs 23 and later supports a number of font backends.  Currently,
 +the @code{gdi} and @code{uniscribe} backends are supported on Windows.
 +The @code{gdi} font backend is available on all versions of Windows,
 +and supports all fonts that are natively supported by Windows.  The
 +@code{uniscribe} font backend is available on Windows 2000 and later,
 +and supports TrueType and OpenType fonts.  Some languages requiring
 +complex layout can only be properly supported by the Uniscribe
 +backend.  By default, both backends are enabled if supported, with
 +@code{uniscribe} taking priority over @code{gdi}.  To override that
 +and use the GDI backend even if Uniscribe is available, invoke Emacs
 +with the @kbd{-xrm Emacs.fontBackend:gdi} command-line argument, or
 +add a @code{Emacs.fontBackend} resource with the value @code{gdi} in
 +the Registry under either the
 +@samp{HKEY_CURRENT_USER\SOFTWARE\GNU\Emacs} or the
 +@samp{HKEY_LOCAL_MACHINE\SOFTWARE\GNU\Emacs} key (@pxref{Resources}).
 +
 +@cindex font properties (MS Windows)
 +@noindent
 +Optional properties common to all font backends on MS-Windows are:
 +
 +@table @code
 +
 +@vindex font-weight-table @r{(MS-Windows)}
 +@item weight
 +Specifies the weight of the font.  Special values @code{light},
 +@code{medium}, @code{demibold}, @code{bold}, and @code{black} can be specified
 +without @code{weight=} (e.g., @kbd{Courier New-12:bold}).  Otherwise,
 +the weight should be a numeric value between 100 and 900, or one of the
 +named weights in @code{font-weight-table}.  If unspecified, a regular font
 +is assumed.
 +
 +@vindex font-slant-table @r{(MS-Windows)}
 +@item slant
 +Specifies whether the font is italic.  Special values
 +@code{roman}, @code{italic} and @code{oblique} can be specified
 +without @code{slant=} (e.g., @kbd{Courier New-12:italic}).
 +Otherwise, the slant should be a numeric value, or one of the named
 +slants in @code{font-slant-table}.  On Windows, any slant above 150 is
 +treated as italics, and anything below as roman.
 +
 +@item family
 +Specifies the font family, but normally this will be specified
 +at the start of the font name.
 +
 +@item pixelsize
 +Specifies the font size in pixels.  This can be used instead
 +of the point size specified after the family name.
 +
 +@item adstyle
 +Specifies additional style information for the font.
 +On MS-Windows, the values @code{mono}, @code{sans}, @code{serif},
 +@code{script} and @code{decorative} are recognized.  These are most useful
 +as a fallback with the font family left unspecified.
 +
 +@vindex w32-charset-info-alist
 +@item registry
 +Specifies the character set registry that the font is
 +expected to cover.  Most TrueType and OpenType fonts will be Unicode fonts
 +that cover several national character sets, but you can narrow down the
 +selection of fonts to those that support a particular character set by
 +using a specific registry from @code{w32-charset-info-alist} here.
 +
 +@item spacing
 +Specifies how the font is spaced.  The @code{p} spacing specifies
 +a proportional font, and @code{m} or @code{c} specify a monospaced font.
 +
 +@item foundry
 +Not used on Windows, but for informational purposes and to
 +prevent problems with code that expects it to be set, is set internally to
 +@code{raster} for bitmapped fonts, @code{outline} for scalable fonts,
 +or @code{unknown} if the type cannot be determined as one of those.
 +@end table
 +
 +@cindex font properties (MS Windows gdi backend)
 +Options specific to @code{GDI} fonts:
 +
 +@table @code
 +
 +@cindex font scripts (MS Windows)
 +@cindex font Unicode subranges (MS Windows)
 +@item script
 +Specifies a Unicode subrange the font should support.
 +
 +The following scripts are recognized on Windows: @code{latin}, @code{greek},
 +@code{coptic}, @code{cyrillic}, @code{armenian}, @code{hebrew}, @code{arabic},
 +@code{syriac}, @code{nko}, @code{thaana}, @code{devanagari}, @code{bengali},
 +@code{gurmukhi}, @code{gujarati}, @code{oriya}, @code{tamil}, @code{telugu},
 +@code{kannada}, @code{malayam}, @code{sinhala}, @code{thai}, @code{lao},
 +@code{tibetan}, @code{myanmar}, @code{georgian}, @code{hangul},
 +@code{ethiopic}, @code{cherokee}, @code{canadian-aboriginal}, @code{ogham},
 +@code{runic}, @code{khmer}, @code{mongolian}, @code{symbol}, @code{braille},
 +@code{han}, @code{ideographic-description}, @code{cjk-misc}, @code{kana},
 +@code{bopomofo}, @code{kanbun}, @code{yi}, @code{byzantine-musical-symbol},
 +@code{musical-symbol}, and @code{mathematical}.
 +
 +@cindex font antialiasing (MS Windows)
 +@item antialias
 +Specifies the antialiasing method.  The value @code{none} means no
 +antialiasing, @code{standard} means use standard antialiasing,
 +@code{subpixel} means use subpixel antialiasing (known as Cleartype on
 +Windows), and @code{natural} means use subpixel antialiasing with
 +adjusted spacing between letters.  If unspecified, the font will use
 +the system default antialiasing.
 +@end table
 +
 +@node Windows Misc
 +@section Miscellaneous Windows-specific features
 +
 +  This section describes miscellaneous Windows-specific features.
 +
 +@vindex w32-use-visible-system-caret
 +@cindex screen reader software, MS-Windows
 +  The variable @code{w32-use-visible-system-caret} is a flag that
 +determines whether to make the system caret visible.  The default when
 +no screen reader software is in use is @code{nil}, which means Emacs
 +draws its own cursor to indicate the position of point.  A
 +non-@code{nil} value means Emacs will indicate point location with the
 +system caret; this facilitates use of screen reader software, and is
 +the default when such software is detected when running Emacs.
 +When this variable is non-@code{nil}, other variables affecting the
 +cursor display have no effect.
 +
 +@iftex
 +@inforef{Windows Misc, , emacs}, for information about additional
 +Windows-specific variables in this category.
 +@end iftex
 +
 +@ifnottex
 +@vindex w32-grab-focus-on-raise
 +@cindex frame focus policy, MS-Windows
 +  The variable @code{w32-grab-focus-on-raise}, if set to a
 +non-@code{nil} value causes a frame to grab focus when it is raised.
 +The default is @code{t}, which fits well with the Windows default
 +click-to-focus policy.
 +@end ifnottex
 +
 +@ifnottex
 +@include msdos-xtra.texi
 +@end ifnottex
Simple merge
index 260656c6cf76fff62e8bbd1b4f4c71d26ae391b1,319386d9f6c76c05b20df924dce394f7b7d63554..3644d40fabf69162e8503be9204d94ef7b8acafd
@@@ -1,9 -1,8 +1,13 @@@
 -2015-03-14  Eli Zaretskii  <eliz@gnu.org>
++2015-03-18  Eli Zaretskii  <eliz@gnu.org>
+       * minibuf.texi (Basic Completion): Fix a typo.  (Bug#20108)
 -2015-02-07  Eli Zaretskii  <eliz@gnu.org>
 +2015-03-09  Nicolas Petton <nicolas@petton.fr>
 +
 +      * sequences.texi (seq-into): Add documentation for the new
 +      seq-into function.
 +
 +2015-03-03  Eli Zaretskii  <eliz@gnu.org>
  
        * processes.texi (Synchronous Processes): Update documentation of
        call-process-shell-command and process-file-shell-command.
Simple merge
index fc85bd97f738786c4444dbfb7e3071fbc1682406,8bb094778a2a80bce697c0d5dfcdad0d10854975..62f565191dcb2481e08d6217fcb8ea8b379dff9d
 -2015-03-16  Eli Zaretskii  <eliz@gnu.org>
++2015-03-18  Eli Zaretskii  <eliz@gnu.org>
+       * efaq-w32.texi: Remove outdated information and update.
 -2015-03-15  Martin Rudalics  <rudalics@gmx.at>
++2015-03-18  Martin Rudalics  <rudalics@gmx.at>
+       * efaq.texi (Fullscreen mode on MS-Windows): Fix description (Bug#20110).
 -2015-02-04  Kelvin White  <kwhite@gnu.org>
 +2015-03-04  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * tramp.texi (External methods) <adb>: Explain, when Tramp
 +      connects to devices.  Mention port numbers.
 +      (GVFS based methods, File name completion): Add index.
 +      (Multi-hops, Remote Programs, File name completion, Ad-hoc multi-hops):
 +      Improve wording.
 +
 +      * trampver.texi: Update release number.
 +
 +2015-03-03  Kelvin White  <kwhite@gnu.org>
  
        * 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
  
 -2014-12-29  Michael Albinus  <michael.albinus@gmx.de>
 +2015-03-02  Daniel Colascione  <dancol@dancol.org>
  
 -      Sync with Tramp 2.2.11.
 +      * cl.texi (Iteration Clauses): Mention iterator support.
 +
 +2015-02-25  Tassilo Horn  <tsdh@gnu.org>
 +
 +      * reftex.texi (Multifile Documents): Document
 +      reftex-include-file-commands.
 +      (Options): Mention that non-customize changes might require
 +      calling reftex-compile-variables.
 +
 +2015-02-21  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * texinfo.tex: Update from gnulib.
 +
 +2015-02-10  Lars Ingebrigtsen  <larsi@gnus.org>
 +
 +      * eww.texi (Basics): Mention eww-toggle-fonts.
 +
 +2015-02-05  Glenn Morris  <rgm@gnu.org>
 +
 +      * auth.texi (Multiple GMail accounts with Gnus): Markup fix.
 +
 +2015-02-05  Teodor Zlatanov  <tzz@lifelogs.com>
 +
 +      * auth.texi (Multiple GMail accounts with Gnus): Add FAQ.
 +
 +2015-02-05  Lars Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Using IMAP): Fix menu node name.
 +
 +2015-02-05  Trevor Murphy  <trevor.m.murphy@gmail.com>
 +
 +      * gnus.texi (Support for IMAP Extensions): Document the Gmail label
 +      extension.
 +
 +2015-02-04  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * texinfo.tex: Update from gnulib.
  
 +2015-01-23  Thomas Fitzsimmons  <fitzsim@fitzsim.org>
 +
 +      * eudc.texi (LDAP Configuration): Rename from LDAP Requirements
 +      and provide configuration examples.
 +
 +2015-01-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * eieio.texi (Slot Options): Document :protection as unsupported.
 +
 +2015-01-01  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      Sync with Tramp 2.2.11.
        * trampver.texi: Update release number.
  
 -2014-11-10  Tassilo Horn  <tsdh@gnu.org>
 +2014-12-31  Paul Eggert  <eggert@cs.ucla.edu>
  
 -      * gnus.texi (HTML): Update section so that it mentions shr and w3m.
 -      Also link the full EWW manual that explains more on shr, too.
 +      Less 'make' chatter for Emacs doc
 +      * Makefile.in (AM_DEFAULT_VERBOSITY, AM_V_GEN, am__v_GEN_)
 +      (am__v_GEN_0, am__v_GEN_1): New macros, from ../../src/Makefile.in.
 +      (ENVADD, $(buildinfodir)/%.info, %.html, ${buildinfodir}/ccmode.info)
 +      (${buildinfodir}/efaq%.info, efaq%.html):
 +      Use them.
  
 -      * gnus-faq.texi (FAQ 4 - Reading messages, FAQ 4-16): Add Q&A on how to
 -      increase contrast when displaying HTML mail with shr.
 +2014-12-31  Filipp Gunbin  <fgunbin@fastmail.fm>
 +
 +      * info.texi (Create Info buffer): Mention info-display-manual prefix.
 +
 +2014-12-29  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * efaq.texi (Displaying the current file name in the titlebar):
 +      Prefer (system-name) to system-name.
 +      * smtpmail.texi (Server workarounds): Fix grammar.
 +
 +2014-12-18  Eric Abrahamsen  <eric@ericabrahamsen.net>
 +
 +      * gnus.texi (Gnus Registry Setup): Explain pruning changes.
 +      Mention gnus-registry-prune-factor. Explain sorting changes and
 +      gnus-registry-default-sort-function. Correct file extension.
 +
 +2014-12-17  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc.texi (About This Manual): Update instructions
 +      for building the manual.
 +
 +2014-12-15  Alan Mackenzie  <acm@muc.de>
 +
 +      "Advice" is a mass noun.  Amend text accordingly.
 +      * cl.texi (Obsolete Macros): Replace "an advice" with "advice".
 +
 +2014-12-12  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * texinfo.tex: Update from gnulib.
 +
 +2014-12-08  Andrey Kotlarski  <m00naticus@gmail.com>
 +
 +      * eww.texi (Basics): Document managing multiple eww buffers.
 +
 +2014-12-05  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * eww.texi (Basics): Document eww PDF viewing.
 +
 +2014-11-23  Ivan Shmakov  <ivan@siamics.net>
 +
 +      * eww.texi (Advanced): Mention the Desktop stuff (bug#18010).
 +
 +2014-11-23  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * tramp.texi (Remote processes): Let-bind environment variables to
 +      `process-environment' when running `process-file' or
 +      `start-file-process'.
 +
 +2014-11-19  Ivan Shmakov  <ivan@siamics.net>
 +
 +      * eww.texi (Basics): Document `eww-history-limit'.
 +
 +2014-11-14  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * org.texi (The date/time prompt, Matching tags and properties):
 +      Use leading zero with 24-hour times less than 10:00.
 +
 +2014-11-13  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * eww.texi (Variable Index): Mention `eww-after-render-hook'.
 +
 +2014-11-10  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * eww.texi (Basics): Document `eww-readable'.
 +
 +2014-11-10  Katsumi Yamaoka  <yamaoka@jpl.org>
 +
 +      * gnus.texi (Top): Add missing `HTML' menu.
 +      (HTML): Fix xref to FAQ 4-16.
  
  2014-11-09  Glenn Morris  <rgm@gnu.org>
  
Simple merge
Simple merge
diff --cc src/ChangeLog
index 1b1a9c59033a07af3a8cfdda52088e72aa89c3f6,90908fcf759bb0e4fe8a855425d39c04c9b61ac7..bdec3c9cde14a6fb88831afed693b153a1f74efb
@@@ -1,74 -1,9 +1,79 @@@
 -2015-03-12  Glenn Morris  <rgm@gnu.org>
++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-02-28  Eli Zaretskii  <eliz@gnu.org>
 +2015-03-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * alloc.c (purecopy): Handle hash-tables.
 +
 +2015-03-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * minibuf.c (Fread_buffer): Add `predicate' argument.
 +      * callint.c (Fcall_interactively): Adjust calls accordingly.
 +
 +2015-03-15  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xdisp.c (handle_invisible_prop): Fix up it->position even when
 +      we are going to load overlays at the beginning of the invisible text.
 +      (setup_for_ellipsis): Reset the ignore_overlay_strings_at_pos_p
 +      flag also here.
 +      (next_overlay_string): Set the overlay_strings_at_end_processed_p
 +      flag only if the overlays just processed were actually loaded at EOB.
 +
 +2015-03-14  Daniel Colascione  <dancol@dancol.org>
 +
 +      * emacs.c (standard_args): Add --no-x-resources.
 +      (usage_message): Document that -Q implies --no-x-resources.
 +
 +2015-03-13  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * frame.c (x_get_resource_string) [!USE_GTK]: Don't define.
 +
 +      * editfns.c, systime.h (mktime_z) [!HAVE_TZALLOC]: Now static.
 +
 +2015-03-12  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32font.c (font_supported_scripts): Add subranges for Latin
 +      Supplement, Latin Extended-A/B, Vai, Supplemental Punctuation, Tai
 +      Le, Buginese, Yijing Hexagrams, Ancient Greek Numbers, Tai Xuan
 +      Jing, Counting Rods, Sundanese, Lepcha, Ol Chiki, Saurashtra,
 +      Kayah Li, Rejang, Ancient Symbols, Phistos Disc, Carian, Lycian,
 +      Lydian, Dominoe Tiles, and Mahjong Tiles.  Break the Mathematical
 +      Alphanumeric Symbols into several "scripts" like fontset.el does.
 +      (Bug#19993)
 +      (syms_of_w32font): DEFSYM all the new script symbols.
 +
 +2015-03-07  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32fns.c <ImmReleaseContext_Proc, ImmSetCompositionWindow_Proc>:
 +      Fix typedefs to be consistent with the corresponding w32 API
 +      signatures.
 +      (w32_wnd_proc) <WM_IME_STARTCOMPOSITION>: Don't invoke
 +      DefWindowProc if we successfully handled the message, as doing so
 +      causes problems in displaying selection dialogs.  (Bug#11732)
 +
 +2015-03-05  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Work around x86 glibc backtrace bug
 +      * sysdep.c (emacs_backtrace): Don't dump core on x86.
 +      Fixes: bug#19959
 +
 +2015-03-05  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * keyboard.c (make_lispy_position): When the click is on the
 +      right-side vertical scroll bar, pass the rightmost X coordinate to
 +      buffer_posn_from_coords, so that the returned text position
 +      reflects the closest point to the click.  Fixes region extension
 +      when mouse moves outside the Emacs frame that has scroll bars on
 +      the right.
 +
 +2015-03-04  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * frame.c (x_set_font): Try to keep frame height and width
 +      unchanged if tool bar size changes with new font.
 +
 +2015-03-03  Eli Zaretskii  <eliz@gnu.org>
  
        * search.c (find_newline): Avoid assertion violations in
        CHAR_TO_BYTE when a portion of the buffer was deleted and we look
diff --cc src/frame.h
Simple merge