_______________________________________________________________________________________________________________________________________
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        F O N C T I O N S   D ' A L L O C A T I O N / D E S A L L O C A T I O N   M E M O I R E                                    */
/*        D E   C E R T A I N E S   C H A I N E S   D E   C A R A C T E R E S   T R E S   U T I L I S E E S  :                       */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Definition :                                                                                                               */
/*                                                                                                                                   */
/*                    Dans ce fichier, se trouvent toutes                                                                            */
/*                  les fonctions destinees a allouer et a                                                                           */
/*                  desallouer la memoire de certaines chaines                                                                       */
/*                  de caracteres tres utilisees...                                                                                  */
/*                                                                                                                                   */
/*                    Pendant un temps tout cela se trouvait                                                                         */
/*                  dans 'v $xig/fonct$vv$FON', mais il y avait                                                                      */
/*                  un probleme de reference en avant dans la                                                                        */
/*                  fonction 'chain_Acopie(...)' qui reference la                                                                    */
/*                  fonction 'allocation_memoire_et_generation_des_format_EGAr(...)'                                                 */
/*                  qui maintenant se trouve ici...                                                                                  */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Nota important :                                                                                                           */
/*                                                                                                                                   */
/*                    A compter du 20180413112426, on trouve                                                                         */
/*                  aussi ici des fonctions qui avant cette                                                                          */
/*                  date etaient elles-aussi dans 'v $xig/fonct$vv$FON'                                                              */
/*                  et qui posaient des problemes de references en                                                                   */
/*                  avant ou de references "croisees". C'est ainsi                                                                   */
/*                  de cas de 'FgEDITION_DE_LA_VALEUR_DE_LA_PLUPART_DES_COMPTEURS(...)'                                              */
/*                  ci-apres...                                                                                                      */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xig/allocation$vv$FON' :                                                                                       */
/*                                                                                                                                   */
/*                    Jean-Francois COLONNA (LACTAMME, 20180402005741).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        C H A I N E S   D E   C A R A C T E R E S   T R E S   U T I L I S E E S  :                                                 */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

DEFV(Common,DEFV(CHAR,INIT(POINTERc(format_EGAr____FORMAT_CHAI_2),ADRESSE_NON_ENCORE_DEFINIE)));
DEFV(Common,DEFV(CHAR,INIT(POINTERc(format_EGAr____FORMAT_CHAI),ADRESSE_NON_ENCORE_DEFINIE)));

DEFV(Common,DEFV(CHAR,INIT(POINTERc(format_EGAr____FORMAT_CHAI_EDITION),ADRESSE_NON_ENCORE_DEFINIE)));

DEFV(Common,DEFV(CHAR,INIT(POINTERc(format_EGAr____FORMAT_CHAR_EDITION),ADRESSE_NON_ENCORE_DEFINIE)));

DEFV(Common,DEFV(CHAR,INIT(POINTERc(format_EGAr____FORMAT_CHAR_EDITION_BACKSLASHEE),ADRESSE_NON_ENCORE_DEFINIE)));

DEFV(Common,DEFV(CHAR,INIT(POINTERc(format_EGAr____FORMAT_CHAR_HEXA_DECIMAL_EDITION_1),ADRESSE_NON_ENCORE_DEFINIE)));
DEFV(Common,DEFV(CHAR,INIT(POINTERc(format_EGAr____FORMAT_CHAR_HEXA_DECIMAL_EDITION),ADRESSE_NON_ENCORE_DEFINIE)));

DEFV(Common,DEFV(CHAR,INIT(POINTERc(format_EGAr____FORMAT_FLOT),ADRESSE_NON_ENCORE_DEFINIE)));

DEFV(Common,DEFV(CHAR,INIT(POINTERc(format_EGAr____FORMAT_FLOT_EDITION),ADRESSE_NON_ENCORE_DEFINIE)));
DEFV(Common,DEFV(CHAR,INIT(POINTERc(format_EGAr____FORMAT_FLOT_EDITION__NON_SIGNE),ADRESSE_NON_ENCORE_DEFINIE)));

DEFV(Common,DEFV(CHAR,INIT(POINTERc(format_EGAr____FORMAT_HEXA_DECIMAL),ADRESSE_NON_ENCORE_DEFINIE)));

