--- rpl/src/types.c 2010/11/09 10:47:43 1.23 +++ rpl/src/types.c 2010/11/26 11:46:38 1.24 @@ -75,6 +75,7 @@ recherche_type(struct_processus *s_etat_ unsigned char registre_instruction_valide; unsigned char registre_interruption; unsigned char registre_mode_execution_programme; + unsigned char registre_recherche_type; unsigned char registre_test; unsigned char registre_test_bis; unsigned char *tampon; @@ -370,8 +371,13 @@ recherche_type(struct_processus *s_etat_ } } + registre_recherche_type = (*s_etat_processus).recherche_type; + (*s_etat_processus).recherche_type = 'Y'; + if (sequenceur(s_etat_processus) == d_erreur) { + (*s_etat_processus).erreur_execution = d_ex_syntaxe; + (*s_etat_processus).recherche_type = registre_recherche_type; (*s_etat_processus).instruction_courante = tampon; (*s_etat_processus).mode_execution_programme = registre_mode_execution_programme; @@ -397,6 +403,7 @@ recherche_type(struct_processus *s_etat_ return; } + (*s_etat_processus).recherche_type = registre_recherche_type; (*s_etat_processus).instruction_courante = tampon; (*s_etat_processus).mode_execution_programme = registre_mode_execution_programme; @@ -1162,8 +1169,15 @@ recherche_type(struct_processus *s_etat_ } } + registre_recherche_type = + (*s_etat_processus).recherche_type; + (*s_etat_processus).recherche_type = 'Y'; + if (sequenceur(s_etat_processus) == d_erreur) { + (*s_etat_processus).erreur_execution = d_ex_syntaxe; + (*s_etat_processus).recherche_type = + registre_recherche_type; (*s_etat_processus).mode_execution_programme = registre_mode_execution_programme; nombre_lignes_a_supprimer = @@ -1210,6 +1224,8 @@ recherche_type(struct_processus *s_etat_ return; } + (*s_etat_processus).recherche_type = + registre_recherche_type; (*s_etat_processus).mode_execution_programme = registre_mode_execution_programme; @@ -1570,9 +1586,16 @@ recherche_type(struct_processus *s_etat_ return; } } + + registre_recherche_type = (*s_etat_processus) + .recherche_type; + (*s_etat_processus).recherche_type = 'Y'; if (sequenceur(s_etat_processus) == d_erreur) { + (*s_etat_processus).erreur_execution = d_ex_syntaxe; + (*s_etat_processus).recherche_type = + registre_recherche_type; (*s_etat_processus).mode_execution_programme = registre_mode_execution_programme; nombre_lignes_a_supprimer = @@ -1620,6 +1643,8 @@ recherche_type(struct_processus *s_etat_ return; } + (*s_etat_processus).recherche_type = + registre_recherche_type; (*s_etat_processus).mode_execution_programme = registre_mode_execution_programme; @@ -2293,8 +2318,13 @@ recherche_type(struct_processus *s_etat_ } } + registre_recherche_type = (*s_etat_processus).recherche_type; + (*s_etat_processus).recherche_type = 'Y'; + if (sequenceur(s_etat_processus) == d_erreur) { + (*s_etat_processus).erreur_execution = d_ex_syntaxe; + (*s_etat_processus).recherche_type = registre_recherche_type; (*s_etat_processus).mode_execution_programme = registre_mode_execution_programme; (*s_etat_processus).erreur_execution = d_ex_syntaxe; @@ -2343,6 +2373,7 @@ recherche_type(struct_processus *s_etat_ return; } + (*s_etat_processus).recherche_type = registre_recherche_type; (*s_etat_processus).mode_execution_programme = registre_mode_execution_programme; @@ -2923,8 +2954,14 @@ recherche_type(struct_processus *s_etat_ } } + registre_recherche_type = (*s_etat_processus).recherche_type; + (*s_etat_processus).recherche_type = 'Y'; + if (sequenceur(s_etat_processus) == d_erreur) { + (*s_etat_processus).erreur_execution = d_ex_syntaxe; + (*s_etat_processus).recherche_type = + registre_recherche_type; (*s_etat_processus).mode_execution_programme = registre_mode_execution_programme; nombre_lignes_a_supprimer = @@ -2972,6 +3009,7 @@ recherche_type(struct_processus *s_etat_ return; } + (*s_etat_processus).recherche_type = registre_recherche_type; (*s_etat_processus).mode_execution_programme = registre_mode_execution_programme;