"Daniel P. Berrange" <berra...@redhat.com> writes:

> On Wed, Oct 12, 2016 at 08:15:02PM +0100, Dr. David Alan Gilbert wrote:
>> Hi,
>>   I had a look at a couple of readline like libraries;
>> editline and linenoise.  A difficulty with using them is that
>> they both want fd's or FILE*'s; editline takes either but
>> from a brief look I think it's expecting to extract the fd.
>> That makes them tricky to integrate into qemu, where
>> the chardev's hide a whole bunch of non-fd things; in particular
>> tls, mux, ringbuffers etc.
>> If we could get away with just a FILE* then we could use fopencookie,
>> but that's GNU only.
>> Is there any sane way of shepherding all chardev's into having an
>> fd?
> The entire chardev abstraction model exists precisely because we cannot
> make all chardevs look like a single fd. Even those which are fd based
> may have separate FDs for input and output.
> IMHO the only viable approach would be to enhance linenoise/editline to
> not assume use of fd* or FILE * abstractions.

The real thing (GNU readline) has hooks rl_getc_function,
rl_input_available_hook, rl_redisplay_function and so forth, which might
do the trick.  Unfortunately, we're stuck with cheap copies due to our
foolish acceptance of GPLv2-only contributions.

Reply via email to