Patch 8.1.2371
Problem:    FEAT_TEXT_PROP is a confusing name.
Solution:   Use FEAT_PROP_POPUP. (Naruhiko Nishino, closes #5291)
Files:      runtime/doc/popup.txt, src/beval.c, src/buffer.c, src/change.c,
            src/drawline.c, src/drawscreen.c, src/edit.c, src/eval.c,
            src/evalbuffer.c, src/evalfunc.c, src/evalwindow.c, src/ex_cmds.c,
            src/ex_docmd.c, src/feature.h, src/fileio.c, src/getchar.c,
            src/globals.h, src/gui.c, src/gui_w32.c, src/indent.c,
            src/insexpand.c, src/macros.h, src/main.c, src/memline.c,
            src/misc2.c, src/mouse.c, src/move.c, src/ops.c, src/option.h,
            src/optiondefs.h, src/optionstr.c, src/popupmenu.c,
            src/popupwin.c, src/proto.h, src/screen.c, src/search.c,
            src/sign.c, src/structs.h, src/tag.c, src/testdir/runtest.vim,
            src/testdir/test_execute_func.vim, src/testdir/test_popupwin.vim,
            src/testdir/test_popupwin_textprop.vim, src/textprop.c, src/ui.c,
            src/version.c, src/vim.h, src/window.c


*** ../vim-8.1.2370/runtime/doc/popup.txt       2019-11-16 18:21:57.990848019 
+0100
--- runtime/doc/popup.txt       2019-11-30 22:40:44.381228572 +0100
***************
*** 1,10 ****
! *popup.txt*  For Vim version 8.1.  Last change: 2019 Jul 04
  
  
                  VIM REFERENCE MANUAL    by Bram Moolenaar
  
  
! Displaying text in a floating window.                 *popup* *popup-window*
  
  
  1. Introduction                       |popup-intro|
--- 1,10 ----
! *popup.txt*  For Vim version 8.1.  Last change: 2019 Nov 30
  
  
                  VIM REFERENCE MANUAL    by Bram Moolenaar
  
  
! Displaying text in a floating window. *popup* *popup-window* *popupwin*
  
  
  1. Introduction                       |popup-intro|
***************
*** 24,30 ****
  4. Examples                   |popup-examples|
  
  
! {not available if the |+textprop| feature was disabled at compile time}
  
  ==============================================================================
  1. Introduction                                               *popup-intro*
--- 24,30 ----
  4. Examples                   |popup-examples|
  
  
! {not available if the |+popupwin| feature was disabled at compile time}
  
  ==============================================================================
  1. Introduction                                               *popup-intro*
***************
*** 863,869 ****
        Tab             accept current suggestion
  
  A mouse click arrives as <LeftMouse>.  The coordinates can be obtained with
! |mousegetpos()|.
  
  Vim provides standard filters |popup_filter_menu()| and
  |popup_filter_yesno()|.
--- 863,869 ----
        Tab             accept current suggestion
  
  A mouse click arrives as <LeftMouse>.  The coordinates can be obtained with
! |getmousepos()|.
  
  Vim provides standard filters |popup_filter_menu()| and
  |popup_filter_yesno()|.
*** ../vim-8.1.2370/src/beval.c 2019-11-30 20:52:21.790719434 +0100
--- src/beval.c 2019-11-30 22:40:44.381228572 +0100
***************
*** 10,16 ****
  
  #include "vim.h"
  
! #if defined(FEAT_BEVAL) || defined(FEAT_TEXT_PROP) || defined(PROTO)
  /*
   * Find text under the mouse position "row" / "col".
   * If "getword" is TRUE the returned text in "*textp" is not the whole line 
but
--- 10,16 ----
  
  #include "vim.h"
  
! #if defined(FEAT_BEVAL) || defined(FEAT_PROP_POPUP) || defined(PROTO)
  /*
   * Find text under the mouse position "row" / "col".
   * If "getword" is TRUE the returned text in "*textp" is not the whole line 
but
*** ../vim-8.1.2370/src/buffer.c        2019-11-30 20:52:21.790719434 +0100
--- src/buffer.c        2019-11-30 22:40:44.385228554 +0100
***************
*** 861,867 ****
  #ifdef FEAT_SYN_HL
      syntax_clear(&buf->b_s);      // reset syntax info
  #endif
! #ifdef FEAT_TEXT_PROP
      clear_buf_prop_types(buf);
  #endif
      buf->b_flags &= ~BF_READERR;    // a read error is no longer relevant
--- 861,867 ----
  #ifdef FEAT_SYN_HL
      syntax_clear(&buf->b_s);      // reset syntax info
  #endif
! #ifdef FEAT_PROP_POPUP
      clear_buf_prop_types(buf);
  #endif
      buf->b_flags &= ~BF_READERR;    // a read error is no longer relevant
***************
*** 5522,5528 ****
        if (bt_prompt(buf))
            return (char_u *)_("[Prompt]");
  #endif
! #ifdef FEAT_TEXT_PROP
        if (bt_popup(buf))
            return (char_u *)_("[Popup]");
  #endif
--- 5522,5528 ----
        if (bt_prompt(buf))
            return (char_u *)_("[Prompt]");
  #endif
! #ifdef FEAT_PROP_POPUP
        if (bt_popup(buf))
            return (char_u *)_("[Popup]");
  #endif
*** ../vim-8.1.2370/src/change.c        2019-11-30 20:52:21.794719419 +0100
--- src/change.c        2019-11-30 22:40:44.385228554 +0100
***************
*** 698,704 ****
      static void
  inserted_bytes(linenr_T lnum, colnr_T col, int added UNUSED)
  {
! #ifdef FEAT_TEXT_PROP
      if (curbuf->b_has_textprop && added != 0)
        adjust_prop_columns(lnum, col, added, 0);
  #endif
--- 698,704 ----
      static void
  inserted_bytes(linenr_T lnum, colnr_T col, int added UNUSED)
  {
! #ifdef FEAT_PROP_POPUP
      if (curbuf->b_has_textprop && added != 0)
        adjust_prop_columns(lnum, col, added, 0);
  #endif
***************
*** 1289,1295 ****
      mch_memmove(newp + col, oldp + col + count, (size_t)movelen);
      if (alloc_newp)
        ml_replace(lnum, newp, FALSE);
! #ifdef FEAT_TEXT_PROP
      else
      {
        // Also move any following text properties.
--- 1289,1295 ----
      mch_memmove(newp + col, oldp + col + count, (size_t)movelen);
      if (alloc_newp)
        ml_replace(lnum, newp, FALSE);
! #ifdef FEAT_PROP_POPUP
      else
      {
        // Also move any following text properties.
***************
*** 2075,2081 ****
            )
            mark_adjust(curwin->w_cursor.lnum + 1, (linenr_T)MAXLNUM, 1L, 0L);
        did_append = TRUE;
! #ifdef FEAT_TEXT_PROP
        if ((State & INSERT) && !(State & VREPLACE_FLAG))
            // properties after the split move to the next line
            adjust_props_for_split(curwin->w_cursor.lnum, curwin->w_cursor.lnum,
--- 2075,2081 ----
            )
            mark_adjust(curwin->w_cursor.lnum + 1, (linenr_T)MAXLNUM, 1L, 0L);
        did_append = TRUE;
! #ifdef FEAT_PROP_POPUP
        if ((State & INSERT) && !(State & VREPLACE_FLAG))
            // properties after the split move to the next line
            adjust_props_for_split(curwin->w_cursor.lnum, curwin->w_cursor.lnum,
*** ../vim-8.1.2370/src/drawline.c      2019-11-26 22:38:54.383300529 +0100
--- src/drawline.c      2019-11-30 22:40:44.385228554 +0100
***************
*** 182,188 ****
  }
  #endif
  
! #ifdef FEAT_TEXT_PROP
  static textprop_T     *current_text_props = NULL;
  static buf_T          *current_buf = NULL;
  
--- 182,188 ----
  }
  #endif
  
! #ifdef FEAT_PROP_POPUP
  static textprop_T     *current_text_props = NULL;
  static buf_T          *current_buf = NULL;
  
***************
*** 297,303 ****
      int               *color_cols = NULL;     // pointer to according columns 
array
  #endif
      int               eol_hl_off = 0;         // 1 if highlighted char after 
EOL
! #ifdef FEAT_TEXT_PROP
      int               text_prop_count;
      int               text_prop_next = 0;     // next text property to use
      textprop_T        *text_props = NULL;
--- 297,303 ----
      int               *color_cols = NULL;     // pointer to according columns 
array
  #endif
      int               eol_hl_off = 0;         // 1 if highlighted char after 
EOL
! #ifdef FEAT_PROP_POPUP
      int               text_prop_count;
      int               text_prop_next = 0;     // next text property to use
      textprop_T        *text_props = NULL;
***************
*** 752,758 ****
        area_highlighting = TRUE;
      }
  
! #ifdef FEAT_TEXT_PROP
      if (WIN_IS_POPUP(wp))
        screen_line_flags |= SLF_POPUP;
  #endif
--- 752,758 ----
        area_highlighting = TRUE;
      }
  
! #ifdef FEAT_PROP_POPUP
      if (WIN_IS_POPUP(wp))
        screen_line_flags |= SLF_POPUP;
  #endif
***************
*** 924,930 ****
      }
  #endif
  
! #ifdef FEAT_TEXT_PROP
      {
        char_u *prop_start;
  
--- 924,930 ----
      }
  #endif
  
! #ifdef FEAT_PROP_POPUP
      {
        char_u *prop_start;
  
***************
*** 1347,1353 ****
            }
  #endif
  
! #ifdef FEAT_TEXT_PROP
            if (text_props != NULL)
            {
                int pi;
--- 1347,1353 ----
            }
  #endif
  
! #ifdef FEAT_PROP_POPUP
            if (text_props != NULL)
            {
                int pi;
***************
*** 1472,1478 ****
  # endif
                }
            }
! # ifdef FEAT_TEXT_PROP
            // Combine text property highlight into syntax highlight.
            if (text_prop_type != NULL)
            {
--- 1472,1478 ----
  # endif
                }
            }
! # ifdef FEAT_PROP_POPUP
            // Combine text property highlight into syntax highlight.
            if (text_prop_type != NULL)
            {
***************
*** 3124,3130 ****
        cap_col = 0;
      }
  #endif
! #ifdef FEAT_TEXT_PROP
      vim_free(text_props);
      vim_free(text_prop_idxs);
  #endif
--- 3124,3130 ----
        cap_col = 0;
      }
  #endif
! #ifdef FEAT_PROP_POPUP
      vim_free(text_props);
      vim_free(text_prop_idxs);
  #endif
*** ../vim-8.1.2370/src/drawscreen.c    2019-11-12 20:49:12.173234318 +0100
--- src/drawscreen.c    2019-11-30 22:40:44.385228554 +0100
***************
*** 149,155 ****
      }
      updating_screen = TRUE;
  
! #ifdef FEAT_TEXT_PROP
      // Update popup_mask if needed.  This may set w_redraw_top and 
w_redraw_bot
      // in some windows.
      may_update_popup_mask(type);
--- 149,155 ----
      }
      updating_screen = TRUE;
  
! #ifdef FEAT_PROP_POPUP
      // Update popup_mask if needed.  This may set w_redraw_top and 
w_redraw_bot
      // in some windows.
      may_update_popup_mask(type);
***************
*** 335,341 ****
      FOR_ALL_WINDOWS(wp)
        wp->w_buffer->b_mod_set = FALSE;
  
! #ifdef FEAT_TEXT_PROP
      // Display popup windows on top of the windows and command line.
      update_popups(win_update);
  #endif
--- 335,341 ----
      FOR_ALL_WINDOWS(wp)
        wp->w_buffer->b_mod_set = FALSE;
  
! #ifdef FEAT_PROP_POPUP
      // Display popup windows on top of the windows and command line.
      update_popups(win_update);
  #endif
***************
*** 2476,2482 ****
            wp->w_filler_rows = wp->w_height - srow;
        }
  #endif
! #ifdef FEAT_TEXT_PROP
        else if (WIN_IS_POPUP(wp))
        {
            // popup line that doesn't fit is left as-is
--- 2476,2482 ----
            wp->w_filler_rows = wp->w_height - srow;
        }
  #endif
! #ifdef FEAT_PROP_POPUP
        else if (WIN_IS_POPUP(wp))
        {
            // popup line that doesn't fit is left as-is
***************
*** 2585,2591 ****
                                                    != (VALID_WCOL|VALID_WROW))
            {
                // A win_line() call applied a fix to screen cursor column to
!               // accomodate concealment of cursor line, but in this call to
                // update_topline() the cursor's row or column got invalidated.
                // If they are left invalid, setcursor() will recompute them
                // but there won't be any further win_line() call to re-fix the
--- 2585,2591 ----
                                                    != (VALID_WCOL|VALID_WROW))
            {
                // A win_line() call applied a fix to screen cursor column to
!               // accommodate concealment of cursor line, but in this call to
                // update_topline() the cursor's row or column got invalidated.
                // If they are left invalid, setcursor() will recompute them
                // but there won't be any further win_line() call to re-fix the
***************
*** 2647,2653 ****
  #ifdef FEAT_SEARCH_EXTRA
      start_search_hl();
  #endif
! #ifdef FEAT_TEXT_PROP
      // Update popup_mask if needed.
      may_update_popup_mask(must_redraw);
  #endif
--- 2647,2653 ----
  #ifdef FEAT_SEARCH_EXTRA
      start_search_hl();
  #endif
! #ifdef FEAT_PROP_POPUP
      // Update popup_mask if needed.
      may_update_popup_mask(must_redraw);
  #endif
***************
*** 2763,2769 ****
            )
        win_redr_status(wp, FALSE);
  
! #ifdef FEAT_TEXT_PROP
      // Display popup windows on top of everything.
      update_popups(win_update);
  #endif
--- 2763,2769 ----
            )
        win_redr_status(wp, FALSE);
  
! #ifdef FEAT_PROP_POPUP
      // Display popup windows on top of everything.
      update_popups(win_update);
  #endif
*** ../vim-8.1.2370/src/edit.c  2019-11-26 19:33:03.454605298 +0100
--- src/edit.c  2019-11-30 22:40:44.385228554 +0100
***************
*** 1417,1423 ****
      /* Trigger CursorMoved if the cursor moved.  Not when the popup menu is
       * visible, the command might delete it. */
      if (ready && (has_cursormovedI()
! # ifdef FEAT_TEXT_PROP
                || popup_visible
  # endif
  # if defined(FEAT_CONCEAL)
--- 1417,1423 ----
      /* Trigger CursorMoved if the cursor moved.  Not when the popup menu is
       * visible, the command might delete it. */
      if (ready && (has_cursormovedI()
! # ifdef FEAT_PROP_POPUP
                || popup_visible
  # endif
  # if defined(FEAT_CONCEAL)
***************
*** 1442,1448 ****
            update_curswant();
            ins_apply_autocmds(EVENT_CURSORMOVEDI);
        }
! #ifdef FEAT_TEXT_PROP
        if (popup_visible)
            popup_check_cursor_pos();
  #endif
--- 1442,1448 ----
            update_curswant();
            ins_apply_autocmds(EVENT_CURSORMOVEDI);
        }
! #ifdef FEAT_PROP_POPUP
        if (popup_visible)
            popup_check_cursor_pos();
  #endif
***************
*** 3775,3781 ****
      cc = replace_pop();
      if (cc > 0)
      {
! #ifdef FEAT_TEXT_PROP
        size_t  len_before = 0;  // init to shut up GCC
  
        if (curbuf->b_has_textprop)
--- 3775,3781 ----
      cc = replace_pop();
      if (cc > 0)
      {
! #ifdef FEAT_PROP_POPUP
        size_t  len_before = 0;  // init to shut up GCC
  
        if (curbuf->b_has_textprop)
***************
*** 3835,3841 ****
        // mark the buffer as changed and prepare for displaying
        changed_bytes(curwin->w_cursor.lnum, curwin->w_cursor.col);
  
! #ifdef FEAT_TEXT_PROP
        if (curbuf->b_has_textprop)
        {
            size_t len_now = STRLEN(ml_get_curline());
--- 3835,3841 ----
        // mark the buffer as changed and prepare for displaying
        changed_bytes(curwin->w_cursor.lnum, curwin->w_cursor.col);
  
! #ifdef FEAT_PROP_POPUP
        if (curbuf->b_has_textprop)
        {
            size_t len_now = STRLEN(ml_get_curline());
***************
*** 4807,4813 ****
        }
  
        /*
!        * Delete upto starting point, start of line or previous word.
         */
        else
        {
--- 4807,4813 ----
        }
  
        /*
!        * Delete up to starting point, start of line or previous word.
         */
        else
        {
***************
*** 5609,5615 ****
                if ((State & REPLACE_FLAG) && !(State & VREPLACE_FLAG))
                    for (temp = i; --temp >= 0; )
                        replace_join(repl_off);
! #ifdef FEAT_TEXT_PROP
                curbuf->b_ml.ml_line_len -= i;
  #endif
            }
--- 5609,5615 ----
                if ((State & REPLACE_FLAG) && !(State & VREPLACE_FLAG))
                    for (temp = i; --temp >= 0; )
                        replace_join(repl_off);
! #ifdef FEAT_PROP_POPUP
                curbuf->b_ml.ml_line_len -= i;
  #endif
            }
*** ../vim-8.1.2370/src/eval.c  2019-11-26 16:50:27.300851212 +0100
--- src/eval.c  2019-11-30 22:40:44.385228554 +0100
***************
*** 3890,3896 ****
      if (aucmd_win != NULL)
        abort = abort || set_ref_in_item(&aucmd_win->w_winvar.di_tv, copyID,
                                                                  NULL, NULL);
! #ifdef FEAT_TEXT_PROP
      for (wp = first_popupwin; wp != NULL; wp = wp->w_next)
        abort = abort || set_ref_in_item(&wp->w_winvar.di_tv, copyID,
                                                                  NULL, NULL);
--- 3890,3896 ----
      if (aucmd_win != NULL)
        abort = abort || set_ref_in_item(&aucmd_win->w_winvar.di_tv, copyID,
                                                                  NULL, NULL);
! #ifdef FEAT_PROP_POPUP
      for (wp = first_popupwin; wp != NULL; wp = wp->w_next)
        abort = abort || set_ref_in_item(&wp->w_winvar.di_tv, copyID,
                                                                  NULL, NULL);
***************
*** 3954,3960 ****
      abort = abort || set_ref_in_term(copyID);
  #endif
  
! #ifdef FEAT_TEXT_PROP
      abort = abort || set_ref_in_popups(copyID);
  #endif
  
--- 3954,3960 ----
      abort = abort || set_ref_in_term(copyID);
  #endif
  
! #ifdef FEAT_PROP_POPUP
      abort = abort || set_ref_in_popups(copyID);
  #endif
  
*** ../vim-8.1.2370/src/evalbuffer.c    2019-10-27 05:12:38.284773720 +0100
--- src/evalbuffer.c    2019-11-30 22:40:44.385228554 +0100
***************
*** 565,571 ****
        dict_add_list(dict, "windows", windows);
      }
  
! #ifdef FEAT_TEXT_PROP
      // List of popup windows displaying this buffer
      windows = list_alloc();
      if (windows != NULL)
--- 565,571 ----
        dict_add_list(dict, "windows", windows);
      }
  
! #ifdef FEAT_PROP_POPUP
      // List of popup windows displaying this buffer
      windows = list_alloc();
      if (windows != NULL)
*** ../vim-8.1.2370/src/evalfunc.c      2019-11-29 23:15:22.116220569 +0100
--- src/evalfunc.c      2019-11-30 22:40:44.385228554 +0100
***************
*** 584,590 ****
  #ifdef FEAT_PERL
      {"perleval",      1, 1, FEARG_1,    f_perleval},
  #endif
! #ifdef FEAT_TEXT_PROP
      {"popup_atcursor",        2, 2, FEARG_1,    f_popup_atcursor},
      {"popup_beval",   2, 2, FEARG_1,    f_popup_beval},
      {"popup_clear",   0, 0, 0,          f_popup_clear},
--- 584,590 ----
  #ifdef FEAT_PERL
      {"perleval",      1, 1, FEARG_1,    f_perleval},
  #endif
! #ifdef FEAT_PROP_POPUP
      {"popup_atcursor",        2, 2, FEARG_1,    f_popup_atcursor},
      {"popup_beval",   2, 2, FEARG_1,    f_popup_beval},
      {"popup_clear",   0, 0, 0,          f_popup_clear},
***************
*** 616,622 ****
      {"prompt_setinterrupt", 2, 2, FEARG_1, f_prompt_setinterrupt},
      {"prompt_setprompt", 2, 2, FEARG_1,          f_prompt_setprompt},
  #endif
! #ifdef FEAT_TEXT_PROP
      {"prop_add",      3, 3, FEARG_1,    f_prop_add},
      {"prop_clear",    1, 3, FEARG_1,    f_prop_clear},
      {"prop_list",     1, 2, FEARG_1,    f_prop_list},
--- 616,622 ----
      {"prompt_setinterrupt", 2, 2, FEARG_1, f_prompt_setinterrupt},
      {"prompt_setprompt", 2, 2, FEARG_1,          f_prompt_setprompt},
  #endif
! #ifdef FEAT_PROP_POPUP
      {"prop_add",      3, 3, FEARG_1,    f_prop_add},
      {"prop_clear",    1, 3, FEARG_1,    f_prop_clear},
      {"prop_list",     1, 2, FEARG_1,    f_prop_list},
***************
*** 3532,3537 ****
--- 3532,3540 ----
        "pythonx",
  # endif
  #endif
+ #ifdef FEAT_PROP_POPUP
+       "popupwin",
+ #endif
  #ifdef FEAT_POSTSCRIPT
        "postscript",
  #endif
***************
*** 3608,3614 ****
  #ifdef FEAT_TEXTOBJ
        "textobjects",
  #endif
! #ifdef FEAT_TEXT_PROP
        "textprop",
  #endif
  #ifdef HAVE_TGETENT
--- 3611,3617 ----
  #ifdef FEAT_TEXTOBJ
        "textobjects",
  #endif
! #ifdef FEAT_PROP_POPUP
        "textprop",
  #endif
  #ifdef HAVE_TGETENT
*** ../vim-8.1.2370/src/evalwindow.c    2019-10-08 22:20:33.527292718 +0200
--- src/evalwindow.c    2019-11-30 22:40:44.389228537 +0100
***************
*** 103,109 ****
                *tpp = tp;
            return wp;
        }
! #ifdef FEAT_TEXT_PROP
      // popup windows are in separate lists
       FOR_ALL_TABPAGES(tp)
         for (wp = tp->tp_first_popupwin; wp != NULL; wp = wp->w_next)
--- 103,109 ----
                *tpp = tp;
            return wp;
        }
! #ifdef FEAT_PROP_POPUP
      // popup windows are in separate lists
       FOR_ALL_TABPAGES(tp)
         for (wp = tp->tp_first_popupwin; wp != NULL; wp = wp->w_next)
***************
*** 181,187 ****
      }
      if (nr >= LOWEST_WIN_ID)
      {
! #ifdef FEAT_TEXT_PROP
        // check tab-local popup windows
        for (wp = tp->tp_first_popupwin; wp != NULL; wp = wp->w_next)
            if (wp->w_id == nr)
--- 181,187 ----
      }
      if (nr >= LOWEST_WIN_ID)
      {
! #ifdef FEAT_PROP_POPUP
        // check tab-local popup windows
        for (wp = tp->tp_first_popupwin; wp != NULL; wp = wp->w_next)
            if (wp->w_id == nr)
***************
*** 199,204 ****
--- 199,205 ----
  /*
   * Find a window: When using a Window ID in any tab page, when using a number
   * in the current tab page.
+  * Returns NULL when not found.
   */
      win_T *
  find_win_by_nr_or_id(typval_T *vp)
***************
*** 1137,1143 ****
        curwin = save_curwin;
        curbuf = curwin->w_buffer;
      }
! # ifdef FEAT_TEXT_PROP
      else if (WIN_IS_POPUP(curwin))
        // original window was closed and now we're in a popup window: Go
        // to the first valid window.
--- 1138,1144 ----
        curwin = save_curwin;
        curbuf = curwin->w_buffer;
      }
! # ifdef FEAT_PROP_POPUP
      else if (WIN_IS_POPUP(curwin))
        // original window was closed and now we're in a popup window: Go
        // to the first valid window.
*** ../vim-8.1.2370/src/ex_cmds.c       2019-11-29 23:15:22.116220569 +0100
--- src/ex_cmds.c       2019-11-30 22:40:44.389228537 +0100
***************
*** 2953,2959 ****
        topline = curwin->w_topline;
        if (!oldbuf)                        /* need to read the file */
        {
! #ifdef FEAT_TEXT_PROP
            // Don't use the swap-exists dialog for a popup window, can't edit
            // the buffer.
            if (WIN_IS_POPUP(curwin))
--- 2953,2959 ----
        topline = curwin->w_topline;
        if (!oldbuf)                        /* need to read the file */
        {
! #ifdef FEAT_PROP_POPUP
            // Don't use the swap-exists dialog for a popup window, can't edit
            // the buffer.
            if (WIN_IS_POPUP(curwin))
***************
*** 2972,2978 ****
            (void)open_buffer(FALSE, eap, readfile_flags);
  #endif
  
! #ifdef FEAT_TEXT_PROP
            curbuf->b_flags &= ~BF_NO_SEA;
  #endif
            if (swap_exists_action == SEA_QUIT)
--- 2972,2978 ----
            (void)open_buffer(FALSE, eap, readfile_flags);
  #endif
  
! #ifdef FEAT_PROP_POPUP
            curbuf->b_flags &= ~BF_NO_SEA;
  #endif
            if (swap_exists_action == SEA_QUIT)
***************
*** 3016,3022 ****
  #ifdef FEAT_TITLE
        maketitle();
  #endif
! #ifdef FEAT_TEXT_PROP
        if (WIN_IS_POPUP(curwin) && curwin->w_p_pvw && retval != FAIL)
            popup_set_title(curwin);
  #endif
--- 3016,3022 ----
  #ifdef FEAT_TITLE
        maketitle();
  #endif
! #ifdef FEAT_PROP_POPUP
        if (WIN_IS_POPUP(curwin) && curwin->w_p_pvw && retval != FAIL)
            popup_set_title(curwin);
  #endif
***************
*** 3900,3906 ****
            int         do_again;       /* do it again after joining lines */
            int         skip_match = FALSE;
            linenr_T    sub_firstlnum;  /* nr of first sub line */
! #ifdef FEAT_TEXT_PROP
            int         apc_flags = APC_SAVE_FOR_UNDO | APC_SUBSTITUTE;
            colnr_T     total_added =  0;
  #endif
--- 3900,3906 ----
            int         do_again;       /* do it again after joining lines */
            int         skip_match = FALSE;
            linenr_T    sub_firstlnum;  /* nr of first sub line */
! #ifdef FEAT_PROP_POPUP
            int         apc_flags = APC_SAVE_FOR_UNDO | APC_SUBSTITUTE;
            colnr_T     total_added =  0;
  #endif
***************
*** 4317,4323 ****
                if (nmatch == 1)
                {
                    p1 = sub_firstline;
! #ifdef FEAT_TEXT_PROP
                    if (curbuf->b_has_textprop)
                    {
                        int bytes_added = sublen - 1 - (regmatch.endpos[0].col
--- 4317,4323 ----
                if (nmatch == 1)
                {
                    p1 = sub_firstline;
! #ifdef FEAT_PROP_POPUP
                    if (curbuf->b_has_textprop)
                    {
                        int bytes_added = sublen - 1 - (regmatch.endpos[0].col
***************
*** 4435,4441 ****
                    if (p1[0] == '\\' && p1[1] != NUL)  /* remove backslash */
                    {
                        STRMOVE(p1, p1 + 1);
! #ifdef FEAT_TEXT_PROP
                        if (curbuf->b_has_textprop)
                        {
                            // When text properties are changed, need to save
--- 4435,4441 ----
                    if (p1[0] == '\\' && p1[1] != NUL)  /* remove backslash */
                    {
                        STRMOVE(p1, p1 + 1);
! #ifdef FEAT_PROP_POPUP
                        if (curbuf->b_has_textprop)
                        {
                            // When text properties are changed, need to save
***************
*** 4464,4470 ****
                                    first_line = lnum;
                                last_line = lnum + 1;
                            }
! #ifdef FEAT_TEXT_PROP
                            adjust_props_for_split(lnum + 1, lnum, plen, 1);
  #endif
                            // all line numbers increase
--- 4464,4470 ----
                                    first_line = lnum;
                                last_line = lnum + 1;
                            }
! #ifdef FEAT_PROP_POPUP
                            adjust_props_for_split(lnum + 1, lnum, plen, 1);
  #endif
                            // all line numbers increase
***************
*** 4993,4999 ****
       */
      if (!curwin->w_p_pvw)
      {
! # ifdef FEAT_TEXT_PROP
        if (use_previewpopup && *p_pvp != NUL)
        {
            wp = popup_find_preview_window();
--- 4993,4999 ----
       */
      if (!curwin->w_p_pvw)
      {
! # ifdef FEAT_PROP_POPUP
        if (use_previewpopup && *p_pvp != NUL)
        {
            wp = popup_find_preview_window();
***************
*** 5028,5034 ****
            /*
             * There is no preview window open yet.  Create one.
             */
! # ifdef FEAT_TEXT_PROP
            if ((use_previewpopup && *p_pvp != NUL)
                                                 || use_popup != USEPOPUP_NONE)
                return popup_create_preview_window(use_popup != USEPOPUP_NONE);
--- 5028,5034 ----
            /*
             * There is no preview window open yet.  Create one.
             */
! # ifdef FEAT_PROP_POPUP
            if ((use_previewpopup && *p_pvp != NUL)
                                                 || use_popup != USEPOPUP_NONE)
                return popup_create_preview_window(use_popup != USEPOPUP_NONE);
*** ../vim-8.1.2370/src/ex_docmd.c      2019-11-26 17:04:53.445152907 +0100
--- src/ex_docmd.c      2019-11-30 22:40:44.389228537 +0100
***************
*** 368,374 ****
  #if !defined(FEAT_X11) || !defined(FEAT_XCLIPBOARD)
  # define ex_xrestore          ex_ni
  #endif
! #if !defined(FEAT_TEXT_PROP)
  # define ex_popupclear                ex_ni
  #endif
  
--- 368,374 ----
  #if !defined(FEAT_X11) || !defined(FEAT_XCLIPBOARD)
  # define ex_xrestore          ex_ni
  #endif
! #if !defined(FEAT_PROP_POPUP)
  # define ex_popupclear                ex_ni
  #endif
  
***************
*** 5013,5019 ****
            ex_win_close(eap->forceit, win, NULL);
            return;
        }
! # ifdef FEAT_TEXT_PROP
      // Also when 'previewpopup' is empty, it might have been cleared.
      popup_close_preview();
  # endif
--- 5013,5019 ----
            ex_win_close(eap->forceit, win, NULL);
            return;
        }
! # ifdef FEAT_PROP_POPUP
      // Also when 'previewpopup' is empty, it might have been cleared.
      popup_close_preview();
  # endif
***************
*** 7812,7818 ****
        redraw_later(VALID);
        win_enter(curwin_save, TRUE);
      }
! # ifdef FEAT_TEXT_PROP
      else if (WIN_IS_POPUP(curwin))
      {
        // can't keep focus in popup window
--- 7812,7818 ----
        redraw_later(VALID);
        win_enter(curwin_save, TRUE);
      }
! # ifdef FEAT_PROP_POPUP
      else if (WIN_IS_POPUP(curwin))
      {
        // can't keep focus in popup window
*** ../vim-8.1.2370/src/feature.h       2019-11-30 19:44:34.843518185 +0100
--- src/feature.h       2019-11-30 22:43:44.324411746 +0100
***************
*** 1151,1160 ****
  #endif
  
  /*
!  * +textprop          Text properties and popup windows
   */
  #if defined(FEAT_EVAL) && defined(FEAT_SYN_HL)
! # define FEAT_TEXT_PROP
  #endif
  
  #if defined(FEAT_SYN_HL) && defined(FEAT_RELTIME)
--- 1151,1160 ----
  #endif
  
  /*
!  * +textprop and +popupwin    Text PROPerties and POPUP windows
   */
  #if defined(FEAT_EVAL) && defined(FEAT_SYN_HL)
! # define FEAT_PROP_POPUP
  #endif
  
  #if defined(FEAT_SYN_HL) && defined(FEAT_RELTIME)
***************
*** 1167,1173 ****
   * +signs             Allow signs to be displayed to the left of text lines.
   *                    Adds the ":sign" command.
   */
! #if defined(FEAT_BIG) || defined(FEAT_NETBEANS_INTG) || 
defined(FEAT_TEXT_PROP)
  # define FEAT_SIGNS
  # if ((defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA)) \
                && defined(HAVE_X11_XPM_H)) \
--- 1167,1173 ----
   * +signs             Allow signs to be displayed to the left of text lines.
   *                    Adds the ":sign" command.
   */
! #if defined(FEAT_BIG) || defined(FEAT_NETBEANS_INTG) || 
defined(FEAT_PROP_POPUP)
  # define FEAT_SIGNS
  # if ((defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA)) \
                && defined(HAVE_X11_XPM_H)) \
*** ../vim-8.1.2370/src/fileio.c        2019-11-17 17:06:25.820081750 +0100
--- src/fileio.c        2019-11-30 22:40:44.389228537 +0100
***************
*** 1078,1084 ****
         * We allocate as much space for the file as we can get, plus
         * space for the old line plus room for one terminating NUL.
         * The amount is limited by the fact that read() only can read
!        * upto max_unsigned characters (and other things).
         */
        if (!skip_read)
        {
--- 1078,1084 ----
         * We allocate as much space for the file as we can get, plus
         * space for the old line plus room for one terminating NUL.
         * The amount is limited by the fact that read() only can read
!        * up to max_unsigned characters (and other things).
         */
        if (!skip_read)
        {
***************
*** 3366,3372 ****
      }
      status_redraw_all();
      redraw_tabline = TRUE;
! #ifdef FEAT_TEXT_PROP
      popup_update_preview_title();
  #endif
  }
--- 3366,3372 ----
      }
      status_redraw_all();
      redraw_tabline = TRUE;
! #ifdef FEAT_PROP_POPUP
      popup_update_preview_title();
  #endif
  }
*** ../vim-8.1.2370/src/getchar.c       2019-11-26 19:33:03.458605263 +0100
--- src/getchar.c       2019-11-30 22:40:44.389228537 +0100
***************
*** 1604,1610 ****
  #if defined(FEAT_XIM) && defined(FEAT_GUI_GTK)
                    || im_is_preediting()
  #endif
! #if defined(FEAT_TEXT_PROP)
                    || popup_no_mapping()
  #endif
                    )
--- 1604,1610 ----
  #if defined(FEAT_XIM) && defined(FEAT_GUI_GTK)
                    || im_is_preediting()
  #endif
! #if defined(FEAT_PROP_POPUP)
                    || popup_no_mapping()
  #endif
                    )
***************
*** 1822,1828 ****
        ui_remove_balloon();
      }
  #endif
! #ifdef FEAT_TEXT_PROP
      if (popup_do_filter(c))
      {
        if (c == Ctrl_C)
--- 1822,1828 ----
        ui_remove_balloon();
      }
  #endif
! #ifdef FEAT_PROP_POPUP
      if (popup_do_filter(c))
      {
        if (c == Ctrl_C)
***************
*** 2038,2044 ****
                if (win == NULL)
                    return;
                (void)mouse_comp_pos(win, &row, &col, &lnum, NULL);
! #ifdef FEAT_TEXT_PROP
                if (WIN_IS_POPUP(win))
                    winnr = 0;
                else
--- 2038,2044 ----
                if (win == NULL)
                    return;
                (void)mouse_comp_pos(win, &row, &col, &lnum, NULL);
! #ifdef FEAT_PROP_POPUP
                if (WIN_IS_POPUP(win))
                    winnr = 0;
                else
***************
*** 2851,2857 ****
  /*
   * get a character: 2. from the typeahead buffer
   */
!                       c = typebuf.tb_buf[typebuf.tb_off] & 255;
                        if (advance)    /* remove chars from tb_buf */
                        {
                            cmd_silent = (typebuf.tb_silent > 0);
--- 2851,2857 ----
  /*
   * get a character: 2. from the typeahead buffer
   */
!                       c = typebuf.tb_buf[typebuf.tb_off];
                        if (advance)    /* remove chars from tb_buf */
                        {
                            cmd_silent = (typebuf.tb_silent > 0);
*** ../vim-8.1.2370/src/globals.h       2019-11-30 19:44:34.843518185 +0100
--- src/globals.h       2019-11-30 22:40:44.389228537 +0100
***************
*** 95,101 ****
   */
  EXTERN short  *TabPageIdxs INIT(= NULL);
  
! #ifdef FEAT_TEXT_PROP
  // Array with size Rows x Columns containing zindex of popups.
  EXTERN short  *popup_mask INIT(= NULL);
  EXTERN short  *popup_mask_next INIT(= NULL);
--- 95,101 ----
   */
  EXTERN short  *TabPageIdxs INIT(= NULL);
  
! #ifdef FEAT_PROP_POPUP
  // Array with size Rows x Columns containing zindex of popups.
  EXTERN short  *popup_mask INIT(= NULL);
  EXTERN short  *popup_mask_next INIT(= NULL);
***************
*** 640,646 ****
  EXTERN win_T  *aucmd_win;     // window used in aucmd_prepbuf()
  EXTERN int    aucmd_win_used INIT(= FALSE);   // aucmd_win is being used
  
! #ifdef FEAT_TEXT_PROP
  EXTERN win_T    *first_popupwin;              // first global popup window
  EXTERN win_T  *popup_dragwin INIT(= NULL);    // popup window being dragged
  
--- 640,646 ----
  EXTERN win_T  *aucmd_win;     // window used in aucmd_prepbuf()
  EXTERN int    aucmd_win_used INIT(= FALSE);   // aucmd_win is being used
  
! #ifdef FEAT_PROP_POPUP
  EXTERN win_T    *first_popupwin;              // first global popup window
  EXTERN win_T  *popup_dragwin INIT(= NULL);    // popup window being dragged
  
*** ../vim-8.1.2370/src/gui.c   2019-11-21 22:14:14.357810945 +0100
--- src/gui.c   2019-11-30 22:40:44.389228537 +0100
***************
*** 4898,4904 ****
      // apply 'mousefocus' and pointer shape
      gui_mouse_focus(x, y);
  
! #ifdef FEAT_TEXT_PROP
      if (popup_visible)
        // Generate a mouse-moved event, so that the popup can perhaps be
        // closed, just like in the terminal.
--- 4898,4904 ----
      // apply 'mousefocus' and pointer shape
      gui_mouse_focus(x, y);
  
! #ifdef FEAT_PROP_POPUP
      if (popup_visible)
        // Generate a mouse-moved event, so that the popup can perhaps be
        // closed, just like in the terminal.
***************
*** 5152,5158 ****
  
      /* Trigger CursorMoved if the cursor moved. */
      if (!finish_op && (has_cursormoved()
! # ifdef FEAT_TEXT_PROP
                || popup_visible
  # endif
  # ifdef FEAT_CONCEAL
--- 5152,5158 ----
  
      /* Trigger CursorMoved if the cursor moved. */
      if (!finish_op && (has_cursormoved()
! # ifdef FEAT_PROP_POPUP
                || popup_visible
  # endif
  # ifdef FEAT_CONCEAL
***************
*** 5162,5168 ****
      {
        if (has_cursormoved())
            apply_autocmds(EVENT_CURSORMOVED, NULL, NULL, FALSE, curbuf);
! #ifdef FEAT_TEXT_PROP
        if (popup_visible)
            popup_check_cursor_pos();
  #endif
--- 5162,5168 ----
      {
        if (has_cursormoved())
            apply_autocmds(EVENT_CURSORMOVED, NULL, NULL, FALSE, curbuf);
! #ifdef FEAT_PROP_POPUP
        if (popup_visible)
            popup_check_cursor_pos();
  #endif
*** ../vim-8.1.2370/src/gui_w32.c       2019-11-29 23:15:22.116220569 +0100
--- src/gui_w32.c       2019-11-30 22:40:44.393228517 +0100
***************
*** 4255,4261 ****
  
      wp = gui_mouse_window(FIND_POPUP);
  
! #ifdef FEAT_TEXT_PROP
      if (wp != NULL && popup_is_popup(wp))
      {
        cmdarg_T cap;
--- 4255,4261 ----
  
      wp = gui_mouse_window(FIND_POPUP);
  
! #ifdef FEAT_PROP_POPUP
      if (wp != NULL && popup_is_popup(wp))
      {
        cmdarg_T cap;
*** ../vim-8.1.2370/src/indent.c        2019-11-21 22:14:14.357810945 +0100
--- src/indent.c        2019-11-30 22:40:44.393228517 +0100
***************
*** 773,779 ****
                // at the start of the indent (replacing spaces with TAB)
                saved_cursor.col = (colnr_T)(s - newline);
        }
! #ifdef FEAT_TEXT_PROP
        {
            int added = ind_len - (colnr_T)(p - oldline);
  
--- 773,779 ----
                // at the start of the indent (replacing spaces with TAB)
                saved_cursor.col = (colnr_T)(s - newline);
        }
! #ifdef FEAT_PROP_POPUP
        {
            int added = ind_len - (colnr_T)(p - oldline);
  
*** ../vim-8.1.2370/src/insexpand.c     2019-11-17 17:06:25.824081732 +0100
--- src/insexpand.c     2019-11-30 22:40:44.393228517 +0100
***************
*** 1811,1817 ****
            || c == K_MOUSELEFT || c == K_MOUSERIGHT)
        return retval;
  
! #ifdef FEAT_TEXT_PROP
      // Ignore mouse events in a popup window
      if (is_mouse_key(c))
      {
--- 1811,1817 ----
            || c == K_MOUSELEFT || c == K_MOUSERIGHT)
        return retval;
  
! #ifdef FEAT_PROP_POPUP
      // Ignore mouse events in a popup window
      if (is_mouse_key(c))
      {
*** ../vim-8.1.2370/src/macros.h        2019-11-30 19:44:34.847518172 +0100
--- src/macros.h        2019-11-30 22:40:44.393228517 +0100
***************
*** 339,345 ****
  #define IS_USER_CMDIDX(idx) ((int)(idx) < 0)
  
  // Give an error in curwin is a popup window and evaluate to TRUE.
! #ifdef FEAT_TEXT_PROP
  # define ERROR_IF_POPUP_WINDOW error_if_popup_window()
  #else
  # define ERROR_IF_POPUP_WINDOW 0
--- 339,345 ----
  #define IS_USER_CMDIDX(idx) ((int)(idx) < 0)
  
  // Give an error in curwin is a popup window and evaluate to TRUE.
! #ifdef FEAT_PROP_POPUP
  # define ERROR_IF_POPUP_WINDOW error_if_popup_window()
  #else
  # define ERROR_IF_POPUP_WINDOW 0
*** ../vim-8.1.2370/src/main.c  2019-11-17 17:06:25.824081732 +0100
--- src/main.c  2019-11-30 22:40:44.393228517 +0100
***************
*** 1283,1289 ****
            /* Trigger CursorMoved if the cursor moved. */
            if (!finish_op && (
                        has_cursormoved()
! #ifdef FEAT_TEXT_PROP
                        || popup_visible
  #endif
  #ifdef FEAT_CONCEAL
--- 1283,1289 ----
            /* Trigger CursorMoved if the cursor moved. */
            if (!finish_op && (
                        has_cursormoved()
! #ifdef FEAT_PROP_POPUP
                        || popup_visible
  #endif
  #ifdef FEAT_CONCEAL
***************
*** 1295,1301 ****
                if (has_cursormoved())
                    apply_autocmds(EVENT_CURSORMOVED, NULL, NULL,
                                                               FALSE, curbuf);
! #ifdef FEAT_TEXT_PROP
                if (popup_visible)
                    popup_check_cursor_pos();
  #endif
--- 1295,1301 ----
                if (has_cursormoved())
                    apply_autocmds(EVENT_CURSORMOVED, NULL, NULL,
                                                               FALSE, curbuf);
! #ifdef FEAT_PROP_POPUP
                if (popup_visible)
                    popup_check_cursor_pos();
  #endif
*** ../vim-8.1.2370/src/memline.c       2019-11-02 22:54:37.401188829 +0100
--- src/memline.c       2019-11-30 22:40:44.393228517 +0100
***************
*** 2705,2711 ****
      return (curbuf->b_ml.ml_flags & ML_LINE_DIRTY);
  }
  
! #ifdef FEAT_TEXT_PROP
      static void
  add_text_props_for_append(
            buf_T       *buf,
--- 2705,2711 ----
      return (curbuf->b_ml.ml_flags & ML_LINE_DIRTY);
  }
  
! #ifdef FEAT_PROP_POPUP
      static void
  add_text_props_for_append(
            buf_T       *buf,
***************
*** 2789,2795 ****
      DATA_BL   *dp;
      PTR_BL    *pp;
      infoptr_T *ip;
! #ifdef FEAT_TEXT_PROP
      char_u    *tofree = NULL;
  #endif
      int               ret = FAIL;
--- 2789,2795 ----
      DATA_BL   *dp;
      PTR_BL    *pp;
      infoptr_T *ip;
! #ifdef FEAT_PROP_POPUP
      char_u    *tofree = NULL;
  #endif
      int               ret = FAIL;
***************
*** 2803,2809 ****
      if (len == 0)
        len = (colnr_T)STRLEN(line) + 1;        // space needed for the text
  
! #ifdef FEAT_TEXT_PROP
      if (curbuf->b_has_textprop && lnum > 0)
        // Add text properties that continue from the previous line.
        add_text_props_for_append(buf, lnum, &line, &len, &tofree);
--- 2803,2809 ----
      if (len == 0)
        len = (colnr_T)STRLEN(line) + 1;        // space needed for the text
  
! #ifdef FEAT_PROP_POPUP
      if (curbuf->b_has_textprop && lnum > 0)
        // Add text properties that continue from the previous line.
        add_text_props_for_append(buf, lnum, &line, &len, &tofree);
***************
*** 3280,3286 ****
      ret = OK;
  
  theend:
! #ifdef FEAT_TEXT_PROP
      vim_free(tofree);
  #endif
      return ret;
--- 3280,3286 ----
      ret = OK;
  
  theend:
! #ifdef FEAT_PROP_POPUP
      vim_free(tofree);
  #endif
      return ret;
***************
*** 3409,3415 ****
      if (copy)
      {
        // copy the line to allocated memory
! #ifdef FEAT_TEXT_PROP
        if (has_props)
            line = vim_memsave(line, len);
        else
--- 3409,3415 ----
      if (copy)
      {
        // copy the line to allocated memory
! #ifdef FEAT_PROP_POPUP
        if (has_props)
            line = vim_memsave(line, len);
        else
***************
*** 3432,3445 ****
        ml_flush_line(curbuf);
        curbuf->b_ml.ml_flags &= ~ML_LINE_DIRTY;
  
! #ifdef FEAT_TEXT_PROP
        if (curbuf->b_has_textprop && !has_props)
            // Need to fetch the old line to copy over any text properties.
            ml_get_buf(curbuf, lnum, TRUE);
  #endif
      }
  
! #ifdef FEAT_TEXT_PROP
      if (curbuf->b_has_textprop && !has_props)
      {
        size_t  oldtextlen = STRLEN(curbuf->b_ml.ml_line_ptr) + 1;
--- 3432,3445 ----
        ml_flush_line(curbuf);
        curbuf->b_ml.ml_flags &= ~ML_LINE_DIRTY;
  
! #ifdef FEAT_PROP_POPUP
        if (curbuf->b_has_textprop && !has_props)
            // Need to fetch the old line to copy over any text properties.
            ml_get_buf(curbuf, lnum, TRUE);
  #endif
      }
  
! #ifdef FEAT_PROP_POPUP
      if (curbuf->b_has_textprop && !has_props)
      {
        size_t  oldtextlen = STRLEN(curbuf->b_ml.ml_line_ptr) + 1;
***************
*** 3475,3481 ****
      return OK;
  }
  
! #ifdef FEAT_TEXT_PROP
  /*
   * Adjust text properties in line "lnum" for a deleted line.
   * When "above" is true this is the line above the deleted line.
--- 3475,3481 ----
      return OK;
  }
  
! #ifdef FEAT_PROP_POPUP
  /*
   * Adjust text properties in line "lnum" for a deleted line.
   * When "above" is true this is the line above the deleted line.
***************
*** 3614,3620 ****
      long      line_size;
      int               i;
      int               ret = FAIL;
! #ifdef FEAT_TEXT_PROP
      char_u    *textprop_save = NULL;
      int               textprop_save_len;
  #endif
--- 3614,3620 ----
      long      line_size;
      int               i;
      int               ret = FAIL;
! #ifdef FEAT_PROP_POPUP
      char_u    *textprop_save = NULL;
      int               textprop_save_len;
  #endif
***************
*** 3671,3677 ****
      if (netbeans_active())
        netbeans_removed(buf, lnum, 0, (long)line_size);
  #endif
! #ifdef FEAT_TEXT_PROP
      // If there are text properties, make a copy, so that we can update
      // properties in preceding and following lines.
      if (buf->b_has_textprop)
--- 3671,3677 ----
      if (netbeans_active())
        netbeans_removed(buf, lnum, 0, (long)line_size);
  #endif
! #ifdef FEAT_PROP_POPUP
      // If there are text properties, make a copy, so that we can update
      // properties in preceding and following lines.
      if (buf->b_has_textprop)
***************
*** 3772,3778 ****
      ret = OK;
  
  theend:
! #ifdef FEAT_TEXT_PROP
      if (textprop_save != NULL)
      {
        // Adjust text properties in the line above and below.
--- 3772,3778 ----
      ret = OK;
  
  theend:
! #ifdef FEAT_PROP_POPUP
      if (textprop_save != NULL)
      {
        // Adjust text properties in the line above and below.
***************
*** 5559,5565 ****
                    end_idx = count - 1;
                    linecnt += rest;
                }
! #ifdef FEAT_TEXT_PROP
                if (buf->b_has_textprop)
                {
                    int i;
--- 5559,5565 ----
                    end_idx = count - 1;
                    linecnt += rest;
                }
! #ifdef FEAT_PROP_POPUP
                if (buf->b_has_textprop)
                {
                    int i;
***************
*** 5768,5774 ****
                idx++;
            }
        }
! #ifdef FEAT_TEXT_PROP
        if (buf->b_has_textprop)
        {
            int i;
--- 5768,5774 ----
                idx++;
            }
        }
! #ifdef FEAT_PROP_POPUP
        if (buf->b_has_textprop)
        {
            int i;
*** ../vim-8.1.2370/src/misc2.c 2019-11-13 21:49:21.288309771 +0100
--- src/misc2.c 2019-11-30 22:40:44.393228517 +0100
***************
*** 1148,1154 ****
      /* Clear cmdline history. */
      p_hi = 0;
      init_history();
! # ifdef FEAT_TEXT_PROP
      clear_global_prop_types();
  # endif
  
--- 1148,1154 ----
      /* Clear cmdline history. */
      p_hi = 0;
      init_history();
! # ifdef FEAT_PROP_POPUP
      clear_global_prop_types();
  # endif
  
*** ../vim-8.1.2370/src/mouse.c 2019-11-22 22:21:56.702841558 +0100
--- src/mouse.c 2019-11-30 22:40:44.393228517 +0100
***************
*** 291,297 ****
            bevalexpr_due_set = TRUE;
        }
  #endif
! #ifdef FEAT_TEXT_PROP
        popup_handle_mouse_moved();
  #endif
        return FALSE;
--- 291,297 ----
            bevalexpr_due_set = TRUE;
        }
  #endif
! #ifdef FEAT_PROP_POPUP
        popup_handle_mouse_moved();
  #endif
        return FALSE;
***************
*** 1104,1110 ****
                        (long)(curwin->w_botline - curwin->w_topline));
            else
                scroll_redraw(dir, 3L);
! # ifdef FEAT_TEXT_PROP
        if (WIN_IS_POPUP(curwin))
            popup_set_firstline(curwin);
  # endif
--- 1104,1110 ----
                        (long)(curwin->w_botline - curwin->w_topline));
            else
                scroll_redraw(dir, 3L);
! # ifdef FEAT_PROP_POPUP
        if (WIN_IS_POPUP(curwin))
            popup_set_firstline(curwin);
  # endif
***************
*** 1500,1506 ****
  #ifdef FEAT_MENU
      static int  in_winbar = FALSE;
  #endif
! #ifdef FEAT_TEXT_PROP
      static int   in_popup_win = FALSE;
      static win_T *click_in_popup_win = NULL;
  #endif
--- 1500,1506 ----
  #ifdef FEAT_MENU
      static int  in_winbar = FALSE;
  #endif
! #ifdef FEAT_PROP_POPUP
      static int   in_popup_win = FALSE;
      static win_T *click_in_popup_win = NULL;
  #endif
***************
*** 1530,1536 ****
            flags &= ~(MOUSE_FOCUS | MOUSE_DID_MOVE);
        dragwin = NULL;
        did_drag = FALSE;
! #ifdef FEAT_TEXT_PROP
        if (click_in_popup_win != NULL && popup_dragwin == NULL)
            popup_close_for_mouse_click(click_in_popup_win);
  
--- 1530,1536 ----
            flags &= ~(MOUSE_FOCUS | MOUSE_DID_MOVE);
        dragwin = NULL;
        did_drag = FALSE;
! #ifdef FEAT_PROP_POPUP
        if (click_in_popup_win != NULL && popup_dragwin == NULL)
            popup_close_for_mouse_click(click_in_popup_win);
  
***************
*** 1575,1581 ****
        if (cmdwin_type != 0 && row < curwin->w_winrow)
            return IN_OTHER_WIN;
  #endif
! #ifdef FEAT_TEXT_PROP
        // Continue a modeless selection in a popup window or dragging it.
        if (in_popup_win)
        {
--- 1575,1581 ----
        if (cmdwin_type != 0 && row < curwin->w_winrow)
            return IN_OTHER_WIN;
  #endif
! #ifdef FEAT_PROP_POPUP
        // Continue a modeless selection in a popup window or dragging it.
        if (in_popup_win)
        {
***************
*** 1623,1629 ****
            return IN_UNKNOWN;
        dragwin = NULL;
  
! #ifdef FEAT_TEXT_PROP
        // Click in a popup window may start dragging or modeless selection,
        // but not much else.
        if (WIN_IS_POPUP(wp))
--- 1623,1629 ----
            return IN_UNKNOWN;
        dragwin = NULL;
  
! #ifdef FEAT_PROP_POPUP
        // Click in a popup window may start dragging or modeless selection,
        // but not much else.
        if (WIN_IS_POPUP(wp))
***************
*** 1824,1830 ****
        if (cmdwin_type != 0 && row < curwin->w_winrow)
            return IN_OTHER_WIN;
  #endif
! #ifdef FEAT_TEXT_PROP
        if (in_popup_win)
        {
            if (popup_dragwin != NULL)
--- 1824,1830 ----
        if (cmdwin_type != 0 && row < curwin->w_winrow)
            return IN_OTHER_WIN;
  #endif
! #ifdef FEAT_PROP_POPUP
        if (in_popup_win)
        {
            if (popup_dragwin != NULL)
***************
*** 2014,2020 ****
        wp = mouse_find_win(&row, &col, FIND_POPUP);
        if (wp == NULL)
            return;
! #ifdef FEAT_TEXT_PROP
        if (WIN_IS_POPUP(wp) && !wp->w_has_scrollbar)
            return;
  #endif
--- 2014,2020 ----
        wp = mouse_find_win(&row, &col, FIND_POPUP);
        if (wp == NULL)
            return;
! #ifdef FEAT_PROP_POPUP
        if (WIN_IS_POPUP(wp) && !wp->w_has_scrollbar)
            return;
  #endif
***************
*** 2049,2055 ****
            cap->count0 = cap->count1;
            nv_scroll_line(cap);
        }
! #ifdef FEAT_TEXT_PROP
        if (WIN_IS_POPUP(curwin))
            popup_set_firstline(curwin);
  #endif
--- 2049,2055 ----
            cap->count0 = cap->count1;
            nv_scroll_line(cap);
        }
! #ifdef FEAT_PROP_POPUP
        if (WIN_IS_POPUP(curwin))
            popup_set_firstline(curwin);
  #endif
***************
*** 2925,2931 ****
      frame_T   *fp;
      win_T     *wp;
  
! #ifdef FEAT_TEXT_PROP
      win_T     *pwp = NULL;
  
      if (popup != IGNORE_POPUP)
--- 2925,2931 ----
      frame_T   *fp;
      win_T     *wp;
  
! #ifdef FEAT_PROP_POPUP
      win_T     *pwp = NULL;
  
      if (popup != IGNORE_POPUP)
***************
*** 2987,2993 ****
      return NULL;
  }
  
! #if defined(NEED_VCOL2COL) || defined(FEAT_BEVAL) || defined(FEAT_TEXT_PROP) \
        || defined(PROTO)
  /*
   * Convert a virtual (screen) column to a character column.
--- 2987,2993 ----
      return NULL;
  }
  
! #if defined(NEED_VCOL2COL) || defined(FEAT_BEVAL) || defined(FEAT_PROP_POPUP) 
\
        || defined(PROTO)
  /*
   * Convert a virtual (screen) column to a character column.
***************
*** 3039,3045 ****
        int     left_off = 0;
        int     height = wp->w_height + wp->w_status_height;
  
! #ifdef FEAT_TEXT_PROP
        if (WIN_IS_POPUP(wp))
        {
            top_off = popup_top_extra(wp);
--- 3039,3045 ----
        int     left_off = 0;
        int     height = wp->w_height + wp->w_status_height;
  
! #ifdef FEAT_PROP_POPUP
        if (WIN_IS_POPUP(wp))
        {
            top_off = popup_top_extra(wp);
*** ../vim-8.1.2370/src/move.c  2019-11-16 14:19:29.711739240 +0100
--- src/move.c  2019-11-30 22:40:44.393228517 +0100
***************
*** 1181,1187 ****
      curwin->w_valid |= VALID_WCOL|VALID_WROW|VALID_VIRTCOL;
  }
  
! #if (defined(FEAT_EVAL) || defined(FEAT_TEXT_PROP)) || defined(PROTO)
  /*
   * Compute the screen position of text character at "pos" in window "wp"
   * The resulting values are one-based, zero when character is not visible.
--- 1181,1187 ----
      curwin->w_valid |= VALID_WCOL|VALID_WROW|VALID_VIRTCOL;
  }
  
! #if (defined(FEAT_EVAL) || defined(FEAT_PROP_POPUP)) || defined(PROTO)
  /*
   * Compute the screen position of text character at "pos" in window "wp"
   * The resulting values are one-based, zero when character is not visible.
*** ../vim-8.1.2370/src/ops.c   2019-11-16 13:50:18.777646751 +0100
--- src/ops.c   2019-11-30 22:40:44.397228499 +0100
***************
*** 828,834 ****
            /* replace the line */
            ml_replace(lnum, newp, FALSE);
  
! #ifdef FEAT_TEXT_PROP
            if (curbuf->b_has_textprop && n != 0)
                adjust_prop_columns(lnum, bd.textcol, -n, 0);
  #endif
--- 828,834 ----
            /* replace the line */
            ml_replace(lnum, newp, FALSE);
  
! #ifdef FEAT_PROP_POPUP
            if (curbuf->b_has_textprop && n != 0)
                adjust_prop_columns(lnum, bd.textcol, -n, 0);
  #endif
***************
*** 1948,1954 ****
      int               remove_comments = (use_formatoptions == TRUE)
                                  && has_format_option(FO_REMOVE_COMS);
      int               prev_was_comment;
! #ifdef FEAT_TEXT_PROP
      textprop_T        **prop_lines = NULL;
      int               *prop_lengths = NULL;
  #endif
--- 1948,1954 ----
      int               remove_comments = (use_formatoptions == TRUE)
                                  && has_format_option(FO_REMOVE_COMS);
      int               prev_was_comment;
! #ifdef FEAT_PROP_POPUP
      textprop_T        **prop_lines = NULL;
      int               *prop_lengths = NULL;
  #endif
***************
*** 2072,2078 ****
      cend = newp + sumsize;
      *cend = 0;
  
! #ifdef FEAT_TEXT_PROP
      // We need to move properties of the lines that are going to be deleted to
      // the new long one.
      if (curbuf->b_has_textprop && !text_prop_frozen)
--- 2072,2078 ----
      cend = newp + sumsize;
      *cend = 0;
  
! #ifdef FEAT_PROP_POPUP
      // We need to move properties of the lines that are going to be deleted to
      // the new long one.
      if (curbuf->b_has_textprop && !text_prop_frozen)
***************
*** 2114,2120 ****
                         (long)(cend - newp - spaces_removed), spaces_removed);
        if (t == 0)
            break;
! #ifdef FEAT_TEXT_PROP
        if (prop_lines != NULL)
            adjust_props_for_join(curwin->w_cursor.lnum + t,
                                      prop_lines + t - 1, prop_lengths + t - 1,
--- 2114,2120 ----
                         (long)(cend - newp - spaces_removed), spaces_removed);
        if (t == 0)
            break;
! #ifdef FEAT_PROP_POPUP
        if (prop_lines != NULL)
            adjust_props_for_join(curwin->w_cursor.lnum + t,
                                      prop_lines + t - 1, prop_lengths + t - 1,
***************
*** 2129,2135 ****
        currsize = (int)STRLEN(curr);
      }
  
! #ifdef FEAT_TEXT_PROP
      if (prop_lines != NULL)
        join_prop_lines(curwin->w_cursor.lnum, newp,
                                              prop_lines, prop_lengths, count);
--- 2129,2135 ----
        currsize = (int)STRLEN(curr);
      }
  
! #ifdef FEAT_PROP_POPUP
      if (prop_lines != NULL)
        join_prop_lines(curwin->w_cursor.lnum, newp,
                                              prop_lines, prop_lengths, count);
*** ../vim-8.1.2370/src/option.h        2019-11-30 19:44:34.847518172 +0100
--- src/option.h        2019-11-30 22:40:44.397228499 +0100
***************
*** 567,573 ****
  EXTERN int    p_fs;           // 'fsync'
  #endif
  EXTERN int    p_gd;           // 'gdefault'
! #ifdef FEAT_TEXT_PROP
  # ifdef FEAT_QUICKFIX
  EXTERN char_u *p_cpp;         // 'completepopup'
  # endif
--- 567,573 ----
  EXTERN int    p_fs;           // 'fsync'
  #endif
  EXTERN int    p_gd;           // 'gdefault'
! #ifdef FEAT_PROP_POPUP
  # ifdef FEAT_QUICKFIX
  EXTERN char_u *p_cpp;         // 'completepopup'
  # endif
*** ../vim-8.1.2370/src/optiondefs.h    2019-11-10 21:00:21.418665688 +0100
--- src/optiondefs.h    2019-11-30 22:40:44.397228499 +0100
***************
*** 688,694 ****
                            {(char_u *)"menu,preview", (char_u *)0L}
                            SCTX_INIT},
      {"completepopup", "cpp", P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
! #if defined(FEAT_TEXT_PROP) && defined(FEAT_QUICKFIX)
                            (char_u *)&p_cpp, PV_NONE,
                            {(char_u *)"", (char_u *)0L}
  #else
--- 688,694 ----
                            {(char_u *)"menu,preview", (char_u *)0L}
                            SCTX_INIT},
      {"completepopup", "cpp", P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
! #if defined(FEAT_PROP_POPUP) && defined(FEAT_QUICKFIX)
                            (char_u *)&p_cpp, PV_NONE,
                            {(char_u *)"", (char_u *)0L}
  #else
***************
*** 1897,1903 ****
  #endif
                            {(char_u *)12L, (char_u *)0L} SCTX_INIT},
      {"previewpopup", "pvp", P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
! #ifdef FEAT_TEXT_PROP
                            (char_u *)&p_pvp, PV_NONE,
                            {(char_u *)"", (char_u *)0L}
  #else
--- 1897,1903 ----
  #endif
                            {(char_u *)12L, (char_u *)0L} SCTX_INIT},
      {"previewpopup", "pvp", P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
! #ifdef FEAT_PROP_POPUP
                            (char_u *)&p_pvp, PV_NONE,
                            {(char_u *)"", (char_u *)0L}
  #else
*** ../vim-8.1.2370/src/optionstr.c     2019-11-17 18:09:33.609491591 +0100
--- src/optionstr.c     2019-11-30 22:40:44.397228499 +0100
***************
*** 2220,2226 ****
      }
  #endif
  
! #ifdef FEAT_TEXT_PROP
      // 'previewpopup'
      else if (varp == &p_pvp)
      {
--- 2220,2226 ----
      }
  #endif
  
! #ifdef FEAT_PROP_POPUP
      // 'previewpopup'
      else if (varp == &p_pvp)
      {
*** ../vim-8.1.2370/src/popupmenu.c     2019-11-30 20:58:42.993388717 +0100
--- src/popupmenu.c     2019-11-30 22:40:44.397228499 +0100
***************
*** 429,435 ****
                                                    / (pum_size - pum_height);
      }
  
! #ifdef FEAT_TEXT_PROP
      // The popup menu is drawn over popup menus with zindex under
      // POPUPMENU_ZINDEX.
      screen_zindex = POPUPMENU_ZINDEX;
--- 429,435 ----
                                                    / (pum_size - pum_height);
      }
  
! #ifdef FEAT_PROP_POPUP
      // The popup menu is drawn over popup menus with zindex under
      // POPUPMENU_ZINDEX.
      screen_zindex = POPUPMENU_ZINDEX;
***************
*** 616,627 ****
        ++row;
      }
  
! #ifdef FEAT_TEXT_PROP
      screen_zindex = 0;
  #endif
  }
  
! #if defined(FEAT_TEXT_PROP) && defined(FEAT_QUICKFIX)
  /*
   * Position the info popup relative to the popup menu item.
   */
--- 616,627 ----
        ++row;
      }
  
! #ifdef FEAT_PROP_POPUP
      screen_zindex = 0;
  #endif
  }
  
! #if defined(FEAT_PROP_POPUP) && defined(FEAT_QUICKFIX)
  /*
   * Position the info popup relative to the popup menu item.
   */
***************
*** 683,689 ****
  #ifdef FEAT_QUICKFIX
      int           prev_selected = pum_selected;
  #endif
! #ifdef FEAT_TEXT_PROP
      int           has_info = FALSE;
  #endif
  
--- 683,689 ----
  #ifdef FEAT_QUICKFIX
      int           prev_selected = pum_selected;
  #endif
! #ifdef FEAT_PROP_POPUP
      int           has_info = FALSE;
  #endif
  
***************
*** 758,769 ****
            win_T       *curwin_save = curwin;
            tabpage_T   *curtab_save = curtab;
            int         res = OK;
! # ifdef FEAT_TEXT_PROP
            use_popup_T use_popup;
  # else
  #  define use_popup USEPOPUP_NONE
  # endif
! # ifdef FEAT_TEXT_PROP
            has_info = TRUE;
            if (strstr((char *)p_cot, "popuphidden") != NULL)
                use_popup = USEPOPUP_HIDDEN;
--- 758,769 ----
            win_T       *curwin_save = curwin;
            tabpage_T   *curtab_save = curtab;
            int         res = OK;
! # ifdef FEAT_PROP_POPUP
            use_popup_T use_popup;
  # else
  #  define use_popup USEPOPUP_NONE
  # endif
! # ifdef FEAT_PROP_POPUP
            has_info = TRUE;
            if (strstr((char *)p_cot, "popuphidden") != NULL)
                use_popup = USEPOPUP_HIDDEN;
***************
*** 787,793 ****
            g_do_tagpreview = 0;
  
            if (curwin->w_p_pvw
! # ifdef FEAT_TEXT_PROP
                    || (curwin->w_popup_flags & POPF_INFO)
  # endif
                    )
--- 787,793 ----
            g_do_tagpreview = 0;
  
            if (curwin->w_p_pvw
! # ifdef FEAT_PROP_POPUP
                    || (curwin->w_popup_flags & POPF_INFO)
  # endif
                    )
***************
*** 862,868 ****
                    curbuf->b_p_ma = FALSE;
                    if (pum_selected != prev_selected)
                    {
! # ifdef FEAT_TEXT_PROP
                        curwin->w_firstline = 1;
  # endif
                        curwin->w_topline = 1;
--- 862,868 ----
                    curbuf->b_p_ma = FALSE;
                    if (pum_selected != prev_selected)
                    {
! # ifdef FEAT_PROP_POPUP
                        curwin->w_firstline = 1;
  # endif
                        curwin->w_topline = 1;
***************
*** 871,877 ****
                        curwin->w_topline = curbuf->b_ml.ml_line_count;
                    curwin->w_cursor.lnum = curwin->w_topline;
                    curwin->w_cursor.col = 0;
! # ifdef FEAT_TEXT_PROP
                    if (use_popup != USEPOPUP_NONE)
                    {
                        pum_position_info_popup(curwin);
--- 871,877 ----
                        curwin->w_topline = curbuf->b_ml.ml_line_count;
                    curwin->w_cursor.lnum = curwin->w_topline;
                    curwin->w_cursor.col = 0;
! # ifdef FEAT_PROP_POPUP
                    if (use_popup != USEPOPUP_NONE)
                    {
                        pum_position_info_popup(curwin);
***************
*** 916,928 ****
  
                        if (!resized && win_valid(curwin_save))
                        {
! # ifdef FEAT_TEXT_PROP
                            win_T *wp = curwin;
  # endif
                            ++no_u_sync;
                            win_enter(curwin_save, TRUE);
                            --no_u_sync;
! # ifdef FEAT_TEXT_PROP
                            if (use_popup == USEPOPUP_HIDDEN && win_valid(wp))
                                popup_hide(wp);
  # endif
--- 916,928 ----
  
                        if (!resized && win_valid(curwin_save))
                        {
! # ifdef FEAT_PROP_POPUP
                            win_T *wp = curwin;
  # endif
                            ++no_u_sync;
                            win_enter(curwin_save, TRUE);
                            --no_u_sync;
! # ifdef FEAT_PROP_POPUP
                            if (use_popup == USEPOPUP_HIDDEN && win_valid(wp))
                                popup_hide(wp);
  # endif
***************
*** 937,943 ****
                    }
                }
            }
! # if defined(FEAT_TEXT_PROP) && defined(FEAT_QUICKFIX)
            if (WIN_IS_POPUP(curwin))
                // can't keep focus in a popup window
                win_enter(firstwin, TRUE);
--- 937,943 ----
                    }
                }
            }
! # if defined(FEAT_PROP_POPUP) && defined(FEAT_QUICKFIX)
            if (WIN_IS_POPUP(curwin))
                // can't keep focus in a popup window
                win_enter(firstwin, TRUE);
***************
*** 945,951 ****
        }
  #endif
      }
! #if defined(FEAT_TEXT_PROP) && defined(FEAT_QUICKFIX)
      if (!has_info)
        // hide any popup info window
        popup_hide_info();
--- 945,951 ----
        }
  #endif
      }
! #if defined(FEAT_PROP_POPUP) && defined(FEAT_QUICKFIX)
      if (!has_info)
        // hide any popup info window
        popup_hide_info();
***************
*** 967,973 ****
      redraw_all_later(NOT_VALID);
      redraw_tabline = TRUE;
      status_redraw_all();
! #if defined(FEAT_TEXT_PROP) && defined(FEAT_QUICKFIX)
      // hide any popup info window
      popup_hide_info();
  #endif
--- 967,973 ----
      redraw_all_later(NOT_VALID);
      redraw_tabline = TRUE;
      status_redraw_all();
! #if defined(FEAT_PROP_POPUP) && defined(FEAT_QUICKFIX)
      // hide any popup info window
      popup_hide_info();
  #endif
*** ../vim-8.1.2370/src/popupwin.c      2019-11-30 14:21:35.051829558 +0100
--- src/popupwin.c      2019-11-30 22:40:44.397228499 +0100
***************
*** 13,19 ****
  
  #include "vim.h"
  
! #if defined(FEAT_TEXT_PROP) || defined(PROTO)
  
  typedef struct {
      char      *pp_name;
--- 13,19 ----
  
  #include "vim.h"
  
! #if defined(FEAT_PROP_POPUP) || defined(PROTO)
  
  typedef struct {
      char      *pp_name;
***************
*** 3864,3867 ****
        popup_set_title(wp);
  }
  
! #endif // FEAT_TEXT_PROP
--- 3864,3867 ----
        popup_set_title(wp);
  }
  
! #endif // FEAT_PROP_POPUP
*** ../vim-8.1.2370/src/proto.h 2019-11-30 19:44:34.847518172 +0100
--- src/proto.h 2019-11-30 22:40:44.397228499 +0100
***************
*** 216,222 ****
  # if defined(HAVE_TGETENT) && (defined(AMIGA) || defined(VMS))
  #  include "termlib.pro"
  # endif
! # ifdef FEAT_TEXT_PROP
  #  include "popupwin.pro"
  #  include "textprop.pro"
  # endif
--- 216,222 ----
  # if defined(HAVE_TGETENT) && (defined(AMIGA) || defined(VMS))
  #  include "termlib.pro"
  # endif
! # ifdef FEAT_PROP_POPUP
  #  include "popupwin.pro"
  #  include "textprop.pro"
  # endif
***************
*** 257,263 ****
  # ifndef FEAT_BEVAL
  #  define BalloonEval int
  # endif
! # if defined(FEAT_BEVAL) || defined(FEAT_TEXT_PROP)
  #  include "beval.pro"
  # endif
  
--- 257,263 ----
  # ifndef FEAT_BEVAL
  #  define BalloonEval int
  # endif
! # if defined(FEAT_BEVAL) || defined(FEAT_PROP_POPUP)
  #  include "beval.pro"
  # endif
  
*** ../vim-8.1.2370/src/screen.c        2019-11-26 22:38:54.383300529 +0100
--- src/screen.c        2019-11-30 22:40:44.397228499 +0100
***************
*** 108,114 ****
  
      if (*wp->w_p_wcr != NUL)
        wcr_attr = syn_name2attr(wp->w_p_wcr);
! #ifdef FEAT_TEXT_PROP
      else if (WIN_IS_POPUP(wp))
      {
        if (wp->w_popup_flags & POPF_INFO)
--- 108,114 ----
  
      if (*wp->w_p_wcr != NUL)
        wcr_attr = syn_name2attr(wp->w_p_wcr);
! #ifdef FEAT_PROP_POPUP
      else if (WIN_IS_POPUP(wp))
      {
        if (wp->w_popup_flags & POPF_INFO)
***************
*** 348,354 ****
  }
  #endif
  
! #ifdef FEAT_TEXT_PROP
  /*
   * Return TRUE if this position has a higher level popup or this cell is
   * transparent in the current popup.
--- 348,354 ----
  }
  #endif
  
! #ifdef FEAT_PROP_POPUP
  /*
   * Return TRUE if this position has a higher level popup or this cell is
   * transparent in the current popup.
***************
*** 460,466 ****
      }
  #endif /* FEAT_RIGHTLEFT */
  
! #ifdef FEAT_TEXT_PROP
      // First char of a popup window may go on top of the right half of a
      // double-wide character. Clear the left half to avoid it getting the 
popup
      // window background color.
--- 460,466 ----
      }
  #endif /* FEAT_RIGHTLEFT */
  
! #ifdef FEAT_PROP_POPUP
      // First char of a popup window may go on top of the right half of a
      // double-wide character. Clear the left half to avoid it getting the 
popup
      // window background color.
***************
*** 499,505 ****
                redraw_this = TRUE;
        }
  #endif
! #ifdef FEAT_TEXT_PROP
        if (blocked_by_popup(row, col + coloff))
            redraw_this = FALSE;
  #endif
--- 499,505 ----
                redraw_this = TRUE;
        }
  #endif
! #ifdef FEAT_PROP_POPUP
        if (blocked_by_popup(row, col + coloff))
            redraw_this = FALSE;
  #endif
***************
*** 744,750 ****
      }
  
      if (clear_width > 0
! #ifdef FEAT_TEXT_PROP
            && !(flags & SLF_POPUP)  // no separator for popup window
  #endif
            )
--- 744,750 ----
      }
  
      if (clear_width > 0
! #ifdef FEAT_PROP_POPUP
            && !(flags & SLF_POPUP)  // no separator for popup window
  #endif
            )
***************
*** 753,759 ****
        // right of the window contents.  But not on top of a popup window.
        if (coloff + col < Columns)
        {
! #ifdef FEAT_TEXT_PROP
            if (!blocked_by_popup(row, col + coloff))
  #endif
            {
--- 753,759 ----
        // right of the window contents.  But not on top of a popup window.
        if (coloff + col < Columns)
        {
! #ifdef FEAT_PROP_POPUP
            if (!blocked_by_popup(row, col + coloff))
  #endif
            {
***************
*** 1586,1592 ****
                || exmode_active;
  
        if ((need_redraw || force_redraw_this)
! #ifdef FEAT_TEXT_PROP
                && !blocked_by_popup(row, col)
  #endif
           )
--- 1586,1592 ----
                || exmode_active;
  
        if ((need_redraw || force_redraw_this)
! #ifdef FEAT_PROP_POPUP
                && !blocked_by_popup(row, col)
  #endif
           )
***************
*** 2031,2042 ****
      // Skip if under the popup menu.
      // Popup windows with zindex higher than POPUPMENU_ZINDEX go on top.
      if (pum_under_menu(row, col)
! #ifdef FEAT_TEXT_PROP
            && screen_zindex <= POPUPMENU_ZINDEX
  #endif
            )
        return;
! #ifdef FEAT_TEXT_PROP
      if (blocked_by_popup(row, col))
        return;
  #endif
--- 2031,2042 ----
      // Skip if under the popup menu.
      // Popup windows with zindex higher than POPUPMENU_ZINDEX go on top.
      if (pum_under_menu(row, col)
! #ifdef FEAT_PROP_POPUP
            && screen_zindex <= POPUPMENU_ZINDEX
  #endif
            )
        return;
! #ifdef FEAT_PROP_POPUP
      if (blocked_by_popup(row, col))
        return;
  #endif
***************
*** 2338,2344 ****
                    || force_next
  #endif
                    )
! #ifdef FEAT_TEXT_PROP
                    // Skip if under a(nother) popup.
                    && !blocked_by_popup(row, col)
  #endif
--- 2338,2344 ----
                    || force_next
  #endif
                    )
! #ifdef FEAT_PROP_POPUP
                    // Skip if under a(nother) popup.
                    && !blocked_by_popup(row, col)
  #endif
***************
*** 2479,2485 ****
      unsigned      *new_LineOffset;
      char_u        *new_LineWraps;
      short         *new_TabPageIdxs;
! #ifdef FEAT_TEXT_PROP
      short         *new_popup_mask;
      short         *new_popup_mask_next;
      char          *new_popup_transparent;
--- 2479,2485 ----
      unsigned      *new_LineOffset;
      char_u        *new_LineWraps;
      short         *new_TabPageIdxs;
! #ifdef FEAT_PROP_POPUP
      short         *new_popup_mask;
      short         *new_popup_mask_next;
      char          *new_popup_transparent;
***************
*** 2540,2546 ****
        win_free_lsize(wp);
      if (aucmd_win != NULL)
        win_free_lsize(aucmd_win);
! #ifdef FEAT_TEXT_PROP
      // global popup windows
      for (wp = first_popupwin; wp != NULL; wp = wp->w_next)
        win_free_lsize(wp);
--- 2540,2546 ----
        win_free_lsize(wp);
      if (aucmd_win != NULL)
        win_free_lsize(aucmd_win);
! #ifdef FEAT_PROP_POPUP
      // global popup windows
      for (wp = first_popupwin; wp != NULL; wp = wp->w_next)
        win_free_lsize(wp);
***************
*** 2565,2571 ****
      new_LineOffset = LALLOC_MULT(unsigned, Rows);
      new_LineWraps = LALLOC_MULT(char_u, Rows);
      new_TabPageIdxs = LALLOC_MULT(short, Columns);
! #ifdef FEAT_TEXT_PROP
      new_popup_mask = LALLOC_MULT(short, Rows * Columns);
      new_popup_mask_next = LALLOC_MULT(short, Rows * Columns);
      new_popup_transparent = LALLOC_MULT(char, Rows * Columns);
--- 2565,2571 ----
      new_LineOffset = LALLOC_MULT(unsigned, Rows);
      new_LineWraps = LALLOC_MULT(char_u, Rows);
      new_TabPageIdxs = LALLOC_MULT(short, Columns);
! #ifdef FEAT_PROP_POPUP
      new_popup_mask = LALLOC_MULT(short, Rows * Columns);
      new_popup_mask_next = LALLOC_MULT(short, Rows * Columns);
      new_popup_transparent = LALLOC_MULT(char, Rows * Columns);
***************
*** 2582,2588 ****
      if (aucmd_win != NULL && aucmd_win->w_lines == NULL
                                        && win_alloc_lines(aucmd_win) == FAIL)
        outofmem = TRUE;
! #ifdef FEAT_TEXT_PROP
      // global popup windows
      for (wp = first_popupwin; wp != NULL; wp = wp->w_next)
        if (win_alloc_lines(wp) == FAIL)
--- 2582,2588 ----
      if (aucmd_win != NULL && aucmd_win->w_lines == NULL
                                        && win_alloc_lines(aucmd_win) == FAIL)
        outofmem = TRUE;
! #ifdef FEAT_PROP_POPUP
      // global popup windows
      for (wp = first_popupwin; wp != NULL; wp = wp->w_next)
        if (win_alloc_lines(wp) == FAIL)
***************
*** 2612,2618 ****
            || new_LineOffset == NULL
            || new_LineWraps == NULL
            || new_TabPageIdxs == NULL
! #ifdef FEAT_TEXT_PROP
            || new_popup_mask == NULL
            || new_popup_mask_next == NULL
            || new_popup_transparent == NULL
--- 2612,2618 ----
            || new_LineOffset == NULL
            || new_LineWraps == NULL
            || new_TabPageIdxs == NULL
! #ifdef FEAT_PROP_POPUP
            || new_popup_mask == NULL
            || new_popup_mask_next == NULL
            || new_popup_transparent == NULL
***************
*** 2637,2643 ****
        VIM_CLEAR(new_LineOffset);
        VIM_CLEAR(new_LineWraps);
        VIM_CLEAR(new_TabPageIdxs);
! #ifdef FEAT_TEXT_PROP
        VIM_CLEAR(new_popup_mask);
        VIM_CLEAR(new_popup_mask_next);
        VIM_CLEAR(new_popup_transparent);
--- 2637,2643 ----
        VIM_CLEAR(new_LineOffset);
        VIM_CLEAR(new_LineWraps);
        VIM_CLEAR(new_TabPageIdxs);
! #ifdef FEAT_PROP_POPUP
        VIM_CLEAR(new_popup_mask);
        VIM_CLEAR(new_popup_mask_next);
        VIM_CLEAR(new_popup_transparent);
***************
*** 2715,2721 ****
        /* Use the last line of the screen for the current line. */
        current_ScreenLine = new_ScreenLines + Rows * Columns;
  
! #ifdef FEAT_TEXT_PROP
        vim_memset(new_popup_mask, 0, Rows * Columns * sizeof(short));
        vim_memset(new_popup_transparent, 0, Rows * Columns * sizeof(char));
  #endif
--- 2715,2721 ----
        /* Use the last line of the screen for the current line. */
        current_ScreenLine = new_ScreenLines + Rows * Columns;
  
! #ifdef FEAT_PROP_POPUP
        vim_memset(new_popup_mask, 0, Rows * Columns * sizeof(short));
        vim_memset(new_popup_transparent, 0, Rows * Columns * sizeof(char));
  #endif
***************
*** 2734,2740 ****
      LineOffset = new_LineOffset;
      LineWraps = new_LineWraps;
      TabPageIdxs = new_TabPageIdxs;
! #ifdef FEAT_TEXT_PROP
      popup_mask = new_popup_mask;
      popup_mask_next = new_popup_mask_next;
      popup_transparent = new_popup_transparent;
--- 2734,2740 ----
      LineOffset = new_LineOffset;
      LineWraps = new_LineWraps;
      TabPageIdxs = new_TabPageIdxs;
! #ifdef FEAT_PROP_POPUP
      popup_mask = new_popup_mask;
      popup_mask_next = new_popup_mask_next;
      popup_transparent = new_popup_transparent;
***************
*** 2803,2809 ****
      VIM_CLEAR(LineOffset);
      VIM_CLEAR(LineWraps);
      VIM_CLEAR(TabPageIdxs);
! #ifdef FEAT_TEXT_PROP
      VIM_CLEAR(popup_mask);
      VIM_CLEAR(popup_mask_next);
      VIM_CLEAR(popup_transparent);
--- 2803,2809 ----
      VIM_CLEAR(LineOffset);
      VIM_CLEAR(LineWraps);
      VIM_CLEAR(TabPageIdxs);
! #ifdef FEAT_PROP_POPUP
      VIM_CLEAR(popup_mask);
      VIM_CLEAR(popup_mask_next);
      VIM_CLEAR(popup_transparent);
***************
*** 2948,2954 ****
                || cterm_normal_bg_color == 0
  #endif
                || *T_UT != NUL)
! #ifdef FEAT_TEXT_PROP
            && !(p == T_CE && popup_visible)
  #endif
            );
--- 2948,2954 ----
                || cterm_normal_bg_color == 0
  #endif
                || *T_UT != NUL)
! #ifdef FEAT_PROP_POPUP
            && !(p == T_CE && popup_visible)
  #endif
            );
***************
*** 3412,3418 ****
        return FAIL;
      }
  
! #ifdef FEAT_TEXT_PROP
      // this doesn't work when there are popups visible
      if (popup_visible)
        return FAIL;
--- 3412,3418 ----
        return FAIL;
      }
  
! #ifdef FEAT_PROP_POPUP
      // this doesn't work when there are popups visible
      if (popup_visible)
        return FAIL;
***************
*** 3544,3550 ****
             || (clip_star.state != SELECT_CLEARED
                                                 && redrawing_for_callback > 0)
  #endif
! #ifdef FEAT_TEXT_PROP
             || popup_visible
  #endif
             )
--- 3544,3550 ----
             || (clip_star.state != SELECT_CLEARED
                                                 && redrawing_for_callback > 0)
  #endif
! #ifdef FEAT_PROP_POPUP
             || popup_visible
  #endif
             )
*** ../vim-8.1.2370/src/search.c        2019-11-21 22:27:18.155184143 +0100
--- src/search.c        2019-11-30 22:40:44.397228499 +0100
***************
*** 2863,2869 ****
      while (count--)
      {
        /*
!        * if on an empty line, skip upto a non-empty line
         */
        if (gchar_pos(&pos) == NUL)
        {
--- 2863,2869 ----
      while (count--)
      {
        /*
!        * if on an empty line, skip up to a non-empty line
         */
        if (gchar_pos(&pos) == NUL)
        {
***************
*** 5724,5730 ****
                    redraw_later(VALID);
                    win_enter(curwin_save, TRUE);
                }
! # ifdef FEAT_TEXT_PROP
                else if (WIN_IS_POPUP(curwin))
                    // can't keep focus in popup window
                    win_enter(firstwin, TRUE);
--- 5724,5730 ----
                    redraw_later(VALID);
                    win_enter(curwin_save, TRUE);
                }
! # ifdef FEAT_PROP_POPUP
                else if (WIN_IS_POPUP(curwin))
                    // can't keep focus in popup window
                    win_enter(firstwin, TRUE);
*** ../vim-8.1.2370/src/sign.c  2019-11-30 14:21:35.051829558 +0100
--- src/sign.c  2019-11-30 22:40:44.397228499 +0100
***************
*** 496,502 ****
            break;
  
        if (sign->se_lnum == lnum
! # ifdef FEAT_TEXT_PROP
                && sign_group_for_window(sign, wp)
  # endif
                )
--- 496,502 ----
            break;
  
        if (sign->se_lnum == lnum
! # ifdef FEAT_PROP_POPUP
                && sign_group_for_window(sign, wp)
  # endif
                )
***************
*** 2656,2662 ****
  {
      sign_entry_T *sign = wp->w_buffer->b_signlist;
  
! # ifdef FEAT_TEXT_PROP
      while (sign != NULL && !sign_group_for_window(sign, wp))
        sign = sign->se_next;
  # endif
--- 2656,2662 ----
  {
      sign_entry_T *sign = wp->w_buffer->b_signlist;
  
! # ifdef FEAT_PROP_POPUP
      while (sign != NULL && !sign_group_for_window(sign, wp))
        sign = sign->se_next;
  # endif
*** ../vim-8.1.2370/src/structs.h       2019-11-30 19:44:34.847518172 +0100
--- src/structs.h       2019-11-30 22:40:44.397228499 +0100
***************
*** 2119,2125 ****
  //  # define CRYPT_NOT_INPLACE 1
  #endif
  
! #ifdef FEAT_TEXT_PROP
  typedef enum {
      POPPOS_BOTLEFT,
      POPPOS_TOPLEFT,
--- 2119,2125 ----
  //  # define CRYPT_NOT_INPLACE 1
  #endif
  
! #ifdef FEAT_PROP_POPUP
  typedef enum {
      POPPOS_BOTLEFT,
      POPPOS_TOPLEFT,
***************
*** 2615,2621 ****
      listener_T        *b_listener;
      list_T    *b_recorded_changes;
  #endif
! #ifdef FEAT_TEXT_PROP
      int               b_has_textprop; // TRUE when text props were added
      hashtab_T *b_proptypes;   // text property types local to buffer
  #endif
--- 2615,2621 ----
      listener_T        *b_listener;
      list_T    *b_recorded_changes;
  #endif
! #ifdef FEAT_PROP_POPUP
      int               b_has_textprop; // TRUE when text props were added
      hashtab_T *b_proptypes;   // text property types local to buffer
  #endif
***************
*** 2768,2774 ****
      win_T         *tp_prevwin;    // previous window in this Tab page
      win_T         *tp_firstwin;   // first window in this Tab page
      win_T         *tp_lastwin;    // last window in this Tab page
! #ifdef FEAT_TEXT_PROP
      win_T         *tp_first_popupwin; // first popup window in this Tab page
  #endif
      long          tp_old_Rows;    // Rows when Tab page was left
--- 2768,2774 ----
      win_T         *tp_prevwin;    // previous window in this Tab page
      win_T         *tp_firstwin;   // first window in this Tab page
      win_T         *tp_lastwin;    // last window in this Tab page
! #ifdef FEAT_PROP_POPUP
      win_T         *tp_first_popupwin; // first popup window in this Tab page
  #endif
      long          tp_old_Rows;    // Rows when Tab page was left
***************
*** 3020,3026 ****
      int               w_width;            // Width of window, excluding 
separation.
      int               w_vsep_width;       // Number of separator columns (0 
or 1).
      pos_save_T        w_save_cursor;      // backup of cursor pos and topline
! #ifdef FEAT_TEXT_PROP
      int               w_popup_flags;      // POPF_ values
      int               w_popup_handled;    // POPUP_HANDLE[0-9] flags
      char_u    *w_popup_title;
--- 3020,3026 ----
      int               w_width;            // Width of window, excluding 
separation.
      int               w_vsep_width;       // Number of separator columns (0 
or 1).
      pos_save_T        w_save_cursor;      // backup of cursor pos and topline
! #ifdef FEAT_PROP_POPUP
      int               w_popup_flags;      // POPF_ values
      int               w_popup_handled;    // POPUP_HANDLE[0-9] flags
      char_u    *w_popup_title;
*** ../vim-8.1.2370/src/tag.c   2019-11-17 17:06:25.828081709 +0100
--- src/tag.c   2019-11-30 22:40:44.397228499 +0100
***************
*** 3678,3684 ****
            win_close(curwin, FALSE);
            postponed_split = 0;
        }
! #if defined(FEAT_QUICKFIX) && defined(FEAT_TEXT_PROP)
        else if (WIN_IS_POPUP(curwin))
        {
            win_T   *wp = curwin;
--- 3678,3684 ----
            win_close(curwin, FALSE);
            postponed_split = 0;
        }
! #if defined(FEAT_QUICKFIX) && defined(FEAT_PROP_POPUP)
        else if (WIN_IS_POPUP(curwin))
        {
            win_T   *wp = curwin;
***************
*** 3689,3695 ****
        }
  #endif
      }
! #if defined(FEAT_QUICKFIX) && defined(FEAT_TEXT_PROP)
      if (WIN_IS_POPUP(curwin))
        // something went wrong, still in popup, but it can't have focus
        win_enter(firstwin, TRUE);
--- 3689,3695 ----
        }
  #endif
      }
