Please remove me from this group

On Mon, 3 Aug 2026 at 8:40 pm, Pádraig Brady <[email protected]> wrote:

> On 03/08/2026 06:10, Collin Funk wrote:
> > The example patch I sent earlier was incorrect, since it quoted the
> > variable and its value together. This fixes that, and also makes it
> > trivial to get the same behavior in 'env'.
> >
> > +#ifndef PRINTENV_H
> > +# define PRINTENV_H 1
> > +
> > +static inline void
> > +print_envvar (char const *entry, char terminator, bool quoted)
> > +{
> > +  if (! quoted)
> > +    {
> > +      fputs (entry, stdout);
> > +      putchar (terminator);
> > +    }
> > +  else
> > +    {
> > +      idx_t const entry_len = strlen (entry);
> > +      char const *equal = memchr (entry, '=', entry_len);
> > +
> > +      /* If the parent process manipulates ENVIRON directly, it is
> possible
> > +         that an entry does not contain an equal sign.  */
> > +      idx_t const var_len = equal ? equal - entry : entry_len;
> > +      fputs (quoteN_mem (entry, var_len), stdout);
> > +
> > +      if (equal)
> > +        {
> > +          putchar ('=');
> > +          char const *val = equal + 1;
> > +          idx_t const val_len = entry_len - (val - entry);
> > +          /* Prefer "VAR=" over "VAR=''".  */
> > +          if (0 < val_len)
> > +            fputs (quoteN_mem (val, val_len), stdout);
> > +        }
> > +      putchar (terminator);
> > +    }
> > +}
> > +
> > +#endif
>
> Nice. So this avoids quoting the foo= portion unless necessary.
> Minor nit, is one could have a single putchar (terminator) at the end.
>
> > diff --git a/tests/misc/tty-quoting.sh b/tests/misc/tty-quoting.sh
> > index a0dc1d4b8..603a3fa8a 100755
> > --- a/tests/misc/tty-quoting.sh
> > +++ b/tests/misc/tty-quoting.sh
> > @@ -20,6 +20,7 @@
> >   print_ver_ basename dirname du ls readlink realpath printf test
> >   require_strace_ ioctl
>
> This should probably list printenv
>
> thanks!
> Padraig
>
>

Reply via email to