Patch 8.1.0719
Problem:    Too many #ifdefs.
Solution:   Always build with the +visualextra feature.
Files:      src/evalfunc.c, src/version.c, src/normal.c, src/ops.c,
            src/feature.h, runtime/doc/various.txt


*** ../vim-8.1.0718/src/evalfunc.c      2019-01-11 13:42:31.680331155 +0100
--- src/evalfunc.c      2019-01-11 14:13:58.623063385 +0100
***************
*** 6533,6541 ****
        "virtualedit",
  #endif
        "visual",
- #ifdef FEAT_VISUALEXTRA
        "visualextra",
- #endif
        "vreplace",
  #ifdef FEAT_VTP
        "vtp",
--- 6533,6539 ----
*** ../vim-8.1.0718/src/version.c       2019-01-11 14:10:00.348749729 +0100
--- src/version.c       2019-01-11 14:23:42.578954675 +0100
***************
*** 709,719 ****
        "-virtualedit",
  #endif
        "+visual",
- #ifdef FEAT_VISUALEXTRA
        "+visualextra",
- #else
-       "-visualextra",
- #endif
  #ifdef FEAT_VIMINFO
        "+viminfo",
  #else
--- 709,715 ----
*** ../vim-8.1.0718/src/normal.c        2019-01-03 22:57:59.540478092 +0100
--- src/normal.c        2019-01-11 14:14:52.426682428 +0100
***************
*** 1998,2004 ****
        case OP_INSERT:
        case OP_APPEND:
            VIsual_reselect = FALSE;    /* don't reselect now */
- #ifdef FEAT_VISUALEXTRA
            if (empty_region_error)
            {
                vim_beep(BO_OPER);
--- 1998,2003 ----
***************
*** 2035,2058 ****
                else
                    cap->retval |= CA_COMMAND_BUSY;
            }
- #else
-           vim_beep(BO_OPER);
- #endif
            break;
  
        case OP_REPLACE:
            VIsual_reselect = FALSE;    /* don't reselect now */
- #ifdef FEAT_VISUALEXTRA
            if (empty_region_error)
- #endif
            {
                vim_beep(BO_OPER);
                CancelRedo();
            }
- #ifdef FEAT_VISUALEXTRA
            else
            {
! # ifdef FEAT_LINEBREAK
                /* Restore linebreak, so that when the user edits it looks as
                 * before. */
                if (curwin->w_p_lbr != lbr_saved)
--- 2034,2051 ----
                else
                    cap->retval |= CA_COMMAND_BUSY;
            }
            break;
  
        case OP_REPLACE:
            VIsual_reselect = FALSE;    /* don't reselect now */
            if (empty_region_error)
            {
                vim_beep(BO_OPER);
                CancelRedo();
            }
            else
            {
! #ifdef FEAT_LINEBREAK
                /* Restore linebreak, so that when the user edits it looks as
                 * before. */
                if (curwin->w_p_lbr != lbr_saved)
***************
*** 2060,2069 ****
                    curwin->w_p_lbr = lbr_saved;
                    get_op_vcol(oap, redo_VIsual_mode, FALSE);
                }
! # endif
                op_replace(oap, cap->nchar);
            }
- #endif
            break;
  
  #ifdef FEAT_FOLDING
--- 2053,2061 ----
                    curwin->w_p_lbr = lbr_saved;
                    get_op_vcol(oap, redo_VIsual_mode, FALSE);
                }
! #endif
                op_replace(oap, cap->nchar);
            }
            break;
  
  #ifdef FEAT_FOLDING
*** ../vim-8.1.0718/src/ops.c   2018-12-31 23:58:20.246887218 +0100
--- src/ops.c   2019-01-11 14:21:13.747985991 +0100
***************
*** 82,101 ****
      colnr_T   textcol;        /* index of chars (partially) in block */
      colnr_T   start_vcol;     /* start col of 1st char wholly inside block */
      colnr_T   end_vcol;       /* start col of 1st char wholly after block */
