# HG changeset patch # User Nick Roberts # Date 1117363709 0 # Node ID 366567a9305375eae467c0eaa0fb89ea944f4265 # Parent b02a3533f7c2e2d458b885742321652642523d75 (gdb-memory-set-repeat-count): Throw error when count <= 0 to ensure input is a number. (gdb-read-memory-custom): Pick up address from buffer. (gdb-memory-mode): Allow user to increment and decrement memory address from header line. diff -r b02a3533f7c2 -r 366567a93053 lisp/progmodes/gdb-ui.el --- a/lisp/progmodes/gdb-ui.el Sun May 29 10:47:05 2005 +0000 +++ b/lisp/progmodes/gdb-ui.el Sun May 29 10:48:29 2005 +0000 @@ -1766,7 +1766,11 @@ gdb-read-memory-handler gdb-read-memory-custom) -(defun gdb-read-memory-custom ()) +(defun gdb-read-memory-custom () + (save-excursion + (goto-char (point-min)) + (if (looking-at "0x[[:xdigit:]]+") + (setq gdb-memory-address (match-string 0))))) (defvar gdb-memory-mode-map (let ((map (make-sparse-keymap))) @@ -1790,8 +1794,8 @@ (select-window (posn-window (event-start event))) (let* ((arg (read-from-minibuffer "Repeat count: ")) (count (string-to-number arg))) - (if (< count 0) - (error "Non-negative numbers only") + (if (<= count 0) + (error "Positive numbers only") (customize-set-variable 'gdb-memory-repeat-count count) (gdb-invalidate-memory))))) @@ -1944,7 +1948,38 @@ (setq header-line-format '(:eval (concat - "Read address: " + "Read address[" + (propertize + "-" + 'face font-lock-warning-face + 'help-echo "mouse-1: Decrement address" + 'mouse-face 'mode-line-highlight + 'local-map + (gdb-make-header-line-mouse-map + 'mouse-1 + #'(lambda () (interactive) + (let ((gdb-memory-address + ;; let GDB do the arithmetic + (concat + gdb-memory-address " - " + (number-to-string + (* gdb-memory-repeat-count + (cond ((string= gdb-memory-unit "b") 1) + ((string= gdb-memory-unit "h") 2) + ((string= gdb-memory-unit "w") 4) + ((string= gdb-memory-unit "g") 8))))))) + (gdb-invalidate-memory))))) + "|" + (propertize "+" + 'face font-lock-warning-face + 'help-echo "mouse-1: Increment address" + 'mouse-face 'mode-line-highlight + 'local-map (gdb-make-header-line-mouse-map + 'mouse-1 + #'(lambda () (interactive) + (let ((gdb-memory-address nil)) + (gdb-invalidate-memory))))) + "]: " (propertize gdb-memory-address 'face font-lock-warning-face 'help-echo "mouse-1: Set memory address"