Patch 9.0.0279
Problem:    The tiny version has the popup menu but not 'wildmenu'.
Solution:   Graduate the wildmenu feature.
Files:      runtime/doc/options.txt, runtime/doc/various.txt, src/feature.h,
            src/cmdexpand.c, src/drawscreen.c, src/evalfunc.c, src/ex_getln.c,
            src/highlight.c, src/popupmenu.c, src/screen.c, src/version.c,
            src/globals.h, src/option.h, src/optiondefs.h


*** ../vim-9.0.0278/runtime/doc/options.txt     2022-08-26 16:41:10.033072432 
+0100
--- runtime/doc/options.txt     2022-08-26 16:54:11.158356526 +0100
***************
*** 9018,9030 ****
                                *'wildmenu'* *'wmnu'* *'nowildmenu'* *'nowmnu'*
  'wildmenu' 'wmnu'     boolean (default off, set in |defaults.vim|)
                        global
-                       {not available if compiled without the |+wildmenu|
-                       feature}
        When 'wildmenu' is on, command-line completion operates in an enhanced
        mode.  On pressing 'wildchar' (usually <Tab>) to invoke completion,
!       the possible matches are shown just above the command line, with the
!       first match highlighted (overwriting the status line, if there is
!       one).  This is the behavior without "pum" in 'wildoptions'.
        Keys that show the previous/next match, such as <Tab> or
        CTRL-P/CTRL-N, cause the highlight to move to the appropriate match.
        When 'wildmode' is used, "wildmenu" mode is used where "full" is
--- 9047,9059 ----
                                *'wildmenu'* *'wmnu'* *'nowildmenu'* *'nowmnu'*
  'wildmenu' 'wmnu'     boolean (default off, set in |defaults.vim|)
                        global
        When 'wildmenu' is on, command-line completion operates in an enhanced
        mode.  On pressing 'wildchar' (usually <Tab>) to invoke completion,
!       the possible matches are shown.
!       When 'wildoptions' contains "pum", then the completion matches are
!       shown in a popup menu.  Otherwise they are displayed just above the
!       command line, with the first match highlighted (overwriting the status
!       line, if there is one).
        Keys that show the previous/next match, such as <Tab> or
        CTRL-P/CTRL-N, cause the highlight to move to the appropriate match.
        When 'wildmode' is used, "wildmenu" mode is used where "full" is
***************
*** 9033,9040 ****
        If there are more matches than can fit in the line, a ">" is shown on
        the right and/or a "<" is shown on the left.  The status line scrolls
        as needed.
-       When 'wildoptions' contains "pum", then the completion matches are
-       shown in a popup menu.
        The "wildmenu" mode is abandoned when a key is hit that is not used
        for selecting a completion.
        While the "wildmenu" is active, not using the popup menu, the
--- 9062,9067 ----
*** ../vim-9.0.0278/runtime/doc/various.txt     2022-08-26 16:41:10.033072432 
+0100
--- runtime/doc/various.txt     2022-08-26 16:54:35.370277307 +0100
***************
*** 492,498 ****
  T  *+vreplace*                |gR| and |gr|
     *+vtp*             on MS-Windows console: support for 'termguicolors'
  T  *+wildignore*      |'wildignore'|  Always enabled since 9.0.0278
! N  *+wildmenu*                |'wildmenu'|
  T  *+windows*         more than one window; Always enabled since 8.0.1118.
  m  *+writebackup*     |'writebackup'| is default on
  m  *+xim*             X input method |xim|
--- 492,498 ----
  T  *+vreplace*                |gR| and |gr|
     *+vtp*             on MS-Windows console: support for 'termguicolors'
  T  *+wildignore*      |'wildignore'|  Always enabled since 9.0.0278
! T  *+wildmenu*                |'wildmenu'||  Always enabled since 9.0.0279
  T  *+windows*         more than one window; Always enabled since 8.0.1118.
  m  *+writebackup*     |'writebackup'| is default on
  m  *+xim*             X input method |xim|
