/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N S   D E   L A   G E S T I O N   D E S   F I C H I E R S   " I M A G E S "  :                           */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Definition :                                                                                                               */
/*                                                                                                                                   */
/*                    Ce fichier contient toutes les definitions                                                                     */
/*                  de base de gestion des fichiers de type                                                                          */
/*                  images raster, quelle que soit la definition.                                                                    */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xiii/files$DEF' :                                                                                              */
/*                                                                                                                                   */
/*                    Jean-Francois Colonna (LACTAMME, 19870000000000).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        I N H I B I T I O N   E V E N T U E L L E   D E   L A   M A N I P U L A T I O N                                            */
/*        D E S   C O M P O S A N T E S   D ' U N   O B J E T   E N   C O U L E U R S  :                                             */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   MANIPULER_UNE_COMPOSANTE_OBJET_COULEURS                                                                                       \
                    VRAI
#define   NE_PAS_MANIPULER_UNE_COMPOSANTE_OBJET_COULEURS                                                                                \
                    NOTL(MANIPULER_UNE_COMPOSANTE_OBJET_COULEURS)
                                        /* Pour savoir si une manipulation du fichier d'une composante d'un objet en couleurs        */
                                        /* ("image" ou "palette") doit etre faite ('VRAI') ou pas ('FAUX').                          */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        C O N V E R S I O N   E V E N T U E L L E   D E S   N O M S   E N   V A L E U R S   N U M E R I Q U E S  :                 */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   TENTER_LES_CONVERSIONS_DANS_Iload_image                                                                                       \
                    VRAI
#define   NE_PAS_TENTER_LES_CONVERSIONS_DANS_Iload_image                                                                                \
                    NOTL(TENTER_LES_CONVERSIONS_DANS_Iload_image)
                                        /* Pour savoir si les noms qui ressemblent a des valeurs numeriques dans 'Iload_image(...)'  */
                                        /* peuvent etre utilises comme valeur de tous les points de l'image...                       */

#define   TENTER_LES_CONVERSIONS_DANS_Iacces_image                                                                                      \
                    VRAI
#define   NE_PAS_TENTER_LES_CONVERSIONS_DANS_Iacces_image                                                                               \
                    NOTL(TENTER_LES_CONVERSIONS_DANS_Iacces_image)
                                        /* Pour savoir si les noms qui ressemblent a des valeurs numeriques dans 'Iacces_image(...)' */
                                        /* peuvent etre utilises comme valeur de tous les points de l'image...                       */

#define   TENTER_LES_CONVERSIONS_DANS_IloadF_image                                                                                      \
                    VRAI
#define   NE_PAS_TENTER_LES_CONVERSIONS_DANS_IloadF_image                                                                               \
                    NOTL(TENTER_LES_CONVERSIONS_DANS_IloadF_image)
                                        /* Pour savoir si les noms qui ressemblent a des valeurs numeriques dans 'IloadF_image(...)' */
                                        /* peuvent etre utilises comme valeur de tous les points de l'image...                       */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        G E S T I O N   D U   " D E B O R D E M E N T "   D E S   P I P E S  :                                                     */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   TESTER_LE_DEBORDEMENT_DU_PIPE_DANS_Iload_fichier                                                                              \
                    VRAI
#define   NE_PAS_TESTER_LE_DEBORDEMENT_DU_PIPE_DANS_Iload_fichier                                                                       \
                    NOTL(TESTER_LE_DEBORDEMENT_DU_PIPE_DANS_Iload_fichier)
                                        /* Pour tester si les pipes contiennent des octets residuels apres un 'Iload_fichier(...)'.  */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        P O S I T I O N N E M E N T   A U T O M A T I Q U E   D U   T Y P E   D E S   I M A G E S  :                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   TAILLE_D_UNE_IMAGE_UNDEF                                                                                                      \
                    NEGA(UNDEF)
#define   LES_IMAGES_SONT_ELLES_STANDARDS(les_images_sont_standards,nom_image)                                                          \
                    COND(I3ET(IFNE_chaine(nom_image,NOM_PIPE)                                                                           \
                             ,IFNE_chaine(nom_image,NOM_UNDEF)                                                                          \
                             ,IFNE_chaine(nom_image,NOM_UNDEF_VIDE)                                                                     \
                              )                                                                                                         \
                                        /* Test introduit le 20060314170407 car il manquait dramatiquement comme cela s'est vu a     */ \
                                        /* cette date dans 'v $xiMo/creation$Z  alias.....Timbre'...                                 */ \
                        ,COND(IFOU(IFEQ(Isize_image(nom_image),size_i)                                                                  \
                                  ,IFEQ(Isize_image(nom_image),TAILLE_D_UNE_IMAGE_UNDEF)                                                \
                                   )                                                                                                    \
                             ,VRAI                                                                                                      \
                             ,FAUX                                                                                                      \
                              )                                                                                                         \
                        ,les_images_sont_standards                                                                                      \
                         )
#define   gIles_images_sont_standards(les_images_sont_standards,nom_image)                                                              \
                    Bblock                                                                                                              \
                    EGAL(les_images_sont_standards,LES_IMAGES_SONT_ELLES_STANDARDS(les_images_sont_standards,nom_image));               \
                    Eblock
                                        /* Positionnement automatique de 'les_images_sont_standards' en fonction de la taille de     */
                                        /* l'image 'nom_image' (dispositif introduit le 20060308095708 et inutilise a cette date).   */
                                        /*                                                                                           */
                                        /* Le nom 'CETTE_IMAGE_EST_STANDARD' fut change en 'LES_IMAGES_SONT_ELLES_STANDARDS'         */
                                        /* le 20060309192132, de meme que 'gIles_images_sont_standards(...)' fut change le           */
                                        /* 20060309192741 en gIles_images_sont_elles_standards(...)'...                              */
                                        /*                                                                                           */
                                        /* Le 20060908185715 a ete rajoute un test relatif a 'TAILLE_D_UNE_IMAGE_UNDEF' destine      */
                                        /* principalement au cas ou un nom d'image Argument est en fait une valeur numerique         */
                                        /* d'initialisation (en effet, cela s'etaitr vu a cette date avec 'v $xci/interpole.03$K'    */
                                        /* pour lequel "P=0" transmis a '$xci/format.01$K gIles_images_sont_standards' en tant que   */
                                        /* "A=0" via 'v $xci/ExecSdu$vv$Z .xci.format.01.X') ; au lieu de generer une image standard */
                                        /* NOIR, une image non standard avait ete initialisee...). Ainsi, une image inexistante      */
                                        /* (ce qui est donc le cas lorsque le nom est en fait une valeur numerique...) est assimilee */
                                        /* a une image standard...                                                                   */
                                        /*                                                                                           */
                                        /* Le 20060910101626 'TAILLE_D_UNE_IMAGE_UNDEF' est devenue negative afin de ne pas pouvoir  */
                                        /* correspondre a l'une des tailles possibles...                                             */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        A C C E S   A   U N   F I C H I E R - I M A G E   Q U E L C O N Q U E  :                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   gIload_image(les_images_sont_standards,imageA,FimageA,nom_image)                                                              \
                    COND(EST_VRAI(les_images_sont_standards)                                                                            \
                        ,Iload_image(imageA,nom_image)                                                                                  \
                        ,IloadF_image(FimageA,nom_image)                                                                                \
                         )                                                                                                              \
                                        /* Chargement d'une image quelconque ("standard" ou "flottante").                            */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        A C C E S   A   U N   F I C H I E R - I M A G E   Q U E L C O N Q U E   S I   P R E S E N T  :                             */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   gIload_image_si_present(les_images_sont_standards,imageA,FimageA,nom_image,nom_image_absent,valeur,Fvaleur)                   \
                    COND(EST_VRAI(les_images_sont_standards)                                                                            \
                        ,Iload_image_si_present(imageA,nom_image,nom_image_absent,valeur)                                               \
                        ,IloadF_image_si_present(FimageA,nom_image,nom_image_absent,Fvaleur)                                            \
                         )                                                                                                              \
                                        /* Chargement d'une image quelconque ("standard" ou "flottante") si presente (introduit      */ \
                                        /* le 20120422080407...).                                                                    */

