1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-05 11:45:45 +00:00

gdb-mi addition for bug#7889.

* lisp/progmodes/gdb-mi.el (gdb): Improve 2010-12-08 change.
Check for GDBHISTFILE, HISTSIZE, etc.
This commit is contained in:
Glenn Morris 2011-03-09 00:43:27 -08:00
parent 80b005c767
commit 13522cb4cd
2 changed files with 33 additions and 15 deletions

View File

@ -1,3 +1,8 @@
2011-03-09 Glenn Morris <rgm@gnu.org>
* progmodes/gdb-mi.el (gdb): Improve 2010-12-08 change.
Check for GDBHISTFILE, HISTSIZE, etc. (Bug#7889)
2011-03-08 Chong Yidong <cyd@stupidchicken.com>
* emacs-lisp/package.el (package-refresh-contents)

View File

@ -648,21 +648,34 @@ detailed description of this mode.
(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))))
(let ((hfile (expand-file-name (or (getenv "GBDHISTFILE")
(if (eq system-type 'ms-dos)
"_gdb_history"
".gdb_history"))))
;; gdb defaults to 256, but we'll default to comint-input-ring-size.
(hsize (getenv "HISTSIZE")))
(dolist (file (append '("~/.gdbinit")
(unless (string-equal (expand-file-name ".")
(expand-file-name "~"))
'(".gdbinit"))))
(if (file-readable-p (setq file (expand-file-name file)))
(with-temp-buffer
(insert-file-contents file)
;; TODO? check for "set history save\\( *on\\)?" and do
;; not use history otherwise?
(while (re-search-forward
"^ *set history \\(filename\\|size\\) *\\(.*\\)" nil t)
(cond ((string-equal (match-string 1) "filename")
(setq hfile (expand-file-name
(match-string 2)
(file-name-directory file))))
((string-equal (match-string 1) "size")
(setq hsize (match-string 2))))))))
(if (integerp hsize)
(set (make-local-variable 'comint-input-ring-size) hsize))
(if (stringp hfile)
(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