ptexinfmt.el; Fix last change
[elisp/wanderlust.git] / wl / wl-template.el
index d143696..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)
@@ -77,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)
@@ -85,10 +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 ()
+(defun wl-template-select (&optional arg)
   "Select template from `wl-template-alist'."
-  (interactive)
-  (if (not wl-template-visible-select)
+  (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))
@@ -124,9 +136,9 @@ Enterring WL-Template mode calls the value of `wl-template-mode-hook'."
 (defun wl-template-show (&optional arg)
   "Show reference INDEX in `wl-template-alist'.
 ARG is ignored."                       ; ARG ignored this version (?)
-  (save-excursion
-    (set-buffer wl-template-buffer-name)
+  (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))
@@ -134,25 +146,24 @@ ARG is ignored."                  ; ARG ignored this version (?)
        (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))