#define   CHARGEMENT_D_UNE_IMAGE_FLOTTANTE_OU_INITIALISATION_EN_CAS_D_ABSENCE(FimageA,nom_image,nom_image_absent,Fvaleur)               \
                                        /* Le 20210130173932, l'ordre des arguments ci-dessus a ete rendu compatible avec celui      */ \
                                        /* de 'gIload_image_si_present(...)'...                                                      */ \
                    Bblock                                                                                                              \
                    Test(PAS_D_ERREUR(CODE_ERROR(IloadF_image_si_present(FimageA,nom_image,nom_image_absent,Fvaleur))))                 \
                         Bblock                                                                                                         \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         Test__CODE_ERREUR__ERREUR07;                                                                                   \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                    Eblock                                                                                                              \
                                        /* Chargement d'une image flottante ou son initialisation en cas d'absence (ceci fut         */ \
                                        /* introduit le 20210130105756...).                                                          */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        A C C E S   A   U N   F I C H I E R - I M A G E   Q U E L C O N Q U E   P U I S   D E S T R U C T I O N  :                 */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   gIload_image_and_delete(les_images_sont_standards,imageA,FimageA,nom_image)                                                   \
                    COND(EST_VRAI(les_images_sont_standards)                                                                            \
                        ,Iload_image_and_delete(imageA,nom_image)                                                                       \
                        ,IloadF_image_and_delete(FimageA,nom_image)                                                                     \
                         )                                                                                                              \
                                        /* Chargement d'une image quelconque ("standard" ou "flottante") puis destruction.           */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        A R C H I V A G E   D ' U N   F I C H I E R   Q U E L C O N Q U E  :                                                       */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   gIstore_image(les_images_sont_standards,nom_image,imageR,FimageR)                                                             \
                    COND(EST_VRAI(les_images_sont_standards)                                                                            \
                        ,Istore_image(nom_image,imageR)                                                                                 \
                        ,IstoreF_image(nom_image,FimageR)                                                                               \
                         )                                                                                                              \
                                        /* Archivage d'une image quelconque ("standard" ou "flottante").                             */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        U P D A T E   D ' U N   F I C H I E R   Q U E L C O N Q U E  :                                                             */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   gIupdate_image(les_images_sont_standards,nom_image,imageR,FimageR)                                                            \
                    COND(EST_VRAI(les_images_sont_standards)                                                                            \
                        ,Iupdate_image(nom_image,imageR)                                                                                \
                        ,IupdateF_image(nom_image,FimageR)                                                                              \
                         )                                                                                                              \
                                        /* "Update" d'une image quelconque ("standard" ou "flottante").                              */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        G E S T I O N   D E S   E R R E U R S   L E S   P L U S   F R E Q U E N T E S  :                                           */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   gTest__CODE_ERREUR__ERREUR07(sequence_s_il_s_agit_de_ERREUR07,sequence_s_il_ne_s_agit_pas_de_ERREUR07)                        \
                    Bblock                                                                                                              \
                    Test(IFEQ(CODE_ERREUR,ERREUR07))                                                                                    \
                         Bblock                                                                                                         \
                         BLOC(sequence_s_il_s_agit_de_ERREUR07);                                                                        \
                                        /* Sequence specifique si 'CODE_ERREUR' vaut 'ERREUR07'...                                   */ \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         BLOC(sequence_s_il_ne_s_agit_pas_de_ERREUR07);                                                                 \
                                        /* Sequence specifique si 'CODE_ERREUR' ne vaut pas 'ERREUR07'...                            */ \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                    Eblock                                                                                                              \
                                        /* Introduit le 20050218090613 afin de generaliser 'Test__CODE_ERREUR__ERREUR07'...          */

#define   Test__CODE_ERREUR__ERREUR07__MESSAGE_1                                                                                        \
                    "le fichier demande"
#define   Test__CODE_ERREUR__ERREUR07__MESSAGE_2                                                                                        \
                    " n'existe pas ou n'est pas de type 'image'"

#define   Test__CODE_ERREUR__ERREUR07                                                                                                   \
                    Bblock                                                                                                              \
                    gTest__CODE_ERREUR__ERREUR07                                                                                        \
                        (BLOC(Bblock                                                                                                    \
                              PRINT_ATTENTION("la fin de flot a ete rencontree lors du chargement d'une 'image'");                      \
                              Eblock                                                                                                    \
                              )                                                                                                         \
                        ,BLOC(Bblock                                                                                                    \
                              DEFV(CHAR,INIT(POINTERc(message_d_erreur),NOM_UNDEF));                                                    \
                                        /* Tout ceci a ete introduit le 20180103100110 afin que le nom du fichier qui a provoque     */ \
                                        /* l'erreur (differente de 'ERREUR07') apparaisse dans le 'PRINT_ERREUR(...)' qui suit,      */ \
                                        /* alors que malheureusement la procedure 'PRINT_ERREUR(...)' n'accepte pas d'autres         */ \
                                        /* arguments que le message d'erreur lui-meme...                                             */ \
                                                                                                                                        \
                              Test(IFNE(VALIDATION_DES_NOMS_DE_FICHIERS_____nom_du_fichier_courant,ADRESSE_NON_ENCORE_DEFINIE))         \
                                   Bblock                                                                                               \
                                   EGAp(message_d_erreur                                                                                \
                                       ,chain_Aconcaten5(Test__CODE_ERREUR__ERREUR07__MESSAGE_1                                         \
                                                        ," '",VALIDATION_DES_NOMS_DE_FICHIERS_____nom_du_fichier_courant,"'"            \
                                                        ,Test__CODE_ERREUR__ERREUR07__MESSAGE_2                                         \
                                                         )                                                                              \
                                        );                                                                                              \
                                                                                                                                        \
                                   CALZ_FreCC(VALIDATION_DES_NOMS_DE_FICHIERS_____nom_du_fichier_courant);                              \
                                   Eblock                                                                                               \
                              ATes                                                                                                      \
                                   Bblock                                                                                               \
                                   PRINT_ATTENTION("le nom du fichier courant n'est pas defini");                                       \
                                                                                                                                        \
                                   EGAp(message_d_erreur                                                                                \
                                       ,chain_Aconcaten2(Test__CODE_ERREUR__ERREUR07__MESSAGE_1                                         \
                                                        ,Test__CODE_ERREUR__ERREUR07__MESSAGE_2                                         \
                                                         )                                                                              \
                                        );                                                                                              \
                                   Eblock                                                                                               \
                              ETes                                                                                                      \
                                                                                                                                        \
                              PRINT_ERREUR(message_d_erreur);                                                                           \
                                                                                                                                        \
                              CALZ_FreCC(message_d_erreur);                                                                             \
                              Eblock                                                                                                    \
                              )                                                                                                         \
                         );                                                                                                             \
                    Eblock                                                                                                              \
                                        /* Introduit le 20050217131248 afin d'alleger les sources de la plupart des programmes...    */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N   D E S   F I C H I E R S   D E   T Y P E   " P I P E "  :                                             */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   NOM_PIPE                                                                                                                      \
                    ARGUMENT_PIPE                                                                                                       \
                                        /* Nom "bidon" donne aux fichiers de type "pipe".                                            */

