Tuesday, March 30, 2021

Re: shells/nsh

On Sun, Mar 28, 2021 at 06:14:18PM -0700, Chris Cappuccio wrote:
> Marc Espie [espie@nerim.net] wrote:
> > I've looked a bit at this code.
> >
> > I'm on the fence between marking it as BROKEN and give Chris a chance to
> > fix the code, or downright removing it.
> >
> > Specifically, it's currently broken thanks to recent changes to if.h,
> > but the code warns all over the place. There seems to be a misconception
> > that '\0' would be a NULL pointer (it's not, it's a character constant).
> >
>
> Well it was to mark the end of arguments in constructed argument lists,
> but maybe just NULL would be fine.

NULL used to be unadorned 0, which was a problem in varargs lists list
execlp(...) stuff

'\0' was never right. If anything, it should have been (char *)0
(to enforce the pointer context in variadic functions... necessary for
64 bit architectures).

These days, NULL does the right thing (thanks to millert@ and a lot of
sleuthing in the ANSI/POSIX documents).

I definitely don't want to "kill" nsh, you've been in this community for
long enough, Chris.

But as it stands, it needs a somewhat complete overall.

If you've got the time & skills, great !

Otherwise, feel free to enlist help/advice from other users around here.

(preferably people with a bit of free time... so not me)

No comments:

Post a Comment