Translation update done using Pootle.
[gammu.git] / helper / array.c
blob8d21a6051db7df6c32b089680a0d17c982d54cb3
1 /**
2 * \file array.h
3 * \author Michal Čihař
5 * String arrays handling code.
6 */
8 #include "array.h"
10 #include <stdlib.h>
11 #include <string.h>
13 void GSM_StringArray_New(GSM_StringArray *array)
15 array->used = 0;
16 array->allocated = 0;
17 array->data = NULL;
20 void GSM_StringArray_Free(GSM_StringArray *array)
22 size_t i;
23 for (i = 0; i < array->used; i++) {
24 free(array->data[i]);
26 free(array->data);
27 GSM_StringArray_New(array);
30 gboolean GSM_StringArray_Add(GSM_StringArray *array, const char *string)
32 char **newdata;
34 /* Allocate extra space if needed */
35 if (array->used + 1 > array->allocated) {
36 newdata = realloc(array->data, (array->allocated + 10) * sizeof(char **));
37 if (newdata == NULL) return FALSE;
38 array->allocated += 10;
39 array->data = newdata;
42 array->data[array->used] = strdup(string);
43 if (array->data[array->used] == NULL) return FALSE;
45 array->used++;
47 return TRUE;
50 gboolean GSM_StringArray_Find(GSM_StringArray *array, const char *string)
52 size_t i;
53 for (i = 0; i < array->used; i++) {
54 if (strcmp(array->data[i], string) == 0) return TRUE;
56 return FALSE;
59 /* Editor configuration
60 * vim: noexpandtab sw=8 ts=8 sts=8 tw=72: