New command --check-programs for gpgconf.
[gnupg.git] / tools / no-libgcrypt.c
1 /* no-libgcrypt.c - Replacement functions for libgcrypt.
2  *      Copyright (C) 2003 Free Software Foundation, Inc.
3  *
4  * This file is free software; as a special exception the author gives
5  * unlimited permission to copy and/or distribute it, with or without
6  * modifications, as long as this notice is preserved.
7  * 
8  * This file is distributed in the hope that it will be useful, but
9  * WITHOUT ANY WARRANTY, to the extent permitted by law; without even
10  * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
11  * PURPOSE.
12  */
13
14 #include <config.h>
15 #include <stdio.h>
16 #include <stdlib.h>
17 #include <string.h>
18 #include <errno.h>
19
20 #include "../common/util.h"
21 #include "i18n.h"
22
23
24 /* Replace libgcrypt's malloc functions which are used by
25    ../jnlib/libjnlib.a .  ../common/util.h defines macros to map them
26    to xmalloc etc. */
27 static void
28 out_of_memory (void)
29 {
30   log_fatal (_("error allocating enough memory: %s\n"), strerror (errno));
31 }
32
33
34 void *
35 gcry_malloc (size_t n)
36 {
37   return malloc (n);
38 }
39
40 void *
41 gcry_xmalloc (size_t n)
42 {
43   void *p = malloc (n);
44   if (!p)
45     out_of_memory ();
46   return p;
47 }
48
49 char *
50 gcry_strdup (const char *string)
51 {
52   return malloc (strlen (string)+1);
53 }
54
55
56 void *
57 gcry_realloc (void *a, size_t n)
58 {
59   return realloc (a, n);
60 }
61
62 void *
63 gcry_xrealloc (void *a, size_t n)
64 {
65   void *p = realloc (a, n);
66   if (!p)
67     out_of_memory ();
68   return p;
69 }
70
71
72
73 void *
74 gcry_calloc (size_t n, size_t m)
75 {
76   return calloc (n, m);
77 }
78
79 void *
80 gcry_xcalloc (size_t n, size_t m)
81 {
82   void *p = calloc (n, m);
83   if (!p)
84     out_of_memory ();
85   return p;
86 }
87
88
89 char *
90 gcry_xstrdup (const char *string)
91 {
92   void *p = malloc (strlen (string)+1);
93   if (!p)
94     out_of_memory ();
95   strcpy( p, string );
96   return p;
97 }
98
99 void
100 gcry_free (void *a)
101 {
102   if (a)
103     free (a);
104 }
105
106
107 /* We need this dummy because exechelp.c uses gcry_control to
108    terminate the secure memeory.  */
109 gcry_error_t 
110 gcry_control (enum gcry_ctl_cmds CMD, ...)
111 {
112   return 0;
113 }