2 // C Implementation: type
7 // Author: Tobias Glaesser <tobi.web@gmx.de>, (C) 2004
9 // Copyright: See COPYING file that comes with this distribution
13 #include "SDL_image.h"
23 void string_list_init(string_list_type* pstring_list)
25 pstring_list->num_items = 0;
26 pstring_list->active_item = -1;
27 pstring_list->item = NULL;
30 char* string_list_active(string_list_type* pstring_list)
32 if(pstring_list == NULL)
35 if(pstring_list->active_item != -1)
36 return pstring_list->item[pstring_list->active_item];
41 void string_list_add_item(string_list_type* pstring_list, char* str)
44 pnew_string = (char*) malloc(sizeof(char)*(strlen(str)+1));
45 strcpy(pnew_string,str);
46 ++pstring_list->num_items;
47 pstring_list->item = (char**) realloc(pstring_list->item,sizeof(char**)*pstring_list->num_items);
48 pstring_list->item[pstring_list->num_items-1] = pnew_string;
49 if(pstring_list->active_item == -1)
50 pstring_list->active_item = 0;
53 void string_list_copy(string_list_type* pstring_list, string_list_type pstring_list_orig)
56 string_list_free(pstring_list);
57 for(i = 0; i < pstring_list_orig.num_items; ++i)
58 string_list_add_item(pstring_list,pstring_list_orig.item[i]);
61 int string_list_find(string_list_type* pstring_list, char* str)
64 for(i = 0; i < pstring_list->num_items; ++i)
66 if(strcmp(pstring_list->item[i],str) == 0)
74 void string_list_sort(string_list_type* pstring_list)
77 short int sorter[pstring_list->num_items];
79 for(j = 0; j < pstring_list->num_items; ++j)
80 for(i = 0; i < pstring_list->num_items-1; ++i)
83 y = strcmp(pstring_list->item[i],pstring_list->item[i+1]);
95 char_pointer = pstring_list->item[i];
96 pstring_list->item[i] = pstring_list->item[i+1];
97 pstring_list->item[i+1] = char_pointer;
105 void string_list_free(string_list_type* pstring_list)
107 if(pstring_list != NULL)
110 for(i=0; i < pstring_list->num_items; ++i)
111 free(pstring_list->item[i]);
112 free(pstring_list->item);
113 pstring_list->item = NULL;
114 pstring_list->num_items = 0;
115 pstring_list->active_item = -1;