nano

nano with my custom patches
git clone git://bsandro.tech/nano
Log | Files | Refs | README | LICENSE

commit c5b8f52c071e8a94f6a1db480c95dad0a415847a
parent bcdc90e85fe0e2fbd563a1160ea463580aeb0aa0
Author: Benno Schulenberg <bensberg@justemail.net>
Date:   Sun, 17 Apr 2016 12:34:07 +0200

inserting: don't bother zero-terminating every single character

Just let read_line() zero-terminate the intermediate buffer when
the line is complete.

Diffstat:
Msrc/files.c | 6++----
1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/src/files.c b/src/files.c @@ -685,6 +685,7 @@ filestruct *read_line(char *buf, size_t buf_len, filestruct *prevnode) /* Convert nulls to newlines. buf_len is the string's real length. */ unsunder(buf, buf_len); + buf[buf_len] = '\0'; assert(openfile->fileage != NULL && strlen(buf) == buf_len); @@ -778,8 +779,7 @@ void read_file(FILE *f, int fd, const char *filename, bool undoable, bool checkw fileptr = read_line(buf, len, fileptr); num_lines++; - /* Reset buffer and length in preparation for the next line. */ - buf[0] = '\0'; + /* Reset the length in preparation for the next line. */ len = 0; #ifndef NANO_TINY /* If it's a Mac file ('\r' without '\n' on the first line if we @@ -800,7 +800,6 @@ void read_file(FILE *f, int fd, const char *filename, bool undoable, bool checkw /* Store the character after the \r as the first character * of the next line. */ buf[0] = input; - buf[1] = '\0'; len = 1; #endif } else { @@ -816,7 +815,6 @@ void read_file(FILE *f, int fd, const char *filename, bool undoable, bool checkw } buf[len - 1] = input; - buf[len] = '\0'; } }