- #ifdef FEAT_VISUALEXTRA
      int               is_short;       /* TRUE if line is too short to fit in 
block */
      int               is_MAX;         /* TRUE if curswant==MAXCOL when 
starting */
      int               is_oneChar;     /* TRUE if block within one character */
      int               pre_whitesp;    /* screen cols of ws before block */
      int               pre_whitesp_c;  /* chars of ws before block */
      colnr_T   end_char_vcols; /* number of vcols of post-block char */
- #endif
      colnr_T   start_char_vcols; /* number of vcols of pre-block char */
  };
  
- #ifdef FEAT_VISUALEXTRA
  static void shift_block(oparg_T *oap, int amount);
- #endif
  static int    stuff_yank(int, char_u *);
  static void   put_reedit_in_typebuf(int silent);
  static int    put_in_typebuf(char_u *s, int esc, int colon,
--- 82,97 ----
***************
*** 255,264 ****
        first_char = *ml_get_curline();
        if (first_char == NUL)                          /* empty line */
            curwin->w_cursor.col = 0;
- #ifdef FEAT_VISUALEXTRA
        else if (oap->block_mode)
            shift_block(oap, amount);
- #endif
        else
            /* Move the line right if it doesn't start with '#', 'smartindent'
             * isn't set or 'cindent' isn't set or '#' isn't in 'cino'. */
--- 251,258 ----
***************
*** 322,329 ****
  }
  
  /*
!  * shift the current line one shiftwidth left (if left != 0) or right
!  * leaves cursor on first blank in the line
   */
      void
  shift_line(
--- 316,323 ----
  }
  
  /*
!  * Shift the current line one shiftwidth left (if left != 0) or right
!  * leaves cursor on first blank in the line.
   */
      void
  shift_line(
***************
*** 373,379 ****
        (void)set_indent(count, call_changed_bytes ? SIN_CHANGED : 0);
  }
  
- #if defined(FEAT_VISUALEXTRA) || defined(PROTO)
  /*
   * Shift one line of the current block one shiftwidth right or left.
   * Leaves cursor on first character in block.
--- 367,372 ----
***************
*** 577,585 ****
      p_ri = old_p_ri;
  #endif
  }
- #endif
  
- #ifdef FEAT_VISUALEXTRA
  /*
   * Insert string "s" (b_insert ? before : after) block :AKelly
   * Caller must prepare for undo.
--- 570,576 ----
***************
*** 703,709 ****
  
      State = oldstate;
  }
- #endif
  
  #if defined(FEAT_LISP) || defined(FEAT_CINDENT) || defined(PROTO)
  /*
--- 694,699 ----
***************
*** 2132,2140 ****
  }
  #endif
  
- #if defined(FEAT_VISUALEXTRA) || defined(PROTO)
  
! # ifdef FEAT_MBYTE
  /*
   * Replace the character under the cursor with "c".
   * This takes care of multi-byte characters.
--- 2122,2129 ----
  }
  #endif
  
  
! #ifdef FEAT_MBYTE
  /*
   * Replace the character under the cursor with "c".
   * This takes care of multi-byte characters.
***************
*** 2150,2157 ****
      /* Backup to the replaced character. */
      dec_cursor();
  }
  
- # endif
  /*
   * Replace a whole area with one character.
   */
--- 2139,2146 ----
      /* Backup to the replaced character. */
      dec_cursor();
  }
+ #endif
  
  /*
   * Replace a whole area with one character.
   */
***************
*** 2378,2388 ****
                curwin->w_cursor.col -= (virtcols + 1);
                for (; virtcols >= 0; virtcols--)
                {
! #ifdef FEAT_MBYTE
                     if ((*mb_char2len)(c) > 1)
                       replace_character(c);
                     else
!  #endif
                        PBYTE(curwin->w_cursor, c);
                   if (inc(&curwin->w_cursor) == -1)
                       break;
--- 2367,2377 ----
                curwin->w_cursor.col -= (virtcols + 1);
                for (; virtcols >= 0; virtcols--)
                {
! # ifdef FEAT_MBYTE
                     if ((*mb_char2len)(c) > 1)
                       replace_character(c);
                     else
! # endif
                        PBYTE(curwin->w_cursor, c);
                   if (inc(&curwin->w_cursor) == -1)
                       break;
***************
*** 2406,2412 ****
  
      return OK;
  }
- #endif
  
  static int swapchars(int op_type, pos_T *pos, int length);
  
--- 2395,2400 ----
***************
*** 2627,2633 ****
      return FALSE;
  }
  