#if       (         (! defined(SYSTEME_FX2800_CONCENTRIX_FXC))                                                                          \
          &&        (! defined(SYSTEME_FX2800_CONCENTRIX_PCC))                                                                          \
          &&        (! defined(SYSTEME_FX2800_CONCENTRIX_SCC))                                                                          \
          &&        (! defined(SYSTEME_FX40_CONCENTRIX_CC))                                                                             \
          &&        (! defined(SYSTEME_FX40_CONCENTRIX_FXC))                                                                            \
          &&        (! defined(SYSTEME_NWS3000_NEWSOS_CC))                                                                              \
          &&        (! defined(SYSTEME_NWS3000_NEWSOS_2CC))                                                                             \
          &&        (! defined(SYSTEME_SGIND308_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGIND324_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGIND3GA_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGIND408_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGIND424_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGIND4GA_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGIND508_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGIND524_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGIND5GA_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGIND808_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGIND824_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGIND8GA_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGINDA08_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGINDA24_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGINDAGA_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGO200A1_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGO200A2_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGO200A4_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGO25224_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGO252VA_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGO252VN_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGPCM801_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGPCMA01_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SUN3_SUNOS_CC))                                                                                  \
          &&        (! defined(SYSTEME_SUN4_SUNOS_CC))                                                                                  \
          &&        (! defined(SYSTEME_SUN4NCUBE2S_SUNOS_CC))                                                                           \
          &&        (! defined(SYSTEME_SUN4NCUBE2S_SUNOS_NCC))                                                                          \
          &&        (! defined(SYSTEME_VAX9000_ULTRIX_GCC))                                                                             \
           )
#    define    NOM_PIPE_Local                                                                                                           \
                         NOM_PIPE                                                                                                       \
                                        /* Nom statique "bidon" donne aux fichiers de type "pipe".                                   */
#Aif      (         (! defined(SYSTEME_FX2800_CONCENTRIX_FXC))                                                                          \
          &&        (! defined(SYSTEME_FX2800_CONCENTRIX_PCC))                                                                          \
          &&        (! defined(SYSTEME_FX2800_CONCENTRIX_SCC))                                                                          \
          &&        (! defined(SYSTEME_FX40_CONCENTRIX_CC))                                                                             \
          &&        (! defined(SYSTEME_FX40_CONCENTRIX_FXC))                                                                            \
          &&        (! defined(SYSTEME_NWS3000_NEWSOS_CC))                                                                              \
          &&        (! defined(SYSTEME_NWS3000_NEWSOS_2CC))                                                                             \
          &&        (! defined(SYSTEME_SGIND308_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGIND324_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGIND3GA_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGIND408_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGIND424_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGIND4GA_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGIND508_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGIND524_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGIND5GA_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGIND808_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGIND824_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGIND8GA_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGINDA08_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGINDA24_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGINDAGA_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGO200A1_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGO200A2_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGO200A4_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGO25224_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGO252VA_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGO252VN_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGPCM801_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGPCMA01_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SUN3_SUNOS_CC))                                                                                  \
          &&        (! defined(SYSTEME_SUN4_SUNOS_CC))                                                                                  \
          &&        (! defined(SYSTEME_SUN4NCUBE2S_SUNOS_CC))                                                                           \
          &&        (! defined(SYSTEME_SUN4NCUBE2S_SUNOS_NCC))                                                                          \
          &&        (! defined(SYSTEME_VAX9000_ULTRIX_GCC))                                                                             \
           )
#    define    NOM_PIPE_Local                                                                                                           \
                         NOM_UNDEF                                                                                                      \
                                        /* Nom statique d'un pipe. ATTENTION aux 'unsigned char' pointant sur des constantes chaines */ \
                                        /* de caracteres sur certains SYSTEMEs...                                                    */
#Eif      (         (! defined(SYSTEME_FX2800_CONCENTRIX_FXC))                                                                          \
          &&        (! defined(SYSTEME_FX2800_CONCENTRIX_PCC))                                                                          \
          &&        (! defined(SYSTEME_FX2800_CONCENTRIX_SCC))                                                                          \
          &&        (! defined(SYSTEME_FX40_CONCENTRIX_CC))                                                                             \
          &&        (! defined(SYSTEME_FX40_CONCENTRIX_FXC))                                                                            \
          &&        (! defined(SYSTEME_NWS3000_NEWSOS_CC))                                                                              \
          &&        (! defined(SYSTEME_NWS3000_NEWSOS_2CC))                                                                             \
          &&        (! defined(SYSTEME_SGIND308_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGIND324_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGIND3GA_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGIND408_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGIND424_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGIND4GA_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGIND508_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGIND524_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGIND5GA_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGIND808_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGIND824_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGIND8GA_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGINDA08_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGINDA24_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGINDAGA_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGO200A1_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGO200A2_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGO200A4_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGO25224_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGO252VA_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGO252VN_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGPCM801_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SGPCMA01_IRIX_CC))                                                                               \
          &&        (! defined(SYSTEME_SUN3_SUNOS_CC))                                                                                  \
          &&        (! defined(SYSTEME_SUN4_SUNOS_CC))                                                                                  \
          &&        (! defined(SYSTEME_SUN4NCUBE2S_SUNOS_CC))                                                                           \
          &&        (! defined(SYSTEME_SUN4NCUBE2S_SUNOS_NCC))                                                                          \
          &&        (! defined(SYSTEME_VAX9000_ULTRIX_GCC))                                                                             \
           )

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        T A I L L E   D E   Q U E L Q U E S   I M A G E S   " S T A N D A R D "   ( D E B U T )  :                                 */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   TAILLE_D_UNE_IMAGE_STANDARD_Std                                                                                               \
                    TAILLE_D_UN_FICHIER_IMAGE(k___dimXY,size_p)                                                                         \
                                        /* Taille d'une image "standard" de type 'Std'.                                              */

                                        /* ATTENTION, la definition de 'TAILLE_D_UNE_IMAGE_STANDARD_Pal' doit imperativement etre    */
                                        /* dans '$xiidG/fonction.1$DEF' a cause de l'ordre des includes dans '$xi/INCLUDES_min$I'.   */
                                        /* Ainsi, on ne peut ecrire ici :                                                            */
                                        /*                                                                                           */
                                        /*                  #ifdef    dimXYPali                                                      */
                                        /*                  #    define    TAILLE_D_UNE_IMAGE_STANDARD_Pal                        \  */
                                        /*                                           TAILLE_D_UN_FICHIER_IMAGE(dimXYPali,size_p)     */
                                        /*                  #Aifdef   dimXYPali                                                      */
                                        /*                  #Eifdef   dimXYPali                                                      */
                                        /*                                                                                           */
                                        /* car, en effet, dans tous les cas, 'dimXYPali' ne peut qu'etre defini apres...             */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N   D E S   C O M P O S A N T E S   C H R O M A T I Q U E S   E L E M E N T A I R E S                    */
/*        L O R S   D E   L ' U T I L I S A T I O N   D U   S Y S T E M E   ( R , V , B )  :                                         */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
%define   c_ROUGE                                                                                                                       \
                    GvarDefaut("ROUGE",".R")
%define   c_VERTE                                                                                                                       \
                    GvarDefaut("VERTE",".V")
%define   c_BLEUE                                                                                                                       \
                    GvarDefaut("BLEUE",".B")
                                        /* Nota : la forme 'c_XXXXX' est destine a permettre au mieux le travail de l'operateur      */
                                        /* de concatenation  ("`") du pre-processeur, d'ou le '%'.                                   */
                                        /*                                                                                           */
                                        /* A cause de 'v $xcg/remote.01$K shell' l'option 'GvalDefaut(...)' a ete introduite         */
                                        /* le 19971021162819.                                                                        */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N   D E S   C O M P O S A N T E S   C H R O M A T I Q U E S   E L E M E N T A I R E S                    */
/*        L O R S   D E   L ' U T I L I S A T I O N   D U   S Y S T E M E   ( H , L , S )  :                                         */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   c_TEINT                                                                                                                       \
                    GvarDefaut("TEINT",".H")
#define   c_LUMIN                                                                                                                       \
                    GvarDefaut("LUMIN",".L")
