diff --git a/Makefile b/Makefile index 7dcf5eb7..8750af08 100644 --- a/Makefile +++ b/Makefile @@ -18,7 +18,7 @@ else LDLIBS_CURSES ?= -lncurses endif -CFLAGS += -Wall -Wextra -Wno-unused-parameter +CFLAGS += -Wall -Wextra -Wno-unused-parameter -Wno-format-truncation CFLAGS += $(CFLAGS_OPTIMIZATION) CFLAGS += $(CFLAGS_CURSES) diff --git a/src/nnn.c b/src/nnn.c index 70fe67ce..4615db50 100644 --- a/src/nnn.c +++ b/src/nnn.c @@ -2017,8 +2017,8 @@ static char *coolsize(off_t size) { static const char * const U = "BKMGTPEZY"; static char size_buf[12]; /* Buffer to hold human readable size */ - static off_t rem; - static int i; + off_t rem; + int i; rem = i = 0; @@ -2065,19 +2065,21 @@ static char *coolsize(off_t size) } if (i > 0 && i < 6) - snprintf(size_buf, 12, "%lu.%0*lu%c", (ulong)size, i, (ulong)rem, U[i]); + snprintf(size_buf, 12, "%lu.%0*lu%c", size, i, rem, U[i]); else - snprintf(size_buf, 12, "%lu%c", (ulong)size, U[i]); + snprintf(size_buf, 12, "%lu%c", size, U[i]); return size_buf; } -static char *get_file_sym(mode_t mode) +static void printent(const struct entry *ent, int sel, uint namecols) { - static char ind[2]; + const char *pname = unescape(ent->name, namecols); + const char cp = (ent->flags & FILE_COPIED) ? '+' : ' '; + char ind[2]; + mode_t mode = ent->mode; - ind[0] = '\0'; - ind[1] = '\0'; + ind[0] = ind[1] = '\0'; switch (mode & S_IFMT) { case S_IFREG: @@ -2104,18 +2106,10 @@ static char *get_file_sym(mode_t mode) break; } - return ind; -} - -static void printent(const struct entry *ent, int sel, uint namecols) -{ - const char *pname = unescape(ent->name, namecols); - const char cp = (ent->flags & FILE_COPIED) ? '+' : ' '; - /* Directories are always shown on top */ resetdircolor(ent->flags); - printw("%s%c%s%s\n", CURSYM(sel), cp, pname, get_file_sym(ent->mode)); + printw("%s%c%s%s\n", CURSYM(sel), cp, pname, ind); } static void printent_long(const struct entry *ent, int sel, uint namecols)