--- rpl/src/instructions_a4.c 2010/01/26 15:22:45 1.1.1.1 +++ rpl/src/instructions_a4.c 2014/01/26 18:21:30 1.48 @@ -1,7 +1,7 @@ /* ================================================================================ - RPL/2 (R) version 4.0.9 - Copyright (C) 1989-2010 Dr. BERTRAND Joël + RPL/2 (R) version 4.1.17 + Copyright (C) 1989-2014 Dr. BERTRAND Joël This file is part of RPL/2. @@ -20,7 +20,7 @@ */ -#include "rpl.conv.h" +#include "rpl-conv.h" /* @@ -556,7 +556,7 @@ instruction_asr(struct_processus *s_etat void instruction_append(struct_processus *s_etat_processus) { - file *descripteur; + struct_descripteur_fichier *descripteur; struct_objet *s_objet_argument; @@ -609,11 +609,21 @@ instruction_append(struct_processus *s_e return; } - if (fseek(descripteur, (long) 0, SEEK_END) != 0) + if ((*descripteur).type == 'C') + { + if (fseek((*descripteur).descripteur_c, (long) 0, SEEK_END) != 0) + { + liberation(s_etat_processus, s_objet_argument); + + (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; + return; + } + } + else { liberation(s_etat_processus, s_objet_argument); - (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; + (*s_etat_processus).erreur_execution = d_ex_erreur_type_fichier; return; } } @@ -767,18 +777,26 @@ instruction_axes(struct_processus *s_eta if (presence_type == d_faux) { - if ((tampon = malloc(5 * sizeof(unsigned char))) == NULL) - { - (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; - return; - } - if ((*s_etat_processus).systeme_axes == 0) { + if ((tampon = malloc(5 * sizeof(unsigned char))) == NULL) + { + (*s_etat_processus).erreur_systeme = + d_es_allocation_memoire; + return; + } + strcpy(tampon, "MAIN"); } else { + if ((tampon = malloc(10 * sizeof(unsigned char))) == NULL) + { + (*s_etat_processus).erreur_systeme = + d_es_allocation_memoire; + return; + } + strcpy(tampon, "AUXILIARY"); } } @@ -899,7 +917,7 @@ instruction_axes(struct_processus *s_eta } else if (nombre_arguments_auxiliaires == 2) { - (*s_etat_processus).mx_tics = (real8) + (*s_etat_processus).mx_tics = (*((integer8 *) (* (*l_element_courant_auxiliaire) .donnee).objet)); @@ -929,7 +947,7 @@ instruction_axes(struct_processus *s_eta } else if (nombre_arguments_auxiliaires == 2) { - (*s_etat_processus).mx2_tics = (real8) + (*s_etat_processus).mx2_tics = (*((integer8 *) (* (*l_element_courant_auxiliaire) .donnee).objet)); @@ -965,7 +983,7 @@ instruction_axes(struct_processus *s_eta } else if (nombre_arguments_auxiliaires == 2) { - (*s_etat_processus).my_tics = (real8) + (*s_etat_processus).my_tics = (*((integer8 *) (* (*l_element_courant_auxiliaire) .donnee).objet)); @@ -995,7 +1013,7 @@ instruction_axes(struct_processus *s_eta } else if (nombre_arguments_auxiliaires == 2) { - (*s_etat_processus).my2_tics = (real8) + (*s_etat_processus).my2_tics = (*((integer8 *) (* (*l_element_courant_auxiliaire) .donnee).objet)); @@ -1031,7 +1049,7 @@ instruction_axes(struct_processus *s_eta } else if (nombre_arguments_auxiliaires == 2) { - (*s_etat_processus).mz_tics = (real8) + (*s_etat_processus).mz_tics = (*((integer8 *) (* (*l_element_courant_auxiliaire) .donnee).objet)); @@ -1061,7 +1079,7 @@ instruction_axes(struct_processus *s_eta } else if (nombre_arguments_auxiliaires == 2) { - (*s_etat_processus).mz2_tics = (real8) + (*s_etat_processus).mz2_tics = (*((integer8 *) (* (*l_element_courant_auxiliaire) .donnee).objet)); @@ -1123,7 +1141,7 @@ instruction_axes(struct_processus *s_eta else if (nombre_arguments_auxiliaires == 2) { (*s_etat_processus).mx_tics = - (*((real8 *) (* + (integer8) (*((real8 *) (* (*l_element_courant_auxiliaire) .donnee).objet)); (*s_etat_processus).mx_lines = @@ -1153,7 +1171,7 @@ instruction_axes(struct_processus *s_eta else if (nombre_arguments_auxiliaires == 2) { (*s_etat_processus).mx2_tics = - (*((real8 *) (* + (integer8) (*((real8 *) (* (*l_element_courant_auxiliaire) .donnee).objet)); (*s_etat_processus).mx2_lines = @@ -1189,7 +1207,7 @@ instruction_axes(struct_processus *s_eta else if (nombre_arguments_auxiliaires == 2) { (*s_etat_processus).my_tics = - (*((real8 *) (* + (integer8) (*((real8 *) (* (*l_element_courant_auxiliaire) .donnee).objet)); (*s_etat_processus).my_lines = @@ -1219,7 +1237,7 @@ instruction_axes(struct_processus *s_eta else if (nombre_arguments_auxiliaires == 2) { (*s_etat_processus).my2_tics = - (*((real8 *) (* + (integer8) (*((real8 *) (* (*l_element_courant_auxiliaire) .donnee).objet)); (*s_etat_processus).my2_lines = @@ -1255,7 +1273,7 @@ instruction_axes(struct_processus *s_eta else if (nombre_arguments_auxiliaires == 2) { (*s_etat_processus).mz_tics = - (*((real8 *) (* + (integer8) (*((real8 *) (* (*l_element_courant_auxiliaire) .donnee).objet)); (*s_etat_processus).mz_lines = @@ -1285,7 +1303,7 @@ instruction_axes(struct_processus *s_eta else if (nombre_arguments_auxiliaires == 2) { (*s_etat_processus).mz2_tics = - (*((real8 *) (* + (integer8) (*((real8 *) (* (*l_element_courant_auxiliaire) .donnee).objet)); (*s_etat_processus).mz2_lines =