#define   c_SATUR                                                                                                                       \
                    GvarDefaut("SATUR",".G")
                                        /* Nota : la forme 'c_XXXXX' est destine a permettre au mieux le travail de l'operateur      */
                                        /* de concatenation  ("`") du pre-processeur...                                              */
                                        /*                                                                                           */
                                        /* A cause de 'v $xcg/remote.01$K shell' l'option  'GvalDefaut(...)' a ete introduite        */
                                        /* le 19971021162819.                                                                        */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N   D E S   V U E S   " O E I L - D R O I T "   E T   " O E I L - G A U C H E "  :                       */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   c_DROITE                                                                                                                      \
                    GvarDefaut("DROITE",".d")
#define   c_GAUCHE                                                                                                                      \
                    GvarDefaut("GAUCHE",".g")
                                        /* Nota : la forme 'c_XXXXX' est destine a permettre au mieux le travail de l'operateur      */
                                        /* de concatenation  ("`") du pre-processeur...                                              */
                                        /*                                                                                           */
                                        /* A cause de 'v $xcg/remote.01$K shell' l'option  'GvalDefaut(...)' a ete introduite        */
                                        /* le 19971021162819.                                                                        */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N   D E S   C O O R D O N N E E S   T R I D I M E N S I O N N E L L E S  :                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
%define   c_COORD_X                                                                                                                     \
                    GvarDefaut("COORD_X",".cX")
%define   c_COORD_Y                                                                                                                     \
                    GvarDefaut("COORD_Y",".cY")
%define   c_COORD_Z                                                                                                                     \
                    GvarDefaut("COORD_Z",".cZ")
                                        /* Ceci fut introduit le 20050907092126 pour 'v $xci/genere$K c_COORD_.'...                  */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N   D E S   S E Q U E N C E S   D ' I M A G E S  :                                                       */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   NOMBRE_DE_CHIFFRES                                                                                                            \
                    QUATRE                                                                                                              \
                                        /* Nombre de chiffres dans le numero d'une image appartenant a une sequence.                 */
#define   PREMIERE_IMAGE_ABSOLUE                                                                                                        \
                    ZERO                                                                                                                \
                                        /* Premiere image d'une sequence ; en fait il se peut qu'elle ne soit pas generee : en       */ \
                                        /* cas de reprise sur defaut (coupure de courant par exemple...), un parametre de nom        */ \
                                        /* 'PREMIERE_IMAGE' (de valeur superieure a celui-ci) pourra etre defini...                  */
#define   DERNIERE_IMAGE_ABSOLUE(nombre_d_images_dans_la_sequence)                                                                      \
                    LSTX(PREMIERE_IMAGE_ABSOLUE,nombre_d_images_dans_la_sequence)                                                       \
                                        /* Derniere image d'une sequence...                                                          */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        G E S T I O N   D E S   F E U X   R O U G E S  :                                                                           */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   RACINE_RELATIVE_DES_FICHIERS_FEU                                                                                              \
                    "CoNtRoLe/feu."                                                                                                     \
                                        /* Nom general relatif des fichiers de type "feu"...                                         */
#define   RACINE_ABSOLUE_DES_FICHIERS_FEU                                                                                               \
                    EGAs(chain_Aconcaten2(directory_images,RACINE_RELATIVE_DES_FICHIERS_FEU))                                           \
                                        /* Nom general absolue des fichiers de type "feu", que l'on doit definir a cause de la       */ \
                                        /* commande 'SYSTEM(...)' qui s'execute sous 'sh'. On notera que depuis peu, la commande     */ \
                                        /* 'SYSTEM(...)' n'est plus utilisee, voir les commentaires de 'ALLUMAGE_D_UN_FEU(...)'.     */
#define   FICHIER_FEU(nom_du_feu,rang_du_feu)                                                                                           \
                    EGAs(chain_Aconcaten3(RACINE_ABSOLUE_DES_FICHIERS_FEU                                                               \
                                         ,EGAs(chain_numero(rang_du_feu,NOMBRE_DE_CHIFFRES))                                            \
                                         ,nom_du_feu                                                                                    \
                                          )                                                                                             \
                         )                                                                                                              \
                                        /* Nom general des fichiers de type "feu"...                                                 */
#define   FICHIER_FEU_VERT(rang_du_feu)                                                                                                 \
                    FICHIER_FEU(c_VERTE,rang_du_feu)                                                                                    \
                                        /* Nom d'un fichier qui, s'il est present dans le directory "images", ne fait rien...        */
#define   FICHIER_FEU_ROUGE(rang_du_feu)                                                                                                \
                    FICHIER_FEU(c_ROUGE,rang_du_feu)                                                                                    \
                                        /* Nom d'un fichier qui, s'il est present dans le directory "images", provoque la            */ \
                                        /* mise en attente du process qui le detecte...                                              */
#define   MESSAGES_D_ERREUR_POUR_LES_FEUX                                                                                               \
                    NE_PAS_EDITER_LES_MESSAGES_D_ERREUR_DES_FICHIERS                                                                    \
                                        /* Il n'y aura pas de messages d'erreur edites pour les feux...                              */
#define   DUREE_DE_L_ATTENTE_AU_FEU_ROUGE                                                                                               \
                    DEUX                                                                                                                \
                                        /* Duree de l'attente au feu (c'est-a-dire avant de le re-tester...).                        */
#define   INITIALISATION_D_UN_FEU(rang_du_feu)                                                                                          \
                    Bblock                                                                                                              \
                    CALS(Fdelete_fichier(FICHIER_FEU_VERT(rang_du_feu),MESSAGES_D_ERREUR_POUR_LES_FEUX));                               \
                    CALS(Fdelete_fichier(FICHIER_FEU_ROUGE(rang_du_feu),MESSAGES_D_ERREUR_POUR_LES_FEUX));                              \
                                        /* Nettoyage du feu...                                                                       */ \
                    Eblock                                                                                                              \
                                        /* Procedure d'initialisation d'un feu...                                                    */
#define   ALLUMAGE_D_UN_FEU(couleur_du_fichier_feu,anti_couleur_du_fichier_feu,rang_du_feu)                                             \
                    Bblock                                                                                                              \
                    CALS(Fstore_fichier_non_formatte(contenu_des_feux_de_signalisation                                                  \
                                                    ,couleur_du_fichier_feu(rang_du_feu)                                                \
                                                    ,chain_taille(contenu_des_feux_de_signalisation)                                    \
                                                    ,size_CHAR                                                                          \
                                                    ,MESSAGES_D_ERREUR_POUR_LES_FEUX                                                    \
                                                     )                                                                                  \
                         );                                                                                                             \
                                        /* On cree au prealable la couleur. ATTENTION, il y avait autrefois :                        */ \
                                        /*                                                                                           */ \
                                        /*        SYSTEM(chain_Aconcaten2(C_DATE                                                     */ \
                                        /*                               ,chain_Aconcaten2(C_REDIRECTION_FICHIER                     */ \
                                        /*                                                ,couleur_du_fichier_feu(rang_du_feu)       */ \
                                        /*                                                 )                                         */ \
                                        /*                                )                                                          */ \
                                        /*               );                                                                          */ \
                                        /*                                                                                           */ \
                                        /* Or cette solution, si elle est simple, possede un gros inconvenient, celui de ne pas      */ \
                                        /* tester les erreurs d'ecriture (par exemple la saturation de l'espace disque). Ainsi,      */ \
                                        /* s'il y a erreur, il peut y avoir par consequent des erreurs de synchronisation, ce qui    */ \
                                        /* peut bien entendu etre catastrophique (voir par exemple 'v $xci/disk_video_P$Z'). Mais    */ \
                                        /* ATTENTION, cette nouvelle solution peu conduire a un inter-blocage "local" : en effet,    */ \
                                        /* par exemple, un programme produit des images et sature l'espace disque ; en parallele,    */ \
                                        /* ces images sont enregistrees, operation bloquee parce que les feux ne peuvent etre mis    */ \
                                        /* en place... Le deblocage ne peut qu'avoir lieu "a la main", en detruisant quelque chose.  */ \
                    CALS(Fdelete_fichier(anti_couleur_du_fichier_feu(rang_du_feu)                                                       \
                                        ,MESSAGES_D_ERREUR_POUR_LES_FEUX                                                                \
                                         )                                                                                              \
                         );                                                                                                             \
                                        /* Puis on efface l'"anti-couleur" ; il apparait que cet ordre des operations est le         */ \
                                        /* moins risque, car n'oublions pas que les deux operations ci-dessus ne forment pas         */ \
                                        /* (malheureusement) une sequence "atomique"...                                              */ \
                    Eblock                                                                                                              \
                                        /* Procedure d'allumage d'un feu...                                                          */
