Patch 8.0.1516
Problem:    Errors for job options are not very specific.
Solution:   Add more specific error messages.
Files:      src/channel.c, src/globals.h


*** ../vim-8.0.1515/src/channel.c       2018-02-10 18:45:21.040822359 +0100
--- src/channel.c       2018-02-13 15:12:59.988622667 +0100
***************
*** 4458,4464 ****
        return OK;
      if (tv->v_type != VAR_DICT)
      {
!       EMSG(_(e_invarg));
        return FAIL;
      }
      dict = tv->vval.v_dict;
--- 4458,4464 ----
        return OK;
      if (tv->v_type != VAR_DICT)
      {
!       EMSG(_(e_dictreq));
        return FAIL;
      }
      dict = tv->vval.v_dict;
***************
*** 4541,4547 ****
                opt->jo_io_buf[part] = get_tv_number(item);
                if (opt->jo_io_buf[part] <= 0)
                {
!                   EMSG2(_(e_invarg2), get_tv_string(item));
                    return FAIL;
                }
                if (buflist_findnr(opt->jo_io_buf[part]) == NULL)
--- 4541,4547 ----
                opt->jo_io_buf[part] = get_tv_number(item);
                if (opt->jo_io_buf[part] <= 0)
                {
!                   EMSG3(_(e_invargNval), hi->hi_key, get_tv_string(item));
                    return FAIL;
                }
                if (buflist_findnr(opt->jo_io_buf[part]) == NULL)
***************
*** 4590,4596 ****
                *lp = get_tv_number(item);
                if (*lp < 0)
                {
!                   EMSG2(_(e_invarg2), get_tv_string(item));
                    return FAIL;
                }
            }
--- 4590,4596 ----
                *lp = get_tv_number(item);
                if (*lp < 0)
                {
!                   EMSG3(_(e_invargNval), hi->hi_key, get_tv_string(item));
                    return FAIL;
                }
            }
***************
*** 4601,4607 ****
                opt->jo_set |= JO_CHANNEL;
                if (item->v_type != VAR_CHANNEL)
                {
!                   EMSG2(_(e_invarg2), "channel");
                    return FAIL;
                }
                opt->jo_channel = item->vval.v_channel;
--- 4601,4607 ----
                opt->jo_set |= JO_CHANNEL;
                if (item->v_type != VAR_CHANNEL)
                {
!                   EMSG2(_(e_invargval), "channel");
                    return FAIL;
                }
                opt->jo_channel = item->vval.v_channel;
***************
*** 4614,4620 ****
                opt->jo_callback = get_callback(item, &opt->jo_partial);
                if (opt->jo_callback == NULL)
                {
!                   EMSG2(_(e_invarg2), "callback");
                    return FAIL;
                }
            }
--- 4614,4620 ----
                opt->jo_callback = get_callback(item, &opt->jo_partial);
                if (opt->jo_callback == NULL)
                {
!                   EMSG2(_(e_invargval), "callback");
                    return FAIL;
                }
            }
***************
*** 4626,4632 ****
                opt->jo_out_cb = get_callback(item, &opt->jo_out_partial);
                if (opt->jo_out_cb == NULL)
                {
!                   EMSG2(_(e_invarg2), "out_cb");
                    return FAIL;
                }
            }
--- 4626,4632 ----
                opt->jo_out_cb = get_callback(item, &opt->jo_out_partial);
                if (opt->jo_out_cb == NULL)
                {
!                   EMSG2(_(e_invargval), "out_cb");
                    return FAIL;
                }
            }
***************
*** 4638,4644 ****
                opt->jo_err_cb = get_callback(item, &opt->jo_err_partial);
                if (opt->jo_err_cb == NULL)
                {
!                   EMSG2(_(e_invarg2), "err_cb");
                    return FAIL;
                }
            }
--- 4638,4644 ----
                opt->jo_err_cb = get_callback(item, &opt->jo_err_partial);
                if (opt->jo_err_cb == NULL)
                {
!                   EMSG2(_(e_invargval), "err_cb");
                    return FAIL;
                }
            }
***************
*** 4650,4656 ****
                opt->jo_close_cb = get_callback(item, &opt->jo_close_partial);
                if (opt->jo_close_cb == NULL)
                {
!                   EMSG2(_(e_invarg2), "close_cb");
                    return FAIL;
                }
            }
--- 4650,4656 ----
                opt->jo_close_cb = get_callback(item, &opt->jo_close_partial);
                if (opt->jo_close_cb == NULL)
                {
!                   EMSG2(_(e_invargval), "close_cb");
                    return FAIL;
                }
            }
***************
*** 4663,4669 ****
                    never = TRUE;
                else if (STRCMP(val, "auto") != 0)
                {
!                   EMSG2(_(e_invarg2), "drop");
                    return FAIL;
                }
                opt->jo_drop_never = never;
--- 4663,4669 ----
                    never = TRUE;
                else if (STRCMP(val, "auto") != 0)
                {
!                   EMSG3(_(e_invargNval), "drop", val);
                    return FAIL;
                }
                opt->jo_drop_never = never;
***************
*** 4676,4682 ****
                opt->jo_exit_cb = get_callback(item, &opt->jo_exit_partial);
                if (opt->jo_exit_cb == NULL)
                {
!                   EMSG2(_(e_invarg2), "exit_cb");
                    return FAIL;
                }
            }
