Xref: utzoo comp.emacs:4889 gnu.emacs:290 comp.unix.microport:2298 Path: utzoo!utgpu!watmath!uunet!bu-cs!bloom-beacon!gatech!bbn!jr@bbn.com From: jr@bbn.com (John Robinson) Newsgroups: comp.emacs,gnu.emacs,comp.unix.microport Subject: Re: GNU Emacs Message-ID: <33595@bbn.COM> Date: 16 Dec 88 15:18:42 GMT References: <291@s1.sys.uea.ac.uk> Sender: news@bbn.COM Reply-To: jr@bbn.com (John Robinson) Followup-To: comp.emacs Organization: BBN Systems and Technologies Corporation, Cambridge MA Lines: 33 In-reply-to: mdt@s1.sys.uea.ac.uk (M.D. Templeton GEC ) In article <291@s1.sys.uea.ac.uk>, mdt@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@bbn.com or bbn!jr