On Sun, Mar 28, 2021 at 06:14:18PM -0700, Chris Cappuccio wrote: > Marc Espie [es...@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)