--- rpl/src/rplexternals.h 2013/04/03 09:40:31 1.51 +++ rpl/src/rplexternals.h 2013/04/10 09:07:36 1.52 @@ -39,6 +39,9 @@ ================================================================================ */ +#define __RPL__ struct_rpl_arguments *rpl_arguments; \ + rpl_arguments = &__static_rpl_arguments; + #define __CATCH_SYSTEM_ERROR__ \ do { if (((*rpl_arguments).erreur != 0) && \ ((*rpl_arguments).type_erreur == 'S')) \ @@ -49,6 +52,20 @@ (*rpl_arguments).s_etat_processus, a, b) #define liberation(a) librpl_liberation((*rpl_arguments).s_etat_processus, a) +#ifdef __RPLC_MAIN + struct_rpl_arguments __static_rpl_arguments; +# define global +# define initialize(a, b) a = b +# define declarePersistantObject(object) declareObject(object) +#else + extern struct_rpl_arguments __static_rpl_arguments; +# define global extern +# define initialize(a, b) a; +# define declarePersistantObject(object) extern struct_objet *object; +#endif + +#define empty int + /* -------------------------------------------------------------------------------- Types @@ -267,6 +284,8 @@ type name(__VA_ARGS__) { __RPL__ type __c_return; #define endCFunction return(__c_return); } +#define useCFunction(type, name, ...) type name(__VA_ARGS__) + /* -------------------------------------------------------------------------------- Déclaration des fonctions externes @@ -1183,8 +1202,4 @@ #endif -static struct_rpl_arguments __static_rpl_arguments; -#define __RPL__ struct_rpl_arguments *rpl_arguments; \ - rpl_arguments = &__static_rpl_arguments; - // vim: ts=4