-#define MODE_INVALID (struct mode_change *) 0
-#define MODE_MEMORY_EXHAUSTED (struct mode_change *) 1
-
-#ifdef __STDC__
-struct mode_change *mode_compile (char *, unsigned);
-unsigned short mode_adjust (unsigned, struct mode_change *);
-void mode_free (struct mode_change *);
-#else
-struct mode_change *mode_compile ();
-unsigned short mode_adjust ();
-void mode_free ();
+# define MODE_INVALID (struct mode_change *) 0
+# define MODE_MEMORY_EXHAUSTED (struct mode_change *) 1
+# define MODE_BAD_REFERENCE (struct mode_change *) 2
+
+# ifndef PARAMS
+# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
+# define PARAMS(Args) Args
+# else
+# define PARAMS(Args) ()
+# endif
+# endif
+
+struct mode_change *mode_compile PARAMS ((const char *, unsigned));
+struct mode_change *mode_create_from_ref PARAMS ((const char *));
+mode_t mode_adjust PARAMS ((mode_t, const struct mode_change *));
+void mode_free PARAMS ((struct mode_change *));
+