> With this much complexity, my temptation would be to provide a > print-readable function (or an optional argument to an existing > printer) > that signalled if it were asked to print something that has no read > syntax. > > I wouldn't mind adding that feature if someone wants to do it. > It should be controlled by a variable. I've implemented that feature. I took Stefan's suggestion and made the variable be a function that took over printing (or t for signaling as in my original suggestion). The patch is attached; please bear with me as I think it's my most complex foray into Emacs' C thus far and introduces a new macro and such. It is, however, tested. On a side note, I see that this is an extension of the variable `print-readably' in XEmacs. It doesn't follow naming convention, but perhaps my new variable `print-unreadable-function' should be named or aliased to `print-readably' for compatibility. Meanwhile, savehist needs to use this. It actually already has a hack in it that uses `prin1' and `read' (or `print-readably' on XEmacs) to detect unreadability; one could certainly use this instead of the new printing feature. But for cleanliness and completeness, I removed that trick and replaced it with handlers for the unreadable signals that, now, both varities of Emacs will generate. (Of course, I also actually implemented the code to skip unprintable history elements, instead of skipping the entire history or so.) This second patch is completely untested because I'm unfamiliar with savehist. Davis -- This product is sold by volume, not by mass. If it appears too dense or too sparse, it is because mass-energy conversion has occurred during shipping.