eina_accessor.h | eina_accessor.h | |||
---|---|---|---|---|
skipping to change at line 205 | skipping to change at line 205 | |||
/** | /** | |||
* @brief Retrieve the data of an accessor at a given position. | * @brief Retrieve the data of an accessor at a given position. | |||
* | * | |||
* @param accessor The accessor. | * @param accessor The accessor. | |||
* @param position The position of the element. | * @param position The position of the element. | |||
* @param data The pointer that stores the data to retrieve. | * @param data The pointer that stores the data to retrieve. | |||
* @return #EINA_TRUE on success, #EINA_FALSE otherwise. | * @return #EINA_TRUE on success, #EINA_FALSE otherwise. | |||
* | * | |||
* This function retrieves the data of the element pointed by | * This function retrieves the data of the element pointed by | |||
* @p accessor at the porition @p position, and stores it in | * @p accessor at the porition @p position, and stores it in | |||
* @p data. If @p accessor is @c NULL or if an error occurred, | * @p data. If @p accessor is @c NULL or if an error occurred, #EINA_FALSE | |||
* #EINA_FALSE is returned, otherwise EINA_TRUE is returned. | * is returned, otherwise #EINA_TRUE is returned. | |||
*/ | */ | |||
EAPI Eina_Bool eina_accessor_data_get(Eina_Accessor *accessor, | EAPI Eina_Bool eina_accessor_data_get(Eina_Accessor *accessor, | |||
unsigned int position, | unsigned int position, | |||
void **data) EINA_ARG_NONNULL (1); | void **data) EINA_ARG_NONNULL (1); | |||
/** | /** | |||
* @brief Return the container of an accessor. | * @brief Return the container of an accessor. | |||
* | * | |||
* @param accessor The accessor. | * @param accessor The accessor. | |||
* @return The container which created the accessor. | * @return The container which created the accessor. | |||
skipping to change at line 255 | skipping to change at line 255 | |||
/** | /** | |||
* @brief Lock the container of the accessor. | * @brief Lock the container of the accessor. | |||
* | * | |||
* @param accessor The accessor. | * @param accessor The accessor. | |||
* @return #EINA_TRUE on success, #EINA_FALSE otherwise. | * @return #EINA_TRUE on success, #EINA_FALSE otherwise. | |||
* | * | |||
* If the container of the @p accessor permits it, it will be locked. When a | * If the container of the @p accessor permits it, it will be locked. When a | |||
* container is locked calling eina_accessor_over() on it will return | * container is locked calling eina_accessor_over() on it will return | |||
* immediately. If @p accessor is @c NULL or if a problem occurred, #EINA_F ALSE | * immediately. If @p accessor is @c NULL or if a problem occurred, #EINA_F ALSE | |||
* is returned, otherwise #EINA_TRUE is returned. If the container isn't | * is returned, otherwise #EINA_TRUE is returned. If the container isn't | |||
* lockable, it will return EINA_TRUE. | * lockable, it will return #EINA_TRUE. | |||
* | * | |||
* @warning None of the existing eina data structures are lockable. | * @warning None of the existing eina data structures are lockable. | |||
*/ | */ | |||
EAPI Eina_Bool eina_accessor_lock(Eina_Accessor *accessor) EINA_ARG_NONNULL (1); | EAPI Eina_Bool eina_accessor_lock(Eina_Accessor *accessor) EINA_ARG_NONNULL (1); | |||
/** | /** | |||
* @brief Unlock the container of the accessor. | * @brief Unlock the container of the accessor. | |||
* | * | |||
* @param accessor The accessor. | * @param accessor The accessor. | |||
* @return #EINA_TRUE on success, #EINA_FALSE otherwise. | * @return #EINA_TRUE on success, #EINA_FALSE otherwise. | |||
* | * | |||
* If the container of the @p accessor permits it and was previously | * If the container of the @p accessor permits it and was previously | |||
* locked, it will be unlocked. If @p accessor is @c NULL or if a | * locked, it will be unlocked. If @p accessor is @c NULL or if a | |||
* problem occurred, #EINA_FALSE is returned, otherwise #EINA_TRUE | * problem occurred, #EINA_FALSE is returned, otherwise #EINA_TRUE | |||
* is returned. If the container is not lockable, it will return | * is returned. If the container is not lockable, it will | |||
* EINA_TRUE. | * return #EINA_TRUE. | |||
* | * | |||
* @warning None of the existing eina data structures are lockable. | * @warning None of the existing eina data structures are lockable. | |||
*/ | */ | |||
EAPI Eina_Bool eina_accessor_unlock(Eina_Accessor *accessor) EINA_ARG_NONNU LL(1); | EAPI Eina_Bool eina_accessor_unlock(Eina_Accessor *accessor) EINA_ARG_NONNU LL(1); | |||
/** | /** | |||
* @def EINA_ACCESSOR_FOREACH | * @def EINA_ACCESSOR_FOREACH | |||
* @brief Macro to iterate over all elements easily. | * @brief Macro to iterate over all elements easily. | |||
* | * | |||
* @param accessor The accessor to use. | * @param accessor The accessor to use. | |||
End of changes. 3 change blocks. | ||||
5 lines changed or deleted | 5 lines changed or added | |||
eina_array.h | eina_array.h | |||
---|---|---|---|---|
skipping to change at line 254 | skipping to change at line 254 | |||
* @brief Create a new array. | * @brief Create a new array. | |||
* | * | |||
* @param step The count of pointers to add when increasing the array size. | * @param step The count of pointers to add when increasing the array size. | |||
* @return @c NULL on failure, non @c NULL otherwise. | * @return @c NULL on failure, non @c NULL otherwise. | |||
* | * | |||
* This function creates a new array. When adding an element, the array | * This function creates a new array. When adding an element, the array | |||
* allocates @p step elements. When that buffer is full, then adding | * allocates @p step elements. When that buffer is full, then adding | |||
* another element will increase the buffer by @p step elements again. | * another element will increase the buffer by @p step elements again. | |||
* | * | |||
* This function return a valid array on success, or @c NULL if memory | * This function return a valid array on success, or @c NULL if memory | |||
* allocation fails. In that case, the error is set to | * allocation fails. In that case, the error is set | |||
* #EINA_ERROR_OUT_OF_MEMORY. | * to #EINA_ERROR_OUT_OF_MEMORY. | |||
*/ | */ | |||
EAPI Eina_Array *eina_array_new(unsigned int step) EINA_WARN_UNUSED_RESULT EINA_MALLOC EINA_WARN_UNUSED_RESULT; | EAPI Eina_Array *eina_array_new(unsigned int step) EINA_WARN_UNUSED_RESULT EINA_MALLOC EINA_WARN_UNUSED_RESULT; | |||
/** | /** | |||
* @brief Free an array. | * @brief Free an array. | |||
* | * | |||
* @param array The array to free. | * @param array The array to free. | |||
* | * | |||
* This function frees @p array. It calls first eina_array_flush() then | * This function frees @p array. It calls first eina_array_flush() then | |||
* free the memory of the pointer. It does not free the memory | * free the memory of the pointer. It does not free the memory | |||
* allocated for the elements of @p array. To free them, use | * allocated for the elements of @p array. To free them, | |||
* #EINA_ARRAY_ITER_NEXT. For performance reasons, there is no check | * use #EINA_ARRAY_ITER_NEXT. For performance reasons, there is no check | |||
* of @p array. | * of @p array. | |||
*/ | */ | |||
EAPI void eina_array_free(Eina_Array *array) EINA_ARG_NONNULL(1); | EAPI void eina_array_free(Eina_Array *array) EINA_ARG_NONNULL(1); | |||
/** | /** | |||
* @brief Set the step of an array. | * @brief Set the step of an array. | |||
* | * | |||
* @param array The array. | * @param array The array. | |||
* @param sizeof_eina_array Should be the value returned by sizeof(Eina_Arr ay). | * @param sizeof_eina_array Should be the value returned by sizeof(Eina_Arr ay). | |||
* @param step The count of pointers to add when increasing the array size. | * @param step The count of pointers to add when increasing the array size. | |||
skipping to change at line 318 | skipping to change at line 318 | |||
* program may crash. | * program may crash. | |||
*/ | */ | |||
EAPI void eina_array_flush(Eina_Array *array) EINA_ARG_NONNULL(1); | EAPI void eina_array_flush(Eina_Array *array) EINA_ARG_NONNULL(1); | |||
/** | /** | |||
* @brief Rebuild an array by specifying the data to keep. | * @brief Rebuild an array by specifying the data to keep. | |||
* | * | |||
* @param array The array. | * @param array The array. | |||
* @param keep The functions which selects the data to keep. | * @param keep The functions which selects the data to keep. | |||
* @param gdata The data to pass to the function keep. | * @param gdata The data to pass to the function keep. | |||
* @return #EINA_TRUE on success, #EINA_FALSE oterwise. | * @return #EINA_TRUE on success, #EINA_FALSE otherwise. | |||
* | * | |||
* This function rebuilds @p array be specifying the elements to keep with the | * This function rebuilds @p array be specifying the elements to keep with the | |||
* function @p keep. No empty/invalid fields are left in the array. @p gdat a is | * function @p keep. No empty/invalid fields are left in the array. @p gdat a is | |||
* an additional data to pass to @p keep. For performance reasons, there is no | * an additional data to pass to @p keep. For performance reasons, there is no | |||
* check of @p array. If it is @c NULL or invalid, the program may crash. | * check of @p array. If it is @c NULL or invalid, the program may crash. | |||
* | * | |||
* If it wasn't able to remove items due to an allocation failure, it will | * If it wasn't able to remove items due to an allocation failure, it will | |||
* return #EINA_FALSE and the error is set to #EINA_ERROR_OUT_OF_MEMORY. | * return #EINA_FALSE and the error is set to #EINA_ERROR_OUT_OF_MEMORY. | |||
*/ | */ | |||
EAPI Eina_Bool eina_array_remove(Eina_Array * array, | EAPI Eina_Bool eina_array_remove(Eina_Array * array, | |||
skipping to change at line 363 | skipping to change at line 363 | |||
static inline unsigned int eina_array_count(const Eina_Array *array) EINA_A RG_NONNULL(1) EINA_WARN_UNUSED_RESULT; | static inline unsigned int eina_array_count(const Eina_Array *array) EINA_A RG_NONNULL(1) EINA_WARN_UNUSED_RESULT; | |||
/** | /** | |||
* @brief Returned a new iterator associated to an array. | * @brief Returned a new iterator associated to an array. | |||
* | * | |||
* @param array The array. | * @param array The array. | |||
* @return A new iterator. | * @return A new iterator. | |||
* | * | |||
* This function returns a newly allocated iterator associated to | * This function returns a newly allocated iterator associated to | |||
* @p array. If @p array is @c NULL or the count member of @p array is | * @p array. If @p array is @c NULL or the count member of @p array is | |||
* less or equal than 0, this function returns NULL. If the memory can | * less or equal than 0, this function returns @c NULL. If the memory can | |||
* not be allocated, NULL is returned and #EINA_ERROR_OUT_OF_MEMORY is | * not be allocated, NULL is returned and #EINA_ERROR_OUT_OF_MEMORY is | |||
* set. Otherwise, a valid iterator is returned. | * set. Otherwise, a valid iterator is returned. | |||
*/ | */ | |||
EAPI Eina_Iterator *eina_array_iterator_new(const Eina_Array *array) EINA_MALLOC EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; | EAPI Eina_Iterator *eina_array_iterator_new(const Eina_Array *array) EINA_MALLOC EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; | |||
/** | /** | |||
* @brief Returned a new accessor associated to an array. | * @brief Returned a new accessor associated to an array. | |||
* | * | |||
* @param array The array. | * @param array The array. | |||
* @return A new accessor. | * @return A new accessor. | |||
* | * | |||
* This function returns a newly allocated accessor associated to | * This function returns a newly allocated accessor associated to | |||
* @p array. If @p array is @c NULL or the count member of @p array is | * @p array. If @p array is @c NULL or the count member of @p array is | |||
* less or equal than 0, this function returns NULL. If the memory can | * less or equal than 0, this function returns @c NULL. If the memory can | |||
* not be allocated, NULL is returned and #EINA_ERROR_OUT_OF_MEMORY is | * not be allocated, @c NULL is returned and #EINA_ERROR_OUT_OF_MEMORY is | |||
* set. Otherwise, a valid accessor is returned. | * set. Otherwise, a valid accessor is returned. | |||
*/ | */ | |||
EAPI Eina_Accessor *eina_array_accessor_new(const Eina_Array *array) EINA_MALLOC EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; | EAPI Eina_Accessor *eina_array_accessor_new(const Eina_Array *array) EINA_MALLOC EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; | |||
/** | /** | |||
* @brief Provide a safe way to iterate over an array | * @brief Provide a safe way to iterate over an array | |||
* | * | |||
* @param array The array to iterate over. | * @param array The array to iterate over. | |||
* @param cb The callback to call for each item. | * @param cb The callback to call for each item. | |||
* @param fdata The user data to pass to the callback. | * @param fdata The user data to pass to the callback. | |||
* @return EINA_TRUE if it successfully iterate all items of the array. | * @return #EINA_TRUE if it successfully iterate all items of the array. | |||
* | * | |||
* This function provide a safe way to iterate over an array. @p cb should | * This function provide a safe way to iterate over an array. @p cb should | |||
* return EINA_TRUE as long as you want the function to continue iterating, | * return #EINA_TRUE as long as you want the function to continue iterating | |||
* by returning EINA_FALSE it will stop and return EINA_FALSE as a result. | , | |||
* by returning #EINA_FALSE it will stop and return #EINA_FALSE as a result | ||||
. | ||||
*/ | */ | |||
static inline Eina_Bool eina_array_foreach(Eina_Array *array, | static inline Eina_Bool eina_array_foreach(Eina_Array *array, | |||
Eina_Each_Cb cb, | Eina_Each_Cb cb, | |||
void *fdata); | void *fdata); | |||
/** | /** | |||
* @def EINA_ARRAY_ITER_NEXT | * @def EINA_ARRAY_ITER_NEXT | |||
* @brief Macro to iterate over an array easily. | * @brief Macro to iterate over an array easily. | |||
* | * | |||
* @param array The array to iterate over. | * @param array The array to iterate over. | |||
* @param index The integer number that is increased while itareting. | * @param index The integer number that is increased while itareting. | |||
End of changes. 7 change blocks. | ||||
11 lines changed or deleted | 13 lines changed or added | |||
eina_benchmark.h | eina_benchmark.h | |||
---|---|---|---|---|
skipping to change at line 364 | skipping to change at line 364 | |||
* @brief Create a new array. | * @brief Create a new array. | |||
* | * | |||
* @param name The name of the benchmark. | * @param name The name of the benchmark. | |||
* @param run The name of the run. | * @param run The name of the run. | |||
* @return @c NULL on failure, non @c NULL otherwise. | * @return @c NULL on failure, non @c NULL otherwise. | |||
* | * | |||
* This function creates a new benchmark. @p name and @p run are used | * This function creates a new benchmark. @p name and @p run are used | |||
* to name the gnuplot file that eina_benchmark_run() will create. | * to name the gnuplot file that eina_benchmark_run() will create. | |||
* | * | |||
* This function return a valid benchmark on success, or @c NULL if | * This function return a valid benchmark on success, or @c NULL if | |||
* memory allocation fails. In that case, the error is set to | * memory allocation fails. In that case, the error is set | |||
* #EINA_ERROR_OUT_OF_MEMORY. | * to #EINA_ERROR_OUT_OF_MEMORY. | |||
* | * | |||
* When the new module is not needed anymore, use | * When the new module is not needed anymore, use | |||
* eina_benchmark_free() to free the allocated memory. | * eina_benchmark_free() to free the allocated memory. | |||
*/ | */ | |||
EAPI Eina_Benchmark *eina_benchmark_new(const char *name, | EAPI Eina_Benchmark *eina_benchmark_new(const char *name, | |||
const char *run); | const char *run); | |||
/** | /** | |||
* @brief Free a benchmark object. | * @brief Free a benchmark object. | |||
* | * | |||
End of changes. 1 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
eina_binbuf.h | eina_binbuf.h | |||
---|---|---|---|---|
skipping to change at line 118 | skipping to change at line 118 | |||
EAPI Eina_Bool eina_binbuf_append_length(Eina_Binbuf *buf, const unsigned c har *str, size_t length) EINA_ARG_NONNULL(1, 2); | EAPI Eina_Bool eina_binbuf_append_length(Eina_Binbuf *buf, const unsigned c har *str, size_t length) EINA_ARG_NONNULL(1, 2); | |||
/** | /** | |||
* @brief Append a character to a string buffer, reallocating as | * @brief Append a character to a string buffer, reallocating as | |||
* necessary. | * necessary. | |||
* | * | |||
* @param buf The string buffer to append to. | * @param buf The string buffer to append to. | |||
* @param c The char to append. | * @param c The char to append. | |||
* @return #EINA_TRUE on success, #EINA_FALSE on failure. | * @return #EINA_TRUE on success, #EINA_FALSE on failure. | |||
* | * | |||
* This function inserts @p c to @p buf. If it can not insert it, | * This function inserts @p c to @p buf. If it can not insert it, #EINA_FAL | |||
* #EINA_FALSE is returned, otherwise #EINA_TRUE is returned. | SE | |||
* is returned, otherwise #EINA_TRUE is returned. | ||||
*/ | */ | |||
EAPI Eina_Bool eina_binbuf_append_char(Eina_Binbuf *buf, unsigned char c) E INA_ARG_NONNULL(1); | EAPI Eina_Bool eina_binbuf_append_char(Eina_Binbuf *buf, unsigned char c) E INA_ARG_NONNULL(1); | |||
/** | /** | |||
* @brief Insert a string of exact length to a buffer, reallocating as nece ssary. | * @brief Insert a string of exact length to a buffer, reallocating as nece ssary. | |||
* | * | |||
* @param buf The string buffer to insert to. | * @param buf The string buffer to insert to. | |||
* @param str The string to insert. | * @param str The string to insert. | |||
* @param length The exact length to use. | * @param length The exact length to use. | |||
* @param pos The position to insert the string. | * @param pos The position to insert the string. | |||
End of changes. 1 change blocks. | ||||
2 lines changed or deleted | 3 lines changed or added | |||
eina_binshare.h | eina_binshare.h | |||
---|---|---|---|---|
skipping to change at line 134 | skipping to change at line 134 | |||
*/ | */ | |||
EAPI const void *eina_binshare_ref(const void *obj); | EAPI const void *eina_binshare_ref(const void *obj); | |||
/** | /** | |||
* @brief Note that the given object has lost an instance. | * @brief Note that the given object has lost an instance. | |||
* | * | |||
* @param obj object The given object. | * @param obj object The given object. | |||
* | * | |||
* This function decreases the reference counter associated to @p obj | * This function decreases the reference counter associated to @p obj | |||
* if it exists. If that counter reaches 0, the memory associated to | * if it exists. If that counter reaches 0, the memory associated to | |||
* @p obj is freed. If @p obj is NULL, the function returns | * @p obj is freed. If @p obj is @c NULL, the function returns | |||
* immediately. | * immediately. | |||
* | * | |||
* Note that if the given pointer is not shared or NULL, bad things | * Note that if the given pointer is not shared or NULL, bad things | |||
* will happen, likely a segmentation fault. | * will happen, likely a segmentation fault. | |||
*/ | */ | |||
EAPI void eina_binshare_del(const void *obj); | EAPI void eina_binshare_del(const void *obj); | |||
/** | /** | |||
* @brief Note that the given object @b must be shared. | * @brief Note that the given object @b must be shared. | |||
* | * | |||
* @param obj the shared object to know the length. It is safe to | * @param obj the shared object to know the length. It is safe to | |||
* give NULL, in that case -1 is returned. | * give @c NULL, in that case @c -1 is returned. | |||
* @return The length of the shared object. | * @return The length of the shared object. | |||
* | * | |||
* This function is a cheap way to known the length of a shared | * This function is a cheap way to known the length of a shared | |||
* object. Note that if the given pointer is not shared, bad | * object. Note that if the given pointer is not shared, bad | |||
* things will happen, likely a segmentation fault. If in doubt, try | * things will happen, likely a segmentation fault. If in doubt, try | |||
* strlen(). | * strlen(). | |||
*/ | */ | |||
EAPI int eina_binshare_length(const void *obj) EINA_WARN_UNUSED_RES ULT; | EAPI int eina_binshare_length(const void *obj) EINA_WARN_UNUSED_RES ULT; | |||
/** | /** | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
eina_clist.h | eina_clist.h | |||
---|---|---|---|---|
skipping to change at line 217 | skipping to change at line 217 | |||
* @since 1.1.0 | * @since 1.1.0 | |||
*/ | */ | |||
static inline void eina_clist_remove(Eina_Clist *elem); | static inline void eina_clist_remove(Eina_Clist *elem); | |||
/** | /** | |||
* Get the next element. | * Get the next element. | |||
* | * | |||
* @param list The list | * @param list The list | |||
* @param elem An element | * @param elem An element | |||
* @pre @a elem is in @a list | * @pre @a elem is in @a list | |||
* @return The element after @a elem in @a list or @c NULL if @a elem is l ast in @a list | * @return The element after @a elem in @a list or @c NULL if @a elem is la st in @a list. | |||
* @since 1.1.0 | * @since 1.1.0 | |||
*/ | */ | |||
static inline Eina_Clist *eina_clist_next(const Eina_Clist *list, const Ein a_Clist *elem); | static inline Eina_Clist *eina_clist_next(const Eina_Clist *list, const Ein a_Clist *elem); | |||
/** | /** | |||
* Get the previous element. | * Get the previous element. | |||
* | * | |||
* @param list The list | * @param list The list | |||
* @param elem An element | * @param elem An element | |||
* | * | |||
* @return The element before @a elem or NULL if @a elem is the first in th e list | * @return The element before @a elem or @c NULL if @a elem is the first in the list. | |||
* @since 1.1.0 | * @since 1.1.0 | |||
*/ | */ | |||
static inline Eina_Clist *eina_clist_prev(const Eina_Clist *list, const Ein a_Clist *elem); | static inline Eina_Clist *eina_clist_prev(const Eina_Clist *list, const Ein a_Clist *elem); | |||
/** | /** | |||
* Get the first element. | * Get the first element. | |||
* | * | |||
* @param list The list | * @param list The list | |||
* @returns The first element in @a list or NULL if @a list is empty | * @returns The first element in @a list or @c NULL if @a list is empty. | |||
* @since 1.1.0 | * @since 1.1.0 | |||
*/ | */ | |||
static inline Eina_Clist *eina_clist_head(const Eina_Clist *list); | static inline Eina_Clist *eina_clist_head(const Eina_Clist *list); | |||
/** | /** | |||
* Get the last element. | * Get the last element. | |||
* | * | |||
* @param list The list | * @param list The list | |||
* @returns The last element in @a list or NULL if @a list is empty | * @returns The last element in @a list or @c NULL if @a list is empty. | |||
* @since 1.1.0 | * @since 1.1.0 | |||
*/ | */ | |||
static inline Eina_Clist *eina_clist_tail(const Eina_Clist *list); | static inline Eina_Clist *eina_clist_tail(const Eina_Clist *list); | |||
/** | /** | |||
* Check if a list is empty. | * Check if a list is empty. | |||
* | * | |||
* @param list The list | * @param list The list | |||
* @returns non-zero if @a list is empty, zero if it is not | * @returns non-zero if @a list is empty, zero if it is not | |||
* @since 1.1.0 | * @since 1.1.0 | |||
End of changes. 4 change blocks. | ||||
4 lines changed or deleted | 4 lines changed or added | |||
eina_error.h | eina_error.h | |||
---|---|---|---|---|
skipping to change at line 133 | skipping to change at line 133 | |||
*/ | */ | |||
EAPI Eina_Error eina_error_msg_static_register(const char *msg) EINA_ARG_N ONNULL(1) EINA_WARN_UNUSED_RESULT; | EAPI Eina_Error eina_error_msg_static_register(const char *msg) EINA_ARG_N ONNULL(1) EINA_WARN_UNUSED_RESULT; | |||
/** | /** | |||
* @brief Change the message of an already registered message | * @brief Change the message of an already registered message | |||
* | * | |||
* @param error The Eina_Error to change the message of | * @param error The Eina_Error to change the message of | |||
* @param msg The description of the error. This string will be | * @param msg The description of the error. This string will be | |||
* duplicated only if the error was registered with @ref eina_error_msg_reg ister | * duplicated only if the error was registered with @ref eina_error_msg_reg ister | |||
* otherwise it must remain intact for the duration. | * otherwise it must remain intact for the duration. | |||
* @return EINA_TRUE if successful, EINA_FALSE on error | * @return #EINA_TRUE if successful, #EINA_FALSE on error. | |||
* | * | |||
* This function modifies the message associated with @p error and changes | * This function modifies the message associated with @p error and changes | |||
* it to @p msg. If the error was previously registered by @ref eina_error _msg_static_register | * it to @p msg. If the error was previously registered by @ref eina_error _msg_static_register | |||
* then the string will not be duplicated, otherwise the previous message | * then the string will not be duplicated, otherwise the previous message | |||
* will be unrefed and @p msg copied. | * will be unrefed and @p msg copied. | |||
* | * | |||
* @see eina_error_msg_register() | * @see eina_error_msg_register() | |||
*/ | */ | |||
EAPI Eina_Bool eina_error_msg_modify(Eina_Error error, | EAPI Eina_Bool eina_error_msg_modify(Eina_Error error, | |||
const char *msg) EINA_ARG_NONNULL(2) ; | const char *msg) EINA_ARG_NONNULL(2) ; | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
eina_file.h | eina_file.h | |||
---|---|---|---|---|
skipping to change at line 210 | skipping to change at line 210 | |||
/** | /** | |||
* @brief List all files on the directory calling the function for every fi le found. | * @brief List all files on the directory calling the function for every fi le found. | |||
* | * | |||
* @param dir The directory name. | * @param dir The directory name. | |||
* @param recursive Iterate recursively in the directory. | * @param recursive Iterate recursively in the directory. | |||
* @param cb The callback to be called. | * @param cb The callback to be called. | |||
* @param data The data to pass to the callback. | * @param data The data to pass to the callback. | |||
* @return #EINA_TRUE on success, #EINA_FALSE otherwise. | * @return #EINA_TRUE on success, #EINA_FALSE otherwise. | |||
* | * | |||
* This function calls @p cb for each file that is in @p dir. To have @p cb | * This function calls @p cb for each file that is in @p dir. To have @p cb | |||
* called on files that are in subdirectories of @p dir @p recursive should | * called on files that are in subdirectories of @p dir @p recursive should | |||
be | * be #EINA_TRUE. In other words if @p recursive is #EINA_FALSE, only direc | |||
* EINA_TRUE. In other words if @p recursive is EINA_FALSE, only direct chi | t children | |||
ldren | * of @p dir will be operated on, if @p recursive is #EINA_TRUE the entire | |||
* of @p dir will be operated on, if @p recursive is EINA_TRUE the entire t | tree | |||
ree | ||||
* of files that is below @p dir will be operated on. | * of files that is below @p dir will be operated on. | |||
* | * | |||
* If @p cb or @p dir are @c NULL, or if @p dir is a string of size 0, | * If @p cb or @p dir are @c NULL, or if @p dir is a string of size 0, | |||
* or if @p dir can not be opened, this function returns #EINA_FALSE | * or if @p dir can not be opened, this function returns #EINA_FALSE | |||
* immediately. otherwise, it returns #EINA_TRUE. | * immediately. otherwise, it returns #EINA_TRUE. | |||
*/ | */ | |||
EAPI Eina_Bool eina_file_dir_list(const char *dir, | EAPI Eina_Bool eina_file_dir_list(const char *dir, | |||
Eina_Bool recursive, | Eina_Bool recursive, | |||
Eina_File_Dir_List_Cb cb, | Eina_File_Dir_List_Cb cb, | |||
void *data) EINA_ARG_NONN ULL(1, 3); | void *data) EINA_ARG_NONN ULL(1, 3); | |||
skipping to change at line 242 | skipping to change at line 242 | |||
* created, @c NULL is returned, otherwise, an array with each part of @p p ath | * created, @c NULL is returned, otherwise, an array with each part of @p p ath | |||
* is returned. | * is returned. | |||
*/ | */ | |||
EAPI Eina_Array *eina_file_split(char *path) EINA_WARN_UNUSED_RESULT EIN A_ARG_NONNULL(1) EINA_MALLOC; | EAPI Eina_Array *eina_file_split(char *path) EINA_WARN_UNUSED_RESULT EIN A_ARG_NONNULL(1) EINA_MALLOC; | |||
/** | /** | |||
* @brief Get an iterator to list the content of a directory. | * @brief Get an iterator to list the content of a directory. | |||
* | * | |||
* @param dir The name of the directory to list | * @param dir The name of the directory to list | |||
* @return Return an Eina_Iterator that will walk over the files and direct ories | * @return Return an Eina_Iterator that will walk over the files and direct ories | |||
* in @p dir. On failure it will return NULL. | * in @p dir. On failure it will return @c NULL. | |||
* | * | |||
* Returns an iterator for shared strings, the name of each file in @p dir will | * Returns an iterator for shared strings, the name of each file in @p dir will | |||
* only be fetched when advancing the iterator, which means there is very l ittle | * only be fetched when advancing the iterator, which means there is very l ittle | |||
* cost associated with creating the list and stopping halfway through it. | * cost associated with creating the list and stopping halfway through it. | |||
* | * | |||
* @warning The iterator will hand the user a stringshared value with the f ull | * @warning The iterator will hand the user a stringshared value with the f ull | |||
* path. The user must free the string using eina_stringshare_del() on it. | * path. The user must free the string using eina_stringshare_del() on it. | |||
* | * | |||
* @note The container for the iterator is of type DIR*. | * @note The container for the iterator is of type DIR*. | |||
* @note The iterator will walk over '.' and '..' without returning them. | * @note The iterator will walk over '.' and '..' without returning them. | |||
skipping to change at line 294 | skipping to change at line 294 | |||
*/ | */ | |||
EAPI Eina_Iterator *eina_file_stat_ls(const char *dir) EINA_WARN_UNUSED_RES ULT EINA_ARG_NONNULL(1) EINA_MALLOC; | EAPI Eina_Iterator *eina_file_stat_ls(const char *dir) EINA_WARN_UNUSED_RES ULT EINA_ARG_NONNULL(1) EINA_MALLOC; | |||
/** | /** | |||
* @brief Use information provided by Eina_Iterator of eina_file_stat_ls or eina_file_direct_ls | * @brief Use information provided by Eina_Iterator of eina_file_stat_ls or eina_file_direct_ls | |||
* to call stat in the most efficient way on your system. | * to call stat in the most efficient way on your system. | |||
* | * | |||
* @param container The container returned by the Eina_Iterator using eina_ iterator_container_get(). | * @param container The container returned by the Eina_Iterator using eina_ iterator_container_get(). | |||
* @param info The content of the current Eina_File_Direct_Info provided by the Eina_Iterator | * @param info The content of the current Eina_File_Direct_Info provided by the Eina_Iterator | |||
* @param buf Where to put the result of the stat | * @param buf Where to put the result of the stat | |||
* @return On success 0 is returned, On error -1 is returned and errno is s et appropriately. | * @return On success @c 0 is returned, On error @c -1 is returned and errn o is set appropriately. | |||
* | * | |||
* This function calls fstatat or stat depending on what your system suppor ts. This makes it efficient and simple | * This function calls fstatat or stat depending on what your system suppor ts. This makes it efficient and simple | |||
* to use on your side without complex detection already done inside Eina o n what the system can do. | * to use on your side without complex detection already done inside Eina o n what the system can do. | |||
* | * | |||
* @see eina_file_direct_ls() | * @see eina_file_direct_ls() | |||
* @see eina_file_stat_ls() | * @see eina_file_stat_ls() | |||
* @since 1.2 | * @since 1.2 | |||
*/ | */ | |||
EAPI int eina_file_statat(void *container, Eina_File_Direct_Info *info, Ein a_Stat *buf) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2, 3); | EAPI int eina_file_statat(void *container, Eina_File_Direct_Info *info, Ein a_Stat *buf) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2, 3); | |||
/** | /** | |||
* @brief Get an iterator to list the content of a directory, with direct | * @brief Get an iterator to list the content of a directory, with direct | |||
* information. | * information. | |||
* | * | |||
* @param dir The name of the directory to list | * @param dir The name of the directory to list | |||
* | * | |||
* @return Return an Eina_Iterator that will walk over the files and | * @return Return an Eina_Iterator that will walk over the files and | |||
* directory in the pointed directory. On failure it will | * directory in the pointed directory. On failure it will | |||
* return NULL. | * return @c NULL. | |||
* | * | |||
* Returns an iterator for Eina_File_Direct_Info, the name of each file in @p | * Returns an iterator for Eina_File_Direct_Info, the name of each file in @p | |||
* dir will only be fetched when advancing the iterator, which means there is | * dir will only be fetched when advancing the iterator, which means there is | |||
* cost associated with creating the list and stopping halfway through it. | * cost associated with creating the list and stopping halfway through it. | |||
* | * | |||
* @warning If readdir_r doesn't contain file type information file type wi ll | * @warning If readdir_r doesn't contain file type information file type wi ll | |||
* be DT_UNKNOW. | * be DT_UNKNOW. | |||
* @warning The Eina_File_Direct_Info returned by the iterator <b>must not< /b> | * @warning The Eina_File_Direct_Info returned by the iterator <b>must not< /b> | |||
* be modified in any way. | * be modified in any way. | |||
* @warning When the iterator is advanced or deleted the Eina_File_Direct_I nfo | * @warning When the iterator is advanced or deleted the Eina_File_Direct_I nfo | |||
skipping to change at line 359 | skipping to change at line 359 | |||
EAPI char *eina_file_path_sanitize(const char *path); | EAPI char *eina_file_path_sanitize(const char *path); | |||
/** | /** | |||
* @brief Get a read-only handler to a file. | * @brief Get a read-only handler to a file. | |||
* | * | |||
* @param name Filename to open | * @param name Filename to open | |||
* @param shared Requested a shm | * @param shared Requested a shm | |||
* @return Eina_File handle to the file | * @return Eina_File handle to the file | |||
* | * | |||
* Opens a file in read-only mode. @p name should be an absolute path. An | * Opens a file in read-only mode. @p name should be an absolute path. An | |||
* Eina_File handle can be shared among multiple instances if @p shared is | * Eina_File handle can be shared among multiple instances if @p shared | |||
* EINA_TRUE. | * is #EINA_TRUE. | |||
* | * | |||
* @since 1.1 | * @since 1.1 | |||
*/ | */ | |||
EAPI Eina_File *eina_file_open(const char *name, Eina_Bool shared) EINA_WAR N_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC; | EAPI Eina_File *eina_file_open(const char *name, Eina_Bool shared) EINA_WAR N_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC; | |||
/** | /** | |||
* @brief Unref file handler. | * @brief Unref file handler. | |||
* | * | |||
* @param file File handler to unref. | * @param file File handler to unref. | |||
* | * | |||
End of changes. 5 change blocks. | ||||
11 lines changed or deleted | 10 lines changed or added | |||
eina_hash.h | eina_hash.h | |||
---|---|---|---|---|
skipping to change at line 331 | skipping to change at line 331 | |||
* @param key_length_cb The function called when getting the size of the ke y. | * @param key_length_cb The function called when getting the size of the ke y. | |||
* @param key_cmp_cb The function called when comparing the keys. | * @param key_cmp_cb The function called when comparing the keys. | |||
* @param key_hash_cb The function called when getting the values. | * @param key_hash_cb The function called when getting the values. | |||
* @param data_free_cb The function called on each value when the hash tabl e is | * @param data_free_cb The function called on each value when the hash tabl e is | |||
* freed, or when an item is deleted from it. @c NULL can be passed as | * freed, or when an item is deleted from it. @c NULL can be passed as | |||
* callback. | * callback. | |||
* @param buckets_power_size The size of the buckets. | * @param buckets_power_size The size of the buckets. | |||
* @return The new hash table. | * @return The new hash table. | |||
* | * | |||
* This function creates a new hash table using user-defined callbacks | * This function creates a new hash table using user-defined callbacks | |||
* to manage the hash table. On failure, @c NULL is returned and | * to manage the hash table. On failure, @c NULL is returned | |||
* #EINA_ERROR_OUT_OF_MEMORY is set. If @p key_cmp_cb or @p key_hash_cb | * and #EINA_ERROR_OUT_OF_MEMORY is set. If @p key_cmp_cb or @p key_hash_cb | |||
* are @c NULL, @c NULL is returned. If @p buckets_power_size is | * are @c NULL, @c NULL is returned. If @p buckets_power_size is | |||
* smaller or equal than 2, or if it is greater or equal than 17, | * smaller or equal than 2, or if it is greater or equal than 17, | |||
* @c NULL is returned. | * @c NULL is returned. | |||
* | * | |||
* The number of buckets created will be 2 ^ @p buckets_power_size. This me ans | * The number of buckets created will be 2 ^ @p buckets_power_size. This me ans | |||
* that if @p buckets_power_size is 5, there will be created 32 buckets. fo r a | * that if @p buckets_power_size is 5, there will be created 32 buckets. fo r a | |||
* @p buckets_power_size of 8, there will be 256 buckets. | * @p buckets_power_size of 8, there will be 256 buckets. | |||
* | * | |||
* Pre-defined functions are available to create a hash table. See | * Pre-defined functions are available to create a hash table. See | |||
* eina_hash_string_djb2_new(), eina_hash_string_superfast_new(), | * eina_hash_string_djb2_new(), eina_hash_string_superfast_new(), | |||
skipping to change at line 563 | skipping to change at line 563 | |||
* hash table. | * hash table. | |||
* | * | |||
* @param hash The given hash table. | * @param hash The given hash table. | |||
* @param key The key. | * @param key The key. | |||
* @param data The data pointer to remove if the key is @c NULL. | * @param data The data pointer to remove if the key is @c NULL. | |||
* @return #EINA_FALSE if an error occurred, #EINA_TRUE otherwise. | * @return #EINA_FALSE if an error occurred, #EINA_TRUE otherwise. | |||
* | * | |||
* This function removes the entry identified by @p key or @p data | * This function removes the entry identified by @p key or @p data | |||
* from @p hash. If a free function was given to the | * from @p hash. If a free function was given to the | |||
* callback on creation, it will be called for the data being | * callback on creation, it will be called for the data being | |||
* deleted. If @p hash is @c NULL, the functions returns immediately | * deleted. If @p hash is @c NULL, the functions returns immediately #EINA_ | |||
* #EINA_FALSE. If @p key is @c NULL, then @p data is used to find the a | FALSE. | |||
* If @p key is @c NULL, then @p data is used to find the a | ||||
* match to remove, otherwise @p key is used and @p data is not | * match to remove, otherwise @p key is used and @p data is not | |||
* required and can be @c NULL. This function returns #EINA_FALSE if | * required and can be @c NULL. This function returns #EINA_FALSE if | |||
* an error occurred, #EINA_TRUE otherwise. | * an error occurred, #EINA_TRUE otherwise. | |||
* | * | |||
* @note if you know you already have the key, use | * @note if you know you already have the key, use | |||
* eina_hash_del_by_key() or eina_hash_del_by_key_hash(). If you | * eina_hash_del_by_key() or eina_hash_del_by_key_hash(). If you | |||
* know you don't have the key, use eina_hash_del_by_data() | * know you don't have the key, use eina_hash_del_by_data() | |||
* directly. | * directly. | |||
*/ | */ | |||
EAPI Eina_Bool eina_hash_del(Eina_Hash *hash, | EAPI Eina_Bool eina_hash_del(Eina_Hash *hash, | |||
skipping to change at line 638 | skipping to change at line 638 | |||
const void *key, | const void *key, | |||
const void *data) EINA_ARG_NONNULL(1, 2); | const void *data) EINA_ARG_NONNULL(1, 2); | |||
/** | /** | |||
* @brief Change the key associated with a data without triggering the | * @brief Change the key associated with a data without triggering the | |||
* free callback. | * free callback. | |||
* | * | |||
* @param hash The given hash table. | * @param hash The given hash table. | |||
* @param old_key The current key associated with the data | * @param old_key The current key associated with the data | |||
* @param new_key The new key to associate data with | * @param new_key The new key to associate data with | |||
* @return EINA_FALSE in any case but success, EINA_TRUE on success. | * @return #EINA_FALSE in any case but success, #EINA_TRUE on success. | |||
* | * | |||
* This function allows for the move of data from one key to another, | * This function allows for the move of data from one key to another, | |||
* but does not call the Eina_Free_Cb associated with the hash table | * but does not call the Eina_Free_Cb associated with the hash table | |||
* when destroying the old key. | * when destroying the old key. | |||
*/ | */ | |||
EAPI Eina_Bool eina_hash_move(Eina_Hash *hash, | EAPI Eina_Bool eina_hash_move(Eina_Hash *hash, | |||
const void *old_key, | const void *old_key, | |||
const void *new_key) EINA_ARG_NONNULL(1, 2, 3 ); | const void *new_key) EINA_ARG_NONNULL(1, 2, 3 ); | |||
/** | /** | |||
skipping to change at line 693 | skipping to change at line 693 | |||
*/ | */ | |||
EAPI void eina_hash_free_buckets(Eina_Hash *hash) EINA_ARG_NONNULL(1); | EAPI void eina_hash_free_buckets(Eina_Hash *hash) EINA_ARG_NONNULL(1); | |||
/** | /** | |||
* @brief Returns the number of entries in the given hash table. | * @brief Returns the number of entries in the given hash table. | |||
* | * | |||
* @param hash The given hash table. | * @param hash The given hash table. | |||
* @return The number of entries in the hash table. | * @return The number of entries in the hash table. | |||
* | * | |||
* This function returns the number of entries in @p hash, or 0 on | * This function returns the number of entries in @p hash, or 0 on | |||
* error. If @p hash is @c NULL, 0 is returned. | * error. If @p hash is @c NULL, @c 0 is returned. | |||
*/ | */ | |||
EAPI int eina_hash_population(const Eina_Hash *hash) EINA_ARG_NONNULL (1); | EAPI int eina_hash_population(const Eina_Hash *hash) EINA_ARG_NONNULL (1); | |||
/** | /** | |||
* @brief Add an entry to the given hash table. | * @brief Add an entry to the given hash table. | |||
* | * | |||
* @param hash The given hash table. Cannot be @c NULL. | * @param hash The given hash table. Cannot be @c NULL. | |||
* @param key A unique key. Cannot be @c NULL. | * @param key A unique key. Cannot be @c NULL. | |||
* @param key_length The length of the key. | * @param key_length The length of the key. | |||
* @param key_hash The hash that will always match key. | * @param key_hash The hash that will always match key. | |||
skipping to change at line 780 | skipping to change at line 780 | |||
* @param key The key. Cannot be @c NULL. | * @param key The key. Cannot be @c NULL. | |||
* @param key_length The length of the key. | * @param key_length The length of the key. | |||
* @param key_hash The hash that always match the key. | * @param key_hash The hash that always match the key. | |||
* @return #EINA_FALSE if an error occurred, #EINA_TRUE otherwise. | * @return #EINA_FALSE if an error occurred, #EINA_TRUE otherwise. | |||
* | * | |||
* This function removes the entry identified by @p key and | * This function removes the entry identified by @p key and | |||
* @p key_hash from @p hash. If a free function was given to the | * @p key_hash from @p hash. If a free function was given to the | |||
* callback on creation, it will be called for the data being | * callback on creation, it will be called for the data being | |||
* deleted. Do not forget to count '\\0' for string when setting the | * deleted. Do not forget to count '\\0' for string when setting the | |||
* value of @p key_length. If @p hash or @p key are @c NULL, the | * value of @p key_length. If @p hash or @p key are @c NULL, the | |||
* functions returns immediately #EINA_FALSE. This function returns | * functions returns immediately #EINA_FALSE. This function | |||
* #EINA_FALSE if an error occurred, #EINA_TRUE otherwise. | * returns #EINA_FALSE if an error occurred, #EINA_TRUE otherwise. | |||
* | * | |||
* @note if you don't have the key_hash, use eina_hash_del_by_key() instead . | * @note if you don't have the key_hash, use eina_hash_del_by_key() instead . | |||
* @note if you don't have the key, use eina_hash_del_by_data() instead. | * @note if you don't have the key, use eina_hash_del_by_data() instead. | |||
*/ | */ | |||
EAPI Eina_Bool eina_hash_del_by_key_hash(Eina_Hash *hash, | EAPI Eina_Bool eina_hash_del_by_key_hash(Eina_Hash *hash, | |||
const void *key, | const void *key, | |||
int key_length, | int key_length, | |||
int key_hash) EINA_ARG_NON NULL(1, 2); | int key_hash) EINA_ARG_NON NULL(1, 2); | |||
/** | /** | |||
skipping to change at line 806 | skipping to change at line 806 | |||
* | * | |||
* @param hash The given hash table. Cannot be @c NULL. | * @param hash The given hash table. Cannot be @c NULL. | |||
* @param key The key. Cannot be @c NULL. | * @param key The key. Cannot be @c NULL. | |||
* @return #EINA_FALSE if an error occurred, #EINA_TRUE otherwise. | * @return #EINA_FALSE if an error occurred, #EINA_TRUE otherwise. | |||
* | * | |||
* This function removes the entry identified by @p key from @p | * This function removes the entry identified by @p key from @p | |||
* hash. The key length and hash will be calculated automatically by | * hash. The key length and hash will be calculated automatically by | |||
* using functiond provided to has creation function. If a free | * using functiond provided to has creation function. If a free | |||
* function was given to the callback on creation, it will be called | * function was given to the callback on creation, it will be called | |||
* for the data being deleted. If @p hash or @p key are @c NULL, the | * for the data being deleted. If @p hash or @p key are @c NULL, the | |||
* functions returns immediately #EINA_FALSE. This function returns | * functions returns immediately #EINA_FALSE. This function | |||
* #EINA_FALSE if an error occurred, #EINA_TRUE otherwise. | * returns #EINA_FALSE if an error occurred, #EINA_TRUE otherwise. | |||
* | * | |||
* @note if you already have the key_hash, use eina_hash_del_by_key_hash() | * @note if you already have the key_hash, use eina_hash_del_by_key_hash() | |||
* instead. | * instead. | |||
* @note if you don't have the key, use eina_hash_del_by_data() instead. | * @note if you don't have the key, use eina_hash_del_by_data() instead. | |||
*/ | */ | |||
EAPI Eina_Bool eina_hash_del_by_key(Eina_Hash *hash, | EAPI Eina_Bool eina_hash_del_by_key(Eina_Hash *hash, | |||
const void *key) EINA_ARG_NONNULL(1, 2) ; | const void *key) EINA_ARG_NONNULL(1, 2) ; | |||
/** | /** | |||
* @brief Remove the entry identified by a data from the given hash table. | * @brief Remove the entry identified by a data from the given hash table. | |||
skipping to change at line 856 | skipping to change at line 856 | |||
* @param hash The given hash table. Cannot be @c NULL. | * @param hash The given hash table. Cannot be @c NULL. | |||
* @param key The key. | * @param key The key. | |||
* @param key_length The length of the key. | * @param key_length The length of the key. | |||
* @param key_hash The hash that always match the key. | * @param key_hash The hash that always match the key. | |||
* @param data The data pointer to remove if the key is @c NULL. | * @param data The data pointer to remove if the key is @c NULL. | |||
* @return #EINA_FALSE if an error occurred, #EINA_TRUE otherwise. | * @return #EINA_FALSE if an error occurred, #EINA_TRUE otherwise. | |||
* | * | |||
* This function removes the entry identified by @p key and | * This function removes the entry identified by @p key and | |||
* @p key_hash, or @p data, from @p hash. If a free function was given to | * @p key_hash, or @p data, from @p hash. If a free function was given to | |||
* the callback on creation, it will be called for the data being | * the callback on creation, it will be called for the data being | |||
* deleted. If @p hash is @c NULL, the functions returns immediately | * deleted. If @p hash is @c NULL, the functions returns immediately #EINA_ | |||
* #EINA_FALSE. If @p key is @c NULL, then @p key_length and @p key_hash | FALSE. | |||
* If @p key is @c NULL, then @p key_length and @p key_hash | ||||
* are ignored and @p data is used to find a match to remove, | * are ignored and @p data is used to find a match to remove, | |||
* otherwise @p key and @p key_hash are used and @p data is not | * otherwise @p key and @p key_hash are used and @p data is not | |||
* required and can be @c NULL. Do not forget to count '\\0' for | * required and can be @c NULL. Do not forget to count '\\0' for | |||
* string when setting the value of @p key_length. This function | * string when setting the value of @p key_length. This function | |||
* returns #EINA_FALSE if an error occurred, #EINA_TRUE otherwise. | * returns #EINA_FALSE if an error occurred, #EINA_TRUE otherwise. | |||
* | * | |||
* @note if you know you already have the key, use eina_hash_del_by_key_has h(), | * @note if you know you already have the key, use eina_hash_del_by_key_has h(), | |||
* if you know you don't have the key, use eina_hash_del_by_data() | * if you know you don't have the key, use eina_hash_del_by_data() | |||
* directly. | * directly. | |||
*/ | */ | |||
skipping to change at line 928 | skipping to change at line 928 | |||
* @brief Returned a new iterator associated to hash keys. | * @brief Returned a new iterator associated to hash keys. | |||
* | * | |||
* @param hash The hash. | * @param hash The hash. | |||
* @return A new iterator. | * @return A new iterator. | |||
* | * | |||
* This function returns a newly allocated iterator associated to @p | * This function returns a newly allocated iterator associated to @p | |||
* hash. If @p hash is not populated, this function still returns a | * hash. If @p hash is not populated, this function still returns a | |||
* valid iterator that will always return false on | * valid iterator that will always return false on | |||
* eina_iterator_next(), thus keeping API sane. | * eina_iterator_next(), thus keeping API sane. | |||
* | * | |||
* If the memory can not be allocated, NULL is returned and | * If the memory can not be allocated, NULL is returned | |||
* #EINA_ERROR_OUT_OF_MEMORY is set. Otherwise, a valid iterator is | * and #EINA_ERROR_OUT_OF_MEMORY is set. Otherwise, a valid iterator is | |||
* returned. | * returned. | |||
* | * | |||
* @warning if the hash structure changes then the iterator becomes | * @warning if the hash structure changes then the iterator becomes | |||
* invalid! That is, if you add or remove items this iterator | * invalid! That is, if you add or remove items this iterator | |||
* behavior is undefined and your program may crash! | * behavior is undefined and your program may crash! | |||
*/ | */ | |||
EAPI Eina_Iterator *eina_hash_iterator_key_new(const Eina_Hash *hash) EINA_ MALLOC EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; | EAPI Eina_Iterator *eina_hash_iterator_key_new(const Eina_Hash *hash) EINA_ MALLOC EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; | |||
/** | /** | |||
* @brief Returned a new iterator associated to hash data. | * @brief Returned a new iterator associated to hash data. | |||
* | * | |||
* @param hash The hash. | * @param hash The hash. | |||
* @return A new iterator. | * @return A new iterator. | |||
* | * | |||
* This function returns a newly allocated iterator associated to | * This function returns a newly allocated iterator associated to | |||
* @p hash. If @p hash is not populated, this function still returns a | * @p hash. If @p hash is not populated, this function still returns a | |||
* valid iterator that will always return false on | * valid iterator that will always return false on | |||
* eina_iterator_next(), thus keeping API sane. | * eina_iterator_next(), thus keeping API sane. | |||
* | * | |||
* If the memory can not be allocated, @c NULL is returned and | * If the memory can not be allocated, @c NULL is returned | |||
* #EINA_ERROR_OUT_OF_MEMORY is set. Otherwise, a valid iterator is | * and #EINA_ERROR_OUT_OF_MEMORY is set. Otherwise, a valid iterator is | |||
* returned. | * returned. | |||
* | * | |||
* @warning if the hash structure changes then the iterator becomes | * @warning if the hash structure changes then the iterator becomes | |||
* invalid. That is, if you add or remove items this iterator behavior | * invalid. That is, if you add or remove items this iterator behavior | |||
* is undefined and your program may crash. | * is undefined and your program may crash. | |||
*/ | */ | |||
EAPI Eina_Iterator *eina_hash_iterator_data_new(const Eina_Hash *hash) EINA _MALLOC EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; | EAPI Eina_Iterator *eina_hash_iterator_data_new(const Eina_Hash *hash) EINA _MALLOC EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; | |||
/** | /** | |||
* @brief Returned a new iterator associated to hash keys and data. | * @brief Returned a new iterator associated to hash keys and data. | |||
* | * | |||
* @param hash The hash. | * @param hash The hash. | |||
* @return A new iterator. | * @return A new iterator. | |||
* | * | |||
* This function returns a newly allocated iterator associated to @p | * This function returns a newly allocated iterator associated to @p | |||
* hash. If @p hash is not populated, this function still returns a | * hash. If @p hash is not populated, this function still returns a | |||
* valid iterator that will always return false on | * valid iterator that will always return false on | |||
* eina_iterator_next(), thus keeping API sane. | * eina_iterator_next(), thus keeping API sane. | |||
* | * | |||
* If the memory can not be allocated, NULL is returned and | * If the memory can not be allocated, @c NULL is returned | |||
* #EINA_ERROR_OUT_OF_MEMORY is set. Otherwise, a valid iterator is | * and #EINA_ERROR_OUT_OF_MEMORY is set. Otherwise, a valid iterator is | |||
* returned. | * returned. | |||
* | * | |||
* @note iterator data will provide values as Eina_Hash_Tuple that should n ot | * @note iterator data will provide values as Eina_Hash_Tuple that should n ot | |||
* be modified! | * be modified! | |||
* | * | |||
* @warning if the hash structure changes then the iterator becomes | * @warning if the hash structure changes then the iterator becomes | |||
* invalid! That is, if you add or remove items this iterator | * invalid! That is, if you add or remove items this iterator | |||
* behavior is undefined and your program may crash! | * behavior is undefined and your program may crash! | |||
*/ | */ | |||
EAPI Eina_Iterator *eina_hash_iterator_tuple_new(const Eina_Hash *hash) EIN A_MALLOC EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; | EAPI Eina_Iterator *eina_hash_iterator_tuple_new(const Eina_Hash *hash) EIN A_MALLOC EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; | |||
/** | /** | |||
* @brief Call a function on every member stored in the hash table | * @brief Call a function on every member stored in the hash table | |||
* | * | |||
* @param hash The hash table whose members will be walked | * @param hash The hash table whose members will be walked | |||
* @param func The function to call on each parameter | * @param func The function to call on each parameter | |||
* @param fdata The data pointer to pass to the function being called | * @param fdata The data pointer to pass to the function being called | |||
* | * | |||
* This function goes through every entry in the hash table @p hash and cal ls | * This function goes through every entry in the hash table @p hash and cal ls | |||
* the function @p func on each member. The function should @b not modify t he | * the function @p func on each member. The function should @b not modify t he | |||
* hash table contents if it returns 1. @b If the hash table contents are | * hash table contents if it returns @c 1. @b If the hash table contents ar e | |||
* modified by this function or the function wishes to stop processing it m ust | * modified by this function or the function wishes to stop processing it m ust | |||
* return 0, otherwise return 1 to keep processing. | * return @c 0, otherwise return @c 1 to keep processing. | |||
* | * | |||
* Example: | * Example: | |||
* @code | * @code | |||
* extern Eina_Hash *hash; | * extern Eina_Hash *hash; | |||
* | * | |||
* Eina_Bool hash_fn(const Eina_Hash *hash, const void *key, | * Eina_Bool hash_fn(const Eina_Hash *hash, const void *key, | |||
* void *data, void *fdata) | * void *data, void *fdata) | |||
* { | * { | |||
* printf("Func data: %s, Hash entry: %s / %p\n", | * printf("Func data: %s, Hash entry: %s / %p\n", | |||
* fdata, (const char *)key, data); | * fdata, (const char *)key, data); | |||
End of changes. 12 change blocks. | ||||
20 lines changed or deleted | 22 lines changed or added | |||
eina_inarray.h | eina_inarray.h | |||
---|---|---|---|---|
skipping to change at line 253 | skipping to change at line 253 | |||
*/ | */ | |||
EAPI void eina_inarray_free(Eina_Inarray *array) EINA_ARG_NONNULL(1); | EAPI void eina_inarray_free(Eina_Inarray *array) EINA_ARG_NONNULL(1); | |||
/** | /** | |||
* @brief Initialize inline array. | * @brief Initialize inline array. | |||
* @param array array object to initialize. | * @param array array object to initialize. | |||
* @param member_size size of each member in the array. | * @param member_size size of each member in the array. | |||
* @param step when resizing the array, do this using the following | * @param step when resizing the array, do this using the following | |||
* extra amount. | * extra amount. | |||
* | * | |||
* Initialize array. If the @a step is 0, then a safe default is | * Initialize array. If the @a step is @c 0, then a safe default is | |||
* chosen. | * chosen. | |||
* | * | |||
* This is useful for arrays inlined into other structures or | * This is useful for arrays inlined into other structures or | |||
* allocated at stack. | * allocated at stack. | |||
* | * | |||
* @see eina_inarray_flush() | * @see eina_inarray_flush() | |||
* | * | |||
* @since 1.2 | * @since 1.2 | |||
*/ | */ | |||
EAPI void eina_inarray_step_set(Eina_Inarray *array, | EAPI void eina_inarray_step_set(Eina_Inarray *array, | |||
skipping to change at line 298 | skipping to change at line 298 | |||
* @since 1.2 | * @since 1.2 | |||
*/ | */ | |||
EAPI int eina_inarray_push(Eina_Inarray *array, | EAPI int eina_inarray_push(Eina_Inarray *array, | |||
const void *data) EINA_ARG_NONNULL(1, 2); | const void *data) EINA_ARG_NONNULL(1, 2); | |||
/** | /** | |||
* @brief Copy the data to array at position found by comparison function | * @brief Copy the data to array at position found by comparison function | |||
* @param array array object | * @param array array object | |||
* @param data data to be copied | * @param data data to be copied | |||
* @param compare compare function | * @param compare compare function | |||
* @return the index of the new member or -1 on errors. | * @return the index of the new member or @c -1 on errors. | |||
* | * | |||
* Copies the given pointer contents at the array position defined by | * Copies the given pointer contents at the array position defined by | |||
* given @a compare function. The pointer is not referenced, instead | * given @a compare function. The pointer is not referenced, instead | |||
* it's contents is copied to the members array using the previously | * it's contents is copied to the members array using the previously | |||
* defined @c member_size. | * defined @c member_size. | |||
* | * | |||
* The data given to @a compare function are the pointer to member | * The data given to @a compare function are the pointer to member | |||
* memory itself, do no change it. | * memory itself, do no change it. | |||
* | * | |||
* @see eina_inarray_insert_sorted() | * @see eina_inarray_insert_sorted() | |||
skipping to change at line 323 | skipping to change at line 323 | |||
*/ | */ | |||
EAPI int eina_inarray_insert(Eina_Inarray *array, | EAPI int eina_inarray_insert(Eina_Inarray *array, | |||
const void *data, | const void *data, | |||
Eina_Compare_Cb compare) EINA_ARG_NONNULL(1, 2 , 3); | Eina_Compare_Cb compare) EINA_ARG_NONNULL(1, 2 , 3); | |||
/** | /** | |||
* @brief Copy the data to array at position found by comparison function | * @brief Copy the data to array at position found by comparison function | |||
* @param array array object | * @param array array object | |||
* @param data data to be copied | * @param data data to be copied | |||
* @param compare compare function | * @param compare compare function | |||
* @return the index of the new member or -1 on errors. | * @return the index of the new member or @c -1 on errors. | |||
* | * | |||
* Copies the given pointer contents at the array position defined by | * Copies the given pointer contents at the array position defined by | |||
* given @a compare function. The pointer is not referenced, instead | * given @a compare function. The pointer is not referenced, instead | |||
* it's contents is copied to the members array using the previously | * it's contents is copied to the members array using the previously | |||
* defined @c member_size. | * defined @c member_size. | |||
* | * | |||
* The data given to @a compare function are the pointer to member | * The data given to @a compare function are the pointer to member | |||
* memory itself, do no change it. | * memory itself, do no change it. | |||
* | * | |||
* This variation will optimize insertion position assuming the array | * This variation will optimize insertion position assuming the array | |||
skipping to change at line 348 | skipping to change at line 348 | |||
* @since 1.2 | * @since 1.2 | |||
*/ | */ | |||
EAPI int eina_inarray_insert_sorted(Eina_Inarray *array, | EAPI int eina_inarray_insert_sorted(Eina_Inarray *array, | |||
const void *data, | const void *data, | |||
Eina_Compare_Cb compare) EINA_ARG_NONNU LL(1, 2, 3); | Eina_Compare_Cb compare) EINA_ARG_NONNU LL(1, 2, 3); | |||
/** | /** | |||
* @brief Find data and remove matching member | * @brief Find data and remove matching member | |||
* @param array array object | * @param array array object | |||
* @param data data to be found and removed | * @param data data to be found and removed | |||
* @return the index of the removed member or -1 on errors. | * @return the index of the removed member or @c -1 on errors. | |||
* | * | |||
* Find data in the array and remove it. Data may be an existing | * Find data in the array and remove it. Data may be an existing | |||
* member of array (then optimized) or the contents will be matched | * member of array (then optimized) or the contents will be matched | |||
* using memcmp(). | * using memcmp(). | |||
* | * | |||
* @see eina_inarray_pop() | * @see eina_inarray_pop() | |||
* @see eina_inarray_remove_at() | * @see eina_inarray_remove_at() | |||
* | * | |||
* @since 1.2 | * @since 1.2 | |||
*/ | */ | |||
skipping to change at line 538 | skipping to change at line 538 | |||
*/ | */ | |||
EAPI int eina_inarray_search(const Eina_Inarray *array, | EAPI int eina_inarray_search(const Eina_Inarray *array, | |||
const void *data, | const void *data, | |||
Eina_Compare_Cb compare) EINA_ARG_NONNULL(1, 2 , 3); | Eina_Compare_Cb compare) EINA_ARG_NONNULL(1, 2 , 3); | |||
/** | /** | |||
* @brief Search member (binary search walk) | * @brief Search member (binary search walk) | |||
* @param array array object | * @param array array object | |||
* @param data member to search using @a compare function. | * @param data member to search using @a compare function. | |||
* @param compare compare function | * @param compare compare function | |||
* @return the member index or -1 if not found. | * @return the member index or @c -1 if not found. | |||
* | * | |||
* Uses binary search for given data as compared by @a compare function. | * Uses binary search for given data as compared by @a compare function. | |||
* | * | |||
* The data given to @a compare function are the pointer to member | * The data given to @a compare function are the pointer to member | |||
* memory itself, do no change it. | * memory itself, do no change it. | |||
* | * | |||
* @since 1.2 | * @since 1.2 | |||
*/ | */ | |||
EAPI int eina_inarray_search_sorted(const Eina_Inarray *array, | EAPI int eina_inarray_search_sorted(const Eina_Inarray *array, | |||
const void *data, | const void *data, | |||
skipping to change at line 560 | skipping to change at line 560 | |||
/** | /** | |||
* @brief Call function for each array member | * @brief Call function for each array member | |||
* @param array array object | * @param array array object | |||
* @param function callback function | * @param function callback function | |||
* @param user_data user data given to callback @a function | * @param user_data user data given to callback @a function | |||
* @return #EINA_TRUE if it successfully iterate all items of the array. | * @return #EINA_TRUE if it successfully iterate all items of the array. | |||
* | * | |||
* Call @a function for every given data in @a array. | * Call @a function for every given data in @a array. | |||
* | * | |||
* Safe way to iterate over an array. @p function should return | * Safe way to iterate over an array. @p function should return #EINA_TRUE | |||
* #EINA_TRUE as long as you want the function to continue iterating, | * as long as you want the function to continue iterating, by | |||
* by returning #EINA_FALSE it will stop and return #EINA_FALSE as a | * returning #EINA_FALSE it will stop and return #EINA_FALSE as a result. | |||
* result. | ||||
* | * | |||
* The data given to @a function are the pointer to member memory | * The data given to @a function are the pointer to member memory | |||
* itself. | * itself. | |||
* | * | |||
* @see EINA_INARRAY_FOREACH() | * @see EINA_INARRAY_FOREACH() | |||
* | * | |||
* @since 1.2 | * @since 1.2 | |||
*/ | */ | |||
EAPI Eina_Bool eina_inarray_foreach(const Eina_Inarray *array, | EAPI Eina_Bool eina_inarray_foreach(const Eina_Inarray *array, | |||
Eina_Each_Cb function, | Eina_Each_Cb function, | |||
skipping to change at line 609 | skipping to change at line 608 | |||
EAPI unsigned int eina_inarray_count(const Eina_Inarray *array) EINA_ARG_NO NNULL(1) EINA_WARN_UNUSED_RESULT; | EAPI unsigned int eina_inarray_count(const Eina_Inarray *array) EINA_ARG_NO NNULL(1) EINA_WARN_UNUSED_RESULT; | |||
/** | /** | |||
* @brief Returned a new iterator associated to an array. | * @brief Returned a new iterator associated to an array. | |||
* @param array array object | * @param array array object | |||
* @return A new iterator. | * @return A new iterator. | |||
* | * | |||
* This function returns a newly allocated iterator associated to | * This function returns a newly allocated iterator associated to | |||
* @p array. | * @p array. | |||
* | * | |||
* If the memory can not be allocated, NULL is returned and | * If the memory can not be allocated, @c NULL is returned | |||
* #EINA_ERROR_OUT_OF_MEMORY is set. Otherwise, a valid iterator is | * and #EINA_ERROR_OUT_OF_MEMORY is set. Otherwise, a valid iterator is | |||
* returned. | * returned. | |||
* | * | |||
* @warning if the array structure changes then the iterator becomes | * @warning if the array structure changes then the iterator becomes | |||
* invalid! That is, if you add or remove members this | * invalid! That is, if you add or remove members this | |||
* iterator behavior is undefined and your program may crash! | * iterator behavior is undefined and your program may crash! | |||
* | * | |||
* @since 1.2 | * @since 1.2 | |||
*/ | */ | |||
EAPI Eina_Iterator *eina_inarray_iterator_new(const Eina_Inarray *array) EI NA_MALLOC EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); | EAPI Eina_Iterator *eina_inarray_iterator_new(const Eina_Inarray *array) EI NA_MALLOC EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); | |||
/** | /** | |||
* @brief Returned a new reversed iterator associated to an array. | * @brief Returned a new reversed iterator associated to an array. | |||
* @param array array object | * @param array array object | |||
* @return A new iterator. | * @return A new iterator. | |||
* | * | |||
* This function returns a newly allocated iterator associated to | * This function returns a newly allocated iterator associated to | |||
* @p array. | * @p array. | |||
* | * | |||
* Unlike eina_inarray_iterator_new(), this will walk the array backwards. | * Unlike eina_inarray_iterator_new(), this will walk the array backwards. | |||
* | * | |||
* If the memory can not be allocated, NULL is returned and | * If the memory can not be allocated, @c NULL is returned | |||
* #EINA_ERROR_OUT_OF_MEMORY is set. Otherwise, a valid iterator is | * and #EINA_ERROR_OUT_OF_MEMORY is set. Otherwise, a valid iterator is | |||
* returned. | * returned. | |||
* | * | |||
* @warning if the array structure changes then the iterator becomes | * @warning if the array structure changes then the iterator becomes | |||
* invalid! That is, if you add or remove nodes this iterator | * invalid! That is, if you add or remove nodes this iterator | |||
* behavior is undefined and your program may crash! | * behavior is undefined and your program may crash! | |||
* | * | |||
* @since 1.2 | * @since 1.2 | |||
*/ | */ | |||
EAPI Eina_Iterator *eina_inarray_iterator_reversed_new(const Eina_Inarray * array) EINA_MALLOC EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); | EAPI Eina_Iterator *eina_inarray_iterator_reversed_new(const Eina_Inarray * array) EINA_MALLOC EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); | |||
/** | /** | |||
* @brief Returned a new accessor associated to an array. | * @brief Returned a new accessor associated to an array. | |||
* @param array array object | * @param array array object | |||
* @return A new accessor. | * @return A new accessor. | |||
* | * | |||
* This function returns a newly allocated accessor associated to | * This function returns a newly allocated accessor associated to | |||
* @p array. | * @p array. | |||
* | * | |||
* If the memory can not be allocated, NULL is returned and | * If the memory can not be allocated, @c NULL is returned | |||
* #EINA_ERROR_OUT_OF_MEMORY is set. Otherwise, a valid accessor is | * and #EINA_ERROR_OUT_OF_MEMORY is set. Otherwise, a valid accessor is | |||
* returned. | * returned. | |||
* | * | |||
* @since 1.2 | * @since 1.2 | |||
*/ | */ | |||
EAPI Eina_Accessor *eina_inarray_accessor_new(const Eina_Inarray *array) EI NA_MALLOC EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); | EAPI Eina_Accessor *eina_inarray_accessor_new(const Eina_Inarray *array) EI NA_MALLOC EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); | |||
/** | /** | |||
* @def EINA_INARRAY_FOREACH | * @def EINA_INARRAY_FOREACH | |||
* @brief walks array linearly from head to tail | * @brief walks array linearly from head to tail | |||
* @param array array object | * @param array array object | |||
End of changes. 9 change blocks. | ||||
15 lines changed or deleted | 14 lines changed or added | |||
eina_inline_array.x | eina_inline_array.x | |||
---|---|---|---|---|
skipping to change at line 54 | skipping to change at line 54 | |||
/** | /** | |||
* @brief Append a data to an array. | * @brief Append a data to an array. | |||
* | * | |||
* @param array The array. | * @param array The array. | |||
* @param data The data to add. | * @param data The data to add. | |||
* @return #EINA_TRUE on success, #EINA_FALSE otherwise. | * @return #EINA_TRUE on success, #EINA_FALSE otherwise. | |||
* | * | |||
* This function appends @p data to @p array. For performance | * This function appends @p data to @p array. For performance | |||
* reasons, there is no check of @p array. If it is @c NULL or | * reasons, there is no check of @p array. If it is @c NULL or | |||
* invalid, the program may crash. If @p data is @c NULL, or if an | * invalid, the program may crash. If @p data is @c NULL, or if an | |||
* allocation is necessary and fails, #EINA_FALSE is returned and | * allocation is necessary and fails, #EINA_FALSE is returned | |||
* #EINA_ERROR_OUT_OF_MEMORY is set. Otherwise, #EINA_TRUE is | * and #EINA_ERROR_OUT_OF_MEMORY is set. Otherwise, #EINA_TRUE is | |||
* returned. | * returned. | |||
*/ | */ | |||
static inline Eina_Bool | static inline Eina_Bool | |||
eina_array_push(Eina_Array *array, const void *data) | eina_array_push(Eina_Array *array, const void *data) | |||
{ | { | |||
if (!data) return EINA_FALSE; | if (!data) return EINA_FALSE; | |||
if (EINA_UNLIKELY((array->count + 1) > array->total)) | if (EINA_UNLIKELY((array->count + 1) > array->total)) | |||
if (!eina_array_grow(array)) | if (!eina_array_grow(array)) | |||
End of changes. 1 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
eina_inline_rectangle.x | eina_inline_rectangle.x | |||
---|---|---|---|---|
skipping to change at line 39 | skipping to change at line 39 | |||
/** | /** | |||
* @brief Check if the given spans intersect. | * @brief Check if the given spans intersect. | |||
* | * | |||
* @param c1 The column of the first span. | * @param c1 The column of the first span. | |||
* @param l1 The length of the first span. | * @param l1 The length of the first span. | |||
* @param c2 The column of the second span. | * @param c2 The column of the second span. | |||
* @param l2 The length of the second span. | * @param l2 The length of the second span. | |||
* @return #EINA_TRUE on success, #EINA_FALSE otherwise. | * @return #EINA_TRUE on success, #EINA_FALSE otherwise. | |||
* | * | |||
* This function returns #EINA_TRUE if the given spans intersect, | * This function returns #EINA_TRUE if the given spans intersect, #EINA_FA | |||
* #EINA_FALSE otherwise. | LSE | |||
* otherwise. | ||||
*/ | */ | |||
static inline int | static inline int | |||
eina_spans_intersect(int c1, int l1, int c2, int l2) | eina_spans_intersect(int c1, int l1, int c2, int l2) | |||
{ | { | |||
return (!(((c2 + l2) <= c1) || (c2 >= (c1 + l1)))); | return (!(((c2 + l2) <= c1) || (c2 >= (c1 + l1)))); | |||
} | } | |||
/** | /** | |||
* @brief Check if the given rectangle is empty. | * @brief Check if the given rectangle is empty. | |||
* | * | |||
skipping to change at line 93 | skipping to change at line 93 | |||
r->h = h; | r->h = h; | |||
} | } | |||
/** | /** | |||
* @brief Check if the given rectangles intersect. | * @brief Check if the given rectangles intersect. | |||
* | * | |||
* @param r1 The first rectangle. | * @param r1 The first rectangle. | |||
* @param r2 The second rectangle. | * @param r2 The second rectangle. | |||
* @return #EINA_TRUE if the rectangles intersect, #EINA_FALSE otherwise. | * @return #EINA_TRUE if the rectangles intersect, #EINA_FALSE otherwise. | |||
* | * | |||
* This function returns #EINA_TRUE if @p r1 and @p r2 intersect, | * This function returns #EINA_TRUE if @p r1 and @p r2 intersect, #EINA_FAL | |||
* #EINA_FALSE otherwise. No check is done on @p r1 and @p r2, so they | SE | |||
* must be valid rectangles. | * otherwise. No check is done on @p r1 and @p r2, so they must be valid | |||
* rectangles. | ||||
*/ | */ | |||
static inline Eina_Bool | static inline Eina_Bool | |||
eina_rectangles_intersect(const Eina_Rectangle *r1, const Eina_Rectangle *r 2) | eina_rectangles_intersect(const Eina_Rectangle *r1, const Eina_Rectangle *r 2) | |||
{ | { | |||
return (eina_spans_intersect(r1->x, r1->w, r2->x, r2->w) && eina_spa ns_intersect(r1->y, r1->h, r2->y, r2->h)) ? EINA_TRUE : EINA_FALSE; | return (eina_spans_intersect(r1->x, r1->w, r2->x, r2->w) && eina_spa ns_intersect(r1->y, r1->h, r2->y, r2->h)) ? EINA_TRUE : EINA_FALSE; | |||
} | } | |||
/** | /** | |||
* @brief Check if the given x-coordinate is in the rectangle . | * @brief Check if the given x-coordinate is in the rectangle . | |||
* | * | |||
End of changes. 2 change blocks. | ||||
5 lines changed or deleted | 7 lines changed or added | |||
eina_inline_stringshare.x | eina_inline_stringshare.x | |||
---|---|---|---|---|
skipping to change at line 42 | skipping to change at line 42 | |||
* | * | |||
* The string pointed by @a p_str should be previously stringshared or | * The string pointed by @a p_str should be previously stringshared or | |||
* @c NULL and it will be eina_stringshare_del(). The new string will | * @c NULL and it will be eina_stringshare_del(). The new string will | |||
* be passed to eina_stringshare_add() and then assigned to @c *p_str. | * be passed to eina_stringshare_add() and then assigned to @c *p_str. | |||
* | * | |||
* @param p_str pointer to the stringhare to be replaced. Must not be | * @param p_str pointer to the stringhare to be replaced. Must not be | |||
* @c NULL, but @c *p_str may be @c NULL as it is a valid | * @c NULL, but @c *p_str may be @c NULL as it is a valid | |||
* stringshare handle. | * stringshare handle. | |||
* @param news new string to be stringshared, may be @c NULL. | * @param news new string to be stringshared, may be @c NULL. | |||
* | * | |||
* @return #EINA_TRUE if the strings were different and thus replaced, | * @return #EINA_TRUE if the strings were different and thus replaced, #EIN | |||
* #EINA_FALSE if the strings were the same after shared. | A_FALSE | |||
* if the strings were the same after shared. | ||||
*/ | */ | |||
static inline Eina_Bool | static inline Eina_Bool | |||
eina_stringshare_replace(Eina_Stringshare **p_str, const char *news) | eina_stringshare_replace(Eina_Stringshare **p_str, const char *news) | |||
{ | { | |||
if (*p_str == news) return EINA_FALSE; | if (*p_str == news) return EINA_FALSE; | |||
news = eina_stringshare_add(news); | news = eina_stringshare_add(news); | |||
eina_stringshare_del(*p_str); | eina_stringshare_del(*p_str); | |||
if (*p_str == news) | if (*p_str == news) | |||
return EINA_FALSE; | return EINA_FALSE; | |||
skipping to change at line 71 | skipping to change at line 71 | |||
* The string pointed by @a p_str should be previously stringshared or | * The string pointed by @a p_str should be previously stringshared or | |||
* @c NULL and it will be eina_stringshare_del(). The new string will | * @c NULL and it will be eina_stringshare_del(). The new string will | |||
* be passed to eina_stringshare_add_length() and then assigned to @c *p_st r. | * be passed to eina_stringshare_add_length() and then assigned to @c *p_st r. | |||
* | * | |||
* @param p_str pointer to the stringhare to be replaced. Must not be | * @param p_str pointer to the stringhare to be replaced. Must not be | |||
* @c NULL, but @c *p_str may be @c NULL as it is a valid | * @c NULL, but @c *p_str may be @c NULL as it is a valid | |||
* stringshare handle. | * stringshare handle. | |||
* @param news new string to be stringshared, may be @c NULL. | * @param news new string to be stringshared, may be @c NULL. | |||
* @param slen The string size (<= strlen(str)). | * @param slen The string size (<= strlen(str)). | |||
* | * | |||
* @return #EINA_TRUE if the strings were different and thus replaced, | * @return #EINA_TRUE if the strings were different and thus replaced, #EIN | |||
* #EINA_FALSE if the strings were the same after shared. | A_FALSE | |||
* if the strings were the same after shared. | ||||
*/ | */ | |||
static inline Eina_Bool | static inline Eina_Bool | |||
eina_stringshare_replace_length(Eina_Stringshare **p_str, const char *news, unsigned int slen) | eina_stringshare_replace_length(Eina_Stringshare **p_str, const char *news, unsigned int slen) | |||
{ | { | |||
if (*p_str == news) return EINA_FALSE; | if (*p_str == news) return EINA_FALSE; | |||
news = eina_stringshare_add_length(news, slen); | news = eina_stringshare_add_length(news, slen); | |||
eina_stringshare_del(*p_str); | eina_stringshare_del(*p_str); | |||
if (*p_str == news) | if (*p_str == news) | |||
return EINA_FALSE; | return EINA_FALSE; | |||
End of changes. 2 change blocks. | ||||
4 lines changed or deleted | 6 lines changed or added | |||
eina_inline_trash.x | eina_inline_trash.x | |||
---|---|---|---|---|
skipping to change at line 30 | skipping to change at line 30 | |||
#define EINA_INLINE_TRASH_X__ | #define EINA_INLINE_TRASH_X__ | |||
/** | /** | |||
* @brief Initialize a trash before using it. | * @brief Initialize a trash before using it. | |||
* | * | |||
* @param trash The trash. | * @param trash The trash. | |||
* | * | |||
* This function just set to zero the trash to correctly | * This function just set to zero the trash to correctly | |||
* initialize it. | * initialize it. | |||
* | * | |||
* @note You can just set *trash to NULL and you will have | * @note You can just set *trash to @c NULL and you will have | |||
* the same result. | * the same result. | |||
*/ | */ | |||
static inline void | static inline void | |||
eina_trash_init(Eina_Trash **trash) | eina_trash_init(Eina_Trash **trash) | |||
{ | { | |||
*trash = NULL; | *trash = NULL; | |||
} | } | |||
/** | /** | |||
* @brief Push an unused pointer in the trash instead of freeing it. | * @brief Push an unused pointer in the trash instead of freeing it. | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
eina_inline_ustringshare.x | eina_inline_ustringshare.x | |||
---|---|---|---|---|
skipping to change at line 44 | skipping to change at line 44 | |||
* | * | |||
* The string pointed by @a p_str should be previously stringshared or | * The string pointed by @a p_str should be previously stringshared or | |||
* @c NULL and it will be eina_ustringshare_del(). The new string will | * @c NULL and it will be eina_ustringshare_del(). The new string will | |||
* be passed to eina_ustringshare_add() and then assigned to @c *p_str. | * be passed to eina_ustringshare_add() and then assigned to @c *p_str. | |||
* | * | |||
* @param p_str pointer to the stringhare to be replaced. Must not be | * @param p_str pointer to the stringhare to be replaced. Must not be | |||
* @c NULL, but @c *p_str may be @c NULL as it is a valid | * @c NULL, but @c *p_str may be @c NULL as it is a valid | |||
* stringshare handle. | * stringshare handle. | |||
* @param news new string to be stringshared, may be @c NULL. | * @param news new string to be stringshared, may be @c NULL. | |||
* | * | |||
* @return #EINA_TRUE if the strings were different and thus replaced, | * @return #EINA_TRUE if the strings were different and thus replaced, #EIN | |||
* #EINA_FALSE if the strings were the same after shared. | A_FALSE | |||
* if the strings were the same after shared. | ||||
*/ | */ | |||
static inline Eina_Bool | static inline Eina_Bool | |||
eina_ustringshare_replace(const Eina_Unicode **p_str, const Eina_Unicode *n ews) | eina_ustringshare_replace(const Eina_Unicode **p_str, const Eina_Unicode *n ews) | |||
{ | { | |||
if (*p_str == news) return EINA_FALSE; | if (*p_str == news) return EINA_FALSE; | |||
news = eina_ustringshare_add(news); | news = eina_ustringshare_add(news); | |||
eina_ustringshare_del(*p_str); | eina_ustringshare_del(*p_str); | |||
if (*p_str == news) | if (*p_str == news) | |||
return EINA_FALSE; | return EINA_FALSE; | |||
skipping to change at line 73 | skipping to change at line 73 | |||
* The string pointed by @a p_str should be previously stringshared or | * The string pointed by @a p_str should be previously stringshared or | |||
* @c NULL and it will be eina_ustringshare_del(). The new string will | * @c NULL and it will be eina_ustringshare_del(). The new string will | |||
* be passed to eina_ustringshare_add_length() and then assigned to @c *p_s tr. | * be passed to eina_ustringshare_add_length() and then assigned to @c *p_s tr. | |||
* | * | |||
* @param p_str pointer to the stringhare to be replaced. Must not be | * @param p_str pointer to the stringhare to be replaced. Must not be | |||
* @c NULL, but @c *p_str may be @c NULL as it is a valid | * @c NULL, but @c *p_str may be @c NULL as it is a valid | |||
* stringshare handle. | * stringshare handle. | |||
* @param news new string to be stringshared, may be @c NULL. | * @param news new string to be stringshared, may be @c NULL. | |||
* @param slen The string size (<= strlen(str)). | * @param slen The string size (<= strlen(str)). | |||
* | * | |||
* @return #EINA_TRUE if the strings were different and thus replaced, | * @return #EINA_TRUE if the strings were different and thus replaced, #EIN | |||
* #EINA_FALSE if the strings were the same after shared. | A_FALSE | |||
* if the strings were the same after shared. | ||||
*/ | */ | |||
static inline Eina_Bool | static inline Eina_Bool | |||
eina_ustringshare_replace_length(const Eina_Unicode **p_str, const Eina_Uni code *news, unsigned int slen) | eina_ustringshare_replace_length(const Eina_Unicode **p_str, const Eina_Uni code *news, unsigned int slen) | |||
{ | { | |||
if (*p_str == news) return EINA_FALSE; | if (*p_str == news) return EINA_FALSE; | |||
news = eina_ustringshare_add_length(news, slen); | news = eina_ustringshare_add_length(news, slen); | |||
eina_ustringshare_del(*p_str); | eina_ustringshare_del(*p_str); | |||
if (*p_str == news) | if (*p_str == news) | |||
return EINA_FALSE; | return EINA_FALSE; | |||
End of changes. 2 change blocks. | ||||
4 lines changed or deleted | 6 lines changed or added | |||
eina_inline_value.x | eina_inline_value.x | |||
---|---|---|---|---|
skipping to change at line 233 | skipping to change at line 233 | |||
{ | { | |||
uint64_t *ta = (uint64_t *) pa, *tb = (uint64_t *) pb; | uint64_t *ta = (uint64_t *) pa, *tb = (uint64_t *) pb; | |||
if (*ta < *tb) | if (*ta < *tb) | |||
return -1; | return -1; | |||
else if (*ta > *tb) | else if (*ta > *tb) | |||
return 1; | return 1; | |||
return 0; | return 0; | |||
} | } | |||
else if (type == EINA_VALUE_TYPE_CHAR) | else if (type == EINA_VALUE_TYPE_CHAR) | |||
{ | { | |||
char *ta = (char *) pa, *tb = (char *) pb; | signed char *ta = (signed char *) pa, *tb = (signed char *) pb; | |||
if (*ta < *tb) | if (*ta < *tb) | |||
return -1; | return -1; | |||
else if (*ta > *tb) | else if (*ta > *tb) | |||
return 1; | return 1; | |||
return 0; | return 0; | |||
} | } | |||
else if (type == EINA_VALUE_TYPE_SHORT) | else if (type == EINA_VALUE_TYPE_SHORT) | |||
{ | { | |||
short *ta = (short *) pa, *tb = (short *) pb; | short *ta = (short *) pa, *tb = (short *) pb; | |||
if (*ta < *tb) | if (*ta < *tb) | |||
skipping to change at line 379 | skipping to change at line 379 | |||
return EINA_TRUE; | return EINA_TRUE; | |||
} | } | |||
else if (type == EINA_VALUE_TYPE_UINT64) | else if (type == EINA_VALUE_TYPE_UINT64) | |||
{ | { | |||
uint64_t *tmem = (uint64_t *) mem; | uint64_t *tmem = (uint64_t *) mem; | |||
*tmem = va_arg(args, uint64_t); | *tmem = va_arg(args, uint64_t); | |||
return EINA_TRUE; | return EINA_TRUE; | |||
} | } | |||
else if (type == EINA_VALUE_TYPE_CHAR) | else if (type == EINA_VALUE_TYPE_CHAR) | |||
{ | { | |||
char *tmem = (char *) mem; | signed char *tmem = (signed char *) mem; | |||
*tmem = va_arg(args, int); /* promoted by va_arg */ | *tmem = va_arg(args, int); /* promoted by va_arg */ | |||
return EINA_TRUE; | return EINA_TRUE; | |||
} | } | |||
else if (type == EINA_VALUE_TYPE_SHORT) | else if (type == EINA_VALUE_TYPE_SHORT) | |||
{ | { | |||
short *tmem = (short *) mem; | short *tmem = (short *) mem; | |||
*tmem = va_arg(args, int); /* promoted by va_arg */ | *tmem = va_arg(args, int); /* promoted by va_arg */ | |||
return EINA_TRUE; | return EINA_TRUE; | |||
} | } | |||
else if (type == EINA_VALUE_TYPE_INT) | else if (type == EINA_VALUE_TYPE_INT) | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
eina_inlist.h | eina_inlist.h | |||
---|---|---|---|---|
skipping to change at line 437 | skipping to change at line 437 | |||
* Add a new node to end of a list. | * Add a new node to end of a list. | |||
* | * | |||
* @note this code is meant to be fast: appends are O(1) and do not | * @note this code is meant to be fast: appends are O(1) and do not | |||
* walk @a in_list. | * walk @a in_list. | |||
* | * | |||
* @note @a in_item is considered to be in no list. If it was in another | * @note @a in_item is considered to be in no list. If it was in another | |||
* list before, eina_inlist_remove() it before adding. No | * list before, eina_inlist_remove() it before adding. No | |||
* check of @a new_l prev and next pointers is done, so it's safe | * check of @a new_l prev and next pointers is done, so it's safe | |||
* to have them uninitialized. | * to have them uninitialized. | |||
* | * | |||
* @param in_list existing list head or NULL to create a new list. | * @param in_list existing list head or @c NULL to create a new list. | |||
* @param in_item new list node, must not be NULL. | * @param in_item new list node, must not be @c NULL. | |||
* | * | |||
* @return the new list head. Use it and not @a in_list anymore. | * @return the new list head. Use it and not @a in_list anymore. | |||
*/ | */ | |||
EAPI Eina_Inlist *eina_inlist_append(Eina_Inlist *in_list, | EAPI Eina_Inlist *eina_inlist_append(Eina_Inlist *in_list, | |||
Eina_Inlist *in_item) EINA_ARG_NONNULL (2) EINA_WARN_UNUSED_RESULT; | Eina_Inlist *in_item) EINA_ARG_NONNULL (2) EINA_WARN_UNUSED_RESULT; | |||
/** | /** | |||
* Add a new node to beginning of list. | * Add a new node to beginning of list. | |||
* | * | |||
* @note this code is meant to be fast: appends are O(1) and do not | * @note this code is meant to be fast: appends are O(1) and do not | |||
* walk @a in_list. | * walk @a in_list. | |||
* | * | |||
* @note @a new_l is considered to be in no list. If it was in another | * @note @a new_l is considered to be in no list. If it was in another | |||
* list before, eina_inlist_remove() it before adding. No | * list before, eina_inlist_remove() it before adding. No | |||
* check of @a new_l prev and next pointers is done, so it's safe | * check of @a new_l prev and next pointers is done, so it's safe | |||
* to have them uninitialized. | * to have them uninitialized. | |||
* | * | |||
* @param in_list existing list head or NULL to create a new list. | * @param in_list existing list head or @c NULL to create a new list. | |||
* @param in_item new list node, must not be NULL. | * @param in_item new list node, must not be @c NULL. | |||
* | * | |||
* @return the new list head. Use it and not @a in_list anymore. | * @return the new list head. Use it and not @a in_list anymore. | |||
*/ | */ | |||
EAPI Eina_Inlist *eina_inlist_prepend(Eina_Inlist *in_list, | EAPI Eina_Inlist *eina_inlist_prepend(Eina_Inlist *in_list, | |||
Eina_Inlist *in_item) EINA_ARG_NONNUL L(2) EINA_WARN_UNUSED_RESULT; | Eina_Inlist *in_item) EINA_ARG_NONNUL L(2) EINA_WARN_UNUSED_RESULT; | |||
/** | /** | |||
* Add a new node after the given relative item in list. | * Add a new node after the given relative item in list. | |||
* | * | |||
* @note this code is meant to be fast: appends are O(1) and do not | * @note this code is meant to be fast: appends are O(1) and do not | |||
skipping to change at line 480 | skipping to change at line 480 | |||
* @note @a in_item_l is considered to be in no list. If it was in another | * @note @a in_item_l is considered to be in no list. If it was in another | |||
* list before, eina_inlist_remove() it before adding. No | * list before, eina_inlist_remove() it before adding. No | |||
* check of @a in_item prev and next pointers is done, so it's safe | * check of @a in_item prev and next pointers is done, so it's safe | |||
* to have them uninitialized. | * to have them uninitialized. | |||
* | * | |||
* @note @a in_relative is considered to be inside @a in_list, no checks ar e | * @note @a in_relative is considered to be inside @a in_list, no checks ar e | |||
* done to confirm that and giving nodes from different lists | * done to confirm that and giving nodes from different lists | |||
* will lead to problems. Giving NULL @a in_relative is the same as | * will lead to problems. Giving NULL @a in_relative is the same as | |||
* eina_list_append(). | * eina_list_append(). | |||
* | * | |||
* @param in_list existing list head or NULL to create a new list. | * @param in_list existing list head or @c NULL to create a new list. | |||
* @param in_item new list node, must not be NULL. | * @param in_item new list node, must not be @c NULL. | |||
* @param in_relative reference node, @a in_item will be added after it. | * @param in_relative reference node, @a in_item will be added after it. | |||
* | * | |||
* @return the new list head. Use it and not @a list anymore. | * @return the new list head. Use it and not @a list anymore. | |||
*/ | */ | |||
EAPI Eina_Inlist *eina_inlist_append_relative(Eina_Inlist *in_list, | EAPI Eina_Inlist *eina_inlist_append_relative(Eina_Inlist *in_list, | |||
Eina_Inlist *in_item, | Eina_Inlist *in_item, | |||
Eina_Inlist *in_relative) EIN A_ARG_NONNULL(2) EINA_WARN_UNUSED_RESULT; | Eina_Inlist *in_relative) EIN A_ARG_NONNULL(2) EINA_WARN_UNUSED_RESULT; | |||
/** | /** | |||
* Add a new node before the given relative item in list. | * Add a new node before the given relative item in list. | |||
skipping to change at line 506 | skipping to change at line 506 | |||
* @note @a in_item is considered to be in no list. If it was in another | * @note @a in_item is considered to be in no list. If it was in another | |||
* list before, eina_inlist_remove() it before adding. No | * list before, eina_inlist_remove() it before adding. No | |||
* check of @a in_item prev and next pointers is done, so it's safe | * check of @a in_item prev and next pointers is done, so it's safe | |||
* to have them uninitialized. | * to have them uninitialized. | |||
* | * | |||
* @note @a in_relative is considered to be inside @a in_list, no checks ar e | * @note @a in_relative is considered to be inside @a in_list, no checks ar e | |||
* done to confirm that and giving nodes from different lists | * done to confirm that and giving nodes from different lists | |||
* will lead to problems. Giving NULL @a in_relative is the same as | * will lead to problems. Giving NULL @a in_relative is the same as | |||
* eina_list_prepend(). | * eina_list_prepend(). | |||
* | * | |||
* @param in_list existing list head or NULL to create a new list. | * @param in_list existing list head or @c NULL to create a new list. | |||
* @param in_item new list node, must not be NULL. | * @param in_item new list node, must not be @c NULL. | |||
* @param in_relative reference node, @a in_item will be added before it. | * @param in_relative reference node, @a in_item will be added before it. | |||
* | * | |||
* @return the new list head. Use it and not @a in_list anymore. | * @return the new list head. Use it and not @a in_list anymore. | |||
*/ | */ | |||
EAPI Eina_Inlist *eina_inlist_prepend_relative(Eina_Inlist *in_list, | EAPI Eina_Inlist *eina_inlist_prepend_relative(Eina_Inlist *in_list, | |||
Eina_Inlist *in_item, | Eina_Inlist *in_item, | |||
Eina_Inlist *in_relative) EI NA_ARG_NONNULL(2) EINA_WARN_UNUSED_RESULT; | Eina_Inlist *in_relative) EI NA_ARG_NONNULL(2) EINA_WARN_UNUSED_RESULT; | |||
/** | /** | |||
* Remove node from list. | * Remove node from list. | |||
* | * | |||
* @note this code is meant to be fast: appends are O(1) and do not | * @note this code is meant to be fast: appends are O(1) and do not | |||
* walk @a list. | * walk @a list. | |||
* | * | |||
* @note @a in_item is considered to be inside @a in_list, no checks are | * @note @a in_item is considered to be inside @a in_list, no checks are | |||
* done to confirm that and giving nodes from different lists | * done to confirm that and giving nodes from different lists | |||
* will lead to problems, especially if @a in_item is the head since | * will lead to problems, especially if @a in_item is the head since | |||
* it will be different from @a list and the wrong new head will | * it will be different from @a list and the wrong new head will | |||
* be returned. | * be returned. | |||
* | * | |||
* @param in_list existing list head, must not be NULL. | * @param in_list existing list head, must not be @c NULL. | |||
* @param in_item existing list node, must not be NULL. | * @param in_item existing list node, must not be @c NULL. | |||
* | * | |||
* @return the new list head. Use it and not @a list anymore. | * @return the new list head. Use it and not @a list anymore. | |||
*/ | */ | |||
EAPI Eina_Inlist *eina_inlist_remove(Eina_Inlist *in_list, | EAPI Eina_Inlist *eina_inlist_remove(Eina_Inlist *in_list, | |||
Eina_Inlist *in_item) EINA_ARG_NONNU LL(1, 2) EINA_WARN_UNUSED_RESULT; | Eina_Inlist *in_item) EINA_ARG_NONNU LL(1, 2) EINA_WARN_UNUSED_RESULT; | |||
/** | /** | |||
* Find given node in list, returns itself if found, NULL if not. | * Find given node in list, returns itself if found, NULL if not. | |||
* | * | |||
* @warning this is an expensive call and has O(n) cost, possibly | * @warning this is an expensive call and has O(n) cost, possibly | |||
* walking the whole list. | * walking the whole list. | |||
* | * | |||
* @param in_list existing list to search @a in_item in, must not be NULL. | * @param in_list existing list to search @a in_item in, must not be @c NUL | |||
* @param in_item what to search for, must not be NULL. | L. | |||
* @param in_item what to search for, must not be @c NULL. | ||||
* | * | |||
* @return @a in_item if found, NULL if not. | * @return @a in_item if found, @c NULL if not. | |||
*/ | */ | |||
EAPI Eina_Inlist *eina_inlist_find(Eina_Inlist *in_list, | EAPI Eina_Inlist *eina_inlist_find(Eina_Inlist *in_list, | |||
Eina_Inlist *in_item) EINA_ARG_NONNULL (2) EINA_WARN_UNUSED_RESULT; | Eina_Inlist *in_item) EINA_ARG_NONNULL (2) EINA_WARN_UNUSED_RESULT; | |||
/** | /** | |||
* Move existing node to beginning of list. | * Move existing node to beginning of list. | |||
* | * | |||
* @note this code is meant to be fast: appends are O(1) and do not | * @note this code is meant to be fast: appends are O(1) and do not | |||
* walk @a list. | * walk @a list. | |||
* | * | |||
* @note @a item is considered to be inside @a list. No checks are | * @note @a item is considered to be inside @a list. No checks are | |||
* done to confirm this, and giving nodes from different lists | * done to confirm this, and giving nodes from different lists | |||
* will lead to problems. | * will lead to problems. | |||
* | * | |||
* @param list existing list head or NULL to create a new list. | * @param list existing list head or @c NULL to create a new list. | |||
* @param item list node to move to beginning (head), must not be NULL. | * @param item list node to move to beginning (head), must not be @c NULL. | |||
* | * | |||
* @return the new list head. Use it and not @a list anymore. | * @return the new list head. Use it and not @a list anymore. | |||
*/ | */ | |||
EAPI Eina_Inlist *eina_inlist_promote(Eina_Inlist *list, | EAPI Eina_Inlist *eina_inlist_promote(Eina_Inlist *list, | |||
Eina_Inlist *item) EINA_ARG_NONNULL (1, 2) EINA_WARN_UNUSED_RESULT; | Eina_Inlist *item) EINA_ARG_NONNULL (1, 2) EINA_WARN_UNUSED_RESULT; | |||
/** | /** | |||
* Move existing node to end of list. | * Move existing node to end of list. | |||
* | * | |||
* @note this code is meant to be fast: appends are O(1) and do not | * @note this code is meant to be fast: appends are O(1) and do not | |||
* walk @a list. | * walk @a list. | |||
* | * | |||
* @note @a item is considered to be inside @a list. No checks are | * @note @a item is considered to be inside @a list. No checks are | |||
* done to confirm this, and giving nodes from different lists | * done to confirm this, and giving nodes from different lists | |||
* will lead to problems. | * will lead to problems. | |||
* | * | |||
* @param list existing list head or NULL to create a new list. | * @param list existing list head or @c NULL to create a new list. | |||
* @param item list node to move to end (tail), must not be NULL. | * @param item list node to move to end (tail), must not be @c NULL. | |||
* | * | |||
* @return the new list head. Use it and not @a list anymore. | * @return the new list head. Use it and not @a list anymore. | |||
*/ | */ | |||
EAPI Eina_Inlist *eina_inlist_demote(Eina_Inlist *list, | EAPI Eina_Inlist *eina_inlist_demote(Eina_Inlist *list, | |||
Eina_Inlist *item) EINA_ARG_NONNULL( 1, 2) EINA_WARN_UNUSED_RESULT; | Eina_Inlist *item) EINA_ARG_NONNULL( 1, 2) EINA_WARN_UNUSED_RESULT; | |||
/** | /** | |||
* @brief Get the count of the number of items in a list. | * @brief Get the count of the number of items in a list. | |||
* | * | |||
* @param list The list whose count to return. | * @param list The list whose count to return. | |||
* @return The number of members in the list. | * @return The number of members in the list. | |||
* | * | |||
* This function returns how many members @p list contains. If the | * This function returns how many members @p list contains. If the | |||
* list is @c NULL, 0 is returned. | * list is @c NULL, @c 0 is returned. | |||
* | * | |||
* @warning This is an order-N operation and so the time will depend | * @warning This is an order-N operation and so the time will depend | |||
* on the number of elements on the list, so, it might become | * on the number of elements on the list, so, it might become | |||
* slow for big lists! | * slow for big lists! | |||
*/ | */ | |||
EAPI unsigned int eina_inlist_count(const Eina_Inlist *list) EINA_WARN_UN USED_RESULT; | EAPI unsigned int eina_inlist_count(const Eina_Inlist *list) EINA_WARN_UN USED_RESULT; | |||
/** | /** | |||
* @brief Returns a new iterator associated to @a list. | * @brief Returns a new iterator associated to @a list. | |||
* | * | |||
* @param in_list The list. | * @param in_list The list. | |||
* @return A new iterator. | * @return A new iterator. | |||
* | * | |||
* This function returns a newly allocated iterator associated to @p | * This function returns a newly allocated iterator associated to @p | |||
* in_list. If @p in_list is @c NULL or the count member of @p in_list is l ess | * in_list. If @p in_list is @c NULL or the count member of @p in_list is l ess | |||
* or equal than 0, this function still returns a valid iterator that | * or equal than 0, this function still returns a valid iterator that | |||
* will always return false on eina_iterator_next(), thus keeping API | * will always return false on eina_iterator_next(), thus keeping API | |||
* sane. | * sane. | |||
* | * | |||
* If the memory can not be allocated, NULL is returned and | * If the memory can not be allocated, @c NULL is returned | |||
* #EINA_ERROR_OUT_OF_MEMORY is set. Otherwise, a valid iterator is | * and #EINA_ERROR_OUT_OF_MEMORY is set. Otherwise, a valid iterator | |||
* returned. | * is returned. | |||
* | * | |||
* @warning if the list structure changes then the iterator becomes | * @warning if the list structure changes then the iterator becomes | |||
* invalid, and if you add or remove nodes iterator | * invalid, and if you add or remove nodes iterator | |||
* behavior is undefined, and your program may crash! | * behavior is undefined, and your program may crash! | |||
*/ | */ | |||
EAPI Eina_Iterator *eina_inlist_iterator_new(const Eina_Inlist *in_list) EI NA_MALLOC EINA_WARN_UNUSED_RESULT; | EAPI Eina_Iterator *eina_inlist_iterator_new(const Eina_Inlist *in_list) EI NA_MALLOC EINA_WARN_UNUSED_RESULT; | |||
/** | /** | |||
* @brief Returns a new accessor associated to a list. | * @brief Returns a new accessor associated to a list. | |||
* | * | |||
* @param in_list The list. | * @param in_list The list. | |||
* @return A new accessor. | * @return A new accessor. | |||
* | * | |||
* This function returns a newly allocated accessor associated to | * This function returns a newly allocated accessor associated to | |||
* @p in_list. If @p in_list is @c NULL or the count member of @p in_list i s | * @p in_list. If @p in_list is @c NULL or the count member of @p in_list i s | |||
* less or equal than 0, this function returns @c NULL. If the memory can | * less or equal than @c 0, this function returns @c NULL. If the memory ca n | |||
* not be allocated, @c NULL is returned and #EINA_ERROR_OUT_OF_MEMORY is | * not be allocated, @c NULL is returned and #EINA_ERROR_OUT_OF_MEMORY is | |||
* set. Otherwise, a valid accessor is returned. | * set. Otherwise, a valid accessor is returned. | |||
*/ | */ | |||
EAPI Eina_Accessor *eina_inlist_accessor_new(const Eina_Inlist *in_list) EI NA_MALLOC EINA_WARN_UNUSED_RESULT; | EAPI Eina_Accessor *eina_inlist_accessor_new(const Eina_Inlist *in_list) EI NA_MALLOC EINA_WARN_UNUSED_RESULT; | |||
/** | /** | |||
* @brief Insert a new node into a sorted list. | * @brief Insert a new node into a sorted list. | |||
* | * | |||
* @param list The given linked list, @b must be sorted. | * @param list The given linked list, @b must be sorted. | |||
* @param item list node to insert, must not be NULL. | * @param item list node to insert, must not be @c NULL. | |||
* @param func The function called for the sort. | * @param func The function called for the sort. | |||
* @return A list pointer. | * @return A list pointer. | |||
* @since 1.1.0 | * @since 1.1.0 | |||
* | * | |||
* This function inserts item into a linked list assuming it was | * This function inserts item into a linked list assuming it was | |||
* sorted and the result will be sorted. If @p list is @c NULLL, item | * sorted and the result will be sorted. If @p list is @c NULLL, item | |||
* is returned. On success, a new list pointer that should be | * is returned. On success, a new list pointer that should be | |||
* used in place of the one given to this function is | * used in place of the one given to this function is | |||
* returned. Otherwise, the old pointer is returned. See eina_error_get(). | * returned. Otherwise, the old pointer is returned. See eina_error_get(). | |||
* | * | |||
skipping to change at line 698 | skipping to change at line 698 | |||
* @since 1.1.0 | * @since 1.1.0 | |||
* | * | |||
* See eina_inlist_sorted_state_insert() for more information. | * See eina_inlist_sorted_state_insert() for more information. | |||
*/ | */ | |||
EAPI void eina_inlist_sorted_state_free(Eina_Inlist_Sorted_State *state); | EAPI void eina_inlist_sorted_state_free(Eina_Inlist_Sorted_State *state); | |||
/** | /** | |||
* @brief Insert a new node into a sorted list. | * @brief Insert a new node into a sorted list. | |||
* | * | |||
* @param list The given linked list, @b must be sorted. | * @param list The given linked list, @b must be sorted. | |||
* @param item list node to insert, must not be NULL. | * @param item list node to insert, must not be @c NULL. | |||
* @param func The function called for the sort. | * @param func The function called for the sort. | |||
* @param state The current array for initial dichotomic search | * @param state The current array for initial dichotomic search | |||
* @return A list pointer. | * @return A list pointer. | |||
* @since 1.1.0 | * @since 1.1.0 | |||
* | * | |||
* This function inserts item into a linked list assuming @p state match | * This function inserts item into a linked list assuming @p state match | |||
* the exact content order of the list. It use @p state to do a fast | * the exact content order of the list. It use @p state to do a fast | |||
* first step dichotomic search before starting to walk the inlist itself. | * first step dichotomic search before starting to walk the inlist itself. | |||
* This make this code much faster than eina_inlist_sorted_insert() as it | * This make this code much faster than eina_inlist_sorted_insert() as it | |||
* doesn't need to walk the list at all. The result is of course a sorted | * doesn't need to walk the list at all. The result is of course a sorted | |||
End of changes. 14 change blocks. | ||||
24 lines changed or deleted | 25 lines changed or added | |||
eina_iterator.h | eina_iterator.h | |||
---|---|---|---|---|
skipping to change at line 236 | skipping to change at line 236 | |||
/** | /** | |||
* @brief Iterate over the container and execute a callback on each element . | * @brief Iterate over the container and execute a callback on each element . | |||
* | * | |||
* @param iterator The iterator. | * @param iterator The iterator. | |||
* @param callback The callback called on each iteration. | * @param callback The callback called on each iteration. | |||
* @param fdata The data passed to the callback. | * @param fdata The data passed to the callback. | |||
* | * | |||
* This function iterates over the elements pointed by @p iterator, | * This function iterates over the elements pointed by @p iterator, | |||
* beginning from the current element. For Each element, the callback | * beginning from the current element. For Each element, the callback | |||
* @p cb is called with the data @p fdata. If @p iterator is @c NULL, | * @p cb is called with the data @p fdata. If @p iterator is @c NULL, | |||
* the function returns immediately. Also, if @p cb returns @c | * the function returns immediately. Also, if @p cb returns #EINA_FALSE, | |||
* EINA_FALSE, the iteration stops at that point, if @p cb returns @c EINA_ | * the iteration stops at that point, if @p cb returns #EINA_TRUE | |||
TRUE | ||||
* the iteration continues. | * the iteration continues. | |||
*/ | */ | |||
EAPI void eina_iterator_foreach(Eina_Iterator *iterator, | EAPI void eina_iterator_foreach(Eina_Iterator *iterator, | |||
Eina_Each_Cb callback, | Eina_Each_Cb callback, | |||
const void *fdata) EINA_ARG_NONNULL(1, 2 ); | const void *fdata) EINA_ARG_NONNULL(1, 2 ); | |||
/** | /** | |||
* @brief Lock the container of the iterator. | * @brief Lock the container of the iterator. | |||
* | * | |||
* @param iterator The iterator. | * @param iterator The iterator. | |||
* @return #EINA_TRUE on success, #EINA_FALSE otherwise. | * @return #EINA_TRUE on success, #EINA_FALSE otherwise. | |||
* | * | |||
* If the container of the @p iterator permits it, it will be locked. When a | * If the container of the @p iterator permits it, it will be locked. When a | |||
* container is locked calling eina_iterator_foreach() on it will return | * container is locked calling eina_iterator_foreach() on it will return | |||
* immediately. If @p iterator is @c NULL or if a problem occurred, #EINA_F ALSE | * immediately. If @p iterator is @c NULL or if a problem occurred, #EINA_F ALSE | |||
* is returned, otherwise #EINA_TRUE is returned. If the container isn't | * is returned, otherwise #EINA_TRUE is returned. If the container isn't | |||
* lockable, it will return EINA_TRUE. | * lockable, it will return #EINA_TRUE. | |||
* | * | |||
* @warning None of the existing eina data structures are lockable. | * @warning None of the existing eina data structures are lockable. | |||
*/ | */ | |||
EAPI Eina_Bool eina_iterator_lock(Eina_Iterator *iterator) EINA_ARG_NONNULL (1); | EAPI Eina_Bool eina_iterator_lock(Eina_Iterator *iterator) EINA_ARG_NONNULL (1); | |||
/** | /** | |||
* @brief Unlock the container of the iterator. | * @brief Unlock the container of the iterator. | |||
* | * | |||
* @param iterator The iterator. | * @param iterator The iterator. | |||
* @return #EINA_TRUE on success, #EINA_FALSE otherwise. | * @return #EINA_TRUE on success, #EINA_FALSE otherwise. | |||
* | * | |||
* If the container of the @p iterator permits it and was previously | * If the container of the @p iterator permits it and was previously | |||
* locked, it will be unlocked. If @p iterator is @c NULL or if a | * locked, it will be unlocked. If @p iterator is @c NULL or if a | |||
* problem occurred, #EINA_FALSE is returned, otherwise #EINA_TRUE | * problem occurred, #EINA_FALSE is returned, otherwise #EINA_TRUE | |||
* is returned. If the container is not lockable, it will return | * is returned. If the container is not lockable, it will | |||
* EINA_TRUE. | * return #EINA_TRUE. | |||
* | * | |||
* @warning None of the existing eina data structures are lockable. | * @warning None of the existing eina data structures are lockable. | |||
*/ | */ | |||
EAPI Eina_Bool eina_iterator_unlock(Eina_Iterator *iterator) EINA_ARG_NONNU LL(1); | EAPI Eina_Bool eina_iterator_unlock(Eina_Iterator *iterator) EINA_ARG_NONNU LL(1); | |||
/** | /** | |||
* @def EINA_ITERATOR_FOREACH | * @def EINA_ITERATOR_FOREACH | |||
* @brief Macro to iterate over all elements easily. | * @brief Macro to iterate over all elements easily. | |||
* | * | |||
* @param itr The iterator to use. | * @param itr The iterator to use. | |||
End of changes. 3 change blocks. | ||||
6 lines changed or deleted | 5 lines changed or added | |||
eina_list.h | eina_list.h | |||
---|---|---|---|---|
skipping to change at line 687 | skipping to change at line 687 | |||
/** | /** | |||
* @brief Find a member of a list and return the member. | * @brief Find a member of a list and return the member. | |||
* | * | |||
* @param list The list to search for a data. | * @param list The list to search for a data. | |||
* @param data The data pointer to find in the list. | * @param data The data pointer to find in the list. | |||
* @return The found member data pointer if found, @c NULL otherwise. | * @return The found member data pointer if found, @c NULL otherwise. | |||
* | * | |||
* This function searches in @p list from beginning to end for the | * This function searches in @p list from beginning to end for the | |||
* first member whose data pointer is @p data. If it is found, @p data | * first member whose data pointer is @p data. If it is found, @p data | |||
* will be returned, otherwise NULL will be returned. | * will be returned, otherwise @c NULL will be returned. | |||
* | * | |||
* Example: | * Example: | |||
* @code | * @code | |||
* extern Eina_List *list; | * extern Eina_List *list; | |||
* extern void *my_data; | * extern void *my_data; | |||
* | * | |||
* if (eina_list_data_find(list, my_data) == my_data) | * if (eina_list_data_find(list, my_data) == my_data) | |||
* { | * { | |||
* printf("Found member %p\n", my_data); | * printf("Found member %p\n", my_data); | |||
* } | * } | |||
skipping to change at line 756 | skipping to change at line 756 | |||
* from = eina_list_remove_list(from, data); | * from = eina_list_remove_list(from, data); | |||
* | * | |||
* @warning @p list must be a pointer to the first element of the list. | * @warning @p list must be a pointer to the first element of the list. | |||
*/ | */ | |||
EAPI Eina_Bool eina_list_move_list(Eina_List **to, Eina_List ** from, Eina_List *data); | EAPI Eina_Bool eina_list_move_list(Eina_List **to, Eina_List ** from, Eina_List *data); | |||
/** | /** | |||
* @brief Free an entire list and all the nodes, ignoring the data containe d. | * @brief Free an entire list and all the nodes, ignoring the data containe d. | |||
* @param list The list to free | * @param list The list to free | |||
* @return A NULL pointer | * @return A @c NULL pointer | |||
* | * | |||
* This function frees all the nodes of @p list. It does not free the | * This function frees all the nodes of @p list. It does not free the | |||
* data of the nodes. To free them, use #EINA_LIST_FREE. | * data of the nodes. To free them, use #EINA_LIST_FREE. | |||
*/ | */ | |||
EAPI Eina_List *eina_list_free(Eina_List *list); | EAPI Eina_List *eina_list_free(Eina_List *list); | |||
/** | /** | |||
* @brief Get the nth member's data pointer in a list. | * @brief Get the nth member's data pointer in a list. | |||
* | * | |||
* @param list The list to get the specified member number from. | * @param list The list to get the specified member number from. | |||
skipping to change at line 938 | skipping to change at line 938 | |||
* @param right Second list to merge. | * @param right Second list to merge. | |||
* @param func A function pointer that can handle comparing the list data | * @param func A function pointer that can handle comparing the list data | |||
* nodes. | * nodes. | |||
* @return A new sorted list. | * @return A new sorted list. | |||
* | * | |||
* This function compares the head of @p left and @p right, and choose the | * This function compares the head of @p left and @p right, and choose the | |||
* smallest one to be head of the returned list. It will continue this proc ess | * smallest one to be head of the returned list. It will continue this proc ess | |||
* for all entry of both list. | * for all entry of both list. | |||
* | * | |||
* Both left and right do not exist anymore after the merge. | * Both left and right do not exist anymore after the merge. | |||
* If @p func is NULL, it will return NULL. | * If @p func is @c NULL, it will return @c NULL. | |||
* | * | |||
* Example: | * Example: | |||
* @code | * @code | |||
* int | * int | |||
* sort_cb(void *d1, void *d2) | * sort_cb(void *d1, void *d2) | |||
* { | * { | |||
* const char *txt = NULL; | * const char *txt = NULL; | |||
* const char *txt2 = NULL; | * const char *txt2 = NULL; | |||
* | * | |||
* if(!d1) return(1); | * if(!d1) return(1); | |||
skipping to change at line 972 | skipping to change at line 972 | |||
/** | /** | |||
* @brief Split a list into 2 lists. | * @brief Split a list into 2 lists. | |||
* | * | |||
* @param list List to split. | * @param list List to split. | |||
* @param relative The list will be split after @p relative. | * @param relative The list will be split after @p relative. | |||
* @param right The head of the new right list. | * @param right The head of the new right list. | |||
* @return The new left list | * @return The new left list | |||
* | * | |||
* This function splits @p list into two lists ( left and right ) after the node @p relative. @p Relative | * This function splits @p list into two lists ( left and right ) after the node @p relative. @p Relative | |||
* will become the last node of the left list. If @p list or @p right are N | * will become the last node of the left list. If @p list or @p right are @ | |||
ULL list is returns. | c NULL list is returns. | |||
* If @p relative is NULL right is set to @p list and NULL is returns. | * If @p relative is NULL right is set to @p list and @c NULL is returns. | |||
* If @p relative is the last node of @p list list is returns and @p right | * If @p relative is the last node of @p list list is returns and @p right | |||
is set to NULL. | is set to @c NULL. | |||
* | * | |||
* list does not exist anymore after the split. | * list does not exist anymore after the split. | |||
* | * | |||
* @warning @p list must be a pointer to the first element of the list. | * @warning @p list must be a pointer to the first element of the list. | |||
*/ | */ | |||
EAPI Eina_List *eina_list_split_list(Eina_List *list, Eina_List *relative, Eina_List **right) EINA_WARN_UNUSED_RESULT; | EAPI Eina_List *eina_list_split_list(Eina_List *list, Eina_List *relative, Eina_List **right) EINA_WARN_UNUSED_RESULT; | |||
/** | /** | |||
* @brief Returns node nearest to data is in the sorted list. | * @brief Returns node nearest to data is in the sorted list. | |||
* | * | |||
* @param list The list to search for data, @b must be sorted. | * @param list The list to search for data, @b must be sorted. | |||
* @param func A function pointer that can handle comparing the list data n odes. | * @param func A function pointer that can handle comparing the list data n odes. | |||
* @param data reference value to search. | * @param data reference value to search. | |||
* @param result_cmp if provided returns the result of | * @param result_cmp if provided returns the result of | |||
* func(node->data, data) node being the last (returned) node. If node | * func(node->data, data) node being the last (returned) node. If node | |||
* was found (exact match), then it is 0. If returned node is smaller | * was found (exact match), then it is 0. If returned node is smaller | |||
* than requested data, it is less than 0 and if it's bigger it's | * than requested data, it is less than 0 and if it's bigger it's | |||
* greater than 0. It is the last value returned by func(). | * greater than 0. It is the last value returned by func(). | |||
* @return the nearest node, NULL if not found. | * @return the nearest node, @c NULL if not found. | |||
* | * | |||
* This function searches for a node containing @p data as it's data in @p list, | * This function searches for a node containing @p data as it's data in @p list, | |||
* if such a node exists it will be returned and @p result_cmp will be @p 0 . If | * if such a node exists it will be returned and @p result_cmp will be @p 0 . If | |||
* the data of no node in @p list is equal to @p data, the node with the ne arest | * the data of no node in @p list is equal to @p data, the node with the ne arest | |||
* value to that will be returned and @p result_cmp will be the return valu e of | * value to that will be returned and @p result_cmp will be the return valu e of | |||
* @p func with @p data and the returned node's data as arguments. | * @p func with @p data and the returned node's data as arguments. | |||
* | * | |||
* This function is useful for inserting an element in the list only in cas e it | * This function is useful for inserting an element in the list only in cas e it | |||
* isn't already present in the list, the naive way of doing this would be: | * isn't already present in the list, the naive way of doing this would be: | |||
* @code | * @code | |||
skipping to change at line 1049 | skipping to change at line 1049 | |||
* @see eina_list_sorted_merge() | * @see eina_list_sorted_merge() | |||
*/ | */ | |||
EAPI Eina_List *eina_list_search_sorted_near_list(const Eina_Lis t *list, Eina_Compare_Cb func, const void *data, int *result_cmp); | EAPI Eina_List *eina_list_search_sorted_near_list(const Eina_Lis t *list, Eina_Compare_Cb func, const void *data, int *result_cmp); | |||
/** | /** | |||
* @brief Returns node if data is in the sorted list. | * @brief Returns node if data is in the sorted list. | |||
* | * | |||
* @param list The list to search for data, @b must be sorted. | * @param list The list to search for data, @b must be sorted. | |||
* @param func A function pointer that can handle comparing the list data n odes. | * @param func A function pointer that can handle comparing the list data n odes. | |||
* @param data reference value to search. | * @param data reference value to search. | |||
* @return the node if func(node->data, data) == 0, NULL if not found. | * @return the node if func(node->data, data) == 0, @c NULL if not found. | |||
* | * | |||
* This can be used to check if some value is inside the list and get | * This can be used to check if some value is inside the list and get | |||
* the container node in this case. It should be used when list is | * the container node in this case. It should be used when list is | |||
* known to be sorted as it will do binary search for results. | * known to be sorted as it will do binary search for results. | |||
* | * | |||
* Example: imagine user gives a string, you check if it's in the list | * Example: imagine user gives a string, you check if it's in the list | |||
* before duplicating its contents. | * before duplicating its contents. | |||
* | * | |||
* @note O(log2(n)) average/worst case performance, for 1,000,000 | * @note O(log2(n)) average/worst case performance, for 1,000,000 | |||
* elements it will do a maximum of 20 comparisons. This is much | * elements it will do a maximum of 20 comparisons. This is much | |||
skipping to change at line 1119 | skipping to change at line 1119 | |||
* @see eina_list_search_unsorted_list() | * @see eina_list_search_unsorted_list() | |||
*/ | */ | |||
EAPI void *eina_list_search_sorted(const Eina_List *list, E ina_Compare_Cb func, const void *data); | EAPI void *eina_list_search_sorted(const Eina_List *list, E ina_Compare_Cb func, const void *data); | |||
/** | /** | |||
* @brief Returns node if data is in the unsorted list. | * @brief Returns node if data is in the unsorted list. | |||
* | * | |||
* @param list The list to search for data, may be unsorted. | * @param list The list to search for data, may be unsorted. | |||
* @param func A function pointer that can handle comparing the list data n odes. | * @param func A function pointer that can handle comparing the list data n odes. | |||
* @param data reference value to search. | * @param data reference value to search. | |||
* @return the node if func(node->data, data) == 0, NULL if not found. | * @return the node if func(node->data, data) == 0, @c NULL if not found. | |||
* | * | |||
* This can be used to check if some value is inside the list and get | * This can be used to check if some value is inside the list and get | |||
* the container node in this case. | * the container node in this case. | |||
* | * | |||
* Example: imagine user gives a string, you check if it's in the list | * Example: imagine user gives a string, you check if it's in the list | |||
* before duplicating its contents. | * before duplicating its contents. | |||
* | * | |||
* @note this is expensive and may walk the whole list, it's order-N, | * @note this is expensive and may walk the whole list, it's order-N, | |||
* that is for 1,000,000 elements list it may walk and compare | * that is for 1,000,000 elements list it may walk and compare | |||
* 1,000,000 nodes. | * 1,000,000 nodes. | |||
skipping to change at line 1145 | skipping to change at line 1145 | |||
*/ | */ | |||
EAPI Eina_List *eina_list_search_unsorted_list(const Eina_List * list, Eina_Compare_Cb func, const void *data); | EAPI Eina_List *eina_list_search_unsorted_list(const Eina_List * list, Eina_Compare_Cb func, const void *data); | |||
/** | /** | |||
* @brief Returns node data if it is in the unsorted list. | * @brief Returns node data if it is in the unsorted list. | |||
* | * | |||
* @param list The list to search for data, may be unsorted. | * @param list The list to search for data, may be unsorted. | |||
* @param func A function pointer that can handle comparing the list data n odes. | * @param func A function pointer that can handle comparing the list data n odes. | |||
* @param data reference value to search. | * @param data reference value to search. | |||
* @return the node value (@c node->data) if func(node->data, data) == 0, | * @return the node value (@c node->data) if func(node->data, data) == 0, | |||
* NULL if not found. | * @c NULL if not found. | |||
* | * | |||
* This can be used to check if some value is inside the list and get | * This can be used to check if some value is inside the list and get | |||
* the existing instance in this case. | * the existing instance in this case. | |||
* | * | |||
* Example: imagine user gives a string, you check if it's in the list | * Example: imagine user gives a string, you check if it's in the list | |||
* before duplicating its contents. | * before duplicating its contents. | |||
* | * | |||
* @note this is expensive and may walk the whole list, it's order-N, | * @note this is expensive and may walk the whole list, it's order-N, | |||
* that is for 1,000,000 elements list it may walk and compare | * that is for 1,000,000 elements list it may walk and compare | |||
* 1,000,000 nodes. | * 1,000,000 nodes. | |||
skipping to change at line 1245 | skipping to change at line 1245 | |||
*/ | */ | |||
static inline void *eina_list_data_set(Eina_List *list, const void * data); | static inline void *eina_list_data_set(Eina_List *list, const void * data); | |||
/** | /** | |||
* @brief Get the count of the number of items in a list. | * @brief Get the count of the number of items in a list. | |||
* | * | |||
* @param list The list whose count to return. | * @param list The list whose count to return. | |||
* @return The number of members in the list. | * @return The number of members in the list. | |||
* | * | |||
* This function returns how many members @p list contains. If the | * This function returns how many members @p list contains. If the | |||
* list is @c NULL, 0 is returned. | * list is @c NULL, @c 0 is returned. | |||
* | * | |||
* NB: This is an order-1 operation and takes the same time regardless | * NB: This is an order-1 operation and takes the same time regardless | |||
* of the length of the list. | * of the length of the list. | |||
* | * | |||
* @warning @p list must be a pointer to the first element of the list. | * @warning @p list must be a pointer to the first element of the list. | |||
*/ | */ | |||
static inline unsigned int eina_list_count(const Eina_List *list) EINA_PURE ; | static inline unsigned int eina_list_count(const Eina_List *list) EINA_PURE ; | |||
/** | /** | |||
* @brief Returned a new iterator associated to a list. | * @brief Returned a new iterator associated to a list. | |||
* | * | |||
* @param list The list. | * @param list The list. | |||
* @return A new iterator. | * @return A new iterator. | |||
* | * | |||
* This function returns a newly allocated iterator associated to @p | * This function returns a newly allocated iterator associated to @p | |||
* list. If @p list is @c NULL or the count member of @p list is less | * list. If @p list is @c NULL or the count member of @p list is less | |||
* or equal than 0, this function still returns a valid iterator that | * or equal than 0, this function still returns a valid iterator that | |||
* will always return false on eina_iterator_next(), thus keeping API | * will always return false on eina_iterator_next(), thus keeping API | |||
* sane. | * sane. | |||
* | * | |||
* If the memory can not be allocated, NULL is returned and | * If the memory can not be allocated, NULL is returned | |||
* #EINA_ERROR_OUT_OF_MEMORY is set. Otherwise, a valid iterator is | * and #EINA_ERROR_OUT_OF_MEMORY is set. Otherwise, a valid iterator | |||
* returned. | * is returned. | |||
* | * | |||
* @warning @p list must be a pointer to the first element of the list. | * @warning @p list must be a pointer to the first element of the list. | |||
* | * | |||
* @warning if the list structure changes then the iterator becomes | * @warning if the list structure changes then the iterator becomes | |||
* invalid! That is, if you add or remove nodes this iterator | * invalid! That is, if you add or remove nodes this iterator | |||
* behavior is undefined and your program may crash! | * behavior is undefined and your program may crash! | |||
*/ | */ | |||
EAPI Eina_Iterator *eina_list_iterator_new(const Eina_List *list) EI NA_MALLOC EINA_WARN_UNUSED_RESULT; | EAPI Eina_Iterator *eina_list_iterator_new(const Eina_List *list) EI NA_MALLOC EINA_WARN_UNUSED_RESULT; | |||
/** | /** | |||
skipping to change at line 1292 | skipping to change at line 1292 | |||
* @return A new iterator. | * @return A new iterator. | |||
* | * | |||
* This function returns a newly allocated iterator associated to @p | * This function returns a newly allocated iterator associated to @p | |||
* list. If @p list is @c NULL or the count member of @p list is less | * list. If @p list is @c NULL or the count member of @p list is less | |||
* or equal than 0, this function still returns a valid iterator that | * or equal than 0, this function still returns a valid iterator that | |||
* will always return false on eina_iterator_next(), thus keeping API | * will always return false on eina_iterator_next(), thus keeping API | |||
* sane. | * sane. | |||
* | * | |||
* Unlike eina_list_iterator_new(), this will walk the list backwards. | * Unlike eina_list_iterator_new(), this will walk the list backwards. | |||
* | * | |||
* If the memory can not be allocated, NULL is returned and | * If the memory can not be allocated, NULL is returned | |||
* #EINA_ERROR_OUT_OF_MEMORY is set. Otherwise, a valid iterator is | * and #EINA_ERROR_OUT_OF_MEMORY is set. Otherwise, a valid iterator | |||
* returned. | * is returned. | |||
* | * | |||
* @warning @p list must be a pointer to the first element of the list. | * @warning @p list must be a pointer to the first element of the list. | |||
* | * | |||
* @warning if the list structure changes then the iterator becomes | * @warning if the list structure changes then the iterator becomes | |||
* invalid! That is, if you add or remove nodes this iterator | * invalid! That is, if you add or remove nodes this iterator | |||
* behavior is undefined and your program may crash! | * behavior is undefined and your program may crash! | |||
*/ | */ | |||
EAPI Eina_Iterator *eina_list_iterator_reversed_new(const Eina_List *list) EINA_MALLOC EINA_WARN_UNUSED_RESULT; | EAPI Eina_Iterator *eina_list_iterator_reversed_new(const Eina_List *list) EINA_MALLOC EINA_WARN_UNUSED_RESULT; | |||
/** | /** | |||
* @brief Returned a new accessor associated to a list. | * @brief Returned a new accessor associated to a list. | |||
* | * | |||
* @param list The list. | * @param list The list. | |||
* @return A new accessor. | * @return A new accessor. | |||
* | * | |||
* This function returns a newly allocated accessor associated to | * This function returns a newly allocated accessor associated to | |||
* @p list. If @p list is @c NULL or the count member of @p list is | * @p list. If @p list is @c NULL or the count member of @p list is | |||
* less or equal than 0, this function returns NULL. If the memory can | * less or equal than 0, this function returns @c NULL. If the memory can | |||
* not be allocated, NULL is returned and #EINA_ERROR_OUT_OF_MEMORY is | * not be allocated, @c NULL is returned and #EINA_ERROR_OUT_OF_MEMORY is | |||
* set. Otherwise, a valid accessor is returned. | * set. Otherwise, a valid accessor is returned. | |||
* | * | |||
* @warning @p list must be a pointer to the first element of the list. | * @warning @p list must be a pointer to the first element of the list. | |||
*/ | */ | |||
EAPI Eina_Accessor *eina_list_accessor_new(const Eina_List *list) EI NA_MALLOC EINA_WARN_UNUSED_RESULT; | EAPI Eina_Accessor *eina_list_accessor_new(const Eina_List *list) EI NA_MALLOC EINA_WARN_UNUSED_RESULT; | |||
/** | /** | |||
* @def EINA_LIST_FOREACH | * @def EINA_LIST_FOREACH | |||
* @brief Macro to iterate over a list. | * @brief Macro to iterate over a list. | |||
* | * | |||
End of changes. 12 change blocks. | ||||
21 lines changed or deleted | 21 lines changed or added | |||
eina_log.h | eina_log.h | |||
---|---|---|---|---|
skipping to change at line 631 | skipping to change at line 631 | |||
* | * | |||
* @see eina_log_abort_on_critical_level_get() | * @see eina_log_abort_on_critical_level_get() | |||
* @see eina_log_abort_on_critical_get() | * @see eina_log_abort_on_critical_get() | |||
*/ | */ | |||
EAPI void eina_log_abort_on_critical_level_set(int critical_l evel); | EAPI void eina_log_abort_on_critical_level_set(int critical_l evel); | |||
/** | /** | |||
* @brief Get level that triggers abort if abort-on-critical is set. | * @brief Get level that triggers abort if abort-on-critical is set. | |||
* | * | |||
* @return critical level equal or smaller than value will trigger | * @return critical level equal or smaller than value will trigger | |||
* program abortion if eina_log_abort_on_critical_get() returns | * program abortion if eina_log_abort_on_critical_get() | |||
* #EINA_TRUE. | * returns #EINA_TRUE. | |||
* | * | |||
* @see eina_log_abort_on_critical_level_set() | * @see eina_log_abort_on_critical_level_set() | |||
* @see eina_log_abort_on_critical_get() | * @see eina_log_abort_on_critical_get() | |||
*/ | */ | |||
EAPI int eina_log_abort_on_critical_level_get(void) EINA_WAR N_UNUSED_RESULT; | EAPI int eina_log_abort_on_critical_level_get(void) EINA_WAR N_UNUSED_RESULT; | |||
/** | /** | |||
* Set the domain level given its name. | * Set the domain level given its name. | |||
* | * | |||
* This call has the same effect as setting | * This call has the same effect as setting | |||
End of changes. 1 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
eina_magic.h | eina_magic.h | |||
---|---|---|---|---|
skipping to change at line 234 | skipping to change at line 234 | |||
* }; | * }; | |||
* @endcode | * @endcode | |||
* | * | |||
* If the magic feature of Eina is disabled, #EINA_MAGIC does nothing. | * If the magic feature of Eina is disabled, #EINA_MAGIC does nothing. | |||
*/ | */ | |||
#define EINA_MAGIC Eina_Magic __magic; | #define EINA_MAGIC Eina_Magic __magic; | |||
/** | /** | |||
* @def EINA_MAGIC_SET(d, m) | * @def EINA_MAGIC_SET(d, m) | |||
* Set the magic number of @p d to @p m. @p d must be a valid pointer | * Set the magic number of @p d to @p m. @p d must be a valid pointer | |||
* to a structure holding an Eina magic number declaration. Use | * to a structure holding an Eina magic number declaration. | |||
* #EINA_MAGIC to add such declaration. | * Use #EINA_MAGIC to add such declaration. | |||
* | * | |||
* If the magic feature of Eina is disabled, #EINA_MAGIC_CHECK is just | * If the magic feature of Eina is disabled, #EINA_MAGIC_CHECK is just | |||
* the value @c 0. | * the value @c 0. | |||
*/ | */ | |||
#define EINA_MAGIC_SET(d, m) (d)->__magic = (m) | #define EINA_MAGIC_SET(d, m) (d)->__magic = (m) | |||
/** | /** | |||
* @def EINA_MAGIC_CHECK(d, m) | * @def EINA_MAGIC_CHECK(d, m) | |||
* Test if @p d is @c NULL or not, and if not @c NULL, if | * Test if @p d is @c NULL or not, and if not @c NULL, if | |||
* @p d->__eina_magic is equal to @p m. @p d must be a structure that | * @p d->__eina_magic is equal to @p m. @p d must be a structure that | |||
End of changes. 1 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
eina_matrixsparse.h | eina_matrixsparse.h | |||
---|---|---|---|---|
skipping to change at line 90 | skipping to change at line 90 | |||
* value will fail. | * value will fail. | |||
* @param cols number of columns in matrix. Operations with columns greater | * @param cols number of columns in matrix. Operations with columns greater | |||
* than this value will fail. | * than this value will fail. | |||
* @param free_func used to delete cell data contents, used by | * @param free_func used to delete cell data contents, used by | |||
* eina_matrixsparse_free(), eina_matrixsparse_size_set(), | * eina_matrixsparse_free(), eina_matrixsparse_size_set(), | |||
* eina_matrixsparse_row_idx_clear(), | * eina_matrixsparse_row_idx_clear(), | |||
* eina_matrixsparse_column_idx_clear(), | * eina_matrixsparse_column_idx_clear(), | |||
* eina_matrixsparse_cell_idx_clear() and possible others. | * eina_matrixsparse_cell_idx_clear() and possible others. | |||
* @param user_data given to @a free_func as first parameter. | * @param user_data given to @a free_func as first parameter. | |||
* | * | |||
* @return newly allocated matrix or NULL if allocation failed and eina_err or | * @return Newly allocated matrix or @c NULL if allocation failed and eina_ error | |||
* is set. | * is set. | |||
*/ | */ | |||
EAPI Eina_Matrixsparse *eina_matrixsparse_new(unsigned long rows, | EAPI Eina_Matrixsparse *eina_matrixsparse_new(unsigned long rows, | |||
unsigned long cols, | unsigned long cols, | |||
void (*free_func)(void *user_ data, | void (*free_func)(void *user_ data, | |||
void *cell_ data), | void *cell_ data), | |||
const void *user_data); | const void *user_data); | |||
/** | /** | |||
* @brief Free resources allocated to Sparse Matrix. | * @brief Free resources allocated to Sparse Matrix. | |||
* | * | |||
* @param m The Sparse Matrix instance to free, must @b not be @c NULL. | * @param m The Sparse Matrix instance to free, must @b not be @c NULL. | |||
*/ | */ | |||
EAPI void eina_matrixsparse_free(Eina_Matrixsparse *m); | EAPI void eina_matrixsparse_free(Eina_Matrixsparse *m); | |||
/* size manipulation */ | /* size manipulation */ | |||
/** | /** | |||
* @brief Get the current size of Sparse Matrix. | * @brief Get the current size of Sparse Matrix. | |||
* | * | |||
* The given parameters are guaranteed to be set if they're not NULL, | * The given parameters are guaranteed to be set if they're not @c NULL, | |||
* even if this function fails (ie: @a m is not a valid matrix instance). | * even if this function fails (ie: @a m is not a valid matrix instance). | |||
* | * | |||
* @param m the sparse matrix to operate on. | * @param m the sparse matrix to operate on. | |||
* @param rows returns the number of rows, may be NULL. If @a m is invalid, | * @param rows returns the number of rows, may be @c NULL. If @a m is inval id, | |||
* returned value is zero, otherwise it's a positive integer. | * returned value is zero, otherwise it's a positive integer. | |||
* @param cols returns the number of columns, may be NULL. If @a m is | * @param cols returns the number of columns, may be @c NULL. If @a m is | |||
* invalid, returned value is zero, otherwise it's a positive intege r. | * invalid, returned value is zero, otherwise it's a positive intege r. | |||
*/ | */ | |||
EAPI void eina_matrixsparse_size_get(const Eina_Matrixsparse *m, | EAPI void eina_matrixsparse_size_get(const Eina_Matrixsparse *m, | |||
unsigned long *rows, | unsigned long *rows, | |||
unsigned long *cols); | unsigned long *cols); | |||
/** | /** | |||
* @brief Resize the Sparse Matrix. | * @brief Resize the Sparse Matrix. | |||
* | * | |||
* This will resize the sparse matrix, possibly freeing cells on rows | * This will resize the sparse matrix, possibly freeing cells on rows | |||
* and columns that will cease to exist. | * and columns that will cease to exist. | |||
* | * | |||
* @param m the sparse matrix to operate on. | * @param m the sparse matrix to operate on. | |||
* @param rows the new number of rows, must be greater than zero. | * @param rows the new number of rows, must be greater than zero. | |||
* @param cols the new number of columns, must be greater than zero. | * @param cols the new number of columns, must be greater than zero. | |||
* @return 1 on success, 0 on failure. | * @return #EINA_TRUE on success, #EINA_FALSE on failure. | |||
* | * | |||
* @warning cells, rows or columns are not reference counted and thus | * @warning cells, rows or columns are not reference counted and thus | |||
* after this call any reference might be invalid if instance were | * after this call any reference might be invalid if instance were | |||
* freed. | * freed. | |||
*/ | */ | |||
EAPI Eina_Bool eina_matrixsparse_size_set(Eina_Matrixsparse *m, | EAPI Eina_Bool eina_matrixsparse_size_set(Eina_Matrixsparse *m, | |||
unsigned long rows, | unsigned long rows, | |||
unsigned long cols); | unsigned long cols); | |||
/* data getting */ | /* data getting */ | |||
/** | /** | |||
* Get the cell reference inside Sparse Matrix. | * Get the cell reference inside Sparse Matrix. | |||
* | * | |||
* @param m the sparse matrix to operate on. | * @param m the sparse matrix to operate on. | |||
* @param row the new number of row to clear. | * @param row the new number of row to clear. | |||
* @param col the new number of column to clear. | * @param col the new number of column to clear. | |||
* @param cell pointer to return cell reference, if any exists. | * @param cell pointer to return cell reference, if any exists. | |||
* | * | |||
* @return 1 on success, 0 on failure. It is considered success if did not | * @return @c 1 on success, @c 0 on failure. It is considered success if di d not | |||
* exist but index is inside matrix size, in this case @c *cell == NULL | * exist but index is inside matrix size, in this case @c *cell == NULL | |||
* | * | |||
* @see eina_matrixsparse_cell_data_get() | * @see eina_matrixsparse_cell_data_get() | |||
* @see eina_matrixsparse_data_idx_get() | * @see eina_matrixsparse_data_idx_get() | |||
*/ | */ | |||
EAPI Eina_Bool eina_matrixsparse_cell_idx_get(const Eina_Matrixsparse *m, u nsigned long row, unsigned long col, Eina_Matrixsparse_Cell **cell); | EAPI Eina_Bool eina_matrixsparse_cell_idx_get(const Eina_Matrixsparse *m, u nsigned long row, unsigned long col, Eina_Matrixsparse_Cell **cell); | |||
/** | /** | |||
* Get data associated with given cell reference. | * Get data associated with given cell reference. | |||
* | * | |||
skipping to change at line 180 | skipping to change at line 180 | |||
*/ | */ | |||
EAPI void *eina_matrixsparse_cell_data_get(const Eina_Matrixsparse_Cell *cell); | EAPI void *eina_matrixsparse_cell_data_get(const Eina_Matrixsparse_Cell *cell); | |||
/** | /** | |||
* Get data associated with given cell given its indexes. | * Get data associated with given cell given its indexes. | |||
* | * | |||
* @param m the sparse matrix to operate on. | * @param m the sparse matrix to operate on. | |||
* @param row the new number of row to clear. | * @param row the new number of row to clear. | |||
* @param col the new number of column to clear. | * @param col the new number of column to clear. | |||
* | * | |||
* @return data associated with given cell or NULL if nothing is associated . | * @return Data associated with given cell or @c NULL if nothing is associa ted. | |||
* | * | |||
* @see eina_matrixsparse_cell_idx_get() | * @see eina_matrixsparse_cell_idx_get() | |||
* @see eina_matrixsparse_cell_data_get() | * @see eina_matrixsparse_cell_data_get() | |||
*/ | */ | |||
EAPI void *eina_matrixsparse_data_idx_get(const Eina_Matrixsparse *m, u nsigned long row, unsigned long col); | EAPI void *eina_matrixsparse_data_idx_get(const Eina_Matrixsparse *m, u nsigned long row, unsigned long col); | |||
/** | /** | |||
* Get position (indexes) of the given cell. | * Get position (indexes) of the given cell. | |||
* | * | |||
* @param cell the cell reference, must @b not be @c NULL. | * @param cell the cell reference, must @b not be @c NULL. | |||
* @param row where to store cell row number, may be @c NULL. | * @param row where to store cell row number, may be @c NULL. | |||
* @param col where to store cell column number, may be @c NULL. | * @param col where to store cell column number, may be @c NULL. | |||
* | * | |||
* @return 1 on success, 0 otherwise (@c cell is @c NULL). | * @return #EINA_TRUE on success, #EINA_FALSE otherwise (@c cell is @c NULL ). | |||
*/ | */ | |||
EAPI Eina_Bool eina_matrixsparse_cell_position_get(const Eina_Matrixsparse_ Cell *cell, unsigned long *row, unsigned long *col); | EAPI Eina_Bool eina_matrixsparse_cell_position_get(const Eina_Matrixsparse_ Cell *cell, unsigned long *row, unsigned long *col); | |||
/* data setting */ | /* data setting */ | |||
/** | /** | |||
* Change cell reference value without freeing the possibly existing old va lue. | * Change cell reference value without freeing the possibly existing old va lue. | |||
* | * | |||
* @param cell the cell reference, must @b not be @c NULL. | * @param cell the cell reference, must @b not be @c NULL. | |||
* @param data new data to set. | * @param data new data to set. | |||
* @param p_old returns the old value intact (not freed). | * @param p_old returns the old value intact (not freed). | |||
* | * | |||
* @return 1 on success, 0 otherwise (@a cell is @c NULL). | * @return #EINA_TRUE on success, #EINA_FALSE otherwise (@a cell is @c NULL ). | |||
* | * | |||
* @see eina_matrixsparse_cell_data_set() | * @see eina_matrixsparse_cell_data_set() | |||
* @see eina_matrixsparse_data_idx_replace() | * @see eina_matrixsparse_data_idx_replace() | |||
*/ | */ | |||
EAPI Eina_Bool eina_matrixsparse_cell_data_replace(Eina_Matrixsparse_Cell * cell, const void *data, void **p_old); | EAPI Eina_Bool eina_matrixsparse_cell_data_replace(Eina_Matrixsparse_Cell * cell, const void *data, void **p_old); | |||
/** | /** | |||
* Change cell value freeing the possibly existing old value. | * Change cell value freeing the possibly existing old value. | |||
* | * | |||
* In contrast to eina_matrixsparse_cell_data_replace(), this function will | * In contrast to eina_matrixsparse_cell_data_replace(), this function will | |||
* call @c free_func() on existing value. | * call @c free_func() on existing value. | |||
* | * | |||
* @param cell the cell reference, must @b not be @c NULL. | * @param cell the cell reference, must @b not be @c NULL. | |||
* @param data new data to set. | * @param data new data to set. | |||
* | * | |||
* @return 1 on success, 0 otherwise (@a cell is @c NULL). | * @return #EINA_TRUE on success, #EINA_FALSE otherwise (@a cell is @c NULL ). | |||
* | * | |||
* @see eina_matrixsparse_cell_data_replace() | * @see eina_matrixsparse_cell_data_replace() | |||
* @see eina_matrixsparse_data_idx_set() | * @see eina_matrixsparse_data_idx_set() | |||
*/ | */ | |||
EAPI Eina_Bool eina_matrixsparse_cell_data_set(Eina_Matrixsparse_Cell *cell , const void *data); | EAPI Eina_Bool eina_matrixsparse_cell_data_set(Eina_Matrixsparse_Cell *cell , const void *data); | |||
/** | /** | |||
* Change cell value without freeing the possibly existing old value, using | * Change cell value without freeing the possibly existing old value, using | |||
* indexes. | * indexes. | |||
* | * | |||
* @param m the sparse matrix, must @b not be @c NULL. | * @param m the sparse matrix, must @b not be @c NULL. | |||
* @param row the row number to set the value. | * @param row the row number to set the value. | |||
* @param col the column number to set the value. | * @param col the column number to set the value. | |||
* @param data new data to set. | * @param data new data to set. | |||
* @param p_old returns the old value intact (not freed). | * @param p_old returns the old value intact (not freed). | |||
* | * | |||
* @return 1 on success, 0 otherwise (@a m is @c NULL, indexes are not vali d). | * @return #EINA_TRUE on success, #EINA_FALSE otherwise (@a m is @c NULL, i ndexes are not valid). | |||
* | * | |||
* @see eina_matrixsparse_cell_data_replace() | * @see eina_matrixsparse_cell_data_replace() | |||
* @see eina_matrixsparse_data_idx_set() | * @see eina_matrixsparse_data_idx_set() | |||
*/ | */ | |||
EAPI Eina_Bool eina_matrixsparse_data_idx_replace(Eina_Matrixsparse *m, uns igned long row, unsigned long col, const void *data, void **p_old); | EAPI Eina_Bool eina_matrixsparse_data_idx_replace(Eina_Matrixsparse *m, uns igned long row, unsigned long col, const void *data, void **p_old); | |||
/** | /** | |||
* Change cell value freeing the possibly existing old value, using | * Change cell value freeing the possibly existing old value, using | |||
* indexes. | * indexes. | |||
* | * | |||
* In contrast to eina_matrixsparse_data_idx_replace(), this function will | * In contrast to eina_matrixsparse_data_idx_replace(), this function will | |||
* call @c free_func() on existing value. | * call @c free_func() on existing value. | |||
* | * | |||
* @param m the sparse matrix, must @b not be @c NULL. | * @param m the sparse matrix, must @b not be @c NULL. | |||
* @param row the row number to set the value. | * @param row the row number to set the value. | |||
* @param col the column number to set the value. | * @param col the column number to set the value. | |||
* @param data new data to set. | * @param data new data to set. | |||
* | * | |||
* @return 1 on success, 0 otherwise (@a m is @c NULL, indexes are not vali d). | * @return #EINA_TRUE on success, #EINA_FALSE otherwise (@a m is @c NULL, i ndexes are not valid). | |||
* | * | |||
* @see eina_matrixsparse_cell_data_replace() | * @see eina_matrixsparse_cell_data_replace() | |||
*/ | */ | |||
EAPI Eina_Bool eina_matrixsparse_data_idx_set(Eina_Matrixsparse *m, unsigne d long row, unsigned long col, const void *data); | EAPI Eina_Bool eina_matrixsparse_data_idx_set(Eina_Matrixsparse *m, unsigne d long row, unsigned long col, const void *data); | |||
/* data deleting */ | /* data deleting */ | |||
/** | /** | |||
* Clear (erase all cells) of row given its index. | * Clear (erase all cells) of row given its index. | |||
* | * | |||
* Existing cells will be cleared with @c free_func() given to | * Existing cells will be cleared with @c free_func() given to | |||
* eina_matrixsparse_new(). | * eina_matrixsparse_new(). | |||
* | * | |||
* @param m the sparse matrix to operate on. | * @param m the sparse matrix to operate on. | |||
* @param row the new number of row to clear. | * @param row the new number of row to clear. | |||
* | * | |||
* @return 1 on success, 0 on failure. It is considered success if row | * @return #EINA_TRUE on success, #EINA_FALSE on failure. It is considered success if row | |||
* had no cells filled. Failure is asking for clear row outside | * had no cells filled. Failure is asking for clear row outside | |||
* matrix size. | * matrix size. | |||
* | * | |||
* @warning cells, rows or columns are not reference counted and thus | * @warning cells, rows or columns are not reference counted and thus | |||
* after this call any reference might be invalid if instance were | * after this call any reference might be invalid if instance were | |||
* freed. | * freed. | |||
*/ | */ | |||
EAPI Eina_Bool eina_matrixsparse_row_idx_clear(Eina_Matrixsparse *m, unsign ed long row); | EAPI Eina_Bool eina_matrixsparse_row_idx_clear(Eina_Matrixsparse *m, unsign ed long row); | |||
/** | /** | |||
* Clear (erase all cells) of column given its index. | * Clear (erase all cells) of column given its index. | |||
* | * | |||
* Existing cells will be cleared with @c free_func() given to | * Existing cells will be cleared with @c free_func() given to | |||
* eina_matrixsparse_new(). | * eina_matrixsparse_new(). | |||
* | * | |||
* @param m the sparse matrix to operate on. | * @param m the sparse matrix to operate on. | |||
* @param col the new number of column to clear. | * @param col the new number of column to clear. | |||
* | * | |||
* @return 1 on success, 0 on failure. It is considered success if column | * @return #EINA_TRUE on success, #EINA_FALSE on failure. It is considered success if column | |||
* had no cells filled. Failure is asking for clear column outside | * had no cells filled. Failure is asking for clear column outside | |||
* matrix size. | * matrix size. | |||
* | * | |||
* @warning cells, rows or columns are not reference counted and thus | * @warning cells, rows or columns are not reference counted and thus | |||
* after this call any reference might be invalid if instance were | * after this call any reference might be invalid if instance were | |||
* freed. | * freed. | |||
*/ | */ | |||
EAPI Eina_Bool eina_matrixsparse_column_idx_clear(Eina_Matrixsparse *m, uns igned long col); | EAPI Eina_Bool eina_matrixsparse_column_idx_clear(Eina_Matrixsparse *m, uns igned long col); | |||
/** | /** | |||
* Clear (erase) cell given its indexes. | * Clear (erase) cell given its indexes. | |||
* | * | |||
* Existing cell will be cleared with @c free_func() given to | * Existing cell will be cleared with @c free_func() given to | |||
* eina_matrixsparse_new(). | * eina_matrixsparse_new(). | |||
* | * | |||
* @param m the sparse matrix to operate on. | * @param m the sparse matrix to operate on. | |||
* @param row the new number of row to clear. | * @param row the new number of row to clear. | |||
* @param col the new number of column to clear. | * @param col the new number of column to clear. | |||
* | * | |||
* @return 1 on success, 0 on failure. It is considered success if did not | * @return #EINA_TRUE on success, #EINA_FALSE on failure. It is considered success if did not | |||
* exist but index is inside matrix size. | * exist but index is inside matrix size. | |||
* | * | |||
* @warning cells, rows or columns are not reference counted and thus | * @warning cells, rows or columns are not reference counted and thus | |||
* after this call any reference might be invalid if instance were | * after this call any reference might be invalid if instance were | |||
* freed. Note that this call might delete container column and | * freed. Note that this call might delete container column and | |||
* row if this cell was the last remainder. | * row if this cell was the last remainder. | |||
*/ | */ | |||
EAPI Eina_Bool eina_matrixsparse_cell_idx_clear(Eina_Matrixsparse *m, unsig ned long row, unsigned long col); | EAPI Eina_Bool eina_matrixsparse_cell_idx_clear(Eina_Matrixsparse *m, unsig ned long row, unsigned long col); | |||
/** | /** | |||
* Clear (erase) cell given its reference. | * Clear (erase) cell given its reference. | |||
* | * | |||
* @param cell the cell reference, must @b not be @c NULL. | * @param cell the cell reference, must @b not be @c NULL. | |||
* | * | |||
* @return 1 on success, 0 on failure. | * @return #EINA_TRUE on success, #EINA_FALSE on failure. | |||
* | * | |||
* @warning cells, rows or columns are not reference counted and thus | * @warning cells, rows or columns are not reference counted and thus | |||
* after this call any reference might be invalid if instance were | * after this call any reference might be invalid if instance were | |||
* freed. Note that this call might delete container column and | * freed. Note that this call might delete container column and | |||
* row if this cell was the last remainder. | * row if this cell was the last remainder. | |||
*/ | */ | |||
EAPI Eina_Bool eina_matrixsparse_cell_clear(Eina_Matrixsparse_Cell *cell); | EAPI Eina_Bool eina_matrixsparse_cell_clear(Eina_Matrixsparse_Cell *cell); | |||
/* iterators */ | /* iterators */ | |||
End of changes. 16 change blocks. | ||||
16 lines changed or deleted | 16 lines changed or added | |||
eina_mmap.h | eina_mmap.h | |||
---|---|---|---|---|
skipping to change at line 17 | skipping to change at line 17 | |||
* @brief These functions provide helpers for safe mmap handling | * @brief These functions provide helpers for safe mmap handling | |||
* | * | |||
* @{ | * @{ | |||
* | * | |||
* @since 1.1.0 | * @since 1.1.0 | |||
*/ | */ | |||
/** | /** | |||
* @brief Enable or disable safe mmaped IO handling | * @brief Enable or disable safe mmaped IO handling | |||
* | * | |||
* @param enabled The enabled state (to enable, pass EINA_TRUE) | * @param enabled The enabled state (to enable, pass #EINA_TRUE) | |||
* @return #EINA_TRUE on success, #EINA_FALSE on failure. | * @return #EINA_TRUE on success, #EINA_FALSE on failure. | |||
* | * | |||
* This enables (if possible on your platform) a signal handler for | * This enables (if possible on your platform) a signal handler for | |||
* SIGBUS, that replaces the "bad page" with a page of 0's (from /dev/zero) | * SIGBUS, that replaces the "bad page" with a page of 0's (from /dev/zero) | |||
* if a SIGBUS occurs. This allows for safe mmap() of files that may trunca te | * if a SIGBUS occurs. This allows for safe mmap() of files that may trunca te | |||
* or from files on devices with IO errors. Normally these cases will resul t | * or from files on devices with IO errors. Normally these cases will resul t | |||
* in a SIGBUS being delivered (and termination of your process), but | * in a SIGBUS being delivered (and termination of your process), but | |||
* when "mmap safety" is enabled, this will not occur. Instead a page of | * when "mmap safety" is enabled, this will not occur. Instead a page of | |||
* bytes of the value 0 will replace the "bad page", allowing the process | * bytes of the value 0 will replace the "bad page", allowing the process | |||
* to continue and allow its own parsing error detection to safely abort | * to continue and allow its own parsing error detection to safely abort | |||
skipping to change at line 47 | skipping to change at line 47 | |||
* such "damaged files" that would take down your process. | * such "damaged files" that would take down your process. | |||
* | * | |||
* @since 1.1.0 | * @since 1.1.0 | |||
*/ | */ | |||
EAPI Eina_Bool | EAPI Eina_Bool | |||
eina_mmap_safety_enabled_set(Eina_Bool enabled); | eina_mmap_safety_enabled_set(Eina_Bool enabled); | |||
/** | /** | |||
* @brief Get the enabled state of mmap safety. | * @brief Get the enabled state of mmap safety. | |||
* | * | |||
* @return The safety state (EINA_TRUE if enabled) | * @return The safety state (#EINA_TRUE if enabled) | |||
* | * | |||
* This returns the mmap safety state set by eina_mmap_safety_enabled_set() . | * This returns the mmap safety state set by eina_mmap_safety_enabled_set() . | |||
* See eina_mmap_safety_enabled_set() for more information. | * See eina_mmap_safety_enabled_set() for more information. | |||
* | * | |||
* @since 1.1.0 | * @since 1.1.0 | |||
*/ | */ | |||
EAPI Eina_Bool | EAPI Eina_Bool | |||
eina_mmap_safety_enabled_get(void); | eina_mmap_safety_enabled_get(void); | |||
/** | /** | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
eina_module.h | eina_module.h | |||
---|---|---|---|---|
skipping to change at line 104 | skipping to change at line 104 | |||
/** | /** | |||
* @def EINA_MODULE_INIT | * @def EINA_MODULE_INIT | |||
* declares the given function as the module initializer (__eina_module_ini t). | * declares the given function as the module initializer (__eina_module_ini t). | |||
* It must be of signature #Eina_Module_Init | * It must be of signature #Eina_Module_Init | |||
*/ | */ | |||
#define EINA_MODULE_INIT(f) EAPI Eina_Module_Init __eina_module_init = &f | #define EINA_MODULE_INIT(f) EAPI Eina_Module_Init __eina_module_init = &f | |||
/** | /** | |||
* @def EINA_MODULE_SHUTDOWN | * @def EINA_MODULE_SHUTDOWN | |||
* declares the given function as the module shutdownializer | * declares the given function as the module shutdownializer | |||
* (__eina_module_shutdown). It must be of signature | * (__eina_module_shutdown). It must be of signature #Eina_Module_Shutdown | |||
* #Eina_Module_Shutdown | ||||
*/ | */ | |||
#define EINA_MODULE_SHUTDOWN(f) EAPI Eina_Module_Shutdown __eina_module_shu tdown = &f | #define EINA_MODULE_SHUTDOWN(f) EAPI Eina_Module_Shutdown __eina_module_shu tdown = &f | |||
/** | /** | |||
* @var EINA_ERROR_WRONG_MODULE | * @var EINA_ERROR_WRONG_MODULE | |||
* Error identifier corresponding to a wrong module. | * Error identifier corresponding to a wrong module. | |||
*/ | */ | |||
extern EAPI Eina_Error EINA_ERROR_WRONG_MODULE; | extern EAPI Eina_Error EINA_ERROR_WRONG_MODULE; | |||
/** | /** | |||
skipping to change at line 142 | skipping to change at line 141 | |||
* | * | |||
* @see eina_module_load | * @see eina_module_load | |||
*/ | */ | |||
EAPI Eina_Module * | EAPI Eina_Module * | |||
eina_module_new(const char *file) EINA_MALLOC EINA_WARN_UNUSED_RESULT EINA _ARG_NONNULL(1); | eina_module_new(const char *file) EINA_MALLOC EINA_WARN_UNUSED_RESULT EINA _ARG_NONNULL(1); | |||
/** | /** | |||
* @brief Delete a module. | * @brief Delete a module. | |||
* | * | |||
* @param module The module to delete. | * @param module The module to delete. | |||
* @return EINA_TRUE on success, EINA_FALSE otherwise. | * @return #EINA_TRUE on success, #EINA_FALSE otherwise. | |||
* | * | |||
* This function calls eina_module_unload() if @p module has been previousl y | * This function calls eina_module_unload() if @p module has been previousl y | |||
* loaded and frees the allocated memory. On success this function | * loaded and frees the allocated memory. On success this function | |||
* returns EINA_TRUE and EINA_FALSE otherwise. If @p module is @c NULL, the | * returns #EINA_TRUE and #EINA_FALSE otherwise. If @p module is @c NULL, t he | |||
* function returns immediately. | * function returns immediately. | |||
*/ | */ | |||
EAPI Eina_Bool | EAPI Eina_Bool | |||
eina_module_free(Eina_Module *module) EINA_ARG_NONNULL(1); | eina_module_free(Eina_Module *module) EINA_ARG_NONNULL(1); | |||
/** | /** | |||
* @brief Load a module. | * @brief Load a module. | |||
* | * | |||
* @param module The module to load. | * @param module The module to load. | |||
* @return EINA_TRUE on success, EINA_FALSE otherwise. | * @return #EINA_TRUE on success, #EINA_FALSE otherwise. | |||
* | * | |||
* This function load the shared file object passed in | * This function load the shared file object passed in | |||
* eina_module_new(). If it is a internal Eina module (like the | * eina_module_new(). If it is a internal Eina module (like the | |||
* mempools), it also initialize it. It the shared file object can not | * mempools), it also initialize it. It the shared file object can not | |||
* be loaded, the error #EINA_ERROR_WRONG_MODULE is set and | * be loaded, the error #EINA_ERROR_WRONG_MODULE is set and | |||
* #EINA_FALSE is returned. If it is a internal Eina module and the | * and #EINA_FALSE is returned. If it is a internal Eina module and the | |||
* module can not be initialized, the error | * module can not be initialized, the error #EINA_ERROR_MODULE_INIT_FAILED | |||
* #EINA_ERROR_MODULE_INIT_FAILED is set and #EINA_FALSE is | * is set and #EINA_FALSE is returned. If the module has already been loade | |||
* returned. If the module has already been loaded, it's reference | d, | |||
* counter is increased by one and #EINA_TRUE is returned. If @p module is | * it's reference counter is increased by one and #EINA_TRUE is returned. | |||
* @c NULL, the function returns immediately #EINA_FALSE. | * If @p module is @c NULL, the function returns immediately #EINA_FALSE. | |||
* | * | |||
* When the symbols of the shared file objects are not needed | * When the symbols of the shared file objects are not needed | |||
* anymore, call eina_module_unload() to unload the module. | * anymore, call eina_module_unload() to unload the module. | |||
*/ | */ | |||
EAPI Eina_Bool | EAPI Eina_Bool | |||
eina_module_load(Eina_Module *module) EINA_ARG_NONNULL(1); | eina_module_load(Eina_Module *module) EINA_ARG_NONNULL(1); | |||
/** | /** | |||
* @brief Unload a module. | * @brief Unload a module. | |||
* | * | |||
* @param module The module to load. | * @param module The module to load. | |||
* @return EINA_TRUE on success, EINA_FALSE otherwise. | * @return #EINA_TRUE on success, #EINA_FALSE otherwise. | |||
* | * | |||
* This function unload the module @p module that has been previously | * This function unload the module @p module that has been previously | |||
* loaded by eina_module_load(). If the reference counter of @p module is | * loaded by eina_module_load(). If the reference counter of @p module is | |||
* strictly greater than @c 1, #EINA_FALSE is returned. Otherwise, the | * strictly greater than @c 1, #EINA_FALSE is returned. Otherwise, the | |||
* shared object file is closed and if it is a internal Eina module, it | * shared object file is closed and if it is a internal Eina module, it | |||
* is shutted down just before. In that case, #EINA_TRUE is | * is shutted down just before. In that case, #EINA_TRUE is | |||
* returned. In all case, the reference counter is decreased. If @p module | * returned. In all case, the reference counter is decreased. If @p module | |||
* is @c NULL, the function returns immediately #EINA_FALSE. | * is @c NULL, the function returns immediately #EINA_FALSE. | |||
*/ | */ | |||
EAPI Eina_Bool | EAPI Eina_Bool | |||
skipping to change at line 284 | skipping to change at line 282 | |||
* @param path The directory's path to search for modules. | * @param path The directory's path to search for modules. | |||
* @param recursive Iterate recursively on the path. | * @param recursive Iterate recursively on the path. | |||
* @param cb Callback function to call on each module. | * @param cb Callback function to call on each module. | |||
* @param data Data passed to the callback function. | * @param data Data passed to the callback function. | |||
* @return The array of modules found in @p path. | * @return The array of modules found in @p path. | |||
* | * | |||
* This function adds to @p array the list of modules found in | * This function adds to @p array the list of modules found in | |||
* @p path. If @p recursive is #EINA_TRUE, then recursive search is | * @p path. If @p recursive is #EINA_TRUE, then recursive search is | |||
* done. The callback @p cb is called on each module found, and @p data | * done. The callback @p cb is called on each module found, and @p data | |||
* is passed to @p cb. If @p path is @c NULL, the function returns | * is passed to @p cb. If @p path is @c NULL, the function returns | |||
* immediately @p array. If the returned value of @p cb is 0, the | * immediately @p array. If the returned value of @p cb is @c 0, the | |||
* module will not be added to the list, otherwise it will be added. | * module will not be added to the list, otherwise it will be added. | |||
* @p array can be @c NULL. In that case, it is created with 4 | * @p array can be @c NULL. In that case, it is created with 4 | |||
* elements. @p cb can be @c NULL. | * elements. @p cb can be @c NULL. | |||
*/ | */ | |||
EAPI Eina_Array * | EAPI Eina_Array * | |||
eina_module_list_get(Eina_Array *array, const char *path, Eina_Bool recurs ive, Eina_Module_Cb cb, void *data) EINA_MALLOC EINA_WARN_UNUSED_RESULT; | eina_module_list_get(Eina_Array *array, const char *path, Eina_Bool recurs ive, Eina_Module_Cb cb, void *data) EINA_MALLOC EINA_WARN_UNUSED_RESULT; | |||
/** | /** | |||
* @brief Load every module on the list of modules. | * @brief Load every module on the list of modules. | |||
* | * | |||
End of changes. 7 change blocks. | ||||
13 lines changed or deleted | 12 lines changed or added | |||
eina_prefix.h | eina_prefix.h | |||
---|---|---|---|---|
skipping to change at line 29 | skipping to change at line 29 | |||
* data files such as images, sound files, other executable utilities, | * data files such as images, sound files, other executable utilities, | |||
* libraries, modules and locale files can be found. | * libraries, modules and locale files can be found. | |||
* | * | |||
* @since 1.1.0 | * @since 1.1.0 | |||
*/ | */ | |||
typedef struct _Eina_Prefix Eina_Prefix; | typedef struct _Eina_Prefix Eina_Prefix; | |||
/** | /** | |||
* @brief Create a new prefix handle given some input information | * @brief Create a new prefix handle given some input information | |||
* | * | |||
* @param argv0 If this is an executable this is argv[0] of the binary, or | * @param argv0 If this is an executable this is argv[0] of the binary, or | |||
NULL if it is used from a shared library | @c NULL if it is used from a shared library | |||
* @param symbol This is a symbol (function for example) inside the binary | * @param symbol This is a symbol (function for example) inside the binary | |||
or library to find the source location of. Provide NULL if not used | or library to find the source location of. Provide @c NULL if not used | |||
* @param envprefix This is the prefix to any environment variables that ma y override prefix detection and give the exact location of the software | * @param envprefix This is the prefix to any environment variables that ma y override prefix detection and give the exact location of the software | |||
* @param sharedir This is the directory inside the standard share or data dir where the software will store data files | * @param sharedir This is the directory inside the standard share or data dir where the software will store data files | |||
* @param magicsharefile This is a magic file to check existence of to dete | * @param magicsharefile This is a magic file to check existence of to dete | |||
rmine the prefix find was correct, and it must be located in the data dir u | rmine the prefix find was correct, and it must be located in the data | |||
nder the share dir provided above, or NULL if the check is not to be done | * dir under the share dir provided above, or @c NULL if the check is not t | |||
o be done. | ||||
* @param pkg_bin This is the compile-time binary install dir | * @param pkg_bin This is the compile-time binary install dir | |||
* @param pkg_lib This is the compile-time library install dir | * @param pkg_lib This is the compile-time library install dir | |||
* @param pkg_data This is the compile-time share/data install dir | * @param pkg_data This is the compile-time share/data install dir | |||
* @param pkg_locale This is the compile-time locale install dir | * @param pkg_locale This is the compile-time locale install dir | |||
* @return The prefix handle, or NULL on failure | * @return The prefix handle, or @c NULL on failure. | |||
* | * | |||
* Applications and libraries are most often not just single executables no r | * Applications and libraries are most often not just single executables no r | |||
* single shared library binaries, but also come with extra modules they | * single shared library binaries, but also come with extra modules they | |||
* have to load, extra binary utilities they need to run, or have data file s | * have to load, extra binary utilities they need to run, or have data file s | |||
* they need to load. A very primitive application ASSUMES a fixed install | * they need to load. A very primitive application ASSUMES a fixed install | |||
* location at compile-time, but this disallows the ability to re-locate | * location at compile-time, but this disallows the ability to re-locate | |||
* the application (or library) somewhere else after compilation (if you ru n | * the application (or library) somewhere else after compilation (if you ru n | |||
* out of space on a given disk, partition etc. for example), or necessitat e | * out of space on a given disk, partition etc. for example), or necessitat e | |||
* the need for having to maintain environment variables for every piece of | * the need for having to maintain environment variables for every piece of | |||
* software to let it know its location, or have to use large sets of | * software to let it know its location, or have to use large sets of | |||
skipping to change at line 70 | skipping to change at line 71 | |||
* | * | |||
* To do this some information needs to be provided to eina_prefix_new(). I f | * To do this some information needs to be provided to eina_prefix_new(). I f | |||
* you have developed a binary executable, then provide argv[0] as the @p a rgv0 | * you have developed a binary executable, then provide argv[0] as the @p a rgv0 | |||
* argument. This plus the PATH environment variable help the prefix system | * argument. This plus the PATH environment variable help the prefix system | |||
* to determine its location. Call eina_prefix_new() early on before you | * to determine its location. Call eina_prefix_new() early on before you | |||
* change working directory or anything about argv[0] so it gets accurate | * change working directory or anything about argv[0] so it gets accurate | |||
* information. It will use the first argument, being the executable itself , | * information. It will use the first argument, being the executable itself , | |||
* to look in absolute directories, relative paths and PATH to see if it | * to look in absolute directories, relative paths and PATH to see if it | |||
* finds the right executable to determine just where the actual binary is | * finds the right executable to determine just where the actual binary is | |||
* installed and being run from. If you develop a share library, just pass | * installed and being run from. If you develop a share library, just pass | |||
* NULL as argv0 | * @c NULL as argv0 | |||
* | * | |||
* It would prefer to use the @p symbol function to determine location as | * It would prefer to use the @p symbol function to determine location as | |||
* that function will be unique inside the application and try and trace | * that function will be unique inside the application and try and trace | |||
* back which file this function comes from (be it a binary or shared libra ry) | * back which file this function comes from (be it a binary or shared libra ry) | |||
* as this avoids more expensive searches via @p argv0. It will use this | * as this avoids more expensive searches via @p argv0. It will use this | |||
* symbol if given in preference to argv0. | * symbol if given in preference to argv0. | |||
* | * | |||
* The @p envprefix parameter, provides a string prefix to prepend before | * The @p envprefix parameter, provides a string prefix to prepend before | |||
* environment variables to allow a fallback to specific environment variab les | * environment variables to allow a fallback to specific environment variab les | |||
* to locate the software. For example if "MYAPP" is provided a the prefix, | * to locate the software. For example if "MYAPP" is provided a the prefix, | |||
End of changes. 4 change blocks. | ||||
9 lines changed or deleted | 10 lines changed or added | |||
eina_rbtree.h | eina_rbtree.h | |||
---|---|---|---|---|
skipping to change at line 159 | skipping to change at line 159 | |||
/** | /** | |||
* @brief Insert a new node inside an existing red black tree. | * @brief Insert a new node inside an existing red black tree. | |||
* | * | |||
* @param root The root of an exisiting valid red black tree. | * @param root The root of an exisiting valid red black tree. | |||
* @param node The new node to insert. | * @param node The new node to insert. | |||
* @param cmp The callback that is able to compare two nodes. | * @param cmp The callback that is able to compare two nodes. | |||
* @param data Private data to help the compare function. | * @param data Private data to help the compare function. | |||
* @return The new root of the red black tree. | * @return The new root of the red black tree. | |||
* | * | |||
* This function insert a new node in a valid red black tree. NULL is | * This function insert a new node in a valid red black tree. @c NULL is | |||
* an empty valid red black tree. The resulting new tree is a valid red | * an empty valid red black tree. The resulting new tree is a valid red | |||
* black tree. This function doesn't allocate any data. | * black tree. This function doesn't allocate any data. | |||
*/ | */ | |||
EAPI Eina_Rbtree *eina_rbtree_inline_insert(Eina_Rbtree *root, Ein a_Rbtree *node, Eina_Rbtree_Cmp_Node_Cb cmp, const void *data) EINA_ARG_NON NULL(2, 3) EINA_WARN_UNUSED_RESULT; | EAPI Eina_Rbtree *eina_rbtree_inline_insert(Eina_Rbtree *root, Ein a_Rbtree *node, Eina_Rbtree_Cmp_Node_Cb cmp, const void *data) EINA_ARG_NON NULL(2, 3) EINA_WARN_UNUSED_RESULT; | |||
/** | /** | |||
* @brief Remove a node from an existing red black tree. | * @brief Remove a node from an existing red black tree. | |||
* | * | |||
* @param root The root of a valid red black tree. | * @param root The root of a valid red black tree. | |||
* @param node The node to remove from the tree. | * @param node The node to remove from the tree. | |||
* @param cmp The callback that is able to compare two nodes. | * @param cmp The callback that is able to compare two nodes. | |||
* @param data Private data to help the compare function. | * @param data Private data to help the compare function. | |||
* @return The new root of the red black tree. | * @return The new root of the red black tree. | |||
* | * | |||
* This function remove a new node in a valid red black tree that should | * This function remove a new node in a valid red black tree that should | |||
* contain the node that you are removing. This function will return NULL | * contain the node that you are removing. This function will return @c NUL L | |||
* when the red black tree got empty. This function doesn't free any data. | * when the red black tree got empty. This function doesn't free any data. | |||
*/ | */ | |||
EAPI Eina_Rbtree *eina_rbtree_inline_remove(Eina_Rbtree *root, Ein a_Rbtree *node, Eina_Rbtree_Cmp_Node_Cb cmp, const void *data) EINA_ARG_NON NULL(2, 3) EINA_WARN_UNUSED_RESULT; | EAPI Eina_Rbtree *eina_rbtree_inline_remove(Eina_Rbtree *root, Ein a_Rbtree *node, Eina_Rbtree_Cmp_Node_Cb cmp, const void *data) EINA_ARG_NON NULL(2, 3) EINA_WARN_UNUSED_RESULT; | |||
/** | /** | |||
* @brief Delete all nodes from a valid red black tree. | * @brief Delete all nodes from a valid red black tree. | |||
* | * | |||
* @param root The root of a valid red black tree. | * @param root The root of a valid red black tree. | |||
* @param func The callback that will free each node. | * @param func The callback that will free each node. | |||
* @param data Private data to help the compare function. | * @param data Private data to help the compare function. | |||
skipping to change at line 203 | skipping to change at line 203 | |||
* @brief Returned a new prefix iterator associated to a rbtree. | * @brief Returned a new prefix iterator associated to a rbtree. | |||
* | * | |||
* @param root The root of rbtree. | * @param root The root of rbtree. | |||
* @return A new iterator. | * @return A new iterator. | |||
* | * | |||
* This function returns a newly allocated iterator associated to @p | * This function returns a newly allocated iterator associated to @p | |||
* root. It will iterate the tree using prefix walk. If @p root is @c | * root. It will iterate the tree using prefix walk. If @p root is @c | |||
* NULL, this function still returns a valid iterator that will always | * NULL, this function still returns a valid iterator that will always | |||
* return false on eina_iterator_next(), thus keeping API sane. | * return false on eina_iterator_next(), thus keeping API sane. | |||
* | * | |||
* If the memory can not be allocated, NULL is returned and | * If the memory can not be allocated, @c NULL is returned | |||
* #EINA_ERROR_OUT_OF_MEMORY is set. Otherwise, a valid iterator is | * and #EINA_ERROR_OUT_OF_MEMORY is set. Otherwise, a valid iterator is | |||
* returned. | * returned. | |||
* | * | |||
* @warning if the rbtree structure changes then the iterator becomes | * @warning if the rbtree structure changes then the iterator becomes | |||
* invalid! That is, if you add or remove nodes this iterator | * invalid! That is, if you add or remove nodes this iterator | |||
* behavior is undefined and your program may crash! | * behavior is undefined and your program may crash! | |||
*/ | */ | |||
EAPI Eina_Iterator *eina_rbtree_iterator_prefix(const Eina_Rbtree *r oot) EINA_MALLOC EINA_WARN_UNUSED_RESULT; | EAPI Eina_Iterator *eina_rbtree_iterator_prefix(const Eina_Rbtree *r oot) EINA_MALLOC EINA_WARN_UNUSED_RESULT; | |||
/** | /** | |||
* @brief Returned a new prefix iterator associated to a rbtree. | * @brief Returned a new prefix iterator associated to a rbtree. | |||
* | * | |||
* @param root The root of rbtree. | * @param root The root of rbtree. | |||
* @return A new iterator. | * @return A new iterator. | |||
* | * | |||
* This function returns a newly allocated iterator associated to @p | * This function returns a newly allocated iterator associated to @p | |||
* root. It will iterate the tree using infix walk. If @p root is @c | * root. It will iterate the tree using infix walk. If @p root is @c | |||
* NULL, this function still returns a valid iterator that will always | * NULL, this function still returns a valid iterator that will always | |||
* return false on eina_iterator_next(), thus keeping API sane. | * return false on eina_iterator_next(), thus keeping API sane. | |||
* | * | |||
* If the memory can not be allocated, NULL is returned and | * If the memory can not be allocated, @c NULL is returned | |||
* #EINA_ERROR_OUT_OF_MEMORY is set. Otherwise, a valid iterator is | * and #EINA_ERROR_OUT_OF_MEMORY is set. Otherwise, a valid iterator is | |||
* returned. | * returned. | |||
* | * | |||
* @warning if the rbtree structure changes then the iterator becomes | * @warning if the rbtree structure changes then the iterator becomes | |||
* invalid! That is, if you add or remove nodes this iterator | * invalid! That is, if you add or remove nodes this iterator | |||
* behavior is undefined and your program may crash! | * behavior is undefined and your program may crash! | |||
*/ | */ | |||
EAPI Eina_Iterator *eina_rbtree_iterator_infix(const Eina_Rbtree *ro ot) EINA_MALLOC EINA_WARN_UNUSED_RESULT; | EAPI Eina_Iterator *eina_rbtree_iterator_infix(const Eina_Rbtree *ro ot) EINA_MALLOC EINA_WARN_UNUSED_RESULT; | |||
/** | /** | |||
* @brief Returned a new prefix iterator associated to a rbtree. | * @brief Returned a new prefix iterator associated to a rbtree. | |||
* | * | |||
* @param root The root of rbtree. | * @param root The root of rbtree. | |||
* @return A new iterator. | * @return A new iterator. | |||
* | * | |||
* This function returns a newly allocated iterator associated to @p | * This function returns a newly allocated iterator associated to @p | |||
* root. It will iterate the tree using postfix walk. If @p root is @c | * root. It will iterate the tree using postfix walk. If @p root is @c | |||
* NULL, this function still returns a valid iterator that will always | * NULL, this function still returns a valid iterator that will always | |||
* return false on eina_iterator_next(), thus keeping API sane. | * return false on eina_iterator_next(), thus keeping API sane. | |||
* | * | |||
* If the memory can not be allocated, NULL is returned and | * If the memory can not be allocated, @c NULL is returned | |||
* #EINA_ERROR_OUT_OF_MEMORY is set. Otherwise, a valid iterator is | * and #EINA_ERROR_OUT_OF_MEMORY is set. Otherwise, a valid iterator is | |||
* returned. | * returned. | |||
* | * | |||
* @warning if the rbtree structure changes then the iterator becomes | * @warning if the rbtree structure changes then the iterator becomes | |||
* invalid! That is, if you add or remove nodes this iterator | * invalid! That is, if you add or remove nodes this iterator | |||
* behavior is undefined and your program may crash! | * behavior is undefined and your program may crash! | |||
*/ | */ | |||
EAPI Eina_Iterator *eina_rbtree_iterator_postfix(const Eina_Rbtree * root) EINA_MALLOC EINA_WARN_UNUSED_RESULT; | EAPI Eina_Iterator *eina_rbtree_iterator_postfix(const Eina_Rbtree * root) EINA_MALLOC EINA_WARN_UNUSED_RESULT; | |||
#include "eina_inline_rbtree.x" | #include "eina_inline_rbtree.x" | |||
End of changes. 5 change blocks. | ||||
8 lines changed or deleted | 8 lines changed or added | |||
eina_simple_xml_parser.h | eina_simple_xml_parser.h | |||
---|---|---|---|---|
skipping to change at line 232 | skipping to change at line 232 | |||
* @param strip whenever this parser should strip leading and trailing | * @param strip whenever this parser should strip leading and trailing | |||
* whitespace. These whitespace will still be issued, but as type | * whitespace. These whitespace will still be issued, but as type | |||
* #EINA_SIMPLE_XML_IGNORED. | * #EINA_SIMPLE_XML_IGNORED. | |||
* @param func what to call back while parse to do some action. The | * @param func what to call back while parse to do some action. The | |||
* first parameter is the given user @a data, the second is the | * first parameter is the given user @a data, the second is the | |||
* token type, the third is the pointer to content start (it's | * token type, the third is the pointer to content start (it's | |||
* not a NULL terminated string!), the forth is where this | * not a NULL terminated string!), the forth is where this | |||
* content is located inside @a buf (does not include tag | * content is located inside @a buf (does not include tag | |||
* start, for instance "<!DOCTYPE value>" the offset points at | * start, for instance "<!DOCTYPE value>" the offset points at | |||
* "value"), the fifth is the size of the content. Whenever this | * "value"), the fifth is the size of the content. Whenever this | |||
* function return EINA_FALSE the parser will abort. @param | * function return #EINA_FALSE the parser will abort. @param | |||
* data what to give as context to @a func. | * data what to give as context to @a func. | |||
* | * | |||
* @return EINA_TRUE on success or EINA_FALSE if it was aborted by user or | * @return #EINA_TRUE on success or #EINA_FALSE if it was aborted by user o r | |||
* parsing error. | * parsing error. | |||
*/ | */ | |||
EAPI Eina_Bool eina_simple_xml_parse(const char *buf, unsigned buflen, | EAPI Eina_Bool eina_simple_xml_parse(const char *buf, unsigned buflen, | |||
Eina_Bool strip, | Eina_Bool strip, | |||
Eina_Simple_XML_Cb func, const void *da ta); | Eina_Simple_XML_Cb func, const void *da ta); | |||
/** | /** | |||
* Given the contents of a tag, find where the attributes start. | * Given the contents of a tag, find where the attributes start. | |||
* | * | |||
* @param buf the input string. May not contain \0 terminator. | * @param buf the input string. May not contain \0 terminator. | |||
* @param buflen the input string size. | * @param buflen the input string size. | |||
* @return pointer to the start of attributes, it can be used | * @return pointer to the start of attributes, it can be used | |||
* to feed eina_simple_xml_attributes_parse(). NULL is returned | * to feed eina_simple_xml_attributes_parse(). @c NULL is returned | |||
* if no attributes were found. | * if no attributes were found. | |||
* | * | |||
* The tag contents is returned by eina_simple_xml_parse() when | * The tag contents is returned by eina_simple_xml_parse() when | |||
* type is #EINA_SIMPLE_XML_OPEN or #EINA_SIMPLE_XML_OPEN_EMPTY. | * type is #EINA_SIMPLE_XML_OPEN or #EINA_SIMPLE_XML_OPEN_EMPTY. | |||
* | * | |||
*/ | */ | |||
EAPI const char * eina_simple_xml_tag_attributes_find(const char *buf, unsi gned buflen); | EAPI const char * eina_simple_xml_tag_attributes_find(const char *buf, unsi gned buflen); | |||
/** | /** | |||
* Given a buffer with xml attributes, parse them to key=value pairs. | * Given a buffer with xml attributes, parse them to key=value pairs. | |||
* | * | |||
* @param buf the input string. May not contain \0 terminator. | * @param buf the input string. May not contain \0 terminator. | |||
* @param buflen the input string size. | * @param buflen the input string size. | |||
* @param func what to call back while parse to do some action. The | * @param func what to call back while parse to do some action. The | |||
* first parameter is the given user @a data, the second is the | * first parameter is the given user @a data, the second is the | |||
* key (null-terminated) and the last is the value (null | * key (null-terminated) and the last is the value (null | |||
* terminated). These strings should not be modified and | * terminated). These strings should not be modified and | |||
* reference is just valid until the function return. | * reference is just valid until the function return. | |||
* @param data data to pass to the callback function. | * @param data data to pass to the callback function. | |||
* | * | |||
* @return EINA_TRUE on success or EINA_FALSE if it was aborted by user or | * @return #EINA_TRUE on success or #EINA_FALSE if it was aborted by user o r | |||
* parsing error. | * parsing error. | |||
*/ | */ | |||
EAPI Eina_Bool eina_simple_xml_attributes_parse(const char *buf, unsigned b uflen, | EAPI Eina_Bool eina_simple_xml_attributes_parse(const char *buf, unsigned b uflen, | |||
Eina_Simple_XML_Attribute_Cb func, const void *data); | Eina_Simple_XML_Attribute_Cb func, const void *data); | |||
/** | /** | |||
* Create (and append) new attribute to tag. | * Create (and append) new attribute to tag. | |||
* | * | |||
* @param parent if provided, will be set in the resulting structure | * @param parent if provided, will be set in the resulting structure | |||
* as well as the attribute will be appended to attributes list. | * as well as the attribute will be appended to attributes list. | |||
* @param key null-terminated string. Must not be NULL. | * @param key Null-terminated string. Must not be @c NULL. | |||
* @param value null-terminated string. If NULL, the empty string will be u | * @param value Null-terminated string. If @c NULL, the empty string will b | |||
sed. | e used. | |||
* | * | |||
* @return newly allocated memory or NULL on error. This memory should be | * @return Newly allocated memory or @c NULL on error. This memory should b e | |||
* released with eina_simple_xml_attribute_free() or indirectly | * released with eina_simple_xml_attribute_free() or indirectly | |||
* with eina_simple_xml_node_tag_free(). | * with eina_simple_xml_node_tag_free(). | |||
*/ | */ | |||
EAPI Eina_Simple_XML_Attribute * eina_simple_xml_attribute_new(Eina_Simple_ XML_Node_Tag *parent, const char *key, const char *value); | EAPI Eina_Simple_XML_Attribute * eina_simple_xml_attribute_new(Eina_Simple_ XML_Node_Tag *parent, const char *key, const char *value); | |||
/** | /** | |||
* Remove attribute from parent and delete it. | * Remove attribute from parent and delete it. | |||
* | * | |||
* @param attr attribute to release memory. | * @param attr attribute to release memory. | |||
*/ | */ | |||
EAPI void eina_simple_xml_attribute_free(Eina_Simple_XML_Attribute *attr); | EAPI void eina_simple_xml_attribute_free(Eina_Simple_XML_Attribute *attr); | |||
/** | /** | |||
* Create new tag. If parent is provided, it is automatically appended. | * Create new tag. If parent is provided, it is automatically appended. | |||
* | * | |||
* @param parent if provided, will be set in the resulting structure | * @param parent if provided, will be set in the resulting structure | |||
* as well as the tag will be appended to children list. | * as well as the tag will be appended to children list. | |||
* @param name null-terminated string. Must not be NULL. | * @param name Null-terminated string. Must not be @c NULL. | |||
* | * | |||
* @return newly allocated memory or NULL on error. This memory should be | * @return Newly allocated memory or @c NULL on error. This memory should b e | |||
* released with eina_simple_xml_node_tag_free() or indirectly | * released with eina_simple_xml_node_tag_free() or indirectly | |||
* with eina_simple_xml_node_tag_free() of the parent. | * with eina_simple_xml_node_tag_free() of the parent. | |||
*/ | */ | |||
EAPI Eina_Simple_XML_Node_Tag * eina_simple_xml_node_tag_new(Eina_Simple_XM L_Node_Tag *parent, const char *name); | EAPI Eina_Simple_XML_Node_Tag * eina_simple_xml_node_tag_new(Eina_Simple_XM L_Node_Tag *parent, const char *name); | |||
/** | /** | |||
* Remove tag from parent and delete it. | * Remove tag from parent and delete it. | |||
* | * | |||
* @param tag to release memory. | * @param tag to release memory. | |||
*/ | */ | |||
EAPI void eina_simple_xml_node_tag_free(Eina_Simple_XML_Node_Tag *tag); | EAPI void eina_simple_xml_node_tag_free(Eina_Simple_XML_Node_Tag *tag); | |||
/** | /** | |||
* Create new data. If parent is provided, it is automatically appended. | * Create new data. If parent is provided, it is automatically appended. | |||
* | * | |||
* @param parent if provided, will be set in the resulting structure | * @param parent if provided, will be set in the resulting structure | |||
* as well as the data will be appended to children list. | * as well as the data will be appended to children list. | |||
* @param contents string to be used. Must not be NULL. | * @param contents String to be used. Must not be @c NULL. | |||
* @param length size in bytes of @a contents. | * @param length size in bytes of @a contents. | |||
* | * | |||
* @return newly allocated memory or NULL on error. This memory should be | * @return Newly allocated memory or NULL on error. This memory should be | |||
* released with eina_simple_xml_node_data_free() or indirectly | * released with eina_simple_xml_node_data_free() or indirectly | |||
* with eina_simple_xml_node_tag_free() of the parent. | * with eina_simple_xml_node_tag_free() of the parent. | |||
*/ | */ | |||
EAPI Eina_Simple_XML_Node_Data * eina_simple_xml_node_data_new(Eina_Simple_ XML_Node_Tag *parent, const char *contents, size_t length); | EAPI Eina_Simple_XML_Node_Data * eina_simple_xml_node_data_new(Eina_Simple_ XML_Node_Tag *parent, const char *contents, size_t length); | |||
/** | /** | |||
* Remove data from parent and delete it. | * Remove data from parent and delete it. | |||
* | * | |||
* @param node to release memory. | * @param node to release memory. | |||
*/ | */ | |||
EAPI void eina_simple_xml_node_data_free(Eina_Simple_XML_Node_Data *node); | EAPI void eina_simple_xml_node_data_free(Eina_Simple_XML_Node_Data *node); | |||
/** | /** | |||
* Create new cdata. If parent is provided, it is automatically appended. | * Create new cdata. If parent is provided, it is automatically appended. | |||
* | * | |||
* @param parent if provided, will be set in the resulting structure | * @param parent if provided, will be set in the resulting structure | |||
* as well as the cdata will be appended to children list. | * as well as the cdata will be appended to children list. | |||
* @param contents string to be used. Must not be NULL. | * @param contents String to be used. Must not be @c NULL. | |||
* @param length size in bytes of @a content. | * @param length size in bytes of @a content. | |||
* | * | |||
* @return newly allocated memory or NULL on error. This memory should be | * @return Newly allocated memory or @c NULL on error. This memory should b e | |||
* released with eina_simple_xml_node_cdata_free() or indirectly | * released with eina_simple_xml_node_cdata_free() or indirectly | |||
* with eina_simple_xml_node_tag_free() of the parent. | * with eina_simple_xml_node_tag_free() of the parent. | |||
*/ | */ | |||
EAPI Eina_Simple_XML_Node_CData * eina_simple_xml_node_cdata_new(Eina_Simpl e_XML_Node_Tag *parent, const char *contents, size_t length); | EAPI Eina_Simple_XML_Node_CData * eina_simple_xml_node_cdata_new(Eina_Simpl e_XML_Node_Tag *parent, const char *contents, size_t length); | |||
/** | /** | |||
* Remove cdata from parent and delete it. | * Remove cdata from parent and delete it. | |||
* | * | |||
* @param node to release memory. | * @param node to release memory. | |||
*/ | */ | |||
EAPI void eina_simple_xml_node_cdata_free(Eina_Simple_XML_Node_Data *node); | EAPI void eina_simple_xml_node_cdata_free(Eina_Simple_XML_Node_Data *node); | |||
/** | /** | |||
* Create new processing. If parent is provided, it is automatically append ed. | * Create new processing. If parent is provided, it is automatically append ed. | |||
* | * | |||
* @param parent if provided, will be set in the resulting structure | * @param parent if provided, will be set in the resulting structure | |||
* as well as the processing will be appended to children list. | * as well as the processing will be appended to children list. | |||
* @param contents string to be used. Must not be NULL. | * @param contents String to be used. Must not be @c NULL. | |||
* @param length size in bytes of @a contents. | * @param length size in bytes of @a contents. | |||
* | * | |||
* @return newly allocated memory or NULL on error. This memory should be | * @return Newly allocated memory or @c NULL on error. This memory should b e | |||
* released with eina_simple_xml_node_processing_free() or indirect ly | * released with eina_simple_xml_node_processing_free() or indirect ly | |||
* with eina_simple_xml_node_tag_free() of the parent. | * with eina_simple_xml_node_tag_free() of the parent. | |||
*/ | */ | |||
EAPI Eina_Simple_XML_Node_Processing * eina_simple_xml_node_processing_new( Eina_Simple_XML_Node_Tag *parent, const char *contents, size_t length); | EAPI Eina_Simple_XML_Node_Processing * eina_simple_xml_node_processing_new( Eina_Simple_XML_Node_Tag *parent, const char *contents, size_t length); | |||
/** | /** | |||
* Remove processing from parent and delete it. | * Remove processing from parent and delete it. | |||
* | * | |||
* @param node processing to release memory. | * @param node processing to release memory. | |||
*/ | */ | |||
EAPI void eina_simple_xml_node_processing_free(Eina_Simple_XML_Node_Data *n ode); | EAPI void eina_simple_xml_node_processing_free(Eina_Simple_XML_Node_Data *n ode); | |||
/** | /** | |||
* Create new doctype. If parent is provided, it is automatically appended. | * Create new doctype. If parent is provided, it is automatically appended. | |||
* | * | |||
* @param parent if provided, will be set in the resulting structure | * @param parent if provided, will be set in the resulting structure | |||
* as well as the doctype will be appended to children list. | * as well as the doctype will be appended to children list. | |||
* @param contents string to be used. Must not be NULL. | * @param contents String to be used. Must not be @c NULL. | |||
* @param length size in bytes of @a contents. | * @param length size in bytes of @a contents. | |||
* | * | |||
* @return newly allocated memory or NULL on error. This memory should be | * @return Newly allocated memory or @c NULL on error. This memory should b e | |||
* released with eina_simple_xml_node_doctype_free() or indirectly | * released with eina_simple_xml_node_doctype_free() or indirectly | |||
* with eina_simple_xml_node_tag_free() of the parent. | * with eina_simple_xml_node_tag_free() of the parent. | |||
*/ | */ | |||
EAPI Eina_Simple_XML_Node_Doctype * eina_simple_xml_node_doctype_new(Eina_S imple_XML_Node_Tag *parent, const char *contents, size_t length); | EAPI Eina_Simple_XML_Node_Doctype * eina_simple_xml_node_doctype_new(Eina_S imple_XML_Node_Tag *parent, const char *contents, size_t length); | |||
/** | /** | |||
* Remove doctype from parent and delete it. | * Remove doctype from parent and delete it. | |||
* | * | |||
* @param node doctype to release memory. | * @param node doctype to release memory. | |||
*/ | */ | |||
EAPI void eina_simple_xml_node_doctype_free(Eina_Simple_XML_Node_Data *node ); | EAPI void eina_simple_xml_node_doctype_free(Eina_Simple_XML_Node_Data *node ); | |||
/** | /** | |||
* Create new comment. If parent is provided, it is automatically appended. | * Create new comment. If parent is provided, it is automatically appended. | |||
* | * | |||
* @param parent if provided, will be set in the resulting structure | * @param parent if provided, will be set in the resulting structure | |||
* as well as the comment will be appended to children list. | * as well as the comment will be appended to children list. | |||
* @param contents string to be used. Must not be NULL. | * @param contents String to be used. Must not be @c NULL. | |||
* @param length size in bytes of @a contents. | * @param length size in bytes of @a contents. | |||
* | * | |||
* @return newly allocated memory or NULL on error. This memory should be | * @return Newly allocated memory or @c NULL on error. This memory should b e | |||
* released with eina_simple_xml_node_comment_free() or indirectly | * released with eina_simple_xml_node_comment_free() or indirectly | |||
* with eina_simple_xml_node_tag_free() of the parent. | * with eina_simple_xml_node_tag_free() of the parent. | |||
*/ | */ | |||
EAPI Eina_Simple_XML_Node_Comment * eina_simple_xml_node_comment_new(Eina_S imple_XML_Node_Tag *parent, const char *contents, size_t length); | EAPI Eina_Simple_XML_Node_Comment * eina_simple_xml_node_comment_new(Eina_S imple_XML_Node_Tag *parent, const char *contents, size_t length); | |||
/** | /** | |||
* Remove comment from parent and delete it. | * Remove comment from parent and delete it. | |||
* | * | |||
* @param node comment to release memory. | * @param node comment to release memory. | |||
*/ | */ | |||
EAPI void eina_simple_xml_node_comment_free(Eina_Simple_XML_Node_Data *node ); | EAPI void eina_simple_xml_node_comment_free(Eina_Simple_XML_Node_Data *node ); | |||
/** | /** | |||
* Load a XML node tree based on the given string. | * Load a XML node tree based on the given string. | |||
* | * | |||
* @param buf the input string. May not contain \0 terminator. | * @param buf the input string. May not contain \0 terminator. | |||
* @param buflen the input string size. | * @param buflen the input string size. | |||
* @param strip whenever this parser should strip leading and trailing | * @param strip whenever this parser should strip leading and trailing | |||
* whitespace. | * whitespace. | |||
* | * | |||
* @return document root with children tags, or NULL on errors. | * @return Document root with children tags, or @c NULL on errors. | |||
* Document with errors may return partial tree instead of NULL, | * Document with errors may return partial tree instead of @c NULL, | |||
* we'll do our best to avoid returning nothing. | * we'll do our best to avoid returning nothing. | |||
*/ | */ | |||
EAPI Eina_Simple_XML_Node_Root * eina_simple_xml_node_load(const char *buf, unsigned buflen, Eina_Bool strip); | EAPI Eina_Simple_XML_Node_Root * eina_simple_xml_node_load(const char *buf, unsigned buflen, Eina_Bool strip); | |||
/** | /** | |||
* Free node tree build with eina_simple_xml_node_load() | * Free node tree build with eina_simple_xml_node_load() | |||
* | * | |||
* @param root memory returned by eina_simple_xml_node_load() | * @param root memory returned by eina_simple_xml_node_load() | |||
*/ | */ | |||
EAPI void eina_simple_xml_node_root_free(Eina_Simple_XML_Node_Root *root); | EAPI void eina_simple_xml_node_root_free(Eina_Simple_XML_Node_Root *root); | |||
/** | /** | |||
* Converts the node tree under the given element to a XML string. | * Converts the node tree under the given element to a XML string. | |||
* | * | |||
* @param node the base node to convert. | * @param node the base node to convert. | |||
* @param indent indentation string, or NULL to disable it. | * @param indent Indentation string, or @c NULL to disable it. | |||
* | * | |||
* @return NULL on errors or a newly allocated string on success. | * @return @c NULL on errors or a newly allocated string on success. | |||
*/ | */ | |||
EAPI char * eina_simple_xml_node_dump(Eina_Simple_XML_Node *node, const cha r *indent); | EAPI char * eina_simple_xml_node_dump(Eina_Simple_XML_Node *node, const cha r *indent); | |||
/** | /** | |||
* @} | * @} | |||
*/ | */ | |||
/** | /** | |||
* @} | * @} | |||
*/ | */ | |||
End of changes. 21 change blocks. | ||||
24 lines changed or deleted | 24 lines changed or added | |||
eina_str.h | eina_str.h | |||
---|---|---|---|---|
skipping to change at line 94 | skipping to change at line 94 | |||
/** | /** | |||
* @brief Copy a c-string to another. | * @brief Copy a c-string to another. | |||
* | * | |||
* @param dst The destination string. | * @param dst The destination string. | |||
* @param src The source string. | * @param src The source string. | |||
* @param siz The size of the destination string. | * @param siz The size of the destination string. | |||
* @return The length of the source string. | * @return The length of the source string. | |||
* | * | |||
* This function copies up to @p siz - 1 characters from the | * This function copies up to @p siz - 1 characters from the | |||
* NUL-terminated string @p src to @p dst, NUL-terminating the result | * NULL-terminated string @p src to @p dst, NULL-terminating the result | |||
* (unless @p siz is equal to 0). The returned value is the length of | * (unless @p siz is equal to 0). The returned value is the length of | |||
* @p src. If the returned value is greater than @p siz, truncation | * @p src. If the returned value is greater than @p siz, truncation | |||
* occurred. | * occurred. | |||
* | * | |||
* @note The main difference between eina_strlcpy and strncpy is that this | * @note The main difference between eina_strlcpy and strncpy is that this | |||
* ensures @p dst is NULL terminated even if no NULL byte is found in the f irst | * ensures @p dst is NULL-terminated even if no @c NULL byte is found in th e first | |||
* @p siz bytes of src. | * @p siz bytes of src. | |||
*/ | */ | |||
EAPI size_t eina_strlcpy(char *dst, const char *src, size_t siz) E INA_ARG_NONNULL(1, 2); | EAPI size_t eina_strlcpy(char *dst, const char *src, size_t siz) E INA_ARG_NONNULL(1, 2); | |||
/** | /** | |||
* @brief Append a c-string. | * @brief Append a c-string. | |||
* | * | |||
* @param dst The destination string. | * @param dst The destination string. | |||
* @param src The source string. | * @param src The source string. | |||
* @param siz The size of the destination string. | * @param siz The size of the destination string. | |||
* @return The length of the source string plus MIN(siz, strlen(initial dst )) | * @return The length of the source string plus MIN(siz, strlen(initial dst )) | |||
* | * | |||
* This function appends @p src to @p dst of size @p siz (unlike | * This function appends @p src to @p dst of size @p siz (unlike | |||
* strncat, @p siz is the full size of @p dst, not space left). At | * strncat, @p siz is the full size of @p dst, not space left). At | |||
* most @p siz - 1 characters will be copied. Always NUL terminates | * most @p siz - 1 characters will be copied. Always NULL-terminates | |||
* (unless @p siz <= strlen(dst)). This function returns strlen(src) + | * (unless @p siz <= strlen(dst)). This function returns strlen(src) + | |||
* MIN(siz, strlen(initial dst)). If the returned value is greater or | * MIN(siz, strlen(initial dst)). If the returned value is greater or | |||
* equal than @p siz, truncation occurred. | * equal than @p siz, truncation occurred. | |||
*/ | */ | |||
EAPI size_t eina_strlcat(char *dst, const char *src, size_t siz) E INA_ARG_NONNULL(1, 2); | EAPI size_t eina_strlcat(char *dst, const char *src, size_t siz) E INA_ARG_NONNULL(1, 2); | |||
/** | /** | |||
* @brief Check if the given string has the given prefix. | * @brief Check if the given string has the given prefix. | |||
* | * | |||
* @param str The string to work with. | * @param str The string to work with. | |||
skipping to change at line 166 | skipping to change at line 166 | |||
* insensitive. | * insensitive. | |||
*/ | */ | |||
EAPI Eina_Bool eina_str_has_extension(const char *str, const char *ex t) EINA_PURE EINA_ARG_NONNULL(1, 2) EINA_WARN_UNUSED_RESULT; | EAPI Eina_Bool eina_str_has_extension(const char *str, const char *ex t) EINA_PURE EINA_ARG_NONNULL(1, 2) EINA_WARN_UNUSED_RESULT; | |||
/** | /** | |||
* @brief Split a string using a delimiter. | * @brief Split a string using a delimiter. | |||
* | * | |||
* @param string The string to split. | * @param string The string to split. | |||
* @param delimiter The string which specifies the places at which to split the string. | * @param delimiter The string which specifies the places at which to split the string. | |||
* @param max_tokens The maximum number of strings to split string into. | * @param max_tokens The maximum number of strings to split string into. | |||
* @return A newly-allocated NULL-terminated array of strings or NULL if it | * @return A newly-allocated NULL-terminated array of strings or @c NULL if it | |||
* fails to allocate the array. | * fails to allocate the array. | |||
* | * | |||
* This functin splits @p string into a maximum of @p max_tokens pieces, | * This functin splits @p string into a maximum of @p max_tokens pieces, | |||
* using the given delimiter @p delimiter. @p delimiter is not included in any | * using the given delimiter @p delimiter. @p delimiter is not included in any | |||
* of the resulting strings, unless @p max_tokens is reached. If | * of the resulting strings, unless @p max_tokens is reached. If | |||
* @p max_tokens is less than @c 1, the string is splitted completely. If | * @p max_tokens is less than @c 1, the string is splitted completely. If | |||
* @p max_tokens is reached, the last string in the returned string | * @p max_tokens is reached, the last string in the returned string | |||
* array contains the remainder of string. The returned value is a | * array contains the remainder of string. The returned value is a | |||
* newly allocated NULL-terminated array of strings or NULL if it fails to | * newly allocated NULL-terminated array of strings or @c NULL if it fails to | |||
* allocate the array. To free it, free the first element of the array and the | * allocate the array. To free it, free the first element of the array and the | |||
* array itself. | * array itself. | |||
* | * | |||
* @note If you need the number of elements in the returned array see | * @note If you need the number of elements in the returned array see | |||
* eina_str_split_full(). | * eina_str_split_full(). | |||
*/ | */ | |||
EAPI char **eina_str_split(const char *string, const char *delimit er, int max_tokens) EINA_ARG_NONNULL(1, 2) EINA_MALLOC EINA_WARN_UNUSED_RES ULT; | EAPI char **eina_str_split(const char *string, const char *delimit er, int max_tokens) EINA_ARG_NONNULL(1, 2) EINA_MALLOC EINA_WARN_UNUSED_RES ULT; | |||
/** | /** | |||
* @brief Split a string using a delimiter and returns number of elements. | * @brief Split a string using a delimiter and returns number of elements. | |||
* | * | |||
* @param string The string to split. | * @param string The string to split. | |||
* @param delimiter The string which specifies the places at which to split the string. | * @param delimiter The string which specifies the places at which to split the string. | |||
* @param max_tokens The maximum number of strings to split string into. | * @param max_tokens The maximum number of strings to split string into. | |||
* @param elements Where to return the number of elements in returned | * @param elements Where to return the number of elements in returned | |||
* array (not counting the terminating @c NULL). May be @c NULL. | * array (not counting the terminating @c NULL). May be @c NULL. | |||
* @return A newly-allocated NULL-terminated array of strings or NULL if it | * @return A newly-allocated NULL-terminated array of strings or @c NULL if it | |||
* fails to allocate the array. | * fails to allocate the array. | |||
* | * | |||
* This function splits @p string into a maximum of @p max_tokens pieces, | * This function splits @p string into a maximum of @p max_tokens pieces, | |||
* using the given delimiter @p delimiter. @p delimiter is not included in any | * using the given delimiter @p delimiter. @p delimiter is not included in any | |||
* of the resulting strings, unless @p max_tokens is reached. If | * of the resulting strings, unless @p max_tokens is reached. If | |||
* @p max_tokens is less than @c 1, the string is splitted completely. If | * @p max_tokens is less than @c 1, the string is splitted completely. If | |||
* @p max_tokens is reached, the last string in the returned string | * @p max_tokens is reached, the last string in the returned string | |||
* array contains the remainder of string. The returned value is a | * array contains the remainder of string. The returned value is a | |||
* newly allocated NULL-terminated array of strings or NULL if it fails to | * newly allocated NULL-terminated array of strings or @c NULL if it fails to | |||
* allocate the array. To free it, free the first element of the array and the | * allocate the array. To free it, free the first element of the array and the | |||
* array itself. | * array itself. | |||
* | * | |||
* @see eina_str_split() | * @see eina_str_split() | |||
*/ | */ | |||
EAPI char **eina_str_split_full(const char *string, const char *de limiter, int max_tokens, unsigned int *elements) EINA_ARG_NONNULL(1, 2, 4) EINA_MALLOC EINA_WARN_UNUSED_RESULT; | EAPI char **eina_str_split_full(const char *string, const char *de limiter, int max_tokens, unsigned int *elements) EINA_ARG_NONNULL(1, 2, 4) EINA_MALLOC EINA_WARN_UNUSED_RESULT; | |||
/** | /** | |||
* @brief Join two strings of known length. | * @brief Join two strings of known length. | |||
* | * | |||
End of changes. 7 change blocks. | ||||
7 lines changed or deleted | 7 lines changed or added | |||
eina_strbuf.h | eina_strbuf.h | |||
---|---|---|---|---|
skipping to change at line 148 | skipping to change at line 148 | |||
/** | /** | |||
* @brief Append a string to a buffer, reallocating as necessary. | * @brief Append a string to a buffer, reallocating as necessary. | |||
* | * | |||
* @param buf The string buffer to append to. | * @param buf The string buffer to append to. | |||
* @param str The string to append. | * @param str The string to append. | |||
* @return #EINA_TRUE on success, #EINA_FALSE on failure. | * @return #EINA_TRUE on success, #EINA_FALSE on failure. | |||
* | * | |||
* This function appends @p str to @p buf. It computes the length of | * This function appends @p str to @p buf. It computes the length of | |||
* @p str, so is slightly slower than eina_strbuf_append_length(). If | * @p str, so is slightly slower than eina_strbuf_append_length(). If | |||
* the length is known beforehand, consider using that variant. If | * the length is known beforehand, consider using that variant. If | |||
* @p buf can't append it, #EINA_FALSE is returned, otherwise | * @p buf can't append it, #EINA_FALSE is returned, otherwise #EINA_TRUE is | |||
* #EINA_TRUE is returned. | * returned. | |||
* | * | |||
* @see eina_strbuf_append() | * @see eina_strbuf_append() | |||
* @see eina_strbuf_append_length() | * @see eina_strbuf_append_length() | |||
*/ | */ | |||
EAPI Eina_Bool eina_strbuf_append(Eina_Strbuf *buf, const char *str) EINA_A RG_NONNULL(1, 2); | EAPI Eina_Bool eina_strbuf_append(Eina_Strbuf *buf, const char *str) EINA_A RG_NONNULL(1, 2); | |||
/** | /** | |||
* @brief Append an escaped string to a buffer, reallocating as necessary. | * @brief Append an escaped string to a buffer, reallocating as necessary. | |||
* | * | |||
* @param buf The string buffer to append to. | * @param buf The string buffer to append to. | |||
skipping to change at line 221 | skipping to change at line 221 | |||
EAPI Eina_Bool eina_strbuf_append_length(Eina_Strbuf *buf, const char *str, size_t length) EINA_ARG_NONNULL(1, 2); | EAPI Eina_Bool eina_strbuf_append_length(Eina_Strbuf *buf, const char *str, size_t length) EINA_ARG_NONNULL(1, 2); | |||
/** | /** | |||
* @brief Append a character to a string buffer, reallocating as | * @brief Append a character to a string buffer, reallocating as | |||
* necessary. | * necessary. | |||
* | * | |||
* @param buf The string buffer to append to. | * @param buf The string buffer to append to. | |||
* @param c The char to append. | * @param c The char to append. | |||
* @return #EINA_TRUE on success, #EINA_FALSE on failure. | * @return #EINA_TRUE on success, #EINA_FALSE on failure. | |||
* | * | |||
* This function inserts @p c to @p buf. If it can not insert it, | * This function inserts @p c to @p buf. If it can not insert it, #EINA_FAL | |||
* #EINA_FALSE is returned, otherwise #EINA_TRUE is returned. | SE | |||
* is returned, otherwise #EINA_TRUE is returned. | ||||
*/ | */ | |||
EAPI Eina_Bool eina_strbuf_append_char(Eina_Strbuf *buf, char c) EINA_ARG_N ONNULL(1); | EAPI Eina_Bool eina_strbuf_append_char(Eina_Strbuf *buf, char c) EINA_ARG_N ONNULL(1); | |||
/** | /** | |||
* @brief Append a string to a buffer, reallocating as necessary. | * @brief Append a string to a buffer, reallocating as necessary. | |||
* | * | |||
* @param buf The string buffer to append to. | * @param buf The string buffer to append to. | |||
* @param fmt The string to append. | * @param fmt The string to append. | |||
* @return #EINA_TRUE on success, #EINA_FALSE on failure. | * @return #EINA_TRUE on success, #EINA_FALSE on failure. | |||
* | * | |||
skipping to change at line 351 | skipping to change at line 351 | |||
/** | /** | |||
* @brief Insert a string to a buffer, reallocating as necessary. | * @brief Insert a string to a buffer, reallocating as necessary. | |||
* | * | |||
* @param buf The string buffer to insert. | * @param buf The string buffer to insert. | |||
* @param fmt The string to insert. | * @param fmt The string to insert. | |||
* @param pos The position to insert the string. | * @param pos The position to insert the string. | |||
* @return #EINA_TRUE on success, #EINA_FALSE on failure. | * @return #EINA_TRUE on success, #EINA_FALSE on failure. | |||
* | * | |||
* This function insert a string as described by the format @p fmt to @p bu f at | * This function insert a string as described by the format @p fmt to @p bu f at | |||
* the position @p pos. @p fmt must be of a valid format for printf family of | * the position @p pos. @p fmt must be of a valid format for printf family of | |||
* functions. If it can't insert it, #EINA_FALSE is returned, otherwise | * functions. If it can't insert it, #EINA_FALSE is returned, | |||
* #EINA_TRUE is returned. | * otherwise #EINA_TRUE is returned. | |||
*/ | */ | |||
EAPI Eina_Bool eina_strbuf_insert_printf(Eina_Strbuf *buf, const char *fmt, size_t pos, ...) EINA_ARG_NONNULL(1, 2) EINA_PRINTF(2, 4); | EAPI Eina_Bool eina_strbuf_insert_printf(Eina_Strbuf *buf, const char *fmt, size_t pos, ...) EINA_ARG_NONNULL(1, 2) EINA_PRINTF(2, 4); | |||
/** | /** | |||
* @brief Insert a string to a buffer, reallocating as necessary. | * @brief Insert a string to a buffer, reallocating as necessary. | |||
* | * | |||
* @param buf The string buffer to insert. | * @param buf The string buffer to insert. | |||
* @param fmt The string to insert. | * @param fmt The string to insert. | |||
* @param pos The position to insert the string. | * @param pos The position to insert the string. | |||
* @param args The variable arguments. | * @param args The variable arguments. | |||
skipping to change at line 392 | skipping to change at line 392 | |||
/** | /** | |||
* @def eina_strbuf_prepend_escaped(buf, str) | * @def eina_strbuf_prepend_escaped(buf, str) | |||
* @brief Prepend the given escaped string to the given buffer | * @brief Prepend the given escaped string to the given buffer | |||
* | * | |||
* @param buf The string buffer to prepend to. | * @param buf The string buffer to prepend to. | |||
* @param str The string to prepend. | * @param str The string to prepend. | |||
* @return #EINA_TRUE on success, #EINA_FALSE on failure. | * @return #EINA_TRUE on success, #EINA_FALSE on failure. | |||
* | * | |||
* This macro is calling eina_strbuf_insert_escaped() at position 0. If | * This macro is calling eina_strbuf_insert_escaped() at position 0. If | |||
* @p buf can't prepend it, #EINA_FALSE is returned, otherwise | * @p buf can't prepend it, #EINA_FALSE is returned, otherwise #EINA_TRUE i | |||
* #EINA_TRUE is returned. | s | |||
* returned. | ||||
*/ | */ | |||
#define eina_strbuf_prepend_escaped(buf, str) eina_strbuf_insert_esc aped(buf, str, 0) | #define eina_strbuf_prepend_escaped(buf, str) eina_strbuf_insert_esc aped(buf, str, 0) | |||
/** | /** | |||
* @def eina_strbuf_prepend_n(buf, str) | * @def eina_strbuf_prepend_n(buf, str) | |||
* @brief Prepend the given escaped string to the given buffer | * @brief Prepend the given escaped string to the given buffer | |||
* | * | |||
* @param buf The string buffer to prepend to. | * @param buf The string buffer to prepend to. | |||
* @param str The string to prepend. | * @param str The string to prepend. | |||
* @param maxlen The maximum number of chars to prepend. | * @param maxlen The maximum number of chars to prepend. | |||
* @return #EINA_TRUE on success, #EINA_FALSE on failure. | * @return #EINA_TRUE on success, #EINA_FALSE on failure. | |||
* | * | |||
* This macro is calling eina_strbuf_insert_n() at position 0. If | * This macro is calling eina_strbuf_insert_n() at position 0. If | |||
* @p buf can't prepend it, #EINA_FALSE is returned, otherwise | * @p buf can't prepend it, #EINA_FALSE is returned, otherwise #EINA_TRUE i | |||
* #EINA_TRUE is returned. | s | |||
* returned. | ||||
*/ | */ | |||
#define eina_strbuf_prepend_n(buf, str, maxlen) eina_strbuf_insert_n(b uf, str, maxlen, 0) | #define eina_strbuf_prepend_n(buf, str, maxlen) eina_strbuf_insert_n(b uf, str, maxlen, 0) | |||
/** | /** | |||
* @def eina_strbuf_prepend_length(buf, str) | * @def eina_strbuf_prepend_length(buf, str) | |||
* @brief Prepend the given escaped string to the given buffer | * @brief Prepend the given escaped string to the given buffer | |||
* | * | |||
* @param buf The string buffer to prepend to. | * @param buf The string buffer to prepend to. | |||
* @param str The string to prepend. | * @param str The string to prepend. | |||
* @param length The exact length to use. | * @param length The exact length to use. | |||
* @return #EINA_TRUE on success, #EINA_FALSE on failure. | * @return #EINA_TRUE on success, #EINA_FALSE on failure. | |||
* | * | |||
* This macro is calling eina_strbuf_insert_length() at position 0. If | * This macro is calling eina_strbuf_insert_length() at position 0. If | |||
* @p buf can't prepend it, #EINA_FALSE is returned, otherwise | * @p buf can't prepend it, #EINA_FALSE is returned, otherwise #EINA_TRUE i | |||
* #EINA_TRUE is returned. | s | |||
* returned. | ||||
*/ | */ | |||
#define eina_strbuf_prepend_length(buf, str, length) eina_strbuf_insert_len gth(buf, str, length, 0) | #define eina_strbuf_prepend_length(buf, str, length) eina_strbuf_insert_len gth(buf, str, length, 0) | |||
/** | /** | |||
* @def eina_strbuf_prepend_char(buf, str) | * @def eina_strbuf_prepend_char(buf, str) | |||
* @brief Prepend the given character to the given buffer | * @brief Prepend the given character to the given buffer | |||
* | * | |||
* @param buf The string buffer to prepend to. | * @param buf The string buffer to prepend to. | |||
* @param c The character to prepend. | * @param c The character to prepend. | |||
* @return #EINA_TRUE on success, #EINA_FALSE on failure. | * @return #EINA_TRUE on success, #EINA_FALSE on failure. | |||
* | * | |||
* This macro is calling eina_strbuf_insert_char() at position 0. If | * This macro is calling eina_strbuf_insert_char() at position 0. If | |||
* @p buf can't prepend it, #EINA_FALSE is returned, otherwise | * @p buf can't prepend it, #EINA_FALSE is returned, otherwise #EINA_TRUE | |||
* #EINA_TRUE is returned. | * is returned. | |||
*/ | */ | |||
#define eina_strbuf_prepend_char(buf, c) eina_strbuf_insert_cha r(buf, c, 0) | #define eina_strbuf_prepend_char(buf, c) eina_strbuf_insert_cha r(buf, c, 0) | |||
/** | /** | |||
* @def eina_strbuf_prepend_printf(buf, fmt, ...) | * @def eina_strbuf_prepend_printf(buf, fmt, ...) | |||
* @brief Prepend the given string to the given buffer | * @brief Prepend the given string to the given buffer | |||
* | * | |||
* @param buf The string buffer to prepend to. | * @param buf The string buffer to prepend to. | |||
* @param fmt The string to prepend. | * @param fmt The string to prepend. | |||
* @return #EINA_TRUE on success, #EINA_FALSE on failure. | * @return #EINA_TRUE on success, #EINA_FALSE on failure. | |||
* | * | |||
* This macro is calling eina_strbuf_insert_printf() at position 0.If @p bu f | * This macro is calling eina_strbuf_insert_printf() at position 0. If @p b uf | |||
* can't prepend it, #EINA_FALSE is returned, otherwise #EINA_TRUE is | * can't prepend it, #EINA_FALSE is returned, otherwise #EINA_TRUE is | |||
* returned. | * returned. | |||
*/ | */ | |||
#define eina_strbuf_prepend_printf(buf, fmt, ...) eina_strbuf_insert_pri ntf(buf, fmt, 0, ## __VA_ARGS__) | #define eina_strbuf_prepend_printf(buf, fmt, ...) eina_strbuf_insert_pri ntf(buf, fmt, 0, ## __VA_ARGS__) | |||
/** | /** | |||
* @def eina_strbuf_prepend_vprintf(buf, fmt, args) | * @def eina_strbuf_prepend_vprintf(buf, fmt, args) | |||
* @brief Prepend the given string to the given buffer | * @brief Prepend the given string to the given buffer | |||
* | * | |||
* @param buf The string buffer to prepend to. | * @param buf The string buffer to prepend to. | |||
skipping to change at line 577 | skipping to change at line 577 | |||
/** | /** | |||
* @brief Replace all strings with an other string. | * @brief Replace all strings with an other string. | |||
* @param buf the string buffer to work with. | * @param buf the string buffer to work with. | |||
* @param str The string to replace. | * @param str The string to replace. | |||
* @param with The replaceing string. | * @param with The replaceing string. | |||
* @return How often the string was replaced. | * @return How often the string was replaced. | |||
* | * | |||
* This function replaces all the occurrences of @p str in @p buf with | * This function replaces all the occurrences of @p str in @p buf with | |||
* the string @p with. This function returns the number of times @p str | * the string @p with. This function returns the number of times @p str | |||
* has been replaced. On failure, it returns 0. | * has been replaced. On failure, it returns @c 0. | |||
*/ | */ | |||
EAPI int eina_strbuf_replace_all(Eina_Strbuf *buf, const char *str, const c har *with) EINA_ARG_NONNULL(1, 2, 3); | EAPI int eina_strbuf_replace_all(Eina_Strbuf *buf, const char *str, const c har *with) EINA_ARG_NONNULL(1, 2, 3); | |||
/** | /** | |||
* @brief Trim the string buffer | * @brief Trim the string buffer | |||
* @param buf the string buffer to work with. | * @param buf the string buffer to work with. | |||
* | * | |||
* This function skips whitespaces in the beginning and the end of the buff er. | * This function skips whitespaces in the beginning and the end of the buff er. | |||
*/ | */ | |||
End of changes. 9 change blocks. | ||||
16 lines changed or deleted | 20 lines changed or added | |||
eina_stringshare.h | eina_stringshare.h | |||
---|---|---|---|---|
skipping to change at line 199 | skipping to change at line 199 | |||
* exact given size. This can be used to share_common part of a larger | * exact given size. This can be used to share_common part of a larger | |||
* buffer or substring. | * buffer or substring. | |||
* | * | |||
* @see eina_share_common_add() | * @see eina_share_common_add() | |||
*/ | */ | |||
EAPI Eina_Stringshare *eina_stringshare_add_length(const char *str, unsign ed int slen) EINA_WARN_UNUSED_RESULT; | EAPI Eina_Stringshare *eina_stringshare_add_length(const char *str, unsign ed int slen) EINA_WARN_UNUSED_RESULT; | |||
/** | /** | |||
* @brief Retrieve an instance of a string for use in a program. | * @brief Retrieve an instance of a string for use in a program. | |||
* | * | |||
* @param str The NULL terminated string to retrieve an instance of. | * @param str The NULL-terminated string to retrieve an instance of. | |||
* @return A pointer to an instance of the string on success. | * @return A pointer to an instance of the string on success. | |||
* @c NULL on failure. | * @c NULL on failure. | |||
* | * | |||
* This function retrieves an instance of @p str. If @p str is | * This function retrieves an instance of @p str. If @p str is | |||
* @c NULL, then @c NULL is returned. If @p str is already stored, it | * @c NULL, then @c NULL is returned. If @p str is already stored, it | |||
* is just returned and its reference counter is increased. Otherwise | * is just returned and its reference counter is increased. Otherwise | |||
* a duplicated string of @p str is returned. | * a duplicated string of @p str is returned. | |||
* | * | |||
* The string @p str must be NULL terminated ('@\0') and its full | * The string @p str must be NULL terminated ('@\0') and its full | |||
* length will be used. To use part of the string or non-null | * length will be used. To use part of the string or non-null | |||
* terminated, use eina_stringshare_add_length() instead. | * terminated, use eina_stringshare_add_length() instead. | |||
* | * | |||
* @see eina_stringshare_add_length() | * @see eina_stringshare_add_length() | |||
*/ | */ | |||
EAPI Eina_Stringshare *eina_stringshare_add(const char *str) EINA_WARN_UNU SED_RESULT; | EAPI Eina_Stringshare *eina_stringshare_add(const char *str) EINA_WARN_UNU SED_RESULT; | |||
/** | /** | |||
* @brief Retrieve an instance of a string for use in a program | * @brief Retrieve an instance of a string for use in a program | |||
* from a format string. | * from a format string. | |||
* | * | |||
* @param fmt The NULL terminated format string to retrieve an instance o f. | * @param fmt The NULL-terminated format string to retrieve an instance o f. | |||
* @return A pointer to an instance of the string on success. | * @return A pointer to an instance of the string on success. | |||
* @c NULL on failure. | * @c NULL on failure. | |||
* | * | |||
* This function retrieves an instance of @p fmt. If @p fmt is | * This function retrieves an instance of @p fmt. If @p fmt is | |||
* @c NULL, then @c NULL is returned. If @p fmt is already stored, it | * @c NULL, then @c NULL is returned. If @p fmt is already stored, it | |||
* is just returned and its reference counter is increased. Otherwise | * is just returned and its reference counter is increased. Otherwise | |||
* a duplicated string is returned. | * a duplicated string is returned. | |||
* | * | |||
* The format string @p fmt must be NULL terminated ('@\0') and its full | * The format string @p fmt must be NULL-terminated ('@\0') and its full | |||
* length will be used. To use part of the format string or non-null | * length will be used. To use part of the format string or non-null | |||
* terminated, use eina_stringshare_nprintf() instead. | * terminated, use eina_stringshare_nprintf() instead. | |||
* | * | |||
* @see eina_stringshare_nprintf() | * @see eina_stringshare_nprintf() | |||
*/ | */ | |||
EAPI Eina_Stringshare *eina_stringshare_printf(const char *fmt, ...) EINA_ WARN_UNUSED_RESULT EINA_PRINTF(1, 2); | EAPI Eina_Stringshare *eina_stringshare_printf(const char *fmt, ...) EINA_ WARN_UNUSED_RESULT EINA_PRINTF(1, 2); | |||
/** | /** | |||
* @brief Retrieve an instance of a string for use in a program | * @brief Retrieve an instance of a string for use in a program | |||
* from a format string. | * from a format string. | |||
* | * | |||
* @param fmt The NULL terminated format string to retrieve an instance o f. | * @param fmt The NULL-terminated format string to retrieve an instance o f. | |||
* @param args The va_args for @p fmt | * @param args The va_args for @p fmt | |||
* @return A pointer to an instance of the string on success. | * @return A pointer to an instance of the string on success. | |||
* @c NULL on failure. | * @c NULL on failure. | |||
* | * | |||
* This function retrieves an instance of @p fmt with @p args. If @p fmt is | * This function retrieves an instance of @p fmt with @p args. If @p fmt is | |||
* @c NULL, then @c NULL is returned. If @p fmt with @p args is already sto red, it | * @c NULL, then @c NULL is returned. If @p fmt with @p args is already sto red, it | |||
* is just returned and its reference counter is increased. Otherwise | * is just returned and its reference counter is increased. Otherwise | |||
* a duplicated string is returned. | * a duplicated string is returned. | |||
* | * | |||
* The format string @p fmt must be NULL terminated ('@\0') and its full | * The format string @p fmt must be NULL-terminated ('@\0') and its full | |||
* length will be used. To use part of the format string or non-null | * length will be used. To use part of the format string or non-null | |||
* terminated, use eina_stringshare_nprintf() instead. | * terminated, use eina_stringshare_nprintf() instead. | |||
* | * | |||
* @see eina_stringshare_nprintf() | * @see eina_stringshare_nprintf() | |||
*/ | */ | |||
EAPI Eina_Stringshare *eina_stringshare_vprintf(const char *fmt, va_list a rgs) EINA_WARN_UNUSED_RESULT; | EAPI Eina_Stringshare *eina_stringshare_vprintf(const char *fmt, va_list a rgs) EINA_WARN_UNUSED_RESULT; | |||
/** | /** | |||
* @brief Retrieve an instance of a string for use in a program | * @brief Retrieve an instance of a string for use in a program | |||
* from a format string with size limitation. | * from a format string with size limitation. | |||
skipping to change at line 302 | skipping to change at line 302 | |||
*/ | */ | |||
EAPI Eina_Stringshare *eina_stringshare_ref(Eina_Stringshare *str); | EAPI Eina_Stringshare *eina_stringshare_ref(Eina_Stringshare *str); | |||
/** | /** | |||
* @brief Note that the given string has lost an instance. | * @brief Note that the given string has lost an instance. | |||
* | * | |||
* @param str string The given string. | * @param str string The given string. | |||
* | * | |||
* This function decreases the reference counter associated to @p str | * This function decreases the reference counter associated to @p str | |||
* if it exists. If that counter reaches 0, the memory associated to | * if it exists. If that counter reaches 0, the memory associated to | |||
* @p str is freed. If @p str is NULL, the function returns | * @p str is freed. If @p str is @c NULL, the function returns | |||
* immediately. | * immediately. | |||
* | * | |||
* Note that if the given pointer is not shared or NULL, bad things | * Note that if the given pointer is not shared or NULL, bad things | |||
* will happen, likely a segmentation fault. | * will happen, likely a segmentation fault. | |||
*/ | */ | |||
EAPI void eina_stringshare_del(Eina_Stringshare *str); | EAPI void eina_stringshare_del(Eina_Stringshare *str); | |||
/** | /** | |||
* @brief Note that the given string @b must be shared. | * @brief Note that the given string @b must be shared. | |||
* | * | |||
* @param str the shared string to know the length. It is safe to | * @param str the shared string to know the length. It is safe to | |||
* give NULL, in that case -1 is returned. | * give @c NULL, in that case @c -1 is returned. | |||
* @return The length of a shared string. | * @return The length of a shared string. | |||
* | * | |||
* This function is a cheap way to known the length of a shared | * This function is a cheap way to known the length of a shared | |||
* string. Note that if the given pointer is not shared, bad | * string. Note that if the given pointer is not shared, bad | |||
* things will happen, likely a segmentation fault. If in doubt, try | * things will happen, likely a segmentation fault. If in doubt, try | |||
* strlen(). | * strlen(). | |||
*/ | */ | |||
EAPI int eina_stringshare_strlen(Eina_Stringshare *str) EINA _PURE EINA_WARN_UNUSED_RESULT; | EAPI int eina_stringshare_strlen(Eina_Stringshare *str) EINA _PURE EINA_WARN_UNUSED_RESULT; | |||
/** | /** | |||
End of changes. 7 change blocks. | ||||
7 lines changed or deleted | 7 lines changed or added | |||
eina_tiler.h | eina_tiler.h | |||
---|---|---|---|---|
skipping to change at line 257 | skipping to change at line 257 | |||
* @param x X axis coordinate. | * @param x X axis coordinate. | |||
* @param y Y axis coordinate. | * @param y Y axis coordinate. | |||
* @param w width. | * @param w width. | |||
* @param h height. | * @param h height. | |||
* @param tile_w tile width. | * @param tile_w tile width. | |||
* @param tile_h tile height. | * @param tile_h tile height. | |||
* @return A pointer to the Eina_Iterator. @c NULL on failure. | * @return A pointer to the Eina_Iterator. @c NULL on failure. | |||
* | * | |||
* The region defined by @a x, @a y, @a w, @a h will be divided in to a gri d of | * The region defined by @a x, @a y, @a w, @a h will be divided in to a gri d of | |||
* tiles of width @a tile_w and height @p tile_h, the returned iterator wil l | * tiles of width @a tile_w and height @p tile_h, the returned iterator wil l | |||
* iterate over every tile in the grid having as its data a | * iterate over every tile in the grid having as its data a #Eina_Tile_Grid | |||
* #Eina_Tile_Grid_Info. | _Info. | |||
* | * | |||
* @note This is a convenience function, iterating over the returned iterat or is | * @note This is a convenience function, iterating over the returned iterat or is | |||
* equivalent to calling eina_tile_grid_slicer_setup() and calling | * equivalent to calling eina_tile_grid_slicer_setup() and calling | |||
* eina_tile_grid_slicer_next() untill it returns EINA_FALSE. | * eina_tile_grid_slicer_next() untill it returns #EINA_FALSE. | |||
*/ | */ | |||
EAPI Eina_Iterator *eina_tile_grid_slicer_iterator_new(int x, int y, in t w, int h, int tile_w, int tile_h); | EAPI Eina_Iterator *eina_tile_grid_slicer_iterator_new(int x, int y, in t w, int h, int tile_w, int tile_h); | |||
/** | /** | |||
* @brief Iterates over the tiles set by eina_tile_grid_slicer_setup(). | * @brief Iterates over the tiles set by eina_tile_grid_slicer_setup(). | |||
* | * | |||
* @param slc Pointer to an Eina_Tile_Grid_Slicer struct. | * @param slc Pointer to an Eina_Tile_Grid_Slicer struct. | |||
* @param rect Pointer to a struct Eina_Tile_Grid_Info *. | * @param rect Pointer to a struct Eina_Tile_Grid_Info *. | |||
* @return @c EINA_TRUE if the current rect is valid. | * @return #EINA_TRUE if the current rect is valid. #EINA_FALSE if there | |||
* @c EINA_FALSE if there is no more rects to iterate over (and | * is no more rects to iterate over (and thus the current one isn't valid). | |||
* thus the current one isn't valid). | ||||
* | * | |||
* This functions iterates over each Eina_Tile_Grid_Info *rect of the grid. | * This functions iterates over each Eina_Tile_Grid_Info *rect of the grid. | |||
* eina_tile_grid_slicer_setup() must be called first, and *rect is only va lid | * eina_tile_grid_slicer_setup() must be called first, and *rect is only va lid | |||
* if this function returns EINA_TRUE. Its content shouldn't be modified. | * if this function returns #EINA_TRUE. Its content shouldn't be modified. | |||
* | * | |||
* @note Consider using eina_tile_grid_slicer_iterator_new() instead. | * @note Consider using eina_tile_grid_slicer_iterator_new() instead. | |||
*/ | */ | |||
static inline Eina_Bool eina_tile_grid_slicer_next(Eina_Tile_Grid_Slicer *s lc, const Eina_Tile_Grid_Info **rect); | static inline Eina_Bool eina_tile_grid_slicer_next(Eina_Tile_Grid_Slicer *s lc, const Eina_Tile_Grid_Info **rect); | |||
/** | /** | |||
* @brief Setup an Eina_Tile_Grid_Slicer struct. | * @brief Setup an Eina_Tile_Grid_Slicer struct. | |||
* | * | |||
* @param slc Pointer to an Eina_Tile_Grid_Slicer struct. | * @param slc Pointer to an Eina_Tile_Grid_Slicer struct. | |||
* @param x X axis coordinate. | * @param x X axis coordinate. | |||
* @param y Y axis coordinate. | * @param y Y axis coordinate. | |||
End of changes. 4 change blocks. | ||||
7 lines changed or deleted | 6 lines changed or added | |||
eina_unicode.h | eina_unicode.h | |||
---|---|---|---|---|
skipping to change at line 116 | skipping to change at line 116 | |||
* @return The escaped string. | * @return The escaped string. | |||
*/ | */ | |||
EAPI Eina_Unicode *eina_unicode_escape(const Eina_Unicode *str) EINA_ARG_NO NNULL(1) EINA_MALLOC EINA_WARN_UNUSED_RESULT; | EAPI Eina_Unicode *eina_unicode_escape(const Eina_Unicode *str) EINA_ARG_NO NNULL(1) EINA_MALLOC EINA_WARN_UNUSED_RESULT; | |||
/* UTF-8 Handling */ | /* UTF-8 Handling */ | |||
/** | /** | |||
* Reads UTF8 bytes from @p buf, starting at @p iindex and returns | * Reads UTF8 bytes from @p buf, starting at @p iindex and returns | |||
* the decoded code point at @p iindex offset, and advances @p iindex | * the decoded code point at @p iindex offset, and advances @p iindex | |||
* to the next code point after this. @p iindex is always advanced, | * to the next code point after this. @p iindex is always advanced, | |||
* unless if the advancement is after the NULL. | * unless if the advancement is after the @c NULL. | |||
* On error: return a codepoint between DC80 to DCFF where the low 8 bits | * On error: return a codepoint between DC80 to DCFF where the low 8 bits | |||
* are the byte's value. | * are the byte's value. | |||
* | * | |||
* @param buf the string | * @param buf the string | |||
* @param iindex the index to look at and return by. | * @param iindex the index to look at and return by. | |||
* @return the codepoint found. | * @return the codepoint found. | |||
* @since 1.1.0 | * @since 1.1.0 | |||
*/ | */ | |||
EAPI Eina_Unicode eina_unicode_utf8_get_next(const char *buf, int *iindex) EINA_ARG_NONNULL(1, 2); | EAPI Eina_Unicode eina_unicode_utf8_get_next(const char *buf, int *iindex) EINA_ARG_NONNULL(1, 2); | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
eina_ustrbuf.h | eina_ustrbuf.h | |||
---|---|---|---|---|
skipping to change at line 118 | skipping to change at line 118 | |||
/** | /** | |||
* @brief Append a string to a buffer, reallocating as necessary. | * @brief Append a string to a buffer, reallocating as necessary. | |||
* | * | |||
* @param buf The string buffer to append to. | * @param buf The string buffer to append to. | |||
* @param str The string to append. | * @param str The string to append. | |||
* @return #EINA_TRUE on success, #EINA_FALSE on failure. | * @return #EINA_TRUE on success, #EINA_FALSE on failure. | |||
* | * | |||
* This function appends @p str to @p buf. It computes the length of | * This function appends @p str to @p buf. It computes the length of | |||
* @p str, so is slightly slower than eina_ustrbuf_append_length(). If | * @p str, so is slightly slower than eina_ustrbuf_append_length(). If | |||
* the length is known beforehand, consider using that variant. If | * the length is known beforehand, consider using that variant. If | |||
* @p buf can't append it, #EINA_FALSE is returned, otherwise | * @p buf can't append it, #EINA_FALSE is returned, otherwise #EINA_TRUE is | |||
* #EINA_TRUE is returned. | * returned. | |||
* | * | |||
* @see eina_ustrbuf_append() | * @see eina_ustrbuf_append() | |||
* @see eina_ustrbuf_append_length() | * @see eina_ustrbuf_append_length() | |||
*/ | */ | |||
EAPI Eina_Bool eina_ustrbuf_append(Eina_UStrbuf *buf, const Eina_Unicode *s tr) EINA_ARG_NONNULL(1, 2); | EAPI Eina_Bool eina_ustrbuf_append(Eina_UStrbuf *buf, const Eina_Unicode *s tr) EINA_ARG_NONNULL(1, 2); | |||
/** | /** | |||
* @brief Append an escaped string to a buffer, reallocating as necessary. | * @brief Append an escaped string to a buffer, reallocating as necessary. | |||
* | * | |||
* @param buf The string buffer to append to. | * @param buf The string buffer to append to. | |||
* @param str The string to append. | * @param str The string to append. | |||
* @return #EINA_TRUE on success, #EINA_FALSE on failure. | * @return #EINA_TRUE on success, #EINA_FALSE on failure. | |||
* | * | |||
* This function appends the escaped string @p str to @p buf. If @p | * This function appends the escaped string @p str to @p buf. If @p | |||
* str can not be appended, #EINA_FALSE is returned, otherwise, | * str can not be appended, #EINA_FALSE is returned, otherwise, #EINA_TRUE | |||
* #EINA_TRUE is returned. | is | |||
* returned. | ||||
*/ | */ | |||
EAPI Eina_Bool eina_ustrbuf_append_escaped(Eina_UStrbuf *buf, const Eina_Un icode *str) EINA_ARG_NONNULL(1, 2); | EAPI Eina_Bool eina_ustrbuf_append_escaped(Eina_UStrbuf *buf, const Eina_Un icode *str) EINA_ARG_NONNULL(1, 2); | |||
/** | /** | |||
* @brief Append a string to a buffer, reallocating as necessary, | * @brief Append a string to a buffer, reallocating as necessary, | |||
* limited by the given length. | * limited by the given length. | |||
* | * | |||
* @param buf The string buffer to append to. | * @param buf The string buffer to append to. | |||
* @param str The string to append. | * @param str The string to append. | |||
* @param maxlen The maximum number of characters to append. | * @param maxlen The maximum number of characters to append. | |||
skipping to change at line 191 | skipping to change at line 191 | |||
EAPI Eina_Bool eina_ustrbuf_append_length(Eina_UStrbuf *buf, const Eina_Uni code *str, size_t length) EINA_ARG_NONNULL(1, 2); | EAPI Eina_Bool eina_ustrbuf_append_length(Eina_UStrbuf *buf, const Eina_Uni code *str, size_t length) EINA_ARG_NONNULL(1, 2); | |||
/** | /** | |||
* @brief Append a character to a string buffer, reallocating as | * @brief Append a character to a string buffer, reallocating as | |||
* necessary. | * necessary. | |||
* | * | |||
* @param buf The string buffer to append to. | * @param buf The string buffer to append to. | |||
* @param c The char to append. | * @param c The char to append. | |||
* @return #EINA_TRUE on success, #EINA_FALSE on failure. | * @return #EINA_TRUE on success, #EINA_FALSE on failure. | |||
* | * | |||
* This function inserts @p c to @p buf. If it can not insert it, | * This function inserts @p c to @p buf. If it can not insert it, #EINA_FAL | |||
* #EINA_FALSE is returned, otherwise #EINA_TRUE is returned. | SE | |||
* is returned, otherwise #EINA_TRUE is returned. | ||||
*/ | */ | |||
EAPI Eina_Bool eina_ustrbuf_append_char(Eina_UStrbuf *buf, Eina_Unicode c) EINA_ARG_NONNULL(1); | EAPI Eina_Bool eina_ustrbuf_append_char(Eina_UStrbuf *buf, Eina_Unicode c) EINA_ARG_NONNULL(1); | |||
/** | /** | |||
* @brief Insert a string to a buffer, reallocating as necessary. | * @brief Insert a string to a buffer, reallocating as necessary. | |||
* | * | |||
* @param buf The string buffer to insert. | * @param buf The string buffer to insert. | |||
* @param str The string to insert. | * @param str The string to insert. | |||
* @param pos The position to insert the string. | * @param pos The position to insert the string. | |||
* @return #EINA_TRUE on success, #EINA_FALSE on failure. | * @return #EINA_TRUE on success, #EINA_FALSE on failure. | |||
skipping to change at line 307 | skipping to change at line 307 | |||
/** | /** | |||
* @def eina_ustrbuf_prepend_escaped(buf, str) | * @def eina_ustrbuf_prepend_escaped(buf, str) | |||
* @brief Prepend the given escaped string to the given buffer | * @brief Prepend the given escaped string to the given buffer | |||
* | * | |||
* @param buf The string buffer to prepend to. | * @param buf The string buffer to prepend to. | |||
* @param str The string to prepend. | * @param str The string to prepend. | |||
* @return #EINA_TRUE on success, #EINA_FALSE on failure. | * @return #EINA_TRUE on success, #EINA_FALSE on failure. | |||
* | * | |||
* This macro is calling eina_ustrbuf_insert_escaped() at position 0. If | * This macro is calling eina_ustrbuf_insert_escaped() at position 0. If | |||
* @p buf can't prepend it, #EINA_FALSE is returned, otherwise | * @p buf can't prepend it, #EINA_FALSE is returned, otherwise #EINA_TRUE i | |||
* #EINA_TRUE is returned. | s | |||
* returned. | ||||
*/ | */ | |||
#define eina_ustrbuf_prepend_escaped(buf, str) eina_ustrbuf_insert_e scaped(buf, str, 0) | #define eina_ustrbuf_prepend_escaped(buf, str) eina_ustrbuf_insert_e scaped(buf, str, 0) | |||
/** | /** | |||
* @def eina_ustrbuf_prepend_n(buf, str) | * @def eina_ustrbuf_prepend_n(buf, str) | |||
* @brief Prepend the given escaped string to the given buffer | * @brief Prepend the given escaped string to the given buffer | |||
* | * | |||
* @param buf The string buffer to prepend to. | * @param buf The string buffer to prepend to. | |||
* @param str The string to prepend. | * @param str The string to prepend. | |||
* @param maxlen The maximum number of Eina_Unicode *s to prepend. | * @param maxlen The maximum number of Eina_Unicode *s to prepend. | |||
* @return #EINA_TRUE on success, #EINA_FALSE on failure. | * @return #EINA_TRUE on success, #EINA_FALSE on failure. | |||
* | * | |||
* This macro is calling eina_ustrbuf_insert_n() at position 0. If | * This macro is calling eina_ustrbuf_insert_n() at position 0. If | |||
* @p buf can't prepend it, #EINA_FALSE is returned, otherwise | * @p buf can't prepend it, #EINA_FALSE is returned, otherwise #EINA_TRUE i | |||
* #EINA_TRUE is returned. | s | |||
* returned. | ||||
*/ | */ | |||
#define eina_ustrbuf_prepend_n(buf, str, maxlen) eina_ustrbuf_insert_n (buf, str, maxlen, 0) | #define eina_ustrbuf_prepend_n(buf, str, maxlen) eina_ustrbuf_insert_n (buf, str, maxlen, 0) | |||
/** | /** | |||
* @def eina_ustrbuf_prepend_length(buf, str) | * @def eina_ustrbuf_prepend_length(buf, str) | |||
* @brief Prepend the given escaped string to the given buffer | * @brief Prepend the given escaped string to the given buffer | |||
* | * | |||
* @param buf The string buffer to prepend to. | * @param buf The string buffer to prepend to. | |||
* @param str The string to prepend. | * @param str The string to prepend. | |||
* @param length The exact length to use. | * @param length The exact length to use. | |||
* @return #EINA_TRUE on success, #EINA_FALSE on failure. | * @return #EINA_TRUE on success, #EINA_FALSE on failure. | |||
* | * | |||
* This macro is calling eina_ustrbuf_insert_length() at position 0. If | * This macro is calling eina_ustrbuf_insert_length() at position 0. If | |||
* @p buf can't prepend it, #EINA_FALSE is returned, otherwise | * @p buf can't prepend it, #EINA_FALSE is returned, otherwise #EINA_TRUE i | |||
* #EINA_TRUE is returned. | s | |||
* returned. | ||||
*/ | */ | |||
#define eina_ustrbuf_prepend_length(buf, str, length) eina_ustrbuf_insert_l ength(buf, str, length, 0) | #define eina_ustrbuf_prepend_length(buf, str, length) eina_ustrbuf_insert_l ength(buf, str, length, 0) | |||
/** | /** | |||
* @def eina_ustrbuf_prepend_char(buf, c) | * @def eina_ustrbuf_prepend_char(buf, c) | |||
* @brief Prepend the given unicode character to the given buffer | * @brief Prepend the given unicode character to the given buffer | |||
* | * | |||
* @param buf The string buffer to prepend to. | * @param buf The string buffer to prepend to. | |||
* @param c The Eina_Unicode character to prepend. | * @param c The Eina_Unicode character to prepend. | |||
* @return #EINA_TRUE on success, #EINA_FALSE on failure. | * @return #EINA_TRUE on success, #EINA_FALSE on failure. | |||
* | * | |||
* This macro is calling eina_ustrbuf_insert_Eina_Unicode *() at position 0 . If | * This macro is calling eina_ustrbuf_insert_Eina_Unicode *() at position 0 . If | |||
* @p buf can't prepend it, #EINA_FALSE is returned, otherwise | * @p buf can't prepend it, #EINA_FALSE is returned, otherwise #EINA_TRUE i | |||
* #EINA_TRUE is returned. | s | |||
* returned. | ||||
*/ | */ | |||
#define eina_ustrbuf_prepend_char(buf, c) eina_ustrbuf_insert_char(buf, c, 0) | #define eina_ustrbuf_prepend_char(buf, c) eina_ustrbuf_insert_char(buf, c, 0) | |||
/** | /** | |||
* @def eina_ustrbuf_prepend_printf(buf, fmt, ...) | * @def eina_ustrbuf_prepend_printf(buf, fmt, ...) | |||
* @brief Prepend the given string to the given buffer | * @brief Prepend the given string to the given buffer | |||
* | * | |||
* @param buf The string buffer to prepend to. | * @param buf The string buffer to prepend to. | |||
* @param fmt The string to prepend. | * @param fmt The string to prepend. | |||
* @return #EINA_TRUE on success, #EINA_FALSE on failure. | * @return #EINA_TRUE on success, #EINA_FALSE on failure. | |||
End of changes. 7 change blocks. | ||||
14 lines changed or deleted | 20 lines changed or added | |||
eina_ustringshare.h | eina_ustringshare.h | |||
---|---|---|---|---|
skipping to change at line 116 | skipping to change at line 116 | |||
* exact given size. This can be used to share_common part of a larger | * exact given size. This can be used to share_common part of a larger | |||
* buffer or substring. | * buffer or substring. | |||
* | * | |||
* @see eina_ustringshare_add() | * @see eina_ustringshare_add() | |||
*/ | */ | |||
EAPI const Eina_Unicode *eina_ustringshare_add_length(const Eina_Unicode *s tr, unsigned int slen) EINA_WARN_UNUSED_RESULT; | EAPI const Eina_Unicode *eina_ustringshare_add_length(const Eina_Unicode *s tr, unsigned int slen) EINA_WARN_UNUSED_RESULT; | |||
/** | /** | |||
* @brief Retrieve an instance of a string for use in a program. | * @brief Retrieve an instance of a string for use in a program. | |||
* | * | |||
* @param str The NULL terminated string to retrieve an instance of. | * @param str The NULL-terminated string to retrieve an instance of. | |||
* @return A pointer to an instance of the string on success. | * @return A pointer to an instance of the string on success. | |||
* @c NULL on failure. | * @c NULL on failure. | |||
* | * | |||
* This function retrieves an instance of @p str. If @p str is | * This function retrieves an instance of @p str. If @p str is | |||
* @c NULL, then @c NULL is returned. If @p str is already stored, it | * @c NULL, then @c NULL is returned. If @p str is already stored, it | |||
* is just returned and its reference counter is increased. Otherwise | * is just returned and its reference counter is increased. Otherwise | |||
* it is added to the strings to be searched and a duplicated string | * it is added to the strings to be searched and a duplicated string | |||
* of @p str is returned. | * of @p str is returned. | |||
* | * | |||
* The string @p str must be NULL terminated ('@\0') and its full | * The string @p str must be NULL-terminated ('@\0') and its full | |||
* length will be used. To use part of the string or non-null | * length will be used. To use part of the string or non-null | |||
* terminated, use eina_stringshare_add_length() instead. | * terminated, use eina_stringshare_add_length() instead. | |||
* | * | |||
* @see eina_ustringshare_add_length() | * @see eina_ustringshare_add_length() | |||
*/ | */ | |||
EAPI const Eina_Unicode *eina_ustringshare_add(const Eina_Unicode *str) EIN A_WARN_UNUSED_RESULT; | EAPI const Eina_Unicode *eina_ustringshare_add(const Eina_Unicode *str) EIN A_WARN_UNUSED_RESULT; | |||
/** | /** | |||
* Increment references of the given shared string. | * Increment references of the given shared string. | |||
* | * | |||
skipping to change at line 157 | skipping to change at line 157 | |||
*/ | */ | |||
EAPI const Eina_Unicode *eina_ustringshare_ref(const Eina_Unicode *str); | EAPI const Eina_Unicode *eina_ustringshare_ref(const Eina_Unicode *str); | |||
/** | /** | |||
* @brief Note that the given string has lost an instance. | * @brief Note that the given string has lost an instance. | |||
* | * | |||
* @param str string The given string. | * @param str string The given string. | |||
* | * | |||
* This function decreases the reference counter associated to @p str | * This function decreases the reference counter associated to @p str | |||
* if it exists. If that counter reaches 0, the memory associated to | * if it exists. If that counter reaches 0, the memory associated to | |||
* @p str is freed. If @p str is NULL, the function returns | * @p str is freed. If @p str is @c NULL, the function returns | |||
* immediately. | * immediately. | |||
* | * | |||
* Note that if the given pointer is not shared or NULL, bad things | * Note that if the given pointer is not shared or @c NULL, bad things | |||
* will happen, likely a segmentation fault. | * will happen, likely a segmentation fault. | |||
*/ | */ | |||
EAPI void eina_ustringshare_del(const Eina_Unicode *str); | EAPI void eina_ustringshare_del(const Eina_Unicode *str); | |||
/** | /** | |||
* @brief Note that the given string @b must be shared. | * @brief Note that the given string @b must be shared. | |||
* | * | |||
* @param str the shared string to know the length. It is safe to | * @param str the shared string to know the length. It is safe to | |||
* give NULL, in that case -1 is returned. | * give @c NULL, in that case @c -1 is returned. | |||
* | * | |||
* This function is a cheap way to known the length of a shared | * This function is a cheap way to known the length of a shared | |||
* string. Note that if the given pointer is not shared, bad | * string. Note that if the given pointer is not shared, bad | |||
* things will happen, likely a segmentation fault. If in doubt, try | * things will happen, likely a segmentation fault. If in doubt, try | |||
* strlen(). | * strlen(). | |||
*/ | */ | |||
EAPI int eina_ustringshare_strlen(const Eina_Unicode *str) EINA_PURE EINA_WARN_UNUSED_RESULT; | EAPI int eina_ustringshare_strlen(const Eina_Unicode *str) EINA_PURE EINA_WARN_UNUSED_RESULT; | |||
/** | /** | |||
* @brief Dump the contents of the share_common. | * @brief Dump the contents of the share_common. | |||
End of changes. 5 change blocks. | ||||
5 lines changed or deleted | 5 lines changed or added | |||
eina_value.h | eina_value.h | |||
---|---|---|---|---|
skipping to change at line 477 | skipping to change at line 477 | |||
* @li eina_value_array_vget() and eina_value_array_vset() | * @li eina_value_array_vget() and eina_value_array_vset() | |||
* @li eina_value_array_pget() and eina_value_array_pset() | * @li eina_value_array_pget() and eina_value_array_pset() | |||
* | * | |||
* eina_value_set() takes an #Eina_Value_Array where just @c subtype | * eina_value_set() takes an #Eina_Value_Array where just @c subtype | |||
* and @c step are used. If there is an @c array, it will be copied | * and @c step are used. If there is an @c array, it will be copied | |||
* (including each item) and its contents must be properly | * (including each item) and its contents must be properly | |||
* configurable as @c subtype expects. eina_value_pset() takes a | * configurable as @c subtype expects. eina_value_pset() takes a | |||
* pointer to an #Eina_Value_Array. For your convenience, use | * pointer to an #Eina_Value_Array. For your convenience, use | |||
* eina_value_array_setup(). | * eina_value_array_setup(). | |||
* | * | |||
* eina_value_get() and eina_value_pget() takes a pointer to | * eina_value_get() and eina_value_pget() takes a pointer | |||
* #Eina_Value_Array, it's an exact copy of the current structure in | * to #Eina_Value_Array, it's an exact copy of the current structure in | |||
* use by value, no copies are done. | * use by value, no copies are done. | |||
* | * | |||
* @since 1.2 | * @since 1.2 | |||
*/ | */ | |||
EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_ARRAY; | EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_ARRAY; | |||
/** | /** | |||
* @var EINA_VALUE_TYPE_LIST | * @var EINA_VALUE_TYPE_LIST | |||
* | * | |||
* manages list type. Use the value get/set for lists: | * manages list type. Use the value get/set for lists: | |||
* @li eina_value_list_get() and eina_value_list_set() | * @li eina_value_list_get() and eina_value_list_set() | |||
* @li eina_value_list_vget() and eina_value_list_vset() | * @li eina_value_list_vget() and eina_value_list_vset() | |||
* @li eina_value_list_pget() and eina_value_list_pset() | * @li eina_value_list_pget() and eina_value_list_pset() | |||
* | * | |||
* eina_value_set() takes an #Eina_Value_List where just @c subtype is | * eina_value_set() takes an #Eina_Value_List where just @c subtype is | |||
* used. If there is an @c list, it will be copied (including each | * used. If there is an @c list, it will be copied (including each | |||
* item) and its contents must be properly configurable as @c | * item) and its contents must be properly configurable as @c | |||
* subtype expects. eina_value_pset() takes a pointer to an | * subtype expects. eina_value_pset() takes a pointer to an #Eina_Value_Lis | |||
* #Eina_Value_List. For your convenience, use | t. | |||
* eina_value_list_setup(). | * For your convenience, use eina_value_list_setup(). | |||
* | * | |||
* eina_value_get() and eina_value_pget() takes a pointer to | * eina_value_get() and eina_value_pget() takes a pointer to #Eina_Value_Li | |||
* #Eina_Value_List, it's an exact copy of the current structure in | st, | |||
* use by value, no copies are done. | * it's an exact copy of the current structure in use by value, no copies a | |||
re | ||||
* done. | ||||
* | * | |||
* @since 1.2 | * @since 1.2 | |||
*/ | */ | |||
EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_LIST; | EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_LIST; | |||
/** | /** | |||
* @var EINA_VALUE_TYPE_HASH | * @var EINA_VALUE_TYPE_HASH | |||
* | * | |||
* manages hash type. Use the value get/set for hashes: | * manages hash type. Use the value get/set for hashes: | |||
* @li eina_value_hash_get() and eina_value_hash_set() | * @li eina_value_hash_get() and eina_value_hash_set() | |||
* @li eina_value_hash_vget() and eina_value_hash_vset() | * @li eina_value_hash_vget() and eina_value_hash_vset() | |||
* @li eina_value_hash_pget() and eina_value_hash_pset() | * @li eina_value_hash_pget() and eina_value_hash_pset() | |||
* | * | |||
* eina_value_set() takes an #Eina_Value_Hash where just @c subtype | * eina_value_set() takes an #Eina_Value_Hash where just @c subtype | |||
* and @c buckets_power_size are used. If there is an @c hash, it will | * and @c buckets_power_size are used. If there is an @c hash, it will | |||
* be copied (including each item) and its contents must be | * be copied (including each item) and its contents must be | |||
* properly configurable as @c subtype expects. eina_value_pset() | * properly configurable as @c subtype expects. eina_value_pset() | |||
* takes a pointer to an #Eina_Value_Hash. For your convenience, use | * takes a pointer to an #Eina_Value_Hash. For your convenience, use | |||
* eina_value_hash_setup(). | * eina_value_hash_setup(). | |||
* | * | |||
* eina_value_get() and eina_value_pget() takes a pointer to | * eina_value_get() and eina_value_pget() takes a pointer to #Eina_Value_Ha | |||
* #Eina_Value_Hash, it's an exact copy of the current structure in | sh, | |||
* use by value, no copies are done. | * it's an exact copy of the current structure in use by value, no copies a | |||
re | ||||
* done. | ||||
* | * | |||
* @note be aware that hash data is always an allocated memory of size | * @note be aware that hash data is always an allocated memory of size | |||
* defined by @c subtype->value_size. If your @c subtype is an | * defined by @c subtype->value_size. If your @c subtype is an | |||
* integer, add as data malloc(sizeof(int)). If your @c subtype | * integer, add as data malloc(sizeof(int)). If your @c subtype | |||
* is an string, add as data malloc(sizeof(char*)) and this data | * is an string, add as data malloc(sizeof(char*)) and this data | |||
* value must point to strdup(string)! | * value must point to strdup(string)! | |||
* | * | |||
* @since 1.2 | * @since 1.2 | |||
*/ | */ | |||
EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_HASH; | EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_HASH; | |||
skipping to change at line 558 | skipping to change at line 557 | |||
*/ | */ | |||
EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_TIMEVAL; | EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_TIMEVAL; | |||
/** | /** | |||
* @var EINA_VALUE_TYPE_BLOB | * @var EINA_VALUE_TYPE_BLOB | |||
* manages blob of bytes type, see @ref Eina_Value_Blob | * manages blob of bytes type, see @ref Eina_Value_Blob | |||
* | * | |||
* eina_value_set() takes an #Eina_Value_Blob | * eina_value_set() takes an #Eina_Value_Blob | |||
* eina_value_pset() takes a pointer to #Eina_Value_Blob. | * eina_value_pset() takes a pointer to #Eina_Value_Blob. | |||
* | * | |||
* eina_value_get() and eina_value_pget() takes a pointer to | * eina_value_get() and eina_value_pget() takes a pointer to #Eina_Value_Bl | |||
* #Eina_Value_Blob and it's an exact copy of value, no allocations | ob | |||
* are made. | * and it's an exact copy of value, no allocations are made. | |||
* | * | |||
* Memory is untouched unless you provide @c ops (operations) pointer. | * Memory is untouched unless you provide @c ops (operations) pointer. | |||
* | * | |||
* @since 1.2 | * @since 1.2 | |||
*/ | */ | |||
EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_BLOB; | EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_BLOB; | |||
/** | /** | |||
* @var EINA_VALUE_TYPE_STRUCT | * @var EINA_VALUE_TYPE_STRUCT | |||
* | * | |||
* manages struct type. Use the value get/set for structs: | * manages struct type. Use the value get/set for structs: | |||
* @li eina_value_struct_get() and eina_value_struct_set() | * @li eina_value_struct_get() and eina_value_struct_set() | |||
* @li eina_value_struct_vget() and eina_value_struct_vset() | * @li eina_value_struct_vget() and eina_value_struct_vset() | |||
* @li eina_value_struct_pget() and eina_value_struct_pset() | * @li eina_value_struct_pget() and eina_value_struct_pset() | |||
* | * | |||
* eina_value_set() takes an #Eina_Value_Struct where just @c desc is | * eina_value_set() takes an #Eina_Value_Struct where just @c desc is | |||
* used. If there is an @c memory, it will be copied (including each | * used. If there is an @c memory, it will be copied (including each | |||
* member) and its contents must be properly configurable as @c desc | * member) and its contents must be properly configurable as @c desc | |||
* expects. eina_value_pset() takes a pointer to an | * expects. eina_value_pset() takes a pointer to an #Eina_Value_Struct. For | |||
* #Eina_Value_Struct. For your convenience, use | * your convenience, use eina_value_struct_setup(). | |||
* eina_value_struct_setup(). | ||||
* | * | |||
* eina_value_get() and eina_value_pget() takes a pointer to | * eina_value_get() and eina_value_pget() takes a pointer | |||
* #Eina_Value_Struct, it's an exact copy of the current structure in | * to #Eina_Value_Struct, it's an exact copy of the current structure in | |||
* use by value, no copies are done. | * use by value, no copies are done. | |||
* | * | |||
* @since 1.2 | * @since 1.2 | |||
*/ | */ | |||
EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_STRUCT; | EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_STRUCT; | |||
/** | /** | |||
* @var EINA_ERROR_VALUE_FAILED | * @var EINA_ERROR_VALUE_FAILED | |||
* Error identifier corresponding to value check failure. | * Error identifier corresponding to value check failure. | |||
* | * | |||
skipping to change at line 629 | skipping to change at line 626 | |||
* @param type how to manage this value. | * @param type how to manage this value. | |||
* @return The new value or @c NULL on failure. | * @return The new value or @c NULL on failure. | |||
* | * | |||
* Create a new generic value storage. The members are managed using | * Create a new generic value storage. The members are managed using | |||
* the description specified by @a type. | * the description specified by @a type. | |||
* | * | |||
* Some types may specify more operations: | * Some types may specify more operations: | |||
* eg. #EINA_VALUE_TYPE_ARRAY uses eina_value_array_set(), | * eg. #EINA_VALUE_TYPE_ARRAY uses eina_value_array_set(), | |||
* eina_value_array_get() and so on. | * eina_value_array_get() and so on. | |||
* | * | |||
* On failure, @c NULL is returned and either #EINA_ERROR_OUT_OF_MEMORY or | * On failure, @c NULL is returned and either #EINA_ERROR_OUT_OF_MEMORY | |||
* #EINA_ERROR_VALUE_FAILED is set. | * or #EINA_ERROR_VALUE_FAILED is set. | |||
* | * | |||
* @note this calls creates from mempool and then uses | * @note this calls creates from mempool and then uses | |||
* eina_value_setup(). Consider using eina_value_flush() and | * eina_value_setup(). Consider using eina_value_flush() and | |||
* eina_value_setup() instead to avoid memory allocations. | * eina_value_setup() instead to avoid memory allocations. | |||
* | * | |||
* @see eina_value_free() | * @see eina_value_free() | |||
* | * | |||
* @since 1.2 | * @since 1.2 | |||
*/ | */ | |||
EAPI Eina_Value *eina_value_new(const Eina_Value_Type *type) EINA_ARG_NONNU LL(1) EINA_MALLOC EINA_WARN_UNUSED_RESULT; | EAPI Eina_Value *eina_value_new(const Eina_Value_Type *type) EINA_ARG_NONNU LL(1) EINA_MALLOC EINA_WARN_UNUSED_RESULT; | |||
skipping to change at line 661 | skipping to change at line 658 | |||
/** | /** | |||
* @brief Initialize generic value storage. | * @brief Initialize generic value storage. | |||
* @param value value object | * @param value value object | |||
* @param type how to manage this value. | * @param type how to manage this value. | |||
* @return #EINA_TRUE on success, #EINA_FALSE otherwise. | * @return #EINA_TRUE on success, #EINA_FALSE otherwise. | |||
* | * | |||
* Initializes existing generic value storage. The members are managed usin g the | * Initializes existing generic value storage. The members are managed usin g the | |||
* description specified by @a type. | * description specified by @a type. | |||
* | * | |||
* Some types may specify more operations, as an example | * Some types may specify more operations, as an example #EINA_VALUE_TYPE_A | |||
* #EINA_VALUE_TYPE_ARRAY uses eina_value_array_set(), | RRAY | |||
* eina_value_array_get() and so on. | * uses eina_value_array_set(), eina_value_array_get() and so on. | |||
* | * | |||
* @note Existing contents are ignored! If the value was previously used, t hen | * @note Existing contents are ignored! If the value was previously used, t hen | |||
* use eina_value_flush() first. | * use eina_value_flush() first. | |||
* | * | |||
* On failure, #EINA_FALSE is returned and #EINA_ERROR_OUT_OF_MEMORY | * On failure, #EINA_FALSE is returned and #EINA_ERROR_OUT_OF_MEMORY | |||
* or #EINA_ERROR_VALUE_FAILED is set. | * or #EINA_ERROR_VALUE_FAILED is set. | |||
* | * | |||
* @see eina_value_flush() | * @see eina_value_flush() | |||
* | * | |||
* @since 1.2 | * @since 1.2 | |||
skipping to change at line 1104 | skipping to change at line 1100 | |||
/** | /** | |||
* @brief Create generic value storage of type array. | * @brief Create generic value storage of type array. | |||
* @param subtype how to manage this array members. | * @param subtype how to manage this array members. | |||
* @param step how to grow the members array. | * @param step how to grow the members array. | |||
* @return The new value or @c NULL on failure. | * @return The new value or @c NULL on failure. | |||
* | * | |||
* Create a new generic value storage of type array. The members are | * Create a new generic value storage of type array. The members are | |||
* managed using the description specified by @a subtype. | * managed using the description specified by @a subtype. | |||
* | * | |||
* On failure, @c NULL is returned and #EINA_ERROR_OUT_OF_MEMORY or | * On failure, @c NULL is returned and #EINA_ERROR_OUT_OF_MEMORY | |||
* #EINA_ERROR_VALUE_FAILED is set. | * or #EINA_ERROR_VALUE_FAILED is set. | |||
* | * | |||
* @note this creates from mempool and then uses | * @note this creates from mempool and then uses | |||
* eina_value_array_setup(). @see eina_value_free() @see | * eina_value_array_setup(). @see eina_value_free() @see | |||
* eina_value_array_setup() | * eina_value_array_setup() | |||
* | * | |||
* @since 1.2 | * @since 1.2 | |||
*/ | */ | |||
EAPI Eina_Value *eina_value_array_new(const Eina_Value_Type *subtype, | EAPI Eina_Value *eina_value_array_new(const Eina_Value_Type *subtype, | |||
unsigned int step) EINA_ARG_NONNULL(1 ); | unsigned int step) EINA_ARG_NONNULL(1 ); | |||
/** | /** | |||
* @brief Initialize generic value storage of type array. | * @brief Initialize generic value storage of type array. | |||
* @param value value object | * @param value value object | |||
* @param subtype how to manage array members. | * @param subtype how to manage array members. | |||
* @param step how to grow the members array. | * @param step how to grow the members array. | |||
* @return #EINA_TRUE on success, #EINA_FALSE otherwise. | * @return #EINA_TRUE on success, #EINA_FALSE otherwise. | |||
* | * | |||
* Initializes new generic value storage of type array with the given | * Initializes new generic value storage of type array with the given | |||
* @a subtype. | * @a subtype. | |||
* | * | |||
* This is the same as calling eina_value_set() with | * This is the same as calling eina_value_set() | |||
* #EINA_VALUE_TYPE_ARRAY followed by eina_value_pset() with the | * with #EINA_VALUE_TYPE_ARRAY followed by eina_value_pset() with | |||
* #Eina_Value_Array description configured. | * the #Eina_Value_Array description configured. | |||
* | * | |||
* @note Existing contents are ignored! If the value was previously used, t hen | * @note Existing contents are ignored! If the value was previously used, t hen | |||
* use eina_value_flush() first. | * use eina_value_flush() first. | |||
* | * | |||
* On failure, #EINA_FALSE is returned and #EINA_ERROR_OUT_OF_MEMORY | * On failure, #EINA_FALSE is returned and #EINA_ERROR_OUT_OF_MEMORY | |||
* or #EINA_ERROR_VALUE_FAILED is set. | * or #EINA_ERROR_VALUE_FAILED is set. | |||
* | * | |||
* @see eina_value_flush() | * @see eina_value_flush() | |||
* | * | |||
* @since 1.2 | * @since 1.2 | |||
skipping to change at line 1750 | skipping to change at line 1746 | |||
}; | }; | |||
/** | /** | |||
* @brief Create generic value storage of type list. | * @brief Create generic value storage of type list. | |||
* @param subtype how to manage this list members. | * @param subtype how to manage this list members. | |||
* @return The new value or @c NULL on failure. | * @return The new value or @c NULL on failure. | |||
* | * | |||
* Create a new generic value storage of type list. The members are | * Create a new generic value storage of type list. The members are | |||
* managed using the description specified by @a subtype. | * managed using the description specified by @a subtype. | |||
* | * | |||
* On failure, @c NULL is returned and #EINA_ERROR_OUT_OF_MEMORY or | * On failure, @c NULL is returned and #EINA_ERROR_OUT_OF_MEMORY | |||
* #EINA_ERROR_VALUE_FAILED is set. | * or #EINA_ERROR_VALUE_FAILED is set. | |||
* | * | |||
* @note this creates from mempool and then uses | * @note this creates from mempool and then uses | |||
* eina_value_list_setup(). | * eina_value_list_setup(). | |||
* | * | |||
* @see eina_value_free() | * @see eina_value_free() | |||
* @see eina_value_list_setup() | * @see eina_value_list_setup() | |||
* | * | |||
* @since 1.2 | * @since 1.2 | |||
*/ | */ | |||
EAPI Eina_Value *eina_value_list_new(const Eina_Value_Type *subtype) EINA_A RG_NONNULL(1); | EAPI Eina_Value *eina_value_list_new(const Eina_Value_Type *subtype) EINA_A RG_NONNULL(1); | |||
/** | /** | |||
* @brief Initialize generic value storage of type list. | * @brief Initialize generic value storage of type list. | |||
* @param value value object | * @param value value object | |||
* @param subtype how to manage this list members. | * @param subtype how to manage this list members. | |||
* @return #EINA_TRUE on success, #EINA_FALSE otherwise. | * @return #EINA_TRUE on success, #EINA_FALSE otherwise. | |||
* | * | |||
* Initializes new generic value storage of type list with the given | * Initializes new generic value storage of type list with the given | |||
* @a subtype. | * @a subtype. | |||
* | * | |||
* This is the same as calling eina_value_set() with | * This is the same as calling eina_value_set() | |||
* #EINA_VALUE_TYPE_LIST followed by eina_value_pset() with the | * with #EINA_VALUE_TYPE_LIST followed by eina_value_pset() with | |||
* #Eina_Value_List description configured. | * the #Eina_Value_List description configured. | |||
* | * | |||
* @note Existing contents are ignored! If the value was previously used, t hen | * @note Existing contents are ignored! If the value was previously used, t hen | |||
* use eina_value_flush() first. | * use eina_value_flush() first. | |||
* | * | |||
* On failure, #EINA_FALSE is returned and #EINA_ERROR_OUT_OF_MEMORY | * On failure, #EINA_FALSE is returned and #EINA_ERROR_OUT_OF_MEMORY | |||
* or #EINA_ERROR_VALUE_FAILED is set. | * or #EINA_ERROR_VALUE_FAILED is set. | |||
* | * | |||
* @see eina_value_flush() | * @see eina_value_flush() | |||
* | * | |||
* @since 1.2 | * @since 1.2 | |||
skipping to change at line 2374 | skipping to change at line 2370 | |||
/** | /** | |||
* @brief Create generic value storage of type hash. | * @brief Create generic value storage of type hash. | |||
* @param subtype how to manage this hash members. | * @param subtype how to manage this hash members. | |||
* @param buckets_power_size how to allocate hash buckets (2 ^ | * @param buckets_power_size how to allocate hash buckets (2 ^ | |||
* buckets_power_size), if zero then a sane value is chosen. | * buckets_power_size), if zero then a sane value is chosen. | |||
* @return The new value or @c NULL on failure. | * @return The new value or @c NULL on failure. | |||
* | * | |||
* Create a new generic value storage of type hash. The members are | * Create a new generic value storage of type hash. The members are | |||
* managed using the description specified by @a subtype. | * managed using the description specified by @a subtype. | |||
* | * | |||
* On failure, @c NULL is returned and #EINA_ERROR_OUT_OF_MEMORY or | * On failure, @c NULL is returned and #EINA_ERROR_OUT_OF_MEMORY | |||
* #EINA_ERROR_VALUE_FAILED is set. | * or #EINA_ERROR_VALUE_FAILED is set. | |||
* | * | |||
* @note this creates from mempool and then uses | * @note this creates from mempool and then uses | |||
* eina_value_hash_setup(). | * eina_value_hash_setup(). | |||
* | * | |||
* @see eina_value_free() | * @see eina_value_free() | |||
* @see eina_value_hash_setup() | * @see eina_value_hash_setup() | |||
* | * | |||
* @since 1.2 | * @since 1.2 | |||
*/ | */ | |||
EAPI Eina_Value *eina_value_hash_new(const Eina_Value_Type *subtype, unsign ed int buckets_power_size) EINA_ARG_NONNULL(1); | EAPI Eina_Value *eina_value_hash_new(const Eina_Value_Type *subtype, unsign ed int buckets_power_size) EINA_ARG_NONNULL(1); | |||
skipping to change at line 2398 | skipping to change at line 2394 | |||
* @brief Initialize generic value storage of type hash. | * @brief Initialize generic value storage of type hash. | |||
* @param value value object | * @param value value object | |||
* @param subtype how to manage this hash members. | * @param subtype how to manage this hash members. | |||
* @param buckets_power_size how to allocate hash buckets (2 ^ | * @param buckets_power_size how to allocate hash buckets (2 ^ | |||
* buckets_power_size), if zero then a sane value is chosen. | * buckets_power_size), if zero then a sane value is chosen. | |||
* @return #EINA_TRUE on success, #EINA_FALSE otherwise. | * @return #EINA_TRUE on success, #EINA_FALSE otherwise. | |||
* | * | |||
* Initializes new generic value storage of type hash with the given | * Initializes new generic value storage of type hash with the given | |||
* @a subtype. | * @a subtype. | |||
* | * | |||
* This is the same as calling eina_value_set() with | * This is the same as calling eina_value_set() | |||
* #EINA_VALUE_TYPE_HASH followed by eina_value_pset() with the | * with #EINA_VALUE_TYPE_HASH followed by eina_value_pset() with | |||
* #Eina_Value_Hash description configured. | * the #Eina_Value_Hash description configured. | |||
* | * | |||
* @note Existing contents are ignored! If the value was previously used, t hen | * @note Existing contents are ignored! If the value was previously used, t hen | |||
* use eina_value_flush() first. | * use eina_value_flush() first. | |||
* | * | |||
* On failure, #EINA_FALSE is returned and #EINA_ERROR_OUT_OF_MEMORY | * On failure, #EINA_FALSE is returned and #EINA_ERROR_OUT_OF_MEMORY | |||
* or #EINA_ERROR_VALUE_FAILED is set. | * or #EINA_ERROR_VALUE_FAILED is set. | |||
* | * | |||
* @see eina_value_flush() | * @see eina_value_flush() | |||
* | * | |||
* @since 1.2 | * @since 1.2 | |||
skipping to change at line 2855 | skipping to change at line 2851 | |||
EAPI extern const Eina_Value_Struct_Operations *EINA_VALUE_STRUCT_OPERATION S_STRINGSHARE; | EAPI extern const Eina_Value_Struct_Operations *EINA_VALUE_STRUCT_OPERATION S_STRINGSHARE; | |||
/** | /** | |||
* @struct _Eina_Value_Struct_Member | * @struct _Eina_Value_Struct_Member | |||
* Describes a single member of struct. | * Describes a single member of struct. | |||
* | * | |||
* The name is used to lookup the member description. This is done as | * The name is used to lookup the member description. This is done as | |||
* specified as _Eina_Value_Struct_Operations::find_member(). For | * specified as _Eina_Value_Struct_Operations::find_member(). For | |||
* structures with huge number of members, consider using a better | * structures with huge number of members, consider using a better | |||
* find_member function to quickly finding it! There are two helper | * find_member function to quickly finding it! There are two helper | |||
* operations provided to help this: | * operations provided to help this: #EINA_VALUE_STRUCT_OPERATIONS_BINSEARC | |||
* #EINA_VALUE_STRUCT_OPERATIONS_BINSEARCH and | H | |||
* #EINA_VALUE_STRUCT_OPERATIONS_STRINGSHARE, both depend on properly | * and #EINA_VALUE_STRUCT_OPERATIONS_STRINGSHARE, both depend on properly | |||
* set #_Eina_Value_Struct_Desc and #_Eina_Value_Struct_Member. | * set #_Eina_Value_Struct_Desc and #_Eina_Value_Struct_Member. | |||
* | * | |||
* @see #EINA_VALUE_STRUCT_MEMBER | * @see #EINA_VALUE_STRUCT_MEMBER | |||
* @see #EINA_VALUE_STRUCT_MEMBER_SENTINEL | * @see #EINA_VALUE_STRUCT_MEMBER_SENTINEL | |||
* | * | |||
* @since 1.2 | * @since 1.2 | |||
*/ | */ | |||
struct _Eina_Value_Struct_Member | struct _Eina_Value_Struct_Member | |||
{ | { | |||
const char *name; /**< member name, used in lookups such as eina_value_s truct_get() */ | const char *name; /**< member name, used in lookups such as eina_value_s truct_get() */ | |||
skipping to change at line 2937 | skipping to change at line 2932 | |||
}; | }; | |||
/** | /** | |||
* @brief Create generic value storage of type struct. | * @brief Create generic value storage of type struct. | |||
* @param desc how to manage this struct members. | * @param desc how to manage this struct members. | |||
* @return The new value or @c NULL on failure. | * @return The new value or @c NULL on failure. | |||
* | * | |||
* Create a new generic value storage of type struct. The members are | * Create a new generic value storage of type struct. The members are | |||
* managed using the description specified by @a desc. | * managed using the description specified by @a desc. | |||
* | * | |||
* On failure, @c NULL is returned and #EINA_ERROR_OUT_OF_MEMORY or | * On failure, @c NULL is returned and #EINA_ERROR_OUT_OF_MEMORY | |||
* #EINA_ERROR_VALUE_FAILED is set. | * or #EINA_ERROR_VALUE_FAILED is set. | |||
* | * | |||
* @note this creates from mempool and then uses | * @note this creates from mempool and then uses | |||
* eina_value_struct_setup(). | * eina_value_struct_setup(). | |||
* | * | |||
* @see eina_value_free() | * @see eina_value_free() | |||
* @see eina_value_struct_setup() | * @see eina_value_struct_setup() | |||
* | * | |||
* @since 1.2 | * @since 1.2 | |||
*/ | */ | |||
EAPI Eina_Value *eina_value_struct_new(const Eina_Value_Struct_Desc *desc) EINA_ARG_NONNULL(1); | EAPI Eina_Value *eina_value_struct_new(const Eina_Value_Struct_Desc *desc) EINA_ARG_NONNULL(1); | |||
/** | /** | |||
* @brief Initialize generic value storage of type struct. | * @brief Initialize generic value storage of type struct. | |||
* @param value value object | * @param value value object | |||
* @param desc how to manage this struct members. | * @param desc how to manage this struct members. | |||
* @return #EINA_TRUE on success, #EINA_FALSE otherwise. | * @return #EINA_TRUE on success, #EINA_FALSE otherwise. | |||
* | * | |||
* Initializes new generic value storage of type struct with the given | * Initializes new generic value storage of type struct with the given | |||
* @a desc. | * @a desc. | |||
* | * | |||
* This is the same as calling eina_value_set() with | * This is the same as calling eina_value_set() | |||
* #EINA_VALUE_TYPE_STRUCT followed by eina_value_pset() with the | * with #EINA_VALUE_TYPE_STRUCT followed by eina_value_pset() with | |||
* #Eina_Value_Struct description configured. | * the #Eina_Value_Struct description configured. | |||
* | * | |||
* @note Existing contents are ignored! If the value was previously used, t hen | * @note Existing contents are ignored! If the value was previously used, t hen | |||
* use eina_value_flush() first. | * use eina_value_flush() first. | |||
* | * | |||
* On failure, #EINA_FALSE is returned and #EINA_ERROR_OUT_OF_MEMORY | * On failure, #EINA_FALSE is returned and #EINA_ERROR_OUT_OF_MEMORY | |||
* or #EINA_ERROR_VALUE_FAILED is set. | * or #EINA_ERROR_VALUE_FAILED is set. | |||
* | * | |||
* @see eina_value_flush() | * @see eina_value_flush() | |||
* | * | |||
* @since 1.2 | * @since 1.2 | |||
End of changes. 18 change blocks. | ||||
47 lines changed or deleted | 50 lines changed or added | |||
eina_xattr.h | eina_xattr.h | |||
---|---|---|---|---|
skipping to change at line 111 | skipping to change at line 111 | |||
EAPI Eina_Iterator *eina_xattr_value_fd_ls(int fd); | EAPI Eina_Iterator *eina_xattr_value_fd_ls(int fd); | |||
/** | /** | |||
* @brief Retrieve an extended attribute from a file. | * @brief Retrieve an extended attribute from a file. | |||
* | * | |||
* @param file The file to retrieve the extended attribute from. | * @param file The file to retrieve the extended attribute from. | |||
* @param attribute The extended attribute name to retrieve. | * @param attribute The extended attribute name to retrieve. | |||
* @param size The size of the retrieved extended attribute. | * @param size The size of the retrieved extended attribute. | |||
* @return the allocated data that hold the extended attribute value. | * @return the allocated data that hold the extended attribute value. | |||
* | * | |||
* It will return NULL and *size will be @c 0 if it fails. | * It will return @c NULL and *size will be @c 0 if it fails. | |||
* | * | |||
* @since 1.1 | * @since 1.1 | |||
*/ | */ | |||
EAPI void *eina_xattr_get(const char *file, const char *attribute, ssize_t *size); | EAPI void *eina_xattr_get(const char *file, const char *attribute, ssize_t *size); | |||
/** | /** | |||
* @brief Set an extended attribute on a file. | * @brief Set an extended attribute on a file. | |||
* | * | |||
* @param file The file to set the extended attribute to. | * @param file The file to set the extended attribute to. | |||
* @param attribute The attribute to set. | * @param attribute The attribute to set. | |||
* @param data The data to set. | * @param data The data to set. | |||
* @param length The length of the data to set. | * @param length The length of the data to set. | |||
* @param flags Define the set policy. | * @param flags Define the set policy. | |||
* @return EINA_TRUE on success, EINA_FALSE otherwise. | * @return #EINA_TRUE on success, #EINA_FALSE otherwise. | |||
* | * | |||
* @since 1.1 | * @since 1.1 | |||
*/ | */ | |||
EAPI Eina_Bool eina_xattr_set(const char *file, const char *attribute, cons t void *data, ssize_t length, Eina_Xattr_Flags flags); | EAPI Eina_Bool eina_xattr_set(const char *file, const char *attribute, cons t void *data, ssize_t length, Eina_Xattr_Flags flags); | |||
/** | /** | |||
* @brief Set a string as a extended attribute properties. | * @brief Set a string as a extended attribute properties. | |||
* | * | |||
* @param file The file to set the string to. | * @param file The file to set the string to. | |||
* @param attribute The attribute to set. | * @param attribute The attribute to set. | |||
* @param data The NULL terminated string to set. | * @param data The NULL-terminated string to set. | |||
* @param flags Define the set policy. | * @param flags Define the set policy. | |||
* @return EINA_TRUE on success, EINA_FALSE otherwise. | * @return EINA_TRUE on success, EINA_FALSE otherwise. | |||
* | * | |||
* @since 1.1 | * @since 1.1 | |||
*/ | */ | |||
EAPI Eina_Bool eina_xattr_string_set(const char *file, const char *attribut e, const char *data, Eina_Xattr_Flags flags); | EAPI Eina_Bool eina_xattr_string_set(const char *file, const char *attribut e, const char *data, Eina_Xattr_Flags flags); | |||
/** | /** | |||
* @brief Get a string from an extended attribute properties. | * @brief Get a string from an extended attribute properties. | |||
* | * | |||
* @param file The file to get the string from. | * @param file The file to get the string from. | |||
* @param attribute The attribute to get. | * @param attribute The attribute to get. | |||
* @return a valid string on success, NULL otherwise. | * @return A valid string on success, @c NULL otherwise. | |||
* | * | |||
* This call check that the string is properly NULL-terminated before retur ning it. | * This call check that the string is properly NULL-terminated before retur ning it. | |||
* | * | |||
* @since 1.1 | * @since 1.1 | |||
*/ | */ | |||
EAPI char *eina_xattr_string_get(const char *file, const char *attribute); | EAPI char *eina_xattr_string_get(const char *file, const char *attribute); | |||
/** | /** | |||
* @brief Set a double as a extended attribute properties. | * @brief Set a double as a extended attribute properties. | |||
* | * | |||
* @param file The file to set the double to. | * @param file The file to set the double to. | |||
* @param attribute The attribute to set. | * @param attribute The attribute to set. | |||
* @param value The NULL terminated double to set. | * @param value The NULL-terminated double to set. | |||
* @param flags Define the set policy. | * @param flags Define the set policy. | |||
* @return EINA_TRUE on success, EINA_FALSE otherwise. | * @return #EINA_TRUE on success, #EINA_FALSE otherwise. | |||
* | * | |||
* @since 1.1 | * @since 1.1 | |||
*/ | */ | |||
EAPI Eina_Bool eina_xattr_double_set(const char *file, const char *attribut e, double value, Eina_Xattr_Flags flags); | EAPI Eina_Bool eina_xattr_double_set(const char *file, const char *attribut e, double value, Eina_Xattr_Flags flags); | |||
/** | /** | |||
* @brief Get a double from an extended attribute properties. | * @brief Get a double from an extended attribute properties. | |||
* | * | |||
* @param file The file to get the string from. | * @param file The file to get the string from. | |||
* @param attribute The attribute to get. | * @param attribute The attribute to get. | |||
* @param value Where to put the extracted value | * @param value Where to put the extracted value | |||
* @return EINA_TRUE on success, EINA_FALSE otherwise. | * @return #EINA_TRUE on success, #EINA_FALSE otherwise. | |||
* | * | |||
* This call check that the double is correctly set. | * This call check that the double is correctly set. | |||
* | * | |||
* @since 1.1 | * @since 1.1 | |||
*/ | */ | |||
EAPI Eina_Bool eina_xattr_double_get(const char *file, const char *attribut e, double *value); | EAPI Eina_Bool eina_xattr_double_get(const char *file, const char *attribut e, double *value); | |||
/** | /** | |||
* @brief Set an int as a extended attribute properties. | * @brief Set an int as a extended attribute properties. | |||
* | * | |||
* @param file The file to set the int to. | * @param file The file to set the int to. | |||
* @param attribute The attribute to set. | * @param attribute The attribute to set. | |||
* @param value The NULL terminated int to set. | * @param value The NULL-terminated int to set. | |||
* @param flags Define the set policy. | * @param flags Define the set policy. | |||
* @return EINA_TRUE on success, EINA_FALSE otherwise. | * @return #EINA_TRUE on success, #EINA_FALSE otherwise. | |||
* | * | |||
* @since 1.1 | * @since 1.1 | |||
*/ | */ | |||
EAPI Eina_Bool eina_xattr_int_set(const char *file, const char *attribute, int value, Eina_Xattr_Flags flags); | EAPI Eina_Bool eina_xattr_int_set(const char *file, const char *attribute, int value, Eina_Xattr_Flags flags); | |||
/** | /** | |||
* @brief Get a int from an extended attribute properties. | * @brief Get a int from an extended attribute properties. | |||
* | * | |||
* @param file The file to get the string from. | * @param file The file to get the string from. | |||
* @param attribute The attribute to get. | * @param attribute The attribute to get. | |||
* @param value Where to put the extracted value | * @param value Where to put the extracted value | |||
* @return EINA_TRUE on success, EINA_FALSE otherwise. | * @return #EINA_TRUE on success, #EINA_FALSE otherwise. | |||
* | * | |||
* This call check that the int is correctly set. | * This call check that the int is correctly set. | |||
* | * | |||
* @since 1.1 | * @since 1.1 | |||
*/ | */ | |||
EAPI Eina_Bool eina_xattr_int_get(const char *file, const char *attribute, int *value); | EAPI Eina_Bool eina_xattr_int_get(const char *file, const char *attribute, int *value); | |||
/** | /** | |||
* @} | * @} | |||
*/ | */ | |||
End of changes. 10 change blocks. | ||||
10 lines changed or deleted | 10 lines changed or added | |||