guile-snarf configuration
[bpt/emacs.git] / doc / emacs / msdog.texi
index d31906d..7c5b360 100644 (file)
@@ -1,8 +1,8 @@
 @c This is part of the Emacs manual.
-@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012
-@c   Free Software Foundation, Inc.
+@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2014 Free Software
+@c Foundation, Inc.
 @c See file emacs.texi for copying conditions.
-@node Microsoft Windows, Manifesto, Mac OS / GNUstep, Top
+@node Microsoft Windows
 @appendix Emacs and Microsoft Windows/MS-DOS
 @cindex Microsoft Windows
 @cindex MS-Windows, Emacs peculiarities
@@ -40,7 +40,7 @@ here.
 * Windows Fonts::       Specifying fonts on MS-Windows.
 * Windows Misc::        Miscellaneous Windows features.
 @ifnottex
-* MS-DOS::              Using Emacs on MS-DOS (otherwise known as @dfn{MS-DOG}).
+* MS-DOS::              Using Emacs on MS-DOS.
 @end ifnottex
 @end menu
 
@@ -109,6 +109,21 @@ invoked---that will always give you an editor.  When invoked via
 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
@@ -159,7 +174,8 @@ 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 @code{dos2unix}.
+effectively converts the file to Unix EOL style, like the
+@code{dos2unix} program.
 
 @cindex untranslated file system
 @findex add-untranslated-filesystem
@@ -202,29 +218,6 @@ 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}.
 
-@vindex file-name-buffer-file-type-alist
-@cindex binary files, on MS-DOS/MS-Windows
-  Some kinds of files should not be converted at all, because their
-contents are not really text.  Therefore, Emacs on MS-Windows distinguishes
-certain files as @dfn{binary files}.  (This distinction is not part of
-MS-Windows; it is made by Emacs only.)  Binary files include executable
-programs, compressed archives, etc.  Emacs uses the file name to decide
-whether to treat a file as binary: the variable
-@code{file-name-buffer-file-type-alist} defines the file-name patterns
-that indicate binary files.  If a file name matches one of the patterns
-for binary files (those whose associations are of the type
-@code{(@var{pattern} . t)}, Emacs reads and writes that file using the
-@code{no-conversion} coding system (@pxref{Coding Systems}) which turns
-off @emph{all} coding-system conversions, not only the EOL conversion.
-@code{file-name-buffer-file-type-alist} also includes file-name patterns
-for files which are known to be Windows-style text files with
-carriage-return linefeed EOL format, such as @file{CONFIG.SYS}; Emacs
-always writes those files with Windows-style EOLs.
-
-  If a file which belongs to an untranslated file system matches one of
-the file-name patterns in @code{file-name-buffer-file-type-alist}, the
-EOL conversion is determined by @code{file-name-buffer-file-type-alist}.
-
 @node Windows Files
 @section File Names on MS-Windows
 @cindex file names on MS-Windows
@@ -263,8 +256,8 @@ FAT32, and XFAT volumes.
 @cindex Dired, and MS-Windows/MS-DOS
 @cindex @code{ls} emulation
 
-  Dired normally uses the external program @code{ls} (or its close
-work-alike) to produce the directory listing displayed in Dired
+  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}
@@ -281,8 +274,8 @@ 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{-i}, @option{-G}, @option{-g}, @option{-R},
-@option{-r}, @option{-S}, @option{-s}, @option{-t}, @option{-U},
+@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).
@@ -318,7 +311,7 @@ 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
+default value is @code{(links uid gid)} i.e., all the 3 optional
 attributes are displayed.
 
 @vindex ls-lisp-emulation
@@ -338,12 +331,12 @@ Emulate @sc{gnu} systems; this is the default.  This sets
 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
+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.
+@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.
@@ -399,23 +392,22 @@ names, which might cause misalignment of columns in Dired display.
 @section HOME and Startup Directories on MS-Windows
 @cindex @code{HOME} directory on MS-Windows
 
