/* Move down one page. */ void do_page_down(void) { int i; /* If there's less than a page of text left on the screen, put the * cursor at the beginning of the last line of the file, and then * update the edit window. */ if (openfile->current->lineno + editwinrows - 2 >= openfile->filebot->lineno) { do_last_line(); return; } /* If we're not in smooth scrolling mode, put the cursor at the * beginning of the top line of the edit window, as Pico does. */ #ifndef NANO_TINY if (!ISSET(SMOOTH_SCROLL)) { #endif openfile->current = openfile->edittop; openfile->placewewant = 0; #ifndef NANO_TINY } #endif for (i = editwinrows - 2; i > 0 && openfile->current != openfile->filebot; i--) openfile->current = openfile->current->next; openfile->current_x = actual_x(openfile->current->data, openfile->placewewant); /* Scroll the edit window down a page. */ edit_scroll(DOWN_DIR, editwinrows - 2); }
/* Move down one page. */ void do_page_down(void) { int i, mustmove; /* If the cursor is less than a page away from the bottom of the file, * put it at the end of the last line. */ if (openfile->current->lineno + maxrows - 2 >= openfile->filebot->lineno) { do_last_line(); return; } /* If we're not in smooth scrolling mode, put the cursor at the * beginning of the top line of the edit window, as Pico does. */ if (!ISSET(SMOOTH_SCROLL)) { openfile->current = openfile->edittop; openfile->placewewant = openfile->current_y = 0; } mustmove = (maxrows < 3) ? 1 : maxrows - 2; for (i = mustmove; i > 0 && openfile->current != openfile->filebot; i--) { openfile->current = openfile->current->next; #ifdef DEBUG fprintf(stderr, "paging down: moving to line %lu\n", (unsigned long)openfile->current->lineno); #endif } openfile->current_x = actual_x(openfile->current->data, openfile->placewewant); /* Scroll the edit window down a page. */ adjust_viewport(STATIONARY); refresh_needed = TRUE; }
/* Move down one page. */ void do_page_down(void) { int i; /* If there's less than a page of text left on the screen, put the * cursor at the beginning of the last line of the file, and then * update the edit window. */ if (openfile->current->lineno + maxrows - 2 >= openfile->filebot->lineno) { do_last_line(); return; } /* If we're not in smooth scrolling mode, put the cursor at the * beginning of the top line of the edit window, as Pico does. */ #ifndef NANO_TINY if (!ISSET(SMOOTH_SCROLL)) { #endif openfile->current = openfile->edittop; openfile->placewewant = openfile->current_y = 0; #ifndef NANO_TINY } #endif for (i = maxrows - 2; i > 0 && openfile->current != openfile->filebot; i--) { openfile->current = openfile->current->next; #ifdef DEBUG fprintf(stderr, "do_page_down: moving to line %lu\n", (unsigned long) openfile->current->lineno); #endif } openfile->current_x = actual_x(openfile->current->data, openfile->placewewant); /* Scroll the edit window down a page. */ edit_update(NONE); }