Re: [hackers] [st][PATCH] Add support for DSR response "OK" escape sequence

From: Adam Price <komidore64_AT_gmail.com>
Date: Tue, 7 Feb 2023 15:47:32 -0500

On Tue, Feb 7, 2023 at 2:39 PM Hiltjo Posthuma <hiltjo_AT_codemadness.org> wrote:
>
> On Tue, Feb 07, 2023 at 11:20:36AM -0500, Adam Price wrote:
> > On Tue, Feb 7, 2023 at 11:17 AM Roberto E. Vargas Caballero
> > <k0ga_AT_shike2.com> wrote:
> > >
> > > On Tue, Feb 07, 2023 at 10:54:57AM -0500, Adam Price wrote:
> > > > On Mon, Feb 6, 2023 at 12:06 PM Roberto E. Vargas Caballero
> > > > <k0ga_AT_shike2.com> wrote:
> > > > >
> > > > > Hi,
> > > > >
> > > > > On Mon, Feb 06, 2023 at 08:45:27AM +0200, Santtu Lakkala wrote:
> > > > > > > tsetattr(csiescseq.arg, csiescseq.narg);
> > > > > > > break;
> > > > > > > - case 'n': /* DSR – Device Status Report (cursor position) */
> > > > > > > - if (csiescseq.arg[0] == 6) {
> > > > > > > + case 'n': /* DSR – Device Status Report */
> > > > > > > + switch (csiescseq.arg[0]) {
> > > > > > > + case 5: /* Status Report "OK" `0n` */
> > > > > > > + ttywrite("\033[0n", sizeof("\033[0n"), 0);
> > > > > >
> > > > > > This will write a NUL byte to the tty, which doesn't seem intentional.
> > > > >
> > > > > Indeed, but it should not have any difference because '\0' is a control
> > > > > character that in this situation is ignored by the terminal. Anyway it
> > > > > should be avoided.
> > > >
> > > > Ah right, of course. Thank you to you two for pointing that out. I should use
> > > > strlen() instead of sizeof().
> > > >
> > > > I will send an updated patch here shortly.
> > > >
> > >
> > > No, sizeof()-1. There is no reason to call strlen when you know the size.
> >
> > In this particular case, strlen() and sizeof() - 1 give the same result, no?
> >
>
> In a nutshell (discarding more pedantics :)):
>
> strlen() is done at run-time, it counts until a NUL byte.
> sizeof() is done at compile time and counts the size of the data structure.
>
> Otherwise the result is the same here.
> strlen() would most probably be optimized by the modern compiler too.
>
> I agree with Roberto that the best code pattern in this case is using sizeof()-1.
>
> I hope this helps,
>
> --
> Kind regards,
> Hiltjo
>

It does.

I appreciate the help and the explanation.
Received on Tue Feb 07 2023 - 21:47:32 CET

This archive was generated by hypermail 2.3.0 : Tue Feb 07 2023 - 22:12:35 CET