DEFV(Common,DEFV(CHAR,INIT(POINTERc(format_EGAr____FORMAT_HEXA_DECIMAL_SANS_0_EDITION),ADRESSE_NON_ENCORE_DEFINIE)));

DEFV(Common,DEFV(CHAR,INIT(POINTERc(format_EGAr____FORMAT_HEXA_DECIMAL_EDITION_1),ADRESSE_NON_ENCORE_DEFINIE)));
DEFV(Common,DEFV(CHAR,INIT(POINTERc(format_EGAr____FORMAT_HEXA_DECIMAL_EDITION),ADRESSE_NON_ENCORE_DEFINIE)));

DEFV(Common,DEFV(CHAR,INIT(POINTERc(format_EGAr____FORMAT_INTE),ADRESSE_NON_ENCORE_DEFINIE)));

DEFV(Common,DEFV(CHAR,INIT(POINTERc(format_EGAr____FORMAT_INTE_EDITION),ADRESSE_NON_ENCORE_DEFINIE)));
DEFV(Common,DEFV(CHAR,INIT(POINTERc(format_EGAr____FORMAT_INTE_EDITION__NON_SIGNE),ADRESSE_NON_ENCORE_DEFINIE)));
                                        /* Introduits le 20180330104223...                                                           */
                                        /*                                                                                           */
                                        /* Le 20190906113913 fut introduit 'format_EGAr____FORMAT_HEXA_DECIMAL_SANS_0_EDITION'...    */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        O P T I M I S A T I O N   D E S   A L L O C A T I O N S   M E M O I R E                                                    */
/*        D E   C H A I N E S   D E   C A R A C T E R E S   T R E S   U T I L I S E E S  :                                           */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

BFonctionV

#ifndef   GENERATION_____D_UN_SOURCE_C_BOOTSTRAPPABLE
#Aifndef  GENERATION_____D_UN_SOURCE_C_BOOTSTRAPPABLE
                                        /* Introduit le 20210925084234...                                                            */
#    define    FORMAT_CHAR__________BOOTSTRAPPABLE                                                                                      \
                         FORMAT_CHAR
#    define    FORMAT_CHAI__________BOOTSTRAPPABLE                                                                                      \
                         INTRODUCTION_FORMAT ## TYPE_FORMAT_GENERAL_CHAI
#    define    FORMAT_INTE__________BOOTSTRAPPABLE                                                                                      \
                         INTRODUCTION_FORMAT ## __FORMAT_INTE
#    define    FORMAT_HEXA_DECIMAL__BOOTSTRAPPABLE                                                                                      \
                         INTRODUCTION_FORMAT ## __FORMAT_HEXA_DECIMAL
#    define    FORMAT_FLOT__________BOOTSTRAPPABLE                                                                                      \
                         INTRODUCTION_FORMAT ## FORMAT_FLOT_PRECISION ## TYPE_FORMAT_FLOT
                                        /* Definitions simplifiees des formats introduites le 20210925084234 et ce pour eviter       */
                                        /* les references en avant des fonctions de gestion de chaines de caracteres et d'edition    */
                                        /* (dans 'v $xig/fonct$vv$FON')...                                                           */
#Eifndef  GENERATION_____D_UN_SOURCE_C_BOOTSTRAPPABLE

DEFV(Common,DEFV(Logical,ZINT(allocation_memoire_et_generation_des_format_EGAr_____initialisation_faite,FAUX)));
DEFV(Local,DEFV(Logical,INIT(allocation_memoire_et_generation_des_format_EGAr_____initialisation_en_cours,FAUX)));
                                        /* Introduit le 20180401123053 et complete le 20180401134653...                              */

DEFV(Common,DEFV(Logical,INIT(allocation_memoire_et_generation_des_format_EGAr_____compteur_d_allocation_memoire,ZERO)));
                                        /* Introduit le 20180407091122...                                                            */

