> Here's an example of when I am not sure:
>   (message (substitute-command-keys "Press \\[wdired-finish-edit] when
>   finished \
>       or \\[wdired-abort-changes] to abort changes")))
> Can the above code ever lead to errors?

Yes.

> Either way, isn't it safe to insert a "%s" after message anyways?

The only case where it's not safe is when the existing code already does
%-escaping, in which case adding the "%s" will cause any % sign in the
output string to appear twice.  That's extremely rare and I suspect it only
happens in cases where the sole arg to message is a string constant (which
thus contains a double % sign).


> All this almost makes one wonder if it would make sense to provide a
> msg:

> (defun msg (arg)
>       (message "%s" arg))

> A lot of times, an author accidentally writes the code with msg in
> mind rather than message.  This error is pervasive, especially if you
> look at all the add-on code (not part of emacs).  I bet there is aon
> average, at least one bug per file.

In the past I suggested to make (message ARG) automatically behave like
(message "%s" ARG) and AFAIK the only prolem with that was a few rare case
like (message "Compiling list...( 0%%)") and those problems are easy to fix.


        Stefan


_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-devel

Reply via email to