From 0319176f2df3db63b6ebeec2258bf1eaa7fa7e3d Mon Sep 17 00:00:00 2001 From: Chris Allegretta Date: Sat, 22 Sep 2001 06:38:38 +0000 Subject: [PATCH] More Mac file fixes git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@777 35c25a1d-7b9e-4130-9fde-d3aeb78583b8 --- files.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/files.c b/files.c index bb0d35dd..c210b240 100644 --- a/files.c +++ b/files.c @@ -125,6 +125,7 @@ filestruct *read_line(char *buf, filestruct * prev, int *line1ins) strcpy(fileptr->data, buf); #ifndef NANO_SMALL + /* If it's a DOS file (CRLF), strip out the CR part*/ if (buf[strlen(buf) - 1] == '\r') { fileptr->data[strlen(buf) - 1] = 0; totsize--; @@ -184,15 +185,21 @@ int read_file(int fd, char *filename, int quiet) /* Read the entire file into file struct */ while ((size = read_byte(fd, filename, input)) > 0) { linetemp = 0; - if (input[0] == '\n' -#ifndef NANO_SMALL - || (ISSET(MAC_FILE) && input[0] == '\r') -#endif - ) { + + if (input[0] == '\n') { fileptr = read_line(buf, fileptr, &line1ins); num_lines++; buf[0] = 0; i = 0; +#ifndef NANO_SMALL + /* If it's a Mac file (no LF just a CR), handle it! */ + } else if (i > 0 && buf[i-1] == '\r') { + fileptr = read_line(buf, fileptr, &line1ins); + num_lines++; + buf[0] = input[0]; + buf[1] = 0; + i = 1; +#endif } else { /* Now we allocate a bigger buffer 128 characters at a time. If we allocate a lot of space for one line, we may indeed -- 2.39.5