GNU Emacs

John Robinson jr at bbn.com
Sat Dec 17 01:18:42 AEST 1988


In article <291 at s1.sys.uea.ac.uk>, mdt at s1 (M.D. Templeton GEC ) writes:
>o Item 1
>  I have emacs v 18.45, on a Sun 3/50 and have a teeny weeny problem.
>  If I use the mouse in suntools, say with two emacs windows displayed,
>  to select an emacs menu option, say to expand the current window,
>  the message I get is:
>
>Invalid function: (macro lambda (window &rest forms) "Switch to WINDOW, evaluate FORMS, return to original window." (byte-code .....

This is one of those problems that crop up from time to time.

What happened is that one of the sun-*.el files was byte-copmiled
without the proper macro definitions having been made first.  Though I
have 18.52, it appears that the macro in question is eval-in-window,
which is used in sun-fns.el and sun-mouse.el, and defined at thge top
of the latter.  The error you got is that the macro definition was
called as a function, which doesn't work.

The fix is to load the file defining the macro before byte-compiling
files that use the macro.  In your case, connect to the emacs/lisp
directory and do the sequence:

  (load-file "sun-mouse.el")
  (byte-compile-file "sun-mouse.el")
  (byte-compile-file "sun-fns.el")

or the equivalent interactive calls.  Check first that the defmacro in
question is in sun-mouse.el, as 18.45 may differ from 18.52.  To be
safe, you may want to load-file on all the sun-*.el files and
byte-compile them all.  Do all the load-files first.
--
/jr
jr at bbn.com or bbn!jr



More information about the Comp.unix.microport mailing list