From ac8331a7bfdaeb3e96d9e79ff78e0ae823192c19 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Tue, 7 Dec 2010 21:00:12 -0800 Subject: [PATCH] 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) --- lisp/ChangeLog | 3 +++ lisp/progmodes/gdb-mi.el | 18 ++++++++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index ef07e777022..a098dae546f 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,8 @@ 2010-12-08 Glenn Morris + * 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. diff --git a/lisp/progmodes/gdb-mi.el b/lisp/progmodes/gdb-mi.el index 3019f8bbf04..3e80269d09c 100644 --- a/lisp/progmodes/gdb-mi.el +++ b/lisp/progmodes/gdb-mi.el @@ -647,7 +647,22 @@ detailed description of this mode. (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 @@ BUFFER nil or omitted means use the current buffer." (provide 'gdb-mi) -;; arch-tag: 1b41ea2b-f364-4cec-8f35-e02e4fe01912 ;;; gdb-mi.el ends here -- 2.39.5