Mercurial > emacs
changeset 54570:cf58c77ee000
(read-number): New function.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Fri, 26 Mar 2004 14:49:12 +0000 |
parents | 3a7d16dc72af |
children | 54265a0f59a7 |
files | lisp/subr.el |
diffstat | 1 files changed, 22 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/subr.el Fri Mar 26 07:05:31 2004 +0000 +++ b/lisp/subr.el Fri Mar 26 14:49:12 2004 +0000 @@ -1,6 +1,6 @@ ;;; subr.el --- basic lisp subroutines for Emacs -;; Copyright (C) 1985, 86, 92, 94, 95, 99, 2000, 2001, 2002, 2003 +;; Copyright (C) 1985, 86, 92, 94, 95, 99, 2000, 2001, 2002, 03, 2004 ;; Free Software Foundation, Inc. ;; Maintainer: FSF @@ -1307,6 +1307,27 @@ (setq pass new-pass)))))) (message nil) (or pass default "")))) + +;; This should be used by `call-interactively' for `n' specs. +(defun read-number (prompt &optional default) + (let ((n nil)) + (when default + (setq prompt + (if (string-match "\\(\\):[^:]*" prompt) + (replace-match (format " [%s]" default) t t prompt 1) + (concat prompt (format " [%s] " default))))) + (while + (progn + (let ((str (read-from-minibuffer prompt nil nil nil nil + (number-to-string default)))) + (setq n (cond + ((zerop (length str)) default) + ((stringp str) (read str))))) + (unless (numberp n) + (message "Please enter a number.") + (sit-for 1) + t))) + n)) ;;; Atomic change groups.