/* Move right one character. */ void do_right(void) { size_t was_column = xplustabs(); assert(openfile->current_x <= strlen(openfile->current->data)); if (openfile->current->data[openfile->current_x] != '\0') openfile->current_x = move_mbright(openfile->current->data, openfile->current_x); else if (openfile->current != openfile->filebot) { openfile->current_x = 0; #ifndef NANO_TINY if (ISSET(SOFTWRAP)) openfile->current_y -= strlenpt(openfile->current->data) / editwincols; #endif } openfile->placewewant = xplustabs(); if (need_horizontal_scroll(was_column, openfile->placewewant)) update_line(openfile->current, openfile->current_x); if (openfile->current_x == 0) do_down_void(); else ensure_line_is_visible(); }
/* Move right one character. */ void do_right(void) { size_t pww_save = openfile->placewewant; assert(openfile->current_x <= strlen(openfile->current->data)); if (openfile->current->data[openfile->current_x] != '\0') openfile->current_x = move_mbright(openfile->current->data, openfile->current_x); else if (openfile->current != openfile->filebot) { do_down_void(); openfile->current_x = 0; } openfile->placewewant = xplustabs(); if (need_horizontal_update(pww_save)) update_line(openfile->current, openfile->current_x); }