#define   ALLOCATION____MEMOIRE(format,nom,definition)                                                                                  \
                    Bblock                                                                                                              \
                    EGAp(format,definition);                                                                                            \
                                        /* On notera le 20210924150459 que toutes les definitions sont de la forme :                 */ \
                                        /*                                                                                           */ \
                                        /*                  chain_Aconcaten?(...)                                                    */ \
                                        /*                                                                                           */ \
                                        /* cette operation de concatenation provoquant effectivement une allocation memoire...       */ \
                                                                                                                                        \
                    Test(IL_FAUT(editer_les_formats_alloues))                                                                           \
                         Bblock                                                                                                         \
                         CAL2(FPrin4(stream_Prin,FLUSHER_LE_FILE,"%s : %c%s%c\n",nom,K_VERITABLE_QUOTE,definition,K_VERITABLE_QUOTE));  \
                                        /* Evidemment, on ne peut pas encore utiliser 'CAL2(Prin4(...))'...                          */ \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                                                                                                                                        \
                    INCK(allocation_memoire_et_generation_des_format_EGAr_____compteur_d_allocation_memoire);                           \
                    Eblock                                                                                                              \
                                        /* Allocation memoire et comptage...                                                         */

#define   VARIABLE_D_ENVIRONNEMENT_CONTROLANT_L_EDITION_DES_FORMATS                                                                     \
                    "EditerFormats"

DEFV(Common,DEFV(FonctionV,allocation_memoire_et_generation_des_format_EGAr()))
                                        /* Fonction introduite le 20180330115825...                                                  */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
     Bblock
     /*..............................................................................................................................*/
     Test(IFET(EST_FAUX(allocation_memoire_et_generation_des_format_EGAr_____initialisation_faite)
              ,EST_FAUX(allocation_memoire_et_generation_des_format_EGAr_____initialisation_en_cours)
               )
          )
          Bblock
          DEFV(Logical,INIT(editer_les_formats_alloues,GvalDefaut(VARIABLE_D_ENVIRONNEMENT_CONTROLANT_L_EDITION_DES_FORMATS,NEXIST)));
                                        /* Indicateur tres dangereux introduit le 20241107100821. Il est en effet dangereux car      */
                                        /* cette fonction est appelee dans 'v $xil/defi_c1$vv$DEF CALS.allocation_memoire_et_...'    */
                                        /* par TOUS les '$X's, en particulier lors des compilations...                               */
                                        /*                                                                                           */
                                        /* Voir le 20241107182103 a ce sujet 'v $xE/.alias.2$vv$Y unsetenv..EditerFormats'...        */

          EGAL(allocation_memoire_et_generation_des_format_EGAr_____initialisation_en_cours,VRAI);
                                        /* Introduit le 20180401134653...                                                            */
                                        /*                                                                                           */
                                        /* En effet, 'allocation_memoire_et_generation_des_format_EGAr(...)' est appele par          */
                                        /* 'chain_Acopie(...)' (en particulier celui de 'v$xil/defi_c1$vv$DEF BCommande'). Or        */
                                        /* ci-apres, dans les differents 'cFORMAT_...' il y a evidemment des 'chain_Acopie(...)'s    */
                                        /* caches. Donc sans cet indicatuer "en_cours" on partirait dans une boucle infinie...       */

