#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 "erreurs2025.h"



static int posErrCtrl_2025=0;
static int posErrArb_2025=0;
static int posErrImpl_2025=0;


void InitErreur_2025(int ErrCtrl[],int ErrArb[],int ErrImpl[],int nbsej)
{
    int i;
    for(i=0;i<MAXERRCTRL_2025;i++)ErrCtrl[i]=0;
    ErrCtrl[0] = nbsej ;
    posErrCtrl_2025=nbsej+1;
    posErrImpl_2025=0;
    posErrArb_2025=0;
    for(i=0;i<MAXERRARB_2025;i++)ErrArb[i]=0;
    for(i=0;i<MAXERRIMPL_2025;i++)ErrImpl[i]=0;
};

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

	switch(FormatErr)
	{
		case   IMPLEMENTATION:
                       if ( posErrImpl_2025 < MAXERRIMPL_2025 ) ErrImpl_2025[posErrImpl_2025++]=Erreur;
                       else ErrImpl_2025[posErrImpl_2025]=2;
		       break;
		case   GROUPAGE:
                       if ( posErrArb_2025 < MAXERRARB_2025 ) ErrArb_2025[posErrArb_2025++]=Erreur;
                       else {
                          if ( posErrImpl_2025 < MAXERRIMPL_2025 ) ErrImpl_2025[posErrImpl_2025++]=Erreur;
                          else ErrImpl_2025[posErrImpl_2025]=2;
                        }
		       break;
		case   CONTROLE:
                       if ( posErrCtrl_2025 < MAXERRCTRL_2025 ) ErrCtrl_2025[posErrCtrl_2025++]=Erreur;
                       else {
                          if ( posErrImpl_2025 < MAXERRIMPL_2025 ) ErrImpl_2025[posErrImpl_2025++]=Erreur;
                          else ErrImpl_2025[posErrImpl_2025]=2;
                        }
                        ErrCtrl_2025[norum+1]++;  /* Ajout d'une erreur pour le compteur de RUM */
			break;
		default : if ( posErrImpl_2025 < MAXERRIMPL_2025 )
					  ErrImpl_2025[posErrImpl_2025++]=Erreur;
                  else
					  ErrImpl_2025[posErrImpl_2025]=1;
  			  break;
	}
}
