--- a/docs/Writerside/topics/properties.h.md Wed Dec 31 15:25:30 2025 +0100 +++ b/docs/Writerside/topics/properties.h.md Wed Dec 31 16:01:08 2025 +0100 @@ -82,11 +82,11 @@ Note that leading spaces of a continuing line are ignored. The actual parsing is an interleaving invocation of the `cxPropertiesFill()` (or `cxPropertiesFilln()`) and `cxPropertiesNext()` functions. -The `cxPropertiesFill()` function is a convenience function, that accepts UCX strings and normal zero-terminated C strings and behaves otherwise like `cxPropertiesFilln()`. +The `cxPropertiesFill()` function is a convenience function that accepts UCX strings and normal zero-terminated C strings and behaves otherwise like `cxPropertiesFilln()`. Filling the input buffer is cost-free if there is no data already in the input buffer. In that case, the input buffer only stores the pointer to the original data without creating a copy. -Calling `cxPropertiesNext()` will return with `CX_PROPERTIES_NO_ERROR` (= zero) for each key/value-pair that is successfully parsed, +Calling `cxPropertiesNext()` will return with `CX_PROPERTIES_NO_ERROR` (= zero) for each key/value-pair that is successfully parsed and stores the pointers and lengths for both the key and the value into the structures pointed to by the `key` and `value` arguments. When all the data from the input buffer was successfully consumed, `cxPropertiesNext()` returns `CX_PROPERTIES_NO_DATA`. @@ -97,7 +97,7 @@ > because you will otherwise soon end up with a dangling pointer. > {style="note"} -If `cxPropertiesNext()` returns `CX_PROPERTIES_INCOMPLETE_DATA` it means that the input buffer is exhausted, +If `cxPropertiesNext()` returns `CX_PROPERTIES_INCOMPLETE_DATA`, the input buffer is exhausted, but the last line did not contain a full key/value pair. In that case, you can call `cxPropertiesFill()` again to add more data and continue with `cxPropertiesNext()`.