aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoakim Verona2013-01-07 00:03:49 +0100
committerJoakim Verona2013-01-07 00:03:49 +0100
commitbe73be611d160876f9df633ff3a2d86eb78f65c7 (patch)
treeda818705af78c54104d99583e7895d7e0d0f5cb6
parentb18e01b65e651d3b626b4edcaaa2aa636fe25b69 (diff)
parent84f6744ab74d1c5f201e88273fc6faa65956a440 (diff)
downloademacs-be73be611d160876f9df633ff3a2d86eb78f65c7.tar.gz
emacs-be73be611d160876f9df633ff3a2d86eb78f65c7.zip
auto upstream
-rw-r--r--doc/emacs/ChangeLog4
-rw-r--r--doc/emacs/text.texi2
-rw-r--r--doc/lispref/ChangeLog18
-rw-r--r--doc/lispref/display.texi8
-rw-r--r--doc/lispref/hooks.texi2
-rw-r--r--doc/lispref/keymaps.texi3
-rw-r--r--doc/lispref/windows.texi9
-rw-r--r--doc/misc/ChangeLog35
-rw-r--r--doc/misc/ada-mode.texi2
-rw-r--r--doc/misc/auth.texi4
-rw-r--r--doc/misc/autotype.texi3
-rw-r--r--doc/misc/cc-mode.texi2
-rw-r--r--doc/misc/ede.texi18
-rw-r--r--doc/misc/emacs-gnutls.texi4
-rw-r--r--doc/misc/eshell.texi4
-rw-r--r--doc/misc/eudc.texi4
-rw-r--r--doc/misc/forms.texi2
-rw-r--r--doc/misc/htmlfontify.texi9
-rw-r--r--doc/misc/org.texi4
-rw-r--r--doc/misc/pcl-cvs.texi6
-rw-r--r--doc/misc/pgg.texi2
-rw-r--r--doc/misc/reftex.texi3
-rw-r--r--doc/misc/smtpmail.texi6
-rw-r--r--doc/misc/tramp.texi6
-rw-r--r--doc/misc/vip.texi8
-rw-r--r--doc/misc/viper.texi2
-rw-r--r--lisp/ChangeLog37
-rw-r--r--lisp/net/tramp-adb.el163
-rw-r--r--lisp/vc/vc-hooks.el28
-rw-r--r--lisp/vc/vc.el15
-rw-r--r--src/ChangeLog18
-rw-r--r--src/keyboard.c146
-rw-r--r--src/xdisp.c65
33 files changed, 436 insertions, 206 deletions
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog
index 18e76e01400..601949af88e 100644
--- a/doc/emacs/ChangeLog
+++ b/doc/emacs/ChangeLog
@@ -1,3 +1,7 @@
12013-01-05 Glenn Morris <rgm@gnu.org>
2
3 * text.texi (HTML Mode): Remove deleted nxml C-RET binding.
4
12012-12-21 Glenn Morris <rgm@gnu.org> 52012-12-21 Glenn Morris <rgm@gnu.org>
2 6
3 * emacs-xtra.texi (copying): The FSF does not sell copies of this. 7 * emacs-xtra.texi (copying): The FSF does not sell copies of this.
diff --git a/doc/emacs/text.texi b/doc/emacs/text.texi
index cc5ecc475af..d50a841d509 100644
--- a/doc/emacs/text.texi
+++ b/doc/emacs/text.texi
@@ -1917,7 +1917,7 @@ used as a cheap preview (@code{sgml-tags-invisible}).
1917 The major mode for editing XML documents is called nXML mode. This 1917 The major mode for editing XML documents is called nXML mode. This
1918is a powerful major mode that can recognize many existing XML schema 1918is a powerful major mode that can recognize many existing XML schema
1919and use them to provide completion of XML elements via 1919and use them to provide completion of XML elements via
1920@kbd{C-@key{RET}} or @kbd{M-@key{TAB}}, as well as ``on-the-fly'' XML 1920@kbd{M-@key{TAB}}, as well as ``on-the-fly'' XML
1921validation with error highlighting. To enable nXML mode in an 1921validation with error highlighting. To enable nXML mode in an
1922existing buffer, type @kbd{M-x nxml-mode}, or, equivalently, @kbd{M-x 1922existing buffer, type @kbd{M-x nxml-mode}, or, equivalently, @kbd{M-x
1923xml-mode}. Emacs uses nXML mode for files which have the extension 1923xml-mode}. Emacs uses nXML mode for files which have the extension
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog
index e701f61c6b0..64973ca38c5 100644
--- a/doc/lispref/ChangeLog
+++ b/doc/lispref/ChangeLog
@@ -1,3 +1,21 @@
12013-01-06 Chong Yidong <cyd@gnu.org>
2
3 * windows.texi (Vertical Scrolling): Fix typos (Bug#13267).
4
52013-01-05 Glenn Morris <rgm@gnu.org>
6
7 * display.texi (Overlay Properties): Mention field. (Bug#13364)
8
92013-01-05 Eli Zaretskii <eliz@gnu.org>
10
11 * hooks.texi (Standard Hooks): Use @item, not @itemx, as the first
12 directive in a group of items.
13
142013-01-05 Chong Yidong <cyd@gnu.org>
15
16 * keymaps.texi (Key Sequences): Remove obsolete sentence
17 (Bug#13356).
18
12013-01-04 Ari Roponen <ari.roponen@gmail.com> (tiny change) 192013-01-04 Ari Roponen <ari.roponen@gmail.com> (tiny change)
2 20
3 * hash.texi (Defining Hash): Fix typo. (Bug#13345) 21 * hash.texi (Defining Hash): Fix typo. (Bug#13345)
diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi
index b1a096b24df..cc6e980dadc 100644
--- a/doc/lispref/display.texi
+++ b/doc/lispref/display.texi
@@ -1559,6 +1559,14 @@ mouse onto the text in the overlay, Emacs displays a help string in the
1559echo area, or in the tooltip window. For details see @ref{Text 1559echo area, or in the tooltip window. For details see @ref{Text
1560help-echo}. 1560help-echo}.
1561 1561
1562@item field
1563@kindex field @r{(overlay property)}
1564@c Copied from Special Properties.
1565Consecutive characters with the same @code{field} property constitute a
1566@emph{field}. Some motion functions including @code{forward-word} and
1567@code{beginning-of-line} stop moving at a field boundary.
1568@xref{Fields}.
1569
1562@item modification-hooks 1570@item modification-hooks
1563@kindex modification-hooks @r{(overlay property)} 1571@kindex modification-hooks @r{(overlay property)}
1564This property's value is a list of functions to be called if any 1572This property's value is a list of functions to be called if any
diff --git a/doc/lispref/hooks.texi b/doc/lispref/hooks.texi
index 40a3c162f58..745393f8166 100644
--- a/doc/lispref/hooks.texi
+++ b/doc/lispref/hooks.texi
@@ -121,7 +121,7 @@ The command loop runs this soon after @code{post-command-hook} (q.v.).
121@item delete-terminal-functions 121@item delete-terminal-functions
122@xref{Multiple Terminals}. 122@xref{Multiple Terminals}.
123 123
124@itemx pop-up-frame-function 124@item pop-up-frame-function
125@itemx split-window-preferred-function 125@itemx split-window-preferred-function
126@xref{Choosing Window Options}. 126@xref{Choosing Window Options}.
127 127
diff --git a/doc/lispref/keymaps.texi b/doc/lispref/keymaps.texi
index c4bbe303bf9..cb6c785905c 100644
--- a/doc/lispref/keymaps.texi
+++ b/doc/lispref/keymaps.texi
@@ -94,9 +94,6 @@ Manual}.
94(kbd "<f1> SPC") @result{} [f1 32] 94(kbd "<f1> SPC") @result{} [f1 32]
95(kbd "C-M-<down>") @result{} [C-M-down] 95(kbd "C-M-<down>") @result{} [C-M-down]
96@end example 96@end example
97
98This macro is not meant for use with arguments that vary---only
99with string constants.
100@end defun 97@end defun
101 98
102@node Keymap Basics 99@node Keymap Basics
diff --git a/doc/lispref/windows.texi b/doc/lispref/windows.texi
index b3c143496dd..792002add81 100644
--- a/doc/lispref/windows.texi
+++ b/doc/lispref/windows.texi
@@ -3054,10 +3054,11 @@ pixels. In this case, the return value is @var{lines}.
3054@end defun 3054@end defun
3055 3055
3056@defvar auto-window-vscroll 3056@defvar auto-window-vscroll
3057If this variable is non-@code{nil}, the line-move, scroll-up, and 3057If this variable is non-@code{nil}, the @code{line-move},
3058scroll-down functions will automatically modify the vertical scroll 3058@code{scroll-up}, and @code{scroll-down} functions will automatically
3059position to scroll through display rows that are taller than the height 3059modify the vertical scroll position to scroll through display rows
3060of the window, for example in the presence of large images. 3060that are taller than the height of the window, for example in the
3061presence of large images.
3061@end defvar 3062@end defvar
3062 3063
3063@node Horizontal Scrolling 3064@node Horizontal Scrolling
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog
index b0c39ce8507..79214acc102 100644
--- a/doc/misc/ChangeLog
+++ b/doc/misc/ChangeLog
@@ -1,3 +1,38 @@
12013-01-06 Andreas Schwab <schwab@linux-m68k.org>
2
3 * autotype.texi: Remove undefined command @subtitlefont.
4 * cc-mode.texi: Likewise.
5
6 * org.texi (Advanced features): Use `@w{ }' instead of `@ ' in
7 @item argument.
8 (Property searches): Use \\ instead of @backslashchar{}.
9 * pgg.texi (VERSION): Move @set below @setfilename.
10
112013-01-05 Andreas Schwab <schwab@linux-m68k.org>
12
13 * ada-mode.texi: Remove braces from @title argument.
14 * eudc.texi: Likewise.
15 * smtpmail.texi: Likewise.
16 * auth.texi (VERSION): Set before first use.
17 * emacs-gnutls.texi (VERSION): Likewise.
18 * pgg.texi (VERSION): Likewise.
19 * ede.texi (Top): Rename from top, all uses changed.
20 * eshell.texi: Add missing argument to @sp.
21 * forms.texi (Top): Reorder menu to match structure.
22 * htmlfontify.texi (Customisation): Add missing @item in
23 @enumerate.
24 * org.texi (Advanced features): Add missing argument for @item.
25 (Property searches): Use @backslashchar{} in macro argument.
26 * pcl-cvs.texi: Add missing argument to @sp.
27 (Movement commands): Fix use of @itemx.
28 * vip.texi (Misc Commands, Viewing the Buffer): Likewise.
29 * reftex.texi (Options (Creating Citations)): Add missing newline
30 before @end.
31 * tramp.texi (Obtaining Tramp): Remove extra dots.
32 (Configuration): Reorder menu to match structure.
33 (Remote shell setup): Replace literal NUL character by \0.
34 * viper.texi (Marking): Add missing argument for @item.
35
12013-01-04 Glenn Morris <rgm@gnu.org> 362013-01-04 Glenn Morris <rgm@gnu.org>
2 37
3 * Makefile.in (INFO_TARGETS, DVI_TARGETS, PDF_TARGETS): 38 * Makefile.in (INFO_TARGETS, DVI_TARGETS, PDF_TARGETS):
diff --git a/doc/misc/ada-mode.texi b/doc/misc/ada-mode.texi
index a5988684e06..926d6a5749c 100644
--- a/doc/misc/ada-mode.texi
+++ b/doc/misc/ada-mode.texi
@@ -25,7 +25,7 @@ modify this GNU manual.''
25 25
26@titlepage 26@titlepage
27@sp 10 27@sp 10
28@title{Ada Mode} 28@title Ada Mode
29@sp 2 29@sp 2
30@subtitle An Emacs major mode for programming in Ada 30@subtitle An Emacs major mode for programming in Ada
31@subtitle Ada Mode Version 4.00 31@subtitle Ada Mode Version 4.00
diff --git a/doc/misc/auth.texi b/doc/misc/auth.texi
index 72b0338fb68..36ee400acca 100644
--- a/doc/misc/auth.texi
+++ b/doc/misc/auth.texi
@@ -2,11 +2,11 @@
2 2
3@include gnus-overrides.texi 3@include gnus-overrides.texi
4 4
5@set VERSION 0.3
6
5@setfilename ../../info/auth 7@setfilename ../../info/auth
6@settitle Emacs auth-source Library @value{VERSION} 8@settitle Emacs auth-source Library @value{VERSION}
7 9
8@set VERSION 0.3
9
10@copying 10@copying
11This file describes the Emacs auth-source library. 11This file describes the Emacs auth-source library.
12 12
diff --git a/doc/misc/autotype.texi b/doc/misc/autotype.texi
index ad6a2902b1e..137ed6b43e8 100644
--- a/doc/misc/autotype.texi
+++ b/doc/misc/autotype.texi
@@ -37,8 +37,7 @@ modify this GNU manual.''
37 37
38@center @titlefont{Autotyping} 38@center @titlefont{Autotyping}
39@sp 2 39@sp 2
40@center @subtitlefont{Convenient features for text that you enter 40@center Convenient features for text that you enter frequently in Emacs
41frequently in Emacs}
42@sp 2 41@sp 2
43@center Daniel Pfeiffer 42@center Daniel Pfeiffer
44@center additions by Dave Love 43@center additions by Dave Love
diff --git a/doc/misc/cc-mode.texi b/doc/misc/cc-mode.texi
index f63c6c54a16..55b7028101a 100644
--- a/doc/misc/cc-mode.texi
+++ b/doc/misc/cc-mode.texi
@@ -188,7 +188,7 @@ modify this GNU manual.''
188 188
189@center @titlefont{CC Mode 5.32} 189@center @titlefont{CC Mode 5.32}
190@sp 2 190@sp 2
191@center @subtitlefont{A GNU Emacs mode for editing C and C-like languages} 191@center A GNU Emacs mode for editing C and C-like languages
192@sp 2 192@sp 2
193@center Barry A. Warsaw, Martin Stjernholm, Alan Mackenzie 193@center Barry A. Warsaw, Martin Stjernholm, Alan Mackenzie
194 194
diff --git a/doc/misc/ede.texi b/doc/misc/ede.texi
index 2001c8fef68..cadd815025c 100644
--- a/doc/misc/ede.texi
+++ b/doc/misc/ede.texi
@@ -63,7 +63,7 @@ modify this GNU manual.''
63 63
64@contents 64@contents
65 65
66@node top, EDE Project Concepts, (dir), (dir) 66@node Top, EDE Project Concepts, (dir), (dir)
67@top EDE 67@top EDE
68@comment node-name, next, previous, up 68@comment node-name, next, previous, up
69 69
@@ -91,7 +91,7 @@ learn and adopt GNU ways of doing things.
91* GNU Free Documentation License:: The license for this documentation. 91* GNU Free Documentation License:: The license for this documentation.
92@end menu 92@end menu
93 93
94@node EDE Project Concepts, EDE Mode, top, top 94@node EDE Project Concepts, EDE Mode, Top, Top
95@chapter @ede{} Project Concepts 95@chapter @ede{} Project Concepts
96 96
97@ede{} is a generic interface for managing projects. It specifies a 97@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
126documentation or interface files. @ede{} can provide this 126documentation or interface files. @ede{} can provide this
127information. 127information.
128 128
129@node EDE Mode, Quick Start, EDE Project Concepts, top 129@node EDE Mode, Quick Start, EDE Project Concepts, Top
130@chapter @ede{} Mode 130@chapter @ede{} Mode
131 131
132@ede{} is implemented as a minor mode, which augments other modes such 132@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{}
143commands. These menu items, and their corresponding keybindings, are 143commands. These menu items, and their corresponding keybindings, are
144independent of the type of project you are actually working on. 144independent of the type of project you are actually working on.
145 145
146@node Quick Start, Creating a project, EDE Mode, top 146@node Quick Start, Creating a project, EDE Mode, Top
147@chapter Quick Start 147@chapter Quick Start
148 148
149Once you have @ede{} enabled, you can create a project. This chapter 149Once you have @ede{} enabled, you can create a project. This chapter
@@ -439,7 +439,7 @@ C-c . R RET RET
439If your program takes command line arguments, you can type them in 439If your program takes command line arguments, you can type them in
440when it offers the command line you want to use to run your program. 440when it offers the command line you want to use to run your program.
441 441
442@node Creating a project, Modifying your project, Quick Start, top 442@node Creating a project, Modifying your project, Quick Start, Top
443@chapter Creating a project 443@chapter Creating a project
444 444
445To create a new project, first visit a file that you want to include 445To 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
497the toplevel project handles subprojects in the build process is 497the toplevel project handles subprojects in the build process is
498dependent on that project's type. 498dependent on that project's type.
499 499
500@node Modifying your project, Building and Debugging, Creating a project, top 500@node Modifying your project, Building and Debugging, Creating a project, Top
501@chapter Modifying your project 501@chapter Modifying your project
502 502
503In this chapter, we describe the generic features for manipulating 503In this chapter, we describe the generic features for manipulating
@@ -678,7 +678,7 @@ block for ``configurations''. Add a new named configuration here.
678To switch between different active configurations, modify the 678To switch between different active configurations, modify the
679``configuration default'' slot. 679``configuration default'' slot.
680 680
681@node Building and Debugging, Miscellaneous commands, Modifying your project, top 681@node Building and Debugging, Miscellaneous commands, Modifying your project, Top
682@chapter Building and Debugging 682@chapter Building and Debugging
683 683
684@ede{} provides the following ``project-aware'' compilation and 684@ede{} provides the following ``project-aware'' compilation and
@@ -697,7 +697,7 @@ Build a distribution file for your project.
697 697
698These commands are also available from the @samp{Development} menu. 698These commands are also available from the @samp{Development} menu.
699 699
700@node Miscellaneous commands, Extending EDE, Building and Debugging, top 700@node Miscellaneous commands, Extending EDE, Building and Debugging, Top
701@chapter Miscellaneous commands 701@chapter Miscellaneous commands
702 702
703If you opt to go in and edit @ede{} project files directly---for 703If 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
1093methods. See the code in @file{ede-locate.el} for GNU Global as a 1093methods. See the code in @file{ede-locate.el} for GNU Global as a
1094simple example. 1094simple example.
1095 1095
1096@node Extending EDE, GNU Free Documentation License, Miscellaneous commands, top 1096@node Extending EDE, GNU Free Documentation License, Miscellaneous commands, Top
1097@chapter Extending @ede{} 1097@chapter Extending @ede{}
1098 1098
1099This chapter is intended for users who want to write new parts or fix 1099This chapter is intended for users who want to write new parts or fix
diff --git a/doc/misc/emacs-gnutls.texi b/doc/misc/emacs-gnutls.texi
index b046eff3c08..740dfee41ed 100644
--- a/doc/misc/emacs-gnutls.texi
+++ b/doc/misc/emacs-gnutls.texi
@@ -1,10 +1,10 @@
1\input texinfo @c -*-texinfo-*- 1\input texinfo @c -*-texinfo-*-
2 2
3@set VERSION 0.3
4
3@setfilename ../../info/emacs-gnutls 5@setfilename ../../info/emacs-gnutls
4@settitle Emacs GnuTLS Integration @value{VERSION} 6@settitle Emacs GnuTLS Integration @value{VERSION}
5 7
6@set VERSION 0.3
7
8@copying 8@copying
9This file describes the Emacs GnuTLS integration. 9This file describes the Emacs GnuTLS integration.
10 10
diff --git a/doc/misc/eshell.texi b/doc/misc/eshell.texi
index 58597599cdb..504940c5c6b 100644
--- a/doc/misc/eshell.texi
+++ b/doc/misc/eshell.texi
@@ -32,9 +32,9 @@ modify this GNU manual.''
32@sp 4 32@sp 4
33@c The title is printed in a large font. 33@c The title is printed in a large font.
34@center @titlefont{User's Guide} 34@center @titlefont{User's Guide}
35@sp 35@sp 1
36@center @titlefont{to} 36@center @titlefont{to}
37@sp 37@sp 1
38@center @titlefont{Eshell: The Emacs Shell} 38@center @titlefont{Eshell: The Emacs Shell}
39@ignore 39@ignore
40@sp 2 40@sp 2
diff --git a/doc/misc/eudc.texi b/doc/misc/eudc.texi
index b92aacc88f0..5b06cc7f11a 100644
--- a/doc/misc/eudc.texi
+++ b/doc/misc/eudc.texi
@@ -35,8 +35,8 @@ modify this GNU manual.''
35@footnotestyle end 35@footnotestyle end
36 36
37@titlepage 37@titlepage
38@title{EUDC Manual} 38@title EUDC Manual
39@subtitle{The Emacs Unified Directory Client} 39@subtitle The Emacs Unified Directory Client
40@author by Oscar Figueiredo 40@author by Oscar Figueiredo
41@code{1.30b} 41@code{1.30b}
42 42
diff --git a/doc/misc/forms.texi b/doc/misc/forms.texi
index fb888941357..43ffab26c9b 100644
--- a/doc/misc/forms.texi
+++ b/doc/misc/forms.texi
@@ -87,8 +87,8 @@ how to present it.
87* Miscellaneous:: Forms mode messages and other remarks. 87* Miscellaneous:: Forms mode messages and other remarks.
88* Error Messages:: List of error messages forms mode can produce. 88* Error Messages:: List of error messages forms mode can produce.
89* Long Example:: A more complex control file example. 89* Long Example:: A more complex control file example.
90* GNU Free Documentation License:: The license for this documentation.
91* Credits:: Thanks everyone. 90* Credits:: Thanks everyone.
91* GNU Free Documentation License:: The license for this documentation.
92* Index:: Index to this manual. 92* Index:: Index to this manual.
93@end menu 93@end menu
94@end ifnottex 94@end ifnottex
diff --git a/doc/misc/htmlfontify.texi b/doc/misc/htmlfontify.texi
index d6904740778..911cdd3cd5f 100644
--- a/doc/misc/htmlfontify.texi
+++ b/doc/misc/htmlfontify.texi
@@ -1520,9 +1520,12 @@ Regex used to parse an etags entry: must have 3 subexps, corresponding,
1520in order, to: 1520in order, to:
1521 1521
1522@enumerate 1522@enumerate
1523 The tag 1523@item
1524 The line 1524The tag
1525 The character (point) at which the tag occurs 1525@item
1526The line
1527@item
1528The character (point) at which the tag occurs
1526@end enumerate 1529@end enumerate
1527 1530
1528@item hfy-index-file 1531@item hfy-index-file
diff --git a/doc/misc/org.texi b/doc/misc/org.texi
index 737c186a5a4..47ee0954671 100644
--- a/doc/misc/org.texi
+++ b/doc/misc/org.texi
@@ -3027,7 +3027,7 @@ lines will be left alone by this command.
3027Selects this line for global recalculation with @kbd{C-u C-c *}, but 3027Selects this line for global recalculation with @kbd{C-u C-c *}, but
3028not for automatic recalculation. Use this when automatic 3028not for automatic recalculation. Use this when automatic
3029recalculation slows down editing too much. 3029recalculation slows down editing too much.
3030@item 3030@item @w{ }
3031Unmarked lines are exempt from recalculation with @kbd{C-u C-c *}. 3031Unmarked lines are exempt from recalculation with @kbd{C-u C-c *}.
3032All lines that should be recalculated should be marked with @samp{#} 3032All lines that should be recalculated should be marked with @samp{#}
3033or @samp{*}. 3033or @samp{*}.
@@ -5050,7 +5050,7 @@ FILE @r{The filename the entry is located in.}
5050To create sparse trees and special lists with selection based on properties, 5050To create sparse trees and special lists with selection based on properties,
5051the same commands are used as for tag searches (@pxref{Tag searches}). 5051the same commands are used as for tag searches (@pxref{Tag searches}).
5052@table @kbd 5052@table @kbd
5053@orgcmdkkc{C-c / m,C-c \,org-match-sparse-tree} 5053@orgcmdkkc{C-c / m,C-c \\,org-match-sparse-tree}
5054Create a sparse tree with all matching entries. With a 5054Create a sparse tree with all matching entries. With a
5055@kbd{C-u} prefix argument, ignore headlines that are not a TODO line. 5055@kbd{C-u} prefix argument, ignore headlines that are not a TODO line.
5056@orgcmd{C-c a m,org-tags-view} 5056@orgcmd{C-c a m,org-tags-view}
diff --git a/doc/misc/pcl-cvs.texi b/doc/misc/pcl-cvs.texi
index 0749ceefd01..7c294591d0e 100644
--- a/doc/misc/pcl-cvs.texi
+++ b/doc/misc/pcl-cvs.texi
@@ -31,9 +31,9 @@ modify this GNU manual.''
31@sp 4 31@sp 4
32@c The title is printed in a large font. 32@c The title is printed in a large font.
33@center @titlefont{User's Guide} 33@center @titlefont{User's Guide}
34@sp 34@sp 1
35@center @titlefont{to} 35@center @titlefont{to}
36@sp 36@sp 1
37@center @titlefont{PCL-CVS---The Emacs Front-End to CVS} 37@center @titlefont{PCL-CVS---The Emacs Front-End to CVS}
38@ignore 38@ignore
39@sp 2 39@sp 2
@@ -682,7 +682,7 @@ the fact that the buffer is a PCL-CVS buffer:
682These keys move the cursor one file forward, towards the end of the 682These keys move the cursor one file forward, towards the end of the
683buffer (@code{cvs-mode-next-line}).@refill 683buffer (@code{cvs-mode-next-line}).@refill
684 684
685@itemx p 685@item p
686This key moves one file backward, towards the beginning of the buffer 686This key moves one file backward, towards the beginning of the buffer
687(@code{cvs-mode-previous-line}). 687(@code{cvs-mode-previous-line}).
688@end table 688@end table
diff --git a/doc/misc/pgg.texi b/doc/misc/pgg.texi
index 6326f84420c..a18a22e649f 100644
--- a/doc/misc/pgg.texi
+++ b/doc/misc/pgg.texi
@@ -3,9 +3,9 @@
3@include gnus-overrides.texi 3@include gnus-overrides.texi
4 4
5@setfilename ../../info/pgg 5@setfilename ../../info/pgg
6@settitle PGG @value{VERSION}
7 6
8@set VERSION 0.1 7@set VERSION 0.1
8@settitle PGG @value{VERSION}
9 9
10@copying 10@copying
11This file describes PGG @value{VERSION}, an Emacs interface to various 11This file describes PGG @value{VERSION}, an Emacs interface to various
diff --git a/doc/misc/reftex.texi b/doc/misc/reftex.texi
index c5b95e4754a..0ee206b1a4d 100644
--- a/doc/misc/reftex.texi
+++ b/doc/misc/reftex.texi
@@ -4611,7 +4611,8 @@ prompt for values. Possible values are:
4611@example 4611@example
4612nil @r{Never prompt for optional arguments} 4612nil @r{Never prompt for optional arguments}
4613t @r{Always prompt} 4613t @r{Always prompt}
4614maybe @r{Prompt only if @code{reftex-citation} was called with C-u prefix arg}@end example 4614maybe @r{Prompt only if @code{reftex-citation} was called with C-u prefix arg}
4615@end example
4615Unnecessary empty optional arguments are removed before insertion into 4616Unnecessary empty optional arguments are removed before insertion into
4616the buffer. See @code{reftex-cite-cleanup-optional-args}. 4617the buffer. See @code{reftex-cite-cleanup-optional-args}.
4617@end defopt 4618@end defopt
diff --git a/doc/misc/smtpmail.texi b/doc/misc/smtpmail.texi
index ede4d2a2382..dce90d06012 100644
--- a/doc/misc/smtpmail.texi
+++ b/doc/misc/smtpmail.texi
@@ -24,9 +24,9 @@ modify this GNU manual.''
24@end direntry 24@end direntry
25 25
26@titlepage 26@titlepage
27@title{Emacs SMTP Library} 27@title Emacs SMTP Library
28@subtitle{An Emacs package for sending mail via SMTP} 28@subtitle An Emacs package for sending mail via SMTP
29@author{Simon Josefsson, Alex Schroeder} 29@author Simon Josefsson, Alex Schroeder
30@page 30@page
31@vskip 0pt plus 1filll 31@vskip 0pt plus 1filll
32@insertcopying 32@insertcopying
diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi
index 2df3b4265d0..a683425868a 100644
--- a/doc/misc/tramp.texi
+++ b/doc/misc/tramp.texi
@@ -374,7 +374,7 @@ This release includes the full documentation and code for
374@value{tramp}, suitable for installation. But Emacs (22 or later) 374@value{tramp}, suitable for installation. But Emacs (22 or later)
375includes @value{tramp} already, and there is a @value{tramp} package 375includes @value{tramp} already, and there is a @value{tramp} package
376for XEmacs, as well. So maybe it is easier to just use those. But if 376for XEmacs, as well. So maybe it is easier to just use those. But if
377you want the bleeding edge, read on@dots{...} 377you want the bleeding edge, read on@dots{}
378 378
379For the especially brave, @value{tramp} is available from Git. The Git 379For the especially brave, @value{tramp} is available from Git. The Git
380version is the latest version of the code and may contain incomplete 380version is the latest version of the code and may contain incomplete
@@ -515,8 +515,8 @@ Method}.
515* Connection caching:: Reusing connection related information. 515* Connection caching:: Reusing connection related information.
516* Remote Programs:: How @value{tramp} finds and uses programs on the remote machine. 516* Remote Programs:: How @value{tramp} finds and uses programs on the remote machine.
517* Remote shell setup:: Remote shell setup hints. 517* Remote shell setup:: Remote shell setup hints.
518* Windows setup hints:: Issues with Cygwin ssh.
519* Auto-save and Backup:: Auto-save and Backup. 518* Auto-save and Backup:: Auto-save and Backup.
519* Windows setup hints:: Issues with Cygwin ssh.
520@end menu 520@end menu
521 521
522 522
@@ -1899,7 +1899,7 @@ of your (local or remote) host, you might need to adapt this. Example:
1899 "passwort" "Passwort" 1899 "passwort" "Passwort"
1900 ;; Fran@,{c}ais 1900 ;; Fran@,{c}ais
1901 "mot de passe" "Mot de passe") t) 1901 "mot de passe" "Mot de passe") t)
1902 ".*: 1902 ".*:\0? *"))
1903@end lisp 1903@end lisp
1904 1904
1905In parallel, it might also be necessary to adapt 1905In parallel, it might also be necessary to adapt
diff --git a/doc/misc/vip.texi b/doc/misc/vip.texi
index dbf83df46d3..01048d43dbf 100644
--- a/doc/misc/vip.texi
+++ b/doc/misc/vip.texi
@@ -677,9 +677,9 @@ Call last remembered keyboard macro.
677Suspend Emacs. 677Suspend Emacs.
678@item Z Z 678@item Z Z
679Exit Emacs. 679Exit Emacs.
680@itemx Q 680@item Q
681Query replace. 681Query replace.
682@itemx R 682@item R
683Replace. 683Replace.
684@end table 684@end table
685 685
@@ -944,11 +944,11 @@ Scroll text of current window upward almost full screen. You can go
944@kindex 002 @kbd{C-b} (@code{vip-scroll-back}) 944@kindex 002 @kbd{C-b} (@code{vip-scroll-back})
945Scroll text of current window downward almost full screen. You can go 945Scroll text of current window downward almost full screen. You can go
946@i{backward} in the buffer by this command (@code{vip-scroll-back}). 946@i{backward} in the buffer by this command (@code{vip-scroll-back}).
947@itemx C-d 947@item C-d
948@kindex 004 @kbd{C-d} (@code{vip-scroll-up}) 948@kindex 004 @kbd{C-d} (@code{vip-scroll-up})
949Scroll text of current window upward half screen. You can go 949Scroll text of current window upward half screen. You can go
950@i{down} in the buffer by this command (@code{vip-scroll-down}). 950@i{down} in the buffer by this command (@code{vip-scroll-down}).
951@itemx C-u 951@item C-u
952@kindex 025 @kbd{C-u} (@code{vip-scroll-down}) 952@kindex 025 @kbd{C-u} (@code{vip-scroll-down})
953Scroll text of current window downward half screen. You can go 953Scroll text of current window downward half screen. You can go
954@i{up} in the buffer by this command (@code{vip-scroll-up}). 954@i{up} in the buffer by this command (@code{vip-scroll-up}).
diff --git a/doc/misc/viper.texi b/doc/misc/viper.texi
index 9a291dc19bb..9bcecf8e3de 100644
--- a/doc/misc/viper.texi
+++ b/doc/misc/viper.texi
@@ -3465,7 +3465,7 @@ Exchange point and mark.
3465Exchange point and mark and go to the first CHAR on line. 3465Exchange point and mark and go to the first CHAR on line.
3466@item '<a-z> 3466@item '<a-z>
3467Go to specified Viper mark. 3467Go to specified Viper mark.
3468@item 3468@item `<a-z>
3469Go to specified Viper mark and go to the first CHAR on line. 3469Go to specified Viper mark and go to the first CHAR on line.
3470@end table 3470@end table
3471@kindex @kbd{m<a-z>} 3471@kindex @kbd{m<a-z>}
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 5b54d34743c..9425ca5cdc2 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,40 @@
12013-01-06 Jürgen Hötzel <juergen@archlinux.org>
2
3 * net/tramp-adb.el (tramp-methods): Add `tramp-tmpdir' entry.
4
52013-01-06 Michael Albinus <michael.albinus@gmx.de>
6
7 * net/tramp-adb.el (tramp-adb-ls-toolbox-regexp): The file size can
8 consist of mor than one digit.
9 (tramp-adb-file-name-handler-alist): Use
10 `tramp-handle-file-exists-p' consistently.
11 (tramp-adb-file-name-handler): Don't tweak `tramp-default-host'.
12 (tramp-adb-handle-file-exists-p): Remove function.
13 (tramp-adb-file-name-host): New defun.
14 (tramp-adb-execute-adb-command, tramp-adb-maybe-open-connection):
15 Use it.
16 (tramp-adb-maybe-open-connection): Set "remote-path" property.
17
182013-01-06 Chong Yidong <cyd@gnu.org>
19
20 * vc/vc.el (vc-next-action): Detect buffer modifications
21 conflicting with locking VCS operation (Bug#11490).
22
23 * vc/vc-hooks.el (vc-after-save): DTRT for locking VCSes.
24
252013-01-05 Michael Albinus <michael.albinus@gmx.de>
26
27 * net/tramp-adb.el (tramp-do-parse-file-attributes-with-ls):
28 (tramp-adb-handle-directory-files-and-attributes): Fix typos.
29
302013-01-05 Jürgen Hötzel <juergen@archlinux.org>
31
32 * net/tramp-adb.el (tramp-adb-handle-file-attributes): More robust
33 parsing of ls output using regular expression (handle filenames
34 with spaces). Use virtual device number.
35 (tramp-do-parse-file-attributes-with-ls): New defun (Code
36 cleanup).
37
12013-01-04 Daiki Ueno <ueno@gnu.org> 382013-01-04 Daiki Ueno <ueno@gnu.org>
2 39
3 * epg.el: Silence byte-compiler warnings. 40 * epg.el: Silence byte-compiler warnings.
diff --git a/lisp/net/tramp-adb.el b/lisp/net/tramp-adb.el
index b5f99ffc93c..bb9ff015ac3 100644
--- a/lisp/net/tramp-adb.el
+++ b/lisp/net/tramp-adb.el
@@ -56,8 +56,18 @@
56(defconst tramp-adb-ls-date-regexp 56(defconst tramp-adb-ls-date-regexp
57 "[[:space:]][0-9]\\{4\\}-[0-9][0-9]-[0-9][0-9][[:space:]][0-9][0-9]:[0-9][0-9][[:space:]]") 57 "[[:space:]][0-9]\\{4\\}-[0-9][0-9]-[0-9][0-9][[:space:]][0-9][0-9]:[0-9][0-9][[:space:]]")
58 58
59(defconst tramp-adb-ls-toolbox-regexp
60 (concat
61 "^[[:space:]]*\\([-[:alpha:]]+\\)" ; \1 permissions
62 "[[:space:]]*\\([^[:space:]]+\\)" ; \2 username
63 "[[:space:]]+\\([^[:space:]]+\\)" ; \3 group
64 "[[:space:]]+\\([[:digit:]]+\\)" ; \4 size
65 "[[:space:]]+\\([-[:digit:]]+[[:space:]][:[:digit:]]+\\)" ; \5 date
66 "[[:space:]]+\\(.*\\)$")) ; \6 filename
67
59;;;###tramp-autoload 68;;;###tramp-autoload
60(add-to-list 'tramp-methods `(,tramp-adb-method)) 69(add-to-list 'tramp-methods `(,tramp-adb-method
70 (tramp-tmpdir "/data/local/tmp")))
61 71
62;;;###tramp-autoload 72;;;###tramp-autoload
63(eval-after-load 'tramp 73(eval-after-load 'tramp
@@ -86,8 +96,8 @@
86 (file-directory-p . tramp-adb-handle-file-directory-p) 96 (file-directory-p . tramp-adb-handle-file-directory-p)
87 (file-symlink-p . tramp-handle-file-symlink-p) 97 (file-symlink-p . tramp-handle-file-symlink-p)
88 ;; FIXME: This is too sloppy. 98 ;; FIXME: This is too sloppy.
89 (file-executable-p . file-exists-p) 99 (file-executable-p . tramp-handle-file-exists-p)
90 (file-exists-p . tramp-adb-handle-file-exists-p) 100 (file-exists-p . tramp-handle-file-exists-p)
91 (file-readable-p . tramp-handle-file-exists-p) 101 (file-readable-p . tramp-handle-file-exists-p)
92 (file-writable-p . tramp-adb-handle-file-writable-p) 102 (file-writable-p . tramp-adb-handle-file-writable-p)
93 (file-local-copy . tramp-adb-handle-file-local-copy) 103 (file-local-copy . tramp-adb-handle-file-local-copy)
@@ -95,6 +105,9 @@
95 (expand-file-name . tramp-adb-handle-expand-file-name) 105 (expand-file-name . tramp-adb-handle-expand-file-name)
96 (find-backup-file-name . tramp-handle-find-backup-file-name) 106 (find-backup-file-name . tramp-handle-find-backup-file-name)
97 (directory-files . tramp-handle-directory-files) 107 (directory-files . tramp-handle-directory-files)
108 (directory-files-and-attributes
109 . tramp-adb-handle-directory-files-and-attributes)
110 (file-name-all-completions . tramp-sh-handle-file-name-all-completions)
98 (make-directory . tramp-adb-handle-make-directory) 111 (make-directory . tramp-adb-handle-make-directory)
99 (delete-directory . tramp-adb-handle-delete-directory) 112 (delete-directory . tramp-adb-handle-delete-directory)
100 (delete-file . tramp-adb-handle-delete-file) 113 (delete-file . tramp-adb-handle-delete-file)
@@ -127,13 +140,7 @@
127 "Invoke the ADB handler for OPERATION. 140 "Invoke the ADB handler for OPERATION.
128First arg specifies the OPERATION, second arg is a list of arguments to 141First arg specifies the OPERATION, second arg is a list of arguments to
129pass to the OPERATION." 142pass to the OPERATION."
130 (let ((fn (assoc operation tramp-adb-file-name-handler-alist)) 143 (let ((fn (assoc operation tramp-adb-file-name-handler-alist)))
131 ;; `tramp-default-host's default value is (system-name). Not
132 ;; useful for us.
133 (tramp-default-host
134 (unless (equal (eval (car (get 'tramp-default-host 'standard-value)))
135 tramp-default-host)
136 tramp-default-host)))
137 (if fn 144 (if fn
138 (save-match-data (apply (cdr fn) args)) 145 (save-match-data (apply (cdr fn) args))
139 (tramp-run-real-handler operation args)))) 146 (tramp-run-real-handler operation args))))
@@ -280,30 +287,73 @@ pass to the OPERATION."
280 (tramp-shell-quote-argument localname)) "") 287 (tramp-shell-quote-argument localname)) "")
281 (with-current-buffer (tramp-get-buffer v) 288 (with-current-buffer (tramp-get-buffer v)
282 (tramp-adb-sh-fix-ls-output) 289 (tramp-adb-sh-fix-ls-output)
283 (let* ((columns (split-string (buffer-string))) 290 (cdar (tramp-do-parse-file-attributes-with-ls v id-format)))))))
284 (mod-string (nth 0 columns)) 291
285 (is-dir (eq ?d (aref mod-string 0))) 292(defun tramp-do-parse-file-attributes-with-ls (vec &optional id-format)
286 (is-symlink (eq ?l (aref mod-string 0))) 293 "Parse `file-attributes' for Tramp files using the ls(1) command."
287 (symlink-target 294 (with-current-buffer (tramp-get-buffer vec)
288 (and is-symlink 295 (goto-char (point-min))
289 (cadr (split-string (buffer-string) "\\( -> \\|\n\\)")))) 296 (let ((file-properties nil))
290 (uid (nth 1 columns)) 297 (while (re-search-forward tramp-adb-ls-toolbox-regexp nil t)
291 (gid (nth 2 columns)) 298 (let* ((mod-string (match-string 1))
292 (date (format "%s %s" (nth 4 columns) (nth 5 columns))) 299 (is-dir (eq ?d (aref mod-string 0)))
293 (size (string-to-number (nth 3 columns)))) 300 (is-symlink (eq ?l (aref mod-string 0)))
294 (list 301 (uid (match-string 2))
295 (or is-dir symlink-target) 302 (gid (match-string 3))
296 1 ;link-count 303 (size (string-to-number (match-string 4)))
297 ;; no way to handle numeric ids in Androids ash 304 (date (match-string 5))
298 (if (eq id-format 'integer) 0 uid) 305 (name (match-string 6))
299 (if (eq id-format 'integer) 0 gid) 306 (symlink-target
300 '(0 0) ; atime 307 (and is-symlink
301 (date-to-time date) ; mtime 308 (cadr (split-string name "\\( -> \\|\n\\)")))))
302 '(0 0) ; ctime 309 (push (list
303 size 310 name
304 mod-string 311 (or is-dir symlink-target)
305 ;; fake 312 1 ;link-count
306 t 1 1))))))) 313 ;; no way to handle numeric ids in Androids ash
314 (if (eq id-format 'integer) 0 uid)
315 (if (eq id-format 'integer) 0 gid)
316 '(0 0) ; atime
317 (date-to-time date) ; mtime
318 '(0 0) ; ctime
319 size
320 mod-string
321 ;; fake
322 t 1
323 (tramp-get-device vec))
324 file-properties)))
325 file-properties)))
326
327(defun tramp-adb-handle-directory-files-and-attributes
328 (directory &optional full match nosort id-format)
329 "Like `directory-files-and-attributes' for Tramp files."
330 (when (file-directory-p directory)
331 (with-parsed-tramp-file-name (expand-file-name directory) nil
332 (with-tramp-file-property
333 v localname (format "directory-files-attributes-%s-%s-%s-%s"
334 full match id-format nosort)
335 (tramp-adb-barf-unless-okay
336 v (format "%s -a -l %s"
337 (tramp-adb-get-ls-command v)
338 (tramp-shell-quote-argument localname)) "")
339 (with-current-buffer (tramp-get-buffer v)
340 (tramp-adb-sh-fix-ls-output)
341 (let ((result (tramp-do-parse-file-attributes-with-ls
342 v (or id-format 'integer))))
343 (when full
344 (setq result
345 (mapcar
346 (lambda (x)
347 (cons (expand-file-name (car x) directory) (cdr x)))
348 result)))
349 (unless nosort
350 (setq result
351 (sort result (lambda (x y) (string< (car x) (car y))))))
352 (delq nil
353 (mapcar (lambda (x)
354 (if (or (not match) (string-match match (car x)))
355 x))
356 result))))))))
307 357
308(defun tramp-adb-get-ls-command (vec) 358(defun tramp-adb-get-ls-command (vec)
309 (with-tramp-connection-property vec "ls" 359 (with-tramp-connection-property vec "ls"
@@ -885,20 +935,19 @@ PRESERVE-UID-GID and PRESERVE-EXTENDED-ATTRIBUTES are completely ignored."
885 (tramp-set-connection-property v "process-name" nil) 935 (tramp-set-connection-property v "process-name" nil)
886 (tramp-set-connection-property v "process-buffer" nil))))) 936 (tramp-set-connection-property v "process-buffer" nil)))))
887 937
888;; Android < 4 doesn't provide test command.
889
890(defun tramp-adb-handle-file-exists-p (filename)
891 "Like `file-exists-p' for Tramp files."
892 (with-parsed-tramp-file-name filename nil
893 (with-tramp-file-property v localname "file-exists-p"
894 (file-attributes filename))))
895
896;; Helper functions. 938;; Helper functions.
897 939
940(defun tramp-adb-file-name-host (vec)
941 "Return host component of VEC.
942If it is equal to the default value of `tramp-default-host', `nil' is returned."
943 (let ((host (tramp-file-name-host vec)))
944 (unless (equal host (eval (car (get 'tramp-default-host 'standard-value))))
945 host)))
946
898(defun tramp-adb-execute-adb-command (vec &rest args) 947(defun tramp-adb-execute-adb-command (vec &rest args)
899 "Returns nil on success error-output on failure." 948 "Returns nil on success error-output on failure."
900 (when (tramp-file-name-host vec) 949 (when (tramp-adb-file-name-host vec)
901 (setq args (append (list "-s" (tramp-file-name-host vec)) args))) 950 (setq args (append (list "-s" (tramp-adb-file-name-host vec)) args)))
902 (with-temp-buffer 951 (with-temp-buffer
903 (prog1 952 (prog1
904 (unless (zerop (apply 'call-process (tramp-adb-program) nil t nil args)) 953 (unless (zerop (apply 'call-process (tramp-adb-program) nil t nil args))
@@ -1006,21 +1055,21 @@ connection if a previous connection has died for some reason."
1006 (when (and p (processp p)) (delete-process p)) 1055 (when (and p (processp p)) (delete-process p))
1007 (if (not devices) 1056 (if (not devices)
1008 (tramp-error vec 'file-error "No device connected")) 1057 (tramp-error vec 'file-error "No device connected"))
1009 (if (and (tramp-file-name-host vec) 1058 (if (and (tramp-adb-file-name-host vec)
1010 (not (member (tramp-file-name-host vec) devices))) 1059 (not (member (tramp-adb-file-name-host vec) devices)))
1011 (tramp-error 1060 (tramp-error
1012 vec 'file-error 1061 vec 'file-error
1013 "Device %s not connected" (tramp-file-name-host vec))) 1062 "Device %s not connected" (tramp-adb-file-name-host vec)))
1014 (if (and (not (eq (length devices) 1)) 1063 (if (and (not (eq (length devices) 1))
1015 (not (tramp-file-name-host vec))) 1064 (not (tramp-adb-file-name-host vec)))
1016 (tramp-error 1065 (tramp-error
1017 vec 'file-error 1066 vec 'file-error
1018 "Multiple Devices connected: No Host/Device specified")) 1067 "Multiple Devices connected: No Host/Device specified"))
1019 (with-tramp-progress-reporter vec 3 "Opening adb shell connection" 1068 (with-tramp-progress-reporter vec 3 "Opening adb shell connection"
1020 (let* ((coding-system-for-read 'utf-8-dos) ;is this correct? 1069 (let* ((coding-system-for-read 'utf-8-dos) ;is this correct?
1021 (process-connection-type tramp-process-connection-type) 1070 (process-connection-type tramp-process-connection-type)
1022 (args (if (tramp-file-name-host vec) 1071 (args (if (tramp-adb-file-name-host vec)
1023 (list "-s" (tramp-file-name-host vec) "shell") 1072 (list "-s" (tramp-adb-file-name-host vec) "shell")
1024 (list "shell"))) 1073 (list "shell")))
1025 (p (let ((default-directory 1074 (p (let ((default-directory
1026 (tramp-compat-temporary-file-directory))) 1075 (tramp-compat-temporary-file-directory)))
@@ -1056,7 +1105,19 @@ connection if a previous connection has died for some reason."
1056 vec 3 1105 vec 3
1057 "Connection reset, because remote host changed from `%s' to `%s'" 1106 "Connection reset, because remote host changed from `%s' to `%s'"
1058 old-getprop new-getprop) 1107 old-getprop new-getprop)
1059 (tramp-adb-maybe-open-connection vec))))))))) 1108 (tramp-adb-maybe-open-connection vec)))
1109
1110 ;; Set "remote-path" connection property. This is needed
1111 ;; for eshell.
1112 (tramp-adb-send-command vec "echo \\\"$PATH\\\"")
1113 (tramp-set-connection-property
1114 vec "remote-path"
1115 (split-string
1116 (with-current-buffer (tramp-get-connection-buffer vec)
1117 ;; Read the expression.
1118 (goto-char (point-min))
1119 (read (current-buffer)))
1120 ":" 'omit-nulls))))))))
1060 1121
1061(provide 'tramp-adb) 1122(provide 'tramp-adb)
1062;;; tramp-adb.el ends here 1123;;; tramp-adb.el ends here
diff --git a/lisp/vc/vc-hooks.el b/lisp/vc/vc-hooks.el
index 5a2b47bb34f..99436303fa2 100644
--- a/lisp/vc/vc-hooks.el
+++ b/lisp/vc/vc-hooks.el
@@ -703,19 +703,21 @@ Before doing that, check if there are any old backups and get rid of them."
703 ;; the state to 'edited and redisplay the mode line. 703 ;; the state to 'edited and redisplay the mode line.
704 (let* ((file buffer-file-name) 704 (let* ((file buffer-file-name)
705 (backend (vc-backend file))) 705 (backend (vc-backend file)))
706 (and backend 706 (cond
707 (or (and (equal (vc-file-getprop file 'vc-checkout-time) 707 ((null backend))
708 (nth 5 (file-attributes file))) 708 ((eq (vc-checkout-model backend (list file)) 'implicit)
709 ;; File has been saved in the same second in which 709 ;; If the file was saved in the same second in which it was
710 ;; it was checked out. Clear the checkout-time 710 ;; checked out, clear the checkout-time to avoid confusion.
711 ;; to avoid confusion. 711 (if (equal (vc-file-getprop file 'vc-checkout-time)
712 (vc-file-setprop file 'vc-checkout-time nil)) 712 (nth 5 (file-attributes file)))
713 t) 713 (vc-file-setprop file 'vc-checkout-time nil))
714 (eq (vc-checkout-model backend (list file)) 'implicit) 714 (if (vc-state-refresh file backend)
715 (vc-state-refresh file backend) 715 (vc-mode-line file backend)))
716 (vc-mode-line file backend)) 716 ;; If we saved an unlocked file on a locking based VCS, that
717 ;; Try to avoid unnecessary work, a *vc-dir* buffer is 717 ;; file is not longer up-to-date.
718 ;; present if this is true. 718 ((eq (vc-file-getprop file 'vc-state) 'up-to-date)
719 (vc-file-setprop file 'vc-state nil)))
720 ;; Resynch *vc-dir* buffers, if any are present.
719 (when vc-dir-buffers 721 (when vc-dir-buffers
720 (vc-dir-resynch-file file)))) 722 (vc-dir-resynch-file file))))
721 723
diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el
index fe259806267..9b8b94916c4 100644
--- a/lisp/vc/vc.el
+++ b/lisp/vc/vc.el
@@ -659,6 +659,10 @@
659(eval-when-compile 659(eval-when-compile
660 (require 'dired)) 660 (require 'dired))
661 661
662(declare-function dired-get-filename "dired" (&optional localp noerror))
663(declare-function dired-move-to-filename "dired" (&optional err eol))
664(declare-function dired-marker-regexp "dired" ())
665
662(unless (assoc 'vc-parent-buffer minor-mode-alist) 666(unless (assoc 'vc-parent-buffer minor-mode-alist)
663 (setq minor-mode-alist 667 (setq minor-mode-alist
664 (cons '(vc-parent-buffer vc-parent-buffer-name) 668 (cons '(vc-parent-buffer vc-parent-buffer-name)
@@ -1072,6 +1076,17 @@ For old-style locking-based version control systems, like RCS:
1072 ;; among all the `files'. 1076 ;; among all the `files'.
1073 (model (nth 4 vc-fileset))) 1077 (model (nth 4 vc-fileset)))
1074 1078
1079 ;; If a buffer has unsaved changes, a checkout would discard those
1080 ;; changes, so treat the buffer as having unlocked changes.
1081 (when (and (not (eq model 'implicit)) (eq state 'up-to-date))
1082 (let ((files files))
1083 (while files
1084 (let ((buffer (get-file-buffer (car files))))
1085 (and buffer
1086 (buffer-modified-p buffer)
1087 (setq state 'unlocked-changes
1088 files nil))))))
1089
1075 ;; Do the right thing 1090 ;; Do the right thing
1076 (cond 1091 (cond
1077 ((eq state 'missing) 1092 ((eq state 'missing)
diff --git a/src/ChangeLog b/src/ChangeLog
index 8fc876e248c..3b0b295e695 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,21 @@
12013-01-06 Chong Yidong <cyd@gnu.org>
2
3 * keyboard.c (echo_add_char): New function, factored out from
4 echo_char. Don't add a space if the previous echo string was
5 empty (Bug#13255).
6 (echo_char): Use it.
7 (read_key_sequence): When echoing mock input, ensure that the
8 trailing dash is properly added.
9
102013-01-05 Eli Zaretskii <eliz@gnu.org>
11
12 * xdisp.c (dump_glyph): Align glyph data better. Use "pD" instead
13 of a non-portable "t" to print ptrdiff_t values. Allow up to 9
14 digits for buffer positions, before misalignment starts. Display
15 "0" for integer "object" field.
16 (dump_glyph_row): Adapt the header line to changes in dump_glyph.
17 Display the newline glyph more unambiguously.
18
12013-01-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> 192013-01-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2 20
3 * nsterm.m (ns_draw_underwave): 21 * nsterm.m (ns_draw_underwave):
diff --git a/src/keyboard.c b/src/keyboard.c
index e11ed20d2a0..69463f45034 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -500,97 +500,103 @@ kset_system_key_syms (struct kboard *kb, Lisp_Object val)
500} 500}
501 501
502 502
503/* Add C to the echo string, if echoing is going on. 503/* Add C to the echo string, without echoing it immediately. C can be
504 C can be a character, which is printed prettily ("M-C-x" and all that 504 a character, which is pretty-printed, or a symbol, whose name is
505 jazz), or a symbol, whose name is printed. */ 505 printed. */
506 506
507static void 507static void
508echo_char (Lisp_Object c) 508echo_add_char (Lisp_Object c)
509{ 509{
510 if (current_kboard->immediate_echo) 510 int size = KEY_DESCRIPTION_SIZE + 100;
511 { 511 char *buffer = alloca (size);
512 int size = KEY_DESCRIPTION_SIZE + 100; 512 char *ptr = buffer;
513 char *buffer = alloca (size); 513 Lisp_Object echo_string;
514 char *ptr = buffer;
515 Lisp_Object echo_string;
516 514
517 echo_string = KVAR (current_kboard, echo_string); 515 echo_string = KVAR (current_kboard, echo_string);
518 516
519 /* If someone has passed us a composite event, use its head symbol. */ 517 /* If someone has passed us a composite event, use its head symbol. */
520 c = EVENT_HEAD (c); 518 c = EVENT_HEAD (c);
521 519
522 if (INTEGERP (c)) 520 if (INTEGERP (c))
521 ptr = push_key_description (XINT (c), ptr);
522 else if (SYMBOLP (c))
523 {
524 Lisp_Object name = SYMBOL_NAME (c);
525 int nbytes = SBYTES (name);
526
527 if (size - (ptr - buffer) < nbytes)
523 { 528 {
524 ptr = push_key_description (XINT (c), ptr); 529 int offset = ptr - buffer;
530 size = max (2 * size, size + nbytes);
531 buffer = alloca (size);
532 ptr = buffer + offset;
525 } 533 }
526 else if (SYMBOLP (c))
527 {
528 Lisp_Object name = SYMBOL_NAME (c);
529 int nbytes = SBYTES (name);
530 534
531 if (size - (ptr - buffer) < nbytes) 535 ptr += copy_text (SDATA (name), (unsigned char *) ptr, nbytes,
532 { 536 STRING_MULTIBYTE (name), 1);
533 int offset = ptr - buffer; 537 }
534 size = max (2 * size, size + nbytes);
535 buffer = alloca (size);
536 ptr = buffer + offset;
537 }
538 538
539 ptr += copy_text (SDATA (name), (unsigned char *) ptr, nbytes, 539 if ((NILP (echo_string) || SCHARS (echo_string) == 0)
540 STRING_MULTIBYTE (name), 1); 540 && help_char_p (c))
541 } 541 {
542 const char *text = " (Type ? for further options)";
543 int len = strlen (text);
542 544
543 if ((NILP (echo_string) || SCHARS (echo_string) == 0) 545 if (size - (ptr - buffer) < len)
544 && help_char_p (c))
545 { 546 {
546 const char *text = " (Type ? for further options)"; 547 int offset = ptr - buffer;
547 int len = strlen (text); 548 size += len;
548 549 buffer = alloca (size);
549 if (size - (ptr - buffer) < len) 550 ptr = buffer + offset;
550 {
551 int offset = ptr - buffer;
552 size += len;
553 buffer = alloca (size);
554 ptr = buffer + offset;
555 }
556
557 memcpy (ptr, text, len);
558 ptr += len;
559 } 551 }
560 552
561 /* Replace a dash from echo_dash with a space, otherwise 553 memcpy (ptr, text, len);
562 add a space at the end as a separator between keys. */ 554 ptr += len;
563 if (STRINGP (echo_string) 555 }
564 && SCHARS (echo_string) > 1)
565 {
566 Lisp_Object last_char, prev_char, idx;
567 556
568 idx = make_number (SCHARS (echo_string) - 2); 557 /* Replace a dash from echo_dash with a space, otherwise add a space
569 prev_char = Faref (echo_string, idx); 558 at the end as a separator between keys. */
559 if (STRINGP (echo_string) && SCHARS (echo_string) > 1)
560 {
561 Lisp_Object last_char, prev_char, idx;
570 562
571 idx = make_number (SCHARS (echo_string) - 1); 563 idx = make_number (SCHARS (echo_string) - 2);
572 last_char = Faref (echo_string, idx); 564 prev_char = Faref (echo_string, idx);
573 565
574 /* We test PREV_CHAR to make sure this isn't the echoing 566 idx = make_number (SCHARS (echo_string) - 1);
575 of a minus-sign. */ 567 last_char = Faref (echo_string, idx);
576 if (XINT (last_char) == '-' && XINT (prev_char) != ' ') 568
577 Faset (echo_string, idx, make_number (' ')); 569 /* We test PREV_CHAR to make sure this isn't the echoing of a
578 else 570 minus-sign. */
579 echo_string = concat2 (echo_string, build_string (" ")); 571 if (XINT (last_char) == '-' && XINT (prev_char) != ' ')
580 } 572 Faset (echo_string, idx, make_number (' '));
581 else if (STRINGP (echo_string)) 573 else
582 echo_string = concat2 (echo_string, build_string (" ")); 574 echo_string = concat2 (echo_string, build_string (" "));
575 }
576 else if (STRINGP (echo_string) && SCHARS (echo_string) > 0)
577 echo_string = concat2 (echo_string, build_string (" "));
583 578
584 kset_echo_string 579 kset_echo_string
585 (current_kboard, 580 (current_kboard,
586 concat2 (echo_string, make_string (buffer, ptr - buffer))); 581 concat2 (echo_string, make_string (buffer, ptr - buffer)));
582}
583
584/* Add C to the echo string, if echoing is going on. C can be a
585 character or a symbol. */
587 586
587static void
588echo_char (Lisp_Object c)
589{
590 if (current_kboard->immediate_echo)
591 {
592 echo_add_char (c);
588 echo_now (); 593 echo_now ();
589 } 594 }
590} 595}
591 596
592/* Temporarily add a dash to the end of the echo string if it's not 597/* Temporarily add a dash to the end of the echo string if it's not
593 empty, so that it serves as a mini-prompt for the very next character. */ 598 empty, so that it serves as a mini-prompt for the very next
599 character. */
594 600
595static void 601static void
596echo_dash (void) 602echo_dash (void)
@@ -9237,8 +9243,12 @@ read_key_sequence (Lisp_Object *keybuf, int bufsize, Lisp_Object prompt,
9237 key = keybuf[t]; 9243 key = keybuf[t];
9238 add_command_key (key); 9244 add_command_key (key);
9239 if ((FLOATP (Vecho_keystrokes) || INTEGERP (Vecho_keystrokes)) 9245 if ((FLOATP (Vecho_keystrokes) || INTEGERP (Vecho_keystrokes))
9240 && NILP (Fzerop (Vecho_keystrokes))) 9246 && NILP (Fzerop (Vecho_keystrokes))
9241 echo_char (key); 9247 && current_kboard->immediate_echo)
9248 {
9249 echo_add_char (key);
9250 echo_dash ();
9251 }
9242 } 9252 }
9243 9253
9244 /* If not, we should actually read a character. */ 9254 /* If not, we should actually read a character. */
diff --git a/src/xdisp.c b/src/xdisp.c
index c9096339fcc..880e25334d1 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -18007,18 +18007,23 @@ dump_glyph_matrix (struct glyph_matrix *matrix, int glyphs)
18007void 18007void
18008dump_glyph (struct glyph_row *row, struct glyph *glyph, int area) 18008dump_glyph (struct glyph_row *row, struct glyph *glyph, int area)
18009{ 18009{
18010 if (glyph->type == CHAR_GLYPH) 18010 if (glyph->type == CHAR_GLYPH
18011 || glyph->type == GLYPHLESS_GLYPH)
18011 { 18012 {
18012 fprintf (stderr, 18013 fprintf (stderr,
18013 " %5td %4c %6"pI"d %c %3d 0x%05x %c %4d %1.1d%1.1d\n", 18014 " %5"pD"d %c %9"pI"d %c %3d 0x%06x %c %4d %1.1d%1.1d\n",
18014 glyph - row->glyphs[TEXT_AREA], 18015 glyph - row->glyphs[TEXT_AREA],
18015 'C', 18016 (glyph->type == CHAR_GLYPH
18017 ? 'C'
18018 : 'G'),
18016 glyph->charpos, 18019 glyph->charpos,
18017 (BUFFERP (glyph->object) 18020 (BUFFERP (glyph->object)
18018 ? 'B' 18021 ? 'B'
18019 : (STRINGP (glyph->object) 18022 : (STRINGP (glyph->object)
18020 ? 'S' 18023 ? 'S'
18021 : '-')), 18024 : (INTEGERP (glyph->object)
18025 ? '0'
18026 : '-'))),
18022 glyph->pixel_width, 18027 glyph->pixel_width,
18023 glyph->u.ch, 18028 glyph->u.ch,
18024 (glyph->u.ch < 0x80 && glyph->u.ch >= ' ' 18029 (glyph->u.ch < 0x80 && glyph->u.ch >= ' '
@@ -18031,7 +18036,7 @@ dump_glyph (struct glyph_row *row, struct glyph *glyph, int area)
18031 else if (glyph->type == STRETCH_GLYPH) 18036 else if (glyph->type == STRETCH_GLYPH)
18032 { 18037 {
18033 fprintf (stderr, 18038 fprintf (stderr,
18034 " %5td %4c %6"pI"d %c %3d 0x%05x %c %4d %1.1d%1.1d\n", 18039 " %5"pD"d %c %9"pI"d %c %3d 0x%06x %c %4d %1.1d%1.1d\n",
18035 glyph - row->glyphs[TEXT_AREA], 18040 glyph - row->glyphs[TEXT_AREA],
18036 'S', 18041 'S',
18037 glyph->charpos, 18042 glyph->charpos,
@@ -18039,10 +18044,12 @@ dump_glyph (struct glyph_row *row, struct glyph *glyph, int area)
18039 ? 'B' 18044 ? 'B'
18040 : (STRINGP (glyph->object) 18045 : (STRINGP (glyph->object)
18041 ? 'S' 18046 ? 'S'
18042 : '-')), 18047 : (INTEGERP (glyph->object)
18048 ? '0'
18049 : '-'))),
18043 glyph->pixel_width, 18050 glyph->pixel_width,
18044 0, 18051 0,
18045 '.', 18052 ' ',
18046 glyph->face_id, 18053 glyph->face_id,
18047 glyph->left_box_line_p, 18054 glyph->left_box_line_p,
18048 glyph->right_box_line_p); 18055 glyph->right_box_line_p);
@@ -18050,7 +18057,7 @@ dump_glyph (struct glyph_row *row, struct glyph *glyph, int area)
18050 else if (glyph->type == IMAGE_GLYPH) 18057 else if (glyph->type == IMAGE_GLYPH)
18051 { 18058 {
18052 fprintf (stderr, 18059 fprintf (stderr,
18053 " %5td %4c %6"pI"d %c %3d 0x%05x %c %4d %1.1d%1.1d\n", 18060 " %5"pD"d %c %9"pI"d %c %3d 0x%06x %c %4d %1.1d%1.1d\n",
18054 glyph - row->glyphs[TEXT_AREA], 18061 glyph - row->glyphs[TEXT_AREA],
18055 'I', 18062 'I',
18056 glyph->charpos, 18063 glyph->charpos,
@@ -18058,7 +18065,9 @@ dump_glyph (struct glyph_row *row, struct glyph *glyph, int area)
18058 ? 'B' 18065 ? 'B'
18059 : (STRINGP (glyph->object) 18066 : (STRINGP (glyph->object)
18060 ? 'S' 18067 ? 'S'
18061 : '-')), 18068 : (INTEGERP (glyph->object)
18069 ? '0'
18070 : '-'))),
18062 glyph->pixel_width, 18071 glyph->pixel_width,
18063 glyph->u.img_id, 18072 glyph->u.img_id,
18064 '.', 18073 '.',
@@ -18069,7 +18078,7 @@ dump_glyph (struct glyph_row *row, struct glyph *glyph, int area)
18069 else if (glyph->type == COMPOSITE_GLYPH) 18078 else if (glyph->type == COMPOSITE_GLYPH)
18070 { 18079 {
18071 fprintf (stderr, 18080 fprintf (stderr,
18072 " %5td %4c %6"pI"d %c %3d 0x%05x", 18081 " %5"pD"d %c %9"pI"d %c %3d 0x%06x",
18073 glyph - row->glyphs[TEXT_AREA], 18082 glyph - row->glyphs[TEXT_AREA],
18074 '+', 18083 '+',
18075 glyph->charpos, 18084 glyph->charpos,
@@ -18077,7 +18086,9 @@ dump_glyph (struct glyph_row *row, struct glyph *glyph, int area)
18077 ? 'B' 18086 ? 'B'
18078 : (STRINGP (glyph->object) 18087 : (STRINGP (glyph->object)
18079 ? 'S' 18088 ? 'S'
18080 : '-')), 18089 : (INTEGERP (glyph->object)
18090 ? '0'
18091 : '-'))),
18081 glyph->pixel_width, 18092 glyph->pixel_width,
18082 glyph->u.cmp.id); 18093 glyph->u.cmp.id);
18083 if (glyph->u.cmp.automatic) 18094 if (glyph->u.cmp.automatic)
@@ -18125,10 +18136,10 @@ dump_glyph_row (struct glyph_row *row, int vpos, int glyphs)
18125{ 18136{
18126 if (glyphs != 1) 18137 if (glyphs != 1)
18127 { 18138 {
18128 fprintf (stderr, "Row Start End Used oE><\\CTZFesm X Y W H V A P\n"); 18139 fprintf (stderr, "Row Start End Used oE><\\CTZFesm X Y W H V A P\n");
18129 fprintf (stderr, "======================================================================\n"); 18140 fprintf (stderr, "==============================================================================\n");
18130 18141
18131 fprintf (stderr, "%3d %5"pI"d %5"pI"d %4d %1.1d%1.1d%1.1d%1.1d\ 18142 fprintf (stderr, "%3d %9"pI"d %9"pI"d %4d %1.1d%1.1d%1.1d%1.1d\
18132%1.1d%1.1d%1.1d%1.1d%1.1d%1.1d%1.1d%1.1d %4d %4d %4d %4d %4d %4d %4d\n", 18143%1.1d%1.1d%1.1d%1.1d%1.1d%1.1d%1.1d%1.1d %4d %4d %4d %4d %4d %4d %4d\n",
18133 vpos, 18144 vpos,
18134 MATRIX_ROW_START_CHARPOS (row), 18145 MATRIX_ROW_START_CHARPOS (row),
@@ -18153,13 +18164,14 @@ dump_glyph_row (struct glyph_row *row, int vpos, int glyphs)
18153 row->visible_height, 18164 row->visible_height,
18154 row->ascent, 18165 row->ascent,
18155 row->phys_ascent); 18166 row->phys_ascent);
18156 fprintf (stderr, "%9"pD"d %5"pD"d\t%5d\n", row->start.overlay_string_index, 18167 /* The next 3 lines should align to "Start" in the header. */
18168 fprintf (stderr, " %9"pD"d %9"pD"d\t%5d\n", row->start.overlay_string_index,
18157 row->end.overlay_string_index, 18169 row->end.overlay_string_index,
18158 row->continuation_lines_width); 18170 row->continuation_lines_width);
18159 fprintf (stderr, "%9"pI"d %5"pI"d\n", 18171 fprintf (stderr, " %9"pI"d %9"pI"d\n",
18160 CHARPOS (row->start.string_pos), 18172 CHARPOS (row->start.string_pos),
18161 CHARPOS (row->end.string_pos)); 18173 CHARPOS (row->end.string_pos));
18162 fprintf (stderr, "%9d %5d\n", row->start.dpvec_index, 18174 fprintf (stderr, " %9d %9d\n", row->start.dpvec_index,
18163 row->end.dpvec_index); 18175 row->end.dpvec_index);
18164 } 18176 }
18165 18177
@@ -18177,7 +18189,7 @@ dump_glyph_row (struct glyph_row *row, int vpos, int glyphs)
18177 ++glyph_end; 18189 ++glyph_end;
18178 18190
18179 if (glyph < glyph_end) 18191 if (glyph < glyph_end)
18180 fprintf (stderr, " Glyph Type Pos O W Code C Face LR\n"); 18192 fprintf (stderr, " Glyph# Type Pos O W Code C Face LR\n");
18181 18193
18182 for (; glyph < glyph_end; ++glyph) 18194 for (; glyph < glyph_end; ++glyph)
18183 dump_glyph (row, glyph, area); 18195 dump_glyph (row, glyph, area);
@@ -18189,15 +18201,24 @@ dump_glyph_row (struct glyph_row *row, int vpos, int glyphs)
18189 18201
18190 for (area = LEFT_MARGIN_AREA; area < LAST_AREA; ++area) 18202 for (area = LEFT_MARGIN_AREA; area < LAST_AREA; ++area)
18191 { 18203 {
18192 char *s = alloca (row->used[area] + 1); 18204 char *s = alloca (row->used[area] + 4);
18193 int i; 18205 int i;
18194 18206
18195 for (i = 0; i < row->used[area]; ++i) 18207 for (i = 0; i < row->used[area]; ++i)
18196 { 18208 {
18197 struct glyph *glyph = row->glyphs[area] + i; 18209 struct glyph *glyph = row->glyphs[area] + i;
18198 if (glyph->type == CHAR_GLYPH 18210 if (i == row->used[area] - 1
18199 && glyph->u.ch < 0x80 18211 && area == TEXT_AREA
18200 && glyph->u.ch >= ' ') 18212 && INTEGERP (glyph->object)
18213 && glyph->type == CHAR_GLYPH
18214 && glyph->u.ch == ' ')
18215 {
18216 strcpy (&s[i], "[\\n]");
18217 i += 4;
18218 }
18219 else if (glyph->type == CHAR_GLYPH
18220 && glyph->u.ch < 0x80
18221 && glyph->u.ch >= ' ')
18201 s[i] = glyph->u.ch; 18222 s[i] = glyph->u.ch;
18202 else 18223 else
18203 s[i] = '.'; 18224 s[i] = '.';