Function: edebug-modify-breakpoint
edebug-modify-breakpoint is a byte-compiled function defined in
edebug.el.gz.
Signature
(edebug-modify-breakpoint FLAG &optional CONDITION TEMPORARY)
Documentation
Modify the breakpoint for the form at point or after it.
Set it if FLAG is non-nil, clear it otherwise. Then move to that point. If CONDITION or TEMPORARY are non-nil, add those attributes to the breakpoint.
Source Code
;; Defined in /usr/src/emacs/lisp/emacs-lisp/edebug.el.gz
(defun edebug-modify-breakpoint (flag &optional condition temporary)
"Modify the breakpoint for the form at point or after it.
Set it if FLAG is non-nil, clear it otherwise. Then move to that point.
If CONDITION or TEMPORARY are non-nil, add those attributes to
the breakpoint."
(let ((edebug-stop-point (edebug-find-stop-point)))
(if edebug-stop-point
(let* ((edebug-def-name (car edebug-stop-point))
(index (cdr edebug-stop-point))
(edebug-data (edebug-get-edebug-or-ghost edebug-def-name))
;; pull out parts of edebug-data
(edebug-def-mark (car edebug-data))
(edebug-breakpoints (car (cdr edebug-data)))
(offset-vector (nth 2 edebug-data))
(position (+ edebug-def-mark (aref offset-vector index)))
present)
;; delete it either way
(setq present (assq index edebug-breakpoints))
(setq edebug-breakpoints (delq present edebug-breakpoints))
(if flag
(progn
;; add it to the list and resort
(setq edebug-breakpoints
(edebug-sort-alist
(cons
(list index condition temporary
(set-marker (make-marker) position)
nil)
edebug-breakpoints)
'<))
(if condition
(message "Breakpoint set in %s with condition: %s"
edebug-def-name condition)
(message "Breakpoint set in %s" edebug-def-name)))
(if present
(message "Breakpoint unset in %s" edebug-def-name)
(message "No breakpoint here")))
(setcar (cdr edebug-data) edebug-breakpoints)
(goto-char position)
(edebug--overlay-breakpoints edebug-def-name)))))