fix target_char_offset in vert movement; add insert space
fix size_t+ssize_t bugs; handle mark edge cases
viewport