! #if defined(FEAT_QUICKFIX) && defined(FEAT_PROP_POPUP)
      if (WIN_IS_POPUP(curwin))
        // something went wrong, still in popup, but it can't have focus
        win_enter(firstwin, TRUE);
*** ../vim-8.1.2370/src/testdir/runtest.vim     2019-11-30 15:34:05.134233382 
+0100
--- src/testdir/runtest.vim     2019-11-30 22:40:44.397228499 +0100
***************
*** 177,183 ****
    au SwapExists * call HandleSwapExists()
  
    " Close any stray popup windows
!   if has('textprop')
      call popup_clear()
    endif
  
--- 177,183 ----
    au SwapExists * call HandleSwapExists()
  
    " Close any stray popup windows
!   if has('popupwin')
      call popup_clear()
    endif
  
*** ../vim-8.1.2370/src/testdir/test_execute_func.vim   2019-10-08 
22:20:33.531292693 +0200
--- src/testdir/test_execute_func.vim   2019-11-30 22:40:44.397228499 +0100
***************
*** 90,96 ****
    let line = win_execute(otherwin, 'echo getline(1)')
    call assert_match('the new window', line)
  
!   if has('textprop')
      let popupwin = popup_create('the popup win', {'line': 2, 'col': 3})
      redraw
      let line = 'echo getline(1)'->win_execute(popupwin)
