aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenichi Handa2010-01-18 10:07:25 +0900
committerKenichi Handa2010-01-18 10:07:25 +0900
commitb7235808116742ec0a7aacbe53fb80db13ce5ef7 (patch)
treede1a69bba2232b000b9166c3f9accc3f9672c1fa
parentf0d138880a572e2b064d5af2668cd3a54a1d0a1e (diff)
parentf53a65903cdb66a73b919617054a69ce8042e495 (diff)
downloademacs-b7235808116742ec0a7aacbe53fb80db13ce5ef7.tar.gz
emacs-b7235808116742ec0a7aacbe53fb80db13ce5ef7.zip
Add bug number.
-rw-r--r--admin/notes/BRANCH7
-rw-r--r--admin/notes/commits53
-rw-r--r--admin/notes/copyright28
-rw-r--r--admin/notes/cvslogs15
-rw-r--r--doc/lispref/ChangeLog8
-rw-r--r--doc/lispref/elisp.texi3
-rw-r--r--doc/lispref/two.el4
-rw-r--r--doc/misc/ChangeLog30
-rw-r--r--doc/misc/calc.texi2
-rw-r--r--doc/misc/ede.texi8
-rwxr-xr-xdoc/misc/eieio.texi2
-rw-r--r--doc/misc/faq.texi9
-rw-r--r--doc/misc/org.texi2
-rw-r--r--doc/misc/semantic.texi2
-rw-r--r--doc/misc/tramp.texi33
-rw-r--r--doc/misc/woman.texi10
-rw-r--r--etc/ChangeLog5
-rw-r--r--etc/srecode/doc-cpp.srt4
-rw-r--r--etc/srecode/doc-default.srt4
-rw-r--r--etc/srecode/doc-java.srt4
-rw-r--r--lib-src/etags.c2
-rw-r--r--lisp/ChangeLog94
-rw-r--r--lisp/calc/calc.el2
-rw-r--r--lisp/cedet/ede/cpp-root.el2
-rw-r--r--lisp/cedet/ede/files.el2
-rw-r--r--lisp/cedet/ede/proj-aux.el2
-rw-r--r--lisp/cedet/ede/simple.el2
-rw-r--r--lisp/cedet/semantic.el6
-rw-r--r--lisp/cedet/semantic/complete.el6
-rw-r--r--lisp/cedet/semantic/db-el.el2
-rw-r--r--lisp/cedet/semantic/db-global.el2
-rw-r--r--lisp/cedet/semantic/db-javascript.el2
-rw-r--r--lisp/cedet/semantic/db.el4
-rw-r--r--lisp/cedet/semantic/decorate/include.el2
-rw-r--r--lisp/cedet/semantic/idle.el4
-rw-r--r--lisp/emacs-lisp/advice.el32
-rw-r--r--lisp/emacs-lisp/chart.el2
-rw-r--r--lisp/emacs-lisp/cl-loaddefs.el20
-rw-r--r--lisp/emacs-lisp/cl-macs.el18
-rw-r--r--lisp/emulation/edt.el2
-rw-r--r--lisp/files.el2
-rw-r--r--lisp/gnus/ChangeLog14
-rw-r--r--lisp/gnus/message.el49
-rw-r--r--lisp/gnus/nnmairix.el2
-rw-r--r--lisp/mail/sendmail.el14
-rw-r--r--lisp/nxml/nxml-mode.el21
-rw-r--r--lisp/pcmpl-unix.el5
-rw-r--r--lisp/progmodes/ada-mode.el119
-rw-r--r--lisp/startup.el13
-rw-r--r--lisp/textmodes/artist.el32
-rw-r--r--lisp/vc-dir.el5
-rw-r--r--lisp/vc-dispatcher.el5
-rw-r--r--lisp/vc.el14
-rw-r--r--src/ChangeLog21
-rw-r--r--src/Makefile.in16
-rw-r--r--src/atimer.h2
-rw-r--r--src/emacs.c7
-rw-r--r--src/xdisp.c3
-rw-r--r--src/xterm.c49
59 files changed, 587 insertions, 247 deletions
diff --git a/admin/notes/BRANCH b/admin/notes/BRANCH
index 863d86a1ed9..258fcd95566 100644
--- a/admin/notes/BRANCH
+++ b/admin/notes/BRANCH
@@ -1,11 +1,10 @@
1This file describes the CVS branch in which it is maintained. 1This file describes the bzr branch in which it is maintained.
2Everything below the line is branch-specific. 2Everything below the line is branch-specific.
3________________________________________________________________________ 3________________________________________________________________________
4 4
5This is the trunk (sometimes mistakenly called "HEAD"). 5This is the trunk (sometimes mistakenly called "HEAD").
6When people say "use CVS emacs", this is the branch they are talking 6When people say "use the development version of Emacs" or the
7about. Likewise, a "cvs checkout" without the "-r" option results in 7"bzr version of Emacs", this is the branch they are talking about.
8this branch.
9 8
10Emacs development takes place on the trunk. Most of the time, Emacs 9Emacs development takes place on the trunk. Most of the time, Emacs
11hackers add to it relatively free of constraint (aside from proper 10hackers add to it relatively free of constraint (aside from proper
diff --git a/admin/notes/commits b/admin/notes/commits
new file mode 100644
index 00000000000..2896328c664
--- /dev/null
+++ b/admin/notes/commits
@@ -0,0 +1,53 @@
1HOW TO COMMIT CHANGES TO EMACS
2
3http://lists.gnu.org/archive/html/emacs-devel/2009-03/msg00555.html
4From: Miles Bader
5Subject: commit style redux
6Date: Tue, 31 Mar 2009 12:21:20 +0900
7
8(1) Commit all changed files at once with a single log message (which
9 in CVS will result in an identical log message for all committed
10 files), not one-by-one. This is pretty easy using vc-dir now.
11
12(2) Make the log message describe the entire changeset, perhaps
13 including relevant changelog entiries (I often don't bother with
14 the latter if it's a trivial sort of change).
15
16 Many modern source-control systems vaguely distinguish the first
17 line of the log message to use as a short summary for abbreviated
18 history listing (in arch this was explicitly called the summary,
19 but many other systems have a similar concept). So it's nice if
20 you can format the log entry like:
21
22 SHORTISH ONE-LINE SUMMARY
23
24 MULTIPLE-LINE DETAILED DESCRIPTION POSSIBLY INCLUDING (OR
25 CONSISTING OF) CHANGELOG ENTRIES
26
27 [Even with CVS this style is useful, because web CVS browsing
28 interfaces often include the first N words of the log message of
29 the most recent commit as a short "most recent change"
30 description.]
31
32(3) Don't phrase log messages assuming the filename is known, because
33 in non-file-oriented systems (everything modern other than CVS),
34 the log listing tends to be treated as global information, and the
35 connection with specific files is less explicit.
36
37 For instance, currently I often see log messages like "Regenerate";
38 for modern source-control systems with a global log, it's better to
39 have something like "Regenerate configure".
40
41
42Followup discussion:
43http://lists.gnu.org/archive/html/emacs-devel/2010-01/msg00897.html
44
45
46PREVIOUS GUIDELINES FOR CVS
47
48For historical interest only, here is the old-style advice for CVS logs:
49http://lists.gnu.org/archive/html/emacs-devel/2007-12/msg01208.html
50
51From: Eli Zaretskii
52Subject: Re: Log messages in CVS
53Date: Sat, 29 Dec 2007 16:06:29 +0200
diff --git a/admin/notes/copyright b/admin/notes/copyright
index 40c45404f75..f4ceb273c73 100644
--- a/admin/notes/copyright
+++ b/admin/notes/copyright
@@ -24,9 +24,9 @@ the file.
24 24
252. When installing code written by someone else, the ChangeLog entry 252. When installing code written by someone else, the ChangeLog entry
26should be in the name of the author of the code, not the person who 26should be in the name of the author of the code, not the person who
27installs it. I think it is helpful to put the author (if not yourself) 27installs it. I think it is helpful to put the author (if not yourself)
28in the CVS log as well; and to not install any of your own changes in 28in the commit log as well (you can also use bzr commit's "--author"
29the same commit. 29option); and to not install any of your own changes in the same commit.
30 30
313. With images, add the legal info to a README file in the directory 313. With images, add the legal info to a README file in the directory
32containing the image. 32containing the image.
@@ -38,17 +38,17 @@ legal notices, consider if you should add a copyright statement.
38right thing to do. 38right thing to do.
39 39
40 40
41Every non-trivial file distributed through the Emacs CVS should be 41Every non-trivial file distributed through the Emacs repository should be
42self-explanatory in terms of copyright and license. This includes 42self-explanatory in terms of copyright and license. This includes
43files that are not distributed in Emacs releases (for example, the 43files that are not distributed in Emacs releases (for example, the
44admin/ directory), because the whole Emacs CVS is publicly 44admin/ directory), because the whole Emacs repository is publicly
45available. 45available.
46 46
47The definition of triviality is a little vague, but a rule of thumb is 47The definition of triviality is a little vague, but a rule of thumb is
48that any file with less than 15 lines of actual content is trivial. If 48that any file with less than 15 lines of actual content is trivial. If
49a file is auto-generated (eg ldefs-boot.el) from another one in the 49a file is auto-generated (eg ldefs-boot.el) from another one in the
50CVS, then it does not really matter about adding a copyright statement 50repository, then it does not really matter about adding a copyright
51to the generated file. 51statement to the generated file.
52 52
53Legal advice says that we could, if we wished, put a license notice 53Legal advice says that we could, if we wished, put a license notice
54even in trivial files, because copyright law in general looks at the 54even in trivial files, because copyright law in general looks at the
@@ -67,8 +67,8 @@ file "years" in this directory). The PDF versions of refcards etc
67should display copyright notices (an exception to the rule about 67should display copyright notices (an exception to the rule about
68"generated" files), but these can just display the latest year. The 68"generated" files), but these can just display the latest year. The
69full list of years should be kept in comments in the source file. If 69full list of years should be kept in comments in the source file. If
70these are distributed in CVS, check in a regenerated version when the 70these are distributed in the repository, check in a regenerated
71tex files are updated. 71version when the tex files are updated.
72 72
73Copyright changes should be propagated to any associated repositories 73Copyright changes should be propagated to any associated repositories
74(eg Gnus, MH-E), but I think in every case this happens automatically 74(eg Gnus, MH-E), but I think in every case this happens automatically
@@ -115,7 +115,7 @@ author should be removed and the year(s) transferred to the FSF); or
115else it is possible the file should not be in Emacs at all (please 115else it is possible the file should not be in Emacs at all (please
116report!). 116report!).
117 117
118Note that it seems painfully clear that one cannot rely on CVS logs, 118Note that it seems painfully clear that one cannot rely on commit logs,
119or even ChangeLogs, for older changes. People often installed changes 119or even ChangeLogs, for older changes. People often installed changes
120from others, without recording the true authorship. 120from others, without recording the true authorship.
121 121
@@ -555,10 +555,10 @@ system)
555 obviously good): 555 obviously good):
556 556
557 557
558Is it OK to just `cvs remove' a file for legal reasons, or is 558Is it OK to just `bzr remove' a file for legal reasons, or is
559something more drastic needed? A removed file is still available from 559something more drastic needed? A removed file is still available from
560CVS, if suitable options are applied. (This CVS issue obviously does 560the repository, if suitable options are applied. (This issue obviously
561not affect a release). 561does not affect a release).
562 rms: will ask lawyer 562 rms: will ask lawyer
563 563
564 564
@@ -600,7 +600,7 @@ The EMACS_22_BASE branch was changed to GPLv3 (or later) 2007/07/25.
600Some notes: 600Some notes:
601(see http://lists.gnu.org/archive/html/emacs-devel/2007-07/msg01431.html) 601(see http://lists.gnu.org/archive/html/emacs-devel/2007-07/msg01431.html)
602 602
6031. There are some files in Emacs CVS which are not part of Emacs (eg 6031. There are some files in the Emacs tree which are not part of Emacs (eg
604those included from Gnulib). These are all copyright FSF and (at time 604those included from Gnulib). These are all copyright FSF and (at time
605of writing) GPL >= 2. rms says may as well leave the licenses of these 605of writing) GPL >= 2. rms says may as well leave the licenses of these
606alone (may import them from Gnulib again). These are: 606alone (may import them from Gnulib again). These are:
diff --git a/admin/notes/cvslogs b/admin/notes/cvslogs
deleted file mode 100644
index ff2dcc93ff5..00000000000
--- a/admin/notes/cvslogs
+++ /dev/null
@@ -1,15 +0,0 @@
1http://lists.gnu.org/archive/html/emacs-devel/2007-12/msg01208.html
2
3From: Eli Zaretskii
4Subject: Re: Log messages in CVS
5Date: Sat, 29 Dec 2007 16:06:29 +0200
6
7I once posted a summary that I know about; see:
8
9 http://lists.gnu.org/archive/html/emacs-devel/2006-11/msg00229.html
10 http://lists.gnu.org/archive/html/emacs-devel/2006-11/msg00234.html
11 http://lists.gnu.org/archive/html/emacs-devel/2006-11/msg00312.html
12
13Richard commented here, basically approving my summary:
14
15 http://lists.gnu.org/archive/html/emacs-devel/2006-11/msg00276.html
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog
index 6dfc203f638..2f5923fb8f1 100644
--- a/doc/lispref/ChangeLog
+++ b/doc/lispref/ChangeLog
@@ -1,3 +1,11 @@
12010-01-17 Chong Yidong <cyd@stupidchicken.com>
2
3 * elisp.texi: Remove duplicate edition information (Bug#5407).
4
52010-01-17 Juanma Barranquero <lekktu@gmail.com>
6
7 * two.el (volume-header-toc-markup): Fix typos in docstring.
8
12010-01-04 Stefan Monnier <monnier@iro.umontreal.ca> 92010-01-04 Stefan Monnier <monnier@iro.umontreal.ca>
2 10
3 Avoid dubious uses of save-excursions. 11 Avoid dubious uses of save-excursions.
diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi
index fd1f75073c6..e6af5ae923d 100644
--- a/doc/lispref/elisp.texi
+++ b/doc/lispref/elisp.texi
@@ -100,9 +100,6 @@ Cover art by Etienne Suvasa.
100@node Top, Introduction, (dir), (dir) 100@node Top, Introduction, (dir), (dir)
101@top Emacs Lisp 101@top Emacs Lisp
102 102
103This Info file contains edition @value{VERSION} of the GNU Emacs Lisp
104Reference Manual, corresponding to GNU Emacs version @value{EMACSVER}.
105
106@insertcopying 103@insertcopying
107@end ifnottex 104@end ifnottex
108 105
diff --git a/doc/lispref/two.el b/doc/lispref/two.el
index b89007d0d4f..43c680a483d 100644
--- a/doc/lispref/two.el
+++ b/doc/lispref/two.el
@@ -54,8 +54,8 @@ Then run texindex on that file and save."
54 54
55(defun volume-header-toc-markup () 55(defun volume-header-toc-markup ()
56 "Insert Volume I and Volume II text into .toc file. 56 "Insert Volume I and Volume II text into .toc file.
57NOTE: this auxilary function is file specific. 57NOTE: this auxiliary function is file specific.
58This is for the *Elisp Ref Manual*" 58This is for the *Elisp Ref Manual*."
59 (interactive) 59 (interactive)
60 (goto-char (point-min)) 60 (goto-char (point-min))
61 (insert "\\unnumbchapentry {Volume 1}{}\n\\unnumbchapentry {}{}\n") 61 (insert "\\unnumbchapentry {Volume 1}{}\n\\unnumbchapentry {}{}\n")
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog
index c4ef9ebf3ae..a8227f0b808 100644
--- a/doc/misc/ChangeLog
+++ b/doc/misc/ChangeLog
@@ -1,3 +1,33 @@
12010-01-17 Chong Yidong <cyd@stupidchicken.com>
2
3 * semantic.texi: Add Richard Y. Kim credit.
4
5 * eieio.texi (Making New Objects): Fix typo (Bug#5406).
6
72010-01-17 Michael Albinus <michael.albinus@gmx.de>
8
9 * tramp.texi (Frequently Asked Questions): Add GNU Emacs 23 and
10 SXEmacs 22 to the supported systems. New item for hung ssh sessions.
11
122010-01-17 Glenn Morris <rgm@gnu.org>
13
14 * calc.texi (Reporting Bugs): Don't mention format of repository.
15
16 * woman.texi (Bugs): Make "Emacs repository" less specific,
17 and the URL for same more specific.
18
19 * faq.texi (Latest version of Emacs): The repository is now Bazaar.
20
212010-01-17 Juanma Barranquero <lekktu@gmail.com>
22
23 * ede.texi (ede-step-project, ede-proj-target):
24 * tramp.texi (Remote processes): Fix typos.
25
262010-01-16 Mario Lang <mlang@delysid.org>
27
28 * ede.texi (ede-target):
29 * org.texi (Refiling notes): Remove duplicated words.
30
12010-01-04 Stefan Monnier <monnier@iro.umontreal.ca> 312010-01-04 Stefan Monnier <monnier@iro.umontreal.ca>
2 32
3 * gnus.texi (Posting Styles): Use with-current-buffer. 33 * gnus.texi (Posting Styles): Use with-current-buffer.
diff --git a/doc/misc/calc.texi b/doc/misc/calc.texi
index f0fa97cbe16..8d2d0495ec7 100644
--- a/doc/misc/calc.texi
+++ b/doc/misc/calc.texi
@@ -35269,7 +35269,7 @@ to work on these, please send a message (using @kbd{M-x report-calc-bug})
35269so any efforts can be coordinated. 35269so any efforts can be coordinated.
35270 35270
35271The latest version of Calc is available from Savannah, in the Emacs 35271The latest version of Calc is available from Savannah, in the Emacs
35272CVS tree. See @uref{http://savannah.gnu.org/projects/emacs}. 35272repository. See @uref{http://savannah.gnu.org/projects/emacs}.
35273 35273
35274@c [summary] 35274@c [summary]
35275@node Summary, Key Index, Reporting Bugs, Top 35275@node Summary, Key Index, Reporting Bugs, Top
diff --git a/doc/misc/ede.texi b/doc/misc/ede.texi
index 189c52f446f..a40553362bd 100644
--- a/doc/misc/ede.texi
+++ b/doc/misc/ede.texi
@@ -1728,7 +1728,7 @@ The variable GNUSTEP_INSTALLATION_DOMAIN is set at this value.
1728Type: @code{(or null list)} @* 1728Type: @code{(or null list)} @*
1729Default Value: @code{(quote ("GNUmakefile.preamble"))} 1729Default Value: @code{(quote ("GNUmakefile.preamble"))}
1730 1730
1731The auxilliary makefile for additional variables. 1731The auxiliary makefile for additional variables.
1732Included just before the specific target files. 1732Included just before the specific target files.
1733@refill 1733@refill
1734 1734
@@ -1736,7 +1736,7 @@ Included just before the specific target files.
1736Type: @code{(or null list)} @* 1736Type: @code{(or null list)} @*
1737Default Value: @code{(quote ("GNUmakefile.postamble"))} 1737Default Value: @code{(quote ("GNUmakefile.postamble"))}
1738 1738
1739The auxilliary makefile for additional rules. 1739The auxiliary makefile for additional rules.
1740Included just after the specific target files. 1740Included just after the specific target files.
1741@refill 1741@refill
1742 1742
@@ -1968,7 +1968,7 @@ Retrieves the slot @code{sourcetype} from an object of class @code{ede-target}
1968 1968
1969@deffn Method ede-expand-filename :AFTER this filename &optional force 1969@deffn Method ede-expand-filename :AFTER this filename &optional force
1970Return a fully qualified file name based on target @var{THIS}. 1970Return a fully qualified file name based on target @var{THIS}.
1971@var{FILENAME} should a a filename which occurs in a directory in which @var{THIS} works. 1971@var{FILENAME} should be a filename which occurs in a directory in which @var{THIS} works.
1972Optional argument @var{FORCE} forces the default filename to be provided even if it 1972Optional argument @var{FORCE} forces the default filename to be provided even if it
1973doesn't exist. 1973doesn't exist.
1974@end deffn 1974@end deffn
@@ -2083,7 +2083,7 @@ Relative to the path of the project it belongs to.
2083Type: @code{list} @* 2083Type: @code{list} @*
2084Default Value: @code{nil} 2084Default Value: @code{nil}
2085 2085
2086Auxilliary source files included in this target. 2086Auxiliary source files included in this target.
2087Each of these is considered equivalent to a source file, but it is not 2087Each of these is considered equivalent to a source file, but it is not
2088distributed, and each should have a corresponding rule to build it. 2088distributed, and each should have a corresponding rule to build it.
2089@refill 2089@refill
diff --git a/doc/misc/eieio.texi b/doc/misc/eieio.texi
index 06ff1677f0f..8b70d16f998 100755
--- a/doc/misc/eieio.texi
+++ b/doc/misc/eieio.texi
@@ -645,7 +645,7 @@ function of @code{:initform}.
645@comment node-name, next, previous, up 645@comment node-name, next, previous, up
646@chapter Making New Objects 646@chapter Making New Objects
647 647
648Suppose we have defined a simple class is defined, such as: 648Suppose we have a simple class is defined, such as:
649 649
650@example 650@example
651(defclass record () 651(defclass record ()
diff --git a/doc/misc/faq.texi b/doc/misc/faq.texi
index d04e8e76b5e..a7fb67745bf 100644
--- a/doc/misc/faq.texi
+++ b/doc/misc/faq.texi
@@ -1008,9 +1008,7 @@ conventions}).
1008@cindex Latest version of Emacs 1008@cindex Latest version of Emacs
1009@cindex Development, Emacs 1009@cindex Development, Emacs
1010@cindex Repository, Emacs 1010@cindex Repository, Emacs
1011@cindex CVS repository, Emacs 1011@cindex Bazaar repository, Emacs
1012@cindex Arch repository, Emacs
1013@cindex Git repository, Emacs
1014 1012
1015Emacs @value{VER} is the current version as of this writing. A version 1013Emacs @value{VER} is the current version as of this writing. A version
1016number with two components (e.g. @samp{22.1}) indicates a released 1014number with two components (e.g. @samp{22.1}) indicates a released
@@ -1020,9 +1018,8 @@ version (e.g. @samp{23.0.50} is what will eventually become @samp{23.1}).
1020Emacs is under active development, hosted at 1018Emacs is under active development, hosted at
1021@uref{http://savannah.gnu.org/projects/emacs/, Savannah}. The source 1019@uref{http://savannah.gnu.org/projects/emacs/, Savannah}. The source
1022code can be retrieved anonymously following the 1020code can be retrieved anonymously following the
1023@uref{http://savannah.gnu.org/cvs/?group=emacs, instructions}. 1021@uref{http://savannah.gnu.org/bzr/?group=emacs, instructions}.
1024The primary repository is CVS, but Arch and Git mirrors are also 1022The repository is GNU Bazaar.
1025available.
1026 1023
1027Because Emacs undergoes many changes before a release, the version 1024Because Emacs undergoes many changes before a release, the version
1028number of a development version is not especially meaningful. It is 1025number of a development version is not especially meaningful. It is
diff --git a/doc/misc/org.texi b/doc/misc/org.texi
index 789e64abc35..507dfad5c31 100644
--- a/doc/misc/org.texi
+++ b/doc/misc/org.texi
@@ -6181,7 +6181,7 @@ See the variable @code{org-refile-targets} for details. If you would like to
6181select a location via a file-path-like completion along the outline path, see 6181select a location via a file-path-like completion along the outline path, see
6182the variables @code{org-refile-use-outline-path} and 6182the variables @code{org-refile-use-outline-path} and
6183@code{org-outline-path-complete-in-steps}. If you would like to be able to 6183@code{org-outline-path-complete-in-steps}. If you would like to be able to
6184create new nodes as new parents for for refiling on the fly, check the 6184create new nodes as new parents for refiling on the fly, check the
6185variable @code{org-refile-allow-creating-parent-nodes}. 6185variable @code{org-refile-allow-creating-parent-nodes}.
6186@kindex C-u C-c C-w 6186@kindex C-u C-c C-w
6187@item C-u C-c C-w 6187@item C-u C-c C-w
diff --git a/doc/misc/semantic.texi b/doc/misc/semantic.texi
index c4aa4b81419..bf618b9e09d 100644
--- a/doc/misc/semantic.texi
+++ b/doc/misc/semantic.texi
@@ -1,7 +1,7 @@
1\input texinfo 1\input texinfo
2@setfilename ../../info/semantic 2@setfilename ../../info/semantic
3@set TITLE Semantic Manual 3@set TITLE Semantic Manual
4@set AUTHOR Eric M. Ludlam and David Ponce 4@set AUTHOR Eric M. Ludlam, David Ponce, and Richard Y. Kim
5@settitle @value{TITLE} 5@settitle @value{TITLE}
6 6
7@c ************************************************************************* 7@c *************************************************************************
diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi
index 02e079b8ad5..a01eda22c12 100644
--- a/doc/misc/tramp.texi
+++ b/doc/misc/tramp.texi
@@ -2562,7 +2562,7 @@ hosts. Example:
2562@end example 2562@end example
2563 2563
2564You will see the buffer @file{*Async Shell Command*}, containing the 2564You will see the buffer @file{*Async Shell Command*}, containing the
2565continous output of the @command{tail} command. 2565continuous output of the @command{tail} command.
2566 2566
2567 2567
2568@subsection Running eshell on a remote host 2568@subsection Running eshell on a remote host
@@ -2749,9 +2749,8 @@ There is also a Savannah project page.
2749@item 2749@item
2750Which systems does it work on? 2750Which systems does it work on?
2751 2751
2752The package has been used successfully on GNU Emacs 21, GNU Emacs 22 2752The package has been used successfully on GNU Emacs 21, GNU Emacs 22,
2753and XEmacs 21 (starting with 21.4). Gateway methods are supported for 2753GNU Emacs 23, XEmacs 21 (starting with 21.4), and SXEmacs 22.
2754GNU Emacs 22 only.
2755 2754
2756The package was intended to work on Unix, and it really expects a 2755The package was intended to work on Unix, and it really expects a
2757Unix-like system on the remote end (except the @option{smb} method), 2756Unix-like system on the remote end (except the @option{smb} method),
@@ -2762,12 +2761,6 @@ There is some informations on @value{tramp} on NT at the following URL;
2762many thanks to Joe Stoy for providing the information: 2761many thanks to Joe Stoy for providing the information:
2763@uref{ftp://ftp.comlab.ox.ac.uk/tmp/Joe.Stoy/} 2762@uref{ftp://ftp.comlab.ox.ac.uk/tmp/Joe.Stoy/}
2764 2763
2765@c The link is broken. I've contacted Tom for clarification. Michael.
2766@ignore
2767The above mostly contains patches to old ssh versions; Tom Roche has a
2768Web page with instructions:
2769@uref{http://www4.ncsu.edu/~tlroche/plinkTramp.html}
2770@end ignore
2771 2764
2772@item 2765@item
2773How could I speed up @value{tramp}? 2766How could I speed up @value{tramp}?
@@ -2838,7 +2831,6 @@ the following command:
2838[ $TERM = "dumb" ] && unsetopt zle && PS1='$ ' 2831[ $TERM = "dumb" ] && unsetopt zle && PS1='$ '
2839@end example 2832@end example
2840 2833
2841
2842@item 2834@item
2843@value{tramp} doesn't transfer strings with more than 500 characters 2835@value{tramp} doesn't transfer strings with more than 500 characters
2844correctly 2836correctly
@@ -2870,6 +2862,25 @@ checksum.
2870 2862
2871 2863
2872@item 2864@item
2865@value{tramp} does not recognize hung @command{ssh} sessions
2866
2867When your network connection is down, @command{ssh} sessions might
2868hang. @value{tramp} cannot detect it safely, because it still sees a
2869running @command{ssh} process. Timeouts cannot be used as well,
2870because it cannot be predicted, how long a remote command will last,
2871for example when copying very large files.
2872
2873Therefore, you must configure the @command{ssh} process to die
2874in such a case. The following entry in @file{~/.ssh/config} would do
2875the job:
2876
2877@example
2878Host *
2879 ServerAliveInterval 5
2880@end example
2881
2882
2883@item
2873File name completion does not work with @value{tramp} 2884File name completion does not work with @value{tramp}
2874 2885
2875When you log in to the remote machine, do you see the output of 2886When you log in to the remote machine, do you see the output of
diff --git a/doc/misc/woman.texi b/doc/misc/woman.texi
index 2077f4844a5..c2de5d88b58 100644
--- a/doc/misc/woman.texi
+++ b/doc/misc/woman.texi
@@ -4,7 +4,7 @@
4@settitle WoMan: Browse Unix Manual Pages ``W.O. (without) Man'' 4@settitle WoMan: Browse Unix Manual Pages ``W.O. (without) Man''
5@c FIXME 5@c FIXME
6@c Manual last updated: 6@c Manual last updated:
7@set UPDATED Time-stamp: <2009-02-16 09:25:50 karl> 7@set UPDATED Time-stamp: <Sat 16-Jan-2010 19:18:43 gm on grasmoor>
8@c Software version: 8@c Software version:
9@set VERSION 0.54 (beta) 9@set VERSION 0.54 (beta)
10@afourpaper 10@afourpaper
@@ -18,8 +18,8 @@
18This file documents WoMan: A program to browse Unix manual pages `W.O. 18This file documents WoMan: A program to browse Unix manual pages `W.O.
19(without) man'. 19(without) man'.
20 20
21Copyright @copyright{} 2001, 2002, 2003, 2004, 21Copyright @copyright{} 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
222005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 222009, 2010 Free Software Foundation, Inc.
23 23
24@quotation 24@quotation
25Permission is granted to copy, distribute and/or modify this document 25Permission is granted to copy, distribute and/or modify this document
@@ -1319,8 +1319,8 @@ inelegantly, then please
1319 1319
1320@enumerate 1320@enumerate
1321@item 1321@item
1322try the latest version of @file{woman.el} from the Emacs CVS repository 1322try the latest version of @file{woman.el} from the Emacs repository
1323on @uref{http://savannah.gnu.org/}. If it still fails, please 1323on @uref{http://savannah.gnu.org/projects/emacs/}. If it still fails, please
1324 1324
1325@item 1325@item
1326send a bug report to @email{bug-gnu-emacs@@gnu.org} and to 1326send a bug report to @email{bug-gnu-emacs@@gnu.org} and to
diff --git a/etc/ChangeLog b/etc/ChangeLog
index 15530e5d59f..a5ab8ee4452 100644
--- a/etc/ChangeLog
+++ b/etc/ChangeLog
@@ -1,3 +1,8 @@
12010-01-16 Mario Lang <mlang@delysid.org>
2
3 * srecode/doc-cpp.srt, srecode/doc-default.srt:
4 * srecode/doc-java.srt: Remove duplicated words.
5
12010-01-14 Nick Roberts <nickrob@snap.net.nz> 62010-01-14 Nick Roberts <nickrob@snap.net.nz>
2 7
3 * etc/images/gud/recstart.xpm, etc/images/gud/recstop.xpm: 8 * etc/images/gud/recstart.xpm, etc/images/gud/recstop.xpm:
diff --git a/etc/srecode/doc-cpp.srt b/etc/srecode/doc-cpp.srt
index fce0d283d7d..2abe572e396 100644
--- a/etc/srecode/doc-cpp.srt
+++ b/etc/srecode/doc-cpp.srt
@@ -58,7 +58,7 @@ Recycle doxygen comment code from the more general template set."
58---- 58----
59 59
60template group-comment-end :blank :indent 60template group-comment-end :blank :indent
61"A comment occurring at the end of a a group of declarations. 61"A comment occurring at the end of a group of declarations.
62Recycle doxygen comment code from the more general template set." 62Recycle doxygen comment code from the more general template set."
63---- 63----
64{{>:classdecl:doxygen-function-group-end}} 64{{>:classdecl:doxygen-function-group-end}}
@@ -75,7 +75,7 @@ Recycle doxygen comment code from the more general template set."
75---- 75----
76 76
77template group-comment-end :blank :indent 77template group-comment-end :blank :indent
78"A comment occurring at the end of a a group of declarations. 78"A comment occurring at the end of a group of declarations.
79Recycle doxygen comment code from the more general template set." 79Recycle doxygen comment code from the more general template set."
80---- 80----
81{{>:classdecl:doxygen-function-group-end}} 81{{>:classdecl:doxygen-function-group-end}}
diff --git a/etc/srecode/doc-default.srt b/etc/srecode/doc-default.srt
index f07849b9207..2d3094df60d 100644
--- a/etc/srecode/doc-default.srt
+++ b/etc/srecode/doc-default.srt
@@ -57,7 +57,7 @@ template group-comment-start :blank :indent
57---- 57----
58 58
59template group-comment-end :indent 59template group-comment-end :indent
60"A comment occurring at the end of a a group of declarations." 60"A comment occurring at the end of a group of declarations."
61---- 61----
62{{comment_start}} End {{?GROUPNAME}} {{comment_end}} 62{{comment_start}} End {{?GROUPNAME}} {{comment_end}}
63---- 63----
@@ -72,7 +72,7 @@ template group-comment-start :blank :indent
72---- 72----
73 73
74template group-comment-end :indent 74template group-comment-end :indent
75"A comment occurring at the end of a a group of declarations." 75"A comment occurring at the end of a group of declarations."
76---- 76----
77{{>:declaration:group-comment-end}} 77{{>:declaration:group-comment-end}}
78---- 78----
diff --git a/etc/srecode/doc-java.srt b/etc/srecode/doc-java.srt
index cb289913f36..f6ef6c9aea3 100644
--- a/etc/srecode/doc-java.srt
+++ b/etc/srecode/doc-java.srt
@@ -59,7 +59,7 @@ Recycle javadoc comment code from the more general template set."
59---- 59----
60 60
61template group-comment-end :blank :indent 61template group-comment-end :blank :indent
62"A comment occurring at the end of a a group of declarations. 62"A comment occurring at the end of a group of declarations.
63Recycle javadoc comment code from the more general template set." 63Recycle javadoc comment code from the more general template set."
64---- 64----
65{{>:classdecl:javadoc-function-group-end}} 65{{>:classdecl:javadoc-function-group-end}}
@@ -76,7 +76,7 @@ Recycle javadoc comment code from the more general template set."
76---- 76----
77 77
78template group-comment-end :blank :indent 78template group-comment-end :blank :indent
79"A comment occurring at the end of a a group of declarations. 79"A comment occurring at the end of a group of declarations.
80Recycle javadoc comment code from the more general template set." 80Recycle javadoc comment code from the more general template set."
81---- 81----
82{{>:classdecl:javadoc-function-group-end}} 82{{>:classdecl:javadoc-function-group-end}}
diff --git a/lib-src/etags.c b/lib-src/etags.c
index 8cdd47957f6..d49dcf930af 100644
--- a/lib-src/etags.c
+++ b/lib-src/etags.c
@@ -6297,7 +6297,7 @@ readline (lbp, stream)
6297 readline (lbp, stream); 6297 readline (lbp, stream);
6298 return; 6298 return;
6299 } /* if a real #line directive */ 6299 } /* if a real #line directive */
6300 } /* if #line is followed by a a number */ 6300 } /* if #line is followed by a number */
6301 } /* if line begins with "#line " */ 6301 } /* if line begins with "#line " */
6302 6302
6303 /* If we are here, no #line directive was found. */ 6303 /* If we are here, no #line directive was found. */
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 9e08889ba61..741f4ff4828 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,93 @@
12010-01-17 Chong Yidong <cyd@stupidchicken.com>
2
3 * mail/sendmail.el (mail-yank-original): Set the mark if the
4 specified function for yanking does not do it.
5
62010-01-17 Dan Nicolaescu <dann@ics.uci.edu>
7
8 * vc.el (with-vc-properties): Deal with directory arguments. (Bug#5298)
9
10 * vc-dir.el (vc-dir-resynch-file): Update the vc-dir header when
11 resyncing a directory.
12
132010-01-17 Stephen Leake <stephen_leake@member.fsf.org>
14
15 * progmodes/ada-mode.el: Fix bug#1920, bug#5400.
16 (ada-ident-re): Delete ., allow multibyte characters.
17 (ada-goto-label-re): New; matches goto labels.
18 (ada-block-label-re): New; matches block labels.
19 (ada-label-re): New; matches both.
20 (ada-named-block-re): Deleted; callers changed to use
21 `ada-block-label-re' instead.
22 (ada-get-current-indent, ada-get-indent-noindent, ada-get-indent-loop):
23 Use `ada-block-label-re'.
24 (ada-indent-on-previous-lines): Improve handling of goto labels.
25 (ada-get-indent-block-start): Special-case block label.
26 (ada-get-indent-label): Split into `ada-indent-block-label' and
27 `ada-indent-goto-label'.
28 (ada-goto-stmt-start, ada-goto-next-non-ws):
29 Optionally ignore goto labels.
30 (ada-goto-next-word): Simplify.
31 (ada-indent-newline-indent-conditional): Insert newline before
32 trying to fix indentation; doc fix.
33
342010-01-17 Jay Belanger <jay.p.belanger@gmail.com>
35
36 * calc/calc.el (calc-command-flags): Give it an initial value.
37
382010-01-17 Glenn Morris <rgm@gnu.org>
39
40 * cedet/semantic/idle.el (semantic-idle-work-for-one-buffer): Doc fix.
41
422010-01-17 Juanma Barranquero <lekktu@gmail.com>
43
44 * cedet/semantic.el (semantic-mode):
45 * files.el (minibuffer-with-setup-hook):
46 * textmodes/artist.el (artist-mt, artist-key-undraw-continously)
47 (artist-key-draw-continously, artist-key-do-continously-continously)
48 (artist-key-set-point-continously, artist-mouse-draw-continously):
49 Fix typos in docstrings.
50
512010-01-16 Lennart Borgman <lennart.borgman@gmail.com>
52
53 * nxml/nxml-mode.el (nxml-extend-after-change-region): Never
54 return t (Bug#3898).
55
562010-01-16 Frédéric Perrin <frederic.perrin@resel.fr> (tiny change)
57
58 * vc-dispatcher.el (vc-do-command): Set LC_MESSAGES, so that we
59 can parse the output of the external commands (Bug#5279).
60
612010-01-16 Jari Aalto <jari.aalto@cante.net>
62
63 * pcmpl-unix.el (pcmpl-unix-read-passwd-file): Doc fix.
64
652010-01-16 Chong Yidong <cyd@stupidchicken.com>
66
67 * emacs-lisp/advice.el (ad-add-advice): Doc fix (Bug#5274)
68
69 * emacs-lisp/cl-macs.el (defstruct): Doc fix (Bug#5267).
70
71 * startup.el (command-line): Remove unused --icon-type arg.
72 Handle --display arg, passing it to command-line-1 (Bug#5392).
73
742010-01-16 Mario Lang <mlang@delysid.org>
75
76 * cedet/ede/cpp-root.el (ede-cpp-root-project):
77 * cedet/ede/files.el (ede-expand-filename):
78 * cedet/ede/simple.el (ede-simple-project):
79 * cedet/semantic/complete.el (semantic-complete-read-tag-engine)
80 (semantic-complete-inline-tag-engine):
81 * cedet/semantic/db-el.el (semanticdb-equivalent-mode):
82 * cedet/semantic/db-global.el (semanticdb-equivalent-mode):
83 * cedet/semantic/db-javascript.el (semanticdb-equivalent-mode):
84 * cedet/semantic/db.el (semanticdb-equivalent-mode):
85 * cedet/semantic/decorate/include.el (semantic-decoration-unknown-include-describe):
86 * cedet/semantic/idle.el (semantic-idle-work-for-one-buffer):
87 * emacs-lisp/chart.el (chart-translate-namezone):
88 * textmodes/artist.el (artist-compute-popup-menu-table):
89 Remove duplicated words in doc-strings.
90
12010-01-15 David Abrahams <dave@boostpro.com> (tiny change) 912010-01-15 David Abrahams <dave@boostpro.com> (tiny change)
2 92
3 * net/mairix.el (mairix-widget-send-query): Send -1 instead of nil 93 * net/mairix.el (mairix-widget-send-query): Send -1 instead of nil
@@ -6,7 +96,7 @@
62010-01-15 Kenichi Handa <handa@m17n.org> 962010-01-15 Kenichi Handa <handa@m17n.org>
7 97
8 * international/mule-cmds.el (canonicalize-coding-system-name): 98 * international/mule-cmds.el (canonicalize-coding-system-name):
9 Convert "msXXX", "ibmXXX", "windows-XXX" to "cpXXX". 99 Convert "msXXX", "ibmXXX", "windows-XXX" to "cpXXX" (Bug#5387).
10 100
112010-01-15 Glenn Morris <rgm@gnu.org> 1012010-01-15 Glenn Morris <rgm@gnu.org>
12 102
@@ -1473,7 +1563,7 @@
14732009-12-01 Dan Nicolaescu <dann@ics.uci.edu> 15632009-12-01 Dan Nicolaescu <dann@ics.uci.edu>
1474 1564
1475 Make vc-print-log buttons work. 1565 Make vc-print-log buttons work.
1476 * log-view.el (log-view-mode-map): Inherit from from widget-keymap. 1566 * log-view.el (log-view-mode-map): Inherit from widget-keymap.
1477 1567
14782009-11-30 Ryan C. Thompson <rct@thompsonclan.org> (tiny change) 15682009-11-30 Ryan C. Thompson <rct@thompsonclan.org> (tiny change)
1479 1569
diff --git a/lisp/calc/calc.el b/lisp/calc/calc.el
index a3f95fc73ef..2a6ec97ef5c 100644
--- a/lisp/calc/calc.el
+++ b/lisp/calc/calc.el
@@ -1546,7 +1546,7 @@ See calc-keypad for details."
1546 1546
1547(defvar calc-aborted-prefix nil) 1547(defvar calc-aborted-prefix nil)
1548(defvar calc-start-time nil) 1548(defvar calc-start-time nil)
1549(defvar calc-command-flags) 1549(defvar calc-command-flags nil)
1550(defvar calc-final-point-line) 1550(defvar calc-final-point-line)
1551(defvar calc-final-point-column) 1551(defvar calc-final-point-column)
1552;;; Note that modifications to this function may break calc-pass-errors. 1552;;; Note that modifications to this function may break calc-pass-errors.
diff --git a/lisp/cedet/ede/cpp-root.el b/lisp/cedet/ede/cpp-root.el
index ec04dd57c7a..1592c3c2f5d 100644
--- a/lisp/cedet/ede/cpp-root.el
+++ b/lisp/cedet/ede/cpp-root.el
@@ -324,7 +324,7 @@ exist, it should return nil."
324 ) 324 )
325 ) 325 )
326 "EDE cpp-root project class. 326 "EDE cpp-root project class.
327Each directory needs a a project file to control it.") 327Each directory needs a project file to control it.")
328 328
329;;; INIT 329;;; INIT
330;; 330;;
diff --git a/lisp/cedet/ede/files.el b/lisp/cedet/ede/files.el
index bdb9268a030..2f86b766158 100644
--- a/lisp/cedet/ede/files.el
+++ b/lisp/cedet/ede/files.el
@@ -487,7 +487,7 @@ doesn't exist."
487 487
488(defmethod ede-expand-filename ((this ede-target) filename &optional force) 488(defmethod ede-expand-filename ((this ede-target) filename &optional force)
489 "Return a fully qualified file name based on target THIS. 489 "Return a fully qualified file name based on target THIS.
490FILENAME should a a filename which occurs in a directory in which THIS works. 490FILENAME should be a filename which occurs in a directory in which THIS works.
491Optional argument FORCE forces the default filename to be provided even if it 491Optional argument FORCE forces the default filename to be provided even if it
492doesn't exist." 492doesn't exist."
493 (ede-expand-filename (ede-target-parent this) filename force)) 493 (ede-expand-filename (ede-target-parent this) filename force))
diff --git a/lisp/cedet/ede/proj-aux.el b/lisp/cedet/ede/proj-aux.el
index 9011c62674f..26bc9540e82 100644
--- a/lisp/cedet/ede/proj-aux.el
+++ b/lisp/cedet/ede/proj-aux.el
@@ -1,4 +1,4 @@
1;;; ede/proj-aux.el --- EDE Generic Project auxilliary file support 1;;; ede/proj-aux.el --- EDE Generic Project auxiliary file support
2 2
3;; Copyright (C) 1998, 1999, 2000, 2007, 2009, 2010 Free Software Foundation, Inc. 3;; Copyright (C) 1998, 1999, 2000, 2007, 2009, 2010 Free Software Foundation, Inc.
4 4
diff --git a/lisp/cedet/ede/simple.el b/lisp/cedet/ede/simple.el
index 64bf047736e..e0a526e9ead 100644
--- a/lisp/cedet/ede/simple.el
+++ b/lisp/cedet/ede/simple.el
@@ -87,7 +87,7 @@ All directories need at least one target.")
87 (file-header-line :initform ";; EDE Simple Project") 87 (file-header-line :initform ";; EDE Simple Project")
88 ) 88 )
89 "EDE Simple project class. 89 "EDE Simple project class.
90Each directory needs a a project file to control it.") 90Each directory needs a project file to control it.")
91 91
92(defmethod ede-commit-project ((proj ede-simple-project)) 92(defmethod ede-commit-project ((proj ede-simple-project))
93 "Commit any change to PROJ to its file." 93 "Commit any change to PROJ to its file."
diff --git a/lisp/cedet/semantic.el b/lisp/cedet/semantic.el
index 108a8c4b294..0b311d9f243 100644
--- a/lisp/cedet/semantic.el
+++ b/lisp/cedet/semantic.el
@@ -1014,7 +1014,7 @@ Throw away all the old tags, and recreate the tag database."
1014 1014
1015;; The `semantic-mode' command, in conjuction with the 1015;; The `semantic-mode' command, in conjuction with the
1016;; `semantic-default-submodes' variable, toggles Semantic's various 1016;; `semantic-default-submodes' variable, toggles Semantic's various
1017;; auxilliary minor modes. 1017;; auxiliary minor modes.
1018 1018
1019(defvar semantic-load-system-cache-loaded nil 1019(defvar semantic-load-system-cache-loaded nil
1020 "Non nil when the Semantic system caches have been loaded. 1020 "Non nil when the Semantic system caches have been loaded.
@@ -1057,7 +1057,7 @@ With ARG, turn Semantic mode on if ARG is positive, off otherwise.
1057 1057
1058In Semantic mode, Emacs parses the buffers you visit for their 1058In Semantic mode, Emacs parses the buffers you visit for their
1059semantic content. This information is used by a variety of 1059semantic content. This information is used by a variety of
1060auxilliary minor modes, listed in `semantic-default-submodes'; 1060auxiliary minor modes, listed in `semantic-default-submodes';
1061all the minor modes in this list are also enabled when you enable 1061all the minor modes in this list are also enabled when you enable
1062Semantic mode. 1062Semantic mode.
1063 1063
@@ -1067,7 +1067,7 @@ Semantic mode.
1067 (if semantic-mode 1067 (if semantic-mode
1068 ;; Turn on Semantic mode 1068 ;; Turn on Semantic mode
1069 (progn 1069 (progn
1070 ;; Enable all the global auxilliary minor modes in 1070 ;; Enable all the global auxiliary minor modes in
1071 ;; `semantic-submode-list'. 1071 ;; `semantic-submode-list'.
1072 (dolist (mode semantic-submode-list) 1072 (dolist (mode semantic-submode-list)
1073 (if (memq mode semantic-default-submodes) 1073 (if (memq mode semantic-default-submodes)
diff --git a/lisp/cedet/semantic/complete.el b/lisp/cedet/semantic/complete.el
index eed31e4c2ad..fa9ebed9263 100644
--- a/lisp/cedet/semantic/complete.el
+++ b/lisp/cedet/semantic/complete.el
@@ -192,7 +192,7 @@ Keeps STRINGS only in the history.")
192 default-tag initial-input 192 default-tag initial-input
193 history) 193 history)
194 "Read a semantic tag, and return a tag for the selection. 194 "Read a semantic tag, and return a tag for the selection.
195Argument COLLECTOR is an object which can be used to to calculate 195Argument COLLECTOR is an object which can be used to calculate
196a list of possible hits. See `semantic-completion-collector-engine' 196a list of possible hits. See `semantic-completion-collector-engine'
197for details on COLLECTOR. 197for details on COLLECTOR.
198Argument DISPLAYOR is an object used to display a list of possible 198Argument DISPLAYOR is an object used to display a list of possible
@@ -394,7 +394,7 @@ Return value can be:
394 394
395;;; Keybindings 395;;; Keybindings
396;; 396;;
397;; Keys are bound to to perform completion using our mechanisms. 397;; Keys are bound to perform completion using our mechanisms.
398;; Do that work here. 398;; Do that work here.
399(defun semantic-complete-done () 399(defun semantic-complete-done ()
400 "Accept the current input." 400 "Accept the current input."
@@ -738,7 +738,7 @@ DO NOT CALL THIS IF THE INLINE COMPLETION ENGINE IS NOT ACTIVE."
738(defun semantic-complete-inline-tag-engine 738(defun semantic-complete-inline-tag-engine
739 (collector displayor buffer start end) 739 (collector displayor buffer start end)
740 "Perform completion based on semantic tags in a buffer. 740 "Perform completion based on semantic tags in a buffer.
741Argument COLLECTOR is an object which can be used to to calculate 741Argument COLLECTOR is an object which can be used to calculate
742a list of possible hits. See `semantic-completion-collector-engine' 742a list of possible hits. See `semantic-completion-collector-engine'
743for details on COLLECTOR. 743for details on COLLECTOR.
744Argument DISPLAYOR is an object used to display a list of possible 744Argument DISPLAYOR is an object used to display a list of possible
diff --git a/lisp/cedet/semantic/db-el.el b/lisp/cedet/semantic/db-el.el
index 865d775c7cb..d46f727fca6 100644
--- a/lisp/cedet/semantic/db-el.el
+++ b/lisp/cedet/semantic/db-el.el
@@ -107,7 +107,7 @@ For Emacs Lisp, creates a specialized table."
107 107
108(defmethod semanticdb-equivalent-mode ((table semanticdb-table-emacs-lisp) &optional buffer) 108(defmethod semanticdb-equivalent-mode ((table semanticdb-table-emacs-lisp) &optional buffer)
109 "Return non-nil if TABLE's mode is equivalent to BUFFER. 109 "Return non-nil if TABLE's mode is equivalent to BUFFER.
110Equivalent modes are specified by by `semantic-equivalent-major-modes' 110Equivalent modes are specified by the `semantic-equivalent-major-modes'
111local variable." 111local variable."
112 (with-current-buffer buffer 112 (with-current-buffer buffer
113 (eq (or mode-local-active-mode major-mode) 'emacs-lisp-mode))) 113 (eq (or mode-local-active-mode major-mode) 'emacs-lisp-mode)))
diff --git a/lisp/cedet/semantic/db-global.el b/lisp/cedet/semantic/db-global.el
index aba045d64d8..bfd97fc5a54 100644
--- a/lisp/cedet/semantic/db-global.el
+++ b/lisp/cedet/semantic/db-global.el
@@ -105,7 +105,7 @@ is not available for this directory."
105 105
106(defmethod semanticdb-equivalent-mode ((table semanticdb-table-global) &optional buffer) 106(defmethod semanticdb-equivalent-mode ((table semanticdb-table-global) &optional buffer)
107 "Return t, pretend that this table's mode is equivalent to BUFFER. 107 "Return t, pretend that this table's mode is equivalent to BUFFER.
108Equivalent modes are specified by by `semantic-equivalent-major-modes' 108Equivalent modes are specified by the `semantic-equivalent-major-modes'
109local variable." 109local variable."
110 ;; @todo - hack alert! 110 ;; @todo - hack alert!
111 t) 111 t)
diff --git a/lisp/cedet/semantic/db-javascript.el b/lisp/cedet/semantic/db-javascript.el
index d99b60cc66c..2e357e677e2 100644
--- a/lisp/cedet/semantic/db-javascript.el
+++ b/lisp/cedet/semantic/db-javascript.el
@@ -145,7 +145,7 @@ Create one of our special tables that can act as an intermediary."
145 145
146(defmethod semanticdb-equivalent-mode ((table semanticdb-table-javascript) &optional buffer) 146(defmethod semanticdb-equivalent-mode ((table semanticdb-table-javascript) &optional buffer)
147 "Return non-nil if TABLE's mode is equivalent to BUFFER. 147 "Return non-nil if TABLE's mode is equivalent to BUFFER.
148Equivalent modes are specified by by `semantic-equivalent-major-modes' 148Equivalent modes are specified by the `semantic-equivalent-major-modes'
149local variable." 149local variable."
150 (with-current-buffer buffer 150 (with-current-buffer buffer
151 (eq (or mode-local-active-mode major-mode) 'javascript-mode))) 151 (eq (or mode-local-active-mode major-mode) 'javascript-mode)))
diff --git a/lisp/cedet/semantic/db.el b/lisp/cedet/semantic/db.el
index 811bc985f35..3f638a212f0 100644
--- a/lisp/cedet/semantic/db.el
+++ b/lisp/cedet/semantic/db.el
@@ -735,13 +735,13 @@ all files of any type."
735 735
736(defmethod semanticdb-equivalent-mode ((table semanticdb-abstract-table) &optional buffer) 736(defmethod semanticdb-equivalent-mode ((table semanticdb-abstract-table) &optional buffer)
737 "Return non-nil if TABLE's mode is equivalent to BUFFER. 737 "Return non-nil if TABLE's mode is equivalent to BUFFER.
738Equivalent modes are specified by by `semantic-equivalent-major-modes' 738Equivalent modes are specified by the `semantic-equivalent-major-modes'
739local variable." 739local variable."
740 nil) 740 nil)
741 741
742(defmethod semanticdb-equivalent-mode ((table semanticdb-table) &optional buffer) 742(defmethod semanticdb-equivalent-mode ((table semanticdb-table) &optional buffer)
743 "Return non-nil if TABLE's mode is equivalent to BUFFER. 743 "Return non-nil if TABLE's mode is equivalent to BUFFER.
744Equivalent modes are specified by by `semantic-equivalent-major-modes' 744Equivalent modes are specified by the `semantic-equivalent-major-modes'
745local variable." 745local variable."
746 (save-excursion 746 (save-excursion
747 (if buffer (set-buffer buffer)) 747 (if buffer (set-buffer buffer))
diff --git a/lisp/cedet/semantic/decorate/include.el b/lisp/cedet/semantic/decorate/include.el
index dec01336ae1..94273dcfaf7 100644
--- a/lisp/cedet/semantic/decorate/include.el
+++ b/lisp/cedet/semantic/decorate/include.el
@@ -461,7 +461,7 @@ wrap existing project code for Semantic's benifit.
461 461
462 (when (or (eq mm 'c++-mode) (eq mm 'c-mode)) 462 (when (or (eq mm 'c++-mode) (eq mm 'c-mode))
463 (princ " 463 (princ "
464For C/C++ includes located within a a project, you can use a special 464For C/C++ includes located within a project, you can use a special
465EDE project that will wrap an existing build system. You can do that 465EDE project that will wrap an existing build system. You can do that
466like this in your .emacs file: 466like this in your .emacs file:
467 467
diff --git a/lisp/cedet/semantic/idle.el b/lisp/cedet/semantic/idle.el
index dddfaca0f83..bc314bb547e 100644
--- a/lisp/cedet/semantic/idle.el
+++ b/lisp/cedet/semantic/idle.el
@@ -336,9 +336,9 @@ Disable to prevent lots of excessive parsing in idle time."
336 336
337 337
338(defun semantic-idle-work-for-one-buffer (buffer) 338(defun semantic-idle-work-for-one-buffer (buffer)
339 "Do long-processing work for for BUFFER. 339 "Do long-processing work for BUFFER.
340Uses `semantic-safe' and returns the output. 340Uses `semantic-safe' and returns the output.
341Returns t of all processing succeeded." 341Returns t if all processing succeeded."
342 (with-current-buffer buffer 342 (with-current-buffer buffer
343 (not (and 343 (not (and
344 ;; Just in case 344 ;; Just in case
diff --git a/lisp/emacs-lisp/advice.el b/lisp/emacs-lisp/advice.el
index 46522991418..bac24b63021 100644
--- a/lisp/emacs-lisp/advice.el
+++ b/lisp/emacs-lisp/advice.el
@@ -2422,16 +2422,28 @@ in that CLASS."
2422;;;###autoload 2422;;;###autoload
2423(defun ad-add-advice (function advice class position) 2423(defun ad-add-advice (function advice class position)
2424 "Add a piece of ADVICE to FUNCTION's list of advices in CLASS. 2424 "Add a piece of ADVICE to FUNCTION's list of advices in CLASS.
2425If FUNCTION already has one or more pieces of advice of the specified 2425
2426CLASS then POSITION determines where the new piece will go. The value 2426ADVICE has the form (NAME PROTECTED ENABLED DEFINITION), where
2427of POSITION can either be `first', `last' or a number where 0 corresponds 2427NAME is the advice name; PROTECTED is a flag specifying whether
2428to `first'. Numbers outside the range will be mapped to the closest 2428to protect against non-local exits; ENABLED is a flag specifying
2429extreme position. If there was already a piece of ADVICE with the same 2429whether to initially enable the advice; and DEFINITION has the
2430name, then the position argument will be ignored and the old advice 2430form (advice . LAMBDA), where LAMBDA is a lambda expression.
2431will be overwritten with the new one. 2431
2432 If the FUNCTION was not advised already, then its advice info will be 2432If FUNCTION already has a piece of advice with the same name,
2433initialized. Redefining a piece of advice whose name is part of the cache-id 2433then POSITION is ignored, and the old advice is overwritten with
2434will clear the cache." 2434the new one.
2435
2436If FUNCTION already has one or more pieces of advice of the
2437specified CLASS, then POSITION determines where the new piece
2438goes. POSITION can either be `first', `last' or a number (where
24390 corresponds to `first', and numbers outside the valid range are
2440mapped to the closest extremal position).
2441
2442If FUNCTION was not advised already, its advice info will be
2443initialized. Redefining a piece of advice whose name is part of
2444the cache-id will clear the cache.
2445
2446See Info node `(elisp)Computed Advice' for detailed documentation."
2435 (cond ((not (ad-is-advised function)) 2447 (cond ((not (ad-is-advised function))
2436 (ad-initialize-advice-info function) 2448 (ad-initialize-advice-info function)
2437 (ad-set-advice-info-field 2449 (ad-set-advice-info-field
diff --git a/lisp/emacs-lisp/chart.el b/lisp/emacs-lisp/chart.el
index f4c3bfa90a0..4f01e540601 100644
--- a/lisp/emacs-lisp/chart.el
+++ b/lisp/emacs-lisp/chart.el
@@ -323,7 +323,7 @@ MARGIN, ZONE, START, and END specify restrictions in chart space."
323(defmethod chart-translate-namezone ((c chart) n) 323(defmethod chart-translate-namezone ((c chart) n)
324 "Return a dot-pair representing a positional range for a name. 324 "Return a dot-pair representing a positional range for a name.
325The name in chart C of the Nth name resides. 325The name in chart C of the Nth name resides.
326Automatically compensates for for direction." 326Automatically compensates for direction."
327 (let* ((dir (oref c direction)) 327 (let* ((dir (oref c direction))
328 (w (if (eq dir 'vertical) (oref c x-width) (oref c y-width))) 328 (w (if (eq dir 'vertical) (oref c x-width) (oref c y-width)))
329 (m (if (eq dir 'vertical) (oref c y-margin) (oref c x-margin))) 329 (m (if (eq dir 'vertical) (oref c y-margin) (oref c x-margin)))
diff --git a/lisp/emacs-lisp/cl-loaddefs.el b/lisp/emacs-lisp/cl-loaddefs.el
index 0be2c643313..3beda28abf2 100644
--- a/lisp/emacs-lisp/cl-loaddefs.el
+++ b/lisp/emacs-lisp/cl-loaddefs.el
@@ -282,7 +282,7 @@ Not documented
282;;;;;; flet progv psetq do-all-symbols do-symbols dotimes dolist 282;;;;;; flet progv psetq do-all-symbols do-symbols dotimes dolist
283;;;;;; do* do loop return-from return block etypecase typecase ecase 283;;;;;; do* do loop return-from return block etypecase typecase ecase
284;;;;;; case load-time-value eval-when destructuring-bind function* 284;;;;;; case load-time-value eval-when destructuring-bind function*
285;;;;;; defmacro* defun* gentemp gensym) "cl-macs" "cl-macs.el" "3867c0613dfd69780f561012a1dfe67b") 285;;;;;; defmacro* defun* gentemp gensym) "cl-macs" "cl-macs.el" "e10a7e42199c08dc39460f67dd2d424b")
286;;; Generated autoloads from cl-macs.el 286;;; Generated autoloads from cl-macs.el
287 287
288(autoload 'gensym "cl-macs" "\ 288(autoload 'gensym "cl-macs" "\
@@ -672,11 +672,21 @@ from ARGLIST using FUNC: (define-modify-macro incf (&optional (n 1)) +)
672 672
673(autoload 'defstruct "cl-macs" "\ 673(autoload 'defstruct "cl-macs" "\
674Define a struct type. 674Define a struct type.
675This macro defines a new Lisp data type called NAME, which contains data 675This macro defines a new data type called NAME that stores data
676stored in SLOTs. This defines a `make-NAME' constructor, a `copy-NAME' 676in SLOTs. It defines a `make-NAME' constructor, a `copy-NAME'
677copier, a `NAME-p' predicate, and setf-able `NAME-SLOT' accessors. 677copier, a `NAME-p' predicate, and slot accessors named `NAME-SLOT'.
678You can use the accessors to set the corresponding slots, via `setf'.
678 679
679\(fn (NAME OPTIONS...) (SLOT SLOT-OPTS...)...)" nil (quote macro)) 680NAME may instead take the form (NAME OPTIONS...), where each
681OPTION is either a single keyword or (KEYWORD VALUE).
682See Info node `(cl)Structures' for a list of valid keywords.
683
684Each SLOT may instead take the form (SLOT SLOT-OPTS...), where
685SLOT-OPTS are keyword-value pairs for that slot. Currently, only
686one keyword is supported, `:read-only'. If this has a non-nil
687value, that slot cannot be set via `setf'.
688
689\(fn NAME SLOTS...)" nil (quote macro))
680 690
681(autoload 'cl-struct-setf-expander "cl-macs" "\ 691(autoload 'cl-struct-setf-expander "cl-macs" "\
682Not documented 692Not documented
diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el
index 29bb752dbf7..4e3b1fb72d9 100644
--- a/lisp/emacs-lisp/cl-macs.el
+++ b/lisp/emacs-lisp/cl-macs.el
@@ -2191,11 +2191,21 @@ from ARGLIST using FUNC: (define-modify-macro incf (&optional (n 1)) +)"
2191;;;###autoload 2191;;;###autoload
2192(defmacro defstruct (struct &rest descs) 2192(defmacro defstruct (struct &rest descs)
2193 "Define a struct type. 2193 "Define a struct type.
2194This macro defines a new Lisp data type called NAME, which contains data 2194This macro defines a new data type called NAME that stores data
2195stored in SLOTs. This defines a `make-NAME' constructor, a `copy-NAME' 2195in SLOTs. It defines a `make-NAME' constructor, a `copy-NAME'
2196copier, a `NAME-p' predicate, and setf-able `NAME-SLOT' accessors. 2196copier, a `NAME-p' predicate, and slot accessors named `NAME-SLOT'.
2197You can use the accessors to set the corresponding slots, via `setf'.
2197 2198
2198\(fn (NAME OPTIONS...) (SLOT SLOT-OPTS...)...)" 2199NAME may instead take the form (NAME OPTIONS...), where each
2200OPTION is either a single keyword or (KEYWORD VALUE).
2201See Info node `(cl)Structures' for a list of valid keywords.
2202
2203Each SLOT may instead take the form (SLOT SLOT-OPTS...), where
2204SLOT-OPTS are keyword-value pairs for that slot. Currently, only
2205one keyword is supported, `:read-only'. If this has a non-nil
2206value, that slot cannot be set via `setf'.
2207
2208\(fn NAME SLOTS...)"
2199 (let* ((name (if (consp struct) (car struct) struct)) 2209 (let* ((name (if (consp struct) (car struct) struct))
2200 (opts (cdr-safe struct)) 2210 (opts (cdr-safe struct))
2201 (slots nil) 2211 (slots nil)
diff --git a/lisp/emulation/edt.el b/lisp/emulation/edt.el
index 40c7d887c29..2abde59af90 100644
--- a/lisp/emulation/edt.el
+++ b/lisp/emulation/edt.el
@@ -2107,7 +2107,7 @@ created."
2107 (setq edt-term "pc") 2107 (setq edt-term "pc")
2108 (if (or (not edt-window-system) (eq edt-window-system 'tty)) 2108 (if (or (not edt-window-system) (eq edt-window-system 'tty))
2109 (setq edt-term (getenv "TERM")))) 2109 (setq edt-term (getenv "TERM"))))
2110 ;; Look for for terminal configuration file for this terminal type. 2110 ;; Look for a terminal configuration file for this terminal type.
2111 ;; Otherwise, load the user's custom configuration file. 2111 ;; Otherwise, load the user's custom configuration file.
2112 (if (or (not edt-window-system) (memq edt-window-system '(pc tty))) 2112 (if (or (not edt-window-system) (memq edt-window-system '(pc tty)))
2113 (progn 2113 (progn
diff --git a/lisp/files.el b/lisp/files.el
index b665bd25343..99e818643d0 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -1289,7 +1289,7 @@ BODY should use the minibuffer at most once.
1289Recursive uses of the minibuffer are unaffected (FUN is not 1289Recursive uses of the minibuffer are unaffected (FUN is not
1290called additional times). 1290called additional times).
1291 1291
1292This macro actually adds an auxilliary function that calls FUN, 1292This macro actually adds an auxiliary function that calls FUN,
1293rather than FUN itself, to `minibuffer-setup-hook'." 1293rather than FUN itself, to `minibuffer-setup-hook'."
1294 (declare (indent 1) (debug t)) 1294 (declare (indent 1) (debug t))
1295 (let ((hook (make-symbol "setup-hook"))) 1295 (let ((hook (make-symbol "setup-hook")))
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 8e7ae005762..1c1c62bb1b0 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,17 @@
12010-01-17 Chong Yidong <cyd@stupidchicken.com>
2
3 * message.el (message-mail): Just pass yank-action on to message-setup.
4 (message-setup): Handle (FUN . ARGS) form of yank-action.
5 (message-with-reply-buffer, message-widen-reply)
6 (message-yank-original): Handle non-buffer values of
7 message-reply-buffer (Bug#4080).
8 (message-setup-1): Prefer to save message-reply-buffer as a buffer.
9
102010-01-17 Juanma Barranquero <lekktu@gmail.com>
11
12 * nnmairix.el (nnmairix-group-delete-recreate-this-group):
13 Fix typo in docstring.
14
12010-01-08 Jason Rumney <jasonr@gnu.org> 152010-01-08 Jason Rumney <jasonr@gnu.org>
2 16
3 * sieve-manage.el (sieve-manage-parse-capability-1): Loosely match OK 17 * sieve-manage.el (sieve-manage-parse-capability-1): Loosely match OK
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index c0886c2051c..7194813422a 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -1139,6 +1139,8 @@ If stringp, use this; if non-nil, use no host name (user name only)."
1139 (string :tag "name") 1139 (string :tag "name")
1140 (sexp :tag "none" :format "%t" t))) 1140 (sexp :tag "none" :format "%t" t)))
1141 1141
1142;; This can be the name of a buffer, or a cons cell (FUNCTION . ARGS)
1143;; for yanking the original buffer.
1142(defvar message-reply-buffer nil) 1144(defvar message-reply-buffer nil)
1143(defvar message-reply-headers nil 1145(defvar message-reply-headers nil
1144 "The headers of the current replied article. 1146 "The headers of the current replied article.
@@ -1997,7 +1999,7 @@ see `message-narrow-to-headers-or-head'."
1997 1999
1998(defmacro message-with-reply-buffer (&rest forms) 2000(defmacro message-with-reply-buffer (&rest forms)
1999 "Evaluate FORMS in the reply buffer, if it exists." 2001 "Evaluate FORMS in the reply buffer, if it exists."
2000 `(when (and message-reply-buffer 2002 `(when (and (bufferp message-reply-buffer)
2001 (buffer-name message-reply-buffer)) 2003 (buffer-name message-reply-buffer))
2002 (with-current-buffer message-reply-buffer 2004 (with-current-buffer message-reply-buffer
2003 ,@forms))) 2005 ,@forms)))
@@ -3179,7 +3181,7 @@ or in the synonym headers, defined by `message-header-synonyms'."
3179 "Widen the reply to include maximum recipients." 3181 "Widen the reply to include maximum recipients."
3180 (interactive) 3182 (interactive)
3181 (let ((follow-to 3183 (let ((follow-to
3182 (and message-reply-buffer 3184 (and (bufferp message-reply-buffer)
3183 (buffer-name message-reply-buffer) 3185 (buffer-name message-reply-buffer)
3184 (with-current-buffer message-reply-buffer 3186 (with-current-buffer message-reply-buffer
3185 (message-get-reply-headers t))))) 3187 (message-get-reply-headers t)))))
@@ -3674,9 +3676,16 @@ Really top post? ")))
3674 (point-max))) 3676 (point-max)))
3675 (delete-region (message-goto-body) (point-max))) 3677 (delete-region (message-goto-body) (point-max)))
3676 (set (make-local-variable 'message-cite-reply-above) nil))) 3678 (set (make-local-variable 'message-cite-reply-above) nil)))
3677 (delete-windows-on message-reply-buffer t) 3679 (if (bufferp message-reply-buffer)
3680 (delete-windows-on message-reply-buffer t))
3678 (push-mark (save-excursion 3681 (push-mark (save-excursion
3679 (insert-buffer-substring message-reply-buffer) 3682 (cond
3683 ((bufferp message-reply-buffer)
3684 (insert-buffer-substring message-reply-buffer))
3685 ((and (consp message-reply-buffer)
3686 (functionp (car message-reply-buffer)))
3687 (apply (car message-reply-buffer)
3688 (cdr message-reply-buffer))))
3680 (unless (bolp) 3689 (unless (bolp)
3681 (insert ?\n)) 3690 (insert ?\n))
3682 (point))) 3691 (point)))
@@ -6251,14 +6260,14 @@ between beginning of field and beginning of line."
6251 nil 6260 nil
6252 mua))) 6261 mua)))
6253 6262
6254(defun message-setup (headers &optional replybuffer actions 6263;; YANK-ACTION, if non-nil, can be a buffer or a yank action of the
6264;; form (FUNCTION . ARGS).
6265(defun message-setup (headers &optional yank-action actions
6255 continue switch-function) 6266 continue switch-function)
6256 (let ((mua (message-mail-user-agent)) 6267 (let ((mua (message-mail-user-agent))
6257 subject to field yank-action) 6268 subject to field)
6258 (if (not (and message-this-is-mail mua)) 6269 (if (not (and message-this-is-mail mua))
6259 (message-setup-1 headers replybuffer actions) 6270 (message-setup-1 headers yank-action actions)
6260 (if replybuffer
6261 (setq yank-action (list 'insert-buffer replybuffer)))
6262 (setq headers (copy-sequence headers)) 6271 (setq headers (copy-sequence headers))
6263 (setq field (assq 'Subject headers)) 6272 (setq field (assq 'Subject headers))
6264 (when field 6273 (when field
@@ -6275,7 +6284,11 @@ between beginning of field and beginning of line."
6275 (format "%s" (car item)) 6284 (format "%s" (car item))
6276 (cdr item))) 6285 (cdr item)))
6277 headers) 6286 headers)
6278 continue switch-function yank-action actions))))) 6287 continue switch-function
6288 (if (bufferp yank-action)
6289 (list 'insert-buffer yank-action)
6290 yank-action)
6291 actions)))))
6279 6292
6280(defun message-headers-to-generate (headers included-headers excluded-headers) 6293(defun message-headers-to-generate (headers included-headers excluded-headers)
6281 "Return a list that includes all headers from HEADERS. 6294 "Return a list that includes all headers from HEADERS.
@@ -6302,12 +6315,16 @@ are not included."
6302 (push header result))) 6315 (push header result)))
6303 (nreverse result))) 6316 (nreverse result)))
6304 6317
6305(defun message-setup-1 (headers &optional replybuffer actions) 6318(defun message-setup-1 (headers &optional yank-action actions)
6306 (dolist (action actions) 6319 (dolist (action actions)
6307 (condition-case nil 6320 (condition-case nil
6308 (add-to-list 'message-send-actions 6321 (add-to-list 'message-send-actions
6309 `(apply ',(car action) ',(cdr action))))) 6322 `(apply ',(car action) ',(cdr action)))))
6310 (setq message-reply-buffer replybuffer) 6323 (setq message-reply-buffer
6324 (if (and (consp yank-action)
6325 (eq (car yank-action) 'insert-buffer))
6326 (nth 1 yank-action)
6327 yank-action))
6311 (goto-char (point-min)) 6328 (goto-char (point-min))
6312 ;; Insert all the headers. 6329 ;; Insert all the headers.
6313 (mail-header-format 6330 (mail-header-format
@@ -6438,7 +6455,7 @@ OTHER-HEADERS is an alist of header/value pairs. CONTINUE says whether
6438to continue editing a message already being composed. SWITCH-FUNCTION 6455to continue editing a message already being composed. SWITCH-FUNCTION
6439is a function used to switch to and display the mail buffer." 6456is a function used to switch to and display the mail buffer."
6440 (interactive) 6457 (interactive)
6441 (let ((message-this-is-mail t) replybuffer) 6458 (let ((message-this-is-mail t))
6442 (unless (message-mail-user-agent) 6459 (unless (message-mail-user-agent)
6443 (message-pop-to-buffer 6460 (message-pop-to-buffer
6444 ;; Search for the existing message buffer if `continue' is non-nil. 6461 ;; Search for the existing message buffer if `continue' is non-nil.
@@ -6449,15 +6466,11 @@ is a function used to switch to and display the mail buffer."
6449 message-generate-new-buffers))) 6466 message-generate-new-buffers)))
6450 (message-buffer-name "mail" to)) 6467 (message-buffer-name "mail" to))
6451 switch-function)) 6468 switch-function))
6452 ;; FIXME: message-mail should do something if YANK-ACTION is not
6453 ;; insert-buffer.
6454 (and (consp yank-action) (eq (car yank-action) 'insert-buffer)
6455 (setq replybuffer (nth 1 yank-action)))
6456 (message-setup 6469 (message-setup
6457 (nconc 6470 (nconc
6458 `((To . ,(or to "")) (Subject . ,(or subject ""))) 6471 `((To . ,(or to "")) (Subject . ,(or subject "")))
6459 (when other-headers other-headers)) 6472 (when other-headers other-headers))
6460 replybuffer send-actions continue switch-function) 6473 yank-action send-actions continue switch-function)
6461 ;; FIXME: Should return nil if failure. 6474 ;; FIXME: Should return nil if failure.
6462 t)) 6475 t))
6463 6476
diff --git a/lisp/gnus/nnmairix.el b/lisp/gnus/nnmairix.el
index 215b6d6072a..e39149b996c 100644
--- a/lisp/gnus/nnmairix.el
+++ b/lisp/gnus/nnmairix.el
@@ -1104,7 +1104,7 @@ with `nnmairix-mairix-update-options'."
1104 1104
1105(defun nnmairix-group-delete-recreate-this-group () 1105(defun nnmairix-group-delete-recreate-this-group ()
1106 "Deletes and recreates group on the back end. 1106 "Deletes and recreates group on the back end.
1107You can use this function on nnmairix groups which continously 1107You can use this function on nnmairix groups which continuously
1108show wrong article counts." 1108show wrong article counts."
1109 (interactive) 1109 (interactive)
1110 (let* ((group (gnus-group-group-name)) 1110 (let* ((group (gnus-group-group-name))
diff --git a/lisp/mail/sendmail.el b/lisp/mail/sendmail.el
index 7004133f584..da8fe85da82 100644
--- a/lisp/mail/sendmail.el
+++ b/lisp/mail/sendmail.el
@@ -1505,14 +1505,18 @@ and don't delete any header fields."
1505 (interactive "P") 1505 (interactive "P")
1506 (if mail-reply-action 1506 (if mail-reply-action
1507 (let ((start (point)) 1507 (let ((start (point))
1508 (original mail-reply-action)) 1508 (original mail-reply-action)
1509 (omark (mark t)))
1509 (and (consp original) (eq (car original) 'insert-buffer) 1510 (and (consp original) (eq (car original) 'insert-buffer)
1510 (setq original (nth 1 original))) 1511 (setq original (nth 1 original)))
1511 (if (consp original) 1512 (if (consp original)
1512 (apply (car original) (cdr original)) 1513 (progn
1513 ;; If the original message is in another window in the same frame, 1514 ;; Call yank function, and set the mark if it doesn't.
1514 ;; delete that window to save screen space. 1515 (apply (car original) (cdr original))
1515 ;; t means don't alter other frames. 1516 (if (eq omark (mark t))
1517 (push-mark (point))))
1518 ;; If the original message is in another window in the same
1519 ;; frame, delete that window to save space.
1516 (delete-windows-on original t) 1520 (delete-windows-on original t)
1517 (with-no-warnings 1521 (with-no-warnings
1518 ;; We really want this to set mark. 1522 ;; We really want this to set mark.
diff --git a/lisp/nxml/nxml-mode.el b/lisp/nxml/nxml-mode.el
index 9fefd304b44..8bcde7a3a22 100644
--- a/lisp/nxml/nxml-mode.el
+++ b/lisp/nxml/nxml-mode.el
@@ -882,16 +882,17 @@ Called with `font-lock-beg' and `font-lock-end' dynamically bound."
882(defun nxml-extend-after-change-region (start end pre-change-length) 882(defun nxml-extend-after-change-region (start end pre-change-length)
883 (unless nxml-degraded 883 (unless nxml-degraded
884 (setq nxml-last-fontify-end nil) 884 (setq nxml-last-fontify-end nil)
885 885 (let ((region (nxml-with-degradation-on-error
886 (nxml-with-degradation-on-error 'nxml-extend-after-change-region 886 'nxml-extend-after-change-region
887 (save-excursion 887 (save-excursion
888 (save-restriction 888 (save-restriction
889 (widen) 889 (widen)
890 (save-match-data 890 (save-match-data
891 (nxml-with-invisible-motion 891 (nxml-with-invisible-motion
892 (nxml-with-unmodifying-text-property-changes 892 (nxml-with-unmodifying-text-property-changes
893 (nxml-extend-after-change-region1 893 (nxml-extend-after-change-region1
894 start end pre-change-length))))))))) 894 start end pre-change-length)))))))))
895 (if (consp region) region))))
895 896
896(defun nxml-extend-after-change-region1 (start end pre-change-length) 897(defun nxml-extend-after-change-region1 (start end pre-change-length)
897 (let* ((region (nxml-after-change1 start end pre-change-length)) 898 (let* ((region (nxml-after-change1 start end pre-change-length))
diff --git a/lisp/pcmpl-unix.el b/lisp/pcmpl-unix.el
index 546d4a2591d..9282fe87b5a 100644
--- a/lisp/pcmpl-unix.el
+++ b/lisp/pcmpl-unix.el
@@ -85,7 +85,10 @@ with the SSH option \"HashKnownHosts no\"."
85 (while (pcomplete-here (funcall pcomplete-command-completion-function)))) 85 (while (pcomplete-here (funcall pcomplete-command-completion-function))))
86 86
87(defun pcmpl-unix-read-passwd-file (file) 87(defun pcmpl-unix-read-passwd-file (file)
88 "Return an alist correlating gids to group names in FILE." 88 "Return an alist correlating gids to group names in FILE.
89
90If FILE is in hashed format (as described in the OpenSSH
91documentation), this function returns nil."
89 (let (names) 92 (let (names)
90 (when (file-readable-p file) 93 (when (file-readable-p file)
91 (with-temp-buffer 94 (with-temp-buffer
diff --git a/lisp/progmodes/ada-mode.el b/lisp/progmodes/ada-mode.el
index 2b94fdb25ff..03fec1beb77 100644
--- a/lisp/progmodes/ada-mode.el
+++ b/lisp/progmodes/ada-mode.el
@@ -590,8 +590,25 @@ This variable defines several rules to use to align different lines.")
590;; FIXME: make this customizable 590;; FIXME: make this customizable
591 591
592(defconst ada-ident-re 592(defconst ada-ident-re
593 "\\(\\sw\\|[_.]\\)+" 593 "[[:alpha:]]\\(?:[_[:alnum:]]\\)*"
594 "Regexp matching Ada (qualified) identifiers.") 594 ;; [:alnum:] matches any multibyte word constituent, as well as
595 ;; Latin-1 letters and numbers. This allows __ and trailing _;
596 ;; someone (emacs bug#1919) proposed [^\W_] to fix that, but \W does
597 ;; _not_ mean "not word constituent" inside a character alternative.
598 "Regexp matching an Ada identifier.")
599
600(defconst ada-goto-label-re
601 (concat "<<" ada-ident-re ">>")
602 "Regexp matching a goto label.")
603
604(defconst ada-block-label-re
605 (concat ada-ident-re "[ \t\n]*:[^=]")
606 "Regexp matching a block label.
607Note that this also matches a variable declaration.")
608
609(defconst ada-label-re
610 (concat "\\(?:" ada-block-label-re "\\)\\|\\(?:" ada-goto-label-re "\\)")
611 "Regexp matching a goto or block label.")
595 612
596;; "with" needs to be included in the regexp, to match generic subprogram parameters 613;; "with" needs to be included in the regexp, to match generic subprogram parameters
597;; Similarly, we put '[not] overriding' on the same line with 'procedure' etc. 614;; Similarly, we put '[not] overriding' on the same line with 'procedure' etc.
@@ -678,10 +695,6 @@ A new statement starts after these.")
678 "protected" "task") t) "\\>")) 695 "protected" "task") t) "\\>"))
679 "Regexp for the start of a subprogram.") 696 "Regexp for the start of a subprogram.")
680 697
681(defvar ada-named-block-re
682 "[ \t]*\\(\\sw\\|_\\)+[ \t]*:[^=]"
683 "Regexp of the name of a block or loop.")
684
685(defvar ada-contextual-menu-on-identifier nil 698(defvar ada-contextual-menu-on-identifier nil
686 "Set to true when the right mouse button was clicked on an identifier.") 699 "Set to true when the right mouse button was clicked on an identifier.")
687 700
@@ -2108,10 +2121,18 @@ Return the equivalent internal parameter list."
2108 2121
2109(defun ada-indent-newline-indent-conditional () 2122(defun ada-indent-newline-indent-conditional ()
2110 "Insert a newline and indent it. 2123 "Insert a newline and indent it.
2111The original line is indented first if `ada-indent-after-return' is non-nil." 2124The original line is re-indented if `ada-indent-after-return' is non-nil."
2112 (interactive "*") 2125 (interactive "*")
2113 (if ada-indent-after-return (ada-indent-current)) 2126 ;; If at end of buffer (entering brand new code), some indentation
2127 ;; fails. For example, a block label requires whitespace following
2128 ;; the : to be recognized. So we do the newline first, then
2129 ;; go back and indent the original line.
2114 (newline) 2130 (newline)
2131 (if ada-indent-after-return
2132 (progn
2133 (forward-char -1)
2134 (ada-indent-current)
2135 (forward-char 1)))
2115 (ada-indent-current)) 2136 (ada-indent-current))
2116 2137
2117(defun ada-justified-indent-current () 2138(defun ada-justified-indent-current ()
@@ -2335,8 +2356,8 @@ and the offset."
2335 (progn 2356 (progn
2336 (goto-char (car match-cons)) 2357 (goto-char (car match-cons))
2337 (save-excursion 2358 (save-excursion
2338 (beginning-of-line) 2359 (back-to-indentation)
2339 (if (looking-at ada-named-block-re) 2360 (if (looking-at ada-block-label-re)
2340 (setq label (- ada-label-indent)))))))) 2361 (setq label (- ada-label-indent))))))))
2341 2362
2342 ;; found 'record' => 2363 ;; found 'record' =>
@@ -2648,8 +2669,9 @@ and the offset."
2648 ;; label 2669 ;; label
2649 ;;--------------------------------- 2670 ;;---------------------------------
2650 2671
2651 ((looking-at "\\(\\sw\\|_\\)+[ \t\n]*:[^=]") 2672 ((looking-at ada-label-re)
2652 (if (ada-in-decl-p) 2673 (if (ada-in-decl-p)
2674 ;; ada-block-label-re matches variable declarations
2653 (ada-indent-on-previous-lines nil orgpoint orgpoint) 2675 (ada-indent-on-previous-lines nil orgpoint orgpoint)
2654 (append (ada-indent-on-previous-lines nil orgpoint orgpoint) 2676 (append (ada-indent-on-previous-lines nil orgpoint orgpoint)
2655 '(ada-label-indent)))) 2677 '(ada-label-indent))))
@@ -2674,9 +2696,10 @@ if INITIAL-POS is non-nil, moves point to INITIAL-POS before calculation."
2674 (if (ada-in-paramlist-p) 2696 (if (ada-in-paramlist-p)
2675 (ada-get-indent-paramlist) 2697 (ada-get-indent-paramlist)
2676 2698
2677 ;; move to beginning of current statement 2699 ;; Move to beginning of current statement. If already at a
2700 ;; statement start, move to beginning of enclosing statement.
2678 (unless nomove 2701 (unless nomove
2679 (ada-goto-stmt-start)) 2702 (ada-goto-stmt-start t))
2680 2703
2681 ;; no beginning found => don't change indentation 2704 ;; no beginning found => don't change indentation
2682 (if (and (eq oldpoint (point)) 2705 (if (and (eq oldpoint (point))
@@ -2702,6 +2725,12 @@ if INITIAL-POS is non-nil, moves point to INITIAL-POS before calculation."
2702 ((looking-at ada-block-start-re) 2725 ((looking-at ada-block-start-re)
2703 (ada-get-indent-block-start orgpoint)) 2726 (ada-get-indent-block-start orgpoint))
2704 ;; 2727 ;;
2728 ((looking-at ada-block-label-re) ; also variable declaration
2729 (ada-get-indent-block-label orgpoint))
2730 ;;
2731 ((looking-at ada-goto-label-re)
2732 (ada-get-indent-goto-label orgpoint))
2733 ;;
2705 ((looking-at "\\(sub\\)?type\\>") 2734 ((looking-at "\\(sub\\)?type\\>")
2706 (ada-get-indent-type orgpoint)) 2735 (ada-get-indent-type orgpoint))
2707 ;; 2736 ;;
@@ -2717,17 +2746,8 @@ if INITIAL-POS is non-nil, moves point to INITIAL-POS before calculation."
2717 ((looking-at "when\\>") 2746 ((looking-at "when\\>")
2718 (ada-get-indent-when orgpoint)) 2747 (ada-get-indent-when orgpoint))
2719 ;; 2748 ;;
2720 ((looking-at "\\(\\sw\\|_\\)+[ \t\n]*:[^=]")
2721 (ada-get-indent-label orgpoint))
2722 ;;
2723 ((looking-at "separate\\>") 2749 ((looking-at "separate\\>")
2724 (ada-get-indent-nochange)) 2750 (ada-get-indent-nochange))
2725
2726 ;; A label
2727 ((looking-at "<<")
2728 (list (+ (save-excursion (back-to-indentation) (point))
2729 (- ada-label-indent))))
2730
2731 ;; 2751 ;;
2732 ((looking-at "with\\>\\|use\\>") 2752 ((looking-at "with\\>\\|use\\>")
2733 ;; Are we still in that statement, or are we in fact looking at 2753 ;; Are we still in that statement, or are we in fact looking at
@@ -2960,6 +2980,10 @@ ORGPOINT is the limit position used in the calculation."
2960 (car (ada-search-ignore-string-comment "\\<type\\>" t))) 2980 (car (ada-search-ignore-string-comment "\\<type\\>" t)))
2961 'ada-indent))) 2981 'ada-indent)))
2962 2982
2983 ;; Special case for label:
2984 ((looking-at ada-block-label-re)
2985 (list (- (save-excursion (back-to-indentation) (point)) ada-label-indent) 'ada-indent))
2986
2963 ;; nothing follows the block-start 2987 ;; nothing follows the block-start
2964 (t 2988 (t
2965 (list (save-excursion (back-to-indentation) (point)) 'ada-indent))))) 2989 (list (save-excursion (back-to-indentation) (point)) 'ada-indent)))))
@@ -3055,10 +3079,10 @@ ORGPOINT is the limit position used in the calculation."
3055 (list (save-excursion (back-to-indentation) (point)) 3079 (list (save-excursion (back-to-indentation) (point))
3056 'ada-broken-decl-indent)) 3080 'ada-broken-decl-indent))
3057 3081
3058 ;; This one is called in every over case when indenting a line at the 3082 ;; This one is called in every other case when indenting a line at the
3059 ;; top level 3083 ;; top level
3060 (t 3084 (t
3061 (if (looking-at ada-named-block-re) 3085 (if (looking-at (concat "[ \t]*" ada-block-label-re))
3062 (setq label (- ada-label-indent)) 3086 (setq label (- ada-label-indent))
3063 3087
3064 (let (p) 3088 (let (p)
@@ -3087,7 +3111,7 @@ ORGPOINT is the limit position used in the calculation."
3087 (list (+ (save-excursion (back-to-indentation) (point)) label) 3111 (list (+ (save-excursion (back-to-indentation) (point)) label)
3088 'ada-broken-indent))))))) 3112 'ada-broken-indent)))))))
3089 3113
3090(defun ada-get-indent-label (orgpoint) 3114(defun ada-get-indent-block-label (orgpoint)
3091 "Calculate the indentation when before a label or variable declaration. 3115 "Calculate the indentation when before a label or variable declaration.
3092ORGPOINT is the limit position used in the calculation." 3116ORGPOINT is the limit position used in the calculation."
3093 (let ((match-cons nil) 3117 (let ((match-cons nil)
@@ -3119,6 +3143,16 @@ ORGPOINT is the limit position used in the calculation."
3119 (t 3143 (t
3120 (list cur-indent '(- ada-label-indent)))))) 3144 (list cur-indent '(- ada-label-indent))))))
3121 3145
3146(defun ada-get-indent-goto-label (orgpoint)
3147 "Calculate the indentation when at a goto label."
3148 (search-forward ">>")
3149 (ada-goto-next-non-ws)
3150 (if (>= (point) orgpoint)
3151 ;; labeled statement is the one we need to indent
3152 (list (- (point) ada-label-indent))
3153 ;; else indentation is indent for labeled statement
3154 (ada-indent-on-previous-lines t orgpoint)))
3155
3122(defun ada-get-indent-loop (orgpoint) 3156(defun ada-get-indent-loop (orgpoint)
3123 "Calculate the indentation when just before a loop or a for ... use. 3157 "Calculate the indentation when just before a loop or a for ... use.
3124ORGPOINT is the limit position used in the calculation." 3158ORGPOINT is the limit position used in the calculation."
@@ -3127,8 +3161,8 @@ ORGPOINT is the limit position used in the calculation."
3127 3161
3128 ;; If looking at a named block, skip the label 3162 ;; If looking at a named block, skip the label
3129 (label (save-excursion 3163 (label (save-excursion
3130 (beginning-of-line) 3164 (back-to-indentation)
3131 (if (looking-at ada-named-block-re) 3165 (if (looking-at ada-block-label-re)
3132 (- ada-label-indent) 3166 (- ada-label-indent)
3133 0)))) 3167 0))))
3134 3168
@@ -3286,7 +3320,7 @@ ORGPOINT is the limit position used in the calculation."
3286;; -- searching and matching 3320;; -- searching and matching
3287;; ----------------------------------------------------------- 3321;; -----------------------------------------------------------
3288 3322
3289(defun ada-goto-stmt-start () 3323(defun ada-goto-stmt-start (&optional ignore-goto-label)
3290 "Move point to the beginning of the statement that point is in or after. 3324 "Move point to the beginning of the statement that point is in or after.
3291Return the new position of point. 3325Return the new position of point.
3292As a special case, if we are looking at a closing parenthesis, skip to the 3326As a special case, if we are looking at a closing parenthesis, skip to the
@@ -3304,7 +3338,7 @@ open parenthesis."
3304 (progn 3338 (progn
3305 (unless (save-excursion 3339 (unless (save-excursion
3306 (goto-char (cdr match-dat)) 3340 (goto-char (cdr match-dat))
3307 (ada-goto-next-non-ws orgpoint)) 3341 (ada-goto-next-non-ws orgpoint ignore-goto-label))
3308 ;; 3342 ;;
3309 ;; nothing follows => it's the end-statement directly in 3343 ;; nothing follows => it's the end-statement directly in
3310 ;; front of point => search again 3344 ;; front of point => search again
@@ -3326,7 +3360,7 @@ open parenthesis."
3326 (goto-char (point-min)) 3360 (goto-char (point-min))
3327 ;; 3361 ;;
3328 ;; skip to the very first statement, if there is one 3362 ;; skip to the very first statement, if there is one
3329 ;; 3363 ;;
3330 (unless (ada-goto-next-non-ws orgpoint) 3364 (unless (ada-goto-next-non-ws orgpoint)
3331 (goto-char orgpoint)))) 3365 (goto-char orgpoint))))
3332 (point))) 3366 (point)))
@@ -3388,18 +3422,25 @@ is the end of the match."
3388 nil))) 3422 nil)))
3389 3423
3390 3424
3391(defun ada-goto-next-non-ws (&optional limit) 3425(defun ada-goto-next-non-ws (&optional limit skip-goto-label)
3392 "Skip white spaces, newlines and comments to next non-ws character. 3426 "Skip to next non-whitespace character.
3427Skips spaces, newlines and comments, and possibly goto labels.
3428Return `point' if moved, nil if not.
3393Stop the search at LIMIT. 3429Stop the search at LIMIT.
3394Do not call this function from within a string." 3430Do not call this function from within a string."
3395 (unless limit 3431 (unless limit
3396 (setq limit (point-max))) 3432 (setq limit (point-max)))
3397 (while (and (<= (point) limit) 3433 (while (and (<= (point) limit)
3398 (progn (forward-comment 10000) 3434 (or (progn (forward-comment 10000)
3399 (if (and (not (eobp)) 3435 (if (and (not (eobp))
3400 (save-excursion (forward-char 1) 3436 (save-excursion (forward-char 1)
3401 (ada-in-string-p))) 3437 (ada-in-string-p)))
3402 (progn (forward-sexp 1) t))))) 3438 (progn (forward-sexp 1) t)))
3439 (and skip-goto-label
3440 (looking-at ada-goto-label-re)
3441 (progn
3442 (goto-char (match-end 0))
3443 t)))))
3403 (if (< (point) limit) 3444 (if (< (point) limit)
3404 (point) 3445 (point)
3405 nil) 3446 nil)
@@ -3426,9 +3467,7 @@ Return the new position of point or nil if not found."
3426 (unless backward 3467 (unless backward
3427 (skip-syntax-forward "w")) 3468 (skip-syntax-forward "w"))
3428 (if (setq match-cons 3469 (if (setq match-cons
3429 (if backward 3470 (ada-search-ignore-string-comment "\\w" backward nil t))
3430 (ada-search-ignore-string-comment "\\w" t nil t)
3431 (ada-search-ignore-string-comment "\\w" nil nil t)))
3432 ;; 3471 ;;
3433 ;; move to the beginning of the word found 3472 ;; move to the beginning of the word found
3434 ;; 3473 ;;
diff --git a/lisp/startup.el b/lisp/startup.el
index 9de08852ae2..857ad97e448 100644
--- a/lisp/startup.el
+++ b/lisp/startup.el
@@ -758,7 +758,8 @@ opening the first frame (e.g. open a connection to an X server).")
758 (pop args))) 758 (pop args)))
759 759
760 (let ((done nil) 760 (let ((done nil)
761 (args (cdr command-line-args))) 761 (args (cdr command-line-args))
762 display-arg)
762 763
763 ;; Figure out which user's init file to load, 764 ;; Figure out which user's init file to load,
764 ;; either from the environment or from the options. 765 ;; either from the environment or from the options.
@@ -794,6 +795,11 @@ opening the first frame (e.g. open a connection to an X server).")
794 (setq argval nil 795 (setq argval nil
795 argi orig-argi))))) 796 argi orig-argi)))))
796 (cond 797 (cond
798 ;; The --display arg is handled partly in C, partly in Lisp.
799 ;; When it shows up here, we just put it back to be handled
800 ;; by `command-line-1'.
801 ((member argi '("-d" "-display"))
802 (setq display-arg (list argi (pop args))))
797 ((member argi '("-Q" "-quick")) 803 ((member argi '("-Q" "-quick"))
798 (setq init-file-user nil 804 (setq init-file-user nil
799 site-run-file nil 805 site-run-file nil
@@ -813,8 +819,6 @@ opening the first frame (e.g. open a connection to an X server).")
813 (setq init-file-debug t)) 819 (setq init-file-debug t))
814 ((equal argi "-iconic") 820 ((equal argi "-iconic")
815 (push '(visibility . icon) initial-frame-alist)) 821 (push '(visibility . icon) initial-frame-alist))
816 ((member argi '("-icon-type" "-i" "-itype"))
817 (push '(icon-type . t) default-frame-alist))
818 ((member argi '("-nbc" "-no-blinking-cursor")) 822 ((member argi '("-nbc" "-no-blinking-cursor"))
819 (setq no-blinking-cursor t)) 823 (setq no-blinking-cursor t))
820 ;; Push the popped arg back on the list of arguments. 824 ;; Push the popped arg back on the list of arguments.
@@ -825,6 +829,9 @@ opening the first frame (e.g. open a connection to an X server).")
825 (and argval 829 (and argval
826 (error "Option `%s' doesn't allow an argument" argi)))) 830 (error "Option `%s' doesn't allow an argument" argi))))
827 831
832 ;; Re-attach the --display arg.
833 (and display-arg (setq args (append display-arg args)))
834
828 ;; Re-attach the program name to the front of the arg list. 835 ;; Re-attach the program name to the front of the arg list.
829 (and command-line-args 836 (and command-line-args
830 (setcdr command-line-args args))) 837 (setcdr command-line-args args)))
diff --git a/lisp/textmodes/artist.el b/lisp/textmodes/artist.el
index 00896be3c6e..66d831968d1 100644
--- a/lisp/textmodes/artist.el
+++ b/lisp/textmodes/artist.el
@@ -870,7 +870,7 @@ EXIT-FN is, if non-nil, a function that is called after filling
870 is done. Arguments and return values for this funcion are 870 is done. Arguments and return values for this funcion are
871 described below. 871 described below.
872DRAW-HOW defines the kind of shape. The kinds of shapes are: 872DRAW-HOW defines the kind of shape. The kinds of shapes are:
873 `artist-do-continously' -- Do drawing operation continously, 873 `artist-do-continously' -- Do drawing operation continuously,
874 as long as the mouse button is held down. 874 as long as the mouse button is held down.
875 `artist-do-poly' -- Do drawing operation many times. 875 `artist-do-poly' -- Do drawing operation many times.
876 1 -- Do drawing operation only once. 876 1 -- Do drawing operation only once.
@@ -1477,7 +1477,7 @@ Keymap summary
1477; 1477;
1478 1478
1479(defun artist-compute-popup-menu-table (menu-table) 1479(defun artist-compute-popup-menu-table (menu-table)
1480 "Create a menu from from MENU-TABLE data. 1480 "Create a menu from MENU-TABLE data.
1481The returned value is suitable for the `x-popup-menu' function." 1481The returned value is suitable for the `x-popup-menu' function."
1482 (cons "Artist menu" 1482 (cons "Artist menu"
1483 (artist-compute-popup-menu-table-sub menu-table))) 1483 (artist-compute-popup-menu-table-sub menu-table)))
@@ -3879,8 +3879,8 @@ The 2-point shape SHAPE is drawn from X1, Y1 to X2, Y2."
3879;; 3879;;
3880 3880
3881(defun artist-key-undraw-continously (x y) 3881(defun artist-key-undraw-continously (x y)
3882 "Undraw current continous shape with point at X, Y." 3882 "Undraw current continuous shape with point at X, Y."
3883 ;; No undraw-info for continous shapes 3883 ;; No undraw-info for continuous shapes
3884 nil) 3884 nil)
3885 3885
3886(defun artist-key-undraw-poly (x y) 3886(defun artist-key-undraw-poly (x y)
@@ -3937,7 +3937,7 @@ The 2-point shape SHAPE is drawn from X1, Y1 to X2, Y2."
3937;; user has released the button, so the timer will always be cancelled 3937;; user has released the button, so the timer will always be cancelled
3938;; at that point. 3938;; at that point.
3939(defun artist-key-draw-continously (x y) 3939(defun artist-key-draw-continously (x y)
3940 "Draw current continous shape at X,Y." 3940 "Draw current continuous shape at X,Y."
3941 (let ((draw-fn (artist-go-get-draw-fn-from-symbol artist-curr-go))) 3941 (let ((draw-fn (artist-go-get-draw-fn-from-symbol artist-curr-go)))
3942 (setq artist-key-shape (artist-funcall draw-fn x y)))) 3942 (setq artist-key-shape (artist-funcall draw-fn x y))))
3943 3943
@@ -4018,7 +4018,7 @@ Trimming here means removing white space at end of a line."
4018;; 4018;;
4019 4019
4020(defun artist-key-do-continously-continously (x y) 4020(defun artist-key-do-continously-continously (x y)
4021 "Update current continous shape at X,Y." 4021 "Update current continuous shape at X,Y."
4022 (let ((draw-fn (artist-go-get-draw-fn-from-symbol artist-curr-go))) 4022 (let ((draw-fn (artist-go-get-draw-fn-from-symbol artist-curr-go)))
4023 (artist-funcall draw-fn x y))) 4023 (artist-funcall draw-fn x y)))
4024 4024
@@ -4045,7 +4045,7 @@ Trimming here means removing white space at end of a line."
4045 4045
4046(defun artist-key-do-continously-1point (x y) 4046(defun artist-key-do-continously-1point (x y)
4047 "Update current 1-point shape at X,Y." 4047 "Update current 1-point shape at X,Y."
4048 ;; Nothing to do continously for operations 4048 ;; Nothing to do continuously for operations
4049 ;; where we have only one input point 4049 ;; where we have only one input point
4050 nil) 4050 nil)
4051 4051
@@ -4094,8 +4094,8 @@ Trimming here means removing white space at end of a line."
4094 4094
4095 4095
4096(defun artist-key-set-point-continously (x y) 4096(defun artist-key-set-point-continously (x y)
4097 "Set point for current continous shape at X,Y." 4097 "Set point for current continuous shape at X,Y."
4098 ;; Maybe set arrow-points for continous shapes 4098 ;; Maybe set arrow-points for continuous shapes
4099 (let ((arrow-pred (artist-go-get-arrow-pred-from-symbol artist-curr-go)) 4099 (let ((arrow-pred (artist-go-get-arrow-pred-from-symbol artist-curr-go))
4100 (arrow-set-fn (artist-go-get-arrow-set-fn-from-symbol artist-curr-go)) 4100 (arrow-set-fn (artist-go-get-arrow-set-fn-from-symbol artist-curr-go))
4101 (init-fn (artist-go-get-init-fn-from-symbol artist-curr-go)) 4101 (init-fn (artist-go-get-init-fn-from-symbol artist-curr-go))
@@ -4914,7 +4914,7 @@ If optional argument STATE is positive, turn borders on."
4914 4914
4915(defun artist-mouse-draw-continously (ev) 4915(defun artist-mouse-draw-continously (ev)
4916 "Generic function for shapes that require 1 point as input. 4916 "Generic function for shapes that require 1 point as input.
4917Operation is done continously while the mouse button is hold down. 4917Operation is done continuously while the mouse button is hold down.
4918The event, EV, is the mouse event." 4918The event, EV, is the mouse event."
4919 (let* ((unshifted (artist-go-get-symbol-shift artist-curr-go nil)) 4919 (let* ((unshifted (artist-go-get-symbol-shift artist-curr-go nil))
4920 (shifted (artist-go-get-symbol-shift artist-curr-go t)) 4920 (shifted (artist-go-get-symbol-shift artist-curr-go t))
@@ -5395,8 +5395,8 @@ The event, EV, is the mouse event."
5395;; 1. If your new drawing mode falls into one of the following 5395;; 1. If your new drawing mode falls into one of the following
5396;; categories, goto point 2, otherwise goto point 3. 5396;; categories, goto point 2, otherwise goto point 3.
5397;; 5397;;
5398;; - Modes where the shapes are drawn continously, as long as 5398;; - Modes where the shapes are drawn continuously, as long as
5399;; the mouse button is held down (continous modes). 5399;; the mouse button is held down (continuous modes).
5400;; Example: the erase-char mode, the pen and pen-line modes. 5400;; Example: the erase-char mode, the pen and pen-line modes.
5401;; 5401;;
5402;; - Modes where the shape is made up of from 2 points to an 5402;; - Modes where the shape is made up of from 2 points to an
@@ -5408,7 +5408,7 @@ The event, EV, is the mouse event."
5408;; Example: lines, rectangles 5408;; Example: lines, rectangles
5409;; 5409;;
5410;; - Modes where the shape is made up of 1 point (1-point 5410;; - Modes where the shape is made up of 1 point (1-point
5411;; modes). This mode differs from the continous modes in 5411;; modes). This mode differs from the continuous modes in
5412;; that the shape is drawn only once when the mouse button 5412;; that the shape is drawn only once when the mouse button
5413;; is pressed. 5413;; is pressed.
5414;; Examples: paste, a flood-fill, vaporize modes 5414;; Examples: paste, a flood-fill, vaporize modes
@@ -5426,7 +5426,7 @@ The event, EV, is the mouse event."
5426;; For each of the cases below, the arguments given to the init-fn, 5426;; For each of the cases below, the arguments given to the init-fn,
5427;; prep-fill-fn, arrow-set-fn and exit-fn are stated. 5427;; prep-fill-fn, arrow-set-fn and exit-fn are stated.
5428;; 5428;;
5429;; If your mode matches the continous mode or the 1-point mode: 5429;; If your mode matches the continuous mode or the 1-point mode:
5430;; 5430;;
5431;; a. Create a draw-function that draws your shape. Your function 5431;; a. Create a draw-function that draws your shape. Your function
5432;; must take x and y as arguments. The return value is not 5432;; must take x and y as arguments. The return value is not
@@ -5538,8 +5538,8 @@ The event, EV, is the mouse event."
5538;; - artist-key-set-point-xxx for setting a point in the 5538;; - artist-key-set-point-xxx for setting a point in the
5539;; mode, to be called from `artist-key-set-point-common'. 5539;; mode, to be called from `artist-key-set-point-common'.
5540;; 5540;;
5541;; - artist-key-do-continously-xxx to be called from 5541;; - artist-key-do-continuously-xxx to be called from
5542;; `artist-key-do-continously-common' whenever the user 5542;; `artist-key-do-continuously-common' whenever the user
5543;; moves around. 5543;; moves around.
5544;; 5544;;
5545;; As for the artist-mouse-draw-xxx, these two functions must 5545;; As for the artist-mouse-draw-xxx, these two functions must
diff --git a/lisp/vc-dir.el b/lisp/vc-dir.el
index 575a64c1f80..2f661e8becf 100644
--- a/lisp/vc-dir.el
+++ b/lisp/vc-dir.el
@@ -874,7 +874,10 @@ If it is a file, return the corresponding cons for the file itself."
874 (let ((ddir default-directory)) 874 (let ((ddir default-directory))
875 (when (vc-string-prefix-p ddir file) 875 (when (vc-string-prefix-p ddir file)
876 (if (file-directory-p file) 876 (if (file-directory-p file)
877 (vc-dir-resync-directory-files file) 877 (progn
878 (vc-dir-resync-directory-files file)
879 (ewoc-set-hf vc-ewoc
880 (vc-dir-headers vc-dir-backend default-directory) ""))
878 (let ((state (vc-dir-recompute-file-state file ddir))) 881 (let ((state (vc-dir-recompute-file-state file ddir)))
879 (vc-dir-update 882 (vc-dir-update
880 (list state) 883 (list state)
diff --git a/lisp/vc-dispatcher.el b/lisp/vc-dispatcher.el
index 310cc3dc351..40223c9010d 100644
--- a/lisp/vc-dispatcher.el
+++ b/lisp/vc-dispatcher.el
@@ -320,11 +320,14 @@ case, and the process object in the asynchronous case."
320 (setq squeezed (nconc squeezed files))) 320 (setq squeezed (nconc squeezed files)))
321 (let ((exec-path (append vc-path exec-path)) 321 (let ((exec-path (append vc-path exec-path))
322 ;; Add vc-path to PATH for the execution of this command. 322 ;; Add vc-path to PATH for the execution of this command.
323 ;; Also, since some functions need to parse the output
324 ;; from external commands, set LC_MESSAGES to C.
323 (process-environment 325 (process-environment
324 (cons (concat "PATH=" (getenv "PATH") 326 (cons (concat "PATH=" (getenv "PATH")
325 path-separator 327 path-separator
326 (mapconcat 'identity vc-path path-separator)) 328 (mapconcat 'identity vc-path path-separator))
327 process-environment)) 329 (cons "LC_MESSAGES=C"
330 process-environment)))
328 (w32-quote-process-args t)) 331 (w32-quote-process-args t))
329 (if (eq okstatus 'async) 332 (if (eq okstatus 'async)
330 ;; Run asynchronously. 333 ;; Run asynchronously.
diff --git a/lisp/vc.el b/lisp/vc.el
index 3a0cf804e26..2ca36ef4e01 100644
--- a/lisp/vc.el
+++ b/lisp/vc.el
@@ -791,13 +791,23 @@ in their implementation of vc-BACKEND-diff.")
791 791
792(defmacro with-vc-properties (files form settings) 792(defmacro with-vc-properties (files form settings)
793 "Execute FORM, then maybe set per-file properties for FILES. 793 "Execute FORM, then maybe set per-file properties for FILES.
794If any of FILES is actually a directory, then do the same for all
795buffers for files in that directory.
794SETTINGS is an association list of property/value pairs. After 796SETTINGS is an association list of property/value pairs. After
795executing FORM, set those properties from SETTINGS that have not yet 797executing FORM, set those properties from SETTINGS that have not yet
796been updated to their corresponding values." 798been updated to their corresponding values."
797 (declare (debug t)) 799 (declare (debug t))
798 `(let ((vc-touched-properties (list t))) 800 `(let ((vc-touched-properties (list t))
799 ,form 801 (flist nil))
800 (dolist (file ,files) 802 (dolist (file ,files)
803 (if (file-directory-p file)
804 (dolist (buffer (buffer-list))
805 (let ((fname (buffer-file-name buffer)))
806 (when (and fname (vc-string-prefix-p file fname))
807 (push fname flist))))
808 (push file flist)))
809 ,form
810 (dolist (file flist)
801 (dolist (setting ,settings) 811 (dolist (setting ,settings)
802 (let ((property (car setting))) 812 (let ((property (car setting)))
803 (unless (memq property vc-touched-properties) 813 (unless (memq property vc-touched-properties)
diff --git a/src/ChangeLog b/src/ChangeLog
index 98489e1d71d..e1d2ba440ab 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,24 @@
12010-01-16 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * xterm.c (event_handler_gdk): Block input (Bug#5037).
4
52010-01-16 Chong Yidong <cyd@stupidchicken.com>
6
7 * emacs.c (standard_args): Adjust arg priorities to reflect how
8 they are processed in startup.el.
9
102010-01-16 Andreas Schwab <schwab@linux-m68k.org>
11
12 * Makefile.in (lisp, shortlisp): Update.
13
142010-01-16 Stefan Monnier <monnier@iro.umontreal.ca>
15
16 * xterm.c (x_term_init): Instead of inhibiting GC while running Lisp
17 code, link the new kboard into all_kboard before running Lisp code,
18 and protect the new terminal with GCPRO (Bug#5365).
19 (x_term_init): Remove unused var `atom'.
20 (x_delete_display, x_delete_terminal): Remove unused var `i'.
21
12010-01-15 Jan Djärv <jan.h.d@swipnet.se> 222010-01-15 Jan Djärv <jan.h.d@swipnet.se>
2 23
3 * xfns.c (x_get_current_desktop, x_get_desktop_workarea): New functions. 24 * xfns.c (x_get_current_desktop, x_get_desktop_workarea): New functions.
diff --git a/src/Makefile.in b/src/Makefile.in
index 1fd3a3ffe85..11facec6023 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -736,13 +736,13 @@ lisp= \
736 ${lispsource}emacs-lisp/map-ynp.elc \ 736 ${lispsource}emacs-lisp/map-ynp.elc \
737 ${lispsource}menu-bar.elc \ 737 ${lispsource}menu-bar.elc \
738 ${lispsource}international/mule.elc \ 738 ${lispsource}international/mule.elc \
739 ${lispsource}international/mule-conf.el \ 739 ${lispsource}international/mule-conf.elc \
740 ${lispsource}international/mule-cmds.elc \ 740 ${lispsource}international/mule-cmds.elc \
741 ${lispsource}international/characters.elc \ 741 ${lispsource}international/characters.elc \
742 ${lispsource}international/charprop.el \ 742 ${lispsource}international/charprop.el \
743 ${lispsource}case-table.elc \ 743 ${lispsource}case-table.elc \
744 ${lispsource}language/chinese.el \ 744 ${lispsource}language/chinese.elc \
745 ${lispsource}language/cyrillic.el \ 745 ${lispsource}language/cyrillic.elc \
746 ${lispsource}language/indian.elc \ 746 ${lispsource}language/indian.elc \
747 ${lispsource}language/sinhala.el \ 747 ${lispsource}language/sinhala.el \
748 ${lispsource}language/english.el \ 748 ${lispsource}language/english.el \
@@ -760,7 +760,7 @@ lisp= \
760 ${lispsource}language/tai-viet.el \ 760 ${lispsource}language/tai-viet.el \
761 ${lispsource}language/thai.el \ 761 ${lispsource}language/thai.el \
762 ${lispsource}language/tibetan.elc \ 762 ${lispsource}language/tibetan.elc \
763 ${lispsource}language/vietnamese.el \ 763 ${lispsource}language/vietnamese.elc \
764 ${lispsource}language/misc-lang.el \ 764 ${lispsource}language/misc-lang.el \
765 ${lispsource}language/utf-8-lang.el \ 765 ${lispsource}language/utf-8-lang.el \
766 ${lispsource}language/georgian.el \ 766 ${lispsource}language/georgian.el \
@@ -829,12 +829,12 @@ shortlisp= \
829 ../lisp/emacs-lisp/map-ynp.elc \ 829 ../lisp/emacs-lisp/map-ynp.elc \
830 ../lisp/env.elc \ 830 ../lisp/env.elc \
831 ../lisp/international/mule.elc \ 831 ../lisp/international/mule.elc \
832 ../lisp/international/mule-conf.el \ 832 ../lisp/international/mule-conf.elc \
833 ../lisp/international/mule-cmds.elc \ 833 ../lisp/international/mule-cmds.elc \
834 ../lisp/international/characters.elc \ 834 ../lisp/international/characters.elc \
835 ../lisp/case-table.elc \ 835 ../lisp/case-table.elc \
836 ../lisp/language/chinese.el \ 836 ../lisp/language/chinese.elc \
837 ../lisp/language/cyrillic.el \ 837 ../lisp/language/cyrillic.elc \
838 ../lisp/language/indian.elc \ 838 ../lisp/language/indian.elc \
839 ../lisp/language/sinhala.el \ 839 ../lisp/language/sinhala.el \
840 ../lisp/language/english.el \ 840 ../lisp/language/english.el \
@@ -852,7 +852,7 @@ shortlisp= \
852 ../lisp/language/tai-viet.el \ 852 ../lisp/language/tai-viet.el \
853 ../lisp/language/thai.el \ 853 ../lisp/language/thai.el \
854 ../lisp/language/tibetan.elc \ 854 ../lisp/language/tibetan.elc \
855 ../lisp/language/vietnamese.el \ 855 ../lisp/language/vietnamese.elc \
856 ../lisp/language/misc-lang.el \ 856 ../lisp/language/misc-lang.el \
857 ../lisp/language/utf-8-lang.el \ 857 ../lisp/language/utf-8-lang.el \
858 ../lisp/language/georgian.el \ 858 ../lisp/language/georgian.el \
diff --git a/src/atimer.h b/src/atimer.h
index 5ea1197e66d..fd354caf54d 100644
--- a/src/atimer.h
+++ b/src/atimer.h
@@ -43,7 +43,7 @@ enum atimer_type
43 /* Timer is ripe at now plus an offset. */ 43 /* Timer is ripe at now plus an offset. */
44 ATIMER_RELATIVE, 44 ATIMER_RELATIVE,
45 45
46 /* Timer runs continously. */ 46 /* Timer runs continuously. */
47 ATIMER_CONTINUOUS 47 ATIMER_CONTINUOUS
48}; 48};
49 49
diff --git a/src/emacs.c b/src/emacs.c
index 2f73e8b837a..71ffa998bfe 100644
--- a/src/emacs.c
+++ b/src/emacs.c
@@ -1869,7 +1869,7 @@ const struct standard_args standard_args[] =
1869 /* -d must come last before the options handled in startup.el. */ 1869 /* -d must come last before the options handled in startup.el. */
1870 { "-d", "--display", 60, 1 }, 1870 { "-d", "--display", 60, 1 },
1871 { "-display", 0, 60, 1 }, 1871 { "-display", 0, 60, 1 },
1872 /* Now for the options handled in startup.el. */ 1872 /* Now for the options handled in `command-line' (startup.el). */
1873 { "-Q", "--quick", 55, 0 }, 1873 { "-Q", "--quick", 55, 0 },
1874 { "-quick", 0, 55, 0 }, 1874 { "-quick", 0, 55, 0 },
1875 { "-q", "--no-init-file", 50, 0 }, 1875 { "-q", "--no-init-file", 50, 0 },
@@ -1878,10 +1878,12 @@ const struct standard_args standard_args[] =
1878 { "-u", "--user", 30, 1 }, 1878 { "-u", "--user", 30, 1 },
1879 { "-user", 0, 30, 1 }, 1879 { "-user", 0, 30, 1 },
1880 { "-debug-init", "--debug-init", 20, 0 }, 1880 { "-debug-init", "--debug-init", 20, 0 },
1881 { "-nbi", "--no-bitmap-icon", 15, 0 },
1882 { "-iconic", "--iconic", 15, 0 }, 1881 { "-iconic", "--iconic", 15, 0 },
1883 { "-D", "--basic-display", 12, 0}, 1882 { "-D", "--basic-display", 12, 0},
1884 { "-basic-display", 0, 12, 0}, 1883 { "-basic-display", 0, 12, 0},
1884 { "-nbc", "--no-blinking-cursor", 12, 0 },
1885 /* Now for the options handled in `command-line-1' (startup.el). */
1886 { "-nbi", "--no-bitmap-icon", 10, 0 },
1885 { "-bg", "--background-color", 10, 1 }, 1887 { "-bg", "--background-color", 10, 1 },
1886 { "-background", 0, 10, 1 }, 1888 { "-background", 0, 10, 1 },
1887 { "-fg", "--foreground-color", 10, 1 }, 1889 { "-fg", "--foreground-color", 10, 1 },
@@ -1891,7 +1893,6 @@ const struct standard_args standard_args[] =
1891 { "-ib", "--internal-border", 10, 1 }, 1893 { "-ib", "--internal-border", 10, 1 },
1892 { "-ms", "--mouse-color", 10, 1 }, 1894 { "-ms", "--mouse-color", 10, 1 },
1893 { "-cr", "--cursor-color", 10, 1 }, 1895 { "-cr", "--cursor-color", 10, 1 },
1894 { "-nbc", "--no-blinking-cursor", 10, 0 },
1895 { "-fn", "--font", 10, 1 }, 1896 { "-fn", "--font", 10, 1 },
1896 { "-font", 0, 10, 1 }, 1897 { "-font", 0, 10, 1 },
1897 { "-fs", "--fullscreen", 10, 0 }, 1898 { "-fs", "--fullscreen", 10, 0 },
diff --git a/src/xdisp.c b/src/xdisp.c
index ef9c7453d75..7d43f2d8bef 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -1,7 +1,8 @@
1/* Display generation from window structure and buffer text. 1/* Display generation from window structure and buffer text.
2 Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, 2 Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995,
3 1997, 1998, 1999, 2000, 2001, 2002, 2003, 3 1997, 1998, 1999, 2000, 2001, 2002, 2003,
4 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 4 2004, 2005, 2006, 2007, 2008, 2009, 2010
5 Free Software Foundation, Inc.
5 6
6This file is part of GNU Emacs. 7This file is part of GNU Emacs.
7 8
diff --git a/src/xterm.c b/src/xterm.c
index 72dff200d82..1add3c415e7 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -5797,6 +5797,7 @@ event_handler_gdk (gxev, ev, data)
5797{ 5797{
5798 XEvent *xev = (XEvent *) gxev; 5798 XEvent *xev = (XEvent *) gxev;
5799 5799
5800 BLOCK_INPUT;
5800 if (current_count >= 0) 5801 if (current_count >= 0)
5801 { 5802 {
5802 struct x_display_info *dpyinfo; 5803 struct x_display_info *dpyinfo;
@@ -5807,23 +5808,27 @@ event_handler_gdk (gxev, ev, data)
5807 /* Filter events for the current X input method. 5808 /* Filter events for the current X input method.
5808 GTK calls XFilterEvent but not for key press and release, 5809 GTK calls XFilterEvent but not for key press and release,
5809 so we do it here. */ 5810 so we do it here. */
5810 if (xev->type == KeyPress || xev->type == KeyRelease) 5811 if ((xev->type == KeyPress || xev->type == KeyRelease)
5811 if (dpyinfo && x_filter_event (dpyinfo, xev)) 5812 && dpyinfo
5812 return GDK_FILTER_REMOVE; 5813 && x_filter_event (dpyinfo, xev))
5814 {
5815 UNBLOCK_INPUT;
5816 return GDK_FILTER_REMOVE;
5817 }
5813#endif 5818#endif
5814 5819
5815 if (! dpyinfo) 5820 if (! dpyinfo)
5816 current_finish = X_EVENT_NORMAL; 5821 current_finish = X_EVENT_NORMAL;
5817 else 5822 else
5818 { 5823 current_count +=
5819 current_count += 5824 handle_one_xevent (dpyinfo, xev, &current_finish,
5820 handle_one_xevent (dpyinfo, xev, &current_finish, 5825 current_hold_quit);
5821 current_hold_quit);
5822 }
5823 } 5826 }
5824 else 5827 else
5825 current_finish = x_dispatch_event (xev, xev->xany.display); 5828 current_finish = x_dispatch_event (xev, xev->xany.display);
5826 5829
5830 UNBLOCK_INPUT;
5831
5827 if (current_finish == X_EVENT_GOTO_OUT || current_finish == X_EVENT_DROP) 5832 if (current_finish == X_EVENT_GOTO_OUT || current_finish == X_EVENT_DROP)
5828 return GDK_FILTER_REMOVE; 5833 return GDK_FILTER_REMOVE;
5829 5834
@@ -9821,7 +9826,7 @@ x_wm_set_icon_pixmap (f, pixmap_id)
9821{ 9826{
9822 Pixmap icon_pixmap, icon_mask; 9827 Pixmap icon_pixmap, icon_mask;
9823 9828
9824#ifndef USE_X_TOOLKIT 9829#if !defined USE_X_TOOLKIT && !defined USE_GTK
9825 Window window = FRAME_OUTER_WINDOW (f); 9830 Window window = FRAME_OUTER_WINDOW (f);
9826#endif 9831#endif
9827 9832
@@ -10076,7 +10081,6 @@ x_term_init (display_name, xrm_option, resource_name)
10076 int argc; 10081 int argc;
10077 char *argv[NUM_ARGV]; 10082 char *argv[NUM_ARGV];
10078 char **argv2 = argv; 10083 char **argv2 = argv;
10079 GdkAtom atom;
10080 guint id; 10084 guint id;
10081#ifndef HAVE_GTK_MULTIDISPLAY 10085#ifndef HAVE_GTK_MULTIDISPLAY
10082 if (!EQ (Vinitial_window_system, Qx)) 10086 if (!EQ (Vinitial_window_system, Qx))
@@ -10215,25 +10219,36 @@ x_term_init (display_name, xrm_option, resource_name)
10215 terminal->kboard = (KBOARD *) xmalloc (sizeof (KBOARD)); 10219 terminal->kboard = (KBOARD *) xmalloc (sizeof (KBOARD));
10216 init_kboard (terminal->kboard); 10220 init_kboard (terminal->kboard);
10217 terminal->kboard->Vwindow_system = Qx; 10221 terminal->kboard->Vwindow_system = Qx;
10222
10223 /* Add the keyboard to the list before running Lisp code (via
10224 Qvendor_specific_keysyms below), since these are not traced
10225 via terminals but only through all_kboards. */
10226 terminal->kboard->next_kboard = all_kboards;
10227 all_kboards = terminal->kboard;
10228
10218 if (!EQ (XSYMBOL (Qvendor_specific_keysyms)->function, Qunbound)) 10229 if (!EQ (XSYMBOL (Qvendor_specific_keysyms)->function, Qunbound))
10219 { 10230 {
10220 char *vendor = ServerVendor (dpy); 10231 char *vendor = ServerVendor (dpy);
10221 /* Temporarily hide the partially initialized terminal, 10232
10222 but make sure it doesn't get garbage collected. */ 10233 /* Protect terminal from GC before removing it from the
10223 int count = inhibit_garbage_collection (); 10234 list of terminals. */
10235 struct gcpro gcpro1;
10236 Lisp_Object gcpro_term;
10237 XSETTERMINAL (gcpro_term, terminal);
10238 GCPRO1 (gcpro_term);
10239
10240 /* Temporarily hide the partially initialized terminal. */
10224 terminal_list = terminal->next_terminal; 10241 terminal_list = terminal->next_terminal;
10225 UNBLOCK_INPUT; 10242 UNBLOCK_INPUT;
10226 terminal->kboard->Vsystem_key_alist 10243 terminal->kboard->Vsystem_key_alist
10227 = call1 (Qvendor_specific_keysyms, 10244 = call1 (Qvendor_specific_keysyms,
10228 vendor ? build_string (vendor) : empty_unibyte_string); 10245 vendor ? build_string (vendor) : empty_unibyte_string);
10229 BLOCK_INPUT; 10246 BLOCK_INPUT;
10230 unbind_to (count, Qnil);
10231 terminal->next_terminal = terminal_list; 10247 terminal->next_terminal = terminal_list;
10232 terminal_list = terminal; 10248 terminal_list = terminal;
10249 UNGCPRO;
10233 } 10250 }
10234 10251
10235 terminal->kboard->next_kboard = all_kboards;
10236 all_kboards = terminal->kboard;
10237 /* Don't let the initial kboard remain current longer than necessary. 10252 /* Don't let the initial kboard remain current longer than necessary.
10238 That would cause problems if a file loaded on startup tries to 10253 That would cause problems if a file loaded on startup tries to
10239 prompt in the mini-buffer. */ 10254 prompt in the mini-buffer. */
@@ -10582,7 +10597,6 @@ void
10582x_delete_display (dpyinfo) 10597x_delete_display (dpyinfo)
10583 struct x_display_info *dpyinfo; 10598 struct x_display_info *dpyinfo;
10584{ 10599{
10585 int i;
10586 struct terminal *t; 10600 struct terminal *t;
10587 10601
10588 /* Close all frames and delete the generic struct terminal for this 10602 /* Close all frames and delete the generic struct terminal for this
@@ -10734,7 +10748,6 @@ void
10734x_delete_terminal (struct terminal *terminal) 10748x_delete_terminal (struct terminal *terminal)
10735{ 10749{
10736 struct x_display_info *dpyinfo = terminal->display_info.x; 10750 struct x_display_info *dpyinfo = terminal->display_info.x;
10737 int i;
10738 10751
10739 /* Protect against recursive calls. delete_frame in 10752 /* Protect against recursive calls. delete_frame in
10740 delete_terminal calls us back when it deletes our last frame. */ 10753 delete_terminal calls us back when it deletes our last frame. */