[spip-dev] Spip 1.9.2d : commentaires mal traités dans syndic.php

Bonjour,

En regardant ecrire/inc/syndic.php dans SPIP 1.9.2d à la ligne 138, on
trouve :

    // supprimer les commentaires
    $rss = preg_replace(',<!--\s+.*\s-->,Ums', '', $rss);

Ce qui veut dire notamment que SPIP ne reconnaît pas "<!--texte-->"
comme un commentaire, car l'expression utilisée impose la présence
d'espaces au début et à la fin du commentaire. Il s'agit pourtant d'un
commentaire parfaitement valide. Je propose remplacer l'expression par :

    // supprimer les commentaires
    $rss = preg_replace(',<!--[^(--)]*-->,Ums', '', $rss);

qui reprend la norme XML : tout est autorisé, sauf deux-tirets
consécutifs, dans un commentaire.

Je suis probablement le seul à avoir ce genre de problème, car la
plupart des fils RSS sont générés par des blogs qui n'incluent pas de
commentaires. Sauf certains comme http://www.mammouthland.net/rss_open.xml
Sur ce flux, plusieurs <item> sont gobés comme étant des commentaires,
car SPIP n'a pas reconnu la fin du commentaire "<!-- item interview
daniel-->".

Je n'ai pas testé avec le SVN, mais à priori, je pense que ce bug y est
déjà corrigé de fait, car j'ai l'impression que tout fonctionne
désormais à coups de "extraire_balises", qui, lui, se comporte bien.

  $rss = preg_replace(',<!--[^(--)]*-->,Ums', '', $rss);

cette expression n'est pas correcte, il va falloir réviser ses regexp :slight_smile:

qui reprend la norme XML : tout est autorisé, sauf deux-tirets
consécutifs, dans un commentaire.

a priori l'expression suivante conviendrait:
$rss = preg_replace(',<!--.*-->,Ums', '', $rss);

commentaires. Sauf certains comme CSS Débutant - Mammouthland
Sur ce flux, plusieurs <item> sont gobés comme étant des commentaires,
car SPIP n'a pas reconnu la fin du commentaire "<!-- item interview
daniel-->".

peux-tu ajouter ces cas-tests dans les tests unitaires de spip-zone ?

-- Fil

Bonjour,

Trop habitué aux listes qui positionnent le Reply-to, j'ai raté ma réponse, je recommence. :slight_smile:

Fil a écrit :

  $rss = preg_replace(',<!--[^(--)]*-->,Ums', '', $rss);
    

cette expression n'est pas correcte, il va falloir réviser ses regexp :slight_smile:
  

Un peu de fatigue moi... Bon, elle marchait quand même souvent, mais certes pas tout le temps.

a priori l'expression suivante conviendrait:
$rss = preg_replace(',<!--.*-->,Ums', '', $rss);
  

Oui, puisque l'histoire des deux tirets interdits au milieu d'un commentaire, c'est un peu de l'intégrisme de la norme (la limitation en XML n'existe que pour des raisons historiques).

peux-tu ajouter ces cas-tests dans les tests unitaires de spip-zone ?
  

Vous n'auriez pas une page "comment contribuer ?" qui expliquerait comment vous faire un paquet cadeau bien propre ? M'envoyer l'adresse Connexion · GitLab est certes plus élégant qu'un RTFM, mais guère plus utile de ce point de vue, sauf si je veux lire les sources et les logs des commits depuis 2005 pour combattre mes insomnies...

Cordialement,

Vous n'auriez pas une page "comment contribuer ?" qui expliquerait comment vous faire un paquet cadeau bien propre ? M'envoyer l'adresse Connexion · GitLab est certes plus élégant qu'un RTFM, mais guère plus utile de ce point de vue, sauf si je veux lire les sources et les logs des commits depuis 2005 pour combattre mes insomnies...

Ben si pourtant ...

Tu te logues (crées un compte si tu n'en a pas) ... tu vérifies qu'il n'y a pas de ticket sur ton soucis... tu crées un ticket le cas échéant... tu prends ton code... tu fais un diff... tu lie au ticket

hop

pas compliqué non?

Cordialement,
--
Florian,

kent1

Vous n'auriez pas une page "comment contribuer ?" qui expliquerait comment
vous faire un paquet cadeau bien propre ? M'envoyer l'adresse
Connexion · GitLab est certes plus élégant qu'un RTFM,

Pourtant sur cette page je vois un item intitulé "Comment participer".

Mais en effet cette page mériterait un peu d'amour

-- Fil