391 * |
391 * |
392 * The following combinations of arguments are valid (more arguments are optional): |
392 * The following combinations of arguments are valid (more arguments are optional): |
393 * @li @p loc_next and @p loc_prev (ancestor node is determined by using the prev pointer, overall O(1) performance) |
393 * @li @p loc_next and @p loc_prev (ancestor node is determined by using the prev pointer, overall O(1) performance) |
394 * @li @p loc_next and @p begin (ancestor node is determined by list traversal, overall O(n) performance) |
394 * @li @p loc_next and @p begin (ancestor node is determined by list traversal, overall O(n) performance) |
395 * |
395 * |
396 * @remark The @c next and @c prev pointers of the removed node are not cleared by this function and may still be used |
396 * @remark The @c next and @c prev pointers of the removed chain are not cleared by this function and may still be used |
397 * to traverse to a former adjacent node in the list, or within the chain. |
397 * to traverse to a former adjacent node in the list, or within the chain. |
398 * |
398 * |
399 * @param begin a pointer to the beginning node pointer (optional) |
399 * @param begin a pointer to the beginning node pointer (optional) |
400 * @param end a pointer to the end node pointer (optional) |
400 * @param end a pointer to the end node pointer (optional) |
401 * @param loc_prev the location of a @c prev pointer within your node struct (negative if your struct does not have one) |
401 * @param loc_prev the location of a @c prev pointer within your node struct (negative if your struct does not have one) |