diff --git a/ecrire/public/compiler.php b/ecrire/public/compiler.php index 559bfcd473c63a5567eac0fc75e1dcbf496b59e6..10c2b5db5f9d2c608ea180bcd3a8e58b810928e6 100644 --- a/ecrire/public/compiler.php +++ b/ecrire/public/compiler.php @@ -143,34 +143,10 @@ function calculer_boucle($id_boucle, &$boucles) { // http://doc.spip.org/@calculer_boucle_rec function calculer_boucle_rec($id_boucle, &$boucles) { - - // Moche. Faut revoir la structure de donnees - $x = $boucles[$id_boucle]; - $l = $x->param; - $nom = array_shift($l); - $x->param = $l; - - $l = argumenter_inclure($x, - array('id_mere' => $id_boucle), - $boucles, $id_boucle, false); - - foreach($l as $k=>$v) { - $l[$k] = preg_replace(',(Pile\[)([^[]]*)(\]\[' . "'$k'),", - '\1($savenum ? $SP-1 : \2)\3', - substr($v,strpos($v,'=>')+2)); - } - $save = $set = $rest = ''; - foreach($l as $k=>$v) { - $save .= "\n\t\$save['$k']=\$Pile[\$SP]['$k'];"; - $set .= "\n\t\$Pile[\$SP]['$k'] = $v;"; - $rest .= "\n\t\$Pile[\$SP]['$k'] = \$save['$k'];"; - } - - return "\n\tstatic \$savenum=array();spip_log(\"recur \$SP \" . \$Pile[\$SP-1]['prefixe'] ); - $save -$set\n\tarray_push(\$savenum, \$Numrows['$nom']);" - . "\n\t\$t0 = " . $boucles[$id_boucle]->return . ";\n\nspip_log(\"----recur \$SP $nom\");" - . "\n\t\$Numrows['$nom'] = array_pop(\$savenum);$rest"; + $nom = $boucles[$id_boucle]->param[0]; + return "\n\t\$save_numrows = (\$Numrows['$nom']);" + . "\n\t\$t0 = " . $boucles[$id_boucle]->return . ";" + . "\n\t\$Numrows['$nom'] = (\$save_numrows);"; } // compil d'une boucle non recursive. @@ -481,7 +457,6 @@ function calculer_parties($boucles, $id_boucle) { // http://doc.spip.org/@calculer_liste function calculer_liste($tableau, $descr, &$boucles, $id_boucle='') { - if (!$tableau) return "''"; if (!isset($descr['niv'])) $descr['niv'] = 0; $codes = compile_cas($tableau, $descr, $boucles, $id_boucle); @@ -563,7 +538,6 @@ function compile_cas($tableau, $descr, &$boucles, $id_boucle) { str_replace("-","_", $nom) . $descr['nom'] . '($Cache, $Pile, $doublons, $Numrows, $SP)'; $commentaire= "?$nom"; - spip_log("%%% $code"); $avant = calculer_liste($p->avant, $newdescr, $boucles, $id_boucle); $apres = calculer_liste($p->apres, @@ -632,7 +606,6 @@ function compile_cas($tableau, $descr, &$boucles, $id_boucle) { } } - if ($code != "''") $codes[]= (($mode == 'validation') ? "array(" . $p->ligne . ", '$commentaire', $code)" @@ -755,7 +728,6 @@ function public_compiler_dist($squelette, $nom, $gram, $sourcefile) { if ($boucle->type_requete == 'boucle') { $boucles[$id]->descr = &$descr; $rec = &$boucles[$boucle->param[0]]; - spip_log("boucle%%%%%%%%% $id " . $rec->type); if (!$rec) { return array(_T('zbug_info_erreur_squelette'), ($boucle->param[0]