#define   MISE_DU_FEU_AU_VERT(rang_du_feu)                                                                                              \
                    Bblock                                                                                                              \
                    ALLUMAGE_D_UN_FEU(FICHIER_FEU_VERT,FICHIER_FEU_ROUGE,rang_du_feu);                                                  \
                    Eblock                                                                                                              \
                                        /* Procedure de mise du feu au vert...                                                       */
#define   MISE_DU_FEU_AU_ROUGE(rang_du_feu)                                                                                             \
                    Bblock                                                                                                              \
                    ALLUMAGE_D_UN_FEU(FICHIER_FEU_ROUGE,FICHIER_FEU_VERT,rang_du_feu);                                                  \
                    Eblock                                                                                                              \
                                        /* Procedure de mise du feu au rouge...                                                      */
#define   ATTENDRE_AU_FEU_ROUGE_AVEC_DETECTION_DE_TIME_OUT(rang_du_feu,duree_du_time_out,il_y_a_eu_un_time_out)                         \
                    Bblock                                                                                                              \
                    INIT_ERROR;                                                                                                         \
                    DEFV(Int,INIT(detecteur_de_time_out,duree_du_time_out));                                                            \
                                        /* Initialisation du detecteur de "time-out". ATTENTION : il convient d'utiliser ici une     */ \
                                        /* variable 'Int' et non pas une variable 'Positive', car en effet, le rapport entre         */ \
                                        /* 'duree_du_time_out' et 'DUREE_DE_L_ATTENTE_AU_FEU_ROUGE' n'est pas connu a priori, et     */ \
                                        /* donc un passage par zero de 'detecteur_de_time_out' n'est pas garanti : alors cette       */ \
                                        /* derniere risque de toujours rester positive...                                            */ \
                    Tant(IFET(PAS_D_ERREUR(CODE_ERROR(Ftest_fichier(FICHIER_FEU_ROUGE(rang_du_feu)                                      \
                                                                   ,EDITER_LES_MESSAGES_D_ERREUR_DES_FICHIERS                           \
                                                                    )                                                                   \
                                                      )                                                                                 \
                                           )                                                                                            \
                             ,IZGT(detecteur_de_time_out)                                                                               \
                              )                                                                                                         \
                         )                                                                                                              \
                                        /* Nota : on utilise 'Ftest_fichier(...)' car d'une part 'FICHIER_FEU_ROUGE(...)' est un     */ \
                                        /* nom absolu, et que d'autre part, ce fichier n'est pas une image...                        */ \
                         Bblock                                                                                                         \
                         DODO(DUREE_DE_L_ATTENTE_AU_FEU_ROUGE);                                                                         \
                                        /* Tant que le fichier "feu rouge" existe, on attend...                                      */ \
                         DECR(detecteur_de_time_out,DUREE_DE_L_ATTENTE_AU_FEU_ROUGE);                                                   \
                                        /* Et on decompte le temps restant avant de detecter un "time-out"...                        */ \
                         Eblock                                                                                                         \
                    ETan                                                                                                                \
                    Test(IZGT(detecteur_de_time_out))                                                                                   \
                         Bblock                                                                                                         \
                         EGAL(il_y_a_eu_un_time_out,FAUX);                                                                              \
                                        /* Cas ou il n'y a pas de "time-out"...                                                      */ \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         EGAL(il_y_a_eu_un_time_out,VRAI);                                                                              \
                                        /* Cas ou il y a "time-out", on le signale...                                                */ \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                    Eblock                                                                                                              \
                                        /* Procedure d'attente a un feu rouge avec detection de "time-out"...                        */
#define   ABSENCE_DE_DETECTION_DE_TIME_OUT                                                                                              \
                    INFINI                                                                                                              \
                                        /* Valeur a donner a 'duree_du_time_out' pour qu'il n'y ait pas de "time-out" ; en fait, il  */ \
                                        /* y a malgre tout detection de "time-out", mais sa duree est telle (de l'ordre de 68 ans),  */ \
                                        /* que cela n'a plus de sens...                                                              */
#define   ATTENDRE_AU_FEU_ROUGE(rang_du_feu)                                                                                            \
                    Bblock                                                                                                              \
                    DEFV(Logical,INIT(il_y_a_time_out,FAUX));                                                                           \
                                        /* A priori, il n'y a pas de "time-out" (il est theoriquement impossible...).                */ \
                    ATTENDRE_AU_FEU_ROUGE_AVEC_DETECTION_DE_TIME_OUT(rang_du_feu,ABSENCE_DE_DETECTION_DE_TIME_OUT,il_y_a_time_out);     \
                                        /* Et on attend avec une duree de "time-out" infinie...                                      */ \
                    Test(EST_VRAI(il_y_a_time_out))                                                                                     \
                         Bblock                                                                                                         \
                         PRINT_ERREUR("un 'time-out' de duree infinie a ete detecte");                                                  \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                    Eblock                                                                                                              \
                                        /* Procedure d'attente a un feu rouge sans "time-out" (et donc avec possibilite ennuyeuse    */ \
                                        /* de blocage infini...).                                                                    */
#define   FEU_STANDARD                                                                                                                  \
                    Gval("feu_standard")                                                                                                \
                                        /* Feu standard (ou a tout faire...).                                                        */

#define   FEU_D_ARRET_DES_FRACTALES                                                                                                     \
                    Gval("feu_fractales")                                                                                               \
                                        /* Feu permettant de mettre en attente les genarateurs de fractales.                         */

#define   FEU_feu_vide_LX_DE_SYNCHRONISATION_DE_LA_SIMULATION_DES_HADRONS                                                               \
                    Gval("feu_vide_LX")                                                                                                 \
                                        /* Feu de synchronisation du programme 'v $xrq/vide.L0$K'.                                   */
#define   FEU_feu_meson_LX_DE_SYNCHRONISATION_DE_LA_SIMULATION_DES_HADRONS                                                              \
                    Gval("feu_meson_LX")                                                                                                \
                                        /* Feu de synchronisation du programme 'v $xrq/meson.L0$K'.                                  */
#define   FEU_feu_nucleon_LX_DE_SYNCHRONISATION_DE_LA_SIMULATION_DES_HADRONS                                                            \
                    Gval("feu_nucleon_LX")                                                                                              \
                                        /* Feu de synchronisation du programme 'v $xrq/nucleon.L0$K'.                                */
#define   FEU_feu_di_elect_LX_DE_SYNCHRONISATION_DE_LA_SIMULATION_DES_HADRONS                                                           \
                    Gval("feu_di_elect_LX")                                                                                             \
                                        /* Feu de synchronisation du programme 'v $xrq/di_elec.L0$K'.                                */
#define   FEU_feu_proton_JX_DE_SYNCHRONISATION_DE_LA_SIMULATION_DU_PROTON                                                               \
                    Gval("feu_proton_JX")                                                                                               \
                                        /* Feu de synchronisation du programme 'v $xrq/nucleon.L0$K'.                                */
#define   FEU_feu_proton_KX_DE_SYNCHRONISATION_DE_LA_SIMULATION_DU_PROTON                                                               \
                    Gval("feu_proton_KX")                                                                                               \
                                        /* Feu de synchronisation du programme 'v $xrq/nucleon.L0$K'.                                */

