nnn

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit 4df1ae631180e9d01cb851c9795d7fc57defb548
parent 60de561b0733bded1e057eae70ded4326c673183
Author: Arun Prakash Jana <engineerarun@gmail.com>
Date:   Wed,  5 Dec 2018 04:40:01 +0530

Detect filetype using file output

Diffstat:
Msrc/nnn.c | 33++++++---------------------------
Msrc/nnn.h | 10----------
2 files changed, 6 insertions(+), 37 deletions(-)

diff --git a/src/nnn.c b/src/nnn.c @@ -987,26 +987,6 @@ static char xchartohex(char c) return c; } -static char *getmime(const char *file) -{ - static regex_t regex; - static uint i; - static const uint len = LEN(assocs); - - for (i = 0; i < len; ++i) { - if (regcomp(&regex, assocs[i].regex, REG_NOSUB | REG_EXTENDED | REG_ICASE) != 0) - continue; - - if (regexec(&regex, file, 0, NULL, 0) == 0) { - regfree(&regex); - return assocs[i].mime; - } - } - - regfree(&regex); - return NULL; -} - static int setfilter(regex_t *regex, char *filter) { static size_t len; @@ -2719,13 +2699,12 @@ nochange: continue; /* If NNN_USE_EDITOR is set, open text in EDITOR */ - if (cfg.useeditor) - if (getmime(dents[cur].name) || - (get_output(g_buf, CMD_LEN_MAX, "file", FILE_OPTS, newpath, FALSE) && - strstr(g_buf, "text/") == g_buf)) { - spawn(editor, newpath, editor_arg, path, F_NORMAL); - continue; - } + if (cfg.useeditor && + get_output(g_buf, CMD_LEN_MAX, "file", FILE_OPTS, newpath, FALSE) && + strstr(g_buf, "text/") == g_buf) { + spawn(editor, newpath, editor_arg, path, F_NORMAL); + continue; + } /* Invoke desktop opener as last resort */ spawn(utils[OPENER], newpath, NULL, NULL, F_NOWAIT | F_NOTRACE); diff --git a/src/nnn.h b/src/nnn.h @@ -96,16 +96,6 @@ struct key { enum action act; /* Action */ }; -/* Extension pattern and mime combination */ -struct assoc { - char *regex; /* Regex to match on filename */ - char *mime; /* File type */ -}; - -static struct assoc assocs[] = { - { "\\.(c|cpp|h|log|md|py|rb|sh|txt)$", "text" }, -}; - static struct key bindings[] = { /* Back */ { KEY_BACKSPACE, SEL_BACK },