#ifndef   GENERATION_____D_UN_SOURCE_C_BOOTSTRAPPABLE
                                        /* Nota : les "_"s au bout des noms des formats sont destines a aligner leurs definitions    */
                                        /* et ainsi les rendre plus lisibles. On notera au passage que l'on ne peut pas utiliser     */
                                        /* des " "s car, en effet, ils risquent d'etre compactes...                                  */

          ALLOCATION____MEMOIRE(format_EGAr____FORMAT_CHAI_2
                               ,"____FORMAT_CHAI_2________________________________________"
                               ,cFORMAT_CHAI_2
                                );
          ALLOCATION____MEMOIRE(format_EGAr____FORMAT_CHAI
                               ,"____FORMAT_CHAI__________________________________________"
                               ,cFORMAT_CHAI
                                );

          ALLOCATION____MEMOIRE(format_EGAr____FORMAT_CHAI_EDITION
                               ,"____FORMAT_CHAI_EDITION__________________________________"
                               ,cFORMAT_CHAI_EDITION
                                );

          ALLOCATION____MEMOIRE(format_EGAr____FORMAT_CHAR_EDITION
                               ,"____FORMAT_CHAR_EDITION__________________________________"
                               ,cFORMAT_CHAR_EDITION
                                );

          ALLOCATION____MEMOIRE(format_EGAr____FORMAT_CHAR_EDITION_BACKSLASHEE
                               ,"____FORMAT_CHAR_EDITION_BACKSLASHEE______________________"
                               ,cFORMAT_CHAR_EDITION_BACKSLASHEE
                                );

          ALLOCATION____MEMOIRE(format_EGAr____FORMAT_CHAR_HEXA_DECIMAL_EDITION_1
                               ,"____FORMAT_CHAR_HEXA_DECIMAL_EDITION_1___________________"
                               ,cFORMAT_CHAR_HEXA_DECIMAL_EDITION_1
                                );
          ALLOCATION____MEMOIRE(format_EGAr____FORMAT_CHAR_HEXA_DECIMAL_EDITION
                               ,"____FORMAT_CHAR_HEXA_DECIMAL_EDITION_____________________"
                               ,cFORMAT_CHAR_HEXA_DECIMAL_EDITION
                                );

          ALLOCATION____MEMOIRE(format_EGAr____FORMAT_FLOT
                               ,"____FORMAT_FLOT__________________________________________"
                               ,cFORMAT_FLOT
                                );

          ALLOCATION____MEMOIRE(format_EGAr____FORMAT_FLOT_EDITION
                               ,"____FORMAT_FLOT_EDITION__________________________________"
                               ,cFORMAT_FLOT_EDITION
                                );
          ALLOCATION____MEMOIRE(format_EGAr____FORMAT_FLOT_EDITION__NON_SIGNE
                               ,"____FORMAT_FLOT_EDITION__NON_SIGNE_______________________"
                               ,cFORMAT_FLOT_EDITION__NON_SIGNE
                                );

          ALLOCATION____MEMOIRE(format_EGAr____FORMAT_HEXA_DECIMAL
                               ,"____FORMAT_HEXA_DECIMAL__________________________________"
                               ,cFORMAT_HEXA_DECIMAL
                                );

          ALLOCATION____MEMOIRE(format_EGAr____FORMAT_HEXA_DECIMAL_SANS_0_EDITION
                               ,"____FORMAT_HEXA_DECIMAL_SANS_0_EDITION___________________"
                               ,cFORMAT_HEXA_DECIMAL_SANS_0_EDITION
                                );

          ALLOCATION____MEMOIRE(format_EGAr____FORMAT_HEXA_DECIMAL_EDITION_1
                               ,"____FORMAT_HEXA_DECIMAL_EDITION_1________________________"
                               ,cFORMAT_HEXA_DECIMAL_EDITION_1
                                );
          ALLOCATION____MEMOIRE(format_EGAr____FORMAT_HEXA_DECIMAL_EDITION
                               ,"____FORMAT_HEXA_DECIMAL_EDITION__________________________"
                               ,cFORMAT_HEXA_DECIMAL_EDITION
                                );

          ALLOCATION____MEMOIRE(format_EGAr____FORMAT_INTE
                               ,"____FORMAT_INTE__________________________________________"
                               ,cFORMAT_INTE
                                );

          ALLOCATION____MEMOIRE(format_EGAr____FORMAT_INTE_EDITION
                               ,"____FORMAT_INTE_EDITION__________________________________"
                               ,cFORMAT_INTE_EDITION
                                );
          ALLOCATION____MEMOIRE(format_EGAr____FORMAT_INTE_EDITION__NON_SIGNE
                               ,"____FORMAT_INTE_EDITION__NON_SIGNE_______________________"
                               ,cFORMAT_INTE_EDITION__NON_SIGNE
                                );
