DASH Shell discussions
 help / color / mirror / Atom feed
From: Jilles Tjoelker <jilles@stack.nl>
To: Mike Korbakov <mike-kmv@yandex.ru>
Cc: dash@vger.kernel.org
Subject: Re: Porting dash to OpenBSD
Date: Sun, 3 Jul 2011 22:54:59 +0200	[thread overview]
Message-ID: <20110703205459.GA49026@stack.nl> (raw)
In-Reply-To: <223511309054739@web103.yandex.ru>

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

  reply	other threads:[~2011-07-03 20:55 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-26  2:18 Porting dash to OpenBSD Mike Korbakov
2011-07-03 20:54 ` Jilles Tjoelker [this message]
2011-07-08  8:58 ` Herbert Xu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20110703205459.GA49026@stack.nl \
    --to=jilles@stack.nl \
    --cc=dash@vger.kernel.org \
    --cc=mike-kmv@yandex.ru \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox