[Bf-blender-cvs] [87518fa] asset-experiments: Use new BLI fnmatch helpers to fix wrong update in some cases when editing string search filter.
Bastien Montagne
noreply at git.blender.org
Thu Jan 1 16:58:50 CET 2015
Commit: 87518faa20566eb3d9b51cb37356e803908b7804
Author: Bastien Montagne
Date: Thu Jan 1 15:30:02 2015 +0100
Branches: asset-experiments
https://developer.blender.org/rB87518faa20566eb3d9b51cb37356e803908b7804
Use new BLI fnmatch helpers to fix wrong update in some cases when editing
string search filter.
===================================================================
M source/blender/editors/space_file/filelist.c
===================================================================
diff --git a/source/blender/editors/space_file/filelist.c b/source/blender/editors/space_file/filelist.c
index e765414..61af5e4 100644
--- a/source/blender/editors/space_file/filelist.c
+++ b/source/blender/editors/space_file/filelist.c
@@ -666,12 +666,12 @@ void filelist_filter(FileList *filelist)
void filelist_setfilter_options(FileList *filelist, const bool hide_dot, const bool hide_parent, const unsigned int filter,
const unsigned int filter_id, const char *filter_glob, const char *filter_search)
{
- if (filelist->filter_data.hide_dot != hide_dot ||
+ if ((filelist->filter_data.hide_dot != hide_dot) ||
(filelist->filter_data.hide_parent != hide_parent) ||
- filelist->filter_data.filter != filter ||
- filelist->filter_data.filter_id != filter_id ||
+ (filelist->filter_data.filter != filter) ||
+ (filelist->filter_data.filter_id != filter_id) ||
!STREQ(filelist->filter_data.filter_glob, filter_glob) ||
- !(filter_search[0] == '*' ? STRPREFIX(filelist->filter_data.filter_search, filter_search) : STRPREFIX(filelist->filter_data.filter_search + 1, filter_search)))
+ (BLI_fnmatch_strcmp_ignore_endswildcards(filelist->filter_data.filter_search, filter_search) != 0))
{
filelist->filter_data.hide_dot = hide_dot;
filelist->filter_data.hide_parent = hide_parent;
@@ -679,28 +679,8 @@ void filelist_setfilter_options(FileList *filelist, const bool hide_dot, const b
filelist->filter_data.filter = filter;
filelist->filter_data.filter_id = filter_id;
BLI_strncpy(filelist->filter_data.filter_glob, filter_glob, sizeof(filelist->filter_data.filter_glob));
-
- {
- int idx = 0;
- const size_t max_search_len = sizeof(filelist->filter_data.filter_search) - 2;
- const size_t slen = (size_t)min_ii((int)strlen(filter_search), (int)max_search_len);
-
- if (slen == 0) {
- filelist->filter_data.filter_search[0] = '\0';
- }
- else {
- /* Implicitly add heading/trailing wildcards if needed. */
- if (filter_search[idx] != '*') {
- filelist->filter_data.filter_search[idx++] = '*';
- }
- memcpy(&filelist->filter_data.filter_search[idx], filter_search, slen);
- idx += slen;
- if (filelist->filter_data.filter_search[idx - 1] != '*') {
- filelist->filter_data.filter_search[idx++] = '*';
- }
- filelist->filter_data.filter_search[idx] = '\0';
- }
- }
+ BLI_fnmatch_strncpy_add_endswildcards(filelist->filter_data.filter_search, filter_search,
+ sizeof(filelist->filter_data.filter_search));
/* And now, free filtered data so that we now we have to filter again. */
filelist_filter_clear(filelist);
More information about the Bf-blender-cvs
mailing list