]> code.delx.au - gnu-emacs-elpa/commitdiff
Strip shell* from backtrace buffer name. Add a pointer to the backtrace buffer from...
authorrocky <rocky@gnu.org>
Tue, 12 Apr 2011 01:34:06 +0000 (21:34 -0400)
committerrocky <rocky@gnu.org>
Tue, 12 Apr 2011 01:34:06 +0000 (21:34 -0400)
Start to simplificy cmdbuf-info assignment routines.

17 files changed:
dbgr/common/buffer/backtrace.el
dbgr/common/buffer/command.el
dbgr/common/menu.el
dbgr/common/track.el
dbgr/common/window.el
dbgr/debugger/bashdb/bashdb.el
dbgr/debugger/gdb/gdb.el
dbgr/debugger/kshdb/kshdb.el
dbgr/debugger/perldb/perldb.el
dbgr/debugger/pydbgr/pydbgr.el
dbgr/debugger/rdebug/rdebug.el
dbgr/debugger/remake/remake.el
dbgr/debugger/trepan/trepan.el
dbgr/debugger/trepanx/trepanx.el
dbgr/debugger/zshdb/zshdb.el
test/test-buf-bt.el
test/test-buf-cmd.el

index ecf4ddea0bcb3a165d481d2acee78aa1df65621e..8be5dd1b0a923077a185b101a81d9cc79b7a9792 100644 (file)
@@ -1,8 +1,9 @@
 ;;; Backtrace buffer
