Lines Matching refs:lp
819 lval_T *lp, in get_lval() argument
839 CLEAR_POINTER(lp); in get_lval()
844 lp->ll_name = name; in get_lval()
845 lp->ll_name_end = find_name_end(name, NULL, NULL, in get_lval()
847 return lp->ll_name_end; in get_lval()
852 lp->ll_name_end = p; in get_lval()
863 lp->ll_exp_name = make_expanded_name(name, expr_start, expr_end, p); in get_lval()
864 if (lp->ll_exp_name == NULL) in get_lval()
876 lp->ll_name = lp->ll_exp_name; in get_lval()
880 lp->ll_name = name; in get_lval()
888 lp->ll_name_end = p; in get_lval()
902 lp->ll_type = parse_type(&tp, &si->sn_type_list, !quiet); in get_lval()
903 if (lp->ll_type == NULL && !quiet) in get_lval()
905 lp->ll_name_end = tp; in get_lval()
911 if ((*p != '[' && *p != '.') || lp->ll_name == NULL) in get_lval()
917 lp->ll_tv = lval_root; in get_lval()
926 v = find_var(lp->ll_name, writing ? &ht : NULL, in get_lval()
929 semsg(_(e_undefined_variable_str), lp->ll_name); in get_lval()
933 lp->ll_tv = &v->di_tv; in get_lval()
939 semsg(_(e_variable_already_declared), lp->ll_name); in get_lval()
950 if (*p == '.' && lp->ll_tv->v_type != VAR_DICT) in get_lval()
956 if (lp->ll_tv->v_type != VAR_LIST in get_lval()
957 && lp->ll_tv->v_type != VAR_DICT in get_lval()
958 && lp->ll_tv->v_type != VAR_BLOB) in get_lval()
966 if (lp->ll_tv->v_type == VAR_LIST && lp->ll_tv->vval.v_list == NULL) in get_lval()
967 rettv_list_alloc(lp->ll_tv); in get_lval()
968 else if (lp->ll_tv->v_type == VAR_BLOB in get_lval()
969 && lp->ll_tv->vval.v_blob == NULL) in get_lval()
970 rettv_blob_alloc(lp->ll_tv); in get_lval()
972 if (lp->ll_range) in get_lval()
979 if (in_vim9script() && lp->ll_valtype == NULL in get_lval()
981 && lp->ll_tv == &v->di_tv in get_lval()
984 svar_T *sv = find_typval_in_script(lp->ll_tv); in get_lval()
988 lp->ll_valtype = sv->sv_type; in get_lval()
1028 if (lp->ll_tv->v_type == VAR_DICT) in get_lval()
1048 lp->ll_empty2 = TRUE; in get_lval()
1051 lp->ll_empty2 = FALSE; in get_lval()
1066 lp->ll_range = TRUE; in get_lval()
1069 lp->ll_range = FALSE; in get_lval()
1084 if (lp->ll_tv->v_type == VAR_DICT) in get_lval()
1096 lp->ll_list = NULL; in get_lval()
1099 if (lp->ll_tv->vval.v_dict == NULL) in get_lval()
1101 lp->ll_tv->vval.v_dict = dict_alloc(); in get_lval()
1102 if (lp->ll_tv->vval.v_dict == NULL) in get_lval()
1107 ++lp->ll_tv->vval.v_dict->dv_refcount; in get_lval()
1109 lp->ll_dict = lp->ll_tv->vval.v_dict; in get_lval()
1111 lp->ll_di = dict_find(lp->ll_dict, key, len); in get_lval()
1116 if (rettv != NULL && lp->ll_dict->dv_scope != 0) in get_lval()
1128 wrong = (lp->ll_dict->dv_scope == VAR_DEF_SCOPE in get_lval()
1130 && var_wrong_func_name(key, lp->ll_di == NULL)) in get_lval()
1141 if (lp->ll_valtype != NULL) in get_lval()
1143 lp->ll_valtype = lp->ll_valtype->tt_member; in get_lval()
1145 if (lp->ll_di == NULL) in get_lval()
1148 if (lp->ll_dict == get_vimvar_dict() in get_lval()
1149 || &lp->ll_dict->dv_hashtab == get_funccal_args_ht()) in get_lval()
1165 lp->ll_newkey = vim_strsave(key); in get_lval()
1167 lp->ll_newkey = vim_strnsave(key, len); in get_lval()
1169 if (lp->ll_newkey == NULL) in get_lval()
1175 && (var_check_ro(lp->ll_di->di_flags, name, FALSE) in get_lval()
1176 || var_check_lock(lp->ll_di->di_flags, name, FALSE))) in get_lval()
1183 lp->ll_tv = &lp->ll_di->di_tv; in get_lval()
1185 else if (lp->ll_tv->v_type == VAR_BLOB) in get_lval()
1187 long bloblen = blob_len(lp->ll_tv->vval.v_blob); in get_lval()
1193 lp->ll_n1 = 0; in get_lval()
1196 lp->ll_n1 = (long)tv_get_number(&var1); in get_lval()
1199 if (check_blob_index(bloblen, lp->ll_n1, quiet) == FAIL) in get_lval()
1204 if (lp->ll_range && !lp->ll_empty2) in get_lval()
1206 lp->ll_n2 = (long)tv_get_number(&var2); in get_lval()
1208 if (check_blob_range(bloblen, lp->ll_n1, lp->ll_n2, quiet) in get_lval()
1212 lp->ll_blob = lp->ll_tv->vval.v_blob; in get_lval()
1213 lp->ll_tv = NULL; in get_lval()
1222 lp->ll_n1 = 0; in get_lval()
1225 lp->ll_n1 = (long)tv_get_number(&var1); in get_lval()
1228 lp->ll_dict = NULL; in get_lval()
1229 lp->ll_list = lp->ll_tv->vval.v_list; in get_lval()
1230 lp->ll_li = check_range_index_one(lp->ll_list, &lp->ll_n1, quiet); in get_lval()
1231 if (lp->ll_li == NULL) in get_lval()
1237 if (lp->ll_valtype != NULL) in get_lval()
1239 lp->ll_valtype = lp->ll_valtype->tt_member; in get_lval()
1247 if (lp->ll_range && !lp->ll_empty2) in get_lval()
1249 lp->ll_n2 = (long)tv_get_number(&var2); in get_lval()
1252 if (check_range_index_two(lp->ll_list, in get_lval()
1253 &lp->ll_n1, lp->ll_li, in get_lval()
1254 &lp->ll_n2, quiet) == FAIL) in get_lval()
1258 lp->ll_tv = &lp->ll_li->li_tv; in get_lval()
1263 lp->ll_name_end = p; in get_lval()
1271 clear_lval(lval_T *lp) in clear_lval() argument
1273 vim_free(lp->ll_exp_name); in clear_lval()
1274 vim_free(lp->ll_newkey); in clear_lval()
1285 lval_T *lp, in set_var_lval() argument
1296 if (lp->ll_tv == NULL) in set_var_lval()
1300 if (in_vim9script() && check_reserved_name(lp->ll_name) == FAIL) in set_var_lval()
1303 if (lp->ll_blob != NULL) in set_var_lval()
1312 if (value_check_lock(lp->ll_blob->bv_lock, lp->ll_name, FALSE)) in set_var_lval()
1315 if (lp->ll_range && rettv->v_type == VAR_BLOB) in set_var_lval()
1317 if (lp->ll_empty2) in set_var_lval()
1318 lp->ll_n2 = blob_len(lp->ll_blob) - 1; in set_var_lval()
1320 if (blob_set_range(lp->ll_blob, lp->ll_n1, lp->ll_n2, in set_var_lval()
1328 blob_set_append(lp->ll_blob, lp->ll_n1, val); in set_var_lval()
1345 if (eval_variable(lp->ll_name, (int)STRLEN(lp->ll_name), in set_var_lval()
1349 || (!var_check_ro(di->di_flags, lp->ll_name, FALSE) in set_var_lval()
1350 && !tv_check_lock(&di->di_tv, lp->ll_name, FALSE))) in set_var_lval()
1352 set_var_const(lp->ll_name, NULL, &tv, FALSE, in set_var_lval()
1359 if (lp->ll_type != NULL && check_typval_arg_type(lp->ll_type, rettv, in set_var_lval()
1362 set_var_const(lp->ll_name, lp->ll_type, rettv, copy, in set_var_lval()
1367 else if (value_check_lock(lp->ll_newkey == NULL in set_var_lval()
1368 ? lp->ll_tv->v_lock in set_var_lval()
1369 : lp->ll_tv->vval.v_dict->dv_lock, lp->ll_name, FALSE)) in set_var_lval()
1371 else if (lp->ll_range) in set_var_lval()
1380 (void)list_assign_range(lp->ll_list, rettv->vval.v_list, in set_var_lval()
1381 lp->ll_n1, lp->ll_n2, lp->ll_empty2, op, lp->ll_name); in set_var_lval()
1395 if (lp->ll_valtype != NULL in set_var_lval()
1396 && check_typval_arg_type(lp->ll_valtype, rettv, in set_var_lval()
1400 if (lp->ll_newkey != NULL) in set_var_lval()
1404 semsg(_(e_dictkey), lp->ll_newkey); in set_var_lval()
1407 if (dict_wrong_func_name(lp->ll_tv->vval.v_dict, rettv, in set_var_lval()
1408 lp->ll_newkey)) in set_var_lval()
1412 di = dictitem_alloc(lp->ll_newkey); in set_var_lval()
1415 if (dict_add(lp->ll_tv->vval.v_dict, di) == FAIL) in set_var_lval()
1420 lp->ll_tv = &di->di_tv; in set_var_lval()
1424 tv_op(lp->ll_tv, rettv, op); in set_var_lval()
1428 clear_tv(lp->ll_tv); in set_var_lval()
1434 copy_tv(rettv, lp->ll_tv); in set_var_lval()
1437 *lp->ll_tv = *rettv; in set_var_lval()
1438 lp->ll_tv->v_lock = 0; in set_var_lval()