--- rpl/src/instructions_r3.c 2011/01/03 12:08:07 1.22 +++ rpl/src/instructions_r3.c 2012/01/05 10:19:03 1.39 @@ -1,7 +1,7 @@ /* ================================================================================ - RPL/2 (R) version 4.0.20 - Copyright (C) 1989-2011 Dr. BERTRAND Joël + RPL/2 (R) version 4.1.5 + Copyright (C) 1989-2012 Dr. BERTRAND Joël This file is part of RPL/2. @@ -741,10 +741,6 @@ instruction_rnrm(struct_processus *s_eta void instruction_rceq(struct_processus *s_etat_processus) { - logical1 presence_variable; - - long i; - struct_objet *s_objet_variable; (*s_etat_processus).erreur_execution = d_ex; @@ -787,48 +783,20 @@ instruction_rceq(struct_processus *s_eta } } - if (recherche_variable(s_etat_processus, "EQ") == d_vrai) + if (recherche_variable_globale(s_etat_processus, "EQ") == d_faux) { - i = (*s_etat_processus).position_variable_courante; - presence_variable = d_faux; - - while(i >= 0) - { - if ((strcmp((*s_etat_processus).s_liste_variables[i].nom, "EQ") - == 0) && ((*s_etat_processus).s_liste_variables[i] - .niveau == 1)) - { - presence_variable = d_vrai; - break; - } - - i--; - } - - (*s_etat_processus).position_variable_courante = i; + (*s_etat_processus).erreur_systeme = d_es; - if (presence_variable == d_faux) + if ((*s_etat_processus).erreur_execution == d_ex) { (*s_etat_processus).erreur_execution = d_ex_variable_non_definie; - return; } - if ((*s_etat_processus).s_liste_variables[i].objet == NULL) - { - (*s_etat_processus).erreur_execution = d_ex_variable_partagee; - return; - } - } - else - { - (*s_etat_processus).erreur_systeme = d_es; - (*s_etat_processus).erreur_execution = d_ex_variable_non_definie; return; } if ((s_objet_variable = copie_objet(s_etat_processus, - ((*s_etat_processus).s_liste_variables) - [(*s_etat_processus).position_variable_courante].objet, 'P')) + (*(*s_etat_processus).pointeur_variable_courante).objet, 'P')) == NULL) { (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; @@ -1095,15 +1063,8 @@ instruction_recall(struct_processus *s_e return; } - if (controle(s_etat_processus, executable_candidat, "md5", - rpliconv_md5) != d_vrai) - { - (*s_etat_processus).erreur_systeme = d_es_somme_controle; - return; - } - - if (controle(s_etat_processus, executable_candidat, "sha1", - rpliconv_sha1) != d_vrai) + if (controle_integrite(s_etat_processus, executable_candidat, + "rpliconv") != d_vrai) { (*s_etat_processus).erreur_systeme = d_es_somme_controle; return; @@ -1118,15 +1079,8 @@ instruction_recall(struct_processus *s_e return; } - if (controle(s_etat_processus, executable_candidat, "md5", - rplfile_md5) != d_vrai) - { - (*s_etat_processus).erreur_systeme = d_es_somme_controle; - return; - } - - if (controle(s_etat_processus, executable_candidat, "sha1", - rplfile_sha1) != d_vrai) + if (controle_integrite(s_etat_processus, executable_candidat, + "rplfile") != d_vrai) { (*s_etat_processus).erreur_systeme = d_es_somme_controle; return; @@ -1141,15 +1095,8 @@ instruction_recall(struct_processus *s_e return; } - if (controle(s_etat_processus, executable_candidat, "md5", - rplpp_md5) != d_vrai) - { - (*s_etat_processus).erreur_systeme = d_es_somme_controle; - return; - } - - if (controle(s_etat_processus, executable_candidat, "sha1", - rplpp_sha1) != d_vrai) + if (controle_integrite(s_etat_processus, executable_candidat, + "rplpp") != d_vrai) { (*s_etat_processus).erreur_systeme = d_es_somme_controle; return; @@ -1164,15 +1111,8 @@ instruction_recall(struct_processus *s_e return; } - if (controle(s_etat_processus, executable_candidat, "md5", - rplawk_md5) != d_vrai) - { - (*s_etat_processus).erreur_systeme = d_es_somme_controle; - return; - } - - if (controle(s_etat_processus, executable_candidat, "sha1", - rplawk_sha1) != d_vrai) + if (controle_integrite(s_etat_processus, executable_candidat, + "rplawk") != d_vrai) { (*s_etat_processus).erreur_systeme = d_es_somme_controle; return; @@ -1207,15 +1147,8 @@ instruction_recall(struct_processus *s_e return; } - if (controle(s_etat_processus, executable_candidat, "md5", - rpliconv_md5) != d_vrai) - { - (*s_etat_processus).erreur_systeme = d_es_somme_controle; - return; - } - - if (controle(s_etat_processus, executable_candidat, "sha1", - rpliconv_sha1) != d_vrai) + if (controle_integrite(s_etat_processus, executable_candidat, + "rpliconv") != d_vrai) { (*s_etat_processus).erreur_systeme = d_es_somme_controle; return; @@ -1230,15 +1163,8 @@ instruction_recall(struct_processus *s_e return; } - if (controle(s_etat_processus, executable_candidat, "md5", - rplfile_md5) != d_vrai) - { - (*s_etat_processus).erreur_systeme = d_es_somme_controle; - return; - } - - if (controle(s_etat_processus, executable_candidat, "sha1", - rplfile_sha1) != d_vrai) + if (controle_integrite(s_etat_processus, executable_candidat, + "rplfile") != d_vrai) { (*s_etat_processus).erreur_systeme = d_es_somme_controle; return; @@ -1253,15 +1179,8 @@ instruction_recall(struct_processus *s_e return; } - if (controle(s_etat_processus, executable_candidat, "md5", - rplpp_md5) != d_vrai) - { - (*s_etat_processus).erreur_systeme = d_es_somme_controle; - return; - } - - if (controle(s_etat_processus, executable_candidat, "sha1", - rplpp_sha1) != d_vrai) + if (controle_integrite(s_etat_processus, executable_candidat, + "rplpp") != d_vrai) { (*s_etat_processus).erreur_systeme = d_es_somme_controle; return; @@ -1276,15 +1195,8 @@ instruction_recall(struct_processus *s_e return; } - if (controle(s_etat_processus, executable_candidat, "md5", - rplawk_md5) != d_vrai) - { - (*s_etat_processus).erreur_systeme = d_es_somme_controle; - return; - } - - if (controle(s_etat_processus, executable_candidat, "sha1", - rplawk_sha1) != d_vrai) + if (controle_integrite(s_etat_processus, executable_candidat, + "rplawk") != d_vrai) { (*s_etat_processus).erreur_systeme = d_es_somme_controle; return; @@ -1698,10 +1610,6 @@ instruction_rcws(struct_processus *s_eta void instruction_rcls(struct_processus *s_etat_processus) { - logical1 presence_variable; - - long i; - struct_objet *s_objet_variable; (*s_etat_processus).erreur_execution = d_ex; @@ -1742,48 +1650,20 @@ instruction_rcls(struct_processus *s_eta } } - if (recherche_variable(s_etat_processus, ds_sdat) == d_vrai) + if (recherche_variable_globale(s_etat_processus, ds_sdat) == d_faux) { - i = (*s_etat_processus).position_variable_courante; - presence_variable = d_faux; - - while(i >= 0) - { - if ((strcmp((*s_etat_processus).s_liste_variables[i].nom, ds_sdat) - == 0) && ((*s_etat_processus).s_liste_variables[i] - .niveau == 1)) - { - presence_variable = d_vrai; - break; - } - - i--; - } - - (*s_etat_processus).position_variable_courante = i; + (*s_etat_processus).erreur_systeme = d_es; - if (presence_variable == d_faux) + if ((*s_etat_processus).erreur_execution == d_ex) { (*s_etat_processus).erreur_execution = d_ex_variable_non_definie; - return; } - if ((*s_etat_processus).s_liste_variables[i].objet == NULL) - { - (*s_etat_processus).erreur_execution = d_ex_variable_partagee; - return; - } - } - else - { - (*s_etat_processus).erreur_systeme = d_es; - (*s_etat_processus).erreur_execution = d_ex_variable_non_definie; return; } if ((s_objet_variable = copie_objet(s_etat_processus, - ((*s_etat_processus).s_liste_variables) - [(*s_etat_processus).position_variable_courante].objet, 'O')) + (*(*s_etat_processus).pointeur_variable_courante).objet, 'O')) == NULL) { (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;