Of course, the non-portable constructs in the shell scripts come from
a long term mindset of "if it's not solaris or linux, it must be windows."

Better would be "if it's not windows, it must be unix"

Very compactly (untested):

case "`uname -s`" in
 Windows* | CYGWIN*) NULL=NUL PS=";" FS="\\" ;;
 *) NULL=/dev/null PS=":" FS="/" ;;
esac

This would be a pervasive change.

Martin


On Tue, Jun 24, 2008 at 6:51 PM, Alex Potanin
<[EMAIL PROTECTED]> wrote:
> Hello,
>
> I am working on the javac extension and I tried to run the javac tests in
> the OpenJDK's latest Mercurial repository.
>
> I see that a few of them contain the following in the shell scripts:
>
> # set platform-dependent variables
> OS=`uname -s`
> case "$OS" in
>  SunOS | Linux )
>    NULL=/dev/null
>    PS=":"
>    FS="/"
>    ;;
>  Windows* )
>    NULL=NUL
>    PS=";"
>    FS="\\"
>    ;;
>  * )
>    echo "Unrecognized system!"
>    exit 1;
>    ;;
> esac
>
> Since I use NetBSD, my 'uname -s' returns NetBSD.
>
> I had to add "| NetBSD" to the "SunOS | Linux" line to fix the test scripts
> so that they don't return "Unrecognized system!".
>
> Some of the affected scripts are:
>
> tools/javac/4846262/Test.sh
> tools/javac/6302184/T6302184.sh
> tools/javac/ClassPathTest/ClassPathTest.sh
>
> But there are others that I can find if required (I suspect grepping will do
> a good job).
>
> I was wondering if it can please be fixed to take NetBSD into account or
> whether there is a better way of fixing this?
>
> Thanks,
> Alex.
>

Reply via email to