X-Git-Url: https://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fmodechange.c;h=c9bdbe7bdb1ce42d88dbc4ac8eaf305f5a9c578e;hb=55da53d0db0c7a9fd82b2abc809560b3089df6a5;hp=6fb9832ef8c0b47048e07f3701bcc061599544e8;hpb=ad1edcc6da6fb4a122edbd860afa743112deb784;p=gnulib.git diff --git a/lib/modechange.c b/lib/modechange.c index 6fb9832ef..c9bdbe7bd 100644 --- a/lib/modechange.c +++ b/lib/modechange.c @@ -1,5 +1,7 @@ /* modechange.c -- file mode manipulation - Copyright (C) 1989, 1990, 1997, 1998, 1999, 2001 Free Software Foundation, Inc. + + Copyright (C) 1989, 1990, 1997, 1998, 1999, 2001, 2003 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 @@ -31,16 +33,8 @@ #include "modechange.h" #include #include "xstrtol.h" - -#if STDC_HEADERS -# include -#else -char *malloc (); -#endif - -#ifndef NULL -# define NULL 0 -#endif +#include +#include #if STAT_MACROS_BROKEN # undef S_ISDIR @@ -194,18 +188,18 @@ mode_compile (const char *mode_string, unsigned int masked_ops) && S_IRGRP == RGRP && S_IWGRP == WGRP && S_IXGRP == XGRP && S_IROTH == ROTH && S_IWOTH == WOTH && S_IXOTH == XOTH) ? octal_value - : ((octal_value & SUID ? S_ISUID : 0) - | (octal_value & SGID ? S_ISGID : 0) - | (octal_value & SVTX ? S_ISVTX : 0) - | (octal_value & RUSR ? S_IRUSR : 0) - | (octal_value & WUSR ? S_IWUSR : 0) - | (octal_value & XUSR ? S_IXUSR : 0) - | (octal_value & RGRP ? S_IRGRP : 0) - | (octal_value & WGRP ? S_IWGRP : 0) - | (octal_value & XGRP ? S_IXGRP : 0) - | (octal_value & ROTH ? S_IROTH : 0) - | (octal_value & WOTH ? S_IWOTH : 0) - | (octal_value & XOTH ? S_IXOTH : 0))); + : (mode_t) ((octal_value & SUID ? S_ISUID : 0) + | (octal_value & SGID ? S_ISGID : 0) + | (octal_value & SVTX ? S_ISVTX : 0) + | (octal_value & RUSR ? S_IRUSR : 0) + | (octal_value & WUSR ? S_IWUSR : 0) + | (octal_value & XUSR ? S_IXUSR : 0) + | (octal_value & RGRP ? S_IRGRP : 0) + | (octal_value & WGRP ? S_IWGRP : 0) + | (octal_value & XGRP ? S_IXGRP : 0) + | (octal_value & ROTH ? S_IROTH : 0) + | (octal_value & WOTH ? S_IWOTH : 0) + | (octal_value & XOTH ? S_IXOTH : 0))); p = make_node_op_equals (mode); if (p == NULL)