-;;; Copyright (C) 2010 Rocky Bernstein <rocky@gnu.org>
+;;; Copyright (C) 2010, 2011 Rocky Bernstein <rocky@gnu.org>
 (require 'load-relative)
 (require-relative-list
  '("../key") "dbgr-")
+
 (require-relative-list
  '("command") "dbgr-buffer-")
 
@@ -65,12 +66,17 @@ to be debugged."
     map)
   "Keymap to navigate dbgr stack frames.")
 
-(defun dbgr-remove-surrounding-stars(string)
+(defun dbgr-get-buffer-base-name(string)
   "Leading and ending * in string. For example:
-   *shell<2>* -> shell<2>. 
+   *shell<2>* -> shell<2>
+   *foo shell* -> foo
    buffer.c -> buffer.c"
   (if (string-match "^[*]?\\([^*]+\\)[*]?$" string)
-      (match-string 1 string)
+      (let ((string-sans-stars (match-string 1 string)))
+       (if (string-match "\\(.+\\) shell" string-sans-stars)
+           (match-string 1 string-sans-stars)
+         string-sans-stars)
+       )
     string
     )
 )
@@ -107,10 +113,11 @@ to be debugged."
          ;; (message "+++4 %s" dbgr-track-divert-string)
          (let ((bt-buffer (get-buffer-create
                            (format "*%s backtrace*" 
-                                   (dbgr-remove-surrounding-stars 
+                                   (dbgr-get-buffer-base-name
                                     (buffer-name)))))
                (divert-string dbgr-track-divert-string)
                )
+           (dbgr-cmdbuf-info-bt-buf= dbgr-cmdbuf-info bt-buffer)
            (with-current-buffer bt-buffer
              (setq buffer-read-only nil)
              (delete-region (point-min) (point-max))
index a4369a602e81cd5905b116942178485e452fe406..e79ac7134391582dc508e4f35fcb7f2e8eea1cf3 100644 (file)
@@ -1,5 +1,5 @@
 ;;; process-command buffer things
-;;; Copyright (C) 2010 Rocky Bernstein <rocky@gnu.org>
+;;; Copyright (C) 2010, 2011 Rocky Bernstein <rocky@gnu.org>
 
 (require 'load-relative)
 (require-relative-list
@@ -17,8 +17,8 @@
 
 (defstruct dbgr-cmdbuf-info
   "The debugger object/structure specific to a process buffer."
-  in-srcbuf?           ;; Should the selected window be the source buffer or
-                      ;; command buffer?
+  in-srcbuf?           ;; If true, selected window be the source buffer.
+                      ;; Otherwise, the command buffer?
   debugger-name        ;; Name of debugger
   frame-switch?        ;; Should the selected window be the source buffer or
                       ;; command buffer?
@@ -32,6 +32,7 @@
                        ;; this debugger. Eventually loc-regexp, file-group
                        ;; and line-group below will removed and stored here.
   srcbuf-list          ;; list of source buffers we have stopped at
+  bt-buf               ;; backtrace buffer if it exists
   bp-list              ;; list of breakpoints
   divert-output?       ;; Output is part of a conversation between front-end
                        ;; debugger. 
@@ -63,6 +64,8 @@
           (dbgr-cmdbuf-info-src-shortkey? dbgr-cmdbuf-info))
   (message "command hash: %s"
           (dbgr-cmdbuf-info-cmd-hash dbgr-cmdbuf-info))
+  (message "backtrace-buffer: %s"
+          (dbgr-cmdbuf-info-bt-buf dbgr-cmdbuf-info))
   )
 
 (defun dbgr-cmdbuf? (&optional buffer)
     )
   )
 
-;; FIXME: DRY = access via a macro. See also analogous
-;; code in dbgr-srcbuf
-(defun dbgr-cmdbuf-info-bp-list=(info value)
-  (if (dbgr-cmdbuf-info? info)
-      (setf (dbgr-cmdbuf-info-bp-list info) value)))
-
 (defun dbgr-cmdbuf-set-shortkey(&optional cmdbuf unset)
   (interactive "")
   (setq cmdbuf (or cmdbuf (current-buffer)))
        ))
   )
 
-(defun dbgr-cmdbuf-info-cmd-args=(info value)
-  (setf (dbgr-cmdbuf-info-cmd-args info) value))
+;; FIXME: DRY = access via a macro. See also analogous
+;; code in dbgr-srcbuf
+(defun dbgr-cmdbuf-info-bp-list=(value)
+  (if (dbgr-cmdbuf-info? dbgr-cmdbuf-info)
+      (setf (dbgr-cmdbuf-info-bp-list dbgr-cmdbuf-info) value)))
+
+(defun dbgr-cmdbuf-info-cmd-args=(value)
+  (setf (dbgr-cmdbuf-info-cmd-args dbgr-cmdbuf-info) value))
 
 (defun dbgr-cmdbuf-info-divert-output?=(info value)
   (setf (dbgr-cmdbuf-info-divert-output? info) value))
 (defun dbgr-cmdbuf-info-no-record?=(info value)
   (setf (dbgr-cmdbuf-info-no-record? info) value))
 
+(defun dbgr-cmdbuf-info-bt-buf=(info value)
+  (setf (dbgr-cmdbuf-info-bt-buf info) value))
+
 (defun dbgr-cmdbuf-info-prior-prompt-regexp=(info value)
   (if (dbgr-cmdbuf-info? info)
       (setf (dbgr-cmdbuf-info-prior-prompt-regexp info) value)))
index bf95d8d6267153415e37253297f3c041450ddfd9..41adb1bf215e42f3755e3a22234ad0f16c452c10 100644 (file)
@@ -72,6 +72,12 @@ menu. (The common map typically contains function key bindings.)"
                      :help (documentation 'dbgr-window-src-undisturb-cmd)
                      ))
 
+    (define-key menu-map [backtrace]
+      (dbgr-menu-item menu-map "backtrace" 'dbgr-window-src-undisturb-cmd
+                     :enable '(dbgr-get-process)
+                     :help (documentation 'dbgr-window-src-undisturb-cmd)
+                     ))
+
     (define-key menu-map [arrow3]
       (dbgr-menu-item menu-map "arrow 3" 'dbgr-goto-arrow3
                      :enable '(dbgr-get-process)
index d3e7a70693721dac105e00592d1fe5a58da6fa93..515dd67f5cec0ed083942fc3d03707cdd3e38940 100644 (file)
@@ -298,7 +298,6 @@ Otherwise return nil."
                                  (progn 
                                    ;; Add breakpoint to list of breakpoints
                                    (dbgr-cmdbuf-info-bp-list= 
-                                    dbgr-cmdbuf-info 
                                     (cons loc-or-error (dbgr-sget 'cmdbuf-info 'bp-list)))
                                    ;; Set to return location
                                    loc-or-error)))
index da0de14c13551f533542ab5637615f49ec57e417..34c9d68b20ab761f35789f7b1f857f9966f46f02 100644 (file)
@@ -90,6 +90,39 @@ See also `dbgr-window-src-window'"
     src-window)
   )
 
+;; (defun dbgr-window-bt-undisturb-src ( &optional opt-buffer switch?)
+;;   "Make sure the source buffers is displayed in windows without
+;; disturbing the command window if it is also displayed. Returns
+;; the command window
+;; See also `dbgr-window-src-window'"
+;;   (interactive)
+;;   (let* ((buffer (or opt-buffer (current-buffer)))
+;;      (src-buffer (dbgr-get-srcbuf buffer))
+;;      (src-window (get-buffer-window src-buffer))
+;;      (cmd-buffer (dbgr-get-cmdbuf buffer))
+;;      (cmd-window (get-buffer-window cmd-buffer))
+;;      (window (selected-window))
+;;      )
+;;     (if cmd-buffer 
+;;     (progn 
+;;       (unless cmd-window
+;;         (setq cmd-window 
+;;               (if (eq window src-window)
+;;                   ;; FIXME: generalize what to do here.
+;;                   (if (one-window? 't) 
+;;                       (split-window) 
+;;                     (next-window window))
+;;                 window))
+;;         (set-window-buffer cmd-window cmd-buffer)
+;;         )
+;;       (if switch? 
+;;           (and (select-window cmd-window)
+;;                (switch-to-buffer cmd-buffer))))
+
+;;       )
+;;     src-window)
+;;   )
+
 ;; (defun dbgr-window-src-and-cmd ( &optional opt-buffer )
 ;;   "Make sure the source buffers is displayed in windows without
 ;; disturbing the command window if it is also displayed. Returns
index 95400ff34b5fd42b28f0830c9010dc271b9c7144..7f51e6322dd54926caa89d79183206a744aaa3cb 100644 (file)
@@ -1,3 +1,4 @@
+;;; Copyright (C) 2011 Rocky Bernstein <rocky@gnu.org>
 ;;  `bashdb' Main interface to bashdb via Emacs
 (require 'load-relative)
 (require-relative-list '("../../common/helper") "dbgr-")
@@ -67,7 +68,7 @@ marginal icons is reset."
          (progn
            (switch-to-buffer cmd-buf)
            (bashdb-track-mode 't)
-           (dbgr-cmdbuf-info-cmd-args= dbgr-cmdbuf-info cmd-args)
+           (dbgr-cmdbuf-info-cmd-args= cmd-args)
            )
        (message "Error running bashdb command"))
     )))
index 6602931f3843b6cd7a4dfc5ee96e3b024629ca66..39e13c7812da5ed60863004aebe0c6c8c22138ef 100644 (file)
@@ -1,4 +1,4 @@
-;;; Copyright (C) 2010 Rocky Bernstein <rocky@gnu.org>
+;;; Copyright (C) 2010, 2011 Rocky Bernstein <rocky@gnu.org>
 ;;  `dbgr-gdb' Main interface to gdb via Emacs
 (require 'load-relative)
 (require-relative-list '("../../common/helper") "dbgr-")
@@ -68,7 +68,7 @@ marginal icons is reset."
          (progn
            (switch-to-buffer cmd-buf)
            (dbgr-gdb-track-mode 't)
-           (dbgr-cmdbuf-info-cmd-args= dbgr-cmdbuf-info cmd-args)
+           (dbgr-cmdbuf-info-cmd-args= cmd-args)
            )
        (message "Error running gdb command"))
     )))
index e521fad8e9124f3374b9543fdaff9034cc5d2821..95c8c855dfc4463de774c8af0d83ed588b31971b 100644 (file)
@@ -1,3 +1,4 @@
+;;; Copyright (C) 2011 Rocky Bernstein <rocky@gnu.org>
 ;;  `kshdb' Main interface to kshdb via Emacs
 (require 'load-relative)
 (require-relative-list '("../../common/helper") "dbgr-")
@@ -67,7 +68,7 @@ marginal icons is reset."
          (progn
            (switch-to-buffer cmd-buf)
            (kshdb-track-mode 't)
-           (dbgr-cmdbuf-info-cmd-args= dbgr-cmdbuf-info cmd-args)
+           (dbgr-cmdbuf-info-cmd-args= cmd-args)
            )
        (message "Error running kshdb command"))
     )))
index b8881a0257a1a07bfcaf8575e375e13010216a41..f1e50fa63d7d693539ee62e0d68bae859e1be50e 100644 (file)
@@ -64,7 +64,7 @@ marginal icons is reset."
          (progn
            (switch-to-buffer cmd-buf)
            (dbgr-perldb-track-mode 't)
-           (dbgr-cmdbuf-info-cmd-args= dbgr-cmdbuf-info cmd-args)
+           (dbgr-cmdbuf-info-cmd-args= cmd-args)
            )
        (message "Error running perldb command"))
     )))
index 5eb31c183adf641669df792882fb1610a35b9368..8686d61b18755f25555d4d082f3ee6424481be7a 100644 (file)
@@ -1,4 +1,4 @@
-;;; Copyright (C) 2010 Rocky Bernstein <rocky@gnu.org>
+;;; Copyright (C) 2010, 2011 Rocky Bernstein <rocky@gnu.org>
 ;;  `pydbgr' Main interface to pydbgr via Emacs
 (require 'load-relative)
 (require-relative-list '("../../common/helper"
@@ -70,7 +70,7 @@ marginal icons is reset."
          (progn
            (switch-to-buffer cmd-buf)
            (pydbgr-track-mode 't)
-           (dbgr-cmdbuf-info-cmd-args= dbgr-cmdbuf-info cmd-args)
+           (dbgr-cmdbuf-info-cmd-args= cmd-args)
            )
        (message "Error running pydbgr command"))
     )))
index 0dd7c00175165ace2a29a6e64c345036c37ea96a..551b8cfbafad07818192a475f2fce33858eee418 100644 (file)
@@ -1,4 +1,4 @@
-;;; Copyright (C) 2010 Rocky Bernstein <rocky@gnu.org>
+;;; Copyright (C) 2010, 2011 Rocky Bernstein <rocky@gnu.org>
 ;;  `rdebug' Main interface to rdebug via Emacs
 (require 'load-relative)
 (require-relative-list '("../../common/helper"
@@ -123,7 +123,7 @@ marginal icons is reset."
          (progn
            (switch-to-buffer cmd-buf)
            (rdebug-track-mode 't)
-           (dbgr-cmdbuf-info-cmd-args= dbgr-cmdbuf-info cmd-args)
+           (dbgr-cmdbuf-info-cmd-args= cmd-args)
            )
        (message "Error running rdebug command"))
     )))
index 0fab641c233d4a948487a12aab980c12be3248cd..082f41e9672be6a49cf559b093bf4db3bc751511 100644 (file)
@@ -1,3 +1,4 @@
+;;; Copyright (C) 2011 Rocky Bernstein <rocky@gnu.org>
 ;;  `remake' Main interface to remake via Emacs
 (require 'load-relative)
 (require-relative-list '("../../common/helper") "dbgr-")
@@ -68,7 +69,7 @@ marginal icons is reset."
          (progn
            (switch-to-buffer cmd-buf)
            (remake-track-mode 't)
-           (dbgr-cmdbuf-info-cmd-args= dbgr-cmdbuf-info cmd-args)
+           (dbgr-cmdbuf-info-cmd-args= cmd-args)
            )
        (message "Error running remake command"))
     )))
index c694a1c6be4aaf4f51234d754646ddc9bab7cfb8..80bffa85d3b8507fb2518e609b945d5d3565ecfe 100644 (file)
@@ -1,4 +1,4 @@
-;;; Copyright (C) 2010 Rocky Bernstein <rocky@gnu.org>
+;;; Copyright (C) 2010, 2011 Rocky Bernstein <rocky@gnu.org>
 ;;  `trepan' Main interface to trepan via Emacs
 (require 'load-relative)
 (require-relative-list '("../../common/helper") "dbgr-")
@@ -68,7 +68,7 @@ marginal icons is reset."
          (progn
            (switch-to-buffer cmd-buf)
            (trepan-track-mode 't)
-           (dbgr-cmdbuf-info-cmd-args= dbgr-cmdbuf-info cmd-args)
+           (dbgr-cmdbuf-info-cmd-args= cmd-args)
            )
        (message "Error running trepan command"))
     )))
index 9bc4c2015c56656063afb26c45d0ae87517ad6ac..41bc318237c0e8aebac0af7a8c92c99e589ce4ef 100644 (file)
@@ -1,4 +1,4 @@
-;;; Copyright (C) 2010 Rocky Bernstein <rocky@gnu.org>
+;;; Copyright (C) 2010, 2011 Rocky Bernstein <rocky@gnu.org>
 ;;  `trepanx' Main interface to trepanx via Emacs
 (require 'load-relative)
 (require-relative-list '("../../common/helper") "dbgr-")
@@ -68,7 +68,7 @@ marginal icons is reset."
          (progn
            (switch-to-buffer cmd-buf)
            (trepanx-track-mode 't)
-           (dbgr-cmdbuf-info-cmd-args= dbgr-cmdbuf-info cmd-args)
+           (dbgr-cmdbuf-info-cmd-args= cmd-args)
            )
        (message "Error running trepanx command"))
     )))