#if       (         (defined(SYSTEME_SG4D20G_IRIX))                                                                                     \
          ||        (defined(SYSTEME_SG4D25TG_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SG4D310VGX_IRIX))                                                                                  \
          ||        (defined(SYSTEME_SG4D35TG_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SG4D85GT_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND308_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND324_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND3GA_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND408_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND424_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND4GA_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND508_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND524_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND5GA_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND808_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND824_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND8GA_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGINDA08_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGINDA24_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGINDAGA_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGO200A1_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGO200A2_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGO200A4_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGO25224_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGO252VA_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGO252VN_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGPCM801_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGPCMA01_IRIX))                                                                                    \
           )
#    define    FEU_DE_SYNCHRONISATION_DE_FIN_D_AFFICHAGE_D_IMAGE                                                                        \
                         Gval("feu_display_RVB")                                                                                        \
                                        /* Feu de synchronisation de fin d'affichage d'une image par 'v $xci/display_RVB$K'.         */
#Aif      (         (defined(SYSTEME_SG4D20G_IRIX))                                                                                     \
          ||        (defined(SYSTEME_SG4D25TG_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SG4D310VGX_IRIX))                                                                                  \
          ||        (defined(SYSTEME_SG4D35TG_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SG4D85GT_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND308_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND324_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND3GA_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND408_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND424_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND4GA_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND508_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND524_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND5GA_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND808_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND824_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND8GA_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGINDA08_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGINDA24_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGINDAGA_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGO200A1_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGO200A2_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGO200A4_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGO25224_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGO252VA_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGO252VN_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGPCM801_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGPCMA01_IRIX))                                                                                    \
           )
#Eif      (         (defined(SYSTEME_SG4D20G_IRIX))                                                                                     \
          ||        (defined(SYSTEME_SG4D25TG_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SG4D310VGX_IRIX))                                                                                  \
          ||        (defined(SYSTEME_SG4D35TG_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SG4D85GT_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND308_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND324_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND3GA_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND408_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND424_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND4GA_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND508_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND524_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND5GA_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND808_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND824_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGIND8GA_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGINDA08_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGINDA24_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGINDAGA_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGO200A1_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGO200A2_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGO200A4_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGO25224_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGO252VA_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGO252VN_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGPCM801_IRIX))                                                                                    \
          ||        (defined(SYSTEME_SGPCMA01_IRIX))                                                                                    \
           )

#define   FEU_DE_SYNCHRONISATION_DE_FIN_DES_ENREGISTREMENTS_PAL_BETA                                                                    \
                    Gval("feu_disqueP")                                                                                                 \
                                        /* Feu de synchronisation de fin des enregistrements sur le disque 'PAL-Beta'.               */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        G E S T I O N   D E S   A L B U M S  :                                                                                     */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   NOM_DE_L_IMAGE_COURANTE_D_UNE_SEQUENCE(nom_de_l_image,nom_sequence,postfixe,numero_de_l_image_courante,nombre_de_chiffres)    \
                    Bblock                                                                                                              \
                    EGAp(nom_de_l_image                                                                                                 \
                        ,COND(IFEQ_chaine(postfixe,NOM_UNDEF_VIDE)                                                                      \
                             ,EGAs(chain_Aconcaten2_sauf_nom_pipe(nom_sequence                                                          \
                                                                 ,EGAs(chain_numero(numero_de_l_image_courante,nombre_de_chiffres))     \
                                                                  )                                                                     \
                                   )                                                                                                    \
                             ,EGAs(chain_Aconcaten3_sauf_nom_pipe(nom_sequence                                                          \
                                                                 ,EGAs(chain_numero(numero_de_l_image_courante,nombre_de_chiffres))     \
                                                                 ,postfixe                                                              \
                                                                  )                                                                     \
                                   )                                                                                                    \
                              )                                                                                                         \
                         );                                                                                                             \
                    Eblock                                                                                                              \
                                        /* Generation du nom de l'image courante de l'album.                                         */

#define   INVERSION_DES_NUMEROS_D_IMAGE(inverser,numero,numero_inverse)                                                                 \
                    COND(IL_FAUT(inverser),numero_inverse,numero)                                                                       \
                                        /* Introduit le 20181101090934...                                                            */

