forked from aniani/vim
patch 9.0.1183: code is indented more than necessary
Problem: Code is indented more than necessary. Solution: Use an early return where it makes sense. (Yegappan Lakshmanan, closes #11805)
This commit is contained in:
committed by
Bram Moolenaar
parent
043d7b2c84
commit
0233bdfa2b
266
src/if_lua.c
266
src/if_lua.c
@@ -505,18 +505,20 @@ luaV_toudata(lua_State *L, int ud, const char *tname)
|
||||
{
|
||||
void *p = lua_touserdata(L, ud);
|
||||
|
||||
if (p != NULL) // value is userdata?
|
||||
if (p == NULL)
|
||||
return NULL;
|
||||
|
||||
// value is userdata
|
||||
if (lua_getmetatable(L, ud)) // does it have a metatable?
|
||||
{
|
||||
if (lua_getmetatable(L, ud)) // does it have a metatable?
|
||||
luaV_getfield(L, tname); // get metatable
|
||||
if (lua_rawequal(L, -1, -2)) // MTs match?
|
||||
{
|
||||
luaV_getfield(L, tname); // get metatable
|
||||
if (lua_rawequal(L, -1, -2)) // MTs match?
|
||||
{
|
||||
lua_pop(L, 2); // MTs
|
||||
return p;
|
||||
}
|
||||
lua_pop(L, 2); // MTs
|
||||
return p;
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -1090,17 +1092,19 @@ luaV_dict_index(lua_State *L)
|
||||
dictitem_T *di = dict_find(d, key, -1);
|
||||
|
||||
if (di == NULL)
|
||||
lua_pushnil(L);
|
||||
else
|
||||
{
|
||||
luaV_pushtypval(L, &di->di_tv);
|
||||
if (di->di_tv.v_type == VAR_FUNC) // funcref?
|
||||
{
|
||||
luaV_Funcref *f = (luaV_Funcref *) lua_touserdata(L, -1);
|
||||
f->self = d; // keep "self" reference
|
||||
d->dv_refcount++;
|
||||
}
|
||||
lua_pushnil(L);
|
||||
return 1;
|
||||
}
|
||||
|
||||
luaV_pushtypval(L, &di->di_tv);
|
||||
if (di->di_tv.v_type == VAR_FUNC) // funcref?
|
||||
{
|
||||
luaV_Funcref *f = (luaV_Funcref *) lua_touserdata(L, -1);
|
||||
f->self = d; // keep "self" reference
|
||||
d->dv_refcount++;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -1235,20 +1239,22 @@ luaV_blob_newindex(lua_State *L)
|
||||
blob_T *b = luaV_unbox(L, luaV_Blob, 1);
|
||||
if (b->bv_lock)
|
||||
luaL_error(L, "blob is locked");
|
||||
if (lua_isnumber(L, 2))
|
||||
|
||||
if (!lua_isnumber(L, 2))
|
||||
return 0;
|
||||
|
||||
long len = blob_len(b);
|
||||
int idx = luaL_checkinteger(L, 2);
|
||||
int val = luaL_checkinteger(L, 3);
|
||||
if (idx < len || (idx == len && ga_grow(&b->bv_ga, 1) == OK))
|
||||
{
|
||||
long len = blob_len(b);
|
||||
int idx = luaL_checkinteger(L, 2);
|
||||
int val = luaL_checkinteger(L, 3);
|
||||
if (idx < len || (idx == len && ga_grow(&b->bv_ga, 1) == OK))
|
||||
{
|
||||
blob_set(b, idx, (char_u) val);
|
||||
if (idx == len)
|
||||
++b->bv_ga.ga_len;
|
||||
}
|
||||
else
|
||||
luaL_error(L, "index out of range");
|
||||
blob_set(b, idx, (char_u) val);
|
||||
if (idx == len)
|
||||
++b->bv_ga.ga_len;
|
||||
}
|
||||
else
|
||||
luaL_error(L, "index out of range");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1943,30 +1949,34 @@ luaV_list(lua_State *L)
|
||||
|
||||
if (initarg && lua_type(L, 1) != LUA_TTABLE)
|
||||
luaL_error(L, "table expected, got %s", luaL_typename(L, 1));
|
||||
|
||||
l = list_alloc();
|
||||
if (l == NULL)
|
||||
lua_pushnil(L);
|
||||
else
|
||||
{
|
||||
luaV_newlist(L, l);
|
||||
if (initarg) // traverse table to init list
|
||||
{
|
||||
int notnil, i = 0;
|
||||
typval_T v;
|
||||
do
|
||||
{
|
||||
lua_rawgeti(L, 1, ++i);
|
||||
notnil = !lua_isnil(L, -1);
|
||||
if (notnil)
|
||||
{
|
||||
luaV_checktypval(L, -1, &v, "vim.list");
|
||||
list_append_tv(l, &v);
|
||||
clear_tv(&v);
|
||||
}
|
||||
lua_pop(L, 1); // value
|
||||
} while (notnil);
|
||||
}
|
||||
lua_pushnil(L);
|
||||
return 1;
|
||||
}
|
||||
|
||||
luaV_newlist(L, l);
|
||||
if (!initarg)
|
||||
return 1;
|
||||
|
||||
// traverse table to init list
|
||||
int notnil, i = 0;
|
||||
typval_T v;
|
||||
do
|
||||
{
|
||||
lua_rawgeti(L, 1, ++i);
|
||||
notnil = !lua_isnil(L, -1);
|
||||
if (notnil)
|
||||
{
|
||||
luaV_checktypval(L, -1, &v, "vim.list");
|
||||
list_append_tv(l, &v);
|
||||
clear_tv(&v);
|
||||
}
|
||||
lua_pop(L, 1); // value
|
||||
} while (notnil);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -1978,43 +1988,47 @@ luaV_dict(lua_State *L)
|
||||
|
||||
if (initarg && lua_type(L, 1) != LUA_TTABLE)
|
||||
luaL_error(L, "table expected, got %s", luaL_typename(L, 1));
|
||||
|
||||
d = dict_alloc();
|
||||
if (d == NULL)
|
||||
lua_pushnil(L);
|
||||
else
|
||||
{
|
||||
luaV_newdict(L, d);
|
||||
if (initarg) // traverse table to init dict
|
||||
lua_pushnil(L);
|
||||
return 1;
|
||||
}
|
||||
|
||||
luaV_newdict(L, d);
|
||||
if (!initarg)
|
||||
return 1;
|
||||
|
||||
// traverse table to init dict
|
||||
lua_pushnil(L);
|
||||
while (lua_next(L, 1))
|
||||
{
|
||||
char_u *key;
|
||||
dictitem_T *di;
|
||||
typval_T v;
|
||||
|
||||
lua_pushvalue(L, -2); // dup key in case it's a number
|
||||
key = (char_u *) lua_tostring(L, -1);
|
||||
if (key == NULL)
|
||||
{
|
||||
lua_pushnil(L);
|
||||
while (lua_next(L, 1))
|
||||
{
|
||||
char_u *key;
|
||||
dictitem_T *di;
|
||||
typval_T v;
|
||||
|
||||
lua_pushvalue(L, -2); // dup key in case it's a number
|
||||
key = (char_u *) lua_tostring(L, -1);
|
||||
if (key == NULL)
|
||||
{
|
||||
lua_pushnil(L);
|
||||
return 1;
|
||||
}
|
||||
if (*key == NUL)
|
||||
luaL_error(L, "table has empty key");
|
||||
luaV_checktypval(L, -2, &v, "vim.dict"); // value
|
||||
di = dictitem_alloc(key);
|
||||
if (di == NULL || dict_add(d, di) == FAIL)
|
||||
{
|
||||
vim_free(di);
|
||||
lua_pushnil(L);
|
||||
return 1;
|
||||
}
|
||||
di->di_tv = v;
|
||||
lua_pop(L, 2); // key copy and value
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
if (*key == NUL)
|
||||
luaL_error(L, "table has empty key");
|
||||
luaV_checktypval(L, -2, &v, "vim.dict"); // value
|
||||
di = dictitem_alloc(key);
|
||||
if (di == NULL || dict_add(d, di) == FAIL)
|
||||
{
|
||||
vim_free(di);
|
||||
lua_pushnil(L);
|
||||
return 1;
|
||||
}
|
||||
di->di_tv = v;
|
||||
lua_pop(L, 2); // key copy and value
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -2026,22 +2040,26 @@ luaV_blob(lua_State *L)
|
||||
|
||||
if (initarg && !lua_isstring(L, 1))
|
||||
luaL_error(L, "string expected, got %s", luaL_typename(L, 1));
|
||||
|
||||
b = blob_alloc();
|
||||
if (b == NULL)
|
||||
lua_pushnil(L);
|
||||
else
|
||||
{
|
||||
luaV_newblob(L, b);
|
||||
if (initarg)
|
||||
{
|
||||
size_t i, l = 0;
|
||||
const char *s = lua_tolstring(L, 1, &l);
|
||||
|
||||
if (ga_grow(&b->bv_ga, (int)l) == OK)
|
||||
for (i = 0; i < l; ++i)
|
||||
ga_append(&b->bv_ga, s[i]);
|
||||
}
|
||||
lua_pushnil(L);
|
||||
return 1;
|
||||
}
|
||||
|
||||
luaV_newblob(L, b);
|
||||
if (!initarg)
|
||||
return 1;
|
||||
|
||||
// traverse table to init blob
|
||||
size_t i, l = 0;
|
||||
const char *s = lua_tolstring(L, 1, &l);
|
||||
|
||||
if (ga_grow(&b->bv_ga, (int)l) == OK)
|
||||
for (i = 0; i < l; ++i)
|
||||
ga_append(&b->bv_ga, s[i]);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -2548,28 +2566,29 @@ lua_isopen(void)
|
||||
static int
|
||||
lua_init(void)
|
||||
{
|
||||
if (!lua_isopen())
|
||||
{
|
||||
if (lua_isopen())
|
||||
return OK;
|
||||
|
||||
#ifdef DYNAMIC_LUA
|
||||
if (!lua_enabled(TRUE))
|
||||
{
|
||||
emsg(_("Lua library cannot be loaded."));
|
||||
return FAIL;
|
||||
}
|
||||
#endif
|
||||
L = luaV_newstate();
|
||||
if (!lua_enabled(TRUE))
|
||||
{
|
||||
emsg(_("Lua library cannot be loaded."));
|
||||
return FAIL;
|
||||
}
|
||||
#endif
|
||||
L = luaV_newstate();
|
||||
|
||||
return OK;
|
||||
}
|
||||
|
||||
void
|
||||
lua_end(void)
|
||||
{
|
||||
if (lua_isopen())
|
||||
{
|
||||
lua_close(L);
|
||||
L = NULL;
|
||||
}
|
||||
if (!lua_isopen())
|
||||
return;
|
||||
|
||||
lua_close(L);
|
||||
L = NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -2698,31 +2717,32 @@ set_ref_in_lua(int copyID)
|
||||
{
|
||||
int aborted = 0;
|
||||
|
||||
if (lua_isopen())
|
||||
{
|
||||
luaV_getfield(L, LUAVIM_SETREF);
|
||||
// call the function with 1 arg, getting 1 result back
|
||||
lua_pushinteger(L, copyID);
|
||||
lua_call(L, 1, 1);
|
||||
// get the result
|
||||
aborted = lua_tointeger(L, -1);
|
||||
// pop result off the stack
|
||||
lua_pop(L, 1);
|
||||
}
|
||||
if (!lua_isopen())
|
||||
return 0;
|
||||
|
||||
luaV_getfield(L, LUAVIM_SETREF);
|
||||
// call the function with 1 arg, getting 1 result back
|
||||
lua_pushinteger(L, copyID);
|
||||
lua_call(L, 1, 1);
|
||||
// get the result
|
||||
aborted = lua_tointeger(L, -1);
|
||||
// pop result off the stack
|
||||
lua_pop(L, 1);
|
||||
|
||||
return aborted;
|
||||
}
|
||||
|
||||
void
|
||||
update_package_paths_in_lua()
|
||||
{
|
||||
if (lua_isopen())
|
||||
{
|
||||
lua_getglobal(L, "vim");
|
||||
lua_getfield(L, -1, "_update_package_paths");
|
||||
if (!lua_isopen())
|
||||
return;
|
||||
|
||||
if (lua_pcall(L, 0, 0, 0))
|
||||
luaV_emsg(L);
|
||||
}
|
||||
lua_getglobal(L, "vim");
|
||||
lua_getfield(L, -1, "_update_package_paths");
|
||||
|
||||
if (lua_pcall(L, 0, 0, 0))
|
||||
luaV_emsg(L);
|
||||
}
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user