errmsg.c (1732B)
1 // © 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 <stdbool.h> 22 #include <stdio.h> 23 #include "cstring.h" 24 #include "errmsg.h" 25 #include "toolutil.h" 26 27 U_CFUNC void error(uint32_t linenumber, const char *msg, ...) 28 { 29 va_list va; 30 31 va_start(va, msg); 32 fprintf(stderr, "%s:%u: ", gCurrentFileName, (int)linenumber); 33 vfprintf(stderr, msg, va); 34 fprintf(stderr, "\n"); 35 va_end(va); 36 } 37 38 static UBool gShowWarning = true; 39 40 U_CFUNC void setShowWarning(UBool val) 41 { 42 gShowWarning = val; 43 } 44 45 U_CFUNC UBool getShowWarning(void){ 46 return gShowWarning; 47 } 48 49 static UBool gStrict =false; 50 U_CFUNC UBool isStrict(void){ 51 return gStrict; 52 } 53 U_CFUNC void setStrict(UBool val){ 54 gStrict = val; 55 } 56 static UBool gVerbose =false; 57 U_CFUNC UBool isVerbose(void){ 58 return gVerbose; 59 } 60 U_CFUNC void setVerbose(UBool val){ 61 gVerbose = val; 62 } 63 U_CFUNC void warning(uint32_t linenumber, const char *msg, ...) 64 { 65 if (gShowWarning) 66 { 67 va_list va; 68 69 va_start(va, msg); 70 fprintf(stderr, "%s:%u: warning: ", gCurrentFileName, (int)linenumber); 71 vfprintf(stderr, msg, va); 72 fprintf(stderr, "\n"); 73 va_end(va); 74 } 75 }