#define   GdAload_album(AlbumIm,NomAlbum,Post,Premiere,Pas,NChiffres,Aabsent,nom_absent,attendre,duree,Load,Initialise,VDefaut,Inv,Inc) \
                                        /* L'argument 'Inc' (pour 'Incomplet') a ete introduit le 20120322074924 et a cette          */ \
                                        /* occasion, 'Initialisation' a ete remplace par 'Initialise'...                             */ \
                    Bblock                                                                                                              \
                    DEFV(Int,INIT(numero_de_l_image_courante,Premiere));                                                                \
                    DEFV(Int,INIT(numero_inverse_de_l_image_courante,ADD2(Premiere,TRMU(dimZ))));                                       \
                                        /* Numero de l'image courante initialise sur la premiere image a recuperer. Le numero        */ \
                                        /* "inverse" a ete introduit le 20181101090934...                                            */ \
                                                                                                                                        \
                    BSaveModifyVariable(Int,pasZ,Pas);                                                                                  \
                                        /* Introduit le 20110119134835 car, en effet, il manquait...                                 */ \
                                                                                                                                        \
                    begin_fuite                                                                                                         \
                         Bblock                                                                                                         \
                         DEFV(Int,INIT(Z_effectif,COND(IL_NE_FAUT_PAS(Inv),NEUT(Z),RENZ(Z))));                                          \
                                        /* Cette possibilite d'inverser l'axe 'OZ' a ete introduite le 20091125131531...             */ \
                                                                                                                                        \
                         Test(IFET(EST_VRAI(Aabsent),IFEQ_chaine(NomAlbum,nom_absent)))                                                 \
                                        /* Cette possibilite a ete introduite le 20050621135646...                                   */ \
                              Bblock                                                                                                    \
                              CALS(Initialise(PAGE(AlbumIm,Z_effectif),VDefaut));                                                       \
                              Eblock                                                                                                    \
                         ATes                                                                                                           \
                              Bblock                                                                                                    \
                              DEFV(Int,INIT(code_d_erreur_anterieur,CODE_ERREUR));                                                      \
                                        /* Sauvegarde du code d'erreur avant le 'Load(...)' a venir...                               */ \
                              DEFV(CHAR,INIT(POINTERc(nom_de_l_image_courante),NOM_UNDEF));                                             \
                                        /* Nom courant des images.                                                                   */ \
                                                                                                                                        \
                              NOM_DE_L_IMAGE_COURANTE_D_UNE_SEQUENCE(nom_de_l_image_courante                                            \
                                                                    ,NomAlbum                                                           \
                                                                    ,Post                                                               \
                                                                    ,INVERSION_DES_NUMEROS_D_IMAGE(GdAload_album_____inverser_numeros   \
                                                                                                  ,numero_de_l_image_courante           \
                                                                                                  ,numero_inverse_de_l_image_courante   \
                                                                                                   )                                    \
                                                                    ,NChiffres                                                          \
                                                                     );                                                                 \
                                                                                                                                        \
                              BSaveVariable(Logical,bloquer_tous_les_messages_d_erreur_des_fichiers);                                   \
                                                                                                                                        \
                              Test(EST_VRAI(Inc))                                                                                       \
                                   Bblock                                                                                               \
                                   EGAL(bloquer_tous_les_messages_d_erreur_des_fichiers                                                 \
                                       ,BLOQUER_TOUS_LES_MESSAGES_D_ERREUR_DES_FICHIERS                                                 \
                                        );                                                                                              \
                                        /* Dans le cas ou les albums peuvent etre incomplets, il ne faut editer aucun message        */ \
                                        /* d'erreur (introduit le 20120322141742).                                                   */ \
                                   Eblock                                                                                               \
                              ATes                                                                                                      \
                                   Bblock                                                                                               \
                                   Eblock                                                                                               \
                              ETes                                                                                                      \
                                                                                                                                        \
                              Test(IFET(IL_FAUT(attendre)                                                                               \
                                       ,EST_FAUX(Inc)                                                                                   \
                                        )                                                                                               \
                                   )                                                                                                    \
                                        /* Le test de 'Inc' a ete introduit le 20120322140718...                                     */ \
                                   Bblock                                                                                               \
                                        /* Cas ou l'attente des images inexistantes est demandee :                                   */ \
                                   Tant(IL_Y_A_ERREUR(CODE_ERROR(Load(PAGE(AlbumIm,Z_effectif),nom_de_l_image_courante))))              \
                                        Bblock                                                                                          \
                                        DODO(duree);                                                                                    \
                                        /* Le 20040928093300, cette boucle 'Tant(...)' est devenue une boucle eventuellement         */ \
                                        /* temporisee (si 'duree' est non nulle), alors qu'anterieurement a cette date, il           */ \
                                        /* s'agissait d'une boucle d'attente active (sans l'actuel 'DODO(...)').                     */ \
                                        Eblock                                                                                          \
                                   ETan                                                                                                 \
                                   Eblock                                                                                               \
                              ATes                                                                                                      \
                                   Bblock                                                                                               \
                                        /* Cas ou l'attente des images inexistantes n'est pas demandee, ce cas devant alors etre     */ \
                                        /* considere comme une erreur :                                                              */ \
                                   Test(PAS_D_ERREUR(CODE_ERROR(Load(PAGE(AlbumIm,Z_effectif),nom_de_l_image_courante))))               \
                                        Bblock                                                                                          \
                                        Eblock                                                                                          \
                                   ATes                                                                                                 \
                                        Bblock                                                                                          \
                                        Test(EST_VRAI(Inc))                                                                             \
                                        /* La possibilite d'avoir un album incomplet a ete introduite le 20120322074924...           */ \
                                             Bblock                                                                                     \
                                             CALS(Initialise(PAGE(AlbumIm,Z_effectif),VDefaut));                                        \
                                        /* Une page manquante est initialisee automatiquement et silencieusement...                  */ \
                                             CODE_ERROR(OK);                                                                            \
                                        /* Dans le cas ou l'album peut etre incomplet, il n'y a plus d'erreur (introduit le          */ \
                                        /* 20120322143000).                                                                          */ \
                                             Eblock                                                                                     \
                                        ATes                                                                                            \
                                             Bblock                                                                                     \
                                             gTest__CODE_ERREUR__ERREUR07                                                               \
                                                 (BLOC(Bblock                                                                           \
                                                       PRINT_ATTENTION("fin de flot rencontree lors du chargement d'un 'album'");       \
                                                       Eblock                                                                           \
                                                       )                                                                                \
                                                 ,BLOC(Bblock                                                                           \
                                                       Test(IL_FAUT(files_____editer_les_messages_d_erreur_de_lecture_des_fichiers))    \
                                                            Bblock                                                                      \
                                                            PRINT_ERREUR("probleme de lecture d'un album");                             \
                                                            CAL1(Prer1("son nom est '%s' et les causes possibles sont :\n"              \
                                                                      ,NomAlbum                                                         \
                                                                       )                                                                \
                                                                 );                                                                     \
                                                            CAL1(Prer1("1-la page '%s' n'existe pas ou n'est pas de type 'image',\n"    \
                                                                      ,nom_de_l_image_courante                                          \
                                                                       )                                                                \
                                                                 );                                                                     \
                                                            CAL1(Prer0("2-c'est un 'pipe' et il n'y a pas assez d'octets a lire "));    \
                                                            CAL1(Prer0("(venant, par exemple, d'un mauvais dimensionnement).\n"));      \
                                                            Eblock                                                                      \
                                                       ATes                                                                             \
                                                            Bblock                                                                      \
                                                            Eblock                                                                      \
                                                       ETes                                                                             \
                                                       Eblock                                                                           \
                                                       )                                                                                \
                                                  );                                                                                    \
                                             Eblock                                                                                     \
                                        ETes                                                                                            \
                                        Eblock                                                                                          \
                                   ETes                                                                                                 \
                                   Eblock                                                                                               \
                              ETes                                                                                                      \
                                                                                                                                        \
                              ESaveVariable(Logical,bloquer_tous_les_messages_d_erreur_des_fichiers);                                   \
                                                                                                                                        \
                              CALZ_FreCC(nom_de_l_image_courante);                                                                      \
                                                                                                                                        \
                              INCR(numero_de_l_image_courante,Pas);                                                                     \
                              DECR(numero_inverse_de_l_image_courante,Pas);                                                             \
                                        /* Numero de l'image suivante a recuperer...                                                 */ \
                                                                                                                                        \
                              CODE_ERROR(COND(IL_Y_A_ERREUR(CODE_ERREUR),CODE_ERREUR,code_d_erreur_anterieur));                         \
                                        /* S'il y a eu erreur dans le 'Load(...)' precedent, c'est ce dernier code d'erreur          */ \
                                        /* qui est renvoye, sinon, c'est le code d'erreur anterieur (c'est-a-dire tel qu'il etait    */ \
                                        /* avant le 'Load(...)' precedent) qui l'est...                                              */ \
                              Eblock                                                                                                    \
                         ETes                                                                                                           \
                         Eblock                                                                                                         \
                    end_fuite                                                                                                           \
                                                                                                                                        \
                    ESaveModifyVariable(Int,pasZ);                                                                                      \
                                        /* Introduit le 20110119134835 car, en effet, il manquait...                                 */ \
                    Eblock                                                                                                              \
                                        /* Chargement d'un album d'images quelconque...                                              */

#define   dAload_album(album_images,nom_de_l_album,postfixe,premiere_image,pas_des_images,NChiff,attendre,duree,Inv)                    \
                    Bblock                                                                                                              \
                    GdAload_album(album_images                                                                                          \
                                 ,nom_de_l_album                                                                                        \
                                 ,postfixe                                                                                              \
                                 ,premiere_image                                                                                        \
                                 ,pas_des_images                                                                                        \
                                 ,NChiff                                                                                                \
                                 ,FAUX                                                                                                  \
                                 ,NOM_UNDEF                                                                                             \
                                 ,attendre,duree                                                                                        \
                                 ,Iload_image                                                                                           \
                                 ,Iinitialisation                                                                                       \
                                 ,NIVEAU_UNDEF                                                                                          \
                                 ,Inv                                                                                                   \
                                 ,FAUX                                                                                                  \
                                  );                                                                                                    \
                    Eblock                                                                                                              \
                                        /* Chargement d'un album d'images "standard" devant etre present...                          */
#define   idAload_album(album_images,nom_de_l_album,postfixe,premiere_image,pas_des_images,NChiff,attendre,duree,Inv,Inc,ValInc)        \
                    Bblock                                                                                                              \
                    GdAload_album(album_images                                                                                          \
                                 ,nom_de_l_album                                                                                        \
                                 ,postfixe                                                                                              \
                                 ,premiere_image                                                                                        \
                                 ,pas_des_images                                                                                        \
                                 ,NChiff                                                                                                \
                                 ,FAUX                                                                                                  \
                                 ,NOM_UNDEF                                                                                             \
                                 ,attendre,duree                                                                                        \
                                 ,Iload_image                                                                                           \
                                 ,Iinitialisation                                                                                       \
                                 ,ValInc                                                                                                \
                                 ,Inv                                                                                                   \
                                 ,Inc                                                                                                   \
                                  );                                                                                                    \
                    Eblock                                                                                                              \
                                        /* Chargement d'un album d'images "standard" devant etre present, mais pouvant etre          */ \
                                        /* incomplet (introduit le 20120322084948)...                                                */
#define   gdAload_album(album_images,nom_de_l_album,postfixe,Premiere,pas_des_images,NChiff,nom_absent,attendre,duree,VDefaut,Inv)      \
                    Bblock                                                                                                              \
                    GdAload_album(album_images                                                                                          \
                                 ,nom_de_l_album                                                                                        \
                                 ,postfixe                                                                                              \
                                 ,Premiere                                                                                              \
                                 ,pas_des_images                                                                                        \
                                 ,NChiff                                                                                                \
                                 ,VRAI                                                                                                  \
                                 ,nom_absent                                                                                            \
                                 ,attendre,duree                                                                                        \
                                 ,Iload_image                                                                                           \
                                 ,Iinitialisation                                                                                       \
                                 ,VDefaut                                                                                               \
                                 ,Inv                                                                                                   \
                                 ,FAUX                                                                                                  \
                                  );                                                                                                    \
                    Eblock                                                                                                              \
                                        /* Chargement d'un album d'images "standard" pouvant etre absent...                          */

#define   dAloadF_album(album_images,nom_de_l_album,postfixe,premiere_image,pas_des_images,NChiff,attendre,duree,Inv)                   \
                    Bblock                                                                                                              \
                    GdAload_album(album_images                                                                                          \
                                 ,nom_de_l_album                                                                                        \
                                 ,postfixe                                                                                              \
                                 ,premiere_image                                                                                        \
                                 ,pas_des_images                                                                                        \
                                 ,NChiff                                                                                                \
                                 ,FAUX                                                                                                  \
                                 ,NOM_UNDEF                                                                                             \
                                 ,attendre,duree                                                                                        \
                                 ,IloadF_image                                                                                          \
                                 ,IFinitialisation                                                                                      \
                                 ,FLOT__UNDEF                                                                                           \
                                 ,Inv                                                                                                   \
                                 ,FAUX                                                                                                  \
                                  );                                                                                                    \
                    Eblock                                                                                                              \
                                        /* Chargement d'un album d'images "flottant" devant etre present...                          */
#define   idAloadF_album(album_images,nom_de_l_album,postfixe,premiere_image,pas_des_images,NChiff,attendre,duree,Inv,Inc,ValInc)       \
                    Bblock                                                                                                              \
                    GdAload_album(album_images                                                                                          \
                                 ,nom_de_l_album                                                                                        \
                                 ,postfixe                                                                                              \
                                 ,premiere_image                                                                                        \
                                 ,pas_des_images                                                                                        \
                                 ,NChiff                                                                                                \
                                 ,FAUX                                                                                                  \
                                 ,NOM_UNDEF                                                                                             \
                                 ,attendre,duree                                                                                        \
                                 ,IloadF_image                                                                                          \
                                 ,IFinitialisation                                                                                      \
                                 ,ValInc                                                                                                \
                                 ,Inv                                                                                                   \
                                 ,Inc                                                                                                   \
                                  );                                                                                                    \
                    Eblock                                                                                                              \
                                        /* Chargement d'un album d'images "flottant" devant etre present, mais pouvant etre          */ \
                                        /* incomplet (introduit le 20120322084948)...                                                */
#define   gdAloadF_album(album_images,nom_de_l_album,postfixe,Premiere,pas_des_images,NChiff,nom_absent,attendre,duree,VDefaut,Inv)     \
                    Bblock                                                                                                              \
                    GdAload_album(album_images                                                                                          \
                                 ,nom_de_l_album                                                                                        \
                                 ,postfixe                                                                                              \
                                 ,Premiere                                                                                              \
                                 ,pas_des_images                                                                                        \
                                 ,NChiff                                                                                                \
                                 ,VRAI                                                                                                  \
                                 ,nom_absent                                                                                            \
                                 ,attendre,duree                                                                                        \
                                 ,IloadF_image                                                                                          \
                                 ,IFinitialisation                                                                                      \
                                 ,VDefaut                                                                                               \
                                 ,Inv                                                                                                   \
                                 ,FAUX                                                                                                  \
                                  );                                                                                                    \
                    Eblock                                                                                                              \
                                        /* Chargement d'un album d'images "flottant" pouvant etre absent...                          */

#define   GdAupdate_album(nom_de_l_album,postfixe,premiere_image,pas_des_images,album_d_images,nombre_de_chiffres,update,Inv)           \
                    Bblock                                                                                                              \
                    DEFV(Int,INIT(numero_de_l_image_courante,premiere_image));                                                          \
                    DEFV(Int,INIT(numero_inverse_de_l_image_courante,ADD2(premiere_image,TRMU(dimZ))));                                 \
                                        /* Numero de l'image courante initialise sur la premiere image a recuperer. Le numero        */ \
                                        /* "inverse" a ete introduit le 20181101090934...                                            */ \
                                                                                                                                        \
                    begin_fuite                                                                                                         \
                         Bblock                                                                                                         \
                         DEFV(Int,INIT(Z_effectif,COND(IL_NE_FAUT_PAS(Inv),NEUT(Z),RENZ(Z))));                                          \
                                        /* Cette possibilite d'inverser l'axe 'OZ' a ete introduite le 20100624082847...             */ \
                                                                                                                                        \
                         DEFV(CHAR,INIT(POINTERc(nom_de_l_image_courante),NOM_UNDEF));                                                  \
                                        /* Nom courant des images.                                                                   */ \
                                                                                                                                        \
                         NOM_DE_L_IMAGE_COURANTE_D_UNE_SEQUENCE(nom_de_l_image_courante                                                 \
                                                               ,nom_de_l_album                                                          \
                                                               ,postfixe                                                                \
                                                               ,INVERSION_DES_NUMEROS_D_IMAGE(GdAupdate_album_____inverser_numeros      \
                                                                                             ,numero_de_l_image_courante                \
                                                                                             ,numero_inverse_de_l_image_courante        \
                                                                                              )                                         \
                                                               ,nombre_de_chiffres                                                      \
                                                                );                                                                      \
                                                                                                                                        \
                         CALS(update(nom_de_l_image_courante,PAGE(album_d_images,Z_effectif)));                                         \
                         CALZ_FreCC(nom_de_l_image_courante);                                                                           \
                                                                                                                                        \
                         INCR(numero_de_l_image_courante,pas_des_images);                                                               \
                         DECR(numero_inverse_de_l_image_courante,pas_des_images);                                                       \
                                        /* Numero de l'image suivante a generer...                                                   */ \
                         Eblock                                                                                                         \
                    end_fuite                                                                                                           \
                    Eblock                                                                                                              \
                                        /* Mise a jour d'un album d'images.                                                          */
#define   dAupdate_album(nom_de_l_album,postfixe,premiere_image,pas_des_images,album_d_images,nombre_de_chiffres,Inv)                   \
                    Bblock                                                                                                              \
                    GdAupdate_album(nom_de_l_album                                                                                      \
                                   ,postfixe                                                                                            \
                                   ,premiere_image                                                                                      \
                                   ,pas_des_images                                                                                      \
                                   ,album_d_images                                                                                      \
                                   ,nombre_de_chiffres                                                                                  \
                                   ,Iupdate_image                                                                                       \
                                   ,Inv                                                                                                 \
                                    );                                                                                                  \
                    Eblock                                                                                                              \
                                        /* Mise a jour d'un album d'images "standard".                                               */
#define   dAupdateF_album(nom_de_l_album,postfixe,premiere_image,pas_des_images,album_d_images,nombre_de_chiffres,Inv)                  \
                    Bblock                                                                                                              \
                    GdAupdate_album(nom_de_l_album                                                                                      \
                                   ,postfixe                                                                                            \
                                   ,premiere_image                                                                                      \
                                   ,pas_des_images                                                                                      \
                                   ,album_d_images                                                                                      \
                                   ,nombre_de_chiffres                                                                                  \
                                   ,IupdateF_image                                                                                      \
                                   ,Inv                                                                                                 \
                                    );                                                                                                  \
                    Eblock                                                                                                              \
                                        /* Mise a jour d'un album d'images "flottant".                                               */



Copyright © Jean-François Colonna, 2019-2021.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / Ecole Polytechnique, 2019-2021.