Sync up with Pterodactyl Gnus v0.68.
[elisp/gnus.git-] / lisp / nnfolder.el
index 8f9b57b..9160dd5 100644 (file)
@@ -90,6 +90,7 @@ time saver for large mailboxes.")
 (defvoo nnfolder-buffer-alist nil)
 (defvoo nnfolder-scantime-alist nil)
 (defvoo nnfolder-active-timestamp nil)
+(defvoo nnfolder-file-coding-system nnmail-file-coding-system-1)
 
 \f
 
@@ -299,7 +300,10 @@ time saver for large mailboxes.")
       (set-buffer nnfolder-current-buffer)
       (while (and articles is-old)
        (goto-char (point-min))
-       (when (nnfolder-goto-article (car articles))
+       (when (and (nnfolder-goto-article (car articles))
+                  (search-forward (concat "\n" nnfolder-article-marker)
+                                  nil t))
+         (forward-sexp)
          (if (setq is-old
                    (nnmail-expired-article-p
                     newsgroup
@@ -328,7 +332,6 @@ time saver for large mailboxes.")
        (nnfolder-request-article article group server)
        (save-excursion
         (set-buffer buf)
-        (buffer-disable-undo (current-buffer))
         (erase-buffer)
         (insert-buffer-substring nntp-server-buffer)
         (goto-char (point-min))
@@ -683,7 +686,10 @@ deleted.  Point is left where the deleted region was."
 
 (defun nnfolder-read-folder (group)
   (let* ((file (nnfolder-group-pathname group))
-        (buffer (set-buffer (nnheader-find-file-noselect file))))
+        (buffer (set-buffer 
+                 (let ((nnmail-file-coding-system 
+                        nnfolder-file-coding-system))
+                   (nnheader-find-file-noselect file)))))
     (if (equal (cadr (assoc group nnfolder-scantime-alist))
               (nth 5 (file-attributes file)))
        ;; This looks up-to-date, so we don't do any scanning.
@@ -705,7 +711,7 @@ deleted.  Point is left where the deleted region was."
              (minid (lsh -1 -1))
              maxid start end newscantime
              buffer-read-only)
-         (buffer-disable-undo (current-buffer))
+         (buffer-disable-undo)
          (setq maxid (cdr active))
          (goto-char (point-min))