On 19 Jan 2002, Jan Vroonhof said:
As always, a fresh look helps. The question is not really why
didn't
work but why it did work.
Ah, battling patches! :)
(not that it matters, our patches are damn-near identical...)
It worked because the value of disabled-command-hook was
`disabled-command-hook'; run_hook_with_args_in_buffer() looked up the
value of the symbol in the disabled-command-hook (which was put in there
for the value in its function cell!) and then funcalled the car of that.
So it only worked if the function had the same name as the hook...
(Next on my list: a bizarre attempt at OO in xemacs lisp with which I
hope to replace a bunch of *-magic types, specifiers and the rest of it,
for the cost of one new type and some evaluator enhancements[1]. Still
designing. I'll stick the design on xemacs-beta when I can no longer
punch holes in it and everyone can laugh at me and call me a madman.)
[1] well, I can only do this if it's now safe to call Lisp from
redisplay; IIRC after (Ben's?) error-handling-in-redisplay fixes
from a few months back, it's now sort of safe. The enhancements
are things like support for read in other obarrays (multiple
of them at once :) ), symbols interned in multiple obarrays and
other such stuff.
--
`I personally would not stand in a river waving a graphite rod above my
head during a thunderstorm.' --- Harry Jackson