Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2019-02-14 01:59:46 +0300
committerCampbell Barton <ideasman42@gmail.com>2019-02-14 01:59:46 +0300
commita9da750aee081d2d739fe667a587cacef8fc9483 (patch)
tree0b4922bcef62d9291db0b64f0c18bddd0861fea1 /source/blender/makesdna/intern
parentb42333fba63b814e1762d277cd1cdb0c01ba0d27 (diff)
DNA: add in-place stripping utility
Minor change from D4342
Diffstat (limited to 'source/blender/makesdna/intern')
-rw-r--r--source/blender/makesdna/intern/dna_utils.c11
-rw-r--r--source/blender/makesdna/intern/dna_utils.h3
2 files changed, 12 insertions, 2 deletions
diff --git a/source/blender/makesdna/intern/dna_utils.c b/source/blender/makesdna/intern/dna_utils.c
index 8891c009718..42174494347 100644
--- a/source/blender/makesdna/intern/dna_utils.c
+++ b/source/blender/makesdna/intern/dna_utils.c
@@ -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.
diff --git a/source/blender/makesdna/intern/dna_utils.h b/source/blender/makesdna/intern/dna_utils.h
index fc8e5a87547..1ad31fe034c 100644
--- a/source/blender/makesdna/intern/dna_utils.h
+++ b/source/blender/makesdna/intern/dna_utils.h
@@ -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,