GNU bug report logs -
#31314
26.1; using % escapes in prompt for interactive
Previous Next
Reported by: "Roland Winkler" <winkler <at> gnu.org>
Date: Sun, 29 Apr 2018 23:36:02 UTC
Severity: minor
Tags: fixed
Found in version 26.1
Fixed in version 27.1
Done: Lars Ingebrigtsen <larsi <at> gnus.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
Running the following command interactively in emacs -Q
(defun foo-num (n1 n2)
"Display numbers N1 and N2."
(interactive "nNumber 1: \nnNumber 1: %e, Number 2: ")
(message "Number 1: %9.2e, Number 2: %e" n1 n2))
yields the error message
Format specifier doesn?FFE2?FF80?FF99t match argument type
The problem is the `%e' apearing in the prompt for `interactive'.
If this is replaced by a generic `%s' everything works fine.
The docstring of `interactive' says that the % escapes can be used
as in calls of `format', which sugests to me that these escapes
should match the data types of the arguments that have already been
read. Yet it seems that in this context the previously read
arguments are interpreted as strings. So either the docstring of
`interactive' should say that one may use %s escapes for all types
of arguments or something else should be fixed to make this work
with any type of arguments. In principle, one could match in the
docstring for `interactive' the code letters used by `interactive'
with "legal" % escapes that may refer to the respective argument
letters later on. For example, a number read using the code letter
n could be printed using the %d, %e and / or %f escapes.
In GNU Emacs 26.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.18.9)
of 2018-04-11 built on regnitz
Windowing system distributor 'The X.Org Foundation', version 11.0.11804000
System Description: Ubuntu 16.04.4 LTS
This bug report was last modified 6 years and 8 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.