*** ../vim-9.0.0278/src/feature.h       2022-08-26 16:41:10.033072432 +0100
--- src/feature.h       2022-08-26 16:53:31.534486539 +0100
***************
*** 119,124 ****
--- 119,125 ----
   * +file_in_path      "gf" and "<cfile>" commands.
   * +path_extra                up/downwards searching in 'path' and 'tags'.
   * +wildignore                'wildignore' and 'backupskip' options
+  * +wildmenu          'wildmenu' option
   *
   * Obsolete:
   * +tag_old_static    Old style static tags: "file:tag  file  ..".
***************
*** 339,351 ****
  #endif
  
  /*
-  * +wildmenu          'wildmenu' option
-  */
- #if defined(FEAT_NORMAL)
- # define FEAT_WILDMENU
- #endif
- 
- /*
   * +viminfo           reading/writing the viminfo file. Takes about 8Kbyte
   *                    of code.
   * VIMINFO_FILE               Location of user .viminfo file (should start 
with $).
--- 340,345 ----
*** ../vim-9.0.0278/src/cmdexpand.c     2022-08-21 14:33:53.938662514 +0100
--- src/cmdexpand.c     2022-08-26 16:50:44.711039767 +0100
***************
*** 26,32 ****
  static int    ExpandUserList(expand_T *xp, char_u ***matches, int 
*numMatches);
  #endif
  
- #ifdef FEAT_WILDMENU
  // "compl_match_array" points the currently displayed list of entries in the
  // popup menu.  It is NULL when there is no popup menu.
  static pumitem_T *compl_match_array = NULL;
--- 26,31 ----
***************
*** 34,40 ****
  // First column in cmdline of the matched item for completion.
  static int compl_startcol;
  static int compl_selected;
- #endif
  
  #define SHOW_FILE_TEXT(m) (showtail ? sm_gettail(matches[m]) : matches[m])
  
--- 33,38 ----
***************
*** 305,312 ****
      return OK;
  }
  
- #if defined(FEAT_WILDMENU) || defined(PROTO)
- 
  /*
   * Create and display a cmdline completion popup menu with items from
   * 'matches'.
--- 303,308 ----
***************
*** 405,411 ****
  {
      return compl_startcol;
  }
- #endif
  
  /*
   * Get the next or prev cmdline completion match. The index of the match is 
set
--- 401,406 ----
***************
*** 488,494 ****
        else
            findex = -1;
      }
- #ifdef FEAT_WILDMENU
      if (compl_match_array)
      {
        compl_selected = findex;
--- 483,488 ----
***************
*** 497,503 ****
      else if (p_wmnu)
        win_redr_status_matches(xp, xp->xp_numfiles, xp->xp_files,
                findex, cmd_showtail);
- #endif
      *p_findex = findex;
  
      if (findex == -1)
--- 491,496 ----
***************
*** 902,917 ****
        showtail = cmd_showtail;
      }
  
- #ifdef FEAT_WILDMENU
      if (wildmenu && vim_strchr(p_wop, WOP_PUM) != NULL)
        // cmdline completion popup menu (with wildoptions=pum)
        return cmdline_pum_create(ccline, xp, matches, numMatches, showtail);
- #endif
  
- #ifdef FEAT_WILDMENU
      if (!wildmenu)
      {
- #endif
        msg_didany = FALSE;             // lines_left will be set
        msg_start();                    // prepare for paging
        msg_putchar('\n');
--- 895,906 ----
***************
*** 919,934 ****
        cmdline_row = msg_row;
        msg_didany = FALSE;             // lines_left will be set again
        msg_start();                    // prepare for paging
- #ifdef FEAT_WILDMENU
      }
- #endif
  
      if (got_int)
        got_int = FALSE;        // only int. the completion, not the cmd line
- #ifdef FEAT_WILDMENU
      else if (wildmenu)
        win_redr_status_matches(xp, numMatches, matches, -1, showtail);
- #endif
      else
      {
        // find the length of the longest file name
--- 908,919 ----
***************
*** 3378,3385 ****
      vim_free(buf);
  }
  
- #ifdef FEAT_WILDMENU
- 
  /*
   * Translate some keys pressed when 'wildmenu' is used.
   */
