Patch 8.0.0825
Problem:    Not easy to see that a window is a terminal window.
Solution:   Add StatusLineTerm highlighting.
Files:      src/option.c, src/vim.h, src/screen.c, src/syntax.c


*** ../vim-8.0.0824/src/option.c        2017-07-30 16:51:35.630143954 +0200
--- src/option.c        2017-07-31 21:53:42.043552547 +0200
***************
*** 479,486 ****
  #if defined(FEAT_DIFF) || defined(FEAT_FOLDING) || defined(FEAT_SPELL) \
        || defined(FEAT_WINDOWS) || defined(FEAT_CLIPBOARD) \
        || defined(FEAT_INS_EXPAND) || defined(FEAT_SYN_HL) \
!       || defined(FEAT_CONCEAL) || defined(FEAT_QUICKFIX)
! # define HIGHLIGHT_INIT 
"8:SpecialKey,~:EndOfBuffer,@:NonText,d:Directory,e:ErrorMsg,i:IncSearch,l:Search,m:MoreMsg,M:ModeMsg,n:LineNr,N:CursorLineNr,r:Question,s:StatusLine,S:StatusLineNC,c:VertSplit,t:Title,v:Visual,V:VisualNOS,w:WarningMsg,W:WildMenu,f:Folded,F:FoldColumn,A:DiffAdd,C:DiffChange,D:DiffDelete,T:DiffText,>:SignColumn,-:Conceal,B:SpellBad,P:SpellCap,R:SpellRare,L:SpellLocal,+:Pmenu,=:PmenuSel,x:PmenuSbar,X:PmenuThumb,*:TabLine,#:TabLineSel,_:TabLineFill,!:CursorColumn,.:CursorLine,o:ColorColumn,q:QuickFixLine"
  #else
  # define HIGHLIGHT_INIT 
"8:SpecialKey,@:NonText,d:Directory,e:ErrorMsg,i:IncSearch,l:Search,m:MoreMsg,M:ModeMsg,n:LineNr,N:CursorLineNr,r:Question,s:StatusLine,S:StatusLineNC,t:Title,v:Visual,w:WarningMsg,W:WildMenu,>:SignColumn,*:TabLine,#:TabLineSel,_:TabLineFill"
  #endif
--- 479,487 ----
  #if defined(FEAT_DIFF) || defined(FEAT_FOLDING) || defined(FEAT_SPELL) \
        || defined(FEAT_WINDOWS) || defined(FEAT_CLIPBOARD) \
        || defined(FEAT_INS_EXPAND) || defined(FEAT_SYN_HL) \
!       || defined(FEAT_CONCEAL) || defined(FEAT_QUICKFIX) \
!       || defined(FEAT_TERMINAL)
! # define HIGHLIGHT_INIT 
"8:SpecialKey,~:EndOfBuffer,@:NonText,d:Directory,e:ErrorMsg,i:IncSearch,l:Search,m:MoreMsg,M:ModeMsg,n:LineNr,N:CursorLineNr,r:Question,s:StatusLine,S:StatusLineNC,c:VertSplit,t:Title,v:Visual,V:VisualNOS,w:WarningMsg,W:WildMenu,f:Folded,F:FoldColumn,A:DiffAdd,C:DiffChange,D:DiffDelete,T:DiffText,>:SignColumn,-:Conceal,B:SpellBad,P:SpellCap,R:SpellRare,L:SpellLocal,+:Pmenu,=:PmenuSel,x:PmenuSbar,X:PmenuThumb,*:TabLine,#:TabLineSel,_:TabLineFill,!:CursorColumn,.:CursorLine,o:ColorColumn,q:QuickFixLine,$:StatusLineTerm"
  #else
  # define HIGHLIGHT_INIT 
"8:SpecialKey,@:NonText,d:Directory,e:ErrorMsg,i:IncSearch,l:Search,m:MoreMsg,M:ModeMsg,n:LineNr,N:CursorLineNr,r:Question,s:StatusLine,S:StatusLineNC,t:Title,v:Visual,w:WarningMsg,W:WildMenu,>:SignColumn,*:TabLine,#:TabLineSel,_:TabLineFill"
  #endif
