--- rpl/src/rpl.h 2010/09/06 16:50:17 1.68 +++ rpl/src/rpl.h 2011/04/13 08:32:13 1.77.2.2 @@ -1,7 +1,7 @@ /* ================================================================================ - RPL/2 (R) version 4.0.19 - Copyright (C) 1989-2010 Dr. BERTRAND Joël + RPL/2 (R) version 4.0.22 + Copyright (C) 1989-2011 Dr. BERTRAND Joël This file is part of RPL/2. @@ -502,6 +502,9 @@ int sem_getvalue2(sem_t *semaphore, int # define fopen(...) ({ FILE *desc; \ while((desc = fopen(__VA_ARGS__)) == NULL) \ { if ((errno != EINTR) && (errno != 0)) break; } desc; }) +# define freopen(...) ({ FILE *desc; \ + while((desc = freopen(__VA_ARGS__)) == NULL) \ + { if ((errno != EINTR) && (errno != 0)) break; } desc; }) # define fclose(...) ({ int ios; \ while((ios = fclose(__VA_ARGS__)) != 0) \ { if ((errno != EINTR) && (errno != 0)) break; } ios; }) @@ -919,6 +922,7 @@ pid_t debug_fork(); # define d_ex_clef_inexistante __erreur(80) # define d_ex_nom_implicite __erreur(81) # define d_ex_version_bibliotheque __erreur(82) +# define d_ex_creation_variable_globale __erreur(83) #endif @@ -942,8 +946,8 @@ pid_t debug_fork(); # undef MAX #endif -#define ADR __RPL_ADR -#define ALG __RPL_ALG +#define ADR __RPL_ADR +#define ALG __RPL_ALG #define BIN __RPL_BIN #define CHN __RPL_CHN #define CPL __RPL_CPL @@ -962,9 +966,9 @@ pid_t debug_fork(); #define RPN __RPL_RPN #define SCK __RPL_SCK #define SLB __RPL_SLB -#define SPH __RPL_SPH +#define SPH __RPL_SPH #define SQL __RPL_SQL -#define TBL __RPL_TBL +#define TBL __RPL_TBL #define VCX __RPL_VCX #define VIN __RPL_VIN #define VRL __RPL_VRL @@ -1356,6 +1360,7 @@ typedef struct descripteur_thread pthread_t thread_pere; pthread_mutex_t mutex; + pthread_mutex_t mutex_nombre_references; volatile logical1 thread_actif; @@ -1703,6 +1708,7 @@ typedef struct processus unsigned char mode_interactif; /*Y/N*/ unsigned char mode_evaluation_expression; /*Y/N*/ unsigned char traitement_cycle_exit; /*N/E/C*/ + unsigned char recherche_type; /*Y/N*/ unsigned long position_courante; unsigned long longueur_definitions_chainees; @@ -2439,6 +2445,7 @@ void instruction_lq(struct_processus *s_ void instruction_lsq(struct_processus *s_etat_processus); void instruction_lt(struct_processus *s_etat_processus); void instruction_lu(struct_processus *s_etat_processus); +void instruction_l_vers_t(struct_processus *s_etat_processus); void instruction_mant(struct_processus *s_etat_processus); void instruction_mark(struct_processus *s_etat_processus); @@ -2674,6 +2681,7 @@ void instruction_trn(struct_processus *s void instruction_trnc(struct_processus *s_etat_processus); void instruction_true(struct_processus *s_etat_processus); void instruction_type(struct_processus *s_etat_processus); +void instruction_t_vers_l(struct_processus *s_etat_processus); void instruction_ucase(struct_processus *s_etat_processus); void instruction_uchol(struct_processus *s_etat_processus); @@ -2975,6 +2983,8 @@ unsigned char *formateur_fichier(struct_ struct_objet *s_objet, struct_objet *s_format, long longueur, long longueur_champ, unsigned char format, unsigned char type, long *longueur_effective, long *recursivite); +unsigned char *formateur_flux(struct_processus *s_etat_processus, + unsigned char *donnees, long *longueur); unsigned char *formateur_fichier_nombre(struct_processus *s_etat_processus, void *valeur_numerique, unsigned char type, long longueur, long longueur_champ, unsigned char format);