From: Arun Prakash Jana Date: Sat, 18 Jan 2020 09:28:27 +0000 (+0530) Subject: Merge functions X-Git-Tag: v3.0~70 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=afb7efc860a50d683c8c3df36126b664caff9300;p=nnn.git Merge functions --- diff --git a/src/nnn.c b/src/nnn.c index d769e3a5..adbf9428 100644 --- a/src/nnn.c +++ b/src/nnn.c @@ -2783,47 +2783,39 @@ static char *coolsize(off_t size) return size_buf; } -static char get_fileind(mode_t mode) +/* Convert a mode field into "ls -l" type perms field. */ +static char *get_lsperms(mode_t mode) { - char c = '\0'; + static const char * const rwx[] = {"---", "--x", "-w-", "-wx", "r--", "r-x", "rw-", "rwx"}; + static char bits[11] = {'\0'}; switch (mode & S_IFMT) { case S_IFREG: - c = '-'; + bits[0] = '-'; break; case S_IFDIR: - c = 'd'; + bits[0] = 'd'; break; case S_IFLNK: - c = 'l'; + bits[0] = 'l'; break; case S_IFSOCK: - c = 's'; + bits[0] = 's'; break; case S_IFIFO: - c = 'p'; + bits[0] = 'p'; break; case S_IFBLK: - c = 'b'; + bits[0] = 'b'; break; case S_IFCHR: - c = 'c'; + bits[0] = 'c'; break; default: - c = '?'; + bits[0] = '?'; break; } - return c; -} - -/* Convert a mode field into "ls -l" type perms field. */ -static char *get_lsperms(mode_t mode) -{ - static const char * const rwx[] = {"---", "--x", "-w-", "-wx", "r--", "r-x", "rw-", "rwx"}; - static char bits[11] = {'\0'}; - - bits[0] = get_fileind(mode); xstrlcpy(&bits[1], rwx[(mode >> 6) & 7], 4); xstrlcpy(&bits[4], rwx[(mode >> 3) & 7], 4); xstrlcpy(&bits[7], rwx[(mode & 7)], 4);