Nicolas Goaziou <m...@nicolasgoaziou.fr> writes:

> Kyle Meyer <k...@kyleam.com> writes:
>
>> I think (interactive "p"), or (interactive "P\np"), would be undesirable
>> because we'd be 1) changing the call signatures in a way that's not
>> backward compatible and 2) positioning an argument that shouldn't
>> concern most users toward the front of the argument list.
>
> I don't understand this. Why would using (interactive "p") instead of
> (interactive "P") would be incompatible?

I misunderstood, thinking you wanted to add an additional argument
rather than using (interactive "p") for WITH-CASE.

> AFAIU, the only difference is how the argument value is treated within
> the callee.

Won't using a numeric prefix argument change the behavior for both
interactive and Lisp calls?

As examples,

  * M-1 M-x org-sort-list is currently interpreted as a non-nil value
    for WITH-CASE.  Instead, it would be indistinguishable from M-x
    org-sort-list.

  * A Lisp caller can currently set WITH-CASE to any non-nil value.
    Using (interactive "p") for WITH-CASE, how do we distinguish a
    numeric argument passed for WITH-CASE from an interactive call?

Using an additional argument whose only purpose is to serve as a
interactive flag, which is what called-interactively-p's docstring
suggests, avoids these issues.

-- 
Kyle

Reply via email to