Mercurial > hg > xemacs-beta
diff lisp/ilisp/ilisp-prc.el @ 0:376386a54a3c r19-14
Import from CVS: tag r19-14
author | cvs |
---|---|
date | Mon, 13 Aug 2007 08:45:50 +0200 |
parents | |
children | b82b59fe008d |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lisp/ilisp/ilisp-prc.el Mon Aug 13 08:45:50 2007 +0200 @@ -0,0 +1,74 @@ +;;; -*- Mode: Emacs-Lisp -*- + +;;; ilisp-prc.el -- + +;;; This file is part of ILISP. +;;; Version: 5.7 +;;; +;;; Copyright (C) 1990, 1991, 1992, 1993 Chris McConnell +;;; 1993, 1994 Ivan Vasquez +;;; 1994, 1995 Marco Antoniotti and Rick Busdiecker +;;; +;;; Other authors' names for which this Copyright notice also holds +;;; may appear later in this file. +;;; +;;; Send mail to 'ilisp-request@lehman.com' to be included in the +;;; ILISP mailing list. 'ilisp@lehman.com' is the general ILISP +;;; mailing list were bugs and improvements are discussed. +;;; +;;; ILISP is freely redistributable under the terms found in the file +;;; COPYING. + + + +;;; +;;; ILISP process handling +;;; +;;; +(defun ilisp-process () + "Return the current ILISP process." + (get-buffer-process (ilisp-buffer))) + + +(defvar ilisp-buffer-function 'ilisp-recent-buffer + "A function of no arguments which returns the current ilisp buffer") + + +;;;%Buffer and process selection +(defun ilisp-buffer () + "Return the current ILISP buffer. This is the buffer to whose process requests are sent." + (if (memq major-mode ilisp-modes) + (current-buffer) + (let ((buffer (funcall ilisp-buffer-function))) + (or buffer + (error "You must start an inferior LISP with run-ilisp."))))) + + +(defun ilisp-recent-buffer () + "Return the most-recently selected ilisp buffer." + (if ilisp-buffer + (or (get-buffer ilisp-buffer) + (get-buffer + (setq ilisp-buffers + (lisp-del (substring ilisp-buffer 1 + (1- (length ilisp-buffer))) + ilisp-buffers + (function (lambda (s1 s2) + (string= s1 (car s2))))) + ilisp-buffer + (format "*%s*" (car (car ilisp-buffers)))))))) + + +;;; +(defun select-ilisp () + "Select the current ILISP buffer." + (interactive) + (let ((new (completing-read + (if ilisp-buffer + (format "Buffer [%s]: " + (substring ilisp-buffer 1 + (1- (length ilisp-buffer)))) + "Buffer: ") + ilisp-buffers nil t))) + (if (not (zerop (length new))) + (setq ilisp-buffer (format "*%s*" new)))))