--- rpl/src/instructions_r6.c 2010/03/09 10:18:48 1.6 +++ rpl/src/instructions_r6.c 2010/05/22 21:45:50 1.10 @@ -1,6 +1,6 @@ /* ================================================================================ - RPL/2 (R) version 4.0.13 + RPL/2 (R) version 4.0.15 Copyright (C) 1989-2010 Dr. BERTRAND Joël This file is part of RPL/2. @@ -265,17 +265,29 @@ instruction_recv(struct_processus *s_eta } } +# ifndef SEMAPHORES_NOMMES if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return; } +# else + if (sem_post((*s_etat_processus).semaphore_fork) != 0) + { + (*s_etat_processus).erreur_systeme = d_es_processus; + return; + } +# endif if ((s_objet_resultat = lecture_pipe(s_etat_processus, (*(*((struct_processus_fils *) (*s_objet_argument).objet)) .thread).pipe_objets[0])) == NULL) { +# ifndef SEMAPHORES_NOMMES while(sem_wait(&((*s_etat_processus).semaphore_fork)) == -1) +# else + while(sem_wait((*s_etat_processus).semaphore_fork) == -1) +# endif { if (errno != EINTR) { @@ -305,7 +317,11 @@ instruction_recv(struct_processus *s_eta return; } +# ifndef SEMAPHORES_NOMMES while(sem_wait(&((*s_etat_processus).semaphore_fork)) == -1) +# else + while(sem_wait((*s_etat_processus).semaphore_fork) == -1) +# endif { if (errno != EINTR) { @@ -359,7 +375,11 @@ instruction_recv(struct_processus *s_eta return; } +# ifndef SEMAPHORES_NOMMES if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0) +# else + if (sem_post((*s_etat_processus).semaphore_fork) != 0) +# endif { (*s_etat_processus).erreur_systeme = d_es_processus; return; @@ -377,7 +397,11 @@ instruction_recv(struct_processus *s_eta } } +# ifndef SEMAPHORES_NOMMES while(sem_wait(&((*s_etat_processus).semaphore_fork)) == -1) +# else + while(sem_wait((*s_etat_processus).semaphore_fork) == -1) +# endif { if (errno != EINTR) { @@ -1190,6 +1214,7 @@ instruction_rdgn(struct_processus *s_eta struct_objet *s_objet_argument; struct_objet *s_objet_resultat; + unsigned char *pointeur; unsigned char *requete; unsigned char **types_generateurs; @@ -1247,6 +1272,17 @@ instruction_rdgn(struct_processus *s_eta } strcpy(types_generateurs[i], (**type_courant).name); + pointeur = types_generateurs[i]; + + while((*pointeur) != d_code_fin_chaine) + { + if ((*pointeur) == '-') + { + (*pointeur) = '_'; + } + + pointeur++; + } } // Tri des types de générateurs (tri shaker)