diff --git a/doc/en/weechat_plugin_api.en.adoc b/doc/en/weechat_plugin_api.en.adoc index 3efc53367..95eefebad 100644 --- a/doc/en/weechat_plugin_api.en.adoc +++ b/doc/en/weechat_plugin_api.en.adoc @@ -546,19 +546,19 @@ str = weechat.ngettext("file", "files", num_files) ==== strndup -Return duplicated string, with _length_ chars max. +Return duplicated string, with a max number of bytes. Prototype: [source,c] ---- -char *weechat_strndup (const char *string, int length); +char *weechat_strndup (const char *string, int bytes); ---- Arguments: * _string_: string to duplicate -* _length_: max chars to duplicate +* _bytes_: max bytes to duplicate Return value: diff --git a/doc/fr/weechat_plugin_api.fr.adoc b/doc/fr/weechat_plugin_api.fr.adoc index ac07919d1..0477c7b82 100644 --- a/doc/fr/weechat_plugin_api.fr.adoc +++ b/doc/fr/weechat_plugin_api.fr.adoc @@ -556,19 +556,19 @@ str = weechat.ngettext("file", "files", num_files) ==== strndup -Retourner la chaîne dupliquée, avec au plus _length_ caractères. +Retourner la chaîne dupliquée, avec un nombre maximum d'octets. Prototype : [source,c] ---- -char *weechat_strndup (const char *string, int length); +char *weechat_strndup (const char *string, int bytes); ---- Paramètres : * _string_ : chaîne à dupliquer -* _length_ : nombre maximum de caractères à dupliquer +* _bytes_ : nombre maximum d'octets à dupliquer Valeur de retour : diff --git a/doc/it/weechat_plugin_api.it.adoc b/doc/it/weechat_plugin_api.it.adoc index f73513b60..8710dff8f 100644 --- a/doc/it/weechat_plugin_api.it.adoc +++ b/doc/it/weechat_plugin_api.it.adoc @@ -577,20 +577,21 @@ str = weechat.ngettext("file", "files", num_files) ==== strndup -Restituisce una stringa duplicata, con un massimo di caratteri -impostato su _chars_. +// TRANSLATION MISSING +Return duplicated string, with a max number of bytes. Prototipo: [source,c] ---- -char *weechat_strndup (const char *string, int length); +char *weechat_strndup (const char *string, int bytes); ---- Argomenti: * _string_: stringa da duplicare -* _length_: caratteri massimi da duplicare +// TRANSLATION MISSING +* _bytes_: max bytes to duplicate Valore restituito: diff --git a/doc/ja/weechat_plugin_api.ja.adoc b/doc/ja/weechat_plugin_api.ja.adoc index 90eac1c0d..ba18830a6 100644 --- a/doc/ja/weechat_plugin_api.ja.adoc +++ b/doc/ja/weechat_plugin_api.ja.adoc @@ -556,19 +556,21 @@ str = weechat.ngettext("file", "files", num_files) ==== strndup -複製した文字列を最大で _length_ 文字分返す。 +// TRANSLATION MISSING +Return duplicated string, with a max number of bytes. プロトタイプ: [source,c] ---- -char *weechat_strndup (const char *string, int length); +char *weechat_strndup (const char *string, int bytes); ---- 引数: * _string_: 複製元の文字列 -* _length_: 複製する文字列の最大文字数 +// TRANSLATION MISSING +* _bytes_: max bytes to duplicate 戻り値: diff --git a/doc/sr/weechat_plugin_api.sr.adoc b/doc/sr/weechat_plugin_api.sr.adoc index f526714c6..529cd8654 100644 --- a/doc/sr/weechat_plugin_api.sr.adoc +++ b/doc/sr/weechat_plugin_api.sr.adoc @@ -521,19 +521,21 @@ str = weechat.ngettext("file", "files", num_files) ==== strndup -Враћа дуплирани стринг, са макс _length_ карактера. +// TRANSLATION MISSING +Return duplicated string, with a max number of bytes. Прототип: [source, C] ---- -char *weechat_strndup (const char *string, int length); +char *weechat_strndup (const char *string, int bytes); ---- Аргументи: * _string_: стринг који се дуплира -* _length_: макс број карактера који може да се дуплира +// TRANSLATION MISSING +* _bytes_: max bytes to duplicate Повратна вредност: diff --git a/src/core/wee-string.c b/src/core/wee-string.c index 633a5be3d..54828ccf3 100644 --- a/src/core/wee-string.c +++ b/src/core/wee-string.c @@ -75,22 +75,22 @@ struct t_hashtable *string_hashtable_shared = NULL; */ char * -string_strndup (const char *string, int length) +string_strndup (const char *string, int bytes) { char *result; - if (!string || (length < 0)) + if (!string || (bytes < 0)) return NULL; - if ((int)strlen (string) < length) + if ((int)strlen (string) < bytes) return strdup (string); - result = malloc (length + 1); + result = malloc (bytes + 1); if (!result) return NULL; - memcpy (result, string, length); - result[length] = '\0'; + memcpy (result, string, bytes); + result[bytes] = '\0'; return result; } diff --git a/tests/unit/core/test-core-string.cpp b/tests/unit/core/test-core-string.cpp index 93cc316ae..b6072489a 100644 --- a/tests/unit/core/test-core-string.cpp +++ b/tests/unit/core/test-core-string.cpp @@ -126,7 +126,7 @@ TEST_GROUP(CoreString) * string_strndup */ -TEST(CoreString, Duplicate) +TEST(CoreString, Strndup) { const char *str_test = "test"; char *str;