Patch 8.2.3764
Problem:    Cannot see any text when window was made zero lines or zero
            columns.
Solution:   Ensure there is at least one line and column. (fixes #9307)
Files:      src/window.c, src/proto/window.pro, src/normal.c, src/edit.c,
            src/testdir/test_window_cmd.vim


*** ../vim-8.2.3763/src/window.c        2021-12-08 20:03:27.875867028 +0000
--- src/window.c        2021-12-09 11:03:48.118173727 +0000
***************
*** 5518,5523 ****
--- 5518,5535 ----
  }
  
  /*
+  * Make the current window show at least one line and one column.
+  */
+     void
+ win_ensure_size()
+ {
+     if (curwin->w_height == 0)
+       win_setheight(1);
+     if (curwin->w_width == 0)
+       win_setwidth(1);
+ }
+ 
+ /*
   * Set current window height and take care of repositioning other windows to
   * fit around it.
   */
*** ../vim-8.2.3763/src/proto/window.pro        2021-11-14 11:41:27.264457621 
+0000
--- src/proto/window.pro        2021-12-09 11:04:33.474131339 +0000
***************
*** 55,60 ****
--- 55,61 ----
  void win_size_save(garray_T *gap);
  void win_size_restore(garray_T *gap);
  int win_comp_pos(void);
+ void win_ensure_size(void);
  void win_setheight(int height);
  void win_setheight_win(int height, win_T *win);
  void win_setwidth(int width);
*** ../vim-8.2.3763/src/normal.c        2021-11-24 13:40:26.427007315 +0000
--- src/normal.c        2021-12-09 11:42:16.444248765 +0000
***************
*** 608,613 ****
--- 608,618 ----
        old_mapped_len = 0;     // do go to Insert mode
      }
  
+     // If the window was made so small that nothing shows, make it at least 
one
+     // line and one column when typing a command.
+     if (KeyTyped && !KeyStuffed)
+       win_ensure_size();
+ 
  #ifdef FEAT_CMDL_INFO
      need_flushbuf = add_to_showcmd(c);
  #endif
*** ../vim-8.2.3763/src/edit.c  2021-10-16 11:58:51.409123004 +0100
--- src/edit.c  2021-12-09 11:09:18.873893708 +0000
***************
*** 618,623 ****
--- 618,628 ----
            c = hkmap(c);               // Hebrew mode mapping
  #endif
  
+       // If the window was made so small that nothing shows, make it at least
+       // one line and one column when typing.
+       if (KeyTyped && !KeyStuffed)
+           win_ensure_size();
+ 
        /*
         * Special handling of keys while the popup menu is visible or wanted
         * and the cursor is still in the completed word.  Only when there is
*** ../vim-8.2.3763/src/testdir/test_window_cmd.vim     2021-06-12 
12:46:38.055854976 +0100
--- src/testdir/test_window_cmd.vim     2021-12-09 11:55:25.987637565 +0000
***************
*** 1358,1361 ****
--- 1358,1395 ----
    %bw!
  endfunc
  
+ func Test_window_minimal_size()
+   set winminwidth=0 winminheight=0
+ 
+   " check size is fixed vertically
+   new
+   call win_execute(win_getid(2), 'wincmd _')
+   call assert_equal(0, winheight(0))
+   call feedkeys('0', 'tx')
+   call assert_equal(1, winheight(0))
+   bwipe!
+ 
+   " check size is fixed horizontally
+   vert new
+   call win_execute(win_getid(2), 'wincmd |')
+   call assert_equal(0, winwidth(0))
+   call feedkeys('0', 'tx')
+   call assert_equal(1, winwidth(0))
+   bwipe!
+ 
+   if has('timers')
+     " check size is fixed in Insert mode
+     new
+     call timer_start(100, {_ -> win_execute(win_getid(2), 'wincmd _')})
+     call timer_start(200, {_ -> assert_equal(0, winheight(0))})
+     call timer_start(300, {_ -> feedkeys(" \<Esc>", 't!')})
+     call feedkeys('a', 'tx!')
+     call assert_equal(1, winheight(0))
+     bwipe!
+   endif
+ 
+   set winminwidth& winminheight&
+ endfunc
+ 
+ 
  " vim: shiftwidth=2 sts=2 expandtab
*** ../vim-8.2.3763/src/version.c       2021-12-09 10:50:48.570865616 +0000
--- src/version.c       2021-12-09 11:04:24.466139637 +0000
***************
*** 755,756 ****
--- 755,758 ----
  {   /* Add new patch number below this line */
+ /**/
+     3764,
  /**/

-- 
hundred-and-one symptoms of being an internet addict:
13. You refer to going to the bathroom as downloading.

 /// 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/20211209115750.4302C1C0B28%40moolenaar.net.

Raspunde prin e-mail lui