From 44057e96f33f110cf182ef7df697b21e779e5aae Mon Sep 17 00:00:00 2001 From: Mikhail Romanko Date: Sat, 8 Nov 2025 11:02:01 +0300 Subject: Add string duplication function (strdup) --- doc/Manual/en/BH_String.pod | 7 +++++++ doc/Manual/ru/BH_String.pod | 7 +++++++ include/BH/String.h | 3 +++ src/String/String.c | 19 +++++++++++++++++++ 4 files changed, 36 insertions(+) create mode 100644 src/String/String.c diff --git a/doc/Manual/en/BH_String.pod b/doc/Manual/en/BH_String.pod index b9d78d1..c7b027e 100644 --- a/doc/Manual/en/BH_String.pod +++ b/doc/Manual/en/BH_String.pod @@ -377,6 +377,13 @@ The optional parameter I specifies the base of the number. If successful, it returns the converted number or 0. +=head2 BH_StringDup + + char *BH_StringDup(const char *string); + +Creates duplicate of the I (simular to strdup). + + =head1 SEE ALSO L diff --git a/doc/Manual/ru/BH_String.pod b/doc/Manual/ru/BH_String.pod index bd7f8b3..4e665d5 100644 --- a/doc/Manual/ru/BH_String.pod +++ b/doc/Manual/ru/BH_String.pod @@ -368,6 +368,13 @@ I (с ограничением по длинне I). В случае успеха, возвращает преобразованное число или 0. +=head2 BH_StringDup + + char *BH_StringDup(const char *string); + +Создает копию строки I (схоже с strdup). + + =head1 СМ. ТАКЖЕ L diff --git a/include/BH/String.h b/include/BH/String.h index 5e1ceb7..4ef0c33 100644 --- a/include/BH/String.h +++ b/include/BH/String.h @@ -113,4 +113,7 @@ uint64_t BH_StringToInt64u(const char *string, int base); +char *BH_StringDup(const char *string); + + #endif /* BH_STRING_H */ diff --git a/src/String/String.c b/src/String/String.c new file mode 100644 index 0000000..74f40e2 --- /dev/null +++ b/src/String/String.c @@ -0,0 +1,19 @@ +#include +#include +#include + + +char *BH_StringDup(const char *string) +{ + size_t length; + char *result; + + if (!string) + return NULL; + + length = strlen(string) + 1; + result = malloc(length); + if (result) + memcpy(result, string, length); + return result; +} -- cgit v1.2.3