* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
-if (!defined("_ECRIRE_INC_VERSION")) return;
+if (!defined("_ECRIRE_INC_VERSION")) {
+ return;
+}
// Correction typographique francaise
if (!isset($trans)) {
$trans = array(
- " " => '~',
- "»" => '»',
- "«" => '«',
- "”" => '”',
- "“" => '“',
- "°" => '°',
- "'" => '’'
+ " " => '~',
+ "»" => '»',
+ "«" => '«',
+ "”" => '”',
+ "“" => '“',
+ "°" => '°',
+ "'" => '’'
);
- switch ($GLOBALS['meta']['charset']) {
+ $charset = isset($GLOBALS['meta']['charset']) ? $GLOBALS['meta']['charset'] : '';
+ switch ($charset) {
case 'utf-8':
$trans["\xc2\xa0"] = '~';
$trans["\xc2\xbb"] = '»';
$t = preg_replace(',(&#?[0-9a-z]+)~;,iS', '$1;', $t);
}
- /* 2 ; ajout d'insecable */
- $t = preg_replace('/»| --?,|(?::| %)(?:\W|$)/S', '~$0', $t);
-
- // {ยป} guillemet en italiques : ne pas doubler l'insecable
- $t = str_replace('~{~', '~{', $t);
- $t = str_replace('~}~', '}~', $t);
-
+ /* 2 */
+ $t = preg_replace('/»| --?,|(?::(?!:)| %)(?:\W|$)/S', '~$0', $t);
/* 3 */
$t = preg_replace('/[!?][!?\.]*/S', "$pro~$0", $t, -1, $c);
/* 4 */
$t = preg_replace('/«|M(?:M?\.|mes?|r\.?|°) |[nN]° /S', '$0~', $t);
- if (strpos($t, '~') !== false)
+ if (strpos($t, '\~') !== false) {
+ $t = str_replace('\~', "\x1\x14", $t);
+ }
+
+ if (strpos($t, '~') !== false) {
$t = preg_replace("/ *~+ */S", "~", $t);
+ }
$t = preg_replace("/--([^-]|$)/S", "$pro—$1", $t, -1, $c);
if ($c) {
$t = str_replace($pro, '', $t);
}
- $t = preg_replace(',(' ._PROTOCOLES_STD . ')~((://[^"\'\s\[\]\}\)<>]+)~([?]))?,S', '$1$3$4', $t);
+ $t = preg_replace(',(' . _PROTOCOLES_STD . ')~((://[^"\'\s\[\]\}\)<>]+)~([?]))?,S', '$1$3$4', $t);
$t = str_replace('~', ' ', $t);
+ if (strpos($t, "\x1") !== false) {
+ $t = str_replace("\x1\x14", '~', $t);
+ }
+
return $t;
}