Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!husc6!sri-unix!ctnews!pyramid!hplabs!decwrl!labrea!rocky!lewis From: lewis@rocky.STANFORD.EDU (Bil Lewis) Newsgroups: comp.emacs Subject: Re: GNU emacs on a 3B2 Message-ID: <675@rocky.STANFORD.EDU> Date: Thu, 15-Oct-87 15:35:37 EDT Article-I.D.: rocky.675 Posted: Thu Oct 15 15:35:37 1987 Date-Received: Sat, 17-Oct-87 18:04:49 EDT References: <806@mrstve.UUCP> Organization: Stanford University Computer Science Department Lines: 45 In-reply-to: rjk@mrstve.UUCP's message of 15 Oct 87 01:22:18 GMT Posting-Front-End: GNU Emacs 18.36.1 of Fri Feb 6 1987 on rocky (berkeley-unix) R, Re: your second point. Sure enough, your definition wouldn't work too well. Consider: (defun push (item ref) (setq ref (cons item ref))) => push (setq foo nil) => nil (push 5 foo) => (5) foo => nil What you've actually done is change the value of the locally bound variable ref. What you WANT is to change foo. push must be a macro. It's actually defined in cl.el, but here's a simple def: (defmacro push (item ref) (list 'setq ref (list 'cons item ref))) => push (push 5 foo) ==> (setq foo (cons 5 foo)) => (5) foo => (5) Right? Now, the REAL question, why doesn't the def of push get loaded? Well, what you have to do is to compile rnews.el with the definition of push loaded. Afterwards, when the compiled file is loaded, push will already be expanded, so you won't need the definition of push around. Got that? (load-file "cl.el") (byte-compile-file "rnews.el") ought to do the trick. -Bil --