utils.c revision affd2f3f
1 2 /*\ 3 * 4 * COPYRIGHT 1990 5 * DIGITAL EQUIPMENT CORPORATION 6 * MAYNARD, MASSACHUSETTS 7 * ALL RIGHTS RESERVED. 8 * 9 * THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE AND 10 * SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. 11 * DIGITAL MAKES NO REPRESENTATIONS ABOUT THE SUITABILITY OF THIS SOFTWARE 12 * FOR ANY PURPOSE. IT IS SUPPLIED "AS IS" WITHOUT EXPRESS OR IMPLIED 13 * WARRANTY. 14 * 15 * IF THE SOFTWARE IS MODIFIED IN A MANNER CREATING DERIVATIVE COPYRIGHT 16 * RIGHTS, APPROPRIATE LEGENDS MAY BE PLACED ON THE DERIVATIVE WORK IN 17 * ADDITION TO THAT SET FORTH ABOVE. 18 * 19 * Permission to use, copy, modify, and distribute this software and its 20 * documentation for any purpose and without fee is hereby granted, provided 21 * that the above copyright notice appear in all copies and that both that 22 * copyright notice and this permission notice appear in supporting 23 * documentation, and that the name of Digital Equipment Corporation not be 24 * used in advertising or publicity pertaining to distribution of the 25 * software without specific, written prior permission. 26 \*/ 27 28#include "utils.h" 29#include <ctype.h> 30#include <stdlib.h> 31 32/***====================================================================***/ 33/*** PRINT FUNCTIONS ***/ 34/***====================================================================***/ 35 36#define errorFile stderr 37 38void 39uInformation(const char *s, ...) 40{ 41 va_list ap; 42 43 va_start(ap, s); 44 vfprintf(errorFile, s, ap); 45 fflush(errorFile); 46 va_end(ap); 47 return; 48} 49 50/***====================================================================***/ 51 52void 53uAction(const char *s, ...) 54{ 55 va_list ap; 56 57 va_start(ap, s); 58 fprintf(errorFile, " "); 59 vfprintf(errorFile, s, ap); 60 fflush(errorFile); 61 va_end(ap); 62 return; 63} 64 65/***====================================================================***/ 66 67void 68uWarning(const char *s, ...) 69{ 70 va_list ap; 71 72 va_start(ap, s); 73 fprintf(errorFile, "Warning: "); 74 vfprintf(errorFile, s, ap); 75 fflush(errorFile); 76 va_end(ap); 77 return; 78} 79 80/***====================================================================***/ 81 82void 83uError(const char *s, ...) 84{ 85 va_list ap; 86 87 va_start(ap, s); 88 fprintf(errorFile, "Error: "); 89 vfprintf(errorFile, s, ap); 90 fflush(errorFile); 91 va_end(ap); 92 return; 93} 94 95/***====================================================================***/ 96 97void 98uFatalError(const char *s, ...) 99{ 100 va_list ap; 101 102 va_start(ap, s); 103 fprintf(errorFile, "Fatal Error: "); 104 vfprintf(errorFile, s, ap); 105 fprintf(errorFile, " Exiting\n"); 106 fflush(errorFile); 107 va_end(ap); 108 exit(1); 109 /* NOTREACHED */ 110} 111 112/***====================================================================***/ 113 114void 115uInternalError(const char *s, ...) 116{ 117 va_list ap; 118 119 va_start(ap, s); 120 fprintf(errorFile, "Internal error: "); 121 vfprintf(errorFile, s, ap); 122 fflush(errorFile); 123 va_end(ap); 124 return; 125} 126 127/***====================================================================***/ 128 129#ifndef HAVE_STRCASECMP 130int 131uStrCaseCmp(const char *str1, const char *str2) 132{ 133 char buf1[512], buf2[512]; 134 char c, *s; 135 136 register int n; 137 138 for (n = 0, s = buf1; (c = *str1++); n++) { 139 if (isupper(c)) 140 c = tolower(c); 141 if (n > 510) 142 break; 143 *s++ = c; 144 } 145 *s = '\0'; 146 for (n = 0, s = buf2; (c = *str2++); n++) { 147 if (isupper(c)) 148 c = tolower(c); 149 if (n > 510) 150 break; 151 *s++ = c; 152 } 153 *s = '\0'; 154 return (strcmp(buf1, buf2)); 155} 156#endif 157