comparison src/eval.c @ 7720:7c52f11e6df3 v7.4.1158

commit https://github.com/vim/vim/commit/48e697e4b6b6b490c58ec9393da9b2d2ea47c6d8 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Jan 23 22:17:30 2016 +0100 patch 7.4.1158 Problem: Still using __ARGS(). Solution: Remove __ARGS() from eval.c
author Christian Brabandt <cb@256bit.org>
date Sat, 23 Jan 2016 22:30:04 +0100
parents 6ebd8bdf41bc
children 80ce794827c4
comparison
equal deleted inserted replaced
7719:fa9ea3fbf917 7720:7c52f11e6df3
386 #define vv_tv vv_di.di_tv 386 #define vv_tv vv_di.di_tv
387 387
388 static dictitem_T vimvars_var; /* variable used for v: */ 388 static dictitem_T vimvars_var; /* variable used for v: */
389 #define vimvarht vimvardict.dv_hashtab 389 #define vimvarht vimvardict.dv_hashtab
390 390
391 static void prepare_vimvar __ARGS((int idx, typval_T *save_tv)); 391 static void prepare_vimvar(int idx, typval_T *save_tv);
392 static void restore_vimvar __ARGS((int idx, typval_T *save_tv)); 392 static void restore_vimvar(int idx, typval_T *save_tv);
393 static int ex_let_vars __ARGS((char_u *arg, typval_T *tv, int copy, int semicolon, int var_count, char_u *nextchars)); 393 static int ex_let_vars(char_u *arg, typval_T *tv, int copy, int semicolon, int var_count, char_u *nextchars);
394 static char_u *skip_var_list __ARGS((char_u *arg, int *var_count, int *semicolon)); 394 static char_u *skip_var_list(char_u *arg, int *var_count, int *semicolon);
395 static char_u *skip_var_one __ARGS((char_u *arg)); 395 static char_u *skip_var_one(char_u *arg);
396 static void list_hashtable_vars __ARGS((hashtab_T *ht, char_u *prefix, int empty, int *first)); 396 static void list_hashtable_vars(hashtab_T *ht, char_u *prefix, int empty, int *first);
397 static void list_glob_vars __ARGS((int *first)); 397 static void list_glob_vars(int *first);
398 static void list_buf_vars __ARGS((int *first)); 398 static void list_buf_vars(int *first);
399 static void list_win_vars __ARGS((int *first)); 399 static void list_win_vars(int *first);
400 #ifdef FEAT_WINDOWS 400 #ifdef FEAT_WINDOWS
401 static void list_tab_vars __ARGS((int *first)); 401 static void list_tab_vars(int *first);
402 #endif 402 #endif
403 static void list_vim_vars __ARGS((int *first)); 403 static void list_vim_vars(int *first);
404 static void list_script_vars __ARGS((int *first)); 404 static void list_script_vars(int *first);
405 static void list_func_vars __ARGS((int *first)); 405 static void list_func_vars(int *first);
406 static char_u *list_arg_vars __ARGS((exarg_T *eap, char_u *arg, int *first)); 406 static char_u *list_arg_vars(exarg_T *eap, char_u *arg, int *first);
407 static char_u *ex_let_one __ARGS((char_u *arg, typval_T *tv, int copy, char_u *endchars, char_u *op)); 407 static char_u *ex_let_one(char_u *arg, typval_T *tv, int copy, char_u *endchars, char_u *op);
408 static int check_changedtick __ARGS((char_u *arg)); 408 static int check_changedtick(char_u *arg);
409 static char_u *get_lval __ARGS((char_u *name, typval_T *rettv, lval_T *lp, int unlet, int skip, int flags, int fne_flags)); 409 static char_u *get_lval(char_u *name, typval_T *rettv, lval_T *lp, int unlet, int skip, int flags, int fne_flags);
410 static void clear_lval __ARGS((lval_T *lp)); 410 static void clear_lval(lval_T *lp);
411 static void set_var_lval __ARGS((lval_T *lp, char_u *endp, typval_T *rettv, int copy, char_u *op)); 411 static void set_var_lval(lval_T *lp, char_u *endp, typval_T *rettv, int copy, char_u *op);
412 static int tv_op __ARGS((typval_T *tv1, typval_T *tv2, char_u *op)); 412 static int tv_op(typval_T *tv1, typval_T *tv2, char_u *op);
413 static void list_fix_watch __ARGS((list_T *l, listitem_T *item)); 413 static void list_fix_watch(list_T *l, listitem_T *item);
414 static void ex_unletlock __ARGS((exarg_T *eap, char_u *argstart, int deep)); 414 static void ex_unletlock(exarg_T *eap, char_u *argstart, int deep);
415 static int do_unlet_var __ARGS((lval_T *lp, char_u *name_end, int forceit)); 415 static int do_unlet_var(lval_T *lp, char_u *name_end, int forceit);
416 static int do_lock_var __ARGS((lval_T *lp, char_u *name_end, int deep, int lock)); 416 static int do_lock_var(lval_T *lp, char_u *name_end, int deep, int lock);
417 static void item_lock __ARGS((typval_T *tv, int deep, int lock)); 417 static void item_lock(typval_T *tv, int deep, int lock);
418 static int tv_islocked __ARGS((typval_T *tv)); 418 static int tv_islocked(typval_T *tv);
419 419
420 static int eval0 __ARGS((char_u *arg, typval_T *rettv, char_u **nextcmd, int evaluate)); 420 static int eval0(char_u *arg, typval_T *rettv, char_u **nextcmd, int evaluate);
421 static int eval1 __ARGS((char_u **arg, typval_T *rettv, int evaluate)); 421 static int eval1(char_u **arg, typval_T *rettv, int evaluate);
422 static int eval2 __ARGS((char_u **arg, typval_T *rettv, int evaluate)); 422 static int eval2(char_u **arg, typval_T *rettv, int evaluate);
423 static int eval3 __ARGS((char_u **arg, typval_T *rettv, int evaluate)); 423 static int eval3(char_u **arg, typval_T *rettv, int evaluate);
424 static int eval4 __ARGS((char_u **arg, typval_T *rettv, int evaluate)); 424 static int eval4(char_u **arg, typval_T *rettv, int evaluate);
425 static int eval5 __ARGS((char_u **arg, typval_T *rettv, int evaluate)); 425 static int eval5(char_u **arg, typval_T *rettv, int evaluate);
426 static int eval6 __ARGS((char_u **arg, typval_T *rettv, int evaluate, int want_string)); 426 static int eval6(char_u **arg, typval_T *rettv, int evaluate, int want_string);
427 static int eval7 __ARGS((char_u **arg, typval_T *rettv, int evaluate, int want_string)); 427 static int eval7(char_u **arg, typval_T *rettv, int evaluate, int want_string);
428 428
429 static int eval_index __ARGS((char_u **arg, typval_T *rettv, int evaluate, int verbose)); 429 static int eval_index(char_u **arg, typval_T *rettv, int evaluate, int verbose);
430 static int get_option_tv __ARGS((char_u **arg, typval_T *rettv, int evaluate)); 430 static int get_option_tv(char_u **arg, typval_T *rettv, int evaluate);
431 static int get_string_tv __ARGS((char_u **arg, typval_T *rettv, int evaluate)); 431 static int get_string_tv(char_u **arg, typval_T *rettv, int evaluate);
432 static int get_lit_string_tv __ARGS((char_u **arg, typval_T *rettv, int evaluate)); 432 static int get_lit_string_tv(char_u **arg, typval_T *rettv, int evaluate);
433 static int get_list_tv __ARGS((char_u **arg, typval_T *rettv, int evaluate)); 433 static int get_list_tv(char_u **arg, typval_T *rettv, int evaluate);
434 static long list_len __ARGS((list_T *l)); 434 static long list_len(list_T *l);
435 static int list_equal __ARGS((list_T *l1, list_T *l2, int ic, int recursive)); 435 static int list_equal(list_T *l1, list_T *l2, int ic, int recursive);
436 static int dict_equal __ARGS((dict_T *d1, dict_T *d2, int ic, int recursive)); 436 static int dict_equal(dict_T *d1, dict_T *d2, int ic, int recursive);
437 static int tv_equal __ARGS((typval_T *tv1, typval_T *tv2, int ic, int recursive)); 437 static int tv_equal(typval_T *tv1, typval_T *tv2, int ic, int recursive);
438 static long list_find_nr __ARGS((list_T *l, long idx, int *errorp)); 438 static long list_find_nr(list_T *l, long idx, int *errorp);
439 static long list_idx_of_item __ARGS((list_T *l, listitem_T *item)); 439 static long list_idx_of_item(list_T *l, listitem_T *item);
440 static int list_append_number __ARGS((list_T *l, varnumber_T n)); 440 static int list_append_number(list_T *l, varnumber_T n);
441 static int list_extend __ARGS((list_T *l1, list_T *l2, listitem_T *bef)); 441 static int list_extend(list_T *l1, list_T *l2, listitem_T *bef);
442 static int list_concat __ARGS((list_T *l1, list_T *l2, typval_T *tv)); 442 static int list_concat(list_T *l1, list_T *l2, typval_T *tv);
443 static list_T *list_copy __ARGS((list_T *orig, int deep, int copyID)); 443 static list_T *list_copy(list_T *orig, int deep, int copyID);
444 static char_u *list2string __ARGS((typval_T *tv, int copyID)); 444 static char_u *list2string(typval_T *tv, int copyID);
445 static int list_join_inner __ARGS((garray_T *gap, list_T *l, char_u *sep, int echo_style, int copyID, garray_T *join_gap)); 445 static int list_join_inner(garray_T *gap, list_T *l, char_u *sep, int echo_style, int copyID, garray_T *join_gap);
446 static int list_join __ARGS((garray_T *gap, list_T *l, char_u *sep, int echo, int copyID)); 446 static int list_join(garray_T *gap, list_T *l, char_u *sep, int echo, int copyID);
447 static int free_unref_items __ARGS((int copyID)); 447 static int free_unref_items(int copyID);
448 static dictitem_T *dictitem_copy __ARGS((dictitem_T *org)); 448 static dictitem_T *dictitem_copy(dictitem_T *org);
449 static void dictitem_remove __ARGS((dict_T *dict, dictitem_T *item)); 449 static void dictitem_remove(dict_T *dict, dictitem_T *item);
450 static dict_T *dict_copy __ARGS((dict_T *orig, int deep, int copyID)); 450 static dict_T *dict_copy(dict_T *orig, int deep, int copyID);
451 static long dict_len __ARGS((dict_T *d)); 451 static long dict_len(dict_T *d);
452 static char_u *dict2string __ARGS((typval_T *tv, int copyID)); 452 static char_u *dict2string(typval_T *tv, int copyID);
453 static int get_dict_tv __ARGS((char_u **arg, typval_T *rettv, int evaluate)); 453 static int get_dict_tv(char_u **arg, typval_T *rettv, int evaluate);
454 static char_u *echo_string __ARGS((typval_T *tv, char_u **tofree, char_u *numbuf, int copyID)); 454 static char_u *echo_string(typval_T *tv, char_u **tofree, char_u *numbuf, int copyID);
455 static char_u *tv2string __ARGS((typval_T *tv, char_u **tofree, char_u *numbuf, int copyID)); 455 static char_u *tv2string(typval_T *tv, char_u **tofree, char_u *numbuf, int copyID);
456 static char_u *string_quote __ARGS((char_u *str, int function)); 456 static char_u *string_quote(char_u *str, int function);
457 static int get_env_tv __ARGS((char_u **arg, typval_T *rettv, int evaluate)); 457 static int get_env_tv(char_u **arg, typval_T *rettv, int evaluate);
458 static int find_internal_func __ARGS((char_u *name)); 458 static int find_internal_func(char_u *name);
459 static char_u *deref_func_name __ARGS((char_u *name, int *lenp, int no_autoload)); 459 static char_u *deref_func_name(char_u *name, int *lenp, int no_autoload);
460 static int get_func_tv __ARGS((char_u *name, int len, typval_T *rettv, char_u **arg, linenr_T firstline, linenr_T lastline, int *doesrange, int evaluate, dict_T *selfdict)); 460 static int get_func_tv(char_u *name, int len, typval_T *rettv, char_u **arg, linenr_T firstline, linenr_T lastline, int *doesrange, int evaluate, dict_T *selfdict);
461 static int call_func __ARGS((char_u *funcname, int len, typval_T *rettv, int argcount, typval_T *argvars, linenr_T firstline, linenr_T lastline, int *doesrange, int evaluate, dict_T *selfdict)); 461 static int call_func(char_u *funcname, int len, typval_T *rettv, int argcount, typval_T *argvars, linenr_T firstline, linenr_T lastline, int *doesrange, int evaluate, dict_T *selfdict);
462 static void emsg_funcname __ARGS((char *ermsg, char_u *name)); 462 static void emsg_funcname(char *ermsg, char_u *name);
463 static int non_zero_arg __ARGS((typval_T *argvars)); 463 static int non_zero_arg(typval_T *argvars);
464 464
465 #ifdef FEAT_FLOAT 465 #ifdef FEAT_FLOAT
466 static void f_abs __ARGS((typval_T *argvars, typval_T *rettv)); 466 static void f_abs(typval_T *argvars, typval_T *rettv);
467 static void f_acos __ARGS((typval_T *argvars, typval_T *rettv)); 467 static void f_acos(typval_T *argvars, typval_T *rettv);
468 #endif 468 #endif
469 static void f_add __ARGS((typval_T *argvars, typval_T *rettv)); 469 static void f_add(typval_T *argvars, typval_T *rettv);
470 static void f_alloc_fail __ARGS((typval_T *argvars, typval_T *rettv)); 470 static void f_alloc_fail(typval_T *argvars, typval_T *rettv);
471 static void f_and __ARGS((typval_T *argvars, typval_T *rettv)); 471 static void f_and(typval_T *argvars, typval_T *rettv);
472 static void f_append __ARGS((typval_T *argvars, typval_T *rettv)); 472 static void f_append(typval_T *argvars, typval_T *rettv);
473 static void f_argc __ARGS((typval_T *argvars, typval_T *rettv)); 473 static void f_argc(typval_T *argvars, typval_T *rettv);
474 static void f_argidx __ARGS((typval_T *argvars, typval_T *rettv)); 474 static void f_argidx(typval_T *argvars, typval_T *rettv);
475 static void f_arglistid __ARGS((typval_T *argvars, typval_T *rettv)); 475 static void f_arglistid(typval_T *argvars, typval_T *rettv);
476 static void f_argv __ARGS((typval_T *argvars, typval_T *rettv)); 476 static void f_argv(typval_T *argvars, typval_T *rettv);
477 static void f_assert_equal __ARGS((typval_T *argvars, typval_T *rettv)); 477 static void f_assert_equal(typval_T *argvars, typval_T *rettv);
478 static void f_assert_exception __ARGS((typval_T *argvars, typval_T *rettv)); 478 static void f_assert_exception(typval_T *argvars, typval_T *rettv);
479 static void f_assert_fails __ARGS((typval_T *argvars, typval_T *rettv)); 479 static void f_assert_fails(typval_T *argvars, typval_T *rettv);
480 static void f_assert_false __ARGS((typval_T *argvars, typval_T *rettv)); 480 static void f_assert_false(typval_T *argvars, typval_T *rettv);
481 static void f_assert_true __ARGS((typval_T *argvars, typval_T *rettv)); 481 static void f_assert_true(typval_T *argvars, typval_T *rettv);
482 #ifdef FEAT_FLOAT 482 #ifdef FEAT_FLOAT
483 static void f_asin __ARGS((typval_T *argvars, typval_T *rettv)); 483 static void f_asin(typval_T *argvars, typval_T *rettv);
484 static void f_atan __ARGS((typval_T *argvars, typval_T *rettv)); 484 static void f_atan(typval_T *argvars, typval_T *rettv);
485 static void f_atan2 __ARGS((typval_T *argvars, typval_T *rettv)); 485 static void f_atan2(typval_T *argvars, typval_T *rettv);
486 #endif 486 #endif
487 static void f_browse __ARGS((typval_T *argvars, typval_T *rettv)); 487 static void f_browse(typval_T *argvars, typval_T *rettv);
488 static void f_browsedir __ARGS((typval_T *argvars, typval_T *rettv)); 488 static void f_browsedir(typval_T *argvars, typval_T *rettv);
489 static void f_bufexists __ARGS((typval_T *argvars, typval_T *rettv)); 489 static void f_bufexists(typval_T *argvars, typval_T *rettv);
490 static void f_buflisted __ARGS((typval_T *argvars, typval_T *rettv)); 490 static void f_buflisted(typval_T *argvars, typval_T *rettv);
491 static void f_bufloaded __ARGS((typval_T *argvars, typval_T *rettv)); 491 static void f_bufloaded(typval_T *argvars, typval_T *rettv);
492 static void f_bufname __ARGS((typval_T *argvars, typval_T *rettv)); 492 static void f_bufname(typval_T *argvars, typval_T *rettv);
493 static void f_bufnr __ARGS((typval_T *argvars, typval_T *rettv)); 493 static void f_bufnr(typval_T *argvars, typval_T *rettv);
494 static void f_bufwinnr __ARGS((typval_T *argvars, typval_T *rettv)); 494 static void f_bufwinnr(typval_T *argvars, typval_T *rettv);
495 static void f_byte2line __ARGS((typval_T *argvars, typval_T *rettv)); 495 static void f_byte2line(typval_T *argvars, typval_T *rettv);
496 static void byteidx __ARGS((typval_T *argvars, typval_T *rettv, int comp)); 496 static void byteidx(typval_T *argvars, typval_T *rettv, int comp);
497 static void f_byteidx __ARGS((typval_T *argvars, typval_T *rettv)); 497 static void f_byteidx(typval_T *argvars, typval_T *rettv);
498 static void f_byteidxcomp __ARGS((typval_T *argvars, typval_T *rettv)); 498 static void f_byteidxcomp(typval_T *argvars, typval_T *rettv);
499 static void f_call __ARGS((typval_T *argvars, typval_T *rettv)); 499 static void f_call(typval_T *argvars, typval_T *rettv);
500 #ifdef FEAT_FLOAT 500 #ifdef FEAT_FLOAT
501 static void f_ceil __ARGS((typval_T *argvars, typval_T *rettv)); 501 static void f_ceil(typval_T *argvars, typval_T *rettv);
502 #endif 502 #endif
503 static void f_changenr __ARGS((typval_T *argvars, typval_T *rettv)); 503 static void f_changenr(typval_T *argvars, typval_T *rettv);
504 static void f_char2nr __ARGS((typval_T *argvars, typval_T *rettv)); 504 static void f_char2nr(typval_T *argvars, typval_T *rettv);
505 static void f_cindent __ARGS((typval_T *argvars, typval_T *rettv)); 505 static void f_cindent(typval_T *argvars, typval_T *rettv);
506 static void f_clearmatches __ARGS((typval_T *argvars, typval_T *rettv)); 506 static void f_clearmatches(typval_T *argvars, typval_T *rettv);
507 static void f_col __ARGS((typval_T *argvars, typval_T *rettv)); 507 static void f_col(typval_T *argvars, typval_T *rettv);
508 #if defined(FEAT_INS_EXPAND) 508 #if defined(FEAT_INS_EXPAND)
509 static void f_complete __ARGS((typval_T *argvars, typval_T *rettv)); 509 static void f_complete(typval_T *argvars, typval_T *rettv);
510 static void f_complete_add __ARGS((typval_T *argvars, typval_T *rettv)); 510 static void f_complete_add(typval_T *argvars, typval_T *rettv);
511 static void f_complete_check __ARGS((typval_T *argvars, typval_T *rettv)); 511 static void f_complete_check(typval_T *argvars, typval_T *rettv);
512 #endif 512 #endif
513 static void f_confirm __ARGS((typval_T *argvars, typval_T *rettv)); 513 static void f_confirm(typval_T *argvars, typval_T *rettv);
514 static void f_copy __ARGS((typval_T *argvars, typval_T *rettv)); 514 static void f_copy(typval_T *argvars, typval_T *rettv);
515 #ifdef FEAT_FLOAT 515 #ifdef FEAT_FLOAT
516 static void f_cos __ARGS((typval_T *argvars, typval_T *rettv)); 516 static void f_cos(typval_T *argvars, typval_T *rettv);
517 static void f_cosh __ARGS((typval_T *argvars, typval_T *rettv)); 517 static void f_cosh(typval_T *argvars, typval_T *rettv);
518 #endif 518 #endif
519 static void f_count __ARGS((typval_T *argvars, typval_T *rettv)); 519 static void f_count(typval_T *argvars, typval_T *rettv);
520 static void f_cscope_connection __ARGS((typval_T *argvars, typval_T *rettv)); 520 static void f_cscope_connection(typval_T *argvars, typval_T *rettv);
521 static void f_cursor __ARGS((typval_T *argsvars, typval_T *rettv)); 521 static void f_cursor(typval_T *argsvars, typval_T *rettv);
522 static void f_deepcopy __ARGS((typval_T *argvars, typval_T *rettv)); 522 static void f_deepcopy(typval_T *argvars, typval_T *rettv);
523 static void f_delete __ARGS((typval_T *argvars, typval_T *rettv)); 523 static void f_delete(typval_T *argvars, typval_T *rettv);
524 static void f_did_filetype __ARGS((typval_T *argvars, typval_T *rettv)); 524 static void f_did_filetype(typval_T *argvars, typval_T *rettv);
525 static void f_diff_filler __ARGS((typval_T *argvars, typval_T *rettv)); 525 static void f_diff_filler(typval_T *argvars, typval_T *rettv);
526 static void f_diff_hlID __ARGS((typval_T *argvars, typval_T *rettv)); 526 static void f_diff_hlID(typval_T *argvars, typval_T *rettv);
527 static void f_empty __ARGS((typval_T *argvars, typval_T *rettv)); 527 static void f_empty(typval_T *argvars, typval_T *rettv);
528 static void f_escape __ARGS((typval_T *argvars, typval_T *rettv)); 528 static void f_escape(typval_T *argvars, typval_T *rettv);
529 static void f_eval __ARGS((typval_T *argvars, typval_T *rettv)); 529 static void f_eval(typval_T *argvars, typval_T *rettv);
530 static void f_eventhandler __ARGS((typval_T *argvars, typval_T *rettv)); 530 static void f_eventhandler(typval_T *argvars, typval_T *rettv);
531 static void f_executable __ARGS((typval_T *argvars, typval_T *rettv)); 531 static void f_executable(typval_T *argvars, typval_T *rettv);
532 static void f_exepath __ARGS((typval_T *argvars, typval_T *rettv)); 532 static void f_exepath(typval_T *argvars, typval_T *rettv);
533 static void f_exists __ARGS((typval_T *argvars, typval_T *rettv)); 533 static void f_exists(typval_T *argvars, typval_T *rettv);
534 #ifdef FEAT_FLOAT 534 #ifdef FEAT_FLOAT
535 static void f_exp __ARGS((typval_T *argvars, typval_T *rettv)); 535 static void f_exp(typval_T *argvars, typval_T *rettv);
536 #endif 536 #endif
537 static void f_expand __ARGS((typval_T *argvars, typval_T *rettv)); 537 static void f_expand(typval_T *argvars, typval_T *rettv);
538 static void f_extend __ARGS((typval_T *argvars, typval_T *rettv)); 538 static void f_extend(typval_T *argvars, typval_T *rettv);
539 static void f_feedkeys __ARGS((typval_T *argvars, typval_T *rettv)); 539 static void f_feedkeys(typval_T *argvars, typval_T *rettv);
540 static void f_filereadable __ARGS((typval_T *argvars, typval_T *rettv)); 540 static void f_filereadable(typval_T *argvars, typval_T *rettv);
541 static void f_filewritable __ARGS((typval_T *argvars, typval_T *rettv)); 541 static void f_filewritable(typval_T *argvars, typval_T *rettv);
542 static void f_filter __ARGS((typval_T *argvars, typval_T *rettv)); 542 static void f_filter(typval_T *argvars, typval_T *rettv);
543 static void f_finddir __ARGS((typval_T *argvars, typval_T *rettv)); 543 static void f_finddir(typval_T *argvars, typval_T *rettv);
544 static void f_findfile __ARGS((typval_T *argvars, typval_T *rettv)); 544 static void f_findfile(typval_T *argvars, typval_T *rettv);
545 #ifdef FEAT_FLOAT 545 #ifdef FEAT_FLOAT
546 static void f_float2nr __ARGS((typval_T *argvars, typval_T *rettv)); 546 static void f_float2nr(typval_T *argvars, typval_T *rettv);
547 static void f_floor __ARGS((typval_T *argvars, typval_T *rettv)); 547 static void f_floor(typval_T *argvars, typval_T *rettv);
548 static void f_fmod __ARGS((typval_T *argvars, typval_T *rettv)); 548 static void f_fmod(typval_T *argvars, typval_T *rettv);
549 #endif 549 #endif
550 static void f_fnameescape __ARGS((typval_T *argvars, typval_T *rettv)); 550 static void f_fnameescape(typval_T *argvars, typval_T *rettv);
551 static void f_fnamemodify __ARGS((typval_T *argvars, typval_T *rettv)); 551 static void f_fnamemodify(typval_T *argvars, typval_T *rettv);
552 static void f_foldclosed __ARGS((typval_T *argvars, typval_T *rettv)); 552 static void f_foldclosed(typval_T *argvars, typval_T *rettv);
553 static void f_foldclosedend __ARGS((typval_T *argvars, typval_T *rettv)); 553 static void f_foldclosedend(typval_T *argvars, typval_T *rettv);
554 static void f_foldlevel __ARGS((typval_T *argvars, typval_T *rettv)); 554 static void f_foldlevel(typval_T *argvars, typval_T *rettv);
555 static void f_foldtext __ARGS((typval_T *argvars, typval_T *rettv)); 555 static void f_foldtext(typval_T *argvars, typval_T *rettv);
556 static void f_foldtextresult __ARGS((typval_T *argvars, typval_T *rettv)); 556 static void f_foldtextresult(typval_T *argvars, typval_T *rettv);
557 static void f_foreground __ARGS((typval_T *argvars, typval_T *rettv)); 557 static void f_foreground(typval_T *argvars, typval_T *rettv);
558 static void f_function __ARGS((typval_T *argvars, typval_T *rettv)); 558 static void f_function(typval_T *argvars, typval_T *rettv);
559 static void f_garbagecollect __ARGS((typval_T *argvars, typval_T *rettv)); 559 static void f_garbagecollect(typval_T *argvars, typval_T *rettv);
560 static void f_get __ARGS((typval_T *argvars, typval_T *rettv)); 560 static void f_get(typval_T *argvars, typval_T *rettv);
561 static void f_getbufline __ARGS((typval_T *argvars, typval_T *rettv)); 561 static void f_getbufline(typval_T *argvars, typval_T *rettv);
562 static void f_getbufvar __ARGS((typval_T *argvars, typval_T *rettv)); 562 static void f_getbufvar(typval_T *argvars, typval_T *rettv);
563 static void f_getchar __ARGS((typval_T *argvars, typval_T *rettv)); 563 static void f_getchar(typval_T *argvars, typval_T *rettv);
564 static void f_getcharmod __ARGS((typval_T *argvars, typval_T *rettv)); 564 static void f_getcharmod(typval_T *argvars, typval_T *rettv);
565 static void f_getcharsearch __ARGS((typval_T *argvars, typval_T *rettv)); 565 static void f_getcharsearch(typval_T *argvars, typval_T *rettv);
566 static void f_getcmdline __ARGS((typval_T *argvars, typval_T *rettv)); 566 static void f_getcmdline(typval_T *argvars, typval_T *rettv);
567 static void f_getcmdpos __ARGS((typval_T *argvars, typval_T *rettv)); 567 static void f_getcmdpos(typval_T *argvars, typval_T *rettv);
568 static void f_getcmdtype __ARGS((typval_T *argvars, typval_T *rettv)); 568 static void f_getcmdtype(typval_T *argvars, typval_T *rettv);
569 static void f_getcmdwintype __ARGS((typval_T *argvars, typval_T *rettv)); 569 static void f_getcmdwintype(typval_T *argvars, typval_T *rettv);
570 static void f_getcwd __ARGS((typval_T *argvars, typval_T *rettv)); 570 static void f_getcwd(typval_T *argvars, typval_T *rettv);
571 static void f_getfontname __ARGS((typval_T *argvars, typval_T *rettv)); 571 static void f_getfontname(typval_T *argvars, typval_T *rettv);
572 static void f_getfperm __ARGS((typval_T *argvars, typval_T *rettv)); 572 static void f_getfperm(typval_T *argvars, typval_T *rettv);
573 static void f_getfsize __ARGS((typval_T *argvars, typval_T *rettv)); 573 static void f_getfsize(typval_T *argvars, typval_T *rettv);
574 static void f_getftime __ARGS((typval_T *argvars, typval_T *rettv)); 574 static void f_getftime(typval_T *argvars, typval_T *rettv);
575 static void f_getftype __ARGS((typval_T *argvars, typval_T *rettv)); 575 static void f_getftype(typval_T *argvars, typval_T *rettv);
576 static void f_getline __ARGS((typval_T *argvars, typval_T *rettv)); 576 static void f_getline(typval_T *argvars, typval_T *rettv);
577 static void f_getmatches __ARGS((typval_T *argvars, typval_T *rettv)); 577 static void f_getmatches(typval_T *argvars, typval_T *rettv);
578 static void f_getpid __ARGS((typval_T *argvars, typval_T *rettv)); 578 static void f_getpid(typval_T *argvars, typval_T *rettv);
579 static void f_getcurpos __ARGS((typval_T *argvars, typval_T *rettv)); 579 static void f_getcurpos(typval_T *argvars, typval_T *rettv);
580 static void f_getpos __ARGS((typval_T *argvars, typval_T *rettv)); 580 static void f_getpos(typval_T *argvars, typval_T *rettv);
581 static void f_getqflist __ARGS((typval_T *argvars, typval_T *rettv)); 581 static void f_getqflist(typval_T *argvars, typval_T *rettv);
582 static void f_getreg __ARGS((typval_T *argvars, typval_T *rettv)); 582 static void f_getreg(typval_T *argvars, typval_T *rettv);
583 static void f_getregtype __ARGS((typval_T *argvars, typval_T *rettv)); 583 static void f_getregtype(typval_T *argvars, typval_T *rettv);
584 static void f_gettabvar __ARGS((typval_T *argvars, typval_T *rettv)); 584 static void f_gettabvar(typval_T *argvars, typval_T *rettv);
585 static void f_gettabwinvar __ARGS((typval_T *argvars, typval_T *rettv)); 585 static void f_gettabwinvar(typval_T *argvars, typval_T *rettv);
586 static void f_getwinposx __ARGS((typval_T *argvars, typval_T *rettv)); 586 static void f_getwinposx(typval_T *argvars, typval_T *rettv);
587 static void f_getwinposy __ARGS((typval_T *argvars, typval_T *rettv)); 587 static void f_getwinposy(typval_T *argvars, typval_T *rettv);
588 static void f_getwinvar __ARGS((typval_T *argvars, typval_T *rettv)); 588 static void f_getwinvar(typval_T *argvars, typval_T *rettv);
589 static void f_glob __ARGS((typval_T *argvars, typval_T *rettv)); 589 static void f_glob(typval_T *argvars, typval_T *rettv);
590 static void f_globpath __ARGS((typval_T *argvars, typval_T *rettv)); 590 static void f_globpath(typval_T *argvars, typval_T *rettv);
591 static void f_glob2regpat __ARGS((typval_T *argvars, typval_T *rettv)); 591 static void f_glob2regpat(typval_T *argvars, typval_T *rettv);
592 static void f_has __ARGS((typval_T *argvars, typval_T *rettv)); 592 static void f_has(typval_T *argvars, typval_T *rettv);
593 static void f_has_key __ARGS((typval_T *argvars, typval_T *rettv)); 593 static void f_has_key(typval_T *argvars, typval_T *rettv);
594 static void f_haslocaldir __ARGS((typval_T *argvars, typval_T *rettv)); 594 static void f_haslocaldir(typval_T *argvars, typval_T *rettv);
595 static void f_hasmapto __ARGS((typval_T *argvars, typval_T *rettv)); 595 static void f_hasmapto(typval_T *argvars, typval_T *rettv);
596 static void f_histadd __ARGS((typval_T *argvars, typval_T *rettv)); 596 static void f_histadd(typval_T *argvars, typval_T *rettv);
597 static void f_histdel __ARGS((typval_T *argvars, typval_T *rettv)); 597 static void f_histdel(typval_T *argvars, typval_T *rettv);
598 static void f_histget __ARGS((typval_T *argvars, typval_T *rettv)); 598 static void f_histget(typval_T *argvars, typval_T *rettv);
599 static void f_histnr __ARGS((typval_T *argvars, typval_T *rettv)); 599 static void f_histnr(typval_T *argvars, typval_T *rettv);
600 static void f_hlID __ARGS((typval_T *argvars, typval_T *rettv)); 600 static void f_hlID(typval_T *argvars, typval_T *rettv);
601 static void f_hlexists __ARGS((typval_T *argvars, typval_T *rettv)); 601 static void f_hlexists(typval_T *argvars, typval_T *rettv);
602 static void f_hostname __ARGS((typval_T *argvars, typval_T *rettv)); 602 static void f_hostname(typval_T *argvars, typval_T *rettv);
603 static void f_iconv __ARGS((typval_T *argvars, typval_T *rettv)); 603 static void f_iconv(typval_T *argvars, typval_T *rettv);
604 static void f_indent __ARGS((typval_T *argvars, typval_T *rettv)); 604 static void f_indent(typval_T *argvars, typval_T *rettv);
605 static void f_index __ARGS((typval_T *argvars, typval_T *rettv)); 605 static void f_index(typval_T *argvars, typval_T *rettv);
606 static void f_input __ARGS((typval_T *argvars, typval_T *rettv)); 606 static void f_input(typval_T *argvars, typval_T *rettv);
607 static void f_inputdialog __ARGS((typval_T *argvars, typval_T *rettv)); 607 static void f_inputdialog(typval_T *argvars, typval_T *rettv);
608 static void f_inputlist __ARGS((typval_T *argvars, typval_T *rettv)); 608 static void f_inputlist(typval_T *argvars, typval_T *rettv);
609 static void f_inputrestore __ARGS((typval_T *argvars, typval_T *rettv)); 609 static void f_inputrestore(typval_T *argvars, typval_T *rettv);
610 static void f_inputsave __ARGS((typval_T *argvars, typval_T *rettv)); 610 static void f_inputsave(typval_T *argvars, typval_T *rettv);
611 static void f_inputsecret __ARGS((typval_T *argvars, typval_T *rettv)); 611 static void f_inputsecret(typval_T *argvars, typval_T *rettv);
612 static void f_insert __ARGS((typval_T *argvars, typval_T *rettv)); 612 static void f_insert(typval_T *argvars, typval_T *rettv);
613 static void f_invert __ARGS((typval_T *argvars, typval_T *rettv)); 613 static void f_invert(typval_T *argvars, typval_T *rettv);
614 static void f_isdirectory __ARGS((typval_T *argvars, typval_T *rettv)); 614 static void f_isdirectory(typval_T *argvars, typval_T *rettv);
615 static void f_islocked __ARGS((typval_T *argvars, typval_T *rettv)); 615 static void f_islocked(typval_T *argvars, typval_T *rettv);
616 static void f_items __ARGS((typval_T *argvars, typval_T *rettv)); 616 static void f_items(typval_T *argvars, typval_T *rettv);
617 static void f_join __ARGS((typval_T *argvars, typval_T *rettv)); 617 static void f_join(typval_T *argvars, typval_T *rettv);
618 static void f_jsondecode __ARGS((typval_T *argvars, typval_T *rettv)); 618 static void f_jsondecode(typval_T *argvars, typval_T *rettv);
619 static void f_jsonencode __ARGS((typval_T *argvars, typval_T *rettv)); 619 static void f_jsonencode(typval_T *argvars, typval_T *rettv);
620 static void f_keys __ARGS((typval_T *argvars, typval_T *rettv)); 620 static void f_keys(typval_T *argvars, typval_T *rettv);
621 static void f_last_buffer_nr __ARGS((typval_T *argvars, typval_T *rettv)); 621 static void f_last_buffer_nr(typval_T *argvars, typval_T *rettv);
622 static void f_len __ARGS((typval_T *argvars, typval_T *rettv)); 622 static void f_len(typval_T *argvars, typval_T *rettv);
623 static void f_libcall __ARGS((typval_T *argvars, typval_T *rettv)); 623 static void f_libcall(typval_T *argvars, typval_T *rettv);
624 static void f_libcallnr __ARGS((typval_T *argvars, typval_T *rettv)); 624 static void f_libcallnr(typval_T *argvars, typval_T *rettv);
625 static void f_line __ARGS((typval_T *argvars, typval_T *rettv)); 625 static void f_line(typval_T *argvars, typval_T *rettv);
626 static void f_line2byte __ARGS((typval_T *argvars, typval_T *rettv)); 626 static void f_line2byte(typval_T *argvars, typval_T *rettv);
627 static void f_lispindent __ARGS((typval_T *argvars, typval_T *rettv)); 627 static void f_lispindent(typval_T *argvars, typval_T *rettv);
628 static void f_localtime __ARGS((typval_T *argvars, typval_T *rettv)); 628 static void f_localtime(typval_T *argvars, typval_T *rettv);
629 #ifdef FEAT_FLOAT 629 #ifdef FEAT_FLOAT
630 static void f_log __ARGS((typval_T *argvars, typval_T *rettv)); 630 static void f_log(typval_T *argvars, typval_T *rettv);
631 static void f_log10 __ARGS((typval_T *argvars, typval_T *rettv)); 631 static void f_log10(typval_T *argvars, typval_T *rettv);
632 #endif 632 #endif
633 #ifdef FEAT_LUA 633 #ifdef FEAT_LUA
634 static void f_luaeval __ARGS((typval_T *argvars, typval_T *rettv)); 634 static void f_luaeval(typval_T *argvars, typval_T *rettv);
635 #endif 635 #endif
636 static void f_map __ARGS((typval_T *argvars, typval_T *rettv)); 636 static void f_map(typval_T *argvars, typval_T *rettv);
637 static void f_maparg __ARGS((typval_T *argvars, typval_T *rettv)); 637 static void f_maparg(typval_T *argvars, typval_T *rettv);
638 static void f_mapcheck __ARGS((typval_T *argvars, typval_T *rettv)); 638 static void f_mapcheck(typval_T *argvars, typval_T *rettv);
639 static void f_match __ARGS((typval_T *argvars, typval_T *rettv)); 639 static void f_match(typval_T *argvars, typval_T *rettv);
640 static void f_matchadd __ARGS((typval_T *argvars, typval_T *rettv)); 640 static void f_matchadd(typval_T *argvars, typval_T *rettv);
641 static void f_matchaddpos __ARGS((typval_T *argvars, typval_T *rettv)); 641 static void f_matchaddpos(typval_T *argvars, typval_T *rettv);
642 static void f_matcharg __ARGS((typval_T *argvars, typval_T *rettv)); 642 static void f_matcharg(typval_T *argvars, typval_T *rettv);
643 static void f_matchdelete __ARGS((typval_T *argvars, typval_T *rettv)); 643 static void f_matchdelete(typval_T *argvars, typval_T *rettv);
644 static void f_matchend __ARGS((typval_T *argvars, typval_T *rettv)); 644 static void f_matchend(typval_T *argvars, typval_T *rettv);
645 static void f_matchlist __ARGS((typval_T *argvars, typval_T *rettv)); 645 static void f_matchlist(typval_T *argvars, typval_T *rettv);
646 static void f_matchstr __ARGS((typval_T *argvars, typval_T *rettv)); 646 static void f_matchstr(typval_T *argvars, typval_T *rettv);
647 static void f_max __ARGS((typval_T *argvars, typval_T *rettv)); 647 static void f_max(typval_T *argvars, typval_T *rettv);
648 static void f_min __ARGS((typval_T *argvars, typval_T *rettv)); 648 static void f_min(typval_T *argvars, typval_T *rettv);
649 #ifdef vim_mkdir 649 #ifdef vim_mkdir
650 static void f_mkdir __ARGS((typval_T *argvars, typval_T *rettv)); 650 static void f_mkdir(typval_T *argvars, typval_T *rettv);
651 #endif 651 #endif
652 static void f_mode __ARGS((typval_T *argvars, typval_T *rettv)); 652 static void f_mode(typval_T *argvars, typval_T *rettv);
653 #ifdef FEAT_MZSCHEME 653 #ifdef FEAT_MZSCHEME
654 static void f_mzeval __ARGS((typval_T *argvars, typval_T *rettv)); 654 static void f_mzeval(typval_T *argvars, typval_T *rettv);
655 #endif 655 #endif
656 static void f_nextnonblank __ARGS((typval_T *argvars, typval_T *rettv)); 656 static void f_nextnonblank(typval_T *argvars, typval_T *rettv);
657 static void f_nr2char __ARGS((typval_T *argvars, typval_T *rettv)); 657 static void f_nr2char(typval_T *argvars, typval_T *rettv);
658 static void f_or __ARGS((typval_T *argvars, typval_T *rettv)); 658 static void f_or(typval_T *argvars, typval_T *rettv);
659 static void f_pathshorten __ARGS((typval_T *argvars, typval_T *rettv)); 659 static void f_pathshorten(typval_T *argvars, typval_T *rettv);
660 #ifdef FEAT_PERL 660 #ifdef FEAT_PERL
661 static void f_perleval __ARGS((typval_T *argvars, typval_T *rettv)); 661 static void f_perleval(typval_T *argvars, typval_T *rettv);
662 #endif 662 #endif
663 #ifdef FEAT_FLOAT 663 #ifdef FEAT_FLOAT
664 static void f_pow __ARGS((typval_T *argvars, typval_T *rettv)); 664 static void f_pow(typval_T *argvars, typval_T *rettv);
665 #endif 665 #endif
666 static void f_prevnonblank __ARGS((typval_T *argvars, typval_T *rettv)); 666 static void f_prevnonblank(typval_T *argvars, typval_T *rettv);
667 static void f_printf __ARGS((typval_T *argvars, typval_T *rettv)); 667 static void f_printf(typval_T *argvars, typval_T *rettv);
668 static void f_pumvisible __ARGS((typval_T *argvars, typval_T *rettv)); 668 static void f_pumvisible(typval_T *argvars, typval_T *rettv);
669 #ifdef FEAT_PYTHON3 669 #ifdef FEAT_PYTHON3
670 static void f_py3eval __ARGS((typval_T *argvars, typval_T *rettv)); 670 static void f_py3eval(typval_T *argvars, typval_T *rettv);
671 #endif 671 #endif
672 #ifdef FEAT_PYTHON 672 #ifdef FEAT_PYTHON
673 static void f_pyeval __ARGS((typval_T *argvars, typval_T *rettv)); 673 static void f_pyeval(typval_T *argvars, typval_T *rettv);
674 #endif 674 #endif
675 static void f_range __ARGS((typval_T *argvars, typval_T *rettv)); 675 static void f_range(typval_T *argvars, typval_T *rettv);
676 static void f_readfile __ARGS((typval_T *argvars, typval_T *rettv)); 676 static void f_readfile(typval_T *argvars, typval_T *rettv);
677 static void f_reltime __ARGS((typval_T *argvars, typval_T *rettv)); 677 static void f_reltime(typval_T *argvars, typval_T *rettv);
678 static void f_reltimestr __ARGS((typval_T *argvars, typval_T *rettv)); 678 static void f_reltimestr(typval_T *argvars, typval_T *rettv);
679 static void f_remote_expr __ARGS((typval_T *argvars, typval_T *rettv)); 679 static void f_remote_expr(typval_T *argvars, typval_T *rettv);
680 static void f_remote_foreground __ARGS((typval_T *argvars, typval_T *rettv)); 680 static void f_remote_foreground(typval_T *argvars, typval_T *rettv);
681 static void f_remote_peek __ARGS((typval_T *argvars, typval_T *rettv)); 681 static void f_remote_peek(typval_T *argvars, typval_T *rettv);
682 static void f_remote_read __ARGS((typval_T *argvars, typval_T *rettv)); 682 static void f_remote_read(typval_T *argvars, typval_T *rettv);
683 static void f_remote_send __ARGS((typval_T *argvars, typval_T *rettv)); 683 static void f_remote_send(typval_T *argvars, typval_T *rettv);
684 static void f_remove __ARGS((typval_T *argvars, typval_T *rettv)); 684 static void f_remove(typval_T *argvars, typval_T *rettv);
685 static void f_rename __ARGS((typval_T *argvars, typval_T *rettv)); 685 static void f_rename(typval_T *argvars, typval_T *rettv);
686 static void f_repeat __ARGS((typval_T *argvars, typval_T *rettv)); 686 static void f_repeat(typval_T *argvars, typval_T *rettv);
687 static void f_resolve __ARGS((typval_T *argvars, typval_T *rettv)); 687 static void f_resolve(typval_T *argvars, typval_T *rettv);
688 static void f_reverse __ARGS((typval_T *argvars, typval_T *rettv)); 688 static void f_reverse(typval_T *argvars, typval_T *rettv);
689 #ifdef FEAT_FLOAT 689 #ifdef FEAT_FLOAT
690 static void f_round __ARGS((typval_T *argvars, typval_T *rettv)); 690 static void f_round(typval_T *argvars, typval_T *rettv);
691 #endif 691 #endif
692 static void f_screenattr __ARGS((typval_T *argvars, typval_T *rettv)); 692 static void f_screenattr(typval_T *argvars, typval_T *rettv);
693 static void f_screenchar __ARGS((typval_T *argvars, typval_T *rettv)); 693 static void f_screenchar(typval_T *argvars, typval_T *rettv);
694 static void f_screencol __ARGS((typval_T *argvars, typval_T *rettv)); 694 static void f_screencol(typval_T *argvars, typval_T *rettv);
695 static void f_screenrow __ARGS((typval_T *argvars, typval_T *rettv)); 695 static void f_screenrow(typval_T *argvars, typval_T *rettv);
696 static void f_search __ARGS((typval_T *argvars, typval_T *rettv)); 696 static void f_search(typval_T *argvars, typval_T *rettv);
697 static void f_searchdecl __ARGS((typval_T *argvars, typval_T *rettv)); 697 static void f_searchdecl(typval_T *argvars, typval_T *rettv);
698 static void f_searchpair __ARGS((typval_T *argvars, typval_T *rettv)); 698 static void f_searchpair(typval_T *argvars, typval_T *rettv);
699 static void f_searchpairpos __ARGS((typval_T *argvars, typval_T *rettv)); 699 static void f_searchpairpos(typval_T *argvars, typval_T *rettv);
700 static void f_searchpos __ARGS((typval_T *argvars, typval_T *rettv)); 700 static void f_searchpos(typval_T *argvars, typval_T *rettv);
701 static void f_server2client __ARGS((typval_T *argvars, typval_T *rettv)); 701 static void f_server2client(typval_T *argvars, typval_T *rettv);
702 static void f_serverlist __ARGS((typval_T *argvars, typval_T *rettv)); 702 static void f_serverlist(typval_T *argvars, typval_T *rettv);
703 static void f_setbufvar __ARGS((typval_T *argvars, typval_T *rettv)); 703 static void f_setbufvar(typval_T *argvars, typval_T *rettv);
704 static void f_setcharsearch __ARGS((typval_T *argvars, typval_T *rettv)); 704 static void f_setcharsearch(typval_T *argvars, typval_T *rettv);
705 static void f_setcmdpos __ARGS((typval_T *argvars, typval_T *rettv)); 705 static void f_setcmdpos(typval_T *argvars, typval_T *rettv);
706 static void f_setline __ARGS((typval_T *argvars, typval_T *rettv)); 706 static void f_setline(typval_T *argvars, typval_T *rettv);
707 static void f_setloclist __ARGS((typval_T *argvars, typval_T *rettv)); 707 static void f_setloclist(typval_T *argvars, typval_T *rettv);
708 static void f_setmatches __ARGS((typval_T *argvars, typval_T *rettv)); 708 static void f_setmatches(typval_T *argvars, typval_T *rettv);
709 static void f_setpos __ARGS((typval_T *argvars, typval_T *rettv)); 709 static void f_setpos(typval_T *argvars, typval_T *rettv);
710 static void f_setqflist __ARGS((typval_T *argvars, typval_T *rettv)); 710 static void f_setqflist(typval_T *argvars, typval_T *rettv);
711 static void f_setreg __ARGS((typval_T *argvars, typval_T *rettv)); 711 static void f_setreg(typval_T *argvars, typval_T *rettv);
712 static void f_settabvar __ARGS((typval_T *argvars, typval_T *rettv)); 712 static void f_settabvar(typval_T *argvars, typval_T *rettv);
713 static void f_settabwinvar __ARGS((typval_T *argvars, typval_T *rettv)); 713 static void f_settabwinvar(typval_T *argvars, typval_T *rettv);
714 static void f_setwinvar __ARGS((typval_T *argvars, typval_T *rettv)); 714 static void f_setwinvar(typval_T *argvars, typval_T *rettv);
715 #ifdef FEAT_CRYPT 715 #ifdef FEAT_CRYPT
716 static void f_sha256 __ARGS((typval_T *argvars, typval_T *rettv)); 716 static void f_sha256(typval_T *argvars, typval_T *rettv);
717 #endif /* FEAT_CRYPT */ 717 #endif /* FEAT_CRYPT */
718 static void f_shellescape __ARGS((typval_T *argvars, typval_T *rettv)); 718 static void f_shellescape(typval_T *argvars, typval_T *rettv);
719 static void f_shiftwidth __ARGS((typval_T *argvars, typval_T *rettv)); 719 static void f_shiftwidth(typval_T *argvars, typval_T *rettv);
720 static void f_simplify __ARGS((typval_T *argvars, typval_T *rettv)); 720 static void f_simplify(typval_T *argvars, typval_T *rettv);
721 #ifdef FEAT_FLOAT 721 #ifdef FEAT_FLOAT
722 static void f_sin __ARGS((typval_T *argvars, typval_T *rettv)); 722 static void f_sin(typval_T *argvars, typval_T *rettv);
723 static void f_sinh __ARGS((typval_T *argvars, typval_T *rettv)); 723 static void f_sinh(typval_T *argvars, typval_T *rettv);
724 #endif 724 #endif
725 static void f_sort __ARGS((typval_T *argvars, typval_T *rettv)); 725 static void f_sort(typval_T *argvars, typval_T *rettv);
726 static void f_soundfold __ARGS((typval_T *argvars, typval_T *rettv)); 726 static void f_soundfold(typval_T *argvars, typval_T *rettv);
727 static void f_spellbadword __ARGS((typval_T *argvars, typval_T *rettv)); 727 static void f_spellbadword(typval_T *argvars, typval_T *rettv);
728 static void f_spellsuggest __ARGS((typval_T *argvars, typval_T *rettv)); 728 static void f_spellsuggest(typval_T *argvars, typval_T *rettv);
729 static void f_split __ARGS((typval_T *argvars, typval_T *rettv)); 729 static void f_split(typval_T *argvars, typval_T *rettv);
730 #ifdef FEAT_FLOAT 730 #ifdef FEAT_FLOAT
731 static void f_sqrt __ARGS((typval_T *argvars, typval_T *rettv)); 731 static void f_sqrt(typval_T *argvars, typval_T *rettv);
732 static void f_str2float __ARGS((typval_T *argvars, typval_T *rettv)); 732 static void f_str2float(typval_T *argvars, typval_T *rettv);
733 #endif 733 #endif
734 static void f_str2nr __ARGS((typval_T *argvars, typval_T *rettv)); 734 static void f_str2nr(typval_T *argvars, typval_T *rettv);
735 static void f_strchars __ARGS((typval_T *argvars, typval_T *rettv)); 735 static void f_strchars(typval_T *argvars, typval_T *rettv);
736 #ifdef HAVE_STRFTIME 736 #ifdef HAVE_STRFTIME
737 static void f_strftime __ARGS((typval_T *argvars, typval_T *rettv)); 737 static void f_strftime(typval_T *argvars, typval_T *rettv);
738 #endif 738 #endif
739 static void f_stridx __ARGS((typval_T *argvars, typval_T *rettv)); 739 static void f_stridx(typval_T *argvars, typval_T *rettv);
740 static void f_string __ARGS((typval_T *argvars, typval_T *rettv)); 740 static void f_string(typval_T *argvars, typval_T *rettv);
741 static void f_strlen __ARGS((typval_T *argvars, typval_T *rettv)); 741 static void f_strlen(typval_T *argvars, typval_T *rettv);
742 static void f_strpart __ARGS((typval_T *argvars, typval_T *rettv)); 742 static void f_strpart(typval_T *argvars, typval_T *rettv);
743 static void f_strridx __ARGS((typval_T *argvars, typval_T *rettv)); 743 static void f_strridx(typval_T *argvars, typval_T *rettv);
744 static void f_strtrans __ARGS((typval_T *argvars, typval_T *rettv)); 744 static void f_strtrans(typval_T *argvars, typval_T *rettv);
745 static void f_strdisplaywidth __ARGS((typval_T *argvars, typval_T *rettv)); 745 static void f_strdisplaywidth(typval_T *argvars, typval_T *rettv);
746 static void f_strwidth __ARGS((typval_T *argvars, typval_T *rettv)); 746 static void f_strwidth(typval_T *argvars, typval_T *rettv);
747 static void f_submatch __ARGS((typval_T *argvars, typval_T *rettv)); 747 static void f_submatch(typval_T *argvars, typval_T *rettv);
748 static void f_substitute __ARGS((typval_T *argvars, typval_T *rettv)); 748 static void f_substitute(typval_T *argvars, typval_T *rettv);
749 static void f_synID __ARGS((typval_T *argvars, typval_T *rettv)); 749 static void f_synID(typval_T *argvars, typval_T *rettv);
750 static void f_synIDattr __ARGS((typval_T *argvars, typval_T *rettv)); 750 static void f_synIDattr(typval_T *argvars, typval_T *rettv);
751 static void f_synIDtrans __ARGS((typval_T *argvars, typval_T *rettv)); 751 static void f_synIDtrans(typval_T *argvars, typval_T *rettv);
752 static void f_synstack __ARGS((typval_T *argvars, typval_T *rettv)); 752 static void f_synstack(typval_T *argvars, typval_T *rettv);
753 static void f_synconcealed __ARGS((typval_T *argvars, typval_T *rettv)); 753 static void f_synconcealed(typval_T *argvars, typval_T *rettv);
754 static void f_system __ARGS((typval_T *argvars, typval_T *rettv)); 754 static void f_system(typval_T *argvars, typval_T *rettv);
755 static void f_systemlist __ARGS((typval_T *argvars, typval_T *rettv)); 755 static void f_systemlist(typval_T *argvars, typval_T *rettv);
756 static void f_tabpagebuflist __ARGS((typval_T *argvars, typval_T *rettv)); 756 static void f_tabpagebuflist(typval_T *argvars, typval_T *rettv);
757 static void f_tabpagenr __ARGS((typval_T *argvars, typval_T *rettv)); 757 static void f_tabpagenr(typval_T *argvars, typval_T *rettv);
758 static void f_tabpagewinnr __ARGS((typval_T *argvars, typval_T *rettv)); 758 static void f_tabpagewinnr(typval_T *argvars, typval_T *rettv);
759 static void f_taglist __ARGS((typval_T *argvars, typval_T *rettv)); 759 static void f_taglist(typval_T *argvars, typval_T *rettv);
760 static void f_tagfiles __ARGS((typval_T *argvars, typval_T *rettv)); 760 static void f_tagfiles(typval_T *argvars, typval_T *rettv);
761 static void f_tempname __ARGS((typval_T *argvars, typval_T *rettv)); 761 static void f_tempname(typval_T *argvars, typval_T *rettv);
762 static void f_test __ARGS((typval_T *argvars, typval_T *rettv)); 762 static void f_test(typval_T *argvars, typval_T *rettv);
763 #ifdef FEAT_FLOAT 763 #ifdef FEAT_FLOAT
764 static void f_tan __ARGS((typval_T *argvars, typval_T *rettv)); 764 static void f_tan(typval_T *argvars, typval_T *rettv);
765 static void f_tanh __ARGS((typval_T *argvars, typval_T *rettv)); 765 static void f_tanh(typval_T *argvars, typval_T *rettv);
766 #endif 766 #endif
767 static void f_tolower __ARGS((typval_T *argvars, typval_T *rettv)); 767 static void f_tolower(typval_T *argvars, typval_T *rettv);
768 static void f_toupper __ARGS((typval_T *argvars, typval_T *rettv)); 768 static void f_toupper(typval_T *argvars, typval_T *rettv);
769 static void f_tr __ARGS((typval_T *argvars, typval_T *rettv)); 769 static void f_tr(typval_T *argvars, typval_T *rettv);
770 #ifdef FEAT_FLOAT 770 #ifdef FEAT_FLOAT
771 static void f_trunc __ARGS((typval_T *argvars, typval_T *rettv)); 771 static void f_trunc(typval_T *argvars, typval_T *rettv);
772 #endif 772 #endif
773 static void f_type __ARGS((typval_T *argvars, typval_T *rettv)); 773 static void f_type(typval_T *argvars, typval_T *rettv);
774 static void f_undofile __ARGS((typval_T *argvars, typval_T *rettv)); 774 static void f_undofile(typval_T *argvars, typval_T *rettv);
775 static void f_undotree __ARGS((typval_T *argvars, typval_T *rettv)); 775 static void f_undotree(typval_T *argvars, typval_T *rettv);
776 static void f_uniq __ARGS((typval_T *argvars, typval_T *rettv)); 776 static void f_uniq(typval_T *argvars, typval_T *rettv);
777 static void f_values __ARGS((typval_T *argvars, typval_T *rettv)); 777 static void f_values(typval_T *argvars, typval_T *rettv);
778 static void f_virtcol __ARGS((typval_T *argvars, typval_T *rettv)); 778 static void f_virtcol(typval_T *argvars, typval_T *rettv);
779 static void f_visualmode __ARGS((typval_T *argvars, typval_T *rettv)); 779 static void f_visualmode(typval_T *argvars, typval_T *rettv);
780 static void f_wildmenumode __ARGS((typval_T *argvars, typval_T *rettv)); 780 static void f_wildmenumode(typval_T *argvars, typval_T *rettv);
781 static void f_winbufnr __ARGS((typval_T *argvars, typval_T *rettv)); 781 static void f_winbufnr(typval_T *argvars, typval_T *rettv);
782 static void f_wincol __ARGS((typval_T *argvars, typval_T *rettv)); 782 static void f_wincol(typval_T *argvars, typval_T *rettv);
783 static void f_winheight __ARGS((typval_T *argvars, typval_T *rettv)); 783 static void f_winheight(typval_T *argvars, typval_T *rettv);
784 static void f_winline __ARGS((typval_T *argvars, typval_T *rettv)); 784 static void f_winline(typval_T *argvars, typval_T *rettv);
785 static void f_winnr __ARGS((typval_T *argvars, typval_T *rettv)); 785 static void f_winnr(typval_T *argvars, typval_T *rettv);
786 static void f_winrestcmd __ARGS((typval_T *argvars, typval_T *rettv)); 786 static void f_winrestcmd(typval_T *argvars, typval_T *rettv);
787 static void f_winrestview __ARGS((typval_T *argvars, typval_T *rettv)); 787 static void f_winrestview(typval_T *argvars, typval_T *rettv);
788 static void f_winsaveview __ARGS((typval_T *argvars, typval_T *rettv)); 788 static void f_winsaveview(typval_T *argvars, typval_T *rettv);
789 static void f_winwidth __ARGS((typval_T *argvars, typval_T *rettv)); 789 static void f_winwidth(typval_T *argvars, typval_T *rettv);
790 static void f_writefile __ARGS((typval_T *argvars, typval_T *rettv)); 790 static void f_writefile(typval_T *argvars, typval_T *rettv);
791 static void f_wordcount __ARGS((typval_T *argvars, typval_T *rettv)); 791 static void f_wordcount(typval_T *argvars, typval_T *rettv);
792 static void f_xor __ARGS((typval_T *argvars, typval_T *rettv)); 792 static void f_xor(typval_T *argvars, typval_T *rettv);
793 793
794 static int list2fpos __ARGS((typval_T *arg, pos_T *posp, int *fnump, colnr_T *curswantp)); 794 static int list2fpos(typval_T *arg, pos_T *posp, int *fnump, colnr_T *curswantp);
795 static pos_T *var2fpos __ARGS((typval_T *varp, int dollar_lnum, int *fnum)); 795 static pos_T *var2fpos(typval_T *varp, int dollar_lnum, int *fnum);
796 static int get_env_len __ARGS((char_u **arg)); 796 static int get_env_len(char_u **arg);
797 static int get_id_len __ARGS((char_u **arg)); 797 static int get_id_len(char_u **arg);
798 static int get_name_len __ARGS((char_u **arg, char_u **alias, int evaluate, int verbose)); 798 static int get_name_len(char_u **arg, char_u **alias, int evaluate, int verbose);
799 static char_u *find_name_end __ARGS((char_u *arg, char_u **expr_start, char_u **expr_end, int flags)); 799 static char_u *find_name_end(char_u *arg, char_u **expr_start, char_u **expr_end, int flags);
800 #define FNE_INCL_BR 1 /* find_name_end(): include [] in name */ 800 #define FNE_INCL_BR 1 /* find_name_end(): include [] in name */
801 #define FNE_CHECK_START 2 /* find_name_end(): check name starts with 801 #define FNE_CHECK_START 2 /* find_name_end(): check name starts with
802 valid character */ 802 valid character */
803 static char_u * make_expanded_name __ARGS((char_u *in_start, char_u *expr_start, char_u *expr_end, char_u *in_end)); 803 static char_u * make_expanded_name(char_u *in_start, char_u *expr_start, char_u *expr_end, char_u *in_end);
804 static int eval_isnamec __ARGS((int c)); 804 static int eval_isnamec(int c);
805 static int eval_isnamec1 __ARGS((int c)); 805 static int eval_isnamec1(int c);
806 static int get_var_tv __ARGS((char_u *name, int len, typval_T *rettv, dictitem_T **dip, int verbose, int no_autoload)); 806 static int get_var_tv(char_u *name, int len, typval_T *rettv, dictitem_T **dip, int verbose, int no_autoload);
807 static int handle_subscript __ARGS((char_u **arg, typval_T *rettv, int evaluate, int verbose)); 807 static int handle_subscript(char_u **arg, typval_T *rettv, int evaluate, int verbose);
808 static typval_T *alloc_tv __ARGS((void)); 808 static typval_T *alloc_tv(void);
809 static typval_T *alloc_string_tv __ARGS((char_u *string)); 809 static typval_T *alloc_string_tv(char_u *string);
810 static void init_tv __ARGS((typval_T *varp)); 810 static void init_tv(typval_T *varp);
811 static long get_tv_number __ARGS((typval_T *varp)); 811 static long get_tv_number(typval_T *varp);
812 #ifdef FEAT_FLOAT 812 #ifdef FEAT_FLOAT
813 static float_T get_tv_float(typval_T *varp); 813 static float_T get_tv_float(typval_T *varp);
814 #endif 814 #endif
815 static linenr_T get_tv_lnum __ARGS((typval_T *argvars)); 815 static linenr_T get_tv_lnum(typval_T *argvars);
816 static linenr_T get_tv_lnum_buf __ARGS((typval_T *argvars, buf_T *buf)); 816 static linenr_T get_tv_lnum_buf(typval_T *argvars, buf_T *buf);
817 static char_u *get_tv_string __ARGS((typval_T *varp)); 817 static char_u *get_tv_string(typval_T *varp);
818 static char_u *get_tv_string_buf __ARGS((typval_T *varp, char_u *buf)); 818 static char_u *get_tv_string_buf(typval_T *varp, char_u *buf);
819 static dictitem_T *find_var __ARGS((char_u *name, hashtab_T **htp, int no_autoload)); 819 static dictitem_T *find_var(char_u *name, hashtab_T **htp, int no_autoload);
820 static dictitem_T *find_var_in_ht __ARGS((hashtab_T *ht, int htname, char_u *varname, int no_autoload)); 820 static dictitem_T *find_var_in_ht(hashtab_T *ht, int htname, char_u *varname, int no_autoload);
821 static hashtab_T *find_var_ht __ARGS((char_u *name, char_u **varname)); 821 static hashtab_T *find_var_ht(char_u *name, char_u **varname);
822 static funccall_T *get_funccal __ARGS((void)); 822 static funccall_T *get_funccal(void);
823 static void vars_clear_ext __ARGS((hashtab_T *ht, int free_val)); 823 static void vars_clear_ext(hashtab_T *ht, int free_val);
824 static void delete_var __ARGS((hashtab_T *ht, hashitem_T *hi)); 824 static void delete_var(hashtab_T *ht, hashitem_T *hi);
825 static void list_one_var __ARGS((dictitem_T *v, char_u *prefix, int *first)); 825 static void list_one_var(dictitem_T *v, char_u *prefix, int *first);
826 static void list_one_var_a __ARGS((char_u *prefix, char_u *name, int type, char_u *string, int *first)); 826 static void list_one_var_a(char_u *prefix, char_u *name, int type, char_u *string, int *first);
827 static void set_var __ARGS((char_u *name, typval_T *varp, int copy)); 827 static void set_var(char_u *name, typval_T *varp, int copy);
828 static int var_check_ro __ARGS((int flags, char_u *name, int use_gettext)); 828 static int var_check_ro(int flags, char_u *name, int use_gettext);
829 static int var_check_fixed __ARGS((int flags, char_u *name, int use_gettext)); 829 static int var_check_fixed(int flags, char_u *name, int use_gettext);
830 static int var_check_func_name __ARGS((char_u *name, int new_var)); 830 static int var_check_func_name(char_u *name, int new_var);
831 static int valid_varname __ARGS((char_u *varname)); 831 static int valid_varname(char_u *varname);
832 static int tv_check_lock __ARGS((int lock, char_u *name, int use_gettext)); 832 static int tv_check_lock(int lock, char_u *name, int use_gettext);
833 static int item_copy __ARGS((typval_T *from, typval_T *to, int deep, int copyID)); 833 static int item_copy(typval_T *from, typval_T *to, int deep, int copyID);
834 static char_u *find_option_end __ARGS((char_u **arg, int *opt_flags)); 834 static char_u *find_option_end(char_u **arg, int *opt_flags);
835 static char_u *trans_function_name __ARGS((char_u **pp, int skip, int flags, funcdict_T *fd)); 835 static char_u *trans_function_name(char_u **pp, int skip, int flags, funcdict_T *fd);
836 static int eval_fname_script __ARGS((char_u *p)); 836 static int eval_fname_script(char_u *p);
837 static int eval_fname_sid __ARGS((char_u *p)); 837 static int eval_fname_sid(char_u *p);
838 static void list_func_head __ARGS((ufunc_T *fp, int indent)); 838 static void list_func_head(ufunc_T *fp, int indent);
839 static ufunc_T *find_func __ARGS((char_u *name)); 839 static ufunc_T *find_func(char_u *name);
840 static int function_exists __ARGS((char_u *name)); 840 static int function_exists(char_u *name);
841 static int builtin_function __ARGS((char_u *name, int len)); 841 static int builtin_function(char_u *name, int len);
842 #ifdef FEAT_PROFILE 842 #ifdef FEAT_PROFILE
843 static void func_do_profile __ARGS((ufunc_T *fp)); 843 static void func_do_profile(ufunc_T *fp);
844 static void prof_sort_list __ARGS((FILE *fd, ufunc_T **sorttab, int st_len, char *title, int prefer_self)); 844 static void prof_sort_list(FILE *fd, ufunc_T **sorttab, int st_len, char *title, int prefer_self);
845 static void prof_func_line __ARGS((FILE *fd, int count, proftime_T *total, proftime_T *self, int prefer_self)); 845 static void prof_func_line(FILE *fd, int count, proftime_T *total, proftime_T *self, int prefer_self);
846 static int 846 static int
847 # ifdef __BORLANDC__ 847 # ifdef __BORLANDC__
848 _RTLENTRYF 848 _RTLENTRYF
849 # endif 849 # endif
850 prof_total_cmp __ARGS((const void *s1, const void *s2)); 850 prof_total_cmp(const void *s1, const void *s2);
851 static int 851 static int
852 # ifdef __BORLANDC__ 852 # ifdef __BORLANDC__
853 _RTLENTRYF 853 _RTLENTRYF
854 # endif 854 # endif
855 prof_self_cmp __ARGS((const void *s1, const void *s2)); 855 prof_self_cmp(const void *s1, const void *s2);
856 #endif 856 #endif
857 static int script_autoload __ARGS((char_u *name, int reload)); 857 static int script_autoload(char_u *name, int reload);
858 static char_u *autoload_name __ARGS((char_u *name)); 858 static char_u *autoload_name(char_u *name);
859 static void cat_func_name __ARGS((char_u *buf, ufunc_T *fp)); 859 static void cat_func_name(char_u *buf, ufunc_T *fp);
860 static void func_free __ARGS((ufunc_T *fp)); 860 static void func_free(ufunc_T *fp);
861 static void call_user_func __ARGS((ufunc_T *fp, int argcount, typval_T *argvars, typval_T *rettv, linenr_T firstline, linenr_T lastline, dict_T *selfdict)); 861 static void call_user_func(ufunc_T *fp, int argcount, typval_T *argvars, typval_T *rettv, linenr_T firstline, linenr_T lastline, dict_T *selfdict);
862 static int can_free_funccal __ARGS((funccall_T *fc, int copyID)) ; 862 static int can_free_funccal(funccall_T *fc, int copyID) ;
863 static void free_funccal __ARGS((funccall_T *fc, int free_val)); 863 static void free_funccal(funccall_T *fc, int free_val);
864 static void add_nr_var __ARGS((dict_T *dp, dictitem_T *v, char *name, varnumber_T nr)); 864 static void add_nr_var(dict_T *dp, dictitem_T *v, char *name, varnumber_T nr);
865 static win_T *find_win_by_nr __ARGS((typval_T *vp, tabpage_T *tp)); 865 static win_T *find_win_by_nr(typval_T *vp, tabpage_T *tp);
866 static win_T *find_tabwin __ARGS((typval_T *wvp, typval_T *tvp)); 866 static win_T *find_tabwin(typval_T *wvp, typval_T *tvp);
867 static void getwinvar __ARGS((typval_T *argvars, typval_T *rettv, int off)); 867 static void getwinvar(typval_T *argvars, typval_T *rettv, int off);
868 static int searchpair_cmn __ARGS((typval_T *argvars, pos_T *match_pos)); 868 static int searchpair_cmn(typval_T *argvars, pos_T *match_pos);
869 static int search_cmn __ARGS((typval_T *argvars, pos_T *match_pos, int *flagsp)); 869 static int search_cmn(typval_T *argvars, pos_T *match_pos, int *flagsp);
870 static void setwinvar __ARGS((typval_T *argvars, typval_T *rettv, int off)); 870 static void setwinvar(typval_T *argvars, typval_T *rettv, int off);
871 static int write_list __ARGS((FILE *fd, list_T *list, int binary)); 871 static int write_list(FILE *fd, list_T *list, int binary);
872 static void get_cmd_output_as_rettv __ARGS((typval_T *argvars, typval_T *rettv, int retlist)); 872 static void get_cmd_output_as_rettv(typval_T *argvars, typval_T *rettv, int retlist);
873 873
874 874
875 #ifdef EBCDIC 875 #ifdef EBCDIC
876 static int compare_func_name __ARGS((const void *s1, const void *s2)); 876 static int compare_func_name(const void *s1, const void *s2);
877 static void sortFunctions __ARGS(()); 877 static void sortFunctions();
878 #endif 878 #endif
879 879
880 /* 880 /*
881 * Initialize the global and v: variables. 881 * Initialize the global and v: variables.
882 */ 882 */
3969 * Local string buffer for the next two functions to store a variable name 3969 * Local string buffer for the next two functions to store a variable name
3970 * with its prefix. Allocated in cat_prefix_varname(), freed later in 3970 * with its prefix. Allocated in cat_prefix_varname(), freed later in
3971 * get_user_var_name(). 3971 * get_user_var_name().
3972 */ 3972 */
3973 3973
3974 static char_u *cat_prefix_varname __ARGS((int prefix, char_u *name)); 3974 static char_u *cat_prefix_varname(int prefix, char_u *name);
3975 3975
3976 static char_u *varnamebuf = NULL; 3976 static char_u *varnamebuf = NULL;
3977 static int varnamebuflen = 0; 3977 static int varnamebuflen = 0;
3978 3978
3979 /* 3979 /*
8104 static struct fst 8104 static struct fst
8105 { 8105 {
8106 char *f_name; /* function name */ 8106 char *f_name; /* function name */
8107 char f_min_argc; /* minimal number of arguments */ 8107 char f_min_argc; /* minimal number of arguments */
8108 char f_max_argc; /* maximal number of arguments */ 8108 char f_max_argc; /* maximal number of arguments */
8109 void (*f_func) __ARGS((typval_T *args, typval_T *rvar)); 8109 void (*f_func)(typval_T *args, typval_T *rvar);
8110 /* implementation of function */ 8110 /* implementation of function */
8111 } functions[] = 8111 } functions[] =
8112 { 8112 {
8113 #ifdef FEAT_FLOAT 8113 #ifdef FEAT_FLOAT
8114 {"abs", 1, 1, f_abs}, 8114 {"abs", 1, 1, f_abs},
8939 /********************************************* 8939 /*********************************************
8940 * Implementation of the built-in functions 8940 * Implementation of the built-in functions
8941 */ 8941 */
8942 8942
8943 #ifdef FEAT_FLOAT 8943 #ifdef FEAT_FLOAT
8944 static int get_float_arg __ARGS((typval_T *argvars, float_T *f)); 8944 static int get_float_arg(typval_T *argvars, float_T *f);
8945 8945
8946 /* 8946 /*
8947 * Get the float value of "argvars[0]" into "f". 8947 * Get the float value of "argvars[0]" into "f".
8948 * Returns FAIL when the argument is not a Number or Float. 8948 * Returns FAIL when the argument is not a Number or Float.
8949 */ 8949 */
9197 for (idx = 0; idx < ARGCOUNT; ++idx) 9197 for (idx = 0; idx < ARGCOUNT; ++idx)
9198 list_append_string(rettv->vval.v_list, 9198 list_append_string(rettv->vval.v_list,
9199 alist_name(&ARGLIST[idx]), -1); 9199 alist_name(&ARGLIST[idx]), -1);
9200 } 9200 }
9201 9201
9202 static void prepare_assert_error __ARGS((garray_T*gap)); 9202 static void prepare_assert_error(garray_T*gap);
9203 static void fill_assert_error __ARGS((garray_T *gap, typval_T *opt_msg_tv, char_u *exp_str, typval_T *exp_tv, typval_T *got_tv)); 9203 static void fill_assert_error(garray_T *gap, typval_T *opt_msg_tv, char_u *exp_str, typval_T *exp_tv, typval_T *got_tv);
9204 static void assert_error __ARGS((garray_T *gap)); 9204 static void assert_error(garray_T *gap);
9205 static void assert_bool __ARGS((typval_T *argvars, int isTrue)); 9205 static void assert_bool(typval_T *argvars, int isTrue);
9206 9206
9207 /* 9207 /*
9208 * Prepare "gap" for an assert error and add the sourcing position. 9208 * Prepare "gap" for an assert error and add the sourcing position.
9209 */ 9209 */
9210 static void 9210 static void
9532 rettv->vval.v_string = NULL; 9532 rettv->vval.v_string = NULL;
9533 #endif 9533 #endif
9534 rettv->v_type = VAR_STRING; 9534 rettv->v_type = VAR_STRING;
9535 } 9535 }
9536 9536
9537 static buf_T *find_buffer __ARGS((typval_T *avar)); 9537 static buf_T *find_buffer(typval_T *avar);
9538 9538
9539 /* 9539 /*
9540 * Find a buffer by number or exact name. 9540 * Find a buffer by number or exact name.
9541 */ 9541 */
9542 static buf_T * 9542 static buf_T *
9605 9605
9606 buf = find_buffer(&argvars[0]); 9606 buf = find_buffer(&argvars[0]);
9607 rettv->vval.v_number = (buf != NULL && buf->b_ml.ml_mfp != NULL); 9607 rettv->vval.v_number = (buf != NULL && buf->b_ml.ml_mfp != NULL);
9608 } 9608 }
9609 9609
9610 static buf_T *get_buf_tv __ARGS((typval_T *tv, int curtab_only)); 9610 static buf_T *get_buf_tv(typval_T *tv, int curtab_only);
9611 9611
9612 /* 9612 /*
9613 * Get buffer by number or pattern. 9613 * Get buffer by number or pattern.
9614 */ 9614 */
9615 static buf_T * 9615 static buf_T *
11078 typval_T *rettv; 11078 typval_T *rettv;
11079 { 11079 {
11080 rettv->vval.v_number = filewritable(get_tv_string(&argvars[0])); 11080 rettv->vval.v_number = filewritable(get_tv_string(&argvars[0]));
11081 } 11081 }
11082 11082
11083 static void findfilendir __ARGS((typval_T *argvars, typval_T *rettv, int find_what)); 11083 static void findfilendir(typval_T *argvars, typval_T *rettv, int find_what);
11084 11084
11085 static void 11085 static void
11086 findfilendir(argvars, rettv, find_what) 11086 findfilendir(argvars, rettv, find_what)
11087 typval_T *argvars UNUSED; 11087 typval_T *argvars UNUSED;
11088 typval_T *rettv; 11088 typval_T *rettv;
11147 if (rettv->v_type == VAR_STRING) 11147 if (rettv->v_type == VAR_STRING)
11148 rettv->vval.v_string = fresult; 11148 rettv->vval.v_string = fresult;
11149 #endif 11149 #endif
11150 } 11150 }
11151 11151
11152 static void filter_map __ARGS((typval_T *argvars, typval_T *rettv, int map)); 11152 static void filter_map(typval_T *argvars, typval_T *rettv, int map);
11153 static int filter_map_one __ARGS((typval_T *tv, char_u *expr, int map, int *remp)); 11153 static int filter_map_one(typval_T *tv, char_u *expr, int map, int *remp);
11154 11154
11155 /* 11155 /*
11156 * Implementation of map() and filter(). 11156 * Implementation of map() and filter().
11157 */ 11157 */
11158 static void 11158 static void
11456 else 11456 else
11457 rettv->vval.v_string = vim_strnsave(fname, len); 11457 rettv->vval.v_string = vim_strnsave(fname, len);
11458 vim_free(fbuf); 11458 vim_free(fbuf);
11459 } 11459 }
11460 11460
11461 static void foldclosed_both __ARGS((typval_T *argvars, typval_T *rettv, int end)); 11461 static void foldclosed_both(typval_T *argvars, typval_T *rettv, int end);
11462 11462
11463 /* 11463 /*
11464 * "foldclosed()" function 11464 * "foldclosed()" function
11465 */ 11465 */
11466 static void 11466 static void
11750 } 11750 }
11751 else 11751 else
11752 copy_tv(tv, rettv); 11752 copy_tv(tv, rettv);
11753 } 11753 }
11754 11754
11755 static void get_buffer_lines __ARGS((buf_T *buf, linenr_T start, linenr_T end, int retlist, typval_T *rettv)); 11755 static void get_buffer_lines(buf_T *buf, linenr_T start, linenr_T end, int retlist, typval_T *rettv);
11756 11756
11757 /* 11757 /*
11758 * Get line or list of lines from buffer "buf" into "rettv". 11758 * Get line or list of lines from buffer "buf" into "rettv".
11759 * Return a range (from start to end) of lines in rettv from the specified 11759 * Return a range (from start to end) of lines in rettv from the specified
11760 * buffer. 11760 * buffer.
12426 typval_T *rettv; 12426 typval_T *rettv;
12427 { 12427 {
12428 rettv->vval.v_number = mch_get_pid(); 12428 rettv->vval.v_number = mch_get_pid();
12429 } 12429 }
12430 12430
12431 static void getpos_both __ARGS((typval_T *argvars, typval_T *rettv, int getcurpos)); 12431 static void getpos_both(typval_T *argvars, typval_T *rettv, int getcurpos);
12432 12432
12433 /* 12433 /*
12434 * "getcurpos()" function 12434 * "getcurpos()" function
12435 */ 12435 */
12436 static void 12436 static void
13906 } 13906 }
13907 } 13907 }
13908 13908
13909 static int inputsecret_flag = 0; 13909 static int inputsecret_flag = 0;
13910 13910
13911 static void get_user_input __ARGS((typval_T *argvars, typval_T *rettv, int inputdialog)); 13911 static void get_user_input(typval_T *argvars, typval_T *rettv, int inputdialog);
13912 13912
13913 /* 13913 /*
13914 * This function is used by f_input() and f_inputdialog() functions. The third 13914 * This function is used by f_input() and f_inputdialog() functions. The third
13915 * argument to f_input() specifies the type of completion to use at the 13915 * argument to f_input() specifies the type of completion to use at the
13916 * prompt. The third argument to f_inputdialog() specifies the value to return 13916 * prompt. The third argument to f_inputdialog() specifies the value to return
14293 } 14293 }
14294 14294
14295 clear_lval(&lv); 14295 clear_lval(&lv);
14296 } 14296 }
14297 14297
14298 static void dict_list __ARGS((typval_T *argvars, typval_T *rettv, int what)); 14298 static void dict_list(typval_T *argvars, typval_T *rettv, int what);
14299 14299
14300 /* 14300 /*
14301 * Turn a dict into a list: 14301 * Turn a dict into a list:
14302 * "what" == 0: list of keys 14302 * "what" == 0: list of keys
14303 * "what" == 1: list of values 14303 * "what" == 1: list of values
14511 EMSG(_("E701: Invalid type for len()")); 14511 EMSG(_("E701: Invalid type for len()"));
14512 break; 14512 break;
14513 } 14513 }
14514 } 14514 }
14515 14515
14516 static void libcall_common __ARGS((typval_T *argvars, typval_T *rettv, int type)); 14516 static void libcall_common(typval_T *argvars, typval_T *rettv, int type);
14517 14517
14518 static void 14518 static void
14519 libcall_common(argvars, rettv, type) 14519 libcall_common(argvars, rettv, type)
14520 typval_T *argvars; 14520 typval_T *argvars;
14521 typval_T *rettv; 14521 typval_T *rettv;
14654 typval_T *rettv; 14654 typval_T *rettv;
14655 { 14655 {
14656 rettv->vval.v_number = (varnumber_T)time(NULL); 14656 rettv->vval.v_number = (varnumber_T)time(NULL);
14657 } 14657 }
14658 14658
14659 static void get_maparg __ARGS((typval_T *argvars, typval_T *rettv, int exact)); 14659 static void get_maparg(typval_T *argvars, typval_T *rettv, int exact);
14660 14660
14661 static void 14661 static void
14662 get_maparg(argvars, rettv, exact) 14662 get_maparg(argvars, rettv, exact)
14663 typval_T *argvars; 14663 typval_T *argvars;
14664 typval_T *rettv; 14664 typval_T *rettv;
14817 typval_T *rettv; 14817 typval_T *rettv;
14818 { 14818 {
14819 get_maparg(argvars, rettv, FALSE); 14819 get_maparg(argvars, rettv, FALSE);
14820 } 14820 }
14821 14821
14822 static void find_some_match __ARGS((typval_T *argvars, typval_T *rettv, int start)); 14822 static void find_some_match(typval_T *argvars, typval_T *rettv, int start);
14823 14823
14824 static void 14824 static void
14825 find_some_match(argvars, rettv, type) 14825 find_some_match(argvars, rettv, type)
14826 typval_T *argvars; 14826 typval_T *argvars;
14827 typval_T *rettv; 14827 typval_T *rettv;
15226 typval_T *rettv; 15226 typval_T *rettv;
15227 { 15227 {
15228 find_some_match(argvars, rettv, 2); 15228 find_some_match(argvars, rettv, 2);
15229 } 15229 }
15230 15230
15231 static void max_min __ARGS((typval_T *argvars, typval_T *rettv, int domax)); 15231 static void max_min(typval_T *argvars, typval_T *rettv, int domax);
15232 15232
15233 static void 15233 static void
15234 max_min(argvars, rettv, domax) 15234 max_min(argvars, rettv, domax)
15235 typval_T *argvars; 15235 typval_T *argvars;
15236 typval_T *rettv; 15236 typval_T *rettv;
15317 typval_T *rettv; 15317 typval_T *rettv;
15318 { 15318 {
15319 max_min(argvars, rettv, FALSE); 15319 max_min(argvars, rettv, FALSE);
15320 } 15320 }
15321 15321
15322 static int mkdir_recurse __ARGS((char_u *dir, int prot)); 15322 static int mkdir_recurse(char_u *dir, int prot);
15323 15323
15324 /* 15324 /*
15325 * Create the directory in which "dir" is located, and higher levels when 15325 * Create the directory in which "dir" is located, and higher levels when
15326 * needed. 15326 * needed.
15327 */ 15327 */
15990 vim_free(prev); 15990 vim_free(prev);
15991 fclose(fd); 15991 fclose(fd);
15992 } 15992 }
15993 15993
15994 #if defined(FEAT_RELTIME) 15994 #if defined(FEAT_RELTIME)
15995 static int list2proftime __ARGS((typval_T *arg, proftime_T *tm)); 15995 static int list2proftime(typval_T *arg, proftime_T *tm);
15996 15996
15997 /* 15997 /*
15998 * Convert a List to proftime_T. 15998 * Convert a List to proftime_T.
15999 * Return FAIL when there is something wrong. 15999 * Return FAIL when there is something wrong.
16000 */ 16000 */
16090 rettv->vval.v_string = vim_strsave((char_u *)profile_msg(&tm)); 16090 rettv->vval.v_string = vim_strsave((char_u *)profile_msg(&tm));
16091 #endif 16091 #endif
16092 } 16092 }
16093 16093
16094 #if defined(FEAT_CLIENTSERVER) && defined(FEAT_X11) 16094 #if defined(FEAT_CLIENTSERVER) && defined(FEAT_X11)
16095 static void make_connection __ARGS((void)); 16095 static void make_connection(void);
16096 static int check_connection __ARGS((void)); 16096 static int check_connection(void);
16097 16097
16098 static void 16098 static void
16099 make_connection() 16099 make_connection()
16100 { 16100 {
16101 if (X_DISPLAY == NULL 16101 if (X_DISPLAY == NULL
16122 return OK; 16122 return OK;
16123 } 16123 }
16124 #endif 16124 #endif
16125 16125
16126 #ifdef FEAT_CLIENTSERVER 16126 #ifdef FEAT_CLIENTSERVER
16127 static void remote_common __ARGS((typval_T *argvars, typval_T *rettv, int expr)); 16127 static void remote_common(typval_T *argvars, typval_T *rettv, int expr);
16128 16128
16129 static void 16129 static void
16130 remote_common(argvars, rettv, expr) 16130 remote_common(argvars, rettv, expr)
16131 typval_T *argvars; 16131 typval_T *argvars;
16132 typval_T *rettv; 16132 typval_T *rettv;
16747 #define SP_START 0x10 /* accept match at start position */ 16747 #define SP_START 0x10 /* accept match at start position */
16748 #define SP_SUBPAT 0x20 /* return nr of matching sub-pattern */ 16748 #define SP_SUBPAT 0x20 /* return nr of matching sub-pattern */
16749 #define SP_END 0x40 /* leave cursor at end of match */ 16749 #define SP_END 0x40 /* leave cursor at end of match */
16750 #define SP_COLUMN 0x80 /* start at cursor column */ 16750 #define SP_COLUMN 0x80 /* start at cursor column */
16751 16751
16752 static int get_search_arg __ARGS((typval_T *varp, int *flagsp)); 16752 static int get_search_arg(typval_T *varp, int *flagsp);
16753 16753
16754 /* 16754 /*
16755 * Get flags for a search function. 16755 * Get flags for a search function.
16756 * Possibly sets "p_ws". 16756 * Possibly sets "p_ws".
16757 * Returns BACKWARD, FORWARD or zero (for an error). 16757 * Returns BACKWARD, FORWARD or zero (for an error).
17603 17603
17604 if (added > 0) 17604 if (added > 0)
17605 appended_lines_mark(lcount, added); 17605 appended_lines_mark(lcount, added);
17606 } 17606 }
17607 17607
17608 static void set_qf_ll_list __ARGS((win_T *wp, typval_T *list_arg, typval_T *action_arg, typval_T *rettv)); 17608 static void set_qf_ll_list(win_T *wp, typval_T *list_arg, typval_T *action_arg, typval_T *rettv);
17609 17609
17610 /* 17610 /*
17611 * Used by "setqflist()" and "setloclist()" functions 17611 * Used by "setqflist()" and "setloclist()" functions
17612 */ 17612 */
17613 static void 17613 static void
18195 18195
18196 static int 18196 static int
18197 #ifdef __BORLANDC__ 18197 #ifdef __BORLANDC__
18198 _RTLENTRYF 18198 _RTLENTRYF
18199 #endif 18199 #endif
18200 item_compare __ARGS((const void *s1, const void *s2)); 18200 item_compare(const void *s1, const void *s2);
18201 static int 18201 static int
18202 #ifdef __BORLANDC__ 18202 #ifdef __BORLANDC__
18203 _RTLENTRYF 18203 _RTLENTRYF
18204 #endif 18204 #endif
18205 item_compare2 __ARGS((const void *s1, const void *s2)); 18205 item_compare2(const void *s1, const void *s2);
18206 18206
18207 /* struct used in the array that's given to qsort() */ 18207 /* struct used in the array that's given to qsort() */
18208 typedef struct 18208 typedef struct
18209 { 18209 {
18210 listitem_T *item; 18210 listitem_T *item;
18219 #endif 18219 #endif
18220 static char_u *item_compare_func; 18220 static char_u *item_compare_func;
18221 static dict_T *item_compare_selfdict; 18221 static dict_T *item_compare_selfdict;
18222 static int item_compare_func_err; 18222 static int item_compare_func_err;
18223 static int item_compare_keep_zero; 18223 static int item_compare_keep_zero;
18224 static void do_sort_uniq __ARGS((typval_T *argvars, typval_T *rettv, int sort)); 18224 static void do_sort_uniq(typval_T *argvars, typval_T *rettv, int sort);
18225 #define ITEM_COMPARE_FAIL 999 18225 #define ITEM_COMPARE_FAIL 999
18226 18226
18227 /* 18227 /*
18228 * Compare functions for f_sort() and f_uniq() below. 18228 * Compare functions for f_sort() and f_uniq() below.
18229 */ 18229 */
18499 } 18499 }
18500 } 18500 }
18501 } 18501 }
18502 else 18502 else
18503 { 18503 {
18504 int (*item_compare_func_ptr)__ARGS((const void *, const void *)); 18504 int (*item_compare_func_ptr)(const void *, const void *);
18505 18505
18506 /* f_uniq(): ptrs will be a stack of items to remove */ 18506 /* f_uniq(): ptrs will be a stack of items to remove */
18507 item_compare_func_err = FALSE; 18507 item_compare_func_err = FALSE;
18508 item_compare_keep_zero = TRUE; 18508 item_compare_keep_zero = TRUE;
18509 item_compare_func_ptr = item_compare_func 18509 item_compare_func_ptr = item_compare_func
19715 rettv->vval.v_number = nr; 19715 rettv->vval.v_number = nr;
19716 } 19716 }
19717 19717
19718 19718
19719 #ifdef FEAT_WINDOWS 19719 #ifdef FEAT_WINDOWS
19720 static int get_winnr __ARGS((tabpage_T *tp, typval_T *argvar)); 19720 static int get_winnr(tabpage_T *tp, typval_T *argvar);
19721 19721
19722 /* 19722 /*
19723 * Common code for tabpagewinnr() and winnr(). 19723 * Common code for tabpagewinnr() and winnr().
19724 */ 19724 */
19725 static int 19725 static int
25158 VAR_FLAVOUR_DEFAULT, /* doesn't start with uppercase */ 25158 VAR_FLAVOUR_DEFAULT, /* doesn't start with uppercase */
25159 VAR_FLAVOUR_SESSION, /* starts with uppercase, some lower */ 25159 VAR_FLAVOUR_SESSION, /* starts with uppercase, some lower */
25160 VAR_FLAVOUR_VIMINFO /* all uppercase */ 25160 VAR_FLAVOUR_VIMINFO /* all uppercase */
25161 } var_flavour_T; 25161 } var_flavour_T;
25162 25162
25163 static var_flavour_T var_flavour __ARGS((char_u *varname)); 25163 static var_flavour_T var_flavour(char_u *varname);
25164 25164
25165 static var_flavour_T 25165 static var_flavour_T
25166 var_flavour(varname) 25166 var_flavour(varname)
25167 char_u *varname; 25167 char_u *varname;
25168 { 25168 {
25473 25473
25474 #ifdef WIN3264 25474 #ifdef WIN3264
25475 /* 25475 /*
25476 * Functions for ":8" filename modifier: get 8.3 version of a filename. 25476 * Functions for ":8" filename modifier: get 8.3 version of a filename.
25477 */ 25477 */
25478 static int get_short_pathname __ARGS((char_u **fnamep, char_u **bufp, int *fnamelen)); 25478 static int get_short_pathname(char_u **fnamep, char_u **bufp, int *fnamelen);
25479 static int shortpath_for_invalid_fname __ARGS((char_u **fname, char_u **bufp, int *fnamelen)); 25479 static int shortpath_for_invalid_fname(char_u **fname, char_u **bufp, int *fnamelen);
25480 static int shortpath_for_partial __ARGS((char_u **fnamep, char_u **bufp, int *fnamelen)); 25480 static int shortpath_for_partial(char_u **fnamep, char_u **bufp, int *fnamelen);
25481 25481
25482 /* 25482 /*
25483 * Get the short path (8.3) for the filename in "fnamep". 25483 * Get the short path (8.3) for the filename in "fnamep".
25484 * Only works for a valid file name. 25484 * Only works for a valid file name.
25485 * When the path gets longer "fnamep" is changed and the allocated buffer 25485 * When the path gets longer "fnamep" is changed and the allocated buffer