diff --git a/nnn.c b/nnn.c index 8294a1a0..816bbfb0 100644 --- a/nnn.c +++ b/nnn.c @@ -6,8 +6,7 @@ #include #include #include -#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) \ - || defined(__APPLE__) +#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__APPLE__) # include #include #include @@ -496,6 +495,7 @@ initcurses(void) fprintf(stderr, "initscr() failed\n"); exit(1); } + cbreak(); noecho(); nonl(); @@ -530,8 +530,7 @@ spawn(char *file, char *arg1, char *arg2, char *dir, uchar flag) /* Show a marker (to indicate nnn spawned shell) */ if (flag & F_MARKER) { printf("\n +-++-++-+\n | n n n |\n +-++-++-+\n\n"); - printf("Spawned shell level: %d\n", - atoi(getenv("SHLVL")) + 1); + printf("Spawned shell level: %d\n", atoi(getenv("SHLVL")) + 1); } /* Suppress stdout and stderr */ @@ -669,8 +668,7 @@ getmime(char *file) static uint len = LEN(assocs); for (i = 0; i < len; ++i) { - if (regcomp(®ex, assocs[i].regex, - REG_NOSUB | REG_EXTENDED | REG_ICASE) != 0) + if (regcomp(®ex, assocs[i].regex, REG_NOSUB | REG_EXTENDED | REG_ICASE) != 0) continue; if (regexec(®ex, file, 0, NULL, 0) == 0) return assocs[i].mime; @@ -1097,23 +1095,17 @@ printent(struct entry *ent, int sel) ncols = COLS; if (S_ISDIR(ent->mode)) - snprintf(g_buf, ncols, "%s%s/", CURSYM(sel), - unescape(ent->name)); + snprintf(g_buf, ncols, "%s%s/", CURSYM(sel), unescape(ent->name)); else if (S_ISLNK(ent->mode)) - snprintf(g_buf, ncols, "%s%s@", CURSYM(sel), - unescape(ent->name)); + snprintf(g_buf, ncols, "%s%s@", CURSYM(sel), unescape(ent->name)); else if (S_ISSOCK(ent->mode)) - snprintf(g_buf, ncols, "%s%s=", CURSYM(sel), - unescape(ent->name)); + snprintf(g_buf, ncols, "%s%s=", CURSYM(sel), unescape(ent->name)); else if (S_ISFIFO(ent->mode)) - snprintf(g_buf, ncols, "%s%s|", CURSYM(sel), - unescape(ent->name)); + snprintf(g_buf, ncols, "%s%s|", CURSYM(sel), unescape(ent->name)); else if (ent->mode & 0100) - snprintf(g_buf, ncols, "%s%s*", CURSYM(sel), - unescape(ent->name)); + snprintf(g_buf, ncols, "%s%s*", CURSYM(sel), unescape(ent->name)); else - snprintf(g_buf, ncols, "%s%s", CURSYM(sel), - unescape(ent->name)); + snprintf(g_buf, ncols, "%s%s", CURSYM(sel), unescape(ent->name)); /* Dirs are always shown on top */ if (cfg.dircolor && !S_ISDIR(ent->mode)) { @@ -1165,64 +1157,38 @@ printent_long(struct entry *ent, int sel) if (!cfg.blkorder) { if (S_ISDIR(ent->mode)) - snprintf(g_buf, ncols, "%s%-16.16s / %s/", - CURSYM(sel), buf, unescape(ent->name)); + snprintf(g_buf, ncols, "%s%-16.16s / %s/", CURSYM(sel), buf, unescape(ent->name)); else if (S_ISLNK(ent->mode)) - snprintf(g_buf, ncols, "%s%-16.16s @ %s@", - CURSYM(sel), buf, unescape(ent->name)); + snprintf(g_buf, ncols, "%s%-16.16s @ %s@", CURSYM(sel), buf, unescape(ent->name)); else if (S_ISSOCK(ent->mode)) - snprintf(g_buf, ncols, "%s%-16.16s = %s=", - CURSYM(sel), buf, unescape(ent->name)); + snprintf(g_buf, ncols, "%s%-16.16s = %s=", CURSYM(sel), buf, unescape(ent->name)); else if (S_ISFIFO(ent->mode)) - snprintf(g_buf, ncols, "%s%-16.16s | %s|", - CURSYM(sel), buf, unescape(ent->name)); + snprintf(g_buf, ncols, "%s%-16.16s | %s|", CURSYM(sel), buf, unescape(ent->name)); else if (S_ISBLK(ent->mode)) - snprintf(g_buf, ncols, "%s%-16.16s b %s", - CURSYM(sel), buf, unescape(ent->name)); + snprintf(g_buf, ncols, "%s%-16.16s b %s", CURSYM(sel), buf, unescape(ent->name)); else if (S_ISCHR(ent->mode)) - snprintf(g_buf, ncols, "%s%-16.16s c %s", - CURSYM(sel), buf, unescape(ent->name)); + snprintf(g_buf, ncols, "%s%-16.16s c %s", CURSYM(sel), buf, unescape(ent->name)); else if (ent->mode & 0100) - snprintf(g_buf, ncols, "%s%-16.16s %8.8s* %s*", - CURSYM(sel), buf, coolsize(ent->size), - unescape(ent->name)); + snprintf(g_buf, ncols, "%s%-16.16s %8.8s* %s*", CURSYM(sel), buf, coolsize(ent->size), unescape(ent->name)); else - snprintf(g_buf, ncols, "%s%-16.16s %8.8s %s", - CURSYM(sel), buf, coolsize(ent->size), - unescape(ent->name)); + snprintf(g_buf, ncols, "%s%-16.16s %8.8s %s", CURSYM(sel), buf, coolsize(ent->size), unescape(ent->name)); } else { if (S_ISDIR(ent->mode)) - snprintf(g_buf, ncols, "%s%-16.16s %8.8s/ %s/", - CURSYM(sel), buf, coolsize(ent->blocks << 9), - unescape(ent->name)); + snprintf(g_buf, ncols, "%s%-16.16s %8.8s/ %s/", CURSYM(sel), buf, coolsize(ent->blocks << 9), unescape(ent->name)); else if (S_ISLNK(ent->mode)) - snprintf(g_buf, ncols, "%s%-16.16s @ %s@", - CURSYM(sel), buf, - unescape(ent->name)); + snprintf(g_buf, ncols, "%s%-16.16s @ %s@", CURSYM(sel), buf, unescape(ent->name)); else if (S_ISSOCK(ent->mode)) - snprintf(g_buf, ncols, "%s%-16.16s = %s=", - CURSYM(sel), buf, - unescape(ent->name)); + snprintf(g_buf, ncols, "%s%-16.16s = %s=", CURSYM(sel), buf, unescape(ent->name)); else if (S_ISFIFO(ent->mode)) - snprintf(g_buf, ncols, "%s%-16.16s | %s|", - CURSYM(sel), buf, - unescape(ent->name)); + snprintf(g_buf, ncols, "%s%-16.16s | %s|", CURSYM(sel), buf, unescape(ent->name)); else if (S_ISBLK(ent->mode)) - snprintf(g_buf, ncols, "%s%-16.16s b %s", - CURSYM(sel), buf, - unescape(ent->name)); + snprintf(g_buf, ncols, "%s%-16.16s b %s", CURSYM(sel), buf, unescape(ent->name)); else if (S_ISCHR(ent->mode)) - snprintf(g_buf, ncols, "%s%-16.16s c %s", - CURSYM(sel), buf, - unescape(ent->name)); + snprintf(g_buf, ncols, "%s%-16.16s c %s", CURSYM(sel), buf, unescape(ent->name)); else if (ent->mode & 0100) - snprintf(g_buf, ncols, "%s%-16.16s %8.8s* %s*", - CURSYM(sel), buf, coolsize(ent->blocks << 9), - unescape(ent->name)); + snprintf(g_buf, ncols, "%s%-16.16s %8.8s* %s*", CURSYM(sel), buf, coolsize(ent->blocks << 9), unescape(ent->name)); else - snprintf(g_buf, ncols, "%s%-16.16s %8.8s %s", - CURSYM(sel), buf, coolsize(ent->blocks << 9), - unescape(ent->name)); + snprintf(g_buf, ncols, "%s%-16.16s %8.8s %s", CURSYM(sel), buf, coolsize(ent->blocks << 9), unescape(ent->name)); } /* Dirs are always shown on top */ @@ -1292,8 +1258,7 @@ get_fileind(mode_t mode, char *desc) static char * get_lsperms(mode_t mode, char *desc) { - static const char * const rwx[] = {"---", "--x", "-w-", "-wx", - "r--", "r-x", "rw-", "rwx"}; + static const char * const rwx[] = {"---", "--x", "-w-", "-wx", "r--", "r-x", "rw-", "rwx"}; static char bits[11]; bits[0] = get_fileind(mode, desc); @@ -1432,15 +1397,11 @@ show_stats(char *fpath, char *fname, struct stat *sb) /* Show major, minor number for block or char device */ if (perms[0] == 'b' || perms[0] == 'c') - dprintf(fd, " Device type: %x,%x", - major(sb->st_rdev), minor(sb->st_rdev)); + dprintf(fd, " Device type: %x,%x", major(sb->st_rdev), minor(sb->st_rdev)); /* Show permissions, owner, group */ - dprintf(fd, "\n Access: 0%d%d%d/%s Uid: (%u/%s) Gid: (%u/%s)", - (sb->st_mode >> 6) & 7, (sb->st_mode >> 3) & 7, sb->st_mode & 7, - perms, - sb->st_uid, (getpwuid(sb->st_uid))->pw_name, - sb->st_gid, (getgrgid(sb->st_gid))->gr_name); + dprintf(fd, "\n Access: 0%d%d%d/%s Uid: (%u/%s) Gid: (%u/%s)", (sb->st_mode >> 6) & 7, (sb->st_mode >> 3) & 7, + sb->st_mode & 7, perms, sb->st_uid, (getpwuid(sb->st_uid))->pw_name, sb->st_gid, (getgrgid(sb->st_gid))->gr_name); /* Show last access time */ strftime(g_buf, 40, "%a %d-%b-%Y %T %z,%Z", localtime(&sb->st_atime)); @@ -1698,8 +1659,7 @@ dentfill(char *path, struct entry **dents, continue; /* Skip self and parent */ - if ((namep[0] == '.' && (namep[1] == '\0' || - (namep[1] == '.' && namep[2] == '\0')))) + if ((namep[0] == '.' && (namep[1] == '\0' || (namep[1] == '.' && namep[2] == '\0')))) continue; if (fstatat(fd, namep, &sb, AT_SYMLINK_NOFOLLOW) @@ -1711,8 +1671,7 @@ dentfill(char *path, struct entry **dents, ent_blocks = 0; mkpath(path, namep, g_buf, PATH_MAX); - if (nftw(g_buf, sum_bsizes, open_max, - FTW_MOUNT | FTW_PHYS) == -1) { + if (nftw(g_buf, sum_bsizes, open_max, FTW_MOUNT | FTW_PHYS) == -1) { printmsg(STR_NFTWFAIL); dir_blocks += sb.st_blocks; } else @@ -1759,8 +1718,7 @@ dentfill(char *path, struct entry **dents, num_saved = num_files + 1; mkpath(path, namep, g_buf, PATH_MAX); - if (nftw(g_buf, sum_bsizes, open_max, - FTW_MOUNT | FTW_PHYS) == -1) { + if (nftw(g_buf, sum_bsizes, open_max, FTW_MOUNT | FTW_PHYS) == -1) { printmsg(STR_NFTWFAIL); dentp->blocks = sb.st_blocks; } else @@ -1933,15 +1891,10 @@ redraw(char *path) * be truncated in directory listing */ if (!cfg.blkorder) - sprintf(g_buf, "total %d %s[%s%s]", ndents, - sort, unescape(dents[cur].name), ind); + sprintf(g_buf, "total %d %s[%s%s]", ndents, sort, unescape(dents[cur].name), ind); else { - i = sprintf(g_buf, "du: %s (%lu files) ", - coolsize(dir_blocks << 9), - num_files); - sprintf(g_buf + i, "vol: %s free [%s%s]", - coolsize(fs_free), - unescape(dents[cur].name), ind); + i = sprintf(g_buf, "du: %s (%lu files) ", coolsize(dir_blocks << 9), num_files); + sprintf(g_buf + i, "vol: %s free [%s%s]", coolsize(fs_free), unescape(dents[cur].name), ind); } printmsg(g_buf); @@ -2092,22 +2045,18 @@ nochange: */ if (editor) { if (getmime(dents[cur].name)) { - spawn(editor, newpath, NULL, - NULL, F_NORMAL); + spawn(editor, newpath, NULL, NULL, F_NORMAL); continue; } /* Recognize and open plain * text files with vi */ - if (get_output(g_buf, MAX_CMD_LEN, - "file", "-bi", - newpath, 0) == NULL) + if (get_output(g_buf, MAX_CMD_LEN, "file", "-bi", newpath, 0) == NULL) continue; if (strstr(g_buf, "text/") == g_buf) { - spawn(editor, newpath, NULL, - NULL, F_NORMAL); + spawn(editor, newpath, NULL, NULL, F_NORMAL); continue; } } @@ -2126,8 +2075,7 @@ nochange: DPRINTF_S(fltr); /* Save current */ if (ndents > 0) - mkpath(path, dents[cur].name, oldpath, - PATH_MAX); + mkpath(path, dents[cur].name, oldpath, PATH_MAX); goto nochange; case SEL_MFLTR: cfg.filtermode ^= 1; @@ -2213,8 +2161,7 @@ nochange: char *home = getenv("HOME"); if (home) - snprintf(newpath, PATH_MAX, "%s%s", - home, tmp + 1); + snprintf(newpath, PATH_MAX, "%s%s", home, tmp + 1); else { free(input); printmsg(STR_NOHOME); @@ -2386,12 +2333,7 @@ nochange: char *home = getenv("HOME"); if (home) - snprintf(newpath, - PATH_MAX, - "%s%s", - home, - bookmark[r].loc - + 1); + snprintf(newpath, PATH_MAX, "%s%s", home, bookmark[r].loc + 1); else { printmsg(STR_NOHOME); goto nochange; @@ -2441,20 +2383,17 @@ nochange: goto begin; case SEL_DETAIL: cfg.showdetail ^= 1; - cfg.showdetail ? (printptr = &printent_long) - : (printptr = &printent); + cfg.showdetail ? (printptr = &printent_long) : (printptr = &printent); /* Save current */ if (ndents > 0) - mkpath(path, dents[cur].name, oldpath, - PATH_MAX); + mkpath(path, dents[cur].name, oldpath, PATH_MAX); goto begin; case SEL_STATS: { struct stat sb; if (ndents > 0) { - mkpath(path, dents[cur].name, oldpath, - PATH_MAX); + mkpath(path, dents[cur].name, oldpath, PATH_MAX); r = lstat(oldpath, &sb); if (r == -1) { @@ -2462,8 +2401,7 @@ nochange: dentfree(dents); printerr(1, "lstat"); } else { - r = show_stats(oldpath, dents[cur].name, - &sb); + r = show_stats(oldpath, dents[cur].name, &sb); if (r < 0) { printmsg(strerror(errno)); goto nochange; @@ -2476,8 +2414,7 @@ nochange: case SEL_MEDIA: // fallthrough case SEL_FMEDIA: if (ndents > 0) { - mkpath(path, dents[cur].name, oldpath, - PATH_MAX); + mkpath(path, dents[cur].name, oldpath, PATH_MAX); if (show_mediainfo(oldpath, run) == -1) { sprintf(g_buf, "%s missing", metaviewer); @@ -2492,8 +2429,7 @@ nochange: goto nochange; } - spawn(desktop_manager, path, NULL, path, - F_NOTRACE | F_NOWAIT); + spawn(desktop_manager, path, NULL, path, F_NOTRACE | F_NOWAIT); break; case SEL_FSIZE: cfg.sizeorder ^= 1; @@ -2501,8 +2437,7 @@ nochange: cfg.blkorder = 0; /* Save current */ if (ndents > 0) - mkpath(path, dents[cur].name, oldpath, - PATH_MAX); + mkpath(path, dents[cur].name, oldpath, PATH_MAX); goto begin; case SEL_BSIZE: cfg.blkorder ^= 1; @@ -2514,8 +2449,7 @@ nochange: cfg.sizeorder = 0; /* Save current */ if (ndents > 0) - mkpath(path, dents[cur].name, oldpath, - PATH_MAX); + mkpath(path, dents[cur].name, oldpath, PATH_MAX); goto begin; case SEL_MTIME: cfg.mtimeorder ^= 1; @@ -2523,23 +2457,19 @@ nochange: cfg.blkorder = 0; /* Save current */ if (ndents > 0) - mkpath(path, dents[cur].name, oldpath, - PATH_MAX); + mkpath(path, dents[cur].name, oldpath, PATH_MAX); goto begin; case SEL_REDRAW: /* Save current */ if (ndents > 0) - mkpath(path, dents[cur].name, oldpath, - PATH_MAX); + mkpath(path, dents[cur].name, oldpath, PATH_MAX); goto begin; case SEL_COPY: if (copier && ndents) { if (istopdir(path)) - snprintf(newpath, PATH_MAX, "/%s", - dents[cur].name); + snprintf(newpath, PATH_MAX, "/%s", dents[cur].name); else - snprintf(newpath, PATH_MAX, "%s/%s", - path, dents[cur].name); + snprintf(newpath, PATH_MAX, "%s/%s", path, dents[cur].name); spawn(copier, newpath, NULL, NULL, F_NONE); printmsg(newpath); } else if (!copier) @@ -2561,8 +2491,7 @@ nochange: /* Screensaver */ if (idletimeout != 0 && idle == idletimeout) { idle = 0; - spawn(player, "", "screensaver", NULL, - F_NORMAL | F_SIGINT); + spawn(player, "", "screensaver", NULL, F_NORMAL | F_SIGINT); } } }