From: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
To: git@vger.kernel.org
Subject: Re: shell compatibility issues with SunOS 5.10
Date: Wed, 6 May 2009 09:19:06 +0000 (UTC) [thread overview]
Message-ID: <loom.20090506T091628-717@post.gmane.org> (raw)
In-Reply-To: fcaeb9bf0905052357v6773cbf5i12795c1866a80783@mail.gmail.com
Nguyen Thai Ngoc Duy writes:
> On Wed, May 6, 2009 at 4:45 PM, Johannes Sixt wrote:
> > Nguyen Thai Ngoc Duy schrieb:
> >> # normalize path:
> >> # multiple //; leading ./; /./; /../; trailing /
> >> path=$(printf '%s/\n' "$path" |
> >> sed -e '
> >> s|//*|/|g
> >> s|^\(\./\)*||
> >> s|/\./|/|g
> >> :start
> >> s|\([^/]*\)/\.\./||
> >> tstart
> >> s|/*$||
> >> ')
> It says nothing. The result of "printf '%s\n' ./foo/bar | sed -e blah"
> is just wrong, (i.e. "./" remains). I stripped down to "sed -e
> 's|^\(\./\)*||'", does not work. Probably due to \( \) pair. Skimmed
> through sed manpage, seems no mention of bracket grouping.
Quoting 'info Autoconf "Limitation of Usual Tools"':
Some `sed' implementations, e.g., Solaris, restrict the special
role of the asterisk to one-character regular expressions. This
may lead to unexpected behavior:
$ echo '1*23*4' | /usr/bin/sed 's/\(.\)*/x/g'
x2x4
$ echo '1*23*4' | /usr/xpg4/bin/sed 's/\(.\)*/x/g'
x
You can work around it in this case with
:again
s|^\./||
t again
BTW, you should put a space between t and the label (but not between
: and label), POSIX requires that and some sed versions expect it.
Cheers,
Ralf
next prev parent reply other threads:[~2009-05-06 9:19 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-06 5:59 shell compatibility issues with SunOS 5.10 Nguyen Thai Ngoc Duy
2009-05-06 6:16 ` Junio C Hamano
2009-05-06 6:43 ` Nguyen Thai Ngoc Duy
2009-05-07 1:38 ` Nguyen Thai Ngoc Duy
2009-05-06 6:45 ` Johannes Sixt
2009-05-06 6:57 ` Nguyen Thai Ngoc Duy
2009-05-06 9:19 ` Ralf Wildenhues [this message]
2009-05-06 9:38 ` Johannes Schindelin
2009-05-06 23:07 ` Nguyen Thai Ngoc Duy
2009-05-06 13:07 ` Jeff King
2009-05-06 18:14 ` Brandon Casey
2009-05-06 18:29 ` [PATCH 0/4] workaround some Solaris sed issues Brandon Casey
2009-05-06 18:29 ` [PATCH 1/4] t4118: add missing '&&' Brandon Casey
2009-05-06 18:29 ` [PATCH 2/4] t4118: avoid sed invocation on file without terminating newline Brandon Casey
2009-05-06 18:29 ` [PATCH 3/4] t/annotate-tests.sh: avoid passing a non-newline terminated file to sed Brandon Casey
2009-05-06 18:29 ` [PATCH 4/4] t4200: " Brandon Casey
2009-05-06 18:48 ` Junio C Hamano
2009-05-06 21:12 ` Brandon Casey
2009-05-06 21:49 ` Junio C Hamano
2009-05-06 22:56 ` [PATCH 1/2] t4200: remove two unnecessary lines Brandon Casey
2009-05-06 22:56 ` [PATCH 2/2] t4200: convert sed expression which operates on non-text file to perl Brandon Casey
2009-05-06 23:24 ` Nguyen Thai Ngoc Duy
2009-05-07 1:49 ` [PATCH 4/4] t4200: avoid passing a non-newline terminated file to sed Nguyen Thai Ngoc Duy
2009-05-07 2:06 ` Brandon Casey
2009-05-07 2:29 ` Junio C Hamano
2009-05-07 7:26 ` Johannes Sixt
2009-05-07 14:57 ` Brandon Casey
2009-05-06 23:15 ` shell compatibility issues with SunOS 5.10 Nguyen Thai Ngoc Duy
2009-05-07 0:22 ` Brandon Casey
2009-05-07 1:14 ` Junio C Hamano
2009-05-07 2:23 ` Brandon Casey
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=loom.20090506T091628-717@post.gmane.org \
--to=ralf.wildenhues@gmx.de \
--cc=git@vger.kernel.org \
/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;
as well as URLs for NNTP newsgroup(s).