aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--admin/ChangeLog5
-rw-r--r--admin/notes/BRANCH7
-rw-r--r--admin/notes/copyright28
-rwxr-xr-xadmin/revdiff137
-rw-r--r--doc/emacs/ChangeLog4
-rw-r--r--doc/emacs/trouble.texi2
-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/ChangeLog33
-rw-r--r--doc/misc/ada-mode.texi2
-rw-r--r--doc/misc/calc.texi2
-rw-r--r--doc/misc/ede.texi6
-rwxr-xr-xdoc/misc/eieio.texi2
-rw-r--r--doc/misc/faq.texi9
-rw-r--r--doc/misc/gnus.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--lib-src/make-docfile.c6
-rw-r--r--lisp/ChangeLog212
-rw-r--r--lisp/calc/calc.el2
-rw-r--r--lisp/calendar/time-date.el3
-rw-r--r--lisp/cedet/cedet-files.el2
-rw-r--r--lisp/cedet/ede/locate.el26
-rw-r--r--lisp/cedet/ede/proj-aux.el2
-rw-r--r--lisp/cedet/semantic.el54
-rw-r--r--lisp/cedet/semantic/db-ebrowse.el12
-rw-r--r--lisp/cedet/semantic/db-el.el14
-rw-r--r--lisp/cedet/semantic/db-find.el30
-rw-r--r--lisp/cedet/semantic/db-global.el12
-rw-r--r--lisp/cedet/semantic/db-javascript.el18
-rw-r--r--lisp/cedet/semantic/idle.el10
-rw-r--r--lisp/cedet/semantic/util-modes.el20
-rw-r--r--lisp/cedet/srecode/dictionary.el4
-rw-r--r--lisp/cedet/srecode/extract.el2
-rw-r--r--lisp/dired-aux.el2
-rw-r--r--lisp/dired.el4
-rw-r--r--lisp/emacs-lisp/advice.el32
-rw-r--r--lisp/emacs-lisp/chart.el6
-rw-r--r--lisp/emacs-lisp/eieio-speedbar.el4
-rw-r--r--lisp/emacs-lisp/eieio.el18
-rw-r--r--lisp/emulation/viper-cmd.el38
-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/ido.el34
-rw-r--r--lisp/indent.el10
-rw-r--r--lisp/isearch.el5
-rw-r--r--lisp/jka-compr.el9
-rw-r--r--lisp/mail/mail-utils.el2
-rw-r--r--lisp/mail/rmail.el3
-rw-r--r--lisp/mail/rmailmm.el5
-rw-r--r--lisp/mail/sendmail.el14
-rw-r--r--lisp/net/tramp.el2
-rw-r--r--lisp/nxml/nxml-mode.el21
-rw-r--r--lisp/progmodes/ada-mode.el227
-rw-r--r--lisp/progmodes/cc-defs.el6
-rw-r--r--lisp/progmodes/cc-engine.el11
-rw-r--r--lisp/term.el13
-rw-r--r--lisp/term/x-win.el14
-rw-r--r--lisp/textmodes/artist.el34
-rw-r--r--lisp/textmodes/sgml-mode.el6
-rw-r--r--lisp/vc-dir.el5
-rw-r--r--lisp/vc-dispatcher.el5
-rw-r--r--lisp/vc.el14
-rw-r--r--lisp/whitespace.el12
-rw-r--r--src/ChangeLog35
-rw-r--r--src/alloc.c10
-rw-r--r--src/atimer.h2
-rw-r--r--src/coding.c3
-rw-r--r--src/editfns.c2
-rw-r--r--src/lisp.h2
-rw-r--r--src/lread.c2
-rw-r--r--src/textprop.c16
-rw-r--r--src/xsettings.c34
-rw-r--r--test/ChangeLog7
-rw-r--r--test/cedet/semantic-tests.el10
79 files changed, 920 insertions, 554 deletions
diff --git a/admin/ChangeLog b/admin/ChangeLog
index 8fd3b828a71..a43dbe931f0 100644
--- a/admin/ChangeLog
+++ b/admin/ChangeLog
@@ -1,3 +1,8 @@
12010-01-20 Glenn Morris <rgm@gnu.org>
2
3 * revdiff: Remove file that only works with CVS, and isn't really
4 needed with Bazaar (given the in-built revision options of bzr diff).
5
12010-01-12 Glenn Morris <rgm@gnu.org> 62010-01-12 Glenn Morris <rgm@gnu.org>
2 7
3 * emacs-pretesters, make-announcement: Use bug-gnu-emacs rather 8 * emacs-pretesters, make-announcement: Use bug-gnu-emacs rather
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/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/revdiff b/admin/revdiff
deleted file mode 100755
index 7a1e93a64fe..00000000000
--- a/admin/revdiff
+++ /dev/null
@@ -1,137 +0,0 @@
1#! /usr/bin/perl
2
3# Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
4# 2010 Free Software Foundation, Inc.
5#
6# This file is part of GNU Emacs.
7
8# GNU Emacs is free software: you can redistribute it and/or modify
9# it under the terms of the GNU General Public License as published by
10# the Free Software Foundation, either version 3 of the License, or
11# (at your option) any later version.
12
13# GNU Emacs is distributed in the hope that it will be useful,
14# but WITHOUT ANY WARRANTY; without even the implied warranty of
15# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16# GNU General Public License for more details.
17
18# You should have received a copy of the GNU General Public License
19# along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
20
21
22use File::Basename;
23
24if (@ARGV < 3)
25{
26 print <<USAGE;
27revdiff FILE OLD NEW
28
29Get a diff of FILE between revisions OLD and NEW. Store the
30diff in a file named FILE-OLD-NEW.diff.
31
32If OLD is `-' use FILE's current revision for OLD. If OLD is
33`-<number>', use the Nth revision before the current one for OLD.
34
35If NEW is +<number> or -<number>, build diffs between revisions OLD
36and OLD +/- <number>.
37
38Examples:
39
40revdiff FILE - -1 get the latest change of FILE
41revdiff FILE -1 +1 also gets the latest change of FILE
42revdiff FILE 1.500 +2 get diffs 1.500-1.501 and 1.501-1.502.
43
44USAGE
45 exit 1;
46}
47
48$file = shift @ARGV;
49$old = shift @ARGV;
50
51sub diffit
52{
53 my ($old, $new) = @_;
54 print "cvs diff -r$old -r$new $file >$file-$old-$new.diff\n";
55 system "cvs diff -r$old -r$new $file >$file-$old-$new.diff";
56}
57
58sub current_revision ($)
59{
60 my ($file) = @_;
61 my $dir = dirname ($file);
62 my $base = basename ($file);
63 my $entries = "$dir/CVS/Entries";
64 die "Can't find $entries" unless -f $entries;
65 open (IN, "<$entries") or die "Cannot open $entries";
66 my $rev;
67 while ($line = <IN>)
68 {
69 if ($line =~ m,/$base/([^/]+),)
70 {
71 $rev = $1;
72 break;
73 }
74 }
75 die "Cannot determine current revision of $file" unless $rev;
76 close (IN);
77 return $rev;
78}
79
80if ($old eq "-")
81 {
82 $old = current_revision ($file);
83 }
84elsif ($old =~ /^-(\d+)$/)
85 {
86 my $offset = $1;
87 $old = current_revision ($file);
88 die "Internal error" unless $old =~ /(.*)\.(\d+)$/;
89 my $minor = $2 - $offset;
90 $old = sprintf ("%d.%d", $1, $minor);
91 }
92
93while (@ARGV)
94 {
95 my $new = shift @ARGV;
96 if ($new =~ /^[+]\d+$/)
97 {
98 my $n = $new;
99 for ($i = 0; $i < $n; ++$i)
100 {
101 unless ($old =~ /(.*)\.(\d+)$/)
102 {
103 die "Internal error";
104 }
105 my $j = $2 + 1;
106 $new = "$1.$j";
107 diffit ($old, $new);
108 $old = $new;
109 }
110 }
111 elsif ($new =~ /^[-]\d+$/)
112 {
113 my $n = - $new;
114 for ($i = 0; $i < $n; ++$i)
115 {
116 unless ($old =~ /(.*)\.(\d+)$/)
117 {
118 die "Internal error";
119 }
120 my $j = $2 - 1;
121 $new = "$1.$j";
122 diffit ($new, $old);
123 $old = $new;
124 }
125 }
126 else
127 {
128 diffit ($old, $new);
129 $old = $new;
130 }
131 }
132
133# Local Variables:
134# mode: cperl
135# End:
136
137# arch-tag: 2798b20d-c7f2-4c78-8378-7bb529c36a09
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog
index 8ca2b187d94..7d7002a6469 100644
--- a/doc/emacs/ChangeLog
+++ b/doc/emacs/ChangeLog
@@ -1,3 +1,7 @@
12010-01-21 Glenn Morris <rgm@gnu.org>
2
3 * trouble.texi (Bugs): Fix PROBLEMS keybinding.
4
12010-01-12 Glenn Morris <rgm@gnu.org> 52010-01-12 Glenn Morris <rgm@gnu.org>
2 6
3 * trouble.texi (Checklist): Use bug-gnu-emacs rather than 7 * trouble.texi (Checklist): Use bug-gnu-emacs rather than
diff --git a/doc/emacs/trouble.texi b/doc/emacs/trouble.texi
index 218aa3a64d4..b0b54d572f6 100644
--- a/doc/emacs/trouble.texi
+++ b/doc/emacs/trouble.texi
@@ -419,7 +419,7 @@ to do so effectively, you must know when and how to do it.
419 419
420 Before reporting a bug, it is a good idea to see if it is already 420 Before reporting a bug, it is a good idea to see if it is already
421known. You can find the list of known problems in the file 421known. You can find the list of known problems in the file
422@file{etc/PROBLEMS} in the Emacs distribution; type @kbd{C-h C-e} to read 422@file{etc/PROBLEMS} in the Emacs distribution; type @kbd{C-h C-p} to read
423it. Some additional user-level problems can be found in @ref{Bugs and 423it. Some additional user-level problems can be found in @ref{Bugs and
424problems, , Bugs and problems, efaq, GNU Emacs FAQ}. Looking up your 424problems, , Bugs and problems, efaq, GNU Emacs FAQ}. Looking up your
425problem in these two documents might provide you with a solution or a 425problem in these two documents might provide you with a solution or a
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 471d57ed11b..3d39b108049 100644
--- a/doc/misc/ChangeLog
+++ b/doc/misc/ChangeLog
@@ -1,3 +1,36 @@
12010-01-21 Katsumi Yamaoka <yamaoka@jpl.org>
2
3 * gnus.texi (Score File Format): Fix typo.
4
52010-01-18 Juanma Barranquero <lekktu@gmail.com>
6
7 * ada-mode.texi (Project File Overview): Fix typo.
8
92010-01-17 Chong Yidong <cyd@stupidchicken.com>
10
11 * semantic.texi: Add Richard Y. Kim credit.
12
13 * eieio.texi (Making New Objects): Fix typo (Bug#5406).
14
152010-01-17 Michael Albinus <michael.albinus@gmx.de>
16
17 * tramp.texi (Frequently Asked Questions): Add GNU Emacs 23 and
18 SXEmacs 22 to the supported systems. New item for hung ssh sessions.
19
202010-01-17 Glenn Morris <rgm@gnu.org>
21
22 * calc.texi (Reporting Bugs): Don't mention format of repository.
23
24 * woman.texi (Bugs): Make "Emacs repository" less specific,
25 and the URL for same more specific.
26
27 * faq.texi (Latest version of Emacs): The repository is now Bazaar.
28
292010-01-17 Juanma Barranquero <lekktu@gmail.com>
30
31 * ede.texi (ede-step-project, ede-proj-target):
32 * tramp.texi (Remote processes): Fix typos.
33
12010-01-16 Mario Lang <mlang@delysid.org> 342010-01-16 Mario Lang <mlang@delysid.org>
2 35
3 * ede.texi (ede-target): 36 * ede.texi (ede-target):
diff --git a/doc/misc/ada-mode.texi b/doc/misc/ada-mode.texi
index af5dc310a58..86d63e5ed9b 100644
--- a/doc/misc/ada-mode.texi
+++ b/doc/misc/ada-mode.texi
@@ -396,7 +396,7 @@ src_dir=/Projects/my_project/src_1
396src_dir=/Projects/my_project/src_2 396src_dir=/Projects/my_project/src_2
397@end example 397@end example
398 398
399Some variables (like @code{src_dir}) are lists; multiple occurances 399Some variables (like @code{src_dir}) are lists; multiple occurrences
400are concatenated. 400are concatenated.
401 401
402There must be no space between the variable name and ``='', and no 402There must be no space between the variable name and ``='', and no
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 bfeef343f09..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
@@ -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/gnus.texi b/doc/misc/gnus.texi
index a33a91ba6f1..75720a94da1 100644
--- a/doc/misc/gnus.texi
+++ b/doc/misc/gnus.texi
@@ -21803,7 +21803,7 @@ not be loaded, even though they would normally be so, for some reason or
21803other. 21803other.
21804 21804
21805@item eval 21805@item eval
21806The value of this entry will be @code{eval}el. This element will be 21806The value of this entry will be @code{eval}ed. This element will be
21807ignored when handling global score files. 21807ignored when handling global score files.
21808 21808
21809@item read-only 21809@item read-only
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/lib-src/make-docfile.c b/lib-src/make-docfile.c
index af1928c63fb..eb15342ca5b 100644
--- a/lib-src/make-docfile.c
+++ b/lib-src/make-docfile.c
@@ -240,10 +240,10 @@ struct rcsoc_state
240 /* A keyword we look for at the beginning of lines. If found, it is 240 /* A keyword we look for at the beginning of lines. If found, it is
241 not copied, and SAW_KEYWORD is set to true. */ 241 not copied, and SAW_KEYWORD is set to true. */
242 char *keyword; 242 char *keyword;
243 /* The current point we've reached in an occurance of KEYWORD in 243 /* The current point we've reached in an occurrence of KEYWORD in
244 the input stream. */ 244 the input stream. */
245 char *cur_keyword_ptr; 245 char *cur_keyword_ptr;
246 /* Set to true if we saw an occurance of KEYWORD. */ 246 /* Set to true if we saw an occurrence of KEYWORD. */
247 int saw_keyword; 247 int saw_keyword;
248}; 248};
249 249
@@ -354,7 +354,7 @@ scan_keyword_or_put_char (ch, state)
354 PRINTFLAG is positive, output string contents to outfile. If it is 354 PRINTFLAG is positive, output string contents to outfile. If it is
355 negative, store contents in buf. Convert escape sequences \n and 355 negative, store contents in buf. Convert escape sequences \n and
356 \t to newline and tab; discard \ followed by newline. 356 \t to newline and tab; discard \ followed by newline.
357 If SAW_USAGE is non-zero, then any occurances of the string `usage:' 357 If SAW_USAGE is non-zero, then any occurrences of the string `usage:'
358 at the beginning of a line will be removed, and *SAW_USAGE set to 358 at the beginning of a line will be removed, and *SAW_USAGE set to
359 true if any were encountered. */ 359 true if any were encountered. */
360 360
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 5ff2d7b24c0..c59ecbae67b 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,9 +1,219 @@
12010-01-22 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * mail/rmailmm.el (rmail-mime-handle): Don't set the buffer to unibyte
4 just because we see "encoding: 8bit".
5 * mail/rmail.el (rmail-show-message-1): Decode the body's QP into bytes.
6
72010-01-22 Chong Yidong <cyd@stupidchicken.com>
8
9 * isearch.el (isearch-allow-scroll): Doc fix (Bug#5446).
10
112010-01-22 Eli Zaretskii <eliz@gnu.org>
12
13 * jka-compr.el (jka-compr-load): If load-file is not in
14 load-history, try its file-truename version. (bug#5447)
15
162010-01-21 Alan Mackenzie <acm@muc.de>
17
18 Fix a situation where deletion of a cpp construct throws an error.
19 * progmodes/cc-engine.el (c-invalidate-state-cache): Before
20 invoking c-with-all-but-one-cpps-commented-out, check that the
21 special cpp construct is still in the buffer.
22 (c-parse-state): Record the special cpp with markers, not numbers.
23
242010-01-21 Kenichi Handa <handa@m17n.org>
25
26 * textmodes/sgml-mode.el (sgml-maybe-name-self): No need to
27 process last-command-event, as it is now decoded first (Bug#5380).
28
292010-01-20 Chong Yidong <cyd@stupidchicken.com>
30
31 * term.el (term-send-raw-meta): Revert 2009-12-04 change (Bug#5330).
32
332010-01-20 Glenn Morris <rgm@gnu.org>
34
35 * indent.el (tab-always-indent): Fix custom-type.
36
372010-01-19 Alan Mackenzie <acm@muc.de>
38
39 * progmodes/cc-defs.el: Fix bug#5395: typing '#' in an empty
40 buffer throws "args out of range".
41 (c-set-cpp-delimiters, c-clear-cpp-delimiters): Check for EOB
42 playing the role of delimiter.
43
442010-01-18 Stephen Leake <stephen_leake@member.fsf.org>
45
46 * lisp/progmodes/ada-mode.el: Fix bug#5400.
47 (ada-matching-decl-start-re): Move into ada-goto-decl-start.
48 (ada-goto-decl-start): Rename from ada-goto-matching-decl-start; callers
49 changed. Delete RECURSIVE parameter; never used. Improve doc string.
50 Improve comments in "is" portion. Handle null procedure declaration.
51 (ada-move-to-end): Improve doc string.
52
532010-01-18 Óscar Fuentes <ofv@wanadoo.es>
54
55 * ido.el (ido-cur-list): Initialize to nil.
56 Remove obsolete information from commentary.
57 (ido-choice-list): Initialize to nil.
58 (ido-get-bufname): Reject minibuffers.
59 (ido-make-buffer-list): If "default" is a nonexistent
60 buffer, ignore it, as per the function's comment.
61 (ido-kill-buffer-internal): New function.
62 (ido-kill-buffer-at-head): Use it.
63 (ido-visit-buffer): Likewise.
64
652010-01-18 Chong Yidong <cyd@stupidchicken.com>
66
67 * calendar/time-date.el (date-to-time): Doc fix (Bug#5408).
68
692010-01-18 Juanma Barranquero <lekktu@gmail.com>
70
71 * cedet/ede/locate.el (ede-locate-file-in-project)
72 (ede-locate-file-in-project-impl): Fix typos in docstrings.
73 (ede-enable-locate-on-project): Fix typos in error messages.
74
75 * cedet/semantic/util-modes.el (semantic-unmatched-syntax-face)
76 (semantic-stickyfunc-old-hlf, semantic-stickyfunc-header-line-format)
77 (semantic-stickyfunc-sticky-classes, semantic-highlight-func-mode-setup)
78 (semantic-stickyfunc-fetch-stickyline): Fix typos in docstrings.
79 (semantic-stickyfunc-popup-menu, semantic-highlight-func-popup-menu):
80 Fix typos in menu help.
81
82 * emacs-lisp/chart.el (chart-file-count, chart-rmail-from):
83 Fix typos in chart titles.
84
85 * whitespace.el (whitespace-style, global-whitespace-newline-mode):
86 * cedet/semantic.el (semantic-require-version, semantic--buffer-cache)
87 (semantic-unmatched-syntax-cache-check, semantic-unmatched-syntax-hook)
88 (semantic--before-fetch-tags-hook, semantic-new-buffer-fcn-was-run)
89 (semantic--umatched-syntax-needs-refresh-p, semantic-elapsed-time)
90 (semantic-parse-stream, semantic-parse-region)
91 (semantic-parse-region-default, semantic--set-buffer-cache)
92 (semantic-minimum-working-buffer-size, semantic-refresh-tags-safe)
93 (semantic-bovinate-toplevel, semantic-load-system-cache-loaded)
94 (semantic-default-submodes):
95 * cedet/semantic/db-ebrowse.el (semanticdb-table-ebrowse)
96 (semanticdb-create-ebrowse-database)
97 (semanticdb-find-tags-for-completion-method)
98 (semanticdb-find-tags-by-class-method)
99 (semanticdb-deep-find-tags-by-name-method)
100 (semanticdb-deep-find-tags-for-completion-method):
101 * cedet/semantic/db-el.el (semanticdb-elisp-mapatom-collector)
102 (semanticdb-find-tags-by-name-method, emacs-lisp-mode)
103 (semanticdb-find-tags-for-completion-method)
104 (semanticdb-find-tags-by-class-method)
105 (semanticdb-deep-find-tags-for-completion-method):
106 * cedet/semantic/db-find.el (semanticdb-find-translate-path)
107 (semanticdb-find-need-cache-update-p, semanticdb-find-result-with-nil-p)
108 (semanticdb-find-scanned-include-tags, semanticdb-find-tags-collector)
109 (semanticdb-find-tags-by-name-method)
110 (semanticdb-find-tags-by-name-regexp-method)
111 (semanticdb-find-tags-for-completion-method)
112 (semanticdb-find-tags-by-class-method)
113 (semanticdb-find-tags-external-children-of-type-method)
114 (semanticdb-find-tags-subclasses-of-type-method)
115 (semanticdb-deep-find-tags-by-name-method)
116 (semanticdb-deep-find-tags-by-name-regexp-method)
117 (semanticdb-deep-find-tags-for-completion-method):
118 * cedet/semantic/db-global.el (semanticdb-enable-gnu-global-hook)
119 (semanticdb-enable-gnu-global-in-buffer)
120 (semanticdb-find-tags-for-completion-method)
121 (semanticdb-deep-find-tags-by-name-method)
122 (semanticdb-deep-find-tags-for-completion-method):
123 * cedet/semantic/db-javascript.el (semanticdb-javascript-tags)
124 (javascript-mode, semanticdb-find-translate-path)
125 (semanticdb-find-tags-for-completion-method)
126 (semanticdb-find-tags-by-class-method)
127 (semanticdb-deep-find-tags-by-name-method)
128 (semanticdb-deep-find-tags-for-completion-method)
129 (semanticdb-find-tags-external-children-of-type-method):
130 * cedet/semantic/idle.el (semantic-idle-work-core-handler)
131 (define-semantic-idle-service, semantic-idle-summary-useful-context-p)
132 (global-semantic-idle-scheduler-mode):
133 * cedet/srecode/dictionary.el (srecode-field-value)
134 (srecode-dictionary-add-section-dictionary):
135 * emacs-lisp/eieio.el (eieio-error-unsupported-class-tags)
136 (eieio-generic-form, eieio-help-mode-augmentation-maybee, eieio-browse)
137 (describe-class, eieio-describe-generic, describe-generic):
138 * emacs-lisp/eieio-speedbar.el (eieio-speedbar-handle-click)
139 (eieio-speedbar-expand):
140 * emulation/viper-cmd.el (viper-exec-form-in-vi)
141 (viper-exec-form-in-emacs, viper-harness-minor-mode, viper-ESC)
142 (viper-repeat, viper-replace-state-exit-cmd, viper-toggle-search-style)
143 (viper-del-backward-char-in-replace, viper-backward-indent)
144 (viper-brac-function, viper-register-to-point, viper-submit-report):
145 * net/tramp.el (tramp-remote-coding-commands):
146 * term/x-win.el (emacs-session-save, x-menu-bar-open, icon-map-list):
147 Fix typos in docstrings.
148
1492010-01-17 Chong Yidong <cyd@stupidchicken.com>
150
151 * mail/sendmail.el (mail-yank-original): Set the mark if the
152 specified function for yanking does not do it.
153
1542010-01-17 Dan Nicolaescu <dann@ics.uci.edu>
155
156 * vc.el (with-vc-properties): Deal with directory arguments. (Bug#5298)
157
158 * vc-dir.el (vc-dir-resynch-file): Update the vc-dir header when
159 resyncing a directory.
160
1612010-01-17 Stephen Leake <stephen_leake@member.fsf.org>
162
163 * progmodes/ada-mode.el: Fix bug#1920.
164 (ada-ident-re): Delete ., allow multibyte characters.
165 (ada-goto-label-re): New; matches goto labels.
166 (ada-block-label-re): New; matches block labels.
167 (ada-label-re): New; matches both.
168 (ada-named-block-re): Deleted; callers changed to use
169 `ada-block-label-re' instead.
170 (ada-get-current-indent, ada-get-indent-noindent, ada-get-indent-loop):
171 Use `ada-block-label-re'.
172 (ada-indent-on-previous-lines): Improve handling of goto labels.
173 (ada-get-indent-block-start): Special-case block label.
174 (ada-get-indent-label): Split into `ada-indent-block-label' and
175 `ada-indent-goto-label'.
176 (ada-goto-stmt-start, ada-goto-next-non-ws):
177 Optionally ignore goto labels.
178 (ada-goto-next-word): Simplify.
179 (ada-indent-newline-indent-conditional): Insert newline before
180 trying to fix indentation; doc fix.
181
1822010-01-17 Jay Belanger <jay.p.belanger@gmail.com>
183
184 * calc/calc.el (calc-command-flags): Give it an initial value.
185
1862010-01-17 Glenn Morris <rgm@gnu.org>
187
188 * cedet/semantic/idle.el (semantic-idle-work-for-one-buffer): Doc fix.
189
1902010-01-17 Juanma Barranquero <lekktu@gmail.com>
191
192 * cedet/semantic.el (semantic-mode):
193 * files.el (minibuffer-with-setup-hook):
194 * textmodes/artist.el (artist-mt, artist-key-undraw-continously)
195 (artist-key-draw-continously, artist-key-do-continously-continously)
196 (artist-key-set-point-continously, artist-mouse-draw-continously):
197 Fix typos in docstrings.
198
1992010-01-16 Lennart Borgman <lennart.borgman@gmail.com>
200
201 * nxml/nxml-mode.el (nxml-extend-after-change-region): Never
202 return t (Bug#3898).
203
2042010-01-16 Frédéric Perrin <frederic.perrin@resel.fr> (tiny change)
205
206 * vc-dispatcher.el (vc-do-command): Set LC_MESSAGES, so that we
207 can parse the output of the external commands (Bug#5279).
208
12010-01-16 Jari Aalto <jari.aalto@cante.net> 2092010-01-16 Jari Aalto <jari.aalto@cante.net>
2 210
3 * pcmpl-unix.el (pcmpl-unix-read-passwd-file): Doc fix. 211 * pcmpl-unix.el (pcmpl-unix-read-passwd-file): Doc fix.
4 212
52010-01-16 Chong Yidong <cyd@stupidchicken.com> 2132010-01-16 Chong Yidong <cyd@stupidchicken.com>
6 214
215 * emacs-lisp/advice.el (ad-add-advice): Doc fix (Bug#5274)
216
7 * emacs-lisp/cl-macs.el (defstruct): Doc fix (Bug#5267). 217 * emacs-lisp/cl-macs.el (defstruct): Doc fix (Bug#5267).
8 218
9 * startup.el (command-line): Remove unused --icon-type arg. 219 * startup.el (command-line): Remove unused --icon-type arg.
@@ -34,7 +244,7 @@
342010-01-15 Kenichi Handa <handa@m17n.org> 2442010-01-15 Kenichi Handa <handa@m17n.org>
35 245
36 * international/mule-cmds.el (canonicalize-coding-system-name): 246 * international/mule-cmds.el (canonicalize-coding-system-name):
37 Convert "msXXX", "ibmXXX", "windows-XXX" to "cpXXX". 247 Convert "msXXX", "ibmXXX", "windows-XXX" to "cpXXX" (Bug#5387).
38 248
392010-01-15 Glenn Morris <rgm@gnu.org> 2492010-01-15 Glenn Morris <rgm@gnu.org>
40 250
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/calendar/time-date.el b/lisp/calendar/time-date.el
index 3b4495881f6..914d2d33928 100644
--- a/lisp/calendar/time-date.el
+++ b/lisp/calendar/time-date.el
@@ -98,7 +98,8 @@ and type 2 is the list (HIGH LOW MICRO)."
98 98
99;;;###autoload 99;;;###autoload
100(defun date-to-time (date) 100(defun date-to-time (date)
101 "Parse a string DATE that represents a date-time and return a time value." 101 "Parse a string DATE that represents a date-time and return a time value.
102If DATE lacks timezone information, GMT is assumed."
102 (condition-case () 103 (condition-case ()
103 (apply 'encode-time 104 (apply 'encode-time
104 (parse-time-string 105 (parse-time-string
diff --git a/lisp/cedet/cedet-files.el b/lisp/cedet/cedet-files.el
index 5d149ee7560..9dacf062288 100644
--- a/lisp/cedet/cedet-files.el
+++ b/lisp/cedet/cedet-files.el
@@ -69,7 +69,7 @@ specific conversions during tests."
69 (let ((file referencefile)) 69 (let ((file referencefile))
70 ;; Replace the ! with / 70 ;; Replace the ! with /
71 (setq file (subst-char-in-string ?! ?/ file)) 71 (setq file (subst-char-in-string ?! ?/ file))
72 ;; Occurances of // meant there was once a single !. 72 ;; Occurrences of // meant there was once a single !.
73 (setq file (replace-regexp-in-string "//" "!" file)) 73 (setq file (replace-regexp-in-string "//" "!" file))
74 74
75 ;; Handle Windows special cases 75 ;; Handle Windows special cases
diff --git a/lisp/cedet/ede/locate.el b/lisp/cedet/ede/locate.el
index 0f9e4b22be2..099e193f010 100644
--- a/lisp/cedet/ede/locate.el
+++ b/lisp/cedet/ede/locate.el
@@ -97,7 +97,7 @@ based on `ede-locate-setup-options'."
97 (setq ans 'ede-locate-base)) 97 (setq ans 'ede-locate-base))
98 (oset proj locate-obj (make-instance ans "Loc" :root root)) 98 (oset proj locate-obj (make-instance ans "Loc" :root root))
99 (when (called-interactively-p 'interactive) 99 (when (called-interactively-p 'interactive)
100 (message "Setting locator to %s." ans)) 100 (message "Setting locator to %s" ans))
101 )) 101 ))
102 102
103;;; LOCATE BASECLASS 103;;; LOCATE BASECLASS
@@ -142,9 +142,9 @@ based on `ede-locate-setup-options'."
142(defmethod ede-locate-file-in-project ((loc ede-locate-base) 142(defmethod ede-locate-file-in-project ((loc ede-locate-base)
143 filesubstring 143 filesubstring
144 ) 144 )
145 "Locate with LOC occurances of FILESUBSTRING. 145 "Locate with LOC occurrences of FILESUBSTRING.
146Searches are done under the current root of the EDE project 146Searches are done under the current root of the EDE project
147that crated this ede locat object." 147that created this EDE locate object."
148 (let ((ans (ede-locate-file-in-project-impl loc filesubstring)) 148 (let ((ans (ede-locate-file-in-project-impl loc filesubstring))
149 ) 149 )
150 (oset loc file filesubstring) 150 (oset loc file filesubstring)
@@ -154,9 +154,9 @@ that crated this ede locat object."
154(defmethod ede-locate-file-in-project-impl ((loc ede-locate-base) 154(defmethod ede-locate-file-in-project-impl ((loc ede-locate-base)
155 filesubstring 155 filesubstring
156 ) 156 )
157 "Locate with LOC occurances of FILESUBSTRING. 157 "Locate with LOC occurrences of FILESUBSTRING.
158Searches are done under the current root of the EDE project 158Searches are done under the current root of the EDE project
159that crated this ede locat object." 159that created this EDE locate object."
160 nil 160 nil
161 ) 161 )
162 162
@@ -180,9 +180,9 @@ configure the use of EDE locate.")
180 180
181(defmethod ede-locate-file-in-project-impl ((loc ede-locate-locate) 181(defmethod ede-locate-file-in-project-impl ((loc ede-locate-locate)
182 filesubstring) 182 filesubstring)
183 "Locate with LOC occurances of FILESUBSTRING under PROJECTROOT. 183 "Locate with LOC occurrences of FILESUBSTRING under PROJECTROOT.
184Searches are done under the current root of the EDE project 184Searches are done under the current root of the EDE project
185that crated this ede locat object." 185that created this EDE locate object."
186 ;; We want something like: 186 ;; We want something like:
187 ;; /my/project/root*/filesubstring.c 187 ;; /my/project/root*/filesubstring.c
188 (let* ((searchstr (concat (directory-file-name (oref loc root)) 188 (let* ((searchstr (concat (directory-file-name (oref loc root))
@@ -235,9 +235,9 @@ variable `cedet-global-command'.")
235 235
236(defmethod ede-locate-file-in-project-impl ((loc ede-locate-global) 236(defmethod ede-locate-file-in-project-impl ((loc ede-locate-global)
237 filesubstring) 237 filesubstring)
238 "Locate with LOC occurances of FILESUBSTRING under PROJECTROOT. 238 "Locate with LOC occurrences of FILESUBSTRING under PROJECTROOT.
239Searches are done under the current root of the EDE project 239Searches are done under the current root of the EDE project
240that crated this ede locat object." 240that created this EDE locate object."
241 (require 'cedet-global) 241 (require 'cedet-global)
242 (let ((default-directory (oref loc root))) 242 (let ((default-directory (oref loc root)))
243 (cedet-gnu-global-expand-filename filesubstring))) 243 (cedet-gnu-global-expand-filename filesubstring)))
@@ -273,9 +273,9 @@ file name searching variable `cedet-idutils-file-command'.")
273 273
274(defmethod ede-locate-file-in-project-impl ((loc ede-locate-idutils) 274(defmethod ede-locate-file-in-project-impl ((loc ede-locate-idutils)
275 filesubstring) 275 filesubstring)
276 "Locate with LOC occurances of FILESUBSTRING under PROJECTROOT. 276 "Locate with LOC occurrences of FILESUBSTRING under PROJECTROOT.
277Searches are done under the current root of the EDE project 277Searches are done under the current root of the EDE project
278that crated this ede locat object." 278that created this EDE locate object."
279 (require 'cedet-idutils) 279 (require 'cedet-idutils)
280 (let ((default-directory (oref loc root))) 280 (let ((default-directory (oref loc root)))
281 (cedet-idutils-expand-filename filesubstring))) 281 (cedet-idutils-expand-filename filesubstring)))
@@ -309,9 +309,9 @@ file name searching variable `cedet-cscope-file-command'.")
309 309
310(defmethod ede-locate-file-in-project-impl ((loc ede-locate-cscope) 310(defmethod ede-locate-file-in-project-impl ((loc ede-locate-cscope)
311 filesubstring) 311 filesubstring)
312 "Locate with LOC occurances of FILESUBSTRING under PROJECTROOT. 312 "Locate with LOC occurrences of FILESUBSTRING under PROJECTROOT.
313Searches are done under the current root of the EDE project 313Searches are done under the current root of the EDE project
314that crated this ede locat object." 314that created this EDE locate object."
315 (let ((default-directory (oref loc root))) 315 (let ((default-directory (oref loc root)))
316 (cedet-cscope-expand-filename filesubstring))) 316 (cedet-cscope-expand-filename filesubstring)))
317 317
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/semantic.el b/lisp/cedet/semantic.el
index 108a8c4b294..b7d5f700d78 100644
--- a/lisp/cedet/semantic.el
+++ b/lisp/cedet/semantic.el
@@ -45,7 +45,7 @@
45(declare-function semanticdb-load-ebrowse-caches "semantic/db-ebrowse") 45(declare-function semanticdb-load-ebrowse-caches "semantic/db-ebrowse")
46 46
47(defun semantic-require-version (major minor &optional beta) 47(defun semantic-require-version (major minor &optional beta)
48 "Non-nil if this version of semantic does not satisfy a specific version. 48 "Non-nil if this version of Semantic does not satisfy a specific version.
49Arguments can be: 49Arguments can be:
50 50
51 (MAJOR MINOR &optional BETA) 51 (MAJOR MINOR &optional BETA)
@@ -130,7 +130,7 @@ this is returned instead of re-parsing the buffer.
130 DO NOT USE THIS VARIABLE IN PROGRAMS. 130 DO NOT USE THIS VARIABLE IN PROGRAMS.
131 131
132If you need a tag list, use `semantic-fetch-tags'. If you need the 132If you need a tag list, use `semantic-fetch-tags'. If you need the
133cached values for some reason, chances are you can, add a hook to 133cached values for some reason, chances are you can add a hook to
134`semantic-after-toplevel-cache-change-hook'.") 134`semantic-after-toplevel-cache-change-hook'.")
135(make-variable-buffer-local 'semantic--buffer-cache) 135(make-variable-buffer-local 'semantic--buffer-cache)
136(semantic-varalias-obsolete 'semantic-toplevel-bovine-cache 136(semantic-varalias-obsolete 'semantic-toplevel-bovine-cache
@@ -141,7 +141,7 @@ cached values for some reason, chances are you can, add a hook to
141(make-variable-buffer-local 'semantic-unmatched-syntax-cache) 141(make-variable-buffer-local 'semantic-unmatched-syntax-cache)
142 142
143(defvar semantic-unmatched-syntax-cache-check nil 143(defvar semantic-unmatched-syntax-cache-check nil
144 "Non nil if the unmatched syntax cache is out of date. 144 "Non-nil if the unmatched syntax cache is out of date.
145This is tracked with `semantic-change-function'.") 145This is tracked with `semantic-change-function'.")
146(make-variable-buffer-local 'semantic-unmatched-syntax-cache-check) 146(make-variable-buffer-local 'semantic-unmatched-syntax-cache-check)
147 147
@@ -154,18 +154,18 @@ will not change the tag structure, such as adding or updating
154`top-level' comments.") 154`top-level' comments.")
155 155
156(defvar semantic-unmatched-syntax-hook nil 156(defvar semantic-unmatched-syntax-hook nil
157 "Hooks run when semantic detects syntax not matched in a grammar. 157 "Hooks run when Semantic detects syntax not matched in a grammar.
158Each individual piece of syntax (such as a symbol or punctuation 158Each individual piece of syntax (such as a symbol or punctuation
159character) is called with this hook when it doesn't match in the 159character) is called with this hook when it doesn't match in the
160grammar, and multiple unmatched syntax elements are not grouped 160grammar, and multiple unmatched syntax elements are not grouped
161together. Each hook is called with one argument, which is a list of 161together. Each hook is called with one argument, which is a list
162syntax tokens created by the semantic lexer. Use the functions 162of syntax tokens created by the semantic lexer. Use the functions
163`semantic-lex-token-start', `semantic-lex-token-end' and 163`semantic-lex-token-start', `semantic-lex-token-end' and
164`semantic-lex-token-text' to get information about these tokens. The 164`semantic-lex-token-text' to get information about these tokens.
165current buffer is the buffer these tokens are derived from.") 165The current buffer is the buffer these tokens are derived from.")
166 166
167(defvar semantic--before-fetch-tags-hook nil 167(defvar semantic--before-fetch-tags-hook nil
168 "Hooks run before a buffer is parses for tags. 168 "Hooks run before a buffer is parsed for tags.
169It is called before any request for tags is made via the function 169It is called before any request for tags is made via the function
170`semantic-fetch-tags' by an application. 170`semantic-fetch-tags' by an application.
171If any hook returns a nil value, the cached value is returned 171If any hook returns a nil value, the cached value is returned
@@ -311,7 +311,7 @@ a parse of the buffer.")
311 'semantic-init-db-hook "23.2") 311 'semantic-init-db-hook "23.2")
312 312
313(defvar semantic-new-buffer-fcn-was-run nil 313(defvar semantic-new-buffer-fcn-was-run nil
314 "Non nil after `semantic-new-buffer-fcn' has been executed.") 314 "Non-nil after `semantic-new-buffer-fcn' has been executed.")
315(make-variable-buffer-local 'semantic-new-buffer-fcn-was-run) 315(make-variable-buffer-local 'semantic-new-buffer-fcn-was-run)
316 316
317(defsubst semantic-active-p () 317(defsubst semantic-active-p ()
@@ -320,7 +320,7 @@ a parse of the buffer.")
320 320
321(defsubst semantic--umatched-syntax-needs-refresh-p () 321(defsubst semantic--umatched-syntax-needs-refresh-p ()
322 "Return non-nil if the unmatched syntax cache needs a refresh. 322 "Return non-nil if the unmatched syntax cache needs a refresh.
323That is if it is dirty or if the current parse tree isn't up to date." 323That is, if it is dirty or if the current parse tree isn't up to date."
324 (or semantic-unmatched-syntax-cache-check 324 (or semantic-unmatched-syntax-cache-check
325 (not (semantic-parse-tree-up-to-date-p)))) 325 (not (semantic-parse-tree-up-to-date-p))))
326 326
@@ -377,7 +377,7 @@ to use Semantic, and `semantic-init-hook' is run."
377Do not set this yourself. Call `semantic-debug'.") 377Do not set this yourself. Call `semantic-debug'.")
378 378
379(defun semantic-elapsed-time (start end) 379(defun semantic-elapsed-time (start end)
380 "Copied from elp.el. Was elp-elapsed-time. 380 "Copied from elp.el. Was `elp-elapsed-time'.
381Argument START and END bound the time being calculated." 381Argument START and END bound the time being calculated."
382 (+ (* (- (car end) (car start)) 65536.0) 382 (+ (* (- (car end) (car start)) 65536.0)
383 (- (car (cdr end)) (car (cdr start))) 383 (- (car (cdr end)) (car (cdr start)))
@@ -410,14 +410,14 @@ the output buffer."
410(define-overloadable-function semantic-parse-stream (stream nonterminal) 410(define-overloadable-function semantic-parse-stream (stream nonterminal)
411 "Parse STREAM, starting at the first NONTERMINAL rule. 411 "Parse STREAM, starting at the first NONTERMINAL rule.
412For bovine and wisent based parsers, STREAM is from the output of 412For bovine and wisent based parsers, STREAM is from the output of
413`semantic-lex', and NONTERMINAL is a rule in the apropriate language 413`semantic-lex', and NONTERMINAL is a rule in the appropriate language
414specific rules file. 414specific rules file.
415The default parser table used for bovine or wisent based parsers is 415The default parser table used for bovine or wisent based parsers is
416`semantic--parse-table'. 416`semantic--parse-table'.
417 417
418Must return a list: (STREAM TAGS) where STREAM is the unused elements 418Must return a list: (STREAM TAGS) where STREAM is the unused elements
419from STREAM, and TAGS is the list of semantic tags found, usually only 419from STREAM, and TAGS is the list of semantic tags found; usually only
420one tag is returned with the exception of compound statements") 420one tag is returned with the exception of compound statements.")
421 421
422(define-overloadable-function semantic-parse-changes () 422(define-overloadable-function semantic-parse-changes ()
423 "Reparse changes in the current buffer. 423 "Reparse changes in the current buffer.
@@ -433,7 +433,7 @@ will be silently ignored.
433 433
434Optional arguments: 434Optional arguments:
435NONTERMINAL is the rule to start parsing at. 435NONTERMINAL is the rule to start parsing at.
436DEPTH specifies the lexical depth to decend for parser that use 436DEPTH specifies the lexical depth to descend for parser that use
437lexical analysis as their first step. 437lexical analysis as their first step.
438RETURNONERROR specifies that parsing should stop on the first 438RETURNONERROR specifies that parsing should stop on the first
439unmatched syntax encountered. When nil, parsing skips the syntax, 439unmatched syntax encountered. When nil, parsing skips the syntax,
@@ -447,8 +447,8 @@ to cook raw tags.")
447(defun semantic-parse-region-default 447(defun semantic-parse-region-default
448 (start end &optional nonterminal depth returnonerror) 448 (start end &optional nonterminal depth returnonerror)
449 "Parse the area between START and END, and return any tags found. 449 "Parse the area between START and END, and return any tags found.
450If END needs to be extended due to a lexical token being too large, it 450If END needs to be extended due to a lexical token being too large,
451will be silently ignored. 451it will be silently ignored.
452Optional arguments: 452Optional arguments:
453NONTERMINAL is the rule to start parsing at if it is known. 453NONTERMINAL is the rule to start parsing at if it is known.
454DEPTH specifies the lexical depth to scan. 454DEPTH specifies the lexical depth to scan.
@@ -532,7 +532,7 @@ is requested."
532(defvar semantic-bovinate-nonterminal-check-obarray) 532(defvar semantic-bovinate-nonterminal-check-obarray)
533 533
534(defun semantic--set-buffer-cache (tagtable) 534(defun semantic--set-buffer-cache (tagtable)
535 "Set the toplevel cache cache to TAGTABLE." 535 "Set the toplevel tag cache to TAGTABLE."
536 (setq semantic--buffer-cache tagtable 536 (setq semantic--buffer-cache tagtable
537 semantic-unmatched-syntax-cache-check nil) 537 semantic-unmatched-syntax-cache-check nil)
538 ;; This is specific to the bovine parser. 538 ;; This is specific to the bovine parser.
@@ -560,7 +560,7 @@ is requested."
560 560
561(defvar semantic-minimum-working-buffer-size (* 1024 5) 561(defvar semantic-minimum-working-buffer-size (* 1024 5)
562 "*The minimum size of a buffer before working messages are displayed. 562 "*The minimum size of a buffer before working messages are displayed.
563Buffers smaller than will parse silently. 563Buffers smaller than this will parse silently.
564Buffers larger than this will display the working progress bar.") 564Buffers larger than this will display the working progress bar.")
565 565
566(defsubst semantic-parser-working-message (&optional arg) 566(defsubst semantic-parser-working-message (&optional arg)
@@ -652,7 +652,7 @@ was marked unparseable, then do nothing, and return the cache."
652 semantic--buffer-cache) 652 semantic--buffer-cache)
653 653
654(defun semantic-refresh-tags-safe () 654(defun semantic-refresh-tags-safe ()
655 "Refreshes the current buffer's tags safely. 655 "Refresh the current buffer's tags safely.
656 656
657Return non-nil if the refresh was successful. 657Return non-nil if the refresh was successful.
658Return nil if there is some sort of syntax error preventing a reparse. 658Return nil if there is some sort of syntax error preventing a reparse.
@@ -694,7 +694,7 @@ Does nothing if the current buffer doesn't need reparsing."
694 lexically-safe)))) 694 lexically-safe))))
695 695
696(defun semantic-bovinate-toplevel (&optional ignored) 696(defun semantic-bovinate-toplevel (&optional ignored)
697 "Backward Compatibility Function." 697 "Backward compatibility function."
698 (semantic-fetch-tags)) 698 (semantic-fetch-tags))
699(make-obsolete 'semantic-bovinate-toplevel 'semantic-fetch-tags "23.2") 699(make-obsolete 'semantic-bovinate-toplevel 'semantic-fetch-tags "23.2")
700 700
@@ -1014,10 +1014,10 @@ 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.
1021Prevent this load system from loading files in twice.") 1021Prevent this load system from loading files in twice.")
1022 1022
1023(defconst semantic-submode-list 1023(defconst semantic-submode-list
@@ -1045,7 +1045,7 @@ The possible elements of this list include the following:
1045 `global-semantic-highlight-func-mode' - Highlight the current tag. 1045 `global-semantic-highlight-func-mode' - Highlight the current tag.
1046 `global-semantic-stickyfunc-mode' - Show current fun in header line. 1046 `global-semantic-stickyfunc-mode' - Show current fun in header line.
1047 `global-semantic-mru-bookmark-mode' - Provide `switch-to-buffer'-like 1047 `global-semantic-mru-bookmark-mode' - Provide `switch-to-buffer'-like
1048 keybinding for tag names." 1048 keybinding for tag names."
1049 :group 'semantic 1049 :group 'semantic
1050 :type `(set ,@(mapcar (lambda (c) (list 'const c)) 1050 :type `(set ,@(mapcar (lambda (c) (list 'const c))
1051 semantic-submode-list))) 1051 semantic-submode-list)))
@@ -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/db-ebrowse.el b/lisp/cedet/semantic/db-ebrowse.el
index cd511708661..86602aaa95b 100644
--- a/lisp/cedet/semantic/db-ebrowse.el
+++ b/lisp/cedet/semantic/db-ebrowse.el
@@ -90,7 +90,7 @@ be searched."
90 :initarg :global-extract 90 :initarg :global-extract
91 :documentation 91 :documentation
92 "Table of ebrowse tags specific to this file. 92 "Table of ebrowse tags specific to this file.
93This table is compisited from the ebrowse *Globals* section.") 93This table is composited from the ebrowse *Globals* section.")
94 ) 94 )
95 "A table for returning search results from ebrowse.") 95 "A table for returning search results from ebrowse.")
96 96
@@ -128,7 +128,7 @@ EBROWSE is a C/C++ parser for use with `ebrowse' Emacs program.")
128 ))) 128 )))
129 129
130(defun semanticdb-create-ebrowse-database (dir) 130(defun semanticdb-create-ebrowse-database (dir)
131 "Create an EBROSE database for directory DIR. 131 "Create an EBROWSE database for directory DIR.
132The database file is stored in ~/.semanticdb, or whichever directory 132The database file is stored in ~/.semanticdb, or whichever directory
133is specified by `semanticdb-default-save-directory'." 133is specified by `semanticdb-default-save-directory'."
134 (interactive "DDirectory: ") 134 (interactive "DDirectory: ")
@@ -597,7 +597,7 @@ Return a list of tags."
597 597
598(defmethod semanticdb-find-tags-for-completion-method 598(defmethod semanticdb-find-tags-for-completion-method
599 ((table semanticdb-table-ebrowse) prefix &optional tags) 599 ((table semanticdb-table-ebrowse) prefix &optional tags)
600 "In TABLE, find all occurances of tags matching PREFIX. 600 "In TABLE, find all occurrences of tags matching PREFIX.
601Optional argument TAGS is a list of tags to search. 601Optional argument TAGS is a list of tags to search.
602Returns a table of all matching tags." 602Returns a table of all matching tags."
603 (if tags (call-next-method) 603 (if tags (call-next-method)
@@ -607,7 +607,7 @@ Returns a table of all matching tags."
607 607
608(defmethod semanticdb-find-tags-by-class-method 608(defmethod semanticdb-find-tags-by-class-method
609 ((table semanticdb-table-ebrowse) class &optional tags) 609 ((table semanticdb-table-ebrowse) class &optional tags)
610 "In TABLE, find all occurances of tags of CLASS. 610 "In TABLE, find all occurrences of tags of CLASS.
611Optional argument TAGS is a list of tags to search. 611Optional argument TAGS is a list of tags to search.
612Returns a table of all matching tags." 612Returns a table of all matching tags."
613 (if tags (call-next-method) 613 (if tags (call-next-method)
@@ -625,7 +625,7 @@ Returns a table of all matching tags."
625(defmethod semanticdb-deep-find-tags-by-name-method 625(defmethod semanticdb-deep-find-tags-by-name-method
626 ((table semanticdb-table-ebrowse) name &optional tags) 626 ((table semanticdb-table-ebrowse) name &optional tags)
627 "Find all tags name NAME in TABLE. 627 "Find all tags name NAME in TABLE.
628Optional argument TAGS is a list of tags t 628Optional argument TAGS is a list of tags to search.
629Like `semanticdb-find-tags-by-name-method' for ebrowse." 629Like `semanticdb-find-tags-by-name-method' for ebrowse."
630 ;;(semanticdb-find-tags-by-name-method table name tags) 630 ;;(semanticdb-find-tags-by-name-method table name tags)
631 (call-next-method)) 631 (call-next-method))
@@ -640,7 +640,7 @@ Like `semanticdb-find-tags-by-name-method' for ebrowse."
640 640
641(defmethod semanticdb-deep-find-tags-for-completion-method 641(defmethod semanticdb-deep-find-tags-for-completion-method
642 ((table semanticdb-table-ebrowse) prefix &optional tags) 642 ((table semanticdb-table-ebrowse) prefix &optional tags)
643 "In TABLE, find all occurances of tags matching PREFIX. 643 "In TABLE, find all occurrences of tags matching PREFIX.
644Optional argument TAGS is a list of tags to search. 644Optional argument TAGS is a list of tags to search.
645Like `semanticdb-find-tags-for-completion-method' for ebrowse." 645Like `semanticdb-find-tags-for-completion-method' for ebrowse."
646 ;;(semanticdb-find-tags-for-completion-method table prefix tags) 646 ;;(semanticdb-find-tags-for-completion-method table prefix tags)
diff --git a/lisp/cedet/semantic/db-el.el b/lisp/cedet/semantic/db-el.el
index d46f727fca6..d313d1dc578 100644
--- a/lisp/cedet/semantic/db-el.el
+++ b/lisp/cedet/semantic/db-el.el
@@ -76,7 +76,7 @@ It does not need refreshing."
76(defvar-mode-local emacs-lisp-mode semanticdb-find-default-throttle 76(defvar-mode-local emacs-lisp-mode semanticdb-find-default-throttle
77 '(project omniscience) 77 '(project omniscience)
78 "Search project files, then search this omniscience database. 78 "Search project files, then search this omniscience database.
79It is not necessary to to system or recursive searching because of 79It is not necessary to do system or recursive searching because of
80the omniscience database.") 80the omniscience database.")
81 81
82;;; Filename based methods 82;;; Filename based methods
@@ -246,12 +246,12 @@ TOKTYPE is a hint to the type of tag desired."
246;;; Search Overrides 246;;; Search Overrides
247;; 247;;
248(defvar semanticdb-elisp-mapatom-collector nil 248(defvar semanticdb-elisp-mapatom-collector nil
249 "Variable used to collect mapatoms output.") 249 "Variable used to collect `mapatoms' output.")
250 250
251(defmethod semanticdb-find-tags-by-name-method 251(defmethod semanticdb-find-tags-by-name-method
252 ((table semanticdb-table-emacs-lisp) name &optional tags) 252 ((table semanticdb-table-emacs-lisp) name &optional tags)
253 "Find all tags name NAME in TABLE. 253 "Find all tags named NAME in TABLE.
254Uses `inter-soft' to match NAME to emacs symbols. 254Uses `intern-soft' to match NAME to Emacs symbols.
255Return a list of tags." 255Return a list of tags."
256 (if tags (call-next-method) 256 (if tags (call-next-method)
257 ;; No need to search. Use `intern-soft' which does the same thing for us. 257 ;; No need to search. Use `intern-soft' which does the same thing for us.
@@ -281,7 +281,7 @@ Return a list of tags."
281 281
282(defmethod semanticdb-find-tags-for-completion-method 282(defmethod semanticdb-find-tags-for-completion-method
283 ((table semanticdb-table-emacs-lisp) prefix &optional tags) 283 ((table semanticdb-table-emacs-lisp) prefix &optional tags)
284 "In TABLE, find all occurances of tags matching PREFIX. 284 "In TABLE, find all occurrences of tags matching PREFIX.
285Optional argument TAGS is a list of tags to search. 285Optional argument TAGS is a list of tags to search.
286Returns a table of all matching tags." 286Returns a table of all matching tags."
287 (if tags (call-next-method) 287 (if tags (call-next-method)
@@ -290,7 +290,7 @@ Returns a table of all matching tags."
290 290
291(defmethod semanticdb-find-tags-by-class-method 291(defmethod semanticdb-find-tags-by-class-method
292 ((table semanticdb-table-emacs-lisp) class &optional tags) 292 ((table semanticdb-table-emacs-lisp) class &optional tags)
293 "In TABLE, find all occurances of tags of CLASS. 293 "In TABLE, find all occurrences of tags of CLASS.
294Optional argument TAGS is a list of tags to search. 294Optional argument TAGS is a list of tags to search.
295Returns a table of all matching tags." 295Returns a table of all matching tags."
296 (if tags (call-next-method) 296 (if tags (call-next-method)
@@ -316,7 +316,7 @@ Like `semanticdb-find-tags-by-name-method' for Emacs Lisp."
316 316
317(defmethod semanticdb-deep-find-tags-for-completion-method 317(defmethod semanticdb-deep-find-tags-for-completion-method
318 ((table semanticdb-table-emacs-lisp) prefix &optional tags) 318 ((table semanticdb-table-emacs-lisp) prefix &optional tags)
319 "In TABLE, find all occurances of tags matching PREFIX. 319 "In TABLE, find all occurrences of tags matching PREFIX.
320Optional argument TAGS is a list of tags to search. 320Optional argument TAGS is a list of tags to search.
321Like `semanticdb-find-tags-for-completion-method' for Emacs Lisp." 321Like `semanticdb-find-tags-for-completion-method' for Emacs Lisp."
322 (semanticdb-find-tags-for-completion-method table prefix tags)) 322 (semanticdb-find-tags-for-completion-method table prefix tags))
diff --git a/lisp/cedet/semantic/db-find.el b/lisp/cedet/semantic/db-find.el
index 59b190f0073..eba04a7ee02 100644
--- a/lisp/cedet/semantic/db-find.el
+++ b/lisp/cedet/semantic/db-find.el
@@ -281,7 +281,7 @@ identified by translating PATH. Such searches use brute force to
281scan every available table. 281scan every available table.
282 282
283The return value is a list of objects of type `semanticdb-table' or 283The return value is a list of objects of type `semanticdb-table' or
284it's children. In the case of passing in a find result, the result 284their children. In the case of passing in a find result, the result
285is returned unchanged. 285is returned unchanged.
286 286
287This routine uses `semanticdb-find-table-for-include' to translate 287This routine uses `semanticdb-find-table-for-include' to translate
@@ -366,7 +366,7 @@ Default action as described in `semanticdb-find-translate-path'."
366 ans)) 366 ans))
367 367
368(defun semanticdb-find-need-cache-update-p (table) 368(defun semanticdb-find-need-cache-update-p (table)
369 "Non nil if the semanticdb TABLE cache needs to be updated." 369 "Non-nil if the semanticdb TABLE cache needs to be updated."
370 ;; If we were passed in something related to a TABLE, 370 ;; If we were passed in something related to a TABLE,
371 ;; do a caching lookup. 371 ;; do a caching lookup.
372 (let* ((index (semanticdb-get-table-index table)) 372 (let* ((index (semanticdb-get-table-index table))
@@ -431,7 +431,7 @@ Default action as described in `semanticdb-find-translate-path'."
431 "All include tags scanned, plus action taken on the tag. 431 "All include tags scanned, plus action taken on the tag.
432Each entry is an alist: 432Each entry is an alist:
433 (ACTION . TAG) 433 (ACTION . TAG)
434where ACTION is one of 'scanned, 'duplicate, 'lost. 434where ACTION is one of 'scanned, 'duplicate, 'lost
435and TAG is a clone of the include tag that was found.") 435and TAG is a clone of the include tag that was found.")
436(make-variable-buffer-local 'semanticdb-find-scanned-include-tags) 436(make-variable-buffer-local 'semanticdb-find-scanned-include-tags)
437 437
@@ -927,7 +927,7 @@ but should be good enough for debugging assertions."
927 927
928(defun semanticdb-find-result-with-nil-p (resultp) 928(defun semanticdb-find-result-with-nil-p (resultp)
929 "Non-nil of RESULTP is in the form of a semanticdb search result. 929 "Non-nil of RESULTP is in the form of a semanticdb search result.
930nil is a valid value where a TABLE usually is, but only if the TAG 930The value nil is valid where a TABLE usually is, but only if the TAG
931results include overlays. 931results include overlays.
932This query only really tests the first entry in the list that is RESULTP, 932This query only really tests the first entry in the list that is RESULTP,
933but should be good enough for debugging assertions." 933but should be good enough for debugging assertions."
@@ -1090,8 +1090,8 @@ Returns result."
1090 "Collect all tags returned by FUNCTION over PATH. 1090 "Collect all tags returned by FUNCTION over PATH.
1091The FUNCTION must take two arguments. The first is TABLE, 1091The FUNCTION must take two arguments. The first is TABLE,
1092which is a semanticdb table containing tags. The second argument 1092which is a semanticdb table containing tags. The second argument
1093to FUNCTION is TAGS. TAGS may be a list of tags. If TAGS is non-nil, then 1093to FUNCTION is TAGS. TAGS may be a list of tags. If TAGS is non-nil,
1094FUNCTION should search the TAG list, not through TABLE. 1094then FUNCTION should search the TAG list, not through TABLE.
1095 1095
1096See `semanticdb-find-translate-path' for details on PATH. 1096See `semanticdb-find-translate-path' for details on PATH.
1097FIND-FILE-MATCH indicates that any time a match is found, the file 1097FIND-FILE-MATCH indicates that any time a match is found, the file
@@ -1296,38 +1296,38 @@ associated with that tag should be loaded into a buffer."
1296 1296
1297;;; Top level Searches 1297;;; Top level Searches
1298(defmethod semanticdb-find-tags-by-name-method ((table semanticdb-abstract-table) name &optional tags) 1298(defmethod semanticdb-find-tags-by-name-method ((table semanticdb-abstract-table) name &optional tags)
1299 "In TABLE, find all occurances of tags with NAME. 1299 "In TABLE, find all occurrences of tags with NAME.
1300Optional argument TAGS is a list of tags to search. 1300Optional argument TAGS is a list of tags to search.
1301Returns a table of all matching tags." 1301Returns a table of all matching tags."
1302 (semantic-find-tags-by-name name (or tags (semanticdb-get-tags table)))) 1302 (semantic-find-tags-by-name name (or tags (semanticdb-get-tags table))))
1303 1303
1304(defmethod semanticdb-find-tags-by-name-regexp-method ((table semanticdb-abstract-table) regexp &optional tags) 1304(defmethod semanticdb-find-tags-by-name-regexp-method ((table semanticdb-abstract-table) regexp &optional tags)
1305 "In TABLE, find all occurances of tags matching REGEXP. 1305 "In TABLE, find all occurrences of tags matching REGEXP.
1306Optional argument TAGS is a list of tags to search. 1306Optional argument TAGS is a list of tags to search.
1307Returns a table of all matching tags." 1307Returns a table of all matching tags."
1308 (semantic-find-tags-by-name-regexp regexp (or tags (semanticdb-get-tags table)))) 1308 (semantic-find-tags-by-name-regexp regexp (or tags (semanticdb-get-tags table))))
1309 1309
1310(defmethod semanticdb-find-tags-for-completion-method ((table semanticdb-abstract-table) prefix &optional tags) 1310(defmethod semanticdb-find-tags-for-completion-method ((table semanticdb-abstract-table) prefix &optional tags)
1311 "In TABLE, find all occurances of tags matching PREFIX. 1311 "In TABLE, find all occurrences of tags matching PREFIX.
1312Optional argument TAGS is a list of tags to search. 1312Optional argument TAGS is a list of tags to search.
1313Returns a table of all matching tags." 1313Returns a table of all matching tags."
1314 (semantic-find-tags-for-completion prefix (or tags (semanticdb-get-tags table)))) 1314 (semantic-find-tags-for-completion prefix (or tags (semanticdb-get-tags table))))
1315 1315
1316(defmethod semanticdb-find-tags-by-class-method ((table semanticdb-abstract-table) class &optional tags) 1316(defmethod semanticdb-find-tags-by-class-method ((table semanticdb-abstract-table) class &optional tags)
1317 "In TABLE, find all occurances of tags of CLASS. 1317 "In TABLE, find all occurrences of tags of CLASS.
1318Optional argument TAGS is a list of tags to search. 1318Optional argument TAGS is a list of tags to search.
1319Returns a table of all matching tags." 1319Returns a table of all matching tags."
1320 (semantic-find-tags-by-class class (or tags (semanticdb-get-tags table)))) 1320 (semantic-find-tags-by-class class (or tags (semanticdb-get-tags table))))
1321 1321
1322(defmethod semanticdb-find-tags-external-children-of-type-method ((table semanticdb-abstract-table) parent &optional tags) 1322(defmethod semanticdb-find-tags-external-children-of-type-method ((table semanticdb-abstract-table) parent &optional tags)
1323 "In TABLE, find all occurances of tags whose parent is the PARENT type. 1323 "In TABLE, find all occurrences of tags whose parent is the PARENT type.
1324Optional argument TAGS is a list of tags to search. 1324Optional argument TAGS is a list of tags to search.
1325Returns a table of all matching tags." 1325Returns a table of all matching tags."
1326 (require 'semantic/find) 1326 (require 'semantic/find)
1327 (semantic-find-tags-external-children-of-type parent (or tags (semanticdb-get-tags table)))) 1327 (semantic-find-tags-external-children-of-type parent (or tags (semanticdb-get-tags table))))
1328 1328
1329(defmethod semanticdb-find-tags-subclasses-of-type-method ((table semanticdb-abstract-table) parent &optional tags) 1329(defmethod semanticdb-find-tags-subclasses-of-type-method ((table semanticdb-abstract-table) parent &optional tags)
1330 "In TABLE, find all occurances of tags whose parent is the PARENT type. 1330 "In TABLE, find all occurrences of tags whose parent is the PARENT type.
1331Optional argument TAGS is a list of tags to search. 1331Optional argument TAGS is a list of tags to search.
1332Returns a table of all matching tags." 1332Returns a table of all matching tags."
1333 (require 'semantic/find) 1333 (require 'semantic/find)
@@ -1335,7 +1335,7 @@ Returns a table of all matching tags."
1335 1335
1336;;; Deep Searches 1336;;; Deep Searches
1337(defmethod semanticdb-deep-find-tags-by-name-method ((table semanticdb-abstract-table) name &optional tags) 1337(defmethod semanticdb-deep-find-tags-by-name-method ((table semanticdb-abstract-table) name &optional tags)
1338 "In TABLE, find all occurances of tags with NAME. 1338 "In TABLE, find all occurrences of tags with NAME.
1339Search in all tags in TABLE, and all components of top level tags in 1339Search in all tags in TABLE, and all components of top level tags in
1340TABLE. 1340TABLE.
1341Optional argument TAGS is a list of tags to search. 1341Optional argument TAGS is a list of tags to search.
@@ -1343,7 +1343,7 @@ Return a table of all matching tags."
1343 (semantic-find-tags-by-name name (semantic-flatten-tags-table (or tags (semanticdb-get-tags table))))) 1343 (semantic-find-tags-by-name name (semantic-flatten-tags-table (or tags (semanticdb-get-tags table)))))
1344 1344
1345(defmethod semanticdb-deep-find-tags-by-name-regexp-method ((table semanticdb-abstract-table) regexp &optional tags) 1345(defmethod semanticdb-deep-find-tags-by-name-regexp-method ((table semanticdb-abstract-table) regexp &optional tags)
1346 "In TABLE, find all occurances of tags matching REGEXP. 1346 "In TABLE, find all occurrences of tags matching REGEXP.
1347Search in all tags in TABLE, and all components of top level tags in 1347Search in all tags in TABLE, and all components of top level tags in
1348TABLE. 1348TABLE.
1349Optional argument TAGS is a list of tags to search. 1349Optional argument TAGS is a list of tags to search.
@@ -1351,7 +1351,7 @@ Return a table of all matching tags."
1351 (semantic-find-tags-by-name-regexp regexp (semantic-flatten-tags-table (or tags (semanticdb-get-tags table))))) 1351 (semantic-find-tags-by-name-regexp regexp (semantic-flatten-tags-table (or tags (semanticdb-get-tags table)))))
1352 1352
1353(defmethod semanticdb-deep-find-tags-for-completion-method ((table semanticdb-abstract-table) prefix &optional tags) 1353(defmethod semanticdb-deep-find-tags-for-completion-method ((table semanticdb-abstract-table) prefix &optional tags)
1354 "In TABLE, find all occurances of tags matching PREFIX. 1354 "In TABLE, find all occurrences of tags matching PREFIX.
1355Search in all tags in TABLE, and all components of top level tags in 1355Search in all tags in TABLE, and all components of top level tags in
1356TABLE. 1356TABLE.
1357Optional argument TAGS is a list of tags to search. 1357Optional argument TAGS is a list of tags to search.
diff --git a/lisp/cedet/semantic/db-global.el b/lisp/cedet/semantic/db-global.el
index bfd97fc5a54..444efbd17e0 100644
--- a/lisp/cedet/semantic/db-global.el
+++ b/lisp/cedet/semantic/db-global.el
@@ -66,7 +66,7 @@ in a GNU Global supported hierarchy."
66 ) 66 )
67 67
68(defun semanticdb-enable-gnu-global-hook () 68(defun semanticdb-enable-gnu-global-hook ()
69 "Add support for GNU Global in the current buffer via semantic-init-hook. 69 "Add support for GNU Global in the current buffer via `semantic-init-hook'.
70MODE is the major mode to support." 70MODE is the major mode to support."
71 (semanticdb-enable-gnu-global-in-buffer t)) 71 (semanticdb-enable-gnu-global-in-buffer t))
72 72
@@ -78,8 +78,8 @@ MODE is the major mode to support."
78 78
79(defun semanticdb-enable-gnu-global-in-buffer (&optional dont-err-if-not-available) 79(defun semanticdb-enable-gnu-global-in-buffer (&optional dont-err-if-not-available)
80 "Enable a GNU Global database in the current buffer. 80 "Enable a GNU Global database in the current buffer.
81Argument DONT-ERR-IF-NOT-AVAILABLE will throw an error if GNU Global 81When GNU Global is not available for this directory, display a message
82is not available for this directory." 82if optional DONT-ERR-IF-NOT-AVAILABLE is non-nil; else throw an error."
83 (interactive "P") 83 (interactive "P")
84 (if (cedet-gnu-global-root) 84 (if (cedet-gnu-global-root)
85 (setq 85 (setq
@@ -168,7 +168,7 @@ Return a list of tags."
168 168
169(defmethod semanticdb-find-tags-for-completion-method 169(defmethod semanticdb-find-tags-for-completion-method
170 ((table semanticdb-table-global) prefix &optional tags) 170 ((table semanticdb-table-global) prefix &optional tags)
171 "In TABLE, find all occurances of tags matching PREFIX. 171 "In TABLE, find all occurrences of tags matching PREFIX.
172Optional argument TAGS is a list of tags to search. 172Optional argument TAGS is a list of tags to search.
173Returns a table of all matching tags." 173Returns a table of all matching tags."
174 (if tags (call-next-method) 174 (if tags (call-next-method)
@@ -195,7 +195,7 @@ Returns a table of all matching tags."
195(defmethod semanticdb-deep-find-tags-by-name-method 195(defmethod semanticdb-deep-find-tags-by-name-method
196 ((table semanticdb-table-global) name &optional tags) 196 ((table semanticdb-table-global) name &optional tags)
197 "Find all tags name NAME in TABLE. 197 "Find all tags name NAME in TABLE.
198Optional argument TAGS is a list of tags t 198Optional argument TAGS is a list of tags to search.
199Like `semanticdb-find-tags-by-name-method' for global." 199Like `semanticdb-find-tags-by-name-method' for global."
200 (semanticdb-find-tags-by-name-method table name tags)) 200 (semanticdb-find-tags-by-name-method table name tags))
201 201
@@ -208,7 +208,7 @@ Like `semanticdb-find-tags-by-name-method' for global."
208 208
209(defmethod semanticdb-deep-find-tags-for-completion-method 209(defmethod semanticdb-deep-find-tags-for-completion-method
210 ((table semanticdb-table-global) prefix &optional tags) 210 ((table semanticdb-table-global) prefix &optional tags)
211 "In TABLE, find all occurances of tags matching PREFIX. 211 "In TABLE, find all occurrences of tags matching PREFIX.
212Optional argument TAGS is a list of tags to search. 212Optional argument TAGS is a list of tags to search.
213Like `semanticdb-find-tags-for-completion-method' for global." 213Like `semanticdb-find-tags-for-completion-method' for global."
214 (semanticdb-find-tags-for-completion-method table prefix tags)) 214 (semanticdb-find-tags-for-completion-method table prefix tags))
diff --git a/lisp/cedet/semantic/db-javascript.el b/lisp/cedet/semantic/db-javascript.el
index 2e357e677e2..a972c33f32a 100644
--- a/lisp/cedet/semantic/db-javascript.el
+++ b/lisp/cedet/semantic/db-javascript.el
@@ -77,7 +77,7 @@
77 (("uriComponent" variable nil nil nil))) 77 (("uriComponent" variable nil nil nil)))
78 nil nil)) 78 nil nil))
79 "Hard-coded list of javascript tags for semanticdb. 79 "Hard-coded list of javascript tags for semanticdb.
80See bottom of this file for instruction on managing this list.") 80See bottom of this file for instructions on managing this list.")
81 81
82;;; Classes: 82;;; Classes:
83(defclass semanticdb-table-javascript (semanticdb-search-results-table) 83(defclass semanticdb-table-javascript (semanticdb-search-results-table)
@@ -87,7 +87,7 @@ See bottom of this file for instruction on managing this list.")
87 87
88(defclass semanticdb-project-database-javascript 88(defclass semanticdb-project-database-javascript
89 (semanticdb-project-database 89 (semanticdb-project-database
90 eieio-singleton ;this db is for js globals, so singleton is apropriate 90 eieio-singleton ;this db is for js globals, so singleton is appropriate
91 ) 91 )
92 ((new-table-class :initform semanticdb-table-javascript 92 ((new-table-class :initform semanticdb-table-javascript
93 :type class 93 :type class
@@ -107,7 +107,7 @@ See bottom of this file for instruction on managing this list.")
107(defvar-mode-local javascript-mode semanticdb-find-default-throttle 107(defvar-mode-local javascript-mode semanticdb-find-default-throttle
108 '(project omniscience) 108 '(project omniscience)
109 "Search project files, then search this omniscience database. 109 "Search project files, then search this omniscience database.
110It is not necessary to to system or recursive searching because of 110It is not necessary to do system or recursive searching because of
111the omniscience database.") 111the omniscience database.")
112 112
113;;; Filename based methods 113;;; Filename based methods
@@ -157,7 +157,7 @@ local variable."
157;; to a search list. 157;; to a search list.
158(define-mode-local-override semanticdb-find-translate-path javascript-mode 158(define-mode-local-override semanticdb-find-translate-path javascript-mode
159 (path brutish) 159 (path brutish)
160 "Return a list of semanticdb tables asociated with PATH. 160 "Return a list of semanticdb tables associated with PATH.
161If brutish, do the default action. 161If brutish, do the default action.
162If not brutish, do the default action, and append the system 162If not brutish, do the default action, and append the system
163database (if available.)" 163database (if available.)"
@@ -216,7 +216,7 @@ Return a list of tags."
216 216
217(defmethod semanticdb-find-tags-for-completion-method 217(defmethod semanticdb-find-tags-for-completion-method
218 ((table semanticdb-table-javascript) prefix &optional tags) 218 ((table semanticdb-table-javascript) prefix &optional tags)
219 "In TABLE, find all occurances of tags matching PREFIX. 219 "In TABLE, find all occurrences of tags matching PREFIX.
220Optional argument TAGS is a list of tags to search. 220Optional argument TAGS is a list of tags to search.
221Returns a table of all matching tags." 221Returns a table of all matching tags."
222 (if tags (call-next-method) 222 (if tags (call-next-method)
@@ -226,7 +226,7 @@ Returns a table of all matching tags."
226 226
227(defmethod semanticdb-find-tags-by-class-method 227(defmethod semanticdb-find-tags-by-class-method
228 ((table semanticdb-table-javascript) class &optional tags) 228 ((table semanticdb-table-javascript) class &optional tags)
229 "In TABLE, find all occurances of tags of CLASS. 229 "In TABLE, find all occurrences of tags of CLASS.
230Optional argument TAGS is a list of tags to search. 230Optional argument TAGS is a list of tags to search.
231Returns a table of all matching tags." 231Returns a table of all matching tags."
232 (if tags (call-next-method) 232 (if tags (call-next-method)
@@ -248,7 +248,7 @@ Returns a table of all matching tags."
248(defmethod semanticdb-deep-find-tags-by-name-method 248(defmethod semanticdb-deep-find-tags-by-name-method
249 ((table semanticdb-table-javascript) name &optional tags) 249 ((table semanticdb-table-javascript) name &optional tags)
250 "Find all tags name NAME in TABLE. 250 "Find all tags name NAME in TABLE.
251Optional argument TAGS is a list of tags t 251Optional argument TAGS is a list of tags to search.
252Like `semanticdb-find-tags-by-name-method' for javascript." 252Like `semanticdb-find-tags-by-name-method' for javascript."
253 (semanticdb-find-tags-by-name-method table name tags)) 253 (semanticdb-find-tags-by-name-method table name tags))
254 254
@@ -261,7 +261,7 @@ Like `semanticdb-find-tags-by-name-method' for javascript."
261 261
262(defmethod semanticdb-deep-find-tags-for-completion-method 262(defmethod semanticdb-deep-find-tags-for-completion-method
263 ((table semanticdb-table-javascript) prefix &optional tags) 263 ((table semanticdb-table-javascript) prefix &optional tags)
264 "In TABLE, find all occurances of tags matching PREFIX. 264 "In TABLE, find all occurrences of tags matching PREFIX.
265Optional argument TAGS is a list of tags to search. 265Optional argument TAGS is a list of tags to search.
266Like `semanticdb-find-tags-for-completion-method' for javascript." 266Like `semanticdb-find-tags-for-completion-method' for javascript."
267 (semanticdb-find-tags-for-completion-method table prefix tags)) 267 (semanticdb-find-tags-for-completion-method table prefix tags))
@@ -270,7 +270,7 @@ Like `semanticdb-find-tags-for-completion-method' for javascript."
270;; 270;;
271(defmethod semanticdb-find-tags-external-children-of-type-method 271(defmethod semanticdb-find-tags-external-children-of-type-method
272 ((table semanticdb-table-javascript) type &optional tags) 272 ((table semanticdb-table-javascript) type &optional tags)
273 "Find all nonterminals which are child elements of TYPE 273 "Find all nonterminals which are child elements of TYPE.
274Optional argument TAGS is a list of tags to search. 274Optional argument TAGS is a list of tags to search.
275Return a list of tags." 275Return a list of tags."
276 (if tags (call-next-method) 276 (if tags (call-next-method)
diff --git a/lisp/cedet/semantic/idle.el b/lisp/cedet/semantic/idle.el
index cf107232645..ba7a49757a5 100644
--- a/lisp/cedet/semantic/idle.el
+++ b/lisp/cedet/semantic/idle.el
@@ -338,7 +338,7 @@ Disable to prevent lots of excessive parsing in idle time."
338(defun semantic-idle-work-for-one-buffer (buffer) 338(defun semantic-idle-work-for-one-buffer (buffer)
339 "Do long-processing work 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
@@ -367,7 +367,7 @@ Returns t of all processing succeeded."
367 367
368(defun semantic-idle-work-core-handler () 368(defun semantic-idle-work-core-handler ()
369 "Core handler for idle work processing of long running tasks. 369 "Core handler for idle work processing of long running tasks.
370Visits semantic controlled buffers, and makes sure all needed 370Visits Semantic controlled buffers, and makes sure all needed
371include files have been parsed, and that the typecache is up to date. 371include files have been parsed, and that the typecache is up to date.
372Uses `semantic-idle-work-for-on-buffer' to do the work." 372Uses `semantic-idle-work-for-on-buffer' to do the work."
373 (let ((errbuf nil) 373 (let ((errbuf nil)
@@ -577,7 +577,7 @@ Does nothing if the current buffer doesn't need reparsing."
577DOC will be a documentation string describing FORMS. 577DOC will be a documentation string describing FORMS.
578FORMS will be called during idle time after the current buffer's 578FORMS will be called during idle time after the current buffer's
579semantic tag information has been updated. 579semantic tag information has been updated.
580This routines creates the following functions and variables:" 580This routine creates the following functions and variables:"
581 (let ((global (intern (concat "global-" (symbol-name name) "-mode"))) 581 (let ((global (intern (concat "global-" (symbol-name name) "-mode")))
582 (mode (intern (concat (symbol-name name) "-mode"))) 582 (mode (intern (concat (symbol-name name) "-mode")))
583 (hook (intern (concat (symbol-name name) "-mode-hook"))) 583 (hook (intern (concat (symbol-name name) "-mode-hook")))
@@ -764,7 +764,7 @@ specific to a major mode. For example, in jde mode:
764 jde-java-font-lock-code-face)))") 764 jde-java-font-lock-code-face)))")
765 765
766(defun semantic-idle-summary-useful-context-p () 766(defun semantic-idle-summary-useful-context-p ()
767 "Non-nil of we should show a summary based on context." 767 "Non-nil if we should show a summary based on context."
768 (if (and (boundp 'font-lock-mode) 768 (if (and (boundp 'font-lock-mode)
769 font-lock-mode 769 font-lock-mode
770 (memq (get-text-property (point) 'face) 770 (memq (get-text-property (point) 'face)
@@ -959,7 +959,7 @@ Call `semantic-symref-hits-in-region' to identify local references."
959;;;###autoload 959;;;###autoload
960(defun global-semantic-idle-scheduler-mode (&optional arg) 960(defun global-semantic-idle-scheduler-mode (&optional arg)
961 "Toggle global use of option `semantic-idle-scheduler-mode'. 961 "Toggle global use of option `semantic-idle-scheduler-mode'.
962The idle scheduler with automatically reparse buffers in idle time, 962The idle scheduler will automatically reparse buffers in idle time,
963and then schedule other jobs setup with `semantic-idle-scheduler-add'. 963and then schedule other jobs setup with `semantic-idle-scheduler-add'.
964If ARG is positive, enable, if it is negative, disable. 964If ARG is positive, enable, if it is negative, disable.
965If ARG is nil, then toggle." 965If ARG is nil, then toggle."
diff --git a/lisp/cedet/semantic/util-modes.el b/lisp/cedet/semantic/util-modes.el
index 21087ef2506..7e3a615d0b1 100644
--- a/lisp/cedet/semantic/util-modes.el
+++ b/lisp/cedet/semantic/util-modes.el
@@ -337,7 +337,7 @@ semantic parser cannot match is highlighted with a red underline."
337 (((class color) (background light)) 337 (((class color) (background light))
338 (:underline "red"))) 338 (:underline "red")))
339 "Face used to show unmatched syntax in. 339 "Face used to show unmatched syntax in.
340The face is used in `semantic-show-unmatched-syntax-mode'." 340The face is used in `semantic-show-unmatched-syntax-mode'."
341 :group 'semantic-faces) 341 :group 'semantic-faces)
342 342
343(defsubst semantic-unmatched-syntax-overlay-p (overlay) 343(defsubst semantic-unmatched-syntax-overlay-p (overlay)
@@ -767,7 +767,7 @@ This makes it appear that the first line of that tag is
767 ] 767 ]
768 [ "Narrow To Headerline Tag" senator-narrow-to-defun 768 [ "Narrow To Headerline Tag" senator-narrow-to-defun
769 :active (semantic-current-tag) 769 :active (semantic-current-tag)
770 :help "Narrow to the bounds of the current tag."] 770 :help "Narrow to the bounds of the current tag"]
771 [ "Fold Headerline Tag" senator-fold-tag-toggle 771 [ "Fold Headerline Tag" senator-fold-tag-toggle
772 :active (semantic-current-tag) 772 :active (semantic-current-tag)
773 :style toggle 773 :style toggle
@@ -854,7 +854,7 @@ when it lands in the sticky line."
854 :type 'string) 854 :type 'string)
855 855
856(defvar semantic-stickyfunc-old-hlf nil 856(defvar semantic-stickyfunc-old-hlf nil
857 "Value of the header line when entering sticky func mode.") 857 "Value of the header line when entering stickyfunc mode.")
858 858
859(defconst semantic-stickyfunc-header-line-format 859(defconst semantic-stickyfunc-header-line-format
860 (cond ((featurep 'xemacs) 860 (cond ((featurep 'xemacs)
@@ -868,7 +868,7 @@ when it lands in the sticky line."
868 '(:eval (list semantic-stickyfunc-indent-string 868 '(:eval (list semantic-stickyfunc-indent-string
869 (semantic-stickyfunc-fetch-stickyline)))) 869 (semantic-stickyfunc-fetch-stickyline))))
870 (t nil)) 870 (t nil))
871 "The header line format used by sticky func mode.") 871 "The header line format used by stickyfunc mode.")
872 872
873(defun semantic-stickyfunc-mode-setup () 873(defun semantic-stickyfunc-mode-setup ()
874 "Setup option `semantic-stickyfunc-mode'. 874 "Setup option `semantic-stickyfunc-mode'.
@@ -936,7 +936,7 @@ minor mode is enabled."
936 936
937(defvar semantic-stickyfunc-sticky-classes 937(defvar semantic-stickyfunc-sticky-classes
938 '(function type) 938 '(function type)
939 "List of tag classes which sticky func will display in the header line.") 939 "List of tag classes which stickyfunc will display in the header line.")
940(make-variable-buffer-local 'semantic-stickyfunc-sticky-classes) 940(make-variable-buffer-local 'semantic-stickyfunc-sticky-classes)
941 941
942(defun semantic-stickyfunc-tag-to-stick () 942(defun semantic-stickyfunc-tag-to-stick ()
@@ -953,7 +953,7 @@ minor mode is enabled."
953 953
954(defun semantic-stickyfunc-fetch-stickyline () 954(defun semantic-stickyfunc-fetch-stickyline ()
955 "Make the function at the top of the current window sticky. 955 "Make the function at the top of the current window sticky.
956Capture it's function declaration, and place it in the header line. 956Capture its function declaration, and place it in the header line.
957If there is no function, disable the header line." 957If there is no function, disable the header line."
958 (let ((str 958 (let ((str
959 (save-excursion 959 (save-excursion
@@ -962,7 +962,7 @@ If there is no function, disable the header line."
962 (end-of-line) 962 (end-of-line)
963 ;; Capture this function 963 ;; Capture this function
964 (let* ((tag (semantic-stickyfunc-tag-to-stick))) 964 (let* ((tag (semantic-stickyfunc-tag-to-stick)))
965 ;; TAG is nil if there was nothing of the apropriate type there. 965 ;; TAG is nil if there was nothing of the appropriate type there.
966 (if (not tag) 966 (if (not tag)
967 ;; Set it to be the text under the header line 967 ;; Set it to be the text under the header line
968 (buffer-substring (point-at-bol) (point-at-eol)) 968 (buffer-substring (point-at-bol) (point-at-eol))
@@ -1080,7 +1080,7 @@ When enabled, the first line of the current tag is highlighted."
1080 ] 1080 ]
1081 [ "Narrow To Tag" senator-narrow-to-defun 1081 [ "Narrow To Tag" senator-narrow-to-defun
1082 :active (semantic-current-tag) 1082 :active (semantic-current-tag)
1083 :help "Narrow to the bounds of the current tag."] 1083 :help "Narrow to the bounds of the current tag"]
1084 [ "Fold Tag" senator-fold-tag-toggle 1084 [ "Fold Tag" senator-fold-tag-toggle
1085 :active (semantic-current-tag) 1085 :active (semantic-current-tag)
1086 :style toggle 1086 :style toggle
@@ -1129,7 +1129,7 @@ Use the command `semantic-highlight-func-mode' to change this variable.")
1129 1129
1130(defun semantic-highlight-func-mode-setup () 1130(defun semantic-highlight-func-mode-setup ()
1131 "Setup option `semantic-highlight-func-mode'. 1131 "Setup option `semantic-highlight-func-mode'.
1132For semantic enabled buffers, highlight the first line of the 1132For Semantic enabled buffers, highlight the first line of the
1133current tag declaration." 1133current tag declaration."
1134 (if semantic-highlight-func-mode 1134 (if semantic-highlight-func-mode
1135 (progn 1135 (progn
@@ -1202,7 +1202,7 @@ function was called, move the overlay."
1202 (setq semantic-highlight-func-ct-overlay ol) 1202 (setq semantic-highlight-func-ct-overlay ol)
1203 ) 1203 )
1204 1204
1205 ;; TAG is nil if there was nothing of the apropriate type there. 1205 ;; TAG is nil if there was nothing of the appropriate type there.
1206 (if (or (not tag) disable) 1206 (if (or (not tag) disable)
1207 ;; No tag, make the overlay go away. 1207 ;; No tag, make the overlay go away.
1208 (progn 1208 (progn
diff --git a/lisp/cedet/srecode/dictionary.el b/lisp/cedet/srecode/dictionary.el
index deadc06abba..8d168a7f339 100644
--- a/lisp/cedet/srecode/dictionary.el
+++ b/lisp/cedet/srecode/dictionary.el
@@ -240,7 +240,7 @@ You can add several dictionaries to the same section macro.
240For each dictionary added to a macro, the block of codes in the 240For each dictionary added to a macro, the block of codes in the
241template will be repeated. 241template will be repeated.
242 242
243If optional argument SHOW-ONLY is non-nil, then don't add a new dictionarly 243If optional argument SHOW-ONLY is non-nil, then don't add a new dictionary
244if there is already one in place. Also, don't add FIRST/LAST entries. 244if there is already one in place. Also, don't add FIRST/LAST entries.
245These entries are not needed when we are just showing a section. 245These entries are not needed when we are just showing a section.
246 246
@@ -402,7 +402,7 @@ FUNCTION and DICTIONARY are as for the baseclass."
402(defclass srecode-field-value (srecode-dictionary-compound-value) 402(defclass srecode-field-value (srecode-dictionary-compound-value)
403 ((firstinserter :initarg :firstinserter 403 ((firstinserter :initarg :firstinserter
404 :documentation 404 :documentation
405 "The inserter object for the first occurance of this field.") 405 "The inserter object for the first occurrence of this field.")
406 (defaultvalue :initarg :defaultvalue 406 (defaultvalue :initarg :defaultvalue
407 :documentation 407 :documentation
408 "The default value for this inserter.") 408 "The default value for this inserter.")
diff --git a/lisp/cedet/srecode/extract.el b/lisp/cedet/srecode/extract.el
index 8a324550c4d..90eda533335 100644
--- a/lisp/cedet/srecode/extract.el
+++ b/lisp/cedet/srecode/extract.el
@@ -216,7 +216,7 @@ Return nil if nothing was extracted."
216 (srecode-insert-include-lookup ins dict) 216 (srecode-insert-include-lookup ins dict)
217 ;; There are two modes for includes. One is with no dict, 217 ;; There are two modes for includes. One is with no dict,
218 ;; so it is inserted straight. If the dict has a name, then 218 ;; so it is inserted straight. If the dict has a name, then
219 ;; we need to run once per dictionary occurance. 219 ;; we need to run once per dictionary occurrence.
220 (if (not (string= (oref ins :object-name) "")) 220 (if (not (string= (oref ins :object-name) ""))
221 ;; With a name, do the insertion. 221 ;; With a name, do the insertion.
222 (let ((subdict (srecode-dictionary-add-section-dictionary 222 (let ((subdict (srecode-dictionary-add-section-dictionary
diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el
index 7c53c3d9461..62d6928c024 100644
--- a/lisp/dired-aux.el
+++ b/lisp/dired-aux.el
@@ -2308,7 +2308,7 @@ Use \\[dired-hide-all] to (un)hide all directories."
2308 (restore-buffer-modified-p modflag))) 2308 (restore-buffer-modified-p modflag)))
2309 2309
2310;;;###autoload 2310;;;###autoload
2311(defun dired-hide-all (arg) 2311(defun dired-hide-all (&optional ignored)
2312 "Hide all subdirectories, leaving only their header lines. 2312 "Hide all subdirectories, leaving only their header lines.
2313If there is already something hidden, make everything visible again. 2313If there is already something hidden, make everything visible again.
2314Use \\[dired-hide-subdir] to (un)hide a particular subdirectory." 2314Use \\[dired-hide-subdir] to (un)hide a particular subdirectory."
diff --git a/lisp/dired.el b/lisp/dired.el
index d4bf1d019a0..1fc90c308b1 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -3517,7 +3517,7 @@ Ask means pop up a menu for the user to select one of copy, move or link."
3517;;;;;; dired-run-shell-command dired-do-shell-command dired-do-async-shell-command 3517;;;;;; dired-run-shell-command dired-do-shell-command dired-do-async-shell-command
3518;;;;;; dired-clean-directory dired-do-print dired-do-touch dired-do-chown 3518;;;;;; dired-clean-directory dired-do-print dired-do-touch dired-do-chown
3519;;;;;; dired-do-chgrp dired-do-chmod dired-compare-directories dired-backup-diff 3519;;;;;; dired-do-chgrp dired-do-chmod dired-compare-directories dired-backup-diff
3520;;;;;; dired-diff) "dired-aux" "dired-aux.el" "557aca1f6e86b39f1c7612ee123d5354") 3520;;;;;; dired-diff) "dired-aux" "dired-aux.el" "07676ea25af17f5d50cc5db4f53bddc0")
3521;;; Generated autoloads from dired-aux.el 3521;;; Generated autoloads from dired-aux.el
3522 3522
3523(autoload 'dired-diff "dired-aux" "\ 3523(autoload 'dired-diff "dired-aux" "\
@@ -3917,7 +3917,7 @@ Hide all subdirectories, leaving only their header lines.
3917If there is already something hidden, make everything visible again. 3917If there is already something hidden, make everything visible again.
3918Use \\[dired-hide-subdir] to (un)hide a particular subdirectory. 3918Use \\[dired-hide-subdir] to (un)hide a particular subdirectory.
3919 3919
3920\(fn ARG)" t nil) 3920\(fn &optional IGNORED)" t nil)
3921 3921
3922(autoload 'dired-isearch-filenames-setup "dired-aux" "\ 3922(autoload 'dired-isearch-filenames-setup "dired-aux" "\
3923Set up isearch to search in Dired file names. 3923Set up isearch to search in Dired file names.
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 4f01e540601..d2abdcffe0d 100644
--- a/lisp/emacs-lisp/chart.el
+++ b/lisp/emacs-lisp/chart.el
@@ -644,7 +644,7 @@ SORT-PRED if desired."
644 ;; Lets create the chart! 644 ;; Lets create the chart!
645 (chart-bar-quickie 'vertical "Files Extension Distribution" 645 (chart-bar-quickie 'vertical "Files Extension Distribution"
646 extlst "File Extensions" 646 extlst "File Extensions"
647 cntlst "# of occurances" 647 cntlst "# of occurrences"
648 10 648 10
649 '(lambda (a b) (> (cdr a) (cdr b)))) 649 '(lambda (a b) (> (cdr a) (cdr b))))
650 )) 650 ))
@@ -740,9 +740,9 @@ SORT-PRED if desired."
740 (setcar cell (1+ (car cell)))) 740 (setcar cell (1+ (car cell))))
741 (setq nmlst (cons nam nmlst) 741 (setq nmlst (cons nam nmlst)
742 cntlst (cons 1 cntlst)))))) 742 cntlst (cons 1 cntlst))))))
743 (chart-bar-quickie 'vertical "Username Occurance in RMAIL box" 743 (chart-bar-quickie 'vertical "Username Occurrence in RMAIL box"
744 nmlst "User Names" 744 nmlst "User Names"
745 cntlst "# of occurances" 745 cntlst "# of occurrences"
746 10 746 10
747 '(lambda (a b) (> (cdr a) (cdr b)))) 747 '(lambda (a b) (> (cdr a) (cdr b))))
748 )) 748 ))
diff --git a/lisp/emacs-lisp/eieio-speedbar.el b/lisp/emacs-lisp/eieio-speedbar.el
index aff078e9998..e4c1c50aa8f 100644
--- a/lisp/emacs-lisp/eieio-speedbar.el
+++ b/lisp/emacs-lisp/eieio-speedbar.el
@@ -227,7 +227,7 @@ attributes. These default objects will be pulled up in a custom
227object edit buffer doing an in-place edit. 227object edit buffer doing an in-place edit.
228 228
229If your object represents some other item, override this method 229If your object represents some other item, override this method
230and take the apropriate action." 230and take the appropriate action."
231 (require 'eieio-custom) 231 (require 'eieio-custom)
232 (speedbar-with-attached-buffer 232 (speedbar-with-attached-buffer
233 (eieio-customize-object object)) 233 (eieio-customize-object object))
@@ -327,7 +327,7 @@ Argument DEPTH is the depth at which the tag line is inserted."
327 327
328(defmethod eieio-speedbar-expand ((object eieio-speedbar) depth) 328(defmethod eieio-speedbar-expand ((object eieio-speedbar) depth)
329 "Expand OBJECT at indentation DEPTH. 329 "Expand OBJECT at indentation DEPTH.
330Inserts a list of new tag lines representing expanded elements withing 330Inserts a list of new tag lines representing expanded elements within
331OBJECT." 331OBJECT."
332 (let ((children (eieio-speedbar-object-children object))) 332 (let ((children (eieio-speedbar-object-children object)))
333 (cond ((eieio-object-p (car children)) 333 (cond ((eieio-object-p (car children))
diff --git a/lisp/emacs-lisp/eieio.el b/lisp/emacs-lisp/eieio.el
index 69ddaa72c1c..f5e684e1323 100644
--- a/lisp/emacs-lisp/eieio.el
+++ b/lisp/emacs-lisp/eieio.el
@@ -79,7 +79,7 @@
79 "*This hook is executed, then cleared each time `defclass' is called.") 79 "*This hook is executed, then cleared each time `defclass' is called.")
80 80
81(defvar eieio-error-unsupported-class-tags nil 81(defvar eieio-error-unsupported-class-tags nil
82 "*Non nil to throw an error if an encountered tag us unsupported. 82 "*Non-nil to throw an error if an encountered tag us unsupported.
83This may prevent classes from CLOS applications from being used with EIEIO 83This may prevent classes from CLOS applications from being used with EIEIO
84since EIEIO does not support all CLOS tags.") 84since EIEIO does not support all CLOS tags.")
85 85
@@ -2021,7 +2021,7 @@ This should only be called from a generic function."
2021 (run-hook-with-args 'eieio-pre-method-execution-hooks 2021 (run-hook-with-args 'eieio-pre-method-execution-hooks
2022 primarymethodlist) 2022 primarymethodlist)
2023 2023
2024 ;; Now loop through all occurances forms which we must execute 2024 ;; Now loop through all occurrences forms which we must execute
2025 ;; (which are happily sorted now) and execute them all! 2025 ;; (which are happily sorted now) and execute them all!
2026 (let ((rval nil) (lastval nil) (rvalever nil) (found nil)) 2026 (let ((rval nil) (lastval nil) (rvalever nil) (found nil))
2027 (while lambdas 2027 (while lambdas
@@ -2101,7 +2101,7 @@ for this common case to improve performance."
2101 (setq primarymethodlist ;; Re-use even with bad name here 2101 (setq primarymethodlist ;; Re-use even with bad name here
2102 (eieiomt-method-list method method-primary mclass)) 2102 (eieiomt-method-list method method-primary mclass))
2103 2103
2104 ;; Now loop through all occurances forms which we must execute 2104 ;; Now loop through all occurrences forms which we must execute
2105 ;; (which are happily sorted now) and execute them all! 2105 ;; (which are happily sorted now) and execute them all!
2106 (let* ((rval nil) (lastval nil) (rvalever nil) 2106 (let* ((rval nil) (lastval nil) (rvalever nil)
2107 (scoped-class (cdr lambdas)) 2107 (scoped-class (cdr lambdas))
@@ -2331,7 +2331,7 @@ nil for superclasses. This function performs no type checking!"
2331If CLASS is not a class then use `generic' instead. If class has 2331If CLASS is not a class then use `generic' instead. If class has
2332no form, but has a parent class, then trace to that parent class. 2332no form, but has a parent class, then trace to that parent class.
2333The first time a form is requested from a symbol, an optimized path 2333The first time a form is requested from a symbol, an optimized path
2334is memorized for future faster use." 2334is memorized for faster future use."
2335 (let ((emto (aref (get method 'eieio-method-obarray) 2335 (let ((emto (aref (get method 'eieio-method-obarray)
2336 (if class key (+ key 3))))) 2336 (if class key (+ key 3)))))
2337 (if (class-p class) 2337 (if (class-p class)
@@ -2814,13 +2814,13 @@ Optional argument NOESCAPE is passed to `prin1-to-string' when appropriate."
2814;;; Autoloading some external symbols, and hooking into the help system 2814;;; Autoloading some external symbols, and hooking into the help system
2815;; 2815;;
2816 2816
2817(autoload 'eieio-help-mode-augmentation-maybee "eieio-opt" "For buffers thrown into help mode, augment for eieio.") 2817(autoload 'eieio-help-mode-augmentation-maybee "eieio-opt" "For buffers thrown into help mode, augment for EIEIO.")
2818(autoload 'eieio-browse "eieio-opt" "Create an object browser window" t) 2818(autoload 'eieio-browse "eieio-opt" "Create an object browser window." t)
2819(autoload 'eieio-describe-class "eieio-opt" "Describe CLASS defined by a string or symbol" t) 2819(autoload 'eieio-describe-class "eieio-opt" "Describe CLASS defined by a string or symbol" t)
2820(autoload 'eieio-describe-constructor "eieio-opt" "Describe the constructor function FCN." t) 2820(autoload 'eieio-describe-constructor "eieio-opt" "Describe the constructor function FCN." t)
2821(autoload 'describe-class "eieio-opt" "Describe CLASS defined by a string or symbol" t) 2821(autoload 'describe-class "eieio-opt" "Describe CLASS defined by a string or symbol." t)
2822(autoload 'eieio-describe-generic "eieio-opt" "Describe GENERIC defined by a string or symbol" t) 2822(autoload 'eieio-describe-generic "eieio-opt" "Describe GENERIC defined by a string or symbol." t)
2823(autoload 'describe-generic "eieio-opt" "Describe GENERIC defined by a string or symbol" t) 2823(autoload 'describe-generic "eieio-opt" "Describe GENERIC defined by a string or symbol." t)
2824 2824
2825(autoload 'customize-object "eieio-custom" "Create a custom buffer editing OBJ.") 2825(autoload 'customize-object "eieio-custom" "Create a custom buffer editing OBJ.")
2826 2826
diff --git a/lisp/emulation/viper-cmd.el b/lisp/emulation/viper-cmd.el
index 73cff9d8934..8c216d9aca6 100644
--- a/lisp/emulation/viper-cmd.el
+++ b/lisp/emulation/viper-cmd.el
@@ -479,7 +479,7 @@
479 (assoc major-mode viper-emacs-state-modifier-alist)) 479 (assoc major-mode viper-emacs-state-modifier-alist))
480 viper-empty-keymap)) 480 viper-empty-keymap))
481 )) 481 ))
482 482
483 ;; This var is not local in Emacs, so we make it local. It must be local 483 ;; This var is not local in Emacs, so we make it local. It must be local
484 ;; because although the stack of minor modes can be the same for all buffers, 484 ;; because although the stack of minor modes can be the same for all buffers,
485 ;; the associated *keymaps* can be different. In Viper, 485 ;; the associated *keymaps* can be different. In Viper,
@@ -891,7 +891,7 @@ Vi's prefix argument will be used. Otherwise, the prefix argument passed to
891 891
892 892
893(defun viper-exec-form-in-vi (form) 893(defun viper-exec-form-in-vi (form)
894 "Execute FORM in Vi state, regardless of the Ccurrent Vi state." 894 "Execute FORM in Vi state, regardless of the current Vi state."
895 (let ((buff (current-buffer)) 895 (let ((buff (current-buffer))
896 result) 896 result)
897 (viper-set-mode-vars-for 'vi-state) 897 (viper-set-mode-vars-for 'vi-state)
@@ -910,7 +910,7 @@ Vi's prefix argument will be used. Otherwise, the prefix argument passed to
910 910
911(defun viper-exec-form-in-emacs (form) 911(defun viper-exec-form-in-emacs (form)
912 "Execute FORM in Emacs, temporarily disabling Viper's minor modes. 912 "Execute FORM in Emacs, temporarily disabling Viper's minor modes.
913Similar to viper-escape-to-emacs, but accepts forms rather than keystrokes." 913Similar to `viper-escape-to-emacs', but accepts forms rather than keystrokes."
914 (let ((buff (current-buffer)) 914 (let ((buff (current-buffer))
915 result) 915 result)
916 (viper-set-mode-vars-for 'emacs-state) 916 (viper-set-mode-vars-for 'emacs-state)
@@ -939,7 +939,7 @@ such minor modes.
939Usage: 939Usage:
940 (viper-harness-minor-mode load-file) 940 (viper-harness-minor-mode load-file)
941 941
942LOAD-FILE is a name of the file where the specific minor mode is defined. 942LOAD-FILE is the name of the file where the specific minor mode is defined.
943Suffixes such as .el or .elc should be stripped." 943Suffixes such as .el or .elc should be stripped."
944 944
945 (interactive "sEnter name of the load file: ") 945 (interactive "sEnter name of the load file: ")
@@ -961,9 +961,9 @@ Prevents multiple escape keystrokes if viper-no-multiple-ESC is true.
961If viper-no-multiple-ESC is 'twice double ESC would ding in vi-state. 961If viper-no-multiple-ESC is 'twice double ESC would ding in vi-state.
962Other ESC sequences are emulated via the current Emacs's major mode 962Other ESC sequences are emulated via the current Emacs's major mode
963keymap. This is more convenient on TTYs, since this won't block 963keymap. This is more convenient on TTYs, since this won't block
964function keys such as up,down, etc. ESC will also will also work as 964function keys such as up, down, etc. ESC will also will also work as
965a Meta key in this case. When viper-no-multiple-ESC is nil, ESC functions 965a Meta key in this case. When viper-no-multiple-ESC is nil, ESC works
966as a Meta key and any number of multiple escapes is allowed." 966as a Meta key and any number of multiple escapes are allowed."
967 (interactive "P") 967 (interactive "P")
968 (let (char) 968 (let (char)
969 (cond ((and (not viper-no-multiple-ESC) (eq viper-current-state 'vi-state)) 969 (cond ((and (not viper-no-multiple-ESC) (eq viper-current-state 'vi-state))
@@ -1181,7 +1181,7 @@ as a Meta key and any number of multiple escapes is allowed."
1181 ((eq event-char 'delete) (setq event-char ?\C-?)) 1181 ((eq event-char 'delete) (setq event-char ?\C-?))
1182 ((eq event-char 'backspace) (setq event-char ?\C-h)) 1182 ((eq event-char 'backspace) (setq event-char ?\C-h))
1183 ((eq event-char 'space) (setq event-char ?\ ))) 1183 ((eq event-char 'space) (setq event-char ?\ )))
1184 (setq last-command-event 1184 (setq last-command-event
1185 (if (featurep 'xemacs) 1185 (if (featurep 'xemacs)
1186 (character-to-event (or com event-char)) 1186 (character-to-event (or com event-char))
1187 (or com event-char))) 1187 (or com event-char)))
@@ -1257,7 +1257,7 @@ as a Meta key and any number of multiple escapes is allowed."
1257 1257
1258 ;; as com is non-nil, this means that we have a command to execute 1258 ;; as com is non-nil, this means that we have a command to execute
1259 (if (viper-memq-char (car com) '(?r ?R)) 1259 (if (viper-memq-char (car com) '(?r ?R))
1260 ;; execute apropriate region command. 1260 ;; execute appropriate region command.
1261 (let ((char (car com)) (com (cdr com))) 1261 (let ((char (car com)) (com (cdr com)))
1262 (setq prefix-arg (cons value com)) 1262 (setq prefix-arg (cons value com))
1263 (if (viper= char ?r) 1263 (if (viper= char ?r)
@@ -1285,7 +1285,7 @@ as a Meta key and any number of multiple escapes is allowed."
1285 ;; gg acts as G0 1285 ;; gg acts as G0
1286 ((equal (car com) ?g) (viper-goto-line 0)) 1286 ((equal (car com) ?g) (viper-goto-line 0))
1287 (t (error "Viper bell"))))) 1287 (t (error "Viper bell")))))
1288 1288
1289 (if cmd-to-exec-at-end 1289 (if cmd-to-exec-at-end
1290 (progn 1290 (progn
1291 (setq last-command-event 1291 (setq last-command-event
@@ -1621,7 +1621,7 @@ Use the info in viper-d-com, which has the form
1621where `com' is the command to be re-executed, `val' is the 1621where `com' is the command to be re-executed, `val' is the
1622argument to `com', `ch' is a flag for repeat, and `reg' is optional; 1622argument to `com', `ch' is a flag for repeat, and `reg' is optional;
1623if it exists, it is the name of the register for `com'. 1623if it exists, it is the name of the register for `com'.
1624If the prefix argument, ARG, is non-nil, it is used instead of `val'." 1624If the prefix argument ARG is non-nil, it is used instead of `val'."
1625 (interactive "P") 1625 (interactive "P")
1626 (let ((save-point (point)) ; save point before repeating prev cmd 1626 (let ((save-point (point)) ; save point before repeating prev cmd
1627 ;; Pass along that we are repeating a destructive command 1627 ;; Pass along that we are repeating a destructive command
@@ -1944,7 +1944,7 @@ Undo previous insertion and inserts new."
1944 require-final-newline 1944 require-final-newline
1945 ;; add newline only if we actually edited buffer. otherwise it 1945 ;; add newline only if we actually edited buffer. otherwise it
1946 ;; might unintentionally modify binary buffers 1946 ;; might unintentionally modify binary buffers
1947 (buffer-modified-p) 1947 (buffer-modified-p)
1948 (not (viper-is-in-minibuffer)) 1948 (not (viper-is-in-minibuffer))
1949 (not buffer-read-only)) 1949 (not buffer-read-only))
1950 ;; text property may be read-only 1950 ;; text property may be read-only
@@ -2539,7 +2539,7 @@ problems."
2539 2539
2540(defun viper-replace-state-exit-cmd () 2540(defun viper-replace-state-exit-cmd ()
2541 "Binding for keys that cause Replace state to switch to Vi or to Insert. 2541 "Binding for keys that cause Replace state to switch to Vi or to Insert.
2542These keys are ESC, RET, and LineFeed" 2542These keys are ESC, RET, and LineFeed."
2543 (interactive) 2543 (interactive)
2544 (if overwrite-mode ; if in replace mode invoked via 'R' 2544 (if overwrite-mode ; if in replace mode invoked via 'R'
2545 (viper-finish-R-mode) 2545 (viper-finish-R-mode)
@@ -3711,7 +3711,7 @@ controlled by the sign of prefix numeric value."
3711(defun viper-toggle-search-style (arg) 3711(defun viper-toggle-search-style (arg)
3712 "Toggle the value of viper-case-fold-search/viper-re-search. 3712 "Toggle the value of viper-case-fold-search/viper-re-search.
3713Without prefix argument, will ask which search style to toggle. With prefix 3713Without prefix argument, will ask which search style to toggle. With prefix
3714arg 1,toggles viper-case-fold-search; with arg 2 toggles viper-re-search. 3714arg 1, toggles viper-case-fold-search; with arg 2 toggles viper-re-search.
3715 3715
3716Although this function is bound to \\[viper-toggle-search-style], the most 3716Although this function is bound to \\[viper-toggle-search-style], the most
3717convenient way to use it is to bind `//' to the macro 3717convenient way to use it is to bind `//' to the macro
@@ -4262,7 +4262,7 @@ Null string will repeat previous search."
4262(defun viper-del-backward-char-in-replace () 4262(defun viper-del-backward-char-in-replace ()
4263 "Delete one character in replace mode. 4263 "Delete one character in replace mode.
4264If `viper-delete-backwards-in-replace' is t, then DEL key actually deletes 4264If `viper-delete-backwards-in-replace' is t, then DEL key actually deletes
4265charecters. If it is nil, then the cursor just moves backwards, similarly 4265characters. If it is nil, then the cursor just moves backwards, similarly
4266to Vi. The variable `viper-ex-style-editing', if t, doesn't let the 4266to Vi. The variable `viper-ex-style-editing', if t, doesn't let the
4267cursor move past the beginning of line." 4267cursor move past the beginning of line."
4268 (interactive) 4268 (interactive)
@@ -4614,7 +4614,7 @@ One can use `` and '' to temporarily jump 1 step back."
4614 (indent-to (+ (current-column) viper-shift-width))) 4614 (indent-to (+ (current-column) viper-shift-width)))
4615 4615
4616(defun viper-backward-indent () 4616(defun viper-backward-indent ()
4617 "Backtab, C-d in VI" 4617 "Backtab, `C-d' in Vi."
4618 (interactive) 4618 (interactive)
4619 (if viper-cted 4619 (if viper-cted
4620 (let ((p (point)) (c (current-column)) bol (indent t)) 4620 (let ((p (point)) (c (current-column)) bol (indent t))
@@ -4689,7 +4689,7 @@ One can use `` and '' to temporarily jump 1 step back."
4689 viper-InvalidRegister reg))))) 4689 viper-InvalidRegister reg)))))
4690 4690
4691(defun viper-brac-function (arg) 4691(defun viper-brac-function (arg)
4692 "Function called by \[, the brac. View textmarkers and call \[\[" 4692 "Function called by \[, the brac. View textmarkers and call \[\[."
4693 (interactive "P") 4693 (interactive "P")
4694 (let ((reg (read-char))) 4694 (let ((reg (read-char)))
4695 (cond ((viper= ?\[ reg) 4695 (cond ((viper= ?\[ reg)
@@ -4922,7 +4922,7 @@ Please, specify your level now: ")
4922 4922
4923;; if ENFORCE-BUFFER is not nil, error if CHAR is a marker in another buffer 4923;; if ENFORCE-BUFFER is not nil, error if CHAR is a marker in another buffer
4924(defun viper-register-to-point (char &optional enforce-buffer) 4924(defun viper-register-to-point (char &optional enforce-buffer)
4925 "Like jump-to-register, but switches to another buffer in another window." 4925 "Like `jump-to-register', but switches to another buffer in another window."
4926 (interactive "cViper register to point: ") 4926 (interactive "cViper register to point: ")
4927 (let ((val (get-register char))) 4927 (let ((val (get-register char)))
4928 (cond 4928 (cond
@@ -5047,7 +5047,7 @@ PLEASE FOLLOW THESE PROCEDURES
5047------------------------------ 5047------------------------------
5048 5048
5049Before reporting a bug, please verify that it is related to Viper, and is 5049Before reporting a bug, please verify that it is related to Viper, and is
5050not cause by other packages you are using. 5050not caused by other packages you are using.
5051 5051
5052Don't report compilation warnings, unless you are certain that there is a 5052Don't report compilation warnings, unless you are certain that there is a
5053problem. These warnings are normal and unavoidable. 5053problem. These warnings are normal and unavoidable.
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/ido.el b/lisp/ido.el
index 60b874dcd49..48acc50581d 100644
--- a/lisp/ido.el
+++ b/lisp/ido.el
@@ -1042,11 +1042,11 @@ Value is an integer which is number of chars to right of prompt.")
1042;; Stores the current list of items that will be searched through. 1042;; Stores the current list of items that will be searched through.
1043;; The list is ordered, so that the most interesting item comes first, 1043;; The list is ordered, so that the most interesting item comes first,
1044;; although by default, the files visible in the current frame are put 1044;; although by default, the files visible in the current frame are put
1045;; at the end of the list. Created by `ido-make-item-list'. 1045;; at the end of the list.
1046(defvar ido-cur-list) 1046(defvar ido-cur-list nil)
1047 1047
1048;; Stores the choice list for ido-completing-read 1048;; Stores the choice list for ido-completing-read
1049(defvar ido-choice-list) 1049(defvar ido-choice-list nil)
1050 1050
1051;; Stores the list of items which are ignored when building 1051;; Stores the list of items which are ignored when building
1052;; `ido-cur-list'. It is in no specific order. 1052;; `ido-cur-list'. It is in no specific order.
@@ -3344,7 +3344,7 @@ for first matching file."
3344 (if ido-temp-list 3344 (if ido-temp-list
3345 (nconc ido-temp-list ido-current-buffers) 3345 (nconc ido-temp-list ido-current-buffers)
3346 (setq ido-temp-list ido-current-buffers)) 3346 (setq ido-temp-list ido-current-buffers))
3347 (if default 3347 (if (and default (buffer-live-p (get-buffer default)))
3348 (progn 3348 (progn
3349 (setq ido-temp-list 3349 (setq ido-temp-list
3350 (delete default ido-temp-list)) 3350 (delete default ido-temp-list))
@@ -3590,6 +3590,7 @@ for first matching file."
3590 ;; Used by `ido-get-buffers-in-frames' to walk through all windows 3590 ;; Used by `ido-get-buffers-in-frames' to walk through all windows
3591 (let ((buf (buffer-name (window-buffer win)))) 3591 (let ((buf (buffer-name (window-buffer win))))
3592 (unless (or (member buf ido-bufs-in-frame) 3592 (unless (or (member buf ido-bufs-in-frame)
3593 (minibufferp buf)
3593 (member buf ido-ignore-item-temp-list)) 3594 (member buf ido-ignore-item-temp-list))
3594 ;; Only add buf if it is not already in list. 3595 ;; Only add buf if it is not already in list.
3595 ;; This prevents same buf in two different windows being 3596 ;; This prevents same buf in two different windows being
@@ -3830,6 +3831,27 @@ for first matching file."
3830 ;;(add-hook 'completion-setup-hook 'completion-setup-function) 3831 ;;(add-hook 'completion-setup-hook 'completion-setup-function)
3831 (display-completion-list completion-list))))))) 3832 (display-completion-list completion-list)))))))
3832 3833
3834(defun ido-kill-buffer-internal (buf)
3835 "Kill buffer BUF and rebuild ido's buffer list if needed."
3836 (if (not (kill-buffer buf))
3837 ;; buffer couldn't be killed.
3838 (setq ido-rescan t)
3839 ;; else buffer was killed so remove name from list.
3840 (setq ido-cur-list (delq buf ido-cur-list))
3841 ;; Some packages, like uniquify.el, may rename buffers when one
3842 ;; is killed, so we need to test this condition to avoid using
3843 ;; an outdated list of buffer names. We don't want to always
3844 ;; rebuild the list of buffers, as this alters the previous
3845 ;; buffer order that the user was seeing on the prompt. However,
3846 ;; when we rebuild the list, we try to keep the previous second
3847 ;; buffer as the first one.
3848 (catch 'update
3849 (dolist (b ido-cur-list)
3850 (unless (get-buffer b)
3851 (setq ido-cur-list (ido-make-buffer-list (cadr ido-matches)))
3852 (setq ido-rescan t)
3853 (throw 'update nil))))))
3854
3833;;; KILL CURRENT BUFFER 3855;;; KILL CURRENT BUFFER
3834(defun ido-kill-buffer-at-head () 3856(defun ido-kill-buffer-at-head ()
3835 "Kill the buffer at the head of `ido-matches'. 3857 "Kill the buffer at the head of `ido-matches'.
@@ -3840,7 +3862,7 @@ If cursor is not at the end of the user input, delete to end of input."
3840 (let ((enable-recursive-minibuffers t) 3862 (let ((enable-recursive-minibuffers t)
3841 (buf (ido-name (car ido-matches)))) 3863 (buf (ido-name (car ido-matches))))
3842 (when buf 3864 (when buf
3843 (kill-buffer buf) 3865 (ido-kill-buffer-internal buf)
3844 ;; Check if buffer still exists. 3866 ;; Check if buffer still exists.
3845 (if (get-buffer buf) 3867 (if (get-buffer buf)
3846 ;; buffer couldn't be killed. 3868 ;; buffer couldn't be killed.
@@ -3884,7 +3906,7 @@ Record command in `command-history' if optional RECORD is non-nil."
3884 ((eq method 'kill) 3906 ((eq method 'kill)
3885 (if record 3907 (if record
3886 (ido-record-command 'kill-buffer buffer)) 3908 (ido-record-command 'kill-buffer buffer))
3887 (kill-buffer buffer)) 3909 (ido-kill-buffer-internal buffer))
3888 3910
3889 ((eq method 'other-window) 3911 ((eq method 'other-window)
3890 (if record 3912 (if record
diff --git a/lisp/indent.el b/lisp/indent.el
index 12cf9c9bb5d..3f8353bd90c 100644
--- a/lisp/indent.el
+++ b/lisp/indent.el
@@ -1,7 +1,7 @@
1;;; indent.el --- indentation commands for Emacs 1;;; indent.el --- indentation commands for Emacs
2 2
3;; Copyright (C) 1985, 1995, 2001, 2002, 2003, 2004, 3;; Copyright (C) 1985, 1995, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
4;; 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 4;; 2008, 2009, 2010 Free Software Foundation, Inc.
5 5
6;; Maintainer: FSF 6;; Maintainer: FSF
7 7
@@ -55,7 +55,11 @@ was already indented, then try to complete the thing at point.
55Some programming language modes have their own variable to control this, 55Some programming language modes have their own variable to control this,
56e.g., `c-tab-always-indent', and do not respect this variable." 56e.g., `c-tab-always-indent', and do not respect this variable."
57 :group 'indent 57 :group 'indent
58 :type '(choice (const nil) (const t) (const always))) 58 :type '(choice
59 (const :tag "Always indent" t)
60 (const :tag "Indent if inside indentation, else TAB" nil)
61 (const :tag "Indent, or if already indented complete" complete)))
62
59 63
60(defun indent-according-to-mode () 64(defun indent-according-to-mode ()
61 "Indent line in proper way for current major mode. 65 "Indent line in proper way for current major mode.
diff --git a/lisp/isearch.el b/lisp/isearch.el
index ab40678e69c..d0ad330c5c0 100644
--- a/lisp/isearch.el
+++ b/lisp/isearch.el
@@ -1754,7 +1754,10 @@ Scroll-bar or mode-line events are processed appropriately."
1754(put 'digit-argument 'isearch-scroll t) 1754(put 'digit-argument 'isearch-scroll t)
1755 1755
1756(defcustom isearch-allow-scroll nil 1756(defcustom isearch-allow-scroll nil
1757 "If non-nil, scrolling commands are allowed during incremental search." 1757 "Whether scrolling is allowed during incremental search.
1758If non-nil, scrolling commands can be used in Isearch mode.
1759However, the current match will never scroll offscreen.
1760If nil, scolling commands will first cancel Isearch mode."
1758 :type 'boolean 1761 :type 'boolean
1759 :group 'isearch) 1762 :group 'isearch)
1760 1763
diff --git a/lisp/jka-compr.el b/lisp/jka-compr.el
index 12f48bd96b1..34ffcc90a76 100644
--- a/lisp/jka-compr.el
+++ b/lisp/jka-compr.el
@@ -590,7 +590,14 @@ There should be no more than seven characters after the final `/'."
590 (or nomessage 590 (or nomessage
591 (message "Loading %s...done." file)) 591 (message "Loading %s...done." file))
592 ;; Fix up the load history to point at the right library. 592 ;; Fix up the load history to point at the right library.
593 (let ((l (assoc load-file load-history))) 593 (let ((l (or (assoc load-file load-history)
594 ;; On MS-Windows, if load-file is in
595 ;; temporary-file-directory, it will look like
596 ;; "c:/DOCUME~1/USER/LOCALS~1/foo", whereas
597 ;; readevalloop will record its truename in
598 ;; load-history. Therefore try truename if the
599 ;; original name is not in load-history.
600 (assoc (file-truename load-file) load-history))))
594 ;; Remove .gz and .elc?. 601 ;; Remove .gz and .elc?.
595 (while (file-name-extension file) 602 (while (file-name-extension file)
596 (setq file (file-name-sans-extension file))) 603 (setq file (file-name-sans-extension file)))
diff --git a/lisp/mail/mail-utils.el b/lisp/mail/mail-utils.el
index 3bca0b23a8c..5fad3554ae5 100644
--- a/lisp/mail/mail-utils.el
+++ b/lisp/mail/mail-utils.el
@@ -133,6 +133,8 @@ If NOERROR is non-nil, return t if successful.
133If UNIBYTE is non-nil, insert converted characters as unibyte. 133If UNIBYTE is non-nil, insert converted characters as unibyte.
134That is useful if you are going to character code decoding afterward, 134That is useful if you are going to character code decoding afterward,
135as Rmail does." 135as Rmail does."
136 ;; FIXME: `unibyte' should always be non-nil, and the iso-latin-1
137 ;; specific handling should be removed (or moved elsewhere and generalized).
136 (interactive "r\nP") 138 (interactive "r\nP")
137 (let (failed) 139 (let (failed)
138 (save-match-data 140 (save-match-data
diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el
index 67ea3fdc158..20a03ede965 100644
--- a/lisp/mail/rmail.el
+++ b/lisp/mail/rmail.el
@@ -2727,7 +2727,8 @@ The current mail message becomes the message displayed."
2727 (insert-buffer-substring mbox-buf body-start end) 2727 (insert-buffer-substring mbox-buf body-start end)
2728 (cond 2728 (cond
2729 ((string= character-coding "quoted-printable") 2729 ((string= character-coding "quoted-printable")
2730 (mail-unquote-printable-region (point-min) (point-max))) 2730 (mail-unquote-printable-region (point-min) (point-max)
2731 nil nil 'unibyte))
2731 ((and (string= character-coding "base64") is-text-message) 2732 ((and (string= character-coding "base64") is-text-message)
2732 (base64-decode-region (point-min) (point-max))) 2733 (base64-decode-region (point-min) (point-max)))
2733 ((eq character-coding 'uuencode) 2734 ((eq character-coding 'uuencode)
diff --git a/lisp/mail/rmailmm.el b/lisp/mail/rmailmm.el
index e87f72a2e47..415bc20cf50 100644
--- a/lisp/mail/rmailmm.el
+++ b/lisp/mail/rmailmm.el
@@ -361,7 +361,10 @@ The parsed header value:
361 (setq content-transfer-encoding nil)) 361 (setq content-transfer-encoding nil))
362 ((string= content-transfer-encoding "8bit") 362 ((string= content-transfer-encoding "8bit")
363 ;; FIXME: Is this the correct way? 363 ;; FIXME: Is this the correct way?
364 (set-buffer-multibyte nil))) 364 ;; No, of course not, it just means there's no decoding to do.
365 ;; (set-buffer-multibyte nil)
366 (setq content-transfer-encoding nil)
367 ))
365 ;; Inline stuff requires work. Attachments are handled by the bulk 368 ;; Inline stuff requires work. Attachments are handled by the bulk
366 ;; handler. 369 ;; handler.
367 (if (string= "inline" (car content-disposition)) 370 (if (string= "inline" (car content-disposition))
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/net/tramp.el b/lisp/net/tramp.el
index f789110d26f..3f4af0ebf0e 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -6890,7 +6890,7 @@ input.
6890 6890
6891If they are variables, this variable is a string containing a Perl 6891If they are variables, this variable is a string containing a Perl
6892implementation for this functionality. This Perl program will be transferred 6892implementation for this functionality. This Perl program will be transferred
6893to the remote host, and it is avalible as shell function with the same name.") 6893to the remote host, and it is available as shell function with the same name.")
6894 6894
6895(defun tramp-find-inline-encoding (vec) 6895(defun tramp-find-inline-encoding (vec)
6896 "Find an inline transfer encoding that works. 6896 "Find an inline transfer encoding that works.
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/progmodes/ada-mode.el b/lisp/progmodes/ada-mode.el
index 2b94fdb25ff..3694de23f88 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.
@@ -660,14 +677,6 @@ A new statement starts after these.")
660 "\\>")) 677 "\\>"))
661 "Regexp used in `ada-goto-matching-start'.") 678 "Regexp used in `ada-goto-matching-start'.")
662 679
663(defvar ada-matching-decl-start-re
664 (eval-when-compile
665 (concat "\\<"
666 (regexp-opt
667 '("is" "separate" "end" "declare" "if" "new" "begin" "generic" "when") t)
668 "\\>"))
669 "Regexp used in `ada-goto-matching-decl-start'.")
670
671(defvar ada-loop-start-re 680(defvar ada-loop-start-re
672 "\\<\\(for\\|while\\|loop\\)\\>" 681 "\\<\\(for\\|while\\|loop\\)\\>"
673 "Regexp for the start of a loop.") 682 "Regexp for the start of a loop.")
@@ -678,10 +687,6 @@ A new statement starts after these.")
678 "protected" "task") t) "\\>")) 687 "protected" "task") t) "\\>"))
679 "Regexp for the start of a subprogram.") 688 "Regexp for the start of a subprogram.")
680 689
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 690(defvar ada-contextual-menu-on-identifier nil
686 "Set to true when the right mouse button was clicked on an identifier.") 691 "Set to true when the right mouse button was clicked on an identifier.")
687 692
@@ -2108,10 +2113,18 @@ Return the equivalent internal parameter list."
2108 2113
2109(defun ada-indent-newline-indent-conditional () 2114(defun ada-indent-newline-indent-conditional ()
2110 "Insert a newline and indent it. 2115 "Insert a newline and indent it.
2111The original line is indented first if `ada-indent-after-return' is non-nil." 2116The original line is re-indented if `ada-indent-after-return' is non-nil."
2112 (interactive "*") 2117 (interactive "*")
2113 (if ada-indent-after-return (ada-indent-current)) 2118 ;; If at end of buffer (entering brand new code), some indentation
2119 ;; fails. For example, a block label requires whitespace following
2120 ;; the : to be recognized. So we do the newline first, then
2121 ;; go back and indent the original line.
2114 (newline) 2122 (newline)
2123 (if ada-indent-after-return
2124 (progn
2125 (forward-char -1)
2126 (ada-indent-current)
2127 (forward-char 1)))
2115 (ada-indent-current)) 2128 (ada-indent-current))
2116 2129
2117(defun ada-justified-indent-current () 2130(defun ada-justified-indent-current ()
@@ -2335,8 +2348,8 @@ and the offset."
2335 (progn 2348 (progn
2336 (goto-char (car match-cons)) 2349 (goto-char (car match-cons))
2337 (save-excursion 2350 (save-excursion
2338 (beginning-of-line) 2351 (back-to-indentation)
2339 (if (looking-at ada-named-block-re) 2352 (if (looking-at ada-block-label-re)
2340 (setq label (- ada-label-indent)))))))) 2353 (setq label (- ada-label-indent))))))))
2341 2354
2342 ;; found 'record' => 2355 ;; found 'record' =>
@@ -2455,7 +2468,7 @@ and the offset."
2455 ((and (= (downcase (char-after)) ?b) 2468 ((and (= (downcase (char-after)) ?b)
2456 (looking-at "begin\\>")) 2469 (looking-at "begin\\>"))
2457 (save-excursion 2470 (save-excursion
2458 (if (ada-goto-matching-decl-start t) 2471 (if (ada-goto-decl-start t)
2459 (list (progn (back-to-indentation) (point)) 0) 2472 (list (progn (back-to-indentation) (point)) 0)
2460 (ada-indent-on-previous-lines nil orgpoint orgpoint)))) 2473 (ada-indent-on-previous-lines nil orgpoint orgpoint))))
2461 2474
@@ -2648,8 +2661,9 @@ and the offset."
2648 ;; label 2661 ;; label
2649 ;;--------------------------------- 2662 ;;---------------------------------
2650 2663
2651 ((looking-at "\\(\\sw\\|_\\)+[ \t\n]*:[^=]") 2664 ((looking-at ada-label-re)
2652 (if (ada-in-decl-p) 2665 (if (ada-in-decl-p)
2666 ;; ada-block-label-re matches variable declarations
2653 (ada-indent-on-previous-lines nil orgpoint orgpoint) 2667 (ada-indent-on-previous-lines nil orgpoint orgpoint)
2654 (append (ada-indent-on-previous-lines nil orgpoint orgpoint) 2668 (append (ada-indent-on-previous-lines nil orgpoint orgpoint)
2655 '(ada-label-indent)))) 2669 '(ada-label-indent))))
@@ -2674,9 +2688,10 @@ if INITIAL-POS is non-nil, moves point to INITIAL-POS before calculation."
2674 (if (ada-in-paramlist-p) 2688 (if (ada-in-paramlist-p)
2675 (ada-get-indent-paramlist) 2689 (ada-get-indent-paramlist)
2676 2690
2677 ;; move to beginning of current statement 2691 ;; Move to beginning of current statement. If already at a
2692 ;; statement start, move to beginning of enclosing statement.
2678 (unless nomove 2693 (unless nomove
2679 (ada-goto-stmt-start)) 2694 (ada-goto-stmt-start t))
2680 2695
2681 ;; no beginning found => don't change indentation 2696 ;; no beginning found => don't change indentation
2682 (if (and (eq oldpoint (point)) 2697 (if (and (eq oldpoint (point))
@@ -2702,6 +2717,12 @@ if INITIAL-POS is non-nil, moves point to INITIAL-POS before calculation."
2702 ((looking-at ada-block-start-re) 2717 ((looking-at ada-block-start-re)
2703 (ada-get-indent-block-start orgpoint)) 2718 (ada-get-indent-block-start orgpoint))
2704 ;; 2719 ;;
2720 ((looking-at ada-block-label-re) ; also variable declaration
2721 (ada-get-indent-block-label orgpoint))
2722 ;;
2723 ((looking-at ada-goto-label-re)
2724 (ada-get-indent-goto-label orgpoint))
2725 ;;
2705 ((looking-at "\\(sub\\)?type\\>") 2726 ((looking-at "\\(sub\\)?type\\>")
2706 (ada-get-indent-type orgpoint)) 2727 (ada-get-indent-type orgpoint))
2707 ;; 2728 ;;
@@ -2717,17 +2738,8 @@ if INITIAL-POS is non-nil, moves point to INITIAL-POS before calculation."
2717 ((looking-at "when\\>") 2738 ((looking-at "when\\>")
2718 (ada-get-indent-when orgpoint)) 2739 (ada-get-indent-when orgpoint))
2719 ;; 2740 ;;
2720 ((looking-at "\\(\\sw\\|_\\)+[ \t\n]*:[^=]")
2721 (ada-get-indent-label orgpoint))
2722 ;;
2723 ((looking-at "separate\\>") 2741 ((looking-at "separate\\>")
2724 (ada-get-indent-nochange)) 2742 (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 ;; 2743 ;;
2732 ((looking-at "with\\>\\|use\\>") 2744 ((looking-at "with\\>\\|use\\>")
2733 ;; Are we still in that statement, or are we in fact looking at 2745 ;; Are we still in that statement, or are we in fact looking at
@@ -2835,7 +2847,7 @@ ORGPOINT is the limit position used in the calculation."
2835 (if (looking-at "\\<begin\\>") 2847 (if (looking-at "\\<begin\\>")
2836 (progn 2848 (progn
2837 (setq indent (list (point) 0)) 2849 (setq indent (list (point) 0))
2838 (if (ada-goto-matching-decl-start t) 2850 (if (ada-goto-decl-start t)
2839 (list (progn (back-to-indentation) (point)) 0) 2851 (list (progn (back-to-indentation) (point)) 0)
2840 indent)) 2852 indent))
2841 (list (progn (back-to-indentation) (point)) 0) 2853 (list (progn (back-to-indentation) (point)) 0)
@@ -2960,6 +2972,10 @@ ORGPOINT is the limit position used in the calculation."
2960 (car (ada-search-ignore-string-comment "\\<type\\>" t))) 2972 (car (ada-search-ignore-string-comment "\\<type\\>" t)))
2961 'ada-indent))) 2973 'ada-indent)))
2962 2974
2975 ;; Special case for label:
2976 ((looking-at ada-block-label-re)
2977 (list (- (save-excursion (back-to-indentation) (point)) ada-label-indent) 'ada-indent))
2978
2963 ;; nothing follows the block-start 2979 ;; nothing follows the block-start
2964 (t 2980 (t
2965 (list (save-excursion (back-to-indentation) (point)) 'ada-indent))))) 2981 (list (save-excursion (back-to-indentation) (point)) 'ada-indent)))))
@@ -3055,10 +3071,10 @@ ORGPOINT is the limit position used in the calculation."
3055 (list (save-excursion (back-to-indentation) (point)) 3071 (list (save-excursion (back-to-indentation) (point))
3056 'ada-broken-decl-indent)) 3072 'ada-broken-decl-indent))
3057 3073
3058 ;; This one is called in every over case when indenting a line at the 3074 ;; This one is called in every other case when indenting a line at the
3059 ;; top level 3075 ;; top level
3060 (t 3076 (t
3061 (if (looking-at ada-named-block-re) 3077 (if (looking-at (concat "[ \t]*" ada-block-label-re))
3062 (setq label (- ada-label-indent)) 3078 (setq label (- ada-label-indent))
3063 3079
3064 (let (p) 3080 (let (p)
@@ -3087,7 +3103,7 @@ ORGPOINT is the limit position used in the calculation."
3087 (list (+ (save-excursion (back-to-indentation) (point)) label) 3103 (list (+ (save-excursion (back-to-indentation) (point)) label)
3088 'ada-broken-indent))))))) 3104 'ada-broken-indent)))))))
3089 3105
3090(defun ada-get-indent-label (orgpoint) 3106(defun ada-get-indent-block-label (orgpoint)
3091 "Calculate the indentation when before a label or variable declaration. 3107 "Calculate the indentation when before a label or variable declaration.
3092ORGPOINT is the limit position used in the calculation." 3108ORGPOINT is the limit position used in the calculation."
3093 (let ((match-cons nil) 3109 (let ((match-cons nil)
@@ -3119,6 +3135,16 @@ ORGPOINT is the limit position used in the calculation."
3119 (t 3135 (t
3120 (list cur-indent '(- ada-label-indent)))))) 3136 (list cur-indent '(- ada-label-indent))))))
3121 3137
3138(defun ada-get-indent-goto-label (orgpoint)
3139 "Calculate the indentation when at a goto label."
3140 (search-forward ">>")
3141 (ada-goto-next-non-ws)
3142 (if (>= (point) orgpoint)
3143 ;; labeled statement is the one we need to indent
3144 (list (- (point) ada-label-indent))
3145 ;; else indentation is indent for labeled statement
3146 (ada-indent-on-previous-lines t orgpoint)))
3147
3122(defun ada-get-indent-loop (orgpoint) 3148(defun ada-get-indent-loop (orgpoint)
3123 "Calculate the indentation when just before a loop or a for ... use. 3149 "Calculate the indentation when just before a loop or a for ... use.
3124ORGPOINT is the limit position used in the calculation." 3150ORGPOINT is the limit position used in the calculation."
@@ -3127,8 +3153,8 @@ ORGPOINT is the limit position used in the calculation."
3127 3153
3128 ;; If looking at a named block, skip the label 3154 ;; If looking at a named block, skip the label
3129 (label (save-excursion 3155 (label (save-excursion
3130 (beginning-of-line) 3156 (back-to-indentation)
3131 (if (looking-at ada-named-block-re) 3157 (if (looking-at ada-block-label-re)
3132 (- ada-label-indent) 3158 (- ada-label-indent)
3133 0)))) 3159 0))))
3134 3160
@@ -3286,7 +3312,7 @@ ORGPOINT is the limit position used in the calculation."
3286;; -- searching and matching 3312;; -- searching and matching
3287;; ----------------------------------------------------------- 3313;; -----------------------------------------------------------
3288 3314
3289(defun ada-goto-stmt-start () 3315(defun ada-goto-stmt-start (&optional ignore-goto-label)
3290 "Move point to the beginning of the statement that point is in or after. 3316 "Move point to the beginning of the statement that point is in or after.
3291Return the new position of point. 3317Return the new position of point.
3292As a special case, if we are looking at a closing parenthesis, skip to the 3318As a special case, if we are looking at a closing parenthesis, skip to the
@@ -3304,7 +3330,7 @@ open parenthesis."
3304 (progn 3330 (progn
3305 (unless (save-excursion 3331 (unless (save-excursion
3306 (goto-char (cdr match-dat)) 3332 (goto-char (cdr match-dat))
3307 (ada-goto-next-non-ws orgpoint)) 3333 (ada-goto-next-non-ws orgpoint ignore-goto-label))
3308 ;; 3334 ;;
3309 ;; nothing follows => it's the end-statement directly in 3335 ;; nothing follows => it's the end-statement directly in
3310 ;; front of point => search again 3336 ;; front of point => search again
@@ -3326,7 +3352,7 @@ open parenthesis."
3326 (goto-char (point-min)) 3352 (goto-char (point-min))
3327 ;; 3353 ;;
3328 ;; skip to the very first statement, if there is one 3354 ;; skip to the very first statement, if there is one
3329 ;; 3355 ;;
3330 (unless (ada-goto-next-non-ws orgpoint) 3356 (unless (ada-goto-next-non-ws orgpoint)
3331 (goto-char orgpoint)))) 3357 (goto-char orgpoint))))
3332 (point))) 3358 (point)))
@@ -3387,19 +3413,25 @@ is the end of the match."
3387 match-dat 3413 match-dat
3388 nil))) 3414 nil)))
3389 3415
3390 3416(defun ada-goto-next-non-ws (&optional limit skip-goto-label)
3391(defun ada-goto-next-non-ws (&optional limit) 3417 "Skip to next non-whitespace character.
3392 "Skip white spaces, newlines and comments to next non-ws character. 3418Skips spaces, newlines and comments, and possibly goto labels.
3419Return `point' if moved, nil if not.
3393Stop the search at LIMIT. 3420Stop the search at LIMIT.
3394Do not call this function from within a string." 3421Do not call this function from within a string."
3395 (unless limit 3422 (unless limit
3396 (setq limit (point-max))) 3423 (setq limit (point-max)))
3397 (while (and (<= (point) limit) 3424 (while (and (<= (point) limit)
3398 (progn (forward-comment 10000) 3425 (or (progn (forward-comment 10000)
3399 (if (and (not (eobp)) 3426 (if (and (not (eobp))
3400 (save-excursion (forward-char 1) 3427 (save-excursion (forward-char 1)
3401 (ada-in-string-p))) 3428 (ada-in-string-p)))
3402 (progn (forward-sexp 1) t))))) 3429 (progn (forward-sexp 1) t)))
3430 (and skip-goto-label
3431 (looking-at ada-goto-label-re)
3432 (progn
3433 (goto-char (match-end 0))
3434 t)))))
3403 (if (< (point) limit) 3435 (if (< (point) limit)
3404 (point) 3436 (point)
3405 nil) 3437 nil)
@@ -3426,9 +3458,7 @@ Return the new position of point or nil if not found."
3426 (unless backward 3458 (unless backward
3427 (skip-syntax-forward "w")) 3459 (skip-syntax-forward "w"))
3428 (if (setq match-cons 3460 (if (setq match-cons
3429 (if backward 3461 (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 ;; 3462 ;;
3433 ;; move to the beginning of the word found 3463 ;; move to the beginning of the word found
3434 ;; 3464 ;;
@@ -3463,13 +3493,13 @@ Moves point to the beginning of the declaration."
3463 (if (save-excursion 3493 (if (save-excursion
3464 (ada-goto-previous-word) 3494 (ada-goto-previous-word)
3465 (looking-at (concat "\\<" defun-name "\\> *:"))) 3495 (looking-at (concat "\\<" defun-name "\\> *:")))
3466 t ; do nothing 3496 t ; name matches
3467 ;; else 3497 ;; else
3468 ;; 3498 ;;
3469 ;; 'accept' or 'package' ? 3499 ;; 'accept' or 'package' ?
3470 ;; 3500 ;;
3471 (unless (looking-at ada-subprog-start-re) 3501 (unless (looking-at ada-subprog-start-re)
3472 (ada-goto-matching-decl-start)) 3502 (ada-goto-decl-start))
3473 ;; 3503 ;;
3474 ;; 'begin' of 'procedure'/'function'/'task' or 'declare' 3504 ;; 'begin' of 'procedure'/'function'/'task' or 'declare'
3475 ;; 3505 ;;
@@ -3502,14 +3532,20 @@ Moves point to the beginning of the declaration."
3502 (buffer-substring (point) 3532 (buffer-substring (point)
3503 (progn (forward-sexp 1) (point)))))))) 3533 (progn (forward-sexp 1) (point))))))))
3504 3534
3505(defun ada-goto-matching-decl-start (&optional noerror recursive) 3535(defun ada-goto-decl-start (&optional noerror)
3506 "Move point to the matching declaration start of the current 'begin'. 3536 "Move point to the declaration start of the current construct.
3507If NOERROR is non-nil, it only returns nil if no match was found." 3537If NOERROR is non-nil, return nil if no match was found;
3538otherwise throw error."
3508 (let ((nest-count 1) 3539 (let ((nest-count 1)
3540 (regexp (eval-when-compile
3541 (concat "\\<"
3542 (regexp-opt
3543 '("is" "separate" "end" "declare" "if" "new" "begin" "generic" "when") t)
3544 "\\>")))
3509 3545
3510 ;; first should be set to t if we should stop at the first 3546 ;; first should be set to t if we should stop at the first
3511 ;; "begin" we encounter. 3547 ;; "begin" we encounter.
3512 (first (not recursive)) 3548 (first t)
3513 (count-generic nil) 3549 (count-generic nil)
3514 (stop-at-when nil) 3550 (stop-at-when nil)
3515 ) 3551 )
@@ -3533,7 +3569,7 @@ If NOERROR is non-nil, it only returns nil if no match was found."
3533 ;; search backward for interesting keywords 3569 ;; search backward for interesting keywords
3534 (while (and 3570 (while (and
3535 (not (zerop nest-count)) 3571 (not (zerop nest-count))
3536 (ada-search-ignore-string-comment ada-matching-decl-start-re t)) 3572 (ada-search-ignore-string-comment regexp t))
3537 ;; 3573 ;;
3538 ;; calculate nest-depth 3574 ;; calculate nest-depth
3539 ;; 3575 ;;
@@ -3566,7 +3602,6 @@ If NOERROR is non-nil, it only returns nil if no match was found."
3566 3602
3567 (if (looking-at "end") 3603 (if (looking-at "end")
3568 (ada-goto-matching-start 1 noerror t) 3604 (ada-goto-matching-start 1 noerror t)
3569 ;; (ada-goto-matching-decl-start noerror t)
3570 3605
3571 (setq loop-again nil) 3606 (setq loop-again nil)
3572 (unless (looking-at "begin") 3607 (unless (looking-at "begin")
@@ -3594,34 +3629,50 @@ If NOERROR is non-nil, it only returns nil if no match was found."
3594 (setq first t)) 3629 (setq first t))
3595 ;; 3630 ;;
3596 ((looking-at "is") 3631 ((looking-at "is")
3597 ;; check if it is only a type definition, but not a protected 3632 ;; look for things to ignore
3598 ;; type definition, which should be handled like a procedure. 3633 (if
3599 (if (or (looking-at "is[ \t]+<>") 3634 (or
3600 (save-excursion 3635 ;; generic formal parameter
3601 (forward-comment -10000) 3636 (looking-at "is[ t]+<>")
3602 (forward-char -1) 3637
3603 3638 ;; A type definition, or a case statement. Note that the
3604 ;; Detect if we have a closing parenthesis (Could be 3639 ;; goto-matching-start above on 'end record' leaves us at
3605 ;; either the end of subprogram parameters or (<>) 3640 ;; 'record', not at 'type'.
3606 ;; in a type definition 3641 ;;
3607 (if (= (char-after) ?\)) 3642 ;; We get to a case statement here by calling
3608 (progn 3643 ;; 'ada-move-to-end' from inside a case statement; then
3609 (forward-char 1) 3644 ;; we are not ignoring 'when'.
3610 (backward-sexp 1) 3645 (save-excursion
3611 (forward-comment -10000) 3646 ;; Skip type discriminants or case argument function call param list
3612 )) 3647 (forward-comment -10000)
3613 (skip-chars-backward "a-zA-Z0-9_.'") 3648 (forward-char -1)
3614 (ada-goto-previous-word) 3649 (if (= (char-after) ?\))
3615 (and 3650 (progn
3616 (looking-at "\\<\\(sub\\)?type\\|case\\>") 3651 (forward-char 1)
3652 (backward-sexp 1)
3653 (forward-comment -10000)
3654 ))
3655 ;; skip type or case argument name
3656 (skip-chars-backward "a-zA-Z0-9_.'")
3657 (ada-goto-previous-word)
3658 (and
3659 ;; if it's a protected type, it's the decl start we
3660 ;; are looking for; since we didn't see the 'end'
3661 ;; above, we are inside it.
3662 (looking-at "\\<\\(sub\\)?type\\|case\\>")
3617 (save-match-data 3663 (save-match-data
3618 (ada-goto-previous-word) 3664 (ada-goto-previous-word)
3619 (not (looking-at "\\<protected\\>")))) 3665 (not (looking-at "\\<protected\\>"))))
3620 )) ; end of `or' 3666 ) ; end of type definition p
3621 (goto-char (match-beginning 0)) 3667
3622 (progn 3668 ;; null procedure declaration
3623 (setq nest-count (1- nest-count)) 3669 (save-excursion (ada-goto-next-word) (looking-at "\\<null\\>"))
3624 (setq first nil)))) 3670 );; end or
3671 ;; skip this construct
3672 nil
3673 ;; this is the right "is"
3674 (setq nest-count (1- nest-count))
3675 (setq first nil)))
3625 3676
3626 ;; 3677 ;;
3627 ((looking-at "new") 3678 ((looking-at "new")
@@ -4076,7 +4127,7 @@ Point is moved at the beginning of the SEARCH-RE."
4076Assumes point to be at the end of a statement." 4127Assumes point to be at the end of a statement."
4077 (or (ada-in-paramlist-p) 4128 (or (ada-in-paramlist-p)
4078 (save-excursion 4129 (save-excursion
4079 (ada-goto-matching-decl-start t)))) 4130 (ada-goto-decl-start t))))
4080 4131
4081 4132
4082(defun ada-looking-at-semi-or () 4133(defun ada-looking-at-semi-or ()
@@ -4370,7 +4421,7 @@ of the region. Otherwise, operate only on the current line."
4370 ;; 4421 ;;
4371 ada-move-to-declaration 4422 ada-move-to-declaration
4372 (looking-at "\\<begin\\>") 4423 (looking-at "\\<begin\\>")
4373 (ada-goto-matching-decl-start) 4424 (ada-goto-decl-start)
4374 (setq pos (point)))) 4425 (setq pos (point))))
4375 4426
4376 ) ; end of save-excursion 4427 ) ; end of save-excursion
@@ -4382,7 +4433,7 @@ of the region. Otherwise, operate only on the current line."
4382 (set-syntax-table previous-syntax-table)))) 4433 (set-syntax-table previous-syntax-table))))
4383 4434
4384(defun ada-move-to-end () 4435(defun ada-move-to-end ()
4385 "Move point to the matching end of the block around point. 4436 "Move point to the end of the block around point.
4386Moves to 'begin' if in a declarative part." 4437Moves to 'begin' if in a declarative part."
4387 (interactive) 4438 (interactive)
4388 (let ((pos (point)) 4439 (let ((pos (point))
@@ -4432,7 +4483,7 @@ Moves to 'begin' if in a declarative part."
4432 (ada-goto-matching-end 0)) 4483 (ada-goto-matching-end 0))
4433 ;; package start 4484 ;; package start
4434 ((save-excursion 4485 ((save-excursion
4435 (setq decl-start (and (ada-goto-matching-decl-start t) (point))) 4486 (setq decl-start (and (ada-goto-decl-start t) (point)))
4436 (and decl-start (looking-at "\\<package\\>"))) 4487 (and decl-start (looking-at "\\<package\\>")))
4437 (ada-goto-matching-end 1)) 4488 (ada-goto-matching-end 1))
4438 4489
diff --git a/lisp/progmodes/cc-defs.el b/lisp/progmodes/cc-defs.el
index de0cd896b8e..bb91dee6ce8 100644
--- a/lisp/progmodes/cc-defs.el
+++ b/lisp/progmodes/cc-defs.el
@@ -1217,12 +1217,14 @@ been put there by c-put-char-property. POINT remains unchanged."
1217 ;; This macro does a hidden buffer change. 1217 ;; This macro does a hidden buffer change.
1218 `(progn 1218 `(progn
1219 (c-put-char-property ,beg 'category 'c-cpp-delimiter) 1219 (c-put-char-property ,beg 'category 'c-cpp-delimiter)
1220 (c-put-char-property ,end 'category 'c-cpp-delimiter))) 1220 (if (< ,end (point-max))
1221 (c-put-char-property ,end 'category 'c-cpp-delimiter))))
1221(defmacro c-clear-cpp-delimiters (beg end) 1222(defmacro c-clear-cpp-delimiters (beg end)
1222 ;; This macro does a hidden buffer change. 1223 ;; This macro does a hidden buffer change.
1223 `(progn 1224 `(progn
1224 (c-clear-char-property ,beg 'category) 1225 (c-clear-char-property ,beg 'category)
1225 (c-clear-char-property ,end 'category))) 1226 (if (< ,end (point-max))
1227 (c-clear-char-property ,end 'category))))
1226 1228
1227(defsubst c-comment-out-cpps () 1229(defsubst c-comment-out-cpps ()
1228 ;; Render all preprocessor constructs syntactically commented out. 1230 ;; Render all preprocessor constructs syntactically commented out.
diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el
index 0e6358aeee1..9d0af1d53ce 100644
--- a/lisp/progmodes/cc-engine.el
+++ b/lisp/progmodes/cc-engine.el
@@ -2996,9 +2996,11 @@ comment at the start of cc-engine.el for more info."
2996 ;; containing point. We can then call `c-invalidate-state-cache-1' without 2996 ;; containing point. We can then call `c-invalidate-state-cache-1' without
2997 ;; worrying further about macros and template delimiters. 2997 ;; worrying further about macros and template delimiters.
2998 (c-with-<->-as-parens-suppressed 2998 (c-with-<->-as-parens-suppressed
2999 (if c-state-old-cpp-beg 2999 (if (and c-state-old-cpp-beg
3000 (< c-state-old-cpp-beg here))
3000 (c-with-all-but-one-cpps-commented-out 3001 (c-with-all-but-one-cpps-commented-out
3001 c-state-old-cpp-beg c-state-old-cpp-end 3002 c-state-old-cpp-beg
3003 (min c-state-old-cpp-end here)
3002 (c-invalidate-state-cache-1 here)) 3004 (c-invalidate-state-cache-1 here))
3003 (c-with-cpps-commented-out 3005 (c-with-cpps-commented-out
3004 (c-invalidate-state-cache-1 here))))) 3006 (c-invalidate-state-cache-1 here)))))
@@ -3029,8 +3031,9 @@ comment at the start of cc-engine.el for more info."
3029 (c-parse-state-1)) 3031 (c-parse-state-1))
3030 (c-with-cpps-commented-out 3032 (c-with-cpps-commented-out
3031 (c-parse-state-1)))) 3033 (c-parse-state-1))))
3032 (setq c-state-old-cpp-beg here-cpp-beg 3034 (setq c-state-old-cpp-beg (and here-cpp-beg (copy-marker here-cpp-beg t))
3033 c-state-old-cpp-end here-cpp-end)))) 3035 c-state-old-cpp-end (and here-cpp-end (copy-marker here-cpp-end t)))
3036 )))
3034 3037
3035;; Debug tool to catch cache inconsistencies. This is called from 3038;; Debug tool to catch cache inconsistencies. This is called from
3036;; 000tests.el. 3039;; 000tests.el.
diff --git a/lisp/term.el b/lisp/term.el
index a619ed6ad66..7cb364af622 100644
--- a/lisp/term.el
+++ b/lisp/term.el
@@ -1208,8 +1208,17 @@ without any interpretation."
1208 1208
1209(defun term-send-raw-meta () 1209(defun term-send-raw-meta ()
1210 (interactive) 1210 (interactive)
1211 (let* ((keys (this-command-keys)) 1211 (let ((char last-input-event))
1212 (char (aref keys (1- (length keys))))) 1212 (when (symbolp last-input-event)
1213 ;; Convert `return' to C-m, etc.
1214 (let ((tmp (get char 'event-symbol-elements)))
1215 (when tmp
1216 (setq char (car tmp)))
1217 (when (symbolp char)
1218 (setq tmp (get char 'ascii-character))
1219 (when tmp
1220 (setq char tmp)))))
1221 (setq char (event-basic-type char))
1213 (term-send-raw-string (if (and (numberp char) 1222 (term-send-raw-string (if (and (numberp char)
1214 (> char 127) 1223 (> char 127)
1215 (< char 256)) 1224 (< char 256))
diff --git a/lisp/term/x-win.el b/lisp/term/x-win.el
index 21be4ee85d0..3208ece9c09 100644
--- a/lisp/term/x-win.el
+++ b/lisp/term/x-win.el
@@ -133,9 +133,9 @@ When a session manager tells Emacs that the window system is shutting
133down, this function is called. It calls the functions in the hook 133down, this function is called. It calls the functions in the hook
134`emacs-save-session-functions'. Functions are called with the current 134`emacs-save-session-functions'. Functions are called with the current
135buffer set to a temporary buffer. Functions should use `insert' to insert 135buffer set to a temporary buffer. Functions should use `insert' to insert
136lisp code to save the session state. The buffer is saved 136lisp code to save the session state. The buffer is saved in a file in the
137in a file in the home directory of the user running Emacs. The file 137home directory of the user running Emacs. The file is evaluated when
138is evaluated when Emacs is restarted by the session manager. 138Emacs is restarted by the session manager.
139 139
140If any of the functions returns non-nil, no more functions are called 140If any of the functions returns non-nil, no more functions are called
141and this function returns non-nil. This will inform the session manager 141and this function returns non-nil. This will inform the session manager
@@ -1286,7 +1286,7 @@ The value nil is the same as this list:
1286") 1286")
1287 1287
1288;; Get a selection value of type TYPE by calling x-get-selection with 1288;; Get a selection value of type TYPE by calling x-get-selection with
1289;; an appropiate DATA-TYPE argument decided by `x-select-request-type'. 1289;; an appropriate DATA-TYPE argument decided by `x-select-request-type'.
1290;; The return value is already decoded. If x-get-selection causes an 1290;; The return value is already decoded. If x-get-selection causes an
1291;; error, this function return nil. 1291;; error, this function return nil.
1292 1292
@@ -1425,7 +1425,7 @@ The value nil is the same as this list:
1425(declare-function accelerate-menu "xmenu.c" (&optional frame) t) 1425(declare-function accelerate-menu "xmenu.c" (&optional frame) t)
1426 1426
1427(defun x-menu-bar-open (&optional frame) 1427(defun x-menu-bar-open (&optional frame)
1428 "Open the menu bar if `menu-bar-mode' is on. otherwise call `tmm-menubar'." 1428 "Open the menu bar if `menu-bar-mode' is on, otherwise call `tmm-menubar'."
1429 (interactive "i") 1429 (interactive "i")
1430 (if (and menu-bar-mode 1430 (if (and menu-bar-mode
1431 (fboundp 'accelerate-menu)) 1431 (fboundp 'accelerate-menu))
@@ -1482,7 +1482,7 @@ The value nil is the same as this list:
1482 ;; Create the standard fontset. 1482 ;; Create the standard fontset.
1483 (condition-case err 1483 (condition-case err
1484 (create-fontset-from-fontset-spec standard-fontset-spec t) 1484 (create-fontset-from-fontset-spec standard-fontset-spec t)
1485 (error (display-warning 1485 (error (display-warning
1486 'initialization 1486 'initialization
1487 (format "Creation of the standard fontset failed: %s" err) 1487 (format "Creation of the standard fontset failed: %s" err)
1488 :error))) 1488 :error)))
@@ -1654,7 +1654,7 @@ A value that begins with n: denotes a named icon instead of a stock icon."
1654 :group 'x) 1654 :group 'x)
1655 1655
1656(defcustom icon-map-list '(x-gtk-stock-map) 1656(defcustom icon-map-list '(x-gtk-stock-map)
1657 "A list of alists that maps icon file names to stock/named icons. 1657 "A list of alists that map icon file names to stock/named icons.
1658The alists are searched in the order they appear. The first match is used. 1658The alists are searched in the order they appear. The first match is used.
1659The keys in the alists are file names without extension and with two directory 1659The keys in the alists are file names without extension and with two directory
1660components. For example, to map /usr/share/emacs/22.1.1/etc/images/open.xpm 1660components. For example, to map /usr/share/emacs/22.1.1/etc/images/open.xpm
diff --git a/lisp/textmodes/artist.el b/lisp/textmodes/artist.el
index 137f358970c..e1d7b053491 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.
@@ -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
@@ -5528,7 +5528,7 @@ The event, EV, is the mouse event."
5528;; See `artist-draw-rect' for an example. 5528;; See `artist-draw-rect' for an example.
5529;; 5529;;
5530;; You must call the init-fn, the prep-fill-fn, arrow-set-fn 5530;; You must call the init-fn, the prep-fill-fn, arrow-set-fn
5531;; and the exit-fn at the apropriate points. 5531;; and the exit-fn at the appropriate points.
5532;; 5532;;
5533;; When artist-mouse-draw-xxx ends, the shape for your mode 5533;; When artist-mouse-draw-xxx ends, the shape for your mode
5534;; must be completely drawn. 5534;; must be completely drawn.
@@ -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
@@ -5561,7 +5561,7 @@ The event, EV, is the mouse event."
5561;; work. 5561;; work.
5562;; 5562;;
5563;; You must call the init-fn, the prep-fill-fn, arrow-set-fn 5563;; You must call the init-fn, the prep-fill-fn, arrow-set-fn
5564;; and the exit-fn at the apropriate points. 5564;; and the exit-fn at the appropriate points.
5565;; 5565;;
5566;; e. Add your new mode to the master table, `artist-mt'. 5566;; e. Add your new mode to the master table, `artist-mt'.
5567;; 5567;;
diff --git a/lisp/textmodes/sgml-mode.el b/lisp/textmodes/sgml-mode.el
index 996734637bc..b9d52acdeba 100644
--- a/lisp/textmodes/sgml-mode.el
+++ b/lisp/textmodes/sgml-mode.el
@@ -608,11 +608,7 @@ Uses `sgml-char-names'."
608 "Insert a symbolic character name according to `sgml-char-names'." 608 "Insert a symbolic character name according to `sgml-char-names'."
609 (interactive "*") 609 (interactive "*")
610 (if sgml-name-8bit-mode 610 (if sgml-name-8bit-mode
611 (let ((mc last-command-event)) 611 (sgml-name-char last-command-event)
612 (if (< mc 256)
613 (setq mc (unibyte-char-to-multibyte mc)))
614 (or mc (setq mc last-command-event))
615 (sgml-name-char mc))
616 (self-insert-command 1))) 612 (self-insert-command 1)))
617 613
618(defun sgml-name-8bit-mode () 614(defun sgml-name-8bit-mode ()
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/lisp/whitespace.el b/lisp/whitespace.el
index fbdc6d120a0..183698a28f3 100644
--- a/lisp/whitespace.el
+++ b/lisp/whitespace.el
@@ -397,14 +397,14 @@ It's a list containing some or all of the following values:
397 spaces SPACEs and HARD SPACEs are visualized via 397 spaces SPACEs and HARD SPACEs are visualized via
398 faces. 398 faces.
399 399
400 lines lines whose have columns beyond 400 lines lines which have columns beyond
401 `whitespace-line-column' are highlighted via 401 `whitespace-line-column' are highlighted via
402 faces . 402 faces.
403 Whole line is highlighted. 403 Whole line is highlighted.
404 It has precedence over `lines-tail' (see 404 It has precedence over `lines-tail' (see
405 below). 405 below).
406 406
407 lines-tail lines whose have columns beyond 407 lines-tail lines which have columns beyond
408 `whitespace-line-column' are highlighted via 408 `whitespace-line-column' are highlighted via
409 faces. 409 faces.
410 But only the part of line which goes 410 But only the part of line which goes
@@ -462,7 +462,7 @@ Any other value is ignored.
462If nil, don't visualize TABs, (HARD) SPACEs and NEWLINEs via faces and 462If nil, don't visualize TABs, (HARD) SPACEs and NEWLINEs via faces and
463via display table. 463via display table.
464 464
465There is an evaluation order for some values, if some values are 465There is an evaluation order for some values, if they are
466included in `whitespace-style' list. For example, if 466included in `whitespace-style' list. For example, if
467indentation, indentation::tab and/or indentation::space are 467indentation, indentation::tab and/or indentation::space are
468included in `whitespace-style' list. The evaluation order for 468included in `whitespace-style' list. The evaluation order for
@@ -1134,7 +1134,7 @@ otherwise, turn off visualization.
1134Use `global-whitespace-newline-mode' only for NEWLINE 1134Use `global-whitespace-newline-mode' only for NEWLINE
1135visualization exclusively. For other visualizations, including 1135visualization exclusively. For other visualizations, including
1136NEWLINE visualization together with (HARD) SPACEs and/or TABs, 1136NEWLINE visualization together with (HARD) SPACEs and/or TABs,
1137please, use `global-whitespace-mode'. 1137please use `global-whitespace-mode'.
1138 1138
1139See also `whitespace-newline' and `whitespace-display-mappings'." 1139See also `whitespace-newline' and `whitespace-display-mappings'."
1140 :lighter " NL" 1140 :lighter " NL"
@@ -2046,7 +2046,7 @@ See also `whitespace-toggle-option-alist'."
2046 ((quit error) 2046 ((quit error)
2047 (whitespace-help-off) 2047 (whitespace-help-off)
2048 (error (error-message-string data))))) 2048 (error (error-message-string data)))))
2049 (list sym))) ; return the apropriate symbol 2049 (list sym))) ; return the appropriate symbol
2050 2050
2051 2051
2052(defun whitespace-toggle-list (local-p arg the-list) 2052(defun whitespace-toggle-list (local-p arg the-list)
diff --git a/src/ChangeLog b/src/ChangeLog
index e1d2ba440ab..5589b7f34a2 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,38 @@
12010-01-22 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2
3 * lisp.h (make_pure_string): String pointer arg now points to const.
4
5 * alloc.c (find_string_data_in_pure, make_pure_string): String pointer
6 args now point to const.
7
82010-01-22 Eli Zaretskii <eliz@gnu.org>
9
10 * lread.c (Fload): Don't treat files without .elc extension as
11 byte-compiled if they are ``magic'', i.e. `openp' returned -2 for
12 them. (bug#5303)
13
142010-01-20 Kenichi Handa <handa@m17n.org>
15
16 * coding.c (consume_chars): If ! multibyte and the encoder is ccl,
17 treat the source as actual byte sequence.
18
192010-01-19 Alan Mackenzie <acm@muc.de>
20
21 Fix spurious before-change-functions invocation from (insert ?\n).
22 * textprop.c (set_text_properties): rename parameter
23 `signal_after_change_p' to `coherent_change_p', and make the
24 invocation of `modify_region' conditional on it.
25
262010-01-19 Jan Djärv <jan.h.d@swipnet.se>
27
28 * xsettings.c (apply_xft_settings): Save settings in Vxft_settings
29 for debug purpose.
30 (syms_of_xsettings): Declare xft-settings.
31
322010-01-18 Chong Yidong <cyd@stupidchicken.com>
33
34 * editfns.c (Fcurrent_time_string): Doc fix (Bug#5408).
35
12010-01-16 Stefan Monnier <monnier@iro.umontreal.ca> 362010-01-16 Stefan Monnier <monnier@iro.umontreal.ca>
2 37
3 * xterm.c (event_handler_gdk): Block input (Bug#5037). 38 * xterm.c (event_handler_gdk): Block input (Bug#5037).
diff --git a/src/alloc.c b/src/alloc.c
index 3c48f8762f8..9a935cc8952 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -4725,11 +4725,11 @@ check_pure_size ()
4725 4725
4726static char * 4726static char *
4727find_string_data_in_pure (data, nbytes) 4727find_string_data_in_pure (data, nbytes)
4728 char *data; 4728 const char *data;
4729 int nbytes; 4729 int nbytes;
4730{ 4730{
4731 int i, skip, bm_skip[256], last_char_skip, infinity, start, start_max; 4731 int i, skip, bm_skip[256], last_char_skip, infinity, start, start_max;
4732 unsigned char *p; 4732 const unsigned char *p;
4733 char *non_lisp_beg; 4733 char *non_lisp_beg;
4734 4734
4735 if (pure_bytes_used_non_lisp < nbytes + 1) 4735 if (pure_bytes_used_non_lisp < nbytes + 1)
@@ -4740,7 +4740,7 @@ find_string_data_in_pure (data, nbytes)
4740 for (i = 0; i < 256; i++) 4740 for (i = 0; i < 256; i++)
4741 bm_skip[i] = skip; 4741 bm_skip[i] = skip;
4742 4742
4743 p = (unsigned char *) data; 4743 p = (const unsigned char *) data;
4744 while (--skip > 0) 4744 while (--skip > 0)
4745 bm_skip[*p++] = skip; 4745 bm_skip[*p++] = skip;
4746 4746
@@ -4754,7 +4754,7 @@ find_string_data_in_pure (data, nbytes)
4754 infinity = pure_bytes_used_non_lisp + 1; 4754 infinity = pure_bytes_used_non_lisp + 1;
4755 bm_skip['\0'] = infinity; 4755 bm_skip['\0'] = infinity;
4756 4756
4757 p = (unsigned char *) non_lisp_beg + nbytes; 4757 p = (const unsigned char *) non_lisp_beg + nbytes;
4758 start = 0; 4758 start = 0;
4759 do 4759 do
4760 { 4760 {
@@ -4796,7 +4796,7 @@ find_string_data_in_pure (data, nbytes)
4796 4796
4797Lisp_Object 4797Lisp_Object
4798make_pure_string (data, nchars, nbytes, multibyte) 4798make_pure_string (data, nchars, nbytes, multibyte)
4799 char *data; 4799 const char *data;
4800 int nchars, nbytes; 4800 int nchars, nbytes;
4801 int multibyte; 4801 int multibyte;
4802{ 4802{
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/coding.c b/src/coding.c
index b3a51eb0c4c..935d32e6a58 100644
--- a/src/coding.c
+++ b/src/coding.c
@@ -7417,7 +7417,8 @@ consume_chars (coding, translation_table, max_lookup)
7417 { 7417 {
7418 EMACS_INT bytes; 7418 EMACS_INT bytes;
7419 7419
7420 if (coding->encoder == encode_coding_raw_text) 7420 if (coding->encoder == encode_coding_raw_text
7421 || coding->encoder == encode_coding_ccl)
7421 c = *src++, pos++; 7422 c = *src++, pos++;
7422 else if ((bytes = MULTIBYTE_LENGTH (src, src_end)) > 0) 7423 else if ((bytes = MULTIBYTE_LENGTH (src, src_end)) > 0)
7423 c = STRING_CHAR_ADVANCE_NO_UNIFY (src), pos += bytes; 7424 c = STRING_CHAR_ADVANCE_NO_UNIFY (src), pos += bytes;
diff --git a/src/editfns.c b/src/editfns.c
index 00ac0ca0fa9..093f141bff2 100644
--- a/src/editfns.c
+++ b/src/editfns.c
@@ -1897,7 +1897,7 @@ usage: (encode-time SECOND MINUTE HOUR DAY MONTH YEAR &optional ZONE) */)
1897} 1897}
1898 1898
1899DEFUN ("current-time-string", Fcurrent_time_string, Scurrent_time_string, 0, 1, 0, 1899DEFUN ("current-time-string", Fcurrent_time_string, Scurrent_time_string, 0, 1, 0,
1900 doc: /* Return the current time, as a human-readable string. 1900 doc: /* Return the current local time, as a human-readable string.
1901Programs can use this function to decode a time, 1901Programs can use this function to decode a time,
1902since the number of columns in each field is fixed 1902since the number of columns in each field is fixed
1903if the year is in the range 1000-9999. 1903if the year is in the range 1000-9999.
diff --git a/src/lisp.h b/src/lisp.h
index 5ea0303976d..7032a3f48f4 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -2686,7 +2686,7 @@ extern Lisp_Object make_uninit_multibyte_string P_ ((int, int));
2686extern Lisp_Object make_string_from_bytes P_ ((const char *, int, int)); 2686extern Lisp_Object make_string_from_bytes P_ ((const char *, int, int));
2687extern Lisp_Object make_specified_string P_ ((const char *, int, int, int)); 2687extern Lisp_Object make_specified_string P_ ((const char *, int, int, int));
2688EXFUN (Fpurecopy, 1); 2688EXFUN (Fpurecopy, 1);
2689extern Lisp_Object make_pure_string P_ ((char *, int, int, int)); 2689extern Lisp_Object make_pure_string P_ ((const char *, int, int, int));
2690extern Lisp_Object make_pure_c_string (const char *data); 2690extern Lisp_Object make_pure_c_string (const char *data);
2691extern Lisp_Object pure_cons P_ ((Lisp_Object, Lisp_Object)); 2691extern Lisp_Object pure_cons P_ ((Lisp_Object, Lisp_Object));
2692extern Lisp_Object make_pure_vector P_ ((EMACS_INT)); 2692extern Lisp_Object make_pure_vector P_ ((EMACS_INT));
diff --git a/src/lread.c b/src/lread.c
index db425b82299..ba9d5378104 100644
--- a/src/lread.c
+++ b/src/lread.c
@@ -1155,7 +1155,7 @@ Return t if the file exists and loads successfully. */)
1155 1155
1156 if (!bcmp (SDATA (found) + SBYTES (found) - 4, 1156 if (!bcmp (SDATA (found) + SBYTES (found) - 4,
1157 ".elc", 4) 1157 ".elc", 4)
1158 || (version = safe_to_load_p (fd)) > 0) 1158 || (fd >= 0 && (version = safe_to_load_p (fd)) > 0))
1159 /* Load .elc files directly, but not when they are 1159 /* Load .elc files directly, but not when they are
1160 remote and have no handler! */ 1160 remote and have no handler! */
1161 { 1161 {
diff --git a/src/textprop.c b/src/textprop.c
index fee73321deb..83d09cce558 100644
--- a/src/textprop.c
+++ b/src/textprop.c
@@ -1346,13 +1346,15 @@ the designated part of OBJECT. */)
1346/* Replace properties of text from START to END with new list of 1346/* Replace properties of text from START to END with new list of
1347 properties PROPERTIES. OBJECT is the buffer or string containing 1347 properties PROPERTIES. OBJECT is the buffer or string containing
1348 the text. OBJECT nil means use the current buffer. 1348 the text. OBJECT nil means use the current buffer.
1349 SIGNAL_AFTER_CHANGE_P nil means don't signal after changes. Value 1349 COHERENT_CHANGE_P nil means this is being called as an internal
1350 is nil if the function _detected_ that it did not replace any 1350 subroutine, rather than as a change primitive with checking of
1351 properties, non-nil otherwise. */ 1351 read-only, invoking change hooks, etc.. Value is nil if the
1352 function _detected_ that it did not replace any properties, non-nil
1353 otherwise. */
1352 1354
1353Lisp_Object 1355Lisp_Object
1354set_text_properties (start, end, properties, object, signal_after_change_p) 1356set_text_properties (start, end, properties, object, coherent_change_p)
1355 Lisp_Object start, end, properties, object, signal_after_change_p; 1357 Lisp_Object start, end, properties, object, coherent_change_p;
1356{ 1358{
1357 register INTERVAL i; 1359 register INTERVAL i;
1358 Lisp_Object ostart, oend; 1360 Lisp_Object ostart, oend;
@@ -1397,12 +1399,12 @@ set_text_properties (start, end, properties, object, signal_after_change_p)
1397 return Qnil; 1399 return Qnil;
1398 } 1400 }
1399 1401
1400 if (BUFFERP (object)) 1402 if (BUFFERP (object) && !NILP (coherent_change_p))
1401 modify_region (XBUFFER (object), XINT (start), XINT (end), 1); 1403 modify_region (XBUFFER (object), XINT (start), XINT (end), 1);
1402 1404
1403 set_text_properties_1 (start, end, properties, object, i); 1405 set_text_properties_1 (start, end, properties, object, i);
1404 1406
1405 if (BUFFERP (object) && !NILP (signal_after_change_p)) 1407 if (BUFFERP (object) && !NILP (coherent_change_p))
1406 signal_after_change (XINT (start), XINT (end) - XINT (start), 1408 signal_after_change (XINT (start), XINT (end) - XINT (start),
1407 XINT (end) - XINT (start)); 1409 XINT (end) - XINT (start));
1408 return Qt; 1410 return Qt;
diff --git a/src/xsettings.c b/src/xsettings.c
index 3e673129d4c..945007db2f0 100644
--- a/src/xsettings.c
+++ b/src/xsettings.c
@@ -42,6 +42,8 @@ static char *current_mono_font;
42static struct x_display_info *first_dpyinfo; 42static struct x_display_info *first_dpyinfo;
43static Lisp_Object Qfont_name, Qfont_render; 43static Lisp_Object Qfont_name, Qfont_render;
44static int use_system_font; 44static int use_system_font;
45static Lisp_Object Vxft_settings;
46
45 47
46#ifdef HAVE_GCONF 48#ifdef HAVE_GCONF
47static GConfClient *gconf_client; 49static GConfClient *gconf_client;
@@ -406,12 +408,13 @@ apply_xft_settings (dpyinfo, send_event_p)
406 FcPattern *pat; 408 FcPattern *pat;
407 struct xsettings settings, oldsettings; 409 struct xsettings settings, oldsettings;
408 int changed = 0; 410 int changed = 0;
411 char buf[256];
409 412
410 if (!read_xft_settings (dpyinfo, &settings)) 413 if (!read_xft_settings (dpyinfo, &settings))
411 return; 414 return;
412 415
413 memset (&oldsettings, 0, sizeof (oldsettings)); 416 memset (&oldsettings, 0, sizeof (oldsettings));
414 417 buf[0] = '\0';
415 pat = FcPatternCreate (); 418 pat = FcPatternCreate ();
416 XftDefaultSubstitute (dpyinfo->display, 419 XftDefaultSubstitute (dpyinfo->display,
417 XScreenNumberOfScreen (dpyinfo->screen), 420 XScreenNumberOfScreen (dpyinfo->screen),
@@ -428,20 +431,30 @@ apply_xft_settings (dpyinfo, send_event_p)
428 FcPatternDel (pat, FC_ANTIALIAS); 431 FcPatternDel (pat, FC_ANTIALIAS);
429 FcPatternAddBool (pat, FC_ANTIALIAS, settings.aa); 432 FcPatternAddBool (pat, FC_ANTIALIAS, settings.aa);
430 ++changed; 433 ++changed;
434 oldsettings.aa = settings.aa;
431 } 435 }
436 sprintf (buf, "Antialias: %d", oldsettings.aa);
437
432 if ((settings.seen & SEEN_HINTING) != 0 438 if ((settings.seen & SEEN_HINTING) != 0
433 && oldsettings.hinting != settings.hinting) 439 && oldsettings.hinting != settings.hinting)
434 { 440 {
435 FcPatternDel (pat, FC_HINTING); 441 FcPatternDel (pat, FC_HINTING);
436 FcPatternAddBool (pat, FC_HINTING, settings.hinting); 442 FcPatternAddBool (pat, FC_HINTING, settings.hinting);
437 ++changed; 443 ++changed;
444 oldsettings.hinting = settings.hinting;
438 } 445 }
446 if (strlen (buf) > 0) strcat (buf, ", ");
447 sprintf (buf+strlen (buf), "Hinting: %d", oldsettings.hinting);
439 if ((settings.seen & SEEN_RGBA) != 0 && oldsettings.rgba != settings.rgba) 448 if ((settings.seen & SEEN_RGBA) != 0 && oldsettings.rgba != settings.rgba)
440 { 449 {
441 FcPatternDel (pat, FC_RGBA); 450 FcPatternDel (pat, FC_RGBA);
442 FcPatternAddInteger (pat, FC_RGBA, settings.rgba); 451 FcPatternAddInteger (pat, FC_RGBA, settings.rgba);
452 oldsettings.rgba = settings.rgba;
443 ++changed; 453 ++changed;
444 } 454 }
455 if (strlen (buf) > 0) strcat (buf, ", ");
456 sprintf (buf+strlen (buf), "RGBA: %d", oldsettings.rgba);
457
445 /* Older fontconfig versions don't have FC_LCD_FILTER. */ 458 /* Older fontconfig versions don't have FC_LCD_FILTER. */
446 if ((settings.seen & SEEN_LCDFILTER) != 0 459 if ((settings.seen & SEEN_LCDFILTER) != 0
447 && oldsettings.lcdfilter != settings.lcdfilter) 460 && oldsettings.lcdfilter != settings.lcdfilter)
@@ -449,14 +462,22 @@ apply_xft_settings (dpyinfo, send_event_p)
449 FcPatternDel (pat, FC_LCD_FILTER); 462 FcPatternDel (pat, FC_LCD_FILTER);
450 FcPatternAddInteger (pat, FC_LCD_FILTER, settings.lcdfilter); 463 FcPatternAddInteger (pat, FC_LCD_FILTER, settings.lcdfilter);
451 ++changed; 464 ++changed;
465 oldsettings.lcdfilter = settings.lcdfilter;
452 } 466 }
467 if (strlen (buf) > 0) strcat (buf, ", ");
468 sprintf (buf+strlen (buf), "LCDFilter: %d", oldsettings.lcdfilter);
469
453 if ((settings.seen & SEEN_HINTSTYLE) != 0 470 if ((settings.seen & SEEN_HINTSTYLE) != 0
454 && oldsettings.hintstyle != settings.hintstyle) 471 && oldsettings.hintstyle != settings.hintstyle)
455 { 472 {
456 FcPatternDel (pat, FC_HINT_STYLE); 473 FcPatternDel (pat, FC_HINT_STYLE);
457 FcPatternAddInteger (pat, FC_HINT_STYLE, settings.hintstyle); 474 FcPatternAddInteger (pat, FC_HINT_STYLE, settings.hintstyle);
458 ++changed; 475 ++changed;
476 oldsettings.hintstyle = settings.hintstyle;
459 } 477 }
478 if (strlen (buf) > 0) strcat (buf, ", ");
479 sprintf (buf+strlen (buf), "Hintstyle: %d", oldsettings.hintstyle);
480
460 if ((settings.seen & SEEN_DPI) != 0 && oldsettings.dpi != settings.dpi 481 if ((settings.seen & SEEN_DPI) != 0 && oldsettings.dpi != settings.dpi
461 && settings.dpi > 0) 482 && settings.dpi > 0)
462 { 483 {
@@ -465,7 +486,8 @@ apply_xft_settings (dpyinfo, send_event_p)
465 FcPatternDel (pat, FC_DPI); 486 FcPatternDel (pat, FC_DPI);
466 FcPatternAddDouble (pat, FC_DPI, settings.dpi); 487 FcPatternAddDouble (pat, FC_DPI, settings.dpi);
467 ++changed; 488 ++changed;
468 489 oldsettings.dpi = settings.dpi;
490
469 /* Change the DPI on this display and all frames on the display. */ 491 /* Change the DPI on this display and all frames on the display. */
470 dpyinfo->resy = dpyinfo->resx = settings.dpi; 492 dpyinfo->resy = dpyinfo->resx = settings.dpi;
471 FOR_EACH_FRAME (tail, frame) 493 FOR_EACH_FRAME (tail, frame)
@@ -474,12 +496,16 @@ apply_xft_settings (dpyinfo, send_event_p)
474 XFRAME (frame)->resy = XFRAME (frame)->resx = settings.dpi; 496 XFRAME (frame)->resy = XFRAME (frame)->resx = settings.dpi;
475 } 497 }
476 498
499 if (strlen (buf) > 0) strcat (buf, ", ");
500 sprintf (buf+strlen (buf), "DPI: %lf", oldsettings.dpi);
501
477 if (changed) 502 if (changed)
478 { 503 {
479 XftDefaultSet (dpyinfo->display, pat); 504 XftDefaultSet (dpyinfo->display, pat);
480 if (send_event_p) 505 if (send_event_p)
481 store_font_changed_event (Qfont_render, 506 store_font_changed_event (Qfont_render,
482 XCAR (dpyinfo->name_list_element)); 507 XCAR (dpyinfo->name_list_element));
508 Vxft_settings = make_string (buf, strlen (buf));
483 } 509 }
484 else 510 else
485 FcPatternDestroy (pat); 511 FcPatternDestroy (pat);
@@ -638,6 +664,10 @@ syms_of_xsettings ()
638 doc: /* *Non-nil means to use the system defined font. */); 664 doc: /* *Non-nil means to use the system defined font. */);
639 use_system_font = 0; 665 use_system_font = 0;
640 666
667 DEFVAR_LISP ("xft-settings", &Vxft_settings,
668 doc: /* Font settings applied to Xft. */);
669 Vxft_settings = make_string ("", 0);
670
641#ifdef HAVE_XFT 671#ifdef HAVE_XFT
642 Fprovide (intern_c_string ("font-render-setting"), Qnil); 672 Fprovide (intern_c_string ("font-render-setting"), Qnil);
643#ifdef HAVE_GCONF 673#ifdef HAVE_GCONF
diff --git a/test/ChangeLog b/test/ChangeLog
index e52559399e5..e17adc0bfc7 100644
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -1,3 +1,10 @@
12010-01-18 Juanma Barranquero <lekktu@gmail.com>
2
3 * cedet/semantic-tests.el (semanticdb-test-gnu-global)
4 (semantic-lex-test-full-depth, semantic-symref-test-count-hits-in-tag):
5 Fix typos in docstrings and error messages.
6 (semanticdb-ebrowse-run-tests): Fix typos in error messages.
7
12010-01-14 Juanma Barranquero <lekktu@gmail.com> 82010-01-14 Juanma Barranquero <lekktu@gmail.com>
2 9
3 * cedet/cedet-utests.el (cedet-utest-log-shutdown, pulse-test): 10 * cedet/cedet-utests.el (cedet-utest-log-shutdown, pulse-test):
diff --git a/test/cedet/semantic-tests.el b/test/cedet/semantic-tests.el
index b21b451691b..6d13be1d5d2 100644
--- a/test/cedet/semantic-tests.el
+++ b/test/cedet/semantic-tests.el
@@ -58,7 +58,7 @@ All systems are different. Ask questions along the way."
58 (when (not (or (eq major-mode 'c-mode) 58 (when (not (or (eq major-mode 'c-mode)
59 (eq major-mode 'c++-mode))) 59 (eq major-mode 'c++-mode)))
60 (error "Please make your default buffer be a C or C++ file, then 60 (error "Please make your default buffer be a C or C++ file, then
61run the test again.."))) 61run the test again")))
62 62
63(defun semanticdb-ebrowse-dump () 63(defun semanticdb-ebrowse-dump ()
64 "Find the first loaded ebrowse table, and dump out the contents." 64 "Find the first loaded ebrowse table, and dump out the contents."
@@ -83,7 +83,7 @@ run the test again..")))
83(defun semanticdb-test-gnu-global (searchfor &optional standardfile) 83(defun semanticdb-test-gnu-global (searchfor &optional standardfile)
84 "Test the GNU Global semanticdb. 84 "Test the GNU Global semanticdb.
85Argument SEARCHFOR is the text to search for. 85Argument SEARCHFOR is the text to search for.
86If optional arg STANDARDFILE is non nil, use a standard file w/ global enabled." 86If optional arg STANDARDFILE is non-nil, use a standard file w/ global enabled."
87 (interactive "sSearch For Tag: \nP") 87 (interactive "sSearch For Tag: \nP")
88 88
89 (require 'data-debug) 89 (require 'data-debug)
@@ -235,7 +235,7 @@ Optional argument ARG specifies not to use color."
235 235
236(defun semantic-lex-test-full-depth (arg) 236(defun semantic-lex-test-full-depth (arg)
237 "Test the semantic lexer in the current buffer parsing through lists. 237 "Test the semantic lexer in the current buffer parsing through lists.
238Usually the lexer parses 238Usually the lexer parses.
239If universal argument ARG, then try the whole buffer." 239If universal argument ARG, then try the whole buffer."
240 (interactive "P") 240 (interactive "P")
241 (let* ((start (current-time)) 241 (let* ((start (current-time))
@@ -309,7 +309,7 @@ Analyze the area between BEG and END."
309 309
310(defun semantic-symref-test-count-hits-in-tag () 310(defun semantic-symref-test-count-hits-in-tag ()
311 "Lookup in the current tag the symbol under point. 311 "Lookup in the current tag the symbol under point.
312the count all the other references to the same symbol within the 312Then count all the other references to the same symbol within the
313tag that contains point, and return that." 313tag that contains point, and return that."
314 (interactive) 314 (interactive)
315 (let* ((ctxt (semantic-analyze-current-context)) 315 (let* ((ctxt (semantic-analyze-current-context))
@@ -323,7 +323,7 @@ tag that contains point, and return that."
323 (semantic-tag-start tag) 323 (semantic-tag-start tag)
324 (semantic-tag-end tag)) 324 (semantic-tag-end tag))
325 (when (interactive-p) 325 (when (interactive-p)
326 (message "Found %d occurances of %s in %.2f seconds" 326 (message "Found %d occurrences of %s in %.2f seconds"
327 Lcount (semantic-tag-name target) 327 Lcount (semantic-tag-name target)
328 (semantic-elapsed-time start (current-time)))) 328 (semantic-elapsed-time start (current-time))))
329 Lcount))) 329 Lcount)))