--- 4676,4682 ----
                opt->jo_exit_cb = get_callback(item, &opt->jo_exit_partial);
                if (opt->jo_exit_cb == NULL)
                {
!                   EMSG2(_(e_invargval), "exit_cb");
                    return FAIL;
                }
            }
***************
*** 4689,4695 ****
                opt->jo_term_name = get_tv_string_chk(item);
                if (opt->jo_term_name == NULL)
                {
!                   EMSG2(_(e_invarg2), "term_name");
                    return FAIL;
                }
            }
--- 4689,4695 ----
                opt->jo_term_name = get_tv_string_chk(item);
                if (opt->jo_term_name == NULL)
                {
!                   EMSG2(_(e_invargval), "term_name");
                    return FAIL;
                }
            }
***************
*** 4700,4706 ****
                val = get_tv_string(item);
                if (STRCMP(val, "open") != 0 && STRCMP(val, "close") != 0)
                {
!                   EMSG2(_(e_invarg2), val);
                    return FAIL;
                }
                opt->jo_set2 |= JO2_TERM_FINISH;
--- 4700,4706 ----
                val = get_tv_string(item);
                if (STRCMP(val, "open") != 0 && STRCMP(val, "close") != 0)
                {
!                   EMSG3(_(e_invargNval), "term_finish", val);
                    return FAIL;
                }
                opt->jo_set2 |= JO2_TERM_FINISH;
***************
*** 4724,4730 ****
                }
                if (p == NULL)
                {
!                   EMSG2(_(e_invarg2), "term_opencmd");
                    return FAIL;
                }
            }
--- 4724,4730 ----
                }
                if (p == NULL)
                {
!                   EMSG2(_(e_invargval), "term_opencmd");
                    return FAIL;
                }
            }
***************
*** 4738,4744 ****
                p = opt->jo_eof_chars = get_tv_string_chk(item);
                if (p == NULL)
                {
!                   EMSG2(_(e_invarg2), "term_opencmd");
                    return FAIL;
                }
            }
--- 4738,4744 ----
                p = opt->jo_eof_chars = get_tv_string_chk(item);
                if (p == NULL)
                {
!                   EMSG2(_(e_invargval), "eof_chars");
                    return FAIL;
                }
            }
***************
*** 4793,4799 ****
                opt->jo_cwd = get_tv_string_buf_chk(item, opt->jo_cwd_buf);
                if (opt->jo_cwd == NULL || !mch_isdir(opt->jo_cwd))
                {
!                   EMSG2(_(e_invarg2), "cwd");
                    return FAIL;
                }
                opt->jo_set |= JO2_CWD;
--- 4793,4799 ----
                opt->jo_cwd = get_tv_string_buf_chk(item, opt->jo_cwd_buf);
                if (opt->jo_cwd == NULL || !mch_isdir(opt->jo_cwd))
                {
!                   EMSG2(_(e_invargval), "cwd");
                    return FAIL;
                }
                opt->jo_set |= JO2_CWD;
***************
*** 4838,4844 ****
                    opt->jo_part = PART_OUT;
                else
                {
!                   EMSG2(_(e_invarg2), val);
                    return FAIL;
                }
            }
--- 4838,4844 ----
                    opt->jo_part = PART_OUT;
                else
                {
!                   EMSG3(_(e_invargNval), "part", val);
                    return FAIL;
                }
            }
***************
*** 4858,4864 ****
                                                             opt->jo_soe_buf);
                if (opt->jo_stoponexit == NULL)
                {
!                   EMSG2(_(e_invarg2), "stoponexit");
                    return FAIL;
                }
            }
--- 4858,4864 ----
                                                             opt->jo_soe_buf);
                if (opt->jo_stoponexit == NULL)
                {
!                   EMSG2(_(e_invargval), "stoponexit");
                    return FAIL;
                }
            }
*** ../vim-8.0.1515/src/globals.h       2018-02-13 12:26:08.908247730 +0100
--- src/globals.h       2018-02-13 15:08:43.690442578 +0100
***************
*** 1437,1442 ****
--- 1437,1444 ----
  EXTERN char_u e_invaddr[]     INIT(= N_("E14: Invalid address"));
  EXTERN char_u e_invarg[]      INIT(= N_("E474: Invalid argument"));
  EXTERN char_u e_invarg2[]     INIT(= N_("E475: Invalid argument: %s"));
+ EXTERN char_u e_invargval[]   INIT(= N_("E475: Invalid value for argument 
%s"));
+ EXTERN char_u e_invargNval[]  INIT(= N_("E475: Invalid value for argument %s: 
%s"));
  #ifdef FEAT_EVAL
  EXTERN char_u e_invexpr2[]    INIT(= N_("E15: Invalid expression: %s"));
  #endif
*** ../vim-8.0.1515/src/version.c       2018-02-13 14:07:14.716305872 +0100
--- src/version.c       2018-02-13 15:16:49.978995624 +0100
***************
*** 773,774 ****
--- 773,776 ----
  {   /* Add new patch number below this line */
+ /**/
+     1516,
  /**/

-- 
Trees moving back and forth is what makes the wind blow.

 /// Bram Moolenaar -- b...@moolenaar.net -- 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 vim_dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui