diff options
author | wm4 <wm4@nowhere> | 2013-12-22 23:04:19 +0100 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2013-12-22 23:25:08 +0100 |
commit | 3782fa20edcd3e4bdbbfa5ffbd430449b97c009a (patch) | |
tree | f9021405d4f140a5405041027d04a06746339d32 /options/path.c | |
parent | c31ce789c5058e076b3219d19a0441171add9c08 (diff) | |
download | mpv-3782fa20edcd3e4bdbbfa5ffbd430449b97c009a.tar.bz2 mpv-3782fa20edcd3e4bdbbfa5ffbd430449b97c009a.tar.xz |
path: change mp_splitext() semantics
Including the "." in the returned extension was too inconvenient. I
think originally, the semantics were supposed to work like in Python,
but screw this.
Also, return NULL instead of "" on failure (which is what its only user
actually seems to expect).
Diffstat (limited to 'options/path.c')
-rw-r--r-- | options/path.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/options/path.c b/options/path.c index 17d6245582..304f009167 100644 --- a/options/path.c +++ b/options/path.c @@ -155,11 +155,11 @@ char *mp_splitext(const char *path, bstr *root) { assert(path); const char *split = strrchr(path, '.'); - if (!split) - split = path + strlen(path); + if (!split || !split[1] || strchr(split, '/')) + return NULL; if (root) - *root = (bstr){.start = (char *)path, .len = path - split}; - return (char *)split; + *root = (bstr){(char *)path, split - path}; + return (char *)split + 1; } char *mp_path_join(void *talloc_ctx, struct bstr p1, struct bstr p2) |