Merge from emacs-24

This commit is contained in:
Stefan Monnier 2014-10-02 11:13:05 -04:00
commit d7f413b893
10 changed files with 91 additions and 43 deletions

View file

@ -1,3 +1,7 @@
2014-10-02 Glenn Morris <rgm@gnu.org>
* package.texi (Package Installation): Mention etc/package-keyring.gpg.
2014-09-29 Eli Zaretskii <eliz@gnu.org>
* emacsver.texi (EMACSVER): Bump to 20.0.50.

View file

@ -184,11 +184,8 @@ key from a server such as @url{http://pgp.mit.edu/}.
Use @kbd{M-x package-import-keyring} to import the key into Emacs.
Emacs stores package keys in the @file{gnupg} subdirectory
of @code{package-user-dir}.
@c Uncomment this if it becomes true.
@ignore
The public key for the GNU package archive is distributed with Emacs,
in the @file{etc/package-keyring.gpg}. Emacs uses it automatically.
@end ignore
@vindex package-check-signature
@vindex package-unsigned-archives

View file

@ -1,3 +1,15 @@
2014-10-02 Glenn Morris <rgm@gnu.org>
* emacs-lisp/package.el (package-import-keyring):
Create gnupg directory private. (Bug#17625#155)
2014-10-02 Stefan Monnier <monnier@iro.umontreal.ca>
* progmodes/python.el (python-shell-completion-get-completions):
Use python-shell--prompt-calculated-input-regexp from the
process buffer (bug#18582).
Don't assume that `line' comes from the process buffer.
2014-10-02 Stefan Monnier <monnier@iro.umontreal.ca>
* frame.el: Use lexical-binding (bug#18598).

View file

@ -289,6 +289,8 @@ contrast, `package-user-dir' contains packages for personal use."
:group 'package
:version "24.1")
(defvar epg-gpg-program)
(defcustom package-check-signature
(if (progn (require 'epg-config) (executable-find epg-gpg-program))
'allow-unsigned)
@ -1299,7 +1301,8 @@ similar to an entry in `package-alist'. Save the cached copy to
(setq file (expand-file-name file))
(let ((context (epg-make-context 'OpenPGP))
(homedir (expand-file-name "gnupg" package-user-dir)))
(make-directory homedir t)
(with-file-modes 448
(make-directory homedir t))
(epg-context-set-home-directory context homedir)
(message "Importing %s..." (file-name-nondirectory file))
(epg-import-keys-from-file context file)

View file

@ -1,3 +1,8 @@
2014-10-02 Daiki Ueno <ueno@gnu.org>
* mml.el (mml-parse-1): Error out if unknown mode is specified in
<#secure> tag (bug#18513).
2014-09-29 Daiki Ueno <ueno@gnu.org>
* mml.el (mml-parse-1): Error out if unknown mode is specified in

View file

@ -2888,31 +2888,30 @@ the full statement in the case of imports."
"Do completion at point using PROCESS for IMPORT or INPUT.
When IMPORT is non-nil takes precedence over INPUT for
completion."
(let* ((prompt
(with-current-buffer (process-buffer process)
(with-current-buffer (process-buffer process)
(let* ((prompt
(let ((prompt-boundaries (python-util-comint-last-prompt)))
(buffer-substring-no-properties
(car prompt-boundaries) (cdr prompt-boundaries)))))
(completion-code
;; Check whether a prompt matches a pdb string, an import
;; statement or just the standard prompt and use the
;; correct python-shell-completion-*-code string
(cond ((and (string-match
(concat "^" python-shell-prompt-pdb-regexp) prompt))
;; Since there are no guarantees the user will remain
;; in the same context where completion code was sent
;; (e.g. user steps into a function), safeguard
;; resending completion setup continuously.
(concat python-shell-completion-setup-code
"\nprint (" python-shell-completion-string-code ")"))
((string-match
python-shell--prompt-calculated-input-regexp prompt)
python-shell-completion-string-code)
(t nil)))
(subject (or import input)))
(and completion-code
(> (length input) 0)
(with-current-buffer (process-buffer process)
(car prompt-boundaries) (cdr prompt-boundaries))))
(completion-code
;; Check whether a prompt matches a pdb string, an import
;; statement or just the standard prompt and use the
;; correct python-shell-completion-*-code string
(cond ((and (string-match
(concat "^" python-shell-prompt-pdb-regexp) prompt))
;; Since there are no guarantees the user will remain
;; in the same context where completion code was sent
;; (e.g. user steps into a function), safeguard
;; resending completion setup continuously.
(concat python-shell-completion-setup-code
"\nprint (" python-shell-completion-string-code ")"))
((string-match
python-shell--prompt-calculated-input-regexp prompt)
python-shell-completion-string-code)
(t nil)))
(subject (or import input)))
(and completion-code
(> (length input) 0)
(let ((completions
(python-util-strip-string
(python-shell-send-string-no-output

View file

@ -1,3 +1,9 @@
2014-10-02 Jan Djärv <jan.h.d@swipnet.se>
* xfaces.c (Finternal_set_lisp_face_attribute): Don't try to
make a font_object from a tty frame (Bug#18573).
(Finternal_set_lisp_face_attribute): Add FIXME comment.
2014-10-02 Dmitry Antipov <dmantipov@yandex.ru>
* alloc.c (mark_overlay): Assume that overlay boundaries are
@ -398,7 +404,7 @@
* macfont.m (macfont_close): Release and free font-specific data
only if it wasn't previously freed.
2014-09-22 David Caldwell <david@porkrind.org> (tiny change)
2014-09-22 David Caldwell <david@porkrind.org> (tiny change)
* unexmacosx.c (dump_it): Improve error message.
@ -9808,7 +9814,7 @@
* eval.c (Ffuncall): Fix handling of ((lambda ..) ..) in lexically
scoped code (bug#11258).
2013-08-28 Davor Cubranic <cubranic@stat.ubc.ca> (tiny change)
2013-08-28 Davor Cubranic <cubranic@stat.ubc.ca> (tiny change)
* nsterm.m (last_window): New variable.
(EV_TRAILER2): New macro.

View file

@ -3112,17 +3112,26 @@ FRAME 0 means change the face on all frames, and change the default
f = XFRAME (selected_frame);
else
f = XFRAME (frame);
if (! FONT_OBJECT_P (value))
{
Lisp_Object *attrs = XVECTOR (lface)->contents;
Lisp_Object font_object;
font_object = font_load_for_lface (f, attrs, value);
if (NILP (font_object))
signal_error ("Font not available", value);
value = font_object;
}
set_lface_from_font (f, lface, value, 1);
/* FIXME:
If frame is t, and selected frame is a tty frame, the font
can't be realized. An improvement would be to loop over frames
for a non-tty frame and use that. See discussion in
bug#18573. */
if (f->terminal->type != output_termcap)
{
if (! FONT_OBJECT_P (value))
{
Lisp_Object *attrs = XVECTOR (lface)->contents;
Lisp_Object font_object;
font_object = font_load_for_lface (f, attrs, value);
if (NILP (font_object))
signal_error ("Font not available", value);
value = font_object;
}
set_lface_from_font (f, lface, value, 1);
}
}
else
ASET (lface, LFACE_FONT_INDEX, value);

View file

@ -1,3 +1,10 @@
2014-10-02 Glenn Morris <rgm@gnu.org>
* automated/package-test.el (with-package-test, package-test-signed):
Also set HOME to a temp value, in case the real one is absent (e.g.
hydra) or read-only. (Bug#18575)
(package-test-signed): Use skip-unless rather than expected-result.
2014-09-26 Leo Liu <sdl.web@gmail.com>
* automated/cl-lib.el (cl-digit-char-p, cl-parse-integer): New

View file

@ -89,6 +89,8 @@
"Set up temporary locations and variables for testing."
(declare (indent 1))
`(let* ((package-test-user-dir (make-temp-file "pkg-test-user-dir-" t))
(process-environment (cons (format "HOME=%s" package-test-user-dir)
process-environment))
(package-user-dir package-test-user-dir)
(package-archives `(("gnu" . ,package-test-data-dir)))
(old-yes-no-defn (symbol-function 'yes-or-no-p))
@ -361,11 +363,15 @@ Must called from within a `tar-mode' buffer."
(ert-deftest package-test-signed ()
"Test verifying package signature."
:expected-result (condition-case nil
(progn
(skip-unless (ignore-errors
(let ((homedir (make-temp-file "package-test" t)))
(unwind-protect
(let ((process-environment
(cons (format "HOME=%s" homedir)
process-environment)))
(epg-check-configuration (epg-configuration))
:passed)
(error :failed))
t)
(delete-directory homedir t)))))
(let* ((keyring (expand-file-name "key.pub" package-test-data-dir))
(package-test-data-dir
(expand-file-name "data/package/signed" package-test-file-dir)))