int file_parent_exec(bContext *C, wmOperator *UNUSED(unused)) { SpaceFile *sfile = CTX_wm_space_file(C); if (sfile->params) { if (BLI_parent_dir(sfile->params->dir)) { BLI_cleanup_dir(G.main->name, sfile->params->dir); /* if not browsing in .blend file, we still want to check whether the path is a directory */ if (sfile->params->type == FILE_LOADLIB) { char tdir[FILE_MAX], tgroup[FILE_MAX]; if (BLO_is_a_library(sfile->params->dir, tdir, tgroup)) { file_change_dir(C, 0); } else { file_change_dir(C, 1); } } else { file_change_dir(C, 1); } WM_event_add_notifier(C, NC_SPACE | ND_SPACE_FILE_LIST, NULL); } } return OPERATOR_FINISHED; }
static int is_filtered_lib(struct direntry* file, const char* dir, unsigned int filter, short hide_dot) { int is_filtered=0; char tdir[FILE_MAX], tgroup[GROUP_MAX]; if (BLO_is_a_library(dir, tdir, tgroup)) { is_filtered = !is_hidden_file(file->relname, hide_dot); } else { is_filtered = is_filtered_file(file, dir, filter, hide_dot); } return is_filtered; }
static bool is_filtered_lib(struct direntry *file, const char *root, FileListFilter *filter) { bool is_filtered = !is_hidden_file(file->relname, filter); char dir[FILE_MAXDIR], group[BLO_GROUP_MAX]; if (BLO_is_a_library(root, dir, group)) { is_filtered = !is_hidden_file(file->relname, filter); if (is_filtered && filter->filter && !FILENAME_IS_CURRPAR(file->relname)) { if (is_filtered && (filter->filter_search[0] != '\0')) { if (fnmatch(filter->filter_search, file->relname, FNM_CASEFOLD) != 0) { is_filtered = false; } } } } else { is_filtered = is_filtered_file(file, root, filter); } return is_filtered; }
int filelist_islibrary(struct FileList* filelist, char* dir, char* group) { return BLO_is_a_library(filelist->dir, dir, group); }