DNA: add in-place stripping utility
Minor change from D4342
This commit is contained in:
@@ -107,7 +107,7 @@ uint DNA_elem_id_offset_end(const char *elem_full)
|
||||
/**
|
||||
* \a elem_dst must be at least the size of \a elem_src.
|
||||
*/
|
||||
void DNA_elem_id_strip(char *elem_dst, const char *elem_src)
|
||||
void DNA_elem_id_strip_copy(char *elem_dst, const char *elem_src)
|
||||
{
|
||||
const uint elem_src_offset = DNA_elem_id_offset_start(elem_src);
|
||||
const char *elem_src_trim = elem_src + elem_src_offset;
|
||||
@@ -116,6 +116,15 @@ void DNA_elem_id_strip(char *elem_dst, const char *elem_src)
|
||||
elem_dst[elem_src_trim_len] = '\0';
|
||||
}
|
||||
|
||||
void DNA_elem_id_strip(char *elem)
|
||||
{
|
||||
const uint elem_offset = DNA_elem_id_offset_start(elem);
|
||||
const char *elem_trim = elem + elem_offset;
|
||||
const uint elem_trim_len = DNA_elem_id_offset_end(elem_trim);
|
||||
memmove(elem, elem_trim, elem_trim_len);
|
||||
elem[elem_trim_len] = '\0';
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if 'var' matches '*var[3]' for eg,
|
||||
* return true if it does, with start/end offsets.
|
||||
|
||||
@@ -26,7 +26,8 @@ int DNA_elem_array_size(const char *str);
|
||||
|
||||
uint DNA_elem_id_offset_start(const char *elem_full);
|
||||
uint DNA_elem_id_offset_end(const char *elem_full);
|
||||
void DNA_elem_id_strip(char *elem_dst, const char *elem_src);
|
||||
void DNA_elem_id_strip_copy(char *elem_dst, const char *elem_src);
|
||||
void DNA_elem_id_strip(char *elem);
|
||||
bool DNA_elem_id_match(
|
||||
const char *elem_search, const int elem_search_len,
|
||||
const char *elem_full,
|
||||
|
||||
Reference in New Issue
Block a user