;;; nnheader.el --- header access macros for Gnus and its backends
-;; Copyright (C) 1987,88,89,90,93,94,95,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 198,997,88,89,90,93,94,95,96,97,98 Free Software Foundation, Inc.
;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
;; Lars Magne Ingebrigtsen <larsi@gnus.org>
(if (numberp num) num 0)))
(or (eobp) (forward-char 1))))
+(defmacro nnheader-nov-parse-extra ()
+ '(let (out string)
+ (while (not (memq (char-after) '(?\n nil)))
+ (setq string (nnheader-nov-field))
+ (when (string-match "^\\([^ :]+\\): " string)
+ (push (cons (intern (match-string 1 string))
+ (substring string (match-end 0)))
+ out)))
+ out))
+
(defun nnheader-parse-nov ()
(let ((eol (gnus-point-at-eol)))
(vector
(if (eq (char-after) ?\n)
nil
(nnheader-nov-field)) ; misc
- )))
+ (nnheader-nov-parse-extra)))) ; extra
(defun nnheader-insert-nov (header)
(princ (mail-header-number header) (current-buffer))
(insert "\t")
(princ (or (mail-header-lines header) 0) (current-buffer))
(insert "\t")
+ (when (mail-header-xref header)
+ (insert "Xref: " (mail-header-xref header)))
(when (or (mail-header-xref header)
(mail-header-extra header))
- (insert "Xref: " (mail-header-xref header) "\t"))
+ (insert "\t"))
(when (mail-header-extra header)
(let ((extra (mail-header-extra header)))
(while extra
(insert (symbol-name (caar extra))
- ": " (cdar extra) "\t"))))
+ ": " (cdar extra) "\t")
+ (pop extra))))
(insert "\n"))
(defun nnheader-insert-article-line (article)
(when (string-match (car ange-ftp-path-format) path)
(ange-ftp-re-read-dir path)))))
-(defvar nnheader-file-coding-system 'no-conversion
+(defvar nnheader-file-coding-system 'binary
"Coding system used in file backends of Gnus.")
(defun nnheader-insert-file-contents (filename &optional visit beg end replace)