The functions encode and decode are now capable of processing larger
buffers with less conditional logic. Input and output functions need to
follow suit to make better use of this next. Encode without line
wrapping already makes use of these improvements, because input and
output are now entirely handled by <stdio.h> functions.
-Og enables better detection of bugs that would only occur in optimized
compilations and allows for slightly lesser than -O1 optimization that
does not interfere with debugging.
These bugs became visible when using optimization options. They were
either not present unoptimized or very unlikely to occur. However, given
the options, the resulting program would behave incorrectly and reliably
break under all circumstances.
The makefile will see the intended changes accordingly in the following
commit to ensure compatibility.
This should've been part of 848c37, when buffers were unwired from input
functions. Now buffer size is also no longer supplied in function calls
but assumed. It is up to the caller to provide appropriately sized
buffers.
Before, encoded text would be newline terminated by default.
This was supposed to make short encoded strings easier to read when
using an interactive shell.
Now this only happens with the explicit line wrap option.