From: Camm Maguire Date: Sun, 13 Nov 2022 12:55:14 +0000 (+0000) Subject: X-Git-Tag: archive/raspbian/2.7.1-4+rpi1~2^2^2~125 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=f7d2b9eecc348b3ebb3aa4623867248551993c18;p=gcl27.git TODO: Put a short summary on the line above and replace this paragraph with a longer explanation of this change. Complete the meta-information with other relevant fields (see below for details). To make it easier, the information below has been extracted from the changelog. Adjust it or drop it. gcl (2.6.12-15) unstable; urgency=medium * Version_2_6_13pre18 Gbp-Pq: Name Version_2_6_13pre19 --- diff --git a/lsp/gcl_iolib.lsp b/lsp/gcl_iolib.lsp index 7e9a8eb..9f65bdf 100755 --- a/lsp/gcl_iolib.lsp +++ b/lsp/gcl_iolib.lsp @@ -38,23 +38,28 @@ (defmacro with-input-from-string ((var string &key index start end) . body) - (multiple-value-bind (ds b) - (find-declarations body) - `(let ((,var (make-string-input-stream ,string ,start ,end))) - ,@ds - (unwind-protect - (progn ,@b) - (when ,index (setf ,index (si:get-string-input-stream-index ,var))) - (when ,var (close ,var)))))) - + (let ((x (sgen "X"))) + (multiple-value-bind (ds b) + (find-declarations body) + `(let ((,var (make-string-input-stream ,string ,start ,end))) + ,@ds + (unwind-protect + ,(let ((f `(progn ,@b))) + (if index + `(let ((,x (multiple-value-list ,f))) (setf ,index (get-string-input-stream-index ,var)) (values-list ,x)) + f)) + (close ,var)))))) + (defmacro with-output-to-string ((var &optional string &key element-type) . body) - (multiple-value-bind (ds b) - (find-declarations body) - `(let ((,var ,(if string `(make-string-output-stream-from-string ,string) `(make-string-output-stream)))) - ,@ds - (unwind-protect - (progn ,@b ,@(unless string `((get-output-stream-string ,var)))) - (when ,var (close ,var)))))) + (let ((s (sgen "STRING"))(bl (sgen "BLOCK"))(e (sgen "ELEMENT-TYPE"))(x (sgen "X"))) + (multiple-value-bind (ds b) + (find-declarations body) + `(let* ((,s ,string)(,e ,element-type) + (,var (if ,s (make-string-output-stream-from-string ,s) (make-string-output-stream :element-type ,e)))) + ,@ds + (unwind-protect + (let ((,x (multiple-value-list (progn ,@b)))) (if ,s (values-list ,x) (get-output-stream-string ,var))) + (close ,var)))))) (defun read-from-string (string diff --git a/o/file.d b/o/file.d index 3d810e5..e54ec6c 100755 --- a/o/file.d +++ b/o/file.d @@ -1668,12 +1668,11 @@ for the string ~S.", 3, istart, iend, strng); @) -static void -FFN(Lmake_string_output_stream)() -{ - check_arg(0); - vs_push(make_string_output_stream(64)); -} +@(static defun make_string_output_stream (&k element_type) +@ + element_type=Cnil;/*FIXME*/ + @(return `make_string_output_stream(64)`) +@) LFD(Lget_output_stream_string)() {