Mercurial > vim
comparison src/popupwin.c @ 17606:ff097edaae89 v8.1.1800
patch 8.1.1800: function call functions have too many arguments
commit https://github.com/vim/vim/commit/c6538bcc1cdd1fb83732f22fdc69bd9bb66f968a
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Aug 3 18:17:11 2019 +0200
patch 8.1.1800: function call functions have too many arguments
Problem: Function call functions have too many arguments.
Solution: Pass values in a funcexe_T struct.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 03 Aug 2019 18:30:07 +0200 |
parents | 506dd2efcbb2 |
children | 2ae30dac20d6 |
comparison
equal
deleted
inserted
replaced
17605:bb1b495f4e05 | 17606:ff097edaae89 |
---|---|
1671 */ | 1671 */ |
1672 static void | 1672 static void |
1673 invoke_popup_callback(win_T *wp, typval_T *result) | 1673 invoke_popup_callback(win_T *wp, typval_T *result) |
1674 { | 1674 { |
1675 typval_T rettv; | 1675 typval_T rettv; |
1676 int dummy; | |
1677 typval_T argv[3]; | 1676 typval_T argv[3]; |
1678 | 1677 |
1679 argv[0].v_type = VAR_NUMBER; | 1678 argv[0].v_type = VAR_NUMBER; |
1680 argv[0].vval.v_number = (varnumber_T)wp->w_id; | 1679 argv[0].vval.v_number = (varnumber_T)wp->w_id; |
1681 | 1680 |
1687 argv[1].vval.v_number = 0; | 1686 argv[1].vval.v_number = 0; |
1688 } | 1687 } |
1689 | 1688 |
1690 argv[2].v_type = VAR_UNKNOWN; | 1689 argv[2].v_type = VAR_UNKNOWN; |
1691 | 1690 |
1692 call_callback(&wp->w_close_cb, -1, | 1691 call_callback(&wp->w_close_cb, -1, &rettv, 2, argv); |
1693 &rettv, 2, argv, NULL, 0L, 0L, &dummy, TRUE, NULL); | |
1694 if (result != NULL) | 1692 if (result != NULL) |
1695 clear_tv(&argv[1]); | 1693 clear_tv(&argv[1]); |
1696 clear_tv(&rettv); | 1694 clear_tv(&rettv); |
1697 } | 1695 } |
1698 | 1696 |
2453 static int | 2451 static int |
2454 invoke_popup_filter(win_T *wp, int c) | 2452 invoke_popup_filter(win_T *wp, int c) |
2455 { | 2453 { |
2456 int res; | 2454 int res; |
2457 typval_T rettv; | 2455 typval_T rettv; |
2458 int dummy; | |
2459 typval_T argv[3]; | 2456 typval_T argv[3]; |
2460 char_u buf[NUMBUFLEN]; | 2457 char_u buf[NUMBUFLEN]; |
2461 linenr_T old_lnum = wp->w_cursor.lnum; | 2458 linenr_T old_lnum = wp->w_cursor.lnum; |
2462 | 2459 |
2463 // Emergency exit: CTRL-C closes the popup. | 2460 // Emergency exit: CTRL-C closes the popup. |
2479 argv[1].vval.v_string = vim_strsave(buf); | 2476 argv[1].vval.v_string = vim_strsave(buf); |
2480 | 2477 |
2481 argv[2].v_type = VAR_UNKNOWN; | 2478 argv[2].v_type = VAR_UNKNOWN; |
2482 | 2479 |
2483 // NOTE: The callback might close the popup, thus make "wp" invalid. | 2480 // NOTE: The callback might close the popup, thus make "wp" invalid. |
2484 call_callback(&wp->w_filter_cb, -1, | 2481 call_callback(&wp->w_filter_cb, -1, &rettv, 2, argv); |
2485 &rettv, 2, argv, NULL, 0L, 0L, &dummy, TRUE, NULL); | |
2486 if (win_valid_popup(wp) && old_lnum != wp->w_cursor.lnum) | 2482 if (win_valid_popup(wp) && old_lnum != wp->w_cursor.lnum) |
2487 popup_highlight_curline(wp); | 2483 popup_highlight_curline(wp); |
2488 | 2484 |
2489 res = tv_get_number(&rettv); | 2485 res = tv_get_number(&rettv); |
2490 vim_free(argv[1].vval.v_string); | 2486 vim_free(argv[1].vval.v_string); |