--- rpl/src/instructions_a4.c 2010/01/27 22:22:12 1.2 +++ rpl/src/instructions_a4.c 2017/01/18 15:44:18 1.60 @@ -1,7 +1,7 @@ /* ================================================================================ - RPL/2 (R) version 4.0.10 - Copyright (C) 1989-2010 Dr. BERTRAND Joël + RPL/2 (R) version 4.1.26 + Copyright (C) 1989-2017 Dr. BERTRAND Joël This file is part of RPL/2. @@ -20,7 +20,7 @@ */ -#include "rpl.conv.h" +#include "rpl-conv.h" /* @@ -116,7 +116,8 @@ instruction_autoscale(struct_processus * if ((*s_objet).type == NOM) { - tampon = conversion_majuscule((*((struct_nom *) (*s_objet).objet)).nom); + tampon = conversion_majuscule(s_etat_processus, + (*((struct_nom *) (*s_objet).objet)).nom); if (tampon == NULL) { @@ -188,7 +189,7 @@ instruction_autoscale(struct_processus * return; } - tampon = conversion_majuscule((*((struct_nom *) + tampon = conversion_majuscule(s_etat_processus, (*((struct_nom *) (*(*l_element_courant).donnee).objet)).nom); if ((strcmp(tampon, "X") != 0) && (strcmp(tampon, "Y")!= 0) && @@ -556,7 +557,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 +610,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; } } @@ -747,8 +758,9 @@ instruction_axes(struct_processus *s_eta return; } - if ((tampon = conversion_majuscule((unsigned char *) - (*(*l_element_courant).donnee).objet)) == NULL) + if ((tampon = conversion_majuscule(s_etat_processus, + (unsigned char *) (*(*l_element_courant).donnee).objet)) + == NULL) { (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; @@ -767,18 +779,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 +919,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 +949,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 +985,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 +1015,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 +1051,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 +1081,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 +1143,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 +1173,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 +1209,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 +1239,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 +1275,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 +1305,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 = @@ -1318,7 +1338,8 @@ instruction_axes(struct_processus *s_eta else if ((*(*l_element_courant_auxiliaire).donnee) .type == CHN) { - tampon = conversion_majuscule((unsigned char *) + tampon = conversion_majuscule(s_etat_processus, + (unsigned char *) (*(*l_element_courant_auxiliaire).donnee) .objet);