.
[gnulib.git] / lib / modechange.h
index 0257ef0..dc3b785 100644 (file)
@@ -1,5 +1,5 @@
 /* modechange.h -- definitions for file mode manipulation
-   Copyright (C) 1989, 1990 Free Software Foundation, Inc.
+   Copyright (C) 1989, 1990, 1997 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
@@ -12,8 +12,8 @@
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 /* Masks for the `flags' field in a `struct mode_change'. */
 
@@ -39,19 +39,22 @@ struct mode_change
 #define MODE_MASK_EQUALS 1
 #define MODE_MASK_PLUS 2
 #define MODE_MASK_MINUS 4
+#define MODE_MASK_ALL (MODE_MASK_EQUALS | MODE_MASK_PLUS | MODE_MASK_MINUS)
 
 /* Error return values for mode_compile. */
 #define MODE_INVALID (struct mode_change *) 0
 #define MODE_MEMORY_EXHAUSTED (struct mode_change *) 1
+#define MODE_BAD_REFERENCE (struct mode_change *) 2
 
 #ifndef __P
-#if defined (__GNUC__) || (defined (__STDC__) && __STDC__)
-#define __P(args) args
-#else
-#define __P(args) ()
-#endif  /* GCC.  */
-#endif  /* Not __P.  */
+# if defined (__GNUC__) || (defined (__STDC__) && __STDC__)
+#  define __P(Args) Args
+# else
+#  define __P(Args) ()
+# endif
+#endif
 
 struct mode_change *mode_compile __P ((const char *, unsigned));
+struct mode_change *mode_create_from_ref __P ((const char *));
 unsigned short mode_adjust __P ((unsigned, const struct mode_change *));
 void mode_free __P ((struct mode_change *));