X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;ds=inline;f=elmo%2Felmo-localnews.el;h=6908d8172fd647801b806db2c2a1d128b869ab38;hb=e2ed548f6fc9368e219aaa0f09a125ac1247509d;hp=471131572a64708a0186ccec06db9ac989dc2fdc;hpb=eb88c7d31e2709070a22208de4abc0663c9a1ccc;p=elisp%2Fwanderlust.git diff --git a/elmo/elmo-localnews.el b/elmo/elmo-localnews.el index 4711315..6908d81 100644 --- a/elmo/elmo-localnews.el +++ b/elmo/elmo-localnews.el @@ -1,9 +1,10 @@ -;;; 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). @@ -25,109 +26,40 @@ ;; ;;; 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) +(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))