Progress: continue string and convert changes, fixing bugs.
The byte comparison should be against 0xf and not 0x7.
As a result some numbers, such as 8, were being turned into 0.
The private convert function wasn't correctly converted when it was restructured.
Wrong parameters were used and the digits were being incorrectly set when the number is 0.
Looks like I needed a double pointer and not a single pointer.
I may redesign this to not depend on a double pointer.
The design will be to change the behavior to operate more like fprintf() in that a number of bytes printed is returned.
This would put the return type in a non-standard (non FLL standards that is) but acceptable state.
The byte_dump program had the parameters placed in the wrong location.
Another consideration is that I might implement f_print_color() (which would operate similar to the now removed f_color_print()).
This would only be for a single color for simplicity purpose and would only accept a single color set after the string.
Such as:
f_print_color("My name is %S.", main.context.set.title, main.output.stream, name);
Which is cleaner than:
f_print_string("%[My name is %S.%]", main.output.stream, main.context.set.title, name, main.context.set.title);
This is likely to cover a common case and so I believe is an acceptable compliment to f_print_string().