diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2021-07-06 17:01:37 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2021-07-06 17:01:37 +0900 |
| commit | 7c362ee7237ec31e4e4b1bf3cc81f59e86c83573 (patch) | |
| tree | 5b1f2323812995d217e5c85e5f37fb88a50bd368 /mrbgems/mruby-bin-debugger/tools/mrdb/apistring.c | |
| parent | 7fa0a704e010b4a9d1ac96da9f8a0ffc4cb13c2e (diff) | |
| parent | f31733045feee3c381ee350be64e1a83682d5543 (diff) | |
| download | mruby-7c362ee7237ec31e4e4b1bf3cc81f59e86c83573.tar.gz mruby-7c362ee7237ec31e4e4b1bf3cc81f59e86c83573.zip | |
Merge branch 'mrb_debug_strdup-and-strndup' of https://github.com/cremno/mruby into cremno-mrb_debug_strdup-and-strndup
Diffstat (limited to 'mrbgems/mruby-bin-debugger/tools/mrdb/apistring.c')
| -rw-r--r-- | mrbgems/mruby-bin-debugger/tools/mrdb/apistring.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/mrbgems/mruby-bin-debugger/tools/mrdb/apistring.c b/mrbgems/mruby-bin-debugger/tools/mrdb/apistring.c new file mode 100644 index 000000000..4cf528feb --- /dev/null +++ b/mrbgems/mruby-bin-debugger/tools/mrdb/apistring.c @@ -0,0 +1,34 @@ +/* +** apistring.c +** +*/ + +#include <string.h> +#include "apistring.h" + +static size_t +mrb_debug_strnlen(const char *s, size_t maxlen) +{ + const char *p = memchr(s, '\0', maxlen); + return p != NULL ? (size_t)(p - s) : maxlen; +} + +char* +mrb_debug_strndup(mrb_state *mrb, const char *s, size_t size) +{ + size_t l = mrb_debug_strnlen(s, size); + char *d = mrb_malloc_simple(mrb, l + 1); + if (d != NULL) { + memcpy(d, s, l); + d[l] = '\0'; + } + return d; +} + +char* +mrb_debug_strdup(mrb_state *mrb, const char *s) +{ + size_t z = strlen(s) + 1; + char *d = mrb_malloc_simple(mrb, z); + return d != NULL ? memcpy(d, s, z) : NULL; +} |