#Aifndef  GENERATION_____D_UN_SOURCE_C_BOOTSTRAPPABLE
                                        /* Introduit le 20210924080853 pour supprimer les references en avant des fonctions de       */
                                        /* gestion de chaines de caracteres et d'edition (dans 'v $xig/fonct$vv$FON')...             */
          ALLOCATION____MEMOIRE(format_EGAr____FORMAT_CHAI_2
                               ,"____FORMAT_CHAI_2________________________________________"
                               ,FORMAT_CHAI__________BOOTSTRAPPABLE
                                );
          ALLOCATION____MEMOIRE(format_EGAr____FORMAT_CHAI
                               ,"____FORMAT_CHAI__________________________________________"
                               ,FORMAT_CHAI__________BOOTSTRAPPABLE
                                );

          ALLOCATION____MEMOIRE(format_EGAr____FORMAT_CHAI_EDITION
                               ,"____FORMAT_CHAI_EDITION__________________________________"
                               ,FORMAT_CHAI__________BOOTSTRAPPABLE
                                );

          ALLOCATION____MEMOIRE(format_EGAr____FORMAT_CHAR_EDITION
                               ,"____FORMAT_CHAR_EDITION__________________________________"
                               ,FORMAT_CHAR__________BOOTSTRAPPABLE
                                );

          ALLOCATION____MEMOIRE(format_EGAr____FORMAT_CHAR_EDITION_BACKSLASHEE
                               ,"____FORMAT_CHAR_EDITION_BACKSLASHEE______________________"
                               ,FORMAT_CHAR__________BOOTSTRAPPABLE
                                );

          ALLOCATION____MEMOIRE(format_EGAr____FORMAT_CHAR_HEXA_DECIMAL_EDITION_1
                               ,"____FORMAT_CHAR_HEXA_DECIMAL_EDITION_1___________________"
                               ,FORMAT_HEXA_DECIMAL__BOOTSTRAPPABLE
                                );
          ALLOCATION____MEMOIRE(format_EGAr____FORMAT_CHAR_HEXA_DECIMAL_EDITION
                               ,"____FORMAT_CHAR_HEXA_DECIMAL_EDITION_____________________"
                               ,FORMAT_HEXA_DECIMAL__BOOTSTRAPPABLE
                                );

          ALLOCATION____MEMOIRE(format_EGAr____FORMAT_FLOT
                               ,"____FORMAT_FLOT__________________________________________"
                               ,FORMAT_FLOT__________BOOTSTRAPPABLE
                                );

          ALLOCATION____MEMOIRE(format_EGAr____FORMAT_FLOT_EDITION
                               ,"____FORMAT_FLOT_EDITION__________________________________"
                               ,FORMAT_FLOT__________BOOTSTRAPPABLE
                                );
          ALLOCATION____MEMOIRE(format_EGAr____FORMAT_FLOT_EDITION__NON_SIGNE
                               ,"____FORMAT_FLOT_EDITION__NON_SIGNE_______________________"
                               ,FORMAT_FLOT__________BOOTSTRAPPABLE
                                );

          ALLOCATION____MEMOIRE(format_EGAr____FORMAT_HEXA_DECIMAL
                               ,"____FORMAT_HEXA_DECIMAL__________________________________"
                               ,FORMAT_HEXA_DECIMAL__BOOTSTRAPPABLE
                                );

          ALLOCATION____MEMOIRE(format_EGAr____FORMAT_HEXA_DECIMAL_SANS_0_EDITION
                               ,"____FORMAT_HEXA_DECIMAL_SANS_0_EDITION___________________"
                               ,FORMAT_HEXA_DECIMAL__BOOTSTRAPPABLE
                                );

          ALLOCATION____MEMOIRE(format_EGAr____FORMAT_HEXA_DECIMAL_EDITION_1
                               ,"____FORMAT_HEXA_DECIMAL_EDITION_1________________________"
                               ,FORMAT_HEXA_DECIMAL__BOOTSTRAPPABLE
                                );
          ALLOCATION____MEMOIRE(format_EGAr____FORMAT_HEXA_DECIMAL_EDITION
                               ,"____FORMAT_HEXA_DECIMAL_EDITION__________________________"
                               ,FORMAT_HEXA_DECIMAL__BOOTSTRAPPABLE
                                );

          ALLOCATION____MEMOIRE(format_EGAr____FORMAT_INTE
                               ,"____FORMAT_INTE__________________________________________"
                               ,FORMAT_INTE__________BOOTSTRAPPABLE
                                );

          ALLOCATION____MEMOIRE(format_EGAr____FORMAT_INTE_EDITION
                               ,"____FORMAT_INTE_EDITION__________________________________"
                               ,FORMAT_INTE__________BOOTSTRAPPABLE
                                );
          ALLOCATION____MEMOIRE(format_EGAr____FORMAT_INTE_EDITION__NON_SIGNE
                               ,"____FORMAT_INTE_EDITION__NON_SIGNE_______________________"
                               ,FORMAT_INTE__________BOOTSTRAPPABLE
                                );
