static void tree_rescan_cmd (WTree *tree) { char old_dir [MC_MAXPATHLEN]; if (!tree->selected_ptr || !mc_get_current_wd (old_dir, MC_MAXPATHLEN) || mc_chdir (tree->selected_ptr->name)) return; tree_store_rescan (tree->selected_ptr->name); mc_chdir (old_dir); }
static void tree_rescan (void *data) { WTree *tree = data; int ret; vfs_path_t *old_vpath; old_vpath = vfs_path_clone (vfs_get_raw_current_dir ()); if (old_vpath == NULL) return; if (tree->selected_ptr != NULL && mc_chdir (tree->selected_ptr->name) == 0) { tree_store_rescan (tree->selected_ptr->name); ret = mc_chdir (old_vpath); } vfs_path_free (old_vpath); }