Merge from emacs--devo--0
[gnus] / lisp / nneething.el
index 9c30970..ac52cfd 100644 (file)
@@ -1,17 +1,17 @@
 ;;; nneething.el --- arbitrary file access for Gnus
 
-;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
-;;     Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
+;;   2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
-;;     Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
+;;     Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
 ;; Keywords: news, mail
 
 ;; This file is part of GNU Emacs.
 
 ;; 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,
@@ -21,8 +21,8 @@
 
 ;; You should have received a copy of the GNU General Public License
 ;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
 
 ;;; Commentary:
 
@@ -37,7 +37,8 @@
 
 (nnoo-declare nneething)
 
-(defvoo nneething-map-file-directory "~/.nneething/"
+(defvoo nneething-map-file-directory
+  (nnheader-concat gnus-directory ".nneething/")
   "Where nneething stores the map files.")
 
 (defvoo nneething-map-file ".nneething"
@@ -64,7 +65,6 @@ included.")
 
 (defvoo nneething-status-string "")
 
-(defvoo nneething-message-id-number 0)
 (defvoo nneething-work-buffer " *nneething work*")
 
 (defvoo nneething-group nil)
@@ -289,7 +289,7 @@ included.")
   (let ((pos 0) buf)
     (setq file (mm-encode-coding-string
                file (or coding-system nnmail-pathname-coding-system)))
-    (while (string-match "[^-a-zA-Z_:/.]" file pos)
+    (while (string-match "[^-0-9a-zA-Z_:/.]" file pos)
       (setq buf (cons (format "%%%02x" (aref file (match-beginning 0)))
                      (cons (substring file pos (match-beginning 0)) buf))
            pos (match-end 0)))
@@ -303,14 +303,14 @@ included.")
       (setq buf (cons (string (string-to-number (match-string 1 file) 16))
                      (cons (substring file pos (match-beginning 0)) buf))
            pos (match-end 0)))
-    (decode-coding-string
+    (mm-decode-coding-string
      (apply (function concat)
            (nreverse (cons (substring file pos) buf)))
      (or coding-system nnmail-pathname-coding-system))))
 
 (defun nneething-get-file-name (id)
   "Extract the file name from the message ID string."
-  (when (string-match "\\`<nneething\\-[0-9]+\\-\\([^@]+\\)@.*>\\'" id)
+  (when (string-match "\\`<nneething-\\([^@]+\\)@.*>\\'" id)
     (nneething-decode-file-name (match-string 1 id))))
 
 (defun nneething-make-head (file &optional buffer extra-msg
@@ -319,9 +319,7 @@ included.")
   (let ((atts (file-attributes file)))
     (insert
      "Subject: " (file-name-nondirectory file) (or extra-msg "") "\n"
-     "Message-ID: <nneething-"
-     (int-to-string (incf nneething-message-id-number))
-     "-" (nneething-encode-file-name file)
+     "Message-ID: <nneething-" (nneething-encode-file-name file)
      "@" (system-name) ">\n"
      (if (equal '(0 0) (nth 5 atts)) ""
        (concat "Date: " (current-time-string (nth 5 atts)) "\n"))
@@ -331,7 +329,7 @@ included.")
             (when (re-search-forward "<[a-zA-Z0-9_]@[-a-zA-Z0-9_]>" 1000 t)
               (concat "From: " (match-string 0) "\n"))))
         (nneething-from-line (nth 2 atts) file))
-     (if (> (string-to-int (int-to-string (nth 7 atts))) 0)
+     (if (> (string-to-number (int-to-string (nth 7 atts))) 0)
         (concat "Chars: " (int-to-string (nth 7 atts)) "\n")
        "")
      (if buffer
@@ -430,4 +428,5 @@ included.")
 
 (provide 'nneething)
 
+;;; arch-tag: 1277f386-88f2-4459-bb24-f3f45962a6c5
 ;;; nneething.el ends here