--- 90,96 ----
    let line = win_execute(otherwin, 'echo getline(1)')
    call assert_match('the new window', line)
  
!   if has('popupwin')
      let popupwin = popup_create('the popup win', {'line': 2, 'col': 3})
      redraw
      let line = 'echo getline(1)'->win_execute(popupwin)
*** ../vim-8.1.2370/src/testdir/test_popupwin.vim       2019-11-30 
17:58:23.824145616 +0100
--- src/testdir/test_popupwin.vim       2019-11-30 22:40:44.397228499 +0100
***************
*** 1,7 ****
  " Tests for popup windows
  
  source check.vim
! CheckFeature textprop
  
  source screendump.vim
  
--- 1,7 ----
  " Tests for popup windows
  
  source check.vim
! CheckFeature popupwin
  
  source screendump.vim
  
*** ../vim-8.1.2370/src/testdir/test_popupwin_textprop.vim      2019-11-16 
20:03:27.405056583 +0100
--- src/testdir/test_popupwin_textprop.vim      2019-11-30 22:40:44.397228499 
+0100
***************
*** 1,6 ****
--- 1,7 ----
  " Tests for popup windows for text properties
  
  source check.vim
+ CheckFeature popupwin
  CheckFeature textprop
  
  source screendump.vim
*** ../vim-8.1.2370/src/textprop.c      2019-11-16 20:41:47.824812616 +0100
--- src/textprop.c      2019-11-30 22:40:44.397228499 +0100
***************
*** 28,34 ****
  
  #include "vim.h"
  
