summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--options/path.c8
-rw-r--r--options/path.h6
-rw-r--r--player/screenshot.c2
3 files changed, 8 insertions, 8 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)
diff --git a/options/path.h b/options/path.h
index 0e1744bbd0..4756379fa2 100644
--- a/options/path.h
+++ b/options/path.h
@@ -50,10 +50,10 @@ char *mp_get_user_path(void *talloc_ctx, struct mpv_global *global,
char *mp_basename(const char *path);
-/* Return file extension, including the '.'. If root is not NULL, set it to the
- * part of the path without extension. So: path == root + returnvalue
+/* Return file extension, excluding the '.'. If root is not NULL, set it to the
+ * part of the path without extension. So: path == root + "." + extension
* Don't consider it a file extension if the only '.' is the first character.
- * Return "" if no extension.
+ * Return NULL if no extension and don't set *root in this case.
*/
char *mp_splitext(const char *path, bstr *root);
diff --git a/player/screenshot.c b/player/screenshot.c
index 7336c64e97..500960aee4 100644
--- a/player/screenshot.c
+++ b/player/screenshot.c
@@ -347,7 +347,7 @@ void screenshot_to_file(struct MPContext *mpctx, const char *filename, int mode,
}
char *ext = mp_splitext(filename, NULL);
if (ext)
- opts.format = ext + 1; // omit '.'
+ opts.format = ext;
struct mp_image *image = screenshot_get(mpctx, mode);
if (!image) {
screenshot_msg(ctx, SMSG_ERR, "Taking screenshot failed.");