ma1 pushed to branch firefox-android-115.2.1-13.5-1 at The Tor Project / Applications / firefox-android

Commits:

1 changed file:

Changes:

  • android-components/components/support/ktx/src/main/java/mozilla/components/support/ktx/kotlin/String.kt
    ... ... @@ -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
     /**