softwrap: count softwrapped chunks properly in read_file()
Use less_than_a_screenful() again, just as in do_uncut_text().master
parent
4f9c563e6b
commit
fd82989e29
|
@ -742,6 +742,8 @@ void read_file(FILE *f, int fd, const char *filename, bool undoable,
|
||||||
{
|
{
|
||||||
ssize_t was_lineno = openfile->current->lineno;
|
ssize_t was_lineno = openfile->current->lineno;
|
||||||
/* The line number where we start the insertion. */
|
/* The line number where we start the insertion. */
|
||||||
|
size_t was_leftedge = 0;
|
||||||
|
/* The leftedge where we start the insertion. */
|
||||||
size_t num_lines = 0;
|
size_t num_lines = 0;
|
||||||
/* The number of lines in the file. */
|
/* The number of lines in the file. */
|
||||||
size_t len = 0;
|
size_t len = 0;
|
||||||
|
@ -771,6 +773,9 @@ void read_file(FILE *f, int fd, const char *filename, bool undoable,
|
||||||
#ifndef NANO_TINY
|
#ifndef NANO_TINY
|
||||||
if (undoable)
|
if (undoable)
|
||||||
add_undo(INSERT);
|
add_undo(INSERT);
|
||||||
|
|
||||||
|
if (ISSET(SOFTWRAP))
|
||||||
|
was_leftedge = (xplustabs() / editwincols) * editwincols;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Create an empty buffer. */
|
/* Create an empty buffer. */
|
||||||
|
@ -919,7 +924,8 @@ void read_file(FILE *f, int fd, const char *filename, bool undoable,
|
||||||
statusline(HUSH, P_("Read %lu line", "Read %lu lines",
|
statusline(HUSH, P_("Read %lu line", "Read %lu lines",
|
||||||
(unsigned long)num_lines), (unsigned long)num_lines);
|
(unsigned long)num_lines), (unsigned long)num_lines);
|
||||||
|
|
||||||
if (openfile->current->lineno - was_lineno < editwinrows)
|
/* If we inserted less than a screenful, don't center the cursor. */
|
||||||
|
if (less_than_a_screenful(was_lineno, was_leftedge))
|
||||||
focusing = FALSE;
|
focusing = FALSE;
|
||||||
|
|
||||||
#ifndef NANO_TINY
|
#ifndef NANO_TINY
|
||||||
|
|
Loading…
Reference in New Issue