changeset 87453:cdd30283527d

Merge from emacs--rel--22 Revision: emacs@sv.gnu.org/emacs--devo--0--patch-966
author Miles Bader <miles@gnu.org>
date Fri, 28 Dec 2007 22:26:14 +0000
parents 8e0e0bc0c5ab (current diff) 984a5e469e54 (diff)
children 0cbc451989a7
files admin/FOR-RELEASE doc/emacs/ChangeLog doc/emacs/files.texi doc/emacs/search.texi doc/emacs/text.texi doc/lispref/ChangeLog doc/lispref/customize.texi doc/lispref/frames.texi doc/misc/cc-mode.texi etc/NEWS.22 leim/ChangeLog lisp/ChangeLog lisp/comint.el lisp/emacs-lisp/find-func.el lisp/faces.el lisp/files.el lisp/info.el lisp/international/mule-cmds.el lisp/menu-bar.el lisp/progmodes/cc-vars.el lisp/progmodes/compile.el lisp/progmodes/grep.el lisp/replace.el lisp/simple.el lisp/startup.el lisp/textmodes/fill.el src/ChangeLog src/callint.c src/macmenu.c src/process.c src/w32fns.c src/xdisp.c
diffstat 36 files changed, 423 insertions(+), 507 deletions(-) [+]
line wrap: on
line diff
--- a/admin/FOR-RELEASE	Fri Dec 28 19:46:56 2007 +0000
+++ b/admin/FOR-RELEASE	Fri Dec 28 22:26:14 2007 +0000
@@ -111,6 +111,8 @@
 If mode-name stays non-string, add NEWS entry and doc fix.
 http://lists.gnu.org/archive/html/emacs-devel/2007-11/msg02048.html
 
+** pot@gnu.org, 17 Dec: strange From line maker rmail-reply loop
+
 * DOCUMENTATION
 
 ** Check the Emacs Tutorial.
--- a/doc/emacs/ChangeLog	Fri Dec 28 19:46:56 2007 +0000
+++ b/doc/emacs/ChangeLog	Fri Dec 28 22:26:14 2007 +0000
@@ -1,3 +1,24 @@
+2007-12-27  Richard Stallman  <rms@gnu.org>
+
+	* text.texi (Formatted Text): Improve menu tag.
+	(Editing Format Info): In Info, add duplicate menu of nodes
+	about the submenus.
+	(Format Faces): Say where Faces menu is found.  Mention Other.
+	(Format Colors): Say where these submenus are found.
+	(Format Indentation, Format Justification): Likewise.
+	(Format Properties): Likewise.
+
+2007-12-22  Richard Stallman  <rms@gnu.org>
+
+	* search.texi (Query Replace): Make exp of query-replace more
+	self-contained, and clarify.
+ 
+	* cc-mode.texi (Getting Started): Change @ref to @pxref.
+
+2007-12-15  Richard Stallman  <rms@gnu.org>
+
+	* files.texi (Auto Save): Clarify definition of auto-saving.
+
 2007-11-26  Richard Stallman  <rms@gnu.org>
 
 	* help.texi (Help Echo): Cleanups.
--- a/doc/emacs/files.texi	Fri Dec 28 19:46:56 2007 +0000
+++ b/doc/emacs/files.texi	Fri Dec 28 22:26:14 2007 +0000
@@ -997,10 +997,11 @@
 @cindex mode, Auto Save
 @cindex crashes
 
-  Emacs saves all the visited files from time to time (based on counting
-your keystrokes) without being asked.  This is called @dfn{auto-saving}.
-It prevents you from losing more than a limited amount of work if the
-system crashes.
+  Emacs saves all the visited files from time to time (based on
+counting your keystrokes) without being asked, in separate files so as
+not to alter the files you actually use.  This is called
+@dfn{auto-saving}.  It prevents you from losing more than a limited
+amount of work if the system crashes.
 
   When Emacs determines that it is time for auto-saving, it considers
 each buffer, and each is auto-saved if auto-saving is enabled for it
--- a/doc/emacs/search.texi	Fri Dec 28 19:46:56 2007 +0000
+++ b/doc/emacs/search.texi	Fri Dec 28 22:26:14 2007 +0000
@@ -1152,13 +1152,12 @@
 @kindex M-%
 @findex query-replace
   If you want to change only some of the occurrences of @samp{foo} to
-@samp{bar}, not all of them, then you cannot use an ordinary
-@code{replace-string}.  Instead, use @kbd{M-%} (@code{query-replace}).
+@samp{bar}, not all of them, use @kbd{M-%} (@code{query-replace}).
 This command finds occurrences of @samp{foo} one by one, displays each
 occurrence and asks you whether to replace it.  Aside from querying,
-@code{query-replace} works just like @code{replace-string}.  It
-preserves case, like @code{replace-string}, provided
-@code{case-replace} is non-@code{nil}, as it normally is
+@code{query-replace} works just like @code{replace-string}
+(@pxref{Unconditional Replace}).  In particular, it preserves case
+provided @code{case-replace} is non-@code{nil}, as it normally is
 (@pxref{Replacement and Case}).  A numeric argument means consider
 only occurrences that are bounded by word-delimiter characters.
 
--- a/doc/emacs/text.texi	Fri Dec 28 19:46:56 2007 +0000
+++ b/doc/emacs/text.texi	Fri Dec 28 22:26:14 2007 +0000
@@ -1951,7 +1951,7 @@
 * Justification: Format Justification.
                                 Centering, setting text flush with the
                                   left or right margin, etc.
-* Other: Format Properties.     The "special" text properties submenu.
+* Special: Format Properties.   The "special" text properties submenu.
 * Forcing Enriched Mode::       How to force use of Enriched mode.
 @end menu
 
@@ -2037,9 +2037,7 @@
 mouse button).  There are also keyboard commands described in the
 following section.
 
-  Most of the items in the Text Properties menu lead to other submenus.
-These are described in the sections that follow.  Some items run
-commands directly:
+  These items in the Text Properties menu run commands directly:
 
 @table @code
 @findex facemenu-remove-face-props
@@ -2068,14 +2066,35 @@
 Display a list of all the defined colors (@code{list-colors-display}).
 @end table
 
+@ifinfo
+  Other items in the Text Properties menu lead to submenus:
+
+@menu
+* Faces: Format Faces.          Bold, italic, underline, etc.
+* Color: Format Colors.         Changing the color of text.
+* Indent: Format Indentation.   Changing the left and right margins.
+* Justification: Format Justification.
+                                Centering, setting text flush with the
+                                  left or right margin, etc.
+* Special: Format Properties.   The "special" text properties submenu.
+@end menu
+@end ifinfo
+@ifnotinfo
+  The rest lead to submenus which are described in the following sections.
+@end ifnotinfo
+
 @node Format Faces
 @subsection Faces in Formatted Text
 
-  The Faces submenu lists various Emacs faces including @code{bold},
-@code{italic}, and @code{underline} (@pxref{Faces}).  These menu items
-operate on the region if it is active and nonempty.  Otherwise, they
-specify to use that face for an immediately following self-inserting
-character.  Instead of the menu, you can use these keyboard commands:
+  The Faces submenu under Text Properties lists various Emacs faces
+including @code{bold}, @code{italic}, and @code{underline}
+(@pxref{Faces}).  These menu items operate on the region if it is
+active and nonempty.  Otherwise, they specify to use that face for an
+immediately following self-inserting character.  There is also an item
+@samp{Other} with which you can enter a face name through the
+minibuffer (@pxref{Standard Faces}).
+
+  Instead of the Faces submenu, you can use these keyboard commands:
 
 @table @kbd
 @kindex M-o d @r{(Enriched mode)}
@@ -2158,20 +2177,22 @@
 @subsection Colors in Formatted Text
 
   You can specify foreground and background colors for portions of the
-text.  There is a menu for specifying the foreground color and a menu
-for specifying the background color.  Each color menu lists all the
-colors that you have used in Enriched mode in the current Emacs session.
+text.  Under Text Properties there is a submenu for specifying the
+foreground color, and a submenu for specifying the background color.
+Each one lists all the colors that you have used in Enriched mode in
+the current Emacs session.
 
   If you specify a color with a prefix argument---or, in Transient
 Mark mode, if the region is not active---then it applies to any
 immediately following self-inserting input.  Otherwise, the command
 applies to the region.
 