*** ../vim-8.0.0824/src/vim.h   2017-06-13 17:20:35.687782351 +0200
--- src/vim.h   2017-07-31 21:57:18.170010740 +0200
***************
*** 1430,1439 ****
      , HLF_TP      /* tabpage line */
      , HLF_TPS     /* tabpage line selected */
      , HLF_TPF     /* tabpage line filler */
!     , HLF_CUC     /* 'cursurcolumn' */
!     , HLF_CUL     /* 'cursurline' */
      , HLF_MC      /* 'colorcolumn' */
      , HLF_QFL     /* quickfix window line currently selected */
      , HLF_COUNT           /* MUST be the last one */
  } hlf_T;
  
--- 1430,1440 ----
      , HLF_TP      /* tabpage line */
      , HLF_TPS     /* tabpage line selected */
      , HLF_TPF     /* tabpage line filler */
!     , HLF_CUC     /* 'cursorcolumn' */
!     , HLF_CUL     /* 'cursorline' */
      , HLF_MC      /* 'colorcolumn' */
      , HLF_QFL     /* quickfix window line currently selected */
+     , HLF_ST      /* status lines of terminal windows */
      , HLF_COUNT           /* MUST be the last one */
  } hlf_T;
  
***************
*** 1443,1449 ****
                  'n', 'N', 'r', 's', 'S', 'c', 't', 'v', 'V', 'w', 'W', \
                  'f', 'F', 'A', 'C', 'D', 'T', '-', '>', \
                  'B', 'P', 'R', 'L', \
!                 '+', '=', 'x', 'X', '*', '#', '_', '!', '.', 'o', 'q'}
  
  /*
   * Boolean constants
--- 1444,1450 ----
                  'n', 'N', 'r', 's', 'S', 'c', 't', 'v', 'V', 'w', 'W', \
                  'f', 'F', 'A', 'C', 'D', 'T', '-', '>', \
                  'B', 'P', 'R', 'L', \
!                 '+', '=', 'x', 'X', '*', '#', '_', '!', '.', 'o', 'q', '$'}
  
  /*
   * Boolean constants
*** ../vim-8.0.0824/src/screen.c        2017-07-30 16:51:35.630143954 +0200
--- src/screen.c        2017-07-31 22:13:16.587182308 +0200
***************
*** 165,171 ****
  static void draw_tabline(void);
  #endif
  #if defined(FEAT_WINDOWS) || defined(FEAT_WILDMENU) || defined(FEAT_STL_OPT)
! static int fillchar_status(int *attr, int is_curwin);
  #endif
  #ifdef FEAT_WINDOWS
  static int fillchar_vsep(int *attr);
--- 165,171 ----
  static void draw_tabline(void);
  #endif
  #if defined(FEAT_WINDOWS) || defined(FEAT_WILDMENU) || defined(FEAT_STL_OPT)
! static int fillchar_status(int *attr, win_T *wp);
  #endif
  #ifdef FEAT_WINDOWS
  static int fillchar_vsep(int *attr);
***************
*** 6686,6692 ****
            --first_match;
        }
  
!     fillchar = fillchar_status(&attr, TRUE);
  
      if (first_match == 0)
      {
--- 6686,6692 ----
            --first_match;
        }
  
!     fillchar = fillchar_status(&attr, curwin);
  
      if (first_match == 0)
      {
***************
*** 6865,6871 ****
  #endif
      else
      {
!       fillchar = fillchar_status(&attr, wp == curwin);
  
        get_trans_bufname(wp->w_buffer);
        p = NameBuff;
--- 6865,6871 ----
  #endif
      else
      {
!       fillchar = fillchar_status(&attr, wp);
  
        get_trans_bufname(wp->w_buffer);
        p = NameBuff;
***************
*** 6962,6968 ****
      if (wp->w_vsep_width != 0 && wp->w_status_height != 0 && redrawing())
      {
        if (stl_connected(wp))
!           fillchar = fillchar_status(&attr, wp == curwin);
        else
            fillchar = fillchar_vsep(&attr);
        screen_putchar(fillchar, W_WINROW(wp) + wp->w_height, W_ENDCOL(wp),
--- 6962,6968 ----
      if (wp->w_vsep_width != 0 && wp->w_status_height != 0 && redrawing())
      {
        if (stl_connected(wp))
!           fillchar = fillchar_status(&attr, wp);
        else
            fillchar = fillchar_vsep(&attr);
        screen_putchar(fillchar, W_WINROW(wp) + wp->w_height, W_ENDCOL(wp),
***************
*** 7136,7142 ****
      else
      {
        row = W_WINROW(wp) + wp->w_height;
!       fillchar = fillchar_status(&attr, wp == curwin);
        maxwidth = W_WIDTH(wp);
  
        if (draw_ruler)
--- 7136,7142 ----
      else
      {
        row = W_WINROW(wp) + wp->w_height;
!       fillchar = fillchar_status(&attr, wp);
        maxwidth = W_WIDTH(wp);
  
        if (draw_ruler)
***************
*** 10705,10714 ****
   * Get the character to use in a status line.  Get its attributes in "*attr".
   */
      static int