#Eifndef  GENERATION_____D_UN_SOURCE_C_BOOTSTRAPPABLE

          EGAL(allocation_memoire_et_generation_des_format_EGAr_____initialisation_en_cours,FAUX);
                                        /* Introduit le 20200328133443...                                                            */
          EGAL(allocation_memoire_et_generation_des_format_EGAr_____initialisation_faite,VRAI);
                                        /* Introduit le 20180401123053...                                                            */

          Test(IL_FAUT(editer_les_formats_alloues))
               Bblock
#define   CHAINE_UNSETENV                                                                                                               \
                    "unsetenv"
#define   TABULATION_UNSETENV                                                                                                           \
                    VINGT
#define   ESPACE_UNSETENV                                                                                                               \
                    MAX2(DIX,TRPU(Lchaine_unsetenv))

               DEFV(Positive,INIT(Lchaine_unsetenv,chain_Xtaille(CHAINE_UNSETENV)));
               DEFV(Positive,INIT(Lchaine_EditerFormats,chain_Xtaille(VARIABLE_D_ENVIRONNEMENT_CONTROLANT_L_EDITION_DES_FORMATS)));

                                        /* Evidemment, on ne peut pas encore utiliser 'CAL2(Prin?(...))' ci-apres...                 */
               CAL2(FPrin0(stream_Prin,FLUSHER_LE_FILE,"\n\nATTENTION, faire ensuite imperativement :\n\n\n\n"));
               CAL2(FPrin2(stream_Prin,FLUSHER_LE_FILE,"%*s"
                          ,bADD(TABULATION_UNSETENV,Lchaine_unsetenv)
                          ,CHAINE_UNSETENV
                           )
                    );
               CAL2(FPrin2(stream_Prin,FLUSHER_LE_FILE,"%*s"
                          ,bADD(bSOU(ESPACE_UNSETENV,Lchaine_unsetenv),Lchaine_EditerFormats)
                          ,VARIABLE_D_ENVIRONNEMENT_CONTROLANT_L_EDITION_DES_FORMATS
                           )
                    );
               CAL2(FPrin0(stream_Prin,FLUSHER_LE_FILE,"\n\n\n\n"));
                                        /* Evidemment, on ne peut pas encore utiliser 'CAL2(Prin?(...))' ci-dessus...                */
                                        /*                                                                                           */
                                        /* Voir le 20241107182103 a ce sujet 'v $xE/.alias.2$vv$Y unsetenv..EditerFormats'...        */

                                        /* Je note le 20241108102809 que l'on pourrait peut-etre faire ici un :                      */
                                        /*                                                                                           */
                                        /*                  Exit(PROBLEMES);                                                         */
                                        /*                                                                                           */
                                        /* A voir...                                                                                 */

#undef    ESPACE_UNSETENV
#undef    TABULATION_UNSETENV
#undef    CHAINE_UNSETENV
               Eblock
          ATes
               Bblock
               Eblock
          ETes
          Eblock
     ATes
          Bblock
          Eblock
     ETes

     RETU_VIDE;
     Eblock

#undef    VARIABLE_D_ENVIRONNEMENT_CONTROLANT_L_EDITION_DES_FORMATS
#undef    ALLOCATION____MEMOIRE

#ifndef   GENERATION_____D_UN_SOURCE_C_BOOTSTRAPPABLE
#Aifndef  GENERATION_____D_UN_SOURCE_C_BOOTSTRAPPABLE
                                        /* Introduit le 20210925084234...                                                            */
