]> code.delx.au - gnu-emacs/commitdiff
Merge from emacs-24; up to 2012-12-07T08:13:49Z!dmantipov@yandex.ru
authorGlenn Morris <rgm@gnu.org>
Sat, 5 Jan 2013 21:18:01 +0000 (13:18 -0800)
committerGlenn Morris <rgm@gnu.org>
Sat, 5 Jan 2013 21:18:01 +0000 (13:18 -0800)
25 files changed:
doc/emacs/ChangeLog
doc/emacs/text.texi
doc/lispref/ChangeLog
doc/lispref/display.texi
doc/lispref/hooks.texi
doc/lispref/keymaps.texi
doc/misc/ChangeLog
doc/misc/ada-mode.texi
doc/misc/auth.texi
doc/misc/ede.texi
doc/misc/emacs-gnutls.texi
doc/misc/eshell.texi
doc/misc/eudc.texi
doc/misc/forms.texi
doc/misc/htmlfontify.texi
doc/misc/org.texi
doc/misc/pcl-cvs.texi
doc/misc/pgg.texi
doc/misc/reftex.texi
doc/misc/smtpmail.texi
doc/misc/tramp.texi
doc/misc/vip.texi
doc/misc/viper.texi
src/ChangeLog
src/xdisp.c

index 18e76e0140094fad5cda64738aa6bf1b5ad8f954..601949af88ea7f089f496c1337b1226481deb9c2 100644 (file)
@@ -1,3 +1,7 @@
+2013-01-05  Glenn Morris  <rgm@gnu.org>
+
+       * text.texi (HTML Mode): Remove deleted nxml C-RET binding.
+
 2012-12-21  Glenn Morris  <rgm@gnu.org>
 
        * emacs-xtra.texi (copying): The FSF does not sell copies of this.
index cc5ecc475afa4b9a67c17a53fb7f4b33cf9cc07f..d50a841d509d0d071a246b93eea94f0cef64e62d 100644 (file)
@@ -1917,7 +1917,7 @@ used as a cheap preview (@code{sgml-tags-invisible}).
   The major mode for editing XML documents is called nXML mode.  This
 is a powerful major mode that can recognize many existing XML schema
 and use them to provide completion of XML elements via
-@kbd{C-@key{RET}} or @kbd{M-@key{TAB}}, as well as ``on-the-fly'' XML
+@kbd{M-@key{TAB}}, as well as ``on-the-fly'' XML
 validation with error highlighting.  To enable nXML mode in an
 existing buffer, type @kbd{M-x nxml-mode}, or, equivalently, @kbd{M-x
 xml-mode}.  Emacs uses nXML mode for files which have the extension
