[EMAIL PROTECTED] (James Youngman) writes: > Gnulib guys, what's the significance of the changes made to > modechange.c? How should callers who previously used MODE_MASK_PLUS > modify their code to get the same behaviour?
We couldn't find any programs that set some of the MODE_MASK bits but not others, and which also conformed to POSIX; so we removed that part of the interface. As far as I can see GNU find falls into the same camp (though admittedly the POSIX wording is a bit muddy here). Also, I notice that import-gnulib hasn't been updated to reflect the fact that config.rpath now lives in gnulib/build-aux. So I propose this patch to findutils. 2005-05-23 Paul Eggert <[EMAIL PROTECTED]> Adjust to recent gnulib changes. * import-gnulib.sh: Get config.rpath from gnulib/build-aux, not gnulib/config. * find/parser.c (parse_perm): Ignore umask when parsing symbolic permissions. Adjust to new modechange API. Index: import-gnulib.sh =================================================================== RCS file: /cvsroot/findutils/findutils/import-gnulib.sh,v retrieving revision 1.18 diff -p -u -b -w -r1.18 import-gnulib.sh --- import-gnulib.sh 4 Apr 2005 21:02:01 -0000 1.18 +++ import-gnulib.sh 23 May 2005 07:56:24 -0000 @@ -1,7 +1,7 @@ #! /bin/sh # # import-gnulib.sh -- imports a copy of gnulib into findutils -# Copyright (C) 2003,2004 Free Software Foundation, Inc. +# Copyright (C) 2003,2004,2005 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -144,5 +144,5 @@ EOF # some reason, "autoreconf -i" doesn't fetch it. for f in config.rpath do - (set -x; cp "$1"/config/"$f" . ) + (set -x; cp "$1"/build-aux/"$f" . ) done Index: find/parser.c =================================================================== RCS file: /cvsroot/findutils/findutils/find/parser.c,v retrieving revision 1.64 diff -p -u -b -w -r1.64 parser.c --- find/parser.c 16 May 2005 21:14:46 -0000 1.64 +++ find/parser.c 23 May 2005 07:56:24 -0000 @@ -1,5 +1,5 @@ /* parser.c -- convert the command line args into an expression tree. - Copyright (C) 1990, 91, 92, 93, 94, 2000, 2001, 2003, 2004 Free Software Foundation, Inc. + Copyright (C) 1990, 91, 92, 93, 94, 2000, 2001, 2003, 2004, 2005 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -1231,13 +1231,11 @@ parse_perm (char **argv, int *arg_ptr) break; } - change = mode_compile (argv[*arg_ptr] + mode_start, MODE_MASK_PLUS); - if (change == MODE_INVALID) + change = mode_compile (argv[*arg_ptr] + mode_start); + if (! change) error (1, 0, _("invalid mode `%s'"), argv[*arg_ptr]); - else if (change == MODE_MEMORY_EXHAUSTED) - error (1, 0, _("virtual memory exhausted")); - perm_val = mode_adjust (0, change); - mode_free (change); + perm_val = mode_adjust (0, change, 0); + free (change); our_pred = insert_primary (pred_perm); _______________________________________________ bug-gnulib mailing list bug-gnulib@gnu.org http://lists.gnu.org/mailman/listinfo/bug-gnulib