X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=elmo%2Felmo-localnews.el;h=8d533e3ee7f24e1279d8b51ea25de2c8c8dce6a1;hb=fd6411ebf1a6cbab760fcf77514fc37e2ba3face;hp=bbb1a420eb00f01aac707436c7d6b4f660645876;hpb=806725e3db0748ddc973ba045053a6681e840287;p=elisp%2Fwanderlust.git diff --git a/elmo/elmo-localnews.el b/elmo/elmo-localnews.el index bbb1a42..8d533e3 100644 --- a/elmo/elmo-localnews.el +++ b/elmo/elmo-localnews.el @@ -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 -;; Yuuichi Teranishi +;; Copyright (C) 1998,1999,2000 OKUNISHI Fujikazu +;; Copyright (C) 1998,1999,2000 Yuuichi Teranishi ;; Author: OKUNISHI Fujikazu +;; Yuuichi Teranishi +;; Keywords: mail, net news ;; This file is part of ELMO (Elisp Library for Message Orchestration). @@ -24,109 +26,45 @@ ;; ;;; 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) -(defalias 'elmo-localnews-folder-diff 'elmo-generic-folder-diff) +(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))