help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Rationale behind conversion of a nil prefix arg to numeric 1


From: Charles Millar
Subject: Re: Rationale behind conversion of a nil prefix arg to numeric 1
Date: Wed, 07 Sep 2016 19:11:59 -0400
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0



On 09/06/2016 10:20 AM, Kaushal Modi wrote:
On Tue, Sep 6, 2016, 7:22 AM Andreas Röhler <andreas.roehler@easy-emacs.de>
wrote:

But let's go back to the simplest case of lower p in interactive spec:

What is easier to read/grasp

(setq counter (or arg 1)

or

(setq  counter (prefix-numeric-value arg))

IOW: in favor of avoiding these complex, tricky things. Let's have the
code as explicit as possible.

Those 2 forms are not 100℅ equivalent. The equivalence goes only as far as
setting the default value of counter.

If the user used (interactive "p"), counter need to be set to 4 regardless
of whether the user used "C-4" as prefix or "C-u". In the former case, arg
would be "4", but in the latter case, it would be "(4)", I.e. a list, not a
number. Your simpler representation would not take care of the C-u case. If
the counter variable is used where a numeric arg is strictly required, you
will get an error. Here, prefix-numeric-value returns "4" when arg is
"(4)".

--

I have read this thread as well as the other suggested readings. If the purpose of either p or P is to pass arguments, I do not understand the rationale of allowing C-u when using the interactive upper case P. As noted above, It returns an integer as the only element in a list, which if evaluated returns an error. Is there a use for this? Such as you may want an error?

Charlie Millar




reply via email to

[Prev in Thread] Current Thread [Next in Thread]