Skip to content
Extraits de code Groupes Projets
Valider f0234e64 rédigé par Fil's avatar Fil
Parcourir les fichiers

la modif pour les documents introduisait un bug douteux lorsque le texte...

la modif pour les documents introduisait un bug douteux lorsque le texte initial contenait des \r\n => tout pouvait passer en paragraphes. DU coup nettoayges divers, car j'ai mis du temps à trouver la source du bug :))

http://www.spip.net/spip-cvs/spip/ecrire/inc_texte.php3.diff?r1=1.266;r2=1.267;f=h
parent a7839b82
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -97,7 +97,8 @@ function spip_apres_typo ($letexte) { ...@@ -97,7 +97,8 @@ function spip_apres_typo ($letexte) {
// relecture des   // relecture des  
if (!_DIR_RESTREINT AND $GLOBALS['revision_nbsp']) if (!_DIR_RESTREINT AND $GLOBALS['revision_nbsp'])
$letexte = ereg_replace('&nbsp;', '<span class="spip-nbsp">&nbsp;</span>', $letexte); $letexte = str_replace('&nbsp;',
'<span class="spip-nbsp">&nbsp;</span>', $letexte);
if (function_exists('apres_typo')) if (function_exists('apres_typo'))
$letexte = apres_typo($letexte); $letexte = apres_typo($letexte);
...@@ -151,8 +152,8 @@ function echappe_html($letexte, $source='SOURCEPROPRE', $no_transform=false) { ...@@ -151,8 +152,8 @@ function echappe_html($letexte, $source='SOURCEPROPRE', $no_transform=false) {
else else
$lecode = "<span class='spip_code' dir='ltr'>".$lecode."</span>"; $lecode = "<span class='spip_code' dir='ltr'>".$lecode."</span>";
$lecode = ereg_replace("\t", "&nbsp; &nbsp; &nbsp; &nbsp; ", $lecode); $lecode = str_replace("\t", "&nbsp; &nbsp; &nbsp; &nbsp; ", $lecode);
$lecode = ereg_replace(" ", " &nbsp;", $lecode); $lecode = str_replace(" ", " &nbsp;", $lecode);
$les_echap[$num_echap] = "<tt>".$lecode."</tt>"; $les_echap[$num_echap] = "<tt>".$lecode."</tt>";
} }
else else
...@@ -169,7 +170,6 @@ function echappe_html($letexte, $source='SOURCEPROPRE', $no_transform=false) { ...@@ -169,7 +170,6 @@ function echappe_html($letexte, $source='SOURCEPROPRE', $no_transform=false) {
if ($regs[12]) { if ($regs[12]) {
$lecode = $regs[14]; $lecode = $regs[14];
$lecode = ereg_replace("\n[[:space:]]*\n", "\n&nbsp;\n",$lecode); $lecode = ereg_replace("\n[[:space:]]*\n", "\n&nbsp;\n",$lecode);
$lecode = ereg_replace("\r", "\n", $lecode);
$lecode = "<div class=\"spip_poesie\"><div>".ereg_replace("\n+", "</div>\n<div>", $lecode)."</div></div>"; $lecode = "<div class=\"spip_poesie\"><div>".ereg_replace("\n+", "</div>\n<div>", $lecode)."</div></div>";
$marqueur_echap = "\n\n</no p>$marqueur_echap<no p>\n\n"; $marqueur_echap = "\n\n</no p>$marqueur_echap<no p>\n\n";
$les_echap[$num_echap] = propre($lecode); $les_echap[$num_echap] = propre($lecode);
...@@ -187,9 +187,8 @@ function echappe_html($letexte, $source='SOURCEPROPRE', $no_transform=false) { ...@@ -187,9 +187,8 @@ function echappe_html($letexte, $source='SOURCEPROPRE', $no_transform=false) {
// //
// Reperages d'images et de documents utilisateur // Reperages d'images et de documents utilisateur
// (insertion dans echappe_retour pour faciliter les doublons) // (insertion dans echappe_retour pour faciliter les doublons)
// on explose par paragraphes pour sortir les insertions "lourdes" (xhtml) // on explose par paragraphes pour sortir les insertions "lourdes" (xhtml)
if (eregi(__regexp_img_echappe, $letexte)) { if (eregi(__regexp_img_echappe, $letexte)) {
$letexte = ereg_replace("\r", "\n", $letexte);
$paragraphes = explode("\n\n", $letexte); $paragraphes = explode("\n\n", $letexte);
for ($p = 0; $p < count($paragraphes); $p++) { for ($p = 0; $p < count($paragraphes); $p++) {
...@@ -786,9 +785,6 @@ function traiter_raccourcis_generale($letexte) { ...@@ -786,9 +785,6 @@ function traiter_raccourcis_generale($letexte) {
else else
$puce = $GLOBALS['puce']; $puce = $GLOBALS['puce'];
// Harmoniser les retours chariot
$letexte = preg_replace(",\r\n?,", "\n", $letexte);
// Corriger HTML // Corriger HTML
$letexte = preg_replace(",</?p>,i", "\n\n\n", $letexte); $letexte = preg_replace(",</?p>,i", "\n\n\n", $letexte);
...@@ -935,20 +931,23 @@ function traiter_raccourcis_generale($letexte) { ...@@ -935,20 +931,23 @@ function traiter_raccourcis_generale($letexte) {
if (ereg("\n-[*#]", $letexte)) if (ereg("\n-[*#]", $letexte))
$letexte = traiter_listes($letexte); $letexte = traiter_listes($letexte);
// les BR old style (pour nettoyer et accelerer ci-dessous)
$letexte = preg_replace(',<br[[:space:]]*/?'.'>,i', '<br />', $letexte);
// autres raccourcis // autres raccourcis
$cherche1 = array( $cherche1 = array(
/* 0 */ "/\n(----+|____+)/", /* 0 */ "/\n(----+|____+)/",
/* 1 */ "/\n-- */", /* 1 */ "/\n-- */",
/* 2 */ "/\n- */", /* 2 */ "/\n- */",
/* 3 */ "/\n_ +/", /* 3 */ "/\n_ +/",
/* 5 */ "/\{\{\{/", /* 4 */ "/\{\{\{/",
/* 6 */ "/\}\}\}/", /* 5 */ "/\}\}\}/",
/* 4 */ "/(( *)\n){2,}(<br[[:space:]]*\/?".">)?/", /* 6 */ "@(( *)\n){2,}(<br />)*@",
/* 7 */ "/\{\{/", /* 7 */ "/\{\{/",
/* 8 */ "/\}\}/", /* 8 */ "/\}\}/",
/* 9 */ "/\{/", /* 9 */ "/\{/",
/* 10 */ "/\}/", /* 10 */ "/\}/",
/* 11 */ "/(<br[[:space:]]*\/?".">){2,}/", /* 11 */ "@(<br />){2,}@",
/* 12 */ "/<p>([\n]*)(<br[[:space:]]*\/?".">)+/", /* 12 */ "/<p>([\n]*)(<br[[:space:]]*\/?".">)+/",
/* 13 */ "/<p>/", /* 13 */ "/<p>/",
/* 14 "/\n/", */ /* 14 "/\n/", */
...@@ -960,9 +959,9 @@ function traiter_raccourcis_generale($letexte) { ...@@ -960,9 +959,9 @@ function traiter_raccourcis_generale($letexte) {
/* 1 */ "\n<br />&mdash;&nbsp;", /* 1 */ "\n<br />&mdash;&nbsp;",
/* 2 */ "\n<br />$puce&nbsp;", /* 2 */ "\n<br />$puce&nbsp;",
/* 3 */ "\n<br />", /* 3 */ "\n<br />",
/* 5 */ "\n\n@@SPIP_debut_intertitre@@", /* 4 */ "\n\n@@SPIP_debut_intertitre@@",
/* 6 */ "@@SPIP_fin_intertitre@@\n\n", /* 5 */ "@@SPIP_fin_intertitre@@\n\n",
/* 4 */ "<p>", /* 6 */ "<p>",
/* 7 */ "<strong class=\"spip\">", /* 7 */ "<strong class=\"spip\">",
/* 8 */ "</strong>", /* 8 */ "</strong>",
/* 9 */ "<i class=\"spip\">", /* 9 */ "<i class=\"spip\">",
...@@ -977,6 +976,7 @@ function traiter_raccourcis_generale($letexte) { ...@@ -977,6 +976,7 @@ function traiter_raccourcis_generale($letexte) {
$letexte = preg_replace($cherche1, $remplace1, $letexte); $letexte = preg_replace($cherche1, $remplace1, $letexte);
$letexte = preg_replace("@^ <br />@", "", $letexte); $letexte = preg_replace("@^ <br />@", "", $letexte);
// paragrapher // paragrapher
if (strpos(' '.$letexte, '<p class="spip">')) # ce test est destine a disparaitre, avec un impact sur les textes a un seul paragraphe if (strpos(' '.$letexte, '<p class="spip">')) # ce test est destine a disparaitre, avec un impact sur les textes a un seul paragraphe
{ {
...@@ -1035,6 +1035,10 @@ function traiter_raccourcis_doublon(&$doublons, $letexte) { ...@@ -1035,6 +1035,10 @@ function traiter_raccourcis_doublon(&$doublons, $letexte) {
// Filtre a appliquer aux champs du type #TEXTE* // Filtre a appliquer aux champs du type #TEXTE*
function propre($letexte, $echap=false) { function propre($letexte, $echap=false) {
// Harmoniser les retours chariot CR-LF -> \n
$letexte = str_replace("\r\n", "\n", $letexte);
$letexte = str_replace("\r", "\n", $letexte);
return interdire_scripts(traiter_raccourcis(trim($letexte), $echap)); return interdire_scripts(traiter_raccourcis(trim($letexte), $echap));
// $a=time(); $b=microtime(); // $a=time(); $b=microtime();
// interdire_scripts(traiter_raccourcis(trim($letexte))); // interdire_scripts(traiter_raccourcis(trim($letexte)));
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter