Mercurial > vim
comparison src/channel.c @ 13284:a69636c63103 v8.0.1516
patch 8.0.1516: errors for job options are not very specific
commit https://github.com/vim/vim/commit/b3292fa2d362b064ff8a115fc0ad794c1f1265d7
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Feb 13 15:17:58 2018 +0100
patch 8.0.1516: errors for job options are not very specific
Problem: Errors for job options are not very specific.
Solution: Add more specific error messages.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Tue, 13 Feb 2018 15:30:07 +0100 |
parents | ac42c4b11dbc |
children | fa198b71bab2 |
comparison
equal
deleted
inserted
replaced
13283:9fa6ae3de9ed | 13284:a69636c63103 |
---|---|
4456 | 4456 |
4457 if (tv->v_type == VAR_UNKNOWN) | 4457 if (tv->v_type == VAR_UNKNOWN) |
4458 return OK; | 4458 return OK; |
4459 if (tv->v_type != VAR_DICT) | 4459 if (tv->v_type != VAR_DICT) |
4460 { | 4460 { |
4461 EMSG(_(e_invarg)); | 4461 EMSG(_(e_dictreq)); |
4462 return FAIL; | 4462 return FAIL; |
4463 } | 4463 } |
4464 dict = tv->vval.v_dict; | 4464 dict = tv->vval.v_dict; |
4465 if (dict == NULL) | 4465 if (dict == NULL) |
4466 return OK; | 4466 return OK; |
4539 break; | 4539 break; |
4540 opt->jo_set |= JO_OUT_BUF << (part - PART_OUT); | 4540 opt->jo_set |= JO_OUT_BUF << (part - PART_OUT); |
4541 opt->jo_io_buf[part] = get_tv_number(item); | 4541 opt->jo_io_buf[part] = get_tv_number(item); |
4542 if (opt->jo_io_buf[part] <= 0) | 4542 if (opt->jo_io_buf[part] <= 0) |
4543 { | 4543 { |
4544 EMSG2(_(e_invarg2), get_tv_string(item)); | 4544 EMSG3(_(e_invargNval), hi->hi_key, get_tv_string(item)); |
4545 return FAIL; | 4545 return FAIL; |
4546 } | 4546 } |
4547 if (buflist_findnr(opt->jo_io_buf[part]) == NULL) | 4547 if (buflist_findnr(opt->jo_io_buf[part]) == NULL) |
4548 { | 4548 { |
4549 EMSGN(_(e_nobufnr), (long)opt->jo_io_buf[part]); | 4549 EMSGN(_(e_nobufnr), (long)opt->jo_io_buf[part]); |
4588 opt->jo_set |= JO_IN_BOT; | 4588 opt->jo_set |= JO_IN_BOT; |
4589 } | 4589 } |
4590 *lp = get_tv_number(item); | 4590 *lp = get_tv_number(item); |
4591 if (*lp < 0) | 4591 if (*lp < 0) |
4592 { | 4592 { |
4593 EMSG2(_(e_invarg2), get_tv_string(item)); | 4593 EMSG3(_(e_invargNval), hi->hi_key, get_tv_string(item)); |
4594 return FAIL; | 4594 return FAIL; |
4595 } | 4595 } |
4596 } | 4596 } |
4597 else if (STRCMP(hi->hi_key, "channel") == 0) | 4597 else if (STRCMP(hi->hi_key, "channel") == 0) |
4598 { | 4598 { |
4599 if (!(supported & JO_OUT_IO)) | 4599 if (!(supported & JO_OUT_IO)) |
4600 break; | 4600 break; |
4601 opt->jo_set |= JO_CHANNEL; | 4601 opt->jo_set |= JO_CHANNEL; |
4602 if (item->v_type != VAR_CHANNEL) | 4602 if (item->v_type != VAR_CHANNEL) |
4603 { | 4603 { |
4604 EMSG2(_(e_invarg2), "channel"); | 4604 EMSG2(_(e_invargval), "channel"); |
4605 return FAIL; | 4605 return FAIL; |
4606 } | 4606 } |
4607 opt->jo_channel = item->vval.v_channel; | 4607 opt->jo_channel = item->vval.v_channel; |
4608 } | 4608 } |
4609 else if (STRCMP(hi->hi_key, "callback") == 0) | 4609 else if (STRCMP(hi->hi_key, "callback") == 0) |
4612 break; | 4612 break; |
4613 opt->jo_set |= JO_CALLBACK; | 4613 opt->jo_set |= JO_CALLBACK; |
4614 opt->jo_callback = get_callback(item, &opt->jo_partial); | 4614 opt->jo_callback = get_callback(item, &opt->jo_partial); |
4615 if (opt->jo_callback == NULL) | 4615 if (opt->jo_callback == NULL) |
4616 { | 4616 { |
4617 EMSG2(_(e_invarg2), "callback"); | 4617 EMSG2(_(e_invargval), "callback"); |
4618 return FAIL; | 4618 return FAIL; |
4619 } | 4619 } |
4620 } | 4620 } |
4621 else if (STRCMP(hi->hi_key, "out_cb") == 0) | 4621 else if (STRCMP(hi->hi_key, "out_cb") == 0) |
4622 { | 4622 { |
4624 break; | 4624 break; |
4625 opt->jo_set |= JO_OUT_CALLBACK; | 4625 opt->jo_set |= JO_OUT_CALLBACK; |
4626 opt->jo_out_cb = get_callback(item, &opt->jo_out_partial); | 4626 opt->jo_out_cb = get_callback(item, &opt->jo_out_partial); |
4627 if (opt->jo_out_cb == NULL) | 4627 if (opt->jo_out_cb == NULL) |
4628 { | 4628 { |
4629 EMSG2(_(e_invarg2), "out_cb"); | 4629 EMSG2(_(e_invargval), "out_cb"); |
4630 return FAIL; | 4630 return FAIL; |
4631 } | 4631 } |
4632 } | 4632 } |
4633 else if (STRCMP(hi->hi_key, "err_cb") == 0) | 4633 else if (STRCMP(hi->hi_key, "err_cb") == 0) |
4634 { | 4634 { |
4636 break; | 4636 break; |
4637 opt->jo_set |= JO_ERR_CALLBACK; | 4637 opt->jo_set |= JO_ERR_CALLBACK; |
4638 opt->jo_err_cb = get_callback(item, &opt->jo_err_partial); | 4638 opt->jo_err_cb = get_callback(item, &opt->jo_err_partial); |
4639 if (opt->jo_err_cb == NULL) | 4639 if (opt->jo_err_cb == NULL) |
4640 { | 4640 { |
4641 EMSG2(_(e_invarg2), "err_cb"); | 4641 EMSG2(_(e_invargval), "err_cb"); |
4642 return FAIL; | 4642 return FAIL; |
4643 } | 4643 } |
4644 } | 4644 } |
4645 else if (STRCMP(hi->hi_key, "close_cb") == 0) | 4645 else if (STRCMP(hi->hi_key, "close_cb") == 0) |
4646 { | 4646 { |
4648 break; | 4648 break; |
4649 opt->jo_set |= JO_CLOSE_CALLBACK; | 4649 opt->jo_set |= JO_CLOSE_CALLBACK; |
4650 opt->jo_close_cb = get_callback(item, &opt->jo_close_partial); | 4650 opt->jo_close_cb = get_callback(item, &opt->jo_close_partial); |
4651 if (opt->jo_close_cb == NULL) | 4651 if (opt->jo_close_cb == NULL) |
4652 { | 4652 { |
4653 EMSG2(_(e_invarg2), "close_cb"); | 4653 EMSG2(_(e_invargval), "close_cb"); |
4654 return FAIL; | 4654 return FAIL; |
4655 } | 4655 } |
4656 } | 4656 } |
4657 else if (STRCMP(hi->hi_key, "drop") == 0) | 4657 else if (STRCMP(hi->hi_key, "drop") == 0) |
4658 { | 4658 { |
4661 | 4661 |
4662 if (STRCMP(val, "never") == 0) | 4662 if (STRCMP(val, "never") == 0) |
4663 never = TRUE; | 4663 never = TRUE; |
4664 else if (STRCMP(val, "auto") != 0) | 4664 else if (STRCMP(val, "auto") != 0) |
4665 { | 4665 { |
4666 EMSG2(_(e_invarg2), "drop"); | 4666 EMSG3(_(e_invargNval), "drop", val); |
4667 return FAIL; | 4667 return FAIL; |
4668 } | 4668 } |
4669 opt->jo_drop_never = never; | 4669 opt->jo_drop_never = never; |
4670 } | 4670 } |
4671 else if (STRCMP(hi->hi_key, "exit_cb") == 0) | 4671 else if (STRCMP(hi->hi_key, "exit_cb") == 0) |
4674 break; | 4674 break; |
4675 opt->jo_set |= JO_EXIT_CB; | 4675 opt->jo_set |= JO_EXIT_CB; |
4676 opt->jo_exit_cb = get_callback(item, &opt->jo_exit_partial); | 4676 opt->jo_exit_cb = get_callback(item, &opt->jo_exit_partial); |
4677 if (opt->jo_exit_cb == NULL) | 4677 if (opt->jo_exit_cb == NULL) |
4678 { | 4678 { |
4679 EMSG2(_(e_invarg2), "exit_cb"); | 4679 EMSG2(_(e_invargval), "exit_cb"); |
4680 return FAIL; | 4680 return FAIL; |
4681 } | 4681 } |
4682 } | 4682 } |
4683 #ifdef FEAT_TERMINAL | 4683 #ifdef FEAT_TERMINAL |
4684 else if (STRCMP(hi->hi_key, "term_name") == 0) | 4684 else if (STRCMP(hi->hi_key, "term_name") == 0) |
4687 break; | 4687 break; |
4688 opt->jo_set2 |= JO2_TERM_NAME; | 4688 opt->jo_set2 |= JO2_TERM_NAME; |
4689 opt->jo_term_name = get_tv_string_chk(item); | 4689 opt->jo_term_name = get_tv_string_chk(item); |
4690 if (opt->jo_term_name == NULL) | 4690 if (opt->jo_term_name == NULL) |
4691 { | 4691 { |
4692 EMSG2(_(e_invarg2), "term_name"); | 4692 EMSG2(_(e_invargval), "term_name"); |
4693 return FAIL; | 4693 return FAIL; |
4694 } | 4694 } |
4695 } | 4695 } |
4696 else if (STRCMP(hi->hi_key, "term_finish") == 0) | 4696 else if (STRCMP(hi->hi_key, "term_finish") == 0) |
4697 { | 4697 { |
4698 if (!(supported2 & JO2_TERM_FINISH)) | 4698 if (!(supported2 & JO2_TERM_FINISH)) |
4699 break; | 4699 break; |
4700 val = get_tv_string(item); | 4700 val = get_tv_string(item); |
4701 if (STRCMP(val, "open") != 0 && STRCMP(val, "close") != 0) | 4701 if (STRCMP(val, "open") != 0 && STRCMP(val, "close") != 0) |
4702 { | 4702 { |
4703 EMSG2(_(e_invarg2), val); | 4703 EMSG3(_(e_invargNval), "term_finish", val); |
4704 return FAIL; | 4704 return FAIL; |
4705 } | 4705 } |
4706 opt->jo_set2 |= JO2_TERM_FINISH; | 4706 opt->jo_set2 |= JO2_TERM_FINISH; |
4707 opt->jo_term_finish = *val; | 4707 opt->jo_term_finish = *val; |
4708 } | 4708 } |
4722 || vim_strchr(p + 2, '%') != NULL)) | 4722 || vim_strchr(p + 2, '%') != NULL)) |
4723 p = NULL; | 4723 p = NULL; |
4724 } | 4724 } |
4725 if (p == NULL) | 4725 if (p == NULL) |
4726 { | 4726 { |
4727 EMSG2(_(e_invarg2), "term_opencmd"); | 4727 EMSG2(_(e_invargval), "term_opencmd"); |
4728 return FAIL; | 4728 return FAIL; |
4729 } | 4729 } |
4730 } | 4730 } |
4731 else if (STRCMP(hi->hi_key, "eof_chars") == 0) | 4731 else if (STRCMP(hi->hi_key, "eof_chars") == 0) |
4732 { | 4732 { |
4736 break; | 4736 break; |
4737 opt->jo_set2 |= JO2_EOF_CHARS; | 4737 opt->jo_set2 |= JO2_EOF_CHARS; |
4738 p = opt->jo_eof_chars = get_tv_string_chk(item); | 4738 p = opt->jo_eof_chars = get_tv_string_chk(item); |
4739 if (p == NULL) | 4739 if (p == NULL) |
4740 { | 4740 { |
4741 EMSG2(_(e_invarg2), "term_opencmd"); | 4741 EMSG2(_(e_invargval), "eof_chars"); |
4742 return FAIL; | 4742 return FAIL; |
4743 } | 4743 } |
4744 } | 4744 } |
4745 else if (STRCMP(hi->hi_key, "term_rows") == 0) | 4745 else if (STRCMP(hi->hi_key, "term_rows") == 0) |
4746 { | 4746 { |
4791 if (!(supported2 & JO2_CWD)) | 4791 if (!(supported2 & JO2_CWD)) |
4792 break; | 4792 break; |
4793 opt->jo_cwd = get_tv_string_buf_chk(item, opt->jo_cwd_buf); | 4793 opt->jo_cwd = get_tv_string_buf_chk(item, opt->jo_cwd_buf); |
4794 if (opt->jo_cwd == NULL || !mch_isdir(opt->jo_cwd)) | 4794 if (opt->jo_cwd == NULL || !mch_isdir(opt->jo_cwd)) |
4795 { | 4795 { |
4796 EMSG2(_(e_invarg2), "cwd"); | 4796 EMSG2(_(e_invargval), "cwd"); |
4797 return FAIL; | 4797 return FAIL; |
4798 } | 4798 } |
4799 opt->jo_set |= JO2_CWD; | 4799 opt->jo_set |= JO2_CWD; |
4800 } | 4800 } |
4801 else if (STRCMP(hi->hi_key, "waittime") == 0) | 4801 else if (STRCMP(hi->hi_key, "waittime") == 0) |
4836 opt->jo_part = PART_ERR; | 4836 opt->jo_part = PART_ERR; |
4837 else if (STRCMP(val, "out") == 0) | 4837 else if (STRCMP(val, "out") == 0) |
4838 opt->jo_part = PART_OUT; | 4838 opt->jo_part = PART_OUT; |
4839 else | 4839 else |
4840 { | 4840 { |
4841 EMSG2(_(e_invarg2), val); | 4841 EMSG3(_(e_invargNval), "part", val); |
4842 return FAIL; | 4842 return FAIL; |
4843 } | 4843 } |
4844 } | 4844 } |
4845 else if (STRCMP(hi->hi_key, "id") == 0) | 4845 else if (STRCMP(hi->hi_key, "id") == 0) |
4846 { | 4846 { |
4856 opt->jo_set |= JO_STOPONEXIT; | 4856 opt->jo_set |= JO_STOPONEXIT; |
4857 opt->jo_stoponexit = get_tv_string_buf_chk(item, | 4857 opt->jo_stoponexit = get_tv_string_buf_chk(item, |
4858 opt->jo_soe_buf); | 4858 opt->jo_soe_buf); |
4859 if (opt->jo_stoponexit == NULL) | 4859 if (opt->jo_stoponexit == NULL) |
4860 { | 4860 { |
4861 EMSG2(_(e_invarg2), "stoponexit"); | 4861 EMSG2(_(e_invargval), "stoponexit"); |
4862 return FAIL; | 4862 return FAIL; |
4863 } | 4863 } |
4864 } | 4864 } |
4865 else if (STRCMP(hi->hi_key, "block_write") == 0) | 4865 else if (STRCMP(hi->hi_key, "block_write") == 0) |
4866 { | 4866 { |