Mercurial > vim
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 |