]> code.delx.au - gnu-emacs/blobdiff - lisp/gnus/yenc.el
Merge from emacs--rel--22
[gnu-emacs] / lisp / gnus / yenc.el
index 4b01612d04c27adaa55905d7cf585cf8798cb83f..a1cfa99ef004879a628da862527b4b07197c80e7 100644 (file)
@@ -1,6 +1,6 @@
 ;;; yenc.el --- elisp native yenc decoder
 
-;; Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+;; Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 
 ;; Author: Jesper Harder <harder@ifa.au.dk>
 ;; Keywords: yenc news
@@ -9,7 +9,7 @@
 
 ;; GNU Emacs is free software; you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
+;; the Free Software Foundation; either version 3, or (at your option)
 ;; any later version.
 
 ;; GNU Emacs is distributed in the hope that it will be useful,
        191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207
        208 209 210 211 212 213])
 
+(defun yenc-first-part-p ()
+  "Say whether the buffer contains the first part of a yEnc file."
+  (save-excursion
+    (goto-char (point-min))
+    (re-search-forward "^=ybegin part=1 " nil t)))
+
+(defun yenc-last-part-p ()
+  "Say whether the buffer contains the last part of a yEnc file."
+  (save-excursion
+    (goto-char (point-min))
+    (let (total-size end-size)
+      (when (re-search-forward "^=ybegin.*size=\\([0-9]+\\)" nil t)
+       (setq total-size (match-string 1)))
+      (when (re-search-forward "^=ypart.*end=\\([0-9]+\\)" nil t)
+       (setq end-size (match-string 1)))
+      (and total-size
+          end-size
+          (string= total-size end-size)))))
+
 ;;;###autoload
 (defun yenc-decode-region (start end)
   "Yenc decode region between START and END using an internal decoder."