(defvar wl-fldmgr-group-insert-opened nil)
(defconst wl-fldmgr-folders-header
- "#
+ (format
+ "#
# Folder definition file
# This file is generated automatically by %s.
#
-")
+" (product-string-1 'wl-version t)))
;;; Initial setup
(defun wl-fldmgr-exit ()
(when (and wl-fldmgr-modified
(or (not wl-interactive-save-folders)
- (y-or-n-p "Folder view was modified. Save current folders? ")))
+ (y-or-n-p "Folder view was modified. Save current folders? ")))
(wl-fldmgr-save-folders)))
;;; Macro and misc Function
wl-folder-group-alist)))
(defun wl-fldmgr-add-entity-hashtb (entities)
- "update `wl-folder-entity-hashtb', `wl-folder-newsgroups-hashtb'.
-return value is diffs '(new unread all)."
+ "Update `wl-folder-entity-hashtb', `wl-folder-newsgroups-hashtb'.
+Return value is diffs '(new unread all)."
(let* ((new-diff 0)
(unread-diff 0)
(all-diff 0)
(list new-diff unread-diff all-diff)))
(defun wl-fldmgr-delete-entity-hashtb (entities &optional clear)
- "update `wl-folder-entity-hashtb'.
+ "Update `wl-folder-entity-hashtb'.
return value is diffs '(-new -unread -all)."
(let* ((new-diff 0)
(unread-diff 0)
(save-excursion
(beginning-of-line)
(when prev
-;; (wl-folder-next-entity-skip-invalid t)
-;; (and (setq previous-entity
-;; (wl-fldmgr-get-previous-entity wl-folder-entity
-;; (wl-fldmgr-get-entity-id)))
-;; ;; change entity to id
-;; (setq previous-entity
-;; (cons
-;; (and (car previous-entity)
-;; (wl-fldmgr-get-entity-id (car previous-entity)))
-;; (and (cdr previous-entity)
-;; (wl-fldmgr-get-entity-id (cdr previous-entity))))))
+;;; (wl-folder-next-entity-skip-invalid t)
+;;; (and (setq previous-entity
+;;; (wl-fldmgr-get-previous-entity wl-folder-entity
+;;; (wl-fldmgr-get-entity-id)))
+;;; ;; change entity to id
+;;; (setq previous-entity
+;;; (cons
+;;; (and (car previous-entity)
+;;; (wl-fldmgr-get-entity-id (car previous-entity)))
+;;; (and (cdr previous-entity)
+;;; (wl-fldmgr-get-entity-id (cdr previous-entity))))))
(wl-folder-prev-entity-skip-invalid))
(if (and prev
(looking-at wl-folder-group-regexp)
(string= (wl-match-buffer 2) "-"))
(setq group-target nil)
(if (and prev (bobp))
- (error "out of desktop group")))
+ (error "Out of desktop group")))
(setq folder-path (wl-fldmgr-get-path wl-folder-entity
(wl-folder-get-entity-from-buffer)
- ;;(wl-fldmgr-get-entity-id)
+;;; (wl-fldmgr-get-entity-id)
group-target))
(let ((fp folder-path))
(while fp
(defvar wl-fldmgr-add-completion-hashtb (make-vector 7 0))
-(defun wl-fldmgr-add-completion-all-completions (string)
- (let ((table
- (catch 'found
- (mapatoms
- (function
- (lambda (atom)
- (if (string-match (symbol-name atom) string)
- (throw 'found (symbol-value atom)))))
- wl-fldmgr-add-completion-hashtb)))
- (pattern
- (if (string-match "\\.$"
- (car (elmo-network-get-spec
- string nil nil nil nil)))
- (substring string 0 (match-beginning 0))
- (concat string nil))))
- (or table
- (setq table (elmo-list-folders pattern))
- (and table
- (or (/= (length table) 1)
- (elmo-folder-exists-p (car table))))
- (setq pattern
- (if (string-match "\\.[^\\.]+$" string)
- (substring string 0 (match-beginning 0))
- (char-to-string (aref string 0)))
- table (elmo-list-folders pattern)))
- (setq pattern (concat "^" (regexp-quote pattern)))
- (unless (intern-soft pattern wl-fldmgr-add-completion-hashtb)
- (set (intern pattern wl-fldmgr-add-completion-hashtb) table))
- table))
-
-(defun wl-fldmgr-add-completion-subr (string predicate flag)
- (let ((table
- (if (string= string "")
- (mapcar (function (lambda (spec)
- (list (char-to-string (car spec)))))
- elmo-spec-alist)
- (when (assq (aref string 0) elmo-spec-alist)
- (delq nil (mapcar
- (function list)
- (condition-case nil
- (wl-fldmgr-add-completion-all-completions string)
- (error nil))))))))
- (if (null flag)
- (try-completion string table predicate)
- (if (eq flag 'lambda)
- (eq t (try-completion string table predicate))
- (if flag
- (all-completions string table predicate))))))
+;(defun wl-fldmgr-add-completion-all-completions (string)
+; (let ((table
+; (catch 'found
+; (mapatoms
+; (function
+; (lambda (atom)
+; (if (string-match (symbol-name atom) string)
+; (throw 'found (symbol-value atom)))))
+; wl-fldmgr-add-completion-hashtb)))
+; (pattern
+; (if (string-match "\\.$"
+; (car (elmo-network-get-spec
+; string nil nil nil nil)))
+; (substring string 0 (match-beginning 0))
+; (concat string nil))))
+; (or table
+; (setq table (elmo-folder-list-subfolders (wl-folder-get-elmo-folder
+; pattern)))
+; (and table
+; (or (/= (length table) 1)
+; (elmo-folder-exists-p (wl-folder-get-elmo-folder
+; (car table)))))
+; (setq pattern
+; (if (string-match "\\.[^\\.]+$" string)
+; (substring string 0 (match-beginning 0))
+; (char-to-string (aref string 0)))
+; table (elmo-folder-list-subfolders
+; (wl-folder-get-elmo-folder pattern))))
+; (setq pattern (concat "^" (regexp-quote pattern)))
+; (unless (intern-soft pattern wl-fldmgr-add-completion-hashtb)
+; (set (intern pattern wl-fldmgr-add-completion-hashtb) table))
+; table))
+
+;(defun wl-fldmgr-add-completion-subr (string predicate flag)
+; (let ((table
+; (if (string= string "")
+; (mapcar (function (lambda (spec)
+; (list (char-to-string (car spec)))))
+; elmo-spec-alist)
+; (when (assq (aref string 0) elmo-spec-alist)
+; (delq nil (mapcar
+; (function list)
+; (condition-case nil
+; (wl-fldmgr-add-completion-all-completions string)
+; (error nil))))))))
+; (if (null flag)
+; (try-completion string table predicate)
+; (if (eq flag 'lambda)
+; (eq t (try-completion string table predicate))
+; (if flag
+; (all-completions string table predicate))))))
(defun wl-fldmgr-add (&optional name)
(interactive)
(beginning-of-line)
(let ((ret-val nil)
(inhibit-read-only t)
- (wl-folder-completion-func
+ (wl-folder-completion-function
(if wl-fldmgr-add-complete-with-current-folder-list
(function wl-fldmgr-add-completion-subr)))
tmp indent path diffs)
(setq name (wl-fldmgr-read-string
(wl-summary-read-folder wl-default-folder "to add"))))
;; maybe add elmo-plugged-alist.
- (when (stringp name)
- (elmo-folder-set-plugged name wl-plugged t))
+ (elmo-folder-set-plugged (wl-folder-get-elmo-folder name) wl-plugged t)
(when (setq diffs
(wl-add-entity
path (list name) wl-folder-entity (nth 3 tmp) t))
(save-excursion
(beginning-of-line)
(if (looking-at wl-folder-group-regexp)
- (error "can't delete group folder"))
+ (error "Can't delete group folder"))
(let* ((inhibit-read-only t)
(tmp (wl-fldmgr-get-path-from-buffer))
(entity (elmo-string (nth 4 tmp)))
- (msgs (and (elmo-folder-exists-p entity)
- (elmo-list-folder entity))))
+ (folder (wl-folder-get-elmo-folder entity))
+ (msgs (and (elmo-folder-exists-p folder)
+ (elmo-folder-list-messages folder))))
(when (yes-or-no-p (format "%sDo you really delete \"%s\"? "
(if (> (length msgs) 0)
(format "%d msg(s) exists. " (length msgs))
"")
entity))
- (elmo-delete-folder entity)
+ (elmo-folder-delete folder)
(wl-fldmgr-cut tmp nil t)))))
(defun wl-fldmgr-rename ()
(setcar group-entity group)
(setcar (wl-string-assoc old-group wl-folder-group-alist)
group)
- ;;(setcdr (assq id wl-folder-entity-id-name-alist) group)
+;;; (setcdr (assq id wl-folder-entity-id-name-alist) group)
(wl-folder-set-id-name id group)
(wl-fldmgr-delete-line)
(wl-folder-insert-entity
(old-folder (nth 4 tmp))
new-folder)
(if (eq (cdr (nth 2 tmp)) 'access)
- (error "can't rename access folder"))
+ (error "Can't rename access folder"))
(setq new-folder
(wl-fldmgr-read-string
(wl-summary-read-folder old-folder "to rename" t t old-folder)))
(if (or (wl-folder-entity-exists-p new-folder)
- (file-exists-p (elmo-msgdb-expand-path new-folder)))
- (error "already exists folder: %s" new-folder))
- (elmo-rename-folder old-folder new-folder)
+ (file-exists-p (elmo-folder-msgdb-path
+ (wl-folder-get-elmo-folder new-folder))))
+ (error "Already exists folder: %s" new-folder))
+ (elmo-folder-rename (wl-folder-get-elmo-folder old-folder)
+ (wl-folder-get-elmo-folder new-folder))
(wl-folder-set-entity-info
new-folder
(wl-folder-get-entity-info old-folder))
(message "Can't make multi included group folder")
(throw 'done nil))
(t
- (let ((spec (elmo-folder-get-spec (car cut-entity)))
+ (let ((folder (wl-folder-get-elmo-folder
+ (car cut-entity)))
multi-fld)
- (if (eq (car spec) 'multi)
+ (if (eq (elmo-folder-type-internal folder) 'multi)
(setq multi-fld
(substring (car cut-entity) 1)))
(setq new-entity
(if (eq (cdr (nth 2 tmp)) 'access)
(message "Can't change access group")
(setq entity (nth 4 tmp))
- (unless entity (error "no folder"))
+ (unless entity (error "No folder"))
(wl-fldmgr-add (concat "/"
(elmo-read-search-condition
wl-fldmgr-make-filter-default)
(wl-folder-get-realname (wl-match-buffer 3))
wl-folder-entity))
(message "Sorting...")
- (setq flist (sort (nth 2 entity) wl-fldmgr-sort-func))
+ (setq flist (sort (nth 2 entity) wl-fldmgr-sort-function))
(setcar (cddr entity) flist)
(wl-fldmgr-add-modified-access-list (car entity))
(setq wl-fldmgr-modified t)
(point))))
(delete-region beg end)
(wl-folder-insert-entity indent entity)))
- ;;(wl-fldmgr-reconst-entity-hashtb t t)
+;;; (wl-fldmgr-reconst-entity-hashtb t t)
(message "Sorting...done")
(set-buffer-modified-p nil)))))
(wl-fldmgr-delete-line)
(when (wl-fldmgr-add folder)
(wl-folder-maybe-load-folder-list folder)
-;; (wl-folder-search-group-entity-by-name (car folder)
-;; wl-folder-entity))
+;;; (wl-folder-search-group-entity-by-name (car folder)
+;;; wl-folder-entity)
(setq execed t)))))
((looking-at (format "^[ ]*%s\\(.*\\)" wl-folder-unsubscribe-mark))
(if (and type (> type 0))
(old-petname (or (cdr pentry) ""))
(change)
petname)
- (unless name (error "no folder"))
+ (unless name (error "No folder"))
(if (and is-group
(not (eq (nth 1 (wl-folder-search-group-entity-by-name
name wl-folder-entity))
(message "Saving folders...")
(set-buffer tmp-buf)
(erase-buffer)
- (insert (format wl-fldmgr-folders-header (wl-version t)))
+ (insert wl-fldmgr-folders-header)
(wl-fldmgr-delete-disused-petname)
(setq save-petname-entities
(wl-fldmgr-insert-folders-buffer "" (nth 2 wl-folder-entity)))
wl-folders-file
nil
'no-msg)
- (set-file-modes wl-folders-file 384)) ; 600
+ (set-file-modes wl-folders-file (+ (* 64 6) (* 8 0) 0))) ; chmod 0600
(kill-buffer tmp-buf)
(while access-list
(setq entity (wl-folder-search-group-entity-by-name