- #if defined(FEAT_VISUALEXTRA) || defined(PROTO)
  /*
   * op_insert - Insert and append operators for Visual mode.
   */
--- 2615,2620 ----
***************
*** 2844,2850 ****
        }
      }
  }
- #endif
  
  /*
   * op_change - handle a change operation
--- 2831,2836 ----
***************
*** 2856,2862 ****
  {
      colnr_T           l;
      int                       retval;
- #ifdef FEAT_VISUALEXTRA
      long              offset;
      linenr_T          linenr;
      long              ins_len;
--- 2842,2847 ----
***************
*** 2865,2871 ****
      char_u            *firstline;
      char_u            *ins_text, *newp, *oldp;
      struct block_def  bd;
- #endif
  
      l = oap->start.col;
      if (oap->motion_type == MLINE)
--- 2850,2855 ----
***************
*** 2895,2917 ****
                                                         && !virtual_op)
        inc_cursor();
  
- #ifdef FEAT_VISUALEXTRA
      /* check for still on same line (<CR> in inserted text meaningless) */
      /* skip blank lines too */
      if (oap->block_mode)
      {
! # ifdef FEAT_VIRTUALEDIT
        /* Add spaces before getting the current line length. */
        if (virtual_op && (curwin->w_cursor.coladd > 0
                                                    || gchar_cursor() == NUL))
            coladvance_force(getviscol());
! # endif
        firstline = ml_get(oap->start.lnum);
        pre_textlen = (long)STRLEN(firstline);
        pre_indent = (long)getwhitecols(firstline);
        bd.textcol = curwin->w_cursor.col;
      }
- #endif
  
  #if defined(FEAT_LISP) || defined(FEAT_CINDENT)
      if (oap->motion_type == MLINE)
--- 2879,2899 ----
                                                         && !virtual_op)
        inc_cursor();
  
      /* check for still on same line (<CR> in inserted text meaningless) */
      /* skip blank lines too */
      if (oap->block_mode)
      {
! #ifdef FEAT_VIRTUALEDIT
        /* Add spaces before getting the current line length. */
        if (virtual_op && (curwin->w_cursor.coladd > 0
                                                    || gchar_cursor() == NUL))
            coladvance_force(getviscol());
! #endif
        firstline = ml_get(oap->start.lnum);
        pre_textlen = (long)STRLEN(firstline);
        pre_indent = (long)getwhitecols(firstline);
        bd.textcol = curwin->w_cursor.col;
      }
  
  #if defined(FEAT_LISP) || defined(FEAT_CINDENT)
      if (oap->motion_type == MLINE)
***************
*** 2920,2926 ****
  
      retval = edit(NUL, FALSE, (linenr_T)1);
  
- #ifdef FEAT_VISUALEXTRA
      /*
       * In Visual block mode, handle copying the new text to all lines of the
       * block.
--- 2902,2907 ----
***************
*** 2953,2959 ****
                    block_prep(oap, &bd, linenr, TRUE);
                    if (!bd.is_short || virtual_op)
                    {
! # ifdef FEAT_VIRTUALEDIT
                        pos_T vpos;
  
                        /* If the block starts in virtual space, count the
--- 2934,2940 ----
                    block_prep(oap, &bd, linenr, TRUE);
                    if (!bd.is_short || virtual_op)
                    {
! #ifdef FEAT_VIRTUALEDIT
                        pos_T vpos;
  
                        /* If the block starts in virtual space, count the
***************
*** 2965,2986 ****
                        }
                        else
                            vpos.coladd = 0;
! # endif
                        oldp = ml_get(linenr);
                        newp = alloc_check((unsigned)(STRLEN(oldp)
! # ifdef FEAT_VIRTUALEDIT
                                                        + vpos.coladd
! # endif
                                                              + ins_len + 1));
                        if (newp == NULL)
                            continue;
                        /* copy up to block start */
                        mch_memmove(newp, oldp, (size_t)bd.textcol);
                        offset = bd.textcol;
