Mercurial > vim
comparison src/eval.c @ 505:7e6d264ec0a2 v7.0141
updated for version 7.0141
author | vimboss |
---|---|
date | Mon, 05 Sep 2005 22:14:46 +0000 |
parents | 4772a5e3f9fa |
children | a1059cda45f2 |
comparison
equal
deleted
inserted
replaced
504:35cde31bdcbd | 505:7e6d264ec0a2 |
---|---|
578 static void f_rename __ARGS((typval_T *argvars, typval_T *rettv)); | 578 static void f_rename __ARGS((typval_T *argvars, typval_T *rettv)); |
579 static void f_repeat __ARGS((typval_T *argvars, typval_T *rettv)); | 579 static void f_repeat __ARGS((typval_T *argvars, typval_T *rettv)); |
580 static void f_resolve __ARGS((typval_T *argvars, typval_T *rettv)); | 580 static void f_resolve __ARGS((typval_T *argvars, typval_T *rettv)); |
581 static void f_reverse __ARGS((typval_T *argvars, typval_T *rettv)); | 581 static void f_reverse __ARGS((typval_T *argvars, typval_T *rettv)); |
582 static void f_search __ARGS((typval_T *argvars, typval_T *rettv)); | 582 static void f_search __ARGS((typval_T *argvars, typval_T *rettv)); |
583 static void f_searchdecl __ARGS((typval_T *argvars, typval_T *rettv)); | |
583 static void f_searchpair __ARGS((typval_T *argvars, typval_T *rettv)); | 584 static void f_searchpair __ARGS((typval_T *argvars, typval_T *rettv)); |
584 static void f_server2client __ARGS((typval_T *argvars, typval_T *rettv)); | 585 static void f_server2client __ARGS((typval_T *argvars, typval_T *rettv)); |
585 static void f_serverlist __ARGS((typval_T *argvars, typval_T *rettv)); | 586 static void f_serverlist __ARGS((typval_T *argvars, typval_T *rettv)); |
586 static void f_setbufvar __ARGS((typval_T *argvars, typval_T *rettv)); | 587 static void f_setbufvar __ARGS((typval_T *argvars, typval_T *rettv)); |
587 static void f_setcmdpos __ARGS((typval_T *argvars, typval_T *rettv)); | 588 static void f_setcmdpos __ARGS((typval_T *argvars, typval_T *rettv)); |
6816 {"rename", 2, 2, f_rename}, | 6817 {"rename", 2, 2, f_rename}, |
6817 {"repeat", 2, 2, f_repeat}, | 6818 {"repeat", 2, 2, f_repeat}, |
6818 {"resolve", 1, 1, f_resolve}, | 6819 {"resolve", 1, 1, f_resolve}, |
6819 {"reverse", 1, 1, f_reverse}, | 6820 {"reverse", 1, 1, f_reverse}, |
6820 {"search", 1, 2, f_search}, | 6821 {"search", 1, 2, f_search}, |
6822 {"searchdecl", 1, 2, f_searchdecl}, | |
6821 {"searchpair", 3, 5, f_searchpair}, | 6823 {"searchpair", 3, 5, f_searchpair}, |
6822 {"server2client", 2, 2, f_server2client}, | 6824 {"server2client", 2, 2, f_server2client}, |
6823 {"serverlist", 0, 0, f_serverlist}, | 6825 {"serverlist", 0, 0, f_serverlist}, |
6824 {"setbufvar", 3, 3, f_setbufvar}, | 6826 {"setbufvar", 3, 3, f_setbufvar}, |
6825 {"setcmdpos", 1, 1, f_setcmdpos}, | 6827 {"setcmdpos", 1, 1, f_setcmdpos}, |
12971 /* If 'n' flag is used: restore cursor position. */ | 12973 /* If 'n' flag is used: restore cursor position. */ |
12972 if (flags & SP_NOMOVE) | 12974 if (flags & SP_NOMOVE) |
12973 curwin->w_cursor = save_cursor; | 12975 curwin->w_cursor = save_cursor; |
12974 theend: | 12976 theend: |
12975 p_ws = save_p_ws; | 12977 p_ws = save_p_ws; |
12978 } | |
12979 | |
12980 /* | |
12981 * "searchdecl()" function | |
12982 */ | |
12983 static void | |
12984 f_searchdecl(argvars, rettv) | |
12985 typval_T *argvars; | |
12986 typval_T *rettv; | |
12987 { | |
12988 int locally = 1; | |
12989 int error = FALSE; | |
12990 char_u *name; | |
12991 | |
12992 rettv->vval.v_number = 1; /* default: FAIL */ | |
12993 | |
12994 name = get_tv_string_chk(&argvars[0]); | |
12995 if (argvars[1].v_type != VAR_UNKNOWN) | |
12996 locally = get_tv_number_chk(&argvars[1], &error) == 0; | |
12997 if (!error && name != NULL) | |
12998 rettv->vval.v_number = find_decl(name, (int)STRLEN(name), | |
12999 locally, SEARCH_KEEP) == FAIL; | |
12976 } | 13000 } |
12977 | 13001 |
12978 /* | 13002 /* |
12979 * "searchpair()" function | 13003 * "searchpair()" function |
12980 */ | 13004 */ |
16799 eap->nextcmd = check_nextcmd(eap->arg); | 16823 eap->nextcmd = check_nextcmd(eap->arg); |
16800 return; | 16824 return; |
16801 } | 16825 } |
16802 | 16826 |
16803 /* | 16827 /* |
16828 * ":function /pat": list functions matching pattern. | |
16829 */ | |
16830 if (*eap->arg == '/') | |
16831 { | |
16832 p = skip_regexp(eap->arg + 1, '/', TRUE, NULL); | |
16833 if (!eap->skip) | |
16834 { | |
16835 regmatch_T regmatch; | |
16836 | |
16837 c = *p; | |
16838 *p = NUL; | |
16839 regmatch.regprog = vim_regcomp(eap->arg + 1, RE_MAGIC); | |
16840 *p = c; | |
16841 if (regmatch.regprog != NULL) | |
16842 { | |
16843 regmatch.rm_ic = p_ic; | |
16844 | |
16845 todo = func_hashtab.ht_used; | |
16846 for (hi = func_hashtab.ht_array; todo > 0 && !got_int; ++hi) | |
16847 { | |
16848 if (!HASHITEM_EMPTY(hi)) | |
16849 { | |
16850 --todo; | |
16851 fp = HI2UF(hi); | |
16852 if (!isdigit(*fp->uf_name) | |
16853 && vim_regexec(®match, fp->uf_name, 0)) | |
16854 list_func_head(fp, FALSE); | |
16855 } | |
16856 } | |
16857 } | |
16858 } | |
16859 if (*p == '/') | |
16860 ++p; | |
16861 eap->nextcmd = check_nextcmd(p); | |
16862 return; | |
16863 } | |
16864 | |
16865 /* | |
16804 * Get the function name. There are these situations: | 16866 * Get the function name. There are these situations: |
16805 * func normal function name | 16867 * func normal function name |
16806 * "name" == func, "fudi.fd_dict" == NULL | 16868 * "name" == func, "fudi.fd_dict" == NULL |
16807 * dict.func new dictionary entry | 16869 * dict.func new dictionary entry |
16808 * "name" == NULL, "fudi.fd_dict" set, | 16870 * "name" == NULL, "fudi.fd_dict" set, |