Mercurial > vim
comparison src/terminal.c @ 15470:55ccc2d353bd v8.1.0743
patch 8.1.0743: giving error messages is not flexible
commit https://github.com/vim/vim/commit/f9e3e09fdc93be9f0d47afbc6c7df1188c2a5a0d
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Jan 13 23:38:42 2019 +0100
patch 8.1.0743: giving error messages is not flexible
Problem: Giving error messages is not flexible.
Solution: Add semsg(). Change argument from "char_u *" to "char *", also
for msg() and get rid of most MSG macros. (Ozaki Kiichi, closes
#3302) Also make emsg() accept a "char *" argument. Get rid of
an enormous number of type casts.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 13 Jan 2019 23:45:08 +0100 |
parents | 73b153ed5af8 |
children | 247511eadb7a |
comparison
equal
deleted
inserted
replaced
15469:bc9b5261ed01 | 15470:55ccc2d353bd |
---|---|
375 if ((opt->jo_set & (JO_IN_IO + JO_OUT_IO + JO_ERR_IO)) | 375 if ((opt->jo_set & (JO_IN_IO + JO_OUT_IO + JO_ERR_IO)) |
376 == (JO_IN_IO + JO_OUT_IO + JO_ERR_IO) | 376 == (JO_IN_IO + JO_OUT_IO + JO_ERR_IO) |
377 || (!(opt->jo_set & JO_OUT_IO) && (opt->jo_set & JO_OUT_BUF)) | 377 || (!(opt->jo_set & JO_OUT_IO) && (opt->jo_set & JO_OUT_BUF)) |
378 || (!(opt->jo_set & JO_ERR_IO) && (opt->jo_set & JO_ERR_BUF))) | 378 || (!(opt->jo_set & JO_ERR_IO) && (opt->jo_set & JO_ERR_BUF))) |
379 { | 379 { |
380 EMSG(_(e_invarg)); | 380 emsg(_(e_invarg)); |
381 return NULL; | 381 return NULL; |
382 } | 382 } |
383 | 383 |
384 term = (term_T *)alloc_clear(sizeof(term_T)); | 384 term = (term_T *)alloc_clear(sizeof(term_T)); |
385 if (term == NULL) | 385 if (term == NULL) |
717 } | 717 } |
718 else | 718 else |
719 { | 719 { |
720 if (*p) | 720 if (*p) |
721 *p = NUL; | 721 *p = NUL; |
722 EMSG2(_("E181: Invalid attribute: %s"), cmd); | 722 semsg(_("E181: Invalid attribute: %s"), cmd); |
723 goto theend; | 723 goto theend; |
724 } | 724 } |
725 cmd = skipwhite(p); | 725 cmd = skipwhite(p); |
726 } | 726 } |
727 if (*cmd == NUL) | 727 if (*cmd == NUL) |
3485 | 3485 |
3486 if (var != NULL | 3486 if (var != NULL |
3487 && (var->di_tv.v_type != VAR_LIST | 3487 && (var->di_tv.v_type != VAR_LIST |
3488 || var->di_tv.vval.v_list == NULL | 3488 || var->di_tv.vval.v_list == NULL |
3489 || set_ansi_colors_list(vterm, var->di_tv.vval.v_list) == FAIL)) | 3489 || set_ansi_colors_list(vterm, var->di_tv.vval.v_list) == FAIL)) |
3490 EMSG2(_(e_invarg2), "g:terminal_ansi_colors"); | 3490 semsg(_(e_invarg2), "g:terminal_ansi_colors"); |
3491 } | 3491 } |
3492 #endif | 3492 #endif |
3493 | 3493 |
3494 /* | 3494 /* |
3495 * Handles a "drop" command from the job in the terminal. | 3495 * Handles a "drop" command from the job in the terminal. |
3912 if (buf == NULL) | 3912 if (buf == NULL) |
3913 return; | 3913 return; |
3914 term = buf->b_term; | 3914 term = buf->b_term; |
3915 if (term->tl_vterm == NULL) | 3915 if (term->tl_vterm == NULL) |
3916 { | 3916 { |
3917 EMSG(_("E958: Job already finished")); | 3917 emsg(_("E958: Job already finished")); |
3918 return; | 3918 return; |
3919 } | 3919 } |
3920 | 3920 |
3921 if (argvars[2].v_type != VAR_UNKNOWN) | 3921 if (argvars[2].v_type != VAR_UNKNOWN) |
3922 { | 3922 { |
3923 dict_T *d; | 3923 dict_T *d; |
3924 | 3924 |
3925 if (argvars[2].v_type != VAR_DICT) | 3925 if (argvars[2].v_type != VAR_DICT) |
3926 { | 3926 { |
3927 EMSG(_(e_dictreq)); | 3927 emsg(_(e_dictreq)); |
3928 return; | 3928 return; |
3929 } | 3929 } |
3930 d = argvars[2].vval.v_dict; | 3930 d = argvars[2].vval.v_dict; |
3931 if (d != NULL) | 3931 if (d != NULL) |
3932 { | 3932 { |
3938 fname = tv_get_string_chk(&argvars[1]); | 3938 fname = tv_get_string_chk(&argvars[1]); |
3939 if (fname == NULL) | 3939 if (fname == NULL) |
3940 return; | 3940 return; |
3941 if (mch_stat((char *)fname, &st) >= 0) | 3941 if (mch_stat((char *)fname, &st) >= 0) |
3942 { | 3942 { |
3943 EMSG2(_("E953: File exists: %s"), fname); | 3943 semsg(_("E953: File exists: %s"), fname); |
3944 return; | 3944 return; |
3945 } | 3945 } |
3946 | 3946 |
3947 if (*fname == NUL || (fd = mch_fopen((char *)fname, WRITEBIN)) == NULL) | 3947 if (*fname == NUL || (fd = mch_fopen((char *)fname, WRITEBIN)) == NULL) |
3948 { | 3948 { |
3949 EMSG2(_(e_notcreate), *fname == NUL ? (char_u *)_("<empty>") : fname); | 3949 semsg(_(e_notcreate), *fname == NUL ? (char_u *)_("<empty>") : fname); |
3950 return; | 3950 return; |
3951 } | 3951 } |
3952 | 3952 |
3953 vim_memset(&prev_cell, 0, sizeof(prev_cell)); | 3953 vim_memset(&prev_cell, 0, sizeof(prev_cell)); |
3954 | 3954 |
4387 fname1 = tv_get_string_buf_chk(&argvars[0], buf1); | 4387 fname1 = tv_get_string_buf_chk(&argvars[0], buf1); |
4388 if (do_diff) | 4388 if (do_diff) |
4389 fname2 = tv_get_string_buf_chk(&argvars[1], buf2); | 4389 fname2 = tv_get_string_buf_chk(&argvars[1], buf2); |
4390 if (fname1 == NULL || (do_diff && fname2 == NULL)) | 4390 if (fname1 == NULL || (do_diff && fname2 == NULL)) |
4391 { | 4391 { |
4392 EMSG(_(e_invarg)); | 4392 emsg(_(e_invarg)); |
4393 return; | 4393 return; |
4394 } | 4394 } |
4395 fd1 = mch_fopen((char *)fname1, READBIN); | 4395 fd1 = mch_fopen((char *)fname1, READBIN); |
4396 if (fd1 == NULL) | 4396 if (fd1 == NULL) |
4397 { | 4397 { |
4398 EMSG2(_(e_notread), fname1); | 4398 semsg(_(e_notread), fname1); |
4399 return; | 4399 return; |
4400 } | 4400 } |
4401 if (do_diff) | 4401 if (do_diff) |
4402 { | 4402 { |
4403 fd2 = mch_fopen((char *)fname2, READBIN); | 4403 fd2 = mch_fopen((char *)fname2, READBIN); |
4404 if (fd2 == NULL) | 4404 if (fd2 == NULL) |
4405 { | 4405 { |
4406 fclose(fd1); | 4406 fclose(fd1); |
4407 EMSG2(_(e_notread), fname2); | 4407 semsg(_(e_notread), fname2); |
4408 return; | 4408 return; |
4409 } | 4409 } |
4410 } | 4410 } |
4411 | 4411 |
4412 init_job_options(&opt); | 4412 init_job_options(&opt); |
4920 term_T *term; | 4920 term_T *term; |
4921 varnumber_T rows, cols; | 4921 varnumber_T rows, cols; |
4922 | 4922 |
4923 if (buf == NULL) | 4923 if (buf == NULL) |
4924 { | 4924 { |
4925 EMSG(_("E955: Not a terminal buffer")); | 4925 emsg(_("E955: Not a terminal buffer")); |
4926 return; | 4926 return; |
4927 } | 4927 } |
4928 if (buf->b_term->tl_vterm == NULL) | 4928 if (buf->b_term->tl_vterm == NULL) |
4929 return; | 4929 return; |
4930 term = buf->b_term; | 4930 term = buf->b_term; |
5005 case 1: | 5005 case 1: |
5006 if (buf->b_term->tl_job != NULL) | 5006 if (buf->b_term->tl_job != NULL) |
5007 p = buf->b_term->tl_job->jv_tty_in; | 5007 p = buf->b_term->tl_job->jv_tty_in; |
5008 break; | 5008 break; |
5009 default: | 5009 default: |
5010 EMSG2(_(e_invarg2), tv_get_string(&argvars[1])); | 5010 semsg(_(e_invarg2), tv_get_string(&argvars[1])); |
5011 return; | 5011 return; |
5012 } | 5012 } |
5013 if (p != NULL) | 5013 if (p != NULL) |
5014 rettv->vval.v_string = vim_strsave(p); | 5014 rettv->vval.v_string = vim_strsave(p); |
5015 } | 5015 } |
5234 if (term->tl_vterm == NULL) | 5234 if (term->tl_vterm == NULL) |
5235 return; | 5235 return; |
5236 | 5236 |
5237 if (argvars[1].v_type != VAR_LIST || argvars[1].vval.v_list == NULL) | 5237 if (argvars[1].v_type != VAR_LIST || argvars[1].vval.v_list == NULL) |
5238 { | 5238 { |
5239 EMSG(_(e_listreq)); | 5239 emsg(_(e_listreq)); |
5240 return; | 5240 return; |
5241 } | 5241 } |
5242 | 5242 |
5243 if (set_ansi_colors_list(term->tl_vterm, argvars[1].vval.v_list) == FAIL) | 5243 if (set_ansi_colors_list(term->tl_vterm, argvars[1].vval.v_list) == FAIL) |
5244 EMSG(_(e_invarg)); | 5244 emsg(_(e_invarg)); |
5245 } | 5245 } |
5246 #endif | 5246 #endif |
5247 | 5247 |
5248 /* | 5248 /* |
5249 * "term_setrestore(buf, command)" function | 5249 * "term_setrestore(buf, command)" function |
5483 if (!hWinPtyDLL) | 5483 if (!hWinPtyDLL) |
5484 hWinPtyDLL = vimLoadLib(WINPTY_DLL); | 5484 hWinPtyDLL = vimLoadLib(WINPTY_DLL); |
5485 if (!hWinPtyDLL) | 5485 if (!hWinPtyDLL) |
5486 { | 5486 { |
5487 if (verbose) | 5487 if (verbose) |
5488 EMSG2(_(e_loadlib), *p_winptydll != NUL ? p_winptydll | 5488 semsg(_(e_loadlib), *p_winptydll != NUL ? p_winptydll |
5489 : (char_u *)WINPTY_DLL); | 5489 : (char_u *)WINPTY_DLL); |
5490 return FAIL; | 5490 return FAIL; |
5491 } | 5491 } |
5492 for (i = 0; winpty_entry[i].name != NULL | 5492 for (i = 0; winpty_entry[i].name != NULL |
5493 && winpty_entry[i].ptr != NULL; ++i) | 5493 && winpty_entry[i].ptr != NULL; ++i) |
5494 { | 5494 { |
5495 if ((*winpty_entry[i].ptr = (FARPROC)GetProcAddress(hWinPtyDLL, | 5495 if ((*winpty_entry[i].ptr = (FARPROC)GetProcAddress(hWinPtyDLL, |
5496 winpty_entry[i].name)) == NULL) | 5496 winpty_entry[i].name)) == NULL) |
5497 { | 5497 { |
5498 if (verbose) | 5498 if (verbose) |
5499 EMSG2(_(e_loadfunc), winpty_entry[i].name); | 5499 semsg(_(e_loadfunc), winpty_entry[i].name); |
5500 return FAIL; | 5500 return FAIL; |
5501 } | 5501 } |
5502 } | 5502 } |
5503 | 5503 |
5504 return OK; | 5504 return OK; |
5546 goto failed; | 5546 goto failed; |
5547 cmd = ga_cmd.ga_data; | 5547 cmd = ga_cmd.ga_data; |
5548 } | 5548 } |
5549 if (cmd == NULL || *cmd == NUL) | 5549 if (cmd == NULL || *cmd == NUL) |
5550 { | 5550 { |
5551 EMSG(_(e_invarg)); | 5551 emsg(_(e_invarg)); |
5552 goto failed; | 5552 goto failed; |
5553 } | 5553 } |
5554 | 5554 |
5555 cmd_wchar = enc_to_utf16(cmd, NULL); | 5555 cmd_wchar = enc_to_utf16(cmd, NULL); |
5556 ga_clear(&ga_cmd); | 5556 ga_clear(&ga_cmd); |
5678 char_u *fname = opt->jo_io_name[PART_OUT]; | 5678 char_u *fname = opt->jo_io_name[PART_OUT]; |
5679 | 5679 |
5680 ch_log(channel, "Opening output file %s", fname); | 5680 ch_log(channel, "Opening output file %s", fname); |
5681 term->tl_out_fd = mch_fopen((char *)fname, WRITEBIN); | 5681 term->tl_out_fd = mch_fopen((char *)fname, WRITEBIN); |
5682 if (term->tl_out_fd == NULL) | 5682 if (term->tl_out_fd == NULL) |
5683 EMSG2(_(e_notopen), fname); | 5683 semsg(_(e_notopen), fname); |
5684 } | 5684 } |
5685 | 5685 |
5686 return OK; | 5686 return OK; |
5687 | 5687 |
5688 failed: | 5688 failed: |
5711 if (winpty_err != NULL) | 5711 if (winpty_err != NULL) |
5712 { | 5712 { |
5713 char_u *msg = utf16_to_enc( | 5713 char_u *msg = utf16_to_enc( |
5714 (short_u *)winpty_error_msg(winpty_err), NULL); | 5714 (short_u *)winpty_error_msg(winpty_err), NULL); |
5715 | 5715 |
5716 EMSG(msg); | 5716 emsg(msg); |
5717 winpty_error_free(winpty_err); | 5717 winpty_error_free(winpty_err); |
5718 } | 5718 } |
5719 return FAIL; | 5719 return FAIL; |
5720 } | 5720 } |
5721 | 5721 |