Archived
1
0
Fork 0

docs: adding str-list

This commit is contained in:
Henrik Hautakoski 2011-01-24 10:18:31 +01:00
parent a49efe7bdc
commit b0f473fb71

View file

@ -0,0 +1,99 @@
String List
-----------
Data structures
~~~~~~~~~~~~~~~
* `struct str_list`
+
--
Structure that holds the list
`items`::
Array of strings in the list
`nr`::
Number of items in the list
--
Functions
~~~~~~~~~
`str_list_init`::
Initialize the list
`str_list_create`::
allocates and initializes a new list.
`str_list_destroy`::
deallocates the list. +
Returns zero if the list is not empty, non-zero otherwise.
`str_list_clear`::
clears the list by calling `free` for every item.
`str_list_clear_fn`::
clears the list by calling the callback function 'fn' for every item. +
If `NULL` is passed as 'fn' to this function the items are still cleared without any deallocation.
`str_list_insert`::
Inserts a new string into the list. The string passed is not copied. +
If 'str' exist in the list, a negative value is returned. otherwise the index where 'str' is inserted.
`str_list_remove`::
Removes 'str' from the list and returns it.
If the string does not exist in the list, `NULL` is returned.
`str_list_reduce`::
Removes the last string in the list and returns it. +
If the list is empty, `NULL` is returned.
`str_list_indexof`::
Returns the index where 'str' is located in the array. +
Returns a negative value if 'str' does not exist in the list.
`str_list_lookup`::
looks up 'str' in the list and returns it.
If 'str' does not exist in the list, `NULL` is returned.
`str_list_has`::
Returns non-zero if 'str' exist in the list, zero otherwise.
`str_list_foreach`::
Macro to iterate over the list. +
Arguments are (in order): 'iterator', 'list'.
+
----
struct str_list *list;
char **item;
str_list_foreach(item, list) {
printf("%s\n", *item);
}
----
`str_list_size`::
Returns the number of items in the list
+
NOTE: this function may be implemented as a macro, so don't pass arguments with side-effects
`str_list_isempty`::
Returns non zero if the list is empty. zero otherwise.
+
NOTE: this function may be implemented as a macro, so don't pass arguments with side-effects