aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGravatar Arun Prakash Jana <engineerarun@gmail.com>2018-12-05 04:40:01 +0530
committerGravatar Arun Prakash Jana <engineerarun@gmail.com>2018-12-05 04:40:01 +0530
commit4df1ae631180e9d01cb851c9795d7fc57defb548 (patch)
tree43c5dfe684b4f73b3f2e8e586eb909b1df464567 /src
parent60de561b0733bded1e057eae70ded4326c673183 (diff)
downloadnnn-4df1ae631180e9d01cb851c9795d7fc57defb548.tar.gz
Detect filetype using file output
Diffstat (limited to 'src')
-rw-r--r--src/nnn.c33
-rw-r--r--src/nnn.h10
2 files changed, 6 insertions, 37 deletions
diff --git a/src/nnn.c b/src/nnn.c
index 7d387ff..4986d06 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(&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
index c9a6d6f..aeccd4f 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 },