diff options
Diffstat (limited to 'init')
-rw-r--r-- | init/mesg.c | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/init/mesg.c b/init/mesg.c index 7e47644c3..658c82447 100644 --- a/init/mesg.c +++ b/init/mesg.c @@ -8,8 +8,6 @@ */ #include "busybox.h" -#include <unistd.h> -#include <stdlib.h> #ifdef USE_TTY_GROUP #define S_IWGRP_OR_S_IWOTH S_IWGRP @@ -20,24 +18,24 @@ int mesg_main(int argc, char *argv[]) { struct stat sb; - char *tty; + const char *tty; char c = 0; - if ((--argc == 0) - || ((argc == 1) && (((c = **++argv) == 'y') || (c == 'n')))) { - if ((tty = ttyname(STDERR_FILENO)) == NULL) { + if (--argc == 0 + || (argc == 1 && ((c = **++argv) == 'y' || c == 'n')) + ) { + tty = ttyname(STDERR_FILENO); + if (tty == NULL) { tty = "ttyname"; } else if (stat(tty, &sb) == 0) { + mode_t m; if (argc == 0) { - puts(((sb.st_mode & (S_IWGRP | S_IWOTH)) == - 0) ? "is n" : "is y"); + puts((sb.st_mode & (S_IWGRP|S_IWOTH)) ? "is y" : "is n"); return EXIT_SUCCESS; } - if (chmod - (tty, - (c == - 'y') ? sb.st_mode | (S_IWGRP_OR_S_IWOTH) : sb. - st_mode & ~(S_IWGRP | S_IWOTH)) == 0) { + m = (c == 'y') ? sb.st_mode | S_IWGRP_OR_S_IWOTH + : sb.st_mode & ~(S_IWGRP|S_IWOTH); + if (chmod(tty, m) == 0) { return EXIT_SUCCESS; } } |