Re: [PATCH v9 0/9] Input/Output Terminal Abstraction

Marcel Holtmann <[email protected]> Mon, 2 Jun 2025 08:18:53 +0200
Newsgroups dev.linux.lists.ell
Message-ID <[email protected]>
Hi Gran,

>>>> This expands on Marcel Holtman's 2023-12-22 RFCv4 patch for an
>>>> input/output terminal abstraction.
>>>>=20
>>>> Substantive changes from the v7 version:
>>>>=20
>>>> * Fixed a typo in the  ASCII C0 and C1 control code mnemonics.
>>>>=20
>>>> Grant Erickson (9):
>>>> term: Initial revision.
>>>=20
>>> I actually reverted it back to my version and included printf / =
vprintf helpers.
>>>=20
>>> What is the purpose of l_term_set_bounds? Is it important for =
non-TTY setups since for TTY compatible terminals, this should not be =
needed.
>>=20
>> It=E2=80=99s been a year and a half since I first deploy[ed] this, so =
bear with me as I attempt to clear some dust and cobwebs from some of =
the details.
>>=20
>>>=20
>>>> ell/term: Do not return -EPERM for 'putnstr' and 'vprint' if not
>>>> running.
>>>=20
>>> Why is that important. It seems like a hack. If you haven=E2=80=99t =
successfully acquired the terminal, there is no point in writing to it =
since you have no idea what termios setting are dealing with.
>>=20
>> Per the above, regrettably, at this point I don=E2=80=99t recall the =
issue that I had run into. For what they are worth, my output methods =
are:
>>=20
>> ...
>>=20
>>>> ell/term: Return error on writes if the output descriptor is =
invalid.
>>>=20
>>> Seems like a fix for the previous change.
>>=20
>> It might well be. Again, per the comment above about getting back =
into the context of a year and a half ago, it seems like there was a =
desire to be able to initialize an instance with the stdin / stdout file =
stream pointers and have things work as-is and then bootstrap into / out =
of those with the terminal as my line oriented UI/UX acquired / released =
the terminal as UI/UX elements were pushed/popped off the stack.
>=20
> Thinking about this further, I suspect my original changes about =
is_running (now, is_acquired) / -EPERM and -EBADF were about early =
prototyping and refining my stack based, line-oriented UI/UX.
>=20
> I suspect if we left the code as-it was in those two regards, the =
stack based, line-oriented UI/UX would work fine. If that=E2=80=99s not =
the case, I can revisit that specific issue later.

then I am starting to leave things out and see how far we get.

Regards

Marcel