-  Each color menu contains one additional item: @samp{Other}.  You can use
-this item to specify a color that is not listed in the menu; it reads
-the color name with the minibuffer.  To display a list of available colors
-and their names, use the @samp{Display Colors} menu item in the Text
-Properties menu (@pxref{Editing Format Info}).
+  Each of the two color submenus contains one additional item:
+@samp{Other}.  You can use this item to specify a color that is not
+listed in the menu; it reads the color name with the minibuffer.  To
+display a list of available colors and their names, use the
+@samp{Display Colors} menu item in the Text Properties menu
+(@pxref{Editing Format Info}).
 
   Any color that you specify in this way, or that is mentioned in a
 formatted text file that you read in, is added to the corresponding
@@ -2192,8 +2213,9 @@
 part of a paragraph.  The margins you specify automatically affect the
 Emacs fill commands (@pxref{Filling}) and line-breaking commands.
 
-  The Indentation submenu provides a convenient interface for specifying
-these properties.  The submenu contains four items:
+  The Indentation submenu of Text Properties provides a convenient
+interface for specifying these properties.  The submenu contains four
+items:
 
 @table @code
 @kindex C-x TAB @r{(Enriched mode)}
@@ -2266,8 +2288,8 @@
 justification for a paragraph.  The style you specify automatically
 affects the Emacs fill commands.
 
-  The Justification submenu provides a convenient interface for specifying
-the style.  The submenu contains five items:
+  The Justification submenu of Text Properties provides a convenient
+interface for specifying the style.  The submenu contains five items:
 
 @table @code
 @item Left
@@ -2341,11 +2363,12 @@
 @node Format Properties
 @subsection Setting Other Text Properties
 
-  The Special Properties menu lets you add or remove three other useful text
-properties: @code{read-only}, @code{invisible} and @code{intangible}.
-The @code{intangible} property disallows moving point within the text,
-the @code{invisible} text property hides text from display, and the
-@code{read-only} property disallows alteration of the text.
+  The Special Properties submenu of Text Properties can add or remove
+three other useful text properties: @code{read-only}, @code{invisible}
+and @code{intangible}.  The @code{intangible} property disallows
+moving point within the text, the @code{invisible} text property hides
+text from display, and the @code{read-only} property disallows
+alteration of the text.
 
   Each of these special properties has a menu item to add it to the
 region.  The last menu item, @samp{Remove Special}, removes all of these
--- a/doc/lispref/ChangeLog	Fri Dec 28 19:46:56 2007 +0000
+++ b/doc/lispref/ChangeLog	Fri Dec 28 22:26:14 2007 +0000
@@ -1,3 +1,14 @@
+2007-12-28  Richard Stallman  <rms@gnu.org>
+
+	* frames.texi (Size Parameters): Fix typo.
+	(Basic Parameters): For `title', refer to title bar.
+	(Size and Position): Explain meaning of frame pixel width and height.
+
+2007-12-23  Richard Stallman  <rms@gnu.org>
+
+	* customize.texi (Type Keywords): Uncomment :validate and clarify it.
+	Improve some of the commented-out keywords' text too.
+
 2007-12-14  Martin Rudalics  <rudalics@gmx.at>
 
 	* nonascii.texi (Encoding and I/O): Reword to avoid saying
--- a/doc/lispref/customize.texi	Fri Dec 28 19:46:56 2007 +0000
+++ b/doc/lispref/customize.texi	Fri Dec 28 22:26:14 2007 +0000
@@ -1121,6 +1121,16 @@
 two arguments, a widget and a value; it should return non-@code{nil} if
 the value is acceptable.
 
+@item :validate @var{function}
+Specify a validation function for input.  @var{function} takes a
+widget as an argument, and should return @code{nil} if the widget's
+current value is valid for the widget.  Otherwise, it should return
+the widget containing the invalid data, and set that widget's
+@code{:error} property to a string explaining the error.
+
+In many cases you can use the function @code{widget-children-validate}
+for this job; it tests that all children of @var{widget} are valid.
+
 @ignore
 @item :indent @var{columns}
 Indent this item by @var{columns} columns.  The indentation is used for
@@ -1128,23 +1138,24 @@
 buttons, and for editable lists.  It affects the whole of the
 item except for the first line.
 
-@item :offset @var{columns}
-An integer indicating how many extra spaces to indent the subitems of
-this item.  By default, subitems are indented the same as their parent.
+@item :offset @var{extra}
+Indent the subitems of this item @var{extra} columns more than this
+item itself.  By default, subitems are indented the same as their
+parent.
 
-@item :extra-offset
-An integer indicating how many extra spaces to add to this item's
-indentation, compared to its parent.
+@item :extra-offset @var{n}
+Add @var{n} extra spaces to this item's indentation, compared to its
+parent's indentation.
 
-@item :notify
-A function called each time the item or a subitem is changed.  The
-function is called with two or three arguments.  The first argument is
-the item itself, the second argument is the item that was changed, and
-the third argument is the event leading to the change, if any.
+@item :notify @var{function}
+Call @var{function} each time the item or a subitem is changed.  The
+function gets two or three arguments.  The first argument is the item
+itself, the second argument is the item that was changed, and the
+third argument is the event leading to the change, if any.
 
-@item :menu-tag
-A tag used in the menu when the widget is used as an option in a
-@code{menu-choice} widget.
+@item :menu-tag @var{tag-string}
+Use @var{tag-string} in the menu when the widget is used as an option
+in a @code{menu-choice} widget.
 
 @item :menu-tag-get
 A function used for finding the tag when the widget is used as an option
@@ -1152,15 +1163,6 @@
 @code{:menu-tag} or @code{:tag} property if present, or the @code{princ}
 representation of the @code{:value} property if not.
 
-@item :validate
-A function which takes a widget as an argument, and return @code{nil}
-if the widget's current value is valid for the widget.  Otherwise, it
-should return the widget containing the invalid data, and set that
-widget's @code{:error} property to a string explaining the error.
-
-You can use the function @code{widget-children-validate} for this job;
-it tests that all children of @var{widget} are valid.
-
 @item :tab-order
 Specify the order in which widgets are traversed with
 @code{widget-forward} or @code{widget-backward}.  This is only partially
--- a/doc/lispref/frames.texi	Fri Dec 28 19:46:56 2007 +0000
+++ b/doc/lispref/frames.texi	Fri Dec 28 22:26:14 2007 +0000
@@ -362,12 +362,12 @@
 @code{mono}.
 
 @item title
-If a frame has a non-@code{nil} title, it appears in the window system's
-border for the frame, and also in the mode line of windows in that frame
-if @code{mode-line-frame-identification} uses @samp{%F}
-(@pxref{%-Constructs}).  This is normally the case when Emacs is not
-using a window system, and can only display one frame at a time.
-@xref{Frame Titles}.
+If a frame has a non-@code{nil} title, it appears in the window
+system's title bar at the top of the frame, and also in the mode line
+of windows in that frame if @code{mode-line-frame-identification} uses
+@samp{%F} (@pxref{%-Constructs}).  This is normally the case when
+Emacs is not using a window system, and can only display one frame at
+a time.  @xref{Frame Titles}.
 
 @item name
 The name of the frame.  The frame name serves as a default for the frame
@@ -463,7 +463,7 @@
 pixels, call @code{frame-pixel-height}; see @ref{Size and Position}.)
 
 @item width
-The width of the frame contents, in characters.  (To get the height in
+The width of the frame contents, in characters.  (To get the width in
 pixels, call @code{frame-pixel-width}; see @ref{Size and Position}.)
 
 @item user-size
@@ -808,8 +808,14 @@
 
 @defun frame-pixel-height &optional frame
 @defunx frame-pixel-width &optional frame
-These functions return the height and width of @var{frame}, measured in
-pixels.  If you don't supply @var{frame}, they use the selected frame.
+These functions return the height and width of the main display area
+of @var{frame}, measured in pixels.  If you don't supply @var{frame},
+they use the selected frame.
+
+These values include the internal borders, and windows' scroll bars
+and fringes (which belong to individual windows, not to the frame
+itself), but do not include menu bars or tool bars (except when using
+X without an X toolkit).
 @end defun
 
 @defun frame-char-height &optional frame
--- a/doc/misc/cc-mode.texi	Fri Dec 28 19:46:56 2007 +0000
+++ b/doc/misc/cc-mode.texi	Fri Dec 28 22:26:14 2007 +0000
@@ -487,8 +487,8 @@
 have the latest @ccmode{} release and might want to upgrade your copy
 (see below).
 
-You should probably start by skimming through the entire chapter
-@ref{Commands} to get an overview of @ccmode{}'s capabilities.
+You should probably start by skimming through the entire Commands chapter
+(@pxref{Commands}) to get an overview of @ccmode{}'s capabilities.
 
 After trying out some commands, you may dislike some aspects of
 @ccmode{}'s default configuration.  Here is an outline of how to
--- a/etc/NEWS.22	Fri Dec 28 19:46:56 2007 +0000
+++ b/etc/NEWS.22	Fri Dec 28 22:26:14 2007 +0000
@@ -44,6 +44,11 @@
 
 * Changes in Emacs 22.2
 
+** `find-name-dired' now uses -iname rather than -name
+for case-insensitive filesystems.  The default behavior is determined
+by the value of `read-file-name-completion-ignore-case'; if you don't
+like that, customize the value of the new option `find-name-arg'.
+
 ** In Image mode, whenever the displayed image is wider and/or higher
 than the window, the usual keys for moving the cursor cause the image
 to be scrolled horizontally or vertically instead.
