# HG changeset patch # User Mark A. Hershberger # Date 1264395146 18000 # Node ID e3fcbe16deaef5faae9c68316f438dfa53dff3b8 # Parent 66e0d01014c66332a89f170ca6196f45cd7e1fe7# Parent ffa16c09e01d869edb5881920fe1acb3df5ddd0c merge conflict diff -r 66e0d01014c6 -r e3fcbe16deae .bzrignore --- a/.bzrignore Tue Jan 19 14:39:22 2010 -0500 +++ b/.bzrignore Sun Jan 24 23:52:26 2010 -0500 @@ -61,3 +61,4 @@ src/stamp-oldxmenu src/temacs src/deps +configure.lineno diff -r 66e0d01014c6 -r e3fcbe16deae ChangeLog --- a/ChangeLog Tue Jan 19 14:39:22 2010 -0500 +++ b/ChangeLog Sun Jan 24 23:52:26 2010 -0500 @@ -1,3 +1,8 @@ +2010-01-23 Giorgos Keramidas (tiny change) + + * configure.in: Check for utmp.h availability (FreeBSD 9.x lacks + this header file). + 2010-01-12 Juanma Barranquero * .bzrignore: Ignore all .exe, instead of individual files. diff -r 66e0d01014c6 -r e3fcbe16deae admin/ChangeLog --- a/admin/ChangeLog Tue Jan 19 14:39:22 2010 -0500 +++ b/admin/ChangeLog Sun Jan 24 23:52:26 2010 -0500 @@ -1,3 +1,8 @@ +2010-01-20 Glenn Morris + + * revdiff: Remove file that only works with CVS, and isn't really + needed with Bazaar (given the in-built revision options of bzr diff). + 2010-01-12 Glenn Morris * emacs-pretesters, make-announcement: Use bug-gnu-emacs rather diff -r 66e0d01014c6 -r e3fcbe16deae admin/notes/bugtracker --- a/admin/notes/bugtracker Tue Jan 19 14:39:22 2010 -0500 +++ b/admin/notes/bugtracker Sun Jan 24 23:52:26 2010 -0500 @@ -35,15 +35,16 @@ (Many people think the submitter SHOULD be automatically subscribed to subsequent discussion, but this does not seem to be implemented. See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=37078) +See also http://debbugs.gnu.org/5439 -Do NOT send a separate copy to the bug list, since this may generate a -new report. The only time to send mail to the bug list is to create a -new report. +Do NOT send a separate copy to the bug list address, since this may +generate a new report. The only time to send mail to the bug list +address is to create a new report. Gnus users can add the following to message-dont-reply-to-names; similarly with Rmail and rmail-dont-reply-to-names: -"\\(emacs-pretest-bug\\|bug-gnu-emacs\\)@gnu\\.org\\|\ +"\\(emacs-pretest-bug\\|bug-gnu-emacs\\|bug-\\(e\\|gnu\\)macs\\)@gnu\\.org\\|\ \\(submit\\|control\\|owner\\)@debbugs\\.gnu\\.org" The "owner@debbugs.gnu.org" entry is there because it appears in the @@ -58,27 +59,23 @@ (e.g. bug-cc-mode@gnu.org), do NOT just use a Cc: header. Instead, use "X-Debbugs-CC:". This ensures the Cc address will get a mail with the bug report number in. If you do not do this, each reply -in the subsequent discussion will end up creating a new bug. This is -annoying. +in the subsequent discussion will end up creating a new bug. +This is annoying. -Note that the way this feature works is perhaps not ideal (Bug#1720). -If X-Debbugs-CC: was specifed by a real header, that header is removed -in the mail sent out to the bug list, and the addresses merged into -the Resent-CC header (see below). They don't appear as an explicit CC: -header, nor do they appear in the Reply-To: header. So people you -X-Debbugs-CC are not included in any following discussion unless they are -manually cc'd. So this feature really only serves to notify them that -a bug has been filed. It's then up to them to follow any subsequent -discussion. - -If X-Debbugs-CC were merged into the Reply-To header, this might work -more the way people expect. +If a new report contains X-Debbugs-CC in the input, this is +converted to a real Cc header in the output. (See Bug#1720). +It is also merged into the Resent-CC header (see below). ** How does Debbugs send out mails? -The mails are sent out to the bug list with From: and To: unchanged. -Eg if you file a bug with "submit@debbugs.gnu.org", that -remains in the To: address. They reach the bug list by being resent. +The mails are sent out to the bug list by being resent. The From: +header is unchanged. In new reports only (at present), the To: +address is altered as follows. Any "bug-gnu-emacs", +"emacs-pretest-bug", or "submit@debbugs" address is replaced by +123@debbugs in the mail that gets sent out. (This also applies to any +Cc: header, though you should be using X-Debbugs-CC instead in new +reports). The original header is stored as X-Debbugs-Original-To, if +it was changed. Any X-Debbugs-CC is merged into the Cc. Mails arriving at the bug list have the following Resent-* headers: @@ -88,10 +85,6 @@ The "maintainer email address" is "bug-gnu-emacs@gnu.org" in most cases. -A new report also has: - -Mail-Followup-To: bug submitter, 123@debbugs.gnu.org - ** To not get acknowledgement mail from the tracker, add an "X-Debbugs-No-Ack:" header (with any value). If you use Gnus, you can add an element to gnus-posting-styles to do this automatically, eg: @@ -124,10 +117,10 @@ ^X-Emacs-PR-Message: closed ** How to avoid multiple copies of mails. -When you reply to a bug, respect the Reply-To address, ie send mail -only to the submitter address and the numbered bug address. Do not -send mail direct to bug-gnu-emacs or emacs-pretest-bug unless you are -reporting a new bug. +If you reply to reports in the normal way, this should work fine. +Basically, reply only to the numbered bug address (and any individual +people's addresses). Do not send mail direct to bug-gnu-emacs or +emacs-pretest-bug unless you are reporting a new bug. ** To close bug #123 (for example), send mail @@ -195,8 +188,7 @@ See "Usertags" are very similar to tags: a set of labels that can be added -to a bug. There are two differences between normal tags and user -tags: +to a bug. There are two differences between normal tags and user tags: 1) Anyone can define any valid usertag they like. In contrast, only a limited, predefined set of normal tags are available (see above). @@ -362,7 +354,7 @@ Similarly, when you close a bug, it can be helpful to include the relevant ChangeLog entry in the message to the bug tracker, so people -can see eaxctly what the fix was. +can see exactly what the fix was. *** bug-reference-mode @@ -373,6 +365,17 @@ http://lists.gnu.org/archive/html/emacs-devel/2009-11/msg00440.html +** Bazaar stuff + +*** You can use `bzr commit --fixes emacs:123' to mark that a commit fixes +Emacs bug 123. You will first need to add a line to your bazaar.conf +(untested): + +bugtracker_emacs_url = http://debbugs.gnu.org/{id} + +Note that all this does is add some metadata to the commit, it doesn't +actually mark the bug as closed in the tracker. + ** Gnus-specific voodoo *** Put point on a bug-number and try: M-x gnus-read-ephemeral-emacs-bug-group @@ -448,7 +451,10 @@ *** debbugs-submit (quiet|control|submit)@(debbugs\.gnu\.org|emacsbugs\.donarmstrong\.com) [0-9]+(-done|-quiet|-subscribe)?@(debbugs\.gnu\.org|emacsbugs\.donarmstrong\.com) -(bug-gnu-emacs|emacs-pretest-bug)@gnu\.org +(bug-gnu-emacs|emacs-pretest-bug|bug-(e|gnu)macs)@gnu\.org + +bug-emacs and bug-gnumacs are lesser-used aliases from fencepost's +/etc/aliases file. *** emacs-bug-tracker sender: bug-gnu-emacs AT gnu.org @@ -456,3 +462,18 @@ The latter is because that is the address that debbugs actually sends to. An /etc/aliases entry redirects it to the real emacs-bug-tracker address. + +** Administrivia + +The debbugs-submit list should have the administrivia option off, +else it can by mistake filter out requests to subscribe to bugs. +But, this feature doesn't work anyway (see bug#5439). + +** How to test changes + +Add an entry to /etc/debbugs/Maintainers like: + +mytest my.email.address + +Then if you do all your testing with 'Package: mytest', the resulting +mails should only go to your email address. diff -r 66e0d01014c6 -r e3fcbe16deae admin/revdiff --- a/admin/revdiff Tue Jan 19 14:39:22 2010 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,137 +0,0 @@ -#! /usr/bin/perl - -# Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, -# 2010 Free Software Foundation, Inc. -# -# This file is part of GNU Emacs. - -# GNU Emacs is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. - -# GNU Emacs is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with GNU Emacs. If not, see . - - -use File::Basename; - -if (@ARGV < 3) -{ - print <', use the Nth revision before the current one for OLD. - -If NEW is + or -, build diffs between revisions OLD -and OLD +/- . - -Examples: - -revdiff FILE - -1 get the latest change of FILE -revdiff FILE -1 +1 also gets the latest change of FILE -revdiff FILE 1.500 +2 get diffs 1.500-1.501 and 1.501-1.502. - -USAGE - exit 1; -} - -$file = shift @ARGV; -$old = shift @ARGV; - -sub diffit -{ - my ($old, $new) = @_; - print "cvs diff -r$old -r$new $file >$file-$old-$new.diff\n"; - system "cvs diff -r$old -r$new $file >$file-$old-$new.diff"; -} - -sub current_revision ($) -{ - my ($file) = @_; - my $dir = dirname ($file); - my $base = basename ($file); - my $entries = "$dir/CVS/Entries"; - die "Can't find $entries" unless -f $entries; - open (IN, "<$entries") or die "Cannot open $entries"; - my $rev; - while ($line = ) - { - if ($line =~ m,/$base/([^/]+),) - { - $rev = $1; - break; - } - } - die "Cannot determine current revision of $file" unless $rev; - close (IN); - return $rev; -} - -if ($old eq "-") - { - $old = current_revision ($file); - } -elsif ($old =~ /^-(\d+)$/) - { - my $offset = $1; - $old = current_revision ($file); - die "Internal error" unless $old =~ /(.*)\.(\d+)$/; - my $minor = $2 - $offset; - $old = sprintf ("%d.%d", $1, $minor); - } - -while (@ARGV) - { - my $new = shift @ARGV; - if ($new =~ /^[+]\d+$/) - { - my $n = $new; - for ($i = 0; $i < $n; ++$i) - { - unless ($old =~ /(.*)\.(\d+)$/) - { - die "Internal error"; - } - my $j = $2 + 1; - $new = "$1.$j"; - diffit ($old, $new); - $old = $new; - } - } - elsif ($new =~ /^[-]\d+$/) - { - my $n = - $new; - for ($i = 0; $i < $n; ++$i) - { - unless ($old =~ /(.*)\.(\d+)$/) - { - die "Internal error"; - } - my $j = $2 - 1; - $new = "$1.$j"; - diffit ($new, $old); - $old = $new; - } - } - else - { - diffit ($old, $new); - $old = $new; - } - } - -# Local Variables: -# mode: cperl -# End: - -# arch-tag: 2798b20d-c7f2-4c78-8378-7bb529c36a09 diff -r 66e0d01014c6 -r e3fcbe16deae configure --- a/configure Tue Jan 19 14:39:22 2010 -0500 +++ b/configure Sun Jan 24 23:52:26 2010 -0500 @@ -6665,11 +6665,12 @@ + for ac_header in sys/select.h sys/timeb.h sys/time.h unistd.h utime.h \ linux/version.h sys/systeminfo.h termios.h limits.h string.h stdlib.h \ termcap.h stdio_ext.h fcntl.h strings.h coff.h pty.h sys/mman.h \ sys/param.h sys/vlimit.h sys/resource.h locale.h sys/_mbstate_t.h \ - sys/utsname.h pwd.h + sys/utsname.h pwd.h utmp.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then diff -r 66e0d01014c6 -r e3fcbe16deae configure.in --- a/configure.in Tue Jan 19 14:39:22 2010 -0500 +++ b/configure.in Sun Jan 24 23:52:26 2010 -0500 @@ -1106,7 +1106,7 @@ linux/version.h sys/systeminfo.h termios.h limits.h string.h stdlib.h \ termcap.h stdio_ext.h fcntl.h strings.h coff.h pty.h sys/mman.h \ sys/param.h sys/vlimit.h sys/resource.h locale.h sys/_mbstate_t.h \ - sys/utsname.h pwd.h) + sys/utsname.h pwd.h utmp.h) AC_MSG_CHECKING(if personality LINUX32 can be set) AC_TRY_COMPILE([#include ], [personality (PER_LINUX32)], diff -r 66e0d01014c6 -r e3fcbe16deae doc/emacs/ChangeLog --- a/doc/emacs/ChangeLog Tue Jan 19 14:39:22 2010 -0500 +++ b/doc/emacs/ChangeLog Sun Jan 24 23:52:26 2010 -0500 @@ -1,8 +1,12 @@ -2010-01-19 Mark A. Hershberger +2010-01-24 Mark A. Hershberger * programs.texi (Other C Commands): Replace reference to obsolete c-subword-mode. +2010-01-21 Glenn Morris + + * trouble.texi (Bugs): Fix PROBLEMS keybinding. + 2010-01-12 Glenn Morris * trouble.texi (Checklist): Use bug-gnu-emacs rather than diff -r 66e0d01014c6 -r e3fcbe16deae doc/emacs/trouble.texi --- a/doc/emacs/trouble.texi Tue Jan 19 14:39:22 2010 -0500 +++ b/doc/emacs/trouble.texi Sun Jan 24 23:52:26 2010 -0500 @@ -419,7 +419,7 @@ Before reporting a bug, it is a good idea to see if it is already known. You can find the list of known problems in the file -@file{etc/PROBLEMS} in the Emacs distribution; type @kbd{C-h C-e} to read +@file{etc/PROBLEMS} in the Emacs distribution; type @kbd{C-h C-p} to read it. Some additional user-level problems can be found in @ref{Bugs and problems, , Bugs and problems, efaq, GNU Emacs FAQ}. Looking up your problem in these two documents might provide you with a solution or a diff -r 66e0d01014c6 -r e3fcbe16deae doc/misc/ChangeLog --- a/doc/misc/ChangeLog Tue Jan 19 14:39:22 2010 -0500 +++ b/doc/misc/ChangeLog Sun Jan 24 23:52:26 2010 -0500 @@ -1,4 +1,8 @@ -2010-01-19 Mark A. Hershberger +2010-01-24 Mark A. Hershberger + + * gnus.texi (Score File Format): Fix typo. + +2010-01-21 Katsumi Yamaoka * cc-mode.texi: Replace references to obsolete c-subword-mode. diff -r 66e0d01014c6 -r e3fcbe16deae doc/misc/gnus.texi --- a/doc/misc/gnus.texi Tue Jan 19 14:39:22 2010 -0500 +++ b/doc/misc/gnus.texi Sun Jan 24 23:52:26 2010 -0500 @@ -21803,7 +21803,7 @@ other. @item eval -The value of this entry will be @code{eval}el. This element will be +The value of this entry will be @code{eval}ed. This element will be ignored when handling global score files. @item read-only diff -r 66e0d01014c6 -r e3fcbe16deae etc/NEWS --- a/etc/NEWS Tue Jan 19 14:39:22 2010 -0500 +++ b/etc/NEWS Sun Jan 24 23:52:26 2010 -0500 @@ -322,9 +322,6 @@ **** The short log format for git makes use of the graph display, so it's not supported on git versions earlier than 1.5. -**** The new variable vc-git-add-signoff can be used to add a -Signed-off-by line when committing. - **** Support for operating with stashes has been added to vc-dir: the stash list is displayed in the *vc-dir* header, stashes can be created, removed, applied and their content displayed. diff -r 66e0d01014c6 -r e3fcbe16deae lisp/ChangeLog --- a/lisp/ChangeLog Tue Jan 19 14:39:22 2010 -0500 +++ b/lisp/ChangeLog Sun Jan 24 23:52:26 2010 -0500 @@ -1,7 +1,88 @@ -2010-01-19 Mark A. Hershberger +2010-01-24 Mark A. Hershberger * progmodes/python.el: Replace reference to obsolete c-subward-mode. +2010-01-24 Dan Nicolaescu + + Remove support for adding --signoff on commit. + Future support will use an incompatible generic mechanism. + * vc-git.el (vc-git-add-signoff): Remove variable. + (vc-git-toggle-signoff): Remove function. + (vc-git-extra-menu-map): Do not bind vc-git-toggle-signoff. + + * term/xterm.el (xterm-maybe-set-dark-background-mode): Rename + from xterm-set-background-mode. Return t if the background mode + was set. + (terminal-init-xterm): Move tty-set-up-initial-frame-faces + earlier, call it again in case the background mode has changed. + +2010-01-23 Dmitri Paduchikh (tiny change) + + * emacs-lisp/advice.el (ad-set-orig-definition): Fix typo + (Bug#3541). + +2010-01-23 Chong Yidong + + * emacs-lisp/assoc.el (aelement): Doc fix. + (aput, adelete, amake): Use lexical-let (Bug#5450). + +2010-01-23 Stephen Leake + + * progmodes/ada-mode.el (ada-in-paramlist-p): Pragma syntax + is the same as subprogram call, not declaration. (Bug#5435). + +2010-01-23 Michael Albinus + + * net/tramp-smb.el (tramp-smb-conf): New defcustom. + (tramp-smb-maybe-open-connection): Use it. + +2010-01-22 Michael Albinus + + * net/tramp-imap.el (top): Autoload needed packages. (Bug#5448) + +2010-01-22 Stefan Monnier + + * mail/rmailmm.el (rmail-mime-handle): Don't set the buffer to unibyte + just because we see "encoding: 8bit". + * mail/rmail.el (rmail-show-message-1): Decode the body's QP into bytes. + +2010-01-22 Chong Yidong + + * isearch.el (isearch-allow-scroll): Doc fix (Bug#5446). + +2010-01-22 Eli Zaretskii + + * jka-compr.el (jka-compr-load): If load-file is not in + load-history, try its file-truename version. (bug#5447) + +2010-01-21 Alan Mackenzie + + Fix a situation where deletion of a cpp construct throws an error. + * progmodes/cc-engine.el (c-invalidate-state-cache): Before + invoking c-with-all-but-one-cpps-commented-out, check that the + special cpp construct is still in the buffer. + (c-parse-state): Record the special cpp with markers, not numbers. + +2010-01-21 Kenichi Handa + + * textmodes/sgml-mode.el (sgml-maybe-name-self): No need to + process last-command-event, as it is now decoded first (Bug#5380). + +2010-01-20 Chong Yidong + + * term.el (term-send-raw-meta): Revert 2009-12-04 change (Bug#5330). + +2010-01-20 Glenn Morris + + * indent.el (tab-always-indent): Fix custom-type. + +2010-01-19 Alan Mackenzie + + * progmodes/cc-defs.el: Fix bug#5395: typing '#' in an empty + buffer throws "args out of range". + (c-set-cpp-delimiters, c-clear-cpp-delimiters): Check for EOB + playing the role of delimiter. + 2010-01-18 Stephen Leake * lisp/progmodes/ada-mode.el: Fix bug#5400. diff -r 66e0d01014c6 -r e3fcbe16deae lisp/dired-aux.el --- a/lisp/dired-aux.el Tue Jan 19 14:39:22 2010 -0500 +++ b/lisp/dired-aux.el Sun Jan 24 23:52:26 2010 -0500 @@ -2308,7 +2308,7 @@ (restore-buffer-modified-p modflag))) ;;;###autoload -(defun dired-hide-all (arg) +(defun dired-hide-all (&optional ignored) "Hide all subdirectories, leaving only their header lines. If there is already something hidden, make everything visible again. Use \\[dired-hide-subdir] to (un)hide a particular subdirectory." diff -r 66e0d01014c6 -r e3fcbe16deae lisp/dired.el --- a/lisp/dired.el Tue Jan 19 14:39:22 2010 -0500 +++ b/lisp/dired.el Sun Jan 24 23:52:26 2010 -0500 @@ -3517,7 +3517,7 @@ ;;;;;; dired-run-shell-command dired-do-shell-command dired-do-async-shell-command ;;;;;; dired-clean-directory dired-do-print dired-do-touch dired-do-chown ;;;;;; dired-do-chgrp dired-do-chmod dired-compare-directories dired-backup-diff -;;;;;; dired-diff) "dired-aux" "dired-aux.el" "557aca1f6e86b39f1c7612ee123d5354") +;;;;;; dired-diff) "dired-aux" "dired-aux.el" "07676ea25af17f5d50cc5db4f53bddc0") ;;; Generated autoloads from dired-aux.el (autoload 'dired-diff "dired-aux" "\ @@ -3917,7 +3917,7 @@ If there is already something hidden, make everything visible again. Use \\[dired-hide-subdir] to (un)hide a particular subdirectory. -\(fn ARG)" t nil) +\(fn &optional IGNORED)" t nil) (autoload 'dired-isearch-filenames-setup "dired-aux" "\ Set up isearch to search in Dired file names. diff -r 66e0d01014c6 -r e3fcbe16deae lisp/emacs-lisp/advice.el --- a/lisp/emacs-lisp/advice.el Tue Jan 19 14:39:22 2010 -0500 +++ b/lisp/emacs-lisp/advice.el Sun Jan 24 23:52:26 2010 -0500 @@ -2191,7 +2191,7 @@ (defmacro ad-set-orig-definition (function definition) `(ad-safe-fset - (ad-get-advice-info-field function 'origname) ,definition)) + (ad-get-advice-info-field ,function 'origname) ,definition)) (defmacro ad-clear-orig-definition (function) `(fmakunbound (ad-get-advice-info-field ,function 'origname))) diff -r 66e0d01014c6 -r e3fcbe16deae lisp/emacs-lisp/assoc.el --- a/lisp/emacs-lisp/assoc.el Tue Jan 19 14:39:22 2010 -0500 +++ b/lisp/emacs-lisp/assoc.el Sun Jan 24 23:52:26 2010 -0500 @@ -1,7 +1,7 @@ ;;; assoc.el --- insert/delete/sort functions on association lists -;; Copyright (C) 1996, 2001, 2002, 2003, 2004, 2005, -;; 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +;; Copyright (C) 1996, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, +;; 2009, 2010 Free Software Foundation, Inc. ;; Author: Barry A. Warsaw ;; Keywords: extensions @@ -27,6 +27,7 @@ ;; fetching off key-value pairs in association lists. ;;; Code: +(eval-when-compile (require 'cl)) (defun asort (alist-symbol key) "Move a specified key-value pair to the head of an alist. @@ -41,7 +42,8 @@ (defun aelement (key value) "Make a list of a cons cell containing car of KEY and cdr of VALUE. -The returned list is suitable as an element of an alist." +The returned list is suitable for concatenating with an existing +alist, via `nconc'." (list (cons key value))) @@ -71,8 +73,8 @@ modified, but will be moved to the head of the alist. If the key-value pair cannot be found in the alist, it will be inserted into the head of the alist (with value nil if VALUE is nil or not supplied)." - (let ((elem (aelement key value)) - alist) + (lexical-let ((elem (aelement key value)) + alist) (asort alist-symbol key) (setq alist (eval alist-symbol)) (cond ((null alist) (set alist-symbol elem)) @@ -86,7 +88,7 @@ Alist is referenced by ALIST-SYMBOL and the key-value pair to remove is pair matching KEY. Returns the altered alist." (asort alist-symbol key) - (let ((alist (eval alist-symbol))) + (lexical-let ((alist (eval alist-symbol))) (cond ((null alist) nil) ((anot-head-p alist key) alist) (t (set alist-symbol (cdr alist)))))) @@ -123,10 +125,10 @@ this isn't enforced. If VALUELIST is smaller than KEYLIST, remaining keys are associated with nil. If VALUELIST is larger than KEYLIST, extra values are ignored. Returns the created alist." - (let ((keycar (car keylist)) - (keycdr (cdr keylist)) - (valcar (car valuelist)) - (valcdr (cdr valuelist))) + (lexical-let ((keycar (car keylist)) + (keycdr (cdr keylist)) + (valcar (car valuelist)) + (valcdr (cdr valuelist))) (cond ((null keycdr) (aput alist-symbol keycar valcar)) (t diff -r 66e0d01014c6 -r e3fcbe16deae lisp/indent.el --- a/lisp/indent.el Tue Jan 19 14:39:22 2010 -0500 +++ b/lisp/indent.el Sun Jan 24 23:52:26 2010 -0500 @@ -1,7 +1,7 @@ ;;; indent.el --- indentation commands for Emacs -;; Copyright (C) 1985, 1995, 2001, 2002, 2003, 2004, -;; 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1995, 2001, 2002, 2003, 2004, 2005, 2006, 2007, +;; 2008, 2009, 2010 Free Software Foundation, Inc. ;; Maintainer: FSF @@ -55,7 +55,11 @@ Some programming language modes have their own variable to control this, e.g., `c-tab-always-indent', and do not respect this variable." :group 'indent - :type '(choice (const nil) (const t) (const always))) + :type '(choice + (const :tag "Always indent" t) + (const :tag "Indent if inside indentation, else TAB" nil) + (const :tag "Indent, or if already indented complete" complete))) + (defun indent-according-to-mode () "Indent line in proper way for current major mode. diff -r 66e0d01014c6 -r e3fcbe16deae lisp/isearch.el --- a/lisp/isearch.el Tue Jan 19 14:39:22 2010 -0500 +++ b/lisp/isearch.el Sun Jan 24 23:52:26 2010 -0500 @@ -1754,7 +1754,10 @@ (put 'digit-argument 'isearch-scroll t) (defcustom isearch-allow-scroll nil - "If non-nil, scrolling commands are allowed during incremental search." + "Whether scrolling is allowed during incremental search. +If non-nil, scrolling commands can be used in Isearch mode. +However, the current match will never scroll offscreen. +If nil, scolling commands will first cancel Isearch mode." :type 'boolean :group 'isearch) diff -r 66e0d01014c6 -r e3fcbe16deae lisp/jka-compr.el --- a/lisp/jka-compr.el Tue Jan 19 14:39:22 2010 -0500 +++ b/lisp/jka-compr.el Sun Jan 24 23:52:26 2010 -0500 @@ -590,7 +590,14 @@ (or nomessage (message "Loading %s...done." file)) ;; Fix up the load history to point at the right library. - (let ((l (assoc load-file load-history))) + (let ((l (or (assoc load-file load-history) + ;; On MS-Windows, if load-file is in + ;; temporary-file-directory, it will look like + ;; "c:/DOCUME~1/USER/LOCALS~1/foo", whereas + ;; readevalloop will record its truename in + ;; load-history. Therefore try truename if the + ;; original name is not in load-history. + (assoc (file-truename load-file) load-history)))) ;; Remove .gz and .elc?. (while (file-name-extension file) (setq file (file-name-sans-extension file))) diff -r 66e0d01014c6 -r e3fcbe16deae lisp/mail/mail-utils.el --- a/lisp/mail/mail-utils.el Tue Jan 19 14:39:22 2010 -0500 +++ b/lisp/mail/mail-utils.el Sun Jan 24 23:52:26 2010 -0500 @@ -133,6 +133,8 @@ If UNIBYTE is non-nil, insert converted characters as unibyte. That is useful if you are going to character code decoding afterward, as Rmail does." + ;; FIXME: `unibyte' should always be non-nil, and the iso-latin-1 + ;; specific handling should be removed (or moved elsewhere and generalized). (interactive "r\nP") (let (failed) (save-match-data diff -r 66e0d01014c6 -r e3fcbe16deae lisp/mail/rmail.el --- a/lisp/mail/rmail.el Tue Jan 19 14:39:22 2010 -0500 +++ b/lisp/mail/rmail.el Sun Jan 24 23:52:26 2010 -0500 @@ -2727,7 +2727,8 @@ (insert-buffer-substring mbox-buf body-start end) (cond ((string= character-coding "quoted-printable") - (mail-unquote-printable-region (point-min) (point-max))) + (mail-unquote-printable-region (point-min) (point-max) + nil nil 'unibyte)) ((and (string= character-coding "base64") is-text-message) (base64-decode-region (point-min) (point-max))) ((eq character-coding 'uuencode) @@ -4269,7 +4270,7 @@ ;;;*** -;;;### (autoloads (rmail-mime) "rmailmm" "rmailmm.el" "d196de6dfb74fe87a3d02189096b795f") +;;;### (autoloads (rmail-mime) "rmailmm" "rmailmm.el" "93033f2136fcd111e2b52a116ff4cf29") ;;; Generated autoloads from rmailmm.el (autoload 'rmail-mime "rmailmm" "\ diff -r 66e0d01014c6 -r e3fcbe16deae lisp/mail/rmailmm.el --- a/lisp/mail/rmailmm.el Tue Jan 19 14:39:22 2010 -0500 +++ b/lisp/mail/rmailmm.el Sun Jan 24 23:52:26 2010 -0500 @@ -361,7 +361,10 @@ (setq content-transfer-encoding nil)) ((string= content-transfer-encoding "8bit") ;; FIXME: Is this the correct way? - (set-buffer-multibyte nil))) + ;; No, of course not, it just means there's no decoding to do. + ;; (set-buffer-multibyte nil) + (setq content-transfer-encoding nil) + )) ;; Inline stuff requires work. Attachments are handled by the bulk ;; handler. (if (string= "inline" (car content-disposition)) diff -r 66e0d01014c6 -r e3fcbe16deae lisp/net/tramp-imap.el --- a/lisp/net/tramp-imap.el Tue Jan 19 14:39:22 2010 -0500 +++ b/lisp/net/tramp-imap.el Sun Jan 24 23:52:26 2010 -0500 @@ -55,13 +55,23 @@ (require 'assoc) (require 'tramp) (require 'tramp-compat) -(require 'message) -(require 'imap-hash) -(require 'epa) + (autoload 'auth-source-user-or-password "auth-source") +(autoload 'epg-context-operation "epg") +(autoload 'epg-context-set-armor "epg") +(autoload 'epg-context-set-passphrase-callback "epg") +(autoload 'epg-context-set-progress-callback "epg") +(autoload 'epg-decrypt-string "epg") +(autoload 'epg-encrypt-string "epg") +(autoload 'imap-hash-get "imap-hash") +(autoload 'imap-hash-make "imap-hash") +(autoload 'imap-hash-map "imap-hash") +(autoload 'imap-hash-put "imap-hash") +(autoload 'imap-hash-rem "imap-hash") ;; We use the additional header "X-Size" for encoding the size of a file. -(add-to-list 'imap-hash-headers 'X-Size 'append) +(eval-after-load "imap-hash" + '(add-to-list 'imap-hash-headers 'X-Size 'append)) ;; Define Tramp IMAP method ... (defconst tramp-imap-method "imap" @@ -662,7 +672,8 @@ (read-passwd (if (eq key-id 'PIN) "Tramp-IMAP passphrase for PIN: " - (let ((entry (assoc key-id epg-user-id-alist))) + (let ((entry (assoc key-id + (symbol-value 'epg-user-id-alist)))) (if entry (format "Tramp-IMAP passphrase for %s %s: " key-id (cdr entry)) diff -r 66e0d01014c6 -r e3fcbe16deae lisp/net/tramp-smb.el --- a/lisp/net/tramp-smb.el Tue Jan 19 14:39:22 2010 -0500 +++ b/lisp/net/tramp-smb.el Sun Jan 24 23:52:26 2010 -0500 @@ -61,6 +61,13 @@ :group 'tramp :type 'string) +(defcustom tramp-smb-conf "/dev/null" + "*Path of the smb.conf file. +If it is nil, no smb.conf will be added to the `tramp-smb-program' +call, letting the SMB client use the default one." + :group 'tramp + :type '(choice (const nil) (file :must-match t))) + (defvar tramp-smb-version nil "*Version string of the SMB client.") @@ -1281,7 +1288,8 @@ (when domain (setq args (append args (list "-W" domain)))) (when port (setq args (append args (list "-p" port)))) - (setq args (append args (list "-s" "/dev/null"))) + (when tramp-smb-conf + (setq args (append args (list "-s" tramp-smb-conf)))) ;; OK, let's go. (tramp-message diff -r 66e0d01014c6 -r e3fcbe16deae lisp/progmodes/ada-mode.el --- a/lisp/progmodes/ada-mode.el Tue Jan 19 14:39:22 2010 -0500 +++ b/lisp/progmodes/ada-mode.el Sun Jan 24 23:52:26 2010 -0500 @@ -257,7 +257,7 @@ For instance: A := 1; -- A multi-line comment - -- aligned if ada-indent-align-comments is t" + -- aligned if `ada-indent-align-comments' is t" :type 'boolean :group 'ada) (defcustom ada-indent-comment-as-code t @@ -4163,7 +4163,7 @@ (defun ada-in-paramlist-p () - "Return t if point is inside a parameter-list." + "Return t if point is inside the parameter-list of a declaration, but not a subprogram call or aggregate." (save-excursion (and (ada-search-ignore-string-comment "(\\|)" t nil t) @@ -4194,13 +4194,13 @@ ;; right keyword two words before parenthesis ? ;; Type is in this list because of discriminants + ;; pragma is not, because the syntax is that of a subprogram call. (looking-at (eval-when-compile (concat "\\<\\(" "procedure\\|function\\|body\\|" "task\\|entry\\|accept\\|" "access[ \t]+procedure\\|" "access[ \t]+function\\|" - "pragma\\|" "type\\)\\>")))))) (defun ada-search-ignore-complex-boolean (regexp backwardp) diff -r 66e0d01014c6 -r e3fcbe16deae lisp/progmodes/cc-defs.el --- a/lisp/progmodes/cc-defs.el Tue Jan 19 14:39:22 2010 -0500 +++ b/lisp/progmodes/cc-defs.el Sun Jan 24 23:52:26 2010 -0500 @@ -1217,12 +1217,14 @@ ;; This macro does a hidden buffer change. `(progn (c-put-char-property ,beg 'category 'c-cpp-delimiter) - (c-put-char-property ,end 'category 'c-cpp-delimiter))) + (if (< ,end (point-max)) + (c-put-char-property ,end 'category 'c-cpp-delimiter)))) (defmacro c-clear-cpp-delimiters (beg end) ;; This macro does a hidden buffer change. `(progn (c-clear-char-property ,beg 'category) - (c-clear-char-property ,end 'category))) + (if (< ,end (point-max)) + (c-clear-char-property ,end 'category)))) (defsubst c-comment-out-cpps () ;; Render all preprocessor constructs syntactically commented out. diff -r 66e0d01014c6 -r e3fcbe16deae lisp/progmodes/cc-engine.el --- a/lisp/progmodes/cc-engine.el Tue Jan 19 14:39:22 2010 -0500 +++ b/lisp/progmodes/cc-engine.el Sun Jan 24 23:52:26 2010 -0500 @@ -2996,9 +2996,11 @@ ;; containing point. We can then call `c-invalidate-state-cache-1' without ;; worrying further about macros and template delimiters. (c-with-<->-as-parens-suppressed - (if c-state-old-cpp-beg + (if (and c-state-old-cpp-beg + (< c-state-old-cpp-beg here)) (c-with-all-but-one-cpps-commented-out - c-state-old-cpp-beg c-state-old-cpp-end + c-state-old-cpp-beg + (min c-state-old-cpp-end here) (c-invalidate-state-cache-1 here)) (c-with-cpps-commented-out (c-invalidate-state-cache-1 here))))) @@ -3029,8 +3031,9 @@ (c-parse-state-1)) (c-with-cpps-commented-out (c-parse-state-1)))) - (setq c-state-old-cpp-beg here-cpp-beg - c-state-old-cpp-end here-cpp-end)))) + (setq c-state-old-cpp-beg (and here-cpp-beg (copy-marker here-cpp-beg t)) + c-state-old-cpp-end (and here-cpp-end (copy-marker here-cpp-end t))) + ))) ;; Debug tool to catch cache inconsistencies. This is called from ;; 000tests.el. diff -r 66e0d01014c6 -r e3fcbe16deae lisp/term.el --- a/lisp/term.el Tue Jan 19 14:39:22 2010 -0500 +++ b/lisp/term.el Sun Jan 24 23:52:26 2010 -0500 @@ -1208,8 +1208,17 @@ (defun term-send-raw-meta () (interactive) - (let* ((keys (this-command-keys)) - (char (aref keys (1- (length keys))))) + (let ((char last-input-event)) + (when (symbolp last-input-event) + ;; Convert `return' to C-m, etc. + (let ((tmp (get char 'event-symbol-elements))) + (when tmp + (setq char (car tmp))) + (when (symbolp char) + (setq tmp (get char 'ascii-character)) + (when tmp + (setq char tmp))))) + (setq char (event-basic-type char)) (term-send-raw-string (if (and (numberp char) (> char 127) (< char 256)) diff -r 66e0d01014c6 -r e3fcbe16deae lisp/term/xterm.el --- a/lisp/term/xterm.el Tue Jan 19 14:39:22 2010 -0500 +++ b/lisp/term/xterm.el Sun Jan 24 23:52:26 2010 -0500 @@ -462,6 +462,7 @@ (set-keymap-parent input-decode-map map))) (xterm-register-default-colors) + (tty-set-up-initial-frame-faces) ;; Try to turn on the modifyOtherKeys feature on modern xterms. ;; When it is turned on many more key bindings work: things like @@ -471,6 +472,7 @@ (let ((coding-system-for-read 'binary) (chr nil) (str nil) + (recompute-faces nil) version) ;; Pending input can be mistakenly returned by the calls to ;; read-event below. Discard it. @@ -502,10 +504,11 @@ (while (not (equal (setq chr (read-event nil nil 2)) ?\\)) (setq str (concat str (string chr)))) (when (string-match "11;rgb:\\([a-f0-9]+\\)/\\([a-f0-9]+\\)/\\([a-f0-9]+\\)" str) - (xterm-set-background-mode - (string-to-number (match-string 1 str) 16) - (string-to-number (match-string 2 str) 16) - (string-to-number (match-string 3 str) 16)))))) + (setq recompute-faces + (xterm-maybe-set-dark-background-mode + (string-to-number (match-string 1 str) 16) + (string-to-number (match-string 2 str) 16) + (string-to-number (match-string 3 str) 16))))))) ;; NUMBER2 is the xterm version number, look for something ;; greater than 216, the version when modifyOtherKeys was ;; introduced. @@ -520,10 +523,16 @@ ;; need to deal with modify-other-keys. (push (frame-terminal (selected-frame)) xterm-modify-other-keys-terminal-list) - (xterm-turn-on-modify-other-keys)))))) + (xterm-turn-on-modify-other-keys)) - ;; This recomputes all the default faces given the colors we've just set up. - (tty-set-up-initial-frame-faces) + ;; Recompute faces here in case the background mode was + ;; set to dark. We used to call + ;; `tty-set-up-initial-frame-faces' only once, but that + ;; caused the light background faces to be computed + ;; incorrectly. See: + ;; http://permalink.gmane.org/gmane.emacs.devel/119627 + (when recompute-faces + (tty-set-up-initial-frame-faces)))))) (run-hooks 'terminal-init-xterm-hook)) @@ -666,11 +675,13 @@ (delq terminal xterm-modify-other-keys-terminal-list)) (send-string-to-terminal "\e[>4m" terminal))) -(defun xterm-set-background-mode (redc greenc bluec) +(defun xterm-maybe-set-dark-background-mode (redc greenc bluec) ;; Use the heuristic in `frame-set-background-mode' to decide if a ;; frame is dark. (when (< (+ redc greenc bluec) (* .6 (+ 65535 65535 65535))) - (set-terminal-parameter nil 'background-mode 'dark))) + (setq xterm-background-mode-changed t) + (set-terminal-parameter nil 'background-mode 'dark) + t)) ;; arch-tag: 12e7ebdd-1e6c-4b25-b0f9-35ace25e855a ;;; xterm.el ends here diff -r 66e0d01014c6 -r e3fcbe16deae lisp/textmodes/sgml-mode.el --- a/lisp/textmodes/sgml-mode.el Tue Jan 19 14:39:22 2010 -0500 +++ b/lisp/textmodes/sgml-mode.el Sun Jan 24 23:52:26 2010 -0500 @@ -608,11 +608,7 @@ "Insert a symbolic character name according to `sgml-char-names'." (interactive "*") (if sgml-name-8bit-mode - (let ((mc last-command-event)) - (if (< mc 256) - (setq mc (unibyte-char-to-multibyte mc))) - (or mc (setq mc last-command-event)) - (sgml-name-char mc)) + (sgml-name-char last-command-event) (self-insert-command 1))) (defun sgml-name-8bit-mode () diff -r 66e0d01014c6 -r e3fcbe16deae lisp/url/ChangeLog --- a/lisp/url/ChangeLog Tue Jan 19 14:39:22 2010 -0500 +++ b/lisp/url/ChangeLog Sun Jan 24 23:52:26 2010 -0500 @@ -1,3 +1,7 @@ +2010-01-23 Chong Yidong + + * url-util.el: Require url-vars (Bug#5459). + 2009-11-27 Stefan Monnier * url-parse.el (url-generic-parse-url): Bind deactivate-mark. diff -r 66e0d01014c6 -r e3fcbe16deae lisp/url/url-util.el --- a/lisp/url/url-util.el Tue Jan 19 14:39:22 2010 -0500 +++ b/lisp/url/url-util.el Sun Jan 24 23:52:26 2010 -0500 @@ -26,6 +26,7 @@ ;;; Code: (require 'url-parse) +(require 'url-vars) (eval-when-compile (require 'cl)) (autoload 'timezone-parse-date "timezone") (autoload 'timezone-make-date-arpa-standard "timezone") diff -r 66e0d01014c6 -r e3fcbe16deae lisp/vc-git.el --- a/lisp/vc-git.el Tue Jan 19 14:39:22 2010 -0500 +++ b/lisp/vc-git.el Sun Jan 24 23:52:26 2010 -0500 @@ -118,13 +118,6 @@ :version "23.1" :group 'vc) -(defcustom vc-git-add-signoff nil - "Add a Signed-off-by line when committing." - :type 'boolean - :version "23.2" - :group 'vc) - - (defvar git-commits-coding-system 'utf-8 "Default coding system for git commits.") @@ -515,7 +508,7 @@ (defun vc-git-checkin (files rev comment) (let ((coding-system-for-write git-commits-coding-system)) (vc-git-command nil 0 files "commit" - (if vc-git-add-signoff "-s") "-m" comment "--only" "--"))) + "-m" comment "--only" "--"))) (defun vc-git-find-revision (file rev buffer) (let* (process-file-side-effects @@ -766,10 +759,6 @@ (define-key map [git-ss] '(menu-item "Show Stash..." vc-git-stash-show :help "Show stash contents")) - (define-key map [git-sig] - '(menu-item "Add Signed-off-by on commit" vc-git-toggle-signoff - :help "Add Add Signed-off-by when commiting (i.e. add the -s flag)" - :button (:toggle . vc-git-add-signoff))) map)) (defun vc-git-extra-menu () vc-git-extra-menu-map) @@ -779,10 +768,6 @@ (defun vc-git-root (file) (vc-find-root file ".git")) -(defun vc-git-toggle-signoff () - (interactive) - (setq vc-git-add-signoff (not vc-git-add-signoff))) - ;; Derived from `lgrep'. (defun vc-git-grep (regexp &optional files dir) "Run git grep, searching for REGEXP in FILES in directory DIR. diff -r 66e0d01014c6 -r e3fcbe16deae src/ChangeLog --- a/src/ChangeLog Tue Jan 19 14:39:22 2010 -0500 +++ b/src/ChangeLog Sun Jan 24 23:52:26 2010 -0500 @@ -1,3 +1,52 @@ +2010-01-24 Stefan Monnier + + Try and fix bug#788, hopefully for real this time. + * keymap.c (shadow_lookup): Add `remap' arg. + (describe_map, describe_vector): Update calls to shadow_lookup. + (Fwhere_is_internal): Fix up handling of `remapped_sequences' and + `remapped' so this flag is applicable to `sequence'. Be careful to + perform remapping during shadow_lookup check of remapped_sequences. + +2010-01-24 Eric Bélanger (tiny change) + + * image.c (png_load): Use png_sig_cmp instead of the obsolete + png_check_sig, which has been removed in libpng 1.4. + +2010-01-23 Giorgos Keramidas (tiny change) + + * filelock.c: Include utmp.h only when HAVE_UTMP_H (FreeBSD 9.x + lacks this header file). + +2010-01-23 YAMAMOTO Mitsuharu + + * xdisp.c (draw_glyphs): Update `start' for left_overwritten case + as in Emacs 22. + +2010-01-22 YAMAMOTO Mitsuharu + + * lisp.h (make_pure_string): String pointer arg now points to const. + + * alloc.c (find_string_data_in_pure, make_pure_string): String pointer + args now point to const. + +2010-01-22 Eli Zaretskii + + * lread.c (Fload): Don't treat files without .elc extension as + byte-compiled if they are ``magic'', i.e. `openp' returned -2 for + them. (bug#5303) + +2010-01-20 Kenichi Handa + + * coding.c (consume_chars): If ! multibyte and the encoder is ccl, + treat the source as actual byte sequence. + +2010-01-19 Alan Mackenzie + + Fix spurious before-change-functions invocation from (insert ?\n). + * textprop.c (set_text_properties): rename parameter + `signal_after_change_p' to `coherent_change_p', and make the + invocation of `modify_region' conditional on it. + 2010-01-19 Jan Djärv * xsettings.c (apply_xft_settings): Save settings in Vxft_settings @@ -182,13 +231,6 @@ * dispnew.c (change_frame_size_1): newwidth == FRAME_COLS (f) must also be true before we can return early (bug #5339). -2010-01-08 Alan Mackenzie - - Fix spurious before-change-functions invocation from (insert ?\n). - * textprop.c (set_text_properties): rename parameter - `signal_after_change_p' to `coherent_change_p', and make the - invocation of `modify_region' conditional on it. - 2010-01-06 David Reitter * nsfns.m (ns_get_screen): Rewrite, returning NULL for non-NS. diff -r 66e0d01014c6 -r e3fcbe16deae src/alloc.c --- a/src/alloc.c Tue Jan 19 14:39:22 2010 -0500 +++ b/src/alloc.c Sun Jan 24 23:52:26 2010 -0500 @@ -4725,11 +4725,11 @@ static char * find_string_data_in_pure (data, nbytes) - char *data; + const char *data; int nbytes; { int i, skip, bm_skip[256], last_char_skip, infinity, start, start_max; - unsigned char *p; + const unsigned char *p; char *non_lisp_beg; if (pure_bytes_used_non_lisp < nbytes + 1) @@ -4740,7 +4740,7 @@ for (i = 0; i < 256; i++) bm_skip[i] = skip; - p = (unsigned char *) data; + p = (const unsigned char *) data; while (--skip > 0) bm_skip[*p++] = skip; @@ -4754,7 +4754,7 @@ infinity = pure_bytes_used_non_lisp + 1; bm_skip['\0'] = infinity; - p = (unsigned char *) non_lisp_beg + nbytes; + p = (const unsigned char *) non_lisp_beg + nbytes; start = 0; do { @@ -4796,7 +4796,7 @@ Lisp_Object make_pure_string (data, nchars, nbytes, multibyte) - char *data; + const char *data; int nchars, nbytes; int multibyte; { diff -r 66e0d01014c6 -r e3fcbe16deae src/coding.c --- a/src/coding.c Tue Jan 19 14:39:22 2010 -0500 +++ b/src/coding.c Sun Jan 24 23:52:26 2010 -0500 @@ -7417,7 +7417,8 @@ { EMACS_INT bytes; - if (coding->encoder == encode_coding_raw_text) + if (coding->encoder == encode_coding_raw_text + || coding->encoder == encode_coding_ccl) c = *src++, pos++; else if ((bytes = MULTIBYTE_LENGTH (src, src_end)) > 0) c = STRING_CHAR_ADVANCE_NO_UNIFY (src), pos += bytes; diff -r 66e0d01014c6 -r e3fcbe16deae src/filelock.c --- a/src/filelock.c Tue Jan 19 14:39:22 2010 -0500 +++ b/src/filelock.c Sun Jan 24 23:52:26 2010 -0500 @@ -63,7 +63,9 @@ #ifdef CLASH_DETECTION +#ifdef HAVE_UTMP_H #include +#endif #if !defined (S_ISLNK) && defined (S_IFLNK) #define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) diff -r 66e0d01014c6 -r e3fcbe16deae src/image.c --- a/src/image.c Tue Jan 19 14:39:22 2010 -0500 +++ b/src/image.c Sun Jan 24 23:52:26 2010 -0500 @@ -33,7 +33,7 @@ #else # include #endif -#endif +#endif #include @@ -3051,7 +3051,7 @@ int nbytes, i; /* Windows mono bitmaps are reversed compared with X. */ invertedBits = bits; - nbytes = (img->width + BITS_PER_CHAR - 1) / BITS_PER_CHAR + nbytes = (img->width + BITS_PER_CHAR - 1) / BITS_PER_CHAR * img->height; bits = (char *) alloca(nbytes); for (i = 0; i < nbytes; i++) @@ -5559,7 +5559,7 @@ /* PNG library details. */ DEF_IMGLIB_FN (png_get_io_ptr); -DEF_IMGLIB_FN (png_check_sig); +DEF_IMGLIB_FN (png_sig_cmp); DEF_IMGLIB_FN (png_create_read_struct); DEF_IMGLIB_FN (png_create_info_struct); DEF_IMGLIB_FN (png_destroy_read_struct); @@ -5590,7 +5590,7 @@ return 0; LOAD_IMGLIB_FN (library, png_get_io_ptr); - LOAD_IMGLIB_FN (library, png_check_sig); + LOAD_IMGLIB_FN (library, png_sig_cmp); LOAD_IMGLIB_FN (library, png_create_read_struct); LOAD_IMGLIB_FN (library, png_create_info_struct); LOAD_IMGLIB_FN (library, png_destroy_read_struct); @@ -5615,7 +5615,7 @@ #else #define fn_png_get_io_ptr png_get_io_ptr -#define fn_png_check_sig png_check_sig +#define fn_png_sig_cmp png_sig_cmp #define fn_png_create_read_struct png_create_read_struct #define fn_png_create_info_struct png_create_info_struct #define fn_png_destroy_read_struct png_destroy_read_struct @@ -5762,7 +5762,7 @@ /* Check PNG signature. */ if (fread (sig, 1, sizeof sig, fp) != sizeof sig - || !fn_png_check_sig (sig, sizeof sig)) + || fn_png_sig_cmp (sig, 0, sizeof sig)) { image_error ("Not a PNG file: `%s'", file, Qnil); UNGCPRO; @@ -5779,7 +5779,7 @@ /* Check PNG signature. */ if (tbr.len < sizeof sig - || !fn_png_check_sig (tbr.bytes, sizeof sig)) + || fn_png_sig_cmp (tbr.bytes, 0, sizeof sig)) { image_error ("Not a PNG image: `%s'", img->spec, Qnil); UNGCPRO; diff -r 66e0d01014c6 -r e3fcbe16deae src/keymap.c --- a/src/keymap.c Tue Jan 19 14:39:22 2010 -0500 +++ b/src/keymap.c Sun Jan 24 23:52:26 2010 -0500 @@ -2650,11 +2650,13 @@ Lisp_Object args, void *data)); /* Like Flookup_key, but uses a list of keymaps SHADOW instead of a single map. - Returns the first non-nil binding found in any of those maps. */ + Returns the first non-nil binding found in any of those maps. + If REMAP is true, pass the result of the lookup through command + remapping before returning it. */ static Lisp_Object -shadow_lookup (shadow, key, flag) - Lisp_Object shadow, key, flag; +shadow_lookup (Lisp_Object shadow, Lisp_Object key, Lisp_Object flag, + int remap) { Lisp_Object tail, value; @@ -2669,7 +2671,15 @@ return Qnil; } else if (!NILP (value)) - return value; + { + Lisp_Object remapping; + if (remap && SYMBOLP (value) + && (remapping = Fcommand_remapping (value, Qnil, shadow), + !NILP (remapping))) + return remapping; + else + return value; + } } return Qnil; } @@ -2860,30 +2870,30 @@ { /* We have a list of advertized bindings. */ while (CONSP (tem)) - if (EQ (shadow_lookup (keymaps, XCAR (tem), Qnil), definition)) + if (EQ (shadow_lookup (keymaps, XCAR (tem), Qnil, 0), definition)) return XCAR (tem); else tem = XCDR (tem); - if (EQ (shadow_lookup (keymaps, tem, Qnil), definition)) + if (EQ (shadow_lookup (keymaps, tem, Qnil, 0), definition)) return tem; } sequences = Freverse (where_is_internal (definition, keymaps, !NILP (noindirect), nomenus)); - while (CONSP (sequences)) + while (CONSP (sequences) + /* If we're at the end of the `sequences' list and we haven't + considered remapped sequences yet, copy them over and + process them. */ + || (!remapped && (sequences = remapped_sequences, + remapped = 1), + CONSP (sequences))) { Lisp_Object sequence, function; sequence = XCAR (sequences); sequences = XCDR (sequences); - if (NILP (sequences) && !remapped) - { - sequences = remapped_sequences; - remapped = 1; - } - /* Verify that this key binding is not shadowed by another binding for the same key, before we say it exists. @@ -2893,7 +2903,8 @@ Either nil or number as value from Flookup_key means undefined. */ - if (!EQ (shadow_lookup (keymaps, sequence, Qnil), definition)) + if (!EQ (shadow_lookup (keymaps, sequence, Qnil, remapped), + definition)) continue; /* If the current sequence is a command remapping with @@ -3506,7 +3517,7 @@ ASET (kludge, 0, event); if (!NILP (shadow)) { - tem = shadow_lookup (shadow, kludge, Qt); + tem = shadow_lookup (shadow, kludge, Qt, 0); if (!NILP (tem)) { /* If both bindings are keymaps, this key is a prefix key, @@ -3776,7 +3787,7 @@ { Lisp_Object tem; - tem = shadow_lookup (shadow, kludge, Qt); + tem = shadow_lookup (shadow, kludge, Qt, 0); if (!NILP (tem)) { diff -r 66e0d01014c6 -r e3fcbe16deae src/lisp.h --- a/src/lisp.h Tue Jan 19 14:39:22 2010 -0500 +++ b/src/lisp.h Sun Jan 24 23:52:26 2010 -0500 @@ -2686,7 +2686,7 @@ extern Lisp_Object make_string_from_bytes P_ ((const char *, int, int)); extern Lisp_Object make_specified_string P_ ((const char *, int, int, int)); EXFUN (Fpurecopy, 1); -extern Lisp_Object make_pure_string P_ ((char *, int, int, int)); +extern Lisp_Object make_pure_string P_ ((const char *, int, int, int)); extern Lisp_Object make_pure_c_string (const char *data); extern Lisp_Object pure_cons P_ ((Lisp_Object, Lisp_Object)); extern Lisp_Object make_pure_vector P_ ((EMACS_INT)); diff -r 66e0d01014c6 -r e3fcbe16deae src/lread.c --- a/src/lread.c Tue Jan 19 14:39:22 2010 -0500 +++ b/src/lread.c Sun Jan 24 23:52:26 2010 -0500 @@ -1155,7 +1155,7 @@ if (!bcmp (SDATA (found) + SBYTES (found) - 4, ".elc", 4) - || (version = safe_to_load_p (fd)) > 0) + || (fd >= 0 && (version = safe_to_load_p (fd)) > 0)) /* Load .elc files directly, but not when they are remote and have no handler! */ { diff -r 66e0d01014c6 -r e3fcbe16deae src/xdisp.c --- a/src/xdisp.c Tue Jan 19 14:39:22 2010 -0500 +++ b/src/xdisp.c Sun Jan 24 23:52:26 2010 -0500 @@ -20401,6 +20401,7 @@ j = i; BUILD_GLYPH_STRINGS (j, start, h, t, overlap_hl, dummy_x, last_x); + start = i; compute_overhangs_and_x (t, head->x, 1); prepend_glyph_string_lists (&head, &tail, h, t); clip_head = head; @@ -20450,6 +20451,8 @@ BUILD_GLYPH_STRINGS (end, i, h, t, overlap_hl, x, last_x); + /* Because BUILD_GLYPH_STRINGS updates the first argument, + we don't have `end = i;' here. */ compute_overhangs_and_x (h, tail->x + tail->width, 0); append_glyph_string_lists (&head, &tail, h, t); clip_tail = tail;