bytes which have been used, so that the caller can adjust the pointer
and length (adding to the former and subtracting from the latter).
-This method works, but there are some limitations
+This method works, but there are some limitations:
* For encoders the buffer cannot be extended, which means the length
of the buffer must be determined prior to calling the encoder.
operating on the same buffer are members of a singly linked list.
The Encoding and decoding functions are passed pointers to dbuffs.
-Each function does its' work, updates the pointer to the next byte,
+Each function does its work, updates the pointer to the next byte,
and then returns. The caller can then just encode / decode multiple
tokens in a row, with minimal additional overhead.
instead of
[source,c]
----
-f ((val = fr_dbuff_foo(dbuff, ...) < 0) return val;
+if ((val = fr_dbuff_foo(dbuff, ...) < 0) return val;
----
letting one return an error to the caller without cluttering the code.
## Fixes
### Marker release
-Current sbuffs require markers to be tracked because the marker's pointer needs to be updated is the sbuff is shifted,
+Current sbuffs require markers to be tracked because the marker's pointer needs to be updated as the sbuff is shifted,
Using offsets relative to the start of the current sbuff removes the tracking requirement and means that the markers no longer need to be updated.