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

Patch 7.3.111

Expand Messages
  • Bram Moolenaar
    Patch 7.3.111 (after 7.3.100) Problem: Executing a :normal command in statusline evaluation causes the cursor to move. (Dominique Pelle) Solution: When
    Message 1 of 1 , Feb 1, 2011
    • 0 Attachment
      Patch 7.3.111 (after 7.3.100)
      Problem: Executing a :normal command in 'statusline' evaluation causes the
      cursor to move. (Dominique Pelle)
      Solution: When updating the cursor for 'cursorbind' allow the cursor beyond
      the end of the line. When evaluating 'statusline' temporarily
      reset 'cursorbind'.
      Files: src/move.c, src/screen.c


      *** ../vim-7.3.110/src/move.c 2011-01-22 21:05:02.000000000 +0100
      --- src/move.c 2011-02-01 17:36:10.000000000 +0100
      ***************
      *** 2846,2851 ****
      --- 2846,2852 ----
      colnr_T col = curwin->w_cursor.col;
      win_T *old_curwin = curwin;
      buf_T *old_curbuf = curbuf;
      + int restart_edit_save;
      # ifdef FEAT_VISUAL
      int old_VIsual_select = VIsual_select;
      int old_VIsual_active = VIsual_active;
      ***************
      *** 2875,2882 ****
      curwin->w_cursor.lnum = line;
      curwin->w_cursor.col = col;

      ! /* Make sure the cursor is in a valid position. */
      check_cursor();
      # ifdef FEAT_MBYTE
      /* Correct cursor for multi-byte character. */
      if (has_mbyte)
      --- 2876,2887 ----
      curwin->w_cursor.lnum = line;
      curwin->w_cursor.col = col;

      ! /* Make sure the cursor is in a valid position. Temporarily set
      ! * "restart_edit" to allow the cursor to be beyond the EOL. */
      ! restart_edit_save = restart_edit;
      ! restart_edit = TRUE;
      check_cursor();
      + restart_edit = restart_edit_save;
      # ifdef FEAT_MBYTE
      /* Correct cursor for multi-byte character. */
      if (has_mbyte)
      *** ../vim-7.3.110/src/screen.c 2010-12-30 14:57:03.000000000 +0100
      --- src/screen.c 2011-02-01 17:45:45.000000000 +0100
      ***************
      *** 6435,6440 ****
      --- 6435,6442 ----
      struct stl_hlrec hltab[STL_MAX_ITEM];
      struct stl_hlrec tabtab[STL_MAX_ITEM];
      int use_sandbox = FALSE;
      + win_T *ewp;
      + int p_crb_save;

      /* setup environment for the task at hand */
      if (wp == NULL)
      ***************
      *** 6513,6526 ****
      if (maxwidth <= 0)
      return;

      /* Make a copy, because the statusline may include a function call that
      * might change the option value and free the memory. */
      stl = vim_strsave(stl);
      ! width = build_stl_str_hl(wp == NULL ? curwin : wp,
      ! buf, sizeof(buf),
      stl, use_sandbox,
      fillchar, maxwidth, hltab, tabtab);
      vim_free(stl);

      /* Make all characters printable. */
      p = transstr(buf);
      --- 6515,6534 ----
      if (maxwidth <= 0)
      return;

      + /* Temporarily reset 'cursorbind', we don't want a side effect from moving
      + * the cursor away and back. */
      + ewp = wp == NULL ? curwin : wp;
      + p_crb_save = ewp->w_p_crb;
      + ewp->w_p_crb = FALSE;
      +
      /* Make a copy, because the statusline may include a function call that
      * might change the option value and free the memory. */
      stl = vim_strsave(stl);
      ! width = build_stl_str_hl(ewp, buf, sizeof(buf),
      stl, use_sandbox,
      fillchar, maxwidth, hltab, tabtab);
      vim_free(stl);
      + ewp->w_p_crb = p_crb_save;

      /* Make all characters printable. */
      p = transstr(buf);
      *** ../vim-7.3.110/src/version.c 2011-02-01 17:12:20.000000000 +0100
      --- src/version.c 2011-02-01 18:00:14.000000000 +0100
      ***************
      *** 716,717 ****
      --- 716,719 ----
      { /* Add new patch number below this line */
      + /**/
      + 111,
      /**/

      --
      hundred-and-one symptoms of being an internet addict:
      177. You log off of your system because it's time to go to work.

      /// 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.