[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master 459a234 2/7: Show watchpoints when describing varia
From: |
Noam Postavsky |
Subject: |
[Emacs-diffs] master 459a234 2/7: Show watchpoints when describing variables |
Date: |
Sat, 3 Dec 2016 01:45:05 +0000 (UTC) |
branch: master
commit 459a23444e321d25f0b82bede76947576f01ecc3
Author: Noam Postavsky <address@hidden>
Commit: Noam Postavsky <address@hidden>
Show watchpoints when describing variables
* src/data.c (Fget_variable_watchers): New function.
* lisp/help-fns.el (describe-variable): Use it to detect watching
functions.
---
lisp/help-fns.el | 7 +++++++
src/data.c | 11 +++++++++++
2 files changed, 18 insertions(+)
diff --git a/lisp/help-fns.el b/lisp/help-fns.el
index 87e7d8f..23dec89 100644
--- a/lisp/help-fns.el
+++ b/lisp/help-fns.el
@@ -918,6 +918,7 @@ it is displayed along with the global value."
(indirect-variable variable)
(error variable)))
(obsolete (get variable 'byte-obsolete-variable))
+ (watchpoints (get-variable-watchers variable))
(use (car obsolete))
(safe-var (get variable 'safe-local-variable))
(doc (or (documentation-property
@@ -967,6 +968,12 @@ if it is given a local binding.\n"))))
(t ".")))
(terpri))
+ (when watchpoints
+ (setq extra-line t)
+ (princ " Calls these functions when changed: ")
+ (princ watchpoints)
+ (terpri))
+
(when (member (cons variable val)
(with-current-buffer buffer
file-local-variables-alist))
diff --git a/src/data.c b/src/data.c
index 07730d0..095b740 100644
--- a/src/data.c
+++ b/src/data.c
@@ -1463,6 +1463,16 @@ SYMBOL (or its aliases) are set. */)
return Qnil;
}
+DEFUN ("get-variable-watchers", Fget_variable_watchers, Sget_variable_watchers,
+ 1, 1, 0,
+ doc: /* Return a list of SYMBOL's active watchers. */)
+ (Lisp_Object symbol)
+{
+ return (SYMBOL_TRAPPED_WRITE_P (symbol) == SYMBOL_TRAPPED_WRITE)
+ ? Fget (Findirect_variable (symbol), Qwatchers)
+ : Qnil;
+}
+
void
notify_variable_watchers (Lisp_Object symbol,
Lisp_Object newval,
@@ -3874,4 +3884,5 @@ syms_of_data (void)
DEFSYM (Qset_default, "set-default");
defsubr (&Sadd_variable_watcher);
defsubr (&Sremove_variable_watcher);
+ defsubr (&Sget_variable_watchers);
}
- [Emacs-diffs] master updated (0fc4761 -> 88fefc3), Noam Postavsky, 2016/12/02
- [Emacs-diffs] master 459a234 2/7: Show watchpoints when describing variables,
Noam Postavsky <=
- [Emacs-diffs] master cfd2b9e 3/7: Add function to trigger debugger on variable write, Noam Postavsky, 2016/12/02
- [Emacs-diffs] master d3faef9 4/7: Ensure redisplay using variable watcher, Noam Postavsky, 2016/12/02
- [Emacs-diffs] master e7cd98b 5/7: Add tests for watchpoints, Noam Postavsky, 2016/12/02
- [Emacs-diffs] master 56c8178 6/7: Document watchpoints, Noam Postavsky, 2016/12/02
- [Emacs-diffs] master 2272131 1/7: Add lisp watchpoints, Noam Postavsky, 2016/12/02
- [Emacs-diffs] master 88fefc3 7/7: ; Merge: Lisp watchpoints (Bug#24923), Noam Postavsky, 2016/12/02