commit acd5d052b447f5f7f06cfedf8bb3833e41679f2a
Author: Raniconduh <clagv.randomgames@gmail.com>
Date: Sun Oct 10 17:20:56 2021 +0000
diff --git a/include/commands.h b/include/commands.h
new file mode 100644
index 0000000..2e9ed72
--- /dev/null
+++ b/include/commands.h
@@ -00 +16 @@
+#ifndef COMMANDS_H
+#define COMMANDS_H
+#endif
+
+void ext_open(char *);
+
diff --git a/src/commands.c b/src/commands.c
new file mode 100644
index 0000000..cdcbca2
--- /dev/null
+++ b/src/commands.c
@@ -00 +114 @@
+#include <stdlib.h>
+#include <unistd.h>
+
+#include "dir.h"
+#include "commands.h"
+
+void ext_open(char * file) {
+ pid_t pid = fork();
+ if (!pid) {
+ execvp("xdg-open", (char*[3]){"xdg-open", file, NULL});
+ exit(0);
+ }
+}
+
diff --git a/src/dir.c b/src/dir.c
index 57424b0..225a574 100644
--- a/src/dir.c
+++ b/src/dir.c
@@ -1096 +1097 @@ void cd_back(void) {
cwd[0] = '/';
cwd[1] = '\0';
}
+ setenv("PWD", cwd, true);
}
@@ -1184 +1195 @@ void enter_dir(char * name) {
sprintf(cwd, "%s/%s", cwd, name);
else
strcat(cwd, name);
+ setenv("PWD", cwd, true);
}
diff --git a/src/main.c b/src/main.c
index 62f20bc..529d251 100644
--- a/src/main.c
+++ b/src/main.c
@@ -46 +47 @@
#include <ncurses.h>
#include <string.h>
+#include "commands.h"
#include "main.h"
#include "dir.h"
#include "io.h"
@@ -166 +177 @@ int main(int argc, char ** argv) {
} else {
cwd = malloc(strlen(argv[i]) + 2);
strcpy(cwd, argv[i]);
+ setenv("PWD", cwd, true);
}
}
}
@@ -1426 +1449 @@ int main(int argc, char ** argv) {
last_f = LAST_F;
}
break;
+ case 'o':
+ ext_open(dir_entries[cursor - 1]->name);
+ break;
case 'q':
goto done;
default: