/* Switches views. */ static void cmd_ctrl_wx(key_info_t key_info, keys_info_t *keys_info) { vi->abandoned = 1; vle_mode_set(NORMAL_MODE, VMT_PRIMARY); switch_panes(); if(curr_stats.view) { change_window(); } }
/* Switches views. */ static void cmd_ctrl_wx(key_info_t key_info, keys_info_t *keys_info) { vi->abandoned = 1; *mode = NORMAL_MODE; switch_panes(); if(curr_stats.view) { change_window(); } }
/* Handles arguments received from remote instance. */ static void parse_received_arguments(char *argv[]) { int argc = 0; args_t args = {}; while(argv[argc] != NULL) { argc++; } (void)vifm_chdir(argv[0]); opterr = 0; args_parse(&args, argc, argv, argv[0]); args_process(&args, 0); exec_startup_commands(&args); args_free(&args); if(NONE(vle_mode_is, NORMAL_MODE, VIEW_MODE)) { return; } #ifdef _WIN32 SwitchToThisWindow(GetConsoleWindow(), TRUE); BringWindowToTop(GetConsoleWindow()); SetForegroundWindow(GetConsoleWindow()); #endif if(view_needs_cd(&lwin, args.lwin_path)) { remote_cd(&lwin, args.lwin_path, args.lwin_handle); } if(view_needs_cd(&rwin, args.rwin_path)) { remote_cd(&rwin, args.rwin_path, args.rwin_handle); } if(need_to_switch_active_pane(args.lwin_path, args.rwin_path)) { change_window(); } ui_sb_clear(); curr_stats.save_msg = 0; }
static void parse_recieved_arguments(char *args[]) { char lwin_path[PATH_MAX] = ""; char rwin_path[PATH_MAX] = ""; int lwin_handle = 0, rwin_handle = 0; int argc = 0; while(args[argc] != NULL) { argc++; } parse_args(argc, args, args[0], lwin_path, rwin_path, &lwin_handle, &rwin_handle); exec_startup_commands(argc, args); if(get_mode() != NORMAL_MODE && get_mode() != VIEW_MODE) { return; } #ifdef _WIN32 SwitchToThisWindow(GetConsoleWindow(), TRUE); BringWindowToTop(GetConsoleWindow()); SetForegroundWindow(GetConsoleWindow()); #endif if(view_needs_cd(&lwin, lwin_path)) { remote_cd(&lwin, lwin_path, lwin_handle); } if(view_needs_cd(&rwin, rwin_path)) { remote_cd(&rwin, rwin_path, rwin_handle); } if(lwin_path[0] != '\0' && rwin_path[0] == '\0' && curr_view != &lwin) { change_window(); } clean_status_bar(); curr_stats.save_msg = 0; }
static void cmd_tab(key_info_t key_info, keys_info_t *keys_info) { if(!curr_view->explore_mode) { leave_view_mode(); return; } change_window(); if(!curr_view->explore_mode) { vle_mode_set(NORMAL_MODE, VMT_PRIMARY); } pick_vi(curr_view->explore_mode); ui_views_update_titles(); }
int main(int argc, char *argv[]) { /* TODO: refactor main() function */ char dir[PATH_MAX]; char lwin_path[PATH_MAX] = ""; char rwin_path[PATH_MAX] = ""; int lwin_handle = 0, rwin_handle = 0; int old_config; int no_configs; init_config(); if(is_in_string_array(argv + 1, argc - 1, "--logging")) { init_logger(1); } (void)setlocale(LC_ALL, ""); if(getcwd(dir, sizeof(dir)) == NULL) { perror("getcwd"); return -1; } #ifdef _WIN32 to_forward_slash(dir); #endif init_filelists(); init_registers(); set_config_paths(); reinit_logger(); init_commands(); init_builtin_functions(); update_path_env(1); if(init_status() != 0) { puts("Error during session status initialization."); return -1; } no_configs = is_in_string_array(argv + 1, argc - 1, "--no-configs"); /* Tell file type module what function to use to check availability of * external programs. */ config_filetypes(&external_command_exists); /* This should be called before loading any configuration file. */ reset_all_file_associations(curr_stats.env_type == ENVTYPE_EMULATOR_WITH_X); init_option_handlers(); old_config = is_old_config(); if(!old_config && !no_configs) read_info_file(0); ipc_pre_init(); parse_args(argc, argv, dir, lwin_path, rwin_path, &lwin_handle, &rwin_handle); ipc_init(&parse_recieved_arguments); init_background(); set_view_path(&lwin, lwin_path); set_view_path(&rwin, rwin_path); /* Force view switch when path is specified for invisible pane. */ if(lwin_path[0] != '\0' && rwin_path[0] == '\0' && curr_view != &lwin) { change_window(); } load_initial_directory(&lwin, dir); load_initial_directory(&rwin, dir); /* Force split view when two paths are specified on command-line. */ if(lwin_path[0] != '\0' && rwin_path[0] != '\0') { curr_stats.number_of_windows = 2; } /* Setup the ncurses interface. */ if(!setup_ncurses_interface()) return -1; colmgr_init(COLOR_PAIRS); init_modes(); init_undo_list(&perform_operation, NULL, &cfg.undo_levels); load_local_options(curr_view); curr_stats.load_stage = 1; if(!old_config && !no_configs) { load_scheme(); source_config(); } write_color_scheme_file(); setup_signals(); if(old_config && !no_configs) { convert_configs(); curr_stats.load_stage = 0; read_info_file(0); curr_stats.load_stage = 1; set_view_path(&lwin, lwin_path); set_view_path(&rwin, rwin_path); load_initial_directory(&lwin, dir); load_initial_directory(&rwin, dir); source_config(); } (void)create_trash_dir(cfg.trash_dir); check_path_for_file(&lwin, lwin_path, lwin_handle); check_path_for_file(&rwin, rwin_path, rwin_handle); curr_stats.load_stage = 2; exec_startup_commands(argc, argv); update_screen(UT_FULL); modes_update(); /* Update histories of the views to ensure that their current directories, * which might have been set using command-line parameters, are stored in the * history. This is not done automatically as history manipulation should be * postponed until views are fully loaded, otherwise there is no correct * information about current file and relative cursor position. */ save_view_history(&lwin, NULL, NULL, -1); save_view_history(&rwin, NULL, NULL, -1); curr_stats.load_stage = 3; main_loop(); return 0; }