! # ifdef FEAT_VIRTUALEDIT
                        vim_memset(newp + offset, ' ', (size_t)vpos.coladd);
                        offset += vpos.coladd;
! # endif
                        mch_memmove(newp + offset, ins_text, (size_t)ins_len);
                        offset += ins_len;
                        oldp += bd.textcol;
--- 2946,2967 ----
                        }
                        else
                            vpos.coladd = 0;
! #endif
                        oldp = ml_get(linenr);
                        newp = alloc_check((unsigned)(STRLEN(oldp)
! #ifdef FEAT_VIRTUALEDIT
                                                        + vpos.coladd
! #endif
                                                              + ins_len + 1));
                        if (newp == NULL)
                            continue;
                        /* copy up to block start */
                        mch_memmove(newp, oldp, (size_t)bd.textcol);
                        offset = bd.textcol;
! #ifdef FEAT_VIRTUALEDIT
                        vim_memset(newp + offset, ' ', (size_t)vpos.coladd);
                        offset += vpos.coladd;
! #endif
                        mch_memmove(newp + offset, ins_text, (size_t)ins_len);
                        offset += ins_len;
                        oldp += bd.textcol;
***************
*** 2995,3001 ****
            vim_free(ins_text);
        }
      }
- #endif
  
      return retval;
  }
--- 2976,2981 ----
***************
*** 5415,5427 ****
      bdp->textlen = 0;
      bdp->start_vcol = 0;
      bdp->end_vcol = 0;
- #ifdef FEAT_VISUALEXTRA
      bdp->is_short = FALSE;
      bdp->is_oneChar = FALSE;
      bdp->pre_whitesp = 0;
      bdp->pre_whitesp_c = 0;
      bdp->end_char_vcols = 0;
- #endif
      bdp->start_char_vcols = 0;
  
      line = ml_get(lnum);
--- 5395,5405 ----
***************
*** 5432,5438 ****
        /* Count a tab for what it's worth (if list mode not on) */
        incr = lbr_chartabsize(line, pstart, (colnr_T)bdp->start_vcol);
        bdp->start_vcol += incr;
- #ifdef FEAT_VISUALEXTRA
        if (VIM_ISWHITE(*pstart))
        {
            bdp->pre_whitesp += incr;
--- 5410,5415 ----
***************
*** 5443,5449 ****
            bdp->pre_whitesp = 0;
            bdp->pre_whitesp_c = 0;
        }
- #endif
        prev_pstart = pstart;
        MB_PTR_ADV(pstart);
      }
--- 5420,5425 ----
***************
*** 5451,5459 ****
      if (bdp->start_vcol < oap->start_vcol)    /* line too short */
      {
        bdp->end_vcol = bdp->start_vcol;
- #ifdef FEAT_VISUALEXTRA
        bdp->is_short = TRUE;
- #endif
        if (!is_del || oap->op_type == OP_APPEND)
            bdp->endspaces = oap->end_vcol - oap->start_vcol + 1;
      }
--- 5427,5433 ----
***************
*** 5468,5476 ****
        bdp->end_vcol = bdp->start_vcol;
        if (bdp->end_vcol > oap->end_vcol)      /* it's all in one character */
        {
- #ifdef FEAT_VISUALEXTRA
            bdp->is_oneChar = TRUE;
- #endif
            if (oap->op_type == OP_INSERT)
                bdp->endspaces = bdp->start_char_vcols - bdp->startspaces;
            else if (oap->op_type == OP_APPEND)
--- 5442,5448 ----
***************
*** 5507,5515 ****
                        || oap->op_type == OP_APPEND
                        || oap->op_type == OP_REPLACE)) /* line too short */
            {
- #ifdef FEAT_VISUALEXTRA
                bdp->is_short = TRUE;
- #endif
                /* Alternative: include spaces to fill up the block.
                 * Disadvantage: can lead to trailing spaces when the line is
                 * short where the text is put */
--- 5479,5485 ----
***************
*** 5531,5539 ****
                }
            }
        }
