git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Nguyen Thai Ngoc Duy <pclouds@gmail.com>
To: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Cc: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>, git@vger.kernel.org
Subject: Re: shell compatibility issues with SunOS 5.10
Date: Thu, 7 May 2009 09:07:00 +1000	[thread overview]
Message-ID: <fcaeb9bf0905061607n51457fa3x3a198c61911d0228@mail.gmail.com> (raw)
In-Reply-To: <alpine.DEB.1.00.0905061137300.14230@intel-tinevez-2-302>

On Wed, May 6, 2009 at 7:38 PM, Johannes Schindelin
<Johannes.Schindelin@gmx.de> wrote:
> Hi,
>
> On Wed, 6 May 2009, Ralf Wildenhues wrote:
>
>> 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.
>
> Maybe the time is better spent on turning submodule into a builtin, before
> it gets even larger, and before we have to jump through even more hoops
> because of shell compatibility issues?

Totally agree. git-submodule is the second largest shell script.
Better do it now or it will take git-rebase--interactive position as
the biggest one.
-- 
Duy

  reply	other threads:[~2009-05-06 23:07 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
2009-05-06  9:38       ` Johannes Schindelin
2009-05-06 23:07         ` Nguyen Thai Ngoc Duy [this message]
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=fcaeb9bf0905061607n51457fa3x3a198c61911d0228@mail.gmail.com \
    --to=pclouds@gmail.com \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=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).