Diff for /rpl/src/rplexternals.h between versions 1.80 and 1.91

version 1.80, 2017/07/05 13:53:40 version 1.91, 2018/05/30 16:56:07
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.1.27    RPL/2 (R) version 4.1.29
   Copyright (C) 1989-2017 Dr. BERTRAND Joël    Copyright (C) 1989-2018 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
   
Line 105 Line 105
 #define initializeObject(a, b)  do { \  #define initializeObject(a, b)  do { \
             (*a).descripteur_bibliotheque = (*b).descripteur_bibliotheque; \              (*a).descripteur_bibliotheque = (*b).descripteur_bibliotheque; \
             (*a).extension_type = (*b).extension_type; } while(0)              (*a).extension_type = (*b).extension_type; } while(0)
 #define objectContainer(a) (*a).objet  #define objectContainer(type, a) ((type *) ((*a).objet))
   #define objectOf(a) ((*a).objet)
   #define ifIsExternal(a, b) if (((*a).type == EXT) && ((*a).extension_type == b))
   #define elseIfIsExternal(a, b) } else if (((*a).type == EXT) && \
               ((*a).extension_type == b))
 #define subType(a) ((*a).extension_type)  #define subType(a) ((*a).extension_type)
 #define integerFormat(a) formateur_nombre(s_etat_processus, a, 'I')  #define integerFormat(a) formateur_nombre(s_etat_processus, a, 'I')
   #define procStatus(a) (*a).s_etat_processus
   
 /*  /*
 --------------------------------------------------------------------------------  --------------------------------------------------------------------------------
Line 145 Line 150
     ({ __CATCH_SYSTEM_ERROR__; typeof(daisyChain) __daisyChain = daisyChain; \      ({ __CATCH_SYSTEM_ERROR__; typeof(daisyChain) __daisyChain = daisyChain; \
     if (__daisyChain == NULL) executionError("End of daisy chain"); \      if (__daisyChain == NULL) executionError("End of daisy chain"); \
     (__daisyChain == NULL) ? NULL : (*__daisyChain).suivant; })      (__daisyChain == NULL) ? NULL : (*__daisyChain).suivant; })
   
   #define next        suivant
   #define data        donnee
   #define daisyChain  struct_liste_chainee
           
 #define null NULL  #define null NULL
 #define nullify(ptr) __CATCH_SYSTEM_ERROR__; do { ptr = NULL; } while(0)  #define nullify(ptr) __CATCH_SYSTEM_ERROR__; do { ptr = NULL; } while(0)
Line 219 Line 228
     unsigned char   __taille_bloc; \      unsigned char   __taille_bloc; \
     unsigned char   __type; \      unsigned char   __type; \
     t_8_bits        __masque; \      t_8_bits        __masque; \
       void *s_etat_processus = (*rpl_arguments).s_etat_processus; \
       DISABLE_SET_BUT_NOT_USED_WARNING(s_etat_processus); \
     { \      { \
         (*rpl_arguments).instruction_valide = 'Y'; \          (*rpl_arguments).instruction_valide = 'Y'; \
         (*rpl_arguments).erreur = 0; \          (*rpl_arguments).erreur = 0; \
Line 360 Line 371
 #define endSubroutine END }  #define endSubroutine END }
   
 #define notice(s, ...) __CATCH_SYSTEM_ERROR__; \  #define notice(s, ...) __CATCH_SYSTEM_ERROR__; \
         do { if (affichage_rplso == d_vrai) \          do { ufprintf(s, __VA_ARGS__); fflush(s); } while(0)
             { ufprintf(s, __VA_ARGS__); fflush(s); } } while(0)  
 #define logger(...) __CATCH_SYSTEM_ERROR__; \  #define logger(...) __CATCH_SYSTEM_ERROR__; \
         do { syslog(LOG_NOTICE, __VA_ARGS__); } while(0)           do { syslog(LOG_NOTICE, __VA_ARGS__); } while(0) 
   
Line 1063 Line 1073
     ((*rpl_object).type == CHN)      ((*rpl_object).type == CHN)
   
 #define ifIsString(rpl_object) if (isString(rpl_object))  #define ifIsString(rpl_object) if (isString(rpl_object))
 #define elseIfIsString(rpl_object) else if (isString(rpl_object))  #define elseIfIsString(rpl_object) } else if (isString(rpl_object))
   
 #define setString(rpl_object, string) do { \  #define setString(rpl_object, string) do { \
     struct_processus *s_etat_processus; \      struct_processus *s_etat_processus; \
Line 1095 Line 1105
     ifIsString(rpl_object) string = (char *) (*rpl_object).objet; \      ifIsString(rpl_object) string = (char *) (*rpl_object).objet; \
     else executionError("Type mismatch error"); } while(0)      else executionError("Type mismatch error"); } while(0)
   
   #define unEscString(s) ({ \
       unsigned char *__a; integer8 __l; \
       __a = formateur_flux((*rpl_arguments).s_etat_processus, \
               (unsigned char *) s, &__l); \
       if (nullified(__a)) systemError("Memory allocation error"); \
       (string) __a; \
       })
   
   #define escString(rpl_object) ({ \
       unsigned char *__a; integer8 __l; \
       __a = analyse_flux((*rpl_arguments).s_etat_processus, \
               (unsigned char *) s, strlen(s)); \
       if (nullified(__a)) systemError("Memory allocation error"); \
       (string) __a; \
       })
   
 #define createStringObject(rpl_object) do { \  #define createStringObject(rpl_object) do { \
     struct_processus *s_etat_processus; \      struct_processus *s_etat_processus; \
     s_etat_processus = (*rpl_arguments).s_etat_processus; \      s_etat_processus = (*rpl_arguments).s_etat_processus; \
Line 1243 Line 1269
         } \          } \
     } } while(0)      } } while(0)
   
   // NON
   #define createObject(rpl_object) do { \
       if (rpl_object != NULL) \
           systemError("Reallocated object"); \
       if ((rpl_object = _allocation(NON)) == NULL) \
           systemError("Memory allocation error"); \
       (*rpl_object).objet = NULL; \
       } while(0)
   
 // EXT  // EXT
 #define createExternalObject(rpl_object, subtype) do { \  #define createExternalObject(rpl_object, subtype) do { \
     if (rpl_object != NULL) \      if (rpl_object != NULL) \

Removed from v.1.80  
changed lines
  Added in v.1.91


CVSweb interface <joel.bertrand@systella.fr>