3240 |
|
|
3241 |
|
|
3242 |
(defun edebug-set-global-break-condition (expression) |
(defun edebug-set-global-break-condition (expression) |
3243 |
(interactive (list (read-minibuffer |
(interactive |
3244 |
"Global Condition: " |
(list |
3245 |
(format "%s" edebug-global-break-condition)))) |
(let ((initial (and edebug-global-break-condition |
3246 |
|
(format "%s" edebug-global-break-condition)))) |
3247 |
|
(read-from-minibuffer |
3248 |
|
"Global Condition: " initial read-expression-map t |
3249 |
|
(if (equal (car read-expression-history) initial) |
3250 |
|
'(read-expression-history . 1) |
3251 |
|
'read-expression-history))))) |
3252 |
(setq edebug-global-break-condition expression)) |
(setq edebug-global-break-condition expression)) |
3253 |
|
|
3254 |
|
|
4321 |
|
|
4322 |
(defalias 'edebug-window-live-p 'window-live-p) |
(defalias 'edebug-window-live-p 'window-live-p) |
4323 |
|
|
|
;; Mark takes an argument in Emacs 19. |
|
4324 |
(defun edebug-mark () |
(defun edebug-mark () |
4325 |
(mark t)) ;; Does this work for lemacs too? |
(mark t)) |
4326 |
|
|
4327 |
(defun edebug-set-conditional-breakpoint (arg condition) |
(defun edebug-set-conditional-breakpoint (arg condition) |
4328 |
"Set a conditional breakpoint at nearest sexp. |
"Set a conditional breakpoint at nearest sexp. |
4332 |
(interactive |
(interactive |
4333 |
(list |
(list |
4334 |
current-prefix-arg |
current-prefix-arg |
4335 |
;; Read condition as follows; getting previous condition is cumbersome: |
;; Read condition as follows; getting previous condition is cumbersome: |
4336 |
(let ((edebug-stop-point (edebug-find-stop-point))) |
(let ((edebug-stop-point (edebug-find-stop-point))) |
4337 |
(if edebug-stop-point |
(if edebug-stop-point |
4338 |
(let* ((edebug-def-name (car edebug-stop-point)) |
(let* ((edebug-def-name (car edebug-stop-point)) |
4341 |
(edebug-breakpoints (car (cdr edebug-data))) |
(edebug-breakpoints (car (cdr edebug-data))) |
4342 |
(edebug-break-data (assq index edebug-breakpoints)) |
(edebug-break-data (assq index edebug-breakpoints)) |
4343 |
(edebug-break-condition (car (cdr edebug-break-data))) |
(edebug-break-condition (car (cdr edebug-break-data))) |
4344 |
(edebug-expression-history |
(initial (and edebug-break-condition |
4345 |
;; Prepend the current condition, if any. |
(format "%s" edebug-break-condition)))) |
4346 |
(if edebug-break-condition |
(read-from-minibuffer |
4347 |
(cons edebug-break-condition read-expression-history) |
"Condition: " initial read-expression-map t |
4348 |
read-expression-history))) |
(if (equal (car read-expression-history) initial) |
4349 |
(prog1 |
'(read-expression-history . 1) |
4350 |
(read-from-minibuffer |
'read-expression-history))))))) |
|
"Condition: " nil read-expression-map t |
|
|
'edebug-expression-history) |
|
|
(setq read-expression-history edebug-expression-history) |
|
|
)))))) |
|
4351 |
(edebug-modify-breakpoint t condition arg)) |
(edebug-modify-breakpoint t condition arg)) |
4352 |
|
|
|
;;; The default for all above is Emacs. |
|
|
|
|
|
;; Epoch specific code was in a separate file: edebug-epoch.el. |
|
|
|
|
4353 |
(easy-menu-define edebug-menu edebug-mode-map "Edebug menus" edebug-mode-menus) |
(easy-menu-define edebug-menu edebug-mode-map "Edebug menus" edebug-mode-menus) |
4354 |
|
|
4355 |
;;; Byte-compiler |
;;; Byte-compiler |