Fix BLI_path_frame_strip
authorSybren A. Stüvel <sybren@stuvel.eu>
Wed, 20 Mar 2019 11:59:11 +0000 (12:59 +0100)
committerSybren A. Stüvel <sybren@stuvel.eu>
Wed, 20 Mar 2019 12:42:45 +0000 (13:42 +0100)
commit0333cf00baf4d5b796347334af1f15d5bb9a2df4
tree10d17ce16e34bd955f7a7ad7400a3dabed6e17dc
parent8b9b3422eb1528339173142976e04544979f15e5
Fix BLI_path_frame_strip

The `BLI_path_frame_strip` function was completely broken, unless the
number of digits in the sequence number was the same as the length of
the extension. In other words, it would work fine for `file.0001.abc` (4
digit `0001` and 4 char `.abc`), but other combinations would truncate
to the shortest (`file.001.abc` would become `file.###.ab` and
`file.00001.a` would become `file.##.a`). The dependency between the
sequence number and the file extension is now removed.

The behaviour has changed a little bit in the case where there are no
numbers in the filename. Previously, `path="filename.abc"` would result
in `path="filename.abc"` and `ext=""`, but now it results in
`path="filename"` and `ext=".abc"`. This way `ext` always contains the
extension, and the behaviour is consistent regardless of whether there
were any numbers found.

Furthermore, I've removed the `bool set_frame_char` parameter, because
it was unclear, probably also buggy, and most importantly, never used.

I've also added a unit test for the `BLI_path_frame_strip` function.
source/blender/blenkernel/intern/cachefile.c
source/blender/blenlib/BLI_path_util.h
source/blender/blenlib/intern/path_util.c
source/blender/editors/space_sequencer/sequencer_add.c
tests/gtests/blenlib/BLI_path_util_test.cc