--- rpl/src/instructions_e2.c 2010/02/10 10:14:22 1.4 +++ rpl/src/instructions_e2.c 2010/02/26 19:22:05 1.5 @@ -725,7 +725,6 @@ instruction_edit(struct_processus *s_eta file *fichier; - logical1 drapeau; logical1 drapeau49; logical1 drapeau50; @@ -887,101 +886,93 @@ instruction_edit(struct_processus *s_eta return; } - do + if ((commande = malloc((strlen(ds_vim_commande) + strlen(nom_fichier) + - 1) * sizeof(unsigned char))) == NULL) { - if ((commande = malloc((strlen(ds_vim_commande) + strlen(nom_fichier) - - 1) * sizeof(unsigned char))) == NULL) - { - (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; - return; - } + (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; + return; + } - sprintf(commande, ds_vim_commande, nom_fichier); + sprintf(commande, ds_vim_commande, nom_fichier); - if (system(commande) != 0) - { - free(commande); + if (system(commande) != 0) + { + free(commande); - (*s_etat_processus).erreur_systeme = d_es_processus; - return; - } + (*s_etat_processus).erreur_systeme = d_es_processus; + return; + } - free(commande); + free(commande); - if ((s_objet_nom = allocation(s_etat_processus, CHN)) == NULL) - { - (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; - return; - } + if ((s_objet_nom = allocation(s_etat_processus, CHN)) == NULL) + { + (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; + return; + } - if (((*s_objet_nom).objet = malloc((strlen(nom_fichier) + 1) - * sizeof(unsigned char))) == NULL) - { - (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; - return; - } + if (((*s_objet_nom).objet = malloc((strlen(nom_fichier) + 1) + * sizeof(unsigned char))) == NULL) + { + (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; + return; + } - strcpy((unsigned char *) (*s_objet_nom).objet, nom_fichier); + strcpy((unsigned char *) (*s_objet_nom).objet, nom_fichier); - if (empilement(s_etat_processus, &((*s_etat_processus).l_base_pile), - s_objet_nom) == d_erreur) - { - return; - } + if (empilement(s_etat_processus, &((*s_etat_processus).l_base_pile), + s_objet_nom) == d_erreur) + { + return; + } - registre_pile_last = (*s_etat_processus).l_base_pile_last; - (*s_etat_processus).l_base_pile_last = NULL; + registre_pile_last = (*s_etat_processus).l_base_pile_last; + (*s_etat_processus).l_base_pile_last = NULL; - instruction_recall(s_etat_processus); + instruction_recall(s_etat_processus); - // Destruction du fichier temporaire + if (empilement_pile_last(s_etat_processus, 0) == d_erreur) + { + return; + } - if (destruction_fichier(nom_fichier) == d_erreur) - { - (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; - return; - } + (*s_etat_processus).l_base_pile_last = registre_pile_last; - free(nom_fichier); + // Destruction du fichier temporaire - if (((*s_etat_processus).erreur_systeme != d_es) || - ((*s_etat_processus).erreur_execution != d_ex) || - ((*s_etat_processus).exception != d_ep)) - { - if (empilement_pile_last(s_etat_processus, 0) == d_erreur) - { - return; - } + if (destruction_fichier(nom_fichier) == d_erreur) + { + (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; + return; + } - (*s_etat_processus).l_base_pile_last = registre_pile_last; - liberation(s_etat_processus, s_objet); + free(nom_fichier); - return; - } + if (((*s_etat_processus).erreur_systeme != d_es) || + ((*s_etat_processus).erreur_execution != d_ex) || + ((*s_etat_processus).exception != d_ep)) + { + liberation(s_etat_processus, s_objet); - if ((*s_etat_processus).erreur_systeme != d_es) - { - return; - } + return; + } - if ((*s_etat_processus).erreur_execution == d_ex_fichier_vide) - { - if (empilement(s_etat_processus, &((*s_etat_processus).l_base_pile), - s_objet) == d_erreur) - { - return; - } + if ((*s_etat_processus).erreur_systeme != d_es) + { + return; + } - (*s_etat_processus).erreur_execution = d_ex; - drapeau = d_faux; - } - else + if ((*s_etat_processus).erreur_execution == d_ex_fichier_vide) + { + if (empilement(s_etat_processus, &((*s_etat_processus).l_base_pile), + s_objet) == d_erreur) { - drapeau = d_vrai; + return; } - } while((*s_etat_processus).erreur_execution != d_ex); - if (drapeau == d_vrai) + (*s_etat_processus).erreur_execution = d_ex; + } + else { liberation(s_etat_processus, s_objet); }