index e701f61c6b098c670507dfa5eb478aa09ae65ae8..31c81e62ac102aed8ecaf825c9a7dc023c3a7586 100644 (file)
@@ -1,3 +1,17 @@
+2013-01-05  Glenn Morris  <rgm@gnu.org>
+
+       * display.texi (Overlay Properties): Mention field.  (Bug#13364)
+
+2013-01-05  Eli Zaretskii  <eliz@gnu.org>
+
+       * hooks.texi (Standard Hooks): Use @item, not @itemx, as the first
+       directive in a group of items.
+
+2013-01-05  Chong Yidong  <cyd@gnu.org>
+
+       * keymaps.texi (Key Sequences): Remove obsolete sentence
+       (Bug#13356).
+
 2013-01-04  Ari Roponen  <ari.roponen@gmail.com>  (tiny change)
 
        * hash.texi (Defining Hash): Fix typo.  (Bug#13345)
index b1a096b24df822d7ad7baa96c090086c6bb82fa0..cc6e980dadcd0e2e2b930a269570c183b00839db 100644 (file)
@@ -1559,6 +1559,14 @@ mouse onto the text in the overlay, Emacs displays a help string in the
 echo area, or in the tooltip window.  For details see @ref{Text
 help-echo}.
 
+@item field
+@kindex field @r{(overlay property)}
+@c Copied from Special Properties.
+Consecutive characters with the same @code{field} property constitute a
+@emph{field}.  Some motion functions including @code{forward-word} and
+@code{beginning-of-line} stop moving at a field boundary.
+@xref{Fields}.
+
 @item modification-hooks
 @kindex modification-hooks @r{(overlay property)}
 This property's value is a list of functions to be called if any
index 40a3c162f58c71cca124c264495b8ded2bfc7aab..745393f8166343348ed017199db8100303c108dc 100644 (file)
@@ -121,7 +121,7 @@ The command loop runs this soon after @code{post-command-hook} (q.v.).
 @item delete-terminal-functions
 @xref{Multiple Terminals}.
 
-@itemx pop-up-frame-function
+@item pop-up-frame-function
 @itemx split-window-preferred-function
 @xref{Choosing Window Options}.
 
index c4bbe303bf90a9f35f5438a24e3f04217df6ecf4..cb6c785905c38e025cf6130d49637c602a1e32f1 100644 (file)
@@ -94,9 +94,6 @@ Manual}.
 (kbd "<f1> SPC") @result{} [f1 32]
 (kbd "C-M-<down>") @result{} [C-M-down]
 @end example
-
-This macro is not meant for use with arguments that vary---only
-with string constants.
 @end defun
 
 @node Keymap Basics
index b0c39ce85075c7877585f66b194486f869d7f5ab..d756f4fd0f01a640d36175a92b64c4325390f716 100644 (file)
@@ -1,3 +1,28 @@
+2013-01-05  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * ada-mode.texi: Remove braces from @title argument.
+       * eudc.texi: Likewise.
+       * smtpmail.texi: Likewise.
+       * auth.texi (VERSION): Set before first use.
+       * emacs-gnutls.texi (VERSION): Likewise.
+       * pgg.texi (VERSION): Likewise.
+       * ede.texi (Top): Rename from top, all uses changed.
+       * eshell.texi: Add missing argument to @sp.
+       * forms.texi (Top): Reorder menu to match structure.
+       * htmlfontify.texi (Customisation): Add missing @item in
+       @enumerate.
+       * org.texi (Advanced features): Add missing argument for @item.
+       (Property searches): Use @backslashchar{} in macro argument.
+       * pcl-cvs.texi: Add missing argument to @sp.
+       (Movement commands): Fix use of @itemx.
+       * vip.texi (Misc Commands, Viewing the Buffer): Likewise.
+       * reftex.texi (Options (Creating Citations)): Add missing newline
+       before @end.
+       * tramp.texi (Obtaining Tramp): Remove extra dots.
+       (Configuration): Reorder menu to match structure.
+       (Remote shell setup): Replace literal NUL character by \0.
+       * viper.texi (Marking): Add missing argument for @item.
+
 2013-01-04  Glenn Morris  <rgm@gnu.org>
 
        * Makefile.in (INFO_TARGETS, DVI_TARGETS, PDF_TARGETS):
index a5988684e068d0a8ef932060bbf9874351f2cc08..926d6a5749c02a4b685d4349ce64b525a0ff38e0 100644 (file)
@@ -25,7 +25,7 @@ modify this GNU manual.''
 
 @titlepage
 @sp 10
-@title{Ada Mode}
+@title Ada Mode
 @sp 2
 @subtitle An Emacs major mode for programming in Ada
 @subtitle Ada Mode Version 4.00
index 72b0338fb68edc8a121492b2710e3f4671e43b91..36ee400acca1fe453a8791de4e85f94c0a8f6537 100644 (file)
@@ -2,11 +2,11 @@
 
 @include gnus-overrides.texi
 
+@set VERSION 0.3
+
 @setfilename ../../info/auth
 @settitle Emacs auth-source Library @value{VERSION}
 
-@set VERSION 0.3
-
 @copying
 This file describes the Emacs auth-source library.
 
index 2001c8fef687d6755927f3d39d614744dbd73e3e..cadd815025c57098f0a167a6bbe5ff6b9aeff7ed 100644 (file)
@@ -63,7 +63,7 @@ modify this GNU manual.''
 
 @contents
 
-@node top, EDE Project Concepts, (dir), (dir)
+@node Top, EDE Project Concepts, (dir), (dir)
 @top EDE
 @comment  node-name,  next,  previous,  up
 
@@ -91,7 +91,7 @@ learn and adopt GNU ways of doing things.
 * GNU Free Documentation License::  The license for this documentation.
 @end menu
 
-@node EDE Project Concepts, EDE Mode, top, top
+@node EDE Project Concepts, EDE Mode, Top, Top
 @chapter @ede{} Project Concepts
 
 @ede{} is a generic interface for managing projects.  It specifies a
@@ -126,7 +126,7 @@ of search to files in a single target, or to discover the location of
 documentation or interface files.  @ede{} can provide this
 information.
 
-@node EDE Mode, Quick Start, EDE Project Concepts, top
+@node EDE Mode, Quick Start, EDE Project Concepts, Top
 @chapter @ede{} Mode
 
 @ede{} is implemented as a minor mode, which augments other modes such
@@ -143,7 +143,7 @@ bar.  This menu provides several menu items for high-level @ede{}
 commands.  These menu items, and their corresponding keybindings, are
 independent of the type of project you are actually working on.
 
-@node Quick Start, Creating a project, EDE Mode, top
+@node Quick Start, Creating a project, EDE Mode, Top
 @chapter Quick Start
 
 Once you have @ede{} enabled, you can create a project.  This chapter
@@ -439,7 +439,7 @@ C-c . R RET RET
 If your program takes command line arguments, you can type them in
 when it offers the command line you want to use to run your program.
 
-@node Creating a project, Modifying your project, Quick Start, top
+@node Creating a project, Modifying your project, Quick Start, Top
 @chapter Creating a project
 
 To create a new project, first visit a file that you want to include
@@ -497,7 +497,7 @@ the top-most project's makefile as a starting place for the build.  How
 the toplevel project handles subprojects in the build process is
 dependent on that project's type.
 
-@node Modifying your project, Building and Debugging, Creating a project, top
+@node Modifying your project, Building and Debugging, Creating a project, Top
 @chapter Modifying your project
 
 In this chapter, we describe the generic features for manipulating
@@ -678,7 +678,7 @@ block for ``configurations''.  Add a new named configuration here.
 To switch between different active configurations, modify the
 ``configuration default'' slot.
 
-@node Building and Debugging, Miscellaneous commands, Modifying your project, top
+@node Building and Debugging, Miscellaneous commands, Modifying your project, Top
 @chapter Building and Debugging
 
 @ede{} provides the following ``project-aware'' compilation and
@@ -697,7 +697,7 @@ Build a distribution file for your project.
 
 These commands are also available from the @samp{Development} menu.
 
-@node Miscellaneous commands, Extending EDE, Building and Debugging, top
+@node Miscellaneous commands, Extending EDE, Building and Debugging, Top
 @chapter Miscellaneous commands
 
 If you opt to go in and edit @ede{} project files directly---for
@@ -1093,7 +1093,7 @@ You can add your own locate tool but subclassing from
 methods.  See the code in @file{ede-locate.el} for GNU Global as a
 simple example.
 
-@node Extending EDE, GNU Free Documentation License, Miscellaneous commands, top
+@node Extending EDE, GNU Free Documentation License, Miscellaneous commands, Top
 @chapter Extending @ede{}
 
 This chapter is intended for users who want to write new parts or fix
index b046eff3c084d6418a16db0a1c2fbbf06769a6fa..740dfee41ed3f87bfc6bd2e343efd5a46291400e 100644 (file)
@@ -1,10 +1,10 @@
 \input texinfo                  @c -*-texinfo-*-
 
+@set VERSION 0.3
+
 @setfilename ../../info/emacs-gnutls
 @settitle Emacs GnuTLS Integration @value{VERSION}
 
-@set VERSION 0.3
-
 @copying
 This file describes the Emacs GnuTLS integration.
 
index 58597599cdb2bdf67fcfe563b6d8dd1bff75bebc..504940c5c6b8504c7703ac68a6667bcf1a87c22a 100644 (file)
@@ -32,9 +32,9 @@ modify this GNU manual.''
 @sp 4
 @c The title is printed in a large font.
 @center @titlefont{User's Guide}
-@sp
+@sp 1
 @center @titlefont{to}
-@sp
+@sp 1
 @center @titlefont{Eshell: The Emacs Shell}
 @ignore
 @sp 2
index b92aacc88f0eee28e2056869c1bb069063fc48ce..5b06cc7f11a41b58b49afe9825ecf803316ebe00 100644 (file)
@@ -35,8 +35,8 @@ modify this GNU manual.''
 @footnotestyle end
 
 @titlepage
-@title{EUDC Manual}
-@subtitle{The Emacs Unified Directory Client}
+@title EUDC Manual
+@subtitle The Emacs Unified Directory Client
 @author by Oscar Figueiredo
 @code{1.30b}
 
index fb8889413575f41118ee088b290093625b47e827..43ffab26c9b2d30f264d22510c507ea3c25c08fd 100644 (file)
@@ -87,8 +87,8 @@ how to present it.
 * Miscellaneous::               Forms mode messages and other remarks.
 * Error Messages::              List of error messages forms mode can produce.
 * Long Example::                A more complex control file example.
-* GNU Free Documentation License:: The license for this documentation.
 * Credits::                     Thanks everyone.
+* GNU Free Documentation License:: The license for this documentation.
 * Index::                       Index to this manual.
 @end menu
 @end ifnottex
index d6904740778f16f93cfc5154ca8594df3af4e584..911cdd3cd5f1c656e352df0a63f5572131565810 100644 (file)
@@ -1520,9 +1520,12 @@ Regex used to parse an etags entry: must have 3 subexps, corresponding,
 in order, to:
 
 @enumerate
-   The tag
-   The line
-   The character (point) at which the tag occurs
+@item
+The tag
+@item
+The line
+@item
+The character (point) at which the tag occurs
 @end enumerate
 
 @item hfy-index-file
index 737c186a5a407bebfe69a69d31fe3174dded82c8..bea130ccb437e41a88431b78a657afa1276827c1 100644 (file)
@@ -3027,7 +3027,7 @@ lines will be left alone by this command.
 Selects this line for global recalculation with @kbd{C-u C-c *}, but
 not for automatic recalculation.  Use this when automatic
 recalculation slows down editing too much.
-@item
+@item @
 Unmarked lines are exempt from recalculation with @kbd{C-u C-c *}.
 All lines that should be recalculated should be marked with @samp{#}
 or @samp{*}.
@@ -5050,7 +5050,7 @@ FILE         @r{The filename the entry is located in.}
 To create sparse trees and special lists with selection based on properties,
 the same commands are used as for tag searches (@pxref{Tag searches}).
 @table @kbd
-@orgcmdkkc{C-c / m,C-c \,org-match-sparse-tree}
+@orgcmdkkc{C-c / m,C-c @backslashchar{},org-match-sparse-tree}
 Create a sparse tree with all matching entries.  With a
 @kbd{C-u} prefix argument, ignore headlines that are not a TODO line.
 @orgcmd{C-c a m,org-tags-view}
index 0749ceefd0190119cf3b64b767fa618356ec1249..7c294591d0e3a4ad42866b82129935b3d4159a9c 100644 (file)
@@ -31,9 +31,9 @@ modify this GNU manual.''
 @sp 4
 @c The title is printed in a large font.
 @center @titlefont{User's Guide}
-@sp
+@sp 1
 @center @titlefont{to}
-@sp
+@sp 1
 @center @titlefont{PCL-CVS---The Emacs Front-End to CVS}
 @ignore
 @sp 2
@@ -682,7 +682,7 @@ the fact that the buffer is a PCL-CVS buffer:
 These keys move the cursor one file forward, towards the end of the
 buffer (@code{cvs-mode-next-line}).@refill
 
-@itemx p
+@item p
 This key moves one file backward, towards the beginning of the buffer
 (@code{cvs-mode-previous-line}).
 @end table
index 6326f84420ce46753b4b67515847a7cb14a2b934..bb40a9f541db3abf40c6108a1f2a7ae35fd9265f 100644 (file)
@@ -2,11 +2,11 @@
 
 @include gnus-overrides.texi
 
+@set VERSION 0.1
+
 @setfilename ../../info/pgg
 @settitle PGG @value{VERSION}
 
-@set VERSION 0.1
-
 @copying
 This file describes PGG @value{VERSION}, an Emacs interface to various
 PGP implementations.
index c5b95e4754a313d4133b408feb940f601893a566..0ee206b1a4d7524000718f710b99f66e3aaa92dd 100644 (file)
@@ -4611,7 +4611,8 @@ prompt for values.  Possible values are:
 @example
 nil     @r{Never prompt for optional arguments}
 t       @r{Always prompt}
-maybe   @r{Prompt only if @code{reftex-citation} was called with C-u prefix arg}@end example
+maybe   @r{Prompt only if @code{reftex-citation} was called with C-u prefix arg}
+@end example
 Unnecessary empty optional arguments are removed before insertion into
 the buffer.  See @code{reftex-cite-cleanup-optional-args}.
 @end defopt
index ede4d2a238228b09bd52be4a58ae0a75b7577417..dce90d060124c89a5b9bbf0da4ce0d78244c4841 100644 (file)
@@ -24,9 +24,9 @@ modify this GNU manual.''
 @end direntry
 
 @titlepage
-@title{Emacs SMTP Library}
-@subtitle{An Emacs package for sending mail via SMTP}
-@author{Simon Josefsson, Alex Schroeder}
+@title Emacs SMTP Library
+@subtitle An Emacs package for sending mail via SMTP
+@author Simon Josefsson, Alex Schroeder
 @page
 @vskip 0pt plus 1filll
 @insertcopying
index 2df3b4265d0243213d4d66c27374b3f20db777ab..a683425868a96be8a4bef269d4481fb133c77a0f 100644 (file)
@@ -374,7 +374,7 @@ This release includes the full documentation and code for
 @value{tramp}, suitable for installation.  But Emacs (22 or later)
 includes @value{tramp} already, and there is a @value{tramp} package
 for XEmacs, as well.  So maybe it is easier to just use those.  But if
-you want the bleeding edge, read on@dots{...}
+you want the bleeding edge, read on@dots{}
 
 For the especially brave, @value{tramp} is available from Git.  The Git
 version is the latest version of the code and may contain incomplete
@@ -515,8 +515,8 @@ Method}.
 * Connection caching::          Reusing connection related information.
 * Remote Programs::             How @value{tramp} finds and uses programs on the remote machine.
 * Remote shell setup::          Remote shell setup hints.
-* Windows setup hints::         Issues with Cygwin ssh.
 * Auto-save and Backup::        Auto-save and Backup.
+* Windows setup hints::         Issues with Cygwin ssh.
 @end menu
 
 
@@ -1899,7 +1899,7 @@ of your (local or remote) host, you might need to adapt this. Example:
           "passwort" "Passwort"
           ;; Fran@,{c}ais
           "mot de passe" "Mot de passe") t)
-      ".*:\0? *"))
+      ".*:\0? *"))
 @end lisp
 
 In parallel, it might also be necessary to adapt
