@c This is part of the Emacs manual.
@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001,
-@c 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+@c 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Microsoft Windows, Manifesto, Mac OS, Top
@appendix Emacs and Microsoft Windows/MS-DOS
@vindex w32-get-true-file-attributes
If the variable @code{w32-get-true-file-attributes} is
non-@code{nil} (the default), Emacs tries to determine the accurate
-link counts for files. This option is only useful on the NT family of
-Windows (2K/XP/2K3), and it considerably slows down Dired and other
-features, so use it only on fast machines.
+link counts for files. This option is only useful on NTFS volumes,
+and it considerably slows down Dired and other features, so use it
+only on fast machines.
@node ls in Lisp
@section Emulation of @code{ls} on MS-Windows
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. @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.
+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 flavour of the
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
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}).
+
@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
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.
+@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.
+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 right
-@key{Alt} and left @key{Ctrl} keys are recognized as the @key{AltGr}
-key. The default is @code{t}, which means these keys produce
-@code{AltGr}; setting them to @code{nil} causes these keys to be
-interpreted normally (as the respective modifiers).
+ 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
any quote characters that appear; otherwise chose 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