--- rpl/src/rpl.c 2010/06/24 10:10:46 1.31 +++ rpl/src/rpl.c 2010/08/06 15:26:51 1.35 @@ -1,6 +1,6 @@ /* ================================================================================ - RPL/2 (R) version 4.0.17 + RPL/2 (R) version 4.0.18 Copyright (C) 1989-2010 Dr. BERTRAND Joël This file is part of RPL/2. @@ -21,8 +21,11 @@ #define MAIN_RPL -#include "rpl.conv.h" +#include "rpl-conv.h" +#ifdef OS2 + unsigned char *chemin_semaphores_SysV; +#endif /* ================================================================================ @@ -33,8 +36,8 @@ int rplinit(int argc, char *argv[], unsigned char ***resultats, char *rpl_home) { -# include "copyright.conv.h" -# include "licence.conv.h" +# include "copyright-conv.h" +# include "licence-conv.h" file *f_source; @@ -327,7 +330,7 @@ rplinit(int argc, char *argv[], unsigned // Initialisation d'une pile de signal pour récupérer les // débordement de pile -# ifndef Cygwin +# if !defined(Cygwin) if (((*s_etat_processus).pile_signal.ss_sp = malloc((*s_etat_processus).pile_signal.ss_size = SIGSTKSZ)) == NULL) @@ -583,6 +586,10 @@ rplinit(int argc, char *argv[], unsigned (*s_etat_processus).chemin_fichiers_temporaires = recherche_chemin_fichiers_temporaires(s_etat_processus); +# ifdef OS2 + chemin_semaphores_SysV = (*s_etat_processus).chemin_fichiers_temporaires; +# endif + erreur = d_absence_erreur; core = d_faux; mode_interactif = d_faux; @@ -1871,6 +1878,8 @@ rplinit(int argc, char *argv[], unsigned } (*s_etat_processus).at_exit = NULL; + (*s_etat_processus).at_poke = NULL; + (*s_etat_processus).traitement_at_poke = 'N'; (*s_etat_processus).pointeurs_caracteres = NULL; (*s_etat_processus).arbre_instructions = NULL; @@ -1907,7 +1916,7 @@ rplinit(int argc, char *argv[], unsigned } if (((*s_etat_processus).instruction_derniere_erreur = - malloc(2 * sizeof(unsigned char))) == NULL) + malloc(sizeof(unsigned char))) == NULL) { erreur = d_es_allocation_memoire; @@ -2663,11 +2672,11 @@ rplinit(int argc, char *argv[], unsigned (*s_etat_processus).at_exit, 'E'); } } - - liberation(s_etat_processus, - (*s_etat_processus).at_exit); } + liberation(s_etat_processus, (*s_etat_processus).at_exit); + liberation(s_etat_processus, (*s_etat_processus).at_poke); + if ((*s_etat_processus).generateur_aleatoire != NULL) { liberation_generateur_aleatoire(s_etat_processus);