Merge from emacs-24
This commit is contained in:
commit
d7f413b893
10 changed files with 91 additions and 43 deletions
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
29
src/xfaces.c
29
src/xfaces.c
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)))
|
||||
|
|
Loading…
Add table
Reference in a new issue