Changeset 68671 in spip-zone


Ignore:
Timestamp:
Jan 3, 2013, 3:21:47 PM (7 years ago)
Author:
cedric@…
Message:

#2531 : segmentation fault dans le traitement des listes
on essaye de simplifier la regexp
Par ailleurs petit bug possible : on passe toujours dans le close() il faut donc toujours passer dans le init() sinon on ne sait pas ce qui sera ferme. Corrolaire, on enleve le if_match

J'ai tente sans effet :

  • la suppression des static et remplacement en globales
  • le dispatching des 3 etats du switch dans les 3 fonctions
Location:
_core_/branches/spip-3.0/plugins/textwheel/wheels/spip
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _core_/branches/spip-3.0/plugins/textwheel/wheels/spip/spip-listes.php

    r59004 r68671  
    4545                case 'item':
    4646                default:
    47                         if ($l=strlen($t[2])) {$profond=$l;$nouv_type='ul';}
    48                         elseif ($l=strlen($t[3])) {$profond=$l;$nouv_type='ol';}
     47                        $profond = 0;
     48                        if ($l=strlen($t[2])) {
     49                                $profond=$l;$nouv_type='ul';
     50                                if (strncmp($t[2],'#',1)==0) $nouv_type='ol';
     51                        }
    4952
    5053                        if ($profond > 0) {
     
    9194                        }
    9295
    93                         $t = $ajout . $t[4];
     96                        $t = $ajout . $t[3];
    9497                        break;
    9598        }
  • _core_/branches/spip-3.0/plugins/textwheel/wheels/spip/spip-listes.yaml

    r59552 r68671  
    2525              replace: "\n$0"
    2626            liste-p-init:
    27               if_match: "/\n-[*#]/S"
    2827              type: all
    2928              replace: tw_liste_init
     
    3130            liste-p-item:
    3231              # premiere parenthese ne compte pas dans la profondeur
    33               # capture deuxieme parenthese : ul
    34               # capture troisime parenthese : ol
    35               # nombre de car dans la 2eme ou 3eme parenthese = profondeur
    36               match: ",(\n-)(?:([*]*)|([#]*))([^*#].*)(?=(\z|\n-)),UsS"
     32              # capture * deuxieme parenthese : ul
     33              # capture # deuxieme parenthese : ol
     34              # nombre de car dans la 2eme parenthese = profondeur
     35              match: ",(\n-)(\*+|\#+)([^*#].*)(?=(?:\z|\n-)),UsS"
    3736              replace: tw_liste_item
    3837              is_callback: Y
Note: See TracChangeset for help on using the changeset viewer.