"brian m. carlson" <sandals@xxxxxxxxxxxxxxxxxxxx> writes: > I will note that usually the project prefers to have a human's personal > name here and in the commit metadata instead of a username. Junio may > chime in here with an opinion. Thanks, I just did. >> command_list () { >> - eval "grep -ve '^#' $exclude_programs" <"$1" >> + eval "grep -v -e '^#' $exclude_programs" <"$1" > > Is it really the case that Plan 9's grep cannot deal with bundled short > options? That seems to be a significant departure from POSIX and Unix > behavior. Regardless, this should be explained in the commit message. I am not interested in this ball of wax, but there are some pieces that are worth salvaging. This is one of those good bits. diff --git a/GIT-VERSION-GEN b/GIT-VERSION-GEN index 9db2f4feab..a7cc01caf9 100755 --- a/GIT-VERSION-GEN +++ b/GIT-VERSION-GEN @@ -26,7 +26,7 @@ else VN="$DEF_VER" fi -VN=$(expr "$VN" : v*'\(.*\)') +VN=${VN#v} if test -r $GVF then BUT. Dealing with "grep" that cannot take "-ve" and forces developers to spell it as "-v -e" is not one of them. So is forbidding use of "cut". >> get_categories () { >> - tr ' ' '\n'| >> + tr ' ' '\012'| > > Okay, I guess. Is this something we need to handle elsewhere as well? > The commit message should tell us why this is necessary, and what Plan 9 > does and doesn't support. Yeah, POSIX does want you to understand '\n' and others, but this is within reason for portability that I think we could swallow. >> +if test -z "$(echo -n)" >> +then >> + alias print='echo -n' >> +else >> + alias print='printf %s' >> +fi > > Let's avoid an alias here (especially with a common builtin name) and > instead use a shell function. Maybe like this (not tab-indented): > > print_nonl () { > if command -v printf >/dev/null 2>&1 > then > printf "%s" "$@" > else > echo -n "$@" > fi > } I'd rather not to see this done; "echo -n" and "echo '...\c'" are not portable and we do want people to use 'printf'. This directly goes against it. > This is also going to need some patching in the testsuite, since we use > printf extensively (more than 1300 times). I do hope you have perl > available. Eh, so what would Plan9 people do with Perl? Write a single-liner 'printf' script and put it in a directory on their $PATH? I am not sure if it is worth crippling the toolset our developers are allowed to choose from and use in our scripts and tests like this patch tries to do. If this were Windows, it might have been a different story, but what we are talking about is Plan 9, which had the last "fourth edition" in 2002, right? During the 18 years since then, none of its users and developers work on porting many OSS packages, whose primary user base are on POSIXy systems, to it and we need to apply patches like these to each and every OSS packages of interest? I would have expected that any exotic-minority-but-thriving-platform would be able to tell its users "here are ports of POSIXy programs---install them and it can become usable by those who only know Linux"? So, I dunno.