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