Commit: a2a970cbdd9f6a242250493243eec63d07a35414
Author: Antony Riakiotakis
Date:   Thu Jun 4 21:15:54 2015 +0200
Branches: gooseberry
https://developer.blender.org/rBa2a970cbdd9f6a242250493243eec63d07a35414

Collapse image sequence feature now uses BLI_path_* functions to detect
filenames.

===================================================================

M       source/blender/blenlib/BLI_path_util.h
M       source/blender/blenlib/intern/path_util.c
M       source/blender/editors/space_file/filelist.c

===================================================================

diff --git a/source/blender/blenlib/BLI_path_util.h 
b/source/blender/blenlib/BLI_path_util.h
index c9a54c3..c488856 100644
--- a/source/blender/blenlib/BLI_path_util.h
+++ b/source/blender/blenlib/BLI_path_util.h
@@ -133,7 +133,7 @@ bool BLI_path_abs(char *path, const char *basepath)  
ATTR_NONNULL();
 bool BLI_path_frame(char *path, int frame, int digits) ATTR_NONNULL();
 bool BLI_path_frame_range(char *path, int sta, int end, int digits) 
ATTR_NONNULL();
 bool BLI_path_frame_get(char *path, int *r_frame, int *numdigits) 
ATTR_NONNULL();
-void BLI_path_frame_strip(char *path, bool setsharp, char *ext) ATTR_NONNULL();
+bool BLI_path_frame_strip(char *path, bool setsharp, char *ext);
 bool BLI_path_frame_check_chars(const char *path) ATTR_NONNULL();
 bool BLI_path_cwd(char *path) ATTR_NONNULL();
 void BLI_path_rel(char *file, const char *relfile) ATTR_NONNULL();
diff --git a/source/blender/blenlib/intern/path_util.c 
b/source/blender/blenlib/intern/path_util.c
index d3352e2..f9c899a 100644
--- a/source/blender/blenlib/intern/path_util.c
+++ b/source/blender/blenlib/intern/path_util.c
@@ -912,7 +912,7 @@ bool BLI_path_frame_get(char *path, int *r_frame, int 
*r_numdigits)
        return false;
 }
 
-void BLI_path_frame_strip(char *path, bool setsharp, char *ext)
+bool BLI_path_frame_strip(char *path, bool setsharp, char *ext)
 {
        if (path && *path) {
                char *file = (char *)BLI_last_slash(path);
@@ -958,8 +958,12 @@ void BLI_path_frame_strip(char *path, bool setsharp, char 
*ext)
                        }
                        *c = 0;
                        if (ext) *ext = 0;
+
+                       return true;
                }
        }
+
+       return false;
 }
 
 
diff --git a/source/blender/editors/space_file/filelist.c 
b/source/blender/editors/space_file/filelist.c
index 7edfc32..a0213f0 100644
--- a/source/blender/editors/space_file/filelist.c
+++ b/source/blender/editors/space_file/filelist.c
@@ -469,42 +469,24 @@ static bool is_filtered_file(struct direntry *file, const 
char *UNUSED(root), Fi
        }
 
        if (is_filtered && filter->collapse_ima_seq) {
-               const char *filename, *filename_stripped;
-               filename = file->relname;
+               char filename[PATH_MAX];
 
-               filename_stripped = filename;
+               if (file->relname) {
+                       struct direntry *ofile;
+                       BLI_strncpy(filename, file->relname, sizeof(filename));
 
-               if (filename_stripped) {
-#define MAX_FRA_DIGITS 20
-                       int numlen = 0;
 
-                       /* strip numeric extensions */
-                       while (*filename_stripped && 
isdigit(*filename_stripped)) {
-                               filename_stripped++;
-                               numlen++;
-                       }
-
-                       /* was the number really an extension? */
-                       if (*filename_stripped == '.')
-                               filename_stripped++;
-                       else {
-                               filename_stripped = filename;
-                       }
-
-                       if (numlen > 0 && numlen < MAX_FRA_DIGITS) {
-                               struct direntry *ofile;
-
-                               if ((ofile = 
BLI_ghash_lookup(filter->unique_image_list, filename_stripped))) {
+                       if (BLI_path_frame_strip(filename, false, NULL)) {
+                               if ((ofile = 
BLI_ghash_lookup(filter->unique_image_list, filename))) {
                                        is_filtered = false;
                                        ofile->selflag |= FILE_SEL_COLLAPSED;
                                        file->selflag |= FILE_SEL_COLLAPSED;
                                        BLI_addhead(&ofile->list, 
BLI_genericNodeN(file));
                                }
                                else {
-                                       
BLI_ghash_insert(filter->unique_image_list, (void *)filename_stripped, file);
+                                       
BLI_ghash_insert(filter->unique_image_list, (void *)filename, file);
                                }
                        }
-#undef MAX_FRA_DIGITS
                }
        }

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to