#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include <ctype.h>
// IMPORTANT: We changed the initial implementation (we removed <malloc/malloc.h>)
// #include <malloc/malloc.h>
#include "erreurs2024.h"



static int posErrCtrl_2024=0;
static int posErrArb_2024=0;
static int posErrImpl_2024=0;


void InitErreur_2024(int ErrCtrl[],int ErrArb[],int ErrImpl[],int nbsej)
{
    int i;
    for(i=0;i<MAXERRCTRL_2024;i++)ErrCtrl[i]=0;
    ErrCtrl[0] = nbsej ;
    posErrCtrl_2024=nbsej+1;
    posErrImpl_2024=0;
    posErrArb_2024=0;
    for(i=0;i<MAXERRARB_2024;i++)ErrArb[i]=0;
    for(i=0;i<MAXERRIMPL_2024;i++)ErrImpl[i]=0;
};

void AddErreur_2024(int FormatErr,int Erreur,int norum)
{

	switch(FormatErr)
	{
		case   IMPLEMENTATION:
                       if ( posErrImpl_2024 < MAXERRIMPL_2024 ) ErrImpl_2024[posErrImpl_2024++]=Erreur;
                       else ErrImpl_2024[posErrImpl_2024]=2;
		       break;
		case   GROUPAGE:
                       if ( posErrArb_2024 < MAXERRARB_2024 ) ErrArb_2024[posErrArb_2024++]=Erreur;
                       else {
                          if ( posErrImpl_2024 < MAXERRIMPL_2024 ) ErrImpl_2024[posErrImpl_2024++]=Erreur;
                          else ErrImpl_2024[posErrImpl_2024]=2;
                        }
		       break;
		case   CONTROLE:
                       if ( posErrCtrl_2024 < MAXERRCTRL_2024 ) ErrCtrl_2024[posErrCtrl_2024++]=Erreur;
                       else {
                          if ( posErrImpl_2024 < MAXERRIMPL_2024 ) ErrImpl_2024[posErrImpl_2024++]=Erreur;
                          else ErrImpl_2024[posErrImpl_2024]=2;
                        }
                        ErrCtrl_2024[norum+1]++;  /* Ajout d'une erreur pour le compteur de RUM */
			break;
		default : if ( posErrImpl_2024 < MAXERRIMPL_2024 )
					  ErrImpl_2024[posErrImpl_2024++]=Erreur;
                  else
					  ErrImpl_2024[posErrImpl_2024]=1;
  			  break;
	}
}
