Replace deprecated time-stamp-hh:mm:ss by format-time-string
[elisp/wanderlust.git] / elmo / elmo-localnews.el
index d106467..8d533e3 100644 (file)
@@ -1,9 +1,11 @@
-;;; elmo-localnews.el -- Local News Spool Interface for ELMO.
+;;; elmo-localnews.el --- Local News Spool Interface for ELMO.
 
-;; Copyright 1998,1999,2000 OKUNISHI Fujikazu <fuji0924@mbox.kyoto-inet.or.jp>
-;;                          Yuuichi Teranishi <teranisi@gohome.org>
+;; Copyright (C) 1998,1999,2000 OKUNISHI Fujikazu <fuji0924@mbox.kyoto-inet.or.jp>
+;; Copyright (C) 1998,1999,2000 Yuuichi Teranishi <teranisi@gohome.org>
 
 ;; Author:  OKUNISHI Fujikazu <fuji0924@mbox.kyoto-inet.or.jp>
+;;     Yuuichi Teranishi <teranisi@gohome.org>
+;; Keywords: mail, net news
 
 ;; This file is part of ELMO (Elisp Library for Message Orchestration).
 
 ;;
 
 ;;; Commentary:
-;; 
+;;
 
 ;;; Code:
-;; 
+;;
 (require 'elmo-localdir)
 
-(defmacro elmo-localnews-as-newsdir (&rest body)
-  (` (let ((elmo-localdir-folder-path elmo-localnews-folder-path))
-       (,@ body))))
-
-(defun elmo-localnews-msgdb-create-as-numlist (spec numlist new-mark
-                                                   already-mark seen-mark
-                                                   important-mark seen-list)
-  (when numlist
-    (elmo-localnews-as-newsdir
-     (elmo-localdir-msgdb-create-as-numlist spec numlist new-mark
-                                           already-mark seen-mark
-                                           important-mark seen-list))))
-
-(defalias 'elmo-localnews-msgdb-create 'elmo-localnews-msgdb-create-as-numlist)
-
-(defun elmo-localnews-list-folders (spec &optional hierarchy)
-  (let ((folder (concat "=" (nth 1 spec))))
-    (elmo-localnews-as-newsdir
-     (elmo-localdir-list-folders-subr folder hierarchy))))
-
-(defun elmo-localnews-append-msg (spec string &optional msg no-see)
-  (elmo-localnews-as-newsdir
-   (elmo-localdir-append-msg spec string)))
-
-(defun elmo-localnews-delete-msgs (dir number)
-  (elmo-localnews-as-newsdir
-   (elmo-localdir-delete-msgs dir number)))
-
-(defun elmo-localnews-read-msg (spec number outbuf)
-  (elmo-localnews-as-newsdir
-   (elmo-localdir-read-msg spec number outbuf)))
-
-(defun elmo-localnews-list-folder (spec)
-  (elmo-localnews-as-newsdir
-   (elmo-localdir-list-folder-subr spec)))
-
-(defun elmo-localnews-max-of-folder (spec)
-  (elmo-localnews-as-newsdir
-   (elmo-localdir-list-folder-subr spec t)))
-
-(defun elmo-localnews-check-validity (spec validity-file)
-  (elmo-localnews-as-newsdir
-   (elmo-localdir-check-validity spec validity-file)))
-
-(defun elmo-localnews-sync-validity (spec validity-file)
-  (elmo-localnews-as-newsdir
-   (elmo-localdir-sync-validity spec validity-file)))
-
-(defun elmo-localnews-folder-exists-p (spec)
-  (elmo-localnews-as-newsdir
-   (elmo-localdir-folder-exists-p spec)))
-
-(defun elmo-localnews-folder-creatable-p (spec)
-  t)
-
-(defun elmo-localnews-create-folder (spec)
-  (elmo-localnews-as-newsdir
-   (elmo-localdir-create-folder spec)))
-
-(defun elmo-localnews-delete-folder (spec)
-  (elmo-localnews-as-newsdir
-   (elmo-localdir-delete-folder spec)))
-
-(defun elmo-localnews-rename-folder (old-spec new-spec)
-  (elmo-localnews-as-newsdir
-   (elmo-localdir-rename-folder old-spec new-spec)))
-
-(defun elmo-localnews-search (spec condition &optional from-msgs)
-  (elmo-localnews-as-newsdir
-   (elmo-localdir-search spec condition from-msgs)))
-
-(defun elmo-localnews-copy-msgs (dst-spec msgs src-spec
-                                         &optional loc-alist same-number)
-  (elmo-localdir-copy-msgs
-   dst-spec msgs src-spec loc-alist same-number))
-
-(defun elmo-localnews-pack-number (spec msgdb arg)
-  (elmo-localnews-as-newsdir
-   (elmo-localdir-pack-number spec msgdb arg)))
-
-(defun elmo-localnews-use-cache-p (spec number)
-  nil)
-
-(defun elmo-localnews-local-file-p (spec number)
-  t)
-
-(defun elmo-localnews-get-msg-filename (spec number &optional loc-alist)
-  (elmo-localnews-as-newsdir
-   (elmo-localdir-get-msg-filename spec number loc-alist)))
-
-(defalias 'elmo-localnews-sync-number-alist 'elmo-generic-sync-number-alist)
-(defalias 'elmo-localnews-list-folder-unread 
-  'elmo-generic-list-folder-unread)
-(defalias 'elmo-localnews-list-folder-important
-  'elmo-generic-list-folder-important)
-(defalias 'elmo-localnews-commit 'elmo-generic-commit)
-
-(provide 'elmo-localnews)
+(defcustom elmo-localnews-folder-path "~/News"
+  "*Local news folder path."
+  :type 'directory
+  :group 'elmo)
+
+(eval-and-compile
+  (luna-define-class elmo-localnews-folder (elmo-localdir-folder) (group))
+  (luna-define-internal-accessors 'elmo-localnews-folder))
+
+(luna-define-method elmo-folder-initialize :before ((folder
+                                                    elmo-localnews-folder)
+                                                   name)
+  (elmo-localnews-folder-set-group-internal folder
+                                           (elmo-replace-in-string
+                                            name "/" "\\.")))
+
+(luna-define-method elmo-localdir-folder-path ((folder elmo-localnews-folder))
+  elmo-localnews-folder-path)
+
+(luna-define-method elmo-localdir-folder-name ((folder elmo-localnews-folder)
+                                              name)
+  (elmo-replace-in-string name "\\." "/"))
+
+(luna-define-method elmo-folder-expand-msgdb-path ((folder
+                                                   elmo-localnews-folder))
+  (expand-file-name
+   (elmo-localnews-folder-group-internal folder)
+   (expand-file-name
+    (symbol-name (elmo-folder-type-internal folder))
+    elmo-msgdb-directory)))
+
+(luna-define-method elmo-folder-newsgroups ((folder elmo-localnews-folder))
+  (list (elmo-localnews-folder-group-internal folder)))
+
+(require 'product)
+(product-provide (provide 'elmo-localnews) (require 'elmo-version))
 
 ;;; elmo-localnews.el ends here