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