--- rpl/src/types.c 2013/06/21 14:15:57 1.61 +++ rpl/src/types.c 2017/06/28 09:20:39 1.83 @@ -1,7 +1,7 @@ /* ================================================================================ - RPL/2 (R) version 4.1.15 - Copyright (C) 1989-2013 Dr. BERTRAND Joël + RPL/2 (R) version 4.1.27 + Copyright (C) 1989-2017 Dr. BERTRAND Joël This file is part of RPL/2. @@ -143,8 +143,8 @@ recherche_type(struct_processus *s_etat_ */ if (((*((struct_fonction *) element)).nom_fonction = - conversion_majuscule((*s_etat_processus) - .instruction_courante)) == NULL) + conversion_majuscule(s_etat_processus, + (*s_etat_processus).instruction_courante)) == NULL) { (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; @@ -191,7 +191,7 @@ recherche_type(struct_processus *s_etat_ } else { - if ((instruction_majuscule = conversion_majuscule( + if ((instruction_majuscule = conversion_majuscule(s_etat_processus, (*s_etat_processus).instruction_courante)) == NULL) { (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; @@ -2666,7 +2666,8 @@ recherche_type(struct_processus *s_etat_ * elle est convertie en majuscules. */ - tampon = conversion_majuscule((*((struct_fonction *) + tampon = conversion_majuscule(s_etat_processus, + (*((struct_fonction *) (*(*l_element_courant).donnee).objet)) .nom_fonction); @@ -2704,6 +2705,7 @@ recherche_type(struct_processus *s_etat_ { if ((fonction_majuscule = conversion_majuscule( + s_etat_processus, (*((struct_fonction *) ((*l_element_courant_fonctions) .donnee))).nom_fonction)) == NULL) @@ -2855,6 +2857,7 @@ recherche_type(struct_processus *s_etat_ free(l_element_courant_fonctions); } + (*s_etat_processus).autorisation_empilement_programme = 'Y'; break; } @@ -2915,6 +2918,7 @@ recherche_type(struct_processus *s_etat_ { // Tableau + (*s_etat_processus).type_en_cours = TBL; sauvegarde_longueur_definitions_chainees = (*s_etat_processus).longueur_definitions_chainees; @@ -2976,14 +2980,21 @@ recherche_type(struct_processus *s_etat_ (*(*s_etat_processus).l_base_pile_systeme) .retour_definition = 'Y'; + (*(*s_etat_processus).l_base_pile_systeme) + .origine_routine_evaluation = 'N'; (*s_etat_processus).niveau_courant = 0; (*s_etat_processus).autorisation_empilement_programme = 'N'; + + tampon = (*s_etat_processus).instruction_courante; + autorisation_evaluation_nom = (*s_etat_processus) + .autorisation_evaluation_nom; + (*s_etat_processus).autorisation_evaluation_nom = 'N'; + registre_mode_execution_programme = (*s_etat_processus).mode_execution_programme; (*s_etat_processus).mode_execution_programme = 'Y'; (*s_etat_processus).erreur_scrutation = d_faux; - tampon = (*s_etat_processus).instruction_courante; nombre_lignes_a_supprimer = (*s_etat_processus).hauteur_pile_operationnelle; @@ -3032,6 +3043,8 @@ recherche_type(struct_processus *s_etat_ } (*s_etat_processus).instruction_courante = tampon; + (*s_etat_processus).autorisation_evaluation_nom = + autorisation_evaluation_nom; effacement_pile_systeme(s_etat_processus); (*s_etat_processus).l_base_pile_systeme = @@ -3085,6 +3098,8 @@ recherche_type(struct_processus *s_etat_ } (*s_etat_processus).instruction_courante = tampon; + (*s_etat_processus).autorisation_evaluation_nom = + autorisation_evaluation_nom; effacement_pile_systeme(s_etat_processus); (*s_etat_processus).l_base_pile_systeme = @@ -3112,6 +3127,8 @@ recherche_type(struct_processus *s_etat_ } (*s_etat_processus).instruction_courante = tampon; + (*s_etat_processus).autorisation_evaluation_nom = + autorisation_evaluation_nom; (*s_etat_processus).l_base_pile_systeme = s_sauvegarde_pile; (*s_etat_processus).niveau_courant = @@ -3183,6 +3200,8 @@ recherche_type(struct_processus *s_etat_ { // Définition + (*s_etat_processus).type_en_cours = RPN; + if (strlen((*s_etat_processus).instruction_courante) < 5) { liberation(s_etat_processus, s_objet);