]> code.delx.au - gnu-emacs-elpa/commitdiff
Beef up describe for source buffers.
authorrocky <rocky@gnu.org>
Sun, 17 Apr 2011 01:14:38 +0000 (21:14 -0400)
committerrocky <rocky@gnu.org>
Sun, 17 Apr 2011 01:14:38 +0000 (21:14 -0400)
dbgr/common/buffer/source.el
dbgr/common/lochist.el

index 6bdfb01bde30b4e22d0a0b7df9b67847d20ec5cf..2f22e8317870a352505c969e221018c21aa068a4 100644 (file)
@@ -50,23 +50,41 @@ to be debugged."
 (dbgr-struct-field-setter "dbgr-srcbuf-info" "short-key?")
 (dbgr-struct-field-setter "dbgr-srcbuf-info" "was-read-only?")
 
-(defun dbgr-srcbuf-info-describe ()
+(defun dbgr-srcbuf-info-describe (&optional buffer)
   (interactive "")
-  (let ((info dbgr-srcbuf-info)
-       (srcbuf-name (buffer-name)))
-    (switch-to-buffer (get-buffer-create "*Describe*"))
-    (delete-region (point-min) (point-max))
-    (insert (format "srcbuf-info for %s\n" srcbuf-name))
-    (insert (format "Debugger-name: %s\n" 
-                   (dbgr-srcbuf-info-debugger-name info)))
-    (insert (format "Command-line args: %s\n" 
-                   (dbgr-srcbuf-info-cmd-args info)))
-    (insert (format "Was previously read only?: %s\n"
-                   (dbgr-srcbuf-info-was-read-only? info)))
-    (insert (format "Command Process buffer: %s\n"
-                   (dbgr-srcbuf-info-cmdproc info)))
-    (insert (format "Location history: %s\n"
-                   (dbgr-srcbuf-info-loc-hist info)))
+  (setq buffer (dbgr-get-srcbuf buffer))
+  (if buffer
+      (with-current-buffer buffer
+       (interactive "")
+       (let ((info dbgr-srcbuf-info)
+             (srcbuf-name (buffer-name))
+             (a1 dbgr-overlay-arrow1)
+             (a2 dbgr-overlay-arrow2)
+             (a3 dbgr-overlay-arrow3)
+             )
+         (switch-to-buffer (get-buffer-create "*Describe*"))
+         (delete-region (point-min) (point-max))
+         (insert (format "srcbuf-info for %s\n" srcbuf-name))
+         (insert (format "Debugger-name: %s\n" 
+                         (dbgr-srcbuf-info-debugger-name info)))
+         (insert (format "Command-line args: %s\n" 
+                         (dbgr-srcbuf-info-cmd-args info)))
+         (insert (format "Was previously read only?: %s\n"
+                         (dbgr-srcbuf-info-was-read-only? info)))
+         (insert (format "Command Process buffer: %s\n"
+                         (dbgr-srcbuf-info-cmdproc info)))
+
+         ;; FIXME This info isn't part of the src info structure.
+         (insert (format "Overlay arrow 1: %s\n" a1))
+         (insert (format "Overlay arrow 2: %s\n" a2))
+         (insert (format "Overlay arrow 3: %s\n" a3))
+         (insert (format "Location history:\n"))
+
+         (dbgr-loc-hist-describe  (dbgr-srcbuf-info-loc-hist info))
+         )
+       )
+    (message "Buffer %s is not a debugger source buffer; nothing done."
+            (or buffer (current-buffer)))
     )
   )
 
index 439e5859f710e32472f9712c469b8ece979828b4..ec51fda643a44a1654f57e963043ab0915b7749c 100644 (file)
   "A list of source-code positions recently encountered"
   (position -1)
   (ring (make-ring dbgr-loc-hist-size)))
+
+(defun dbgr-loc-hist-describe(loc-hist &optional buffer)
+  (unless buffer (setq buffer (current-buffer)))
+  (insert (format "  buffer size: %d\n" dbgr-loc-hist-size))
+  (insert (format "  position   : %d\n" (dbgr-loc-hist-position loc-hist)))
+  (mapcar (lambda(i) (if i (insert (format "    %s\n" i)))) 
+         (cddr (dbgr-loc-hist-ring loc-hist)))
+)
   
 (defun dbgr-loc-hist-item-at(loc-hist position)
   "Get the current item stored at POSITION of the ring