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 void uInformation(const char *s, ...) _X_ATTRIBUTE_PRINTF(1,2);
59b4485a66Smrgextern void uAction(const char *s, ...) _X_ATTRIBUTE_PRINTF(1,2);
60b4485a66Smrgextern void uWarning(const char *s, ...) _X_ATTRIBUTE_PRINTF(1,2);
61b4485a66Smrgextern void uError(const char *s, ...) _X_ATTRIBUTE_PRINTF(1,2);
62b4485a66Smrgextern void uFatalError(const char *s, ...) _X_ATTRIBUTE_PRINTF(1,2) _X_NORETURN;
63b4485a66Smrgextern void uInternalError(const char *s, ...) _X_ATTRIBUTE_PRINTF(1,2);
64010cdda0Smrg
65010cdda0Smrg/***====================================================================***/
66010cdda0Smrg
67010cdda0Smrg#define	uStrCaseEqual(s1,s2)	(uStrCaseCmp(s1,s2)==0)
68010cdda0Smrg#ifdef HAVE_STRCASECMP
69010cdda0Smrg#define	uStrCaseCmp(s1,s2)	(strcasecmp(s1,s2))
70010cdda0Smrg#else
71b4485a66Smrgextern int uStrCaseCmp(const char *   /* s1 */,
72b4485a66Smrg                       const char *   /* s2 */);
73010cdda0Smrg#endif
74010cdda0Smrg
75010cdda0Smrg/***====================================================================***/
76010cdda0Smrg
77010cdda0Smrg_XFUNCPROTOEND
78b4485a66Smrg#endif                          /* UTILS_H */
79