Mercurial > vim
comparison src/eval.c @ 3450:b067b8b81be9 v7.3.490
updated for version 7.3.490
Problem: Member confusion in Lua interface.
Solution: Fix it. Add luaeval(). (Taro Muraoka, Luis Carvalho)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Thu, 05 Apr 2012 16:54:08 +0200 |
parents | 19040069b8bf |
children | fe7bf24804e1 |
comparison
equal
deleted
inserted
replaced
3449:3107917c6aed | 3450:b067b8b81be9 |
---|---|
620 static void f_localtime __ARGS((typval_T *argvars, typval_T *rettv)); | 620 static void f_localtime __ARGS((typval_T *argvars, typval_T *rettv)); |
621 #ifdef FEAT_FLOAT | 621 #ifdef FEAT_FLOAT |
622 static void f_log __ARGS((typval_T *argvars, typval_T *rettv)); | 622 static void f_log __ARGS((typval_T *argvars, typval_T *rettv)); |
623 static void f_log10 __ARGS((typval_T *argvars, typval_T *rettv)); | 623 static void f_log10 __ARGS((typval_T *argvars, typval_T *rettv)); |
624 #endif | 624 #endif |
625 #ifdef FEAT_LUA | |
626 static void f_luaeval __ARGS((typval_T *argvars, typval_T *rettv)); | |
627 #endif | |
625 static void f_map __ARGS((typval_T *argvars, typval_T *rettv)); | 628 static void f_map __ARGS((typval_T *argvars, typval_T *rettv)); |
626 static void f_maparg __ARGS((typval_T *argvars, typval_T *rettv)); | 629 static void f_maparg __ARGS((typval_T *argvars, typval_T *rettv)); |
627 static void f_mapcheck __ARGS((typval_T *argvars, typval_T *rettv)); | 630 static void f_mapcheck __ARGS((typval_T *argvars, typval_T *rettv)); |
628 static void f_match __ARGS((typval_T *argvars, typval_T *rettv)); | 631 static void f_match __ARGS((typval_T *argvars, typval_T *rettv)); |
629 static void f_matchadd __ARGS((typval_T *argvars, typval_T *rettv)); | 632 static void f_matchadd __ARGS((typval_T *argvars, typval_T *rettv)); |
6774 set_ref_in_ht(&fc->l_avars.dv_hashtab, copyID); | 6777 set_ref_in_ht(&fc->l_avars.dv_hashtab, copyID); |
6775 } | 6778 } |
6776 | 6779 |
6777 /* v: vars */ | 6780 /* v: vars */ |
6778 set_ref_in_ht(&vimvarht, copyID); | 6781 set_ref_in_ht(&vimvarht, copyID); |
6782 | |
6783 #ifdef FEAT_LUA | |
6784 set_ref_in_lua(copyID); | |
6785 #endif | |
6779 | 6786 |
6780 /* | 6787 /* |
6781 * 2. Free lists and dictionaries that are not referenced. | 6788 * 2. Free lists and dictionaries that are not referenced. |
6782 */ | 6789 */ |
6783 did_free = free_unref_items(copyID); | 6790 did_free = free_unref_items(copyID); |
7944 {"localtime", 0, 0, f_localtime}, | 7951 {"localtime", 0, 0, f_localtime}, |
7945 #ifdef FEAT_FLOAT | 7952 #ifdef FEAT_FLOAT |
7946 {"log", 1, 1, f_log}, | 7953 {"log", 1, 1, f_log}, |
7947 {"log10", 1, 1, f_log10}, | 7954 {"log10", 1, 1, f_log10}, |
7948 #endif | 7955 #endif |
7956 #ifdef FEAT_LUA | |
7957 {"luaeval", 1, 2, f_luaeval}, | |
7958 #endif | |
7949 {"map", 2, 2, f_map}, | 7959 {"map", 2, 2, f_map}, |
7950 {"maparg", 1, 4, f_maparg}, | 7960 {"maparg", 1, 4, f_maparg}, |
7951 {"mapcheck", 1, 3, f_mapcheck}, | 7961 {"mapcheck", 1, 3, f_mapcheck}, |
7952 {"match", 2, 4, f_match}, | 7962 {"match", 2, 4, f_match}, |
7953 {"matchadd", 2, 4, f_matchadd}, | 7963 {"matchadd", 2, 4, f_matchadd}, |
13621 rettv->v_type = VAR_FLOAT; | 13631 rettv->v_type = VAR_FLOAT; |
13622 if (get_float_arg(argvars, &f) == OK) | 13632 if (get_float_arg(argvars, &f) == OK) |
13623 rettv->vval.v_float = log10(f); | 13633 rettv->vval.v_float = log10(f); |
13624 else | 13634 else |
13625 rettv->vval.v_float = 0.0; | 13635 rettv->vval.v_float = 0.0; |
13636 } | |
13637 #endif | |
13638 | |
13639 #ifdef FEAT_LUA | |
13640 /* | |
13641 * "luaeval()" function | |
13642 */ | |
13643 static void | |
13644 f_luaeval(argvars, rettv) | |
13645 typval_T *argvars; | |
13646 typval_T *rettv; | |
13647 { | |
13648 char_u *str; | |
13649 char_u buf[NUMBUFLEN]; | |
13650 | |
13651 str = get_tv_string_buf(&argvars[0], buf); | |
13652 do_luaeval(str, argvars + 1, rettv); | |
13626 } | 13653 } |
13627 #endif | 13654 #endif |
13628 | 13655 |
13629 /* | 13656 /* |
13630 * "map()" function | 13657 * "map()" function |