--- a/leim/ChangeLog	Fri Dec 28 19:46:56 2007 +0000
+++ b/leim/ChangeLog	Fri Dec 28 22:26:14 2007 +0000
@@ -1,3 +1,15 @@
+2007-12-15  Richard Stallman  <rms@gnu.org>
+
+	* quail/latin-post.el ("scandinavian-postfix"): Doc fix.
+
+	* quail/latin-alt.el: Many doc fixes.
+	("danish-alt-postfix")
+	("esperanto-alt-postfix", "finnish-alt-postfix")
+	("german-alt-postfix", "icelandic-alt-postfix")
+	("norwegian-alt-postfix", "scandinavian-alt-postfix")
+	("spanish-alt-postfix", "swedish-alt-postfix"):
+	Deleted; they were identical to the non-alt versions.
+
 2007-12-07  Kenichi Handa  <handa@ni.aist.go.jp>
 
 	* quail/lao.el (quail-map-from-table): Allow a tone just after a
--- a/leim/quail/latin-alt.el	Fri Dec 28 19:46:56 2007 +0000
+++ b/leim/quail/latin-alt.el	Fri Dec 28 22:26:14 2007 +0000
@@ -25,10 +25,18 @@
 ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
 ;; Boston, MA 02110-1301, USA.
 
-;; Author: TAKAHASHI Naoto <ntakahas@etl.go.jp>
+;; Author (of latin-post.el): TAKAHASHI Naoto <ntakahas@etl.go.jp>
 
 ;;; Commentary:
 
