ptexinfmt.el; Fix last change
[elisp/wanderlust.git] / wl / wl-template.el
index bb47963..fcc44d8 100644 (file)
@@ -1,7 +1,7 @@
-;;; wl-template.el -- Draft template feature for Wanderlust.
+;;; wl-template.el --- Draft template feature for Wanderlust.
 
-;; Copyright 1998,1999,2000 Masahiro MURATA <muse@ba2.so-net.ne.jp>
-;;                          Yuuichi Teranishi <teranisi@gohome.org>
+;; Copyright (C) 1998,1999,2000 Masahiro MURATA <muse@ba2.so-net.ne.jp>
+;; Copyright (C) 1998,1999,2000 Yuuichi Teranishi <teranisi@gohome.org>
 
 ;; Author: Masahiro MURATA <muse@ba2.so-net.ne.jp>
 ;; Keywords: mail, net news
@@ -27,7 +27,9 @@
 ;;; Commentary:
 
 ;;; Code:
-;; 
+;;
+(require 'elmo-util)
+(require 'wl-vars)
 
 ;; Variables
 
@@ -39,6 +41,7 @@
 (defvar wl-template-cur-num 0)
 (defvar wl-template-max-num 0)
 (defvar wl-template-draft-buffer nil)
+(defvar wl-template-preview nil)
 
 ;;; Code
 
   (define-key wl-template-mode-map "\r"    'wl-template-set)
   (define-key wl-template-mode-map "\n"    'wl-template-set))
 
+(defun wl-template-preview-p ()
+  "Return non-nil when preview template."
+  wl-template-preview)
+
 (defun wl-template-apply (name)
+  "Apply NAME template to draft."
   (let (template)
     (when name
       (if (string= name "")
@@ -76,7 +84,7 @@ See info under Wanderlust for full documentation.
 
 \\{wl-template-mode}
 
-Enterring WL-Template mode calls the value of `wl-template-mode-hook'."
+Entering WL-Template mode calls the value of `wl-template-mode-hook'."
   (kill-all-local-variables)
   (setq mode-name "Wl-Template"
        major-mode 'wl-template-mode)
@@ -84,9 +92,15 @@ Enterring WL-Template mode calls the value of `wl-template-mode-hook'."
   (setq buffer-read-only t)
   (run-hooks 'wl-template-mode-hook))
 
-(defun wl-template-select ()
-  (interactive)
-  (if (not wl-template-visible-select)
+(defun wl-template-select (&optional arg)
+  "Select template from `wl-template-alist'."
+  (interactive "P")
+  (unless wl-template-alist
+    (error "Please set `wl-template-alist'"))
+  (setq wl-draft-config-exec-flag t)
+  (if (not (if arg
+              (not wl-template-visible-select)
+            wl-template-visible-select))
       (wl-template-apply
        (completing-read (format "Template (%s): " wl-template-default-name)
                        wl-template-alist))
@@ -120,10 +134,11 @@ Enterring WL-Template mode calls the value of `wl-template-mode-hook'."
       (wl-template-show))))
 
 (defun wl-template-show (&optional arg)
-  "Show reference INDEX in wl-template-alist."
-  (save-excursion
-    (set-buffer wl-template-buffer-name)
+  "Show reference INDEX in `wl-template-alist'.
+ARG is ignored."                       ; ARG ignored this version (?)
+  (with-current-buffer wl-template-buffer-name
     (let ((buffer-read-only nil)
+         (wl-template-preview t)
          (mail-header-separator  "--header separater--"))
       (erase-buffer)
       (goto-char (point-min))
@@ -131,25 +146,24 @@ Enterring WL-Template mode calls the value of `wl-template-mode-hook'."
        (setq wl-template (car (nth wl-template-cur-num wl-template-alist)))
        mail-header-separator)
       (wl-highlight-message (point-min) (point-max) t)
-      (and wl-highlight-x-face-func
-          (funcall
-           wl-highlight-x-face-func
-           (point-min) (re-search-forward mail-header-separator nil t)))
+      (when wl-highlight-x-face-function
+       (funcall wl-highlight-x-face-function
+                (point-min) (re-search-forward mail-header-separator nil t)))
       (setq mode-line-process (concat ":" wl-template))
       (set-buffer-modified-p nil))))
 
 (defun wl-template-next ()
   "Display next reference in other buffer."
   (interactive)
-  (if (eq wl-template-max-num
-         (setq wl-template-cur-num (1+ wl-template-cur-num)))
+  (if (= wl-template-max-num
+        (setq wl-template-cur-num (1+ wl-template-cur-num)))
       (setq wl-template-cur-num 0))
   (wl-template-show))
 
 (defun wl-template-prev ()
   "Display previous reference in other buffer."
   (interactive)
-  (setq wl-template-cur-num (if (eq wl-template-cur-num 0)
+  (setq wl-template-cur-num (if (zerop wl-template-cur-num)
                                (1- wl-template-max-num)
                              (1- wl-template-cur-num)))
   (wl-template-show))
@@ -180,6 +194,8 @@ Enterring WL-Template mode calls the value of `wl-template-mode-hook'."
        (if win (select-window win))))))
 
 (defun wl-template-insert (name &optional mail-header)
+  "Insert NAME template.
+Set header-separator is MAIL-HEADER."
   (let ((template (cdr (assoc name wl-template-alist)))
        (mail-header-separator (or mail-header
                                   mail-header-separator)))