don't require block_len for most rle_*()
a little code refactoring