From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Masatake YAMATO Newsgroups: gmane.emacs.devel Subject: gdb <-> .gdbinit Date: Fri, 01 Aug 2003 12:21:59 +0900 (JST) Sender: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Message-ID: <20030801.122159.107253677.jet@gyve.org> NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Trace: main.gmane.org 1059643450 9471 80.91.224.249 (31 Jul 2003 09:24:10 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Thu, 31 Jul 2003 09:24:10 +0000 (UTC) Original-X-From: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Thu Jul 31 11:24:01 2003 Return-path: Original-Received: from quimby.gnus.org ([80.91.224.244]) by main.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 19i9fF-0002Rz-00 for ; Thu, 31 Jul 2003 11:24:01 +0200 Original-Received: from monty-python.gnu.org ([199.232.76.173]) by quimby.gnus.org with esmtp (Exim 3.12 #1 (Debian)) id 19i9hc-0001sZ-00 for ; Thu, 31 Jul 2003 11:26:28 +0200 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.20) id 19i9ds-0007Xq-Lo for emacs-devel@quimby.gnus.org; Thu, 31 Jul 2003 05:22:36 -0400 Original-Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19i9dZ-0007E4-5K for emacs-devel@gnu.org; Thu, 31 Jul 2003 05:22:17 -0400 Original-Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19i9dS-0006zr-Fr for emacs-devel@gnu.org; Thu, 31 Jul 2003 05:22:11 -0400 Original-Received: from r-maa.spacetown.ne.jp ([210.130.136.40]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19i9dQ-0006jd-Md for emacs-devel@gnu.org; Thu, 31 Jul 2003 05:22:08 -0400 Original-Received: from localhost (mx.jp.redhat.com [219.96.218.186]) by r-maa.spacetown.ne.jp (8.11.6) with ESMTP id h6V9LwZ17594 for ; Thu, 31 Jul 2003 18:21:58 +0900 (JST) Original-To: emacs-devel@gnu.org X-Mailer: Mew version 3.1.52 on Emacs 21.3 / Mule 5.0 (SAKAKI) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.2 Precedence: list List-Id: Emacs development discussions. List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Xref: main.gmane.org gmane.emacs.devel:15750 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:15750 You may want to open/select .gdbinit from gdb(buffer created by M-x gdb) quickly. After editing .gdbinit you may also want to select gdb buffer quickly. With following patch, you can move between .gdbinit buffer and gdb quickly with C-cC-v. 2003-08-01 Masatake YAMATO * progmodes/gud.el (gdb-script-select-associated-gud-buffer): New function. (gud-gdb-find-script): New function. (gdb): bind "\C-c\C-v" to gud-gdb-find-script in local key map. (gdb-script-associated-gud-buffer): New variable. (gdb-script-mode): make gdb-script-associated-gud-buffer buffer local. bind "\C-c\C-v" to gdb-script-select-associated-gud-buffer in gdb-script-mode-map. cvs diff: warning: unrecognized response `access control disabled, clients can connect from any host' from cvs server Warning: Remote host denied X11 forwarding. Index: lisp/progmodes/gud.el =================================================================== RCS file: /cvsroot/emacs/emacs/lisp/progmodes/gud.el,v retrieving revision 1.4 diff -u -r1.4 gud.el --- lisp/progmodes/gud.el 28 Jul 2003 06:27:09 -0000 1.4 +++ lisp/progmodes/gud.el 31 Jul 2003 09:19:53 -0000 @@ -486,6 +486,7 @@ (gud-def gud-run "run" nil "Run the program.") (local-set-key "\C-i" 'gud-gdb-complete-command) + (local-set-key "\C-c\C-v" 'gud-gdb-find-script) (setq comint-prompt-regexp "^(.*gdb[+]?) *") (setq paragraph-start comint-prompt-regexp) (run-hooks 'gdb-mode-hook) @@ -2883,6 +2884,9 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; GDB script mode ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(defvar gdb-script-associated-gud-buffer nil + "Gud buffer selected before gdb script buffer is selected. +Used in `gdb-script-select-associated-gud-buffer' and `gud-gdb-find-script'.") (defvar gdb-script-mode-syntax-table (let ((st (make-syntax-table))) @@ -2954,6 +2958,35 @@ (save-excursion (indent-line-to indent)) (indent-line-to indent))))) +(defun gud-gdb-find-script (homedir) + "Open .gdbinit file. +With a prefix argument HOMEDIR, .gdbinit under the home directory is open. +Without a prefix argument, .gdbinit under the current directory is open." + (interactive "P") + (setq gdb-script-associated-gud-buffer (let ((buffer (current-buffer))) + (if homedir + (find-file "~/.gdbinit") + (find-file "./.gdbinit")) + buffer))) + +(defun gdb-script-select-associated-gud-buffer () + "Select gud buffer selected before gdb script buffer is selected. +Buffer specified by`gdb-script-associated-gud-buffer' is selected. +`gdb-script-associated-gud-buffer' is set by `gud-gdb-find-script'. +If `gdb-script-associated-gud-buffer' is nil, gdb is launched after asking user." + (interactive) + (if (and gdb-script-associated-gud-buffer (buffer-live-p gdb-script-associated-gud-buffer)) + (switch-to-buffer gdb-script-associated-gud-buffer) + (when (y-or-n-p "No associated gud buffer for this buffer. Run gdb? ") + (let ((script-buffer (current-buffer)) + gud-buffer) + (call-interactively 'gdb) + (setq gud-buffer (current-buffer)) + (save-excursion + (set-buffer script-buffer) + (setq gdb-script-associated-gud-buffer gud-buffer)))))) + + ;;;###autoload (add-to-list 'auto-mode-alist '("/\\.gdbinit" . gdb-script-mode)) @@ -2971,7 +3004,9 @@ (font-lock-syntactic-keywords . gdb-script-font-lock-syntactic-keywords) (font-lock-syntactic-face-function - . gdb-script-font-lock-syntactic-face)))) + . gdb-script-font-lock-syntactic-face))) + (make-local-variable 'gdb-script-associated-gud-buffer) + (define-key gdb-script-mode-map "\C-c\C-v" 'gdb-script-select-associated-gud-buffer)) (provide 'gud)