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