#    undef     FORMAT_FLOT__________BOOTSTRAPPABLE
#    undef     FORMAT_HEXA_DECIMAL__BOOTSTRAPPABLE
#    undef     FORMAT_INTE__________BOOTSTRAPPABLE
#    undef     FORMAT_CHAI__________BOOTSTRAPPABLE
#    undef     FORMAT_CHAR__________BOOTSTRAPPABLE
#Eifndef  GENERATION_____D_UN_SOURCE_C_BOOTSTRAPPABLE

EFonctionV

BFonctionV

DEFV(Common,DEFV(Logical,INIT(desallocation_memoire_des_format_EGAr_____compteur_de_desallocation_memoire,ZERO)));
                                        /* Introduit le 20180407091122...                                                            */

#define   DESALLOCATION_MEMOIRE(format)                                                                                                 \
                    Bblock                                                                                                              \
                    CALZ_FreCC(format);                                                                                                 \
                                                                                                                                        \
                    INCK(desallocation_memoire_des_format_EGAr_____compteur_de_desallocation_memoire);                                  \
                    Eblock                                                                                                              \
                                        /* Desallocation memoire et comptage...                                                      */

DEFV(Common,DEFV(FonctionV,desallocation_memoire_des_format_EGAr()))
                                        /* Fonction introduite le 20180330115825...                                                  */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
     Bblock
     /*..............................................................................................................................*/

     EGAL(allocation_memoire_et_generation_des_format_EGAr_____initialisation_faite,FAUX);
                                        /* Introduit le 20180401123053...                                                            */

#ifndef   GENERATION_____D_UN_SOURCE_C_BOOTSTRAPPABLE
     DESALLOCATION_MEMOIRE(format_EGAr____FORMAT_INTE_EDITION__NON_SIGNE);
     DESALLOCATION_MEMOIRE(format_EGAr____FORMAT_INTE_EDITION);

     DESALLOCATION_MEMOIRE(format_EGAr____FORMAT_INTE);

     DESALLOCATION_MEMOIRE(format_EGAr____FORMAT_HEXA_DECIMAL_EDITION);
     DESALLOCATION_MEMOIRE(format_EGAr____FORMAT_HEXA_DECIMAL_EDITION_1);

     DESALLOCATION_MEMOIRE(format_EGAr____FORMAT_HEXA_DECIMAL_SANS_0_EDITION);

     DESALLOCATION_MEMOIRE(format_EGAr____FORMAT_HEXA_DECIMAL);

     DESALLOCATION_MEMOIRE(format_EGAr____FORMAT_FLOT_EDITION__NON_SIGNE);
     DESALLOCATION_MEMOIRE(format_EGAr____FORMAT_FLOT_EDITION);

     DESALLOCATION_MEMOIRE(format_EGAr____FORMAT_FLOT);

     DESALLOCATION_MEMOIRE(format_EGAr____FORMAT_CHAR_HEXA_DECIMAL_EDITION);
     DESALLOCATION_MEMOIRE(format_EGAr____FORMAT_CHAR_HEXA_DECIMAL_EDITION_1);

     DESALLOCATION_MEMOIRE(format_EGAr____FORMAT_CHAR_EDITION_BACKSLASHEE);

     DESALLOCATION_MEMOIRE(format_EGAr____FORMAT_CHAR_EDITION);

     DESALLOCATION_MEMOIRE(format_EGAr____FORMAT_CHAI_EDITION);

     DESALLOCATION_MEMOIRE(format_EGAr____FORMAT_CHAI_2);
     DESALLOCATION_MEMOIRE(format_EGAr____FORMAT_CHAI);
                                        /* Ces 'CALZ_FreCC(...)' ont ete introduits le 20180330104223...                             */

                                        /* Le 20180331105055, j'ai voulu mettre ici :                                                */
                                        /*                                                                                           */
                                        /*                  CALZ_FreCC(format_double);                                               */
                                        /*                                                                                           */
                                        /* mais malheureusement, cela ne marche pas car 'desallocation_memoire_des_format_EGAr(...)' */
                                        /* est appele dans 'ABORT_Commande; et 'RETU_Commande' or apres ces deux appels, il y a      */
                                        /* un 'EDITION_DE_LA_VALEUR_DES_COMPTEURS_DE_REFERENCE_LORS_DU__RETU_Commande' qui doit      */
                                        /* avoir besoin de 'format_double'...                                                        */

     Test(IFNE(desallocation_memoire_des_format_EGAr_____compteur_de_desallocation_memoire
              ,allocation_memoire_et_generation_des_format_EGAr_____compteur_d_allocation_memoire
               )
          )
          Bblock
          PRINT_ERREUR("le nombre de desallocations est different du nombre d'allocations");
          CAL1(Prer2("(il y a eu %d allocations et %d desallocations)\n"
                    ,allocation_memoire_et_generation_des_format_EGAr_____compteur_d_allocation_memoire
                    ,desallocation_memoire_des_format_EGAr_____compteur_de_desallocation_memoire
                     )
               );
          Eblock
     ATes
          Bblock
          Eblock
     ETes