--- 3363,3368 ----
***************
*** 3392,3398 ****
  {
      int c = key;
  
- #ifdef FEAT_WILDMENU
      if (cmdline_pum_active())
      {
        // When the popup menu is used for cmdline completion:
--- 3375,3380 ----
***************
*** 3409,3415 ****
            default:      break;
        }
      }
- #endif
  
      if (did_wild_list)
      {
--- 3391,3396 ----
***************
*** 3669,3675 ****
      if (cclp->input_fn)
        RedrawingDisabled = old_RedrawingDisabled;
  }
- #endif
  
  #if defined(FEAT_EVAL) || defined(PROTO)
  /*
--- 3650,3655 ----
*** ../vim-9.0.0278/src/drawscreen.c    2022-08-25 15:11:11.404084538 +0100
--- src/drawscreen.c    2022-08-26 16:51:03.486976964 +0100
***************
*** 3084,3102 ****
      }
      else if (State & MODE_CMDLINE)
      {
- #ifdef FEAT_WILDMENU
        if (pum_visible())
            cmdline_pum_display();
! #endif
        // Don't redraw when in prompt_for_number().
        if (cmdline_row > 0)
        {
            // Redrawing only works when the screen didn't scroll. Don't clear
            // wildmenu entries.
            if (msg_scrolled == 0
- #ifdef FEAT_WILDMENU
                    && wild_menu_showing == 0
- #endif
                    && call_update_screen)
                update_screen(0);
  
--- 3084,3099 ----
      }
      else if (State & MODE_CMDLINE)
      {
        if (pum_visible())
            cmdline_pum_display();
! 
        // Don't redraw when in prompt_for_number().
        if (cmdline_row > 0)
        {
            // Redrawing only works when the screen didn't scroll. Don't clear
            // wildmenu entries.
            if (msg_scrolled == 0
                    && wild_menu_showing == 0
                    && call_update_screen)
                update_screen(0);
  
***************
*** 3241,3252 ****
  {
      win_T     *wp;
  
- #ifdef FEAT_WILDMENU
      if (wild_menu_showing != 0)
        // Don't redraw while the command line completion is displayed, it
        // would disappear.
        return;
- #endif
      FOR_ALL_WINDOWS(wp)
      {
        if (wp->w_buffer == buf)
--- 3238,3247 ----
***************
*** 3305,3311 ****
        draw_tabline();
  }
  
- #if defined(FEAT_WILDMENU) || defined(PROTO)
  /*
   * Redraw all status lines at the bottom of frame "frp".
   */
--- 3300,3305 ----
***************
*** 3327,3333 ****
        win_redraw_last_status(frp);
      }
  }