-  The Windows equivalent of the @code{HOME} directory 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 2K/XP/2K3,
-@file{C:\Users\@var{username}\AppData\Roaming} on Windows Vista/7/2K8,
-and either @file{C:\WINDOWS\Application Data} or
-@file{C:\WINDOWS\Profiles\@var{username}\Application Data} on the
-older Windows 9X/ME systems.  If this directory does not exist or
-cannot be accessed, Emacs falls back to @file{C:\} as the default
-value of @code{HOME}.
+  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 the @samp{My Computer}s @samp{Properties} dialog.
-@code{HOME} can also be set in the system registry, for details see
-@ref{MS-Windows Registry}.
+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.
@@ -431,9 +423,9 @@ 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 the user's home directory.
+creates in your home directory.
 
-  You can always find out where Emacs thinks is your home directory's
+  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
@@ -466,13 +458,6 @@ before Microsoft was founded.)  Examples of conflicts include
 You can redefine some of them with meanings more like the MS-Windows
 meanings by enabling CUA Mode (@pxref{CUA Bindings}).
 
-@kindex F10 @r{(MS-Windows)}
-@cindex menu bar access using keyboard @r{(MS-Windows)}
-  The @key{F10} key on Windows activates the menu bar in a way that
-makes it possible to use the menus without a mouse.  In this mode, the
-arrow keys traverse the menus, @key{RET} selects a highlighted menu
-item, and @key{ESC} closes the menu.
-
 @iftex
 @inforef{Windows Keyboard, , emacs}, for information about additional
 Windows-specific variables in this category.
@@ -487,10 +472,10 @@ 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{Alt-@key{TAB}}, for its own use.  These key combinations are
+@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 functions
+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
@@ -499,7 +484,7 @@ 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}
+@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
@@ -507,10 +492,10 @@ 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{Alt-@key{TAB}} (MS-Windows)
-@cindex @kbd{Alt-@key{TAB}} vs @kbd{M-@key{TAB}} (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-TAB} normally in Emacs, for instance, to complete the word or
+@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.
 
@@ -566,14 +551,14 @@ produces the symbol @code{scroll}.
 @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.
+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' default handling of tapping the @key{ALT}
+  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.
 
@@ -589,7 +574,7 @@ 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 low level in a way that Emacs currently cannot prevent.
+by Windows at 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.}
@@ -603,7 +588,7 @@ 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}
+be interpreted as the combination of @key{Ctrl} and @key{META}
 modifiers.
 @end ifnottex
 
@@ -612,7 +597,7 @@ modifiers.
 @cindex mouse, and MS-Windows
 
   This section describes the Windows-specific variables related to
-mouse.
+the mouse.
 
 @vindex w32-mouse-button-tolerance
 @cindex simulation of middle mouse button
@@ -675,22 +660,22 @@ 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
+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{CTL-ALT-@key{DEL}} and then choose
+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, use that character to escape
-any quote characters that appear; otherwise chose a suitable escape
+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
@@ -699,7 +684,7 @@ character based on the type of the program.
 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
+@code{ShellExecute} API@.  See the MS-Windows API documentation for
 more details.
 @end ifnottex
 
@@ -713,9 +698,9 @@ 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 Windows automatically determines your default printer and
-sets the variable @code{printer-name} to that printer's name.  But in
-some rare cases this can fail, or you may wish to use a different
+  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.
 
@@ -723,7 +708,7 @@ tell Emacs which printer to use.
   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{"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
@@ -738,7 +723,7 @@ 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 which share their printers via the
+desktop, and look for machines that share their printers via the
 network.
 
 @cindex @samp{net use}, and printing on MS-Windows
@@ -797,8 +782,8 @@ specified by @code{printer-name}.
   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 specify where to
-find it.)  The variable @code{lpr-switches} has its standard meaning
+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.
@@ -822,7 +807,7 @@ 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
+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
@@ -980,7 +965,7 @@ the system default antialiasing.
 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 by the
+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