--- rpl/src/instructions_f3.c 2010/09/23 15:27:38 1.21 +++ rpl/src/instructions_f3.c 2012/06/22 10:12:19 1.46 @@ -1,7 +1,7 @@ /* ================================================================================ - RPL/2 (R) version 4.0.20 - Copyright (C) 1989-2010 Dr. BERTRAND Joël + RPL/2 (R) version 4.1.9 + Copyright (C) 1989-2012 Dr. BERTRAND Joël This file is part of RPL/2. @@ -108,8 +108,6 @@ instruction_format(struct_processus *s_e printf(" { \"CHARACTER\" }\n\n"); printf(" FLOW\n"); - printf(" { \"CHARACTER*(*)\" }\n"); - printf(" { \"CHARACTER*(%s)\" }\n", d_INT); printf(" { \"LENGTH*(*)\" }\n"); printf(" { \"LENGTH*(%s)\" }\n", d_INT); @@ -148,6 +146,17 @@ instruction_format(struct_processus *s_e if (((*s_objet_argument_1).type == FCH) && ((*s_objet_argument_2).type == LST)) { + if ((*((struct_fichier *) (*s_objet_argument_1).objet)).binaire + == 'F') + { + liberation(s_etat_processus, s_objet_argument_1); + liberation(s_etat_processus, s_objet_argument_2); + + (*s_etat_processus).erreur_execution = + d_ex_erreur_format_fichier; + return; + } + if ((s_copie_argument_1 = copie_objet(s_etat_processus, s_objet_argument_1, 'N')) == NULL) { @@ -167,6 +176,17 @@ instruction_format(struct_processus *s_e else if (((*s_objet_argument_1).type == SCK) && ((*s_objet_argument_2).type == LST)) { + if ((*((struct_socket *) (*s_objet_argument_1).objet)).binaire + == 'F') + { + liberation(s_etat_processus, s_objet_argument_1); + liberation(s_etat_processus, s_objet_argument_2); + + (*s_etat_processus).erreur_execution = + d_ex_erreur_format_fichier; + return; + } + if ((s_copie_argument_1 = copie_objet(s_etat_processus, s_objet_argument_1, 'N')) == NULL) { @@ -1815,20 +1835,24 @@ instruction_fuse(struct_processus *s_eta return; } -# ifndef OS2 +# ifdef SCHED_OTHER if (pthread_attr_setschedpolicy(&attributs, SCHED_OTHER) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return; } +# endif +# ifdef PTHREAD_EXPLICIT_SCHED if (pthread_attr_setinheritsched(&attributs, PTHREAD_EXPLICIT_SCHED) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return; } +# endif +# ifdef PTHREAD_SCOPE_SYSTEM if (pthread_attr_setscope(&attributs, PTHREAD_SCOPE_SYSTEM) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus;