Patch 8.0.1624
Problem:    Options for term_dumpdiff() and term_dumpload() not implemented
            yet.
Solution:   Implement the relevant options.
Files:      src/terminal.c, runtime/doc/eval.txt


*** ../vim-8.0.1623/src/terminal.c      2018-03-18 19:19:33.266818628 +0100
--- src/terminal.c      2018-03-20 18:29:12.731966768 +0100
***************
*** 342,347 ****
--- 342,348 ----
      buf_T     *old_curbuf = NULL;
      int               res;
      buf_T     *newbuf;
+     int               vertical = opt->jo_vertical || (cmdmod.split & 
WSP_VERT);
  
      if (check_restricted() || check_secure())
        return NULL;
***************
*** 411,427 ****
        split_ea.cmdidx = CMD_new;
        split_ea.cmd = (char_u *)"new";
        split_ea.arg = (char_u *)"";
!       if (opt->jo_term_rows > 0 && !(cmdmod.split & WSP_VERT))
        {
            split_ea.line2 = opt->jo_term_rows;
            split_ea.addr_count = 1;
        }
!       if (opt->jo_term_cols > 0 && (cmdmod.split & WSP_VERT))
        {
            split_ea.line2 = opt->jo_term_cols;
            split_ea.addr_count = 1;
        }
  
        ex_splitview(&split_ea);
        if (curwin == old_curwin)
        {
--- 412,430 ----
        split_ea.cmdidx = CMD_new;
        split_ea.cmd = (char_u *)"new";
        split_ea.arg = (char_u *)"";
!       if (opt->jo_term_rows > 0 && !vertical)
        {
            split_ea.line2 = opt->jo_term_rows;
            split_ea.addr_count = 1;
        }
!       if (opt->jo_term_cols > 0 && vertical)
        {
            split_ea.line2 = opt->jo_term_cols;
            split_ea.addr_count = 1;
        }
  
+       if (vertical)
+           cmdmod.split |= WSP_VERT;
        ex_splitview(&split_ea);
        if (curwin == old_curwin)
        {
***************
*** 437,447 ****
      {
        /* Only one size was taken care of with :new, do the other one.  With
         * "curwin" both need to be done. */
!       if (opt->jo_term_rows > 0 && (opt->jo_curwin
!                                                || (cmdmod.split & WSP_VERT)))
            win_setheight(opt->jo_term_rows);
!       if (opt->jo_term_cols > 0 && (opt->jo_curwin
!                                               || !(cmdmod.split & WSP_VERT)))
            win_setwidth(opt->jo_term_cols);
      }
  
--- 440,448 ----
      {
        /* Only one size was taken care of with :new, do the other one.  With
         * "curwin" both need to be done. */
!       if (opt->jo_term_rows > 0 && (opt->jo_curwin || vertical))
            win_setheight(opt->jo_term_rows);
!       if (opt->jo_term_cols > 0 && (opt->jo_curwin || !vertical))
            win_setwidth(opt->jo_term_cols);
      }
  
***************
*** 3732,3737 ****
--- 3733,3739 ----
      char_u    buf2[NUMBUFLEN];
      char_u    *fname1;
      char_u    *fname2 = NULL;
+     char_u    *fname_tofree = NULL;
      FILE      *fd1;
      FILE      *fd2 = NULL;
      char_u    *textline = NULL;
***************
*** 3763,3772 ****
      }
  
      init_job_options(&opt);
!     /* TODO: use the {options} argument */
  
!     /* TODO: use the file name arguments for the buffer name */
!     opt.jo_term_name = (char_u *)"dump diff";
  
      buf = term_start(&argvars[0], NULL, &opt, TERM_START_NOJOB);
      if (buf != NULL && buf->b_term != NULL)
--- 3765,3787 ----
      }
  
      init_job_options(&opt);
!     if (argvars[do_diff ? 2 : 1].v_type != VAR_UNKNOWN
!           && get_job_options(&argvars[do_diff ? 2 : 1], &opt, 0,
!                   JO2_TERM_NAME + JO2_TERM_COLS + JO2_TERM_ROWS
!                   + JO2_VERTICAL + JO2_CURWIN + JO2_NORESTORE) == FAIL)
!       goto theend;
  
