From 005c492c40ff833a99abd251872ec60661344474 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Sat, 10 Oct 2015 20:17:12 +0200 Subject: [PATCH] ash: shrink umask code function old new delta umaskcmd 258 248 -10 Signed-off-by: Denys Vlasenko --- shell/ash.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/shell/ash.c b/shell/ash.c index b09681296..8a1628e81 100644 --- a/shell/ash.c +++ b/shell/ash.c @@ -12826,27 +12826,25 @@ umaskcmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) if (*argptr == NULL) { if (symbolic_mode) { - char buf[sizeof("u=rwx,g=rwx,o=rwx")]; + char buf[sizeof(",u=rwx,g=rwx,o=rwx")]; char *p = buf; int i; i = 2; for (;;) { - unsigned bits; - + *p++ = ','; *p++ = permuser[i]; *p++ = '='; /* mask is 0..0uuugggooo. i=2 selects uuu bits */ - bits = (mask >> (i*3)); - if (!(bits & 4)) *p++ = 'r'; - if (!(bits & 2)) *p++ = 'w'; - if (!(bits & 1)) *p++ = 'x'; + if (!(mask & 0400)) *p++ = 'r'; + if (!(mask & 0200)) *p++ = 'w'; + if (!(mask & 0100)) *p++ = 'x'; + mask <<= 3; if (--i < 0) break; - *p++ = ','; } *p = '\0'; - puts(buf); + puts(buf + 1); } else { out1fmt("%04o\n", mask); }