summaryrefslogtreecommitdiff
path: root/modules/gallery/helpers/legal_file.php
diff options
context:
space:
mode:
authorshadlaws <shad@shadlaws.com>2013-01-18 20:06:05 +0100
committershadlaws <shad@shadlaws.com>2013-01-18 20:06:05 +0100
commit3a9009492e6d05fe657e3aacf34cf40ca3495db5 (patch)
treee244c6dd635eda6c7a0a73f1ec4d7bf556a9000d /modules/gallery/helpers/legal_file.php
parent61724f78da98d192cc86db6b3a12cdac506a916e (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.php9
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}";
}
/**