index 1d1ec424bdea1d0541852a5069169567db68667b..695e891021024e0ddcbaca9aba343a1fada0750a 100644 (file)
@@ -1,3 +1,4 @@
+;;; Copyright (C) 2011 Rocky Bernstein <rocky@gnu.org>
 ;;  `zshdb' Main interface to zshdb via Emacs
 (require 'load-relative)
 (require-relative-list '("../../common/helper") "dbgr-")
@@ -67,7 +68,7 @@ marginal icons is reset."
          (progn
            (switch-to-buffer cmd-buf)
            (zshdb-track-mode 't)
-           (dbgr-cmdbuf-info-cmd-args= dbgr-cmdbuf-info cmd-args)
+           (dbgr-cmdbuf-info-cmd-args= cmd-args)
            )
        (message "Error running zshdb command"))
     )))
index d096f2eccb05b9ce4b180dd0591e1d8699bc281c..8557ef86383ebae744e42f7b68b0d380effef48b 100644 (file)
         (tag dbgr-buf-bt)
         (specify "remove buffer stars"
                  (assert-equal "abc" 
-                               (dbgr-remove-surrounding-stars "*abc*")
+                               (dbgr-get-buffer-base-name "*abc*")
                                )
                  )
         (specify "no buffer stars"
                  (assert-equal "abc" 
-                               (dbgr-remove-surrounding-stars "*abc*")
+                               (dbgr-get-buffer-base-name "abc")
+                               )
+                 )
+        (specify "remove buffer stars and shell"
+                 (assert-equal "abc" 
+                               (dbgr-get-buffer-base-name "*abc shell*")
                                )
                  )
         )
index 0cf5511f2176e3578fc9d0ba021474d32e4f2a48..2136359063e142c8e624a11de00807888cc10c16 100644 (file)
@@ -15,7 +15,7 @@
                  (setq temp-cmdbuf (generate-new-buffer "*cmdbuf-test*"))
                  (assert-t (dbgr-cmdbuf-init temp-cmdbuf "trepan" (gethash "trepan" dbgr-pat-hash)))
                  (with-current-buffer temp-cmdbuf
-                   (dbgr-cmdbuf-info-cmd-args= dbgr-cmdbuf-info '("command" "args"))
+                   (dbgr-cmdbuf-info-cmd-args= '("command" "args"))
                    (assert-equal "command args" 
                                  (dbgr-cmdbuf-command-string temp-cmdbuf))
                    (assert-equal "trepan"