4 // Copyright (C) 2004 Tobias Glaesser <tobi.web@gmx.de>
6 // This program is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU General Public License
8 // as published by the Free Software Foundation; either version 2
9 // of the License, or (at your option) any later version.
11 // This program is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 // GNU General Public License for more details.
16 // You should have received a copy of the GNU General Public License
17 // along with this program; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
21 #include "SDL_image.h"
31 void string_list_init(string_list_type* pstring_list)
33 pstring_list->num_items = 0;
34 pstring_list->active_item = -1;
35 pstring_list->item = NULL;
38 char* string_list_active(string_list_type* pstring_list)
40 if(pstring_list == NULL)
43 if(pstring_list->active_item != -1)
44 return pstring_list->item[pstring_list->active_item];
49 void string_list_add_item(string_list_type* pstring_list,const char* str)
52 pnew_string = (char*) malloc(sizeof(char)*(strlen(str)+1));
53 strcpy(pnew_string,str);
54 ++pstring_list->num_items;
55 pstring_list->item = (char**) realloc(pstring_list->item,sizeof(char**)*pstring_list->num_items);
56 pstring_list->item[pstring_list->num_items-1] = pnew_string;
57 if(pstring_list->active_item == -1)
58 pstring_list->active_item = 0;
61 void string_list_copy(string_list_type* pstring_list, string_list_type pstring_list_orig)
64 string_list_free(pstring_list);
65 for(i = 0; i < pstring_list_orig.num_items; ++i)
66 string_list_add_item(pstring_list,pstring_list_orig.item[i]);
69 int string_list_find(string_list_type* pstring_list,const char* str)
72 for(i = 0; i < pstring_list->num_items; ++i)
74 if(strcmp(pstring_list->item[i],str) == 0)
82 void string_list_sort(string_list_type* pstring_list)
86 for(j = 0; j < pstring_list->num_items; ++j)
87 for(i = 0; i < pstring_list->num_items-1; ++i)
90 y = strcmp(pstring_list->item[i],pstring_list->item[i+1]);
102 char_pointer = pstring_list->item[i];
103 pstring_list->item[i] = pstring_list->item[i+1];
104 pstring_list->item[i+1] = char_pointer;
112 void string_list_free(string_list_type* pstring_list)
114 if(pstring_list != NULL)
117 for(i=0; i < pstring_list->num_items; ++i)
118 free(pstring_list->item[i]);
119 free(pstring_list->item);
120 pstring_list->item = NULL;
121 pstring_list->num_items = 0;
122 pstring_list->active_item = -1;