Importing Pterodactyl Gnus v0.95.
[elisp/gnus.git-] / lisp / gnus-cache.el
index bc1f221..0f009f3 100644 (file)
@@ -77,7 +77,7 @@ it's not cached."
 (defvar gnus-cache-overview-coding-system 'raw-text
   "Coding system used on Gnus cache files.")
 
-(defvar gnus-cache-coding-system 'binary
+(defvar gnus-cache-coding-system 'raw-text
   "Coding system used on Gnus cache files.")
 
 \f
@@ -180,6 +180,8 @@ it's not cached."
              (gnus-request-article-this-buffer number group))
            (when (> (buffer-size) 0)
              (gnus-write-buffer file)
+             (setq headers (nnheader-parse-head t))
+             (mail-header-set-number headers number)
              (gnus-cache-change-buffer group)
              (set-buffer (cdr gnus-cache-buffer))
              (goto-char (point-max))
@@ -302,7 +304,9 @@ it's not cached."
            ;; unsuccessful), so we use the cached headers exclusively.
            (set-buffer nntp-server-buffer)
            (erase-buffer)
-           (insert-file-contents cache-file)
+           (let ((coding-system-for-read 
+                  gnus-cache-overview-coding-system))
+             (insert-file-contents cache-file))
            'nov)
           ((eq type 'nov)
            ;; We have both cached and uncached NOV headers, so we
@@ -390,7 +394,7 @@ Returns the list of articles removed."
       (erase-buffer)
       (let ((file (gnus-cache-file-name group ".overview")))
        (when (file-exists-p file)
-         (nnheader-insert-file-contents file)))
+         (mm-insert-file-contents file)))
       ;; We have a fresh (empty/just loaded) buffer,
       ;; mark it as unmodified to save a redundant write later.
       (set-buffer-modified-p nil))))
@@ -478,7 +482,10 @@ Returns the list of articles removed."
     (save-excursion
       (set-buffer cache-buf)
       (erase-buffer)
-      (insert-file-contents (or file (gnus-cache-file-name group ".overview")))
+      (let ((coding-system-for-read 
+           gnus-cache-overview-coding-system))
+       (insert-file-contents 
+        (or file (gnus-cache-file-name group ".overview"))))
       (goto-char (point-min))
       (insert "\n")
       (goto-char (point-min)))
@@ -520,7 +527,9 @@ Returns the list of articles removed."
       (save-excursion
        (set-buffer cache-buf)
        (erase-buffer)
-       (insert-file-contents (gnus-cache-file-name group (car cached)))
+       (let ((coding-system-for-read 
+              gnus-cache-coding-system))
+         (insert-file-contents (gnus-cache-file-name group (car cached))))
        (goto-char (point-min))
        (insert "220 ")
        (princ (car cached) (current-buffer))
@@ -583,14 +592,7 @@ $ emacs -batch -l ~/.emacs -l gnus -f gnus-jog-cache"
   (when (or force
            (and gnus-cache-active-hashtb
                 gnus-cache-active-altered))
-    (with-temp-file gnus-cache-active-file
-      (mapatoms
-       (lambda (sym)
-        (when (and sym (boundp sym))
-          (insert (format "%s %d %d y\n"
-                          (symbol-name sym) (cdr (symbol-value sym))
-                          (car (symbol-value sym))))))
-       gnus-cache-active-hashtb))
+    (gnus-write-active-file gnus-cache-active-file gnus-cache-active-hashtb)
     ;; Mark the active hashtb as unaltered.
     (setq gnus-cache-active-altered nil)))