Patch 8.0.1013
Problem:    A terminal window with a running job behaves different from a
            window containing a changed buffer.
Solution:   Do not set 'bufhidden' to "hide".  Fix that a buffer where a
            terminal used to run is listed as "[Scratch]".
Files:      src/terminal.c, runtime/doc/terminal.txt, src/buffer.c


*** ../vim-8.0.1012/src/terminal.c      2017-08-28 22:43:00.778266633 +0200
--- src/terminal.c      2017-08-29 22:42:56.712814090 +0200
***************
*** 44,53 ****
   * - add test for giving error for invalid 'termsize' value.
   * - support minimal size when 'termsize' is "rows*cols".
   * - support minimal size when 'termsize' is empty?
-  * - do not set bufhidden to "hide"?  works like a buffer with changes.
-  *   document that CTRL-W :hide can be used.
   * - GUI: when using tabs, focus in terminal, click on tab does not work.
-  * - When $HOME was set by Vim (MS-Windows), do not pass it to the job.
   * - GUI: when 'confirm' is set and trying to exit Vim, dialog offers to save
   *   changes to "!shell".
   *   (justrajdeep, 2017 Aug 22)
--- 44,50 ----
***************
*** 399,408 ****
       * the job finished. */
      curbuf->b_p_ma = FALSE;
  
-     /* Set 'bufhidden' to "hide": allow closing the window. */
-     set_string_option_direct((char_u *)"bufhidden", -1,
-                                     (char_u *)"hide", OPT_FREE|OPT_LOCAL, 0);
- 
      set_term_and_win_size(term);
      setup_job_options(opt, term->tl_rows, term->tl_cols);
  
--- 396,401 ----
*** ../vim-8.0.1012/runtime/doc/terminal.txt    2017-08-20 18:09:09.767276733 
+0200
--- runtime/doc/terminal.txt    2017-08-29 22:43:51.060455771 +0200
***************
*** 1,4 ****
! *terminal.txt*        For Vim version 8.0.  Last change: 2017 Aug 20
  
  
                  VIM REFERENCE MANUAL    by Bram Moolenaar
--- 1,4 ----
! *terminal.txt*        For Vim version 8.0.  Last change: 2017 Aug 29
  
  
                  VIM REFERENCE MANUAL    by Bram Moolenaar
***************
*** 19,24 ****
--- 19,27 ----
  3. Debugging                  |terminal-debug|
  
  {Vi does not have any of these commands}
+ {only available when compiled with the |+terminal| feature}
+ 
+ The terminal feature requires the |+multi_byte|, |+job| and |+channel| 
features.
  
  ==============================================================================
  1. Basic use                                          *terminal-use*
***************
*** 95,100 ****
--- 98,105 ----
                        If [command] is provided run it as a job and connect
                        the input and output to the terminal.
                        If [command] is not given the 'shell' option is used.
+                       if [command] is NONE no job is started, the pty of the
+                       terminal can be used by a command like gdb.
  
                        A new buffer will be created, using [command] or
                        'shell' as the name, prefixed with a "!".  If a buffer
***************
*** 135,145 ****
  When the buffer associated with the terminal is unloaded or wiped out the job
  is killed, similar to calling `job_stop(job, "kill")`
  
! By default the 'bufhidden' option of the buffer will be set to "hide".
! So long as the job is running: If the window is closed the buffer becomes
! hidden.  The command will not be stopped.  The `:buffer` command can be used
! to turn the current window into a terminal window.  If there are unsaved
! changes this fails, use ! to force, as usual.
  
  To have a background job run without a window, and open the window when it's
  done, use options like this: >
--- 140,156 ----
  When the buffer associated with the terminal is unloaded or wiped out the job
  is killed, similar to calling `job_stop(job, "kill")`
  
! So long as the job is running the window behaves like it contains a modified
! buffer.  Trying to close the window with `CTRL-W :close` or `CTRL-W :hide`
! fails, unless "!" is added, in which case the job is ended.  The text in the
! window is lost.  The buffer still exists, but getting it in a window with
! `:buffer` will show an
! empty buffer.
! 
! You can use `CTRL-W :hide` to close the terminal window and make the buffer
! hidden, the job keeps running.  The `:buffer` command can be used to turn the
! current window into a terminal window.  If there are unsaved changes this
! fails, use !  to force, as usual.
  
  To have a background job run without a window, and open the window when it's
  done, use options like this: >
