changeset 111850:f2a5b5a7f017

In gdb, try to init comint history from gdbhist. * lisp/progmodes/gdb-mi.el (gdb): Try to initialize comint input history from gdb's history file. (Bug#7575)
author Glenn Morris <rgm@gnu.org>
date Tue, 07 Dec 2010 21:00:12 -0800
parents 33e39f4c2506
children dd83cbcddf69
files lisp/ChangeLog lisp/progmodes/gdb-mi.el
diffstat 2 files changed, 19 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Tue Dec 07 19:47:27 2010 -0800
+++ b/lisp/ChangeLog	Tue Dec 07 21:00:12 2010 -0800
@@ -1,5 +1,8 @@
 2010-12-08  Glenn Morris  <rgm@gnu.org>
 
+	* progmodes/gdb-mi.el (gdb): Try to initialize comint input history
+	from gdb's history file.  (Bug#7575)
+
 	* mail/emacsbug.el (report-emacs-bug):
 	Try to handle some other mail clients.
 
--- a/lisp/progmodes/gdb-mi.el	Tue Dec 07 19:47:27 2010 -0800
+++ b/lisp/progmodes/gdb-mi.el	Tue Dec 07 21:00:12 2010 -0800
@@ -647,7 +647,22 @@
   (gud-common-init command-line nil 'gud-gdbmi-marker-filter)
   (set (make-local-variable 'gud-minor-mode) 'gdbmi)
   (setq comint-input-sender 'gdb-send)
-
+  (when (ring-empty-p comint-input-ring) ; cf shell-mode
+    (let (hfile)
+      (when (catch 'done
+	      (dolist (file '(".gdbinit" "~/.gdbinit"))
+		(if (file-readable-p (setq file (expand-file-name file)))
+		    (with-temp-buffer
+		      (insert-file-contents file)
+		      (and (re-search-forward
+			    "^ *set history filename  *\\(.*\\)" nil t)
+			   (file-readable-p
+			    (setq hfile (expand-file-name
+					 (match-string 1)
+					 (file-name-directory file))))
+			   (throw 'done t))))))
+	(set (make-local-variable 'comint-input-ring-file-name) hfile)
+	(comint-read-input-ring t))))
   (gud-def gud-tbreak "tbreak %f:%l" "\C-t"
 	   "Set temporary breakpoint at current line.")
   (gud-def gud-jump
@@ -4191,5 +4206,4 @@
 
 (provide 'gdb-mi)
 
-;; arch-tag: 1b41ea2b-f364-4cec-8f35-e02e4fe01912
 ;;; gdb-mi.el ends here