SCCS-vsn: bin/chmod/chmod.c 5.9
#endif /* not lint */
#ifndef lint
#endif /* not lint */
#ifndef lint
-static char sccsid[] = "@(#)chmod.c 5.8 (Berkeley) %G%";
+static char sccsid[] = "@(#)chmod.c 5.9 (Berkeley) %G%";
#endif /* not lint */
#include <sys/types.h>
#endif /* not lint */
#include <sys/types.h>
#include <stdio.h>
#include <strings.h>
#include <stdio.h>
#include <strings.h>
int retval;
main(argc, argv)
int argc;
char **argv;
{
int retval;
main(argc, argv)
int argc;
char **argv;
{
- extern int errno, optind;
register FTS *fts;
register FTSENT *p;
register int oct, omode;
register char *mode;
struct stat sb;
int ch, fflag, rflag;
register FTS *fts;
register FTSENT *p;
register int oct, omode;
register char *mode;
struct stat sb;
int ch, fflag, rflag;
fflag = rflag = 0;
while ((ch = getopt(argc, argv, "Rfrwx")) != EOF)
fflag = rflag = 0;
while ((ch = getopt(argc, argv, "Rfrwx")) != EOF)
omode = (int)strtol(mode, (char **)NULL, 8);
oct = 1;
} else {
omode = (int)strtol(mode, (char **)NULL, 8);
oct = 1;
} else {
- if (setmode(mode, 0, 0) == (mode_t)-1) {
+ if (setmode(mode) == -1) {
(void)fprintf(stderr, "chmod: invalid file mode.\n");
exit(1);
}
(void)fprintf(stderr, "chmod: invalid file mode.\n");
exit(1);
}
error(p->path);
continue;
}
error(p->path);
continue;
}
- if (chmod(p->accpath, oct ? omode :
- (int)setmode(mode, p->statb.st_mode, 0)) && !fflag)
+ if (chmod(p->accpath,
+ oct ? omode : getmode(p->statb.st_mode) && !fflag))
error(p->path);
}
exit(retval);
error(p->path);
}
exit(retval);
error(*argv);
} else
while (*++argv)
error(*argv);
} else
while (*++argv)
- if ((lstat(*argv, &sb) || chmod(*argv,
- (int)setmode(mode, sb.st_mode, 0))) && !fflag)
+ if ((lstat(*argv, &sb) ||
+ chmod(*argv, getmode(sb.st_mode))) && !fflag)
error(*argv);
exit(retval);
}
error(*argv);
exit(retval);
}