;;; swank-buffer-streams.lisp --- Streams that output to a buffer ;;; ;;; Authors: Ed Langley ;;; ;;; License: This code has been placed in the Public Domain. All warranties ;;; are disclaimed. (in-package :swank) (defpackage :swank-buffer-streams (:use :cl) (:import-from :swank defslimefun add-hook encode-message send-event find-thread dcase current-socket-io send-to-emacs current-thread-id wait-for-event *emacs-connection* *event-hook*) (:export make-buffer-output-stream)) (in-package :swank-buffer-streams) (defun get-temporary-identifier () (intern (symbol-name (gensym "BUFFER")) :keyword)) (defun make-buffer-output-stream (&optional (target-identifier (get-temporary-identifier))) (swank:ed-rpc '#:slime-make-buffer-stream-target (current-thread-id) target-identifier) (values (swank:make-output-stream-for-target *emacs-connection* target-identifier) target-identifier)) (provide :swank-buffer-streams)