mrose%uci-750a@sri-unix.UUCP (02/07/84)
From: Marshall Rose <mrose@uci-750a>
Does anyone have any ideas on how to handle this:
You enter abbrev mode and define some local abbrevations. One of
them has a hook. You then write an abbrev file. If you read back
in the abbrev file, you don't have the definition for the hook
anymore, instead you have just the expansion text.
This can cause bizarre behavior in emacs: you start-up a shell in a
buffer using a routine that defines "cd" as an abbrev that expands
to "cd" and calls a hook. [What the hook does is unimportant to
this example but important to the user.] Later on you define some
abbrevs in another table, unrelated to the shell buffer, and write
an abbrev file. This file contains abbrevs for all abbrev tables.
You then exit emacs. Later on you start emacs again, start a shell
in a buffer, and then go to another buffer and do some editing.
You then innocently read in the abbrev file that you wrote last
time. Poof! The hook is gone for the "cd" abbrev in the shell
buffer.
Off hand, I can think of two solutions: 1) if the abbrev has a
hook associated, don't write it out in the file; 2) if the abbrev
has a hook associated, write both the expansion text and the name
of the hook to the file.
Any ideas? Is there a better way to handle this?
Thanks,
/mtr