I have studied the code in message2 and the functions called by it quite a lot (hunting for GC-related errors), and I don't understand the restrictions in the second paragraph of message2's commentary (included below).
It is indeed not safe to pass data from a lisp string (due to potential GC), but not for the reasons listed. I cannot find any place where the buffer M is stored for later reference. So using alloca'ed memory seems safe to me. Can anyone enlighten me? /* Display an echo area message M with a specified length of NBYTES bytes. The string may include null characters. If M is 0, clear out any existing message, and let the mini-buffer text show through. The buffer M must continue to exist until after the echo area gets cleared or some other message gets displayed there. This means do not pass text that is stored in a Lisp string; do not pass text in a buffer that was alloca'd. */ void message2 (m, nbytes, multibyte) -- Kim F. Storm <[EMAIL PROTECTED]> http://www.cua.dk _______________________________________________ Emacs-devel mailing list Emacs-devel@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-devel