]> code.delx.au - gnu-emacs-elpa/commitdiff
Add routine to toggle cmdbuf in-debugger? state. Add temporary key
authorrocky <rocky@gnu.org>
Mon, 18 Apr 2011 00:37:05 +0000 (20:37 -0400)
committerrocky <rocky@gnu.org>
Mon, 18 Apr 2011 00:37:05 +0000 (20:37 -0400)
for backtrace. Workaround bug in turning off dbgr-track-mode.
Test shortkey customization per debugger. As always much more is needed.

dbgr/common/buffer/command.el
dbgr/common/shortkey.el
dbgr/common/track-mode.el
dbgr/debugger/perldb/track-mode.el
test/test-regexp-remake.el

index 175597fe6f5cf188dbe98d17ffc119693c76652d..613dd45bee66f4dfb1287892dee7e2353625871d 100644 (file)
        dbgr-cmdbuf-info
        (dbgr-cmdbuf-info? dbgr-cmdbuf-info)))
 
+(defun dbgr-cmdbuf-toggle-in-debugger? (&optional buffer)
+  "Toggle state of whether we think we are in the debugger or not"
+  (interactive "")
+  (setq buffer (dbgr-get-cmdbuf buffer))
+  (if buffer
+      (with-current-buffer buffer
+       (dbgr-cmdbuf-info-in-debugger?= 
+        (not (dbgr-sget 'cmdbuf-info 'in-debugger?)))
+       (message "Command buffer is in debugger?: %s\n" 
+                (dbgr-cmdbuf-info-in-debugger? dbgr-cmdbuf-info))
+       (dbgr-cmdbuf-mode-line-update)
+       )
+    (message "Buffer %s is not a debugger buffer; nothing done."
+            (or buffer (current-buffer)))
+    )
+  )
+
 (defun dbgr-cmdbuf-stay-in-source-toggle (&optional buffer)
   "Toggle state of whether we should stay in source code or not"
   (interactive "")
index d97e8ff6ee00732cfde28be17946a08a287a6ea8..1deda3f22ca5bf8dc35b28ade8c92ed15e7fdc59 100644 (file)
@@ -22,6 +22,7 @@
     (define-key map "d"        'dbgr-cmd-newer-frame)
     (define-key map "u"        'dbgr-cmd-older-frame)
     (define-key map "l"        'dbgr-recenter-arrow)
+    (define-key map "B"        'dbgr-backtrace-init)
     (define-key map "C"        'dbgr-window-cmd-undisturb-src)
     (define-key map "S"        'dbgr-window-src-undisturb-cmd)
 
index ce5adba467f6ba0fd263ed42923b0ffb4209ffca..4742273e36140f98c8291ee9427c486f2fa95b9a 100644 (file)
@@ -94,7 +94,7 @@ of this mode."
        )
       (dbgr-fringe-erase-history-arrows)
       (remove-hook 'comint-output-filter-functions 
-                  'dbgr-track-comint-output-filter-hook)
+                  'dbgr-track-comint-output-filter-hook)
       (remove-hook 'eshell-output-filter-functions 
                    'dbgr-track-eshell-output-filter-hook)
       (let* ((cmd-process (get-buffer-process (current-buffer)))
@@ -107,6 +107,9 @@ of this mode."
        (setq mode-line-process status)
        ;; Force mode line redisplay soon.
        (force-mode-line-update)
+       ;; FIXME: This is a workaround. Without this, we comint doesn't
+       ;; process commands
+       (comint-mode)
        )
 
       ;; FIXME: restore/unchain old process sentinels.
@@ -116,8 +119,12 @@ of this mode."
 
 
 ;; For name == "trepan", produces: 
+;;   (defvar trepan-track-mode nil
+;;     "Non-nil if using trepan track-mode ... "
 ;;   (defvar trepan-track-mode-map (make-sparse-keymap))
 ;;   (set-keymap-parent trepan-track-mode-map dbgr-track-mode-map)
+;;   (defvar trepan-short-key-mode-map (make-sparse-keymap))
+;;   (set-keymap-parent trepan-short-key-mode-map dbgr-short-key-mode-map)
 (defmacro dbgr-track-mode-vars (name)
   `(progn
      (defvar ,(intern (concat name "-track-mode")) nil
@@ -125,7 +132,9 @@ of this mode."
 Use the command `%s-track-mode' to toggle or set this variable." name name))
      (defvar ,(intern (concat name "-track-mode-map")) (make-sparse-keymap)
        ,(format "Keymap used in `%s-track-mode'." name))
-     (defvar ,(intern (concat name "-track-mode-map")) dbgr-track-mode-map)
+     (set-keymap-parent ,(intern (concat name "-track-mode-map")) dbgr-track-mode-map)
+     (defvar ,(intern (concat name "-short-key-mode-map")) (make-sparse-keymap))
+     (set-keymap-parent ,(intern (concat name "-short-key-mode-map")) dbgr-short-key-mode-map)
     ))
 
 ;; FIXME: The below could be a macro? I have a hard time getting
index 09494f841ba9aba46c1442e19922ecd1c9f8881c..3c8c8f70874cb435f2dc0734f02fb34c8b341551 100644 (file)
 (define-key dbgr-perldb-track-mode-map 
   (kbd "C-c !b") 'dbgr-goto-debugger-backtrace-line)
 
+;; Perldb doesn't have stack switching commands.
+(define-key dbgr-perldb-short-key-mode-map
+  [remap dbg-cmd-newer-frame] 'undefined)
+(define-key dbgr-perldb-short-key-mode-map
+  [remap dbgr-cmd-older-frame] 'undefined)
+
 (defun dbgr-perldb-track-mode-hook()
   (if dbgr-perldb-track-mode
       (progn
index b90c2306152a67a2362fc943345f384ea65422ec..c9051cec5bdd4f7aefd264fc990ba6f031d88e8e 100644 (file)
@@ -47,7 +47,7 @@
                                           (match-end line-group)))
                  (setq pos (match-end 0))
                  
-                 (assert-equal 38 (string-match frame-re s1 pos))
+                 (assert-equal 39 (string-match frame-re s1 pos))
                  (assert-equal "1" (substring s1 
                                               (match-beginning num-group)
                                               (match-end num-group)))