summaryrefslogtreecommitdiff
path: root/src/buffer.c
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>1994-04-10 02:33:16 +0000
committerRichard M. Stallman <rms@gnu.org>1994-04-10 02:33:16 +0000
commitfdf51c379b43129acc5a6bb82ac7b2d9bc666877 (patch)
tree519d5a86d53ddcf8a8759d91446e58b029ce6607 /src/buffer.c
parentb1313e77a1c852c6573fc3a8cb45d728c447c13d (diff)
downloademacs-fdf51c379b43129acc5a6bb82ac7b2d9bc666877.tar.gz
(Vafter_change_functions, Vbefore_change_functions): New variables.
(syms_of_buffer): Set up Lisp vars.
Diffstat (limited to 'src/buffer.c')
-rw-r--r--src/buffer.c35
1 files changed, 31 insertions, 4 deletions
diff --git a/src/buffer.c b/src/buffer.c
index 38593b486c1..c9623cd4347 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -109,6 +109,8 @@ Lisp_Object Vbuffer_alist;
/* Functions to call before and after each text change. */
Lisp_Object Vbefore_change_function;
Lisp_Object Vafter_change_function;
+Lisp_Object Vbefore_change_functions;
+Lisp_Object Vafter_change_functions;
Lisp_Object Vtransient_mark_mode;
@@ -2586,8 +2588,8 @@ the beginning and end of the range of old text to be changed.\n\
No information is given about the length of the text after the change.\n\
position of the change\n\
\n\
-While executing the `before-change-function', changes to buffers do not\n\
-cause calls to any `before-change-function' or `after-change-function'.");
+Buffer changes made while executing the `before-change-function'\n\
+don't call any before-change or after-change functions.");
Vbefore_change_function = Qnil;
DEFVAR_LISP ("after-change-function", &Vafter_change_function,
@@ -2599,10 +2601,35 @@ and the length of the pre-change text replaced by that range.\n\
for a deletion, that length is the number of characters deleted,\n\
and the post-change beginning and end are at the same place.)\n\
\n\
-While executing the `after-change-function', changes to buffers do not\n\
-cause calls to any `before-change-function' or `after-change-function'.");
+Buffer changes made while executing the `after-change-function'\n\
+don't call any before-change or after-change functions.");
Vafter_change_function = Qnil;
+ DEFVAR_LISP ("before-change-functions", &Vbefore_change_functions,
+ "List of functions to call before each text change.\n\
+Two arguments are passed to each function: the positions of\n\
+the beginning and end of the range of old text to be changed.\n\
+\(For an insertion, the beginning and end are at the same place.)\n\
+No information is given about the length of the text after the change.\n\
+position of the change\n\
+\n\
+Buffer changes made while executing the `before-change-functions'\n\
+don't call any before-change or after-change functions.");
+ Vbefore_change_functions = Qnil;
+
+ DEFVAR_LISP ("after-change-functions", &Vafter_change_functions,
+ "List of function to call after each text change.\n\
+Three arguments are passed to each function: the positions of\n\
+the beginning and end of the range of changed text,\n\
+and the length of the pre-change text replaced by that range.\n\
+\(For an insertion, the pre-change length is zero;\n\
+for a deletion, that length is the number of characters deleted,\n\
+and the post-change beginning and end are at the same place.)\n\
+\n\
+Buffer changes made while executing the `after-change-functions'\n\
+don't call any before-change or after-change functions.");
+ Vafter_change_functions = Qnil;
+
DEFVAR_LISP ("first-change-hook", &Vfirst_change_hook,
"A list of functions to call before changing a buffer which is unmodified.\n\
The functions are run using the `run-hooks' function.");