]> code.delx.au - gnu-emacs/commitdiff
Merge from emacs-24
authorStefan Monnier <monnier@iro.umontreal.ca>
Thu, 2 Oct 2014 15:13:05 +0000 (11:13 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Thu, 2 Oct 2014 15:13:05 +0000 (11:13 -0400)
doc/emacs/ChangeLog
doc/emacs/package.texi
lisp/ChangeLog
lisp/emacs-lisp/package.el
lisp/gnus/ChangeLog
lisp/progmodes/python.el
src/ChangeLog
src/xfaces.c
test/ChangeLog
test/automated/package-test.el

index 44e8e5871fae860440baba812acc06f100e5a325..c384eeb842542f994401a016b53fc56c8eb0888f 100644 (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.
index 90bdafe456a9a11d1f4143d42de3d8b1742fe13f..1af90edd953880822d9cd5f3710357f5e62cfd9d 100644 (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
index 0d1ec7033b0d55f843504b4daa9767db705da7ec..aa8ce36325d793fca981c5ed17c52bb7b84b9754 100644 (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).
index 4832673b95cd8fa19d070685b06c8bd663eb82a5..10944f8153480f18610470221a1c98aae0bb660e 100644 (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)
index 7e6137226b5de1e73616f78a4e11496d0f083afc..be60d7777c4bc1484a43419913cff82dfbfa3492 100644 (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
index 6c11a4789424f2549f56563cbfe0dddcb982449b..f6e1021c86a83eef5faeba1a3fcb70b9ae8cdfc0 100644 (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
index 2a4ce099021454303129531d01fa16b02bf21cff..eb578278bea071d888824dc120b46d5248537719 100644 (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
        * 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.
 
        * 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.
index 73704bbba8eb1f0b2aa4606842b48204e2e0a97e..6afa0a2953d9bc39790c922965b700fe2f71c59b 100644 (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);
index 041ed7c175451681cb6196d0f86a8426266a5772..fb3bd746a73d0d0509eaddb4dd04f19bb38bcf8c 100644 (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
index b970cd7c9f80064ebc8f61bd68cbeaa0616bc2a8..a0c1359b13288ad67ad92e6ca274c824534a39f5 100644 (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)))