I'm writing my first major mode to run Nyquist in a buffer. Nyquist is an extension of XLISP for audio synthesis and composition. Nyquist-mode is a derivative of inferior-lisp mode, its working pretty well except for one annoying side effect. Whenever I issue (nyquist-mode) to start a new Nyquist process, whatever buffer I'm currently in gets switched to fundamental-mode. I have isolated the problem to the kill-all-local-variables statement. Is there some other way I should be doing this?
(defun nyquist-mode () (interactive) (if (nyquist-has-process-p) ;; If we are already live just switch to the nyquist buffer (switch-to-buffer nyquist-buffer) ;; Else start a new Nyquist process. (progn ;; Clean up any old nyquist process buffers (if (get-buffer nyquist-buffer) (kill-buffer nyquist-buffer)) (kill-all-local-variables) (run-lisp nyquist-program) (switch-to-buffer "*inferior-lisp*") (rename-buffer nyquist-buffer) (setq major-mode 'nyquist-mode) (setq mode-name "Nyquist") (setq inferior-lisp-buffer nyquist-buffer) (lisp-load-file nyquist-start-file) (use-local-map nyquist-map) (run-hooks 'nyquist-hook) ))) Some background: There is only --one-- nyquist process at any time. The variable nyquist-buffer holds the buffer name for the nyquist process (needed because I ultimately need other non-nyquist lisp running) nyquist-program contains the local invocation to run nyquist. Hopefully the rest is self-explanatory. -- Remove underscores to reply [EMAIL PROTECTED] _______________________________________________ Help-gnu-emacs mailing list Help-gnu-emacs@gnu.org http://lists.gnu.org/mailman/listinfo/help-gnu-emacs