--- rpl/src/rpl.c 2011/04/11 12:10:12 1.59 +++ rpl/src/rpl.c 2011/06/10 11:35:14 1.64 @@ -107,10 +107,6 @@ rplinit(int argc, char *argv[], unsigned errno = 0; -# ifdef DMALLOC - atexit(dmalloc_shutdown()); -# endif - # ifdef DEBUG_MEMOIRE debug_memoire_initialisation(); # endif @@ -1837,7 +1833,16 @@ rplinit(int argc, char *argv[], unsigned (*s_etat_processus).affichage_arguments = 'N'; (*s_etat_processus).autorisation_conversion_chaine = 'Y'; (*s_etat_processus).autorisation_evaluation_nom = 'Y'; - (*s_etat_processus).autorisation_nom_implicite = 'Y'; + + if (mode_interactif == d_vrai) + { + (*s_etat_processus).autorisation_nom_implicite = 'Y'; + } + else + { + (*s_etat_processus).autorisation_nom_implicite = 'N'; + } + (*s_etat_processus).autorisation_empilement_programme = 'N'; (*s_etat_processus).requete_arret = 'N'; (*s_etat_processus).evaluation_forcee = 'N'; @@ -1853,10 +1858,9 @@ rplinit(int argc, char *argv[], unsigned (*s_etat_processus).l_base_pile = NULL; (*s_etat_processus).l_base_pile_last = NULL; - (*s_etat_processus).s_liste_variables = NULL; + (*s_etat_processus).s_arbre_variables = NULL; (*s_etat_processus).gel_liste_variables = d_faux; - (*s_etat_processus).nombre_variables = 0; - (*s_etat_processus).nombre_variables_allouees = 0; + (*s_etat_processus).pointeur_variable_courante = NULL; (*s_etat_processus).s_liste_variables_statiques = NULL; (*s_etat_processus).nombre_variables_statiques = 0; (*s_etat_processus).nombre_variables_statiques_allouees = 0; @@ -1864,7 +1868,6 @@ rplinit(int argc, char *argv[], unsigned (*s_etat_processus).niveau_initial = 0; (*s_etat_processus).creation_variables_statiques = d_faux; (*s_etat_processus).creation_variables_partagees = d_faux; - (*s_etat_processus).position_variable_courante = 0; (*s_etat_processus).position_variable_statique_courante = 0; (*s_etat_processus).s_bibliotheques = NULL; @@ -2395,7 +2398,7 @@ rplinit(int argc, char *argv[], unsigned (*s_etat_processus).position_courante = 0; (*s_etat_processus).traitement_cycle_exit = 'N'; - if ((*s_etat_processus).nombre_variables == 0) + if ((*s_etat_processus).s_arbre_variables == NULL) { if ((*s_etat_processus).langue == 'F') { @@ -2455,9 +2458,8 @@ rplinit(int argc, char *argv[], unsigned return(EXIT_FAILURE); } - if ((*s_etat_processus).s_liste_variables - [(*s_etat_processus) - .position_variable_courante].niveau != 0) + if ((*(*s_etat_processus).pointeur_variable_courante) + .niveau != 0) { if ((*s_etat_processus).langue == 'F') { @@ -2544,6 +2546,7 @@ rplinit(int argc, char *argv[], unsigned fflush(stdout); initialisation_instructions(s_etat_processus); + initialisation_variables(s_etat_processus); if (arguments != NULL) { @@ -3213,6 +3216,7 @@ rplinit(int argc, char *argv[], unsigned * le libérer... */ +#if 0 for(i = 0; i < (*s_etat_processus).nombre_variables; i++) { liberation(s_etat_processus, @@ -3221,6 +3225,7 @@ rplinit(int argc, char *argv[], unsigned } free((*s_etat_processus).s_liste_variables); +#endif for(i = 0; i < (*s_etat_processus) .nombre_variables_statiques; i++)