Thumbnail

rani/cscroll.git

Clone URL: https://git.buni.party/rani/cscroll.git

commit acd5d052b447f5f7f06cfedf8bb3833e41679f2a Author: Raniconduh <clagv.randomgames@gmail.com> Date: Sun Oct 10 17:20:56 2021 +0000 added file opening with xdg-open 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: