comp.lang.ada
 help / color / mirror / Atom feed
From: Stephen Leake <stephen_leake@stephe-leake.org>
Subject: Re: using GNAT.Expect?
Date: Mon, 20 Apr 2015 10:55:46 -0500
Date: 2015-04-20T10:55:46-05:00	[thread overview]
Message-ID: <85pp6y94l9.fsf@stephe-leake.org> (raw)
In-Reply-To: 85vbguye6h.fsf@stephe-leake.org

Stephen Leake <stephen_leake@stephe-leake.org> writes:

> I'm trying to use GNAT.Expect to run sftp in a spawned process.
>
> It mostly works, but I'm having trouble waiting for the results of a
> command properly.
>
> It would be simple if I could always wait for the prompt "sftp>", but
> GNAT.Expect doesn't see that until the next command is echoed. I'm
> guessing there is some layer that is waiting for a newline.

I worked around this by always sending a second empty command:

      Send (Protocol.Process, Command & LF & LF, Add_LF => False, Empty_Buffer => True);
      --  If we wait long enough, sftp will output:
      --
      --  <command> LF <response> LF <prompt> LF <prompt>
      --
      --  However Expect requires an LF before seeing anything, so the
      --  Expect buffer will contain:
      --
      --  <prompt> <command> LF <response> LF <prompt> LF <prompt>
      --
      --  where the first <prompt> is left over from the previous command.
      --

-- 
-- Stephe


      parent reply	other threads:[~2015-04-20 15:55 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-17 15:20 using GNAT.Expect? Stephen Leake
2015-04-19 14:32 ` briot.emmanuel
2015-04-20 15:55 ` Stephen Leake [this message]
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox