On Sun, Jun 26, 2011 at 06:18:59AM +0400, Mike Korbakov wrote:
> Unfortunatly, not all systems (like OpenBSD) has built-in texttools
> like nl, that makes it difficult to port dash, with minimum troubles.

> To reduce dependencies, I suggest using instead of nl other tools like
> awk or cat (as advised openbsd porters team).

> Building dash-0.5.6.1 was successfull with this patch:

> --- src/mkbuiltins.orig Sat Jun  5 13:34:23 2010
> +++ src/mkbuiltins      Sun Jun 26 02:36:23 2011
> @@ -84,7 +84,7 @@ cat <<\!
>   */
> 
>  !
> -sed 's/        -[a-z]*//' $temp2 | nl -v 0 | LC_COLLATE=C sort -u -k 3,3 |
> +sed 's/        -[a-z]*//' $temp2 | awk '{ print "  " FNR-1 "  " $0 }'  | 
> LC_COLLATE=C sort -u -k 3,3 |
>  tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ |
>         awk '{  printf "#define %s (builtincmd + %d)\n", $3, $1}'
>  printf '\n#define NUMBUILTINS %d\n' $(wc -l < $temp2)

This looks reasonable. It works here (FreeBSD with somewhat hacked dash
source), leaving the resulting binary unchanged.

A minor nit: comparing with other awk invocations, it seems more usual
to use NR rather than FNR. They both do the same thing if there is only
one input file.

The nl utility has caused more portability problems already; the code in
master has different options. This is so even though nl is in SUSv4
under the XSI option. We already use awk so that should be safer.

-- 
Jilles Tjoelker
--
To unsubscribe from this list: send the line "unsubscribe dash" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to