Katsumi Yamaoka writes:
Maybe what is bad is that Egg and Canna replace
`self-insert-command'
in `global-map', but it seems quite hard to improve those traditional
tools. Instead, there are three possible solutions:
Thank you very much for your diagnosis and analysis.
I agree with your analysis, but I suggest the solution should combine
1 and 2. Namely, `suppress-keymap' should suppress commmand symbols
with a property (eg, 'self-insert-command) set on them, and modes that
define a self-insert-command should set that property on their
self-insert commands.
Another possibility would be to modify `self-insert-command' to
call-if-nonnil a `self-insert-function', and modify Egg and Canna to
provide the `self-insert-function' rather than the
`self-insert-command'. Perhaps this is cleanest.
Let me know what you think -- I suppose you may have thought of these
ideas too, and they're not workable for some reason -- and then we
should also check with emacs-devel. This is an unusual problem and
ISTR that Egg and Canna integrated at the C level have been banned
from Emacs so maybe it's not a problem for GNU? But Emacs is infinite
(^^;; somebody will find a reason to replace `self-insert-command'
again, so I'd like to know what RMS and Stefan think about this.
(Among others, but definitely the 'king' and 'crown prince' should be
consulted.:-)
I also don't like using defadvice in distributed packages.
1. Make egg.el and canna.el modify `suppress-keymap' to support
Egg and Canna. This way is what I recommend (and also
implemented in old Egg and Canna for the modern Emacs).
-> Patch1
2. Make `suppress-keymap' support Egg and Canna in keymap.el.
But it is useless for people who don't use Egg or Canna.
-> Patch2
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-patches