/* Move down to the beginning of the last line of the current paragraph. * Then move down one line farther if there is such a line, or to the * end of the current line if not. If allow_update is TRUE, update the * screen afterwards. A line is the last line of a paragraph if it is * in a paragraph, and the next line either is the beginning line of a * paragraph or isn't in a paragraph. */ void do_para_end(bool allow_update) { filestruct *const current_save = openfile->current; const size_t pww_save = openfile->placewewant; while (openfile->current != openfile->filebot && !inpar(openfile->current)) openfile->current = openfile->current->next; while (openfile->current != openfile->filebot && inpar(openfile->current->next) && !begpar(openfile->current->next)) { openfile->current = openfile->current->next; openfile->current_y++; } if (openfile->current != openfile->filebot) { openfile->current = openfile->current->next; openfile->current_x = 0; openfile->placewewant = 0; } else { openfile->current_x = strlen(openfile->current->data); openfile->placewewant = xplustabs(); } if (allow_update) edit_redraw(current_save, pww_save); }
/* Move up to the beginning of the last beginning-of-paragraph line * before the current line. If allow_update is TRUE, update the screen * afterwards. */ void do_para_begin(bool allow_update) { filestruct *was_current = openfile->current; if (openfile->current != openfile->fileage) { do { openfile->current = openfile->current->prev; openfile->current_y--; } while (!begpar(openfile->current)); } openfile->current_x = 0; if (allow_update) edit_redraw(was_current); }
/* Move up to the beginning of the last beginning-of-paragraph line * before the current line. If allow_update is TRUE, update the screen * afterwards. */ void do_para_begin(bool allow_update) { filestruct *current_save = openfile->current; const size_t pww_save = openfile->placewewant; if (openfile->current != openfile->fileage) { do { openfile->current = openfile->current->prev; openfile->current_y--; } while (!begpar(openfile->current)); } openfile->current_x = 0; openfile->placewewant = 0; if (allow_update) edit_redraw(current_save, pww_save); }
/* Move down to the beginning of the last line of the current paragraph. * Then move down one line farther if there is such a line, or to the * end of the current line if not. If allow_update is TRUE, update the * screen afterwards. A line is the last line of a paragraph if it is * in a paragraph, and the next line either is the beginning line of a * paragraph or isn't in a paragraph. */ void do_para_end(bool allow_update) { filestruct *was_current = openfile->current; while (openfile->current != openfile->filebot && !inpar(openfile->current)) openfile->current = openfile->current->next; while (openfile->current != openfile->filebot && inpar(openfile->current->next) && !begpar(openfile->current->next)) { openfile->current = openfile->current->next; openfile->current_y++; } if (openfile->current != openfile->filebot) { openfile->current = openfile->current->next; openfile->current_x = 0; } else openfile->current_x = strlen(openfile->current->data); if (allow_update) edit_redraw(was_current); }