;;; forms.el --- Forms mode: edit a file as a form to fill in
-;; Copyright (C) 1991, 1994, 1995, 1996, 1997, 2003 Free Software Foundation, Inc.
+;; Copyright (C) 1991, 1994, 1995, 1996, 1997, 2001, 2002, 2003,
+;; 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
;; Author: Johan Vromans <jvromans@squirrel.nl>
;; This file is part of GNU Emacs.
-;; GNU Emacs is free software; you can redistribute it and/or modify
+;; GNU Emacs is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
-;; any later version.
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; 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, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
+;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
-;; Visit a file using a form.
+;; Visit a file using a form. See forms-d2.el for examples.
;;
;; === Naming conventions
;;
;; Automatic mode switching is supported if you specify
;; "-*- forms -*-" in the first line of the control file.
;;
-;; The control file is visited, evaluated using `eval-current-buffer',
+;; The control file is visited, evaluated using `eval-buffer',
;; and should set at least the following variables:
;;
;; forms-file [string]
(provide 'forms) ;;; official
(provide 'forms-mode) ;;; for compatibility
-(defconst forms-version (substring "$Revision: 2.49 $" 11 -2)
- "The version number of forms-mode (as string). The complete RCS id is:
-
- $Id: forms.el,v 2.49 2003/09/01 15:45:12 miles Exp $")
-
(defcustom forms-mode-hook nil
"Hook run upon entering Forms mode."
:group 'forms
;;; Optional variables with default values.
(defcustom forms-check-number-of-fields t
- "*If non-nil, warn about records with wrong number of fields."
+ "If non-nil, warn about records with wrong number of fields."
:group 'forms
:type 'boolean)
If not nil: use this character to separate multi-line fields (default C-k).")
(defcustom forms-forms-scroll nil
- "*Non-nil means replace scroll-up/down commands in Forms mode.
+ "Non-nil means replace scroll-up/down commands in Forms mode.
The replacement commands performs forms-next/prev-record."
:group 'forms
:type 'boolean)
(defcustom forms-forms-jump nil
- "*Non-nil means redefine beginning/end-of-buffer in Forms mode.
+ "Non-nil means redefine beginning/end-of-buffer in Forms mode.
The replacement commands performs forms-first/last-record."
:group 'forms
:type 'boolean)
The contents may NOT be modified.")
(defcustom forms-use-text-properties t
- "*Non-nil means: use text properties.
+ "Non-nil means: use text properties.
Defaults to t if this Emacs is capable of handling text properties."
:group 'forms
:type 'boolean)
(defcustom forms-insert-after nil
- "*Non-nil means: inserts of new records go after current record.
+ "Non-nil means: inserts of new records go after current record.
Also, initial position is at last record."
:group 'forms
:type 'boolean)
(if (or (eq enable-local-eval t)
(yes-or-no-p
(concat "Evaluate lisp code in buffer "
- (buffer-name) " to display forms ")))
- (eval-current-buffer)
+ (buffer-name) " to display forms? ")))
+ (eval-buffer)
(error "`enable-local-eval' inhibits buffer evaluation"))
;; Check if the mandatory variables make sense.
(eq (length forms-multi-line) 1))
(if (string= forms-multi-line forms-field-sep)
(error (concat "Forms control file error: "
- "`forms-multi-line' is equal to 'forms-field-sep'")))
+ "`forms-multi-line' is equal to `forms-field-sep'")))
(error (concat "Forms control file error: "
"`forms-multi-line' must be nil or a one-character string"))))
(or (fboundp 'set-text-properties)
;;(message "forms: proceeding setup (new file)...")
(progn
(insert
- "GNU Emacs Forms Mode version " forms-version "\n\n"
+ "GNU Emacs Forms Mode\n\n"
(if (file-exists-p forms-file)
(concat "No records available in file `" forms-file "'\n\n")
(format "Creating new file `%s'\nwith %d field%s per record\n\n"
;; user customising
;;(message "forms: proceeding setup (user hooks)...")
- (run-hooks 'forms-mode-hook 'forms-mode-hooks)
+ (run-mode-hooks 'forms-mode-hook 'forms-mode-hooks)
;;(message "forms: setting up... done.")
;; be helpful
;; Need a file to do this.
(if (not (file-exists-p forms-file))
- (error "Need existing file or explicit 'forms-number-of-records'")
+ (error "Need existing file or explicit `forms-number-of-fields'")
;; Visit the file and extract the first record.
(setq forms--file-buffer (find-file-noselect forms-file))
(goto-char (aref forms--markers (1- (length forms--markers)))))))
(defun forms-print ()
- "Send the records to the printer with 'print-buffer', one record per page."
+ "Send the records to the printer with `print-buffer', one record per page."
(interactive)
(let ((inhibit-read-only t)
(save-record forms--current-record)
(goto-char (point-max))
(insert ret)))))
-;;; arch-tag: 4a6695c7-d47a-4a21-809b-5cec7f8ec7a1
+;; arch-tag: 4a6695c7-d47a-4a21-809b-5cec7f8ec7a1
;;; forms.el ends here