mirror of
https://github.com/neovim/neovim.git
synced 2025-10-07 02:16:31 +00:00
refactor(api): make cstr_as_string accept "const char*"
In the context a String inside an Object/Dictionary etc is consumed, it is considered to be read-only.
This commit is contained in:
@@ -425,12 +425,12 @@ String cstrn_as_string(char *str, size_t maxsize)
|
||||
/// @param str the C string to use
|
||||
/// @return The resulting String, or an empty String if
|
||||
/// str was NULL
|
||||
String cstr_as_string(char *str) FUNC_ATTR_PURE
|
||||
String cstr_as_string(const char *str) FUNC_ATTR_PURE
|
||||
{
|
||||
if (str == NULL) {
|
||||
return (String)STRING_INIT;
|
||||
}
|
||||
return (String){ .data = str, .size = strlen(str) };
|
||||
return (String){ .data = (char *)str, .size = strlen(str) };
|
||||
}
|
||||
|
||||
/// Return the owned memory of a ga as a String
|
||||
|
@@ -789,7 +789,7 @@ void remote_ui_hl_attr_define(UI *ui, Integer id, HlAttrs rgb_attrs, HlAttrs cte
|
||||
// system. So we add them here.
|
||||
if (rgb_attrs.url >= 0) {
|
||||
const char *url = hl_get_url((uint32_t)rgb_attrs.url);
|
||||
PUT_C(rgb, "url", STRING_OBJ(cstr_as_string((char *)url)));
|
||||
PUT_C(rgb, "url", CSTR_AS_OBJ(url));
|
||||
}
|
||||
|
||||
ADD_C(args, DICTIONARY_OBJ(rgb));
|
||||
@@ -857,7 +857,7 @@ void remote_ui_put(UI *ui, const char *cell)
|
||||
UIData *data = ui->data;
|
||||
data->client_col++;
|
||||
Array args = data->call_buf;
|
||||
ADD_C(args, CSTR_AS_OBJ((char *)cell));
|
||||
ADD_C(args, CSTR_AS_OBJ(cell));
|
||||
push_call(ui, "put", args);
|
||||
}
|
||||
|
||||
|
@@ -2289,7 +2289,7 @@ Dictionary nvim_eval_statusline(String str, Dict(eval_statusline) *opts, Arena *
|
||||
opts->use_winbar, stc_hl_id);
|
||||
|
||||
PUT_C(hl_info, "start", INTEGER_OBJ(0));
|
||||
PUT_C(hl_info, "group", CSTR_AS_OBJ((char *)grpname));
|
||||
PUT_C(hl_info, "group", CSTR_AS_OBJ(grpname));
|
||||
|
||||
ADD_C(hl_values, DICTIONARY_OBJ(hl_info));
|
||||
}
|
||||
@@ -2308,7 +2308,7 @@ Dictionary nvim_eval_statusline(String str, Dict(eval_statusline) *opts, Arena *
|
||||
snprintf(user_group, sizeof(user_group), "User%d", sp->userhl);
|
||||
grpname = arena_memdupz(arena, user_group, strlen(user_group));
|
||||
}
|
||||
PUT_C(hl_info, "group", CSTR_AS_OBJ((char *)grpname));
|
||||
PUT_C(hl_info, "group", CSTR_AS_OBJ(grpname));
|
||||
ADD_C(hl_values, DICTIONARY_OBJ(hl_info));
|
||||
}
|
||||
PUT_C(result, "highlights", ARRAY_OBJ(hl_values));
|
||||
|
@@ -626,7 +626,7 @@ Dict(float_config) nvim_win_get_config(Window window, Arena *arena, Error *err)
|
||||
PUT_KEY_X(rv, bufpos, pos);
|
||||
}
|
||||
}
|
||||
PUT_KEY_X(rv, anchor, cstr_as_string((char *)float_anchor_str[config->anchor]));
|
||||
PUT_KEY_X(rv, anchor, cstr_as_string(float_anchor_str[config->anchor]));
|
||||
PUT_KEY_X(rv, row, config->row);
|
||||
PUT_KEY_X(rv, col, config->col);
|
||||
PUT_KEY_X(rv, zindex, config->zindex);
|
||||
@@ -659,12 +659,12 @@ Dict(float_config) nvim_win_get_config(Window window, Arena *arena, Error *err)
|
||||
PUT_KEY_X(rv, width, wp->w_width);
|
||||
PUT_KEY_X(rv, height, wp->w_height);
|
||||
WinSplit split = win_split_dir(wp);
|
||||
PUT_KEY_X(rv, split, cstr_as_string((char *)win_split_str[split]));
|
||||
PUT_KEY_X(rv, split, cstr_as_string(win_split_str[split]));
|
||||
}
|
||||
|
||||
const char *rel = (wp->w_floating && !config->external
|
||||
? float_relative_str[config->relative] : "");
|
||||
PUT_KEY_X(rv, relative, cstr_as_string((char *)rel));
|
||||
PUT_KEY_X(rv, relative, cstr_as_string(rel));
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
Reference in New Issue
Block a user