Clarify initial discussion.
[bpt/emacs.git] / lisp / tempo.el
index 4c04f51..ae9c773 100644 (file)
@@ -1,4 +1,5 @@
 ;;; tempo.el --- Flexible template insertion
+
 ;; Copyright (C) 1994, 1995 Free Software Foundation, Inc.
 
 ;; Author: David K}gedal <davidk@lysator.liu.se >
@@ -19,8 +20,9 @@
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING.  If not, write to
-;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+;; along with GNU Emacs; see the file COPYING.  If not, write to the
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
 
 ;;; Commentary:
 
@@ -50,7 +52,7 @@
 ;; a non-nil argument).
 
 ;; More flexible templates can be created by including lisp symbols,
-;; which will be evaluated as variables, or lists, which will will be
+;; which will be evaluated as variables, or lists, which will be
 ;; evaluated as lisp expressions.
 
 ;; See the documentation for tempo-define-template for the different
 ;; tempo.el. Thanks.
 
 ;; Nelson Minar <nelson@santafe.edu>
-;; Richard Stallman <rms@gnu.ai.mit.edu>
+;; Richard Stallman <rms@gnu.org>
 ;; Lars Lindberg <Lars.Lindberg@sypro.cap.se>
 ;; Glen Whitney <Glen.Whitney@math.lsa.umich.edu>
 
 
 ;;; User options
 
-(defvar tempo-interactive nil
+(defgroup tempo nil
+  "Flexible template insertion."
+  :prefix "tempo-"
+  :group 'tools)
+
+(defcustom tempo-interactive nil
   "*Prompt user for strings in templates.
 If this variable is non-nil, `tempo-insert' prompts the
-user for text to insert in the templates")
+user for text to insert in the templates"
+  :type 'boolean
+  :group 'tempo)
 
-(defvar tempo-insert-region nil
+(defcustom tempo-insert-region nil
   "*Automatically insert current region when there is a `r' in the template
 If this variable is NIL, `r' elements will be treated just like `p'
 elements, unless the template function is given a prefix (or a non-nil
 argument). If this variable is non-NIL, the behaviour is reversed.
 
-In Transient Mark mode, this option is unused.")
+In Transient Mark mode, this option is unused."
+  :type 'boolean
+  :group 'tempo)
 
-(defvar tempo-show-completion-buffer t
+(defcustom tempo-show-completion-buffer t
   "*If non-NIL, show a buffer with possible completions, when only
-a partial completion can be found")
+a partial completion can be found"
+  :type 'boolean
+  :group 'tempo)
 
-(defvar tempo-leave-completion-buffer nil
+(defcustom tempo-leave-completion-buffer nil
   "*If NIL, a completion buffer generated by \\[tempo-complete-tag]
-disappears at the next keypress; otherwise, it remains forever.")
+disappears at the next keypress; otherwise, it remains forever."
+  :type 'boolean
+  :group 'tempo)
 
 ;;; Internal variables
 
@@ -203,23 +218,6 @@ it recognizes the argument, and NIL otherwise")
 
 ;;; Functions
 
-;;; First some useful functions and macros
-
-(defun tempo-mapc (fun lst)
-  (if (null lst) nil
-    (funcall fun (car lst))
-    (tempo-mapc fun (cdr lst))))
-
-(defmacro tempo-dolist (il &rest forms)
-  (let ((i (car il))
-       (l (car (cdr il))))
-    (list 'tempo-mapc
-         (list 'function (append (list 'lambda
-                                       (list i))
-                                 forms))
-         l)))
-(put 'tempo-dolist 'lisp-indent-function 1)
-
 ;;
 ;; tempo-define-template
 
@@ -524,7 +522,7 @@ and insert the results."
         (setq string
               (funcall tempo-insert-string-functions string)))
        ((listp tempo-insert-string-functions)
-        (tempo-dolist (fn tempo-insert-string-functions)
+        (dolist (fn tempo-insert-string-functions)
           (setq string (funcall fn string))))
        (t
         (error "Bogus value in tempo-insert-string-functions: %s"
@@ -739,7 +737,7 @@ Returns non-nil if an expansion was made and nil otherwise.
 This could as an example be used in a command that is bound to the
 space bar, and looks something like this:
 
-(defun tempo-space ()
+\(defun tempo-space ()
   (interactive \"*\")
   (or (tempo-expand-if-complete)
       (insert \" \")))"