From ripley at stats.ox.ac.uk  Tue Nov 21 14:51:38 2006
From: ripley at stats.ox.ac.uk (ripley at stats.ox.ac.uk)
Date: Tue, 21 Nov 2006 14:51:38 +0100 (CET)
Subject: [Rd] Buig in bin/R script (PR#9375)
Message-ID: <20061121135138.0C4EE3F006@slim.kubism.ku.dk>

On Tue, 21 Nov 2006, gml4410 at ggr.co.uk wrote:

> Full_Name: Gordon Lack
> Version: 2.4.0
> OS: OSF1 v5.1
> Submission from: (NULL) (198.28.92.5)
>
>
> Changes to the bin/R front-end interlude script at 2.4.0 (cf: 2.2.0) have broken
> R on (Dec/Compaq/HP) OSF1.

This was not changed in 2.4.0, and indeed 2.2.0's bin/R used "${@}" in one 
place.

> There are 3 occurrences of "${@}", but this is the incorrect syntax for adding
> $@, as on older Bourne shells this will add an empty (but present) parameter.
> The result is that the build fails while attempting to add in the Recommended
> libraries because "ARGUMENT '' __ignored__" end up on the gcc command line.
>
> The fix is to edit src/scripts//R.sh.in to use the correct, original Bourne
> shell syntax:

Surely this is an idiosyncracy (aka 'buig') of your OS rather than being 
'correct'?  The POSIX definition is

   @ Expands to the positional parameters, starting from one. When the
   expansion occurs within double-quotes, and where field splitting (see
   Field Splitting) is performed, each positional parameter shall expand as a
   separate field, with the provision that the expansion of the first
   parameter shall still be joined with the beginning part of the original
   word (assuming that the expanded parameter was embedded within a word),
   and the expansion of the last parameter shall still be joined with the
   last part of the original word. If there are no positional parameters, the
   expansion of '@' shall generate zero fields, even when '@' is
   double-quoted.

Note the declarative 'shall' there.

Further, Solaris has a genuine Bourne shell from the AT&T source code 
base, and it is both documented and behaves as this quotation.

Perhaps we need a workaround conditional on 'HAVE_OSF_BROKEN_SH', but I am 
not at all keen to complicate simple POSIX-compliant code unconditionally.

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595



[Rd] Buig in bin/R script (PR#9375)
ripley at stats.ox.ac.uk