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