(while flist
(setq folder (wl-folder-get-elmo-folder (car flist))
flist (cdr flist))
+ (elmo-folder-set-biff-internal folder t)
(when (and (elmo-folder-plugged-p folder)
(elmo-folder-exists-p folder))
(setq new-mails
(symbol-value variable))))))
;;; Search Condition
+(defun wl-search-condition-fields ()
+ (let ((denial-fields
+ (nconc (mapcar 'capitalize elmo-msgdb-extra-fields)
+ (mapcar 'capitalize wl-additional-search-condition-fields)
+ '("Flag" "Since" "Before"
+ "From" "Subject" "To" "Cc" "Body" "ToCc"
+ "Larger" "Smaller"))))
+ (append '("Last" "First")
+ denial-fields
+ (mapcar (lambda (f) (concat "!" f))
+ denial-fields))))
+
(defun wl-read-search-condition (default)
"Read search condition string interactively."
(wl-read-search-condition-internal "Search by" default))
(defun wl-read-search-condition-internal (prompt default &optional paren)
(let* ((completion-ignore-case t)
- (denial-fields (nconc (mapcar 'capitalize elmo-msgdb-extra-fields)
- '("Flag" "Since" "Before"
- "From" "Subject" "To" "Cc" "Body" "ToCc"
- "Larger" "Smaller")))
(field (completing-read
(format "%s (%s): " prompt default)
- (mapcar 'list
- (append '("AND" "OR" "Last" "First")
- denial-fields
- (mapcar (lambda (f) (concat "!" f))
- denial-fields)))))
+ (mapcar #'list
+ (append '("AND" "OR") (wl-search-condition-fields)))))
value)
(setq field (if (string= field "")
(setq field default)
(while t
(discard-input)
(case (let ((cursor-in-echo-area t))
- (read-event prompt))
+ (cdr (wl-read-event-char prompt)))
((?y ?Y)
(throw 'done t))
- (?
+ (?\
(if scroll-by-SPC
(ignore-errors (scroll-up))
(throw 'done t)))
(t
(throw 'done nil)))))))
+(defun wl-find-region (beg-regexp end-regexp)
+ (if (or (re-search-forward end-regexp nil t)
+ (re-search-backward end-regexp nil t))
+ (let ((end (match-end 0))
+ (beg (re-search-backward beg-regexp nil t)))
+ (if beg
+ (cons beg end)))))
+
+(defun wl-simple-display-progress (label action current total)
+ (message "%s... %d%%"
+ action
+ (if (> total 0) (floor (* (/ current (float total)) 100)) 0)))
+
+(when (fboundp 'progress-feedback-with-label)
+ (defun wl-display-progress-with-gauge (label action current total)
+ (progress-feedback-with-label
+ label
+ "%s..."
+ (if (> total 0) (floor (* (/ current (float total)) 100)) 0)
+ action)))
+
+(defun wl-progress-callback-function (label action current total)
+ (case current
+ (query
+ (let ((threshold (if (consp wl-display-progress-threshold)
+ (cdr (or (assq label wl-display-progress-threshold)
+ (assq t wl-display-progress-threshold)))
+ wl-display-progress-threshold)))
+ (and threshold
+ (>= total threshold))))
+ (start
+ (message "%s..." action))
+ (done
+ (message "%s...done" action))
+ (t
+ (when wl-display-progress-function
+ (funcall wl-display-progress-function label action current total)))))
;; read multiple strings with completion
(defun wl-completing-read-multiple-1 (prompt
nil initial-input
hist def inherit-input-method))))
(t
- (defalias 'wl-completing-read-multiple 'wl-completing-read-multiple-2)))
+ (defalias 'wl-completing-read-multiple 'completing-read-multiple)))
+
+(cond
+ ((fboundp 'shell-command-read-minibuffer)
+ (defun wl-read-shell-command (prompt &optional
+ initial-contents keymap read hist)
+ (shell-command-read-minibuffer prompt default-directory
+ initial-contents keymap read hist)))
+ (t
+ (defalias 'wl-read-shell-command 'read-from-minibuffer)))
(require 'product)
(product-provide (provide 'wl-util) (require 'wl-version))