diff options
author | shadlaws <shad@shadlaws.com> | 2013-01-18 20:06:05 +0100 |
---|---|---|
committer | shadlaws <shad@shadlaws.com> | 2013-01-18 20:06:05 +0100 |
commit | 3a9009492e6d05fe657e3aacf34cf40ca3495db5 (patch) | |
tree | e244c6dd635eda6c7a0a73f1ec4d7bf556a9000d /modules/gallery/helpers/legal_file.php | |
parent | 61724f78da98d192cc86db6b3a12cdac506a916e (diff) |
#1943 - Make legal_file::change_extension more robust.
Previously would fail with dots in the directory but no extension. Added unit tests to verify the new change works.
Diffstat (limited to 'modules/gallery/helpers/legal_file.php')
-rw-r--r-- | modules/gallery/helpers/legal_file.php | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/modules/gallery/helpers/legal_file.php b/modules/gallery/helpers/legal_file.php index e6f4cb54..e24aca36 100644 --- a/modules/gallery/helpers/legal_file.php +++ b/modules/gallery/helpers/legal_file.php @@ -137,15 +137,12 @@ class legal_file_Core { } /** - * Convert the extension of a filename. If the original filename has no + * Change the extension of a filename. If the original filename has no * extension, add the new one to the end. */ static function change_extension($filename, $new_ext) { - if (strpos($filename, ".") === false) { - return "{$filename}.{$new_ext}"; - } else { - return preg_replace("/\.[^\.]*?$/", ".{$new_ext}", $filename); - } + $filename_no_ext = preg_replace("/\.[^\.\/]*?$/", "", $filename); + return "{$filename_no_ext}.{$new_ext}"; } /** |