(forms-mode): Use add-hook rather than make-local-variable+setq.
Use with-current-buffer. Run the new and the old hooks.
(forms--update): Use with-current-buffer and line-end-position.
(forms--goto-record): New fun.
(forms-jump-record, forms-insert-record, forms-delete-record): Use it.
(forms--process-format-list): Remove unused var `this-item'.
(forms--intuit-from-file): Remove unused var `the-result'.
(forms--trans): Remove unused var `x'.
(forms--exit, forms-exit, forms-exit-no-save): Remove unused arg.
force the data buffer to be saved, even if the data didn't
change, in case the write filter was modified. Restore the
current record after read-file-filter finishes.
expicitly since concat will no longer accept integers.
(forms-print): Use local `total-nb-records' since
`forms--total-records' will be inaccessible after buffer switching.
(forms--make-parser-elt, forms-search-forward, forms-search-backward):
Fix error messages.
(forms-save-buffer):
Do not run the `write-file-filter' hooks
explicitly since they are run via `local-write-file-hooks'.
(forms-search-forward, forms-search-backward):
Wrap the search. Use `error' to signal failure.
Remove (beep)s for warnings.
Change comment about the iif hook to reflect the actual reason.
Correct error in field numbering.
(forms-mode): Make `forms--elements' local before calling
`forms--process-format-list'.
(forms-save-buffer): `forms-write-file-filter' and
`forms-read-file-filter' were not called correctly.
forms--make-format): Add `intangible' text property to read-only areas.
(forms-next-field, forms-previous-field): Use
`inhibit-point-motion-hooks' to allow move between two
intangible areas.
forms-search-backward.
(forms--mode-menu-ro, forms--mode-menu-edit): New
functions to create a pulldown menu in the menubar.
(forms--mode-commands): Call them for the edit and view mode.
(forms-print): New function.
preprocess file contents before being passed to forms mode.
(forms-write-file-filter): new hook function to preprocess file
contents before it is being saved to disk. Can be used to undo the
effects of `forms-read-file-filter'.
(forms-mode): Supply a default format if no `forms-format-list' was
specified.
Preprocess file contents using `forms-read-file-filter' and attach
`forms-write-file-filter' to the `local-write-file-hooks' of the file
buffer.
Present a friendly message if the visited file is empty or new.
(forms--intuit-from-file): New subroutine to get the number of fields
from the data file; constructs a default format list.
(forms-save-buffer): Forms mode wrapper for `save-buffer'.
(forms--change-commands, forms--exit): Use it.
(forms--update): Check for the presence of the field separator in any
of the fields. Refuse update if found.
(forms-delete-record): Allow the last record of the file to be
deleted, even if not terminated by a newline.
(forms--local-write-file-function): Remove. Didn't do any good.
Replaced by `forms-save-buffer'.
`enable-local-eval' is set to t.
Correct setting of `forms--mode-setup'.
(forms--local-write-file-function): New function to be used as
`local-write-file-hooks'.
(forms-mode): Use it.
(forms-find-file,forms-find-file-other-window): Locally set
`enable-local-eval' and `enable-local-variables' to t.
(forms-find-file-other-window): Remove extraneous call to
`eval-current-buffer'.
can parse the value of minor-mode-alist correctly. The string
" View" is now dependent on the value of forms-read-only.
Documentation: `forms-forms-scroll' and `forms-forms-jump'
now default to nil.
`forms-new-record-filter' and `forms-modified-record-filter'
cannot be redefined as functions.
Commands and keymaps are changed.
Add function key defs.
(forms-version): Docstring includes full RCS id.
(forms-forms-scroll): Defaults to nil.
(forms-forms-jump): Defaults to nil.
(forms-mode-edit-map, forms-mode-ro-map): Additional keymaps
for edit mode and read-only mode.
(forms--new-record-filter, forms--modified-record-filter): Deleted.
(forms-mode): Docstring now includes the key bindings, since
both edit mode and read-only mode must be supported.
Changed `forms-new-record-filter' and `forms-modified-record-filter'
semantics: the variable must point to a function and may
not be defined as a function anymore.
Use three keymaps: `forms-mode-map' (C-c commands),
`forms-mode-edit-map' (normal mode) and `forms-mode-ro-map'
(read-only mode). The maps are not buffer local.
Corrected error message text.
Moved setting up write-file-hooks and revert-buffer-function
to function `forms--change-commands'.
(forms--process-format-list): Changed error messages to be more descriptive.
(forms--set-keymaps): Setup the three keymaps.
(forms--mode-commands): Use new command key bindings.
(forms--mode-commands1): New helper function for `forms--mode-commands'.
(forms--change-commands): Handle setup of
local-write-file-hooks and revert-buffer-function.
(forms--help): Show new command bindings.
(forms--show-record): Replaced `forms--modified-record-filter' by
`forms-modified-record-filter'.
(forms-jump-record): Changed error message.
(forms-toggle-read-only): New function.
(forms-view-mode, forms-edit-mode): Deleted.
(forms-insert-record): Replaced `forms--new-record-filter' by
`forms-new-record-filter'.
(forms-insert-record, forms-delete-record): Disallow in read-only mode.
(forms-prev-field): New function.
Documentation: `forms-forms-scroll' and `forms-forms-jump'
now default to nil.
`forms-new-record-filter' and `forms-modified-record-filter'
cannot be redefined as functions.
Commands and keymaps are changed.
Add function key defs.
(forms-version): Docstring includes full RCS id.
(forms-forms-scroll): Defaults to nil.
(forms-forms-jump): Defaults to nil.
(forms-mode-edit-map, forms-mode-ro-map): Additional keymaps
for edit mode and read-only mode.
(forms--new-record-filter, forms--modified-record-filter): Deleted.
(forms-mode): Docstring now includes the key bindings, since
both edit mode and read-only mode must be supported.
Changed `forms-new-record-filter' and `forms-modified-record-filter'
semantics: the variable must point to a function and may
not be defined as a function anymore.
Use three keymaps: `forms-mode-map' (C-c commands),
`forms-mode-edit-map' (normal mode) and `forms-mode-ro-map'
(read-only mode). The maps are not buffer local.
Changed the text of error messages to be more descriptive, and
onsistent with the documentation.
Moved setting up write-file-hooks and revert-buffer-function
to function `forms--change-commands'.
(forms--process-format-list): Changed error messages to be
more descriptive.
(forms--set-keymaps): Setup the three keymaps.
(forms--mode-commands): Use new command key bindings.
(forms--mode-commands1): New helper function for
`forms--mode-commands'.
(forms--change-commands): Handle setup of
local-write-file-hooks and revert-buffer-function.
(forms--help): Show new command bindings.
(forms--show-record): Replaced `forms--modified-record-filter' by
`forms-modified-record-filter'.
(forms-jump-record): Changed error message.
(forms-toggle-read-only): New function, replaces
`forms-view-mode' and `forms-edit-mode'.
(forms-view-mode, forms-edit-mode): Deleted.
(forms-insert-record): Replaced `forms--new-record-filter' by
`forms-new-record-filter'.
(forms-insert-record, forms-delete-record): Disallow in read-only mode.
(forms-prev-field): New function.
(forms-delete-record, forms--update): Use `delete-region' instead of
`kill-line' to avoid messing around with the kill ring.
Release 2.1 for Emacs 19.19.
(forms--process-format-list): No need to prepend a text item anymore.
(forms--ro-modification-start): Renamed to `forms--iif-start.
(forms--ro-properties): Renamed to `forms--iif-properties'.
(forms--romh): Renamed to `forms--iif-hook'. Rewritten to use
`insert-in-front-hooks' instead of `modification-hooks'.
(forms--romh-post-command-hook): Renamed to
`forms--iif-post-command-hook'. Rewritten to use
`insert-in-front-hooks' instead of `modification-hooks'.
(forms--make-format, forms--make-format-elt-using-text-properties):
Use `insert-in-front-hooks' instead of `modification-hooks'.
Remove `forms--electric' code. Use `front-sticky' and
`rear-nonsticky' text properties to control the insertion of text
between read-only fields.
(forms--show-record): Remove `forms--electric' code.