#Aifndef  GENERATION_____D_UN_SOURCE_C_BOOTSTRAPPABLE
                                        /* Introduit le 20210924080853 pour supprimer les references en avant des fonctions de       */
                                        /* gestion de chaines de caracteres et d'edition (dans 'v $xig/fonct$vv$FON')...             */
#Eifndef  GENERATION_____D_UN_SOURCE_C_BOOTSTRAPPABLE

     CLIR(allocation_memoire_et_generation_des_format_EGAr_____compteur_d_allocation_memoire);
     CLIR(desallocation_memoire_des_format_EGAr_____compteur_de_desallocation_memoire);
                                        /* Introduit le 20200328134025...                                                            */

     RETU_VIDE;
     Eblock

#undef    DESALLOCATION_MEMOIRE

EFonctionV

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        E D I T I O N   D E   L A   P L U P A R T   D E S   C O M P T E U R S  :                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

BFonctionV

DEFV(Common,DEFV(Logical,SINT(FgEDITION_DE_LA_VALEUR_DE_LA_PLUPART_DES_COMPTEURS_____activer,FAUX)));
                                        /* Introduit le 20180411075320...                                                            */

#define   SAUTS_DE_LIGNES                                                                                                               \
                    Bblock                                                                                                              \
                    CALS(Fsauts_de_lignes(TROIS));                                                                                      \
                    Eblock                                                                                                              \
                                        /* Introduit le 20180413153735...                                                            */

DEFV(Common,DEFV(FonctionV,FgEDITION_DE_LA_VALEUR_DE_LA_PLUPART_DES_COMPTEURS()))
                                        /* Fonction introduite le 20180410205906 et mise ici le 20180413112426 pour simplifier       */
                                        /* les choses (avant cette date, elle etait dans 'v $xig/fonct$vv$FON'...).                  */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
     Bblock
     /*..............................................................................................................................*/

#ifndef   GENERATION_____D_UN_SOURCE_C_BOOTSTRAPPABLE
     Test(IL_FAUT(FgEDITION_DE_LA_VALEUR_DE_LA_PLUPART_DES_COMPTEURS_____activer))
          Bblock
          EDITION_DE_LA_VALEUR_DES_COMPTEURS_D_ACCES_AUX_FONCTIONS_DE_BASE;
          SAUTS_DE_LIGNES;
          EDITION_DE_LA_VALEUR_DES_COMPTEURS_D_ALLOCATION_DESALLOCATION_MEMOIRE;
          SAUTS_DE_LIGNES;
          EDITION_DE_LA_VALEUR_DES_COMPTEURS_D_ENTREE_DES_ARGUMENTS_DES_K_S;
          Eblock
     ATes
          Bblock
          Eblock
     ETes
#Aifndef  GENERATION_____D_UN_SOURCE_C_BOOTSTRAPPABLE
                                        /* Introduit le 20210924080853 pour supprimer les references en avant des fonctions de       */
                                        /* gestion de chaines de caracteres et d'edition (dans 'v $xig/fonct$vv$FON')...             */
#Eifndef  GENERATION_____D_UN_SOURCE_C_BOOTSTRAPPABLE

     RETU_VIDE;
     Eblock

#undef    SAUTS_DE_LIGNES

EFonctionV

_______________________________________________________________________________________________________________________________________



Copyright © Jean-François COLONNA, 2019-2025.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / École polytechnique, Institut Polytechnique de Paris, 2019-2025.