***************
*** 207,212 ****
--- 218,236 ----
  It is not possible to enter Insert mode from Terminal-Job mode.
  
  
+ Cursor style ~
+ 
+ By default the cursor in the terminal window uses a not blinking block.  The
+ normal xterm escape sequences can be used to change the blinking state and the
+ shape.  Once focus leaves the terminal window Vim will restore the original
+ cursor.
+ 
+ An exception is when xterm is started with the "-bc" argument, or another way
+ that causes the cursor to blink.  This actually means that the blinking flag
+ is inverted.  Since Vim cannot detect this, the terminal window cursor
+ blinking will also be inverted.
+ 
+ 
  Unix ~
  
  On Unix a pty is used to make it possible to run all kinds of commands.  You
***************
*** 269,291 ****
  3. Debugging                                  *terminal-debug*
  
  The Terminal debugging plugin can be used to debug a program with gdb and view
! the source code in a Vim window. For example: >
  
        :TermDebug vim
  
! This opens three windows:
  - A terminal window in which "gdb vim" is executed.  Here you can directly
    interact with gdb.
  - A terminal window for the executed program.  When "run" is used in gdb the
    program I/O will happen in this window, so that it does not interfere with
    controlling gdb.
! - A normal Vim window used to show the source code.  When gdb jumps to a
!   source file location this window will display the code, if possible.  Values
!   of variables can be inspected, breakpoints set and cleared, etc.
! 
! This uses two terminal windows.  To open the gdb window: >
!       :term gdb [arguments]
! To open the terminal to run the tested program |term_start()| is used.
  
  TODO
  
--- 293,323 ----
  3. Debugging                                  *terminal-debug*
  
  The Terminal debugging plugin can be used to debug a program with gdb and view
! the source code in a Vim window.
! 
! Load the plugin with this command: >
!       packadd termdebug
  
+ To start debugging use `:TermDebug` folowed by the command name, for example: 
>
        :TermDebug vim
  
! This opens two windows:
  - A terminal window in which "gdb vim" is executed.  Here you can directly
    interact with gdb.
  - A terminal window for the executed program.  When "run" is used in gdb the
    program I/O will happen in this window, so that it does not interfere with
    controlling gdb.
! The current window is used to show the source code.  When gdb jumps to a
! source file location this window will display the code, if possible.  Values
! of variables can be inspected, breakpoints set and cleared, etc.
! 
! When the debugger ends the two opened windows are closed.
! 
! 
! Customizing ~
! 
! g:debugger    The debugger command.  Default "gdb".
! 
  
  TODO
  
*** ../vim-8.0.1012/src/buffer.c        2017-08-17 16:55:08.629414811 +0200
--- src/buffer.c        2017-08-29 22:22:18.176953401 +0200
***************
*** 5825,5832 ****
        if (buf->b_term != NULL)
            return term_get_status_text(buf->b_term);
  #endif
!       if (buf->b_sfname != NULL)
!           return buf->b_sfname;
        return (char_u *)_("[Scratch]");
      }
  
--- 5825,5832 ----
        if (buf->b_term != NULL)
            return term_get_status_text(buf->b_term);
  #endif
!       if (buf->b_fname != NULL)
!           return buf->b_fname;
        return (char_u *)_("[Scratch]");
      }
  
*** ../vim-8.0.1012/src/version.c       2017-08-29 21:44:55.079627984 +0200
--- src/version.c       2017-08-29 22:17:11.174959536 +0200
***************
*** 771,772 ****
--- 771,774 ----
  {   /* Add new patch number below this line */
+ /**/
+     1013,
  /**/

-- 
If you put 7 of the most talented OSS developers in a room for a week
and asked them to fix a bug in a spreadsheet program, in 1 week
you'd have 2 new mail readers and a text-based web browser.

 /// 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