Merge pull request #17264 from owncloud/use-mb-functions
Use UTF-8 mode for preg_split and preg_replace
This commit is contained in:
commit
02331652d1
|
@ -1228,17 +1228,18 @@ class OC_App {
|
||||||
// manages line breaks itself
|
// manages line breaks itself
|
||||||
|
|
||||||
// first of all we split on empty lines
|
// first of all we split on empty lines
|
||||||
$paragraphs = preg_split("!\n[[:space:]]*\n!m", $data['description']);
|
$paragraphs = preg_split("!\n[[:space:]]*\n!mu", $data['description']);
|
||||||
|
|
||||||
$result = [];
|
$result = [];
|
||||||
foreach ($paragraphs as $value) {
|
foreach ($paragraphs as $value) {
|
||||||
// replace multiple whitespace (tabs, space, newlines) inside a paragraph
|
// replace multiple whitespace (tabs, space, newlines) inside a paragraph
|
||||||
// with a single space - also trims whitespace
|
// with a single space - also trims whitespace
|
||||||
$result[] = trim(preg_replace('![[:space:]]+!m', ' ', $value));
|
$result[] = trim(preg_replace('![[:space:]]+!mu', ' ', $value));
|
||||||
}
|
}
|
||||||
|
|
||||||
// join the single paragraphs with a empty line in between
|
// join the single paragraphs with a empty line in between
|
||||||
$data['description'] = implode("\n\n", $result);
|
$data['description'] = implode("\n\n", $result);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $data;
|
return $data;
|
||||||
|
|
|
@ -502,6 +502,10 @@ class Test_App extends \Test\TestCase {
|
||||||
['description' => " \t This is a multiline \n test with \n \t some new lines "],
|
['description' => " \t This is a multiline \n test with \n \t some new lines "],
|
||||||
['description' => "This is a multiline test with some new lines"]
|
['description' => "This is a multiline test with some new lines"]
|
||||||
],
|
],
|
||||||
|
[
|
||||||
|
['description' => hex2bin('5065726d657420646520732761757468656e7469666965722064616e732070697769676f20646972656374656d656e74206176656320736573206964656e74696669616e7473206f776e636c6f75642073616e73206c65732072657461706572206574206d657420c3a0206a6f757273206365757820636920656e20636173206465206368616e67656d656e74206465206d6f742064652070617373652e0d0a0d')],
|
||||||
|
['description' => "Permet de s'authentifier dans piwigo directement avec ses identifiants owncloud sans les retaper et met à jours ceux ci en cas de changement de mot de passe."]
|
||||||
|
],
|
||||||
[
|
[
|
||||||
['not-a-description' => " \t This is a multiline \n test with \n \t some new lines "],
|
['not-a-description' => " \t This is a multiline \n test with \n \t some new lines "],
|
||||||
['not-a-description' => " \t This is a multiline \n test with \n \t some new lines "]
|
['not-a-description' => " \t This is a multiline \n test with \n \t some new lines "]
|
||||||
|
@ -513,9 +517,11 @@ class Test_App extends \Test\TestCase {
|
||||||
* Test app info parser
|
* Test app info parser
|
||||||
*
|
*
|
||||||
* @dataProvider appDataProvider
|
* @dataProvider appDataProvider
|
||||||
|
* @param array $data
|
||||||
|
* @param array $expected
|
||||||
*/
|
*/
|
||||||
public function testParseAppInfo($data, $expected) {
|
public function testParseAppInfo(array $data, array $expected) {
|
||||||
$this->assertEquals($expected, \OC_App::parseAppInfo($data));
|
$this->assertSame($expected, \OC_App::parseAppInfo($data));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue