Annotation of rpl/src/interface_gnuplot.c, revision 1.1

1.1     ! bertrand    1: /*
        !             2: ================================================================================
        !             3:   RPL/2 (R) version 4.0.9
        !             4:   Copyright (C) 1989-2010 Dr. BERTRAND Joël
        !             5: 
        !             6:   This file is part of RPL/2.
        !             7: 
        !             8:   RPL/2 is free software; you can redistribute it and/or modify it
        !             9:   under the terms of the CeCILL V2 License as published by the french
        !            10:   CEA, CNRS and INRIA.
        !            11:  
        !            12:   RPL/2 is distributed in the hope that it will be useful, but WITHOUT
        !            13:   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
        !            14:   FITNESS FOR A PARTICULAR PURPOSE.  See the CeCILL V2 License
        !            15:   for more details.
        !            16:  
        !            17:   You should have received a copy of the CeCILL License
        !            18:   along with RPL/2. If not, write to info@cecill.info.
        !            19: ================================================================================
        !            20: */
        !            21: 
        !            22: 
        !            23: #include "rpl.conv.h"
        !            24: #include "gnuplot.conv.h"
        !            25: 
        !            26: #ifdef DEBUG
        !            27: #  define fprintf(flux, ...) ({ printf(__VA_ARGS__); \
        !            28:        fprintf(flux, __VA_ARGS__); })
        !            29: #endif
        !            30: 
        !            31: 
        !            32: /*
        !            33: ================================================================================
        !            34:   Fonction 'appel_gnuplot'
        !            35: ================================================================================
        !            36:   Entrées : persistance  'E' écran, 'N' normal, 'I' impression, 'F' fichier
        !            37: --------------------------------------------------------------------------------
        !            38:   Sorties : néant
        !            39: --------------------------------------------------------------------------------
        !            40:   Effets de bord : néant
        !            41: ================================================================================
        !            42: */
        !            43: 
        !            44: void
        !            45: appel_gnuplot(struct_processus *s_etat_processus, unsigned char persistance)
        !            46: {
        !            47:    file                        *entree_standard;
        !            48:    file                        *fichier_destination;
        !            49:    file                        *fichier_image;
        !            50:    file                        *fichier_impression;
        !            51:    file                        *fichier_source;
        !            52: 
        !            53:    int                         caractere;
        !            54: 
        !            55:    logical1                    adequation_fichier;
        !            56: 
        !            57:    long                        compteur_nombre_fichiers;
        !            58: 
        !            59:    real8                       phi;
        !            60:    real8                       theta;
        !            61: 
        !            62:    struct_fichier_graphique    *l_ancienne_base_liste;
        !            63:    struct_fichier_graphique    *l_base_liste;
        !            64:    struct_fichier_graphique    *l_fichier_courant;
        !            65: 
        !            66:    struct_marque               *l_marque;
        !            67: 
        !            68:    unsigned char               *nom_fichier;
        !            69:    unsigned char               *commande_gnuplot;
        !            70: 
        !            71: #  ifndef GNUPLOT_SUPPORT
        !            72:        if ((*s_etat_processus).langue == 'F')
        !            73:        {
        !            74:            printf("+++Attention : Support de GnuPlot non compilé !\n");
        !            75:        }
        !            76:        else
        !            77:        {
        !            78:            printf("+++Warning : GnuPlot not available !\n");
        !            79:        }
        !            80: 
        !            81:        fflush(stdout);
        !            82: 
        !            83:        return;
        !            84: #  endif
        !            85:    
        !            86:    /*
        !            87:     * Comptage du nombre des fichiers et superposition le cas échéant
        !            88:     */
        !            89: 
        !            90:    l_fichier_courant = (*s_etat_processus).fichiers_graphiques;
        !            91:    compteur_nombre_fichiers = 0;
        !            92:    nom_fichier = NULL;
        !            93: 
        !            94:    while(l_fichier_courant != NULL)
        !            95:    {
        !            96:        compteur_nombre_fichiers++;
        !            97:        l_fichier_courant = (*l_fichier_courant).suivant;
        !            98:    }
        !            99: 
        !           100:    if (compteur_nombre_fichiers > ds_gnuplot_nombre_max_fichiers)
        !           101:    {
        !           102:        if ((*s_etat_processus).langue == 'F')
        !           103:        {
        !           104:            printf("+++Attention : Réduction du nombre de plans\n");
        !           105:        }
        !           106:        else
        !           107:        {
        !           108:            printf("+++Warning : Graphical depth reduction\n");
        !           109:        }
        !           110: 
        !           111:        l_base_liste = (*s_etat_processus).fichiers_graphiques;
        !           112:        (*s_etat_processus).fichiers_graphiques = NULL;
        !           113: 
        !           114:        while(l_base_liste != NULL)
        !           115:        {
        !           116:            l_fichier_courant = (*s_etat_processus).fichiers_graphiques;
        !           117:            adequation_fichier = d_faux;
        !           118: 
        !           119:            while(l_fichier_courant != NULL)
        !           120:            {
        !           121:                if ((strcmp((*l_fichier_courant).type, (*l_base_liste).type)
        !           122:                        == 0) && ((*l_fichier_courant).systeme_axes ==
        !           123:                        (*l_base_liste).systeme_axes))
        !           124:                {
        !           125:                    adequation_fichier = d_vrai;
        !           126:                    break;
        !           127:                }
        !           128: 
        !           129:                l_fichier_courant = (*l_fichier_courant).suivant;
        !           130:            }
        !           131: 
        !           132:            if (adequation_fichier == d_vrai)
        !           133:            {
        !           134:                if ((fichier_source = fopen((*l_base_liste).nom, "r"))
        !           135:                        == NULL)
        !           136:                {
        !           137:                    (*s_etat_processus).erreur_systeme = d_es_erreur_fichier;
        !           138:                    return;
        !           139:                }
        !           140: 
        !           141:                if ((fichier_destination = fopen((*l_fichier_courant).nom,
        !           142:                        "a")) == NULL)
        !           143:                {
        !           144:                    (*s_etat_processus).erreur_systeme = d_es_erreur_fichier;
        !           145:                    return;
        !           146:                }
        !           147: 
        !           148:                if (fprintf(fichier_destination, "\n") < 0)
        !           149:                {
        !           150:                    (*s_etat_processus).erreur_systeme = d_es_erreur_fichier;
        !           151:                    return;
        !           152:                }
        !           153: 
        !           154:                while((caractere = getc(fichier_source)) != EOF)
        !           155:                {
        !           156:                    if (putc(caractere, fichier_destination) == EOF)
        !           157:                    {
        !           158:                        (*s_etat_processus).erreur_systeme =
        !           159:                                d_es_erreur_fichier;
        !           160:                        return;
        !           161:                    }
        !           162:                }
        !           163: 
        !           164:                if (fclose(fichier_source) != 0)
        !           165:                {
        !           166:                    (*s_etat_processus).erreur_systeme = d_es_erreur_fichier;
        !           167:                    return;
        !           168:                }
        !           169:                
        !           170:                if (fclose(fichier_destination) != 0)
        !           171:                {
        !           172:                    (*s_etat_processus).erreur_systeme = d_es_erreur_fichier;
        !           173:                    return;
        !           174:                }
        !           175: 
        !           176:                if (((*l_fichier_courant).presence_axes == d_vrai) ||
        !           177:                        ((*l_base_liste).presence_axes == d_vrai))
        !           178:                {
        !           179:                    (*l_fichier_courant).presence_axes = d_vrai;
        !           180:                }
        !           181:                else
        !           182:                {
        !           183:                    (*l_fichier_courant).presence_axes = d_faux;
        !           184:                }
        !           185: 
        !           186:                if (destruction_fichier((*l_base_liste).nom) == d_erreur)
        !           187:                {
        !           188:                    (*s_etat_processus).erreur_systeme = d_es_erreur_fichier;
        !           189:                    return;
        !           190:                }
        !           191: 
        !           192:                free((*l_base_liste).nom);
        !           193: 
        !           194:                if ((*l_base_liste).legende != NULL)
        !           195:                {
        !           196:                    free((*l_base_liste).legende);
        !           197:                }
        !           198:            }
        !           199:            else
        !           200:            {
        !           201:                l_fichier_courant = (*s_etat_processus).fichiers_graphiques;
        !           202: 
        !           203:                if (l_fichier_courant == NULL)
        !           204:                {
        !           205:                    if (((*s_etat_processus).fichiers_graphiques =
        !           206:                            (struct_fichier_graphique *) malloc(
        !           207:                            sizeof(struct_fichier_graphique))) == NULL)
        !           208:                    {
        !           209:                        (*s_etat_processus).erreur_systeme =
        !           210:                                d_es_allocation_memoire;
        !           211:                        return;
        !           212:                    }
        !           213: 
        !           214:                    (*(*s_etat_processus).fichiers_graphiques).suivant = NULL;
        !           215:                    (*(*s_etat_processus).fichiers_graphiques).nom =
        !           216:                            (*l_base_liste).nom;
        !           217:                    (*(*s_etat_processus).fichiers_graphiques).legende = NULL;
        !           218:                    (*(*s_etat_processus).fichiers_graphiques).presence_axes =
        !           219:                            (*l_base_liste).presence_axes;
        !           220:                    strcpy((*(*s_etat_processus).fichiers_graphiques).type,
        !           221:                            (*l_base_liste).type);
        !           222:                    (*(*s_etat_processus).fichiers_graphiques).dimensions =
        !           223:                            (*l_base_liste).dimensions;
        !           224:                }
        !           225:                else
        !           226:                {
        !           227:                    while((*l_fichier_courant).suivant != NULL)
        !           228:                    {
        !           229:                        l_fichier_courant = (*l_fichier_courant).suivant;
        !           230:                    }
        !           231: 
        !           232:                    if (((*l_fichier_courant).suivant =
        !           233:                            (struct_fichier_graphique *) malloc(
        !           234:                            sizeof(struct_fichier_graphique))) == NULL)
        !           235:                    {
        !           236:                        (*s_etat_processus).erreur_systeme =
        !           237:                                d_es_allocation_memoire;
        !           238:                        return;
        !           239:                    }
        !           240: 
        !           241:                    l_fichier_courant = (*l_fichier_courant).suivant;
        !           242: 
        !           243:                    (*l_fichier_courant).suivant = NULL;
        !           244:                    (*l_fichier_courant).nom = (*l_base_liste).nom;
        !           245:                    (*l_fichier_courant).legende = NULL;
        !           246:                    (*l_fichier_courant).presence_axes = d_faux;
        !           247:                    strcpy((*l_fichier_courant).type, (*l_base_liste).type);
        !           248:                    (*(*s_etat_processus).fichiers_graphiques).dimensions =
        !           249:                            (*l_base_liste).dimensions;
        !           250:                }
        !           251:            }
        !           252: 
        !           253:            l_ancienne_base_liste = l_base_liste;
        !           254:            l_base_liste = (*l_base_liste).suivant;
        !           255:            free(l_ancienne_base_liste);
        !           256:        }
        !           257:    }
        !           258: 
        !           259:    /*
        !           260:     * Traitement du cas où l'afficheur n'est pas persistant
        !           261:     */
        !           262: 
        !           263:    if (persistance == 'N')
        !           264:    {
        !           265:        entree_standard = NULL;
        !           266: 
        !           267:        if ((*s_etat_processus).entree_standard == NULL)
        !           268:        {
        !           269: #ifdef FORCE_GNUPLOT_PATH
        !           270:            if ((commande_gnuplot = malloc((strlen(d_exec_path) + 6 +
        !           271:                    strlen(ds_gnuplot_commande)) * sizeof(unsigned char)))
        !           272:                    == NULL)
        !           273:            {
        !           274:                (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
        !           275:                return;
        !           276:            }
        !           277: 
        !           278:            sprintf(commande_gnuplot, "%s/bin/%s", d_exec_path,
        !           279:                    ds_gnuplot_commande);
        !           280: #else
        !           281:            if ((commande_gnuplot = malloc((1 +
        !           282:                    strlen(ds_gnuplot_commande)) * sizeof(unsigned char)))
        !           283:                    == NULL)
        !           284:            {
        !           285:                (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
        !           286:                return;
        !           287:            }
        !           288: 
        !           289:            sprintf(commande_gnuplot, "%s", ds_gnuplot_commande);
        !           290: #endif
        !           291: 
        !           292:            if (((*s_etat_processus).entree_standard =
        !           293:                    popen(commande_gnuplot, "w")) == NULL)
        !           294:            {
        !           295:                (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
        !           296:                return;
        !           297:            }
        !           298: 
        !           299:            free(commande_gnuplot);
        !           300: 
        !           301:            if (fprintf((*s_etat_processus).entree_standard,
        !           302:                    "%s\n", ds_gnuplot_terminal_defaut) < 0)
        !           303:            {
        !           304:                (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
        !           305:                return;
        !           306:            }
        !           307:        }
        !           308: 
        !           309:        if (strlen((*s_etat_processus).titre) > 0)
        !           310:        {
        !           311:            if (fprintf((*s_etat_processus).entree_standard,
        !           312:                    "set title \"%s\"\n", (*s_etat_processus).titre) < 0)
        !           313:            {
        !           314:                (*s_etat_processus).erreur_systeme = d_es_processus;
        !           315:                return;
        !           316:            }
        !           317:        }
        !           318:    }
        !           319:    else if (persistance == 'E') /* Ecran */
        !           320:    {
        !           321:        entree_standard = (*s_etat_processus).entree_standard;
        !           322: 
        !           323: #if FORCE_GNUPLOT_PATH
        !           324:        if ((commande_gnuplot = malloc((strlen(d_exec_path) + 6 +
        !           325:                strlen(ds_gnuplot_commande_persistante)) *
        !           326:                sizeof(unsigned char))) == NULL)
        !           327:        {
        !           328:            (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
        !           329:            return;
        !           330:        }
        !           331: 
        !           332:        sprintf(commande_gnuplot, "%s/bin/%s", d_exec_path,
        !           333:                ds_gnuplot_commande_persistante);
        !           334: #else
        !           335:        if ((commande_gnuplot = malloc((1 +
        !           336:                strlen(ds_gnuplot_commande_persistante)) *
        !           337:                sizeof(unsigned char))) == NULL)
        !           338:        {
        !           339:            (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
        !           340:            return;
        !           341:        }
        !           342: 
        !           343:        sprintf(commande_gnuplot, "%s", ds_gnuplot_commande_persistante);
        !           344: #endif
        !           345: 
        !           346:        if (((*s_etat_processus).entree_standard =
        !           347:                popen(commande_gnuplot, "w")) == NULL)
        !           348:        {
        !           349:            (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
        !           350:            return;
        !           351:        }
        !           352: 
        !           353:        free(commande_gnuplot);
        !           354: 
        !           355:        if (fprintf((*s_etat_processus).entree_standard,
        !           356:                "%s\n", ds_gnuplot_terminal_defaut) < 0)
        !           357:        {
        !           358:            (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
        !           359:            return;
        !           360:        }
        !           361: 
        !           362:        if (strlen((*s_etat_processus).titre) > 0)
        !           363:        {
        !           364:            if (fprintf((*s_etat_processus).entree_standard,
        !           365:                    "set title \"%s\"\n", (*s_etat_processus).titre) < 0)
        !           366:            {
        !           367:                (*s_etat_processus).erreur_systeme = d_es_processus;
        !           368:                return;
        !           369:            }
        !           370:        }
        !           371:    }
        !           372:    else if (persistance == 'I') /* Imprimante */
        !           373:    {
        !           374:        entree_standard = (*s_etat_processus).entree_standard;
        !           375: 
        !           376: #ifdef FORCE_GNUPLOT_PATH
        !           377:        if ((commande_gnuplot = malloc((strlen(d_exec_path) + 6 +
        !           378:                strlen(ds_gnuplot_commande)) * sizeof(unsigned char)))
        !           379:                == NULL)
        !           380:        {
        !           381:            (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
        !           382:            return;
        !           383:        }
        !           384: 
        !           385:        sprintf(commande_gnuplot, "%s/bin/%s", d_exec_path,
        !           386:                ds_gnuplot_commande);
        !           387: #else
        !           388:        if ((commande_gnuplot = malloc((1 +
        !           389:                strlen(ds_gnuplot_commande)) * sizeof(unsigned char)))
        !           390:                == NULL)
        !           391:        {
        !           392:            (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
        !           393:            return;
        !           394:        }
        !           395: 
        !           396:        sprintf(commande_gnuplot, "%s", ds_gnuplot_commande);
        !           397: #endif
        !           398: 
        !           399:        if (((*s_etat_processus).entree_standard =
        !           400:                popen(commande_gnuplot, "w")) == NULL)
        !           401:        {
        !           402:            (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
        !           403:            return;
        !           404:        }
        !           405: 
        !           406:        free(commande_gnuplot);
        !           407: 
        !           408:        if (fprintf((*s_etat_processus).entree_standard,
        !           409:                "%s\n", ds_gnuplot_terminal_defaut) < 0)
        !           410:        {
        !           411:            (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
        !           412:            return;
        !           413:        }
        !           414: 
        !           415:        if ((nom_fichier = creation_nom_fichier(s_etat_processus,
        !           416:                (*s_etat_processus).chemin_fichiers_temporaires)) == NULL)
        !           417:        {
        !           418:            (*s_etat_processus).erreur_systeme = d_es_erreur_fichier;
        !           419:            return;
        !           420:        }
        !           421: 
        !           422:        if (fprintf((*s_etat_processus).entree_standard,
        !           423:                "set terminal latex\n") < 0)
        !           424:        {
        !           425:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !           426:            return;
        !           427:        }
        !           428: 
        !           429:        if (fprintf((*s_etat_processus).entree_standard, "set output \"%s\"\n",
        !           430:                nom_fichier) < 0)
        !           431:        {
        !           432:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !           433:            return;
        !           434:        }
        !           435:    }
        !           436:    else /* persistance == 'F' comme fichier */
        !           437:    {
        !           438:        entree_standard = (*s_etat_processus).entree_standard;
        !           439: 
        !           440: #ifdef FORCE_GNUPLOT_PATH
        !           441:        if ((commande_gnuplot = malloc((strlen(d_exec_path) + 6 +
        !           442:                strlen(ds_gnuplot_commande)) * sizeof(unsigned char)))
        !           443:                == NULL)
        !           444:        {
        !           445:            (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
        !           446:            return;
        !           447:        }
        !           448: 
        !           449:        sprintf(commande_gnuplot, "%s/bin/%s", d_exec_path,
        !           450:                ds_gnuplot_commande);
        !           451: #else
        !           452:        if ((commande_gnuplot = malloc((1 +
        !           453:                strlen(ds_gnuplot_commande)) * sizeof(unsigned char)))
        !           454:                == NULL)
        !           455:        {
        !           456:            (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
        !           457:            return;
        !           458:        }
        !           459: 
        !           460:        sprintf(commande_gnuplot, "%s", ds_gnuplot_commande);
        !           461: #endif
        !           462: 
        !           463:        if (((*s_etat_processus).entree_standard =
        !           464:                popen(commande_gnuplot, "w")) == NULL)
        !           465:        {
        !           466:            (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
        !           467:            return;
        !           468:        }
        !           469: 
        !           470:        free(commande_gnuplot);
        !           471: 
        !           472:        if (fprintf((*s_etat_processus).entree_standard, "set terminal %s\n",
        !           473:                (*s_etat_processus).type_fichier_gnuplot) < 0)
        !           474:        {
        !           475:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !           476:            return;
        !           477:        }
        !           478: 
        !           479:        if (fprintf((*s_etat_processus).entree_standard, "set output \"%s\"\n",
        !           480:                (*s_etat_processus).nom_fichier_gnuplot) < 0)
        !           481:        {
        !           482:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !           483:            return;
        !           484:        }
        !           485: 
        !           486:        free((*s_etat_processus).nom_fichier_gnuplot);
        !           487:        free((*s_etat_processus).type_fichier_gnuplot);
        !           488: 
        !           489:        (*s_etat_processus).nom_fichier_gnuplot = NULL;
        !           490:        (*s_etat_processus).type_fichier_gnuplot = NULL;
        !           491: 
        !           492:        if (strlen((*s_etat_processus).titre) > 0)
        !           493:        {
        !           494:            if (fprintf((*s_etat_processus).entree_standard,
        !           495:                    "set title \"%s\"\n", (*s_etat_processus).titre) < 0)
        !           496:            {
        !           497:                (*s_etat_processus).erreur_systeme = d_es_processus;
        !           498:                return;
        !           499:            }
        !           500:        }
        !           501:    }
        !           502: 
        !           503:    /*
        !           504:     * Affichace des marques
        !           505:     */
        !           506: 
        !           507:    l_marque = (*s_etat_processus).s_marques;
        !           508: 
        !           509:    while(l_marque != NULL)
        !           510:    {
        !           511:        if (fprintf((*s_etat_processus).entree_standard,
        !           512:                "set label \"%s\" at %s point front offset 0.2,0.2\n",
        !           513:                (*l_marque).label, (*l_marque).position) < 0)
        !           514:        {
        !           515:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !           516:            return;
        !           517:        }
        !           518: 
        !           519:        l_marque = (*l_marque).suivant;
        !           520:    }
        !           521: 
        !           522:    /*
        !           523:     * Affichage, le cas échéant, des graduations
        !           524:     */
        !           525: 
        !           526:    if ((*s_etat_processus).x_tics < 0)
        !           527:    {
        !           528:        if (fprintf((*s_etat_processus).entree_standard, "unset xtics\n") < 0)
        !           529:        {
        !           530:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !           531:            return;
        !           532:        }
        !           533:    }
        !           534:    else if ((*s_etat_processus).x_tics == 0)
        !           535:    {
        !           536:        if (fprintf((*s_etat_processus).entree_standard,
        !           537:                "set xtics autofreq\n") < 0)
        !           538:        {
        !           539:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !           540:            return;
        !           541:        }
        !           542:    }
        !           543:    else
        !           544:    {
        !           545:        if (fprintf((*s_etat_processus).entree_standard, "set xtics %f\n",
        !           546:                (*s_etat_processus).x_tics) < 0)
        !           547:        {
        !           548:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !           549:            return;
        !           550:        }
        !           551:    }
        !           552: 
        !           553:    if ((*s_etat_processus).mx_tics < 0)
        !           554:    {
        !           555:        if (fprintf((*s_etat_processus).entree_standard, "unset mxtics\n") < 0)
        !           556:        {
        !           557:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !           558:            return;
        !           559:        }
        !           560:    }
        !           561:    else if ((*s_etat_processus).mx_tics == 0)
        !           562:    {
        !           563:        if (fprintf((*s_etat_processus).entree_standard,
        !           564:                "set mxtics default\n") < 0)
        !           565:        {
        !           566:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !           567:            return;
        !           568:        }
        !           569:    }
        !           570:    else
        !           571:    {
        !           572:        if (fprintf((*s_etat_processus).entree_standard, "set mxtics %lld\n",
        !           573:                (*s_etat_processus).mx_tics) < 0)
        !           574:        {
        !           575:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !           576:            return;
        !           577:        }
        !           578:    }
        !           579: 
        !           580:    if ((*s_etat_processus).y_tics < 0)
        !           581:    {
        !           582:        if (fprintf((*s_etat_processus).entree_standard, "unset ytics\n") < 0)
        !           583:        {
        !           584:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !           585:            return;
        !           586:        }
        !           587:    }
        !           588:    else if ((*s_etat_processus).y_tics == 0)
        !           589:    {
        !           590:        if (fprintf((*s_etat_processus).entree_standard,
        !           591:                "set ytics autofreq\n") < 0)
        !           592:        {
        !           593:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !           594:            return;
        !           595:        }
        !           596:    }
        !           597:    else
        !           598:    {
        !           599:        if (fprintf((*s_etat_processus).entree_standard, "set ytics %f\n",
        !           600:                (*s_etat_processus).y_tics) < 0)
        !           601:        {
        !           602:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !           603:            return;
        !           604:        }
        !           605:    }
        !           606: 
        !           607:    if ((*s_etat_processus).my_tics < 0)
        !           608:    {
        !           609:        if (fprintf((*s_etat_processus).entree_standard, "unset mytics\n") < 0)
        !           610:        {
        !           611:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !           612:            return;
        !           613:        }
        !           614:    }
        !           615:    else if ((*s_etat_processus).my_tics == 0)
        !           616:    {
        !           617:        if (fprintf((*s_etat_processus).entree_standard,
        !           618:                "set mytics default\n") < 0)
        !           619:        {
        !           620:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !           621:            return;
        !           622:        }
        !           623:    }
        !           624:    else
        !           625:    {
        !           626:        if (fprintf((*s_etat_processus).entree_standard, "set mytics %lld\n",
        !           627:                (*s_etat_processus).my_tics) < 0)
        !           628:        {
        !           629:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !           630:            return;
        !           631:        }
        !           632:    }
        !           633: 
        !           634:    if ((*s_etat_processus).z_tics < 0)
        !           635:    {
        !           636:        if (fprintf((*s_etat_processus).entree_standard, "unset ztics\n") < 0)
        !           637:        {
        !           638:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !           639:            return;
        !           640:        }
        !           641:    }
        !           642:    else if ((*s_etat_processus).z_tics == 0)
        !           643:    {
        !           644:        if (fprintf((*s_etat_processus).entree_standard,
        !           645:                "set ztics autofreq\n") < 0)
        !           646:        {
        !           647:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !           648:            return;
        !           649:        }
        !           650:    }
        !           651:    else
        !           652:    {
        !           653:        if (fprintf((*s_etat_processus).entree_standard, "set ztics %f\n",
        !           654:                (*s_etat_processus).z_tics) < 0)
        !           655:        {
        !           656:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !           657:            return;
        !           658:        }
        !           659:    }
        !           660: 
        !           661:    if ((*s_etat_processus).mz_tics < 0)
        !           662:    {
        !           663:        if (fprintf((*s_etat_processus).entree_standard, "unset mztics\n") < 0)
        !           664:        {
        !           665:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !           666:            return;
        !           667:        }
        !           668:    }
        !           669:    else if ((*s_etat_processus).mz_tics == 0)
        !           670:    {
        !           671:        if (fprintf((*s_etat_processus).entree_standard,
        !           672:                "set mztics default\n") < 0)
        !           673:        {
        !           674:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !           675:            return;
        !           676:        }
        !           677:    }
        !           678:    else
        !           679:    {
        !           680:        if (fprintf((*s_etat_processus).entree_standard, "set mztics %lld\n",
        !           681:                (*s_etat_processus).mz_tics) < 0)
        !           682:        {
        !           683:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !           684:            return;
        !           685:        }
        !           686:    }
        !           687: 
        !           688:    if ((*s_etat_processus).x2_tics < 0)
        !           689:    {
        !           690:        if (fprintf((*s_etat_processus).entree_standard, "unset x2tics\n") < 0)
        !           691:        {
        !           692:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !           693:            return;
        !           694:        }
        !           695:    }
        !           696:    else if ((*s_etat_processus).x2_tics == 0)
        !           697:    {
        !           698:        if (fprintf((*s_etat_processus).entree_standard,
        !           699:                "set x2tics autofreq\n") < 0)
        !           700:        {
        !           701:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !           702:            return;
        !           703:        }
        !           704:    }
        !           705:    else
        !           706:    {
        !           707:        if (fprintf((*s_etat_processus).entree_standard, "set x2tics %f\n",
        !           708:                (*s_etat_processus).x2_tics) < 0)
        !           709:        {
        !           710:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !           711:            return;
        !           712:        }
        !           713:    }
        !           714: 
        !           715:    if ((*s_etat_processus).mx2_tics < 0)
        !           716:    {
        !           717:        if (fprintf((*s_etat_processus).entree_standard, "unset mx2tics\n") < 0)
        !           718:        {
        !           719:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !           720:            return;
        !           721:        }
        !           722:    }
        !           723:    else if ((*s_etat_processus).mx2_tics == 0)
        !           724:    {
        !           725:        if (fprintf((*s_etat_processus).entree_standard,
        !           726:                "set mx2tics default\n") < 0)
        !           727:        {
        !           728:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !           729:            return;
        !           730:        }
        !           731:    }
        !           732:    else
        !           733:    {
        !           734:        if (fprintf((*s_etat_processus).entree_standard, "set mx2tics %lld\n",
        !           735:                (*s_etat_processus).mx2_tics) < 0)
        !           736:        {
        !           737:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !           738:            return;
        !           739:        }
        !           740:    }
        !           741: 
        !           742:    if ((*s_etat_processus).y2_tics < 0)
        !           743:    {
        !           744:        if (fprintf((*s_etat_processus).entree_standard, "unset y2tics\n") < 0)
        !           745:        {
        !           746:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !           747:            return;
        !           748:        }
        !           749:    }
        !           750:    else if ((*s_etat_processus).y2_tics == 0)
        !           751:    {
        !           752:        if (fprintf((*s_etat_processus).entree_standard,
        !           753:                "set y2tics autofreq\n") < 0)
        !           754:        {
        !           755:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !           756:            return;
        !           757:        }
        !           758:    }
        !           759:    else
        !           760:    {
        !           761:        if (fprintf((*s_etat_processus).entree_standard, "set y2tics %f\n",
        !           762:                (*s_etat_processus).y2_tics) < 0)
        !           763:        {
        !           764:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !           765:            return;
        !           766:        }
        !           767:    }
        !           768: 
        !           769:    if ((*s_etat_processus).my2_tics < 0)
        !           770:    {
        !           771:        if (fprintf((*s_etat_processus).entree_standard, "unset my2tics\n") < 0)
        !           772:        {
        !           773:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !           774:            return;
        !           775:        }
        !           776:    }
        !           777:    else if ((*s_etat_processus).my2_tics == 0)
        !           778:    {
        !           779:        if (fprintf((*s_etat_processus).entree_standard,
        !           780:                "set my2tics default\n") < 0)
        !           781:        {
        !           782:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !           783:            return;
        !           784:        }
        !           785:    }
        !           786:    else
        !           787:    {
        !           788:        if (fprintf((*s_etat_processus).entree_standard, "set my2tics %lld\n",
        !           789:                (*s_etat_processus).my2_tics) < 0)
        !           790:        {
        !           791:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !           792:            return;
        !           793:        }
        !           794:    }
        !           795: 
        !           796:    if ((*s_etat_processus).z2_tics < 0)
        !           797:    {
        !           798:        if (fprintf((*s_etat_processus).entree_standard, "unset z2tics\n") < 0)
        !           799:        {
        !           800:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !           801:            return;
        !           802:        }
        !           803:    }
        !           804:    else if ((*s_etat_processus).z2_tics == 0)
        !           805:    {
        !           806:        if (fprintf((*s_etat_processus).entree_standard,
        !           807:                "set z2tics autofreq\n") < 0)
        !           808:        {
        !           809:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !           810:            return;
        !           811:        }
        !           812:    }
        !           813:    else
        !           814:    {
        !           815:        if (fprintf((*s_etat_processus).entree_standard, "set z2tics %f\n",
        !           816:                (*s_etat_processus).z2_tics) < 0)
        !           817:        {
        !           818:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !           819:            return;
        !           820:        }
        !           821:    }
        !           822: 
        !           823:    if ((*s_etat_processus).mz2_tics < 0)
        !           824:    {
        !           825:        if (fprintf((*s_etat_processus).entree_standard, "unset mz2tics\n") < 0)
        !           826:        {
        !           827:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !           828:            return;
        !           829:        }
        !           830:    }
        !           831:    else if ((*s_etat_processus).mz2_tics == 0)
        !           832:    {
        !           833:        if (fprintf((*s_etat_processus).entree_standard,
        !           834:                "set mz2tics default\n") < 0)
        !           835:        {
        !           836:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !           837:            return;
        !           838:        }
        !           839:    }
        !           840:    else
        !           841:    {
        !           842:        if (fprintf((*s_etat_processus).entree_standard, "set mz2tics %lld\n",
        !           843:                (*s_etat_processus).mz2_tics) < 0)
        !           844:        {
        !           845:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !           846:            return;
        !           847:        }
        !           848:    }
        !           849: 
        !           850:    l_fichier_courant = (*s_etat_processus).fichiers_graphiques;
        !           851: 
        !           852:    while(l_fichier_courant != NULL)
        !           853:    {
        !           854:        if ((*l_fichier_courant).presence_axes == d_vrai)
        !           855:        {
        !           856:            if ((*s_etat_processus).x_lines == d_vrai)
        !           857:            {
        !           858:                if (fprintf((*s_etat_processus).entree_standard,
        !           859:                        "set grid xtics\n") < 0)
        !           860:                {
        !           861:                    (*s_etat_processus).erreur_systeme = d_es_processus;
        !           862:                    return;
        !           863:                }
        !           864:            }
        !           865: 
        !           866:            if ((*s_etat_processus).y_lines == d_vrai)
        !           867:            {
        !           868:                if (fprintf((*s_etat_processus).entree_standard,
        !           869:                        "set grid ytics\n") < 0)
        !           870:                {
        !           871:                    (*s_etat_processus).erreur_systeme = d_es_processus;
        !           872:                    return;
        !           873:                }
        !           874:            }
        !           875: 
        !           876:            if ((*s_etat_processus).z_lines == d_vrai)
        !           877:            {
        !           878:                if (fprintf((*s_etat_processus).entree_standard,
        !           879:                        "set grid ztics\n") < 0)
        !           880:                {
        !           881:                    (*s_etat_processus).erreur_systeme = d_es_processus;
        !           882:                    return;
        !           883:                }
        !           884:            }
        !           885: 
        !           886:            if ((*s_etat_processus).x2_lines == d_vrai)
        !           887:            {
        !           888:                if (fprintf((*s_etat_processus).entree_standard,
        !           889:                        "set grid x2tics\n") < 0)
        !           890:                {
        !           891:                    (*s_etat_processus).erreur_systeme = d_es_processus;
        !           892:                    return;
        !           893:                }
        !           894:            }
        !           895: 
        !           896:            if ((*s_etat_processus).y2_lines == d_vrai)
        !           897:            {
        !           898:                if (fprintf((*s_etat_processus).entree_standard,
        !           899:                        "set grid y2tics\n") < 0)
        !           900:                {
        !           901:                    (*s_etat_processus).erreur_systeme = d_es_processus;
        !           902:                    return;
        !           903:                }
        !           904:            }
        !           905: 
        !           906:            if ((*s_etat_processus).z2_lines == d_vrai)
        !           907:            {
        !           908:                if (fprintf((*s_etat_processus).entree_standard,
        !           909:                        "set grid z2tics\n") < 0)
        !           910:                {
        !           911:                    (*s_etat_processus).erreur_systeme = d_es_processus;
        !           912:                    return;
        !           913:                }
        !           914:            }
        !           915: 
        !           916:            if ((*s_etat_processus).mx_lines == d_vrai)
        !           917:            {
        !           918:                if (fprintf((*s_etat_processus).entree_standard,
        !           919:                        "set grid mxtics\n") < 0)
        !           920:                {
        !           921:                    (*s_etat_processus).erreur_systeme = d_es_processus;
        !           922:                    return;
        !           923:                }
        !           924:            }
        !           925: 
        !           926:            if ((*s_etat_processus).my_lines == d_vrai)
        !           927:            {
        !           928:                if (fprintf((*s_etat_processus).entree_standard,
        !           929:                        "set grid mytics\n") < 0)
        !           930:                {
        !           931:                    (*s_etat_processus).erreur_systeme = d_es_processus;
        !           932:                    return;
        !           933:                }
        !           934:            }
        !           935: 
        !           936:            if ((*s_etat_processus).mz_lines == d_vrai)
        !           937:            {
        !           938:                if (fprintf((*s_etat_processus).entree_standard,
        !           939:                        "set grid mztics\n") < 0)
        !           940:                {
        !           941:                    (*s_etat_processus).erreur_systeme = d_es_processus;
        !           942:                    return;
        !           943:                }
        !           944:            }
        !           945: 
        !           946:            if ((*s_etat_processus).mx2_lines == d_vrai)
        !           947:            {
        !           948:                if (fprintf((*s_etat_processus).entree_standard,
        !           949:                        "set grid mx2tics\n") < 0)
        !           950:                {
        !           951:                    (*s_etat_processus).erreur_systeme = d_es_processus;
        !           952:                    return;
        !           953:                }
        !           954:            }
        !           955: 
        !           956:            if ((*s_etat_processus).my2_lines == d_vrai)
        !           957:            {
        !           958:                if (fprintf((*s_etat_processus).entree_standard,
        !           959:                        "set grid my2tics\n") < 0)
        !           960:                {
        !           961:                    (*s_etat_processus).erreur_systeme = d_es_processus;
        !           962:                    return;
        !           963:                }
        !           964:            }
        !           965: 
        !           966:            if ((*s_etat_processus).mz2_lines == d_vrai)
        !           967:            {
        !           968:                if (fprintf((*s_etat_processus).entree_standard,
        !           969:                        "set grid mz2tics\n") < 0)
        !           970:                {
        !           971:                    (*s_etat_processus).erreur_systeme = d_es_processus;
        !           972:                    return;
        !           973:                }
        !           974:            }
        !           975: 
        !           976:            if ((strcmp((*l_fichier_courant).type, "FONCTION") == 0) ||
        !           977:                    (strcmp((*l_fichier_courant).type, "PARAMETRIQUE") == 0) ||
        !           978:                    (strcmp((*l_fichier_courant).type, "POINTS") == 0) ||
        !           979:                    (strcmp((*l_fichier_courant).type, "HISTOGRAMME") == 0) ||
        !           980:                    (strcmp((*l_fichier_courant).type, "TABLE TRACANTE") == 0)
        !           981:                    || (strcmp((*l_fichier_courant).type, "COURBES DE NIVEAU")
        !           982:                    == 0) ||
        !           983:                    (strcmp((*l_fichier_courant).type, "GRILLE 3D") == 0))
        !           984:            {
        !           985:                if (fprintf((*s_etat_processus).entree_standard,
        !           986:                        "set grid\n") < 0)
        !           987:                {
        !           988:                    (*s_etat_processus).erreur_systeme = d_es_processus;
        !           989:                    return;
        !           990:                }
        !           991:            }
        !           992:            else if (strcmp((*l_fichier_courant).type, "POLAIRE") == 0)
        !           993:            {
        !           994:                if (fprintf((*s_etat_processus).entree_standard,
        !           995:                        "set xtics axis nomirror\n") < 0)
        !           996:                {
        !           997:                    (*s_etat_processus).erreur_systeme = d_es_processus;
        !           998:                    return;
        !           999:                }
        !          1000: 
        !          1001:                if (fprintf((*s_etat_processus).entree_standard,
        !          1002:                        "set ytics axis nomirror\n") < 0)
        !          1003:                {
        !          1004:                    (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1005:                    return;
        !          1006:                }
        !          1007: 
        !          1008:                if (fprintf((*s_etat_processus).entree_standard,
        !          1009:                        "set grid polar\n") < 0)
        !          1010:                {
        !          1011:                    (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1012:                    return;
        !          1013:                }
        !          1014:                
        !          1015:                if (fprintf((*s_etat_processus).entree_standard,
        !          1016:                        "set size square\n") < 0)
        !          1017:                {
        !          1018:                    (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1019:                    return;
        !          1020:                }
        !          1021: 
        !          1022:                if (fprintf((*s_etat_processus).entree_standard,
        !          1023:                        "unset x2tics\n") < 0)
        !          1024:                {
        !          1025:                    (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1026:                    return;
        !          1027:                }
        !          1028: 
        !          1029:                if (fprintf((*s_etat_processus).entree_standard,
        !          1030:                        "unset y2tics\n") < 0)
        !          1031:                {
        !          1032:                    (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1033:                    return;
        !          1034:                }
        !          1035: 
        !          1036:                if (fprintf((*s_etat_processus).entree_standard,
        !          1037:                        "unset z2tics\n") < 0)
        !          1038:                {
        !          1039:                    (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1040:                    return;
        !          1041:                }
        !          1042: 
        !          1043:                if (fprintf((*s_etat_processus).entree_standard,
        !          1044:                        "unset mx2tics\n") < 0)
        !          1045:                {
        !          1046:                    (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1047:                    return;
        !          1048:                }
        !          1049: 
        !          1050:                if (fprintf((*s_etat_processus).entree_standard,
        !          1051:                        "unset my2tics\n") < 0)
        !          1052:                {
        !          1053:                    (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1054:                    return;
        !          1055:                }
        !          1056: 
        !          1057:                if (fprintf((*s_etat_processus).entree_standard,
        !          1058:                        "unset mz2tics\n") < 0)
        !          1059:                {
        !          1060:                    (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1061:                    return;
        !          1062:                }
        !          1063:            }
        !          1064:        }
        !          1065: 
        !          1066:        l_fichier_courant = (*l_fichier_courant).suivant;
        !          1067:    }
        !          1068: 
        !          1069:    /*
        !          1070:     * Gestion des noms des axes
        !          1071:     */
        !          1072: 
        !          1073:    if (fprintf((*s_etat_processus).entree_standard,
        !          1074:            "set xlabel \"%s\"\n", (*s_etat_processus).label_x) < 0)
        !          1075:    {
        !          1076:        (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1077:        return;
        !          1078:    }
        !          1079: 
        !          1080:    if (fprintf((*s_etat_processus).entree_standard,
        !          1081:            "set ylabel \"%s\"\n", (*s_etat_processus).label_y) < 0)
        !          1082:    {
        !          1083:        (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1084:        return;
        !          1085:    }
        !          1086: 
        !          1087:    if (fprintf((*s_etat_processus).entree_standard,
        !          1088:            "set zlabel \"%s\"\n", (*s_etat_processus).label_z) < 0)
        !          1089:    {
        !          1090:        (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1091:        return;
        !          1092:    }
        !          1093: 
        !          1094: 
        !          1095:    /*
        !          1096:     * Gestion des échelles automatiques
        !          1097:     */
        !          1098: 
        !          1099:    if ((*s_etat_processus).echelle_automatique_x == d_vrai)
        !          1100:    {
        !          1101:        if (fprintf((*s_etat_processus).entree_standard,
        !          1102:                "set autoscale x\n") < 0)
        !          1103:        {
        !          1104:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1105:            return;
        !          1106:        }
        !          1107:    }
        !          1108:    else
        !          1109:    {
        !          1110:        if (fprintf((*s_etat_processus).entree_standard,
        !          1111:                "unset autoscale x\n") < 0)
        !          1112:        {
        !          1113:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1114:            return;
        !          1115:        }
        !          1116: 
        !          1117:        if (fprintf((*s_etat_processus).entree_standard, "set xrange [%f:%f]\n",
        !          1118:                (*s_etat_processus).x_min, (*s_etat_processus).x_max) < 0)
        !          1119:        {
        !          1120:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1121:            return;
        !          1122:        }
        !          1123:    }
        !          1124: 
        !          1125:    if ((*s_etat_processus).echelle_automatique_x2 == d_vrai)
        !          1126:    {
        !          1127:        if (fprintf((*s_etat_processus).entree_standard,
        !          1128:                "set autoscale x2\n") < 0)
        !          1129:        {
        !          1130:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1131:            return;
        !          1132:        }
        !          1133:    }
        !          1134:    else
        !          1135:    {
        !          1136:        if (fprintf((*s_etat_processus).entree_standard,
        !          1137:                "unset autoscale x2\n") < 0)
        !          1138:        {
        !          1139:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1140:            return;
        !          1141:        }
        !          1142: 
        !          1143:        if (fprintf((*s_etat_processus).entree_standard,
        !          1144:                "set x2range [%f:%f]\n",
        !          1145:                (*s_etat_processus).x2_min, (*s_etat_processus).x2_max) < 0)
        !          1146:        {
        !          1147:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1148:            return;
        !          1149:        }
        !          1150:    }
        !          1151: 
        !          1152:    if ((*s_etat_processus).echelle_automatique_y == d_vrai)
        !          1153:    {
        !          1154:        if (fprintf((*s_etat_processus).entree_standard,
        !          1155:                "set autoscale y\n") < 0)
        !          1156:        {
        !          1157:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1158:            return;
        !          1159:        }
        !          1160:    }
        !          1161:    else
        !          1162:    {
        !          1163:        if (fprintf((*s_etat_processus).entree_standard,
        !          1164:                "unset autoscale y\n") < 0)
        !          1165:        {
        !          1166:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1167:            return;
        !          1168:        }
        !          1169: 
        !          1170:        if (fprintf((*s_etat_processus).entree_standard, "set yrange [%f:%f]\n",
        !          1171:                (*s_etat_processus).y_min, (*s_etat_processus).y_max) < 0)
        !          1172:        {
        !          1173:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1174:            return;
        !          1175:        }
        !          1176:    }
        !          1177: 
        !          1178:    if ((*s_etat_processus).echelle_automatique_y2 == d_vrai)
        !          1179:    {
        !          1180:        if (fprintf((*s_etat_processus).entree_standard,
        !          1181:                "set autoscale y2\n") < 0)
        !          1182:        {
        !          1183:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1184:            return;
        !          1185:        }
        !          1186:    }
        !          1187:    else
        !          1188:    {
        !          1189:        if (fprintf((*s_etat_processus).entree_standard,
        !          1190:                "unset autoscale y2\n") < 0)
        !          1191:        {
        !          1192:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1193:            return;
        !          1194:        }
        !          1195: 
        !          1196:        if (fprintf((*s_etat_processus).entree_standard,
        !          1197:                "set y2range [%f:%f]\n",
        !          1198:                (*s_etat_processus).y2_min, (*s_etat_processus).y2_max) < 0)
        !          1199:        {
        !          1200:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1201:            return;
        !          1202:        }
        !          1203:    }
        !          1204: 
        !          1205:    if ((*s_etat_processus).echelle_automatique_z == d_vrai)
        !          1206:    {
        !          1207:        if (fprintf((*s_etat_processus).entree_standard,
        !          1208:                "set autoscale z\n") < 0)
        !          1209:        {
        !          1210:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1211:            return;
        !          1212:        }
        !          1213:    }
        !          1214:    else
        !          1215:    {
        !          1216:        if (fprintf((*s_etat_processus).entree_standard,
        !          1217:                "unset autoscale z\n") < 0)
        !          1218:        {
        !          1219:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1220:            return;
        !          1221:        }
        !          1222: 
        !          1223:        if (fprintf((*s_etat_processus).entree_standard, "set zrange [%f:%f]\n",
        !          1224:                (*s_etat_processus).z_min, (*s_etat_processus).z_max) < 0)
        !          1225:        {
        !          1226:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1227:            return;
        !          1228:        }
        !          1229:    }
        !          1230: 
        !          1231:    if ((*s_etat_processus).echelle_automatique_z2 == d_vrai)
        !          1232:    {
        !          1233:        if (fprintf((*s_etat_processus).entree_standard,
        !          1234:                "set autoscale z2\n") < 0)
        !          1235:        {
        !          1236:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1237:            return;
        !          1238:        }
        !          1239:    }
        !          1240:    else
        !          1241:    {
        !          1242:        if (fprintf((*s_etat_processus).entree_standard,
        !          1243:                "unset autoscale z2\n") < 0)
        !          1244:        {
        !          1245:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1246:            return;
        !          1247:        }
        !          1248: 
        !          1249:        if (fprintf((*s_etat_processus).entree_standard,
        !          1250:                "set z2range [%f:%f]\n",
        !          1251:                (*s_etat_processus).z_min, (*s_etat_processus).z_max) < 0)
        !          1252:        {
        !          1253:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1254:            return;
        !          1255:        }
        !          1256:    }
        !          1257: 
        !          1258:    /*
        !          1259:     * Position du point de vue
        !          1260:     */
        !          1261: 
        !          1262:    theta = (*s_etat_processus).point_de_vue_theta;
        !          1263:    phi = (*s_etat_processus).point_de_vue_phi;
        !          1264: 
        !          1265:    conversion_radians_vers_degres(&theta);
        !          1266:    conversion_radians_vers_degres(&phi);
        !          1267: 
        !          1268:    if (theta < 0)
        !          1269:    {
        !          1270:        theta = 0;
        !          1271:    }
        !          1272:    else if (theta > 360)
        !          1273:    {
        !          1274:        theta = 360;
        !          1275:    }
        !          1276: 
        !          1277:    if (phi < 0)
        !          1278:    {
        !          1279:        phi = 0;
        !          1280:    }
        !          1281:    else if (phi > 180)
        !          1282:    {
        !          1283:        phi = 180;
        !          1284:    }
        !          1285: 
        !          1286:    if (fprintf((*s_etat_processus).entree_standard,
        !          1287:            "set view %f,%f,1,%f\n", phi, theta,
        !          1288:            (*s_etat_processus).echelle_3D) < 0)
        !          1289:    {
        !          1290:        (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1291:        return;
        !          1292:    }
        !          1293: 
        !          1294:    /*
        !          1295:     * Gestion des échelles logarithmiques
        !          1296:     */
        !          1297: 
        !          1298:    if ((*s_etat_processus).echelle_log_x == d_vrai)
        !          1299:    {
        !          1300:        if (fprintf((*s_etat_processus).entree_standard,
        !          1301:                "set logscale x\n") < 0)
        !          1302:        {
        !          1303:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1304:            return;
        !          1305:        }
        !          1306:    }
        !          1307:    else
        !          1308:    {
        !          1309:        if (fprintf((*s_etat_processus).entree_standard,
        !          1310:                "unset logscale x\n") < 0)
        !          1311:        {
        !          1312:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1313:            return;
        !          1314:        }
        !          1315:    }
        !          1316: 
        !          1317:    if ((*s_etat_processus).echelle_log_y == d_vrai)
        !          1318:    {
        !          1319:        if (fprintf((*s_etat_processus).entree_standard,
        !          1320:                "set logscale y\n") < 0)
        !          1321:        {
        !          1322:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1323:            return;
        !          1324:        }
        !          1325:    }
        !          1326:    else
        !          1327:    {
        !          1328:        if (fprintf((*s_etat_processus).entree_standard,
        !          1329:                "unset logscale y\n") < 0)
        !          1330:        {
        !          1331:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1332:            return;
        !          1333:        }
        !          1334:    }
        !          1335: 
        !          1336:    if ((*s_etat_processus).echelle_log_z == d_vrai)
        !          1337:    {
        !          1338:        if (fprintf((*s_etat_processus).entree_standard,
        !          1339:                "set logscale z\n") < 0)
        !          1340:        {
        !          1341:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1342:            return;
        !          1343:        }
        !          1344:    }
        !          1345:    else
        !          1346:    {
        !          1347:        if (fprintf((*s_etat_processus).entree_standard,
        !          1348:                "unset logscale z\n") < 0)
        !          1349:        {
        !          1350:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1351:            return;
        !          1352:        }
        !          1353:    }
        !          1354: 
        !          1355:    if ((*s_etat_processus).echelle_log_x2 == d_vrai)
        !          1356:    {
        !          1357:        if (fprintf((*s_etat_processus).entree_standard,
        !          1358:                "set logscale x2\n") < 0)
        !          1359:        {
        !          1360:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1361:            return;
        !          1362:        }
        !          1363:    }
        !          1364:    else
        !          1365:    {
        !          1366:        if (fprintf((*s_etat_processus).entree_standard,
        !          1367:                "unset logscale x2\n") < 0)
        !          1368:        {
        !          1369:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1370:            return;
        !          1371:        }
        !          1372:    }
        !          1373: 
        !          1374:    if ((*s_etat_processus).echelle_log_y2 == d_vrai)
        !          1375:    {
        !          1376:        if (fprintf((*s_etat_processus).entree_standard,
        !          1377:                "set logscale y2\n") < 0)
        !          1378:        {
        !          1379:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1380:            return;
        !          1381:        }
        !          1382:    }
        !          1383:    else
        !          1384:    {
        !          1385:        if (fprintf((*s_etat_processus).entree_standard,
        !          1386:                "unset logscale y2\n") < 0)
        !          1387:        {
        !          1388:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1389:            return;
        !          1390:        }
        !          1391:    }
        !          1392: 
        !          1393:    if ((*s_etat_processus).echelle_log_z2 == d_vrai)
        !          1394:    {
        !          1395:        if (fprintf((*s_etat_processus).entree_standard,
        !          1396:                "set logscale z2\n") < 0)
        !          1397:        {
        !          1398:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1399:            return;
        !          1400:        }
        !          1401:    }
        !          1402:    else
        !          1403:    {
        !          1404:        if (fprintf((*s_etat_processus).entree_standard,
        !          1405:                "unset logscale z2\n") < 0)
        !          1406:        {
        !          1407:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1408:            return;
        !          1409:        }
        !          1410:    }
        !          1411: 
        !          1412:    /*
        !          1413:     * Gestion de la souris
        !          1414:     */
        !          1415: 
        !          1416:    if ((*s_etat_processus).souris_active == d_vrai)
        !          1417:    {
        !          1418:        if (fprintf((*s_etat_processus).entree_standard,
        !          1419:                "set mouse\n") < 0)
        !          1420:        {
        !          1421:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1422:            return;
        !          1423:        }
        !          1424:    }
        !          1425:    else
        !          1426:    {
        !          1427:        if (fprintf((*s_etat_processus).entree_standard,
        !          1428:                "unset mouse\n") < 0)
        !          1429:        {
        !          1430:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1431:            return;
        !          1432:        }
        !          1433:    }
        !          1434: 
        !          1435:    /*
        !          1436:     * Affichage des tracés
        !          1437:     */
        !          1438: 
        !          1439:    l_fichier_courant = (*s_etat_processus).fichiers_graphiques;
        !          1440: 
        !          1441:    if (strlen((*s_etat_processus).legende) > 0)
        !          1442:    {
        !          1443:        if (fprintf((*s_etat_processus).entree_standard,
        !          1444:                "set key outside autotitle title \"%s\"\n",
        !          1445:                (*s_etat_processus).legende) < 0)
        !          1446:        {
        !          1447:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1448:            return;
        !          1449:        }
        !          1450:    }
        !          1451:    else
        !          1452:    {
        !          1453:        l_fichier_courant = (*s_etat_processus).fichiers_graphiques;
        !          1454: 
        !          1455:        while(l_fichier_courant != NULL)
        !          1456:        {
        !          1457:            if ((*l_fichier_courant).legende != NULL)
        !          1458:            {
        !          1459:                break;
        !          1460:            }
        !          1461: 
        !          1462:            l_fichier_courant = (*l_fichier_courant).suivant;
        !          1463:        }
        !          1464: 
        !          1465:        if (l_fichier_courant == NULL)
        !          1466:        {
        !          1467:            if (fprintf((*s_etat_processus).entree_standard, "unset key\n") < 0)
        !          1468:            {
        !          1469:                (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1470:                return;
        !          1471:            }
        !          1472:        }
        !          1473:        else
        !          1474:        {
        !          1475:            if (fprintf((*s_etat_processus).entree_standard,
        !          1476:                    "set key outside autotitle\n") < 0)
        !          1477:            {
        !          1478:                (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1479:                return;
        !          1480:            }
        !          1481:        }
        !          1482:    }
        !          1483: 
        !          1484:    l_fichier_courant = (*s_etat_processus).fichiers_graphiques;
        !          1485: 
        !          1486:    if (l_fichier_courant != NULL)
        !          1487:    {
        !          1488:        if ((*l_fichier_courant).dimensions == 2)
        !          1489:        {
        !          1490:            if (strcmp((*l_fichier_courant).type, "HISTOGRAMME") == 0)
        !          1491:            {
        !          1492:                if (fprintf((*s_etat_processus).entree_standard,
        !          1493:                        "set boxwidth %d\n",
        !          1494:                        ds_gnuplot_option_largeur_histogramme) < 0)
        !          1495:                {
        !          1496:                    (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1497:                    return;
        !          1498:                }
        !          1499:            }
        !          1500: 
        !          1501:            if (fprintf((*s_etat_processus).entree_standard, "%s ",
        !          1502:                    ds_gnuplot_commande_trace_2D) < 0)
        !          1503:            {
        !          1504:                (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1505:                return;
        !          1506:            }
        !          1507:        }
        !          1508:        else
        !          1509:        {
        !          1510:            if (strcmp((*l_fichier_courant).type, "GRILLE 3D") == 0)
        !          1511:            {
        !          1512:                if (fprintf((*s_etat_processus).entree_standard,
        !          1513:                        "set hidden3d\n") < 0)
        !          1514:                {
        !          1515:                    (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1516:                    return;
        !          1517:                }
        !          1518:            }
        !          1519:            else
        !          1520:            {
        !          1521:                if (fprintf((*s_etat_processus).entree_standard,
        !          1522:                        "unset hidden3d\n") < 0)
        !          1523:                {
        !          1524:                    (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1525:                    return;
        !          1526:                }
        !          1527:            }
        !          1528: 
        !          1529:            if (fprintf((*s_etat_processus).entree_standard, "%s ",
        !          1530:                    ds_gnuplot_commande_trace_3D) < 0)
        !          1531:            {
        !          1532:                (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1533:                return;
        !          1534:            }
        !          1535:        }
        !          1536:    }
        !          1537: 
        !          1538:    while(l_fichier_courant != NULL)
        !          1539:    {
        !          1540:        if ((strcmp((*l_fichier_courant).type, "FONCTION") == 0) ||
        !          1541:                (strcmp((*l_fichier_courant).type, "PARAMETRIQUE") == 0) ||
        !          1542:                (strcmp((*l_fichier_courant).type, "POLAIRE") == 0) ||
        !          1543:                (strcmp((*l_fichier_courant).type, "COURBES DE NIVEAU") == 0))
        !          1544:        {
        !          1545:            if (fprintf((*s_etat_processus).entree_standard,
        !          1546:                    "\"%s\" axes %s %s",
        !          1547:                    (*l_fichier_courant).nom,
        !          1548:                    ((*l_fichier_courant).systeme_axes == 0) ? "x1y1" : "x2y2",
        !          1549:                    ds_gnuplot_option_2D) < 0)
        !          1550:            {
        !          1551:                (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1552:                return;
        !          1553:            }
        !          1554:        }
        !          1555:        else if (strcmp((*l_fichier_courant).type, "POINTS") == 0)
        !          1556:        {
        !          1557:            if (fprintf((*s_etat_processus).entree_standard,
        !          1558:                    "\"%s\" axes %s %s",
        !          1559:                    (*l_fichier_courant).nom,
        !          1560:                    ((*l_fichier_courant).systeme_axes == 0) ? "x1y1" : "x2y2",
        !          1561:                    ds_gnuplot_option_nuages) < 0)
        !          1562:            {
        !          1563:                (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1564:                return;
        !          1565:            }
        !          1566:        }
        !          1567:        else if (strcmp((*l_fichier_courant).type, "HISTOGRAMME") == 0)
        !          1568:        {
        !          1569:            if (fprintf((*s_etat_processus).entree_standard,
        !          1570:                    "\"%s\" axes %s %s",
        !          1571:                    (*l_fichier_courant).nom,
        !          1572:                    ((*l_fichier_courant).systeme_axes == 0) ? "x1y1" : "x2y2",
        !          1573:                    ds_gnuplot_option_histogramme)
        !          1574:                    < 0)
        !          1575:            {
        !          1576:                (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1577:                return;
        !          1578:            }
        !          1579:        }
        !          1580:        else if (strcmp((*l_fichier_courant).type, "TABLE TRACANTE") == 0)
        !          1581:        {
        !          1582:            if (fprintf((*s_etat_processus).entree_standard,
        !          1583:                    "\"%s\" axes %s %s",
        !          1584:                    (*l_fichier_courant).nom,
        !          1585:                    ((*l_fichier_courant).systeme_axes == 0) ? "x1y1" : "x2y2",
        !          1586:                    ds_gnuplot_option_table_tracante)
        !          1587:                    < 0)
        !          1588:            {
        !          1589:                (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1590:                return;
        !          1591:            }
        !          1592:        }
        !          1593:        else if (strcmp((*l_fichier_courant).type, "DESSIN") == 0)
        !          1594:        {
        !          1595:            if (fprintf((*s_etat_processus).entree_standard,
        !          1596:                    "\"%s\" axes %s %s",
        !          1597:                    (*l_fichier_courant).nom,
        !          1598:                    ((*l_fichier_courant).systeme_axes == 0) ? "x1y1" : "x2y2",
        !          1599:                    ds_gnuplot_option_table_tracante)
        !          1600:                    < 0)
        !          1601:            {
        !          1602:                (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1603:                return;
        !          1604:            }
        !          1605:        }
        !          1606:        else if (strcmp((*l_fichier_courant).type, "GRILLE 3D") == 0)
        !          1607:        {
        !          1608:            if (fprintf((*s_etat_processus).entree_standard, "\"%s\" %s",
        !          1609:                    (*l_fichier_courant).nom, ds_gnuplot_option_3D) < 0)
        !          1610:            {
        !          1611:                (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1612:                return;
        !          1613:            }
        !          1614:        }
        !          1615: 
        !          1616:        if ((*l_fichier_courant).legende == NULL)
        !          1617:        {
        !          1618:            if (fprintf((*s_etat_processus).entree_standard, " notitle") < 0)
        !          1619:            {
        !          1620:                (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1621:                return;
        !          1622:            }
        !          1623:        }
        !          1624:        else
        !          1625:        {
        !          1626:            if (fprintf((*s_etat_processus).entree_standard, " title \"%s\"",
        !          1627:                    (*l_fichier_courant).legende) < 0)
        !          1628:            {
        !          1629:                (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1630:                return;
        !          1631:            }
        !          1632:        }
        !          1633: 
        !          1634:        if (fflush((*s_etat_processus).entree_standard) != 0)
        !          1635:        {
        !          1636:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1637:            return;
        !          1638:        }
        !          1639: 
        !          1640:        l_fichier_courant = (*l_fichier_courant).suivant;
        !          1641: 
        !          1642:        if (l_fichier_courant != NULL)
        !          1643:        {
        !          1644:            if (fprintf((*s_etat_processus).entree_standard, ", ") < 0)
        !          1645:            {
        !          1646:                (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1647:                return;
        !          1648:            }
        !          1649:        }
        !          1650:    }
        !          1651: 
        !          1652:    if (fprintf((*s_etat_processus).entree_standard, "\n") < 0)
        !          1653:    {
        !          1654:        (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1655:        return;
        !          1656:    }
        !          1657: 
        !          1658:    if (fflush((*s_etat_processus).entree_standard) != 0)
        !          1659:    {
        !          1660:        (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1661:        return;
        !          1662:    }
        !          1663: 
        !          1664:    if (persistance == 'I')
        !          1665:    {
        !          1666:        if (fprintf((*s_etat_processus).entree_standard, "quit\n") < 0)
        !          1667:        {
        !          1668:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1669:            return;
        !          1670:        }
        !          1671:        
        !          1672:        if (fflush((*s_etat_processus).entree_standard) != 0)
        !          1673:        {
        !          1674:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1675:            return;
        !          1676:        }
        !          1677: 
        !          1678:        if (pclose((*s_etat_processus).entree_standard) == -1)
        !          1679:        {
        !          1680:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1681:            return;
        !          1682:        }
        !          1683: 
        !          1684:        (*s_etat_processus).entree_standard = entree_standard;
        !          1685: 
        !          1686:        /*
        !          1687:         * Création, le cas échéant, du fichier d'impression
        !          1688:         */
        !          1689: 
        !          1690:        if ((*s_etat_processus).nom_fichier_impression == NULL)
        !          1691:        {
        !          1692:            if ((fichier_impression =
        !          1693:                    creation_fichier_tex(s_etat_processus)) == NULL)
        !          1694:            {
        !          1695:                return;
        !          1696:            }
        !          1697:        }
        !          1698:        else
        !          1699:        {
        !          1700:            if ((fichier_impression = fopen((*s_etat_processus)
        !          1701:                    .nom_fichier_impression, "a")) == NULL)
        !          1702:            {
        !          1703:                (*s_etat_processus).erreur_systeme = d_es_erreur_fichier;
        !          1704:                return;
        !          1705:            }
        !          1706:        }
        !          1707: 
        !          1708:        if (fflush(NULL) != 0)
        !          1709:        {
        !          1710:            (*s_etat_processus).erreur_systeme = d_es_erreur_fichier;
        !          1711:            return;
        !          1712:        }
        !          1713: 
        !          1714:        if ((fichier_image = fopen(nom_fichier, "r")) == NULL)
        !          1715:        {
        !          1716:            (*s_etat_processus).erreur_systeme = d_es_erreur_fichier;
        !          1717:            return;
        !          1718:        }
        !          1719: 
        !          1720:        if (fprintf(fichier_impression, "\\begin{figure}[hp]\n") < 0)
        !          1721:        {
        !          1722:            (*s_etat_processus).erreur_systeme = d_es_erreur_fichier;
        !          1723:            return;
        !          1724:        }
        !          1725: 
        !          1726:        while((caractere = getc(fichier_image)) != EOF)
        !          1727:        {
        !          1728:            if (putc(caractere, fichier_impression) == EOF)
        !          1729:            {
        !          1730:                (*s_etat_processus).erreur_systeme = d_es_erreur_fichier;
        !          1731:                return;
        !          1732:            }
        !          1733:        }
        !          1734: 
        !          1735: 
        !          1736:        if (strlen((*s_etat_processus).titre) > 0)
        !          1737:        {
        !          1738:            if (fprintf(fichier_impression, "\\caption{%s}\n",
        !          1739:                    (*s_etat_processus).titre) < 0)
        !          1740:            {
        !          1741:                (*s_etat_processus).erreur_systeme = d_es_erreur_fichier;
        !          1742:                return;
        !          1743:            }
        !          1744:        }
        !          1745: 
        !          1746:        if (fprintf(fichier_impression, "\\end{figure}\n") < 0)
        !          1747:        {
        !          1748:            (*s_etat_processus).erreur_systeme = d_es_erreur_fichier;
        !          1749:            return;
        !          1750:        }
        !          1751: 
        !          1752:        if (fclose(fichier_impression) != 0)
        !          1753:        {
        !          1754:            (*s_etat_processus).erreur_systeme = d_es_erreur_fichier;
        !          1755:            return;
        !          1756:        }
        !          1757: 
        !          1758:        if (destruction_fichier(nom_fichier) == d_erreur)
        !          1759:        {
        !          1760:            (*s_etat_processus).erreur_systeme = d_es_erreur_fichier;
        !          1761:            return;
        !          1762:        }
        !          1763: 
        !          1764:        free(nom_fichier);
        !          1765:    }
        !          1766:    else if (persistance == 'E')
        !          1767:    {
        !          1768:        if (fprintf((*s_etat_processus).entree_standard, "quit\n") < 0)
        !          1769:        {
        !          1770:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1771:            return;
        !          1772:        }
        !          1773:        
        !          1774:        if (fflush((*s_etat_processus).entree_standard) != 0)
        !          1775:        {
        !          1776:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1777:            return;
        !          1778:        }
        !          1779: 
        !          1780:        if (pclose((*s_etat_processus).entree_standard) == -1)
        !          1781:        {
        !          1782:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1783:            return;
        !          1784:        }
        !          1785: 
        !          1786:        (*s_etat_processus).entree_standard = entree_standard;
        !          1787:    }
        !          1788:    else if (entree_standard != NULL)
        !          1789:    {
        !          1790:        if (fprintf((*s_etat_processus).entree_standard, "quit\n") < 0)
        !          1791:        {
        !          1792:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1793:            return;
        !          1794:        }
        !          1795: 
        !          1796:        if (fflush((*s_etat_processus).entree_standard) != 0)
        !          1797:        {
        !          1798:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1799:            return;
        !          1800:        }
        !          1801: 
        !          1802:        if (pclose((*s_etat_processus).entree_standard) == -1)
        !          1803:        {
        !          1804:            (*s_etat_processus).erreur_systeme = d_es_processus;
        !          1805:            return;
        !          1806:        }
        !          1807: 
        !          1808:        (*s_etat_processus).entree_standard = entree_standard;
        !          1809:    }
        !          1810: 
        !          1811:    return;
        !          1812: }
        !          1813: 
        !          1814: // vim: ts=4

CVSweb interface <joel.bertrand@systella.fr>