From 4df1ae631180e9d01cb851c9795d7fc57defb548 Mon Sep 17 00:00:00 2001 From: Arun Prakash Jana Date: Wed, 5 Dec 2018 04:40:01 +0530 Subject: [PATCH] Detect filetype using file output --- src/nnn.c | 33 ++++++--------------------------- src/nnn.h | 10 ---------- 2 files changed, 6 insertions(+), 37 deletions(-) diff --git a/src/nnn.c b/src/nnn.c index 7d387ff1..4986d06b 100644 --- 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(®ex, assocs[i].regex, REG_NOSUB | REG_EXTENDED | REG_ICASE) != 0) - continue; - - if (regexec(®ex, file, 0, NULL, 0) == 0) { - regfree(®ex); - return assocs[i].mime; - } - } - - regfree(®ex); - 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 index c9a6d6fd..aeccd4f5 100644 --- 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 },