[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Question about intended behavior of 'insert-for-yank-1'.
From: |
Karl Fogel |
Subject: |
Question about intended behavior of 'insert-for-yank-1'. |
Date: |
Mon, 12 Sep 2016 00:17:14 -0500 |
The doc string for 'insert-for-yank-1' says:
[...]
If STRING has a non-nil ‘yank-handler’ property on its first
character, the normal insert behavior is altered. The value of
the ‘yank-handler’ property must be a list of one to four
elements, of the form (FUNCTION PARAM NOEXCLUDE UNDO).
FUNCTION, if non-nil, should be a function of one argument, an
object to insert; it is called instead of ‘insert’.
PARAM, if present and non-nil, replaces STRING as the argument to
FUNCTION or ‘insert’; e.g. if FUNCTION is ‘yank-rectangle’, PARAM
may be a list of strings to insert as a rectangle.
[...]
This implies that when the `yank-handler' property is present, then when PARAM
is nil, the string passed to FUNCTION should be STRING. That is, the entire
length of STRING, even if the `yank-handler' property is set only on STRING's
first character.
However, the way it actually behaves is that if you set the property on (say)
exactly the first character of STRING, then, assuming you rely on the implicit
parameter passing, what gets passed to FUNCTION is a string consisting of just
the first character of STRING :-). Later, when you yank with C-y, that's all
you'll get.
Now, this might be a reasonable behavior -- after all, if one wanted the
entirety of STRING passed, then maybe one should set the property on all of
STRING -- but it's not what's actually documented.
Should I update the documentation to clarify? Or should the behavior change
instead?
(By the way, I have not tested what happens if you set that property on
multiple disjoint extents of STRING. Does FUNCTION get passed a newly-created
concatenation of all the stretches of string that had the property? I have no
idea. If the recommendation here is just to fix the documentation, though,
then I'll do that testing.)
Best regards,
-Karl
- Question about intended behavior of 'insert-for-yank-1'.,
Karl Fogel <=