implementation of open_with
This commit is contained in:
@@ -281,7 +281,31 @@ void jump_top(){
|
||||
status |= (STATUS_RUN_BACKEND);
|
||||
}
|
||||
void open_with(){
|
||||
TODO;
|
||||
wclear(win_b);
|
||||
char *cmd;
|
||||
char *str = malloc(INPUT_BUFFER_SIZE);
|
||||
char *parsed_ui_text = parse_cmd(ui_open_with_text, mid_dir.current_file);
|
||||
mvwprintw(win_b, 0, 0, parsed_ui_text);
|
||||
if (read_string(win_b, 0, strlen(parsed_ui_text)+1, str) == 0) {
|
||||
if (str[0] == SETTINGS_COMMAND_FORK) {
|
||||
cmd = parse_cmd(str+1, mid_dir.current_file);
|
||||
pid_t pid = fork();
|
||||
if (pid == 0 && setsid()) {
|
||||
system(cmd);
|
||||
status = STATUS_QUIT_PROGRAM;
|
||||
exit(1);
|
||||
}
|
||||
} else {
|
||||
cmd = parse_cmd(str, mid_dir.current_file);
|
||||
if (system(cmd)) {
|
||||
}
|
||||
}
|
||||
free(cmd);
|
||||
}
|
||||
free(parsed_ui_text);
|
||||
free(str);
|
||||
status |= (STATUS_RUN_BACKEND | STATUS_RELOAD_DIRECTORY | STATUS_UPDATE_SCREEN_CLEAR);
|
||||
|
||||
}
|
||||
void rename_hovered(){
|
||||
wclear(win_b);
|
||||
|
||||
Reference in New Issue
Block a user