index dbf83df46d3bc8c94e63ed9155729f352fbdc833..01048d43dbf11f988bd67456baf7496406637f4a 100644 (file)
@@ -677,9 +677,9 @@ Call last remembered keyboard macro.
 Suspend Emacs.
 @item Z Z
 Exit Emacs.
-@itemx Q
+@item Q
 Query replace.
-@itemx R
+@item R
 Replace.
 @end table
 
@@ -944,11 +944,11 @@ Scroll text of current window upward almost full screen.  You can go
 @kindex 002 @kbd{C-b} (@code{vip-scroll-back})
 Scroll text of current window downward almost full screen.  You can go
 @i{backward} in the buffer by this command (@code{vip-scroll-back}).
-@itemx C-d
+@item C-d
 @kindex 004 @kbd{C-d} (@code{vip-scroll-up})
 Scroll text of current window upward half screen.  You can go
 @i{down} in the buffer by this command (@code{vip-scroll-down}).
-@itemx C-u
+@item C-u
 @kindex 025 @kbd{C-u} (@code{vip-scroll-down})
 Scroll text of current window downward half screen.  You can go
 @i{up} in the buffer by this command (@code{vip-scroll-up}).
index 9a291dc19bb6a51b29f445652660a005a2900e5c..9bcecf8e3de0dd856ac7ae81098af8818cde9d35 100644 (file)
@@ -3465,7 +3465,7 @@ Exchange point and mark.
 Exchange point and mark and go to the first CHAR on line.
 @item '<a-z>
 Go to specified Viper mark.
-@item
+@item `<a-z>
 Go to specified Viper mark and go to the first CHAR on line.
 @end table
 @kindex @kbd{m<a-z>}
index 8fc876e248c747e79b064b36e7d6a6bc44d5aa53..c0c85c15ee97feb72e00c28982732c06e41b04df 100644 (file)
@@ -1,3 +1,12 @@
+2013-01-05  Eli Zaretskii  <eliz@gnu.org>
+
+       * xdisp.c (dump_glyph): Align glyph data better.  Use "pD" instead
+       of a non-portable "t" to print ptrdiff_t values.  Allow up to 9
+       digits for buffer positions, before misalignment starts.  Display
+       "0" for integer "object" field.
+       (dump_glyph_row): Adapt the header line to changes in dump_glyph.
+       Display the newline glyph more unambiguously.
+
 2013-01-04  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 
        * nsterm.m (ns_draw_underwave):
index 8b0d8b6cfa008bec6ab8bb8b85a5c0ea9259b927..b75362b1446a6e0f3398165b5e158fd1ce0c1e56 100644 (file)
@@ -17925,18 +17925,23 @@ dump_glyph_matrix (struct glyph_matrix *matrix, int glyphs)
 void
 dump_glyph (struct glyph_row *row, struct glyph *glyph, int area)
 {
-  if (glyph->type == CHAR_GLYPH)
+  if (glyph->type == CHAR_GLYPH
+      || glyph->type == GLYPHLESS_GLYPH)
     {
       fprintf (stderr,
-              "  %5td %4c %6"pI"d %c %3d 0x%05x %c %4d %1.1d%1.1d\n",
+              "  %5"pD"d     %c %9"pI"d   %c %3d 0x%06x      %c %4d %1.1d%1.1d\n",
               glyph - row->glyphs[TEXT_AREA],
-              'C',
+              (glyph->type == CHAR_GLYPH
+               ? 'C'
+               : 'G'),
               glyph->charpos,
               (BUFFERP (glyph->object)
                ? 'B'
                : (STRINGP (glyph->object)
                   ? 'S'
-                  : '-')),
+                  : (INTEGERP (glyph->object)
+                     ? '0'
+                     : '-'))),
               glyph->pixel_width,
               glyph->u.ch,
               (glyph->u.ch < 0x80 && glyph->u.ch >= ' '
@@ -17949,7 +17954,7 @@ dump_glyph (struct glyph_row *row, struct glyph *glyph, int area)
   else if (glyph->type == STRETCH_GLYPH)
     {
       fprintf (stderr,
-              "  %5td %4c %6"pI"d %c %3d 0x%05x %c %4d %1.1d%1.1d\n",
+              "  %5"pD"d     %c %9"pI"d   %c %3d 0x%06x      %c %4d %1.1d%1.1d\n",
               glyph - row->glyphs[TEXT_AREA],
               'S',
               glyph->charpos,
@@ -17957,10 +17962,12 @@ dump_glyph (struct glyph_row *row, struct glyph *glyph, int area)
                ? 'B'
                : (STRINGP (glyph->object)
                   ? 'S'
-                  : '-')),
+                  : (INTEGERP (glyph->object)
+                     ? '0'
+                     : '-'))),
               glyph->pixel_width,
               0,
-              '.',
+              ' ',
               glyph->face_id,
               glyph->left_box_line_p,
               glyph->right_box_line_p);
@@ -17968,7 +17975,7 @@ dump_glyph (struct glyph_row *row, struct glyph *glyph, int area)
   else if (glyph->type == IMAGE_GLYPH)
     {
       fprintf (stderr,
-              "  %5td %4c %6"pI"d %c %3d 0x%05x %c %4d %1.1d%1.1d\n",
+              "  %5"pD"d     %c %9"pI"d   %c %3d 0x%06x      %c %4d %1.1d%1.1d\n",
               glyph - row->glyphs[TEXT_AREA],
               'I',
               glyph->charpos,
@@ -17976,7 +17983,9 @@ dump_glyph (struct glyph_row *row, struct glyph *glyph, int area)
                ? 'B'
                : (STRINGP (glyph->object)
                   ? 'S'
-                  : '-')),
+                  : (INTEGERP (glyph->object)
+                     ? '0'
+                     : '-'))),
               glyph->pixel_width,
               glyph->u.img_id,
               '.',
@@ -17987,7 +17996,7 @@ dump_glyph (struct glyph_row *row, struct glyph *glyph, int area)
   else if (glyph->type == COMPOSITE_GLYPH)
     {
       fprintf (stderr,
-              "  %5td %4c %6"pI"d %c %3d 0x%05x",
+              "  %5"pD"d     %c %9"pI"d   %c %3d 0x%06x",
               glyph - row->glyphs[TEXT_AREA],
               '+',
               glyph->charpos,
@@ -17995,7 +18004,9 @@ dump_glyph (struct glyph_row *row, struct glyph *glyph, int area)
                ? 'B'
                : (STRINGP (glyph->object)
                   ? 'S'
-                  : '-')),
+                  : (INTEGERP (glyph->object)
+                     ? '0'
+                     : '-'))),
               glyph->pixel_width,
               glyph->u.cmp.id);
       if (glyph->u.cmp.automatic)
@@ -18020,10 +18031,10 @@ dump_glyph_row (struct glyph_row *row, int vpos, int glyphs)
 {
   if (glyphs != 1)
     {
-      fprintf (stderr, "Row Start   End Used oE><\\CTZFesm     X    Y    W    H    V    A    P\n");
-      fprintf (stderr, "======================================================================\n");
+      fprintf (stderr, "Row     Start       End Used oE><\\CTZFesm     X    Y    W    H    V    A    P\n");
+      fprintf (stderr, "==============================================================================\n");
 
-      fprintf (stderr, "%3d %5"pI"d %5"pI"d %4d %1.1d%1.1d%1.1d%1.1d\
+      fprintf (stderr, "%3d %9"pI"d %9"pI"d %4d %1.1d%1.1d%1.1d%1.1d\
 %1.1d%1.1d%1.1d%1.1d%1.1d%1.1d%1.1d%1.1d  %4d %4d %4d %4d %4d %4d %4d\n",
               vpos,
               MATRIX_ROW_START_CHARPOS (row),
@@ -18048,13 +18059,14 @@ dump_glyph_row (struct glyph_row *row, int vpos, int glyphs)
               row->visible_height,
               row->ascent,
               row->phys_ascent);
-      fprintf (stderr, "%9"pD"d %5"pD"d\t%5d\n", row->start.overlay_string_index,
+      /* The next 3 lines should align to "Start" in the header.  */
+      fprintf (stderr, "    %9"pD"d %9"pD"d\t%5d\n", row->start.overlay_string_index,
               row->end.overlay_string_index,
               row->continuation_lines_width);
-      fprintf (stderr, "%9"pI"d %5"pI"d\n",
+      fprintf (stderr, "    %9"pI"d %9"pI"d\n",
               CHARPOS (row->start.string_pos),
               CHARPOS (row->end.string_pos));
-      fprintf (stderr, "%9d %5d\n", row->start.dpvec_index,
+      fprintf (stderr, "    %9d %9d\n", row->start.dpvec_index,
               row->end.dpvec_index);
     }
 
@@ -18072,7 +18084,7 @@ dump_glyph_row (struct glyph_row *row, int vpos, int glyphs)
            ++glyph_end;
 
          if (glyph < glyph_end)
-           fprintf (stderr, "  Glyph    Type Pos   O W    Code C Face LR\n");
+           fprintf (stderr, " Glyph#  Type       Pos   O   W     Code      C Face LR\n");
 
          for (; glyph < glyph_end; ++glyph)
            dump_glyph (row, glyph, area);
@@ -18084,15 +18096,24 @@ dump_glyph_row (struct glyph_row *row, int vpos, int glyphs)
 
       for (area = LEFT_MARGIN_AREA; area < LAST_AREA; ++area)
        {
-         char *s = alloca (row->used[area] + 1);
+         char *s = alloca (row->used[area] + 4);
          int i;
 
          for (i = 0; i < row->used[area]; ++i)
            {
              struct glyph *glyph = row->glyphs[area] + i;
-             if (glyph->type == CHAR_GLYPH
-                 && glyph->u.ch < 0x80
-                 && glyph->u.ch >= ' ')
+             if (i == row->used[area] - 1
+                 && area == TEXT_AREA
+                 && INTEGERP (glyph->object)
+                 && glyph->type == CHAR_GLYPH
+                 && glyph->u.ch == ' ')
+               {
+                 strcpy (&s[i], "[\\n]");
+                 i += 4;
+               }
+             else if (glyph->type == CHAR_GLYPH
+                      && glyph->u.ch < 0x80
+                      && glyph->u.ch >= ' ')
                s[i] = glyph->u.ch;
              else
                s[i] = '.';