diff options
| author | Kenichi Handa | 2012-08-28 22:44:20 +0900 |
|---|---|---|
| committer | Kenichi Handa | 2012-08-28 22:44:20 +0900 |
| commit | 4eb4de01df384be9b8d811f7ab476eeb37ece748 (patch) | |
| tree | d04f0dae31dd8b533a0c3cd738430841ce7ebb84 /lisp/progmodes | |
| parent | fabc1281e9cde34ff9a19d843316d2ceca8647ad (diff) | |
| parent | 4f2daf31078e2cc059710e129dffe0beed8fc7c2 (diff) | |
| download | emacs-4eb4de01df384be9b8d811f7ab476eeb37ece748.tar.gz emacs-4eb4de01df384be9b8d811f7ab476eeb37ece748.zip | |
merge trunk
Diffstat (limited to 'lisp/progmodes')
| -rw-r--r-- | lisp/progmodes/compile.el | 5 | ||||
| -rw-r--r-- | lisp/progmodes/executable.el | 3 | ||||
| -rw-r--r-- | lisp/progmodes/gdb-mi.el | 241 | ||||
| -rw-r--r-- | lisp/progmodes/gud.el | 6 |
4 files changed, 113 insertions, 142 deletions
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el index 21a323d8b45..eb966e8a90d 100644 --- a/lisp/progmodes/compile.el +++ b/lisp/progmodes/compile.el | |||
| @@ -2461,10 +2461,7 @@ and overlay is highlighted between MK and END-MK." | |||
| 2461 | ;; the error location if the two buffers are in two | 2461 | ;; the error location if the two buffers are in two |
| 2462 | ;; different frames. So don't do it if it's not necessary. | 2462 | ;; different frames. So don't do it if it's not necessary. |
| 2463 | pre-existing | 2463 | pre-existing |
| 2464 | (let ((display-buffer-reuse-frames t) | 2464 | (display-buffer (marker-buffer msg)))) |
| 2465 | (pop-up-windows t)) | ||
| 2466 | ;; Pop up a window. | ||
| 2467 | (display-buffer (marker-buffer msg))))) | ||
| 2468 | (highlight-regexp (with-current-buffer (marker-buffer msg) | 2465 | (highlight-regexp (with-current-buffer (marker-buffer msg) |
| 2469 | ;; also do this while we change buffer | 2466 | ;; also do this while we change buffer |
| 2470 | (compilation-set-window w msg) | 2467 | (compilation-set-window w msg) |
diff --git a/lisp/progmodes/executable.el b/lisp/progmodes/executable.el index e5142571972..092e1a4d578 100644 --- a/lisp/progmodes/executable.el +++ b/lisp/progmodes/executable.el | |||
| @@ -84,8 +84,9 @@ When this is `function', only ask when called non-interactively." | |||
| 84 | :group 'executable) | 84 | :group 'executable) |
| 85 | 85 | ||
| 86 | 86 | ||
| 87 | (defcustom executable-prefix "#! " | 87 | (defcustom executable-prefix "#!" |
| 88 | "Interpreter magic number prefix inserted when there was no magic number." | 88 | "Interpreter magic number prefix inserted when there was no magic number." |
| 89 | :version "24.3" ; "#! " -> "#!" | ||
| 89 | :type 'string | 90 | :type 'string |
| 90 | :group 'executable) | 91 | :group 'executable) |
| 91 | 92 | ||
diff --git a/lisp/progmodes/gdb-mi.el b/lisp/progmodes/gdb-mi.el index 0a99c2f5c24..59c419abfc3 100644 --- a/lisp/progmodes/gdb-mi.el +++ b/lisp/progmodes/gdb-mi.el | |||
| @@ -1413,29 +1413,6 @@ this trigger is subscribed to `gdb-buf-publisher' and called with | |||
| 1413 | (with-current-buffer ,buffer | 1413 | (with-current-buffer ,buffer |
| 1414 | (apply ',expr args)))) | 1414 | (apply ',expr args)))) |
| 1415 | 1415 | ||
| 1416 | ;; Used to define all gdb-frame-*-buffer functions except | ||
| 1417 | ;; `gdb-frame-io-buffer' | ||
| 1418 | (defmacro def-gdb-frame-for-buffer (name buffer &optional doc) | ||
| 1419 | "Define a function NAME which shows gdb BUFFER in a separate frame. | ||
| 1420 | |||
| 1421 | DOC is an optional documentation string." | ||
| 1422 | `(defun ,name (&optional thread) | ||
| 1423 | ,(when doc doc) | ||
| 1424 | (interactive) | ||
| 1425 | (let ((special-display-regexps (append special-display-regexps '(".*"))) | ||
| 1426 | (special-display-frame-alist gdb-frame-parameters)) | ||
| 1427 | (display-buffer (gdb-get-buffer-create ,buffer thread))))) | ||
| 1428 | |||
| 1429 | (defmacro def-gdb-display-buffer (name buffer &optional doc) | ||
| 1430 | "Define a function NAME which shows gdb BUFFER. | ||
| 1431 | |||
| 1432 | DOC is an optional documentation string." | ||
| 1433 | `(defun ,name (&optional thread) | ||
| 1434 | ,(when doc doc) | ||
| 1435 | (interactive) | ||
| 1436 | (gdb-display-buffer | ||
| 1437 | (gdb-get-buffer-create ,buffer thread) t))) | ||
| 1438 | |||
| 1439 | ;; Used to display windows with thread-bound buffers | 1416 | ;; Used to display windows with thread-bound buffers |
| 1440 | (defmacro def-gdb-preempt-display-buffer (name buffer &optional doc | 1417 | (defmacro def-gdb-preempt-display-buffer (name buffer &optional doc |
| 1441 | split-horizontal) | 1418 | split-horizontal) |
| @@ -1511,8 +1488,7 @@ DOC is an optional documentation string." | |||
| 1511 | (defun gdb-display-io-buffer () | 1488 | (defun gdb-display-io-buffer () |
| 1512 | "Display IO of debugged program in a separate window." | 1489 | "Display IO of debugged program in a separate window." |
| 1513 | (interactive) | 1490 | (interactive) |
| 1514 | (gdb-display-buffer | 1491 | (gdb-display-buffer (gdb-get-buffer-create 'gdb-inferior-io))) |
| 1515 | (gdb-get-buffer-create 'gdb-inferior-io) t)) | ||
| 1516 | 1492 | ||
| 1517 | (defun gdb-inferior-io--init-proc (proc) | 1493 | (defun gdb-inferior-io--init-proc (proc) |
| 1518 | ;; Set up inferior I/O. Needs GDB 6.4 onwards. | 1494 | ;; Set up inferior I/O. Needs GDB 6.4 onwards. |
| @@ -1540,19 +1516,24 @@ DOC is an optional documentation string." | |||
| 1540 | (comint-exec io-buffer "gdb-inferior" nil nil nil) | 1516 | (comint-exec io-buffer "gdb-inferior" nil nil nil) |
| 1541 | (gdb-inferior-io--init-proc (get-buffer-process io-buffer)))))) | 1517 | (gdb-inferior-io--init-proc (get-buffer-process io-buffer)))))) |
| 1542 | 1518 | ||
| 1543 | (defconst gdb-frame-parameters | 1519 | (defvar gdb-display-buffer-other-frame-action |
| 1544 | '((height . 14) (width . 80) | 1520 | `((display-buffer-reuse-window display-buffer-pop-up-frame) |
| 1545 | (unsplittable . t) | 1521 | (reusable-frames . 0) |
| 1546 | (tool-bar-lines . nil) | 1522 | (inhibit-same-window . t) |
| 1547 | (menu-bar-lines . nil) | 1523 | (pop-up-frame-parameters (height . 14) |
| 1548 | (minibuffer . nil))) | 1524 | (width . 80) |
| 1525 | (unsplittable . t) | ||
| 1526 | (tool-bar-lines . nil) | ||
| 1527 | (menu-bar-lines . nil) | ||
| 1528 | (minibuffer . nil))) | ||
| 1529 | "A `display-buffer' action for displaying GDB utility frames.") | ||
| 1530 | (put 'gdb-display-buffer-other-frame-action 'risky-local-variable t) | ||
| 1549 | 1531 | ||
| 1550 | (defun gdb-frame-io-buffer () | 1532 | (defun gdb-frame-io-buffer () |
| 1551 | "Display IO of debugged program in a new frame." | 1533 | "Display IO of debugged program in another frame." |
| 1552 | (interactive) | 1534 | (interactive) |
| 1553 | (let ((special-display-regexps (append special-display-regexps '(".*"))) | 1535 | (display-buffer (gdb-get-buffer-create 'gdb-inferior-io) |
| 1554 | (special-display-frame-alist gdb-frame-parameters)) | 1536 | gdb-display-buffer-other-frame-action)) |
| 1555 | (display-buffer (gdb-get-buffer-create 'gdb-inferior-io)))) | ||
| 1556 | 1537 | ||
| 1557 | (defvar gdb-inferior-io-mode-map | 1538 | (defvar gdb-inferior-io-mode-map |
| 1558 | (let ((map (make-sparse-keymap))) | 1539 | (let ((map (make-sparse-keymap))) |
| @@ -1571,7 +1552,7 @@ DOC is an optional documentation string." | |||
| 1571 | 1552 | ||
| 1572 | (defun gdb-inferior-filter (proc string) | 1553 | (defun gdb-inferior-filter (proc string) |
| 1573 | (unless (string-equal string "") | 1554 | (unless (string-equal string "") |
| 1574 | (gdb-display-buffer (gdb-get-buffer-create 'gdb-inferior-io) t)) | 1555 | (gdb-display-buffer (gdb-get-buffer-create 'gdb-inferior-io))) |
| 1575 | (with-current-buffer (gdb-get-buffer-create 'gdb-inferior-io) | 1556 | (with-current-buffer (gdb-get-buffer-create 'gdb-inferior-io) |
| 1576 | (comint-output-filter proc string))) | 1557 | (comint-output-filter proc string))) |
| 1577 | 1558 | ||
| @@ -2615,15 +2596,16 @@ If not in a source or disassembly buffer just set point." | |||
| 2615 | (defun gdb-breakpoints-buffer-name () | 2596 | (defun gdb-breakpoints-buffer-name () |
| 2616 | (concat "*breakpoints of " (gdb-get-target-string) "*")) | 2597 | (concat "*breakpoints of " (gdb-get-target-string) "*")) |
| 2617 | 2598 | ||
| 2618 | (def-gdb-display-buffer | 2599 | (defun gdb-display-breakpoints-buffer (&optional thread) |
| 2619 | gdb-display-breakpoints-buffer | 2600 | "Display GDB breakpoints." |
| 2620 | 'gdb-breakpoints-buffer | 2601 | (interactive) |
| 2621 | "Display status of user-settable breakpoints.") | 2602 | (gdb-display-buffer (gdb-get-buffer-create 'gdb-breakpoints-buffer thread))) |
| 2622 | 2603 | ||
| 2623 | (def-gdb-frame-for-buffer | 2604 | (defun gdb-frame-breakpoints-buffer (&optional thread) |
| 2624 | gdb-frame-breakpoints-buffer | 2605 | "Display GDB breakpoints in another frame." |
| 2625 | 'gdb-breakpoints-buffer | 2606 | (interactive) |
| 2626 | "Display status of user-settable breakpoints in a new frame.") | 2607 | (display-buffer (gdb-get-buffer-create 'gdb-breakpoints-buffer thread) |
| 2608 | gdb-display-buffer-other-frame-action)) | ||
| 2627 | 2609 | ||
| 2628 | (defvar gdb-breakpoints-mode-map | 2610 | (defvar gdb-breakpoints-mode-map |
| 2629 | (let ((map (make-sparse-keymap)) | 2611 | (let ((map (make-sparse-keymap)) |
| @@ -2684,15 +2666,16 @@ corresponding to the mode line clicked." | |||
| 2684 | (defun gdb-threads-buffer-name () | 2666 | (defun gdb-threads-buffer-name () |
| 2685 | (concat "*threads of " (gdb-get-target-string) "*")) | 2667 | (concat "*threads of " (gdb-get-target-string) "*")) |
| 2686 | 2668 | ||
| 2687 | (def-gdb-display-buffer | 2669 | (defun gdb-display-threads-buffer (&optional thread) |
| 2688 | gdb-display-threads-buffer | 2670 | "Display GDB threads." |
| 2689 | 'gdb-threads-buffer | 2671 | (interactive) |
| 2690 | "Display GDB threads.") | 2672 | (gdb-display-buffer (gdb-get-buffer-create 'gdb-threads-buffer thread))) |
| 2691 | 2673 | ||
| 2692 | (def-gdb-frame-for-buffer | 2674 | (defun gdb-frame-threads-buffer (&optional thread) |
| 2693 | gdb-frame-threads-buffer | 2675 | "Display GDB threads in another frame." |
| 2694 | 'gdb-threads-buffer | 2676 | (interactive) |
| 2695 | "Display GDB threads in a new frame.") | 2677 | (display-buffer (gdb-get-buffer-create 'gdb-threads-buffer thread) |
| 2678 | gdb-display-buffer-other-frame-action)) | ||
| 2696 | 2679 | ||
| 2697 | (def-gdb-trigger-and-handler | 2680 | (def-gdb-trigger-and-handler |
| 2698 | gdb-invalidate-threads (gdb-current-context-command "-thread-info") | 2681 | gdb-invalidate-threads (gdb-current-context-command "-thread-info") |
| @@ -2868,26 +2851,22 @@ on the current line." | |||
| 2868 | (def-gdb-thread-buffer-simple-command | 2851 | (def-gdb-thread-buffer-simple-command |
| 2869 | gdb-frame-stack-for-thread | 2852 | gdb-frame-stack-for-thread |
| 2870 | gdb-frame-stack-buffer | 2853 | gdb-frame-stack-buffer |
| 2871 | "Display a new frame with stack buffer for the thread at | 2854 | "Display another frame with stack buffer for thread at current line.") |
| 2872 | current line.") | ||
| 2873 | 2855 | ||
| 2874 | (def-gdb-thread-buffer-simple-command | 2856 | (def-gdb-thread-buffer-simple-command |
| 2875 | gdb-frame-locals-for-thread | 2857 | gdb-frame-locals-for-thread |
| 2876 | gdb-frame-locals-buffer | 2858 | gdb-frame-locals-buffer |
| 2877 | "Display a new frame with locals buffer for the thread at | 2859 | "Display another frame with locals buffer for thread at current line.") |
| 2878 | current line.") | ||
| 2879 | 2860 | ||
| 2880 | (def-gdb-thread-buffer-simple-command | 2861 | (def-gdb-thread-buffer-simple-command |
| 2881 | gdb-frame-registers-for-thread | 2862 | gdb-frame-registers-for-thread |
| 2882 | gdb-frame-registers-buffer | 2863 | gdb-frame-registers-buffer |
| 2883 | "Display a new frame with registers buffer for the thread at | 2864 | "Display another frame with registers buffer for the thread at current line.") |
| 2884 | current line.") | ||
| 2885 | 2865 | ||
| 2886 | (def-gdb-thread-buffer-simple-command | 2866 | (def-gdb-thread-buffer-simple-command |
| 2887 | gdb-frame-disassembly-for-thread | 2867 | gdb-frame-disassembly-for-thread |
| 2888 | gdb-frame-disassembly-buffer | 2868 | gdb-frame-disassembly-buffer |
| 2889 | "Display a new frame with disassembly buffer for the thread at | 2869 | "Display another frame with disassembly buffer for the thread at current line.") |
| 2890 | current line.") | ||
| 2891 | 2870 | ||
| 2892 | (defmacro def-gdb-thread-buffer-gud-command (name gud-command &optional doc) | 2871 | (defmacro def-gdb-thread-buffer-gud-command (name gud-command &optional doc) |
| 2893 | "Define a NAME which will execute GUD-COMMAND with | 2872 | "Define a NAME which will execute GUD-COMMAND with |
| @@ -3290,21 +3269,16 @@ DOC is an optional documentation string." | |||
| 3290 | (defun gdb-memory-buffer-name () | 3269 | (defun gdb-memory-buffer-name () |
| 3291 | (concat "*memory of " (gdb-get-target-string) "*")) | 3270 | (concat "*memory of " (gdb-get-target-string) "*")) |
| 3292 | 3271 | ||
| 3293 | (def-gdb-display-buffer | 3272 | (defun gdb-display-memory-buffer (&optional thread) |
| 3294 | gdb-display-memory-buffer | 3273 | "Display GDB memory contents." |
| 3295 | 'gdb-memory-buffer | 3274 | (interactive) |
| 3296 | "Display memory contents.") | 3275 | (gdb-display-buffer (gdb-get-buffer-create 'gdb-memory-buffer thread))) |
| 3297 | 3276 | ||
| 3298 | (defun gdb-frame-memory-buffer () | 3277 | (defun gdb-frame-memory-buffer () |
| 3299 | "Display memory contents in a new frame." | 3278 | "Display memory contents in another frame." |
| 3300 | (interactive) | 3279 | (interactive) |
| 3301 | (let* ((special-display-regexps (append special-display-regexps '(".*"))) | 3280 | (display-buffer (gdb-get-buffer-create 'gdb-memory-buffer) |
| 3302 | (special-display-frame-alist | 3281 | gdb-display-buffer-other-frame-action)) |
| 3303 | `((left-fringe . 0) | ||
| 3304 | (right-fringe . 0) | ||
| 3305 | (width . 83) | ||
| 3306 | ,@gdb-frame-parameters))) | ||
| 3307 | (display-buffer (gdb-get-buffer-create 'gdb-memory-buffer)))) | ||
| 3308 | 3282 | ||
| 3309 | 3283 | ||
| 3310 | ;;; Disassembly view | 3284 | ;;; Disassembly view |
| @@ -3313,19 +3287,20 @@ DOC is an optional documentation string." | |||
| 3313 | (gdb-current-context-buffer-name | 3287 | (gdb-current-context-buffer-name |
| 3314 | (concat "disassembly of " (gdb-get-target-string)))) | 3288 | (concat "disassembly of " (gdb-get-target-string)))) |
| 3315 | 3289 | ||
| 3316 | (def-gdb-display-buffer | 3290 | (defun gdb-display-disassembly-buffer (&optional thread) |
| 3317 | gdb-display-disassembly-buffer | 3291 | "Display GDB disassembly information." |
| 3318 | 'gdb-disassembly-buffer | 3292 | (interactive) |
| 3319 | "Display disassembly for current stack frame.") | 3293 | (gdb-display-buffer (gdb-get-buffer-create 'gdb-disassembly-buffer thread))) |
| 3320 | 3294 | ||
| 3321 | (def-gdb-preempt-display-buffer | 3295 | (def-gdb-preempt-display-buffer |
| 3322 | gdb-preemptively-display-disassembly-buffer | 3296 | gdb-preemptively-display-disassembly-buffer |
| 3323 | 'gdb-disassembly-buffer) | 3297 | 'gdb-disassembly-buffer) |
| 3324 | 3298 | ||
| 3325 | (def-gdb-frame-for-buffer | 3299 | (defun gdb-frame-disassembly-buffer (&optional thread) |
| 3326 | gdb-frame-disassembly-buffer | 3300 | "Display GDB disassembly information in another frame." |
| 3327 | 'gdb-disassembly-buffer | 3301 | (interactive) |
| 3328 | "Display disassembly in a new frame.") | 3302 | (display-buffer (gdb-get-buffer-create 'gdb-disassembly-buffer thread) |
| 3303 | gdb-display-buffer-other-frame-action)) | ||
| 3329 | 3304 | ||
| 3330 | (def-gdb-auto-update-trigger gdb-invalidate-disassembly | 3305 | (def-gdb-auto-update-trigger gdb-invalidate-disassembly |
| 3331 | (let* ((frame (gdb-current-buffer-frame)) | 3306 | (let* ((frame (gdb-current-buffer-frame)) |
| @@ -3560,19 +3535,20 @@ member." | |||
| 3560 | (gdb-current-context-buffer-name | 3535 | (gdb-current-context-buffer-name |
| 3561 | (concat "stack frames of " (gdb-get-target-string)))) | 3536 | (concat "stack frames of " (gdb-get-target-string)))) |
| 3562 | 3537 | ||
| 3563 | (def-gdb-display-buffer | 3538 | (defun gdb-display-stack-buffer (&optional thread) |
| 3564 | gdb-display-stack-buffer | 3539 | "Display GDB backtrace for current stack." |
| 3565 | 'gdb-stack-buffer | 3540 | (interactive) |
| 3566 | "Display backtrace of current stack.") | 3541 | (gdb-display-buffer (gdb-get-buffer-create 'gdb-stack-buffer thread))) |
| 3567 | 3542 | ||
| 3568 | (def-gdb-preempt-display-buffer | 3543 | (def-gdb-preempt-display-buffer |
| 3569 | gdb-preemptively-display-stack-buffer | 3544 | gdb-preemptively-display-stack-buffer |
| 3570 | 'gdb-stack-buffer nil t) | 3545 | 'gdb-stack-buffer nil t) |
| 3571 | 3546 | ||
| 3572 | (def-gdb-frame-for-buffer | 3547 | (defun gdb-frame-stack-buffer (&optional thread) |
| 3573 | gdb-frame-stack-buffer | 3548 | "Display GDB backtrace for current stack in another frame." |
| 3574 | 'gdb-stack-buffer | 3549 | (interactive) |
| 3575 | "Display backtrace of current stack in a new frame.") | 3550 | (display-buffer (gdb-get-buffer-create 'gdb-stack-buffer thread) |
| 3551 | gdb-display-buffer-other-frame-action)) | ||
| 3576 | 3552 | ||
| 3577 | (defvar gdb-frames-mode-map | 3553 | (defvar gdb-frames-mode-map |
| 3578 | (let ((map (make-sparse-keymap))) | 3554 | (let ((map (make-sparse-keymap))) |
| @@ -3719,19 +3695,20 @@ member." | |||
| 3719 | (gdb-current-context-buffer-name | 3695 | (gdb-current-context-buffer-name |
| 3720 | (concat "locals of " (gdb-get-target-string)))) | 3696 | (concat "locals of " (gdb-get-target-string)))) |
| 3721 | 3697 | ||
| 3722 | (def-gdb-display-buffer | 3698 | (defun gdb-display-locals-buffer (&optional thread) |
| 3723 | gdb-display-locals-buffer | 3699 | "Display the local variables of current GDB stack." |
| 3724 | 'gdb-locals-buffer | 3700 | (interactive) |
| 3725 | "Display local variables of current stack and their values.") | 3701 | (gdb-display-buffer (gdb-get-buffer-create 'gdb-locals-buffer thread))) |
| 3726 | 3702 | ||
| 3727 | (def-gdb-preempt-display-buffer | 3703 | (def-gdb-preempt-display-buffer |
| 3728 | gdb-preemptively-display-locals-buffer | 3704 | gdb-preemptively-display-locals-buffer |
| 3729 | 'gdb-locals-buffer nil t) | 3705 | 'gdb-locals-buffer nil t) |
| 3730 | 3706 | ||
| 3731 | (def-gdb-frame-for-buffer | 3707 | (defun gdb-frame-locals-buffer (&optional thread) |
| 3732 | gdb-frame-locals-buffer | 3708 | "Display the local variables of the current GDB stack in another frame." |
| 3733 | 'gdb-locals-buffer | 3709 | (interactive) |
| 3734 | "Display local variables of current stack and their values in a new frame.") | 3710 | (display-buffer (gdb-get-buffer-create 'gdb-locals-buffer thread) |
| 3711 | gdb-display-buffer-other-frame-action)) | ||
| 3735 | 3712 | ||
| 3736 | 3713 | ||
| 3737 | ;; Registers buffer. | 3714 | ;; Registers buffer. |
| @@ -3818,19 +3795,20 @@ member." | |||
| 3818 | (gdb-current-context-buffer-name | 3795 | (gdb-current-context-buffer-name |
| 3819 | (concat "registers of " (gdb-get-target-string)))) | 3796 | (concat "registers of " (gdb-get-target-string)))) |
| 3820 | 3797 | ||
| 3821 | (def-gdb-display-buffer | 3798 | (defun gdb-display-registers-buffer (&optional thread) |
| 3822 | gdb-display-registers-buffer | 3799 | "Display GDB register contents." |
| 3823 | 'gdb-registers-buffer | 3800 | (interactive) |
| 3824 | "Display integer register contents.") | 3801 | (gdb-display-buffer (gdb-get-buffer-create 'gdb-registers-buffer thread))) |
| 3825 | 3802 | ||
| 3826 | (def-gdb-preempt-display-buffer | 3803 | (def-gdb-preempt-display-buffer |
| 3827 | gdb-preemptively-display-registers-buffer | 3804 | gdb-preemptively-display-registers-buffer |
| 3828 | 'gdb-registers-buffer nil t) | 3805 | 'gdb-registers-buffer nil t) |
| 3829 | 3806 | ||
| 3830 | (def-gdb-frame-for-buffer | 3807 | (defun gdb-frame-registers-buffer (&optional thread) |
| 3831 | gdb-frame-registers-buffer | 3808 | "Display GDB register contents in another frame." |
| 3832 | 'gdb-registers-buffer | 3809 | (interactive) |
| 3833 | "Display integer register contents in a new frame.") | 3810 | (display-buffer (gdb-get-buffer-create 'gdb-registers-buffer thread) |
| 3811 | gdb-display-buffer-other-frame-action)) | ||
| 3834 | 3812 | ||
| 3835 | ;; Needs GDB 6.4 onwards (used to fail with no stack). | 3813 | ;; Needs GDB 6.4 onwards (used to fail with no stack). |
| 3836 | (defun gdb-get-changed-registers () | 3814 | (defun gdb-get-changed-registers () |
| @@ -3917,26 +3895,26 @@ overlay arrow in source buffer." | |||
| 3917 | (setq gdb-filter-output (concat gdb-filter-output gdb-prompt-name))) | 3895 | (setq gdb-filter-output (concat gdb-filter-output gdb-prompt-name))) |
| 3918 | 3896 | ||
| 3919 | ;;;; Window management | 3897 | ;;;; Window management |
| 3920 | (defun gdb-display-buffer (buf dedicated &optional frame) | 3898 | (defun gdb-display-buffer (buf) |
| 3921 | "Show buffer BUF. | 3899 | "Show buffer BUF, and make that window dedicated." |
| 3922 | 3900 | (let ((window (display-buffer buf))) | |
| 3923 | If BUF is already displayed in some window, show it, deiconifying | 3901 | (set-window-dedicated-p window t) |
| 3924 | the frame if necessary. Otherwise, find least recently used | 3902 | window)) |
| 3925 | window and show BUF there, if the window is not used for GDB | 3903 | |
| 3926 | already, in which case that window is split first." | 3904 | ;; (let ((answer (get-buffer-window buf 0))) |
| 3927 | (let ((answer (get-buffer-window buf (or frame 0)))) | 3905 | ;; (if answer |
| 3928 | (if answer | 3906 | ;; (display-buffer buf nil 0) ;Deiconify frame if necessary. |
| 3929 | (display-buffer buf nil (or frame 0)) ;Deiconify frame if necessary. | 3907 | ;; (let ((window (get-lru-window))) |
| 3930 | (let ((window (get-lru-window))) | 3908 | ;; (if (eq (buffer-local-value 'gud-minor-mode (window-buffer window)) |
| 3931 | (if (eq (buffer-local-value 'gud-minor-mode (window-buffer window)) | 3909 | ;; 'gdbmi) |
| 3932 | 'gdbmi) | 3910 | ;; (let ((largest (get-largest-window))) |
| 3933 | (let ((largest (get-largest-window))) | 3911 | ;; (setq answer (split-window largest)) |
| 3934 | (setq answer (split-window largest)) | 3912 | ;; (set-window-buffer answer buf) |
| 3935 | (set-window-buffer answer buf) | 3913 | ;; (set-window-dedicated-p answer t) |
| 3936 | (set-window-dedicated-p answer dedicated) | 3914 | ;; answer) |
| 3937 | answer) | 3915 | ;; (set-window-buffer window buf) |
| 3938 | (set-window-buffer window buf) | 3916 | ;; window))))) |
| 3939 | window))))) | 3917 | |
| 3940 | 3918 | ||
| 3941 | (defun gdb-preempt-existing-or-display-buffer (buf &optional split-horizontal) | 3919 | (defun gdb-preempt-existing-or-display-buffer (buf &optional split-horizontal) |
| 3942 | "Find window displaying a buffer with the same | 3920 | "Find window displaying a buffer with the same |
| @@ -3963,7 +3941,7 @@ SPLIT-HORIZONTAL and show BUF in the new window." | |||
| 3963 | (if dedicated-window | 3941 | (if dedicated-window |
| 3964 | (set-window-buffer | 3942 | (set-window-buffer |
| 3965 | (split-window dedicated-window nil split-horizontal) buf) | 3943 | (split-window dedicated-window nil split-horizontal) buf) |
| 3966 | (gdb-display-buffer buf t)))))) | 3944 | (gdb-display-buffer buf)))))) |
| 3967 | (error "Null buffer"))) | 3945 | (error "Null buffer"))) |
| 3968 | 3946 | ||
| 3969 | ;;; Shared keymap initialization: | 3947 | ;;; Shared keymap initialization: |
| @@ -4067,7 +4045,7 @@ SPLIT-HORIZONTAL and show BUF in the new window." | |||
| 4067 | 'all-threads) | 4045 | 'all-threads) |
| 4068 | 4046 | ||
| 4069 | (defun gdb-frame-gdb-buffer () | 4047 | (defun gdb-frame-gdb-buffer () |
| 4070 | "Display GUD buffer in a new frame." | 4048 | "Display GUD buffer in another frame." |
| 4071 | (interactive) | 4049 | (interactive) |
| 4072 | (display-buffer-other-frame gud-comint-buffer)) | 4050 | (display-buffer-other-frame gud-comint-buffer)) |
| 4073 | 4051 | ||
| @@ -4089,13 +4067,12 @@ window is dedicated." | |||
| 4089 | 4067 | ||
| 4090 | (defun gdb-setup-windows () | 4068 | (defun gdb-setup-windows () |
| 4091 | "Layout the window pattern for `gdb-many-windows'." | 4069 | "Layout the window pattern for `gdb-many-windows'." |
| 4092 | (gdb-display-locals-buffer) | 4070 | (gdb-get-buffer-create 'gdb-locals-buffer) |
| 4093 | (gdb-display-stack-buffer) | 4071 | (gdb-get-buffer-create 'gdb-stack-buffer) |
| 4094 | (delete-other-windows) | 4072 | (gdb-get-buffer-create 'gdb-breakpoints-buffer) |
| 4095 | (gdb-display-breakpoints-buffer) | 4073 | (set-window-dedicated-p (selected-window) nil) |
| 4096 | (delete-other-windows) | ||
| 4097 | ;; Don't dedicate. | ||
| 4098 | (switch-to-buffer gud-comint-buffer) | 4074 | (switch-to-buffer gud-comint-buffer) |
| 4075 | (delete-other-windows) | ||
| 4099 | (let ((win0 (selected-window)) | 4076 | (let ((win0 (selected-window)) |
| 4100 | (win1 (split-window nil ( / ( * (window-height) 3) 4))) | 4077 | (win1 (split-window nil ( / ( * (window-height) 3) 4))) |
| 4101 | (win2 (split-window nil ( / (window-height) 3))) | 4078 | (win2 (split-window nil ( / (window-height) 3))) |
diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el index 5946e93f34d..2e3858b2cc5 100644 --- a/lisp/progmodes/gud.el +++ b/lisp/progmodes/gud.el | |||
| @@ -2685,7 +2685,6 @@ Obeying it means displaying in another window the specified file and line." | |||
| 2685 | (declare-function global-hl-line-highlight "hl-line" ()) | 2685 | (declare-function global-hl-line-highlight "hl-line" ()) |
| 2686 | (declare-function hl-line-highlight "hl-line" ()) | 2686 | (declare-function hl-line-highlight "hl-line" ()) |
| 2687 | (declare-function gdb-display-source-buffer "gdb-mi" (buffer)) | 2687 | (declare-function gdb-display-source-buffer "gdb-mi" (buffer)) |
| 2688 | (declare-function gdb-display-buffer "gdb-mi" (buf dedicated &optional size)) | ||
| 2689 | 2688 | ||
| 2690 | ;; Make sure the file named TRUE-FILE is in a buffer that appears on the screen | 2689 | ;; Make sure the file named TRUE-FILE is in a buffer that appears on the screen |
| 2691 | ;; and that its line LINE is visible. | 2690 | ;; and that its line LINE is visible. |
| @@ -2702,10 +2701,7 @@ Obeying it means displaying in another window the specified file and line." | |||
| 2702 | (window (and buffer | 2701 | (window (and buffer |
| 2703 | (or (get-buffer-window buffer) | 2702 | (or (get-buffer-window buffer) |
| 2704 | (if (eq gud-minor-mode 'gdbmi) | 2703 | (if (eq gud-minor-mode 'gdbmi) |
| 2705 | (or (if (get-buffer-window buffer 'visible) | 2704 | (display-buffer buffer nil 'visible)) |
| 2706 | (display-buffer buffer nil 'visible)) | ||
| 2707 | (unless (gdb-display-source-buffer buffer) | ||
| 2708 | (gdb-display-buffer buffer nil 'visible)))) | ||
| 2709 | (display-buffer buffer)))) | 2705 | (display-buffer buffer)))) |
| 2710 | (pos)) | 2706 | (pos)) |
| 2711 | (if buffer | 2707 | (if buffer |