Mercurial > vim
comparison src/channel.c @ 13438:33eea5ce5415 v8.0.1593
patch 8.0.1593: :qall never exits with an active terminal window
commit https://github.com/vim/vim/commit/25cdd9c33b21ddbd31321c075873bb225450d2d2
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Mar 10 20:28:12 2018 +0100
patch 8.0.1593: :qall never exits with an active terminal window
Problem: :qall never exits with an active terminal window.
Solution: Add a way to kill a job in a terminal window.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sat, 10 Mar 2018 20:30:04 +0100 |
parents | fa198b71bab2 |
children | 6faef782f50b |
comparison
equal
deleted
inserted
replaced
13437:02b3f719eacb | 13438:33eea5ce5415 |
---|---|
4744 } | 4744 } |
4745 else if (STRCMP(hi->hi_key, "term_rows") == 0) | 4745 else if (STRCMP(hi->hi_key, "term_rows") == 0) |
4746 { | 4746 { |
4747 if (!(supported2 & JO2_TERM_ROWS)) | 4747 if (!(supported2 & JO2_TERM_ROWS)) |
4748 break; | 4748 break; |
4749 opt->jo_set |= JO2_TERM_ROWS; | 4749 opt->jo_set2 |= JO2_TERM_ROWS; |
4750 opt->jo_term_rows = get_tv_number(item); | 4750 opt->jo_term_rows = get_tv_number(item); |
4751 } | 4751 } |
4752 else if (STRCMP(hi->hi_key, "term_cols") == 0) | 4752 else if (STRCMP(hi->hi_key, "term_cols") == 0) |
4753 { | 4753 { |
4754 if (!(supported2 & JO2_TERM_COLS)) | 4754 if (!(supported2 & JO2_TERM_COLS)) |
4755 break; | 4755 break; |
4756 opt->jo_set |= JO2_TERM_COLS; | 4756 opt->jo_set2 |= JO2_TERM_COLS; |
4757 opt->jo_term_cols = get_tv_number(item); | 4757 opt->jo_term_cols = get_tv_number(item); |
4758 } | 4758 } |
4759 else if (STRCMP(hi->hi_key, "vertical") == 0) | 4759 else if (STRCMP(hi->hi_key, "vertical") == 0) |
4760 { | 4760 { |
4761 if (!(supported2 & JO2_VERTICAL)) | 4761 if (!(supported2 & JO2_VERTICAL)) |
4762 break; | 4762 break; |
4763 opt->jo_set |= JO2_VERTICAL; | 4763 opt->jo_set2 |= JO2_VERTICAL; |
4764 opt->jo_vertical = get_tv_number(item); | 4764 opt->jo_vertical = get_tv_number(item); |
4765 } | 4765 } |
4766 else if (STRCMP(hi->hi_key, "curwin") == 0) | 4766 else if (STRCMP(hi->hi_key, "curwin") == 0) |
4767 { | 4767 { |
4768 if (!(supported2 & JO2_CURWIN)) | 4768 if (!(supported2 & JO2_CURWIN)) |
4769 break; | 4769 break; |
4770 opt->jo_set |= JO2_CURWIN; | 4770 opt->jo_set2 |= JO2_CURWIN; |
4771 opt->jo_curwin = get_tv_number(item); | 4771 opt->jo_curwin = get_tv_number(item); |
4772 } | 4772 } |
4773 else if (STRCMP(hi->hi_key, "hidden") == 0) | 4773 else if (STRCMP(hi->hi_key, "hidden") == 0) |
4774 { | 4774 { |
4775 if (!(supported2 & JO2_HIDDEN)) | 4775 if (!(supported2 & JO2_HIDDEN)) |
4776 break; | 4776 break; |
4777 opt->jo_set |= JO2_HIDDEN; | 4777 opt->jo_set2 |= JO2_HIDDEN; |
4778 opt->jo_hidden = get_tv_number(item); | 4778 opt->jo_hidden = get_tv_number(item); |
4779 } | 4779 } |
4780 else if (STRCMP(hi->hi_key, "norestore") == 0) | 4780 else if (STRCMP(hi->hi_key, "norestore") == 0) |
4781 { | 4781 { |
4782 if (!(supported2 & JO2_NORESTORE)) | 4782 if (!(supported2 & JO2_NORESTORE)) |
4783 break; | 4783 break; |
4784 opt->jo_set |= JO2_NORESTORE; | 4784 opt->jo_set2 |= JO2_NORESTORE; |
4785 opt->jo_term_norestore = get_tv_number(item); | 4785 opt->jo_term_norestore = get_tv_number(item); |
4786 } | |
4787 else if (STRCMP(hi->hi_key, "term_kill") == 0) | |
4788 { | |
4789 if (!(supported2 & JO2_TERM_KILL)) | |
4790 break; | |
4791 opt->jo_set2 |= JO2_TERM_KILL; | |
4792 opt->jo_term_kill = get_tv_string_chk(item); | |
4786 } | 4793 } |
4787 #endif | 4794 #endif |
4788 else if (STRCMP(hi->hi_key, "env") == 0) | 4795 else if (STRCMP(hi->hi_key, "env") == 0) |
4789 { | 4796 { |
4790 if (!(supported2 & JO2_ENV)) | 4797 if (!(supported2 & JO2_ENV)) |
4791 break; | 4798 break; |
4792 opt->jo_set |= JO2_ENV; | 4799 opt->jo_set2 |= JO2_ENV; |
4793 opt->jo_env = item->vval.v_dict; | 4800 opt->jo_env = item->vval.v_dict; |
4794 ++item->vval.v_dict->dv_refcount; | 4801 ++item->vval.v_dict->dv_refcount; |
4795 } | 4802 } |
4796 else if (STRCMP(hi->hi_key, "cwd") == 0) | 4803 else if (STRCMP(hi->hi_key, "cwd") == 0) |
4797 { | 4804 { |
4801 if (opt->jo_cwd == NULL || !mch_isdir(opt->jo_cwd)) | 4808 if (opt->jo_cwd == NULL || !mch_isdir(opt->jo_cwd)) |
4802 { | 4809 { |
4803 EMSG2(_(e_invargval), "cwd"); | 4810 EMSG2(_(e_invargval), "cwd"); |
4804 return FAIL; | 4811 return FAIL; |
4805 } | 4812 } |
4806 opt->jo_set |= JO2_CWD; | 4813 opt->jo_set2 |= JO2_CWD; |
4807 } | 4814 } |
4808 else if (STRCMP(hi->hi_key, "waittime") == 0) | 4815 else if (STRCMP(hi->hi_key, "waittime") == 0) |
4809 { | 4816 { |
4810 if (!(supported & JO_WAITTIME)) | 4817 if (!(supported & JO_WAITTIME)) |
4811 break; | 4818 break; |