mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
api/helpers: implement C string to String helper
Use it in buffers.c
This commit is contained in:
parent
b591447f77
commit
9eb68075d8
@ -108,8 +108,8 @@ StringArray buffer_get_slice(Buffer buffer,
|
|||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
rv.items[i].data = xstrdup((char *)ml_get_buf(buf, (linenr_T)lnum, false));
|
const char *bufstr = (char *) ml_get_buf(buf, (linenr_T) lnum, false);
|
||||||
rv.items[i].size = strlen(rv.items[i].data);
|
rv.items[i] = cstr_to_string(bufstr);
|
||||||
}
|
}
|
||||||
|
|
||||||
end:
|
end:
|
||||||
@ -307,9 +307,7 @@ String buffer_get_name(Buffer buffer, Error *err)
|
|||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
rv.data = xstrdup((char *)buf->b_ffname);
|
return cstr_to_string((char *)buf->b_ffname);
|
||||||
rv.size = strlen(rv.data);
|
|
||||||
return rv;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void buffer_set_name(Buffer buffer, String name, Error *err)
|
void buffer_set_name(Buffer buffer, String name, Error *err)
|
||||||
|
@ -339,6 +339,18 @@ tabpage_T * find_tab(Tabpage tabpage, Error *err)
|
|||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String cstr_to_string(const char *str) {
|
||||||
|
if (str == NULL) {
|
||||||
|
return (String) { .data = NULL, .size = 0 };
|
||||||
|
}
|
||||||
|
|
||||||
|
size_t len = strlen(str);
|
||||||
|
return (String) {
|
||||||
|
.data = xmemdup(str, len),
|
||||||
|
.size = len
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
static bool object_to_vim(Object obj, typval_T *tv, Error *err)
|
static bool object_to_vim(Object obj, typval_T *tv, Error *err)
|
||||||
{
|
{
|
||||||
tv->v_type = VAR_UNKNOWN;
|
tv->v_type = VAR_UNKNOWN;
|
||||||
|
@ -86,5 +86,12 @@ win_T * find_window(Window window, Error *err);
|
|||||||
/// @return the tabpage pointer
|
/// @return the tabpage pointer
|
||||||
tabpage_T * find_tab(Tabpage tabpage, Error *err);
|
tabpage_T * find_tab(Tabpage tabpage, Error *err);
|
||||||
|
|
||||||
|
/// Copies a C string into a String (binary safe string, characters + length)
|
||||||
|
///
|
||||||
|
/// @param str the C string to copy
|
||||||
|
/// @return the resulting String, if the input string was NULL, then an
|
||||||
|
/// empty String is returned
|
||||||
|
String cstr_to_string(const char *str);
|
||||||
|
|
||||||
#endif // NVIM_API_HELPERS_H
|
#endif // NVIM_API_HELPERS_H
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user