!     if (opt.jo_term_name == NULL)
!     {
!       int len = STRLEN(fname1) + 12;
! 
!       fname_tofree = alloc(len);
!       if (fname_tofree != NULL)
!       {
!           vim_snprintf((char *)fname_tofree, len, "dump diff %s", fname1);
!           opt.jo_term_name = fname_tofree;
!       }
!     }
  
      buf = term_start(&argvars[0], NULL, &opt, TERM_START_NOJOB);
      if (buf != NULL && buf->b_term != NULL)
***************
*** 3937,3942 ****
--- 3952,3958 ----
  
  theend:
      vim_free(textline);
+     vim_free(fname_tofree);
      fclose(fd1);
      if (fd2 != NULL)
        fclose(fd2);
***************
*** 4541,4548 ****
                    + JO2_NORESTORE + JO2_TERM_KILL) == FAIL)
        return;
  
-     if (opt.jo_vertical)
-       cmdmod.split = WSP_VERT;
      buf = term_start(&argvars[0], NULL, &opt, 0);
  
      if (buf != NULL && buf->b_term != NULL)
--- 4557,4562 ----
*** ../vim-8.0.1623/runtime/doc/eval.txt        2018-03-10 20:27:32.075757637 
+0100
--- runtime/doc/eval.txt        2018-03-20 18:09:32.317642019 +0100
***************
*** 8132,8138 ****
                the second file.  The middle part shows the differences.
                The parts are separated by a line of dashes.
  
!               {options} are not implemented yet.
  
                Each character in the middle part indicates a difference. If
                there are multiple differences only the first in this list is
--- 8190,8209 ----
                the second file.  The middle part shows the differences.
                The parts are separated by a line of dashes.
  
!               If the {options} argument is present, it must be a Dict with
!               these possible members:
!                  "term_name"       name to use for the buffer name, instead
!                                    of the first file name.
!                  "term_rows"       vertical size to use for the terminal,
!                                    instead of using 'termsize'
!                  "term_cols"       horizontal size to use for the terminal,
!                                    instead of using 'termsize'
!                  "vertical"        split the window vertically
!                  "curwin"          use the current window, do not split the
!                                    window; fails if the current buffer
!                                    cannot be |abandon|ed
!                  "norestore"       do not add the terminal window to a
!                                    session file
  
                Each character in the middle part indicates a difference. If
                there are multiple differences only the first in this list is
***************
*** 8155,8167 ****
                Returns the buffer number or zero when it fails.
                Also see |terminal-diff|.
  
!               {options} are not implemented yet.
  
                                                        *term_dumpwrite()*
  term_dumpwrite({buf}, {filename} [, {options}])
                Dump the contents of the terminal screen of {buf} in the file
                {filename}.  This uses a format that can be used with
!               |term_dumpread()| and |term_dumpdiff()|.
                If {filename} already exists an error is given. *E953*
                Also see |terminal-diff|.
  
--- 8226,8238 ----
                Returns the buffer number or zero when it fails.
                Also see |terminal-diff|.
  
!               For {options} see |term_dumpdiff()|.
  
                                                        *term_dumpwrite()*
  term_dumpwrite({buf}, {filename} [, {options}])
                Dump the contents of the terminal screen of {buf} in the file
                {filename}.  This uses a format that can be used with
!               |term_dumpload()| and |term_dumpdiff()|.
                If {filename} already exists an error is given. *E953*
                Also see |terminal-diff|.
  
*** ../vim-8.0.1623/src/version.c       2018-03-20 17:42:56.502284457 +0100
--- src/version.c       2018-03-20 18:08:40.097927574 +0100
***************
*** 768,769 ****
--- 768,771 ----
  {   /* Add new patch number below this line */
+ /**/
+     1624,
  /**/


-- 
My sister Cecilia opened a computer store in Hawaii.
She sells C shells by the seashore.

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