! fillchar_status(int *attr, int is_curwin)
  {
      int fill;
!     if (is_curwin)
      {
        *attr = HL_ATTR(HLF_S);
        fill = fill_stl;
--- 10705,10726 ----
   * Get the character to use in a status line.  Get its attributes in "*attr".
   */
      static int
! fillchar_status(int *attr, win_T *wp)
  {
      int fill;
! 
! #ifdef FEAT_TERMINAL
!     if (bt_terminal(wp->w_buffer))
!     {
!       *attr = HL_ATTR(HLF_ST);
!       if (wp == curwin)
!           fill = fill_stl;
!       else
!           fill = fill_stlnc;
!     }
!     else
! #endif
!     if (wp == curwin)
      {
        *attr = HL_ATTR(HLF_S);
        fill = fill_stl;
***************
*** 10722,10731 ****
       * window differs, or the fillchars differ, or this is not the
       * current window */
      if (*attr != 0 && ((HL_ATTR(HLF_S) != HL_ATTR(HLF_SNC)
!                       || !is_curwin || ONE_WINDOW)
                    || (fill_stl != fill_stlnc)))
        return fill;
!     if (is_curwin)
        return '^';
      return '=';
  }
--- 10734,10743 ----
       * window differs, or the fillchars differ, or this is not the
       * current window */
      if (*attr != 0 && ((HL_ATTR(HLF_S) != HL_ATTR(HLF_SNC)
!                       || wp != curwin || ONE_WINDOW)
                    || (fill_stl != fill_stlnc)))
        return fill;
!     if (wp == curwin)
        return '^';
      return '=';
  }
***************
*** 10913,10919 ****
        if (wp->w_status_height)
        {
            row = W_WINROW(wp) + wp->w_height;
!           fillchar = fillchar_status(&attr, wp == curwin);
            off = W_WINCOL(wp);
            width = W_WIDTH(wp);
        }
--- 10925,10931 ----
        if (wp->w_status_height)
        {
            row = W_WINROW(wp) + wp->w_height;
!           fillchar = fillchar_status(&attr, wp);
            off = W_WINCOL(wp);
            width = W_WIDTH(wp);
        }
*** ../vim-8.0.0824/src/syntax.c        2017-07-28 15:11:34.267537205 +0200
--- src/syntax.c        2017-07-31 22:09:14.740904143 +0200
***************
*** 6887,6892 ****
--- 6887,6896 ----
             "StatusLine term=reverse,bold cterm=reverse,bold 
gui=reverse,bold"),
        CENT("StatusLineNC term=reverse cterm=reverse",
             "StatusLineNC term=reverse cterm=reverse gui=reverse"),
+ #ifdef FEAT_TERMINAL
+       CENT("StatusLineTerm term=reverse cterm=reverse ctermFg=DarkGreen",
+            "StatusLineTerm term=reverse cterm=reverse ctermFg=DarkGreen 
gui=reverse guifg=DarkGreen"),
+ #endif
        "default link EndOfBuffer NonText",
  #ifdef FEAT_WINDOWS
        CENT("VertSplit term=reverse cterm=reverse",
*** ../vim-8.0.0824/src/version.c       2017-07-31 21:18:54.830417800 +0200
--- src/version.c       2017-07-31 22:28:17.404722090 +0200
***************
*** 771,772 ****
--- 771,774 ----
  {   /* Add new patch number below this line */
+ /**/
+     825,
  /**/

-- 
Why doesn't Tarzan have a beard?

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

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

Raspunde prin e-mail lui