`((mmdf
(article-begin . "^\^A\^A\^A\^A\n")
(body-end . "^\^A\^A\^A\^A\n"))
+ (mime-digest
+ (article-begin . "")
+ (head-begin . "^ ?\n")
+ (head-end . "^ ?$")
+ (body-end . "")
+ (file-end . "")
+ (subtype digest guess))
(mime-parts
(generate-head-function . nndoc-generate-mime-parts-head)
(article-transform-function . nndoc-transform-mime-parts))
(head-end . "^\t")
(generate-head-function . nndoc-generate-clari-briefs-head)
(article-transform-function . nndoc-transform-clari-briefs))
- (mime-digest
- (article-begin . "")
- (head-begin . "^ ?\n")
- (head-end . "^ ?$")
- (body-end . "")
- (file-end . "")
- (subtype digest guess))
+
(standard-digest
(first-article . ,(concat "^" (make-string 70 ?-) "\n *\n+"))
(article-begin . ,(concat "^\n" (make-string 30 ?-) "\n *\n+"))
(error "Document is not of any recognized type"))
(if result
(car entry)
- (cadar (sort results 'car-less-than-car)))))
+ (cadar (last (sort results 'car-less-than-car))))))
;;;
;;; Built-in type predicates and functions
"Go through the document and partition it into heads/bodies/articles."
(let ((i 0)
(first t)
- head-begin head-end body-begin body-end)
+ art-begin head-begin head-end body-begin body-end)
(setq nndoc-dissection-alist nil)
(save-excursion
(set-buffer nndoc-current-buffer)
;; Go through the file.
(while (if (and first nndoc-first-article)
(nndoc-search nndoc-first-article)
- (nndoc-article-begin))
- (setq first nil)
+ (if art-begin
+ (goto-char art-begin)
+ (nndoc-article-begin)))
+ (setq first nil
+ art-begin nil)
(cond (nndoc-head-begin-function
(funcall nndoc-head-begin-function))
(nndoc-head-begin
(funcall nndoc-body-end-function))
(and nndoc-body-end
(nndoc-search nndoc-body-end))
- (nndoc-article-begin)
+ (and (nndoc-article-begin)
+ (setq art-begin (point)))
(progn
(goto-char (point-max))
(when nndoc-file-end