utils.h revision b4485a66
1010cdda0Smrg#ifndef UTILS_H 2010cdda0Smrg#define UTILS_H 1 3010cdda0Smrg 4010cdda0Smrg /*\ 5010cdda0Smrg * 6b4485a66Smrg * COPYRIGHT 1990 7b4485a66Smrg * DIGITAL EQUIPMENT CORPORATION 8b4485a66Smrg * MAYNARD, MASSACHUSETTS 9b4485a66Smrg * ALL RIGHTS RESERVED. 10010cdda0Smrg * 11010cdda0Smrg * THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE AND 12010cdda0Smrg * SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. 13010cdda0Smrg * DIGITAL MAKES NO REPRESENTATIONS ABOUT THE SUITABILITY OF THIS SOFTWARE 14010cdda0Smrg * FOR ANY PURPOSE. IT IS SUPPLIED "AS IS" WITHOUT EXPRESS OR IMPLIED 15010cdda0Smrg * WARRANTY. 16010cdda0Smrg * 17010cdda0Smrg * IF THE SOFTWARE IS MODIFIED IN A MANNER CREATING DERIVATIVE COPYRIGHT 18010cdda0Smrg * RIGHTS, APPROPRIATE LEGENDS MAY BE PLACED ON THE DERIVATIVE WORK IN 19010cdda0Smrg * ADDITION TO THAT SET FORTH ABOVE. 20010cdda0Smrg * 21010cdda0Smrg * Permission to use, copy, modify, and distribute this software and its 22010cdda0Smrg * documentation for any purpose and without fee is hereby granted, provided 23010cdda0Smrg * that the above copyright notice appear in all copies and that both that 24010cdda0Smrg * copyright notice and this permission notice appear in supporting 25010cdda0Smrg * documentation, and that the name of Digital Equipment Corporation not be 26010cdda0Smrg * used in advertising or publicity pertaining to distribution of the 27010cdda0Smrg * software without specific, written prior permission. 28010cdda0Smrg \*/ 29010cdda0Smrg 30010cdda0Smrg/***====================================================================***/ 31010cdda0Smrg 32b4485a66Smrg#ifdef HAVE_CONFIG_H 33b4485a66Smrg# include "config.h" 34b4485a66Smrg#endif 35b4485a66Smrg 36010cdda0Smrg#include <stdio.h> 37010cdda0Smrg#include <X11/Xos.h> 38010cdda0Smrg#include <X11/Xfuncproto.h> 39010cdda0Smrg#include <X11/Xfuncs.h> 40010cdda0Smrg#include <stdarg.h> 41010cdda0Smrg#include <stddef.h> 42010cdda0Smrg 43010cdda0Smrg_XFUNCPROTOBEGIN 44010cdda0Smrg 45010cdda0Smrg/***====================================================================***/ 46010cdda0Smrg 47010cdda0Smrg#ifndef BOOLEAN_DEFINED 48b4485a66Smrgtypedef char Boolean; 49010cdda0Smrg#endif 50010cdda0Smrg 51010cdda0Smrg#ifndef True 52010cdda0Smrg#define True ((Boolean)1) 53010cdda0Smrg#define False ((Boolean)0) 54b4485a66Smrg#endif /* ndef True */ 55010cdda0Smrg 56010cdda0Smrg/***====================================================================***/ 57010cdda0Smrg 58b4485a66Smrgextern Boolean uSetErrorFile(const char *name); 59b4485a66Smrgextern void uInformation(const char *s, ...) _X_ATTRIBUTE_PRINTF(1,2); 60b4485a66Smrgextern void uAction(const char *s, ...) _X_ATTRIBUTE_PRINTF(1,2); 61b4485a66Smrgextern void uWarning(const char *s, ...) _X_ATTRIBUTE_PRINTF(1,2); 62b4485a66Smrgextern void uError(const char *s, ...) _X_ATTRIBUTE_PRINTF(1,2); 63b4485a66Smrgextern void uFatalError(const char *s, ...) _X_ATTRIBUTE_PRINTF(1,2) _X_NORETURN; 64b4485a66Smrgextern void uInternalError(const char *s, ...) _X_ATTRIBUTE_PRINTF(1,2); 65010cdda0Smrg 66010cdda0Smrg/***====================================================================***/ 67010cdda0Smrg 68010cdda0Smrg#define NullString ((char *)NULL) 69010cdda0Smrg 70010cdda0Smrg#define uStrCaseEqual(s1,s2) (uStrCaseCmp(s1,s2)==0) 71010cdda0Smrg#ifdef HAVE_STRCASECMP 72010cdda0Smrg#define uStrCaseCmp(s1,s2) (strcasecmp(s1,s2)) 73010cdda0Smrg#define uStrCasePrefix(p,s) (strncasecmp(p,s,strlen(p))==0) 74010cdda0Smrg#else 75b4485a66Smrgextern int uStrCaseCmp(const char * /* s1 */, 76b4485a66Smrg const char * /* s2 */); 77010cdda0Smrg 78b4485a66Smrgextern int uStrCasePrefix(const char * /* p */, 79b4485a66Smrg const char * /* str */); 80010cdda0Smrg#endif 81010cdda0Smrg 82010cdda0Smrg/***====================================================================***/ 83010cdda0Smrg 84010cdda0Smrg_XFUNCPROTOEND 85b4485a66Smrg#endif /* UTILS_H */ 86