diff src/evalfunc.c @ 17857:4935244c1128 v8.1.1925

patch 8.1.1925: more functions can be used as methods Commit: https://github.com/vim/vim/commit/4c313b13fb7bfa694ec6d2a13175e8650c007b2a Author: Bram Moolenaar <Bram@vim.org> Date: Sat Aug 24 22:58:31 2019 +0200 patch 8.1.1925: more functions can be used as methods Problem: More functions can be used as methods. Solution: Make various functions usable as a method.
author Bram Moolenaar <Bram@vim.org>
date Sat, 24 Aug 2019 23:00:04 +0200
parents 285f7a700185
children 521ce0d887e5
line wrap: on
line diff
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -561,9 +561,9 @@ static funcentry_T global_functions[] =
     {"garbagecollect",	0, 1, 0,	  f_garbagecollect},
     {"get",		2, 3, FEARG_1,	  f_get},
     {"getbufinfo",	0, 1, 0,	  f_getbufinfo},
-    {"getbufline",	2, 3, 0,	  f_getbufline},
-    {"getbufvar",	2, 3, 0,	  f_getbufvar},
-    {"getchangelist",	1, 1, 0,	  f_getchangelist},
+    {"getbufline",	2, 3, FEARG_1,	  f_getbufline},
+    {"getbufvar",	2, 3, FEARG_1,	  f_getbufvar},
+    {"getchangelist",	0, 1, FEARG_1,	  f_getchangelist},
     {"getchar",		0, 1, 0,	  f_getchar},
     {"getcharmod",	0, 0, 0,	  f_getcharmod},
     {"getcharsearch",	0, 0, 0,	  f_getcharsearch},
@@ -571,27 +571,27 @@ static funcentry_T global_functions[] =
     {"getcmdpos",	0, 0, 0,	  f_getcmdpos},
     {"getcmdtype",	0, 0, 0,	  f_getcmdtype},
     {"getcmdwintype",	0, 0, 0,	  f_getcmdwintype},
-    {"getcompletion",	2, 3, 0,	  f_getcompletion},
+    {"getcompletion",	2, 3, FEARG_1,	  f_getcompletion},
     {"getcurpos",	0, 0, 0,	  f_getcurpos},
-    {"getcwd",		0, 2, 0,	  f_getcwd},
-    {"getenv",		1, 1, 0,	  f_getenv},
+    {"getcwd",		0, 2, FEARG_1,	  f_getcwd},
+    {"getenv",		1, 1, FEARG_1,	  f_getenv},
     {"getfontname",	0, 1, 0,	  f_getfontname},
-    {"getfperm",	1, 1, 0,	  f_getfperm},
-    {"getfsize",	1, 1, 0,	  f_getfsize},
-    {"getftime",	1, 1, 0,	  f_getftime},
-    {"getftype",	1, 1, 0,	  f_getftype},
-    {"getjumplist",	0, 2, 0,	  f_getjumplist},
-    {"getline",		1, 2, 0,	  f_getline},
+    {"getfperm",	1, 1, FEARG_1,	  f_getfperm},
+    {"getfsize",	1, 1, FEARG_1,	  f_getfsize},
+    {"getftime",	1, 1, FEARG_1,	  f_getftime},
+    {"getftype",	1, 1, FEARG_1,	  f_getftype},
+    {"getjumplist",	0, 2, FEARG_1,	  f_getjumplist},
+    {"getline",		1, 2, FEARG_1,	  f_getline},
     {"getloclist",	1, 2, 0,	  f_getloclist},
     {"getmatches",	0, 1, 0,	  f_getmatches},
     {"getpid",		0, 0, 0,	  f_getpid},
-    {"getpos",		1, 1, 0,	  f_getpos},
+    {"getpos",		1, 1, FEARG_1,	  f_getpos},
     {"getqflist",	0, 1, 0,	  f_getqflist},
-    {"getreg",		0, 3, 0,	  f_getreg},
-    {"getregtype",	0, 1, 0,	  f_getregtype},
-    {"gettabinfo",	0, 1, 0,	  f_gettabinfo},
-    {"gettabvar",	2, 3, 0,	  f_gettabvar},
-    {"gettabwinvar",	3, 4, 0,	  f_gettabwinvar},
+    {"getreg",		0, 3, FEARG_1,	  f_getreg},
+    {"getregtype",	0, 1, FEARG_1,	  f_getregtype},
+    {"gettabinfo",	0, 1, FEARG_1,	  f_gettabinfo},
+    {"gettabvar",	2, 3, FEARG_1,	  f_gettabvar},
+    {"gettabwinvar",	3, 4, FEARG_1,	  f_gettabwinvar},
     {"gettagstack",	0, 1, 0,	  f_gettagstack},
     {"getwininfo",	0, 1, 0,	  f_getwininfo},
     {"getwinpos",	0, 1, 0,	  f_getwinpos},
@@ -793,7 +793,7 @@ static funcentry_T global_functions[] =
     {"setcharsearch",	1, 1, 0,	  f_setcharsearch},
     {"setcmdpos",	1, 1, 0,	  f_setcmdpos},
     {"setenv",		2, 2, 0,	  f_setenv},
-    {"setfperm",	2, 2, 0,	  f_setfperm},
+    {"setfperm",	2, 2, FEARG_1,	  f_setfperm},
     {"setline",		2, 2, 0,	  f_setline},
     {"setloclist",	2, 4, 0,	  f_setloclist},
     {"setmatches",	1, 2, 0,	  f_setmatches},
@@ -4477,10 +4477,15 @@ f_getchangelist(typval_T *argvars, typva
 	return;
 
 #ifdef FEAT_JUMPLIST
-    (void)tv_get_number(&argvars[0]);	    /* issue errmsg if type error */
-    ++emsg_off;
-    buf = tv_get_buf(&argvars[0], FALSE);
-    --emsg_off;
+    if (argvars[0].v_type == VAR_UNKNOWN)
+	buf = curbuf;
+    else
+    {
+	(void)tv_get_number(&argvars[0]);    // issue errmsg if type error
+	++emsg_off;
+	buf = tv_get_buf(&argvars[0], FALSE);
+	--emsg_off;
+    }
     if (buf == NULL)
 	return;