From a5dcc929862f6727c71db5e45d8750f8c322c53b Mon Sep 17 00:00:00 2001 From: Juri Linkov Date: Sun, 29 Jul 2012 21:11:42 +0300 Subject: [PATCH] * lisp/simple.el (goto-line): Don't display default line number in the prompt because it should be displayed by `read-number' (bug#9952). Add the current line number to the defaults of `goto-line' to allow its easier modification by users with `M-n' (bug#9201). * lisp/subr.el (read-number): Support multiple default values like in other minibuffer reading functions. Replace `read' with `string-to-number' for consistency with `number-to-string'. --- lisp/ChangeLog | 11 +++++++++++ lisp/simple.el | 7 ++----- lisp/subr.el | 22 +++++++++++++--------- 3 files changed, 26 insertions(+), 14 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 81afe67fd5b..61ae993319a 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,14 @@ +2012-07-29 Juri Linkov + + * simple.el (goto-line): Don't display default line number in the + prompt because it should be displayed by `read-number' (bug#9952). + Add the current line number to the defaults of `goto-line' to + allow its easier modification by users with `M-n' (bug#9201). + + * subr.el (read-number): Support multiple default values like in + other minibuffer reading functions. Replace `read' with + `string-to-number' for consistency with `number-to-string'. + 2012-07-29 Paul Eggert deactive->inactive, inactivate->deactivate spelling fixes (Bug#10150) diff --git a/lisp/simple.el b/lisp/simple.el index 4b6d6c7a73b..e1d6760e72b 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -948,11 +948,8 @@ rather than line counts." (concat " in " (buffer-name buffer)) ""))) ;; Read the argument, offering that number (if any) as default. - (list (read-number (format (if default "Goto line%s (%s): " - "Goto line%s: ") - buffer-prompt - default) - default) + (list (read-number (format "Goto line%s: " buffer-prompt) + (list default (line-number-at-pos))) buffer)))) ;; Switch to the desired buffer, one way or another. (if buffer diff --git a/lisp/subr.el b/lisp/subr.el index 76fec5dd5ac..73bc1d99e05 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -2188,23 +2188,27 @@ by doing (clear-string STRING)." "Read a numeric value in the minibuffer, prompting with PROMPT. DEFAULT specifies a default value to return if the user just types RET. The value of DEFAULT is inserted into PROMPT." - (let ((n nil)) - (when default + (let ((n nil) + (default1 (if (consp default) (car default) default))) + (when default1 (setq prompt (if (string-match "\\(\\):[ \t]*\\'" prompt) - (replace-match (format " (default %s)" default) t t prompt 1) + (replace-match (format " (default %s)" default1) t t prompt 1) (replace-regexp-in-string "[ \t]*\\'" - (format " (default %s) " default) + (format " (default %s) " default1) prompt t t)))) (while (progn - (let ((str (read-from-minibuffer prompt nil nil nil nil - (and default - (number-to-string default))))) + (let ((str (read-from-minibuffer + prompt nil nil nil nil + (when default + (if (consp default) + (mapcar 'number-to-string (delq nil default)) + (number-to-string default)))))) (condition-case nil (setq n (cond - ((zerop (length str)) default) - ((stringp str) (read str)))) + ((zerop (length str)) default1) + ((stringp str) (string-to-number str)))) (error nil))) (unless (numberp n) (message "Please enter a number.") -- 2.39.2