Fix a label appending an extra character due to not considerung runlen

The code copying the label had an off-by-one where potentially the character was copied
off the length - if it was within printable range.
Check also the very last character of the label, when runlen is zero