/*
    Fichier comptemail.c
    Auteur Bernard Chardonneau

    Logiciel libre, droits d'utilisation précisés en français
    dans le fichier : licence.fr

    Traductions des droits d'utilisation dans les fichiers :
    licence.de , licence.en , licence.es , licence.it
    licence.nl , licence.pt , licence.eo , licence.eo-utf


    Ce programme affiche le nombre de mail en attente de téléchargement
    (ou de destruction).

    Un fichier de configuration est utilisé pour se connecter à la
    boite aux lettres.
*/

#define appli   // pour la déclaration de variables globales à l'application

#include <stdio.h>
#include <string.h>
#include "buflect.h"
#include "ficonf.h"
#include "pop.h"


/* programme principal */

int main (int nbarg, char *varg[])
{
    FILE *fconf;        // descripteur du fichier de configuration
    int  nb_mails;      // nombre de mails
    int  optn;          // option d'affichage


    // si option -n (affichage du nombre de mails seulement)
    if (--nbarg >= 1 && strcmp (varg [1], "-n") == 0)
    {
        // la mémoriser
        optn = 1;

        // et passer à l'argument suivant
        varg ++;
        nbarg --;
    }
    else
        // sinon, pas d'option -n
        optn = 0;

    if (nbarg == 1)
    {
        // ouvrir le fichier de configuration
        fconf = ouvre_ficonf (varg [1]);

        if (fconf)
        {
            // connexion sur le compte mail du serveur pop
            if (connect_pop (fconf))
            {
                // récupération du nombre de mails
                nb_mails = nbmails ();

                // affichage du nombre de mails
                if (optn)
                    printf ("%d\n", nb_mails);
                else
                {
                    if (nb_mails > 1)
                        printf ("%d mails dans %s\n", nb_mails, varg [1]);
                    else if (nb_mails == 1)
                        printf ("1 mail dans %s\n", varg [1]);
                    else
                        printf ("Aucun mail dans %s\n", varg [1]);
                }

                // se déconnecter proprement du serveur pop
                deconnect_pop ();
            }

            // on n'a plus besoin du fichier de configuration
            fclose (fconf);
        }
    }
    else
        fprintf (stderr, "Syntaxe : %s [-n] fichier_configuration\n",
                                                      *(varg - optn));

    return (0);
}
