]> granicus.if.org Git - vim/commitdiff
patch 7.4.2144 v7.4.2144
authorBram Moolenaar <Bram@vim.org>
Tue, 2 Aug 2016 19:41:28 +0000 (21:41 +0200)
committerBram Moolenaar <Bram@vim.org>
Tue, 2 Aug 2016 19:41:28 +0000 (21:41 +0200)
Problem:    On MS-Windows quickix does not handle a line with 1023 bytes
            ending in CR-LF properly.
Solution:   Don't consider CR a line break. (Ken Takata)

src/quickfix.c
src/version.c

index b6071709df80463b35d17b96426b04d593877952..aa94ae69a3ee656acd9d25bb27eadb7b5bc7e5d7 100644 (file)
@@ -651,11 +651,7 @@ qf_get_next_file_line(qfstate_T *state)
 
     discard = FALSE;
     state->linelen = (int)STRLEN(IObuff);
-    if (state->linelen == IOSIZE - 1 && !(IObuff[state->linelen - 1] == '\n'
-#ifdef USE_CRNL
-               || IObuff[state->linelen - 1] == '\r'
-#endif
-               ))
+    if (state->linelen == IOSIZE - 1 && !(IObuff[state->linelen - 1] == '\n'))
     {
        /*
         * The current line exceeds IObuff, continue reading using
@@ -680,11 +676,7 @@ qf_get_next_file_line(qfstate_T *state)
                break;
            state->linelen = (int)STRLEN(state->growbuf + growbuflen);
            growbuflen += state->linelen;
-           if ((state->growbuf)[growbuflen - 1] == '\n'
-#ifdef USE_CRNL
-                   || (state->growbuf)[growbuflen - 1] == '\r'
-#endif
-              )
+           if ((state->growbuf)[growbuflen - 1] == '\n')
                break;
            if (state->growbufsiz == LINE_MAXLEN)
            {
@@ -708,11 +700,7 @@ qf_get_next_file_line(qfstate_T *state)
             */
            if (fgets((char *)IObuff, IOSIZE, state->fd) == NULL
                    || (int)STRLEN(IObuff) < IOSIZE - 1
-                   || IObuff[IOSIZE - 1] == '\n'
-#ifdef USE_CRNL
-                   || IObuff[IOSIZE - 1] == '\r'
-#endif
-              )
+                   || IObuff[IOSIZE - 1] == '\n')
                break;
        }
 
@@ -757,11 +745,13 @@ qf_get_nextline(qfstate_T *state)
 
     /* remove newline/CR from the line */
     if (state->linelen > 0 && state->linebuf[state->linelen - 1] == '\n')
+    {
        state->linebuf[state->linelen - 1] = NUL;
 #ifdef USE_CRNL
-    if (state->linelen > 0 && state->linebuf[state->linelen - 1] == '\r')
-       state->linebuf[state->linelen - 1] = NUL;
+       if (state->linelen > 1 && state->linebuf[state->linelen - 2] == '\r')
+           state->linebuf[state->linelen - 2] = NUL;
 #endif
+    }
 
 #ifdef FEAT_MBYTE
     remove_bom(state->linebuf);
index 1c7d2c388507be416baa727914b0f1ac4f7be561..a6f179439446ae77f0cb7d2b6a997429fe0d91ea 100644 (file)
@@ -763,6 +763,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    2144,
 /**/
     2143,
 /**/