diff options
| author | Mark A. Hershberger | 2010-01-24 23:52:26 -0500 |
|---|---|---|
| committer | Mark A. Hershberger | 2010-01-24 23:52:26 -0500 |
| commit | b1bb0a2570b8a40017220097c40c6057cfe17efe (patch) | |
| tree | d308182f02f1d459ea9a21c31a8ca8b0f3b4f787 | |
| parent | aaef4f91fad60716fa070b912d71b9f1ccd2e7b4 (diff) | |
| parent | 8dc1adf681df162bfd305debef0e1ab31bed3ebd (diff) | |
| download | emacs-b1bb0a2570b8a40017220097c40c6057cfe17efe.tar.gz emacs-b1bb0a2570b8a40017220097c40c6057cfe17efe.zip | |
merge conflict
42 files changed, 380 insertions, 288 deletions
| @@ -1,3 +1,8 @@ | |||
| 1 | 2010-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 | |||
| 1 | 2010-01-12 Juanma Barranquero <lekktu@gmail.com> | 6 | 2010-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 @@ | |||
| 1 | 2010-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 | |||
| 1 | 2010-01-12 Glenn Morris <rgm@gnu.org> | 6 | 2010-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 |
| 36 | to subsequent discussion, but this does not seem to be implemented. | 36 | to subsequent discussion, but this does not seem to be implemented. |
| 37 | See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=37078) | 37 | See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=37078) |
| 38 | See also http://debbugs.gnu.org/5439 | ||
| 38 | 39 | ||
| 39 | Do NOT send a separate copy to the bug list, since this may generate a | 40 | Do NOT send a separate copy to the bug list address, since this may |
| 40 | new report. The only time to send mail to the bug list is to create a | 41 | generate a new report. The only time to send mail to the bug list |
| 41 | new report. | 42 | address is to create a new report. |
| 42 | 43 | ||
| 43 | Gnus users can add the following to message-dont-reply-to-names; | 44 | Gnus users can add the following to message-dont-reply-to-names; |
| 44 | similarly with Rmail and rmail-dont-reply-to-names: | 45 | similarly 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 | ||
| 49 | The "owner@debbugs.gnu.org" entry is there because it appears in the | 50 | The "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. |
| 59 | Instead, use "X-Debbugs-CC:". This ensures the Cc address will get a | 60 | Instead, use "X-Debbugs-CC:". This ensures the Cc address will get a |
| 60 | mail with the bug report number in. If you do not do this, each reply | 61 | mail with the bug report number in. If you do not do this, each reply |
| 61 | in the subsequent discussion will end up creating a new bug. This is | 62 | in the subsequent discussion will end up creating a new bug. |
| 62 | annoying. | 63 | This is annoying. |
| 63 | 64 | ||
| 64 | Note that the way this feature works is perhaps not ideal (Bug#1720). | 65 | If a new report contains X-Debbugs-CC in the input, this is |
| 65 | If X-Debbugs-CC: was specifed by a real header, that header is removed | 66 | converted to a real Cc header in the output. (See Bug#1720). |
| 66 | in the mail sent out to the bug list, and the addresses merged into | 67 | It is also merged into the Resent-CC header (see below). |
| 67 | the Resent-CC header (see below). They don't appear as an explicit CC: | ||
| 68 | header, nor do they appear in the Reply-To: header. So people you | ||
| 69 | X-Debbugs-CC are not included in any following discussion unless they are | ||
| 70 | manually cc'd. So this feature really only serves to notify them that | ||
| 71 | a bug has been filed. It's then up to them to follow any subsequent | ||
| 72 | discussion. | ||
| 73 | |||
| 74 | If X-Debbugs-CC were merged into the Reply-To header, this might work | ||
| 75 | more the way people expect. | ||
| 76 | 68 | ||
| 77 | ** How does Debbugs send out mails? | 69 | ** How does Debbugs send out mails? |
| 78 | 70 | ||
| 79 | The mails are sent out to the bug list with From: and To: unchanged. | 71 | The mails are sent out to the bug list by being resent. The From: |
| 80 | Eg if you file a bug with "submit@debbugs.gnu.org", that | 72 | header is unchanged. In new reports only (at present), the To: |
| 81 | remains in the To: address. They reach the bug list by being resent. | 73 | address is altered as follows. Any "bug-gnu-emacs", |
| 74 | "emacs-pretest-bug", or "submit@debbugs" address is replaced by | ||
| 75 | 123@debbugs in the mail that gets sent out. (This also applies to any | ||
| 76 | Cc: header, though you should be using X-Debbugs-CC instead in new | ||
| 77 | reports). The original header is stored as X-Debbugs-Original-To, if | ||
| 78 | it was changed. Any X-Debbugs-CC is merged into the Cc. | ||
| 82 | 79 | ||
| 83 | Mails arriving at the bug list have the following Resent-* headers: | 80 | Mails 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 | ||
| 89 | The "maintainer email address" is "bug-gnu-emacs@gnu.org" in most cases. | 86 | The "maintainer email address" is "bug-gnu-emacs@gnu.org" in most cases. |
| 90 | 87 | ||
| 91 | A new report also has: | ||
| 92 | |||
| 93 | Mail-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, |
| 96 | add an "X-Debbugs-No-Ack:" header (with any value). If you use Gnus, | 89 | add an "X-Debbugs-No-Ack:" header (with any value). If you use Gnus, |
| 97 | you can add an element to gnus-posting-styles to do this automatically, eg: | 90 | you 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. |
| 127 | When you reply to a bug, respect the Reply-To address, ie send mail | 120 | If you reply to reports in the normal way, this should work fine. |
| 128 | only to the submitter address and the numbered bug address. Do not | 121 | Basically, reply only to the numbered bug address (and any individual |
| 129 | send mail direct to bug-gnu-emacs or emacs-pretest-bug unless you are | 122 | people's addresses). Do not send mail direct to bug-gnu-emacs or |
| 130 | reporting a new bug. | 123 | emacs-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 | |||
| 195 | See <http://wiki.debian.org/bugs.debian.org/usertags> | 188 | See <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 |
| 198 | to a bug. There are two differences between normal tags and user | 191 | to a bug. There are two differences between normal tags and user tags: |
| 199 | tags: | ||
| 200 | 192 | ||
| 201 | 1) Anyone can define any valid usertag they like. In contrast, only a | 193 | 1) Anyone can define any valid usertag they like. In contrast, only a |
| 202 | limited, predefined set of normal tags are available (see above). | 194 | limited, predefined set of normal tags are available (see above). |
| @@ -362,7 +354,7 @@ bug number. | |||
| 362 | 354 | ||
| 363 | Similarly, when you close a bug, it can be helpful to include the | 355 | Similarly, when you close a bug, it can be helpful to include the |
| 364 | relevant ChangeLog entry in the message to the bug tracker, so people | 356 | relevant ChangeLog entry in the message to the bug tracker, so people |
| 365 | can see eaxctly what the fix was. | 357 | can 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 | ||
| 374 | http://lists.gnu.org/archive/html/emacs-devel/2009-11/msg00440.html | 366 | http://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 | ||
| 371 | Emacs bug 123. You will first need to add a line to your bazaar.conf | ||
| 372 | (untested): | ||
| 373 | |||
| 374 | bugtracker_emacs_url = http://debbugs.gnu.org/{id} | ||
| 375 | |||
| 376 | Note that all this does is add some metadata to the commit, it doesn't | ||
| 377 | actually 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 | |||
| 456 | bug-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 |
| 454 | sender: bug-gnu-emacs AT gnu.org | 460 | sender: bug-gnu-emacs AT gnu.org |
| @@ -456,3 +462,18 @@ recipient: emacs-bug-tracker AT debbugs\.gnu\.org | |||
| 456 | 462 | ||
| 457 | The latter is because that is the address that debbugs actually sends to. | 463 | The latter is because that is the address that debbugs actually sends to. |
| 458 | An /etc/aliases entry redirects it to the real emacs-bug-tracker address. | 464 | An /etc/aliases entry redirects it to the real emacs-bug-tracker address. |
| 465 | |||
| 466 | ** Administrivia | ||
| 467 | |||
| 468 | The debbugs-submit list should have the administrivia option off, | ||
| 469 | else it can by mistake filter out requests to subscribe to bugs. | ||
| 470 | But, this feature doesn't work anyway (see bug#5439). | ||
| 471 | |||
| 472 | ** How to test changes | ||
| 473 | |||
| 474 | Add an entry to /etc/debbugs/Maintainers like: | ||
| 475 | |||
| 476 | mytest my.email.address | ||
| 477 | |||
| 478 | Then if you do all your testing with 'Package: mytest', the resulting | ||
| 479 | mails 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 | |||
| 22 | use File::Basename; | ||
| 23 | |||
| 24 | if (@ARGV < 3) | ||
| 25 | { | ||
| 26 | print <<USAGE; | ||
| 27 | revdiff FILE OLD NEW | ||
| 28 | |||
| 29 | Get a diff of FILE between revisions OLD and NEW. Store the | ||
| 30 | diff in a file named FILE-OLD-NEW.diff. | ||
| 31 | |||
| 32 | If 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 | |||
| 35 | If NEW is +<number> or -<number>, build diffs between revisions OLD | ||
| 36 | and OLD +/- <number>. | ||
| 37 | |||
| 38 | Examples: | ||
| 39 | |||
| 40 | revdiff FILE - -1 get the latest change of FILE | ||
| 41 | revdiff FILE -1 +1 also gets the latest change of FILE | ||
| 42 | revdiff FILE 1.500 +2 get diffs 1.500-1.501 and 1.501-1.502. | ||
| 43 | |||
| 44 | USAGE | ||
| 45 | exit 1; | ||
| 46 | } | ||
| 47 | |||
| 48 | $file = shift @ARGV; | ||
| 49 | $old = shift @ARGV; | ||
| 50 | |||
| 51 | sub 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 | |||
| 58 | sub 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 | |||
| 80 | if ($old eq "-") | ||
| 81 | { | ||
| 82 | $old = current_revision ($file); | ||
| 83 | } | ||
| 84 | elsif ($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 | |||
| 93 | while (@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 | ||
| @@ -6665,11 +6665,12 @@ fi | |||
| 6665 | 6665 | ||
| 6666 | 6666 | ||
| 6667 | 6667 | ||
| 6668 | |||
| 6668 | for ac_header in sys/select.h sys/timeb.h sys/time.h unistd.h utime.h \ | 6669 | for 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 |
| 6673 | do | 6674 | do |
| 6674 | as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` | 6675 | as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` |
| 6675 | if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then | 6676 | if { 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 | ||
| 1111 | AC_MSG_CHECKING(if personality LINUX32 can be set) | 1111 | AC_MSG_CHECKING(if personality LINUX32 can be set) |
| 1112 | AC_TRY_COMPILE([#include <sys/personality.h>], [personality (PER_LINUX32)], | 1112 | AC_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 @@ | |||
| 1 | 2010-01-19 Mark A. Hershberger <mah@everybody.org> | 1 | 2010-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 | ||
| 6 | 2010-01-21 Glenn Morris <rgm@gnu.org> | ||
| 7 | |||
| 8 | * trouble.texi (Bugs): Fix PROBLEMS keybinding. | ||
| 9 | |||
| 6 | 2010-01-12 Glenn Morris <rgm@gnu.org> | 10 | 2010-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 |
| 421 | known. You can find the list of known problems in the file | 421 | known. 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 |
| 423 | it. Some additional user-level problems can be found in @ref{Bugs and | 423 | it. Some additional user-level problems can be found in @ref{Bugs and |
| 424 | problems, , Bugs and problems, efaq, GNU Emacs FAQ}. Looking up your | 424 | problems, , Bugs and problems, efaq, GNU Emacs FAQ}. Looking up your |
| 425 | problem in these two documents might provide you with a solution or a | 425 | problem 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 @@ | |||
| 1 | 2010-01-19 Mark A. Hershberger <mah@everybody.org> | 1 | 2010-01-24 Mark A. Hershberger <mah@everybody.org> |
| 2 | |||
| 3 | * gnus.texi (Score File Format): Fix typo. | ||
| 4 | |||
| 5 | 2010-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 | |||
| 21803 | other. | 21803 | other. |
| 21804 | 21804 | ||
| 21805 | @item eval | 21805 | @item eval |
| 21806 | The value of this entry will be @code{eval}el. This element will be | 21806 | The value of this entry will be @code{eval}ed. This element will be |
| 21807 | ignored when handling global score files. | 21807 | ignored when handling global score files. |
| 21808 | 21808 | ||
| 21809 | @item read-only | 21809 | @item read-only |
| @@ -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 |
| 323 | it's not supported on git versions earlier than 1.5. | 323 | it'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 | ||
| 326 | Signed-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 |
| 329 | displayed in the *vc-dir* header, stashes can be created, removed, applied and | 326 | displayed in the *vc-dir* header, stashes can be created, removed, applied and |
| 330 | their content displayed. | 327 | their content displayed. |
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 2ec6621c20b..1b5d8f241ec 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,7 +1,88 @@ | |||
| 1 | 2010-01-19 Mark A. Hershberger <mah@everybody.org> | 1 | 2010-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 | ||
| 5 | 2010-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 | |||
| 19 | 2010-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 | |||
| 24 | 2010-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 | |||
| 29 | 2010-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 | |||
| 34 | 2010-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 | |||
| 39 | 2010-01-22 Michael Albinus <michael.albinus@gmx.de> | ||
| 40 | |||
| 41 | * net/tramp-imap.el (top): Autoload needed packages. (Bug#5448) | ||
| 42 | |||
| 43 | 2010-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 | |||
| 49 | 2010-01-22 Chong Yidong <cyd@stupidchicken.com> | ||
| 50 | |||
| 51 | * isearch.el (isearch-allow-scroll): Doc fix (Bug#5446). | ||
| 52 | |||
| 53 | 2010-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 | |||
| 58 | 2010-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 | |||
| 66 | 2010-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 | |||
| 71 | 2010-01-20 Chong Yidong <cyd@stupidchicken.com> | ||
| 72 | |||
| 73 | * term.el (term-send-raw-meta): Revert 2009-12-04 change (Bug#5330). | ||
| 74 | |||
| 75 | 2010-01-20 Glenn Morris <rgm@gnu.org> | ||
| 76 | |||
| 77 | * indent.el (tab-always-indent): Fix custom-type. | ||
| 78 | |||
| 79 | 2010-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 | |||
| 5 | 2010-01-18 Stephen Leake <stephen_leake@member.fsf.org> | 86 | 2010-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. |
| 2313 | If there is already something hidden, make everything visible again. | 2313 | If there is already something hidden, make everything visible again. |
| 2314 | Use \\[dired-hide-subdir] to (un)hide a particular subdirectory." | 2314 | Use \\[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. | |||
| 3917 | If there is already something hidden, make everything visible again. | 3917 | If there is already something hidden, make everything visible again. |
| 3918 | Use \\[dired-hide-subdir] to (un)hide a particular subdirectory. | 3918 | Use \\[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" "\ |
| 3923 | Set up isearch to search in Dired file names. | 3923 | Set 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. |
| 44 | The returned list is suitable as an element of an alist." | 45 | The returned list is suitable for concatenating with an existing |
| 46 | alist, 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 | |||
| 71 | modified, but will be moved to the head of the alist. If the key-value | 73 | modified, but will be moved to the head of the alist. If the key-value |
| 72 | pair cannot be found in the alist, it will be inserted into the head | 74 | pair cannot be found in the alist, it will be inserted into the head |
| 73 | of the alist (with value nil if VALUE is nil or not supplied)." | 75 | of 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)." | |||
| 86 | Alist is referenced by ALIST-SYMBOL and the key-value pair to remove | 88 | Alist is referenced by ALIST-SYMBOL and the key-value pair to remove |
| 87 | is pair matching KEY. Returns the altered alist." | 89 | is 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 | |||
| 123 | this isn't enforced. If VALUELIST is smaller than KEYLIST, remaining | 125 | this isn't enforced. If VALUELIST is smaller than KEYLIST, remaining |
| 124 | keys are associated with nil. If VALUELIST is larger than KEYLIST, | 126 | keys are associated with nil. If VALUELIST is larger than KEYLIST, |
| 125 | extra values are ignored. Returns the created alist." | 127 | extra 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. | |||
| 55 | Some programming language modes have their own variable to control this, | 55 | Some programming language modes have their own variable to control this, |
| 56 | e.g., `c-tab-always-indent', and do not respect this variable." | 56 | e.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. |
| 1758 | If non-nil, scrolling commands can be used in Isearch mode. | ||
| 1759 | However, the current match will never scroll offscreen. | ||
| 1760 | If 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. | |||
| 133 | If UNIBYTE is non-nil, insert converted characters as unibyte. | 133 | If UNIBYTE is non-nil, insert converted characters as unibyte. |
| 134 | That is useful if you are going to character code decoding afterward, | 134 | That is useful if you are going to character code decoding afterward, |
| 135 | as Rmail does." | 135 | as 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. | ||
| 66 | If it is nil, no smb.conf will be added to the `tramp-smb-program' | ||
| 67 | call, 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 | ||
| 258 | For instance: | 258 | For 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 @@ | |||
| 1 | 2010-01-23 Chong Yidong <cyd@stupidchicken.com> | ||
| 2 | |||
| 3 | * url-util.el: Require url-vars (Bug#5459). | ||
| 4 | |||
| 1 | 2009-11-27 Stefan Monnier <monnier@iro.umontreal.ca> | 5 | 2009-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 @@ | |||
| 1 | 2010-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 | |||
| 10 | 2010-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 | |||
| 15 | 2010-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 | |||
| 20 | 2010-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 | |||
| 25 | 2010-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 | |||
| 32 | 2010-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 | |||
| 38 | 2010-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 | |||
| 43 | 2010-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 | |||
| 1 | 2010-01-19 Jan Djärv <jan.h.d@swipnet.se> | 50 | 2010-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 | ||
| 185 | 2010-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 | |||
| 192 | 2010-01-06 David Reitter <david.reitter@gmail.com> | 234 | 2010-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 | ||
| 4726 | static char * | 4726 | static char * |
| 4727 | find_string_data_in_pure (data, nbytes) | 4727 | find_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 | ||
| 4797 | Lisp_Object | 4797 | Lisp_Object |
| 4798 | make_pure_string (data, nchars, nbytes, multibyte) | 4798 | make_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 | ||
| 5561 | DEF_IMGLIB_FN (png_get_io_ptr); | 5561 | DEF_IMGLIB_FN (png_get_io_ptr); |
| 5562 | DEF_IMGLIB_FN (png_check_sig); | 5562 | DEF_IMGLIB_FN (png_sig_cmp); |
| 5563 | DEF_IMGLIB_FN (png_create_read_struct); | 5563 | DEF_IMGLIB_FN (png_create_read_struct); |
| 5564 | DEF_IMGLIB_FN (png_create_info_struct); | 5564 | DEF_IMGLIB_FN (png_create_info_struct); |
| 5565 | DEF_IMGLIB_FN (png_destroy_read_struct); | 5565 | DEF_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 | ||
| 2655 | static Lisp_Object | 2657 | static Lisp_Object |
| 2656 | shadow_lookup (shadow, key, flag) | 2658 | shadow_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)); | |||
| 2686 | extern Lisp_Object make_string_from_bytes P_ ((const char *, int, int)); | 2686 | extern Lisp_Object make_string_from_bytes P_ ((const char *, int, int)); |
| 2687 | extern Lisp_Object make_specified_string P_ ((const char *, int, int, int)); | 2687 | extern Lisp_Object make_specified_string P_ ((const char *, int, int, int)); |
| 2688 | EXFUN (Fpurecopy, 1); | 2688 | EXFUN (Fpurecopy, 1); |
| 2689 | extern Lisp_Object make_pure_string P_ ((char *, int, int, int)); | 2689 | extern Lisp_Object make_pure_string P_ ((const char *, int, int, int)); |
| 2690 | extern Lisp_Object make_pure_c_string (const char *data); | 2690 | extern Lisp_Object make_pure_c_string (const char *data); |
| 2691 | extern Lisp_Object pure_cons P_ ((Lisp_Object, Lisp_Object)); | 2691 | extern Lisp_Object pure_cons P_ ((Lisp_Object, Lisp_Object)); |
| 2692 | extern Lisp_Object make_pure_vector P_ ((EMACS_INT)); | 2692 | extern 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; |