- #ifdef FEAT_VISUALEXTRA
        bdp->end_char_vcols = incr;
- #endif
        if (is_del && bdp->startspaces)
            pstart = prev_pstart;
        bdp->textlen = (int)(pend - pstart);
--- 5501,5507 ----
***************
*** 6624,6630 ****
  }
  
  /*
!  * Get the selected text and put it in the gui selection register '*' or '+'.
   */
      void
  clip_get_selection(VimClipboard *cbd)
--- 6592,6598 ----
  }
  
  /*
!  * Get the selected text and put it in register '*' or '+'.
   */
      void
  clip_get_selection(VimClipboard *cbd)
*** ../vim-8.1.0718/src/feature.h       2018-12-21 11:48:48.320680492 +0100
--- src/feature.h       2019-01-11 14:24:15.922722850 +0100
***************
*** 194,203 ****
  /*
   * +visual            Visual mode - now always included.
   * +visualextra               Extra features for Visual mode (mostly block 
operators).
   */
- #ifdef FEAT_NORMAL
- # define FEAT_VISUALEXTRA
- #endif
  
  /*
   * +virtualedit               'virtualedit' option and its implementation
--- 194,201 ----
  /*
   * +visual            Visual mode - now always included.
   * +visualextra               Extra features for Visual mode (mostly block 
operators).
+  *                    Now always included.
   */
  
  /*
   * +virtualedit               'virtualedit' option and its implementation
*** ../vim-8.1.0718/runtime/doc/various.txt     2019-01-08 22:02:36.040297337 
+0100
--- runtime/doc/various.txt     2019-01-11 14:23:23.643086212 +0100
***************
*** 465,477 ****
                        since 8.0.1118.
                        in sync with the |+windows| feature
  N  *+virtualedit*     |'virtualedit'|
! S  *+visual*          Visual mode |Visual-mode| Always enabled since 7.4.200.
! N  *+visualextra*     extra Visual mode commands |blockwise-operators|
  T  *+vreplace*                |gR| and |gr|
     *+vtp*             on MS-Windows console: support for 'termguicolors'
  N  *+wildignore*      |'wildignore'|
  N  *+wildmenu*                |'wildmenu'|
!    *+windows*         more than one window; Always enabled since 8.0.1118.
  m  *+writebackup*     |'writebackup'| is default on
  m  *+xim*             X input method |xim|
     *+xfontset*                X fontset support |xfontset|
--- 465,477 ----
                        since 8.0.1118.
                        in sync with the |+windows| feature
  N  *+virtualedit*     |'virtualedit'|
! T  *+visual*          Visual mode |Visual-mode| Always enabled since 7.4.200.
! T  *+visualextra*     extra Visual mode commands |blockwise-operators|
  T  *+vreplace*                |gR| and |gr|
     *+vtp*             on MS-Windows console: support for 'termguicolors'
  N  *+wildignore*      |'wildignore'|
  N  *+wildmenu*                |'wildmenu'|
! T  *+windows*         more than one window; Always enabled since 8.0.1118.
  m  *+writebackup*     |'writebackup'| is default on
  m  *+xim*             X input method |xim|
     *+xfontset*                X fontset support |xfontset|
*** ../vim-8.1.0718/src/version.c       2019-01-11 14:10:00.348749729 +0100
--- src/version.c       2019-01-11 14:23:42.578954675 +0100
***************
*** 801,802 ****
--- 797,800 ----
  {   /* Add new patch number below this line */
+ /**/
+     719,
  /**/

-- 
hundred-and-one symptoms of being an internet addict:
158. You get a tuner card so you can watch TV while surfing.

 /// Bram Moolenaar -- [email protected] -- 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

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui