Mercurial > emacs
changeset 14603:b9daaf52fc01
(nnheader-insert-head): Make sure the entire head of
the article is inserted.
author | Karl Heuer <kwzh@gnu.org> |
---|---|
date | Tue, 20 Feb 1996 19:17:30 +0000 |
parents | 830d54a0d39b |
children | ab3a6813575a |
files | lisp/nnheader.el |
diffstat | 1 files changed, 16 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/nnheader.el Tue Feb 20 19:15:28 1996 +0000 +++ b/lisp/nnheader.el Tue Feb 20 19:17:30 1996 +0000 @@ -188,14 +188,23 @@ (set (car (car state)) (nth 1 (car state))) (setq state (cdr state)))) -;; Read the head of an article. +(defvar nnheader-max-head-length 4096 + "The maximum length of a HEAD.") + (defun nnheader-insert-head (file) - (let ((beg 0) - (chop 1024)) - (while (and (eq chop (nth 1 (nnheader-insert-file-contents-literally - file nil beg (setq beg (+ chop beg))))) - (prog1 (not (search-backward "\n\n" nil t)) - (goto-char (point-max))))))) + "Insert the head of the article." + (if (eq nnheader-max-head-length t) + ;; Just read the entire file. + (insert-file-contents-literally file) + ;; Read 1K blocks until we find a separator. + (let ((beg 0) + (chop 1024)) + (while (and (eq chop (nth 1 (insert-file-contents-literally + file nil beg (setq beg (+ beg chop))))) + (prog1 (not (search-forward "\n\n" nil t)) + (goto-char (point-max))) + (or (null nnheader-max-head-length) + (< beg nnheader-max-head-length))))))) (defun nnheader-article-p () (goto-char (point-min))