ma1 pushed to branch firefox-android-115.2.1-13.5-1 at The Tor Project / Applications / firefox-android
Commits:
-
257aa5e5
by hackademix at 2024-09-30T21:41:21+02:00
1 changed file:
Changes:
... | ... | @@ -49,6 +49,8 @@ const val MAX_URI_LENGTH = 25000 |
49 | 49 | |
50 | 50 | private const val FILE_PREFIX = "file://"
|
51 | 51 | private const val MAX_VALID_PORT = 65_535
|
52 | +private const val SPACE = " "
|
|
53 | +private const val UNDERSCORE = "_"
|
|
52 | 54 | |
53 | 55 | /**
|
54 | 56 | * Shortens URLs to be more user friendly.
|
... | ... | @@ -303,7 +305,27 @@ fun String.sanitizeFileName(): String { |
303 | 305 | file.name.replace("\\.\\.+".toRegex(), ".")
|
304 | 306 | } else {
|
305 | 307 | file.name.replace(".", "")
|
306 | - }
|
|
308 | + }.replaceContinuousSpaces()
|
|
309 | + .replaceEscapedCharacters()
|
|
310 | + .trim()
|
|
311 | +}
|
|
312 | + |
|
313 | + |
|
314 | +/**
|
|
315 | + * Replaces control characters from ASCII 0 to ASCII 19 with '_' so the file name is valid
|
|
316 | + * and is correctly displayed.
|
|
317 | + */
|
|
318 | +private fun String.replaceEscapedCharacters(): String {
|
|
319 | + val escapedCharactersRegex = "[\\x00-\\x13*\"?<>:|\\\\]".toRegex()
|
|
320 | + return replace(escapedCharactersRegex, UNDERSCORE)
|
|
321 | +}
|
|
322 | + |
|
323 | +/**
|
|
324 | + * Replaces continuous spaces with a single space.
|
|
325 | + */
|
|
326 | +private fun String.replaceContinuousSpaces(): String {
|
|
327 | + val escapedCharactersRegex = "[\\p{Z}\\s]+".toRegex()
|
|
328 | + return replace(escapedCharactersRegex, SPACE)
|
|
307 | 329 | }
|
308 | 330 | |
309 | 331 | /**
|