_______________________________________________________________________________________________________________________________________
/*************************************************************************************************************************************/
/* */
/* 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.