From 2735f6fda66076c34f853afaccfc4dd78f66ca1f Mon Sep 17 00:00:00 2001 From: Bastien Montagne Date: Tue, 18 Aug 2015 13:18:50 +0200 Subject: Replace 'BLO_is_a_library' by 'BLO_library_path_explode'. This new func will be fully used by upcomming code (it mostly adds the extraction of library item name as well as library file and ID group). --- source/blender/editors/space_file/file_ops.c | 16 ++++++++-------- source/blender/editors/space_file/filelist.c | 14 +++++++------- source/blender/editors/space_file/filelist.h | 2 +- 3 files changed, 16 insertions(+), 16 deletions(-) (limited to 'source/blender/editors/space_file') diff --git a/source/blender/editors/space_file/file_ops.c b/source/blender/editors/space_file/file_ops.c index dddda43c3d3..6bbde1e1c17 100644 --- a/source/blender/editors/space_file/file_ops.c +++ b/source/blender/editors/space_file/file_ops.c @@ -1347,8 +1347,8 @@ int file_parent_exec(bContext *C, wmOperator *UNUSED(unused)) 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)) { + char tdir[FILE_MAX]; + if (BLO_library_path_explode(sfile->params->dir, tdir, NULL, NULL)) { ED_file_change_dir(C, false); } else { @@ -1842,9 +1842,9 @@ void file_filename_enter_handle(bContext *C, void *UNUSED(arg_unused), void *arg WM_event_add_notifier(C, NC_SPACE | ND_SPACE_FILE_PARAMS, NULL); } else if (sfile->params->type == FILE_LOADLIB) { - char tdir[FILE_MAX], tgroup[FILE_MAX]; + char tdir[FILE_MAX]; BLI_add_slash(filepath); - if (BLO_is_a_library(filepath, tdir, tgroup)) { + if (BLO_library_path_explode(filepath, tdir, NULL, NULL)) { BLI_cleanup_dir(G.main->name, filepath); BLI_strncpy(sfile->params->dir, filepath, sizeof(sfile->params->dir)); sfile->params->file[0] = '\0'; @@ -2022,8 +2022,8 @@ static int file_rename_poll(bContext *C) poll = 0; } else { - char dir[FILE_MAX], group[FILE_MAX]; - if (filelist_islibrary(sfile->files, dir, group)) poll = 0; + char dir[FILE_MAX]; + if (filelist_islibrary(sfile->files, dir, NULL)) poll = 0; } } else @@ -2050,12 +2050,12 @@ static int file_delete_poll(bContext *C) SpaceFile *sfile = CTX_wm_space_file(C); if (sfile && sfile->params) { - char dir[FILE_MAX], group[FILE_MAX]; + char dir[FILE_MAX]; int numfiles = filelist_numfiles(sfile->files); int i; int num_selected = 0; - if (filelist_islibrary(sfile->files, dir, group)) poll = 0; + if (filelist_islibrary(sfile->files, dir, NULL)) poll = 0; for (i = 0; i < numfiles; i++) { if (filelist_is_selected(sfile->files, i, CHECK_FILES)) { num_selected++; diff --git a/source/blender/editors/space_file/filelist.c b/source/blender/editors/space_file/filelist.c index 3358812796e..21a072d0adf 100644 --- a/source/blender/editors/space_file/filelist.c +++ b/source/blender/editors/space_file/filelist.c @@ -470,9 +470,9 @@ static bool is_filtered_file(struct direntry *file, const char *UNUSED(root), Fi 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]; + char dir[FILE_MAXDIR]; - if (BLO_is_a_library(root, dir, group)) { + if (BLO_library_path_explode(root, dir, NULL, NULL)) { 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')) { @@ -1044,9 +1044,9 @@ bool filelist_is_selected(struct FileList *filelist, int index, FileCheckType ch } -bool filelist_islibrary(struct FileList *filelist, char *dir, char *group) +bool filelist_islibrary(struct FileList *filelist, char *dir, char **group) { - return BLO_is_a_library(filelist->dir, dir, group); + return BLO_library_path_explode(filelist->dir, dir, group, NULL); } static int groupname_to_code(const char *group) @@ -1068,10 +1068,10 @@ static void filelist_from_library(struct FileList *filelist) struct ImBuf *ima; int ok, i, nprevs, nnames, idcode; char filename[FILE_MAX]; - char dir[FILE_MAX], group[BLO_GROUP_MAX]; + char dir[FILE_MAX], *group; /* name test */ - ok = filelist_islibrary(filelist, dir, group); + ok = filelist_islibrary(filelist, dir, &group); if (!ok) { /* free */ if (filelist->libfiledata) BLO_blendhandle_close(filelist->libfiledata); @@ -1088,7 +1088,7 @@ static void filelist_from_library(struct FileList *filelist) if (filelist->libfiledata == NULL) return; } - idcode = groupname_to_code(group); + idcode = group ? groupname_to_code(group) : 0; /* memory for strings is passed into filelist[i].relname * and freed in freefilelist */ diff --git a/source/blender/editors/space_file/filelist.h b/source/blender/editors/space_file/filelist.h index 44e0a5169fa..83f7718f0de 100644 --- a/source/blender/editors/space_file/filelist.h +++ b/source/blender/editors/space_file/filelist.h @@ -98,7 +98,7 @@ void filelist_select_file(struct FileList *filelist, int index, F bool filelist_is_selected(struct FileList *filelist, int index, FileCheckType check); struct BlendHandle *filelist_lib(struct FileList *filelist); -bool filelist_islibrary(struct FileList *filelist, char *dir, char *group); +bool filelist_islibrary(struct FileList *filelist, char *dir, char **group); void filelist_freelib(struct FileList *filelist); bool filelist_need_thumbnails(struct FileList *filelist); -- cgit v1.2.3