emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] master 47e8285 1/5: Make nndoc more resilient against corr


From: Lars Ingebrigtsen
Subject: [Emacs-diffs] master 47e8285 1/5: Make nndoc more resilient against corrupted files
Date: Thu, 26 Jan 2017 22:12:40 +0000 (UTC)

branch: master
commit 47e82854ba12d5ac79ed66b90ba727e1b1c44d52
Author: Lars Ingebrigtsen <address@hidden>
Commit: Lars Ingebrigtsen <address@hidden>

    Make nndoc more resilient against corrupted files
    
    * lisp/gnus/nndoc.el (nndoc-possibly-change-buffer): Don't bug
    out on invalid files, like invalid .gz files (bug#21538).
    This may hinder Gnus from starting up.
---
 lisp/gnus/nndoc.el |   20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git a/lisp/gnus/nndoc.el b/lisp/gnus/nndoc.el
index ede118d..7f7db87 100644
--- a/lisp/gnus/nndoc.el
+++ b/lisp/gnus/nndoc.el
@@ -356,14 +356,18 @@ from the document.")
       (setq nndoc-dissection-alist nil)
       (with-current-buffer nndoc-current-buffer
        (erase-buffer)
-       (if (and (stringp nndoc-address)
-                (string-match nndoc-binary-file-names nndoc-address))
-           (let ((coding-system-for-read 'binary))
-             (mm-insert-file-contents nndoc-address))
-         (if (stringp nndoc-address)
-             (nnheader-insert-file-contents nndoc-address)
-           (insert-buffer-substring nndoc-address))
-         (run-hooks 'nndoc-open-document-hook)))))
+       (condition-case error
+           (if (and (stringp nndoc-address)
+                    (string-match nndoc-binary-file-names nndoc-address))
+               (let ((coding-system-for-read 'binary))
+                 (mm-insert-file-contents nndoc-address))
+             (if (stringp nndoc-address)
+                 (nnheader-insert-file-contents nndoc-address)
+               (insert-buffer-substring nndoc-address))
+             (run-hooks 'nndoc-open-document-hook))
+         (file-error
+          (nnheader-report 'nndoc "Couldn't open %s: %s"
+                           group error))))))
     ;; Initialize the nndoc structures according to this new document.
     (when (and nndoc-current-buffer
               (not nndoc-dissection-alist))



reply via email to

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