/* er.c */

#include <stdio.h>
#include <stdarg.h>
#include <string.h>

#include "kernel.h"

#include "error.h"     

#include "dBoxTools.h"
#include "er.h"
#include "main.h"


static char *erString[] =
{ "ERROR_CLASS_NOT_UNDERSTOOD",
  "ERROR_CLASS_NO_VALUE",
  "ERROR_GADGET_NOT_UNDERSTOOD",
  "ERROR_GADGET_NO_VALUE",
  "ERROR_MAPPING_BUFFER_OVERFLOW", 
  "ERROR_ACTION_NOT_KNOWN",
  "ERROR_OBJECT_NOT_FOUND",
  "ERROR_DEF_WONT_OPEN",
};

void defError( int errnum, int line, int col )
{ if( line )
  { if( col != -1 )
      sprintf( error_block.errmess, "Line %i: Character %i: %s",
               line, col, erString[errnum - ERROR_BLOCK] );
    else
      sprintf( error_block.errmess, "Line %i: %s",
             line, erString[errnum - ERROR_BLOCK] );
  }
  else
    strcpy( error_block.errmess, erString[errnum - ERROR_BLOCK] );                     
  if( debug )
  { fputs( error_block.errmess, debug );
    fflush( debug );
  }   
  error_displayRet( &error_block );
}

/* End of er.c */