+;; These input methods differ from those in latin-post.el
+;; in that comma is not special (use / instead),
+;; and // is not special either (so you can enter a slash
+;; by typing //).
+
+;; At least, that's what I could see by comparing the first few
+;; of these with latin-post.el.
+
 ;;; Code:
 
 (require 'quail)
@@ -36,6 +44,9 @@
 (quail-define-package
  "latin-1-alt-postfix" "Latin-1" "1<" t
  "Latin-1 character input method with postfix modifiers
+This input method differs from `latin-1-postfix' in that
+comma is not special (use slash instead), and `//' is not
+special (so you can use that to enter a slash).
 
              | postfix | examples
  ------------+---------+----------
@@ -49,9 +60,9 @@
   others     |   /<>   | s/ -> ,A_(B   ?/ -> ,A?(B   !/ -> ,A!(B
              | various | << -> ,A+(B   >> -> ,A;(B   o_ -> ,A:(B   a_ -> ,A*(B
 
-It would be natural to use comma for cedillas, but that would be
-inconvenient in practice because commas are needed very often after a
-letter.
+It seems natural to use comma for cedillas, but that is
+inconvenient in practice because commas are needed very
+often after a letter.
 
 Doubling the postfix separates the letter and postfix: e.g. a'' -> a'
 " nil t nil nil nil nil nil nil nil nil t)
@@ -199,6 +210,8 @@
 (quail-define-package
  "latin-2-alt-postfix" "Latin-2" "2<" t
  "Latin-2 character input method with postfix modifiers
+This input method differs from `latin-2-postfix' in that
+comma and period are not special (use ` instead).
 
              | postfix | examples
  ------------+---------+----------
@@ -215,8 +228,8 @@
   stroke     |    /    | d/ -> ,Bp(B
   others     |    /    | s/ -> ,B_(B
 
-It would be natural to use period and comma for dots/rings and
-cedillas/ogoneks, but that would inconvenient in practice, because
+It seems natural to use period and comma for dots/rings and
+cedillas/ogoneks, but that is inconvenient in practice, because
 periods and commas are needed very often after a letter.
 
 Doubling the postfix separates the letter and postfix: e.g. a'' -> a'
@@ -391,6 +404,9 @@
 (quail-define-package
  "latin-3-alt-postfix" "Latin-3" "3<" t
  "Latin-3 character input method with postfix modifiers
+This input method differs from `latin-3-postfix' in that
+comma is not special (use ` instead), and period is not
+special (use slash instead).
 
              | postfix | examples
  ------------+---------+----------
@@ -561,6 +577,9 @@
 (quail-define-package
  "latin-4-alt-postfix" "Latin-4" "4<" t
  "Latin-4 characters input method with postfix modifiers
+This input method differs from `latin-4-postfix' in that
+comma is not special (use ` instead), and period is not
+special (use ~ instead).
 
              | postfix | examples
  ------------+---------+----------
@@ -577,8 +596,8 @@
   nordic     |    /    | a/ -> ,De(B   e/ -> ,Df(B   o/ -> ,Dx(B
   others     |    /    | s/ -> ,D_(B   n/ -> ,D?(B   k/ -> ,D"(B
 
-It would be natural to use period and comma for dots and
-cedillas/ogoneks, but that would inconvenient in practice, because
+It seems natural to use period and comma for dots and
+cedillas/ogoneks, but that is inconvenient in practice, because
 periods and commas are needed very often after a letter.
 
 Doubling the postfix separates the letter and postfix: e.g. a'' -> a'
@@ -755,6 +774,9 @@
 (quail-define-package
  "latin-5-alt-postfix" "Latin-5" "5<" t
  "Latin-5 characters input method with postfix modifiers
+This input method differs from `latin-5-postfix' in that
+comma is not special (use ` instead), and period is not
+special (use / instead).
 
              | postfix | examples
  ------------+---------+----------
@@ -769,8 +791,8 @@
   nordic     |    /    | a/ -> ,Me(B   e/ -> ,Mf(B   o/ -> ,Mx(B
   others     |    /    | s/ -> ,M_(B
 
-It would be natural to use period and comma for dots and cedillas, but
-that would inconvenient in practice, because periods and commas are
+It seems natural to use period and comma for dots and cedillas, but
+that is inconvenient in practice, because periods and commas are
 needed very often after a letter.
 
 Doubling the postfix separates the letter and postfix: e.g. a'' -> a'
@@ -904,119 +926,7 @@
  ("y\"\"" ["y\""])
  )
 
-(quail-define-package
- "danish-alt-postfix" "Latin-1" "DA<" t
- "Danish input method (rule: AE -> ,AF(B, OE -> ,AX(B, AA -> ,AE(B, E' -> ,AI(B)
 
-Doubling the postfix separates the letter and postfix: e.g. aee -> ae
-"
- nil t nil nil nil nil nil nil nil nil t)
-
-(quail-define-rules
- ("AE" ?,AF(B)
- ("ae" ?,Af(B)
- ("OE" ?,AX(B)
- ("oe" ?,Ax(B)
- ("AA" ?,AE(B)
- ("aa" ?,Ae(B)
- ("E'" ?,AI(B)
- ("e'" ?,Ai(B)
-
- ("AEE" ["AE"])
- ("aee" ["ae"])
- ("OEE" ["OE"])
- ("oee" ["oe"])
- ("AAA" ["AA"])
- ("aaa" ["aa"])
- ("E''" ["E'"])
- ("e''" ["e'"])
- )
-
-(quail-define-package
- "esperanto-alt-postfix" "Latin-3" "EO<" t
- "Esperanto input method with postfix modifiers
-
-A following ^ or x will produce an accented character,
-e.g. c^ -> ,Cf(B   gx -> ,Cx(B   u^ -> ,C}(B.
-
-Doubling the postfix separates the letter and postfix,
-e.g. a'' -> a'.
-" nil t nil nil nil nil nil nil nil nil t)
-
-(quail-define-rules
- ("Cx" ?,CF(B)
- ("C^" ?,CF(B)
- ("cx" ?,Cf(B)
- ("c^" ?,Cf(B)
- ("Gx" ?,CX(B)
- ("G^" ?,CX(B)
- ("gx" ?,Cx(B)
- ("g^" ?,Cx(B)
- ("Hx" ?,C&(B)
- ("H^" ?,C&(B)
- ("hx" ?,C6(B)
- ("h^" ?,C6(B)
- ("Jx" ?,C,(B)
- ("J^" ?,C,(B)
- ("jx" ?,C<(B)
- ("j^" ?,C<(B)
- ("Sx" ?,C^(B)
- ("S^" ?,C^(B)
- ("sx" ?,C~(B)
- ("s^" ?,C~(B)
- ("Ux" ?,C](B)
- ("U^" ?,C](B)
- ("ux" ?,C}(B)
- ("u^" ?,C}(B)
-
- ("Cxx" ["Cx"])
- ("C^^" ["C^"])
- ("cxx" ["cx"])
- ("c^^" ["c^"])
- ("Gxx" ["Gx"])
- ("G^^" ["G^"])
- ("gxx" ["gx"])
- ("g^^" ["g^"])
- ("Hxx" ["Hx"])
- ("H^^" ["H^"])
- ("hxx" ["hx"])
- ("h^^" ["h^"])
- ("Jxx" ["Jx"])
- ("J^^" ["J^"])
- ("jxx" ["jx"])
- ("j^^" ["j^"])
- ("Sxx" ["Sx"])
- ("S^^" ["S^"])
- ("sxx" ["sx"])
- ("s^^" ["s^"])
- ("Uxx" ["Ux"])
- ("U^^" ["U^"])
- ("uxx" ["ux"])
- ("u^^" ["u^"])
- )
-
-(quail-define-package
- "finnish-alt-postfix" "Latin-1" "FI<" t
- "Finnish (Suomi) input method
-
-AE  -> ,AD(B
-AEE -> AE
-OE  -> ,AV(B
-OEE -> OE
-"
- nil t nil nil nil nil nil nil nil nil t)
-
-(quail-define-rules
- ("AE" ?,AD(B)
- ("ae" ?,Ad(B)
- ("OE" ?,AV(B)
- ("oe" ?,Av(B)
-
- ("AEE" ["AE"])
- ("aee" ["ae"])
- ("OEE" ["OE"])
- ("oee" ["oe"])
- )
 
 (quail-define-package
  "french-alt-postfix" "French" "FR<" t
@@ -1093,100 +1003,7 @@
  (">>>" [">>"])
  )
 
-(quail-define-package
- "german-alt-postfix" "German" "DE<" t
- "German (Deutsch) input method
 
-ae  -> ,Ad(B
-aee -> ae
-oe  -> ,Av(B
-oee -> oe
-ue  -> ,A|(B
-uee -> ue
-sz  -> ,A_(B
-szz -> sz
-"
- nil t nil nil nil nil nil nil nil nil t)
-
-(quail-define-rules
- ("AE" ?,AD(B)
- ("ae" ?,Ad(B)
- ("OE" ?,AV(B)
- ("oe" ?,Av(B)
- ("UE" ?,A\(B)
- ("ue" ?,A|(B)
- ("sz" ?,A_(B)
-
- ("AEE" ["AE"])
- ("aee" ["ae"])
- ("OEE" ["OE"])
- ("oee" ["oe"])
- ("UEE" ["UE"])
- ("uee" ["ue"])
- ("szz" ["sz"])
- )
-
-(quail-define-package
- "icelandic-alt-postfix" "Latin-1" "IS<" t
- "Icelandic (,AM(Bslenska) input method with postfix modifiers
-
-A' -> ,AA(B
-E' -> ,AI(B
-I' -> ,AM(B
-O' -> ,AS(B
-U' -> ,AZ(B
-Y' -> ,A](B
-AE -> ,AF(B
-OE -> ,AV(B
-D/ -> ,AP(B (eth)
-T/ -> ,A^(B (thorn)
-
-Doubling the postfix separates the letter and postfix: e.g. a'' -> a'
-" nil t nil nil nil nil nil nil nil nil t)
-
-(quail-define-rules
- ("A'" ?,AA(B)
- ("a'" ?,Aa(B)
- ("E'" ?,AI(B)
- ("e'" ?,Ai(B)
- ("I'" ?,AM(B)
- ("i'" ?,Am(B)
- ("O'" ?,AS(B)
- ("o'" ?,As(B)
- ("U'" ?,AZ(B)
- ("u'" ?,Az(B)
- ("Y'" ?,A](B)
- ("y'" ?,A}(B)
- ("AE" ?,AF(B)
- ("ae" ?,Af(B)
- ("OE" ?,AV(B)
- ("oe" ?,Av(B)
- ("D/" ?,AP(B)
- ("d/" ?,Ap(B)
- ("T/" ?,A^(B)
- ("t/" ?,A~(B)
-
- ("A''" ["A'"])
- ("a''" ["a'"])
- ("E''" ["E'"])
- ("e''" ["e'"])
- ("I''" ["I'"])
- ("i''" ["i'"])
- ("O''" ["O'"])
- ("o''" ["o'"])
- ("U''" ["U'"])
- ("u''" ["u'"])
- ("Y''" ["Y'"])
- ("y''" ["y'"])
- ("AEE" ["AE"])
- ("aee" ["ae"])
- ("OEE" ["OE"])
- ("oee" ["oe"])
- ("D//" ["D/"])
- ("d//" ["d/"])
- ("T//" ["T/"])
- ("t//" ["t/"])
- )
 
 (quail-define-package
  "italian-alt-postfix" "Latin-1" "IT<" t
@@ -1259,157 +1076,12 @@
  ("a__" ["a_"])
  )
 
-(quail-define-package
- "norwegian-alt-postfix" "Latin-1" "NO<" t
- "Norwegian (Norsk) input method (rule: AE->,AF(B, OE->,AX(B, AA->,AE(B, E'->,AI(B)
-
-Doubling the postfix separates the letter and postfix: e.g. aee -> ae
-"
- nil t nil nil nil nil nil nil nil nil t)
-
-(quail-define-rules
- ("AE" ?,AF(B)
- ("ae" ?,Af(B)
- ("OE" ?,AX(B)
- ("oe" ?,Ax(B)
- ("AA" ?,AE(B)
- ("aa" ?,Ae(B)
- ("E'" ?,AI(B)
- ("e'" ?,Ai(B)
-
- ("AEE" ["AE"])
- ("aee" ["ae"])
- ("OEE" ["OE"])
- ("oee" ["oe"])
- ("AAA" ["AA"])
- ("aaa" ["aa"])
- ("E''" ["E'"])
- ("e''" ["e'"])
- )
-
-(quail-define-package
- "scandinavian-alt-postfix" "Latin-1" "SC<" t
- "Scandinavian input method with postfix modifiers
-Supported languages are Swedish, Norwegian, Danish, and Finnish.
-
-ae -> ,Af(B
-oe -> ,Ax(B
-aa -> ,Ae(B
-a\" -> ,Ad(B
-o\" -> ,Av(B
-e' -> ,Ai(B
-
-Doubling the postfix separates the letter and postfix:
-aee -> ae   o\"\" -> o\"   etc.
-" nil t nil nil nil nil nil nil nil nil t)
-
-(quail-define-rules
- ("AE" ?,AF(B)
- ("ae" ?,Af(B)
- ("OE" ?,AX(B)
- ("oe" ?,Ax(B)
- ("AA" ?,AE(B)
- ("aa" ?,Ae(B)
- ("A\"" ?,AD(B)
- ("a\"" ?,Ad(B)
- ("O\"" ?,AV(B)
- ("o\"" ?,Av(B)
- ("E'" ?,AI(B)
- ("e'" ?,Ai(B)
-
- ("AEE" ["AE"])
- ("aee" ["ae"])
- ("OEE" ["OE"])
- ("oee" ["oe"])
- ("AAA" ["AA"])
- ("aaa" ["aa"])
- ("A\"\"" ["A\""])
- ("a\"\"" ["a\""])
- ("O\"\"" ["O\""])
- ("o\"\"" ["o\""])
- ("E''" ["E'"])
- ("e''" ["e'"])
- )
-
-(quail-define-package
- "spanish-alt-postfix" "Spanish" "ES<" t
- "Spanish (Espa,Aq(Bol) input method with postfix modifiers
-
-A' -> ,AA(B
-E' -> ,AI(B
-I' -> ,AM(B
-O' -> ,AS(B
-U' -> ,AZ(B
-N~ -> ,AQ(B
-!/ -> ,A!(B
-?/ -> ,A?(B
-
-Doubling the postfix separates the letter and postfix:
-a'' -> a'   n~~ -> n~, etc.
-" nil t nil nil nil nil nil nil nil nil t)
-
-(quail-define-rules
- ("A'" ?,AA(B)
- ("a'" ?,Aa(B)
- ("E'" ?,AI(B)
- ("e'" ?,Ai(B)
- ("I'" ?,AM(B)
- ("i'" ?,Am(B)
- ("O'" ?,AS(B)
- ("o'" ?,As(B)
- ("U'" ?,AZ(B)
- ("u'" ?,Az(B)
- ("N~" ?,AQ(B)
- ("n~" ?,Aq(B)
- ("?/" ?,A?(B)
- ("!/" ?,A!(B)
-
- ("A''" ["A'"])
- ("a''" ["a'"])
- ("E''" ["E'"])
- ("e''" ["e'"])
- ("I''" ["I'"])
- ("i''" ["i'"])
- ("O''" ["O'"])
- ("o''" ["o'"])
- ("U''" ["U'"])
- ("u''" ["u'"])
- ("N~~" ["N~"])
- ("n~~" ["n~"])
- ("?//" ["?/"])
- ("!//" ["!/"])
- )
-
-(quail-define-package
- "swedish-alt-postfix" "Latin-1" "SV<" t
- "Swedish (Svenska) input method (rule: AA -> ,AE(B, AE -> ,AD(B, OE -> ,AV(B, E' -> ,AI(B)
-
-Doubling the postfix separates the letter and postfix: e.g. aee -> ae
-" nil t nil nil nil nil nil nil nil nil t)
-
-(quail-define-rules
- ("AA" ?,AE(B)
- ("aa" ?,Ae(B)
- ("AE" ?,AD(B)
- ("ae" ?,Ad(B)
- ("OE" ?,AV(B)
- ("oe" ?,Av(B)
- ("E'" ?,AI(B)
- ("e'" ?,Ai(B)
-
- ("AAA" ["AA"])
- ("aaa" ["aa"])
- ("AEE" ["AE"])
- ("aee" ["ae"])
- ("OEE" ["OE"])
- ("oee" ["oe"])
- ("E''" ["E'"])
- ("e''" ["e'"])
- )
 
 (quail-define-package
  "turkish-latin-3-alt-postfix" "Turkish" "TR3<<" t
  "Turkish (T,A|(Brk,Ag(Be) input method with postfix modifiers.
+This input method differs from `turkish-latin-3-postfix' in that
+comma is not special (use ` instead).
 
 This is for those who use Latin-3 (ISO-8859-3) for Turkish.  If you
 use Latin-5 (ISO-8859-9), you should use \"turkish-alt-postfix\" instead.
@@ -1472,6 +1144,8 @@
 (quail-define-package
  "turkish-alt-postfix" "Turkish" "TR,A+(B" t
  "Turkish (T,A|(Brk,Ag(Be) input method with postfix modifiers.
+This input method differs from `turkish-postfix' in that
+comma is not special (use ` instead).
 
 This is for those who use Latin-5 (ISO-8859-9) for Turkish.  If you
 use Latin-3 (ISO-8859-3), you should use
--- a/lisp/ChangeLog	Fri Dec 28 19:46:56 2007 +0000
+++ b/lisp/ChangeLog	Fri Dec 28 22:26:14 2007 +0000
@@ -1,3 +1,72 @@
+2007-12-29  Richard Stallman  <rms@gnu.org>
+
+	* progmodes/compile.el (compilation-start): Set initial visible
+	point properly even when compilation buffer already current.
+
+2007-12-29  Richard Stallman  <rms@gnu.org>
+
+	* files.el (conf-mode-maybe): New function.
+	(auto-mode-alist): Use conf-mode-maybe for .conf etc.
+
+2007-12-29  Martin Rudalics  <rudalics@gmx.at>
+
+	* textmodes/fill.el (fill-find-break-point): Fix doc-string typo.
+
+2007-12-29  Dan Nicolaescu  <dann@ics.uci.edu>
+
+	* progmodes/asm-mode.el (asm-mode-map): Add a major mode menu.
+
+2007-12-29  Richard Stallman  <rms@gnu.org>
+
+	* comint.el (comint-mode-map): Explicitly bind `delete' and `kp-delete'
+	so they never do EOF.
+
+2007-12-29  Richard Stallman  <rms@gnu.org>
+
+	* faces.el (copy-face): Create the new face explicitly if it
+	does not exist already.
+
+2007-12-29  Eli Zaretskii  <eliz@gnu.org>
+
+	* simple.el (minibuffer-history, shell-command-history)
+	(set-variable-value-history):
+	* replace.el (regexp-history):
+	* international/mule-cmds.el (input-method-history):
+	* files.el (file-name-history): Add reference to history-length in
+	the doc string.
+
+2007-12-29  Richard Stallman  <rms@gnu.org>
+
+	* comint.el (comint-password-prompt-regexp): Match `Enter Password'.
+
+2007-12-29  Jason Rumney  <jasonr@gnu.org>
+
+	* find-dired.el (find-name-arg): New custom variable.
+	(find-name-dired): Use it.
+	(find-dired-find-program): Remove.
+	(find-dired): Use find-program.
+	(find-grep-dired): Use grep-program.
+
+	* progmodes/grep.el (rgrep): Use find-name-arg.
+
+2007-12-29  Thien-Thi Nguyen  <ttn@gnuvola.org>
+
+	* progmodes/cc-vars.el (defcustom-c-stylevar):
+	Revert to pre-2007-12-12 version.
+
+2007-12-29  Richard Stallman  <rms@gnu.org>
+
+	* emacs-lisp/find-func.el (find-function-after-hook): Add :type.
+
+	* info.el (Info-clone-buffer): Renamed from Info-clone-buffer-hook.
+	Use changed.
+
+	* startup.el (fancy-splash-help-echo): Var deleted.
+	(fancy-splash-insert): Get help-echo from (startup-echo-area-message).
+	(fancy-about-screen): Don't display fancy-splash-help-echo.
+
+	* menu-bar.el (menu-bar-describe-menu): Remove dots from menu text.
+
 2007-12-28  Eric S. Raymond  <esr@snark.thyrsus.com>
 
 	* vc-hooks.el, vc.el: Move vc-directory-exclusion-list from vc.el
--- a/lisp/comint.el	Fri Dec 28 19:46:56 2007 +0000
+++ b/lisp/comint.el	Fri Dec 28 22:26:14 2007 +0000
@@ -336,8 +336,9 @@
 ;; plink prints a prompt like `Passphrase for key "root@GNU.ORG": '.
 ;; Ubuntu's sudo prompts like `[sudo] password for user:'
 ;; Some implementations of passwd use "Password (again)" as the 2nd prompt.
+;; Something called "perforce" uses "Enter password:".
 (defcustom comint-password-prompt-regexp
-  "\\(\\([Oo]ld \\|[Nn]ew \\|'s \\|login \\|\
+  "\\(\\(Enter \\|[Oo]ld \\|[Nn]ew \\|'s \\|login \\|\
 Kerberos \\|CVS \\|UNIX \\| SMB \\|LDAP \\|\\[sudo] \\|^\\)\
 \[Pp]assword\\( (again)\\)?\\|\
 pass phrase\\|\\(Enter \\|Repeat \\|Bad \\)?[Pp]assphrase\\)\
@@ -452,6 +453,10 @@
     (define-key map "\e\C-l" 	  'comint-show-output)
     (define-key map "\C-m" 	  'comint-send-input)
     (define-key map "\C-d" 	  'comint-delchar-or-maybe-eof)
+    ;; The following two are standardly aliased to C-d,
+    ;; but they should never do EOF, just delete.
+    (define-key map [delete] 	  'delete-char)
+    (define-key map [kp-delete]	  'delete-char)
     (define-key map "\C-c " 	  'comint-accumulate)
     (define-key map "\C-c\C-x" 	  'comint-get-next-from-history)
     (define-key map "\C-c\C-a" 	  'comint-bol-or-process-mark)
--- a/lisp/emacs-lisp/find-func.el	Fri Dec 28 19:46:56 2007 +0000
+++ b/lisp/emacs-lisp/find-func.el	Fri Dec 28 22:26:14 2007 +0000
@@ -133,6 +133,7 @@
   "Hook run after finding symbol definition.
 
 See the functions `find-function' and `find-variable'."
+  :type 'hook
   :group 'find-function
   :version "20.3")
 
--- a/lisp/faces.el	Fri Dec 28 19:46:56 2007 +0000
+++ b/lisp/faces.el	Fri Dec 28 22:26:14 2007 +0000
@@ -158,13 +158,18 @@
 
 If the optional fourth argument NEW-FRAME is given,
 copy the information from face OLD-FACE on frame FRAME
-to NEW-FACE on frame NEW-FRAME."
+to NEW-FACE on frame NEW-FRAME.  In this case, FRAME may not be nil."
   (let ((inhibit-quit t))
     (if (null frame)
 	(progn
+	  (when new-frame
+	    (error "Copying face %s from all frames to one frame"
+		   old-face))
+	  (make-empty-face new-face)
 	  (dolist (frame (frame-list))
 	    (copy-face old-face new-face frame))
 	  (copy-face old-face new-face t))
+      (make-empty-face new-face)
       (internal-copy-lisp-face old-face new-face frame new-frame))
     new-face))
 
--- a/lisp/files.el	Fri Dec 28 19:46:56 2007 +0000
+++ b/lisp/files.el	Fri Dec 28 22:26:14 2007 +0000
@@ -525,7 +525,10 @@
   :group 'view)
 
 (defvar file-name-history nil
-  "History list of file names entered in the minibuffer.")
+  "History list of file names entered in the minibuffer.
+
+Maximum length of the history list is determined by the value
+of `history-length', which see.")
 
 (put 'ange-ftp-completion-hook-function 'safe-magic t)
 (defun ange-ftp-completion-hook-function (op &rest args)
@@ -2092,7 +2095,7 @@
      ("java.+\\.conf\\'" . conf-javaprop-mode)
      ("\\.properties\\(?:\\.[a-zA-Z0-9._-]+\\)?\\'" . conf-javaprop-mode)
      ;; *.cf, *.cfg, *.conf, *.config[.local|.de_DE.UTF8|...], */config
-     ("[/.]c\\(?:on\\)?f\\(?:i?g\\)?\\(?:\\.[a-zA-Z0-9._-]+\\)?\\'" . conf-mode)
+     ("[/.]c\\(?:on\\)?f\\(?:i?g\\)?\\(?:\\.[a-zA-Z0-9._-]+\\)?\\'" . conf-mode-maybe)
      ("\\`/etc/\\(?:DIR_COLORS\\|ethers\\|.?fstab\\|.*hosts\\|lesskey\\|login\\.?de\\(?:fs\\|vperm\\)\\|magic\\|mtab\\|pam\\.d/.*\\|permissions\\(?:\\.d/.+\\)?\\|protocols\\|rpc\\|services\\)\\'" . conf-space-mode)
      ("\\`/etc/\\(?:acpid?/.+\\|aliases\\(?:\\.d/.+\\)?\\|default/.+\\|group-?\\|hosts\\..+\\|inittab\\|ksysguarddrc\\|opera6rc\\|passwd-?\\|shadow-?\\|sysconfig/.+\\)\\'" . conf-mode)
      ;; ChangeLog.old etc.  Other change-log-mode entries are above;
@@ -2139,6 +2142,16 @@
 based on the interpreters they specify to run,
 and `magic-mode-alist', which determines modes based on file contents.")
 
+(defun conf-mode-maybe ()
+  "Select Conf mode or XML mode according to start of file."
+  (if (save-excursion
+	(save-restriction
+	  (widen)
+	  (goto-char (point-min))
+	  (looking-at "<\\?xml \\|<!-- \\|<!DOCTYPE ")))
+      (xml-mode)
+    (conf-mode)))
+
 (defvar interpreter-mode-alist
   ;; Note: The entries for the modes defined in cc-mode.el (awk-mode
   ;; and pike-mode) are added through autoload directives in that
--- a/lisp/find-dired.el	Fri Dec 28 19:46:56 2007 +0000
+++ b/lisp/find-dired.el	Fri Dec 28 22:26:14 2007 +0000
@@ -36,11 +36,6 @@
   :group 'dired
   :prefix "find-")
 
-(defcustom find-dired-find-program "find"
-  "Program used to find files."
-  :group 'dired
-  :type 'file)
-
 ;; find's -ls corresponds to these switches.
 ;; Note -b, at least GNU find quotes spaces etc. in filenames
 ;;;###autoload
@@ -77,6 +72,18 @@
   :type 'string
   :group 'find-dired)
 
+;;;###autoload
+(defcustom find-name-arg
+  (if read-file-name-completion-ignore-case
+      "-iname"
+    "-name")
+  "*Argument used to specify file name pattern.
+If `read-file-name-completion-ignore-case' is non-nil, -iname is used so that
+find also ignores case. Otherwise, -name is used."
+  :type 'string
+  :group 'find-dired
+  :version "22.2")
+
 (defvar find-args nil
   "Last arguments given to `find' by \\[find-dired].")
 
@@ -126,7 +133,7 @@
     (erase-buffer)
     (setq default-directory dir
 	  find-args args	      ; save for next interactive call
-	  args (concat find-dired-find-program " . "
+	  args (concat find-program " . "
 		       (if (string= args "")
 			   ""
 			 (concat
@@ -198,7 +205,7 @@
     find . -name 'PATTERN' -ls"
   (interactive
    "DFind-name (directory): \nsFind-name (filename wildcard): ")
-  (find-dired dir (concat "-name " (shell-quote-argument pattern))))
+  (find-dired dir (concat find-name-arg " " (shell-quote-argument pattern))))
 
 ;; This functionality suggested by
 ;; From: oblanc@watcgl.waterloo.edu (Olivier Blanc)
@@ -222,7 +229,7 @@
   ;; by FIFOs and devices.  I'm not sure what's best to do
   ;; about symlinks, so as far as I know this is not wrong.
   (find-dired dir
-	      (concat "-type f -exec grep " find-grep-options " -e "
+	      (concat "-type f -exec " grep-program " " find-grep-options " -e "
 		      (shell-quote-argument regexp)
 		      " "
 		      (shell-quote-argument "{}")
--- a/lisp/info.el	Fri Dec 28 19:46:56 2007 +0000
+++ b/lisp/info.el	Fri Dec 28 22:26:14 2007 +0000
@@ -3472,7 +3472,7 @@
   (setq widen-automatically nil)
   (setq desktop-save-buffer 'Info-desktop-buffer-misc-data)
   (add-hook 'kill-buffer-hook 'Info-kill-buffer nil t)
-  (add-hook 'clone-buffer-hook 'Info-clone-buffer-hook nil t)
+  (add-hook 'clone-buffer-hook 'Info-clone-buffer nil t)
   (add-hook 'change-major-mode-hook 'font-lock-defontify nil t)
   (add-hook 'isearch-mode-hook 'Info-isearch-start nil t)
   (set (make-local-variable 'isearch-search-fun-function)
@@ -3495,7 +3495,8 @@
        Info-tag-table-buffer
        (kill-buffer Info-tag-table-buffer)))
 
-(defun Info-clone-buffer-hook ()
+;; Placed on `clone-buffer-hook'.
+(defun Info-clone-buffer ()
   (when (bufferp Info-tag-table-buffer)
     (setq Info-tag-table-buffer
 	  (with-current-buffer Info-tag-table-buffer (clone-buffer))))
--- a/lisp/international/mule-cmds.el	Fri Dec 28 19:46:56 2007 +0000
+++ b/lisp/international/mule-cmds.el	Fri Dec 28 22:26:14 2007 +0000
@@ -1339,7 +1339,10 @@
 (put 'input-method-function 'permanent-local t)
 
 (defvar input-method-history nil
-  "History list for some commands that read input methods.")
+  "History list of input methods read from the minibuffer.
+
+Maximum length of the history list is determined by the value
+of `history-length', which see.")
 (make-variable-buffer-local 'input-method-history)
 (put 'input-method-history 'permanent-local t)
 
--- a/lisp/mail/footnote.el	Fri Dec 28 19:46:56 2007 +0000
+++ b/lisp/mail/footnote.el	Fri Dec 28 22:26:14 2007 +0000
@@ -327,7 +327,8 @@
 (defun Footnote-current-regexp ()
   "Return the regexp of the index of the current style."
   (concat (nth 2 (or (assq footnote-style footnote-style-alist)
-		     (nth 0 footnote-style-alist))) "*"))
+		     (nth 0 footnote-style-alist)))
+	  "*"))
 
 (defun Footnote-refresh-footnotes (&optional index-regexp)
   "Redraw all footnotes.
@@ -345,7 +346,7 @@
 	  (search-backward footnote-start-tag nil t)
 	  (when (looking-at (concat
 			     (regexp-quote footnote-start-tag)
-			     "\\(" index-regexp "\\)"
+			     "\\(" index-regexp "+\\)"
 			     (regexp-quote footnote-end-tag)))
 	    (replace-match (concat
 			    footnote-start-tag
@@ -361,7 +362,7 @@
 	(goto-char (cdr alist))
 	(when (looking-at (concat
 			   (regexp-quote footnote-start-tag)
-			   "\\(" index-regexp "\\)"
+			   "\\(" index-regexp "+\\)"
 			   (regexp-quote footnote-end-tag)))
 	  (replace-match (concat
 			  footnote-start-tag
--- a/lisp/menu-bar.el	Fri Dec 28 19:46:56 2007 +0000
+++ b/lisp/menu-bar.el	Fri Dec 28 22:26:14 2007 +0000
@@ -1216,7 +1216,7 @@
 	      :visible default-enable-multibyte-characters
 	      :help "Display multilingual environment settings"))
 (define-key menu-bar-describe-menu [describe-coding-system-briefly]
-  '(menu-item "Describe Coding System (Briefly)..."
+  '(menu-item "Describe Coding System (Briefly)"
               describe-current-coding-system-briefly
               :visible default-enable-multibyte-characters))
 (define-key menu-bar-describe-menu [describe-coding-system]
--- a/lisp/progmodes/asm-mode.el	Fri Dec 28 19:46:56 2007 +0000
+++ b/lisp/progmodes/asm-mode.el	Fri Dec 28 22:26:14 2007 +0000
@@ -79,6 +79,14 @@
     (define-key map "\C-c;"	'comment-region)
     (define-key map "\C-j"	'newline-and-indent)
     (define-key map "\C-m"	'newline-and-indent)
+    (define-key map [menu-bar] (make-sparse-keymap))
+    (define-key map [menu-bar asm-mode] (cons "Asm" map))
+    (define-key map [asm-colon]
+      '("Insert Colon" . asm-colon))
+    (define-key map [comment-region]
+      '("Comment Region" . comment-region))
+    (define-key map [newline-and-indent]
+      '("Insert Newline and Indent" . newline-and-indent))
     map)
   "Keymap for Asm mode.")
 
--- a/lisp/progmodes/cc-vars.el	Fri Dec 28 19:46:56 2007 +0000
+++ b/lisp/progmodes/cc-vars.el	Fri Dec 28 22:26:14 2007 +0000
@@ -156,44 +156,34 @@
   (setq c-fallback-style (cons (cons name val) c-fallback-style)))
 
 (defmacro defcustom-c-stylevar (name val doc &rest args)
-  "Define a style variable NAME with VAL and DOC.
-More precisely, convert the given `:type FOO', mined out of ARGS,
-to an aggregate `:type (radio STYLE (PREAMBLE FOO))', append some
-some boilerplate documentation to DOC, arrange for the fallback
-value of NAME to be VAL, and call `custom-declare-variable' to
-do the rest of the work.
-
-STYLE stands for the choice where the value is taken from some
-style setting.  PREAMBLE is optionally prepended to FOO; that is,
-if FOO contains :tag or :value, the respective two-element list
-component is ignored."
-  (declare (debug (symbolp form stringp &rest)))
-  (let* ((expanded-doc (concat doc "
+  "Defines a style variable."
+  `(let ((-value- ,val))
+     (c-set-stylevar-fallback ',name -value-)
+     (custom-declare-variable
+      ',name ''set-from-style
+      ,(concat doc "
 
 This is a style variable.  Apart from the valid values described
-above, it can be set to the symbol `set-from-style'.  In that case,
-it takes its value from the style system (see `c-default-style' and
+above, it can be set to the symbol `set-from-style'.  In that case, it
+takes its value from the style system (see `c-default-style' and
 `c-style-alist') when a CC Mode buffer is initialized.  Otherwise,
 the value set here overrides the style system (there is a variable
-`c-old-style-variable-behavior' that changes this, though)."))
-         (typ (eval (plist-get args :type)))
-         (type (if (consp typ) typ (list typ)))
-         (head (car type))
-         (tail (cdr type))
-         (newt (append (unless (plist-get tail :tag)
-                         '(:tag "Override style settings"))
-                       (unless (plist-get tail :value)
-                         `(:value ,(eval val)))
-                       tail))
-         (aggregate `'(radio
-                       (const :tag "Use style settings" set-from-style)
-                       ,(cons head newt))))
-    `(progn
-       (c-set-stylevar-fallback ',name ,val)
-       (custom-declare-variable
-        ',name ''set-from-style
-        ,expanded-doc
-        ,@(plist-put args :type aggregate)))))
+`c-old-style-variable-behavior' that changes this, though).")
+      ,@(plist-put
+	 args ':type
+	 `(` (radio
+	      (const :tag "Use style settings"
+		     set-from-style)
+	      ,(, (let ((type (eval (plist-get args ':type))))
+		    (unless (consp type)
+		      (setq type (list type)))
+		    (unless (c-safe (plist-get (cdr type) ':value))
+		      (setcdr type (append '(:value (, -value-))
+					   (cdr type))))
+		    (unless (c-safe (plist-get (cdr type) ':tag))
+		      (setcdr type (append '(:tag "Override style settings")
+					   (cdr type))))
+		    (bq-process type)))))))))
 
 (defun c-valid-offset (offset)
   "Return non-nil if OFFSET is a valid offset for a syntactic symbol.
--- a/lisp/progmodes/compile.el	Fri Dec 28 19:46:56 2007 +0000
+++ b/lisp/progmodes/compile.el	Fri Dec 28 22:26:14 2007 +0000
@@ -1163,10 +1163,6 @@
 		command "\n")
 	(setq thisdir default-directory))
       (set-buffer-modified-p nil))
-    ;; If we're already in the compilation buffer, go to the end
-    ;; of the buffer, so point will track the compilation output.
-    (if (eq outbuf (current-buffer))
-	(goto-char (point-max)))
     ;; Pop up the compilation buffer.
     ;; http://lists.gnu.org/archive/html/emacs-devel/2007-11/msg01638.html
     (setq outwin (display-buffer outbuf))
@@ -1192,10 +1188,18 @@
 	(set (make-local-variable 'revert-buffer-function)
 	     'compilation-revert-buffer)
 	(set-window-start outwin (point-min))
-	(or (eq outwin (selected-window))
-	    (set-window-point outwin (if compilation-scroll-output
-					 (point)
-				       (point-min))))
+
+	;; Position point as the user will see it.
+	(let ((desired-visible-point
+	       ;; Put it at the end if `compilation-scroll-output' is set.
+	       (if compilation-scroll-output
+		   (point-max)
+		 ;; Normally put it at the top.
+		 (point-min))))
+	  (if (eq outwin (selected-window))
+	      (goto-char desired-visible-point)
+	    (set-window-point outwin desired-visible-point)))
+
 	;; The setup function is called before compilation-set-window-height
 	;; so it can set the compilation-window-height buffer locally.
 	(if compilation-process-setup-function
@@ -1219,7 +1223,10 @@
 	  (setq mode-line-process '(":%s"))
 	  (set-process-sentinel proc 'compilation-sentinel)
 	  (set-process-filter proc 'compilation-filter)
-	  (set-marker (process-mark proc) (point) outbuf)
+	  ;; Use (point-max) here so that output comes in
+	  ;; after the initial text,
+	  ;; regardless of where the user sees point.
+	  (set-marker (process-mark proc) (point-max) outbuf)
 	  (when compilation-disable-input
 	    (condition-case nil
 		(process-send-eof proc)
--- a/lisp/progmodes/grep.el	Fri Dec 28 19:46:56 2007 +0000
+++ b/lisp/progmodes/grep.el	Fri Dec 28 22:26:14 2007 +0000
@@ -839,10 +839,10 @@
 		      grep-find-template
 		      regexp
 		      (concat (shell-quote-argument "(")
-			      " -name "
+			      " " find-name-arg " "
 			      (mapconcat #'shell-quote-argument
 					 (split-string files)
-					 " -o -name ")
+					 (concat " -o " find-name-arg " "))
 			      " "
 			      (shell-quote-argument ")"))
 		       dir
--- a/lisp/replace.el	Fri Dec 28 19:46:56 2007 +0000
+++ b/lisp/replace.el	Fri Dec 28 22:26:14 2007 +0000
@@ -519,7 +519,10 @@
 
 
 (defvar regexp-history nil
-  "History list for some commands that read regular expressions.")
+  "History list for some commands that read regular expressions.
+
+Maximum length of the history list is determined by the value
+of `history-length', which see.")
 
 
 (defalias 'delete-non-matching-lines 'keep-lines)
--- a/lisp/simple.el	Fri Dec 28 19:46:56 2007 +0000
+++ b/lisp/simple.el	Fri Dec 28 22:26:14 2007 +0000
@@ -1166,7 +1166,10 @@
 (defvar minibuffer-history nil
   "Default minibuffer history list.
 This is used for all minibuffer input
-except when an alternate history list is specified.")
+except when an alternate history list is specified.
+
+Maximum length of the history list is determined by the value
+of `history-length', which see.")
 (defvar minibuffer-history-sexp-flag nil
   "Control whether history list elements are expressions or strings.
 If the value of this variable equals current minibuffer depth,
@@ -1901,7 +1904,10 @@
     t))
 
 (defvar shell-command-history nil
-  "History list for some commands that read shell commands.")
+  "History list for some commands that read shell commands.
+
+Maximum length of the history list is determined by the value
+of `history-length', which see.")
 
 (defvar shell-command-switch "-c"
   "Switch used to have the shell execute its command line argument.")
@@ -5015,7 +5021,10 @@
 		'switch-to-buffer-other-frame yank-action send-actions))
 
 (defvar set-variable-value-history nil
-  "History of values entered with `set-variable'.")
+  "History of values entered with `set-variable'.
+
+Maximum length of the history list is determined by the value
+of `history-length', which see.")
 
 (defun set-variable (variable value &optional make-local)
   "Set VARIABLE to VALUE.  VALUE is a Lisp object.
--- a/lisp/startup.el	Fri Dec 28 19:46:56 2007 +0000
+++ b/lisp/startup.el	Fri Dec 28 22:26:14 2007 +0000
@@ -1319,8 +1319,6 @@
 
 ;; These are temporary storage areas for the splash screen display.
 
-(defvar fancy-splash-help-echo nil)
-
 (defun fancy-splash-insert (&rest args)
   "Insert text into the current buffer, with faces.
 Arguments from ARGS should be either strings; functions called
@@ -1354,7 +1352,7 @@
 					 (funcall it)
 				       it))
 				   'face current-face
-				   'help-echo fancy-splash-help-echo))))
+				   'help-echo (startup-echo-area-message)))))
       (setq args (cdr args)))))
 
 
--- a/lisp/textmodes/fill.el	Fri Dec 28 19:46:56 2007 +0000
+++ b/lisp/textmodes/fill.el	Fri Dec 28 22:26:14 2007 +0000
@@ -391,7 +391,7 @@
 This function is called when we are going to break the current line
 after or before a non-ASCII character.  If the charset of the
 character has the property `fill-find-break-point-function', this
-function calls the property value as a function with one arg LINEBEG.
+function calls the property value as a function with one arg LIMIT.
 If the charset has no such property, do nothing."
   (let* ((ch (following-char))
 	 (charset (char-charset ch))
--- a/src/ChangeLog	Fri Dec 28 19:46:56 2007 +0000
+++ b/src/ChangeLog	Fri Dec 28 22:26:14 2007 +0000
@@ -1,3 +1,20 @@
+2007-12-24  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* process.c (make_process): Initialize pty_flag to Qnil instead of 0
+	as it is not a bit field on Emacs 22 yet.
+
+	* xdisp.c (phys_cursor_in_rect_p): Check if cursor is in fringe area.
+
+2007-12-22  Eli Zaretskii  <eliz@gnu.org>
+
+	* callint.c (syms_of_callint) <command-history>: Add reference to
+	history-length in the doc string.
+
+2007-12-17  Jason Rumney  <jasonr@gnu.org>
+
+	* w32fns.c (w32_wnd_proc) <WM_KEYDOWN>: Cast char to unsigned
+	before passing as wParam.
+
 2007-12-22  Michael Albinus  <michael.albinus@gmx.de>
 
 	* dbusbind.c (xd_retrieve_arg): Handle DBUS_TYPE_BYTE,
--- a/src/callint.c	Fri Dec 28 19:46:56 2007 +0000
+++ b/src/callint.c	Fri Dec 28 22:26:14 2007 +0000
@@ -941,7 +941,10 @@
 
   DEFVAR_LISP ("command-history", &Vcommand_history,
 	       doc: /* List of recent commands that read arguments from terminal.
-Each command is represented as a form to evaluate.  */);
+Each command is represented as a form to evaluate.
+
+Maximum length of the history list is determined by the value
+of `history-length', which see.  */);
   Vcommand_history = Qnil;
 
   DEFVAR_LISP ("command-debug-status", &Vcommand_debug_status,
--- a/src/macmenu.c	Fri Dec 28 19:46:56 2007 +0000
+++ b/src/macmenu.c	Fri Dec 28 22:26:14 2007 +0000
@@ -3272,7 +3272,8 @@
 	    }
 #endif  /* !TARGET_API_MAC_CARBON */
 	}
-      else
+
+      if (!menu)
 	{
 #if TARGET_API_MAC_CARBON
 	  err = CreateNewMenu (id, 0, &menu);
--- a/src/process.c	Fri Dec 28 19:46:56 2007 +0000
+++ b/src/process.c	Fri Dec 28 22:26:14 2007 +0000
@@ -631,7 +631,7 @@
   p->tick = 0;
   p->update_tick = 0;
   p->pid = 0;
-  p->pty_flag = 0;
+  p->pty_flag = Qnil;
   p->raw_status_new = 0;
   p->status = Qrun;
   p->mark = Fmake_marker ();
--- a/src/w32fns.c	Fri Dec 28 19:46:56 2007 +0000
+++ b/src/w32fns.c	Fri Dec 28 22:26:14 2007 +0000
@@ -3130,7 +3130,8 @@
 			{
 			  /* Forward asciified character sequence.  */
 			  post_character_message
-			    (hwnd, WM_CHAR, key.uChar.AsciiChar, lParam,
+			    (hwnd, WM_CHAR,
+                             (unsigned char) key.uChar.AsciiChar, lParam,
 			     w32_get_key_modifiers (wParam, lParam));
 			  w32_kbd_patch_key (&key);
 			}
--- a/src/xdisp.c	Fri Dec 28 19:46:56 2007 +0000
+++ b/src/xdisp.c	Fri Dec 28 22:26:14 2007 +0000
@@ -23534,6 +23534,24 @@
 {
   XRectangle cr, result;
   struct glyph *cursor_glyph;
+  struct glyph_row *row;
+
+  if (w->phys_cursor.vpos >= 0
+      && w->phys_cursor.vpos < w->current_matrix->nrows
+      && (row = MATRIX_ROW (w->current_matrix, w->phys_cursor.vpos),
+	  row->enabled_p)
+      && row->cursor_in_fringe_p)
+    {
+      /* Cursor is in the fringe.  */
+      cr.x = window_box_right_offset (w,
+				      (WINDOW_HAS_FRINGES_OUTSIDE_MARGINS (w)
+				       ? RIGHT_MARGIN_AREA
+				       : TEXT_AREA));
+      cr.y = row->y;
+      cr.width = WINDOW_RIGHT_FRINGE_WIDTH (w);
+      cr.height = row->height;
+      return x_intersect_rectangles (&cr, r, &result);
+    }
 
   cursor_glyph = get_phys_cursor_glyph (w);
   if (cursor_glyph)