1ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/*
2ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru*******************************************************************************
3ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru*
4ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru*   Copyright (C) 1998-2004, International Business Machines
5ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru*   Corporation and others.  All Rights Reserved.
6ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru*
7ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru*******************************************************************************
8ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru*
9ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* File error.c
10ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru*
11ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* Modification History:
12ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru*
13ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru*   Date        Name        Description
14ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru*   05/28/99    stephen     Creation.
15ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru*******************************************************************************
16ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru*/
17ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
18ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include <stdarg.h>
19ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include <stdio.h>
20ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "cstring.h"
21ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "errmsg.h"
22ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
23ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid error(uint32_t linenumber, const char *msg, ...)
24ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
25ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    va_list va;
26ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
27ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    va_start(va, msg);
28ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    fprintf(stderr, "%s:%u: ", gCurrentFileName, (int)linenumber);
29ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    vfprintf(stderr, msg, va);
30ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    fprintf(stderr, "\n");
31ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    va_end(va);
32ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru}
33ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
34ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querustatic UBool gShowWarning = TRUE;
35ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
36ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid setShowWarning(UBool val)
37ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
38ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    gShowWarning = val;
39ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru}
40ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
41ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruUBool getShowWarning(){
42ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    return gShowWarning;
43ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru}
44ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
45ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querustatic UBool gStrict =FALSE;
46ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruUBool isStrict(){
47ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    return gStrict;
48ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru}
49ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid setStrict(UBool val){
50ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    gStrict = val;
51ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru}
52ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querustatic UBool gVerbose =FALSE;
53ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruUBool isVerbose(){
54ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    return gVerbose;
55ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru}
56ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid setVerbose(UBool val){
57ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    gVerbose = val;
58ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru}
59ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid warning(uint32_t linenumber, const char *msg, ...)
60ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
61ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    if (gShowWarning)
62ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    {
63ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        va_list va;
64ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
65ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        va_start(va, msg);
66ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        fprintf(stderr, "%s:%u: warning: ", gCurrentFileName, (int)linenumber);
67ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        vfprintf(stderr, msg, va);
68ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        fprintf(stderr, "\n");
69ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        va_end(va);
70ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
71ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru}
72ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
73