#! /bin/sh -e # DP: Proposed patch PR libgcj/31700. dir= if [ $# -eq 3 -a "$2" = '-d' ]; then pdir="-d $3" dir="$3/" elif [ $# -ne 1 ]; then echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" exit 1 fi case "$1" in -patch) patch $pdir -f --no-backup-if-mismatch -p0 < $0 ;; -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 ;; *) echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" exit 1 esac exit 0 Index: ChangeLog from Tom Tromey PR libgcj/31700: * prims.cc (parse_x_arg): Return -1 for unrecognized option. (parse_init_args): Properly handle ignoreUnrecognized. Index: libjava/prims.cc =================================================================== --- libjava/prims.cc (revision 124081) +++ libjava/prims.cc (working copy) @@ -1,6 +1,6 @@ // prims.cc - Code for core of runtime environment. -/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation +/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation This file is part of libgcj. @@ -1262,7 +1262,11 @@ { // FIXME: fail if impossible to share class data } - + else + { + // Unrecognized. + return -1; + } return 0; } @@ -1566,21 +1570,21 @@ continue; } - else if (vm_args->ignoreUnrecognized) + else { + int r = -1; if (option_string[0] == '_') - parse_x_arg (option_string + 1); - else if (! strncmp (option_string, "-X", 2)) - parse_x_arg (option_string + 2); - else + r = parse_x_arg (option_string + 1); + else if (! strncmp (option_string, "-X", 2)) + r = parse_x_arg (option_string + 2); + + if (r == -1 && ! vm_args->ignoreUnrecognized) { unknown_option: fprintf (stderr, "libgcj: unknown option: %s\n", option_string); return -1; } } - else - goto unknown_option; } return 0; }