aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark A. Hershberger2010-01-24 23:52:26 -0500
committerMark A. Hershberger2010-01-24 23:52:26 -0500
commitb1bb0a2570b8a40017220097c40c6057cfe17efe (patch)
treed308182f02f1d459ea9a21c31a8ca8b0f3b4f787
parentaaef4f91fad60716fa070b912d71b9f1ccd2e7b4 (diff)
parent8dc1adf681df162bfd305debef0e1ab31bed3ebd (diff)
downloademacs-b1bb0a2570b8a40017220097c40c6057cfe17efe.tar.gz
emacs-b1bb0a2570b8a40017220097c40c6057cfe17efe.zip
merge conflict
-rw-r--r--ChangeLog5
-rw-r--r--admin/ChangeLog5
-rw-r--r--admin/notes/bugtracker89
-rwxr-xr-xadmin/revdiff137
-rwxr-xr-xconfigure3
-rw-r--r--configure.in2
-rw-r--r--doc/emacs/ChangeLog6
-rw-r--r--doc/emacs/trouble.texi2
-rw-r--r--doc/misc/ChangeLog6
-rw-r--r--doc/misc/gnus.texi2
-rw-r--r--etc/NEWS3
-rw-r--r--lisp/ChangeLog83
-rw-r--r--lisp/dired-aux.el2
-rw-r--r--lisp/dired.el4
-rw-r--r--lisp/emacs-lisp/advice.el2
-rw-r--r--lisp/emacs-lisp/assoc.el22
-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.el5
-rw-r--r--lisp/mail/rmailmm.el5
-rw-r--r--lisp/net/tramp-imap.el21
-rw-r--r--lisp/net/tramp-smb.el10
-rw-r--r--lisp/progmodes/ada-mode.el6
-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/xterm.el29
-rw-r--r--lisp/textmodes/sgml-mode.el6
-rw-r--r--lisp/url/ChangeLog4
-rw-r--r--lisp/url/url-util.el1
-rw-r--r--lisp/vc-git.el17
-rw-r--r--src/ChangeLog56
-rw-r--r--src/alloc.c10
-rw-r--r--src/coding.c3
-rw-r--r--src/filelock.c2
-rw-r--r--src/image.c14
-rw-r--r--src/keymap.c43
-rw-r--r--src/lisp.h2
-rw-r--r--src/lread.c2
-rw-r--r--src/xdisp.c3
42 files changed, 380 insertions, 288 deletions
diff --git a/ChangeLog b/ChangeLog
index db1d28dd620..6792ba4f3e6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
12010-01-23 Giorgos Keramidas <keramida@ceid.upatras.gr> (tiny change)
2
3 * configure.in: Check for utmp.h availability (FreeBSD 9.x lacks
4 this header file).
5
12010-01-12 Juanma Barranquero <lekktu@gmail.com> 62010-01-12 Juanma Barranquero <lekktu@gmail.com>
2 7
3 * .bzrignore: Ignore all .exe, instead of individual files. 8 * .bzrignore: Ignore all .exe, instead of individual files.
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/bugtracker b/admin/notes/bugtracker
index e253cb6d1b4..1a9f6f2bd4c 100644
--- a/admin/notes/bugtracker
+++ b/admin/notes/bugtracker
@@ -35,15 +35,16 @@ So you need to explicitly CC him/her (and anyone else you like).
35(Many people think the submitter SHOULD be automatically subscribed 35(Many people think the submitter SHOULD be automatically subscribed
36to subsequent discussion, but this does not seem to be implemented. 36to subsequent discussion, but this does not seem to be implemented.
37See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=37078) 37See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=37078)
38See also http://debbugs.gnu.org/5439
38 39
39Do NOT send a separate copy to the bug list, since this may generate a 40Do NOT send a separate copy to the bug list address, since this may
40new report. The only time to send mail to the bug list is to create a 41generate a new report. The only time to send mail to the bug list
41new report. 42address is to create a new report.
42 43
43Gnus users can add the following to message-dont-reply-to-names; 44Gnus users can add the following to message-dont-reply-to-names;
44similarly with Rmail and rmail-dont-reply-to-names: 45similarly with Rmail and rmail-dont-reply-to-names:
45 46
46"\\(emacs-pretest-bug\\|bug-gnu-emacs\\)@gnu\\.org\\|\ 47"\\(emacs-pretest-bug\\|bug-gnu-emacs\\|bug-\\(e\\|gnu\\)macs\\)@gnu\\.org\\|\
47\\(submit\\|control\\|owner\\)@debbugs\\.gnu\\.org" 48\\(submit\\|control\\|owner\\)@debbugs\\.gnu\\.org"
48 49
49The "owner@debbugs.gnu.org" entry is there because it appears in the 50The "owner@debbugs.gnu.org" entry is there because it appears in the
@@ -58,27 +59,23 @@ reporting.)
58(e.g. bug-cc-mode@gnu.org), do NOT just use a Cc: header. 59(e.g. bug-cc-mode@gnu.org), do NOT just use a Cc: header.
59Instead, use "X-Debbugs-CC:". This ensures the Cc address will get a 60Instead, use "X-Debbugs-CC:". This ensures the Cc address will get a
60mail with the bug report number in. If you do not do this, each reply 61mail with the bug report number in. If you do not do this, each reply
61in the subsequent discussion will end up creating a new bug. This is 62in the subsequent discussion will end up creating a new bug.
62annoying. 63This is annoying.
63 64
64Note that the way this feature works is perhaps not ideal (Bug#1720). 65If a new report contains X-Debbugs-CC in the input, this is
65If X-Debbugs-CC: was specifed by a real header, that header is removed 66converted to a real Cc header in the output. (See Bug#1720).
66in the mail sent out to the bug list, and the addresses merged into 67It is also merged into the Resent-CC header (see below).
67the Resent-CC header (see below). They don't appear as an explicit CC:
68header, nor do they appear in the Reply-To: header. So people you
69X-Debbugs-CC are not included in any following discussion unless they are
70manually cc'd. So this feature really only serves to notify them that
71a bug has been filed. It's then up to them to follow any subsequent
72discussion.
73
74If X-Debbugs-CC were merged into the Reply-To header, this might work
75more the way people expect.
76 68
77** How does Debbugs send out mails? 69** How does Debbugs send out mails?
78 70
79The mails are sent out to the bug list with From: and To: unchanged. 71The mails are sent out to the bug list by being resent. The From:
80Eg if you file a bug with "submit@debbugs.gnu.org", that 72header is unchanged. In new reports only (at present), the To:
81remains in the To: address. They reach the bug list by being resent. 73address is altered as follows. Any "bug-gnu-emacs",
74"emacs-pretest-bug", or "submit@debbugs" address is replaced by
75123@debbugs in the mail that gets sent out. (This also applies to any
76Cc: header, though you should be using X-Debbugs-CC instead in new
77reports). The original header is stored as X-Debbugs-Original-To, if
78it was changed. Any X-Debbugs-CC is merged into the Cc.
82 79
83Mails arriving at the bug list have the following Resent-* headers: 80Mails arriving at the bug list have the following Resent-* headers:
84 81
@@ -88,10 +85,6 @@ Resent-CC: maintainer email address, plus any X-Debbugs-CC: entries
88 85
89The "maintainer email address" is "bug-gnu-emacs@gnu.org" in most cases. 86The "maintainer email address" is "bug-gnu-emacs@gnu.org" in most cases.
90 87
91A new report also has:
92
93Mail-Followup-To: bug submitter, 123@debbugs.gnu.org
94
95** To not get acknowledgement mail from the tracker, 88** To not get acknowledgement mail from the tracker,
96add an "X-Debbugs-No-Ack:" header (with any value). If you use Gnus, 89add an "X-Debbugs-No-Ack:" header (with any value). If you use Gnus,
97you can add an element to gnus-posting-styles to do this automatically, eg: 90you can add an element to gnus-posting-styles to do this automatically, eg:
@@ -124,10 +117,10 @@ When you close a bug, you get a message matching:
124^X-Emacs-PR-Message: closed 117^X-Emacs-PR-Message: closed
125 118
126** How to avoid multiple copies of mails. 119** How to avoid multiple copies of mails.
127When you reply to a bug, respect the Reply-To address, ie send mail 120If you reply to reports in the normal way, this should work fine.
128only to the submitter address and the numbered bug address. Do not 121Basically, reply only to the numbered bug address (and any individual
129send mail direct to bug-gnu-emacs or emacs-pretest-bug unless you are 122people's addresses). Do not send mail direct to bug-gnu-emacs or
130reporting a new bug. 123emacs-pretest-bug unless you are reporting a new bug.
131 124
132** To close bug #123 (for example), send mail 125** To close bug #123 (for example), send mail
133 126
@@ -195,8 +188,7 @@ tag:tag # all bugs with given tag
195See <http://wiki.debian.org/bugs.debian.org/usertags> 188See <http://wiki.debian.org/bugs.debian.org/usertags>
196 189
197"Usertags" are very similar to tags: a set of labels that can be added 190"Usertags" are very similar to tags: a set of labels that can be added
198to a bug. There are two differences between normal tags and user 191to a bug. There are two differences between normal tags and user tags:
199tags:
200 192
2011) Anyone can define any valid usertag they like. In contrast, only a 1931) Anyone can define any valid usertag they like. In contrast, only a
202limited, predefined set of normal tags are available (see above). 194limited, predefined set of normal tags are available (see above).
@@ -362,7 +354,7 @@ bug number.
362 354
363Similarly, when you close a bug, it can be helpful to include the 355Similarly, when you close a bug, it can be helpful to include the
364relevant ChangeLog entry in the message to the bug tracker, so people 356relevant ChangeLog entry in the message to the bug tracker, so people
365can see eaxctly what the fix was. 357can see exactly what the fix was.
366 358
367*** bug-reference-mode 359*** bug-reference-mode
368 360
@@ -373,6 +365,17 @@ the bug web-pages.
373 365
374http://lists.gnu.org/archive/html/emacs-devel/2009-11/msg00440.html 366http://lists.gnu.org/archive/html/emacs-devel/2009-11/msg00440.html
375 367
368** Bazaar stuff
369
370*** You can use `bzr commit --fixes emacs:123' to mark that a commit fixes
371Emacs bug 123. You will first need to add a line to your bazaar.conf
372(untested):
373
374bugtracker_emacs_url = http://debbugs.gnu.org/{id}
375
376Note that all this does is add some metadata to the commit, it doesn't
377actually mark the bug as closed in the tracker.
378
376** Gnus-specific voodoo 379** Gnus-specific voodoo
377 380
378*** Put point on a bug-number and try: M-x gnus-read-ephemeral-emacs-bug-group 381*** Put point on a bug-number and try: M-x gnus-read-ephemeral-emacs-bug-group
@@ -448,7 +451,10 @@ needlessly held for moderation:
448*** debbugs-submit 451*** debbugs-submit
449(quiet|control|submit)@(debbugs\.gnu\.org|emacsbugs\.donarmstrong\.com) 452(quiet|control|submit)@(debbugs\.gnu\.org|emacsbugs\.donarmstrong\.com)
450[0-9]+(-done|-quiet|-subscribe)?@(debbugs\.gnu\.org|emacsbugs\.donarmstrong\.com) 453[0-9]+(-done|-quiet|-subscribe)?@(debbugs\.gnu\.org|emacsbugs\.donarmstrong\.com)
451(bug-gnu-emacs|emacs-pretest-bug)@gnu\.org 454(bug-gnu-emacs|emacs-pretest-bug|bug-(e|gnu)macs)@gnu\.org
455
456bug-emacs and bug-gnumacs are lesser-used aliases from fencepost's
457/etc/aliases file.
452 458
453*** emacs-bug-tracker 459*** emacs-bug-tracker
454sender: bug-gnu-emacs AT gnu.org 460sender: bug-gnu-emacs AT gnu.org
@@ -456,3 +462,18 @@ recipient: emacs-bug-tracker AT debbugs\.gnu\.org
456 462
457The latter is because that is the address that debbugs actually sends to. 463The latter is because that is the address that debbugs actually sends to.
458An /etc/aliases entry redirects it to the real emacs-bug-tracker address. 464An /etc/aliases entry redirects it to the real emacs-bug-tracker address.
465
466** Administrivia
467
468The debbugs-submit list should have the administrivia option off,
469else it can by mistake filter out requests to subscribe to bugs.
470But, this feature doesn't work anyway (see bug#5439).
471
472** How to test changes
473
474Add an entry to /etc/debbugs/Maintainers like:
475
476mytest my.email.address
477
478Then if you do all your testing with 'Package: mytest', the resulting
479mails should only go to your email address.
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/configure b/configure
index 947b8ae9c3e..1ba9d361e6a 100755
--- a/configure
+++ b/configure
@@ -6665,11 +6665,12 @@ fi
6665 6665
6666 6666
6667 6667
6668
6668for ac_header in sys/select.h sys/timeb.h sys/time.h unistd.h utime.h \ 6669for ac_header in sys/select.h sys/timeb.h sys/time.h unistd.h utime.h \
6669 linux/version.h sys/systeminfo.h termios.h limits.h string.h stdlib.h \ 6670 linux/version.h sys/systeminfo.h termios.h limits.h string.h stdlib.h \
6670 termcap.h stdio_ext.h fcntl.h strings.h coff.h pty.h sys/mman.h \ 6671 termcap.h stdio_ext.h fcntl.h strings.h coff.h pty.h sys/mman.h \
6671 sys/param.h sys/vlimit.h sys/resource.h locale.h sys/_mbstate_t.h \ 6672 sys/param.h sys/vlimit.h sys/resource.h locale.h sys/_mbstate_t.h \
6672 sys/utsname.h pwd.h 6673 sys/utsname.h pwd.h utmp.h
6673do 6674do
6674as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` 6675as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
6675if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then 6676if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
diff --git a/configure.in b/configure.in
index 33671e530ee..82d3dfe4ede 100644
--- a/configure.in
+++ b/configure.in
@@ -1106,7 +1106,7 @@ AC_CHECK_HEADERS(sys/select.h sys/timeb.h sys/time.h unistd.h utime.h \
1106 linux/version.h sys/systeminfo.h termios.h limits.h string.h stdlib.h \ 1106 linux/version.h sys/systeminfo.h termios.h limits.h string.h stdlib.h \
1107 termcap.h stdio_ext.h fcntl.h strings.h coff.h pty.h sys/mman.h \ 1107 termcap.h stdio_ext.h fcntl.h strings.h coff.h pty.h sys/mman.h \
1108 sys/param.h sys/vlimit.h sys/resource.h locale.h sys/_mbstate_t.h \ 1108 sys/param.h sys/vlimit.h sys/resource.h locale.h sys/_mbstate_t.h \
1109 sys/utsname.h pwd.h) 1109 sys/utsname.h pwd.h utmp.h)
1110 1110
1111AC_MSG_CHECKING(if personality LINUX32 can be set) 1111AC_MSG_CHECKING(if personality LINUX32 can be set)
1112AC_TRY_COMPILE([#include <sys/personality.h>], [personality (PER_LINUX32)], 1112AC_TRY_COMPILE([#include <sys/personality.h>], [personality (PER_LINUX32)],
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog
index e9ab5edd57e..39ffa2c2acc 100644
--- a/doc/emacs/ChangeLog
+++ b/doc/emacs/ChangeLog
@@ -1,8 +1,12 @@
12010-01-19 Mark A. Hershberger <mah@everybody.org> 12010-01-24 Mark A. Hershberger <mah@everybody.org>
2 2
3 * programs.texi (Other C Commands): Replace reference to obsolete 3 * programs.texi (Other C Commands): Replace reference to obsolete
4 c-subword-mode. 4 c-subword-mode.
5 5
62010-01-21 Glenn Morris <rgm@gnu.org>
7
8 * trouble.texi (Bugs): Fix PROBLEMS keybinding.
9
62010-01-12 Glenn Morris <rgm@gnu.org> 102010-01-12 Glenn Morris <rgm@gnu.org>
7 11
8 * trouble.texi (Checklist): Use bug-gnu-emacs rather than 12 * 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/misc/ChangeLog b/doc/misc/ChangeLog
index 50673dc7147..fe34433c391 100644
--- a/doc/misc/ChangeLog
+++ b/doc/misc/ChangeLog
@@ -1,4 +1,8 @@
12010-01-19 Mark A. Hershberger <mah@everybody.org> 12010-01-24 Mark A. Hershberger <mah@everybody.org>
2
3 * gnus.texi (Score File Format): Fix typo.
4
52010-01-21 Katsumi Yamaoka <yamaoka@jpl.org>
2 6
3 * cc-mode.texi: Replace references to obsolete c-subword-mode. 7 * cc-mode.texi: Replace references to obsolete c-subword-mode.
4 8
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/etc/NEWS b/etc/NEWS
index 5d1ffac8904..5eb39faf6ba 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -322,9 +322,6 @@ backends do not support this.
322**** The short log format for git makes use of the graph display, so 322**** The short log format for git makes use of the graph display, so
323it's not supported on git versions earlier than 1.5. 323it's not supported on git versions earlier than 1.5.
324 324
325**** The new variable vc-git-add-signoff can be used to add a
326Signed-off-by line when committing.
327
328**** Support for operating with stashes has been added to vc-dir: the stash list is 325**** Support for operating with stashes has been added to vc-dir: the stash list is
329displayed in the *vc-dir* header, stashes can be created, removed, applied and 326displayed in the *vc-dir* header, stashes can be created, removed, applied and
330their content displayed. 327their content displayed.
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 2ec6621c20b..1b5d8f241ec 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,7 +1,88 @@
12010-01-19 Mark A. Hershberger <mah@everybody.org> 12010-01-24 Mark A. Hershberger <mah@everybody.org>
2 2
3 * progmodes/python.el: Replace reference to obsolete c-subward-mode. 3 * progmodes/python.el: Replace reference to obsolete c-subward-mode.
4 4
52010-01-24 Dan Nicolaescu <dann@ics.uci.edu>
6
7 Remove support for adding --signoff on commit.
8 Future support will use an incompatible generic mechanism.
9 * vc-git.el (vc-git-add-signoff): Remove variable.
10 (vc-git-toggle-signoff): Remove function.
11 (vc-git-extra-menu-map): Do not bind vc-git-toggle-signoff.
12
13 * term/xterm.el (xterm-maybe-set-dark-background-mode): Rename
14 from xterm-set-background-mode. Return t if the background mode
15 was set.
16 (terminal-init-xterm): Move tty-set-up-initial-frame-faces
17 earlier, call it again in case the background mode has changed.
18
192010-01-23 Dmitri Paduchikh <dpaduch@k66.ru> (tiny change)
20
21 * emacs-lisp/advice.el (ad-set-orig-definition): Fix typo
22 (Bug#3541).
23
242010-01-23 Chong Yidong <cyd@stupidchicken.com>
25
26 * emacs-lisp/assoc.el (aelement): Doc fix.
27 (aput, adelete, amake): Use lexical-let (Bug#5450).
28
292010-01-23 Stephen Leake <stephen_leake@member.fsf.org>
30
31 * progmodes/ada-mode.el (ada-in-paramlist-p): Pragma syntax
32 is the same as subprogram call, not declaration. (Bug#5435).
33
342010-01-23 Michael Albinus <michael.albinus@gmx.de>
35
36 * net/tramp-smb.el (tramp-smb-conf): New defcustom.
37 (tramp-smb-maybe-open-connection): Use it.
38
392010-01-22 Michael Albinus <michael.albinus@gmx.de>
40
41 * net/tramp-imap.el (top): Autoload needed packages. (Bug#5448)
42
432010-01-22 Stefan Monnier <monnier@iro.umontreal.ca>
44
45 * mail/rmailmm.el (rmail-mime-handle): Don't set the buffer to unibyte
46 just because we see "encoding: 8bit".
47 * mail/rmail.el (rmail-show-message-1): Decode the body's QP into bytes.
48
492010-01-22 Chong Yidong <cyd@stupidchicken.com>
50
51 * isearch.el (isearch-allow-scroll): Doc fix (Bug#5446).
52
532010-01-22 Eli Zaretskii <eliz@gnu.org>
54
55 * jka-compr.el (jka-compr-load): If load-file is not in
56 load-history, try its file-truename version. (bug#5447)
57
582010-01-21 Alan Mackenzie <acm@muc.de>
59
60 Fix a situation where deletion of a cpp construct throws an error.
61 * progmodes/cc-engine.el (c-invalidate-state-cache): Before
62 invoking c-with-all-but-one-cpps-commented-out, check that the
63 special cpp construct is still in the buffer.
64 (c-parse-state): Record the special cpp with markers, not numbers.
65
662010-01-21 Kenichi Handa <handa@m17n.org>
67
68 * textmodes/sgml-mode.el (sgml-maybe-name-self): No need to
69 process last-command-event, as it is now decoded first (Bug#5380).
70
712010-01-20 Chong Yidong <cyd@stupidchicken.com>
72
73 * term.el (term-send-raw-meta): Revert 2009-12-04 change (Bug#5330).
74
752010-01-20 Glenn Morris <rgm@gnu.org>
76
77 * indent.el (tab-always-indent): Fix custom-type.
78
792010-01-19 Alan Mackenzie <acm@muc.de>
80
81 * progmodes/cc-defs.el: Fix bug#5395: typing '#' in an empty
82 buffer throws "args out of range".
83 (c-set-cpp-delimiters, c-clear-cpp-delimiters): Check for EOB
84 playing the role of delimiter.
85
52010-01-18 Stephen Leake <stephen_leake@member.fsf.org> 862010-01-18 Stephen Leake <stephen_leake@member.fsf.org>
6 87
7 * lisp/progmodes/ada-mode.el: Fix bug#5400. 88 * lisp/progmodes/ada-mode.el: Fix bug#5400.
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 bac24b63021..003f70ea4a5 100644
--- a/lisp/emacs-lisp/advice.el
+++ b/lisp/emacs-lisp/advice.el
@@ -2191,7 +2191,7 @@ Redefining advices affect the construction of an advised definition."
2191 2191
2192(defmacro ad-set-orig-definition (function definition) 2192(defmacro ad-set-orig-definition (function definition)
2193 `(ad-safe-fset 2193 `(ad-safe-fset
2194 (ad-get-advice-info-field function 'origname) ,definition)) 2194 (ad-get-advice-info-field ,function 'origname) ,definition))
2195 2195
2196(defmacro ad-clear-orig-definition (function) 2196(defmacro ad-clear-orig-definition (function)
2197 `(fmakunbound (ad-get-advice-info-field ,function 'origname))) 2197 `(fmakunbound (ad-get-advice-info-field ,function 'origname)))
diff --git a/lisp/emacs-lisp/assoc.el b/lisp/emacs-lisp/assoc.el
index 8082069a34b..ccab5d90c09 100644
--- a/lisp/emacs-lisp/assoc.el
+++ b/lisp/emacs-lisp/assoc.el
@@ -1,7 +1,7 @@
1;;; assoc.el --- insert/delete/sort functions on association lists 1;;; assoc.el --- insert/delete/sort functions on association lists
2 2
3;; Copyright (C) 1996, 2001, 2002, 2003, 2004, 2005, 3;; Copyright (C) 1996, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
4;; 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 4;; 2009, 2010 Free Software Foundation, Inc.
5 5
6;; Author: Barry A. Warsaw <bwarsaw@cen.com> 6;; Author: Barry A. Warsaw <bwarsaw@cen.com>
7;; Keywords: extensions 7;; Keywords: extensions
@@ -27,6 +27,7 @@
27;; fetching off key-value pairs in association lists. 27;; fetching off key-value pairs in association lists.
28 28
29;;; Code: 29;;; Code:
30(eval-when-compile (require 'cl))
30 31
31(defun asort (alist-symbol key) 32(defun asort (alist-symbol key)
32 "Move a specified key-value pair to the head of an alist. 33 "Move a specified key-value pair to the head of an alist.
@@ -41,7 +42,8 @@ sorted list."
41 42
42(defun aelement (key value) 43(defun aelement (key value)
43 "Make a list of a cons cell containing car of KEY and cdr of VALUE. 44 "Make a list of a cons cell containing car of KEY and cdr of VALUE.
44The returned list is suitable as an element of an alist." 45The returned list is suitable for concatenating with an existing
46alist, via `nconc'."
45 (list (cons key value))) 47 (list (cons key value)))
46 48
47 49
@@ -71,8 +73,8 @@ If VALUE is not supplied, or is nil, the key-value pair will not be
71modified, but will be moved to the head of the alist. If the key-value 73modified, but will be moved to the head of the alist. If the key-value
72pair cannot be found in the alist, it will be inserted into the head 74pair cannot be found in the alist, it will be inserted into the head
73of the alist (with value nil if VALUE is nil or not supplied)." 75of the alist (with value nil if VALUE is nil or not supplied)."
74 (let ((elem (aelement key value)) 76 (lexical-let ((elem (aelement key value))
75 alist) 77 alist)
76 (asort alist-symbol key) 78 (asort alist-symbol key)
77 (setq alist (eval alist-symbol)) 79 (setq alist (eval alist-symbol))
78 (cond ((null alist) (set alist-symbol elem)) 80 (cond ((null alist) (set alist-symbol elem))
@@ -86,7 +88,7 @@ of the alist (with value nil if VALUE is nil or not supplied)."
86Alist is referenced by ALIST-SYMBOL and the key-value pair to remove 88Alist is referenced by ALIST-SYMBOL and the key-value pair to remove
87is pair matching KEY. Returns the altered alist." 89is pair matching KEY. Returns the altered alist."
88 (asort alist-symbol key) 90 (asort alist-symbol key)
89 (let ((alist (eval alist-symbol))) 91 (lexical-let ((alist (eval alist-symbol)))
90 (cond ((null alist) nil) 92 (cond ((null alist) nil)
91 ((anot-head-p alist key) alist) 93 ((anot-head-p alist key) alist)
92 (t (set alist-symbol (cdr alist)))))) 94 (t (set alist-symbol (cdr alist))))))
@@ -123,10 +125,10 @@ KEYLIST and VALUELIST should have the same number of elements, but
123this isn't enforced. If VALUELIST is smaller than KEYLIST, remaining 125this isn't enforced. If VALUELIST is smaller than KEYLIST, remaining
124keys are associated with nil. If VALUELIST is larger than KEYLIST, 126keys are associated with nil. If VALUELIST is larger than KEYLIST,
125extra values are ignored. Returns the created alist." 127extra values are ignored. Returns the created alist."
126 (let ((keycar (car keylist)) 128 (lexical-let ((keycar (car keylist))
127 (keycdr (cdr keylist)) 129 (keycdr (cdr keylist))
128 (valcar (car valuelist)) 130 (valcar (car valuelist))
129 (valcdr (cdr valuelist))) 131 (valcdr (cdr valuelist)))
130 (cond ((null keycdr) 132 (cond ((null keycdr)
131 (aput alist-symbol keycar valcar)) 133 (aput alist-symbol keycar valcar))
132 (t 134 (t
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..1dbfceb315b 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)
@@ -4269,7 +4270,7 @@ With prefix argument N moves forward N messages with these labels.
4269 4270
4270;;;*** 4271;;;***
4271 4272
4272;;;### (autoloads (rmail-mime) "rmailmm" "rmailmm.el" "d196de6dfb74fe87a3d02189096b795f") 4273;;;### (autoloads (rmail-mime) "rmailmm" "rmailmm.el" "93033f2136fcd111e2b52a116ff4cf29")
4273;;; Generated autoloads from rmailmm.el 4274;;; Generated autoloads from rmailmm.el
4274 4275
4275(autoload 'rmail-mime "rmailmm" "\ 4276(autoload 'rmail-mime "rmailmm" "\
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/net/tramp-imap.el b/lisp/net/tramp-imap.el
index da75e2307ca..6f20d527713 100644
--- a/lisp/net/tramp-imap.el
+++ b/lisp/net/tramp-imap.el
@@ -55,13 +55,23 @@
55(require 'assoc) 55(require 'assoc)
56(require 'tramp) 56(require 'tramp)
57(require 'tramp-compat) 57(require 'tramp-compat)
58(require 'message) 58
59(require 'imap-hash)
60(require 'epa)
61(autoload 'auth-source-user-or-password "auth-source") 59(autoload 'auth-source-user-or-password "auth-source")
60(autoload 'epg-context-operation "epg")
61(autoload 'epg-context-set-armor "epg")
62(autoload 'epg-context-set-passphrase-callback "epg")
63(autoload 'epg-context-set-progress-callback "epg")
64(autoload 'epg-decrypt-string "epg")
65(autoload 'epg-encrypt-string "epg")
66(autoload 'imap-hash-get "imap-hash")
67(autoload 'imap-hash-make "imap-hash")
68(autoload 'imap-hash-map "imap-hash")
69(autoload 'imap-hash-put "imap-hash")
70(autoload 'imap-hash-rem "imap-hash")
62 71
63;; We use the additional header "X-Size" for encoding the size of a file. 72;; We use the additional header "X-Size" for encoding the size of a file.
64(add-to-list 'imap-hash-headers 'X-Size 'append) 73(eval-after-load "imap-hash"
74 '(add-to-list 'imap-hash-headers 'X-Size 'append))
65 75
66;; Define Tramp IMAP method ... 76;; Define Tramp IMAP method ...
67(defconst tramp-imap-method "imap" 77(defconst tramp-imap-method "imap"
@@ -662,7 +672,8 @@ KEY-ID can be 'SYM or 'PIN among others."
662 (read-passwd 672 (read-passwd
663 (if (eq key-id 'PIN) 673 (if (eq key-id 'PIN)
664 "Tramp-IMAP passphrase for PIN: " 674 "Tramp-IMAP passphrase for PIN: "
665 (let ((entry (assoc key-id epg-user-id-alist))) 675 (let ((entry (assoc key-id
676 (symbol-value 'epg-user-id-alist))))
666 (if entry 677 (if entry
667 (format "Tramp-IMAP passphrase for %s %s: " 678 (format "Tramp-IMAP passphrase for %s %s: "
668 key-id (cdr entry)) 679 key-id (cdr entry))
diff --git a/lisp/net/tramp-smb.el b/lisp/net/tramp-smb.el
index 9d176a1fd3c..e9051f0a435 100644
--- a/lisp/net/tramp-smb.el
+++ b/lisp/net/tramp-smb.el
@@ -61,6 +61,13 @@
61 :group 'tramp 61 :group 'tramp
62 :type 'string) 62 :type 'string)
63 63
64(defcustom tramp-smb-conf "/dev/null"
65 "*Path of the smb.conf file.
66If it is nil, no smb.conf will be added to the `tramp-smb-program'
67call, letting the SMB client use the default one."
68 :group 'tramp
69 :type '(choice (const nil) (file :must-match t)))
70
64(defvar tramp-smb-version nil 71(defvar tramp-smb-version nil
65 "*Version string of the SMB client.") 72 "*Version string of the SMB client.")
66 73
@@ -1281,7 +1288,8 @@ connection if a previous connection has died for some reason."
1281 1288
1282 (when domain (setq args (append args (list "-W" domain)))) 1289 (when domain (setq args (append args (list "-W" domain))))
1283 (when port (setq args (append args (list "-p" port)))) 1290 (when port (setq args (append args (list "-p" port))))
1284 (setq args (append args (list "-s" "/dev/null"))) 1291 (when tramp-smb-conf
1292 (setq args (append args (list "-s" tramp-smb-conf))))
1285 1293
1286 ;; OK, let's go. 1294 ;; OK, let's go.
1287 (tramp-message 1295 (tramp-message
diff --git a/lisp/progmodes/ada-mode.el b/lisp/progmodes/ada-mode.el
index 3694de23f88..a08e31e2016 100644
--- a/lisp/progmodes/ada-mode.el
+++ b/lisp/progmodes/ada-mode.el
@@ -257,7 +257,7 @@ Note that indentation is calculated only if `ada-indent-comment-as-code' is t.
257 257
258For instance: 258For instance:
259 A := 1; -- A multi-line comment 259 A := 1; -- A multi-line comment
260 -- aligned if ada-indent-align-comments is t" 260 -- aligned if `ada-indent-align-comments' is t"
261 :type 'boolean :group 'ada) 261 :type 'boolean :group 'ada)
262 262
263(defcustom ada-indent-comment-as-code t 263(defcustom ada-indent-comment-as-code t
@@ -4163,7 +4163,7 @@ Return nil if the private is part of the package name, as in
4163 4163
4164 4164
4165(defun ada-in-paramlist-p () 4165(defun ada-in-paramlist-p ()
4166 "Return t if point is inside a parameter-list." 4166 "Return t if point is inside the parameter-list of a declaration, but not a subprogram call or aggregate."
4167 (save-excursion 4167 (save-excursion
4168 (and 4168 (and
4169 (ada-search-ignore-string-comment "(\\|)" t nil t) 4169 (ada-search-ignore-string-comment "(\\|)" t nil t)
@@ -4194,13 +4194,13 @@ Return nil if the private is part of the package name, as in
4194 4194
4195 ;; right keyword two words before parenthesis ? 4195 ;; right keyword two words before parenthesis ?
4196 ;; Type is in this list because of discriminants 4196 ;; Type is in this list because of discriminants
4197 ;; pragma is not, because the syntax is that of a subprogram call.
4197 (looking-at (eval-when-compile 4198 (looking-at (eval-when-compile
4198 (concat "\\<\\(" 4199 (concat "\\<\\("
4199 "procedure\\|function\\|body\\|" 4200 "procedure\\|function\\|body\\|"
4200 "task\\|entry\\|accept\\|" 4201 "task\\|entry\\|accept\\|"
4201 "access[ \t]+procedure\\|" 4202 "access[ \t]+procedure\\|"
4202 "access[ \t]+function\\|" 4203 "access[ \t]+function\\|"
4203 "pragma\\|"
4204 "type\\)\\>")))))) 4204 "type\\)\\>"))))))
4205 4205
4206(defun ada-search-ignore-complex-boolean (regexp backwardp) 4206(defun ada-search-ignore-complex-boolean (regexp backwardp)
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/xterm.el b/lisp/term/xterm.el
index 203c538609f..d881e6fcc7d 100644
--- a/lisp/term/xterm.el
+++ b/lisp/term/xterm.el
@@ -462,6 +462,7 @@
462 (set-keymap-parent input-decode-map map))) 462 (set-keymap-parent input-decode-map map)))
463 463
464 (xterm-register-default-colors) 464 (xterm-register-default-colors)
465 (tty-set-up-initial-frame-faces)
465 466
466 ;; Try to turn on the modifyOtherKeys feature on modern xterms. 467 ;; Try to turn on the modifyOtherKeys feature on modern xterms.
467 ;; When it is turned on many more key bindings work: things like 468 ;; When it is turned on many more key bindings work: things like
@@ -471,6 +472,7 @@
471 (let ((coding-system-for-read 'binary) 472 (let ((coding-system-for-read 'binary)
472 (chr nil) 473 (chr nil)
473 (str nil) 474 (str nil)
475 (recompute-faces nil)
474 version) 476 version)
475 ;; Pending input can be mistakenly returned by the calls to 477 ;; Pending input can be mistakenly returned by the calls to
476 ;; read-event below. Discard it. 478 ;; read-event below. Discard it.
@@ -502,10 +504,11 @@
502 (while (not (equal (setq chr (read-event nil nil 2)) ?\\)) 504 (while (not (equal (setq chr (read-event nil nil 2)) ?\\))
503 (setq str (concat str (string chr)))) 505 (setq str (concat str (string chr))))
504 (when (string-match "11;rgb:\\([a-f0-9]+\\)/\\([a-f0-9]+\\)/\\([a-f0-9]+\\)" str) 506 (when (string-match "11;rgb:\\([a-f0-9]+\\)/\\([a-f0-9]+\\)/\\([a-f0-9]+\\)" str)
505 (xterm-set-background-mode 507 (setq recompute-faces
506 (string-to-number (match-string 1 str) 16) 508 (xterm-maybe-set-dark-background-mode
507 (string-to-number (match-string 2 str) 16) 509 (string-to-number (match-string 1 str) 16)
508 (string-to-number (match-string 3 str) 16)))))) 510 (string-to-number (match-string 2 str) 16)
511 (string-to-number (match-string 3 str) 16)))))))
509 ;; NUMBER2 is the xterm version number, look for something 512 ;; NUMBER2 is the xterm version number, look for something
510 ;; greater than 216, the version when modifyOtherKeys was 513 ;; greater than 216, the version when modifyOtherKeys was
511 ;; introduced. 514 ;; introduced.
@@ -520,10 +523,16 @@
520 ;; need to deal with modify-other-keys. 523 ;; need to deal with modify-other-keys.
521 (push (frame-terminal (selected-frame)) 524 (push (frame-terminal (selected-frame))
522 xterm-modify-other-keys-terminal-list) 525 xterm-modify-other-keys-terminal-list)
523 (xterm-turn-on-modify-other-keys)))))) 526 (xterm-turn-on-modify-other-keys))
524 527
525 ;; This recomputes all the default faces given the colors we've just set up. 528 ;; Recompute faces here in case the background mode was
526 (tty-set-up-initial-frame-faces) 529 ;; set to dark. We used to call
530 ;; `tty-set-up-initial-frame-faces' only once, but that
531 ;; caused the light background faces to be computed
532 ;; incorrectly. See:
533 ;; http://permalink.gmane.org/gmane.emacs.devel/119627
534 (when recompute-faces
535 (tty-set-up-initial-frame-faces))))))
527 536
528 (run-hooks 'terminal-init-xterm-hook)) 537 (run-hooks 'terminal-init-xterm-hook))
529 538
@@ -666,11 +675,13 @@ versions of xterm."
666 (delq terminal xterm-modify-other-keys-terminal-list)) 675 (delq terminal xterm-modify-other-keys-terminal-list))
667 (send-string-to-terminal "\e[>4m" terminal))) 676 (send-string-to-terminal "\e[>4m" terminal)))
668 677
669(defun xterm-set-background-mode (redc greenc bluec) 678(defun xterm-maybe-set-dark-background-mode (redc greenc bluec)
670 ;; Use the heuristic in `frame-set-background-mode' to decide if a 679 ;; Use the heuristic in `frame-set-background-mode' to decide if a
671 ;; frame is dark. 680 ;; frame is dark.
672 (when (< (+ redc greenc bluec) (* .6 (+ 65535 65535 65535))) 681 (when (< (+ redc greenc bluec) (* .6 (+ 65535 65535 65535)))
673 (set-terminal-parameter nil 'background-mode 'dark))) 682 (setq xterm-background-mode-changed t)
683 (set-terminal-parameter nil 'background-mode 'dark)
684 t))
674 685
675;; arch-tag: 12e7ebdd-1e6c-4b25-b0f9-35ace25e855a 686;; arch-tag: 12e7ebdd-1e6c-4b25-b0f9-35ace25e855a
676;;; xterm.el ends here 687;;; xterm.el ends here
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/url/ChangeLog b/lisp/url/ChangeLog
index 8d32f7242b7..2a8c6ebe25b 100644
--- a/lisp/url/ChangeLog
+++ b/lisp/url/ChangeLog
@@ -1,3 +1,7 @@
12010-01-23 Chong Yidong <cyd@stupidchicken.com>
2
3 * url-util.el: Require url-vars (Bug#5459).
4
12009-11-27 Stefan Monnier <monnier@iro.umontreal.ca> 52009-11-27 Stefan Monnier <monnier@iro.umontreal.ca>
2 6
3 * url-parse.el (url-generic-parse-url): Bind deactivate-mark. 7 * url-parse.el (url-generic-parse-url): Bind deactivate-mark.
diff --git a/lisp/url/url-util.el b/lisp/url/url-util.el
index 8a9cc01e1f3..c0b2595a6e0 100644
--- a/lisp/url/url-util.el
+++ b/lisp/url/url-util.el
@@ -26,6 +26,7 @@
26;;; Code: 26;;; Code:
27 27
28(require 'url-parse) 28(require 'url-parse)
29(require 'url-vars)
29(eval-when-compile (require 'cl)) 30(eval-when-compile (require 'cl))
30(autoload 'timezone-parse-date "timezone") 31(autoload 'timezone-parse-date "timezone")
31(autoload 'timezone-make-date-arpa-standard "timezone") 32(autoload 'timezone-make-date-arpa-standard "timezone")
diff --git a/lisp/vc-git.el b/lisp/vc-git.el
index 52482d9ff4b..4896f79a395 100644
--- a/lisp/vc-git.el
+++ b/lisp/vc-git.el
@@ -118,13 +118,6 @@ If nil, use the value of `vc-diff-switches'. If t, use no switches."
118 :version "23.1" 118 :version "23.1"
119 :group 'vc) 119 :group 'vc)
120 120
121(defcustom vc-git-add-signoff nil
122 "Add a Signed-off-by line when committing."
123 :type 'boolean
124 :version "23.2"
125 :group 'vc)
126
127
128(defvar git-commits-coding-system 'utf-8 121(defvar git-commits-coding-system 'utf-8
129 "Default coding system for git commits.") 122 "Default coding system for git commits.")
130 123
@@ -515,7 +508,7 @@ If nil, use the value of `vc-diff-switches'. If t, use no switches."
515(defun vc-git-checkin (files rev comment) 508(defun vc-git-checkin (files rev comment)
516 (let ((coding-system-for-write git-commits-coding-system)) 509 (let ((coding-system-for-write git-commits-coding-system))
517 (vc-git-command nil 0 files "commit" 510 (vc-git-command nil 0 files "commit"
518 (if vc-git-add-signoff "-s") "-m" comment "--only" "--"))) 511 "-m" comment "--only" "--")))
519 512
520(defun vc-git-find-revision (file rev buffer) 513(defun vc-git-find-revision (file rev buffer)
521 (let* (process-file-side-effects 514 (let* (process-file-side-effects
@@ -766,10 +759,6 @@ or BRANCH^ (where \"^\" can be repeated)."
766 (define-key map [git-ss] 759 (define-key map [git-ss]
767 '(menu-item "Show Stash..." vc-git-stash-show 760 '(menu-item "Show Stash..." vc-git-stash-show
768 :help "Show stash contents")) 761 :help "Show stash contents"))
769 (define-key map [git-sig]
770 '(menu-item "Add Signed-off-by on commit" vc-git-toggle-signoff
771 :help "Add Add Signed-off-by when commiting (i.e. add the -s flag)"
772 :button (:toggle . vc-git-add-signoff)))
773 map)) 762 map))
774 763
775(defun vc-git-extra-menu () vc-git-extra-menu-map) 764(defun vc-git-extra-menu () vc-git-extra-menu-map)
@@ -779,10 +768,6 @@ or BRANCH^ (where \"^\" can be repeated)."
779(defun vc-git-root (file) 768(defun vc-git-root (file)
780 (vc-find-root file ".git")) 769 (vc-find-root file ".git"))
781 770
782(defun vc-git-toggle-signoff ()
783 (interactive)
784 (setq vc-git-add-signoff (not vc-git-add-signoff)))
785
786;; Derived from `lgrep'. 771;; Derived from `lgrep'.
787(defun vc-git-grep (regexp &optional files dir) 772(defun vc-git-grep (regexp &optional files dir)
788 "Run git grep, searching for REGEXP in FILES in directory DIR. 773 "Run git grep, searching for REGEXP in FILES in directory DIR.
diff --git a/src/ChangeLog b/src/ChangeLog
index 3832808dc09..3a62f0a2a17 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,52 @@
12010-01-24 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 Try and fix bug#788, hopefully for real this time.
4 * keymap.c (shadow_lookup): Add `remap' arg.
5 (describe_map, describe_vector): Update calls to shadow_lookup.
6 (Fwhere_is_internal): Fix up handling of `remapped_sequences' and
7 `remapped' so this flag is applicable to `sequence'. Be careful to
8 perform remapping during shadow_lookup check of remapped_sequences.
9
102010-01-24 Eric Bélanger <snowmaniscool@gmail.com> (tiny change)
11
12 * image.c (png_load): Use png_sig_cmp instead of the obsolete
13 png_check_sig, which has been removed in libpng 1.4.
14
152010-01-23 Giorgos Keramidas <keramida@ceid.upatras.gr> (tiny change)
16
17 * filelock.c: Include utmp.h only when HAVE_UTMP_H (FreeBSD 9.x
18 lacks this header file).
19
202010-01-23 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
21
22 * xdisp.c (draw_glyphs): Update `start' for left_overwritten case
23 as in Emacs 22.
24
252010-01-22 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
26
27 * lisp.h (make_pure_string): String pointer arg now points to const.
28
29 * alloc.c (find_string_data_in_pure, make_pure_string): String pointer
30 args now point to const.
31
322010-01-22 Eli Zaretskii <eliz@gnu.org>
33
34 * lread.c (Fload): Don't treat files without .elc extension as
35 byte-compiled if they are ``magic'', i.e. `openp' returned -2 for
36 them. (bug#5303)
37
382010-01-20 Kenichi Handa <handa@m17n.org>
39
40 * coding.c (consume_chars): If ! multibyte and the encoder is ccl,
41 treat the source as actual byte sequence.
42
432010-01-19 Alan Mackenzie <acm@muc.de>
44
45 Fix spurious before-change-functions invocation from (insert ?\n).
46 * textprop.c (set_text_properties): rename parameter
47 `signal_after_change_p' to `coherent_change_p', and make the
48 invocation of `modify_region' conditional on it.
49
12010-01-19 Jan Djärv <jan.h.d@swipnet.se> 502010-01-19 Jan Djärv <jan.h.d@swipnet.se>
2 51
3 * xsettings.c (apply_xft_settings): Save settings in Vxft_settings 52 * xsettings.c (apply_xft_settings): Save settings in Vxft_settings
@@ -182,13 +231,6 @@
182 * dispnew.c (change_frame_size_1): newwidth == FRAME_COLS (f) must 231 * dispnew.c (change_frame_size_1): newwidth == FRAME_COLS (f) must
183 also be true before we can return early (bug #5339). 232 also be true before we can return early (bug #5339).
184 233
1852010-01-08 Alan Mackenzie <acm@muc.de>
186
187 Fix spurious before-change-functions invocation from (insert ?\n).
188 * textprop.c (set_text_properties): rename parameter
189 `signal_after_change_p' to `coherent_change_p', and make the
190 invocation of `modify_region' conditional on it.
191
1922010-01-06 David Reitter <david.reitter@gmail.com> 2342010-01-06 David Reitter <david.reitter@gmail.com>
193 235
194 * nsfns.m (ns_get_screen): Rewrite, returning NULL for non-NS. 236 * nsfns.m (ns_get_screen): Rewrite, returning NULL for non-NS.
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/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/filelock.c b/src/filelock.c
index 3c92d495060..7c69ea954fc 100644
--- a/src/filelock.c
+++ b/src/filelock.c
@@ -63,7 +63,9 @@ Lisp_Object Vtemporary_file_directory;
63 63
64#ifdef CLASH_DETECTION 64#ifdef CLASH_DETECTION
65 65
66#ifdef HAVE_UTMP_H
66#include <utmp.h> 67#include <utmp.h>
68#endif
67 69
68#if !defined (S_ISLNK) && defined (S_IFLNK) 70#if !defined (S_ISLNK) && defined (S_IFLNK)
69#define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) 71#define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
diff --git a/src/image.c b/src/image.c
index 9c11f466807..1265b900c6c 100644
--- a/src/image.c
+++ b/src/image.c
@@ -33,7 +33,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
33#else 33#else
34# include <png.h> 34# include <png.h>
35#endif 35#endif
36#endif 36#endif
37 37
38#include <setjmp.h> 38#include <setjmp.h>
39 39
@@ -3051,7 +3051,7 @@ xbm_load (f, img)
3051 int nbytes, i; 3051 int nbytes, i;
3052 /* Windows mono bitmaps are reversed compared with X. */ 3052 /* Windows mono bitmaps are reversed compared with X. */
3053 invertedBits = bits; 3053 invertedBits = bits;
3054 nbytes = (img->width + BITS_PER_CHAR - 1) / BITS_PER_CHAR 3054 nbytes = (img->width + BITS_PER_CHAR - 1) / BITS_PER_CHAR
3055 * img->height; 3055 * img->height;
3056 bits = (char *) alloca(nbytes); 3056 bits = (char *) alloca(nbytes);
3057 for (i = 0; i < nbytes; i++) 3057 for (i = 0; i < nbytes; i++)
@@ -5559,7 +5559,7 @@ png_image_p (object)
5559/* PNG library details. */ 5559/* PNG library details. */
5560 5560
5561DEF_IMGLIB_FN (png_get_io_ptr); 5561DEF_IMGLIB_FN (png_get_io_ptr);
5562DEF_IMGLIB_FN (png_check_sig); 5562DEF_IMGLIB_FN (png_sig_cmp);
5563DEF_IMGLIB_FN (png_create_read_struct); 5563DEF_IMGLIB_FN (png_create_read_struct);
5564DEF_IMGLIB_FN (png_create_info_struct); 5564DEF_IMGLIB_FN (png_create_info_struct);
5565DEF_IMGLIB_FN (png_destroy_read_struct); 5565DEF_IMGLIB_FN (png_destroy_read_struct);
@@ -5590,7 +5590,7 @@ init_png_functions (Lisp_Object libraries)
5590 return 0; 5590 return 0;
5591 5591
5592 LOAD_IMGLIB_FN (library, png_get_io_ptr); 5592 LOAD_IMGLIB_FN (library, png_get_io_ptr);
5593 LOAD_IMGLIB_FN (library, png_check_sig); 5593 LOAD_IMGLIB_FN (library, png_sig_cmp);
5594 LOAD_IMGLIB_FN (library, png_create_read_struct); 5594 LOAD_IMGLIB_FN (library, png_create_read_struct);
5595 LOAD_IMGLIB_FN (library, png_create_info_struct); 5595 LOAD_IMGLIB_FN (library, png_create_info_struct);
5596 LOAD_IMGLIB_FN (library, png_destroy_read_struct); 5596 LOAD_IMGLIB_FN (library, png_destroy_read_struct);
@@ -5615,7 +5615,7 @@ init_png_functions (Lisp_Object libraries)
5615#else 5615#else
5616 5616
5617#define fn_png_get_io_ptr png_get_io_ptr 5617#define fn_png_get_io_ptr png_get_io_ptr
5618#define fn_png_check_sig png_check_sig 5618#define fn_png_sig_cmp png_sig_cmp
5619#define fn_png_create_read_struct png_create_read_struct 5619#define fn_png_create_read_struct png_create_read_struct
5620#define fn_png_create_info_struct png_create_info_struct 5620#define fn_png_create_info_struct png_create_info_struct
5621#define fn_png_destroy_read_struct png_destroy_read_struct 5621#define fn_png_destroy_read_struct png_destroy_read_struct
@@ -5762,7 +5762,7 @@ png_load (f, img)
5762 5762
5763 /* Check PNG signature. */ 5763 /* Check PNG signature. */
5764 if (fread (sig, 1, sizeof sig, fp) != sizeof sig 5764 if (fread (sig, 1, sizeof sig, fp) != sizeof sig
5765 || !fn_png_check_sig (sig, sizeof sig)) 5765 || fn_png_sig_cmp (sig, 0, sizeof sig))
5766 { 5766 {
5767 image_error ("Not a PNG file: `%s'", file, Qnil); 5767 image_error ("Not a PNG file: `%s'", file, Qnil);
5768 UNGCPRO; 5768 UNGCPRO;
@@ -5779,7 +5779,7 @@ png_load (f, img)
5779 5779
5780 /* Check PNG signature. */ 5780 /* Check PNG signature. */
5781 if (tbr.len < sizeof sig 5781 if (tbr.len < sizeof sig
5782 || !fn_png_check_sig (tbr.bytes, sizeof sig)) 5782 || fn_png_sig_cmp (tbr.bytes, 0, sizeof sig))
5783 { 5783 {
5784 image_error ("Not a PNG image: `%s'", img->spec, Qnil); 5784 image_error ("Not a PNG image: `%s'", img->spec, Qnil);
5785 UNGCPRO; 5785 UNGCPRO;
diff --git a/src/keymap.c b/src/keymap.c
index 17666c7efcc..98774d5d685 100644
--- a/src/keymap.c
+++ b/src/keymap.c
@@ -2650,11 +2650,13 @@ static void where_is_internal_1 P_ ((Lisp_Object key, Lisp_Object binding,
2650 Lisp_Object args, void *data)); 2650 Lisp_Object args, void *data));
2651 2651
2652/* Like Flookup_key, but uses a list of keymaps SHADOW instead of a single map. 2652/* Like Flookup_key, but uses a list of keymaps SHADOW instead of a single map.
2653 Returns the first non-nil binding found in any of those maps. */ 2653 Returns the first non-nil binding found in any of those maps.
2654 If REMAP is true, pass the result of the lookup through command
2655 remapping before returning it. */
2654 2656
2655static Lisp_Object 2657static Lisp_Object
2656shadow_lookup (shadow, key, flag) 2658shadow_lookup (Lisp_Object shadow, Lisp_Object key, Lisp_Object flag,
2657 Lisp_Object shadow, key, flag; 2659 int remap)
2658{ 2660{
2659 Lisp_Object tail, value; 2661 Lisp_Object tail, value;
2660 2662
@@ -2669,7 +2671,15 @@ shadow_lookup (shadow, key, flag)
2669 return Qnil; 2671 return Qnil;
2670 } 2672 }
2671 else if (!NILP (value)) 2673 else if (!NILP (value))
2672 return value; 2674 {
2675 Lisp_Object remapping;
2676 if (remap && SYMBOLP (value)
2677 && (remapping = Fcommand_remapping (value, Qnil, shadow),
2678 !NILP (remapping)))
2679 return remapping;
2680 else
2681 return value;
2682 }
2673 } 2683 }
2674 return Qnil; 2684 return Qnil;
2675} 2685}
@@ -2860,30 +2870,30 @@ remapped command in the returned list. */)
2860 { 2870 {
2861 /* We have a list of advertized bindings. */ 2871 /* We have a list of advertized bindings. */
2862 while (CONSP (tem)) 2872 while (CONSP (tem))
2863 if (EQ (shadow_lookup (keymaps, XCAR (tem), Qnil), definition)) 2873 if (EQ (shadow_lookup (keymaps, XCAR (tem), Qnil, 0), definition))
2864 return XCAR (tem); 2874 return XCAR (tem);
2865 else 2875 else
2866 tem = XCDR (tem); 2876 tem = XCDR (tem);
2867 if (EQ (shadow_lookup (keymaps, tem, Qnil), definition)) 2877 if (EQ (shadow_lookup (keymaps, tem, Qnil, 0), definition))
2868 return tem; 2878 return tem;
2869 } 2879 }
2870 2880
2871 sequences = Freverse (where_is_internal (definition, keymaps, 2881 sequences = Freverse (where_is_internal (definition, keymaps,
2872 !NILP (noindirect), nomenus)); 2882 !NILP (noindirect), nomenus));
2873 2883
2874 while (CONSP (sequences)) 2884 while (CONSP (sequences)
2885 /* If we're at the end of the `sequences' list and we haven't
2886 considered remapped sequences yet, copy them over and
2887 process them. */
2888 || (!remapped && (sequences = remapped_sequences,
2889 remapped = 1),
2890 CONSP (sequences)))
2875 { 2891 {
2876 Lisp_Object sequence, function; 2892 Lisp_Object sequence, function;
2877 2893
2878 sequence = XCAR (sequences); 2894 sequence = XCAR (sequences);
2879 sequences = XCDR (sequences); 2895 sequences = XCDR (sequences);
2880 2896
2881 if (NILP (sequences) && !remapped)
2882 {
2883 sequences = remapped_sequences;
2884 remapped = 1;
2885 }
2886
2887 /* Verify that this key binding is not shadowed by another 2897 /* Verify that this key binding is not shadowed by another
2888 binding for the same key, before we say it exists. 2898 binding for the same key, before we say it exists.
2889 2899
@@ -2893,7 +2903,8 @@ remapped command in the returned list. */)
2893 2903
2894 Either nil or number as value from Flookup_key 2904 Either nil or number as value from Flookup_key
2895 means undefined. */ 2905 means undefined. */
2896 if (!EQ (shadow_lookup (keymaps, sequence, Qnil), definition)) 2906 if (!EQ (shadow_lookup (keymaps, sequence, Qnil, remapped),
2907 definition))
2897 continue; 2908 continue;
2898 2909
2899 /* If the current sequence is a command remapping with 2910 /* If the current sequence is a command remapping with
@@ -3506,7 +3517,7 @@ describe_map (map, prefix, elt_describer, partial, shadow,
3506 ASET (kludge, 0, event); 3517 ASET (kludge, 0, event);
3507 if (!NILP (shadow)) 3518 if (!NILP (shadow))
3508 { 3519 {
3509 tem = shadow_lookup (shadow, kludge, Qt); 3520 tem = shadow_lookup (shadow, kludge, Qt, 0);
3510 if (!NILP (tem)) 3521 if (!NILP (tem))
3511 { 3522 {
3512 /* If both bindings are keymaps, this key is a prefix key, 3523 /* If both bindings are keymaps, this key is a prefix key,
@@ -3776,7 +3787,7 @@ describe_vector (vector, prefix, args, elt_describer,
3776 { 3787 {
3777 Lisp_Object tem; 3788 Lisp_Object tem;
3778 3789
3779 tem = shadow_lookup (shadow, kludge, Qt); 3790 tem = shadow_lookup (shadow, kludge, Qt, 0);
3780 3791
3781 if (!NILP (tem)) 3792 if (!NILP (tem))
3782 { 3793 {
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/xdisp.c b/src/xdisp.c
index 7d43f2d8bef..8e356224c8a 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -20401,6 +20401,7 @@ draw_glyphs (w, x, row, area, start, end, hl, overlaps)
20401 j = i; 20401 j = i;
20402 BUILD_GLYPH_STRINGS (j, start, h, t, 20402 BUILD_GLYPH_STRINGS (j, start, h, t,
20403 overlap_hl, dummy_x, last_x); 20403 overlap_hl, dummy_x, last_x);
20404 start = i;
20404 compute_overhangs_and_x (t, head->x, 1); 20405 compute_overhangs_and_x (t, head->x, 1);
20405 prepend_glyph_string_lists (&head, &tail, h, t); 20406 prepend_glyph_string_lists (&head, &tail, h, t);
20406 clip_head = head; 20407 clip_head = head;
@@ -20450,6 +20451,8 @@ draw_glyphs (w, x, row, area, start, end, hl, overlaps)
20450 20451
20451 BUILD_GLYPH_STRINGS (end, i, h, t, 20452 BUILD_GLYPH_STRINGS (end, i, h, t,
20452 overlap_hl, x, last_x); 20453 overlap_hl, x, last_x);
20454 /* Because BUILD_GLYPH_STRINGS updates the first argument,
20455 we don't have `end = i;' here. */
20453 compute_overhangs_and_x (h, tail->x + tail->width, 0); 20456 compute_overhangs_and_x (h, tail->x + tail->width, 0);
20454 append_glyph_string_lists (&head, &tail, h, t); 20457 append_glyph_string_lists (&head, &tail, h, t);
20455 clip_tail = tail; 20458 clip_tail = tail;