! #if defined(FEAT_TEXT_PROP) || defined(PROTO)
  
  /*
   * In a hashtable item "hi_key" points to "pt_name" in a proptype_T.
--- 28,34 ----
  
  #include "vim.h"
  
! #if defined(FEAT_PROP_POPUP) || defined(PROTO)
  
  /*
   * In a hashtable item "hi_key" points to "pt_name" in a proptype_T.
***************
*** 1309,1312 ****
      vim_free(prop_lengths);
  }
  
! #endif // FEAT_TEXT_PROP
--- 1309,1312 ----
      vim_free(prop_lengths);
  }
  
! #endif // FEAT_PROP_POPUP
*** ../vim-8.1.2370/src/ui.c    2019-11-21 22:14:14.357810945 +0100
--- src/ui.c    2019-11-30 22:40:44.397228499 +0100
***************
*** 1079,1085 ****
  clip_start_selection(int col, int row, int repeated_click)
  {
      Clipboard_T       *cb = &clip_star;
! #ifdef FEAT_TEXT_PROP
      win_T     *wp;
      int               row_cp = row;
      int               col_cp = col;
--- 1079,1085 ----
  clip_start_selection(int col, int row, int repeated_click)
  {
      Clipboard_T       *cb = &clip_star;
! #ifdef FEAT_PROP_POPUP
      win_T     *wp;
      int               row_cp = row;
      int               col_cp = col;
***************
*** 1103,1109 ****
      cb->end       = cb->start;
      cb->origin_row  = (short_u)cb->start.lnum;
      cb->state     = SELECT_IN_PROGRESS;
! #ifdef FEAT_TEXT_PROP
      if (wp != NULL && WIN_IS_POPUP(wp))
      {
        // Click in a popup window restricts selection to that window,
--- 1103,1109 ----
      cb->end       = cb->start;
      cb->origin_row  = (short_u)cb->start.lnum;
      cb->state     = SELECT_IN_PROGRESS;
! #ifdef FEAT_PROP_POPUP
      if (wp != NULL && WIN_IS_POPUP(wp))
      {
        // Click in a popup window restricts selection to that window,
***************
*** 1455,1461 ****
      int               invert = FALSE;
      int               max_col;
  
! #ifdef FEAT_TEXT_PROP
      max_col = cbd->max_col - 1;
  #else
      max_col = Columns - 1;
--- 1455,1461 ----
      int               invert = FALSE;
      int               max_col;
  
! #ifdef FEAT_PROP_POPUP
      max_col = cbd->max_col - 1;
  #else
      max_col = Columns - 1;
***************
*** 1526,1532 ****
      int               height = height_arg;
      int               width = width_arg;
  
! #ifdef FEAT_TEXT_PROP
      // this goes on top of all popup windows
      screen_zindex = CLIP_ZINDEX;
  
--- 1526,1532 ----
      int               height = height_arg;
      int               width = width_arg;
  
! #ifdef FEAT_PROP_POPUP
      // this goes on top of all popup windows
      screen_zindex = CLIP_ZINDEX;
  
***************
*** 1551,1557 ****
      else
  #endif
        screen_draw_rectangle(row, col, height, width, invert);
! #ifdef FEAT_TEXT_PROP
      screen_zindex = 0;
  #endif
  }
--- 1551,1557 ----
      else
  #endif
        screen_draw_rectangle(row, col, height, width, invert);
! #ifdef FEAT_PROP_POPUP
      screen_zindex = 0;
  #endif
  }
***************
*** 1594,1600 ****
      {
        row = col1; col1 = col2; col2 = row;
      }
! #ifdef FEAT_TEXT_PROP
      if (col1 < clip_star.min_col)
        col1 = clip_star.min_col;
      if (col2 > clip_star.max_col)
--- 1594,1600 ----
      {
        row = col1; col1 = col2; col2 = row;
      }
! #ifdef FEAT_PROP_POPUP
      if (col1 < clip_star.min_col)
        col1 = clip_star.min_col;
      if (col2 > clip_star.max_col)
***************
*** 1629,1635 ****
        if (row == row1)
            start_col = col1;
        else
! #ifdef FEAT_TEXT_PROP
            start_col = clip_star.min_col;
  #else
            start_col = 0;
--- 1629,1635 ----
        if (row == row1)
            start_col = col1;
        else
! #ifdef FEAT_PROP_POPUP
            start_col = clip_star.min_col;
  #else
            start_col = 0;
***************
*** 1638,1644 ****
        if (row == row2)
            end_col = col2;
        else
! #ifdef FEAT_TEXT_PROP
            end_col = clip_star.max_col;
  #else
            end_col = Columns;
--- 1638,1644 ----
        if (row == row2)
            end_col = col2;
        else
! #ifdef FEAT_PROP_POPUP
            end_col = clip_star.max_col;
  #else
            end_col = Columns;
***************
*** 1648,1654 ****
  
        /* See if we need to nuke some trailing whitespace */
        if (end_col >=
! #ifdef FEAT_TEXT_PROP
                clip_star.max_col
  #else
                Columns
--- 1648,1654 ----
  
        /* See if we need to nuke some trailing whitespace */
        if (end_col >=
! #ifdef FEAT_PROP_POPUP
                clip_star.max_col
  #else
                Columns
***************
*** 1814,1820 ****
      if (row >= screen_Rows || ScreenLines == NULL)
        return 0;
      for (i =
! #ifdef FEAT_TEXT_PROP
            cbd->max_col;
  #else
            screen_Columns;
--- 1814,1820 ----
      if (row >= screen_Rows || ScreenLines == NULL)
        return 0;
      for (i =
! #ifdef FEAT_PROP_POPUP
            cbd->max_col;
  #else
            screen_Columns;
*** ../vim-8.1.2370/src/version.c       2019-11-30 22:38:11.913921804 +0100
--- src/version.c       2019-11-30 22:42:46.696673221 +0100
***************
*** 472,477 ****
--- 472,482 ----
  #else
        "-persistent_undo",
  #endif
+ #ifdef FEAT_PROP_POPUP
+       "+popupwin",
+ #else
+       "-popupwin",
+ #endif
  #ifdef FEAT_PRINTER
  # ifdef FEAT_POSTSCRIPT
        "+postscript",
***************
*** 614,620 ****
  #else
        "-textobjects",
  #endif
! #ifdef FEAT_TEXT_PROP
        "+textprop",
  #else
        "-textprop",
--- 619,625 ----
  #else
        "-textobjects",
  #endif
! #ifdef FEAT_PROP_POPUP
        "+textprop",
  #else
        "-textprop",
*** ../vim-8.1.2370/src/vim.h   2019-11-28 20:09:54.601943690 +0100
--- src/vim.h   2019-11-30 22:40:44.397228499 +0100
***************
*** 653,659 ****
  #define POPUP_HANDLED_4           0x08    // used by may_update_popup_mask()
  #define POPUP_HANDLED_5           0x10    // used by update_popups()
  
! #ifdef FEAT_TEXT_PROP
  # define WIN_IS_POPUP(wp) ((wp)->w_popup_flags != 0)
  #else
  # define WIN_IS_POPUP(wp) 0
--- 653,659 ----
  #define POPUP_HANDLED_4           0x08    // used by may_update_popup_mask()
  #define POPUP_HANDLED_5           0x10    // used by update_popups()
  
! #ifdef FEAT_PROP_POPUP
  # define WIN_IS_POPUP(wp) ((wp)->w_popup_flags != 0)
  #else
  # define WIN_IS_POPUP(wp) 0
***************
*** 2072,2078 ****
      short_u   origin_end_col;
      short_u   word_start_col;
      short_u   word_end_col;
! #ifdef FEAT_TEXT_PROP
      // limits for selection inside a popup window
      short_u   min_col;
      short_u   max_col;
--- 2072,2078 ----
      short_u   origin_end_col;
      short_u   word_start_col;
      short_u   word_end_col;
! #ifdef FEAT_PROP_POPUP
      // limits for selection inside a popup window
      short_u   min_col;
      short_u   max_col;
*** ../vim-8.1.2370/src/window.c        2019-11-10 21:00:21.422665678 +0100
--- src/window.c        2019-11-30 22:40:44.397228499 +0100
***************
*** 1426,1432 ****
      int
  win_valid_popup(win_T *win UNUSED)
  {
! #ifdef FEAT_TEXT_PROP
      win_T     *wp;
  
      for (wp = first_popupwin; wp != NULL; wp = wp->w_next)
--- 1426,1432 ----
      int
  win_valid_popup(win_T *win UNUSED)
  {
! #ifdef FEAT_PROP_POPUP
      win_T     *wp;
  
      for (wp = first_popupwin; wp != NULL; wp = wp->w_next)
***************
*** 1473,1479 ****
            if (wp == win)
                return TRUE;
        }
! #ifdef FEAT_TEXT_PROP
        for (wp = tp->tp_first_popupwin; wp != NULL; wp = wp->w_next)
            if (wp == win)
                return TRUE;
--- 1473,1479 ----
            if (wp == win)
                return TRUE;
        }
! #ifdef FEAT_PROP_POPUP
        for (wp = tp->tp_first_popupwin; wp != NULL; wp = wp->w_next)
            if (wp == win)
                return TRUE;
***************
*** 2525,2531 ****
        out_flush();
  #endif
  
! #ifdef FEAT_TEXT_PROP
      if (popup_win_closed(win) && !win_valid(win))
        return FAIL;
  #endif
--- 2525,2531 ----
        out_flush();
  #endif
  
! #ifdef FEAT_PROP_POPUP
      if (popup_win_closed(win) && !win_valid(win))
        return FAIL;
  #endif
***************
*** 2761,2767 ****
        (void)win_free_mem(aucmd_win, &dummy, NULL);
        aucmd_win = NULL;
      }
! # ifdef FEAT_TEXT_PROP
      close_all_popups();
  # endif
  
--- 2761,2767 ----
        (void)win_free_mem(aucmd_win, &dummy, NULL);
        aucmd_win = NULL;
      }
! # ifdef FEAT_PROP_POPUP
      close_all_popups();
  # endif
  
***************
*** 3778,3784 ****
  # ifdef FEAT_DIFF
      diff_clear(tp);
  # endif
! # ifdef FEAT_TEXT_PROP
      while (tp->tp_first_popupwin != NULL)
        popup_close_tabpage(tp, tp->tp_first_popupwin->w_id);
  #endif
--- 3778,3784 ----
  # ifdef FEAT_DIFF
      diff_clear(tp);
  # endif
! # ifdef FEAT_PROP_POPUP
      while (tp->tp_first_popupwin != NULL)
        popup_close_tabpage(tp, tp->tp_first_popupwin->w_id);
  #endif
***************
*** 4686,4692 ****
  
      /* set window height to desired minimal value */
      if (curwin->w_height < p_wh && !curwin->w_p_wfh
! #ifdef FEAT_TEXT_PROP
            && !popup_is_popup(curwin)
  #endif
            )
--- 4686,4692 ----
  
      /* set window height to desired minimal value */
      if (curwin->w_height < p_wh && !curwin->w_p_wfh
! #ifdef FEAT_PROP_POPUP
            && !popup_is_popup(curwin)
  #endif
            )
***************
*** 4952,4958 ****
  #ifdef FEAT_MENU
      remove_winbar(wp);
  #endif
! #ifdef FEAT_TEXT_PROP
      free_callback(&wp->w_close_cb);
      free_callback(&wp->w_filter_cb);
      for (i = 0; i < 4; ++i)
--- 4952,4958 ----
  #ifdef FEAT_MENU
      remove_winbar(wp);
  #endif
! #ifdef FEAT_PROP_POPUP
      free_callback(&wp->w_close_cb);
      free_callback(&wp->w_filter_cb);
      for (i = 0; i < 4; ++i)
***************
*** 4991,4997 ****
      return wp == aucmd_win || WIN_IS_POPUP(wp);
  }
  
! #if defined(FEAT_TEXT_PROP) || defined(PROTO)
  /*
   * Free a popup window.  This does not take the window out of the window list
   * and assumes there is only one toplevel frame, no split.
--- 4991,4997 ----
      return wp == aucmd_win || WIN_IS_POPUP(wp);
  }
  
! #if defined(FEAT_PROP_POPUP) || defined(PROTO)
  /*
   * Free a popup window.  This does not take the window out of the window list
   * and assumes there is only one toplevel frame, no split.
*** ../vim-8.1.2370/src/version.c       2019-11-30 22:38:11.913921804 +0100
--- src/version.c       2019-11-30 22:42:46.696673221 +0100
***************
*** 739,740 ****
--- 744,747 ----
  {   /* Add new patch number below this line */
+ /**/
+     2371,
  /**/

-- 
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].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/201911302148.xAULmrFj017646%40masaka.moolenaar.net.

Raspunde prin e-mail lui