emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 0e6f462: Don't try to add nil packages on refresh


From: Stefan Kangas
Subject: [Emacs-diffs] master 0e6f462: Don't try to add nil packages on refresh
Date: Sun, 20 Oct 2019 18:01:40 -0400 (EDT)

branch: master
commit 0e6f4628d8fff53505e4399e71da9f531a64fff7
Author: Stefan Kangas <address@hidden>
Commit: Stefan Kangas <address@hidden>

    Don't try to add nil packages on refresh
    
    * lisp/emacs-lisp/package.el (package-read-archive-contents): Don't
    try to add nil entries.  Warn instead.  (Bug#28502)
    * test/lisp/emacs-lisp/package-tests.el
    (package-test-update-archives/ignore-nil-entry): New test.
    * test/lisp/emacs-lisp/package-resources/with-nil-entry/archive-contents:
    New file.
---
 lisp/emacs-lisp/package.el                                     |  5 ++++-
 .../package-resources/with-nil-entry/archive-contents          |  8 ++++++++
 test/lisp/emacs-lisp/package-tests.el                          | 10 ++++++++++
 3 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
index 2046206..645e831 100644
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -1520,7 +1520,10 @@ If the archive version is too new, signal an error."
          (contents (package--read-archive-file contents-file)))
     (when contents
       (dolist (package contents)
-        (package--add-to-archive-contents package archive)))))
+        (if package
+            (package--add-to-archive-contents package archive)
+          (lwarn '(package refresh) :warning
+                 "Ignoring `nil' package on `%s' package archive" archive))))))
 
 (defvar package--old-archive-priorities nil
   "Store currently used `package-archive-priorities'.
diff --git 
a/test/lisp/emacs-lisp/package-resources/with-nil-entry/archive-contents 
b/test/lisp/emacs-lisp/package-resources/with-nil-entry/archive-contents
new file mode 100644
index 0000000..03e6aa7
--- /dev/null
+++ b/test/lisp/emacs-lisp/package-resources/with-nil-entry/archive-contents
@@ -0,0 +1,8 @@
+(1
+ (foo .
+      [(1 0)
+      nil "foo package" single])
+ nil
+ (bar .
+      [(1 0)
+      nil "bar package" single]))
diff --git a/test/lisp/emacs-lisp/package-tests.el 
b/test/lisp/emacs-lisp/package-tests.el
index 8670e6f..828c456 100644
--- a/test/lisp/emacs-lisp/package-tests.el
+++ b/test/lisp/emacs-lisp/package-tests.el
@@ -452,6 +452,16 @@ Must called from within a `tar-mode' buffer."
              (search-forward-regexp "^ +simple-single" nil t))))
       (if (process-live-p process) (kill-process process)))))
 
+(ert-deftest package-test-update-archives/ignore-nil-entry ()
+  "Ignore any packages that are nil.  Test for Bug#28502."
+  (with-package-test ()
+    (let* ((with-nil-entry (expand-file-name "package-resources/with-nil-entry"
+                                             package-test-file-dir))
+           (package-archives `(("with-nil-entry" . ,with-nil-entry))))
+      (package-initialize)
+      (package-refresh-contents)
+      (should (equal (length package-archive-contents) 2)))))
+
 (ert-deftest package-test-describe-package ()
   "Test displaying help for a package."
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]