/*
    Fichier comptemail.c
    Auteur Bernard Chardonneau

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

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

    Droits d'utilisation également sur la page web :
    http://libremail.tuxfamily.org/voir.php?page=droits


    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 "messages.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


    // récupération du nom de l'exécutable
    memcom (*varg);

    // 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)
                        // "%d mails dans %s\n"
                        printf (message ("COMPTE_MAILS"), nb_mails, varg [1]);
                    else if (nb_mails == 1)
                        // "1 mail dans %s\n"
                        printf (message ("UN_SEUL_MAIL"), varg [1]);
                    else
                        // "Aucun mail dans %s\n"
                        printf (message ("AUCUN_MAIL"), varg [1]);
                }

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

            // on n'a plus besoin du fichier de configuration
            fclose (fconf);
        }
    }
    else
        // "Syntaxe : %s [-n] fichier_configuration"
        psyntaxe ("SYNT_COMPTEMAIL");

    return (0);
}