Insure that EXIT_FAILURE is defined (irix6.5).
[platform/upstream/rpm.git] / rpmio / rpmmalloc.c
1 #include "system.h"
2
3 #if !defined(EXIT_FAILURE)
4 #define EXIT_FAILURE    1
5 #endif
6
7 void *vmefail(void)
8 {
9     fprintf(stderr, _("memory alloc returned NULL.\n"));
10     exit(EXIT_FAILURE);
11     /*@notreached@*/
12     return NULL;
13 }
14
15 #if !(HAVE_MCHECK_H && defined(__GNUC__))
16
17 void * xmalloc (size_t size)
18 {
19     register void *value;
20     if (size == 0) size++;
21     value = malloc (size);
22     if (value == 0)
23         value = vmefail();
24     return value;
25 }
26
27 void * xcalloc (size_t nmemb, size_t size)
28 {
29     register void *value;
30     if (size == 0) size++;
31     if (nmemb == 0) nmemb++;
32     value = calloc (nmemb, size);
33     if (value == 0)
34         value = vmefail();
35     return value;
36 }
37
38 void * xrealloc (void *ptr, size_t size)
39 {
40     register void *value;
41     if (size == 0) size++;
42     value = realloc (ptr, size);
43     if (value == 0)
44         value = vmefail();
45     return value;
46 }
47
48 char * xstrdup (const char *str)
49 {
50     char *newstr = (char *) malloc (strlen(str) + 1);
51     if (newstr == 0)
52         newstr = (char *) vmefail();
53     strcpy (newstr, str);
54     return newstr;
55 }
56
57 #endif  /* !(HAVE_MCHECK_H && defined(__GNUC__)) */