SETUP() { conf_setup(); init_modes(); init_commands(); curr_view = &lwin; other_view = &rwin; view_setup(&lwin); curr_stats.load_stage = -1; curr_stats.save_msg = 0; saved_cwd = save_cwd(); assert_success(chdir(sandbox)); update_string(&cfg.shell, "/bin/sh"); update_string(&cfg.shell_cmd_flag, "-c"); stats_update_shell_type(cfg.shell); curr_stats.exec_env_type = EET_EMULATOR; update_string(&cfg.media_prg, "./script"); create_executable("script"); }
TEARDOWN() { update_string(&cfg.slow_fs_list, NULL); update_string(&cfg.fuse_home, NULL); view_teardown(&lwin); }
TEARDOWN() { teardown_view(&lwin); teardown_view(&rwin); update_string(&cfg.vi_command, NULL); update_string(&cfg.vi_x_command, NULL); }
void update(const osmium::ChangesetDiscussion& discussion) { for (const auto& comment : discussion) { update(comment.date()); update_int32(comment.uid()); update_string(comment.user()); update_string(comment.text()); } }
SETUP() { setup_lwin(); setup_rwin(); curr_view = &lwin; other_view = &rwin; update_string(&cfg.vi_command, "vim -p"); update_string(&cfg.vi_x_command, ""); }
/* Collects files under specified file system tree. */ static void list_files_recursively(const char path[], int skip_dot_files, strlist_t *list) { int i; /* Obtain sorted list of files. */ int len; char **lst = list_sorted_files(path, &len); if(len < 0) { return; } /* Visit all subdirectories ignoring symbolic links to directories. */ for(i = 0; i < len && !ui_cancellation_requested(); ++i) { char *full_path; if(skip_dot_files && lst[i][0] == '.') { update_string(&lst[i], NULL); continue; } full_path = format_str("%s/%s", path, lst[i]); if(is_dir(full_path)) { if(!is_symlink(full_path)) { list_files_recursively(full_path, skip_dot_files, list); } free(full_path); update_string(&lst[i], NULL); } else { free(lst[i]); lst[i] = full_path; } show_progress("Listing...", 1000); } /* Append files. */ for(i = 0; i < len; ++i) { if(lst[i] != NULL) { list->nitems = put_into_string_array(&list->items, list->nitems, lst[i]); } } free(lst); }
TEARDOWN() { update_string(&cfg.slow_fs_list, NULL); update_string(&cfg.fuse_home, NULL); view_teardown(&lwin); columns_set_line_print_func(NULL); columns_free(lwin.columns); lwin.columns = NULL; }
SETUP() { update_string(&cfg.fuse_home, "no"); update_string(&cfg.slow_fs_list, ""); /* So that nothing is written into directory history. */ rwin.list_rows = 0; view_setup(&lwin); curr_view = &lwin; other_view = &lwin; }
void tabs_rename(view_t *view, const char name[]) { if(cfg.pane_tabs) { pane_tabs_t *const ptabs = get_pane_tabs(view); update_string(&ptabs->tabs[ptabs->current].name, name);; } else { global_tab_t *const gtab = >abs[current_tab]; update_string(>ab->name, name); } }
SETUP() { update_string(&cfg.fuse_home, "no"); update_string(&cfg.slow_fs_list, ""); view_setup(&lwin); curr_view = &lwin; other_view = &lwin; columns_set_line_print_func(&column_line_print); lwin.columns = columns_create(); }
TEARDOWN() { int i; update_string(&cfg.shell, NULL); stats_update_shell_type("/bin/sh"); for(i = 0; i < lwin.list_rows; ++i) { free_dir_entry(&lwin, &lwin.dir_entry[i]); } dynarray_free(lwin.dir_entry); ft_reset(0); update_string(&cfg.vi_command, NULL); }
void menu_new_search(menu_state_t *m, int backward, int new_repeat_count) { m->search_repeat = new_repeat_count; m->backward_search = backward; update_string(&m->regexp, NULL); }
/* Creates new tab with the specified name, which might be NULL. Returns newly * created tab on success or NULL on error. */ static pane_tab_t * tabs_new_pane(pane_tabs_t *ptabs, view_t *view, const char name[]) { pane_tab_t new_tab = {}; if(DA_EXTEND(ptabs->tabs) == NULL) { return NULL; } DA_COMMIT(ptabs->tabs); /* We're called from tabs_init() and just need to create internal structures * without cloning data (or it will leak). */ if(DA_SIZE(gtabs) == 0U) { ptabs->tabs[0] = new_tab; return &ptabs->tabs[0]; } clone_view(&new_tab.view, view); update_string(&new_tab.name, name); if(DA_SIZE(ptabs->tabs) == 1U) { ptabs->tabs[0] = new_tab; return &ptabs->tabs[0]; } memmove(ptabs->tabs + ptabs->current + 2, ptabs->tabs + ptabs->current + 1, sizeof(*ptabs->tabs)*(DA_SIZE(ptabs->tabs) - (ptabs->current + 2))); ptabs->tabs[ptabs->current + 1] = new_tab; return &ptabs->tabs[ptabs->current + 1]; }
/* Creates new global tab with the specified name, which might be NULL. Returns * zero on success, otherwise non-zero is returned. */ static int tabs_new_global(const char name[]) { global_tab_t new_tab = {}; if(DA_EXTEND(gtabs) == NULL) { return 1; } if(tabs_new_pane(&new_tab.left, &lwin, NULL) == NULL || tabs_new_pane(&new_tab.right, &rwin, NULL) == NULL) { free_global_tab(&new_tab); return 1; } update_string(&new_tab.name, name); capture_global_state(&new_tab); new_tab.preview.on = curr_stats.preview.on; DA_COMMIT(gtabs); /* We're called from tabs_init(). */ if(DA_SIZE(gtabs) == 1U) { gtabs[0U] = new_tab; return 0; } memmove(gtabs + current_tab + 2, gtabs + current_tab + 1, sizeof(*gtabs)*(DA_SIZE(gtabs) - (current_tab + 2))); gtabs[current_tab + 1] = new_tab; tabs_goto(current_tab + 1); return 0; }
ops_t * ops_alloc(OPS main_op, int bg, const char descr[], const char base_dir[], const char target_dir[]) { ops_t *const ops = calloc(1, sizeof(*ops)); ops->main_op = main_op; ops->descr = descr; update_string(&ops->slow_fs_list, cfg.slow_fs_list); update_string(&ops->delete_prg, cfg.delete_prg); ops->use_system_calls = cfg.use_system_calls; ops->fast_file_cloning = cfg.fast_file_cloning; ops->base_dir = strdup(base_dir); ops->target_dir = strdup(target_dir); ops->bg = bg; return ops; }
TEARDOWN() { update_string(&cfg.shell, NULL); view_teardown(&lwin); view_teardown(&rwin); }
TEARDOWN() { stats_update_shell_type("/bin/sh"); update_string(&cfg.shell, NULL); view_teardown(&lwin); view_teardown(&rwin); }
TEARDOWN() { restore_cwd(saved_cwd); update_string(&cfg.cd_path, NULL); update_string(&cfg.fuse_home, NULL); update_string(&cfg.slow_fs_list, NULL); stats_update_shell_type("/bin/sh"); update_string(&cfg.shell, NULL); view_teardown(&lwin); view_teardown(&rwin); reset_cmds(); undo_teardown(); }
void update(const osmium::Changeset& changeset) { update_int64(changeset.id()); update(changeset.created_at()); update(changeset.closed_at()); update(changeset.bounds()); update_int32(changeset.num_changes()); update_int32(changeset.uid()); update_string(changeset.user()); }
void update(const osmium::OSMObject& object) { update_int64(object.id()); update_bool(object.visible()); update_int32(object.version()); update(object.timestamp()); update_int32(object.uid()); update_string(object.user()); update(object.tags()); }
TEARDOWN() { opt_handlers_teardown(); reset_cmds(); columns_free(lwin.columns); lwin.columns = NULL; update_string(&lwin.view_columns, NULL); update_string(&lwin.sort_groups, NULL); update_string(&lwin.sort_groups_g, NULL); columns_free(rwin.columns); rwin.columns = NULL; update_string(&rwin.view_columns, NULL); columns_clear_column_descs(); }
TEARDOWN() { view_teardown(&lwin); opt_handlers_teardown(); update_string(&cfg.slow_fs_list, NULL); vle_aucmd_remove(NULL, NULL); }
/* Assigns one instance of preview_t to another managing dynamic resources on * the way. */ static void assign_preview(preview_t *dst, const preview_t *src) { *dst = *src; /* Memory allocation can fail here, but this will just mess up terminal a * bit, which isn't really a problem given that we're probably out of * memory. */ update_string(&dst->cleanup_cmd, src->cleanup_cmd); }
SETUP() { update_string(&cfg.shell, "sh"); /* lwin */ strcpy(lwin.curr_dir, "/lwin"); lwin.list_rows = 4; lwin.list_pos = 2; lwin.dir_entry = dynarray_cextend(NULL, lwin.list_rows*sizeof(*lwin.dir_entry)); lwin.dir_entry[0].name = strdup("lfile0"); lwin.dir_entry[0].origin = &lwin.curr_dir[0]; lwin.dir_entry[1].name = strdup("lfile1"); lwin.dir_entry[1].origin = &lwin.curr_dir[0]; lwin.dir_entry[2].name = strdup("lfile2"); lwin.dir_entry[2].origin = &lwin.curr_dir[0]; lwin.dir_entry[3].name = strdup("lfile3"); lwin.dir_entry[3].origin = &lwin.curr_dir[0]; lwin.dir_entry[0].selected = 1; lwin.dir_entry[2].selected = 1; lwin.selected_files = 2; /* rwin */ strcpy(rwin.curr_dir, "/rwin"); rwin.list_rows = 7; rwin.list_pos = 5; rwin.dir_entry = dynarray_cextend(NULL, rwin.list_rows*sizeof(*rwin.dir_entry)); rwin.dir_entry[0].name = strdup("rfile0"); rwin.dir_entry[0].origin = &rwin.curr_dir[0]; rwin.dir_entry[1].name = strdup("rfile1"); rwin.dir_entry[1].origin = &rwin.curr_dir[0]; rwin.dir_entry[2].name = strdup("rfile2"); rwin.dir_entry[2].origin = &rwin.curr_dir[0]; rwin.dir_entry[3].name = strdup("rfile3"); rwin.dir_entry[3].origin = &rwin.curr_dir[0]; rwin.dir_entry[4].name = strdup("rfile4"); rwin.dir_entry[4].origin = &rwin.curr_dir[0]; rwin.dir_entry[5].name = strdup("rfile5"); rwin.dir_entry[5].origin = &rwin.curr_dir[0]; rwin.dir_entry[6].name = strdup("rdir6"); rwin.dir_entry[6].origin = &rwin.curr_dir[0]; rwin.dir_entry[1].selected = 1; rwin.dir_entry[3].selected = 1; rwin.dir_entry[5].selected = 1; rwin.dir_entry[6].selected = 1; rwin.selected_files = 4; curr_view = &lwin; other_view = &rwin; }
SETUP() { curr_view = &lwin; other_view = &rwin; init_commands(); lwin.dir_entry = NULL; lwin.list_rows = 0; lwin.window_rows = 1; lwin.sort[0] = SK_NONE; ui_view_sort_list_ensure_well_formed(&lwin, lwin.sort); lwin.columns = columns_create(); lwin.view_columns = strdup(""); lwin.num_width_g = 4; lwin.num_width = 4; lwin.ls_view = 0; lwin.hide_dot = 1; lwin.hide_dot_g = 1; update_string(&lwin.sort_groups, ""); update_string(&lwin.sort_groups_g, ""); rwin.dir_entry = NULL; rwin.list_rows = 0; rwin.window_rows = 1; rwin.sort[0] = SK_NONE; ui_view_sort_list_ensure_well_formed(&rwin, rwin.sort); rwin.columns = columns_create(); rwin.view_columns = strdup(""); rwin.num_width_g = 4; rwin.num_width = 4; rwin.ls_view = 0; rwin.hide_dot_g = 1; rwin.hide_dot = 1; /* Name+size matches default column view setting ("-{name},{}"). */ columns_add_column_desc(SK_BY_NAME, &format_none); columns_add_column_desc(SK_BY_SIZE, &format_none); columns_set_line_print_func(&print_func); opt_handlers_setup(); }
SETUP() { curr_view = &lwin; update_string(&cfg.slow_fs_list, ""); init_commands(); opt_handlers_setup(); view_setup(&lwin); }
TEARDOWN() { reset_cmds(); update_string(&cfg.slow_fs_list, NULL); cfg.chase_links = 0; free_view(&lwin); free_view(&rwin); }
SETUP() { #ifndef _WIN32 update_string(&cfg.shell, "/bin/sh"); #else update_string(&cfg.shell, "cmd"); #endif update_string(&cfg.vi_command, "echo"); stats_update_shell_type(cfg.shell); lwin.list_rows = 2; lwin.list_pos = 0; lwin.dir_entry = dynarray_cextend(NULL, lwin.list_rows*sizeof(*lwin.dir_entry)); lwin.dir_entry[0].name = strdup("a"); lwin.dir_entry[0].origin = &lwin.curr_dir[0]; lwin.dir_entry[0].selected = 1; lwin.dir_entry[1].name = strdup("b"); lwin.dir_entry[1].origin = &lwin.curr_dir[0]; lwin.dir_entry[1].selected = 1; lwin.selected_files = 2; curr_view = &lwin; ft_init(&prog_exists); if(is_path_absolute(TEST_DATA_PATH)) { snprintf(lwin.curr_dir, sizeof(lwin.curr_dir), "%s/existing-files", TEST_DATA_PATH); } else { char cwd[PATH_MAX]; assert_non_null(get_cwd(cwd, sizeof(cwd))); snprintf(lwin.curr_dir, sizeof(lwin.curr_dir), "%s/%s/existing-files", cwd, TEST_DATA_PATH); } }
TEST(unfinished_scope_is_terminated_after_external_editing, IF(not_windows)) { FILE *fp; char path[PATH_MAX + 1]; char *const saved_cwd = save_cwd(); assert_success(chdir(SANDBOX_PATH)); /* Emulate proper history initialization (must happen after view * initialization). */ cfg_resize_histories(10); cfg_resize_histories(0); cfg_resize_histories(10); update_string(&cfg.shell, "/bin/sh"); stats_update_shell_type(cfg.shell); fp = fopen("./script", "w"); fputs("#!/bin/sh\n", fp); fputs("echo \"if 'a' == 'b'\" > $3\n", fp); fclose(fp); assert_success(chmod("script", 0777)); curr_stats.exec_env_type = EET_EMULATOR; make_abs_path(path, sizeof(path), SANDBOX_PATH, "script", saved_cwd); update_string(&cfg.vi_command, path); (void)vle_keys_exec_timed_out(WK_C_g); update_string(&cfg.vi_command, NULL); update_string(&cfg.shell, NULL); assert_success(unlink(path)); restore_cwd(saved_cwd); cfg_resize_histories(0); assert_true(cmds_scoped_empty()); }
TEARDOWN() { int i; update_string(&cfg.shell, NULL); for(i = 0; i < lwin.list_rows; i++) free(lwin.dir_entry[i].name); dynarray_free(lwin.dir_entry); for(i = 0; i < rwin.list_rows; i++) free(rwin.dir_entry[i].name); dynarray_free(rwin.dir_entry); }