Loading ...
Sorry, an error occurred while loading the content.

Patch 7.3.150

Expand Messages
  • Bram Moolenaar
    Patch 7.3.150 Problem: readline() does not return the last line when the NL is missing. (Hong Xu) Solution: When at the end of the file Also check for a
    Message 1 of 1 , Apr 1, 2011
    • 0 Attachment
      Patch 7.3.150
      Problem: readline() does not return the last line when the NL is missing.
      (Hong Xu)
      Solution: When at the end of the file Also check for a previous line.
      Files: src/eval.c


      *** ../vim-7.3.149/src/eval.c 2011-03-27 16:03:09.000000000 +0200
      --- src/eval.c 2011-04-01 16:06:04.000000000 +0200
      ***************
      *** 14305,14313 ****
      {
      if (buf[filtd] == '\n' || readlen <= 0)
      {
      ! /* Only when in binary mode add an empty list item when the
      ! * last line ends in a '\n'. */
      ! if (!binary && readlen == 0 && filtd == 0)
      break;

      /* Found end-of-line or end-of-file: add a text line to the
      --- 14305,14313 ----
      {
      if (buf[filtd] == '\n' || readlen <= 0)
      {
      ! /* In binary mode add an empty list item when the last
      ! * non-empty line ends in a '\n'. */
      ! if (!binary && readlen == 0 && filtd == 0 && prev == NULL)
      break;

      /* Found end-of-line or end-of-file: add a text line to the
      ***************
      *** 14372,14396 ****

      if (tolist == 0)
      {
      ! /* "buf" is full, need to move text to an allocated buffer */
      ! if (prev == NULL)
      {
      ! prev = vim_strnsave(buf, buflen);
      ! prevlen = buflen;
      ! }
      ! else
      ! {
      ! s = alloc((unsigned)(prevlen + buflen));
      ! if (s != NULL)
      {
      ! mch_memmove(s, prev, prevlen);
      ! mch_memmove(s + prevlen, buf, buflen);
      ! vim_free(prev);
      ! prev = s;
      ! prevlen += buflen;
      }
      }
      - filtd = 0;
      }
      else
      {
      --- 14372,14399 ----

      if (tolist == 0)
      {
      ! if (buflen >= FREAD_SIZE / 2)
      {
      ! /* "buf" is full, need to move text to an allocated buffer */
      ! if (prev == NULL)
      ! {
      ! prev = vim_strnsave(buf, buflen);
      ! prevlen = buflen;
      ! }
      ! else
      {
      ! s = alloc((unsigned)(prevlen + buflen));
      ! if (s != NULL)
      ! {
      ! mch_memmove(s, prev, prevlen);
      ! mch_memmove(s + prevlen, buf, buflen);
      ! vim_free(prev);
      ! prev = s;
      ! prevlen += buflen;
      ! }
      }
      + filtd = 0;
      }
      }
      else
      {
      *** ../vim-7.3.149/src/version.c 2011-04-01 15:33:54.000000000 +0200
      --- src/version.c 2011-04-01 16:04:42.000000000 +0200
      ***************
      *** 716,717 ****
      --- 716,719 ----
      { /* Add new patch number below this line */
      + /**/
      + 150,
      /**/

      --
      ARTHUR: What are you going to do. bleed on me?
      "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD

      /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
      /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
      \\\ an exciting new programming language -- http://www.Zimbu.org ///
      \\\ help me help AIDS victims -- http://ICCF-Holland.org ///

      --
      You received this message from the "vim_dev" maillist.
      Do not top-post! Type your reply below the text you are replying to.
      For more information, visit http://www.vim.org/maillist.php
    Your message has been successfully submitted and would be delivered to recipients shortly.