emacs-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debbugs-tracker] bug#10616: closed (flush procedure for soft ports isn'


From: GNU bug Tracking System
Subject: [debbugs-tracker] bug#10616: closed (flush procedure for soft ports isn't called)
Date: Thu, 08 Mar 2012 05:11:02 +0000

Your message dated Thu, 08 Mar 2012 00:06:38 -0500
with message-id <address@hidden>
and subject line Re: bug#10616: flush procedure for soft ports isn't called
has caused the debbugs.gnu.org bug report #10616,
regarding flush procedure for soft ports isn't called
to be marked as done.

(If you believe you have received this mail in error, please contact
address@hidden)


-- 
10616: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10616
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- Subject: flush procedure for soft ports isn't called Date: Thu, 26 Jan 2012 22:10:37 +0000
Hi guilers,

I've noticed when trying to use soft ports that the 3rd procedure in the
vector doesn't get called when I use `force-output'. The simplest
example follows

scheme@(guile−user)> (let* ((port (make-soft-port
                                   (vector #f #f (lambda () 'flushed) #f #f)
                                   "rw")))
                       (force-output port))
scheme@(guile−user)> 

I have no issues with the other procedures. This is on current stable,
on 32 bit x86 running Fedora 16. More complicated examples available on
request.

-- 
Ian Price

"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"



--- End Message ---
--- Begin Message --- Subject: Re: bug#10616: flush procedure for soft ports isn't called Date: Thu, 08 Mar 2012 00:06:38 -0500 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.92 (gnu/linux)
Hi Ian,

Ian Price <address@hidden> writes:
> From 8a9524014ce85fb34fe5cfd7a2667395ce0cdf5d Mon Sep 17 00:00:00 2001
> From: Ian Price <address@hidden>
> Date: Fri, 27 Jan 2012 06:38:09 +0000
> Subject: [PATCH] Fix flush on soft ports, so that it actually runs.
>
> * libguile/vports.c (sf_flush): Remove conditional testing the
>   position in the port's write_buf, as it is no longer used.
> ---
>  libguile/vports.c |   18 ++++--------------
>  1 files changed, 4 insertions(+), 14 deletions(-)
>
> diff --git a/libguile/vports.c b/libguile/vports.c
> index 5178d79..75e7df3 100644
> --- a/libguile/vports.c
> +++ b/libguile/vports.c
> @@ -56,21 +56,11 @@ sf_flush (SCM port)
>    scm_t_port *pt = SCM_PTAB_ENTRY (port);
>    SCM stream = SCM_PACK (pt->stream);
>  
> -  if (pt->write_pos > pt->write_buf)
> -    {
> -      /* write the byte. */
> -      scm_call_1 (SCM_SIMPLE_VECTOR_REF (stream, 0),
> -               SCM_MAKE_CHAR (*pt->write_buf));
> -      pt->write_pos = pt->write_buf;
> -  
> -      /* flush the output.  */
> -      {
> -     SCM f = SCM_SIMPLE_VECTOR_REF (stream, 2);
> +  SCM f = SCM_SIMPLE_VECTOR_REF (stream, 2);
> +
> +  if (scm_is_true (f))
> +    scm_call_0 (f);
>  
> -     if (scm_is_true (f))
> -       scm_call_0 (f);
> -      }
> -    }
>  }
>  
>  static void

Applied, thanks!

     Mark


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]