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);