comparison lisp/forms.el @ 3828:c9f18a7140f9

entered into RCS
author Richard M. Stallman <rms@gnu.org>
date Sat, 19 Jun 1993 00:15:32 +0000
parents 4089cf0e3f06
children 93a7a7b97030
comparison
equal deleted inserted replaced
3827:4089cf0e3f06 3828:c9f18a7140f9
1 ;;; forms.el -- Forms mode: edit a file as a form to fill in. 1 ;;; forms.el -- Forms mode: edit a file as a form to fill in.
2 ;;; Copyright (C) 1991 Free Software Foundation, Inc. 2 ;;; Copyright (C) 1991, 1993 Free Software Foundation, Inc.
3 3
4 ;;; Author: Johan Vromans 4 ;;; Author: Johan Vromans
5 5
6 ;; This file is part of GNU Emacs. 6 ;; This file is part of GNU Emacs.
7 7
220 ;;; Global variables and constants 220 ;;; Global variables and constants
221 221
222 (provide 'forms) ;;; official 222 (provide 'forms) ;;; official
223 (provide 'forms-mode) ;;; for compatibility 223 (provide 'forms-mode) ;;; for compatibility
224 224
225 (defconst forms-version "1.2.10" 225 (defconst forms-version "1.2.11"
226 "Version of forms-mode implementation.") 226 "Version of forms-mode implementation.")
227
228 (defvar forms-forms-scrolls t
229 "If non-null: redefine scroll-up/down to be used with Forms mode.")
230
231 (defvar forms-forms-jumps t
232 "If non-null: redefine beginning/end-of-buffer to be used with Forms mode.")
233 227
234 (defvar forms-mode-hooks nil 228 (defvar forms-mode-hooks nil
235 "Hook functions to be run upon entering Forms mode.") 229 "Hook functions to be run upon entering Forms mode.")
236 230
237 ;;; Mandatory variables - must be set by evaluating the control file 231 ;;; Mandatory variables - must be set by evaluating the control file
256 250
257 (defvar forms-multi-line "\C-k" 251 (defvar forms-multi-line "\C-k"
258 "Character to separate multi-line fields (default C-k)") 252 "Character to separate multi-line fields (default C-k)")
259 253
260 (defvar forms-forms-scroll t 254 (defvar forms-forms-scroll t
261 "Redefine scroll-up/down to perform forms-next/prev-record in Forms mode.") 255 "*Non-nil means replace scroll-up/down commands in Forms mode.
256 The replacement commands performs forms-next/prev-record.")
262 257
263 (defvar forms-forms-jump t 258 (defvar forms-forms-jump t
264 "Redefine beginning/end-of-buffer to perform forms-first/last-record in Forms mode.") 259 "*Non-nil means redefine beginning/end-of-buffer in Forms mode.
265 260 The replacement commands performs forms-first/last-record.")
266 261
267 ;;; Internal variables. 262 ;;; Internal variables.
268 263
269 (defvar forms--file-buffer nil 264 (defvar forms--file-buffer nil
270 "Buffer which holds the file data") 265 "Buffer which holds the file data")
780 775
781 (defun forms--change-commands () 776 (defun forms--change-commands ()
782 "Localize some commands." 777 "Localize some commands."
783 ;; 778 ;;
784 ;; scroll-down -> forms-prev-record 779 ;; scroll-down -> forms-prev-record
785 ;;
786 (if (fboundp 'forms--scroll-down)
787 nil
788 (fset 'forms--scroll-down (symbol-function 'scroll-down))
789 (fset 'scroll-down
790 (function
791 (lambda (&optional arg)
792 (interactive "P")
793 (if (and forms--mode-setup
794 forms-forms-scroll)
795 (forms-prev-record arg)
796 (forms--scroll-down arg))))))
797 ;;
798 ;; scroll-up -> forms-next-record 780 ;; scroll-up -> forms-next-record
799 ;; 781 (if forms-forms-scroll
800 (if (fboundp 'forms--scroll-up) 782 (progn
801 nil 783 (substitute-key-definition 'scroll-up 'forms-next-record
802 (fset 'forms--scroll-up (symbol-function 'scroll-up)) 784 (current-local-map)
803 (fset 'scroll-up 785 (current-global-map))
804 (function 786 (substitute-key-definition 'scroll-down 'forms-prev-record
805 (lambda (&optional arg) 787 (current-local-map)
806 (interactive "P") 788 (current-global-map))))
807 (if (and forms--mode-setup
808 forms-forms-scroll)
809 (forms-next-record arg)
810 (forms--scroll-up arg))))))
811 ;; 789 ;;
812 ;; beginning-of-buffer -> forms-first-record 790 ;; beginning-of-buffer -> forms-first-record
813 ;;
814 (if (fboundp 'forms--beginning-of-buffer)
815 nil
816 (fset 'forms--beginning-of-buffer (symbol-function 'beginning-of-buffer))
817 (fset 'beginning-of-buffer
818 (function
819 (lambda ()
820 (interactive)
821 (if (and forms--mode-setup
822 forms-forms-jump)
823 (forms-first-record)
824 (forms--beginning-of-buffer))))))
825 ;;
826 ;; end-of-buffer -> forms-end-record 791 ;; end-of-buffer -> forms-end-record
827 ;; 792 (if forms-forms-jump
828 (if (fboundp 'forms--end-of-buffer) 793 (progn
829 nil 794 (substitute-key-definition 'beginning-of-buffer 'forms-first-record
830 (fset 'forms--end-of-buffer (symbol-function 'end-of-buffer)) 795 (current-local-map)
831 (fset 'end-of-buffer 796 (current-global-map))
832 (function 797 (substitute-key-definition 'end-of-buffer 'forms-last-record
833 (lambda () 798 (current-local-map)
834 (interactive) 799 (current-global-map))))
835 (if (and forms--mode-setup
836 forms-forms-jump)
837 (forms-last-record)
838 (forms--end-of-buffer))))))
839 ;; 800 ;;
840 ;; save-buffer -> forms--save-buffer 801 ;; save-buffer -> forms--save-buffer
841 ;; 802 (add-hook 'local-write-file-hooks
842 (if (fboundp 'forms--save-buffer) 803 (function
843 nil 804 (lambda (nil)
844 (fset 'forms--save-buffer (symbol-function 'save-buffer)) 805 (forms--checkmod)
845 (fset 'save-buffer 806 (save-excursion
846 (function 807 (set-buffer forms--file-buffer)
847 (lambda (&optional arg) 808 (save-buffer))
848 (interactive "p") 809 t))))
849 (if forms--mode-setup
850 (progn
851 (forms--checkmod)
852 (save-excursion
853 (set-buffer forms--file-buffer)
854 (forms--save-buffer arg)))
855 (forms--save-buffer arg))))))
856 ;;
857 )
858 810
859 (defun forms--help () 811 (defun forms--help ()
860 "Initial help." 812 "Initial help."
861 ;; We should use 813 ;; We should use
862 ;;(message (substitute-command-keys (concat 814 ;;(message (substitute-command-keys (concat
1342 (save-excursion 1294 (save-excursion
1343 (set-buffer (get-buffer-create "*forms-mode debug*")) 1295 (set-buffer (get-buffer-create "*forms-mode debug*"))
1344 (goto-char (point-max)) 1296 (goto-char (point-max))
1345 (insert ret))))) 1297 (insert ret)))))
1346 1298
1347 ;;; Disabled Local Variables:
1348 ;;; eval: (headers)
1349 ;;; eval: (setq comment-start ";;; ")
1350 ;;; End:
1351
1352 ;;; forms.el ends here. 1299 ;;; forms.el ends here.