merge conflict

This commit is contained in:
Mark A. Hershberger 2010-01-24 23:52:26 -05:00
commit b1bb0a2570
42 changed files with 379 additions and 287 deletions

View file

@ -1,3 +1,8 @@
2010-01-23 Giorgos Keramidas <keramida@ceid.upatras.gr> (tiny change)
* configure.in: Check for utmp.h availability (FreeBSD 9.x lacks
this header file).
2010-01-12 Juanma Barranquero <lekktu@gmail.com>
* .bzrignore: Ignore all .exe, instead of individual files.

View file

@ -1,3 +1,8 @@
2010-01-20 Glenn Morris <rgm@gnu.org>
* 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 <rgm@gnu.org>
* emacs-pretesters, make-announcement: Use bug-gnu-emacs rather

View file

@ -35,15 +35,16 @@ So you need to explicitly CC him/her (and anyone else you like).
(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 @@ reporting.)
(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 @@ Resent-CC: maintainer email address, plus any X-Debbugs-CC: entries
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 @@ When you close a bug, you get a message matching:
^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 @@ tag:tag # all bugs with given tag
See <http://wiki.debian.org/bugs.debian.org/usertags>
"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 @@ bug number.
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 @@ the bug web-pages.
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 @@ needlessly held for moderation:
*** 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 @@ recipient: emacs-bug-tracker AT debbugs\.gnu\.org
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.

View file

@ -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 <http://www.gnu.org/licenses/>.
use File::Basename;
if (@ARGV < 3)
{
print <<USAGE;
revdiff FILE OLD NEW
Get a diff of FILE between revisions OLD and NEW. Store the
diff in a file named FILE-OLD-NEW.diff.
If OLD is `-' use FILE's current revision for OLD. If OLD is
`-<number>', use the Nth revision before the current one for OLD.
If NEW is +<number> or -<number>, build diffs between revisions OLD
and OLD +/- <number>.
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 = <IN>)
{
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

3
configure vendored
View file

@ -6663,13 +6663,14 @@ fi
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

View file

@ -1106,7 +1106,7 @@ AC_CHECK_HEADERS(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)
AC_MSG_CHECKING(if personality LINUX32 can be set)
AC_TRY_COMPILE([#include <sys/personality.h>], [personality (PER_LINUX32)],

View file

@ -1,8 +1,12 @@
2010-01-19 Mark A. Hershberger <mah@everybody.org>
2010-01-24 Mark A. Hershberger <mah@everybody.org>
* programs.texi (Other C Commands): Replace reference to obsolete
c-subword-mode.
2010-01-21 Glenn Morris <rgm@gnu.org>
* trouble.texi (Bugs): Fix PROBLEMS keybinding.
2010-01-12 Glenn Morris <rgm@gnu.org>
* trouble.texi (Checklist): Use bug-gnu-emacs rather than

View file

@ -419,7 +419,7 @@ to do so effectively, you must know when and how to do it.
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

View file

@ -1,4 +1,8 @@
2010-01-19 Mark A. Hershberger <mah@everybody.org>
2010-01-24 Mark A. Hershberger <mah@everybody.org>
* gnus.texi (Score File Format): Fix typo.
2010-01-21 Katsumi Yamaoka <yamaoka@jpl.org>
* cc-mode.texi: Replace references to obsolete c-subword-mode.

View file

@ -21803,7 +21803,7 @@ not be loaded, even though they would normally be so, for some reason or
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

View file

@ -322,9 +322,6 @@ backends do not support this.
**** 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.

View file

@ -1,7 +1,88 @@
2010-01-19 Mark A. Hershberger <mah@everybody.org>
2010-01-24 Mark A. Hershberger <mah@everybody.org>
* progmodes/python.el: Replace reference to obsolete c-subward-mode.
2010-01-24 Dan Nicolaescu <dann@ics.uci.edu>
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 <dpaduch@k66.ru> (tiny change)
* emacs-lisp/advice.el (ad-set-orig-definition): Fix typo
(Bug#3541).
2010-01-23 Chong Yidong <cyd@stupidchicken.com>
* emacs-lisp/assoc.el (aelement): Doc fix.
(aput, adelete, amake): Use lexical-let (Bug#5450).
2010-01-23 Stephen Leake <stephen_leake@member.fsf.org>
* 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 <michael.albinus@gmx.de>
* net/tramp-smb.el (tramp-smb-conf): New defcustom.
(tramp-smb-maybe-open-connection): Use it.
2010-01-22 Michael Albinus <michael.albinus@gmx.de>
* net/tramp-imap.el (top): Autoload needed packages. (Bug#5448)
2010-01-22 Stefan Monnier <monnier@iro.umontreal.ca>
* 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 <cyd@stupidchicken.com>
* isearch.el (isearch-allow-scroll): Doc fix (Bug#5446).
2010-01-22 Eli Zaretskii <eliz@gnu.org>
* 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 <acm@muc.de>
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 <handa@m17n.org>
* 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 <cyd@stupidchicken.com>
* term.el (term-send-raw-meta): Revert 2009-12-04 change (Bug#5330).
2010-01-20 Glenn Morris <rgm@gnu.org>
* indent.el (tab-always-indent): Fix custom-type.
2010-01-19 Alan Mackenzie <acm@muc.de>
* 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 <stephen_leake@member.fsf.org>
* lisp/progmodes/ada-mode.el: Fix bug#5400.

View file

@ -2308,7 +2308,7 @@ Use \\[dired-hide-all] to (un)hide all directories."
(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."

View file

@ -3517,7 +3517,7 @@ Ask means pop up a menu for the user to select one of copy, move or link."
;;;;;; 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 @@ 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.
\(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.

View file

@ -2191,7 +2191,7 @@ Redefining advices affect the construction of an advised definition."
(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)))

View file

@ -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 <bwarsaw@cen.com>
;; 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 @@ sorted list."
(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 @@ If VALUE is not supplied, or is nil, the key-value pair will not be
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 @@ of the alist (with value nil if VALUE is nil or not supplied)."
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 @@ KEYLIST and VALUELIST should have the same number of elements, but
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

View file

@ -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 @@ was already indented, then try to complete the thing at point.
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.

View file

@ -1754,7 +1754,10 @@ Scroll-bar or mode-line events are processed appropriately."
(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)

View file

@ -590,7 +590,14 @@ There should be no more than seven characters after the final `/'."
(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)))

View file

@ -133,6 +133,8 @@ If NOERROR is non-nil, return t if successful.
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

View file

@ -2727,7 +2727,8 @@ The current mail message becomes the message displayed."
(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 @@ With prefix argument N moves forward N messages with these labels.
;;;***
;;;### (autoloads (rmail-mime) "rmailmm" "rmailmm.el" "d196de6dfb74fe87a3d02189096b795f")
;;;### (autoloads (rmail-mime) "rmailmm" "rmailmm.el" "93033f2136fcd111e2b52a116ff4cf29")
;;; Generated autoloads from rmailmm.el
(autoload 'rmail-mime "rmailmm" "\

View file

@ -361,7 +361,10 @@ The parsed header value:
(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))

View file

@ -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 @@ KEY-ID can be 'SYM or 'PIN among others."
(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))

View file

@ -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 @@ connection if a previous connection has died for some reason."
(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

View file

@ -257,7 +257,7 @@ Note that indentation is calculated only if `ada-indent-comment-as-code' is t.
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 @@ Return nil if the private is part of the package name, as in
(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 @@ Return nil if the private is part of the package name, as in
;; 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)

View file

@ -1217,12 +1217,14 @@ been put there by c-put-char-property. POINT remains unchanged."
;; 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.

View file

@ -2996,9 +2996,11 @@ comment at the start of cc-engine.el for more info."
;; 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 @@ comment at the start of cc-engine.el for more info."
(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.

View file

@ -1208,8 +1208,17 @@ without any interpretation."
(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))

View file

@ -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 @@ versions of xterm."
(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

View file

@ -608,11 +608,7 @@ Uses `sgml-char-names'."
"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 ()

View file

@ -1,3 +1,7 @@
2010-01-23 Chong Yidong <cyd@stupidchicken.com>
* url-util.el: Require url-vars (Bug#5459).
2009-11-27 Stefan Monnier <monnier@iro.umontreal.ca>
* url-parse.el (url-generic-parse-url): Bind deactivate-mark.

View file

@ -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")

View file

@ -118,13 +118,6 @@ If nil, use the value of `vc-diff-switches'. If t, use no switches."
: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 @@ If nil, use the value of `vc-diff-switches'. If t, use no switches."
(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 @@ or BRANCH^ (where \"^\" can be repeated)."
(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 @@ or BRANCH^ (where \"^\" can be repeated)."
(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.

View file

@ -1,3 +1,52 @@
2010-01-24 Stefan Monnier <monnier@iro.umontreal.ca>
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 <snowmaniscool@gmail.com> (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 <keramida@ceid.upatras.gr> (tiny change)
* filelock.c: Include utmp.h only when HAVE_UTMP_H (FreeBSD 9.x
lacks this header file).
2010-01-23 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
* xdisp.c (draw_glyphs): Update `start' for left_overwritten case
as in Emacs 22.
2010-01-22 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
* 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 <eliz@gnu.org>
* 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 <handa@m17n.org>
* coding.c (consume_chars): If ! multibyte and the encoder is ccl,
treat the source as actual byte sequence.
2010-01-19 Alan Mackenzie <acm@muc.de>
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 <jan.h.d@swipnet.se>
* 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 <acm@muc.de>
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 <david.reitter@gmail.com>
* nsfns.m (ns_get_screen): Rewrite, returning NULL for non-NS.

View file

@ -4725,11 +4725,11 @@ check_pure_size ()
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 @@ find_string_data_in_pure (data, nbytes)
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 @@ find_string_data_in_pure (data, nbytes)
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 @@ find_string_data_in_pure (data, nbytes)
Lisp_Object
make_pure_string (data, nchars, nbytes, multibyte)
char *data;
const char *data;
int nchars, nbytes;
int multibyte;
{

View file

@ -7417,7 +7417,8 @@ consume_chars (coding, translation_table, max_lookup)
{
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;

View file

@ -63,7 +63,9 @@ Lisp_Object Vtemporary_file_directory;
#ifdef CLASH_DETECTION
#ifdef HAVE_UTMP_H
#include <utmp.h>
#endif
#if !defined (S_ISLNK) && defined (S_IFLNK)
#define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)

View file

@ -33,7 +33,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#else
# include <png.h>
#endif
#endif
#endif
#include <setjmp.h>
@ -3051,7 +3051,7 @@ xbm_load (f, img)
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_image_p (object)
/* 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 @@ init_png_functions (Lisp_Object libraries)
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 @@ init_png_functions (Lisp_Object libraries)
#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 @@ png_load (f, img)
/* 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 @@ png_load (f, img)
/* 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;

View file

@ -2650,11 +2650,13 @@ static void where_is_internal_1 P_ ((Lisp_Object key, Lisp_Object binding,
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 @@ shadow_lookup (shadow, key, flag)
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 @@ remapped command in the returned list. */)
{
/* 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 @@ remapped command in the returned list. */)
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 @@ describe_map (map, prefix, elt_describer, partial, shadow,
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 @@ describe_vector (vector, prefix, args, elt_describer,
{
Lisp_Object tem;
tem = shadow_lookup (shadow, kludge, Qt);
tem = shadow_lookup (shadow, kludge, Qt, 0);
if (!NILP (tem))
{

View file

@ -2686,7 +2686,7 @@ extern Lisp_Object make_uninit_multibyte_string P_ ((int, int));
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));

View file

@ -1155,7 +1155,7 @@ Return t if the file exists and loads successfully. */)
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! */
{

View file

@ -20401,6 +20401,7 @@ draw_glyphs (w, x, row, area, start, end, hl, overlaps)
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 @@ draw_glyphs (w, x, row, area, start, end, hl, overlaps)
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;