emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/progmodes/gud.el


From: Nick Roberts
Subject: [Emacs-diffs] Changes to emacs/lisp/progmodes/gud.el
Date: Sun, 09 Oct 2005 16:22:44 -0400

Index: emacs/lisp/progmodes/gud.el
diff -c emacs/lisp/progmodes/gud.el:1.56 emacs/lisp/progmodes/gud.el:1.57
*** emacs/lisp/progmodes/gud.el:1.56    Sat Oct  8 21:19:18 2005
--- emacs/lisp/progmodes/gud.el Sun Oct  9 20:22:43 2005
***************
*** 336,344 ****
  ;; speedbar support functions and variables.
  (eval-when-compile (require 'speedbar))       ;For 
speedbar-with-attached-buffer.
  
- (defvar gud-last-speedbar-buffer nil
-   "The last GUD buffer used.")
- 
  (defvar gud-last-speedbar-stackframe nil
    "Description of the currently displayed GUD stack.
  t means that there is no stack, and we are in display-file mode.")
--- 336,341 ----
***************
*** 355,361 ****
      (define-key gud-speedbar-key-map "j" 'speedbar-edit-line)
      (define-key gud-speedbar-key-map "e" 'speedbar-edit-line)
      (define-key gud-speedbar-key-map "\C-m" 'speedbar-edit-line)
!     (define-key gud-speedbar-key-map "D" 'gdb-var-delete)))
  
  (defvar gud-speedbar-menu-items
    '(["Jump to stack frame" speedbar-edit-line
--- 352,362 ----
      (define-key gud-speedbar-key-map "j" 'speedbar-edit-line)
      (define-key gud-speedbar-key-map "e" 'speedbar-edit-line)
      (define-key gud-speedbar-key-map "\C-m" 'speedbar-edit-line)
!     (define-key gud-speedbar-key-map "D" 'gdb-var-delete))
! 
!   (speedbar-add-expansion-list '("GUD" gud-speedbar-menu-items
!                                gud-speedbar-key-map
!                                gud-expansion-speedbar-buttons)))
  
  (defvar gud-speedbar-menu-items
    '(["Jump to stack frame" speedbar-edit-line
***************
*** 374,462 ****
      (gud-install-speedbar-variables)
    (add-hook 'speedbar-load-hook 'gud-install-speedbar-variables))
  
  (defun gud-speedbar-buttons (buffer)
    "Create a speedbar display based on the current state of GUD.
  If the GUD BUFFER is not running a supported debugger, then turn
! off the specialized speedbar mode."
!   (let ((minor-mode (with-current-buffer buffer gud-minor-mode)))
!     (cond
!      ((memq minor-mode '(gdbmi gdba))
!       (when (or gdb-var-changed
!               (not (save-excursion
!                      (goto-char (point-min))
!                      (let ((case-fold-search t))
!                        (looking-at "Watch Expressions:")))))
!       (erase-buffer)
!       (insert "Watch Expressions:\n")
!       (let ((var-list gdb-var-list))
!         (while var-list
!           (let* ((depth 0) (start 0) (char ?+)
!                  (var (car var-list)) (varnum (nth 1 var)))
!             (while (string-match "\\." varnum start)
!               (setq depth (1+ depth)
!                     start (1+ (match-beginning 0))))
!             (if (equal (nth 2 var) "0")
!                 (speedbar-make-tag-line 'bracket ?? nil nil
!                                         (concat (car var) "\t" (nth 4 var))
!                                         'gdb-edit-value
!                                         nil
!                                         (if (and (nth 5 var)
!                                                  gdb-show-changed-values)
!                                             'font-lock-warning-face
!                                           nil) depth)
!               (if (and (cadr var-list)
!                        (string-match varnum (cadr (cadr var-list))))
!                   (setq char ?-))
!               (speedbar-make-tag-line 'bracket char
!                                       'gdb-speedbar-expand-node varnum
!                                       (concat (car var) "\t" (nth 3 var))
!                                       nil nil nil depth)))
!           (setq var-list (cdr var-list))))
!       (setq gdb-var-changed nil)))
!      (t (if (and (save-excursion
!                  (goto-char (point-min))
!                  (looking-at "Current Stack"))
!                (equal gud-last-last-frame gud-last-speedbar-stackframe))
!           nil
!         (setq gud-last-speedbar-buffer buffer)
!         (let ((gud-frame-list
!                (cond ((eq minor-mode 'gdb)
!                       (gud-gdb-get-stackframe buffer))
!                      ;; Add more debuggers here!
!                      (t (speedbar-remove-localized-speedbar-support buffer)
!                         nil))))
!           (erase-buffer)
!           (if (not gud-frame-list)
!               (insert "No Stack frames\n")
!             (insert "Current Stack:\n"))
!           (dolist (frame gud-frame-list)
!             (insert (nth 1 frame) ":\n")
!             (if (= (length frame) 2)
!                 (progn
! ;                 (speedbar-insert-button "[?]"
! ;                                         'speedbar-button-face
! ;                                         nil nil nil t)
!                   (speedbar-insert-button (car frame)
!                                            'speedbar-directory-face
!                                            nil nil nil t))
! ;           (speedbar-insert-button "[+]"
! ;                                   'speedbar-button-face
! ;                                   'speedbar-highlight-face
! ;                                   'gud-gdb-get-scope-data
! ;                                   frame t)
!             (speedbar-insert-button (car frame)
!                                     'speedbar-file-face
!                                     'speedbar-highlight-face
!                                     (cond ((memq minor-mode '(gdbmi gdba gdb))
!                                            'gud-gdb-goto-stackframe)
!                                           (t (error "Should never be here")))
!                                       frame t)))
! ;            (let ((selected-frame
! ;                (cond ((eq ff 'gud-gdb-find-file)
! ;                       (gud-gdb-selected-frame-info buffer))
! ;                      (t (error "Should never be here"))))))
!           )
!         (setq gud-last-speedbar-stackframe gud-last-last-frame))))))
  
  
  ;; ======================================================================
--- 375,460 ----
      (gud-install-speedbar-variables)
    (add-hook 'speedbar-load-hook 'gud-install-speedbar-variables))
  
+ (defun gud-expansion-speedbar-buttons (directory zero)
+   "Wrapper for call to speedbar-add-expansion-list.   DIRECTORY and
+ ZERO are not used, but are required by the caller."
+   (gud-speedbar-buttons gud-comint-buffer))
+ 
  (defun gud-speedbar-buttons (buffer)
    "Create a speedbar display based on the current state of GUD.
  If the GUD BUFFER is not running a supported debugger, then turn
! off the specialized speedbar mode.  BUFFER is not used, but are
! required by the caller."
!   (when (and (boundp 'gud-comint-buffer)
!            gud-comint-buffer
!            ;; gud-comint-buffer might be killed
!            (buffer-name gud-comint-buffer))
!     (let ((minor-mode (with-current-buffer buffer gud-minor-mode)))
!       (cond
!        ((memq minor-mode '(gdbmi gdba))
!       (when (or gdb-var-changed
!                 (not (save-excursion
!                        (goto-char (point-min))
!                        (let ((case-fold-search t))
!                          (looking-at "Watch Expressions:")))))
!         (erase-buffer)
!         (insert "Watch Expressions:\n")
!         (let ((var-list gdb-var-list))
!           (while var-list
!             (let* ((depth 0) (start 0) (char ?+)
!                    (var (car var-list)) (varnum (nth 1 var)))
!               (while (string-match "\\." varnum start)
!                 (setq depth (1+ depth)
!                       start (1+ (match-beginning 0))))
!               (if (equal (nth 2 var) "0")
!                   (speedbar-make-tag-line 'bracket ?? nil nil
!                                           (concat (car var) "\t" (nth 4 var))
!                                           'gdb-edit-value
!                                           nil
!                                           (if (and (nth 5 var)
!                                                    gdb-show-changed-values)
!                                               'font-lock-warning-face
!                                             nil) depth)
!                 (if (and (cadr var-list)
!                          (string-match varnum (cadr (cadr var-list))))
!                     (setq char ?-))
!                 (speedbar-make-tag-line 'bracket char
!                                         'gdb-speedbar-expand-node varnum
!                                         (concat (car var) "\t" (nth 3 var))
!                                         nil nil nil depth)))
!             (setq var-list (cdr var-list))))
!         (setq gdb-var-changed nil)))
!        (t (if (and (save-excursion
!                    (goto-char (point-min))
!                    (looking-at "Current Stack:"))
!                  (equal gud-last-last-frame gud-last-speedbar-stackframe))
!             nil
!           (let ((gud-frame-list
!           (cond ((eq minor-mode 'gdb)
!                  (gud-gdb-get-stackframe buffer))
!                 ;; Add more debuggers here!
!                 (t (speedbar-remove-localized-speedbar-support buffer)
!                    nil))))
!             (erase-buffer)
!             (if (not gud-frame-list)
!                 (insert "No Stack frames\n")
!               (insert "Current Stack:\n"))
!             (dolist (frame gud-frame-list)
!               (insert (nth 1 frame) ":\n")
!               (if (= (length frame) 2)
!               (progn
!                 (speedbar-insert-button (car frame)
!                                         'speedbar-directory-face
!                                         nil nil nil t))
!               (speedbar-insert-button
!                (car frame)
!                'speedbar-file-face
!                'speedbar-highlight-face
!                (cond ((memq minor-mode '(gdbmi gdba gdb))
!                       'gud-gdb-goto-stackframe)
!                      (t (error "Should never be here")))
!                frame t))))
!           (setq gud-last-speedbar-stackframe gud-last-last-frame)))))))
  
  
  ;; ======================================================================




reply via email to

[Prev in Thread] Current Thread [Next in Thread]