- #endif
  
  /*
   * Changed something in the current window, at buffer line "lnum", that
--- 3321,3326 ----
*** ../vim-9.0.0278/src/evalfunc.c      2022-08-26 16:41:10.033072432 +0100
--- src/evalfunc.c      2022-08-26 16:51:16.526933437 +0100
***************
*** 6261,6273 ****
  #endif
                },
        {"wildignore", 1},
!       {"wildmenu",
! #ifdef FEAT_WILDMENU
!               1
! #else
!               0
! #endif
!               },
        {"windows", 1},
        {"winaltkeys",
  #ifdef FEAT_WAK
--- 6261,6267 ----
  #endif
                },
        {"wildignore", 1},
!       {"wildmenu", 1},
        {"windows", 1},
        {"winaltkeys",
  #ifdef FEAT_WAK
***************
*** 10600,10609 ****
      static void
  f_wildmenumode(typval_T *argvars UNUSED, typval_T *rettv UNUSED)
  {
- #ifdef FEAT_WILDMENU
      if (wild_menu_showing || ((State & MODE_CMDLINE) && cmdline_pum_active()))
        rettv->vval.v_number = 1;
- #endif
  }
  
  /*
--- 10594,10601 ----
*** ../vim-9.0.0278/src/ex_getln.c      2022-08-26 10:33:49.062709862 +0100
--- src/ex_getln.c      2022-08-26 16:52:36.470668022 +0100
***************
*** 920,936 ****
        if (xp->xp_numfiles > 1
                && !*did_wild_list
                && ((wim_flags[wim_index] & WIM_LIST)
! #ifdef FEAT_WILDMENU
!                   || (p_wmnu && (wim_flags[wim_index] & WIM_FULL) != 0)
! #endif
!                   ))
        {
- #ifdef FEAT_WILDMENU
            (void)showmatches(xp,
                    p_wmnu && ((wim_flags[wim_index] & WIM_LIST) == 0));
- #else
-           (void)showmatches(xp, FALSE);
- #endif
            redrawcmd();
            *did_wild_list = TRUE;
        }
--- 920,929 ----
        if (xp->xp_numfiles > 1
                && !*did_wild_list
                && ((wim_flags[wim_index] & WIM_LIST)
!                   || (p_wmnu && (wim_flags[wim_index] & WIM_FULL) != 0)))
        {
            (void)showmatches(xp,
                    p_wmnu && ((wim_flags[wim_index] & WIM_LIST) == 0));
            redrawcmd();
            *did_wild_list = TRUE;
        }
***************
*** 958,966 ****
            (void)vpeekc();     // remove <C-C> from input stream
            got_int = FALSE;    // don't abandon the command line
            (void)ExpandOne(xp, NULL, NULL, 0, WILD_FREE);
- #ifdef FEAT_WILDMENU
            xp->xp_context = EXPAND_NOTHING;
- #endif
            *wim_index_p = wim_index;
            return CMDLINE_CHANGED;
        }
--- 951,957 ----
***************
*** 975,1003 ****
            if (wim_flags[0] == WIM_LONGEST && ccline.cmdpos == j)
                wim_index = 1;
            if ((wim_flags[wim_index] & WIM_LIST)
! #ifdef FEAT_WILDMENU
!                   || (p_wmnu && (wim_flags[wim_index] & WIM_FULL) != 0)
! #endif
!              )
            {
                if (!(wim_flags[0] & WIM_LONGEST))
                {
- #ifdef FEAT_WILDMENU
                    int p_wmnu_save = p_wmnu;
                    p_wmnu = 0;
! #endif
                    // remove match
                    nextwild(xp, WILD_PREV, 0, escape);
- #ifdef FEAT_WILDMENU
                    p_wmnu = p_wmnu_save;
- #endif
                }
- #ifdef FEAT_WILDMENU
                (void)showmatches(xp, p_wmnu
                        && ((wim_flags[wim_index] & WIM_LIST) == 0));
- #else
-               (void)showmatches(xp, FALSE);
- #endif
                redrawcmd();
                *did_wild_list = TRUE;
                if (wim_flags[wim_index] & WIM_LONGEST)
--- 966,985 ----
            if (wim_flags[0] == WIM_LONGEST && ccline.cmdpos == j)
                wim_index = 1;
            if ((wim_flags[wim_index] & WIM_LIST)
!                   || (p_wmnu && (wim_flags[wim_index] & WIM_FULL) != 0))
            {
                if (!(wim_flags[0] & WIM_LONGEST))
                {
                    int p_wmnu_save = p_wmnu;
+ 
                    p_wmnu = 0;
! 
                    // remove match
                    nextwild(xp, WILD_PREV, 0, escape);
                    p_wmnu = p_wmnu_save;
                }
                (void)showmatches(xp, p_wmnu
                        && ((wim_flags[wim_index] & WIM_LIST) == 0));
                redrawcmd();
                *did_wild_list = TRUE;
                if (wim_flags[wim_index] & WIM_LONGEST)
***************
*** 1008,1017 ****
            else
                vim_beep(BO_WILD);
        }
- #ifdef FEAT_WILDMENU
        else if (xp->xp_numfiles == -1)
            xp->xp_context = EXPAND_NOTHING;
- #endif
      }
      if (wim_index < 3)
        ++wim_index;
--- 990,997 ----
***************
*** 1895,1901 ****
        if (c != p_wc && c == K_S_TAB && xpc.xp_numfiles > 0)
            c = Ctrl_P;
  
- #ifdef FEAT_WILDMENU
        if (p_wmnu)
            c = wildmenu_translate_key(&ccline, c, &xpc, did_wild_list);
  
--- 1875,1880 ----
***************
*** 1913,1919 ****
                c = Ctrl_E;
            }
        }
- #endif
  
        // The wildmenu is cleared if the pressed key is not used for
        // navigating the wild menu (i.e. the key is not 'wildchar' or
--- 1892,1897 ----
***************
*** 1922,1957 ****
        // also used to navigate the menu.
        end_wildmenu = (!(c == p_wc && KeyTyped) && c != p_wcm
                && c != Ctrl_N && c != Ctrl_P && c != Ctrl_A && c != Ctrl_L);
- #ifdef FEAT_WILDMENU
        end_wildmenu = end_wildmenu && (!cmdline_pum_active() ||
                            (c != K_PAGEDOWN && c != K_PAGEUP
                             && c != K_KPAGEDOWN && c != K_KPAGEUP));
- #endif
  
        // free expanded names when finished walking through matches
        if (end_wildmenu)
        {
- #ifdef FEAT_WILDMENU
            if (cmdline_pum_active())
                cmdline_pum_remove();
- #endif
            if (xpc.xp_numfiles != -1)
                (void)ExpandOne(&xpc, NULL, NULL, 0, WILD_FREE);
            did_wild_list = FALSE;
- #ifdef FEAT_WILDMENU
            if (!p_wmnu || (c != K_UP && c != K_DOWN))
- #endif
                xpc.xp_context = EXPAND_NOTHING;
            wim_index = 0;
- #ifdef FEAT_WILDMENU
            wildmenu_cleanup(&ccline);
- #endif
        }
  
- #ifdef FEAT_WILDMENU
        if (p_wmnu)
            c = wildmenu_process_key(&ccline, c, &xpc);
- #endif
  
        // CTRL-\ CTRL-N goes to Normal mode, CTRL-\ CTRL-G goes to Insert
        // mode when 'insertmode' is set, CTRL-\ e prompts for an expression.
--- 1900,1925 ----
***************
*** 2035,2052 ****
            {
                if (xpc.xp_numfiles > 1
                    && ((!did_wild_list && (wim_flags[wim_index] & WIM_LIST))
! #ifdef FEAT_WILDMENU
!                           || p_wmnu
! #endif
!                      ))
                {
- #ifdef FEAT_WILDMENU
                    // Trigger the popup menu when wildoptions=pum
                    showmatches(&xpc, p_wmnu
                            && ((wim_flags[wim_index] & WIM_LIST) == 0));
- #else
-                   (void)showmatches(&xpc, FALSE);
- #endif
                }
                if (nextwild(&xpc, WILD_PREV, 0, firstc != '@') == OK
                        && nextwild(&xpc, WILD_PREV, 0, firstc != '@') == OK)
--- 2003,2013 ----
            {
                if (xpc.xp_numfiles > 1
                    && ((!did_wild_list && (wim_flags[wim_index] & WIM_LIST))
!                           || p_wmnu))
                {
                    // Trigger the popup menu when wildoptions=pum
                    showmatches(&xpc, p_wmnu
                            && ((wim_flags[wim_index] & WIM_LIST) == 0));
                }
                if (nextwild(&xpc, WILD_PREV, 0, firstc != '@') == OK
                        && nextwild(&xpc, WILD_PREV, 0, firstc != '@') == OK)
***************
*** 2318,2329 ****
                goto cmdline_not_changed;
  
        case Ctrl_A:        // all matches
- #ifdef FEAT_WILDMENU
                if (cmdline_pum_active())
                    // As Ctrl-A completes all the matches, close the popup
                    // menu (if present)
                    cmdline_pum_cleanup(&ccline);
! #endif
                if (nextwild(&xpc, WILD_ALL, 0, firstc != '@') == FAIL)
                    break;
                xpc.xp_context = EXPAND_NOTHING;
--- 2279,2289 ----
                goto cmdline_not_changed;
  
        case Ctrl_A:        // all matches
                if (cmdline_pum_active())
                    // As Ctrl-A completes all the matches, close the popup
                    // menu (if present)
                    cmdline_pum_cleanup(&ccline);
! 
                if (nextwild(&xpc, WILD_ALL, 0, firstc != '@') == FAIL)
                    break;
                xpc.xp_context = EXPAND_NOTHING;
***************
*** 2359,2365 ****
        case K_KPAGEUP:
        case K_PAGEDOWN:
        case K_KPAGEDOWN:
- #ifdef FEAT_WILDMENU
                if (cmdline_pum_active()
                        && (c == K_PAGEUP || c == K_PAGEDOWN ||
                            c == K_KPAGEUP || c == K_KPAGEDOWN))
--- 2319,2324 ----
***************
*** 2374,2380 ****
                    goto cmdline_not_changed;
                }
                else
- #endif
                {
                    res = cmdline_browse_history(c, firstc, &lookfor, histype,
                            &hiscnt, &xpc);
--- 2333,2338 ----
*** ../vim-9.0.0278/src/highlight.c     2022-08-22 15:19:12.732328943 +0100
--- src/highlight.c     2022-08-26 16:52:46.298635551 +0100
***************
*** 204,213 ****
         "Title term=bold ctermfg=DarkMagenta gui=bold guifg=Magenta"),
      CENT("WarningMsg term=standout ctermfg=DarkRed",
         "WarningMsg term=standout ctermfg=DarkRed guifg=Red"),
- #ifdef FEAT_WILDMENU
      CENT("WildMenu term=standout ctermbg=Yellow ctermfg=Black",
         "WildMenu term=standout ctermbg=Yellow ctermfg=Black guibg=Yellow 
guifg=Black"),
- #endif
  #ifdef FEAT_FOLDING
      CENT("Folded term=standout ctermbg=Grey ctermfg=DarkBlue",
         "Folded term=standout ctermbg=Grey ctermfg=DarkBlue guibg=LightGrey 
guifg=DarkBlue"),
--- 204,211 ----
***************
*** 295,304 ****
         "Title term=bold ctermfg=LightMagenta gui=bold guifg=Magenta"),
      CENT("WarningMsg term=standout ctermfg=LightRed",
         "WarningMsg term=standout ctermfg=LightRed guifg=Red"),
- #ifdef FEAT_WILDMENU
      CENT("WildMenu term=standout ctermbg=Yellow ctermfg=Black",
         "WildMenu term=standout ctermbg=Yellow ctermfg=Black guibg=Yellow 
guifg=Black"),
- #endif
  #ifdef FEAT_FOLDING
      CENT("Folded term=standout ctermbg=DarkGrey ctermfg=Cyan",
         "Folded term=standout ctermbg=DarkGrey ctermfg=Cyan guibg=DarkGrey 
guifg=Cyan"),
--- 293,300 ----
*** ../vim-9.0.0278/src/popupmenu.c     2022-08-14 14:16:07.999582175 +0100
--- src/popupmenu.c     2022-08-26 16:52:53.194612795 +0100
***************
*** 234,245 ****
        max_width = pum_base_width;
  
        // Calculate column
- #ifdef FEAT_WILDMENU
        if (State == MODE_CMDLINE)
            // cmdline completion popup menu
            cursor_col = cmdline_compl_startcol();
        else
- #endif
  #ifdef FEAT_RIGHTLEFT
        if (right_left)
            cursor_col = curwin->w_wincol + curwin->w_width
--- 234,243 ----
*** ../vim-9.0.0278/src/screen.c        2022-08-22 15:19:12.732328943 +0100
--- src/screen.c        2022-08-26 16:53:05.770571328 +0100
***************
*** 876,882 ****
      }
  }
  
- #ifdef FEAT_WILDMENU
  static int skip_status_match_char(expand_T *xp, char_u *s);
  
  /*
--- 876,881 ----
***************
*** 1144,1150 ****
      win_redraw_last_status(topframe);
      vim_free(buf);
  }
- #endif
  
  /*
   * Return TRUE if the status line of window "wp" is connected to the status
--- 1143,1148 ----
*** ../vim-9.0.0278/src/version.c       2022-08-26 16:41:10.037072416 +0100
--- src/version.c       2022-08-26 16:57:15.287079345 +0100
***************
*** 656,666 ****
  # endif
  #endif
        "+wildignore",
- #ifdef FEAT_WILDMENU
        "+wildmenu",
- #else
-       "-wildmenu",
- #endif
        "+windows",
  #ifdef FEAT_WRITEBACKUP
        "+writebackup",
--- 656,662 ----
*** ../vim-9.0.0278/src/globals.h       2022-08-25 16:29:56.838870665 +0100
--- src/globals.h       2022-08-26 16:53:42.266451291 +0100
***************
*** 1341,1353 ****
  EXTERN char_u langmap_mapchar[256];   // mapping for language keys
  #endif
  
- #ifdef FEAT_WILDMENU
  EXTERN int  save_p_ls INIT(= -1);     // Save 'laststatus' setting
  EXTERN int  save_p_wmh INIT(= -1);    // Save 'winminheight' setting
  EXTERN int  wild_menu_showing INIT(= 0);
! # define WM_SHOWN     1               // wildmenu showing
! # define WM_SCROLLED  2               // wildmenu showing with scroll
! #endif
  
  #ifdef MSWIN
  EXTERN char_u toupper_tab[256];       // table for toupper()
--- 1341,1351 ----
  EXTERN char_u langmap_mapchar[256];   // mapping for language keys
  #endif
  
  EXTERN int  save_p_ls INIT(= -1);     // Save 'laststatus' setting
  EXTERN int  save_p_wmh INIT(= -1);    // Save 'winminheight' setting
  EXTERN int  wild_menu_showing INIT(= 0);
! #define WM_SHOWN      1               // wildmenu showing
! #define WM_SCROLLED   2               // wildmenu showing with scroll
  
  #ifdef MSWIN
  EXTERN char_u toupper_tab[256];       // table for toupper()
*** ../vim-9.0.0278/src/option.h        2022-08-26 16:41:10.037072416 +0100
--- src/option.h        2022-08-26 16:53:48.554430653 +0100
***************
*** 1066,1074 ****
  EXTERN long   p_wcm;          // 'wildcharm'
  EXTERN int    p_wic;          // 'wildignorecase'
  EXTERN char_u *p_wim;         // 'wildmode'
- #ifdef FEAT_WILDMENU
  EXTERN int    p_wmnu;         // 'wildmenu'
- #endif
  EXTERN long   p_wh;           // 'winheight'
  EXTERN long   p_wmh;          // 'winminheight'
  EXTERN long   p_wmw;          // 'winminwidth'
--- 1066,1072 ----
*** ../vim-9.0.0278/src/optiondefs.h    2022-08-26 16:41:10.037072416 +0100
--- src/optiondefs.h    2022-08-26 16:53:55.274408598 +0100
***************
*** 2758,2768 ****
                            (char_u *)&p_wic, PV_NONE,
                            {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
      {"wildmenu",    "wmnu", P_BOOL|P_VI_DEF,
- #ifdef FEAT_WILDMENU
                            (char_u *)&p_wmnu, PV_NONE,
- #else
-                           (char_u *)NULL, PV_NONE,
- #endif
                            {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
      {"wildmode",    "wim",  P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
                            (char_u *)&p_wim, PV_NONE,
--- 2758,2764 ----
*** ../vim-9.0.0278/src/version.c       2022-08-26 16:41:10.037072416 +0100
--- src/version.c       2022-08-26 16:57:15.287079345 +0100
***************
*** 721,722 ****
--- 717,720 ----
  {   /* Add new patch number below this line */
+ /**/
+     279,
  /**/

-- 
What do you get when you cross a joke with a rehtorical question?

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///                                                                      \\\
\\\        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
 \\\            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/20220826155940.2D1481C066C%40moolenaar.net.

Raspunde prin e-mail lui