[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

Reply via email to