/* Opens file under the cursor in the viewer. */ static void view_current_file(const FileView *view) { char full_path[PATH_MAX]; get_current_full_path(view, sizeof(full_path), full_path); (void)vim_view_file(full_path, -1, -1, 1); }
/* Opens file specified by its path on the given line number. */ static void open_selected_file(const char path[], int line_num) { if(os_access(path, R_OK) == 0) { (void)vim_view_file(path, line_num, -1, 1); } else { show_error_msgf("Can't read file", "File \"%s\" is not readable", path); } }
char * get_ext_command(const char beginning[], size_t line_pos, CmdInputType type) { char cmd_file[PATH_MAX]; char *cmd = NULL; generate_tmp_file_name("vifm.cmdline", cmd_file, sizeof(cmd_file)); if(setup_extcmd_file(cmd_file, beginning, type) == 0) { if(vim_view_file(cmd_file, 1, line_pos, 0) == 0) { cmd = get_file_first_line(cmd_file); } } else { show_error_msgf("Error Creating Temporary File", "Could not create file %s: %s", cmd_file, strerror(errno)); } unlink(cmd_file); return cmd; }