aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/ecore/src/lib/ecore_config/ecore_config_util.c
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/ecore/src/lib/ecore_config/ecore_config_util.c')
-rw-r--r--libraries/ecore/src/lib/ecore_config/ecore_config_util.c129
1 files changed, 0 insertions, 129 deletions
diff --git a/libraries/ecore/src/lib/ecore_config/ecore_config_util.c b/libraries/ecore/src/lib/ecore_config/ecore_config_util.c
deleted file mode 100644
index 6156936..0000000
--- a/libraries/ecore/src/lib/ecore_config/ecore_config_util.c
+++ /dev/null
@@ -1,129 +0,0 @@
1#ifdef HAVE_CONFIG_H
2# include <config.h>
3#endif
4
5/* azundris */
6
7#include <sys/types.h>
8#include <stdlib.h> /* malloc(), free() */
9#include <stdio.h>
10#include <string.h> /* str...() */
11
12#include <stdarg.h> /* varargs in sprintf/appendf */
13
14#include "Ecore.h"
15#include "ecore_private.h"
16
17#include "Ecore_Config.h"
18#include "ecore_config_util.h"
19
20#include "ecore_config_private.h"
21
22#define CHUNKLEN 4096
23
24/*****************************************************************************/
25/* STRINGS */
26/***********/
27
28estring *
29estring_new(int size)
30{
31 estring *e = malloc(sizeof(estring));
32
33 if (e)
34 {
35 memset(e, 0, sizeof(estring));
36 if ((size > 0) && (e->str = malloc(size)))
37 e->alloc = size;
38 }
39 return e;
40}
41
42char *
43estring_disown(estring * e)
44{
45 if (e)
46 {
47 char *r = e->str;
48
49 free(e);
50 return r;
51 }
52 return NULL;
53}
54
55int
56estring_appendf(estring * e, const char *fmt, ...)
57{
58 int need;
59 va_list ap;
60 char *p;
61
62 if (!e)
63 return ECORE_CONFIG_ERR_FAIL;
64
65 if (!e->str)
66 {
67 e->used = e->alloc = 0;
68 if (!(e->str = (char *)malloc(e->alloc = CHUNKLEN)))
69 return ECORE_CONFIG_ERR_OOM;
70 }
71
72 va_start(ap, fmt);
73 need = vsnprintf(NULL, 0, fmt, ap);
74 va_end(ap);
75
76 if (need >= (e->alloc - e->used))
77 {
78 e->alloc = e->used + need + (CHUNKLEN - (need % CHUNKLEN));
79
80 if (!(p = (char *)realloc(e->str, e->alloc)))
81 {
82 free(e->str);
83 e->alloc = e->used = 0;
84 return ECORE_CONFIG_ERR_OOM;
85 }
86 e->str = p;
87 }
88
89 va_start(ap, fmt);
90 need = vsnprintf(e->str + e->used, e->alloc - e->used, fmt, ap);
91 va_end(ap);
92
93 return e->used += need;
94}
95
96int
97esprintf(char **result, const char *fmt, ...)
98{
99 va_list ap;
100 size_t need;
101 char *n;
102
103 if (!result)
104 return ECORE_CONFIG_ERR_FAIL;
105
106 va_start(ap, fmt);
107 need = vsnprintf(NULL, 0, fmt, ap) + 1;
108 va_end(ap);
109 n = malloc(need + 1);
110
111 if (n)
112 {
113 va_start(ap, fmt);
114 need = vsnprintf(n, need, fmt, ap);
115 va_end(ap);
116
117 n[need] = 0;
118
119 if(*result)
120 free(result);
121 *result = n;
122
123 return need;
124 }
125
126 return ECORE_CONFIG_ERR_OOM;
127}
128
129/*****************************************************************************/