diff --git a/transliteration.module b/transliteration.module index bb1b7ac55cca24f53964ea2d7c619db1ac993932..2251a36d87215c30585adf2c118a9c4959d442c0 100644 --- a/transliteration.module +++ b/transliteration.module @@ -108,6 +108,8 @@ function transliteration_clean_filename($filename, $source_langcode = NULL) { $filename = str_replace(' ', '_', $filename); // Remove remaining unsafe characters. $filename = preg_replace('![^0-9A-Za-z_.-]!', '', $filename); + // Remove multiple consecutive non-alphabetical characters. + $filename = preg_replace('/(_)_+|(\.)\.+|(-)-+/', '\\1\\2\\3', $filename); // Force lowercase to prevent issues on case-insensitive file systems. if (variable_get('transliteration_file_lowercase', TRUE)) { $filename = strtolower($filename);