To: vim_dev@googlegroups.com Subject: Patch 8.1.2371 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ 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 . 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 . 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 -- Bram@Moolenaar.net -- 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 ///